Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/locales.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDean Karn <Dean.Karn@gmail.com>2017-02-15 20:08:46 +0300
committerGitHub <noreply@github.com>2017-02-15 20:08:46 +0300
commitb860c92274dfb72f517b8b4c11c6d9f2f8cc9d91 (patch)
treec3517b8a68fcb6fea8f9dfa61c9223e91511ec33
parent6bef3fe8f48c0d0892978608e4eafa1acd2a1c53 (diff)
parent714810d52d0553de1db9c58ac82215441a5c4931 (diff)
Merge pull request #8 from go-playground/correct-en-fallbackv0.11.1json-generation
Correct english inheritance
-rw-r--r--README.md2
-rw-r--r--af/af.go2
-rw-r--r--af_NA/af_NA.go2
-rw-r--r--af_ZA/af_ZA.go2
-rw-r--r--agq/agq.go2
-rw-r--r--agq_CM/agq_CM.go2
-rw-r--r--ak/ak.go2
-rw-r--r--ak_GH/ak_GH.go2
-rw-r--r--am/am.go2
-rw-r--r--am_ET/am_ET.go2
-rw-r--r--ar/ar.go2
-rw-r--r--ar_001/ar_001.go2
-rw-r--r--ar_AE/ar_AE.go2
-rw-r--r--ar_BH/ar_BH.go2
-rw-r--r--ar_DJ/ar_DJ.go2
-rw-r--r--ar_DZ/ar_DZ.go2
-rw-r--r--ar_EG/ar_EG.go2
-rw-r--r--ar_EH/ar_EH.go2
-rw-r--r--ar_ER/ar_ER.go2
-rw-r--r--ar_IL/ar_IL.go2
-rw-r--r--ar_IQ/ar_IQ.go2
-rw-r--r--ar_JO/ar_JO.go2
-rw-r--r--ar_KM/ar_KM.go2
-rw-r--r--ar_KW/ar_KW.go2
-rw-r--r--ar_LB/ar_LB.go2
-rw-r--r--ar_LY/ar_LY.go2
-rw-r--r--ar_MA/ar_MA.go2
-rw-r--r--ar_MR/ar_MR.go2
-rw-r--r--ar_OM/ar_OM.go2
-rw-r--r--ar_PS/ar_PS.go2
-rw-r--r--ar_QA/ar_QA.go2
-rw-r--r--ar_SA/ar_SA.go2
-rw-r--r--ar_SD/ar_SD.go2
-rw-r--r--ar_SO/ar_SO.go2
-rw-r--r--ar_SS/ar_SS.go2
-rw-r--r--ar_SY/ar_SY.go2
-rw-r--r--ar_TD/ar_TD.go2
-rw-r--r--ar_TN/ar_TN.go2
-rw-r--r--ar_YE/ar_YE.go2
-rw-r--r--as/as.go2
-rw-r--r--as_IN/as_IN.go2
-rw-r--r--asa/asa.go2
-rw-r--r--asa_TZ/asa_TZ.go2
-rw-r--r--ast/ast.go2
-rw-r--r--ast_ES/ast_ES.go2
-rw-r--r--az/az.go4
-rw-r--r--az_Cyrl/az_Cyrl.go2
-rw-r--r--az_Cyrl_AZ/az_Cyrl_AZ.go2
-rw-r--r--az_Latn/az_Latn.go2
-rw-r--r--az_Latn_AZ/az_Latn_AZ.go4
-rw-r--r--bas/bas.go2
-rw-r--r--bas_CM/bas_CM.go2
-rw-r--r--be/be.go6
-rw-r--r--be_BY/be_BY.go2
-rw-r--r--bem/bem.go2
-rw-r--r--bem_ZM/bem_ZM.go2
-rw-r--r--bez/bez.go2
-rw-r--r--bez_TZ/bez_TZ.go2
-rw-r--r--bg/bg.go2
-rw-r--r--bg_BG/bg_BG.go2
-rw-r--r--bm/bm.go2
-rw-r--r--bm_ML/bm_ML.go2
-rw-r--r--bn/bn.go2
-rw-r--r--bn_BD/bn_BD.go2
-rw-r--r--bn_IN/bn_IN.go2
-rw-r--r--bo/bo.go2
-rw-r--r--bo_CN/bo_CN.go2
-rw-r--r--bo_IN/bo_IN.go2
-rw-r--r--br/br.go2
-rw-r--r--br_FR/br_FR.go2
-rw-r--r--brx/brx.go2
-rw-r--r--brx_IN/brx_IN.go2
-rw-r--r--bs/bs.go2
-rw-r--r--bs_Cyrl/bs_Cyrl.go4
-rw-r--r--bs_Cyrl_BA/bs_Cyrl_BA.go2
-rw-r--r--bs_Latn/bs_Latn.go4
-rw-r--r--bs_Latn_BA/bs_Latn_BA.go2
-rw-r--r--ca/ca.go2
-rw-r--r--ca_AD/ca_AD.go2
-rw-r--r--ca_ES/ca_ES.go2
-rw-r--r--ca_ES_VALENCIA/ca_ES_VALENCIA.go2
-rw-r--r--ca_FR/ca_FR.go2
-rw-r--r--ca_IT/ca_IT.go2
-rw-r--r--ce/ce.go2
-rw-r--r--ce_RU/ce_RU.go2
-rw-r--r--cgg/cgg.go2
-rw-r--r--cgg_UG/cgg_UG.go2
-rw-r--r--chr/chr.go2
-rw-r--r--chr_US/chr_US.go2
-rw-r--r--ckb/ckb.go2
-rw-r--r--ckb_IQ/ckb_IQ.go2
-rw-r--r--ckb_IR/ckb_IR.go2
-rw-r--r--cmd/generate_resources.go278
-rw-r--r--cs/cs.go2
-rw-r--r--cs_CZ/cs_CZ.go2
-rw-r--r--cu/cu.go2
-rw-r--r--cu_RU/cu_RU.go2
-rw-r--r--cy/cy.go2
-rw-r--r--cy_GB/cy_GB.go2
-rw-r--r--da/da.go2
-rw-r--r--da_DK/da_DK.go2
-rw-r--r--da_GL/da_GL.go2
-rw-r--r--dav/dav.go2
-rw-r--r--dav_KE/dav_KE.go2
-rw-r--r--de/de.go2
-rw-r--r--de_AT/de_AT.go2
-rw-r--r--de_BE/de_BE.go2
-rw-r--r--de_CH/de_CH.go2
-rw-r--r--de_DE/de_DE.go2
-rw-r--r--de_IT/de_IT.go2
-rw-r--r--de_LI/de_LI.go2
-rw-r--r--de_LU/de_LU.go2
-rw-r--r--dje/dje.go2
-rw-r--r--dje_NE/dje_NE.go2
-rw-r--r--dsb/dsb.go2
-rw-r--r--dsb_DE/dsb_DE.go2
-rw-r--r--dua/dua.go2
-rw-r--r--dua_CM/dua_CM.go2
-rw-r--r--dyo/dyo.go2
-rw-r--r--dyo_SN/dyo_SN.go2
-rw-r--r--dz/dz.go2
-rw-r--r--dz_BT/dz_BT.go2
-rw-r--r--ebu/ebu.go2
-rw-r--r--ebu_KE/ebu_KE.go2
-rw-r--r--ee/ee.go2
-rw-r--r--ee_GH/ee_GH.go2
-rw-r--r--ee_TG/ee_TG.go2
-rw-r--r--el/el.go2
-rw-r--r--el_CY/el_CY.go2
-rw-r--r--el_GR/el_GR.go2
-rw-r--r--en/en.go2
-rw-r--r--en_001/en_001.go2
-rw-r--r--en_150/en_150.go2
-rw-r--r--en_AG/en_AG.go36
-rw-r--r--en_AI/en_AI.go34
-rw-r--r--en_AS/en_AS.go2
-rw-r--r--en_AT/en_AT.go2
-rw-r--r--en_AU/en_AU.go66
-rw-r--r--en_BB/en_BB.go34
-rw-r--r--en_BE/en_BE.go2
-rw-r--r--en_BI/en_BI.go2
-rw-r--r--en_BM/en_BM.go34
-rw-r--r--en_BS/en_BS.go34
-rw-r--r--en_BW/en_BW.go4
-rw-r--r--en_BZ/en_BZ.go2
-rw-r--r--en_CA/en_CA.go4
-rw-r--r--en_CC/en_CC.go34
-rw-r--r--en_CH/en_CH.go2
-rw-r--r--en_CK/en_CK.go34
-rw-r--r--en_CM/en_CM.go34
-rw-r--r--en_CX/en_CX.go36
-rw-r--r--en_CY/en_CY.go2
-rw-r--r--en_DE/en_DE.go2
-rw-r--r--en_DG/en_DG.go2
-rw-r--r--en_DK/en_DK.go2
-rw-r--r--en_DM/en_DM.go34
-rw-r--r--en_ER/en_ER.go34
-rw-r--r--en_FI/en_FI.go2
-rw-r--r--en_FJ/en_FJ.go34
-rw-r--r--en_FK/en_FK.go4
-rw-r--r--en_FM/en_FM.go34
-rw-r--r--en_GB/en_GB.go36
-rw-r--r--en_GD/en_GD.go34
-rw-r--r--en_GG/en_GG.go34
-rw-r--r--en_GH/en_GH.go34
-rw-r--r--en_GI/en_GI.go4
-rw-r--r--en_GM/en_GM.go34
-rw-r--r--en_GU/en_GU.go4
-rw-r--r--en_GY/en_GY.go34
-rw-r--r--en_HK/en_HK.go76
-rw-r--r--en_IE/en_IE.go4
-rw-r--r--en_IL/en_IL.go2
-rw-r--r--en_IM/en_IM.go4
-rw-r--r--en_IN/en_IN.go68
-rw-r--r--en_IO/en_IO.go4
-rw-r--r--en_JE/en_JE.go2
-rw-r--r--en_JM/en_JM.go14
-rw-r--r--en_KE/en_KE.go36
-rw-r--r--en_KI/en_KI.go34
-rw-r--r--en_KN/en_KN.go34
-rw-r--r--en_KY/en_KY.go34
-rw-r--r--en_LC/en_LC.go34
-rw-r--r--en_LR/en_LR.go36
-rw-r--r--en_LS/en_LS.go34
-rw-r--r--en_MG/en_MG.go34
-rw-r--r--en_MH/en_MH.go2
-rw-r--r--en_MO/en_MO.go96
-rw-r--r--en_MP/en_MP.go4
-rw-r--r--en_MS/en_MS.go34
-rw-r--r--en_MT/en_MT.go2
-rw-r--r--en_MU/en_MU.go34
-rw-r--r--en_MW/en_MW.go34
-rw-r--r--en_MY/en_MY.go36
-rw-r--r--en_NA/en_NA.go34
-rw-r--r--en_NF/en_NF.go34
-rw-r--r--en_NG/en_NG.go34
-rw-r--r--en_NL/en_NL.go2
-rw-r--r--en_NR/en_NR.go34
-rw-r--r--en_NU/en_NU.go34
-rw-r--r--en_NZ/en_NZ.go64
-rw-r--r--en_PG/en_PG.go36
-rw-r--r--en_PH/en_PH.go36
-rw-r--r--en_PK/en_PK.go66
-rw-r--r--en_PN/en_PN.go34
-rw-r--r--en_PR/en_PR.go2
-rw-r--r--en_PW/en_PW.go34
-rw-r--r--en_RW/en_RW.go34
-rw-r--r--en_SB/en_SB.go34
-rw-r--r--en_SC/en_SC.go34
-rw-r--r--en_SD/en_SD.go34
-rw-r--r--en_SE/en_SE.go4
-rw-r--r--en_SG/en_SG.go64
-rw-r--r--en_SH/en_SH.go34
-rw-r--r--en_SI/en_SI.go4
-rw-r--r--en_SL/en_SL.go34
-rw-r--r--en_SS/en_SS.go34
-rw-r--r--en_SX/en_SX.go34
-rw-r--r--en_SZ/en_SZ.go34
-rw-r--r--en_TC/en_TC.go34
-rw-r--r--en_TK/en_TK.go34
-rw-r--r--en_TO/en_TO.go34
-rw-r--r--en_TT/en_TT.go36
-rw-r--r--en_TV/en_TV.go36
-rw-r--r--en_TZ/en_TZ.go34
-rw-r--r--en_UG/en_UG.go34
-rw-r--r--en_UM/en_UM.go4
-rw-r--r--en_US/en_US.go2
-rw-r--r--en_US_POSIX/en_US_POSIX.go2
-rw-r--r--en_VC/en_VC.go34
-rw-r--r--en_VG/en_VG.go96
-rw-r--r--en_VI/en_VI.go2
-rw-r--r--en_VU/en_VU.go34
-rw-r--r--en_WS/en_WS.go36
-rw-r--r--en_ZA/en_ZA.go2
-rw-r--r--en_ZM/en_ZM.go34
-rw-r--r--en_ZW/en_ZW.go4
-rw-r--r--eo/eo.go2
-rw-r--r--eo_001/eo_001.go2
-rw-r--r--es/es.go2
-rw-r--r--es_419/es_419.go2
-rw-r--r--es_AR/es_AR.go2
-rw-r--r--es_BO/es_BO.go2
-rw-r--r--es_BR/es_BR.go2
-rw-r--r--es_CL/es_CL.go2
-rw-r--r--es_CO/es_CO.go2
-rw-r--r--es_CR/es_CR.go2
-rw-r--r--es_CU/es_CU.go2
-rw-r--r--es_DO/es_DO.go2
-rw-r--r--es_EA/es_EA.go2
-rw-r--r--es_EC/es_EC.go2
-rw-r--r--es_ES/es_ES.go2
-rw-r--r--es_GQ/es_GQ.go2
-rw-r--r--es_GT/es_GT.go2
-rw-r--r--es_HN/es_HN.go2
-rw-r--r--es_IC/es_IC.go2
-rw-r--r--es_MX/es_MX.go2
-rw-r--r--es_NI/es_NI.go2
-rw-r--r--es_PA/es_PA.go2
-rw-r--r--es_PE/es_PE.go2
-rw-r--r--es_PH/es_PH.go2
-rw-r--r--es_PR/es_PR.go2
-rw-r--r--es_PY/es_PY.go2
-rw-r--r--es_SV/es_SV.go2
-rw-r--r--es_US/es_US.go2
-rw-r--r--es_UY/es_UY.go2
-rw-r--r--es_VE/es_VE.go2
-rw-r--r--et/et.go2
-rw-r--r--et_EE/et_EE.go2
-rw-r--r--eu/eu.go2
-rw-r--r--eu_ES/eu_ES.go2
-rw-r--r--ewo/ewo.go2
-rw-r--r--ewo_CM/ewo_CM.go2
-rw-r--r--fa/fa.go2
-rw-r--r--fa_AF/fa_AF.go2
-rw-r--r--fa_IR/fa_IR.go2
-rw-r--r--ff/ff.go2
-rw-r--r--ff_CM/ff_CM.go2
-rw-r--r--ff_GN/ff_GN.go2
-rw-r--r--ff_MR/ff_MR.go2
-rw-r--r--ff_SN/ff_SN.go2
-rw-r--r--fi/fi.go2
-rw-r--r--fi_FI/fi_FI.go2
-rw-r--r--fil/fil.go2
-rw-r--r--fil_PH/fil_PH.go2
-rw-r--r--fo/fo.go2
-rw-r--r--fo_DK/fo_DK.go2
-rw-r--r--fo_FO/fo_FO.go2
-rw-r--r--fr/fr.go2
-rw-r--r--fr_BE/fr_BE.go2
-rw-r--r--fr_BF/fr_BF.go2
-rw-r--r--fr_BI/fr_BI.go2
-rw-r--r--fr_BJ/fr_BJ.go2
-rw-r--r--fr_BL/fr_BL.go2
-rw-r--r--fr_CA/fr_CA.go2
-rw-r--r--fr_CD/fr_CD.go2
-rw-r--r--fr_CF/fr_CF.go2
-rw-r--r--fr_CG/fr_CG.go2
-rw-r--r--fr_CH/fr_CH.go2
-rw-r--r--fr_CI/fr_CI.go2
-rw-r--r--fr_CM/fr_CM.go2
-rw-r--r--fr_DJ/fr_DJ.go2
-rw-r--r--fr_DZ/fr_DZ.go2
-rw-r--r--fr_FR/fr_FR.go2
-rw-r--r--fr_GA/fr_GA.go2
-rw-r--r--fr_GF/fr_GF.go2
-rw-r--r--fr_GN/fr_GN.go2
-rw-r--r--fr_GP/fr_GP.go2
-rw-r--r--fr_GQ/fr_GQ.go2
-rw-r--r--fr_HT/fr_HT.go2
-rw-r--r--fr_KM/fr_KM.go2
-rw-r--r--fr_LU/fr_LU.go2
-rw-r--r--fr_MA/fr_MA.go2
-rw-r--r--fr_MC/fr_MC.go2
-rw-r--r--fr_MF/fr_MF.go2
-rw-r--r--fr_MG/fr_MG.go2
-rw-r--r--fr_ML/fr_ML.go2
-rw-r--r--fr_MQ/fr_MQ.go2
-rw-r--r--fr_MR/fr_MR.go2
-rw-r--r--fr_MU/fr_MU.go2
-rw-r--r--fr_NC/fr_NC.go2
-rw-r--r--fr_NE/fr_NE.go2
-rw-r--r--fr_PF/fr_PF.go2
-rw-r--r--fr_PM/fr_PM.go2
-rw-r--r--fr_RE/fr_RE.go2
-rw-r--r--fr_RW/fr_RW.go2
-rw-r--r--fr_SC/fr_SC.go2
-rw-r--r--fr_SN/fr_SN.go2
-rw-r--r--fr_SY/fr_SY.go2
-rw-r--r--fr_TD/fr_TD.go2
-rw-r--r--fr_TG/fr_TG.go2
-rw-r--r--fr_TN/fr_TN.go2
-rw-r--r--fr_VU/fr_VU.go2
-rw-r--r--fr_WF/fr_WF.go2
-rw-r--r--fr_YT/fr_YT.go2
-rw-r--r--fur/fur.go2
-rw-r--r--fur_IT/fur_IT.go2
-rw-r--r--fy/fy.go2
-rw-r--r--fy_NL/fy_NL.go2
-rw-r--r--ga/ga.go2
-rw-r--r--ga_IE/ga_IE.go2
-rw-r--r--gd/gd.go2
-rw-r--r--gd_GB/gd_GB.go2
-rw-r--r--gl/gl.go2
-rw-r--r--gl_ES/gl_ES.go2
-rw-r--r--gsw/gsw.go2
-rw-r--r--gsw_CH/gsw_CH.go2
-rw-r--r--gsw_FR/gsw_FR.go2
-rw-r--r--gsw_LI/gsw_LI.go2
-rw-r--r--gu/gu.go2
-rw-r--r--gu_IN/gu_IN.go2
-rw-r--r--guz/guz.go2
-rw-r--r--guz_KE/guz_KE.go2
-rw-r--r--gv/gv.go4
-rw-r--r--gv_IM/gv_IM.go2
-rw-r--r--ha/ha.go2
-rw-r--r--ha_GH/ha_GH.go2
-rw-r--r--ha_NE/ha_NE.go2
-rw-r--r--ha_NG/ha_NG.go2
-rw-r--r--haw/haw.go2
-rw-r--r--haw_US/haw_US.go2
-rw-r--r--he/he.go2
-rw-r--r--he_IL/he_IL.go2
-rw-r--r--hi/hi.go2
-rw-r--r--hi_IN/hi_IN.go2
-rw-r--r--hr/hr.go2
-rw-r--r--hr_BA/hr_BA.go2
-rw-r--r--hr_HR/hr_HR.go4
-rw-r--r--hsb/hsb.go2
-rw-r--r--hsb_DE/hsb_DE.go2
-rw-r--r--hu/hu.go2
-rw-r--r--hu_HU/hu_HU.go2
-rw-r--r--hy/hy.go2
-rw-r--r--hy_AM/hy_AM.go2
-rw-r--r--id/id.go2
-rw-r--r--id_ID/id_ID.go2
-rw-r--r--ig/ig.go2
-rw-r--r--ig_NG/ig_NG.go2
-rw-r--r--ii/ii.go2
-rw-r--r--ii_CN/ii_CN.go2
-rw-r--r--is/is.go2
-rw-r--r--is_IS/is_IS.go2
-rw-r--r--it/it.go2
-rw-r--r--it_CH/it_CH.go2
-rw-r--r--it_IT/it_IT.go2
-rw-r--r--it_SM/it_SM.go2
-rw-r--r--ja/ja.go2
-rw-r--r--ja_JP/ja_JP.go2
-rw-r--r--jgo/jgo.go2
-rw-r--r--jgo_CM/jgo_CM.go2
-rw-r--r--jmc/jmc.go2
-rw-r--r--jmc_TZ/jmc_TZ.go2
-rw-r--r--ka/ka.go2
-rw-r--r--ka_GE/ka_GE.go2
-rw-r--r--kab/kab.go2
-rw-r--r--kab_DZ/kab_DZ.go2
-rw-r--r--kam/kam.go2
-rw-r--r--kam_KE/kam_KE.go2
-rw-r--r--kde/kde.go2
-rw-r--r--kde_TZ/kde_TZ.go2
-rw-r--r--kea/kea.go2
-rw-r--r--kea_CV/kea_CV.go2
-rw-r--r--khq/khq.go2
-rw-r--r--khq_ML/khq_ML.go2
-rw-r--r--ki/ki.go2
-rw-r--r--ki_KE/ki_KE.go2
-rw-r--r--kk/kk.go2
-rw-r--r--kk_KZ/kk_KZ.go2
-rw-r--r--kkj/kkj.go2
-rw-r--r--kkj_CM/kkj_CM.go2
-rw-r--r--kl/kl.go2
-rw-r--r--kl_GL/kl_GL.go2
-rw-r--r--kln/kln.go2
-rw-r--r--kln_KE/kln_KE.go2
-rw-r--r--km/km.go2
-rw-r--r--km_KH/km_KH.go2
-rw-r--r--kn/kn.go2
-rw-r--r--kn_IN/kn_IN.go2
-rw-r--r--ko/ko.go2
-rw-r--r--ko_KP/ko_KP.go2
-rw-r--r--ko_KR/ko_KR.go2
-rw-r--r--kok/kok.go2
-rw-r--r--kok_IN/kok_IN.go2
-rw-r--r--ks/ks.go2
-rw-r--r--ks_IN/ks_IN.go2
-rw-r--r--ksb/ksb.go2
-rw-r--r--ksb_TZ/ksb_TZ.go2
-rw-r--r--ksf/ksf.go2
-rw-r--r--ksf_CM/ksf_CM.go2
-rw-r--r--ksh/ksh.go2
-rw-r--r--ksh_DE/ksh_DE.go2
-rw-r--r--kw/kw.go2
-rw-r--r--kw_GB/kw_GB.go2
-rw-r--r--ky/ky.go2
-rw-r--r--ky_KG/ky_KG.go2
-rw-r--r--lag/lag.go2
-rw-r--r--lag_TZ/lag_TZ.go2
-rw-r--r--lb/lb.go2
-rw-r--r--lb_LU/lb_LU.go2
-rw-r--r--lg/lg.go2
-rw-r--r--lg_UG/lg_UG.go2
-rw-r--r--lkt/lkt.go2
-rw-r--r--lkt_US/lkt_US.go2
-rw-r--r--ln/ln.go2
-rw-r--r--ln_AO/ln_AO.go2
-rw-r--r--ln_CD/ln_CD.go2
-rw-r--r--ln_CF/ln_CF.go2
-rw-r--r--ln_CG/ln_CG.go2
-rw-r--r--lo/lo.go2
-rw-r--r--lo_LA/lo_LA.go2
-rw-r--r--lrc/lrc.go2
-rw-r--r--lrc_IQ/lrc_IQ.go2
-rw-r--r--lrc_IR/lrc_IR.go2
-rw-r--r--lt/lt.go2
-rw-r--r--lt_LT/lt_LT.go2
-rw-r--r--lu/lu.go2
-rw-r--r--lu_CD/lu_CD.go2
-rw-r--r--luo/luo.go2
-rw-r--r--luo_KE/luo_KE.go2
-rw-r--r--luy/luy.go2
-rw-r--r--luy_KE/luy_KE.go2
-rw-r--r--lv/lv.go4
-rw-r--r--lv_LV/lv_LV.go2
-rw-r--r--mas/mas.go2
-rw-r--r--mas_KE/mas_KE.go2
-rw-r--r--mas_TZ/mas_TZ.go2
-rw-r--r--mer/mer.go2
-rw-r--r--mer_KE/mer_KE.go2
-rw-r--r--mfe/mfe.go2
-rw-r--r--mfe_MU/mfe_MU.go2
-rw-r--r--mg/mg.go2
-rw-r--r--mg_MG/mg_MG.go2
-rw-r--r--mgh/mgh.go2
-rw-r--r--mgh_MZ/mgh_MZ.go2
-rw-r--r--mgo/mgo.go2
-rw-r--r--mgo_CM/mgo_CM.go2
-rw-r--r--mk/mk.go2
-rw-r--r--mk_MK/mk_MK.go2
-rw-r--r--ml/ml.go2
-rw-r--r--ml_IN/ml_IN.go2
-rw-r--r--mn/mn.go2
-rw-r--r--mn_MN/mn_MN.go2
-rw-r--r--mr/mr.go2
-rw-r--r--mr_IN/mr_IN.go2
-rw-r--r--ms/ms.go2
-rw-r--r--ms_BN/ms_BN.go2
-rw-r--r--ms_MY/ms_MY.go2
-rw-r--r--ms_SG/ms_SG.go2
-rw-r--r--mt/mt.go2
-rw-r--r--mt_MT/mt_MT.go2
-rw-r--r--mua/mua.go2
-rw-r--r--mua_CM/mua_CM.go2
-rw-r--r--my/my.go2
-rw-r--r--my_MM/my_MM.go2
-rw-r--r--mzn/mzn.go2
-rw-r--r--mzn_IR/mzn_IR.go2
-rw-r--r--naq/naq.go2
-rw-r--r--naq_NA/naq_NA.go2
-rw-r--r--nb/nb.go2
-rw-r--r--nb_NO/nb_NO.go2
-rw-r--r--nb_SJ/nb_SJ.go2
-rw-r--r--nd/nd.go2
-rw-r--r--nd_ZW/nd_ZW.go2
-rw-r--r--nds/nds.go2
-rw-r--r--nds_DE/nds_DE.go2
-rw-r--r--nds_NL/nds_NL.go2
-rw-r--r--ne/ne.go2
-rw-r--r--ne_IN/ne_IN.go2
-rw-r--r--ne_NP/ne_NP.go2
-rw-r--r--nl/nl.go2
-rw-r--r--nl_AW/nl_AW.go2
-rw-r--r--nl_BE/nl_BE.go2
-rw-r--r--nl_BQ/nl_BQ.go2
-rw-r--r--nl_CW/nl_CW.go2
-rw-r--r--nl_NL/nl_NL.go2
-rw-r--r--nl_SR/nl_SR.go2
-rw-r--r--nl_SX/nl_SX.go2
-rw-r--r--nmg/nmg.go2
-rw-r--r--nmg_CM/nmg_CM.go2
-rw-r--r--nn/nn.go2
-rw-r--r--nn_NO/nn_NO.go2
-rw-r--r--nnh/nnh.go2
-rw-r--r--nnh_CM/nnh_CM.go2
-rw-r--r--nus/nus.go2
-rw-r--r--nus_SS/nus_SS.go2
-rw-r--r--nyn/nyn.go2
-rw-r--r--nyn_UG/nyn_UG.go2
-rw-r--r--om/om.go2
-rw-r--r--om_ET/om_ET.go2
-rw-r--r--om_KE/om_KE.go2
-rw-r--r--or/or.go2
-rw-r--r--or_IN/or_IN.go2
-rw-r--r--os/os.go2
-rw-r--r--os_GE/os_GE.go2
-rw-r--r--os_RU/os_RU.go2
-rw-r--r--pa/pa.go2
-rw-r--r--pa_Arab/pa_Arab.go2
-rw-r--r--pa_Arab_PK/pa_Arab_PK.go2
-rw-r--r--pa_Guru/pa_Guru.go2
-rw-r--r--pa_Guru_IN/pa_Guru_IN.go2
-rw-r--r--pl/pl.go2
-rw-r--r--pl_PL/pl_PL.go2
-rw-r--r--prg/prg.go6
-rw-r--r--prg_001/prg_001.go2
-rw-r--r--ps/ps.go2
-rw-r--r--ps_AF/ps_AF.go2
-rw-r--r--pt/pt.go2
-rw-r--r--pt_AO/pt_AO.go2
-rw-r--r--pt_BR/pt_BR.go2
-rw-r--r--pt_CH/pt_CH.go2
-rw-r--r--pt_CV/pt_CV.go2
-rw-r--r--pt_GQ/pt_GQ.go2
-rw-r--r--pt_GW/pt_GW.go2
-rw-r--r--pt_LU/pt_LU.go2
-rw-r--r--pt_MO/pt_MO.go2
-rw-r--r--pt_MZ/pt_MZ.go2
-rw-r--r--pt_PT/pt_PT.go4
-rw-r--r--pt_ST/pt_ST.go2
-rw-r--r--pt_TL/pt_TL.go2
-rw-r--r--qu/qu.go2
-rw-r--r--qu_BO/qu_BO.go2
-rw-r--r--qu_EC/qu_EC.go2
-rw-r--r--qu_PE/qu_PE.go2
-rw-r--r--rm/rm.go2
-rw-r--r--rm_CH/rm_CH.go2
-rw-r--r--rn/rn.go2
-rw-r--r--rn_BI/rn_BI.go2
-rw-r--r--ro/ro.go2
-rw-r--r--ro_MD/ro_MD.go2
-rw-r--r--ro_RO/ro_RO.go2
-rw-r--r--rof/rof.go2
-rw-r--r--rof_TZ/rof_TZ.go2
-rw-r--r--root/root.go2
-rw-r--r--ru/ru.go2
-rw-r--r--ru_BY/ru_BY.go2
-rw-r--r--ru_KG/ru_KG.go4
-rw-r--r--ru_KZ/ru_KZ.go2
-rw-r--r--ru_MD/ru_MD.go2
-rw-r--r--ru_RU/ru_RU.go4
-rw-r--r--ru_UA/ru_UA.go2
-rw-r--r--rw/rw.go2
-rw-r--r--rw_RW/rw_RW.go2
-rw-r--r--rwk/rwk.go2
-rw-r--r--rwk_TZ/rwk_TZ.go2
-rw-r--r--sah/sah.go2
-rw-r--r--sah_RU/sah_RU.go2
-rw-r--r--saq/saq.go2
-rw-r--r--saq_KE/saq_KE.go2
-rw-r--r--sbp/sbp.go2
-rw-r--r--sbp_TZ/sbp_TZ.go2
-rw-r--r--se/se.go2
-rw-r--r--se_FI/se_FI.go2
-rw-r--r--se_NO/se_NO.go2
-rw-r--r--se_SE/se_SE.go2
-rw-r--r--seh/seh.go2
-rw-r--r--seh_MZ/seh_MZ.go2
-rw-r--r--ses/ses.go2
-rw-r--r--ses_ML/ses_ML.go2
-rw-r--r--sg/sg.go2
-rw-r--r--sg_CF/sg_CF.go2
-rw-r--r--shi/shi.go2
-rw-r--r--shi_Latn/shi_Latn.go2
-rw-r--r--shi_Latn_MA/shi_Latn_MA.go2
-rw-r--r--shi_Tfng/shi_Tfng.go2
-rw-r--r--shi_Tfng_MA/shi_Tfng_MA.go2
-rw-r--r--si/si.go2
-rw-r--r--si_LK/si_LK.go2
-rw-r--r--sk/sk.go2
-rw-r--r--sk_SK/sk_SK.go2
-rw-r--r--sl/sl.go2
-rw-r--r--sl_SI/sl_SI.go2
-rw-r--r--smn/smn.go2
-rw-r--r--smn_FI/smn_FI.go2
-rw-r--r--sn/sn.go2
-rw-r--r--sn_ZW/sn_ZW.go2
-rw-r--r--so/so.go2
-rw-r--r--so_DJ/so_DJ.go2
-rw-r--r--so_ET/so_ET.go2
-rw-r--r--so_KE/so_KE.go2
-rw-r--r--so_SO/so_SO.go2
-rw-r--r--sq/sq.go2
-rw-r--r--sq_AL/sq_AL.go2
-rw-r--r--sq_MK/sq_MK.go2
-rw-r--r--sq_XK/sq_XK.go2
-rw-r--r--sr/sr.go4
-rw-r--r--sr_Cyrl/sr_Cyrl.go2
-rw-r--r--sr_Cyrl_BA/sr_Cyrl_BA.go6
-rw-r--r--sr_Cyrl_ME/sr_Cyrl_ME.go4
-rw-r--r--sr_Cyrl_RS/sr_Cyrl_RS.go6
-rw-r--r--sr_Cyrl_XK/sr_Cyrl_XK.go4
-rw-r--r--sr_Latn/sr_Latn.go4
-rw-r--r--sr_Latn_BA/sr_Latn_BA.go4
-rw-r--r--sr_Latn_ME/sr_Latn_ME.go4
-rw-r--r--sr_Latn_RS/sr_Latn_RS.go6
-rw-r--r--sr_Latn_XK/sr_Latn_XK.go2
-rw-r--r--sv/sv.go2
-rw-r--r--sv_AX/sv_AX.go2
-rw-r--r--sv_FI/sv_FI.go2
-rw-r--r--sv_SE/sv_SE.go2
-rw-r--r--sw/sw.go2
-rw-r--r--sw_CD/sw_CD.go2
-rw-r--r--sw_KE/sw_KE.go2
-rw-r--r--sw_TZ/sw_TZ.go2
-rw-r--r--sw_UG/sw_UG.go2
-rw-r--r--ta/ta.go2
-rw-r--r--ta_IN/ta_IN.go2
-rw-r--r--ta_LK/ta_LK.go2
-rw-r--r--ta_MY/ta_MY.go2
-rw-r--r--ta_SG/ta_SG.go2
-rw-r--r--te/te.go2
-rw-r--r--te_IN/te_IN.go2
-rw-r--r--teo/teo.go2
-rw-r--r--teo_KE/teo_KE.go2
-rw-r--r--teo_UG/teo_UG.go2
-rw-r--r--th/th.go2
-rw-r--r--th_TH/th_TH.go2
-rw-r--r--ti/ti.go2
-rw-r--r--ti_ER/ti_ER.go2
-rw-r--r--ti_ET/ti_ET.go2
-rw-r--r--tk/tk.go2
-rw-r--r--tk_TM/tk_TM.go2
-rw-r--r--to/to.go2
-rw-r--r--to_TO/to_TO.go2
-rw-r--r--tqq255022
-rw-r--r--tr/tr.go2
-rw-r--r--tr_CY/tr_CY.go2
-rw-r--r--tr_TR/tr_TR.go2
-rw-r--r--twq/twq.go2
-rw-r--r--twq_NE/twq_NE.go2
-rw-r--r--tzm/tzm.go2
-rw-r--r--tzm_MA/tzm_MA.go2
-rw-r--r--ug/ug.go2
-rw-r--r--ug_CN/ug_CN.go2
-rw-r--r--uk/uk.go4
-rw-r--r--uk_UA/uk_UA.go2
-rw-r--r--ur/ur.go2
-rw-r--r--ur_IN/ur_IN.go2
-rw-r--r--ur_PK/ur_PK.go2
-rw-r--r--uz/uz.go2
-rw-r--r--uz_Arab/uz_Arab.go2
-rw-r--r--uz_Arab_AF/uz_Arab_AF.go2
-rw-r--r--uz_Cyrl/uz_Cyrl.go2
-rw-r--r--uz_Cyrl_UZ/uz_Cyrl_UZ.go2
-rw-r--r--uz_Latn/uz_Latn.go2
-rw-r--r--uz_Latn_UZ/uz_Latn_UZ.go2
-rw-r--r--vai/vai.go2
-rw-r--r--vai_Latn/vai_Latn.go2
-rw-r--r--vai_Latn_LR/vai_Latn_LR.go2
-rw-r--r--vai_Vaii/vai_Vaii.go2
-rw-r--r--vai_Vaii_LR/vai_Vaii_LR.go2
-rw-r--r--vi/vi.go2
-rw-r--r--vi_VN/vi_VN.go2
-rw-r--r--vo/vo.go2
-rw-r--r--vo_001/vo_001.go2
-rw-r--r--vun/vun.go2
-rw-r--r--vun_TZ/vun_TZ.go2
-rw-r--r--wae/wae.go2
-rw-r--r--wae_CH/wae_CH.go2
-rw-r--r--xog/xog.go2
-rw-r--r--xog_UG/xog_UG.go2
-rw-r--r--yav/yav.go2
-rw-r--r--yav_CM/yav_CM.go2
-rw-r--r--yi/yi.go2
-rw-r--r--yi_001/yi_001.go2
-rw-r--r--yo/yo.go2
-rw-r--r--yo_BJ/yo_BJ.go2
-rw-r--r--yo_NG/yo_NG.go2
-rw-r--r--yue/yue.go2
-rw-r--r--yue_HK/yue_HK.go2
-rw-r--r--zgh/zgh.go2
-rw-r--r--zgh_MA/zgh_MA.go2
-rw-r--r--zh/zh.go2
-rw-r--r--zh_Hans/zh_Hans.go2
-rw-r--r--zh_Hans_CN/zh_Hans_CN.go2
-rw-r--r--zh_Hans_HK/zh_Hans_HK.go2
-rw-r--r--zh_Hans_MO/zh_Hans_MO.go2
-rw-r--r--zh_Hans_SG/zh_Hans_SG.go2
-rw-r--r--zh_Hant/zh_Hant.go2
-rw-r--r--zh_Hant_HK/zh_Hant_HK.go2
-rw-r--r--zh_Hant_MO/zh_Hant_MO.go2
-rw-r--r--zh_Hant_TW/zh_Hant_TW.go2
-rw-r--r--zu/zu.go2
-rw-r--r--zu_ZA/zu_ZA.go2
722 files changed, 257440 insertions, 1914 deletions
diff --git a/README.md b/README.md
index c2fb25b7..676b77da 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
## locales
<img align="right" src="https://raw.githubusercontent.com/go-playground/locales/master/logo.png">
-![Project status](https://img.shields.io/badge/version-0.11.0-green.svg)
+![Project status](https://img.shields.io/badge/version-0.11.1-green.svg)
[![Build Status](https://semaphoreci.com/api/v1/joeybloggs/locales/branches/master/badge.svg)](https://semaphoreci.com/joeybloggs/locales)
[![Go Report Card](https://goreportcard.com/badge/github.com/go-playground/locales)](https://goreportcard.com/report/github.com/go-playground/locales)
[![GoDoc](https://godoc.org/github.com/go-playground/locales?status.svg)](https://godoc.org/github.com/go-playground/locales)
diff --git a/af/af.go b/af/af.go
index a76aa233..f220fb68 100644
--- a/af/af.go
+++ b/af/af.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v.C.", "n.C."},
erasNarrow: []string{"v.C.", "n.C."},
erasWide: []string{"voor Christus", "na Christus"},
- timezones: map[string]string{"UYT": "Uruguay-standaardtyd", "MST": "MST", "CDT": "Sentrale dagligtyd", "HEPM": "Sint-Pierre en Miquelon-dagligtyd", "MEZ": "Sentraal-Europese standaardtyd", "TMST": "Turkmenistan-somertyd", "WART": "Wes-Argentinië-standaardtyd", "UYST": "Uruguay-somertyd", "VET": "Venezuela-tyd", "IST": "Indië-standaardtyd", "JDT": "Japan-dagligtyd", "HEPMX": "Meksikaanse Pasifiese dagligtyd", "WAT": "Wes-Afrika-standaardtyd", "HECU": "Kuba-dagligtyd", "GYT": "Guyana-tyd", "HNPM": "Sint-Pierre en Miquelon-standaardtyd", "ChST": "Chamorro-standaardtyd", "CAT": "Sentraal-Afrika-tyd", "WIB": "Wes-Indonesië-tyd", "HAT": "Newfoundland-dagligtyd", "HNOG": "Wes-Groenland-standaardtyd", "AEDT": "Australiese Oostelike dagligtyd", "AWDT": "Australiese Westelike dagligtyd", "LHST": "Lord Howe-standaardtyd", "GFT": "Frans-Guiana-tyd", "HNCU": "Kuba-standaardtyd", "HEEG": "Oos-Groenland-somertyd", "CHADT": "Chatham-dagligtyd", "JST": "Japan-standaardtyd", "HNEG": "Oos-Groenland-standaardtyd", "ACDT": "Australiese sentrale dagligtyd", "AEST": "Australiese Oostelike standaardtyd", "COST": "Colombië-somertyd", "SGT": "Singapoer-standaardtyd", "CST": "Sentrale standaardtyd", "ADT": "Atlantiese dagligtyd", "HADT": "Hawaii-Aleusiër-dagligtyd", "LHDT": "Lord Howe-dagligtyd", "WAST": "Wes-Afrika-somertyd", "GMT": "Greenwich-mediaantyd", "MDT": "MDT", "HNPMX": "Meksikaanse Pasifiese standaardtyd", "ACWST": "Australiese sentraal-Westelike standaard-tyd", "AWST": "Australiese Westelike standaardtyd", "WARST": "Wes-Argentinië-somertyd", "ECT": "Ecuador-tyd", "∅∅∅": "Peru-somertyd", "EDT": "Oostelike dagligtyd", "NZST": "Nieu-Seeland-standaardtyd", "OESZ": "Oos-Europese somertyd", "HENOMX": "Noordwes-Meksiko-dagligtyd", "AKDT": "Alaska-dagligtyd", "HEOG": "Wes-Groenland-somertyd", "WESZ": "Wes-Europese somertyd", "HKST": "Hongkong-somertyd", "EAT": "Oos-Afrika-tyd", "HAST": "Hawaii-Aleusiër-standaardtyd", "PDT": "Pasifiese dagligtyd", "WITA": "Sentraal Indonesië-tyd", "BOT": "Bolivia-tyd", "MYT": "Maleisië-tyd", "AKST": "Alaska-standaardtyd", "BT": "Bhoetan-tyd", "SRT": "Suriname-tyd", "HNT": "Newfoundland-standaardtyd", "SAST": "Suid-Afrika-standaardtyd", "CLT": "Chili-standaardtyd", "OEZ": "Oos-Europese standaardtyd", "ART": "Argentinië-standaardtyd", "WEZ": "Wes-Europese standaardtyd", "ACWDT": "Australiese sentraal-Westelike dagligtyd", "CHAST": "Chatham-standaardtyd", "AST": "Atlantiese standaardtyd", "ARST": "Argentinië-somertyd", "PST": "Pasifiese standaardtyd", "MESZ": "Sentraal-Europese somertyd", "CLST": "Chili-somertyd", "COT": "Colombië-standaardtyd", "NZDT": "Nieu-Seeland-dagligtyd", "TMT": "Turkmenistan-standaardtyd", "ACST": "Australiese sentraal-standaardtyd", "EST": "Oostelike standaardtyd", "WIT": "Oos-Indonesië-tyd", "HKT": "Hongkong-standaardtyd", "HNNOMX": "Noordwes-Meksiko-standaardtyd"},
+ timezones: map[string]string{"CST": "Sentrale standaardtyd", "WIT": "Oos-Indonesië-tyd", "WEZ": "Wes-Europese standaardtyd", "EDT": "Oostelike dagligtyd", "HECU": "Kuba-dagligtyd", "ACWST": "Australiese sentraal-Westelike standaard-tyd", "JDT": "Japan-dagligtyd", "MEZ": "Sentraal-Europese standaardtyd", "MDT": "MDT", "HNPMX": "Meksikaanse Pasifiese standaardtyd", "BOT": "Bolivia-tyd", "CHADT": "Chatham-dagligtyd", "NZST": "Nieu-Seeland-standaardtyd", "VET": "Venezuela-tyd", "OEZ": "Oos-Europese standaardtyd", "BT": "Bhoetan-tyd", "HNT": "Newfoundland-standaardtyd", "AEST": "Australiese Oostelike standaardtyd", "SRT": "Suriname-tyd", "EAT": "Oos-Afrika-tyd", "AWDT": "Australiese Westelike dagligtyd", "TMT": "Turkmenistan-standaardtyd", "ACDT": "Australiese sentrale dagligtyd", "SGT": "Singapoer-standaardtyd", "CAT": "Sentraal-Afrika-tyd", "WARST": "Wes-Argentinië-somertyd", "HEOG": "Wes-Groenland-somertyd", "HEPMX": "Meksikaanse Pasifiese dagligtyd", "ACWDT": "Australiese sentraal-Westelike dagligtyd", "COST": "Colombië-somertyd", "AKDT": "Alaska-dagligtyd", "PST": "Pasifiese standaardtyd", "HENOMX": "Noordwes-Meksiko-dagligtyd", "HNCU": "Kuba-standaardtyd", "CLST": "Chili-somertyd", "HAT": "Newfoundland-dagligtyd", "HEPM": "Sint-Pierre en Miquelon-dagligtyd", "UYT": "Uruguay-standaardtyd", "MYT": "Maleisië-tyd", "WART": "Wes-Argentinië-standaardtyd", "AST": "Atlantiese standaardtyd", "WAT": "Wes-Afrika-standaardtyd", "EST": "Oostelike standaardtyd", "WITA": "Sentraal Indonesië-tyd", "AWST": "Australiese Westelike standaardtyd", "WESZ": "Wes-Europese somertyd", "HNOG": "Wes-Groenland-standaardtyd", "HKT": "Hongkong-standaardtyd", "SAST": "Suid-Afrika-standaardtyd", "CDT": "Sentrale dagligtyd", "MST": "MST", "ART": "Argentinië-standaardtyd", "OESZ": "Oos-Europese somertyd", "ARST": "Argentinië-somertyd", "WAST": "Wes-Afrika-somertyd", "HEEG": "Oos-Groenland-somertyd", "∅∅∅": "∅∅∅", "HAST": "Hawaii-Aleusiër-standaardtyd", "JST": "Japan-standaardtyd", "MESZ": "Sentraal-Europese somertyd", "IST": "Indië-standaardtyd", "ECT": "Ecuador-tyd", "PDT": "Pasifiese dagligtyd", "GFT": "Frans-Guiana-tyd", "AKST": "Alaska-standaardtyd", "HNPM": "Sint-Pierre en Miquelon-standaardtyd", "LHDT": "Lord Howe-dagligtyd", "NZDT": "Nieu-Seeland-dagligtyd", "HKST": "Hongkong-somertyd", "HNNOMX": "Noordwes-Meksiko-standaardtyd", "HADT": "Hawaii-Aleusiër-dagligtyd", "COT": "Colombië-standaardtyd", "HNEG": "Oos-Groenland-standaardtyd", "ChST": "Chamorro-standaardtyd", "LHST": "Lord Howe-standaardtyd", "GYT": "Guyana-tyd", "CHAST": "Chatham-standaardtyd", "GMT": "Greenwich-mediaantyd", "ACST": "Australiese sentraal-standaardtyd", "WIB": "Wes-Indonesië-tyd", "CLT": "Chili-standaardtyd", "AEDT": "Australiese Oostelike dagligtyd", "UYST": "Uruguay-somertyd", "ADT": "Atlantiese dagligtyd", "TMST": "Turkmenistan-somertyd"},
}
}
diff --git a/af_NA/af_NA.go b/af_NA/af_NA.go
index fd4af720..6be45a29 100644
--- a/af_NA/af_NA.go
+++ b/af_NA/af_NA.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v.C.", "n.C."},
erasNarrow: []string{"v.C.", "n.C."},
erasWide: []string{"voor Christus", "na Christus"},
- timezones: map[string]string{"HEEG": "Oos-Groenland-somertyd", "HNNOMX": "Noordwes-Meksiko-standaardtyd", "HECU": "Kuba-dagligtyd", "AEDT": "Australiese Oostelike dagligtyd", "JDT": "Japan-dagligtyd", "ChST": "Chamorro-standaardtyd", "AKST": "Alaska-standaardtyd", "CDT": "Sentrale dagligtyd", "AST": "Atlantiese standaardtyd", "ACWDT": "Australiese sentraal-Westelike dagligtyd", "NZDT": "Nieu-Seeland-dagligtyd", "AWST": "Australiese Westelike standaardtyd", "GFT": "Frans-Guiana-tyd", "ECT": "Ecuador-tyd", "MST": "MST", "HEPMX": "Meksikaanse Pasifiese dagligtyd", "ACWST": "Australiese sentraal-Westelike standaard-tyd", "AEST": "Australiese Oostelike standaardtyd", "AWDT": "Australiese Westelike dagligtyd", "CLST": "Chili-somertyd", "∅∅∅": "Peru-somertyd", "EST": "Oostelike standaardtyd", "GYT": "Guyana-tyd", "MYT": "Maleisië-tyd", "WIT": "Oos-Indonesië-tyd", "WITA": "Sentraal Indonesië-tyd", "HNPM": "Sint-Pierre en Miquelon-standaardtyd", "CLT": "Chili-standaardtyd", "WAST": "Wes-Afrika-somertyd", "OESZ": "Oos-Europese somertyd", "WARST": "Wes-Argentinië-somertyd", "GMT": "Greenwich-mediaantyd", "HNPMX": "Meksikaanse Pasifiese standaardtyd", "EDT": "Oostelike dagligtyd", "BT": "Bhoetan-tyd", "ARST": "Argentinië-somertyd", "HKST": "Hongkong-somertyd", "HNEG": "Oos-Groenland-standaardtyd", "CAT": "Sentraal-Afrika-tyd", "WART": "Wes-Argentinië-standaardtyd", "COST": "Colombië-somertyd", "CST": "Sentrale standaardtyd", "HEOG": "Wes-Groenland-somertyd", "HKT": "Hongkong-standaardtyd", "BOT": "Bolivia-tyd", "SAST": "Suid-Afrika-standaardtyd", "EAT": "Oos-Afrika-tyd", "VET": "Venezuela-tyd", "ART": "Argentinië-standaardtyd", "LHDT": "Lord Howe-dagligtyd", "NZST": "Nieu-Seeland-standaardtyd", "HNT": "Newfoundland-standaardtyd", "MEZ": "Sentraal-Europese standaardtyd", "MESZ": "Sentraal-Europese somertyd", "ACST": "Australiese sentraal-standaardtyd", "IST": "Indië-standaardtyd", "WAT": "Wes-Afrika-standaardtyd", "MDT": "MDT", "ADT": "Atlantiese dagligtyd", "HEPM": "Sint-Pierre en Miquelon-dagligtyd", "LHST": "Lord Howe-standaardtyd", "CHADT": "Chatham-dagligtyd", "OEZ": "Oos-Europese standaardtyd", "SGT": "Singapoer-standaardtyd", "HADT": "Hawaii-Aleusiër-dagligtyd", "WEZ": "Wes-Europese standaardtyd", "CHAST": "Chatham-standaardtyd", "HNCU": "Kuba-standaardtyd", "AKDT": "Alaska-dagligtyd", "PST": "Pasifiese standaardtyd", "HAT": "Newfoundland-dagligtyd", "TMT": "Turkmenistan-standaardtyd", "TMST": "Turkmenistan-somertyd", "COT": "Colombië-standaardtyd", "HENOMX": "Noordwes-Meksiko-dagligtyd", "PDT": "Pasifiese dagligtyd", "WESZ": "Wes-Europese somertyd", "JST": "Japan-standaardtyd", "HNOG": "Wes-Groenland-standaardtyd", "ACDT": "Australiese sentrale dagligtyd", "UYT": "Uruguay-standaardtyd", "UYST": "Uruguay-somertyd", "WIB": "Wes-Indonesië-tyd", "HAST": "Hawaii-Aleusiër-standaardtyd", "SRT": "Suriname-tyd"},
+ timezones: map[string]string{"HNEG": "Oos-Groenland-standaardtyd", "HEEG": "Oos-Groenland-somertyd", "LHDT": "Lord Howe-dagligtyd", "SRT": "Suriname-tyd", "GYT": "Guyana-tyd", "ADT": "Atlantiese dagligtyd", "EST": "Oostelike standaardtyd", "COST": "Colombië-somertyd", "HNCU": "Kuba-standaardtyd", "WIT": "Oos-Indonesië-tyd", "HNPM": "Sint-Pierre en Miquelon-standaardtyd", "WESZ": "Wes-Europese somertyd", "TMT": "Turkmenistan-standaardtyd", "ACDT": "Australiese sentrale dagligtyd", "AKDT": "Alaska-dagligtyd", "WITA": "Sentraal Indonesië-tyd", "LHST": "Lord Howe-standaardtyd", "WIB": "Wes-Indonesië-tyd", "CST": "Sentrale standaardtyd", "OEZ": "Oos-Europese standaardtyd", "CLST": "Chili-somertyd", "COT": "Colombië-standaardtyd", "HENOMX": "Noordwes-Meksiko-dagligtyd", "CDT": "Sentrale dagligtyd", "CAT": "Sentraal-Afrika-tyd", "JDT": "Japan-dagligtyd", "EDT": "Oostelike dagligtyd", "ART": "Argentinië-standaardtyd", "MST": "MST", "ChST": "Chamorro-standaardtyd", "ECT": "Ecuador-tyd", "IST": "Indië-standaardtyd", "ACWDT": "Australiese sentraal-Westelike dagligtyd", "VET": "Venezuela-tyd", "AWST": "Australiese Westelike standaardtyd", "TMST": "Turkmenistan-somertyd", "AEDT": "Australiese Oostelike dagligtyd", "PST": "Pasifiese standaardtyd", "ACWST": "Australiese sentraal-Westelike standaard-tyd", "ACST": "Australiese sentraal-standaardtyd", "BT": "Bhoetan-tyd", "GFT": "Frans-Guiana-tyd", "HEPMX": "Meksikaanse Pasifiese dagligtyd", "CHAST": "Chatham-standaardtyd", "HADT": "Hawaii-Aleusiër-dagligtyd", "ARST": "Argentinië-somertyd", "MDT": "MDT", "WAT": "Wes-Afrika-standaardtyd", "WAST": "Wes-Afrika-somertyd", "HAST": "Hawaii-Aleusiër-standaardtyd", "MEZ": "Sentraal-Europese standaardtyd", "WART": "Wes-Argentinië-standaardtyd", "AST": "Atlantiese standaardtyd", "EAT": "Oos-Afrika-tyd", "HKST": "Hongkong-somertyd", "HAT": "Newfoundland-dagligtyd", "SAST": "Suid-Afrika-standaardtyd", "CHADT": "Chatham-dagligtyd", "OESZ": "Oos-Europese somertyd", "HNT": "Newfoundland-standaardtyd", "HEPM": "Sint-Pierre en Miquelon-dagligtyd", "NZDT": "Nieu-Seeland-dagligtyd", "MESZ": "Sentraal-Europese somertyd", "HNOG": "Wes-Groenland-standaardtyd", "HEOG": "Wes-Groenland-somertyd", "MYT": "Maleisië-tyd", "AKST": "Alaska-standaardtyd", "UYST": "Uruguay-somertyd", "CLT": "Chili-standaardtyd", "AEST": "Australiese Oostelike standaardtyd", "BOT": "Bolivia-tyd", "WEZ": "Wes-Europese standaardtyd", "GMT": "Greenwich-mediaantyd", "WARST": "Wes-Argentinië-somertyd", "PDT": "Pasifiese dagligtyd", "NZST": "Nieu-Seeland-standaardtyd", "JST": "Japan-standaardtyd", "HKT": "Hongkong-standaardtyd", "HECU": "Kuba-dagligtyd", "∅∅∅": "Brasilië somertyd", "AWDT": "Australiese Westelike dagligtyd", "SGT": "Singapoer-standaardtyd", "HNNOMX": "Noordwes-Meksiko-standaardtyd", "UYT": "Uruguay-standaardtyd", "HNPMX": "Meksikaanse Pasifiese standaardtyd"},
}
}
diff --git a/af_ZA/af_ZA.go b/af_ZA/af_ZA.go
index 4e99fc4b..cb07b6ad 100644
--- a/af_ZA/af_ZA.go
+++ b/af_ZA/af_ZA.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v.C.", "n.C."},
erasNarrow: []string{"v.C.", "n.C."},
erasWide: []string{"voor Christus", "na Christus"},
- timezones: map[string]string{"∅∅∅": "Amasone-somertyd", "OEZ": "Oos-Europese standaardtyd", "WIB": "Wes-Indonesië-tyd", "AWST": "Australiese Westelike standaardtyd", "CHAST": "Chatham-standaardtyd", "JST": "Japan-standaardtyd", "WARST": "Wes-Argentinië-somertyd", "EDT": "Oostelike dagligtyd", "ARST": "Argentinië-somertyd", "WITA": "Sentraal Indonesië-tyd", "MESZ": "Sentraal-Europese somertyd", "TMT": "Turkmenistan-standaardtyd", "HAST": "Hawaii-Aleusiër-standaardtyd", "ART": "Argentinië-standaardtyd", "HNPM": "Sint-Pierre en Miquelon-standaardtyd", "MEZ": "Sentraal-Europese standaardtyd", "SAST": "Suid-Afrika-standaardtyd", "CLST": "Chili-somertyd", "TMST": "Turkmenistan-somertyd", "EAT": "Oos-Afrika-tyd", "HENOMX": "Noordwes-Meksiko-dagligtyd", "HNPMX": "Meksikaanse Pasifiese standaardtyd", "UYST": "Uruguay-somertyd", "IST": "Indië-standaardtyd", "WAT": "Wes-Afrika-standaardtyd", "WAST": "Wes-Afrika-somertyd", "ECT": "Ecuador-tyd", "GYT": "Guyana-tyd", "VET": "Venezuela-tyd", "HKST": "Hongkong-somertyd", "LHDT": "Lord Howe-dagligtyd", "NZDT": "Nieu-Seeland-dagligtyd", "ChST": "Chamorro-standaardtyd", "HEEG": "Oos-Groenland-somertyd", "COT": "Colombië-standaardtyd", "HEPMX": "Meksikaanse Pasifiese dagligtyd", "WESZ": "Wes-Europese somertyd", "ACDT": "Australiese sentrale dagligtyd", "CAT": "Sentraal-Afrika-tyd", "UYT": "Uruguay-standaardtyd", "CST": "Sentrale standaardtyd", "HEPM": "Sint-Pierre en Miquelon-dagligtyd", "LHST": "Lord Howe-standaardtyd", "CHADT": "Chatham-dagligtyd", "CLT": "Chili-standaardtyd", "JDT": "Japan-dagligtyd", "WART": "Wes-Argentinië-standaardtyd", "HNCU": "Kuba-standaardtyd", "HEOG": "Wes-Groenland-somertyd", "ACWST": "Australiese sentraal-Westelike standaard-tyd", "AEST": "Australiese Oostelike standaardtyd", "HNEG": "Oos-Groenland-standaardtyd", "AKST": "Alaska-standaardtyd", "BT": "Bhoetan-tyd", "PDT": "Pasifiese dagligtyd", "COST": "Colombië-somertyd", "GMT": "Greenwich-mediaantyd", "AKDT": "Alaska-dagligtyd", "PST": "Pasifiese standaardtyd", "AEDT": "Australiese Oostelike dagligtyd", "AWDT": "Australiese Westelike dagligtyd", "HKT": "Hongkong-standaardtyd", "AST": "Atlantiese standaardtyd", "ADT": "Atlantiese dagligtyd", "GFT": "Frans-Guiana-tyd", "HNNOMX": "Noordwes-Meksiko-standaardtyd", "WIT": "Oos-Indonesië-tyd", "HNT": "Newfoundland-standaardtyd", "SGT": "Singapoer-standaardtyd", "CDT": "Sentrale dagligtyd", "WEZ": "Wes-Europese standaardtyd", "ACWDT": "Australiese sentraal-Westelike dagligtyd", "HAT": "Newfoundland-dagligtyd", "NZST": "Nieu-Seeland-standaardtyd", "ACST": "Australiese sentraal-standaardtyd", "OESZ": "Oos-Europese somertyd", "HECU": "Kuba-dagligtyd", "EST": "Oostelike standaardtyd", "MST": "MST", "MDT": "MDT", "MYT": "Maleisië-tyd", "SRT": "Suriname-tyd", "HNOG": "Wes-Groenland-standaardtyd", "BOT": "Bolivia-tyd", "HADT": "Hawaii-Aleusiër-dagligtyd"},
+ timezones: map[string]string{"HAT": "Newfoundland-dagligtyd", "∅∅∅": "∅∅∅", "AWST": "Australiese Westelike standaardtyd", "JDT": "Japan-dagligtyd", "MDT": "Berg-dagligtyd", "ECT": "Ecuador-tyd", "CLST": "Chili-somertyd", "EST": "Oostelike standaardtyd", "ACST": "Australiese sentraal-standaardtyd", "HENOMX": "Noordwes-Meksiko-dagligtyd", "SRT": "Suriname-tyd", "WIT": "Oos-Indonesië-tyd", "ACWDT": "Australiese sentraal-Westelike dagligtyd", "MEZ": "Sentraal-Europese standaardtyd", "WEZ": "Wes-Europese standaardtyd", "HKT": "Hongkong-standaardtyd", "COT": "Colombië-standaardtyd", "HNEG": "Oos-Groenland-standaardtyd", "UYT": "Uruguay-standaardtyd", "GYT": "Guyana-tyd", "HAST": "Hawaii-Aleusiër-standaardtyd", "NZST": "Nieu-Seeland-standaardtyd", "NZDT": "Nieu-Seeland-dagligtyd", "WART": "Wes-Argentinië-standaardtyd", "WITA": "Sentraal Indonesië-tyd", "AKST": "Alaska-standaardtyd", "WIB": "Wes-Indonesië-tyd", "SGT": "Singapoer-standaardtyd", "HNOG": "Wes-Groenland-standaardtyd", "EDT": "Oostelike dagligtyd", "HKST": "Hongkong-somertyd", "ADT": "Atlantiese dagligtyd", "BT": "Bhoetan-tyd", "UYST": "Uruguay-somertyd", "CHADT": "Chatham-dagligtyd", "VET": "Venezuela-tyd", "ChST": "Chamorro-standaardtyd", "LHST": "Lord Howe-standaardtyd", "CHAST": "Chatham-standaardtyd", "PDT": "Pasifiese dagligtyd", "WESZ": "Wes-Europese somertyd", "CLT": "Chili-standaardtyd", "WAST": "Wes-Afrika-somertyd", "AKDT": "Alaska-dagligtyd", "GFT": "Frans-Guiana-tyd", "HEPM": "Sint-Pierre en Miquelon-dagligtyd", "HECU": "Kuba-dagligtyd", "AWDT": "Australiese Westelike dagligtyd", "AST": "Atlantiese standaardtyd", "HNPMX": "Meksikaanse Pasifiese standaardtyd", "BOT": "Bolivia-tyd", "HEOG": "Wes-Groenland-somertyd", "GMT": "Greenwich-mediaantyd", "TMST": "Turkmenistan-somertyd", "ART": "Argentinië-standaardtyd", "HNCU": "Kuba-standaardtyd", "CAT": "Sentraal-Afrika-tyd", "ACWST": "Australiese sentraal-Westelike standaard-tyd", "JST": "Japan-standaardtyd", "OESZ": "Oos-Europese somertyd", "AEDT": "Australiese Oostelike dagligtyd", "HNPM": "Sint-Pierre en Miquelon-standaardtyd", "CDT": "Sentrale dagligtyd", "MESZ": "Sentraal-Europese somertyd", "HNNOMX": "Noordwes-Meksiko-standaardtyd", "HNT": "Newfoundland-standaardtyd", "MST": "Berg-standaardtyd", "HADT": "Hawaii-Aleusiër-dagligtyd", "MYT": "Maleisië-tyd", "ARST": "Argentinië-somertyd", "SAST": "Suid-Afrika-standaardtyd", "LHDT": "Lord Howe-dagligtyd", "WAT": "Wes-Afrika-standaardtyd", "ACDT": "Australiese sentrale dagligtyd", "AEST": "Australiese Oostelike standaardtyd", "EAT": "Oos-Afrika-tyd", "CST": "Sentrale standaardtyd", "WARST": "Wes-Argentinië-somertyd", "TMT": "Turkmenistan-standaardtyd", "COST": "Colombië-somertyd", "HEEG": "Oos-Groenland-somertyd", "HEPMX": "Meksikaanse Pasifiese dagligtyd", "PST": "Pasifiese standaardtyd", "IST": "Indië-standaardtyd", "OEZ": "Oos-Europese standaardtyd"},
}
}
diff --git a/agq/agq.go b/agq/agq.go
index 430aa6b1..ce3e3c15 100644
--- a/agq/agq.go
+++ b/agq/agq.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"SK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Sěe Kɨ̀lesto", "Bǎa Kɨ̀lesto"},
- timezones: map[string]string{"BOT": "BOT", "TMT": "TMT", "WAST": "WAST", "MDT": "MDT", "HNPMX": "HNPMX", "AST": "AST", "AEDT": "AEDT", "HKST": "HKST", "CLST": "CLST", "ACST": "ACST", "OESZ": "OESZ", "WIT": "WIT", "PDT": "PDT", "ACWST": "ACWST", "HEPM": "HEPM", "MEZ": "MEZ", "NZST": "NZST", "NZDT": "NZDT", "IST": "IST", "EDT": "EDT", "ACWDT": "ACWDT", "HNOG": "HNOG", "JDT": "JDT", "WIB": "WIB", "SRT": "SRT", "HEOG": "HEOG", "LHDT": "LHDT", "ECT": "ECT", "WARST": "WARST", "COT": "COT", "COST": "COST", "GMT": "GMT", "BT": "BT", "ART": "ART", "WAT": "WAT", "OEZ": "OEZ", "HNCU": "HNCU", "EST": "EST", "PST": "PST", "AEST": "AEST", "AWDT": "AWDT", "WITA": "WITA", "CHAST": "CHAST", "HEPMX": "HEPMX", "UYT": "UYT", "HADT": "HADT", "HAT": "HAT", "HNPM": "HNPM", "MESZ": "MESZ", "ChST": "ChST", "HEEG": "HEEG", "EAT": "EAT", "HECU": "HECU", "MST": "MST", "WESZ": "WESZ", "CHADT": "CHADT", "GFT": "GFT", "TMST": "TMST", "ADT": "ADT", "VET": "VET", "SAST": "SAST", "MYT": "MYT", "WEZ": "WEZ", "AWST": "AWST", "JST": "JST", "HENOMX": "HENOMX", "UYST": "UYST", "HKT": "HKT", "CAT": "CAT", "SGT": "SGT", "GYT": "GYT", "HNT": "HNT", "∅∅∅": "∅∅∅", "CDT": "CDT", "LHST": "LHST", "CLT": "CLT", "ACDT": "ACDT", "AKDT": "AKDT", "HAST": "HAST", "HNEG": "HNEG", "WART": "WART", "HNNOMX": "HNNOMX", "AKST": "AKST", "CST": "CST", "ARST": "ARST"},
+ timezones: map[string]string{"SAST": "SAST", "EAT": "EAT", "AWDT": "AWDT", "AEST": "AEST", "SRT": "SRT", "PDT": "PDT", "ACWDT": "ACWDT", "MESZ": "MESZ", "WEZ": "WEZ", "MST": "MST", "GFT": "GFT", "CLT": "CLT", "HEEG": "HEEG", "HNPM": "HNPM", "HAT": "HAT", "CHAST": "CHAST", "ACWST": "ACWST", "JDT": "JDT", "OESZ": "OESZ", "ACDT": "ACDT", "COST": "COST", "HNT": "HNT", "CHADT": "CHADT", "BOT": "BOT", "MEZ": "MEZ", "MDT": "MDT", "ART": "ART", "EDT": "EDT", "HKT": "HKT", "HNPMX": "HNPMX", "WIB": "WIB", "VET": "VET", "HEPMX": "HEPMX", "∅∅∅": "∅∅∅", "CST": "CST", "JST": "JST", "ADT": "ADT", "MYT": "MYT", "HNEG": "HNEG", "LHDT": "LHDT", "HADT": "HADT", "WESZ": "WESZ", "GMT": "GMT", "TMST": "TMST", "HNNOMX": "HNNOMX", "BT": "BT", "WITA": "WITA", "ChST": "ChST", "AEDT": "AEDT", "HNCU": "HNCU", "CDT": "CDT", "WIT": "WIT", "AWST": "AWST", "NZDT": "NZDT", "OEZ": "OEZ", "WARST": "WARST", "SGT": "SGT", "CAT": "CAT", "IST": "IST", "HNOG": "HNOG", "CLST": "CLST", "HENOMX": "HENOMX", "HEOG": "HEOG", "AST": "AST", "ARST": "ARST", "HKST": "HKST", "NZST": "NZST", "TMT": "TMT", "HEPM": "HEPM", "LHST": "LHST", "ECT": "ECT", "AKST": "AKST", "AKDT": "AKDT", "UYT": "UYT", "HAST": "HAST", "WART": "WART", "WAT": "WAT", "UYST": "UYST", "GYT": "GYT", "HECU": "HECU", "PST": "PST", "WAST": "WAST", "EST": "EST", "ACST": "ACST", "COT": "COT"},
}
}
diff --git a/agq_CM/agq_CM.go b/agq_CM/agq_CM.go
index 33225f3d..f79c4e66 100644
--- a/agq_CM/agq_CM.go
+++ b/agq_CM/agq_CM.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"SK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Sěe Kɨ̀lesto", "Bǎa Kɨ̀lesto"},
- timezones: map[string]string{"∅∅∅": "∅∅∅", "WAT": "WAT", "HAT": "HAT", "ChST": "ChST", "HNEG": "HNEG", "AKST": "AKST", "AKDT": "AKDT", "WIT": "WIT", "BT": "BT", "LHDT": "LHDT", "CLT": "CLT", "COST": "COST", "HNCU": "HNCU", "EDT": "EDT", "VET": "VET", "SRT": "SRT", "AEST": "AEST", "AEDT": "AEDT", "JDT": "JDT", "GFT": "GFT", "GYT": "GYT", "HADT": "HADT", "HNOG": "HNOG", "PDT": "PDT", "AWST": "AWST", "AWDT": "AWDT", "CLST": "CLST", "TMT": "TMT", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "WESZ": "WESZ", "HKT": "HKT", "MEZ": "MEZ", "CHAST": "CHAST", "ACDT": "ACDT", "WAST": "WAST", "OEZ": "OEZ", "COT": "COT", "ART": "ART", "ECT": "ECT", "WARST": "WARST", "HNNOMX": "HNNOMX", "SGT": "SGT", "EST": "EST", "PST": "PST", "HNT": "HNT", "NZST": "NZST", "HEEG": "HEEG", "CAT": "CAT", "OESZ": "OESZ", "MDT": "MDT", "UYT": "UYT", "EAT": "EAT", "HECU": "HECU", "HNPMX": "HNPMX", "CST": "CST", "HEPM": "HEPM", "NZDT": "NZDT", "IST": "IST", "JST": "JST", "ADT": "ADT", "HEOG": "HEOG", "ACWST": "ACWST", "HKST": "HKST", "HNPM": "HNPM", "SAST": "SAST", "TMST": "TMST", "WART": "WART", "ARST": "ARST", "WEZ": "WEZ", "WITA": "WITA", "MESZ": "MESZ", "BOT": "BOT", "CDT": "CDT", "ACWDT": "ACWDT", "CHADT": "CHADT", "GMT": "GMT", "AST": "AST", "UYST": "UYST", "MST": "MST", "MYT": "MYT", "WIB": "WIB", "HAST": "HAST", "LHST": "LHST", "ACST": "ACST"},
+ timezones: map[string]string{"TMT": "TMT", "WITA": "WITA", "HEPMX": "HEPMX", "AWDT": "AWDT", "CLST": "CLST", "HEOG": "HEOG", "HKST": "HKST", "HEEG": "HEEG", "GYT": "GYT", "ECT": "ECT", "GMT": "GMT", "WEZ": "WEZ", "WART": "WART", "HNOG": "HNOG", "ADT": "ADT", "ART": "ART", "LHST": "LHST", "LHDT": "LHDT", "AWST": "AWST", "HKT": "HKT", "VET": "VET", "MST": "MST", "BOT": "BOT", "CHADT": "CHADT", "NZST": "NZST", "HECU": "HECU", "EAT": "EAT", "WAT": "WAT", "COT": "COT", "HNNOMX": "HNNOMX", "GFT": "GFT", "HNPMX": "HNPMX", "CST": "CST", "EDT": "EDT", "HADT": "HADT", "ChST": "ChST", "SAST": "SAST", "WIT": "WIT", "WARST": "WARST", "SGT": "SGT", "CHAST": "CHAST", "PST": "PST", "JST": "JST", "OEZ": "OEZ", "HNCU": "HNCU", "WIB": "WIB", "CDT": "CDT", "HAT": "HAT", "HENOMX": "HENOMX", "BT": "BT", "AKST": "AKST", "HNPM": "HNPM", "IST": "IST", "TMST": "TMST", "EST": "EST", "MDT": "MDT", "AEDT": "AEDT", "HEPM": "HEPM", "NZDT": "NZDT", "CAT": "CAT", "AST": "AST", "UYST": "UYST", "PDT": "PDT", "JDT": "JDT", "WAST": "WAST", "ACST": "ACST", "ACDT": "ACDT", "AEST": "AEST", "AKDT": "AKDT", "UYT": "UYT", "HAST": "HAST", "CLT": "CLT", "ARST": "ARST", "COST": "COST", "HNT": "HNT", "HNEG": "HNEG", "SRT": "SRT", "ACWDT": "ACWDT", "OESZ": "OESZ", "MESZ": "MESZ", "WESZ": "WESZ", "MYT": "MYT", "∅∅∅": "∅∅∅", "ACWST": "ACWST", "MEZ": "MEZ"},
}
}
diff --git a/ak/ak.go b/ak/ak.go
index 17425f4a..64872c8c 100644
--- a/ak/ak.go
+++ b/ak/ak.go
@@ -60,7 +60,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"AK", "KE"},
erasNarrow: []string{"", ""},
erasWide: []string{"Ansa Kristo", "Kristo Ekyiri"},
- timezones: map[string]string{"ACST": "ACST", "MST": "MST", "HNT": "HNT", "ART": "ART", "WIB": "WIB", "ACWST": "ACWST", "MEZ": "MEZ", "MESZ": "MESZ", "JDT": "JDT", "HNCU": "HNCU", "AKST": "AKST", "AST": "AST", "AWST": "AWST", "CHADT": "CHADT", "JST": "JST", "OEZ": "OEZ", "EDT": "EDT", "HAT": "HAT", "LHST": "LHST", "ChST": "ChST", "BOT": "BOT", "COT": "COT", "CDT": "CDT", "HAST": "HAST", "WESZ": "WESZ", "SAST": "SAST", "∅∅∅": "∅∅∅", "WAST": "WAST", "WARST": "WARST", "WIT": "WIT", "BT": "BT", "ACWDT": "ACWDT", "WITA": "WITA", "NZDT": "NZDT", "CLST": "CLST", "WAT": "WAT", "WART": "WART", "GMT": "GMT", "MYT": "MYT", "HNNOMX": "HNNOMX", "EST": "EST", "WEZ": "WEZ", "AEDT": "AEDT", "TMT": "TMT", "CST": "CST", "CHAST": "CHAST", "HENOMX": "HENOMX", "MDT": "MDT", "HADT": "HADT", "VET": "VET", "PST": "PST", "HEEG": "HEEG", "ECT": "ECT", "ADT": "ADT", "ARST": "ARST", "HNPM": "HNPM", "GFT": "GFT", "ACDT": "ACDT", "COST": "COST", "SGT": "SGT", "HEPMX": "HEPMX", "AKDT": "AKDT", "SRT": "SRT", "LHDT": "LHDT", "IST": "IST", "TMST": "TMST", "OESZ": "OESZ", "HECU": "HECU", "UYT": "UYT", "AWDT": "AWDT", "HKST": "HKST", "HEPM": "HEPM", "HKT": "HKT", "NZST": "NZST", "HNEG": "HNEG", "EAT": "EAT", "UYST": "UYST", "AEST": "AEST", "CLT": "CLT", "HNPMX": "HNPMX", "HEOG": "HEOG", "CAT": "CAT", "GYT": "GYT", "PDT": "PDT", "HNOG": "HNOG"},
+ timezones: map[string]string{"COST": "COST", "GFT": "GFT", "UYT": "UYT", "WEZ": "WEZ", "ChST": "ChST", "AWST": "AWST", "ECT": "ECT", "NZST": "NZST", "WART": "WART", "WARST": "WARST", "HEOG": "HEOG", "WIB": "WIB", "CDT": "CDT", "CAT": "CAT", "HNOG": "HNOG", "EAT": "EAT", "PDT": "PDT", "WAST": "WAST", "HAT": "HAT", "HNCU": "HNCU", "AWDT": "AWDT", "MESZ": "MESZ", "CLT": "CLT", "HKT": "HKT", "ACST": "ACST", "SAST": "SAST", "AEST": "AEST", "CST": "CST", "PST": "PST", "VET": "VET", "OEZ": "OEZ", "EDT": "EDT", "HNEG": "HNEG", "SGT": "SGT", "EST": "EST", "HNT": "HNT", "SRT": "SRT", "GYT": "GYT", "HAST": "HAST", "ACWDT": "ACWDT", "JST": "JST", "MYT": "MYT", "MST": "MST", "COT": "COT", "WIT": "WIT", "IST": "IST", "GMT": "GMT", "OESZ": "OESZ", "WESZ": "WESZ", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "HADT": "HADT", "NZDT": "NZDT", "HEPM": "HEPM", "CLST": "CLST", "AST": "AST", "ARST": "ARST", "WAT": "WAT", "HEEG": "HEEG", "CHAST": "CHAST", "ACWST": "ACWST", "MDT": "MDT", "HKST": "HKST", "AEDT": "AEDT", "HECU": "HECU", "∅∅∅": "∅∅∅", "BOT": "BOT", "BT": "BT", "WITA": "WITA", "AKST": "AKST", "LHDT": "LHDT", "HNPMX": "HNPMX", "ADT": "ADT", "TMST": "TMST", "ART": "ART", "AKDT": "AKDT", "UYST": "UYST", "LHST": "LHST", "CHADT": "CHADT", "MEZ": "MEZ", "JDT": "JDT", "TMT": "TMT", "HENOMX": "HENOMX", "HEPMX": "HEPMX"},
}
}
diff --git a/ak_GH/ak_GH.go b/ak_GH/ak_GH.go
index c07c545b..bba9f5cb 100644
--- a/ak_GH/ak_GH.go
+++ b/ak_GH/ak_GH.go
@@ -60,7 +60,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"AK", "KE"},
erasNarrow: []string{"", ""},
erasWide: []string{"Ansa Kristo", "Kristo Ekyiri"},
- timezones: map[string]string{"ACDT": "ACDT", "HNT": "HNT", "NZDT": "NZDT", "MESZ": "MESZ", "SAST": "SAST", "ACWST": "ACWST", "ChST": "ChST", "MDT": "MDT", "UYT": "UYT", "WIB": "WIB", "ARST": "ARST", "COT": "COT", "COST": "COST", "HNCU": "HNCU", "HEPMX": "HEPMX", "CLST": "CLST", "ACST": "ACST", "PDT": "PDT", "JDT": "JDT", "OESZ": "OESZ", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "ACWDT": "ACWDT", "AWDT": "AWDT", "EAT": "EAT", "AKDT": "AKDT", "UYST": "UYST", "HKT": "HKT", "EST": "EST", "CHAST": "CHAST", "CHADT": "CHADT", "HEOG": "HEOG", "IST": "IST", "GFT": "GFT", "ECT": "ECT", "MST": "MST", "CST": "CST", "SRT": "SRT", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "WARST": "WARST", "HAST": "HAST", "HEPM": "HEPM", "WART": "WART", "HKST": "HKST", "WITA": "WITA", "AEDT": "AEDT", "MYT": "MYT", "JST": "JST", "WAST": "WAST", "HNOG": "HNOG", "PST": "PST", "WEZ": "WEZ", "HEEG": "HEEG", "TMT": "TMT", "HECU": "HECU", "SGT": "SGT", "AKST": "AKST", "CLT": "CLT", "TMST": "TMST", "BOT": "BOT", "ADT": "ADT", "HADT": "HADT", "WESZ": "WESZ", "MEZ": "MEZ", "AST": "AST", "GYT": "GYT", "VET": "VET", "ART": "ART", "CAT": "CAT", "GMT": "GMT", "EDT": "EDT", "CDT": "CDT", "AWST": "AWST", "NZST": "NZST", "LHDT": "LHDT", "HNEG": "HNEG", "WAT": "WAT", "HENOMX": "HENOMX", "BT": "BT", "AEST": "AEST", "WIT": "WIT", "HAT": "HAT", "HNPM": "HNPM", "LHST": "LHST"},
+ timezones: map[string]string{"GMT": "GMT", "ADT": "ADT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "SRT": "SRT", "GYT": "GYT", "HNCU": "HNCU", "PST": "PST", "HADT": "HADT", "TMST": "TMST", "BT": "BT", "MST": "MST", "COT": "COT", "AEST": "AEST", "HNPM": "HNPM", "CDT": "CDT", "WIT": "WIT", "HEOG": "HEOG", "GFT": "GFT", "MEZ": "MEZ", "HKT": "HKT", "WITA": "WITA", "SAST": "SAST", "LHST": "LHST", "VET": "VET", "∅∅∅": "∅∅∅", "WART": "WART", "HNPMX": "HNPMX", "OEZ": "OEZ", "WEZ": "WEZ", "WAST": "WAST", "EST": "EST", "AEDT": "AEDT", "CST": "CST", "CHADT": "CHADT", "ACWST": "ACWST", "WAT": "WAT", "ACST": "ACST", "HNEG": "HNEG", "HNOG": "HNOG", "AST": "AST", "OESZ": "OESZ", "EDT": "EDT", "COST": "COST", "JST": "JST", "ECT": "ECT", "WESZ": "WESZ", "TMT": "TMT", "HEPM": "HEPM", "AKDT": "AKDT", "ChST": "ChST", "HEPMX": "HEPMX", "BOT": "BOT", "ACWDT": "ACWDT", "JDT": "JDT", "HNT": "HNT", "ART": "ART", "HKST": "HKST", "HAT": "HAT", "LHDT": "LHDT", "CHAST": "CHAST", "NZDT": "NZDT", "IST": "IST", "MESZ": "MESZ", "WARST": "WARST", "CLT": "CLT", "UYT": "UYT", "ARST": "ARST", "AKST": "AKST", "EAT": "EAT", "AWST": "AWST", "PDT": "PDT", "HAST": "HAST", "MYT": "MYT", "ACDT": "ACDT", "MDT": "MDT", "UYST": "UYST", "HECU": "HECU", "WIB": "WIB", "AWDT": "AWDT", "SGT": "SGT", "NZST": "NZST", "CAT": "CAT", "HEEG": "HEEG", "CLST": "CLST"},
}
}
diff --git a/am/am.go b/am/am.go
index 4ae553c5..7aed451e 100644
--- a/am/am.go
+++ b/am/am.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ዓ/ዓ", "ዓ/ም"},
erasNarrow: []string{"ዓ/ዓ", "ዓ/ም"},
erasWide: []string{"ዓመተ ዓለም", "ዓመተ ምሕረት"},
- timezones: map[string]string{"EST": "የምዕራባዊ መደበኛ የሰዓት አቆጣጠር", "MDT": "MDT", "UYT": "የኡራጓይ መደበኛ ሰዓት", "LHST": "የሎርድ ሆዌ መደበኛ የሰዓት አቆጣጠር", "HEEG": "የምስራቅ ግሪንላንድ ክረምት ሰዓት", "OEZ": "የምስራቃዊ አውሮፓ መደበኛ ሰዓት", "WIB": "የምዕራባዊ ኢንዶኔዢያ ሰዓት", "HEPM": "ቅዱስ የፒዬር እና ሚኴሎን የቀን ብርሃን ሰዓት", "JST": "የጃፓን መደበኛ ሰዓት", "WAST": "የምዕራብ አፍሪካ ክረምት ሰዓት", "AKDT": "የአላስካ የቀን ሰዓት አቆጣጠር", "WIT": "የምስራቃዊ ኢንዶኔዢያ ሰዓት", "ART": "የአርጀንቲና መደበኛ ሰዓት አቆጣጠር", "AWDT": "የአውስትራሊያ ምስራቃዊ የቀን ሰዓት አቆጣጠር", "CHADT": "የቻታም የቀን ብርሃን ሰዓት", "HNEG": "የምስራቅ ግሪንላንድ መደበኛ ሰዓት", "COST": "የኮሎምቢያ ክረምት ሰዓት", "HEPMX": "የሜክሲኮ ፓሲፊክ የቀን ሰዓት አቆጣጠር", "PDT": "የፓስፊክ የቀን ሰዓት አቆጣጠር", "HKT": "የሆንግ ኮንግ መደበኛ ሰዓት", "MESZ": "የመካከለኛው አውሮፓ ክረምት ሰዓት", "IST": "የህንድ መደበኛ ሰዓት", "TMT": "የቱርክመኒስታን መደበኛ ሰዓት", "TMST": "የቱርክመኒስታን ክረምት ሰዓት", "EAT": "የምስራቅ አፍሪካ ሰዓት", "CDT": "የመካከለኛ የቀን ሰዓት አቆጣጠር", "HNOG": "የምዕራብ ግሪንላንድ መደበኛ ሰዓት", "CHAST": "የቻታም መደበኛ ሰዓት", "GFT": "የፈረንሳይ ጉያና ሰዓት", "HECU": "የኩባ የቀን ብርሃን ሰዓት", "HENOMX": "ሰሜናዊ ምእራብ የሜክሲኮ የቀን ሰዓት አቆጣጠር", "SGT": "የሲንጋፒር መደበኛ ሰዓት", "PST": "የፓስፊክ መደበኛ ሰዓት አቆጣጠር", "HEOG": "የምዕራብ ግሪንላንድ ክረምት ሰዓት", "AEST": "የአውስትራሊያ ምዕራባዊ መደበኛ የሰዓት አቆጣጠር", "JDT": "የጃፓን የቀን ብርሃን ሰዓት", "ACDT": "የአውስትራሊያ መካከለኛ የቀን ሰዓት አቆጣጠር", "HNPM": "ቅዱስ የፒዬር እና ሚኴሎን መደበኛ ሰዓት", "HNCU": "የኩባ መደበኛ ሰዓት", "AST": "የአትላንቲክ መደበኛ የሰዓት አቆጣጠር", "UYST": "የኡራጓይ ክረምት ሰዓት", "HAST": "የሃዋይ አሌኡት መደበኛ ሰዓት አቆጣጠር", "LHDT": "የሎርድ ሆዌ የቀን ሰዓት አቆጣጠር", "CLT": "የቺሊ መደበኛ ሰዓት", "∅∅∅": "የፔሩ ክረምት ሰዓት", "NZST": "የኒው ዚላንድ መደበኛ ሰዓት", "ChST": "የቻሞሮ መደበኛ ሰዓት", "SRT": "የሱሪናም ሰዓት", "GMT": "ግሪንዊች ማዕከላዊ ሰዓት", "HAT": "የኒውፋውንድላንድ የቀን የሰዓት አቆጣጠር", "HNNOMX": "ሰሜናዊ ምእራብ የሜክሲኮ መደበኛ ሰዓት አቆጣጠር", "WARST": "የአርጀንቲና ምስራቃዊ በጋ ሰዓት አቆጣጠር", "HNPMX": "የሜክሲኮ ፓሲፊክ መደበኛ ሰዓት አቆጣጠር", "AWST": "የአውስትራሊያ ምስራቃዊ መደበኛ ሰዓት አቆጣጠር", "WITA": "የመካከለኛው ኢንዶኔዢያ ሰዓት", "NZDT": "የኒው ዚላንድ የቀን ብርሃን ሰዓት", "WAT": "የምዕራብ አፍሪካ መደበኛ ሰዓት", "HADT": "የሃዋይ አሌኡት የቀን ሰዓት አቆጣጠር", "ACWDT": "የአውስትራሊያ መካከለኛው ምስራቅ የቀን ሰዓት አቆጣጠር", "MST": "MST", "CAT": "የመካከለኛው አፍሪካ ሰዓት", "ECT": "የኢኳዶር ሰዓት", "COT": "የኮሎምቢያ መደበኛ ሰዓት", "ADT": "የአትላንቲክ የቀን ሰዓት አቆጣጠር", "MYT": "የማሌይዢያ ሰዓት", "VET": "የቬኔዝዌላ ሰዓት", "WESZ": "የምዕራባዊ አውሮፓ ክረምት ሰዓት", "ACST": "የአውስትራሊያ መካከለኛ መደበኛ የሰዓት አቆጣጠር", "AEDT": "የአውስትራሊያ ምዕራባዊ የቀን ሰዓት አቆጣጠር", "HNT": "የኒውፋውንድላንድ መደበኛ የሰዓት አቆጣጠር", "BT": "የቡታን ሰዓት", "HKST": "የሆንግ ኮንግ ክረምት ሰዓት", "EDT": "የምዕራባዊ የቀን ሰዓት አቆጣጠር", "AKST": "የአላስካ መደበኛ የሰዓት አቆጣጠር", "GYT": "የጉያና ሰዓት", "WEZ": "የምዕራባዊ አውሮፓ መደበኛ ሰዓት", "ACWST": "የአውስትራሊያ መካከለኛ ምስራቃዊ መደበኛ ሰዓት አቆጣጠር", "OESZ": "የምስራቃዊ አውሮፓ ክረምት ሰዓት", "CST": "የመካከለኛ መደበኛ ሰዓት አቆጣጠር", "ARST": "የአርጀንቲና የበጋ ሰዓት አቆጣጠር", "MEZ": "የመካከለኛው አውሮፓ መደበኛ ሰዓት", "SAST": "የደቡብ አፍሪካ መደበኛ ሰዓት", "CLST": "የቺሊ ክረምት ሰዓት", "BOT": "የቦሊቪያ ሰዓት", "WART": "የምዕራባዊ አርጀንቲና መደበኛ ሰዓት አቆጣጠር"},
+ timezones: map[string]string{"CHAST": "የቻታም መደበኛ ሰዓት", "CHADT": "የቻታም የቀን ብርሃን ሰዓት", "MESZ": "የመካከለኛው አውሮፓ ክረምት ሰዓት", "VET": "የቬኔዝዌላ ሰዓት", "COT": "የኮሎምቢያ መደበኛ ሰዓት", "CLST": "የቺሊ ክረምት ሰዓት", "HKT": "የሆንግ ኮንግ መደበኛ ሰዓት", "HAT": "የኒውፋውንድላንድ የቀን የሰዓት አቆጣጠር", "AEST": "የአውስትራሊያ ምዕራባዊ መደበኛ የሰዓት አቆጣጠር", "SAST": "የደቡብ አፍሪካ መደበኛ ሰዓት", "HNPMX": "የሜክሲኮ ፓሲፊክ መደበኛ ሰዓት አቆጣጠር", "BOT": "የቦሊቪያ ሰዓት", "CLT": "የቺሊ መደበኛ ሰዓት", "CAT": "የመካከለኛው አፍሪካ ሰዓት", "WEZ": "የምዕራባዊ አውሮፓ መደበኛ ሰዓት", "ACDT": "የአውስትራሊያ መካከለኛ የቀን ሰዓት አቆጣጠር", "WIB": "የምዕራባዊ ኢንዶኔዢያ ሰዓት", "HEOG": "የምዕራብ ግሪንላንድ ክረምት ሰዓት", "WESZ": "የምዕራባዊ አውሮፓ ክረምት ሰዓት", "WARST": "የአርጀንቲና ምስራቃዊ በጋ ሰዓት አቆጣጠር", "WAST": "የምዕራብ አፍሪካ ክረምት ሰዓት", "HEEG": "የምስራቅ ግሪንላንድ ክረምት ሰዓት", "AKDT": "የአላስካ የቀን ሰዓት አቆጣጠር", "PST": "የፓስፊክ መደበኛ ሰዓት አቆጣጠር", "JDT": "የጃፓን የቀን ብርሃን ሰዓት", "AST": "የአትላንቲክ መደበኛ የሰዓት አቆጣጠር", "WITA": "የመካከለኛው ኢንዶኔዢያ ሰዓት", "ChST": "የቻሞሮ መደበኛ ሰዓት", "UYT": "የኡራጓይ መደበኛ ሰዓት", "HNCU": "የኩባ መደበኛ ሰዓት", "NZDT": "የኒው ዚላንድ የቀን ብርሃን ሰዓት", "HNEG": "የምስራቅ ግሪንላንድ መደበኛ ሰዓት", "EDT": "የምዕራባዊ የቀን ሰዓት አቆጣጠር", "ACST": "የአውስትራሊያ መካከለኛ መደበኛ የሰዓት አቆጣጠር", "HNNOMX": "ሰሜናዊ ምእራብ የሜክሲኮ መደበኛ ሰዓት አቆጣጠር", "GFT": "የፈረንሳይ ጉያና ሰዓት", "HECU": "የኩባ የቀን ብርሃን ሰዓት", "PDT": "የፓስፊክ የቀን ሰዓት አቆጣጠር", "HNOG": "የምዕራብ ግሪንላንድ መደበኛ ሰዓት", "CST": "የመካከለኛ መደበኛ ሰዓት አቆጣጠር", "WIT": "የምስራቃዊ ኢንዶኔዢያ ሰዓት", "WAT": "የምዕራብ አፍሪካ መደበኛ ሰዓት", "AWDT": "የአውስትራሊያ ምስራቃዊ የቀን ሰዓት አቆጣጠር", "SGT": "የሲንጋፒር መደበኛ ሰዓት", "ECT": "የኢኳዶር ሰዓት", "ACWDT": "የአውስትራሊያ መካከለኛው ምስራቅ የቀን ሰዓት አቆጣጠር", "MEZ": "የመካከለኛው አውሮፓ መደበኛ ሰዓት", "∅∅∅": "∅∅∅", "AEDT": "የአውስትራሊያ ምዕራባዊ የቀን ሰዓት አቆጣጠር", "LHST": "የሎርድ ሆዌ መደበኛ የሰዓት አቆጣጠር", "HEPMX": "የሜክሲኮ ፓሲፊክ የቀን ሰዓት አቆጣጠር", "HAST": "የሃዋይ አሌኡት መደበኛ ሰዓት አቆጣጠር", "ACWST": "የአውስትራሊያ መካከለኛ ምስራቃዊ መደበኛ ሰዓት አቆጣጠር", "HENOMX": "ሰሜናዊ ምእራብ የሜክሲኮ የቀን ሰዓት አቆጣጠር", "EAT": "የምስራቅ አፍሪካ ሰዓት", "NZST": "የኒው ዚላንድ መደበኛ ሰዓት", "GYT": "የጉያና ሰዓት", "HADT": "የሃዋይ አሌኡት የቀን ሰዓት አቆጣጠር", "LHDT": "የሎርድ ሆዌ የቀን ሰዓት አቆጣጠር", "COST": "የኮሎምቢያ ክረምት ሰዓት", "HNPM": "ቅዱስ የፒዬር እና ሚኴሎን መደበኛ ሰዓት", "HEPM": "ቅዱስ የፒዬር እና ሚኴሎን የቀን ብርሃን ሰዓት", "OESZ": "የምስራቃዊ አውሮፓ ክረምት ሰዓት", "MYT": "የማሌይዢያ ሰዓት", "EST": "የምዕራባዊ መደበኛ የሰዓት አቆጣጠር", "BT": "የቡታን ሰዓት", "HNT": "የኒውፋውንድላንድ መደበኛ የሰዓት አቆጣጠር", "UYST": "የኡራጓይ ክረምት ሰዓት", "ADT": "የአትላንቲክ የቀን ሰዓት አቆጣጠር", "WART": "የምዕራባዊ አርጀንቲና መደበኛ ሰዓት አቆጣጠር", "TMST": "የቱርክመኒስታን ክረምት ሰዓት", "HKST": "የሆንግ ኮንግ ክረምት ሰዓት", "CDT": "የመካከለኛ የቀን ሰዓት አቆጣጠር", "JST": "የጃፓን መደበኛ ሰዓት", "OEZ": "የምስራቃዊ አውሮፓ መደበኛ ሰዓት", "MST": "MST", "ART": "የአርጀንቲና መደበኛ ሰዓት አቆጣጠር", "AKST": "የአላስካ መደበኛ የሰዓት አቆጣጠር", "AWST": "የአውስትራሊያ ምስራቃዊ መደበኛ ሰዓት አቆጣጠር", "IST": "የህንድ መደበኛ ሰዓት", "TMT": "የቱርክመኒስታን መደበኛ ሰዓት", "MDT": "MDT", "ARST": "የአርጀንቲና የበጋ ሰዓት አቆጣጠር", "SRT": "የሱሪናም ሰዓት", "GMT": "ግሪንዊች ማዕከላዊ ሰዓት"},
}
}
diff --git a/am_ET/am_ET.go b/am_ET/am_ET.go
index 0ab31dfd..e857ce7e 100644
--- a/am_ET/am_ET.go
+++ b/am_ET/am_ET.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ዓ/ዓ", "ዓ/ም"},
erasNarrow: []string{"ዓ/ዓ", "ዓ/ም"},
erasWide: []string{"ዓመተ ዓለም", "ዓመተ ምሕረት"},
- timezones: map[string]string{"UYST": "የኡራጓይ ክረምት ሰዓት", "WIT": "የምስራቃዊ ኢንዶኔዢያ ሰዓት", "AWST": "የአውስትራሊያ ምስራቃዊ መደበኛ ሰዓት አቆጣጠር", "OEZ": "የምስራቃዊ አውሮፓ መደበኛ ሰዓት", "HNEG": "የምስራቅ ግሪንላንድ መደበኛ ሰዓት", "GMT": "ግሪንዊች ማዕከላዊ ሰዓት", "WIB": "የምዕራባዊ ኢንዶኔዢያ ሰዓት", "ACWST": "የአውስትራሊያ መካከለኛ ምስራቃዊ መደበኛ ሰዓት አቆጣጠር", "CLT": "የቺሊ መደበኛ ሰዓት", "HEPM": "ቅዱስ የፒዬር እና ሚኴሎን የቀን ብርሃን ሰዓት", "PDT": "የፓስፊክ የቀን ሰዓት አቆጣጠር", "CHADT": "የቻታም የቀን ብርሃን ሰዓት", "IST": "የህንድ መደበኛ ሰዓት", "∅∅∅": "የአማዞን የቀን ሰዓት አቆጣጠር", "JDT": "የጃፓን የቀን ብርሃን ሰዓት", "VET": "የቬኔዝዌላ ሰዓት", "WESZ": "የምዕራባዊ አውሮፓ ክረምት ሰዓት", "HAT": "የኒውፋውንድላንድ የቀን የሰዓት አቆጣጠር", "EST": "የምዕራባዊ መደበኛ የሰዓት አቆጣጠር", "MYT": "የማሌይዢያ ሰዓት", "ADT": "የአትላንቲክ የቀን ሰዓት አቆጣጠር", "AEST": "የአውስትራሊያ ምዕራባዊ መደበኛ የሰዓት አቆጣጠር", "JST": "የጃፓን መደበኛ ሰዓት", "AST": "የአትላንቲክ መደበኛ የሰዓት አቆጣጠር", "BOT": "የቦሊቪያ ሰዓት", "MDT": "የተራራ የቀንሰዓት አቆጣጠር", "PST": "የፓስፊክ መደበኛ ሰዓት አቆጣጠር", "SAST": "የደቡብ አፍሪካ መደበኛ ሰዓት", "HNPMX": "የሜክሲኮ ፓሲፊክ መደበኛ ሰዓት አቆጣጠር", "UYT": "የኡራጓይ መደበኛ ሰዓት", "HAST": "የሃዋይ አሌኡት መደበኛ ሰዓት አቆጣጠር", "ACWDT": "የአውስትራሊያ መካከለኛው ምስራቅ የቀን ሰዓት አቆጣጠር", "MEZ": "የመካከለኛው አውሮፓ መደበኛ ሰዓት", "TMT": "የቱርክመኒስታን መደበኛ ሰዓት", "ACDT": "የአውስትራሊያ መካከለኛ የቀን ሰዓት አቆጣጠር", "SGT": "የሲንጋፒር መደበኛ ሰዓት", "HNCU": "የኩባ መደበኛ ሰዓት", "AKDT": "የአላስካ የቀን ሰዓት አቆጣጠር", "NZDT": "የኒው ዚላንድ የቀን ብርሃን ሰዓት", "CLST": "የቺሊ ክረምት ሰዓት", "HEEG": "የምስራቅ ግሪንላንድ ክረምት ሰዓት", "CHAST": "የቻታም መደበኛ ሰዓት", "MESZ": "የመካከለኛው አውሮፓ ክረምት ሰዓት", "WARST": "የአርጀንቲና ምስራቃዊ በጋ ሰዓት አቆጣጠር", "HECU": "የኩባ የቀን ብርሃን ሰዓት", "HNOG": "የምዕራብ ግሪንላንድ መደበኛ ሰዓት", "HKST": "የሆንግ ኮንግ ክረምት ሰዓት", "NZST": "የኒው ዚላንድ መደበኛ ሰዓት", "OESZ": "የምስራቃዊ አውሮፓ ክረምት ሰዓት", "CST": "የመካከለኛ መደበኛ ሰዓት አቆጣጠር", "SRT": "የሱሪናም ሰዓት", "HNPM": "ቅዱስ የፒዬር እና ሚኴሎን መደበኛ ሰዓት", "ChST": "የቻሞሮ መደበኛ ሰዓት", "WAST": "የምዕራብ አፍሪካ ክረምት ሰዓት", "EDT": "የምዕራባዊ የቀን ሰዓት አቆጣጠር", "CDT": "የመካከለኛ የቀን ሰዓት አቆጣጠር", "HADT": "የሃዋይ አሌኡት የቀን ሰዓት አቆጣጠር", "LHDT": "የሎርድ ሆዌ የቀን ሰዓት አቆጣጠር", "WAT": "የምዕራብ አፍሪካ መደበኛ ሰዓት", "AEDT": "የአውስትራሊያ ምዕራባዊ የቀን ሰዓት አቆጣጠር", "ACST": "የአውስትራሊያ መካከለኛ መደበኛ የሰዓት አቆጣጠር", "EAT": "የምስራቅ አፍሪካ ሰዓት", "BT": "የቡታን ሰዓት", "ART": "የአርጀንቲና መደበኛ ሰዓት አቆጣጠር", "ARST": "የአርጀንቲና የበጋ ሰዓት አቆጣጠር", "MST": "የተራራ መደበኛ የሰዓት አቆጣጠር", "TMST": "የቱርክመኒስታን ክረምት ሰዓት", "WART": "የምዕራባዊ አርጀንቲና መደበኛ ሰዓት አቆጣጠር", "HKT": "የሆንግ ኮንግ መደበኛ ሰዓት", "ECT": "የኢኳዶር ሰዓት", "COT": "የኮሎምቢያ መደበኛ ሰዓት", "HEPMX": "የሜክሲኮ ፓሲፊክ የቀን ሰዓት አቆጣጠር", "GYT": "የጉያና ሰዓት", "WEZ": "የምዕራባዊ አውሮፓ መደበኛ ሰዓት", "HNT": "የኒውፋውንድላንድ መደበኛ የሰዓት አቆጣጠር", "HEOG": "የምዕራብ ግሪንላንድ ክረምት ሰዓት", "AWDT": "የአውስትራሊያ ምስራቃዊ የቀን ሰዓት አቆጣጠር", "HENOMX": "ሰሜናዊ ምእራብ የሜክሲኮ የቀን ሰዓት አቆጣጠር", "CAT": "የመካከለኛው አፍሪካ ሰዓት", "COST": "የኮሎምቢያ ክረምት ሰዓት", "HNNOMX": "ሰሜናዊ ምእራብ የሜክሲኮ መደበኛ ሰዓት አቆጣጠር", "AKST": "የአላስካ መደበኛ የሰዓት አቆጣጠር", "WITA": "የመካከለኛው ኢንዶኔዢያ ሰዓት", "LHST": "የሎርድ ሆዌ መደበኛ የሰዓት አቆጣጠር", "GFT": "የፈረንሳይ ጉያና ሰዓት"},
+ timezones: map[string]string{"AWDT": "የአውስትራሊያ ምስራቃዊ የቀን ሰዓት አቆጣጠር", "SGT": "የሲንጋፒር መደበኛ ሰዓት", "CHADT": "የቻታም የቀን ብርሃን ሰዓት", "ACWDT": "የአውስትራሊያ መካከለኛው ምስራቅ የቀን ሰዓት አቆጣጠር", "UYT": "የኡራጓይ መደበኛ ሰዓት", "HEPMX": "የሜክሲኮ ፓሲፊክ የቀን ሰዓት አቆጣጠር", "BOT": "የቦሊቪያ ሰዓት", "VET": "የቬኔዝዌላ ሰዓት", "OESZ": "የምስራቃዊ አውሮፓ ክረምት ሰዓት", "UYST": "የኡራጓይ ክረምት ሰዓት", "HADT": "የሃዋይ አሌኡት የቀን ሰዓት አቆጣጠር", "WITA": "የመካከለኛው ኢንዶኔዢያ ሰዓት", "LHDT": "የሎርድ ሆዌ የቀን ሰዓት አቆጣጠር", "CLST": "የቺሊ ክረምት ሰዓት", "HEEG": "የምስራቅ ግሪንላንድ ክረምት ሰዓት", "AKDT": "የአላስካ የቀን ሰዓት አቆጣጠር", "HECU": "የኩባ የቀን ብርሃን ሰዓት", "MYT": "የማሌይዢያ ሰዓት", "TMT": "የቱርክመኒስታን መደበኛ ሰዓት", "HNPM": "ቅዱስ የፒዬር እና ሚኴሎን መደበኛ ሰዓት", "PDT": "የፓስፊክ የቀን ሰዓት አቆጣጠር", "NZDT": "የኒው ዚላንድ የቀን ብርሃን ሰዓት", "MEZ": "የመካከለኛው አውሮፓ መደበኛ ሰዓት", "MESZ": "የመካከለኛው አውሮፓ ክረምት ሰዓት", "HNT": "የኒውፋውንድላንድ መደበኛ የሰዓት አቆጣጠር", "ChST": "የቻሞሮ መደበኛ ሰዓት", "GYT": "የጉያና ሰዓት", "HNOG": "የምዕራብ ግሪንላንድ መደበኛ ሰዓት", "AST": "የአትላንቲክ መደበኛ የሰዓት አቆጣጠር", "HENOMX": "ሰሜናዊ ምእራብ የሜክሲኮ የቀን ሰዓት አቆጣጠር", "ACDT": "የአውስትራሊያ መካከለኛ የቀን ሰዓት አቆጣጠር", "WAT": "የምዕራብ አፍሪካ መደበኛ ሰዓት", "HNNOMX": "ሰሜናዊ ምእራብ የሜክሲኮ መደበኛ ሰዓት አቆጣጠር", "HAST": "የሃዋይ አሌኡት መደበኛ ሰዓት አቆጣጠር", "CAT": "የመካከለኛው አፍሪካ ሰዓት", "ARST": "የአርጀንቲና የበጋ ሰዓት አቆጣጠር", "EST": "የምዕራባዊ መደበኛ የሰዓት አቆጣጠር", "ART": "የአርጀንቲና መደበኛ ሰዓት አቆጣጠር", "MST": "MST", "HAT": "የኒውፋውንድላንድ የቀን የሰዓት አቆጣጠር", "IST": "የህንድ መደበኛ ሰዓት", "∅∅∅": "የአማዞን የቀን ሰዓት አቆጣጠር", "JST": "የጃፓን መደበኛ ሰዓት", "TMST": "የቱርክመኒስታን ክረምት ሰዓት", "NZST": "የኒው ዚላንድ መደበኛ ሰዓት", "BT": "የቡታን ሰዓት", "SAST": "የደቡብ አፍሪካ መደበኛ ሰዓት", "WIT": "የምስራቃዊ ኢንዶኔዢያ ሰዓት", "WART": "የምዕራባዊ አርጀንቲና መደበኛ ሰዓት አቆጣጠር", "HKST": "የሆንግ ኮንግ ክረምት ሰዓት", "COST": "የኮሎምቢያ ክረምት ሰዓት", "WIB": "የምዕራባዊ ኢንዶኔዢያ ሰዓት", "EAT": "የምስራቅ አፍሪካ ሰዓት", "CDT": "የመካከለኛ የቀን ሰዓት አቆጣጠር", "AWST": "የአውስትራሊያ ምስራቃዊ መደበኛ ሰዓት አቆጣጠር", "WAST": "የምዕራብ አፍሪካ ክረምት ሰዓት", "AEST": "የአውስትራሊያ ምዕራባዊ መደበኛ የሰዓት አቆጣጠር", "LHST": "የሎርድ ሆዌ መደበኛ የሰዓት አቆጣጠር", "HNCU": "የኩባ መደበኛ ሰዓት", "ADT": "የአትላንቲክ የቀን ሰዓት አቆጣጠር", "MDT": "MDT", "GFT": "የፈረንሳይ ጉያና ሰዓት", "AKST": "የአላስካ መደበኛ የሰዓት አቆጣጠር", "ACWST": "የአውስትራሊያ መካከለኛ ምስራቃዊ መደበኛ ሰዓት አቆጣጠር", "JDT": "የጃፓን የቀን ብርሃን ሰዓት", "OEZ": "የምስራቃዊ አውሮፓ መደበኛ ሰዓት", "WARST": "የአርጀንቲና ምስራቃዊ በጋ ሰዓት አቆጣጠር", "HEPM": "ቅዱስ የፒዬር እና ሚኴሎን የቀን ብርሃን ሰዓት", "CST": "የመካከለኛ መደበኛ ሰዓት አቆጣጠር", "PST": "የፓስፊክ መደበኛ ሰዓት አቆጣጠር", "ECT": "የኢኳዶር ሰዓት", "WESZ": "የምዕራባዊ አውሮፓ ክረምት ሰዓት", "CLT": "የቺሊ መደበኛ ሰዓት", "HNEG": "የምስራቅ ግሪንላንድ መደበኛ ሰዓት", "AEDT": "የአውስትራሊያ ምዕራባዊ የቀን ሰዓት አቆጣጠር", "SRT": "የሱሪናም ሰዓት", "WEZ": "የምዕራባዊ አውሮፓ መደበኛ ሰዓት", "HEOG": "የምዕራብ ግሪንላንድ ክረምት ሰዓት", "EDT": "የምዕራባዊ የቀን ሰዓት አቆጣጠር", "COT": "የኮሎምቢያ መደበኛ ሰዓት", "HNPMX": "የሜክሲኮ ፓሲፊክ መደበኛ ሰዓት አቆጣጠር", "CHAST": "የቻታም መደበኛ ሰዓት", "GMT": "ግሪንዊች ማዕከላዊ ሰዓት", "HKT": "የሆንግ ኮንግ መደበኛ ሰዓት", "ACST": "የአውስትራሊያ መካከለኛ መደበኛ የሰዓት አቆጣጠር"},
}
}
diff --git a/ar/ar.go b/ar/ar.go
index 05ebd8ff..c0e33abe 100644
--- a/ar/ar.go
+++ b/ar/ar.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"VET": "توقيت فنزويلا", "PDT": "توقيت المحيط الهادي الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "CAT": "توقيت وسط أفريقيا", "HADT": "توقيت هاواي ألوتيان الصيفي", "WIT": "توقيت شرق إندونيسيا", "WESZ": "توقيت غرب أوروبا الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "GFT": "توقيت غايانا الفرنسية", "ADT": "التوقيت الصيفي الأطلسي", "∅∅∅": "توقيت الأمازون الصيفي", "HNCU": "توقيت كوبا الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "WITA": "توقيت وسط إندونيسيا", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "NZST": "توقيت نيوزيلندا الرسمي", "BT": "توقيت بوتان", "AWST": "توقيت غرب أستراليا الرسمي", "GMT": "توقيت غرينتش", "MST": "التوقيت الجبلي الرسمي لأمريكا الشمالية", "BOT": "توقيت بوليفيا", "OEZ": "توقيت شرق أوروبا الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "HNT": "توقيت نيوفاوندلاند الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "GYT": "توقيت غيانا", "ARST": "توقيت الأرجنتين الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "CHAST": "توقيت تشاتام الرسمي", "TMT": "توقيت تركمانستان الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "ECT": "توقيت الإكوادور", "COST": "توقيت كولومبيا الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "UYST": "توقيت أورغواي الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "ART": "توقيت الأرجنتين الرسمي", "IST": "توقيت الهند", "CLST": "توقيت شيلي الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "AKST": "التوقيت الرسمي لألاسكا", "MYT": "توقيت ماليزيا", "MDT": "التوقيت الجبلي الصيفي لأمريكا الشمالية", "SRT": "توقيت سورينام", "PST": "توقيت المحيط الهادي الرسمي", "EAT": "توقيت شرق أفريقيا", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "AST": "التوقيت الرسمي الأطلسي", "HNEG": "توقيت شرق غرينلاند الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "HECU": "توقيت كوبا الصيفي", "UYT": "توقيت أورغواي الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "JDT": "توقيت اليابان الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "HAST": "توقيت هاواي ألوتيان الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "CHADT": "توقيت تشاتام الصيفي", "ChST": "توقيت تشامورو", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "WIB": "توقيت غرب إندونيسيا", "LHST": "توقيت لورد هاو الرسمي", "SAST": "توقيت جنوب أفريقيا", "WARST": "توقيت غرب الأرجنتين الصيفي", "COT": "توقيت كولومبيا الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "CLT": "توقيت شيلي الرسمي", "JST": "توقيت اليابان الرسمي", "TMST": "توقيت تركمانستان الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "SGT": "توقيت سنغافورة"},
+ timezones: map[string]string{"HNPM": "توقيت سانت بيير وميكولون الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "CAT": "توقيت وسط أفريقيا", "VET": "توقيت فنزويلا", "TMT": "توقيت تركمانستان الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "CLST": "توقيت شيلي الصيفي", "MST": "MST", "BT": "توقيت بوتان", "GFT": "توقيت غايانا الفرنسية", "WITA": "توقيت وسط إندونيسيا", "AKST": "التوقيت الرسمي لألاسكا", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HAST": "توقيت هاواي ألوتيان الرسمي", "JDT": "توقيت اليابان الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "EAT": "توقيت شرق أفريقيا", "SRT": "توقيت سورينام", "PDT": "توقيت المحيط الهادي الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HEEG": "توقيت شرق غرينلاند الصيفي", "HNT": "توقيت نيوفاوندلاند الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "CLT": "توقيت شيلي الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "BOT": "توقيت بوليفيا", "ECT": "توقيت الإكوادور", "MESZ": "توقيت وسط أوروبا الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "IST": "توقيت الهند", "MDT": "MDT", "LHST": "توقيت لورد هاو الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "WIT": "توقيت شرق إندونيسيا", "GMT": "توقيت غرينتش", "AEST": "توقيت شرق أستراليا الرسمي", "UYT": "توقيت أورغواي الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "GYT": "توقيت غيانا", "AWDT": "توقيت غرب أستراليا الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "∅∅∅": "توقيت الأمازون الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "UYST": "توقيت أورغواي الصيفي", "HECU": "توقيت كوبا الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "WAT": "توقيت غرب أفريقيا الرسمي", "SAST": "توقيت جنوب أفريقيا", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "CHADT": "توقيت تشاتام الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "ART": "توقيت الأرجنتين الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "COST": "توقيت كولومبيا الصيفي", "AST": "التوقيت الرسمي الأطلسي", "ACST": "توقيت وسط أستراليا الرسمي", "COT": "توقيت كولومبيا الرسمي", "HNCU": "توقيت كوبا الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "JST": "توقيت اليابان الرسمي", "MYT": "توقيت ماليزيا", "AKDT": "توقيت ألاسكا الصيفي", "WIB": "توقيت غرب إندونيسيا", "TMST": "توقيت تركمانستان الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "ChST": "توقيت تشامورو", "CHAST": "توقيت تشاتام الرسمي", "SGT": "توقيت سنغافورة", "MEZ": "توقيت وسط أوروبا الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي"},
}
}
diff --git a/ar_001/ar_001.go b/ar_001/ar_001.go
index cffbc6a0..6dbb3693 100644
--- a/ar_001/ar_001.go
+++ b/ar_001/ar_001.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HADT": "توقيت هاواي ألوتيان الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "IST": "توقيت الهند", "ChST": "توقيت تشامورو", "TMST": "توقيت تركمانستان الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "SRT": "توقيت سورينام", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "JDT": "توقيت اليابان الصيفي", "UYT": "توقيت أورغواي الرسمي", "BT": "توقيت بوتان", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "UYST": "توقيت أورغواي الصيفي", "ART": "توقيت الأرجنتين الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "AST": "التوقيت الرسمي الأطلسي", "GYT": "توقيت غيانا", "VET": "توقيت فنزويلا", "HAT": "توقيت نيوفاوندلاند الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "TMT": "توقيت تركمانستان الرسمي", "EAT": "توقيت شرق أفريقيا", "WAST": "توقيت غرب أفريقيا الصيفي", "COT": "توقيت كولومبيا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "WESZ": "توقيت غرب أوروبا الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "WITA": "توقيت وسط إندونيسيا", "ECT": "توقيت الإكوادور", "WARST": "توقيت غرب الأرجنتين الصيفي", "HNCU": "توقيت كوبا الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "CHAST": "توقيت تشاتام الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "SGT": "توقيت سنغافورة", "MYT": "توقيت ماليزيا", "ARST": "توقيت الأرجنتين الصيفي", "LHST": "توقيت لورد هاو الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "COST": "توقيت كولومبيا الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "GMT": "توقيت غرينتش", "ADT": "التوقيت الصيفي الأطلسي", "HNOG": "توقيت غرب غرينلاند الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "CAT": "توقيت وسط أفريقيا", "WAT": "توقيت غرب أفريقيا الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "AKDT": "توقيت ألاسكا الصيفي", "WIB": "توقيت غرب إندونيسيا", "HAST": "توقيت هاواي ألوتيان الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "CLT": "توقيت شيلي الرسمي", "JST": "توقيت اليابان الرسمي", "BOT": "توقيت بوليفيا", "GFT": "توقيت غايانا الفرنسية", "∅∅∅": "توقيت بيرو الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "WEZ": "توقيت غرب أوروبا الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "CHADT": "توقيت تشاتام الصيفي", "HECU": "توقيت كوبا الصيفي", "WIT": "توقيت شرق إندونيسيا", "SAST": "توقيت جنوب أفريقيا", "CLST": "توقيت شيلي الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "MST": "MST", "MDT": "MDT"},
+ timezones: map[string]string{"HNCU": "توقيت كوبا الرسمي", "HAST": "توقيت هاواي ألوتيان الرسمي", "IST": "توقيت الهند", "SAST": "توقيت جنوب أفريقيا", "EAT": "توقيت شرق أفريقيا", "WIT": "توقيت شرق إندونيسيا", "WART": "توقيت غرب الأرجنتين الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "WITA": "توقيت وسط إندونيسيا", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "GYT": "توقيت غيانا", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "CAT": "توقيت وسط أفريقيا", "JST": "توقيت اليابان الرسمي", "TMST": "توقيت تركمانستان الصيفي", "ART": "توقيت الأرجنتين الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "VET": "توقيت فنزويلا", "HNEG": "توقيت شرق غرينلاند الرسمي", "SRT": "توقيت سورينام", "TMT": "توقيت تركمانستان الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "HECU": "توقيت كوبا الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "CHAST": "توقيت تشاتام الرسمي", "CHADT": "توقيت تشاتام الصيفي", "SGT": "توقيت سنغافورة", "HADT": "توقيت هاواي ألوتيان الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "HNT": "توقيت نيوفاوندلاند الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "JDT": "توقيت اليابان الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "COT": "توقيت كولومبيا الرسمي", "COST": "توقيت كولومبيا الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "GFT": "توقيت غايانا الفرنسية", "AKST": "التوقيت الرسمي لألاسكا", "ECT": "توقيت الإكوادور", "WARST": "توقيت غرب الأرجنتين الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "WEZ": "توقيت غرب أوروبا الرسمي", "GMT": "توقيت غرينتش", "BT": "توقيت بوتان", "AKDT": "توقيت ألاسكا الصيفي", "UYST": "توقيت أورغواي الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "HEEG": "توقيت شرق غرينلاند الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "BOT": "توقيت بوليفيا", "NZST": "توقيت نيوزيلندا الرسمي", "CLT": "توقيت شيلي الرسمي", "CLST": "توقيت شيلي الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "ACDT": "توقيت وسط أستراليا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "WIB": "توقيت غرب إندونيسيا", "AWST": "توقيت غرب أستراليا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "MDT": "MDT", "HAT": "توقيت نيوفاوندلاند الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "MYT": "توقيت ماليزيا", "AST": "التوقيت الرسمي الأطلسي", "MST": "MST", "ChST": "توقيت تشامورو", "UYT": "توقيت أورغواي الرسمي", "∅∅∅": "توقيت برازيليا الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "PST": "توقيت المحيط الهادي الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي"},
}
}
diff --git a/ar_AE/ar_AE.go b/ar_AE/ar_AE.go
index 067ae8ae..7f044f57 100644
--- a/ar_AE/ar_AE.go
+++ b/ar_AE/ar_AE.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"PST": "توقيت المحيط الهادي الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "LHST": "توقيت لورد هاو الرسمي", "CLT": "توقيت شيلي الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "HNT": "توقيت نيوفاوندلاند الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "TMT": "توقيت تركمانستان الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "SRT": "توقيت سورينام", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "NZDT": "توقيت نيوزيلندا الصيفي", "IST": "توقيت الهند", "GFT": "توقيت غايانا الفرنسية", "CAT": "توقيت وسط أفريقيا", "HNCU": "توقيت كوبا الرسمي", "MYT": "توقيت ماليزيا", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "SGT": "توقيت سنغافورة", "HADT": "توقيت هاواي ألوتيان الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "CHADT": "توقيت تشاتام الصيفي", "EAT": "توقيت شرق أفريقيا", "COST": "توقيت كولومبيا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "WAT": "توقيت غرب أفريقيا الرسمي", "COT": "توقيت كولومبيا الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "MST": "MST", "ADT": "التوقيت الصيفي الأطلسي", "GYT": "توقيت غيانا", "ARST": "توقيت الأرجنتين الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "SAST": "توقيت جنوب أفريقيا", "ACDT": "توقيت وسط أستراليا الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "AST": "التوقيت الرسمي الأطلسي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "UYT": "توقيت أورغواي الرسمي", "MDT": "MDT", "WIT": "توقيت شرق إندونيسيا", "HEOG": "توقيت غرب غرينلاند الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "CHAST": "توقيت تشاتام الرسمي", "JDT": "توقيت اليابان الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "AEST": "توقيت شرق أستراليا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "JST": "توقيت اليابان الرسمي", "WIB": "توقيت غرب إندونيسيا", "HAST": "توقيت هاواي ألوتيان الرسمي", "BOT": "توقيت بوليفيا", "TMST": "توقيت تركمانستان الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "GMT": "توقيت غرينتش", "UYST": "توقيت أورغواي الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "HEEG": "توقيت شرق غرينلاند الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "BT": "توقيت بوتان", "PDT": "توقيت المحيط الهادي الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "ART": "توقيت الأرجنتين الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "ECT": "توقيت الإكوادور", "HECU": "توقيت كوبا الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "WITA": "توقيت وسط إندونيسيا", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "CLST": "توقيت شيلي الصيفي", "∅∅∅": "توقيت الأمازون الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "ChST": "توقيت تشامورو", "VET": "توقيت فنزويلا"},
+ timezones: map[string]string{"HNCU": "توقيت كوبا الرسمي", "HECU": "توقيت كوبا الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "HADT": "توقيت هاواي ألوتيان الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "MYT": "توقيت ماليزيا", "HAT": "توقيت نيوفاوندلاند الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "SRT": "توقيت سورينام", "GYT": "توقيت غيانا", "AWDT": "توقيت غرب أستراليا الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "TMT": "توقيت تركمانستان الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "WITA": "توقيت وسط إندونيسيا", "LHDT": "التوقيت الصيفي للورد هاو", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "CAT": "توقيت وسط أفريقيا", "HEOG": "توقيت غرب غرينلاند الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "IST": "توقيت الهند", "CLT": "توقيت شيلي الرسمي", "ART": "توقيت الأرجنتين الرسمي", "UYT": "توقيت أورغواي الرسمي", "SAST": "توقيت جنوب أفريقيا", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "CHAST": "توقيت تشاتام الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "HAST": "توقيت هاواي ألوتيان الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "AST": "التوقيت الرسمي الأطلسي", "ADT": "التوقيت الصيفي الأطلسي", "EAT": "توقيت شرق أفريقيا", "ECT": "توقيت الإكوادور", "MESZ": "توقيت وسط أوروبا الصيفي", "VET": "توقيت فنزويلا", "GMT": "توقيت غرينتش", "WARST": "توقيت غرب الأرجنتين الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "HKT": "توقيت هونغ كونغ الرسمي", "BT": "توقيت بوتان", "AEST": "توقيت شرق أستراليا الرسمي", "TMST": "توقيت تركمانستان الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "MDT": "MDT", "WAT": "توقيت غرب أفريقيا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "HNEG": "توقيت شرق غرينلاند الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "ChST": "توقيت تشامورو", "LHST": "توقيت لورد هاو الرسمي", "BOT": "توقيت بوليفيا", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "MST": "MST", "ARST": "توقيت الأرجنتين الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "UYST": "توقيت أورغواي الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "WIB": "توقيت غرب إندونيسيا", "WIT": "توقيت شرق إندونيسيا", "JDT": "توقيت اليابان الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "HNT": "توقيت نيوفاوندلاند الرسمي", "SGT": "توقيت سنغافورة", "COT": "توقيت كولومبيا الرسمي", "COST": "توقيت كولومبيا الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "GFT": "توقيت غايانا الفرنسية", "∅∅∅": "توقيت برازيليا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "JST": "توقيت اليابان الرسمي", "CLST": "توقيت شيلي الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي"},
}
}
diff --git a/ar_BH/ar_BH.go b/ar_BH/ar_BH.go
index 6ea0023e..f45b0e23 100644
--- a/ar_BH/ar_BH.go
+++ b/ar_BH/ar_BH.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"MESZ": "توقيت وسط أوروبا الصيفي", "ECT": "توقيت الإكوادور", "AKDT": "توقيت ألاسكا الصيفي", "∅∅∅": "توقيت الأمازون الصيفي", "HECU": "توقيت كوبا الصيفي", "MST": "MST", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HNOG": "توقيت غرب غرينلاند الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "GYT": "توقيت غيانا", "MYT": "توقيت ماليزيا", "WIT": "توقيت شرق إندونيسيا", "ARST": "توقيت الأرجنتين الصيفي", "GMT": "توقيت غرينتش", "HADT": "توقيت هاواي ألوتيان الصيفي", "BT": "توقيت بوتان", "HNCU": "توقيت كوبا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "CLT": "توقيت شيلي الرسمي", "TMT": "توقيت تركمانستان الرسمي", "CAT": "توقيت وسط أفريقيا", "HAT": "توقيت نيوفاوندلاند الصيفي", "CLST": "توقيت شيلي الصيفي", "UYT": "توقيت أورغواي الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "AEST": "توقيت شرق أستراليا الرسمي", "EAT": "توقيت شرق أفريقيا", "COT": "توقيت كولومبيا الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "WARST": "توقيت غرب الأرجنتين الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "HEOG": "توقيت غرب غرينلاند الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "COST": "توقيت كولومبيا الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "IST": "توقيت الهند", "HEEG": "توقيت شرق غرينلاند الصيفي", "SGT": "توقيت سنغافورة", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "WEZ": "توقيت غرب أوروبا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "CHAST": "توقيت تشاتام الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "VET": "توقيت فنزويلا", "WAT": "توقيت غرب أفريقيا الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "UYST": "توقيت أورغواي الصيفي", "HNT": "توقيت نيوفاوندلاند الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "JST": "توقيت اليابان الرسمي", "ChST": "توقيت تشامورو", "SRT": "توقيت سورينام", "CHADT": "توقيت تشاتام الصيفي", "GFT": "توقيت غايانا الفرنسية", "ACST": "توقيت وسط أستراليا الرسمي", "MDT": "MDT", "WIB": "توقيت غرب إندونيسيا", "ART": "توقيت الأرجنتين الرسمي", "LHST": "توقيت لورد هاو الرسمي", "BOT": "توقيت بوليفيا", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "JDT": "توقيت اليابان الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "TMST": "توقيت تركمانستان الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "WESZ": "توقيت غرب أوروبا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "SAST": "توقيت جنوب أفريقيا", "AST": "التوقيت الرسمي الأطلسي", "ADT": "التوقيت الصيفي الأطلسي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "WITA": "توقيت وسط إندونيسيا"},
+ timezones: map[string]string{"HNCU": "توقيت كوبا الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "AWST": "توقيت غرب أستراليا الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "CLST": "توقيت شيلي الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "MST": "MST", "HEEG": "توقيت شرق غرينلاند الصيفي", "ECT": "توقيت الإكوادور", "HAST": "توقيت هاواي ألوتيان الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "GFT": "توقيت غايانا الفرنسية", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "BOT": "توقيت بوليفيا", "JST": "توقيت اليابان الرسمي", "GMT": "توقيت غرينتش", "OESZ": "توقيت شرق أوروبا الصيفي", "COST": "توقيت كولومبيا الصيفي", "MYT": "توقيت ماليزيا", "WAST": "توقيت غرب أفريقيا الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "ChST": "توقيت تشامورو", "GYT": "توقيت غيانا", "HECU": "توقيت كوبا الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "TMST": "توقيت تركمانستان الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "WIB": "توقيت غرب إندونيسيا", "UYST": "توقيت أورغواي الصيفي", "SRT": "توقيت سورينام", "HADT": "توقيت هاواي ألوتيان الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "CLT": "توقيت شيلي الرسمي", "AST": "التوقيت الرسمي الأطلسي", "HNEG": "توقيت شرق غرينلاند الرسمي", "UYT": "توقيت أورغواي الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "ART": "توقيت الأرجنتين الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "COT": "توقيت كولومبيا الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "IST": "توقيت الهند", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "BT": "توقيت بوتان", "MDT": "MDT", "AKST": "التوقيت الرسمي لألاسكا", "∅∅∅": "توقيت برازيليا الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "CHAST": "توقيت تشاتام الرسمي", "SGT": "توقيت سنغافورة", "PDT": "توقيت المحيط الهادي الصيفي", "TMT": "توقيت تركمانستان الرسمي", "LHST": "توقيت لورد هاو الرسمي", "EAT": "توقيت شرق أفريقيا", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "CAT": "توقيت وسط أفريقيا", "WEZ": "توقيت غرب أوروبا الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "CHADT": "توقيت تشاتام الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "SAST": "توقيت جنوب أفريقيا", "WIT": "توقيت شرق إندونيسيا", "VET": "توقيت فنزويلا", "JDT": "توقيت اليابان الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "WITA": "توقيت وسط إندونيسيا", "LHDT": "التوقيت الصيفي للورد هاو"},
}
}
diff --git a/ar_DJ/ar_DJ.go b/ar_DJ/ar_DJ.go
index c5144cc5..c0901822 100644
--- a/ar_DJ/ar_DJ.go
+++ b/ar_DJ/ar_DJ.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"ChST": "توقيت تشامورو", "TMT": "توقيت تركمانستان الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "NZST": "توقيت نيوزيلندا الرسمي", "SAST": "توقيت جنوب أفريقيا", "COT": "توقيت كولومبيا الرسمي", "HECU": "توقيت كوبا الصيفي", "HNT": "توقيت نيوفاوندلاند الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "WITA": "توقيت وسط إندونيسيا", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "AST": "التوقيت الرسمي الأطلسي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "CLST": "توقيت شيلي الصيفي", "BOT": "توقيت بوليفيا", "ACST": "توقيت وسط أستراليا الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "BT": "توقيت بوتان", "WEZ": "توقيت غرب أوروبا الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "GYT": "توقيت غيانا", "JDT": "توقيت اليابان الصيفي", "CAT": "توقيت وسط أفريقيا", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "MYT": "توقيت ماليزيا", "AKDT": "توقيت ألاسكا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "WESZ": "توقيت غرب أوروبا الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "COST": "توقيت كولومبيا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HAST": "توقيت هاواي ألوتيان الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "GMT": "توقيت غرينتش", "ART": "توقيت الأرجنتين الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "UYST": "توقيت أورغواي الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "WIB": "توقيت غرب إندونيسيا", "HEOG": "توقيت غرب غرينلاند الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "TMST": "توقيت تركمانستان الصيفي", "VET": "توقيت فنزويلا", "HKST": "توقيت هونغ كونغ الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "MST": "MST", "MDT": "MDT", "MEZ": "توقيت وسط أوروبا الرسمي", "LHST": "توقيت لورد هاو الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "CLT": "توقيت شيلي الرسمي", "∅∅∅": "توقيت الأمازون الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "SGT": "توقيت سنغافورة", "SRT": "توقيت سورينام", "ACDT": "توقيت وسط أستراليا الصيفي", "EAT": "توقيت شرق أفريقيا", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "HNOG": "توقيت غرب غرينلاند الرسمي", "ECT": "توقيت الإكوادور", "UYT": "توقيت أورغواي الرسمي", "GFT": "توقيت غايانا الفرنسية", "HNCU": "توقيت كوبا الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "HADT": "توقيت هاواي ألوتيان الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "CHAST": "توقيت تشاتام الرسمي", "IST": "توقيت الهند", "JST": "توقيت اليابان الرسمي", "WIT": "توقيت شرق إندونيسيا", "PDT": "توقيت المحيط الهادي الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك"},
+ timezones: map[string]string{"AWST": "توقيت غرب أستراليا الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "COST": "توقيت كولومبيا الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "EAT": "توقيت شرق أفريقيا", "WIB": "توقيت غرب إندونيسيا", "WIT": "توقيت شرق إندونيسيا", "WART": "توقيت غرب الأرجنتين الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "ChST": "توقيت تشامورو", "ARST": "توقيت الأرجنتين الصيفي", "UYT": "توقيت أورغواي الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "GMT": "توقيت غرينتش", "BT": "توقيت بوتان", "CHADT": "توقيت تشاتام الصيفي", "ART": "توقيت الأرجنتين الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HNEG": "توقيت شرق غرينلاند الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "JST": "توقيت اليابان الرسمي", "CLT": "توقيت شيلي الرسمي", "WEZ": "توقيت غرب أوروبا الرسمي", "TMST": "توقيت تركمانستان الصيفي", "TMT": "توقيت تركمانستان الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "∅∅∅": "توقيت الأمازون الصيفي", "CAT": "توقيت وسط أفريقيا", "NZST": "توقيت نيوزيلندا الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "ECT": "توقيت الإكوادور", "PDT": "توقيت المحيط الهادي الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "AST": "التوقيت الرسمي الأطلسي", "PST": "توقيت المحيط الهادي الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "SAST": "توقيت جنوب أفريقيا", "SRT": "توقيت سورينام", "AWDT": "توقيت غرب أستراليا الصيفي", "HNT": "توقيت نيوفاوندلاند الرسمي", "VET": "توقيت فنزويلا", "JDT": "توقيت اليابان الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "MDT": "MDT", "WITA": "توقيت وسط إندونيسيا", "AKDT": "توقيت ألاسكا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "IST": "توقيت الهند", "MEZ": "توقيت وسط أوروبا الرسمي", "CLST": "توقيت شيلي الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "GYT": "توقيت غيانا", "MST": "MST", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "GFT": "توقيت غايانا الفرنسية", "AKST": "التوقيت الرسمي لألاسكا", "HADT": "توقيت هاواي ألوتيان الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "MYT": "توقيت ماليزيا", "ACDT": "توقيت وسط أستراليا الصيفي", "CHAST": "توقيت تشاتام الرسمي", "HECU": "توقيت كوبا الصيفي", "SGT": "توقيت سنغافورة", "HNOG": "توقيت غرب غرينلاند الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "AEST": "توقيت شرق أستراليا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "UYST": "توقيت أورغواي الصيفي", "HNCU": "توقيت كوبا الرسمي", "BOT": "توقيت بوليفيا", "WAST": "توقيت غرب أفريقيا الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "ACST": "توقيت وسط أستراليا الرسمي", "COT": "توقيت كولومبيا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية"},
}
}
diff --git a/ar_DZ/ar_DZ.go b/ar_DZ/ar_DZ.go
index 5ee8e260..7a84fe38 100644
--- a/ar_DZ/ar_DZ.go
+++ b/ar_DZ/ar_DZ.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HKST": "توقيت هونغ كونغ الصيفي", "CHAST": "توقيت تشاتام الرسمي", "CHADT": "توقيت تشاتام الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "ECT": "توقيت الإكوادور", "WART": "توقيت غرب الأرجنتين الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "COT": "توقيت كولومبيا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "ChST": "توقيت تشامورو", "WARST": "توقيت غرب الأرجنتين الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "GMT": "توقيت غرينتش", "SGT": "توقيت سنغافورة", "BT": "توقيت بوتان", "MDT": "التوقيت الجبلي الصيفي لأمريكا الشمالية", "GYT": "توقيت غيانا", "MST": "التوقيت الجبلي الرسمي لأمريكا الشمالية", "HNOG": "توقيت غرب غرينلاند الرسمي", "LHST": "توقيت لورد هاو الرسمي", "SAST": "توقيت جنوب أفريقيا", "JDT": "توقيت اليابان الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "UYST": "توقيت أورغواي الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "WAT": "توقيت غرب أفريقيا الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "WIT": "توقيت شرق إندونيسيا", "GFT": "توقيت غايانا الفرنسية", "TMT": "توقيت تركمانستان الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "CLT": "توقيت شيلي الرسمي", "CLST": "توقيت شيلي الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "ART": "توقيت الأرجنتين الرسمي", "IST": "توقيت الهند", "JST": "توقيت اليابان الرسمي", "HNCU": "توقيت كوبا الرسمي", "HECU": "توقيت كوبا الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "ADT": "التوقيت الصيفي الأطلسي", "MYT": "توقيت ماليزيا", "UYT": "توقيت أورغواي الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "PDT": "توقيت المحيط الهادي الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "COST": "توقيت كولومبيا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HAT": "توقيت نيوفاوندلاند الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "TMST": "توقيت تركمانستان الصيفي", "EAT": "توقيت شرق أفريقيا", "WIB": "توقيت غرب إندونيسيا", "∅∅∅": "توقيت الأمازون الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "SRT": "توقيت سورينام", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "BOT": "توقيت بوليفيا", "WITA": "توقيت وسط إندونيسيا", "AST": "التوقيت الرسمي الأطلسي", "VET": "توقيت فنزويلا", "HNT": "توقيت نيوفاوندلاند الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WEZ": "توقيت غرب أوروبا الرسمي", "CAT": "توقيت وسط أفريقيا", "WAST": "توقيت غرب أفريقيا الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي"},
+ timezones: map[string]string{"NZST": "توقيت نيوزيلندا الرسمي", "TMST": "توقيت تركمانستان الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "WITA": "توقيت وسط إندونيسيا", "UYT": "توقيت أورغواي الرسمي", "HNCU": "توقيت كوبا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "ACST": "توقيت وسط أستراليا الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "AWST": "توقيت غرب أستراليا الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "HAT": "توقيت نيوفاوندلاند الصيفي", "ChST": "توقيت تشامورو", "NZDT": "توقيت نيوزيلندا الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "GYT": "توقيت غيانا", "WIT": "توقيت شرق إندونيسيا", "CLT": "توقيت شيلي الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "HECU": "توقيت كوبا الصيفي", "BOT": "توقيت بوليفيا", "JST": "توقيت اليابان الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "BT": "توقيت بوتان", "GFT": "توقيت غايانا الفرنسية", "WESZ": "توقيت غرب أوروبا الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "MST": "MST", "MDT": "MDT", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "COT": "توقيت كولومبيا الرسمي", "CAT": "توقيت وسط أفريقيا", "MEZ": "توقيت وسط أوروبا الرسمي", "SAST": "توقيت جنوب أفريقيا", "LHST": "توقيت لورد هاو الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "CLST": "توقيت شيلي الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "GMT": "توقيت غرينتش", "MYT": "توقيت ماليزيا", "TMT": "توقيت تركمانستان الرسمي", "COST": "توقيت كولومبيا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "ECT": "توقيت الإكوادور", "AEDT": "توقيت شرق أستراليا الصيفي", "UYST": "توقيت أورغواي الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "ART": "توقيت الأرجنتين الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "WIB": "توقيت غرب إندونيسيا", "HAST": "توقيت هاواي ألوتيان الرسمي", "JDT": "توقيت اليابان الصيفي", "VET": "توقيت فنزويلا", "WEZ": "توقيت غرب أوروبا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "IST": "توقيت الهند", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "SGT": "توقيت سنغافورة", "HEOG": "توقيت غرب غرينلاند الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "AST": "التوقيت الرسمي الأطلسي", "HKST": "توقيت هونغ كونغ الصيفي", "CHADT": "توقيت تشاتام الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "EAT": "توقيت شرق أفريقيا", "HNT": "توقيت نيوفاوندلاند الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "∅∅∅": "توقيت الأمازون الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "SRT": "توقيت سورينام", "CHAST": "توقيت تشاتام الرسمي", "PDT": "توقيت المحيط الهادي الصيفي"},
}
}
diff --git a/ar_EG/ar_EG.go b/ar_EG/ar_EG.go
index 662ace35..ef1329e7 100644
--- a/ar_EG/ar_EG.go
+++ b/ar_EG/ar_EG.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HNPM": "توقيت سانت بيير وميكولون الرسمي", "JDT": "توقيت اليابان الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "MYT": "توقيت ماليزيا", "HEOG": "توقيت غرب غرينلاند الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "LHST": "توقيت لورد هاو الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "HECU": "توقيت كوبا الصيفي", "SGT": "توقيت سنغافورة", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "HNT": "توقيت نيوفاوندلاند الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "∅∅∅": "توقيت الأمازون الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "ECT": "توقيت الإكوادور", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "AEDT": "توقيت شرق أستراليا الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "COST": "توقيت كولومبيا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "WIB": "توقيت غرب إندونيسيا", "BT": "توقيت بوتان", "ART": "توقيت الأرجنتين الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "CLT": "توقيت شيلي الرسمي", "GFT": "توقيت غايانا الفرنسية", "WART": "توقيت غرب الأرجنتين الرسمي", "MST": "MST", "AKST": "التوقيت الرسمي لألاسكا", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "GYT": "توقيت غيانا", "WAT": "توقيت غرب أفريقيا الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "PST": "توقيت المحيط الهادي الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "SAST": "توقيت جنوب أفريقيا", "CLST": "توقيت شيلي الصيفي", "TMST": "توقيت تركمانستان الصيفي", "CAT": "توقيت وسط أفريقيا", "MEZ": "توقيت وسط أوروبا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "EAT": "توقيت شرق أفريقيا", "MDT": "MDT", "HADT": "توقيت هاواي ألوتيان الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "CHAST": "توقيت تشاتام الرسمي", "TMT": "توقيت تركمانستان الرسمي", "ChST": "توقيت تشامورو", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "UYT": "توقيت أورغواي الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "JST": "توقيت اليابان الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "WIT": "توقيت شرق إندونيسيا", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "WITA": "توقيت وسط إندونيسيا", "WEZ": "توقيت غرب أوروبا الرسمي", "AST": "التوقيت الرسمي الأطلسي", "COT": "توقيت كولومبيا الرسمي", "GMT": "توقيت غرينتش", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "UYST": "توقيت أورغواي الصيفي", "SRT": "توقيت سورينام", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "VET": "توقيت فنزويلا", "IST": "توقيت الهند", "ACDT": "توقيت وسط أستراليا الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "BOT": "توقيت بوليفيا", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HNCU": "توقيت كوبا الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "CHADT": "توقيت تشاتام الصيفي"},
+ timezones: map[string]string{"EAT": "توقيت شرق أفريقيا", "ChST": "توقيت تشامورو", "LHST": "توقيت لورد هاو الرسمي", "GYT": "توقيت غيانا", "PDT": "توقيت المحيط الهادي الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "HECU": "توقيت كوبا الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "AWDT": "توقيت غرب أستراليا الصيفي", "WIB": "توقيت غرب إندونيسيا", "AST": "التوقيت الرسمي الأطلسي", "BT": "توقيت بوتان", "WITA": "توقيت وسط إندونيسيا", "AEST": "توقيت شرق أستراليا الرسمي", "MST": "التوقيت الجبلي الرسمي لأمريكا الشمالية", "ECT": "توقيت الإكوادور", "IST": "توقيت الهند", "MEZ": "توقيت وسط أوروبا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "AEDT": "توقيت شرق أستراليا الصيفي", "UYT": "توقيت أورغواي الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "TMST": "توقيت تركمانستان الصيفي", "ART": "توقيت الأرجنتين الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "SRT": "توقيت سورينام", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "ACST": "توقيت وسط أستراليا الرسمي", "CLST": "توقيت شيلي الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "TMT": "توقيت تركمانستان الرسمي", "SGT": "توقيت سنغافورة", "PST": "توقيت المحيط الهادي الرسمي", "HAST": "توقيت هاواي ألوتيان الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "UYST": "توقيت أورغواي الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "AWST": "توقيت غرب أستراليا الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "∅∅∅": "توقيت أزورس الصيفي", "HNCU": "توقيت كوبا الرسمي", "CHADT": "توقيت تشاتام الصيفي", "BOT": "توقيت بوليفيا", "CAT": "توقيت وسط أفريقيا", "GFT": "توقيت غايانا الفرنسية", "AKST": "التوقيت الرسمي لألاسكا", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "WAST": "توقيت غرب أفريقيا الصيفي", "VET": "توقيت فنزويلا", "HNOG": "توقيت غرب غرينلاند الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "MYT": "توقيت ماليزيا", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HAT": "توقيت نيوفاوندلاند الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "MDT": "التوقيت الجبلي الصيفي لأمريكا الشمالية", "OESZ": "توقيت شرق أوروبا الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "COST": "توقيت كولومبيا الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "HNT": "توقيت نيوفاوندلاند الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "COT": "توقيت كولومبيا الرسمي", "JDT": "توقيت اليابان الصيفي", "JST": "توقيت اليابان الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "GMT": "توقيت غرينتش", "SAST": "توقيت جنوب أفريقيا", "WIT": "توقيت شرق إندونيسيا", "CHAST": "توقيت تشاتام الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "CLT": "توقيت شيلي الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي"},
}
}
diff --git a/ar_EH/ar_EH.go b/ar_EH/ar_EH.go
index c742f783..29cff871 100644
--- a/ar_EH/ar_EH.go
+++ b/ar_EH/ar_EH.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HNOG": "توقيت غرب غرينلاند الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "GMT": "توقيت غرينتش", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "UYT": "توقيت أورغواي الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "HAT": "توقيت نيوفاوندلاند الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "CHAST": "توقيت تشاتام الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "SAST": "توقيت جنوب أفريقيا", "JST": "توقيت اليابان الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "AST": "التوقيت الرسمي الأطلسي", "PST": "توقيت المحيط الهادي الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "CLT": "توقيت شيلي الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "BT": "توقيت بوتان", "HEOG": "توقيت غرب غرينلاند الصيفي", "TMST": "توقيت تركمانستان الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "VET": "توقيت فنزويلا", "EAT": "توقيت شرق أفريقيا", "HNCU": "توقيت كوبا الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "SRT": "توقيت سورينام", "WEZ": "توقيت غرب أوروبا الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "ECT": "توقيت الإكوادور", "WAT": "توقيت غرب أفريقيا الرسمي", "GYT": "توقيت غيانا", "WIB": "توقيت غرب إندونيسيا", "JDT": "توقيت اليابان الصيفي", "CLST": "توقيت شيلي الصيفي", "UYST": "توقيت أورغواي الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "ART": "توقيت الأرجنتين الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "SGT": "توقيت سنغافورة", "HECU": "توقيت كوبا الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "GFT": "توقيت غايانا الفرنسية", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "MYT": "توقيت ماليزيا", "AKST": "التوقيت الرسمي لألاسكا", "NZDT": "توقيت نيوزيلندا الصيفي", "IST": "توقيت الهند", "∅∅∅": "توقيت الأمازون الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "COST": "توقيت كولومبيا الصيفي", "MDT": "MDT", "HADT": "توقيت هاواي ألوتيان الصيفي", "WITA": "توقيت وسط إندونيسيا", "CHADT": "توقيت تشاتام الصيفي", "TMT": "توقيت تركمانستان الرسمي", "BOT": "توقيت بوليفيا", "ACDT": "توقيت وسط أستراليا الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "ChST": "توقيت تشامورو", "CAT": "توقيت وسط أفريقيا", "COT": "توقيت كولومبيا الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "LHST": "توقيت لورد هاو الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "MST": "MST", "WIT": "توقيت شرق إندونيسيا"},
+ timezones: map[string]string{"SAST": "توقيت جنوب أفريقيا", "LHST": "توقيت لورد هاو الرسمي", "GYT": "توقيت غيانا", "MDT": "MDT", "ART": "توقيت الأرجنتين الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "ARST": "توقيت الأرجنتين الصيفي", "COT": "توقيت كولومبيا الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "HECU": "توقيت كوبا الصيفي", "MYT": "توقيت ماليزيا", "AST": "التوقيت الرسمي الأطلسي", "CHADT": "توقيت تشاتام الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "BT": "توقيت بوتان", "AKST": "التوقيت الرسمي لألاسكا", "AWST": "توقيت غرب أستراليا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "TMST": "توقيت تركمانستان الصيفي", "JDT": "توقيت اليابان الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "WITA": "توقيت وسط إندونيسيا", "UYT": "توقيت أورغواي الرسمي", "WIT": "توقيت شرق إندونيسيا", "ECT": "توقيت الإكوادور", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "IST": "توقيت الهند", "HAST": "توقيت هاواي ألوتيان الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HNT": "توقيت نيوفاوندلاند الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "SRT": "توقيت سورينام", "HNOG": "توقيت غرب غرينلاند الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "COST": "توقيت كولومبيا الصيفي", "WIB": "توقيت غرب إندونيسيا", "AWDT": "توقيت غرب أستراليا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "HNEG": "توقيت شرق غرينلاند الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "HADT": "توقيت هاواي ألوتيان الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "TMT": "توقيت تركمانستان الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "∅∅∅": "توقيت الأمازون الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "CLST": "توقيت شيلي الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "UYST": "توقيت أورغواي الصيفي", "EAT": "توقيت شرق أفريقيا", "BOT": "توقيت بوليفيا", "NZDT": "توقيت نيوزيلندا الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "VET": "توقيت فنزويلا", "CLT": "توقيت شيلي الرسمي", "GFT": "توقيت غايانا الفرنسية", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "CHAST": "توقيت تشاتام الرسمي", "CAT": "توقيت وسط أفريقيا", "MEZ": "توقيت وسط أوروبا الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "HNCU": "توقيت كوبا الرسمي", "MST": "MST", "HAT": "توقيت نيوفاوندلاند الصيفي", "ChST": "توقيت تشامورو", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "SGT": "توقيت سنغافورة", "JST": "توقيت اليابان الرسمي", "GMT": "توقيت غرينتش"},
}
}
diff --git a/ar_ER/ar_ER.go b/ar_ER/ar_ER.go
index 355e486b..eb39ee84 100644
--- a/ar_ER/ar_ER.go
+++ b/ar_ER/ar_ER.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"EAT": "توقيت شرق أفريقيا", "OEZ": "توقيت شرق أوروبا الرسمي", "ECT": "توقيت الإكوادور", "HECU": "توقيت كوبا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "WESZ": "توقيت غرب أوروبا الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "CAT": "توقيت وسط أفريقيا", "AKST": "التوقيت الرسمي لألاسكا", "AWST": "توقيت غرب أستراليا الرسمي", "CHAST": "توقيت تشاتام الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "GYT": "توقيت غيانا", "UYT": "توقيت أورغواي الرسمي", "WIT": "توقيت شرق إندونيسيا", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "CLT": "توقيت شيلي الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "LHST": "توقيت لورد هاو الرسمي", "GMT": "توقيت غرينتش", "VET": "توقيت فنزويلا", "NZST": "توقيت نيوزيلندا الرسمي", "IST": "توقيت الهند", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "MYT": "توقيت ماليزيا", "HADT": "توقيت هاواي ألوتيان الصيفي", "JDT": "توقيت اليابان الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "MST": "MST", "UYST": "توقيت أورغواي الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "CLST": "توقيت شيلي الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "ARST": "توقيت الأرجنتين الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "HNCU": "توقيت كوبا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "JST": "توقيت اليابان الرسمي", "ChST": "توقيت تشامورو", "MDT": "MDT", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "WITA": "توقيت وسط إندونيسيا", "HEEG": "توقيت شرق غرينلاند الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "COT": "توقيت كولومبيا الرسمي", "WEZ": "توقيت غرب أوروبا الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "∅∅∅": "توقيت بيرو الصيفي", "WIB": "توقيت غرب إندونيسيا", "HNT": "توقيت نيوفاوندلاند الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "COST": "توقيت كولومبيا الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "ART": "توقيت الأرجنتين الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "HAST": "توقيت هاواي ألوتيان الرسمي", "SRT": "توقيت سورينام", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "GFT": "توقيت غايانا الفرنسية", "TMT": "توقيت تركمانستان الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "AST": "التوقيت الرسمي الأطلسي", "AEST": "توقيت شرق أستراليا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "BOT": "توقيت بوليفيا", "TMST": "توقيت تركمانستان الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "SGT": "توقيت سنغافورة", "BT": "توقيت بوتان", "CHADT": "توقيت تشاتام الصيفي", "SAST": "توقيت جنوب أفريقيا"},
+ timezones: map[string]string{"OESZ": "توقيت شرق أوروبا الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "OEZ": "توقيت شرق أوروبا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "COST": "توقيت كولومبيا الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "HNT": "توقيت نيوفاوندلاند الرسمي", "LHST": "توقيت لورد هاو الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "JST": "توقيت اليابان الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "MYT": "توقيت ماليزيا", "ADT": "التوقيت الصيفي الأطلسي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "HAST": "توقيت هاواي ألوتيان الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "VET": "توقيت فنزويلا", "COT": "توقيت كولومبيا الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "GFT": "توقيت غايانا الفرنسية", "AWST": "توقيت غرب أستراليا الرسمي", "SGT": "توقيت سنغافورة", "NZST": "توقيت نيوزيلندا الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "SRT": "توقيت سورينام", "WIB": "توقيت غرب إندونيسيا", "ECT": "توقيت الإكوادور", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "WAST": "توقيت غرب أفريقيا الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "ACST": "توقيت وسط أستراليا الرسمي", "WITA": "توقيت وسط إندونيسيا", "UYST": "توقيت أورغواي الصيفي", "BOT": "توقيت بوليفيا", "WARST": "توقيت غرب الأرجنتين الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "TMT": "توقيت تركمانستان الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "ChST": "توقيت تشامورو", "HNCU": "توقيت كوبا الرسمي", "CAT": "توقيت وسط أفريقيا", "CLST": "توقيت شيلي الصيفي", "HECU": "توقيت كوبا الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "JDT": "توقيت اليابان الصيفي", "TMST": "توقيت تركمانستان الصيفي", "MDT": "MDT", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "CHAST": "توقيت تشاتام الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "HADT": "توقيت هاواي ألوتيان الصيفي", "BT": "توقيت بوتان", "EAT": "توقيت شرق أفريقيا", "∅∅∅": "توقيت برازيليا الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "IST": "توقيت الهند", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "AST": "التوقيت الرسمي الأطلسي", "ART": "توقيت الأرجنتين الرسمي", "UYT": "توقيت أورغواي الرسمي", "WIT": "توقيت شرق إندونيسيا", "CLT": "توقيت شيلي الرسمي", "GMT": "توقيت غرينتش", "HNOG": "توقيت غرب غرينلاند الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "MST": "MST", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "AKDT": "توقيت ألاسكا الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "SAST": "توقيت جنوب أفريقيا", "GYT": "توقيت غيانا"},
}
}
diff --git a/ar_IL/ar_IL.go b/ar_IL/ar_IL.go
index 55c0473b..ca9921bc 100644
--- a/ar_IL/ar_IL.go
+++ b/ar_IL/ar_IL.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"WAT": "توقيت غرب أفريقيا الرسمي", "COST": "توقيت كولومبيا الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "WIT": "توقيت شرق إندونيسيا", "AWST": "توقيت غرب أستراليا الرسمي", "UYT": "توقيت أورغواي الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "HNEG": "توقيت شرق غرينلاند الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HNCU": "توقيت كوبا الرسمي", "MDT": "MDT", "WIB": "توقيت غرب إندونيسيا", "PST": "توقيت المحيط الهادي الرسمي", "JDT": "توقيت اليابان الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "JST": "توقيت اليابان الرسمي", "EAT": "توقيت شرق أفريقيا", "WARST": "توقيت غرب الأرجنتين الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "SAST": "توقيت جنوب أفريقيا", "GYT": "توقيت غيانا", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "BOT": "توقيت بوليفيا", "GFT": "توقيت غايانا الفرنسية", "TMT": "توقيت تركمانستان الرسمي", "GMT": "توقيت غرينتش", "MST": "MST", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "LHDT": "التوقيت الصيفي للورد هاو", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "MYT": "توقيت ماليزيا", "AEST": "توقيت شرق أستراليا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "CHADT": "توقيت تشاتام الصيفي", "CAT": "توقيت وسط أفريقيا", "SGT": "توقيت سنغافورة", "WEZ": "توقيت غرب أوروبا الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "TMST": "توقيت تركمانستان الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "CLST": "توقيت شيلي الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "HECU": "توقيت كوبا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HNOG": "توقيت غرب غرينلاند الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "CLT": "توقيت شيلي الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "COT": "توقيت كولومبيا الرسمي", "BT": "توقيت بوتان", "HKT": "توقيت هونغ كونغ الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "UYST": "توقيت أورغواي الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "WITA": "توقيت وسط إندونيسيا", "CHAST": "توقيت تشاتام الرسمي", "IST": "توقيت الهند", "AST": "التوقيت الرسمي الأطلسي", "ADT": "التوقيت الصيفي الأطلسي", "HNT": "توقيت نيوفاوندلاند الرسمي", "ART": "توقيت الأرجنتين الرسمي", "ChST": "توقيت تشامورو", "∅∅∅": "توقيت بيرو الصيفي", "ECT": "توقيت الإكوادور", "SRT": "توقيت سورينام", "NZDT": "توقيت نيوزيلندا الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "HADT": "توقيت هاواي ألوتيان الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "VET": "توقيت فنزويلا"},
+ timezones: map[string]string{"GYT": "توقيت غيانا", "HNCU": "توقيت كوبا الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "∅∅∅": "توقيت الأمازون الصيفي", "CLT": "توقيت شيلي الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "JDT": "توقيت اليابان الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "GFT": "توقيت غايانا الفرنسية", "AEST": "توقيت شرق أستراليا الرسمي", "HECU": "توقيت كوبا الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "COT": "توقيت كولومبيا الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "CHAST": "توقيت تشاتام الرسمي", "VET": "توقيت فنزويلا", "AST": "التوقيت الرسمي الأطلسي", "AKDT": "توقيت ألاسكا الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "MST": "MST", "SRT": "توقيت سورينام", "BOT": "توقيت بوليفيا", "IST": "توقيت الهند", "HEOG": "توقيت غرب غرينلاند الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "OEZ": "توقيت شرق أوروبا الرسمي", "MDT": "MDT", "WAST": "توقيت غرب أفريقيا الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "CHADT": "توقيت تشاتام الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "ECT": "توقيت الإكوادور", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "BT": "توقيت بوتان", "UYST": "توقيت أورغواي الصيفي", "SAST": "توقيت جنوب أفريقيا", "WIB": "توقيت غرب إندونيسيا", "OESZ": "توقيت شرق أوروبا الصيفي", "UYT": "توقيت أورغواي الرسمي", "WIT": "توقيت شرق إندونيسيا", "CAT": "توقيت وسط أفريقيا", "TMT": "توقيت تركمانستان الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "EAT": "توقيت شرق أفريقيا", "WESZ": "توقيت غرب أوروبا الصيفي", "GMT": "توقيت غرينتش", "ACDT": "توقيت وسط أستراليا الصيفي", "WITA": "توقيت وسط إندونيسيا", "WARST": "توقيت غرب الأرجنتين الصيفي", "ART": "توقيت الأرجنتين الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "SGT": "توقيت سنغافورة", "TMST": "توقيت تركمانستان الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "ChST": "توقيت تشامورو", "HAST": "توقيت هاواي ألوتيان الرسمي", "JST": "توقيت اليابان الرسمي", "MYT": "توقيت ماليزيا", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "PDT": "توقيت المحيط الهادي الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "COST": "توقيت كولومبيا الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "CLST": "توقيت شيلي الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "AEDT": "توقيت شرق أستراليا الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "NZDT": "توقيت نيوزيلندا الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "HNEG": "توقيت شرق غرينلاند الرسمي"},
}
}
diff --git a/ar_IQ/ar_IQ.go b/ar_IQ/ar_IQ.go
index 8e472f33..b4b7ffa8 100644
--- a/ar_IQ/ar_IQ.go
+++ b/ar_IQ/ar_IQ.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HNT": "توقيت نيوفاوندلاند الرسمي", "ART": "توقيت الأرجنتين الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "JST": "توقيت اليابان الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "COST": "توقيت كولومبيا الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "EAT": "توقيت شرق أفريقيا", "HNCU": "توقيت كوبا الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "AKST": "التوقيت الرسمي لألاسكا", "GYT": "توقيت غيانا", "UYST": "توقيت أورغواي الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "TMST": "توقيت تركمانستان الصيفي", "CAT": "توقيت وسط أفريقيا", "GFT": "توقيت غايانا الفرنسية", "WART": "توقيت غرب الأرجنتين الرسمي", "BT": "توقيت بوتان", "SRT": "توقيت سورينام", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "∅∅∅": "توقيت الأمازون الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "AWDT": "توقيت غرب أستراليا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WAST": "توقيت غرب أفريقيا الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "CHAST": "توقيت تشاتام الرسمي", "SAST": "توقيت جنوب أفريقيا", "TMT": "توقيت تركمانستان الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "WEZ": "توقيت غرب أوروبا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "JDT": "توقيت اليابان الصيفي", "ChST": "توقيت تشامورو", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "PST": "توقيت المحيط الهادي الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "WITA": "توقيت وسط إندونيسيا", "CHADT": "توقيت تشاتام الصيفي", "BOT": "توقيت بوليفيا", "WAT": "توقيت غرب أفريقيا الرسمي", "WIT": "توقيت شرق إندونيسيا", "ARST": "توقيت الأرجنتين الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "MDT": "MDT", "MYT": "توقيت ماليزيا", "WIB": "توقيت غرب إندونيسيا", "HKT": "توقيت هونغ كونغ الرسمي", "IST": "توقيت الهند", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "GMT": "توقيت غرينتش", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "MST": "MST", "AST": "التوقيت الرسمي الأطلسي", "HAST": "توقيت هاواي ألوتيان الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "CLT": "توقيت شيلي الرسمي", "HECU": "توقيت كوبا الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "SGT": "توقيت سنغافورة", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "AKDT": "توقيت ألاسكا الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "COT": "توقيت كولومبيا الرسمي", "ECT": "توقيت الإكوادور", "UYT": "توقيت أورغواي الرسمي", "VET": "توقيت فنزويلا", "HNOG": "توقيت غرب غرينلاند الرسمي", "CLST": "توقيت شيلي الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي"},
+ timezones: map[string]string{"SRT": "توقيت سورينام", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "NZDT": "توقيت نيوزيلندا الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "COST": "توقيت كولومبيا الصيفي", "ChST": "توقيت تشامورو", "PST": "توقيت المحيط الهادي الرسمي", "IST": "توقيت الهند", "JDT": "توقيت اليابان الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "CLT": "توقيت شيلي الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "∅∅∅": "توقيت أزورس الصيفي", "CAT": "توقيت وسط أفريقيا", "JST": "توقيت اليابان الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "HNCU": "توقيت كوبا الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "CHAST": "توقيت تشاتام الرسمي", "BOT": "توقيت بوليفيا", "HADT": "توقيت هاواي ألوتيان الصيفي", "VET": "توقيت فنزويلا", "MYT": "توقيت ماليزيا", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "ADT": "التوقيت الصيفي الأطلسي", "WEZ": "توقيت غرب أوروبا الرسمي", "COT": "توقيت كولومبيا الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "EAT": "توقيت شرق أفريقيا", "WARST": "توقيت غرب الأرجنتين الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HAT": "توقيت نيوفاوندلاند الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "GFT": "توقيت غايانا الفرنسية", "HECU": "توقيت كوبا الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "TMT": "توقيت تركمانستان الرسمي", "WITA": "توقيت وسط إندونيسيا", "UYST": "توقيت أورغواي الصيفي", "SAST": "توقيت جنوب أفريقيا", "LHST": "توقيت لورد هاو الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "SGT": "توقيت سنغافورة", "CLST": "توقيت شيلي الصيفي", "BT": "توقيت بوتان", "GYT": "توقيت غيانا", "OEZ": "توقيت شرق أوروبا الرسمي", "ART": "توقيت الأرجنتين الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "MDT": "التوقيت الجبلي الصيفي لأمريكا الشمالية", "AKST": "التوقيت الرسمي لألاسكا", "AWDT": "توقيت غرب أستراليا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "UYT": "توقيت أورغواي الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "AST": "التوقيت الرسمي الأطلسي", "TMST": "توقيت تركمانستان الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "NZST": "توقيت نيوزيلندا الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "WIB": "توقيت غرب إندونيسيا", "ECT": "توقيت الإكوادور", "GMT": "توقيت غرينتش", "AEDT": "توقيت شرق أستراليا الصيفي", "MST": "التوقيت الجبلي الرسمي لأمريكا الشمالية", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "WIT": "توقيت شرق إندونيسيا", "PDT": "توقيت المحيط الهادي الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "ACST": "توقيت وسط أستراليا الرسمي"},
}
}
diff --git a/ar_JO/ar_JO.go b/ar_JO/ar_JO.go
index 13a215c9..45538cb9 100644
--- a/ar_JO/ar_JO.go
+++ b/ar_JO/ar_JO.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"SRT": "توقيت سورينام", "NZST": "توقيت نيوزيلندا الرسمي", "SAST": "توقيت جنوب أفريقيا", "ACST": "توقيت وسط أستراليا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "AST": "التوقيت الرسمي الأطلسي", "UYST": "توقيت أورغواي الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "CHAST": "توقيت تشاتام الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "BT": "توقيت بوتان", "LHST": "توقيت لورد هاو الرسمي", "JDT": "توقيت اليابان الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HNCU": "توقيت كوبا الرسمي", "MST": "التوقيت الجبلي الرسمي لأمريكا الشمالية", "AEDT": "توقيت شرق أستراليا الصيفي", "COST": "توقيت كولومبيا الصيفي", "GMT": "توقيت غرينتش", "OESZ": "توقيت شرق أوروبا الصيفي", "WIT": "توقيت شرق إندونيسيا", "HEOG": "توقيت غرب غرينلاند الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "JST": "توقيت اليابان الرسمي", "TMST": "توقيت تركمانستان الصيفي", "SGT": "توقيت سنغافورة", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "MYT": "توقيت ماليزيا", "AKST": "التوقيت الرسمي لألاسكا", "HADT": "توقيت هاواي ألوتيان الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "∅∅∅": "توقيت الأمازون الصيفي", "ChST": "توقيت تشامورو", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "WIB": "توقيت غرب إندونيسيا", "ARST": "توقيت الأرجنتين الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "WITA": "توقيت وسط إندونيسيا", "WAST": "توقيت غرب أفريقيا الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "ART": "توقيت الأرجنتين الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "BOT": "توقيت بوليفيا", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "GFT": "توقيت غايانا الفرنسية", "COT": "توقيت كولومبيا الرسمي", "MDT": "التوقيت الجبلي الصيفي لأمريكا الشمالية", "VET": "توقيت فنزويلا", "AEST": "توقيت شرق أستراليا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "CHADT": "توقيت تشاتام الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "EAT": "توقيت شرق أفريقيا", "GYT": "توقيت غيانا", "AKDT": "توقيت ألاسكا الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "CAT": "توقيت وسط أفريقيا", "HECU": "توقيت كوبا الصيفي", "UYT": "توقيت أورغواي الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "CLT": "توقيت شيلي الرسمي", "CLST": "توقيت شيلي الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "IST": "توقيت الهند", "TMT": "توقيت تركمانستان الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "ECT": "توقيت الإكوادور", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية"},
+ timezones: map[string]string{"HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "HNCU": "توقيت كوبا الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "WIB": "توقيت غرب إندونيسيا", "ECT": "توقيت الإكوادور", "JST": "توقيت اليابان الرسمي", "AST": "التوقيت الرسمي الأطلسي", "OESZ": "توقيت شرق أوروبا الصيفي", "TMT": "توقيت تركمانستان الرسمي", "ART": "توقيت الأرجنتين الرسمي", "GFT": "توقيت غايانا الفرنسية", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "WIT": "توقيت شرق إندونيسيا", "MESZ": "توقيت وسط أوروبا الصيفي", "GMT": "توقيت غرينتش", "MYT": "توقيت ماليزيا", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "AWDT": "توقيت غرب أستراليا الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "CLST": "توقيت شيلي الصيفي", "SAST": "توقيت جنوب أفريقيا", "EAT": "توقيت شرق أفريقيا", "AEDT": "توقيت شرق أستراليا الصيفي", "SRT": "توقيت سورينام", "BOT": "توقيت بوليفيا", "COST": "توقيت كولومبيا الصيفي", "UYT": "توقيت أورغواي الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HKST": "توقيت هونغ كونغ الصيفي", "HNT": "توقيت نيوفاوندلاند الرسمي", "CHADT": "توقيت تشاتام الصيفي", "IST": "توقيت الهند", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "GYT": "توقيت غيانا", "CHAST": "توقيت تشاتام الرسمي", "JDT": "توقيت اليابان الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "SGT": "توقيت سنغافورة", "HADT": "توقيت هاواي ألوتيان الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "MDT": "MDT", "ACST": "توقيت وسط أستراليا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HKT": "توقيت هونغ كونغ الرسمي", "UYST": "توقيت أورغواي الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "TMST": "توقيت تركمانستان الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "HAT": "توقيت نيوفاوندلاند الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "VET": "توقيت فنزويلا", "CLT": "توقيت شيلي الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "MST": "MST", "∅∅∅": "∅∅∅", "LHST": "توقيت لورد هاو الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "HECU": "توقيت كوبا الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "ARST": "توقيت الأرجنتين الصيفي", "COT": "توقيت كولومبيا الرسمي", "BT": "توقيت بوتان", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "PDT": "توقيت المحيط الهادي الصيفي", "CAT": "توقيت وسط أفريقيا", "WAT": "توقيت غرب أفريقيا الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "WITA": "توقيت وسط إندونيسيا", "ChST": "توقيت تشامورو"},
}
}
diff --git a/ar_KM/ar_KM.go b/ar_KM/ar_KM.go
index 2927be99..67c9936c 100644
--- a/ar_KM/ar_KM.go
+++ b/ar_KM/ar_KM.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"CLST": "توقيت شيلي الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "WART": "توقيت غرب الأرجنتين الرسمي", "HADT": "توقيت هاواي ألوتيان الصيفي", "VET": "توقيت فنزويلا", "NZST": "توقيت نيوزيلندا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "UYST": "توقيت أورغواي الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "TMST": "توقيت تركمانستان الصيفي", "MYT": "توقيت ماليزيا", "BT": "توقيت بوتان", "ECT": "توقيت الإكوادور", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "CHAST": "توقيت تشاتام الرسمي", "IST": "توقيت الهند", "BOT": "توقيت بوليفيا", "WAT": "توقيت غرب أفريقيا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "JST": "توقيت اليابان الرسمي", "HNCU": "توقيت كوبا الرسمي", "SGT": "توقيت سنغافورة", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "WITA": "توقيت وسط إندونيسيا", "GMT": "توقيت غرينتش", "WIB": "توقيت غرب إندونيسيا", "WESZ": "توقيت غرب أوروبا الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "HECU": "توقيت كوبا الصيفي", "MST": "MST", "AST": "التوقيت الرسمي الأطلسي", "JDT": "توقيت اليابان الصيفي", "ChST": "توقيت تشامورو", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "SRT": "توقيت سورينام", "PDT": "توقيت المحيط الهادي الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "ARST": "توقيت الأرجنتين الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "HNEG": "توقيت شرق غرينلاند الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "AKST": "التوقيت الرسمي لألاسكا", "AKDT": "توقيت ألاسكا الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "HKST": "توقيت هونغ كونغ الصيفي", "GFT": "توقيت غايانا الفرنسية", "∅∅∅": "توقيت أزورس الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "SAST": "توقيت جنوب أفريقيا", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "ART": "توقيت الأرجنتين الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "TMT": "توقيت تركمانستان الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "CAT": "توقيت وسط أفريقيا", "COT": "توقيت كولومبيا الرسمي", "COST": "توقيت كولومبيا الصيفي", "HNT": "توقيت نيوفاوندلاند الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "GYT": "توقيت غيانا", "AEDT": "توقيت شرق أستراليا الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "EAT": "توقيت شرق أفريقيا", "MDT": "MDT", "UYT": "توقيت أورغواي الرسمي", "WIT": "توقيت شرق إندونيسيا", "HEOG": "توقيت غرب غرينلاند الصيفي", "CLT": "توقيت شيلي الرسمي"},
+ timezones: map[string]string{"WART": "توقيت غرب الأرجنتين الرسمي", "ART": "توقيت الأرجنتين الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "ChST": "توقيت تشامورو", "SAST": "توقيت جنوب أفريقيا", "MESZ": "توقيت وسط أوروبا الصيفي", "AST": "التوقيت الرسمي الأطلسي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "HNCU": "توقيت كوبا الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "ACST": "توقيت وسط أستراليا الرسمي", "BT": "توقيت بوتان", "HEEG": "توقيت شرق غرينلاند الصيفي", "WIT": "توقيت شرق إندونيسيا", "CAT": "توقيت وسط أفريقيا", "WESZ": "توقيت غرب أوروبا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "HNT": "توقيت نيوفاوندلاند الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "∅∅∅": "توقيت الأمازون الصيفي", "TMT": "توقيت تركمانستان الرسمي", "COT": "توقيت كولومبيا الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "GFT": "توقيت غايانا الفرنسية", "AKST": "التوقيت الرسمي لألاسكا", "CLST": "توقيت شيلي الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "GYT": "توقيت غيانا", "CLT": "توقيت شيلي الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "COST": "توقيت كولومبيا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "SRT": "توقيت سورينام", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "UYST": "توقيت أورغواي الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "HADT": "توقيت هاواي ألوتيان الصيفي", "GMT": "توقيت غرينتش", "HKST": "توقيت هونغ كونغ الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "LHDT": "التوقيت الصيفي للورد هاو", "SGT": "توقيت سنغافورة", "ECT": "توقيت الإكوادور", "OESZ": "توقيت شرق أوروبا الصيفي", "MYT": "توقيت ماليزيا", "HNOG": "توقيت غرب غرينلاند الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "MST": "MST", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "CHAST": "توقيت تشاتام الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "VET": "توقيت فنزويلا", "JDT": "توقيت اليابان الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "MDT": "MDT", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HECU": "توقيت كوبا الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "JST": "توقيت اليابان الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "EAT": "توقيت شرق أفريقيا", "BOT": "توقيت بوليفيا", "PDT": "توقيت المحيط الهادي الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "TMST": "توقيت تركمانستان الصيفي", "WITA": "توقيت وسط إندونيسيا", "AEST": "توقيت شرق أستراليا الرسمي", "WIB": "توقيت غرب إندونيسيا", "IST": "توقيت الهند", "MEZ": "توقيت وسط أوروبا الرسمي", "LHST": "توقيت لورد هاو الرسمي", "HAST": "توقيت هاواي ألوتيان الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "UYT": "توقيت أورغواي الرسمي"},
}
}
diff --git a/ar_KW/ar_KW.go b/ar_KW/ar_KW.go
index 101fee6c..ecd9bc36 100644
--- a/ar_KW/ar_KW.go
+++ b/ar_KW/ar_KW.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"NZST": "توقيت نيوزيلندا الرسمي", "COST": "توقيت كولومبيا الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "GMT": "توقيت غرينتش", "AEDT": "توقيت شرق أستراليا الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "EAT": "توقيت شرق أفريقيا", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "MEZ": "توقيت وسط أوروبا الرسمي", "CLT": "توقيت شيلي الرسمي", "ChST": "توقيت تشامورو", "MST": "MST", "JDT": "توقيت اليابان الصيفي", "GFT": "توقيت غايانا الفرنسية", "HNEG": "توقيت شرق غرينلاند الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "MDT": "MDT", "HAT": "توقيت نيوفاوندلاند الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "CHAST": "توقيت تشاتام الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "JST": "توقيت اليابان الرسمي", "ECT": "توقيت الإكوادور", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "AKDT": "توقيت ألاسكا الصيفي", "UYST": "توقيت أورغواي الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "HNT": "توقيت نيوفاوندلاند الرسمي", "BOT": "توقيت بوليفيا", "HNCU": "توقيت كوبا الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "MYT": "توقيت ماليزيا", "UYT": "توقيت أورغواي الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "IST": "توقيت الهند", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "TMT": "توقيت تركمانستان الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "AKST": "التوقيت الرسمي لألاسكا", "BT": "توقيت بوتان", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "WIT": "توقيت شرق إندونيسيا", "HADT": "توقيت هاواي ألوتيان الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "∅∅∅": "توقيت بيرو الصيفي", "GYT": "توقيت غيانا", "AEST": "توقيت شرق أستراليا الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "TMST": "توقيت تركمانستان الصيفي", "SRT": "توقيت سورينام", "WEZ": "توقيت غرب أوروبا الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "CAT": "توقيت وسط أفريقيا", "WARST": "توقيت غرب الأرجنتين الصيفي", "AST": "التوقيت الرسمي الأطلسي", "VET": "توقيت فنزويلا", "HAST": "توقيت هاواي ألوتيان الرسمي", "SGT": "توقيت سنغافورة", "WIB": "توقيت غرب إندونيسيا", "LHDT": "التوقيت الصيفي للورد هاو", "CLST": "توقيت شيلي الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "COT": "توقيت كولومبيا الرسمي", "HECU": "توقيت كوبا الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "ADT": "التوقيت الصيفي الأطلسي", "ART": "توقيت الأرجنتين الرسمي", "SAST": "توقيت جنوب أفريقيا", "WESZ": "توقيت غرب أوروبا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "WITA": "توقيت وسط إندونيسيا", "LHST": "توقيت لورد هاو الرسمي", "CHADT": "توقيت تشاتام الصيفي"},
+ timezones: map[string]string{"MDT": "MDT", "ACDT": "توقيت وسط أستراليا الصيفي", "UYT": "توقيت أورغواي الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "CLST": "توقيت شيلي الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "∅∅∅": "توقيت بيرو الصيفي", "EAT": "توقيت شرق أفريقيا", "HECU": "توقيت كوبا الصيفي", "VET": "توقيت فنزويلا", "TMT": "توقيت تركمانستان الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "BT": "توقيت بوتان", "HNCU": "توقيت كوبا الرسمي", "CHADT": "توقيت تشاتام الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "WIB": "توقيت غرب إندونيسيا", "CAT": "توقيت وسط أفريقيا", "HNOG": "توقيت غرب غرينلاند الرسمي", "AST": "التوقيت الرسمي الأطلسي", "ART": "توقيت الأرجنتين الرسمي", "HAST": "توقيت هاواي ألوتيان الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "CLT": "توقيت شيلي الرسمي", "SRT": "توقيت سورينام", "WIT": "توقيت شرق إندونيسيا", "HNEG": "توقيت شرق غرينلاند الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "GMT": "توقيت غرينتش", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HNT": "توقيت نيوفاوندلاند الرسمي", "ECT": "توقيت الإكوادور", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "BOT": "توقيت بوليفيا", "COST": "توقيت كولومبيا الصيفي", "UYST": "توقيت أورغواي الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "HKT": "توقيت هونغ كونغ الرسمي", "WEZ": "توقيت غرب أوروبا الرسمي", "GYT": "توقيت غيانا", "PST": "توقيت المحيط الهادي الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "MYT": "توقيت ماليزيا", "ChST": "توقيت تشامورو", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "AEDT": "توقيت شرق أستراليا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HADT": "توقيت هاواي ألوتيان الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "COT": "توقيت كولومبيا الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "JDT": "توقيت اليابان الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "GFT": "توقيت غايانا الفرنسية", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "NZST": "توقيت نيوزيلندا الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "SAST": "توقيت جنوب أفريقيا", "SGT": "توقيت سنغافورة", "PDT": "توقيت المحيط الهادي الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "JST": "توقيت اليابان الرسمي", "WITA": "توقيت وسط إندونيسيا", "MESZ": "توقيت وسط أوروبا الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "CHAST": "توقيت تشاتام الرسمي", "IST": "توقيت الهند", "WART": "توقيت غرب الأرجنتين الرسمي", "TMST": "توقيت تركمانستان الصيفي", "MST": "MST"},
}
}
diff --git a/ar_LB/ar_LB.go b/ar_LB/ar_LB.go
index 678cf2c2..530a5ab8 100644
--- a/ar_LB/ar_LB.go
+++ b/ar_LB/ar_LB.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"CAT": "توقيت وسط أفريقيا", "WARST": "توقيت غرب الأرجنتين الصيفي", "COST": "توقيت كولومبيا الصيفي", "AST": "التوقيت الرسمي الأطلسي", "BT": "توقيت بوتان", "AEST": "توقيت شرق أستراليا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "IST": "توقيت الهند", "UYT": "توقيت أورغواي الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "ART": "توقيت الأرجنتين الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "JDT": "توقيت اليابان الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "HNCU": "توقيت كوبا الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "UYST": "توقيت أورغواي الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "CHAST": "توقيت تشاتام الرسمي", "GFT": "توقيت غايانا الفرنسية", "SGT": "توقيت سنغافورة", "HNT": "توقيت نيوفاوندلاند الرسمي", "WITA": "توقيت وسط إندونيسيا", "HEEG": "توقيت شرق غرينلاند الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "WIT": "توقيت شرق إندونيسيا", "HKT": "توقيت هونغ كونغ الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "SAST": "توقيت جنوب أفريقيا", "WART": "توقيت غرب الأرجنتين الرسمي", "GMT": "توقيت غرينتش", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "CLT": "توقيت شيلي الرسمي", "TMT": "توقيت تركمانستان الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "HECU": "توقيت كوبا الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "HADT": "توقيت هاواي ألوتيان الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "TMST": "توقيت تركمانستان الصيفي", "ChST": "توقيت تشامورو", "EAT": "توقيت شرق أفريقيا", "WESZ": "توقيت غرب أوروبا الصيفي", "ECT": "توقيت الإكوادور", "VET": "توقيت فنزويلا", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "WEZ": "توقيت غرب أوروبا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "∅∅∅": "توقيت الأمازون الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "SRT": "توقيت سورينام", "PDT": "توقيت المحيط الهادي الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "MEZ": "توقيت وسط أوروبا الرسمي", "MDT": "MDT", "GYT": "توقيت غيانا", "WIB": "توقيت غرب إندونيسيا", "CLST": "توقيت شيلي الصيفي", "BOT": "توقيت بوليفيا", "WAST": "توقيت غرب أفريقيا الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "COT": "توقيت كولومبيا الرسمي", "MST": "MST", "MYT": "توقيت ماليزيا", "AWST": "توقيت غرب أستراليا الرسمي", "JST": "توقيت اليابان الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي"},
+ timezones: map[string]string{"UYT": "توقيت أورغواي الرسمي", "JST": "توقيت اليابان الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "TMT": "توقيت تركمانستان الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "WARST": "توقيت غرب الأرجنتين الصيفي", "MDT": "MDT", "HKT": "توقيت هونغ كونغ الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "GYT": "توقيت غيانا", "AWST": "توقيت غرب أستراليا الرسمي", "VET": "توقيت فنزويلا", "MESZ": "توقيت وسط أوروبا الصيفي", "ART": "توقيت الأرجنتين الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "WIT": "توقيت شرق إندونيسيا", "CHAST": "توقيت تشاتام الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "SGT": "توقيت سنغافورة", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "HNT": "توقيت نيوفاوندلاند الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "LHST": "توقيت لورد هاو الرسمي", "COT": "توقيت كولومبيا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "SRT": "توقيت سورينام", "SAST": "توقيت جنوب أفريقيا", "PST": "توقيت المحيط الهادي الرسمي", "MYT": "توقيت ماليزيا", "CLT": "توقيت شيلي الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "CHADT": "توقيت تشاتام الصيفي", "ECT": "توقيت الإكوادور", "NZST": "توقيت نيوزيلندا الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "BOT": "توقيت بوليفيا", "NZDT": "توقيت نيوزيلندا الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "EAT": "توقيت شرق أفريقيا", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "WEZ": "توقيت غرب أوروبا الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "GFT": "توقيت غايانا الفرنسية", "HNCU": "توقيت كوبا الرسمي", "MST": "MST", "UYST": "توقيت أورغواي الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "HECU": "توقيت كوبا الصيفي", "IST": "توقيت الهند", "CAT": "توقيت وسط أفريقيا", "JDT": "توقيت اليابان الصيفي", "AST": "التوقيت الرسمي الأطلسي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "BT": "توقيت بوتان", "AEST": "توقيت شرق أستراليا الرسمي", "HAST": "توقيت هاواي ألوتيان الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "COST": "توقيت كولومبيا الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "TMST": "توقيت تركمانستان الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "HADT": "توقيت هاواي ألوتيان الصيفي", "∅∅∅": "توقيت الأمازون الصيفي", "GMT": "توقيت غرينتش", "CLST": "توقيت شيلي الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "WITA": "توقيت وسط إندونيسيا", "WIB": "توقيت غرب إندونيسيا", "AWDT": "توقيت غرب أستراليا الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "ChST": "توقيت تشامورو"},
}
}
diff --git a/ar_LY/ar_LY.go b/ar_LY/ar_LY.go
index f074810f..bf983200 100644
--- a/ar_LY/ar_LY.go
+++ b/ar_LY/ar_LY.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"LHDT": "التوقيت الصيفي للورد هاو", "SAST": "توقيت جنوب أفريقيا", "COST": "توقيت كولومبيا الصيفي", "MDT": "MDT", "AST": "التوقيت الرسمي الأطلسي", "MYT": "توقيت ماليزيا", "TMST": "توقيت تركمانستان الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "SGT": "توقيت سنغافورة", "HECU": "توقيت كوبا الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "IST": "توقيت الهند", "JST": "توقيت اليابان الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "AKST": "التوقيت الرسمي لألاسكا", "HADT": "توقيت هاواي ألوتيان الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "CLST": "توقيت شيلي الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "HNCU": "توقيت كوبا الرسمي", "UYST": "توقيت أورغواي الصيفي", "TMT": "توقيت تركمانستان الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "BOT": "توقيت بوليفيا", "HEEG": "توقيت شرق غرينلاند الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "MST": "MST", "GYT": "توقيت غيانا", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "SRT": "توقيت سورينام", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "WITA": "توقيت وسط إندونيسيا", "HKT": "توقيت هونغ كونغ الرسمي", "CHAST": "توقيت تشاتام الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "WIT": "توقيت شرق إندونيسيا", "BT": "توقيت بوتان", "ARST": "توقيت الأرجنتين الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "JDT": "توقيت اليابان الصيفي", "ChST": "توقيت تشامورو", "WESZ": "توقيت غرب أوروبا الصيفي", "CLT": "توقيت شيلي الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "CHADT": "توقيت تشاتام الصيفي", "∅∅∅": "توقيت الأمازون الصيفي", "EAT": "توقيت شرق أفريقيا", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "HAST": "توقيت هاواي ألوتيان الرسمي", "ART": "توقيت الأرجنتين الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "ECT": "توقيت الإكوادور", "COT": "توقيت كولومبيا الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WIB": "توقيت غرب إندونيسيا", "VET": "توقيت فنزويلا", "HNT": "توقيت نيوفاوندلاند الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "GFT": "توقيت غايانا الفرنسية", "CAT": "توقيت وسط أفريقيا", "WART": "توقيت غرب الأرجنتين الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "GMT": "توقيت غرينتش", "UYT": "توقيت أورغواي الرسمي", "WEZ": "توقيت غرب أوروبا الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي"},
+ timezones: map[string]string{"CAT": "توقيت وسط أفريقيا", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "UYST": "توقيت أورغواي الصيفي", "∅∅∅": "توقيت أزورس الصيفي", "CLST": "توقيت شيلي الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "GYT": "توقيت غيانا", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "AKST": "التوقيت الرسمي لألاسكا", "AWST": "توقيت غرب أستراليا الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "SGT": "توقيت سنغافورة", "OESZ": "توقيت شرق أوروبا الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "WIB": "توقيت غرب إندونيسيا", "HEOG": "توقيت غرب غرينلاند الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "MYT": "توقيت ماليزيا", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "BT": "توقيت بوتان", "MDT": "MDT", "CHADT": "توقيت تشاتام الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "JST": "توقيت اليابان الرسمي", "ART": "توقيت الأرجنتين الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "HNCU": "توقيت كوبا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "ChST": "توقيت تشامورو", "UYT": "توقيت أورغواي الرسمي", "HADT": "توقيت هاواي ألوتيان الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HECU": "توقيت كوبا الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "VET": "توقيت فنزويلا", "GMT": "توقيت غرينتش", "TMT": "توقيت تركمانستان الرسمي", "TMST": "توقيت تركمانستان الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "ARST": "توقيت الأرجنتين الصيفي", "WIT": "توقيت شرق إندونيسيا", "ECT": "توقيت الإكوادور", "WEZ": "توقيت غرب أوروبا الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "WITA": "توقيت وسط إندونيسيا", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "ADT": "التوقيت الصيفي الأطلسي", "CLT": "توقيت شيلي الرسمي", "MST": "MST", "WAST": "توقيت غرب أفريقيا الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "SAST": "توقيت جنوب أفريقيا", "CHAST": "توقيت تشاتام الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "AST": "التوقيت الرسمي الأطلسي", "WART": "توقيت غرب الأرجنتين الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "LHST": "توقيت لورد هاو الرسمي", "EAT": "توقيت شرق أفريقيا", "HAST": "توقيت هاواي ألوتيان الرسمي", "COST": "توقيت كولومبيا الصيفي", "GFT": "توقيت غايانا الفرنسية", "LHDT": "التوقيت الصيفي للورد هاو", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "BOT": "توقيت بوليفيا", "PST": "توقيت المحيط الهادي الرسمي", "IST": "توقيت الهند", "JDT": "توقيت اليابان الصيفي", "COT": "توقيت كولومبيا الرسمي", "SRT": "توقيت سورينام"},
}
}
diff --git a/ar_MA/ar_MA.go b/ar_MA/ar_MA.go
index 73bc6e86..0e40b582 100644
--- a/ar_MA/ar_MA.go
+++ b/ar_MA/ar_MA.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"WEZ": "توقيت غرب أوروبا الرسمي", "EAT": "توقيت شرق أفريقيا", "WAT": "توقيت غرب أفريقيا الرسمي", "GYT": "توقيت غيانا", "AKST": "التوقيت الرسمي لألاسكا", "AWST": "توقيت غرب أستراليا الرسمي", "CHAST": "توقيت تشاتام الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "WESZ": "توقيت غرب أوروبا الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "TMST": "توقيت تركمانستان الصيفي", "SGT": "توقيت سنغافورة", "HNOG": "توقيت غرب غرينلاند الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "WITA": "توقيت وسط إندونيسيا", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "ECT": "توقيت الإكوادور", "AEDT": "توقيت شرق أستراليا الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "CAT": "توقيت وسط أفريقيا", "HADT": "توقيت هاواي ألوتيان الصيفي", "VET": "توقيت فنزويلا", "HKST": "توقيت هونغ كونغ الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "CLT": "توقيت شيلي الرسمي", "GFT": "توقيت غايانا الفرنسية", "OESZ": "توقيت شرق أوروبا الصيفي", "COST": "توقيت كولومبيا الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "TMT": "توقيت تركمانستان الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "COT": "توقيت كولومبيا الرسمي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "UYT": "توقيت أورغواي الرسمي", "WIT": "توقيت شرق إندونيسيا", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "MDT": "MDT", "HNT": "توقيت نيوفاوندلاند الرسمي", "ChST": "توقيت تشامورو", "WAST": "توقيت غرب أفريقيا الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "ADT": "التوقيت الصيفي الأطلسي", "WIB": "توقيت غرب إندونيسيا", "SRT": "توقيت سورينام", "LHST": "توقيت لورد هاو الرسمي", "CLST": "توقيت شيلي الصيفي", "BOT": "توقيت بوليفيا", "OEZ": "توقيت شرق أوروبا الرسمي", "GMT": "توقيت غرينتش", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HKT": "توقيت هونغ كونغ الرسمي", "∅∅∅": "توقيت الأمازون الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "MST": "MST", "IST": "توقيت الهند", "JST": "توقيت اليابان الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "SAST": "توقيت جنوب أفريقيا", "AST": "التوقيت الرسمي الأطلسي", "UYST": "توقيت أورغواي الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "BT": "توقيت بوتان", "ARST": "توقيت الأرجنتين الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "NZST": "توقيت نيوزيلندا الرسمي", "JDT": "توقيت اليابان الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "MYT": "توقيت ماليزيا", "ART": "توقيت الأرجنتين الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "HNCU": "توقيت كوبا الرسمي", "HECU": "توقيت كوبا الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية"},
+ timezones: map[string]string{"IST": "توقيت الهند", "MESZ": "توقيت وسط أوروبا الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "JST": "توقيت اليابان الرسمي", "ART": "توقيت الأرجنتين الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "MDT": "التوقيت الجبلي الصيفي لأمريكا الشمالية", "SGT": "توقيت سنغافورة", "MEZ": "توقيت وسط أوروبا الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "OEZ": "توقيت شرق أوروبا الرسمي", "MYT": "توقيت ماليزيا", "COT": "توقيت كولومبيا الرسمي", "UYST": "توقيت أورغواي الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "EAT": "توقيت شرق أفريقيا", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HECU": "توقيت كوبا الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "ECT": "توقيت الإكوادور", "WARST": "توقيت غرب الأرجنتين الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "MST": "التوقيت الجبلي الرسمي لأمريكا الشمالية", "ACST": "توقيت وسط أستراليا الرسمي", "BT": "توقيت بوتان", "TMST": "توقيت تركمانستان الصيفي", "WIT": "توقيت شرق إندونيسيا", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "CAT": "توقيت وسط أفريقيا", "OESZ": "توقيت شرق أوروبا الصيفي", "GMT": "توقيت غرينتش", "∅∅∅": "∅∅∅", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "GYT": "توقيت غيانا", "WESZ": "توقيت غرب أوروبا الصيفي", "GFT": "توقيت غايانا الفرنسية", "ChST": "توقيت تشامورو", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "AKDT": "توقيت ألاسكا الصيفي", "SAST": "توقيت جنوب أفريقيا", "HADT": "توقيت هاواي ألوتيان الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "UYT": "توقيت أورغواي الرسمي", "SRT": "توقيت سورينام", "WIB": "توقيت غرب إندونيسيا", "HAST": "توقيت هاواي ألوتيان الرسمي", "AST": "التوقيت الرسمي الأطلسي", "HNT": "توقيت نيوفاوندلاند الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "CHAST": "توقيت تشاتام الرسمي", "VET": "توقيت فنزويلا", "JDT": "توقيت اليابان الصيفي", "CLT": "توقيت شيلي الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "WITA": "توقيت وسط إندونيسيا", "LHDT": "التوقيت الصيفي للورد هاو", "ADT": "التوقيت الصيفي الأطلسي", "TMT": "توقيت تركمانستان الرسمي", "WEZ": "توقيت غرب أوروبا الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "COST": "توقيت كولومبيا الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "CLST": "توقيت شيلي الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "ACDT": "توقيت وسط أستراليا الصيفي", "BOT": "توقيت بوليفيا", "CHADT": "توقيت تشاتام الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "LHST": "توقيت لورد هاو الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "HNCU": "توقيت كوبا الرسمي"},
}
}
diff --git a/ar_MR/ar_MR.go b/ar_MR/ar_MR.go
index 05b33fb3..19adf6bb 100644
--- a/ar_MR/ar_MR.go
+++ b/ar_MR/ar_MR.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HKST": "توقيت هونغ كونغ الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "JST": "توقيت اليابان الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "ADT": "التوقيت الصيفي الأطلسي", "MYT": "توقيت ماليزيا", "UYST": "توقيت أورغواي الصيفي", "ART": "توقيت الأرجنتين الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "CLT": "توقيت شيلي الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "HNCU": "توقيت كوبا الرسمي", "HECU": "توقيت كوبا الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "CHAST": "توقيت تشاتام الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "TMT": "توقيت تركمانستان الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "JDT": "توقيت اليابان الصيفي", "SGT": "توقيت سنغافورة", "WEZ": "توقيت غرب أوروبا الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "IST": "توقيت الهند", "WAT": "توقيت غرب أفريقيا الرسمي", "ECT": "توقيت الإكوادور", "COT": "توقيت كولومبيا الرسمي", "HAST": "توقيت هاواي ألوتيان الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "ChST": "توقيت تشامورو", "CAT": "توقيت وسط أفريقيا", "MDT": "MDT", "AEDT": "توقيت شرق أستراليا الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WIT": "توقيت شرق إندونيسيا", "WART": "توقيت غرب الأرجنتين الرسمي", "GMT": "توقيت غرينتش", "HAT": "توقيت نيوفاوندلاند الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "LHST": "توقيت لورد هاو الرسمي", "CHADT": "توقيت تشاتام الصيفي", "GFT": "توقيت غايانا الفرنسية", "AST": "التوقيت الرسمي الأطلسي", "SAST": "توقيت جنوب أفريقيا", "∅∅∅": "توقيت الأمازون الصيفي", "TMST": "توقيت تركمانستان الصيفي", "SRT": "توقيت سورينام", "COST": "توقيت كولومبيا الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "EAT": "توقيت شرق أفريقيا", "AKDT": "توقيت ألاسكا الصيفي", "CLST": "توقيت شيلي الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "VET": "توقيت فنزويلا", "BT": "توقيت بوتان", "AWDT": "توقيت غرب أستراليا الصيفي", "BOT": "توقيت بوليفيا", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "WIB": "توقيت غرب إندونيسيا", "PST": "توقيت المحيط الهادي الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "WESZ": "توقيت غرب أوروبا الصيفي", "WITA": "توقيت وسط إندونيسيا", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "HADT": "توقيت هاواي ألوتيان الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "MST": "MST", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "GYT": "توقيت غيانا", "UYT": "توقيت أورغواي الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي"},
+ timezones: map[string]string{"WEZ": "توقيت غرب أوروبا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "EAT": "توقيت شرق أفريقيا", "OEZ": "توقيت شرق أوروبا الرسمي", "ART": "توقيت الأرجنتين الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "WIT": "توقيت شرق إندونيسيا", "IST": "توقيت الهند", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HEEG": "توقيت شرق غرينلاند الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "PST": "توقيت المحيط الهادي الرسمي", "CAT": "توقيت وسط أفريقيا", "ADT": "التوقيت الصيفي الأطلسي", "OESZ": "توقيت شرق أوروبا الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "CHADT": "توقيت تشاتام الصيفي", "ECT": "توقيت الإكوادور", "WARST": "توقيت غرب الأرجنتين الصيفي", "MDT": "MDT", "WAT": "توقيت غرب أفريقيا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "WITA": "توقيت وسط إندونيسيا", "ChST": "توقيت تشامورو", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "JDT": "توقيت اليابان الصيفي", "AST": "التوقيت الرسمي الأطلسي", "COT": "توقيت كولومبيا الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "GYT": "توقيت غيانا", "BOT": "توقيت بوليفيا", "VET": "توقيت فنزويلا", "ARST": "توقيت الأرجنتين الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "BT": "توقيت بوتان", "HECU": "توقيت كوبا الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "SGT": "توقيت سنغافورة", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "CLT": "توقيت شيلي الرسمي", "TMT": "توقيت تركمانستان الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "UYT": "توقيت أورغواي الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "MST": "MST", "HNEG": "توقيت شرق غرينلاند الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "JST": "توقيت اليابان الرسمي", "CLST": "توقيت شيلي الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "AEST": "توقيت شرق أستراليا الرسمي", "HNCU": "توقيت كوبا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "GMT": "توقيت غرينتش", "HKST": "توقيت هونغ كونغ الصيفي", "∅∅∅": "∅∅∅", "GFT": "توقيت غايانا الفرنسية", "WIB": "توقيت غرب إندونيسيا", "NZST": "توقيت نيوزيلندا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "SAST": "توقيت جنوب أفريقيا", "HAST": "توقيت هاواي ألوتيان الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "COST": "توقيت كولومبيا الصيفي", "UYST": "توقيت أورغواي الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "CHAST": "توقيت تشاتام الرسمي", "HADT": "توقيت هاواي ألوتيان الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "MYT": "توقيت ماليزيا", "TMST": "توقيت تركمانستان الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "SRT": "توقيت سورينام"},
}
}
diff --git a/ar_OM/ar_OM.go b/ar_OM/ar_OM.go
index 2bea560b..745e58a3 100644
--- a/ar_OM/ar_OM.go
+++ b/ar_OM/ar_OM.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"VET": "توقيت فنزويلا", "PST": "توقيت المحيط الهادي الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "SAST": "توقيت جنوب أفريقيا", "WART": "توقيت غرب الأرجنتين الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "GMT": "توقيت غرينتش", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "HEOG": "توقيت غرب غرينلاند الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "ARST": "توقيت الأرجنتين الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "JDT": "توقيت اليابان الصيفي", "EAT": "توقيت شرق أفريقيا", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "UYST": "توقيت أورغواي الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "ChST": "توقيت تشامورو", "BOT": "توقيت بوليفيا", "WAT": "توقيت غرب أفريقيا الرسمي", "GFT": "توقيت غايانا الفرنسية", "OEZ": "توقيت شرق أوروبا الرسمي", "WIB": "توقيت غرب إندونيسيا", "PDT": "توقيت المحيط الهادي الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "∅∅∅": "توقيت الأمازون الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "CAT": "توقيت وسط أفريقيا", "HECU": "توقيت كوبا الصيفي", "MST": "MST", "SRT": "توقيت سورينام", "IST": "توقيت الهند", "AKST": "التوقيت الرسمي لألاسكا", "ADT": "التوقيت الصيفي الأطلسي", "WEZ": "توقيت غرب أوروبا الرسمي", "ART": "توقيت الأرجنتين الرسمي", "WITA": "توقيت وسط إندونيسيا", "TMST": "توقيت تركمانستان الصيفي", "ECT": "توقيت الإكوادور", "WARST": "توقيت غرب الأرجنتين الصيفي", "HNCU": "توقيت كوبا الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "AEST": "توقيت شرق أستراليا الرسمي", "CLT": "توقيت شيلي الرسمي", "CLST": "توقيت شيلي الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "MYT": "توقيت ماليزيا", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "CHADT": "توقيت تشاتام الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "GYT": "توقيت غيانا", "HADT": "توقيت هاواي ألوتيان الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "BT": "توقيت بوتان", "TMT": "توقيت تركمانستان الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "COT": "توقيت كولومبيا الرسمي", "COST": "توقيت كولومبيا الصيفي", "SGT": "توقيت سنغافورة", "MDT": "MDT", "HAT": "توقيت نيوفاوندلاند الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "CHAST": "توقيت تشاتام الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "JST": "توقيت اليابان الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "UYT": "توقيت أورغواي الرسمي", "AST": "التوقيت الرسمي الأطلسي", "WIT": "توقيت شرق إندونيسيا", "AWDT": "توقيت غرب أستراليا الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي"},
+ timezones: map[string]string{"HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "WITA": "توقيت وسط إندونيسيا", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "GFT": "توقيت غايانا الفرنسية", "AEDT": "توقيت شرق أستراليا الصيفي", "ECT": "توقيت الإكوادور", "CAT": "توقيت وسط أفريقيا", "OESZ": "توقيت شرق أوروبا الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "HNT": "توقيت نيوفاوندلاند الرسمي", "LHST": "توقيت لورد هاو الرسمي", "TMT": "توقيت تركمانستان الرسمي", "SGT": "توقيت سنغافورة", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "CLT": "توقيت شيلي الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "CHAST": "توقيت تشاتام الرسمي", "GMT": "توقيت غرينتش", "MST": "التوقيت الجبلي الرسمي لأمريكا الشمالية", "AWDT": "توقيت غرب أستراليا الصيفي", "JST": "توقيت اليابان الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "JDT": "توقيت اليابان الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "HAT": "توقيت نيوفاوندلاند الصيفي", "UYT": "توقيت أورغواي الرسمي", "HNCU": "توقيت كوبا الرسمي", "UYST": "توقيت أورغواي الصيفي", "SRT": "توقيت سورينام", "CHADT": "توقيت تشاتام الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "TMST": "توقيت تركمانستان الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "HADT": "توقيت هاواي ألوتيان الصيفي", "VET": "توقيت فنزويلا", "OEZ": "توقيت شرق أوروبا الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "ChST": "توقيت تشامورو", "HEOG": "توقيت غرب غرينلاند الصيفي", "AST": "التوقيت الرسمي الأطلسي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "AKST": "التوقيت الرسمي لألاسكا", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "BOT": "توقيت بوليفيا", "HAST": "توقيت هاواي ألوتيان الرسمي", "CLST": "توقيت شيلي الصيفي", "COT": "توقيت كولومبيا الرسمي", "SAST": "توقيت جنوب أفريقيا", "HECU": "توقيت كوبا الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "∅∅∅": "∅∅∅", "LHDT": "التوقيت الصيفي للورد هاو", "GYT": "توقيت غيانا", "WIT": "توقيت شرق إندونيسيا", "IST": "توقيت الهند", "ACDT": "توقيت وسط أستراليا الصيفي", "COST": "توقيت كولومبيا الصيفي", "BT": "توقيت بوتان", "MYT": "توقيت ماليزيا", "EAT": "توقيت شرق أفريقيا", "WIB": "توقيت غرب إندونيسيا", "ART": "توقيت الأرجنتين الرسمي", "MDT": "التوقيت الجبلي الصيفي لأمريكا الشمالية", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك"},
}
}
diff --git a/ar_PS/ar_PS.go b/ar_PS/ar_PS.go
index 67d062b0..2a756847 100644
--- a/ar_PS/ar_PS.go
+++ b/ar_PS/ar_PS.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"WESZ": "توقيت غرب أوروبا الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "AEST": "توقيت شرق أستراليا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "CHADT": "توقيت تشاتام الصيفي", "BOT": "توقيت بوليفيا", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "OESZ": "توقيت شرق أوروبا الصيفي", "MDT": "MDT", "PST": "توقيت المحيط الهادي الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "CLT": "توقيت شيلي الرسمي", "JST": "توقيت اليابان الرسمي", "ChST": "توقيت تشامورو", "HEOG": "توقيت غرب غرينلاند الصيفي", "CAT": "توقيت وسط أفريقيا", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "AKDT": "توقيت ألاسكا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "GMT": "توقيت غرينتش", "HECU": "توقيت كوبا الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "AKST": "التوقيت الرسمي لألاسكا", "MYT": "توقيت ماليزيا", "WEZ": "توقيت غرب أوروبا الرسمي", "TMT": "توقيت تركمانستان الرسمي", "COST": "توقيت كولومبيا الصيفي", "UYT": "توقيت أورغواي الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WIB": "توقيت غرب إندونيسيا", "HEEG": "توقيت شرق غرينلاند الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "SGT": "توقيت سنغافورة", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "HAST": "توقيت هاواي ألوتيان الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "GFT": "توقيت غايانا الفرنسية", "WAT": "توقيت غرب أفريقيا الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "AST": "التوقيت الرسمي الأطلسي", "GYT": "توقيت غيانا", "PDT": "توقيت المحيط الهادي الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "LHST": "توقيت لورد هاو الرسمي", "CHAST": "توقيت تشاتام الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "SRT": "توقيت سورينام", "WITA": "توقيت وسط إندونيسيا", "MST": "MST", "WIT": "توقيت شرق إندونيسيا", "AWST": "توقيت غرب أستراليا الرسمي", "IST": "توقيت الهند", "EAT": "توقيت شرق أفريقيا", "ECT": "توقيت الإكوادور", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "VET": "توقيت فنزويلا", "HKT": "توقيت هونغ كونغ الرسمي", "CLST": "توقيت شيلي الصيفي", "COT": "توقيت كولومبيا الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "ADT": "التوقيت الصيفي الأطلسي", "ART": "توقيت الأرجنتين الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "TMST": "توقيت تركمانستان الصيفي", "UYST": "توقيت أورغواي الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "SAST": "توقيت جنوب أفريقيا", "∅∅∅": "توقيت الأمازون الصيفي", "HNCU": "توقيت كوبا الرسمي", "BT": "توقيت بوتان", "JDT": "توقيت اليابان الصيفي"},
+ timezones: map[string]string{"∅∅∅": "∅∅∅", "GYT": "توقيت غيانا", "EAT": "توقيت شرق أفريقيا", "MDT": "MDT", "ART": "توقيت الأرجنتين الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "UYST": "توقيت أورغواي الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "HECU": "توقيت كوبا الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "GFT": "توقيت غايانا الفرنسية", "AEDT": "توقيت شرق أستراليا الصيفي", "IST": "توقيت الهند", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "CHAST": "توقيت تشاتام الرسمي", "SRT": "توقيت سورينام", "WARST": "توقيت غرب الأرجنتين الصيفي", "WIT": "توقيت شرق إندونيسيا", "NZST": "توقيت نيوزيلندا الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "ChST": "توقيت تشامورو", "SAST": "توقيت جنوب أفريقيا", "CLT": "توقيت شيلي الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "WITA": "توقيت وسط إندونيسيا", "AKST": "التوقيت الرسمي لألاسكا", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "HAST": "توقيت هاواي ألوتيان الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "WIB": "توقيت غرب إندونيسيا", "CAT": "توقيت وسط أفريقيا", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "LHST": "توقيت لورد هاو الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "AWDT": "توقيت غرب أستراليا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "VET": "توقيت فنزويلا", "TMT": "توقيت تركمانستان الرسمي", "MST": "MST", "COT": "توقيت كولومبيا الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "TMST": "توقيت تركمانستان الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "UYT": "توقيت أورغواي الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "ECT": "توقيت الإكوادور", "MEZ": "توقيت وسط أوروبا الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "JST": "توقيت اليابان الرسمي", "JDT": "توقيت اليابان الصيفي", "GMT": "توقيت غرينتش", "HADT": "توقيت هاواي ألوتيان الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "AST": "التوقيت الرسمي الأطلسي", "HNT": "توقيت نيوفاوندلاند الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "BOT": "توقيت بوليفيا", "ACST": "توقيت وسط أستراليا الرسمي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "NZDT": "توقيت نيوزيلندا الصيفي", "CLST": "توقيت شيلي الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "BT": "توقيت بوتان", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "SGT": "توقيت سنغافورة", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "PST": "توقيت المحيط الهادي الرسمي", "WEZ": "توقيت غرب أوروبا الرسمي", "MYT": "توقيت ماليزيا", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "COST": "توقيت كولومبيا الصيفي", "HNCU": "توقيت كوبا الرسمي"},
}
}
diff --git a/ar_QA/ar_QA.go b/ar_QA/ar_QA.go
index 675f1a30..5317314a 100644
--- a/ar_QA/ar_QA.go
+++ b/ar_QA/ar_QA.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"CAT": "توقيت وسط أفريقيا", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "BT": "توقيت بوتان", "HKST": "توقيت هونغ كونغ الصيفي", "WITA": "توقيت وسط إندونيسيا", "CLST": "توقيت شيلي الصيفي", "EAT": "توقيت شرق أفريقيا", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WIB": "توقيت غرب إندونيسيا", "HNT": "توقيت نيوفاوندلاند الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "MESZ": "توقيت وسط أوروبا الصيفي", "TMST": "توقيت تركمانستان الصيفي", "VET": "توقيت فنزويلا", "HEEG": "توقيت شرق غرينلاند الصيفي", "AST": "التوقيت الرسمي الأطلسي", "SRT": "توقيت سورينام", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "COST": "توقيت كولومبيا الصيفي", "SGT": "توقيت سنغافورة", "GMT": "توقيت غرينتش", "NZDT": "توقيت نيوزيلندا الصيفي", "CHAST": "توقيت تشاتام الرسمي", "IST": "توقيت الهند", "JDT": "توقيت اليابان الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "MDT": "MDT", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "AKDT": "توقيت ألاسكا الصيفي", "UYST": "توقيت أورغواي الصيفي", "MST": "MST", "AKST": "التوقيت الرسمي لألاسكا", "ART": "توقيت الأرجنتين الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "LHST": "توقيت لورد هاو الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "COT": "توقيت كولومبيا الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "ADT": "التوقيت الصيفي الأطلسي", "GYT": "توقيت غيانا", "MEZ": "توقيت وسط أوروبا الرسمي", "∅∅∅": "توقيت الأمازون الصيفي", "TMT": "توقيت تركمانستان الرسمي", "ChST": "توقيت تشامورو", "HAST": "توقيت هاواي ألوتيان الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "BOT": "توقيت بوليفيا", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HADT": "توقيت هاواي ألوتيان الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "HECU": "توقيت كوبا الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "GFT": "توقيت غايانا الفرنسية", "WIT": "توقيت شرق إندونيسيا", "SAST": "توقيت جنوب أفريقيا", "JST": "توقيت اليابان الرسمي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "ECT": "توقيت الإكوادور", "WART": "توقيت غرب الأرجنتين الرسمي", "UYT": "توقيت أورغواي الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "CHADT": "توقيت تشاتام الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "CLT": "توقيت شيلي الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HNCU": "توقيت كوبا الرسمي", "MYT": "توقيت ماليزيا"},
+ timezones: map[string]string{"HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "SGT": "توقيت سنغافورة", "WARST": "توقيت غرب الأرجنتين الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "COST": "توقيت كولومبيا الصيفي", "ChST": "توقيت تشامورو", "GMT": "توقيت غرينتش", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "BT": "توقيت بوتان", "HADT": "توقيت هاواي ألوتيان الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "WITA": "توقيت وسط إندونيسيا", "HNOG": "توقيت غرب غرينلاند الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "COT": "توقيت كولومبيا الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "WIB": "توقيت غرب إندونيسيا", "CHADT": "توقيت تشاتام الصيفي", "IST": "توقيت الهند", "WART": "توقيت غرب الأرجنتين الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "AEST": "توقيت شرق أستراليا الرسمي", "SRT": "توقيت سورينام", "HAST": "توقيت هاواي ألوتيان الرسمي", "CAT": "توقيت وسط أفريقيا", "OESZ": "توقيت شرق أوروبا الصيفي", "MST": "MST", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "PDT": "توقيت المحيط الهادي الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "UYT": "توقيت أورغواي الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WIT": "توقيت شرق إندونيسيا", "CHAST": "توقيت تشاتام الرسمي", "ART": "توقيت الأرجنتين الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "HNT": "توقيت نيوفاوندلاند الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "JST": "توقيت اليابان الرسمي", "MDT": "MDT", "GFT": "توقيت غايانا الفرنسية", "GYT": "توقيت غيانا", "EAT": "توقيت شرق أفريقيا", "NZST": "توقيت نيوزيلندا الرسمي", "VET": "توقيت فنزويلا", "MYT": "توقيت ماليزيا", "WEZ": "توقيت غرب أوروبا الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "UYST": "توقيت أورغواي الصيفي", "SAST": "توقيت جنوب أفريقيا", "AWDT": "توقيت غرب أستراليا الصيفي", "BOT": "توقيت بوليفيا", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "AST": "التوقيت الرسمي الأطلسي", "MEZ": "توقيت وسط أوروبا الرسمي", "CLT": "توقيت شيلي الرسمي", "CLST": "توقيت شيلي الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "AEDT": "توقيت شرق أستراليا الصيفي", "HECU": "توقيت كوبا الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "JDT": "توقيت اليابان الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "TMT": "توقيت تركمانستان الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "HNCU": "توقيت كوبا الرسمي", "∅∅∅": "توقيت الأمازون الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "TMST": "توقيت تركمانستان الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "ECT": "توقيت الإكوادور"},
}
}
diff --git a/ar_SA/ar_SA.go b/ar_SA/ar_SA.go
index d04c8e36..699182f1 100644
--- a/ar_SA/ar_SA.go
+++ b/ar_SA/ar_SA.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"AWDT": "توقيت غرب أستراليا الصيفي", "EAT": "توقيت شرق أفريقيا", "WART": "توقيت غرب الأرجنتين الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "GYT": "توقيت غيانا", "LHDT": "التوقيت الصيفي للورد هاو", "MDT": "MDT", "AKST": "التوقيت الرسمي لألاسكا", "MYT": "توقيت ماليزيا", "HNT": "توقيت نيوفاوندلاند الرسمي", "ChST": "توقيت تشامورو", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "OESZ": "توقيت شرق أوروبا الصيفي", "COST": "توقيت كولومبيا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "TMT": "توقيت تركمانستان الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "CLST": "توقيت شيلي الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "VET": "توقيت فنزويلا", "SRT": "توقيت سورينام", "HAST": "توقيت هاواي ألوتيان الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "ART": "توقيت الأرجنتين الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "SGT": "توقيت سنغافورة", "HNCU": "توقيت كوبا الرسمي", "MST": "MST", "AST": "التوقيت الرسمي الأطلسي", "WITA": "توقيت وسط إندونيسيا", "AEST": "توقيت شرق أستراليا الرسمي", "HADT": "توقيت هاواي ألوتيان الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "JDT": "توقيت اليابان الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "HAT": "توقيت نيوفاوندلاند الصيفي", "∅∅∅": "توقيت بيرو الصيفي", "GMT": "توقيت غرينتش", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "IST": "توقيت الهند", "JST": "توقيت اليابان الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HECU": "توقيت كوبا الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "CHAST": "توقيت تشاتام الرسمي", "WIT": "توقيت شرق إندونيسيا", "WEZ": "توقيت غرب أوروبا الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "BOT": "توقيت بوليفيا", "WAST": "توقيت غرب أفريقيا الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "UYST": "توقيت أورغواي الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "TMST": "توقيت تركمانستان الصيفي", "ECT": "توقيت الإكوادور", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "UYT": "توقيت أورغواي الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "GFT": "توقيت غايانا الفرنسية", "CAT": "توقيت وسط أفريقيا", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "CLT": "توقيت شيلي الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "COT": "توقيت كولومبيا الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "SAST": "توقيت جنوب أفريقيا", "WAT": "توقيت غرب أفريقيا الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "WIB": "توقيت غرب إندونيسيا", "BT": "توقيت بوتان"},
+ timezones: map[string]string{"ARST": "توقيت الأرجنتين الصيفي", "SGT": "توقيت سنغافورة", "NZST": "توقيت نيوزيلندا الرسمي", "CHADT": "توقيت تشاتام الصيفي", "MYT": "توقيت ماليزيا", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "CHAST": "توقيت تشاتام الرسمي", "AST": "التوقيت الرسمي الأطلسي", "HKST": "توقيت هونغ كونغ الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "ECT": "توقيت الإكوادور", "MEZ": "توقيت وسط أوروبا الرسمي", "∅∅∅": "∅∅∅", "AKST": "التوقيت الرسمي لألاسكا", "UYT": "توقيت أورغواي الرسمي", "JDT": "توقيت اليابان الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "CLST": "توقيت شيلي الصيفي", "ART": "توقيت الأرجنتين الرسمي", "UYST": "توقيت أورغواي الصيفي", "JST": "توقيت اليابان الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "GMT": "توقيت غرينتش", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "HNCU": "توقيت كوبا الرسمي", "HECU": "توقيت كوبا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "MESZ": "توقيت وسط أوروبا الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "HAT": "توقيت نيوفاوندلاند الصيفي", "ChST": "توقيت تشامورو", "SAST": "توقيت جنوب أفريقيا", "BOT": "توقيت بوليفيا", "HNOG": "توقيت غرب غرينلاند الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "GFT": "توقيت غايانا الفرنسية", "AKDT": "توقيت ألاسكا الصيفي", "WITA": "توقيت وسط إندونيسيا", "WIT": "توقيت شرق إندونيسيا", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "MST": "MST", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "COT": "توقيت كولومبيا الرسمي", "SRT": "توقيت سورينام", "LHST": "توقيت لورد هاو الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "MDT": "MDT", "WAT": "توقيت غرب أفريقيا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "PDT": "توقيت المحيط الهادي الصيفي", "IST": "توقيت الهند", "CLT": "توقيت شيلي الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "EAT": "توقيت شرق أفريقيا", "TMT": "توقيت تركمانستان الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "WIB": "توقيت غرب إندونيسيا", "HNT": "توقيت نيوفاوندلاند الرسمي", "WEZ": "توقيت غرب أوروبا الرسمي", "TMST": "توقيت تركمانستان الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HEEG": "توقيت شرق غرينلاند الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "VET": "توقيت فنزويلا", "ADT": "التوقيت الصيفي الأطلسي", "COST": "توقيت كولومبيا الصيفي", "BT": "توقيت بوتان", "AWST": "توقيت غرب أستراليا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "GYT": "توقيت غيانا", "CAT": "توقيت وسط أفريقيا"},
}
}
diff --git a/ar_SD/ar_SD.go b/ar_SD/ar_SD.go
index 6bb92c29..5bda6f4d 100644
--- a/ar_SD/ar_SD.go
+++ b/ar_SD/ar_SD.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"ACWDT": "توقيت غرب وسط أستراليا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "CLT": "توقيت شيلي الرسمي", "CLST": "توقيت شيلي الصيفي", "ChST": "توقيت تشامورو", "WIT": "توقيت شرق إندونيسيا", "WESZ": "توقيت غرب أوروبا الصيفي", "ART": "توقيت الأرجنتين الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "SAST": "توقيت جنوب أفريقيا", "WART": "توقيت غرب الأرجنتين الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "UYST": "توقيت أورغواي الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "HADT": "توقيت هاواي ألوتيان الصيفي", "SRT": "توقيت سورينام", "HAT": "توقيت نيوفاوندلاند الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "WIB": "توقيت غرب إندونيسيا", "LHDT": "التوقيت الصيفي للورد هاو", "HNEG": "توقيت شرق غرينلاند الرسمي", "BOT": "توقيت بوليفيا", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "AST": "التوقيت الرسمي الأطلسي", "WEZ": "توقيت غرب أوروبا الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "SGT": "توقيت سنغافورة", "MDT": "MDT", "LHST": "توقيت لورد هاو الرسمي", "JDT": "توقيت اليابان الصيفي", "COT": "توقيت كولومبيا الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "VET": "توقيت فنزويلا", "BT": "توقيت بوتان", "HNT": "توقيت نيوفاوندلاند الرسمي", "ECT": "توقيت الإكوادور", "CAT": "توقيت وسط أفريقيا", "MST": "MST", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "GYT": "توقيت غيانا", "HNOG": "توقيت غرب غرينلاند الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "WITA": "توقيت وسط إندونيسيا", "NZDT": "توقيت نيوزيلندا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "∅∅∅": "توقيت بيرو الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "IST": "توقيت الهند", "TMST": "توقيت تركمانستان الصيفي", "GMT": "توقيت غرينتش", "HEOG": "توقيت غرب غرينلاند الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "EAT": "توقيت شرق أفريقيا", "HNCU": "توقيت كوبا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "COST": "توقيت كولومبيا الصيفي", "HECU": "توقيت كوبا الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "JST": "توقيت اليابان الرسمي", "GFT": "توقيت غايانا الفرنسية", "TMT": "توقيت تركمانستان الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "AWDT": "توقيت غرب أستراليا الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "CHAST": "توقيت تشاتام الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "MYT": "توقيت ماليزيا", "UYT": "توقيت أورغواي الرسمي"},
+ timezones: map[string]string{"NZST": "توقيت نيوزيلندا الرسمي", "GMT": "توقيت غرينتش", "CLT": "توقيت شيلي الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HAT": "توقيت نيوفاوندلاند الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "WIT": "توقيت شرق إندونيسيا", "AWDT": "توقيت غرب أستراليا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "UYT": "توقيت أورغواي الرسمي", "HNCU": "توقيت كوبا الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "CHAST": "توقيت تشاتام الرسمي", "∅∅∅": "توقيت الأمازون الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "MYT": "توقيت ماليزيا", "OEZ": "توقيت شرق أوروبا الرسمي", "EAT": "توقيت شرق أفريقيا", "IST": "توقيت الهند", "HNOG": "توقيت غرب غرينلاند الرسمي", "MDT": "MDT", "AKST": "التوقيت الرسمي لألاسكا", "UYST": "توقيت أورغواي الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "GYT": "توقيت غيانا", "HECU": "توقيت كوبا الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "SAST": "توقيت جنوب أفريقيا", "WART": "توقيت غرب الأرجنتين الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "JDT": "توقيت اليابان الصيفي", "TMST": "توقيت تركمانستان الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "ACST": "توقيت وسط أستراليا الرسمي", "COT": "توقيت كولومبيا الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "CLST": "توقيت شيلي الصيفي", "AST": "التوقيت الرسمي الأطلسي", "HKT": "توقيت هونغ كونغ الرسمي", "COST": "توقيت كولومبيا الصيفي", "BT": "توقيت بوتان", "WIB": "توقيت غرب إندونيسيا", "CAT": "توقيت وسط أفريقيا", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "WAT": "توقيت غرب أفريقيا الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "JST": "توقيت اليابان الرسمي", "MST": "MST", "HNT": "توقيت نيوفاوندلاند الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "SRT": "توقيت سورينام", "LHDT": "التوقيت الصيفي للورد هاو", "BOT": "توقيت بوليفيا", "VET": "توقيت فنزويلا", "TMT": "توقيت تركمانستان الرسمي", "ECT": "توقيت الإكوادور", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "ART": "توقيت الأرجنتين الرسمي", "SGT": "توقيت سنغافورة", "OESZ": "توقيت شرق أوروبا الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "GFT": "توقيت غايانا الفرنسية", "WITA": "توقيت وسط إندونيسيا", "ChST": "توقيت تشامورو", "LHST": "توقيت لورد هاو الرسمي", "HAST": "توقيت هاواي ألوتيان الرسمي"},
}
}
diff --git a/ar_SO/ar_SO.go b/ar_SO/ar_SO.go
index 3558328f..56ba6735 100644
--- a/ar_SO/ar_SO.go
+++ b/ar_SO/ar_SO.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"AWST": "توقيت غرب أستراليا الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "WESZ": "توقيت غرب أوروبا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "LHST": "توقيت لورد هاو الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "GYT": "توقيت غيانا", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "GMT": "توقيت غرينتش", "MYT": "توقيت ماليزيا", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "WIT": "توقيت شرق إندونيسيا", "NZDT": "توقيت نيوزيلندا الصيفي", "COST": "توقيت كولومبيا الصيفي", "BT": "توقيت بوتان", "LHDT": "التوقيت الصيفي للورد هاو", "CLT": "توقيت شيلي الرسمي", "TMST": "توقيت تركمانستان الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "ECT": "توقيت الإكوادور", "CHAST": "توقيت تشاتام الرسمي", "GFT": "توقيت غايانا الفرنسية", "AKDT": "توقيت ألاسكا الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "AST": "التوقيت الرسمي الأطلسي", "ART": "توقيت الأرجنتين الرسمي", "CLST": "توقيت شيلي الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "HEOG": "توقيت غرب غرينلاند الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "CAT": "توقيت وسط أفريقيا", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "MST": "MST", "MDT": "MDT", "JDT": "توقيت اليابان الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "IST": "توقيت الهند", "∅∅∅": "توقيت الأمازون الصيفي", "BOT": "توقيت بوليفيا", "SRT": "توقيت سورينام", "ChST": "توقيت تشامورو", "SGT": "توقيت سنغافورة", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "MESZ": "توقيت وسط أوروبا الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "JST": "توقيت اليابان الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "UYT": "توقيت أورغواي الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "WIB": "توقيت غرب إندونيسيا", "HADT": "توقيت هاواي ألوتيان الصيفي", "TMT": "توقيت تركمانستان الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "COT": "توقيت كولومبيا الرسمي", "HECU": "توقيت كوبا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "SAST": "توقيت جنوب أفريقيا", "HAST": "توقيت هاواي ألوتيان الرسمي", "WITA": "توقيت وسط إندونيسيا", "EAT": "توقيت شرق أفريقيا", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "UYST": "توقيت أورغواي الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "HNT": "توقيت نيوفاوندلاند الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "CHADT": "توقيت تشاتام الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "HNCU": "توقيت كوبا الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "VET": "توقيت فنزويلا"},
+ timezones: map[string]string{"ChST": "توقيت تشامورو", "MESZ": "توقيت وسط أوروبا الصيفي", "MDT": "MDT", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "AEDT": "توقيت شرق أستراليا الصيفي", "VET": "توقيت فنزويلا", "MYT": "توقيت ماليزيا", "WITA": "توقيت وسط إندونيسيا", "SGT": "توقيت سنغافورة", "CAT": "توقيت وسط أفريقيا", "WARST": "توقيت غرب الأرجنتين الصيفي", "TMT": "توقيت تركمانستان الرسمي", "EAT": "توقيت شرق أفريقيا", "GMT": "توقيت غرينتش", "WART": "توقيت غرب الأرجنتين الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "∅∅∅": "توقيت أزورس الصيفي", "ECT": "توقيت الإكوادور", "JST": "توقيت اليابان الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "GFT": "توقيت غايانا الفرنسية", "HNCU": "توقيت كوبا الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "WIT": "توقيت شرق إندونيسيا", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "WEZ": "توقيت غرب أوروبا الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "BOT": "توقيت بوليفيا", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "HNEG": "توقيت شرق غرينلاند الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "COST": "توقيت كولومبيا الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "CHADT": "توقيت تشاتام الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "TMST": "توقيت تركمانستان الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "IST": "توقيت الهند", "OEZ": "توقيت شرق أوروبا الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "UYST": "توقيت أورغواي الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "MEZ": "توقيت وسط أوروبا الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "GYT": "توقيت غيانا", "HECU": "توقيت كوبا الصيفي", "CHAST": "توقيت تشاتام الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "COT": "توقيت كولومبيا الرسمي", "HAST": "توقيت هاواي ألوتيان الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "MST": "MST", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HKT": "توقيت هونغ كونغ الرسمي", "LHST": "توقيت لورد هاو الرسمي", "WIB": "توقيت غرب إندونيسيا", "ART": "توقيت الأرجنتين الرسمي", "AST": "التوقيت الرسمي الأطلسي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "AEST": "توقيت شرق أستراليا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "SRT": "توقيت سورينام", "CLT": "توقيت شيلي الرسمي", "CLST": "توقيت شيلي الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "JDT": "توقيت اليابان الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "BT": "توقيت بوتان", "UYT": "توقيت أورغواي الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "SAST": "توقيت جنوب أفريقيا", "PST": "توقيت المحيط الهادي الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي"},
}
}
diff --git a/ar_SS/ar_SS.go b/ar_SS/ar_SS.go
index 43f59d8c..b651f8b0 100644
--- a/ar_SS/ar_SS.go
+++ b/ar_SS/ar_SS.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"∅∅∅": "توقيت الأمازون الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "WIB": "توقيت غرب إندونيسيا", "TMST": "توقيت تركمانستان الصيفي", "CAT": "توقيت وسط أفريقيا", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "AKDT": "توقيت ألاسكا الصيفي", "UYT": "توقيت أورغواي الرسمي", "UYST": "توقيت أورغواي الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "GMT": "توقيت غرينتش", "SGT": "توقيت سنغافورة", "HADT": "توقيت هاواي ألوتيان الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "ChST": "توقيت تشامورو", "ACDT": "توقيت وسط أستراليا الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "AKST": "التوقيت الرسمي لألاسكا", "ADT": "التوقيت الصيفي الأطلسي", "WEZ": "توقيت غرب أوروبا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "WITA": "توقيت وسط إندونيسيا", "SRT": "توقيت سورينام", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "ART": "توقيت الأرجنتين الرسمي", "LHST": "توقيت لورد هاو الرسمي", "CLST": "توقيت شيلي الصيفي", "BOT": "توقيت بوليفيا", "ACST": "توقيت وسط أستراليا الرسمي", "AST": "التوقيت الرسمي الأطلسي", "GYT": "توقيت غيانا", "MYT": "توقيت ماليزيا", "NZST": "توقيت نيوزيلندا الرسمي", "TMT": "توقيت تركمانستان الرسمي", "EAT": "توقيت شرق أفريقيا", "MDT": "MDT", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "HAST": "توقيت هاواي ألوتيان الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "PDT": "توقيت المحيط الهادي الصيفي", "GFT": "توقيت غايانا الفرنسية", "WAST": "توقيت غرب أفريقيا الصيفي", "COT": "توقيت كولومبيا الرسمي", "COST": "توقيت كولومبيا الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HNCU": "توقيت كوبا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "JDT": "توقيت اليابان الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "VET": "توقيت فنزويلا", "WIT": "توقيت شرق إندونيسيا", "MEZ": "توقيت وسط أوروبا الرسمي", "CHAST": "توقيت تشاتام الرسمي", "JST": "توقيت اليابان الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "BT": "توقيت بوتان", "WESZ": "توقيت غرب أوروبا الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "SAST": "توقيت جنوب أفريقيا", "IST": "توقيت الهند", "MST": "MST", "HKST": "توقيت هونغ كونغ الصيفي", "CHADT": "توقيت تشاتام الصيفي", "CLT": "توقيت شيلي الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "ECT": "توقيت الإكوادور", "WARST": "توقيت غرب الأرجنتين الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "HECU": "توقيت كوبا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "LHDT": "التوقيت الصيفي للورد هاو"},
+ timezones: map[string]string{"PST": "توقيت المحيط الهادي الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "PDT": "توقيت المحيط الهادي الصيفي", "JDT": "توقيت اليابان الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "MDT": "MDT", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HAT": "توقيت نيوفاوندلاند الصيفي", "∅∅∅": "توقيت برازيليا الصيفي", "TMST": "توقيت تركمانستان الصيفي", "GFT": "توقيت غايانا الفرنسية", "GYT": "توقيت غيانا", "HADT": "توقيت هاواي ألوتيان الصيفي", "BT": "توقيت بوتان", "HEEG": "توقيت شرق غرينلاند الصيفي", "WITA": "توقيت وسط إندونيسيا", "AKST": "التوقيت الرسمي لألاسكا", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "HNT": "توقيت نيوفاوندلاند الرسمي", "ECT": "توقيت الإكوادور", "MESZ": "توقيت وسط أوروبا الصيفي", "AST": "التوقيت الرسمي الأطلسي", "OESZ": "توقيت شرق أوروبا الصيفي", "CLST": "توقيت شيلي الصيفي", "ART": "توقيت الأرجنتين الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "SRT": "توقيت سورينام", "HNCU": "توقيت كوبا الرسمي", "HECU": "توقيت كوبا الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "CHADT": "توقيت تشاتام الصيفي", "VET": "توقيت فنزويلا", "MST": "MST", "ARST": "توقيت الأرجنتين الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "CLT": "توقيت شيلي الرسمي", "TMT": "توقيت تركمانستان الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "ChST": "توقيت تشامورو", "UYST": "توقيت أورغواي الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "BOT": "توقيت بوليفيا", "JST": "توقيت اليابان الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "SAST": "توقيت جنوب أفريقيا", "MYT": "توقيت ماليزيا", "ACDT": "توقيت وسط أستراليا الصيفي", "WIB": "توقيت غرب إندونيسيا", "SGT": "توقيت سنغافورة", "IST": "توقيت الهند", "ADT": "التوقيت الصيفي الأطلسي", "WART": "توقيت غرب الأرجنتين الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "GMT": "توقيت غرينتش", "COST": "توقيت كولومبيا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "EAT": "توقيت شرق أفريقيا", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "CHAST": "توقيت تشاتام الرسمي", "CAT": "توقيت وسط أفريقيا", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "HKT": "توقيت هونغ كونغ الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "UYT": "توقيت أورغواي الرسمي", "WIT": "توقيت شرق إندونيسيا", "HAST": "توقيت هاواي ألوتيان الرسمي", "COT": "توقيت كولومبيا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "LHST": "توقيت لورد هاو الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "AWST": "توقيت غرب أستراليا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "ACST": "توقيت وسط أستراليا الرسمي"},
}
}
diff --git a/ar_SY/ar_SY.go b/ar_SY/ar_SY.go
index 7850193d..08d0dff9 100644
--- a/ar_SY/ar_SY.go
+++ b/ar_SY/ar_SY.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"AST": "التوقيت الرسمي الأطلسي", "VET": "توقيت فنزويلا", "HNT": "توقيت نيوفاوندلاند الرسمي", "CLST": "توقيت شيلي الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "COST": "توقيت كولومبيا الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "MST": "MST", "HAT": "توقيت نيوفاوندلاند الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "GMT": "توقيت غرينتش", "CLT": "توقيت شيلي الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "ADT": "التوقيت الصيفي الأطلسي", "SRT": "توقيت سورينام", "HKT": "توقيت هونغ كونغ الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "WIT": "توقيت شرق إندونيسيا", "HECU": "توقيت كوبا الصيفي", "MYT": "توقيت ماليزيا", "PST": "توقيت المحيط الهادي الرسمي", "WITA": "توقيت وسط إندونيسيا", "MESZ": "توقيت وسط أوروبا الصيفي", "IST": "توقيت الهند", "JST": "توقيت اليابان الرسمي", "TMT": "توقيت تركمانستان الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "HADT": "توقيت هاواي ألوتيان الصيفي", "BT": "توقيت بوتان", "WEZ": "توقيت غرب أوروبا الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "GFT": "توقيت غايانا الفرنسية", "ACST": "توقيت وسط أستراليا الرسمي", "SGT": "توقيت سنغافورة", "WIB": "توقيت غرب إندونيسيا", "AKDT": "توقيت ألاسكا الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "CHAST": "توقيت تشاتام الرسمي", "CHADT": "توقيت تشاتام الصيفي", "COT": "توقيت كولومبيا الرسمي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "MDT": "MDT", "HNOG": "توقيت غرب غرينلاند الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "EAT": "توقيت شرق أفريقيا", "WART": "توقيت غرب الأرجنتين الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "AEST": "توقيت شرق أستراليا الرسمي", "LHST": "توقيت لورد هاو الرسمي", "∅∅∅": "توقيت الأمازون الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "GYT": "توقيت غيانا", "UYST": "توقيت أورغواي الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "TMST": "توقيت تركمانستان الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "AEDT": "توقيت شرق أستراليا الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "JDT": "توقيت اليابان الصيفي", "BOT": "توقيت بوليفيا", "WAT": "توقيت غرب أفريقيا الرسمي", "UYT": "توقيت أورغواي الرسمي", "HNCU": "توقيت كوبا الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "SAST": "توقيت جنوب أفريقيا", "ChST": "توقيت تشامورو", "OEZ": "توقيت شرق أوروبا الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "ECT": "توقيت الإكوادور", "CAT": "توقيت وسط أفريقيا", "HAST": "توقيت هاواي ألوتيان الرسمي", "ART": "توقيت الأرجنتين الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية"},
+ timezones: map[string]string{"BOT": "توقيت بوليفيا", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "GFT": "توقيت غايانا الفرنسية", "UYT": "توقيت أورغواي الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "LHST": "توقيت لورد هاو الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "JDT": "توقيت اليابان الصيفي", "MYT": "توقيت ماليزيا", "HNT": "توقيت نيوفاوندلاند الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "EAT": "توقيت شرق أفريقيا", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "WART": "توقيت غرب الأرجنتين الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "BT": "توقيت بوتان", "CHADT": "توقيت تشاتام الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "CAT": "توقيت وسط أفريقيا", "HKT": "توقيت هونغ كونغ الرسمي", "COT": "توقيت كولومبيا الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "SRT": "توقيت سورينام", "AWDT": "توقيت غرب أستراليا الصيفي", "TMT": "توقيت تركمانستان الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "UYST": "توقيت أورغواي الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "IST": "توقيت الهند", "OEZ": "توقيت شرق أوروبا الرسمي", "ART": "توقيت الأرجنتين الرسمي", "SGT": "توقيت سنغافورة", "WEZ": "توقيت غرب أوروبا الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "AST": "التوقيت الرسمي الأطلسي", "MDT": "MDT", "AEDT": "توقيت شرق أستراليا الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "HNCU": "توقيت كوبا الرسمي", "WIT": "توقيت شرق إندونيسيا", "AWST": "توقيت غرب أستراليا الرسمي", "JST": "توقيت اليابان الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "AEST": "توقيت شرق أستراليا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "MESZ": "توقيت وسط أوروبا الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "GMT": "توقيت غرينتش", "HEOG": "توقيت غرب غرينلاند الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "WITA": "توقيت وسط إندونيسيا", "MST": "MST", "AKST": "التوقيت الرسمي لألاسكا", "HECU": "توقيت كوبا الصيفي", "CHAST": "توقيت تشاتام الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "VET": "توقيت فنزويلا", "HNOG": "توقيت غرب غرينلاند الرسمي", "GYT": "توقيت غيانا", "ECT": "توقيت الإكوادور", "ADT": "التوقيت الصيفي الأطلسي", "WAT": "توقيت غرب أفريقيا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "COST": "توقيت كولومبيا الصيفي", "∅∅∅": "توقيت برازيليا الصيفي", "CLST": "توقيت شيلي الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "ChST": "توقيت تشامورو", "SAST": "توقيت جنوب أفريقيا", "WIB": "توقيت غرب إندونيسيا", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "CLT": "توقيت شيلي الرسمي", "TMST": "توقيت تركمانستان الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك"},
}
}
diff --git a/ar_TD/ar_TD.go b/ar_TD/ar_TD.go
index bec62d07..0b2de628 100644
--- a/ar_TD/ar_TD.go
+++ b/ar_TD/ar_TD.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"SAST": "توقيت جنوب أفريقيا", "JST": "توقيت اليابان الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WIB": "توقيت غرب إندونيسيا", "MST": "MST", "HEOG": "توقيت غرب غرينلاند الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "CHADT": "توقيت تشاتام الصيفي", "IST": "توقيت الهند", "∅∅∅": "توقيت الأمازون الصيفي", "BOT": "توقيت بوليفيا", "ECT": "توقيت الإكوادور", "MDT": "MDT", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "ARST": "توقيت الأرجنتين الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "TMT": "توقيت تركمانستان الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "WESZ": "توقيت غرب أوروبا الصيفي", "ART": "توقيت الأرجنتين الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "WAST": "توقيت غرب أفريقيا الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "HECU": "توقيت كوبا الصيفي", "CLT": "توقيت شيلي الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "VET": "توقيت فنزويلا", "BT": "توقيت بوتان", "UYST": "توقيت أورغواي الصيفي", "LHST": "توقيت لورد هاو الرسمي", "GFT": "توقيت غايانا الفرنسية", "ChST": "توقيت تشامورو", "COST": "توقيت كولومبيا الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "AST": "التوقيت الرسمي الأطلسي", "MYT": "توقيت ماليزيا", "AEST": "توقيت شرق أستراليا الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "AKDT": "توقيت ألاسكا الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "WIT": "توقيت شرق إندونيسيا", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "COT": "توقيت كولومبيا الرسمي", "HADT": "توقيت هاواي ألوتيان الصيفي", "CAT": "توقيت وسط أفريقيا", "SGT": "توقيت سنغافورة", "HNCU": "توقيت كوبا الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "WITA": "توقيت وسط إندونيسيا", "HEEG": "توقيت شرق غرينلاند الصيفي", "UYT": "توقيت أورغواي الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "CLST": "توقيت شيلي الصيفي", "TMST": "توقيت تركمانستان الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "GMT": "توقيت غرينتش", "GYT": "توقيت غيانا", "HNOG": "توقيت غرب غرينلاند الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "CHAST": "توقيت تشاتام الرسمي", "JDT": "توقيت اليابان الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "EAT": "توقيت شرق أفريقيا", "SRT": "توقيت سورينام"},
+ timezones: map[string]string{"AWST": "توقيت غرب أستراليا الرسمي", "CHAST": "توقيت تشاتام الرسمي", "CHADT": "توقيت تشاتام الصيفي", "WITA": "توقيت وسط إندونيسيا", "EAT": "توقيت شرق أفريقيا", "MST": "MST", "ACDT": "توقيت وسط أستراليا الصيفي", "GFT": "توقيت غايانا الفرنسية", "AKST": "التوقيت الرسمي لألاسكا", "AEST": "توقيت شرق أستراليا الرسمي", "UYT": "توقيت أورغواي الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "TMT": "توقيت تركمانستان الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "BOT": "توقيت بوليفيا", "UYST": "توقيت أورغواي الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "ART": "توقيت الأرجنتين الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "HAST": "توقيت هاواي ألوتيان الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "WEZ": "توقيت غرب أوروبا الرسمي", "MDT": "MDT", "NZST": "توقيت نيوزيلندا الرسمي", "CLST": "توقيت شيلي الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "SGT": "توقيت سنغافورة", "CAT": "توقيت وسط أفريقيا", "WESZ": "توقيت غرب أوروبا الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "SRT": "توقيت سورينام", "OESZ": "توقيت شرق أوروبا الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "MYT": "توقيت ماليزيا", "ECT": "توقيت الإكوادور", "JDT": "توقيت اليابان الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "COST": "توقيت كولومبيا الصيفي", "BT": "توقيت بوتان", "HNT": "توقيت نيوفاوندلاند الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "AST": "التوقيت الرسمي الأطلسي", "MESZ": "توقيت وسط أوروبا الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "HAT": "توقيت نيوفاوندلاند الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "HNCU": "توقيت كوبا الرسمي", "HECU": "توقيت كوبا الصيفي", "∅∅∅": "توقيت الأمازون الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "GYT": "توقيت غيانا", "AWDT": "توقيت غرب أستراليا الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "COT": "توقيت كولومبيا الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HKT": "توقيت هونغ كونغ الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "SAST": "توقيت جنوب أفريقيا", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "IST": "توقيت الهند", "HNOG": "توقيت غرب غرينلاند الرسمي", "ChST": "توقيت تشامورو", "LHST": "توقيت لورد هاو الرسمي", "GMT": "توقيت غرينتش", "WAT": "توقيت غرب أفريقيا الرسمي", "CLT": "توقيت شيلي الرسمي", "WIB": "توقيت غرب إندونيسيا", "JST": "توقيت اليابان الرسمي", "TMST": "توقيت تركمانستان الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "VET": "توقيت فنزويلا", "WIT": "توقيت شرق إندونيسيا", "AKDT": "توقيت ألاسكا الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية"},
}
}
diff --git a/ar_TN/ar_TN.go b/ar_TN/ar_TN.go
index 7652b1bc..3290e6c9 100644
--- a/ar_TN/ar_TN.go
+++ b/ar_TN/ar_TN.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HEEG": "توقيت شرق غرينلاند الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "ART": "توقيت الأرجنتين الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "SGT": "توقيت سنغافورة", "WEZ": "توقيت غرب أوروبا الرسمي", "IST": "توقيت الهند", "TMT": "توقيت تركمانستان الرسمي", "EAT": "توقيت شرق أفريقيا", "GYT": "توقيت غيانا", "HAT": "توقيت نيوفاوندلاند الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "BOT": "توقيت بوليفيا", "CAT": "توقيت وسط أفريقيا", "WIT": "توقيت شرق إندونيسيا", "AWDT": "توقيت غرب أستراليا الصيفي", "AST": "التوقيت الرسمي الأطلسي", "HNEG": "توقيت شرق غرينلاند الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "HNCU": "توقيت كوبا الرسمي", "MST": "MST", "MDT": "MDT", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "PST": "توقيت المحيط الهادي الرسمي", "CHAST": "توقيت تشاتام الرسمي", "∅∅∅": "توقيت الأمازون الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "WITA": "توقيت وسط إندونيسيا", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "JST": "توقيت اليابان الرسمي", "COT": "توقيت كولومبيا الرسمي", "HECU": "توقيت كوبا الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WESZ": "توقيت غرب أوروبا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "TMST": "توقيت تركمانستان الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "COST": "توقيت كولومبيا الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HKT": "توقيت هونغ كونغ الرسمي", "JDT": "توقيت اليابان الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "GMT": "توقيت غرينتش", "GFT": "توقيت غايانا الفرنسية", "OEZ": "توقيت شرق أوروبا الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "UYST": "توقيت أورغواي الصيفي", "SAST": "توقيت جنوب أفريقيا", "CLST": "توقيت شيلي الصيفي", "ChST": "توقيت تشامورو", "WAT": "توقيت غرب أفريقيا الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "NZDT": "توقيت نيوزيلندا الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "CHADT": "توقيت تشاتام الصيفي", "CLT": "توقيت شيلي الرسمي", "HAST": "توقيت هاواي ألوتيان الرسمي", "VET": "توقيت فنزويلا", "SRT": "توقيت سورينام", "MESZ": "توقيت وسط أوروبا الصيفي", "UYT": "توقيت أورغواي الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "ECT": "توقيت الإكوادور", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "MYT": "توقيت ماليزيا", "WIB": "توقيت غرب إندونيسيا", "BT": "توقيت بوتان", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي"},
+ timezones: map[string]string{"ACST": "توقيت وسط أستراليا الرسمي", "COT": "توقيت كولومبيا الرسمي", "SGT": "توقيت سنغافورة", "BOT": "توقيت بوليفيا", "HAST": "توقيت هاواي ألوتيان الرسمي", "CAT": "توقيت وسط أفريقيا", "WART": "توقيت غرب الأرجنتين الرسمي", "MDT": "MDT", "AKST": "التوقيت الرسمي لألاسكا", "LHST": "توقيت لورد هاو الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "EAT": "توقيت شرق أفريقيا", "HKT": "توقيت هونغ كونغ الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "GYT": "توقيت غيانا", "ECT": "توقيت الإكوادور", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "MST": "MST", "WAST": "توقيت غرب أفريقيا الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "GFT": "توقيت غايانا الفرنسية", "CHAST": "توقيت تشاتام الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "GMT": "توقيت غرينتش", "CLST": "توقيت شيلي الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "NZST": "توقيت نيوزيلندا الرسمي", "∅∅∅": "توقيت الأمازون الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "TMT": "توقيت تركمانستان الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "JDT": "توقيت اليابان الصيفي", "CLT": "توقيت شيلي الرسمي", "VET": "توقيت فنزويلا", "WEZ": "توقيت غرب أوروبا الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "UYT": "توقيت أورغواي الرسمي", "WIB": "توقيت غرب إندونيسيا", "AWDT": "توقيت غرب أستراليا الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "AST": "التوقيت الرسمي الأطلسي", "OEZ": "توقيت شرق أوروبا الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WESZ": "توقيت غرب أوروبا الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "HNCU": "توقيت كوبا الرسمي", "JST": "توقيت اليابان الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "BT": "توقيت بوتان", "WITA": "توقيت وسط إندونيسيا", "SRT": "توقيت سورينام", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "AWST": "توقيت غرب أستراليا الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "COST": "توقيت كولومبيا الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "WIT": "توقيت شرق إندونيسيا", "IST": "توقيت الهند", "HNT": "توقيت نيوفاوندلاند الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "UYST": "توقيت أورغواي الصيفي", "SAST": "توقيت جنوب أفريقيا", "MYT": "توقيت ماليزيا", "ART": "توقيت الأرجنتين الرسمي", "CHADT": "توقيت تشاتام الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "TMST": "توقيت تركمانستان الصيفي", "ChST": "توقيت تشامورو", "HECU": "توقيت كوبا الصيفي"},
}
}
diff --git a/ar_YE/ar_YE.go b/ar_YE/ar_YE.go
index 6c202bde..4312ce42 100644
--- a/ar_YE/ar_YE.go
+++ b/ar_YE/ar_YE.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"ChST": "توقيت تشامورو", "MST": "MST", "AKST": "التوقيت الرسمي لألاسكا", "HAST": "توقيت هاواي ألوتيان الرسمي", "SRT": "توقيت سورينام", "CHAST": "توقيت تشاتام الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "CLST": "توقيت شيلي الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "VET": "توقيت فنزويلا", "AWDT": "توقيت غرب أستراليا الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "EAT": "توقيت شرق أفريقيا", "COT": "توقيت كولومبيا الرسمي", "WIB": "توقيت غرب إندونيسيا", "HNT": "توقيت نيوفاوندلاند الرسمي", "CAT": "توقيت وسط أفريقيا", "WART": "توقيت غرب الأرجنتين الرسمي", "∅∅∅": "توقيت أزورس الصيفي", "ART": "توقيت الأرجنتين الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "MYT": "توقيت ماليزيا", "WESZ": "توقيت غرب أوروبا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "SAST": "توقيت جنوب أفريقيا", "TMT": "توقيت تركمانستان الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "IST": "توقيت الهند", "HADT": "توقيت هاواي ألوتيان الصيفي", "WIT": "توقيت شرق إندونيسيا", "OESZ": "توقيت شرق أوروبا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "ADT": "التوقيت الصيفي الأطلسي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "GFT": "توقيت غايانا الفرنسية", "OEZ": "توقيت شرق أوروبا الرسمي", "JDT": "توقيت اليابان الصيفي", "MDT": "MDT", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "AST": "التوقيت الرسمي الأطلسي", "UYST": "توقيت أورغواي الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "CLT": "توقيت شيلي الرسمي", "TMST": "توقيت تركمانستان الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "GMT": "توقيت غرينتش", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "AKDT": "توقيت ألاسكا الصيفي", "BT": "توقيت بوتان", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "JST": "توقيت اليابان الرسمي", "SGT": "توقيت سنغافورة", "WEZ": "توقيت غرب أوروبا الرسمي", "CHADT": "توقيت تشاتام الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "GYT": "توقيت غيانا", "WITA": "توقيت وسط إندونيسيا", "NZDT": "توقيت نيوزيلندا الصيفي", "BOT": "توقيت بوليفيا", "ECT": "توقيت الإكوادور", "COST": "توقيت كولومبيا الصيفي", "HECU": "توقيت كوبا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "HNCU": "توقيت كوبا الرسمي", "UYT": "توقيت أورغواي الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "AEST": "توقيت شرق أستراليا الرسمي"},
+ timezones: map[string]string{"LHDT": "التوقيت الصيفي للورد هاو", "PST": "توقيت المحيط الهادي الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "BT": "توقيت بوتان", "CHADT": "توقيت تشاتام الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "AST": "التوقيت الرسمي الأطلسي", "MEZ": "توقيت وسط أوروبا الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "COT": "توقيت كولومبيا الرسمي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "AKDT": "توقيت ألاسكا الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "HECU": "توقيت كوبا الصيفي", "ECT": "توقيت الإكوادور", "WEZ": "توقيت غرب أوروبا الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "GYT": "توقيت غيانا", "HAST": "توقيت هاواي ألوتيان الرسمي", "IST": "توقيت الهند", "VET": "توقيت فنزويلا", "CLST": "توقيت شيلي الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "CHAST": "توقيت تشاتام الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "PDT": "توقيت المحيط الهادي الصيفي", "MYT": "توقيت ماليزيا", "ADT": "التوقيت الصيفي الأطلسي", "MST": "MST", "ART": "توقيت الأرجنتين الرسمي", "ChST": "توقيت تشامورو", "SGT": "توقيت سنغافورة", "JDT": "توقيت اليابان الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "SRT": "توقيت سورينام", "AWST": "توقيت غرب أستراليا الرسمي", "CAT": "توقيت وسط أفريقيا", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "UYST": "توقيت أورغواي الصيفي", "WIT": "توقيت شرق إندونيسيا", "JST": "توقيت اليابان الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HNEG": "توقيت شرق غرينلاند الرسمي", "SAST": "توقيت جنوب أفريقيا", "BOT": "توقيت بوليفيا", "CLT": "توقيت شيلي الرسمي", "TMST": "توقيت تركمانستان الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "WITA": "توقيت وسط إندونيسيا", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "EAT": "توقيت شرق أفريقيا", "WARST": "توقيت غرب الأرجنتين الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "MDT": "MDT", "UYT": "توقيت أورغواي الرسمي", "∅∅∅": "توقيت أزورس الصيفي", "LHST": "توقيت لورد هاو الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "GMT": "توقيت غرينتش", "TMT": "توقيت تركمانستان الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "AWDT": "توقيت غرب أستراليا الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "COST": "توقيت كولومبيا الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "HNCU": "توقيت كوبا الرسمي", "WIB": "توقيت غرب إندونيسيا", "WESZ": "توقيت غرب أوروبا الصيفي", "HNT": "توقيت نيوفاوندلاند الرسمي", "GFT": "توقيت غايانا الفرنسية"},
}
}
diff --git a/as/as.go b/as/as.go
index 13818e92..05496792 100644
--- a/as/as.go
+++ b/as/as.go
@@ -58,7 +58,7 @@ func New() locales.Translator {
daysWide: []string{"দেওবাৰ", "সোমবাৰ", "মঙ্গলবাৰ", "বুধবাৰ", "বৃহষ্পতিবাৰ", "শুক্ৰবাৰ", "শনিবাৰ"},
periodsAbbreviated: []string{"পূৰ্বাহ্ণ", "অপৰাহ্ণ"},
periodsWide: []string{"পূৰ্বাহ্ণ", "অপৰাহ্ণ"},
- timezones: map[string]string{"AKDT": "AKDT", "UYST": "UYST", "WIT": "WIT", "AWST": "AWST", "BOT": "BOT", "WAT": "WAT", "HNOG": "HNOG", "HEPM": "HEPM", "IST": "ভাৰতীয় সময়", "ChST": "ChST", "TMT": "TMT", "WAST": "WAST", "HNNOMX": "HNNOMX", "CDT": "CDT", "JDT": "JDT", "CAT": "CAT", "HAST": "HAST", "AWDT": "AWDT", "CHAST": "CHAST", "COST": "COST", "HNCU": "HNCU", "PST": "PST", "ACWST": "ACWST", "MEZ": "MEZ", "WART": "WART", "EST": "EST", "WESZ": "WESZ", "AEDT": "AEDT", "SAST": "SAST", "CLST": "CLST", "OESZ": "OESZ", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "BT": "BT", "ACWDT": "ACWDT", "ART": "ART", "HKT": "HKT", "HEEG": "HEEG", "HENOMX": "HENOMX", "CST": "CST", "MYT": "MYT", "HEOG": "HEOG", "COT": "COT", "MST": "MST", "VET": "VET", "AEST": "AEST", "JST": "JST", "GMT": "GMT", "UYT": "UYT", "HAT": "HAT", "NZST": "NZST", "ACST": "ACST", "ECT": "ECT", "MDT": "MDT", "AKST": "AKST", "WIB": "WIB", "LHST": "LHST", "CLT": "CLT", "HEPMX": "HEPMX", "AST": "AST", "ARST": "ARST", "HKST": "HKST", "ADT": "ADT", "HADT": "HADT", "WITA": "WITA", "MESZ": "MESZ", "EAT": "EAT", "WARST": "WARST", "WEZ": "WEZ", "CHADT": "CHADT", "GFT": "GFT", "ACDT": "ACDT", "OEZ": "OEZ", "HECU": "HECU", "GYT": "GYT", "SRT": "SRT", "HNT": "HNT", "NZDT": "NZDT", "SGT": "SGT", "EDT": "EDT", "PDT": "PDT", "HNPM": "HNPM", "LHDT": "LHDT", "HNEG": "HNEG", "TMST": "TMST"},
+ timezones: map[string]string{"ART": "ART", "WAST": "WAST", "CAT": "CAT", "NZDT": "NZDT", "JST": "JST", "AST": "AST", "MYT": "MYT", "MDT": "MDT", "WITA": "WITA", "HECU": "HECU", "ECT": "ECT", "COT": "COT", "HEEG": "HEEG", "AKST": "AKST", "WIT": "WIT", "PST": "PST", "WARST": "WARST", "HEOG": "HEOG", "EDT": "EDT", "BT": "BT", "MST": "MST", "AEDT": "AEDT", "JDT": "JDT", "WESZ": "WESZ", "WART": "WART", "HEPMX": "HEPMX", "LHDT": "LHDT", "HNPMX": "HNPMX", "CHADT": "CHADT", "HAST": "HAST", "CLT": "CLT", "HNOG": "HNOG", "EST": "EST", "HNEG": "HNEG", "SRT": "SRT", "CHAST": "CHAST", "MEZ": "MEZ", "ACST": "ACST", "UYST": "UYST", "CST": "CST", "BOT": "BOT", "ACWDT": "ACWDT", "OESZ": "OESZ", "ChST": "ChST", "ACWST": "ACWST", "WEZ": "WEZ", "HEPM": "HEPM", "HNCU": "HNCU", "AWST": "AWST", "TMST": "TMST", "ARST": "ARST", "HNT": "HNT", "LHST": "LHST", "GYT": "GYT", "WIB": "WIB", "PDT": "PDT", "IST": "ভাৰতীয় সময়", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "AEST": "AEST", "GFT": "GFT", "SAST": "SAST", "NZST": "NZST", "∅∅∅": "∅∅∅", "TMT": "TMT", "WAT": "WAT", "HAT": "HAT", "HNPM": "HNPM", "VET": "VET", "UYT": "UYT", "CDT": "CDT", "SGT": "SGT", "MESZ": "MESZ", "CLST": "CLST", "HKST": "HKST", "COST": "COST", "HENOMX": "HENOMX", "EAT": "EAT", "AWDT": "AWDT", "HADT": "HADT", "ADT": "ADT", "OEZ": "OEZ", "GMT": "GMT", "HKT": "HKT", "ACDT": "ACDT"},
}
}
diff --git a/as_IN/as_IN.go b/as_IN/as_IN.go
index 87b786ac..2a1acc66 100644
--- a/as_IN/as_IN.go
+++ b/as_IN/as_IN.go
@@ -58,7 +58,7 @@ func New() locales.Translator {
daysWide: []string{"দেওবাৰ", "সোমবাৰ", "মঙ্গলবাৰ", "বুধবাৰ", "বৃহষ্পতিবাৰ", "শুক্ৰবাৰ", "শনিবাৰ"},
periodsAbbreviated: []string{"পূৰ্বাহ্ণ", "অপৰাহ্ণ"},
periodsWide: []string{"পূৰ্বাহ্ণ", "অপৰাহ্ণ"},
- timezones: map[string]string{"HKST": "HKST", "WITA": "WITA", "JST": "JST", "EDT": "EDT", "AKST": "AKST", "CST": "CST", "CDT": "CDT", "AWDT": "AWDT", "MYT": "MYT", "HNPMX": "HNPMX", "UYT": "UYT", "CHAST": "CHAST", "ARST": "ARST", "LHST": "LHST", "IST": "ভাৰতীয় সময়", "HNEG": "HNEG", "SGT": "SGT", "UYST": "UYST", "WIT": "WIT", "NZST": "NZST", "CLT": "CLT", "GFT": "GFT", "TMT": "TMT", "PST": "PST", "HKT": "HKT", "BOT": "BOT", "COT": "COT", "HENOMX": "HENOMX", "HECU": "HECU", "WIB": "WIB", "HAT": "HAT", "MEZ": "MEZ", "MESZ": "MESZ", "LHDT": "LHDT", "WAST": "WAST", "GMT": "GMT", "ADT": "ADT", "AEST": "AEST", "SAST": "SAST", "GYT": "GYT", "WESZ": "WESZ", "WEZ": "WEZ", "ACWST": "ACWST", "ACWDT": "ACWDT", "ChST": "ChST", "EAT": "EAT", "SRT": "SRT", "CHADT": "CHADT", "HEPMX": "HEPMX", "VET": "VET", "HEOG": "HEOG", "AWST": "AWST", "ACDT": "ACDT", "WAT": "WAT", "ECT": "ECT", "HNNOMX": "HNNOMX", "EST": "EST", "HAST": "HAST", "AST": "AST", "AKDT": "AKDT", "ART": "ART", "∅∅∅": "∅∅∅", "ACST": "ACST", "WART": "WART", "BT": "BT", "HEPM": "HEPM", "JDT": "JDT", "HEEG": "HEEG", "WARST": "WARST", "HNPM": "HNPM", "NZDT": "NZDT", "OEZ": "OEZ", "HADT": "HADT", "CLST": "CLST", "CAT": "CAT", "OESZ": "OESZ", "MST": "MST", "HNT": "HNT", "HNOG": "HNOG", "COST": "COST", "PDT": "PDT", "TMST": "TMST", "HNCU": "HNCU", "MDT": "MDT", "AEDT": "AEDT"},
+ timezones: map[string]string{"HNEG": "HNEG", "AWDT": "AWDT", "CAT": "CAT", "NZDT": "NZDT", "VET": "VET", "COT": "COT", "HNNOMX": "HNNOMX", "LHST": "LHST", "LHDT": "LHDT", "WARST": "WARST", "TMT": "TMT", "HECU": "HECU", "CLST": "CLST", "EST": "EST", "HKST": "HKST", "EAT": "EAT", "HNCU": "HNCU", "AEST": "AEST", "AEDT": "AEDT", "HNPM": "HNPM", "SRT": "SRT", "JST": "JST", "OEZ": "OEZ", "TMST": "TMST", "GFT": "GFT", "MESZ": "MESZ", "ART": "ART", "HKT": "HKT", "HENOMX": "HENOMX", "AKDT": "AKDT", "CST": "CST", "SGT": "SGT", "PST": "PST", "PDT": "PDT", "OESZ": "OESZ", "HNOG": "HNOG", "WAT": "WAT", "ChST": "ChST", "HNPMX": "HNPMX", "WESZ": "WESZ", "GMT": "GMT", "WART": "WART", "EDT": "EDT", "HEEG": "HEEG", "AKST": "AKST", "ECT": "ECT", "ADT": "ADT", "BT": "BT", "WIB": "WIB", "WIT": "WIT", "MEZ": "MEZ", "MYT": "MYT", "ACDT": "ACDT", "UYT": "UYT", "UYST": "UYST", "CDT": "CDT", "CHAST": "CHAST", "CHADT": "CHADT", "NZST": "NZST", "WITA": "WITA", "HEPM": "HEPM", "CLT": "CLT", "ARST": "ARST", "WAST": "WAST", "GYT": "GYT", "ACWST": "ACWST", "ACWDT": "ACWDT", "MDT": "MDT", "ACST": "ACST", "HAT": "HAT", "HEPMX": "HEPMX", "HAST": "HAST", "IST": "ভাৰতীয় সময়", "AST": "AST", "WEZ": "WEZ", "HEOG": "HEOG", "MST": "MST", "COST": "COST", "SAST": "SAST", "∅∅∅": "∅∅∅", "JDT": "JDT", "HNT": "HNT", "AWST": "AWST", "BOT": "BOT", "HADT": "HADT"},
}
}
diff --git a/asa/asa.go b/asa/asa.go
index f852c824..0bb1c8dd 100644
--- a/asa/asa.go
+++ b/asa/asa.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KM", "BM"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla yakwe Yethu", "Baada yakwe Yethu"},
- timezones: map[string]string{"AWDT": "AWDT", "LHST": "LHST", "TMT": "TMT", "HNPMX": "HNPMX", "BT": "BT", "ACST": "ACST", "ECT": "ECT", "EAT": "EAT", "PST": "PST", "WESZ": "WESZ", "HEEG": "HEEG", "MYT": "MYT", "WIB": "WIB", "HEOG": "HEOG", "ACWDT": "ACWDT", "NZDT": "NZDT", "CHADT": "CHADT", "TMST": "TMST", "HECU": "HECU", "JST": "JST", "ACDT": "ACDT", "WAT": "WAT", "ACWST": "ACWST", "EST": "EST", "HKT": "HKT", "CLST": "CLST", "GFT": "GFT", "WAST": "WAST", "COST": "COST", "HENOMX": "HENOMX", "CST": "CST", "ART": "ART", "HKST": "HKST", "WITA": "WITA", "JDT": "JDT", "ChST": "ChST", "HNEG": "HNEG", "GMT": "GMT", "ARST": "ARST", "MEZ": "MEZ", "ADT": "ADT", "WIT": "WIT", "SRT": "SRT", "WEZ": "WEZ", "COT": "COT", "PDT": "PDT", "HNOG": "HNOG", "HAT": "HAT", "HNPM": "HNPM", "OESZ": "OESZ", "WART": "WART", "HNNOMX": "HNNOMX", "HADT": "HADT", "VET": "VET", "MESZ": "MESZ", "NZST": "NZST", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "UYST": "UYST", "HEPM": "HEPM", "CHAST": "CHAST", "IST": "IST", "CAT": "CAT", "MST": "MST", "AEDT": "AEDT", "BOT": "BOT", "MDT": "MDT", "AST": "AST", "GYT": "GYT", "AKST": "AKST", "WARST": "WARST", "SGT": "SGT", "HAST": "HAST", "HNT": "HNT", "LHDT": "LHDT", "OEZ": "OEZ", "EDT": "EDT", "HEPMX": "HEPMX", "AKDT": "AKDT", "CDT": "CDT", "AEST": "AEST", "AWST": "AWST", "SAST": "SAST", "CLT": "CLT", "UYT": "UYT"},
+ timezones: map[string]string{"HEPM": "HEPM", "HEPMX": "HEPMX", "WIB": "WIB", "MST": "MST", "ACDT": "ACDT", "HEEG": "HEEG", "BT": "BT", "SAST": "SAST", "VET": "VET", "GMT": "GMT", "HNPMX": "HNPMX", "LHDT": "LHDT", "WIT": "WIT", "BOT": "BOT", "PST": "PST", "WARST": "WARST", "HENOMX": "HENOMX", "AEST": "AEST", "HECU": "HECU", "CDT": "CDT", "IST": "IST", "MEZ": "MEZ", "EDT": "EDT", "HNT": "HNT", "UYST": "UYST", "EAT": "EAT", "HAST": "HAST", "ART": "ART", "WART": "WART", "CLST": "CLST", "ADT": "ADT", "HKT": "HKT", "WAST": "WAST", "NZST": "NZST", "∅∅∅": "∅∅∅", "CHAST": "CHAST", "SGT": "SGT", "ACST": "ACST", "AEDT": "AEDT", "HKST": "HKST", "COT": "COT", "HAT": "HAT", "SRT": "SRT", "AWDT": "AWDT", "WESZ": "WESZ", "AST": "AST", "MESZ": "MESZ", "CLT": "CLT", "OESZ": "OESZ", "AKST": "AKST", "HNPM": "HNPM", "ECT": "ECT", "CAT": "CAT", "HEOG": "HEOG", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "LHST": "LHST", "GYT": "GYT", "CHADT": "CHADT", "NZDT": "NZDT", "JST": "JST", "TMST": "TMST", "WEZ": "WEZ", "HNOG": "HNOG", "MDT": "MDT", "ARST": "ARST", "EST": "EST", "AKDT": "AKDT", "ChST": "ChST", "UYT": "UYT", "PDT": "PDT", "TMT": "TMT", "MYT": "MYT", "HNEG": "HNEG", "WAT": "WAT", "HADT": "HADT", "ACWST": "ACWST", "CST": "CST", "AWST": "AWST", "WITA": "WITA", "HNCU": "HNCU", "COST": "COST", "GFT": "GFT", "ACWDT": "ACWDT", "JDT": "JDT"},
}
}
diff --git a/asa_TZ/asa_TZ.go b/asa_TZ/asa_TZ.go
index 6efae2d4..835c06c0 100644
--- a/asa_TZ/asa_TZ.go
+++ b/asa_TZ/asa_TZ.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KM", "BM"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla yakwe Yethu", "Baada yakwe Yethu"},
- timezones: map[string]string{"SRT": "SRT", "WEZ": "WEZ", "ECT": "ECT", "OEZ": "OEZ", "∅∅∅": "∅∅∅", "CST": "CST", "WIB": "WIB", "HNOG": "HNOG", "WITA": "WITA", "JST": "JST", "COST": "COST", "HNEG": "HNEG", "EST": "EST", "ART": "ART", "HAT": "HAT", "AEDT": "AEDT", "MEZ": "MEZ", "CHADT": "CHADT", "CLT": "CLT", "ACST": "ACST", "CAT": "CAT", "WAST": "WAST", "VET": "VET", "ARST": "ARST", "EAT": "EAT", "HNCU": "HNCU", "ADT": "ADT", "BOT": "BOT", "UYST": "UYST", "ACWST": "ACWST", "AWST": "AWST", "LHDT": "LHDT", "TMST": "TMST", "WART": "WART", "HENOMX": "HENOMX", "HAST": "HAST", "CLST": "CLST", "HNNOMX": "HNNOMX", "GMT": "GMT", "HEPMX": "HEPMX", "GYT": "GYT", "WESZ": "WESZ", "HKT": "HKT", "HNPMX": "HNPMX", "MYT": "MYT", "HADT": "HADT", "ACWDT": "ACWDT", "HEEG": "HEEG", "OESZ": "OESZ", "AST": "AST", "AKST": "AKST", "AWDT": "AWDT", "HEPM": "HEPM", "MESZ": "MESZ", "UYT": "UYT", "SAST": "SAST", "ACDT": "ACDT", "AKDT": "AKDT", "WIT": "WIT", "HEOG": "HEOG", "HNPM": "HNPM", "LHST": "LHST", "NZST": "NZST", "EDT": "EDT", "MDT": "MDT", "HKST": "HKST", "CHAST": "CHAST", "JDT": "JDT", "ChST": "ChST", "CDT": "CDT", "PST": "PST", "HNT": "HNT", "GFT": "GFT", "WARST": "WARST", "COT": "COT", "SGT": "SGT", "HECU": "HECU", "MST": "MST", "PDT": "PDT", "IST": "IST", "BT": "BT", "AEST": "AEST", "NZDT": "NZDT", "TMT": "TMT", "WAT": "WAT"},
+ timezones: map[string]string{"AEST": "AEST", "CST": "CST", "AWST": "AWST", "IST": "IST", "WESZ": "WESZ", "MDT": "MDT", "HKT": "HKT", "HAT": "HAT", "HEEG": "HEEG", "HEPMX": "HEPMX", "WART": "WART", "TMT": "TMT", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "HEPM": "HEPM", "HECU": "HECU", "CLST": "CLST", "HEOG": "HEOG", "AEDT": "AEDT", "UYST": "UYST", "HADT": "HADT", "MST": "MST", "HNNOMX": "HNNOMX", "AKST": "AKST", "ACWDT": "ACWDT", "EST": "EST", "GFT": "GFT", "SGT": "SGT", "HNOG": "HNOG", "BOT": "BOT", "ECT": "ECT", "NZST": "NZST", "ACWST": "ACWST", "VET": "VET", "OEZ": "OEZ", "GYT": "GYT", "ART": "ART", "WAT": "WAT", "EDT": "EDT", "HKST": "HKST", "ACDT": "ACDT", "LHST": "LHST", "HNPMX": "HNPMX", "AWDT": "AWDT", "HNT": "HNT", "WIB": "WIB", "PDT": "PDT", "WAST": "WAST", "BT": "BT", "CDT": "CDT", "WIT": "WIT", "MEZ": "MEZ", "JDT": "JDT", "COT": "COT", "HNEG": "HNEG", "ChST": "ChST", "SAST": "SAST", "SRT": "SRT", "EAT": "EAT", "PST": "PST", "UYT": "UYT", "CHAST": "CHAST", "CHADT": "CHADT", "HAST": "HAST", "NZDT": "NZDT", "ADT": "ADT", "ACST": "ACST", "HNPM": "HNPM", "CAT": "CAT", "JST": "JST", "WARST": "WARST", "CLT": "CLT", "GMT": "GMT", "WEZ": "WEZ", "ARST": "ARST", "WITA": "WITA", "AKDT": "AKDT", "LHDT": "LHDT", "MESZ": "MESZ", "MYT": "MYT", "OESZ": "OESZ", "TMST": "TMST", "COST": "COST", "HNCU": "HNCU", "AST": "AST"},
}
}
diff --git a/ast/ast.go b/ast/ast.go
index 90e5817f..722f28b3 100644
--- a/ast/ast.go
+++ b/ast/ast.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"e.C.", "d.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"enantes de Cristu", "después de Cristu"},
- timezones: map[string]string{"HKST": "Hora braniega de Ḥong Kong", "NZDT": "Hora braniega de Nueva Zelanda", "IST": "Hora estándar de la India", "HNCU": "Hora estándar de Cuba", "AKST": "Hora estándar d’Alaska", "WIB": "Hora d’Indonesia del oeste", "ARST": "Hora braniega d’Arxentina", "HKT": "Hora estándar de Ḥong Kong", "BOT": "Hora de Bolivia", "WAT": "Hora estándar d’África del oeste", "HEOG": "Hora braniega de Groenlandia occidental", "AWST": "Hora estándar d’Australia del oeste", "HADT": "Hora braniega de Hawaii-Aleutianes", "JDT": "Hora braniega de Xapón", "OESZ": "Hora braniega d’Europa del Este", "ECT": "Hora d’Ecuador", "NZST": "Hora estándar de Nueva Zelanda", "CLT": "Hora estándar de Chile", "CLST": "Hora braniega de Chile", "WARST": "Hora braniega occidental d’Arxentina", "CDT": "Hora braniega central norteamericana", "UYST": "Hora braniega del Uruguái", "WIT": "Hora d’Indonesia del este", "PST": "Hora estándar del Pacíficu norteamericanu", "ACDT": "Hora braniega d’Australia central", "CAT": "Hora d’África central", "HENOMX": "Hora braniega del noroeste de Méxicu", "CST": "Hora estándar central norteamericana", "GYT": "Hora de La Guyana", "HNOG": "Hora estándar de Groenlandia occidental", "WESZ": "Hora braniega d’Europa Occidental", "HEPMX": "Hora braniega del Pacíficu de Méxicu", "AEDT": "Hora braniega d’Australia del este", "TMT": "Hora estándar del Turkmenistán", "LHDT": "Hora braniega de Lord Howe", "HNEG": "Hora estándar de Groenlandia oriental", "GFT": "Hora de La Guyana Francesa", "HNNOMX": "Hora estándar del noroeste de Méxicu", "EST": "Hora estándar del este norteamericanu", "HAT": "Hora braniega de Newfoundland", "WEZ": "Hora estándar d’Europa Occidental", "MESZ": "Hora braniega d’Europa Central", "AKDT": "Hora braniega d’Alaska", "VET": "Hora de Venezuela", "BT": "Hora de Bután", "CHADT": "Hora braniega de Chatham", "MST": "Hora estándar de Macáu", "AST": "Hora estándar del Atlánticu", "HNT": "Hora estándar de Newfoundland", "COT": "Hora estándar de Colombia", "HECU": "Hora braniega de Cuba", "∅∅∅": "Hora braniega de Les Azores", "GMT": "Hora media de Greenwich", "EDT": "Hora braniega del este norteamericanu", "ChST": "Hora estándar de Chamorro", "PDT": "Hora braniega del Pacíficu norteamericanu", "LHST": "Hora estándar de Lord Howe", "SAST": "Hora de Sudáfrica", "HEEG": "Hora braniega de Groenlandia oriental", "TMST": "Hora braniega del Turkmenistán", "HNPM": "Hora estándar de Saint Pierre y Miquelon", "MEZ": "Hora estándar d’Europa Central", "HNPMX": "Hora estándar del Pacíficu de Méxicu", "ADT": "Hora braniega del Atlánticu", "MYT": "Hora de Malasia", "HAST": "Hora estándar de Hawaii-Aleutianes", "ACWDT": "Hora braniega d’Australia central del oeste", "OEZ": "Hora estándar d’Europa del Este", "WART": "Hora estándar occidental d’Arxentina", "SGT": "Hora estándar de Singapur", "MDT": "Hora braniega de Macáu", "JST": "Hora estándar de Xapón", "WAST": "Hora braniega d’África del oeste", "COST": "Hora braniega de Colombia", "WITA": "Hora d’Indonesia central", "AEST": "Hora estándar d’Australia del este", "HEPM": "Hora braniega de Saint Pierre y Miquelon", "EAT": "Hora d’África del este", "ART": "Hora estándar d’Arxentina", "CHAST": "Hora estándar de Chatham", "UYT": "Hora estándar del Uruguái", "SRT": "Hora del Surinam", "ACWST": "Hora estándar d’Australia central del oeste", "AWDT": "Hora braniega d’Australia del oeste", "ACST": "Hora estándar d’Australia central"},
+ timezones: map[string]string{"HAT": "Hora braniega de Newfoundland", "ART": "Hora estándar d’Arxentina", "COST": "Hora braniega de Colombia", "HNT": "Hora estándar de Newfoundland", "CHADT": "Hora braniega de Chatham", "PDT": "Hora braniega del Pacíficu norteamericanu", "HEOG": "Hora braniega de Groenlandia occidental", "HEPMX": "Hora braniega del Pacíficu de Méxicu", "ACWDT": "Hora braniega d’Australia central del oeste", "HNOG": "Hora estándar de Groenlandia occidental", "HNNOMX": "Hora estándar del noroeste de Méxicu", "BOT": "Hora de Bolivia", "AST": "Hora estándar del Atlánticu", "MDT": "Hora braniega de Macáu", "CAT": "Hora d’África central", "WARST": "Hora braniega occidental d’Arxentina", "EST": "Hora estándar del este norteamericanu", "UYST": "Hora braniega del Uruguái", "HNCU": "Hora estándar de Cuba", "SGT": "Hora estándar de Singapur", "NZDT": "Hora braniega de Nueva Zelanda", "MESZ": "Hora braniega d’Europa Central", "OESZ": "Hora braniega d’Europa del Este", "GMT": "Hora media de Greenwich", "HEPM": "Hora braniega de Saint Pierre y Miquelon", "GYT": "Hora de La Guyana", "JDT": "Hora braniega de Xapón", "MEZ": "Hora estándar d’Europa Central", "WEZ": "Hora estándar d’Europa Occidental", "TMST": "Hora braniega del Turkmenistán", "MST": "Hora estándar de Macáu", "HNEG": "Hora estándar de Groenlandia oriental", "AEST": "Hora estándar d’Australia del este", "HNPMX": "Hora estándar del Pacíficu de Méxicu", "WIT": "Hora d’Indonesia del este", "AWDT": "Hora braniega d’Australia del oeste", "UYT": "Hora estándar del Uruguái", "HNPM": "Hora estándar de Saint Pierre y Miquelon", "IST": "Hora estándar de la India", "JST": "Hora estándar de Xapón", "WART": "Hora estándar occidental d’Arxentina", "CLST": "Hora braniega de Chile", "HKT": "Hora estándar de Ḥong Kong", "EAT": "Hora d’África del este", "PST": "Hora estándar del Pacíficu norteamericanu", "HADT": "Hora braniega de Hawaii-Aleutianes", "ChST": "Hora estándar de Chamorro", "LHDT": "Hora braniega de Lord Howe", "CDT": "Hora braniega central norteamericana", "VET": "Hora de Venezuela", "HENOMX": "Hora braniega del noroeste de Méxicu", "GFT": "Hora de La Guyana Francesa", "WITA": "Hora d’Indonesia central", "CST": "Hora estándar central norteamericana", "NZST": "Hora estándar de Nueva Zelanda", "ARST": "Hora braniega d’Arxentina", "COT": "Hora estándar de Colombia", "CHAST": "Hora estándar de Chatham", "ECT": "Hora d’Ecuador", "EDT": "Hora braniega del este norteamericanu", "MYT": "Hora de Malasia", "ADT": "Hora braniega del Atlánticu", "HKST": "Hora braniega de Ḥong Kong", "AEDT": "Hora braniega d’Australia del este", "SRT": "Hora del Surinam", "HAST": "Hora estándar de Hawaii-Aleutianes", "WESZ": "Hora braniega d’Europa Occidental", "BT": "Hora de Bután", "ACST": "Hora estándar d’Australia central", "ACDT": "Hora braniega d’Australia central", "HEEG": "Hora braniega de Groenlandia oriental", "OEZ": "Hora estándar d’Europa del Este", "WAT": "Hora estándar d’África del oeste", "∅∅∅": "Hora braniega de Les Azores", "WIB": "Hora d’Indonesia del oeste", "AWST": "Hora estándar d’Australia del oeste", "CLT": "Hora estándar de Chile", "WAST": "Hora braniega d’África del oeste", "AKDT": "Hora braniega d’Alaska", "SAST": "Hora de Sudáfrica", "HECU": "Hora braniega de Cuba", "ACWST": "Hora estándar d’Australia central del oeste", "LHST": "Hora estándar de Lord Howe", "TMT": "Hora estándar del Turkmenistán", "AKST": "Hora estándar d’Alaska"},
}
}
diff --git a/ast_ES/ast_ES.go b/ast_ES/ast_ES.go
index efea9168..386126fa 100644
--- a/ast_ES/ast_ES.go
+++ b/ast_ES/ast_ES.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"e.C.", "d.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"enantes de Cristu", "después de Cristu"},
- timezones: map[string]string{"HNEG": "Hora estándar de Groenlandia oriental", "HNCU": "Hora estándar de Cuba", "ARST": "Hora braniega d’Arxentina", "AWDT": "Hora braniega d’Australia del oeste", "LHDT": "Hora braniega de Lord Howe", "CHADT": "Hora braniega de Chatham", "JDT": "Hora braniega de Xapón", "ADT": "Hora braniega del Atlánticu", "VET": "Hora de Venezuela", "ACWST": "Hora estándar d’Australia central del oeste", "PDT": "Hora braniega del Pacíficu norteamericanu", "AEST": "Hora estándar d’Australia del este", "HEOG": "Hora braniega de Groenlandia occidental", "HKST": "Hora braniega de Ḥong Kong", "HEEG": "Hora braniega de Groenlandia oriental", "ACST": "Hora estándar d’Australia central", "EAT": "Hora d’África del este", "WART": "Hora estándar occidental d’Arxentina", "EST": "Hora estándar del este norteamericanu", "BT": "Hora de Bután", "GFT": "Hora de La Guyana Francesa", "TMST": "Hora braniega del Turkmenistán", "IST": "Hora estándar de la India", "WAST": "Hora braniega d’África del oeste", "COT": "Hora estándar de Colombia", "GMT": "Hora media de Greenwich", "NZST": "Hora estándar de Nueva Zelanda", "MESZ": "Hora braniega d’Europa Central", "WIT": "Hora d’Indonesia del este", "WESZ": "Hora braniega d’Europa Occidental", "CHAST": "Hora estándar de Chatham", "WAT": "Hora estándar d’África del oeste", "ECT": "Hora d’Ecuador", "CAT": "Hora d’África central", "HNPMX": "Hora estándar del Pacíficu de Méxicu", "GYT": "Hora de La Guyana", "TMT": "Hora estándar del Turkmenistán", "HENOMX": "Hora braniega del noroeste de Méxicu", "HNOG": "Hora estándar de Groenlandia occidental", "PST": "Hora estándar del Pacíficu norteamericanu", "MST": "Hora estándar de Macáu", "UYST": "Hora braniega del Uruguái", "OESZ": "Hora braniega d’Europa del Este", "MDT": "Hora braniega de Macáu", "AKST": "Hora estándar d’Alaska", "SRT": "Hora del Surinam", "HKT": "Hora estándar de Ḥong Kong", "JST": "Hora estándar de Xapón", "COST": "Hora braniega de Colombia", "HEPMX": "Hora braniega del Pacíficu de Méxicu", "AKDT": "Hora braniega d’Alaska", "CDT": "Hora braniega central norteamericana", "UYT": "Hora estándar del Uruguái", "HECU": "Hora braniega de Cuba", "WIB": "Hora d’Indonesia del oeste", "CST": "Hora estándar central norteamericana", "SAST": "Hora de Sudáfrica", "WARST": "Hora braniega occidental d’Arxentina", "WEZ": "Hora estándar d’Europa Occidental", "ACWDT": "Hora braniega d’Australia central del oeste", "HNT": "Hora estándar de Newfoundland", "BOT": "Hora de Bolivia", "HNNOMX": "Hora estándar del noroeste de Méxicu", "HAT": "Hora braniega de Newfoundland", "ART": "Hora estándar d’Arxentina", "WITA": "Hora d’Indonesia central", "MEZ": "Hora estándar d’Europa Central", "HEPM": "Hora braniega de Saint Pierre y Miquelon", "CLT": "Hora estándar de Chile", "OEZ": "Hora estándar d’Europa del Este", "AST": "Hora estándar del Atlánticu", "HAST": "Hora estándar de Hawaii-Aleutianes", "AWST": "Hora estándar d’Australia del oeste", "HNPM": "Hora estándar de Saint Pierre y Miquelon", "CLST": "Hora braniega de Chile", "ChST": "Hora estándar de Chamorro", "ACDT": "Hora braniega d’Australia central", "MYT": "Hora de Malasia", "HADT": "Hora braniega de Hawaii-Aleutianes", "AEDT": "Hora braniega d’Australia del este", "LHST": "Hora estándar de Lord Howe", "∅∅∅": "Hora braniega del Perú", "SGT": "Hora estándar de Singapur", "EDT": "Hora braniega del este norteamericanu", "NZDT": "Hora braniega de Nueva Zelanda"},
+ timezones: map[string]string{"AKDT": "Hora braniega d’Alaska", "HEPM": "Hora braniega de Saint Pierre y Miquelon", "SRT": "Hora del Surinam", "WIT": "Hora d’Indonesia del este", "CHADT": "Hora braniega de Chatham", "PST": "Hora estándar del Pacíficu norteamericanu", "WITA": "Hora d’Indonesia central", "AKST": "Hora estándar d’Alaska", "AEST": "Hora estándar d’Australia del este", "HNPM": "Hora estándar de Saint Pierre y Miquelon", "SGT": "Hora estándar de Singapur", "NZST": "Hora estándar de Nueva Zelanda", "ART": "Hora estándar d’Arxentina", "MDT": "Hora braniega de les montañes norteamericanes", "LHST": "Hora estándar de Lord Howe", "∅∅∅": "Hora braniega de Les Azores", "CHAST": "Hora estándar de Chatham", "CAT": "Hora d’África central", "JDT": "Hora braniega de Xapón", "WEZ": "Hora estándar d’Europa Occidental", "GYT": "Hora de La Guyana", "CDT": "Hora braniega central norteamericana", "AWDT": "Hora braniega d’Australia del oeste", "ECT": "Hora d’Ecuador", "MYT": "Hora de Malasia", "EST": "Hora estándar del este norteamericanu", "HNT": "Hora estándar de Newfoundland", "NZDT": "Hora braniega de Nueva Zelanda", "HNOG": "Hora estándar de Groenlandia occidental", "CLT": "Hora estándar de Chile", "HKST": "Hora braniega de Ḥong Kong", "HADT": "Hora braniega de Hawaii-Aleutianes", "GMT": "Hora media de Greenwich", "WARST": "Hora braniega occidental d’Arxentina", "BT": "Hora de Bután", "AEDT": "Hora braniega d’Australia del este", "HAST": "Hora estándar de Hawaii-Aleutianes", "JST": "Hora estándar de Xapón", "TMT": "Hora estándar del Turkmenistán", "HNEG": "Hora estándar de Groenlandia oriental", "UYT": "Hora estándar del Uruguái", "LHDT": "Hora braniega de Lord Howe", "MESZ": "Hora braniega d’Europa Central", "AST": "Hora estándar del Atlánticu", "ADT": "Hora braniega del Atlánticu", "CLST": "Hora braniega de Chile", "HAT": "Hora braniega de Newfoundland", "GFT": "Hora de La Guyana Francesa", "HECU": "Hora braniega de Cuba", "WESZ": "Hora braniega d’Europa Occidental", "AWST": "Hora estándar d’Australia del oeste", "WAT": "Hora estándar d’África del oeste", "WAST": "Hora braniega d’África del oeste", "COST": "Hora braniega de Colombia", "EDT": "Hora braniega del este norteamericanu", "HNPMX": "Hora estándar del Pacíficu de Méxicu", "HEPMX": "Hora braniega del Pacíficu de Méxicu", "BOT": "Hora de Bolivia", "MEZ": "Hora estándar d’Europa Central", "WART": "Hora estándar occidental d’Arxentina", "TMST": "Hora braniega del Turkmenistán", "ARST": "Hora braniega d’Arxentina", "HKT": "Hora estándar de Ḥong Kong", "MST": "Hora estándar de les montañes norteamericanes", "UYST": "Hora braniega del Uruguái", "WIB": "Hora d’Indonesia del oeste", "PDT": "Hora braniega del Pacíficu norteamericanu", "ACST": "Hora estándar d’Australia central", "ACDT": "Hora braniega d’Australia central", "HNNOMX": "Hora estándar del noroeste de Méxicu", "HNCU": "Hora estándar de Cuba", "ACWST": "Hora estándar d’Australia central del oeste", "OESZ": "Hora braniega d’Europa del Este", "COT": "Hora estándar de Colombia", "HEEG": "Hora braniega de Groenlandia oriental", "ChST": "Hora estándar de Chamorro", "IST": "Hora estándar de la India", "ACWDT": "Hora braniega d’Australia central del oeste", "OEZ": "Hora estándar d’Europa del Este", "HENOMX": "Hora braniega del noroeste de Méxicu", "SAST": "Hora de Sudáfrica", "EAT": "Hora d’África del este", "CST": "Hora estándar central norteamericana", "VET": "Hora de Venezuela", "HEOG": "Hora braniega de Groenlandia occidental"},
}
}
diff --git a/az/az.go b/az/az.go
index 16876e41..6d89c627 100644
--- a/az/az.go
+++ b/az/az.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"e.ə.", "y.e."},
erasNarrow: []string{"", ""},
erasWide: []string{"eramızdan əvvəl", "yeni era"},
- timezones: map[string]string{"∅∅∅": "Amazon Yay Vaxtı", "HEEG": "Şərqi Qrenlandiya Yay Vaxtı", "AST": "Atlantik Standart Vaxt", "CLST": "Çili Yay Vaxtı", "EAT": "Şərqi Afrika Vaxtı", "OEZ": "Şərqi Avropa Standart Vaxtı", "WART": "Qərbi Argentina Standart Vaxtı", "HENOMX": "Şimal-Qərbi Meksika Yay Vaxtı", "CDT": "Şimali Mərkəzi Amerika Yay Vaxtı", "HAST": "Havay-Aleut Standart Vaxtı", "TMST": "Türkmənistan Yay Vaxtı", "ACST": "Mərkəzi Avstraliya Standart Vaxtı", "WAST": "Qərbi Afrika Yay Vaxtı", "WIB": "Qərbi İndoneziya Vaxtı", "HKST": "Honq Konq Yay Vaxtı", "GMT": "Qrinviç Orta Vaxtı", "AKST": "Alyaska Standart Vaxtı", "ACWST": "Mərkəzi Qərbi Avstraliya Standart Vaxtı", "HAT": "Nyufaundlend Yay Vaxtı", "AEST": "Şərqi Avstraliya Standart Vaxtı", "HKT": "Honq Konq Standart Vaxtı", "HNPM": "San Pier və Mikelon Standart Vaxtı", "JST": "Yaponiya Standart Vaxtı", "WARST": "Qərbi Argentina Yay Vaxtı", "EST": "Şimali Şərqi Amerika Standart Vaxtı", "WESZ": "Qərbi Avropa Yay Vaxtı", "GYT": "Qayana Vaxtı", "SRT": "Surinam Vaxtı", "PST": "Şimali Amerika Sakit Okean Standart Vaxtı", "ARST": "Argentina Yay Vaxtı", "AWST": "Qərbi Avstraliya Standart Vaxtı", "HADT": "Havay-Aleut Yay Vaxtı", "NZST": "Yeni Zelandiya Standart Vaxtı", "ChST": "Çamorro Vaxtı", "COT": "Kolumbiya Standart Vaxtı", "COST": "Kolumbiya Yay Vaxtı", "MDT": "MDT", "UYST": "Uruqvay Yay Vaxtı", "WIT": "Şərqi İndoneziya Vaxtı", "HNCU": "Kuba Standart Vaxtı", "HECU": "Kuba Yay Vaxtı", "AKDT": "Alyaska Yay Vaxtı", "BT": "Butan Vaxtı", "HNNOMX": "Şimal-Qərbi Meksika Standart Vaxtı", "SGT": "Sinqapur Vaxtı", "MST": "MST", "ART": "Argentina Standart Vaxtı", "MEZ": "Mərkəzi Avropa Standart Vaxtı", "MESZ": "Mərkəzi Avropa Yay Vaxtı", "OESZ": "Şərqi Avropa Yay Vaxtı", "HEPMX": "Meksika Sakit Okean Yay Vaxtı", "HNOG": "Qərbi Qrenlandiya Standart Vaxtı", "HNPMX": "Meksika Sakit Okean Standart Vaxtı", "MYT": "Malayziya Vaxtı", "TMT": "Türkmənistan Standart Vaxtı", "LHST": "Lord Hau Standart Vaxtı", "NZDT": "Yeni Zelandiya Yay Vaxtı", "IST": "Hindistan Vaxtı", "CLT": "Çili Standart Vaxtı", "BOT": "Boliviya Vaxtı", "CAT": "Mərkəzi Afrika Vaxtı", "VET": "Venesuela Vaxtı", "CHAST": "Çatham Standart Vaxtı", "SAST": "Cənubi Afrika Vaxtı", "JDT": "Yaponiya Yay Vaxtı", "HNEG": "Şərqi Qrenlandiya Standart Vaxtı", "ACDT": "Mərkəzi Avstraliya Yay Vaxtı", "WAT": "Qərbi Afrika Standart Vaxtı", "WEZ": "Qərbi Avropa Standart Vaxtı", "ACWDT": "Mərkəzi Qərbi Avstraliya Yay Vaxtı", "HNT": "Nyufaundlend Standart Vaxtı", "LHDT": "Lord Hau Yay vaxtı", "GFT": "Fransız Qvianası Vaxtı", "UYT": "Uruqvay Standart Vaxtı", "ADT": "Atlantik Yay Vaxtı", "PDT": "Şimali Amerika Sakit Okean Yay Vaxtı", "WITA": "Mərkəzi İndoneziya Vaxtı", "CHADT": "Çatham Yay Vaxtı", "ECT": "Ekvador Vaxtı", "HEOG": "Qərbi Qrenlandiya Yay Vaxtı", "AWDT": "Qərbi Avstraliya Yay Vaxtı", "HEPM": "San Pier və Mikelon Yay Vaxtı", "EDT": "Şimali Şərqi Amerika Yay Vaxtı", "CST": "Şimali Mərkəzi Amerika Standart Vaxtı", "AEDT": "Şərqi Avstraliya Yay Vaxtı"},
+ timezones: map[string]string{"MYT": "Malayziya Vaxtı", "TMST": "Türkmənistan Yay Vaxtı", "EST": "Şimali Şərqi Amerika Standart Vaxtı", "ACST": "Mərkəzi Avstraliya Standart Vaxtı", "HEPMX": "Meksika Sakit Okean Yay Vaxtı", "SRT": "Surinam Vaxtı", "∅∅∅": "Azor Yay Vaxtı", "ARST": "Argentina Yay Vaxtı", "HNNOMX": "Şimal-Qərbi Meksika Standart Vaxtı", "HENOMX": "Şimal-Qərbi Meksika Yay Vaxtı", "AKDT": "Alyaska Yay Vaxtı", "WIT": "Şərqi İndoneziya Vaxtı", "NZDT": "Yeni Zelandiya Yay Vaxtı", "WARST": "Qərbi Argentina Yay Vaxtı", "CDT": "Şimali Mərkəzi Amerika Yay Vaxtı", "PST": "Şimali Amerika Sakit Okean Standart Vaxtı", "TMT": "Türkmənistan Standart Vaxtı", "HKST": "Honq Konq Yay Vaxtı", "WITA": "Mərkəzi İndoneziya Vaxtı", "HEPM": "San Pier və Mikelon Yay Vaxtı", "SAST": "Cənubi Afrika Vaxtı", "JST": "Yaponiya Standart Vaxtı", "WEZ": "Qərbi Avropa Standart Vaxtı", "ART": "Argentina Standart Vaxtı", "EDT": "Şimali Şərqi Amerika Yay Vaxtı", "HNEG": "Şərqi Qrenlandiya Standart Vaxtı", "GFT": "Fransız Qvianası Vaxtı", "BOT": "Boliviya Vaxtı", "CAT": "Mərkəzi Afrika Vaxtı", "VET": "Venesuela Vaxtı", "SGT": "Sinqapur Vaxtı", "OEZ": "Şərqi Avropa Standart Vaxtı", "MDT": "MDT", "CST": "Şimali Mərkəzi Amerika Standart Vaxtı", "AWST": "Qərbi Avstraliya Standart Vaxtı", "CHADT": "Çatham Yay Vaxtı", "CHAST": "Çatham Standart Vaxtı", "ECT": "Ekvador Vaxtı", "WART": "Qərbi Argentina Standart Vaxtı", "CLT": "Çili Standart Vaxtı", "WESZ": "Qərbi Avropa Yay Vaxtı", "HNPMX": "Meksika Sakit Okean Standart Vaxtı", "EAT": "Şərqi Afrika Vaxtı", "AWDT": "Qərbi Avstraliya Yay Vaxtı", "MST": "MST", "WAT": "Qərbi Afrika Standart Vaxtı", "HEEG": "Şərqi Qrenlandiya Yay Vaxtı", "COT": "Kolumbiya Standart Vaxtı", "WIB": "Qərbi İndoneziya Vaxtı", "MEZ": "Mərkəzi Avropa Standart Vaxtı", "HNOG": "Qərbi Qrenlandiya Standart Vaxtı", "LHDT": "Lord Hau Yay vaxtı", "MESZ": "Mərkəzi Avropa Yay Vaxtı", "HEOG": "Qərbi Qrenlandiya Yay Vaxtı", "AST": "Atlantik Standart Vaxt", "GMT": "Qrinviç Orta Vaxtı", "WAST": "Qərbi Afrika Yay Vaxtı", "AEST": "Şərqi Avstraliya Standart Vaxtı", "HNCU": "Kuba Standart Vaxtı", "HAST": "Havay-Aleut Standart Vaxtı", "NZST": "Yeni Zelandiya Standart Vaxtı", "ADT": "Atlantik Yay Vaxtı", "HNT": "Nyufaundlend Standart Vaxtı", "HAT": "Nyufaundlend Yay Vaxtı", "HADT": "Havay-Aleut Yay Vaxtı", "OESZ": "Şərqi Avropa Yay Vaxtı", "AEDT": "Şərqi Avstraliya Yay Vaxtı", "COST": "Kolumbiya Yay Vaxtı", "HNPM": "San Pier və Mikelon Standart Vaxtı", "HECU": "Kuba Yay Vaxtı", "PDT": "Şimali Amerika Sakit Okean Yay Vaxtı", "HKT": "Honq Konq Standart Vaxtı", "IST": "Hindistan Vaxtı", "ACWST": "Mərkəzi Qərbi Avstraliya Standart Vaxtı", "ACWDT": "Mərkəzi Qərbi Avstraliya Yay Vaxtı", "JDT": "Yaponiya Yay Vaxtı", "ACDT": "Mərkəzi Avstraliya Yay Vaxtı", "UYT": "Uruqvay Standart Vaxtı", "UYST": "Uruqvay Yay Vaxtı", "LHST": "Lord Hau Standart Vaxtı", "BT": "Butan Vaxtı", "AKST": "Alyaska Standart Vaxtı", "ChST": "Çamorro Vaxtı", "GYT": "Qayana Vaxtı", "CLST": "Çili Yay Vaxtı"},
}
}
@@ -112,9 +112,9 @@ func (az *az) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
i := int64(n)
+ iMod10 := i % 10
iMod100 := i % 100
iMod1000 := i % 1000
- iMod10 := i % 10
if (iMod10 == 1 || iMod10 == 2 || iMod10 == 5 || iMod10 == 7 || iMod10 == 8) || (iMod100 == 20 || iMod100 == 50 || iMod100 == 70 || iMod100 == 80) {
return locales.PluralRuleOne
diff --git a/az_Cyrl/az_Cyrl.go b/az_Cyrl/az_Cyrl.go
index 4d8a7339..0ecfe07b 100644
--- a/az_Cyrl/az_Cyrl.go
+++ b/az_Cyrl/az_Cyrl.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"е.ә.", "ј.е."},
erasNarrow: []string{"", ""},
erasWide: []string{"ерамыздан әввәл", "јени ера"},
- timezones: map[string]string{"WITA": "Mərkəzi İndoneziya Vaxtı", "CLST": "Çili Yay Vaxtı", "GFT": "Fransız Qvianası Vaxtı", "GMT": "Qrinviç Orta Vaxtı", "SGT": "Sinqapur Vaxtı", "IST": "Hindistan Vaxtı", "JDT": "Yaponiya Yay Vaxtı", "OEZ": "Şərqi Avropa Standart Vaxtı", "WARST": "Qərbi Argentina Yay Vaxtı", "ADT": "Atlantik Yay Vaxtı", "NZDT": "Yeni Zelandiya Yay Vaxtı", "COT": "Kolumbiya Standart Vaxtı", "HNNOMX": "Şimal-Qərbi Meksika Standart Vaxtı", "EST": "Şimali Şərqi Amerika Standart Vaxtı", "MST": "MST", "MDT": "MDT", "MYT": "Malayziya Vaxtı", "ACWST": "Mərkəzi Qərbi Avstraliya Standart Vaxtı", "HAT": "Nyufaundlend Yay Vaxtı", "WAT": "Qərbi Afrika Standart Vaxtı", "OESZ": "Şərqi Avropa Yay Vaxtı", "CDT": "Şimali Mərkəzi Amerika Yay Vaxtı", "SAST": "Cənubi Afrika Vaxtı", "HENOMX": "Şimal-Qərbi Meksika Yay Vaxtı", "PST": "Şimali Amerika Sakit Okean Standart Vaxtı", "AWDT": "Qərbi Avstraliya Yay Vaxtı", "HNPM": "San Pier və Mikelon Standart Vaxtı", "MEZ": "Mərkəzi Avropa Standart Vaxtı", "CLT": "Çili Standart Vaxtı", "ACWDT": "Mərkəzi Qərbi Avstraliya Yay Vaxtı", "HNT": "Nyufaundlend Standart Vaxtı", "HKT": "Honq Konq Standart Vaxtı", "JST": "Yaponiya Standart Vaxtı", "TMT": "Türkmənistan Standart Vaxtı", "ECT": "Ekvador Vaxtı", "COST": "Kolumbiya Yay Vaxtı", "UYT": "Uruqvay Standart Vaxtı", "AKDT": "Alyaska Yay Vaxtı", "AEST": "Şərqi Avstraliya Standart Vaxtı", "CHAST": "Çatham Standart Vaxtı", "ChST": "Çamorro Vaxtı", "EAT": "Şərqi Afrika Vaxtı", "WAST": "Qərbi Afrika Yay Vaxtı", "GYT": "Qayana Vaxtı", "ART": "Argentina Standart Vaxtı", "HNOG": "Qərbi Qrenlandiya Standart Vaxtı", "HEOG": "Qərbi Qrenlandiya Yay Vaxtı", "AEDT": "Şərqi Avstraliya Yay Vaxtı", "MESZ": "Mərkəzi Avropa Yay Vaxtı", "WART": "Qərbi Argentina Standart Vaxtı", "HECU": "Kuba Yay Vaxtı", "HEPM": "San Pier və Mikelon Yay Vaxtı", "TMST": "Türkmənistan Yay Vaxtı", "AST": "Atlantik Standart Vaxt", "BT": "Butan Vaxtı", "AWST": "Qərbi Avstraliya Standart Vaxtı", "HNCU": "Kuba Standart Vaxtı", "AKST": "Alyaska Standart Vaxtı", "CST": "Şimali Mərkəzi Amerika Standart Vaxtı", "HADT": "Havay-Aleut Yay Vaxtı", "SRT": "Surinam Vaxtı", "ARST": "Argentina Yay Vaxtı", "HKST": "Honq Konq Yay Vaxtı", "LHDT": "Lord Hau Yay vaxtı", "ACDT": "Mərkəzi Avstraliya Yay Vaxtı", "HNPMX": "Meksika Sakit Okean Standart Vaxtı", "UYST": "Uruqvay Yay Vaxtı", "HAST": "Havay-Aleut Standart Vaxtı", "WESZ": "Qərbi Avropa Yay Vaxtı", "LHST": "Lord Hau Standart Vaxtı", "BOT": "Boliviya Vaxtı", "ACST": "Mərkəzi Avstraliya Standart Vaxtı", "HEPMX": "Meksika Sakit Okean Yay Vaxtı", "WIB": "Qərbi İndoneziya Vaxtı", "VET": "Venesuela Vaxtı", "WIT": "Şərqi İndoneziya Vaxtı", "CAT": "Mərkəzi Afrika Vaxtı", "EDT": "Şimali Şərqi Amerika Yay Vaxtı", "PDT": "Şimali Amerika Sakit Okean Yay Vaxtı", "∅∅∅": "Amazon Yay Vaxtı", "HNEG": "Şərqi Qrenlandiya Standart Vaxtı", "HEEG": "Şərqi Qrenlandiya Yay Vaxtı", "WEZ": "Qərbi Avropa Standart Vaxtı", "NZST": "Yeni Zelandiya Standart Vaxtı", "CHADT": "Çatham Yay Vaxtı"},
+ timezones: map[string]string{"BT": "Butan Vaxtı", "GYT": "Qayana Vaxtı", "EAT": "Şərqi Afrika Vaxtı", "CHADT": "Çatham Yay Vaxtı", "IST": "Hindistan Vaxtı", "ACWDT": "Mərkəzi Qərbi Avstraliya Yay Vaxtı", "VET": "Venesuela Vaxtı", "ARST": "Argentina Yay Vaxtı", "TMT": "Türkmənistan Standart Vaxtı", "EST": "Şimali Şərqi Amerika Standart Vaxtı", "EDT": "Şimali Şərqi Amerika Yay Vaxtı", "AEST": "Şərqi Avstraliya Standart Vaxtı", "WIB": "Qərbi İndoneziya Vaxtı", "AWST": "Qərbi Avstraliya Standart Vaxtı", "MEZ": "Mərkəzi Avropa Standart Vaxtı", "WARST": "Qərbi Argentina Yay Vaxtı", "∅∅∅": "∅∅∅", "HNPM": "San Pier və Mikelon Standart Vaxtı", "ChST": "Çamorro Vaxtı", "SAST": "Cənubi Afrika Vaxtı", "PST": "Şimali Amerika Sakit Okean Standart Vaxtı", "CAT": "Mərkəzi Afrika Vaxtı", "MYT": "Malayziya Vaxtı", "ACDT": "Mərkəzi Avstraliya Yay Vaxtı", "HKT": "Honq Konq Standart Vaxtı", "HAT": "Nyufaundlend Yay Vaxtı", "HNCU": "Kuba Standart Vaxtı", "JDT": "Yaponiya Yay Vaxtı", "CLST": "Çili Yay Vaxtı", "LHDT": "Lord Hau Yay vaxtı", "CDT": "Şimali Mərkəzi Amerika Yay Vaxtı", "AWDT": "Qərbi Avstraliya Yay Vaxtı", "HAST": "Havay-Aleut Standart Vaxtı", "MESZ": "Mərkəzi Avropa Yay Vaxtı", "LHST": "Lord Hau Standart Vaxtı", "NZST": "Yeni Zelandiya Standart Vaxtı", "MST": "MST", "CST": "Şimali Mərkəzi Amerika Standart Vaxtı", "HNEG": "Şərqi Qrenlandiya Standart Vaxtı", "AEDT": "Şərqi Avstraliya Yay Vaxtı", "WIT": "Şərqi İndoneziya Vaxtı", "ACWST": "Mərkəzi Qərbi Avstraliya Standart Vaxtı", "NZDT": "Yeni Zelandiya Yay Vaxtı", "CLT": "Çili Standart Vaxtı", "TMST": "Türkmənistan Yay Vaxtı", "ACST": "Mərkəzi Avstraliya Standart Vaxtı", "HEEG": "Şərqi Qrenlandiya Yay Vaxtı", "UYST": "Uruqvay Yay Vaxtı", "HEPMX": "Meksika Sakit Okean Yay Vaxtı", "OEZ": "Şərqi Avropa Standart Vaxtı", "WESZ": "Qərbi Avropa Yay Vaxtı", "HNPMX": "Meksika Sakit Okean Standart Vaxtı", "HNOG": "Qərbi Qrenlandiya Standart Vaxtı", "COT": "Kolumbiya Standart Vaxtı", "HNNOMX": "Şimal-Qərbi Meksika Standart Vaxtı", "AKDT": "Alyaska Yay Vaxtı", "HADT": "Havay-Aleut Yay Vaxtı", "ECT": "Ekvador Vaxtı", "OESZ": "Şərqi Avropa Yay Vaxtı", "ART": "Argentina Standart Vaxtı", "AKST": "Alyaska Standart Vaxtı", "ADT": "Atlantik Yay Vaxtı", "HNT": "Nyufaundlend Standart Vaxtı", "UYT": "Uruqvay Standart Vaxtı", "CHAST": "Çatham Standart Vaxtı", "PDT": "Şimali Amerika Sakit Okean Yay Vaxtı", "AST": "Atlantik Standart Vaxt", "WAST": "Qərbi Afrika Yay Vaxtı", "HKST": "Honq Konq Yay Vaxtı", "WAT": "Qərbi Afrika Standart Vaxtı", "COST": "Kolumbiya Yay Vaxtı", "WITA": "Mərkəzi İndoneziya Vaxtı", "WEZ": "Qərbi Avropa Standart Vaxtı", "WART": "Qərbi Argentina Standart Vaxtı", "HEPM": "San Pier və Mikelon Yay Vaxtı", "HECU": "Kuba Yay Vaxtı", "BOT": "Boliviya Vaxtı", "HEOG": "Qərbi Qrenlandiya Yay Vaxtı", "GFT": "Fransız Qvianası Vaxtı", "MDT": "MDT", "HENOMX": "Şimal-Qərbi Meksika Yay Vaxtı", "SRT": "Surinam Vaxtı", "SGT": "Sinqapur Vaxtı", "JST": "Yaponiya Standart Vaxtı", "GMT": "Qrinviç Orta Vaxtı"},
}
}
diff --git a/az_Cyrl_AZ/az_Cyrl_AZ.go b/az_Cyrl_AZ/az_Cyrl_AZ.go
index 4d5148a1..322987b1 100644
--- a/az_Cyrl_AZ/az_Cyrl_AZ.go
+++ b/az_Cyrl_AZ/az_Cyrl_AZ.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"e.ə.", "y.e."},
erasNarrow: []string{"", ""},
erasWide: []string{"eramızdan əvvəl", "yeni era"},
- timezones: map[string]string{"WEZ": "Qərbi Avropa Standart Vaxtı", "HKT": "Honq Konq Standart Vaxtı", "HNT": "Nyufaundlend Standart Vaxtı", "COST": "Kolumbiya Yay Vaxtı", "CST": "Şimali Mərkəzi Amerika Standart Vaxtı", "SRT": "Surinam Vaxtı", "HNPM": "San Pier və Mikelon Standart Vaxtı", "ACST": "Mərkəzi Avstraliya Standart Vaxtı", "CAT": "Mərkəzi Afrika Vaxtı", "MDT": "Şimali Dağlıq Amerika Yay Vaxtı", "WITA": "Mərkəzi İndoneziya Vaxtı", "CHAST": "Çatham Standart Vaxtı", "AWST": "Qərbi Avstraliya Standart Vaxtı", "JDT": "Yaponiya Yay Vaxtı", "ECT": "Ekvador Vaxtı", "JST": "Yaponiya Standart Vaxtı", "BOT": "Boliviya Vaxtı", "ACDT": "Mərkəzi Avstraliya Yay Vaxtı", "AKST": "Alyaska Standart Vaxtı", "ACWDT": "Mərkəzi Qərbi Avstraliya Yay Vaxtı", "AEST": "Şərqi Avstraliya Standart Vaxtı", "NZDT": "Yeni Zelandiya Yay Vaxtı", "AWDT": "Qərbi Avstraliya Yay Vaxtı", "MYT": "Malayziya Vaxtı", "SAST": "Cənubi Afrika Vaxtı", "IST": "Hindistan Vaxtı", "GFT": "Fransız Qvianası Vaxtı", "OEZ": "Şərqi Avropa Standart Vaxtı", "HNCU": "Kuba Standart Vaxtı", "HEOG": "Qərbi Qrenlandiya Yay Vaxtı", "HKST": "Honq Konq Yay Vaxtı", "LHST": "Lord Hau Standart Vaxtı", "AKDT": "Alyaska Yay Vaxtı", "CDT": "Şimali Mərkəzi Amerika Yay Vaxtı", "BT": "Butan Vaxtı", "ART": "Argentina Standart Vaxtı", "∅∅∅": "Amazon Yay Vaxtı", "WARST": "Qərbi Argentina Yay Vaxtı", "EST": "Şimali Şərqi Amerika Standart Vaxtı", "WIB": "Qərbi İndoneziya Vaxtı", "HADT": "Havay-Aleut Yay Vaxtı", "WIT": "Şərqi İndoneziya Vaxtı", "AST": "Atlantik Standart Vaxt", "HEPMX": "Meksika Sakit Okean Yay Vaxtı", "WESZ": "Qərbi Avropa Yay Vaxtı", "TMT": "Türkmənistan Standart Vaxtı", "HNNOMX": "Şimal-Qərbi Meksika Standart Vaxtı", "ARST": "Argentina Yay Vaxtı", "AEDT": "Şərqi Avstraliya Yay Vaxtı", "MESZ": "Mərkəzi Avropa Yay Vaxtı", "ChST": "Çamorro Vaxtı", "HECU": "Kuba Yay Vaxtı", "MST": "Şimali Dağlıq Amerika Standart Vaxtı", "PDT": "Şimali Amerika Sakit Okean Yay Vaxtı", "HAT": "Nyufaundlend Yay Vaxtı", "HNPMX": "Meksika Sakit Okean Standart Vaxtı", "UYST": "Uruqvay Yay Vaxtı", "CLST": "Çili Yay Vaxtı", "TMST": "Türkmənistan Yay Vaxtı", "WAT": "Qərbi Afrika Standart Vaxtı", "SGT": "Sinqapur Vaxtı", "GYT": "Qayana Vaxtı", "MEZ": "Mərkəzi Avropa Standart Vaxtı", "LHDT": "Lord Hau Yay vaxtı", "NZST": "Yeni Zelandiya Standart Vaxtı", "ADT": "Atlantik Yay Vaxtı", "HAST": "Havay-Aleut Standart Vaxtı", "PST": "Şimali Amerika Sakit Okean Standart Vaxtı", "UYT": "Uruqvay Standart Vaxtı", "HEEG": "Şərqi Qrenlandiya Yay Vaxtı", "EAT": "Şərqi Afrika Vaxtı", "WAST": "Qərbi Afrika Yay Vaxtı", "EDT": "Şimali Şərqi Amerika Yay Vaxtı", "VET": "Venesuela Vaxtı", "ACWST": "Mərkəzi Qərbi Avstraliya Standart Vaxtı", "HEPM": "San Pier və Mikelon Yay Vaxtı", "WART": "Qərbi Argentina Standart Vaxtı", "HENOMX": "Şimal-Qərbi Meksika Yay Vaxtı", "CHADT": "Çatham Yay Vaxtı", "HNEG": "Şərqi Qrenlandiya Standart Vaxtı", "OESZ": "Şərqi Avropa Yay Vaxtı", "GMT": "Qrinviç Orta Vaxtı", "HNOG": "Qərbi Qrenlandiya Standart Vaxtı", "CLT": "Çili Standart Vaxtı", "COT": "Kolumbiya Standart Vaxtı"},
+ timezones: map[string]string{"COT": "Kolumbiya Standart Vaxtı", "BT": "Butan Vaxtı", "HECU": "Kuba Yay Vaxtı", "CDT": "Şimali Mərkəzi Amerika Yay Vaxtı", "CLT": "Çili Standart Vaxtı", "ACWST": "Mərkəzi Qərbi Avstraliya Standart Vaxtı", "OEZ": "Şərqi Avropa Standart Vaxtı", "EDT": "Şimali Şərqi Amerika Yay Vaxtı", "HKST": "Honq Konq Yay Vaxtı", "ACDT": "Mərkəzi Avstraliya Yay Vaxtı", "HAT": "Nyufaundlend Yay Vaxtı", "WIT": "Şərqi İndoneziya Vaxtı", "HADT": "Havay-Aleut Yay Vaxtı", "MESZ": "Mərkəzi Avropa Yay Vaxtı", "WAT": "Qərbi Afrika Standart Vaxtı", "HEEG": "Şərqi Qrenlandiya Yay Vaxtı", "PST": "Şimali Amerika Sakit Okean Standart Vaxtı", "HAST": "Havay-Aleut Standart Vaxtı", "OESZ": "Şərqi Avropa Yay Vaxtı", "WEZ": "Qərbi Avropa Standart Vaxtı", "GMT": "Qrinviç Orta Vaxtı", "UYT": "Uruqvay Standart Vaxtı", "SRT": "Surinam Vaxtı", "∅∅∅": "Braziliya Yay Vaxtı", "CHADT": "Çatham Yay Vaxtı", "HNOG": "Qərbi Qrenlandiya Standart Vaxtı", "HNEG": "Şərqi Qrenlandiya Standart Vaxtı", "LHST": "Lord Hau Standart Vaxtı", "MEZ": "Mərkəzi Avropa Standart Vaxtı", "WARST": "Qərbi Argentina Yay Vaxtı", "CAT": "Mərkəzi Afrika Vaxtı", "VET": "Venesuela Vaxtı", "JST": "Yaponiya Standart Vaxtı", "COST": "Kolumbiya Yay Vaxtı", "CST": "Şimali Mərkəzi Amerika Standart Vaxtı", "CHAST": "Çatham Standart Vaxtı", "NZST": "Yeni Zelandiya Standart Vaxtı", "TMST": "Türkmənistan Yay Vaxtı", "HKT": "Honq Konq Standart Vaxtı", "HEPM": "San Pier və Mikelon Yay Vaxtı", "HEPMX": "Meksika Sakit Okean Yay Vaxtı", "WIB": "Qərbi İndoneziya Vaxtı", "BOT": "Boliviya Vaxtı", "PDT": "Şimali Amerika Sakit Okean Yay Vaxtı", "EAT": "Şərqi Afrika Vaxtı", "MDT": "MDT", "ChST": "Çamorro Vaxtı", "ECT": "Ekvador Vaxtı", "ART": "Argentina Standart Vaxtı", "TMT": "Türkmənistan Standart Vaxtı", "MST": "MST", "HENOMX": "Şimal-Qərbi Meksika Yay Vaxtı", "HNT": "Nyufaundlend Standart Vaxtı", "GFT": "Fransız Qvianası Vaxtı", "SGT": "Sinqapur Vaxtı", "AST": "Atlantik Standart Vaxt", "EST": "Şimali Şərqi Amerika Standart Vaxtı", "SAST": "Cənubi Afrika Vaxtı", "ACWDT": "Mərkəzi Qərbi Avstraliya Yay Vaxtı", "ADT": "Atlantik Yay Vaxtı", "AKST": "Alyaska Standart Vaxtı", "GYT": "Qayana Vaxtı", "HNCU": "Kuba Standart Vaxtı", "AWDT": "Qərbi Avstraliya Yay Vaxtı", "IST": "Hindistan Vaxtı", "LHDT": "Lord Hau Yay vaxtı", "HEOG": "Qərbi Qrenlandiya Yay Vaxtı", "AEST": "Şərqi Avstraliya Standart Vaxtı", "AEDT": "Şərqi Avstraliya Yay Vaxtı", "WAST": "Qərbi Afrika Yay Vaxtı", "ACST": "Mərkəzi Avstraliya Standart Vaxtı", "HNPMX": "Meksika Sakit Okean Standart Vaxtı", "WART": "Qərbi Argentina Standart Vaxtı", "AKDT": "Alyaska Yay Vaxtı", "MYT": "Malayziya Vaxtı", "UYST": "Uruqvay Yay Vaxtı", "HNPM": "San Pier və Mikelon Standart Vaxtı", "AWST": "Qərbi Avstraliya Standart Vaxtı", "NZDT": "Yeni Zelandiya Yay Vaxtı", "CLST": "Çili Yay Vaxtı", "ARST": "Argentina Yay Vaxtı", "HNNOMX": "Şimal-Qərbi Meksika Standart Vaxtı", "WITA": "Mərkəzi İndoneziya Vaxtı", "JDT": "Yaponiya Yay Vaxtı", "WESZ": "Qərbi Avropa Yay Vaxtı"},
}
}
diff --git a/az_Latn/az_Latn.go b/az_Latn/az_Latn.go
index aece59c7..754c353d 100644
--- a/az_Latn/az_Latn.go
+++ b/az_Latn/az_Latn.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"e.ə.", "y.e."},
erasNarrow: []string{"", ""},
erasWide: []string{"eramızdan əvvəl", "yeni era"},
- timezones: map[string]string{"GYT": "Qayana Vaxtı", "UYST": "Uruqvay Yay Vaxtı", "WIT": "Şərqi İndoneziya Vaxtı", "NZDT": "Yeni Zelandiya Yay Vaxtı", "ACDT": "Mərkəzi Avstraliya Yay Vaxtı", "HKST": "Honq Konq Yay Vaxtı", "CLT": "Çili Standart Vaxtı", "ChST": "Çamorro Vaxtı", "HEEG": "Şərqi Qrenlandiya Yay Vaxtı", "ACST": "Mərkəzi Avstraliya Standart Vaxtı", "HENOMX": "Şimal-Qərbi Meksika Yay Vaxtı", "WIB": "Qərbi İndoneziya Vaxtı", "LHST": "Lord Hau Standart Vaxtı", "CHAST": "Çatham Standart Vaxtı", "JST": "Yaponiya Standart Vaxtı", "HEPMX": "Meksika Sakit Okean Yay Vaxtı", "OESZ": "Şərqi Avropa Yay Vaxtı", "HNCU": "Kuba Standart Vaxtı", "BT": "Butan Vaxtı", "IST": "Hindistan Vaxtı", "CLST": "Çili Yay Vaxtı", "HNEG": "Şərqi Qrenlandiya Standart Vaxtı", "WARST": "Qərbi Argentina Yay Vaxtı", "EDT": "Şimali Şərqi Amerika Yay Vaxtı", "TMT": "Türkmənistan Standart Vaxtı", "TMST": "Türkmənistan Yay Vaxtı", "EST": "Şimali Şərqi Amerika Standart Vaxtı", "AKST": "Alyaska Standart Vaxtı", "MYT": "Malayziya Vaxtı", "ACWDT": "Mərkəzi Qərbi Avstraliya Yay Vaxtı", "HEOG": "Qərbi Qrenlandiya Yay Vaxtı", "HEPM": "San Pier və Mikelon Yay Vaxtı", "WAT": "Qərbi Afrika Standart Vaxtı", "HECU": "Kuba Yay Vaxtı", "HNPMX": "Meksika Sakit Okean Standart Vaxtı", "AKDT": "Alyaska Yay Vaxtı", "CDT": "Şimali Mərkəzi Amerika Yay Vaxtı", "ACWST": "Mərkəzi Qərbi Avstraliya Standart Vaxtı", "AEST": "Şərqi Avstraliya Standart Vaxtı", "SAST": "Cənubi Afrika Vaxtı", "GFT": "Fransız Qvianası Vaxtı", "OEZ": "Şərqi Avropa Standart Vaxtı", "COST": "Kolumbiya Yay Vaxtı", "MST": "MST", "ADT": "Atlantik Yay Vaxtı", "AEDT": "Şərqi Avstraliya Yay Vaxtı", "MESZ": "Mərkəzi Avropa Yay Vaxtı", "NZST": "Yeni Zelandiya Standart Vaxtı", "EAT": "Şərqi Afrika Vaxtı", "HNNOMX": "Şimal-Qərbi Meksika Standart Vaxtı", "WESZ": "Qərbi Avropa Yay Vaxtı", "ART": "Argentina Standart Vaxtı", "ARST": "Argentina Yay Vaxtı", "HNOG": "Qərbi Qrenlandiya Standart Vaxtı", "AWST": "Qərbi Avstraliya Standart Vaxtı", "GMT": "Qrinviç Orta Vaxtı", "CST": "Şimali Mərkəzi Amerika Standart Vaxtı", "HAST": "Havay-Aleut Standart Vaxtı", "MEZ": "Mərkəzi Avropa Standart Vaxtı", "CAT": "Mərkəzi Afrika Vaxtı", "WAST": "Qərbi Afrika Yay Vaxtı", "SGT": "Sinqapur Vaxtı", "AST": "Atlantik Standart Vaxt", "SRT": "Surinam Vaxtı", "WEZ": "Qərbi Avropa Standart Vaxtı", "HNT": "Nyufaundlend Standart Vaxtı", "AWDT": "Qərbi Avstraliya Yay Vaxtı", "JDT": "Yaponiya Yay Vaxtı", "WART": "Qərbi Argentina Standart Vaxtı", "UYT": "Uruqvay Standart Vaxtı", "VET": "Venesuela Vaxtı", "PDT": "Şimali Amerika Sakit Okean Yay Vaxtı", "WITA": "Mərkəzi İndoneziya Vaxtı", "HNPM": "San Pier və Mikelon Standart Vaxtı", "CHADT": "Çatham Yay Vaxtı", "COT": "Kolumbiya Standart Vaxtı", "HAT": "Nyufaundlend Yay Vaxtı", "HKT": "Honq Konq Standart Vaxtı", "BOT": "Boliviya Vaxtı", "∅∅∅": "Azor Yay Vaxtı", "MDT": "MDT", "HADT": "Havay-Aleut Yay Vaxtı", "PST": "Şimali Amerika Sakit Okean Standart Vaxtı", "LHDT": "Lord Hau Yay vaxtı", "ECT": "Ekvador Vaxtı"},
+ timezones: map[string]string{"MDT": "Şimali Dağlıq Amerika Yay Vaxtı", "HKT": "Honq Konq Standart Vaxtı", "HAT": "Nyufaundlend Yay Vaxtı", "LHDT": "Lord Hau Yay vaxtı", "IST": "Hindistan Vaxtı", "ACWDT": "Mərkəzi Qərbi Avstraliya Yay Vaxtı", "WARST": "Qərbi Argentina Yay Vaxtı", "ART": "Argentina Standart Vaxtı", "WITA": "Mərkəzi İndoneziya Vaxtı", "AKDT": "Alyaska Yay Vaxtı", "HECU": "Kuba Yay Vaxtı", "EDT": "Şimali Şərqi Amerika Yay Vaxtı", "HNPM": "San Pier və Mikelon Standart Vaxtı", "WIT": "Şərqi İndoneziya Vaxtı", "SGT": "Sinqapur Vaxtı", "HAST": "Havay-Aleut Standart Vaxtı", "MEZ": "Mərkəzi Avropa Standart Vaxtı", "HEOG": "Qərbi Qrenlandiya Yay Vaxtı", "HNNOMX": "Şimal-Qərbi Meksika Standart Vaxtı", "HNT": "Nyufaundlend Standart Vaxtı", "SRT": "Surinam Vaxtı", "GYT": "Qayana Vaxtı", "BOT": "Boliviya Vaxtı", "NZDT": "Yeni Zelandiya Yay Vaxtı", "JST": "Yaponiya Standart Vaxtı", "WEZ": "Qərbi Avropa Standart Vaxtı", "HENOMX": "Şimal-Qərbi Meksika Yay Vaxtı", "ChST": "Çamorro Vaxtı", "ACWST": "Mərkəzi Qərbi Avstraliya Standart Vaxtı", "NZST": "Yeni Zelandiya Standart Vaxtı", "WAT": "Qərbi Afrika Standart Vaxtı", "WAST": "Qərbi Afrika Yay Vaxtı", "HKST": "Honq Konq Yay Vaxtı", "ACST": "Mərkəzi Avstraliya Standart Vaxtı", "AKST": "Alyaska Standart Vaxtı", "CHAST": "Çatham Standart Vaxtı", "PST": "Şimali Amerika Sakit Okean Standart Vaxtı", "AST": "Atlantik Standart Vaxt", "ADT": "Atlantik Yay Vaxtı", "UYT": "Uruqvay Standart Vaxtı", "EST": "Şimali Şərqi Amerika Standart Vaxtı", "LHST": "Lord Hau Standart Vaxtı", "CST": "Şimali Mərkəzi Amerika Standart Vaxtı", "GMT": "Qrinviç Orta Vaxtı", "MYT": "Malayziya Vaxtı", "TMT": "Türkmənistan Standart Vaxtı", "UYST": "Uruqvay Yay Vaxtı", "MST": "Şimali Dağlıq Amerika Standart Vaxtı", "WIB": "Qərbi İndoneziya Vaxtı", "MESZ": "Mərkəzi Avropa Yay Vaxtı", "HNEG": "Şərqi Qrenlandiya Standart Vaxtı", "EAT": "Şərqi Afrika Vaxtı", "VET": "Venesuela Vaxtı", "CLT": "Çili Standart Vaxtı", "HNOG": "Qərbi Qrenlandiya Standart Vaxtı", "∅∅∅": "∅∅∅", "AEDT": "Şərqi Avstraliya Yay Vaxtı", "HEPM": "San Pier və Mikelon Yay Vaxtı", "AWDT": "Qərbi Avstraliya Yay Vaxtı", "PDT": "Şimali Amerika Sakit Okean Yay Vaxtı", "JDT": "Yaponiya Yay Vaxtı", "CLST": "Çili Yay Vaxtı", "COST": "Kolumbiya Yay Vaxtı", "AEST": "Şərqi Avstraliya Standart Vaxtı", "HEPMX": "Meksika Sakit Okean Yay Vaxtı", "CDT": "Şimali Mərkəzi Amerika Yay Vaxtı", "CAT": "Mərkəzi Afrika Vaxtı", "OESZ": "Şərqi Avropa Yay Vaxtı", "GFT": "Fransız Qvianası Vaxtı", "SAST": "Cənubi Afrika Vaxtı", "HNPMX": "Meksika Sakit Okean Standart Vaxtı", "HADT": "Havay-Aleut Yay Vaxtı", "ECT": "Ekvador Vaxtı", "OEZ": "Şərqi Avropa Standart Vaxtı", "WESZ": "Qərbi Avropa Yay Vaxtı", "WART": "Qərbi Argentina Standart Vaxtı", "BT": "Butan Vaxtı", "ARST": "Argentina Yay Vaxtı", "ACDT": "Mərkəzi Avstraliya Yay Vaxtı", "TMST": "Türkmənistan Yay Vaxtı", "HNCU": "Kuba Standart Vaxtı", "AWST": "Qərbi Avstraliya Standart Vaxtı", "CHADT": "Çatham Yay Vaxtı", "COT": "Kolumbiya Standart Vaxtı", "HEEG": "Şərqi Qrenlandiya Yay Vaxtı"},
}
}
diff --git a/az_Latn_AZ/az_Latn_AZ.go b/az_Latn_AZ/az_Latn_AZ.go
index e892d876..73582413 100644
--- a/az_Latn_AZ/az_Latn_AZ.go
+++ b/az_Latn_AZ/az_Latn_AZ.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"e.ə.", "y.e."},
erasNarrow: []string{"", ""},
erasWide: []string{"eramızdan əvvəl", "yeni era"},
- timezones: map[string]string{"JDT": "Yaponiya Yay Vaxtı", "WIT": "Şərqi İndoneziya Vaxtı", "AEST": "Şərqi Avstraliya Standart Vaxtı", "CHAST": "Çatham Standart Vaxtı", "SAST": "Cənubi Afrika Vaxtı", "CLST": "Çili Yay Vaxtı", "COST": "Kolumbiya Yay Vaxtı", "UYT": "Uruqvay Standart Vaxtı", "AST": "Atlantik Standart Vaxt", "GFT": "Fransız Qvianası Vaxtı", "EST": "Şimali Şərqi Amerika Standart Vaxtı", "ACWDT": "Mərkəzi Qərbi Avstraliya Yay Vaxtı", "HEOG": "Qərbi Qrenlandiya Yay Vaxtı", "HNT": "Nyufaundlend Standart Vaxtı", "CLT": "Çili Standart Vaxtı", "ACST": "Mərkəzi Avstraliya Standart Vaxtı", "WARST": "Qərbi Argentina Yay Vaxtı", "HEPMX": "Meksika Sakit Okean Yay Vaxtı", "ADT": "Atlantik Yay Vaxtı", "MYT": "Malayziya Vaxtı", "BOT": "Boliviya Vaxtı", "VET": "Venesuela Vaxtı", "AWDT": "Qərbi Avstraliya Yay Vaxtı", "BT": "Butan Vaxtı", "ARST": "Argentina Yay Vaxtı", "CAT": "Mərkəzi Afrika Vaxtı", "COT": "Kolumbiya Standart Vaxtı", "HNCU": "Kuba Standart Vaxtı", "HNPMX": "Meksika Sakit Okean Standart Vaxtı", "AKST": "Alyaska Standart Vaxtı", "WIB": "Qərbi İndoneziya Vaxtı", "ChST": "Çamorro Vaxtı", "WAST": "Qərbi Afrika Yay Vaxtı", "OEZ": "Şərqi Avropa Standart Vaxtı", "UYST": "Uruqvay Yay Vaxtı", "NZST": "Yeni Zelandiya Standart Vaxtı", "SRT": "Surinam Vaxtı", "HNNOMX": "Şimal-Qərbi Meksika Standart Vaxtı", "SGT": "Sinqapur Vaxtı", "HECU": "Kuba Yay Vaxtı", "EDT": "Şimali Şərqi Amerika Yay Vaxtı", "MST": "MST", "HADT": "Havay-Aleut Yay Vaxtı", "MEZ": "Mərkəzi Avropa Standart Vaxtı", "IST": "Hindistan Vaxtı", "TMT": "Türkmənistan Standart Vaxtı", "OESZ": "Şərqi Avropa Yay Vaxtı", "ACWST": "Mərkəzi Qərbi Avstraliya Standart Vaxtı", "WITA": "Mərkəzi İndoneziya Vaxtı", "HEPM": "San Pier və Mikelon Yay Vaxtı", "∅∅∅": "Amazon Yay Vaxtı", "ART": "Argentina Standart Vaxtı", "LHST": "Lord Hau Standart Vaxtı", "CDT": "Şimali Mərkəzi Amerika Yay Vaxtı", "WESZ": "Qərbi Avropa Yay Vaxtı", "HKT": "Honq Konq Standart Vaxtı", "MESZ": "Mərkəzi Avropa Yay Vaxtı", "CHADT": "Çatham Yay Vaxtı", "AWST": "Qərbi Avstraliya Standart Vaxtı", "WAT": "Qərbi Afrika Standart Vaxtı", "WART": "Qərbi Argentina Standart Vaxtı", "HENOMX": "Şimal-Qərbi Meksika Yay Vaxtı", "AKDT": "Alyaska Yay Vaxtı", "GYT": "Qayana Vaxtı", "PST": "Şimali Amerika Sakit Okean Standart Vaxtı", "JST": "Yaponiya Standart Vaxtı", "HNEG": "Şərqi Qrenlandiya Standart Vaxtı", "TMST": "Türkmənistan Yay Vaxtı", "WEZ": "Qərbi Avropa Standart Vaxtı", "AEDT": "Şərqi Avstraliya Yay Vaxtı", "HEEG": "Şərqi Qrenlandiya Yay Vaxtı", "EAT": "Şərqi Afrika Vaxtı", "HAST": "Havay-Aleut Standart Vaxtı", "PDT": "Şimali Amerika Sakit Okean Yay Vaxtı", "LHDT": "Lord Hau Yay vaxtı", "NZDT": "Yeni Zelandiya Yay Vaxtı", "ACDT": "Mərkəzi Avstraliya Yay Vaxtı", "ECT": "Ekvador Vaxtı", "HAT": "Nyufaundlend Yay Vaxtı", "HNOG": "Qərbi Qrenlandiya Standart Vaxtı", "HKST": "Honq Konq Yay Vaxtı", "HNPM": "San Pier və Mikelon Standart Vaxtı", "GMT": "Qrinviç Orta Vaxtı", "MDT": "MDT", "CST": "Şimali Mərkəzi Amerika Standart Vaxtı"},
+ timezones: map[string]string{"GFT": "Fransız Qvianası Vaxtı", "PST": "Şimali Amerika Sakit Okean Standart Vaxtı", "CAT": "Mərkəzi Afrika Vaxtı", "EST": "Şimali Şərqi Amerika Standart Vaxtı", "ChST": "Çamorro Vaxtı", "CDT": "Şimali Mərkəzi Amerika Yay Vaxtı", "OESZ": "Şərqi Avropa Yay Vaxtı", "COST": "Kolumbiya Yay Vaxtı", "MDT": "Şimali Dağlıq Amerika Yay Vaxtı", "HAST": "Havay-Aleut Standart Vaxtı", "CLST": "Çili Yay Vaxtı", "TMT": "Türkmənistan Standart Vaxtı", "WAT": "Qərbi Afrika Standart Vaxtı", "HKT": "Honq Konq Standart Vaxtı", "ACDT": "Mərkəzi Avstraliya Yay Vaxtı", "SRT": "Surinam Vaxtı", "ECT": "Ekvador Vaxtı", "WESZ": "Qərbi Avropa Yay Vaxtı", "AEST": "Şərqi Avstraliya Standart Vaxtı", "JST": "Yaponiya Standart Vaxtı", "WAST": "Qərbi Afrika Yay Vaxtı", "HAT": "Nyufaundlend Yay Vaxtı", "HNPM": "San Pier və Mikelon Standart Vaxtı", "IST": "Hindistan Vaxtı", "VET": "Venesuela Vaxtı", "AST": "Atlantik Standart Vaxt", "BT": "Butan Vaxtı", "∅∅∅": "∅∅∅", "WIT": "Şərqi İndoneziya Vaxtı", "AWDT": "Qərbi Avstraliya Yay Vaxtı", "MYT": "Malayziya Vaxtı", "COT": "Kolumbiya Standart Vaxtı", "SAST": "Cənubi Afrika Vaxtı", "LHDT": "Lord Hau Yay vaxtı", "HNPMX": "Meksika Sakit Okean Standart Vaxtı", "JDT": "Yaponiya Yay Vaxtı", "HENOMX": "Şimal-Qərbi Meksika Yay Vaxtı", "UYT": "Uruqvay Standart Vaxtı", "UYST": "Uruqvay Yay Vaxtı", "LHST": "Lord Hau Standart Vaxtı", "SGT": "Sinqapur Vaxtı", "NZST": "Yeni Zelandiya Standart Vaxtı", "HEOG": "Qərbi Qrenlandiya Yay Vaxtı", "GMT": "Qrinviç Orta Vaxtı", "HNNOMX": "Şimal-Qərbi Meksika Standart Vaxtı", "AWST": "Qərbi Avstraliya Standart Vaxtı", "NZDT": "Yeni Zelandiya Yay Vaxtı", "MESZ": "Mərkəzi Avropa Yay Vaxtı", "ADT": "Atlantik Yay Vaxtı", "OEZ": "Şərqi Avropa Standart Vaxtı", "CLT": "Çili Standart Vaxtı", "ACST": "Mərkəzi Avstraliya Standart Vaxtı", "ART": "Argentina Standart Vaxtı", "AKST": "Alyaska Standart Vaxtı", "HEPM": "San Pier və Mikelon Yay Vaxtı", "HECU": "Kuba Yay Vaxtı", "CHAST": "Çatham Standart Vaxtı", "PDT": "Şimali Amerika Sakit Okean Yay Vaxtı", "ACWDT": "Mərkəzi Qərbi Avstraliya Yay Vaxtı", "WEZ": "Qərbi Avropa Standart Vaxtı", "HNT": "Nyufaundlend Standart Vaxtı", "AKDT": "Alyaska Yay Vaxtı", "GYT": "Qayana Vaxtı", "WIB": "Qərbi İndoneziya Vaxtı", "WARST": "Qərbi Argentina Yay Vaxtı", "EDT": "Şimali Şərqi Amerika Yay Vaxtı", "HNEG": "Şərqi Qrenlandiya Standart Vaxtı", "AEDT": "Şərqi Avstraliya Yay Vaxtı", "HEPMX": "Meksika Sakit Okean Yay Vaxtı", "EAT": "Şərqi Afrika Vaxtı", "HNCU": "Kuba Standart Vaxtı", "MEZ": "Mərkəzi Avropa Standart Vaxtı", "TMST": "Türkmənistan Yay Vaxtı", "HEEG": "Şərqi Qrenlandiya Yay Vaxtı", "WITA": "Mərkəzi İndoneziya Vaxtı", "ACWST": "Mərkəzi Qərbi Avstraliya Standart Vaxtı", "HNOG": "Qərbi Qrenlandiya Standart Vaxtı", "WART": "Qərbi Argentina Standart Vaxtı", "HKST": "Honq Konq Yay Vaxtı", "MST": "Şimali Dağlıq Amerika Standart Vaxtı", "CST": "Şimali Mərkəzi Amerika Standart Vaxtı", "CHADT": "Çatham Yay Vaxtı", "BOT": "Boliviya Vaxtı", "HADT": "Havay-Aleut Yay Vaxtı", "ARST": "Argentina Yay Vaxtı"},
}
}
@@ -112,9 +112,9 @@ func (az *az_Latn_AZ) OrdinalPluralRule(num float64, v uint64) locales.PluralRul
n := math.Abs(num)
i := int64(n)
- iMod1000 := i % 1000
iMod10 := i % 10
iMod100 := i % 100
+ iMod1000 := i % 1000
if (iMod10 == 1 || iMod10 == 2 || iMod10 == 5 || iMod10 == 7 || iMod10 == 8) || (iMod100 == 20 || iMod100 == 50 || iMod100 == 70 || iMod100 == 80) {
return locales.PluralRuleOne
diff --git a/bas/bas.go b/bas/bas.go
index 7e9dd519..c92fd9c2 100644
--- a/bas/bas.go
+++ b/bas/bas.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"b.Y.K", "m.Y.K"},
erasNarrow: []string{"", ""},
erasWide: []string{"bisū bi Yesù Krǐstò", "i mbūs Yesù Krǐstò"},
- timezones: map[string]string{"MESZ": "MESZ", "SAST": "SAST", "WARST": "WARST", "VET": "VET", "NZDT": "NZDT", "JDT": "JDT", "ACST": "ACST", "WAT": "WAT", "HECU": "HECU", "HNPMX": "HNPMX", "HKST": "HKST", "AST": "AST", "EST": "EST", "MST": "MST", "ART": "ART", "HNT": "HNT", "HKT": "HKT", "CHADT": "CHADT", "COST": "COST", "HENOMX": "HENOMX", "CST": "CST", "MEZ": "MEZ", "JST": "JST", "CLST": "CLST", "GMT": "GMT", "SRT": "SRT", "HNOG": "HNOG", "HAT": "HAT", "AWST": "AWST", "WITA": "WITA", "HEPM": "HEPM", "GYT": "GYT", "HADT": "HADT", "HEOG": "HEOG", "AKST": "AKST", "AEST": "AEST", "CHAST": "CHAST", "CLT": "CLT", "∅∅∅": "∅∅∅", "WAST": "WAST", "UYST": "UYST", "HAST": "HAST", "ACWST": "ACWST", "AEDT": "AEDT", "LHST": "LHST", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "BT": "BT", "ARST": "ARST", "ChST": "ChST", "ECT": "ECT", "WESZ": "WESZ", "AWDT": "AWDT", "BOT": "BOT", "NZST": "NZST", "GFT": "GFT", "OEZ": "OEZ", "MYT": "MYT", "UYT": "UYT", "MDT": "MDT", "WIB": "WIB", "HNPM": "HNPM", "HNEG": "HNEG", "OESZ": "OESZ", "SGT": "SGT", "EDT": "EDT", "WIT": "WIT", "PST": "PST", "IST": "IST", "WART": "WART", "CDT": "CDT", "TMT": "TMT", "HEEG": "HEEG", "EAT": "EAT", "COT": "COT", "PDT": "PDT", "WEZ": "WEZ", "ACWDT": "ACWDT", "LHDT": "LHDT", "TMST": "TMST", "ACDT": "ACDT", "CAT": "CAT", "HNCU": "HNCU", "ADT": "ADT", "AKDT": "AKDT"},
+ timezones: map[string]string{"EDT": "EDT", "HEPMX": "HEPMX", "HNCU": "HNCU", "CHADT": "CHADT", "SGT": "SGT", "HADT": "HADT", "ADT": "ADT", "ACST": "ACST", "SAST": "SAST", "WEZ": "WEZ", "WAT": "WAT", "HKST": "HKST", "HNT": "HNT", "HNEG": "HNEG", "ChST": "ChST", "SRT": "SRT", "WIB": "WIB", "AWST": "AWST", "MST": "MST", "COST": "COST", "WITA": "WITA", "AKDT": "AKDT", "CST": "CST", "PDT": "PDT", "CAT": "CAT", "MYT": "MYT", "CLT": "CLT", "OEZ": "OEZ", "CHAST": "CHAST", "IST": "IST", "JST": "JST", "TMST": "TMST", "ART": "ART", "HENOMX": "HENOMX", "UYST": "UYST", "WARST": "WARST", "LHST": "LHST", "LHDT": "LHDT", "HNPMX": "HNPMX", "GYT": "GYT", "PST": "PST", "NZDT": "NZDT", "MESZ": "MESZ", "MDT": "MDT", "ARST": "ARST", "COT": "COT", "AEST": "AEST", "CDT": "CDT", "WIT": "WIT", "AWDT": "AWDT", "HKT": "HKT", "WESZ": "WESZ", "UYT": "UYT", "BOT": "BOT", "ECT": "ECT", "JDT": "JDT", "BT": "BT", "HEEG": "HEEG", "VET": "VET", "WART": "WART", "HAT": "HAT", "GFT": "GFT", "AKST": "AKST", "ACWST": "ACWST", "NZST": "NZST", "MEZ": "MEZ", "HNOG": "HNOG", "HEOG": "HEOG", "GMT": "GMT", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "∅∅∅": "∅∅∅", "EAT": "EAT", "AST": "AST", "WAST": "WAST", "ACDT": "ACDT", "AEDT": "AEDT", "HNPM": "HNPM", "HECU": "HECU", "HAST": "HAST", "ACWDT": "ACWDT", "CLST": "CLST", "OESZ": "OESZ", "TMT": "TMT", "EST": "EST"},
}
}
diff --git a/bas_CM/bas_CM.go b/bas_CM/bas_CM.go
index 89bed661..f405345c 100644
--- a/bas_CM/bas_CM.go
+++ b/bas_CM/bas_CM.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"b.Y.K", "m.Y.K"},
erasNarrow: []string{"", ""},
erasWide: []string{"bisū bi Yesù Krǐstò", "i mbūs Yesù Krǐstò"},
- timezones: map[string]string{"SGT": "SGT", "MST": "MST", "HNT": "HNT", "HKT": "HKT", "WITA": "WITA", "ChST": "ChST", "HEEG": "HEEG", "ECT": "ECT", "CST": "CST", "EST": "EST", "BT": "BT", "HEPM": "HEPM", "NZST": "NZST", "MEZ": "MEZ", "WAST": "WAST", "COST": "COST", "UYST": "UYST", "AKST": "AKST", "ADT": "ADT", "PDT": "PDT", "ACWDT": "ACWDT", "HAT": "HAT", "SAST": "SAST", "TMT": "TMT", "WART": "WART", "HNPMX": "HNPMX", "AWST": "AWST", "AWDT": "AWDT", "HADT": "HADT", "WIT": "WIT", "COT": "COT", "AKDT": "AKDT", "AST": "AST", "HAST": "HAST", "CLST": "CLST", "GYT": "GYT", "VET": "VET", "HNPM": "HNPM", "ACWST": "ACWST", "ARST": "ARST", "MESZ": "MESZ", "CHADT": "CHADT", "CLT": "CLT", "ACDT": "ACDT", "WARST": "WARST", "HECU": "HECU", "ART": "ART", "IST": "IST", "HNNOMX": "HNNOMX", "GMT": "GMT", "WEZ": "WEZ", "HEPMX": "HEPMX", "WIB": "WIB", "PST": "PST", "WESZ": "WESZ", "JST": "JST", "JDT": "JDT", "ACST": "ACST", "HENOMX": "HENOMX", "HEOG": "HEOG", "GFT": "GFT", "TMST": "TMST", "AEST": "AEST", "BOT": "BOT", "WAT": "WAT", "OESZ": "OESZ", "LHDT": "LHDT", "HNOG": "HNOG", "CHAST": "CHAST", "OEZ": "OEZ", "EDT": "EDT", "CDT": "CDT", "SRT": "SRT", "HNEG": "HNEG", "EAT": "EAT", "AEDT": "AEDT", "NZDT": "NZDT", "∅∅∅": "∅∅∅", "CAT": "CAT", "MYT": "MYT", "UYT": "UYT", "HNCU": "HNCU", "MDT": "MDT", "HKST": "HKST", "LHST": "LHST"},
+ timezones: map[string]string{"HNT": "HNT", "UYT": "UYT", "HEPMX": "HEPMX", "SRT": "SRT", "AWDT": "AWDT", "HAST": "HAST", "NZDT": "NZDT", "WITA": "WITA", "WIT": "WIT", "ACWST": "ACWST", "OEZ": "OEZ", "HNOG": "HNOG", "COT": "COT", "AKST": "AKST", "AEST": "AEST", "MDT": "MDT", "CAT": "CAT", "ACWDT": "ACWDT", "MESZ": "MESZ", "ACST": "ACST", "HAT": "HAT", "CHAST": "CHAST", "PDT": "PDT", "IST": "IST", "CLST": "CLST", "HEEG": "HEEG", "AEDT": "AEDT", "PST": "PST", "WAT": "WAT", "MEZ": "MEZ", "GMT": "GMT", "TMT": "TMT", "WAST": "WAST", "HKT": "HKT", "HENOMX": "HENOMX", "EAT": "EAT", "ADT": "ADT", "CLT": "CLT", "COST": "COST", "BT": "BT", "AKDT": "AKDT", "JST": "JST", "GFT": "GFT", "CDT": "CDT", "HADT": "HADT", "VET": "VET", "OESZ": "OESZ", "WART": "WART", "HKST": "HKST", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "∅∅∅": "∅∅∅", "UYST": "UYST", "LHST": "LHST", "AWST": "AWST", "SGT": "SGT", "AST": "AST", "WESZ": "WESZ", "MST": "MST", "ChST": "ChST", "WIB": "WIB", "ECT": "ECT", "WARST": "WARST", "ARST": "ARST", "EST": "EST", "HNPMX": "HNPMX", "BOT": "BOT", "NZST": "NZST", "JDT": "JDT", "WEZ": "WEZ", "MYT": "MYT", "HNPM": "HNPM", "HEPM": "HEPM", "GYT": "GYT", "HECU": "HECU", "ART": "ART", "HNEG": "HNEG", "SAST": "SAST", "LHDT": "LHDT", "CHADT": "CHADT", "TMST": "TMST", "EDT": "EDT", "HNCU": "HNCU", "CST": "CST", "HEOG": "HEOG"},
}
}
diff --git a/be/be.go b/be/be.go
index b1bcad1e..284c8bcd 100644
--- a/be/be.go
+++ b/be/be.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"да н.э.", "н.э."},
erasNarrow: []string{"", ""},
erasWide: []string{"да нараджэння Хрыстова", "ад нараджэння Хрыстова"},
- timezones: map[string]string{"MST": "MST", "UYST": "Уругвайскі летні час", "CHAST": "Стандартны час Чатэма", "CLST": "Чылійскі летні час", "ChST": "Час Чамора", "HEOG": "Летні час Заходняй Грэнландыі", "GMT": "Час па Грынвічы", "UYT": "Уругвайскі стандартны час", "HNT": "Ньюфаўндлендскі стандартны час", "HKT": "Стандартны час Ганконга", "LHDT": "Летні час Лорд-Хау", "TMT": "Стандартны час Туркменістана", "TMST": "Летні час Туркменістана", "WART": "Стандартны час Заходняй Аргенціны", "CDT": "Паўночнаамерыканскі цэнтральны летні час", "IST": "Час Індыі", "OEZ": "Усходнееўрапейскі стандартны час", "GYT": "Час Гаяны", "ADT": "Атлантычны летні час", "WEZ": "Заходнееўрапейскі стандартны час", "AWST": "Стандартны час заходняй Аўстраліі", "ACDT": "Летні час цэнтральнай Аўстраліі", "HENOMX": "Паўночна-заходні мексіканскі летні час", "HNPMX": "Мексіканскі ціхаакіянскі стандатны час", "ACWDT": "Заходні летні час Цэнтральнай Аўстраліі", "CLT": "Чылійскі стандартны час", "OESZ": "Усходнееўрапейскі летні час", "BT": "Час Бутана", "SRT": "Час Сурынама", "AEST": "Стандартны час усходняй Аўстраліі", "HKST": "Летні час Ганконга", "∅∅∅": "Амазонскі летні час", "ECT": "Эквадорскі час", "EDT": "Паўночнаамерыканскі ўсходні летні час", "ARST": "Аргенцінскі летні час", "MESZ": "Цэнтральнаеўрапейскі летні час", "HEEG": "Летні час Усходняй Грэнландыі", "SGT": "Сінгапурскі час", "ART": "Аргенцінскі стандартны час", "AKST": "Стандартны час Аляскі", "NZST": "Стандартны час Новай Зеландыі", "CHADT": "Летні час Чатэма", "GFT": "Час Французскай Гвіяны", "HEPMX": "Мексіканскі ціхаакіянскі летні час", "CAT": "Цэнтральнаафрыканскі час", "EAT": "Усходнеафрыканскі час", "AKDT": "Летні час Аляскі", "AST": "Атлантычны стандартны час", "WIT": "Усходнеінданезійскі час", "HNOG": "Стандартны час Заходняй Грэнландыі", "JDT": "Летні час Японіі", "BOT": "Балівійскі час", "PST": "Ціхаакіянскі стандартны час", "WESZ": "Заходнееўрапейскі летні час", "MYT": "Час Малайзіі", "ACWST": "Заходні стандартны час Цэнтральнай Аўстраліі", "COT": "Калумбійскі стандартны час", "EST": "Паўночнаамерыканскі ўсходні стандартны час", "HECU": "Летні час Кубы", "CST": "Паўночнаамерыканскі цэнтральны стандартны час", "AEDT": "Летні час усходняй Аўстраліі", "HNPM": "Стандартны час Сен-П’ер і Мікелон", "SAST": "Паўднёваафрыканскі час", "WAST": "Заходнеафрыканскі летні час", "HAST": "Гавайска-Алеуцкі стандартны час", "HADT": "Гавайска-Алеуцкі летні час", "AWDT": "Летні час заходняй Аўстраліі", "HEPM": "Стандартны летні час Сен-П’ер і Мікелон", "JST": "Стандартны час Японіі", "ACST": "Стандартны час цэнтральнай Аўстраліі", "WARST": "Летні час Заходняй Аргенціны", "COST": "Калумбійскі летні час", "HNCU": "Стандартны час Кубы", "HAT": "Ньюфаўндлендскі летні час", "WITA": "Цэнтральнаінданезійскі час", "MEZ": "Цэнтральнаеўрапейскі стандартны час", "HNEG": "Стандартны час Усходняй Грэнландыі", "WAT": "Заходнеафрыканскі стандартны час", "WIB": "Заходнеінданезійскі час", "VET": "Венесуэльскі час", "PDT": "Ціхаакіянскі летні час", "LHST": "Стандартны час Лорд-Хау", "NZDT": "Летні час Новай Зеландыі", "HNNOMX": "Паўночна-заходні мексіканскі стандартны час", "MDT": "MDT"},
+ timezones: map[string]string{"WAST": "Заходнеафрыканскі летні час", "WIT": "Усходнеінданезійскі час", "HAST": "Гавайска-Алеуцкі стандартны час", "MEZ": "Цэнтральнаеўрапейскі стандартны час", "MESZ": "Цэнтральнаеўрапейскі летні час", "VET": "Венесуэльскі час", "WESZ": "Заходнееўрапейскі летні час", "ARST": "Аргенцінскі летні час", "AKDT": "Летні час Аляскі", "HNCU": "Стандартны час Кубы", "HADT": "Гавайска-Алеуцкі летні час", "HNEG": "Стандартны час Усходняй Грэнландыі", "HEPMX": "Мексіканскі ціхаакіянскі летні час", "IST": "Час Індыі", "OESZ": "Усходнееўрапейскі летні час", "GMT": "Час па Грынвічы", "MYT": "Час Малайзіі", "ACDT": "Летні час цэнтральнай Аўстраліі", "HAT": "Ньюфаўндлендскі летні час", "AWST": "Стандартны час заходняй Аўстраліі", "CHADT": "Летні час Чатэма", "CAT": "Цэнтральнаафрыканскі час", "WART": "Стандартны час Заходняй Аргенціны", "COT": "Калумбійскі стандартны час", "HEEG": "Летні час Усходняй Грэнландыі", "HECU": "Летні час Кубы", "CDT": "Паўночнаамерыканскі цэнтральны летні час", "ACWST": "Заходні стандартны час Цэнтральнай Аўстраліі", "CLST": "Чылійскі летні час", "HNOG": "Стандартны час Заходняй Грэнландыі", "ACST": "Стандартны час цэнтральнай Аўстраліі", "PDT": "Ціхаакіянскі летні час", "ACWDT": "Заходні летні час Цэнтральнай Аўстраліі", "EDT": "Паўночнаамерыканскі ўсходні летні час", "HKT": "Стандартны час Ганконга", "HNT": "Ньюфаўндлендскі стандартны час", "LHDT": "Летні час Лорд-Хау", "AST": "Атлантычны стандартны час", "BT": "Час Бутана", "SRT": "Час Сурынама", "CST": "Паўночнаамерыканскі цэнтральны стандартны час", "CHAST": "Стандартны час Чатэма", "WARST": "Летні час Заходняй Аргенціны", "ADT": "Атлантычны летні час", "WEZ": "Заходнееўрапейскі стандартны час", "TMT": "Стандартны час Туркменістана", "MDT": "MDT", "HKST": "Летні час Ганконга", "HNNOMX": "Паўночна-заходні мексіканскі стандартны час", "AEDT": "Летні час усходняй Аўстраліі", "EAT": "Усходнеафрыканскі час", "PST": "Ціхаакіянскі стандартны час", "TMST": "Летні час Туркменістана", "MST": "MST", "WAT": "Заходнеафрыканскі стандартны час", "COST": "Калумбійскі летні час", "∅∅∅": "Перуанскі летні час", "HEPM": "Стандартны летні час Сен-П’ер і Мікелон", "LHST": "Стандартны час Лорд-Хау", "BOT": "Балівійскі час", "EST": "Паўночнаамерыканскі ўсходні стандартны час", "GFT": "Час Французскай Гвіяны", "WITA": "Цэнтральнаінданезійскі час", "AKST": "Стандартны час Аляскі", "HNPM": "Стандартны час Сен-П’ер і Мікелон", "HEOG": "Летні час Заходняй Грэнландыі", "OEZ": "Усходнееўрапейскі стандартны час", "HENOMX": "Паўночна-заходні мексіканскі летні час", "ECT": "Эквадорскі час", "AEST": "Стандартны час усходняй Аўстраліі", "HNPMX": "Мексіканскі ціхаакіянскі стандатны час", "WIB": "Заходнеінданезійскі час", "JDT": "Летні час Японіі", "ART": "Аргенцінскі стандартны час", "ChST": "Час Чамора", "UYT": "Уругвайскі стандартны час", "SAST": "Паўднёваафрыканскі час", "SGT": "Сінгапурскі час", "CLT": "Чылійскі стандартны час", "AWDT": "Летні час заходняй Аўстраліі", "NZST": "Стандартны час Новай Зеландыі", "UYST": "Уругвайскі летні час", "GYT": "Час Гаяны", "NZDT": "Летні час Новай Зеландыі", "JST": "Стандартны час Японіі"},
}
}
@@ -101,8 +101,8 @@ func (be *be) PluralsRange() []locales.PluralRule {
func (be *be) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod100 := math.Mod(n, 100)
nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
@@ -119,8 +119,8 @@ func (be *be) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (be *be) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if (nMod10 == 2 || nMod10 == 3) && (nMod100 != 12 && nMod100 != 13) {
return locales.PluralRuleFew
diff --git a/be_BY/be_BY.go b/be_BY/be_BY.go
index 9405a4c2..382d670f 100644
--- a/be_BY/be_BY.go
+++ b/be_BY/be_BY.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"да н.э.", "н.э."},
erasNarrow: []string{"", ""},
erasWide: []string{"да нараджэння Хрыстова", "ад нараджэння Хрыстова"},
- timezones: map[string]string{"COST": "Калумбійскі летні час", "AKDT": "Летні час Аляскі", "ARST": "Аргенцінскі летні час", "ACST": "Стандартны час цэнтральнай Аўстраліі", "SAST": "Паўднёваафрыканскі час", "EAT": "Усходнеафрыканскі час", "HNPMX": "Мексіканскі ціхаакіянскі стандатны час", "ART": "Аргенцінскі стандартны час", "AWST": "Стандартны час заходняй Аўстраліі", "LHST": "Стандартны час Лорд-Хау", "MEZ": "Цэнтральнаеўрапейскі стандартны час", "JDT": "Летні час Японіі", "HNEG": "Стандартны час Усходняй Грэнландыі", "HENOMX": "Паўночна-заходні мексіканскі летні час", "SGT": "Сінгапурскі час", "ACWST": "Заходні стандартны час Цэнтральнай Аўстраліі", "LHDT": "Летні час Лорд-Хау", "NZDT": "Летні час Новай Зеландыі", "HAT": "Ньюфаўндлендскі летні час", "AWDT": "Летні час заходняй Аўстраліі", "HEPM": "Стандартны летні час Сен-П’ер і Мікелон", "BOT": "Балівійскі час", "HEEG": "Летні час Усходняй Грэнландыі", "CDT": "Паўночнаамерыканскі цэнтральны летні час", "HAST": "Гавайска-Алеуцкі стандартны час", "BT": "Час Бутана", "CAT": "Цэнтральнаафрыканскі час", "WARST": "Летні час Заходняй Аргенціны", "EST": "Паўночнаамерыканскі ўсходні стандартны час", "OESZ": "Усходнееўрапейскі летні час", "GMT": "Час па Грынвічы", "UYST": "Уругвайскі летні час", "PDT": "Ціхаакіянскі летні час", "IST": "Час Індыі", "CHADT": "Летні час Чатэма", "OEZ": "Усходнееўрапейскі стандартны час", "ECT": "Эквадорскі час", "CST": "Паўночнаамерыканскі цэнтральны стандартны час", "WESZ": "Заходнееўрапейскі летні час", "AEDT": "Летні час усходняй Аўстраліі", "WEZ": "Заходнееўрапейскі стандартны час", "HECU": "Летні час Кубы", "HEPMX": "Мексіканскі ціхаакіянскі летні час", "JST": "Стандартны час Японіі", "GFT": "Час Французскай Гвіяны", "ACWDT": "Заходні летні час Цэнтральнай Аўстраліі", "HNT": "Ньюфаўндлендскі стандартны час", "NZST": "Стандартны час Новай Зеландыі", "TMST": "Летні час Туркменістана", "ACDT": "Летні час цэнтральнай Аўстраліі", "HNCU": "Стандартны час Кубы", "MST": "Паўночнаамерыканскі горны стандартны час", "HADT": "Гавайска-Алеуцкі летні час", "∅∅∅": "Амазонскі летні час", "MYT": "Час Малайзіі", "MDT": "Паўночнаамерыканскі горны летні час", "MESZ": "Цэнтральнаеўрапейскі летні час", "TMT": "Стандартны час Туркменістана", "WAT": "Заходнеафрыканскі стандартны час", "UYT": "Уругвайскі стандартны час", "VET": "Венесуэльскі час", "HKST": "Летні час Ганконга", "CHAST": "Стандартны час Чатэма", "WAST": "Заходнеафрыканскі летні час", "PST": "Ціхаакіянскі стандартны час", "WITA": "Цэнтральнаінданезійскі час", "HNPM": "Стандартны час Сен-П’ер і Мікелон", "AEST": "Стандартны час усходняй Аўстраліі", "CLST": "Чылійскі летні час", "ChST": "Час Чамора", "WART": "Стандартны час Заходняй Аргенціны", "GYT": "Час Гаяны", "HEOG": "Летні час Заходняй Грэнландыі", "HKT": "Стандартны час Ганконга", "ADT": "Атлантычны летні час", "HNNOMX": "Паўночна-заходні мексіканскі стандартны час", "EDT": "Паўночнаамерыканскі ўсходні летні час", "HNOG": "Стандартны час Заходняй Грэнландыі", "CLT": "Чылійскі стандартны час", "COT": "Калумбійскі стандартны час", "AKST": "Стандартны час Аляскі", "AST": "Атлантычны стандартны час", "WIT": "Усходнеінданезійскі час", "WIB": "Заходнеінданезійскі час", "SRT": "Час Сурынама"},
+ timezones: map[string]string{"ADT": "Атлантычны летні час", "UYST": "Уругвайскі летні час", "EAT": "Усходнеафрыканскі час", "NZST": "Стандартны час Новай Зеландыі", "CHADT": "Летні час Чатэма", "AST": "Атлантычны стандартны час", "ACST": "Стандартны час цэнтральнай Аўстраліі", "AKDT": "Летні час Аляскі", "WIT": "Усходнеінданезійскі час", "GYT": "Час Гаяны", "HNNOMX": "Паўночна-заходні мексіканскі стандартны час", "HNEG": "Стандартны час Усходняй Грэнландыі", "AKST": "Стандартны час Аляскі", "CLT": "Чылійскі стандартны час", "OESZ": "Усходнееўрапейскі летні час", "HAT": "Ньюфаўндлендскі летні час", "HEPMX": "Мексіканскі ціхаакіянскі летні час", "ECT": "Эквадорскі час", "OEZ": "Усходнееўрапейскі стандартны час", "ARST": "Аргенцінскі летні час", "HECU": "Летні час Кубы", "CAT": "Цэнтральнаафрыканскі час", "ACWDT": "Заходні летні час Цэнтральнай Аўстраліі", "PST": "Ціхаакіянскі стандартны час", "MESZ": "Цэнтральнаеўрапейскі летні час", "VET": "Венесуэльскі час", "HNT": "Ньюфаўндлендскі стандартны час", "LHST": "Стандартны час Лорд-Хау", "CHAST": "Стандартны час Чатэма", "CLST": "Чылійскі летні час", "SAST": "Паўднёваафрыканскі час", "LHDT": "Летні час Лорд-Хау", "JST": "Стандартны час Японіі", "HKST": "Летні час Ганконга", "GFT": "Час Французскай Гвіяны", "HNCU": "Стандартны час Кубы", "WESZ": "Заходнееўрапейскі летні час", "COT": "Калумбійскі стандартны час", "BT": "Час Бутана", "NZDT": "Летні час Новай Зеландыі", "IST": "Час Індыі", "MEZ": "Цэнтральнаеўрапейскі стандартны час", "WARST": "Летні час Заходняй Аргенціны", "EDT": "Паўночнаамерыканскі ўсходні летні час", "HNPMX": "Мексіканскі ціхаакіянскі стандатны час", "WIB": "Заходнеінданезійскі час", "BOT": "Балівійскі час", "UYT": "Уругвайскі стандартны час", "CDT": "Паўночнаамерыканскі цэнтральны летні час", "AWDT": "Летні час заходняй Аўстраліі", "PDT": "Ціхаакіянскі летні час", "JDT": "Летні час Японіі", "COST": "Калумбійскі летні час", "AEST": "Стандартны час усходняй Аўстраліі", "ChST": "Час Чамора", "HNOG": "Стандартны час Заходняй Грэнландыі", "EST": "Паўночнаамерыканскі ўсходні стандартны час", "TMST": "Летні час Туркменістана", "WAT": "Заходнеафрыканскі стандартны час", "AWST": "Стандартны час заходняй Аўстраліі", "SGT": "Сінгапурскі час", "GMT": "Час па Грынвічы", "HEPM": "Стандартны летні час Сен-П’ер і Мікелон", "WART": "Стандартны час Заходняй Аргенціны", "TMT": "Стандартны час Туркменістана", "SRT": "Час Сурынама", "CST": "Паўночнаамерыканскі цэнтральны стандартны час", "HAST": "Гавайска-Алеуцкі стандартны час", "ACWST": "Заходні стандартны час Цэнтральнай Аўстраліі", "HEOG": "Летні час Заходняй Грэнландыі", "HEEG": "Летні час Усходняй Грэнландыі", "MST": "Паўночнаамерыканскі горны стандартны час", "HNPM": "Стандартны час Сен-П’ер і Мікелон", "ART": "Аргенцінскі стандартны час", "HADT": "Гавайска-Алеуцкі летні час", "WAST": "Заходнеафрыканскі летні час", "ACDT": "Летні час цэнтральнай Аўстраліі", "WITA": "Цэнтральнаінданезійскі час", "AEDT": "Летні час усходняй Аўстраліі", "WEZ": "Заходнееўрапейскі стандартны час", "MYT": "Час Малайзіі", "HKT": "Стандартны час Ганконга", "HENOMX": "Паўночна-заходні мексіканскі летні час", "∅∅∅": "Перуанскі летні час", "MDT": "Паўночнаамерыканскі горны летні час"},
}
}
diff --git a/bem/bem.go b/bem/bem.go
index 4cadeaad..eb604a77 100644
--- a/bem/bem.go
+++ b/bem/bem.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Before Yesu", "After Yesu"},
- timezones: map[string]string{"MEZ": "MEZ", "CLT": "CLT", "CLST": "CLST", "HNNOMX": "HNNOMX", "SGT": "SGT", "WIB": "WIB", "∅∅∅": "∅∅∅", "BOT": "BOT", "HNEG": "HNEG", "GFT": "GFT", "HNCU": "HNCU", "AST": "AST", "AKST": "AKST", "HAST": "HAST", "AEST": "AEST", "LHST": "LHST", "OEZ": "OEZ", "COT": "COT", "GMT": "GMT", "UYST": "UYST", "ART": "ART", "CHAST": "CHAST", "CHADT": "CHADT", "JDT": "JDT", "HNOG": "HNOG", "ChST": "ChST", "WART": "WART", "COST": "COST", "HECU": "HECU", "ADT": "ADT", "HADT": "HADT", "WIT": "WIT", "AWST": "AWST", "HEEG": "HEEG", "MDT": "MDT", "HEPMX": "HEPMX", "GYT": "GYT", "BT": "BT", "PDT": "PDT", "HAT": "HAT", "ACDT": "ACDT", "EST": "EST", "EDT": "EDT", "CDT": "CDT", "PST": "PST", "HEOG": "HEOG", "WAST": "WAST", "MST": "MST", "ECT": "ECT", "ACWST": "ACWST", "ACWDT": "ACWDT", "HNT": "HNT", "HNPM": "HNPM", "NZDT": "NZDT", "JST": "JST", "ACST": "ACST", "WESZ": "WESZ", "HKT": "HKT", "TMST": "TMST", "CAT": "CAT", "WARST": "WARST", "UYT": "UYT", "AEDT": "AEDT", "SAST": "SAST", "AKDT": "AKDT", "CST": "CST", "MYT": "MYT", "ARST": "ARST", "MESZ": "MESZ", "EAT": "EAT", "HKST": "HKST", "WITA": "WITA", "NZST": "NZST", "WAT": "WAT", "HNPMX": "HNPMX", "SRT": "SRT", "AWDT": "AWDT", "LHDT": "LHDT", "HENOMX": "HENOMX", "VET": "VET", "TMT": "TMT", "WEZ": "WEZ", "HEPM": "HEPM", "IST": "IST", "OESZ": "OESZ"},
+ timezones: map[string]string{"ADT": "ADT", "TMT": "TMT", "ARST": "ARST", "HENOMX": "HENOMX", "HNCU": "HNCU", "AWST": "AWST", "JST": "JST", "WARST": "WARST", "UYST": "UYST", "LHST": "LHST", "GYT": "GYT", "MYT": "MYT", "CLST": "CLST", "COST": "COST", "HEPM": "HEPM", "HNNOMX": "HNNOMX", "JDT": "JDT", "WESZ": "WESZ", "HNOG": "HNOG", "EDT": "EDT", "AKDT": "AKDT", "SRT": "SRT", "NZDT": "NZDT", "MDT": "MDT", "EST": "EST", "BT": "BT", "AST": "AST", "BOT": "BOT", "CHAST": "CHAST", "VET": "VET", "GMT": "GMT", "ACDT": "ACDT", "EAT": "EAT", "WEZ": "WEZ", "MST": "MST", "HKT": "HKT", "SAST": "SAST", "WIB": "WIB", "ACWDT": "ACWDT", "CAT": "CAT", "ACST": "ACST", "HNT": "HNT", "GFT": "GFT", "LHDT": "LHDT", "HAST": "HAST", "HADT": "HADT", "NZST": "NZST", "OESZ": "OESZ", "AEST": "AEST", "AEDT": "AEDT", "WITA": "WITA", "CDT": "CDT", "PST": "PST", "MEZ": "MEZ", "WART": "WART", "AKST": "AKST", "CHADT": "CHADT", "ACWST": "ACWST", "MESZ": "MESZ", "ART": "ART", "ChST": "ChST", "HECU": "HECU", "SGT": "SGT", "CLT": "CLT", "HEOG": "HEOG", "HKST": "HKST", "∅∅∅": "∅∅∅", "CST": "CST", "WAT": "WAT", "WAST": "WAST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "WIT": "WIT", "ECT": "ECT", "HNEG": "HNEG", "UYT": "UYT", "HAT": "HAT", "HNPM": "HNPM", "PDT": "PDT", "IST": "IST", "OEZ": "OEZ", "COT": "COT", "AWDT": "AWDT", "TMST": "TMST", "HEEG": "HEEG"},
}
}
diff --git a/bem_ZM/bem_ZM.go b/bem_ZM/bem_ZM.go
index 212cd072..e21560c3 100644
--- a/bem_ZM/bem_ZM.go
+++ b/bem_ZM/bem_ZM.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Before Yesu", "After Yesu"},
- timezones: map[string]string{"NZST": "NZST", "GYT": "GYT", "UYST": "UYST", "WIB": "WIB", "AEDT": "AEDT", "WAST": "WAST", "HNOG": "HNOG", "PST": "PST", "ACWDT": "ACWDT", "VET": "VET", "HEOG": "HEOG", "AEST": "AEST", "AWST": "AWST", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "AST": "AST", "PDT": "PDT", "HECU": "HECU", "HAST": "HAST", "HNPM": "HNPM", "MESZ": "MESZ", "LHDT": "LHDT", "HNEG": "HNEG", "ACDT": "ACDT", "OESZ": "OESZ", "TMT": "TMT", "AWDT": "AWDT", "EST": "EST", "MYT": "MYT", "ART": "ART", "CHADT": "CHADT", "CLT": "CLT", "ChST": "ChST", "MEZ": "MEZ", "JDT": "JDT", "GMT": "GMT", "HEPMX": "HEPMX", "WESZ": "WESZ", "HKT": "HKT", "IST": "IST", "TMST": "TMST", "ARST": "ARST", "HEPM": "HEPM", "HNPMX": "HNPMX", "UYT": "UYT", "AKDT": "AKDT", "BT": "BT", "HNT": "HNT", "CAT": "CAT", "EAT": "EAT", "MST": "MST", "CST": "CST", "AKST": "AKST", "WIT": "WIT", "ECT": "ECT", "MDT": "MDT", "LHST": "LHST", "NZDT": "NZDT", "JST": "JST", "CLST": "CLST", "BOT": "BOT", "ACST": "ACST", "ADT": "ADT", "HADT": "HADT", "CDT": "CDT", "WEZ": "WEZ", "ACWST": "ACWST", "CHAST": "CHAST", "WAT": "WAT", "SRT": "SRT", "HAT": "HAT", "COST": "COST", "HENOMX": "HENOMX", "WITA": "WITA", "HKST": "HKST", "GFT": "GFT", "OEZ": "OEZ", "WARST": "WARST", "COT": "COT", "EDT": "EDT", "SAST": "SAST", "WART": "WART", "SGT": "SGT", "HNCU": "HNCU"},
+ timezones: map[string]string{"ACWDT": "ACWDT", "TMT": "TMT", "MDT": "MDT", "ART": "ART", "WAST": "WAST", "ACST": "ACST", "HNT": "HNT", "CST": "CST", "HNPM": "HNPM", "WITA": "WITA", "HADT": "HADT", "WESZ": "WESZ", "HEEG": "HEEG", "UYT": "UYT", "HNPMX": "HNPMX", "WAT": "WAT", "EDT": "EDT", "COST": "COST", "HENOMX": "HENOMX", "AEST": "AEST", "ChST": "ChST", "HEPM": "HEPM", "GMT": "GMT", "HEPMX": "HEPMX", "CHAST": "CHAST", "ADT": "ADT", "CLST": "CLST", "COT": "COT", "SAST": "SAST", "GYT": "GYT", "CHADT": "CHADT", "OESZ": "OESZ", "MYT": "MYT", "HEOG": "HEOG", "MST": "MST", "AKST": "AKST", "SRT": "SRT", "NZST": "NZST", "CAT": "CAT", "AEDT": "AEDT", "HAST": "HAST", "WIT": "WIT", "SGT": "SGT", "MESZ": "MESZ", "JDT": "JDT", "CLT": "CLT", "TMST": "TMST", "HECU": "HECU", "VET": "VET", "JST": "JST", "WART": "WART", "AKDT": "AKDT", "UYST": "UYST", "ECT": "ECT", "EAT": "EAT", "HNCU": "HNCU", "IST": "IST", "MEZ": "MEZ", "WARST": "WARST", "HNOG": "HNOG", "BT": "BT", "LHDT": "LHDT", "LHST": "LHST", "ARST": "ARST", "WIB": "WIB", "AWST": "AWST", "BOT": "BOT", "ACWST": "ACWST", "AST": "AST", "OEZ": "OEZ", "EST": "EST", "∅∅∅": "∅∅∅", "HKT": "HKT", "PDT": "PDT", "WEZ": "WEZ", "HNNOMX": "HNNOMX", "HNEG": "HNEG", "CDT": "CDT", "PST": "PST", "NZDT": "NZDT", "HKST": "HKST", "ACDT": "ACDT", "HAT": "HAT", "GFT": "GFT", "AWDT": "AWDT"},
}
}
diff --git a/bez/bez.go b/bez/bez.go
index 7cceeea8..ae9e6f1d 100644
--- a/bez/bez.go
+++ b/bez/bez.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KM", "BM"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Mtwaa", "Baada ya Mtwaa"},
- timezones: map[string]string{"MESZ": "MESZ", "JST": "JST", "SGT": "SGT", "SRT": "SRT", "WEZ": "WEZ", "ACWST": "ACWST", "AWDT": "AWDT", "LHDT": "LHDT", "BOT": "BOT", "ACST": "ACST", "WIB": "WIB", "AEST": "AEST", "WITA": "WITA", "COST": "COST", "HEPMX": "HEPMX", "CDT": "CDT", "PST": "PST", "HNOG": "HNOG", "ACDT": "ACDT", "OESZ": "OESZ", "GMT": "GMT", "LHST": "LHST", "∅∅∅": "∅∅∅", "HENOMX": "HENOMX", "AKST": "AKST", "CST": "CST", "VET": "VET", "HEOG": "HEOG", "GFT": "GFT", "GYT": "GYT", "ACWDT": "ACWDT", "CLT": "CLT", "ECT": "ECT", "HADT": "HADT", "WIT": "WIT", "HKST": "HKST", "TMT": "TMT", "WAST": "WAST", "OEZ": "OEZ", "UYST": "UYST", "IST": "IST", "HNEG": "HNEG", "CAT": "CAT", "HNCU": "HNCU", "HECU": "HECU", "EST": "EST", "MST": "MST", "HEEG": "HEEG", "WARST": "WARST", "HEPM": "HEPM", "TMST": "TMST", "AST": "AST", "UYT": "UYT", "ART": "ART", "AEDT": "AEDT", "CHAST": "CHAST", "WAT": "WAT", "WART": "WART", "MYT": "MYT", "HNPM": "HNPM", "NZST": "NZST", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "MDT": "MDT", "HNPMX": "HNPMX", "HAT": "HAT", "HKT": "HKT", "CLST": "CLST", "ChST": "ChST", "EAT": "EAT", "BT": "BT", "ARST": "ARST", "COT": "COT", "EDT": "EDT", "AKDT": "AKDT", "WESZ": "WESZ", "HNT": "HNT", "MEZ": "MEZ", "CHADT": "CHADT", "SAST": "SAST", "JDT": "JDT", "ADT": "ADT", "HAST": "HAST", "PDT": "PDT", "AWST": "AWST"},
+ timezones: map[string]string{"VET": "VET", "HEOG": "HEOG", "GMT": "GMT", "TMST": "TMST", "GFT": "GFT", "HNCU": "HNCU", "HAST": "HAST", "HADT": "HADT", "IST": "IST", "EDT": "EDT", "HEPM": "HEPM", "ACWST": "ACWST", "WAST": "WAST", "AKDT": "AKDT", "LHST": "LHST", "HNEG": "HNEG", "ChST": "ChST", "HAT": "HAT", "WITA": "WITA", "PDT": "PDT", "WARST": "WARST", "CLST": "CLST", "TMT": "TMT", "ACST": "ACST", "BT": "BT", "CHADT": "CHADT", "AKST": "AKST", "HNPM": "HNPM", "SAST": "SAST", "LHDT": "LHDT", "HEPMX": "HEPMX", "AWST": "AWST", "NZST": "NZST", "ACDT": "ACDT", "EAT": "EAT", "CHAST": "CHAST", "JDT": "JDT", "CLT": "CLT", "MDT": "MDT", "HKT": "HKT", "CST": "CST", "AWDT": "AWDT", "OEZ": "OEZ", "ART": "ART", "HKST": "HKST", "AEST": "AEST", "WIB": "WIB", "OESZ": "OESZ", "AEDT": "AEDT", "UYT": "UYT", "GYT": "GYT", "ECT": "ECT", "WEZ": "WEZ", "WART": "WART", "WESZ": "WESZ", "EST": "EST", "UYST": "UYST", "CDT": "CDT", "∅∅∅": "∅∅∅", "NZDT": "NZDT", "WAT": "WAT", "HNT": "HNT", "HEEG": "HEEG", "SRT": "SRT", "PST": "PST", "JST": "JST", "HNOG": "HNOG", "AST": "AST", "BOT": "BOT", "MEZ": "MEZ", "ADT": "ADT", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "HECU": "HECU", "WIT": "WIT", "MESZ": "MESZ", "MST": "MST", "ARST": "ARST", "SGT": "SGT", "CAT": "CAT", "ACWDT": "ACWDT", "MYT": "MYT", "COT": "COT", "COST": "COST", "HENOMX": "HENOMX"},
}
}
diff --git a/bez_TZ/bez_TZ.go b/bez_TZ/bez_TZ.go
index a09b1190..487aa53b 100644
--- a/bez_TZ/bez_TZ.go
+++ b/bez_TZ/bez_TZ.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KM", "BM"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Mtwaa", "Baada ya Mtwaa"},
- timezones: map[string]string{"WITA": "WITA", "CDT": "CDT", "GYT": "GYT", "WIB": "WIB", "WIT": "WIT", "ART": "ART", "HKST": "HKST", "HEPM": "HEPM", "SGT": "SGT", "PST": "PST", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "COST": "COST", "ADT": "ADT", "HADT": "HADT", "HKT": "HKT", "HNPM": "HNPM", "SAST": "SAST", "WARST": "WARST", "GMT": "GMT", "HNOG": "HNOG", "OESZ": "OESZ", "HENOMX": "HENOMX", "HAT": "HAT", "HNEG": "HNEG", "EAT": "EAT", "HNCU": "HNCU", "MDT": "MDT", "HNPMX": "HNPMX", "HNT": "HNT", "NZDT": "NZDT", "COT": "COT", "HECU": "HECU", "WESZ": "WESZ", "AEST": "AEST", "HAST": "HAST", "BT": "BT", "MESZ": "MESZ", "NZST": "NZST", "CLST": "CLST", "JDT": "JDT", "WART": "WART", "UYST": "UYST", "ARST": "ARST", "CHAST": "CHAST", "CHADT": "CHADT", "WAT": "WAT", "MYT": "MYT", "AEDT": "AEDT", "WEZ": "WEZ", "HEOG": "HEOG", "ChST": "ChST", "CAT": "CAT", "WAST": "WAST", "HNNOMX": "HNNOMX", "EST": "EST", "AST": "AST", "MEZ": "MEZ", "LHST": "LHST", "LHDT": "LHDT", "CLT": "CLT", "MST": "MST", "AWST": "AWST", "AWDT": "AWDT", "OEZ": "OEZ", "ECT": "ECT", "HEPMX": "HEPMX", "AKDT": "AKDT", "CST": "CST", "SRT": "SRT", "IST": "IST", "GFT": "GFT", "TMT": "TMT", "AKST": "AKST", "ACWST": "ACWST", "UYT": "UYT", "JST": "JST", "BOT": "BOT", "ACDT": "ACDT", "EDT": "EDT", "HEEG": "HEEG", "TMST": "TMST", "ACST": "ACST", "VET": "VET", "PDT": "PDT"},
+ timezones: map[string]string{"UYST": "UYST", "∅∅∅": "∅∅∅", "HECU": "HECU", "ACWDT": "ACWDT", "JDT": "JDT", "WARST": "WARST", "BOT": "BOT", "CLST": "CLST", "EDT": "EDT", "NZST": "NZST", "AST": "AST", "OEZ": "OEZ", "HKT": "HKT", "ACST": "ACST", "WART": "WART", "OESZ": "OESZ", "HEPMX": "HEPMX", "CDT": "CDT", "SGT": "SGT", "PST": "PST", "HAST": "HAST", "HAT": "HAT", "SRT": "SRT", "WIB": "WIB", "TMT": "TMT", "TMST": "TMST", "HENOMX": "HENOMX", "CST": "CST", "NZDT": "NZDT", "MDT": "MDT", "ACWST": "ACWST", "CLT": "CLT", "COT": "COT", "ART": "ART", "ACDT": "ACDT", "HNPM": "HNPM", "VET": "VET", "JST": "JST", "ADT": "ADT", "WESZ": "WESZ", "MST": "MST", "MYT": "MYT", "HNT": "HNT", "AEST": "AEST", "AEDT": "AEDT", "HNEG": "HNEG", "ChST": "ChST", "PDT": "PDT", "HNOG": "HNOG", "WAT": "WAT", "COST": "COST", "HNNOMX": "HNNOMX", "GMT": "GMT", "EST": "EST", "AKST": "AKST", "SAST": "SAST", "HNPMX": "HNPMX", "WIT": "WIT", "AWDT": "AWDT", "HADT": "HADT", "HKST": "HKST", "BT": "BT", "AKDT": "AKDT", "IST": "IST", "WEZ": "WEZ", "LHST": "LHST", "LHDT": "LHDT", "EAT": "EAT", "HNCU": "HNCU", "AWST": "AWST", "GYT": "GYT", "CHAST": "CHAST", "ECT": "ECT", "GFT": "GFT", "WITA": "WITA", "HEPM": "HEPM", "CHADT": "CHADT", "MESZ": "MESZ", "HEOG": "HEOG", "ARST": "ARST", "HEEG": "HEEG", "CAT": "CAT", "MEZ": "MEZ", "WAST": "WAST", "UYT": "UYT"},
}
}
diff --git a/bg/bg.go b/bg/bg.go
index 857e9a49..0271b98d 100644
--- a/bg/bg.go
+++ b/bg/bg.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"пр.Хр.", "сл.Хр."},
erasNarrow: []string{"", ""},
erasWide: []string{"преди Христа", "след Христа"},
- timezones: map[string]string{"CLST": "Чилийско лятно часово време", "ADT": "Северноамериканско атлантическо лятно часово време", "WEZ": "Западноевропейско стандартно време", "BT": "Бутанско време", "HEOG": "Западногренландско лятно часово време", "HKST": "Хонконгско лятно часово време", "OESZ": "Източноевропейско лятно часово време", "CAT": "Централноафриканско време", "AKDT": "Аляска – лятно часово време", "WIB": "Западноиндонезийско време", "ACWDT": "Австралия – западно централно лятно часово време", "NZST": "Новозеландско стандартно време", "OEZ": "Източноевропейско стандартно време", "SRT": "Суринамско време", "HKT": "Хонконгско стандартно време", "NZDT": "Новозеландско лятно часово време", "PST": "Северноамериканско тихоокеанско стандартно време", "WITA": "Централноиндонезийско време", "SAST": "Южноафриканско време", "ACDT": "Австралия – централно лятно часово време", "EAT": "Източноафриканско време", "WARST": "Западноаржентинско лятно часово време", "UYST": "Уругвайско лятно часово време", "HADT": "Хавайско-алеутско лятно часово време", "WAT": "Западноафриканско стандартно време", "HNOG": "Западногренландско стандартно време", "COST": "Колумбийско лятно часово време", "UYT": "Уругвайско стандартно време", "HEPM": "Сен Пиер и Микелон – лятно часово време", "AEDT": "Австралия – източно лятно часово време", "AWDT": "Австралия – западно лятно часово време", "ChST": "Чаморо – стандартно време", "BOT": "Боливийско време", "ECT": "Еквадорско време", "HEPMX": "Мексиканско тихоокеанско лятно часово време", "HAT": "Нюфаундлендско лятно часово време", "AEST": "Австралия – източно стандартно време", "TMT": "Туркменистанско стандартно време", "HEEG": "Източногренландско лятно часово време", "WAST": "Западноафриканско лятно часово време", "COT": "Колумбийско стандартно време", "EDT": "Северноамериканско източно лятно часово време", "CDT": "Северноамериканско централно лятно часово време", "MEZ": "Централноевропейско стандартно време", "HNEG": "Източногренландско стандартно време", "HNNOMX": "Мексико – северозападно стандартно време", "MYT": "Малайзийско време", "HAST": "Хавайско-алеутско стандартно време", "PDT": "Северноамериканско тихоокеанско лятно часово време", "WESZ": "Западноевропейско лятно време", "GMT": "Средно гринуичко време", "AKST": "Аляска – стандартно време", "CHAST": "Чатъм – стандартно време", "IST": "Индийско стандартно време", "∅∅∅": "Амазонско лятно часово време", "EST": "Северноамериканско източно стандартно време", "WIT": "Източноиндонезийско време", "ARST": "Аржентинско лятно часово време", "AWST": "Австралия – западно стандартно време", "LHST": "Лорд Хау – стандартно време", "WART": "Западноаржентинско стандартно време", "HNCU": "Кубинско стандартно време", "MDT": "MDT", "AST": "Северноамериканско атлантическо стандартно време", "VET": "Венецуелско време", "ACWST": "Австралия – западно централно стандартно време", "HNPM": "Сен Пиер и Микелон – стандартно време", "JST": "Японско стандартно време", "JDT": "Японско лятно часово време", "HENOMX": "Мексико – северозападно лятно часово време", "SGT": "Сингапурско време", "HNPMX": "Мексиканско тихоокеанско стандартно време", "HNT": "Нюфаундлендско стандартно време", "CLT": "Чилийско стандартно време", "ACST": "Австралия – централно стандартно време", "GYT": "Гаяна", "MESZ": "Централноевропейско лятно часово време", "CHADT": "Чатъм – лятно часово време", "LHDT": "Лорд Хау – лятно часово време", "GFT": "Френска Гвиана", "TMST": "Туркменистанско лятно часово време", "HECU": "Кубинско лятно часово време", "MST": "MST", "CST": "Северноамериканско централно стандартно време", "ART": "Аржентинско стандартно време"},
+ timezones: map[string]string{"HKT": "Хонконгско стандартно време", "BT": "Бутанско време", "GYT": "Гаяна", "EAT": "Източноафриканско време", "CHAST": "Чатъм – стандартно време", "ARST": "Аржентинско лятно часово време", "AKST": "Аляска – стандартно време", "WEZ": "Западноевропейско стандартно време", "AST": "Северноамериканско атлантическо стандартно време", "OEZ": "Източноевропейско стандартно време", "HEEG": "Източногренландско лятно часово време", "HNCU": "Кубинско стандартно време", "WIT": "Източноиндонезийско време", "VET": "Венецуелско време", "MYT": "Малайзийско време", "NZDT": "Новозеландско лятно часово време", "EDT": "Северноамериканско източно лятно часово време", "COT": "Колумбийско стандартно време", "GFT": "Френска Гвиана", "UYT": "Уругвайско стандартно време", "PST": "Северноамериканско тихоокеанско стандартно време", "MST": "MST", "∅∅∅": "∅∅∅", "HNPM": "Сен Пиер и Микелон – стандартно време", "ChST": "Чаморо – стандартно време", "PDT": "Северноамериканско тихоокеанско лятно часово време", "HECU": "Кубинско лятно часово време", "AWST": "Австралия – западно стандартно време", "MEZ": "Централноевропейско стандартно време", "MDT": "MDT", "WAST": "Западноафриканско лятно часово време", "EST": "Северноамериканско източно стандартно време", "AEST": "Австралия – източно стандартно време", "HEPM": "Сен Пиер и Микелон – лятно часово време", "HEPMX": "Мексиканско тихоокеанско лятно часово време", "SAST": "Южноафриканско време", "JDT": "Японско лятно часово време", "GMT": "Средно гринуичко време", "OESZ": "Източноевропейско лятно часово време", "HNNOMX": "Мексико – северозападно стандартно време", "HNT": "Нюфаундлендско стандартно време", "CHADT": "Чатъм – лятно часово време", "ECT": "Еквадорско време", "TMST": "Туркменистанско лятно часово време", "WART": "Западноаржентинско стандартно време", "ART": "Аржентинско стандартно време", "HKST": "Хонконгско лятно часово време", "ACDT": "Австралия – централно лятно часово време", "CDT": "Северноамериканско централно лятно часово време", "IST": "Индийско стандартно време", "CLST": "Чилийско лятно часово време", "HEOG": "Западногренландско лятно часово време", "TMT": "Туркменистанско стандартно време", "HNEG": "Източногренландско стандартно време", "HAT": "Нюфаундлендско лятно часово време", "LHST": "Лорд Хау – стандартно време", "LHDT": "Лорд Хау – лятно часово време", "ACWDT": "Австралия – западно централно лятно часово време", "WIB": "Западноиндонезийско време", "ACWST": "Австралия – западно централно стандартно време", "WARST": "Западноаржентинско лятно часово време", "SRT": "Суринамско време", "CST": "Северноамериканско централно стандартно време", "CAT": "Централноафриканско време", "HNOG": "Западногренландско стандартно време", "BOT": "Боливийско време", "SGT": "Сингапурско време", "NZST": "Новозеландско стандартно време", "MESZ": "Централноевропейско лятно часово време", "ACST": "Австралия – централно стандартно време", "AKDT": "Аляска – лятно часово време", "HNPMX": "Мексиканско тихоокеанско стандартно време", "WESZ": "Западноевропейско лятно време", "CLT": "Чилийско стандартно време", "WAT": "Западноафриканско стандартно време", "UYST": "Уругвайско лятно часово време", "AWDT": "Австралия – западно лятно часово време", "HAST": "Хавайско-алеутско стандартно време", "JST": "Японско стандартно време", "ADT": "Северноамериканско атлантическо лятно часово време", "HENOMX": "Мексико – северозападно лятно часово време", "COST": "Колумбийско лятно часово време", "AEDT": "Австралия – източно лятно часово време", "WITA": "Централноиндонезийско време", "HADT": "Хавайско-алеутско лятно часово време"},
}
}
diff --git a/bg_BG/bg_BG.go b/bg_BG/bg_BG.go
index 07ac384d..aa8d7d01 100644
--- a/bg_BG/bg_BG.go
+++ b/bg_BG/bg_BG.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"пр.Хр.", "сл.Хр."},
erasNarrow: []string{"", ""},
erasWide: []string{"преди Христа", "след Христа"},
- timezones: map[string]string{"UYST": "Уругвайско лятно часово време", "AWST": "Австралия – западно стандартно време", "HKST": "Хонконгско лятно часово време", "MESZ": "Централноевропейско лятно часово време", "SAST": "Южноафриканско време", "HNCU": "Кубинско стандартно време", "AKST": "Аляска – стандартно време", "ACWST": "Австралия – западно централно стандартно време", "COT": "Колумбийско стандартно време", "HNPMX": "Мексиканско тихоокеанско стандартно време", "MYT": "Малайзийско време", "PST": "Северноамериканско тихоокеанско стандартно време", "HEPM": "Сен Пиер и Микелон – лятно часово време", "JST": "Японско стандартно време", "TMST": "Туркменистанско лятно часово време", "ECT": "Еквадорско време", "WEZ": "Западноевропейско стандартно време", "HNOG": "Западногренландско стандартно време", "WITA": "Централноиндонезийско време", "CLST": "Чилийско лятно часово време", "WAT": "Западноафриканско стандартно време", "AEDT": "Австралия – източно лятно часово време", "CHAST": "Чатъм – стандартно време", "IST": "Индийско стандартно време", "CLT": "Чилийско стандартно време", "HNEG": "Източногренландско стандартно време", "GFT": "Френска Гвиана", "WAST": "Западноафриканско лятно часово време", "EDT": "Северноамериканско източно лятно часово време", "CDT": "Северноамериканско централно лятно часово време", "EST": "Северноамериканско източно стандартно време", "AST": "Северноамериканско атлантическо стандартно време", "SRT": "Суринамско време", "AEST": "Австралия – източно стандартно време", "AWDT": "Австралия – западно лятно часово време", "JDT": "Японско лятно часово време", "EAT": "Източноафриканско време", "BT": "Бутанско време", "HNPM": "Сен Пиер и Микелон – стандартно време", "CHADT": "Чатъм – лятно часово време", "ACDT": "Австралия – централно лятно часово време", "MST": "MST", "HEPMX": "Мексиканско тихоокеанско лятно часово време", "HAST": "Хавайско-алеутско стандартно време", "LHDT": "Лорд Хау – лятно часово време", "∅∅∅": "Амазонско лятно часово време", "ChST": "Чаморо – стандартно време", "ACST": "Австралия – централно стандартно време", "WART": "Западноаржентинско стандартно време", "GMT": "Средно гринуичко време", "GYT": "Гаяна", "VET": "Венецуелско време", "HNT": "Нюфаундлендско стандартно време", "HAT": "Нюфаундлендско лятно часово време", "ART": "Аржентинско стандартно време", "HEEG": "Източногренландско лятно часово време", "OEZ": "Източноевропейско стандартно време", "HENOMX": "Мексико – северозападно лятно часово време", "WIT": "Източноиндонезийско време", "WESZ": "Западноевропейско лятно време", "ACWDT": "Австралия – западно централно лятно часово време", "ARST": "Аржентинско лятно часово време", "TMT": "Туркменистанско стандартно време", "OESZ": "Източноевропейско лятно часово време", "HNNOMX": "Мексико – северозападно стандартно време", "SGT": "Сингапурско време", "MDT": "MDT", "HEOG": "Западногренландско лятно часово време", "CST": "Северноамериканско централно стандартно време", "UYT": "Уругвайско стандартно време", "HADT": "Хавайско-алеутско лятно часово време", "LHST": "Лорд Хау – стандартно време", "NZST": "Новозеландско стандартно време", "HECU": "Кубинско лятно часово време", "WIB": "Западноиндонезийско време", "NZDT": "Новозеландско лятно часово време", "BOT": "Боливийско време", "CAT": "Централноафриканско време", "AKDT": "Аляска – лятно часово време", "ADT": "Северноамериканско атлантическо лятно часово време", "PDT": "Северноамериканско тихоокеанско лятно часово време", "MEZ": "Централноевропейско стандартно време", "WARST": "Западноаржентинско лятно часово време", "COST": "Колумбийско лятно часово време", "HKT": "Хонконгско стандартно време"},
+ timezones: map[string]string{"CHAST": "Чатъм – стандартно време", "NZDT": "Новозеландско лятно часово време", "CLST": "Чилийско лятно часово време", "ACST": "Австралия – централно стандартно време", "CHADT": "Чатъм – лятно часово време", "ECT": "Еквадорско време", "CAT": "Централноафриканско време", "AST": "Северноамериканско атлантическо стандартно време", "COST": "Колумбийско лятно часово време", "HNT": "Нюфаундлендско стандартно време", "AEDT": "Австралия – източно лятно часово време", "HADT": "Хавайско-алеутско лятно часово време", "VET": "Венецуелско време", "CLT": "Чилийско стандартно време", "IST": "Индийско стандартно време", "WARST": "Западноаржентинско лятно часово време", "HEEG": "Източногренландско лятно часово време", "EAT": "Източноафриканско време", "EDT": "Северноамериканско източно лятно часово време", "HNNOMX": "Мексико – северозападно стандартно време", "HENOMX": "Мексико – северозападно лятно часово време", "AKDT": "Аляска – лятно часово време", "SRT": "Суринамско време", "HNCU": "Кубинско стандартно време", "BOT": "Боливийско време", "OEZ": "Източноевропейско стандартно време", "TMT": "Туркменистанско стандартно време", "WAT": "Западноафриканско стандартно време", "ChST": "Чаморо – стандартно време", "JST": "Японско стандартно време", "MST": "MST", "MDT": "MDT", "HAT": "Нюфаундлендско лятно часово време", "GFT": "Френска Гвиана", "WITA": "Централноиндонезийско време", "HNPMX": "Мексиканско тихоокеанско стандартно време", "WIB": "Западноиндонезийско време", "∅∅∅": "Бразилско лятно часово време", "PST": "Северноамериканско тихоокеанско стандартно време", "PDT": "Северноамериканско тихоокеанско лятно часово време", "HEOG": "Западногренландско лятно часово време", "HKT": "Хонконгско стандартно време", "AWDT": "Австралия – западно лятно часово време", "MEZ": "Централноевропейско стандартно време", "OESZ": "Източноевропейско лятно часово време", "MYT": "Малайзийско време", "UYST": "Уругвайско лятно часово време", "HNPM": "Сен Пиер и Микелон – стандартно време", "HEPM": "Сен Пиер и Микелон – лятно часово време", "CDT": "Северноамериканско централно лятно часово време", "ACWST": "Австралия – западно централно стандартно време", "ACWDT": "Австралия – западно централно лятно часово време", "MESZ": "Централноевропейско лятно часово време", "HNOG": "Западногренландско стандартно време", "ARST": "Аржентинско лятно часово време", "EST": "Северноамериканско източно стандартно време", "ACDT": "Австралия – централно лятно часово време", "HAST": "Хавайско-алеутско стандартно време", "ADT": "Северноамериканско атлантическо лятно часово време", "WEZ": "Западноевропейско стандартно време", "BT": "Бутанско време", "HNEG": "Източногренландско стандартно време", "AKST": "Аляска – стандартно време", "SAST": "Южноафриканско време", "WIT": "Източноиндонезийско време", "AWST": "Австралия – западно стандартно време", "WART": "Западноаржентинско стандартно време", "ART": "Аржентинско стандартно време", "LHDT": "Лорд Хау – лятно часово време", "GMT": "Средно гринуичко време", "TMST": "Туркменистанско лятно часово време", "CST": "Северноамериканско централно стандартно време", "NZST": "Новозеландско стандартно време", "WESZ": "Западноевропейско лятно време", "WAST": "Западноафриканско лятно часово време", "HECU": "Кубинско лятно часово време", "SGT": "Сингапурско време", "JDT": "Японско лятно часово време", "HKST": "Хонконгско лятно часово време", "COT": "Колумбийско стандартно време", "AEST": "Австралия – източно стандартно време", "HEPMX": "Мексиканско тихоокеанско лятно часово време", "GYT": "Гаяна", "UYT": "Уругвайско стандартно време", "LHST": "Лорд Хау – стандартно време"},
}
}
diff --git a/bm/bm.go b/bm/bm.go
index 49b16b5c..bee9de2c 100644
--- a/bm/bm.go
+++ b/bm/bm.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"J.-C. ɲɛ", "ni J.-C."},
erasNarrow: []string{"", ""},
erasWide: []string{"jezu krisiti ɲɛ", "jezu krisiti minkɛ"},
- timezones: map[string]string{"OEZ": "OEZ", "EDT": "EDT", "AST": "AST", "SRT": "SRT", "WEZ": "WEZ", "HNPMX": "HNPMX", "LHST": "LHST", "GFT": "GFT", "SGT": "SGT", "AKST": "AKST", "ARST": "ARST", "WESZ": "WESZ", "ACWST": "ACWST", "NZST": "NZST", "WIT": "WIT", "HEOG": "HEOG", "PDT": "PDT", "HNPM": "HNPM", "CLST": "CLST", "GYT": "GYT", "AKDT": "AKDT", "NZDT": "NZDT", "BOT": "BOT", "HNCU": "HNCU", "CST": "CST", "BT": "BT", "AEDT": "AEDT", "HEPM": "HEPM", "JDT": "JDT", "EAT": "EAT", "WAST": "WAST", "HNNOMX": "HNNOMX", "HADT": "HADT", "ART": "ART", "MEZ": "MEZ", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "WARST": "WARST", "COT": "COT", "GMT": "GMT", "HECU": "HECU", "HAT": "HAT", "TMT": "TMT", "WAT": "WAT", "ADT": "ADT", "MYT": "MYT", "UYT": "UYT", "HKST": "HKST", "COST": "COST", "EST": "EST", "ChST": "ChST", "HENOMX": "HENOMX", "UYST": "UYST", "HAST": "HAST", "HNT": "HNT", "ACWDT": "ACWDT", "ACST": "ACST", "CAT": "CAT", "WART": "WART", "VET": "VET", "IST": "IST", "CLT": "CLT", "CDT": "CDT", "WIB": "WIB", "AEST": "AEST", "AWST": "AWST", "AWDT": "AWDT", "HKT": "HKT", "JST": "JST", "ECT": "ECT", "HEPMX": "HEPMX", "HNOG": "HNOG", "WITA": "WITA", "CHADT": "CHADT", "TMST": "TMST", "HNEG": "HNEG", "MST": "MST", "MDT": "MDT", "PST": "PST", "LHDT": "LHDT", "ACDT": "ACDT", "OESZ": "OESZ", "CHAST": "CHAST", "SAST": "SAST"},
+ timezones: map[string]string{"HKT": "HKT", "LHST": "LHST", "HNCU": "HNCU", "CDT": "CDT", "MEZ": "MEZ", "EST": "EST", "BT": "BT", "UYT": "UYT", "HEPMX": "HEPMX", "CST": "CST", "WARST": "WARST", "TMST": "TMST", "ACDT": "ACDT", "PST": "PST", "CLST": "CLST", "MESZ": "MESZ", "OESZ": "OESZ", "ADT": "ADT", "MDT": "MDT", "NZST": "NZST", "∅∅∅": "∅∅∅", "HADT": "HADT", "ACWDT": "ACWDT", "HKST": "HKST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AEDT": "AEDT", "SGT": "SGT", "CHAST": "CHAST", "BOT": "BOT", "HNEG": "HNEG", "COT": "COT", "HNPM": "HNPM", "EAT": "EAT", "AWDT": "AWDT", "CHADT": "CHADT", "WART": "WART", "ART": "ART", "ACWST": "ACWST", "NZDT": "NZDT", "WESZ": "WESZ", "TMT": "TMT", "WAT": "WAT", "COST": "COST", "LHDT": "LHDT", "PDT": "PDT", "VET": "VET", "HNPMX": "HNPMX", "AWST": "AWST", "JDT": "JDT", "ACST": "ACST", "HEEG": "HEEG", "UYST": "UYST", "MYT": "MYT", "HAT": "HAT", "AST": "AST", "EDT": "EDT", "WAST": "WAST", "AEST": "AEST", "SAST": "SAST", "WIB": "WIB", "HAST": "HAST", "IST": "IST", "HNT": "HNT", "AKDT": "AKDT", "ECT": "ECT", "WEZ": "WEZ", "MST": "MST", "HEPM": "HEPM", "ChST": "ChST", "OEZ": "OEZ", "HNOG": "HNOG", "CLT": "CLT", "ARST": "ARST", "GFT": "GFT", "AKST": "AKST", "SRT": "SRT", "JST": "JST", "GMT": "GMT", "WITA": "WITA", "GYT": "GYT", "HECU": "HECU", "WIT": "WIT", "CAT": "CAT", "HEOG": "HEOG"},
}
}
diff --git a/bm_ML/bm_ML.go b/bm_ML/bm_ML.go
index 632ba9ab..78fc4950 100644
--- a/bm_ML/bm_ML.go
+++ b/bm_ML/bm_ML.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"J.-C. ɲɛ", "ni J.-C."},
erasNarrow: []string{"", ""},
erasWide: []string{"jezu krisiti ɲɛ", "jezu krisiti minkɛ"},
- timezones: map[string]string{"EAT": "EAT", "WIT": "WIT", "CLST": "CLST", "∅∅∅": "∅∅∅", "MDT": "MDT", "VET": "VET", "MESZ": "MESZ", "WAST": "WAST", "AEST": "AEST", "SAST": "SAST", "ECT": "ECT", "CAT": "CAT", "HAT": "HAT", "ART": "ART", "MST": "MST", "LHDT": "LHDT", "WAT": "WAT", "ChST": "ChST", "HNPMX": "HNPMX", "ACWST": "ACWST", "LHST": "LHST", "TMT": "TMT", "GMT": "GMT", "WESZ": "WESZ", "HNOG": "HNOG", "OESZ": "OESZ", "EDT": "EDT", "UYST": "UYST", "NZDT": "NZDT", "CHAST": "CHAST", "HECU": "HECU", "HAST": "HAST", "HKST": "HKST", "AEDT": "AEDT", "HEOG": "HEOG", "HKT": "HKT", "WITA": "WITA", "HEPM": "HEPM", "JST": "JST", "TMST": "TMST", "ACWDT": "ACWDT", "HNT": "HNT", "AKDT": "AKDT", "SRT": "SRT", "COST": "COST", "AKST": "AKST", "COT": "COT", "EST": "EST", "HADT": "HADT", "AWST": "AWST", "ACDT": "ACDT", "NZST": "NZST", "ACST": "ACST", "OEZ": "OEZ", "SGT": "SGT", "HEPMX": "HEPMX", "CDT": "CDT", "ARST": "ARST", "PDT": "PDT", "MYT": "MYT", "HEEG": "HEEG", "GFT": "GFT", "WART": "WART", "AST": "AST", "ADT": "ADT", "UYT": "UYT", "AWDT": "AWDT", "HNEG": "HNEG", "WARST": "WARST", "GYT": "GYT", "PST": "PST", "HNPM": "HNPM", "HENOMX": "HENOMX", "WEZ": "WEZ", "CHADT": "CHADT", "CLT": "CLT", "BOT": "BOT", "CST": "CST", "BT": "BT", "MEZ": "MEZ", "IST": "IST", "HNCU": "HNCU", "WIB": "WIB", "JDT": "JDT", "HNNOMX": "HNNOMX"},
+ timezones: map[string]string{"WARST": "WARST", "CHADT": "CHADT", "ECT": "ECT", "PST": "PST", "NZST": "NZST", "OESZ": "OESZ", "UYT": "UYT", "UYST": "UYST", "WART": "WART", "ACDT": "ACDT", "HAT": "HAT", "ChST": "ChST", "SAST": "SAST", "CLST": "CLST", "WEZ": "WEZ", "TMST": "TMST", "JST": "JST", "WESZ": "WESZ", "ARST": "ARST", "AEDT": "AEDT", "HEPMX": "HEPMX", "EAT": "EAT", "CDT": "CDT", "CAT": "CAT", "EST": "EST", "HNNOMX": "HNNOMX", "WITA": "WITA", "HNPM": "HNPM", "HEPM": "HEPM", "CST": "CST", "GYT": "GYT", "WAST": "WAST", "COST": "COST", "HENOMX": "HENOMX", "LHST": "LHST", "LHDT": "LHDT", "IST": "IST", "HNOG": "HNOG", "WAT": "WAT", "HNT": "HNT", "AWST": "AWST", "ACWDT": "ACWDT", "TMT": "TMT", "ART": "ART", "ACST": "ACST", "HNEG": "HNEG", "HAST": "HAST", "MESZ": "MESZ", "AWDT": "AWDT", "GMT": "GMT", "ADT": "ADT", "EDT": "EDT", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "SRT": "SRT", "HECU": "HECU", "MEZ": "MEZ", "HADT": "HADT", "MDT": "MDT", "HKT": "HKT", "HKST": "HKST", "AEST": "AEST", "GFT": "GFT", "WIT": "WIT", "CHAST": "CHAST", "AST": "AST", "AKST": "AKST", "VET": "VET", "MYT": "MYT", "CLT": "CLT", "COT": "COT", "HEEG": "HEEG", "HNPMX": "HNPMX", "SGT": "SGT", "NZDT": "NZDT", "PDT": "PDT", "HEOG": "HEOG", "OEZ": "OEZ", "MST": "MST", "BT": "BT", "HNCU": "HNCU", "WIB": "WIB", "BOT": "BOT", "ACWST": "ACWST", "JDT": "JDT"},
}
}
diff --git a/bn/bn.go b/bn/bn.go
index 430d6429..72bf97c8 100644
--- a/bn/bn.go
+++ b/bn/bn.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"খ্রিস্টপূর্ব", "খৃষ্টাব্দ"},
erasNarrow: []string{"", ""},
erasWide: []string{"খ্রিস্টপূর্ব", "খৃষ্টাব্দ"},
- timezones: map[string]string{"MYT": "মালয়েশিয়া সময়", "ART": "আর্জেনটিনা মানক সময়", "AEDT": "অস্ট্রেলীয় পূর্ব দিবালোক সময়", "CLT": "চিলি মানক সময়", "ECT": "ইকুয়েডর সময়", "AST": "অতলান্তিক মানক সময়", "HKT": "হং কং মানক সময়", "MEZ": "মধ্য ইউরোপের মানক সময়", "GFT": "ফরাসি গায়ানা সময়", "CAT": "মধ্য আফ্রিকা সময়", "ADT": "অতলান্তিক দিবালোক সময়", "AKST": "আলাস্কা মানক সময়", "MESZ": "মধ্য ইউরোপের গ্রীষ্মকালীন সময়", "TMST": "তুর্কমেনিস্তান গ্রীষ্মকালীন সময়", "BOT": "বোলিভিয়া সময়", "MDT": "মাকাও গ্রীষ্মকাল সময়", "CDT": "কেন্দ্রীয় দিবালোক সময়", "UYT": "উরুগুয়ে মানক সময়", "HAT": "নিউফাউন্ডল্যান্ড দিবালোক সময়", "NZDT": "নিউজিল্যান্ড দিবালোক সময়", "JST": "জাপান মানক সময়", "COST": "কোলোম্বিয়া গ্রীষ্মকালীন সময়", "EST": "পূর্বাঞ্চলের প্রমাণ সময়", "WIB": "পশ্চিমী ইন্দোনেশিয়া সময়", "BT": "ভুটান সময়", "HEOG": "পশ্চিম গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "∅∅∅": "অ্যামাজন গ্রীষ্মকালীন সময়", "HNOG": "পশ্চিম গ্রীনল্যান্ড মানক সময়", "AWST": "অস্ট্রেলীয় পশ্চিমি মানক সময়", "HEPM": "সেন্ট পিয়ের ও মিকেলন দিবালোক সময়", "COT": "কোলোম্বিয়া মানক সময়", "HENOMX": "উত্তরপশ্চিম মেক্সিকোর দিনের সময়", "HECU": "কিউবা দিবালোক সময়", "WIT": "পূর্ব ইন্দোনেশিয়া সময়", "SRT": "সুরিনাম সময়", "NZST": "নিউজিল্যান্ড মানক সময়", "LHST": "লর্ড হাওয়ে মানক মসয়", "EAT": "পূর্ব আফ্রিকা সময়", "WARST": "পশ্চিমি আর্জেনটিনা গৃষ্মকালীন সময়", "EDT": "পূর্বাঞ্চলের দিবালোক সময়", "HNPMX": "মেক্সিকান প্রশান্ত মহসাগরীয় মানক সময়", "ARST": "আর্জেনটিনা গ্রীষ্মকালীন সময়", "CHAST": "চ্যাথাম মানক সময়", "IST": "ভারতীয় মানক সময়", "GMT": "গ্রীনিচ মিন টাইম", "HNCU": "কিউবা মানক সময়", "HADT": "হাওয়াই-আলেউত দিবালোক সময়", "PST": "প্রশান্ত মহাসাগরীয় অঞ্চলের মানক সময়", "ACWDT": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি দিবালোক সময়", "SAST": "দক্ষিণ আফ্রিকা মানক সময়", "JDT": "জাপান দিবালোক সময়", "TMT": "তুর্কমেনিস্তান মানক সময়", "ChST": "চামেরো মানক সময়", "ACST": "অস্ট্রেলীয় কেন্দ্রীয় মানক সময়", "UYST": "উরুগুয়ে গ্রীষ্মকালীন সময়", "AKDT": "আলাস্কা দিবালোক সময়", "HNEG": "পূর্ব গ্রীনল্যান্ড মানক সময়", "WAT": "পশ্চিম আফ্রিকা মানক সময়", "WESZ": "পশ্চিম ইউরোপের গ্রীষ্মকালীন সময়", "HNPM": "সেন্ট পিয়ের ও মিকেলন মানক সময়", "ACDT": "অস্ট্রেলীয় কেন্দ্রীয় দিবালোক সময়", "HEPMX": "মেক্সিকান প্রশান্ত মহাসাগরীয় দিবালোক সময়", "WEZ": "পশ্চিম ইউরোপের মানক সময়", "WITA": "কেন্দ্রীয় ইন্দোনেশিয়া সময়", "AWDT": "অস্ট্রেলীয় পশ্চিমি দিবালোক সময়", "CLST": "চিলি গ্রীষ্মকাল সময়", "OEZ": "পূর্ব ইউরোপের মানক সময়", "WART": "পশ্চিমি আর্জেনটিনার প্রমাণ সময়", "MST": "মাকাও মান সময়", "HAST": "হাওয়াই-আলেউত মানক সময়", "VET": "ভেনেজুয়েলা সময়", "HNNOMX": "উত্তরপশ্চিম মেক্সিকোর মানক সময়", "SGT": "সিঙ্গাপুর মানক সময়", "CST": "কেন্দ্রীয় মানক সময়", "PDT": "প্রশান্ত মহাসাগরীয় অঞ্চলের দিনের সময়", "ACWST": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি মানক সময়", "AEST": "অস্ট্রেলীয় পূর্ব মানক সময়", "OESZ": "পূর্ব ইউরোপের গ্রীষ্মকালীন সময়", "WAST": "পশ্চিম আফ্রিকা গ্রীষ্মকালীন সময়", "GYT": "গুয়ানা সময়", "HKST": "হং কং গ্রীষ্মকালীন সময়", "LHDT": "লর্ড হাওয়ে দিবালোক মসয়", "HEEG": "পূর্ব গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "HNT": "নিউফাউন্ডল্যান্ড মানক সময়", "CHADT": "চ্যাথাম দিবালোক সময়"},
+ timezones: map[string]string{"GMT": "গ্রীনিচ মিন টাইম", "CLT": "চিলি মানক সময়", "TMT": "তুর্কমেনিস্তান মানক সময়", "COT": "কোলোম্বিয়া মানক সময়", "AWST": "অস্ট্রেলীয় পশ্চিমি মানক সময়", "CHADT": "চ্যাথাম দিবালোক সময়", "NZDT": "নিউজিল্যান্ড দিবালোক সময়", "WEZ": "পশ্চিম ইউরোপের মানক সময়", "HNT": "নিউফাউন্ডল্যান্ড মানক সময়", "HNEG": "পূর্ব গ্রীনল্যান্ড মানক সময়", "AEST": "অস্ট্রেলীয় পূর্ব মানক সময়", "LHDT": "লর্ড হাওয়ে দিবালোক মসয়", "HECU": "কিউবা দিবালোক সময়", "HAT": "নিউফাউন্ডল্যান্ড দিবালোক সময়", "CST": "কেন্দ্রীয় মানক সময়", "HEOG": "পশ্চিম গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "SAST": "দক্ষিণ আফ্রিকা মানক সময়", "HNPMX": "মেক্সিকান প্রশান্ত মহসাগরীয় মানক সময়", "GYT": "গুয়ানা সময়", "EAT": "পূর্ব আফ্রিকা সময়", "BOT": "বোলিভিয়া সময়", "PST": "প্রশান্ত মহাসাগরীয় অঞ্চলের মানক সময়", "CAT": "মধ্য আফ্রিকা সময়", "ARST": "আর্জেনটিনা গ্রীষ্মকালীন সময়", "EST": "পূর্বাঞ্চলের প্রমাণ সময়", "AKST": "আলাস্কা মানক সময়", "UYT": "উরুগুয়ে মানক সময়", "HEPM": "সেন্ট পিয়ের ও মিকেলন দিবালোক সময়", "ECT": "ইকুয়েডর সময়", "HAST": "হাওয়াই-আলেউত মানক সময়", "HKST": "হং কং গ্রীষ্মকালীন সময়", "COST": "কোলোম্বিয়া গ্রীষ্মকালীন সময়", "BT": "ভুটান সময়", "AEDT": "অস্ট্রেলীয় পূর্ব দিবালোক সময়", "SRT": "সুরিনাম সময়", "WIB": "পশ্চিমী ইন্দোনেশিয়া সময়", "HADT": "হাওয়াই-আলেউত দিবালোক সময়", "NZST": "নিউজিল্যান্ড মানক সময়", "OESZ": "পূর্ব ইউরোপের গ্রীষ্মকালীন সময়", "ACDT": "অস্ট্রেলীয় কেন্দ্রীয় দিবালোক সময়", "CDT": "কেন্দ্রীয় দিবালোক সময়", "MESZ": "মধ্য ইউরোপের গ্রীষ্মকালীন সময়", "ART": "আর্জেনটিনা মানক সময়", "ACWDT": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি দিবালোক সময়", "CLST": "চিলি গ্রীষ্মকাল সময়", "HNOG": "পশ্চিম গ্রীনল্যান্ড মানক সময়", "TMST": "তুর্কমেনিস্তান গ্রীষ্মকালীন সময়", "HENOMX": "উত্তরপশ্চিম মেক্সিকোর দিনের সময়", "ChST": "চামেরো মানক সময়", "UYST": "উরুগুয়ে গ্রীষ্মকালীন সময়", "ACWST": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি মানক সময়", "MYT": "মালয়েশিয়া সময়", "OEZ": "পূর্ব ইউরোপের মানক সময়", "HEEG": "পূর্ব গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "HEPMX": "মেক্সিকান প্রশান্ত মহাসাগরীয় দিবালোক সময়", "PDT": "প্রশান্ত মহাসাগরীয় অঞ্চলের দিনের সময়", "∅∅∅": "অ্যামাজন গ্রীষ্মকালীন সময়", "JST": "জাপান মানক সময়", "MST": "মাকাও মান সময়", "AKDT": "আলাস্কা দিবালোক সময়", "LHST": "লর্ড হাওয়ে মানক মসয়", "IST": "ভারতীয় মানক সময়", "VET": "ভেনেজুয়েলা সময়", "MDT": "মাকাও গ্রীষ্মকাল সময়", "HNNOMX": "উত্তরপশ্চিম মেক্সিকোর মানক সময়", "MEZ": "মধ্য ইউরোপের মানক সময়", "WAT": "পশ্চিম আফ্রিকা মানক সময়", "HNPM": "সেন্ট পিয়ের ও মিকেলন মানক সময়", "WIT": "পূর্ব ইন্দোনেশিয়া সময়", "AWDT": "অস্ট্রেলীয় পশ্চিমি দিবালোক সময়", "CHAST": "চ্যাথাম মানক সময়", "SGT": "সিঙ্গাপুর মানক সময়", "WESZ": "পশ্চিম ইউরোপের গ্রীষ্মকালীন সময়", "WAST": "পশ্চিম আফ্রিকা গ্রীষ্মকালীন সময়", "EDT": "পূর্বাঞ্চলের দিবালোক সময়", "HKT": "হং কং মানক সময়", "WITA": "কেন্দ্রীয় ইন্দোনেশিয়া সময়", "JDT": "জাপান দিবালোক সময়", "ADT": "অতলান্তিক দিবালোক সময়", "GFT": "ফরাসি গায়ানা সময়", "HNCU": "কিউবা মানক সময়", "WART": "পশ্চিমি আর্জেনটিনার প্রমাণ সময়", "WARST": "পশ্চিমি আর্জেনটিনা গৃষ্মকালীন সময়", "AST": "অতলান্তিক মানক সময়", "ACST": "অস্ট্রেলীয় কেন্দ্রীয় মানক সময়"},
}
}
diff --git a/bn_BD/bn_BD.go b/bn_BD/bn_BD.go
index 9fb0d116..06eaed0a 100644
--- a/bn_BD/bn_BD.go
+++ b/bn_BD/bn_BD.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"খ্রিস্টপূর্ব", "খৃষ্টাব্দ"},
erasNarrow: []string{"", ""},
erasWide: []string{"খ্রিস্টপূর্ব", "খৃষ্টাব্দ"},
- timezones: map[string]string{"PST": "প্রশান্ত মহাসাগরীয় অঞ্চলের মানক সময়", "AEDT": "অস্ট্রেলীয় পূর্ব দিবালোক সময়", "TMST": "তুর্কমেনিস্তান গ্রীষ্মকালীন সময়", "ECT": "ইকুয়েডর সময়", "HNPMX": "মেক্সিকান প্রশান্ত মহসাগরীয় মানক সময়", "AWDT": "অস্ট্রেলীয় পশ্চিমি দিবালোক সময়", "CLST": "চিলি গ্রীষ্মকাল সময়", "ChST": "চামেরো মানক সময়", "EST": "পূর্বাঞ্চলের প্রমাণ সময়", "EDT": "পূর্বাঞ্চলের দিবালোক সময়", "CDT": "কেন্দ্রীয় দিবালোক সময়", "WIB": "পশ্চিমী ইন্দোনেশিয়া সময়", "WEZ": "পশ্চিম ইউরোপের মানক সময়", "AEST": "অস্ট্রেলীয় পূর্ব মানক সময়", "WITA": "কেন্দ্রীয় ইন্দোনেশিয়া সময়", "HNPM": "সেন্ট পিয়ের ও মিকেলন মানক সময়", "LHST": "লর্ড হাওয়ে মানক মসয়", "HADT": "হাওয়াই-আলেউত দিবালোক সময়", "HEOG": "পশ্চিম গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "AKDT": "আলাস্কা দিবালোক সময়", "CLT": "চিলি মানক সময়", "WAT": "পশ্চিম আফ্রিকা মানক সময়", "MST": "মাকাও মান সময়", "ACWST": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি মানক সময়", "AWST": "অস্ট্রেলীয় পশ্চিমি মানক সময়", "NZDT": "নিউজিল্যান্ড দিবালোক সময়", "SAST": "দক্ষিণ আফ্রিকা মানক সময়", "GFT": "ফরাসি গায়ানা সময়", "TMT": "তুর্কমেনিস্তান মানক সময়", "OESZ": "পূর্ব ইউরোপের গ্রীষ্মকালীন সময়", "GMT": "গ্রীনিচ মিন টাইম", "VET": "ভেনেজুয়েলা সময়", "CST": "কেন্দ্রীয় মানক সময়", "ADT": "অতলান্তিক দিবালোক সময়", "HNT": "নিউফাউন্ডল্যান্ড মানক সময়", "HNOG": "পশ্চিম গ্রীনল্যান্ড মানক সময়", "CHAST": "চ্যাথাম মানক সময়", "IST": "ভারতীয় মানক সময়", "WART": "পশ্চিমি আর্জেনটিনার প্রমাণ সময়", "HNNOMX": "উত্তরপশ্চিম মেক্সিকোর মানক সময়", "HECU": "কিউবা দিবালোক সময়", "HEPMX": "মেক্সিকান প্রশান্ত মহাসাগরীয় দিবালোক সময়", "WIT": "পূর্ব ইন্দোনেশিয়া সময়", "ARST": "আর্জেনটিনা গ্রীষ্মকালীন সময়", "BOT": "বোলিভিয়া সময়", "ACST": "অস্ট্রেলীয় কেন্দ্রীয় মানক সময়", "WAST": "পশ্চিম আফ্রিকা গ্রীষ্মকালীন সময়", "UYT": "উরুগুয়ে মানক সময়", "AST": "অতলান্তিক মানক সময়", "JDT": "জাপান দিবালোক সময়", "HEEG": "পূর্ব গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "WARST": "পশ্চিমি আর্জেনটিনা গৃষ্মকালীন সময়", "HENOMX": "উত্তরপশ্চিম মেক্সিকোর দিনের সময়", "HNCU": "কিউবা মানক সময়", "HAST": "হাওয়াই-আলেউত মানক সময়", "SRT": "সুরিনাম সময়", "PDT": "প্রশান্ত মহাসাগরীয় অঞ্চলের দিনের সময়", "HEPM": "সেন্ট পিয়ের ও মিকেলন দিবালোক সময়", "CHADT": "চ্যাথাম দিবালোক সময়", "JST": "জাপান মানক সময়", "NZST": "নিউজিল্যান্ড মানক সময়", "MYT": "মালয়েশিয়া সময়", "BT": "ভুটান সময়", "WESZ": "পশ্চিম ইউরোপের গ্রীষ্মকালীন সময়", "HKST": "হং কং গ্রীষ্মকালীন সময়", "LHDT": "লর্ড হাওয়ে দিবালোক মসয়", "ACDT": "অস্ট্রেলীয় কেন্দ্রীয় দিবালোক সময়", "SGT": "সিঙ্গাপুর মানক সময়", "AKST": "আলাস্কা মানক সময়", "HAT": "নিউফাউন্ডল্যান্ড দিবালোক সময়", "HNEG": "পূর্ব গ্রীনল্যান্ড মানক সময়", "EAT": "পূর্ব আফ্রিকা সময়", "ACWDT": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি দিবালোক সময়", "ART": "আর্জেনটিনা মানক সময়", "∅∅∅": "অ্যামাজন গ্রীষ্মকালীন সময়", "OEZ": "পূর্ব ইউরোপের মানক সময়", "MDT": "মাকাও গ্রীষ্মকাল সময়", "GYT": "গুয়ানা সময়", "HKT": "হং কং মানক সময়", "MEZ": "মধ্য ইউরোপের মানক সময়", "MESZ": "মধ্য ইউরোপের গ্রীষ্মকালীন সময়", "CAT": "মধ্য আফ্রিকা সময়", "COT": "কোলোম্বিয়া মানক সময়", "COST": "কোলোম্বিয়া গ্রীষ্মকালীন সময়", "UYST": "উরুগুয়ে গ্রীষ্মকালীন সময়"},
+ timezones: map[string]string{"MESZ": "মধ্য ইউরোপের গ্রীষ্মকালীন সময়", "ACST": "অস্ট্রেলীয় কেন্দ্রীয় মানক সময়", "HNPMX": "মেক্সিকান প্রশান্ত মহসাগরীয় মানক সময়", "AWST": "অস্ট্রেলীয় পশ্চিমি মানক সময়", "JST": "জাপান মানক সময়", "HNT": "নিউফাউন্ডল্যান্ড মানক সময়", "LHDT": "লর্ড হাওয়ে দিবালোক মসয়", "BOT": "বোলিভিয়া সময়", "PDT": "প্রশান্ত মহাসাগরীয় অঞ্চলের দিনের সময়", "CAT": "মধ্য আফ্রিকা সময়", "WEZ": "পশ্চিম ইউরোপের মানক সময়", "MST": "মাকাও মান সময়", "WITA": "কেন্দ্রীয় ইন্দোনেশিয়া সময়", "CST": "কেন্দ্রীয় মানক সময়", "AWDT": "অস্ট্রেলীয় পশ্চিমি দিবালোক সময়", "OESZ": "পূর্ব ইউরোপের গ্রীষ্মকালীন সময়", "AST": "অতলান্তিক মানক সময়", "COST": "কোলোম্বিয়া গ্রীষ্মকালীন সময়", "HNEG": "পূর্ব গ্রীনল্যান্ড মানক সময়", "CHAST": "চ্যাথাম মানক সময়", "NZST": "নিউজিল্যান্ড মানক সময়", "OEZ": "পূর্ব ইউরোপের মানক সময়", "HEOG": "পশ্চিম গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "ART": "আর্জেনটিনা মানক সময়", "UYT": "উরুগুয়ে মানক সময়", "PST": "প্রশান্ত মহাসাগরীয় অঞ্চলের মানক সময়", "IST": "ভারতীয় মানক সময়", "MYT": "মালয়েশিয়া সময়", "HNNOMX": "উত্তরপশ্চিম মেক্সিকোর মানক সময়", "HKT": "হং কং মানক সময়", "HKST": "হং কং গ্রীষ্মকালীন সময়", "WIB": "পশ্চিমী ইন্দোনেশিয়া সময়", "CDT": "কেন্দ্রীয় দিবালোক সময়", "HADT": "হাওয়াই-আলেউত দিবালোক সময়", "ACWDT": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি দিবালোক সময়", "CLST": "চিলি গ্রীষ্মকাল সময়", "HNOG": "পশ্চিম গ্রীনল্যান্ড মানক সময়", "SGT": "সিঙ্গাপুর মানক সময়", "EAT": "পূর্ব আফ্রিকা সময়", "WIT": "পূর্ব ইন্দোনেশিয়া সময়", "WESZ": "পশ্চিম ইউরোপের গ্রীষ্মকালীন সময়", "MDT": "মাকাও গ্রীষ্মকাল সময়", "UYST": "উরুগুয়ে গ্রীষ্মকালীন সময়", "HEPM": "সেন্ট পিয়ের ও মিকেলন দিবালোক সময়", "ECT": "ইকুয়েডর সময়", "ARST": "আর্জেনটিনা গ্রীষ্মকালীন সময়", "BT": "ভুটান সময়", "AKDT": "আলাস্কা দিবালোক সময়", "JDT": "জাপান দিবালোক সময়", "ACDT": "অস্ট্রেলীয় কেন্দ্রীয় দিবালোক সময়", "LHST": "লর্ড হাওয়ে মানক মসয়", "GYT": "গুয়ানা সময়", "MEZ": "মধ্য ইউরোপের মানক সময়", "GMT": "গ্রীনিচ মিন টাইম", "CLT": "চিলি মানক সময়", "HEPMX": "মেক্সিকান প্রশান্ত মহাসাগরীয় দিবালোক সময়", "SAST": "দক্ষিণ আফ্রিকা মানক সময়", "HAST": "হাওয়াই-আলেউত মানক সময়", "TMT": "তুর্কমেনিস্তান মানক সময়", "WAT": "পশ্চিম আফ্রিকা মানক সময়", "AKST": "আলাস্কা মানক সময়", "WARST": "পশ্চিমি আর্জেনটিনা গৃষ্মকালীন সময়", "HAT": "নিউফাউন্ডল্যান্ড দিবালোক সময়", "AEDT": "অস্ট্রেলীয় পূর্ব দিবালোক সময়", "ChST": "চামেরো মানক সময়", "EDT": "পূর্বাঞ্চলের দিবালোক সময়", "WAST": "পশ্চিম আফ্রিকা গ্রীষ্মকালীন সময়", "COT": "কোলোম্বিয়া মানক সময়", "HEEG": "পূর্ব গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "ACWST": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি মানক সময়", "WART": "পশ্চিমি আর্জেনটিনার প্রমাণ সময়", "ADT": "অতলান্তিক দিবালোক সময়", "EST": "পূর্বাঞ্চলের প্রমাণ সময়", "GFT": "ফরাসি গায়ানা সময়", "TMST": "তুর্কমেনিস্তান গ্রীষ্মকালীন সময়", "HECU": "কিউবা দিবালোক সময়", "CHADT": "চ্যাথাম দিবালোক সময়", "AEST": "অস্ট্রেলীয় পূর্ব মানক সময়", "HNPM": "সেন্ট পিয়ের ও মিকেলন মানক সময়", "SRT": "সুরিনাম সময়", "HNCU": "কিউবা মানক সময়", "NZDT": "নিউজিল্যান্ড দিবালোক সময়", "∅∅∅": "অ্যামাজন গ্রীষ্মকালীন সময়", "VET": "ভেনেজুয়েলা সময়", "HENOMX": "উত্তরপশ্চিম মেক্সিকোর দিনের সময়"},
}
}
diff --git a/bn_IN/bn_IN.go b/bn_IN/bn_IN.go
index 8c69d600..b7cab55a 100644
--- a/bn_IN/bn_IN.go
+++ b/bn_IN/bn_IN.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"খ্রিস্টপূর্ব", "খৃষ্টাব্দ"},
erasNarrow: []string{"", ""},
erasWide: []string{"খ্রিস্টপূর্ব", "খৃষ্টাব্দ"},
- timezones: map[string]string{"AWDT": "অস্ট্রেলীয় পশ্চিমি দিবালোক সময়", "HKST": "হং কং গ্রীষ্মকালীন সময়", "MESZ": "মধ্য ইউরোপের গ্রীষ্মকালীন সময়", "JDT": "জাপান দিবালোক সময়", "WAST": "পশ্চিম আফ্রিকা গ্রীষ্মকালীন সময়", "SGT": "সিঙ্গাপুর মানক সময়", "ART": "আর্জেনটিনা মানক সময়", "AWST": "অস্ট্রেলীয় পশ্চিমি মানক সময়", "CST": "কেন্দ্রীয় মানক সময়", "BT": "ভুটান সময়", "GMT": "গ্রীনিচ মিন টাইম", "HNCU": "কিউবা মানক সময়", "ACWST": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি মানক সময়", "HEOG": "পশ্চিম গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "TMST": "তুর্কমেনিস্তান গ্রীষ্মকালীন সময়", "CAT": "মধ্য আফ্রিকা সময়", "AST": "অতলান্তিক মানক সময়", "VET": "ভেনেজুয়েলা সময়", "WIT": "পূর্ব ইন্দোনেশিয়া সময়", "AEDT": "অস্ট্রেলীয় পূর্ব দিবালোক সময়", "HNEG": "পূর্ব গ্রীনল্যান্ড মানক সময়", "HECU": "কিউবা দিবালোক সময়", "UYST": "উরুগুয়ে গ্রীষ্মকালীন সময়", "WITA": "কেন্দ্রীয় ইন্দোনেশিয়া সময়", "HEPM": "সেন্ট পিয়ের ও মিকেলন দিবালোক সময়", "CHAST": "চ্যাথাম মানক সময়", "WAT": "পশ্চিম আফ্রিকা মানক সময়", "COST": "কোলোম্বিয়া গ্রীষ্মকালীন সময়", "EST": "পূর্বাঞ্চলের প্রমাণ সময়", "HNT": "নিউফাউন্ডল্যান্ড মানক সময়", "HKT": "হং কং মানক সময়", "HNPM": "সেন্ট পিয়ের ও মিকেলন মানক সময়", "WART": "পশ্চিমি আর্জেনটিনার প্রমাণ সময়", "ARST": "আর্জেনটিনা গ্রীষ্মকালীন সময়", "MEZ": "মধ্য ইউরোপের মানক সময়", "CLT": "চিলি মানক সময়", "COT": "কোলোম্বিয়া মানক সময়", "AKDT": "আলাস্কা দিবালোক সময়", "WESZ": "পশ্চিম ইউরোপের গ্রীষ্মকালীন সময়", "ACWDT": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি দিবালোক সময়", "NZDT": "নিউজিল্যান্ড দিবালোক সময়", "HEEG": "পূর্ব গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "LHDT": "লর্ড হাওয়ে দিবালোক মসয়", "ChST": "চামেরো মানক সময়", "TMT": "তুর্কমেনিস্তান মানক সময়", "ACDT": "অস্ট্রেলীয় কেন্দ্রীয় দিবালোক সময়", "OESZ": "পূর্ব ইউরোপের গ্রীষ্মকালীন সময়", "HNOG": "পশ্চিম গ্রীনল্যান্ড মানক সময়", "AEST": "অস্ট্রেলীয় পূর্ব মানক সময়", "EDT": "পূর্বাঞ্চলের দিবালোক সময়", "MYT": "মালয়েশিয়া সময়", "NZST": "নিউজিল্যান্ড মানক সময়", "OEZ": "পূর্ব ইউরোপের মানক সময়", "HNPMX": "মেক্সিকান প্রশান্ত মহসাগরীয় মানক সময়", "CDT": "কেন্দ্রীয় দিবালোক সময়", "HADT": "হাওয়াই-আলেউত দিবালোক সময়", "CLST": "চিলি গ্রীষ্মকাল সময়", "GFT": "ফরাসি গায়ানা সময়", "UYT": "উরুগুয়ে মানক সময়", "HAST": "হাওয়াই-আলেউত মানক সময়", "SRT": "সুরিনাম সময়", "PST": "প্রশান্ত মহাসাগরীয় অঞ্চলের মানক সময়", "HAT": "নিউফাউন্ডল্যান্ড দিবালোক সময়", "HNNOMX": "উত্তরপশ্চিম মেক্সিকোর মানক সময়", "MDT": "মাকাও গ্রীষ্মকাল সময়", "GYT": "গুয়ানা সময়", "JST": "জাপান মানক সময়", "BOT": "বোলিভিয়া সময়", "LHST": "লর্ড হাওয়ে মানক মসয়", "CHADT": "চ্যাথাম দিবালোক সময়", "IST": "ভারতীয় মানক সময়", "ACST": "অস্ট্রেলীয় কেন্দ্রীয় মানক সময়", "ECT": "ইকুয়েডর সময়", "MST": "মাকাও মান সময়", "PDT": "প্রশান্ত মহাসাগরীয় অঞ্চলের দিনের সময়", "WEZ": "পশ্চিম ইউরোপের মানক সময়", "HEPMX": "মেক্সিকান প্রশান্ত মহাসাগরীয় দিবালোক সময়", "WIB": "পশ্চিমী ইন্দোনেশিয়া সময়", "∅∅∅": "অ্যামাজন গ্রীষ্মকালীন সময়", "WARST": "পশ্চিমি আর্জেনটিনা গৃষ্মকালীন সময়", "HENOMX": "উত্তরপশ্চিম মেক্সিকোর দিনের সময়", "AKST": "আলাস্কা মানক সময়", "ADT": "অতলান্তিক দিবালোক সময়", "SAST": "দক্ষিণ আফ্রিকা মানক সময়", "EAT": "পূর্ব আফ্রিকা সময়"},
+ timezones: map[string]string{"GYT": "গুয়ানা সময়", "AWDT": "অস্ট্রেলীয় পশ্চিমি দিবালোক সময়", "CLST": "চিলি গ্রীষ্মকাল সময়", "HENOMX": "উত্তরপশ্চিম মেক্সিকোর দিনের সময়", "AEDT": "অস্ট্রেলীয় পূর্ব দিবালোক সময়", "UYST": "উরুগুয়ে গ্রীষ্মকালীন সময়", "HEPM": "সেন্ট পিয়ের ও মিকেলন দিবালোক সময়", "HNPMX": "মেক্সিকান প্রশান্ত মহসাগরীয় মানক সময়", "HNCU": "কিউবা মানক সময়", "HAST": "হাওয়াই-আলেউত মানক সময়", "HAT": "নিউফাউন্ডল্যান্ড দিবালোক সময়", "JDT": "জাপান দিবালোক সময়", "MDT": "মাকাও গ্রীষ্মকাল সময়", "EDT": "পূর্বাঞ্চলের দিবালোক সময়", "SAST": "দক্ষিণ আফ্রিকা মানক সময়", "PST": "প্রশান্ত মহাসাগরীয় অঞ্চলের মানক সময়", "ACWDT": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি দিবালোক সময়", "CAT": "মধ্য আফ্রিকা সময়", "MYT": "মালয়েশিয়া সময়", "∅∅∅": "এজোরেস গ্রীষ্মকালীন সময়", "CST": "কেন্দ্রীয় মানক সময়", "CDT": "কেন্দ্রীয় দিবালোক সময়", "BT": "ভুটান সময়", "HEEG": "পূর্ব গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "AEST": "অস্ট্রেলীয় পূর্ব মানক সময়", "HADT": "হাওয়াই-আলেউত দিবালোক সময়", "MEZ": "মধ্য ইউরোপের মানক সময়", "HNOG": "পশ্চিম গ্রীনল্যান্ড মানক সময়", "HNPM": "সেন্ট পিয়ের ও মিকেলন মানক সময়", "GMT": "গ্রীনিচ মিন টাইম", "ART": "আর্জেনটিনা মানক সময়", "VET": "ভেনেজুয়েলা সময়", "ACST": "অস্ট্রেলীয় কেন্দ্রীয় মানক সময়", "COST": "কোলোম্বিয়া গ্রীষ্মকালীন সময়", "GFT": "ফরাসি গায়ানা সময়", "AKST": "আলাস্কা মানক সময়", "WIB": "পশ্চিমী ইন্দোনেশিয়া সময়", "CHAST": "চ্যাথাম মানক সময়", "MESZ": "মধ্য ইউরোপের গ্রীষ্মকালীন সময়", "HNEG": "পূর্ব গ্রীনল্যান্ড মানক সময়", "IST": "ভারতীয় মানক সময়", "NZDT": "নিউজিল্যান্ড দিবালোক সময়", "WESZ": "পশ্চিম ইউরোপের গ্রীষ্মকালীন সময়", "ADT": "অতলান্তিক দিবালোক সময়", "TMST": "তুর্কমেনিস্তান গ্রীষ্মকালীন সময়", "ARST": "আর্জেনটিনা গ্রীষ্মকালীন সময়", "BOT": "বোলিভিয়া সময়", "PDT": "প্রশান্ত মহাসাগরীয় অঞ্চলের দিনের সময়", "CLT": "চিলি মানক সময়", "HKT": "হং কং মানক সময়", "HKST": "হং কং গ্রীষ্মকালীন সময়", "LHDT": "লর্ড হাওয়ে দিবালোক মসয়", "SGT": "সিঙ্গাপুর মানক সময়", "NZST": "নিউজিল্যান্ড মানক সময়", "WAT": "পশ্চিম আফ্রিকা মানক সময়", "EST": "পূর্বাঞ্চলের প্রমাণ সময়", "COT": "কোলোম্বিয়া মানক সময়", "AKDT": "আলাস্কা দিবালোক সময়", "WART": "পশ্চিমি আর্জেনটিনার প্রমাণ সময়", "WARST": "পশ্চিমি আর্জেনটিনা গৃষ্মকালীন সময়", "HEOG": "পশ্চিম গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "JST": "জাপান মানক সময়", "AST": "অতলান্তিক মানক সময়", "WEZ": "পশ্চিম ইউরোপের মানক সময়", "HNT": "নিউফাউন্ডল্যান্ড মানক সময়", "ChST": "চামেরো মানক সময়", "SRT": "সুরিনাম সময়", "ACWST": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি মানক সময়", "HNNOMX": "উত্তরপশ্চিম মেক্সিকোর মানক সময়", "CHADT": "চ্যাথাম দিবালোক সময়", "ECT": "ইকুয়েডর সময়", "ACDT": "অস্ট্রেলীয় কেন্দ্রীয় দিবালোক সময়", "HECU": "কিউবা দিবালোক সময়", "WIT": "পূর্ব ইন্দোনেশিয়া সময়", "TMT": "তুর্কমেনিস্তান মানক সময়", "WAST": "পশ্চিম আফ্রিকা গ্রীষ্মকালীন সময়", "UYT": "উরুগুয়ে মানক সময়", "HEPMX": "মেক্সিকান প্রশান্ত মহাসাগরীয় দিবালোক সময়", "EAT": "পূর্ব আফ্রিকা সময়", "OESZ": "পূর্ব ইউরোপের গ্রীষ্মকালীন সময়", "MST": "মাকাও মান সময়", "WITA": "কেন্দ্রীয় ইন্দোনেশিয়া সময়", "LHST": "লর্ড হাওয়ে মানক মসয়", "AWST": "অস্ট্রেলীয় পশ্চিমি মানক সময়", "OEZ": "পূর্ব ইউরোপের মানক সময়"},
}
}
diff --git a/bo/bo.go b/bo/bo.go
index 4d84656d..f1e092d2 100644
--- a/bo/bo.go
+++ b/bo/bo.go
@@ -64,7 +64,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"སྤྱི་ལོ་སྔོན་", "སྤྱི་ལོ་"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"WESZ": "WESZ", "MESZ": "MESZ", "CLT": "CLT", "GFT": "GFT", "IST": "IST", "JDT": "JDT", "TMST": "TMST", "HEPMX": "HEPMX", "WIB": "WIB", "ARST": "ARST", "PDT": "PDT", "MEZ": "MEZ", "ADT": "ADT", "AEST": "AEST", "LHST": "LHST", "CLST": "CLST", "TMT": "TMT", "GMT": "GMT", "HNT": "HNT", "WEZ": "WEZ", "HNPM": "HNPM", "NZST": "NZST", "WARST": "WARST", "WIT": "WIT", "ACWDT": "ACWDT", "OEZ": "OEZ", "OESZ": "OESZ", "ACST": "ACST", "HNNOMX": "HNNOMX", "COST": "COST", "HNCU": "HNCU", "HEOG": "HEOG", "JST": "JST", "EST": "EST", "AST": "AST", "WAT": "WAT", "MST": "MST", "AKST": "AKST", "CDT": "CDT", "UYT": "UYT", "ACDT": "ACDT", "HENOMX": "HENOMX", "VET": "VET", "HEEG": "HEEG", "NZDT": "NZDT", "LHDT": "LHDT", "ECT": "ECT", "AKDT": "AKDT", "HADT": "HADT", "ART": "ART", "HNOG": "HNOG", "AEDT": "AEDT", "MYT": "MYT", "UYST": "UYST", "HAST": "HAST", "CHAST": "CHAST", "BOT": "BOT", "∅∅∅": "∅∅∅", "EDT": "EDT", "AWST": "AWST", "ChST": "ChST", "CHADT": "CHADT", "COT": "COT", "HECU": "HECU", "MDT": "MDT", "GYT": "GYT", "HKT": "HKT", "WAST": "WAST", "BT": "BT", "ACWST": "ACWST", "HKST": "HKST", "HEPM": "HEPM", "SAST": "SAST", "AWDT": "AWDT", "CAT": "CAT", "WART": "WART", "SRT": "SRT", "HAT": "HAT", "PST": "PST", "WITA": "WITA", "SGT": "SGT", "HNPMX": "HNPMX", "CST": "CST", "HNEG": "HNEG", "EAT": "EAT"},
+ timezones: map[string]string{"IST": "IST", "MESZ": "MESZ", "EST": "EST", "EAT": "EAT", "CDT": "CDT", "AWST": "AWST", "PDT": "PDT", "HAST": "HAST", "ART": "ART", "ACDT": "ACDT", "CLST": "CLST", "WARST": "WARST", "GMT": "GMT", "WITA": "WITA", "HECU": "HECU", "WIB": "WIB", "CST": "CST", "MEZ": "MEZ", "OEZ": "OEZ", "HAT": "HAT", "ACWDT": "ACWDT", "WAST": "WAST", "HKST": "HKST", "CHADT": "CHADT", "ACWST": "ACWST", "ARST": "ARST", "BT": "BT", "HNEG": "HNEG", "AEST": "AEST", "ChST": "ChST", "CHAST": "CHAST", "HNOG": "HNOG", "MDT": "MDT", "ADT": "ADT", "COT": "COT", "HNNOMX": "HNNOMX", "LHST": "LHST", "JDT": "JDT", "HEOG": "HEOG", "ACST": "ACST", "HEEG": "HEEG", "UYT": "UYT", "SRT": "SRT", "HNCU": "HNCU", "WESZ": "WESZ", "WART": "WART", "HNT": "HNT", "AEDT": "AEDT", "UYST": "UYST", "HNPM": "HNPM", "AST": "AST", "TMST": "TMST", "AWDT": "AWDT", "WAT": "WAT", "HNPMX": "HNPMX", "AKST": "AKST", "HEPMX": "HEPMX", "WIT": "WIT", "CLT": "CLT", "WEZ": "WEZ", "OESZ": "OESZ", "MYT": "MYT", "GFT": "GFT", "HEPM": "HEPM", "HADT": "HADT", "NZST": "NZST", "HENOMX": "HENOMX", "SAST": "SAST", "LHDT": "LHDT", "CAT": "CAT", "NZDT": "NZDT", "MST": "MST", "AKDT": "AKDT", "GYT": "GYT", "BOT": "BOT", "∅∅∅": "∅∅∅", "TMT": "TMT", "COST": "COST", "JST": "JST", "EDT": "EDT", "VET": "VET", "HKT": "HKT", "SGT": "SGT", "PST": "PST", "ECT": "ECT"},
}
}
diff --git a/bo_CN/bo_CN.go b/bo_CN/bo_CN.go
index fd359719..de7e99b1 100644
--- a/bo_CN/bo_CN.go
+++ b/bo_CN/bo_CN.go
@@ -64,7 +64,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"སྤྱི་ལོ་སྔོན་", "སྤྱི་ལོ་"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"MYT": "MYT", "VET": "VET", "SRT": "SRT", "HKST": "HKST", "CAT": "CAT", "HAST": "HAST", "HEPM": "HEPM", "CLT": "CLT", "ACDT": "ACDT", "OESZ": "OESZ", "GYT": "GYT", "UYST": "UYST", "ARST": "ARST", "AEST": "AEST", "TMST": "TMST", "ChST": "ChST", "WART": "WART", "HEOG": "HEOG", "NZST": "NZST", "MESZ": "MESZ", "COST": "COST", "HECU": "HECU", "NZDT": "NZDT", "CHADT": "CHADT", "AKST": "AKST", "HNCU": "HNCU", "ADT": "ADT", "UYT": "UYT", "HKT": "HKT", "BOT": "BOT", "ECT": "ECT", "JDT": "JDT", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "HADT": "HADT", "ACWDT": "ACWDT", "SAST": "SAST", "CHAST": "CHAST", "GFT": "GFT", "SGT": "SGT", "HAT": "HAT", "PST": "PST", "HNPM": "HNPM", "GMT": "GMT", "BT": "BT", "CLST": "CLST", "COT": "COT", "WAST": "WAST", "EAT": "EAT", "MST": "MST", "ACWST": "ACWST", "HNEG": "HNEG", "WAT": "WAT", "WIT": "WIT", "EST": "EST", "CDT": "CDT", "ACST": "ACST", "CST": "CST", "HNT": "HNT", "PDT": "PDT", "WESZ": "WESZ", "JST": "JST", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "EDT": "EDT", "MDT": "MDT", "ART": "ART", "AWST": "AWST", "IST": "IST", "AST": "AST", "MEZ": "MEZ", "LHST": "LHST", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "TMT": "TMT", "HNOG": "HNOG", "WITA": "WITA", "AEDT": "AEDT", "OEZ": "OEZ", "WARST": "WARST", "HNPMX": "HNPMX", "WIB": "WIB", "WEZ": "WEZ", "AWDT": "AWDT", "HEEG": "HEEG"},
+ timezones: map[string]string{"HNEG": "HNEG", "SRT": "SRT", "MEZ": "MEZ", "CLT": "CLT", "TMT": "TMT", "TMST": "TMST", "EDT": "EDT", "COST": "COST", "AWDT": "AWDT", "GMT": "GMT", "ACST": "ACST", "MYT": "MYT", "MST": "MST", "AEST": "AEST", "BOT": "BOT", "ADT": "ADT", "WEZ": "WEZ", "WAST": "WAST", "ChST": "ChST", "LHDT": "LHDT", "CHAST": "CHAST", "WESZ": "WESZ", "HEOG": "HEOG", "ARST": "ARST", "UYST": "UYST", "HNPMX": "HNPMX", "ACWDT": "ACWDT", "JDT": "JDT", "WART": "WART", "EST": "EST", "WITA": "WITA", "WIB": "WIB", "NZST": "NZST", "ACWST": "ACWST", "ACDT": "ACDT", "BT": "BT", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "CDT": "CDT", "HADT": "HADT", "HAT": "HAT", "HEPMX": "HEPMX", "NZDT": "NZDT", "MESZ": "MESZ", "VET": "VET", "HKT": "HKT", "HNPM": "HNPM", "LHST": "LHST", "PST": "PST", "HKST": "HKST", "SAST": "SAST", "OEZ": "OEZ", "WARST": "WARST", "ART": "ART", "HNT": "HNT", "PDT": "PDT", "GYT": "GYT", "CST": "CST", "AST": "AST", "COT": "COT", "HEEG": "HEEG", "AKST": "AKST", "GFT": "GFT", "HEPM": "HEPM", "ECT": "ECT", "CLST": "CLST", "HNCU": "HNCU", "HECU": "HECU", "AWST": "AWST", "CHADT": "CHADT", "HAST": "HAST", "CAT": "CAT", "IST": "IST", "OESZ": "OESZ", "MDT": "MDT", "UYT": "UYT", "EAT": "EAT", "WIT": "WIT", "SGT": "SGT", "JST": "JST", "HNOG": "HNOG", "WAT": "WAT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AEDT": "AEDT"},
}
}
diff --git a/bo_IN/bo_IN.go b/bo_IN/bo_IN.go
index a8fb1b41..a11ccbfa 100644
--- a/bo_IN/bo_IN.go
+++ b/bo_IN/bo_IN.go
@@ -64,7 +64,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"སྤྱི་ལོ་སྔོན་", "སྤྱི་ལོ་"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HEOG": "HEOG", "AWST": "AWST", "NZST": "NZST", "ACDT": "ACDT", "MST": "MST", "ADT": "ADT", "GYT": "GYT", "HADT": "HADT", "VET": "VET", "HNT": "HNT", "WESZ": "WESZ", "HEPM": "HEPM", "HENOMX": "HENOMX", "EDT": "EDT", "WIB": "WIB", "PDT": "PDT", "AEST": "AEST", "AWDT": "AWDT", "CLST": "CLST", "CAT": "CAT", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "HAT": "HAT", "LHST": "LHST", "LHDT": "LHDT", "OESZ": "OESZ", "GMT": "GMT", "BT": "BT", "HKST": "HKST", "ECT": "ECT", "HNEG": "HNEG", "HNCU": "HNCU", "WITA": "WITA", "CHAST": "CHAST", "EAT": "EAT", "COST": "COST", "CST": "CST", "TMT": "TMT", "EST": "EST", "ART": "ART", "MESZ": "MESZ", "GFT": "GFT", "ChST": "ChST", "WARST": "WARST", "COT": "COT", "HNPMX": "HNPMX", "WAST": "WAST", "ACWST": "ACWST", "HECU": "HECU", "UYST": "UYST", "HAST": "HAST", "SAST": "SAST", "JDT": "JDT", "MDT": "MDT", "AST": "AST", "NZDT": "NZDT", "HNPM": "HNPM", "IST": "IST", "CLT": "CLT", "HEEG": "HEEG", "ACST": "ACST", "∅∅∅": "∅∅∅", "SRT": "SRT", "HNOG": "HNOG", "CHADT": "CHADT", "OEZ": "OEZ", "AKST": "AKST", "WEZ": "WEZ", "AEDT": "AEDT", "TMST": "TMST", "MYT": "MYT", "WIT": "WIT", "JST": "JST", "HKT": "HKT", "MEZ": "MEZ", "BOT": "BOT", "WAT": "WAT", "WART": "WART", "SGT": "SGT", "ARST": "ARST", "CDT": "CDT", "ACWDT": "ACWDT", "PST": "PST", "AKDT": "AKDT", "UYT": "UYT"},
+ timezones: map[string]string{"TMT": "TMT", "AKDT": "AKDT", "UYST": "UYST", "HECU": "HECU", "CST": "CST", "CLT": "CLT", "HEOG": "HEOG", "HEEG": "HEEG", "AEDT": "AEDT", "CHAST": "CHAST", "HADT": "HADT", "OEZ": "OEZ", "MDT": "MDT", "PST": "PST", "CLST": "CLST", "HNT": "HNT", "GFT": "GFT", "WAT": "WAT", "ACST": "ACST", "COST": "COST", "SGT": "SGT", "BOT": "BOT", "MESZ": "MESZ", "VET": "VET", "NZST": "NZST", "EDT": "EDT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "GYT": "GYT", "HNCU": "HNCU", "PDT": "PDT", "ACWDT": "ACWDT", "ChST": "ChST", "WITA": "WITA", "AEST": "AEST", "ACWST": "ACWST", "NZDT": "NZDT", "BT": "BT", "HAT": "HAT", "JST": "JST", "ACDT": "ACDT", "HNPM": "HNPM", "HEPMX": "HEPMX", "CDT": "CDT", "∅∅∅": "∅∅∅", "ADT": "ADT", "WARST": "WARST", "AWDT": "AWDT", "WEZ": "WEZ", "MST": "MST", "AKST": "AKST", "WESZ": "WESZ", "GMT": "GMT", "WAST": "WAST", "ECT": "ECT", "IST": "IST", "MEZ": "MEZ", "HNOG": "HNOG", "WIB": "WIB", "HEPM": "HEPM", "EAT": "EAT", "ARST": "ARST", "EST": "EST", "ART": "ART", "HAST": "HAST", "CAT": "CAT", "OESZ": "OESZ", "WART": "WART", "CHADT": "CHADT", "COT": "COT", "HKT": "HKT", "HNEG": "HNEG", "LHST": "LHST", "HNPMX": "HNPMX", "AWST": "AWST", "JDT": "JDT", "AST": "AST", "MYT": "MYT", "SRT": "SRT", "SAST": "SAST", "LHDT": "LHDT", "WIT": "WIT", "TMST": "TMST", "HKST": "HKST", "UYT": "UYT"},
}
}
diff --git a/br/br.go b/br/br.go
index 53f9a682..75cd806a 100644
--- a/br/br.go
+++ b/br/br.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a-raok J.K.", "goude J.K."},
erasNarrow: []string{"a-raok J.K.", "goude J.K."},
erasWide: []string{"a-raok Jezuz-Krist", "goude Jezuz-Krist"},
- timezones: map[string]string{"JST": "eur cʼhoañv Japan", "WAT": "eur cʼhoañv Afrika ar Cʼhornôg", "HECU": "eur hañv Kuba", "EST": "eur cʼhoañv ar Reter", "CDT": "CDT", "WIT": "eur Indonezia ar Reter", "MEZ": "eur cʼhoañv Kreizeuropa", "CHADT": "eur hañv Chatham", "HNEG": "eur cʼhoañv Greunland ar Reter", "HEEG": "eur hañv Greunland ar Reter", "GFT": "eur Gwiana cʼhall", "ACST": "eur cʼhoañv Kreizaostralia", "ART": "eur cʼhoañv Arcʼhantina", "WITA": "WITA", "CHAST": "eur cʼhoañv Chatham", "IST": "eur cʼhoañv India", "CLST": "eur hañv Chile", "CAT": "eur Kreizafrika", "HNCU": "eur cʼhoañv Kuba", "ACWDT": "eur hañv Kreizaostralia ar Cʼhornôg", "AWST": "eur cʼhoañv Aostralia ar Cʼhornôg", "NZST": "eur cʼhoañv Zeland-Nevez", "TMT": "eur cʼhoañv Turkmenistan", "WART": "eur cʼhoañv Arcʼhantina ar Cʼhornôg", "CST": "CST", "SAST": "eur cʼhoañv Suafrika", "ECT": "eur Ecuador", "AEDT": "eur hañv Aostralia ar Reter", "MESZ": "eur hañv Kreizeuropa", "LHDT": "LHDT", "AWDT": "eur hañv Aostralia ar Cʼhornôg", "HNPM": "eur cʼhoañv Sant-Pêr-ha-Mikelon", "WIB": "eur Indonezia ar Cʼhornôg", "PST": "PST", "PDT": "PDT", "COT": "eur cʼhoañv Kolombia", "HADT": "HADT", "∅∅∅": "eur hañv an Amazon", "WARST": "eur hañv Arcʼhantina ar Cʼhornôg", "TMST": "eur hañv Turkmenistan", "COST": "eur hañv Kolombia", "EDT": "eur hañv ar Reter", "MYT": "eur Malaysia", "UYST": "eur hañv Uruguay", "ADT": "ADT", "ACWST": "eur cʼhoañv Kreizaostralia ar Cʼhornôg", "ARST": "eur hañv Arcʼhantina", "EAT": "eur Afrika ar Reter", "OESZ": "eur hañv Europa ar Reter", "HNPMX": "HNPMX", "AKDT": "eur hañv Alaska", "WEZ": "eur cʼhoañv Europa ar Cʼhornôg", "CLT": "eur cʼhoañv Chile", "ChST": "ChST", "JDT": "eur hañv Japan", "HEPMX": "HEPMX", "UYT": "eur cʼhoañv Uruguay", "HNNOMX": "eur cʼhoañv Gwalarn Mecʼhiko", "HENOMX": "eur hañv Gwalarn Mecʼhiko", "BT": "eur Bhoutan", "ACDT": "eur hañv Kreizaostralia", "WAST": "eur hañv Afrika ar Cʼhornôg", "GYT": "eur Guyana", "AKST": "eur cʼhoañv Alaska", "AEST": "eur cʼhoañv Aostralia ar Reter", "BOT": "eur Bolivia", "SGT": "eur cʼhoañv Singapour", "AST": "AST", "HAT": "eur hañv Newfoundland", "HKT": "eur cʼhoañv Hong Kong", "HEPM": "eur hañv Sant-Pêr-ha-Mikelon", "HNOG": "eur cʼhoañv Greunland ar Cʼhornôg", "HEOG": "eur hañv Greunland ar Cʼhornôg", "HNT": "eur cʼhoañv Newfoundland", "NZDT": "eur hañv Zeland-Nevez", "MST": "eur cʼhoañv ar Menezioù", "HAST": "HAST", "VET": "eur Venezuela", "HKST": "eur hañv Hong Kong", "LHST": "LHST", "OEZ": "eur cʼhoañv Europa ar Reter", "GMT": "Amzer keitat Greenwich (AKG)", "MDT": "eur hañv ar Menezioù", "SRT": "eur Surinam", "WESZ": "eur hañv Europa ar Cʼhornôg"},
+ timezones: map[string]string{"WITA": "WITA", "∅∅∅": "eur hañv an Azorez", "HEOG": "eur hañv Greunland ar Cʼhornôg", "ARST": "eur hañv Arcʼhantina", "WAST": "eur hañv Afrika ar Cʼhornôg", "HKT": "eur cʼhoañv Hong Kong", "WART": "eur cʼhoañv Arcʼhantina ar Cʼhornôg", "WARST": "eur hañv Arcʼhantina ar Cʼhornôg", "CLST": "eur hañv Chile", "AST": "AST", "WEZ": "eur cʼhoañv Europa ar Cʼhornôg", "UYT": "eur cʼhoañv Uruguay", "HECU": "eur hañv Kuba", "CHAST": "eur cʼhoañv Chatham", "NZDT": "eur hañv Zeland-Nevez", "ART": "eur cʼhoañv Arcʼhantina", "CLT": "eur cʼhoañv Chile", "EDT": "eur hañv ar Reter", "HKST": "eur hañv Hong Kong", "HENOMX": "eur hañv Gwalarn Mecʼhiko", "HAT": "eur hañv Newfoundland", "HNCU": "eur cʼhoañv Kuba", "AWDT": "eur hañv Aostralia ar Cʼhornôg", "SGT": "eur cʼhoañv Singapour", "PDT": "PDT", "VET": "eur Venezuela", "OEZ": "eur cʼhoañv Europa ar Reter", "LHDT": "LHDT", "AWST": "eur cʼhoañv Aostralia ar Cʼhornôg", "HAST": "HAST", "MESZ": "eur hañv Kreizeuropa", "ADT": "ADT", "HNEG": "eur cʼhoañv Greunland ar Reter", "AKST": "eur cʼhoañv Alaska", "HEPMX": "HEPMX", "SRT": "eur Surinam", "BOT": "eur Bolivia", "TMST": "eur hañv Turkmenistan", "CST": "CST", "HNOG": "eur cʼhoañv Greunland ar Cʼhornôg", "COST": "eur hañv Kolombia", "MST": "eur cʼhoañv ar Menezioù", "GYT": "eur Guyana", "EAT": "eur Afrika ar Reter", "COT": "eur cʼhoañv Kolombia", "NZST": "eur cʼhoañv Zeland-Nevez", "GMT": "Amzer keitat Greenwich (AKG)", "ACDT": "eur hañv Kreizaostralia", "MDT": "eur hañv ar Menezioù", "WIT": "eur Indonezia ar Reter", "HADT": "HADT", "IST": "eur cʼhoañv India", "ACWST": "eur cʼhoañv Kreizaostralia ar Cʼhornôg", "HNNOMX": "eur cʼhoañv Gwalarn Mecʼhiko", "HNT": "eur cʼhoañv Newfoundland", "HEPM": "eur hañv Sant-Pêr-ha-Mikelon", "WIB": "eur Indonezia ar Cʼhornôg", "WESZ": "eur hañv Europa ar Cʼhornôg", "ACST": "eur cʼhoañv Kreizaostralia", "HEEG": "eur hañv Greunland ar Reter", "AKDT": "eur hañv Alaska", "AEST": "eur cʼhoañv Aostralia ar Reter", "SAST": "eur cʼhoañv Suafrika", "HNPMX": "HNPMX", "MYT": "eur Malaysia", "UYST": "eur hañv Uruguay", "CHADT": "eur hañv Chatham", "ACWDT": "eur hañv Kreizaostralia ar Cʼhornôg", "MEZ": "eur cʼhoañv Kreizeuropa", "OESZ": "eur hañv Europa ar Reter", "WAT": "eur cʼhoañv Afrika ar Cʼhornôg", "ChST": "ChST", "LHST": "LHST", "ECT": "eur Ecuador", "CAT": "eur Kreizafrika", "JDT": "eur hañv Japan", "GFT": "eur Gwiana cʼhall", "HNPM": "eur cʼhoañv Sant-Pêr-ha-Mikelon", "PST": "PST", "TMT": "eur cʼhoañv Turkmenistan", "AEDT": "eur hañv Aostralia ar Reter", "CDT": "CDT", "JST": "eur cʼhoañv Japan", "EST": "eur cʼhoañv ar Reter", "BT": "eur Bhoutan"},
}
}
diff --git a/br_FR/br_FR.go b/br_FR/br_FR.go
index be061feb..e2fe4ee6 100644
--- a/br_FR/br_FR.go
+++ b/br_FR/br_FR.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a-raok J.K.", "goude J.K."},
erasNarrow: []string{"a-raok J.K.", "goude J.K."},
erasWide: []string{"a-raok Jezuz-Krist", "goude Jezuz-Krist"},
- timezones: map[string]string{"HEPMX": "HEPMX", "JST": "eur cʼhoañv Japan", "HEEG": "eur hañv Greunland ar Reter", "SGT": "eur cʼhoañv Singapour", "AKDT": "eur hañv Alaska", "AST": "AST", "ADT": "ADT", "EST": "eur cʼhoañv ar Reter", "MDT": "eur hañv Macau", "HNCU": "eur cʼhoañv Kuba", "AKST": "eur cʼhoañv Alaska", "ARST": "eur hañv Arcʼhantina", "IST": "eur cʼhoañv India", "ACDT": "eur hañv Kreizaostralia", "PST": "PST", "HKT": "eur cʼhoañv Hong Kong", "WITA": "WITA", "WAST": "eur hañv Afrika ar Cʼhornôg", "WART": "eur cʼhoañv Arcʼhantina ar Cʼhornôg", "GMT": "Amzer keitat Greenwich (AKG)", "SRT": "eur Surinam", "HAT": "eur hañv Newfoundland", "TMST": "eur hañv Turkmenistan", "CLST": "eur hañv Chile", "GFT": "eur Gwiana cʼhall", "HAST": "HAST", "PDT": "PDT", "AWST": "eur cʼhoañv Aostralia ar Cʼhornôg", "LHDT": "LHDT", "JDT": "eur hañv Japan", "BOT": "eur Bolivia", "ACST": "eur cʼhoañv Kreizaostralia", "HECU": "eur hañv Kuba", "CDT": "CDT", "HNT": "eur cʼhoañv Newfoundland", "MEZ": "eur cʼhoañv Kreizeuropa", "HNEG": "eur cʼhoañv Greunland ar Reter", "ACWDT": "eur hañv Kreizaostralia ar Cʼhornôg", "AEST": "eur cʼhoañv Aostralia ar Reter", "AWDT": "eur hañv Aostralia ar Cʼhornôg", "HNPM": "eur cʼhoañv Sant-Pêr-ha-Mikelon", "CHADT": "eur hañv Chatham", "WEZ": "eur cʼhoañv Europa ar Cʼhornôg", "WESZ": "eur hañv Europa ar Cʼhornôg", "CLT": "eur cʼhoañv Chile", "OESZ": "eur hañv Europa ar Reter", "∅∅∅": "eur hañv Perou", "CST": "CST", "GYT": "eur Guyana", "HNOG": "eur cʼhoañv Greunland ar Cʼhornôg", "TMT": "eur cʼhoañv Turkmenistan", "ChST": "ChST", "WARST": "eur hañv Arcʼhantina ar Cʼhornôg", "UYT": "eur cʼhoañv Uruguay", "BT": "eur Bhoutan", "NZST": "eur cʼhoañv Zeland-Nevez", "COST": "eur hañv Kolombia", "HNPMX": "HNPMX", "HKST": "eur hañv Hong Kong", "AEDT": "eur hañv Aostralia ar Reter", "HEPM": "eur hañv Sant-Pêr-ha-Mikelon", "WAT": "eur cʼhoañv Afrika ar Cʼhornôg", "HENOMX": "eur hañv Gwalarn Mecʼhiko", "COT": "eur cʼhoañv Kolombia", "HADT": "HADT", "VET": "eur Venezuela", "LHST": "LHST", "ECT": "eur Ecuador", "CAT": "eur Kreizafrika", "HNNOMX": "eur cʼhoañv Gwalarn Mecʼhiko", "MST": "eur cʼhoañv Macau", "MYT": "eur Malaysia", "OEZ": "eur cʼhoañv Europa ar Reter", "ACWST": "eur cʼhoañv Kreizaostralia ar Cʼhornôg", "ART": "eur cʼhoañv Arcʼhantina", "HEOG": "eur hañv Greunland ar Cʼhornôg", "NZDT": "eur hañv Zeland-Nevez", "SAST": "eur cʼhoañv Suafrika", "EAT": "eur Afrika ar Reter", "EDT": "eur hañv ar Reter", "UYST": "eur hañv Uruguay", "CHAST": "eur cʼhoañv Chatham", "MESZ": "eur hañv Kreizeuropa", "WIB": "eur Indonezia ar Cʼhornôg", "WIT": "eur Indonezia ar Reter"},
+ timezones: map[string]string{"GFT": "eur Gwiana cʼhall", "AKDT": "eur hañv Alaska", "HEPM": "eur hañv Sant-Pêr-ha-Mikelon", "EDT": "eur hañv ar Reter", "HNT": "eur cʼhoañv Newfoundland", "HEEG": "eur hañv Greunland ar Reter", "CHAST": "eur cʼhoañv Chatham", "CHADT": "eur hañv Chatham", "ECT": "eur Ecuador", "MESZ": "eur hañv Kreizeuropa", "AKST": "eur cʼhoañv Alaska", "UYT": "eur cʼhoañv Uruguay", "WIB": "eur Indonezia ar Cʼhornôg", "HAST": "HAST", "COST": "eur hañv Kolombia", "WARST": "eur hañv Arcʼhantina ar Cʼhornôg", "AEST": "eur cʼhoañv Aostralia ar Reter", "HAT": "eur hañv Newfoundland", "SRT": "eur Surinam", "GYT": "eur Guyana", "∅∅∅": "eur hañv Brasília", "JST": "eur cʼhoañv Japan", "JDT": "eur hañv Japan", "MST": "eur cʼhoañv Macau", "WAT": "eur cʼhoañv Afrika ar Cʼhornôg", "HEPMX": "HEPMX", "WIT": "eur Indonezia ar Reter", "ACWDT": "eur hañv Kreizaostralia ar Cʼhornôg", "GMT": "Amzer keitat Greenwich (AKG)", "TMT": "eur cʼhoañv Turkmenistan", "AWST": "eur cʼhoañv Aostralia ar Cʼhornôg", "PDT": "PDT", "OEZ": "eur cʼhoañv Europa ar Reter", "ARST": "eur hañv Arcʼhantina", "IST": "eur cʼhoañv India", "HNEG": "eur cʼhoañv Greunland ar Reter", "ChST": "ChST", "HEOG": "eur hañv Greunland ar Cʼhornôg", "HNNOMX": "eur cʼhoañv Gwalarn Mecʼhiko", "HNCU": "eur cʼhoañv Kuba", "CST": "CST", "CDT": "CDT", "HADT": "HADT", "EST": "eur cʼhoañv ar Reter", "HKT": "eur cʼhoañv Hong Kong", "SAST": "eur cʼhoañv Suafrika", "CLT": "eur cʼhoañv Chile", "HNOG": "eur cʼhoañv Greunland ar Cʼhornôg", "AST": "AST", "TMST": "eur hañv Turkmenistan", "BOT": "eur Bolivia", "BT": "eur Bhoutan", "CLST": "eur hañv Chile", "COT": "eur cʼhoañv Kolombia", "UYST": "eur hañv Uruguay", "HNPM": "eur cʼhoañv Sant-Pêr-ha-Mikelon", "HECU": "eur hañv Kuba", "ACWST": "eur cʼhoañv Kreizaostralia ar Cʼhornôg", "MEZ": "eur cʼhoañv Kreizeuropa", "WEZ": "eur cʼhoañv Europa ar Cʼhornôg", "HNPMX": "HNPMX", "OESZ": "eur hañv Europa ar Reter", "HKST": "eur hañv Hong Kong", "WAST": "eur hañv Afrika ar Cʼhornôg", "HENOMX": "eur hañv Gwalarn Mecʼhiko", "EAT": "eur Afrika ar Reter", "AWDT": "eur hañv Aostralia ar Cʼhornôg", "PST": "PST", "CAT": "eur Kreizafrika", "AEDT": "eur hañv Aostralia ar Reter", "LHDT": "LHDT", "ADT": "ADT", "ART": "eur cʼhoañv Arcʼhantina", "MDT": "eur hañv Macau", "WITA": "WITA", "NZST": "eur cʼhoañv Zeland-Nevez", "VET": "eur Venezuela", "WESZ": "eur hañv Europa ar Cʼhornôg", "WART": "eur cʼhoañv Arcʼhantina ar Cʼhornôg", "LHST": "LHST", "ACDT": "eur hañv Kreizaostralia", "SGT": "eur cʼhoañv Singapour", "NZDT": "eur hañv Zeland-Nevez", "MYT": "eur Malaysia", "ACST": "eur cʼhoañv Kreizaostralia"},
}
}
diff --git a/brx/brx.go b/brx/brx.go
index eba178a0..f959da76 100644
--- a/brx/brx.go
+++ b/brx/brx.go
@@ -68,7 +68,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ईसा.पूर्व", "सन"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HKT": "हाँगकॉंग स्टैंडर्ड टाईम", "CAT": "मध्य अफ्रीका स्टैंडर्ड टाईम", "GMT": "ग्रीनीच स्टैंडर्ड टाईम", "HECU": "क्युबा डेलाईट टाईम", "MDT": "माकाऊ समर टाईम", "MYT": "मलेशिया स्टैंडर्ड टाईम", "HADT": "हवाई आलटन डेलाईट टाईम", "HEOG": "ग्रीनलैण्ड वेस्टर्न समर टाईम", "WESZ": "वेस्टर्न यूरोप समर टाईम", "LHST": "लार्ड़ होव स्टैंडर्ड टाईम", "TMST": "तुर्कमेनीस्तान समर टाईम", "WART": "पश्चीम अर्जण्टिना स्टैंडर्ड टाईम", "COST": "कोलंबिया समर टाईम", "HNPMX": "HNPMX", "AKDT": "अलास्का डेलाईट टाईम", "VET": "वेनेज़ुएला स्टैंडर्ड टाईम", "HAT": "न्युफाऊंडलैण्ड डेलाईट टाईम", "PST": "पैसीफीक स्टैंडर्ड टाईम", "PDT": "पैसीफीक डेलाईट टाईम", "HEPM": "सेँ पीयॅर एवं मीकलों डेलाईट टाईम", "CHADT": "चैथम डेलाईट टाईम", "MEZ": "मध्य यूरोप स्टैंडर्ड टाईम", "HNNOMX": "HNNOMX", "GYT": "गुयाना स्टैंडर्ड टाईम", "HKST": "हाँगकॉंग समर टाईम", "JST": "जपान स्टैंडर्ड टाईम", "EAT": "पूर्वी अफ्रीका स्टैंडर्ड टाईम", "WARST": "पश्चीम अर्जण्टिना समर टाईम", "EST": "ईस्टर्न अमरिका स्टैंडर्ड टाईम", "EDT": "ईस्टर्न अमरिका डेलाईट टाईम", "HEPMX": "HEPMX", "CDT": "सैंट्रल अमरिका डेलाईट टाईम", "AEST": "पूर्वी ओस्ट्रेलिया स्टैंडर्ड टाईम", "MESZ": "मध्य यूरोप समर टाईम", "ACST": "मध्य ओस्ट्रेलिया स्टैंडर्ड टाईम", "ACDT": "मध्य ओस्ट्रेलिया डेलाईट टाईम", "COT": "कोलंबिया स्टैंडर्ड टाईम", "WEZ": "वेस्टर्न यूरोप स्टैंडर्ड टाईम", "NZDT": "न्युज़ीलैण्ड डेलाईट टाईम", "BOT": "बोलिविया स्टैंडर्ड टाईम", "CST": "सैंट्रल अमरिका स्टैंडर्ड टाईम", "UYT": "ऊरुगुए स्टैंडर्ड टाईम", "ARST": "अर्जण्टिना समर टाईम", "WITA": "ईंडोनीशिया स्टैंडर्ड टाईम", "AEDT": "पूर्वी ओस्ट्रेलिया डेलाईट टाईम", "CLT": "चीली स्टैंडर्ड टाईम", "CLST": "चीली समर टाईम", "BT": "भुटान स्टैंडर्ड टाईम", "ART": "अर्जनटिना स्टैंडर्ड टाईम", "JDT": "जपान डेलाईट टाईम", "HEEG": "ग्रीनलैण्ड ईस्टर्न समर टाईम", "OESZ": "ईस्टर्न यूरोप समर टाईम", "HNCU": "क्युबा स्टैंडर्ड टाईम", "SAST": "दक्षिण अफ्रीका स्टैंडर्ड टाईम", "ECT": "एक्वाडौर स्टैंडर्ड टाईम", "UYST": "ऊरुगुए समर टाईम", "ACWDT": "मध्य-पश्चीम ओस्ट्रेलिया डेलाईट टाईम", "LHDT": "लार्ड़ होव डेलाईट टाईम", "IST": "भारतीय स्टैंडर्ड टाईम", "∅∅∅": "अमाज़ोन समर टाईम", "HENOMX": "HENOMX", "ADT": "अटलांटीक डेलाईट टाईम", "NZST": "न्युज़ीलैण्ड स्टैंडर्ड टाईम", "TMT": "तुर्कमेनीस्तान स्टैंडर्ड टाईम", "MST": "माकाऊ स्टैंडर्ड टाईम", "AKST": "अलास्का स्टैंडर्ड टाईम", "WIT": "ईस्टर्न ईंडोनीशिया स्टैंडर्ड टाईम", "HNOG": "ग्रीनलैण्ड वेस्टर्न स्टैंडर्ड टाईम", "CHAST": "चैथम स्टैंडर्ड टाईम", "ChST": "चामरो स्टैंडर्ड टाईम", "ACWST": "मध्य-पश्चीम ओस्ट्रेलिया स्टैंडर्ड टाईम", "HNT": "न्युफाऊंडलैण्ड स्टैंडर्ड टाईम", "HNPM": "सेँ पीयॅर एवं मीकलों स्टैंडर्ड टाईम", "HNEG": "ग्रीनलैण्ड ईस्टर्न स्टैंडर्ड टाईम", "OEZ": "ईस्टर्न यूरोप स्टैंडर्ड टाईम", "WAT": "पश्चीम अफ्रीका स्टैंडर्ड टाईम", "SRT": "सुरीनाम स्टैंडर्ड टाईम", "AWDT": "दक्षिण ओस्ट्रेलिया डेलाईट टाईम", "GFT": "फ्रान्सीसी गुयाना स्टैंडर्ड टाईम", "WAST": "पश्चीम अफ्रीका समर टाईम", "WIB": "वेस्टर्न ईंडोनीशिया स्टैंडर्ड टाईम", "AWST": "दक्षिण ओस्ट्रेलिया स्टैंडर्ड टाईम", "SGT": "सींगापुर स्टैंडर्ड टाईम", "AST": "अटलांटीक स्टैंडर्ड टाईम", "HAST": "हवाई आलटन स्टैंडर्ड टाईम"},
+ timezones: map[string]string{"HKT": "हाँगकॉंग स्टैंडर्ड टाईम", "HNT": "न्युफाऊंडलैण्ड स्टैंडर्ड टाईम", "HEPMX": "HEPMX", "SRT": "सुरीनाम स्टैंडर्ड टाईम", "ACWST": "मध्य-पश्चीम ओस्ट्रेलिया स्टैंडर्ड टाईम", "JDT": "जपान डेलाईट टाईम", "HNOG": "ग्रीनलैण्ड वेस्टर्न स्टैंडर्ड टाईम", "WARST": "पश्चीम अर्जण्टिना समर टाईम", "ARST": "अर्जण्टिना समर टाईम", "COT": "कोलंबिया स्टैंडर्ड टाईम", "HNNOMX": "HNNOMX", "CHAST": "चैथम स्टैंडर्ड टाईम", "HAST": "हवाई आलटन स्टैंडर्ड टाईम", "NZST": "न्युज़ीलैण्ड स्टैंडर्ड टाईम", "ADT": "अटलांटीक डेलाईट टाईम", "CLT": "चीली स्टैंडर्ड टाईम", "ACST": "मध्य ओस्ट्रेलिया स्टैंडर्ड टाईम", "PDT": "पैसीफीक डेलाईट टाईम", "WART": "पश्चीम अर्जण्टिना स्टैंडर्ड टाईम", "UYT": "ऊरुगुए स्टैंडर्ड टाईम", "HNPMX": "HNPMX", "GYT": "गुयाना स्टैंडर्ड टाईम", "AWDT": "दक्षिण ओस्ट्रेलिया डेलाईट टाईम", "MEZ": "मध्य यूरोप स्टैंडर्ड टाईम", "GFT": "फ्रान्सीसी गुयाना स्टैंडर्ड टाईम", "HEEG": "ग्रीनलैण्ड ईस्टर्न समर टाईम", "SAST": "दक्षिण अफ्रीका स्टैंडर्ड टाईम", "CDT": "सैंट्रल अमरिका डेलाईट टाईम", "MESZ": "मध्य यूरोप समर टाईम", "OEZ": "ईस्टर्न यूरोप स्टैंडर्ड टाईम", "HEOG": "ग्रीनलैण्ड वेस्टर्न समर टाईम", "MST": "माकाऊ स्टैंडर्ड टाईम", "EST": "ईस्टर्न अमरिका स्टैंडर्ड टाईम", "ChST": "चामरो स्टैंडर्ड टाईम", "EAT": "पूर्वी अफ्रीका स्टैंडर्ड टाईम", "VET": "वेनेज़ुएला स्टैंडर्ड टाईम", "WEZ": "वेस्टर्न यूरोप स्टैंडर्ड टाईम", "AKST": "अलास्का स्टैंडर्ड टाईम", "AEST": "पूर्वी ओस्ट्रेलिया स्टैंडर्ड टाईम", "UYST": "ऊरुगुए समर टाईम", "ACWDT": "मध्य-पश्चीम ओस्ट्रेलिया डेलाईट टाईम", "∅∅∅": "आकर समर टाईम", "AKDT": "अलास्का डेलाईट टाईम", "AWST": "दक्षिण ओस्ट्रेलिया स्टैंडर्ड टाईम", "CHADT": "चैथम डेलाईट टाईम", "IST": "भारतीय स्टैंडर्ड टाईम", "COST": "कोलंबिया समर टाईम", "NZDT": "न्युज़ीलैण्ड डेलाईट टाईम", "SGT": "सींगापुर स्टैंडर्ड टाईम", "CLST": "चीली समर टाईम", "ACDT": "मध्य ओस्ट्रेलिया डेलाईट टाईम", "HECU": "क्युबा डेलाईट टाईम", "ECT": "एक्वाडौर स्टैंडर्ड टाईम", "MYT": "मलेशिया स्टैंडर्ड टाईम", "EDT": "ईस्टर्न अमरिका डेलाईट टाईम", "HENOMX": "HENOMX", "HEPM": "सेँ पीयॅर एवं मीकलों डेलाईट टाईम", "OESZ": "ईस्टर्न यूरोप समर टाईम", "HNEG": "ग्रीनलैण्ड ईस्टर्न स्टैंडर्ड टाईम", "AEDT": "पूर्वी ओस्ट्रेलिया डेलाईट टाईम", "LHDT": "लार्ड़ होव डेलाईट टाईम", "TMT": "तुर्कमेनीस्तान स्टैंडर्ड टाईम", "ART": "अर्जनटिना स्टैंडर्ड टाईम", "HKST": "हाँगकॉंग समर टाईम", "HNCU": "क्युबा स्टैंडर्ड टाईम", "WIB": "वेस्टर्न ईंडोनीशिया स्टैंडर्ड टाईम", "BOT": "बोलिविया स्टैंडर्ड टाईम", "GMT": "ग्रीनीच स्टैंडर्ड टाईम", "HAT": "न्युफाऊंडलैण्ड डेलाईट टाईम", "HNPM": "सेँ पीयॅर एवं मीकलों स्टैंडर्ड टाईम", "WIT": "ईस्टर्न ईंडोनीशिया स्टैंडर्ड टाईम", "PST": "पैसीफीक स्टैंडर्ड टाईम", "HADT": "हवाई आलटन डेलाईट टाईम", "CAT": "मध्य अफ्रीका स्टैंडर्ड टाईम", "JST": "जपान स्टैंडर्ड टाईम", "MDT": "माकाऊ समर टाईम", "WESZ": "वेस्टर्न यूरोप समर टाईम", "TMST": "तुर्कमेनीस्तान समर टाईम", "WAST": "पश्चीम अफ्रीका समर टाईम", "BT": "भुटान स्टैंडर्ड टाईम", "WITA": "ईंडोनीशिया स्टैंडर्ड टाईम", "LHST": "लार्ड़ होव स्टैंडर्ड टाईम", "CST": "सैंट्रल अमरिका स्टैंडर्ड टाईम", "AST": "अटलांटीक स्टैंडर्ड टाईम", "WAT": "पश्चीम अफ्रीका स्टैंडर्ड टाईम"},
}
}
diff --git a/brx_IN/brx_IN.go b/brx_IN/brx_IN.go
index e7119ff2..9f83b77a 100644
--- a/brx_IN/brx_IN.go
+++ b/brx_IN/brx_IN.go
@@ -68,7 +68,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ईसा.पूर्व", "सन"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"OEZ": "ईस्टर्न यूरोप स्टैंडर्ड टाईम", "HNOG": "ग्रीनलैण्ड वेस्टर्न स्टैंडर्ड टाईम", "IST": "भारतीय स्टैंडर्ड टाईम", "TMST": "तुर्कमेनीस्तान समर टाईम", "∅∅∅": "पेरु समर टाईम", "WIT": "ईस्टर्न ईंडोनीशिया स्टैंडर्ड टाईम", "PST": "पैसीफीक स्टैंडर्ड टाईम", "ACWST": "मध्य-पश्चीम ओस्ट्रेलिया स्टैंडर्ड टाईम", "NZST": "न्युज़ीलैण्ड स्टैंडर्ड टाईम", "TMT": "तुर्कमेनीस्तान स्टैंडर्ड टाईम", "AKST": "अलास्का स्टैंडर्ड टाईम", "HEPMX": "HEPMX", "MEZ": "मध्य यूरोप स्टैंडर्ड टाईम", "JDT": "जपान डेलाईट टाईम", "COT": "कोलंबिया स्टैंडर्ड टाईम", "MDT": "माकाऊ समर टाईम", "HADT": "हवाई आलटन डेलाईट टाईम", "HKST": "हाँगकॉंग समर टाईम", "HNPM": "सेँ पीयॅर एवं मीकलों स्टैंडर्ड टाईम", "COST": "कोलंबिया समर टाईम", "HNNOMX": "HNNOMX", "HNCU": "क्युबा स्टैंडर्ड टाईम", "UYST": "ऊरुगुए समर टाईम", "AST": "अटलांटीक स्टैंडर्ड टाईम", "HNT": "न्युफाऊंडलैण्ड स्टैंडर्ड टाईम", "HEPM": "सेँ पीयॅर एवं मीकलों डेलाईट टाईम", "MESZ": "मध्य यूरोप समर टाईम", "HNEG": "ग्रीनलैण्ड ईस्टर्न स्टैंडर्ड टाईम", "OESZ": "ईस्टर्न यूरोप समर टाईम", "CST": "सैंट्रल अमरिका स्टैंडर्ड टाईम", "HEOG": "ग्रीनलैण्ड वेस्टर्न समर टाईम", "CLST": "चीली समर टाईम", "SGT": "सींगापुर स्टैंडर्ड टाईम", "UYT": "ऊरुगुए स्टैंडर्ड टाईम", "HAST": "हवाई आलटन स्टैंडर्ड टाईम", "WEZ": "वेस्टर्न यूरोप स्टैंडर्ड टाईम", "ACST": "मध्य ओस्ट्रेलिया स्टैंडर्ड टाईम", "EAT": "पूर्वी अफ्रीका स्टैंडर्ड टाईम", "HNPMX": "HNPMX", "CDT": "सैंट्रल अमरिका डेलाईट टाईम", "WESZ": "वेस्टर्न यूरोप समर टाईम", "CAT": "मध्य अफ्रीका स्टैंडर्ड टाईम", "WAST": "पश्चीम अफ्रीका समर टाईम", "JST": "जपान स्टैंडर्ड टाईम", "GFT": "फ्रान्सीसी गुयाना स्टैंडर्ड टाईम", "VET": "वेनेज़ुएला स्टैंडर्ड टाईम", "MYT": "मलेशिया स्टैंडर्ड टाईम", "AKDT": "अलास्का डेलाईट टाईम", "WIB": "वेस्टर्न ईंडोनीशिया स्टैंडर्ड टाईम", "WITA": "ईंडोनीशिया स्टैंडर्ड टाईम", "HEEG": "ग्रीनलैण्ड ईस्टर्न समर टाईम", "MST": "माकाऊ स्टैंडर्ड टाईम", "CHADT": "चैथम डेलाईट टाईम", "GYT": "गुयाना स्टैंडर्ड टाईम", "HAT": "न्युफाऊंडलैण्ड डेलाईट टाईम", "WARST": "पश्चीम अर्जण्टिना समर टाईम", "EST": "ईस्टर्न अमरिका स्टैंडर्ड टाईम", "ADT": "अटलांटीक डेलाईट टाईम", "BT": "भुटान स्टैंडर्ड टाईम", "AEST": "पूर्वी ओस्ट्रेलिया स्टैंडर्ड टाईम", "AEDT": "पूर्वी ओस्ट्रेलिया डेलाईट टाईम", "ChST": "चामरो स्टैंडर्ड टाईम", "ACDT": "मध्य ओस्ट्रेलिया डेलाईट टाईम", "LHST": "लार्ड़ होव स्टैंडर्ड टाईम", "CHAST": "चैथम स्टैंडर्ड टाईम", "ACWDT": "मध्य-पश्चीम ओस्ट्रेलिया डेलाईट टाईम", "AWST": "दक्षिण ओस्ट्रेलिया स्टैंडर्ड टाईम", "LHDT": "लार्ड़ होव डेलाईट टाईम", "GMT": "ग्रीनीच स्टैंडर्ड टाईम", "HECU": "क्युबा डेलाईट टाईम", "ART": "अर्जनटिना स्टैंडर्ड टाईम", "AWDT": "दक्षिण ओस्ट्रेलिया डेलाईट टाईम", "NZDT": "न्युज़ीलैण्ड डेलाईट टाईम", "CLT": "चीली स्टैंडर्ड टाईम", "WART": "पश्चीम अर्जण्टिना स्टैंडर्ड टाईम", "EDT": "ईस्टर्न अमरिका डेलाईट टाईम", "HENOMX": "HENOMX", "PDT": "पैसीफीक डेलाईट टाईम", "ARST": "अर्जण्टिना समर टाईम", "BOT": "बोलिविया स्टैंडर्ड टाईम", "WAT": "पश्चीम अफ्रीका स्टैंडर्ड टाईम", "HKT": "हाँगकॉंग स्टैंडर्ड टाईम", "SAST": "दक्षिण अफ्रीका स्टैंडर्ड टाईम", "ECT": "एक्वाडौर स्टैंडर्ड टाईम", "SRT": "सुरीनाम स्टैंडर्ड टाईम"},
+ timezones: map[string]string{"HKT": "हाँगकॉंग स्टैंडर्ड टाईम", "COST": "कोलंबिया समर टाईम", "MDT": "अमरिका माऊन्टन डेलाईट टाईम", "CAT": "मध्य अफ्रीका स्टैंडर्ड टाईम", "MYT": "मलेशिया स्टैंडर्ड टाईम", "TMT": "तुर्कमेनीस्तान स्टैंडर्ड टाईम", "HENOMX": "HENOMX", "BT": "भुटान स्टैंडर्ड टाईम", "HEPMX": "HEPMX", "WIT": "ईस्टर्न ईंडोनीशिया स्टैंडर्ड टाईम", "CLST": "चीली समर टाईम", "AST": "अटलांटीक स्टैंडर्ड टाईम", "HNEG": "ग्रीनलैण्ड ईस्टर्न स्टैंडर्ड टाईम", "MST": "अमरिका माऊन्टन स्टैंडर्ड टाईम", "HNPMX": "HNPMX", "LHDT": "लार्ड़ होव डेलाईट टाईम", "CST": "सैंट्रल अमरिका स्टैंडर्ड टाईम", "ACDT": "मध्य ओस्ट्रेलिया डेलाईट टाईम", "HNCU": "क्युबा स्टैंडर्ड टाईम", "BOT": "बोलिविया स्टैंडर्ड टाईम", "CHADT": "चैथम डेलाईट टाईम", "ECT": "एक्वाडौर स्टैंडर्ड टाईम", "WARST": "पश्चीम अर्जण्टिना समर टाईम", "OEZ": "ईस्टर्न यूरोप स्टैंडर्ड टाईम", "GFT": "फ्रान्सीसी गुयाना स्टैंडर्ड टाईम", "AKST": "अलास्का स्टैंडर्ड टाईम", "NZDT": "न्युज़ीलैण्ड डेलाईट टाईम", "MESZ": "मध्य यूरोप समर टाईम", "GMT": "ग्रीनीच स्टैंडर्ड टाईम", "AWDT": "दक्षिण ओस्ट्रेलिया डेलाईट टाईम", "PDT": "पैसीफीक डेलाईट टाईम", "MEZ": "मध्य यूरोप स्टैंडर्ड टाईम", "HNT": "न्युफाऊंडलैण्ड स्टैंडर्ड टाईम", "WITA": "ईंडोनीशिया स्टैंडर्ड टाईम", "SRT": "सुरीनाम स्टैंडर्ड टाईम", "WIB": "वेस्टर्न ईंडोनीशिया स्टैंडर्ड टाईम", "EAT": "पूर्वी अफ्रीका स्टैंडर्ड टाईम", "WART": "पश्चीम अर्जण्टिना स्टैंडर्ड टाईम", "LHST": "लार्ड़ होव स्टैंडर्ड टाईम", "IST": "भारतीय स्टैंडर्ड टाईम", "OESZ": "ईस्टर्न यूरोप समर टाईम", "WAST": "पश्चीम अफ्रीका समर टाईम", "HEEG": "ग्रीनलैण्ड ईस्टर्न समर टाईम", "AEDT": "पूर्वी ओस्ट्रेलिया डेलाईट टाईम", "HNPM": "सेँ पीयॅर एवं मीकलों स्टैंडर्ड टाईम", "ChST": "चामरो स्टैंडर्ड टाईम", "ARST": "अर्जण्टिना समर टाईम", "COT": "कोलंबिया स्टैंडर्ड टाईम", "AKDT": "अलास्का डेलाईट टाईम", "HEPM": "सेँ पीयॅर एवं मीकलों डेलाईट टाईम", "AWST": "दक्षिण ओस्ट्रेलिया स्टैंडर्ड टाईम", "WESZ": "वेस्टर्न यूरोप समर टाईम", "CLT": "चीली स्टैंडर्ड टाईम", "HNOG": "ग्रीनलैण्ड वेस्टर्न स्टैंडर्ड टाईम", "UYT": "ऊरुगुए स्टैंडर्ड टाईम", "NZST": "न्युज़ीलैण्ड स्टैंडर्ड टाईम", "CHAST": "चैथम स्टैंडर्ड टाईम", "HADT": "हवाई आलटन डेलाईट टाईम", "ADT": "अटलांटीक डेलाईट टाईम", "HKST": "हाँगकॉंग समर टाईम", "∅∅∅": "आकर समर टाईम", "HAT": "न्युफाऊंडलैण्ड डेलाईट टाईम", "UYST": "ऊरुगुए समर टाईम", "HECU": "क्युबा डेलाईट टाईम", "AEST": "पूर्वी ओस्ट्रेलिया स्टैंडर्ड टाईम", "SAST": "दक्षिण अफ्रीका स्टैंडर्ड टाईम", "TMST": "तुर्कमेनीस्तान समर टाईम", "GYT": "गुयाना स्टैंडर्ड टाईम", "HAST": "हवाई आलटन स्टैंडर्ड टाईम", "ACWST": "मध्य-पश्चीम ओस्ट्रेलिया स्टैंडर्ड टाईम", "JST": "जपान स्टैंडर्ड टाईम", "JDT": "जपान डेलाईट टाईम", "WEZ": "वेस्टर्न यूरोप स्टैंडर्ड टाईम", "ART": "अर्जनटिना स्टैंडर्ड टाईम", "WAT": "पश्चीम अफ्रीका स्टैंडर्ड टाईम", "EDT": "ईस्टर्न अमरिका डेलाईट टाईम", "ACST": "मध्य ओस्ट्रेलिया स्टैंडर्ड टाईम", "ACWDT": "मध्य-पश्चीम ओस्ट्रेलिया डेलाईट टाईम", "VET": "वेनेज़ुएला स्टैंडर्ड टाईम", "HEOG": "ग्रीनलैण्ड वेस्टर्न समर टाईम", "EST": "ईस्टर्न अमरिका स्टैंडर्ड टाईम", "HNNOMX": "HNNOMX", "CDT": "सैंट्रल अमरिका डेलाईट टाईम", "SGT": "सींगापुर स्टैंडर्ड टाईम", "PST": "पैसीफीक स्टैंडर्ड टाईम"},
}
}
diff --git a/bs/bs.go b/bs/bs.go
index 0c75b36a..975f5279 100644
--- a/bs/bs.go
+++ b/bs/bs.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"p. n. e.", "n. e."},
erasNarrow: []string{"pr.n.e.", "AD"},
erasWide: []string{"prije nove ere", "nove ere"},
- timezones: map[string]string{"GYT": "Gvajansko vrijeme", "WIB": "Zapadnoindonezijsko vrijeme", "OESZ": "Istočnoevropsko ljetno vrijeme", "MST": "Makao standardno vreme", "HNPMX": "Meksičko pacifičko standardno vrijeme", "AST": "Sjevernoameričko atlantsko standardno vrijeme", "BOT": "Bolivijsko vrijeme", "OEZ": "Istočnoevropsko standardno vrijeme", "AWDT": "Zapadnoaustralijsko ljetno vrijeme", "CLT": "Čileansko standardno vrijeme", "TMST": "Turkmenistansko ljetno vrijeme", "ChST": "Čamorsko standardno vrijeme", "ACDT": "Centralnoaustralijsko ljetno vrijeme", "HNPM": "Standardno vrijeme na Ostrvima Sen Pjer i Mikelon", "MEZ": "Centralnoevropsko standardno vrijeme", "MESZ": "Centralnoevropsko ljetno vrijeme", "SAST": "Južnoafričko standardno vrijeme", "ADT": "Sjevernoameričko atlantsko ljetno vrijeme", "WEZ": "Zapadnoevropsko standardno vrijeme", "ARST": "Argentinsko ljetno vrijeme", "WAST": "Zapadnoafričko ljetno vrijeme", "CAT": "Centralnoafričko vrijeme", "HNNOMX": "Sjeverozapadno meksičko standardno vrijeme", "HENOMX": "Sjeverozapadno meksičko ljetno vrijeme", "GMT": "Griničko vrijeme", "LHDT": "Ljetno vrijeme na Ostrvu Lord Hau", "MYT": "Malezijsko vrijeme", "AEDT": "Istočnoaustralijsko ljetno vrijeme", "CDT": "Sjevernoameričko centralno ljetno vrijeme", "WESZ": "Zapadnoevropsko ljetno vrijeme", "PST": "Sjevernoameričko pacifičko standardno vrijeme", "PDT": "Sjevernoameričko pacifičko ljetno vrijeme", "AWST": "Zapadnoaustralijsko standardno vrijeme", "HKST": "Hongkonško ljetno vrijeme", "LHST": "Standardno vrijeme na Ostrvu Lord Hau", "IST": "Indijsko standardno vrijeme", "WAT": "Zapadnoafričko standardno vrijeme", "HADT": "Havajsko-aleućansko ljetno vrijeme", "AKST": "Aljaskansko standardno vrijeme", "CST": "Sjevernoameričko centralno standardno vrijeme", "HAST": "Havajsko-aleućansko standardno vrijeme", "ACWDT": "Australijsko centralnozapadno ljetno vrijeme", "CHAST": "Čatamsko standardno vrijeme", "∅∅∅": "Amazonsko ljetno vrijeme", "COT": "Kolumbijsko standardno vrijeme", "WART": "Zapadnoargentinsko standardno vrijeme", "HKT": "Hongkonško standardno vrijeme", "HNEG": "Istočnogrenlandsko standardno vrijeme", "GFT": "Francuskogvajansko vrijeme", "TMT": "Turkmenistansko standardno vrijeme", "AKDT": "Aljaskansko ljetno vrijeme", "ACST": "Centralnoaustralijsko standardno vrijeme", "VET": "Venecuelansko vrijeme", "ACWST": "Australijsko centralnozapadno standardno vrijeme", "ART": "Argentinsko standardno vrijeme", "NZDT": "Novozelandsko ljetno vrijeme", "JST": "Japansko standardno vrijeme", "JDT": "Japansko ljetno vrijeme", "HEEG": "Istočnogrenlandsko ljetno vrijeme", "HNOG": "Zapadnogrenlandsko standardno vrijeme", "WITA": "Centralnoindonezijsko vrijeme", "HEPM": "Ljetno vrijeme na Ostrvima Sen Pjer i Mikelon", "COST": "Kolumbijsko ljetno vrijeme", "AEST": "Istočnoaustralijsko standardno vrijeme", "SGT": "Singapursko standardno vrijeme", "EDT": "Sjevernoameričko istočno ljetno vrijeme", "WIT": "Istočnoindonezijsko vrijeme", "BT": "Butansko vrijeme", "CHADT": "Čatamsko ljetno vrijeme", "EAT": "Istočnoafričko vrijeme", "HNCU": "Kubansko standardno vrijeme", "UYST": "Urugvajsko ljetno vrijeme", "HEOG": "Zapadnogrenlandsko ljetno vrijeme", "CLST": "Čileansko ljetno vrijeme", "ECT": "Ekvadorsko vrijeme", "HEPMX": "Meksičko pacifičko ljetno vrijeme", "EST": "Sjevernoameričko istočno standardno vrijeme", "WARST": "Zapadnoargentinsko ljetno vrijeme", "HAT": "Njufaundlendsko ljetno vrijeme", "SRT": "Surinamsko vrijeme", "HNT": "Njufaundlendsko standardno vrijeme", "NZST": "Novozelandsko standardno vrijeme", "HECU": "Kubansko ljetno vrijeme", "MDT": "Makao letnje računanje vremena", "UYT": "Urugvajsko standardno vrijeme"},
+ timezones: map[string]string{"MDT": "Makao letnje računanje vremena", "PDT": "Sjevernoameričko pacifičko ljetno vrijeme", "OEZ": "Istočnoevropsko standardno vrijeme", "WEZ": "Zapadnoevropsko standardno vrijeme", "HKT": "Hongkonško standardno vrijeme", "COT": "Kolumbijsko standardno vrijeme", "CDT": "Sjevernoameričko centralno ljetno vrijeme", "JST": "Japansko standardno vrijeme", "AST": "Sjevernoameričko atlantsko standardno vrijeme", "MST": "Makao standardno vreme", "AEDT": "Istočnoaustralijsko ljetno vrijeme", "WIT": "Istočnoindonezijsko vrijeme", "ECT": "Ekvadorsko vrijeme", "HEEG": "Istočnogrenlandsko ljetno vrijeme", "CST": "Sjevernoameričko centralno standardno vrijeme", "TMT": "Turkmenistansko standardno vrijeme", "HKST": "Hongkonško ljetno vrijeme", "ACST": "Centralnoaustralijsko standardno vrijeme", "HEPMX": "Meksičko pacifičko ljetno vrijeme", "AWST": "Zapadnoaustralijsko standardno vrijeme", "CLST": "Čileansko ljetno vrijeme", "ARST": "Argentinsko ljetno vrijeme", "COST": "Kolumbijsko ljetno vrijeme", "HNPM": "Standardno vrijeme na Ostrvima Sen Pjer i Mikelon", "LHDT": "Ljetno vrijeme na Ostrvu Lord Hau", "SRT": "Surinamsko vrijeme", "BOT": "Bolivijsko vrijeme", "MESZ": "Centralnoevropsko ljetno vrijeme", "ART": "Argentinsko standardno vrijeme", "HNNOMX": "Sjeverozapadno meksičko standardno vrijeme", "∅∅∅": "Peruansko ljetno vrijeme", "WITA": "Centralnoindonezijsko vrijeme", "HNPMX": "Meksičko pacifičko standardno vrijeme", "VET": "Venecuelansko vrijeme", "ADT": "Sjevernoameričko atlantsko ljetno vrijeme", "EAT": "Istočnoafričko vrijeme", "CAT": "Centralnoafričko vrijeme", "CHAST": "Čatamsko standardno vrijeme", "CHADT": "Čatamsko ljetno vrijeme", "SGT": "Singapursko standardno vrijeme", "HENOMX": "Sjeverozapadno meksičko ljetno vrijeme", "HNEG": "Istočnogrenlandsko standardno vrijeme", "AKDT": "Aljaskansko ljetno vrijeme", "ChST": "Čamorsko standardno vrijeme", "HECU": "Kubansko ljetno vrijeme", "ACWDT": "Australijsko centralnozapadno ljetno vrijeme", "SAST": "Južnoafričko standardno vrijeme", "GMT": "Griničko vrijeme", "WAST": "Zapadnoafričko ljetno vrijeme", "EST": "Sjevernoameričko istočno standardno vrijeme", "AKST": "Aljaskansko standardno vrijeme", "HEPM": "Ljetno vrijeme na Ostrvima Sen Pjer i Mikelon", "JDT": "Japansko ljetno vrijeme", "HNOG": "Zapadnogrenlandsko standardno vrijeme", "MYT": "Malezijsko vrijeme", "BT": "Butansko vrijeme", "GYT": "Gvajansko vrijeme", "NZST": "Novozelandsko standardno vrijeme", "IST": "Indijsko standardno vrijeme", "WART": "Zapadnoargentinsko standardno vrijeme", "WESZ": "Zapadnoevropsko ljetno vrijeme", "LHST": "Standardno vrijeme na Ostrvu Lord Hau", "AWDT": "Zapadnoaustralijsko ljetno vrijeme", "HADT": "Havajsko-aleućansko ljetno vrijeme", "HNT": "Njufaundlendsko standardno vrijeme", "MEZ": "Centralnoevropsko standardno vrijeme", "CLT": "Čileansko standardno vrijeme", "ACDT": "Centralnoaustralijsko ljetno vrijeme", "HNCU": "Kubansko standardno vrijeme", "WIB": "Zapadnoindonezijsko vrijeme", "PST": "Sjevernoameričko pacifičko standardno vrijeme", "HAST": "Havajsko-aleućansko standardno vrijeme", "ACWST": "Australijsko centralnozapadno standardno vrijeme", "NZDT": "Novozelandsko ljetno vrijeme", "HEOG": "Zapadnogrenlandsko ljetno vrijeme", "OESZ": "Istočnoevropsko ljetno vrijeme", "WAT": "Zapadnoafričko standardno vrijeme", "HAT": "Njufaundlendsko ljetno vrijeme", "UYST": "Urugvajsko ljetno vrijeme", "UYT": "Urugvajsko standardno vrijeme", "WARST": "Zapadnoargentinsko ljetno vrijeme", "TMST": "Turkmenistansko ljetno vrijeme", "EDT": "Sjevernoameričko istočno ljetno vrijeme", "GFT": "Francuskogvajansko vrijeme", "AEST": "Istočnoaustralijsko standardno vrijeme"},
}
}
diff --git a/bs_Cyrl/bs_Cyrl.go b/bs_Cyrl/bs_Cyrl.go
index 80819695..813da591 100644
--- a/bs_Cyrl/bs_Cyrl.go
+++ b/bs_Cyrl/bs_Cyrl.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"п. н. е.", "н. е."},
erasNarrow: []string{"п.н.е.", "н.е."},
erasWide: []string{"Пре нове ере", "Нове ере"},
- timezones: map[string]string{"ACWDT": "Аустралијско централно западно летње рачунање времена", "LHST": "Лорд Хов стандардно време", "WART": "Западна Аргентина стандардно време", "WARST": "Западна Аргентина летње рачунање времена", "∅∅∅": "Азори летње рачунање времена", "HADT": "Хавајско-алеутско летње рачунање времена", "SRT": "Суринам време", "HNOG": "Западни Гренланд стандардно време", "HNPM": "Сен Пјер и Микелон стандардно време", "MST": "Макао стандардно време", "HAST": "Хавајско-алеутско стандардно време", "ACDT": "Аустралијско централно летње рачунање времена", "WAT": "Западно-афричко стандардно време", "HNNOMX": "Sjeverozapadno meksičko standardno vrijeme", "CST": "Централно стандардно време", "HKST": "Хонгконшко летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "NZST": "Нови Зеланд стандардно време", "SAST": "Јужно-афричко време", "AKDT": "Аљашко летње време", "CHADT": "Чатам летње рачунање времена", "ChST": "Чаморо време", "BT": "Бутан време", "MDT": "Макао летње рачунање вемена", "CHAST": "Чатам стандардно време", "MESZ": "Средњеевропско летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "HNCU": "Куба стандардно време", "PDT": "Пацифичко летње рачунање времена", "OESZ": "Источноевропско летње рачунање времена", "HEPMX": "Meksičko pacifičko ljetno vrijeme", "WEZ": "Западноевропско стандардно време", "CLST": "Чиле летње рачунање времена", "HENOMX": "Sjeverozapadno meksičko ljetno vrijeme", "WIT": "Источно-индонезијско време", "GYT": "Гвајана време", "CLT": "Чиле стандардно време", "GMT": "Гринвич средње време", "HNPMX": "Meksičko pacifičko standardno vrijeme", "ADT": "Атланско лтње рачунање времена", "VET": "Венецуела време", "NZDT": "Нови Зеланд летње рачунање времена", "JST": "Јапанско стандардно време", "SGT": "Сингапур стандардно време", "UYST": "Уругвај летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "AWST": "Аустралијско западно стандардно време", "HKT": "Хонг Конг стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање вемена", "JDT": "Јапанско летње рачунање времена", "TMT": "Туркменистан стандардно време", "UYT": "Уругвај стандардно време", "WAST": "Западно-афричко летње рачунање времена", "EDT": "Источно летње рачунање времена", "CDT": "Централно летње рачунање времена", "MYT": "Малезија време", "WIB": "Западно-индонезијско време", "PST": "Пацифичко стандардно време", "WITA": "Централно-индонезијско време", "BOT": "Боливија време", "EST": "Источно стандардно време", "HNT": "Њуфаундленд стандардно време", "ART": "Аргентина стандардно време", "ARST": "Аргентина летње рачунање времена", "HEOG": "Западни Гренланд летње рачунање времена", "WESZ": "Западноевропско летње рачунање времена", "GFT": "Француска Гвајана време", "COT": "Колумбија стандардно време", "HECU": "Куба летње рачунање времена", "AEDT": "Аустралијско источно летње рачунање времена", "LHDT": "Лорд Хов летње рачунање времена", "TMST": "Туркменистан летње рачунање времена", "OEZ": "Источноевропско стандардно време", "EAT": "Источно-афричко време", "AST": "Атланско стандардно време", "HAT": "Њуфаундленд летње рачунање времена", "AEST": "Аустралијско источно стандардно време", "ACST": "Аустралијско централно стандардно време", "CAT": "Централно-афричко време", "AKST": "Аљашко стандардно време", "IST": "Индијско стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "ECT": "Еквадор време", "COST": "Колумбија летње рачунање времена", "AWDT": "Аустралијско западно летње рачунање времена"},
+ timezones: map[string]string{"SGT": "Сингапур стандардно време", "HKT": "Хонг Конг стандардно време", "COT": "Колумбија стандардно време", "HNNOMX": "Sjeverozapadno meksičko standardno vrijeme", "HENOMX": "Sjeverozapadno meksičko ljetno vrijeme", "LHDT": "Лорд Хов летње рачунање времена", "AWDT": "Аустралијско западно летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "JDT": "Јапанско летње рачунање времена", "HNCU": "Куба стандардно време", "CDT": "Централно летње рачунање времена", "NZDT": "Нови Зеланд летње рачунање времена", "OESZ": "Источноевропско летње рачунање времена", "BT": "Бутан време", "UYST": "Уругвај летње рачунање времена", "HAST": "Хавајско-алеутско стандардно време", "ART": "Аргентина стандардно време", "AKST": "Аљашко стандардно време", "CHADT": "Чатам летње рачунање времена", "CHAST": "Чатам стандардно време", "MYT": "Малезија време", "CLST": "Чиле летње рачунање времена", "WAT": "Западно-афричко стандардно време", "HNEG": "Источни Гренланд стандардно време", "GFT": "Француска Гвајана време", "AWST": "Аустралијско западно стандардно време", "HNPM": "Сен Пјер и Микелон стандардно време", "SAST": "Јужно-афричко време", "JST": "Јапанско стандардно време", "WESZ": "Западноевропско летње рачунање времена", "EST": "Источно стандардно време", "ACST": "Аустралијско централно стандардно време", "WITA": "Централно-индонезијско време", "ChST": "Чаморо време", "HEPMX": "Meksičko pacifičko ljetno vrijeme", "EAT": "Источно-афричко време", "HNPMX": "Meksičko pacifičko standardno vrijeme", "GYT": "Гвајана време", "CAT": "Централно-афричко време", "ACWST": "Аустралијско централно западно стандардно време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "TMT": "Туркменистан стандардно време", "AKDT": "Аљашко летње време", "COST": "Колумбија летње рачунање времена", "HEEG": "Источни Гренланд летње рачунање времена", "HEPM": "Сен Пјер и Микелон летње рачунање вемена", "SRT": "Суринам време", "HECU": "Куба летње рачунање времена", "WIB": "Западно-индонезијско време", "AST": "Атланско стандардно време", "ADT": "Атланско лтње рачунање времена", "TMST": "Туркменистан летње рачунање времена", "ARST": "Аргентина летње рачунање времена", "ACDT": "Аустралијско централно летње рачунање времена", "LHST": "Лорд Хов стандардно време", "VET": "Венецуела време", "MDT": "Макао летње рачунање вемена", "AEDT": "Аустралијско источно летње рачунање времена", "WIT": "Источно-индонезијско време", "WART": "Западна Аргентина стандардно време", "GMT": "Гринвич средње време", "HAT": "Њуфаундленд летње рачунање времена", "PDT": "Пацифичко летње рачунање времена", "BOT": "Боливија време", "∅∅∅": "Амазон летње рачунање времена", "WARST": "Западна Аргентина летње рачунање времена", "HNOG": "Западни Гренланд стандардно време", "MST": "Макао стандардно време", "EDT": "Источно летње рачунање времена", "UYT": "Уругвај стандардно време", "NZST": "Нови Зеланд стандардно време", "MESZ": "Средњеевропско летње рачунање времена", "CLT": "Чиле стандардно време", "AEST": "Аустралијско источно стандардно време", "CST": "Централно стандардно време", "WEZ": "Западноевропско стандардно време", "WAST": "Западно-афричко летње рачунање времена", "PST": "Пацифичко стандардно време", "HADT": "Хавајско-алеутско летње рачунање времена", "IST": "Индијско стандардно време", "HEOG": "Западни Гренланд летње рачунање времена", "OEZ": "Источноевропско стандардно време", "HKST": "Хонгконшко летње рачунање времена", "HNT": "Њуфаундленд стандардно време", "ECT": "Еквадор време"},
}
}
@@ -103,8 +103,8 @@ func (bs *bs_Cyrl) CardinalPluralRule(num float64, v uint64) locales.PluralRule
f := locales.F(n, v)
iMod10 := i % 10
iMod100 := i % 100
- fMod10 := f % 10
fMod100 := f % 100
+ fMod10 := f % 10
if (v == 0 && iMod10 == 1 && iMod100 != 11) || (fMod10 == 1 && fMod100 != 11) {
return locales.PluralRuleOne
diff --git a/bs_Cyrl_BA/bs_Cyrl_BA.go b/bs_Cyrl_BA/bs_Cyrl_BA.go
index 6db31c20..8aa854f2 100644
--- a/bs_Cyrl_BA/bs_Cyrl_BA.go
+++ b/bs_Cyrl_BA/bs_Cyrl_BA.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"p. n. e.", "n. e."},
erasNarrow: []string{"pr.n.e.", "AD"},
erasWide: []string{"prije nove ere", "nove ere"},
- timezones: map[string]string{"WEZ": "Zapadnoevropsko standardno vrijeme", "ARST": "Argentinsko ljetno vrijeme", "HEPMX": "Meksičko pacifičko ljetno vrijeme", "WIT": "Istočnoindonezijsko vrijeme", "AWST": "Zapadnoaustralijsko standardno vrijeme", "OESZ": "Istočnoevropsko ljetno vrijeme", "VET": "Venecuelansko vrijeme", "MDT": "Makao letnje računanje vremena", "ADT": "Sjevernoameričko atlantsko ljetno vrijeme", "GYT": "Gvajansko vrijeme", "HKST": "Hongkonško ljetno vrijeme", "NZDT": "Novozelandsko ljetno vrijeme", "SAST": "Južnoafričko standardno vrijeme", "OEZ": "Istočnoevropsko standardno vrijeme", "HECU": "Kubansko ljetno vrijeme", "MYT": "Malezijsko vrijeme", "BT": "Butansko vrijeme", "PST": "Sjevernoameričko pacifičko standardno vrijeme", "PDT": "Sjevernoameričko pacifičko ljetno vrijeme", "MESZ": "Centralnoevropsko ljetno vrijeme", "LHDT": "Ljetno vrijeme na Ostrvu Lord Hau", "BOT": "Bolivijsko vrijeme", "HNCU": "Kubansko standardno vrijeme", "HEEG": "Istočnogrenlandsko ljetno vrijeme", "WAT": "Zapadnoafričko standardno vrijeme", "WARST": "Zapadnoargentinsko ljetno vrijeme", "HNEG": "Istočnogrenlandsko standardno vrijeme", "AKST": "Aljaskansko standardno vrijeme", "HNOG": "Zapadnogrenlandsko standardno vrijeme", "HEPM": "Ljetno vrijeme na Ostrvima Sen Pjer i Mikelon", "MST": "Makao standardno vreme", "ChST": "Čamorsko standardno vrijeme", "ACWST": "Australijsko centralnozapadno standardno vrijeme", "ACWDT": "Australijsko centralnozapadno ljetno vrijeme", "JST": "Japansko standardno vrijeme", "ECT": "Ekvadorsko vrijeme", "HNNOMX": "Sjeverozapadno meksičko standardno vrijeme", "HAST": "Havajsko-aleućansko standardno vrijeme", "ART": "Argentinsko standardno vrijeme", "CHAST": "Čatamsko standardno vrijeme", "GFT": "Francuskogvajansko vrijeme", "COT": "Kolumbijsko standardno vrijeme", "UYST": "Urugvajsko ljetno vrijeme", "WESZ": "Zapadnoevropsko ljetno vrijeme", "AEDT": "Istočnoaustralijsko ljetno vrijeme", "AWDT": "Zapadnoaustralijsko ljetno vrijeme", "WITA": "Centralnoindonezijsko vrijeme", "HNPM": "Standardno vrijeme na Ostrvima Sen Pjer i Mikelon", "EAT": "Istočnoafričko vrijeme", "WART": "Zapadnoargentinsko standardno vrijeme", "WIB": "Zapadnoindonezijsko vrijeme", "CLST": "Čileansko ljetno vrijeme", "TMT": "Turkmenistansko standardno vrijeme", "CAT": "Centralnoafričko vrijeme", "GMT": "Griničko vrijeme", "JDT": "Japansko ljetno vrijeme", "HENOMX": "Sjeverozapadno meksičko ljetno vrijeme", "HEOG": "Zapadnogrenlandsko ljetno vrijeme", "EST": "Sjevernoameričko istočno standardno vrijeme", "IST": "Indijsko standardno vrijeme", "ACST": "Centralnoaustralijsko standardno vrijeme", "COST": "Kolumbijsko ljetno vrijeme", "∅∅∅": "Azorsko ljetno vrijeme", "AST": "Sjevernoameričko atlantsko standardno vrijeme", "HADT": "Havajsko-aleućansko ljetno vrijeme", "AEST": "Istočnoaustralijsko standardno vrijeme", "CHADT": "Čatamsko ljetno vrijeme", "TMST": "Turkmenistansko ljetno vrijeme", "CST": "Sjevernoameričko centralno standardno vrijeme", "HAT": "Njufaundlendsko ljetno vrijeme", "HKT": "Hongkonško standardno vrijeme", "NZST": "Novozelandsko standardno vrijeme", "CLT": "Čileansko standardno vrijeme", "UYT": "Urugvajsko standardno vrijeme", "ACDT": "Centralnoaustralijsko ljetno vrijeme", "WAST": "Zapadnoafričko ljetno vrijeme", "AKDT": "Aljaskansko ljetno vrijeme", "EDT": "Sjevernoameričko istočno ljetno vrijeme", "HNPMX": "Meksičko pacifičko standardno vrijeme", "CDT": "Sjevernoameričko centralno ljetno vrijeme", "SRT": "Surinamsko vrijeme", "HNT": "Njufaundlendsko standardno vrijeme", "MEZ": "Centralnoevropsko standardno vrijeme", "LHST": "Standardno vrijeme na Ostrvu Lord Hau", "SGT": "Singapursko standardno vrijeme"},
+ timezones: map[string]string{"AST": "Sjevernoameričko atlantsko standardno vrijeme", "MST": "Makao standardno vreme", "LHST": "Standardno vrijeme na Ostrvu Lord Hau", "SGT": "Singapursko standardno vrijeme", "CHADT": "Čatamsko ljetno vrijeme", "IST": "Indijsko standardno vrijeme", "ACWDT": "Australijsko centralnozapadno ljetno vrijeme", "WIT": "Istočnoindonezijsko vrijeme", "NZST": "Novozelandsko standardno vrijeme", "WART": "Zapadnoargentinsko standardno vrijeme", "UYST": "Urugvajsko ljetno vrijeme", "ChST": "Čamorsko standardno vrijeme", "GYT": "Gvajansko vrijeme", "HNCU": "Kubansko standardno vrijeme", "EAT": "Istočnoafričko vrijeme", "EST": "Sjevernoameričko istočno standardno vrijeme", "AWST": "Zapadnoaustralijsko standardno vrijeme", "NZDT": "Novozelandsko ljetno vrijeme", "OEZ": "Istočnoevropsko standardno vrijeme", "MDT": "Makao letnje računanje vremena", "ACDT": "Centralnoaustralijsko ljetno vrijeme", "AKST": "Aljaskansko standardno vrijeme", "CST": "Sjevernoameričko centralno standardno vrijeme", "OESZ": "Istočnoevropsko ljetno vrijeme", "ARST": "Argentinsko ljetno vrijeme", "HNNOMX": "Sjeverozapadno meksičko standardno vrijeme", "GFT": "Francuskogvajansko vrijeme", "WITA": "Centralnoindonezijsko vrijeme", "AKDT": "Aljaskansko ljetno vrijeme", "LHDT": "Ljetno vrijeme na Ostrvu Lord Hau", "MEZ": "Centralnoevropsko standardno vrijeme", "WESZ": "Zapadnoevropsko ljetno vrijeme", "CLST": "Čileansko ljetno vrijeme", "COT": "Kolumbijsko standardno vrijeme", "HEPM": "Ljetno vrijeme na Ostrvima Sen Pjer i Mikelon", "HNPMX": "Meksičko pacifičko standardno vrijeme", "HEPMX": "Meksičko pacifičko ljetno vrijeme", "CAT": "Centralnoafričko vrijeme", "TMT": "Turkmenistansko standardno vrijeme", "ADT": "Sjevernoameričko atlantsko ljetno vrijeme", "AEDT": "Istočnoaustralijsko ljetno vrijeme", "BOT": "Bolivijsko vrijeme", "ACWST": "Australijsko centralnozapadno standardno vrijeme", "GMT": "Griničko vrijeme", "MYT": "Malezijsko vrijeme", "HEOG": "Zapadnogrenlandsko ljetno vrijeme", "HECU": "Kubansko ljetno vrijeme", "AWDT": "Zapadnoaustralijsko ljetno vrijeme", "JDT": "Japansko ljetno vrijeme", "BT": "Butansko vrijeme", "UYT": "Urugvajsko standardno vrijeme", "PST": "Sjevernoameričko pacifičko standardno vrijeme", "JST": "Japansko standardno vrijeme", "AEST": "Istočnoaustralijsko standardno vrijeme", "HKST": "Hongkonško ljetno vrijeme", "WAT": "Zapadnoafričko standardno vrijeme", "WAST": "Zapadnoafričko ljetno vrijeme", "ACST": "Centralnoaustralijsko standardno vrijeme", "HNT": "Njufaundlendsko standardno vrijeme", "SAST": "Južnoafričko standardno vrijeme", "PDT": "Sjevernoameričko pacifičko ljetno vrijeme", "ECT": "Ekvadorsko vrijeme", "TMST": "Turkmenistansko ljetno vrijeme", "COST": "Kolumbijsko ljetno vrijeme", "HAST": "Havajsko-aleućansko standardno vrijeme", "MESZ": "Centralnoevropsko ljetno vrijeme", "WARST": "Zapadnoargentinsko ljetno vrijeme", "ART": "Argentinsko standardno vrijeme", "HEEG": "Istočnogrenlandsko ljetno vrijeme", "CDT": "Sjevernoameričko centralno ljetno vrijeme", "CHAST": "Čatamsko standardno vrijeme", "EDT": "Sjevernoameričko istočno ljetno vrijeme", "HENOMX": "Sjeverozapadno meksičko ljetno vrijeme", "HAT": "Njufaundlendsko ljetno vrijeme", "SRT": "Surinamsko vrijeme", "WEZ": "Zapadnoevropsko standardno vrijeme", "CLT": "Čileansko standardno vrijeme", "HNOG": "Zapadnogrenlandsko standardno vrijeme", "HKT": "Hongkonško standardno vrijeme", "HNEG": "Istočnogrenlandsko standardno vrijeme", "HNPM": "Standardno vrijeme na Ostrvima Sen Pjer i Mikelon", "∅∅∅": "Azorsko ljetno vrijeme", "WIB": "Zapadnoindonezijsko vrijeme", "HADT": "Havajsko-aleućansko ljetno vrijeme", "VET": "Venecuelansko vrijeme"},
}
}
diff --git a/bs_Latn/bs_Latn.go b/bs_Latn/bs_Latn.go
index d60df144..e4b0c82c 100644
--- a/bs_Latn/bs_Latn.go
+++ b/bs_Latn/bs_Latn.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"p. n. e.", "n. e."},
erasNarrow: []string{"pr.n.e.", "AD"},
erasWide: []string{"prije nove ere", "nove ere"},
- timezones: map[string]string{"VET": "Venecuelansko vrijeme", "HAT": "Njufaundlendsko ljetno vrijeme", "ADT": "Sjevernoameričko atlantsko ljetno vrijeme", "HNT": "Njufaundlendsko standardno vrijeme", "NZST": "Novozelandsko standardno vrijeme", "TMT": "Turkmenistansko standardno vrijeme", "OEZ": "Istočnoevropsko standardno vrijeme", "COST": "Kolumbijsko ljetno vrijeme", "WESZ": "Zapadnoevropsko ljetno vrijeme", "WEZ": "Zapadnoevropsko standardno vrijeme", "TMST": "Turkmenistansko ljetno vrijeme", "MYT": "Malezijsko vrijeme", "GMT": "Griničko vrijeme", "HEPMX": "Meksičko pacifičko ljetno vrijeme", "BOT": "Bolivijsko vrijeme", "SGT": "Singapursko standardno vrijeme", "GYT": "Gvajansko vrijeme", "ART": "Argentinsko standardno vrijeme", "AEDT": "Istočnoaustralijsko ljetno vrijeme", "CHADT": "Čatamsko ljetno vrijeme", "CLT": "Čileansko standardno vrijeme", "WAT": "Zapadnoafričko standardno vrijeme", "ECT": "Ekvadorsko vrijeme", "COT": "Kolumbijsko standardno vrijeme", "ACWDT": "Australijsko centralnozapadno ljetno vrijeme", "JST": "Japansko standardno vrijeme", "GFT": "Francuskogvajansko vrijeme", "ACDT": "Centralnoaustralijsko ljetno vrijeme", "EAT": "Istočnoafričko vrijeme", "AKDT": "Aljaskansko ljetno vrijeme", "HADT": "Havajsko-aleućansko ljetno vrijeme", "LHST": "Standardno vrijeme na Ostrvu Lord Hau", "CHAST": "Čatamsko standardno vrijeme", "CLST": "Čileansko ljetno vrijeme", "∅∅∅": "Amazonsko ljetno vrijeme", "HNPMX": "Meksičko pacifičko standardno vrijeme", "JDT": "Japansko ljetno vrijeme", "CST": "Sjevernoameričko centralno standardno vrijeme", "UYT": "Urugvajsko standardno vrijeme", "ACWST": "Australijsko centralnozapadno standardno vrijeme", "HEOG": "Zapadnogrenlandsko ljetno vrijeme", "AWST": "Zapadnoaustralijsko standardno vrijeme", "IST": "Indijsko standardno vrijeme", "ACST": "Centralnoaustralijsko standardno vrijeme", "MDT": "Makao letnje računanje vremena", "OESZ": "Istočnoevropsko ljetno vrijeme", "AST": "Sjevernoameričko atlantsko standardno vrijeme", "SRT": "Surinamsko vrijeme", "PST": "Sjevernoameričko pacifičko standardno vrijeme", "AWDT": "Zapadnoaustralijsko ljetno vrijeme", "HEPM": "Ljetno vrijeme na Ostrvima Sen Pjer i Mikelon", "MESZ": "Centralnoevropsko ljetno vrijeme", "SAST": "Južnoafričko standardno vrijeme", "EST": "Sjevernoameričko istočno standardno vrijeme", "WART": "Zapadnoargentinsko standardno vrijeme", "WARST": "Zapadnoargentinsko ljetno vrijeme", "ChST": "Čamorsko standardno vrijeme", "HKST": "Hongkonško ljetno vrijeme", "MEZ": "Centralnoevropsko standardno vrijeme", "HKT": "Hongkonško standardno vrijeme", "WIB": "Zapadnoindonezijsko vrijeme", "ARST": "Argentinsko ljetno vrijeme", "HNPM": "Standardno vrijeme na Ostrvima Sen Pjer i Mikelon", "LHDT": "Ljetno vrijeme na Ostrvu Lord Hau", "NZDT": "Novozelandsko ljetno vrijeme", "WAST": "Zapadnoafričko ljetno vrijeme", "HNNOMX": "Sjeverozapadno meksičko standardno vrijeme", "MST": "Makao standardno vreme", "HECU": "Kubansko ljetno vrijeme", "CDT": "Sjevernoameričko centralno ljetno vrijeme", "HAST": "Havajsko-aleućansko standardno vrijeme", "PDT": "Sjevernoameričko pacifičko ljetno vrijeme", "HENOMX": "Sjeverozapadno meksičko ljetno vrijeme", "EDT": "Sjevernoameričko istočno ljetno vrijeme", "HNOG": "Zapadnogrenlandsko standardno vrijeme", "WITA": "Centralnoindonezijsko vrijeme", "HNEG": "Istočnogrenlandsko standardno vrijeme", "HEEG": "Istočnogrenlandsko ljetno vrijeme", "WIT": "Istočnoindonezijsko vrijeme", "UYST": "Urugvajsko ljetno vrijeme", "BT": "Butansko vrijeme", "AEST": "Istočnoaustralijsko standardno vrijeme", "CAT": "Centralnoafričko vrijeme", "HNCU": "Kubansko standardno vrijeme", "AKST": "Aljaskansko standardno vrijeme"},
+ timezones: map[string]string{"JDT": "Japansko ljetno vrijeme", "TMT": "Turkmenistansko standardno vrijeme", "HNPM": "Standardno vrijeme na Ostrvima Sen Pjer i Mikelon", "HEPM": "Ljetno vrijeme na Ostrvima Sen Pjer i Mikelon", "CDT": "Sjevernoameričko centralno ljetno vrijeme", "HEPMX": "Meksičko pacifičko ljetno vrijeme", "CHAST": "Čatamsko standardno vrijeme", "MST": "Makao standardno vreme", "WARST": "Zapadnoargentinsko ljetno vrijeme", "CLT": "Čileansko standardno vrijeme", "ACWST": "Australijsko centralnozapadno standardno vrijeme", "OESZ": "Istočnoevropsko ljetno vrijeme", "GMT": "Griničko vrijeme", "ARST": "Argentinsko ljetno vrijeme", "HKT": "Hongkonško standardno vrijeme", "HKST": "Hongkonško ljetno vrijeme", "HNT": "Njufaundlendsko standardno vrijeme", "AKST": "Aljaskansko standardno vrijeme", "HNPMX": "Meksičko pacifičko standardno vrijeme", "ACWDT": "Australijsko centralnozapadno ljetno vrijeme", "MESZ": "Centralnoevropsko ljetno vrijeme", "SRT": "Surinamsko vrijeme", "BOT": "Bolivijsko vrijeme", "AEDT": "Istočnoaustralijsko ljetno vrijeme", "ADT": "Sjevernoameričko atlantsko ljetno vrijeme", "ART": "Argentinsko standardno vrijeme", "MDT": "Makao letnje računanje vremena", "WAT": "Zapadnoafričko standardno vrijeme", "AKDT": "Aljaskansko ljetno vrijeme", "AWDT": "Zapadnoaustralijsko ljetno vrijeme", "VET": "Venecuelansko vrijeme", "CLST": "Čileansko ljetno vrijeme", "WESZ": "Zapadnoevropsko ljetno vrijeme", "PDT": "Sjevernoameričko pacifičko ljetno vrijeme", "WAST": "Zapadnoafričko ljetno vrijeme", "COT": "Kolumbijsko standardno vrijeme", "COST": "Kolumbijsko ljetno vrijeme", "ACST": "Centralnoaustralijsko standardno vrijeme", "LHDT": "Ljetno vrijeme na Ostrvu Lord Hau", "WIB": "Zapadnoindonezijsko vrijeme", "CHADT": "Čatamsko ljetno vrijeme", "HEEG": "Istočnogrenlandsko ljetno vrijeme", "HEOG": "Zapadnogrenlandsko ljetno vrijeme", "HENOMX": "Sjeverozapadno meksičko ljetno vrijeme", "EAT": "Istočnoafričko vrijeme", "BT": "Butansko vrijeme", "MEZ": "Centralnoevropsko standardno vrijeme", "AST": "Sjevernoameričko atlantsko standardno vrijeme", "HNNOMX": "Sjeverozapadno meksičko standardno vrijeme", "HNEG": "Istočnogrenlandsko standardno vrijeme", "GFT": "Francuskogvajansko vrijeme", "SAST": "Južnoafričko standardno vrijeme", "CST": "Sjevernoameričko centralno standardno vrijeme", "NZST": "Novozelandsko standardno vrijeme", "WITA": "Centralnoindonezijsko vrijeme", "OEZ": "Istočnoevropsko standardno vrijeme", "ACDT": "Centralnoaustralijsko ljetno vrijeme", "HECU": "Kubansko ljetno vrijeme", "ECT": "Ekvadorsko vrijeme", "NZDT": "Novozelandsko ljetno vrijeme", "AWST": "Zapadnoaustralijsko standardno vrijeme", "HNOG": "Zapadnogrenlandsko standardno vrijeme", "AEST": "Istočnoaustralijsko standardno vrijeme", "UYT": "Urugvajsko standardno vrijeme", "LHST": "Standardno vrijeme na Ostrvu Lord Hau", "WIT": "Istočnoindonezijsko vrijeme", "WEZ": "Zapadnoevropsko standardno vrijeme", "EST": "Sjevernoameričko istočno standardno vrijeme", "HNCU": "Kubansko standardno vrijeme", "IST": "Indijsko standardno vrijeme", "JST": "Japansko standardno vrijeme", "MYT": "Malezijsko vrijeme", "WART": "Zapadnoargentinsko standardno vrijeme", "TMST": "Turkmenistansko ljetno vrijeme", "ChST": "Čamorsko standardno vrijeme", "SGT": "Singapursko standardno vrijeme", "PST": "Sjevernoameričko pacifičko standardno vrijeme", "HAST": "Havajsko-aleućansko standardno vrijeme", "HADT": "Havajsko-aleućansko ljetno vrijeme", "CAT": "Centralnoafričko vrijeme", "EDT": "Sjevernoameričko istočno ljetno vrijeme", "HAT": "Njufaundlendsko ljetno vrijeme", "UYST": "Urugvajsko ljetno vrijeme", "∅∅∅": "Azorsko ljetno vrijeme", "GYT": "Gvajansko vrijeme"},
}
}
@@ -103,8 +103,8 @@ func (bs *bs_Latn) CardinalPluralRule(num float64, v uint64) locales.PluralRule
n := math.Abs(num)
i := int64(n)
f := locales.F(n, v)
- iMod100 := i % 100
iMod10 := i % 10
+ iMod100 := i % 100
fMod10 := f % 10
fMod100 := f % 100
diff --git a/bs_Latn_BA/bs_Latn_BA.go b/bs_Latn_BA/bs_Latn_BA.go
index 0f647410..813e1bbd 100644
--- a/bs_Latn_BA/bs_Latn_BA.go
+++ b/bs_Latn_BA/bs_Latn_BA.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"p. n. e.", "n. e."},
erasNarrow: []string{"pr.n.e.", "AD"},
erasWide: []string{"prije nove ere", "nove ere"},
- timezones: map[string]string{"AKDT": "Aljaskansko ljetno vrijeme", "MEZ": "Centralnoevropsko standardno vrijeme", "CHAST": "Čatamsko standardno vrijeme", "UYST": "Urugvajsko ljetno vrijeme", "CHADT": "Čatamsko ljetno vrijeme", "HAST": "Havajsko-aleućansko standardno vrijeme", "CLT": "Čileansko standardno vrijeme", "JST": "Japansko standardno vrijeme", "GFT": "Francuskogvajansko vrijeme", "OEZ": "Istočnoevropsko standardno vrijeme", "SAST": "Južnoafričko standardno vrijeme", "HNEG": "Istočnogrenlandsko standardno vrijeme", "OESZ": "Istočnoevropsko ljetno vrijeme", "MESZ": "Centralnoevropsko ljetno vrijeme", "CDT": "Sjevernoameričko centralno ljetno vrijeme", "PDT": "Sjevernoameričko pacifičko ljetno vrijeme", "ACWST": "Australijsko centralnozapadno standardno vrijeme", "HNOG": "Zapadnogrenlandsko standardno vrijeme", "HKST": "Hongkonško ljetno vrijeme", "BOT": "Bolivijsko vrijeme", "ACDT": "Centralnoaustralijsko ljetno vrijeme", "UYT": "Urugvajsko standardno vrijeme", "EAT": "Istočnoafričko vrijeme", "ADT": "Sjevernoameričko atlantsko ljetno vrijeme", "AEST": "Istočnoaustralijsko standardno vrijeme", "AWDT": "Zapadnoaustralijsko ljetno vrijeme", "HNPM": "Standardno vrijeme na Ostrvima Sen Pjer i Mikelon", "NZST": "Novozelandsko standardno vrijeme", "HECU": "Kubansko ljetno vrijeme", "GMT": "Griničko vrijeme", "WIB": "Zapadnoindonezijsko vrijeme", "PST": "Sjevernoameričko pacifičko standardno vrijeme", "WEZ": "Zapadnoevropsko standardno vrijeme", "NZDT": "Novozelandsko ljetno vrijeme", "ACST": "Centralnoaustralijsko standardno vrijeme", "HENOMX": "Sjeverozapadno meksičko ljetno vrijeme", "HEPM": "Ljetno vrijeme na Ostrvima Sen Pjer i Mikelon", "IST": "Indijsko standardno vrijeme", "TMST": "Turkmenistansko ljetno vrijeme", "HNT": "Njufaundlendsko standardno vrijeme", "AST": "Sjevernoameričko atlantsko standardno vrijeme", "HADT": "Havajsko-aleućansko ljetno vrijeme", "WESZ": "Zapadnoevropsko ljetno vrijeme", "WAT": "Zapadnoafričko standardno vrijeme", "HNPMX": "Meksičko pacifičko standardno vrijeme", "HNCU": "Kubansko standardno vrijeme", "∅∅∅": "Brazilijsko ljetno vrijeme", "HEPMX": "Meksičko pacifičko ljetno vrijeme", "AKST": "Aljaskansko standardno vrijeme", "WITA": "Centralnoindonezijsko vrijeme", "COST": "Kolumbijsko ljetno vrijeme", "HNNOMX": "Sjeverozapadno meksičko standardno vrijeme", "EST": "Sjevernoameričko istočno standardno vrijeme", "MDT": "Makao letnje računanje vremena", "CST": "Sjevernoameričko centralno standardno vrijeme", "VET": "Venecuelansko vrijeme", "LHDT": "Ljetno vrijeme na Ostrvu Lord Hau", "WART": "Zapadnoargentinsko standardno vrijeme", "HEOG": "Zapadnogrenlandsko ljetno vrijeme", "AEDT": "Istočnoaustralijsko ljetno vrijeme", "TMT": "Turkmenistansko standardno vrijeme", "SGT": "Singapursko standardno vrijeme", "EDT": "Sjevernoameričko istočno ljetno vrijeme", "BT": "Butansko vrijeme", "JDT": "Japansko ljetno vrijeme", "WAST": "Zapadnoafričko ljetno vrijeme", "COT": "Kolumbijsko standardno vrijeme", "GYT": "Gvajansko vrijeme", "MYT": "Malezijsko vrijeme", "AWST": "Zapadnoaustralijsko standardno vrijeme", "MST": "Makao standardno vreme", "ACWDT": "Australijsko centralnozapadno ljetno vrijeme", "HAT": "Njufaundlendsko ljetno vrijeme", "ARST": "Argentinsko ljetno vrijeme", "HKT": "Hongkonško standardno vrijeme", "LHST": "Standardno vrijeme na Ostrvu Lord Hau", "CLST": "Čileansko ljetno vrijeme", "CAT": "Centralnoafričko vrijeme", "WIT": "Istočnoindonezijsko vrijeme", "ECT": "Ekvadorsko vrijeme", "SRT": "Surinamsko vrijeme", "ART": "Argentinsko standardno vrijeme", "ChST": "Čamorsko standardno vrijeme", "HEEG": "Istočnogrenlandsko ljetno vrijeme", "WARST": "Zapadnoargentinsko ljetno vrijeme"},
+ timezones: map[string]string{"HNEG": "Istočnogrenlandsko standardno vrijeme", "JDT": "Japansko ljetno vrijeme", "TMT": "Turkmenistansko standardno vrijeme", "CAT": "Centralnoafričko vrijeme", "AST": "Sjevernoameričko atlantsko standardno vrijeme", "HNNOMX": "Sjeverozapadno meksičko standardno vrijeme", "ChST": "Čamorsko standardno vrijeme", "MEZ": "Centralnoevropsko standardno vrijeme", "OEZ": "Istočnoevropsko standardno vrijeme", "SGT": "Singapursko standardno vrijeme", "NZST": "Novozelandsko standardno vrijeme", "OESZ": "Istočnoevropsko ljetno vrijeme", "WARST": "Zapadnoargentinsko ljetno vrijeme", "WAT": "Zapadnoafričko standardno vrijeme", "EAT": "Istočnoafričko vrijeme", "AWDT": "Zapadnoaustralijsko ljetno vrijeme", "CHAST": "Čatamsko standardno vrijeme", "NZDT": "Novozelandsko ljetno vrijeme", "HNOG": "Zapadnogrenlandsko standardno vrijeme", "MYT": "Malezijsko vrijeme", "HKT": "Hongkonško standardno vrijeme", "HENOMX": "Sjeverozapadno meksičko ljetno vrijeme", "HECU": "Kubansko ljetno vrijeme", "∅∅∅": "Brazilijsko ljetno vrijeme", "HEPMX": "Meksičko pacifičko ljetno vrijeme", "SRT": "Surinamsko vrijeme", "HKST": "Hongkonško ljetno vrijeme", "COST": "Kolumbijsko ljetno vrijeme", "HEEG": "Istočnogrenlandsko ljetno vrijeme", "HADT": "Havajsko-aleućansko ljetno vrijeme", "WAST": "Zapadnoafričko ljetno vrijeme", "HEPM": "Ljetno vrijeme na Ostrvima Sen Pjer i Mikelon", "HNPMX": "Meksičko pacifičko standardno vrijeme", "AWST": "Zapadnoaustralijsko standardno vrijeme", "WITA": "Centralnoindonezijsko vrijeme", "ADT": "Sjevernoameričko atlantsko ljetno vrijeme", "WESZ": "Zapadnoevropsko ljetno vrijeme", "MST": "Makao standardno vreme", "EST": "Sjevernoameričko istočno standardno vrijeme", "GFT": "Francuskogvajansko vrijeme", "UYST": "Urugvajsko ljetno vrijeme", "HNCU": "Kubansko standardno vrijeme", "WIB": "Zapadnoindonezijsko vrijeme", "ACWDT": "Australijsko centralnozapadno ljetno vrijeme", "AEDT": "Istočnoaustralijsko ljetno vrijeme", "HNPM": "Standardno vrijeme na Ostrvima Sen Pjer i Mikelon", "LHDT": "Ljetno vrijeme na Ostrvu Lord Hau", "WIT": "Istočnoindonezijsko vrijeme", "ECT": "Ekvadorsko vrijeme", "CLT": "Čileansko standardno vrijeme", "WEZ": "Zapadnoevropsko standardno vrijeme", "WART": "Zapadnoargentinsko standardno vrijeme", "AKST": "Aljaskansko standardno vrijeme", "HAST": "Havajsko-aleućansko standardno vrijeme", "IST": "Indijsko standardno vrijeme", "COT": "Kolumbijsko standardno vrijeme", "BOT": "Bolivijsko vrijeme", "ACWST": "Australijsko centralnozapadno standardno vrijeme", "ARST": "Argentinsko ljetno vrijeme", "EDT": "Sjevernoameričko istočno ljetno vrijeme", "ACDT": "Centralnoaustralijsko ljetno vrijeme", "BT": "Butansko vrijeme", "HNT": "Njufaundlendsko standardno vrijeme", "UYT": "Urugvajsko standardno vrijeme", "PDT": "Sjevernoameričko pacifičko ljetno vrijeme", "JST": "Japansko standardno vrijeme", "CDT": "Sjevernoameričko centralno ljetno vrijeme", "VET": "Venecuelansko vrijeme", "CLST": "Čileansko ljetno vrijeme", "HEOG": "Zapadnogrenlandsko ljetno vrijeme", "GMT": "Griničko vrijeme", "ART": "Argentinsko standardno vrijeme", "GYT": "Gvajansko vrijeme", "CST": "Sjevernoameričko centralno standardno vrijeme", "SAST": "Južnoafričko standardno vrijeme", "ACST": "Centralnoaustralijsko standardno vrijeme", "HAT": "Njufaundlendsko ljetno vrijeme", "MESZ": "Centralnoevropsko ljetno vrijeme", "LHST": "Standardno vrijeme na Ostrvu Lord Hau", "CHADT": "Čatamsko ljetno vrijeme", "PST": "Sjevernoameričko pacifičko standardno vrijeme", "AKDT": "Aljaskansko ljetno vrijeme", "AEST": "Istočnoaustralijsko standardno vrijeme", "TMST": "Turkmenistansko ljetno vrijeme", "MDT": "Makao letnje računanje vremena"},
}
}
diff --git a/ca/ca.go b/ca/ca.go
index 2d888f7e..10f341cb 100644
--- a/ca/ca.go
+++ b/ca/ca.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"aC", "dC"},
erasNarrow: []string{"aC", "dC"},
erasWide: []string{"abans de Crist", "després de Crist"},
- timezones: map[string]string{"WIT": "Hora de l’est d’Indonèsia", "WESZ": "Hora d’estiu de l’Oest d’Europa", "CHADT": "Hora d’estiu de Chatham", "CLST": "Hora d’estiu de Xile", "ChST": "Hora de Chamorro", "ACST": "Hora estàndard d’Austràlia Central", "AWDT": "Hora d’estiu d’Austràlia Occidental", "IST": "Hora estàndard de l’Índia", "GFT": "Hora de la Guaiana Francesa", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "PDT": "Hora d’estiu del Pacífic", "PST": "Hora estàndard del Pacífic", "AEST": "Hora estàndard d’Austràlia Oriental", "TMT": "Hora estàndard del Turkmenistan", "OESZ": "Hora d’estiu de l’Est d’Europa", "AKDT": "Hora d’estiu d’Alaska", "WIB": "Hora de l’oest d’Indonèsia", "HAST": "Hora estàndard de Hawaii-Aleutianes", "ARST": "Hora d’estiu de l’Argentina", "JDT": "Hora d’estiu del Japó", "CLT": "Hora estàndard de Xile", "WART": "Hora estàndard de l’oest de l’Argentina", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "WEZ": "Hora estàndard de l’Oest d’Europa", "HAT": "Hora d’estiu de Terranova", "∅∅∅": "Hora d’estiu de l’Amazones", "BOT": "Hora de Bolívia", "ACDT": "Hora d’estiu d’Austràlia Central", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "SGT": "Hora de Singapur", "MYT": "Hora de Malàisia", "AKST": "Hora estàndard d’Alaska", "AEDT": "Hora d’estiu d’Austràlia Oriental", "AWST": "Hora estàndard d’Austràlia Occidental", "MESZ": "Hora d’estiu del Centre d’Europa", "SAST": "Hora estàndard del sud de l’Àfrica", "WAST": "Hora d’estiu de l’Àfrica Occidental", "SRT": "Hora de Surinam", "HKT": "Hora estàndard de Hong Kong", "LHST": "Hora estàndard de Lord Howe", "NZDT": "Hora d’estiu de Nova Zelanda", "EAT": "Hora de l’Àfrica Oriental", "AST": "Hora estàndard de l’Atlàntic", "UYST": "Hora d’estiu de l’Uruguai", "VET": "Hora de Veneçuela", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "HNCU": "Hora estàndard de Cuba", "HKST": "Hora d’estiu de Hong Kong", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "TMST": "Hora d’estiu del Turkmenistan", "OEZ": "Hora estàndard de l’Est d’Europa", "COT": "Hora estàndard de Colòmbia", "EST": "Hora estàndard oriental d’Amèrica del Nord", "ADT": "Hora d’estiu de l’Atlàntic", "ART": "Hora estàndard de l’Argentina", "HNT": "Hora estàndard de Terranova", "WITA": "Hora central d’Indonèsia", "LHDT": "Horari d’estiu de Lord Howe", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "WAT": "Hora estàndard de l’Àfrica Occidental", "GYT": "Hora de Guyana", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "MEZ": "Hora estàndard del Centre d’Europa", "GMT": "Hora del Meridià de Greenwich", "CST": "Hora estàndard central d’Amèrica del Nord", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "NZST": "Hora estàndard de Nova Zelanda", "CHAST": "Hora estàndard de Chatham", "WARST": "Hora d’estiu de l’oest de l’Argentina", "MST": "Hora estàndard de Macau", "UYT": "Hora estàndard de l’Uruguai", "CDT": "Hora d’estiu central d’Amèrica del Nord", "JST": "Hora estàndard del Japó", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "BT": "Hora de Bhutan", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "ECT": "Hora de l’Equador", "CAT": "Hora de l’Àfrica Central", "COST": "Hora d’estiu de Colòmbia", "HECU": "Hora d’estiu de Cuba", "MDT": "Hora d’estiu de Macau", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon"},
+ timezones: map[string]string{"HNNOMX": "Hora estàndard del nord-oest de Mèxic", "CDT": "Hora d’estiu central d’Amèrica del Nord", "SGT": "Hora de Singapur", "TMT": "Hora estàndard del Turkmenistan", "WAT": "Hora estàndard de l’Àfrica Occidental", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "HAT": "Hora d’estiu de Terranova", "UYST": "Hora d’estiu de l’Uruguai", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "MYT": "Hora de Malàisia", "GFT": "Hora de la Guaiana Francesa", "HNCU": "Hora estàndard de Cuba", "AWST": "Hora estàndard d’Austràlia Occidental", "AWDT": "Hora d’estiu d’Austràlia Occidental", "CHAST": "Hora estàndard de Chatham", "TMST": "Hora d’estiu del Turkmenistan", "HECU": "Hora d’estiu de Cuba", "BOT": "Hora de Bolívia", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "NZST": "Hora estàndard de Nova Zelanda", "WARST": "Hora d’estiu de l’oest de l’Argentina", "AST": "Hora estàndard de l’Atlàntic", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "ACDT": "Hora d’estiu d’Austràlia Central", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "MDT": "Hora d’estiu de muntanya d’Amèrica del Nord", "AEST": "Hora estàndard d’Austràlia Oriental", "UYT": "Hora estàndard de l’Uruguai", "OEZ": "Hora estàndard de l’Est d’Europa", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "MST": "Hora estàndard de muntanya d’Amèrica del Nord", "AKST": "Hora estàndard d’Alaska", "LHST": "Hora estàndard de Lord Howe", "LHDT": "Horari d’estiu de Lord Howe", "EAT": "Hora de l’Àfrica Oriental", "CST": "Hora estàndard central d’Amèrica del Nord", "CLST": "Hora d’estiu de Xile", "PST": "Hora estàndard del Pacífic", "PDT": "Hora d’estiu del Pacífic", "MESZ": "Hora d’estiu del Centre d’Europa", "HNT": "Hora estàndard de Terranova", "SRT": "Hora de Surinam", "IST": "Hora estàndard de l’Índia", "JST": "Hora estàndard del Japó", "WART": "Hora estàndard de l’oest de l’Argentina", "ADT": "Hora d’estiu de l’Atlàntic", "COST": "Hora d’estiu de Colòmbia", "AKDT": "Hora d’estiu d’Alaska", "JDT": "Hora d’estiu del Japó", "OESZ": "Hora d’estiu de l’Est d’Europa", "ARST": "Hora d’estiu de l’Argentina", "COT": "Hora estàndard de Colòmbia", "AEDT": "Hora d’estiu d’Austràlia Oriental", "WIB": "Hora de l’oest d’Indonèsia", "CAT": "Hora de l’Àfrica Central", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "∅∅∅": "∅∅∅", "VET": "Hora de Veneçuela", "CLT": "Hora estàndard de Xile", "EST": "Hora estàndard oriental d’Amèrica del Nord", "ACST": "Hora estàndard d’Austràlia Central", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "ART": "Hora estàndard de l’Argentina", "WAST": "Hora d’estiu de l’Àfrica Occidental", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "BT": "Hora de Bhutan", "WITA": "Hora central d’Indonèsia", "ChST": "Hora de Chamorro", "WIT": "Hora de l’est d’Indonèsia", "CHADT": "Hora d’estiu de Chatham", "ECT": "Hora de l’Equador", "HAST": "Hora estàndard de Hawaii-Aleutianes", "NZDT": "Hora d’estiu de Nova Zelanda", "HKT": "Hora estàndard de Hong Kong", "HKST": "Hora d’estiu de Hong Kong", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon", "SAST": "Hora estàndard del sud de l’Àfrica", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "GYT": "Hora de Guyana", "MEZ": "Hora estàndard del Centre d’Europa", "WEZ": "Hora estàndard de l’Oest d’Europa", "GMT": "Hora del Meridià de Greenwich", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "WESZ": "Hora d’estiu de l’Oest d’Europa"},
}
}
diff --git a/ca_AD/ca_AD.go b/ca_AD/ca_AD.go
index c561a2e3..141ab241 100644
--- a/ca_AD/ca_AD.go
+++ b/ca_AD/ca_AD.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"aC", "dC"},
erasNarrow: []string{"aC", "dC"},
erasWide: []string{"abans de Crist", "després de Crist"},
- timezones: map[string]string{"AST": "Hora estàndard de l’Atlàntic", "CHADT": "Hora d’estiu de Chatham", "CLST": "Hora d’estiu de Xile", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "SRT": "Hora de Surinam", "PDT": "Hora d’estiu del Pacífic", "ART": "Hora estàndard de l’Argentina", "HKST": "Hora d’estiu de Hong Kong", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "GMT": "Hora del Meridià de Greenwich", "WIT": "Hora de l’est d’Indonèsia", "MEZ": "Hora estàndard del Centre d’Europa", "EAT": "Hora de l’Àfrica Oriental", "LHDT": "Horari d’estiu de Lord Howe", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "WAST": "Hora d’estiu de l’Àfrica Occidental", "HNCU": "Hora estàndard de Cuba", "UYT": "Hora estàndard de l’Uruguai", "AKDT": "Hora d’estiu d’Alaska", "CST": "Hora estàndard central d’Amèrica del Nord", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "TMST": "Hora d’estiu del Turkmenistan", "SGT": "Hora de Singapur", "GYT": "Hora de Guyana", "AEDT": "Hora d’estiu d’Austràlia Oriental", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon", "IST": "Hora estàndard de l’Índia", "COT": "Hora estàndard de Colòmbia", "EST": "Hora estàndard oriental d’Amèrica del Nord", "AKST": "Hora estàndard d’Alaska", "CLT": "Hora estàndard de Xile", "OESZ": "Hora d’estiu de l’Est d’Europa", "WARST": "Hora d’estiu de l’oest de l’Argentina", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "HNT": "Hora estàndard de Terranova", "MESZ": "Hora d’estiu del Centre d’Europa", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "MYT": "Hora de Malàisia", "VET": "Hora de Veneçuela", "PST": "Hora estàndard del Pacífic", "NZDT": "Hora d’estiu de Nova Zelanda", "WIB": "Hora de l’oest d’Indonèsia", "AWDT": "Hora d’estiu d’Austràlia Occidental", "CHAST": "Hora estàndard de Chatham", "GFT": "Hora de la Guaiana Francesa", "TMT": "Hora estàndard del Turkmenistan", "JST": "Hora estàndard del Japó", "ACST": "Hora estàndard d’Austràlia Central", "WAT": "Hora estàndard de l’Àfrica Occidental", "WART": "Hora estàndard de l’oest de l’Argentina", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "HECU": "Hora d’estiu de Cuba", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "AEST": "Hora estàndard d’Austràlia Oriental", "UYST": "Hora d’estiu de l’Uruguai", "CDT": "Hora d’estiu central d’Amèrica del Nord", "LHST": "Hora estàndard de Lord Howe", "NZST": "Hora estàndard de Nova Zelanda", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "SAST": "Hora estàndard del sud de l’Àfrica", "MST": "Hora estàndard de Macau", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "WESZ": "Hora d’estiu de l’Oest d’Europa", "ARST": "Hora d’estiu de l’Argentina", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "ACDT": "Hora d’estiu d’Austràlia Central", "CAT": "Hora de l’Àfrica Central", "OEZ": "Hora estàndard de l’Est d’Europa", "COST": "Hora d’estiu de Colòmbia", "WEZ": "Hora estàndard de l’Oest d’Europa", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "HKT": "Hora estàndard de Hong Kong", "WITA": "Hora central d’Indonèsia", "∅∅∅": "∅∅∅", "MDT": "Hora d’estiu de Macau", "HAT": "Hora d’estiu de Terranova", "BOT": "Hora de Bolívia", "ECT": "Hora de l’Equador", "ChST": "Hora de Chamorro", "ADT": "Hora d’estiu de l’Atlàntic", "HAST": "Hora estàndard de Hawaii-Aleutianes", "BT": "Hora de Bhutan", "AWST": "Hora estàndard d’Austràlia Occidental", "JDT": "Hora d’estiu del Japó"},
+ timezones: map[string]string{"CHAST": "Hora estàndard de Chatham", "PDT": "Hora d’estiu del Pacífic", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "TMT": "Hora estàndard del Turkmenistan", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "SAST": "Hora estàndard del sud de l’Àfrica", "CAT": "Hora de l’Àfrica Central", "JST": "Hora estàndard del Japó", "CLT": "Hora estàndard de Xile", "ADT": "Hora d’estiu de l’Atlàntic", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "UYST": "Hora d’estiu de l’Uruguai", "WIB": "Hora de l’oest d’Indonèsia", "NZST": "Hora estàndard de Nova Zelanda", "EST": "Hora estàndard oriental d’Amèrica del Nord", "CHADT": "Hora d’estiu de Chatham", "IST": "Hora estàndard de l’Índia", "MEZ": "Hora estàndard del Centre d’Europa", "WEZ": "Hora estàndard de l’Oest d’Europa", "AKST": "Hora estàndard d’Alaska", "EAT": "Hora de l’Àfrica Oriental", "NZDT": "Hora d’estiu de Nova Zelanda", "∅∅∅": "Hora d’estiu de l’Amazones", "ACDT": "Hora d’estiu d’Austràlia Central", "AEDT": "Hora d’estiu d’Austràlia Oriental", "SRT": "Hora de Surinam", "LHST": "Hora estàndard de Lord Howe", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon", "PST": "Hora estàndard del Pacífic", "MESZ": "Hora d’estiu del Centre d’Europa", "AST": "Hora estàndard de l’Atlàntic", "HKT": "Hora estàndard de Hong Kong", "ACST": "Hora estàndard d’Austràlia Central", "HAST": "Hora estàndard de Hawaii-Aleutianes", "COST": "Hora d’estiu de Colòmbia", "WITA": "Hora central d’Indonèsia", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "BT": "Hora de Bhutan", "UYT": "Hora estàndard de l’Uruguai", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "OEZ": "Hora estàndard de l’Est d’Europa", "MST": "Hora estàndard de Macau", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "HAT": "Hora d’estiu de Terranova", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "HNCU": "Hora estàndard de Cuba", "HECU": "Hora d’estiu de Cuba", "ECT": "Hora de l’Equador", "HKST": "Hora d’estiu de Hong Kong", "HNT": "Hora estàndard de Terranova", "AEST": "Hora estàndard d’Austràlia Oriental", "ChST": "Hora de Chamorro", "WART": "Hora estàndard de l’oest de l’Argentina", "COT": "Hora estàndard de Colòmbia", "SGT": "Hora de Singapur", "VET": "Hora de Veneçuela", "GMT": "Hora del Meridià de Greenwich", "ARST": "Hora d’estiu de l’Argentina", "LHDT": "Horari d’estiu de Lord Howe", "GYT": "Hora de Guyana", "CST": "Hora estàndard central d’Amèrica del Nord", "CDT": "Hora d’estiu central d’Amèrica del Nord", "BOT": "Hora de Bolívia", "MYT": "Hora de Malàisia", "CLST": "Hora d’estiu de Xile", "OESZ": "Hora d’estiu de l’Est d’Europa", "WESZ": "Hora d’estiu de l’Oest d’Europa", "MDT": "Hora d’estiu de Macau", "ART": "Hora estàndard de l’Argentina", "WAT": "Hora estàndard de l’Àfrica Occidental", "WAST": "Hora d’estiu de l’Àfrica Occidental", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "AKDT": "Hora d’estiu d’Alaska", "WIT": "Hora de l’est d’Indonèsia", "AWST": "Hora estàndard d’Austràlia Occidental", "AWDT": "Hora d’estiu d’Austràlia Occidental", "JDT": "Hora d’estiu del Japó", "WARST": "Hora d’estiu de l’oest de l’Argentina", "TMST": "Hora d’estiu del Turkmenistan", "GFT": "Hora de la Guaiana Francesa", "HEPMX": "Hora d’estiu del Pacífic de Mèxic"},
}
}
diff --git a/ca_ES/ca_ES.go b/ca_ES/ca_ES.go
index 8e709c34..ab6d42c4 100644
--- a/ca_ES/ca_ES.go
+++ b/ca_ES/ca_ES.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"aC", "dC"},
erasNarrow: []string{"aC", "dC"},
erasWide: []string{"abans de Crist", "després de Crist"},
- timezones: map[string]string{"WITA": "Hora central d’Indonèsia", "CLT": "Hora estàndard de Xile", "MYT": "Hora de Malàisia", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "AWDT": "Hora d’estiu d’Austràlia Occidental", "NZDT": "Hora d’estiu de Nova Zelanda", "TMST": "Hora d’estiu del Turkmenistan", "ECT": "Hora de l’Equador", "AKST": "Hora estàndard d’Alaska", "HNT": "Hora estàndard de Terranova", "ACDT": "Hora d’estiu d’Austràlia Central", "WARST": "Hora d’estiu de l’oest de l’Argentina", "COT": "Hora estàndard de Colòmbia", "HNCU": "Hora estàndard de Cuba", "MDT": "Hora d’estiu de Macau", "HECU": "Hora d’estiu de Cuba", "AEDT": "Hora d’estiu d’Austràlia Oriental", "LHDT": "Horari d’estiu de Lord Howe", "SAST": "Hora estàndard del sud de l’Àfrica", "JST": "Hora estàndard del Japó", "WART": "Hora estàndard de l’oest de l’Argentina", "COST": "Hora d’estiu de Colòmbia", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "AST": "Hora estàndard de l’Atlàntic", "GYT": "Hora de Guyana", "HKT": "Hora estàndard de Hong Kong", "HKST": "Hora d’estiu de Hong Kong", "MEZ": "Hora estàndard del Centre d’Europa", "NZST": "Hora estàndard de Nova Zelanda", "CLST": "Hora d’estiu de Xile", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "EAT": "Hora de l’Àfrica Oriental", "GMT": "Hora del Meridià de Greenwich", "SGT": "Hora de Singapur", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "WESZ": "Hora d’estiu de l’Oest d’Europa", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "WAST": "Hora d’estiu de l’Àfrica Occidental", "AKDT": "Hora d’estiu d’Alaska", "PST": "Hora estàndard del Pacífic", "ART": "Hora estàndard de l’Argentina", "CHAST": "Hora estàndard de Chatham", "UYT": "Hora estàndard de l’Uruguai", "ADT": "Hora d’estiu de l’Atlàntic", "WIT": "Hora de l’est d’Indonèsia", "BT": "Hora de Bhutan", "BOT": "Hora de Bolívia", "WAT": "Hora estàndard de l’Àfrica Occidental", "OESZ": "Hora d’estiu de l’Est d’Europa", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "AEST": "Hora estàndard d’Austràlia Oriental", "∅∅∅": "Hora d’estiu de l’Amazones", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "CAT": "Hora de l’Àfrica Central", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "SRT": "Hora de Surinam", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "ARST": "Hora d’estiu de l’Argentina", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "GFT": "Hora de la Guaiana Francesa", "ACST": "Hora estàndard d’Austràlia Central", "CDT": "Hora d’estiu central d’Amèrica del Nord", "AWST": "Hora estàndard d’Austràlia Occidental", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "IST": "Hora estàndard de l’Índia", "OEZ": "Hora estàndard de l’Est d’Europa", "EST": "Hora estàndard oriental d’Amèrica del Nord", "UYST": "Hora d’estiu de l’Uruguai", "CST": "Hora estàndard central d’Amèrica del Nord", "WEZ": "Hora estàndard de l’Oest d’Europa", "LHST": "Hora estàndard de Lord Howe", "WIB": "Hora de l’oest d’Indonèsia", "VET": "Hora de Veneçuela", "PDT": "Hora d’estiu del Pacífic", "HAT": "Hora d’estiu de Terranova", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "MESZ": "Hora d’estiu del Centre d’Europa", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon", "CHADT": "Hora d’estiu de Chatham", "JDT": "Hora d’estiu del Japó", "ChST": "Hora de Chamorro", "HAST": "Hora estàndard de Hawaii-Aleutianes", "TMT": "Hora estàndard del Turkmenistan", "MST": "Hora estàndard de Macau"},
+ timezones: map[string]string{"AWST": "Hora estàndard d’Austràlia Occidental", "CHADT": "Hora d’estiu de Chatham", "CAT": "Hora de l’Àfrica Central", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "ARST": "Hora d’estiu de l’Argentina", "WAT": "Hora estàndard de l’Àfrica Occidental", "SAST": "Hora estàndard del sud de l’Àfrica", "CHAST": "Hora estàndard de Chatham", "CLST": "Hora d’estiu de Xile", "MST": "Hora estàndard de Macau", "ACST": "Hora estàndard d’Austràlia Central", "WITA": "Hora central d’Indonèsia", "LHST": "Hora estàndard de Lord Howe", "PST": "Hora estàndard del Pacífic", "MYT": "Hora de Malàisia", "OEZ": "Hora estàndard de l’Est d’Europa", "BT": "Hora de Bhutan", "NZST": "Hora estàndard de Nova Zelanda", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "MESZ": "Hora d’estiu del Centre d’Europa", "JST": "Hora estàndard del Japó", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "UYST": "Hora d’estiu de l’Uruguai", "LHDT": "Horari d’estiu de Lord Howe", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "AWDT": "Hora d’estiu d’Austràlia Occidental", "IST": "Hora estàndard de l’Índia", "TMST": "Hora d’estiu del Turkmenistan", "HKT": "Hora estàndard de Hong Kong", "HAT": "Hora d’estiu de Terranova", "UYT": "Hora estàndard de l’Uruguai", "GYT": "Hora de Guyana", "HAST": "Hora estàndard de Hawaii-Aleutianes", "∅∅∅": "Hora d’estiu de l’Amazones", "VET": "Hora de Veneçuela", "JDT": "Hora d’estiu del Japó", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "WIT": "Hora de l’est d’Indonèsia", "BOT": "Hora de Bolívia", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "NZDT": "Hora d’estiu de Nova Zelanda", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "ECT": "Hora de l’Equador", "OESZ": "Hora d’estiu de l’Est d’Europa", "GFT": "Hora de la Guaiana Francesa", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "CLT": "Hora estàndard de Xile", "WESZ": "Hora d’estiu de l’Oest d’Europa", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "SRT": "Hora de Surinam", "HKST": "Hora d’estiu de Hong Kong", "HNT": "Hora estàndard de Terranova", "AEDT": "Hora d’estiu d’Austràlia Oriental", "AKDT": "Hora d’estiu d’Alaska", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon", "HNCU": "Hora estàndard de Cuba", "TMT": "Hora estàndard del Turkmenistan", "ART": "Hora estàndard de l’Argentina", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "AKST": "Hora estàndard d’Alaska", "CST": "Hora estàndard central d’Amèrica del Nord", "WEZ": "Hora estàndard de l’Oest d’Europa", "WIB": "Hora de l’oest d’Indonèsia", "PDT": "Hora d’estiu del Pacífic", "GMT": "Hora del Meridià de Greenwich", "AST": "Hora estàndard de l’Atlàntic", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "AEST": "Hora estàndard d’Austràlia Oriental", "HECU": "Hora d’estiu de Cuba", "CDT": "Hora d’estiu central d’Amèrica del Nord", "WARST": "Hora d’estiu de l’oest de l’Argentina", "ADT": "Hora d’estiu de l’Atlàntic", "MDT": "Hora d’estiu de Macau", "WAST": "Hora d’estiu de l’Àfrica Occidental", "EST": "Hora estàndard oriental d’Amèrica del Nord", "ACDT": "Hora d’estiu d’Austràlia Central", "COT": "Hora estàndard de Colòmbia", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "SGT": "Hora de Singapur", "MEZ": "Hora estàndard del Centre d’Europa", "WART": "Hora estàndard de l’oest de l’Argentina", "COST": "Hora d’estiu de Colòmbia", "ChST": "Hora de Chamorro", "EAT": "Hora de l’Àfrica Oriental"},
}
}
diff --git a/ca_ES_VALENCIA/ca_ES_VALENCIA.go b/ca_ES_VALENCIA/ca_ES_VALENCIA.go
index dfcbcace..2e375e53 100644
--- a/ca_ES_VALENCIA/ca_ES_VALENCIA.go
+++ b/ca_ES_VALENCIA/ca_ES_VALENCIA.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"aC", "dC"},
erasNarrow: []string{"aC", "dC"},
erasWide: []string{"abans de Crist", "després de Crist"},
- timezones: map[string]string{"WIT": "Hora de l’est d’Indonèsia", "HECU": "Hora d’estiu de Cuba", "HAST": "Hora estàndard de Hawaii-Aleutianes", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "VET": "Hora de Veneçuela", "IST": "Hora estàndard de l’Índia", "ChST": "Hora de Chamorro", "CAT": "Hora de l’Àfrica Central", "EAT": "Hora de l’Àfrica Oriental", "EST": "Hora estàndard oriental d’Amèrica del Nord", "ARST": "Hora d’estiu de l’Argentina", "AWST": "Hora estàndard d’Austràlia Occidental", "LHDT": "Horari d’estiu de Lord Howe", "OEZ": "Hora estàndard de l’Est d’Europa", "ECT": "Hora de l’Equador", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "AKDT": "Hora d’estiu d’Alaska", "ADT": "Hora d’estiu de l’Atlàntic", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "JDT": "Hora d’estiu del Japó", "GFT": "Hora de la Guaiana Francesa", "CHAST": "Hora estàndard de Chatham", "COT": "Hora estàndard de Colòmbia", "MST": "Hora estàndard de Macau", "MDT": "Hora d’estiu de Macau", "MYT": "Hora de Malàisia", "SRT": "Hora de Surinam", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "WART": "Hora estàndard de l’oest de l’Argentina", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "CST": "Hora estàndard central d’Amèrica del Nord", "JST": "Hora estàndard del Japó", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "WAST": "Hora d’estiu de l’Àfrica Occidental", "OESZ": "Hora d’estiu de l’Est d’Europa", "UYT": "Hora estàndard de l’Uruguai", "GYT": "Hora de Guyana", "WESZ": "Hora d’estiu de l’Oest d’Europa", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "TMST": "Hora d’estiu del Turkmenistan", "TMT": "Hora estàndard del Turkmenistan", "GMT": "Hora del Meridià de Greenwich", "WEZ": "Hora estàndard de l’Oest d’Europa", "MESZ": "Hora d’estiu del Centre d’Europa", "NZST": "Hora estàndard de Nova Zelanda", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "MEZ": "Hora estàndard del Centre d’Europa", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "HNCU": "Hora estàndard de Cuba", "PDT": "Hora d’estiu del Pacífic", "HNT": "Hora estàndard de Terranova", "AEDT": "Hora d’estiu d’Austràlia Oriental", "UYST": "Hora d’estiu de l’Uruguai", "CDT": "Hora d’estiu central d’Amèrica del Nord", "ART": "Hora estàndard de l’Argentina", "NZDT": "Hora d’estiu de Nova Zelanda", "ACDT": "Hora d’estiu d’Austràlia Central", "HAT": "Hora d’estiu de Terranova", "AEST": "Hora estàndard d’Austràlia Oriental", "AST": "Hora estàndard de l’Atlàntic", "AKST": "Hora estàndard d’Alaska", "HKST": "Hora d’estiu de Hong Kong", "∅∅∅": "Hora d’estiu de l’Amazones", "SGT": "Hora de Singapur", "LHST": "Hora estàndard de Lord Howe", "SAST": "Hora estàndard del sud de l’Àfrica", "CLT": "Hora estàndard de Xile", "BOT": "Hora de Bolívia", "ACST": "Hora estàndard d’Austràlia Central", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "AWDT": "Hora d’estiu d’Austràlia Occidental", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "CHADT": "Hora d’estiu de Chatham", "CLST": "Hora d’estiu de Xile", "COST": "Hora d’estiu de Colòmbia", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "PST": "Hora estàndard del Pacífic", "HKT": "Hora estàndard de Hong Kong", "WITA": "Hora central d’Indonèsia", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "WIB": "Hora de l’oest d’Indonèsia", "BT": "Hora de Bhutan", "WAT": "Hora estàndard de l’Àfrica Occidental", "WARST": "Hora d’estiu de l’oest de l’Argentina"},
+ timezones: map[string]string{"AKST": "Hora estàndard d’Alaska", "EAT": "Hora de l’Àfrica Oriental", "TMT": "Hora estàndard del Turkmenistan", "HKT": "Hora estàndard de Hong Kong", "ACDT": "Hora d’estiu d’Austràlia Central", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "UYST": "Hora d’estiu de l’Uruguai", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "MYT": "Hora de Malàisia", "HAT": "Hora d’estiu de Terranova", "UYT": "Hora estàndard de l’Uruguai", "GYT": "Hora de Guyana", "HNCU": "Hora estàndard de Cuba", "CHADT": "Hora d’estiu de Chatham", "NZDT": "Hora d’estiu de Nova Zelanda", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "WIB": "Hora de l’oest d’Indonèsia", "SGT": "Hora de Singapur", "JDT": "Hora d’estiu del Japó", "WAST": "Hora d’estiu de l’Àfrica Occidental", "CDT": "Hora d’estiu central d’Amèrica del Nord", "HAST": "Hora estàndard de Hawaii-Aleutianes", "JST": "Hora estàndard del Japó", "OESZ": "Hora d’estiu de l’Est d’Europa", "HKST": "Hora d’estiu de Hong Kong", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon", "LHST": "Hora estàndard de Lord Howe", "BOT": "Hora de Bolívia", "WEZ": "Hora estàndard de l’Oest d’Europa", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "AKDT": "Hora d’estiu d’Alaska", "AEST": "Hora estàndard d’Austràlia Oriental", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "IST": "Hora estàndard de l’Índia", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "NZST": "Hora estàndard de Nova Zelanda", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "TMST": "Hora d’estiu del Turkmenistan", "COT": "Hora estàndard de Colòmbia", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "SRT": "Hora de Surinam", "AWDT": "Hora d’estiu d’Austràlia Occidental", "PDT": "Hora d’estiu del Pacífic", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "GMT": "Hora del Meridià de Greenwich", "WITA": "Hora central d’Indonèsia", "WARST": "Hora d’estiu de l’oest de l’Argentina", "ARST": "Hora d’estiu de l’Argentina", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "GFT": "Hora de la Guaiana Francesa", "AEDT": "Hora d’estiu d’Austràlia Oriental", "LHDT": "Horari d’estiu de Lord Howe", "CLT": "Hora estàndard de Xile", "ADT": "Hora d’estiu de l’Atlàntic", "WAT": "Hora estàndard de l’Àfrica Occidental", "VET": "Hora de Veneçuela", "ART": "Hora estàndard de l’Argentina", "ACST": "Hora estàndard d’Austràlia Central", "AWST": "Hora estàndard d’Austràlia Occidental", "CHAST": "Hora estàndard de Chatham", "MESZ": "Hora d’estiu del Centre d’Europa", "HNT": "Hora estàndard de Terranova", "WART": "Hora estàndard de l’oest de l’Argentina", "MST": "Hora estàndard de Macau", "EST": "Hora estàndard oriental d’Amèrica del Nord", "ChST": "Hora de Chamorro", "SAST": "Hora estàndard del sud de l’Àfrica", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "CAT": "Hora de l’Àfrica Central", "MEZ": "Hora estàndard del Centre d’Europa", "CST": "Hora estàndard central d’Amèrica del Nord", "WIT": "Hora de l’est d’Indonèsia", "ECT": "Hora de l’Equador", "MDT": "Hora d’estiu de Macau", "COST": "Hora d’estiu de Colòmbia", "PST": "Hora estàndard del Pacífic", "CLST": "Hora d’estiu de Xile", "AST": "Hora estàndard de l’Atlàntic", "BT": "Hora de Bhutan", "WESZ": "Hora d’estiu de l’Oest d’Europa", "∅∅∅": "Hora d’estiu de les Açores", "HECU": "Hora d’estiu de Cuba", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "OEZ": "Hora estàndard de l’Est d’Europa"},
}
}
diff --git a/ca_FR/ca_FR.go b/ca_FR/ca_FR.go
index cda13637..7ecc84ff 100644
--- a/ca_FR/ca_FR.go
+++ b/ca_FR/ca_FR.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"aC", "dC"},
erasNarrow: []string{"aC", "dC"},
erasWide: []string{"abans de Crist", "després de Crist"},
- timezones: map[string]string{"AWDT": "Hora d’estiu d’Austràlia Occidental", "AEST": "Hora estàndard d’Austràlia Oriental", "WIT": "Hora de l’est d’Indonèsia", "CAT": "Hora de l’Àfrica Central", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "AST": "Hora estàndard de l’Atlàntic", "LHDT": "Horari d’estiu de Lord Howe", "CLST": "Hora d’estiu de Xile", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "TMT": "Hora estàndard del Turkmenistan", "GYT": "Hora de Guyana", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "WAST": "Hora d’estiu de l’Àfrica Occidental", "VET": "Hora de Veneçuela", "BT": "Hora de Bhutan", "WART": "Hora estàndard de l’oest de l’Argentina", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "HNCU": "Hora estàndard de Cuba", "EST": "Hora estàndard oriental d’Amèrica del Nord", "AKST": "Hora estàndard d’Alaska", "EAT": "Hora de l’Àfrica Oriental", "OEZ": "Hora estàndard de l’Est d’Europa", "OESZ": "Hora d’estiu de l’Est d’Europa", "WARST": "Hora d’estiu de l’oest de l’Argentina", "BOT": "Hora de Bolívia", "ACDT": "Hora d’estiu d’Austràlia Central", "COST": "Hora d’estiu de Colòmbia", "MST": "Hora estàndard de Macau", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "LHST": "Hora estàndard de Lord Howe", "SAST": "Hora estàndard del sud de l’Àfrica", "JST": "Hora estàndard del Japó", "CST": "Hora estàndard central d’Amèrica del Nord", "WIB": "Hora de l’oest d’Indonèsia", "SRT": "Hora de Surinam", "WESZ": "Hora d’estiu de l’Oest d’Europa", "HNT": "Hora estàndard de Terranova", "HKT": "Hora estàndard de Hong Kong", "MYT": "Hora de Malàisia", "IST": "Hora estàndard de l’Índia", "ChST": "Hora de Chamorro", "ACST": "Hora estàndard d’Austràlia Central", "GMT": "Hora del Meridià de Greenwich", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "AKDT": "Hora d’estiu d’Alaska", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "PDT": "Hora d’estiu del Pacífic", "WITA": "Hora central d’Indonèsia", "AEDT": "Hora d’estiu d’Austràlia Oriental", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "AWST": "Hora estàndard d’Austràlia Occidental", "JDT": "Hora d’estiu del Japó", "MDT": "Hora d’estiu de Macau", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "HKST": "Hora d’estiu de Hong Kong", "∅∅∅": "Hora d’estiu de l’Amazones", "ECT": "Hora de l’Equador", "MESZ": "Hora d’estiu del Centre d’Europa", "CLT": "Hora estàndard de Xile", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "CDT": "Hora d’estiu central d’Amèrica del Nord", "UYT": "Hora estàndard de l’Uruguai", "UYST": "Hora d’estiu de l’Uruguai", "HAST": "Hora estàndard de Hawaii-Aleutianes", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "NZST": "Hora estàndard de Nova Zelanda", "CHAST": "Hora estàndard de Chatham", "TMST": "Hora d’estiu del Turkmenistan", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "PST": "Hora estàndard del Pacífic", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon", "NZDT": "Hora d’estiu de Nova Zelanda", "WEZ": "Hora estàndard de l’Oest d’Europa", "HAT": "Hora d’estiu de Terranova", "ART": "Hora estàndard de l’Argentina", "ARST": "Hora d’estiu de l’Argentina", "CHADT": "Hora d’estiu de Chatham", "GFT": "Hora de la Guaiana Francesa", "HECU": "Hora d’estiu de Cuba", "ADT": "Hora d’estiu de l’Atlàntic", "MEZ": "Hora estàndard del Centre d’Europa", "WAT": "Hora estàndard de l’Àfrica Occidental", "COT": "Hora estàndard de Colòmbia", "SGT": "Hora de Singapur"},
+ timezones: map[string]string{"IST": "Hora estàndard de l’Índia", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "HKT": "Hora estàndard de Hong Kong", "AEST": "Hora estàndard d’Austràlia Oriental", "WIB": "Hora de l’oest d’Indonèsia", "CST": "Hora estàndard central d’Amèrica del Nord", "CHADT": "Hora d’estiu de Chatham", "ACST": "Hora estàndard d’Austràlia Central", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "AKDT": "Hora d’estiu d’Alaska", "COT": "Hora estàndard de Colòmbia", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "WAST": "Hora d’estiu de l’Àfrica Occidental", "CAT": "Hora de l’Àfrica Central", "MESZ": "Hora d’estiu del Centre d’Europa", "HAT": "Hora d’estiu de Terranova", "AKST": "Hora estàndard d’Alaska", "SGT": "Hora de Singapur", "WIT": "Hora de l’est d’Indonèsia", "CHAST": "Hora estàndard de Chatham", "BOT": "Hora de Bolívia", "NZST": "Hora estàndard de Nova Zelanda", "NZDT": "Hora d’estiu de Nova Zelanda", "HNT": "Hora estàndard de Terranova", "UYST": "Hora d’estiu de l’Uruguai", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "WAT": "Hora estàndard de l’Àfrica Occidental", "OEZ": "Hora estàndard de l’Est d’Europa", "WART": "Hora estàndard de l’oest de l’Argentina", "AWST": "Hora estàndard d’Austràlia Occidental", "ECT": "Hora de l’Equador", "CLT": "Hora estàndard de Xile", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "BT": "Hora de Bhutan", "WITA": "Hora central d’Indonèsia", "HNCU": "Hora estàndard de Cuba", "AWDT": "Hora d’estiu d’Austràlia Occidental", "AST": "Hora estàndard de l’Atlàntic", "WEZ": "Hora estàndard de l’Oest d’Europa", "WARST": "Hora d’estiu de l’oest de l’Argentina", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "∅∅∅": "∅∅∅", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "EAT": "Hora de l’Àfrica Oriental", "HAST": "Hora estàndard de Hawaii-Aleutianes", "OESZ": "Hora d’estiu de l’Est d’Europa", "TMT": "Hora estàndard del Turkmenistan", "AEDT": "Hora d’estiu d’Austràlia Oriental", "MDT": "Hora d’estiu de muntanya d’Amèrica del Nord", "SRT": "Hora de Surinam", "HECU": "Hora d’estiu de Cuba", "MEZ": "Hora estàndard del Centre d’Europa", "MYT": "Hora de Malàisia", "ChST": "Hora de Chamorro", "LHDT": "Horari d’estiu de Lord Howe", "GYT": "Hora de Guyana", "JST": "Hora estàndard del Japó", "TMST": "Hora d’estiu del Turkmenistan", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "GFT": "Hora de la Guaiana Francesa", "UYT": "Hora estàndard de l’Uruguai", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "PDT": "Hora d’estiu del Pacífic", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon", "SAST": "Hora estàndard del sud de l’Àfrica", "PST": "Hora estàndard del Pacífic", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "ARST": "Hora d’estiu de l’Argentina", "ACDT": "Hora d’estiu d’Austràlia Central", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "MST": "Hora estàndard de muntanya d’Amèrica del Nord", "WESZ": "Hora d’estiu de l’Oest d’Europa", "GMT": "Hora del Meridià de Greenwich", "ART": "Hora estàndard de l’Argentina", "COST": "Hora d’estiu de Colòmbia", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "LHST": "Hora estàndard de Lord Howe", "CLST": "Hora d’estiu de Xile", "ADT": "Hora d’estiu de l’Atlàntic", "EST": "Hora estàndard oriental d’Amèrica del Nord", "HKST": "Hora d’estiu de Hong Kong", "CDT": "Hora d’estiu central d’Amèrica del Nord", "VET": "Hora de Veneçuela", "JDT": "Hora d’estiu del Japó"},
}
}
diff --git a/ca_IT/ca_IT.go b/ca_IT/ca_IT.go
index b541664c..e90a3067 100644
--- a/ca_IT/ca_IT.go
+++ b/ca_IT/ca_IT.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"aC", "dC"},
erasNarrow: []string{"aC", "dC"},
erasWide: []string{"abans de Crist", "després de Crist"},
- timezones: map[string]string{"AEST": "Hora estàndard d’Austràlia Oriental", "HKT": "Hora estàndard de Hong Kong", "MESZ": "Hora d’estiu del Centre d’Europa", "GFT": "Hora de la Guaiana Francesa", "CAT": "Hora de l’Àfrica Central", "CST": "Hora estàndard central d’Amèrica del Nord", "COST": "Hora d’estiu de Colòmbia", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "SAST": "Hora estàndard del sud de l’Àfrica", "AWST": "Hora estàndard d’Austràlia Occidental", "IST": "Hora estàndard de l’Índia", "CLST": "Hora d’estiu de Xile", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "OEZ": "Hora estàndard de l’Est d’Europa", "WIT": "Hora de l’est d’Indonèsia", "AEDT": "Hora d’estiu d’Austràlia Oriental", "NZST": "Hora estàndard de Nova Zelanda", "SRT": "Hora de Surinam", "WIB": "Hora de l’oest d’Indonèsia", "BT": "Hora de Bhutan", "PST": "Hora estàndard del Pacífic", "ART": "Hora estàndard de l’Argentina", "CHAST": "Hora estàndard de Chatham", "ECT": "Hora de l’Equador", "CDT": "Hora d’estiu central d’Amèrica del Nord", "OESZ": "Hora d’estiu de l’Est d’Europa", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "HNCU": "Hora estàndard de Cuba", "AWDT": "Hora d’estiu d’Austràlia Occidental", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "ChST": "Hora de Chamorro", "TMST": "Hora d’estiu del Turkmenistan", "WESZ": "Hora d’estiu de l’Oest d’Europa", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "LHST": "Hora estàndard de Lord Howe", "LHDT": "Horari d’estiu de Lord Howe", "CLT": "Hora estàndard de Xile", "∅∅∅": "Hora d’estiu de l’Amazones", "JST": "Hora estàndard del Japó", "WEZ": "Hora estàndard de l’Oest d’Europa", "HAST": "Hora estàndard de Hawaii-Aleutianes", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "HNT": "Hora estàndard de Terranova", "MEZ": "Hora estàndard del Centre d’Europa", "UYST": "Hora d’estiu de l’Uruguai", "HAT": "Hora d’estiu de Terranova", "WITA": "Hora central d’Indonèsia", "JDT": "Hora d’estiu del Japó", "BOT": "Hora de Bolívia", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "MYT": "Hora de Malàisia", "AKST": "Hora estàndard d’Alaska", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "AKDT": "Hora d’estiu d’Alaska", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "PDT": "Hora d’estiu del Pacífic", "HKST": "Hora d’estiu de Hong Kong", "CHADT": "Hora d’estiu de Chatham", "WAT": "Hora estàndard de l’Àfrica Occidental", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "HECU": "Hora d’estiu de Cuba", "COT": "Hora estàndard de Colòmbia", "MDT": "Hora d’estiu de Macau", "AST": "Hora estàndard de l’Atlàntic", "GYT": "Hora de Guyana", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon", "WAST": "Hora d’estiu de l’Àfrica Occidental", "WART": "Hora estàndard de l’oest de l’Argentina", "EST": "Hora estàndard oriental d’Amèrica del Nord", "VET": "Hora de Veneçuela", "SGT": "Hora de Singapur", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "UYT": "Hora estàndard de l’Uruguai", "ARST": "Hora d’estiu de l’Argentina", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "NZDT": "Hora d’estiu de Nova Zelanda", "ACDT": "Hora d’estiu d’Austràlia Central", "GMT": "Hora del Meridià de Greenwich", "MST": "Hora estàndard de Macau", "TMT": "Hora estàndard del Turkmenistan", "ACST": "Hora estàndard d’Austràlia Central", "EAT": "Hora de l’Àfrica Oriental", "WARST": "Hora d’estiu de l’oest de l’Argentina", "ADT": "Hora d’estiu de l’Atlàntic"},
+ timezones: map[string]string{"MST": "Hora estàndard de muntanya d’Amèrica del Nord", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "CST": "Hora estàndard central d’Amèrica del Nord", "CDT": "Hora d’estiu central d’Amèrica del Nord", "MYT": "Hora de Malàisia", "ART": "Hora estàndard de l’Argentina", "HKT": "Hora estàndard de Hong Kong", "AKDT": "Hora d’estiu d’Alaska", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "WESZ": "Hora d’estiu de l’Oest d’Europa", "CLST": "Hora d’estiu de Xile", "HKST": "Hora d’estiu de Hong Kong", "BT": "Hora de Bhutan", "HAST": "Hora estàndard de Hawaii-Aleutianes", "VET": "Hora de Veneçuela", "ARST": "Hora d’estiu de l’Argentina", "SAST": "Hora estàndard del sud de l’Àfrica", "MESZ": "Hora d’estiu del Centre d’Europa", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "WART": "Hora estàndard de l’oest de l’Argentina", "TMT": "Hora estàndard del Turkmenistan", "EST": "Hora estàndard oriental d’Amèrica del Nord", "ECT": "Hora de l’Equador", "UYT": "Hora estàndard de l’Uruguai", "SRT": "Hora de Surinam", "WIB": "Hora de l’oest d’Indonèsia", "JST": "Hora estàndard del Japó", "ACDT": "Hora d’estiu d’Austràlia Central", "COT": "Hora estàndard de Colòmbia", "AEST": "Hora estàndard d’Austràlia Oriental", "EAT": "Hora de l’Àfrica Oriental", "COST": "Hora d’estiu de Colòmbia", "HNT": "Hora estàndard de Terranova", "BOT": "Hora de Bolívia", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "IST": "Hora estàndard de l’Índia", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "SGT": "Hora de Singapur", "PST": "Hora estàndard del Pacífic", "WARST": "Hora d’estiu de l’oest de l’Argentina", "WAST": "Hora d’estiu de l’Àfrica Occidental", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "WIT": "Hora de l’est d’Indonèsia", "AWDT": "Hora d’estiu d’Austràlia Occidental", "PDT": "Hora d’estiu del Pacífic", "WEZ": "Hora estàndard de l’Oest d’Europa", "TMST": "Hora d’estiu del Turkmenistan", "MDT": "Hora d’estiu de muntanya d’Amèrica del Nord", "AEDT": "Hora d’estiu d’Austràlia Oriental", "AST": "Hora estàndard de l’Atlàntic", "CLT": "Hora estàndard de Xile", "AKST": "Hora estàndard d’Alaska", "LHST": "Hora estàndard de Lord Howe", "HECU": "Hora d’estiu de Cuba", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "MEZ": "Hora estàndard del Centre d’Europa", "OESZ": "Hora d’estiu de l’Est d’Europa", "WAT": "Hora estàndard de l’Àfrica Occidental", "ACST": "Hora estàndard d’Austràlia Central", "UYST": "Hora d’estiu de l’Uruguai", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "∅∅∅": "∅∅∅", "HNCU": "Hora estàndard de Cuba", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "NZST": "Hora estàndard de Nova Zelanda", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "OEZ": "Hora estàndard de l’Est d’Europa", "HAT": "Hora d’estiu de Terranova", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "GMT": "Hora del Meridià de Greenwich", "GYT": "Hora de Guyana", "CAT": "Hora de l’Àfrica Central", "NZDT": "Hora d’estiu de Nova Zelanda", "JDT": "Hora d’estiu del Japó", "WITA": "Hora central d’Indonèsia", "AWST": "Hora estàndard d’Austràlia Occidental", "ChST": "Hora de Chamorro", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon", "LHDT": "Horari d’estiu de Lord Howe", "CHAST": "Hora estàndard de Chatham", "CHADT": "Hora d’estiu de Chatham", "ADT": "Hora d’estiu de l’Atlàntic", "GFT": "Hora de la Guaiana Francesa"},
}
}
diff --git a/ce/ce.go b/ce/ce.go
index 24252270..6e7c0d2a 100644
--- a/ce/ce.go
+++ b/ce/ce.go
@@ -62,7 +62,7 @@ func New() locales.Translator {
monthsAbbreviated: []string{"", "янв", "фев", "мар", "апр", "май", "июн", "июл", "авг", "сен", "окт", "ноя", "дек"},
monthsWide: []string{"", "январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"},
daysWide: []string{"кӀиранан де", "оршотан де", "шинарин де", "кхаарин де", "еарин де", "пӀераскан де", "шот де"},
- timezones: map[string]string{"JDT": "Япони, аьхкенан хан", "COST": "Колумби, аьхкенан хан", "LHDT": "Лорд-Хау, аьхкенан хан", "ACWST": "Юккъера Австрали, малхбузен стандартан хан", "CHADT": "Чатем, аьхкенан хан", "TMT": "Туркменин стандартан хан", "COT": "Колумби, стандартан хан", "SGT": "Сингапур", "EAT": "Малхбален Африка", "BOT": "Боливи", "AEDT": "Малхбален Австрали, аьхкенан хан", "CST": "Юккъера Америка, стандартан хан", "AKDT": "Аляска, аьхкенан хан", "CLST": "Чили, аьхкенан хан", "TMST": "Туркменин аьхкенан хан", "ACST": "Юккъера Австрали, стандартан хан", "ACDT": "Юккъера Австрали, аьхкенан хан", "CAT": "Юккъера Африка", "GMT": "Гринвичица юкъара хан", "AKST": "Аляска, стандартан хан", "WESZ": "Малхбузен Европа, аьхкенан хан", "LHST": "Лорд-Хау, стандартан хан", "GYT": "Гайана", "EDT": "Малхбален Америка, аьхкенан хан", "HNPMX": "Тийна океанан Мексикан стандартан хан", "ADT": "Атлантикан аьхкенан хан", "BT": "Бутан", "SRT": "Суринам", "∅∅∅": "Азоран гӀайренаш, аьхкенан хан", "PDT": "Тийна океанан аьхкенан хан", "WITA": "Юккъера Индонези", "HNPM": "Сен-Пьер а, Микелон а, стандартан хан", "CHAST": "Чатем, стандартан хан", "ECT": "Эквадор", "CDT": "Юккъера Америка, аьхкенан хан", "AWDT": "Малхбузен Австрали, аьхкенан хан", "ACWDT": "Юккъера Австрали, малхбузен аьхкенан хан", "WEZ": "Малхбузен Европа, стандартан хан", "AWST": "Малхбузен Австрали, стандартан хан", "NZST": "Керла Зеланди, стандартан хан", "HNEG": "Малхбален Гренланди, стандартан хан", "HNNOMX": "Къилбаседа Американ Мексикан стандартан хан", "MST": "MST", "MEZ": "Юккъера Европа, стандартан хан", "NZDT": "Керла Зеланди, аьхкенан хан", "SAST": "Къилба Африка", "GFT": "Французийн Гвиана", "ChST": "Чаморро", "HEEG": "Малхбален Гренланди, аьхкенан хан", "OESZ": "Малхбален Европа, аьхкенан хан", "HKST": "Гонконг, аьхкенан хан", "MESZ": "Юккъера Европа, аьхкенан хан", "OEZ": "Малхбален Европа, стандартан хан", "WARST": "Малхбузен Аргентина, аьхкенан хан", "HAST": "Гавайн-алеутийн стандартан хан", "HECU": "Куба, аьхкенан хан", "EST": "Малхбален Америка, стандартан хан", "MDT": "MDT", "MYT": "Малайзи", "PST": "Тийна океанан стандартан хан", "JST": "Япони, стандартан хан", "HENOMX": "Къилбаседа Американ Мексикан аьхкенан хан", "HNCU": "Куба, стандартан хан", "WIT": "Малхбален Индонези", "HNT": "Ньюфаундленд, стандартан хан", "ART": "Аргентина, стандартан хан", "HEPM": "Сен-Пьер а, Микелон а, аьхкенан хан", "IST": "Инди", "WIB": "Малхбузен Индонези", "HAT": "Ньюфаундленд, аьхкенан хан", "CLT": "Чили, стандартан хан", "WAT": "Малхбузен Африка, стандартан хан", "WAST": "Малхбузен Африка, аьхкенан хан", "UYT": "Уругвай, стандартан хан", "AST": "Атлантикан стандартан хан", "UYST": "Уругвай, аьхкенан хан", "HADT": "Гавайн-алеутийн аьхкенан хан", "VET": "Венесуэла", "ARST": "Аргентина, аьхкенан хан", "HNOG": "Малхбузен Гренланди, стандартан хан", "HEOG": "Малхбузен Гренланди, аьхкенан хан", "HEPMX": "Тийна океанан Мексикан аьхкенан хан", "HKT": "Гонконг, стандартан хан", "WART": "Малхбузен Аргентина, стандартан хан", "AEST": "Малхбален Австрали, стандартан хан"},
+ timezones: map[string]string{"EST": "Малхбален Америка, стандартан хан", "GFT": "Французийн Гвиана", "CLST": "Чили, аьхкенан хан", "WESZ": "Малхбузен Европа, аьхкенан хан", "HEOG": "Малхбузен Гренланди, аьхкенан хан", "BT": "Бутан", "CHADT": "Чатем, аьхкенан хан", "ACWDT": "Юккъера Австрали, малхбузен аьхкенан хан", "HKT": "Гонконг, стандартан хан", "HKST": "Гонконг, аьхкенан хан", "HNT": "Ньюфаундленд, стандартан хан", "ECT": "Эквадор", "MESZ": "Юккъера Европа, аьхкенан хан", "TMST": "Туркменин аьхкенан хан", "ACDT": "Юккъера Австрали, аьхкенан хан", "AKDT": "Аляска, аьхкенан хан", "WITA": "Юккъера Индонези", "CAT": "Юккъера Африка", "PDT": "Тийна океанан аьхкенан хан", "HADT": "Гавайн-алеутийн аьхкенан хан", "JDT": "Япони, аьхкенан хан", "ARST": "Аргентина, аьхкенан хан", "WAST": "Малхбузен Африка, аьхкенан хан", "CDT": "Юккъера Америка, аьхкенан хан", "SGT": "Сингапур", "WART": "Малхбузен Аргентина, стандартан хан", "AKST": "Аляска, стандартан хан", "HEPM": "Сен-Пьер а, Микелон а, аьхкенан хан", "HAST": "Гавайн-алеутийн стандартан хан", "NZST": "Керла Зеланди, стандартан хан", "NZDT": "Керла Зеланди, аьхкенан хан", "OEZ": "Малхбален Европа, стандартан хан", "CLT": "Чили, стандартан хан", "MST": "MST", "HNNOMX": "Къилбаседа Американ Мексикан стандартан хан", "PST": "Тийна океанан стандартан хан", "IST": "Инди", "TMT": "Туркменин стандартан хан", "AEST": "Малхбален Австрали, стандартан хан", "GYT": "Гайана", "BOT": "Боливи", "ACWST": "Юккъера Австрали, малхбузен стандартан хан", "MEZ": "Юккъера Европа, стандартан хан", "HEEG": "Малхбален Гренланди, аьхкенан хан", "HNPMX": "Тийна океанан Мексикан стандартан хан", "AWDT": "Малхбузен Австрали, аьхкенан хан", "CHAST": "Чатем, стандартан хан", "ACST": "Юккъера Австрали, стандартан хан", "SAST": "Къилба Африка", "OESZ": "Малхбален Европа, аьхкенан хан", "AST": "Атлантикан стандартан хан", "LHST": "Лорд-Хау, стандартан хан", "LHDT": "Лорд-Хау, аьхкенан хан", "WIT": "Малхбален Индонези", "JST": "Япони, стандартан хан", "ART": "Аргентина, стандартан хан", "HENOMX": "Къилбаседа Американ Мексикан аьхкенан хан", "ChST": "Чаморро", "SRT": "Суринам", "HNCU": "Куба, стандартан хан", "WIB": "Малхбузен Индонези", "CST": "Юккъера Америка, стандартан хан", "GMT": "Гринвичица юкъара хан", "MDT": "MDT", "WAT": "Малхбузен Африка, стандартан хан", "HEPMX": "Тийна океанан Мексикан аьхкенан хан", "HNEG": "Малхбален Гренланди, стандартан хан", "EAT": "Малхбален Африка", "HECU": "Куба, аьхкенан хан", "AWST": "Малхбузен Австрали, стандартан хан", "ADT": "Атлантикан аьхкенан хан", "EDT": "Малхбален Америка, аьхкенан хан", "COT": "Колумби, стандартан хан", "HNPM": "Сен-Пьер а, Микелон а, стандартан хан", "∅∅∅": "Азоран гӀайренаш, аьхкенан хан", "WEZ": "Малхбузен Европа, стандартан хан", "MYT": "Малайзи", "WARST": "Малхбузен Аргентина, аьхкенан хан", "COST": "Колумби, аьхкенан хан", "HAT": "Ньюфаундленд, аьхкенан хан", "UYST": "Уругвай, аьхкенан хан", "VET": "Венесуэла", "HNOG": "Малхбузен Гренланди, стандартан хан", "AEDT": "Малхбален Австрали, аьхкенан хан", "UYT": "Уругвай, стандартан хан"},
}
}
diff --git a/ce_RU/ce_RU.go b/ce_RU/ce_RU.go
index fff8f533..c6fd2172 100644
--- a/ce_RU/ce_RU.go
+++ b/ce_RU/ce_RU.go
@@ -62,7 +62,7 @@ func New() locales.Translator {
monthsAbbreviated: []string{"", "янв", "фев", "мар", "апр", "май", "июн", "июл", "авг", "сен", "окт", "ноя", "дек"},
monthsWide: []string{"", "январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"},
daysWide: []string{"кӀиранан де", "оршотан де", "шинарин де", "кхаарин де", "еарин де", "пӀераскан де", "шот де"},
- timezones: map[string]string{"HKT": "Гонконг, стандартан хан", "MESZ": "Юккъера Европа, аьхкенан хан", "CHAST": "Чатем, стандартан хан", "CLST": "Чили, аьхкенан хан", "WARST": "Малхбузен Аргентина, аьхкенан хан", "HADT": "Гавайн-алеутийн аьхкенан хан", "HEOG": "Малхбузен Гренланди, аьхкенан хан", "SAST": "Къилба Африка", "JST": "Япони, стандартан хан", "COST": "Колумби, аьхкенан хан", "HECU": "Куба, аьхкенан хан", "HEPMX": "Тийна океанан Мексикан аьхкенан хан", "WIT": "Малхбален Индонези", "PDT": "Тийна океанан аьхкенан хан", "AWST": "Малхбузен Австрали, стандартан хан", "HNOG": "Малхбузен Гренланди, стандартан хан", "AEST": "Малхбален Австрали, стандартан хан", "HEPM": "Сен-Пьер а, Микелон а, аьхкенан хан", "CHADT": "Чатем, аьхкенан хан", "HNEG": "Малхбален Гренланди, стандартан хан", "CAT": "Юккъера Африка", "OEZ": "Малхбален Европа, стандартан хан", "COT": "Колумби, стандартан хан", "HNPMX": "Тийна океанан Мексикан стандартан хан", "AST": "Атлантикан стандартан хан", "AKDT": "Аляска, аьхкенан хан", "WIB": "Малхбузен Индонези", "VET": "Венесуэла", "SRT": "Суринам", "PST": "Тийна океанан стандартан хан", "HNCU": "Куба, стандартан хан", "MEZ": "Юккъера Европа, стандартан хан", "∅∅∅": "Амазонка, аьхкенан хан", "ChST": "Чаморро", "HAT": "Ньюфаундленд, аьхкенан хан", "LHST": "Лорд-Хау, стандартан хан", "HENOMX": "Къилбаседа Американ Мексикан аьхкенан хан", "UYT": "Уругвай, стандартан хан", "IST": "Инди", "HNT": "Ньюфаундленд, стандартан хан", "HKST": "Гонконг, аьхкенан хан", "WAST": "Малхбузен Африка, аьхкенан хан", "GMT": "Гринвичица юкъара хан", "UYST": "Уругвай, аьхкенан хан", "HAST": "Гавайн-алеутийн стандартан хан", "ARST": "Аргентина, аьхкенан хан", "WITA": "Юккъера Индонези", "JDT": "Япони, аьхкенан хан", "TMT": "Туркменин стандартан хан", "MST": "MST", "BT": "Бутан", "ACWDT": "Юккъера Австрали, малхбузен аьхкенан хан", "AEDT": "Малхбален Австрали, аьхкенан хан", "HNPM": "Сен-Пьер а, Микелон а, стандартан хан", "EDT": "Малхбален Америка, аьхкенан хан", "GYT": "Гайана", "AKST": "Аляска, стандартан хан", "ACWST": "Юккъера Австрали, малхбузен стандартан хан", "AWDT": "Малхбузен Австрали, аьхкенан хан", "LHDT": "Лорд-Хау, аьхкенан хан", "NZST": "Керла Зеланди, стандартан хан", "HEEG": "Малхбален Гренланди, аьхкенан хан", "GFT": "Французийн Гвиана", "MYT": "Малайзи", "ART": "Аргентина, стандартан хан", "HNNOMX": "Къилбаседа Американ Мексикан стандартан хан", "CLT": "Чили, стандартан хан", "ACDT": "Юккъера Австрали, аьхкенан хан", "EAT": "Малхбален Африка", "SGT": "Сингапур", "ADT": "Атлантикан аьхкенан хан", "TMST": "Туркменин аьхкенан хан", "BOT": "Боливи", "ECT": "Эквадор", "WAT": "Малхбузен Африка, стандартан хан", "OESZ": "Малхбален Европа, аьхкенан хан", "EST": "Малхбален Америка, стандартан хан", "WEZ": "Малхбузен Европа, стандартан хан", "WESZ": "Малхбузен Европа, аьхкенан хан", "NZDT": "Керла Зеланди, аьхкенан хан", "ACST": "Юккъера Австрали, стандартан хан", "WART": "Малхбузен Аргентина, стандартан хан", "MDT": "MDT", "CST": "Юккъера Америка, стандартан хан", "CDT": "Юккъера Америка, аьхкенан хан"},
+ timezones: map[string]string{"SAST": "Къилба Африка", "HNCU": "Куба, стандартан хан", "HAT": "Ньюфаундленд, аьхкенан хан", "WART": "Малхбузен Аргентина, стандартан хан", "MDT": "MDT", "EST": "Малхбален Америка, стандартан хан", "LHST": "Лорд-Хау, стандартан хан", "EAT": "Малхбален Африка", "WEZ": "Малхбузен Европа, стандартан хан", "WAT": "Малхбузен Африка, стандартан хан", "ACST": "Юккъера Австрали, стандартан хан", "ACDT": "Юккъера Австрали, аьхкенан хан", "HEPM": "Сен-Пьер а, Микелон а, аьхкенан хан", "LHDT": "Лорд-Хау, аьхкенан хан", "CLT": "Чили, стандартан хан", "ADT": "Атлантикан аьхкенан хан", "AKST": "Аляска, стандартан хан", "UYT": "Уругвай, стандартан хан", "ACWST": "Юккъера Австрали, малхбузен стандартан хан", "MEZ": "Юккъера Европа, стандартан хан", "GMT": "Гринвичица юкъара хан", "HENOMX": "Къилбаседа Американ Мексикан аьхкенан хан", "HNT": "Ньюфаундленд, стандартан хан", "WITA": "Юккъера Индонези", "∅∅∅": "Азоран гӀайренаш, аьхкенан хан", "ECT": "Эквадор", "IST": "Инди", "AEDT": "Малхбален Австрали, аьхкенан хан", "WIB": "Малхбузен Индонези", "AWDT": "Малхбузен Австрали, аьхкенан хан", "WESZ": "Малхбузен Европа, аьхкенан хан", "HEPMX": "Тийна океанан Мексикан аьхкенан хан", "CDT": "Юккъера Америка, аьхкенан хан", "HNNOMX": "Къилбаседа Американ Мексикан стандартан хан", "GFT": "Французийн Гвиана", "HNPM": "Сен-Пьер а, Микелон а, стандартан хан", "SRT": "Суринам", "NZDT": "Керла Зеланди, аьхкенан хан", "HKST": "Гонконг, аьхкенан хан", "OESZ": "Малхбален Европа, аьхкенан хан", "AKDT": "Аляска, аьхкенан хан", "WIT": "Малхбален Индонези", "PDT": "Тийна океанан аьхкенан хан", "HAST": "Гавайн-алеутийн стандартан хан", "CLST": "Чили, аьхкенан хан", "HNOG": "Малхбузен Гренланди, стандартан хан", "HEOG": "Малхбузен Гренланди, аьхкенан хан", "ART": "Аргентина, стандартан хан", "GYT": "Гайана", "HECU": "Куба, аьхкенан хан", "MYT": "Малайзи", "MESZ": "Юккъера Европа, аьхкенан хан", "HEEG": "Малхбален Гренланди, аьхкенан хан", "CHADT": "Чатем, аьхкенан хан", "HADT": "Гавайн-алеутийн аьхкенан хан", "CAT": "Юккъера Африка", "BT": "Бутан", "UYST": "Уругвай, аьхкенан хан", "JST": "Япони, стандартан хан", "OEZ": "Малхбален Европа, стандартан хан", "MST": "MST", "TMT": "Туркменин стандартан хан", "ChST": "Чаморро", "CHAST": "Чатем, стандартан хан", "VET": "Венесуэла", "JDT": "Япони, аьхкенан хан", "COST": "Колумби, аьхкенан хан", "HNEG": "Малхбален Гренланди, стандартан хан", "BOT": "Боливи", "TMST": "Туркменин аьхкенан хан", "EDT": "Малхбален Америка, аьхкенан хан", "WARST": "Малхбузен Аргентина, аьхкенан хан", "ARST": "Аргентина, аьхкенан хан", "HKT": "Гонконг, стандартан хан", "COT": "Колумби, стандартан хан", "AEST": "Малхбален Австрали, стандартан хан", "HNPMX": "Тийна океанан Мексикан стандартан хан", "PST": "Тийна океанан стандартан хан", "NZST": "Керла Зеланди, стандартан хан", "ACWDT": "Юккъера Австрали, малхбузен аьхкенан хан", "AST": "Атлантикан стандартан хан", "WAST": "Малхбузен Африка, аьхкенан хан", "CST": "Юккъера Америка, стандартан хан", "AWST": "Малхбузен Австрали, стандартан хан", "SGT": "Сингапур"},
}
}
diff --git a/cgg/cgg.go b/cgg/cgg.go
index 061c9d0a..0e0aaadb 100644
--- a/cgg/cgg.go
+++ b/cgg/cgg.go
@@ -57,7 +57,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kurisito Atakaijire", "Kurisito Yaijire"},
- timezones: map[string]string{"HKST": "HKST", "LHDT": "LHDT", "JDT": "JDT", "COT": "COT", "ART": "ART", "ChST": "ChST", "TMT": "TMT", "WIB": "WIB", "MYT": "MYT", "ACWDT": "ACWDT", "WAT": "WAT", "COST": "COST", "HENOMX": "HENOMX", "HNCU": "HNCU", "GFT": "GFT", "CAT": "CAT", "HECU": "HECU", "HNT": "HNT", "HEOG": "HEOG", "AEDT": "AEDT", "HKT": "HKT", "WITA": "WITA", "BT": "BT", "HNOG": "HNOG", "CLST": "CLST", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "HAST": "HAST", "AEST": "AEST", "ACDT": "ACDT", "EAT": "EAT", "WAST": "WAST", "AKST": "AKST", "AKDT": "AKDT", "CST": "CST", "WEZ": "WEZ", "ACWST": "ACWST", "CHAST": "CHAST", "BOT": "BOT", "UYT": "UYT", "MESZ": "MESZ", "SAST": "SAST", "ACST": "ACST", "ECT": "ECT", "MDT": "MDT", "WIT": "WIT", "∅∅∅": "∅∅∅", "TMST": "TMST", "GMT": "GMT", "PDT": "PDT", "HAT": "HAT", "EDT": "EDT", "MST": "MST", "ADT": "ADT", "SRT": "SRT", "HNEG": "HNEG", "OEZ": "OEZ", "PST": "PST", "NZST": "NZST", "IST": "IST", "JST": "JST", "EST": "EST", "VET": "VET", "NZDT": "NZDT", "WART": "WART", "WARST": "WARST", "SGT": "SGT", "OESZ": "OESZ", "HEPMX": "HEPMX", "AST": "AST", "AWST": "AWST", "AWDT": "AWDT", "MEZ": "MEZ", "LHST": "LHST", "CLT": "CLT", "HADT": "HADT", "CDT": "CDT", "HNPMX": "HNPMX", "UYST": "UYST", "GYT": "GYT", "WESZ": "WESZ", "ARST": "ARST", "HNPM": "HNPM", "HEPM": "HEPM", "CHADT": "CHADT"},
+ timezones: map[string]string{"VET": "VET", "OEZ": "OEZ", "ART": "ART", "EDT": "EDT", "COST": "COST", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "HNCU": "HNCU", "SGT": "SGT", "MDT": "MDT", "BT": "BT", "AEDT": "AEDT", "CHADT": "CHADT", "HADT": "HADT", "WESZ": "WESZ", "WARST": "WARST", "ChST": "ChST", "LHST": "LHST", "HKST": "HKST", "ACST": "ACST", "CAT": "CAT", "HAST": "HAST", "ECT": "ECT", "NZDT": "NZDT", "MEZ": "MEZ", "ADT": "ADT", "CLT": "CLT", "HNT": "HNT", "CST": "CST", "UYT": "UYT", "SRT": "SRT", "WIT": "WIT", "PST": "PST", "HEOG": "HEOG", "TMST": "TMST", "AKST": "AKST", "∅∅∅": "∅∅∅", "EAT": "EAT", "AWST": "AWST", "ACWDT": "ACWDT", "JST": "JST", "AST": "AST", "HAT": "HAT", "LHDT": "LHDT", "WIB": "WIB", "AWDT": "AWDT", "MST": "MST", "ACDT": "ACDT", "COT": "COT", "AKDT": "AKDT", "HEPM": "HEPM", "SAST": "SAST", "WART": "WART", "CLST": "CLST", "TMT": "TMT", "HKT": "HKT", "MESZ": "MESZ", "BOT": "BOT", "WAST": "WAST", "HEPMX": "HEPMX", "EST": "EST", "AEST": "AEST", "JDT": "JDT", "GYT": "GYT", "CHAST": "CHAST", "NZST": "NZST", "HNOG": "HNOG", "HNPMX": "HNPMX", "OESZ": "OESZ", "WEZ": "WEZ", "HEEG": "HEEG", "GFT": "GFT", "HECU": "HECU", "ACWST": "ACWST", "HENOMX": "HENOMX", "HNEG": "HNEG", "IST": "IST", "PDT": "PDT", "GMT": "GMT", "MYT": "MYT", "ARST": "ARST", "WAT": "WAT", "WITA": "WITA", "UYST": "UYST", "CDT": "CDT"},
}
}
diff --git a/cgg_UG/cgg_UG.go b/cgg_UG/cgg_UG.go
index 420d68a0..016091c2 100644
--- a/cgg_UG/cgg_UG.go
+++ b/cgg_UG/cgg_UG.go
@@ -57,7 +57,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kurisito Atakaijire", "Kurisito Yaijire"},
- timezones: map[string]string{"MST": "MST", "AKST": "AKST", "SRT": "SRT", "COT": "COT", "SGT": "SGT", "ACDT": "ACDT", "HNPMX": "HNPMX", "AEDT": "AEDT", "GFT": "GFT", "ART": "ART", "HEPMX": "HEPMX", "ACWDT": "ACWDT", "TMST": "TMST", "OESZ": "OESZ", "WART": "WART", "UYST": "UYST", "HNT": "HNT", "HEOG": "HEOG", "CHADT": "CHADT", "CLST": "CLST", "JDT": "JDT", "ACST": "ACST", "WAT": "WAT", "WARST": "WARST", "GMT": "GMT", "EST": "EST", "MESZ": "MESZ", "SAST": "SAST", "HEPM": "HEPM", "IST": "IST", "WAST": "WAST", "HNCU": "HNCU", "AST": "AST", "AWST": "AWST", "HNPM": "HNPM", "TMT": "TMT", "HKT": "HKT", "BOT": "BOT", "UYT": "UYT", "LHST": "LHST", "CLT": "CLT", "VET": "VET", "HAST": "HAST", "ECT": "ECT", "HENOMX": "HENOMX", "COST": "COST", "HECU": "HECU", "MDT": "MDT", "CDT": "CDT", "ADT": "ADT", "GYT": "GYT", "JST": "JST", "CAT": "CAT", "HNOG": "HNOG", "WEZ": "WEZ", "HAT": "HAT", "NZDT": "NZDT", "∅∅∅": "∅∅∅", "EAT": "EAT", "MYT": "MYT", "PDT": "PDT", "AEST": "AEST", "LHDT": "LHDT", "HEEG": "HEEG", "BT": "BT", "HKST": "HKST", "NZST": "NZST", "HNNOMX": "HNNOMX", "WESZ": "WESZ", "CHAST": "CHAST", "HNEG": "HNEG", "EDT": "EDT", "AKDT": "AKDT", "WIB": "WIB", "WIT": "WIT", "AWDT": "AWDT", "WITA": "WITA", "PST": "PST", "MEZ": "MEZ", "ChST": "ChST", "HADT": "HADT", "ACWST": "ACWST", "ARST": "ARST", "OEZ": "OEZ", "CST": "CST"},
+ timezones: map[string]string{"AKDT": "AKDT", "∅∅∅": "∅∅∅", "LHDT": "LHDT", "WIB": "WIB", "CST": "CST", "WIT": "WIT", "EST": "EST", "UYT": "UYT", "CHAST": "CHAST", "MEZ": "MEZ", "CLST": "CLST", "HNT": "HNT", "CDT": "CDT", "ECT": "ECT", "MESZ": "MESZ", "HNOG": "HNOG", "WAT": "WAT", "HNNOMX": "HNNOMX", "HEEG": "HEEG", "MDT": "MDT", "ChST": "ChST", "GYT": "GYT", "HAST": "HAST", "VET": "VET", "SRT": "SRT", "PST": "PST", "AST": "AST", "WEZ": "WEZ", "ARST": "ARST", "EDT": "EDT", "AEST": "AEST", "HEPMX": "HEPMX", "PDT": "PDT", "HADT": "HADT", "WART": "WART", "NZDT": "NZDT", "MYT": "MYT", "ART": "ART", "SAST": "SAST", "HECU": "HECU", "CAT": "CAT", "ACWST": "ACWST", "TMST": "TMST", "WAST": "WAST", "LHST": "LHST", "EAT": "EAT", "HNCU": "HNCU", "AWDT": "AWDT", "JST": "JST", "ACST": "ACST", "COST": "COST", "UYST": "UYST", "OEZ": "OEZ", "AEDT": "AEDT", "MST": "MST", "HNPM": "HNPM", "SGT": "SGT", "OESZ": "OESZ", "COT": "COT", "HENOMX": "HENOMX", "GFT": "GFT", "AWST": "AWST", "IST": "IST", "HNEG": "HNEG", "WITA": "WITA", "HEPM": "HEPM", "CHADT": "CHADT", "ADT": "ADT", "HAT": "HAT", "BOT": "BOT", "WESZ": "WESZ", "HKST": "HKST", "HNPMX": "HNPMX", "JDT": "JDT", "TMT": "TMT", "ACDT": "ACDT", "HKT": "HKT", "AKST": "AKST", "NZST": "NZST", "ACWDT": "ACWDT", "GMT": "GMT", "WARST": "WARST", "CLT": "CLT", "HEOG": "HEOG", "BT": "BT"},
}
}
diff --git a/chr/chr.go b/chr/chr.go
index ed3a3d62..823015b0 100644
--- a/chr/chr.go
+++ b/chr/chr.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"ᏧᏓᎷᎸ ᎤᎷᎯᏍᏗ ᎦᎶᏁᏛ", "ᎠᏃ ᏙᎻᏂ"},
- timezones: map[string]string{"PDT": "ᏭᏕᎵᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "MEZ": "ᎠᏰᏟ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "MESZ": "ᎠᏰᏟ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "EAT": "ᏗᎧᎸᎬ ᎬᎿᎨᏍᏛ ᎠᏟᎢᎵᏒ", "CST": "ᎠᏰᏟ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "UYST": "ᏳᎷᏇ ᎪᎩ ᎠᏟᎢᎵᏒ", "WIB": "ᏭᏕᎵᎬ ᏗᏜ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "IST": "ᎢᏂᏗᎢᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HENOMX": "ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "UYT": "ᏳᎷᏇ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HKST": "ᎰᏂᎩ ᎪᏂᎩ ᎪᎩ ᎠᏟᎢᎵᏒ", "WEZ": "ᏭᏕᎵᎬ ᏗᏜ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ACWDT": "ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "NZST": "ᎢᏤ ᏏᎢᎴᏂᏗ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "MST": "ᎣᏓᎸ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HAT": "ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "HEOG": "ᏭᏕᎵᎬ ᎢᏤᏍᏛᏱ ᎪᎩ ᎠᏟᎢᎵᏒ", "NZDT": "ᎢᏤ ᏏᎢᎴᏂᏗ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "CLST": "ᏥᎵ ᎪᎩ ᎠᏟᎢᎵᏒ", "JDT": "ᏣᏩᏂᏏ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "CAT": "ᎠᏰᏟ ᎬᎿᎨᏍᏛ ᎠᏟᎢᎵᏒ", "WAST": "ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ ᎪᎩ ᎠᏟᎢᎵᏒ", "SRT": "ᏒᎵᎾᎻ ᎠᏟᎢᎵᏒ", "VET": "ᏪᏁᏑᏪᎳ ᎠᏟᎢᎵᏒ", "ChST": "ᏣᎼᎶ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HEEG": "ᏗᎧᎸᎬ ᎢᏤᏍᏛᏱ ᎪᎩ ᎠᏟᎢᎵᏒ", "TMT": "ᏛᎵᎩᎺᏂᏍᏔᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HAST": "ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HEPMX": "ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "HNOG": "ᏭᏕᎵᎬ ᎢᏤᏍᏛᏱ ᎠᏟᎶᏍᏗ ᎠᎵᎢᎵᏒ", "HNPM": "ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "SAST": "ᏧᎦᎾᏮ ᎬᎿᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CLT": "ᏥᎵ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "∅∅∅": "ᎠᎺᏌᏂ ᎪᎩ ᎠᏟᎢᎵᏒ", "HNEG": "ᏗᎧᎸᎬ ᎢᏤᏍᏛᏱ ᎠᏟᎶᏍᏗ ᎠᎵᎢᎵᏒ", "AST": "ᏗᎧᎸᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WIT": "ᏗᎧᎸᎬ ᏗᏜ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "WART": "ᏭᏕᎵᎬ ᏗᏜ ᎠᏥᏂᏘᏂᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "COST": "ᎪᎸᎻᏈᎢᎠ ᎪᎩ ᎠᏟᎢᎵᏒ", "GMT": "ᎢᏤ ᎢᏳᏍᏗ ᎠᏟᎢᎵᏒ", "ADT": "ᏗᎧᎸᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "WITA": "ᎠᏰᏟ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "AWDT": "ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "HEPM": "ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "CHADT": "ᏣᏝᎻ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "JST": "ᏣᏩᏂᏏ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "TMST": "ᏛᎵᎩᎺᏂᏍᏔᏂ ᎪᎩ ᎠᏟᎢᎵᏒ", "ACST": "ᎠᏰᏟ ᎡᎳᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CDT": "ᎠᏰᏟ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "HNT": "ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "GYT": "ᎦᏯᎾ ᎠᏟᎢᎵᏒ", "BOT": "ᏉᎵᏫᎠ ᎠᏟᎢᎵᏒ", "GFT": "ᎠᏂᎦᎸ ᏈᏯᎾ ᎠᏟᎢᎵᏒ", "OEZ": "ᏗᎧᎸᎬ ᏗᏜ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HECU": "ᎫᏆ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "HNPMX": "ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HADT": "ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "EST": "ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "PST": "ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CHAST": "ᏣᏝᎻ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ACDT": "ᎠᏰᏟ ᎡᎳᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "HNCU": "ᎫᏆ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WESZ": "ᏭᏕᎵᎬ ᏗᏜ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "LHST": "ᎤᎬᏫᏳᎯ ᎭᏫ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "SGT": "ᏏᏂᎦᏉᎵ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "EDT": "ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "AEDT": "ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "WAT": "ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "COT": "ᎪᎸᎻᏈᎢᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNNOMX": "ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "MYT": "ᎹᎴᏏᎢᎠ ᎠᏟᎢᎵᏒ", "MDT": "ᎣᏓᎸ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "AWST": "ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "LHDT": "ᎤᎬᏫᏳᎯ ᎭᏫ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "AKDT": "ᎠᎳᏍᎦ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "ARST": "ᎠᏥᏂᏘᏂᎠ ᎪᎩ ᎠᏟᎢᎵᏒ", "ACWST": "ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ART": "ᎠᏥᏂᏘᏂᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AEST": "ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HKT": "ᎰᏂᎩ ᎪᏂᎩ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "OESZ": "ᏗᎧᎸᎬ ᏗᏜ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "ECT": "ᎡᏆᏙᎵ ᎠᏟᎢᎵᏒ", "WARST": "ᏭᏕᎵᎬ ᏗᏜ ᎠᏥᏂᏘᏂᎠ ᎪᎩ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "BT": "ᏊᏔᏂ ᎠᏟᎢᎵᏒ", "AKST": "ᎠᎳᏍᎦ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"},
+ timezones: map[string]string{"AWDT": "ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "CHADT": "ᏣᏝᎻ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "WEZ": "ᏭᏕᎵᎬ ᏗᏜ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNT": "ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HADT": "ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "MESZ": "ᎠᏰᏟ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "OEZ": "ᏗᎧᎸᎬ ᏗᏜ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "TMT": "ᏛᎵᎩᎺᏂᏍᏔᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "EDT": "ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "HNCU": "ᎫᏆ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "NZDT": "ᎢᏤ ᏏᎢᎴᏂᏗ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "HEOG": "ᏭᏕᎵᎬ ᎢᏤᏍᏛᏱ ᎪᎩ ᎠᏟᎢᎵᏒ", "ACST": "ᎠᏰᏟ ᎡᎳᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WITA": "ᎠᏰᏟ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "PDT": "ᏭᏕᎵᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "HNEG": "ᏗᎧᎸᎬ ᎢᏤᏍᏛᏱ ᎠᏟᎶᏍᏗ ᎠᎵᎢᎵᏒ", "UYST": "ᏳᎷᏇ ᎪᎩ ᎠᏟᎢᎵᏒ", "LHST": "ᎤᎬᏫᏳᎯ ᎭᏫ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "LHDT": "ᎤᎬᏫᏳᎯ ᎭᏫ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "SAST": "ᏧᎦᎾᏮ ᎬᎿᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "GYT": "ᎦᏯᎾ ᎠᏟᎢᎵᏒ", "CST": "ᎠᏰᏟ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "JDT": "ᏣᏩᏂᏏ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "WARST": "ᏭᏕᎵᎬ ᏗᏜ ᎠᏥᏂᏘᏂᎠ ᎪᎩ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HECU": "ᎫᏆ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "EAT": "ᏗᎧᎸᎬ ᎬᎿᎨᏍᏛ ᎠᏟᎢᎵᏒ", "HEEG": "ᏗᎧᎸᎬ ᎢᏤᏍᏛᏱ ᎪᎩ ᎠᏟᎢᎵᏒ", "BT": "ᏊᏔᏂ ᎠᏟᎢᎵᏒ", "ACDT": "ᎠᏰᏟ ᎡᎳᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "HEPMX": "ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "CDT": "ᎠᏰᏟ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "BOT": "ᏉᎵᏫᎠ ᎠᏟᎢᎵᏒ", "NZST": "ᎢᏤ ᏏᎢᎴᏂᏗ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "JST": "ᏣᏩᏂᏏ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AWST": "ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "PST": "ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNOG": "ᏭᏕᎵᎬ ᎢᏤᏍᏛᏱ ᎠᏟᎶᏍᏗ ᎠᎵᎢᎵᏒ", "WAST": "ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ ᎪᎩ ᎠᏟᎢᎵᏒ", "ChST": "ᏣᎼᎶ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CHAST": "ᏣᏝᎻ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WESZ": "ᏭᏕᎵᎬ ᏗᏜ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "MYT": "ᎹᎴᏏᎢᎠ ᎠᏟᎢᎵᏒ", "HNNOMX": "ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "COT": "ᎪᎸᎻᏈᎢᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AEDT": "ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "HNPMX": "ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "OESZ": "ᏗᎧᎸᎬ ᏗᏜ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "CLST": "ᏥᎵ ᎪᎩ ᎠᏟᎢᎵᏒ", "ADT": "ᏗᎧᎸᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "HKST": "ᎰᏂᎩ ᎪᏂᎩ ᎪᎩ ᎠᏟᎢᎵᏒ", "SRT": "ᏒᎵᎾᎻ ᎠᏟᎢᎵᏒ", "SGT": "ᏏᏂᎦᏉᎵ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "EST": "ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HAT": "ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "AEST": "ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WIT": "ᏗᎧᎸᎬ ᏗᏜ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "IST": "ᎢᏂᏗᎢᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "GMT": "ᎢᏤ ᎢᏳᏍᏗ ᎠᏟᎢᎵᏒ", "WART": "ᏭᏕᎵᎬ ᏗᏜ ᎠᏥᏂᏘᏂᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "TMST": "ᏛᎵᎩᎺᏂᏍᏔᏂ ᎪᎩ ᎠᏟᎢᎵᏒ", "HEPM": "ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "CLT": "ᏥᎵ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AST": "ᏗᎧᎸᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "MST": "MST", "WAT": "ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AKDT": "ᎠᎳᏍᎦ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "ARST": "ᎠᏥᏂᏘᏂᎠ ᎪᎩ ᎠᏟᎢᎵᏒ", "COST": "ᎪᎸᎻᏈᎢᎠ ᎪᎩ ᎠᏟᎢᎵᏒ", "GFT": "ᎠᏂᎦᎸ ᏈᏯᎾ ᎠᏟᎢᎵᏒ", "HAST": "ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ACWST": "ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "VET": "ᏪᏁᏑᏪᎳ ᎠᏟᎢᎵᏒ", "MEZ": "ᎠᏰᏟ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ART": "ᎠᏥᏂᏘᏂᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNPM": "ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HKT": "ᎰᏂᎩ ᎪᏂᎩ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AKST": "ᎠᎳᏍᎦ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "∅∅∅": "ᎠᏐᎴᏏ ᎪᎩ ᎠᏟᎢᎵᏒ", "WIB": "ᏭᏕᎵᎬ ᏗᏜ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "ECT": "ᎡᏆᏙᎵ ᎠᏟᎢᎵᏒ", "ACWDT": "ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "CAT": "ᎠᏰᏟ ᎬᎿᎨᏍᏛ ᎠᏟᎢᎵᏒ", "MDT": "MDT", "HENOMX": "ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "UYT": "ᏳᎷᏇ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"},
}
}
diff --git a/chr_US/chr_US.go b/chr_US/chr_US.go
index 9540719a..3dfcdfad 100644
--- a/chr_US/chr_US.go
+++ b/chr_US/chr_US.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"ᏧᏓᎷᎸ ᎤᎷᎯᏍᏗ ᎦᎶᏁᏛ", "ᎠᏃ ᏙᎻᏂ"},
- timezones: map[string]string{"PST": "ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "PDT": "ᏭᏕᎵᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "AWDT": "ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "LHST": "ᎤᎬᏫᏳᎯ ᎭᏫ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "OESZ": "ᏗᎧᎸᎬ ᏗᏜ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "COST": "ᎪᎸᎻᏈᎢᎠ ᎪᎩ ᎠᏟᎢᎵᏒ", "GYT": "ᎦᏯᎾ ᎠᏟᎢᎵᏒ", "HEOG": "ᏭᏕᎵᎬ ᎢᏤᏍᏛᏱ ᎪᎩ ᎠᏟᎢᎵᏒ", "CHADT": "ᏣᏝᎻ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "WART": "ᏭᏕᎵᎬ ᏗᏜ ᎠᏥᏂᏘᏂᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNPMX": "ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HEPMX": "ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "UYST": "ᏳᎷᏇ ᎪᎩ ᎠᏟᎢᎵᏒ", "JDT": "ᏣᏩᏂᏏ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "ECT": "ᎡᏆᏙᎵ ᎠᏟᎢᎵᏒ", "CDT": "ᎠᏰᏟ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "MEZ": "ᎠᏰᏟ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HEPM": "ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "HNOG": "ᏭᏕᎵᎬ ᎢᏤᏍᏛᏱ ᎠᏟᎶᏍᏗ ᎠᎵᎢᎵᏒ", "WEZ": "ᏭᏕᎵᎬ ᏗᏜ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ARST": "ᎠᏥᏂᏘᏂᎠ ᎪᎩ ᎠᏟᎢᎵᏒ", "AEDT": "ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "NZST": "ᎢᏤ ᏏᎢᎴᏂᏗ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "GFT": "ᎠᏂᎦᎸ ᏈᏯᎾ ᎠᏟᎢᎵᏒ", "WAT": "ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNNOMX": "ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WESZ": "ᏭᏕᎵᎬ ᏗᏜ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "HEEG": "ᏗᎧᎸᎬ ᎢᏤᏍᏛᏱ ᎪᎩ ᎠᏟᎢᎵᏒ", "COT": "ᎪᎸᎻᏈᎢᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WIT": "ᏗᎧᎸᎬ ᏗᏜ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "MDT": "MDT", "MYT": "ᎹᎴᏏᎢᎠ ᎠᏟᎢᎵᏒ", "HADT": "ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "TMST": "ᏛᎵᎩᎺᏂᏍᏔᏂ ᎪᎩ ᎠᏟᎢᎵᏒ", "SGT": "ᏏᏂᎦᏉᎵ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "VET": "ᏪᏁᏑᏪᎳ ᎠᏟᎢᎵᏒ", "HKST": "ᎰᏂᎩ ᎪᏂᎩ ᎪᎩ ᎠᏟᎢᎵᏒ", "HAT": "ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "ACST": "ᎠᏰᏟ ᎡᎳᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ACDT": "ᎠᏰᏟ ᎡᎳᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "EDT": "ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "ADT": "ᏗᎧᎸᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "HAST": "ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HKT": "ᎰᏂᎩ ᎪᏂᎩ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CHAST": "ᏣᏝᎻ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "SAST": "ᏧᎦᎾᏮ ᎬᎿᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CAT": "ᎠᏰᏟ ᎬᎿᎨᏍᏛ ᎠᏟᎢᎵᏒ", "WARST": "ᏭᏕᎵᎬ ᏗᏜ ᎠᏥᏂᏘᏂᎠ ᎪᎩ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "MST": "MST", "UYT": "ᏳᎷᏇ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ACWDT": "ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "∅∅∅": "ᎠᎺᏌᏂ ᎪᎩ ᎠᏟᎢᎵᏒ", "ChST": "ᏣᎼᎶ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AKST": "ᎠᎳᏍᎦ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AST": "ᏗᎧᎸᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "NZDT": "ᎢᏤ ᏏᎢᎴᏂᏗ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "IST": "ᎢᏂᏗᎢᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "JST": "ᏣᏩᏂᏏ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WAST": "ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ ᎪᎩ ᎠᏟᎢᎵᏒ", "HECU": "ᎫᏆ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "WITA": "ᎠᏰᏟ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "LHDT": "ᎤᎬᏫᏳᎯ ᎭᏫ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "EAT": "ᏗᎧᎸᎬ ᎬᎿᎨᏍᏛ ᎠᏟᎢᎵᏒ", "EST": "ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ACWST": "ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNT": "ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CST": "ᎠᏰᏟ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CLT": "ᏥᎵ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "OEZ": "ᏗᎧᎸᎬ ᏗᏜ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HENOMX": "ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "AKDT": "ᎠᎳᏍᎦ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "WIB": "ᏭᏕᎵᎬ ᏗᏜ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "SRT": "ᏒᎵᎾᎻ ᎠᏟᎢᎵᏒ", "ART": "ᎠᏥᏂᏘᏂᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AEST": "ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CLST": "ᏥᎵ ᎪᎩ ᎠᏟᎢᎵᏒ", "HNEG": "ᏗᎧᎸᎬ ᎢᏤᏍᏛᏱ ᎠᏟᎶᏍᏗ ᎠᎵᎢᎵᏒ", "TMT": "ᏛᎵᎩᎺᏂᏍᏔᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNCU": "ᎫᏆ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNPM": "ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "MESZ": "ᎠᏰᏟ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "BOT": "ᏉᎵᏫᎠ ᎠᏟᎢᎵᏒ", "GMT": "ᎢᏤ ᎢᏳᏍᏗ ᎠᏟᎢᎵᏒ", "BT": "ᏊᏔᏂ ᎠᏟᎢᎵᏒ", "AWST": "ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"},
+ timezones: map[string]string{"MDT": "ᎣᏓᎸ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "HNCU": "ᎫᏆ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "OESZ": "ᏗᎧᎸᎬ ᏗᏜ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "AKST": "ᎠᎳᏍᎦ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ChST": "ᏣᎼᎶ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "SAST": "ᏧᎦᎾᏮ ᎬᎿᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ACWDT": "ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "JST": "ᏣᏩᏂᏏ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HAT": "ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "SGT": "ᏏᏂᎦᏉᎵ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HAST": "ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "GMT": "ᎢᏤ ᎢᏳᏍᏗ ᎠᏟᎢᎵᏒ", "CLT": "ᏥᎵ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CLST": "ᏥᎵ ᎪᎩ ᎠᏟᎢᎵᏒ", "ART": "ᎠᏥᏂᏘᏂᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ARST": "ᎠᏥᏂᏘᏂᎠ ᎪᎩ ᎠᏟᎢᎵᏒ", "BT": "ᏊᏔᏂ ᎠᏟᎢᎵᏒ", "VET": "ᏪᏁᏑᏪᎳ ᎠᏟᎢᎵᏒ", "HEPMX": "ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "CST": "ᎠᏰᏟ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ACST": "ᎠᏰᏟ ᎡᎳᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "COST": "ᎪᎸᎻᏈᎢᎠ ᎪᎩ ᎠᏟᎢᎵᏒ", "LHST": "ᎤᎬᏫᏳᎯ ᎭᏫ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HADT": "ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "IST": "ᎢᏂᏗᎢᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "NZDT": "ᎢᏤ ᏏᎢᎴᏂᏗ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "WAST": "ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ ᎪᎩ ᎠᏟᎢᎵᏒ", "HKST": "ᎰᏂᎩ ᎪᏂᎩ ᎪᎩ ᎠᏟᎢᎵᏒ", "PST": "ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "MST": "ᎣᏓᎸ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CHAST": "ᏣᏝᎻ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WESZ": "ᏭᏕᎵᎬ ᏗᏜ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "HEEG": "ᏗᎧᎸᎬ ᎢᏤᏍᏛᏱ ᎪᎩ ᎠᏟᎢᎵᏒ", "ADT": "ᏗᎧᎸᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "EST": "ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "MEZ": "ᎠᏰᏟ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "GYT": "ᎦᏯᎾ ᎠᏟᎢᎵᏒ", "CDT": "ᎠᏰᏟ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "ACWST": "ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNOG": "ᏭᏕᎵᎬ ᎢᏤᏍᏛᏱ ᎠᏟᎶᏍᏗ ᎠᎵᎢᎵᏒ", "HENOMX": "ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "UYT": "ᏳᎷᏇ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AEDT": "ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "MESZ": "ᎠᏰᏟ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "JDT": "ᏣᏩᏂᏏ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "MYT": "ᎹᎴᏏᎢᎠ ᎠᏟᎢᎵᏒ", "HKT": "ᎰᏂᎩ ᎪᏂᎩ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AEST": "ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "NZST": "ᎢᏤ ᏏᎢᎴᏂᏗ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AST": "ᏗᎧᎸᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "TMST": "ᏛᎵᎩᎺᏂᏍᏔᏂ ᎪᎩ ᎠᏟᎢᎵᏒ", "PDT": "ᏭᏕᎵᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "WIB": "ᏭᏕᎵᎬ ᏗᏜ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "AWDT": "ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "ECT": "ᎡᏆᏙᎵ ᎠᏟᎢᎵᏒ", "WART": "ᏭᏕᎵᎬ ᏗᏜ ᎠᏥᏂᏘᏂᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WARST": "ᏭᏕᎵᎬ ᏗᏜ ᎠᏥᏂᏘᏂᎠ ᎪᎩ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "COT": "ᎪᎸᎻᏈᎢᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "UYST": "ᏳᎷᏇ ᎪᎩ ᎠᏟᎢᎵᏒ", "HNEG": "ᏗᎧᎸᎬ ᎢᏤᏍᏛᏱ ᎠᏟᎶᏍᏗ ᎠᎵᎢᎵᏒ", "∅∅∅": "∅∅∅", "HNPMX": "ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AWST": "ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CHADT": "ᏣᏝᎻ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "OEZ": "ᏗᎧᎸᎬ ᏗᏜ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HEOG": "ᏭᏕᎵᎬ ᎢᏤᏍᏛᏱ ᎪᎩ ᎠᏟᎢᎵᏒ", "HNT": "ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNPM": "ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "LHDT": "ᎤᎬᏫᏳᎯ ᎭᏫ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "EAT": "ᏗᎧᎸᎬ ᎬᎿᎨᏍᏛ ᎠᏟᎢᎵᏒ", "BOT": "ᏉᎵᏫᎠ ᎠᏟᎢᎵᏒ", "CAT": "ᎠᏰᏟ ᎬᎿᎨᏍᏛ ᎠᏟᎢᎵᏒ", "WEZ": "ᏭᏕᎵᎬ ᏗᏜ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "TMT": "ᏛᎵᎩᎺᏂᏍᏔᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AKDT": "ᎠᎳᏍᎦ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "EDT": "ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "ACDT": "ᎠᏰᏟ ᎡᎳᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "WAT": "ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "SRT": "ᏒᎵᎾᎻ ᎠᏟᎢᎵᏒ", "HNNOMX": "ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WITA": "ᎠᏰᏟ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "HEPM": "ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "HECU": "ᎫᏆ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "WIT": "ᏗᎧᎸᎬ ᏗᏜ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "GFT": "ᎠᏂᎦᎸ ᏈᏯᎾ ᎠᏟᎢᎵᏒ"},
}
}
diff --git a/ckb/ckb.go b/ckb/ckb.go
index 179cd937..87925cc3 100644
--- a/ckb/ckb.go
+++ b/ckb/ckb.go
@@ -72,7 +72,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"پێش زایین", "زایینی"},
erasNarrow: []string{"پ.ن", "ز"},
erasWide: []string{"پێش زایین", "زایینی"},
- timezones: map[string]string{"JST": "JST", "TMT": "TMT", "VET": "VET", "HEPM": "HEPM", "NZDT": "NZDT", "HNPMX": "HNPMX", "HAT": "HAT", "IST": "IST", "OEZ": "OEZ", "GFT": "GFT", "ACST": "ACST", "CAT": "CAT", "EST": "EST", "BT": "BT", "HNT": "HNT", "HEOG": "HEOG", "MEZ": "MEZ", "BOT": "BOT", "GMT": "GMT", "GYT": "GYT", "HAST": "HAST", "ART": "ART", "CHAST": "CHAST", "CHADT": "CHADT", "MESZ": "MESZ", "CLST": "CLST", "EDT": "EDT", "JDT": "JDT", "WAST": "WAST", "SGT": "SGT", "HNCU": "HNCU", "HECU": "HECU", "AST": "AST", "PDT": "PDT", "NZST": "NZST", "COT": "COT", "HNPM": "HNPM", "EAT": "EAT", "PST": "PST", "AEST": "AEST", "AEDT": "AEDT", "HNOG": "HNOG", "HENOMX": "HENOMX", "CST": "CST", "MYT": "MYT", "SRT": "SRT", "ACWST": "ACWST", "ARST": "ARST", "SAST": "SAST", "CLT": "CLT", "AKST": "AKST", "UYST": "UYST", "MST": "MST", "WITA": "WITA", "LHDT": "LHDT", "WAT": "WAT", "COST": "COST", "AKDT": "AKDT", "HKT": "HKT", "HKST": "HKST", "HEEG": "HEEG", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "WIB": "WIB", "WIT": "WIT", "AWST": "AWST", "UYT": "UYT", "ADT": "ADT", "MDT": "MDT", "TMST": "TMST", "WART": "WART", "WARST": "WARST", "WEZ": "WEZ", "WESZ": "WESZ", "LHST": "LHST", "ChST": "ChST", "ACDT": "ACDT", "ECT": "ECT", "CDT": "CDT", "HADT": "HADT", "ACWDT": "ACWDT", "HNEG": "HNEG"},
+ timezones: map[string]string{"HKST": "HKST", "COT": "COT", "HAST": "HAST", "JST": "JST", "WESZ": "WESZ", "MDT": "MDT", "JDT": "JDT", "OESZ": "OESZ", "HAT": "HAT", "HEPM": "HEPM", "PST": "PST", "PDT": "PDT", "NZDT": "NZDT", "VET": "VET", "LHDT": "LHDT", "AST": "AST", "GMT": "GMT", "AEDT": "AEDT", "CLST": "CLST", "ART": "ART", "ARST": "ARST", "AKST": "AKST", "ECT": "ECT", "NZST": "NZST", "MESZ": "MESZ", "CLT": "CLT", "LHST": "LHST", "HNCU": "HNCU", "AEST": "AEST", "HNPMX": "HNPMX", "CDT": "CDT", "WEZ": "WEZ", "EST": "EST", "HENOMX": "HENOMX", "AKDT": "AKDT", "∅∅∅": "∅∅∅", "HEOG": "HEOG", "HKT": "HKT", "COST": "COST", "ACWDT": "ACWDT", "TMT": "TMT", "HNNOMX": "HNNOMX", "SRT": "SRT", "ACDT": "ACDT", "HNT": "HNT", "HNEG": "HNEG", "HEEG": "HEEG", "AWDT": "AWDT", "CHAST": "CHAST", "CAT": "CAT", "OEZ": "OEZ", "SGT": "SGT", "BOT": "BOT", "BT": "BT", "EAT": "EAT", "MYT": "MYT", "MST": "MST", "CST": "CST", "ACWST": "ACWST", "ACST": "ACST", "WITA": "WITA", "ChST": "ChST", "HECU": "HECU", "HNOG": "HNOG", "ADT": "ADT", "UYT": "UYT", "SAST": "SAST", "AWST": "AWST", "IST": "IST", "WARST": "WARST", "HADT": "HADT", "MEZ": "MEZ", "WART": "WART", "UYST": "UYST", "WIT": "WIT", "TMST": "TMST", "WAST": "WAST", "GYT": "GYT", "WIB": "WIB", "HNPM": "HNPM", "HEPMX": "HEPMX", "CHADT": "CHADT", "WAT": "WAT", "EDT": "EDT", "GFT": "GFT"},
}
}
diff --git a/ckb_IQ/ckb_IQ.go b/ckb_IQ/ckb_IQ.go
index 493e0b6f..bc65da56 100644
--- a/ckb_IQ/ckb_IQ.go
+++ b/ckb_IQ/ckb_IQ.go
@@ -72,7 +72,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"پێش زایین", "زایینی"},
erasNarrow: []string{"پ.ن", "ز"},
erasWide: []string{"پێش زایین", "زایینی"},
- timezones: map[string]string{"NZST": "NZST", "OEZ": "OEZ", "EST": "EST", "EDT": "EDT", "HEPMX": "HEPMX", "MEZ": "MEZ", "ARST": "ARST", "HNOG": "HNOG", "CHADT": "CHADT", "EAT": "EAT", "GYT": "GYT", "HNT": "HNT", "LHDT": "LHDT", "MDT": "MDT", "CDT": "CDT", "UYST": "UYST", "HKT": "HKT", "NZDT": "NZDT", "WARST": "WARST", "HNPM": "HNPM", "TMT": "TMT", "WAT": "WAT", "WART": "WART", "AKST": "AKST", "HEOG": "HEOG", "CHAST": "CHAST", "BOT": "BOT", "ACST": "ACST", "CAT": "CAT", "COT": "COT", "COST": "COST", "AWST": "AWST", "CLST": "CLST", "ACDT": "ACDT", "IST": "IST", "BT": "BT", "SRT": "SRT", "CLT": "CLT", "JDT": "JDT", "WAST": "WAST", "ECT": "ECT", "VET": "VET", "AEDT": "AEDT", "MESZ": "MESZ", "GMT": "GMT", "SGT": "SGT", "AKDT": "AKDT", "AST": "AST", "WEZ": "WEZ", "HEPM": "HEPM", "LHST": "LHST", "HECU": "HECU", "CST": "CST", "PST": "PST", "HAT": "HAT", "AEST": "AEST", "AWDT": "AWDT", "HKST": "HKST", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "HNCU": "HNCU", "WIT": "WIT", "ADT": "ADT", "ART": "ART", "ChST": "ChST", "TMST": "TMST", "WIB": "WIB", "HADT": "HADT", "WITA": "WITA", "HNNOMX": "HNNOMX", "PDT": "PDT", "ACWST": "ACWST", "JST": "JST", "OESZ": "OESZ", "MST": "MST", "HAST": "HAST", "HENOMX": "HENOMX", "MYT": "MYT", "UYT": "UYT", "ACWDT": "ACWDT", "SAST": "SAST", "HNEG": "HNEG", "GFT": "GFT", "HNPMX": "HNPMX", "WESZ": "WESZ"},
+ timezones: map[string]string{"WART": "WART", "WARST": "WARST", "AEST": "AEST", "AKST": "AKST", "WEZ": "WEZ", "GMT": "GMT", "MYT": "MYT", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "MEZ": "MEZ", "COT": "COT", "ChST": "ChST", "HKST": "HKST", "HAT": "HAT", "UYT": "UYT", "AWST": "AWST", "ACWST": "ACWST", "NZST": "NZST", "MDT": "MDT", "CLST": "CLST", "HNOG": "HNOG", "HNNOMX": "HNNOMX", "BT": "BT", "AWDT": "AWDT", "HAST": "HAST", "CAT": "CAT", "JDT": "JDT", "WITA": "WITA", "ACWDT": "ACWDT", "IST": "IST", "HEPMX": "HEPMX", "SRT": "SRT", "CDT": "CDT", "PDT": "PDT", "WESZ": "WESZ", "EST": "EST", "HNPM": "HNPM", "UYST": "UYST", "HNPMX": "HNPMX", "SAST": "SAST", "GYT": "GYT", "ART": "ART", "ARST": "ARST", "HECU": "HECU", "CHADT": "CHADT", "HADT": "HADT", "ECT": "ECT", "NZDT": "NZDT", "PST": "PST", "WAT": "WAT", "GFT": "GFT", "WIB": "WIB", "ACDT": "ACDT", "HEEG": "HEEG", "HNT": "HNT", "LHST": "LHST", "VET": "VET", "OESZ": "OESZ", "TMT": "TMT", "TMST": "TMST", "WIT": "WIT", "LHDT": "LHDT", "CHAST": "CHAST", "HEOG": "HEOG", "EDT": "EDT", "AKDT": "AKDT", "ADT": "ADT", "MST": "MST", "WAST": "WAST", "COST": "COST", "SGT": "SGT", "JST": "JST", "MESZ": "MESZ", "CLT": "CLT", "HNCU": "HNCU", "AST": "AST", "OEZ": "OEZ", "HKT": "HKT", "EAT": "EAT", "BOT": "BOT", "HENOMX": "HENOMX", "ACST": "ACST", "HNEG": "HNEG", "HEPM": "HEPM", "CST": "CST"},
}
}
diff --git a/ckb_IR/ckb_IR.go b/ckb_IR/ckb_IR.go
index f05ebfd6..c526b6fb 100644
--- a/ckb_IR/ckb_IR.go
+++ b/ckb_IR/ckb_IR.go
@@ -72,7 +72,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"پێش زایین", "زایینی"},
erasNarrow: []string{"پ.ن", "ز"},
erasWide: []string{"پێش زایین", "زایینی"},
- timezones: map[string]string{"LHDT": "LHDT", "OESZ": "OESZ", "UYT": "UYT", "HNT": "HNT", "PST": "PST", "ART": "ART", "HEPM": "HEPM", "TMST": "TMST", "CAT": "CAT", "ECT": "ECT", "SGT": "SGT", "MDT": "MDT", "AWST": "AWST", "WEZ": "WEZ", "HEOG": "HEOG", "JST": "JST", "HNEG": "HNEG", "WARST": "WARST", "HECU": "HECU", "CST": "CST", "PDT": "PDT", "HNNOMX": "HNNOMX", "GMT": "GMT", "EST": "EST", "SRT": "SRT", "WESZ": "WESZ", "ChST": "ChST", "TMT": "TMT", "WART": "WART", "COT": "COT", "EDT": "EDT", "WIT": "WIT", "ACWST": "ACWST", "AEDT": "AEDT", "HNPMX": "HNPMX", "CDT": "CDT", "VET": "VET", "HNOG": "HNOG", "HKT": "HKT", "LHST": "LHST", "SAST": "SAST", "ACST": "ACST", "WAT": "WAT", "HKST": "HKST", "HNPM": "HNPM", "GFT": "GFT", "AKDT": "AKDT", "ADT": "ADT", "CLT": "CLT", "AWDT": "AWDT", "NZST": "NZST", "∅∅∅": "∅∅∅", "EAT": "EAT", "UYST": "UYST", "BT": "BT", "MEZ": "MEZ", "NZDT": "NZDT", "CLST": "CLST", "ACDT": "ACDT", "GYT": "GYT", "WIB": "WIB", "IST": "IST", "BOT": "BOT", "WAST": "WAST", "OEZ": "OEZ", "HNCU": "HNCU", "MST": "MST", "HAT": "HAT", "HEEG": "HEEG", "HENOMX": "HENOMX", "AKST": "AKST", "ACWDT": "ACWDT", "ARST": "ARST", "HAST": "HAST", "HADT": "HADT", "MESZ": "MESZ", "CHAST": "CHAST", "HEPMX": "HEPMX", "MYT": "MYT", "AEST": "AEST", "WITA": "WITA", "CHADT": "CHADT", "JDT": "JDT", "COST": "COST", "AST": "AST"},
+ timezones: map[string]string{"HKT": "HKT", "MST": "MST", "ART": "ART", "HNT": "HNT", "CST": "CST", "OESZ": "OESZ", "TMT": "TMT", "JDT": "JDT", "CLST": "CLST", "AST": "AST", "SAST": "SAST", "ACWDT": "ACWDT", "MEZ": "MEZ", "HEOG": "HEOG", "HEPM": "HEPM", "AWST": "AWST", "CAT": "CAT", "ACWST": "ACWST", "GMT": "GMT", "MDT": "MDT", "UYST": "UYST", "HEPMX": "HEPMX", "CDT": "CDT", "BOT": "BOT", "∅∅∅": "∅∅∅", "ADT": "ADT", "ECT": "ECT", "MYT": "MYT", "WAT": "WAT", "ARST": "ARST", "SRT": "SRT", "WIT": "WIT", "NZDT": "NZDT", "OEZ": "OEZ", "WITA": "WITA", "HNPMX": "HNPMX", "GYT": "GYT", "CHAST": "CHAST", "PDT": "PDT", "TMST": "TMST", "WAST": "WAST", "HEEG": "HEEG", "AEDT": "AEDT", "UYT": "UYT", "JST": "JST", "BT": "BT", "WART": "WART", "HNOG": "HNOG", "EST": "EST", "ACST": "ACST", "HNCU": "HNCU", "HAST": "HAST", "IST": "IST", "VET": "VET", "AEST": "AEST", "HNPM": "HNPM", "LHDT": "LHDT", "WIB": "WIB", "CLT": "CLT", "GFT": "GFT", "EAT": "EAT", "CHADT": "CHADT", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "NZST": "NZST", "WEZ": "WEZ", "AKST": "AKST", "LHST": "LHST", "HECU": "HECU", "SGT": "SGT", "PST": "PST", "EDT": "EDT", "HENOMX": "HENOMX", "COT": "COT", "HAT": "HAT", "ChST": "ChST", "AWDT": "AWDT", "HADT": "HADT", "WARST": "WARST", "WESZ": "WESZ", "COST": "COST", "HNEG": "HNEG", "AKDT": "AKDT", "HKST": "HKST", "ACDT": "ACDT"},
}
}
diff --git a/cmd/generate_resources.go b/cmd/generate_resources.go
index 34e58ca9..8d21508a 100644
--- a/cmd/generate_resources.go
+++ b/cmd/generate_resources.go
@@ -71,11 +71,16 @@ var (
secondaryGroupLenRegex = regexp.MustCompile(",([0-9#]+),")
requiredNumRegex = regexp.MustCompile("([0-9]+)\\.")
requiredDecimalRegex = regexp.MustCompile("\\.([0-9]+)")
+
+ enInheritance = map[string]string{
+ "en_AG": "en_001", "en_AI": "en_001", "en_AS": "en", "en_AU": "en_GB", "en_BB": "en_001", "en_BE": "en_GB", "en_BM": "en_001", "en_BS": "en_001", "en_BW": "en_001", "en_BZ": "en_001", "en_CA": "en_001", "en_CC": "en_001", "en_CK": "en_001", "en_CM": "en_001", "en_CX": "en_001", "en_DG": "en_GB", "en_DM": "en_001", "en_ER": "en_001", "en_FJ": "en_001", "en_FK": "en_GB", "en_FM": "en_001", "en_GB": "en_001", "en_GD": "en_001", "en_GG": "en_GB", "en_GH": "en_001", "en_GI": "en_GB", "en_GM": "en_001", "en_GU": "en", "en_GY": "en_001", "en_HK": "en_GB", "en_IE": "en_GB", "en_IM": "en_GB", "en_IN": "en_GB", "en_IO": "en_GB", "en_JE": "en_GB", "en_JM": "en_001", "en_KE": "en_001", "en_KI": "en_001", "en_KN": "en_001", "en_KY": "en_001", "en_LC": "en_001", "en_LR": "en_001", "en_LS": "en_001", "en_MG": "en_001", "en_MH": "en", "en_MO": "en_GB", "en_MP": "en", "en_MS": "en_001", "en_MT": "en_GB", "en_MU": "en_001", "en_MW": "en_001", "en_MY": "en_001", "en_NA": "en_001", "en_NF": "en_001", "en_NG": "en_001", "en_NR": "en_001", "en_NU": "en_001", "en_NZ": "en_GB", "en_PG": "en_001", "en_PH": "en_001", "en_PK": "en_GB", "en_PN": "en_001", "en_PR": "en", "en_PW": "en_001", "en_RW": "en_001", "en_SB": "en_001", "en_SC": "en_001", "en_SD": "en_001", "en_SG": "en_GB", "en_SH": "en_GB", "en_SL": "en_001", "en_SS": "en_001", "en_SX": "en_001", "en_SZ": "en_001", "en_TC": "en_001", "en_TK": "en_001", "en_TO": "en_001", "en_TT": "en_001", "en_TV": "en_001", "en_TZ": "en_001", "en_UG": "en_001", "en_UM": "en", "en_US": "en", "en_VC": "en_001", "en_VG": "en_GB", "en_VI": "en", "en_VU": "en_001", "en_WS": "en_001", "en_ZA": "en_001", "en_ZM": "en_001", "en_ZW": "en_001",
+ }
)
type translator struct {
- Locale string
- BaseLocale string
+ Locale string
+ BaseLocale string
+ // InheritedLocale string
Plurals string
CardinalFunc string
PluralsOrdinal string
@@ -308,7 +313,7 @@ func main() {
}
}
-func ApplyOverrides(trans *translator) {
+func applyOverrides(trans *translator) {
if trans.BaseLocale == "ru" {
trans.PercentNumberFormat = "#,##0%"
@@ -325,15 +330,16 @@ func postProcess(cldr *cldr.CLDR) {
}
}
+ var inherited *translator
var base *translator
- var found bool
+ var inheritedFound, baseFound bool
for _, trans := range translators {
fmt.Println("Post Processing:", trans.Locale)
// cardinal plural rules
- trans.CardinalFunc, trans.Plurals = parseCardinalPluralRuleFunc(cldr, trans.BaseLocale)
+ trans.CardinalFunc, trans.Plurals = parseCardinalPluralRuleFunc(cldr, trans.Locale, trans.BaseLocale)
//ordinal plural rules
trans.OrdinalFunc, trans.PluralsOrdinal = parseOrdinalPluralRuleFunc(cldr, trans.BaseLocale)
@@ -343,17 +349,30 @@ func postProcess(cldr *cldr.CLDR) {
// ignore base locales
if trans.BaseLocale == trans.Locale {
- found = false
+ inheritedFound = false
+ baseFound = false
} else {
- base, found = baseTranslators[trans.BaseLocale]
+ inheritedFound = false
+
+ if trans.BaseLocale == "en" {
+ if inherit, found := enInheritance[trans.Locale]; found {
+ inherited, inheritedFound = translators[inherit]
+ }
+ }
+
+ base, baseFound = baseTranslators[trans.BaseLocale]
}
// Numbers
if len(trans.Decimal) == 0 {
- if found {
+ if inheritedFound {
+ trans.Decimal = inherited.Decimal
+ }
+
+ if len(trans.Decimal) == 0 && baseFound {
trans.Decimal = base.Decimal
}
@@ -364,7 +383,11 @@ func postProcess(cldr *cldr.CLDR) {
if len(trans.Group) == 0 {
- if found {
+ if inheritedFound {
+ trans.Group = inherited.Group
+ }
+
+ if len(trans.Group) == 0 && baseFound {
trans.Group = base.Group
}
@@ -375,7 +398,11 @@ func postProcess(cldr *cldr.CLDR) {
if len(trans.Minus) == 0 {
- if found {
+ if inheritedFound {
+ trans.Minus = inherited.Minus
+ }
+
+ if len(trans.Minus) == 0 && baseFound {
trans.Minus = base.Minus
}
@@ -386,7 +413,11 @@ func postProcess(cldr *cldr.CLDR) {
if len(trans.Percent) == 0 {
- if found {
+ if inheritedFound {
+ trans.Percent = inherited.Percent
+ }
+
+ if len(trans.Percent) == 0 && baseFound {
trans.Percent = base.Percent
}
@@ -397,7 +428,11 @@ func postProcess(cldr *cldr.CLDR) {
if len(trans.PerMille) == 0 {
- if found {
+ if inheritedFound {
+ trans.PerMille = inherited.PerMille
+ }
+
+ if len(trans.PerMille) == 0 && baseFound {
trans.PerMille = base.PerMille
}
@@ -406,11 +441,19 @@ func postProcess(cldr *cldr.CLDR) {
}
}
- if len(trans.TimeSeparator) == 0 && found {
+ if len(trans.TimeSeparator) == 0 && inheritedFound {
+ trans.TimeSeparator = inherited.TimeSeparator
+ }
+
+ if len(trans.TimeSeparator) == 0 && baseFound {
trans.TimeSeparator = base.TimeSeparator
}
- if len(trans.Infinity) == 0 && found {
+ if len(trans.Infinity) == 0 && inheritedFound {
+ trans.Infinity = inherited.Infinity
+ }
+
+ if len(trans.Infinity) == 0 && baseFound {
trans.Infinity = base.Infinity
}
@@ -418,119 +461,223 @@ func postProcess(cldr *cldr.CLDR) {
// number values
- if len(trans.DecimalNumberFormat) == 0 && found {
+ if len(trans.DecimalNumberFormat) == 0 && inheritedFound {
+ trans.DecimalNumberFormat = inherited.DecimalNumberFormat
+ }
+
+ if len(trans.DecimalNumberFormat) == 0 && baseFound {
trans.DecimalNumberFormat = base.DecimalNumberFormat
}
- if len(trans.PercentNumberFormat) == 0 && found {
+ if len(trans.PercentNumberFormat) == 0 && inheritedFound {
+ trans.PercentNumberFormat = inherited.PercentNumberFormat
+ }
+
+ if len(trans.PercentNumberFormat) == 0 && baseFound {
trans.PercentNumberFormat = base.PercentNumberFormat
}
- if len(trans.CurrencyNumberFormat) == 0 && found {
+ if len(trans.CurrencyNumberFormat) == 0 && inheritedFound {
+ trans.CurrencyNumberFormat = inherited.CurrencyNumberFormat
+ }
+
+ if len(trans.CurrencyNumberFormat) == 0 && baseFound {
trans.CurrencyNumberFormat = base.CurrencyNumberFormat
}
- if len(trans.NegativeCurrencyNumberFormat) == 0 && found {
+ if len(trans.NegativeCurrencyNumberFormat) == 0 && inheritedFound {
+ trans.NegativeCurrencyNumberFormat = inherited.NegativeCurrencyNumberFormat
+ }
+
+ if len(trans.NegativeCurrencyNumberFormat) == 0 && baseFound {
trans.NegativeCurrencyNumberFormat = base.NegativeCurrencyNumberFormat
}
// date values
- if len(trans.FmtDateFull) == 0 && found {
+ if len(trans.FmtDateFull) == 0 && inheritedFound {
+ trans.FmtDateFull = inherited.FmtDateFull
+ }
+
+ if len(trans.FmtDateFull) == 0 && baseFound {
trans.FmtDateFull = base.FmtDateFull
}
- if len(trans.FmtDateLong) == 0 && found {
+ if len(trans.FmtDateLong) == 0 && inheritedFound {
+ trans.FmtDateLong = inherited.FmtDateLong
+ }
+
+ if len(trans.FmtDateLong) == 0 && baseFound {
trans.FmtDateLong = base.FmtDateLong
}
- if len(trans.FmtDateMedium) == 0 && found {
+ if len(trans.FmtDateMedium) == 0 && inheritedFound {
+ trans.FmtDateMedium = inherited.FmtDateMedium
+ }
+
+ if len(trans.FmtDateMedium) == 0 && baseFound {
trans.FmtDateMedium = base.FmtDateMedium
}
- if len(trans.FmtDateShort) == 0 && found {
+ if len(trans.FmtDateShort) == 0 && inheritedFound {
+ trans.FmtDateShort = inherited.FmtDateShort
+ }
+
+ if len(trans.FmtDateShort) == 0 && baseFound {
trans.FmtDateShort = base.FmtDateShort
}
// time values
- if len(trans.FmtTimeFull) == 0 && found {
+ if len(trans.FmtTimeFull) == 0 && inheritedFound {
+ trans.FmtTimeFull = inherited.FmtTimeFull
+ }
+
+ if len(trans.FmtTimeFull) == 0 && baseFound {
trans.FmtTimeFull = base.FmtTimeFull
}
- if len(trans.FmtTimeLong) == 0 && found {
+ if len(trans.FmtTimeLong) == 0 && inheritedFound {
+ trans.FmtTimeLong = inherited.FmtTimeLong
+ }
+
+ if len(trans.FmtTimeLong) == 0 && baseFound {
trans.FmtTimeLong = base.FmtTimeLong
}
- if len(trans.FmtTimeMedium) == 0 && found {
+ if len(trans.FmtTimeMedium) == 0 && inheritedFound {
+ trans.FmtTimeMedium = inherited.FmtTimeMedium
+ }
+
+ if len(trans.FmtTimeMedium) == 0 && baseFound {
trans.FmtTimeMedium = base.FmtTimeMedium
}
- if len(trans.FmtTimeShort) == 0 && found {
+ if len(trans.FmtTimeShort) == 0 && inheritedFound {
+ trans.FmtTimeShort = inherited.FmtTimeShort
+ }
+
+ if len(trans.FmtTimeShort) == 0 && baseFound {
trans.FmtTimeShort = base.FmtTimeShort
}
// month values
- if len(trans.FmtMonthsAbbreviated) == 0 && found {
+ if len(trans.FmtMonthsAbbreviated) == 0 && inheritedFound {
+ trans.FmtMonthsAbbreviated = inherited.FmtMonthsAbbreviated
+ }
+
+ if len(trans.FmtMonthsAbbreviated) == 0 && baseFound {
trans.FmtMonthsAbbreviated = base.FmtMonthsAbbreviated
}
- if len(trans.FmtMonthsNarrow) == 0 && found {
+ if len(trans.FmtMonthsNarrow) == 0 && inheritedFound {
+ trans.FmtMonthsNarrow = inherited.FmtMonthsNarrow
+ }
+
+ if len(trans.FmtMonthsNarrow) == 0 && baseFound {
trans.FmtMonthsNarrow = base.FmtMonthsNarrow
}
- if len(trans.FmtMonthsWide) == 0 && found {
+ if len(trans.FmtMonthsWide) == 0 && inheritedFound {
+ trans.FmtMonthsWide = inherited.FmtMonthsWide
+ }
+
+ if len(trans.FmtMonthsWide) == 0 && baseFound {
trans.FmtMonthsWide = base.FmtMonthsWide
}
// day values
- if len(trans.FmtDaysAbbreviated) == 0 && found {
+ if len(trans.FmtDaysAbbreviated) == 0 && inheritedFound {
+ trans.FmtDaysAbbreviated = inherited.FmtDaysAbbreviated
+ }
+
+ if len(trans.FmtDaysAbbreviated) == 0 && baseFound {
trans.FmtDaysAbbreviated = base.FmtDaysAbbreviated
}
- if len(trans.FmtDaysNarrow) == 0 && found {
+ if len(trans.FmtDaysNarrow) == 0 && inheritedFound {
+ trans.FmtDaysNarrow = inherited.FmtDaysNarrow
+ }
+
+ if len(trans.FmtDaysNarrow) == 0 && baseFound {
trans.FmtDaysNarrow = base.FmtDaysNarrow
}
- if len(trans.FmtDaysShort) == 0 && found {
+ if len(trans.FmtDaysShort) == 0 && inheritedFound {
+ trans.FmtDaysShort = inherited.FmtDaysShort
+ }
+
+ if len(trans.FmtDaysShort) == 0 && baseFound {
trans.FmtDaysShort = base.FmtDaysShort
}
- if len(trans.FmtDaysWide) == 0 && found {
+ if len(trans.FmtDaysWide) == 0 && inheritedFound {
+ trans.FmtDaysWide = inherited.FmtDaysWide
+ }
+
+ if len(trans.FmtDaysWide) == 0 && baseFound {
trans.FmtDaysWide = base.FmtDaysWide
}
// period values
- if len(trans.FmtPeriodsAbbreviated) == 0 && found {
+ if len(trans.FmtPeriodsAbbreviated) == 0 && inheritedFound {
+ trans.FmtPeriodsAbbreviated = inherited.FmtPeriodsAbbreviated
+ }
+
+ if len(trans.FmtPeriodsAbbreviated) == 0 && baseFound {
trans.FmtPeriodsAbbreviated = base.FmtPeriodsAbbreviated
}
- if len(trans.FmtPeriodsNarrow) == 0 && found {
+ if len(trans.FmtPeriodsNarrow) == 0 && inheritedFound {
+ trans.FmtPeriodsNarrow = inherited.FmtPeriodsNarrow
+ }
+
+ if len(trans.FmtPeriodsNarrow) == 0 && baseFound {
trans.FmtPeriodsNarrow = base.FmtPeriodsNarrow
}
- if len(trans.FmtPeriodsShort) == 0 && found {
+ if len(trans.FmtPeriodsShort) == 0 && inheritedFound {
+ trans.FmtPeriodsShort = inherited.FmtPeriodsShort
+ }
+
+ if len(trans.FmtPeriodsShort) == 0 && baseFound {
trans.FmtPeriodsShort = base.FmtPeriodsShort
}
- if len(trans.FmtPeriodsWide) == 0 && found {
+ if len(trans.FmtPeriodsWide) == 0 && inheritedFound {
+ trans.FmtPeriodsWide = inherited.FmtPeriodsWide
+ }
+
+ if len(trans.FmtPeriodsWide) == 0 && baseFound {
trans.FmtPeriodsWide = base.FmtPeriodsWide
}
// era values
- if len(trans.FmtErasAbbreviated) == 0 && found {
+ if len(trans.FmtErasAbbreviated) == 0 && inheritedFound {
+ trans.FmtErasAbbreviated = inherited.FmtErasAbbreviated
+ }
+
+ if len(trans.FmtErasAbbreviated) == 0 && baseFound {
trans.FmtErasAbbreviated = base.FmtErasAbbreviated
}
- if len(trans.FmtErasNarrow) == 0 && found {
+ if len(trans.FmtErasNarrow) == 0 && inheritedFound {
+ trans.FmtErasNarrow = inherited.FmtErasNarrow
+ }
+
+ if len(trans.FmtErasNarrow) == 0 && baseFound {
trans.FmtErasNarrow = base.FmtErasNarrow
}
- if len(trans.FmtErasWide) == 0 && found {
+ if len(trans.FmtErasWide) == 0 && inheritedFound {
+ trans.FmtErasWide = inherited.FmtErasWide
+ }
+
+ if len(trans.FmtErasWide) == 0 && baseFound {
trans.FmtErasWide = base.FmtErasWide
}
@@ -577,12 +724,31 @@ func postProcess(cldr *cldr.CLDR) {
// timezones
- if (trans.timezones == nil || len(trans.timezones) == 0) && found {
+ if (trans.timezones == nil || len(trans.timezones) == 0) && inheritedFound {
+ trans.timezones = inherited.timezones
+ }
+
+ if (trans.timezones == nil || len(trans.timezones) == 0) && baseFound {
trans.timezones = base.timezones
}
+ // make sure all inherited timezones are part of sub locale timezones
+ if inheritedFound {
+
+ var ok bool
+
+ for k, v := range inherited.timezones {
+
+ if _, ok = trans.timezones[k]; ok {
+ continue
+ }
+
+ trans.timezones[k] = v
+ }
+ }
+
// make sure all base timezones are part of sub locale timezones
- if found {
+ if baseFound {
var ok bool
@@ -596,7 +762,7 @@ func postProcess(cldr *cldr.CLDR) {
}
}
- ApplyOverrides(trans)
+ applyOverrides(trans)
parseDecimalNumberFormat(trans)
parsePercentNumberFormat(trans)
@@ -646,10 +812,18 @@ func preProcess(cldrVar *cldr.CLDR) {
split := strings.SplitN(l, "_", 2)
baseLocale := split[0]
+ // inheritedLocale := baseLocale
+
+ // // one of the inherited english locales
+ // // http://cldr.unicode.org/development/development-process/design-proposals/english-inheritance
+ // if l == "en_001" || l == "en_GB" {
+ // inheritedLocale = l
+ // }
trans := &translator{
Locale: l,
BaseLocale: baseLocale,
+ // InheritedLocale: inheritedLocale,
}
// if is a base locale
@@ -657,6 +831,8 @@ func preProcess(cldrVar *cldr.CLDR) {
baseTranslators[baseLocale] = trans
}
+ // baseTranslators[l] = trans
+ // baseTranslators[baseLocale] = trans // allowing for unofficial fallback if none exists
translators[l] = trans
// get number, currency and datetime symbols
@@ -2268,7 +2444,9 @@ func parseOrdinalPluralRuleFunc(current *cldr.CLDR, baseLocale string) (results
// 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, plurals string) {
+//
+// updated to also accept actual locale as 'pt_PT' exists in cardinal rules different from 'pt'
+func parseCardinalPluralRuleFunc(current *cldr.CLDR, locale, baseLocale string) (results string, plurals string) {
var prCardinal *struct {
cldr.Common
@@ -2280,7 +2458,10 @@ func parseCardinalPluralRuleFunc(current *cldr.CLDR, baseLocale string) (results
}
var pluralArr []locales.PluralRule
+ var inBaseLocale bool
+ l := locale
+FIND:
// idx 2 is cardinal rules
for _, pr := range current.Supplemental().Plurals[2].PluralRules {
@@ -2288,7 +2469,7 @@ func parseCardinalPluralRuleFunc(current *cldr.CLDR, baseLocale string) (results
for _, loc := range locs {
- if loc == baseLocale {
+ if loc == l {
prCardinal = pr
}
}
@@ -2296,6 +2477,13 @@ func parseCardinalPluralRuleFunc(current *cldr.CLDR, baseLocale string) (results
// no plural rules for locale
if prCardinal == nil {
+
+ if !inBaseLocale {
+ inBaseLocale = true
+ l = baseLocale
+ goto FIND
+ }
+
plurals = "nil"
results = "return locales.PluralRuleUnknown"
return
diff --git a/cs/cs.go b/cs/cs.go
index 2c3c95fa..9aac3859 100644
--- a/cs/cs.go
+++ b/cs/cs.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"př. n. l.", "n. l."},
erasNarrow: []string{"př.n.l.", "n.l."},
erasWide: []string{"př. n. l.", "n. l."},
- timezones: map[string]string{"WART": "Západoargentinský standardní čas", "AKDT": "Aljašský letní čas", "HNOG": "Západogrónský standardní čas", "MEZ": "Středoevropský standardní čas", "CLT": "Chilský standardní čas", "GFT": "Francouzskoguyanský čas", "WIB": "Západoindonéský čas", "HEOG": "Západogrónský letní čas", "COST": "Kolumbijský letní čas", "HNCU": "Kubánský standardní čas", "GMT": "Greenwichský střední čas", "CDT": "Severoamerický centrální letní čas", "HNPM": "Pierre-miquelonský standardní čas", "CLST": "Chilský letní čas", "BOT": "Bolivijský čas", "WARST": "Západoargentinský letní čas", "HNT": "Newfoundlandský standardní čas", "HKST": "Hongkongský letní čas", "CAT": "Středoafrický čas", "EAT": "Východoafrický čas", "MDT": "Macajský letní čas", "HAST": "Havajsko-aleutský standardní čas", "WESZ": "Západoevropský letní čas", "AEST": "Východoaustralský standardní čas", "NZDT": "Novozélandský letní čas", "HNEG": "Východogrónský standardní čas", "ADT": "Atlantický letní čas", "GYT": "Guyanský čas", "WIT": "Východoindonéský čas", "HADT": "Havajsko-aleutský letní čas", "ACWDT": "Středozápadní australský letní čas", "WAST": "Západoafrický letní čas", "HECU": "Kubánský letní čas", "HEPMX": "Mexický pacifický letní čas", "MST": "Macajský standardní čas", "CST": "Severoamerický centrální standardní čas", "UYT": "Uruguayský standardní čas", "AWST": "Západoaustralský standardní čas", "IST": "Indický čas", "JST": "Japonský standardní čas", "HENOMX": "Severozápadní mexický letní čas", "HNPMX": "Mexický pacifický standardní čas", "EDT": "Severoamerický východní letní čas", "HAT": "Newfoundlandský letní čas", "CHAST": "Chathamský standardní čas", "MESZ": "Středoevropský letní čas", "JDT": "Japonský letní čas", "SRT": "Surinamský čas", "HEPM": "Pierre-miquelonský letní čas", "ECT": "Ekvádorský čas", "MYT": "Malajský čas", "LHDT": "Letní čas ostrova lorda Howa", "SGT": "Singapurský čas", "OEZ": "Východoevropský standardní čas", "HNNOMX": "Severozápadní mexický standardní čas", "VET": "Venezuelský čas", "HKT": "Hongkongský standardní čas", "HEEG": "Východogrónský letní čas", "TMT": "Turkmenský standardní čas", "ACDT": "Středoaustralský letní čas", "OESZ": "Východoevropský letní čas", "AKST": "Aljašský standardní čas", "AST": "Atlantický standardní čas", "ACWST": "Středozápadní australský standardní čas", "LHST": "Standardní čas ostrova lorda Howa", "ChST": "Chamorrský čas", "ARST": "Argentinský letní čas", "AEDT": "Východoaustralský letní čas", "AWDT": "Západoaustralský letní čas", "SAST": "Jihoafrický čas", "ACST": "Středoaustralský standardní čas", "COT": "Kolumbijský standardní čas", "BT": "Bhútánský čas", "ART": "Argentinský standardní čas", "PDT": "Severoamerický pacifický letní čas", "WEZ": "Západoevropský standardní čas", "WITA": "Středoindonéský čas", "∅∅∅": "Amazonský letní čas", "TMST": "Turkmenský letní čas", "WAT": "Západoafrický standardní čas", "EST": "Severoamerický východní standardní čas", "UYST": "Uruguayský letní čas", "PST": "Severoamerický pacifický standardní čas", "NZST": "Novozélandský standardní čas", "CHADT": "Chathamský letní čas"},
+ timezones: map[string]string{"MEZ": "Středoevropský standardní čas", "JDT": "Japonský letní čas", "CLT": "Chilský standardní čas", "UYST": "Uruguayský letní čas", "CHAST": "Chathamský standardní čas", "HADT": "Havajsko-aleutský letní čas", "BT": "Bhútánský čas", "HEEG": "Východogrónský letní čas", "HNPMX": "Mexický pacifický standardní čas", "ARST": "Argentinský letní čas", "EDT": "Severoamerický východní letní čas", "MYT": "Malajský čas", "SAST": "Jihoafrický čas", "GYT": "Guyanský čas", "CHADT": "Chathamský letní čas", "WART": "Západoargentinský standardní čas", "GMT": "Greenwichský střední čas", "TMT": "Turkmenský standardní čas", "HNNOMX": "Severozápadní mexický standardní čas", "WITA": "Středoindonéský čas", "AEDT": "Východoaustralský letní čas", "PDT": "Severoamerický pacifický letní čas", "OESZ": "Východoevropský letní čas", "WAT": "Západoafrický standardní čas", "AEST": "Východoaustralský standardní čas", "LHST": "Standardní čas ostrova lorda Howa", "HEPMX": "Mexický pacifický letní čas", "IST": "Indický čas", "HEOG": "Západogrónský letní čas", "TMST": "Turkmenský letní čas", "EST": "Severoamerický východní standardní čas", "HKST": "Hongkongský letní čas", "∅∅∅": "Brasilijský letní čas", "HAST": "Havajsko-aleutský standardní čas", "NZST": "Novozélandský standardní čas", "CLST": "Chilský letní čas", "AST": "Atlantický standardní čas", "WESZ": "Západoevropský letní čas", "ACST": "Středoaustralský standardní čas", "WIB": "Západoindonéský čas", "AWST": "Západoaustralský standardní čas", "MDT": "Macajský letní čas", "PST": "Severoamerický pacifický standardní čas", "ACWST": "Středozápadní australský standardní čas", "WARST": "Západoargentinský letní čas", "HNOG": "Západogrónský standardní čas", "WEZ": "Západoevropský standardní čas", "HNT": "Newfoundlandský standardní čas", "AKDT": "Aljašský letní čas", "HNPM": "Pierre-miquelonský standardní čas", "HNCU": "Kubánský standardní čas", "VET": "Venezuelský čas", "JST": "Japonský standardní čas", "ADT": "Atlantický letní čas", "OEZ": "Východoevropský standardní čas", "WAST": "Západoafrický letní čas", "COT": "Kolumbijský standardní čas", "HNEG": "Východogrónský standardní čas", "SGT": "Singapurský čas", "ACWDT": "Středozápadní australský letní čas", "HEPM": "Pierre-miquelonský letní čas", "SRT": "Surinamský čas", "MST": "Macajský standardní čas", "COST": "Kolumbijský letní čas", "GFT": "Francouzskoguyanský čas", "HECU": "Kubánský letní čas", "WIT": "Východoindonéský čas", "HAT": "Newfoundlandský letní čas", "LHDT": "Letní čas ostrova lorda Howa", "CDT": "Severoamerický centrální letní čas", "MESZ": "Středoevropský letní čas", "ACDT": "Středoaustralský letní čas", "HENOMX": "Severozápadní mexický letní čas", "AKST": "Aljašský standardní čas", "ChST": "Chamorrský čas", "UYT": "Uruguayský standardní čas", "CST": "Severoamerický centrální standardní čas", "CAT": "Středoafrický čas", "NZDT": "Novozélandský letní čas", "ART": "Argentinský standardní čas", "HKT": "Hongkongský standardní čas", "EAT": "Východoafrický čas", "BOT": "Bolivijský čas", "AWDT": "Západoaustralský letní čas", "ECT": "Ekvádorský čas"},
}
}
diff --git a/cs_CZ/cs_CZ.go b/cs_CZ/cs_CZ.go
index 7c8d8b0c..f4ba7431 100644
--- a/cs_CZ/cs_CZ.go
+++ b/cs_CZ/cs_CZ.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"př. n. l.", "n. l."},
erasNarrow: []string{"př.n.l.", "n.l."},
erasWide: []string{"př. n. l.", "n. l."},
- timezones: map[string]string{"AKST": "Aljašský standardní čas", "PDT": "Severoamerický pacifický letní čas", "ACST": "Středoaustralský standardní čas", "ACWST": "Středozápadní australský standardní čas", "HNOG": "Západogrónský standardní čas", "NZDT": "Novozélandský letní čas", "TMST": "Turkmenský letní čas", "ChST": "Chamorrský čas", "MDT": "Macajský letní čas", "AKDT": "Aljašský letní čas", "WIT": "Východoindonéský čas", "WARST": "Západoargentinský letní čas", "CHAST": "Chathamský standardní čas", "JST": "Japonský standardní čas", "ECT": "Ekvádorský čas", "HNCU": "Kubánský standardní čas", "ADT": "Atlantický letní čas", "MYT": "Malajský čas", "HAST": "Havajsko-aleutský standardní čas", "HECU": "Kubánský letní čas", "WIB": "Západoindonéský čas", "AEDT": "Východoaustralský letní čas", "WAST": "Západoafrický letní čas", "IST": "Indický čas", "HNEG": "Východogrónský standardní čas", "BOT": "Bolivijský čas", "COST": "Kolumbijský letní čas", "HEPMX": "Mexický pacifický letní čas", "CDT": "Severoamerický centrální letní čas", "LHST": "Standardní čas ostrova lorda Howa", "OESZ": "Východoevropský letní čas", "VET": "Venezuelský čas", "ACWDT": "Středozápadní australský letní čas", "HNT": "Newfoundlandský standardní čas", "HEPM": "Pierre-miquelonský letní čas", "TMT": "Turkmenský standardní čas", "CAT": "Středoafrický čas", "UYST": "Uruguayský letní čas", "BT": "Bhútánský čas", "HKT": "Hongkongský standardní čas", "AWST": "Západoaustralský standardní čas", "CLST": "Chilský letní čas", "OEZ": "Východoevropský standardní čas", "WART": "Západoargentinský standardní čas", "GMT": "Greenwichský střední čas", "GYT": "Guyanský čas", "UYT": "Uruguayský standardní čas", "ARST": "Argentinský letní čas", "WEZ": "Západoevropský standardní čas", "HKST": "Hongkongský letní čas", "HNPMX": "Mexický pacifický standardní čas", "MST": "Macajský standardní čas", "HEOG": "Západogrónský letní čas", "ART": "Argentinský standardní čas", "SGT": "Singapurský čas", "CST": "Severoamerický centrální standardní čas", "HADT": "Havajsko-aleutský letní čas", "HAT": "Newfoundlandský letní čas", "ACDT": "Středoaustralský letní čas", "WESZ": "Západoevropský letní čas", "LHDT": "Letní čas ostrova lorda Howa", "CLT": "Chilský standardní čas", "MESZ": "Středoevropský letní čas", "EDT": "Severoamerický východní letní čas", "PST": "Severoamerický pacifický standardní čas", "WITA": "Středoindonéský čas", "GFT": "Francouzskoguyanský čas", "HNNOMX": "Severozápadní mexický standardní čas", "HENOMX": "Severozápadní mexický letní čas", "EST": "Severoamerický východní standardní čas", "AWDT": "Západoaustralský letní čas", "HEEG": "Východogrónský letní čas", "MEZ": "Středoevropský standardní čas", "SAST": "Jihoafrický čas", "∅∅∅": "Amazonský letní čas", "NZST": "Novozélandský standardní čas", "CHADT": "Chathamský letní čas", "COT": "Kolumbijský standardní čas", "HNPM": "Pierre-miquelonský standardní čas", "JDT": "Japonský letní čas", "WAT": "Západoafrický standardní čas", "EAT": "Východoafrický čas", "AST": "Atlantický standardní čas", "SRT": "Surinamský čas", "AEST": "Východoaustralský standardní čas"},
+ timezones: map[string]string{"HEPMX": "Mexický pacifický letní čas", "WIT": "Východoindonéský čas", "ACWDT": "Středozápadní australský letní čas", "NZDT": "Novozélandský letní čas", "HENOMX": "Severozápadní mexický letní čas", "AEST": "Východoaustralský standardní čas", "MST": "Severoamerický horský standardní čas", "BOT": "Bolivijský čas", "HNOG": "Západogrónský standardní čas", "HNNOMX": "Severozápadní mexický standardní čas", "∅∅∅": "Acrejský letní čas", "HNPMX": "Mexický pacifický standardní čas", "CHADT": "Chathamský letní čas", "TMT": "Turkmenský standardní čas", "EDT": "Severoamerický východní letní čas", "HKT": "Hongkongský standardní čas", "SRT": "Surinamský čas", "CHAST": "Chathamský standardní čas", "OESZ": "Východoevropský letní čas", "WARST": "Západoargentinský letní čas", "CLST": "Chilský letní čas", "HKST": "Hongkongský letní čas", "IST": "Indický čas", "HEEG": "Východogrónský letní čas", "WITA": "Středoindonéský čas", "HEPM": "Pierre-miquelonský letní čas", "LHDT": "Letní čas ostrova lorda Howa", "CST": "Severoamerický centrální standardní čas", "PST": "Severoamerický pacifický standardní čas", "CAT": "Středoafrický čas", "HEOG": "Západogrónský letní čas", "ADT": "Atlantický letní čas", "HNEG": "Východogrónský standardní čas", "LHST": "Standardní čas ostrova lorda Howa", "HECU": "Kubánský letní čas", "AWST": "Západoaustralský standardní čas", "HNPM": "Pierre-miquelonský standardní čas", "SGT": "Singapurský čas", "HADT": "Havajsko-aleutský letní čas", "WAST": "Západoafrický letní čas", "COT": "Kolumbijský standardní čas", "AWDT": "Západoaustralský letní čas", "ACST": "Středoaustralský standardní čas", "AKST": "Aljašský standardní čas", "AEDT": "Východoaustralský letní čas", "HAST": "Havajsko-aleutský standardní čas", "WEZ": "Západoevropský standardní čas", "TMST": "Turkmenský letní čas", "ART": "Argentinský standardní čas", "ACWST": "Středozápadní australský standardní čas", "MESZ": "Středoevropský letní čas", "MEZ": "Středoevropský standardní čas", "WART": "Západoargentinský standardní čas", "EST": "Severoamerický východní standardní čas", "GFT": "Francouzskoguyanský čas", "EAT": "Východoafrický čas", "HNCU": "Kubánský standardní čas", "ECT": "Ekvádorský čas", "NZST": "Novozélandský standardní čas", "COST": "Kolumbijský letní čas", "BT": "Bhútánský čas", "SAST": "Jihoafrický čas", "JDT": "Japonský letní čas", "OEZ": "Východoevropský standardní čas", "CLT": "Chilský standardní čas", "HAT": "Newfoundlandský letní čas", "UYT": "Uruguayský standardní čas", "UYST": "Uruguayský letní čas", "WIB": "Západoindonéský čas", "JST": "Japonský standardní čas", "WAT": "Západoafrický standardní čas", "MYT": "Malajský čas", "HNT": "Newfoundlandský standardní čas", "ChST": "Chamorrský čas", "CDT": "Severoamerický centrální letní čas", "PDT": "Severoamerický pacifický letní čas", "VET": "Venezuelský čas", "AST": "Atlantický standardní čas", "GMT": "Greenwichský střední čas", "ACDT": "Středoaustralský letní čas", "AKDT": "Aljašský letní čas", "MDT": "Severoamerický horský letní čas", "GYT": "Guyanský čas", "WESZ": "Západoevropský letní čas", "ARST": "Argentinský letní čas"},
}
}
diff --git a/cu/cu.go b/cu/cu.go
index 76e41037..c9bca421 100644
--- a/cu/cu.go
+++ b/cu/cu.go
@@ -72,7 +72,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"пре́дъ р.\u00a0х.", "по р.\u00a0х."},
- timezones: map[string]string{"SAST": "SAST", "UYST": "UYST", "ACWST": "ACWST", "HEOG": "HEOG", "AWST": "AWST", "WITA": "WITA", "ACWDT": "ACWDT", "HAT": "HAT", "GMT": "сре́днее вре́мѧ по грі́нꙋичꙋ", "MST": "MST", "HNT": "HNT", "ART": "ART", "AEST": "AEST", "NZDT": "NZDT", "TMST": "TMST", "CST": "среднеамерїка́нское зи́мнее вре́мѧ", "ADT": "а҆тланті́ческое лѣ́тнее вре́мѧ", "WEZ": "западноєѵрѡпе́йское зи́мнее вре́мѧ", "CHAST": "CHAST", "IST": "IST", "AKDT": "AKDT", "WIB": "WIB", "JDT": "JDT", "TMT": "TMT", "WIT": "WIT", "PST": "тихоѻкеа́нское зи́мнее вре́мѧ", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "ACST": "ACST", "ACDT": "ACDT", "WARST": "WARST", "HENOMX": "HENOMX", "HAST": "HAST", "MESZ": "среднеєѵрѡпе́йское лѣ́тнее вре́мѧ", "CLT": "CLT", "HEEG": "HEEG", "MDT": "MDT", "AST": "а҆тланті́ческое зи́мнее вре́мѧ", "GFT": "GFT", "ECT": "ECT", "HEPMX": "HEPMX", "WESZ": "западноєѵрѡпе́йское лѣ́тнее вре́мѧ", "AEDT": "AEDT", "HKST": "HKST", "HEPM": "HEPM", "LHST": "LHST", "OEZ": "восточноєѵрѡпе́йское зи́мнее вре́мѧ", "WART": "WART", "BT": "BT", "HNPM": "HNPM", "HNEG": "HNEG", "OESZ": "восточноєѵрѡпе́йское лѣ́тнее вре́мѧ", "HNNOMX": "HNNOMX", "SGT": "SGT", "EST": "восточноамерїка́нское зи́мнее вре́мѧ", "HNPMX": "HNPMX", "PDT": "тихоѻкеа́нское лѣ́тнее вре́мѧ", "HKT": "HKT", "LHDT": "LHDT", "CHADT": "CHADT", "COT": "COT", "EDT": "восточноамерїка́нское лѣ́тнее вре́мѧ", "EAT": "EAT", "HECU": "HECU", "AKST": "AKST", "MYT": "MYT", "UYT": "UYT", "CLST": "CLST", "JST": "JST", "ChST": "ChST", "COST": "COST", "GYT": "GYT", "ARST": "ARST", "NZST": "NZST", "WAT": "WAT", "CDT": "среднеамерїка́нское лѣ́тнее вре́мѧ", "MEZ": "среднеєѵрѡпе́йское зи́мнее вре́мѧ", "BOT": "BOT", "CAT": "CAT", "WAST": "WAST", "HNCU": "HNCU", "HADT": "HADT", "VET": "VET", "SRT": "SRT", "HNOG": "HNOG"},
+ timezones: map[string]string{"HNPM": "HNPM", "PDT": "тихоѻкеа́нское лѣ́тнее вре́мѧ", "NZDT": "NZDT", "MST": "MST", "ART": "ART", "WAT": "WAT", "HEPMX": "HEPMX", "HECU": "HECU", "AWDT": "AWDT", "HAST": "HAST", "IST": "IST", "WARST": "WARST", "CLT": "CLT", "HKST": "HKST", "HEEG": "HEEG", "TMT": "TMT", "EST": "восточноамерїка́нское зи́мнее вре́мѧ", "PST": "тихоѻкеа́нское зи́мнее вре́мѧ", "NZST": "NZST", "TMST": "TMST", "HNEG": "HNEG", "AKDT": "AKDT", "AEDT": "AEDT", "GYT": "GYT", "ADT": "а҆тланті́ческое лѣ́тнее вре́мѧ", "AWST": "AWST", "OEZ": "восточноєѵрѡпе́йское зи́мнее вре́мѧ", "ChST": "ChST", "HEPM": "HEPM", "CLST": "CLST", "HENOMX": "HENOMX", "HNT": "HNT", "AKST": "AKST", "HNCU": "HNCU", "MESZ": "среднеєѵрѡпе́йское лѣ́тнее вре́мѧ", "OESZ": "восточноєѵрѡпе́йское лѣ́тнее вре́мѧ", "UYT": "UYT", "LHDT": "LHDT", "CHAST": "CHAST", "BOT": "BOT", "ACDT": "ACDT", "HNPMX": "HNPMX", "CST": "среднеамерїка́нское зи́мнее вре́мѧ", "CHADT": "CHADT", "SGT": "SGT", "JDT": "JDT", "MDT": "MDT", "ACST": "ACST", "WITA": "WITA", "UYST": "UYST", "WIT": "WIT", "MYT": "MYT", "ARST": "ARST", "HNNOMX": "HNNOMX", "BT": "BT", "EDT": "восточноамерїка́нское лѣ́тнее вре́мѧ", "SRT": "SRT", "HADT": "HADT", "ACWDT": "ACWDT", "JST": "JST", "HNOG": "HNOG", "AST": "а҆тланті́ческое зи́мнее вре́мѧ", "WAST": "WAST", "WIB": "WIB", "MEZ": "среднеєѵрѡпе́йское зи́мнее вре́мѧ", "GFT": "GFT", "ACWST": "ACWST", "WART": "WART", "HEOG": "HEOG", "WESZ": "западноєѵрѡпе́йское лѣ́тнее вре́мѧ", "GMT": "сре́днее вре́мѧ по грі́нꙋичꙋ", "WEZ": "западноєѵрѡпе́йское зи́мнее вре́мѧ", "COT": "COT", "AEST": "AEST", "VET": "VET", "∅∅∅": "∅∅∅", "SAST": "SAST", "LHST": "LHST", "EAT": "EAT", "CDT": "среднеамерїка́нское лѣ́тнее вре́мѧ", "ECT": "ECT", "CAT": "CAT", "HKT": "HKT", "COST": "COST", "HAT": "HAT"},
}
}
diff --git a/cu_RU/cu_RU.go b/cu_RU/cu_RU.go
index e74ec10c..c466addb 100644
--- a/cu_RU/cu_RU.go
+++ b/cu_RU/cu_RU.go
@@ -72,7 +72,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"пре́дъ р.\u00a0х.", "по р.\u00a0х."},
- timezones: map[string]string{"LHST": "LHST", "CST": "среднеамерїка́нское зи́мнее вре́мѧ", "ADT": "а҆тланті́ческое лѣ́тнее вре́мѧ", "AWDT": "AWDT", "WAST": "WAST", "SGT": "SGT", "ART": "ART", "PDT": "тихоѻкеа́нское лѣ́тнее вре́мѧ", "HKST": "HKST", "AWST": "AWST", "HEPM": "HEPM", "EST": "восточноамерїка́нское зи́мнее вре́мѧ", "LHDT": "LHDT", "HNEG": "HNEG", "OEZ": "восточноєѵрѡпе́йское зи́мнее вре́мѧ", "COST": "COST", "WARST": "WARST", "SAST": "SAST", "JDT": "JDT", "ChST": "ChST", "CLT": "CLT", "TMT": "TMT", "WAT": "WAT", "HECU": "HECU", "UYST": "UYST", "PST": "тихоѻкеа́нское зи́мнее вре́мѧ", "CHAST": "CHAST", "AEST": "AEST", "HNPM": "HNPM", "HAST": "HAST", "SRT": "SRT", "ACWDT": "ACWDT", "GFT": "GFT", "TMST": "TMST", "ACDT": "ACDT", "EAT": "EAT", "ECT": "ECT", "GYT": "GYT", "WIT": "WIT", "∅∅∅": "∅∅∅", "WART": "WART", "NZST": "NZST", "NZDT": "NZDT", "OESZ": "восточноєѵрѡпе́йское лѣ́тнее вре́мѧ", "CAT": "CAT", "HNCU": "HNCU", "HEPMX": "HEPMX", "WESZ": "западноєѵрѡпе́йское лѣ́тнее вре́мѧ", "ARST": "ARST", "CLST": "CLST", "HEEG": "HEEG", "HNPMX": "HNPMX", "HADT": "HADT", "HEOG": "HEOG", "WITA": "WITA", "IST": "IST", "ACST": "ACST", "COT": "COT", "HNNOMX": "HNNOMX", "VET": "VET", "BT": "BT", "WEZ": "западноєѵрѡпе́йское зи́мнее вре́мѧ", "HENOMX": "HENOMX", "UYT": "UYT", "HAT": "HAT", "HNOG": "HNOG", "MDT": "MDT", "AKST": "AKST", "CHADT": "CHADT", "MYT": "MYT", "WIB": "WIB", "MESZ": "среднеєѵрѡпе́йское лѣ́тнее вре́мѧ", "GMT": "сре́днее вре́мѧ по грі́нꙋичꙋ", "MST": "MST", "EDT": "восточноамерїка́нское лѣ́тнее вре́мѧ", "AKDT": "AKDT", "MEZ": "среднеєѵрѡпе́йское зи́мнее вре́мѧ", "JST": "JST", "CDT": "среднеамерїка́нское лѣ́тнее вре́мѧ", "AST": "а҆тланті́ческое зи́мнее вре́мѧ", "AEDT": "AEDT", "BOT": "BOT", "ACWST": "ACWST", "HNT": "HNT", "HKT": "HKT"},
+ timezones: map[string]string{"EDT": "восточноамерїка́нское лѣ́тнее вре́мѧ", "HEEG": "HEEG", "ChST": "ChST", "UYT": "UYT", "WIB": "WIB", "HNT": "HNT", "AKDT": "AKDT", "SRT": "SRT", "LHDT": "LHDT", "ACST": "ACST", "COT": "COT", "AEDT": "AEDT", "HNPM": "HNPM", "HAST": "HAST", "MYT": "MYT", "WARST": "WARST", "OESZ": "восточноєѵрѡпе́йское лѣ́тнее вре́мѧ", "HEPMX": "HEPMX", "HNCU": "HNCU", "CST": "среднеамерїка́нское зи́мнее вре́мѧ", "AST": "а҆тланті́ческое зи́мнее вре́мѧ", "ACDT": "ACDT", "JDT": "JDT", "CLST": "CLST", "EST": "восточноамерїка́нское зи́мнее вре́мѧ", "HNEG": "HNEG", "AKST": "AKST", "CHAST": "CHAST", "HEOG": "HEOG", "HENOMX": "HENOMX", "WITA": "WITA", "OEZ": "восточноєѵрѡпе́йское зи́мнее вре́мѧ", "HAT": "HAT", "PDT": "тихоѻкеа́нское лѣ́тнее вре́мѧ", "ACWDT": "ACWDT", "WART": "WART", "ADT": "а҆тланті́ческое лѣ́тнее вре́мѧ", "CLT": "CLT", "COST": "COST", "GYT": "GYT", "EAT": "EAT", "AWST": "AWST", "BOT": "BOT", "VET": "VET", "TMT": "TMT", "BT": "BT", "MDT": "MDT", "HKT": "HKT", "WAST": "WAST", "HEPM": "HEPM", "NZDT": "NZDT", "WEZ": "западноєѵрѡпе́йское зи́мнее вре́мѧ", "WESZ": "западноєѵрѡпе́йское лѣ́тнее вре́мѧ", "TMST": "TMST", "UYST": "UYST", "HECU": "HECU", "CDT": "среднеамерїка́нское лѣ́тнее вре́мѧ", "CHADT": "CHADT", "HADT": "HADT", "NZST": "NZST", "CAT": "CAT", "ACWST": "ACWST", "WAT": "WAT", "AWDT": "AWDT", "WIT": "WIT", "SGT": "SGT", "ECT": "ECT", "MESZ": "среднеєѵрѡпе́йское лѣ́тнее вре́мѧ", "ARST": "ARST", "ART": "ART", "HKST": "HKST", "HNNOMX": "HNNOMX", "LHST": "LHST", "PST": "тихоѻкеа́нское зи́мнее вре́мѧ", "JST": "JST", "MEZ": "среднеєѵрѡпе́йское зи́мнее вре́мѧ", "GMT": "сре́днее вре́мѧ по грі́нꙋичꙋ", "AEST": "AEST", "GFT": "GFT", "HNPMX": "HNPMX", "SAST": "SAST", "∅∅∅": "∅∅∅", "IST": "IST", "HNOG": "HNOG", "MST": "MST"},
}
}
diff --git a/cy/cy.go b/cy/cy.go
index 0db534d8..7b0a20c7 100644
--- a/cy/cy.go
+++ b/cy/cy.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"CC", "OC"},
erasNarrow: []string{"C", "O"},
erasWide: []string{"Cyn Crist", "Oed Crist"},
- timezones: map[string]string{"WESZ": "Amser Haf Gorllewin Ewrop", "WITA": "Amser Canolbarth Indonesia", "AEDT": "Amser Haf Dwyrain Awstralia", "CHADT": "Amser Haf Chatham", "SAST": "Amser Safonol De Affrica", "ChST": "Amser Chamorro", "EST": "Amser Safonol Dwyrain Gogledd America", "IST": "Amser India", "WAT": "Amser Safonol Gorllewin Affrica", "HNT": "Amser Safonol Newfoundland", "ARST": "Amser Haf Ariannin", "UYST": "Amser Haf Uruguay", "NZDT": "Amser Haf Seland Newydd", "HEEG": "Amser Haf Dwyrain yr Ynys Las", "OESZ": "Amser Haf Dwyrain Ewrop", "CST": "Amser Safonol Canolbarth Gogledd America", "ACWDT": "Amser Haf Canolbarth Gorllewin Awstralia", "HKT": "Amser Safonol Hong Kong", "COST": "Amser Haf Colombia", "SGT": "Amser Singapore", "CDT": "Amser Haf Canolbarth Gogledd America", "GYT": "Amser Guyana", "MESZ": "Amser Haf Canolbarth Ewrop", "HNEG": "Amser Safonol Dwyrain yr Ynys Las", "HENOMX": "Amser Haf Gogledd Orllewin Mecsico", "WIB": "Amser Gorllewin Indonesia", "CHAST": "Amser Safonol Chatham", "TMST": "Amser Haf Tyrcmenistan", "HNCU": "Amser Safonol Cuba", "HADT": "Amser Haf Hawaii-Aleutian", "AEST": "Amser Safonol Dwyrain Awstralia", "HEPM": "Amser Haf Saint-Pierre-et-Miquelon", "∅∅∅": "Amser Haf Amazonas", "COT": "Amser Safonol Colombia", "GMT": "Amser Safonol Greenwich", "HEOG": "Amser Haf Gorllewin yr Ynys Las", "WART": "Amser Safonol Gorllewin Ariannin", "AST": "Amser Safonol Cefnfor yr Iwerydd", "HAST": "Amser Safonol Hawaii-Aleutian", "LHST": "Amser Safonol yr Arglwydd Howe", "JST": "Amser Safonol Siapan", "WAST": "Amser Haf Gorllewin Affrica", "OEZ": "Amser Safonol Dwyrain Ewrop", "HEPMX": "Amser Haf Pasiffig Mecsico", "VET": "Amser Venezuela", "SRT": "Amser Suriname", "PST": "Amser Safonol Cefnfor Tawel Gogledd America", "ACST": "Amser Safonol Canolbarth Awstralia", "ACDT": "Amser Haf Canolbarth Awstralia", "EAT": "Amser Dwyrain Affrica", "HNPMX": "Amser Safonol Pasiffig Mecsico", "PDT": "Amser Haf Cefnfor Tawel Gogledd America", "AKDT": "Amser Haf Alaska", "WIT": "Amser Dwyrain Indonesia", "AWDT": "Amser Haf Gorllewin Awstralia", "GFT": "Amser Guyane Ffrengig", "MDT": "MDT", "EDT": "Amser Haf Dwyrain Gogledd America", "AKST": "Amser Safonol Alaska", "HNPM": "Amser Safonol Saint-Pierre-et-Miquelon", "CLT": "Amser Safonol Chile", "CAT": "Amser Canolbarth Affrica", "UYT": "Amser Safonol Uruguay", "HKST": "Amser Haf Hong Kong", "LHDT": "Amser Haf yr Arglwydd Howe", "WEZ": "Amser Safonol Gorllewin Ewrop", "ART": "Amser Safonol Ariannin", "HNOG": "Amser Safonol Gorllewin yr Ynys Las", "WARST": "Amser Haf Gorllewin Ariannin", "HECU": "Amser Haf Cuba", "MYT": "Amser Malaysia", "BT": "Amser Bhutan", "MEZ": "Amser Safonol Canolbarth Ewrop", "BOT": "Amser Bolivia", "TMT": "Amser Safonol Tyrcmenistan", "ECT": "Amser Ecuador", "AWST": "Amser Safonol Gorllewin Awstralia", "CLST": "Amser Haf Chile", "JDT": "Amser Haf Siapan", "MST": "MST", "ACWST": "Amser Safonol Canolbarth Gorllewin Awstralia", "NZST": "Amser Safonol Seland Newydd", "HNNOMX": "Amser Safonol Gogledd Orllewin Mecsico", "ADT": "Amser Haf Cefnfor yr Iwerydd", "HAT": "Amser Haf Newfoundland"},
+ timezones: map[string]string{"GMT": "Amser Safonol Greenwich", "AWST": "Amser Safonol Gorllewin Awstralia", "MYT": "Amser Malaysia", "CLT": "Amser Safonol Chile", "AKDT": "Amser Haf Alaska", "LHDT": "Amser Haf yr Arglwydd Howe", "HNPMX": "Amser Safonol Pasiffig Mecsico", "∅∅∅": "Amser Haf Amazonas", "HNOG": "Amser Safonol Gorllewin yr Ynys Las", "TMT": "Amser Safonol Tyrcmenistan", "AKST": "Amser Safonol Alaska", "HNPM": "Amser Safonol Saint-Pierre-et-Miquelon", "LHST": "Amser Safonol yr Arglwydd Howe", "WIT": "Amser Dwyrain Indonesia", "JST": "Amser Safonol Siapan", "TMST": "Amser Haf Tyrcmenistan", "ARST": "Amser Haf Ariannin", "EST": "Amser Safonol Dwyrain Gogledd America", "ACST": "Amser Safonol Canolbarth Awstralia", "HEEG": "Amser Haf Dwyrain yr Ynys Las", "NZDT": "Amser Haf Seland Newydd", "MESZ": "Amser Haf Canolbarth Ewrop", "HNEG": "Amser Safonol Dwyrain yr Ynys Las", "BOT": "Amser Bolivia", "WARST": "Amser Haf Gorllewin Ariannin", "MDT": "MDT", "ACDT": "Amser Haf Canolbarth Awstralia", "HNT": "Amser Safonol Newfoundland", "GYT": "Amser Guyana", "WIB": "Amser Gorllewin Indonesia", "OEZ": "Amser Safonol Dwyrain Ewrop", "HKT": "Amser Safonol Hong Kong", "HNNOMX": "Amser Safonol Gogledd Orllewin Mecsico", "GFT": "Amser Guyane Ffrengig", "ECT": "Amser Ecuador", "ACWST": "Amser Safonol Canolbarth Gorllewin Awstralia", "ACWDT": "Amser Haf Canolbarth Gorllewin Awstralia", "MST": "MST", "HENOMX": "Amser Haf Gogledd Orllewin Mecsico", "UYT": "Amser Safonol Uruguay", "CST": "Amser Safonol Canolbarth Gogledd America", "CDT": "Amser Haf Canolbarth Gogledd America", "CHAST": "Amser Safonol Chatham", "JDT": "Amser Haf Siapan", "OESZ": "Amser Haf Dwyrain Ewrop", "WAT": "Amser Safonol Gorllewin Affrica", "SRT": "Amser Suriname", "CHADT": "Amser Haf Chatham", "PST": "Amser Safonol Cefnfor Tawel Gogledd America", "SAST": "Amser Safonol De Affrica", "SGT": "Amser Singapore", "EDT": "Amser Haf Dwyrain Gogledd America", "EAT": "Amser Dwyrain Affrica", "COT": "Amser Safonol Colombia", "AEST": "Amser Safonol Dwyrain Awstralia", "ChST": "Amser Chamorro", "HECU": "Amser Haf Cuba", "HADT": "Amser Haf Hawaii-Aleutian", "CAT": "Amser Canolbarth Affrica", "NZST": "Amser Safonol Seland Newydd", "VET": "Amser Venezuela", "ADT": "Amser Haf Cefnfor yr Iwerydd", "WESZ": "Amser Haf Gorllewin Ewrop", "HKST": "Amser Haf Hong Kong", "HEPMX": "Amser Haf Pasiffig Mecsico", "IST": "Amser India", "WART": "Amser Safonol Gorllewin Ariannin", "WITA": "Amser Canolbarth Indonesia", "AWDT": "Amser Haf Gorllewin Awstralia", "HAST": "Amser Safonol Hawaii-Aleutian", "MEZ": "Amser Safonol Canolbarth Ewrop", "HEOG": "Amser Haf Gorllewin yr Ynys Las", "AST": "Amser Safonol Cefnfor yr Iwerydd", "CLST": "Amser Haf Chile", "ART": "Amser Safonol Ariannin", "COST": "Amser Haf Colombia", "BT": "Amser Bhutan", "HAT": "Amser Haf Newfoundland", "AEDT": "Amser Haf Dwyrain Awstralia", "UYST": "Amser Haf Uruguay", "PDT": "Amser Haf Cefnfor Tawel Gogledd America", "WEZ": "Amser Safonol Gorllewin Ewrop", "WAST": "Amser Haf Gorllewin Affrica", "HEPM": "Amser Haf Saint-Pierre-et-Miquelon", "HNCU": "Amser Safonol Cuba"},
}
}
diff --git a/cy_GB/cy_GB.go b/cy_GB/cy_GB.go
index 3a8051fb..b1f4c56c 100644
--- a/cy_GB/cy_GB.go
+++ b/cy_GB/cy_GB.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"CC", "OC"},
erasNarrow: []string{"C", "O"},
erasWide: []string{"Cyn Crist", "Oed Crist"},
- timezones: map[string]string{"EAT": "Amser Dwyrain Affrica", "WIB": "Amser Gorllewin Indonesia", "HAST": "Amser Safonol Hawaii-Aleutian", "CHAST": "Amser Safonol Chatham", "CLT": "Amser Safonol Chile", "GFT": "Amser Guyane Ffrengig", "BOT": "Amser Bolivia", "HNEG": "Amser Safonol Dwyrain yr Ynys Las", "HENOMX": "Amser Haf Gogledd Orllewin Mecsico", "HADT": "Amser Haf Hawaii-Aleutian", "MEZ": "Amser Safonol Canolbarth Ewrop", "LHST": "Amser Safonol yr Arglwydd Howe", "IST": "Amser India", "CDT": "Amser Haf Canolbarth Gogledd America", "AKST": "Amser Safonol Alaska", "BT": "Amser Bhutan", "ART": "Amser Safonol Ariannin", "HNOG": "Amser Safonol Gorllewin yr Ynys Las", "JST": "Amser Safonol Siapan", "TMT": "Amser Safonol Tyrcmenistan", "TMST": "Amser Haf Tyrcmenistan", "UYST": "Amser Haf Uruguay", "PDT": "Amser Haf Cefnfor Tawel Gogledd America", "CLST": "Amser Haf Chile", "ACDT": "Amser Haf Canolbarth Awstralia", "PST": "Amser Safonol Cefnfor Tawel Gogledd America", "AEDT": "Amser Haf Dwyrain Awstralia", "HKST": "Amser Haf Hong Kong", "WARST": "Amser Haf Gorllewin Ariannin", "AST": "Amser Safonol Cefnfor yr Iwerydd", "MDT": "Amser Haf Mynyddoedd Gogledd America", "WITA": "Amser Canolbarth Indonesia", "HNPM": "Amser Safonol Saint-Pierre-et-Miquelon", "CHADT": "Amser Haf Chatham", "NZST": "Amser Safonol Seland Newydd", "HEEG": "Amser Haf Dwyrain yr Ynys Las", "UYT": "Amser Safonol Uruguay", "MST": "Amser Safonol Mynyddoedd Gogledd America", "ARST": "Amser Haf Ariannin", "OESZ": "Amser Haf Dwyrain Ewrop", "WAST": "Amser Haf Gorllewin Affrica", "AEST": "Amser Safonol Dwyrain Awstralia", "AWDT": "Amser Haf Gorllewin Awstralia", "WAT": "Amser Safonol Gorllewin Affrica", "HNNOMX": "Amser Safonol Gogledd Orllewin Mecsico", "WART": "Amser Safonol Gorllewin Ariannin", "ADT": "Amser Haf Cefnfor yr Iwerydd", "HEPM": "Amser Haf Saint-Pierre-et-Miquelon", "ChST": "Amser Chamorro", "ECT": "Amser Ecuador", "COT": "Amser Safonol Colombia", "HECU": "Amser Haf Cuba", "EST": "Amser Safonol Dwyrain Gogledd America", "HEPMX": "Amser Haf Pasiffig Mecsico", "HAT": "Amser Haf Newfoundland", "WESZ": "Amser Haf Gorllewin Ewrop", "LHDT": "Amser Haf yr Arglwydd Howe", "SGT": "Amser Singapore", "MYT": "Amser Malaysia", "WIT": "Amser Dwyrain Indonesia", "HNT": "Amser Safonol Newfoundland", "ACWDT": "Amser Haf Canolbarth Gorllewin Awstralia", "MESZ": "Amser Haf Canolbarth Ewrop", "JDT": "Amser Haf Siapan", "EDT": "Amser Haf Dwyrain Gogledd America", "CST": "Amser Safonol Canolbarth Gogledd America", "VET": "Amser Venezuela", "SRT": "Amser Suriname", "ACWST": "Amser Safonol Canolbarth Gorllewin Awstralia", "OEZ": "Amser Safonol Dwyrain Ewrop", "GYT": "Amser Guyana", "HKT": "Amser Safonol Hong Kong", "∅∅∅": "Amser Haf Amazonas", "ACST": "Amser Safonol Canolbarth Awstralia", "CAT": "Amser Canolbarth Affrica", "GMT": "Amser Safonol Greenwich", "HEOG": "Amser Haf Gorllewin yr Ynys Las", "WEZ": "Amser Safonol Gorllewin Ewrop", "HNPMX": "Amser Safonol Pasiffig Mecsico", "AKDT": "Amser Haf Alaska", "AWST": "Amser Safonol Gorllewin Awstralia", "NZDT": "Amser Haf Seland Newydd", "SAST": "Amser Safonol De Affrica", "COST": "Amser Haf Colombia", "HNCU": "Amser Safonol Cuba"},
+ timezones: map[string]string{"MEZ": "Amser Safonol Canolbarth Ewrop", "WARST": "Amser Haf Gorllewin Ariannin", "SRT": "Amser Suriname", "HENOMX": "Amser Haf Gogledd Orllewin Mecsico", "AEDT": "Amser Haf Dwyrain Awstralia", "GYT": "Amser Guyana", "CHAST": "Amser Safonol Chatham", "NZDT": "Amser Haf Seland Newydd", "ACWDT": "Amser Haf Canolbarth Gorllewin Awstralia", "MESZ": "Amser Haf Canolbarth Ewrop", "CLT": "Amser Safonol Chile", "ChST": "Amser Chamorro", "UYT": "Amser Safonol Uruguay", "AWST": "Amser Safonol Gorllewin Awstralia", "AWDT": "Amser Haf Gorllewin Awstralia", "HAST": "Amser Safonol Hawaii-Aleutian", "WAT": "Amser Safonol Gorllewin Affrica", "HNT": "Amser Safonol Newfoundland", "AKST": "Amser Safonol Alaska", "AST": "Amser Safonol Cefnfor yr Iwerydd", "ADT": "Amser Haf Cefnfor yr Iwerydd", "MST": "MST", "PST": "Amser Safonol Cefnfor Tawel Gogledd America", "OEZ": "Amser Safonol Dwyrain Ewrop", "WESZ": "Amser Haf Gorllewin Ewrop", "ACST": "Amser Safonol Canolbarth Awstralia", "AEST": "Amser Safonol Dwyrain Awstralia", "EAT": "Amser Dwyrain Affrica", "HNOG": "Amser Safonol Gorllewin yr Ynys Las", "EST": "Amser Safonol Dwyrain Gogledd America", "GFT": "Amser Guyane Ffrengig", "PDT": "Amser Haf Cefnfor Tawel Gogledd America", "ACDT": "Amser Haf Canolbarth Awstralia", "HNPM": "Amser Safonol Saint-Pierre-et-Miquelon", "CDT": "Amser Haf Canolbarth Gogledd America", "ECT": "Amser Ecuador", "HNPMX": "Amser Safonol Pasiffig Mecsico", "HNCU": "Amser Safonol Cuba", "CST": "Amser Safonol Canolbarth Gogledd America", "ACWST": "Amser Safonol Canolbarth Gorllewin Awstralia", "ARST": "Amser Haf Ariannin", "HEEG": "Amser Haf Dwyrain yr Ynys Las", "JDT": "Amser Haf Siapan", "CLST": "Amser Haf Chile", "ART": "Amser Safonol Ariannin", "COT": "Amser Safonol Colombia", "COST": "Amser Haf Colombia", "∅∅∅": "Amser Haf Brasília", "SGT": "Amser Singapore", "BOT": "Amser Bolivia", "WEZ": "Amser Safonol Gorllewin Ewrop", "LHST": "Amser Safonol yr Arglwydd Howe", "MDT": "MDT", "HAT": "Amser Haf Newfoundland", "WIT": "Amser Dwyrain Indonesia", "MYT": "Amser Malaysia", "WART": "Amser Safonol Gorllewin Ariannin", "HEOG": "Amser Haf Gorllewin yr Ynys Las", "TMT": "Amser Safonol Tyrcmenistan", "TMST": "Amser Haf Tyrcmenistan", "WITA": "Amser Canolbarth Indonesia", "HEPMX": "Amser Haf Pasiffig Mecsico", "LHDT": "Amser Haf yr Arglwydd Howe", "HECU": "Amser Haf Cuba", "CHADT": "Amser Haf Chatham", "IST": "Amser India", "WAST": "Amser Haf Gorllewin Affrica", "BT": "Amser Bhutan", "HEPM": "Amser Haf Saint-Pierre-et-Miquelon", "HADT": "Amser Haf Hawaii-Aleutian", "NZST": "Amser Safonol Seland Newydd", "OESZ": "Amser Haf Dwyrain Ewrop", "CAT": "Amser Canolbarth Affrica", "VET": "Amser Venezuela", "GMT": "Amser Safonol Greenwich", "HKT": "Amser Safonol Hong Kong", "AKDT": "Amser Haf Alaska", "UYST": "Amser Haf Uruguay", "WIB": "Amser Gorllewin Indonesia", "JST": "Amser Safonol Siapan", "EDT": "Amser Haf Dwyrain Gogledd America", "HKST": "Amser Haf Hong Kong", "HNNOMX": "Amser Safonol Gogledd Orllewin Mecsico", "HNEG": "Amser Safonol Dwyrain yr Ynys Las", "SAST": "Amser Safonol De Affrica"},
}
}
diff --git a/da/da.go b/da/da.go
index 4e5b9a7b..459f0194 100644
--- a/da/da.go
+++ b/da/da.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "e.Kr."},
erasNarrow: []string{"fKr", "eKr"},
erasWide: []string{"f.Kr.", "e.Kr."},
- timezones: map[string]string{"HNPM": "Saint Pierre- og Miquelon-normaltid", "CAT": "Centralafrikansk tid", "EST": "Eastern-normaltid", "MYT": "Malaysisk tid", "ACWST": "Vestlig centralaustralsk normaltid", "NZST": "Newzealandsk normaltid", "AST": "Atlantic-normaltid", "UYT": "Uruguayansk normaltid", "WEZ": "Vesteuropæisk normaltid", "COST": "Colombiansk sommertid", "GMT": "GMT", "EDT": "Eastern-sommertid", "PDT": "Pacific-sommertid", "HKT": "Hongkong-normaltid", "CLT": "Chilensk normaltid", "∅∅∅": "Amazonas-sommertid", "SRT": "Surinam-tid", "HKST": "Hongkong-sommertid", "CLST": "Chilensk sommertid", "HEEG": "Østgrønlandsk sommertid", "WAT": "Vestafrikansk normaltid", "SGT": "Singaporeansk normaltid", "AEST": "Østaustralsk normaltid", "AKST": "Alaska-normaltid", "ACWDT": "Vestlig centralaustralsk sommertid", "SAST": "Sydafrikansk tid", "TMT": "Turkmensk normaltid", "WARST": "Vestargentinsk sommertid", "AKDT": "Alaska-sommertid", "WIB": "Vestindonesisk tid", "COT": "Colombiansk normaltid", "HNNOMX": "Nordvestmexicansk normaltid", "UYST": "Uruguayansk sommertid", "WESZ": "Vesteuropæisk sommertid", "ART": "Argentinsk normaltid", "AEDT": "Østaustralsk sommertid", "HAT": "Newfoundlandsk sommertid", "MEZ": "Centraleuropæisk normaltid", "CHAST": "Chatham-normaltid", "BOT": "Boliviansk tid", "HENOMX": "Nordvestmexicansk sommertid", "HEPMX": "Mexicansk Pacific-sommertid", "PST": "Pacific-normaltid", "ChST": "Chamorro-tid", "HNEG": "Østgrønlandsk normaltid", "GFT": "Fransk Guyana-tid", "ACDT": "Centralaustralsk sommertid", "CST": "Central-normaltid", "ARST": "Argentinsk sommertid", "OEZ": "Østeuropæisk normaltid", "HNPMX": "Mexicansk Pacific-normaltid", "CDT": "Central-sommertid", "ADT": "Atlantic-sommertid", "GYT": "Guyana-tid", "HNT": "Newfoundlandsk normaltid", "HEPM": "Saint Pierre- og Miquelon-sommertid", "EAT": "Østafrikansk tid", "HNCU": "Cubansk normaltid", "HECU": "Cubansk sommertid", "MESZ": "Centraleuropæisk sommertid", "IST": "Indisk normaltid", "JDT": "Japansk sommertid", "TMST": "Turkmensk sommertid", "MST": "Macao-normaltid", "HAST": "Hawaii-Aleutian-normaltid", "AWDT": "Vestaustralsk sommertid", "JST": "Japansk normaltid", "ACST": "Centralaustralsk normaltid", "OESZ": "Østeuropæisk sommertid", "MDT": "Macao-sommertid", "HADT": "Hawaii-Aleutian-sommertid", "BT": "Bhutanesisk tid", "WIT": "Østindonesisk tid", "HNOG": "Vestgrønlandsk normaltid", "LHST": "Lord Howe-normaltid", "NZDT": "Newzealandsk sommertid", "CHADT": "Chatham-sommertid", "ECT": "Ecuadoriansk tid", "WART": "Vestargentinsk normaltid", "VET": "Venezuelansk tid", "HEOG": "Vestgrønlandsk sommertid", "WITA": "Centralindonesisk tid", "LHDT": "Lord Howe-sommertid", "WAST": "Vestafrikansk sommertid", "AWST": "Vestaustralsk normaltid"},
+ timezones: map[string]string{"HAST": "Hawaii-Aleutian-normaltid", "CAT": "Centralafrikansk tid", "MYT": "Malaysisk tid", "COST": "Colombiansk sommertid", "SAST": "Sydafrikansk tid", "WIT": "Østindonesisk tid", "HNPMX": "Mexicansk Pacific-normaltid", "AWDT": "Vestaustralsk sommertid", "CLT": "Chilensk normaltid", "ACST": "Centralaustralsk normaltid", "COT": "Colombiansk normaltid", "WITA": "Centralindonesisk tid", "UYST": "Uruguayansk sommertid", "VET": "Venezuelansk tid", "TMST": "Turkmensk sommertid", "HNT": "Newfoundlandsk normaltid", "HNCU": "Cubansk normaltid", "CST": "Central-normaltid", "PST": "Pacific-normaltid", "HADT": "Hawaii-Aleutian-sommertid", "HKT": "Hongkong-normaltid", "BOT": "Boliviansk tid", "ACWST": "Vestlig centralaustralsk normaltid", "OESZ": "Østeuropæisk sommertid", "HKST": "Hongkong-sommertid", "LHDT": "Lord Howe-sommertid", "EAT": "Østafrikansk tid", "AEDT": "Østaustralsk sommertid", "UYT": "Uruguayansk normaltid", "ECT": "Ecuadoriansk tid", "∅∅∅": "Amazonas-sommertid", "WART": "Vestargentinsk normaltid", "MST": "Macao-normaltid", "ARST": "Argentinsk sommertid", "HEEG": "Østgrønlandsk sommertid", "WIB": "Vestindonesisk tid", "IST": "Indisk normaltid", "ACWDT": "Vestlig centralaustralsk sommertid", "AST": "Atlantic-normaltid", "WAT": "Vestafrikansk normaltid", "BT": "Bhutanesisk tid", "GFT": "Fransk Guyana-tid", "HEPMX": "Mexicansk Pacific-sommertid", "AWST": "Vestaustralsk normaltid", "NZST": "Newzealandsk normaltid", "ADT": "Atlantic-sommertid", "ACDT": "Centralaustralsk sommertid", "HNNOMX": "Nordvestmexicansk normaltid", "HENOMX": "Nordvestmexicansk sommertid", "HECU": "Cubansk sommertid", "CHADT": "Chatham-sommertid", "MEZ": "Centraleuropæisk normaltid", "WEZ": "Vesteuropæisk normaltid", "LHST": "Lord Howe-normaltid", "CDT": "Central-sommertid", "CHAST": "Chatham-normaltid", "SGT": "Singaporeansk normaltid", "PDT": "Pacific-sommertid", "OEZ": "Østeuropæisk normaltid", "WARST": "Vestargentinsk sommertid", "EDT": "Eastern-sommertid", "HNEG": "Østgrønlandsk normaltid", "AKST": "Alaska-normaltid", "SRT": "Surinam-tid", "HEOG": "Vestgrønlandsk sommertid", "WAST": "Vestafrikansk sommertid", "EST": "Eastern-normaltid", "HAT": "Newfoundlandsk sommertid", "AKDT": "Alaska-sommertid", "HEPM": "Saint Pierre- og Miquelon-sommertid", "ART": "Argentinsk normaltid", "GYT": "Guyana-tid", "MDT": "Macao-sommertid", "ChST": "Chamorro-tid", "JDT": "Japansk sommertid", "HNOG": "Vestgrønlandsk normaltid", "WESZ": "Vesteuropæisk sommertid", "GMT": "GMT", "CLST": "Chilensk sommertid", "TMT": "Turkmensk normaltid", "NZDT": "Newzealandsk sommertid", "MESZ": "Centraleuropæisk sommertid", "JST": "Japansk normaltid", "AEST": "Østaustralsk normaltid", "HNPM": "Saint Pierre- og Miquelon-normaltid"},
}
}
diff --git a/da_DK/da_DK.go b/da_DK/da_DK.go
index 9a945fa8..9c563987 100644
--- a/da_DK/da_DK.go
+++ b/da_DK/da_DK.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "e.Kr."},
erasNarrow: []string{"fKr", "eKr"},
erasWide: []string{"f.Kr.", "e.Kr."},
- timezones: map[string]string{"JDT": "Japansk sommertid", "VET": "Venezuelansk tid", "ARST": "Argentinsk sommertid", "HNPM": "Saint Pierre- og Miquelon-normaltid", "AWST": "Vestaustralsk normaltid", "GFT": "Fransk Guyana-tid", "AST": "Atlantic-normaltid", "HADT": "Hawaii-Aleutian-sommertid", "AEDT": "Østaustralsk sommertid", "HEEG": "Østgrønlandsk sommertid", "PST": "Pacific-normaltid", "AEST": "Østaustralsk normaltid", "CLT": "Chilensk normaltid", "TMST": "Turkmensk sommertid", "ACWST": "Vestlig centralaustralsk normaltid", "MESZ": "Centraleuropæisk sommertid", "WAT": "Vestafrikansk normaltid", "MST": "Macao-normaltid", "SRT": "Surinam-tid", "LHDT": "Lord Howe-sommertid", "HKT": "Hongkong-normaltid", "HKST": "Hongkong-sommertid", "ACDT": "Centralaustralsk sommertid", "WARST": "Vestargentinsk sommertid", "UYST": "Uruguayansk sommertid", "WIT": "Østindonesisk tid", "ACWDT": "Vestlig centralaustralsk sommertid", "HAT": "Newfoundlandsk sommertid", "AWDT": "Vestaustralsk sommertid", "SAST": "Sydafrikansk tid", "WART": "Vestargentinsk normaltid", "SGT": "Singaporeansk normaltid", "HAST": "Hawaii-Aleutian-normaltid", "ECT": "Ecuadoriansk tid", "COT": "Colombiansk normaltid", "EDT": "Eastern-sommertid", "UYT": "Uruguayansk normaltid", "IST": "Indisk normaltid", "CLST": "Chilensk sommertid", "ChST": "Chamorro-tid", "ACST": "Centralaustralsk normaltid", "CHAST": "Chatham-normaltid", "MEZ": "Centraleuropæisk normaltid", "WIB": "Vestindonesisk tid", "BOT": "Boliviansk tid", "OESZ": "Østeuropæisk sommertid", "CDT": "Central-sommertid", "ADT": "Atlantic-sommertid", "MDT": "Macao-sommertid", "HNPMX": "Mexicansk Pacific-normaltid", "HEPM": "Saint Pierre- og Miquelon-sommertid", "LHST": "Lord Howe-normaltid", "WAST": "Vestafrikansk sommertid", "HNNOMX": "Nordvestmexicansk normaltid", "HNCU": "Cubansk normaltid", "GMT": "GMT", "WITA": "Centralindonesisk tid", "HECU": "Cubansk sommertid", "BT": "Bhutanesisk tid", "ART": "Argentinsk normaltid", "PDT": "Pacific-sommertid", "HNEG": "Østgrønlandsk normaltid", "OEZ": "Østeuropæisk normaltid", "AKST": "Alaska-normaltid", "WESZ": "Vesteuropæisk sommertid", "CST": "Central-normaltid", "MYT": "Malaysisk tid", "HNT": "Newfoundlandsk normaltid", "HNOG": "Vestgrønlandsk normaltid", "∅∅∅": "Amazonas-sommertid", "EAT": "Østafrikansk tid", "CAT": "Centralafrikansk tid", "AKDT": "Alaska-sommertid", "TMT": "Turkmensk normaltid", "HENOMX": "Nordvestmexicansk sommertid", "EST": "Eastern-normaltid", "WEZ": "Vesteuropæisk normaltid", "HEOG": "Vestgrønlandsk sommertid", "NZST": "Newzealandsk normaltid", "NZDT": "Newzealandsk sommertid", "CHADT": "Chatham-sommertid", "JST": "Japansk normaltid", "COST": "Colombiansk sommertid", "HEPMX": "Mexicansk Pacific-sommertid", "GYT": "Guyana-tid"},
+ timezones: map[string]string{"TMST": "Turkmensk sommertid", "WITA": "Centralindonesisk tid", "HEPM": "Saint Pierre- og Miquelon-sommertid", "CST": "Central-normaltid", "MESZ": "Centraleuropæisk sommertid", "CLT": "Chilensk normaltid", "CHADT": "Chatham-sommertid", "NZDT": "Newzealandsk sommertid", "MEZ": "Centraleuropæisk normaltid", "COST": "Colombiansk sommertid", "SRT": "Surinam-tid", "HECU": "Cubansk sommertid", "AWDT": "Vestaustralsk sommertid", "ACWDT": "Vestlig centralaustralsk sommertid", "HKST": "Hongkong-sommertid", "AKDT": "Alaska-sommertid", "PDT": "Pacific-sommertid", "IST": "Indisk normaltid", "EDT": "Eastern-sommertid", "WARST": "Vestargentinsk sommertid", "HNT": "Newfoundlandsk normaltid", "SAST": "Sydafrikansk tid", "PST": "Pacific-normaltid", "HADT": "Hawaii-Aleutian-sommertid", "HEOG": "Vestgrønlandsk sommertid", "WEZ": "Vesteuropæisk normaltid", "HNCU": "Cubansk normaltid", "AWST": "Vestaustralsk normaltid", "CHAST": "Chatham-normaltid", "ECT": "Ecuadoriansk tid", "HNPM": "Saint Pierre- og Miquelon-normaltid", "CDT": "Central-sommertid", "ADT": "Atlantic-sommertid", "HKT": "Hongkong-normaltid", "HNOG": "Vestgrønlandsk normaltid", "OEZ": "Østeuropæisk normaltid", "ACDT": "Centralaustralsk sommertid", "HENOMX": "Nordvestmexicansk sommertid", "AEST": "Østaustralsk normaltid", "ChST": "Chamorro-tid", "LHDT": "Lord Howe-sommertid", "∅∅∅": "Azorerne-sommertid", "WAT": "Vestafrikansk normaltid", "WAST": "Vestafrikansk sommertid", "UYT": "Uruguayansk normaltid", "UYST": "Uruguayansk sommertid", "EAT": "Østafrikansk tid", "WIB": "Vestindonesisk tid", "AST": "Atlantic-normaltid", "GYT": "Guyana-tid", "SGT": "Singaporeansk normaltid", "WESZ": "Vesteuropæisk sommertid", "TMT": "Turkmensk normaltid", "HEEG": "Østgrønlandsk sommertid", "COT": "Colombiansk normaltid", "GFT": "Fransk Guyana-tid", "MST": "Mountain-normaltid", "VET": "Venezuelansk tid", "EST": "Eastern-normaltid", "ACST": "Centralaustralsk normaltid", "HNEG": "Østgrønlandsk normaltid", "MDT": "Mountain-sommertid", "GMT": "GMT", "MYT": "Malaysisk tid", "HNNOMX": "Nordvestmexicansk normaltid", "HAT": "Newfoundlandsk sommertid", "CLST": "Chilensk sommertid", "OESZ": "Østeuropæisk sommertid", "ART": "Argentinsk normaltid", "LHST": "Lord Howe-normaltid", "HEPMX": "Mexicansk Pacific-sommertid", "BOT": "Boliviansk tid", "ACWST": "Vestlig centralaustralsk normaltid", "JST": "Japansk normaltid", "AKST": "Alaska-normaltid", "AEDT": "Østaustralsk sommertid", "NZST": "Newzealandsk normaltid", "ARST": "Argentinsk sommertid", "WART": "Vestargentinsk normaltid", "BT": "Bhutanesisk tid", "HNPMX": "Mexicansk Pacific-normaltid", "WIT": "Østindonesisk tid", "HAST": "Hawaii-Aleutian-normaltid", "CAT": "Centralafrikansk tid", "JDT": "Japansk sommertid"},
}
}
diff --git a/da_GL/da_GL.go b/da_GL/da_GL.go
index 5aa46bb1..d58391a0 100644
--- a/da_GL/da_GL.go
+++ b/da_GL/da_GL.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "e.Kr."},
erasNarrow: []string{"fKr", "eKr"},
erasWide: []string{"f.Kr.", "e.Kr."},
- timezones: map[string]string{"HNNOMX": "Nordvestmexicansk normaltid", "COST": "Colombiansk sommertid", "WEZ": "Vesteuropæisk normaltid", "MEZ": "Centraleuropæisk normaltid", "TMT": "Turkmensk normaltid", "SAST": "Sydafrikansk tid", "∅∅∅": "Amazonas-sommertid", "CDT": "Central-sommertid", "JDT": "Japansk sommertid", "WART": "Vestargentinsk normaltid", "HNPMX": "Mexicansk Pacific-normaltid", "HEPMX": "Mexicansk Pacific-sommertid", "GYT": "Guyana-tid", "SRT": "Surinam-tid", "ART": "Argentinsk normaltid", "AWDT": "Vestaustralsk sommertid", "IST": "Indisk normaltid", "COT": "Colombiansk normaltid", "ARST": "Argentinsk sommertid", "HNOG": "Vestgrønlandsk normaltid", "CHAST": "Chatham-normaltid", "SGT": "Singaporeansk normaltid", "AEDT": "Østaustralsk sommertid", "NZST": "Newzealandsk normaltid", "EAT": "Østafrikansk tid", "ACWST": "Vestlig centralaustralsk normaltid", "PDT": "Pacific-sommertid", "HKST": "Hongkong-sommertid", "JST": "Japansk normaltid", "MST": "Mountain-normaltid", "MDT": "Mountain-sommertid", "WIT": "Østindonesisk tid", "LHST": "Lord Howe-normaltid", "LHDT": "Lord Howe-sommertid", "GFT": "Fransk Guyana-tid", "OESZ": "Østeuropæisk sommertid", "CAT": "Centralafrikansk tid", "WIB": "Vestindonesisk tid", "HADT": "Hawaii-Aleutian-sommertid", "WITA": "Centralindonesisk tid", "CLST": "Chilensk sommertid", "HNEG": "Østgrønlandsk normaltid", "HNCU": "Cubansk normaltid", "MYT": "Malaysisk tid", "HAT": "Newfoundlandsk sommertid", "NZDT": "Newzealandsk sommertid", "MESZ": "Centraleuropæisk sommertid", "AKST": "Alaska-normaltid", "CST": "Central-normaltid", "WESZ": "Vesteuropæisk sommertid", "HEPM": "Saint Pierre- og Miquelon-sommertid", "TMST": "Turkmensk sommertid", "AKDT": "Alaska-sommertid", "AWST": "Vestaustralsk normaltid", "ECT": "Ecuadoriansk tid", "GMT": "GMT", "VET": "Venezuelansk tid", "PST": "Pacific-normaltid", "HENOMX": "Nordvestmexicansk sommertid", "WARST": "Vestargentinsk sommertid", "EDT": "Eastern-sommertid", "HKT": "Hongkong-normaltid", "AEST": "Østaustralsk normaltid", "HNPM": "Saint Pierre- og Miquelon-normaltid", "OEZ": "Østeuropæisk normaltid", "AST": "Atlantic-normaltid", "ADT": "Atlantic-sommertid", "ACWDT": "Vestlig centralaustralsk sommertid", "HEEG": "Østgrønlandsk sommertid", "ACST": "Centralaustralsk normaltid", "UYT": "Uruguayansk normaltid", "CHADT": "Chatham-sommertid", "WAST": "Vestafrikansk sommertid", "EST": "Eastern-normaltid", "ChST": "Chamorro-tid", "WAT": "Vestafrikansk normaltid", "HAST": "Hawaii-Aleutian-normaltid", "HEOG": "Vestgrønlandsk sommertid", "CLT": "Chilensk normaltid", "ACDT": "Centralaustralsk sommertid", "HECU": "Cubansk sommertid", "UYST": "Uruguayansk sommertid", "BT": "Bhutanesisk tid", "HNT": "Newfoundlandsk normaltid", "BOT": "Boliviansk tid"},
+ timezones: map[string]string{"HNEG": "Østgrønlandsk normaltid", "AEST": "Østaustralsk normaltid", "NZDT": "Newzealandsk sommertid", "WAST": "Vestafrikansk sommertid", "HEOG": "Vestgrønlandsk sommertid", "OESZ": "Østeuropæisk sommertid", "HKST": "Hongkong-sommertid", "HEPM": "Saint Pierre- og Miquelon-sommertid", "PDT": "Pacific-sommertid", "HADT": "Hawaii-Aleutian-sommertid", "ACDT": "Centralaustralsk sommertid", "LHST": "Lord Howe-normaltid", "IST": "Indisk normaltid", "WEZ": "Vesteuropæisk normaltid", "WART": "Vestargentinsk normaltid", "LHDT": "Lord Howe-sommertid", "GMT": "GMT", "MYT": "Malaysisk tid", "CLT": "Chilensk normaltid", "CLST": "Chilensk sommertid", "AST": "Atlantic-normaltid", "WARST": "Vestargentinsk sommertid", "EDT": "Eastern-sommertid", "UYT": "Uruguayansk normaltid", "WIB": "Vestindonesisk tid", "∅∅∅": "Brasiliansk sommertid", "HAST": "Hawaii-Aleutian-normaltid", "MST": "Macao-normaltid", "CST": "Central-normaltid", "BOT": "Boliviansk tid", "JST": "Japansk normaltid", "OEZ": "Østeuropæisk normaltid", "HEPMX": "Mexicansk Pacific-sommertid", "SRT": "Surinam-tid", "ACWST": "Vestlig centralaustralsk normaltid", "VET": "Venezuelansk tid", "CHADT": "Chatham-sommertid", "PST": "Pacific-normaltid", "MESZ": "Centraleuropæisk sommertid", "TMT": "Turkmensk normaltid", "HNNOMX": "Nordvestmexicansk normaltid", "HENOMX": "Nordvestmexicansk sommertid", "EAT": "Østafrikansk tid", "AWDT": "Vestaustralsk sommertid", "AEDT": "Østaustralsk sommertid", "BT": "Bhutanesisk tid", "AKST": "Alaska-normaltid", "SAST": "Sydafrikansk tid", "WITA": "Centralindonesisk tid", "UYST": "Uruguayansk sommertid", "MDT": "Macao-sommertid", "HKT": "Hongkong-normaltid", "GFT": "Fransk Guyana-tid", "GYT": "Guyana-tid", "CHAST": "Chatham-normaltid", "HNOG": "Vestgrønlandsk normaltid", "COT": "Colombiansk normaltid", "HNT": "Newfoundlandsk normaltid", "HNPM": "Saint Pierre- og Miquelon-normaltid", "MEZ": "Centraleuropæisk normaltid", "JDT": "Japansk sommertid", "SGT": "Singaporeansk normaltid", "HEEG": "Østgrønlandsk sommertid", "TMST": "Turkmensk sommertid", "HECU": "Cubansk sommertid", "WESZ": "Vesteuropæisk sommertid", "NZST": "Newzealandsk normaltid", "ADT": "Atlantic-sommertid", "ART": "Argentinsk normaltid", "ACST": "Centralaustralsk normaltid", "HNCU": "Cubansk normaltid", "CDT": "Central-sommertid", "ACWDT": "Vestlig centralaustralsk sommertid", "WAT": "Vestafrikansk normaltid", "EST": "Eastern-normaltid", "ChST": "Chamorro-tid", "HNPMX": "Mexicansk Pacific-normaltid", "WIT": "Østindonesisk tid", "ECT": "Ecuadoriansk tid", "ARST": "Argentinsk sommertid", "COST": "Colombiansk sommertid", "HAT": "Newfoundlandsk sommertid", "AKDT": "Alaska-sommertid", "AWST": "Vestaustralsk normaltid", "CAT": "Centralafrikansk tid"},
}
}
diff --git a/dav/dav.go b/dav/dav.go
index 8db37437..af4804e1 100644
--- a/dav/dav.go
+++ b/dav/dav.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Kristo", "Baada ya Kristo"},
- timezones: map[string]string{"ACST": "ACST", "HNT": "HNT", "HNPM": "HNPM", "LHDT": "LHDT", "CHAST": "CHAST", "GFT": "GFT", "CDT": "CDT", "AST": "AST", "WIB": "WIB", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "ECT": "ECT", "WARST": "WARST", "JST": "JST", "SRT": "SRT", "PST": "PST", "MEZ": "MEZ", "NZDT": "NZDT", "CLST": "CLST", "ChST": "ChST", "BOT": "BOT", "EAT": "EAT", "BT": "BT", "HNOG": "HNOG", "HEOG": "HEOG", "HKST": "HKST", "NZST": "NZST", "COST": "COST", "HENOMX": "HENOMX", "GMT": "GMT", "EST": "EST", "HEPMX": "HEPMX", "HNEG": "HNEG", "ACDT": "ACDT", "EDT": "EDT", "MYT": "MYT", "AKST": "AKST", "MESZ": "MESZ", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "SGT": "SGT", "HECU": "HECU", "HKT": "HKT", "OESZ": "OESZ", "HNPMX": "HNPMX", "MDT": "MDT", "WEZ": "WEZ", "HEPM": "HEPM", "UYT": "UYT", "AKDT": "AKDT", "WIT": "WIT", "CHADT": "CHADT", "JDT": "JDT", "TMST": "TMST", "HAST": "HAST", "MST": "MST", "AWST": "AWST", "TMT": "TMT", "WAT": "WAT", "COT": "COT", "CST": "CST", "VET": "VET", "ACWST": "ACWST", "ART": "ART", "OEZ": "OEZ", "WART": "WART", "ACWDT": "ACWDT", "CLT": "CLT", "WAST": "WAST", "UYST": "UYST", "AEST": "AEST", "AEDT": "AEDT", "IST": "IST", "GYT": "GYT", "ARST": "ARST", "WITA": "WITA", "LHST": "LHST", "SAST": "SAST", "ADT": "ADT", "HNCU": "HNCU", "HADT": "HADT", "PDT": "PDT", "WESZ": "WESZ", "HAT": "HAT", "CAT": "CAT"},
+ timezones: map[string]string{"SAST": "SAST", "WESZ": "WESZ", "MST": "MST", "EDT": "EDT", "BT": "BT", "HAT": "HAT", "GFT": "GFT", "HNCU": "HNCU", "HAST": "HAST", "HEPMX": "HEPMX", "SRT": "SRT", "AKDT": "AKDT", "LHDT": "LHDT", "GYT": "GYT", "CHAST": "CHAST", "ACWDT": "ACWDT", "PDT": "PDT", "ACWST": "ACWST", "GMT": "GMT", "TMT": "TMT", "WAT": "WAT", "ACDT": "ACDT", "HECU": "HECU", "SGT": "SGT", "AEDT": "AEDT", "AKST": "AKST", "OEZ": "OEZ", "ART": "ART", "HKST": "HKST", "WITA": "WITA", "HNPM": "HNPM", "CDT": "CDT", "NZST": "NZST", "ARST": "ARST", "TMST": "TMST", "MDT": "MDT", "ACST": "ACST", "HEPM": "HEPM", "UYT": "UYT", "UYST": "UYST", "VET": "VET", "MYT": "MYT", "PST": "PST", "WIT": "WIT", "HADT": "HADT", "ECT": "ECT", "JDT": "JDT", "WART": "WART", "WIB": "WIB", "∅∅∅": "∅∅∅", "MESZ": "MESZ", "EST": "EST", "HNNOMX": "HNNOMX", "NZDT": "NZDT", "CAT": "CAT", "ChST": "ChST", "LHST": "LHST", "OESZ": "OESZ", "WAST": "WAST", "CHADT": "CHADT", "HEOG": "HEOG", "JST": "JST", "WEZ": "WEZ", "AST": "AST", "HKT": "HKT", "HENOMX": "HENOMX", "CST": "CST", "AWST": "AWST", "HNOG": "HNOG", "COST": "COST", "MEZ": "MEZ", "WARST": "WARST", "IST": "IST", "CLT": "CLT", "ADT": "ADT", "COT": "COT", "AEST": "AEST", "AWDT": "AWDT", "BOT": "BOT", "HNEG": "HNEG", "HEEG": "HEEG", "HNT": "HNT", "HNPMX": "HNPMX", "EAT": "EAT", "CLST": "CLST"},
}
}
diff --git a/dav_KE/dav_KE.go b/dav_KE/dav_KE.go
index ff70678d..6fb4227d 100644
--- a/dav_KE/dav_KE.go
+++ b/dav_KE/dav_KE.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Kristo", "Baada ya Kristo"},
- timezones: map[string]string{"EAT": "EAT", "HECU": "HECU", "MST": "MST", "AWDT": "AWDT", "NZDT": "NZDT", "AKST": "AKST", "PDT": "PDT", "HAT": "HAT", "HKT": "HKT", "IST": "IST", "HENOMX": "HENOMX", "WIB": "WIB", "WEZ": "WEZ", "ACWST": "ACWST", "LHDT": "LHDT", "NZST": "NZST", "OEZ": "OEZ", "UYT": "UYT", "SRT": "SRT", "HNT": "HNT", "EDT": "EDT", "MYT": "MYT", "HKST": "HKST", "SGT": "SGT", "VET": "VET", "ART": "ART", "ECT": "ECT", "COT": "COT", "COST": "COST", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "AKDT": "AKDT", "CST": "CST", "CHADT": "CHADT", "WARST": "WARST", "JDT": "JDT", "BOT": "BOT", "GMT": "GMT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "ADT": "ADT", "AEST": "AEST", "CLT": "CLT", "MESZ": "MESZ", "OESZ": "OESZ", "HAST": "HAST", "AEDT": "AEDT", "WITA": "WITA", "ChST": "ChST", "TMST": "TMST", "MDT": "MDT", "ARST": "ARST", "JST": "JST", "ACDT": "ACDT", "EST": "EST", "GYT": "GYT", "WIT": "WIT", "HNOG": "HNOG", "AWST": "AWST", "GFT": "GFT", "TMT": "TMT", "CAT": "CAT", "HADT": "HADT", "HEPM": "HEPM", "CLST": "CLST", "WAST": "WAST", "UYST": "UYST", "MEZ": "MEZ", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "HEEG": "HEEG", "WAT": "WAT", "AST": "AST", "PST": "PST", "WESZ": "WESZ", "ACWDT": "ACWDT", "HNPM": "HNPM", "ACST": "ACST", "WART": "WART", "CDT": "CDT", "BT": "BT", "HEOG": "HEOG", "SAST": "SAST", "LHST": "LHST", "CHAST": "CHAST"},
+ timezones: map[string]string{"WITA": "WITA", "HNPM": "HNPM", "WIT": "WIT", "WART": "WART", "HKT": "HKT", "HNNOMX": "HNNOMX", "AKST": "AKST", "UYT": "UYT", "WIB": "WIB", "AWST": "AWST", "ACWST": "ACWST", "TMST": "TMST", "ART": "ART", "HNT": "HNT", "MDT": "MDT", "HEPMX": "HEPMX", "HNOG": "HNOG", "EST": "EST", "HAT": "HAT", "GFT": "GFT", "LHST": "LHST", "EAT": "EAT", "HNCU": "HNCU", "NZDT": "NZDT", "HEOG": "HEOG", "AEDT": "AEDT", "GMT": "GMT", "AEST": "AEST", "HECU": "HECU", "VET": "VET", "MST": "MST", "HNPMX": "HNPMX", "CLT": "CLT", "CLST": "CLST", "∅∅∅": "∅∅∅", "AWDT": "AWDT", "HADT": "HADT", "ECT": "ECT", "IST": "IST", "WARST": "WARST", "SAST": "SAST", "CDT": "CDT", "OEZ": "OEZ", "OESZ": "OESZ", "EDT": "EDT", "BOT": "BOT", "PST": "PST", "MYT": "MYT", "ARST": "ARST", "ACDT": "ACDT", "HEPM": "HEPM", "CST": "CST", "JST": "JST", "ACST": "ACST", "UYST": "UYST", "ACWDT": "ACWDT", "WEZ": "WEZ", "WAST": "WAST", "COT": "COT", "HEEG": "HEEG", "ChST": "ChST", "GYT": "GYT", "CHADT": "CHADT", "NZST": "NZST", "TMT": "TMT", "HKST": "HKST", "COST": "COST", "HENOMX": "HENOMX", "AKDT": "AKDT", "LHDT": "LHDT", "HAST": "HAST", "ADT": "ADT", "HNEG": "HNEG", "CAT": "CAT", "MEZ": "MEZ", "JDT": "JDT", "AST": "AST", "WAT": "WAT", "BT": "BT", "SRT": "SRT", "CHAST": "CHAST", "SGT": "SGT", "PDT": "PDT", "MESZ": "MESZ", "WESZ": "WESZ"},
}
}
diff --git a/de/de.go b/de/de.go
index eb0b1053..b21dedb4 100644
--- a/de/de.go
+++ b/de/de.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr."},
erasNarrow: []string{"v. Chr.", "n. Chr."},
erasWide: []string{"v. Chr.", "n. Chr."},
- timezones: map[string]string{"PDT": "Nordamerikanische Westküsten-Sommerzeit", "LHST": "Lord-Howe-Normalzeit", "ACDT": "Zentralaustralische Sommerzeit", "COST": "Kolumbianische Sommerzeit", "HKT": "Hongkong-Normalzeit", "CLT": "Chilenische Normalzeit", "JDT": "Japanische Sommerzeit", "OESZ": "Osteuropäische Sommerzeit", "MST": "Macau-Normalzeit", "AKST": "Alaska-Normalzeit", "GYT": "Guyana-Zeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "HNOG": "Westgrönland-Normalzeit", "WAT": "Westafrikanische Normalzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "MYT": "Malaysische Zeit", "HEOG": "Westgrönland-Sommerzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "NZST": "Neuseeland-Normalzeit", "VET": "Venezuela-Zeit", "SRT": "Suriname-Zeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "JST": "Japanische Normalzeit", "WARST": "Westargentinische Sommerzeit", "UYT": "Uruguyanische Normalzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "MDT": "Macau-Sommerzeit", "HAT": "Neufundland-Sommerzeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "LHDT": "Lord-Howe-Sommerzeit", "IST": "Indische Zeit", "HECU": "Kubanische Sommerzeit", "UYST": "Uruguayanische Sommerzeit", "HNT": "Neufundland-Normalzeit", "ARST": "Argentinische Sommerzeit", "MEZ": "Mitteleuropäische Normalzeit", "WAST": "Westafrikanische Sommerzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "GFT": "Französisch-Guayana-Zeit", "TMT": "Turkmenistan-Normalzeit", "OEZ": "Osteuropäische Normalzeit", "WART": "Westargentinische Normalzeit", "SGT": "Singapur-Zeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "ADT": "Atlantik-Sommerzeit", "WIB": "Westindonesische Zeit", "HKST": "Hongkong-Sommerzeit", "WITA": "Zentralindonesische Zeit", "∅∅∅": "Amazonas-Sommerzeit", "BOT": "Bolivianische Zeit", "TMST": "Turkmenistan-Sommerzeit", "CAT": "Zentralafrikanische Zeit", "COT": "Kolumbianische Normalzeit", "GMT": "Mittlere Greenwich-Zeit", "AWST": "Westaustralische Normalzeit", "ChST": "Chamorro-Zeit", "HEEG": "Ostgrönland-Sommerzeit", "EAT": "Ostafrikanische Zeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "AEST": "Ostaustralische Normalzeit", "ECT": "Ecuadorianische Zeit", "CST": "Nordamerikanische Inland-Normalzeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "AST": "Atlantik-Normalzeit", "HAST": "Hawaii-Aleuten-Normalzeit", "BT": "Bhutan-Zeit", "WEZ": "Westeuropäische Normalzeit", "AWDT": "Westaustralische Sommerzeit", "NZDT": "Neuseeland-Sommerzeit", "SAST": "Südafrikanische Zeit", "CLST": "Chilenische Sommerzeit", "HNEG": "Ostgrönland-Normalzeit", "ACST": "Zentralaustralische Normalzeit", "WIT": "Ostindonesische Zeit", "WESZ": "Westeuropäische Sommerzeit", "MESZ": "Mitteleuropäische Sommerzeit", "CHADT": "Chatham-Sommerzeit", "HNCU": "Kubanische Normalzeit", "AKDT": "Alaska-Sommerzeit", "ART": "Argentinische Normalzeit", "AEDT": "Ostaustralische Sommerzeit", "CHAST": "Chatham-Normalzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit"},
+ timezones: map[string]string{"HEEG": "Ostgrönland-Sommerzeit", "COST": "Kolumbianische Sommerzeit", "MESZ": "Mitteleuropäische Sommerzeit", "JST": "Japanische Normalzeit", "WART": "Westargentinische Normalzeit", "CLT": "Chilenische Normalzeit", "AST": "Atlantik-Normalzeit", "MST": "Macau-Normalzeit", "WAST": "Westafrikanische Sommerzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "GYT": "Guyana-Zeit", "WIB": "Westindonesische Zeit", "CHAST": "Chatham-Normalzeit", "CHADT": "Chatham-Sommerzeit", "SGT": "Singapur-Zeit", "CAT": "Zentralafrikanische Zeit", "ChST": "Chamorro-Zeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "MDT": "Macau-Sommerzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "WIT": "Ostindonesische Zeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "MEZ": "Mitteleuropäische Normalzeit", "VET": "Venezuela-Zeit", "OEZ": "Osteuropäische Normalzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "HAT": "Neufundland-Sommerzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "CST": "Nordamerikanische Inland-Normalzeit", "AWST": "Westaustralische Normalzeit", "GMT": "Mittlere Greenwich-Zeit", "ADT": "Atlantik-Sommerzeit", "WESZ": "Westeuropäische Sommerzeit", "HKST": "Hongkong-Sommerzeit", "BT": "Bhutan-Zeit", "LHDT": "Lord-Howe-Sommerzeit", "SRT": "Suriname-Zeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "WARST": "Westargentinische Sommerzeit", "HEOG": "Westgrönland-Sommerzeit", "TMST": "Turkmenistan-Sommerzeit", "GFT": "Französisch-Guayana-Zeit", "UYST": "Uruguayanische Sommerzeit", "HECU": "Kubanische Sommerzeit", "WEZ": "Westeuropäische Normalzeit", "WAT": "Westafrikanische Normalzeit", "COT": "Kolumbianische Normalzeit", "LHST": "Lord-Howe-Normalzeit", "MYT": "Malaysische Zeit", "WITA": "Zentralindonesische Zeit", "BOT": "Bolivianische Zeit", "IST": "Indische Zeit", "ARST": "Argentinische Sommerzeit", "UYT": "Uruguyanische Normalzeit", "ECT": "Ecuadorianische Zeit", "JDT": "Japanische Sommerzeit", "OESZ": "Osteuropäische Sommerzeit", "AKDT": "Alaska-Sommerzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "HNCU": "Kubanische Normalzeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "CLST": "Chilenische Sommerzeit", "ART": "Argentinische Normalzeit", "HKT": "Hongkong-Normalzeit", "AEDT": "Ostaustralische Sommerzeit", "∅∅∅": "Azoren-Sommerzeit", "ACST": "Zentralaustralische Normalzeit", "HNT": "Neufundland-Normalzeit", "AWDT": "Westaustralische Sommerzeit", "HNOG": "Westgrönland-Normalzeit", "ACDT": "Zentralaustralische Sommerzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "HAST": "Hawaii-Aleuten-Normalzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "HNEG": "Ostgrönland-Normalzeit", "AEST": "Ostaustralische Normalzeit", "NZDT": "Neuseeland-Sommerzeit", "EAT": "Ostafrikanische Zeit", "NZST": "Neuseeland-Normalzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "TMT": "Turkmenistan-Normalzeit", "AKST": "Alaska-Normalzeit", "SAST": "Südafrikanische Zeit"},
}
}
diff --git a/de_AT/de_AT.go b/de_AT/de_AT.go
index 7d02b54d..cdb0b499 100644
--- a/de_AT/de_AT.go
+++ b/de_AT/de_AT.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr."},
erasNarrow: []string{"v. Chr.", "n. Chr."},
erasWide: []string{"v. Chr.", "n. Chr."},
- timezones: map[string]string{"SRT": "Suriname-Zeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "HEOG": "Westgrönland-Sommerzeit", "WITA": "Zentralindonesische Zeit", "WAT": "Westafrikanische Normalzeit", "HNCU": "Kubanische Normalzeit", "SGT": "Singapur-Zeit", "MYT": "Malaysische Zeit", "HAT": "Neufundland-Sommerzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "AWDT": "Westaustralische Sommerzeit", "GMT": "Mittlere Greenwich-Zeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "AEDT": "Ostaustralische Sommerzeit", "CLT": "Chilenische Normalzeit", "CAT": "Zentralafrikanische Zeit", "MST": "Rocky Mountain-Normalzeit", "HKST": "Hongkong-Sommerzeit", "NZDT": "Neuseeland-Sommerzeit", "∅∅∅": "Amazonas-Sommerzeit", "ECT": "Ecuadorianische Zeit", "ChST": "Chamorro-Zeit", "HECU": "Kubanische Sommerzeit", "WIB": "Westindonesische Zeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "AEST": "Ostaustralische Normalzeit", "MESZ": "Mitteleuropäische Sommerzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "WIT": "Ostindonesische Zeit", "HAST": "Hawaii-Aleuten-Normalzeit", "HNT": "Neufundland-Normalzeit", "CHAST": "Chatham-Normalzeit", "CHADT": "Chatham-Sommerzeit", "ADT": "Atlantik-Sommerzeit", "UYST": "Uruguayanische Sommerzeit", "AWST": "Westaustralische Normalzeit", "LHST": "Lord-Howe-Normalzeit", "HNEG": "Ostgrönland-Normalzeit", "GYT": "Guyana-Zeit", "BOT": "Bolivianische Zeit", "WAST": "Westafrikanische Sommerzeit", "BT": "Bhutan-Zeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "HEEG": "Ostgrönland-Sommerzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "IST": "Indische Zeit", "EAT": "Ostafrikanische Zeit", "AST": "Atlantik-Normalzeit", "UYT": "Uruguyanische Normalzeit", "VET": "Venezuela-Zeit", "HNOG": "Westgrönland-Normalzeit", "MEZ": "Mitteleuropäische Normalzeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "LHDT": "Lord-Howe-Sommerzeit", "SAST": "Südafrikanische Zeit", "JDT": "Japanische Sommerzeit", "WARST": "Westargentinische Sommerzeit", "COST": "Kolumbianische Sommerzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "AKDT": "Alaska-Sommerzeit", "WEZ": "Westeuropäische Normalzeit", "WESZ": "Westeuropäische Sommerzeit", "TMT": "Turkmenistan-Normalzeit", "COT": "Kolumbianische Normalzeit", "OEZ": "Osteuropäische Normalzeit", "OESZ": "Osteuropäische Sommerzeit", "WART": "Westargentinische Normalzeit", "AKST": "Alaska-Normalzeit", "CST": "Nordamerikanische Inland-Normalzeit", "MDT": "Rocky-Mountain-Sommerzeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "HKT": "Hongkong-Normalzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "NZST": "Neuseeland-Normalzeit", "CLST": "Chilenische Sommerzeit", "TMST": "Turkmenistan-Sommerzeit", "ACST": "Zentralaustralische Normalzeit", "ACDT": "Zentralaustralische Sommerzeit", "ART": "Argentinische Normalzeit", "ARST": "Argentinische Sommerzeit", "JST": "Japanische Normalzeit", "GFT": "Französisch-Guayana-Zeit"},
+ timezones: map[string]string{"HKT": "Hongkong-Normalzeit", "EAT": "Ostafrikanische Zeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "OEZ": "Osteuropäische Normalzeit", "WEZ": "Westeuropäische Normalzeit", "MYT": "Malaysische Zeit", "TMT": "Turkmenistan-Normalzeit", "COT": "Kolumbianische Normalzeit", "BT": "Bhutan-Zeit", "AKST": "Alaska-Normalzeit", "UYST": "Uruguayanische Sommerzeit", "AWST": "Westaustralische Normalzeit", "MESZ": "Mitteleuropäische Sommerzeit", "HEEG": "Ostgrönland-Sommerzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "SAST": "Südafrikanische Zeit", "LHDT": "Lord-Howe-Sommerzeit", "BOT": "Bolivianische Zeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "HKST": "Hongkong-Sommerzeit", "HNT": "Neufundland-Normalzeit", "WIT": "Ostindonesische Zeit", "CHAST": "Chatham-Normalzeit", "CHADT": "Chatham-Sommerzeit", "NZST": "Neuseeland-Normalzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "AKDT": "Alaska-Sommerzeit", "HECU": "Kubanische Sommerzeit", "WIB": "Westindonesische Zeit", "NZDT": "Neuseeland-Sommerzeit", "WESZ": "Westeuropäische Sommerzeit", "WAT": "Westafrikanische Normalzeit", "∅∅∅": "Azoren-Sommerzeit", "AWDT": "Westaustralische Sommerzeit", "CLST": "Chilenische Sommerzeit", "ACST": "Zentralaustralische Normalzeit", "MDT": "Rocky-Mountain-Sommerzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "JST": "Japanische Normalzeit", "HNOG": "Westgrönland-Normalzeit", "AST": "Atlantik-Normalzeit", "ChST": "Chamorro-Zeit", "ADT": "Atlantik-Sommerzeit", "TMST": "Turkmenistan-Sommerzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "SRT": "Suriname-Zeit", "GYT": "Guyana-Zeit", "HAST": "Hawaii-Aleuten-Normalzeit", "IST": "Indische Zeit", "MEZ": "Mitteleuropäische Normalzeit", "ARST": "Argentinische Sommerzeit", "HNCU": "Kubanische Normalzeit", "CST": "Nordamerikanische Inland-Normalzeit", "CAT": "Zentralafrikanische Zeit", "JDT": "Japanische Sommerzeit", "HEOG": "Westgrönland-Sommerzeit", "OESZ": "Osteuropäische Sommerzeit", "HAT": "Neufundland-Sommerzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "ACDT": "Zentralaustralische Sommerzeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "WARST": "Westargentinische Sommerzeit", "COST": "Kolumbianische Sommerzeit", "WITA": "Zentralindonesische Zeit", "UYT": "Uruguyanische Normalzeit", "VET": "Venezuela-Zeit", "AEST": "Ostaustralische Normalzeit", "LHST": "Lord-Howe-Normalzeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "SGT": "Singapur-Zeit", "WART": "Westargentinische Normalzeit", "ART": "Argentinische Normalzeit", "CLT": "Chilenische Normalzeit", "AEDT": "Ostaustralische Sommerzeit", "MST": "Rocky Mountain-Normalzeit", "GFT": "Französisch-Guayana-Zeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "ECT": "Ecuadorianische Zeit", "GMT": "Mittlere Greenwich-Zeit", "WAST": "Westafrikanische Sommerzeit", "HNEG": "Ostgrönland-Normalzeit"},
}
}
diff --git a/de_BE/de_BE.go b/de_BE/de_BE.go
index 3e5f91e1..ffbfe76d 100644
--- a/de_BE/de_BE.go
+++ b/de_BE/de_BE.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr."},
erasNarrow: []string{"v. Chr.", "n. Chr."},
erasWide: []string{"v. Chr.", "n. Chr."},
- timezones: map[string]string{"ART": "Argentinische Normalzeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "HKST": "Hongkong-Sommerzeit", "WAT": "Westafrikanische Normalzeit", "ECT": "Ecuadorianische Zeit", "TMST": "Turkmenistan-Sommerzeit", "COT": "Kolumbianische Normalzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "WIB": "Westindonesische Zeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "MYT": "Malaysische Zeit", "UYST": "Uruguayanische Sommerzeit", "WIT": "Ostindonesische Zeit", "HEOG": "Westgrönland-Sommerzeit", "NZDT": "Neuseeland-Sommerzeit", "MEZ": "Mitteleuropäische Normalzeit", "TMT": "Turkmenistan-Normalzeit", "AEDT": "Ostaustralische Sommerzeit", "COST": "Kolumbianische Sommerzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "MST": "Macau-Normalzeit", "AWST": "Westaustralische Normalzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "LHST": "Lord-Howe-Normalzeit", "LHDT": "Lord-Howe-Sommerzeit", "EAT": "Ostafrikanische Zeit", "CLST": "Chilenische Sommerzeit", "JST": "Japanische Normalzeit", "JDT": "Japanische Sommerzeit", "GMT": "Mittlere Greenwich-Zeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "HKT": "Hongkong-Normalzeit", "AEST": "Ostaustralische Normalzeit", "NZST": "Neuseeland-Normalzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "AKDT": "Alaska-Sommerzeit", "CST": "Nordamerikanische Inland-Normalzeit", "CHADT": "Chatham-Sommerzeit", "CAT": "Zentralafrikanische Zeit", "WARST": "Westargentinische Sommerzeit", "MDT": "Macau-Sommerzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "ACST": "Zentralaustralische Normalzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "HAT": "Neufundland-Sommerzeit", "AWDT": "Westaustralische Sommerzeit", "HEEG": "Ostgrönland-Sommerzeit", "AST": "Atlantik-Normalzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "CLT": "Chilenische Normalzeit", "∅∅∅": "Amazonas-Sommerzeit", "OEZ": "Osteuropäische Normalzeit", "AKST": "Alaska-Normalzeit", "HAST": "Hawaii-Aleuten-Normalzeit", "ARST": "Argentinische Sommerzeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "ACDT": "Zentralaustralische Sommerzeit", "HECU": "Kubanische Sommerzeit", "GYT": "Guyana-Zeit", "UYT": "Uruguyanische Normalzeit", "VET": "Venezuela-Zeit", "BT": "Bhutan-Zeit", "WESZ": "Westeuropäische Sommerzeit", "SAST": "Südafrikanische Zeit", "WAST": "Westafrikanische Sommerzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "IST": "Indische Zeit", "BOT": "Bolivianische Zeit", "HNEG": "Ostgrönland-Normalzeit", "OESZ": "Osteuropäische Sommerzeit", "WART": "Westargentinische Normalzeit", "HNCU": "Kubanische Normalzeit", "SRT": "Suriname-Zeit", "HNT": "Neufundland-Normalzeit", "CHAST": "Chatham-Normalzeit", "GFT": "Französisch-Guayana-Zeit", "ChST": "Chamorro-Zeit", "ADT": "Atlantik-Sommerzeit", "WEZ": "Westeuropäische Normalzeit", "HNOG": "Westgrönland-Normalzeit", "WITA": "Zentralindonesische Zeit", "MESZ": "Mitteleuropäische Sommerzeit", "SGT": "Singapur-Zeit"},
+ timezones: map[string]string{"GFT": "Französisch-Guayana-Zeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "CST": "Nordamerikanische Inland-Normalzeit", "IST": "Indische Zeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "HEOG": "Westgrönland-Sommerzeit", "WART": "Westargentinische Normalzeit", "WAST": "Westafrikanische Sommerzeit", "MST": "Macau-Normalzeit", "COST": "Kolumbianische Sommerzeit", "AKDT": "Alaska-Sommerzeit", "UYST": "Uruguayanische Sommerzeit", "WEZ": "Westeuropäische Normalzeit", "TMT": "Turkmenistan-Normalzeit", "MDT": "Macau-Sommerzeit", "WITA": "Zentralindonesische Zeit", "JDT": "Japanische Sommerzeit", "ARST": "Argentinische Sommerzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "BT": "Bhutan-Zeit", "TMST": "Turkmenistan-Sommerzeit", "AEST": "Ostaustralische Normalzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "EAT": "Ostafrikanische Zeit", "CLT": "Chilenische Normalzeit", "AST": "Atlantik-Normalzeit", "OEZ": "Osteuropäische Normalzeit", "WIB": "Westindonesische Zeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "MESZ": "Mitteleuropäische Sommerzeit", "HAT": "Neufundland-Sommerzeit", "HECU": "Kubanische Sommerzeit", "BOT": "Bolivianische Zeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "AWST": "Westaustralische Normalzeit", "NZDT": "Neuseeland-Sommerzeit", "VET": "Venezuela-Zeit", "ADT": "Atlantik-Sommerzeit", "OESZ": "Osteuropäische Sommerzeit", "COT": "Kolumbianische Normalzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "CHAST": "Chatham-Normalzeit", "ECT": "Ecuadorianische Zeit", "HNOG": "Westgrönland-Normalzeit", "GMT": "Mittlere Greenwich-Zeit", "ART": "Argentinische Normalzeit", "WAT": "Westafrikanische Normalzeit", "LHST": "Lord-Howe-Normalzeit", "CHADT": "Chatham-Sommerzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "MEZ": "Mitteleuropäische Normalzeit", "JST": "Japanische Normalzeit", "∅∅∅": "Acre-Sommerzeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "AWDT": "Westaustralische Sommerzeit", "AEDT": "Ostaustralische Sommerzeit", "ACDT": "Zentralaustralische Sommerzeit", "HNT": "Neufundland-Normalzeit", "HNEG": "Ostgrönland-Normalzeit", "AKST": "Alaska-Normalzeit", "SAST": "Südafrikanische Zeit", "HNCU": "Kubanische Normalzeit", "CAT": "Zentralafrikanische Zeit", "HKT": "Hongkong-Normalzeit", "ACST": "Zentralaustralische Normalzeit", "HEEG": "Ostgrönland-Sommerzeit", "WARST": "Westargentinische Sommerzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "NZST": "Neuseeland-Normalzeit", "SRT": "Suriname-Zeit", "GYT": "Guyana-Zeit", "WIT": "Ostindonesische Zeit", "SGT": "Singapur-Zeit", "HAST": "Hawaii-Aleuten-Normalzeit", "WESZ": "Westeuropäische Sommerzeit", "HKST": "Hongkong-Sommerzeit", "ChST": "Chamorro-Zeit", "CLST": "Chilenische Sommerzeit", "UYT": "Uruguyanische Normalzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "MYT": "Malaysische Zeit", "LHDT": "Lord-Howe-Sommerzeit"},
}
}
diff --git a/de_CH/de_CH.go b/de_CH/de_CH.go
index a055b02c..7324b73a 100644
--- a/de_CH/de_CH.go
+++ b/de_CH/de_CH.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr."},
erasNarrow: []string{"v. Chr.", "n. Chr."},
erasWide: []string{"v. Chr.", "n. Chr."},
- timezones: map[string]string{"HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "WART": "Westargentinische Normalzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "MESZ": "Mitteleuropäische Sommerzeit", "JST": "Japanische Normalzeit", "HEEG": "Ostgrönland-Sommerzeit", "WAT": "Westafrikanische Normalzeit", "CLST": "Chilenische Sommerzeit", "WAST": "Westafrikanische Sommerzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "WIT": "Ostindonesische Zeit", "HEOG": "Westgrönland-Sommerzeit", "AWDT": "Westaustralische Sommerzeit", "COST": "Kolumbianische Sommerzeit", "MDT": "Macau-Sommerzeit", "CST": "Nordamerikanische Inland-Normalzeit", "AEST": "Ostaustralische Normalzeit", "LHST": "Lord-Howe-Normalzeit", "WARST": "Westargentinische Sommerzeit", "EAT": "Ostafrikanische Zeit", "AST": "Atlantik-Normalzeit", "VET": "Venezuela-Zeit", "BT": "Bhutan-Zeit", "ART": "Argentinische Normalzeit", "NZST": "Neuseeland-Normalzeit", "HNCU": "Kubanische Normalzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "WESZ": "Westeuropäische Sommerzeit", "ACST": "Zentralaustralische Normalzeit", "MEZ": "Mitteleuropäische Normalzeit", "OESZ": "Osteuropäische Sommerzeit", "CAT": "Zentralafrikanische Zeit", "IST": "Indische Zeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "MST": "Macau-Normalzeit", "AKST": "Alaska-Normalzeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "WITA": "Zentralindonesische Zeit", "CHAST": "Chatham-Normalzeit", "CLT": "Chilenische Normalzeit", "AKDT": "Alaska-Sommerzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "HKST": "Hongkong-Sommerzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "TMT": "Turkmenistan-Normalzeit", "SGT": "Singapur-Zeit", "GYT": "Guyana-Zeit", "HAST": "Hawaii-Aleuten-Normalzeit", "HAT": "Neufundland-Sommerzeit", "WEZ": "Westeuropäische Normalzeit", "UYT": "Uruguyanische Normalzeit", "WIB": "Westindonesische Zeit", "ACDT": "Zentralaustralische Sommerzeit", "ChST": "Chamorro-Zeit", "MYT": "Malaysische Zeit", "HNT": "Neufundland-Normalzeit", "HNOG": "Westgrönland-Normalzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "LHDT": "Lord-Howe-Sommerzeit", "ARST": "Argentinische Sommerzeit", "AWST": "Westaustralische Normalzeit", "SAST": "Südafrikanische Zeit", "OEZ": "Osteuropäische Normalzeit", "COT": "Kolumbianische Normalzeit", "GFT": "Französisch-Guayana-Zeit", "HECU": "Kubanische Sommerzeit", "ADT": "Atlantik-Sommerzeit", "HKT": "Hongkong-Normalzeit", "NZDT": "Neuseeland-Sommerzeit", "JDT": "Japanische Sommerzeit", "AEDT": "Ostaustralische Sommerzeit", "BOT": "Bolivianische Zeit", "ECT": "Ecuadorianische Zeit", "SRT": "Suriname-Zeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "CHADT": "Chatham-Sommerzeit", "∅∅∅": "Azoren-Sommerzeit", "GMT": "Mittlere Greenwich-Zeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "UYST": "Uruguayanische Sommerzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "HNEG": "Ostgrönland-Normalzeit", "TMST": "Turkmenistan-Sommerzeit"},
+ timezones: map[string]string{"HNPMX": "Mexiko Pazifikzone-Normalzeit", "WAT": "Westafrikanische Normalzeit", "AKST": "Alaska-Normalzeit", "AEST": "Ostaustralische Normalzeit", "UYT": "Uruguyanische Normalzeit", "EAT": "Ostafrikanische Zeit", "SGT": "Singapur-Zeit", "COT": "Kolumbianische Normalzeit", "NZST": "Neuseeland-Normalzeit", "WESZ": "Westeuropäische Sommerzeit", "HAT": "Neufundland-Sommerzeit", "∅∅∅": "Azoren-Sommerzeit", "ECT": "Ecuadorianische Zeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "CST": "Nordamerikanische Inland-Normalzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "HNT": "Neufundland-Normalzeit", "CLT": "Chilenische Normalzeit", "HEOG": "Westgrönland-Sommerzeit", "AEDT": "Ostaustralische Sommerzeit", "LHDT": "Lord-Howe-Sommerzeit", "VET": "Venezuela-Zeit", "MEZ": "Mitteleuropäische Normalzeit", "WART": "Westargentinische Normalzeit", "ADT": "Atlantik-Sommerzeit", "ART": "Argentinische Normalzeit", "HKST": "Hongkong-Sommerzeit", "LHST": "Lord-Howe-Normalzeit", "AWST": "Westaustralische Normalzeit", "AWDT": "Westaustralische Sommerzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "IST": "Indische Zeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "MESZ": "Mitteleuropäische Sommerzeit", "MYT": "Malaysische Zeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "WIB": "Westindonesische Zeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "WEZ": "Westeuropäische Normalzeit", "WIT": "Ostindonesische Zeit", "HAST": "Hawaii-Aleuten-Normalzeit", "JDT": "Japanische Sommerzeit", "SRT": "Suriname-Zeit", "JST": "Japanische Normalzeit", "COST": "Kolumbianische Sommerzeit", "HNOG": "Westgrönland-Normalzeit", "HKT": "Hongkong-Normalzeit", "BT": "Bhutan-Zeit", "GFT": "Französisch-Guayana-Zeit", "ChST": "Chamorro-Zeit", "UYST": "Uruguayanische Sommerzeit", "ACDT": "Zentralaustralische Sommerzeit", "MDT": "Rocky-Mountain-Sommerzeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "GYT": "Guyana-Zeit", "OESZ": "Osteuropäische Sommerzeit", "TMT": "Turkmenistan-Normalzeit", "ARST": "Argentinische Sommerzeit", "AKDT": "Alaska-Sommerzeit", "NZDT": "Neuseeland-Sommerzeit", "OEZ": "Osteuropäische Normalzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "CAT": "Zentralafrikanische Zeit", "ACST": "Zentralaustralische Normalzeit", "HEEG": "Ostgrönland-Sommerzeit", "MST": "Rocky Mountain-Normalzeit", "SAST": "Südafrikanische Zeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "WARST": "Westargentinische Sommerzeit", "WAST": "Westafrikanische Sommerzeit", "CHAST": "Chatham-Normalzeit", "CHADT": "Chatham-Sommerzeit", "BOT": "Bolivianische Zeit", "CLST": "Chilenische Sommerzeit", "AST": "Atlantik-Normalzeit", "GMT": "Mittlere Greenwich-Zeit", "TMST": "Turkmenistan-Sommerzeit", "WITA": "Zentralindonesische Zeit", "HNCU": "Kubanische Normalzeit", "HECU": "Kubanische Sommerzeit", "HNEG": "Ostgrönland-Normalzeit"},
}
}
diff --git a/de_DE/de_DE.go b/de_DE/de_DE.go
index 3886a946..272d2e0a 100644
--- a/de_DE/de_DE.go
+++ b/de_DE/de_DE.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr."},
erasNarrow: []string{"v. Chr.", "n. Chr."},
erasWide: []string{"v. Chr.", "n. Chr."},
- timezones: map[string]string{"ART": "Argentinische Normalzeit", "LHDT": "Lord-Howe-Sommerzeit", "CLST": "Chilenische Sommerzeit", "EAT": "Ostafrikanische Zeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "HNT": "Neufundland-Normalzeit", "HKST": "Hongkong-Sommerzeit", "CHAST": "Chatham-Normalzeit", "HNCU": "Kubanische Normalzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "WEZ": "Westeuropäische Normalzeit", "HNOG": "Westgrönland-Normalzeit", "CHADT": "Chatham-Sommerzeit", "UYT": "Uruguyanische Normalzeit", "AEDT": "Ostaustralische Sommerzeit", "MEZ": "Mitteleuropäische Normalzeit", "ADT": "Atlantik-Sommerzeit", "JST": "Japanische Normalzeit", "OESZ": "Osteuropäische Sommerzeit", "GMT": "Mittlere Greenwich-Zeit", "BT": "Bhutan-Zeit", "ACST": "Zentralaustralische Normalzeit", "OEZ": "Osteuropäische Normalzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "GFT": "Französisch-Guayana-Zeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "HKT": "Hongkong-Normalzeit", "CAT": "Zentralafrikanische Zeit", "COT": "Kolumbianische Normalzeit", "COST": "Kolumbianische Sommerzeit", "GYT": "Guyana-Zeit", "WIB": "Westindonesische Zeit", "SRT": "Suriname-Zeit", "WESZ": "Westeuropäische Sommerzeit", "HEOG": "Westgrönland-Sommerzeit", "TMT": "Turkmenistan-Normalzeit", "SGT": "Singapur-Zeit", "MYT": "Malaysische Zeit", "AWDT": "Westaustralische Sommerzeit", "NZST": "Neuseeland-Normalzeit", "ChST": "Chamorro-Zeit", "BOT": "Bolivianische Zeit", "ECT": "Ecuadorianische Zeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "CLT": "Chilenische Normalzeit", "SAST": "Südafrikanische Zeit", "JDT": "Japanische Sommerzeit", "HNEG": "Ostgrönland-Normalzeit", "HEEG": "Ostgrönland-Sommerzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "AEST": "Ostaustralische Normalzeit", "AWST": "Westaustralische Normalzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "AKDT": "Alaska-Sommerzeit", "HAST": "Hawaii-Aleuten-Normalzeit", "WITA": "Zentralindonesische Zeit", "∅∅∅": "Amazonas-Sommerzeit", "WARST": "Westargentinische Sommerzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "HECU": "Kubanische Sommerzeit", "MDT": "Macau-Sommerzeit", "CST": "Nordamerikanische Inland-Normalzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "MESZ": "Mitteleuropäische Sommerzeit", "WART": "Westargentinische Normalzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "HAT": "Neufundland-Sommerzeit", "WAST": "Westafrikanische Sommerzeit", "VET": "Venezuela-Zeit", "LHST": "Lord-Howe-Normalzeit", "WAT": "Westafrikanische Normalzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "WIT": "Ostindonesische Zeit", "TMST": "Turkmenistan-Sommerzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "IST": "Indische Zeit", "ACDT": "Zentralaustralische Sommerzeit", "MST": "Macau-Normalzeit", "UYST": "Uruguayanische Sommerzeit", "AKST": "Alaska-Normalzeit", "AST": "Atlantik-Normalzeit", "ARST": "Argentinische Sommerzeit", "NZDT": "Neuseeland-Sommerzeit"},
+ timezones: map[string]string{"WAST": "Westafrikanische Sommerzeit", "AWST": "Westaustralische Normalzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "ECT": "Ecuadorianische Zeit", "∅∅∅": "Acre-Sommerzeit", "GFT": "Französisch-Guayana-Zeit", "UYST": "Uruguayanische Sommerzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "WIT": "Ostindonesische Zeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "JDT": "Japanische Sommerzeit", "TMT": "Turkmenistan-Normalzeit", "WAT": "Westafrikanische Normalzeit", "AKDT": "Alaska-Sommerzeit", "AEST": "Ostaustralische Normalzeit", "SRT": "Suriname-Zeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "ChST": "Chamorro-Zeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "OEZ": "Osteuropäische Normalzeit", "GMT": "Mittlere Greenwich-Zeit", "MDT": "Macau-Sommerzeit", "CHADT": "Chatham-Sommerzeit", "SGT": "Singapur-Zeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "CLST": "Chilenische Sommerzeit", "HNOG": "Westgrönland-Normalzeit", "HNEG": "Ostgrönland-Normalzeit", "CAT": "Zentralafrikanische Zeit", "IST": "Indische Zeit", "BT": "Bhutan-Zeit", "WIB": "Westindonesische Zeit", "CHAST": "Chatham-Normalzeit", "WARST": "Westargentinische Sommerzeit", "ARST": "Argentinische Sommerzeit", "HKST": "Hongkong-Sommerzeit", "ACDT": "Zentralaustralische Sommerzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "HAST": "Hawaii-Aleuten-Normalzeit", "NZDT": "Neuseeland-Sommerzeit", "MEZ": "Mitteleuropäische Normalzeit", "TMST": "Turkmenistan-Sommerzeit", "ACST": "Zentralaustralische Normalzeit", "COST": "Kolumbianische Sommerzeit", "HAT": "Neufundland-Sommerzeit", "HNCU": "Kubanische Normalzeit", "ADT": "Atlantik-Sommerzeit", "WART": "Westargentinische Normalzeit", "ART": "Argentinische Normalzeit", "AEDT": "Ostaustralische Sommerzeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "OESZ": "Osteuropäische Sommerzeit", "WEZ": "Westeuropäische Normalzeit", "HKT": "Hongkong-Normalzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "MESZ": "Mitteleuropäische Sommerzeit", "CST": "Nordamerikanische Inland-Normalzeit", "HEOG": "Westgrönland-Sommerzeit", "WESZ": "Westeuropäische Sommerzeit", "MST": "Macau-Normalzeit", "EAT": "Ostafrikanische Zeit", "HECU": "Kubanische Sommerzeit", "UYT": "Uruguyanische Normalzeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "VET": "Venezuela-Zeit", "WITA": "Zentralindonesische Zeit", "AKST": "Alaska-Normalzeit", "SAST": "Südafrikanische Zeit", "LHDT": "Lord-Howe-Sommerzeit", "BOT": "Bolivianische Zeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "JST": "Japanische Normalzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "AWDT": "Westaustralische Sommerzeit", "CLT": "Chilenische Normalzeit", "MYT": "Malaysische Zeit", "COT": "Kolumbianische Normalzeit", "HNT": "Neufundland-Normalzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "NZST": "Neuseeland-Normalzeit", "AST": "Atlantik-Normalzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "HEEG": "Ostgrönland-Sommerzeit", "LHST": "Lord-Howe-Normalzeit", "GYT": "Guyana-Zeit"},
}
}
diff --git a/de_IT/de_IT.go b/de_IT/de_IT.go
index 6ae3f83b..dc898c6f 100644
--- a/de_IT/de_IT.go
+++ b/de_IT/de_IT.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr."},
erasNarrow: []string{"v. Chr.", "n. Chr."},
erasWide: []string{"v. Chr.", "n. Chr."},
- timezones: map[string]string{"HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "HNCU": "Kubanische Normalzeit", "HECU": "Kubanische Sommerzeit", "MST": "Macau-Normalzeit", "CLT": "Chilenische Normalzeit", "JST": "Japanische Normalzeit", "WART": "Westargentinische Normalzeit", "COST": "Kolumbianische Sommerzeit", "AKST": "Alaska-Normalzeit", "CST": "Nordamerikanische Inland-Normalzeit", "HNOG": "Westgrönland-Normalzeit", "AWST": "Westaustralische Normalzeit", "SAST": "Südafrikanische Zeit", "HNEG": "Ostgrönland-Normalzeit", "ACST": "Zentralaustralische Normalzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "CHAST": "Chatham-Normalzeit", "CAT": "Zentralafrikanische Zeit", "WARST": "Westargentinische Sommerzeit", "HNT": "Neufundland-Normalzeit", "HAT": "Neufundland-Sommerzeit", "OESZ": "Osteuropäische Sommerzeit", "GYT": "Guyana-Zeit", "AKDT": "Alaska-Sommerzeit", "HEOG": "Westgrönland-Sommerzeit", "AEST": "Ostaustralische Normalzeit", "HKT": "Hongkong-Normalzeit", "WITA": "Zentralindonesische Zeit", "LHST": "Lord-Howe-Normalzeit", "ARST": "Argentinische Sommerzeit", "NZST": "Neuseeland-Normalzeit", "WIT": "Ostindonesische Zeit", "VET": "Venezuela-Zeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "NZDT": "Neuseeland-Sommerzeit", "CHADT": "Chatham-Sommerzeit", "JDT": "Japanische Sommerzeit", "OEZ": "Osteuropäische Normalzeit", "AWDT": "Westaustralische Sommerzeit", "MEZ": "Mitteleuropäische Normalzeit", "BOT": "Bolivianische Zeit", "BT": "Bhutan-Zeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "HKST": "Hongkong-Sommerzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "ADT": "Atlantik-Sommerzeit", "HAST": "Hawaii-Aleuten-Normalzeit", "EAT": "Ostafrikanische Zeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "UYT": "Uruguyanische Normalzeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "CLST": "Chilenische Sommerzeit", "TMT": "Turkmenistan-Normalzeit", "TMST": "Turkmenistan-Sommerzeit", "LHDT": "Lord-Howe-Sommerzeit", "ECT": "Ecuadorianische Zeit", "COT": "Kolumbianische Normalzeit", "ART": "Argentinische Normalzeit", "MESZ": "Mitteleuropäische Sommerzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "GMT": "Mittlere Greenwich-Zeit", "SRT": "Suriname-Zeit", "ChST": "Chamorro-Zeit", "HEEG": "Ostgrönland-Sommerzeit", "GFT": "Französisch-Guayana-Zeit", "WAT": "Westafrikanische Normalzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "AST": "Atlantik-Normalzeit", "WESZ": "Westeuropäische Sommerzeit", "AEDT": "Ostaustralische Sommerzeit", "IST": "Indische Zeit", "ACDT": "Zentralaustralische Sommerzeit", "WAST": "Westafrikanische Sommerzeit", "SGT": "Singapur-Zeit", "MDT": "Macau-Sommerzeit", "UYST": "Uruguayanische Sommerzeit", "WIB": "Westindonesische Zeit", "∅∅∅": "Amazonas-Sommerzeit", "MYT": "Malaysische Zeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "WEZ": "Westeuropäische Normalzeit"},
+ timezones: map[string]string{"GMT": "Mittlere Greenwich-Zeit", "HKST": "Hongkong-Sommerzeit", "COT": "Kolumbianische Normalzeit", "HNEG": "Ostgrönland-Normalzeit", "UYT": "Uruguyanische Normalzeit", "WIB": "Westindonesische Zeit", "WEZ": "Westeuropäische Normalzeit", "CLST": "Chilenische Sommerzeit", "SAST": "Südafrikanische Zeit", "VET": "Venezuela-Zeit", "ADT": "Atlantik-Sommerzeit", "ARST": "Argentinische Sommerzeit", "COST": "Kolumbianische Sommerzeit", "HEEG": "Ostgrönland-Sommerzeit", "UYST": "Uruguayanische Sommerzeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "WARST": "Westargentinische Sommerzeit", "WAST": "Westafrikanische Sommerzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "TMST": "Turkmenistan-Sommerzeit", "AKDT": "Alaska-Sommerzeit", "EAT": "Ostafrikanische Zeit", "MESZ": "Mitteleuropäische Sommerzeit", "MST": "Macau-Normalzeit", "ACDT": "Zentralaustralische Sommerzeit", "AEST": "Ostaustralische Normalzeit", "WIT": "Ostindonesische Zeit", "JDT": "Japanische Sommerzeit", "TMT": "Turkmenistan-Normalzeit", "OESZ": "Osteuropäische Sommerzeit", "MDT": "Macau-Sommerzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "ACST": "Zentralaustralische Normalzeit", "HNT": "Neufundland-Normalzeit", "ChST": "Chamorro-Zeit", "LHDT": "Lord-Howe-Sommerzeit", "AST": "Atlantik-Normalzeit", "IST": "Indische Zeit", "WESZ": "Westeuropäische Sommerzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "HAT": "Neufundland-Sommerzeit", "HNCU": "Kubanische Normalzeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "OEZ": "Osteuropäische Normalzeit", "WART": "Westargentinische Normalzeit", "CLT": "Chilenische Normalzeit", "WAT": "Westafrikanische Normalzeit", "∅∅∅": "Acre-Sommerzeit", "WITA": "Zentralindonesische Zeit", "CHAST": "Chatham-Normalzeit", "HEOG": "Westgrönland-Sommerzeit", "MEZ": "Mitteleuropäische Normalzeit", "BOT": "Bolivianische Zeit", "AEDT": "Ostaustralische Sommerzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "SGT": "Singapur-Zeit", "CAT": "Zentralafrikanische Zeit", "NZDT": "Neuseeland-Sommerzeit", "AKST": "Alaska-Normalzeit", "GFT": "Französisch-Guayana-Zeit", "LHST": "Lord-Howe-Normalzeit", "CST": "Nordamerikanische Inland-Normalzeit", "AWST": "Westaustralische Normalzeit", "HNOG": "Westgrönland-Normalzeit", "BT": "Bhutan-Zeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "SRT": "Suriname-Zeit", "MYT": "Malaysische Zeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "HKT": "Hongkong-Normalzeit", "HECU": "Kubanische Sommerzeit", "AWDT": "Westaustralische Sommerzeit", "CHADT": "Chatham-Sommerzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "ART": "Argentinische Normalzeit", "JST": "Japanische Normalzeit", "HAST": "Hawaii-Aleuten-Normalzeit", "ECT": "Ecuadorianische Zeit", "NZST": "Neuseeland-Normalzeit", "GYT": "Guyana-Zeit"},
}
}
diff --git a/de_LI/de_LI.go b/de_LI/de_LI.go
index e55b6416..26014b60 100644
--- a/de_LI/de_LI.go
+++ b/de_LI/de_LI.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr."},
erasNarrow: []string{"v. Chr.", "n. Chr."},
erasWide: []string{"v. Chr.", "n. Chr."},
- timezones: map[string]string{"HKST": "Hongkong-Sommerzeit", "∅∅∅": "Amazonas-Sommerzeit", "TMST": "Turkmenistan-Sommerzeit", "VET": "Venezuela-Zeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "CHAST": "Chatham-Normalzeit", "WIB": "Westindonesische Zeit", "ART": "Argentinische Normalzeit", "NZST": "Neuseeland-Normalzeit", "HAST": "Hawaii-Aleuten-Normalzeit", "ARST": "Argentinische Sommerzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "JST": "Japanische Normalzeit", "AST": "Atlantik-Normalzeit", "AKST": "Alaska-Normalzeit", "HNT": "Neufundland-Normalzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "WARST": "Westargentinische Sommerzeit", "MST": "Macau-Normalzeit", "MYT": "Malaysische Zeit", "HEOG": "Westgrönland-Sommerzeit", "TMT": "Turkmenistan-Normalzeit", "ACDT": "Zentralaustralische Sommerzeit", "WART": "Westargentinische Normalzeit", "MDT": "Macau-Sommerzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "HNOG": "Westgrönland-Normalzeit", "LHST": "Lord-Howe-Normalzeit", "LHDT": "Lord-Howe-Sommerzeit", "SAST": "Südafrikanische Zeit", "BOT": "Bolivianische Zeit", "WAT": "Westafrikanische Normalzeit", "HECU": "Kubanische Sommerzeit", "BT": "Bhutan-Zeit", "CLST": "Chilenische Sommerzeit", "GFT": "Französisch-Guayana-Zeit", "HNEG": "Ostgrönland-Normalzeit", "SGT": "Singapur-Zeit", "UYT": "Uruguyanische Normalzeit", "CHADT": "Chatham-Sommerzeit", "WEZ": "Westeuropäische Normalzeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "WIT": "Ostindonesische Zeit", "AEDT": "Ostaustralische Sommerzeit", "CLT": "Chilenische Normalzeit", "OEZ": "Osteuropäische Normalzeit", "ECT": "Ecuadorianische Zeit", "CAT": "Zentralafrikanische Zeit", "WAST": "Westafrikanische Sommerzeit", "HNCU": "Kubanische Normalzeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "CST": "Nordamerikanische Inland-Normalzeit", "MEZ": "Mitteleuropäische Normalzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "AKDT": "Alaska-Sommerzeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "ChST": "Chamorro-Zeit", "EAT": "Ostafrikanische Zeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "ADT": "Atlantik-Sommerzeit", "GYT": "Guyana-Zeit", "AWST": "Westaustralische Normalzeit", "OESZ": "Osteuropäische Sommerzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "UYST": "Uruguayanische Sommerzeit", "WITA": "Zentralindonesische Zeit", "SRT": "Suriname-Zeit", "AWDT": "Westaustralische Sommerzeit", "NZDT": "Neuseeland-Sommerzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "HKT": "Hongkong-Normalzeit", "HEEG": "Ostgrönland-Sommerzeit", "ACST": "Zentralaustralische Normalzeit", "COT": "Kolumbianische Normalzeit", "COST": "Kolumbianische Sommerzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "AEST": "Ostaustralische Normalzeit", "WESZ": "Westeuropäische Sommerzeit", "MESZ": "Mitteleuropäische Sommerzeit", "IST": "Indische Zeit", "JDT": "Japanische Sommerzeit", "GMT": "Mittlere Greenwich-Zeit", "HAT": "Neufundland-Sommerzeit"},
+ timezones: map[string]string{"AEST": "Ostaustralische Normalzeit", "∅∅∅": "Azoren-Sommerzeit", "WIT": "Ostindonesische Zeit", "SGT": "Singapur-Zeit", "NZST": "Neuseeland-Normalzeit", "OESZ": "Osteuropäische Sommerzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "MST": "Rocky Mountain-Normalzeit", "HKST": "Hongkong-Sommerzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "MESZ": "Mitteleuropäische Sommerzeit", "TMT": "Turkmenistan-Normalzeit", "HNCU": "Kubanische Normalzeit", "ChST": "Chamorro-Zeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "EAT": "Ostafrikanische Zeit", "JST": "Japanische Normalzeit", "MDT": "Rocky-Mountain-Sommerzeit", "JDT": "Japanische Sommerzeit", "ADT": "Atlantik-Sommerzeit", "MEZ": "Mitteleuropäische Normalzeit", "SAST": "Südafrikanische Zeit", "AWDT": "Westaustralische Sommerzeit", "HNOG": "Westgrönland-Normalzeit", "AKST": "Alaska-Normalzeit", "AWST": "Westaustralische Normalzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "GMT": "Mittlere Greenwich-Zeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "WIB": "Westindonesische Zeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "CAT": "Zentralafrikanische Zeit", "IST": "Indische Zeit", "VET": "Venezuela-Zeit", "BT": "Bhutan-Zeit", "HNT": "Neufundland-Normalzeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "CLST": "Chilenische Sommerzeit", "COST": "Kolumbianische Sommerzeit", "HEEG": "Ostgrönland-Sommerzeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "HECU": "Kubanische Sommerzeit", "CST": "Nordamerikanische Inland-Normalzeit", "CHADT": "Chatham-Sommerzeit", "OEZ": "Osteuropäische Normalzeit", "WESZ": "Westeuropäische Sommerzeit", "AEDT": "Ostaustralische Sommerzeit", "CHAST": "Chatham-Normalzeit", "WART": "Westargentinische Normalzeit", "WARST": "Westargentinische Sommerzeit", "CLT": "Chilenische Normalzeit", "WEZ": "Westeuropäische Normalzeit", "ART": "Argentinische Normalzeit", "HKT": "Hongkong-Normalzeit", "LHDT": "Lord-Howe-Sommerzeit", "SRT": "Suriname-Zeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "BOT": "Bolivianische Zeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "TMST": "Turkmenistan-Sommerzeit", "UYT": "Uruguyanische Normalzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "MYT": "Malaysische Zeit", "HEOG": "Westgrönland-Sommerzeit", "WAST": "Westafrikanische Sommerzeit", "GFT": "Französisch-Guayana-Zeit", "LHST": "Lord-Howe-Normalzeit", "ACST": "Zentralaustralische Normalzeit", "COT": "Kolumbianische Normalzeit", "HAT": "Neufundland-Sommerzeit", "UYST": "Uruguayanische Sommerzeit", "ARST": "Argentinische Sommerzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "ECT": "Ecuadorianische Zeit", "WAT": "Westafrikanische Normalzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "NZDT": "Neuseeland-Sommerzeit", "AKDT": "Alaska-Sommerzeit", "GYT": "Guyana-Zeit", "HAST": "Hawaii-Aleuten-Normalzeit", "AST": "Atlantik-Normalzeit", "ACDT": "Zentralaustralische Sommerzeit", "HNEG": "Ostgrönland-Normalzeit", "WITA": "Zentralindonesische Zeit"},
}
}
diff --git a/de_LU/de_LU.go b/de_LU/de_LU.go
index 4e05dc8a..6bfa87fc 100644
--- a/de_LU/de_LU.go
+++ b/de_LU/de_LU.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr."},
erasNarrow: []string{"v. Chr.", "n. Chr."},
erasWide: []string{"v. Chr.", "n. Chr."},
- timezones: map[string]string{"AKDT": "Alaska-Sommerzeit", "BT": "Bhutan-Zeit", "OEZ": "Osteuropäische Normalzeit", "COT": "Kolumbianische Normalzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "HAT": "Neufundland-Sommerzeit", "AEDT": "Ostaustralische Sommerzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "GMT": "Mittlere Greenwich-Zeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "MEZ": "Mitteleuropäische Normalzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "HNT": "Neufundland-Normalzeit", "WITA": "Zentralindonesische Zeit", "LHDT": "Lord-Howe-Sommerzeit", "WAST": "Westafrikanische Sommerzeit", "OESZ": "Osteuropäische Sommerzeit", "NZST": "Neuseeland-Normalzeit", "CHAST": "Chatham-Normalzeit", "CLT": "Chilenische Normalzeit", "HEEG": "Ostgrönland-Sommerzeit", "COST": "Kolumbianische Sommerzeit", "ADT": "Atlantik-Sommerzeit", "UYT": "Uruguyanische Normalzeit", "HKT": "Hongkong-Normalzeit", "MESZ": "Mitteleuropäische Sommerzeit", "IST": "Indische Zeit", "HECU": "Kubanische Sommerzeit", "ARST": "Argentinische Sommerzeit", "HKST": "Hongkong-Sommerzeit", "WAT": "Westafrikanische Normalzeit", "UYST": "Uruguayanische Sommerzeit", "VET": "Venezuela-Zeit", "NZDT": "Neuseeland-Sommerzeit", "CLST": "Chilenische Sommerzeit", "ACST": "Zentralaustralische Normalzeit", "WIT": "Ostindonesische Zeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "TMT": "Turkmenistan-Normalzeit", "ACDT": "Zentralaustralische Sommerzeit", "ART": "Argentinische Normalzeit", "WARST": "Westargentinische Sommerzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "AST": "Atlantik-Normalzeit", "GYT": "Guyana-Zeit", "AKST": "Alaska-Normalzeit", "HAST": "Hawaii-Aleuten-Normalzeit", "SRT": "Suriname-Zeit", "CAT": "Zentralafrikanische Zeit", "∅∅∅": "Azoren-Sommerzeit", "AWST": "Westaustralische Normalzeit", "AWDT": "Westaustralische Sommerzeit", "HNEG": "Ostgrönland-Normalzeit", "GFT": "Französisch-Guayana-Zeit", "WIB": "Westindonesische Zeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "CHADT": "Chatham-Sommerzeit", "SAST": "Südafrikanische Zeit", "JST": "Japanische Normalzeit", "TMST": "Turkmenistan-Sommerzeit", "SGT": "Singapur-Zeit", "MST": "Macau-Normalzeit", "MDT": "Macau-Sommerzeit", "BOT": "Bolivianische Zeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "WESZ": "Westeuropäische Sommerzeit", "AEST": "Ostaustralische Normalzeit", "ChST": "Chamorro-Zeit", "EAT": "Ostafrikanische Zeit", "HNCU": "Kubanische Normalzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "MYT": "Malaysische Zeit", "HNOG": "Westgrönland-Normalzeit", "HEOG": "Westgrönland-Sommerzeit", "WART": "Westargentinische Normalzeit", "CST": "Nordamerikanische Inland-Normalzeit", "WEZ": "Westeuropäische Normalzeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "LHST": "Lord-Howe-Normalzeit", "JDT": "Japanische Sommerzeit", "ECT": "Ecuadorianische Zeit"},
+ timezones: map[string]string{"AKST": "Alaska-Normalzeit", "HNCU": "Kubanische Normalzeit", "WIT": "Ostindonesische Zeit", "MEZ": "Mitteleuropäische Normalzeit", "HNOG": "Westgrönland-Normalzeit", "MYT": "Malaysische Zeit", "AEDT": "Ostaustralische Sommerzeit", "UYST": "Uruguayanische Sommerzeit", "GYT": "Guyana-Zeit", "ART": "Argentinische Normalzeit", "ARST": "Argentinische Sommerzeit", "HKT": "Hongkong-Normalzeit", "AEST": "Ostaustralische Normalzeit", "SAST": "Südafrikanische Zeit", "AWDT": "Westaustralische Sommerzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "WART": "Westargentinische Normalzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "HAST": "Hawaii-Aleuten-Normalzeit", "CLT": "Chilenische Normalzeit", "GMT": "Mittlere Greenwich-Zeit", "LHST": "Lord-Howe-Normalzeit", "BOT": "Bolivianische Zeit", "WAT": "Westafrikanische Normalzeit", "COST": "Kolumbianische Sommerzeit", "OESZ": "Osteuropäische Sommerzeit", "TMST": "Turkmenistan-Sommerzeit", "ACST": "Zentralaustralische Normalzeit", "ACDT": "Zentralaustralische Sommerzeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "MESZ": "Mitteleuropäische Sommerzeit", "JDT": "Japanische Sommerzeit", "BT": "Bhutan-Zeit", "UYT": "Uruguyanische Normalzeit", "SRT": "Suriname-Zeit", "HECU": "Kubanische Sommerzeit", "WARST": "Westargentinische Sommerzeit", "HEOG": "Westgrönland-Sommerzeit", "ADT": "Atlantik-Sommerzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "HAT": "Neufundland-Sommerzeit", "LHDT": "Lord-Howe-Sommerzeit", "ECT": "Ecuadorianische Zeit", "CAT": "Zentralafrikanische Zeit", "VET": "Venezuela-Zeit", "HNT": "Neufundland-Normalzeit", "MDT": "Macau-Sommerzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "WITA": "Zentralindonesische Zeit", "EAT": "Ostafrikanische Zeit", "∅∅∅": "Brasília-Sommerzeit", "IST": "Indische Zeit", "JST": "Japanische Normalzeit", "OEZ": "Osteuropäische Normalzeit", "HNEG": "Ostgrönland-Normalzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "CHAST": "Chatham-Normalzeit", "NZST": "Neuseeland-Normalzeit", "NZDT": "Neuseeland-Sommerzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "WIB": "Westindonesische Zeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "WESZ": "Westeuropäische Sommerzeit", "HKST": "Hongkong-Sommerzeit", "AKDT": "Alaska-Sommerzeit", "ChST": "Chamorro-Zeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "AST": "Atlantik-Normalzeit", "COT": "Kolumbianische Normalzeit", "SGT": "Singapur-Zeit", "WEZ": "Westeuropäische Normalzeit", "WAST": "Westafrikanische Sommerzeit", "AWST": "Westaustralische Normalzeit", "TMT": "Turkmenistan-Normalzeit", "MST": "Macau-Normalzeit", "HEEG": "Ostgrönland-Sommerzeit", "CHADT": "Chatham-Sommerzeit", "CLST": "Chilenische Sommerzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "GFT": "Französisch-Guayana-Zeit", "CST": "Nordamerikanische Inland-Normalzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit"},
}
}
diff --git a/dje/dje.go b/dje/dje.go
index a1d0b50b..c7a1e470 100644
--- a/dje/dje.go
+++ b/dje/dje.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"IJ", "IZ"},
erasNarrow: []string{"", ""},
erasWide: []string{"Isaa jine", "Isaa zamanoo"},
- timezones: map[string]string{"SAST": "SAST", "ChST": "ChST", "MST": "MST", "AEST": "AEST", "NZST": "NZST", "HNOG": "HNOG", "AWDT": "AWDT", "HKST": "HKST", "NZDT": "NZDT", "WARST": "WARST", "UYST": "UYST", "BT": "BT", "WEZ": "WEZ", "CHADT": "CHADT", "JDT": "JDT", "ACST": "ACST", "EAT": "EAT", "HENOMX": "HENOMX", "CHAST": "CHAST", "MESZ": "MESZ", "HNCU": "HNCU", "EST": "EST", "WIB": "WIB", "HNT": "HNT", "ACDT": "ACDT", "AKDT": "AKDT", "WITA": "WITA", "CLT": "CLT", "HECU": "HECU", "MDT": "MDT", "PDT": "PDT", "CAT": "CAT", "GMT": "GMT", "UYT": "UYT", "PST": "PST", "GFT": "GFT", "COT": "COT", "SGT": "SGT", "HNPMX": "HNPMX", "CDT": "CDT", "HAST": "HAST", "SRT": "SRT", "HAT": "HAT", "IST": "IST", "BOT": "BOT", "HEEG": "HEEG", "WART": "WART", "ART": "ART", "CLST": "CLST", "JST": "JST", "ECT": "ECT", "ADT": "ADT", "ACWST": "ACWST", "HEPM": "HEPM", "AEDT": "AEDT", "HNEG": "HNEG", "AKST": "AKST", "CST": "CST", "GYT": "GYT", "VET": "VET", "WESZ": "WESZ", "ARST": "ARST", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "WAT": "WAT", "HEPMX": "HEPMX", "AST": "AST", "AWST": "AWST", "HKT": "HKT", "MEZ": "MEZ", "LHST": "LHST", "HADT": "HADT", "WAST": "WAST", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "EDT": "EDT", "MYT": "MYT", "WIT": "WIT", "TMT": "TMT", "TMST": "TMST", "OEZ": "OEZ", "COST": "COST", "ACWDT": "ACWDT", "HNPM": "HNPM", "LHDT": "LHDT"},
+ timezones: map[string]string{"HNEG": "HNEG", "AEST": "AEST", "EAT": "EAT", "NZDT": "NZDT", "JDT": "JDT", "CHAST": "CHAST", "ADT": "ADT", "GMT": "GMT", "ACST": "ACST", "OEZ": "OEZ", "WART": "WART", "HENOMX": "HENOMX", "HAT": "HAT", "HNPM": "HNPM", "LHST": "LHST", "WIB": "WIB", "PST": "PST", "BT": "BT", "∅∅∅": "∅∅∅", "LHDT": "LHDT", "HKT": "HKT", "COST": "COST", "HNT": "HNT", "AKST": "AKST", "ACWDT": "ACWDT", "JST": "JST", "ART": "ART", "AEDT": "AEDT", "ACWST": "ACWST", "TMST": "TMST", "EDT": "EDT", "HECU": "HECU", "CST": "CST", "OESZ": "OESZ", "WAST": "WAST", "ACDT": "ACDT", "HEPMX": "HEPMX", "CHADT": "CHADT", "SGT": "SGT", "CAT": "CAT", "CLT": "CLT", "GFT": "GFT", "MEZ": "MEZ", "HEEG": "HEEG", "AWST": "AWST", "IST": "IST", "HEOG": "HEOG", "MYT": "MYT", "TMT": "TMT", "WAT": "WAT", "WITA": "WITA", "CDT": "CDT", "AWDT": "AWDT", "HADT": "HADT", "WESZ": "WESZ", "GYT": "GYT", "WARST": "WARST", "HNNOMX": "HNNOMX", "MDT": "MDT", "SAST": "SAST", "HNPMX": "HNPMX", "ECT": "ECT", "COT": "COT", "VET": "VET", "CLST": "CLST", "AST": "AST", "HEPM": "HEPM", "WIT": "WIT", "PDT": "PDT", "HAST": "HAST", "NZST": "NZST", "WEZ": "WEZ", "ARST": "ARST", "BOT": "BOT", "MESZ": "MESZ", "MST": "MST", "UYT": "UYT", "UYST": "UYST", "SRT": "SRT", "HNCU": "HNCU", "AKDT": "AKDT", "ChST": "ChST", "HNOG": "HNOG", "EST": "EST", "HKST": "HKST"},
}
}
diff --git a/dje_NE/dje_NE.go b/dje_NE/dje_NE.go
index a133bd54..2c6863bc 100644
--- a/dje_NE/dje_NE.go
+++ b/dje_NE/dje_NE.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"IJ", "IZ"},
erasNarrow: []string{"", ""},
erasWide: []string{"Isaa jine", "Isaa zamanoo"},
- timezones: map[string]string{"GYT": "GYT", "MEZ": "MEZ", "LHST": "LHST", "ChST": "ChST", "HNEG": "HNEG", "HNPMX": "HNPMX", "NZST": "NZST", "CHADT": "CHADT", "SAST": "SAST", "OEZ": "OEZ", "WART": "WART", "MESZ": "MESZ", "HKT": "HKT", "NZDT": "NZDT", "HEOG": "HEOG", "ACWST": "ACWST", "HNT": "HNT", "AEST": "AEST", "COT": "COT", "UYT": "UYT", "AEDT": "AEDT", "CHAST": "CHAST", "HNOG": "HNOG", "MST": "MST", "CDT": "CDT", "AWDT": "AWDT", "BOT": "BOT", "HEEG": "HEEG", "HENOMX": "HENOMX", "GMT": "GMT", "MYT": "MYT", "AKDT": "AKDT", "VET": "VET", "HNPM": "HNPM", "CAT": "CAT", "AST": "AST", "UYST": "UYST", "WIB": "WIB", "PST": "PST", "ACWDT": "ACWDT", "IST": "IST", "ACST": "ACST", "ACDT": "ACDT", "ADT": "ADT", "OESZ": "OESZ", "HAT": "HAT", "TMST": "TMST", "EAT": "EAT", "WAT": "WAT", "HNNOMX": "HNNOMX", "EST": "EST", "WIT": "WIT", "ART": "ART", "AWST": "AWST", "JST": "JST", "JDT": "JDT", "AKST": "AKST", "WEZ": "WEZ", "HKST": "HKST", "WITA": "WITA", "HEPM": "HEPM", "TMT": "TMT", "PDT": "PDT", "LHDT": "LHDT", "CLT": "CLT", "WARST": "WARST", "SGT": "SGT", "EDT": "EDT", "MDT": "MDT", "HAST": "HAST", "HADT": "HADT", "SRT": "SRT", "WESZ": "WESZ", "ECT": "ECT", "∅∅∅": "∅∅∅", "CST": "CST", "CLST": "CLST", "HNCU": "HNCU", "BT": "BT", "GFT": "GFT", "WAST": "WAST", "HECU": "HECU", "ARST": "ARST", "COST": "COST", "HEPMX": "HEPMX"},
+ timezones: map[string]string{"GMT": "GMT", "WIB": "WIB", "PST": "PST", "OESZ": "OESZ", "HEEG": "HEEG", "∅∅∅": "∅∅∅", "TMT": "TMT", "WIT": "WIT", "ECT": "ECT", "PDT": "PDT", "HADT": "HADT", "CAT": "CAT", "IST": "IST", "MESZ": "MESZ", "HKST": "HKST", "BT": "BT", "HNPM": "HNPM", "HNPMX": "HNPMX", "AEDT": "AEDT", "NZST": "NZST", "ACDT": "ACDT", "GFT": "GFT", "HAST": "HAST", "UYT": "UYT", "MYT": "MYT", "WARST": "WARST", "ADT": "ADT", "WEZ": "WEZ", "WAT": "WAT", "AKST": "AKST", "AEST": "AEST", "HECU": "HECU", "CST": "CST", "CDT": "CDT", "ACWDT": "ACWDT", "HNOG": "HNOG", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HNCU": "HNCU", "HEOG": "HEOG", "ARST": "ARST", "HKT": "HKT", "COT": "COT", "HNT": "HNT", "JST": "JST", "CLST": "CLST", "TMST": "TMST", "MDT": "MDT", "COST": "COST", "AWST": "AWST", "CHAST": "CHAST", "ART": "ART", "HAT": "HAT", "AKDT": "AKDT", "SAST": "SAST", "LHDT": "LHDT", "AST": "AST", "MST": "MST", "HEPM": "HEPM", "SRT": "SRT", "GYT": "GYT", "BOT": "BOT", "NZDT": "NZDT", "HEPMX": "HEPMX", "AWDT": "AWDT", "SGT": "SGT", "VET": "VET", "WESZ": "WESZ", "EDT": "EDT", "ChST": "ChST", "UYST": "UYST", "LHST": "LHST", "ACWST": "ACWST", "WITA": "WITA", "MEZ": "MEZ", "WART": "WART", "CLT": "CLT", "WAST": "WAST", "EST": "EST", "ACST": "ACST", "HNEG": "HNEG", "CHADT": "CHADT", "JDT": "JDT", "EAT": "EAT"},
}
}
diff --git a/dsb/dsb.go b/dsb/dsb.go
index 27bfc196..968e0742 100644
--- a/dsb/dsb.go
+++ b/dsb/dsb.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"pś.Chr.n.", "pó Chr.n."},
erasNarrow: []string{"", ""},
erasWide: []string{"pśed Kristusowym naroźenim", "pó Kristusowem naroźenju"},
- timezones: map[string]string{"HKT": "Hongkongski standardny cas", "HENOMX": "Mexiski dłujkowjacorny lěśojski cas", "NZST": "Nowoseelandski standardny cas", "CHAST": "Chathamski standardny cas", "OEZ": "Pódzajtšnoeuropski standardny cas", "OESZ": "Pódzajtšnoeuropski lěśojski cas", "COST": "Kolumbiski lěśojski cas", "AKST": "Alaskojski standardny cas", "HADT": "Hawaiisko-aleutski lěśojski cas", "WITA": "Srjejźoindoneski cas", "AWDT": "Pódwjacornoawstralski lěśojski cas", "ACDT": "Srjejźoawstralski lěśojski cas", "EST": "Pódpołnocnoameriski pódzajtšny standardny cas", "HAST": "Hawaiisko-aleutski standardny cas", "AEST": "Pódzajtšnoawstralski standardny cas", "AEDT": "Pódzajtšnoawstralski lěśojski cas", "NZDT": "Nowoseelandski lěśojski cas", "CLT": "Chilski standardny cas", "GFT": "Francojskoguyański cas", "WAST": "Pódwjacornoafriski lěśojski cas", "HNNOMX": "Mexiski dłujkowjacorny standardny cas", "MDT": "MDT", "SRT": "Surinamski cas", "ACWDT": "Srjejźopódwjacorny awstralski lěśojski cas", "TMST": "Turkmeniski lěśojski cas", "CDT": "Pódpołnocnoameriski centralny lěśojski cas", "UYT": "Uruguayski standardny cas", "MESZ": "Srjejźoeuropski lěśojski cas", "HNOG": "Pódwjacornogrönlandski standardny cas", "CHADT": "Chathamski lěśojski cas", "CLST": "Chilski lěśojski cas", "TMT": "Turkmeniski standardny cas", "ChST": "Chamorrski cas", "GMT": "Greenwichski cas", "ADT": "Atlantiski lěśojski cas", "MYT": "Malajziski cas", "WAT": "Pódwjacornoafriski standardny cas", "ECT": "Ekuadorski cas", "WART": "Pódwjacornoargentinski standardny cas", "AWST": "Pódwjacornoawstralski standardny cas", "IST": "Indiski cas", "HNEG": "Pódzajtšnogrönlandski standardny cas", "HNCU": "Kubański standardny cas", "∅∅∅": "Acorski lěśojski cas", "GYT": "Guyański cas", "HECU": "Kubański lěśojski cas", "WIB": "Pódwjacornoindoneski cas", "JDT": "Japański lěśojski cas", "ART": "Argentinski standardny cas", "HEPM": "St.-Pierre-a-Miqueloński lěśojski cas", "LHST": "Standardny cas kupy Lord-Howe", "SAST": "Pódpołdnjowoafriski cas", "JST": "Japański standardny cas", "SGT": "Singapurski cas", "WIT": "Pódzajtšnoindoneski", "ACWST": "Srjejźopódwjacorny awstralski standardny cas", "LHDT": "lěśojski cas kupy Lord-Howe", "CAT": "Srjejźoafriski cas", "HEPMX": "Mexiski pacifiski lěśojski cas", "BT": "Bhutański cas", "PDT": "Pódpołnocnoameriski pacifiski lěśojski cas", "ARST": "Argentinski lěśojski cas", "WESZ": "Pódwjacornoeuropski lěśojski cas", "HNPM": "St.-Pierre-a-Miqueloński standardny cas", "PST": "Pódpołnocnoameriski pacifiski standardny cas", "ACST": "Srjejźoawstralski standardny cas", "HNPMX": "Mexiski pacifiski standardny cas", "AKDT": "Alaskojski lěśojski cas", "HAT": "Nowofundlandski lěśojski cas", "MEZ": "Srjejźoeuropski standardny cas", "AST": "Atlantiski standardny cas", "VET": "Venezuelski cas", "HEOG": "Pódwjacornogrönlandski lěśojski cas", "EAT": "Pódzajtšnoafriski cas", "CST": "Pódpołnocnoameriski centralny standardny cas", "UYST": "Uruguayski lěśojski cas", "WEZ": "Pódwjacornoeuropski standardny cas", "HKST": "Hongkongski lěśojski cas", "HEEG": "Pódzajtšnogrönlandski lěśojski cas", "BOT": "Boliwiski cas", "WARST": "Pódwjacornoargentinski lěśojski cas", "COT": "Kolumbiski standardny cas", "EDT": "Pódpołnocnoameriski pódzajtšny lěśojski cas", "MST": "MST", "HNT": "Nowofundlandski standardny cas"},
+ timezones: map[string]string{"ARST": "Argentinski lěśojski cas", "ECT": "Ekuadorski cas", "HEOG": "Pódwjacornogrönlandski lěśojski cas", "WARST": "Pódwjacornoargentinski lěśojski cas", "AKST": "Alaskojski standardny cas", "MESZ": "Srjejźoeuropski lěśojski cas", "WEZ": "Pódwjacornoeuropski standardny cas", "CAT": "Srjejźoafriski cas", "VET": "Venezuelski cas", "HNOG": "Pódwjacornogrönlandski standardny cas", "HKST": "Hongkongski lěśojski cas", "HNEG": "Pódzajtšnogrönlandski standardny cas", "AWST": "Pódwjacornoawstralski standardny cas", "NZDT": "Nowoseelandski lěśojski cas", "OESZ": "Pódzajtšnoeuropski lěśojski cas", "HNPM": "St.-Pierre-a-Miqueloński standardny cas", "IST": "Indiski cas", "WART": "Pódwjacornoargentinski standardny cas", "WAT": "Pódwjacornoafriski standardny cas", "WAST": "Pódwjacornoafriski lěśojski cas", "ACDT": "Srjejźoawstralski lěśojski cas", "GFT": "Francojskoguyański cas", "AKDT": "Alaskojski lěśojski cas", "JDT": "Japański lěśojski cas", "OEZ": "Pódzajtšnoeuropski standardny cas", "UYT": "Uruguayski standardny cas", "PDT": "Pódpołnocnoameriski pacifiski lěśojski cas", "HEPM": "St.-Pierre-a-Miqueloński lěśojski cas", "CLT": "Chilski standardny cas", "AST": "Atlantiski standardny cas", "TMST": "Turkmeniski lěśojski cas", "HNT": "Nowofundlandski standardny cas", "CDT": "Pódpołnocnoameriski centralny lěśojski cas", "GMT": "Greenwichski cas", "MST": "MST", "EDT": "Pódpołnocnoameriski pódzajtšny lěśojski cas", "HNNOMX": "Mexiski dłujkowjacorny standardny cas", "LHST": "Standardny cas kupy Lord-Howe", "PST": "Pódpołnocnoameriski pacifiski standardny cas", "ACWST": "Srjejźopódwjacorny awstralski standardny cas", "NZST": "Nowoseelandski standardny cas", "SRT": "Surinamski cas", "AWDT": "Pódwjacornoawstralski lěśojski cas", "CHAST": "Chathamski standardny cas", "JST": "Japański standardny cas", "HENOMX": "Mexiski dłujkowjacorny lěśojski cas", "WITA": "Srjejźoindoneski cas", "HECU": "Kubański lěśojski cas", "WIT": "Pódzajtšnoindoneski", "ACWDT": "Srjejźopódwjacorny awstralski lěśojski cas", "HKT": "Hongkongski standardny cas", "HEEG": "Pódzajtšnogrönlandski lěśojski cas", "ChST": "Chamorrski cas", "HAST": "Hawaiisko-aleutski standardny cas", "ART": "Argentinski standardny cas", "COT": "Kolumbiski standardny cas", "COST": "Kolumbiski lěśojski cas", "BT": "Bhutański cas", "HAT": "Nowofundlandski lěśojski cas", "UYST": "Uruguayski lěśojski cas", "SAST": "Pódpołdnjowoafriski cas", "HADT": "Hawaiisko-aleutski lěśojski cas", "WESZ": "Pódwjacornoeuropski lěśojski cas", "EAT": "Pódzajtšnoafriski cas", "AEST": "Pódzajtšnoawstralski standardny cas", "WIB": "Pódwjacornoindoneski cas", "HNCU": "Kubański standardny cas", "BOT": "Boliwiski cas", "EST": "Pódpołnocnoameriski pódzajtšny standardny cas", "HNPMX": "Mexiski pacifiski standardny cas", "LHDT": "lěśojski cas kupy Lord-Howe", "MYT": "Malajziski cas", "CLST": "Chilski lěśojski cas", "ADT": "Atlantiski lěśojski cas", "TMT": "Turkmeniski standardny cas", "MDT": "MDT", "GYT": "Guyański cas", "CST": "Pódpołnocnoameriski centralny standardny cas", "CHADT": "Chathamski lěśojski cas", "MEZ": "Srjejźoeuropski standardny cas", "ACST": "Srjejźoawstralski standardny cas", "AEDT": "Pódzajtšnoawstralski lěśojski cas", "HEPMX": "Mexiski pacifiski lěśojski cas", "∅∅∅": "Brasília lěśojski cas", "SGT": "Singapurski cas"},
}
}
diff --git a/dsb_DE/dsb_DE.go b/dsb_DE/dsb_DE.go
index 802e034e..f38df851 100644
--- a/dsb_DE/dsb_DE.go
+++ b/dsb_DE/dsb_DE.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"pś.Chr.n.", "pó Chr.n."},
erasNarrow: []string{"", ""},
erasWide: []string{"pśed Kristusowym naroźenim", "pó Kristusowem naroźenju"},
- timezones: map[string]string{"BT": "Bhutański cas", "TMST": "Turkmeniski lěśojski cas", "AST": "Atlantiski standardny cas", "WIB": "Pódwjacornoindoneski cas", "HADT": "Hawaiisko-aleutski lěśojski cas", "HNNOMX": "Mexiski dłujkowjacorny standardny cas", "HNT": "Nowofundlandski standardny cas", "MST": "MST", "EST": "Pódpołnocnoameriski pódzajtšny standardny cas", "CST": "Pódpołnocnoameriski centralny standardny cas", "HAT": "Nowofundlandski lěśojski cas", "MEZ": "Srjejźoeuropski standardny cas", "WAT": "Pódwjacornoafriski standardny cas", "HNCU": "Kubański standardny cas", "GMT": "Greenwichski cas", "JDT": "Japański lěśojski cas", "ACST": "Srjejźoawstralski standardny cas", "CHADT": "Chathamski lěśojski cas", "HEEG": "Pódzajtšnogrönlandski lěśojski cas", "ChST": "Chamorrski cas", "EDT": "Pódpołnocnoameriski pódzajtšny lěśojski cas", "AKST": "Alaskojski standardny cas", "WITA": "Srjejźoindoneski cas", "LHST": "Standardny cas kupy Lord-Howe", "HECU": "Kubański lěśojski cas", "HNOG": "Pódwjacornogrönlandski standardny cas", "AWDT": "Pódwjacornoawstralski lěśojski cas", "SGT": "Singapurski cas", "SRT": "Surinamski cas", "HNEG": "Pódzajtšnogrönlandski standardny cas", "WAST": "Pódwjacornoafriski lěśojski cas", "CAT": "Srjejźoafriski cas", "COST": "Kolumbiski lěśojski cas", "ACWDT": "Srjejźopódwjacorny awstralski lěśojski cas", "∅∅∅": "Peruski lěśojski cas", "CDT": "Pódpołnocnoameriski centralny lěśojski cas", "WIT": "Pódzajtšnoindoneski", "SAST": "Pódpołdnjowoafriski cas", "WEZ": "Pódwjacornoeuropski standardny cas", "ARST": "Argentinski lěśojski cas", "PST": "Pódpołnocnoameriski pacifiski standardny cas", "CHAST": "Chathamski standardny cas", "CLT": "Chilski standardny cas", "TMT": "Turkmeniski standardny cas", "HEPMX": "Mexiski pacifiski lěśojski cas", "GYT": "Guyański cas", "ART": "Argentinski standardny cas", "VET": "Venezuelski cas", "NZDT": "Nowoseelandski lěśojski cas", "GFT": "Francojskoguyański cas", "COT": "Kolumbiski standardny cas", "HENOMX": "Mexiski dłujkowjacorny lěśojski cas", "ADT": "Atlantiski lěśojski cas", "HEOG": "Pódwjacornogrönlandski lěśojski cas", "PDT": "Pódpołnocnoameriski pacifiski lěśojski cas", "BOT": "Boliwiski cas", "ACDT": "Srjejźoawstralski lěśojski cas", "EAT": "Pódzajtšnoafriski cas", "UYST": "Uruguayski lěśojski cas", "HAST": "Hawaiisko-aleutski standardny cas", "AWST": "Pódwjacornoawstralski standardny cas", "HKT": "Hongkongski standardny cas", "HEPM": "St.-Pierre-a-Miqueloński lěśojski cas", "OESZ": "Pódzajtšnoeuropski lěśojski cas", "WART": "Pódwjacornoargentinski standardny cas", "WESZ": "Pódwjacornoeuropski lěśojski cas", "MYT": "Malajziski cas", "UYT": "Uruguayski standardny cas", "MESZ": "Srjejźoeuropski lěśojski cas", "HNPM": "St.-Pierre-a-Miqueloński standardny cas", "CLST": "Chilski lěśojski cas", "OEZ": "Pódzajtšnoeuropski standardny cas", "ACWST": "Srjejźopódwjacorny awstralski standardny cas", "AEST": "Pódzajtšnoawstralski standardny cas", "LHDT": "lěśojski cas kupy Lord-Howe", "NZST": "Nowoseelandski standardny cas", "WARST": "Pódwjacornoargentinski lěśojski cas", "AKDT": "Alaskojski lěśojski cas", "AEDT": "Pódzajtšnoawstralski lěśojski cas", "HKST": "Hongkongski lěśojski cas", "IST": "Indiski cas", "JST": "Japański standardny cas", "ECT": "Ekuadorski cas", "MDT": "MDT", "HNPMX": "Mexiski pacifiski standardny cas"},
+ timezones: map[string]string{"ARST": "Argentinski lěśojski cas", "HKST": "Hongkongski lěśojski cas", "ACST": "Srjejźoawstralski standardny cas", "AKST": "Alaskojski standardny cas", "HNPM": "St.-Pierre-a-Miqueloński standardny cas", "HNOG": "Pódwjacornogrönlandski standardny cas", "ADT": "Atlantiski lěśojski cas", "WEZ": "Pódwjacornoeuropski standardny cas", "HNNOMX": "Mexiski dłujkowjacorny standardny cas", "AEST": "Pódzajtšnoawstralski standardny cas", "HNPMX": "Mexiski pacifiski standardny cas", "ACWDT": "Srjejźopódwjacorny awstralski lěśojski cas", "∅∅∅": "Amaconaski lěśojski cas", "CDT": "Pódpołnocnoameriski centralny lěśojski cas", "ChST": "Chamorrski cas", "HNCU": "Kubański standardny cas", "HEOG": "Pódwjacornogrönlandski lěśojski cas", "WAT": "Pódwjacornoafriski standardny cas", "WESZ": "Pódwjacornoeuropski lěśojski cas", "CLST": "Chilski lěśojski cas", "NZDT": "Nowoseelandski lěśojski cas", "GMT": "Greenwichski cas", "AST": "Atlantiski standardny cas", "ART": "Argentinski standardny cas", "HEEG": "Pódzajtšnogrönlandski lěśojski cas", "AKDT": "Alaskojski lěśojski cas", "PST": "Pódpołnocnoameriski pacifiski standardny cas", "NZST": "Nowoseelandski standardny cas", "HEPM": "St.-Pierre-a-Miqueloński lěśojski cas", "VET": "Venezuelski cas", "WART": "Pódwjacornoargentinski standardny cas", "MST": "MST", "HNEG": "Pódzajtšnogrönlandski standardny cas", "WITA": "Srjejźoindoneski cas", "LHST": "Standardny cas kupy Lord-Howe", "CHADT": "Chathamski lěśojski cas", "PDT": "Pódpołnocnoameriski pacifiski lěśojski cas", "HKT": "Hongkongski standardny cas", "UYST": "Uruguayski lěśojski cas", "LHDT": "lěśojski cas kupy Lord-Howe", "GYT": "Guyański cas", "HECU": "Kubański lěśojski cas", "CST": "Pódpołnocnoameriski centralny standardny cas", "HADT": "Hawaiisko-aleutski lěśojski cas", "MYT": "Malajziski cas", "AWST": "Pódwjacornoawstralski standardny cas", "HENOMX": "Mexiski dłujkowjacorny lěśojski cas", "HAT": "Nowofundlandski lěśojski cas", "GFT": "Francojskoguyański cas", "SRT": "Surinamski cas", "MESZ": "Srjejźoeuropski lěśojski cas", "TMT": "Turkmeniski standardny cas", "CLT": "Chilski standardny cas", "ACDT": "Srjejźoawstralski lěśojski cas", "COST": "Kolumbiski lěśojski cas", "AEDT": "Pódzajtšnoawstralski lěśojski cas", "SGT": "Singapurski cas", "IST": "Indiski cas", "OEZ": "Pódzajtšnoeuropski standardny cas", "MDT": "MDT", "EDT": "Pódpołnocnoameriski pódzajtšny lěśojski cas", "COT": "Kolumbiski standardny cas", "SAST": "Pódpołdnjowoafriski cas", "AWDT": "Pódwjacornoawstralski lěśojski cas", "HAST": "Hawaiisko-aleutski standardny cas", "WARST": "Pódwjacornoargentinski lěśojski cas", "WAST": "Pódwjacornoafriski lěśojski cas", "HNT": "Nowofundlandski standardny cas", "JDT": "Japański lěśojski cas", "OESZ": "Pódzajtšnoeuropski lěśojski cas", "MEZ": "Srjejźoeuropski standardny cas", "EAT": "Pódzajtšnoafriski cas", "CHAST": "Chathamski standardny cas", "UYT": "Uruguayski standardny cas", "EST": "Pódpołnocnoameriski pódzajtšny standardny cas", "WIB": "Pódwjacornoindoneski cas", "ECT": "Ekuadorski cas", "ACWST": "Srjejźopódwjacorny awstralski standardny cas", "HEPMX": "Mexiski pacifiski lěśojski cas", "WIT": "Pódzajtšnoindoneski", "BOT": "Boliwiski cas", "JST": "Japański standardny cas", "BT": "Bhutański cas", "CAT": "Srjejźoafriski cas", "TMST": "Turkmeniski lěśojski cas"},
}
}
diff --git a/dua/dua.go b/dua/dua.go
index 3805d8ec..0a7adcbe 100644
--- a/dua/dua.go
+++ b/dua/dua.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ɓ.Ys", "mb.Ys"},
erasNarrow: []string{"", ""},
erasWide: []string{"ɓoso ɓwá yáɓe lá", "mbúsa kwédi a Yés"},
- timezones: map[string]string{"GMT": "GMT", "AKDT": "AKDT", "CAT": "CAT", "JDT": "JDT", "ACDT": "ACDT", "WAT": "WAT", "HNNOMX": "HNNOMX", "AKST": "AKST", "AST": "AST", "WEZ": "WEZ", "CHAST": "CHAST", "ECT": "ECT", "COT": "COT", "HEPM": "HEPM", "ChST": "ChST", "EAT": "EAT", "MDT": "MDT", "HNEG": "HNEG", "∅∅∅": "∅∅∅", "SGT": "SGT", "HNPMX": "HNPMX", "HAT": "HAT", "CLST": "CLST", "MYT": "MYT", "HKST": "HKST", "MEZ": "MEZ", "LHDT": "LHDT", "GFT": "GFT", "MESZ": "MESZ", "EST": "EST", "WIB": "WIB", "PDT": "PDT", "AWST": "AWST", "NZDT": "NZDT", "TMST": "TMST", "HNOG": "HNOG", "WITA": "WITA", "NZST": "NZST", "LHST": "LHST", "SAST": "SAST", "UYST": "UYST", "HEEG": "HEEG", "OESZ": "OESZ", "HEPMX": "HEPMX", "SRT": "SRT", "PST": "PST", "AEDT": "AEDT", "TMT": "TMT", "HADT": "HADT", "ACWST": "ACWST", "ACWDT": "ACWDT", "HENOMX": "HENOMX", "COST": "COST", "GYT": "GYT", "UYT": "UYT", "WIT": "WIT", "HNT": "HNT", "ARST": "ARST", "BOT": "BOT", "HNCU": "HNCU", "ART": "ART", "AWDT": "AWDT", "JST": "JST", "CLT": "CLT", "MST": "MST", "BT": "BT", "HKT": "HKT", "OEZ": "OEZ", "HAST": "HAST", "HEOG": "HEOG", "HNPM": "HNPM", "ACST": "ACST", "WAST": "WAST", "WARST": "WARST", "EDT": "EDT", "CDT": "CDT", "VET": "VET", "WESZ": "WESZ", "CHADT": "CHADT", "IST": "IST", "WART": "WART", "HECU": "HECU", "CST": "CST", "ADT": "ADT", "AEST": "AEST"},
+ timezones: map[string]string{"WARST": "WARST", "LHST": "LHST", "EAT": "EAT", "HAST": "HAST", "VET": "VET", "WART": "WART", "ART": "ART", "HNCU": "HNCU", "SGT": "SGT", "AST": "AST", "HKT": "HKT", "CST": "CST", "CAT": "CAT", "HKST": "HKST", "WITA": "WITA", "AKST": "AKST", "ChST": "ChST", "UYT": "UYT", "HEPM": "HEPM", "CDT": "CDT", "NZST": "NZST", "JST": "JST", "ARST": "ARST", "HEEG": "HEEG", "AKDT": "AKDT", "AEST": "AEST", "LHDT": "LHDT", "WIB": "WIB", "BOT": "BOT", "PST": "PST", "WEZ": "WEZ", "HNNOMX": "HNNOMX", "BT": "BT", "UYST": "UYST", "AWDT": "AWDT", "CHADT": "CHADT", "NZDT": "NZDT", "MEZ": "MEZ", "WESZ": "WESZ", "HENOMX": "HENOMX", "HAT": "HAT", "HNPM": "HNPM", "CLT": "CLT", "OEZ": "OEZ", "COST": "COST", "AEDT": "AEDT", "PDT": "PDT", "HADT": "HADT", "ACWDT": "ACWDT", "TMT": "TMT", "GFT": "GFT", "HNPMX": "HNPMX", "WIT": "WIT", "CLST": "CLST", "HEOG": "HEOG", "IST": "IST", "MYT": "MYT", "TMST": "TMST", "WAST": "WAST", "ACDT": "ACDT", "COT": "COT", "SRT": "SRT", "∅∅∅": "∅∅∅", "ACWST": "ACWST", "ADT": "ADT", "MST": "MST", "EST": "EST", "HNT": "HNT", "MESZ": "MESZ", "EDT": "EDT", "HEPMX": "HEPMX", "GYT": "GYT", "HECU": "HECU", "HNOG": "HNOG", "OESZ": "OESZ", "WAT": "WAT", "HNEG": "HNEG", "AWST": "AWST", "CHAST": "CHAST", "ECT": "ECT", "JDT": "JDT", "GMT": "GMT", "MDT": "MDT", "ACST": "ACST", "SAST": "SAST"},
}
}
diff --git a/dua_CM/dua_CM.go b/dua_CM/dua_CM.go
index 128a4a78..45be2cea 100644
--- a/dua_CM/dua_CM.go
+++ b/dua_CM/dua_CM.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ɓ.Ys", "mb.Ys"},
erasNarrow: []string{"", ""},
erasWide: []string{"ɓoso ɓwá yáɓe lá", "mbúsa kwédi a Yés"},
- timezones: map[string]string{"VET": "VET", "HAT": "HAT", "EAT": "EAT", "COT": "COT", "ARST": "ARST", "HKST": "HKST", "EST": "EST", "AEST": "AEST", "HEPM": "HEPM", "GFT": "GFT", "TMST": "TMST", "ECT": "ECT", "WART": "WART", "ACWDT": "ACWDT", "AEDT": "AEDT", "HNPM": "HNPM", "CHADT": "CHADT", "ChST": "ChST", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "UYT": "UYT", "IST": "IST", "SAST": "SAST", "JST": "JST", "AST": "AST", "SRT": "SRT", "NZDT": "NZDT", "CHAST": "CHAST", "HEEG": "HEEG", "OEZ": "OEZ", "HENOMX": "HENOMX", "AKST": "AKST", "MEZ": "MEZ", "AKDT": "AKDT", "HEOG": "HEOG", "PDT": "PDT", "JDT": "JDT", "ACST": "ACST", "ACDT": "ACDT", "CAT": "CAT", "COST": "COST", "BOT": "BOT", "GYT": "GYT", "AWDT": "AWDT", "WEZ": "WEZ", "PST": "PST", "LHST": "LHST", "CLT": "CLT", "EDT": "EDT", "WESZ": "WESZ", "ACWST": "ACWST", "HKT": "HKT", "HNOG": "HNOG", "OESZ": "OESZ", "HNCU": "HNCU", "HECU": "HECU", "HNT": "HNT", "ART": "ART", "AWST": "AWST", "TMT": "TMT", "HEPMX": "HEPMX", "WIT": "WIT", "HAST": "HAST", "WAT": "WAT", "MST": "MST", "MDT": "MDT", "BT": "BT", "MESZ": "MESZ", "WAST": "WAST", "SGT": "SGT", "HADT": "HADT", "WITA": "WITA", "CLST": "CLST", "HNNOMX": "HNNOMX", "ADT": "ADT", "MYT": "MYT", "UYST": "UYST", "HNEG": "HNEG", "GMT": "GMT", "CDT": "CDT", "WIB": "WIB", "WARST": "WARST", "CST": "CST", "LHDT": "LHDT", "NZST": "NZST"},
+ timezones: map[string]string{"CDT": "CDT", "HKT": "HKT", "GFT": "GFT", "MEZ": "MEZ", "JST": "JST", "WART": "WART", "HAST": "HAST", "CAT": "CAT", "MESZ": "MESZ", "ARST": "ARST", "HENOMX": "HENOMX", "HNT": "HNT", "VET": "VET", "MYT": "MYT", "MDT": "MDT", "HAT": "HAT", "HEEG": "HEEG", "LHDT": "LHDT", "HEPMX": "HEPMX", "CLST": "CLST", "OEZ": "OEZ", "AST": "AST", "WEZ": "WEZ", "EDT": "EDT", "SAST": "SAST", "SRT": "SRT", "IST": "IST", "HNOG": "HNOG", "TMT": "TMT", "ACWST": "ACWST", "GMT": "GMT", "HNNOMX": "HNNOMX", "WESZ": "WESZ", "MST": "MST", "ACST": "ACST", "ACDT": "ACDT", "GYT": "GYT", "BOT": "BOT", "JDT": "JDT", "WAT": "WAT", "HNPM": "HNPM", "LHST": "LHST", "EAT": "EAT", "AWST": "AWST", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "WAST": "WAST", "TMST": "TMST", "ART": "ART", "HKST": "HKST", "UYT": "UYT", "UYST": "UYST", "HNCU": "HNCU", "ADT": "ADT", "WARST": "WARST", "WIB": "WIB", "CHADT": "CHADT", "AKDT": "AKDT", "AEST": "AEST", "CST": "CST", "PST": "PST", "NZDT": "NZDT", "HNEG": "HNEG", "AKST": "AKST", "AEDT": "AEDT", "ACWDT": "ACWDT", "BT": "BT", "NZST": "NZST", "CLT": "CLT", "EST": "EST", "COST": "COST", "HNPMX": "HNPMX", "CHAST": "CHAST", "PDT": "PDT", "HADT": "HADT", "WITA": "WITA", "ChST": "ChST", "WIT": "WIT", "SGT": "SGT", "HEOG": "HEOG", "OESZ": "OESZ", "HEPM": "HEPM", "HECU": "HECU", "ECT": "ECT", "COT": "COT"},
}
}
diff --git a/dyo/dyo.go b/dyo/dyo.go
index a9a86aec..034460e9 100644
--- a/dyo/dyo.go
+++ b/dyo/dyo.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ArY", "AtY"},
erasNarrow: []string{"", ""},
erasWide: []string{"Ariŋuu Yeesu", "Atooŋe Yeesu"},
- timezones: map[string]string{"HKT": "HKT", "HEPMX": "HEPMX", "CDT": "CDT", "HNOG": "HNOG", "TMT": "TMT", "MDT": "MDT", "HNPMX": "HNPMX", "ADT": "ADT", "JDT": "JDT", "EST": "EST", "MESZ": "MESZ", "SAST": "SAST", "HNEG": "HNEG", "ACDT": "ACDT", "MST": "MST", "AKST": "AKST", "AEDT": "AEDT", "HEPM": "HEPM", "PST": "PST", "WESZ": "WESZ", "EAT": "EAT", "UYST": "UYST", "HAST": "HAST", "WIT": "WIT", "BT": "BT", "LHDT": "LHDT", "CHADT": "CHADT", "CLT": "CLT", "ChST": "ChST", "COST": "COST", "HNNOMX": "HNNOMX", "SRT": "SRT", "HKST": "HKST", "WITA": "WITA", "WART": "WART", "WARST": "WARST", "GMT": "GMT", "SGT": "SGT", "GYT": "GYT", "WAST": "WAST", "OEZ": "OEZ", "UYT": "UYT", "CST": "CST", "HEOG": "HEOG", "ART": "ART", "IST": "IST", "HECU": "HECU", "CAT": "CAT", "WAT": "WAT", "ECT": "ECT", "MYT": "MYT", "WEZ": "WEZ", "ARST": "ARST", "CHAST": "CHAST", "TMST": "TMST", "HNCU": "HNCU", "HADT": "HADT", "AWDT": "AWDT", "LHST": "LHST", "MEZ": "MEZ", "OESZ": "OESZ", "AST": "AST", "AEST": "AEST", "AWST": "AWST", "GFT": "GFT", "HNT": "HNT", "ACWDT": "ACWDT", "HAT": "HAT", "NZDT": "NZDT", "∅∅∅": "∅∅∅", "WIB": "WIB", "VET": "VET", "CLST": "CLST", "COT": "COT", "BOT": "BOT", "HEEG": "HEEG", "ACST": "ACST", "EDT": "EDT", "PDT": "PDT", "ACWST": "ACWST", "HNPM": "HNPM", "JST": "JST", "AKDT": "AKDT", "NZST": "NZST", "HENOMX": "HENOMX"},
+ timezones: map[string]string{"HADT": "HADT", "CAT": "CAT", "JST": "JST", "EDT": "EDT", "COT": "COT", "COST": "COST", "HNEG": "HNEG", "HEPM": "HEPM", "SRT": "SRT", "BOT": "BOT", "ACWDT": "ACWDT", "CLST": "CLST", "HENOMX": "HENOMX", "HNT": "HNT", "AEST": "AEST", "HEPMX": "HEPMX", "CHADT": "CHADT", "MYT": "MYT", "WARST": "WARST", "HEOG": "HEOG", "AST": "AST", "OEZ": "OEZ", "WESZ": "WESZ", "MDT": "MDT", "ACDT": "ACDT", "ChST": "ChST", "HNPMX": "HNPMX", "AKDT": "AKDT", "SGT": "SGT", "WEZ": "WEZ", "HKT": "HKT", "HAT": "HAT", "NZST": "NZST", "NZDT": "NZDT", "AKST": "AKST", "GYT": "GYT", "EAT": "EAT", "AWST": "AWST", "AWDT": "AWDT", "MEZ": "MEZ", "TMT": "TMT", "ARST": "ARST", "WITA": "WITA", "LHDT": "LHDT", "CST": "CST", "CHAST": "CHAST", "PDT": "PDT", "OESZ": "OESZ", "EST": "EST", "HKST": "HKST", "HEEG": "HEEG", "CDT": "CDT", "PST": "PST", "HNOG": "HNOG", "UYST": "UYST", "SAST": "SAST", "HAST": "HAST", "WART": "WART", "WAT": "WAT", "HNNOMX": "HNNOMX", "BT": "BT", "LHST": "LHST", "HNCU": "HNCU", "IST": "IST", "ACWST": "ACWST", "ART": "ART", "ACST": "ACST", "HNPM": "HNPM", "HECU": "HECU", "WIB": "WIB", "GMT": "GMT", "TMST": "TMST", "AEDT": "AEDT", "WIT": "WIT", "ECT": "ECT", "∅∅∅": "∅∅∅", "GFT": "GFT", "UYT": "UYT", "MESZ": "MESZ", "VET": "VET", "JDT": "JDT", "CLT": "CLT", "ADT": "ADT", "MST": "MST", "WAST": "WAST"},
}
}
diff --git a/dyo_SN/dyo_SN.go b/dyo_SN/dyo_SN.go
index 5e2b0bda..a46c8065 100644
--- a/dyo_SN/dyo_SN.go
+++ b/dyo_SN/dyo_SN.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ArY", "AtY"},
erasNarrow: []string{"", ""},
erasWide: []string{"Ariŋuu Yeesu", "Atooŋe Yeesu"},
- timezones: map[string]string{"MEZ": "MEZ", "SAST": "SAST", "JST": "JST", "GFT": "GFT", "WAST": "WAST", "HECU": "HECU", "HEPMX": "HEPMX", "AEST": "AEST", "OEZ": "OEZ", "AWDT": "AWDT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "HNPMX": "HNPMX", "HAST": "HAST", "WAT": "WAT", "ECT": "ECT", "WESZ": "WESZ", "HNT": "HNT", "CLT": "CLT", "CST": "CST", "HNPM": "HNPM", "NZST": "NZST", "ACWDT": "ACWDT", "LHST": "LHST", "TMT": "TMT", "OESZ": "OESZ", "ADT": "ADT", "UYST": "UYST", "HADT": "HADT", "HEPM": "HEPM", "EAT": "EAT", "COT": "COT", "WARST": "WARST", "VET": "VET", "BT": "BT", "HEOG": "HEOG", "ART": "ART", "AEDT": "AEDT", "ChST": "ChST", "EDT": "EDT", "GYT": "GYT", "UYT": "UYT", "BOT": "BOT", "NZDT": "NZDT", "MESZ": "MESZ", "JDT": "JDT", "HKST": "HKST", "ACST": "ACST", "AWST": "AWST", "CHAST": "CHAST", "COST": "COST", "SGT": "SGT", "AKDT": "AKDT", "WIB": "WIB", "CLST": "CLST", "MST": "MST", "ACWST": "ACWST", "PST": "PST", "ACDT": "ACDT", "CAT": "CAT", "MYT": "MYT", "HAT": "HAT", "WITA": "WITA", "AKST": "AKST", "HENOMX": "HENOMX", "WART": "WART", "WEZ": "WEZ", "HKT": "HKT", "LHDT": "LHDT", "AST": "AST", "WIT": "WIT", "SRT": "SRT", "PDT": "PDT", "HEEG": "HEEG", "∅∅∅": "∅∅∅", "GMT": "GMT", "MDT": "MDT", "HNOG": "HNOG", "CHADT": "CHADT", "IST": "IST", "TMST": "TMST", "EST": "EST", "CDT": "CDT", "ARST": "ARST"},
+ timezones: map[string]string{"CHADT": "CHADT", "ACWDT": "ACWDT", "HKST": "HKST", "ACST": "ACST", "ACDT": "ACDT", "HEEG": "HEEG", "HEPMX": "HEPMX", "HNCU": "HNCU", "CLST": "CLST", "ChST": "ChST", "BOT": "BOT", "HKT": "HKT", "SGT": "SGT", "ECT": "ECT", "MESZ": "MESZ", "AWST": "AWST", "ART": "ART", "WITA": "WITA", "AEST": "AEST", "LHST": "LHST", "JST": "JST", "AST": "AST", "WESZ": "WESZ", "EDT": "EDT", "COST": "COST", "HNNOMX": "HNNOMX", "CAT": "CAT", "HNPMX": "HNPMX", "CST": "CST", "JDT": "JDT", "WARST": "WARST", "HEPM": "HEPM", "WEZ": "WEZ", "HAT": "HAT", "AWDT": "AWDT", "SAST": "SAST", "LHDT": "LHDT", "ARST": "ARST", "BT": "BT", "HNEG": "HNEG", "AEDT": "AEDT", "HNPM": "HNPM", "PDT": "PDT", "NZST": "NZST", "MEZ": "MEZ", "EST": "EST", "GFT": "GFT", "PST": "PST", "GYT": "GYT", "HADT": "HADT", "IST": "IST", "ADT": "ADT", "OEZ": "OEZ", "GMT": "GMT", "MYT": "MYT", "UYST": "UYST", "MST": "MST", "AKDT": "AKDT", "TMT": "TMT", "WIT": "WIT", "VET": "VET", "HNOG": "HNOG", "HEOG": "HEOG", "CDT": "CDT", "HECU": "HECU", "NZDT": "NZDT", "WAT": "WAT", "∅∅∅": "∅∅∅", "EAT": "EAT", "WIB": "WIB", "ACWST": "ACWST", "CLT": "CLT", "TMST": "TMST", "MDT": "MDT", "COT": "COT", "SRT": "SRT", "AKST": "AKST", "HNT": "HNT", "CHAST": "CHAST", "HAST": "HAST", "OESZ": "OESZ", "WART": "WART", "WAST": "WAST", "HENOMX": "HENOMX", "UYT": "UYT"},
}
}
diff --git a/dz/dz.go b/dz/dz.go
index 821e32c5..f7f902d6 100644
--- a/dz/dz.go
+++ b/dz/dz.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "CE"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"WESZ": "ནུབ་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "HEPM": "པའི་རི་དང་མི་ཀི་ལཱོན་ཉིན་སྲུང་ཆུ་ཚོད", "AST": "ཨེཊ་ལེན་ཊིཀ་ཚད་ལྡན་ཆུ་ཚོད", "WARST": "ནུབ་ཕྱོགས་ཨར་ཇེན་ཊི་ན་བྱཱར་དུས་ཆུ་ཚོད", "UYST": "ཡུ་རུ་གུ་ཝཱའི་བྱཱར་དུས་ཆུ་ཚོད", "CDT": "བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཉིན་སྲུང་ཆུ་ཚོད", "HAST": "ཧ་ཝའི་-ཨེ་ལིའུ་ཤེན་ཚད་ལྡན་ཆུ་ཚོད", "TMT": "TMT", "ACDT": "དབུས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "ECT": "ཨེ་ཀུ་ཌཽ་ཆུ་ཚོད", "EAT": "ཤར་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "HNNOMX": "HNNOMX", "SRT": "སུ་རི་ནཱམ་ཆུ་ཚོད", "∅∅∅": "པ་རུ་བྱཱར་དུས་ཆུ་ཚོད", "MST": "MST", "ADT": "ཨེཊ་ལེན་ཊིཀ་ཉིན་སྲུང་ཆུ་ཚོད", "AEDT": "ཤར་ཕྱོགས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "CHAST": "CHAST", "OEZ": "ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "PST": "བྱང་ཨ་མི་རི་ཀ་པེ་སི་ཕིག་ཚད་ལྡན་ཆུ་ཚོད", "HNT": "ནིའུ་ཕའུནཌ་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "TMST": "TMST", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "GYT": "གུ་ཡ་ན་ཆུ་ཚོད", "MYT": "MYT", "VET": "བེ་ནི་ཛུ་ཝེ་ལ་ཆུ་ཚོད", "ACWDT": "དབུས་ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "OESZ": "ཤར་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "COT": "ཀོ་ལོམ་བྷི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "SGT": "SGT", "HNCU": "ཀིའུ་བྷ་ཚད་ལྡན་ཆུ་ཚོད", "EST": "བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཚད་ལྡན་ཆུ་ཚོད", "PDT": "བྱང་ཨ་མི་རི་ཀ་པེ་སི་ཕིག་ཉིན་སྲུང་ཆུ་ཚོད", "MESZ": "དབུས་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "NZST": "ནིའུ་ཛི་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "WAT": "ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཚད་ལྡན་ཆུ་ཚོད", "BOT": "བྷོ་ལི་བི་ཡ་ཆུ་ཚོད", "AKST": "ཨ་ལསི་ཀ་ཚད་ལྡན་ཆུ་ཚོད", "HADT": "ཧ་ཝའི་-ཨེ་ལིའུ་ཤེན་ཉིན་སྲུང་ཆུ་ཚོད", "WIT": "ཤར་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "ACWST": "དབུས་ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "HKT": "HKT", "CLST": "ཅི་ལི་བྱཱར་དུས་ཆུ་ཚོད", "GMT": "གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད", "WITA": "དབུས་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "NZDT": "ནིའུ་ཛི་ལེནཌ་ཉིན་སྲུང་ཆུ་ཚོད", "HEEG": "ཤར་ཕྱོགས་གིརིན་ལེནཌ་བྱཱར་དུས་ཆུ་ཚོད", "WAST": "ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་བྱཱར་དུས་ཆུ་ཚོད", "ARST": "ཨར་ཇེན་ཊི་ན་བྱཱར་དུས་ཆུ་ཚོད", "HEOG": "ནུབ་ཕྱོགས་གིརིན་ལེནཌ་བྱཱར་དུས་ཆུ་ཚོད", "AWST": "ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "SAST": "ལྷོ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "JDT": "ཇ་པཱན་ཉིན་སྲུང་ཆུ་ཚོད", "GFT": "ཕིརེནཅ་གི་ཡ་ན་ཆུ་ཚོད", "WART": "ནུབ་ཕྱོགས་ཨར་ཇེན་ཊི་ན་ཚད་ལྡན་ཆུ་ཚོད", "HNPMX": "HNPMX", "CST": "བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཚད་ལྡན་ཆུ་ཚོད", "CLT": "ཅི་ལི་ཚད་ལྡན་ཆུ་ཚོད", "HNEG": "ཤར་ཕྱོགས་གིརིན་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "MDT": "MDT", "COST": "ཀོ་ལོམ་བྷི་ཡ་བྱཱར་དུས་ཆུ་ཚོད", "AKDT": "ཨ་ལསི་ཀ་ཉིན་སྲུང་ཆུ་ཚོད", "AEST": "ཤར་ཕྱོགས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "AWDT": "ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "HNPM": "པའི་རི་དང་མི་ཀི་ལཱོན་ཚད་ལྡན་ཆུ་ཚོད", "MEZ": "དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "CAT": "དབུས་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "LHST": "LHST", "JST": "ཇ་པཱན་ཚད་ལྡན་ཆུ་ཚོད", "HAT": "ནིའུ་ཕའུནཌ་ལེནཌ་ཉིན་སྲུང་ཆུ་ཚོད", "BT": "འབྲུག་ཡུལ་ཆུ་ཚོད", "WEZ": "ནུབ་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "HKST": "HKST", "CHADT": "CHADT", "IST": "རྒྱ་གར་ཆུ་ཚོད", "ACST": "དབུས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "UYT": "ཡུ་རུ་གུ་ཝཱའི་ཚད་ལྡན་ཆུ་ཚོད", "LHDT": "LHDT", "HNOG": "ནུབ་ཕྱོགས་གིརིན་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "EDT": "བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཉིན་སྲུང་ཆུ་ཚོད", "WIB": "ནུབ་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "ART": "ཨར་ཇེན་ཊི་ན་ཚད་ལྡན་ཆུ་ཚོད", "ChST": "ChST", "HECU": "ཀིའུ་བྷ་ཉིན་སྲུང་ཆུ་ཚོད"},
+ timezones: map[string]string{"TMST": "TMST", "EST": "བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཚད་ལྡན་ཆུ་ཚོད", "HNEG": "ཤར་ཕྱོགས་གིརིན་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "AEDT": "ཤར་ཕྱོགས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "GYT": "གུ་ཡ་ན་ཆུ་ཚོད", "WITA": "དབུས་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "UYT": "ཡུ་རུ་གུ་ཝཱའི་ཚད་ལྡན་ཆུ་ཚོད", "MEZ": "དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "COT": "ཀོ་ལོམ་བྷི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "GFT": "ཕིརེནཅ་གི་ཡ་ན་ཆུ་ཚོད", "CHADT": "CHADT", "CAT": "དབུས་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "CLT": "ཅི་ལི་ཚད་ལྡན་ཆུ་ཚོད", "WAT": "ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཚད་ལྡན་ཆུ་ཚོད", "SAST": "ལྷོ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "HNCU": "ཀིའུ་བྷ་ཚད་ལྡན་ཆུ་ཚོད", "CDT": "བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཉིན་སྲུང་ཆུ་ཚོད", "TMT": "TMT", "AKDT": "ཨ་ལསི་ཀ་ཉིན་སྲུང་ཆུ་ཚོད", "ACWST": "དབུས་ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "HEOG": "ནུབ་ཕྱོགས་གིརིན་ལེནཌ་བྱཱར་དུས་ཆུ་ཚོད", "GMT": "གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད", "MYT": "MYT", "MST": "MST", "HENOMX": "HENOMX", "HEPM": "པའི་རི་དང་མི་ཀི་ལཱོན་ཉིན་སྲུང་ཆུ་ཚོད", "PST": "བྱང་ཨ་མི་རི་ཀ་པེ་སི་ཕིག་ཚད་ལྡན་ཆུ་ཚོད", "ADT": "ཨེཊ་ལེན་ཊིཀ་ཉིན་སྲུང་ཆུ་ཚོད", "ART": "ཨར་ཇེན་ཊི་ན་ཚད་ལྡན་ཆུ་ཚོད", "AEST": "ཤར་ཕྱོགས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "UYST": "ཡུ་རུ་གུ་ཝཱའི་བྱཱར་དུས་ཆུ་ཚོད", "ARST": "ཨར་ཇེན་ཊི་ན་བྱཱར་དུས་ཆུ་ཚོད", "ACST": "དབུས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "AKST": "ཨ་ལསི་ཀ་ཚད་ལྡན་ཆུ་ཚོད", "PDT": "བྱང་ཨ་མི་རི་ཀ་པེ་སི་ཕིག་ཉིན་སྲུང་ཆུ་ཚོད", "NZDT": "ནིའུ་ཛི་ལེནཌ་ཉིན་སྲུང་ཆུ་ཚོད", "VET": "བེ་ནི་ཛུ་ཝེ་ལ་ཆུ་ཚོད", "AST": "ཨེཊ་ལེན་ཊིཀ་ཚད་ལྡན་ཆུ་ཚོད", "WESZ": "ནུབ་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "LHST": "LHST", "SGT": "SGT", "ECT": "ཨེ་ཀུ་ཌཽ་ཆུ་ཚོད", "WAST": "ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་བྱཱར་དུས་ཆུ་ཚོད", "HNNOMX": "HNNOMX", "JST": "ཇ་པཱན་ཚད་ལྡན་ཆུ་ཚོད", "HNPM": "པའི་རི་དང་མི་ཀི་ལཱོན་ཚད་ལྡན་ཆུ་ཚོད", "CST": "བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཚད་ལྡན་ཆུ་ཚོད", "HADT": "ཧ་ཝའི་-ཨེ་ལིའུ་ཤེན་ཉིན་སྲུང་ཆུ་ཚོད", "ACWDT": "དབུས་ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "WIB": "ནུབ་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "IST": "རྒྱ་གར་ཆུ་ཚོད", "WARST": "ནུབ་ཕྱོགས་ཨར་ཇེན་ཊི་ན་བྱཱར་དུས་ཆུ་ཚོད", "CLST": "ཅི་ལི་བྱཱར་དུས་ཆུ་ཚོད", "HNOG": "ནུབ་ཕྱོགས་གིརིན་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "MDT": "MDT", "EDT": "བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཉིན་སྲུང་ཆུ་ཚོད", "WIT": "ཤར་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "MESZ": "དབུས་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "WART": "ནུབ་ཕྱོགས་ཨར་ཇེན་ཊི་ན་ཚད་ལྡན་ཆུ་ཚོད", "HEEG": "ཤར་ཕྱོགས་གིརིན་ལེནཌ་བྱཱར་དུས་ཆུ་ཚོད", "NZST": "ནིའུ་ཛི་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "WEZ": "ནུབ་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "HKT": "HKT", "HKST": "HKST", "ChST": "ChST", "CHAST": "CHAST", "JDT": "ཇ་པཱན་ཉིན་སྲུང་ཆུ་ཚོད", "OESZ": "ཤར་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "EAT": "ཤར་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "HAST": "ཧ་ཝའི་-ཨེ་ལིའུ་ཤེན་ཚད་ལྡན་ཆུ་ཚོད", "OEZ": "ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "ACDT": "དབུས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "COST": "ཀོ་ལོམ་བྷི་ཡ་བྱཱར་དུས་ཆུ་ཚོད", "LHDT": "LHDT", "AWST": "ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "AWDT": "ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "BOT": "བྷོ་ལི་བི་ཡ་ཆུ་ཚོད", "BT": "འབྲུག་ཡུལ་ཆུ་ཚོད", "HNT": "ནིའུ་ཕའུནཌ་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "HAT": "ནིའུ་ཕའུནཌ་ལེནཌ་ཉིན་སྲུང་ཆུ་ཚོད", "SRT": "སུ་རི་ནཱམ་ཆུ་ཚོད", "∅∅∅": "ཨེ་ཛོརས་བྱཱར་དུས་ཆུ་ཚོད", "HECU": "ཀིའུ་བྷ་ཉིན་སྲུང་ཆུ་ཚོད"},
}
}
diff --git a/dz_BT/dz_BT.go b/dz_BT/dz_BT.go
index 7f34c559..c4a4ae90 100644
--- a/dz_BT/dz_BT.go
+++ b/dz_BT/dz_BT.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "CE"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"UYT": "ཡུ་རུ་གུ་ཝཱའི་ཚད་ལྡན་ཆུ་ཚོད", "WIT": "ཤར་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "SRT": "སུ་རི་ནཱམ་ཆུ་ཚོད", "HEOG": "ནུབ་ཕྱོགས་གིརིན་ལེནཌ་བྱཱར་དུས་ཆུ་ཚོད", "WITA": "དབུས་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "HNNOMX": "HNNOMX", "AKST": "ཨ་ལསི་ཀ་ཚད་ལྡན་ཆུ་ཚོད", "SGT": "SGT", "AWDT": "ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "WEZ": "ནུབ་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "ARST": "ཨར་ཇེན་ཊི་ན་བྱཱར་དུས་ཆུ་ཚོད", "MEZ": "དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "HNCU": "ཀིའུ་བྷ་ཚད་ལྡན་ཆུ་ཚོད", "CDT": "བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཉིན་སྲུང་ཆུ་ཚོད", "AWST": "ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "EAT": "ཤར་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "MST": "MST", "COST": "ཀོ་ལོམ་བྷི་ཡ་བྱཱར་དུས་ཆུ་ཚོད", "EST": "བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཚད་ལྡན་ཆུ་ཚོད", "AST": "ཨེཊ་ལེན་ཊིཀ་ཚད་ལྡན་ཆུ་ཚོད", "BT": "འབྲུག་ཡུལ་ཆུ་ཚོད", "ACWDT": "དབུས་ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "HAT": "ནིའུ་ཕའུནཌ་ལེནཌ་ཉིན་སྲུང་ཆུ་ཚོད", "TMST": "TMST", "ChST": "ChST", "NZST": "ནིའུ་ཛི་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "WAT": "ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཚད་ལྡན་ཆུ་ཚོད", "HNEG": "ཤར་ཕྱོགས་གིརིན་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "ACST": "དབུས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "GMT": "གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད", "HEPMX": "HEPMX", "GYT": "གུ་ཡ་ན་ཆུ་ཚོད", "HNOG": "ནུབ་ཕྱོགས་གིརིན་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "CLST": "ཅི་ལི་བྱཱར་དུས་ཆུ་ཚོད", "JST": "ཇ་པཱན་ཚད་ལྡན་ཆུ་ཚོད", "HKT": "HKT", "AEST": "ཤར་ཕྱོགས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "LHDT": "LHDT", "JDT": "ཇ་པཱན་ཉིན་སྲུང་ཆུ་ཚོད", "HECU": "ཀིའུ་བྷ་ཉིན་སྲུང་ཆུ་ཚོད", "CHADT": "CHADT", "UYST": "ཡུ་རུ་གུ་ཝཱའི་བྱཱར་དུས་ཆུ་ཚོད", "ACWST": "དབུས་ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "HENOMX": "HENOMX", "MDT": "MDT", "AKDT": "ཨ་ལསི་ཀ་ཉིན་སྲུང་ཆུ་ཚོད", "SAST": "ལྷོ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "OEZ": "ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "HNPMX": "HNPMX", "ART": "ཨར་ཇེན་ཊི་ན་ཚད་ལྡན་ཆུ་ཚོད", "∅∅∅": "ཨེ་མ་ཛཱོན་བྱཱར་དུས་ཆུ་ཚོད", "OESZ": "ཤར་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "HKST": "HKST", "IST": "རྒྱ་གར་ཆུ་ཚོད", "BOT": "བྷོ་ལི་བི་ཡ་ཆུ་ཚོད", "ADT": "ཨེཊ་ལེན་ཊིཀ་ཉིན་སྲུང་ཆུ་ཚོད", "HAST": "ཧ་ཝའི་-ཨེ་ལིའུ་ཤེན་ཚད་ལྡན་ཆུ་ཚོད", "PST": "བྱང་ཨ་མི་རི་ཀ་པེ་སི་ཕིག་ཚད་ལྡན་ཆུ་ཚོད", "HEPM": "པའི་རི་དང་མི་ཀི་ལཱོན་ཉིན་སྲུང་ཆུ་ཚོད", "LHST": "LHST", "CHAST": "CHAST", "WAST": "ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་བྱཱར་དུས་ཆུ་ཚོད", "WART": "ནུབ་ཕྱོགས་ཨར་ཇེན་ཊི་ན་ཚད་ལྡན་ཆུ་ཚོད", "MESZ": "དབུས་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "HADT": "ཧ་ཝའི་-ཨེ་ལིའུ་ཤེན་ཉིན་སྲུང་ཆུ་ཚོད", "HNT": "ནིའུ་ཕའུནཌ་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "CLT": "ཅི་ལི་ཚད་ལྡན་ཆུ་ཚོད", "WIB": "ནུབ་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "CAT": "དབུས་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "COT": "ཀོ་ལོམ་བྷི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "WARST": "ནུབ་ཕྱོགས་ཨར་ཇེན་ཊི་ན་བྱཱར་དུས་ཆུ་ཚོད", "EDT": "བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཉིན་སྲུང་ཆུ་ཚོད", "CST": "བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཚད་ལྡན་ཆུ་ཚོད", "MYT": "MYT", "ACDT": "དབུས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "ECT": "ཨེ་ཀུ་ཌཽ་ཆུ་ཚོད", "AEDT": "ཤར་ཕྱོགས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "HNPM": "པའི་རི་དང་མི་ཀི་ལཱོན་ཚད་ལྡན་ཆུ་ཚོད", "WESZ": "ནུབ་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "PDT": "བྱང་ཨ་མི་རི་ཀ་པེ་སི་ཕིག་ཉིན་སྲུང་ཆུ་ཚོད", "TMT": "TMT", "VET": "བེ་ནི་ཛུ་ཝེ་ལ་ཆུ་ཚོད", "NZDT": "ནིའུ་ཛི་ལེནཌ་ཉིན་སྲུང་ཆུ་ཚོད", "HEEG": "ཤར་ཕྱོགས་གིརིན་ལེནཌ་བྱཱར་དུས་ཆུ་ཚོད", "GFT": "ཕིརེནཅ་གི་ཡ་ན་ཆུ་ཚོད"},
+ timezones: map[string]string{"∅∅∅": "ཨེ་མ་ཛཱོན་བྱཱར་དུས་ཆུ་ཚོད", "WEZ": "ནུབ་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "TMST": "TMST", "CST": "བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཚད་ལྡན་ཆུ་ཚོད", "HADT": "ཧ་ཝའི་-ཨེ་ལིའུ་ཤེན་ཉིན་སྲུང་ཆུ་ཚོད", "JST": "ཇ་པཱན་ཚད་ལྡན་ཆུ་ཚོད", "CLST": "ཅི་ལི་བྱཱར་དུས་ཆུ་ཚོད", "EST": "བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཚད་ལྡན་ཆུ་ཚོད", "AKST": "ཨ་ལསི་ཀ་ཚད་ལྡན་ཆུ་ཚོད", "HECU": "ཀིའུ་བྷ་ཉིན་སྲུང་ཆུ་ཚོད", "EAT": "ཤར་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "MEZ": "དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "OEZ": "ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "TMT": "TMT", "MDT": "MDT", "HNEG": "ཤར་ཕྱོགས་གིརིན་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "HNPMX": "HNPMX", "NZST": "ནིའུ་ཛི་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "ACWDT": "དབུས་ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "ART": "ཨར་ཇེན་ཊི་ན་ཚད་ལྡན་ཆུ་ཚོད", "BT": "འབྲུག་ཡུལ་ཆུ་ཚོད", "CLT": "ཅི་ལི་ཚད་ལྡན་ཆུ་ཚོད", "AKDT": "ཨ་ལསི་ཀ་ཉིན་སྲུང་ཆུ་ཚོད", "ChST": "ChST", "GFT": "ཕིརེནཅ་གི་ཡ་ན་ཆུ་ཚོད", "SRT": "སུ་རི་ནཱམ་ཆུ་ཚོད", "NZDT": "ནིའུ་ཛི་ལེནཌ་ཉིན་སྲུང་ཆུ་ཚོད", "GMT": "གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད", "ADT": "ཨེཊ་ལེན་ཊིཀ་ཉིན་སྲུང་ཆུ་ཚོད", "OESZ": "ཤར་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "HKT": "HKT", "HNNOMX": "HNNOMX", "SAST": "ལྷོ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "COST": "ཀོ་ལོམ་བྷི་ཡ་བྱཱར་དུས་ཆུ་ཚོད", "AEST": "ཤར་ཕྱོགས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "HNCU": "ཀིའུ་བྷ་ཚད་ལྡན་ཆུ་ཚོད", "AEDT": "ཤར་ཕྱོགས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "WITA": "དབུས་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "ECT": "ཨེ་ཀུ་ཌཽ་ཆུ་ཚོད", "MYT": "MYT", "WART": "ནུབ་ཕྱོགས་ཨར་ཇེན་ཊི་ན་ཚད་ལྡན་ཆུ་ཚོད", "HEOG": "ནུབ་ཕྱོགས་གིརིན་ལེནཌ་བྱཱར་དུས་ཆུ་ཚོད", "MST": "MST", "COT": "ཀོ་ལོམ་བྷི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "LHDT": "LHDT", "CDT": "བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཉིན་སྲུང་ཆུ་ཚོད", "CHADT": "CHADT", "WIT": "ཤར་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "HAST": "ཧ་ཝའི་-ཨེ་ལིའུ་ཤེན་ཚད་ལྡན་ཆུ་ཚོད", "VET": "བེ་ནི་ཛུ་ཝེ་ལ་ཆུ་ཚོད", "WESZ": "ནུབ་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "WAT": "ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཚད་ལྡན་ཆུ་ཚོད", "HNPM": "པའི་རི་དང་མི་ཀི་ལཱོན་ཚད་ལྡན་ཆུ་ཚོད", "GYT": "གུ་ཡ་ན་ཆུ་ཚོད", "JDT": "ཇ་པཱན་ཉིན་སྲུང་ཆུ་ཚོད", "HKST": "HKST", "HNT": "ནིའུ་ཕའུནཌ་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "HAT": "ནིའུ་ཕའུནཌ་ལེནཌ་ཉིན་སྲུང་ཆུ་ཚོད", "PST": "བྱང་ཨ་མི་རི་ཀ་པེ་སི་ཕིག་ཚད་ལྡན་ཆུ་ཚོད", "CAT": "དབུས་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "IST": "རྒྱ་གར་ཆུ་ཚོད", "WAST": "ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་བྱཱར་དུས་ཆུ་ཚོད", "AWDT": "ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "ACWST": "དབུས་ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "HNOG": "ནུབ་ཕྱོགས་གིརིན་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "EDT": "བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཉིན་སྲུང་ཆུ་ཚོད", "HEPM": "པའི་རི་དང་མི་ཀི་ལཱོན་ཉིན་སྲུང་ཆུ་ཚོད", "LHST": "LHST", "WIB": "ནུབ་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "UYT": "ཡུ་རུ་གུ་ཝཱའི་ཚད་ལྡན་ཆུ་ཚོད", "CHAST": "CHAST", "UYST": "ཡུ་རུ་གུ་ཝཱའི་བྱཱར་དུས་ཆུ་ཚོད", "SGT": "SGT", "WARST": "ནུབ་ཕྱོགས་ཨར་ཇེན་ཊི་ན་བྱཱར་དུས་ཆུ་ཚོད", "AST": "ཨེཊ་ལེན་ཊིཀ་ཚད་ལྡན་ཆུ་ཚོད", "ACST": "དབུས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "ACDT": "དབུས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "HENOMX": "HENOMX", "HEEG": "ཤར་ཕྱོགས་གིརིན་ལེནཌ་བྱཱར་དུས་ཆུ་ཚོད", "MESZ": "དབུས་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "ARST": "ཨར་ཇེན་ཊི་ན་བྱཱར་དུས་ཆུ་ཚོད", "HEPMX": "HEPMX", "AWST": "ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "BOT": "བྷོ་ལི་བི་ཡ་ཆུ་ཚོད", "PDT": "བྱང་ཨ་མི་རི་ཀ་པེ་སི་ཕིག་ཉིན་སྲུང་ཆུ་ཚོད"},
}
}
diff --git a/ebu/ebu.go b/ebu/ebu.go
index 238740ae..5f5f0875 100644
--- a/ebu/ebu.go
+++ b/ebu/ebu.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"MK", "TK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Mbere ya Kristo", "Thutha wa Kristo"},
- timezones: map[string]string{"GFT": "GFT", "GMT": "GMT", "WIT": "WIT", "VET": "VET", "HNOG": "HNOG", "TMST": "TMST", "OESZ": "OESZ", "AKST": "AKST", "HECU": "HECU", "WEZ": "WEZ", "HAT": "HAT", "NZST": "NZST", "CLT": "CLT", "SRT": "SRT", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "COST": "COST", "HNNOMX": "HNNOMX", "GYT": "GYT", "HKT": "HKT", "WITA": "WITA", "MEZ": "MEZ", "HEEG": "HEEG", "PST": "PST", "HNEG": "HNEG", "HNCU": "HNCU", "EST": "EST", "HENOMX": "HENOMX", "AKDT": "AKDT", "WIB": "WIB", "HKST": "HKST", "SAST": "SAST", "JDT": "JDT", "OEZ": "OEZ", "ACST": "ACST", "ACDT": "ACDT", "WAST": "WAST", "ECT": "ECT", "ACWDT": "ACWDT", "AEST": "AEST", "CLST": "CLST", "BOT": "BOT", "COT": "COT", "ADT": "ADT", "HEPMX": "HEPMX", "UYST": "UYST", "PDT": "PDT", "WESZ": "WESZ", "AWDT": "AWDT", "MESZ": "MESZ", "MST": "MST", "MDT": "MDT", "CST": "CST", "HADT": "HADT", "HEOG": "HEOG", "AWST": "AWST", "SGT": "SGT", "EDT": "EDT", "WART": "WART", "HNPMX": "HNPMX", "AST": "AST", "ACWST": "ACWST", "AEDT": "AEDT", "HEPM": "HEPM", "EAT": "EAT", "ARST": "ARST", "CAT": "CAT", "NZDT": "NZDT", "JST": "JST", "UYT": "UYT", "BT": "BT", "HNT": "HNT", "LHST": "LHST", "LHDT": "LHDT", "CHADT": "CHADT", "TMT": "TMT", "ART": "ART", "IST": "IST", "ChST": "ChST", "CDT": "CDT", "HAST": "HAST", "HNPM": "HNPM", "WAT": "WAT", "WARST": "WARST", "MYT": "MYT"},
+ timezones: map[string]string{"MEZ": "MEZ", "JDT": "JDT", "MYT": "MYT", "WARST": "WARST", "HEOG": "HEOG", "HECU": "HECU", "ARST": "ARST", "BT": "BT", "HNPM": "HNPM", "SAST": "SAST", "LHST": "LHST", "SRT": "SRT", "WIT": "WIT", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "NZST": "NZST", "AEDT": "AEDT", "CLST": "CLST", "HNOG": "HNOG", "AST": "AST", "AKDT": "AKDT", "AEST": "AEST", "AWST": "AWST", "BOT": "BOT", "ACDT": "ACDT", "ChST": "ChST", "HNPMX": "HNPMX", "ECT": "ECT", "VET": "VET", "CLT": "CLT", "OESZ": "OESZ", "WAT": "WAT", "ACST": "ACST", "UYT": "UYT", "EAT": "EAT", "HAST": "HAST", "ADT": "ADT", "GMT": "GMT", "HNT": "HNT", "OEZ": "OEZ", "MST": "MST", "EDT": "EDT", "LHDT": "LHDT", "GYT": "GYT", "SGT": "SGT", "JST": "JST", "WEZ": "WEZ", "HENOMX": "HENOMX", "CST": "CST", "MDT": "MDT", "HKST": "HKST", "UYST": "UYST", "HNCU": "HNCU", "AWDT": "AWDT", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "CHAST": "CHAST", "CAT": "CAT", "ACWDT": "ACWDT", "TMT": "TMT", "HEEG": "HEEG", "GFT": "GFT", "AKST": "AKST", "HEPM": "HEPM", "WIB": "WIB", "WITA": "WITA", "IST": "IST", "ACWST": "ACWST", "MESZ": "MESZ", "TMST": "TMST", "ART": "ART", "PST": "PST", "PDT": "PDT", "WAST": "WAST", "EST": "EST", "HAT": "HAT", "HADT": "HADT", "NZDT": "NZDT", "WART": "WART", "WESZ": "WESZ", "HKT": "HKT", "COT": "COT", "COST": "COST", "HNEG": "HNEG", "CDT": "CDT"},
}
}
diff --git a/ebu_KE/ebu_KE.go b/ebu_KE/ebu_KE.go
index 057858d9..cf0d4d7b 100644
--- a/ebu_KE/ebu_KE.go
+++ b/ebu_KE/ebu_KE.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"MK", "TK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Mbere ya Kristo", "Thutha wa Kristo"},
- timezones: map[string]string{"HEEG": "HEEG", "TMST": "TMST", "HECU": "HECU", "MDT": "MDT", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "UYST": "UYST", "AEST": "AEST", "WAST": "WAST", "WESZ": "WESZ", "HEPMX": "HEPMX", "AKDT": "AKDT", "GFT": "GFT", "HAST": "HAST", "HEOG": "HEOG", "AEDT": "AEDT", "IST": "IST", "AST": "AST", "BT": "BT", "EST": "EST", "HNPMX": "HNPMX", "OEZ": "OEZ", "ADT": "ADT", "ACWST": "ACWST", "SAST": "SAST", "ACDT": "ACDT", "AKST": "AKST", "SRT": "SRT", "PDT": "PDT", "HNEG": "HNEG", "MST": "MST", "LHDT": "LHDT", "JST": "JST", "TMT": "TMT", "ECT": "ECT", "HNCU": "HNCU", "UYT": "UYT", "HKT": "HKT", "WITA": "WITA", "VET": "VET", "HNT": "HNT", "MEZ": "MEZ", "GYT": "GYT", "ACST": "ACST", "HADT": "HADT", "NZDT": "NZDT", "CHAST": "CHAST", "CLST": "CLST", "WART": "WART", "EDT": "EDT", "PST": "PST", "WEZ": "WEZ", "LHST": "LHST", "NZST": "NZST", "BOT": "BOT", "OESZ": "OESZ", "WARST": "WARST", "COST": "COST", "CST": "CST", "HNOG": "HNOG", "HKST": "HKST", "HEPM": "HEPM", "ACWDT": "ACWDT", "HAT": "HAT", "MYT": "MYT", "WIT": "WIT", "ART": "ART", "ARST": "ARST", "AWST": "AWST", "CAT": "CAT", "EAT": "EAT", "HENOMX": "HENOMX", "SGT": "SGT", "MESZ": "MESZ", "ChST": "ChST", "JDT": "JDT", "COT": "COT", "CHADT": "CHADT", "CLT": "CLT", "HNNOMX": "HNNOMX", "GMT": "GMT", "CDT": "CDT", "WIB": "WIB", "HNPM": "HNPM", "WAT": "WAT"},
+ timezones: map[string]string{"NZST": "NZST", "CLT": "CLT", "UYST": "UYST", "ARST": "ARST", "EST": "EST", "BT": "BT", "HEPMX": "HEPMX", "CST": "CST", "CHADT": "CHADT", "VET": "VET", "ART": "ART", "SAST": "SAST", "GFT": "GFT", "WITA": "WITA", "HNNOMX": "HNNOMX", "ACDT": "ACDT", "HAT": "HAT", "AEST": "AEST", "ACST": "ACST", "HNT": "HNT", "WIB": "WIB", "AWST": "AWST", "MST": "MST", "WAST": "WAST", "EAT": "EAT", "WIT": "WIT", "ECT": "ECT", "ADT": "ADT", "AKDT": "AKDT", "LHDT": "LHDT", "SGT": "SGT", "MEZ": "MEZ", "GMT": "GMT", "HKST": "HKST", "CHAST": "CHAST", "WART": "WART", "HKT": "HKT", "WAT": "WAT", "SRT": "SRT", "BOT": "BOT", "AST": "AST", "OESZ": "OESZ", "TMT": "TMT", "AEDT": "AEDT", "AKST": "AKST", "HNPM": "HNPM", "IST": "IST", "WEZ": "WEZ", "MYT": "MYT", "HEOG": "HEOG", "HENOMX": "HENOMX", "JST": "JST", "WESZ": "WESZ", "WARST": "WARST", "OEZ": "OEZ", "ChST": "ChST", "GYT": "GYT", "HNCU": "HNCU", "∅∅∅": "∅∅∅", "COT": "COT", "HNEG": "HNEG", "HNPMX": "HNPMX", "CDT": "CDT", "NZDT": "NZDT", "JDT": "JDT", "HEEG": "HEEG", "CAT": "CAT", "MESZ": "MESZ", "HNOG": "HNOG", "MDT": "MDT", "HECU": "HECU", "HAST": "HAST", "PDT": "PDT", "ACWST": "ACWST", "HEPM": "HEPM", "UYT": "UYT", "CLST": "CLST", "TMST": "TMST", "EDT": "EDT", "COST": "COST", "LHST": "LHST", "AWDT": "AWDT", "HADT": "HADT", "PST": "PST", "ACWDT": "ACWDT"},
}
}
diff --git a/ee/ee.go b/ee/ee.go
index d2713a69..720d1fc0 100644
--- a/ee/ee.go
+++ b/ee/ee.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"hY", "Yŋ"},
erasNarrow: []string{"hY", "Yŋ"},
erasWide: []string{"Hafi Yesu Va Do ŋgɔ", "Yesu Ŋɔli"},
- timezones: map[string]string{"HNOG": "Ɣetoɖoƒe Grinlanɖ gaƒoƒoɖoanyime", "HEOG": "Ɣetoɖoƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "SAST": "Anyiehe Africa gaƒoƒome", "TMT": "Tɛkmenistan gaƒoƒoɖoanyime", "EST": "Ɣedzeƒe America gaƒoƒoɖoanyime", "CST": "Titina America gaƒoƒoɖoanyime", "HAT": "Niufaunɖlanɖ ŋkekeme gaƒoƒome", "MST": "America Todzidukɔwo ƒe gaƒoƒoɖoanyime", "BT": "BT", "AWDT": "Ɣetoɖoƒe Australia ŋkekeme gaƒoƒome", "TMST": "Tɛkmenistan dzomeŋɔli gaƒoƒome", "WAT": "Ɣetoɖoƒe Afrika gaƒoƒoɖoanyime", "HNPMX": "HNPMX", "WIB": "WIB", "CHAST": "CHAST", "CAT": "Titina Afrika gaƒoƒome", "WAST": "Ɣetoɖoƒe Africa ŋkekeme gaƒoƒome", "ADT": "Atlantic ŋkekeme gaƒoƒome", "WIT": "WIT", "ChST": "ChST", "EDT": "Ɣedzeƒe America ŋkekeme gaƒoƒome", "MDT": "America Todzidukɔwo ƒe ŋkekme gaƒoƒome", "HKST": "Hɔng Kɔng dzomeŋɔli gaƒoƒome", "MEZ": "Titina Europe gaƒoƒoɖoanyime", "JST": "Japan gaƒoƒoɖanyime", "HECU": "Kuba ŋkekeme gaƒoƒome", "GYT": "Gayana gaƒoƒome", "AWST": "Ɣetoɖoƒe Australia gaƒoƒoɖoanyime", "WESZ": "Ɣetoɖoƒe Europe ŋkekeme gaƒoƒome", "IST": "IST", "EAT": "Ɣedzeƒe Africa gaƒoƒome", "HNNOMX": "HNNOMX", "AST": "Atlantic gaƒoƒoɖoanyime", "ARST": "Argentina dzomeŋɔli gaƒoƒome", "ACWST": "Australia ɣetoɖofe gaƒoƒoɖoanyime", "ACWDT": "Australia ɣetoɖofe ŋkekeme gaƒoƒome", "SGT": "SGT", "HEPMX": "HEPMX", "AKST": "Alaska gaƒoƒoɖoanyime", "HAST": "Hawaii-Aleutia gaƒoƒoɖoanyime", "ACDT": "Titina Australia ŋkekeme gaƒoƒome", "OESZ": "Ɣedzeƒe Europe ŋkekeme gaƒoƒome", "WART": "Ɣetoɖoƒe Argentina gaƒoƒoɖoanyime", "GMT": "Greenwich gaƒoƒome", "MYT": "MYT", "SRT": "Suriname gaƒoƒome", "CHADT": "CHADT", "NZDT": "NZDT", "JDT": "Japan ŋkekeme gaƒoƒome", "AEST": "Ɣedzeƒe Australia gaƒoƒoɖoanyime", "ART": "Argentina gaƒoƒoɖoanyime", "PST": "Pacific gaƒoƒoɖoanyime", "WITA": "WITA", "GFT": "Frentsi Guiana gaƒoƒome", "UYST": "Uruguai dzomeŋɔli gaƒoƒome", "HNT": "Niufaunɖlanɖ gaƒoƒoɖoanyime", "LHDT": "LHDT", "NZST": "NZST", "CDT": "Titina America ŋkekeme gaƒoƒome", "VET": "Venezuela gaƒoƒome", "HNEG": "Ɣedzeƒe Grinlanɖ gaƒoƒoɖoanyime", "COT": "Kolombia gaƒoƒoɖoanyime", "HENOMX": "HENOMX", "BOT": "Bolivia gaƒoƒome", "MESZ": "Titina Europe ŋkekeme gaƒoƒome", "CLT": "Tsile gaƒoƒoɖoanyime", "CLST": "Tsile dzomeŋɔli gaƒoƒome", "ACST": "Titina Australia gaƒoƒoɖoanyime", "HKT": "Hɔng Kɔng gaƒoƒoɖoanyi me", "WEZ": "Ɣetoɖoƒe Europe gaƒoƒoɖoanyime", "∅∅∅": "Amazon dzomeŋɔli gaƒoƒome", "ECT": "Ikuedɔ dzomeŋɔli gaƒoƒome", "WARST": "Ɣetoɖoƒe Argentina dzomeŋɔli gaƒoƒome", "HNCU": "Kuba gaƒoƒoɖoanyime", "PDT": "Pacific ŋkekme gaƒoƒome", "LHST": "LHST", "COST": "Kolombia dzomeŋɔli gaƒoƒome", "AKDT": "Alaska ŋkekeme gaƒoƒome", "AEDT": "Ɣedzeƒe Australia ŋkekeme gaƒoƒome", "HNPM": "Saint Pierre kple Mikuelon gaƒoƒoɖoanyime", "HEPM": "Saint Pierre kple Mikuelon ŋkekeme gaƒoƒome", "HEEG": "Ɣedzeƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "OEZ": "Ɣedzeƒe Europe gaƒoƒoɖoanyime", "UYT": "Uruguai gaƒoƒoɖoanyime", "HADT": "Hawaii-Aleutia ŋkekeme gaƒoƒome"},
+ timezones: map[string]string{"AST": "Atlantic gaƒoƒoɖoanyime", "HKST": "Hɔng Kɔng dzomeŋɔli gaƒoƒome", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "SRT": "Suriname gaƒoƒome", "ECT": "Ikuedɔ dzomeŋɔli gaƒoƒome", "HKT": "Hɔng Kɔng gaƒoƒoɖoanyi me", "GFT": "Frentsi Guiana gaƒoƒome", "ART": "Argentina gaƒoƒoɖoanyime", "VET": "Venezuela gaƒoƒome", "CLT": "Tsile gaƒoƒoɖoanyime", "HEOG": "Ɣetoɖoƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "HAT": "Niufaunɖlanɖ ŋkekeme gaƒoƒome", "AKDT": "Alaska ŋkekeme gaƒoƒome", "HECU": "Kuba ŋkekeme gaƒoƒome", "PST": "Pacific gaƒoƒoɖoanyime", "HADT": "Hawaii-Aleutia ŋkekeme gaƒoƒome", "IST": "IST", "EDT": "Ɣedzeƒe America ŋkekeme gaƒoƒome", "WAT": "Ɣetoɖoƒe Afrika gaƒoƒoɖoanyime", "COST": "Kolombia dzomeŋɔli gaƒoƒome", "ACST": "Titina Australia gaƒoƒoɖoanyime", "CST": "Titina America gaƒoƒoɖoanyime", "WIT": "WIT", "AWDT": "Ɣetoɖoƒe Australia ŋkekeme gaƒoƒome", "JDT": "Japan ŋkekeme gaƒoƒome", "WARST": "Ɣetoɖoƒe Argentina dzomeŋɔli gaƒoƒome", "OEZ": "Ɣedzeƒe Europe gaƒoƒoɖoanyime", "MYT": "MYT", "TMT": "Tɛkmenistan gaƒoƒoɖoanyime", "EST": "Ɣedzeƒe America gaƒoƒoɖoanyime", "∅∅∅": "Eker dzomeŋɔli gaƒoƒome", "AEDT": "Ɣedzeƒe Australia ŋkekeme gaƒoƒome", "HNPMX": "HNPMX", "GYT": "Gayana gaƒoƒome", "ACWDT": "Australia ɣetoɖofe ŋkekeme gaƒoƒome", "MEZ": "Titina Europe gaƒoƒoɖoanyime", "WESZ": "Ɣetoɖoƒe Europe ŋkekeme gaƒoƒome", "HNEG": "Ɣedzeƒe Grinlanɖ gaƒoƒoɖoanyime", "HEEG": "Ɣedzeƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "UYT": "Uruguai gaƒoƒoɖoanyime", "ChST": "ChST", "SAST": "Anyiehe Africa gaƒoƒome", "HNOG": "Ɣetoɖoƒe Grinlanɖ gaƒoƒoɖoanyime", "ACDT": "Titina Australia ŋkekeme gaƒoƒome", "HNPM": "Saint Pierre kple Mikuelon gaƒoƒoɖoanyime", "LHDT": "LHDT", "HEPMX": "HEPMX", "NZDT": "NZDT", "COT": "Kolombia gaƒoƒoɖoanyime", "CHADT": "CHADT", "HAST": "Hawaii-Aleutia gaƒoƒoɖoanyime", "NZST": "NZST", "OESZ": "Ɣedzeƒe Europe ŋkekeme gaƒoƒome", "ADT": "Atlantic ŋkekeme gaƒoƒome", "WITA": "WITA", "UYST": "Uruguai dzomeŋɔli gaƒoƒome", "WIB": "WIB", "CDT": "Titina America ŋkekeme gaƒoƒome", "PDT": "Pacific ŋkekme gaƒoƒome", "MDT": "America Todzidukɔwo ƒe ŋkekme gaƒoƒome", "AWST": "Ɣetoɖoƒe Australia gaƒoƒoɖoanyime", "CHAST": "CHAST", "CAT": "Titina Afrika gaƒoƒome", "WART": "Ɣetoɖoƒe Argentina gaƒoƒoɖoanyime", "MESZ": "Titina Europe ŋkekeme gaƒoƒome", "WEZ": "Ɣetoɖoƒe Europe gaƒoƒoɖoanyime", "GMT": "Greenwich gaƒoƒome", "WAST": "Ɣetoɖoƒe Africa ŋkekeme gaƒoƒome", "BT": "BT", "MST": "America Todzidukɔwo ƒe gaƒoƒoɖoanyime", "HEPM": "Saint Pierre kple Mikuelon ŋkekeme gaƒoƒome", "EAT": "Ɣedzeƒe Africa gaƒoƒome", "CLST": "Tsile dzomeŋɔli gaƒoƒome", "HNCU": "Kuba gaƒoƒoɖoanyime", "BOT": "Bolivia gaƒoƒome", "ACWST": "Australia ɣetoɖofe gaƒoƒoɖoanyime", "HNT": "Niufaunɖlanɖ gaƒoƒoɖoanyime", "AEST": "Ɣedzeƒe Australia gaƒoƒoɖoanyime", "AKST": "Alaska gaƒoƒoɖoanyime", "LHST": "LHST", "SGT": "SGT", "JST": "Japan gaƒoƒoɖanyime", "TMST": "Tɛkmenistan dzomeŋɔli gaƒoƒome", "ARST": "Argentina dzomeŋɔli gaƒoƒome"},
}
}
diff --git a/ee_GH/ee_GH.go b/ee_GH/ee_GH.go
index af2a53ba..4f2a971e 100644
--- a/ee_GH/ee_GH.go
+++ b/ee_GH/ee_GH.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"hY", "Yŋ"},
erasNarrow: []string{"hY", "Yŋ"},
erasWide: []string{"Hafi Yesu Va Do ŋgɔ", "Yesu Ŋɔli"},
- timezones: map[string]string{"AKDT": "Alaska ŋkekeme gaƒoƒome", "CST": "Titina America gaƒoƒoɖoanyime", "MDT": "Makau ŋkekeme gaƒoƒome", "HEOG": "Ɣetoɖoƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "ACWDT": "Australia ɣetoɖofe ŋkekeme gaƒoƒome", "ART": "Argentina gaƒoƒoɖoanyime", "MEZ": "Titina Europe gaƒoƒoɖoanyime", "MST": "Makau gaƒoƒoɖoanyime", "AWDT": "Ɣetoɖoƒe Australia ŋkekeme gaƒoƒome", "JST": "Japan gaƒoƒoɖanyime", "OESZ": "Ɣedzeƒe Europe ŋkekeme gaƒoƒome", "HNNOMX": "HNNOMX", "∅∅∅": "Azores dzomeŋɔli gaƒoƒome", "HAST": "Hawaii-Aleutia gaƒoƒoɖoanyime", "BT": "BT", "SAST": "Anyiehe Africa gaƒoƒome", "AWST": "Ɣetoɖoƒe Australia gaƒoƒoɖoanyime", "HEPM": "Saint Pierre kple Mikuelon ŋkekeme gaƒoƒome", "CLT": "Tsile gaƒoƒoɖoanyime", "WART": "Ɣetoɖoƒe Argentina gaƒoƒoɖoanyime", "EST": "Ɣedzeƒe America gaƒoƒoɖoanyime", "GYT": "Gayana gaƒoƒome", "UYT": "Uruguai gaƒoƒoɖoanyime", "HNOG": "Ɣetoɖoƒe Grinlanɖ gaƒoƒoɖoanyime", "EAT": "Ɣedzeƒe Africa gaƒoƒome", "WAST": "Ɣetoɖoƒe Africa ŋkekeme gaƒoƒome", "AEST": "Ɣedzeƒe Australia gaƒoƒoɖoanyime", "CHAST": "CHAST", "CAT": "Titina Afrika gaƒoƒome", "OEZ": "Ɣedzeƒe Europe gaƒoƒoɖoanyime", "BOT": "Bolivia gaƒoƒome", "TMST": "Tɛkmenistan dzomeŋɔli gaƒoƒome", "AST": "Atlantic gaƒoƒoɖoanyime", "AEDT": "Ɣedzeƒe Australia ŋkekeme gaƒoƒome", "NZDT": "NZDT", "CHADT": "CHADT", "IST": "IST", "CDT": "Titina America ŋkekeme gaƒoƒome", "HAT": "Niufaunɖlanɖ ŋkekeme gaƒoƒome", "COT": "Kolombia gaƒoƒoɖoanyime", "COST": "Kolombia dzomeŋɔli gaƒoƒome", "GMT": "Greenwich gaƒoƒome", "EDT": "Ɣedzeƒe America ŋkekeme gaƒoƒome", "ADT": "Atlantic ŋkekeme gaƒoƒome", "WAT": "Ɣetoɖoƒe Afrika gaƒoƒoɖoanyime", "ECT": "Ikuedɔ dzomeŋɔli gaƒoƒome", "WIT": "WIT", "HNT": "Niufaunɖlanɖ gaƒoƒoɖoanyime", "HNPM": "Saint Pierre kple Mikuelon gaƒoƒoɖoanyime", "LHDT": "LHDT", "CLST": "Tsile dzomeŋɔli gaƒoƒome", "HNCU": "Kuba gaƒoƒoɖoanyime", "AKST": "Alaska gaƒoƒoɖoanyime", "LHST": "LHST", "NZST": "NZST", "HNEG": "Ɣedzeƒe Grinlanɖ gaƒoƒoɖoanyime", "JDT": "Japan ŋkekeme gaƒoƒome", "HEEG": "Ɣedzeƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "ACST": "Titina Australia gaƒoƒoɖoanyime", "HENOMX": "HENOMX", "VET": "Venezuela gaƒoƒome", "SRT": "Suriname gaƒoƒome", "ARST": "Argentina dzomeŋɔli gaƒoƒome", "HKST": "Hɔng Kɔng dzomeŋɔli gaƒoƒome", "WITA": "WITA", "HECU": "Kuba ŋkekeme gaƒoƒome", "HEPMX": "HEPMX", "HADT": "Hawaii-Aleutia ŋkekeme gaƒoƒome", "PST": "Pacific gaƒoƒoɖoanyime", "ACWST": "Australia ɣetoɖofe gaƒoƒoɖoanyime", "WEZ": "Ɣetoɖoƒe Europe gaƒoƒoɖoanyime", "WESZ": "Ɣetoɖoƒe Europe ŋkekeme gaƒoƒome", "HKT": "Hɔng Kɔng gaƒoƒoɖoanyi me", "SGT": "SGT", "HNPMX": "HNPMX", "UYST": "Uruguai dzomeŋɔli gaƒoƒome", "WIB": "WIB", "PDT": "Pacific ŋkekme gaƒoƒome", "MESZ": "Titina Europe ŋkekeme gaƒoƒome", "ChST": "ChST", "ACDT": "Titina Australia ŋkekeme gaƒoƒome", "WARST": "Ɣetoɖoƒe Argentina dzomeŋɔli gaƒoƒome", "MYT": "MYT", "GFT": "Frentsi Guiana gaƒoƒome", "TMT": "Tɛkmenistan gaƒoƒoɖoanyime"},
+ timezones: map[string]string{"HENOMX": "HENOMX", "HAT": "Niufaunɖlanɖ ŋkekeme gaƒoƒome", "SRT": "Suriname gaƒoƒome", "WIB": "WIB", "CST": "Titina America gaƒoƒoɖoanyime", "CAT": "Titina Afrika gaƒoƒome", "MST": "Makau gaƒoƒoɖoanyime", "HEOG": "Ɣetoɖoƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "WITA": "WITA", "HNPM": "Saint Pierre kple Mikuelon gaƒoƒoɖoanyime", "HNPMX": "HNPMX", "PST": "Pacific gaƒoƒoɖoanyime", "GMT": "Greenwich gaƒoƒome", "BT": "BT", "GFT": "Frentsi Guiana gaƒoƒome", "SGT": "SGT", "MESZ": "Titina Europe ŋkekeme gaƒoƒome", "HADT": "Hawaii-Aleutia ŋkekeme gaƒoƒome", "MYT": "MYT", "CLT": "Tsile gaƒoƒoɖoanyime", "CLST": "Tsile dzomeŋɔli gaƒoƒome", "BOT": "Bolivia gaƒoƒome", "CHADT": "CHADT", "WAST": "Ɣetoɖoƒe Africa ŋkekeme gaƒoƒome", "ART": "Argentina gaƒoƒoɖoanyime", "HKST": "Hɔng Kɔng dzomeŋɔli gaƒoƒome", "HNT": "Niufaunɖlanɖ gaƒoƒoɖoanyime", "HECU": "Kuba ŋkekeme gaƒoƒome", "CHAST": "CHAST", "MEZ": "Titina Europe gaƒoƒoɖoanyime", "MDT": "Makau ŋkekeme gaƒoƒome", "ARST": "Argentina dzomeŋɔli gaƒoƒome", "AKDT": "Alaska ŋkekeme gaƒoƒome", "EAT": "Ɣedzeƒe Africa gaƒoƒome", "CDT": "Titina America ŋkekeme gaƒoƒome", "HAST": "Hawaii-Aleutia gaƒoƒoɖoanyime", "JST": "Japan gaƒoƒoɖanyime", "TMST": "Tɛkmenistan dzomeŋɔli gaƒoƒome", "WAT": "Ɣetoɖoƒe Afrika gaƒoƒoɖoanyime", "NZST": "NZST", "HNOG": "Ɣetoɖoƒe Grinlanɖ gaƒoƒoɖoanyime", "NZDT": "NZDT", "IST": "IST", "HKT": "Hɔng Kɔng gaƒoƒoɖoanyi me", "PDT": "Pacific ŋkekme gaƒoƒome", "ACWDT": "Australia ɣetoɖofe ŋkekeme gaƒoƒome", "COT": "Kolombia gaƒoƒoɖoanyime", "HEEG": "Ɣedzeƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "SAST": "Anyiehe Africa gaƒoƒome", "WIT": "WIT", "VET": "Venezuela gaƒoƒome", "WARST": "Ɣetoɖoƒe Argentina dzomeŋɔli gaƒoƒome", "OESZ": "Ɣedzeƒe Europe ŋkekeme gaƒoƒome", "EST": "Ɣedzeƒe America gaƒoƒoɖoanyime", "ACST": "Titina Australia gaƒoƒoɖoanyime", "ACDT": "Titina Australia ŋkekeme gaƒoƒome", "HNEG": "Ɣedzeƒe Grinlanɖ gaƒoƒoɖoanyime", "UYST": "Uruguai dzomeŋɔli gaƒoƒome", "AWDT": "Ɣetoɖoƒe Australia ŋkekeme gaƒoƒome", "WEZ": "Ɣetoɖoƒe Europe gaƒoƒoɖoanyime", "LHDT": "LHDT", "GYT": "Gayana gaƒoƒome", "AEDT": "Ɣedzeƒe Australia ŋkekeme gaƒoƒome", "UYT": "Uruguai gaƒoƒoɖoanyime", "JDT": "Japan ŋkekeme gaƒoƒome", "COST": "Kolombia dzomeŋɔli gaƒoƒome", "HNNOMX": "HNNOMX", "ChST": "ChST", "HEPMX": "HEPMX", "AWST": "Ɣetoɖoƒe Australia gaƒoƒoɖoanyime", "∅∅∅": "Amazon dzomeŋɔli gaƒoƒome", "AST": "Atlantic gaƒoƒoɖoanyime", "OEZ": "Ɣedzeƒe Europe gaƒoƒoɖoanyime", "EDT": "Ɣedzeƒe America ŋkekeme gaƒoƒome", "LHST": "LHST", "HNCU": "Kuba gaƒoƒoɖoanyime", "WESZ": "Ɣetoɖoƒe Europe ŋkekeme gaƒoƒome", "WART": "Ɣetoɖoƒe Argentina gaƒoƒoɖoanyime", "TMT": "Tɛkmenistan gaƒoƒoɖoanyime", "AEST": "Ɣedzeƒe Australia gaƒoƒoɖoanyime", "ADT": "Atlantic ŋkekeme gaƒoƒome", "AKST": "Alaska gaƒoƒoɖoanyime", "HEPM": "Saint Pierre kple Mikuelon ŋkekeme gaƒoƒome", "ECT": "Ikuedɔ dzomeŋɔli gaƒoƒome", "ACWST": "Australia ɣetoɖofe gaƒoƒoɖoanyime"},
}
}
diff --git a/ee_TG/ee_TG.go b/ee_TG/ee_TG.go
index f459781c..29d7f051 100644
--- a/ee_TG/ee_TG.go
+++ b/ee_TG/ee_TG.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"hY", "Yŋ"},
erasNarrow: []string{"hY", "Yŋ"},
erasWide: []string{"Hafi Yesu Va Do ŋgɔ", "Yesu Ŋɔli"},
- timezones: map[string]string{"UYST": "Uruguai dzomeŋɔli gaƒoƒome", "MESZ": "Titina Europe ŋkekeme gaƒoƒome", "WART": "Ɣetoɖoƒe Argentina gaƒoƒoɖoanyime", "HECU": "Kuba ŋkekeme gaƒoƒome", "MDT": "Makau ŋkekeme gaƒoƒome", "ADT": "Atlantic ŋkekeme gaƒoƒome", "LHDT": "LHDT", "HEEG": "Ɣedzeƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "SAST": "Anyiehe Africa gaƒoƒome", "WAST": "Ɣetoɖoƒe Africa ŋkekeme gaƒoƒome", "COT": "Kolombia gaƒoƒoɖoanyime", "AST": "Atlantic gaƒoƒoɖoanyime", "UYT": "Uruguai gaƒoƒoɖoanyime", "BT": "BT", "ART": "Argentina gaƒoƒoɖoanyime", "AWST": "Ɣetoɖoƒe Australia gaƒoƒoɖoanyime", "OEZ": "Ɣedzeƒe Europe gaƒoƒoɖoanyime", "WARST": "Ɣetoɖoƒe Argentina dzomeŋɔli gaƒoƒome", "WESZ": "Ɣetoɖoƒe Europe ŋkekeme gaƒoƒome", "ACWST": "Australia ɣetoɖofe gaƒoƒoɖoanyime", "NZST": "NZST", "IST": "IST", "AKDT": "Alaska ŋkekeme gaƒoƒome", "MYT": "MYT", "HNT": "Niufaunɖlanɖ gaƒoƒoɖoanyime", "AEDT": "Ɣedzeƒe Australia ŋkekeme gaƒoƒome", "MEZ": "Titina Europe gaƒoƒoɖoanyime", "EAT": "Ɣedzeƒe Africa gaƒoƒome", "GMT": "Greenwich gaƒoƒome", "CST": "Titina America gaƒoƒoɖoanyime", "ARST": "Argentina dzomeŋɔli gaƒoƒome", "HKT": "Hɔng Kɔng gaƒoƒoɖoanyi me", "HNPM": "Saint Pierre kple Mikuelon gaƒoƒoɖoanyime", "VET": "Venezuela gaƒoƒome", "HAT": "Niufaunɖlanɖ ŋkekeme gaƒoƒome", "HNOG": "Ɣetoɖoƒe Grinlanɖ gaƒoƒoɖoanyime", "BOT": "Bolivia gaƒoƒome", "TMST": "Tɛkmenistan dzomeŋɔli gaƒoƒome", "WAT": "Ɣetoɖoƒe Afrika gaƒoƒoɖoanyime", "HENOMX": "HENOMX", "PST": "Pacific gaƒoƒoɖoanyime", "AEST": "Ɣedzeƒe Australia gaƒoƒoɖoanyime", "GFT": "Frentsi Guiana gaƒoƒome", "CAT": "Titina Afrika gaƒoƒome", "COST": "Kolombia dzomeŋɔli gaƒoƒome", "HNNOMX": "HNNOMX", "CDT": "Titina America ŋkekeme gaƒoƒome", "WIB": "WIB", "CLT": "Tsile gaƒoƒoɖoanyime", "ECT": "Ikuedɔ dzomeŋɔli gaƒoƒome", "SRT": "Suriname gaƒoƒome", "WEZ": "Ɣetoɖoƒe Europe gaƒoƒoɖoanyime", "HEOG": "Ɣetoɖoƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "CLST": "Tsile dzomeŋɔli gaƒoƒome", "TMT": "Tɛkmenistan gaƒoƒoɖoanyime", "HNCU": "Kuba gaƒoƒoɖoanyime", "WIT": "WIT", "ACWDT": "Australia ɣetoɖofe ŋkekeme gaƒoƒome", "CHADT": "CHADT", "NZDT": "NZDT", "ChST": "ChST", "ACST": "Titina Australia gaƒoƒoɖoanyime", "EDT": "Ɣedzeƒe America ŋkekeme gaƒoƒome", "MST": "Makau gaƒoƒoɖoanyime", "WITA": "WITA", "JDT": "Japan ŋkekeme gaƒoƒome", "HNEG": "Ɣedzeƒe Grinlanɖ gaƒoƒoɖoanyime", "SGT": "SGT", "AKST": "Alaska gaƒoƒoɖoanyime", "GYT": "Gayana gaƒoƒome", "HADT": "Hawaii-Aleutia ŋkekeme gaƒoƒome", "PDT": "Pacific ŋkekme gaƒoƒome", "HKST": "Hɔng Kɔng dzomeŋɔli gaƒoƒome", "CHAST": "CHAST", "OESZ": "Ɣedzeƒe Europe ŋkekeme gaƒoƒome", "EST": "Ɣedzeƒe America gaƒoƒoɖoanyime", "HNPMX": "HNPMX", "LHST": "LHST", "JST": "Japan gaƒoƒoɖanyime", "ACDT": "Titina Australia ŋkekeme gaƒoƒome", "∅∅∅": "Peru dzomeŋɔli gaƒoƒome", "HEPMX": "HEPMX", "HAST": "Hawaii-Aleutia gaƒoƒoɖoanyime", "AWDT": "Ɣetoɖoƒe Australia ŋkekeme gaƒoƒome", "HEPM": "Saint Pierre kple Mikuelon ŋkekeme gaƒoƒome"},
+ timezones: map[string]string{"WART": "Ɣetoɖoƒe Argentina gaƒoƒoɖoanyime", "WARST": "Ɣetoɖoƒe Argentina dzomeŋɔli gaƒoƒome", "COST": "Kolombia dzomeŋɔli gaƒoƒome", "CDT": "Titina America ŋkekeme gaƒoƒome", "SAST": "Anyiehe Africa gaƒoƒome", "ECT": "Ikuedɔ dzomeŋɔli gaƒoƒome", "JST": "Japan gaƒoƒoɖanyime", "OEZ": "Ɣedzeƒe Europe gaƒoƒoɖoanyime", "HNEG": "Ɣedzeƒe Grinlanɖ gaƒoƒoɖoanyime", "WITA": "WITA", "HNCU": "Kuba gaƒoƒoɖoanyime", "EAT": "Ɣedzeƒe Africa gaƒoƒome", "AEST": "Ɣedzeƒe Australia gaƒoƒoɖoanyime", "HNPM": "Saint Pierre kple Mikuelon gaƒoƒoɖoanyime", "HEPM": "Saint Pierre kple Mikuelon ŋkekeme gaƒoƒome", "LHST": "LHST", "HAST": "Hawaii-Aleutia gaƒoƒoɖoanyime", "MYT": "MYT", "WEZ": "Ɣetoɖoƒe Europe gaƒoƒoɖoanyime", "AKST": "Alaska gaƒoƒoɖoanyime", "WAT": "Ɣetoɖoƒe Afrika gaƒoƒoɖoanyime", "ARST": "Argentina dzomeŋɔli gaƒoƒome", "HADT": "Hawaii-Aleutia ŋkekeme gaƒoƒome", "TMT": "Tɛkmenistan gaƒoƒoɖoanyime", "GYT": "Gayana gaƒoƒome", "WIT": "WIT", "MEZ": "Titina Europe gaƒoƒoɖoanyime", "AST": "Atlantic gaƒoƒoɖoanyime", "HKST": "Hɔng Kɔng dzomeŋɔli gaƒoƒome", "HEEG": "Ɣedzeƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "HEPMX": "HEPMX", "ACWST": "Australia ɣetoɖofe gaƒoƒoɖoanyime", "HNNOMX": "HNNOMX", "HAT": "Niufaunɖlanɖ ŋkekeme gaƒoƒome", "CHADT": "CHADT", "SRT": "Suriname gaƒoƒome", "CST": "Titina America gaƒoƒoɖoanyime", "UYST": "Uruguai dzomeŋɔli gaƒoƒome", "UYT": "Uruguai gaƒoƒoɖoanyime", "AWDT": "Ɣetoɖoƒe Australia ŋkekeme gaƒoƒome", "CHAST": "CHAST", "NZST": "NZST", "NZDT": "NZDT", "GMT": "Greenwich gaƒoƒome", "WAST": "Ɣetoɖoƒe Africa ŋkekeme gaƒoƒome", "GFT": "Frentsi Guiana gaƒoƒome", "HNPMX": "HNPMX", "BOT": "Bolivia gaƒoƒome", "MESZ": "Titina Europe ŋkekeme gaƒoƒome", "HKT": "Hɔng Kɔng gaƒoƒoɖoanyi me", "COT": "Kolombia gaƒoƒoɖoanyime", "LHDT": "LHDT", "IST": "IST", "VET": "Venezuela gaƒoƒome", "OESZ": "Ɣedzeƒe Europe ŋkekeme gaƒoƒome", "HECU": "Kuba ŋkekeme gaƒoƒome", "HEOG": "Ɣetoɖoƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "HENOMX": "HENOMX", "CLST": "Tsile dzomeŋɔli gaƒoƒome", "AKDT": "Alaska ŋkekeme gaƒoƒome", "JDT": "Japan ŋkekeme gaƒoƒome", "HNOG": "Ɣetoɖoƒe Grinlanɖ gaƒoƒoɖoanyime", "ACDT": "Titina Australia ŋkekeme gaƒoƒome", "BT": "BT", "MST": "America Todzidukɔwo ƒe gaƒoƒoɖoanyime", "ACWDT": "Australia ɣetoɖofe ŋkekeme gaƒoƒome", "EST": "Ɣedzeƒe America gaƒoƒoɖoanyime", "MDT": "America Todzidukɔwo ƒe ŋkekme gaƒoƒome", "AWST": "Ɣetoɖoƒe Australia gaƒoƒoɖoanyime", "PST": "Pacific gaƒoƒoɖoanyime", "WESZ": "Ɣetoɖoƒe Europe ŋkekeme gaƒoƒome", "TMST": "Tɛkmenistan dzomeŋɔli gaƒoƒome", "ART": "Argentina gaƒoƒoɖoanyime", "EDT": "Ɣedzeƒe America ŋkekeme gaƒoƒome", "ACST": "Titina Australia gaƒoƒoɖoanyime", "WIB": "WIB", "HNT": "Niufaunɖlanɖ gaƒoƒoɖoanyime", "ChST": "ChST", "∅∅∅": "Azores dzomeŋɔli gaƒoƒome", "SGT": "SGT", "PDT": "Pacific ŋkekme gaƒoƒome", "CAT": "Titina Afrika gaƒoƒome", "CLT": "Tsile gaƒoƒoɖoanyime", "ADT": "Atlantic ŋkekeme gaƒoƒome", "AEDT": "Ɣedzeƒe Australia ŋkekeme gaƒoƒome"},
}
}
diff --git a/el/el.go b/el/el.go
index 09ac4f65..870d4b54 100644
--- a/el/el.go
+++ b/el/el.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"π.Χ.", "μ.Χ."},
erasNarrow: []string{"", ""},
erasWide: []string{"προ Χριστού", "μετά Χριστόν"},
- timezones: map[string]string{"PDT": "Θερινή ώρα Βόρειας Αμερικής", "HEPM": "Θερινή ώρα Σαιντ Πιερ και Μικελόν", "PST": "Χειμερινή ώρα Βόρειας Αμερικής", "ChST": "Ώρα Τσαμόρο", "AEDT": "Θερινή ώρα Ανατολικής Αυστραλίας", "GFT": "Ώρα Γαλλικής Γουιάνας", "TMST": "Θερινή ώρα Τουρκμενιστάν", "COST": "Θερινή ώρα Κολομβίας", "WARST": "Θερινή ώρα Δυτικής Αργεντινής", "GMT": "Μέση ώρα Γκρίνουιτς", "HKST": "Θερινή ώρα Χονγκ Κονγκ", "AEST": "Χειμερινή ώρα Ανατολικής Αυστραλίας", "∅∅∅": "Θερινή ώρα Περού", "AST": "Χειμερινή ώρα Ατλαντικού", "WIT": "Ώρα Ανατολικής Ινδονησίας", "NZDT": "Θερινή ώρα Νέας Ζηλανδίας", "CAT": "Ώρα Κεντρικής Αφρικής", "AWDT": "Θερινή ώρα Δυτικής Αυστραλίας", "CLT": "Χειμερινή ώρα Χιλής", "HKT": "Χειμερινή ώρα Χονγκ Κονγκ", "HECU": "Θερινή ώρα Κούβας", "UYST": "Θερινή ώρα Ουρουγουάης", "HAT": "Θερινή ώρα Νέας Γης", "ARST": "Θερινή ώρα Αργεντινής", "HNOG": "Χειμερινή ώρα Δυτικής Γροιλανδίας", "TMT": "Χειμερινή ώρα Τουρκμενιστάν", "WART": "Χειμερινή ώρα Δυτικής Αργεντινής", "SGT": "Ώρα Σιγκαπούρης", "AKDT": "Θερινή ώρα Αλάσκας", "WIB": "Ώρα Δυτικής Ινδονησίας", "VET": "Ώρα Βενεζουέλας", "LHST": "Χειμερινή ώρα Λορντ Χάου", "CLST": "Θερινή ώρα Χιλής", "HENOMX": "Θερινή ώρα Βορειοδυτικού Μεξικού", "MST": "Χειμερινή ώρα Μακάο", "EST": "Ανατολική χειμερινή ώρα Βόρειας Αμερικής", "EDT": "Ανατολική θερινή ώρα Βόρειας Αμερικής", "GYT": "Ώρα Γουιάνας", "HNT": "Χειμερινή ώρα Νέας Γης", "EAT": "Ώρα Ανατολικής Αφρικής", "WAT": "Χειμερινή ώρα Δυτικής Αφρικής", "HNNOMX": "Χειμερινή ώρα Βορειοδυτικού Μεξικού", "MDT": "Θερινή ώρα Μακάο", "HNPMX": "Χειμερινή ώρα Ειρηνικού Μεξικού", "HNCU": "Χειμερινή ώρα Κούβας", "CDT": "Κεντρική θερινή ώρα Βόρειας Αμερικής", "UYT": "Χειμερινή ώρα Ουρουγουάης", "HAST": "Χειμερινή ώρα Χαβάης-Αλεούτιων νήσων", "HADT": "Θερινή ώρα Χαβάης-Αλεούτιων νήσων", "ACST": "Χειμερινή ώρα Κεντρικής Αυστραλίας", "CST": "Κεντρική χειμερινή ώρα Βόρειας Αμερικής", "WESZ": "Θερινή ώρα Δυτικής Ευρώπης", "MEZ": "Χειμερινή ώρα Κεντρικής Ευρώπης", "SAST": "Χειμερινή ώρα Νότιας Αφρικής", "AKST": "Χειμερινή ώρα Αλάσκας", "BT": "Ώρα Μπουτάν", "ACWDT": "Θερινή ώρα Κεντροδυτικής Αυστραλίας", "ACDT": "Θερινή ώρα Κεντρικής Αυστραλίας", "WAST": "Θερινή ώρα Δυτικής Αφρικής", "OESZ": "Θερινή ώρα Ανατολικής Ευρώπης", "COT": "Χειμερινή ώρα Κολομβίας", "HEPMX": "Θερινή ώρα Ειρηνικού Μεξικού", "CHADT": "Θερινή ώρα Τσάθαμ", "HNEG": "Χειμερινή ώρα Ανατολικής Γροιλανδίας", "ECT": "Ώρα Εκουαδόρ", "MYT": "Ώρα Μαλαισίας", "AWST": "Χειμερινή ώρα Δυτικής Αυστραλίας", "IST": "Ώρα Ινδίας", "LHDT": "Θερινή ώρα Λορντ Χάου", "CHAST": "Χειμερινή ώρα Τσάθαμ", "JST": "Χειμερινή ώρα Ιαπωνίας", "SRT": "Ώρα Σουρινάμ", "WEZ": "Χειμερινή ώρα Δυτικής Ευρώπης", "ACWST": "Χειμερινή ώρα Κεντροδυτικής Αυστραλίας", "HEOG": "Θερινή ώρα Δυτικής Γροιλανδίας", "WITA": "Ώρα Κεντρικής Ινδονησίας", "BOT": "Ώρα Βολιβίας", "HEEG": "Θερινή ώρα Ανατολικής Γροιλανδίας", "ADT": "Θερινή ώρα Ατλαντικού", "ART": "Χειμερινή ώρα Αργεντινής", "HNPM": "Χειμερινή ώρα Σαιντ Πιερ και Μικελόν", "MESZ": "Θερινή ώρα Κεντρικής Ευρώπης", "OEZ": "Χειμερινή ώρα Ανατολικής Ευρώπης", "NZST": "Χειμερινή ώρα Νέας Ζηλανδίας", "JDT": "Θερινή ώρα Ιαπωνίας"},
+ timezones: map[string]string{"ACWST": "Χειμερινή ώρα Κεντροδυτικής Αυστραλίας", "JST": "Χειμερινή ώρα Ιαπωνίας", "OESZ": "Θερινή ώρα Ανατολικής Ευρώπης", "HENOMX": "Θερινή ώρα Βορειοδυτικού Μεξικού", "GYT": "Ώρα Γουιάνας", "WIB": "Ώρα Δυτικής Ινδονησίας", "HNCU": "Χειμερινή ώρα Κούβας", "BOT": "Ώρα Βολιβίας", "HKT": "Χειμερινή ώρα Χονγκ Κονγκ", "WARST": "Θερινή ώρα Δυτικής Αργεντινής", "COT": "Χειμερινή ώρα Κολομβίας", "COST": "Θερινή ώρα Κολομβίας", "MDT": "Ορεινή θερινή ώρα Βόρειας Αμερικής", "ChST": "Ώρα Τσαμόρο", "MESZ": "Θερινή ώρα Κεντρικής Ευρώπης", "AEDT": "Θερινή ώρα Ανατολικής Αυστραλίας", "PST": "Χειμερινή ώρα Βόρειας Αμερικής", "WESZ": "Θερινή ώρα Δυτικής Ευρώπης", "HNOG": "Χειμερινή ώρα Δυτικής Γροιλανδίας", "OEZ": "Χειμερινή ώρα Ανατολικής Ευρώπης", "ACST": "Χειμερινή ώρα Κεντρικής Αυστραλίας", "UYST": "Θερινή ώρα Ουρουγουάης", "VET": "Ώρα Βενεζουέλας", "WAST": "Θερινή ώρα Δυτικής Αφρικής", "AST": "Χειμερινή ώρα Ατλαντικού", "BT": "Ώρα Μπουτάν", "AEST": "Χειμερινή ώρα Ανατολικής Αυστραλίας", "AKST": "Χειμερινή ώρα Αλάσκας", "UYT": "Χειμερινή ώρα Ουρουγουάης", "HEPMX": "Θερινή ώρα Ειρηνικού Μεξικού", "ACDT": "Θερινή ώρα Κεντρικής Αυστραλίας", "HECU": "Θερινή ώρα Κούβας", "CAT": "Ώρα Κεντρικής Αφρικής", "ARST": "Θερινή ώρα Αργεντινής", "EST": "Ανατολική χειμερινή ώρα Βόρειας Αμερικής", "WITA": "Ώρα Κεντρικής Ινδονησίας", "LHDT": "Θερινή ώρα Λορντ Χάου", "WIT": "Ώρα Ανατολικής Ινδονησίας", "NZST": "Χειμερινή ώρα Νέας Ζηλανδίας", "ART": "Χειμερινή ώρα Αργεντινής", "HEEG": "Θερινή ώρα Ανατολικής Γροιλανδίας", "HAT": "Θερινή ώρα Νέας Γης", "EAT": "Ώρα Ανατολικής Αφρικής", "AWDT": "Θερινή ώρα Δυτικής Αυστραλίας", "CHADT": "Θερινή ώρα Τσάθαμ", "HNPMX": "Χειμερινή ώρα Ειρηνικού Μεξικού", "SGT": "Ώρα Σιγκαπούρης", "WEZ": "Χειμερινή ώρα Δυτικής Ευρώπης", "MYT": "Ώρα Μαλαισίας", "WART": "Χειμερινή ώρα Δυτικής Αργεντινής", "ADT": "Θερινή ώρα Ατλαντικού", "TMT": "Χειμερινή ώρα Τουρκμενιστάν", "HNNOMX": "Χειμερινή ώρα Βορειοδυτικού Μεξικού", "SAST": "Χειμερινή ώρα Νότιας Αφρικής", "CST": "Κεντρική χειμερινή ώρα Βόρειας Αμερικής", "HAST": "Χειμερινή ώρα Χαβάης-Αλεούτιων νήσων", "NZDT": "Θερινή ώρα Νέας Ζηλανδίας", "MST": "Ορεινή χειμερινή ώρα Βόρειας Αμερικής", "LHST": "Χειμερινή ώρα Λορντ Χάου", "CHAST": "Χειμερινή ώρα Τσάθαμ", "ACWDT": "Θερινή ώρα Κεντροδυτικής Αυστραλίας", "JDT": "Θερινή ώρα Ιαπωνίας", "AKDT": "Θερινή ώρα Αλάσκας", "PDT": "Θερινή ώρα Βόρειας Αμερικής", "IST": "Ώρα Ινδίας", "MEZ": "Χειμερινή ώρα Κεντρικής Ευρώπης", "TMST": "Θερινή ώρα Τουρκμενιστάν", "HNT": "Χειμερινή ώρα Νέας Γης", "GFT": "Ώρα Γαλλικής Γουιάνας", "HNPM": "Χειμερινή ώρα Σαιντ Πιερ και Μικελόν", "SRT": "Ώρα Σουρινάμ", "EDT": "Ανατολική θερινή ώρα Βόρειας Αμερικής", "HNEG": "Χειμερινή ώρα Ανατολικής Γροιλανδίας", "AWST": "Χειμερινή ώρα Δυτικής Αυστραλίας", "CLST": "Θερινή ώρα Χιλής", "WAT": "Χειμερινή ώρα Δυτικής Αφρικής", "GMT": "Μέση ώρα Γκρίνουιτς", "CLT": "Χειμερινή ώρα Χιλής", "HEOG": "Θερινή ώρα Δυτικής Γροιλανδίας", "∅∅∅": "∅∅∅", "HEPM": "Θερινή ώρα Σαιντ Πιερ και Μικελόν", "CDT": "Κεντρική θερινή ώρα Βόρειας Αμερικής", "HADT": "Θερινή ώρα Χαβάης-Αλεούτιων νήσων", "ECT": "Ώρα Εκουαδόρ", "HKST": "Θερινή ώρα Χονγκ Κονγκ"},
}
}
diff --git a/el_CY/el_CY.go b/el_CY/el_CY.go
index 88ce6822..0f440361 100644
--- a/el_CY/el_CY.go
+++ b/el_CY/el_CY.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"π.Χ.", "μ.Χ."},
erasNarrow: []string{"", ""},
erasWide: []string{"προ Χριστού", "μετά Χριστόν"},
- timezones: map[string]string{"WAT": "Χειμερινή ώρα Δυτικής Αφρικής", "CDT": "Κεντρική θερινή ώρα Βόρειας Αμερικής", "HEOG": "Θερινή ώρα Δυτικής Γροιλανδίας", "AEST": "Χειμερινή ώρα Ανατολικής Αυστραλίας", "NZST": "Χειμερινή ώρα Νέας Ζηλανδίας", "NZDT": "Θερινή ώρα Νέας Ζηλανδίας", "WARST": "Θερινή ώρα Δυτικής Αργεντινής", "PDT": "Θερινή ώρα Βόρειας Αμερικής", "ACWDT": "Θερινή ώρα Κεντροδυτικής Αυστραλίας", "HNPM": "Χειμερινή ώρα Σαιντ Πιερ και Μικελόν", "ChST": "Ώρα Τσαμόρο", "MEZ": "Χειμερινή ώρα Κεντρικής Ευρώπης", "WART": "Χειμερινή ώρα Δυτικής Αργεντινής", "UYST": "Θερινή ώρα Ουρουγουάης", "CST": "Κεντρική χειμερινή ώρα Βόρειας Αμερικής", "WIB": "Ώρα Δυτικής Ινδονησίας", "AEDT": "Θερινή ώρα Ανατολικής Αυστραλίας", "HNPMX": "Χειμερινή ώρα Ειρηνικού Μεξικού", "HAST": "Χειμερινή ώρα Χαβάης-Αλεούτιων νήσων", "BT": "Ώρα Μπουτάν", "AWDT": "Θερινή ώρα Δυτικής Αυστραλίας", "HKST": "Θερινή ώρα Χονγκ Κονγκ", "HADT": "Θερινή ώρα Χαβάης-Αλεούτιων νήσων", "SRT": "Ώρα Σουρινάμ", "HNOG": "Χειμερινή ώρα Δυτικής Γροιλανδίας", "ARST": "Θερινή ώρα Αργεντινής", "AWST": "Χειμερινή ώρα Δυτικής Αυστραλίας", "CLT": "Χειμερινή ώρα Χιλής", "HNEG": "Χειμερινή ώρα Ανατολικής Γροιλανδίας", "WAST": "Θερινή ώρα Δυτικής Αφρικής", "∅∅∅": "Θερινή ώρα Αζορών", "MYT": "Ώρα Μαλαισίας", "ADT": "Θερινή ώρα Ατλαντικού", "HNT": "Χειμερινή ώρα Νέας Γης", "HKT": "Χειμερινή ώρα Χονγκ Κονγκ", "COT": "Χειμερινή ώρα Κολομβίας", "SGT": "Ώρα Σιγκαπούρης", "EDT": "Ανατολική θερινή ώρα Βόρειας Αμερικής", "BOT": "Ώρα Βολιβίας", "GYT": "Ώρα Γουιάνας", "WESZ": "Θερινή ώρα Δυτικής Ευρώπης", "GFT": "Ώρα Γαλλικής Γουιάνας", "MST": "Χειμερινή ώρα Μακάο", "AST": "Χειμερινή ώρα Ατλαντικού", "LHST": "Χειμερινή ώρα Λορντ Χάου", "IST": "Ώρα Ινδίας", "LHDT": "Θερινή ώρα Λορντ Χάου", "TMT": "Χειμερινή ώρα Τουρκμενιστάν", "EAT": "Ώρα Ανατολικής Αφρικής", "UYT": "Χειμερινή ώρα Ουρουγουάης", "AKDT": "Θερινή ώρα Αλάσκας", "ACWST": "Χειμερινή ώρα Κεντροδυτικής Αυστραλίας", "ART": "Χειμερινή ώρα Αργεντινής", "HEPM": "Θερινή ώρα Σαιντ Πιερ και Μικελόν", "COST": "Θερινή ώρα Κολομβίας", "VET": "Ώρα Βενεζουέλας", "HEEG": "Θερινή ώρα Ανατολικής Γροιλανδίας", "TMST": "Θερινή ώρα Τουρκμενιστάν", "HEPMX": "Θερινή ώρα Ειρηνικού Μεξικού", "CLST": "Θερινή ώρα Χιλής", "ACDT": "Θερινή ώρα Κεντρικής Αυστραλίας", "HENOMX": "Θερινή ώρα Βορειοδυτικού Μεξικού", "GMT": "Μέση ώρα Γκρίνουιτς", "WEZ": "Χειμερινή ώρα Δυτικής Ευρώπης", "CHAST": "Χειμερινή ώρα Τσάθαμ", "JDT": "Θερινή ώρα Ιαπωνίας", "CAT": "Ώρα Κεντρικής Αφρικής", "OEZ": "Χειμερινή ώρα Ανατολικής Ευρώπης", "ECT": "Ώρα Εκουαδόρ", "MDT": "Θερινή ώρα Μακάο", "WIT": "Ώρα Ανατολικής Ινδονησίας", "PST": "Χειμερινή ώρα Βόρειας Αμερικής", "CHADT": "Θερινή ώρα Τσάθαμ", "JST": "Χειμερινή ώρα Ιαπωνίας", "AKST": "Χειμερινή ώρα Αλάσκας", "MESZ": "Θερινή ώρα Κεντρικής Ευρώπης", "SAST": "Χειμερινή ώρα Νότιας Αφρικής", "ACST": "Χειμερινή ώρα Κεντρικής Αυστραλίας", "WITA": "Ώρα Κεντρικής Ινδονησίας", "OESZ": "Θερινή ώρα Ανατολικής Ευρώπης", "HNNOMX": "Χειμερινή ώρα Βορειοδυτικού Μεξικού", "HNCU": "Χειμερινή ώρα Κούβας", "HECU": "Θερινή ώρα Κούβας", "EST": "Ανατολική χειμερινή ώρα Βόρειας Αμερικής", "HAT": "Θερινή ώρα Νέας Γης"},
+ timezones: map[string]string{"IST": "Ώρα Ινδίας", "OESZ": "Θερινή ώρα Ανατολικής Ευρώπης", "WEZ": "Χειμερινή ώρα Δυτικής Ευρώπης", "WARST": "Θερινή ώρα Δυτικής Αργεντινής", "AEST": "Χειμερινή ώρα Ανατολικής Αυστραλίας", "UYST": "Θερινή ώρα Ουρουγουάης", "SGT": "Ώρα Σιγκαπούρης", "ECT": "Ώρα Εκουαδόρ", "ChST": "Ώρα Τσαμόρο", "COST": "Θερινή ώρα Κολομβίας", "HNPM": "Χειμερινή ώρα Σαιντ Πιερ και Μικελόν", "HEPM": "Θερινή ώρα Σαιντ Πιερ και Μικελόν", "HECU": "Θερινή ώρα Κούβας", "NZDT": "Θερινή ώρα Νέας Ζηλανδίας", "JDT": "Θερινή ώρα Ιαπωνίας", "MEZ": "Χειμερινή ώρα Κεντρικής Ευρώπης", "TMT": "Χειμερινή ώρα Τουρκμενιστάν", "ART": "Χειμερινή ώρα Αργεντινής", "MST": "Χειμερινή ώρα Μακάο", "HNPMX": "Χειμερινή ώρα Ειρηνικού Μεξικού", "CST": "Κεντρική χειμερινή ώρα Βόρειας Αμερικής", "AWDT": "Θερινή ώρα Δυτικής Αυστραλίας", "MDT": "Θερινή ώρα Μακάο", "EST": "Ανατολική χειμερινή ώρα Βόρειας Αμερικής", "∅∅∅": "Θερινή ώρα Μπραζίλια", "ARST": "Θερινή ώρα Αργεντινής", "JST": "Χειμερινή ώρα Ιαπωνίας", "MESZ": "Θερινή ώρα Κεντρικής Ευρώπης", "WAT": "Χειμερινή ώρα Δυτικής Αφρικής", "HNT": "Χειμερινή ώρα Νέας Γης", "EAT": "Ώρα Ανατολικής Αφρικής", "CDT": "Κεντρική θερινή ώρα Βόρειας Αμερικής", "ACWDT": "Θερινή ώρα Κεντροδυτικής Αυστραλίας", "SAST": "Χειμερινή ώρα Νότιας Αφρικής", "PDT": "Θερινή ώρα Βόρειας Αμερικής", "AKDT": "Θερινή ώρα Αλάσκας", "HEOG": "Θερινή ώρα Δυτικής Γροιλανδίας", "WAST": "Θερινή ώρα Δυτικής Αφρικής", "LHST": "Χειμερινή ώρα Λορντ Χάου", "WIT": "Ώρα Ανατολικής Ινδονησίας", "BOT": "Ώρα Βολιβίας", "EDT": "Ανατολική θερινή ώρα Βόρειας Αμερικής", "HENOMX": "Θερινή ώρα Βορειοδυτικού Μεξικού", "HAT": "Θερινή ώρα Νέας Γης", "GFT": "Ώρα Γαλλικής Γουιάνας", "AKST": "Χειμερινή ώρα Αλάσκας", "GYT": "Ώρα Γουιάνας", "CHADT": "Θερινή ώρα Τσάθαμ", "VET": "Ώρα Βενεζουέλας", "AWST": "Χειμερινή ώρα Δυτικής Αυστραλίας", "HKT": "Χειμερινή ώρα Χονγκ Κονγκ", "ADT": "Θερινή ώρα Ατλαντικού", "HNOG": "Χειμερινή ώρα Δυτικής Γροιλανδίας", "LHDT": "Θερινή ώρα Λορντ Χάου", "NZST": "Χειμερινή ώρα Νέας Ζηλανδίας", "CAT": "Ώρα Κεντρικής Αφρικής", "BT": "Ώρα Μπουτάν", "CLST": "Θερινή ώρα Χιλής", "COT": "Χειμερινή ώρα Κολομβίας", "HNEG": "Χειμερινή ώρα Ανατολικής Γροιλανδίας", "WITA": "Ώρα Κεντρικής Ινδονησίας", "HEPMX": "Θερινή ώρα Ειρηνικού Μεξικού", "HADT": "Θερινή ώρα Χαβάης-Αλεούτιων νήσων", "GMT": "Μέση ώρα Γκρίνουιτς", "WESZ": "Θερινή ώρα Δυτικής Ευρώπης", "MYT": "Ώρα Μαλαισίας", "AST": "Χειμερινή ώρα Ατλαντικού", "UYT": "Χειμερινή ώρα Ουρουγουάης", "SRT": "Ώρα Σουρινάμ", "PST": "Χειμερινή ώρα Βόρειας Αμερικής", "HAST": "Χειμερινή ώρα Χαβάης-Αλεούτιων νήσων", "ACDT": "Θερινή ώρα Κεντρικής Αυστραλίας", "HEEG": "Θερινή ώρα Ανατολικής Γροιλανδίας", "AEDT": "Θερινή ώρα Ανατολικής Αυστραλίας", "HNCU": "Χειμερινή ώρα Κούβας", "CHAST": "Χειμερινή ώρα Τσάθαμ", "OEZ": "Χειμερινή ώρα Ανατολικής Ευρώπης", "CLT": "Χειμερινή ώρα Χιλής", "TMST": "Θερινή ώρα Τουρκμενιστάν", "HKST": "Θερινή ώρα Χονγκ Κονγκ", "HNNOMX": "Χειμερινή ώρα Βορειοδυτικού Μεξικού", "ACST": "Χειμερινή ώρα Κεντρικής Αυστραλίας", "WIB": "Ώρα Δυτικής Ινδονησίας", "ACWST": "Χειμερινή ώρα Κεντροδυτικής Αυστραλίας", "WART": "Χειμερινή ώρα Δυτικής Αργεντινής"},
}
}
diff --git a/el_GR/el_GR.go b/el_GR/el_GR.go
index 6a26471c..5704bc54 100644
--- a/el_GR/el_GR.go
+++ b/el_GR/el_GR.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"π.Χ.", "μ.Χ."},
erasNarrow: []string{"", ""},
erasWide: []string{"προ Χριστού", "μετά Χριστόν"},
- timezones: map[string]string{"WARST": "Θερινή ώρα Δυτικής Αργεντινής", "HKST": "Θερινή ώρα Χονγκ Κονγκ", "OESZ": "Θερινή ώρα Ανατολικής Ευρώπης", "SGT": "Ώρα Σιγκαπούρης", "JST": "Χειμερινή ώρα Ιαπωνίας", "BOT": "Ώρα Βολιβίας", "COT": "Χειμερινή ώρα Κολομβίας", "GYT": "Ώρα Γουιάνας", "UYT": "Χειμερινή ώρα Ουρουγουάης", "MESZ": "Θερινή ώρα Κεντρικής Ευρώπης", "NZDT": "Θερινή ώρα Νέας Ζηλανδίας", "WART": "Χειμερινή ώρα Δυτικής Αργεντινής", "COST": "Θερινή ώρα Κολομβίας", "ARST": "Θερινή ώρα Αργεντινής", "PST": "Χειμερινή ώρα Βόρειας Αμερικής", "AEST": "Χειμερινή ώρα Ανατολικής Αυστραλίας", "HKT": "Χειμερινή ώρα Χονγκ Κονγκ", "HEPM": "Θερινή ώρα Σαιντ Πιερ και Μικελόν", "MEZ": "Χειμερινή ώρα Κεντρικής Ευρώπης", "∅∅∅": "Θερινή ώρα Περού", "HEEG": "Θερινή ώρα Ανατολικής Γροιλανδίας", "AKDT": "Θερινή ώρα Αλάσκας", "CDT": "Κεντρική θερινή ώρα Βόρειας Αμερικής", "ART": "Χειμερινή ώρα Αργεντινής", "AWDT": "Θερινή ώρα Δυτικής Αυστραλίας", "HNPMX": "Χειμερινή ώρα Ειρηνικού Μεξικού", "WIT": "Ώρα Ανατολικής Ινδονησίας", "HNPM": "Χειμερινή ώρα Σαιντ Πιερ και Μικελόν", "CLST": "Θερινή ώρα Χιλής", "VET": "Ώρα Βενεζουέλας", "WIB": "Ώρα Δυτικής Ινδονησίας", "HADT": "Θερινή ώρα Χαβάης-Αλεούτιων νήσων", "BT": "Ώρα Μπουτάν", "HNT": "Χειμερινή ώρα Νέας Γης", "GFT": "Ώρα Γαλλικής Γουιάνας", "CAT": "Ώρα Κεντρικής Αφρικής", "SRT": "Ώρα Σουρινάμ", "HEOG": "Θερινή ώρα Δυτικής Γροιλανδίας", "NZST": "Χειμερινή ώρα Νέας Ζηλανδίας", "HNEG": "Χειμερινή ώρα Ανατολικής Γροιλανδίας", "ACDT": "Θερινή ώρα Κεντρικής Αυστραλίας", "HNNOMX": "Χειμερινή ώρα Βορειοδυτικού Μεξικού", "OEZ": "Χειμερινή ώρα Ανατολικής Ευρώπης", "UYST": "Θερινή ώρα Ουρουγουάης", "WESZ": "Θερινή ώρα Δυτικής Ευρώπης", "SAST": "Χειμερινή ώρα Νότιας Αφρικής", "IST": "Ώρα Ινδίας", "EAT": "Ώρα Ανατολικής Αφρικής", "HAST": "Χειμερινή ώρα Χαβάης-Αλεούτιων νήσων", "PDT": "Θερινή ώρα Βόρειας Αμερικής", "AWST": "Χειμερινή ώρα Δυτικής Αυστραλίας", "CHADT": "Θερινή ώρα Τσάθαμ", "TMT": "Χειμερινή ώρα Τουρκμενιστάν", "AST": "Χειμερινή ώρα Ατλαντικού", "HNCU": "Χειμερινή ώρα Κούβας", "ADT": "Θερινή ώρα Ατλαντικού", "AKST": "Χειμερινή ώρα Αλάσκας", "LHST": "Χειμερινή ώρα Λορντ Χάου", "WAST": "Θερινή ώρα Δυτικής Αφρικής", "EST": "Ανατολική χειμερινή ώρα Βόρειας Αμερικής", "EDT": "Ανατολική θερινή ώρα Βόρειας Αμερικής", "HEPMX": "Θερινή ώρα Ειρηνικού Μεξικού", "CST": "Κεντρική χειμερινή ώρα Βόρειας Αμερικής", "ACWDT": "Θερινή ώρα Κεντροδυτικής Αυστραλίας", "TMST": "Θερινή ώρα Τουρκμενιστάν", "ChST": "Ώρα Τσαμόρο", "WAT": "Χειμερινή ώρα Δυτικής Αφρικής", "MYT": "Ώρα Μαλαισίας", "CHAST": "Χειμερινή ώρα Τσάθαμ", "JDT": "Θερινή ώρα Ιαπωνίας", "ACST": "Χειμερινή ώρα Κεντρικής Αυστραλίας", "HENOMX": "Θερινή ώρα Βορειοδυτικού Μεξικού", "GMT": "Μέση ώρα Γκρίνουιτς", "MDT": "Θερινή ώρα Μακάο", "AEDT": "Θερινή ώρα Ανατολικής Αυστραλίας", "WITA": "Ώρα Κεντρικής Ινδονησίας", "CLT": "Χειμερινή ώρα Χιλής", "ECT": "Ώρα Εκουαδόρ", "WEZ": "Χειμερινή ώρα Δυτικής Ευρώπης", "HAT": "Θερινή ώρα Νέας Γης", "LHDT": "Θερινή ώρα Λορντ Χάου", "MST": "Χειμερινή ώρα Μακάο", "HNOG": "Χειμερινή ώρα Δυτικής Γροιλανδίας", "ACWST": "Χειμερινή ώρα Κεντροδυτικής Αυστραλίας", "HECU": "Θερινή ώρα Κούβας"},
+ timezones: map[string]string{"CLST": "Θερινή ώρα Χιλής", "ARST": "Θερινή ώρα Αργεντινής", "HNNOMX": "Χειμερινή ώρα Βορειοδυτικού Μεξικού", "AKDT": "Θερινή ώρα Αλάσκας", "ChST": "Ώρα Τσαμόρο", "ADT": "Θερινή ώρα Ατλαντικού", "HNPMX": "Χειμερινή ώρα Ειρηνικού Μεξικού", "CDT": "Κεντρική θερινή ώρα Βόρειας Αμερικής", "AWDT": "Θερινή ώρα Δυτικής Αυστραλίας", "HEEG": "Θερινή ώρα Ανατολικής Γροιλανδίας", "CHAST": "Χειμερινή ώρα Τσάθαμ", "MESZ": "Θερινή ώρα Κεντρικής Ευρώπης", "HNOG": "Χειμερινή ώρα Δυτικής Γροιλανδίας", "WESZ": "Θερινή ώρα Δυτικής Ευρώπης", "WAT": "Χειμερινή ώρα Δυτικής Αφρικής", "WAST": "Θερινή ώρα Δυτικής Αφρικής", "HKST": "Θερινή ώρα Χονγκ Κονγκ", "NZST": "Χειμερινή ώρα Νέας Ζηλανδίας", "UYT": "Χειμερινή ώρα Ουρουγουάης", "ECT": "Ώρα Εκουαδόρ", "NZDT": "Θερινή ώρα Νέας Ζηλανδίας", "ACWST": "Χειμερινή ώρα Κεντροδυτικής Αυστραλίας", "AST": "Χειμερινή ώρα Ατλαντικού", "EDT": "Ανατολική θερινή ώρα Βόρειας Αμερικής", "UYST": "Θερινή ώρα Ουρουγουάης", "HECU": "Θερινή ώρα Κούβας", "ACST": "Χειμερινή ώρα Κεντρικής Αυστραλίας", "HENOMX": "Θερινή ώρα Βορειοδυτικού Μεξικού", "LHST": "Χειμερινή ώρα Λορντ Χάου", "HEOG": "Θερινή ώρα Δυτικής Γροιλανδίας", "HAT": "Θερινή ώρα Νέας Γης", "SRT": "Ώρα Σουρινάμ", "HNCU": "Χειμερινή ώρα Κούβας", "PDT": "Θερινή ώρα Βόρειας Αμερικής", "ACWDT": "Θερινή ώρα Κεντροδυτικής Αυστραλίας", "ACDT": "Θερινή ώρα Κεντρικής Αυστραλίας", "CHADT": "Θερινή ώρα Τσάθαμ", "BOT": "Ώρα Βολιβίας", "EAT": "Ώρα Ανατολικής Αφρικής", "GMT": "Μέση ώρα Γκρίνουιτς", "OEZ": "Χειμερινή ώρα Ανατολικής Ευρώπης", "TMST": "Θερινή ώρα Τουρκμενιστάν", "AEDT": "Θερινή ώρα Ανατολικής Αυστραλίας", "LHDT": "Θερινή ώρα Λορντ Χάου", "HEPMX": "Θερινή ώρα Ειρηνικού Μεξικού", "MDT": "Θερινή ώρα Μακάο", "AEST": "Χειμερινή ώρα Ανατολικής Αυστραλίας", "WIB": "Ώρα Δυτικής Ινδονησίας", "WIT": "Ώρα Ανατολικής Ινδονησίας", "WARST": "Θερινή ώρα Δυτικής Αργεντινής", "TMT": "Χειμερινή ώρα Τουρκμενιστάν", "ART": "Χειμερινή ώρα Αργεντινής", "HNEG": "Χειμερινή ώρα Ανατολικής Γροιλανδίας", "SGT": "Ώρα Σιγκαπούρης", "COT": "Χειμερινή ώρα Κολομβίας", "COST": "Θερινή ώρα Κολομβίας", "BT": "Ώρα Μπουτάν", "GFT": "Ώρα Γαλλικής Γουιάνας", "CAT": "Ώρα Κεντρικής Αφρικής", "MST": "Χειμερινή ώρα Μακάο", "HAST": "Χειμερινή ώρα Χαβάης-Αλεούτιων νήσων", "AWST": "Χειμερινή ώρα Δυτικής Αυστραλίας", "∅∅∅": "Θερινή ώρα Αμαζονίου", "IST": "Ώρα Ινδίας", "MEZ": "Χειμερινή ώρα Κεντρικής Ευρώπης", "JST": "Χειμερινή ώρα Ιαπωνίας", "WEZ": "Χειμερινή ώρα Δυτικής Ευρώπης", "GYT": "Ώρα Γουιάνας", "HNPM": "Χειμερινή ώρα Σαιντ Πιερ και Μικελόν", "SAST": "Χειμερινή ώρα Νότιας Αφρικής", "MYT": "Ώρα Μαλαισίας", "WART": "Χειμερινή ώρα Δυτικής Αργεντινής", "OESZ": "Θερινή ώρα Ανατολικής Ευρώπης", "HKT": "Χειμερινή ώρα Χονγκ Κονγκ", "HNT": "Χειμερινή ώρα Νέας Γης", "WITA": "Ώρα Κεντρικής Ινδονησίας", "HADT": "Θερινή ώρα Χαβάης-Αλεούτιων νήσων", "CST": "Κεντρική χειμερινή ώρα Βόρειας Αμερικής", "PST": "Χειμερινή ώρα Βόρειας Αμερικής", "VET": "Ώρα Βενεζουέλας", "JDT": "Θερινή ώρα Ιαπωνίας", "CLT": "Χειμερινή ώρα Χιλής", "EST": "Ανατολική χειμερινή ώρα Βόρειας Αμερικής", "AKST": "Χειμερινή ώρα Αλάσκας", "HEPM": "Θερινή ώρα Σαιντ Πιερ και Μικελόν"},
}
}
diff --git a/en/en.go b/en/en.go
index 035677a0..5cb0ba82 100644
--- a/en/en.go
+++ b/en/en.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"SRT": "Suriname Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "WAST": "West Africa Summer Time", "WART": "Western Argentina Standard Time", "BT": "Bhutan Time", "HEOG": "West Greenland Summer Time", "ACWST": "Australian Central Western Standard Time", "JDT": "Japan Daylight Time", "TMST": "Turkmenistan Summer Time", "HEEG": "East Greenland Summer Time", "MYT": "Malaysia Time", "HAST": "Hawaii-Aleutian Standard Time", "PST": "Pacific Standard Time", "HNT": "Newfoundland Standard Time", "AWST": "Australian Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "JST": "Japan Standard Time", "CLST": "Chile Summer Time", "HNEG": "East Greenland Standard Time", "MST": "Mountain Standard Time", "OESZ": "Eastern European Summer Time", "SGT": "Singapore Standard Time", "ACDT": "Australian Central Daylight Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "EDT": "Eastern Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "HKT": "Hong Kong Standard Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "UYST": "Uruguay Summer Time", "MDT": "Mountain Daylight Time", "ACST": "Australian Central Standard Time", "GMT": "Greenwich Mean Time", "AKDT": "Alaska Daylight Time", "VET": "Venezuela Time", "AWDT": "Australian Western Daylight Time", "CLT": "Chile Standard Time", "BOT": "Bolivia Time", "EAT": "East Africa Time", "WAT": "West Africa Standard Time", "HAT": "Newfoundland Daylight Time", "ChST": "Chamorro Standard Time", "ADT": "Atlantic Daylight Time", "CDT": "Central Daylight Time", "LHST": "Lord Howe Standard Time", "MEZ": "Central European Standard Time", "WEZ": "Western European Standard Time", "CHAST": "Chatham Standard Time", "∅∅∅": "Amazon Summer Time", "GFT": "French Guiana Time", "EST": "Eastern Standard Time", "UYT": "Uruguay Standard Time", "AKST": "Alaska Standard Time", "WIB": "Western Indonesia Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "WITA": "Central Indonesia Time", "ARST": "Argentina Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "WIT": "Eastern Indonesia Time", "AEDT": "Australian Eastern Daylight Time", "OEZ": "Eastern European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "AST": "Atlantic Standard Time", "WESZ": "Western European Summer Time", "HKST": "Hong Kong Summer Time", "MESZ": "Central European Summer Time", "HNPMX": "Mexican Pacific Standard Time", "HNOG": "West Greenland Standard Time", "PDT": "Pacific Daylight Time", "GYT": "Guyana Time", "HADT": "Hawaii-Aleutian Daylight Time", "NZST": "New Zealand Standard Time", "CHADT": "Chatham Daylight Time", "TMT": "Turkmenistan Standard Time", "ECT": "Ecuador Time", "LHDT": "Lord Howe Daylight Time"},
+ timezones: map[string]string{"MST": "Macau Standard Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "EAT": "East Africa Time", "WIT": "Eastern Indonesia Time", "NZST": "New Zealand Standard Time", "AKST": "Alaska Standard Time", "UYT": "Uruguay Standard Time", "AWDT": "Australian Western Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "OEZ": "Eastern European Standard Time", "MYT": "Malaysia Time", "ACST": "Australian Central Standard Time", "AKDT": "Alaska Daylight Time", "HNCU": "Cuba Standard Time", "PST": "Pacific Standard Time", "WEZ": "Western European Standard Time", "COT": "Colombia Standard Time", "HNPMX": "Mexican Pacific Standard Time", "BOT": "Bolivia Time", "IST": "India Standard Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "AEDT": "Australian Eastern Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "SRT": "Suriname Time", "GYT": "Guyana Time", "HAST": "Hawaii-Aleutian Standard Time", "ECT": "Ecuador Time", "JDT": "Japan Daylight Time", "WARST": "Western Argentina Summer Time", "WAST": "West Africa Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "UYST": "Uruguay Summer Time", "CST": "Central Standard Time", "ARST": "Argentina Summer Time", "WAT": "West Africa Standard Time", "WIB": "Western Indonesia Time", "MEZ": "Central European Standard Time", "MESZ": "Central European Summer Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "WESZ": "Western European Summer Time", "ACWST": "Australian Central Western Standard Time", "AST": "Atlantic Standard Time", "COST": "Colombia Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "BT": "Bhutan Time", "∅∅∅": "Acre Summer Time", "AWST": "Australian Western Standard Time", "GFT": "French Guiana Time", "HECU": "Cuba Daylight Time", "CAT": "Central Africa Time", "ACWDT": "Australian Central Western Daylight Time", "WART": "Western Argentina Standard Time", "ChST": "Chamorro Standard Time", "LHST": "Lord Howe Standard Time", "SGT": "Singapore Standard Time", "JST": "Japan Standard Time", "CDT": "Central Daylight Time", "CHAST": "Chatham Standard Time", "PDT": "Pacific Daylight Time", "SAST": "South Africa Standard Time", "CHADT": "Chatham Daylight Time", "ADT": "Atlantic Daylight Time", "GMT": "Greenwich Mean Time", "TMT": "Turkmenistan Standard Time", "ART": "Argentina Standard Time", "HKST": "Hong Kong Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "WITA": "Central Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "EDT": "Eastern Daylight Time", "HKT": "Hong Kong Standard Time", "HNT": "Newfoundland Standard Time", "HEEG": "East Greenland Summer Time", "HNEG": "East Greenland Standard Time", "VET": "Venezuela Time", "OESZ": "Eastern European Summer Time", "TMST": "Turkmenistan Summer Time", "MDT": "Macau Summer Time", "EST": "Eastern Standard Time", "ACDT": "Australian Central Daylight Time"},
}
}
diff --git a/en_001/en_001.go b/en_001/en_001.go
index 27884a8f..2dae39da 100644
--- a/en_001/en_001.go
+++ b/en_001/en_001.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"GFT": "French Guiana Time", "MST": "Macau Standard Time", "ADT": "Atlantic Daylight Time", "UYST": "Uruguay Summer Time", "WIB": "Western Indonesia Time", "SAST": "South Africa Standard Time", "UYT": "Uruguay Standard Time", "AKST": "Alaska Standard Time", "IST": "India Standard Time", "CDT": "Central Daylight Time", "SRT": "Suriname Time", "MEZ": "Central European Standard Time", "MESZ": "Central European Summer Time", "JDT": "Japan Daylight Time", "ACDT": "Australian Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "HEEG": "East Greenland Summer Time", "ACST": "Australian Central Standard Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "HEOG": "West Greenland Summer Time", "ACWST": "Australian Central Western Standard Time", "AEST": "Australian Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "AWST": "Australian Western Standard Time", "CHADT": "Chatham Daylight Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "ARST": "Argentina Summer Time", "ACWDT": "Australian Central Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "JST": "Japan Standard Time", "WAT": "West Africa Standard Time", "EDT": "Eastern Daylight Time", "VET": "Venezuela Time", "HNEG": "East Greenland Standard Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "SGT": "Singapore Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "BT": "Bhutan Time", "HKT": "Hong Kong Standard Time", "WART": "Western Argentina Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "WEZ": "Western European Standard Time", "GYT": "Guyana Time", "WIT": "Eastern Indonesia Time", "HKST": "Hong Kong Summer Time", "CHAST": "Chatham Standard Time", "ChST": "Chamorro Standard Time", "BOT": "Bolivia Time", "WAST": "West Africa Summer Time", "HAT": "Newfoundland Daylight Time", "ART": "Argentina Standard Time", "CLST": "Chile Summer Time", "TMST": "Turkmenistan Summer Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "GMT": "Greenwich Mean Time", "MDT": "Macau Summer Time", "CST": "Central Standard Time", "AST": "Atlantic Standard Time", "MYT": "Malaysia Time", "PDT": "Pacific Daylight Time", "TMT": "Turkmenistan Standard Time", "NZST": "New Zealand Standard Time", "∅∅∅": "Peru Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "PST": "Pacific Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CLT": "Chile Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "LHST": "Lord Howe Standard Time", "ECT": "Ecuador Time", "EAT": "East Africa Time", "EST": "Eastern Standard Time", "HNT": "Newfoundland Standard Time", "HNOG": "West Greenland Standard Time", "WESZ": "Western European Summer Time", "WITA": "Central Indonesia Time", "AWDT": "Australian Western Daylight Time"},
+ timezones: map[string]string{"GMT": "Greenwich Mean Time", "ACDT": "Australian Central Daylight Time", "HNEG": "East Greenland Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CAT": "Central Africa Time", "MEZ": "Central European Standard Time", "JDT": "Japan Daylight Time", "ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "COT": "Colombia Standard Time", "BT": "Bhutan Time", "SGT": "Singapore Standard Time", "ACWST": "Australian Central Western Standard Time", "HEOG": "West Greenland Summer Time", "COST": "Colombia Summer Time", "AKST": "Alaska Standard Time", "WIT": "Eastern Indonesia Time", "CLST": "Chile Summer Time", "CLT": "Chile Standard Time", "HAT": "Newfoundland Daylight Time", "HEEG": "East Greenland Summer Time", "AEDT": "Australian Eastern Daylight Time", "CST": "Central Standard Time", "VET": "Venezuela Time", "OESZ": "Eastern European Summer Time", "ART": "Argentina Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AWDT": "Australian Western Daylight Time", "IST": "India Standard Time", "OEZ": "Eastern European Standard Time", "MYT": "Malaysia Time", "TMST": "Turkmenistan Summer Time", "EDT": "Eastern Daylight Time", "EAT": "East Africa Time", "WIB": "Western Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "ACST": "Australian Central Standard Time", "LHDT": "Lord Howe Daylight Time", "∅∅∅": "Brasilia Summer Time", "CHAST": "Chatham Standard Time", "ADT": "Atlantic Daylight Time", "GFT": "French Guiana Time", "CDT": "Central Daylight Time", "AST": "Atlantic Standard Time", "WITA": "Central Indonesia Time", "UYST": "Uruguay Summer Time", "SAST": "South Africa Standard Time", "ECT": "Ecuador Time", "WARST": "Western Argentina Summer Time", "MESZ": "Central European Summer Time", "HNOG": "West Greenland Standard Time", "MST": "Macau Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "LHST": "Lord Howe Standard Time", "HECU": "Cuba Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "WART": "Western Argentina Standard Time", "TMT": "Turkmenistan Standard Time", "MDT": "Macau Summer Time", "EST": "Eastern Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "SRT": "Suriname Time", "HADT": "Hawaii-Aleutian Daylight Time", "WESZ": "Western European Summer Time", "WEZ": "Western European Standard Time", "WAST": "West Africa Summer Time", "HKST": "Hong Kong Summer Time", "PST": "Pacific Standard Time", "PDT": "Pacific Daylight Time", "JST": "Japan Standard Time", "AKDT": "Alaska Daylight Time", "ChST": "Chamorro Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNCU": "Cuba Standard Time", "CHADT": "Chatham Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "BOT": "Bolivia Time", "AEST": "Australian Eastern Standard Time", "GYT": "Guyana Time", "HNT": "Newfoundland Standard Time", "UYT": "Uruguay Standard Time", "NZDT": "New Zealand Daylight Time", "WAT": "West Africa Standard Time", "AWST": "Australian Western Standard Time", "NZST": "New Zealand Standard Time"},
}
}
diff --git a/en_150/en_150.go b/en_150/en_150.go
index 2035504d..87fef61a 100644
--- a/en_150/en_150.go
+++ b/en_150/en_150.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HEEG": "East Greenland Summer Time", "WAT": "West Africa Standard Time", "AKDT": "Alaska Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "WEZ": "Western European Standard Time", "ACWST": "Australian Central Western Standard Time", "AWST": "Australian Western Standard Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "WART": "Western Argentina Standard Time", "COT": "Colombia Standard Time", "SGT": "Singapore Standard Time", "EDT": "Eastern Daylight Time", "MDT": "Macau Summer Time", "WIB": "Western Indonesia Time", "AEST": "Australian Eastern Standard Time", "NZST": "New Zealand Standard Time", "EAT": "East Africa Time", "HECU": "Cuba Daylight Time", "CHADT": "Chatham Daylight Time", "JDT": "Japan Daylight Time", "HNEG": "East Greenland Standard Time", "MYT": "Malaysia Time", "CDT": "Central Daylight Time", "HKT": "Hong Kong Standard Time", "HKST": "Hong Kong Summer Time", "IST": "India Standard Time", "CLST": "Chile Summer Time", "TMST": "Turkmenistan Summer Time", "OESZ": "Eastern European Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "ADT": "Atlantic Daylight Time", "UYT": "Uruguay Standard Time", "AKST": "Alaska Standard Time", "VET": "Venezuela Time", "HEPMX": "Mexican Pacific Daylight Time", "SRT": "Suriname Time", "HNPM": "St. Pierre & Miquelon Standard Time", "WAST": "West Africa Summer Time", "COST": "Colombia Summer Time", "UYST": "Uruguay Summer Time", "MEZ": "Central European Standard Time", "BT": "Bhutan Time", "CHAST": "Chatham Standard Time", "LHDT": "Lord Howe Daylight Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "ARST": "Argentina Summer Time", "WESZ": "Western European Summer Time", "AEDT": "Australian Eastern Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MESZ": "Central European Summer Time", "WARST": "Western Argentina Summer Time", "CST": "Central Standard Time", "PST": "Pacific Standard Time", "HAT": "Newfoundland Daylight Time", "TMT": "Turkmenistan Standard Time", "ACDT": "Australian Central Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "PDT": "Pacific Daylight Time", "HNT": "Newfoundland Standard Time", "WIT": "Eastern Indonesia Time", "WITA": "Central Indonesia Time", "NZDT": "New Zealand Daylight Time", "GFT": "French Guiana Time", "∅∅∅": "Peru Summer Time", "AST": "Atlantic Standard Time", "CLT": "Chile Standard Time", "ChST": "Chamorro Standard Time", "BOT": "Bolivia Time", "MST": "Macau Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "ACST": "Australian Central Standard Time", "ECT": "Ecuador Time", "ART": "Argentina Standard Time", "JST": "Japan Standard Time", "CAT": "Central Africa Time", "EST": "Eastern Standard Time", "HNPMX": "Mexican Pacific Standard Time", "GYT": "Guyana Time", "ACWDT": "Australian Central Western Daylight Time", "SAST": "South Africa Standard Time"},
+ timezones: map[string]string{"TMT": "Turkmenistan Standard Time", "MST": "Macau Standard Time", "CAT": "Central Africa Time", "OESZ": "Eastern European Summer Time", "AST": "Atlantic Standard Time", "WESZ": "Western European Summer Time", "HAT": "Newfoundland Daylight Time", "HEEG": "East Greenland Summer Time", "UYST": "Uruguay Summer Time", "MESZ": "Central European Summer Time", "OEZ": "Eastern European Standard Time", "GYT": "Guyana Time", "HECU": "Cuba Daylight Time", "CHADT": "Chatham Daylight Time", "BOT": "Bolivia Time", "HADT": "Hawaii-Aleutian Daylight Time", "AEDT": "Australian Eastern Daylight Time", "LHDT": "Lord Howe Daylight Time", "CHAST": "Chatham Standard Time", "AEST": "Australian Eastern Standard Time", "SAST": "South Africa Standard Time", "SRT": "Suriname Time", "EAT": "East Africa Time", "WIB": "Western Indonesia Time", "EST": "Eastern Standard Time", "HKT": "Hong Kong Standard Time", "COST": "Colombia Summer Time", "HEOG": "West Greenland Summer Time", "AWST": "Australian Western Standard Time", "JDT": "Japan Daylight Time", "WART": "Western Argentina Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "ADT": "Atlantic Daylight Time", "MDT": "Macau Summer Time", "WAT": "West Africa Standard Time", "CDT": "Central Daylight Time", "GMT": "Greenwich Mean Time", "GFT": "French Guiana Time", "WIT": "Eastern Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "ACST": "Australian Central Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HNEG": "East Greenland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "PDT": "Pacific Daylight Time", "MYT": "Malaysia Time", "ARST": "Argentina Summer Time", "HKST": "Hong Kong Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "CST": "Central Standard Time", "ACWST": "Australian Central Western Standard Time", "HNOG": "West Greenland Standard Time", "WEZ": "Western European Standard Time", "COT": "Colombia Standard Time", "BT": "Bhutan Time", "WITA": "Central Indonesia Time", "HNCU": "Cuba Standard Time", "WAST": "West Africa Summer Time", "ACDT": "Australian Central Daylight Time", "∅∅∅": "Peru Summer Time", "ChST": "Chamorro Standard Time", "SGT": "Singapore Standard Time", "CLT": "Chile Standard Time", "AKST": "Alaska Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "NZDT": "New Zealand Daylight Time", "MEZ": "Central European Standard Time", "EDT": "Eastern Daylight Time", "UYT": "Uruguay Standard Time", "ECT": "Ecuador Time", "PST": "Pacific Standard Time", "IST": "India Standard Time", "VET": "Venezuela Time", "JST": "Japan Standard Time", "WARST": "Western Argentina Summer Time", "HNT": "Newfoundland Standard Time", "LHST": "Lord Howe Standard Time", "AWDT": "Australian Western Daylight Time", "CLST": "Chile Summer Time", "NZST": "New Zealand Standard Time", "TMST": "Turkmenistan Summer Time", "ART": "Argentina Standard Time", "AKDT": "Alaska Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time"},
}
}
diff --git a/en_AG/en_AG.go b/en_AG/en_AG.go
index 5b149134..8cff9f03 100644
--- a/en_AG/en_AG.go
+++ b/en_AG/en_AG.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"IST": "India Standard Time", "MDT": "Macau Summer Time", "ADT": "Atlantic Daylight Time", "AEST": "Australian Eastern Standard Time", "WAT": "West Africa Standard Time", "WARST": "Western Argentina Summer Time", "MST": "Macau Standard Time", "HNPMX": "Mexican Pacific Standard Time", "SRT": "Suriname Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HECU": "Cuba Daylight Time", "HKST": "Hong Kong Summer Time", "MEZ": "Central European Standard Time", "CHAST": "Chatham Standard Time", "CLST": "Chile Summer Time", "ACST": "Australian Central Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "MYT": "Malaysia Time", "WIB": "Western Indonesia Time", "PST": "Pacific Standard Time", "AEDT": "Australian Eastern Daylight Time", "CAT": "Central Africa Time", "EAT": "East Africa Time", "HENOMX": "Northwest Mexico Daylight Time", "GMT": "Greenwich Mean Time", "ARST": "Argentina Summer Time", "ECT": "Ecuador Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CHADT": "Chatham Daylight Time", "∅∅∅": "Amazon Summer Time", "JST": "Japan Standard Time", "EST": "Eastern Standard Time", "BT": "Bhutan Time", "HEEG": "East Greenland Summer Time", "WITA": "Central Indonesia Time", "NZDT": "New Zealand Daylight Time", "WAST": "West Africa Summer Time", "COT": "Colombia Standard Time", "AWST": "Australian Western Standard Time", "HKT": "Hong Kong Standard Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "OESZ": "Eastern European Summer Time", "COST": "Colombia Summer Time", "UYST": "Uruguay Summer Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "AST": "Atlantic Standard Time", "ART": "Argentina Standard Time", "SAST": "South Africa Standard Time", "OEZ": "Eastern European Standard Time", "AKST": "Alaska Standard Time", "VET": "Venezuela Time", "WIT": "Eastern Indonesia Time", "WEZ": "Western European Standard Time", "ACWST": "Australian Central Western Standard Time", "HNEG": "East Greenland Standard Time", "ACWDT": "Australian Central Western Daylight Time", "ChST": "Chamorro Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "EDT": "Eastern Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HAT": "Newfoundland Daylight Time", "LHDT": "Lord Howe Daylight Time", "NZST": "New Zealand Standard Time", "BOT": "Bolivia Time", "GYT": "Guyana Time", "PDT": "Pacific Daylight Time", "WESZ": "Western European Summer Time", "HNOG": "West Greenland Standard Time", "LHST": "Lord Howe Standard Time", "CLT": "Chile Standard Time", "JDT": "Japan Daylight Time", "ACDT": "Australian Central Daylight Time", "WART": "Western Argentina Standard Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "UYT": "Uruguay Standard Time", "HNT": "Newfoundland Standard Time", "HEOG": "West Greenland Summer Time", "AWDT": "Australian Western Daylight Time", "MESZ": "Central European Summer Time", "GFT": "French Guiana Time", "AKDT": "Alaska Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time"},
+ timezones: map[string]string{"WARST": "Western Argentina Summer Time", "TMT": "Turkmenistan Standard Time", "MDT": "Macau Summer Time", "HEEG": "East Greenland Summer Time", "WIT": "Eastern Indonesia Time", "AWDT": "Australian Western Daylight Time", "VET": "Venezuela Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "MST": "Macau Standard Time", "CLT": "Chile Standard Time", "HAT": "Newfoundland Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "GMT": "Greenwich Mean Time", "AKST": "Alaska Standard Time", "ECT": "Ecuador Time", "IST": "India Standard Time", "AST": "Atlantic Standard Time", "NZDT": "New Zealand Daylight Time", "EDT": "Eastern Daylight Time", "ACST": "Australian Central Standard Time", "HEOG": "West Greenland Summer Time", "ARST": "Argentina Summer Time", "GYT": "Guyana Time", "BOT": "Bolivia Time", "MEZ": "Central European Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HECU": "Cuba Daylight Time", "CLST": "Chile Summer Time", "WART": "Western Argentina Standard Time", "WAT": "West Africa Standard Time", "LHST": "Lord Howe Standard Time", "CDT": "Central Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "HNCU": "Cuba Standard Time", "SGT": "Singapore Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "SAST": "South Africa Standard Time", "LHDT": "Lord Howe Daylight Time", "TMST": "Turkmenistan Summer Time", "HNOG": "West Greenland Standard Time", "OEZ": "Eastern European Standard Time", "WITA": "Central Indonesia Time", "∅∅∅": "Azores Summer Time", "ACWST": "Australian Central Western Standard Time", "JDT": "Japan Daylight Time", "ART": "Argentina Standard Time", "HKT": "Hong Kong Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HNT": "Newfoundland Standard Time", "ChST": "Chamorro Standard Time", "NZST": "New Zealand Standard Time", "JST": "Japan Standard Time", "CHAST": "Chatham Standard Time", "MESZ": "Central European Summer Time", "EST": "Eastern Standard Time", "HKST": "Hong Kong Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "UYST": "Uruguay Summer Time", "SRT": "Suriname Time", "EAT": "East Africa Time", "AEDT": "Australian Eastern Daylight Time", "WAST": "West Africa Summer Time", "COST": "Colombia Summer Time", "HNEG": "East Greenland Standard Time", "AKDT": "Alaska Daylight Time", "UYT": "Uruguay Standard Time", "HNPMX": "Mexican Pacific Standard Time", "WESZ": "Western European Summer Time", "CAT": "Central Africa Time", "ACDT": "Australian Central Daylight Time", "COT": "Colombia Standard Time", "BT": "Bhutan Time", "GFT": "French Guiana Time", "CST": "Central Standard Time", "AWST": "Australian Western Standard Time", "PST": "Pacific Standard Time", "OESZ": "Eastern European Summer Time", "MYT": "Malaysia Time", "AEST": "Australian Eastern Standard Time", "WIB": "Western Indonesia Time", "CHADT": "Chatham Daylight Time", "ADT": "Atlantic Daylight Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_AG) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_AG) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod100 := math.Mod(n, 100)
nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
@@ -405,15 +405,25 @@ func (en *en_AG) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_AG) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_AG) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_AG) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_AI/en_AI.go b/en_AI/en_AI.go
index 3daf091d..f3d35c59 100644
--- a/en_AI/en_AI.go
+++ b/en_AI/en_AI.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"ECT": "Ecuador Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "UYST": "Uruguay Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "HAT": "Newfoundland Daylight Time", "NZST": "New Zealand Standard Time", "∅∅∅": "Amazon Summer Time", "GFT": "French Guiana Time", "GYT": "Guyana Time", "VET": "Venezuela Time", "BT": "Bhutan Time", "HEOG": "West Greenland Summer Time", "OESZ": "Eastern European Summer Time", "COST": "Colombia Summer Time", "MDT": "Macau Summer Time", "ADT": "Atlantic Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "WART": "Western Argentina Standard Time", "ACST": "Australian Central Standard Time", "WIT": "Eastern Indonesia Time", "AEST": "Australian Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "WITA": "Central Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "ACDT": "Australian Central Daylight Time", "EST": "Eastern Standard Time", "UYT": "Uruguay Standard Time", "WEZ": "Western European Standard Time", "AWST": "Australian Western Standard Time", "HKT": "Hong Kong Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MEZ": "Central European Standard Time", "PDT": "Pacific Daylight Time", "ACWST": "Australian Central Western Standard Time", "IST": "India Standard Time", "CLT": "Chile Standard Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "WARST": "Western Argentina Summer Time", "HECU": "Cuba Daylight Time", "HKST": "Hong Kong Summer Time", "MESZ": "Central European Summer Time", "SAST": "South Africa Standard Time", "PST": "Pacific Standard Time", "ACWDT": "Australian Central Western Daylight Time", "CHAST": "Chatham Standard Time", "COT": "Colombia Standard Time", "SGT": "Singapore Standard Time", "CST": "Central Standard Time", "HNOG": "West Greenland Standard Time", "MST": "Macau Standard Time", "HNPMX": "Mexican Pacific Standard Time", "JDT": "Japan Daylight Time", "TMST": "Turkmenistan Summer Time", "ChST": "Chamorro Standard Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HNCU": "Cuba Standard Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "CDT": "Central Daylight Time", "WIB": "Western Indonesia Time", "ARST": "Argentina Summer Time", "JST": "Japan Standard Time", "HNEG": "East Greenland Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "ART": "Argentina Standard Time", "HNT": "Newfoundland Standard Time", "AST": "Atlantic Standard Time", "MYT": "Malaysia Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "CHADT": "Chatham Daylight Time", "CLST": "Chile Summer Time", "TMT": "Turkmenistan Standard Time", "HEEG": "East Greenland Summer Time", "EAT": "East Africa Time", "WAST": "West Africa Summer Time", "AKST": "Alaska Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "EDT": "Eastern Daylight Time", "WESZ": "Western European Summer Time", "AKDT": "Alaska Daylight Time", "SRT": "Suriname Time"},
+ timezones: map[string]string{"HNEG": "East Greenland Standard Time", "HEOG": "West Greenland Summer Time", "BT": "Bhutan Time", "HEPMX": "Mexican Pacific Daylight Time", "WESZ": "Western European Summer Time", "EDT": "Eastern Daylight Time", "BOT": "Bolivia Time", "ACWDT": "Australian Central Western Daylight Time", "CLST": "Chile Summer Time", "AWDT": "Australian Western Daylight Time", "SGT": "Singapore Standard Time", "OEZ": "Eastern European Standard Time", "WAT": "West Africa Standard Time", "AKST": "Alaska Standard Time", "AEDT": "Australian Eastern Daylight Time", "UYT": "Uruguay Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "CLT": "Chile Standard Time", "EST": "Eastern Standard Time", "PST": "Pacific Standard Time", "PDT": "Pacific Daylight Time", "VET": "Venezuela Time", "HNNOMX": "Northwest Mexico Standard Time", "ACST": "Australian Central Standard Time", "COT": "Colombia Standard Time", "COST": "Colombia Summer Time", "LHST": "Lord Howe Standard Time", "HECU": "Cuba Daylight Time", "CST": "Central Standard Time", "IST": "India Standard Time", "HKST": "Hong Kong Summer Time", "NZDT": "New Zealand Daylight Time", "MYT": "Malaysia Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "ACDT": "Australian Central Daylight Time", "HNT": "Newfoundland Standard Time", "∅∅∅": "Acre Summer Time", "GYT": "Guyana Time", "CHADT": "Chatham Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "AST": "Atlantic Standard Time", "HKT": "Hong Kong Standard Time", "ADT": "Atlantic Daylight Time", "MST": "Mountain Standard Time", "EAT": "East Africa Time", "CHAST": "Chatham Standard Time", "WARST": "Western Argentina Summer Time", "ARST": "Argentina Summer Time", "WAST": "West Africa Summer Time", "WITA": "Central Indonesia Time", "SAST": "South Africa Standard Time", "CDT": "Central Daylight Time", "WIT": "Eastern Indonesia Time", "ECT": "Ecuador Time", "WART": "Western Argentina Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AKDT": "Alaska Daylight Time", "AWST": "Australian Western Standard Time", "NZST": "New Zealand Standard Time", "HAT": "Newfoundland Daylight Time", "MEZ": "Central European Standard Time", "JDT": "Japan Daylight Time", "WEZ": "Western European Standard Time", "TMST": "Turkmenistan Summer Time", "HEEG": "East Greenland Summer Time", "ChST": "Chamorro Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ACWST": "Australian Central Western Standard Time", "HNOG": "West Greenland Standard Time", "GFT": "French Guiana Time", "UYST": "Uruguay Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNPMX": "Mexican Pacific Standard Time", "SRT": "Suriname Time", "HNCU": "Cuba Standard Time", "OESZ": "Eastern European Summer Time", "TMT": "Turkmenistan Standard Time", "MDT": "Mountain Daylight Time", "WIB": "Western Indonesia Time", "CAT": "Central Africa Time", "MESZ": "Central European Summer Time", "JST": "Japan Standard Time", "GMT": "Greenwich Mean Time", "LHDT": "Lord Howe Daylight Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_AI) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_AI) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_AI) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_AI) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_AS/en_AS.go b/en_AS/en_AS.go
index 5d4af08d..c6b6697f 100644
--- a/en_AS/en_AS.go
+++ b/en_AS/en_AS.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"GMT": "Greenwich Mean Time", "UYT": "Uruguay Standard Time", "CDT": "Central Daylight Time", "CHAST": "Chatham Standard Time", "CLT": "Chile Standard Time", "OESZ": "Eastern European Summer Time", "HNCU": "Cuba Standard Time", "WEZ": "Western European Standard Time", "ARST": "Argentina Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SGT": "Singapore Standard Time", "AEST": "Australian Eastern Standard Time", "BT": "Bhutan Time", "AWDT": "Australian Western Daylight Time", "SAST": "South Africa Standard Time", "IST": "India Standard Time", "ACDT": "Australian Central Daylight Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "VET": "Venezuela Time", "HKST": "Hong Kong Summer Time", "WIT": "Eastern Indonesia Time", "HNOG": "West Greenland Standard Time", "NZDT": "New Zealand Daylight Time", "CAT": "Central Africa Time", "EAT": "East Africa Time", "EDT": "Eastern Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HAT": "Newfoundland Daylight Time", "LHDT": "Lord Howe Daylight Time", "MESZ": "Central European Summer Time", "CLST": "Chile Summer Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "COT": "Colombia Standard Time", "AKST": "Alaska Standard Time", "MEZ": "Central European Standard Time", "JST": "Japan Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "ADT": "Atlantic Daylight Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "AKDT": "Alaska Daylight Time", "∅∅∅": "Amazon Summer Time", "JDT": "Japan Daylight Time", "BOT": "Bolivia Time", "WAST": "West Africa Summer Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time", "SRT": "Suriname Time", "PDT": "Pacific Daylight Time", "WESZ": "Western European Summer Time", "ACWDT": "Australian Central Western Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "PST": "Pacific Standard Time", "ART": "Argentina Standard Time", "MST": "Macau Standard Time", "CST": "Central Standard Time", "HKT": "Hong Kong Standard Time", "GFT": "French Guiana Time", "HECU": "Cuba Daylight Time", "GYT": "Guyana Time", "HEOG": "West Greenland Summer Time", "ACWST": "Australian Central Western Standard Time", "HNT": "Newfoundland Standard Time", "ChST": "Chamorro Standard Time", "HNEG": "East Greenland Standard Time", "TMT": "Turkmenistan Standard Time", "ACST": "Australian Central Standard Time", "EST": "Eastern Standard Time", "MYT": "Malaysia Time", "HEEG": "East Greenland Summer Time", "TMST": "Turkmenistan Summer Time", "OEZ": "Eastern European Standard Time", "ECT": "Ecuador Time", "UYST": "Uruguay Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MDT": "Macau Summer Time", "AST": "Atlantic Standard Time", "WIB": "Western Indonesia Time", "AWST": "Australian Western Standard Time", "WITA": "Central Indonesia Time", "CHADT": "Chatham Daylight Time"},
+ timezones: map[string]string{"GMT": "Greenwich Mean Time", "OESZ": "Eastern European Summer Time", "WIT": "Eastern Indonesia Time", "ACDT": "Australian Central Daylight Time", "GYT": "Guyana Time", "AKDT": "Alaska Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "CDT": "Central Daylight Time", "BOT": "Bolivia Time", "ACWST": "Australian Central Western Standard Time", "CLST": "Chile Summer Time", "AST": "Atlantic Standard Time", "OEZ": "Eastern European Standard Time", "ART": "Argentina Standard Time", "WIB": "Western Indonesia Time", "JDT": "Japan Daylight Time", "WART": "Western Argentina Standard Time", "MST": "Macau Standard Time", "VET": "Venezuela Time", "AWDT": "Australian Western Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "IST": "India Standard Time", "HEOG": "West Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "HEEG": "East Greenland Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SRT": "Suriname Time", "WEZ": "Western European Standard Time", "EDT": "Eastern Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "MESZ": "Central European Summer Time", "HECU": "Cuba Daylight Time", "ECT": "Ecuador Time", "MEZ": "Central European Standard Time", "MYT": "Malaysia Time", "ADT": "Atlantic Daylight Time", "AKST": "Alaska Standard Time", "CAT": "Central Africa Time", "JST": "Japan Standard Time", "HKT": "Hong Kong Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HAT": "Newfoundland Daylight Time", "UYST": "Uruguay Summer Time", "CST": "Central Standard Time", "HNCU": "Cuba Standard Time", "HNOG": "West Greenland Standard Time", "EST": "Eastern Standard Time", "∅∅∅": "Acre Summer Time", "AEDT": "Australian Eastern Daylight Time", "SAST": "South Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "COST": "Colombia Summer Time", "BT": "Bhutan Time", "UYT": "Uruguay Standard Time", "PDT": "Pacific Daylight Time", "ACST": "Australian Central Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNPMX": "Mexican Pacific Standard Time", "EAT": "East Africa Time", "SGT": "Singapore Standard Time", "TMST": "Turkmenistan Summer Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "CHAST": "Chatham Standard Time", "HNT": "Newfoundland Standard Time", "AEST": "Australian Eastern Standard Time", "GFT": "French Guiana Time", "WESZ": "Western European Summer Time", "WARST": "Western Argentina Summer Time", "MDT": "Macau Summer Time", "WAST": "West Africa Summer Time", "COT": "Colombia Standard Time", "WITA": "Central Indonesia Time", "ChST": "Chamorro Standard Time", "CHADT": "Chatham Daylight Time", "AWST": "Australian Western Standard Time", "PST": "Pacific Standard Time", "NZST": "New Zealand Standard Time", "CLT": "Chile Standard Time", "ARST": "Argentina Summer Time", "HKST": "Hong Kong Summer Time", "WAT": "West Africa Standard Time", "HNEG": "East Greenland Standard Time", "NZDT": "New Zealand Daylight Time"},
}
}
diff --git a/en_AT/en_AT.go b/en_AT/en_AT.go
index fda344e2..b605510b 100644
--- a/en_AT/en_AT.go
+++ b/en_AT/en_AT.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"WAST": "West Africa Summer Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "HKST": "Hong Kong Summer Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "HNT": "Newfoundland Standard Time", "MESZ": "Central European Summer Time", "TMST": "Turkmenistan Summer Time", "HEEG": "East Greenland Summer Time", "WARST": "Western Argentina Summer Time", "COT": "Colombia Standard Time", "ARST": "Argentina Summer Time", "ACWDT": "Australian Central Western Daylight Time", "NZDT": "New Zealand Daylight Time", "MDT": "Macau Summer Time", "UYT": "Uruguay Standard Time", "WESZ": "Western European Summer Time", "AEST": "Australian Eastern Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MEZ": "Central European Standard Time", "HNCU": "Cuba Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "GMT": "Greenwich Mean Time", "BT": "Bhutan Time", "HAT": "Newfoundland Daylight Time", "AWDT": "Australian Western Daylight Time", "ChST": "Chamorro Standard Time", "EAT": "East Africa Time", "HNPMX": "Mexican Pacific Standard Time", "PST": "Pacific Standard Time", "AEDT": "Australian Eastern Daylight Time", "BOT": "Bolivia Time", "HENOMX": "Northwest Mexico Daylight Time", "ART": "Argentina Standard Time", "WITA": "Central Indonesia Time", "ACST": "Australian Central Standard Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "EDT": "Eastern Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "AKST": "Alaska Standard Time", "JST": "Japan Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CLST": "Chile Summer Time", "ECT": "Ecuador Time", "SGT": "Singapore Standard Time", "MST": "Macau Standard Time", "GYT": "Guyana Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "∅∅∅": "Peru Summer Time", "WAT": "West Africa Standard Time", "NZST": "New Zealand Standard Time", "IST": "India Standard Time", "WART": "Western Argentina Standard Time", "AKDT": "Alaska Daylight Time", "HNOG": "West Greenland Standard Time", "LHST": "Lord Howe Standard Time", "CHAST": "Chatham Standard Time", "EST": "Eastern Standard Time", "ADT": "Atlantic Daylight Time", "WIB": "Western Indonesia Time", "SRT": "Suriname Time", "HEOG": "West Greenland Summer Time", "LHDT": "Lord Howe Daylight Time", "GFT": "French Guiana Time", "CAT": "Central Africa Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "JDT": "Japan Daylight Time", "CLT": "Chile Standard Time", "COST": "Colombia Summer Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "WIT": "Eastern Indonesia Time", "ACWST": "Australian Central Western Standard Time", "HKT": "Hong Kong Standard Time", "TMT": "Turkmenistan Standard Time", "ACDT": "Australian Central Daylight Time", "AST": "Atlantic Standard Time", "VET": "Venezuela Time", "AWST": "Australian Western Standard Time", "HNEG": "East Greenland Standard Time", "HECU": "Cuba Daylight Time"},
+ timezones: map[string]string{"HADT": "Hawaii-Aleutian Daylight Time", "HEOG": "West Greenland Summer Time", "WESZ": "Western European Summer Time", "WARST": "Western Argentina Summer Time", "EST": "Eastern Standard Time", "ACST": "Australian Central Standard Time", "AEDT": "Australian Eastern Daylight Time", "CHAST": "Chatham Standard Time", "CDT": "Central Daylight Time", "OESZ": "Eastern European Summer Time", "TMST": "Turkmenistan Summer Time", "HKT": "Hong Kong Standard Time", "BT": "Bhutan Time", "WITA": "Central Indonesia Time", "GFT": "French Guiana Time", "HNPM": "St. Pierre & Miquelon Standard Time", "VET": "Venezuela Time", "CLT": "Chile Standard Time", "EDT": "Eastern Daylight Time", "PDT": "Pacific Daylight Time", "ACWST": "Australian Central Western Standard Time", "NZDT": "New Zealand Daylight Time", "JST": "Japan Standard Time", "WEZ": "Western European Standard Time", "MDT": "Macau Summer Time", "HAT": "Newfoundland Daylight Time", "GYT": "Guyana Time", "HEEG": "East Greenland Summer Time", "ChST": "Chamorro Standard Time", "SGT": "Singapore Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HNOG": "West Greenland Standard Time", "GMT": "Greenwich Mean Time", "WAST": "West Africa Summer Time", "HKST": "Hong Kong Summer Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HNPMX": "Mexican Pacific Standard Time", "WIB": "Western Indonesia Time", "CHADT": "Chatham Daylight Time", "MEZ": "Central European Standard Time", "AWST": "Australian Western Standard Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "HNT": "Newfoundland Standard Time", "HNEG": "East Greenland Standard Time", "AKDT": "Alaska Daylight Time", "SRT": "Suriname Time", "HNCU": "Cuba Standard Time", "MYT": "Malaysia Time", "PST": "Pacific Standard Time", "ADT": "Atlantic Daylight Time", "ACDT": "Australian Central Daylight Time", "AEST": "Australian Eastern Standard Time", "UYT": "Uruguay Standard Time", "WART": "Western Argentina Standard Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "AKST": "Alaska Standard Time", "LHDT": "Lord Howe Daylight Time", "CST": "Central Standard Time", "MESZ": "Central European Summer Time", "OEZ": "Eastern European Standard Time", "BOT": "Bolivia Time", "ACWDT": "Australian Central Western Daylight Time", "MST": "Macau Standard Time", "LHST": "Lord Howe Standard Time", "EAT": "East Africa Time", "CAT": "Central Africa Time", "NZST": "New Zealand Standard Time", "CLST": "Chile Summer Time", "COST": "Colombia Summer Time", "AWDT": "Australian Western Daylight Time", "JDT": "Japan Daylight Time", "WIT": "Eastern Indonesia Time", "AST": "Atlantic Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "∅∅∅": "Acre Summer Time", "UYST": "Uruguay Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SAST": "South Africa Standard Time", "HECU": "Cuba Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "ECT": "Ecuador Time", "IST": "India Standard Time"},
}
}
diff --git a/en_AU/en_AU.go b/en_AU/en_AU.go
index 65c3426d..2d98b784 100644
--- a/en_AU/en_AU.go
+++ b/en_AU/en_AU.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"ChST": "Chamorro Standard Time", "COT": "Colombia Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AST": "Atlantic Standard Time", "PST": "Pacific Standard Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "CDT": "Central Daylight Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "SAST": "South Africa Standard Time", "LHST": "Lord Howe Standard Time", "GMT": "Greenwich Mean Time", "HAST": "Hawaii-Aleutian Standard Time", "WEZ": "Western European Standard Time", "AEDT": "Australian Eastern Daylight Time", "AWST": "Australian Western Standard Time", "MEZ": "Central European Standard Time", "∅∅∅": "Amazon Summer Time", "OESZ": "Eastern European Summer Time", "HECU": "Cuba Daylight Time", "ADT": "Atlantic Daylight Time", "HNT": "Newfoundland Standard Time", "WITA": "Central Indonesia Time", "CHAST": "Chatham Standard Time", "ARST": "Argentina Summer Time", "MYT": "Malaysia Time", "WIB": "Western Indonesia Time", "HNOG": "West Greenland Standard Time", "CLST": "Chile Summer Time", "WAST": "West Africa Summer Time", "BOT": "Bolivia Time", "WARST": "Western Argentina Summer Time", "SRT": "Suriname Time", "ART": "Argentina Standard Time", "AWDT": "Australian Western Daylight Time", "CHADT": "Chatham Daylight Time", "CST": "Central Standard Time", "WAT": "West Africa Standard Time", "COST": "Colombia Summer Time", "EDT": "Eastern Daylight Time", "AKDT": "Alaska Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "JDT": "Japan Summer Time", "ACDT": "Australian Central Daylight Time", "JST": "Japan Standard Time", "CLT": "Chile Standard Time", "EAT": "Eastern Africa Time", "SGT": "Singapore Standard Time", "HKT": "Hong Kong Standard Time", "HKST": "Hong Kong Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "PDT": "Pacific Daylight Time", "MDT": "Macau Summer Time", "WIT": "Eastern Indonesia Time", "BT": "Bhutan Time", "HEOG": "West Greenland Summer Time", "ACST": "Australian Central Standard Time", "MST": "Macau Standard Time", "WESZ": "Western European Summer Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "TMST": "Turkmenistan Summer Time", "ECT": "Ecuador Time", "HEPMX": "Mexican Pacific Daylight Time", "AKST": "Alaska Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "MESZ": "Central European Summer Time", "ACWST": "Australian Central Western Standard Time", "HNCU": "Cuba Standard Time", "GYT": "Guyana Time", "NZST": "New Zealand Standard Time", "OEZ": "Eastern European Standard Time", "TMT": "Turkmenistan Standard Time", "CAT": "Central Africa Time", "HENOMX": "Northwest Mexico Daylight Time", "WART": "Western Argentina Standard Time", "EST": "Eastern Standard Time", "UYT": "Uruguay Standard Time", "LHDT": "Lord Howe Daylight Time", "HNEG": "East Greenland Standard Time", "UYST": "Uruguay Summer Time", "VET": "Venezuela Time"},
+ timezones: map[string]string{"AWDT": "Australian Western Daylight Time", "HNT": "Newfoundland Standard Time", "WITA": "Central Indonesia Time", "PDT": "Pacific Daylight Time", "CAT": "Central Africa Time", "WAST": "West Africa Summer Time", "AEDT": "Australian Eastern Daylight Time", "WART": "Western Argentina Standard Time", "MDT": "Macau Summer Time", "CLT": "Chile Standard Time", "HAT": "Newfoundland Daylight Time", "GYT": "Guyana Time", "SGT": "Singapore Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "∅∅∅": "Amazon Summer Time", "JST": "Japan Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "ACWST": "Australian Central Western Standard Time", "TMST": "Turkmenistan Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "ChST": "Chamorro Standard Time", "CHADT": "Chatham Daylight Time", "JDT": "Japan Summer Time", "GMT": "Greenwich Mean Time", "HNPM": "St. Pierre & Miquelon Standard Time", "WEZ": "Western European Standard Time", "MYT": "Malaysia Time", "WAT": "West Africa Standard Time", "BT": "Bhutan Time", "HKST": "Hong Kong Summer Time", "UYT": "Uruguay Standard Time", "HNCU": "Cuba Standard Time", "CDT": "Central Daylight Time", "MEZ": "Central European Standard Time", "VET": "Venezuela Time", "HEOG": "West Greenland Summer Time", "HKT": "Hong Kong Standard Time", "GFT": "French Guiana Time", "AKST": "Alaska Standard Time", "SAST": "South Africa Standard Time", "CST": "Central Standard Time", "HNOG": "West Greenland Standard Time", "MST": "Macau Standard Time", "EST": "Eastern Standard Time", "COST": "Colombia Summer Time", "AEST": "Australian Eastern Standard Time", "HNPMX": "Mexican Pacific Standard Time", "WIT": "Eastern Indonesia Time", "BOT": "Bolivia Time", "NZST": "New Zealand Standard Time", "WESZ": "Western European Summer Time", "TMT": "Turkmenistan Standard Time", "SRT": "Suriname Time", "EAT": "Eastern Africa Time", "ECT": "Ecuador Time", "NZDT": "New Zealand Daylight Time", "HNEG": "East Greenland Standard Time", "AKDT": "Alaska Daylight Time", "CLST": "Chile Summer Time", "OEZ": "Eastern European Standard Time", "COT": "Colombia Standard Time", "AWST": "Australian Western Standard Time", "CHAST": "Chatham Standard Time", "PST": "Pacific Standard Time", "MESZ": "Central European Summer Time", "IST": "India Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "LHST": "Lord Howe Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HECU": "Cuba Daylight Time", "ADT": "Atlantic Daylight Time", "ARST": "Argentina Summer Time", "EDT": "Eastern Daylight Time", "HEEG": "East Greenland Summer Time", "ART": "Argentina Standard Time", "ACST": "Australian Central Standard Time", "UYST": "Uruguay Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "AST": "Atlantic Standard Time", "OESZ": "Eastern European Summer Time", "WARST": "Western Argentina Summer Time", "ACWDT": "Australian Central Western Daylight Time", "ACDT": "Australian Central Daylight Time", "WIB": "Western Indonesia Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_AU) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_AU) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
@@ -483,13 +483,11 @@ func (en *en_AU) FmtTimeShort(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -497,13 +495,6 @@ func (en *en_AU) FmtTimeShort(t time.Time) string {
}
b = strconv.AppendInt(b, int64(t.Minute()), 10)
- b = append(b, []byte{0x20}...)
-
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
return string(b)
}
@@ -513,13 +504,11 @@ func (en *en_AU) FmtTimeMedium(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -534,13 +523,6 @@ func (en *en_AU) FmtTimeMedium(t time.Time) string {
}
b = strconv.AppendInt(b, int64(t.Second()), 10)
- b = append(b, []byte{0x20}...)
-
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
return string(b)
}
@@ -550,13 +532,11 @@ func (en *en_AU) FmtTimeLong(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -573,14 +553,6 @@ func (en *en_AU) FmtTimeLong(t time.Time) string {
b = strconv.AppendInt(b, int64(t.Second()), 10)
b = append(b, []byte{0x20}...)
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
-
- b = append(b, []byte{0x20}...)
-
tz, _ := t.Zone()
b = append(b, tz...)
@@ -592,13 +564,11 @@ func (en *en_AU) FmtTimeFull(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -615,14 +585,6 @@ func (en *en_AU) FmtTimeFull(t time.Time) string {
b = strconv.AppendInt(b, int64(t.Second()), 10)
b = append(b, []byte{0x20}...)
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
-
- b = append(b, []byte{0x20}...)
-
tz, _ := t.Zone()
if btz, ok := en.timezones[tz]; ok {
diff --git a/en_BB/en_BB.go b/en_BB/en_BB.go
index 9cb4aaaf..71c864e4 100644
--- a/en_BB/en_BB.go
+++ b/en_BB/en_BB.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HADT": "Hawaii-Aleutian Daylight Time", "WEZ": "Western European Standard Time", "HEEG": "East Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "CAT": "Central Africa Time", "HEPMX": "Mexican Pacific Daylight Time", "WARST": "Western Argentina Summer Time", "WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time", "WITA": "Central Indonesia Time", "TMST": "Turkmenistan Summer Time", "WAST": "West Africa Summer Time", "OESZ": "Eastern European Summer Time", "ECT": "Ecuador Time", "HNCU": "Cuba Standard Time", "CDT": "Central Daylight Time", "HKST": "Hong Kong Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "AKDT": "Alaska Daylight Time", "AST": "Atlantic Standard Time", "MDT": "Mountain Daylight Time", "HKT": "Hong Kong Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CLST": "Chile Summer Time", "SGT": "Singapore Standard Time", "HECU": "Cuba Daylight Time", "CST": "Central Standard Time", "HAT": "Newfoundland Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "EST": "Eastern Standard Time", "OEZ": "Eastern European Standard Time", "MST": "Mountain Standard Time", "SRT": "Suriname Time", "ARST": "Argentina Summer Time", "MESZ": "Central European Summer Time", "JST": "Japan Standard Time", "HNEG": "East Greenland Standard Time", "EAT": "East Africa Time", "PDT": "Pacific Daylight Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "ChST": "Chamorro Standard Time", "UYT": "Uruguay Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HNT": "Newfoundland Standard Time", "HEOG": "West Greenland Summer Time", "SAST": "South Africa Standard Time", "ACST": "Australian Central Standard Time", "ACDT": "Australian Central Daylight Time", "VET": "Venezuela Time", "AEDT": "Australian Eastern Daylight Time", "AWST": "Australian Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "∅∅∅": "Amazon Summer Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "GYT": "Guyana Time", "AEST": "Australian Eastern Standard Time", "LHDT": "Lord Howe Daylight Time", "CHADT": "Chatham Daylight Time", "WART": "Western Argentina Standard Time", "COT": "Colombia Standard Time", "COST": "Colombia Summer Time", "AKST": "Alaska Standard Time", "ACWST": "Australian Central Western Standard Time", "HNOG": "West Greenland Standard Time", "IST": "India Standard Time", "JDT": "Japan Daylight Time", "MEZ": "Central European Standard Time", "GMT": "Greenwich Mean Time", "WIB": "Western Indonesia Time", "PST": "Pacific Standard Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "WAT": "West Africa Standard Time", "EDT": "Eastern Daylight Time", "ADT": "Atlantic Daylight Time", "BT": "Bhutan Time", "ART": "Argentina Standard Time", "CLT": "Chile Standard Time", "MYT": "Malaysia Time", "HNPMX": "Mexican Pacific Standard Time", "UYST": "Uruguay Summer Time"},
+ timezones: map[string]string{"ACDT": "Australian Central Daylight Time", "WARST": "Western Argentina Summer Time", "AWST": "Australian Western Standard Time", "SGT": "Singapore Standard Time", "ACWST": "Australian Central Western Standard Time", "WAST": "West Africa Summer Time", "AKST": "Alaska Standard Time", "HNCU": "Cuba Standard Time", "AST": "Atlantic Standard Time", "ART": "Argentina Standard Time", "EST": "Eastern Standard Time", "WITA": "Central Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "JDT": "Japan Daylight Time", "GMT": "Greenwich Mean Time", "AKDT": "Alaska Daylight Time", "AEST": "Australian Eastern Standard Time", "GFT": "French Guiana Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HECU": "Cuba Daylight Time", "ECT": "Ecuador Time", "MEZ": "Central European Standard Time", "OEZ": "Eastern European Standard Time", "EDT": "Eastern Daylight Time", "COT": "Colombia Standard Time", "∅∅∅": "Azores Summer Time", "TMST": "Turkmenistan Summer Time", "OESZ": "Eastern European Summer Time", "SRT": "Suriname Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "CHAST": "Chatham Standard Time", "IST": "India Standard Time", "NZDT": "New Zealand Daylight Time", "MESZ": "Central European Summer Time", "HNPMX": "Mexican Pacific Standard Time", "HNEG": "East Greenland Standard Time", "HEEG": "East Greenland Summer Time", "AEDT": "Australian Eastern Daylight Time", "WEZ": "Western European Standard Time", "CHADT": "Chatham Daylight Time", "PST": "Pacific Standard Time", "ADT": "Atlantic Daylight Time", "HKST": "Hong Kong Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "LHDT": "Lord Howe Daylight Time", "EAT": "East Africa Time", "AWDT": "Australian Western Daylight Time", "BOT": "Bolivia Time", "ACWDT": "Australian Central Western Daylight Time", "JST": "Japan Standard Time", "WAT": "West Africa Standard Time", "LHST": "Lord Howe Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "GYT": "Guyana Time", "HEOG": "West Greenland Summer Time", "COST": "Colombia Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "UYST": "Uruguay Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "NZST": "New Zealand Standard Time", "CLST": "Chile Summer Time", "BT": "Bhutan Time", "UYT": "Uruguay Standard Time", "PDT": "Pacific Daylight Time", "WESZ": "Western European Summer Time", "CLT": "Chile Standard Time", "TMT": "Turkmenistan Standard Time", "MST": "Macau Standard Time", "CST": "Central Standard Time", "VET": "Venezuela Time", "WART": "Western Argentina Standard Time", "MDT": "Macau Summer Time", "ACST": "Australian Central Standard Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "CAT": "Central Africa Time", "HKT": "Hong Kong Standard Time", "ChST": "Chamorro Standard Time", "ARST": "Argentina Summer Time", "HNOG": "West Greenland Standard Time", "MYT": "Malaysia Time", "CDT": "Central Daylight Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_BB) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_BB) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_BB) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_BB) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_BE/en_BE.go b/en_BE/en_BE.go
index 8cb9c237..7f65c07b 100644
--- a/en_BE/en_BE.go
+++ b/en_BE/en_BE.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HEEG": "East Greenland Summer Time", "ECT": "Ecuador Time", "GMT": "Greenwich Mean Time", "HAST": "Hawaii-Aleutian Standard Time", "ACDT": "Australian Central Daylight Time", "EDT": "Eastern Daylight Time", "MDT": "Macau Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "AEST": "Australian Eastern Standard Time", "WART": "Western Argentina Standard Time", "COST": "Colombia Summer Time", "HNCU": "Cuba Standard Time", "WIB": "Western Indonesia Time", "ART": "Argentina Standard Time", "CLST": "Chile Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HAT": "Newfoundland Daylight Time", "AWDT": "Australian Western Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "JST": "Japan Standard Time", "OESZ": "Eastern European Summer Time", "COT": "Colombia Standard Time", "MYT": "Malaysia Time", "HADT": "Hawaii-Aleutian Daylight Time", "MESZ": "Central European Summer Time", "NZDT": "New Zealand Daylight Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "HNPMX": "Mexican Pacific Standard Time", "AKST": "Alaska Standard Time", "HEOG": "West Greenland Summer Time", "GFT": "French Guiana Time", "ADT": "Atlantic Daylight Time", "HKT": "Hong Kong Standard Time", "LHDT": "Lord Howe Daylight Time", "WAT": "West Africa Standard Time", "MST": "Macau Standard Time", "CDT": "Central Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "CST": "Central Standard Time", "ARST": "Argentina Summer Time", "HNEG": "East Greenland Standard Time", "ACST": "Australian Central Standard Time", "WARST": "Western Argentina Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "HECU": "Cuba Daylight Time", "HNOG": "West Greenland Standard Time", "PDT": "Pacific Daylight Time", "WITA": "Central Indonesia Time", "AEDT": "Australian Eastern Daylight Time", "IST": "India Standard Time", "CHAST": "Chatham Standard Time", "MEZ": "Central European Standard Time", "OEZ": "Eastern European Standard Time", "WAST": "West Africa Summer Time", "UYT": "Uruguay Standard Time", "AKDT": "Alaska Daylight Time", "WIT": "Eastern Indonesia Time", "AWST": "Australian Western Standard Time", "GYT": "Guyana Time", "WEZ": "Western European Standard Time", "CHADT": "Chatham Daylight Time", "LHST": "Lord Howe Standard Time", "JDT": "Japan Daylight Time", "CLT": "Chile Standard Time", "BT": "Bhutan Time", "SRT": "Suriname Time", "PST": "Pacific Standard Time", "ACWST": "Australian Central Western Standard Time", "UYST": "Uruguay Summer Time", "VET": "Venezuela Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "ChST": "Chamorro Standard Time", "∅∅∅": "Peru Summer Time", "EAT": "East Africa Time", "EST": "Eastern Standard Time", "HNT": "Newfoundland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "AST": "Atlantic Standard Time", "WESZ": "Western European Summer Time", "HKST": "Hong Kong Summer Time", "NZST": "New Zealand Standard Time"},
+ timezones: map[string]string{"ART": "Argentina Standard Time", "BT": "Bhutan Time", "SRT": "Suriname Time", "EAT": "East Africa Time", "OESZ": "Eastern European Summer Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "AKST": "Alaska Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AWDT": "Australian Western Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "AST": "Atlantic Standard Time", "COT": "Colombia Standard Time", "WIB": "Western Indonesia Time", "MEZ": "Central European Standard Time", "VET": "Venezuela Time", "HECU": "Cuba Daylight Time", "MESZ": "Central European Summer Time", "EST": "Eastern Standard Time", "EDT": "Eastern Daylight Time", "GFT": "French Guiana Time", "WITA": "Central Indonesia Time", "BOT": "Bolivia Time", "HAST": "Hawaii-Aleutian Standard Time", "IST": "India Standard Time", "NZST": "New Zealand Standard Time", "CAT": "Central Africa Time", "MDT": "Macau Summer Time", "ARST": "Argentina Summer Time", "NZDT": "New Zealand Daylight Time", "HAT": "Newfoundland Daylight Time", "AKDT": "Alaska Daylight Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "SGT": "Singapore Standard Time", "ACWST": "Australian Central Western Standard Time", "CHAST": "Chatham Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "WAST": "West Africa Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "HNEG": "East Greenland Standard Time", "CHADT": "Chatham Daylight Time", "PST": "Pacific Standard Time", "ADT": "Atlantic Daylight Time", "GMT": "Greenwich Mean Time", "AWST": "Australian Western Standard Time", "TMST": "Turkmenistan Summer Time", "WAT": "West Africa Standard Time", "GYT": "Guyana Time", "ECT": "Ecuador Time", "JST": "Japan Standard Time", "WESZ": "Western European Summer Time", "PDT": "Pacific Daylight Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "HNT": "Newfoundland Standard Time", "UYT": "Uruguay Standard Time", "LHST": "Lord Howe Standard Time", "CLST": "Chile Summer Time", "HKST": "Hong Kong Summer Time", "ACDT": "Australian Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "ChST": "Chamorro Standard Time", "OEZ": "Eastern European Standard Time", "TMT": "Turkmenistan Standard Time", "HKT": "Hong Kong Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "UYST": "Uruguay Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "HNCU": "Cuba Standard Time", "COST": "Colombia Summer Time", "HEEG": "East Greenland Summer Time", "AEST": "Australian Eastern Standard Time", "WEZ": "Western European Standard Time", "MYT": "Malaysia Time", "MST": "Macau Standard Time", "ACST": "Australian Central Standard Time", "WIT": "Eastern Indonesia Time", "∅∅∅": "Brasilia Summer Time", "JDT": "Japan Daylight Time", "CLT": "Chile Standard Time", "AEDT": "Australian Eastern Daylight Time", "SAST": "South Africa Standard Time"},
}
}
diff --git a/en_BI/en_BI.go b/en_BI/en_BI.go
index 225240b4..3a4f7288 100644
--- a/en_BI/en_BI.go
+++ b/en_BI/en_BI.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HECU": "Cuba Daylight Time", "MESZ": "Central European Summer Time", "OEZ": "Eastern European Standard Time", "WIB": "Western Indonesia Time", "NZST": "New Zealand Standard Time", "CAT": "Central Africa Time", "∅∅∅": "Peru Summer Time", "GMT": "Greenwich Mean Time", "HEPMX": "Mexican Pacific Daylight Time", "SRT": "Suriname Time", "WEZ": "Western European Standard Time", "ACDT": "Australian Central Daylight Time", "WARST": "Western Argentina Summer Time", "SGT": "Singapore Standard Time", "EDT": "Eastern Daylight Time", "CHAST": "Chatham Standard Time", "BOT": "Bolivia Time", "ACST": "Australian Central Standard Time", "UYST": "Uruguay Summer Time", "ART": "Argentina Standard Time", "MEZ": "Central European Standard Time", "ChST": "Chamorro Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "AKDT": "Alaska Daylight Time", "AST": "Atlantic Standard Time", "ACWST": "Australian Central Western Standard Time", "AEST": "Australian Eastern Standard Time", "SAST": "South Africa Standard Time", "CLT": "Chile Standard Time", "HEEG": "East Greenland Summer Time", "WAST": "West Africa Summer Time", "HEOG": "West Greenland Summer Time", "HKST": "Hong Kong Summer Time", "NZDT": "New Zealand Daylight Time", "TMST": "Turkmenistan Summer Time", "CDT": "Central Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HNOG": "West Greenland Standard Time", "WITA": "Central Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CLST": "Chile Summer Time", "GFT": "French Guiana Time", "ADT": "Atlantic Daylight Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "PST": "Pacific Standard Time", "HAT": "Newfoundland Daylight Time", "CHADT": "Chatham Daylight Time", "ECT": "Ecuador Time", "MST": "Macau Standard Time", "MYT": "Malaysia Time", "JDT": "Japan Daylight Time", "EST": "Eastern Standard Time", "AKST": "Alaska Standard Time", "AEDT": "Australian Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "OESZ": "Eastern European Summer Time", "ACWDT": "Australian Central Western Daylight Time", "HNT": "Newfoundland Standard Time", "HKT": "Hong Kong Standard Time", "LHDT": "Lord Howe Daylight Time", "WIT": "Eastern Indonesia Time", "WAT": "West Africa Standard Time", "UYT": "Uruguay Standard Time", "GYT": "Guyana Time", "BT": "Bhutan Time", "JST": "Japan Standard Time", "EAT": "East Africa Time", "CST": "Central Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "VET": "Venezuela Time", "HNCU": "Cuba Standard Time", "COST": "Colombia Summer Time", "MDT": "Macau Summer Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "WART": "Western Argentina Standard Time", "PDT": "Pacific Daylight Time", "WESZ": "Western European Summer Time", "AWST": "Australian Western Standard Time", "IST": "India Standard Time", "HNEG": "East Greenland Standard Time", "TMT": "Turkmenistan Standard Time", "HNPMX": "Mexican Pacific Standard Time"},
+ timezones: map[string]string{"CAT": "Central Africa Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "ChST": "Chamorro Standard Time", "UYT": "Uruguay Standard Time", "LHDT": "Lord Howe Daylight Time", "JDT": "Japan Daylight Time", "MDT": "Macau Summer Time", "ART": "Argentina Standard Time", "WAST": "West Africa Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "SRT": "Suriname Time", "PDT": "Pacific Daylight Time", "NZDT": "New Zealand Daylight Time", "WESZ": "Western European Summer Time", "MYT": "Malaysia Time", "WART": "Western Argentina Standard Time", "TMT": "Turkmenistan Standard Time", "AEDT": "Australian Eastern Daylight Time", "BOT": "Bolivia Time", "EST": "Eastern Standard Time", "HKT": "Hong Kong Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CHADT": "Chatham Daylight Time", "SGT": "Singapore Standard Time", "ACWST": "Australian Central Western Standard Time", "AST": "Atlantic Standard Time", "OEZ": "Eastern European Standard Time", "ACST": "Australian Central Standard Time", "HAT": "Newfoundland Daylight Time", "WIB": "Western Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "ADT": "Atlantic Daylight Time", "CLT": "Chile Standard Time", "ARST": "Argentina Summer Time", "AKDT": "Alaska Daylight Time", "HECU": "Cuba Daylight Time", "CST": "Central Standard Time", "MST": "Macau Standard Time", "BT": "Bhutan Time", "HEEG": "East Greenland Summer Time", "GYT": "Guyana Time", "ACDT": "Australian Central Daylight Time", "UYST": "Uruguay Summer Time", "PST": "Pacific Standard Time", "CLST": "Chile Summer Time", "WAT": "West Africa Standard Time", "HNEG": "East Greenland Standard Time", "WITA": "Central Indonesia Time", "GFT": "French Guiana Time", "CDT": "Central Daylight Time", "ECT": "Ecuador Time", "JST": "Japan Standard Time", "WEZ": "Western European Standard Time", "GMT": "Greenwich Mean Time", "IST": "India Standard Time", "COST": "Colombia Summer Time", "WIT": "Eastern Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "∅∅∅": "Amazon Summer Time", "HNOG": "West Greenland Standard Time", "AEST": "Australian Eastern Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "HEOG": "West Greenland Summer Time", "OESZ": "Eastern European Summer Time", "WARST": "Western Argentina Summer Time", "EDT": "Eastern Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "EAT": "East Africa Time", "AWDT": "Australian Western Daylight Time", "CHAST": "Chatham Standard Time", "TMST": "Turkmenistan Summer Time", "SAST": "South Africa Standard Time", "AWST": "Australian Western Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "MEZ": "Central European Standard Time", "VET": "Venezuela Time", "HNT": "Newfoundland Standard Time", "AKST": "Alaska Standard Time", "MESZ": "Central European Summer Time", "HKST": "Hong Kong Summer Time", "HNCU": "Cuba Standard Time"},
}
}
diff --git a/en_BM/en_BM.go b/en_BM/en_BM.go
index 5d8680f5..5d4e0466 100644
--- a/en_BM/en_BM.go
+++ b/en_BM/en_BM.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"AKDT": "Alaska Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "BT": "Bhutan Time", "ECT": "Ecuador Time", "EAT": "East Africa Time", "HNNOMX": "Northwest Mexico Standard Time", "AKST": "Alaska Standard Time", "WIB": "Western Indonesia Time", "HKT": "Hong Kong Standard Time", "HNEG": "East Greenland Standard Time", "WEZ": "Western European Standard Time", "ACWDT": "Australian Central Western Daylight Time", "IST": "India Standard Time", "CDT": "Central Daylight Time", "AEDT": "Australian Eastern Daylight Time", "CLT": "Chile Standard Time", "CAT": "Central Africa Time", "HEPMX": "Mexican Pacific Daylight Time", "UYT": "Uruguay Standard Time", "TMT": "Turkmenistan Standard Time", "ACWST": "Australian Central Western Standard Time", "LHDT": "Lord Howe Daylight Time", "ACST": "Australian Central Standard Time", "WART": "Western Argentina Standard Time", "HECU": "Cuba Daylight Time", "SGT": "Singapore Standard Time", "GYT": "Guyana Time", "ARST": "Argentina Summer Time", "PST": "Pacific Standard Time", "MESZ": "Central European Summer Time", "GFT": "French Guiana Time", "TMST": "Turkmenistan Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "WITA": "Central Indonesia Time", "GMT": "Greenwich Mean Time", "EDT": "Eastern Daylight Time", "ChST": "Chamorro Standard Time", "WAST": "West Africa Summer Time", "COT": "Colombia Standard Time", "ADT": "Atlantic Daylight Time", "PDT": "Pacific Daylight Time", "AEST": "Australian Eastern Standard Time", "AWDT": "Australian Western Daylight Time", "MEZ": "Central European Standard Time", "EST": "Eastern Standard Time", "UYST": "Uruguay Summer Time", "SRT": "Suriname Time", "HNOG": "West Greenland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "BOT": "Bolivia Time", "HNPMX": "Mexican Pacific Standard Time", "HNT": "Newfoundland Standard Time", "NZST": "New Zealand Standard Time", "ACDT": "Australian Central Daylight Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "HNCU": "Cuba Standard Time", "OESZ": "Eastern European Summer Time", "AST": "Atlantic Standard Time", "VET": "Venezuela Time", "WIT": "Eastern Indonesia Time", "HEOG": "West Greenland Summer Time", "LHST": "Lord Howe Standard Time", "JST": "Japan Standard Time", "JDT": "Japan Daylight Time", "WESZ": "Western European Summer Time", "HEEG": "East Greenland Summer Time", "OEZ": "Eastern European Standard Time", "CLST": "Chile Summer Time", "MDT": "Macau Summer Time", "CST": "Central Standard Time", "HAT": "Newfoundland Daylight Time", "ART": "Argentina Standard Time", "HKST": "Hong Kong Summer Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "WAT": "West Africa Standard Time", "MST": "Macau Standard Time", "MYT": "Malaysia Time", "AWST": "Australian Western Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHAST": "Chatham Standard Time", "NZDT": "New Zealand Daylight Time", "∅∅∅": "Amazon Summer Time"},
+ timezones: map[string]string{"HNEG": "East Greenland Standard Time", "SAST": "South Africa Standard Time", "BOT": "Bolivia Time", "HAST": "Hawaii-Aleutian Standard Time", "WESZ": "Western European Summer Time", "CLT": "Chile Standard Time", "ACST": "Australian Central Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "LHDT": "Lord Howe Daylight Time", "ACDT": "Australian Central Daylight Time", "AKST": "Alaska Standard Time", "CDT": "Central Daylight Time", "WIT": "Eastern Indonesia Time", "AWST": "Australian Western Standard Time", "PST": "Pacific Standard Time", "JDT": "Japan Daylight Time", "CLST": "Chile Summer Time", "LHST": "Lord Howe Standard Time", "HNCU": "Cuba Standard Time", "WAST": "West Africa Summer Time", "EST": "Eastern Standard Time", "ChST": "Chamorro Standard Time", "HNPMX": "Mexican Pacific Standard Time", "WITA": "Central Indonesia Time", "UYT": "Uruguay Standard Time", "ACWDT": "Australian Central Western Daylight Time", "MEZ": "Central European Standard Time", "WART": "Western Argentina Standard Time", "HKT": "Hong Kong Standard Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "UYST": "Uruguay Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "TMT": "Turkmenistan Standard Time", "∅∅∅": "Brasilia Summer Time", "AWDT": "Australian Western Daylight Time", "ART": "Argentina Standard Time", "COST": "Colombia Summer Time", "HAT": "Newfoundland Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "GYT": "Guyana Time", "WIB": "Western Indonesia Time", "HEPMX": "Mexican Pacific Daylight Time", "HECU": "Cuba Daylight Time", "MESZ": "Central European Summer Time", "EDT": "Eastern Daylight Time", "SRT": "Suriname Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "GMT": "Greenwich Mean Time", "AEST": "Australian Eastern Standard Time", "CST": "Central Standard Time", "PDT": "Pacific Daylight Time", "VET": "Venezuela Time", "JST": "Japan Standard Time", "ADT": "Atlantic Daylight Time", "ARST": "Argentina Summer Time", "HEOG": "West Greenland Summer Time", "BT": "Bhutan Time", "AST": "Atlantic Standard Time", "ECT": "Ecuador Time", "ACWST": "Australian Central Western Standard Time", "MST": "Macau Standard Time", "HNT": "Newfoundland Standard Time", "HEEG": "East Greenland Summer Time", "AEDT": "Australian Eastern Daylight Time", "HNOG": "West Greenland Standard Time", "WARST": "Western Argentina Summer Time", "EAT": "East Africa Time", "CHAST": "Chatham Standard Time", "CHADT": "Chatham Daylight Time", "SGT": "Singapore Standard Time", "CAT": "Central Africa Time", "IST": "India Standard Time", "MDT": "Macau Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "GFT": "French Guiana Time", "WEZ": "Western European Standard Time", "MYT": "Malaysia Time", "TMST": "Turkmenistan Summer Time", "WAT": "West Africa Standard Time", "HKST": "Hong Kong Summer Time", "AKDT": "Alaska Daylight Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_BM) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_BM) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_BM) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_BM) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_BS/en_BS.go b/en_BS/en_BS.go
index 56b2ef04..82eb0c2b 100644
--- a/en_BS/en_BS.go
+++ b/en_BS/en_BS.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"WART": "Western Argentina Standard Time", "HNPMX": "Mexican Pacific Standard Time", "MYT": "Malaysia Time", "ACWST": "Australian Central Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "ARST": "Argentina Summer Time", "BOT": "Bolivia Time", "WAT": "West Africa Standard Time", "AEDT": "Australian Eastern Daylight Time", "ChST": "Chamorro Standard Time", "UYST": "Uruguay Summer Time", "AKDT": "Alaska Daylight Time", "HEOG": "West Greenland Summer Time", "HKST": "Hong Kong Summer Time", "NZST": "New Zealand Standard Time", "GMT": "Greenwich Mean Time", "BT": "Bhutan Time", "HNOG": "West Greenland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "MEZ": "Central European Standard Time", "CHADT": "Chatham Daylight Time", "OEZ": "Eastern European Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "EDT": "Eastern Daylight Time", "AEST": "Australian Eastern Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "AST": "Atlantic Standard Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "EST": "Eastern Standard Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "PDT": "Pacific Daylight Time", "ADT": "Atlantic Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "UYT": "Uruguay Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "SRT": "Suriname Time", "JDT": "Japan Daylight Time", "HNCU": "Cuba Standard Time", "TMT": "Turkmenistan Standard Time", "AKST": "Alaska Standard Time", "WIT": "Eastern Indonesia Time", "∅∅∅": "Amazon Summer Time", "JST": "Japan Standard Time", "COT": "Colombia Standard Time", "CST": "Central Standard Time", "PST": "Pacific Standard Time", "CAT": "Central Africa Time", "WAST": "West Africa Summer Time", "HEEG": "East Greenland Summer Time", "HNT": "Newfoundland Standard Time", "AWDT": "Australian Western Daylight Time", "SAST": "South Africa Standard Time", "HNEG": "East Greenland Standard Time", "TMST": "Turkmenistan Summer Time", "CDT": "Central Daylight Time", "AWST": "Australian Western Standard Time", "NZDT": "New Zealand Daylight Time", "EAT": "East Africa Time", "OESZ": "Eastern European Summer Time", "ECT": "Ecuador Time", "HECU": "Cuba Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "ART": "Argentina Standard Time", "LHDT": "Lord Howe Daylight Time", "CHAST": "Chatham Standard Time", "GFT": "French Guiana Time", "ACDT": "Australian Central Daylight Time", "MST": "Macau Standard Time", "WESZ": "Western European Summer Time", "HAT": "Newfoundland Daylight Time", "HKT": "Hong Kong Standard Time", "MESZ": "Central European Summer Time", "COST": "Colombia Summer Time", "WIB": "Western Indonesia Time", "IST": "India Standard Time", "ACST": "Australian Central Standard Time", "WARST": "Western Argentina Summer Time", "VET": "Venezuela Time", "WEZ": "Western European Standard Time", "WITA": "Central Indonesia Time", "LHST": "Lord Howe Standard Time"},
+ timezones: map[string]string{"HKT": "Hong Kong Standard Time", "HNEG": "East Greenland Standard Time", "HEEG": "East Greenland Summer Time", "AKST": "Alaska Standard Time", "ECT": "Ecuador Time", "VET": "Venezuela Time", "MYT": "Malaysia Time", "CLT": "Chile Standard Time", "COT": "Colombia Standard Time", "HECU": "Cuba Daylight Time", "WIB": "Western Indonesia Time", "PST": "Pacific Standard Time", "BT": "Bhutan Time", "LHST": "Lord Howe Standard Time", "SRT": "Suriname Time", "AWDT": "Australian Western Daylight Time", "MESZ": "Central European Summer Time", "EST": "Eastern Standard Time", "HKST": "Hong Kong Summer Time", "HAT": "Newfoundland Daylight Time", "WITA": "Central Indonesia Time", "CHAST": "Chatham Standard Time", "ADT": "Atlantic Daylight Time", "TMT": "Turkmenistan Standard Time", "EAT": "East Africa Time", "WARST": "Western Argentina Summer Time", "TMST": "Turkmenistan Summer Time", "MST": "Macau Standard Time", "WAST": "West Africa Summer Time", "GYT": "Guyana Time", "CHADT": "Chatham Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "SAST": "South Africa Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CST": "Central Standard Time", "PDT": "Pacific Daylight Time", "CLST": "Chile Summer Time", "ACST": "Australian Central Standard Time", "GFT": "French Guiana Time", "AKDT": "Alaska Daylight Time", "SGT": "Singapore Standard Time", "WEZ": "Western European Standard Time", "WAT": "West Africa Standard Time", "ACWST": "Australian Central Western Standard Time", "HEOG": "West Greenland Summer Time", "AST": "Atlantic Standard Time", "ChST": "Chamorro Standard Time", "MEZ": "Central European Standard Time", "JST": "Japan Standard Time", "JDT": "Japan Daylight Time", "HNOG": "West Greenland Standard Time", "COST": "Colombia Summer Time", "UYT": "Uruguay Standard Time", "MDT": "Macau Summer Time", "ARST": "Argentina Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHDT": "Lord Howe Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "AWST": "Australian Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "NZDT": "New Zealand Daylight Time", "WESZ": "Western European Summer Time", "EDT": "Eastern Daylight Time", "AEST": "Australian Eastern Standard Time", "HNT": "Newfoundland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CDT": "Central Daylight Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "WART": "Western Argentina Standard Time", "OESZ": "Eastern European Summer Time", "ART": "Argentina Standard Time", "WIT": "Eastern Indonesia Time", "∅∅∅": "Brasilia Summer Time", "IST": "India Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "UYST": "Uruguay Summer Time", "AEDT": "Australian Eastern Daylight Time", "HNCU": "Cuba Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "NZST": "New Zealand Standard Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "ACDT": "Australian Central Daylight Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_BS) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_BS) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_BS) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_BS) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_BW/en_BW.go b/en_BW/en_BW.go
index 5e9d0514..bc12b4fa 100644
--- a/en_BW/en_BW.go
+++ b/en_BW/en_BW.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HEPMX": "Mexican Pacific Daylight Time", "UYT": "Uruguay Standard Time", "PDT": "Pacific Daylight Time", "WAT": "West Africa Standard Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "SGT": "Singapore Standard Time", "ADT": "Atlantic Daylight Time", "AWST": "Australian Western Standard Time", "∅∅∅": "Amazon Summer Time", "HEEG": "East Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "OESZ": "Eastern European Summer Time", "EAT": "East Africa Time", "WART": "Western Argentina Standard Time", "CDT": "Central Daylight Time", "VET": "Venezuela Time", "MESZ": "Central European Summer Time", "IST": "India Standard Time", "JST": "Japan Standard Time", "GFT": "French Guiana Time", "AST": "Atlantic Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "BOT": "Bolivia Time", "HECU": "Cuba Daylight Time", "WIB": "Western Indonesia Time", "JDT": "Japan Daylight Time", "ChST": "Chamorro Standard Time", "CAT": "Central Africa Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "EST": "Eastern Standard Time", "HAT": "Newfoundland Daylight Time", "CHADT": "Chatham Daylight Time", "MST": "Macau Standard Time", "ACWST": "Australian Central Western Standard Time", "AEDT": "Australian Eastern Daylight Time", "ACST": "Australian Central Standard Time", "OEZ": "Eastern European Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "WEZ": "Western European Standard Time", "MYT": "Malaysia Time", "CST": "Central Standard Time", "HNEG": "East Greenland Standard Time", "ACDT": "Australian Central Daylight Time", "ECT": "Ecuador Time", "WESZ": "Western European Summer Time", "ARST": "Argentina Summer Time", "WITA": "Central Indonesia Time", "MEZ": "Central European Standard Time", "CLST": "Chile Summer Time", "BT": "Bhutan Time", "CHAST": "Chatham Standard Time", "SAST": "South Africa Standard Time", "AKDT": "Alaska Daylight Time", "WIT": "Eastern Indonesia Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "NZST": "New Zealand Standard Time", "MDT": "Macau Summer Time", "PST": "Pacific Standard Time", "HNT": "Newfoundland Standard Time", "HKT": "Hong Kong Standard Time", "CLT": "Chile Standard Time", "HNPMX": "Mexican Pacific Standard Time", "SRT": "Suriname Time", "HKST": "Hong Kong Summer Time", "HNCU": "Cuba Standard Time", "EDT": "Eastern Daylight Time", "UYST": "Uruguay Summer Time", "AWDT": "Australian Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "TMST": "Turkmenistan Summer Time", "GMT": "Greenwich Mean Time", "GYT": "Guyana Time", "ART": "Argentina Standard Time", "WAST": "West Africa Summer Time", "COT": "Colombia Standard Time", "AKST": "Alaska Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "AEST": "Australian Eastern Standard Time", "HENOMX": "Northwest Mexico Daylight Time"},
+ timezones: map[string]string{"VET": "Venezuela Time", "CLST": "Chile Summer Time", "OESZ": "Eastern European Summer Time", "ACDT": "Australian Central Daylight Time", "COT": "Colombia Standard Time", "AKDT": "Alaska Daylight Time", "SAST": "South Africa Standard Time", "BOT": "Bolivia Time", "ACWST": "Australian Central Western Standard Time", "JDT": "Japan Daylight Time", "AST": "Atlantic Standard Time", "WESZ": "Western European Summer Time", "GMT": "Greenwich Mean Time", "AWST": "Australian Western Standard Time", "CHADT": "Chatham Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "ARST": "Argentina Summer Time", "WAST": "West Africa Summer Time", "HKT": "Hong Kong Standard Time", "ECT": "Ecuador Time", "ADT": "Atlantic Daylight Time", "ACST": "Australian Central Standard Time", "HNT": "Newfoundland Standard Time", "HNEG": "East Greenland Standard Time", "EAT": "East Africa Time", "HECU": "Cuba Daylight Time", "WART": "Western Argentina Standard Time", "WIT": "Eastern Indonesia Time", "NZST": "New Zealand Standard Time", "JST": "Japan Standard Time", "HNOG": "West Greenland Standard Time", "HKST": "Hong Kong Summer Time", "WITA": "Central Indonesia Time", "MST": "Mountain Standard Time", "CDT": "Central Daylight Time", "TMST": "Turkmenistan Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "WIB": "Western Indonesia Time", "AWDT": "Australian Western Daylight Time", "CHAST": "Chatham Standard Time", "CLT": "Chile Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "ChST": "Chamorro Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MESZ": "Central European Summer Time", "HEEG": "East Greenland Summer Time", "LHST": "Lord Howe Standard Time", "HNPMX": "Mexican Pacific Standard Time", "MDT": "Mountain Daylight Time", "SRT": "Suriname Time", "EST": "Eastern Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "PST": "Pacific Standard Time", "NZDT": "New Zealand Daylight Time", "MYT": "Malaysia Time", "AKST": "Alaska Standard Time", "UYST": "Uruguay Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "AEST": "Australian Eastern Standard Time", "LHDT": "Lord Howe Daylight Time", "WARST": "Western Argentina Summer Time", "ACWDT": "Australian Central Western Daylight Time", "WEZ": "Western European Standard Time", "BT": "Bhutan Time", "UYT": "Uruguay Standard Time", "IST": "India Standard Time", "SGT": "Singapore Standard Time", "WAT": "West Africa Standard Time", "EDT": "Eastern Daylight Time", "COST": "Colombia Summer Time", "GYT": "Guyana Time", "HNCU": "Cuba Standard Time", "CST": "Central Standard Time", "GFT": "French Guiana Time", "PDT": "Pacific Daylight Time", "HEOG": "West Greenland Summer Time", "MEZ": "Central European Standard Time", "OEZ": "Eastern European Standard Time", "∅∅∅": "Peru Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "CAT": "Central Africa Time", "ART": "Argentina Standard Time", "HAT": "Newfoundland Daylight Time", "AEDT": "Australian Eastern Daylight Time", "TMT": "Turkmenistan Standard Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_BW) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_BW) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
diff --git a/en_BZ/en_BZ.go b/en_BZ/en_BZ.go
index 474d45c0..a5d5c2d1 100644
--- a/en_BZ/en_BZ.go
+++ b/en_BZ/en_BZ.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"PDT": "Pacific Daylight Time", "SAST": "South Africa Standard Time", "HKST": "Hong Kong Summer Time", "MESZ": "Central European Summer Time", "CAT": "Central Africa Time", "HECU": "Cuba Daylight Time", "WESZ": "Western European Summer Time", "ACWDT": "Australian Central Western Daylight Time", "HEOG": "West Greenland Summer Time", "MST": "Macau Standard Time", "AKST": "Alaska Standard Time", "AST": "Atlantic Standard Time", "HEEG": "East Greenland Summer Time", "OEZ": "Eastern European Standard Time", "HNCU": "Cuba Standard Time", "LHST": "Lord Howe Standard Time", "TMT": "Turkmenistan Standard Time", "ECT": "Ecuador Time", "EDT": "Eastern Daylight Time", "UYST": "Uruguay Summer Time", "WIT": "Eastern Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "WEZ": "Western European Standard Time", "∅∅∅": "Amazon Summer Time", "WIB": "Western Indonesia Time", "AEST": "Australian Eastern Standard Time", "OESZ": "Eastern European Summer Time", "UYT": "Uruguay Standard Time", "CLT": "Chile Standard Time", "MDT": "Macau Summer Time", "EST": "Eastern Standard Time", "HNT": "Newfoundland Standard Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "GYT": "Guyana Time", "ART": "Argentina Standard Time", "HKT": "Hong Kong Standard Time", "AKDT": "Alaska Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZST": "New Zealand Standard Time", "BOT": "Bolivia Time", "COT": "Colombia Standard Time", "SGT": "Singapore Standard Time", "BT": "Bhutan Time", "ACWST": "Australian Central Western Standard Time", "WITA": "Central Indonesia Time", "CST": "Central Standard Time", "ACST": "Australian Central Standard Time", "HAT": "Newfoundland Daylight Time", "AEDT": "Australian Eastern Daylight Time", "IST": "India Standard Time", "AWDT": "Australian Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "ChST": "Chamorro Standard Time", "VET": "Venezuela Time", "SRT": "Suriname Time", "ARST": "Argentina Summer Time", "ACDT": "Australian Central Daylight Time", "EAT": "East Africa Time", "COST": "Colombia Summer Time", "WART": "Western Argentina Standard Time", "HNPMX": "Mexican Pacific Standard Time", "PST": "Pacific Standard Time", "GFT": "French Guiana Time", "TMST": "Turkmenistan Summer Time", "CDT": "Central Daylight Time", "MYT": "Malaysia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CHADT": "Chatham Daylight Time", "JDT": "Japan Daylight Time", "HNEG": "East Greenland Standard Time", "WARST": "Western Argentina Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "ADT": "Atlantic Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "AWST": "Australian Western Standard Time", "MEZ": "Central European Standard Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HNOG": "West Greenland Standard Time", "CLST": "Chile Summer Time", "JST": "Japan Standard Time", "WAST": "West Africa Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "GMT": "Greenwich Mean Time"},
+ timezones: map[string]string{"AWST": "Australian Western Standard Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "HKST": "Hong Kong Summer Time", "ACST": "Australian Central Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "ACDT": "Australian Central Daylight Time", "ACWST": "Australian Central Western Standard Time", "NZDT": "New Zealand Daylight Time", "JST": "Japan Standard Time", "HKT": "Hong Kong Standard Time", "UYT": "Uruguay Standard Time", "SAST": "South Africa Standard Time", "BOT": "Bolivia Time", "HAST": "Hawaii-Aleutian Standard Time", "∅∅∅": "Amazon Summer Time", "HAT": "Newfoundland Daylight Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "MDT": "Macau Summer Time", "AEDT": "Australian Eastern Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "CLST": "Chile Summer Time", "HEOG": "West Greenland Summer Time", "AST": "Atlantic Standard Time", "HNT": "Newfoundland Standard Time", "CDT": "Central Daylight Time", "ECT": "Ecuador Time", "OESZ": "Eastern European Summer Time", "WEZ": "Western European Standard Time", "TMT": "Turkmenistan Standard Time", "MST": "Macau Standard Time", "VET": "Venezuela Time", "HNPMX": "Mexican Pacific Standard Time", "WIB": "Western Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "WESZ": "Western European Summer Time", "GMT": "Greenwich Mean Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNCU": "Cuba Standard Time", "HNEG": "East Greenland Standard Time", "MEZ": "Central European Standard Time", "OEZ": "Eastern European Standard Time", "EST": "Eastern Standard Time", "WAST": "West Africa Summer Time", "CHADT": "Chatham Daylight Time", "WITA": "Central Indonesia Time", "GYT": "Guyana Time", "EAT": "East Africa Time", "AWDT": "Australian Western Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "SRT": "Suriname Time", "WIT": "Eastern Indonesia Time", "NZST": "New Zealand Standard Time", "JDT": "Japan Daylight Time", "MESZ": "Central European Summer Time", "AEST": "Australian Eastern Standard Time", "SGT": "Singapore Standard Time", "CHAST": "Chatham Standard Time", "MYT": "Malaysia Time", "ADT": "Atlantic Daylight Time", "COST": "Colombia Summer Time", "LHST": "Lord Howe Standard Time", "CAT": "Central Africa Time", "GFT": "French Guiana Time", "LHDT": "Lord Howe Daylight Time", "PST": "Pacific Standard Time", "WARST": "Western Argentina Summer Time", "CLT": "Chile Standard Time", "TMST": "Turkmenistan Summer Time", "PDT": "Pacific Daylight Time", "HEEG": "East Greenland Summer Time", "BT": "Bhutan Time", "ChST": "Chamorro Standard Time", "IST": "India Standard Time", "WART": "Western Argentina Standard Time", "EDT": "Eastern Daylight Time", "WAT": "West Africa Standard Time", "HECU": "Cuba Daylight Time", "CST": "Central Standard Time", "HNOG": "West Greenland Standard Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "UYST": "Uruguay Summer Time"},
}
}
diff --git a/en_CA/en_CA.go b/en_CA/en_CA.go
index 08156694..b5357c68 100644
--- a/en_CA/en_CA.go
+++ b/en_CA/en_CA.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HNT": "Newfoundland Standard Time", "ChST": "Chamorro Standard Time", "ACDT": "Australian Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "VET": "Venezuela Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "UYST": "Uruguay Summer Time", "JST": "Japan Standard Time", "WIT": "Eastern Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "AEDT": "Australian Eastern Daylight Time", "AWDT": "Australian Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "∅∅∅": "Amazon Summer Time", "HECU": "Cuba Daylight Time", "MYT": "Malaysia Time", "SRT": "Suriname Time", "WITA": "Central Indonesia Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "COT": "Colombia Standard Time", "AKST": "Alaska Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "BT": "Bhutan Time", "CHAST": "Chatham Standard Time", "IST": "India Standard Time", "TMST": "Turkmenistan Summer Time", "ECT": "Ecuador Time", "WEZ": "Western European Standard Time", "HNEG": "East Greenland Standard Time", "COST": "Colombia Summer Time", "ADT": "Atlantic Daylight Time", "AKDT": "Alaska Daylight Time", "ACWST": "Australian Central Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SAST": "South Africa Standard Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "ACST": "Australian Central Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HKT": "Hong Kong Standard Time", "OESZ": "Eastern European Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "UYT": "Uruguay Standard Time", "CDT": "Central Daylight Time", "HNOG": "West Greenland Standard Time", "OEZ": "Eastern European Standard Time", "EDT": "Eastern Daylight Time", "AST": "Atlantic Standard Time", "LHDT": "Lord Howe Daylight Time", "GMT": "Greenwich Mean Time", "HNCU": "Cuba Standard Time", "CST": "Central Standard Time", "WAST": "West Africa Summer Time", "HNPMX": "Mexican Pacific Standard Time", "HKST": "Hong Kong Summer Time", "MESZ": "Central European Summer Time", "CAT": "Central Africa Time", "EAT": "East Africa Time", "SGT": "Singapore Standard Time", "EST": "Eastern Standard Time", "HEOG": "West Greenland Summer Time", "JDT": "Japan Daylight Time", "WIB": "Western Indonesia Time", "WESZ": "Western European Summer Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "AWST": "Australian Western Standard Time", "MEZ": "Central European Standard Time", "BOT": "Bolivia Time", "MST": "Macau Standard Time", "PST": "Pacific Standard Time", "PDT": "Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "CHADT": "Chatham Daylight Time"},
+ timezones: map[string]string{"∅∅∅": "Amazon Summer Time", "HKT": "Hong Kong Standard Time", "AEST": "Australian Eastern Standard Time", "ChST": "Chamorro Standard Time", "SAST": "South Africa Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "AWST": "Australian Western Standard Time", "MYT": "Malaysia Time", "EST": "Eastern Standard Time", "HKST": "Hong Kong Summer Time", "AWDT": "Australian Western Daylight Time", "ACDT": "Australian Central Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HNCU": "Cuba Standard Time", "WIT": "Eastern Indonesia Time", "ACWST": "Australian Central Western Standard Time", "HEOG": "West Greenland Summer Time", "ARST": "Argentina Summer Time", "EAT": "East Africa Time", "HECU": "Cuba Daylight Time", "WIB": "Western Indonesia Time", "CHAST": "Chatham Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "WITA": "Central Indonesia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "GYT": "Guyana Time", "WAST": "West Africa Summer Time", "PDT": "Pacific Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "JDT": "Japan Daylight Time", "HNOG": "West Greenland Standard Time", "OESZ": "Eastern European Summer Time", "MST": "Macau Standard Time", "ART": "Argentina Standard Time", "COT": "Colombia Standard Time", "GFT": "French Guiana Time", "UYT": "Uruguay Standard Time", "UYST": "Uruguay Summer Time", "SRT": "Suriname Time", "CST": "Central Standard Time", "ACWDT": "Australian Central Western Daylight Time", "MEZ": "Central European Standard Time", "JST": "Japan Standard Time", "BT": "Bhutan Time", "LHST": "Lord Howe Standard Time", "CHADT": "Chatham Daylight Time", "PST": "Pacific Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HNPMX": "Mexican Pacific Standard Time", "BOT": "Bolivia Time", "IST": "India Standard Time", "CLT": "Chile Standard Time", "AST": "Atlantic Standard Time", "GMT": "Greenwich Mean Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "MDT": "Macau Summer Time", "WAT": "West Africa Standard Time", "HAT": "Newfoundland Daylight Time", "HEEG": "East Greenland Summer Time", "LHDT": "Lord Howe Daylight Time", "WART": "Western Argentina Standard Time", "ADT": "Atlantic Daylight Time", "WEZ": "Western European Standard Time", "WESZ": "Western European Summer Time", "ACST": "Australian Central Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "CDT": "Central Daylight Time", "EDT": "Eastern Daylight Time", "SGT": "Singapore Standard Time", "ECT": "Ecuador Time", "WARST": "Western Argentina Summer Time", "OEZ": "Eastern European Standard Time", "COST": "Colombia Summer Time", "VET": "Venezuela Time", "TMST": "Turkmenistan Summer Time", "CAT": "Central Africa Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "MESZ": "Central European Summer Time", "CLST": "Chile Summer Time", "TMT": "Turkmenistan Standard Time", "HNT": "Newfoundland Standard Time", "HNEG": "East Greenland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_CA) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_CA) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
diff --git a/en_CC/en_CC.go b/en_CC/en_CC.go
index 2b72d551..0bb402cd 100644
--- a/en_CC/en_CC.go
+++ b/en_CC/en_CC.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HKT": "Hong Kong Standard Time", "HNEG": "East Greenland Standard Time", "ACDT": "Australian Central Daylight Time", "OEZ": "Eastern European Standard Time", "WAT": "West Africa Standard Time", "UYST": "Uruguay Summer Time", "WIT": "Eastern Indonesia Time", "WAST": "West Africa Summer Time", "SGT": "Singapore Standard Time", "ART": "Argentina Standard Time", "PDT": "Pacific Daylight Time", "ACWST": "Australian Central Western Standard Time", "JST": "Japan Standard Time", "TMST": "Turkmenistan Summer Time", "ACST": "Australian Central Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "AKDT": "Alaska Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "GYT": "Guyana Time", "HNOG": "West Greenland Standard Time", "WITA": "Central Indonesia Time", "AEDT": "Australian Eastern Daylight Time", "CHADT": "Chatham Daylight Time", "LHDT": "Lord Howe Daylight Time", "WART": "Western Argentina Standard Time", "ADT": "Atlantic Daylight Time", "EDT": "Eastern Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "HNT": "Newfoundland Standard Time", "HEOG": "West Greenland Summer Time", "PST": "Pacific Standard Time", "ACWDT": "Australian Central Western Daylight Time", "CLST": "Chile Summer Time", "HNCU": "Cuba Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HKST": "Hong Kong Summer Time", "ECT": "Ecuador Time", "WARST": "Western Argentina Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "GFT": "French Guiana Time", "BOT": "Bolivia Time", "HAT": "Newfoundland Daylight Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "COT": "Colombia Standard Time", "EST": "Eastern Standard Time", "ARST": "Argentina Summer Time", "CLT": "Chile Standard Time", "OESZ": "Eastern European Summer Time", "COST": "Colombia Summer Time", "BT": "Bhutan Time", "CHAST": "Chatham Standard Time", "TMT": "Turkmenistan Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HECU": "Cuba Daylight Time", "CST": "Central Standard Time", "SRT": "Suriname Time", "HEEG": "East Greenland Summer Time", "AST": "Atlantic Standard Time", "GMT": "Greenwich Mean Time", "WIB": "Western Indonesia Time", "AWDT": "Australian Western Daylight Time", "MEZ": "Central European Standard Time", "SAST": "South Africa Standard Time", "JDT": "Japan Daylight Time", "ChST": "Chamorro Standard Time", "EAT": "East Africa Time", "AEST": "Australian Eastern Standard Time", "∅∅∅": "Amazon Summer Time", "MYT": "Malaysia Time", "UYT": "Uruguay Standard Time", "AWST": "Australian Western Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHST": "Lord Howe Standard Time", "CAT": "Central Africa Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "WEZ": "Western European Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MESZ": "Central European Summer Time", "CDT": "Central Daylight Time", "AKST": "Alaska Standard Time"},
+ timezones: map[string]string{"CST": "Central Standard Time", "ARST": "Argentina Summer Time", "ACDT": "Australian Central Daylight Time", "BT": "Bhutan Time", "HNT": "Newfoundland Standard Time", "GYT": "Guyana Time", "ACWST": "Australian Central Western Standard Time", "MESZ": "Central European Summer Time", "WEZ": "Western European Standard Time", "WAST": "West Africa Summer Time", "WAT": "West Africa Standard Time", "HKT": "Hong Kong Standard Time", "HEEG": "East Greenland Summer Time", "WITA": "Central Indonesia Time", "SGT": "Singapore Standard Time", "IST": "India Standard Time", "NZDT": "New Zealand Daylight Time", "CLT": "Chile Standard Time", "SRT": "Suriname Time", "UYST": "Uruguay Summer Time", "WIT": "Eastern Indonesia Time", "∅∅∅": "Brasilia Summer Time", "OEZ": "Eastern European Standard Time", "TMST": "Turkmenistan Summer Time", "ACST": "Australian Central Standard Time", "GFT": "French Guiana Time", "CHADT": "Chatham Daylight Time", "VET": "Venezuela Time", "HNEG": "East Greenland Standard Time", "COST": "Colombia Summer Time", "WIB": "Western Indonesia Time", "BOT": "Bolivia Time", "MEZ": "Central European Standard Time", "JST": "Japan Standard Time", "PST": "Pacific Standard Time", "PDT": "Pacific Daylight Time", "WART": "Western Argentina Standard Time", "AKST": "Alaska Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "EST": "Eastern Standard Time", "EDT": "Eastern Daylight Time", "HECU": "Cuba Daylight Time", "CDT": "Central Daylight Time", "ECT": "Ecuador Time", "HAST": "Hawaii-Aleutian Standard Time", "HKST": "Hong Kong Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "HAT": "Newfoundland Daylight Time", "AKDT": "Alaska Daylight Time", "SAST": "South Africa Standard Time", "ACWDT": "Australian Central Western Daylight Time", "NZST": "New Zealand Standard Time", "JDT": "Japan Daylight Time", "HEOG": "West Greenland Summer Time", "LHST": "Lord Howe Standard Time", "AWDT": "Australian Western Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "HNCU": "Cuba Standard Time", "AWST": "Australian Western Standard Time", "CLST": "Chile Summer Time", "GMT": "Greenwich Mean Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "OESZ": "Eastern European Summer Time", "WESZ": "Western European Summer Time", "MYT": "Malaysia Time", "AEST": "Australian Eastern Standard Time", "EAT": "East Africa Time", "TMT": "Turkmenistan Standard Time", "AEDT": "Australian Eastern Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "CAT": "Central Africa Time", "UYT": "Uruguay Standard Time", "AST": "Atlantic Standard Time", "ADT": "Atlantic Daylight Time", "ART": "Argentina Standard Time", "COT": "Colombia Standard Time", "CHAST": "Chatham Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "WARST": "Western Argentina Summer Time", "HNOG": "West Greenland Standard Time", "ChST": "Chamorro Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_CC) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_CC) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_CC) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_CC) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_CH/en_CH.go b/en_CH/en_CH.go
index 48bbd6bb..6a86d11d 100644
--- a/en_CH/en_CH.go
+++ b/en_CH/en_CH.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"WITA": "Central Indonesia Time", "NZST": "New Zealand Standard Time", "BOT": "Bolivia Time", "HNEG": "East Greenland Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "JDT": "Japan Daylight Time", "MDT": "Macau Summer Time", "HEOG": "West Greenland Summer Time", "TMST": "Turkmenistan Summer Time", "HEEG": "East Greenland Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "HAT": "Newfoundland Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "JST": "Japan Standard Time", "HNCU": "Cuba Standard Time", "EST": "Eastern Standard Time", "AWST": "Australian Western Standard Time", "HKST": "Hong Kong Summer Time", "WIT": "Eastern Indonesia Time", "ACDT": "Australian Central Daylight Time", "OEZ": "Eastern European Standard Time", "UYT": "Uruguay Standard Time", "PST": "Pacific Standard Time", "NZDT": "New Zealand Daylight Time", "CLST": "Chile Summer Time", "GFT": "French Guiana Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "VET": "Venezuela Time", "HNOG": "West Greenland Standard Time", "AWDT": "Australian Western Daylight Time", "WARST": "Western Argentina Summer Time", "AST": "Atlantic Standard Time", "WESZ": "Western European Summer Time", "MEZ": "Central European Standard Time", "ChST": "Chamorro Standard Time", "MYT": "Malaysia Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "WART": "Western Argentina Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "MST": "Macau Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "WAT": "West Africa Standard Time", "UYST": "Uruguay Summer Time", "AKDT": "Alaska Daylight Time", "AEST": "Australian Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "WAST": "West Africa Summer Time", "GMT": "Greenwich Mean Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "ACWST": "Australian Central Western Standard Time", "MESZ": "Central European Summer Time", "LHST": "Lord Howe Standard Time", "TMT": "Turkmenistan Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SAST": "South Africa Standard Time", "CLT": "Chile Standard Time", "OESZ": "Eastern European Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "EDT": "Eastern Daylight Time", "SRT": "Suriname Time", "∅∅∅": "Amazon Summer Time", "CAT": "Central Africa Time", "EAT": "East Africa Time", "WIB": "Western Indonesia Time", "HKT": "Hong Kong Standard Time", "CHAST": "Chatham Standard Time", "CHADT": "Chatham Daylight Time", "ACST": "Australian Central Standard Time", "COST": "Colombia Summer Time", "HECU": "Cuba Daylight Time", "ADT": "Atlantic Daylight Time", "AKST": "Alaska Standard Time", "BT": "Bhutan Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "ACWDT": "Australian Central Western Daylight Time", "HNT": "Newfoundland Standard Time"},
+ timezones: map[string]string{"SGT": "Singapore Standard Time", "EDT": "Eastern Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "UYT": "Uruguay Standard Time", "GYT": "Guyana Time", "EAT": "East Africa Time", "HECU": "Cuba Daylight Time", "ECT": "Ecuador Time", "CLT": "Chile Standard Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "HEPMX": "Mexican Pacific Daylight Time", "HNCU": "Cuba Standard Time", "CST": "Central Standard Time", "AWST": "Australian Western Standard Time", "MYT": "Malaysia Time", "WART": "Western Argentina Standard Time", "BT": "Bhutan Time", "TMST": "Turkmenistan Summer Time", "GMT": "Greenwich Mean Time", "HNT": "Newfoundland Standard Time", "AEDT": "Australian Eastern Daylight Time", "WIB": "Western Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "VET": "Venezuela Time", "WAST": "West Africa Summer Time", "ACDT": "Australian Central Daylight Time", "LHST": "Lord Howe Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWST": "Australian Central Western Standard Time", "HEOG": "West Greenland Summer Time", "OEZ": "Eastern European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "COT": "Colombia Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNPMX": "Mexican Pacific Standard Time", "NZDT": "New Zealand Daylight Time", "WESZ": "Western European Summer Time", "ARST": "Argentina Summer Time", "ACST": "Australian Central Standard Time", "ChST": "Chamorro Standard Time", "LHDT": "Lord Howe Daylight Time", "PDT": "Pacific Daylight Time", "JDT": "Japan Daylight Time", "COST": "Colombia Summer Time", "BOT": "Bolivia Time", "TMT": "Turkmenistan Standard Time", "ART": "Argentina Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CDT": "Central Daylight Time", "AEST": "Australian Eastern Standard Time", "CHADT": "Chatham Daylight Time", "MEZ": "Central European Standard Time", "WARST": "Western Argentina Summer Time", "AST": "Atlantic Standard Time", "HNEG": "East Greenland Standard Time", "SAST": "South Africa Standard Time", "CHAST": "Chatham Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HKT": "Hong Kong Standard Time", "HKST": "Hong Kong Summer Time", "∅∅∅": "Acre Summer Time", "SRT": "Suriname Time", "IST": "India Standard Time", "WEZ": "Western European Standard Time", "AKDT": "Alaska Daylight Time", "WIT": "Eastern Indonesia Time", "CLST": "Chile Summer Time", "HNOG": "West Greenland Standard Time", "WITA": "Central Indonesia Time", "MDT": "Mountain Daylight Time", "AKST": "Alaska Standard Time", "ADT": "Atlantic Daylight Time", "MST": "Mountain Standard Time", "UYST": "Uruguay Summer Time", "AWDT": "Australian Western Daylight Time", "PST": "Pacific Standard Time", "CAT": "Central Africa Time", "NZST": "New Zealand Standard Time", "MESZ": "Central European Summer Time", "JST": "Japan Standard Time", "HAT": "Newfoundland Daylight Time", "EST": "Eastern Standard Time", "WAT": "West Africa Standard Time", "OESZ": "Eastern European Summer Time"},
}
}
diff --git a/en_CK/en_CK.go b/en_CK/en_CK.go
index 63557a23..d9331d2e 100644
--- a/en_CK/en_CK.go
+++ b/en_CK/en_CK.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "WIB": "Western Indonesia Time", "PST": "Pacific Standard Time", "MESZ": "Central European Summer Time", "WAST": "West Africa Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HECU": "Cuba Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HNEG": "East Greenland Standard Time", "ECT": "Ecuador Time", "COST": "Colombia Summer Time", "HNCU": "Cuba Standard Time", "MDT": "Macau Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "ART": "Argentina Standard Time", "JDT": "Japan Daylight Time", "WAT": "West Africa Standard Time", "OESZ": "Eastern European Summer Time", "COT": "Colombia Standard Time", "EST": "Eastern Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HEOG": "West Greenland Summer Time", "AWDT": "Australian Western Daylight Time", "MEZ": "Central European Standard Time", "LHDT": "Lord Howe Daylight Time", "CHAST": "Chatham Standard Time", "IST": "India Standard Time", "CAT": "Central Africa Time", "WART": "Western Argentina Standard Time", "SGT": "Singapore Standard Time", "PDT": "Pacific Daylight Time", "ARST": "Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "NZDT": "New Zealand Daylight Time", "GFT": "French Guiana Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "ACDT": "Australian Central Daylight Time", "WIT": "Eastern Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "AEST": "Australian Eastern Standard Time", "HKST": "Hong Kong Summer Time", "CHADT": "Chatham Daylight Time", "EAT": "East Africa Time", "EDT": "Eastern Daylight Time", "MYT": "Malaysia Time", "BT": "Bhutan Time", "HEEG": "East Greenland Summer Time", "UYST": "Uruguay Summer Time", "CST": "Central Standard Time", "GYT": "Guyana Time", "AWST": "Australian Western Standard Time", "HKT": "Hong Kong Standard Time", "BOT": "Bolivia Time", "ACST": "Australian Central Standard Time", "CDT": "Central Daylight Time", "WEZ": "Western European Standard Time", "HNOG": "West Greenland Standard Time", "SAST": "South Africa Standard Time", "ChST": "Chamorro Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "GMT": "Greenwich Mean Time", "MST": "Macau Standard Time", "ADT": "Atlantic Daylight Time", "SRT": "Suriname Time", "HNT": "Newfoundland Standard Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "WARST": "Western Argentina Summer Time", "AKST": "Alaska Standard Time", "WITA": "Central Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "∅∅∅": "Amazon Summer Time", "JST": "Japan Standard Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "ACWST": "Australian Central Western Standard Time", "OEZ": "Eastern European Standard Time", "UYT": "Uruguay Standard Time", "AST": "Atlantic Standard Time", "HAT": "Newfoundland Daylight Time"},
+ timezones: map[string]string{"MDT": "Macau Summer Time", "ARST": "Argentina Summer Time", "HNT": "Newfoundland Standard Time", "UYST": "Uruguay Summer Time", "HNPMX": "Mexican Pacific Standard Time", "JST": "Japan Standard Time", "WESZ": "Western European Summer Time", "EDT": "Eastern Daylight Time", "AKDT": "Alaska Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "WITA": "Central Indonesia Time", "SRT": "Suriname Time", "MEZ": "Central European Standard Time", "GMT": "Greenwich Mean Time", "TMT": "Turkmenistan Standard Time", "MST": "Macau Standard Time", "WAT": "West Africa Standard Time", "ACDT": "Australian Central Daylight Time", "WIB": "Western Indonesia Time", "AWDT": "Australian Western Daylight Time", "SGT": "Singapore Standard Time", "AKST": "Alaska Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CDT": "Central Daylight Time", "CHAST": "Chatham Standard Time", "ACWST": "Australian Central Western Standard Time", "NZST": "New Zealand Standard Time", "OEZ": "Eastern European Standard Time", "HKST": "Hong Kong Summer Time", "∅∅∅": "Brasilia Summer Time", "WEZ": "Western European Standard Time", "COT": "Colombia Standard Time", "ChST": "Chamorro Standard Time", "LHDT": "Lord Howe Daylight Time", "ECT": "Ecuador Time", "CAT": "Central Africa Time", "HNNOMX": "Northwest Mexico Standard Time", "HAT": "Newfoundland Daylight Time", "EST": "Eastern Standard Time", "LHST": "Lord Howe Standard Time", "CST": "Central Standard Time", "PST": "Pacific Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "MESZ": "Central European Summer Time", "HEOG": "West Greenland Summer Time", "ART": "Argentina Standard Time", "EAT": "East Africa Time", "HADT": "Hawaii-Aleutian Daylight Time", "VET": "Venezuela Time", "CLST": "Chile Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "IST": "India Standard Time", "MYT": "Malaysia Time", "AEST": "Australian Eastern Standard Time", "GFT": "French Guiana Time", "PDT": "Pacific Daylight Time", "OESZ": "Eastern European Summer Time", "WARST": "Western Argentina Summer Time", "CLT": "Chile Standard Time", "TMST": "Turkmenistan Summer Time", "UYT": "Uruguay Standard Time", "ACST": "Australian Central Standard Time", "BT": "Bhutan Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "AWST": "Australian Western Standard Time", "JDT": "Japan Daylight Time", "HNOG": "West Greenland Standard Time", "HKT": "Hong Kong Standard Time", "AEDT": "Australian Eastern Daylight Time", "SAST": "South Africa Standard Time", "GYT": "Guyana Time", "ADT": "Atlantic Daylight Time", "COST": "Colombia Summer Time", "CHADT": "Chatham Daylight Time", "BOT": "Bolivia Time", "WAST": "West Africa Summer Time", "WIT": "Eastern Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "AST": "Atlantic Standard Time", "HNEG": "East Greenland Standard Time", "NZDT": "New Zealand Daylight Time", "WART": "Western Argentina Standard Time", "HEEG": "East Greenland Summer Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_CK) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_CK) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_CK) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_CK) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_CM/en_CM.go b/en_CM/en_CM.go
index 6b0ddbb5..3e593c48 100644
--- a/en_CM/en_CM.go
+++ b/en_CM/en_CM.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"JST": "Japan Standard Time", "TMT": "Turkmenistan Standard Time", "BOT": "Bolivia Time", "HNCU": "Cuba Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "VET": "Venezuela Time", "ART": "Argentina Standard Time", "WESZ": "Western European Summer Time", "AEST": "Australian Eastern Standard Time", "MEZ": "Central European Standard Time", "ACDT": "Australian Central Daylight Time", "CAT": "Central Africa Time", "HENOMX": "Northwest Mexico Daylight Time", "SRT": "Suriname Time", "HEOG": "West Greenland Summer Time", "AKST": "Alaska Standard Time", "ACWDT": "Australian Central Western Daylight Time", "SAST": "South Africa Standard Time", "ChST": "Chamorro Standard Time", "ACST": "Australian Central Standard Time", "WARST": "Western Argentina Summer Time", "SGT": "Singapore Standard Time", "CDT": "Central Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "WAT": "West Africa Standard Time", "HNPMX": "Mexican Pacific Standard Time", "PST": "Pacific Standard Time", "WITA": "Central Indonesia Time", "CHAST": "Chatham Standard Time", "TMST": "Turkmenistan Summer Time", "OESZ": "Eastern European Summer Time", "UYST": "Uruguay Summer Time", "AKDT": "Alaska Daylight Time", "AWST": "Australian Western Standard Time", "NZST": "New Zealand Standard Time", "CLST": "Chile Summer Time", "AST": "Atlantic Standard Time", "MYT": "Malaysia Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "ACWST": "Australian Central Western Standard Time", "∅∅∅": "Amazon Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "MST": "Macau Standard Time", "GFT": "French Guiana Time", "MESZ": "Central European Summer Time", "HKT": "Hong Kong Standard Time", "JDT": "Japan Daylight Time", "CST": "Central Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HAT": "Newfoundland Daylight Time", "HNOG": "West Greenland Standard Time", "WEZ": "Western European Standard Time", "CLT": "Chile Standard Time", "GYT": "Guyana Time", "UYT": "Uruguay Standard Time", "WIT": "Eastern Indonesia Time", "CHADT": "Chatham Daylight Time", "HNEG": "East Greenland Standard Time", "WAST": "West Africa Summer Time", "COT": "Colombia Standard Time", "HECU": "Cuba Daylight Time", "HEEG": "East Greenland Summer Time", "OEZ": "Eastern European Standard Time", "MDT": "Macau Summer Time", "ARST": "Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "NZDT": "New Zealand Daylight Time", "EAT": "East Africa Time", "GMT": "Greenwich Mean Time", "EST": "Eastern Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ECT": "Ecuador Time", "WART": "Western Argentina Standard Time", "ADT": "Atlantic Daylight Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "COST": "Colombia Summer Time", "EDT": "Eastern Daylight Time", "HNT": "Newfoundland Standard Time", "PDT": "Pacific Daylight Time", "HKST": "Hong Kong Summer Time"},
+ timezones: map[string]string{"MESZ": "Central European Summer Time", "AST": "Atlantic Standard Time", "EAT": "East Africa Time", "CDT": "Central Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HECU": "Cuba Daylight Time", "VET": "Venezuela Time", "HNEG": "East Greenland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNCU": "Cuba Standard Time", "IST": "India Standard Time", "MEZ": "Central European Standard Time", "TMT": "Turkmenistan Standard Time", "HAT": "Newfoundland Daylight Time", "AEDT": "Australian Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "WEZ": "Western European Standard Time", "ChST": "Chamorro Standard Time", "CST": "Central Standard Time", "AWST": "Australian Western Standard Time", "WART": "Western Argentina Standard Time", "NZST": "New Zealand Standard Time", "WESZ": "Western European Summer Time", "GMT": "Greenwich Mean Time", "CLST": "Chile Summer Time", "HEOG": "West Greenland Summer Time", "ACDT": "Australian Central Daylight Time", "BT": "Bhutan Time", "PST": "Pacific Standard Time", "∅∅∅": "Acre Summer Time", "WITA": "Central Indonesia Time", "HEPMX": "Mexican Pacific Daylight Time", "CHADT": "Chatham Daylight Time", "PDT": "Pacific Daylight Time", "HKST": "Hong Kong Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "ACST": "Australian Central Standard Time", "ACWST": "Australian Central Western Standard Time", "JST": "Japan Standard Time", "ARST": "Argentina Summer Time", "MST": "Mountain Standard Time", "GFT": "French Guiana Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CLT": "Chile Standard Time", "ART": "Argentina Standard Time", "CHAST": "Chatham Standard Time", "NZDT": "New Zealand Daylight Time", "JDT": "Japan Daylight Time", "WIT": "Eastern Indonesia Time", "SGT": "Singapore Standard Time", "HNOG": "West Greenland Standard Time", "AKDT": "Alaska Daylight Time", "SAST": "South Africa Standard Time", "WIB": "Western Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "AKST": "Alaska Standard Time", "AWDT": "Australian Western Daylight Time", "COST": "Colombia Summer Time", "HNT": "Newfoundland Standard Time", "MDT": "Mountain Daylight Time", "COT": "Colombia Standard Time", "AEST": "Australian Eastern Standard Time", "EST": "Eastern Standard Time", "HKT": "Hong Kong Standard Time", "WAST": "West Africa Summer Time", "CAT": "Central Africa Time", "OEZ": "Eastern European Standard Time", "MYT": "Malaysia Time", "WARST": "Western Argentina Summer Time", "ADT": "Atlantic Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "ECT": "Ecuador Time", "TMST": "Turkmenistan Summer Time", "EDT": "Eastern Daylight Time", "UYST": "Uruguay Summer Time", "OESZ": "Eastern European Summer Time", "UYT": "Uruguay Standard Time", "LHDT": "Lord Howe Daylight Time", "SRT": "Suriname Time", "GYT": "Guyana Time", "BOT": "Bolivia Time", "WAT": "West Africa Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HEEG": "East Greenland Summer Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_CM) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_CM) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_CM) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_CM) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_CX/en_CX.go b/en_CX/en_CX.go
index 5638e6e6..ac9d21de 100644
--- a/en_CX/en_CX.go
+++ b/en_CX/en_CX.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"SRT": "Suriname Time", "ART": "Argentina Standard Time", "CHAST": "Chatham Standard Time", "HECU": "Cuba Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "ADT": "Atlantic Daylight Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "CHADT": "Chatham Daylight Time", "JST": "Japan Standard Time", "ECT": "Ecuador Time", "∅∅∅": "Peru Summer Time", "PDT": "Pacific Daylight Time", "MEZ": "Central European Standard Time", "LHDT": "Lord Howe Daylight Time", "AKDT": "Alaska Daylight Time", "VET": "Venezuela Time", "HEOG": "West Greenland Summer Time", "GFT": "French Guiana Time", "MESZ": "Central European Summer Time", "IST": "India Standard Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "OEZ": "Eastern European Standard Time", "WART": "Western Argentina Standard Time", "AKST": "Alaska Standard Time", "UYT": "Uruguay Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AWST": "Australian Western Standard Time", "ACST": "Australian Central Standard Time", "PST": "Pacific Standard Time", "AEDT": "Australian Eastern Daylight Time", "JDT": "Japan Daylight Time", "CLT": "Chile Standard Time", "HEEG": "East Greenland Summer Time", "CAT": "Central Africa Time", "HNNOMX": "Northwest Mexico Standard Time", "MDT": "Macau Summer Time", "WIT": "Eastern Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "GMT": "Greenwich Mean Time", "AEST": "Australian Eastern Standard Time", "CLST": "Chile Summer Time", "HNEG": "East Greenland Standard Time", "SAST": "South Africa Standard Time", "EST": "Eastern Standard Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HNT": "Newfoundland Standard Time", "COT": "Colombia Standard Time", "SGT": "Singapore Standard Time", "EDT": "Eastern Daylight Time", "GYT": "Guyana Time", "HAT": "Newfoundland Daylight Time", "AWDT": "Australian Western Daylight Time", "ChST": "Chamorro Standard Time", "ACDT": "Australian Central Daylight Time", "WAST": "West Africa Summer Time", "ACWST": "Australian Central Western Standard Time", "WITA": "Central Indonesia Time", "TMST": "Turkmenistan Summer Time", "EAT": "East Africa Time", "AST": "Atlantic Standard Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "HKST": "Hong Kong Summer Time", "NZDT": "New Zealand Daylight Time", "HNCU": "Cuba Standard Time", "ARST": "Argentina Summer Time", "WESZ": "Western European Summer Time", "HKT": "Hong Kong Standard Time", "NZST": "New Zealand Standard Time", "HNOG": "West Greenland Standard Time", "WEZ": "Western European Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "BOT": "Bolivia Time", "MST": "Macau Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "OESZ": "Eastern European Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time"},
+ timezones: map[string]string{"PDT": "Pacific Daylight Time", "MYT": "Malaysia Time", "WAT": "West Africa Standard Time", "AKST": "Alaska Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HKT": "Hong Kong Standard Time", "SAST": "South Africa Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "MEZ": "Central European Standard Time", "CLT": "Chile Standard Time", "WAST": "West Africa Summer Time", "COT": "Colombia Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HECU": "Cuba Daylight Time", "ACWST": "Australian Central Western Standard Time", "JDT": "Japan Daylight Time", "OESZ": "Eastern European Summer Time", "NZST": "New Zealand Standard Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "LHDT": "Lord Howe Daylight Time", "EAT": "East Africa Time", "NZDT": "New Zealand Daylight Time", "OEZ": "Eastern European Standard Time", "HKST": "Hong Kong Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "ChST": "Chamorro Standard Time", "CHAST": "Chatham Standard Time", "CAT": "Central Africa Time", "IST": "India Standard Time", "JST": "Japan Standard Time", "WART": "Western Argentina Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "AWST": "Australian Western Standard Time", "PST": "Pacific Standard Time", "WEZ": "Western European Standard Time", "EDT": "Eastern Daylight Time", "HEEG": "East Greenland Summer Time", "SRT": "Suriname Time", "ECT": "Ecuador Time", "MESZ": "Central European Summer Time", "ADT": "Atlantic Daylight Time", "UYST": "Uruguay Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "CLST": "Chile Summer Time", "ACST": "Australian Central Standard Time", "COST": "Colombia Summer Time", "WITA": "Central Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "WARST": "Western Argentina Summer Time", "TMST": "Turkmenistan Summer Time", "GYT": "Guyana Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "TMT": "Turkmenistan Standard Time", "HAT": "Newfoundland Daylight Time", "LHST": "Lord Howe Standard Time", "HEOG": "West Greenland Summer Time", "WESZ": "Western European Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HNT": "Newfoundland Standard Time", "VET": "Venezuela Time", "GMT": "Greenwich Mean Time", "AWDT": "Australian Western Daylight Time", "BOT": "Bolivia Time", "EST": "Eastern Standard Time", "UYT": "Uruguay Standard Time", "HNEG": "East Greenland Standard Time", "∅∅∅": "Azores Summer Time", "HNCU": "Cuba Standard Time", "CHADT": "Chatham Daylight Time", "SGT": "Singapore Standard Time", "HNOG": "West Greenland Standard Time", "MDT": "Macau Summer Time", "ACDT": "Australian Central Daylight Time", "BT": "Bhutan Time", "HNPMX": "Mexican Pacific Standard Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "AST": "Atlantic Standard Time", "MST": "Macau Standard Time", "GFT": "French Guiana Time", "AKDT": "Alaska Daylight Time", "AEST": "Australian Eastern Standard Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_CX) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_CX) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
@@ -405,15 +405,25 @@ func (en *en_CX) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_CX) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_CX) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_CX) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_CY/en_CY.go b/en_CY/en_CY.go
index d9af1b7c..451d1b9d 100644
--- a/en_CY/en_CY.go
+++ b/en_CY/en_CY.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"ACWST": "Australian Central Western Standard Time", "HNT": "Newfoundland Standard Time", "HEEG": "East Greenland Summer Time", "EAT": "East Africa Time", "GMT": "Greenwich Mean Time", "HADT": "Hawaii-Aleutian Daylight Time", "WESZ": "Western European Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "IST": "India Standard Time", "WAT": "West Africa Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "UYST": "Uruguay Summer Time", "ARST": "Argentina Summer Time", "AEST": "Australian Eastern Standard Time", "CAT": "Central Africa Time", "HNCU": "Cuba Standard Time", "AST": "Atlantic Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "OEZ": "Eastern European Standard Time", "HEOG": "West Greenland Summer Time", "HKST": "Hong Kong Summer Time", "GYT": "Guyana Time", "WITA": "Central Indonesia Time", "JDT": "Japan Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "EDT": "Eastern Daylight Time", "AKST": "Alaska Standard Time", "HKT": "Hong Kong Standard Time", "WART": "Western Argentina Standard Time", "BT": "Bhutan Time", "HAT": "Newfoundland Daylight Time", "CLST": "Chile Summer Time", "WARST": "Western Argentina Summer Time", "HECU": "Cuba Daylight Time", "MDT": "Macau Summer Time", "PST": "Pacific Standard Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "NZST": "New Zealand Standard Time", "BOT": "Bolivia Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "CST": "Central Standard Time", "AKDT": "Alaska Daylight Time", "VET": "Venezuela Time", "ACWDT": "Australian Central Western Daylight Time", "AWST": "Australian Western Standard Time", "SAST": "South Africa Standard Time", "OESZ": "Eastern European Summer Time", "MST": "Macau Standard Time", "UYT": "Uruguay Standard Time", "TMST": "Turkmenistan Summer Time", "AEDT": "Australian Eastern Daylight Time", "AWDT": "Australian Western Daylight Time", "CHAST": "Chatham Standard Time", "TMT": "Turkmenistan Standard Time", "∅∅∅": "Peru Summer Time", "ADT": "Atlantic Daylight Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "LHDT": "Lord Howe Daylight Time", "CDT": "Central Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "MESZ": "Central European Summer Time", "JST": "Japan Standard Time", "GFT": "French Guiana Time", "WAST": "West Africa Summer Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "MEZ": "Central European Standard Time", "HNEG": "East Greenland Standard Time", "COT": "Colombia Standard Time", "MYT": "Malaysia Time", "HNOG": "West Greenland Standard Time", "LHST": "Lord Howe Standard Time", "CLT": "Chile Standard Time", "ChST": "Chamorro Standard Time", "ACDT": "Australian Central Daylight Time", "ECT": "Ecuador Time", "SRT": "Suriname Time", "ART": "Argentina Standard Time", "ACST": "Australian Central Standard Time", "HNPMX": "Mexican Pacific Standard Time", "NZDT": "New Zealand Daylight Time", "CHADT": "Chatham Daylight Time"},
+ timezones: map[string]string{"WITA": "Central Indonesia Time", "HNCU": "Cuba Standard Time", "WIT": "Eastern Indonesia Time", "PST": "Pacific Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "WEZ": "Western European Standard Time", "MDT": "Mountain Daylight Time", "ChST": "Chamorro Standard Time", "AWDT": "Australian Western Daylight Time", "COST": "Colombia Summer Time", "AEST": "Australian Eastern Standard Time", "LHDT": "Lord Howe Daylight Time", "EAT": "East Africa Time", "WIB": "Western Indonesia Time", "CDT": "Central Daylight Time", "CAT": "Central Africa Time", "CLST": "Chile Summer Time", "AKST": "Alaska Standard Time", "LHST": "Lord Howe Standard Time", "COT": "Colombia Standard Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "GFT": "French Guiana Time", "HADT": "Hawaii-Aleutian Daylight Time", "HKT": "Hong Kong Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "UYT": "Uruguay Standard Time", "NZDT": "New Zealand Daylight Time", "GMT": "Greenwich Mean Time", "GYT": "Guyana Time", "BOT": "Bolivia Time", "OEZ": "Eastern European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "SAST": "South Africa Standard Time", "ECT": "Ecuador Time", "WAST": "West Africa Summer Time", "HKST": "Hong Kong Summer Time", "ACST": "Australian Central Standard Time", "HNEG": "East Greenland Standard Time", "HECU": "Cuba Daylight Time", "PDT": "Pacific Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "ARST": "Argentina Summer Time", "AKDT": "Alaska Daylight Time", "VET": "Venezuela Time", "JDT": "Japan Daylight Time", "TMT": "Turkmenistan Standard Time", "EST": "Eastern Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HEOG": "West Greenland Summer Time", "OESZ": "Eastern European Summer Time", "WESZ": "Western European Summer Time", "MYT": "Malaysia Time", "EDT": "Eastern Daylight Time", "ACDT": "Australian Central Daylight Time", "ART": "Argentina Standard Time", "UYST": "Uruguay Summer Time", "SRT": "Suriname Time", "∅∅∅": "Azores Summer Time", "ACWST": "Australian Central Western Standard Time", "JST": "Japan Standard Time", "AST": "Atlantic Standard Time", "ADT": "Atlantic Daylight Time", "BT": "Bhutan Time", "HEEG": "East Greenland Summer Time", "MST": "Mountain Standard Time", "CHADT": "Chatham Daylight Time", "WARST": "Western Argentina Summer Time", "CLT": "Chile Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "SGT": "Singapore Standard Time", "IST": "India Standard Time", "NZST": "New Zealand Standard Time", "WAT": "West Africa Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AWST": "Australian Western Standard Time", "CHAST": "Chatham Standard Time", "MEZ": "Central European Standard Time", "WART": "Western Argentina Standard Time", "TMST": "Turkmenistan Summer Time", "AEDT": "Australian Eastern Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CST": "Central Standard Time", "MESZ": "Central European Summer Time", "HNOG": "West Greenland Standard Time"},
}
}
diff --git a/en_DE/en_DE.go b/en_DE/en_DE.go
index dbdc89f2..bb3e06cb 100644
--- a/en_DE/en_DE.go
+++ b/en_DE/en_DE.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HNEG": "East Greenland Standard Time", "HEEG": "East Greenland Summer Time", "VET": "Venezuela Time", "PDT": "Pacific Daylight Time", "AWDT": "Australian Western Daylight Time", "∅∅∅": "Amazon Summer Time", "CLST": "Chile Summer Time", "OESZ": "Eastern European Summer Time", "COT": "Colombia Standard Time", "HECU": "Cuba Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HEOG": "West Greenland Summer Time", "PST": "Pacific Standard Time", "JDT": "Japan Daylight Time", "CDT": "Central Daylight Time", "MYT": "Malaysia Time", "NZDT": "New Zealand Daylight Time", "GMT": "Greenwich Mean Time", "AKDT": "Alaska Daylight Time", "GYT": "Guyana Time", "MST": "Mountain Standard Time", "HNT": "Newfoundland Standard Time", "NZST": "New Zealand Standard Time", "BOT": "Bolivia Time", "ACST": "Australian Central Standard Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "AEDT": "Australian Eastern Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "WART": "Western Argentina Standard Time", "COST": "Colombia Summer Time", "HNCU": "Cuba Standard Time", "WIT": "Eastern Indonesia Time", "ACWST": "Australian Central Western Standard Time", "WESZ": "Western European Summer Time", "IST": "India Standard Time", "EAT": "East Africa Time", "AKST": "Alaska Standard Time", "MDT": "Mountain Daylight Time", "TMST": "Turkmenistan Summer Time", "WAST": "West Africa Summer Time", "CAT": "Central Africa Time", "HNPMX": "Mexican Pacific Standard Time", "AEST": "Australian Eastern Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "ChST": "Chamorro Standard Time", "HNOG": "West Greenland Standard Time", "CHADT": "Chatham Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "ADT": "Atlantic Daylight Time", "AST": "Atlantic Standard Time", "SRT": "Suriname Time", "MESZ": "Central European Summer Time", "SAST": "South Africa Standard Time", "EST": "Eastern Standard Time", "EDT": "Eastern Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "AWST": "Australian Western Standard Time", "CHAST": "Chatham Standard Time", "WAT": "West Africa Standard Time", "UYST": "Uruguay Summer Time", "HAT": "Newfoundland Daylight Time", "SGT": "Singapore Standard Time", "CST": "Central Standard Time", "OEZ": "Eastern European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "UYT": "Uruguay Standard Time", "ART": "Argentina Standard Time", "WITA": "Central Indonesia Time", "LHST": "Lord Howe Standard Time", "GFT": "French Guiana Time", "TMT": "Turkmenistan Standard Time", "JST": "Japan Standard Time", "CLT": "Chile Standard Time", "HKT": "Hong Kong Standard Time", "HKST": "Hong Kong Summer Time", "MEZ": "Central European Standard Time", "WARST": "Western Argentina Summer Time", "ARST": "Argentina Summer Time", "WEZ": "Western European Standard Time", "ACDT": "Australian Central Daylight Time", "ECT": "Ecuador Time", "HEPMX": "Mexican Pacific Daylight Time"},
+ timezones: map[string]string{"HAT": "Newfoundland Daylight Time", "HNCU": "Cuba Standard Time", "CHAST": "Chatham Standard Time", "MYT": "Malaysia Time", "HEOG": "West Greenland Summer Time", "UYT": "Uruguay Standard Time", "WIT": "Eastern Indonesia Time", "JDT": "Japan Daylight Time", "LHDT": "Lord Howe Daylight Time", "CAT": "Central Africa Time", "ADT": "Atlantic Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "SAST": "South Africa Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "JST": "Japan Standard Time", "MEZ": "Central European Standard Time", "MDT": "Macau Summer Time", "∅∅∅": "Acre Summer Time", "BOT": "Bolivia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ACWST": "Australian Central Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "WARST": "Western Argentina Summer Time", "CLST": "Chile Summer Time", "ARST": "Argentina Summer Time", "GFT": "French Guiana Time", "HECU": "Cuba Daylight Time", "WITA": "Central Indonesia Time", "AKST": "Alaska Standard Time", "SRT": "Suriname Time", "LHST": "Lord Howe Standard Time", "GYT": "Guyana Time", "ACDT": "Australian Central Daylight Time", "HNEG": "East Greenland Standard Time", "AEDT": "Australian Eastern Daylight Time", "EAT": "East Africa Time", "AWST": "Australian Western Standard Time", "ChST": "Chamorro Standard Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "EST": "Eastern Standard Time", "EDT": "Eastern Daylight Time", "AEST": "Australian Eastern Standard Time", "WESZ": "Western European Summer Time", "OESZ": "Eastern European Summer Time", "HKST": "Hong Kong Summer Time", "BT": "Bhutan Time", "ECT": "Ecuador Time", "GMT": "Greenwich Mean Time", "WAST": "West Africa Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "MESZ": "Central European Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AWDT": "Australian Western Daylight Time", "PST": "Pacific Standard Time", "HEEG": "East Greenland Summer Time", "CLT": "Chile Standard Time", "AST": "Atlantic Standard Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "COT": "Colombia Standard Time", "OEZ": "Eastern European Standard Time", "SGT": "Singapore Standard Time", "WART": "Western Argentina Standard Time", "HNOG": "West Greenland Standard Time", "TMST": "Turkmenistan Summer Time", "HNT": "Newfoundland Standard Time", "CST": "Central Standard Time", "CHADT": "Chatham Daylight Time", "HKT": "Hong Kong Standard Time", "COST": "Colombia Summer Time", "AKDT": "Alaska Daylight Time", "UYST": "Uruguay Summer Time", "WIB": "Western Indonesia Time", "CDT": "Central Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "VET": "Venezuela Time", "MST": "Macau Standard Time", "ART": "Argentina Standard Time", "ACST": "Australian Central Standard Time"},
}
}
diff --git a/en_DG/en_DG.go b/en_DG/en_DG.go
index b2e75c3b..68ad4ae1 100644
--- a/en_DG/en_DG.go
+++ b/en_DG/en_DG.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"MYT": "Malaysia Time", "ARST": "Argentina Summer Time", "WESZ": "Western European Summer Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "CAT": "Central Africa Time", "GMT": "Greenwich Mean Time", "SGT": "Singapore Standard Time", "HNT": "Newfoundland Standard Time", "AEDT": "Australian Eastern Daylight Time", "AWST": "Australian Western Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "WITA": "Central Indonesia Time", "COST": "Colombia Summer Time", "AKST": "Alaska Standard Time", "ART": "Argentina Standard Time", "SAST": "South Africa Standard Time", "ACDT": "Australian Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "PST": "Pacific Standard Time", "MESZ": "Central European Summer Time", "IST": "India Standard Time", "UYST": "Uruguay Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWST": "Australian Central Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HAT": "Newfoundland Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "TMT": "Turkmenistan Standard Time", "BOT": "Bolivia Time", "OESZ": "Eastern European Summer Time", "ChST": "Chamorro Standard Time", "WART": "Western Argentina Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HEOG": "West Greenland Summer Time", "AEST": "Australian Eastern Standard Time", "CHADT": "Chatham Daylight Time", "CLT": "Chile Standard Time", "BT": "Bhutan Time", "HNOG": "West Greenland Standard Time", "WEZ": "Western European Standard Time", "HECU": "Cuba Daylight Time", "MDT": "Macau Summer Time", "AST": "Atlantic Standard Time", "WIB": "Western Indonesia Time", "VET": "Venezuela Time", "ECT": "Ecuador Time", "CHAST": "Chatham Standard Time", "TMST": "Turkmenistan Summer Time", "EAT": "East Africa Time", "HNPMX": "Mexican Pacific Standard Time", "MST": "Macau Standard Time", "AKDT": "Alaska Daylight Time", "PDT": "Pacific Daylight Time", "NZDT": "New Zealand Daylight Time", "OEZ": "Eastern European Standard Time", "WARST": "Western Argentina Summer Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "ADT": "Atlantic Daylight Time", "HKST": "Hong Kong Summer Time", "AWDT": "Australian Western Daylight Time", "HNCU": "Cuba Standard Time", "LHDT": "Lord Howe Daylight Time", "CLST": "Chile Summer Time", "ACST": "Australian Central Standard Time", "EST": "Eastern Standard Time", "GYT": "Guyana Time", "UYT": "Uruguay Standard Time", "HKT": "Hong Kong Standard Time", "JDT": "Japan Daylight Time", "EDT": "Eastern Daylight Time", "WIT": "Eastern Indonesia Time", "SRT": "Suriname Time", "NZST": "New Zealand Standard Time", "GFT": "French Guiana Time", "JST": "Japan Standard Time", "HEEG": "East Greenland Summer Time", "∅∅∅": "Azores Summer Time", "COT": "Colombia Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "MEZ": "Central European Standard Time", "LHST": "Lord Howe Standard Time", "HNEG": "East Greenland Standard Time", "HNNOMX": "Northwest Mexico Standard Time"},
+ timezones: map[string]string{"MDT": "Mountain Daylight Time", "GFT": "French Guiana Time", "GYT": "Guyana Time", "WARST": "Western Argentina Summer Time", "CLST": "Chile Summer Time", "AST": "Atlantic Standard Time", "ACDT": "Australian Central Daylight Time", "COT": "Colombia Standard Time", "HNT": "Newfoundland Standard Time", "HNCU": "Cuba Standard Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "PST": "Pacific Standard Time", "MYT": "Malaysia Time", "WART": "Western Argentina Standard Time", "∅∅∅": "Acre Summer Time", "AEDT": "Australian Eastern Daylight Time", "MST": "Mountain Standard Time", "GMT": "Greenwich Mean Time", "HEPMX": "Mexican Pacific Daylight Time", "HECU": "Cuba Daylight Time", "OEZ": "Eastern European Standard Time", "TMT": "Turkmenistan Standard Time", "ARST": "Argentina Summer Time", "EST": "Eastern Standard Time", "AKDT": "Alaska Daylight Time", "LHST": "Lord Howe Standard Time", "ACWST": "Australian Central Western Standard Time", "WITA": "Central Indonesia Time", "ChST": "Chamorro Standard Time", "AWDT": "Australian Western Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "UYT": "Uruguay Standard Time", "EAT": "East Africa Time", "JST": "Japan Standard Time", "OESZ": "Eastern European Summer Time", "WESZ": "Western European Summer Time", "HKT": "Hong Kong Standard Time", "UYST": "Uruguay Summer Time", "PDT": "Pacific Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "TMST": "Turkmenistan Summer Time", "BT": "Bhutan Time", "HNEG": "East Greenland Standard Time", "SAST": "South Africa Standard Time", "CST": "Central Standard Time", "CHADT": "Chatham Daylight Time", "CLT": "Chile Standard Time", "COST": "Colombia Summer Time", "HAT": "Newfoundland Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "CAT": "Central Africa Time", "MESZ": "Central European Summer Time", "ART": "Argentina Standard Time", "ACST": "Australian Central Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "AWST": "Australian Western Standard Time", "BOT": "Bolivia Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "IST": "India Standard Time", "WAST": "West Africa Summer Time", "LHDT": "Lord Howe Daylight Time", "CDT": "Central Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "NZDT": "New Zealand Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "SGT": "Singapore Standard Time", "NZST": "New Zealand Standard Time", "MEZ": "Central European Standard Time", "JDT": "Japan Daylight Time", "ADT": "Atlantic Daylight Time", "HKST": "Hong Kong Summer Time", "HEEG": "East Greenland Summer Time", "AEST": "Australian Eastern Standard Time", "SRT": "Suriname Time", "ECT": "Ecuador Time", "EDT": "Eastern Daylight Time", "AKST": "Alaska Standard Time", "CHAST": "Chatham Standard Time", "VET": "Venezuela Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "WEZ": "Western European Standard Time"},
}
}
diff --git a/en_DK/en_DK.go b/en_DK/en_DK.go
index 3a2a4d97..69b7bcd2 100644
--- a/en_DK/en_DK.go
+++ b/en_DK/en_DK.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HEOG": "West Greenland Summer Time", "ACWST": "Australian Central Western Standard Time", "CLT": "Chile Standard Time", "TMT": "Turkmenistan Standard Time", "HNCU": "Cuba Standard Time", "EDT": "Eastern Daylight Time", "MDT": "Macau Summer Time", "AST": "Atlantic Standard Time", "GYT": "Guyana Time", "ART": "Argentina Standard Time", "NZST": "New Zealand Standard Time", "ChST": "Chamorro Standard Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "EAT": "East Africa Time", "ADT": "Atlantic Daylight Time", "GFT": "French Guiana Time", "EST": "Eastern Standard Time", "HAT": "Newfoundland Daylight Time", "PDT": "Pacific Daylight Time", "AEST": "Australian Eastern Standard Time", "HEEG": "East Greenland Summer Time", "ECT": "Ecuador Time", "WARST": "Western Argentina Summer Time", "HNPMX": "Mexican Pacific Standard Time", "MYT": "Malaysia Time", "ACWDT": "Australian Central Western Daylight Time", "MEZ": "Central European Standard Time", "SGT": "Singapore Standard Time", "AKST": "Alaska Standard Time", "CHAST": "Chatham Standard Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "CAT": "Central Africa Time", "WEZ": "Western European Standard Time", "BT": "Bhutan Time", "SRT": "Suriname Time", "MESZ": "Central European Summer Time", "∅∅∅": "Amazon Summer Time", "WART": "Western Argentina Standard Time", "COT": "Colombia Standard Time", "AKDT": "Alaska Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "ARST": "Argentina Summer Time", "HNOG": "West Greenland Standard Time", "AEDT": "Australian Eastern Daylight Time", "TMST": "Turkmenistan Summer Time", "WAST": "West Africa Summer Time", "COST": "Colombia Summer Time", "CST": "Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "AWST": "Australian Western Standard Time", "ACST": "Australian Central Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AWDT": "Australian Western Daylight Time", "SAST": "South Africa Standard Time", "WAT": "West Africa Standard Time", "HECU": "Cuba Daylight Time", "WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time", "GMT": "Greenwich Mean Time", "WIB": "Western Indonesia Time", "PST": "Pacific Standard Time", "CHADT": "Chatham Daylight Time", "JST": "Japan Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "MST": "Macau Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "UYT": "Uruguay Standard Time", "CLST": "Chile Summer Time", "HNEG": "East Greenland Standard Time", "ACDT": "Australian Central Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "BOT": "Bolivia Time", "CDT": "Central Daylight Time", "UYST": "Uruguay Summer Time", "VET": "Venezuela Time", "HNT": "Newfoundland Standard Time", "HKT": "Hong Kong Standard Time", "JDT": "Japan Daylight Time", "HKST": "Hong Kong Summer Time", "WITA": "Central Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time"},
+ timezones: map[string]string{"WITA": "Central Indonesia Time", "HEPMX": "Mexican Pacific Daylight Time", "CDT": "Central Daylight Time", "OEZ": "Eastern European Standard Time", "HKST": "Hong Kong Summer Time", "COT": "Colombia Standard Time", "AEDT": "Australian Eastern Daylight Time", "EAT": "East Africa Time", "HNCU": "Cuba Standard Time", "CST": "Central Standard Time", "IST": "India Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "COST": "Colombia Summer Time", "SRT": "Suriname Time", "AKST": "Alaska Standard Time", "WIB": "Western Indonesia Time", "JDT": "Japan Daylight Time", "EDT": "Eastern Daylight Time", "ACST": "Australian Central Standard Time", "MST": "Mountain Standard Time", "LHST": "Lord Howe Standard Time", "GYT": "Guyana Time", "HADT": "Hawaii-Aleutian Daylight Time", "NZST": "New Zealand Standard Time", "VET": "Venezuela Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "WIT": "Eastern Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "HNEG": "East Greenland Standard Time", "HNPMX": "Mexican Pacific Standard Time", "UYST": "Uruguay Summer Time", "AWDT": "Australian Western Daylight Time", "WART": "Western Argentina Standard Time", "AST": "Atlantic Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MESZ": "Central European Summer Time", "HNOG": "West Greenland Standard Time", "TMST": "Turkmenistan Summer Time", "ART": "Argentina Standard Time", "HKT": "Hong Kong Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "ACWST": "Australian Central Western Standard Time", "CHADT": "Chatham Daylight Time", "PST": "Pacific Standard Time", "WEZ": "Western European Standard Time", "WESZ": "Western European Summer Time", "AKDT": "Alaska Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "CLST": "Chile Summer Time", "HEOG": "West Greenland Summer Time", "EST": "Eastern Standard Time", "GFT": "French Guiana Time", "ADT": "Atlantic Daylight Time", "BT": "Bhutan Time", "HNT": "Newfoundland Standard Time", "GMT": "Greenwich Mean Time", "HAT": "Newfoundland Daylight Time", "CLT": "Chile Standard Time", "UYT": "Uruguay Standard Time", "AWST": "Australian Western Standard Time", "ECT": "Ecuador Time", "NZDT": "New Zealand Daylight Time", "JST": "Japan Standard Time", "MEZ": "Central European Standard Time", "TMT": "Turkmenistan Standard Time", "AEST": "Australian Eastern Standard Time", "HEEG": "East Greenland Summer Time", "SGT": "Singapore Standard Time", "BOT": "Bolivia Time", "PDT": "Pacific Daylight Time", "CAT": "Central Africa Time", "LHDT": "Lord Howe Daylight Time", "MYT": "Malaysia Time", "WAST": "West Africa Summer Time", "ACDT": "Australian Central Daylight Time", "MDT": "Mountain Daylight Time", "∅∅∅": "Azores Summer Time", "HECU": "Cuba Daylight Time", "CHAST": "Chatham Standard Time", "WARST": "Western Argentina Summer Time", "OESZ": "Eastern European Summer Time", "ARST": "Argentina Summer Time", "WAT": "West Africa Standard Time", "ChST": "Chamorro Standard Time"},
}
}
diff --git a/en_DM/en_DM.go b/en_DM/en_DM.go
index b2961171..0ae43ca4 100644
--- a/en_DM/en_DM.go
+++ b/en_DM/en_DM.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HNNOMX": "Northwest Mexico Standard Time", "EST": "Eastern Standard Time", "ADT": "Atlantic Daylight Time", "VET": "Venezuela Time", "MESZ": "Central European Summer Time", "SAST": "South Africa Standard Time", "ECT": "Ecuador Time", "∅∅∅": "Amazon Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "AWST": "Australian Western Standard Time", "AWDT": "Australian Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZST": "New Zealand Standard Time", "CLST": "Chile Summer Time", "HECU": "Cuba Daylight Time", "ACWST": "Australian Central Western Standard Time", "HNT": "Newfoundland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ChST": "Chamorro Standard Time", "CAT": "Central Africa Time", "WEZ": "Western European Standard Time", "IST": "India Standard Time", "JST": "Japan Standard Time", "ACST": "Australian Central Standard Time", "COST": "Colombia Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "WESZ": "Western European Summer Time", "PDT": "Pacific Daylight Time", "GFT": "French Guiana Time", "HNCU": "Cuba Standard Time", "CHADT": "Chatham Daylight Time", "WAST": "West Africa Summer Time", "OESZ": "Eastern European Summer Time", "CST": "Central Standard Time", "UYT": "Uruguay Standard Time", "AEST": "Australian Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "LHDT": "Lord Howe Daylight Time", "LHST": "Lord Howe Standard Time", "CLT": "Chile Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "GMT": "Greenwich Mean Time", "TMST": "Turkmenistan Summer Time", "WARST": "Western Argentina Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AKST": "Alaska Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "CHAST": "Chatham Standard Time", "JDT": "Japan Daylight Time", "HNEG": "East Greenland Standard Time", "ACDT": "Australian Central Daylight Time", "OEZ": "Eastern European Standard Time", "COT": "Colombia Standard Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "SRT": "Suriname Time", "HKT": "Hong Kong Standard Time", "WITA": "Central Indonesia Time", "MDT": "Mountain Daylight Time", "ART": "Argentina Standard Time", "NZDT": "New Zealand Daylight Time", "WAT": "West Africa Standard Time", "WART": "Western Argentina Standard Time", "AKDT": "Alaska Daylight Time", "HEOG": "West Greenland Summer Time", "BOT": "Bolivia Time", "TMT": "Turkmenistan Standard Time", "SGT": "Singapore Standard Time", "CDT": "Central Daylight Time", "GYT": "Guyana Time", "MST": "Mountain Standard Time", "ARST": "Argentina Summer Time", "HNOG": "West Greenland Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HKST": "Hong Kong Summer Time", "MEZ": "Central European Standard Time", "EDT": "Eastern Daylight Time", "HEEG": "East Greenland Summer Time", "EAT": "East Africa Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "BT": "Bhutan Time", "HAT": "Newfoundland Daylight Time", "PST": "Pacific Standard Time", "AST": "Atlantic Standard Time"},
+ timezones: map[string]string{"LHDT": "Lord Howe Daylight Time", "ADT": "Atlantic Daylight Time", "WESZ": "Western European Summer Time", "ACDT": "Australian Central Daylight Time", "JDT": "Japan Daylight Time", "OESZ": "Eastern European Summer Time", "WEZ": "Western European Standard Time", "WART": "Western Argentina Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HAT": "Newfoundland Daylight Time", "CST": "Central Standard Time", "NZST": "New Zealand Standard Time", "VET": "Venezuela Time", "GMT": "Greenwich Mean Time", "MYT": "Malaysia Time", "HNCU": "Cuba Standard Time", "AEDT": "Australian Eastern Daylight Time", "IST": "India Standard Time", "MST": "Macau Standard Time", "EDT": "Eastern Daylight Time", "SAST": "South Africa Standard Time", "SRT": "Suriname Time", "HECU": "Cuba Daylight Time", "CHADT": "Chatham Daylight Time", "PST": "Pacific Standard Time", "COT": "Colombia Standard Time", "WAT": "West Africa Standard Time", "ACST": "Australian Central Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "AWST": "Australian Western Standard Time", "AWDT": "Australian Western Daylight Time", "BOT": "Bolivia Time", "CLT": "Chile Standard Time", "AST": "Atlantic Standard Time", "CDT": "Central Daylight Time", "PDT": "Pacific Daylight Time", "NZDT": "New Zealand Daylight Time", "HKT": "Hong Kong Standard Time", "AEST": "Australian Eastern Standard Time", "EAT": "East Africa Time", "CAT": "Central Africa Time", "JST": "Japan Standard Time", "WARST": "Western Argentina Summer Time", "AKST": "Alaska Standard Time", "ART": "Argentina Standard Time", "WAST": "West Africa Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MESZ": "Central European Summer Time", "EST": "Eastern Standard Time", "BT": "Bhutan Time", "HNT": "Newfoundland Standard Time", "HNEG": "East Greenland Standard Time", "LHST": "Lord Howe Standard Time", "GYT": "Guyana Time", "ECT": "Ecuador Time", "ACWST": "Australian Central Western Standard Time", "COST": "Colombia Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "WIT": "Eastern Indonesia Time", "HEOG": "West Greenland Summer Time", "HNPMX": "Mexican Pacific Standard Time", "SGT": "Singapore Standard Time", "CLST": "Chile Summer Time", "WITA": "Central Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "ACWDT": "Australian Central Western Daylight Time", "ARST": "Argentina Summer Time", "HEEG": "East Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "HKST": "Hong Kong Summer Time", "∅∅∅": "Azores Summer Time", "WIB": "Western Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "MEZ": "Central European Standard Time", "OEZ": "Eastern European Standard Time", "AKDT": "Alaska Daylight Time", "UYT": "Uruguay Standard Time", "UYST": "Uruguay Summer Time", "ChST": "Chamorro Standard Time", "CHAST": "Chatham Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HNOG": "West Greenland Standard Time", "MDT": "Macau Summer Time", "GFT": "French Guiana Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_DM) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_DM) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_DM) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_DM) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_ER/en_ER.go b/en_ER/en_ER.go
index 05e4f226..84a4c15f 100644
--- a/en_ER/en_ER.go
+++ b/en_ER/en_ER.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"WEZ": "Western European Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "GMT": "Greenwich Mean Time", "PDT": "Pacific Daylight Time", "AWDT": "Australian Western Daylight Time", "CLST": "Chile Summer Time", "TMT": "Turkmenistan Standard Time", "OESZ": "Eastern European Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "CDT": "Central Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "CHADT": "Chatham Daylight Time", "ChST": "Chamorro Standard Time", "ADT": "Atlantic Daylight Time", "HAT": "Newfoundland Daylight Time", "BOT": "Bolivia Time", "AST": "Atlantic Standard Time", "ARST": "Argentina Summer Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "MST": "Mountain Standard Time", "HEOG": "West Greenland Summer Time", "WESZ": "Western European Summer Time", "UYT": "Uruguay Standard Time", "CAT": "Central Africa Time", "UYST": "Uruguay Summer Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "ACDT": "Australian Central Daylight Time", "EAT": "East Africa Time", "MYT": "Malaysia Time", "WIT": "Eastern Indonesia Time", "HKT": "Hong Kong Standard Time", "NZST": "New Zealand Standard Time", "HNT": "Newfoundland Standard Time", "ACST": "Australian Central Standard Time", "CST": "Central Standard Time", "HKST": "Hong Kong Summer Time", "NZDT": "New Zealand Daylight Time", "∅∅∅": "Amazon Summer Time", "HECU": "Cuba Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "GYT": "Guyana Time", "AKST": "Alaska Standard Time", "CLT": "Chile Standard Time", "TMST": "Turkmenistan Summer Time", "WARST": "Western Argentina Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MESZ": "Central European Summer Time", "IST": "India Standard Time", "WAT": "West Africa Standard Time", "ECT": "Ecuador Time", "BT": "Bhutan Time", "SRT": "Suriname Time", "ACWST": "Australian Central Western Standard Time", "EDT": "Eastern Daylight Time", "JST": "Japan Standard Time", "HNEG": "East Greenland Standard Time", "EST": "Eastern Standard Time", "LHST": "Lord Howe Standard Time", "CHAST": "Chatham Standard Time", "VET": "Venezuela Time", "ART": "Argentina Standard Time", "WITA": "Central Indonesia Time", "HNOG": "West Greenland Standard Time", "WAST": "West Africa Summer Time", "AWST": "Australian Western Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "AKDT": "Alaska Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "PST": "Pacific Standard Time", "AEDT": "Australian Eastern Daylight Time", "MEZ": "Central European Standard Time", "LHDT": "Lord Howe Daylight Time", "SAST": "South Africa Standard Time", "JDT": "Japan Daylight Time", "MDT": "Mountain Daylight Time", "WIB": "Western Indonesia Time", "AEST": "Australian Eastern Standard Time", "OEZ": "Eastern European Standard Time", "WART": "Western Argentina Standard Time", "COST": "Colombia Summer Time"},
+ timezones: map[string]string{"WESZ": "Western European Summer Time", "GMT": "Greenwich Mean Time", "AEST": "Australian Eastern Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "NZST": "New Zealand Standard Time", "MEZ": "Central European Standard Time", "JDT": "Japan Daylight Time", "SAST": "South Africa Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "BOT": "Bolivia Time", "ADT": "Atlantic Daylight Time", "WARST": "Western Argentina Summer Time", "AWST": "Australian Western Standard Time", "AWDT": "Australian Western Daylight Time", "NZDT": "New Zealand Daylight Time", "MESZ": "Central European Summer Time", "ARST": "Argentina Summer Time", "ACST": "Australian Central Standard Time", "UYT": "Uruguay Standard Time", "UYST": "Uruguay Summer Time", "HNOG": "West Greenland Standard Time", "BT": "Bhutan Time", "AKST": "Alaska Standard Time", "AEDT": "Australian Eastern Daylight Time", "CDT": "Central Daylight Time", "WEZ": "Western European Standard Time", "ART": "Argentina Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SRT": "Suriname Time", "EAT": "East Africa Time", "SGT": "Singapore Standard Time", "VET": "Venezuela Time", "JST": "Japan Standard Time", "CLST": "Chile Summer Time", "HKT": "Hong Kong Standard Time", "WITA": "Central Indonesia Time", "ChST": "Chamorro Standard Time", "TMST": "Turkmenistan Summer Time", "ACDT": "Australian Central Daylight Time", "HAT": "Newfoundland Daylight Time", "WIB": "Western Indonesia Time", "CAT": "Central Africa Time", "ACWST": "Australian Central Western Standard Time", "OESZ": "Eastern European Summer Time", "HNT": "Newfoundland Standard Time", "GYT": "Guyana Time", "MST": "Macau Standard Time", "CLT": "Chile Standard Time", "HECU": "Cuba Daylight Time", "WIT": "Eastern Indonesia Time", "PST": "Pacific Standard Time", "WAT": "West Africa Standard Time", "EST": "Eastern Standard Time", "COT": "Colombia Standard Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "HEOG": "West Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "EDT": "Eastern Daylight Time", "AKDT": "Alaska Daylight Time", "ECT": "Ecuador Time", "HKST": "Hong Kong Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HNEG": "East Greenland Standard Time", "CHADT": "Chatham Daylight Time", "PDT": "Pacific Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "MYT": "Malaysia Time", "MDT": "Macau Summer Time", "COST": "Colombia Summer Time", "∅∅∅": "Acre Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HNCU": "Cuba Standard Time", "CHAST": "Chatham Standard Time", "AST": "Atlantic Standard Time", "OEZ": "Eastern European Standard Time", "WART": "Western Argentina Standard Time", "WAST": "West Africa Summer Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "CST": "Central Standard Time", "IST": "India Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_ER) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_ER) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_ER) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_ER) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_FI/en_FI.go b/en_FI/en_FI.go
index 16cebc9d..5245f364 100644
--- a/en_FI/en_FI.go
+++ b/en_FI/en_FI.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"WARST": "Western Argentina Summer Time", "GMT": "Greenwich Mean Time", "GYT": "Guyana Time", "HADT": "Hawaii-Aleutian Daylight Time", "BT": "Bhutan Time", "AEST": "Australian Eastern Standard Time", "WITA": "Central Indonesia Time", "WAST": "West Africa Summer Time", "WIT": "Eastern Indonesia Time", "ACWST": "Australian Central Western Standard Time", "ECT": "Ecuador Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "∅∅∅": "Amazon Summer Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "HNCU": "Cuba Standard Time", "WESZ": "Western European Summer Time", "ACWDT": "Australian Central Western Daylight Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "AST": "Atlantic Standard Time", "CDT": "Central Daylight Time", "AWDT": "Australian Western Daylight Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "HECU": "Cuba Daylight Time", "MYT": "Malaysia Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "CLST": "Chile Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AKST": "Alaska Standard Time", "CST": "Central Standard Time", "ADT": "Atlantic Daylight Time", "WIB": "Western Indonesia Time", "HAT": "Newfoundland Daylight Time", "SAST": "South Africa Standard Time", "JST": "Japan Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "SRT": "Suriname Time", "HEOG": "West Greenland Summer Time", "IST": "India Standard Time", "OESZ": "Eastern European Summer Time", "EST": "Eastern Standard Time", "EDT": "Eastern Daylight Time", "HNT": "Newfoundland Standard Time", "GFT": "French Guiana Time", "EAT": "East Africa Time", "OEZ": "Eastern European Standard Time", "MESZ": "Central European Summer Time", "HNEG": "East Greenland Standard Time", "UYST": "Uruguay Summer Time", "AEDT": "Australian Eastern Daylight Time", "HKT": "Hong Kong Standard Time", "CHADT": "Chatham Daylight Time", "UYT": "Uruguay Standard Time", "CHAST": "Chatham Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "JDT": "Japan Daylight Time", "ChST": "Chamorro Standard Time", "COST": "Colombia Summer Time", "AKDT": "Alaska Daylight Time", "HNOG": "West Greenland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZST": "New Zealand Standard Time", "CLT": "Chile Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "PDT": "Pacific Daylight Time", "MEZ": "Central European Standard Time", "ACST": "Australian Central Standard Time", "VET": "Venezuela Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "HEEG": "East Greenland Summer Time", "WAT": "West Africa Standard Time", "PST": "Pacific Standard Time", "WEZ": "Western European Standard Time", "AWST": "Australian Western Standard Time", "HKST": "Hong Kong Summer Time", "WART": "Western Argentina Standard Time"},
+ timezones: map[string]string{"MEZ": "Central European Standard Time", "HKST": "Hong Kong Summer Time", "BOT": "Bolivia Time", "CLT": "Chile Standard Time", "SGT": "Singapore Standard Time", "WIT": "Eastern Indonesia Time", "AWDT": "Australian Western Daylight Time", "WARST": "Western Argentina Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "GFT": "French Guiana Time", "UYST": "Uruguay Summer Time", "CDT": "Central Daylight Time", "OESZ": "Eastern European Summer Time", "MYT": "Malaysia Time", "EST": "Eastern Standard Time", "AEST": "Australian Eastern Standard Time", "AST": "Atlantic Standard Time", "CLST": "Chile Summer Time", "MST": "Macau Standard Time", "ECT": "Ecuador Time", "CHADT": "Chatham Daylight Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "ADT": "Atlantic Daylight Time", "COST": "Colombia Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "∅∅∅": "Azores Summer Time", "ACWDT": "Australian Central Western Daylight Time", "VET": "Venezuela Time", "HEOG": "West Greenland Summer Time", "WAST": "West Africa Summer Time", "HKT": "Hong Kong Standard Time", "HAT": "Newfoundland Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "WEZ": "Western European Standard Time", "TMST": "Turkmenistan Summer Time", "MDT": "Macau Summer Time", "ART": "Argentina Standard Time", "AKST": "Alaska Standard Time", "HNCU": "Cuba Standard Time", "CST": "Central Standard Time", "PST": "Pacific Standard Time", "PDT": "Pacific Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "WART": "Western Argentina Standard Time", "EDT": "Eastern Daylight Time", "BT": "Bhutan Time", "WIB": "Western Indonesia Time", "ChST": "Chamorro Standard Time", "AEDT": "Australian Eastern Daylight Time", "IST": "India Standard Time", "JST": "Japan Standard Time", "WESZ": "Western European Summer Time", "HNEG": "East Greenland Standard Time", "EAT": "East Africa Time", "HECU": "Cuba Daylight Time", "AWST": "Australian Western Standard Time", "ACWST": "Australian Central Western Standard Time", "HNOG": "West Greenland Standard Time", "OEZ": "Eastern European Standard Time", "TMT": "Turkmenistan Standard Time", "ARST": "Argentina Summer Time", "HNPMX": "Mexican Pacific Standard Time", "WITA": "Central Indonesia Time", "COT": "Colombia Standard Time", "CAT": "Central Africa Time", "GMT": "Greenwich Mean Time", "ACST": "Australian Central Standard Time", "ACDT": "Australian Central Daylight Time", "HNT": "Newfoundland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHDT": "Lord Howe Daylight Time", "CHAST": "Chatham Standard Time", "AKDT": "Alaska Daylight Time", "SAST": "South Africa Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "JDT": "Japan Daylight Time", "HEEG": "East Greenland Summer Time", "GYT": "Guyana Time", "SRT": "Suriname Time", "MESZ": "Central European Summer Time", "WAT": "West Africa Standard Time", "UYT": "Uruguay Standard Time", "HEPMX": "Mexican Pacific Daylight Time"},
}
}
diff --git a/en_FJ/en_FJ.go b/en_FJ/en_FJ.go
index de314a9a..c91c8725 100644
--- a/en_FJ/en_FJ.go
+++ b/en_FJ/en_FJ.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"AKDT": "Alaska Daylight Time", "ChST": "Chamorro Standard Time", "TMST": "Turkmenistan Summer Time", "WAT": "West Africa Standard Time", "MYT": "Malaysia Time", "HKST": "Hong Kong Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "MST": "Macau Standard Time", "UYT": "Uruguay Standard Time", "CDT": "Central Daylight Time", "WESZ": "Western European Summer Time", "AEST": "Australian Eastern Standard Time", "WARST": "Western Argentina Summer Time", "COT": "Colombia Standard Time", "ADT": "Atlantic Daylight Time", "AWST": "Australian Western Standard Time", "IST": "India Standard Time", "EAT": "East Africa Time", "WART": "Western Argentina Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "WEZ": "Western European Standard Time", "ARST": "Argentina Summer Time", "CHAST": "Chatham Standard Time", "JST": "Japan Standard Time", "NZST": "New Zealand Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "WIT": "Eastern Indonesia Time", "HNT": "Newfoundland Standard Time", "ART": "Argentina Standard Time", "HEOG": "West Greenland Summer Time", "HECU": "Cuba Daylight Time", "CST": "Central Standard Time", "PST": "Pacific Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "BOT": "Bolivia Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "UYST": "Uruguay Summer Time", "VET": "Venezuela Time", "AEDT": "Australian Eastern Daylight Time", "COST": "Colombia Summer Time", "GYT": "Guyana Time", "WITA": "Central Indonesia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "∅∅∅": "Amazon Summer Time", "CAT": "Central Africa Time", "HNOG": "West Greenland Standard Time", "HKT": "Hong Kong Standard Time", "MESZ": "Central European Summer Time", "CLST": "Chile Summer Time", "OESZ": "Eastern European Summer Time", "ECT": "Ecuador Time", "MDT": "Macau Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "SRT": "Suriname Time", "CLT": "Chile Standard Time", "GFT": "French Guiana Time", "BT": "Bhutan Time", "CHADT": "Chatham Daylight Time", "HEEG": "East Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "OEZ": "Eastern European Standard Time", "SAST": "South Africa Standard Time", "WAST": "West Africa Summer Time", "EST": "Eastern Standard Time", "EDT": "Eastern Daylight Time", "PDT": "Pacific Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "ACDT": "Australian Central Daylight Time", "AST": "Atlantic Standard Time", "WIB": "Western Indonesia Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "NZDT": "New Zealand Daylight Time", "JDT": "Japan Daylight Time", "HNEG": "East Greenland Standard Time", "GMT": "Greenwich Mean Time", "AKST": "Alaska Standard Time", "ACWST": "Australian Central Western Standard Time", "HAT": "Newfoundland Daylight Time", "MEZ": "Central European Standard Time", "ACST": "Australian Central Standard Time"},
+ timezones: map[string]string{"IST": "India Standard Time", "AST": "Atlantic Standard Time", "OEZ": "Eastern European Standard Time", "HEOG": "West Greenland Summer Time", "ARST": "Argentina Summer Time", "EDT": "Eastern Daylight Time", "GFT": "French Guiana Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CST": "Central Standard Time", "PDT": "Pacific Daylight Time", "TMT": "Turkmenistan Standard Time", "ChST": "Chamorro Standard Time", "COT": "Colombia Standard Time", "HNEG": "East Greenland Standard Time", "AKDT": "Alaska Daylight Time", "EST": "Eastern Standard Time", "GMT": "Greenwich Mean Time", "CLST": "Chile Summer Time", "HNOG": "West Greenland Standard Time", "WAST": "West Africa Summer Time", "BT": "Bhutan Time", "AWDT": "Australian Western Daylight Time", "HEEG": "East Greenland Summer Time", "AEDT": "Australian Eastern Daylight Time", "PST": "Pacific Standard Time", "CAT": "Central Africa Time", "JDT": "Japan Daylight Time", "ART": "Argentina Standard Time", "HKT": "Hong Kong Standard Time", "HNCU": "Cuba Standard Time", "NZST": "New Zealand Standard Time", "ADT": "Atlantic Daylight Time", "OESZ": "Eastern European Summer Time", "MYT": "Malaysia Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "WAT": "West Africa Standard Time", "ACST": "Australian Central Standard Time", "SRT": "Suriname Time", "MEZ": "Central European Standard Time", "HNT": "Newfoundland Standard Time", "WIB": "Western Indonesia Time", "BOT": "Bolivia Time", "WESZ": "Western European Summer Time", "TMST": "Turkmenistan Summer Time", "WITA": "Central Indonesia Time", "SAST": "South Africa Standard Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "EAT": "East Africa Time", "CDT": "Central Daylight Time", "ACWST": "Australian Central Western Standard Time", "NZDT": "New Zealand Daylight Time", "JST": "Japan Standard Time", "CLT": "Chile Standard Time", "UYST": "Uruguay Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "CHADT": "Chatham Daylight Time", "ECT": "Ecuador Time", "HENOMX": "Northwest Mexico Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "WIT": "Eastern Indonesia Time", "SGT": "Singapore Standard Time", "WEZ": "Western European Standard Time", "HKST": "Hong Kong Summer Time", "ACDT": "Australian Central Daylight Time", "HAT": "Newfoundland Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "MST": "Macau Standard Time", "COST": "Colombia Summer Time", "AEST": "Australian Eastern Standard Time", "UYT": "Uruguay Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHAST": "Chatham Standard Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "AWST": "Australian Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "∅∅∅": "Amazon Summer Time", "MESZ": "Central European Summer Time", "VET": "Venezuela Time", "HNNOMX": "Northwest Mexico Standard Time", "AKST": "Alaska Standard Time", "HECU": "Cuba Daylight Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_FJ) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_FJ) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_FJ) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_FJ) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_FK/en_FK.go b/en_FK/en_FK.go
index 23b049b4..152a01b8 100644
--- a/en_FK/en_FK.go
+++ b/en_FK/en_FK.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"SGT": "Singapore Standard Time", "UYT": "Uruguay Standard Time", "WESZ": "Western European Summer Time", "NZST": "New Zealand Standard Time", "CHADT": "Chatham Daylight Time", "JST": "Japan Standard Time", "BOT": "Bolivia Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "VET": "Venezuela Time", "ARST": "Argentina Summer Time", "MESZ": "Central European Summer Time", "HEEG": "East Greenland Summer Time", "CAT": "Central Africa Time", "OEZ": "Eastern European Standard Time", "COT": "Colombia Standard Time", "AEST": "Australian Eastern Standard Time", "AWST": "Australian Western Standard Time", "OESZ": "Eastern European Summer Time", "EDT": "Eastern Daylight Time", "AWDT": "Australian Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "WARST": "Western Argentina Summer Time", "GMT": "Greenwich Mean Time", "HECU": "Cuba Daylight Time", "MST": "Macau Standard Time", "WEZ": "Western European Standard Time", "WITA": "Central Indonesia Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "PST": "Pacific Standard Time", "HKST": "Hong Kong Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "AST": "Atlantic Standard Time", "HNT": "Newfoundland Standard Time", "IST": "India Standard Time", "ChST": "Chamorro Standard Time", "WIB": "Western Indonesia Time", "ART": "Argentina Standard Time", "HAT": "Newfoundland Daylight Time", "HKT": "Hong Kong Standard Time", "LHST": "Lord Howe Standard Time", "TMT": "Turkmenistan Standard Time", "ACST": "Australian Central Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "BT": "Bhutan Time", "SAST": "South Africa Standard Time", "CLST": "Chile Summer Time", "∅∅∅": "Peru Summer Time", "UYST": "Uruguay Summer Time", "CDT": "Central Daylight Time", "HEOG": "West Greenland Summer Time", "ACWDT": "Australian Central Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHAST": "Chatham Standard Time", "HNEG": "East Greenland Standard Time", "ACDT": "Australian Central Daylight Time", "EST": "Eastern Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HNOG": "West Greenland Standard Time", "MEZ": "Central European Standard Time", "WAST": "West Africa Summer Time", "COST": "Colombia Summer Time", "ADT": "Atlantic Daylight Time", "GYT": "Guyana Time", "ECT": "Ecuador Time", "AKST": "Alaska Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWST": "Australian Central Western Standard Time", "JDT": "Japan Daylight Time", "GFT": "French Guiana Time", "EAT": "East Africa Time", "WAT": "West Africa Standard Time", "WART": "Western Argentina Standard Time", "MYT": "Malaysia Time", "WIT": "Eastern Indonesia Time", "TMST": "Turkmenistan Summer Time", "MDT": "Macau Summer Time", "PDT": "Pacific Daylight Time", "AEDT": "Australian Eastern Daylight Time", "CLT": "Chile Standard Time", "AKDT": "Alaska Daylight Time", "CST": "Central Standard Time", "SRT": "Suriname Time"},
+ timezones: map[string]string{"JST": "Japan Standard Time", "TMT": "Turkmenistan Standard Time", "UYST": "Uruguay Summer Time", "CHAST": "Chatham Standard Time", "BOT": "Bolivia Time", "IST": "India Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNT": "Newfoundland Standard Time", "HEEG": "East Greenland Summer Time", "PDT": "Pacific Daylight Time", "OEZ": "Eastern European Standard Time", "COT": "Colombia Standard Time", "EST": "Eastern Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "BT": "Bhutan Time", "GFT": "French Guiana Time", "EAT": "East Africa Time", "HEOG": "West Greenland Summer Time", "WEZ": "Western European Standard Time", "HKT": "Hong Kong Standard Time", "ACDT": "Australian Central Daylight Time", "WITA": "Central Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "AST": "Atlantic Standard Time", "OESZ": "Eastern European Summer Time", "HKST": "Hong Kong Summer Time", "AWDT": "Australian Western Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWST": "Australian Central Western Standard Time", "∅∅∅": "Azores Summer Time", "TMST": "Turkmenistan Summer Time", "ChST": "Chamorro Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ADT": "Atlantic Daylight Time", "EDT": "Eastern Daylight Time", "AKDT": "Alaska Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHST": "Lord Howe Standard Time", "WIB": "Western Indonesia Time", "NZDT": "New Zealand Daylight Time", "MST": "Macau Standard Time", "COST": "Colombia Summer Time", "UYT": "Uruguay Standard Time", "ECT": "Ecuador Time", "CLT": "Chile Standard Time", "MYT": "Malaysia Time", "HNEG": "East Greenland Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "SGT": "Singapore Standard Time", "JDT": "Japan Daylight Time", "ACST": "Australian Central Standard Time", "HECU": "Cuba Daylight Time", "CST": "Central Standard Time", "WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time", "WART": "Western Argentina Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AWST": "Australian Western Standard Time", "CAT": "Central Africa Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNOG": "West Greenland Standard Time", "HAT": "Newfoundland Daylight Time", "LHDT": "Lord Howe Daylight Time", "SRT": "Suriname Time", "CHADT": "Chatham Daylight Time", "ART": "Argentina Standard Time", "WAST": "West Africa Summer Time", "AEST": "Australian Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "MEZ": "Central European Standard Time", "MESZ": "Central European Summer Time", "GMT": "Greenwich Mean Time", "AKST": "Alaska Standard Time", "SAST": "South Africa Standard Time", "VET": "Venezuela Time", "CLST": "Chile Summer Time", "NZST": "New Zealand Standard Time", "WARST": "Western Argentina Summer Time", "MDT": "Macau Summer Time", "ARST": "Argentina Summer Time", "WAT": "West Africa Standard Time", "HNCU": "Cuba Standard Time", "CDT": "Central Daylight Time", "PST": "Pacific Standard Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_FK) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_FK) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod100 := math.Mod(n, 100)
nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
diff --git a/en_FM/en_FM.go b/en_FM/en_FM.go
index 4e85ebb4..f29792d6 100644
--- a/en_FM/en_FM.go
+++ b/en_FM/en_FM.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"AEST": "Australian Eastern Standard Time", "AWDT": "Australian Western Daylight Time", "JST": "Japan Standard Time", "HNEG": "East Greenland Standard Time", "UYST": "Uruguay Summer Time", "ACWST": "Australian Central Western Standard Time", "WITA": "Central Indonesia Time", "ChST": "Chamorro Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "MYT": "Malaysia Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "ART": "Argentina Standard Time", "AWST": "Australian Western Standard Time", "ACST": "Australian Central Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AKST": "Alaska Standard Time", "NZST": "New Zealand Standard Time", "ECT": "Ecuador Time", "EAT": "East Africa Time", "GMT": "Greenwich Mean Time", "AKDT": "Alaska Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "HEOG": "West Greenland Summer Time", "SAST": "South Africa Standard Time", "HEEG": "East Greenland Summer Time", "BOT": "Bolivia Time", "OESZ": "Eastern European Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "SRT": "Suriname Time", "HKT": "Hong Kong Standard Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "IST": "India Standard Time", "EDT": "Eastern Daylight Time", "ADT": "Atlantic Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CLT": "Chile Standard Time", "WAST": "West Africa Summer Time", "OEZ": "Eastern European Standard Time", "AST": "Atlantic Standard Time", "ACDT": "Australian Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "COST": "Colombia Summer Time", "VET": "Venezuela Time", "BT": "Bhutan Time", "HKST": "Hong Kong Summer Time", "JDT": "Japan Daylight Time", "TMST": "Turkmenistan Summer Time", "HNCU": "Cuba Standard Time", "SGT": "Singapore Standard Time", "UYT": "Uruguay Standard Time", "ARST": "Argentina Summer Time", "HNOG": "West Greenland Standard Time", "PST": "Pacific Standard Time", "MEZ": "Central European Standard Time", "WARST": "Western Argentina Summer Time", "WIB": "Western Indonesia Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "∅∅∅": "Amazon Summer Time", "PDT": "Pacific Daylight Time", "WAT": "West Africa Standard Time", "TMT": "Turkmenistan Standard Time", "WART": "Western Argentina Standard Time", "MST": "Mountain Standard Time", "MDT": "Mountain Daylight Time", "CHADT": "Chatham Daylight Time", "CLST": "Chile Summer Time", "GFT": "French Guiana Time", "MESZ": "Central European Summer Time", "WEZ": "Western European Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "GYT": "Guyana Time", "HNT": "Newfoundland Standard Time", "AEDT": "Australian Eastern Daylight Time", "HECU": "Cuba Daylight Time", "COT": "Colombia Standard Time", "EST": "Eastern Standard Time", "WIT": "Eastern Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "HAT": "Newfoundland Daylight Time", "WESZ": "Western European Summer Time", "CAT": "Central Africa Time"},
+ timezones: map[string]string{"AST": "Atlantic Standard Time", "WAT": "West Africa Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "JDT": "Japan Daylight Time", "ADT": "Atlantic Daylight Time", "ART": "Argentina Standard Time", "BT": "Bhutan Time", "AKDT": "Alaska Daylight Time", "ChST": "Chamorro Standard Time", "CHADT": "Chatham Daylight Time", "IST": "India Standard Time", "CLST": "Chile Summer Time", "HNPMX": "Mexican Pacific Standard Time", "ACWDT": "Australian Central Western Daylight Time", "WAST": "West Africa Summer Time", "EDT": "Eastern Daylight Time", "MYT": "Malaysia Time", "TMT": "Turkmenistan Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AKST": "Alaska Standard Time", "CAT": "Central Africa Time", "CLT": "Chile Standard Time", "ACDT": "Australian Central Daylight Time", "HNT": "Newfoundland Standard Time", "UYST": "Uruguay Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "WIB": "Western Indonesia Time", "MEZ": "Central European Standard Time", "WESZ": "Western European Summer Time", "WIT": "Eastern Indonesia Time", "VET": "Venezuela Time", "ARST": "Argentina Summer Time", "AEST": "Australian Eastern Standard Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "OEZ": "Eastern European Standard Time", "MST": "Macau Standard Time", "EST": "Eastern Standard Time", "LHDT": "Lord Howe Daylight Time", "EAT": "East Africa Time", "HNCU": "Cuba Standard Time", "CST": "Central Standard Time", "CHAST": "Chatham Standard Time", "SGT": "Singapore Standard Time", "∅∅∅": "Amazon Summer Time", "ACWST": "Australian Central Western Standard Time", "NZST": "New Zealand Standard Time", "JST": "Japan Standard Time", "OESZ": "Eastern European Summer Time", "AEDT": "Australian Eastern Daylight Time", "AWST": "Australian Western Standard Time", "PDT": "Pacific Daylight Time", "MESZ": "Central European Summer Time", "TMST": "Turkmenistan Summer Time", "HAT": "Newfoundland Daylight Time", "AWDT": "Australian Western Daylight Time", "ACST": "Australian Central Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CDT": "Central Daylight Time", "ECT": "Ecuador Time", "GMT": "Greenwich Mean Time", "COST": "Colombia Summer Time", "SAST": "South Africa Standard Time", "SRT": "Suriname Time", "HECU": "Cuba Daylight Time", "BOT": "Bolivia Time", "HADT": "Hawaii-Aleutian Daylight Time", "COT": "Colombia Standard Time", "PST": "Pacific Standard Time", "MDT": "Macau Summer Time", "HKST": "Hong Kong Summer Time", "HNEG": "East Greenland Standard Time", "HEEG": "East Greenland Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "NZDT": "New Zealand Daylight Time", "WEZ": "Western European Standard Time", "HKT": "Hong Kong Standard Time", "GFT": "French Guiana Time", "WITA": "Central Indonesia Time", "UYT": "Uruguay Standard Time", "LHST": "Lord Howe Standard Time", "GYT": "Guyana Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_FM) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_FM) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_FM) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_FM) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_GB/en_GB.go b/en_GB/en_GB.go
index eccd49b6..1c25bb44 100644
--- a/en_GB/en_GB.go
+++ b/en_GB/en_GB.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "HNOG": "West Greenland Standard Time", "ChST": "Chamorro Standard Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "MDT": "Macau Summer Time", "WAST": "West Africa Summer Time", "AST": "Atlantic Standard Time", "CHAST": "Chatham Standard Time", "JDT": "Japan Daylight Time", "CST": "Central Standard Time", "PDT": "Pacific Daylight Time", "AEDT": "Australian Eastern Daylight Time", "IST": "India Standard Time", "AWDT": "Australian Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHADT": "Chatham Daylight Time", "HNEG": "East Greenland Standard Time", "ACST": "Australian Central Standard Time", "HNPMX": "Mexican Pacific Standard Time", "ACWST": "Australian Central Western Standard Time", "WAT": "West Africa Standard Time", "WARST": "Western Argentina Summer Time", "SGT": "Singapore Standard Time", "NZDT": "New Zealand Daylight Time", "MST": "Macau Standard Time", "CDT": "Central Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "WEZ": "Western European Standard Time", "VET": "Venezuela Time", "HAT": "Newfoundland Daylight Time", "AWST": "Australian Western Standard Time", "AEST": "Australian Eastern Standard Time", "WART": "Western Argentina Standard Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "MYT": "Malaysia Time", "CLT": "Chile Standard Time", "ART": "Argentina Standard Time", "PST": "Pacific Standard Time", "HKT": "Hong Kong Standard Time", "WITA": "Central Indonesia Time", "EAT": "East Africa Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "UYST": "Uruguay Summer Time", "MESZ": "Central European Summer Time", "HNT": "Newfoundland Standard Time", "NZST": "New Zealand Standard Time", "ECT": "Ecuador Time", "GMT": "Greenwich Mean Time", "UYT": "Uruguay Standard Time", "SRT": "Suriname Time", "∅∅∅": "Peru Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "CAT": "Central Africa Time", "ADT": "Atlantic Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HEOG": "West Greenland Summer Time", "WIB": "Western Indonesia Time", "WESZ": "Western European Summer Time", "JST": "Japan Standard Time", "HEEG": "East Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "WIT": "Eastern Indonesia Time", "ACDT": "Australian Central Daylight Time", "HKST": "Hong Kong Summer Time", "LHDT": "Lord Howe Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CLST": "Chile Summer Time", "BOT": "Bolivia Time", "TMST": "Turkmenistan Summer Time", "HNCU": "Cuba Standard Time", "ACWDT": "Australian Central Western Daylight Time", "EDT": "Eastern Daylight Time", "BT": "Bhutan Time", "ARST": "Argentina Summer Time", "LHST": "Lord Howe Standard Time", "GFT": "French Guiana Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "HECU": "Cuba Daylight Time", "MEZ": "Central European Standard Time", "SAST": "South Africa Standard Time"},
+ timezones: map[string]string{"WART": "Western Argentina Standard Time", "HKT": "Hong Kong Standard Time", "UYST": "Uruguay Summer Time", "SAST": "South Africa Standard Time", "∅∅∅": "Azores Summer Time", "HNCU": "Cuba Standard Time", "AWST": "Australian Western Standard Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "AEST": "Australian Eastern Standard Time", "HKST": "Hong Kong Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "CHADT": "Chatham Daylight Time", "IST": "India Standard Time", "CLT": "Chile Standard Time", "ARST": "Argentina Summer Time", "JDT": "Japan Daylight Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "WAT": "West Africa Standard Time", "HNOG": "West Greenland Standard Time", "AST": "Atlantic Standard Time", "WEZ": "Western European Standard Time", "LHST": "Lord Howe Standard Time", "SRT": "Suriname Time", "CHAST": "Chatham Standard Time", "CAT": "Central Africa Time", "MESZ": "Central European Summer Time", "GFT": "French Guiana Time", "WITA": "Central Indonesia Time", "UYT": "Uruguay Standard Time", "ADT": "Atlantic Daylight Time", "TMST": "Turkmenistan Summer Time", "PDT": "Pacific Daylight Time", "NZST": "New Zealand Standard Time", "HNT": "Newfoundland Standard Time", "MDT": "Mountain Daylight Time", "WIT": "Eastern Indonesia Time", "PST": "Pacific Standard Time", "AEDT": "Australian Eastern Daylight Time", "CST": "Central Standard Time", "TMT": "Turkmenistan Standard Time", "MYT": "Malaysia Time", "HAT": "Newfoundland Daylight Time", "MST": "Mountain Standard Time", "GYT": "Guyana Time", "BOT": "Bolivia Time", "HEEG": "East Greenland Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "EAT": "East Africa Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWDT": "Australian Central Western Daylight Time", "MEZ": "Central European Standard Time", "HEOG": "West Greenland Summer Time", "GMT": "Greenwich Mean Time", "ART": "Argentina Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CDT": "Central Daylight Time", "ACWST": "Australian Central Western Standard Time", "EST": "Eastern Standard Time", "ACST": "Australian Central Standard Time", "ACDT": "Australian Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "WIB": "Western Indonesia Time", "JST": "Japan Standard Time", "CLST": "Chile Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "WARST": "Western Argentina Summer Time", "COT": "Colombia Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "WAST": "West Africa Summer Time", "BT": "Bhutan Time", "HNPMX": "Mexican Pacific Standard Time", "SGT": "Singapore Standard Time", "VET": "Venezuela Time", "NZDT": "New Zealand Daylight Time", "WESZ": "Western European Summer Time", "EDT": "Eastern Daylight Time", "COST": "Colombia Summer Time", "HNEG": "East Greenland Standard Time", "ChST": "Chamorro Standard Time", "HECU": "Cuba Daylight Time", "AWDT": "Australian Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "ECT": "Ecuador Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_GB) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_GB) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod100 := math.Mod(n, 100)
nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
@@ -405,15 +405,25 @@ func (en *en_GB) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_GB) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_GB) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_GB) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_GD/en_GD.go b/en_GD/en_GD.go
index 4bfc5b67..ef758c76 100644
--- a/en_GD/en_GD.go
+++ b/en_GD/en_GD.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"AWST": "Australian Western Standard Time", "CHAST": "Chatham Standard Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "EDT": "Eastern Daylight Time", "MYT": "Malaysia Time", "WESZ": "Western European Summer Time", "GMT": "Greenwich Mean Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "IST": "India Standard Time", "BOT": "Bolivia Time", "WIB": "Western Indonesia Time", "PST": "Pacific Standard Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "WITA": "Central Indonesia Time", "MESZ": "Central European Summer Time", "HEEG": "East Greenland Summer Time", "BT": "Bhutan Time", "HADT": "Hawaii-Aleutian Daylight Time", "HEOG": "West Greenland Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZST": "New Zealand Standard Time", "∅∅∅": "Amazon Summer Time", "HECU": "Cuba Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "MDT": "Mountain Daylight Time", "AEST": "Australian Eastern Standard Time", "CLT": "Chile Standard Time", "TMST": "Turkmenistan Summer Time", "EAT": "East Africa Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "JDT": "Japan Daylight Time", "ACDT": "Australian Central Daylight Time", "COT": "Colombia Standard Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time", "ADT": "Atlantic Daylight Time", "LHST": "Lord Howe Standard Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "ECT": "Ecuador Time", "EST": "Eastern Standard Time", "AST": "Atlantic Standard Time", "ChST": "Chamorro Standard Time", "NZDT": "New Zealand Daylight Time", "HNEG": "East Greenland Standard Time", "CAT": "Central Africa Time", "UYST": "Uruguay Summer Time", "HKT": "Hong Kong Standard Time", "MST": "Mountain Standard Time", "HNT": "Newfoundland Standard Time", "CST": "Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "JST": "Japan Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HAT": "Newfoundland Daylight Time", "HKST": "Hong Kong Summer Time", "TMT": "Turkmenistan Standard Time", "WARST": "Western Argentina Summer Time", "SGT": "Singapore Standard Time", "SRT": "Suriname Time", "HNOG": "West Greenland Standard Time", "MEZ": "Central European Standard Time", "GFT": "French Guiana Time", "ART": "Argentina Standard Time", "ACWST": "Australian Central Western Standard Time", "LHDT": "Lord Howe Daylight Time", "CLST": "Chile Summer Time", "WART": "Western Argentina Standard Time", "WIT": "Eastern Indonesia Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "AEDT": "Australian Eastern Daylight Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "ACST": "Australian Central Standard Time", "HNCU": "Cuba Standard Time", "VET": "Venezuela Time", "GYT": "Guyana Time", "UYT": "Uruguay Standard Time", "CDT": "Central Daylight Time"},
+ timezones: map[string]string{"OESZ": "Eastern European Summer Time", "LHDT": "Lord Howe Daylight Time", "GYT": "Guyana Time", "OEZ": "Eastern European Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "WIB": "Western Indonesia Time", "GMT": "Greenwich Mean Time", "CLT": "Chile Standard Time", "ACST": "Australian Central Standard Time", "ACDT": "Australian Central Daylight Time", "ChST": "Chamorro Standard Time", "ADT": "Atlantic Daylight Time", "WAT": "West Africa Standard Time", "EST": "Eastern Standard Time", "BT": "Bhutan Time", "WAST": "West Africa Summer Time", "JST": "Japan Standard Time", "VET": "Venezuela Time", "ARST": "Argentina Summer Time", "AKDT": "Alaska Daylight Time", "SRT": "Suriname Time", "HAST": "Hawaii-Aleutian Standard Time", "BOT": "Bolivia Time", "MESZ": "Central European Summer Time", "WESZ": "Western European Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "UYST": "Uruguay Summer Time", "EDT": "Eastern Daylight Time", "WITA": "Central Indonesia Time", "JDT": "Japan Daylight Time", "AST": "Atlantic Standard Time", "CHAST": "Chatham Standard Time", "CHADT": "Chatham Daylight Time", "NZST": "New Zealand Standard Time", "WEZ": "Western European Standard Time", "HNEG": "East Greenland Standard Time", "AEST": "Australian Eastern Standard Time", "HECU": "Cuba Daylight Time", "ECT": "Ecuador Time", "CAT": "Central Africa Time", "MYT": "Malaysia Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "GFT": "French Guiana Time", "SAST": "South Africa Standard Time", "TMT": "Turkmenistan Standard Time", "CST": "Central Standard Time", "AWST": "Australian Western Standard Time", "CLST": "Chile Summer Time", "HEEG": "East Greenland Summer Time", "HAT": "Newfoundland Daylight Time", "EAT": "East Africa Time", "SGT": "Singapore Standard Time", "NZDT": "New Zealand Daylight Time", "HEOG": "West Greenland Summer Time", "∅∅∅": "Acre Summer Time", "HNPMX": "Mexican Pacific Standard Time", "HNCU": "Cuba Standard Time", "COST": "Colombia Summer Time", "AEDT": "Australian Eastern Daylight Time", "ACWST": "Australian Central Western Standard Time", "MEZ": "Central European Standard Time", "COT": "Colombia Standard Time", "MDT": "Mountain Daylight Time", "UYT": "Uruguay Standard Time", "IST": "India Standard Time", "HNOG": "West Greenland Standard Time", "MST": "Mountain Standard Time", "AWDT": "Australian Western Daylight Time", "PST": "Pacific Standard Time", "AKST": "Alaska Standard Time", "CDT": "Central Daylight Time", "WIT": "Eastern Indonesia Time", "PDT": "Pacific Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "ART": "Argentina Standard Time", "HKST": "Hong Kong Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HNT": "Newfoundland Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "TMST": "Turkmenistan Summer Time", "HKT": "Hong Kong Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_GD) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_GD) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_GD) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_GD) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_GG/en_GG.go b/en_GG/en_GG.go
index 05a4e9bf..31de5136 100644
--- a/en_GG/en_GG.go
+++ b/en_GG/en_GG.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"WAST": "West Africa Summer Time", "HAT": "Newfoundland Daylight Time", "SAST": "South Africa Standard Time", "HEEG": "East Greenland Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HKT": "Hong Kong Standard Time", "IST": "India Standard Time", "TMST": "Turkmenistan Summer Time", "ChST": "Chamorro Standard Time", "∅∅∅": "Peru Summer Time", "EDT": "Eastern Daylight Time", "VET": "Venezuela Time", "ART": "Argentina Standard Time", "NZST": "New Zealand Standard Time", "UYT": "Uruguay Standard Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "AEST": "Australian Eastern Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "GFT": "French Guiana Time", "PST": "Pacific Standard Time", "WAT": "West Africa Standard Time", "COST": "Colombia Summer Time", "HECU": "Cuba Daylight Time", "MDT": "Macau Summer Time", "ADT": "Atlantic Daylight Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "AEDT": "Australian Eastern Daylight Time", "AWST": "Australian Western Standard Time", "CHADT": "Chatham Daylight Time", "BOT": "Bolivia Time", "COT": "Colombia Standard Time", "ARST": "Argentina Summer Time", "WEZ": "Western European Standard Time", "WITA": "Central Indonesia Time", "JDT": "Japan Daylight Time", "OEZ": "Eastern European Standard Time", "WARST": "Western Argentina Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AST": "Atlantic Standard Time", "AWDT": "Australian Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNEG": "East Greenland Standard Time", "PDT": "Pacific Daylight Time", "WART": "Western Argentina Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "CLT": "Chile Standard Time", "ACST": "Australian Central Standard Time", "MST": "Macau Standard Time", "CDT": "Central Daylight Time", "ACWST": "Australian Central Western Standard Time", "MESZ": "Central European Summer Time", "CAT": "Central Africa Time", "HNCU": "Cuba Standard Time", "HNOG": "West Greenland Standard Time", "WESZ": "Western European Summer Time", "MEZ": "Central European Standard Time", "JST": "Japan Standard Time", "ACDT": "Australian Central Daylight Time", "CST": "Central Standard Time", "HNT": "Newfoundland Standard Time", "ACWDT": "Australian Central Western Daylight Time", "NZDT": "New Zealand Daylight Time", "CLST": "Chile Summer Time", "TMT": "Turkmenistan Standard Time", "HKST": "Hong Kong Summer Time", "CHAST": "Chatham Standard Time", "AKDT": "Alaska Daylight Time", "OESZ": "Eastern European Summer Time", "ECT": "Ecuador Time", "HNNOMX": "Northwest Mexico Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "GMT": "Greenwich Mean Time", "SGT": "Singapore Standard Time", "GYT": "Guyana Time", "HEOG": "West Greenland Summer Time", "EAT": "East Africa Time", "WIT": "Eastern Indonesia Time", "SRT": "Suriname Time", "EST": "Eastern Standard Time", "AKST": "Alaska Standard Time"},
+ timezones: map[string]string{"ACWST": "Australian Central Western Standard Time", "WART": "Western Argentina Standard Time", "HKST": "Hong Kong Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "CHADT": "Chatham Daylight Time", "CST": "Central Standard Time", "WEZ": "Western European Standard Time", "MYT": "Malaysia Time", "ACST": "Australian Central Standard Time", "HNT": "Newfoundland Standard Time", "LHDT": "Lord Howe Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "GYT": "Guyana Time", "WIB": "Western Indonesia Time", "HNCU": "Cuba Standard Time", "WIT": "Eastern Indonesia Time", "HKT": "Hong Kong Standard Time", "HNEG": "East Greenland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ADT": "Atlantic Daylight Time", "OESZ": "Eastern European Summer Time", "AWDT": "Australian Western Daylight Time", "NZST": "New Zealand Standard Time", "VET": "Venezuela Time", "GFT": "French Guiana Time", "ECT": "Ecuador Time", "ACWDT": "Australian Central Western Daylight Time", "UYST": "Uruguay Summer Time", "BOT": "Bolivia Time", "GMT": "Greenwich Mean Time", "CLT": "Chile Standard Time", "MST": "Macau Standard Time", "ARST": "Argentina Summer Time", "COST": "Colombia Summer Time", "EDT": "Eastern Daylight Time", "JDT": "Japan Daylight Time", "UYT": "Uruguay Standard Time", "SAST": "South Africa Standard Time", "AWST": "Australian Western Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "COT": "Colombia Standard Time", "∅∅∅": "Acre Summer Time", "WARST": "Western Argentina Summer Time", "HAT": "Newfoundland Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "WESZ": "Western European Summer Time", "LHST": "Lord Howe Standard Time", "CHAST": "Chatham Standard Time", "NZDT": "New Zealand Daylight Time", "ART": "Argentina Standard Time", "ACDT": "Australian Central Daylight Time", "AKDT": "Alaska Daylight Time", "TMST": "Turkmenistan Summer Time", "MDT": "Macau Summer Time", "BT": "Bhutan Time", "OEZ": "Eastern European Standard Time", "SGT": "Singapore Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "WITA": "Central Indonesia Time", "ChST": "Chamorro Standard Time", "MEZ": "Central European Standard Time", "HNOG": "West Greenland Standard Time", "AEST": "Australian Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "AKST": "Alaska Standard Time", "HEOG": "West Greenland Summer Time", "AST": "Atlantic Standard Time", "EST": "Eastern Standard Time", "HECU": "Cuba Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "EAT": "East Africa Time", "IST": "India Standard Time", "CLST": "Chile Summer Time", "WAST": "West Africa Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SRT": "Suriname Time", "CDT": "Central Daylight Time", "CAT": "Central Africa Time", "JST": "Japan Standard Time", "MESZ": "Central European Summer Time", "HEEG": "East Greenland Summer Time", "PST": "Pacific Standard Time", "PDT": "Pacific Daylight Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_GG) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_GG) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_GG) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_GG) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_GH/en_GH.go b/en_GH/en_GH.go
index 9c45a5e2..7497ec9c 100644
--- a/en_GH/en_GH.go
+++ b/en_GH/en_GH.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"UYT": "Uruguay Standard Time", "HAT": "Newfoundland Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "ADT": "Atlantic Daylight Time", "CDT": "Central Daylight Time", "HEEG": "East Greenland Summer Time", "WAST": "West Africa Summer Time", "ACDT": "Australian Central Daylight Time", "OESZ": "Eastern European Summer Time", "ECT": "Ecuador Time", "MEZ": "Central European Standard Time", "IST": "India Standard Time", "ACST": "Australian Central Standard Time", "AKDT": "Alaska Daylight Time", "WIB": "Western Indonesia Time", "VET": "Venezuela Time", "ART": "Argentina Standard Time", "NZST": "New Zealand Standard Time", "TMT": "Turkmenistan Standard Time", "EAT": "East Africa Time", "HEOG": "West Greenland Summer Time", "AEST": "Australian Eastern Standard Time", "COT": "Colombia Standard Time", "SGT": "Singapore Standard Time", "AWDT": "Australian Western Daylight Time", "CHAST": "Chatham Standard Time", "GYT": "Guyana Time", "ACWDT": "Australian Central Western Daylight Time", "AKST": "Alaska Standard Time", "AST": "Atlantic Standard Time", "PDT": "Pacific Daylight Time", "WESZ": "Western European Summer Time", "LHDT": "Lord Howe Daylight Time", "JST": "Japan Standard Time", "BOT": "Bolivia Time", "WITA": "Central Indonesia Time", "HENOMX": "Northwest Mexico Daylight Time", "HNOG": "West Greenland Standard Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "MST": "Macau Standard Time", "HNT": "Newfoundland Standard Time", "AEDT": "Australian Eastern Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "∅∅∅": "Amazon Summer Time", "JDT": "Japan Daylight Time", "NZDT": "New Zealand Daylight Time", "MESZ": "Central European Summer Time", "TMST": "Turkmenistan Summer Time", "WART": "Western Argentina Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HKST": "Hong Kong Summer Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "WAT": "West Africa Standard Time", "HECU": "Cuba Daylight Time", "GMT": "Greenwich Mean Time", "PST": "Pacific Standard Time", "HKT": "Hong Kong Standard Time", "CHADT": "Chatham Daylight Time", "HNEG": "East Greenland Standard Time", "GFT": "French Guiana Time", "ARST": "Argentina Summer Time", "LHST": "Lord Howe Standard Time", "ChST": "Chamorro Standard Time", "UYST": "Uruguay Summer Time", "CST": "Central Standard Time", "MYT": "Malaysia Time", "HADT": "Hawaii-Aleutian Daylight Time", "BT": "Bhutan Time", "AWST": "Australian Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HNCU": "Cuba Standard Time", "MDT": "Macau Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWST": "Australian Central Western Standard Time", "WEZ": "Western European Standard Time", "SAST": "South Africa Standard Time", "EDT": "Eastern Daylight Time", "SRT": "Suriname Time", "OEZ": "Eastern European Standard Time", "WARST": "Western Argentina Summer Time", "CAT": "Central Africa Time", "WIT": "Eastern Indonesia Time"},
+ timezones: map[string]string{"PDT": "Pacific Daylight Time", "GMT": "Greenwich Mean Time", "EDT": "Eastern Daylight Time", "HEEG": "East Greenland Summer Time", "WITA": "Central Indonesia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "CDT": "Central Daylight Time", "AWDT": "Australian Western Daylight Time", "ECT": "Ecuador Time", "PST": "Pacific Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "ChST": "Chamorro Standard Time", "LHDT": "Lord Howe Daylight Time", "GYT": "Guyana Time", "CHADT": "Chatham Daylight Time", "NZDT": "New Zealand Daylight Time", "MDT": "Macau Summer Time", "SAST": "South Africa Standard Time", "HNT": "Newfoundland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "OESZ": "Eastern European Summer Time", "BT": "Bhutan Time", "VET": "Venezuela Time", "JST": "Japan Standard Time", "WART": "Western Argentina Standard Time", "WAST": "West Africa Summer Time", "AEST": "Australian Eastern Standard Time", "GFT": "French Guiana Time", "AKST": "Alaska Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "WIB": "Western Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "∅∅∅": "Amazon Summer Time", "WESZ": "Western European Summer Time", "TMT": "Turkmenistan Standard Time", "ARST": "Argentina Summer Time", "COST": "Colombia Summer Time", "HAT": "Newfoundland Daylight Time", "CHAST": "Chatham Standard Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "MEZ": "Central European Standard Time", "AST": "Atlantic Standard Time", "MST": "Macau Standard Time", "HKT": "Hong Kong Standard Time", "SGT": "Singapore Standard Time", "IST": "India Standard Time", "CLT": "Chile Standard Time", "HECU": "Cuba Daylight Time", "AWST": "Australian Western Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "WARST": "Western Argentina Summer Time", "CLST": "Chile Summer Time", "HNOG": "West Greenland Standard Time", "WAT": "West Africa Standard Time", "EST": "Eastern Standard Time", "ACST": "Australian Central Standard Time", "ADT": "Atlantic Daylight Time", "UYT": "Uruguay Standard Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "ACWDT": "Australian Central Western Daylight Time", "MYT": "Malaysia Time", "HKST": "Hong Kong Summer Time", "COT": "Colombia Standard Time", "JDT": "Japan Daylight Time", "TMST": "Turkmenistan Summer Time", "ART": "Argentina Standard Time", "ACDT": "Australian Central Daylight Time", "AKDT": "Alaska Daylight Time", "UYST": "Uruguay Summer Time", "WIT": "Eastern Indonesia Time", "ACWST": "Australian Central Western Standard Time", "HEOG": "West Greenland Summer Time", "HNEG": "East Greenland Standard Time", "EAT": "East Africa Time", "HNCU": "Cuba Standard Time", "MESZ": "Central European Summer Time", "OEZ": "Eastern European Standard Time", "WEZ": "Western European Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "AEDT": "Australian Eastern Daylight Time", "SRT": "Suriname Time", "CST": "Central Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_GH) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_GH) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_GH) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_GH) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_GI/en_GI.go b/en_GI/en_GI.go
index 655f99f6..b4931168 100644
--- a/en_GI/en_GI.go
+++ b/en_GI/en_GI.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"CLST": "Chile Summer Time", "HNEG": "East Greenland Standard Time", "ECT": "Ecuador Time", "ACWDT": "Australian Central Western Daylight Time", "WITA": "Central Indonesia Time", "WIT": "Eastern Indonesia Time", "CHADT": "Chatham Daylight Time", "GFT": "French Guiana Time", "WART": "Western Argentina Standard Time", "SRT": "Suriname Time", "WEZ": "Western European Standard Time", "WESZ": "Western European Summer Time", "MEZ": "Central European Standard Time", "JST": "Japan Standard Time", "ChST": "Chamorro Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AKDT": "Alaska Daylight Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "GMT": "Greenwich Mean Time", "CDT": "Central Daylight Time", "UYT": "Uruguay Standard Time", "NZDT": "New Zealand Daylight Time", "LHDT": "Lord Howe Daylight Time", "HEEG": "East Greenland Summer Time", "EAT": "East Africa Time", "MDT": "Macau Summer Time", "UYST": "Uruguay Summer Time", "ARST": "Argentina Summer Time", "CHAST": "Chatham Standard Time", "CAT": "Central Africa Time", "WAST": "West Africa Summer Time", "OEZ": "Eastern European Standard Time", "JDT": "Japan Daylight Time", "WARST": "Western Argentina Summer Time", "HECU": "Cuba Daylight Time", "ADT": "Atlantic Daylight Time", "BT": "Bhutan Time", "HNOG": "West Greenland Standard Time", "LHST": "Lord Howe Standard Time", "AEDT": "Australian Eastern Daylight Time", "IST": "India Standard Time", "∅∅∅": "Amazon Summer Time", "COT": "Colombia Standard Time", "CST": "Central Standard Time", "MYT": "Malaysia Time", "HEOG": "West Greenland Summer Time", "PDT": "Pacific Daylight Time", "VET": "Venezuela Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "TMT": "Turkmenistan Standard Time", "ACST": "Australian Central Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "HKT": "Hong Kong Standard Time", "AWDT": "Australian Western Daylight Time", "MST": "Macau Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "SAST": "South Africa Standard Time", "AST": "Atlantic Standard Time", "ACWST": "Australian Central Western Standard Time", "HKST": "Hong Kong Summer Time", "ACDT": "Australian Central Daylight Time", "HNCU": "Cuba Standard Time", "EST": "Eastern Standard Time", "AKST": "Alaska Standard Time", "PST": "Pacific Standard Time", "AWST": "Australian Western Standard Time", "OESZ": "Eastern European Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "EDT": "Eastern Daylight Time", "GYT": "Guyana Time", "WIB": "Western Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "NZST": "New Zealand Standard Time", "MESZ": "Central European Summer Time", "COST": "Colombia Summer Time", "HAT": "Newfoundland Daylight Time", "WAT": "West Africa Standard Time", "TMST": "Turkmenistan Summer Time", "BOT": "Bolivia Time", "HNPMX": "Mexican Pacific Standard Time", "HNT": "Newfoundland Standard Time", "CLT": "Chile Standard Time"},
+ timezones: map[string]string{"HKST": "Hong Kong Summer Time", "PDT": "Pacific Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "WIB": "Western Indonesia Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "EST": "Eastern Standard Time", "HEEG": "East Greenland Summer Time", "AEDT": "Australian Eastern Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNOG": "West Greenland Standard Time", "EDT": "Eastern Daylight Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "BT": "Bhutan Time", "ECT": "Ecuador Time", "NZST": "New Zealand Standard Time", "MEZ": "Central European Standard Time", "OESZ": "Eastern European Summer Time", "HKT": "Hong Kong Standard Time", "SAST": "South Africa Standard Time", "HECU": "Cuba Daylight Time", "CHAST": "Chatham Standard Time", "MESZ": "Central European Summer Time", "WART": "Western Argentina Standard Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "ACWDT": "Australian Central Western Daylight Time", "ACDT": "Australian Central Daylight Time", "WITA": "Central Indonesia Time", "ChST": "Chamorro Standard Time", "NZDT": "New Zealand Daylight Time", "JDT": "Japan Daylight Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time", "WIT": "Eastern Indonesia Time", "AWST": "Australian Western Standard Time", "PST": "Pacific Standard Time", "ART": "Argentina Standard Time", "GFT": "French Guiana Time", "HNCU": "Cuba Standard Time", "CHADT": "Chatham Daylight Time", "AWDT": "Australian Western Daylight Time", "OEZ": "Eastern European Standard Time", "WEZ": "Western European Standard Time", "ARST": "Argentina Summer Time", "MST": "Macau Standard Time", "UYST": "Uruguay Summer Time", "AST": "Atlantic Standard Time", "ACST": "Australian Central Standard Time", "AEST": "Australian Eastern Standard Time", "EAT": "East Africa Time", "ACWST": "Australian Central Western Standard Time", "LHST": "Lord Howe Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "GMT": "Greenwich Mean Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "∅∅∅": "Acre Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "TMT": "Turkmenistan Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "UYT": "Uruguay Standard Time", "CAT": "Central Africa Time", "SGT": "Singapore Standard Time", "BOT": "Bolivia Time", "VET": "Venezuela Time", "MYT": "Malaysia Time", "ADT": "Atlantic Daylight Time", "TMST": "Turkmenistan Summer Time", "LHDT": "Lord Howe Daylight Time", "SRT": "Suriname Time", "JST": "Japan Standard Time", "IST": "India Standard Time", "HEOG": "West Greenland Summer Time", "WAT": "West Africa Standard Time", "HNEG": "East Greenland Standard Time", "AKDT": "Alaska Daylight Time", "CDT": "Central Daylight Time", "WESZ": "Western European Summer Time", "WARST": "Western Argentina Summer Time", "CST": "Central Standard Time", "WAST": "West Africa Summer Time", "AKST": "Alaska Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_GI) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_GI) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod100 := math.Mod(n, 100)
nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
diff --git a/en_GM/en_GM.go b/en_GM/en_GM.go
index ccbb1d0d..4cb80ef0 100644
--- a/en_GM/en_GM.go
+++ b/en_GM/en_GM.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"ACWST": "Australian Central Western Standard Time", "TMT": "Turkmenistan Standard Time", "ChST": "Chamorro Standard Time", "COT": "Colombia Standard Time", "HNPMX": "Mexican Pacific Standard Time", "GYT": "Guyana Time", "HKT": "Hong Kong Standard Time", "MEZ": "Central European Standard Time", "IST": "India Standard Time", "JST": "Japan Standard Time", "JDT": "Japan Daylight Time", "CLST": "Chile Summer Time", "BOT": "Bolivia Time", "GMT": "Greenwich Mean Time", "MST": "Macau Standard Time", "VET": "Venezuela Time", "WAST": "West Africa Summer Time", "WARST": "Western Argentina Summer Time", "AST": "Atlantic Standard Time", "UYT": "Uruguay Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "ARST": "Argentina Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CAT": "Central Africa Time", "EDT": "Eastern Daylight Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "AEDT": "Australian Eastern Daylight Time", "TMST": "Turkmenistan Summer Time", "HNCU": "Cuba Standard Time", "WIT": "Eastern Indonesia Time", "∅∅∅": "Amazon Summer Time", "ECT": "Ecuador Time", "HEOG": "West Greenland Summer Time", "HAT": "Newfoundland Daylight Time", "WITA": "Central Indonesia Time", "EAT": "East Africa Time", "COST": "Colombia Summer Time", "AKDT": "Alaska Daylight Time", "ART": "Argentina Standard Time", "HNOG": "West Greenland Standard Time", "AWST": "Australian Western Standard Time", "AWDT": "Australian Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "EST": "Eastern Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "SRT": "Suriname Time", "NZDT": "New Zealand Daylight Time", "CLT": "Chile Standard Time", "GFT": "French Guiana Time", "HNNOMX": "Northwest Mexico Standard Time", "MDT": "Macau Summer Time", "CDT": "Central Daylight Time", "HNT": "Newfoundland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHST": "Lord Howe Standard Time", "WAT": "West Africa Standard Time", "CST": "Central Standard Time", "WESZ": "Western European Summer Time", "CHADT": "Chatham Daylight Time", "PDT": "Pacific Daylight Time", "MESZ": "Central European Summer Time", "SAST": "South Africa Standard Time", "HEEG": "East Greenland Summer Time", "ACDT": "Australian Central Daylight Time", "OESZ": "Eastern European Summer Time", "AEST": "Australian Eastern Standard Time", "WART": "Western Argentina Standard Time", "SGT": "Singapore Standard Time", "HECU": "Cuba Daylight Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "AKST": "Alaska Standard Time", "WEZ": "Western European Standard Time", "HKST": "Hong Kong Summer Time", "CHAST": "Chatham Standard Time", "PST": "Pacific Standard Time", "ACWDT": "Australian Central Western Daylight Time", "NZST": "New Zealand Standard Time", "HNEG": "East Greenland Standard Time", "ACST": "Australian Central Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "ADT": "Atlantic Daylight Time", "OEZ": "Eastern European Standard Time", "HAST": "Hawaii-Aleutian Standard Time"},
+ timezones: map[string]string{"SAST": "South Africa Standard Time", "ART": "Argentina Standard Time", "EDT": "Eastern Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "HNT": "Newfoundland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CAT": "Central Africa Time", "IST": "India Standard Time", "HKT": "Hong Kong Standard Time", "HNEG": "East Greenland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MEZ": "Central European Standard Time", "WITA": "Central Indonesia Time", "AKST": "Alaska Standard Time", "AEDT": "Australian Eastern Daylight Time", "ARST": "Argentina Summer Time", "COT": "Colombia Standard Time", "HEEG": "East Greenland Summer Time", "EAT": "East Africa Time", "∅∅∅": "Amazon Summer Time", "HEOG": "West Greenland Summer Time", "OEZ": "Eastern European Standard Time", "WEZ": "Western European Standard Time", "HNCU": "Cuba Standard Time", "CST": "Central Standard Time", "SRT": "Suriname Time", "WIB": "Western Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "VET": "Venezuela Time", "JST": "Japan Standard Time", "AST": "Atlantic Standard Time", "ChST": "Chamorro Standard Time", "JDT": "Japan Daylight Time", "GMT": "Greenwich Mean Time", "MST": "Macau Standard Time", "WIT": "Eastern Indonesia Time", "OESZ": "Eastern European Summer Time", "MYT": "Malaysia Time", "TMT": "Turkmenistan Standard Time", "UYST": "Uruguay Summer Time", "COST": "Colombia Summer Time", "HAT": "Newfoundland Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "HECU": "Cuba Daylight Time", "WART": "Western Argentina Standard Time", "HNOG": "West Greenland Standard Time", "HKST": "Hong Kong Summer Time", "ACDT": "Australian Central Daylight Time", "AWST": "Australian Western Standard Time", "MESZ": "Central European Summer Time", "TMST": "Turkmenistan Summer Time", "CHADT": "Chatham Daylight Time", "PST": "Pacific Standard Time", "AKDT": "Alaska Daylight Time", "SGT": "Singapore Standard Time", "BOT": "Bolivia Time", "ACWST": "Australian Central Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "NZST": "New Zealand Standard Time", "CLT": "Chile Standard Time", "AEST": "Australian Eastern Standard Time", "LHST": "Lord Howe Standard Time", "CHAST": "Chatham Standard Time", "PDT": "Pacific Daylight Time", "CLST": "Chile Summer Time", "EST": "Eastern Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "GFT": "French Guiana Time", "UYT": "Uruguay Standard Time", "LHDT": "Lord Howe Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "AWDT": "Australian Western Daylight Time", "WAST": "West Africa Summer Time", "ACST": "Australian Central Standard Time", "HNPMX": "Mexican Pacific Standard Time", "GYT": "Guyana Time", "NZDT": "New Zealand Daylight Time", "ADT": "Atlantic Daylight Time", "WESZ": "Western European Summer Time", "WAT": "West Africa Standard Time", "ECT": "Ecuador Time", "WARST": "Western Argentina Summer Time", "MDT": "Macau Summer Time", "BT": "Bhutan Time", "CDT": "Central Daylight Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_GM) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_GM) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_GM) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_GM) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_GU/en_GU.go b/en_GU/en_GU.go
index 34fd7aa7..4d6a97bc 100644
--- a/en_GU/en_GU.go
+++ b/en_GU/en_GU.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"CDT": "Central Daylight Time", "PDT": "Pacific Daylight Time", "HNT": "Newfoundland Standard Time", "IST": "India Standard Time", "JDT": "Japan Daylight Time", "UYT": "Uruguay Standard Time", "CST": "Central Standard Time", "WITA": "Central Indonesia Time", "LHST": "Lord Howe Standard Time", "BOT": "Bolivia Time", "HNCU": "Cuba Standard Time", "GYT": "Guyana Time", "AEST": "Australian Eastern Standard Time", "MESZ": "Central European Summer Time", "∅∅∅": "Amazon Summer Time", "WART": "Western Argentina Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AKST": "Alaska Standard Time", "WIB": "Western Indonesia Time", "WESZ": "Western European Summer Time", "MEZ": "Central European Standard Time", "HEOG": "West Greenland Summer Time", "HKT": "Hong Kong Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "JST": "Japan Standard Time", "HNEG": "East Greenland Standard Time", "GFT": "French Guiana Time", "HNNOMX": "Northwest Mexico Standard Time", "CHAST": "Chatham Standard Time", "SGT": "Singapore Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWDT": "Australian Central Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "AST": "Atlantic Standard Time", "CAT": "Central Africa Time", "MST": "Macau Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "UYST": "Uruguay Summer Time", "EST": "Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "AWST": "Australian Western Standard Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "MDT": "Macau Summer Time", "WIT": "Eastern Indonesia Time", "ChST": "Chamorro Standard Time", "SRT": "Suriname Time", "HNOG": "West Greenland Standard Time", "ART": "Argentina Standard Time", "AWDT": "Australian Western Daylight Time", "HEEG": "East Greenland Summer Time", "AKDT": "Alaska Daylight Time", "PST": "Pacific Standard Time", "ARST": "Argentina Summer Time", "HKST": "Hong Kong Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "CLST": "Chile Summer Time", "ACDT": "Australian Central Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "EDT": "Eastern Daylight Time", "VET": "Venezuela Time", "NZST": "New Zealand Standard Time", "WEZ": "Western European Standard Time", "ACWST": "Australian Central Western Standard Time", "HAT": "Newfoundland Daylight Time", "CLT": "Chile Standard Time", "ACST": "Australian Central Standard Time", "WARST": "Western Argentina Summer Time", "BT": "Bhutan Time", "COST": "Colombia Summer Time", "HECU": "Cuba Daylight Time", "TMT": "Turkmenistan Standard Time", "EAT": "East Africa Time", "WAST": "West Africa Summer Time", "COT": "Colombia Standard Time", "MYT": "Malaysia Time", "ADT": "Atlantic Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "NZDT": "New Zealand Daylight Time", "TMST": "Turkmenistan Summer Time", "WAT": "West Africa Standard Time", "OESZ": "Eastern European Summer Time", "ECT": "Ecuador Time"},
+ timezones: map[string]string{"HAT": "Newfoundland Daylight Time", "GFT": "French Guiana Time", "ACST": "Australian Central Standard Time", "WEZ": "Western European Standard Time", "TMT": "Turkmenistan Standard Time", "JST": "Japan Standard Time", "HEOG": "West Greenland Summer Time", "OEZ": "Eastern European Standard Time", "MYT": "Malaysia Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "EDT": "Eastern Daylight Time", "HNEG": "East Greenland Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "ECT": "Ecuador Time", "ACWDT": "Australian Central Western Daylight Time", "∅∅∅": "Azores Summer Time", "NZDT": "New Zealand Daylight Time", "CLST": "Chile Summer Time", "AKDT": "Alaska Daylight Time", "UYST": "Uruguay Summer Time", "CHAST": "Chatham Standard Time", "WIT": "Eastern Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "GMT": "Greenwich Mean Time", "COST": "Colombia Summer Time", "AEDT": "Australian Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "ACDT": "Australian Central Daylight Time", "BT": "Bhutan Time", "WITA": "Central Indonesia Time", "AEST": "Australian Eastern Standard Time", "PDT": "Pacific Daylight Time", "EAT": "East Africa Time", "AWDT": "Australian Western Daylight Time", "PST": "Pacific Standard Time", "HNOG": "West Greenland Standard Time", "MDT": "Macau Summer Time", "COT": "Colombia Standard Time", "SRT": "Suriname Time", "WAST": "West Africa Summer Time", "HKT": "Hong Kong Standard Time", "HEEG": "East Greenland Summer Time", "UYT": "Uruguay Standard Time", "TMST": "Turkmenistan Summer Time", "WIB": "Western Indonesia Time", "AWST": "Australian Western Standard Time", "SGT": "Singapore Standard Time", "BOT": "Bolivia Time", "NZST": "New Zealand Standard Time", "MESZ": "Central European Summer Time", "WART": "Western Argentina Standard Time", "SAST": "South Africa Standard Time", "CLT": "Chile Standard Time", "EST": "Eastern Standard Time", "AKST": "Alaska Standard Time", "WARST": "Western Argentina Summer Time", "HNPMX": "Mexican Pacific Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "ADT": "Atlantic Daylight Time", "WESZ": "Western European Summer Time", "ChST": "Chamorro Standard Time", "LHDT": "Lord Howe Daylight Time", "MEZ": "Central European Standard Time", "VET": "Venezuela Time", "HKST": "Hong Kong Summer Time", "HNT": "Newfoundland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHADT": "Chatham Daylight Time", "CAT": "Central Africa Time", "JDT": "Japan Daylight Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "GYT": "Guyana Time", "AST": "Atlantic Standard Time", "MST": "Macau Standard Time", "CST": "Central Standard Time", "HECU": "Cuba Daylight Time", "CDT": "Central Daylight Time", "IST": "India Standard Time", "ACWST": "Australian Central Western Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HNCU": "Cuba Standard Time", "OESZ": "Eastern European Summer Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_GU) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_GU) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
diff --git a/en_GY/en_GY.go b/en_GY/en_GY.go
index cde74900..b7cd92ea 100644
--- a/en_GY/en_GY.go
+++ b/en_GY/en_GY.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"ECT": "Ecuador Time", "COST": "Colombia Summer Time", "WART": "Western Argentina Standard Time", "HNT": "Newfoundland Standard Time", "PDT": "Pacific Daylight Time", "MESZ": "Central European Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HKST": "Hong Kong Summer Time", "TMT": "Turkmenistan Standard Time", "GYT": "Guyana Time", "UYT": "Uruguay Standard Time", "MDT": "Mountain Daylight Time", "HKT": "Hong Kong Standard Time", "TMST": "Turkmenistan Summer Time", "OEZ": "Eastern European Standard Time", "HEOG": "West Greenland Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "BOT": "Bolivia Time", "HNEG": "East Greenland Standard Time", "WAST": "West Africa Summer Time", "WIB": "Western Indonesia Time", "WESZ": "Western European Summer Time", "ART": "Argentina Standard Time", "GFT": "French Guiana Time", "HNNOMX": "Northwest Mexico Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "MYT": "Malaysia Time", "WITA": "Central Indonesia Time", "IST": "India Standard Time", "HNCU": "Cuba Standard Time", "CDT": "Central Daylight Time", "SAST": "South Africa Standard Time", "CLT": "Chile Standard Time", "EDT": "Eastern Daylight Time", "ACWST": "Australian Central Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CHAST": "Chatham Standard Time", "BT": "Bhutan Time", "∅∅∅": "Amazon Summer Time", "ChST": "Chamorro Standard Time", "GMT": "Greenwich Mean Time", "AST": "Atlantic Standard Time", "ADT": "Atlantic Daylight Time", "MST": "Mountain Standard Time", "WAT": "West Africa Standard Time", "COT": "Colombia Standard Time", "AEST": "Australian Eastern Standard Time", "CHADT": "Chatham Daylight Time", "JDT": "Japan Daylight Time", "NZDT": "New Zealand Daylight Time", "HEEG": "East Greenland Summer Time", "SGT": "Singapore Standard Time", "HNPMX": "Mexican Pacific Standard Time", "UYST": "Uruguay Summer Time", "WIT": "Eastern Indonesia Time", "WEZ": "Western European Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HAT": "Newfoundland Daylight Time", "ACST": "Australian Central Standard Time", "CAT": "Central Africa Time", "OESZ": "Eastern European Summer Time", "WARST": "Western Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "CLST": "Chile Summer Time", "EST": "Eastern Standard Time", "CST": "Central Standard Time", "JST": "Japan Standard Time", "ACDT": "Australian Central Daylight Time", "MEZ": "Central European Standard Time", "HECU": "Cuba Daylight Time", "AKST": "Alaska Standard Time", "AWST": "Australian Western Standard Time", "AWDT": "Australian Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "NZST": "New Zealand Standard Time", "AKDT": "Alaska Daylight Time", "VET": "Venezuela Time", "HNOG": "West Greenland Standard Time", "PST": "Pacific Standard Time", "EAT": "East Africa Time", "SRT": "Suriname Time", "ACWDT": "Australian Central Western Daylight Time", "ARST": "Argentina Summer Time"},
+ timezones: map[string]string{"WAT": "West Africa Standard Time", "UYT": "Uruguay Standard Time", "UYST": "Uruguay Summer Time", "NZDT": "New Zealand Daylight Time", "MESZ": "Central European Summer Time", "OESZ": "Eastern European Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "TMST": "Turkmenistan Summer Time", "HNT": "Newfoundland Standard Time", "WIB": "Western Indonesia Time", "CST": "Central Standard Time", "AWST": "Australian Western Standard Time", "CHADT": "Chatham Daylight Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "WESZ": "Western European Summer Time", "SAST": "South Africa Standard Time", "JDT": "Japan Daylight Time", "EDT": "Eastern Daylight Time", "ECT": "Ecuador Time", "MEZ": "Central European Standard Time", "JST": "Japan Standard Time", "HEEG": "East Greenland Summer Time", "AEDT": "Australian Eastern Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "SGT": "Singapore Standard Time", "ADT": "Atlantic Daylight Time", "OEZ": "Eastern European Standard Time", "HNOG": "West Greenland Standard Time", "AST": "Atlantic Standard Time", "ACST": "Australian Central Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHDT": "Lord Howe Daylight Time", "BOT": "Bolivia Time", "CLT": "Chile Standard Time", "HKT": "Hong Kong Standard Time", "HNEG": "East Greenland Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "GMT": "Greenwich Mean Time", "WARST": "Western Argentina Summer Time", "TMT": "Turkmenistan Standard Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "WITA": "Central Indonesia Time", "ART": "Argentina Standard Time", "ACDT": "Australian Central Daylight Time", "MST": "Mountain Standard Time", "EAT": "East Africa Time", "IST": "India Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "BT": "Bhutan Time", "HEPMX": "Mexican Pacific Daylight Time", "HNCU": "Cuba Standard Time", "WIT": "Eastern Indonesia Time", "ARST": "Argentina Summer Time", "EST": "Eastern Standard Time", "GFT": "French Guiana Time", "LHST": "Lord Howe Standard Time", "HECU": "Cuba Daylight Time", "PST": "Pacific Standard Time", "VET": "Venezuela Time", "COST": "Colombia Summer Time", "ChST": "Chamorro Standard Time", "CDT": "Central Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "NZST": "New Zealand Standard Time", "CLST": "Chile Summer Time", "WAST": "West Africa Summer Time", "HKST": "Hong Kong Summer Time", "∅∅∅": "Acre Summer Time", "MDT": "Mountain Daylight Time", "GYT": "Guyana Time", "PDT": "Pacific Daylight Time", "ACWST": "Australian Central Western Standard Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "SRT": "Suriname Time", "CHAST": "Chatham Standard Time", "MYT": "Malaysia Time", "AWDT": "Australian Western Daylight Time", "CAT": "Central Africa Time", "HEOG": "West Greenland Summer Time", "WEZ": "Western European Standard Time", "WART": "Western Argentina Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_GY) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_GY) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_GY) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_GY) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_HK/en_HK.go b/en_HK/en_HK.go
index 64351fda..8b98f2ab 100644
--- a/en_HK/en_HK.go
+++ b/en_HK/en_HK.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"LHDT": "Lord Howe Daylight Time", "MEZ": "Central European Standard Time", "MST": "Macau Standard Time", "HNPMX": "Mexican Pacific Standard Time", "ART": "Argentina Standard Time", "WIT": "Eastern Indonesia Time", "HKT": "Hong Kong Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "UYT": "Uruguay Standard Time", "COT": "Colombia Standard Time", "AKST": "Alaska Standard Time", "ARST": "Argentina Summer Time", "TMST": "Turkmenistan Summer Time", "WAST": "West Africa Summer Time", "EDT": "Eastern Daylight Time", "PST": "Pacific Standard Time", "ChST": "Chamorro Standard Time", "HNEG": "East Greenland Standard Time", "HECU": "Cuba Daylight Time", "CHAST": "Chatham Standard Time", "CLT": "Chile Standard Time", "ACWDT": "Australian Central Western Daylight Time", "NZDT": "New Zealand Daylight Time", "CAT": "Central Africa Time", "SGT": "Singapore Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "SRT": "Suriname Time", "JST": "Japan Standard Time", "WAT": "West Africa Standard Time", "WIB": "Western Indonesia Time", "HKST": "Hong Kong Summer Time", "AEST": "Australian Eastern Standard Time", "EAT": "East Africa Time", "CDT": "Central Daylight Time", "ADT": "Atlantic Daylight Time", "WEZ": "Western European Standard Time", "LHST": "Lord Howe Standard Time", "ACDT": "Australian Central Daylight Time", "ECT": "Ecuador Time", "MYT": "Malaysia Time", "BT": "Bhutan Time", "AWDT": "Australian Western Daylight Time", "HNT": "Newfoundland Standard Time", "HNOG": "West Greenland Standard Time", "AWST": "Australian Western Standard Time", "AEDT": "Australian Eastern Daylight Time", "MESZ": "Central European Summer Time", "HNCU": "Cuba Standard Time", "EST": "Eastern Standard Time", "AST": "Atlantic Standard Time", "WART": "Western Argentina Standard Time", "IST": "India Standard Time", "GFT": "French Guiana Time", "OESZ": "Eastern European Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "WITA": "Central Indonesia Time", "JDT": "Japan Daylight Time", "∅∅∅": "Azores Summer Time", "GMT": "Greenwich Mean Time", "AKDT": "Alaska Daylight Time", "NZST": "New Zealand Standard Time", "CHADT": "Chatham Daylight Time", "CLST": "Chile Summer Time", "ACST": "Australian Central Standard Time", "WESZ": "Western European Summer Time", "HEOG": "West Greenland Summer Time", "PDT": "Pacific Daylight Time", "WARST": "Western Argentina Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "BOT": "Bolivia Time", "COST": "Colombia Summer Time", "VET": "Venezuela Time", "OEZ": "Eastern European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "SAST": "South Africa Standard Time", "HEEG": "East Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "UYST": "Uruguay Summer Time", "ACWST": "Australian Central Western Standard Time", "HAT": "Newfoundland Daylight Time"},
+ timezones: map[string]string{"CAT": "Central Africa Time", "ADT": "Atlantic Daylight Time", "WEZ": "Western European Standard Time", "CLST": "Chile Summer Time", "MST": "Macau Standard Time", "ART": "Argentina Standard Time", "WAT": "West Africa Standard Time", "EST": "Eastern Standard Time", "BT": "Bhutan Time", "TMST": "Turkmenistan Summer Time", "AKST": "Alaska Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "PDT": "Pacific Daylight Time", "VET": "Venezuela Time", "OESZ": "Eastern European Summer Time", "AEDT": "Australian Eastern Daylight Time", "∅∅∅": "Brasilia Summer Time", "SGT": "Singapore Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AST": "Atlantic Standard Time", "WART": "Western Argentina Standard Time", "WITA": "Central Indonesia Time", "AEST": "Australian Eastern Standard Time", "HNPMX": "Mexican Pacific Standard Time", "SRT": "Suriname Time", "EAT": "East Africa Time", "HECU": "Cuba Daylight Time", "CHAST": "Chatham Standard Time", "BOT": "Bolivia Time", "OEZ": "Eastern European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNT": "Newfoundland Standard Time", "HNEG": "East Greenland Standard Time", "GFT": "French Guiana Time", "HAST": "Hawaii-Aleutian Standard Time", "IST": "India Standard Time", "WARST": "Western Argentina Summer Time", "ARST": "Argentina Summer Time", "COT": "Colombia Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HNCU": "Cuba Standard Time", "AWDT": "Australian Western Daylight Time", "ACWST": "Australian Central Western Standard Time", "HNOG": "West Greenland Standard Time", "WESZ": "Western European Summer Time", "ACDT": "Australian Central Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "TMT": "Turkmenistan Standard Time", "UYST": "Uruguay Summer Time", "CST": "Central Standard Time", "ACST": "Australian Central Standard Time", "HAT": "Newfoundland Daylight Time", "HEEG": "East Greenland Summer Time", "PST": "Pacific Standard Time", "MDT": "Macau Summer Time", "HKT": "Hong Kong Standard Time", "COST": "Colombia Summer Time", "LHDT": "Lord Howe Daylight Time", "GYT": "Guyana Time", "AWST": "Australian Western Standard Time", "CHADT": "Chatham Daylight Time", "CLT": "Chile Standard Time", "WAST": "West Africa Summer Time", "HKST": "Hong Kong Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "UYT": "Uruguay Standard Time", "SAST": "South Africa Standard Time", "NZST": "New Zealand Standard Time", "HEOG": "West Greenland Summer Time", "MYT": "Malaysia Time", "EDT": "Eastern Daylight Time", "AKDT": "Alaska Daylight Time", "WIB": "Western Indonesia Time", "LHST": "Lord Howe Standard Time", "WIT": "Eastern Indonesia Time", "MEZ": "Central European Standard Time", "MESZ": "Central European Summer Time", "CDT": "Central Daylight Time", "ECT": "Ecuador Time", "NZDT": "New Zealand Daylight Time", "JST": "Japan Standard Time", "JDT": "Japan Daylight Time", "GMT": "Greenwich Mean Time", "ChST": "Chamorro Standard Time", "HEPMX": "Mexican Pacific Daylight Time"},
}
}
@@ -424,10 +424,10 @@ func (en *en_HK) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +443,10 @@ func (en *en_HK) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +464,10 @@ func (en *en_HK) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -483,13 +483,11 @@ func (en *en_HK) FmtTimeShort(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -497,13 +495,6 @@ func (en *en_HK) FmtTimeShort(t time.Time) string {
}
b = strconv.AppendInt(b, int64(t.Minute()), 10)
- b = append(b, []byte{0x20}...)
-
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
return string(b)
}
@@ -513,13 +504,11 @@ func (en *en_HK) FmtTimeMedium(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -534,13 +523,6 @@ func (en *en_HK) FmtTimeMedium(t time.Time) string {
}
b = strconv.AppendInt(b, int64(t.Second()), 10)
- b = append(b, []byte{0x20}...)
-
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
return string(b)
}
@@ -550,13 +532,11 @@ func (en *en_HK) FmtTimeLong(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -573,14 +553,6 @@ func (en *en_HK) FmtTimeLong(t time.Time) string {
b = strconv.AppendInt(b, int64(t.Second()), 10)
b = append(b, []byte{0x20}...)
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
-
- b = append(b, []byte{0x20}...)
-
tz, _ := t.Zone()
b = append(b, tz...)
@@ -592,13 +564,11 @@ func (en *en_HK) FmtTimeFull(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -615,14 +585,6 @@ func (en *en_HK) FmtTimeFull(t time.Time) string {
b = strconv.AppendInt(b, int64(t.Second()), 10)
b = append(b, []byte{0x20}...)
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
-
- b = append(b, []byte{0x20}...)
-
tz, _ := t.Zone()
if btz, ok := en.timezones[tz]; ok {
diff --git a/en_IE/en_IE.go b/en_IE/en_IE.go
index f2f0d6e4..dd8de68b 100644
--- a/en_IE/en_IE.go
+++ b/en_IE/en_IE.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"GYT": "Guyana Time", "PST": "Pacific Standard Time", "BOT": "Bolivia Time", "OESZ": "Eastern European Summer Time", "WART": "Western Argentina Standard Time", "HECU": "Cuba Daylight Time", "HNOG": "West Greenland Standard Time", "JST": "Japan Standard Time", "MYT": "Malaysia Time", "AKST": "Alaska Standard Time", "WIT": "Eastern Indonesia Time", "MESZ": "Central European Summer Time", "NZST": "New Zealand Standard Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CAT": "Central Africa Time", "HNCU": "Cuba Standard Time", "MDT": "Macau Summer Time", "WESZ": "Western European Summer Time", "JDT": "Japan Daylight Time", "ChST": "Chamorro Standard Time", "BT": "Bhutan Time", "WEZ": "Western European Standard Time", "WITA": "Central Indonesia Time", "HEOG": "West Greenland Summer Time", "ARST": "Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "GMT": "Greenwich Mean Time", "MST": "Macau Standard Time", "NZDT": "New Zealand Daylight Time", "PDT": "Pacific Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "TMST": "Turkmenistan Summer Time", "AKDT": "Alaska Daylight Time", "CDT": "Central Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "EST": "Eastern Standard Time", "CST": "Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "SRT": "Suriname Time", "SAST": "South Africa Standard Time", "OEZ": "Eastern European Standard Time", "COST": "Colombia Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "CHADT": "Chatham Daylight Time", "HEEG": "East Greenland Summer Time", "WARST": "Western Argentina Summer Time", "VET": "Venezuela Time", "HAT": "Newfoundland Daylight Time", "UYST": "Uruguay Summer Time", "WIB": "Western Indonesia Time", "ACWST": "Australian Central Western Standard Time", "AWDT": "Australian Western Daylight Time", "∅∅∅": "Amazon Summer Time", "GFT": "French Guiana Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "AST": "Atlantic Standard Time", "ADT": "Atlantic Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "IST": "India Standard Time", "HNEG": "East Greenland Standard Time", "ACST": "Australian Central Standard Time", "EAT": "East Africa Time", "EDT": "Eastern Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "MEZ": "Central European Standard Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "ACDT": "Australian Central Daylight Time", "ECT": "Ecuador Time", "HNT": "Newfoundland Standard Time", "AWST": "Australian Western Standard Time", "LHDT": "Lord Howe Daylight Time", "CHAST": "Chatham Standard Time", "WAST": "West Africa Summer Time", "UYT": "Uruguay Standard Time", "HKT": "Hong Kong Standard Time", "HKST": "Hong Kong Summer Time"},
+ timezones: map[string]string{"WIT": "Eastern Indonesia Time", "CHADT": "Chatham Daylight Time", "SGT": "Singapore Standard Time", "HEEG": "East Greenland Summer Time", "AKDT": "Alaska Daylight Time", "EDT": "Eastern Daylight Time", "HKST": "Hong Kong Summer Time", "WIB": "Western Indonesia Time", "HNNOMX": "Northwest Mexico Standard Time", "PST": "Pacific Standard Time", "NZST": "New Zealand Standard Time", "CAT": "Central Africa Time", "WESZ": "Western European Summer Time", "TMST": "Turkmenistan Summer Time", "MDT": "Macau Summer Time", "AWDT": "Australian Western Daylight Time", "ACWST": "Australian Central Western Standard Time", "MEZ": "Central European Standard Time", "HNT": "Newfoundland Standard Time", "NZDT": "New Zealand Daylight Time", "VET": "Venezuela Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "WEZ": "Western European Standard Time", "WAST": "West Africa Summer Time", "CDT": "Central Daylight Time", "SAST": "South Africa Standard Time", "EAT": "East Africa Time", "ACWDT": "Australian Central Western Daylight Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "HNEG": "East Greenland Standard Time", "AKST": "Alaska Standard Time", "LHDT": "Lord Howe Daylight Time", "JST": "Japan Standard Time", "HAT": "Newfoundland Daylight Time", "ChST": "Chamorro Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MST": "Macau Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "CST": "Central Standard Time", "CHAST": "Chatham Standard Time", "BOT": "Bolivia Time", "JDT": "Japan Daylight Time", "AST": "Atlantic Standard Time", "TMT": "Turkmenistan Standard Time", "AEST": "Australian Eastern Standard Time", "UYT": "Uruguay Standard Time", "GYT": "Guyana Time", "HADT": "Hawaii-Aleutian Daylight Time", "WARST": "Western Argentina Summer Time", "CLST": "Chile Summer Time", "OESZ": "Eastern European Summer Time", "BT": "Bhutan Time", "GFT": "French Guiana Time", "∅∅∅": "Brasilia Summer Time", "ADT": "Atlantic Daylight Time", "WITA": "Central Indonesia Time", "HEPMX": "Mexican Pacific Daylight Time", "WART": "Western Argentina Standard Time", "LHST": "Lord Howe Standard Time", "HECU": "Cuba Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "WAT": "West Africa Standard Time", "EST": "Eastern Standard Time", "ACDT": "Australian Central Daylight Time", "COT": "Colombia Standard Time", "UYST": "Uruguay Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNCU": "Cuba Standard Time", "AWST": "Australian Western Standard Time", "ECT": "Ecuador Time", "IST": "India Standard Time", "MESZ": "Central European Summer Time", "GMT": "Greenwich Mean Time", "AEDT": "Australian Eastern Daylight Time", "OEZ": "Eastern European Standard Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time", "PDT": "Pacific Daylight Time", "MYT": "Malaysia Time", "CLT": "Chile Standard Time", "HKT": "Hong Kong Standard Time", "ACST": "Australian Central Standard Time", "SRT": "Suriname Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_IE) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_IE) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod100 := math.Mod(n, 100)
nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
diff --git a/en_IL/en_IL.go b/en_IL/en_IL.go
index aab8e5b2..7cdb9aaa 100644
--- a/en_IL/en_IL.go
+++ b/en_IL/en_IL.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"VET": "Venezuela Time", "PDT": "Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "BOT": "Bolivia Time", "WARST": "Western Argentina Summer Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "HEOG": "West Greenland Summer Time", "IST": "India Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ChST": "Chamorro Standard Time", "WAT": "West Africa Standard Time", "EST": "Eastern Standard Time", "AST": "Atlantic Standard Time", "PST": "Pacific Standard Time", "ACWST": "Australian Central Western Standard Time", "HAT": "Newfoundland Daylight Time", "AWST": "Australian Western Standard Time", "OEZ": "Eastern European Standard Time", "ADT": "Atlantic Daylight Time", "WIB": "Western Indonesia Time", "ART": "Argentina Standard Time", "HKST": "Hong Kong Summer Time", "MEZ": "Central European Standard Time", "JST": "Japan Standard Time", "ECT": "Ecuador Time", "GYT": "Guyana Time", "HKT": "Hong Kong Standard Time", "JDT": "Japan Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "AEDT": "Australian Eastern Daylight Time", "LHDT": "Lord Howe Daylight Time", "HNEG": "East Greenland Standard Time", "EAT": "East Africa Time", "WIT": "Eastern Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "TMT": "Turkmenistan Standard Time", "WAST": "West Africa Summer Time", "OESZ": "Eastern European Summer Time", "WART": "Western Argentina Standard Time", "SGT": "Singapore Standard Time", "AKDT": "Alaska Daylight Time", "SRT": "Suriname Time", "WESZ": "Western European Summer Time", "HNT": "Newfoundland Standard Time", "CHADT": "Chatham Daylight Time", "HECU": "Cuba Daylight Time", "AKST": "Alaska Standard Time", "BT": "Bhutan Time", "MESZ": "Central European Summer Time", "CHAST": "Chatham Standard Time", "CLST": "Chile Summer Time", "COST": "Colombia Summer Time", "CST": "Central Standard Time", "ACST": "Australian Central Standard Time", "HNCU": "Cuba Standard Time", "EDT": "Eastern Daylight Time", "UYST": "Uruguay Summer Time", "WEZ": "Western European Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "HNOG": "West Greenland Standard Time", "AEST": "Australian Eastern Standard Time", "AWDT": "Australian Western Daylight Time", "WITA": "Central Indonesia Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "GMT": "Greenwich Mean Time", "UYT": "Uruguay Standard Time", "CDT": "Central Daylight Time", "NZST": "New Zealand Standard Time", "MYT": "Malaysia Time", "NZDT": "New Zealand Daylight Time", "∅∅∅": "Amazon Summer Time", "TMST": "Turkmenistan Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "ARST": "Argentina Summer Time", "SAST": "South Africa Standard Time", "CLT": "Chile Standard Time", "ACDT": "Australian Central Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time"},
+ timezones: map[string]string{"ACDT": "Australian Central Daylight Time", "UYST": "Uruguay Summer Time", "ACWST": "Australian Central Western Standard Time", "ACST": "Australian Central Standard Time", "WIT": "Eastern Indonesia Time", "ARST": "Argentina Summer Time", "EDT": "Eastern Daylight Time", "NZDT": "New Zealand Daylight Time", "∅∅∅": "Amazon Summer Time", "WART": "Western Argentina Standard Time", "HNOG": "West Greenland Standard Time", "AST": "Atlantic Standard Time", "HNT": "Newfoundland Standard Time", "AEDT": "Australian Eastern Daylight Time", "UYT": "Uruguay Standard Time", "JST": "Japan Standard Time", "JDT": "Japan Daylight Time", "GYT": "Guyana Time", "ADT": "Atlantic Daylight Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "EAT": "East Africa Time", "VET": "Venezuela Time", "CLST": "Chile Summer Time", "HKST": "Hong Kong Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AWDT": "Australian Western Daylight Time", "CHAST": "Chatham Standard Time", "OEZ": "Eastern European Standard Time", "CLT": "Chile Standard Time", "HKT": "Hong Kong Standard Time", "AKDT": "Alaska Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "SGT": "Singapore Standard Time", "PST": "Pacific Standard Time", "PDT": "Pacific Daylight Time", "GFT": "French Guiana Time", "SAST": "South Africa Standard Time", "TMST": "Turkmenistan Summer Time", "COT": "Colombia Standard Time", "ChST": "Chamorro Standard Time", "AWST": "Australian Western Standard Time", "CHADT": "Chatham Daylight Time", "MYT": "Malaysia Time", "WITA": "Central Indonesia Time", "AEST": "Australian Eastern Standard Time", "BOT": "Bolivia Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWDT": "Australian Central Western Daylight Time", "SRT": "Suriname Time", "HNCU": "Cuba Standard Time", "WIB": "Western Indonesia Time", "HNEG": "East Greenland Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "EST": "Eastern Standard Time", "WESZ": "Western European Summer Time", "HEOG": "West Greenland Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HEEG": "East Greenland Summer Time", "BT": "Bhutan Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "WEZ": "Western European Standard Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "GMT": "Greenwich Mean Time", "WARST": "Western Argentina Summer Time", "MST": "Macau Standard Time", "HECU": "Cuba Daylight Time", "CAT": "Central Africa Time", "MEZ": "Central European Standard Time", "ART": "Argentina Standard Time", "MDT": "Macau Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HAT": "Newfoundland Daylight Time", "ECT": "Ecuador Time", "MESZ": "Central European Summer Time", "COST": "Colombia Summer Time", "AKST": "Alaska Standard Time", "NZST": "New Zealand Standard Time", "OESZ": "Eastern European Summer Time"},
}
}
diff --git a/en_IM/en_IM.go b/en_IM/en_IM.go
index ed00d31e..8efb9418 100644
--- a/en_IM/en_IM.go
+++ b/en_IM/en_IM.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HKST": "Hong Kong Summer Time", "CLST": "Chile Summer Time", "WART": "Western Argentina Standard Time", "WEZ": "Western European Standard Time", "ACWST": "Australian Central Western Standard Time", "ChST": "Chamorro Standard Time", "BOT": "Bolivia Time", "WARST": "Western Argentina Summer Time", "CST": "Central Standard Time", "AEST": "Australian Eastern Standard Time", "CHAST": "Chatham Standard Time", "WITA": "Central Indonesia Time", "CAT": "Central Africa Time", "ECT": "Ecuador Time", "HENOMX": "Northwest Mexico Daylight Time", "GMT": "Greenwich Mean Time", "UYT": "Uruguay Standard Time", "AST": "Atlantic Standard Time", "PDT": "Pacific Daylight Time", "WESZ": "Western European Summer Time", "AWST": "Australian Western Standard Time", "LHST": "Lord Howe Standard Time", "JDT": "Japan Daylight Time", "HEEG": "East Greenland Summer Time", "WAT": "West Africa Standard Time", "MESZ": "Central European Summer Time", "CHADT": "Chatham Daylight Time", "JST": "Japan Standard Time", "MYT": "Malaysia Time", "SRT": "Suriname Time", "HNT": "Newfoundland Standard Time", "HKT": "Hong Kong Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HAT": "Newfoundland Daylight Time", "IST": "India Standard Time", "TMST": "Turkmenistan Summer Time", "∅∅∅": "Peru Summer Time", "OESZ": "Eastern European Summer Time", "HECU": "Cuba Daylight Time", "ADT": "Atlantic Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "COT": "Colombia Standard Time", "VET": "Venezuela Time", "ARST": "Argentina Summer Time", "NZDT": "New Zealand Daylight Time", "SAST": "South Africa Standard Time", "WAST": "West Africa Summer Time", "OEZ": "Eastern European Standard Time", "MST": "Macau Standard Time", "BT": "Bhutan Time", "ART": "Argentina Standard Time", "TMT": "Turkmenistan Standard Time", "ACST": "Australian Central Standard Time", "EDT": "Eastern Daylight Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "WIT": "Eastern Indonesia Time", "MEZ": "Central European Standard Time", "HNCU": "Cuba Standard Time", "EST": "Eastern Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZST": "New Zealand Standard Time", "LHDT": "Lord Howe Daylight Time", "COST": "Colombia Summer Time", "UYST": "Uruguay Summer Time", "GYT": "Guyana Time", "PST": "Pacific Standard Time", "HEOG": "West Greenland Summer Time", "AWDT": "Australian Western Daylight Time", "EAT": "East Africa Time", "MDT": "Macau Summer Time", "HNPMX": "Mexican Pacific Standard Time", "CDT": "Central Daylight Time", "WIB": "Western Indonesia Time", "CLT": "Chile Standard Time", "ACDT": "Australian Central Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HNEG": "East Greenland Standard Time", "GFT": "French Guiana Time", "HEPMX": "Mexican Pacific Daylight Time", "HNOG": "West Greenland Standard Time"},
+ timezones: map[string]string{"COT": "Colombia Standard Time", "AST": "Atlantic Standard Time", "OESZ": "Eastern European Summer Time", "AEST": "Australian Eastern Standard Time", "HECU": "Cuba Daylight Time", "AWST": "Australian Western Standard Time", "IST": "India Standard Time", "TMT": "Turkmenistan Standard Time", "PST": "Pacific Standard Time", "HKST": "Hong Kong Summer Time", "CDT": "Central Daylight Time", "TMST": "Turkmenistan Summer Time", "HKT": "Hong Kong Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "UYT": "Uruguay Standard Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "MESZ": "Central European Summer Time", "WIT": "Eastern Indonesia Time", "WAST": "West Africa Summer Time", "ECT": "Ecuador Time", "JDT": "Japan Daylight Time", "MST": "Macau Standard Time", "WIB": "Western Indonesia Time", "HNCU": "Cuba Standard Time", "CHAST": "Chatham Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "ART": "Argentina Standard Time", "AEDT": "Australian Eastern Daylight Time", "CHADT": "Chatham Daylight Time", "WEZ": "Western European Standard Time", "CLST": "Chile Summer Time", "MDT": "Macau Summer Time", "ARST": "Argentina Summer Time", "COST": "Colombia Summer Time", "HNEG": "East Greenland Standard Time", "SAST": "South Africa Standard Time", "EAT": "East Africa Time", "NZST": "New Zealand Standard Time", "WESZ": "Western European Summer Time", "WITA": "Central Indonesia Time", "UYST": "Uruguay Summer Time", "∅∅∅": "Amazon Summer Time", "EDT": "Eastern Daylight Time", "CST": "Central Standard Time", "HNOG": "West Greenland Standard Time", "AKST": "Alaska Standard Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "WAT": "West Africa Standard Time", "ChST": "Chamorro Standard Time", "HNPMX": "Mexican Pacific Standard Time", "ACWST": "Australian Central Western Standard Time", "VET": "Venezuela Time", "BT": "Bhutan Time", "SRT": "Suriname Time", "GYT": "Guyana Time", "ACWDT": "Australian Central Western Daylight Time", "ADT": "Atlantic Daylight Time", "OEZ": "Eastern European Standard Time", "ACST": "Australian Central Standard Time", "HAT": "Newfoundland Daylight Time", "AKDT": "Alaska Daylight Time", "LHST": "Lord Howe Standard Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "JST": "Japan Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "PDT": "Pacific Daylight Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "MYT": "Malaysia Time", "ACDT": "Australian Central Daylight Time", "EST": "Eastern Standard Time", "HNT": "Newfoundland Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "AWDT": "Australian Western Daylight Time", "SGT": "Singapore Standard Time", "MEZ": "Central European Standard Time", "GMT": "Greenwich Mean Time", "HENOMX": "Northwest Mexico Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CLT": "Chile Standard Time", "HEOG": "West Greenland Summer Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_IM) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_IM) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
diff --git a/en_IN/en_IN.go b/en_IN/en_IN.go
index 474fa91f..1cb1de49 100644
--- a/en_IN/en_IN.go
+++ b/en_IN/en_IN.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HADT": "Hawaii-Aleutian Daylight Time", "LHST": "Lord Howe Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "GYT": "Guyana Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNEG": "East Greenland Standard Time", "WAST": "West Africa Summer Time", "CAT": "Central Africa Time", "WARST": "Western Argentina Summer Time", "UYT": "Uruguay Standard Time", "PST": "Pacific Standard Time", "MESZ": "Central European Summer Time", "PDT": "Pacific Daylight Time", "HKST": "Hong Kong Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "NZST": "New Zealand Standard Time", "AKST": "Alaska Standard Time", "ADT": "Atlantic Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "AWST": "Australian Western Standard Time", "CHADT": "Chatham Daylight Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "SAST": "South Africa Standard Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "∅∅∅": "Peru Summer Time", "HNOG": "West Greenland Standard Time", "JST": "Japan Standard Time", "WITA": "Central Indonesia Time", "IST": "India Standard Time", "CLT": "Chile Standard Time", "JDT": "Japan Daylight Time", "OESZ": "Eastern European Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AEDT": "Australian Eastern Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "GMT": "Greenwich Mean Time", "HAST": "Hawaii-Aleutian Standard Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "CDT": "Central Daylight Time", "AST": "Atlantic Standard Time", "ACWST": "Australian Central Western Standard Time", "HNT": "Newfoundland Standard Time", "CLST": "Chile Summer Time", "OEZ": "Eastern European Standard Time", "COST": "Colombia Summer Time", "EDT": "Eastern Daylight Time", "ChST": "Chamorro Standard Time", "AKDT": "Alaska Daylight Time", "MYT": "Malaysia Time", "VET": "Venezuela Time", "WEZ": "Western European Standard Time", "HEOG": "West Greenland Summer Time", "ACST": "Australian Central Standard Time", "HNCU": "Cuba Standard Time", "MDT": "Macau Summer Time", "TMT": "Turkmenistan Standard Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "HKT": "Hong Kong Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "SGT": "Singapore Standard Time", "WIB": "Western Indonesia Time", "HAT": "Newfoundland Daylight Time", "MEZ": "Central European Standard Time", "HEEG": "East Greenland Summer Time", "TMST": "Turkmenistan Summer Time", "EAT": "East Africa Time", "WAT": "West Africa Standard Time", "UYST": "Uruguay Summer Time", "MST": "Macau Standard Time", "EST": "Eastern Standard Time", "SRT": "Suriname Time", "BT": "Bhutan Time", "GFT": "French Guiana Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "HECU": "Cuba Daylight Time", "WART": "Western Argentina Standard Time", "WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time"},
+ timezones: map[string]string{"HNOG": "West Greenland Standard Time", "UYST": "Uruguay Summer Time", "AWST": "Australian Western Standard Time", "WEZ": "Western European Standard Time", "HNT": "Newfoundland Standard Time", "AEDT": "Australian Eastern Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "BOT": "Bolivia Time", "CHADT": "Chatham Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "ACST": "Australian Central Standard Time", "PST": "Pacific Standard Time", "CLT": "Chile Standard Time", "OEZ": "Eastern European Standard Time", "CHAST": "Chatham Standard Time", "CLST": "Chile Summer Time", "HAT": "Newfoundland Daylight Time", "MYT": "Malaysia Time", "EDT": "Eastern Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "OESZ": "Eastern European Summer Time", "WAT": "West Africa Standard Time", "HECU": "Cuba Daylight Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "SGT": "Singapore Standard Time", "ADT": "Atlantic Daylight Time", "ART": "Argentina Standard Time", "MST": "Mountain Standard Time", "AKDT": "Alaska Daylight Time", "WIT": "Eastern Indonesia Time", "AEST": "Australian Eastern Standard Time", "UYT": "Uruguay Standard Time", "MESZ": "Central European Summer Time", "ACDT": "Australian Central Daylight Time", "HEEG": "East Greenland Summer Time", "∅∅∅": "Acre Summer Time", "ACWST": "Australian Central Western Standard Time", "HEOG": "West Greenland Summer Time", "WITA": "Central Indonesia Time", "WIB": "Western Indonesia Time", "HNCU": "Cuba Standard Time", "CAT": "Central Africa Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "TMT": "Turkmenistan Standard Time", "GFT": "French Guiana Time", "IST": "India Standard Time", "WART": "Western Argentina Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ChST": "Chamorro Standard Time", "AST": "Atlantic Standard Time", "JST": "Japan Standard Time", "AKST": "Alaska Standard Time", "LHDT": "Lord Howe Daylight Time", "EAT": "East Africa Time", "ECT": "Ecuador Time", "MEZ": "Central European Standard Time", "HKT": "Hong Kong Standard Time", "HKST": "Hong Kong Summer Time", "WAST": "West Africa Summer Time", "HNEG": "East Greenland Standard Time", "GYT": "Guyana Time", "AWDT": "Australian Western Daylight Time", "TMST": "Turkmenistan Summer Time", "COST": "Colombia Summer Time", "SRT": "Suriname Time", "WARST": "Western Argentina Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "PDT": "Pacific Daylight Time", "NZDT": "New Zealand Daylight Time", "JDT": "Japan Daylight Time", "WESZ": "Western European Summer Time", "COT": "Colombia Standard Time", "BT": "Bhutan Time", "SAST": "South Africa Standard Time", "GMT": "Greenwich Mean Time", "ARST": "Argentina Summer Time", "EST": "Eastern Standard Time", "MDT": "Mountain Daylight Time", "NZST": "New Zealand Standard Time", "VET": "Venezuela Time"},
}
}
@@ -492,10 +492,10 @@ func (en *en_IN) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -532,13 +532,11 @@ func (en *en_IN) FmtTimeShort(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -546,13 +544,6 @@ func (en *en_IN) FmtTimeShort(t time.Time) string {
}
b = strconv.AppendInt(b, int64(t.Minute()), 10)
- b = append(b, []byte{0x20}...)
-
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
return string(b)
}
@@ -562,13 +553,11 @@ func (en *en_IN) FmtTimeMedium(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -583,13 +572,6 @@ func (en *en_IN) FmtTimeMedium(t time.Time) string {
}
b = strconv.AppendInt(b, int64(t.Second()), 10)
- b = append(b, []byte{0x20}...)
-
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
return string(b)
}
@@ -599,13 +581,11 @@ func (en *en_IN) FmtTimeLong(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -622,14 +602,6 @@ func (en *en_IN) FmtTimeLong(t time.Time) string {
b = strconv.AppendInt(b, int64(t.Second()), 10)
b = append(b, []byte{0x20}...)
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
-
- b = append(b, []byte{0x20}...)
-
tz, _ := t.Zone()
b = append(b, tz...)
@@ -641,13 +613,11 @@ func (en *en_IN) FmtTimeFull(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -664,14 +634,6 @@ func (en *en_IN) FmtTimeFull(t time.Time) string {
b = strconv.AppendInt(b, int64(t.Second()), 10)
b = append(b, []byte{0x20}...)
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
-
- b = append(b, []byte{0x20}...)
-
tz, _ := t.Zone()
if btz, ok := en.timezones[tz]; ok {
diff --git a/en_IO/en_IO.go b/en_IO/en_IO.go
index cb121eb6..5f524515 100644
--- a/en_IO/en_IO.go
+++ b/en_IO/en_IO.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"SRT": "Suriname Time", "SAST": "South Africa Standard Time", "CLT": "Chile Standard Time", "HEEG": "East Greenland Summer Time", "WESZ": "Western European Summer Time", "HAT": "Newfoundland Daylight Time", "HKT": "Hong Kong Standard Time", "TMST": "Turkmenistan Summer Time", "EST": "Eastern Standard Time", "WEZ": "Western European Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AEST": "Australian Eastern Standard Time", "HNEG": "East Greenland Standard Time", "EAT": "East Africa Time", "OESZ": "Eastern European Summer Time", "VET": "Venezuela Time", "HNOG": "West Greenland Standard Time", "HKST": "Hong Kong Summer Time", "CLST": "Chile Summer Time", "JST": "Japan Standard Time", "ChST": "Chamorro Standard Time", "AKDT": "Alaska Daylight Time", "WIT": "Eastern Indonesia Time", "ART": "Argentina Standard Time", "AEDT": "Australian Eastern Daylight Time", "IST": "India Standard Time", "JDT": "Japan Daylight Time", "WART": "Western Argentina Standard Time", "UYT": "Uruguay Standard Time", "PST": "Pacific Standard Time", "ACWST": "Australian Central Western Standard Time", "HNT": "Newfoundland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "BT": "Bhutan Time", "WITA": "Central Indonesia Time", "HECU": "Cuba Daylight Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "NZDT": "New Zealand Daylight Time", "CHADT": "Chatham Daylight Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "MST": "Macau Standard Time", "NZST": "New Zealand Standard Time", "∅∅∅": "Amazon Summer Time", "ACST": "Australian Central Standard Time", "GMT": "Greenwich Mean Time", "EDT": "Eastern Daylight Time", "CDT": "Central Daylight Time", "WIB": "Western Indonesia Time", "ARST": "Argentina Summer Time", "GYT": "Guyana Time", "UYST": "Uruguay Summer Time", "OEZ": "Eastern European Standard Time", "SGT": "Singapore Standard Time", "TMT": "Turkmenistan Standard Time", "ECT": "Ecuador Time", "COST": "Colombia Summer Time", "ADT": "Atlantic Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "AWST": "Australian Western Standard Time", "MESZ": "Central European Summer Time", "PDT": "Pacific Daylight Time", "CHAST": "Chatham Standard Time", "GFT": "French Guiana Time", "ACDT": "Australian Central Daylight Time", "WAST": "West Africa Summer Time", "WARST": "Western Argentina Summer Time", "MDT": "Macau Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "MYT": "Malaysia Time", "HEOG": "West Greenland Summer Time", "MEZ": "Central European Standard Time", "WAT": "West Africa Standard Time", "CST": "Central Standard Time", "AST": "Atlantic Standard Time", "HNCU": "Cuba Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AKST": "Alaska Standard Time"},
+ timezones: map[string]string{"ACST": "Australian Central Standard Time", "SRT": "Suriname Time", "SAST": "South Africa Standard Time", "WIB": "Western Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "HKST": "Hong Kong Summer Time", "NZST": "New Zealand Standard Time", "MESZ": "Central European Summer Time", "HNEG": "East Greenland Standard Time", "LHDT": "Lord Howe Daylight Time", "AWST": "Australian Western Standard Time", "CHADT": "Chatham Daylight Time", "SGT": "Singapore Standard Time", "ECT": "Ecuador Time", "AEDT": "Australian Eastern Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "EAT": "East Africa Time", "CST": "Central Standard Time", "CHAST": "Chatham Standard Time", "JDT": "Japan Daylight Time", "LHST": "Lord Howe Standard Time", "PST": "Pacific Standard Time", "CLST": "Chile Summer Time", "OEZ": "Eastern European Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CDT": "Central Daylight Time", "BOT": "Bolivia Time", "PDT": "Pacific Daylight Time", "ARST": "Argentina Summer Time", "ART": "Argentina Standard Time", "HKT": "Hong Kong Standard Time", "EST": "Eastern Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AKST": "Alaska Standard Time", "GYT": "Guyana Time", "TMST": "Turkmenistan Summer Time", "ACDT": "Australian Central Daylight Time", "COT": "Colombia Standard Time", "MDT": "Macau Summer Time", "HAT": "Newfoundland Daylight Time", "HECU": "Cuba Daylight Time", "WIT": "Eastern Indonesia Time", "ACWST": "Australian Central Western Standard Time", "GMT": "Greenwich Mean Time", "ADT": "Atlantic Daylight Time", "WART": "Western Argentina Standard Time", "AST": "Atlantic Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "UYT": "Uruguay Standard Time", "∅∅∅": "Azores Summer Time", "NZDT": "New Zealand Daylight Time", "MEZ": "Central European Standard Time", "WEZ": "Western European Standard Time", "AEST": "Australian Eastern Standard Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AWDT": "Australian Western Daylight Time", "CAT": "Central Africa Time", "HNOG": "West Greenland Standard Time", "WAT": "West Africa Standard Time", "ACWDT": "Australian Central Western Daylight Time", "MYT": "Malaysia Time", "BT": "Bhutan Time", "AKDT": "Alaska Daylight Time", "EDT": "Eastern Daylight Time", "HNCU": "Cuba Standard Time", "VET": "Venezuela Time", "HEOG": "West Greenland Summer Time", "OESZ": "Eastern European Summer Time", "TMT": "Turkmenistan Standard Time", "HNT": "Newfoundland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "ChST": "Chamorro Standard Time", "UYST": "Uruguay Summer Time", "JST": "Japan Standard Time", "HEEG": "East Greenland Summer Time", "WAST": "West Africa Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "IST": "India Standard Time", "WESZ": "Western European Summer Time", "WARST": "Western Argentina Summer Time", "MST": "Macau Standard Time", "CLT": "Chile Standard Time", "GFT": "French Guiana Time", "WITA": "Central Indonesia Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_IO) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_IO) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
diff --git a/en_JE/en_JE.go b/en_JE/en_JE.go
index 59240a3b..faf37c05 100644
--- a/en_JE/en_JE.go
+++ b/en_JE/en_JE.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"BOT": "Bolivia Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "SRT": "Suriname Time", "AEST": "Australian Eastern Standard Time", "LHST": "Lord Howe Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZST": "New Zealand Standard Time", "CHAST": "Chatham Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "WESZ": "Western European Summer Time", "AEDT": "Australian Eastern Daylight Time", "ART": "Argentina Standard Time", "ACST": "Australian Central Standard Time", "WAT": "West Africa Standard Time", "COST": "Colombia Summer Time", "GMT": "Greenwich Mean Time", "AKST": "Alaska Standard Time", "MYT": "Malaysia Time", "WITA": "Central Indonesia Time", "JDT": "Japan Daylight Time", "ACDT": "Australian Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "CDT": "Central Daylight Time", "VET": "Venezuela Time", "ACWDT": "Australian Central Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "BT": "Bhutan Time", "HEOG": "West Greenland Summer Time", "PST": "Pacific Standard Time", "HNPMX": "Mexican Pacific Standard Time", "ADT": "Atlantic Daylight Time", "PDT": "Pacific Daylight Time", "NZDT": "New Zealand Daylight Time", "HKST": "Hong Kong Summer Time", "AWST": "Australian Western Standard Time", "HEEG": "East Greenland Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "UYT": "Uruguay Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "WEZ": "Western European Standard Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "OEZ": "Eastern European Standard Time", "CHADT": "Chatham Daylight Time", "MEZ": "Central European Standard Time", "HNEG": "East Greenland Standard Time", "HKT": "Hong Kong Standard Time", "∅∅∅": "Amazon Summer Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "EST": "Eastern Standard Time", "GYT": "Guyana Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWST": "Australian Central Western Standard Time", "MST": "Mountain Standard Time", "HNOG": "West Greenland Standard Time", "OESZ": "Eastern European Summer Time", "HECU": "Cuba Daylight Time", "SGT": "Singapore Standard Time", "MDT": "Mountain Daylight Time", "SAST": "South Africa Standard Time", "GFT": "French Guiana Time", "ARST": "Argentina Summer Time", "MESZ": "Central European Summer Time", "JST": "Japan Standard Time", "CLT": "Chile Standard Time", "ChST": "Chamorro Standard Time", "EDT": "Eastern Daylight Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "AWDT": "Australian Western Daylight Time", "HAT": "Newfoundland Daylight Time", "ECT": "Ecuador Time", "HNCU": "Cuba Standard Time", "AST": "Atlantic Standard Time", "UYST": "Uruguay Summer Time", "HNT": "Newfoundland Standard Time", "WAST": "West Africa Summer Time", "EAT": "East Africa Time", "AKDT": "Alaska Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CLST": "Chile Summer Time"},
+ timezones: map[string]string{"AEST": "Australian Eastern Standard Time", "SAST": "South Africa Standard Time", "ACWDT": "Australian Central Western Daylight Time", "TMST": "Turkmenistan Summer Time", "EST": "Eastern Standard Time", "CHAST": "Chatham Standard Time", "PST": "Pacific Standard Time", "JST": "Japan Standard Time", "ACDT": "Australian Central Daylight Time", "WITA": "Central Indonesia Time", "UYT": "Uruguay Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HECU": "Cuba Daylight Time", "WART": "Western Argentina Standard Time", "HNOG": "West Greenland Standard Time", "TMT": "Turkmenistan Standard Time", "MYT": "Malaysia Time", "MDT": "Mountain Daylight Time", "LHDT": "Lord Howe Daylight Time", "WIB": "Western Indonesia Time", "ACWST": "Australian Central Western Standard Time", "OESZ": "Eastern European Summer Time", "COT": "Colombia Standard Time", "HNEG": "East Greenland Standard Time", "HNCU": "Cuba Standard Time", "PDT": "Pacific Daylight Time", "EDT": "Eastern Daylight Time", "SGT": "Singapore Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "WAT": "West Africa Standard Time", "IST": "India Standard Time", "EAT": "East Africa Time", "WEZ": "Western European Standard Time", "WESZ": "Western European Summer Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "BT": "Bhutan Time", "AKDT": "Alaska Daylight Time", "AWDT": "Australian Western Daylight Time", "OEZ": "Eastern European Standard Time", "HKT": "Hong Kong Standard Time", "HAT": "Newfoundland Daylight Time", "AEDT": "Australian Eastern Daylight Time", "MST": "Mountain Standard Time", "WIT": "Eastern Indonesia Time", "CST": "Central Standard Time", "ART": "Argentina Standard Time", "WAST": "West Africa Summer Time", "ACST": "Australian Central Standard Time", "∅∅∅": "Acre Summer Time", "AKST": "Alaska Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "MESZ": "Central European Summer Time", "HKST": "Hong Kong Summer Time", "COST": "Colombia Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ECT": "Ecuador Time", "WARST": "Western Argentina Summer Time", "GMT": "Greenwich Mean Time", "HEOG": "West Greenland Summer Time", "LHST": "Lord Howe Standard Time", "AWST": "Australian Western Standard Time", "CHADT": "Chatham Daylight Time", "VET": "Venezuela Time", "MEZ": "Central European Standard Time", "SRT": "Suriname Time", "NZST": "New Zealand Standard Time", "CAT": "Central Africa Time", "JDT": "Japan Daylight Time", "AST": "Atlantic Standard Time", "HEEG": "East Greenland Summer Time", "ChST": "Chamorro Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "BOT": "Bolivia Time", "NZDT": "New Zealand Daylight Time", "ADT": "Atlantic Daylight Time", "ARST": "Argentina Summer Time", "HNT": "Newfoundland Standard Time", "GFT": "French Guiana Time", "UYST": "Uruguay Summer Time", "HNPMX": "Mexican Pacific Standard Time", "CDT": "Central Daylight Time"},
}
}
diff --git a/en_JM/en_JM.go b/en_JM/en_JM.go
index 93cac37c..57b05a97 100644
--- a/en_JM/en_JM.go
+++ b/en_JM/en_JM.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"BT": "Bhutan Time", "MEZ": "Central European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "WIT": "Eastern Indonesia Time", "PST": "Pacific Standard Time", "IST": "India Standard Time", "ACST": "Australian Central Standard Time", "HECU": "Cuba Daylight Time", "SRT": "Suriname Time", "ECT": "Ecuador Time", "EAT": "East Africa Time", "WART": "Western Argentina Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "PDT": "Pacific Daylight Time", "SAST": "South Africa Standard Time", "JST": "Japan Standard Time", "AKDT": "Alaska Daylight Time", "HKST": "Hong Kong Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHDT": "Lord Howe Daylight Time", "ChST": "Chamorro Standard Time", "WIB": "Western Indonesia Time", "ACWST": "Australian Central Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "ART": "Argentina Standard Time", "EDT": "Eastern Daylight Time", "AST": "Atlantic Standard Time", "VET": "Venezuela Time", "WAST": "West Africa Summer Time", "HNCU": "Cuba Standard Time", "CDT": "Central Daylight Time", "WEZ": "Western European Standard Time", "TMT": "Turkmenistan Standard Time", "SGT": "Singapore Standard Time", "MST": "Macau Standard Time", "HEOG": "West Greenland Summer Time", "WITA": "Central Indonesia Time", "CHAST": "Chatham Standard Time", "HEEG": "East Greenland Summer Time", "OEZ": "Eastern European Standard Time", "WARST": "Western Argentina Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "HNOG": "West Greenland Standard Time", "WESZ": "Western European Summer Time", "AEDT": "Australian Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "COT": "Colombia Standard Time", "AWST": "Australian Western Standard Time", "AWDT": "Australian Western Daylight Time", "CHADT": "Chatham Daylight Time", "CLST": "Chile Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "EST": "Eastern Standard Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "MYT": "Malaysia Time", "JDT": "Japan Daylight Time", "TMST": "Turkmenistan Summer Time", "COST": "Colombia Summer Time", "AKST": "Alaska Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "ARST": "Argentina Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZST": "New Zealand Standard Time", "CLT": "Chile Standard Time", "GFT": "French Guiana Time", "GMT": "Greenwich Mean Time", "OESZ": "Eastern European Summer Time", "ACDT": "Australian Central Daylight Time", "UYT": "Uruguay Standard Time", "HNT": "Newfoundland Standard Time", "AEST": "Australian Eastern Standard Time", "BOT": "Bolivia Time", "ADT": "Atlantic Daylight Time", "CAT": "Central Africa Time", "WAT": "West Africa Standard Time", "UYST": "Uruguay Summer Time", "CST": "Central Standard Time", "HAT": "Newfoundland Daylight Time", "HKT": "Hong Kong Standard Time", "MESZ": "Central European Summer Time", "NZDT": "New Zealand Daylight Time", "HNEG": "East Greenland Standard Time", "∅∅∅": "Azores Summer Time"},
+ timezones: map[string]string{"CHAST": "Chatham Standard Time", "COT": "Colombia Standard Time", "WIB": "Western Indonesia Time", "SGT": "Singapore Standard Time", "NZST": "New Zealand Standard Time", "EDT": "Eastern Daylight Time", "COST": "Colombia Summer Time", "BT": "Bhutan Time", "HNPMX": "Mexican Pacific Standard Time", "HNEG": "East Greenland Standard Time", "AEDT": "Australian Eastern Daylight Time", "AWDT": "Australian Western Daylight Time", "PDT": "Pacific Daylight Time", "ACWST": "Australian Central Western Standard Time", "NZDT": "New Zealand Daylight Time", "ACST": "Australian Central Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "EAT": "East Africa Time", "HNCU": "Cuba Standard Time", "CST": "Central Standard Time", "ACWDT": "Australian Central Western Daylight Time", "OESZ": "Eastern European Summer Time", "GMT": "Greenwich Mean Time", "HENOMX": "Northwest Mexico Daylight Time", "HNT": "Newfoundland Standard Time", "MEZ": "Central European Standard Time", "JST": "Japan Standard Time", "ADT": "Atlantic Daylight Time", "WITA": "Central Indonesia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "VET": "Venezuela Time", "MYT": "Malaysia Time", "CLT": "Chile Standard Time", "HAT": "Newfoundland Daylight Time", "ChST": "Chamorro Standard Time", "CHADT": "Chatham Daylight Time", "JDT": "Japan Daylight Time", "OEZ": "Eastern European Standard Time", "WAST": "West Africa Summer Time", "BOT": "Bolivia Time", "CLST": "Chile Summer Time", "HNOG": "West Greenland Standard Time", "WEZ": "Western European Standard Time", "TMST": "Turkmenistan Summer Time", "AKDT": "Alaska Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "WIT": "Eastern Indonesia Time", "IST": "India Standard Time", "AST": "Atlantic Standard Time", "HKST": "Hong Kong Summer Time", "AKST": "Alaska Standard Time", "UYT": "Uruguay Standard Time", "PST": "Pacific Standard Time", "MESZ": "Central European Summer Time", "MST": "Macau Standard Time", "SRT": "Suriname Time", "UYST": "Uruguay Summer Time", "HECU": "Cuba Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "CAT": "Central Africa Time", "WESZ": "Western European Summer Time", "TMT": "Turkmenistan Standard Time", "ARST": "Argentina Summer Time", "AEST": "Australian Eastern Standard Time", "CDT": "Central Daylight Time", "MDT": "Macau Summer Time", "HKT": "Hong Kong Standard Time", "GFT": "French Guiana Time", "HNPM": "St. Pierre & Miquelon Standard Time", "ART": "Argentina Standard Time", "ACDT": "Australian Central Daylight Time", "WART": "Western Argentina Standard Time", "HEOG": "West Greenland Summer Time", "EST": "Eastern Standard Time", "SAST": "South Africa Standard Time", "LHDT": "Lord Howe Daylight Time", "AWST": "Australian Western Standard Time", "ECT": "Ecuador Time", "∅∅∅": "Brasilia Summer Time", "WARST": "Western Argentina Summer Time", "WAT": "West Africa Standard Time", "HEEG": "East Greenland Summer Time"},
}
}
@@ -424,10 +424,10 @@ func (en *en_JM) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +443,10 @@ func (en *en_JM) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +464,10 @@ func (en *en_JM) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_KE/en_KE.go b/en_KE/en_KE.go
index 527124ce..b4585dc4 100644
--- a/en_KE/en_KE.go
+++ b/en_KE/en_KE.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"GYT": "Guyana Time", "MYT": "Malaysia Time", "AKDT": "Alaska Daylight Time", "AST": "Atlantic Standard Time", "WESZ": "Western European Summer Time", "HNT": "Newfoundland Standard Time", "NZST": "New Zealand Standard Time", "HNEG": "East Greenland Standard Time", "HNPMX": "Mexican Pacific Standard Time", "ACST": "Australian Central Standard Time", "EAT": "East Africa Time", "OESZ": "Eastern European Summer Time", "ADT": "Atlantic Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "LHDT": "Lord Howe Daylight Time", "∅∅∅": "Amazon Summer Time", "GFT": "French Guiana Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "CLST": "Chile Summer Time", "TMST": "Turkmenistan Summer Time", "PST": "Pacific Standard Time", "CHADT": "Chatham Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "SRT": "Suriname Time", "TMT": "Turkmenistan Standard Time", "HNCU": "Cuba Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "AKST": "Alaska Standard Time", "CDT": "Central Daylight Time", "JST": "Japan Standard Time", "HEEG": "East Greenland Summer Time", "MEZ": "Central European Standard Time", "ACWST": "Australian Central Western Standard Time", "AEST": "Australian Eastern Standard Time", "HNOG": "West Greenland Standard Time", "AWST": "Australian Western Standard Time", "CST": "Central Standard Time", "ART": "Argentina Standard Time", "EDT": "Eastern Daylight Time", "HKT": "Hong Kong Standard Time", "MESZ": "Central European Summer Time", "BOT": "Bolivia Time", "WARST": "Western Argentina Summer Time", "UYST": "Uruguay Summer Time", "HAT": "Newfoundland Daylight Time", "IST": "India Standard Time", "SAST": "South Africa Standard Time", "CLT": "Chile Standard Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "PDT": "Pacific Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZDT": "New Zealand Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "HECU": "Cuba Daylight Time", "OEZ": "Eastern European Standard Time", "WIT": "Eastern Indonesia Time", "UYT": "Uruguay Standard Time", "WEZ": "Western European Standard Time", "ACWDT": "Australian Central Western Daylight Time", "ARST": "Argentina Summer Time", "JDT": "Japan Daylight Time", "COT": "Colombia Standard Time", "CAT": "Central Africa Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "HEOG": "West Greenland Summer Time", "ChST": "Chamorro Standard Time", "ACDT": "Australian Central Daylight Time", "VET": "Venezuela Time", "AEDT": "Australian Eastern Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "WART": "Western Argentina Standard Time", "SGT": "Singapore Standard Time", "GMT": "Greenwich Mean Time", "HKST": "Hong Kong Summer Time", "WITA": "Central Indonesia Time", "CHAST": "Chatham Standard Time", "ECT": "Ecuador Time", "HNNOMX": "Northwest Mexico Standard Time"},
+ timezones: map[string]string{"AKST": "Alaska Standard Time", "CST": "Central Standard Time", "ACWST": "Australian Central Western Standard Time", "HNOG": "West Greenland Standard Time", "AST": "Atlantic Standard Time", "ART": "Argentina Standard Time", "WART": "Western Argentina Standard Time", "PDT": "Pacific Daylight Time", "IST": "India Standard Time", "NZST": "New Zealand Standard Time", "CLST": "Chile Summer Time", "GYT": "Guyana Time", "VET": "Venezuela Time", "HKST": "Hong Kong Summer Time", "WITA": "Central Indonesia Time", "UYT": "Uruguay Standard Time", "MST": "Macau Standard Time", "ChST": "Chamorro Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HECU": "Cuba Daylight Time", "PST": "Pacific Standard Time", "JST": "Japan Standard Time", "CLT": "Chile Standard Time", "HNEG": "East Greenland Standard Time", "SRT": "Suriname Time", "BOT": "Bolivia Time", "WEZ": "Western European Standard Time", "MDT": "Macau Summer Time", "COST": "Colombia Summer Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "AWDT": "Australian Western Daylight Time", "MEZ": "Central European Standard Time", "JDT": "Japan Daylight Time", "ARST": "Argentina Summer Time", "EAT": "East Africa Time", "EDT": "Eastern Daylight Time", "HKT": "Hong Kong Standard Time", "ACST": "Australian Central Standard Time", "BT": "Bhutan Time", "HEOG": "West Greenland Summer Time", "MYT": "Malaysia Time", "TMST": "Turkmenistan Summer Time", "WAT": "West Africa Standard Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "MESZ": "Central European Summer Time", "AEDT": "Australian Eastern Daylight Time", "CHADT": "Chatham Daylight Time", "WARST": "Western Argentina Summer Time", "TMT": "Turkmenistan Standard Time", "ACDT": "Australian Central Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "GFT": "French Guiana Time", "AKDT": "Alaska Daylight Time", "CHAST": "Chatham Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "NZDT": "New Zealand Daylight Time", "ADT": "Atlantic Daylight Time", "HNCU": "Cuba Standard Time", "CDT": "Central Daylight Time", "SGT": "Singapore Standard Time", "∅∅∅": "Amazon Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "AWST": "Australian Western Standard Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HEEG": "East Greenland Summer Time", "UYST": "Uruguay Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SAST": "South Africa Standard Time", "ECT": "Ecuador Time", "GMT": "Greenwich Mean Time", "EST": "Eastern Standard Time", "COT": "Colombia Standard Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "CAT": "Central Africa Time", "WESZ": "Western European Summer Time", "ACWDT": "Australian Central Western Daylight Time", "WAST": "West Africa Summer Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_KE) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_KE) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod100 := math.Mod(n, 100)
nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
@@ -405,15 +405,25 @@ func (en *en_KE) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_KE) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_KE) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_KE) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_KI/en_KI.go b/en_KI/en_KI.go
index 92a724ba..66c2774f 100644
--- a/en_KI/en_KI.go
+++ b/en_KI/en_KI.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"GFT": "French Guiana Time", "CAT": "Central Africa Time", "AWDT": "Australian Western Daylight Time", "EDT": "Eastern Daylight Time", "SGT": "Singapore Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNT": "Newfoundland Standard Time", "WITA": "Central Indonesia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MEZ": "Central European Standard Time", "WAT": "West Africa Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "VET": "Venezuela Time", "HNOG": "West Greenland Standard Time", "UYT": "Uruguay Standard Time", "CDT": "Central Daylight Time", "SRT": "Suriname Time", "CHADT": "Chatham Daylight Time", "ART": "Argentina Standard Time", "CLST": "Chile Summer Time", "TMST": "Turkmenistan Summer Time", "ACDT": "Australian Central Daylight Time", "WAST": "West Africa Summer Time", "EST": "Eastern Standard Time", "WIB": "Western Indonesia Time", "HEOG": "West Greenland Summer Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "MDT": "Macau Summer Time", "AST": "Atlantic Standard Time", "AEDT": "Australian Eastern Daylight Time", "HKST": "Hong Kong Summer Time", "BT": "Bhutan Time", "CST": "Central Standard Time", "PDT": "Pacific Daylight Time", "HAT": "Newfoundland Daylight Time", "SAST": "South Africa Standard Time", "ACST": "Australian Central Standard Time", "HECU": "Cuba Daylight Time", "MST": "Macau Standard Time", "MYT": "Malaysia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "IST": "India Standard Time", "JST": "Japan Standard Time", "HNEG": "East Greenland Standard Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "HNCU": "Cuba Standard Time", "OESZ": "Eastern European Summer Time", "ACWST": "Australian Central Western Standard Time", "HKT": "Hong Kong Standard Time", "MESZ": "Central European Summer Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "AKST": "Alaska Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "PST": "Pacific Standard Time", "∅∅∅": "Amazon Summer Time", "TMT": "Turkmenistan Standard Time", "EAT": "East Africa Time", "WART": "Western Argentina Standard Time", "WESZ": "Western European Summer Time", "ACWDT": "Australian Central Western Daylight Time", "AWST": "Australian Western Standard Time", "LHDT": "Lord Howe Daylight Time", "ChST": "Chamorro Standard Time", "BOT": "Bolivia Time", "AKDT": "Alaska Daylight Time", "UYST": "Uruguay Summer Time", "WIT": "Eastern Indonesia Time", "ARST": "Argentina Summer Time", "JDT": "Japan Daylight Time", "CLT": "Chile Standard Time", "HEEG": "East Greenland Summer Time", "WARST": "Western Argentina Summer Time", "ADT": "Atlantic Daylight Time", "WEZ": "Western European Standard Time", "AEST": "Australian Eastern Standard Time", "COST": "Colombia Summer Time", "HNNOMX": "Northwest Mexico Standard Time"},
+ timezones: map[string]string{"HEPM": "St. Pierre & Miquelon Daylight Time", "SGT": "Singapore Standard Time", "PST": "Pacific Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "JDT": "Japan Daylight Time", "OESZ": "Eastern European Summer Time", "COST": "Colombia Summer Time", "HAT": "Newfoundland Daylight Time", "JST": "Japan Standard Time", "PDT": "Pacific Daylight Time", "EAT": "East Africa Time", "HNCU": "Cuba Standard Time", "WIT": "Eastern Indonesia Time", "AKST": "Alaska Standard Time", "WIB": "Western Indonesia Time", "AWDT": "Australian Western Daylight Time", "WEZ": "Western European Standard Time", "TMT": "Turkmenistan Standard Time", "AKDT": "Alaska Daylight Time", "AWST": "Australian Western Standard Time", "MESZ": "Central European Summer Time", "VET": "Venezuela Time", "WART": "Western Argentina Standard Time", "ADT": "Atlantic Daylight Time", "WESZ": "Western European Summer Time", "WAT": "West Africa Standard Time", "ChST": "Chamorro Standard Time", "AEDT": "Australian Eastern Daylight Time", "HNOG": "West Greenland Standard Time", "AEST": "Australian Eastern Standard Time", "MEZ": "Central European Standard Time", "AST": "Atlantic Standard Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "NZDT": "New Zealand Daylight Time", "CLST": "Chile Summer Time", "ART": "Argentina Standard Time", "EST": "Eastern Standard Time", "ACST": "Australian Central Standard Time", "BOT": "Bolivia Time", "HAST": "Hawaii-Aleutian Standard Time", "COT": "Colombia Standard Time", "CDT": "Central Daylight Time", "HEOG": "West Greenland Summer Time", "WAST": "West Africa Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "CLT": "Chile Standard Time", "∅∅∅": "Acre Summer Time", "MDT": "Mountain Daylight Time", "SAST": "South Africa Standard Time", "CAT": "Central Africa Time", "ACWDT": "Australian Central Western Daylight Time", "EDT": "Eastern Daylight Time", "BT": "Bhutan Time", "SRT": "Suriname Time", "HECU": "Cuba Daylight Time", "OEZ": "Eastern European Standard Time", "HKST": "Hong Kong Summer Time", "HNPMX": "Mexican Pacific Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHST": "Lord Howe Standard Time", "ECT": "Ecuador Time", "TMST": "Turkmenistan Summer Time", "ARST": "Argentina Summer Time", "ACDT": "Australian Central Daylight Time", "HNEG": "East Greenland Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "CHADT": "Chatham Daylight Time", "WITA": "Central Indonesia Time", "HEEG": "East Greenland Summer Time", "UYST": "Uruguay Summer Time", "CST": "Central Standard Time", "MYT": "Malaysia Time", "WARST": "Western Argentina Summer Time", "GMT": "Greenwich Mean Time", "HENOMX": "Northwest Mexico Daylight Time", "HNT": "Newfoundland Standard Time", "GFT": "French Guiana Time", "UYT": "Uruguay Standard Time", "CHAST": "Chatham Standard Time", "ACWST": "Australian Central Western Standard Time", "NZST": "New Zealand Standard Time", "HKT": "Hong Kong Standard Time", "MST": "Mountain Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_KI) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_KI) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_KI) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_KI) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_KN/en_KN.go b/en_KN/en_KN.go
index 1c40820f..830135a4 100644
--- a/en_KN/en_KN.go
+++ b/en_KN/en_KN.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"CDT": "Central Daylight Time", "LHDT": "Lord Howe Daylight Time", "TMT": "Turkmenistan Standard Time", "AKST": "Alaska Standard Time", "CST": "Central Standard Time", "AEDT": "Australian Eastern Daylight Time", "CLST": "Chile Summer Time", "HNEG": "East Greenland Standard Time", "SGT": "Singapore Standard Time", "AKDT": "Alaska Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "HAT": "Newfoundland Daylight Time", "HEOG": "West Greenland Summer Time", "GYT": "Guyana Time", "HEEG": "East Greenland Summer Time", "ACDT": "Australian Central Daylight Time", "PDT": "Pacific Daylight Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "BOT": "Bolivia Time", "EST": "Eastern Standard Time", "ADT": "Atlantic Daylight Time", "MST": "Mountain Standard Time", "MDT": "Mountain Daylight Time", "LHST": "Lord Howe Standard Time", "AWDT": "Australian Western Daylight Time", "MEZ": "Central European Standard Time", "ACST": "Australian Central Standard Time", "HKT": "Hong Kong Standard Time", "AWST": "Australian Western Standard Time", "OEZ": "Eastern European Standard Time", "ECT": "Ecuador Time", "GMT": "Greenwich Mean Time", "HAST": "Hawaii-Aleutian Standard Time", "WITA": "Central Indonesia Time", "AEST": "Australian Eastern Standard Time", "EDT": "Eastern Daylight Time", "MYT": "Malaysia Time", "ART": "Argentina Standard Time", "CHADT": "Chatham Daylight Time", "MESZ": "Central European Summer Time", "HNOG": "West Greenland Standard Time", "JST": "Japan Standard Time", "WAST": "West Africa Summer Time", "OESZ": "Eastern European Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "WIB": "Western Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "BT": "Bhutan Time", "WESZ": "Western European Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CLT": "Chile Standard Time", "GFT": "French Guiana Time", "ChST": "Chamorro Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "WART": "Western Argentina Standard Time", "WIT": "Eastern Indonesia Time", "HKST": "Hong Kong Summer Time", "CHAST": "Chatham Standard Time", "WARST": "Western Argentina Summer Time", "COT": "Colombia Standard Time", "HNCU": "Cuba Standard Time", "NZST": "New Zealand Standard Time", "SAST": "South Africa Standard Time", "WAT": "West Africa Standard Time", "AST": "Atlantic Standard Time", "UYT": "Uruguay Standard Time", "SRT": "Suriname Time", "HNT": "Newfoundland Standard Time", "WEZ": "Western European Standard Time", "UYST": "Uruguay Summer Time", "∅∅∅": "Amazon Summer Time", "JDT": "Japan Daylight Time", "COST": "Colombia Summer Time", "VET": "Venezuela Time", "ACWST": "Australian Central Western Standard Time", "ARST": "Argentina Summer Time", "HNPMX": "Mexican Pacific Standard Time", "PST": "Pacific Standard Time", "CAT": "Central Africa Time", "HECU": "Cuba Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "TMST": "Turkmenistan Summer Time", "EAT": "East Africa Time"},
+ timezones: map[string]string{"BOT": "Bolivia Time", "ECT": "Ecuador Time", "ACWDT": "Australian Central Western Daylight Time", "JDT": "Japan Daylight Time", "WITA": "Central Indonesia Time", "WIT": "Eastern Indonesia Time", "MST": "Macau Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "UYST": "Uruguay Summer Time", "HNCU": "Cuba Standard Time", "MESZ": "Central European Summer Time", "CAT": "Central Africa Time", "WARST": "Western Argentina Summer Time", "OESZ": "Eastern European Summer Time", "HKST": "Hong Kong Summer Time", "AEDT": "Australian Eastern Daylight Time", "CDT": "Central Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HNOG": "West Greenland Standard Time", "OEZ": "Eastern European Standard Time", "WAST": "West Africa Summer Time", "BT": "Bhutan Time", "AWDT": "Australian Western Daylight Time", "PDT": "Pacific Daylight Time", "ACST": "Australian Central Standard Time", "AKST": "Alaska Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SRT": "Suriname Time", "CST": "Central Standard Time", "CHAST": "Chatham Standard Time", "NZST": "New Zealand Standard Time", "WART": "Western Argentina Standard Time", "COST": "Colombia Summer Time", "ACWST": "Australian Central Western Standard Time", "TMT": "Turkmenistan Standard Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "UYT": "Uruguay Standard Time", "LHST": "Lord Howe Standard Time", "∅∅∅": "Brasilia Summer Time", "MEZ": "Central European Standard Time", "MYT": "Malaysia Time", "ADT": "Atlantic Daylight Time", "ART": "Argentina Standard Time", "EDT": "Eastern Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "IST": "India Standard Time", "MDT": "Macau Summer Time", "HNT": "Newfoundland Standard Time", "HNEG": "East Greenland Standard Time", "SAST": "South Africa Standard Time", "GYT": "Guyana Time", "AWST": "Australian Western Standard Time", "SGT": "Singapore Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "ARST": "Argentina Summer Time", "WAT": "West Africa Standard Time", "GFT": "French Guiana Time", "CHADT": "Chatham Daylight Time", "JST": "Japan Standard Time", "HKT": "Hong Kong Standard Time", "ChST": "Chamorro Standard Time", "NZDT": "New Zealand Daylight Time", "CLST": "Chile Summer Time", "WESZ": "Western European Summer Time", "GMT": "Greenwich Mean Time", "TMST": "Turkmenistan Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CLT": "Chile Standard Time", "HEOG": "West Greenland Summer Time", "AST": "Atlantic Standard Time", "WEZ": "Western European Standard Time", "ACDT": "Australian Central Daylight Time", "HEEG": "East Greenland Summer Time", "AKDT": "Alaska Daylight Time", "HECU": "Cuba Daylight Time", "WIB": "Western Indonesia Time", "PST": "Pacific Standard Time", "VET": "Venezuela Time", "EST": "Eastern Standard Time", "COT": "Colombia Standard Time", "LHDT": "Lord Howe Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "EAT": "East Africa Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_KN) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_KN) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_KN) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_KN) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_KY/en_KY.go b/en_KY/en_KY.go
index 929a7a13..90d3327e 100644
--- a/en_KY/en_KY.go
+++ b/en_KY/en_KY.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"WESZ": "Western European Summer Time", "GFT": "French Guiana Time", "WART": "Western Argentina Standard Time", "SGT": "Singapore Standard Time", "HNPMX": "Mexican Pacific Standard Time", "PDT": "Pacific Daylight Time", "AEST": "Australian Eastern Standard Time", "CLST": "Chile Summer Time", "HKST": "Hong Kong Summer Time", "∅∅∅": "Amazon Summer Time", "EDT": "Eastern Daylight Time", "AKDT": "Alaska Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWST": "Australian Central Western Standard Time", "HNT": "Newfoundland Standard Time", "JDT": "Japan Daylight Time", "WAT": "West Africa Standard Time", "ACWDT": "Australian Central Western Daylight Time", "MESZ": "Central European Summer Time", "NZDT": "New Zealand Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "IST": "India Standard Time", "JST": "Japan Standard Time", "WAST": "West Africa Summer Time", "GMT": "Greenwich Mean Time", "MST": "Mountain Standard Time", "VET": "Venezuela Time", "HNPM": "St. Pierre & Miquelon Standard Time", "ADT": "Atlantic Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "AWDT": "Australian Western Daylight Time", "HKT": "Hong Kong Standard Time", "HNEG": "East Greenland Standard Time", "OESZ": "Eastern European Summer Time", "MYT": "Malaysia Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "HAT": "Newfoundland Daylight Time", "AST": "Atlantic Standard Time", "PST": "Pacific Standard Time", "ARST": "Argentina Summer Time", "EAT": "East Africa Time", "CHAST": "Chatham Standard Time", "ChST": "Chamorro Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "UYT": "Uruguay Standard Time", "SRT": "Suriname Time", "WITA": "Central Indonesia Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "UYST": "Uruguay Summer Time", "GYT": "Guyana Time", "MDT": "Mountain Daylight Time", "WIT": "Eastern Indonesia Time", "HEEG": "East Greenland Summer Time", "TMST": "Turkmenistan Summer Time", "HNCU": "Cuba Standard Time", "WEZ": "Western European Standard Time", "NZST": "New Zealand Standard Time", "CLT": "Chile Standard Time", "MEZ": "Central European Standard Time", "OEZ": "Eastern European Standard Time", "SAST": "South Africa Standard Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "CAT": "Central Africa Time", "HEOG": "West Greenland Summer Time", "AEDT": "Australian Eastern Daylight Time", "CHADT": "Chatham Daylight Time", "AKST": "Alaska Standard Time", "AWST": "Australian Western Standard Time", "WARST": "Western Argentina Summer Time", "HECU": "Cuba Daylight Time", "ACST": "Australian Central Standard Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "ART": "Argentina Standard Time", "HNOG": "West Greenland Standard Time", "TMT": "Turkmenistan Standard Time"},
+ timezones: map[string]string{"TMT": "Turkmenistan Standard Time", "LHST": "Lord Howe Standard Time", "HNCU": "Cuba Standard Time", "WIT": "Eastern Indonesia Time", "JST": "Japan Standard Time", "MYT": "Malaysia Time", "SAST": "South Africa Standard Time", "HECU": "Cuba Daylight Time", "WIB": "Western Indonesia Time", "CAT": "Central Africa Time", "ACWDT": "Australian Central Western Daylight Time", "GMT": "Greenwich Mean Time", "WAT": "West Africa Standard Time", "HNT": "Newfoundland Standard Time", "UYST": "Uruguay Summer Time", "ACDT": "Australian Central Daylight Time", "AEST": "Australian Eastern Standard Time", "SGT": "Singapore Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "NZST": "New Zealand Standard Time", "MESZ": "Central European Summer Time", "CLST": "Chile Summer Time", "HEOG": "West Greenland Summer Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CST": "Central Standard Time", "EST": "Eastern Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "BT": "Bhutan Time", "SRT": "Suriname Time", "HNEG": "East Greenland Standard Time", "CHADT": "Chatham Daylight Time", "BOT": "Bolivia Time", "JDT": "Japan Daylight Time", "CLT": "Chile Standard Time", "WESZ": "Western European Summer Time", "COST": "Colombia Summer Time", "NZDT": "New Zealand Daylight Time", "OESZ": "Eastern European Summer Time", "MDT": "Macau Summer Time", "EDT": "Eastern Daylight Time", "UYT": "Uruguay Standard Time", "CDT": "Central Daylight Time", "PST": "Pacific Standard Time", "MEZ": "Central European Standard Time", "WARST": "Western Argentina Summer Time", "GFT": "French Guiana Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "EAT": "East Africa Time", "HADT": "Hawaii-Aleutian Daylight Time", "TMST": "Turkmenistan Summer Time", "ACST": "Australian Central Standard Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "IST": "India Standard Time", "HKT": "Hong Kong Standard Time", "GYT": "Guyana Time", "AWST": "Australian Western Standard Time", "ACWST": "Australian Central Western Standard Time", "AST": "Atlantic Standard Time", "OEZ": "Eastern European Standard Time", "ART": "Argentina Standard Time", "ChST": "Chamorro Standard Time", "CHAST": "Chatham Standard Time", "ECT": "Ecuador Time", "VET": "Venezuela Time", "WEZ": "Western European Standard Time", "HKST": "Hong Kong Summer Time", "LHDT": "Lord Howe Daylight Time", "HEEG": "East Greenland Summer Time", "AEDT": "Australian Eastern Daylight Time", "AWDT": "Australian Western Daylight Time", "PDT": "Pacific Daylight Time", "∅∅∅": "Amazon Summer Time", "WART": "Western Argentina Standard Time", "MST": "Macau Standard Time", "HAT": "Newfoundland Daylight Time", "HNOG": "West Greenland Standard Time", "ADT": "Atlantic Daylight Time", "ARST": "Argentina Summer Time", "WAST": "West Africa Summer Time", "WITA": "Central Indonesia Time", "HEPMX": "Mexican Pacific Daylight Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_KY) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_KY) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_KY) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_KY) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_LC/en_LC.go b/en_LC/en_LC.go
index 7c5a14cc..026be122 100644
--- a/en_LC/en_LC.go
+++ b/en_LC/en_LC.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"GFT": "French Guiana Time", "EAT": "East Africa Time", "HECU": "Cuba Daylight Time", "EST": "Eastern Standard Time", "ADT": "Atlantic Daylight Time", "HKT": "Hong Kong Standard Time", "HKST": "Hong Kong Summer Time", "HNCU": "Cuba Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "BT": "Bhutan Time", "ACWST": "Australian Central Western Standard Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "PST": "Pacific Standard Time", "ARST": "Argentina Summer Time", "CLT": "Chile Standard Time", "JST": "Japan Standard Time", "ACDT": "Australian Central Daylight Time", "WAT": "West Africa Standard Time", "AKST": "Alaska Standard Time", "SRT": "Suriname Time", "CHADT": "Chatham Daylight Time", "ACST": "Australian Central Standard Time", "EDT": "Eastern Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "WITA": "Central Indonesia Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "COT": "Colombia Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "AEDT": "Australian Eastern Daylight Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "TMST": "Turkmenistan Summer Time", "MDT": "Macau Summer Time", "WEZ": "Western European Standard Time", "HEOG": "West Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AKDT": "Alaska Daylight Time", "VET": "Venezuela Time", "ART": "Argentina Standard Time", "AWST": "Australian Western Standard Time", "OEZ": "Eastern European Standard Time", "UYT": "Uruguay Standard Time", "UYST": "Uruguay Summer Time", "CLST": "Chile Summer Time", "HNEG": "East Greenland Standard Time", "CST": "Central Standard Time", "PDT": "Pacific Daylight Time", "HNT": "Newfoundland Standard Time", "HNOG": "West Greenland Standard Time", "WARST": "Western Argentina Summer Time", "SGT": "Singapore Standard Time", "MST": "Macau Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "MEZ": "Central European Standard Time", "AWDT": "Australian Western Daylight Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "ECT": "Ecuador Time", "WART": "Western Argentina Standard Time", "WIB": "Western Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "SAST": "South Africa Standard Time", "HEEG": "East Greenland Summer Time", "OESZ": "Eastern European Summer Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "∅∅∅": "Amazon Summer Time", "WAST": "West Africa Summer Time", "GMT": "Greenwich Mean Time", "AST": "Atlantic Standard Time", "MESZ": "Central European Summer Time", "WESZ": "Western European Summer Time", "JDT": "Japan Daylight Time", "ChST": "Chamorro Standard Time", "COST": "Colombia Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "GYT": "Guyana Time", "WIT": "Eastern Indonesia Time", "CDT": "Central Daylight Time", "MYT": "Malaysia Time", "HEPM": "St. Pierre & Miquelon Daylight Time"},
+ timezones: map[string]string{"JST": "Japan Standard Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "WAT": "West Africa Standard Time", "ACST": "Australian Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "WIB": "Western Indonesia Time", "EDT": "Eastern Daylight Time", "∅∅∅": "Acre Summer Time", "ChST": "Chamorro Standard Time", "CST": "Central Standard Time", "NZST": "New Zealand Standard Time", "IST": "India Standard Time", "HNT": "Newfoundland Standard Time", "LHDT": "Lord Howe Daylight Time", "HNCU": "Cuba Standard Time", "WEZ": "Western European Standard Time", "OESZ": "Eastern European Summer Time", "WAST": "West Africa Summer Time", "HECU": "Cuba Daylight Time", "AWST": "Australian Western Standard Time", "UYST": "Uruguay Summer Time", "OEZ": "Eastern European Standard Time", "CHAST": "Chatham Standard Time", "CAT": "Central Africa Time", "MESZ": "Central European Summer Time", "WESZ": "Western European Summer Time", "MYT": "Malaysia Time", "AEST": "Australian Eastern Standard Time", "MDT": "Mountain Daylight Time", "CDT": "Central Daylight Time", "GFT": "French Guiana Time", "HEPMX": "Mexican Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "JDT": "Japan Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "ACDT": "Australian Central Daylight Time", "COST": "Colombia Summer Time", "EAT": "East Africa Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "ART": "Argentina Standard Time", "BT": "Bhutan Time", "HAT": "Newfoundland Daylight Time", "AEDT": "Australian Eastern Daylight Time", "SGT": "Singapore Standard Time", "AST": "Atlantic Standard Time", "HNEG": "East Greenland Standard Time", "SRT": "Suriname Time", "CHADT": "Chatham Daylight Time", "ACWST": "Australian Central Western Standard Time", "COT": "Colombia Standard Time", "GYT": "Guyana Time", "BOT": "Bolivia Time", "WITA": "Central Indonesia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "UYT": "Uruguay Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "PST": "Pacific Standard Time", "HKST": "Hong Kong Summer Time", "HEEG": "East Greenland Summer Time", "MST": "Mountain Standard Time", "WARST": "Western Argentina Summer Time", "PDT": "Pacific Daylight Time", "ARST": "Argentina Summer Time", "WIT": "Eastern Indonesia Time", "WART": "Western Argentina Standard Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "SAST": "South Africa Standard Time", "GMT": "Greenwich Mean Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "AWDT": "Australian Western Daylight Time", "ECT": "Ecuador Time", "NZDT": "New Zealand Daylight Time", "MEZ": "Central European Standard Time", "VET": "Venezuela Time", "HKT": "Hong Kong Standard Time", "EST": "Eastern Standard Time", "HNPMX": "Mexican Pacific Standard Time", "ADT": "Atlantic Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "ACWDT": "Australian Central Western Daylight Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_LC) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_LC) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_LC) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_LC) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_LR/en_LR.go b/en_LR/en_LR.go
index b8a9e6e8..e08a3670 100644
--- a/en_LR/en_LR.go
+++ b/en_LR/en_LR.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"IST": "India Standard Time", "JDT": "Japan Daylight Time", "SAST": "South Africa Standard Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "WITA": "Central Indonesia Time", "ChST": "Chamorro Standard Time", "GYT": "Guyana Time", "HENOMX": "Northwest Mexico Daylight Time", "SGT": "Singapore Standard Time", "OESZ": "Eastern European Summer Time", "COST": "Colombia Summer Time", "BT": "Bhutan Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "HKT": "Hong Kong Standard Time", "LHST": "Lord Howe Standard Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "GMT": "Greenwich Mean Time", "UYST": "Uruguay Summer Time", "SRT": "Suriname Time", "CLT": "Chile Standard Time", "MYT": "Malaysia Time", "CST": "Central Standard Time", "TMST": "Turkmenistan Summer Time", "OEZ": "Eastern European Standard Time", "MST": "Macau Standard Time", "PDT": "Pacific Daylight Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "HECU": "Cuba Daylight Time", "AST": "Atlantic Standard Time", "AKDT": "Alaska Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZDT": "New Zealand Daylight Time", "ACST": "Australian Central Standard Time", "WARST": "Western Argentina Summer Time", "UYT": "Uruguay Standard Time", "WIT": "Eastern Indonesia Time", "HEOG": "West Greenland Summer Time", "CHADT": "Chatham Daylight Time", "HNEG": "East Greenland Standard Time", "ECT": "Ecuador Time", "∅∅∅": "Azores Summer Time", "ADT": "Atlantic Daylight Time", "ACWST": "Australian Central Western Standard Time", "CHAST": "Chatham Standard Time", "HEEG": "East Greenland Summer Time", "COT": "Colombia Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "JST": "Japan Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CDT": "Central Daylight Time", "WIB": "Western Indonesia Time", "WEZ": "Western European Standard Time", "MEZ": "Central European Standard Time", "NZST": "New Zealand Standard Time", "CLST": "Chile Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HNCU": "Cuba Standard Time", "AKST": "Alaska Standard Time", "HNOG": "West Greenland Standard Time", "AEST": "Australian Eastern Standard Time", "MESZ": "Central European Summer Time", "WART": "Western Argentina Standard Time", "EDT": "Eastern Daylight Time", "MDT": "Macau Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "PST": "Pacific Standard Time", "AEDT": "Australian Eastern Daylight Time", "GFT": "French Guiana Time", "EAT": "East Africa Time", "EST": "Eastern Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AWST": "Australian Western Standard Time", "HKST": "Hong Kong Summer Time", "LHDT": "Lord Howe Daylight Time", "TMT": "Turkmenistan Standard Time", "CAT": "Central Africa Time", "HADT": "Hawaii-Aleutian Daylight Time"},
+ timezones: map[string]string{"AWST": "Australian Western Standard Time", "HKT": "Hong Kong Standard Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "ChST": "Chamorro Standard Time", "PST": "Pacific Standard Time", "OEZ": "Eastern European Standard Time", "WEZ": "Western European Standard Time", "SRT": "Suriname Time", "VET": "Venezuela Time", "HNNOMX": "Northwest Mexico Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "AWDT": "Australian Western Daylight Time", "WESZ": "Western European Summer Time", "WART": "Western Argentina Standard Time", "ARST": "Argentina Summer Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "GFT": "French Guiana Time", "HEPMX": "Mexican Pacific Daylight Time", "MDT": "Macau Summer Time", "COT": "Colombia Standard Time", "COST": "Colombia Summer Time", "AEDT": "Australian Eastern Daylight Time", "UYT": "Uruguay Standard Time", "WAT": "West Africa Standard Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "GYT": "Guyana Time", "CHADT": "Chatham Daylight Time", "SGT": "Singapore Standard Time", "ACWDT": "Australian Central Western Daylight Time", "ADT": "Atlantic Daylight Time", "HKST": "Hong Kong Summer Time", "HEEG": "East Greenland Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "MEZ": "Central European Standard Time", "MESZ": "Central European Summer Time", "JDT": "Japan Daylight Time", "WARST": "Western Argentina Summer Time", "EST": "Eastern Standard Time", "BT": "Bhutan Time", "UYST": "Uruguay Summer Time", "WIT": "Eastern Indonesia Time", "CHAST": "Chatham Standard Time", "ACWST": "Australian Central Western Standard Time", "NZDT": "New Zealand Daylight Time", "GMT": "Greenwich Mean Time", "ACDT": "Australian Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "MYT": "Malaysia Time", "TMST": "Turkmenistan Summer Time", "SAST": "South Africa Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CST": "Central Standard Time", "IST": "India Standard Time", "TMT": "Turkmenistan Standard Time", "WITA": "Central Indonesia Time", "HNEG": "East Greenland Standard Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "WIB": "Western Indonesia Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "OESZ": "Eastern European Summer Time", "HEOG": "West Greenland Summer Time", "∅∅∅": "Azores Summer Time", "ART": "Argentina Standard Time", "JST": "Japan Standard Time", "AST": "Atlantic Standard Time", "CLST": "Chile Summer Time", "HNOG": "West Greenland Standard Time", "CDT": "Central Daylight Time", "PDT": "Pacific Daylight Time", "NZST": "New Zealand Standard Time", "WAST": "West Africa Summer Time", "EDT": "Eastern Daylight Time", "ACST": "Australian Central Standard Time", "AEST": "Australian Eastern Standard Time", "EAT": "East Africa Time", "ECT": "Ecuador Time", "CLT": "Chile Standard Time", "MST": "Macau Standard Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_LR) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_LR) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
@@ -405,15 +405,25 @@ func (en *en_LR) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_LR) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_LR) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_LR) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_LS/en_LS.go b/en_LS/en_LS.go
index 946e2d9c..152e9c64 100644
--- a/en_LS/en_LS.go
+++ b/en_LS/en_LS.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HENOMX": "Northwest Mexico Daylight Time", "JST": "Japan Standard Time", "HNPMX": "Mexican Pacific Standard Time", "UYT": "Uruguay Standard Time", "TMST": "Turkmenistan Summer Time", "HEEG": "East Greenland Summer Time", "∅∅∅": "Peru Summer Time", "PST": "Pacific Standard Time", "WEZ": "Western European Standard Time", "COST": "Colombia Summer Time", "VET": "Venezuela Time", "MESZ": "Central European Summer Time", "UYST": "Uruguay Summer Time", "JDT": "Japan Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "PDT": "Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "EAT": "East Africa Time", "WARST": "Western Argentina Summer Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "WITA": "Central Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZST": "New Zealand Standard Time", "CAT": "Central Africa Time", "HEPMX": "Mexican Pacific Daylight Time", "ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "CHADT": "Chatham Daylight Time", "NZDT": "New Zealand Daylight Time", "SAST": "South Africa Standard Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "HEOG": "West Greenland Summer Time", "ACWDT": "Australian Central Western Daylight Time", "HNEG": "East Greenland Standard Time", "TMT": "Turkmenistan Standard Time", "CDT": "Central Daylight Time", "GYT": "Guyana Time", "WIB": "Western Indonesia Time", "HNT": "Newfoundland Standard Time", "ART": "Argentina Standard Time", "WESZ": "Western European Summer Time", "AEST": "Australian Eastern Standard Time", "ChST": "Chamorro Standard Time", "ACST": "Australian Central Standard Time", "WAST": "West Africa Summer Time", "EDT": "Eastern Daylight Time", "MST": "Macau Standard Time", "HAT": "Newfoundland Daylight Time", "AWST": "Australian Western Standard Time", "CHAST": "Chatham Standard Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "BT": "Bhutan Time", "ACWST": "Australian Central Western Standard Time", "AEDT": "Australian Eastern Daylight Time", "LHDT": "Lord Howe Daylight Time", "ACDT": "Australian Central Daylight Time", "OESZ": "Eastern European Summer Time", "WAT": "West Africa Standard Time", "WART": "Western Argentina Standard Time", "ADT": "Atlantic Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "SGT": "Singapore Standard Time", "EST": "Eastern Standard Time", "AST": "Atlantic Standard Time", "MYT": "Malaysia Time", "SRT": "Suriname Time", "MEZ": "Central European Standard Time", "IST": "India Standard Time", "GFT": "French Guiana Time", "MDT": "Macau Summer Time", "CST": "Central Standard Time", "WIT": "Eastern Indonesia Time", "HNOG": "West Greenland Standard Time", "AWDT": "Australian Western Daylight Time", "HKST": "Hong Kong Summer Time", "BOT": "Bolivia Time"},
+ timezones: map[string]string{"HNOG": "West Greenland Standard Time", "WAT": "West Africa Standard Time", "EDT": "Eastern Daylight Time", "AEST": "Australian Eastern Standard Time", "AWST": "Australian Western Standard Time", "HKST": "Hong Kong Summer Time", "ACDT": "Australian Central Daylight Time", "COST": "Colombia Summer Time", "UYT": "Uruguay Standard Time", "WIB": "Western Indonesia Time", "VET": "Venezuela Time", "AST": "Atlantic Standard Time", "MDT": "Macau Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "EAT": "East Africa Time", "WIT": "Eastern Indonesia Time", "PDT": "Pacific Daylight Time", "CAT": "Central Africa Time", "WARST": "Western Argentina Summer Time", "HEEG": "East Greenland Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SGT": "Singapore Standard Time", "IST": "India Standard Time", "NZST": "New Zealand Standard Time", "OEZ": "Eastern European Standard Time", "ACST": "Australian Central Standard Time", "ChST": "Chamorro Standard Time", "AWDT": "Australian Western Daylight Time", "CHAST": "Chatham Standard Time", "CHADT": "Chatham Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "MESZ": "Central European Summer Time", "ADT": "Atlantic Daylight Time", "ARST": "Argentina Summer Time", "HNEG": "East Greenland Standard Time", "ECT": "Ecuador Time", "ACWST": "Australian Central Western Standard Time", "MYT": "Malaysia Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "HNCU": "Cuba Standard Time", "WEZ": "Western European Standard Time", "COT": "Colombia Standard Time", "HAT": "Newfoundland Daylight Time", "GFT": "French Guiana Time", "WART": "Western Argentina Standard Time", "WAST": "West Africa Summer Time", "HECU": "Cuba Daylight Time", "PST": "Pacific Standard Time", "OESZ": "Eastern European Summer Time", "MST": "Macau Standard Time", "AKDT": "Alaska Daylight Time", "LHDT": "Lord Howe Daylight Time", "JST": "Japan Standard Time", "HKT": "Hong Kong Standard Time", "HNT": "Newfoundland Standard Time", "AEDT": "Australian Eastern Daylight Time", "SRT": "Suriname Time", "SAST": "South Africa Standard Time", "LHST": "Lord Howe Standard Time", "MEZ": "Central European Standard Time", "TMT": "Turkmenistan Standard Time", "AKST": "Alaska Standard Time", "CDT": "Central Daylight Time", "GMT": "Greenwich Mean Time", "HEOG": "West Greenland Summer Time", "ART": "Argentina Standard Time", "WITA": "Central Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "JDT": "Japan Daylight Time", "WESZ": "Western European Summer Time", "BT": "Bhutan Time", "UYST": "Uruguay Summer Time", "HNPMX": "Mexican Pacific Standard Time", "ACWDT": "Australian Central Western Daylight Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "TMST": "Turkmenistan Summer Time", "EST": "Eastern Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "∅∅∅": "Acre Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CST": "Central Standard Time", "BOT": "Bolivia Time", "NZDT": "New Zealand Daylight Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_LS) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_LS) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_LS) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_LS) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_MG/en_MG.go b/en_MG/en_MG.go
index 30430958..2229b94b 100644
--- a/en_MG/en_MG.go
+++ b/en_MG/en_MG.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"SGT": "Singapore Standard Time", "UYT": "Uruguay Standard Time", "BT": "Bhutan Time", "HEEG": "East Greenland Summer Time", "OESZ": "Eastern European Summer Time", "ADT": "Atlantic Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "EST": "Eastern Standard Time", "ART": "Argentina Standard Time", "HEOG": "West Greenland Summer Time", "HKT": "Hong Kong Standard Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "HECU": "Cuba Daylight Time", "MDT": "Macau Summer Time", "AWDT": "Australian Western Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time", "ACWST": "Australian Central Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "∅∅∅": "Peru Summer Time", "HNCU": "Cuba Standard Time", "HNPMX": "Mexican Pacific Standard Time", "LHST": "Lord Howe Standard Time", "CHAST": "Chatham Standard Time", "GFT": "French Guiana Time", "NZDT": "New Zealand Daylight Time", "AST": "Atlantic Standard Time", "UYST": "Uruguay Summer Time", "WIB": "Western Indonesia Time", "SRT": "Suriname Time", "HKST": "Hong Kong Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MEZ": "Central European Standard Time", "ACST": "Australian Central Standard Time", "GMT": "Greenwich Mean Time", "PDT": "Pacific Daylight Time", "CHADT": "Chatham Daylight Time", "IST": "India Standard Time", "JDT": "Japan Daylight Time", "HNEG": "East Greenland Standard Time", "CAT": "Central Africa Time", "WART": "Western Argentina Standard Time", "COST": "Colombia Summer Time", "MYT": "Malaysia Time", "HADT": "Hawaii-Aleutian Daylight Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "CDT": "Central Daylight Time", "PST": "Pacific Standard Time", "WEZ": "Western European Standard Time", "SAST": "South Africa Standard Time", "JST": "Japan Standard Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "OEZ": "Eastern European Standard Time", "EDT": "Eastern Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "AKST": "Alaska Standard Time", "BOT": "Bolivia Time", "WITA": "Central Indonesia Time", "WARST": "Western Argentina Summer Time", "GYT": "Guyana Time", "VET": "Venezuela Time", "ARST": "Argentina Summer Time", "HNOG": "West Greenland Standard Time", "HNT": "Newfoundland Standard Time", "AEST": "Australian Eastern Standard Time", "LHDT": "Lord Howe Daylight Time", "EAT": "East Africa Time", "WAST": "West Africa Summer Time", "MST": "Macau Standard Time", "AKDT": "Alaska Daylight Time", "AEDT": "Australian Eastern Daylight Time", "ChST": "Chamorro Standard Time", "ACDT": "Australian Central Daylight Time", "AWST": "Australian Western Standard Time", "NZST": "New Zealand Standard Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "CST": "Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HAT": "Newfoundland Daylight Time", "MESZ": "Central European Summer Time"},
+ timezones: map[string]string{"AWST": "Australian Western Standard Time", "PST": "Pacific Standard Time", "MESZ": "Central European Summer Time", "HEOG": "West Greenland Summer Time", "WAT": "West Africa Standard Time", "ACST": "Australian Central Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZST": "New Zealand Standard Time", "WESZ": "Western European Summer Time", "HKST": "Hong Kong Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AWDT": "Australian Western Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "MEZ": "Central European Standard Time", "ART": "Argentina Standard Time", "WAST": "West Africa Summer Time", "AEDT": "Australian Eastern Daylight Time", "SAST": "South Africa Standard Time", "EST": "Eastern Standard Time", "CAT": "Central Africa Time", "HEEG": "East Greenland Summer Time", "CST": "Central Standard Time", "WIT": "Eastern Indonesia Time", "CHAST": "Chatham Standard Time", "SGT": "Singapore Standard Time", "WART": "Western Argentina Standard Time", "COST": "Colombia Summer Time", "∅∅∅": "Acre Summer Time", "UYST": "Uruguay Summer Time", "WARST": "Western Argentina Summer Time", "MDT": "Mountain Daylight Time", "ACWST": "Australian Central Western Standard Time", "GMT": "Greenwich Mean Time", "UYT": "Uruguay Standard Time", "HNOG": "West Greenland Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "IST": "India Standard Time", "VET": "Venezuela Time", "MYT": "Malaysia Time", "CLT": "Chile Standard Time", "ChST": "Chamorro Standard Time", "LHDT": "Lord Howe Daylight Time", "HECU": "Cuba Daylight Time", "CLST": "Chile Summer Time", "AST": "Atlantic Standard Time", "EAT": "East Africa Time", "JDT": "Japan Daylight Time", "HKT": "Hong Kong Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "HNT": "Newfoundland Standard Time", "AEST": "Australian Eastern Standard Time", "BOT": "Bolivia Time", "CHADT": "Chatham Daylight Time", "PDT": "Pacific Daylight Time", "EDT": "Eastern Daylight Time", "COT": "Colombia Standard Time", "BT": "Bhutan Time", "TMT": "Turkmenistan Standard Time", "LHST": "Lord Howe Standard Time", "ECT": "Ecuador Time", "JST": "Japan Standard Time", "WEZ": "Western European Standard Time", "ADT": "Atlantic Daylight Time", "HAT": "Newfoundland Daylight Time", "MST": "Mountain Standard Time", "AKDT": "Alaska Daylight Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "CDT": "Central Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "TMST": "Turkmenistan Summer Time", "HNEG": "East Greenland Standard Time", "GFT": "French Guiana Time", "WIB": "Western Indonesia Time", "HNPMX": "Mexican Pacific Standard Time", "SRT": "Suriname Time", "HNCU": "Cuba Standard Time", "ACDT": "Australian Central Daylight Time", "WITA": "Central Indonesia Time", "AKST": "Alaska Standard Time", "NZDT": "New Zealand Daylight Time", "ARST": "Argentina Summer Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_MG) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_MG) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_MG) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_MG) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_MH/en_MH.go b/en_MH/en_MH.go
index 060969d5..57a29e99 100644
--- a/en_MH/en_MH.go
+++ b/en_MH/en_MH.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "WAT": "West Africa Standard Time", "OEZ": "Eastern European Standard Time", "COST": "Colombia Summer Time", "BOT": "Bolivia Time", "HENOMX": "Northwest Mexico Daylight Time", "CHADT": "Chatham Daylight Time", "ECT": "Ecuador Time", "WART": "Western Argentina Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "BT": "Bhutan Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "MEZ": "Central European Standard Time", "CLST": "Chile Summer Time", "NZDT": "New Zealand Daylight Time", "HNCU": "Cuba Standard Time", "UYST": "Uruguay Summer Time", "AWDT": "Australian Western Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "ACDT": "Australian Central Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "ART": "Argentina Standard Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "JDT": "Japan Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "COT": "Colombia Standard Time", "GMT": "Greenwich Mean Time", "GYT": "Guyana Time", "VET": "Venezuela Time", "WIT": "Eastern Indonesia Time", "HAT": "Newfoundland Daylight Time", "TMST": "Turkmenistan Summer Time", "OESZ": "Eastern European Summer Time", "EDT": "Eastern Daylight Time", "AST": "Atlantic Standard Time", "MYT": "Malaysia Time", "HNT": "Newfoundland Standard Time", "ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "JST": "Japan Standard Time", "HNEG": "East Greenland Standard Time", "WAST": "West Africa Summer Time", "UYT": "Uruguay Standard Time", "AKST": "Alaska Standard Time", "WESZ": "Western European Summer Time", "NZST": "New Zealand Standard Time", "CHAST": "Chatham Standard Time", "AEDT": "Australian Eastern Daylight Time", "∅∅∅": "Amazon Summer Time", "TMT": "Turkmenistan Standard Time", "CAT": "Central Africa Time", "WARST": "Western Argentina Summer Time", "ADT": "Atlantic Daylight Time", "WITA": "Central Indonesia Time", "HEEG": "East Greenland Summer Time", "HECU": "Cuba Daylight Time", "AWST": "Australian Western Standard Time", "CLT": "Chile Standard Time", "EAT": "East Africa Time", "EST": "Eastern Standard Time", "SAST": "South Africa Standard Time", "ChST": "Chamorro Standard Time", "ACST": "Australian Central Standard Time", "MDT": "Mountain Daylight Time", "SRT": "Suriname Time", "PST": "Pacific Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AEST": "Australian Eastern Standard Time", "MESZ": "Central European Summer Time", "IST": "India Standard Time", "GFT": "French Guiana Time", "AKDT": "Alaska Daylight Time", "MST": "Mountain Standard Time", "WIB": "Western Indonesia Time", "ACWST": "Australian Central Western Standard Time", "HKST": "Hong Kong Summer Time", "SGT": "Singapore Standard Time"},
+ timezones: map[string]string{"MYT": "Malaysia Time", "TMST": "Turkmenistan Summer Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "∅∅∅": "Acre Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "HECU": "Cuba Daylight Time", "EST": "Eastern Standard Time", "AEST": "Australian Eastern Standard Time", "SAST": "South Africa Standard Time", "WIT": "Eastern Indonesia Time", "HEOG": "West Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "EDT": "Eastern Daylight Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AWDT": "Australian Western Daylight Time", "NZDT": "New Zealand Daylight Time", "ACWST": "Australian Central Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "JST": "Japan Standard Time", "ADT": "Atlantic Daylight Time", "WAST": "West Africa Summer Time", "ACDT": "Australian Central Daylight Time", "AKST": "Alaska Standard Time", "AEDT": "Australian Eastern Daylight Time", "UYT": "Uruguay Standard Time", "AWST": "Australian Western Standard Time", "BOT": "Bolivia Time", "VET": "Venezuela Time", "WART": "Western Argentina Standard Time", "HNOG": "West Greenland Standard Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HEEG": "East Greenland Summer Time", "LHST": "Lord Howe Standard Time", "WIB": "Western Indonesia Time", "WAT": "West Africa Standard Time", "LHDT": "Lord Howe Daylight Time", "CDT": "Central Daylight Time", "CHADT": "Chatham Daylight Time", "MEZ": "Central European Standard Time", "WESZ": "Western European Summer Time", "WARST": "Western Argentina Summer Time", "HAT": "Newfoundland Daylight Time", "SRT": "Suriname Time", "GYT": "Guyana Time", "IST": "India Standard Time", "AKDT": "Alaska Daylight Time", "ChST": "Chamorro Standard Time", "PST": "Pacific Standard Time", "HKST": "Hong Kong Summer Time", "WITA": "Central Indonesia Time", "CST": "Central Standard Time", "CHAST": "Chatham Standard Time", "SGT": "Singapore Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "NZST": "New Zealand Standard Time", "OEZ": "Eastern European Standard Time", "WEZ": "Western European Standard Time", "GMT": "Greenwich Mean Time", "ACST": "Australian Central Standard Time", "BT": "Bhutan Time", "HNT": "Newfoundland Standard Time", "UYST": "Uruguay Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "ECT": "Ecuador Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "MDT": "Macau Summer Time", "HKT": "Hong Kong Standard Time", "HNEG": "East Greenland Standard Time", "GFT": "French Guiana Time", "CAT": "Central Africa Time", "JDT": "Japan Daylight Time", "OESZ": "Eastern European Summer Time", "MST": "Macau Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNCU": "Cuba Standard Time", "MESZ": "Central European Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "EAT": "East Africa Time", "PDT": "Pacific Daylight Time", "AST": "Atlantic Standard Time"},
}
}
diff --git a/en_MO/en_MO.go b/en_MO/en_MO.go
index a17dfb91..e14d5f27 100644
--- a/en_MO/en_MO.go
+++ b/en_MO/en_MO.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"WITA": "Central Indonesia Time", "HNEG": "East Greenland Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CLST": "Chile Summer Time", "ACDT": "Australian Central Daylight Time", "CHAST": "Chatham Standard Time", "JDT": "Japan Daylight Time", "MDT": "Macau Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "GFT": "French Guiana Time", "OESZ": "Eastern European Summer Time", "COT": "Colombia Standard Time", "HNCU": "Cuba Standard Time", "UYT": "Uruguay Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "LHDT": "Lord Howe Daylight Time", "NZST": "New Zealand Standard Time", "ChST": "Chamorro Standard Time", "EDT": "Eastern Daylight Time", "ACST": "Australian Central Standard Time", "WART": "Western Argentina Standard Time", "EST": "Eastern Standard Time", "AKDT": "Alaska Daylight Time", "HNT": "Newfoundland Standard Time", "JST": "Japan Standard Time", "OEZ": "Eastern European Standard Time", "MST": "Macau Standard Time", "UYST": "Uruguay Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "SRT": "Suriname Time", "HEOG": "West Greenland Summer Time", "CDT": "Central Daylight Time", "WESZ": "Western European Summer Time", "AEDT": "Australian Eastern Daylight Time", "AWST": "Australian Western Standard Time", "MESZ": "Central European Summer Time", "IST": "India Standard Time", "WAST": "West Africa Summer Time", "SGT": "Singapore Standard Time", "HNOG": "West Greenland Standard Time", "AKST": "Alaska Standard Time", "PST": "Pacific Standard Time", "MEZ": "Central European Standard Time", "TMST": "Turkmenistan Summer Time", "CST": "Central Standard Time", "NZDT": "New Zealand Daylight Time", "TMT": "Turkmenistan Standard Time", "COST": "Colombia Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "MYT": "Malaysia Time", "HAST": "Hawaii-Aleutian Standard Time", "AWDT": "Australian Western Daylight Time", "∅∅∅": "Amazon Summer Time", "HEEG": "East Greenland Summer Time", "HECU": "Cuba Daylight Time", "ADT": "Atlantic Daylight Time", "HAT": "Newfoundland Daylight Time", "ARST": "Argentina Summer Time", "AEST": "Australian Eastern Standard Time", "HKST": "Hong Kong Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "BOT": "Bolivia Time", "WIB": "Western Indonesia Time", "WARST": "Western Argentina Summer Time", "WAT": "West Africa Standard Time", "VET": "Venezuela Time", "BT": "Bhutan Time", "ACWST": "Australian Central Western Standard Time", "GMT": "Greenwich Mean Time", "GYT": "Guyana Time", "WEZ": "Western European Standard Time", "ACWDT": "Australian Central Western Daylight Time", "CHADT": "Chatham Daylight Time", "WIT": "Eastern Indonesia Time", "ART": "Argentina Standard Time", "PDT": "Pacific Daylight Time", "HKT": "Hong Kong Standard Time", "CLT": "Chile Standard Time", "ECT": "Ecuador Time", "CAT": "Central Africa Time", "EAT": "East Africa Time", "AST": "Atlantic Standard Time"},
+ timezones: map[string]string{"TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "WITA": "Central Indonesia Time", "HEPMX": "Mexican Pacific Daylight Time", "ACWST": "Australian Central Western Standard Time", "WARST": "Western Argentina Summer Time", "AKST": "Alaska Standard Time", "LHDT": "Lord Howe Daylight Time", "MEZ": "Central European Standard Time", "HEOG": "West Greenland Summer Time", "WEZ": "Western European Standard Time", "MST": "Macau Standard Time", "COST": "Colombia Summer Time", "AEDT": "Australian Eastern Daylight Time", "GYT": "Guyana Time", "ADT": "Atlantic Daylight Time", "OESZ": "Eastern European Summer Time", "IST": "India Standard Time", "HNOG": "West Greenland Standard Time", "HKT": "Hong Kong Standard Time", "BOT": "Bolivia Time", "PDT": "Pacific Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "WIB": "Western Indonesia Time", "WART": "Western Argentina Standard Time", "ACST": "Australian Central Standard Time", "HNEG": "East Greenland Standard Time", "CST": "Central Standard Time", "ECT": "Ecuador Time", "CAT": "Central Africa Time", "CHAST": "Chatham Standard Time", "SRT": "Suriname Time", "ART": "Argentina Standard Time", "EDT": "Eastern Daylight Time", "HAT": "Newfoundland Daylight Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "∅∅∅": "Amazon Summer Time", "GMT": "Greenwich Mean Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "BT": "Bhutan Time", "AWST": "Australian Western Standard Time", "NZST": "New Zealand Standard Time", "ARST": "Argentina Summer Time", "HKST": "Hong Kong Summer Time", "EAT": "East Africa Time", "CDT": "Central Daylight Time", "WIT": "Eastern Indonesia Time", "PST": "Pacific Standard Time", "EST": "Eastern Standard Time", "MYT": "Malaysia Time", "ChST": "Chamorro Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHADT": "Chatham Daylight Time", "JDT": "Japan Daylight Time", "VET": "Venezuela Time", "HNPMX": "Mexican Pacific Standard Time", "MESZ": "Central European Summer Time", "JST": "Japan Standard Time", "OEZ": "Eastern European Standard Time", "TMST": "Turkmenistan Summer Time", "UYT": "Uruguay Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "NZDT": "New Zealand Daylight Time", "WAST": "West Africa Summer Time", "ACDT": "Australian Central Daylight Time", "AKDT": "Alaska Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SAST": "South Africa Standard Time", "LHST": "Lord Howe Standard Time", "AST": "Atlantic Standard Time", "MDT": "Macau Summer Time", "HNT": "Newfoundland Standard Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "SGT": "Singapore Standard Time", "CLST": "Chile Summer Time", "WESZ": "Western European Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "AEST": "Australian Eastern Standard Time", "UYST": "Uruguay Summer Time", "AWDT": "Australian Western Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "CLT": "Chile Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_MO) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_MO) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_MO) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_MO) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -483,13 +493,11 @@ func (en *en_MO) FmtTimeShort(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -497,13 +505,6 @@ func (en *en_MO) FmtTimeShort(t time.Time) string {
}
b = strconv.AppendInt(b, int64(t.Minute()), 10)
- b = append(b, []byte{0x20}...)
-
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
return string(b)
}
@@ -513,13 +514,11 @@ func (en *en_MO) FmtTimeMedium(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -534,13 +533,6 @@ func (en *en_MO) FmtTimeMedium(t time.Time) string {
}
b = strconv.AppendInt(b, int64(t.Second()), 10)
- b = append(b, []byte{0x20}...)
-
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
return string(b)
}
@@ -550,13 +542,11 @@ func (en *en_MO) FmtTimeLong(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -573,14 +563,6 @@ func (en *en_MO) FmtTimeLong(t time.Time) string {
b = strconv.AppendInt(b, int64(t.Second()), 10)
b = append(b, []byte{0x20}...)
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
-
- b = append(b, []byte{0x20}...)
-
tz, _ := t.Zone()
b = append(b, tz...)
@@ -592,13 +574,11 @@ func (en *en_MO) FmtTimeFull(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -615,14 +595,6 @@ func (en *en_MO) FmtTimeFull(t time.Time) string {
b = strconv.AppendInt(b, int64(t.Second()), 10)
b = append(b, []byte{0x20}...)
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
-
- b = append(b, []byte{0x20}...)
-
tz, _ := t.Zone()
if btz, ok := en.timezones[tz]; ok {
diff --git a/en_MP/en_MP.go b/en_MP/en_MP.go
index 2a538fb3..73d84f05 100644
--- a/en_MP/en_MP.go
+++ b/en_MP/en_MP.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HEPM": "St. Pierre & Miquelon Daylight Time", "SRT": "Suriname Time", "ACWST": "Australian Central Western Standard Time", "LHDT": "Lord Howe Daylight Time", "WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time", "COT": "Colombia Standard Time", "HNPMX": "Mexican Pacific Standard Time", "WIB": "Western Indonesia Time", "AEDT": "Australian Eastern Daylight Time", "ChST": "Chamorro Standard Time", "ART": "Argentina Standard Time", "WEZ": "Western European Standard Time", "JDT": "Japan Daylight Time", "BOT": "Bolivia Time", "HEEG": "East Greenland Summer Time", "OEZ": "Eastern European Standard Time", "EST": "Eastern Standard Time", "UYT": "Uruguay Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "VET": "Venezuela Time", "HNPM": "St. Pierre & Miquelon Standard Time", "JST": "Japan Standard Time", "WAST": "West Africa Summer Time", "GMT": "Greenwich Mean Time", "GYT": "Guyana Time", "UYST": "Uruguay Summer Time", "CAT": "Central Africa Time", "CLST": "Chile Summer Time", "ECT": "Ecuador Time", "CDT": "Central Daylight Time", "PST": "Pacific Standard Time", "MESZ": "Central European Summer Time", "GFT": "French Guiana Time", "ACDT": "Australian Central Daylight Time", "WART": "Western Argentina Standard Time", "COST": "Colombia Summer Time", "MST": "Macau Standard Time", "PDT": "Pacific Daylight Time", "AWDT": "Australian Western Daylight Time", "HKT": "Hong Kong Standard Time", "NZDT": "New Zealand Daylight Time", "EAT": "East Africa Time", "EDT": "Eastern Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "WAT": "West Africa Standard Time", "WARST": "Western Argentina Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "HECU": "Cuba Daylight Time", "AST": "Atlantic Standard Time", "ADT": "Atlantic Daylight Time", "LHST": "Lord Howe Standard Time", "ACST": "Australian Central Standard Time", "OESZ": "Eastern European Summer Time", "AKST": "Alaska Standard Time", "CST": "Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "MEZ": "Central European Standard Time", "CLT": "Chile Standard Time", "TMT": "Turkmenistan Standard Time", "MDT": "Macau Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "AKDT": "Alaska Daylight Time", "ARST": "Argentina Summer Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "HKST": "Hong Kong Summer Time", "NZST": "New Zealand Standard Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "IST": "India Standard Time", "∅∅∅": "Amazon Summer Time", "BT": "Bhutan Time", "AWST": "Australian Western Standard Time", "WITA": "Central Indonesia Time", "CHAST": "Chatham Standard Time", "TMST": "Turkmenistan Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HNEG": "East Greenland Standard Time", "HNCU": "Cuba Standard Time", "MYT": "Malaysia Time", "AEST": "Australian Eastern Standard Time"},
+ timezones: map[string]string{"CAT": "Central Africa Time", "JST": "Japan Standard Time", "MYT": "Malaysia Time", "COST": "Colombia Summer Time", "AKDT": "Alaska Daylight Time", "LHDT": "Lord Howe Daylight Time", "∅∅∅": "Amazon Summer Time", "MESZ": "Central European Summer Time", "HNCU": "Cuba Standard Time", "CST": "Central Standard Time", "OEZ": "Eastern European Standard Time", "COT": "Colombia Standard Time", "WITA": "Central Indonesia Time", "ChST": "Chamorro Standard Time", "EAT": "East Africa Time", "HECU": "Cuba Daylight Time", "EDT": "Eastern Daylight Time", "ACWST": "Australian Central Western Standard Time", "NZST": "New Zealand Standard Time", "WART": "Western Argentina Standard Time", "HEOG": "West Greenland Summer Time", "ARST": "Argentina Summer Time", "EST": "Eastern Standard Time", "WEZ": "Western European Standard Time", "MDT": "Macau Summer Time", "HKST": "Hong Kong Summer Time", "HNEG": "East Greenland Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CHADT": "Chatham Daylight Time", "IST": "India Standard Time", "ACDT": "Australian Central Daylight Time", "HNT": "Newfoundland Standard Time", "AWDT": "Australian Western Daylight Time", "SGT": "Singapore Standard Time", "BOT": "Bolivia Time", "TMT": "Turkmenistan Standard Time", "UYT": "Uruguay Standard Time", "CHAST": "Chatham Standard Time", "ECT": "Ecuador Time", "ACWDT": "Australian Central Western Daylight Time", "MST": "Macau Standard Time", "WAT": "West Africa Standard Time", "AEST": "Australian Eastern Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "PDT": "Pacific Daylight Time", "ADT": "Atlantic Daylight Time", "GMT": "Greenwich Mean Time", "HNNOMX": "Northwest Mexico Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AKST": "Alaska Standard Time", "GYT": "Guyana Time", "NZDT": "New Zealand Daylight Time", "LHST": "Lord Howe Standard Time", "CDT": "Central Daylight Time", "WIT": "Eastern Indonesia Time", "PST": "Pacific Standard Time", "VET": "Venezuela Time", "JDT": "Japan Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "WIB": "Western Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "AST": "Atlantic Standard Time", "HKT": "Hong Kong Standard Time", "ACST": "Australian Central Standard Time", "HEEG": "East Greenland Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CLST": "Chile Summer Time", "WESZ": "Western European Summer Time", "ART": "Argentina Standard Time", "GFT": "French Guiana Time", "SAST": "South Africa Standard Time", "SRT": "Suriname Time", "BT": "Bhutan Time", "AWST": "Australian Western Standard Time", "MEZ": "Central European Standard Time", "WARST": "Western Argentina Summer Time", "CLT": "Chile Standard Time", "OESZ": "Eastern European Summer Time", "TMST": "Turkmenistan Summer Time", "WAST": "West Africa Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNOG": "West Greenland Standard Time", "HAT": "Newfoundland Daylight Time", "UYST": "Uruguay Summer Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_MP) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_MP) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
diff --git a/en_MS/en_MS.go b/en_MS/en_MS.go
index 3b490067..c2dc589d 100644
--- a/en_MS/en_MS.go
+++ b/en_MS/en_MS.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"AEST": "Australian Eastern Standard Time", "CLST": "Chile Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "AKST": "Alaska Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "MESZ": "Central European Summer Time", "HNEG": "East Greenland Standard Time", "COST": "Colombia Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "BT": "Bhutan Time", "HAT": "Newfoundland Daylight Time", "HKT": "Hong Kong Standard Time", "WITA": "Central Indonesia Time", "ECT": "Ecuador Time", "WARST": "Western Argentina Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "PST": "Pacific Standard Time", "HEOG": "West Greenland Summer Time", "CAT": "Central Africa Time", "EST": "Eastern Standard Time", "CST": "Central Standard Time", "WIT": "Eastern Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SAST": "South Africa Standard Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "GMT": "Greenwich Mean Time", "CDT": "Central Daylight Time", "NZDT": "New Zealand Daylight Time", "JST": "Japan Standard Time", "EAT": "East Africa Time", "WAT": "West Africa Standard Time", "OESZ": "Eastern European Summer Time", "PDT": "Pacific Daylight Time", "HNT": "Newfoundland Standard Time", "AWST": "Australian Western Standard Time", "CHAST": "Chatham Standard Time", "JDT": "Japan Daylight Time", "AWDT": "Australian Western Daylight Time", "TMT": "Turkmenistan Standard Time", "ACDT": "Australian Central Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "AST": "Atlantic Standard Time", "ADT": "Atlantic Daylight Time", "GYT": "Guyana Time", "ACWST": "Australian Central Western Standard Time", "ARST": "Argentina Summer Time", "CLT": "Chile Standard Time", "SRT": "Suriname Time", "ART": "Argentina Standard Time", "ACST": "Australian Central Standard Time", "WAST": "West Africa Summer Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "WIB": "Western Indonesia Time", "MEZ": "Central European Standard Time", "IST": "India Standard Time", "SGT": "Singapore Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AEDT": "Australian Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "TMST": "Turkmenistan Summer Time", "OEZ": "Eastern European Standard Time", "UYST": "Uruguay Summer Time", "HNOG": "West Greenland Standard Time", "NZST": "New Zealand Standard Time", "∅∅∅": "Amazon Summer Time", "EDT": "Eastern Daylight Time", "AKDT": "Alaska Daylight Time", "MYT": "Malaysia Time", "WESZ": "Western European Summer Time", "CHADT": "Chatham Daylight Time", "BOT": "Bolivia Time", "VET": "Venezuela Time", "WEZ": "Western European Standard Time", "ChST": "Chamorro Standard Time", "WART": "Western Argentina Standard Time", "COT": "Colombia Standard Time", "UYT": "Uruguay Standard Time", "HKST": "Hong Kong Summer Time"},
+ timezones: map[string]string{"HAST": "Hawaii-Aleutian Standard Time", "IST": "India Standard Time", "ART": "Argentina Standard Time", "EST": "Eastern Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "LHDT": "Lord Howe Daylight Time", "HECU": "Cuba Daylight Time", "VET": "Venezuela Time", "HEOG": "West Greenland Summer Time", "MST": "Macau Standard Time", "WAST": "West Africa Summer Time", "BT": "Bhutan Time", "AEDT": "Australian Eastern Daylight Time", "ADT": "Atlantic Daylight Time", "OEZ": "Eastern European Standard Time", "SRT": "Suriname Time", "PST": "Pacific Standard Time", "JDT": "Japan Daylight Time", "ACDT": "Australian Central Daylight Time", "HNEG": "East Greenland Standard Time", "CST": "Central Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "JST": "Japan Standard Time", "CLT": "Chile Standard Time", "WART": "Western Argentina Standard Time", "ACST": "Australian Central Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ECT": "Ecuador Time", "HNOG": "West Greenland Standard Time", "TMST": "Turkmenistan Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "ACWST": "Australian Central Western Standard Time", "NZST": "New Zealand Standard Time", "MDT": "Macau Summer Time", "HKST": "Hong Kong Summer Time", "EAT": "East Africa Time", "CDT": "Central Daylight Time", "AWST": "Australian Western Standard Time", "WARST": "Western Argentina Summer Time", "WAT": "West Africa Standard Time", "AWDT": "Australian Western Daylight Time", "CHAST": "Chatham Standard Time", "CAT": "Central Africa Time", "SAST": "South Africa Standard Time", "WIT": "Eastern Indonesia Time", "GMT": "Greenwich Mean Time", "∅∅∅": "Acre Summer Time", "UYST": "Uruguay Summer Time", "CHADT": "Chatham Daylight Time", "GFT": "French Guiana Time", "AKDT": "Alaska Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "PDT": "Pacific Daylight Time", "MESZ": "Central European Summer Time", "HNCU": "Cuba Standard Time", "BOT": "Bolivia Time", "CLST": "Chile Summer Time", "AST": "Atlantic Standard Time", "TMT": "Turkmenistan Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HAT": "Newfoundland Daylight Time", "WEZ": "Western European Standard Time", "COST": "Colombia Summer Time", "HEEG": "East Greenland Summer Time", "AKST": "Alaska Standard Time", "WIB": "Western Indonesia Time", "ChST": "Chamorro Standard Time", "UYT": "Uruguay Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "OESZ": "Eastern European Summer Time", "WESZ": "Western European Summer Time", "ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "COT": "Colombia Standard Time", "HNT": "Newfoundland Standard Time", "LHST": "Lord Howe Standard Time", "GYT": "Guyana Time", "ACWDT": "Australian Central Western Daylight Time", "NZDT": "New Zealand Daylight Time", "MEZ": "Central European Standard Time", "MYT": "Malaysia Time", "EDT": "Eastern Daylight Time", "WITA": "Central Indonesia Time", "AEST": "Australian Eastern Standard Time", "SGT": "Singapore Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_MS) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_MS) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_MS) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_MS) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_MT/en_MT.go b/en_MT/en_MT.go
index c62a2594..ec4ac25c 100644
--- a/en_MT/en_MT.go
+++ b/en_MT/en_MT.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"WEZ": "Western European Standard Time", "SAST": "South Africa Standard Time", "TMST": "Turkmenistan Summer Time", "CAT": "Central Africa Time", "PST": "Pacific Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "IST": "India Standard Time", "GFT": "French Guiana Time", "CDT": "Central Daylight Time", "WIB": "Western Indonesia Time", "HKST": "Hong Kong Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "BT": "Bhutan Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "MEZ": "Central European Standard Time", "CLST": "Chile Summer Time", "JST": "Japan Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "AEDT": "Australian Eastern Daylight Time", "WAT": "West Africa Standard Time", "OESZ": "Eastern European Summer Time", "ACWST": "Australian Central Western Standard Time", "LHDT": "Lord Howe Daylight Time", "NZST": "New Zealand Standard Time", "CHADT": "Chatham Daylight Time", "HNEG": "East Greenland Standard Time", "HEEG": "East Greenland Summer Time", "UYT": "Uruguay Standard Time", "MESZ": "Central European Summer Time", "BOT": "Bolivia Time", "WARST": "Western Argentina Summer Time", "HNCU": "Cuba Standard Time", "MST": "Macau Standard Time", "AST": "Atlantic Standard Time", "ADT": "Atlantic Daylight Time", "ChST": "Chamorro Standard Time", "SRT": "Suriname Time", "WESZ": "Western European Summer Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "CST": "Central Standard Time", "GYT": "Guyana Time", "UYST": "Uruguay Summer Time", "VET": "Venezuela Time", "AEST": "Australian Eastern Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "CLT": "Chile Standard Time", "ACST": "Australian Central Standard Time", "HECU": "Cuba Daylight Time", "EST": "Eastern Standard Time", "HNT": "Newfoundland Standard Time", "COST": "Colombia Summer Time", "MYT": "Malaysia Time", "WIT": "Eastern Indonesia Time", "EAT": "East Africa Time", "ACDT": "Australian Central Daylight Time", "HKT": "Hong Kong Standard Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HAT": "Newfoundland Daylight Time", "∅∅∅": "Amazon Summer Time", "JDT": "Japan Daylight Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "MDT": "Macau Summer Time", "PDT": "Pacific Daylight Time", "ART": "Argentina Standard Time", "AWST": "Australian Western Standard Time", "WITA": "Central Indonesia Time", "CHAST": "Chatham Standard Time", "TMT": "Turkmenistan Standard Time", "WART": "Western Argentina Standard Time", "SGT": "Singapore Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "EDT": "Eastern Daylight Time", "ECT": "Ecuador Time", "NZDT": "New Zealand Daylight Time", "WAST": "West Africa Summer Time", "AKST": "Alaska Standard Time", "HAST": "Hawaii-Aleutian Standard Time"},
+ timezones: map[string]string{"HKT": "Hong Kong Standard Time", "WAST": "West Africa Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "GYT": "Guyana Time", "∅∅∅": "Amazon Summer Time", "WEZ": "Western European Standard Time", "AST": "Atlantic Standard Time", "MDT": "Macau Summer Time", "IST": "India Standard Time", "WARST": "Western Argentina Summer Time", "AEST": "Australian Eastern Standard Time", "HNCU": "Cuba Standard Time", "CAT": "Central Africa Time", "UYT": "Uruguay Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "GMT": "Greenwich Mean Time", "MST": "Macau Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "ECT": "Ecuador Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "OESZ": "Eastern European Summer Time", "CST": "Central Standard Time", "MEZ": "Central European Standard Time", "WIT": "Eastern Indonesia Time", "CHAST": "Chatham Standard Time", "OEZ": "Eastern European Standard Time", "BT": "Bhutan Time", "WITA": "Central Indonesia Time", "UYST": "Uruguay Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "JST": "Japan Standard Time", "JDT": "Japan Daylight Time", "WART": "Western Argentina Standard Time", "AKDT": "Alaska Daylight Time", "AEDT": "Australian Eastern Daylight Time", "AKST": "Alaska Standard Time", "ChST": "Chamorro Standard Time", "EAT": "East Africa Time", "HEOG": "West Greenland Summer Time", "COT": "Colombia Standard Time", "ACST": "Australian Central Standard Time", "ACDT": "Australian Central Daylight Time", "EDT": "Eastern Daylight Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "GFT": "French Guiana Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWST": "Australian Central Western Standard Time", "CLST": "Chile Summer Time", "EST": "Eastern Standard Time", "SRT": "Suriname Time", "AWDT": "Australian Western Daylight Time", "PDT": "Pacific Daylight Time", "CLT": "Chile Standard Time", "ARST": "Argentina Summer Time", "CDT": "Central Daylight Time", "HEEG": "East Greenland Summer Time", "BOT": "Bolivia Time", "PST": "Pacific Standard Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "HECU": "Cuba Daylight Time", "WIB": "Western Indonesia Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "ADT": "Atlantic Daylight Time", "ART": "Argentina Standard Time", "SAST": "South Africa Standard Time", "AWST": "Australian Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "MESZ": "Central European Summer Time", "HKST": "Hong Kong Summer Time", "HNEG": "East Greenland Standard Time", "COST": "Colombia Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "CHADT": "Chatham Daylight Time", "MYT": "Malaysia Time", "HNOG": "West Greenland Standard Time", "TMST": "Turkmenistan Summer Time", "LHST": "Lord Howe Standard Time", "SGT": "Singapore Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "LHDT": "Lord Howe Daylight Time"},
}
}
diff --git a/en_MU/en_MU.go b/en_MU/en_MU.go
index 02d4c89a..735481e5 100644
--- a/en_MU/en_MU.go
+++ b/en_MU/en_MU.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"∅∅∅": "Azores Summer Time", "LHST": "Lord Howe Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "EDT": "Eastern Daylight Time", "AKDT": "Alaska Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HEEG": "East Greenland Summer Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "HKT": "Hong Kong Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "JST": "Japan Standard Time", "OEZ": "Eastern European Standard Time", "HNEG": "East Greenland Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "CDT": "Central Daylight Time", "WIB": "Western Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "ARST": "Argentina Summer Time", "AEST": "Australian Eastern Standard Time", "IST": "India Standard Time", "AKST": "Alaska Standard Time", "CST": "Central Standard Time", "AST": "Atlantic Standard Time", "UYT": "Uruguay Standard Time", "PST": "Pacific Standard Time", "HAT": "Newfoundland Daylight Time", "LHDT": "Lord Howe Daylight Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "GMT": "Greenwich Mean Time", "AEDT": "Australian Eastern Daylight Time", "MEZ": "Central European Standard Time", "TMT": "Turkmenistan Standard Time", "EAT": "East Africa Time", "SRT": "Suriname Time", "CLST": "Chile Summer Time", "WART": "Western Argentina Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "VET": "Venezuela Time", "HKST": "Hong Kong Summer Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "WAT": "West Africa Standard Time", "HNCU": "Cuba Standard Time", "CHADT": "Chatham Daylight Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "BT": "Bhutan Time", "NZDT": "New Zealand Daylight Time", "SAST": "South Africa Standard Time", "JDT": "Japan Daylight Time", "EST": "Eastern Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "MYT": "Malaysia Time", "ACWST": "Australian Central Western Standard Time", "ART": "Argentina Standard Time", "NZST": "New Zealand Standard Time", "CHAST": "Chatham Standard Time", "ACDT": "Australian Central Daylight Time", "WAST": "West Africa Summer Time", "OESZ": "Eastern European Summer Time", "HECU": "Cuba Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "HNT": "Newfoundland Standard Time", "AWDT": "Australian Western Daylight Time", "ChST": "Chamorro Standard Time", "WIT": "Eastern Indonesia Time", "CLT": "Chile Standard Time", "ACST": "Australian Central Standard Time", "ADT": "Atlantic Daylight Time", "GYT": "Guyana Time", "AWST": "Australian Western Standard Time", "CAT": "Central Africa Time", "UYST": "Uruguay Summer Time", "ACWDT": "Australian Central Western Daylight Time", "WITA": "Central Indonesia Time", "ECT": "Ecuador Time", "SGT": "Singapore Standard Time", "WESZ": "Western European Summer Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "MESZ": "Central European Summer Time", "TMST": "Turkmenistan Summer Time"},
+ timezones: map[string]string{"AST": "Atlantic Standard Time", "ART": "Argentina Standard Time", "EDT": "Eastern Daylight Time", "AEST": "Australian Eastern Standard Time", "WAT": "West Africa Standard Time", "EST": "Eastern Standard Time", "HNEG": "East Greenland Standard Time", "WITA": "Central Indonesia Time", "IST": "India Standard Time", "JST": "Japan Standard Time", "MESZ": "Central European Summer Time", "TMST": "Turkmenistan Summer Time", "ChST": "Chamorro Standard Time", "∅∅∅": "Brasilia Summer Time", "PST": "Pacific Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWST": "Australian Central Western Standard Time", "HNOG": "West Greenland Standard Time", "GMT": "Greenwich Mean Time", "BT": "Bhutan Time", "LHDT": "Lord Howe Daylight Time", "CHAST": "Chatham Standard Time", "ECT": "Ecuador Time", "EAT": "East Africa Time", "CDT": "Central Daylight Time", "MDT": "Macau Summer Time", "HKST": "Hong Kong Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "AKST": "Alaska Standard Time", "AEDT": "Australian Eastern Daylight Time", "OEZ": "Eastern European Standard Time", "WEZ": "Western European Standard Time", "COT": "Colombia Standard Time", "HAT": "Newfoundland Daylight Time", "SRT": "Suriname Time", "GYT": "Guyana Time", "AWST": "Australian Western Standard Time", "WART": "Western Argentina Standard Time", "OESZ": "Eastern European Summer Time", "COST": "Colombia Summer Time", "WIT": "Eastern Indonesia Time", "CLT": "Chile Standard Time", "TMT": "Turkmenistan Standard Time", "WAST": "West Africa Summer Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "BOT": "Bolivia Time", "PDT": "Pacific Daylight Time", "HEOG": "West Greenland Summer Time", "MST": "Macau Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "SAST": "South Africa Standard Time", "HECU": "Cuba Daylight Time", "WIB": "Western Indonesia Time", "CST": "Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "MEZ": "Central European Standard Time", "JDT": "Japan Daylight Time", "CLST": "Chile Summer Time", "ADT": "Atlantic Daylight Time", "WESZ": "Western European Summer Time", "HNT": "Newfoundland Standard Time", "SGT": "Singapore Standard Time", "NZDT": "New Zealand Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "HNCU": "Cuba Standard Time", "AKDT": "Alaska Daylight Time", "UYST": "Uruguay Summer Time", "VET": "Venezuela Time", "ARST": "Argentina Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AWDT": "Australian Western Daylight Time", "CAT": "Central Africa Time", "HKT": "Hong Kong Standard Time", "ACST": "Australian Central Standard Time", "UYT": "Uruguay Standard Time", "NZST": "New Zealand Standard Time", "MYT": "Malaysia Time", "WARST": "Western Argentina Summer Time", "ACDT": "Australian Central Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CHADT": "Chatham Daylight Time", "ACWDT": "Australian Central Western Daylight Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_MU) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_MU) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_MU) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_MU) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_MW/en_MW.go b/en_MW/en_MW.go
index add3b49c..0a7373c0 100644
--- a/en_MW/en_MW.go
+++ b/en_MW/en_MW.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"ChST": "Chamorro Standard Time", "COT": "Colombia Standard Time", "CDT": "Central Daylight Time", "ART": "Argentina Standard Time", "HKT": "Hong Kong Standard Time", "LHST": "Lord Howe Standard Time", "CLT": "Chile Standard Time", "CAT": "Central Africa Time", "WAST": "West Africa Summer Time", "AST": "Atlantic Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "VET": "Venezuela Time", "ACWDT": "Australian Central Western Daylight Time", "ARST": "Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "HAT": "Newfoundland Daylight Time", "HEOG": "West Greenland Summer Time", "HNT": "Newfoundland Standard Time", "JST": "Japan Standard Time", "ECT": "Ecuador Time", "MST": "Macau Standard Time", "CST": "Central Standard Time", "HNOG": "West Greenland Standard Time", "∅∅∅": "Azores Summer Time", "AKST": "Alaska Standard Time", "AWDT": "Australian Western Daylight Time", "ACST": "Australian Central Standard Time", "OESZ": "Eastern European Summer Time", "MYT": "Malaysia Time", "SRT": "Suriname Time", "SAST": "South Africa Standard Time", "JDT": "Japan Daylight Time", "COST": "Colombia Summer Time", "EDT": "Eastern Daylight Time", "ADT": "Atlantic Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MESZ": "Central European Summer Time", "GFT": "French Guiana Time", "HECU": "Cuba Daylight Time", "EST": "Eastern Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "HEEG": "East Greenland Summer Time", "AEST": "Australian Eastern Standard Time", "WITA": "Central Indonesia Time", "LHDT": "Lord Howe Daylight Time", "MDT": "Macau Summer Time", "WART": "Western Argentina Standard Time", "ACWST": "Australian Central Western Standard Time", "CHAST": "Chatham Standard Time", "UYT": "Uruguay Standard Time", "BT": "Bhutan Time", "PDT": "Pacific Daylight Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "WARST": "Western Argentina Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "UYST": "Uruguay Summer Time", "HKST": "Hong Kong Summer Time", "MEZ": "Central European Standard Time", "HNEG": "East Greenland Standard Time", "TMT": "Turkmenistan Standard Time", "GMT": "Greenwich Mean Time", "HNCU": "Cuba Standard Time", "CLST": "Chile Summer Time", "PST": "Pacific Standard Time", "WESZ": "Western European Summer Time", "AWST": "Australian Western Standard Time", "CHADT": "Chatham Daylight Time", "TMST": "Turkmenistan Summer Time", "GYT": "Guyana Time", "AKDT": "Alaska Daylight Time", "WIT": "Eastern Indonesia Time", "HNNOMX": "Northwest Mexico Standard Time", "EAT": "East Africa Time", "WAT": "West Africa Standard Time", "OEZ": "Eastern European Standard Time", "WEZ": "Western European Standard Time", "NZST": "New Zealand Standard Time", "SGT": "Singapore Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "WIB": "Western Indonesia Time"},
+ timezones: map[string]string{"AKST": "Alaska Standard Time", "ACDT": "Australian Central Daylight Time", "BT": "Bhutan Time", "SAST": "South Africa Standard Time", "WIT": "Eastern Indonesia Time", "NZDT": "New Zealand Daylight Time", "COST": "Colombia Summer Time", "AEDT": "Australian Eastern Daylight Time", "CDT": "Central Daylight Time", "ECT": "Ecuador Time", "AST": "Atlantic Standard Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "HAT": "Newfoundland Daylight Time", "ChST": "Chamorro Standard Time", "LHST": "Lord Howe Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "MESZ": "Central European Summer Time", "OEZ": "Eastern European Standard Time", "CLST": "Chile Summer Time", "EST": "Eastern Standard Time", "GYT": "Guyana Time", "HEEG": "East Greenland Summer Time", "MST": "Mountain Standard Time", "HNPMX": "Mexican Pacific Standard Time", "WIB": "Western Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "HEOG": "West Greenland Summer Time", "HKT": "Hong Kong Standard Time", "WARST": "Western Argentina Summer Time", "CAT": "Central Africa Time", "HECU": "Cuba Daylight Time", "CST": "Central Standard Time", "AWST": "Australian Western Standard Time", "VET": "Venezuela Time", "JDT": "Japan Daylight Time", "AKDT": "Alaska Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "EAT": "East Africa Time", "ACWST": "Australian Central Western Standard Time", "MEZ": "Central European Standard Time", "ACST": "Australian Central Standard Time", "UYT": "Uruguay Standard Time", "AWDT": "Australian Western Daylight Time", "PST": "Pacific Standard Time", "GFT": "French Guiana Time", "WAST": "West Africa Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "SRT": "Suriname Time", "IST": "India Standard Time", "ACWDT": "Australian Central Western Daylight Time", "ADT": "Atlantic Daylight Time", "WAT": "West Africa Standard Time", "HNEG": "East Greenland Standard Time", "WITA": "Central Indonesia Time", "CHADT": "Chatham Daylight Time", "NZST": "New Zealand Standard Time", "OESZ": "Eastern European Summer Time", "GMT": "Greenwich Mean Time", "CLT": "Chile Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "PDT": "Pacific Daylight Time", "JST": "Japan Standard Time", "HNOG": "West Greenland Standard Time", "ARST": "Argentina Summer Time", "MDT": "Mountain Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "CHAST": "Chatham Standard Time", "WESZ": "Western European Summer Time", "WART": "Western Argentina Standard Time", "UYST": "Uruguay Summer Time", "COT": "Colombia Standard Time", "HNT": "Newfoundland Standard Time", "SGT": "Singapore Standard Time", "MYT": "Malaysia Time", "HKST": "Hong Kong Summer Time", "∅∅∅": "Acre Summer Time", "LHDT": "Lord Howe Daylight Time", "HNCU": "Cuba Standard Time", "BOT": "Bolivia Time", "WEZ": "Western European Standard Time", "EDT": "Eastern Daylight Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_MW) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_MW) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_MW) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_MW) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_MY/en_MY.go b/en_MY/en_MY.go
index e76fd470..889fa255 100644
--- a/en_MY/en_MY.go
+++ b/en_MY/en_MY.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"CLT": "Chile Standard Time", "WAST": "West Africa Summer Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "HEEG": "East Greenland Summer Time", "ACST": "Australian Central Standard Time", "EAT": "East Africa Time", "EST": "Eastern Standard Time", "ART": "Argentina Standard Time", "HKST": "Hong Kong Summer Time", "IST": "India Standard Time", "COST": "Colombia Summer Time", "CST": "Central Standard Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "WITA": "Central Indonesia Time", "EDT": "Eastern Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "MYT": "Malaysia Time", "BT": "Bhutan Time", "WEZ": "Western European Standard Time", "ChST": "Chamorro Standard Time", "HNEG": "East Greenland Standard Time", "HNT": "Newfoundland Standard Time", "LHDT": "Lord Howe Daylight Time", "CHAST": "Chatham Standard Time", "OESZ": "Eastern European Summer Time", "HKT": "Hong Kong Standard Time", "MEZ": "Central European Standard Time", "LHST": "Lord Howe Standard Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "MST": "Macau Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZST": "New Zealand Standard Time", "JST": "Japan Standard Time", "OEZ": "Eastern European Standard Time", "ECT": "Ecuador Time", "GMT": "Greenwich Mean Time", "CLST": "Chile Summer Time", "JDT": "Japan Daylight Time", "TMT": "Turkmenistan Standard Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "GFT": "French Guiana Time", "GYT": "Guyana Time", "WIT": "Eastern Indonesia Time", "HEPMX": "Mexican Pacific Daylight Time", "AST": "Atlantic Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "ARST": "Argentina Summer Time", "NZDT": "New Zealand Daylight Time", "∅∅∅": "Amazon Summer Time", "TMST": "Turkmenistan Summer Time", "AKST": "Alaska Standard Time", "SRT": "Suriname Time", "PST": "Pacific Standard Time", "ACWST": "Australian Central Western Standard Time", "MESZ": "Central European Summer Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "AKDT": "Alaska Daylight Time", "CDT": "Central Daylight Time", "UYT": "Uruguay Standard Time", "UYST": "Uruguay Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "ACDT": "Australian Central Daylight Time", "WIB": "Western Indonesia Time", "PDT": "Pacific Daylight Time", "HEOG": "West Greenland Summer Time", "AWDT": "Australian Western Daylight Time", "CAT": "Central Africa Time", "HENOMX": "Northwest Mexico Daylight Time", "MDT": "Macau Summer Time", "ADT": "Atlantic Daylight Time", "HNOG": "West Greenland Standard Time", "AWST": "Australian Western Standard Time", "BOT": "Bolivia Time", "WAT": "West Africa Standard Time"},
+ timezones: map[string]string{"ChST": "Chamorro Standard Time", "CDT": "Central Daylight Time", "PST": "Pacific Standard Time", "MESZ": "Central European Summer Time", "WARST": "Western Argentina Summer Time", "WAT": "West Africa Standard Time", "ACST": "Australian Central Standard Time", "AKDT": "Alaska Daylight Time", "AWDT": "Australian Western Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "WIT": "Eastern Indonesia Time", "EST": "Eastern Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HAT": "Newfoundland Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "GMT": "Greenwich Mean Time", "MYT": "Malaysia Time", "EDT": "Eastern Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "MDT": "Macau Summer Time", "WAST": "West Africa Summer Time", "CHAST": "Chatham Standard Time", "ECT": "Ecuador Time", "NZST": "New Zealand Standard Time", "MEZ": "Central European Standard Time", "WART": "Western Argentina Standard Time", "TMST": "Turkmenistan Summer Time", "HEEG": "East Greenland Summer Time", "SGT": "Singapore Standard Time", "CLST": "Chile Summer Time", "HNOG": "West Greenland Standard Time", "WESZ": "Western European Summer Time", "SAST": "South Africa Standard Time", "VET": "Venezuela Time", "AST": "Atlantic Standard Time", "OEZ": "Eastern European Standard Time", "BOT": "Bolivia Time", "PDT": "Pacific Daylight Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time", "∅∅∅": "Amazon Summer Time", "IST": "India Standard Time", "BT": "Bhutan Time", "HNT": "Newfoundland Standard Time", "WEZ": "Western European Standard Time", "TMT": "Turkmenistan Standard Time", "HKT": "Hong Kong Standard Time", "AEDT": "Australian Eastern Daylight Time", "AKST": "Alaska Standard Time", "EAT": "East Africa Time", "ADT": "Atlantic Daylight Time", "MST": "Macau Standard Time", "GYT": "Guyana Time", "HECU": "Cuba Daylight Time", "CST": "Central Standard Time", "UYST": "Uruguay Summer Time", "HNCU": "Cuba Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "CAT": "Central Africa Time", "HEOG": "West Greenland Summer Time", "ARST": "Argentina Summer Time", "HKST": "Hong Kong Summer Time", "ACDT": "Australian Central Daylight Time", "LHST": "Lord Howe Standard Time", "WIB": "Western Indonesia Time", "ART": "Argentina Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "GFT": "French Guiana Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHADT": "Chatham Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "JST": "Japan Standard Time", "OESZ": "Eastern European Summer Time", "COT": "Colombia Standard Time", "AEST": "Australian Eastern Standard Time", "SRT": "Suriname Time", "AWST": "Australian Western Standard Time", "ACWST": "Australian Central Western Standard Time", "JDT": "Japan Daylight Time", "CLT": "Chile Standard Time", "HNEG": "East Greenland Standard Time", "WITA": "Central Indonesia Time", "UYT": "Uruguay Standard Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_MY) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_MY) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
@@ -405,15 +405,25 @@ func (en *en_MY) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_MY) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_MY) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_MY) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_NA/en_NA.go b/en_NA/en_NA.go
index bc987d6a..3a1fa120 100644
--- a/en_NA/en_NA.go
+++ b/en_NA/en_NA.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HADT": "Hawaii-Aleutian Daylight Time", "WAST": "West Africa Summer Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "WIB": "Western Indonesia Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "TMT": "Turkmenistan Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWDT": "Australian Central Western Daylight Time", "MEZ": "Central European Standard Time", "LHST": "Lord Howe Standard Time", "CLST": "Chile Summer Time", "∅∅∅": "Amazon Summer Time", "CST": "Central Standard Time", "EDT": "Eastern Daylight Time", "CDT": "Central Daylight Time", "ART": "Argentina Standard Time", "WART": "Western Argentina Standard Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "ACDT": "Australian Central Daylight Time", "CAT": "Central Africa Time", "SAST": "South Africa Standard Time", "CLT": "Chile Standard Time", "JST": "Japan Standard Time", "JDT": "Japan Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HKST": "Hong Kong Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HEEG": "East Greenland Summer Time", "COT": "Colombia Standard Time", "UYST": "Uruguay Summer Time", "AKST": "Alaska Standard Time", "AST": "Atlantic Standard Time", "BT": "Bhutan Time", "PST": "Pacific Standard Time", "HAT": "Newfoundland Daylight Time", "NZST": "New Zealand Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "AKDT": "Alaska Daylight Time", "ACWST": "Australian Central Western Standard Time", "AEST": "Australian Eastern Standard Time", "IST": "India Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "EAT": "East Africa Time", "GMT": "Greenwich Mean Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "HNT": "Newfoundland Standard Time", "HEOG": "West Greenland Summer Time", "MESZ": "Central European Summer Time", "ChST": "Chamorro Standard Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "TMST": "Turkmenistan Summer Time", "ACST": "Australian Central Standard Time", "HNPMX": "Mexican Pacific Standard Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "LHDT": "Lord Howe Daylight Time", "CHADT": "Chatham Daylight Time", "HNEG": "East Greenland Standard Time", "WIT": "Eastern Indonesia Time", "WEZ": "Western European Standard Time", "HNOG": "West Greenland Standard Time", "MST": "Macau Standard Time", "ADT": "Atlantic Daylight Time", "MDT": "Macau Summer Time", "MYT": "Malaysia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZDT": "New Zealand Daylight Time", "ECT": "Ecuador Time", "HECU": "Cuba Daylight Time", "PDT": "Pacific Daylight Time", "WARST": "Western Argentina Summer Time", "SRT": "Suriname Time", "AWST": "Australian Western Standard Time", "WAT": "West Africa Standard Time", "UYT": "Uruguay Standard Time", "HKT": "Hong Kong Standard Time", "WITA": "Central Indonesia Time", "CHAST": "Chatham Standard Time", "SGT": "Singapore Standard Time"},
+ timezones: map[string]string{"TMT": "Turkmenistan Standard Time", "ACDT": "Australian Central Daylight Time", "AKDT": "Alaska Daylight Time", "UYST": "Uruguay Summer Time", "SRT": "Suriname Time", "GYT": "Guyana Time", "CHADT": "Chatham Daylight Time", "ECT": "Ecuador Time", "HECU": "Cuba Daylight Time", "ART": "Argentina Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "MEZ": "Central European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "BT": "Bhutan Time", "WITA": "Central Indonesia Time", "UYT": "Uruguay Standard Time", "WAT": "West Africa Standard Time", "HEEG": "East Greenland Summer Time", "SAST": "South Africa Standard Time", "CST": "Central Standard Time", "CHAST": "Chatham Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "∅∅∅": "Acre Summer Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "HNOG": "West Greenland Standard Time", "ARST": "Argentina Summer Time", "EST": "Eastern Standard Time", "COST": "Colombia Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "AEDT": "Australian Eastern Daylight Time", "HKT": "Hong Kong Standard Time", "WIT": "Eastern Indonesia Time", "PST": "Pacific Standard Time", "NZST": "New Zealand Standard Time", "VET": "Venezuela Time", "TMST": "Turkmenistan Summer Time", "EAT": "East Africa Time", "HKST": "Hong Kong Summer Time", "COT": "Colombia Standard Time", "HNT": "Newfoundland Standard Time", "MDT": "Mountain Daylight Time", "ChST": "Chamorro Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "AWDT": "Australian Western Daylight Time", "ACWST": "Australian Central Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "JST": "Japan Standard Time", "WEZ": "Western European Standard Time", "HAT": "Newfoundland Daylight Time", "AKST": "Alaska Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "BOT": "Bolivia Time", "MYT": "Malaysia Time", "WART": "Western Argentina Standard Time", "WIB": "Western Indonesia Time", "GMT": "Greenwich Mean Time", "WARST": "Western Argentina Summer Time", "CLT": "Chile Standard Time", "OEZ": "Eastern European Standard Time", "ACST": "Australian Central Standard Time", "HNEG": "East Greenland Standard Time", "AWST": "Australian Western Standard Time", "MESZ": "Central European Summer Time", "HEOG": "West Greenland Summer Time", "WAST": "West Africa Summer Time", "HNCU": "Cuba Standard Time", "SGT": "Singapore Standard Time", "NZDT": "New Zealand Daylight Time", "CAT": "Central Africa Time", "AEST": "Australian Eastern Standard Time", "OESZ": "Eastern European Summer Time", "WESZ": "Western European Summer Time", "EDT": "Eastern Daylight Time", "MST": "Mountain Standard Time", "GFT": "French Guiana Time", "PDT": "Pacific Daylight Time", "IST": "India Standard Time", "CLST": "Chile Summer Time", "ADT": "Atlantic Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "CDT": "Central Daylight Time", "JDT": "Japan Daylight Time", "AST": "Atlantic Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_NA) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_NA) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_NA) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_NA) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_NF/en_NF.go b/en_NF/en_NF.go
index bed6b5c9..3497578f 100644
--- a/en_NF/en_NF.go
+++ b/en_NF/en_NF.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"NZST": "New Zealand Standard Time", "CLST": "Chile Summer Time", "ChST": "Chamorro Standard Time", "AKST": "Alaska Standard Time", "WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "TMST": "Turkmenistan Summer Time", "UYT": "Uruguay Standard Time", "AEDT": "Australian Eastern Daylight Time", "MEZ": "Central European Standard Time", "SAST": "South Africa Standard Time", "TMT": "Turkmenistan Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "AWST": "Australian Western Standard Time", "HKT": "Hong Kong Standard Time", "HEEG": "East Greenland Summer Time", "EAT": "East Africa Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "HNCU": "Cuba Standard Time", "AWDT": "Australian Western Daylight Time", "HAT": "Newfoundland Daylight Time", "MESZ": "Central European Summer Time", "CLT": "Chile Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "EDT": "Eastern Daylight Time", "BT": "Bhutan Time", "WEZ": "Western European Standard Time", "ACWST": "Australian Central Western Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "BOT": "Bolivia Time", "LHST": "Lord Howe Standard Time", "JDT": "Japan Daylight Time", "CAT": "Central Africa Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "GMT": "Greenwich Mean Time", "MYT": "Malaysia Time", "PST": "Pacific Standard Time", "PDT": "Pacific Daylight Time", "HNOG": "West Greenland Standard Time", "HNEG": "East Greenland Standard Time", "NZDT": "New Zealand Daylight Time", "JST": "Japan Standard Time", "ACDT": "Australian Central Daylight Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "UYST": "Uruguay Summer Time", "AKDT": "Alaska Daylight Time", "WITA": "Central Indonesia Time", "ACST": "Australian Central Standard Time", "∅∅∅": "Peru Summer Time", "EST": "Eastern Standard Time", "HNT": "Newfoundland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "SRT": "Suriname Time", "AEST": "Australian Eastern Standard Time", "OESZ": "Eastern European Summer Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time", "CDT": "Central Daylight Time", "AST": "Atlantic Standard Time", "OEZ": "Eastern European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HECU": "Cuba Daylight Time", "GFT": "French Guiana Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "HEOG": "West Greenland Summer Time", "CHADT": "Chatham Daylight Time", "CST": "Central Standard Time", "ADT": "Atlantic Daylight Time", "VET": "Venezuela Time", "CHAST": "Chatham Standard Time", "WIB": "Western Indonesia Time", "IST": "India Standard Time", "SGT": "Singapore Standard Time", "HKST": "Hong Kong Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time"},
+ timezones: map[string]string{"HADT": "Hawaii-Aleutian Daylight Time", "WEZ": "Western European Standard Time", "AST": "Atlantic Standard Time", "ARST": "Argentina Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "BT": "Bhutan Time", "CDT": "Central Daylight Time", "SGT": "Singapore Standard Time", "VET": "Venezuela Time", "AKST": "Alaska Standard Time", "ECT": "Ecuador Time", "NZST": "New Zealand Standard Time", "MESZ": "Central European Summer Time", "OEZ": "Eastern European Standard Time", "HNOG": "West Greenland Standard Time", "ADT": "Atlantic Daylight Time", "AWDT": "Australian Western Daylight Time", "PDT": "Pacific Daylight Time", "HKT": "Hong Kong Standard Time", "ART": "Argentina Standard Time", "MDT": "Macau Summer Time", "ACWDT": "Australian Central Western Daylight Time", "HKST": "Hong Kong Summer Time", "HEEG": "East Greenland Summer Time", "WITA": "Central Indonesia Time", "SAST": "South Africa Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWST": "Australian Central Western Standard Time", "HNPMX": "Mexican Pacific Standard Time", "∅∅∅": "Brasilia Summer Time", "PST": "Pacific Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "GYT": "Guyana Time", "MST": "Macau Standard Time", "EDT": "Eastern Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CHADT": "Chatham Daylight Time", "TMST": "Turkmenistan Summer Time", "WESZ": "Western European Summer Time", "MYT": "Malaysia Time", "CLT": "Chile Standard Time", "HNCU": "Cuba Standard Time", "WIB": "Western Indonesia Time", "CAT": "Central Africa Time", "WART": "Western Argentina Standard Time", "EST": "Eastern Standard Time", "WAST": "West Africa Summer Time", "COT": "Colombia Standard Time", "ACST": "Australian Central Standard Time", "CHAST": "Chatham Standard Time", "NZDT": "New Zealand Daylight Time", "HAT": "Newfoundland Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "GFT": "French Guiana Time", "ChST": "Chamorro Standard Time", "SRT": "Suriname Time", "BOT": "Bolivia Time", "MEZ": "Central European Standard Time", "UYST": "Uruguay Summer Time", "AWST": "Australian Western Standard Time", "HEOG": "West Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "CST": "Central Standard Time", "JST": "Japan Standard Time", "JDT": "Japan Daylight Time", "AEDT": "Australian Eastern Daylight Time", "EAT": "East Africa Time", "IST": "India Standard Time", "HNT": "Newfoundland Standard Time", "LHDT": "Lord Howe Daylight Time", "WIT": "Eastern Indonesia Time", "GMT": "Greenwich Mean Time", "WAT": "West Africa Standard Time", "AEST": "Australian Eastern Standard Time", "UYT": "Uruguay Standard Time", "HECU": "Cuba Daylight Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "ACDT": "Australian Central Daylight Time", "HNEG": "East Greenland Standard Time", "AKDT": "Alaska Daylight Time", "LHST": "Lord Howe Standard Time", "OESZ": "Eastern European Summer Time", "CLST": "Chile Summer Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_NF) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_NF) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_NF) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_NF) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_NG/en_NG.go b/en_NG/en_NG.go
index 1db90662..d47230cb 100644
--- a/en_NG/en_NG.go
+++ b/en_NG/en_NG.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"MST": "Macau Standard Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "UYST": "Uruguay Summer Time", "ART": "Argentina Standard Time", "AWDT": "Australian Western Daylight Time", "MEZ": "Central European Standard Time", "GFT": "French Guiana Time", "ACST": "Australian Central Standard Time", "HECU": "Cuba Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "MESZ": "Central European Summer Time", "VET": "Venezuela Time", "SRT": "Suriname Time", "AWST": "Australian Western Standard Time", "LHST": "Lord Howe Standard Time", "TMT": "Turkmenistan Standard Time", "COT": "Colombia Standard Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "CDT": "Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "BT": "Bhutan Time", "PST": "Pacific Standard Time", "HKST": "Hong Kong Summer Time", "LHDT": "Lord Howe Daylight Time", "GMT": "Greenwich Mean Time", "HEPMX": "Mexican Pacific Daylight Time", "ADT": "Atlantic Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "TMST": "Turkmenistan Summer Time", "WART": "Western Argentina Standard Time", "HNPMX": "Mexican Pacific Standard Time", "NZDT": "New Zealand Daylight Time", "∅∅∅": "Amazon Summer Time", "EAT": "East Africa Time", "OEZ": "Eastern European Standard Time", "WAST": "West Africa Summer Time", "WIT": "Eastern Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "AEST": "Australian Eastern Standard Time", "CHAST": "Chatham Standard Time", "HNEG": "East Greenland Standard Time", "SGT": "Singapore Standard Time", "WIB": "Western Indonesia Time", "WESZ": "Western European Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZST": "New Zealand Standard Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "HNNOMX": "Northwest Mexico Standard Time", "HNOG": "West Greenland Standard Time", "AEDT": "Australian Eastern Daylight Time", "IST": "India Standard Time", "CLST": "Chile Summer Time", "WARST": "Western Argentina Summer Time", "UYT": "Uruguay Standard Time", "HEEG": "East Greenland Summer Time", "OESZ": "Eastern European Summer Time", "AST": "Atlantic Standard Time", "MYT": "Malaysia Time", "HNT": "Newfoundland Standard Time", "EDT": "Eastern Daylight Time", "GYT": "Guyana Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "HAT": "Newfoundland Daylight Time", "HEOG": "West Greenland Summer Time", "WITA": "Central Indonesia Time", "JDT": "Japan Daylight Time", "ChST": "Chamorro Standard Time", "ACWST": "Australian Central Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CLT": "Chile Standard Time", "JST": "Japan Standard Time", "ACDT": "Australian Central Daylight Time", "WAT": "West Africa Standard Time", "ECT": "Ecuador Time", "MDT": "Macau Summer Time", "CST": "Central Standard Time"},
+ timezones: map[string]string{"AEST": "Australian Eastern Standard Time", "UYST": "Uruguay Summer Time", "WIB": "Western Indonesia Time", "∅∅∅": "Brasilia Summer Time", "AWDT": "Australian Western Daylight Time", "BOT": "Bolivia Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWST": "Australian Central Western Standard Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "ART": "Argentina Standard Time", "HKT": "Hong Kong Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "PDT": "Pacific Daylight Time", "ADT": "Atlantic Daylight Time", "WARST": "Western Argentina Summer Time", "GYT": "Guyana Time", "ACWDT": "Australian Central Western Daylight Time", "MYT": "Malaysia Time", "CLST": "Chile Summer Time", "ACST": "Australian Central Standard Time", "COST": "Colombia Summer Time", "BT": "Bhutan Time", "HADT": "Hawaii-Aleutian Daylight Time", "JST": "Japan Standard Time", "OEZ": "Eastern European Standard Time", "CLT": "Chile Standard Time", "HNT": "Newfoundland Standard Time", "WART": "Western Argentina Standard Time", "HNEG": "East Greenland Standard Time", "SAST": "South Africa Standard Time", "ChST": "Chamorro Standard Time", "WIT": "Eastern Indonesia Time", "OESZ": "Eastern European Summer Time", "WEZ": "Western European Standard Time", "EDT": "Eastern Daylight Time", "ACDT": "Australian Central Daylight Time", "AKDT": "Alaska Daylight Time", "CHADT": "Chatham Daylight Time", "ECT": "Ecuador Time", "MDT": "Macau Summer Time", "COT": "Colombia Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "ARST": "Argentina Summer Time", "HKST": "Hong Kong Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CHAST": "Chatham Standard Time", "WESZ": "Western European Summer Time", "MST": "Macau Standard Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "UYT": "Uruguay Standard Time", "IST": "India Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AEDT": "Australian Eastern Daylight Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "SGT": "Singapore Standard Time", "VET": "Venezuela Time", "WITA": "Central Indonesia Time", "AKST": "Alaska Standard Time", "JDT": "Japan Daylight Time", "HNOG": "West Greenland Standard Time", "HAT": "Newfoundland Daylight Time", "HEEG": "East Greenland Summer Time", "SRT": "Suriname Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "EAT": "East Africa Time", "AWST": "Australian Western Standard Time", "HEOG": "West Greenland Summer Time", "GMT": "Greenwich Mean Time", "GFT": "French Guiana Time", "LHDT": "Lord Howe Daylight Time", "HECU": "Cuba Daylight Time", "MESZ": "Central European Summer Time", "AST": "Atlantic Standard Time", "HNCU": "Cuba Standard Time", "PST": "Pacific Standard Time", "CAT": "Central Africa Time", "MEZ": "Central European Standard Time", "EST": "Eastern Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_NG) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_NG) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_NG) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_NG) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_NL/en_NL.go b/en_NL/en_NL.go
index 641a953b..66218e27 100644
--- a/en_NL/en_NL.go
+++ b/en_NL/en_NL.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HAST": "Hawaii-Aleutian Standard Time", "HEOG": "West Greenland Summer Time", "AWST": "Australian Western Standard Time", "HKT": "Hong Kong Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "TMT": "Turkmenistan Standard Time", "UYST": "Uruguay Summer Time", "HAT": "Newfoundland Daylight Time", "ART": "Argentina Standard Time", "WESZ": "Western European Summer Time", "LHDT": "Lord Howe Daylight Time", "ACDT": "Australian Central Daylight Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "AWDT": "Australian Western Daylight Time", "HNT": "Newfoundland Standard Time", "AEST": "Australian Eastern Standard Time", "JDT": "Japan Daylight Time", "CLT": "Chile Standard Time", "WAT": "West Africa Standard Time", "AST": "Atlantic Standard Time", "VET": "Venezuela Time", "PST": "Pacific Standard Time", "HNCU": "Cuba Standard Time", "AKDT": "Alaska Daylight Time", "EAT": "East Africa Time", "SGT": "Singapore Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "AEDT": "Australian Eastern Daylight Time", "WIT": "Eastern Indonesia Time", "HNOG": "West Greenland Standard Time", "SAST": "South Africa Standard Time", "BOT": "Bolivia Time", "COT": "Colombia Standard Time", "EDT": "Eastern Daylight Time", "ADT": "Atlantic Daylight Time", "CDT": "Central Daylight Time", "NZST": "New Zealand Standard Time", "IST": "India Standard Time", "MEZ": "Central European Standard Time", "GMT": "Greenwich Mean Time", "HECU": "Cuba Daylight Time", "UYT": "Uruguay Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "LHST": "Lord Howe Standard Time", "HNEG": "East Greenland Standard Time", "OEZ": "Eastern European Standard Time", "WARST": "Western Argentina Summer Time", "SRT": "Suriname Time", "HKST": "Hong Kong Summer Time", "ChST": "Chamorro Standard Time", "GFT": "French Guiana Time", "HENOMX": "Northwest Mexico Daylight Time", "AKST": "Alaska Standard Time", "BT": "Bhutan Time", "WEZ": "Western European Standard Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "WAST": "West Africa Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "CST": "Central Standard Time", "CLST": "Chile Summer Time", "∅∅∅": "Amazon Summer Time", "ECT": "Ecuador Time", "CAT": "Central Africa Time", "OESZ": "Eastern European Summer Time", "PDT": "Pacific Daylight Time", "CHADT": "Chatham Daylight Time", "JST": "Japan Standard Time", "TMST": "Turkmenistan Summer Time", "WART": "Western Argentina Standard Time", "GYT": "Guyana Time", "MESZ": "Central European Summer Time", "HNPMX": "Mexican Pacific Standard Time", "MYT": "Malaysia Time", "WIB": "Western Indonesia Time", "ARST": "Argentina Summer Time", "WITA": "Central Indonesia Time", "HEEG": "East Greenland Summer Time", "ACST": "Australian Central Standard Time", "ACWST": "Australian Central Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time"},
+ timezones: map[string]string{"∅∅∅": "Azores Summer Time", "EAT": "East Africa Time", "CST": "Central Standard Time", "WARST": "Western Argentina Summer Time", "WAST": "West Africa Summer Time", "HAT": "Newfoundland Daylight Time", "MST": "Mountain Standard Time", "HECU": "Cuba Daylight Time", "SGT": "Singapore Standard Time", "EST": "Eastern Standard Time", "JDT": "Japan Daylight Time", "ARST": "Argentina Summer Time", "EDT": "Eastern Daylight Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HNEG": "East Greenland Standard Time", "WITA": "Central Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "CDT": "Central Daylight Time", "AWST": "Australian Western Standard Time", "HKST": "Hong Kong Summer Time", "HEEG": "East Greenland Summer Time", "NZDT": "New Zealand Daylight Time", "OEZ": "Eastern European Standard Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "BOT": "Bolivia Time", "WART": "Western Argentina Standard Time", "CLT": "Chile Standard Time", "TMST": "Turkmenistan Summer Time", "WAT": "West Africa Standard Time", "AEST": "Australian Eastern Standard Time", "ChST": "Chamorro Standard Time", "LHST": "Lord Howe Standard Time", "WIT": "Eastern Indonesia Time", "HKT": "Hong Kong Standard Time", "BT": "Bhutan Time", "UYT": "Uruguay Standard Time", "HNCU": "Cuba Standard Time", "CHAST": "Chatham Standard Time", "CAT": "Central Africa Time", "OESZ": "Eastern European Summer Time", "ACWDT": "Australian Central Western Daylight Time", "ADT": "Atlantic Daylight Time", "ART": "Argentina Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "AWDT": "Australian Western Daylight Time", "ECT": "Ecuador Time", "AST": "Atlantic Standard Time", "ACDT": "Australian Central Daylight Time", "PDT": "Pacific Daylight Time", "NZST": "New Zealand Standard Time", "VET": "Venezuela Time", "GMT": "Greenwich Mean Time", "MEZ": "Central European Standard Time", "AEDT": "Australian Eastern Daylight Time", "LHDT": "Lord Howe Daylight Time", "SRT": "Suriname Time", "WIB": "Western Indonesia Time", "CHADT": "Chatham Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "TMT": "Turkmenistan Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AKDT": "Alaska Daylight Time", "ACWST": "Australian Central Western Standard Time", "CLST": "Chile Summer Time", "HEOG": "West Greenland Summer Time", "MESZ": "Central European Summer Time", "HNOG": "West Greenland Standard Time", "ACST": "Australian Central Standard Time", "COST": "Colombia Summer Time", "MDT": "Mountain Daylight Time", "GFT": "French Guiana Time", "PST": "Pacific Standard Time", "IST": "India Standard Time", "WEZ": "Western European Standard Time", "WESZ": "Western European Summer Time", "AKST": "Alaska Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "JST": "Japan Standard Time", "HNT": "Newfoundland Standard Time"},
}
}
diff --git a/en_NR/en_NR.go b/en_NR/en_NR.go
index 2f6ff750..a7cdc535 100644
--- a/en_NR/en_NR.go
+++ b/en_NR/en_NR.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HADT": "Hawaii-Aleutian Daylight Time", "VET": "Venezuela Time", "PST": "Pacific Standard Time", "AWDT": "Australian Western Daylight Time", "TMST": "Turkmenistan Summer Time", "ECT": "Ecuador Time", "HNPMX": "Mexican Pacific Standard Time", "ADT": "Atlantic Daylight Time", "MEZ": "Central European Standard Time", "LHST": "Lord Howe Standard Time", "IST": "India Standard Time", "AKST": "Alaska Standard Time", "GYT": "Guyana Time", "WIT": "Eastern Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHAST": "Chatham Standard Time", "WAT": "West Africa Standard Time", "EAT": "East Africa Time", "WEZ": "Western European Standard Time", "HKST": "Hong Kong Summer Time", "GFT": "French Guiana Time", "CAT": "Central Africa Time", "HNCU": "Cuba Standard Time", "ARST": "Argentina Summer Time", "MDT": "Macau Summer Time", "UYT": "Uruguay Standard Time", "HEOG": "West Greenland Summer Time", "WESZ": "Western European Summer Time", "JST": "Japan Standard Time", "BOT": "Bolivia Time", "WART": "Western Argentina Standard Time", "SGT": "Singapore Standard Time", "AEST": "Australian Eastern Standard Time", "JDT": "Japan Daylight Time", "GMT": "Greenwich Mean Time", "MYT": "Malaysia Time", "BT": "Bhutan Time", "HECU": "Cuba Daylight Time", "MST": "Macau Standard Time", "CST": "Central Standard Time", "HKT": "Hong Kong Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HNOG": "West Greenland Standard Time", "CHADT": "Chatham Daylight Time", "TMT": "Turkmenistan Standard Time", "OESZ": "Eastern European Summer Time", "COT": "Colombia Standard Time", "OEZ": "Eastern European Standard Time", "EST": "Eastern Standard Time", "AKDT": "Alaska Daylight Time", "CDT": "Central Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZST": "New Zealand Standard Time", "SAST": "South Africa Standard Time", "ChST": "Chamorro Standard Time", "WIB": "Western Indonesia Time", "HAT": "Newfoundland Daylight Time", "ART": "Argentina Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "CLT": "Chile Standard Time", "ACDT": "Australian Central Daylight Time", "HNT": "Newfoundland Standard Time", "AWST": "Australian Western Standard Time", "PDT": "Pacific Daylight Time", "NZDT": "New Zealand Daylight Time", "MESZ": "Central European Summer Time", "COST": "Colombia Summer Time", "SRT": "Suriname Time", "WARST": "Western Argentina Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "HEEG": "East Greenland Summer Time", "WAST": "West Africa Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "UYST": "Uruguay Summer Time", "LHDT": "Lord Howe Daylight Time", "CLST": "Chile Summer Time", "HNEG": "East Greenland Standard Time", "AST": "Atlantic Standard Time", "WITA": "Central Indonesia Time", "AEDT": "Australian Eastern Daylight Time", "∅∅∅": "Amazon Summer Time", "ACST": "Australian Central Standard Time", "EDT": "Eastern Daylight Time", "ACWST": "Australian Central Western Standard Time"},
+ timezones: map[string]string{"ECT": "Ecuador Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CST": "Central Standard Time", "BOT": "Bolivia Time", "ACWST": "Australian Central Western Standard Time", "VET": "Venezuela Time", "EST": "Eastern Standard Time", "OEZ": "Eastern European Standard Time", "WART": "Western Argentina Standard Time", "MST": "Macau Standard Time", "HNT": "Newfoundland Standard Time", "HEEG": "East Greenland Summer Time", "AEDT": "Australian Eastern Daylight Time", "WIB": "Western Indonesia Time", "JST": "Japan Standard Time", "GMT": "Greenwich Mean Time", "EDT": "Eastern Daylight Time", "ACDT": "Australian Central Daylight Time", "AKST": "Alaska Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "PST": "Pacific Standard Time", "HNOG": "West Greenland Standard Time", "AST": "Atlantic Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "AWDT": "Australian Western Daylight Time", "PDT": "Pacific Daylight Time", "JDT": "Japan Daylight Time", "WESZ": "Western European Summer Time", "TMT": "Turkmenistan Standard Time", "HKST": "Hong Kong Summer Time", "WIT": "Eastern Indonesia Time", "AWST": "Australian Western Standard Time", "OESZ": "Eastern European Summer Time", "CLT": "Chile Standard Time", "WAT": "West Africa Standard Time", "COST": "Colombia Summer Time", "SAST": "South Africa Standard Time", "CHADT": "Chatham Daylight Time", "SGT": "Singapore Standard Time", "ADT": "Atlantic Daylight Time", "TMST": "Turkmenistan Summer Time", "WITA": "Central Indonesia Time", "HECU": "Cuba Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "IST": "India Standard Time", "CLST": "Chile Summer Time", "UYT": "Uruguay Standard Time", "ACST": "Australian Central Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "ChST": "Chamorro Standard Time", "HNCU": "Cuba Standard Time", "WARST": "Western Argentina Summer Time", "BT": "Bhutan Time", "AEST": "Australian Eastern Standard Time", "HNPMX": "Mexican Pacific Standard Time", "SRT": "Suriname Time", "∅∅∅": "Brasilia Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "CAT": "Central Africa Time", "MYT": "Malaysia Time", "WAST": "West Africa Summer Time", "COT": "Colombia Standard Time", "AKDT": "Alaska Daylight Time", "UYST": "Uruguay Summer Time", "CDT": "Central Daylight Time", "MESZ": "Central European Summer Time", "WEZ": "Western European Standard Time", "ART": "Argentina Standard Time", "CHAST": "Chatham Standard Time", "ACWDT": "Australian Central Western Daylight Time", "MDT": "Macau Summer Time", "ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "HAT": "Newfoundland Daylight Time", "GFT": "French Guiana Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHDT": "Lord Howe Daylight Time", "EAT": "East Africa Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "MEZ": "Central European Standard Time", "HEOG": "West Greenland Summer Time", "HNEG": "East Greenland Standard Time", "LHST": "Lord Howe Standard Time", "GYT": "Guyana Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_NR) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_NR) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_NR) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_NR) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_NU/en_NU.go b/en_NU/en_NU.go
index fa0e48bb..8bac64c0 100644
--- a/en_NU/en_NU.go
+++ b/en_NU/en_NU.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HNEG": "East Greenland Standard Time", "HNPMX": "Mexican Pacific Standard Time", "SRT": "Suriname Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ACWST": "Australian Central Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HNT": "Newfoundland Standard Time", "ART": "Argentina Standard Time", "NZST": "New Zealand Standard Time", "WAST": "West Africa Summer Time", "EDT": "Eastern Daylight Time", "BT": "Bhutan Time", "IST": "India Standard Time", "ACST": "Australian Central Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "WITA": "Central Indonesia Time", "NZDT": "New Zealand Daylight Time", "WAT": "West Africa Standard Time", "ECT": "Ecuador Time", "GMT": "Greenwich Mean Time", "HENOMX": "Northwest Mexico Daylight Time", "AEST": "Australian Eastern Standard Time", "CHAST": "Chatham Standard Time", "WARST": "Western Argentina Summer Time", "AKDT": "Alaska Daylight Time", "AST": "Atlantic Standard Time", "EAT": "East Africa Time", "GYT": "Guyana Time", "MEZ": "Central European Standard Time", "EST": "Eastern Standard Time", "HKST": "Hong Kong Summer Time", "MESZ": "Central European Summer Time", "OEZ": "Eastern European Standard Time", "CAT": "Central Africa Time", "HNNOMX": "Northwest Mexico Standard Time", "MYT": "Malaysia Time", "HAT": "Newfoundland Daylight Time", "PDT": "Pacific Daylight Time", "CHADT": "Chatham Daylight Time", "COT": "Colombia Standard Time", "SGT": "Singapore Standard Time", "CDT": "Central Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHDT": "Lord Howe Daylight Time", "CST": "Central Standard Time", "ADT": "Atlantic Daylight Time", "WEZ": "Western European Standard Time", "TMST": "Turkmenistan Summer Time", "AKST": "Alaska Standard Time", "AWST": "Australian Western Standard Time", "TMT": "Turkmenistan Standard Time", "CLT": "Chile Standard Time", "HEEG": "East Greenland Summer Time", "AEDT": "Australian Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "JDT": "Japan Daylight Time", "UYST": "Uruguay Summer Time", "WIB": "Western Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "HNOG": "West Greenland Standard Time", "SAST": "South Africa Standard Time", "∅∅∅": "Peru Summer Time", "COST": "Colombia Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "CLST": "Chile Summer Time", "AWDT": "Australian Western Daylight Time", "ChST": "Chamorro Standard Time", "BOT": "Bolivia Time", "HEOG": "West Greenland Summer Time", "WESZ": "Western European Summer Time", "HKT": "Hong Kong Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "JST": "Japan Standard Time", "GFT": "French Guiana Time", "ACDT": "Australian Central Daylight Time", "OESZ": "Eastern European Summer Time", "HNCU": "Cuba Standard Time", "WIT": "Eastern Indonesia Time", "HECU": "Cuba Daylight Time", "UYT": "Uruguay Standard Time", "PST": "Pacific Standard Time", "WART": "Western Argentina Standard Time", "VET": "Venezuela Time", "ARST": "Argentina Summer Time"},
+ timezones: map[string]string{"WART": "Western Argentina Standard Time", "CLT": "Chile Standard Time", "AST": "Atlantic Standard Time", "ART": "Argentina Standard Time", "EDT": "Eastern Daylight Time", "ACST": "Australian Central Standard Time", "BOT": "Bolivia Time", "JST": "Japan Standard Time", "AKST": "Alaska Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "AWST": "Australian Western Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "PDT": "Pacific Daylight Time", "OESZ": "Eastern European Summer Time", "LHST": "Lord Howe Standard Time", "CHAST": "Chatham Standard Time", "ECT": "Ecuador Time", "WARST": "Western Argentina Summer Time", "MDT": "Macau Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HNT": "Newfoundland Standard Time", "UYT": "Uruguay Standard Time", "UYST": "Uruguay Summer Time", "∅∅∅": "Brasilia Summer Time", "ACWDT": "Australian Central Western Daylight Time", "SRT": "Suriname Time", "HEOG": "West Greenland Summer Time", "OEZ": "Eastern European Standard Time", "WEZ": "Western European Standard Time", "WAT": "West Africa Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNEG": "East Greenland Standard Time", "CAT": "Central Africa Time", "HNOG": "West Greenland Standard Time", "GYT": "Guyana Time", "HEEG": "East Greenland Summer Time", "WITA": "Central Indonesia Time", "EST": "Eastern Standard Time", "EAT": "East Africa Time", "MEZ": "Central European Standard Time", "IST": "India Standard Time", "JDT": "Japan Daylight Time", "CLST": "Chile Summer Time", "GMT": "Greenwich Mean Time", "MYT": "Malaysia Time", "COT": "Colombia Standard Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZST": "New Zealand Standard Time", "MESZ": "Central European Summer Time", "WESZ": "Western European Summer Time", "TMST": "Turkmenistan Summer Time", "MST": "Macau Standard Time", "HKST": "Hong Kong Summer Time", "PST": "Pacific Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "AKDT": "Alaska Daylight Time", "LHDT": "Lord Howe Daylight Time", "CHADT": "Chatham Daylight Time", "BT": "Bhutan Time", "SGT": "Singapore Standard Time", "NZDT": "New Zealand Daylight Time", "TMT": "Turkmenistan Standard Time", "HKT": "Hong Kong Standard Time", "AEST": "Australian Eastern Standard Time", "SAST": "South Africa Standard Time", "HECU": "Cuba Daylight Time", "CDT": "Central Daylight Time", "COST": "Colombia Summer Time", "GFT": "French Guiana Time", "AEDT": "Australian Eastern Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "HNCU": "Cuba Standard Time", "AWDT": "Australian Western Daylight Time", "ARST": "Argentina Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "ADT": "Atlantic Daylight Time", "WAST": "West Africa Summer Time", "ACDT": "Australian Central Daylight Time", "HAT": "Newfoundland Daylight Time", "ChST": "Chamorro Standard Time", "ACWST": "Australian Central Western Standard Time", "VET": "Venezuela Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_NU) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_NU) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_NU) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_NU) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_NZ/en_NZ.go b/en_NZ/en_NZ.go
index 96b604d1..62fb95c7 100644
--- a/en_NZ/en_NZ.go
+++ b/en_NZ/en_NZ.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"AST": "Atlantic Standard Time", "ACWDT": "Australian Central Western Daylight Time", "CHADT": "Chatham Daylight Time", "CLT": "Chile Standard Time", "COT": "Colombia Standard Time", "GYT": "Guyana Time", "HNT": "Newfoundland Standard Time", "MEZ": "Central European Standard Time", "EAT": "East Africa Time", "AKDT": "Alaska Daylight Time", "ARST": "Argentina Summer Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "WITA": "Central Indonesia Time", "CLST": "Chile Summer Time", "ECT": "Ecuador Time", "HEPMX": "Mexican Pacific Daylight Time", "EST": "Eastern Standard Time", "UYT": "Uruguay Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "WESZ": "Western European Summer Time", "ACWST": "Australian Central Western Standard Time", "WART": "Western Argentina Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HNCU": "Cuba Standard Time", "NZDT": "New Zealand Daylight Time", "OEZ": "Eastern European Standard Time", "ACDT": "Australian Central Daylight Time", "OESZ": "Eastern European Summer Time", "CAT": "Central Africa Time", "WARST": "Western Argentina Summer Time", "GMT": "Greenwich Mean Time", "ART": "Argentina Standard Time", "JST": "Japan Standard Time", "TMST": "Turkmenistan Summer Time", "AEST": "Australian Eastern Standard Time", "HNEG": "East Greenland Standard Time", "COST": "Colombia Summer Time", "MST": "Macau Standard Time", "AKST": "Alaska Standard Time", "WIT": "Eastern Indonesia Time", "PST": "Pacific Standard Time", "NZST": "New Zealand Standard Time", "IST": "India Standard Time", "ChST": "Chamorro Standard Time", "WAT": "West Africa Standard Time", "SRT": "Suriname Time", "BT": "Bhutan Time", "HAT": "Newfoundland Daylight Time", "HEEG": "East Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "HECU": "Cuba Daylight Time", "AWST": "Australian Western Standard Time", "AEDT": "Australian Eastern Daylight Time", "CHAST": "Chatham Standard Time", "WAST": "West Africa Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "JDT": "Japan Daylight Time", "HKST": "Hong Kong Summer Time", "WIB": "Western Indonesia Time", "WEZ": "Western European Standard Time", "SGT": "Singapore Standard Time", "MYT": "Malaysia Time", "ADT": "Atlantic Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "HKT": "Hong Kong Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "CDT": "Central Daylight Time", "MDT": "Macau Summer Time", "VET": "Venezuela Time", "∅∅∅": "Amazon Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "CST": "Central Standard Time", "PDT": "Pacific Daylight Time", "LHDT": "Lord Howe Daylight Time", "ACST": "Australian Central Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "EDT": "Eastern Daylight Time", "UYST": "Uruguay Summer Time", "LHST": "Lord Howe Standard Time", "MESZ": "Central European Summer Time", "AWDT": "Australian Western Daylight Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time"},
+ timezones: map[string]string{"AWDT": "Australian Western Daylight Time", "MESZ": "Central European Summer Time", "WESZ": "Western European Summer Time", "MDT": "Macau Summer Time", "GFT": "French Guiana Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "PST": "Pacific Standard Time", "AST": "Atlantic Standard Time", "ACDT": "Australian Central Daylight Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "ChST": "Chamorro Standard Time", "BOT": "Bolivia Time", "ACWST": "Australian Central Western Standard Time", "WAST": "West Africa Summer Time", "COST": "Colombia Summer Time", "UYST": "Uruguay Summer Time", "HNPMX": "Mexican Pacific Standard Time", "HEOG": "West Greenland Summer Time", "EST": "Eastern Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "SAST": "South Africa Standard Time", "NZST": "New Zealand Standard Time", "∅∅∅": "Amazon Summer Time", "GMT": "Greenwich Mean Time", "HKT": "Hong Kong Standard Time", "HNEG": "East Greenland Standard Time", "OESZ": "Eastern European Summer Time", "WEZ": "Western European Standard Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "COT": "Colombia Standard Time", "HEEG": "East Greenland Summer Time", "CDT": "Central Daylight Time", "CHAST": "Chatham Standard Time", "ART": "Argentina Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "EAT": "East Africa Time", "HNCU": "Cuba Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "IST": "India Standard Time", "HAT": "Newfoundland Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "HECU": "Cuba Daylight Time", "SGT": "Singapore Standard Time", "CAT": "Central Africa Time", "JST": "Japan Standard Time", "JDT": "Japan Daylight Time", "WART": "Western Argentina Standard Time", "CST": "Central Standard Time", "CLST": "Chile Summer Time", "AEST": "Australian Eastern Standard Time", "GYT": "Guyana Time", "ADT": "Atlantic Daylight Time", "ARST": "Argentina Summer Time", "ACWDT": "Australian Central Western Daylight Time", "VET": "Venezuela Time", "HNOG": "West Greenland Standard Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "MEZ": "Central European Standard Time", "EDT": "Eastern Daylight Time", "HKST": "Hong Kong Summer Time", "ACST": "Australian Central Standard Time", "HNT": "Newfoundland Standard Time", "WITA": "Central Indonesia Time", "UYT": "Uruguay Standard Time", "OEZ": "Eastern European Standard Time", "WAT": "West Africa Standard Time", "BT": "Bhutan Time", "AWST": "Australian Western Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "NZDT": "New Zealand Daylight Time", "MYT": "Malaysia Time", "WARST": "Western Argentina Summer Time", "MST": "Macau Standard Time", "CHADT": "Chatham Daylight Time", "PDT": "Pacific Daylight Time", "ECT": "Ecuador Time", "CLT": "Chile Standard Time", "AEDT": "Australian Eastern Daylight Time", "SRT": "Suriname Time"},
}
}
@@ -495,13 +495,11 @@ func (en *en_NZ) FmtTimeShort(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -509,13 +507,6 @@ func (en *en_NZ) FmtTimeShort(t time.Time) string {
}
b = strconv.AppendInt(b, int64(t.Minute()), 10)
- b = append(b, []byte{0x20}...)
-
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
return string(b)
}
@@ -525,13 +516,11 @@ func (en *en_NZ) FmtTimeMedium(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -546,13 +535,6 @@ func (en *en_NZ) FmtTimeMedium(t time.Time) string {
}
b = strconv.AppendInt(b, int64(t.Second()), 10)
- b = append(b, []byte{0x20}...)
-
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
return string(b)
}
@@ -562,13 +544,11 @@ func (en *en_NZ) FmtTimeLong(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -585,14 +565,6 @@ func (en *en_NZ) FmtTimeLong(t time.Time) string {
b = strconv.AppendInt(b, int64(t.Second()), 10)
b = append(b, []byte{0x20}...)
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
-
- b = append(b, []byte{0x20}...)
-
tz, _ := t.Zone()
b = append(b, tz...)
@@ -604,13 +576,11 @@ func (en *en_NZ) FmtTimeFull(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -627,14 +597,6 @@ func (en *en_NZ) FmtTimeFull(t time.Time) string {
b = strconv.AppendInt(b, int64(t.Second()), 10)
b = append(b, []byte{0x20}...)
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
-
- b = append(b, []byte{0x20}...)
-
tz, _ := t.Zone()
if btz, ok := en.timezones[tz]; ok {
diff --git a/en_PG/en_PG.go b/en_PG/en_PG.go
index 87f39d48..17882640 100644
--- a/en_PG/en_PG.go
+++ b/en_PG/en_PG.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"GFT": "French Guiana Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "WEZ": "Western European Standard Time", "AWDT": "Australian Western Daylight Time", "CHAST": "Chatham Standard Time", "CHADT": "Chatham Daylight Time", "NZST": "New Zealand Standard Time", "VET": "Venezuela Time", "HNOG": "West Greenland Standard Time", "MESZ": "Central European Summer Time", "ARST": "Argentina Summer Time", "JST": "Japan Standard Time", "ACST": "Australian Central Standard Time", "COST": "Colombia Summer Time", "EDT": "Eastern Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HKT": "Hong Kong Standard Time", "LHDT": "Lord Howe Daylight Time", "CAT": "Central Africa Time", "ADT": "Atlantic Daylight Time", "UYST": "Uruguay Summer Time", "ACWDT": "Australian Central Western Daylight Time", "WITA": "Central Indonesia Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "ECT": "Ecuador Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HECU": "Cuba Daylight Time", "CST": "Central Standard Time", "AST": "Atlantic Standard Time", "LHST": "Lord Howe Standard Time", "SRT": "Suriname Time", "HAT": "Newfoundland Daylight Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "MEZ": "Central European Standard Time", "JDT": "Japan Daylight Time", "ACDT": "Australian Central Daylight Time", "COT": "Colombia Standard Time", "UYT": "Uruguay Standard Time", "ACWST": "Australian Central Western Standard Time", "CLT": "Chile Standard Time", "TMT": "Turkmenistan Standard Time", "MDT": "Macau Summer Time", "PST": "Pacific Standard Time", "TMST": "Turkmenistan Summer Time", "EAT": "East Africa Time", "WAST": "West Africa Summer Time", "MST": "Macau Standard Time", "CDT": "Central Daylight Time", "GYT": "Guyana Time", "AKST": "Alaska Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "BOT": "Bolivia Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "SGT": "Singapore Standard Time", "WIT": "Eastern Indonesia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CLST": "Chile Summer Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "WESZ": "Western European Summer Time", "SAST": "South Africa Standard Time", "ChST": "Chamorro Standard Time", "OESZ": "Eastern European Summer Time", "GMT": "Greenwich Mean Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "HKST": "Hong Kong Summer Time", "OEZ": "Eastern European Standard Time", "∅∅∅": "Peru Summer Time", "EST": "Eastern Standard Time", "MYT": "Malaysia Time", "HNT": "Newfoundland Standard Time", "AWST": "Australian Western Standard Time", "HEEG": "East Greenland Summer Time", "AKDT": "Alaska Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "HEOG": "West Greenland Summer Time", "PDT": "Pacific Daylight Time", "HNEG": "East Greenland Standard Time"},
+ timezones: map[string]string{"MESZ": "Central European Summer Time", "JST": "Japan Standard Time", "CLT": "Chile Standard Time", "TMST": "Turkmenistan Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "SAST": "South Africa Standard Time", "LHDT": "Lord Howe Daylight Time", "EST": "Eastern Standard Time", "HECU": "Cuba Daylight Time", "CHADT": "Chatham Daylight Time", "CLST": "Chile Summer Time", "EDT": "Eastern Daylight Time", "HKST": "Hong Kong Summer Time", "ACST": "Australian Central Standard Time", "HNEG": "East Greenland Standard Time", "HEEG": "East Greenland Summer Time", "HNPMX": "Mexican Pacific Standard Time", "GYT": "Guyana Time", "HAST": "Hawaii-Aleutian Standard Time", "MYT": "Malaysia Time", "WARST": "Western Argentina Summer Time", "AEST": "Australian Eastern Standard Time", "CHAST": "Chatham Standard Time", "HKT": "Hong Kong Standard Time", "COST": "Colombia Summer Time", "AWDT": "Australian Western Daylight Time", "ACWST": "Australian Central Western Standard Time", "OEZ": "Eastern European Standard Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "AEDT": "Australian Eastern Daylight Time", "∅∅∅": "Azores Summer Time", "IST": "India Standard Time", "HEOG": "West Greenland Summer Time", "WEZ": "Western European Standard Time", "ART": "Argentina Standard Time", "AKST": "Alaska Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "EAT": "East Africa Time", "ACWDT": "Australian Central Western Daylight Time", "MDT": "Macau Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "GFT": "French Guiana Time", "WIT": "Eastern Indonesia Time", "PST": "Pacific Standard Time", "ECT": "Ecuador Time", "MST": "Macau Standard Time", "ARST": "Argentina Summer Time", "AKDT": "Alaska Daylight Time", "CDT": "Central Daylight Time", "AST": "Atlantic Standard Time", "WART": "Western Argentina Standard Time", "BT": "Bhutan Time", "HNT": "Newfoundland Standard Time", "NZDT": "New Zealand Daylight Time", "JDT": "Japan Daylight Time", "OESZ": "Eastern European Summer Time", "ChST": "Chamorro Standard Time", "UYT": "Uruguay Standard Time", "WIB": "Western Indonesia Time", "AWST": "Australian Western Standard Time", "SGT": "Singapore Standard Time", "WAST": "West Africa Summer Time", "GMT": "Greenwich Mean Time", "UYST": "Uruguay Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "PDT": "Pacific Daylight Time", "VET": "Venezuela Time", "HNOG": "West Greenland Standard Time", "HNCU": "Cuba Standard Time", "BOT": "Bolivia Time", "WESZ": "Western European Summer Time", "ACDT": "Australian Central Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "WITA": "Central Indonesia Time", "CST": "Central Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "CAT": "Central Africa Time", "MEZ": "Central European Standard Time", "COT": "Colombia Standard Time", "SRT": "Suriname Time", "ADT": "Atlantic Daylight Time", "HAT": "Newfoundland Daylight Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_PG) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_PG) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
@@ -405,15 +405,25 @@ func (en *en_PG) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_PG) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_PG) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_PG) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_PH/en_PH.go b/en_PH/en_PH.go
index c2ac99da..514a0951 100644
--- a/en_PH/en_PH.go
+++ b/en_PH/en_PH.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"CHADT": "Chatham Daylight Time", "WARST": "Western Argentina Summer Time", "AWST": "Australian Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "HKT": "Hong Kong Standard Time", "NZDT": "New Zealand Daylight Time", "HEEG": "East Greenland Summer Time", "ACST": "Australian Central Standard Time", "ADT": "Atlantic Daylight Time", "PDT": "Pacific Daylight Time", "HAT": "Newfoundland Daylight Time", "AEDT": "Australian Eastern Daylight Time", "GYT": "Guyana Time", "HEOG": "West Greenland Summer Time", "HKST": "Hong Kong Summer Time", "MEZ": "Central European Standard Time", "MESZ": "Central European Summer Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "CLT": "Chile Standard Time", "UYST": "Uruguay Summer Time", "LHDT": "Lord Howe Daylight Time", "JDT": "Japan Daylight Time", "OEZ": "Eastern European Standard Time", "AKDT": "Alaska Daylight Time", "CST": "Central Standard Time", "SRT": "Suriname Time", "WESZ": "Western European Summer Time", "AEST": "Australian Eastern Standard Time", "CDT": "Central Daylight Time", "ACDT": "Australian Central Daylight Time", "WART": "Western Argentina Standard Time", "ART": "Argentina Standard Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "WAST": "West Africa Summer Time", "OESZ": "Eastern European Summer Time", "ECT": "Ecuador Time", "MYT": "Malaysia Time", "AST": "Atlantic Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "WIT": "Eastern Indonesia Time", "HNEG": "East Greenland Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "WEZ": "Western European Standard Time", "ACWDT": "Australian Central Western Daylight Time", "IST": "India Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "∅∅∅": "Amazon Summer Time", "JST": "Japan Standard Time", "EAT": "East Africa Time", "EST": "Eastern Standard Time", "MDT": "Macau Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "VET": "Venezuela Time", "SAST": "South Africa Standard Time", "UYT": "Uruguay Standard Time", "HNOG": "West Greenland Standard Time", "ChST": "Chamorro Standard Time", "TMST": "Turkmenistan Summer Time", "HECU": "Cuba Daylight Time", "EDT": "Eastern Daylight Time", "AKST": "Alaska Standard Time", "WIB": "Western Indonesia Time", "PST": "Pacific Standard Time", "HNT": "Newfoundland Standard Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "BT": "Bhutan Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "CLST": "Chile Summer Time", "COST": "Colombia Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "GMT": "Greenwich Mean Time", "MST": "Macau Standard Time", "ACWST": "Australian Central Western Standard Time", "WITA": "Central Indonesia Time", "NZST": "New Zealand Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CHAST": "Chatham Standard Time"},
+ timezones: map[string]string{"AKDT": "Alaska Daylight Time", "CST": "Central Standard Time", "GMT": "Greenwich Mean Time", "OEZ": "Eastern European Standard Time", "HECU": "Cuba Daylight Time", "AWST": "Australian Western Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "WESZ": "Western European Summer Time", "LHDT": "Lord Howe Daylight Time", "LHST": "Lord Howe Standard Time", "PDT": "Pacific Daylight Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "OESZ": "Eastern European Summer Time", "WAST": "West Africa Summer Time", "HNEG": "East Greenland Standard Time", "SAST": "South Africa Standard Time", "EAT": "East Africa Time", "HNCU": "Cuba Standard Time", "JST": "Japan Standard Time", "JDT": "Japan Daylight Time", "AST": "Atlantic Standard Time", "TMT": "Turkmenistan Standard Time", "COST": "Colombia Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "GFT": "French Guiana Time", "HEEG": "East Greenland Summer Time", "MST": "Macau Standard Time", "HNPMX": "Mexican Pacific Standard Time", "WIB": "Western Indonesia Time", "MEZ": "Central European Standard Time", "CLST": "Chile Summer Time", "HAT": "Newfoundland Daylight Time", "SRT": "Suriname Time", "UYST": "Uruguay Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "AWDT": "Australian Western Daylight Time", "EST": "Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "UYT": "Uruguay Standard Time", "ACWST": "Australian Central Western Standard Time", "VET": "Venezuela Time", "HNNOMX": "Northwest Mexico Standard Time", "CHADT": "Chatham Daylight Time", "CHAST": "Chatham Standard Time", "SGT": "Singapore Standard Time", "PST": "Pacific Standard Time", "WEZ": "Western European Standard Time", "WITA": "Central Indonesia Time", "HEPMX": "Mexican Pacific Daylight Time", "CLT": "Chile Standard Time", "ADT": "Atlantic Daylight Time", "WAT": "West Africa Standard Time", "EDT": "Eastern Daylight Time", "AEST": "Australian Eastern Standard Time", "WART": "Western Argentina Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNOG": "West Greenland Standard Time", "TMST": "Turkmenistan Summer Time", "ACDT": "Australian Central Daylight Time", "CDT": "Central Daylight Time", "WIT": "Eastern Indonesia Time", "BOT": "Bolivia Time", "MYT": "Malaysia Time", "COT": "Colombia Standard Time", "ChST": "Chamorro Standard Time", "GYT": "Guyana Time", "CAT": "Central Africa Time", "MESZ": "Central European Summer Time", "ARST": "Argentina Summer Time", "ACST": "Australian Central Standard Time", "BT": "Bhutan Time", "∅∅∅": "Azores Summer Time", "WARST": "Western Argentina Summer Time", "HEOG": "West Greenland Summer Time", "ART": "Argentina Standard Time", "HKT": "Hong Kong Standard Time", "ACWDT": "Australian Central Western Daylight Time", "IST": "India Standard Time", "MDT": "Macau Summer Time", "HKST": "Hong Kong Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HNT": "Newfoundland Standard Time", "AKST": "Alaska Standard Time", "ECT": "Ecuador Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_PH) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_PH) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod100 := math.Mod(n, 100)
nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
@@ -405,15 +405,25 @@ func (en *en_PH) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_PH) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_PH) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_PH) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_PK/en_PK.go b/en_PK/en_PK.go
index 7b9c3d7d..61db10e5 100644
--- a/en_PK/en_PK.go
+++ b/en_PK/en_PK.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HNT": "Newfoundland Standard Time", "ACST": "Australian Central Standard Time", "WAT": "West Africa Standard Time", "COST": "Colombia Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "PDT": "Pacific Daylight Time", "AKST": "Alaska Standard Time", "WIB": "Western Indonesia Time", "MEZ": "Central European Standard Time", "BT": "Bhutan Time", "HNEG": "East Greenland Standard Time", "HEEG": "East Greenland Summer Time", "WARST": "Western Argentina Summer Time", "WITA": "Central Indonesia Time", "CHADT": "Chatham Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "HEOG": "West Greenland Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "HECU": "Cuba Daylight Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "JDT": "Japan Daylight Time", "ChST": "Chamorro Standard Time", "CAT": "Central Africa Time", "AEDT": "Australian Eastern Daylight Time", "JST": "Japan Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "WIT": "Eastern Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "HKT": "Hong Kong Standard Time", "NZDT": "New Zealand Daylight Time", "COT": "Colombia Standard Time", "EST": "Eastern Standard Time", "AKDT": "Alaska Daylight Time", "CHAST": "Chatham Standard Time", "OEZ": "Eastern European Standard Time", "SRT": "Suriname Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CLST": "Chile Summer Time", "WAST": "West Africa Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "GMT": "Greenwich Mean Time", "AST": "Atlantic Standard Time", "EAT": "East Africa Time", "CST": "Central Standard Time", "WESZ": "Western European Summer Time", "MESZ": "Central European Summer Time", "AEST": "Australian Eastern Standard Time", "SGT": "Singapore Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CDT": "Central Daylight Time", "WART": "Western Argentina Standard Time", "PST": "Pacific Standard Time", "CLT": "Chile Standard Time", "WEZ": "Western European Standard Time", "ART": "Argentina Standard Time", "AWST": "Australian Western Standard Time", "IST": "India Standard Time", "BOT": "Bolivia Time", "HNCU": "Cuba Standard Time", "GYT": "Guyana Time", "ADT": "Atlantic Daylight Time", "OESZ": "Eastern European Summer Time", "VET": "Venezuela Time", "AWDT": "Australian Western Daylight Time", "TMST": "Turkmenistan Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "EDT": "Eastern Daylight Time", "MYT": "Malaysia Time", "HKST": "Hong Kong Summer Time", "GFT": "French Guiana Time", "ECT": "Ecuador Time", "ACWST": "Australian Central Western Standard Time", "HAT": "Newfoundland Daylight Time", "NZST": "New Zealand Standard Time", "SAST": "South Africa Standard Time", "UYT": "Uruguay Standard Time", "UYST": "Uruguay Summer Time", "HNOG": "West Greenland Standard Time", "ACDT": "Australian Central Daylight Time", "∅∅∅": "Azores Summer Time", "ARST": "Argentina Summer Time", "TMT": "Turkmenistan Standard Time"},
+ timezones: map[string]string{"PST": "Pacific Standard Time", "HEOG": "West Greenland Summer Time", "BT": "Bhutan Time", "AKST": "Alaska Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "∅∅∅": "Brasilia Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "NZST": "New Zealand Standard Time", "ACWST": "Australian Central Western Standard Time", "MEZ": "Central European Standard Time", "HKT": "Hong Kong Standard Time", "MYT": "Malaysia Time", "ADT": "Atlantic Daylight Time", "WEZ": "Western European Standard Time", "GFT": "French Guiana Time", "CST": "Central Standard Time", "CHAST": "Chatham Standard Time", "JDT": "Japan Daylight Time", "WART": "Western Argentina Standard Time", "ACST": "Australian Central Standard Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "AEDT": "Australian Eastern Daylight Time", "AKDT": "Alaska Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "JST": "Japan Standard Time", "TMT": "Turkmenistan Standard Time", "MDT": "Macau Summer Time", "WITA": "Central Indonesia Time", "UYST": "Uruguay Summer Time", "GYT": "Guyana Time", "GMT": "Greenwich Mean Time", "AST": "Atlantic Standard Time", "WESZ": "Western European Summer Time", "ARST": "Argentina Summer Time", "EDT": "Eastern Daylight Time", "WAST": "West Africa Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "BOT": "Bolivia Time", "ART": "Argentina Standard Time", "HNCU": "Cuba Standard Time", "PDT": "Pacific Daylight Time", "ChST": "Chamorro Standard Time", "SRT": "Suriname Time", "CHADT": "Chatham Daylight Time", "SGT": "Singapore Standard Time", "ECT": "Ecuador Time", "NZDT": "New Zealand Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "OEZ": "Eastern European Standard Time", "HKST": "Hong Kong Summer Time", "HNT": "Newfoundland Standard Time", "EAT": "East Africa Time", "WIB": "Western Indonesia Time", "WAT": "West Africa Standard Time", "SAST": "South Africa Standard Time", "LHST": "Lord Howe Standard Time", "HECU": "Cuba Daylight Time", "AWDT": "Australian Western Daylight Time", "IST": "India Standard Time", "VET": "Venezuela Time", "TMST": "Turkmenistan Summer Time", "CDT": "Central Daylight Time", "HNEG": "East Greenland Standard Time", "LHDT": "Lord Howe Daylight Time", "CAT": "Central Africa Time", "MESZ": "Central European Summer Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "AWST": "Australian Western Standard Time", "HNOG": "West Greenland Standard Time", "COST": "Colombia Summer Time", "HEEG": "East Greenland Summer Time", "WIT": "Eastern Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "WARST": "Western Argentina Summer Time", "OESZ": "Eastern European Summer Time", "MST": "Macau Standard Time", "EST": "Eastern Standard Time", "ACDT": "Australian Central Daylight Time", "UYT": "Uruguay Standard Time", "HEPMX": "Mexican Pacific Daylight Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_PK) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_PK) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod100 := math.Mod(n, 100)
nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
@@ -487,13 +487,11 @@ func (en *en_PK) FmtTimeShort(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -501,13 +499,6 @@ func (en *en_PK) FmtTimeShort(t time.Time) string {
}
b = strconv.AppendInt(b, int64(t.Minute()), 10)
- b = append(b, []byte{0x20}...)
-
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
return string(b)
}
@@ -517,13 +508,11 @@ func (en *en_PK) FmtTimeMedium(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -538,13 +527,6 @@ func (en *en_PK) FmtTimeMedium(t time.Time) string {
}
b = strconv.AppendInt(b, int64(t.Second()), 10)
- b = append(b, []byte{0x20}...)
-
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
return string(b)
}
@@ -554,13 +536,11 @@ func (en *en_PK) FmtTimeLong(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -577,14 +557,6 @@ func (en *en_PK) FmtTimeLong(t time.Time) string {
b = strconv.AppendInt(b, int64(t.Second()), 10)
b = append(b, []byte{0x20}...)
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
-
- b = append(b, []byte{0x20}...)
-
tz, _ := t.Zone()
b = append(b, tz...)
@@ -596,13 +568,11 @@ func (en *en_PK) FmtTimeFull(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -619,14 +589,6 @@ func (en *en_PK) FmtTimeFull(t time.Time) string {
b = strconv.AppendInt(b, int64(t.Second()), 10)
b = append(b, []byte{0x20}...)
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
-
- b = append(b, []byte{0x20}...)
-
tz, _ := t.Zone()
if btz, ok := en.timezones[tz]; ok {
diff --git a/en_PN/en_PN.go b/en_PN/en_PN.go
index 77645e6e..2ea7fd0d 100644
--- a/en_PN/en_PN.go
+++ b/en_PN/en_PN.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"MST": "Macau Standard Time", "UYT": "Uruguay Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HEOG": "West Greenland Summer Time", "∅∅∅": "Amazon Summer Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "ACDT": "Australian Central Daylight Time", "ACWST": "Australian Central Western Standard Time", "CHADT": "Chatham Daylight Time", "ECT": "Ecuador Time", "WIB": "Western Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "PST": "Pacific Standard Time", "HNT": "Newfoundland Standard Time", "HNEG": "East Greenland Standard Time", "WAT": "West Africa Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HECU": "Cuba Daylight Time", "COT": "Colombia Standard Time", "AST": "Atlantic Standard Time", "SRT": "Suriname Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHAST": "Chatham Standard Time", "ACST": "Australian Central Standard Time", "EAT": "East Africa Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "BT": "Bhutan Time", "WITA": "Central Indonesia Time", "CAT": "Central Africa Time", "HNCU": "Cuba Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "SAST": "South Africa Standard Time", "JST": "Japan Standard Time", "TMST": "Turkmenistan Summer Time", "COST": "Colombia Summer Time", "WESZ": "Western European Summer Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "HEEG": "East Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "WEZ": "Western European Standard Time", "MESZ": "Central European Summer Time", "LHDT": "Lord Howe Daylight Time", "CST": "Central Standard Time", "AEST": "Australian Eastern Standard Time", "CDT": "Central Daylight Time", "HKST": "Hong Kong Summer Time", "OESZ": "Eastern European Summer Time", "WART": "Western Argentina Standard Time", "GMT": "Greenwich Mean Time", "HEPMX": "Mexican Pacific Daylight Time", "EDT": "Eastern Daylight Time", "AWST": "Australian Western Standard Time", "NZDT": "New Zealand Daylight Time", "CLT": "Chile Standard Time", "JDT": "Japan Daylight Time", "HAT": "Newfoundland Daylight Time", "ChST": "Chamorro Standard Time", "SGT": "Singapore Standard Time", "ADT": "Atlantic Daylight Time", "WIT": "Eastern Indonesia Time", "WARST": "Western Argentina Summer Time", "HNOG": "West Greenland Standard Time", "ACWDT": "Australian Central Western Daylight Time", "ART": "Argentina Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "ARST": "Argentina Summer Time", "MEZ": "Central European Standard Time", "IST": "India Standard Time", "CLST": "Chile Summer Time", "OEZ": "Eastern European Standard Time", "VET": "Venezuela Time", "PDT": "Pacific Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HKT": "Hong Kong Standard Time", "NZST": "New Zealand Standard Time", "WAST": "West Africa Summer Time", "EST": "Eastern Standard Time", "AKST": "Alaska Standard Time"},
+ timezones: map[string]string{"GMT": "Greenwich Mean Time", "AKDT": "Alaska Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "BOT": "Bolivia Time", "NZST": "New Zealand Standard Time", "JST": "Japan Standard Time", "NZDT": "New Zealand Daylight Time", "EST": "Eastern Standard Time", "HKT": "Hong Kong Standard Time", "HNT": "Newfoundland Standard Time", "HNCU": "Cuba Standard Time", "CDT": "Central Daylight Time", "PDT": "Pacific Daylight Time", "IST": "India Standard Time", "CHAST": "Chatham Standard Time", "GFT": "French Guiana Time", "AEDT": "Australian Eastern Daylight Time", "ChST": "Chamorro Standard Time", "PST": "Pacific Standard Time", "ECT": "Ecuador Time", "LHST": "Lord Howe Standard Time", "HECU": "Cuba Daylight Time", "CHADT": "Chatham Daylight Time", "EDT": "Eastern Daylight Time", "COT": "Colombia Standard Time", "LHDT": "Lord Howe Daylight Time", "GYT": "Guyana Time", "AWDT": "Australian Western Daylight Time", "HKST": "Hong Kong Summer Time", "UYST": "Uruguay Summer Time", "WARST": "Western Argentina Summer Time", "UYT": "Uruguay Standard Time", "SGT": "Singapore Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "∅∅∅": "Amazon Summer Time", "WAST": "West Africa Summer Time", "VET": "Venezuela Time", "TMST": "Turkmenistan Summer Time", "MDT": "Macau Summer Time", "WAT": "West Africa Standard Time", "COST": "Colombia Summer Time", "BT": "Bhutan Time", "CST": "Central Standard Time", "HEOG": "West Greenland Summer Time", "WEZ": "Western European Standard Time", "OESZ": "Eastern European Summer Time", "ACST": "Australian Central Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNEG": "East Greenland Standard Time", "EAT": "East Africa Time", "CLT": "Chile Standard Time", "OEZ": "Eastern European Standard Time", "TMT": "Turkmenistan Standard Time", "MST": "Macau Standard Time", "ARST": "Argentina Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MEZ": "Central European Standard Time", "AST": "Atlantic Standard Time", "AEST": "Australian Eastern Standard Time", "WIB": "Western Indonesia Time", "MESZ": "Central European Summer Time", "WESZ": "Western European Summer Time", "WART": "Western Argentina Standard Time", "ACDT": "Australian Central Daylight Time", "HAT": "Newfoundland Daylight Time", "HEEG": "East Greenland Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "WIT": "Eastern Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "WITA": "Central Indonesia Time", "SAST": "South Africa Standard Time", "AWST": "Australian Western Standard Time", "JDT": "Japan Daylight Time", "ART": "Argentina Standard Time", "HNOG": "West Greenland Standard Time", "MYT": "Malaysia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "ACWST": "Australian Central Western Standard Time", "CLST": "Chile Summer Time", "AKST": "Alaska Standard Time", "SRT": "Suriname Time", "CAT": "Central Africa Time", "ADT": "Atlantic Daylight Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_PN) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_PN) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_PN) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_PN) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_PR/en_PR.go b/en_PR/en_PR.go
index f871dc7f..c7d96752 100644
--- a/en_PR/en_PR.go
+++ b/en_PR/en_PR.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"COT": "Colombia Standard Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "EDT": "Eastern Daylight Time", "HKST": "Hong Kong Summer Time", "WITA": "Central Indonesia Time", "CLST": "Chile Summer Time", "ChST": "Chamorro Standard Time", "HNOG": "West Greenland Standard Time", "TMST": "Turkmenistan Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "SRT": "Suriname Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "WEZ": "Western European Standard Time", "HNEG": "East Greenland Standard Time", "BOT": "Bolivia Time", "EAT": "East Africa Time", "SGT": "Singapore Standard Time", "NZST": "New Zealand Standard Time", "WAT": "West Africa Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "ACWST": "Australian Central Western Standard Time", "HKT": "Hong Kong Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HEEG": "East Greenland Summer Time", "WAST": "West Africa Summer Time", "ACWDT": "Australian Central Western Daylight Time", "AEST": "Australian Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "ADT": "Atlantic Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "ARST": "Argentina Summer Time", "HEOG": "West Greenland Summer Time", "PST": "Pacific Standard Time", "IST": "India Standard Time", "WART": "Western Argentina Standard Time", "MYT": "Malaysia Time", "VET": "Venezuela Time", "AST": "Atlantic Standard Time", "PDT": "Pacific Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "ECT": "Ecuador Time", "AWST": "Australian Western Standard Time", "∅∅∅": "Amazon Summer Time", "GMT": "Greenwich Mean Time", "EST": "Eastern Standard Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "GYT": "Guyana Time", "AWDT": "Australian Western Daylight Time", "CHADT": "Chatham Daylight Time", "LHDT": "Lord Howe Daylight Time", "CLT": "Chile Standard Time", "UYST": "Uruguay Summer Time", "BT": "Bhutan Time", "SAST": "South Africa Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "MST": "Macau Standard Time", "ART": "Argentina Standard Time", "WARST": "Western Argentina Summer Time", "WIB": "Western Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "NZDT": "New Zealand Daylight Time", "ACST": "Australian Central Standard Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "UYT": "Uruguay Standard Time", "MEZ": "Central European Standard Time", "GFT": "French Guiana Time", "AKST": "Alaska Standard Time", "CDT": "Central Daylight Time", "JDT": "Japan Daylight Time", "TMT": "Turkmenistan Standard Time", "ACDT": "Australian Central Daylight Time", "CAT": "Central Africa Time", "CHAST": "Chatham Standard Time", "MESZ": "Central European Summer Time", "LHST": "Lord Howe Standard Time", "JST": "Japan Standard Time", "MDT": "Macau Summer Time", "WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time"},
+ timezones: map[string]string{"TMT": "Turkmenistan Standard Time", "MST": "Macau Standard Time", "AKST": "Alaska Standard Time", "WIB": "Western Indonesia Time", "PST": "Pacific Standard Time", "IST": "India Standard Time", "ACWST": "Australian Central Western Standard Time", "OEZ": "Eastern European Standard Time", "WAT": "West Africa Standard Time", "SAST": "South Africa Standard Time", "WIT": "Eastern Indonesia Time", "MESZ": "Central European Summer Time", "HNOG": "West Greenland Standard Time", "ARST": "Argentina Summer Time", "AKDT": "Alaska Daylight Time", "GFT": "French Guiana Time", "ChST": "Chamorro Standard Time", "SRT": "Suriname Time", "HNCU": "Cuba Standard Time", "GMT": "Greenwich Mean Time", "HKT": "Hong Kong Standard Time", "PDT": "Pacific Daylight Time", "MEZ": "Central European Standard Time", "AST": "Atlantic Standard Time", "COST": "Colombia Summer Time", "BT": "Bhutan Time", "HAT": "Newfoundland Daylight Time", "AEDT": "Australian Eastern Daylight Time", "∅∅∅": "Azores Summer Time", "AWST": "Australian Western Standard Time", "CAT": "Central Africa Time", "WARST": "Western Argentina Summer Time", "WAST": "West Africa Summer Time", "CHADT": "Chatham Daylight Time", "CLT": "Chile Standard Time", "EST": "Eastern Standard Time", "HKST": "Hong Kong Summer Time", "ACST": "Australian Central Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CST": "Central Standard Time", "NZDT": "New Zealand Daylight Time", "WESZ": "Western European Summer Time", "UYST": "Uruguay Summer Time", "HNPMX": "Mexican Pacific Standard Time", "WART": "Western Argentina Standard Time", "MDT": "Macau Summer Time", "WITA": "Central Indonesia Time", "TMST": "Turkmenistan Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "JST": "Japan Standard Time", "CDT": "Central Daylight Time", "BOT": "Bolivia Time", "ART": "Argentina Standard Time", "HEOG": "West Greenland Summer Time", "EDT": "Eastern Daylight Time", "ACDT": "Australian Central Daylight Time", "UYT": "Uruguay Standard Time", "LHDT": "Lord Howe Daylight Time", "ECT": "Ecuador Time", "VET": "Venezuela Time", "CLST": "Chile Summer Time", "GYT": "Guyana Time", "JDT": "Japan Daylight Time", "ADT": "Atlantic Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "HNEG": "East Greenland Standard Time", "EAT": "East Africa Time", "SGT": "Singapore Standard Time", "HNT": "Newfoundland Standard Time", "WEZ": "Western European Standard Time", "MYT": "Malaysia Time", "COT": "Colombia Standard Time", "LHST": "Lord Howe Standard Time", "AWDT": "Australian Western Daylight Time", "CHAST": "Chatham Standard Time", "NZST": "New Zealand Standard Time", "OESZ": "Eastern European Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HEEG": "East Greenland Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "HECU": "Cuba Daylight Time", "AEST": "Australian Eastern Standard Time"},
}
}
diff --git a/en_PW/en_PW.go b/en_PW/en_PW.go
index ef217cbd..4bac37ed 100644
--- a/en_PW/en_PW.go
+++ b/en_PW/en_PW.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"TMST": "Turkmenistan Summer Time", "EAT": "East Africa Time", "WAST": "West Africa Summer Time", "AKST": "Alaska Standard Time", "HAT": "Newfoundland Daylight Time", "PDT": "Pacific Daylight Time", "GFT": "French Guiana Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "WEZ": "Western European Standard Time", "HKST": "Hong Kong Summer Time", "SAST": "South Africa Standard Time", "UYST": "Uruguay Summer Time", "SRT": "Suriname Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MESZ": "Central European Summer Time", "OESZ": "Eastern European Summer Time", "CST": "Central Standard Time", "MYT": "Malaysia Time", "UYT": "Uruguay Standard Time", "HNT": "Newfoundland Standard Time", "ART": "Argentina Standard Time", "WARST": "Western Argentina Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "HEOG": "West Greenland Summer Time", "AEST": "Australian Eastern Standard Time", "CHAST": "Chatham Standard Time", "MEZ": "Central European Standard Time", "IST": "India Standard Time", "CLST": "Chile Summer Time", "HEEG": "East Greenland Summer Time", "AST": "Atlantic Standard Time", "ACWST": "Australian Central Western Standard Time", "CHADT": "Chatham Daylight Time", "BT": "Bhutan Time", "CLT": "Chile Standard Time", "∅∅∅": "Amazon Summer Time", "WAT": "West Africa Standard Time", "MST": "Macau Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "WIT": "Eastern Indonesia Time", "ChST": "Chamorro Standard Time", "HNEG": "East Greenland Standard Time", "EST": "Eastern Standard Time", "AKDT": "Alaska Daylight Time", "COST": "Colombia Summer Time", "CDT": "Central Daylight Time", "WIB": "Western Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHDT": "Lord Howe Daylight Time", "ACST": "Australian Central Standard Time", "MDT": "Macau Summer Time", "LHST": "Lord Howe Standard Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "OEZ": "Eastern European Standard Time", "ECT": "Ecuador Time", "GMT": "Greenwich Mean Time", "HECU": "Cuba Daylight Time", "NZDT": "New Zealand Daylight Time", "HNCU": "Cuba Standard Time", "GYT": "Guyana Time", "PST": "Pacific Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AEDT": "Australian Eastern Daylight Time", "NZST": "New Zealand Standard Time", "TMT": "Turkmenistan Standard Time", "CAT": "Central Africa Time", "HNPMX": "Mexican Pacific Standard Time", "ADT": "Atlantic Daylight Time", "ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "JST": "Japan Standard Time", "SGT": "Singapore Standard Time", "EDT": "Eastern Daylight Time", "WITA": "Central Indonesia Time", "AWDT": "Australian Western Daylight Time", "JDT": "Japan Daylight Time", "WART": "Western Argentina Standard Time", "HNOG": "West Greenland Standard Time", "AWST": "Australian Western Standard Time"},
+ timezones: map[string]string{"WIT": "Eastern Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "TMST": "Turkmenistan Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HNEG": "East Greenland Standard Time", "GFT": "French Guiana Time", "CHAST": "Chatham Standard Time", "VET": "Venezuela Time", "MEZ": "Central European Standard Time", "WEZ": "Western European Standard Time", "CHADT": "Chatham Daylight Time", "WAST": "West Africa Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AWST": "Australian Western Standard Time", "ARST": "Argentina Summer Time", "WIB": "Western Indonesia Time", "EAT": "East Africa Time", "SGT": "Singapore Standard Time", "GMT": "Greenwich Mean Time", "HEOG": "West Greenland Summer Time", "LHDT": "Lord Howe Daylight Time", "OEZ": "Eastern European Standard Time", "AST": "Atlantic Standard Time", "HECU": "Cuba Daylight Time", "AKDT": "Alaska Daylight Time", "∅∅∅": "Brasilia Summer Time", "CDT": "Central Daylight Time", "ACWST": "Australian Central Western Standard Time", "ACST": "Australian Central Standard Time", "SRT": "Suriname Time", "NZST": "New Zealand Standard Time", "CLT": "Chile Standard Time", "HNT": "Newfoundland Standard Time", "UYT": "Uruguay Standard Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "WITA": "Central Indonesia Time", "UYST": "Uruguay Summer Time", "AWDT": "Australian Western Daylight Time", "PDT": "Pacific Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "HNOG": "West Greenland Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "GYT": "Guyana Time", "ADT": "Atlantic Daylight Time", "EDT": "Eastern Daylight Time", "HKT": "Hong Kong Standard Time", "WAT": "West Africa Standard Time", "HKST": "Hong Kong Summer Time", "CST": "Central Standard Time", "MESZ": "Central European Summer Time", "WESZ": "Western European Summer Time", "TMT": "Turkmenistan Standard Time", "HEEG": "East Greenland Summer Time", "ECT": "Ecuador Time", "NZDT": "New Zealand Daylight Time", "JST": "Japan Standard Time", "COT": "Colombia Standard Time", "WARST": "Western Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "CAT": "Central Africa Time", "JDT": "Japan Daylight Time", "OESZ": "Eastern European Summer Time", "WART": "Western Argentina Standard Time", "HNCU": "Cuba Standard Time", "HAT": "Newfoundland Daylight Time", "ChST": "Chamorro Standard Time", "IST": "India Standard Time", "MDT": "Macau Summer Time", "EST": "Eastern Standard Time", "COST": "Colombia Summer Time", "CLST": "Chile Summer Time", "MST": "Macau Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AKST": "Alaska Standard Time", "ACDT": "Australian Central Daylight Time", "BT": "Bhutan Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "BOT": "Bolivia Time", "PST": "Pacific Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "MYT": "Malaysia Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_PW) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_PW) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_PW) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_PW) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_RW/en_RW.go b/en_RW/en_RW.go
index 8dc9746b..2fa62eb6 100644
--- a/en_RW/en_RW.go
+++ b/en_RW/en_RW.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"JDT": "Japan Daylight Time", "OEZ": "Eastern European Standard Time", "ECT": "Ecuador Time", "MDT": "Macau Summer Time", "VET": "Venezuela Time", "HECU": "Cuba Daylight Time", "ACWST": "Australian Central Western Standard Time", "HNOG": "West Greenland Standard Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "ACDT": "Australian Central Daylight Time", "PST": "Pacific Standard Time", "HNT": "Newfoundland Standard Time", "ARST": "Argentina Summer Time", "WITA": "Central Indonesia Time", "UYT": "Uruguay Standard Time", "AKST": "Alaska Standard Time", "AST": "Atlantic Standard Time", "GYT": "Guyana Time", "HADT": "Hawaii-Aleutian Daylight Time", "SRT": "Suriname Time", "OESZ": "Eastern European Summer Time", "WESZ": "Western European Summer Time", "CHADT": "Chatham Daylight Time", "WARST": "Western Argentina Summer Time", "SGT": "Singapore Standard Time", "AKDT": "Alaska Daylight Time", "HKT": "Hong Kong Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZST": "New Zealand Standard Time", "HEOG": "West Greenland Summer Time", "MESZ": "Central European Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HNCU": "Cuba Standard Time", "BT": "Bhutan Time", "AWDT": "Australian Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "ChST": "Chamorro Standard Time", "COT": "Colombia Standard Time", "CST": "Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "JST": "Japan Standard Time", "WAST": "West Africa Summer Time", "GMT": "Greenwich Mean Time", "EST": "Eastern Standard Time", "EDT": "Eastern Daylight Time", "MST": "Macau Standard Time", "TMST": "Turkmenistan Summer Time", "ACST": "Australian Central Standard Time", "CAT": "Central Africa Time", "WIB": "Western Indonesia Time", "HKST": "Hong Kong Summer Time", "LHST": "Lord Howe Standard Time", "ACWDT": "Australian Central Western Daylight Time", "ART": "Argentina Standard Time", "∅∅∅": "Amazon Summer Time", "HNEG": "East Greenland Standard Time", "GFT": "French Guiana Time", "WART": "Western Argentina Standard Time", "UYST": "Uruguay Summer Time", "CDT": "Central Daylight Time", "AWST": "Australian Western Standard Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "IST": "India Standard Time", "HEEG": "East Greenland Summer Time", "EAT": "East Africa Time", "PDT": "Pacific Daylight Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "MEZ": "Central European Standard Time", "LHDT": "Lord Howe Daylight Time", "BOT": "Bolivia Time", "WAT": "West Africa Standard Time", "COST": "Colombia Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "WIT": "Eastern Indonesia Time", "AEDT": "Australian Eastern Daylight Time", "TMT": "Turkmenistan Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "ADT": "Atlantic Daylight Time", "MYT": "Malaysia Time", "WEZ": "Western European Standard Time"},
+ timezones: map[string]string{"BOT": "Bolivia Time", "PDT": "Pacific Daylight Time", "NZST": "New Zealand Standard Time", "HNOG": "West Greenland Standard Time", "OEZ": "Eastern European Standard Time", "WEZ": "Western European Standard Time", "HNCU": "Cuba Standard Time", "PST": "Pacific Standard Time", "ACWDT": "Australian Central Western Daylight Time", "ART": "Argentina Standard Time", "WAT": "West Africa Standard Time", "EST": "Eastern Standard Time", "HKT": "Hong Kong Standard Time", "CDT": "Central Daylight Time", "TMT": "Turkmenistan Standard Time", "GYT": "Guyana Time", "MEZ": "Central European Standard Time", "VET": "Venezuela Time", "UYT": "Uruguay Standard Time", "HECU": "Cuba Daylight Time", "CST": "Central Standard Time", "CHADT": "Chatham Daylight Time", "ACWST": "Australian Central Western Standard Time", "WARST": "Western Argentina Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "NZDT": "New Zealand Daylight Time", "JDT": "Japan Daylight Time", "GMT": "Greenwich Mean Time", "ARST": "Argentina Summer Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "ChST": "Chamorro Standard Time", "LHST": "Lord Howe Standard Time", "EAT": "East Africa Time", "AWST": "Australian Western Standard Time", "COT": "Colombia Standard Time", "BT": "Bhutan Time", "LHDT": "Lord Howe Daylight Time", "SRT": "Suriname Time", "HADT": "Hawaii-Aleutian Daylight Time", "CAT": "Central Africa Time", "JST": "Japan Standard Time", "WART": "Western Argentina Standard Time", "HNEG": "East Greenland Standard Time", "CHAST": "Chatham Standard Time", "OESZ": "Eastern European Summer Time", "CLST": "Chile Summer Time", "AKST": "Alaska Standard Time", "∅∅∅": "Brasilia Summer Time", "WESZ": "Western European Summer Time", "CLT": "Chile Standard Time", "MST": "Macau Standard Time", "HKST": "Hong Kong Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "UYST": "Uruguay Summer Time", "ECT": "Ecuador Time", "ADT": "Atlantic Daylight Time", "HNT": "Newfoundland Standard Time", "AEDT": "Australian Eastern Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "MESZ": "Central European Summer Time", "TMST": "Turkmenistan Summer Time", "ACDT": "Australian Central Daylight Time", "AEST": "Australian Eastern Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "AWDT": "Australian Western Daylight Time", "SGT": "Singapore Standard Time", "MYT": "Malaysia Time", "MDT": "Macau Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "WIB": "Western Indonesia Time", "HEOG": "West Greenland Summer Time", "WAST": "West Africa Summer Time", "ACST": "Australian Central Standard Time", "HAT": "Newfoundland Daylight Time", "WITA": "Central Indonesia Time", "HNPMX": "Mexican Pacific Standard Time", "WIT": "Eastern Indonesia Time", "IST": "India Standard Time", "AST": "Atlantic Standard Time", "EDT": "Eastern Daylight Time", "COST": "Colombia Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "AKDT": "Alaska Daylight Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_RW) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_RW) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_RW) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_RW) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_SB/en_SB.go b/en_SB/en_SB.go
index c9620977..f3481134 100644
--- a/en_SB/en_SB.go
+++ b/en_SB/en_SB.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"WART": "Western Argentina Standard Time", "GMT": "Greenwich Mean Time", "MST": "Macau Standard Time", "ADT": "Atlantic Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "CLT": "Chile Standard Time", "ACDT": "Australian Central Daylight Time", "OESZ": "Eastern European Summer Time", "MESZ": "Central European Summer Time", "HNEG": "East Greenland Standard Time", "ChST": "Chamorro Standard Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "SRT": "Suriname Time", "HKT": "Hong Kong Standard Time", "WAT": "West Africa Standard Time", "IST": "India Standard Time", "OEZ": "Eastern European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "PST": "Pacific Standard Time", "PDT": "Pacific Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "AST": "Atlantic Standard Time", "GYT": "Guyana Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "HKST": "Hong Kong Summer Time", "TMST": "Turkmenistan Summer Time", "MDT": "Macau Summer Time", "HEEG": "East Greenland Summer Time", "CDT": "Central Daylight Time", "HNOG": "West Greenland Standard Time", "AWDT": "Australian Western Daylight Time", "NZST": "New Zealand Standard Time", "HEOG": "West Greenland Summer Time", "CST": "Central Standard Time", "JST": "Japan Standard Time", "GFT": "French Guiana Time", "TMT": "Turkmenistan Standard Time", "ARST": "Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "∅∅∅": "Amazon Summer Time", "WARST": "Western Argentina Summer Time", "UYT": "Uruguay Standard Time", "SAST": "South Africa Standard Time", "EAT": "East Africa Time", "WAST": "West Africa Summer Time", "HAT": "Newfoundland Daylight Time", "LHST": "Lord Howe Standard Time", "MEZ": "Central European Standard Time", "ART": "Argentina Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "EST": "Eastern Standard Time", "EDT": "Eastern Daylight Time", "WIB": "Western Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "BT": "Bhutan Time", "COT": "Colombia Standard Time", "ACST": "Australian Central Standard Time", "CAT": "Central Africa Time", "HECU": "Cuba Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHAST": "Chatham Standard Time", "BOT": "Bolivia Time", "CHADT": "Chatham Daylight Time", "CLST": "Chile Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "ACWST": "Australian Central Western Standard Time", "NZDT": "New Zealand Daylight Time", "JDT": "Japan Daylight Time", "AKST": "Alaska Standard Time", "HNT": "Newfoundland Standard Time", "AWST": "Australian Western Standard Time", "LHDT": "Lord Howe Daylight Time", "WITA": "Central Indonesia Time", "AEST": "Australian Eastern Standard Time", "ECT": "Ecuador Time", "COST": "Colombia Summer Time", "WIT": "Eastern Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "WEZ": "Western European Standard Time"},
+ timezones: map[string]string{"HNT": "Newfoundland Standard Time", "CHADT": "Chatham Daylight Time", "IST": "India Standard Time", "VET": "Venezuela Time", "CLT": "Chile Standard Time", "LHDT": "Lord Howe Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "ECT": "Ecuador Time", "ACWST": "Australian Central Western Standard Time", "UYST": "Uruguay Summer Time", "CDT": "Central Daylight Time", "JDT": "Japan Daylight Time", "WARST": "Western Argentina Summer Time", "ADT": "Atlantic Daylight Time", "WEZ": "Western European Standard Time", "GMT": "Greenwich Mean Time", "WART": "Western Argentina Standard Time", "HNOG": "West Greenland Standard Time", "EAT": "East Africa Time", "HNCU": "Cuba Standard Time", "WIT": "Eastern Indonesia Time", "MEZ": "Central European Standard Time", "AST": "Atlantic Standard Time", "ChST": "Chamorro Standard Time", "HNPMX": "Mexican Pacific Standard Time", "WAT": "West Africa Standard Time", "BT": "Bhutan Time", "UYT": "Uruguay Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "NZST": "New Zealand Standard Time", "MDT": "Macau Summer Time", "ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "COST": "Colombia Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CST": "Central Standard Time", "AWDT": "Australian Western Daylight Time", "OEZ": "Eastern European Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "GYT": "Guyana Time", "WESZ": "Western European Summer Time", "AEDT": "Australian Eastern Daylight Time", "HEEG": "East Greenland Summer Time", "AEST": "Australian Eastern Standard Time", "BOT": "Bolivia Time", "HADT": "Hawaii-Aleutian Daylight Time", "CLST": "Chile Summer Time", "TMT": "Turkmenistan Standard Time", "GFT": "French Guiana Time", "PST": "Pacific Standard Time", "HEOG": "West Greenland Summer Time", "HKST": "Hong Kong Summer Time", "EDT": "Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "PDT": "Pacific Daylight Time", "ACDT": "Australian Central Daylight Time", "AKST": "Alaska Standard Time", "SAST": "South Africa Standard Time", "AKDT": "Alaska Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "WAST": "West Africa Summer Time", "HAT": "Newfoundland Daylight Time", "SRT": "Suriname Time", "CHAST": "Chatham Standard Time", "NZDT": "New Zealand Daylight Time", "OESZ": "Eastern European Summer Time", "MST": "Macau Standard Time", "WIB": "Western Indonesia Time", "HECU": "Cuba Daylight Time", "MESZ": "Central European Summer Time", "ART": "Argentina Standard Time", "AWST": "Australian Western Standard Time", "SGT": "Singapore Standard Time", "MYT": "Malaysia Time", "TMST": "Turkmenistan Summer Time", "ACST": "Australian Central Standard Time", "COT": "Colombia Standard Time", "WITA": "Central Indonesia Time", "∅∅∅": "Brasilia Summer Time", "ACWDT": "Australian Central Western Daylight Time", "CAT": "Central Africa Time", "HENOMX": "Northwest Mexico Daylight Time", "JST": "Japan Standard Time", "EST": "Eastern Standard Time", "HNEG": "East Greenland Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_SB) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_SB) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_SB) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_SB) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_SC/en_SC.go b/en_SC/en_SC.go
index ffe570a3..832c4670 100644
--- a/en_SC/en_SC.go
+++ b/en_SC/en_SC.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"JST": "Japan Standard Time", "GFT": "French Guiana Time", "WAT": "West Africa Standard Time", "GMT": "Greenwich Mean Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HNCU": "Cuba Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "PST": "Pacific Standard Time", "CHADT": "Chatham Daylight Time", "OEZ": "Eastern European Standard Time", "∅∅∅": "Peru Summer Time", "CAT": "Central Africa Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "AWST": "Australian Western Standard Time", "CLST": "Chile Summer Time", "MDT": "Macau Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "AST": "Atlantic Standard Time", "CDT": "Central Daylight Time", "WIT": "Eastern Indonesia Time", "ACWST": "Australian Central Western Standard Time", "TMT": "Turkmenistan Standard Time", "WAST": "West Africa Summer Time", "WARST": "Western Argentina Summer Time", "HNPMX": "Mexican Pacific Standard Time", "EDT": "Eastern Daylight Time", "UYST": "Uruguay Summer Time", "BT": "Bhutan Time", "PDT": "Pacific Daylight Time", "HKST": "Hong Kong Summer Time", "ECT": "Ecuador Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "COT": "Colombia Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "WEZ": "Western European Standard Time", "NZST": "New Zealand Standard Time", "IST": "India Standard Time", "ACDT": "Australian Central Daylight Time", "AKDT": "Alaska Daylight Time", "ADT": "Atlantic Daylight Time", "HNOG": "West Greenland Standard Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "MESZ": "Central European Summer Time", "HEEG": "East Greenland Summer Time", "AKST": "Alaska Standard Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "BOT": "Bolivia Time", "SRT": "Suriname Time", "HKT": "Hong Kong Standard Time", "AEDT": "Australian Eastern Daylight Time", "GYT": "Guyana Time", "ACWDT": "Australian Central Western Daylight Time", "LHST": "Lord Howe Standard Time", "NZDT": "New Zealand Daylight Time", "CLT": "Chile Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "WART": "Western Argentina Standard Time", "HECU": "Cuba Daylight Time", "ChST": "Chamorro Standard Time", "CST": "Central Standard Time", "WIB": "Western Indonesia Time", "JDT": "Japan Daylight Time", "LHDT": "Lord Howe Daylight Time", "SAST": "South Africa Standard Time", "OESZ": "Eastern European Summer Time", "MST": "Macau Standard Time", "ART": "Argentina Standard Time", "TMST": "Turkmenistan Summer Time", "COST": "Colombia Summer Time", "AEST": "Australian Eastern Standard Time", "HNEG": "East Greenland Standard Time", "HEOG": "West Greenland Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "ACST": "Australian Central Standard Time", "EST": "Eastern Standard Time", "MYT": "Malaysia Time", "UYT": "Uruguay Standard Time", "CHAST": "Chatham Standard Time", "MEZ": "Central European Standard Time", "EAT": "East Africa Time", "WITA": "Central Indonesia Time"},
+ timezones: map[string]string{"GFT": "French Guiana Time", "SAST": "South Africa Standard Time", "HECU": "Cuba Daylight Time", "WIT": "Eastern Indonesia Time", "OESZ": "Eastern European Summer Time", "MDT": "Macau Summer Time", "HKST": "Hong Kong Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "ACWST": "Australian Central Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HNCU": "Cuba Standard Time", "CHADT": "Chatham Daylight Time", "WEZ": "Western European Standard Time", "MST": "Macau Standard Time", "ART": "Argentina Standard Time", "SRT": "Suriname Time", "CLT": "Chile Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "WIB": "Western Indonesia Time", "CDT": "Central Daylight Time", "HNOG": "West Greenland Standard Time", "WAT": "West Africa Standard Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "PDT": "Pacific Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "ECT": "Ecuador Time", "VET": "Venezuela Time", "∅∅∅": "Acre Summer Time", "HNPMX": "Mexican Pacific Standard Time", "PST": "Pacific Standard Time", "LHDT": "Lord Howe Daylight Time", "SGT": "Singapore Standard Time", "AST": "Atlantic Standard Time", "TMT": "Turkmenistan Standard Time", "ACST": "Australian Central Standard Time", "AKST": "Alaska Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "NZST": "New Zealand Standard Time", "JDT": "Japan Daylight Time", "WITA": "Central Indonesia Time", "ChST": "Chamorro Standard Time", "AWDT": "Australian Western Daylight Time", "WART": "Western Argentina Standard Time", "EDT": "Eastern Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "NZDT": "New Zealand Daylight Time", "MESZ": "Central European Summer Time", "HEOG": "West Greenland Summer Time", "MYT": "Malaysia Time", "COT": "Colombia Standard Time", "AWST": "Australian Western Standard Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "AEDT": "Australian Eastern Daylight Time", "CST": "Central Standard Time", "BOT": "Bolivia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "GYT": "Guyana Time", "OEZ": "Eastern European Standard Time", "TMST": "Turkmenistan Summer Time", "EST": "Eastern Standard Time", "UYT": "Uruguay Standard Time", "EAT": "East Africa Time", "CAT": "Central Africa Time", "JST": "Japan Standard Time", "ADT": "Atlantic Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "HNEG": "East Greenland Standard Time", "HEEG": "East Greenland Summer Time", "AEST": "Australian Eastern Standard Time", "CHAST": "Chatham Standard Time", "IST": "India Standard Time", "CLST": "Chile Summer Time", "WESZ": "Western European Summer Time", "HKT": "Hong Kong Standard Time", "BT": "Bhutan Time", "MEZ": "Central European Standard Time", "GMT": "Greenwich Mean Time", "ARST": "Argentina Summer Time", "WAST": "West Africa Summer Time", "ACDT": "Australian Central Daylight Time", "AKDT": "Alaska Daylight Time", "UYST": "Uruguay Summer Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_SC) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_SC) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_SC) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_SC) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_SD/en_SD.go b/en_SD/en_SD.go
index d90deead..5121c048 100644
--- a/en_SD/en_SD.go
+++ b/en_SD/en_SD.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "MEZ": "Central European Standard Time", "GFT": "French Guiana Time", "HECU": "Cuba Daylight Time", "EST": "Eastern Standard Time", "GMT": "Greenwich Mean Time", "UYST": "Uruguay Summer Time", "AEDT": "Australian Eastern Daylight Time", "NZST": "New Zealand Standard Time", "JST": "Japan Standard Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "AKDT": "Alaska Daylight Time", "HNOG": "West Greenland Standard Time", "AWDT": "Australian Western Daylight Time", "MYT": "Malaysia Time", "AKST": "Alaska Standard Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "ADT": "Atlantic Daylight Time", "UYT": "Uruguay Standard Time", "EDT": "Eastern Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "HNT": "Newfoundland Standard Time", "PDT": "Pacific Daylight Time", "ACWST": "Australian Central Western Standard Time", "AEST": "Australian Eastern Standard Time", "CHADT": "Chatham Daylight Time", "OEZ": "Eastern European Standard Time", "CHAST": "Chatham Standard Time", "NZDT": "New Zealand Daylight Time", "EAT": "East Africa Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "HNEG": "East Greenland Standard Time", "ART": "Argentina Standard Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time", "CDT": "Central Daylight Time", "VET": "Venezuela Time", "WEZ": "Western European Standard Time", "WESZ": "Western European Summer Time", "WITA": "Central Indonesia Time", "BOT": "Bolivia Time", "AST": "Atlantic Standard Time", "CLST": "Chile Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "SRT": "Suriname Time", "WIT": "Eastern Indonesia Time", "AWST": "Australian Western Standard Time", "MESZ": "Central European Summer Time", "SAST": "South Africa Standard Time", "ChST": "Chamorro Standard Time", "CAT": "Central Africa Time", "WAT": "West Africa Standard Time", "HAT": "Newfoundland Daylight Time", "WART": "Western Argentina Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "CST": "Central Standard Time", "GYT": "Guyana Time", "HEOG": "West Greenland Summer Time", "PST": "Pacific Standard Time", "HKST": "Hong Kong Summer Time", "CLT": "Chile Standard Time", "ACDT": "Australian Central Daylight Time", "ECT": "Ecuador Time", "BT": "Bhutan Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEEG": "East Greenland Summer Time", "OESZ": "Eastern European Summer Time", "WAST": "West Africa Summer Time", "ACWDT": "Australian Central Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "JDT": "Japan Daylight Time", "∅∅∅": "Amazon Summer Time", "ACST": "Australian Central Standard Time", "COT": "Colombia Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "WIB": "Western Indonesia Time"},
+ timezones: map[string]string{"TMST": "Turkmenistan Summer Time", "ARST": "Argentina Summer Time", "EST": "Eastern Standard Time", "∅∅∅": "Peru Summer Time", "HNPMX": "Mexican Pacific Standard Time", "CAT": "Central Africa Time", "ACDT": "Australian Central Daylight Time", "HNEG": "East Greenland Standard Time", "HECU": "Cuba Daylight Time", "ACWST": "Australian Central Western Standard Time", "WAT": "West Africa Standard Time", "COT": "Colombia Standard Time", "CHAST": "Chatham Standard Time", "IST": "India Standard Time", "VET": "Venezuela Time", "CLT": "Chile Standard Time", "GMT": "Greenwich Mean Time", "MDT": "Mountain Daylight Time", "SRT": "Suriname Time", "ECT": "Ecuador Time", "JDT": "Japan Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "LHST": "Lord Howe Standard Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "CST": "Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "AKDT": "Alaska Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "OESZ": "Eastern European Summer Time", "HKT": "Hong Kong Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "HEEG": "East Greenland Summer Time", "SAST": "South Africa Standard Time", "PDT": "Pacific Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "NZDT": "New Zealand Daylight Time", "CLST": "Chile Summer Time", "MYT": "Malaysia Time", "ACST": "Australian Central Standard Time", "MST": "Mountain Standard Time", "UYT": "Uruguay Standard Time", "CDT": "Central Daylight Time", "WIT": "Eastern Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "GFT": "French Guiana Time", "EAT": "East Africa Time", "NZST": "New Zealand Standard Time", "TMT": "Turkmenistan Standard Time", "COST": "Colombia Summer Time", "BT": "Bhutan Time", "HNT": "Newfoundland Standard Time", "HNOG": "West Greenland Standard Time", "ART": "Argentina Standard Time", "EDT": "Eastern Daylight Time", "HKST": "Hong Kong Summer Time", "AEST": "Australian Eastern Standard Time", "LHDT": "Lord Howe Daylight Time", "WIB": "Western Indonesia Time", "AWDT": "Australian Western Daylight Time", "CHADT": "Chatham Daylight Time", "PST": "Pacific Standard Time", "AKST": "Alaska Standard Time", "UYST": "Uruguay Summer Time", "GYT": "Guyana Time", "MESZ": "Central European Summer Time", "HEOG": "West Greenland Summer Time", "WEZ": "Western European Standard Time", "BOT": "Bolivia Time", "JST": "Japan Standard Time", "AST": "Atlantic Standard Time", "ADT": "Atlantic Daylight Time", "WESZ": "Western European Summer Time", "HAT": "Newfoundland Daylight Time", "ChST": "Chamorro Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "MEZ": "Central European Standard Time", "OEZ": "Eastern European Standard Time", "WAST": "West Africa Summer Time", "WITA": "Central Indonesia Time", "HEPMX": "Mexican Pacific Daylight Time", "AWST": "Australian Western Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_SD) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_SD) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_SD) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_SD) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_SE/en_SE.go b/en_SE/en_SE.go
index 1e82d59d..9e999187 100644
--- a/en_SE/en_SE.go
+++ b/en_SE/en_SE.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"UYT": "Uruguay Standard Time", "AWST": "Australian Western Standard Time", "CLT": "Chile Standard Time", "JST": "Japan Standard Time", "SRT": "Suriname Time", "AEDT": "Australian Eastern Daylight Time", "CAT": "Central Africa Time", "HNNOMX": "Northwest Mexico Standard Time", "MYT": "Malaysia Time", "CLST": "Chile Summer Time", "JDT": "Japan Daylight Time", "GMT": "Greenwich Mean Time", "EST": "Eastern Standard Time", "CST": "Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "HEOG": "West Greenland Summer Time", "HNEG": "East Greenland Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "AKDT": "Alaska Daylight Time", "HKST": "Hong Kong Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "WARST": "Western Argentina Summer Time", "MST": "Macau Standard Time", "AKST": "Alaska Standard Time", "ADT": "Atlantic Daylight Time", "WITA": "Central Indonesia Time", "WART": "Western Argentina Standard Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNOG": "West Greenland Standard Time", "AEST": "Australian Eastern Standard Time", "LHST": "Lord Howe Standard Time", "GFT": "French Guiana Time", "TMT": "Turkmenistan Standard Time", "WAST": "West Africa Summer Time", "ECT": "Ecuador Time", "NZST": "New Zealand Standard Time", "∅∅∅": "Amazon Summer Time", "HEEG": "East Greenland Summer Time", "MDT": "Macau Summer Time", "BT": "Bhutan Time", "HAT": "Newfoundland Daylight Time", "IST": "India Standard Time", "UYST": "Uruguay Summer Time", "GYT": "Guyana Time", "WIT": "Eastern Indonesia Time", "WEZ": "Western European Standard Time", "ACDT": "Australian Central Daylight Time", "OEZ": "Eastern European Standard Time", "HNCU": "Cuba Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNT": "Newfoundland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "HECU": "Cuba Daylight Time", "PST": "Pacific Standard Time", "HKT": "Hong Kong Standard Time", "MEZ": "Central European Standard Time", "ChST": "Chamorro Standard Time", "TMST": "Turkmenistan Summer Time", "SGT": "Singapore Standard Time", "ART": "Argentina Standard Time", "AWDT": "Australian Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "EDT": "Eastern Daylight Time", "CDT": "Central Daylight Time", "CHADT": "Chatham Daylight Time", "WAT": "West Africa Standard Time", "OESZ": "Eastern European Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AST": "Atlantic Standard Time", "PDT": "Pacific Daylight Time", "ACWST": "Australian Central Western Standard Time", "ARST": "Argentina Summer Time", "MESZ": "Central European Summer Time", "BOT": "Bolivia Time", "COST": "Colombia Summer Time", "WIB": "Western Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "ACST": "Australian Central Standard Time", "EAT": "East Africa Time"},
+ timezones: map[string]string{"AWST": "Australian Western Standard Time", "ECT": "Ecuador Time", "MESZ": "Central European Summer Time", "HECU": "Cuba Daylight Time", "ART": "Argentina Standard Time", "AEDT": "Australian Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "JDT": "Japan Daylight Time", "TMT": "Turkmenistan Standard Time", "HKST": "Hong Kong Summer Time", "WITA": "Central Indonesia Time", "ADT": "Atlantic Daylight Time", "WART": "Western Argentina Standard Time", "SGT": "Singapore Standard Time", "GFT": "French Guiana Time", "ACWDT": "Australian Central Western Daylight Time", "VET": "Venezuela Time", "OEZ": "Eastern European Standard Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "TMST": "Turkmenistan Summer Time", "MST": "Mountain Standard Time", "ACDT": "Australian Central Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "AKDT": "Alaska Daylight Time", "UYT": "Uruguay Standard Time", "HNCU": "Cuba Standard Time", "WEZ": "Western European Standard Time", "HKT": "Hong Kong Standard Time", "ACST": "Australian Central Standard Time", "UYST": "Uruguay Summer Time", "HNPMX": "Mexican Pacific Standard Time", "CHADT": "Chatham Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "MEZ": "Central European Standard Time", "MYT": "Malaysia Time", "∅∅∅": "Acre Summer Time", "HEEG": "East Greenland Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "CDT": "Central Daylight Time", "AWDT": "Australian Western Daylight Time", "CLT": "Chile Standard Time", "BT": "Bhutan Time", "AKST": "Alaska Standard Time", "ChST": "Chamorro Standard Time", "SAST": "South Africa Standard Time", "ACWST": "Australian Central Western Standard Time", "CLST": "Chile Summer Time", "COST": "Colombia Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "SRT": "Suriname Time", "CHAST": "Chatham Standard Time", "COT": "Colombia Standard Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "WARST": "Western Argentina Summer Time", "ARST": "Argentina Summer Time", "LHDT": "Lord Howe Daylight Time", "HNEG": "East Greenland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "GYT": "Guyana Time", "CAT": "Central Africa Time", "JST": "Japan Standard Time", "HAT": "Newfoundland Daylight Time", "PST": "Pacific Standard Time", "PDT": "Pacific Daylight Time", "AST": "Atlantic Standard Time", "OESZ": "Eastern European Summer Time", "WAST": "West Africa Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CST": "Central Standard Time", "IST": "India Standard Time", "WESZ": "Western European Summer Time", "GMT": "Greenwich Mean Time", "WAT": "West Africa Standard Time", "EDT": "Eastern Daylight Time", "MDT": "Mountain Daylight Time", "AEST": "Australian Eastern Standard Time", "EAT": "East Africa Time", "BOT": "Bolivia Time", "EST": "Eastern Standard Time", "HNT": "Newfoundland Standard Time"},
}
}
@@ -114,8 +114,8 @@ func (en *en_SE) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_SE) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
diff --git a/en_SG/en_SG.go b/en_SG/en_SG.go
index 71a72f13..6f979253 100644
--- a/en_SG/en_SG.go
+++ b/en_SG/en_SG.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"CLST": "Chile Summer Time", "OESZ": "Eastern European Summer Time", "HAT": "Newfoundland Daylight Time", "LHST": "Lord Howe Standard Time", "ADT": "Atlantic Daylight Time", "ART": "Argentina Standard Time", "TMST": "Turkmenistan Summer Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "COT": "Colombia Standard Time", "PDT": "Pacific Daylight Time", "CLT": "Chile Standard Time", "WAST": "West Africa Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "AWDT": "Australian Western Daylight Time", "AST": "Atlantic Standard Time", "UYT": "Uruguay Standard Time", "HKST": "Hong Kong Summer Time", "AWST": "Australian Western Standard Time", "WAT": "West Africa Standard Time", "HECU": "Cuba Daylight Time", "SAST": "South Africa Standard Time", "ACST": "Australian Central Standard Time", "VET": "Venezuela Time", "PST": "Pacific Standard Time", "NZDT": "New Zealand Daylight Time", "UYST": "Uruguay Summer Time", "AEDT": "Australian Eastern Daylight Time", "∅∅∅": "Amazon Summer Time", "EAT": "East Africa Time", "EST": "Eastern Standard Time", "EDT": "Eastern Daylight Time", "BOT": "Bolivia Time", "ACWST": "Australian Central Western Standard Time", "NZST": "New Zealand Standard Time", "HNCU": "Cuba Standard Time", "AKDT": "Alaska Daylight Time", "AEST": "Australian Eastern Standard Time", "CHAST": "Chatham Standard Time", "HNEG": "East Greenland Standard Time", "ChST": "Chamorro Standard Time", "CAT": "Central Africa Time", "COST": "Colombia Summer Time", "SGT": "Singapore Standard Time", "ACWDT": "Australian Central Western Daylight Time", "WESZ": "Western European Summer Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "MDT": "Macau Summer Time", "AKST": "Alaska Standard Time", "CDT": "Central Daylight Time", "ARST": "Argentina Summer Time", "GFT": "French Guiana Time", "ECT": "Ecuador Time", "HNPMX": "Mexican Pacific Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "JST": "Japan Standard Time", "JDT": "Japan Daylight Time", "HEEG": "East Greenland Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNT": "Newfoundland Standard Time", "WEZ": "Western European Standard Time", "TMT": "Turkmenistan Standard Time", "ACDT": "Australian Central Daylight Time", "MST": "Macau Standard Time", "MYT": "Malaysia Time", "CHADT": "Chatham Daylight Time", "MEZ": "Central European Standard Time", "MESZ": "Central European Summer Time", "HEOG": "West Greenland Summer Time", "HKT": "Hong Kong Standard Time", "WITA": "Central Indonesia Time", "OEZ": "Eastern European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "GMT": "Greenwich Mean Time", "SRT": "Suriname Time", "HNOG": "West Greenland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CST": "Central Standard Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "BT": "Bhutan Time"},
+ timezones: map[string]string{"ARST": "Argentina Summer Time", "HKST": "Hong Kong Summer Time", "ACDT": "Australian Central Daylight Time", "CDT": "Central Daylight Time", "PDT": "Pacific Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "IST": "India Standard Time", "TMST": "Turkmenistan Summer Time", "HEEG": "East Greenland Summer Time", "UYST": "Uruguay Summer Time", "LHST": "Lord Howe Standard Time", "WIT": "Eastern Indonesia Time", "EST": "Eastern Standard Time", "ChST": "Chamorro Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AWDT": "Australian Western Daylight Time", "SGT": "Singapore Standard Time", "JDT": "Japan Daylight Time", "GMT": "Greenwich Mean Time", "WART": "Western Argentina Standard Time", "TMT": "Turkmenistan Standard Time", "BT": "Bhutan Time", "MST": "Mountain Standard Time", "HECU": "Cuba Daylight Time", "BOT": "Bolivia Time", "CHAST": "Chatham Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AKDT": "Alaska Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "VET": "Venezuela Time", "HAST": "Hawaii-Aleutian Standard Time", "NZDT": "New Zealand Daylight Time", "COST": "Colombia Summer Time", "UYT": "Uruguay Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "EAT": "East Africa Time", "CST": "Central Standard Time", "CLST": "Chile Summer Time", "HEOG": "West Greenland Summer Time", "∅∅∅": "Acre Summer Time", "CHADT": "Chatham Daylight Time", "ACWST": "Australian Central Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "MESZ": "Central European Summer Time", "CLT": "Chile Standard Time", "EDT": "Eastern Daylight Time", "WITA": "Central Indonesia Time", "HEPMX": "Mexican Pacific Daylight Time", "PST": "Pacific Standard Time", "WAT": "West Africa Standard Time", "HNEG": "East Greenland Standard Time", "GFT": "French Guiana Time", "OESZ": "Eastern European Summer Time", "ACST": "Australian Central Standard Time", "AEST": "Australian Eastern Standard Time", "MDT": "Mountain Daylight Time", "WARST": "Western Argentina Summer Time", "HKT": "Hong Kong Standard Time", "WAST": "West Africa Summer Time", "GYT": "Guyana Time", "ECT": "Ecuador Time", "JST": "Japan Standard Time", "AST": "Atlantic Standard Time", "ADT": "Atlantic Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "HAT": "Newfoundland Daylight Time", "WIB": "Western Indonesia Time", "WEZ": "Western European Standard Time", "WESZ": "Western European Summer Time", "HNOG": "West Greenland Standard Time", "AKST": "Alaska Standard Time", "AWST": "Australian Western Standard Time", "NZST": "New Zealand Standard Time", "MYT": "Malaysia Time", "ART": "Argentina Standard Time", "HNT": "Newfoundland Standard Time", "AEDT": "Australian Eastern Daylight Time", "HNCU": "Cuba Standard Time", "MEZ": "Central European Standard Time", "OEZ": "Eastern European Standard Time", "SRT": "Suriname Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time"},
}
}
@@ -483,13 +483,11 @@ func (en *en_SG) FmtTimeShort(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -497,13 +495,6 @@ func (en *en_SG) FmtTimeShort(t time.Time) string {
}
b = strconv.AppendInt(b, int64(t.Minute()), 10)
- b = append(b, []byte{0x20}...)
-
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
return string(b)
}
@@ -513,13 +504,11 @@ func (en *en_SG) FmtTimeMedium(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -534,13 +523,6 @@ func (en *en_SG) FmtTimeMedium(t time.Time) string {
}
b = strconv.AppendInt(b, int64(t.Second()), 10)
- b = append(b, []byte{0x20}...)
-
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
return string(b)
}
@@ -550,13 +532,11 @@ func (en *en_SG) FmtTimeLong(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -573,14 +553,6 @@ func (en *en_SG) FmtTimeLong(t time.Time) string {
b = strconv.AppendInt(b, int64(t.Second()), 10)
b = append(b, []byte{0x20}...)
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
-
- b = append(b, []byte{0x20}...)
-
tz, _ := t.Zone()
b = append(b, tz...)
@@ -592,13 +564,11 @@ func (en *en_SG) FmtTimeFull(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -615,14 +585,6 @@ func (en *en_SG) FmtTimeFull(t time.Time) string {
b = strconv.AppendInt(b, int64(t.Second()), 10)
b = append(b, []byte{0x20}...)
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
-
- b = append(b, []byte{0x20}...)
-
tz, _ := t.Zone()
if btz, ok := en.timezones[tz]; ok {
diff --git a/en_SH/en_SH.go b/en_SH/en_SH.go
index 1ba9bd13..101b29bf 100644
--- a/en_SH/en_SH.go
+++ b/en_SH/en_SH.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"VET": "Venezuela Time", "OEZ": "Eastern European Standard Time", "∅∅∅": "Peru Summer Time", "COT": "Colombia Standard Time", "GMT": "Greenwich Mean Time", "ADT": "Atlantic Daylight Time", "WIB": "Western Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HNT": "Newfoundland Standard Time", "WARST": "Western Argentina Summer Time", "WIT": "Eastern Indonesia Time", "BT": "Bhutan Time", "NZST": "New Zealand Standard Time", "TMT": "Turkmenistan Standard Time", "WAST": "West Africa Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "PST": "Pacific Standard Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "OESZ": "Eastern European Summer Time", "AKDT": "Alaska Daylight Time", "CST": "Central Standard Time", "UYT": "Uruguay Standard Time", "ACWST": "Australian Central Western Standard Time", "NZDT": "New Zealand Daylight Time", "COST": "Colombia Summer Time", "AKST": "Alaska Standard Time", "HNOG": "West Greenland Standard Time", "SGT": "Singapore Standard Time", "CDT": "Central Daylight Time", "AEST": "Australian Eastern Standard Time", "CHAST": "Chatham Standard Time", "IST": "India Standard Time", "CAT": "Central Africa Time", "ACST": "Australian Central Standard Time", "ACDT": "Australian Central Daylight Time", "HNCU": "Cuba Standard Time", "AWST": "Australian Western Standard Time", "CLT": "Chile Standard Time", "ChST": "Chamorro Standard Time", "BOT": "Bolivia Time", "MESZ": "Central European Summer Time", "EAT": "East Africa Time", "WART": "Western Argentina Standard Time", "HECU": "Cuba Daylight Time", "UYST": "Uruguay Summer Time", "WEZ": "Western European Standard Time", "WESZ": "Western European Summer Time", "HEOG": "West Greenland Summer Time", "LHST": "Lord Howe Standard Time", "AST": "Atlantic Standard Time", "ART": "Argentina Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHDT": "Lord Howe Daylight Time", "TMST": "Turkmenistan Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HKST": "Hong Kong Summer Time", "GFT": "French Guiana Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "EDT": "Eastern Daylight Time", "MYT": "Malaysia Time", "PDT": "Pacific Daylight Time", "AEDT": "Australian Eastern Daylight Time", "EST": "Eastern Standard Time", "HAT": "Newfoundland Daylight Time", "WITA": "Central Indonesia Time", "MEZ": "Central European Standard Time", "JDT": "Japan Daylight Time", "HNEG": "East Greenland Standard Time", "HEEG": "East Greenland Summer Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "SRT": "Suriname Time", "ARST": "Argentina Summer Time", "JST": "Japan Standard Time", "WAT": "West Africa Standard Time", "ECT": "Ecuador Time", "MST": "Macau Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "AWDT": "Australian Western Daylight Time", "HKT": "Hong Kong Standard Time", "CLST": "Chile Summer Time"},
+ timezones: map[string]string{"WIB": "Western Indonesia Time", "AWDT": "Australian Western Daylight Time", "PST": "Pacific Standard Time", "ADT": "Atlantic Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "WITA": "Central Indonesia Time", "LHST": "Lord Howe Standard Time", "EAT": "East Africa Time", "HEOG": "West Greenland Summer Time", "OEZ": "Eastern European Standard Time", "WESZ": "Western European Summer Time", "ART": "Argentina Standard Time", "HEEG": "East Greenland Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "WEZ": "Western European Standard Time", "WARST": "Western Argentina Summer Time", "MDT": "Macau Summer Time", "COST": "Colombia Summer Time", "HKT": "Hong Kong Standard Time", "HNEG": "East Greenland Standard Time", "ChST": "Chamorro Standard Time", "HNT": "Newfoundland Standard Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "EDT": "Eastern Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "AEDT": "Australian Eastern Daylight Time", "SGT": "Singapore Standard Time", "NZDT": "New Zealand Daylight Time", "∅∅∅": "Amazon Summer Time", "JST": "Japan Standard Time", "AST": "Atlantic Standard Time", "EST": "Eastern Standard Time", "VET": "Venezuela Time", "MYT": "Malaysia Time", "COT": "Colombia Standard Time", "UYST": "Uruguay Summer Time", "OESZ": "Eastern European Summer Time", "WART": "Western Argentina Standard Time", "GFT": "French Guiana Time", "UYT": "Uruguay Standard Time", "LHDT": "Lord Howe Daylight Time", "PDT": "Pacific Daylight Time", "MESZ": "Central European Summer Time", "GMT": "Greenwich Mean Time", "HKST": "Hong Kong Summer Time", "HNPMX": "Mexican Pacific Standard Time", "CST": "Central Standard Time", "WAST": "West Africa Summer Time", "HAT": "Newfoundland Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "HNCU": "Cuba Standard Time", "ACWST": "Australian Central Western Standard Time", "MEZ": "Central European Standard Time", "HNOG": "West Greenland Standard Time", "MST": "Macau Standard Time", "ARST": "Argentina Summer Time", "GYT": "Guyana Time", "WAT": "West Africa Standard Time", "ACST": "Australian Central Standard Time", "AEST": "Australian Eastern Standard Time", "WIT": "Eastern Indonesia Time", "CDT": "Central Daylight Time", "CHAST": "Chatham Standard Time", "CLT": "Chile Standard Time", "ACDT": "Australian Central Daylight Time", "BT": "Bhutan Time", "AKST": "Alaska Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SRT": "Suriname Time", "CHADT": "Chatham Daylight Time", "ECT": "Ecuador Time", "ACWDT": "Australian Central Western Daylight Time", "NZST": "New Zealand Standard Time", "JDT": "Japan Daylight Time", "CLST": "Chile Summer Time", "AKDT": "Alaska Daylight Time", "IST": "India Standard Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "HECU": "Cuba Daylight Time", "AWST": "Australian Western Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_SH) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_SH) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_SH) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_SH) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_SI/en_SI.go b/en_SI/en_SI.go
index 0289ce65..e0cacaa6 100644
--- a/en_SI/en_SI.go
+++ b/en_SI/en_SI.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"CAT": "Central Africa Time", "WART": "Western Argentina Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "VET": "Venezuela Time", "HNT": "Newfoundland Standard Time", "CHADT": "Chatham Daylight Time", "HNEG": "East Greenland Standard Time", "ChST": "Chamorro Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "ACWDT": "Australian Central Western Daylight Time", "NZST": "New Zealand Standard Time", "CHAST": "Chatham Standard Time", "LHDT": "Lord Howe Daylight Time", "SAST": "South Africa Standard Time", "IST": "India Standard Time", "EDT": "Eastern Daylight Time", "WIB": "Western Indonesia Time", "HEOG": "West Greenland Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "UYST": "Uruguay Summer Time", "ACWST": "Australian Central Western Standard Time", "MEZ": "Central European Standard Time", "TMT": "Turkmenistan Standard Time", "OESZ": "Eastern European Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "PDT": "Pacific Daylight Time", "COST": "Colombia Summer Time", "AKDT": "Alaska Daylight Time", "CDT": "Central Daylight Time", "HNOG": "West Greenland Standard Time", "TMST": "Turkmenistan Summer Time", "EST": "Eastern Standard Time", "CST": "Central Standard Time", "WAT": "West Africa Standard Time", "PST": "Pacific Standard Time", "JST": "Japan Standard Time", "GFT": "French Guiana Time", "ACST": "Australian Central Standard Time", "ACDT": "Australian Central Daylight Time", "AST": "Atlantic Standard Time", "AEST": "Australian Eastern Standard Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "JDT": "Japan Daylight Time", "EAT": "East Africa Time", "ARST": "Argentina Summer Time", "WEZ": "Western European Standard Time", "ECT": "Ecuador Time", "HNCU": "Cuba Standard Time", "BT": "Bhutan Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "ADT": "Atlantic Daylight Time", "GYT": "Guyana Time", "UYT": "Uruguay Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "SRT": "Suriname Time", "ART": "Argentina Standard Time", "HKT": "Hong Kong Standard Time", "CLT": "Chile Standard Time", "MYT": "Malaysia Time", "HAT": "Newfoundland Daylight Time", "WESZ": "Western European Summer Time", "AWST": "Australian Western Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HECU": "Cuba Daylight Time", "SGT": "Singapore Standard Time", "HKST": "Hong Kong Summer Time", "WITA": "Central Indonesia Time", "AEDT": "Australian Eastern Daylight Time", "∅∅∅": "Amazon Summer Time", "WAST": "West Africa Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AKST": "Alaska Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZDT": "New Zealand Daylight Time", "CLST": "Chile Summer Time", "HEEG": "East Greenland Summer Time", "COT": "Colombia Standard Time", "WIT": "Eastern Indonesia Time", "MESZ": "Central European Summer Time", "BOT": "Bolivia Time", "WARST": "Western Argentina Summer Time"},
+ timezones: map[string]string{"ACDT": "Australian Central Daylight Time", "∅∅∅": "Acre Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNCU": "Cuba Standard Time", "AWDT": "Australian Western Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "CST": "Central Standard Time", "ECT": "Ecuador Time", "HEOG": "West Greenland Summer Time", "ARST": "Argentina Summer Time", "COST": "Colombia Summer Time", "IST": "India Standard Time", "JST": "Japan Standard Time", "WAT": "West Africa Standard Time", "AEDT": "Australian Eastern Daylight Time", "GFT": "French Guiana Time", "SRT": "Suriname Time", "EAT": "East Africa Time", "WIT": "Eastern Indonesia Time", "CLST": "Chile Summer Time", "TMST": "Turkmenistan Summer Time", "MDT": "Mountain Daylight Time", "UYT": "Uruguay Standard Time", "BOT": "Bolivia Time", "MESZ": "Central European Summer Time", "OESZ": "Eastern European Summer Time", "BT": "Bhutan Time", "LHDT": "Lord Howe Daylight Time", "HECU": "Cuba Daylight Time", "CAT": "Central Africa Time", "MEZ": "Central European Standard Time", "AST": "Atlantic Standard Time", "OEZ": "Eastern European Standard Time", "CLT": "Chile Standard Time", "EST": "Eastern Standard Time", "AKST": "Alaska Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HNOG": "West Greenland Standard Time", "GYT": "Guyana Time", "WIB": "Western Indonesia Time", "JDT": "Japan Daylight Time", "CDT": "Central Daylight Time", "CHAST": "Chatham Standard Time", "NZST": "New Zealand Standard Time", "TMT": "Turkmenistan Standard Time", "HAT": "Newfoundland Daylight Time", "MST": "Mountain Standard Time", "LHST": "Lord Howe Standard Time", "CHADT": "Chatham Daylight Time", "ADT": "Atlantic Daylight Time", "EDT": "Eastern Daylight Time", "HKT": "Hong Kong Standard Time", "ACST": "Australian Central Standard Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "PDT": "Pacific Daylight Time", "MYT": "Malaysia Time", "WART": "Western Argentina Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "ChST": "Chamorro Standard Time", "UYST": "Uruguay Summer Time", "AWST": "Australian Western Standard Time", "GMT": "Greenwich Mean Time", "ART": "Argentina Standard Time", "HNEG": "East Greenland Standard Time", "AKDT": "Alaska Daylight Time", "AEST": "Australian Eastern Standard Time", "SAST": "South Africa Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "WAST": "West Africa Summer Time", "HNT": "Newfoundland Standard Time", "PST": "Pacific Standard Time", "ACWST": "Australian Central Western Standard Time", "NZDT": "New Zealand Daylight Time", "WESZ": "Western European Summer Time", "HKST": "Hong Kong Summer Time", "HEEG": "East Greenland Summer Time", "WITA": "Central Indonesia Time", "SGT": "Singapore Standard Time", "ACWDT": "Australian Central Western Daylight Time", "VET": "Venezuela Time", "WEZ": "Western European Standard Time", "WARST": "Western Argentina Summer Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_SI) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_SI) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
diff --git a/en_SL/en_SL.go b/en_SL/en_SL.go
index 42c3e8cc..79424e10 100644
--- a/en_SL/en_SL.go
+++ b/en_SL/en_SL.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HNEG": "East Greenland Standard Time", "AWST": "Australian Western Standard Time", "ACWST": "Australian Central Western Standard Time", "AWDT": "Australian Western Daylight Time", "TMST": "Turkmenistan Summer Time", "ChST": "Chamorro Standard Time", "ACST": "Australian Central Standard Time", "OEZ": "Eastern European Standard Time", "HECU": "Cuba Daylight Time", "HNOG": "West Greenland Standard Time", "ECT": "Ecuador Time", "WART": "Western Argentina Standard Time", "SRT": "Suriname Time", "HKST": "Hong Kong Summer Time", "NZDT": "New Zealand Daylight Time", "SAST": "South Africa Standard Time", "CLST": "Chile Summer Time", "WAST": "West Africa Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "WEZ": "Western European Standard Time", "JST": "Japan Standard Time", "HNT": "Newfoundland Standard Time", "MEZ": "Central European Standard Time", "LHST": "Lord Howe Standard Time", "EAT": "East Africa Time", "WAT": "West Africa Standard Time", "COT": "Colombia Standard Time", "CST": "Central Standard Time", "ADT": "Atlantic Daylight Time", "UYST": "Uruguay Summer Time", "MYT": "Malaysia Time", "UYT": "Uruguay Standard Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "GYT": "Guyana Time", "PDT": "Pacific Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CHAST": "Chatham Standard Time", "HNCU": "Cuba Standard Time", "MST": "Macau Standard Time", "ARST": "Argentina Summer Time", "WESZ": "Western European Summer Time", "WITA": "Central Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "ACWDT": "Australian Central Western Daylight Time", "∅∅∅": "Amazon Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "EST": "Eastern Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "AST": "Atlantic Standard Time", "WIT": "Eastern Indonesia Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "OESZ": "Eastern European Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "HKT": "Hong Kong Standard Time", "TMT": "Turkmenistan Standard Time", "HEEG": "East Greenland Summer Time", "MDT": "Macau Summer Time", "AKST": "Alaska Standard Time", "AEDT": "Australian Eastern Daylight Time", "CLT": "Chile Standard Time", "CAT": "Central Africa Time", "CDT": "Central Daylight Time", "HAT": "Newfoundland Daylight Time", "HEOG": "West Greenland Summer Time", "JDT": "Japan Daylight Time", "GFT": "French Guiana Time", "GMT": "Greenwich Mean Time", "HADT": "Hawaii-Aleutian Daylight Time", "VET": "Venezuela Time", "MESZ": "Central European Summer Time", "COST": "Colombia Summer Time", "EDT": "Eastern Daylight Time", "PST": "Pacific Standard Time", "CHADT": "Chatham Daylight Time", "LHDT": "Lord Howe Daylight Time", "WARST": "Western Argentina Summer Time", "SGT": "Singapore Standard Time", "NZST": "New Zealand Standard Time", "IST": "India Standard Time"},
+ timezones: map[string]string{"AEDT": "Australian Eastern Daylight Time", "HKST": "Hong Kong Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "AWDT": "Australian Western Daylight Time", "ACWST": "Australian Central Western Standard Time", "SRT": "Suriname Time", "HECU": "Cuba Daylight Time", "MESZ": "Central European Summer Time", "CLT": "Chile Standard Time", "OEZ": "Eastern European Standard Time", "WESZ": "Western European Summer Time", "COST": "Colombia Summer Time", "AKST": "Alaska Standard Time", "CHAST": "Chatham Standard Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "WEZ": "Western European Standard Time", "MDT": "Macau Summer Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "WIT": "Eastern Indonesia Time", "VET": "Venezuela Time", "CLST": "Chile Summer Time", "AST": "Atlantic Standard Time", "WART": "Western Argentina Standard Time", "MST": "Macau Standard Time", "ACST": "Australian Central Standard Time", "ACDT": "Australian Central Daylight Time", "HNEG": "East Greenland Standard Time", "AWST": "Australian Western Standard Time", "CAT": "Central Africa Time", "HNPMX": "Mexican Pacific Standard Time", "WAT": "West Africa Standard Time", "HKT": "Hong Kong Standard Time", "ChST": "Chamorro Standard Time", "LHST": "Lord Howe Standard Time", "TMST": "Turkmenistan Summer Time", "ARST": "Argentina Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "MEZ": "Central European Standard Time", "HEEG": "East Greenland Summer Time", "PST": "Pacific Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "WARST": "Western Argentina Summer Time", "TMT": "Turkmenistan Standard Time", "AKDT": "Alaska Daylight Time", "CHADT": "Chatham Daylight Time", "OESZ": "Eastern European Summer Time", "NZDT": "New Zealand Daylight Time", "HNT": "Newfoundland Standard Time", "GFT": "French Guiana Time", "GYT": "Guyana Time", "EAT": "East Africa Time", "BOT": "Bolivia Time", "NZST": "New Zealand Standard Time", "CDT": "Central Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "MYT": "Malaysia Time", "WAST": "West Africa Summer Time", "EST": "Eastern Standard Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "BT": "Bhutan Time", "HNOG": "West Greenland Standard Time", "ADT": "Atlantic Daylight Time", "WITA": "Central Indonesia Time", "WIB": "Western Indonesia Time", "HEOG": "West Greenland Summer Time", "ART": "Argentina Standard Time", "SAST": "South Africa Standard Time", "ECT": "Ecuador Time", "JDT": "Japan Daylight Time", "∅∅∅": "Amazon Summer Time", "JST": "Japan Standard Time", "GMT": "Greenwich Mean Time", "EDT": "Eastern Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "PDT": "Pacific Daylight Time", "IST": "India Standard Time", "CST": "Central Standard Time", "UYST": "Uruguay Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "UYT": "Uruguay Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_SL) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_SL) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_SL) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_SL) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_SS/en_SS.go b/en_SS/en_SS.go
index 2a24850d..613edf5f 100644
--- a/en_SS/en_SS.go
+++ b/en_SS/en_SS.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HNNOMX": "Northwest Mexico Standard Time", "HECU": "Cuba Daylight Time", "CDT": "Central Daylight Time", "MEZ": "Central European Standard Time", "TMT": "Turkmenistan Standard Time", "ACWST": "Australian Central Western Standard Time", "HNOG": "West Greenland Standard Time", "ACDT": "Australian Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "EST": "Eastern Standard Time", "AKDT": "Alaska Daylight Time", "HAT": "Newfoundland Daylight Time", "ARST": "Argentina Summer Time", "HNT": "Newfoundland Standard Time", "HEOG": "West Greenland Summer Time", "LHDT": "Lord Howe Daylight Time", "ChST": "Chamorro Standard Time", "AST": "Atlantic Standard Time", "UYST": "Uruguay Summer Time", "AKST": "Alaska Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "PST": "Pacific Standard Time", "JST": "Japan Standard Time", "WAST": "West Africa Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time", "NZST": "New Zealand Standard Time", "HNEG": "East Greenland Standard Time", "OESZ": "Eastern European Summer Time", "GMT": "Greenwich Mean Time", "HNCU": "Cuba Standard Time", "WIB": "Western Indonesia Time", "HKT": "Hong Kong Standard Time", "CHAST": "Chatham Standard Time", "EDT": "Eastern Daylight Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "MYT": "Malaysia Time", "VET": "Venezuela Time", "∅∅∅": "Amazon Summer Time", "ACWDT": "Australian Central Western Daylight Time", "MESZ": "Central European Summer Time", "CLST": "Chile Summer Time", "WART": "Western Argentina Standard Time", "PDT": "Pacific Daylight Time", "CHADT": "Chatham Daylight Time", "NZDT": "New Zealand Daylight Time", "CLT": "Chile Standard Time", "OEZ": "Eastern European Standard Time", "MST": "Macau Standard Time", "BT": "Bhutan Time", "GFT": "French Guiana Time", "CST": "Central Standard Time", "AEST": "Australian Eastern Standard Time", "HKST": "Hong Kong Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "AWST": "Australian Western Standard Time", "SAST": "South Africa Standard Time", "ECT": "Ecuador Time", "EAT": "East Africa Time", "COST": "Colombia Summer Time", "SGT": "Singapore Standard Time", "WITA": "Central Indonesia Time", "WEZ": "Western European Standard Time", "AEDT": "Australian Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "IST": "India Standard Time", "ACST": "Australian Central Standard Time", "WAT": "West Africa Standard Time", "WARST": "Western Argentina Summer Time", "UYT": "Uruguay Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "TMST": "Turkmenistan Summer Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "ADT": "Atlantic Daylight Time", "JDT": "Japan Daylight Time", "HEEG": "East Greenland Summer Time", "COT": "Colombia Standard Time", "HNPMX": "Mexican Pacific Standard Time", "SRT": "Suriname Time", "ART": "Argentina Standard Time", "AWDT": "Australian Western Daylight Time"},
+ timezones: map[string]string{"PDT": "Pacific Daylight Time", "ECT": "Ecuador Time", "IST": "India Standard Time", "GFT": "French Guiana Time", "WITA": "Central Indonesia Time", "HNPMX": "Mexican Pacific Standard Time", "EAT": "East Africa Time", "HNCU": "Cuba Standard Time", "AWST": "Australian Western Standard Time", "MYT": "Malaysia Time", "ACST": "Australian Central Standard Time", "BT": "Bhutan Time", "AKDT": "Alaska Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "WART": "Western Argentina Standard Time", "HEOG": "West Greenland Summer Time", "TMST": "Turkmenistan Summer Time", "WAT": "West Africa Standard Time", "ACDT": "Australian Central Daylight Time", "NZST": "New Zealand Standard Time", "WAST": "West Africa Summer Time", "COST": "Colombia Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "UYT": "Uruguay Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "ADT": "Atlantic Daylight Time", "CHAST": "Chatham Standard Time", "BOT": "Bolivia Time", "CLT": "Chile Standard Time", "AST": "Atlantic Standard Time", "HKT": "Hong Kong Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SRT": "Suriname Time", "LHDT": "Lord Howe Daylight Time", "EST": "Eastern Standard Time", "HKST": "Hong Kong Summer Time", "MST": "Mountain Standard Time", "JST": "Japan Standard Time", "CLST": "Chile Summer Time", "OESZ": "Eastern European Summer Time", "WARST": "Western Argentina Summer Time", "WIB": "Western Indonesia Time", "SGT": "Singapore Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "CAT": "Central Africa Time", "WEZ": "Western European Standard Time", "MDT": "Mountain Daylight Time", "WIT": "Eastern Indonesia Time", "CHADT": "Chatham Daylight Time", "VET": "Venezuela Time", "GMT": "Greenwich Mean Time", "AEST": "Australian Eastern Standard Time", "ACWST": "Australian Central Western Standard Time", "NZDT": "New Zealand Daylight Time", "MESZ": "Central European Summer Time", "HNOG": "West Greenland Standard Time", "OEZ": "Eastern European Standard Time", "AKST": "Alaska Standard Time", "ChST": "Chamorro Standard Time", "LHST": "Lord Howe Standard Time", "AWDT": "Australian Western Daylight Time", "MEZ": "Central European Standard Time", "TMT": "Turkmenistan Standard Time", "HEEG": "East Greenland Summer Time", "SAST": "South Africa Standard Time", "HECU": "Cuba Daylight Time", "CDT": "Central Daylight Time", "PST": "Pacific Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "AEDT": "Australian Eastern Daylight Time", "GYT": "Guyana Time", "CST": "Central Standard Time", "JDT": "Japan Daylight Time", "WESZ": "Western European Summer Time", "EDT": "Eastern Daylight Time", "COT": "Colombia Standard Time", "HNEG": "East Greenland Standard Time", "ARST": "Argentina Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ART": "Argentina Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "∅∅∅": "Acre Summer Time", "UYST": "Uruguay Summer Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_SS) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_SS) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_SS) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_SS) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_SX/en_SX.go b/en_SX/en_SX.go
index 60491a59..764c6b73 100644
--- a/en_SX/en_SX.go
+++ b/en_SX/en_SX.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"GFT": "French Guiana Time", "MST": "Macau Standard Time", "ADT": "Atlantic Daylight Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "OESZ": "Eastern European Summer Time", "SRT": "Suriname Time", "HNOG": "West Greenland Standard Time", "CHADT": "Chatham Daylight Time", "WAT": "West Africa Standard Time", "EAT": "East Africa Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "JDT": "Japan Daylight Time", "CAT": "Central Africa Time", "LHDT": "Lord Howe Daylight Time", "HNEG": "East Greenland Standard Time", "HNCU": "Cuba Standard Time", "HKT": "Hong Kong Standard Time", "MESZ": "Central European Summer Time", "GYT": "Guyana Time", "PST": "Pacific Standard Time", "WESZ": "Western European Summer Time", "HKST": "Hong Kong Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "COT": "Colombia Standard Time", "WAST": "West Africa Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "VET": "Venezuela Time", "OEZ": "Eastern European Standard Time", "ECT": "Ecuador Time", "ACST": "Australian Central Standard Time", "HECU": "Cuba Daylight Time", "SGT": "Singapore Standard Time", "AKDT": "Alaska Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZDT": "New Zealand Daylight Time", "WART": "Western Argentina Standard Time", "ACWST": "Australian Central Western Standard Time", "HEOG": "West Greenland Summer Time", "TMST": "Turkmenistan Summer Time", "ACDT": "Australian Central Daylight Time", "TMT": "Turkmenistan Standard Time", "ChST": "Chamorro Standard Time", "COST": "Colombia Summer Time", "EDT": "Eastern Daylight Time", "MDT": "Macau Summer Time", "UYST": "Uruguay Summer Time", "WITA": "Central Indonesia Time", "AWST": "Australian Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HAT": "Newfoundland Daylight Time", "HEEG": "East Greenland Summer Time", "WARST": "Western Argentina Summer Time", "GMT": "Greenwich Mean Time", "HADT": "Hawaii-Aleutian Daylight Time", "AEDT": "Australian Eastern Daylight Time", "SAST": "South Africa Standard Time", "BOT": "Bolivia Time", "AKST": "Alaska Standard Time", "AST": "Atlantic Standard Time", "BT": "Bhutan Time", "ART": "Argentina Standard Time", "AWDT": "Australian Western Daylight Time", "CHAST": "Chatham Standard Time", "CST": "Central Standard Time", "NZST": "New Zealand Standard Time", "LHST": "Lord Howe Standard Time", "WIT": "Eastern Indonesia Time", "ARST": "Argentina Summer Time", "IST": "India Standard Time", "MYT": "Malaysia Time", "∅∅∅": "Amazon Summer Time", "JST": "Japan Standard Time", "EST": "Eastern Standard Time", "CDT": "Central Daylight Time", "HNT": "Newfoundland Standard Time", "AEST": "Australian Eastern Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "UYT": "Uruguay Standard Time", "WIB": "Western Indonesia Time", "MEZ": "Central European Standard Time", "HNPMX": "Mexican Pacific Standard Time"},
+ timezones: map[string]string{"WIB": "Western Indonesia Time", "ARST": "Argentina Summer Time", "GFT": "French Guiana Time", "EAT": "East Africa Time", "SGT": "Singapore Standard Time", "ADT": "Atlantic Daylight Time", "AKDT": "Alaska Daylight Time", "∅∅∅": "Brasilia Summer Time", "AWDT": "Australian Western Daylight Time", "CHADT": "Chatham Daylight Time", "OEZ": "Eastern European Standard Time", "EST": "Eastern Standard Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "LHST": "Lord Howe Standard Time", "ECT": "Ecuador Time", "JST": "Japan Standard Time", "EDT": "Eastern Daylight Time", "PST": "Pacific Standard Time", "WESZ": "Western European Summer Time", "WART": "Western Argentina Standard Time", "MDT": "Macau Summer Time", "ACDT": "Australian Central Daylight Time", "COST": "Colombia Summer Time", "GYT": "Guyana Time", "WARST": "Western Argentina Summer Time", "HEOG": "West Greenland Summer Time", "WAT": "West Africa Standard Time", "HKST": "Hong Kong Summer Time", "HEEG": "East Greenland Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SRT": "Suriname Time", "CHAST": "Chatham Standard Time", "BOT": "Bolivia Time", "MESZ": "Central European Summer Time", "MYT": "Malaysia Time", "WAST": "West Africa Summer Time", "ACST": "Australian Central Standard Time", "SAST": "South Africa Standard Time", "WIT": "Eastern Indonesia Time", "ACWST": "Australian Central Western Standard Time", "TMST": "Turkmenistan Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "UYT": "Uruguay Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "TMT": "Turkmenistan Standard Time", "ART": "Argentina Standard Time", "CDT": "Central Daylight Time", "AWST": "Australian Western Standard Time", "CAT": "Central Africa Time", "IST": "India Standard Time", "GMT": "Greenwich Mean Time", "HNOG": "West Greenland Standard Time", "HNEG": "East Greenland Standard Time", "ACWDT": "Australian Central Western Daylight Time", "NZDT": "New Zealand Daylight Time", "CLST": "Chile Summer Time", "HAT": "Newfoundland Daylight Time", "AKST": "Alaska Standard Time", "HECU": "Cuba Daylight Time", "MEZ": "Central European Standard Time", "VET": "Venezuela Time", "WEZ": "Western European Standard Time", "HKT": "Hong Kong Standard Time", "PDT": "Pacific Daylight Time", "OESZ": "Eastern European Summer Time", "AEST": "Australian Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "HNCU": "Cuba Standard Time", "WITA": "Central Indonesia Time", "UYST": "Uruguay Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "AST": "Atlantic Standard Time", "CLT": "Chile Standard Time", "HNT": "Newfoundland Standard Time", "ChST": "Chamorro Standard Time", "CST": "Central Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "NZST": "New Zealand Standard Time", "JDT": "Japan Daylight Time", "MST": "Macau Standard Time", "BT": "Bhutan Time", "LHDT": "Lord Howe Daylight Time", "HEPMX": "Mexican Pacific Daylight Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_SX) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_SX) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_SX) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_SX) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_SZ/en_SZ.go b/en_SZ/en_SZ.go
index acb1b843..738a7e41 100644
--- a/en_SZ/en_SZ.go
+++ b/en_SZ/en_SZ.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"AWST": "Australian Western Standard Time", "JDT": "Japan Daylight Time", "HNT": "Newfoundland Standard Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "MST": "Macau Standard Time", "HEOG": "West Greenland Summer Time", "PDT": "Pacific Daylight Time", "ACST": "Australian Central Standard Time", "ACDT": "Australian Central Daylight Time", "CLST": "Chile Summer Time", "ACWST": "Australian Central Western Standard Time", "CHAST": "Chatham Standard Time", "IST": "India Standard Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "HAT": "Newfoundland Daylight Time", "CLT": "Chile Standard Time", "TMST": "Turkmenistan Summer Time", "UYT": "Uruguay Standard Time", "AEDT": "Australian Eastern Daylight Time", "WAT": "West Africa Standard Time", "MDT": "Macau Summer Time", "MYT": "Malaysia Time", "HAST": "Hawaii-Aleutian Standard Time", "HNOG": "West Greenland Standard Time", "WESZ": "Western European Summer Time", "ARST": "Argentina Summer Time", "TMT": "Turkmenistan Standard Time", "EDT": "Eastern Daylight Time", "CHADT": "Chatham Daylight Time", "CST": "Central Standard Time", "HKST": "Hong Kong Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "MESZ": "Central European Summer Time", "NZDT": "New Zealand Daylight Time", "WART": "Western Argentina Standard Time", "AKST": "Alaska Standard Time", "VET": "Venezuela Time", "WIT": "Eastern Indonesia Time", "HEEG": "East Greenland Summer Time", "WAST": "West Africa Summer Time", "ACWDT": "Australian Central Western Daylight Time", "SAST": "South Africa Standard Time", "SRT": "Suriname Time", "CAT": "Central Africa Time", "UYST": "Uruguay Summer Time", "AST": "Atlantic Standard Time", "PST": "Pacific Standard Time", "WEZ": "Western European Standard Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "OESZ": "Eastern European Summer Time", "ADT": "Atlantic Daylight Time", "ChST": "Chamorro Standard Time", "EAT": "East Africa Time", "HEPMX": "Mexican Pacific Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "HKT": "Hong Kong Standard Time", "HNEG": "East Greenland Standard Time", "WARST": "Western Argentina Summer Time", "ECT": "Ecuador Time", "HNNOMX": "Northwest Mexico Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "CDT": "Central Daylight Time", "ART": "Argentina Standard Time", "MEZ": "Central European Standard Time", "∅∅∅": "Amazon Summer Time", "AEST": "Australian Eastern Standard Time", "GYT": "Guyana Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "AWDT": "Australian Western Daylight Time", "WITA": "Central Indonesia Time", "NZST": "New Zealand Standard Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "SGT": "Singapore Standard Time", "EST": "Eastern Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "JST": "Japan Standard Time", "COST": "Colombia Summer Time"},
+ timezones: map[string]string{"WART": "Western Argentina Standard Time", "HNEG": "East Greenland Standard Time", "HEEG": "East Greenland Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHST": "Lord Howe Standard Time", "PDT": "Pacific Daylight Time", "AWDT": "Australian Western Daylight Time", "HEOG": "West Greenland Summer Time", "AEDT": "Australian Eastern Daylight Time", "WITA": "Central Indonesia Time", "AKST": "Alaska Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "∅∅∅": "Azores Summer Time", "CST": "Central Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ARST": "Argentina Summer Time", "BT": "Bhutan Time", "AEST": "Australian Eastern Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "MYT": "Malaysia Time", "EST": "Eastern Standard Time", "JST": "Japan Standard Time", "GMT": "Greenwich Mean Time", "WARST": "Western Argentina Summer Time", "TMST": "Turkmenistan Summer Time", "COT": "Colombia Standard Time", "SGT": "Singapore Standard Time", "CHAST": "Chatham Standard Time", "PST": "Pacific Standard Time", "ACST": "Australian Central Standard Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "BOT": "Bolivia Time", "ACWDT": "Australian Central Western Daylight Time", "MDT": "Macau Summer Time", "IST": "India Standard Time", "VET": "Venezuela Time", "HKT": "Hong Kong Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "ACDT": "Australian Central Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "GYT": "Guyana Time", "CHADT": "Chatham Daylight Time", "WAST": "West Africa Summer Time", "GFT": "French Guiana Time", "AKDT": "Alaska Daylight Time", "EAT": "East Africa Time", "WESZ": "Western European Summer Time", "CLT": "Chile Standard Time", "HKST": "Hong Kong Summer Time", "MEZ": "Central European Standard Time", "CLST": "Chile Summer Time", "ART": "Argentina Standard Time", "LHDT": "Lord Howe Daylight Time", "WIT": "Eastern Indonesia Time", "JDT": "Japan Daylight Time", "ADT": "Atlantic Daylight Time", "COST": "Colombia Summer Time", "CDT": "Central Daylight Time", "OEZ": "Eastern European Standard Time", "HNOG": "West Greenland Standard Time", "MST": "Macau Standard Time", "EDT": "Eastern Daylight Time", "WAT": "West Africa Standard Time", "ECT": "Ecuador Time", "ACWST": "Australian Central Western Standard Time", "NZST": "New Zealand Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "CAT": "Central Africa Time", "MESZ": "Central European Summer Time", "AST": "Atlantic Standard Time", "UYST": "Uruguay Summer Time", "ChST": "Chamorro Standard Time", "AWST": "Australian Western Standard Time", "WEZ": "Western European Standard Time", "SAST": "South Africa Standard Time", "WIB": "Western Indonesia Time", "OESZ": "Eastern European Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "UYT": "Uruguay Standard Time", "HNCU": "Cuba Standard Time", "TMT": "Turkmenistan Standard Time", "SRT": "Suriname Time", "HECU": "Cuba Daylight Time", "NZDT": "New Zealand Daylight Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_SZ) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_SZ) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_SZ) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_SZ) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_TC/en_TC.go b/en_TC/en_TC.go
index 95d4300e..ee3e0ee4 100644
--- a/en_TC/en_TC.go
+++ b/en_TC/en_TC.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"AWDT": "Australian Western Daylight Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "EDT": "Eastern Daylight Time", "GYT": "Guyana Time", "BT": "Bhutan Time", "ART": "Argentina Standard Time", "MEZ": "Central European Standard Time", "OESZ": "Eastern European Summer Time", "UYT": "Uruguay Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "PST": "Pacific Standard Time", "HKST": "Hong Kong Summer Time", "WITA": "Central Indonesia Time", "NZDT": "New Zealand Daylight Time", "∅∅∅": "Amazon Summer Time", "GFT": "French Guiana Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "HNOG": "West Greenland Standard Time", "TMT": "Turkmenistan Standard Time", "ACST": "Australian Central Standard Time", "EAT": "East Africa Time", "GMT": "Greenwich Mean Time", "UYST": "Uruguay Summer Time", "WIB": "Western Indonesia Time", "NZST": "New Zealand Standard Time", "HNEG": "East Greenland Standard Time", "OEZ": "Eastern European Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "AWST": "Australian Western Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "TMST": "Turkmenistan Summer Time", "HNCU": "Cuba Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AST": "Atlantic Standard Time", "MESZ": "Central European Summer Time", "CHADT": "Chatham Daylight Time", "IST": "India Standard Time", "ECT": "Ecuador Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "EST": "Eastern Standard Time", "AKDT": "Alaska Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HECU": "Cuba Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "JST": "Japan Standard Time", "VET": "Venezuela Time", "HKT": "Hong Kong Standard Time", "CLT": "Chile Standard Time", "ACDT": "Australian Central Daylight Time", "MDT": "Macau Summer Time", "MYT": "Malaysia Time", "HADT": "Hawaii-Aleutian Daylight Time", "ARST": "Argentina Summer Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "COST": "Colombia Summer Time", "SGT": "Singapore Standard Time", "ADT": "Atlantic Daylight Time", "SRT": "Suriname Time", "SAST": "South Africa Standard Time", "CLST": "Chile Summer Time", "ACWST": "Australian Central Western Standard Time", "HEOG": "West Greenland Summer Time", "LHST": "Lord Howe Standard Time", "ChST": "Chamorro Standard Time", "AKST": "Alaska Standard Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "WIT": "Eastern Indonesia Time", "JDT": "Japan Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "MST": "Macau Standard Time", "CHAST": "Chatham Standard Time", "BOT": "Bolivia Time", "AEST": "Australian Eastern Standard Time", "LHDT": "Lord Howe Daylight Time", "HEEG": "East Greenland Summer Time", "WAST": "West Africa Summer Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "WESZ": "Western European Summer Time"},
+ timezones: map[string]string{"WART": "Western Argentina Standard Time", "CLST": "Chile Summer Time", "HNOG": "West Greenland Standard Time", "ADT": "Atlantic Daylight Time", "SGT": "Singapore Standard Time", "∅∅∅": "Amazon Summer Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "BT": "Bhutan Time", "GFT": "French Guiana Time", "ChST": "Chamorro Standard Time", "GYT": "Guyana Time", "CAT": "Central Africa Time", "OESZ": "Eastern European Summer Time", "MST": "Macau Standard Time", "WAST": "West Africa Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "WEZ": "Western European Standard Time", "CLT": "Chile Standard Time", "HEOG": "West Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CHADT": "Chatham Daylight Time", "OEZ": "Eastern European Standard Time", "HKST": "Hong Kong Summer Time", "JST": "Japan Standard Time", "TMST": "Turkmenistan Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "MESZ": "Central European Summer Time", "WAT": "West Africa Standard Time", "WITA": "Central Indonesia Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CHAST": "Chatham Standard Time", "PDT": "Pacific Daylight Time", "SRT": "Suriname Time", "CST": "Central Standard Time", "HNEG": "East Greenland Standard Time", "HEEG": "East Greenland Summer Time", "AEST": "Australian Eastern Standard Time", "HECU": "Cuba Daylight Time", "AWDT": "Australian Western Daylight Time", "ACST": "Australian Central Standard Time", "ACDT": "Australian Central Daylight Time", "AEDT": "Australian Eastern Daylight Time", "AKDT": "Alaska Daylight Time", "WESZ": "Western European Summer Time", "COST": "Colombia Summer Time", "WARST": "Western Argentina Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "WIB": "Western Indonesia Time", "NZDT": "New Zealand Daylight Time", "MEZ": "Central European Standard Time", "VET": "Venezuela Time", "EDT": "Eastern Daylight Time", "HNT": "Newfoundland Standard Time", "UYT": "Uruguay Standard Time", "LHST": "Lord Howe Standard Time", "AWST": "Australian Western Standard Time", "IST": "India Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HNCU": "Cuba Standard Time", "AST": "Atlantic Standard Time", "LHDT": "Lord Howe Daylight Time", "HAT": "Newfoundland Daylight Time", "CDT": "Central Daylight Time", "ARST": "Argentina Summer Time", "EST": "Eastern Standard Time", "ECT": "Ecuador Time", "GMT": "Greenwich Mean Time", "PST": "Pacific Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "ART": "Argentina Standard Time", "BOT": "Bolivia Time", "MYT": "Malaysia Time", "SAST": "South Africa Standard Time", "WIT": "Eastern Indonesia Time", "HKT": "Hong Kong Standard Time", "AKST": "Alaska Standard Time", "JDT": "Japan Daylight Time", "MDT": "Macau Summer Time", "UYST": "Uruguay Summer Time", "EAT": "East Africa Time", "ACWST": "Australian Central Western Standard Time", "NZST": "New Zealand Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_TC) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_TC) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_TC) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_TC) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_TK/en_TK.go b/en_TK/en_TK.go
index 7b7dd442..54210155 100644
--- a/en_TK/en_TK.go
+++ b/en_TK/en_TK.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"EAT": "East Africa Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "MYT": "Malaysia Time", "UYT": "Uruguay Standard Time", "BT": "Bhutan Time", "ECT": "Ecuador Time", "HECU": "Cuba Daylight Time", "ACWST": "Australian Central Western Standard Time", "AWDT": "Australian Western Daylight Time", "SAST": "South Africa Standard Time", "JST": "Japan Standard Time", "HEEG": "East Greenland Summer Time", "EDT": "Eastern Daylight Time", "PST": "Pacific Standard Time", "WITA": "Central Indonesia Time", "NZST": "New Zealand Standard Time", "CAT": "Central Africa Time", "WAST": "West Africa Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "MESZ": "Central European Summer Time", "HNEG": "East Greenland Standard Time", "ADT": "Atlantic Daylight Time", "WEZ": "Western European Standard Time", "AEDT": "Australian Eastern Daylight Time", "WARST": "Western Argentina Summer Time", "EST": "Eastern Standard Time", "AKDT": "Alaska Daylight Time", "AWST": "Australian Western Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HKT": "Hong Kong Standard Time", "CLT": "Chile Standard Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "CDT": "Central Daylight Time", "WIB": "Western Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "TMT": "Turkmenistan Standard Time", "GYT": "Guyana Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CHAST": "Chatham Standard Time", "WART": "Western Argentina Standard Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "PDT": "Pacific Daylight Time", "ARST": "Argentina Summer Time", "HKST": "Hong Kong Summer Time", "CHADT": "Chatham Daylight Time", "HNOG": "West Greenland Standard Time", "LHST": "Lord Howe Standard Time", "JDT": "Japan Daylight Time", "HNCU": "Cuba Standard Time", "MDT": "Macau Summer Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "ART": "Argentina Standard Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "∅∅∅": "Amazon Summer Time", "BOT": "Bolivia Time", "TMST": "Turkmenistan Summer Time", "OESZ": "Eastern European Summer Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time", "HEOG": "West Greenland Summer Time", "MEZ": "Central European Standard Time", "ACDT": "Australian Central Daylight Time", "MST": "Macau Standard Time", "AKST": "Alaska Standard Time", "UYST": "Uruguay Summer Time", "SRT": "Suriname Time", "AEST": "Australian Eastern Standard Time", "CLST": "Chile Summer Time", "ChST": "Chamorro Standard Time", "GFT": "French Guiana Time", "ACST": "Australian Central Standard Time", "CST": "Central Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AST": "Atlantic Standard Time", "WIT": "Eastern Indonesia Time", "NZDT": "New Zealand Daylight Time"},
+ timezones: map[string]string{"HAST": "Hawaii-Aleutian Standard Time", "CLT": "Chile Standard Time", "ACDT": "Australian Central Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AST": "Atlantic Standard Time", "COT": "Colombia Standard Time", "UYST": "Uruguay Summer Time", "SAST": "South Africa Standard Time", "OESZ": "Eastern European Summer Time", "WEZ": "Western European Standard Time", "AWDT": "Australian Western Daylight Time", "CHAST": "Chatham Standard Time", "CAT": "Central Africa Time", "NZST": "New Zealand Standard Time", "VET": "Venezuela Time", "JDT": "Japan Daylight Time", "WAST": "West Africa Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HEEG": "East Greenland Summer Time", "AKDT": "Alaska Daylight Time", "BOT": "Bolivia Time", "MEZ": "Central European Standard Time", "GYT": "Guyana Time", "JST": "Japan Standard Time", "ACST": "Australian Central Standard Time", "COST": "Colombia Summer Time", "AKST": "Alaska Standard Time", "WITA": "Central Indonesia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "PDT": "Pacific Daylight Time", "OEZ": "Eastern European Standard Time", "WARST": "Western Argentina Summer Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "EST": "Eastern Standard Time", "CDT": "Central Daylight Time", "GMT": "Greenwich Mean Time", "EDT": "Eastern Daylight Time", "HKT": "Hong Kong Standard Time", "LHDT": "Lord Howe Daylight Time", "ACWST": "Australian Central Western Standard Time", "HKST": "Hong Kong Summer Time", "SRT": "Suriname Time", "WIB": "Western Indonesia Time", "CHADT": "Chatham Daylight Time", "SGT": "Singapore Standard Time", "∅∅∅": "Amazon Summer Time", "TMT": "Turkmenistan Standard Time", "LHST": "Lord Howe Standard Time", "EAT": "East Africa Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "CST": "Central Standard Time", "PST": "Pacific Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AEDT": "Australian Eastern Daylight Time", "ChST": "Chamorro Standard Time", "HECU": "Cuba Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "HEOG": "West Greenland Summer Time", "MST": "Macau Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "WIT": "Eastern Indonesia Time", "ECT": "Ecuador Time", "NZDT": "New Zealand Daylight Time", "ADT": "Atlantic Daylight Time", "WESZ": "Western European Summer Time", "WART": "Western Argentina Standard Time", "WAT": "West Africa Standard Time", "MYT": "Malaysia Time", "TMST": "Turkmenistan Summer Time", "HNEG": "East Greenland Standard Time", "HNCU": "Cuba Standard Time", "AWST": "Australian Western Standard Time", "CLST": "Chile Summer Time", "BT": "Bhutan Time", "GFT": "French Guiana Time", "HEPMX": "Mexican Pacific Daylight Time", "IST": "India Standard Time", "MESZ": "Central European Summer Time", "HNOG": "West Greenland Standard Time", "MDT": "Macau Summer Time", "AEST": "Australian Eastern Standard Time", "UYT": "Uruguay Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_TK) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_TK) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_TK) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_TK) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_TO/en_TO.go b/en_TO/en_TO.go
index e06d9e29..c140d442 100644
--- a/en_TO/en_TO.go
+++ b/en_TO/en_TO.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"AKDT": "Alaska Daylight Time", "MDT": "Mountain Daylight Time", "WIB": "Western Indonesia Time", "ACWST": "Australian Central Western Standard Time", "HNT": "Newfoundland Standard Time", "AEST": "Australian Eastern Standard Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "HEOG": "West Greenland Summer Time", "AWST": "Australian Western Standard Time", "HKST": "Hong Kong Summer Time", "BOT": "Bolivia Time", "EDT": "Eastern Daylight Time", "WAT": "West Africa Standard Time", "SRT": "Suriname Time", "WESZ": "Western European Summer Time", "MEZ": "Central European Standard Time", "LHST": "Lord Howe Standard Time", "IST": "India Standard Time", "∅∅∅": "Amazon Summer Time", "JDT": "Japan Daylight Time", "OEZ": "Eastern European Standard Time", "CHAST": "Chatham Standard Time", "ChST": "Chamorro Standard Time", "EST": "Eastern Standard Time", "ACWDT": "Australian Central Western Daylight Time", "PST": "Pacific Standard Time", "NZDT": "New Zealand Daylight Time", "TMT": "Turkmenistan Standard Time", "CAT": "Central Africa Time", "MYT": "Malaysia Time", "HECU": "Cuba Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "BT": "Bhutan Time", "WEZ": "Western European Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "MESZ": "Central European Summer Time", "CLT": "Chile Standard Time", "HNEG": "East Greenland Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "ART": "Argentina Standard Time", "COST": "Colombia Summer Time", "HEEG": "East Greenland Summer Time", "VET": "Venezuela Time", "PDT": "Pacific Daylight Time", "HAT": "Newfoundland Daylight Time", "ARST": "Argentina Summer Time", "WITA": "Central Indonesia Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "ACST": "Australian Central Standard Time", "ACDT": "Australian Central Daylight Time", "CDT": "Central Daylight Time", "CLST": "Chile Summer Time", "JST": "Japan Standard Time", "GFT": "French Guiana Time", "WART": "Western Argentina Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AKST": "Alaska Standard Time", "ADT": "Atlantic Daylight Time", "HNOG": "West Greenland Standard Time", "AWDT": "Australian Western Daylight Time", "WAST": "West Africa Summer Time", "ECT": "Ecuador Time", "WARST": "Western Argentina Summer Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "MST": "Mountain Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "UYT": "Uruguay Standard Time", "HKT": "Hong Kong Standard Time", "LHDT": "Lord Howe Daylight Time", "NZST": "New Zealand Standard Time", "UYST": "Uruguay Summer Time", "GYT": "Guyana Time", "AEDT": "Australian Eastern Daylight Time", "EAT": "East Africa Time", "OESZ": "Eastern European Summer Time", "GMT": "Greenwich Mean Time", "HNPMX": "Mexican Pacific Standard Time", "CST": "Central Standard Time", "WIT": "Eastern Indonesia Time", "TMST": "Turkmenistan Summer Time", "AST": "Atlantic Standard Time"},
+ timezones: map[string]string{"HECU": "Cuba Daylight Time", "ACWST": "Australian Central Western Standard Time", "ACST": "Australian Central Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "VET": "Venezuela Time", "AEDT": "Australian Eastern Daylight Time", "SAST": "South Africa Standard Time", "CDT": "Central Daylight Time", "CHADT": "Chatham Daylight Time", "PST": "Pacific Standard Time", "TMT": "Turkmenistan Standard Time", "WITA": "Central Indonesia Time", "ECT": "Ecuador Time", "WEZ": "Western European Standard Time", "ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "UYST": "Uruguay Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "EAT": "East Africa Time", "NZST": "New Zealand Standard Time", "WARST": "Western Argentina Summer Time", "JST": "Japan Standard Time", "HNOG": "West Greenland Standard Time", "MST": "Macau Standard Time", "EST": "Eastern Standard Time", "HNEG": "East Greenland Standard Time", "ChST": "Chamorro Standard Time", "CHAST": "Chatham Standard Time", "ACWDT": "Australian Central Western Daylight Time", "BOT": "Bolivia Time", "GMT": "Greenwich Mean Time", "WART": "Western Argentina Standard Time", "ART": "Argentina Standard Time", "HKST": "Hong Kong Summer Time", "AEST": "Australian Eastern Standard Time", "UYT": "Uruguay Standard Time", "PDT": "Pacific Daylight Time", "OEZ": "Eastern European Standard Time", "HNCU": "Cuba Standard Time", "HEEG": "East Greenland Summer Time", "BT": "Bhutan Time", "MDT": "Macau Summer Time", "COST": "Colombia Summer Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "AKST": "Alaska Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "AWST": "Australian Western Standard Time", "HEOG": "West Greenland Summer Time", "HNPMX": "Mexican Pacific Standard Time", "MESZ": "Central European Summer Time", "COT": "Colombia Standard Time", "AKDT": "Alaska Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "WIT": "Eastern Indonesia Time", "SGT": "Singapore Standard Time", "∅∅∅": "Amazon Summer Time", "MEZ": "Central European Standard Time", "MYT": "Malaysia Time", "TMST": "Turkmenistan Summer Time", "WAST": "West Africa Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "SRT": "Suriname Time", "AWDT": "Australian Western Daylight Time", "CAT": "Central Africa Time", "CLT": "Chile Standard Time", "AST": "Atlantic Standard Time", "GFT": "French Guiana Time", "LHDT": "Lord Howe Daylight Time", "WIB": "Western Indonesia Time", "NZDT": "New Zealand Daylight Time", "WESZ": "Western European Summer Time", "EDT": "Eastern Daylight Time", "GYT": "Guyana Time", "JDT": "Japan Daylight Time", "ADT": "Atlantic Daylight Time", "CST": "Central Standard Time", "IST": "India Standard Time", "ACDT": "Australian Central Daylight Time", "OESZ": "Eastern European Summer Time", "LHST": "Lord Howe Standard Time", "WAT": "West Africa Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "CLST": "Chile Summer Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_TO) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_TO) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_TO) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_TO) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_TT/en_TT.go b/en_TT/en_TT.go
index 267c50ba..67e0fad8 100644
--- a/en_TT/en_TT.go
+++ b/en_TT/en_TT.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HEPMX": "Mexican Pacific Daylight Time", "PDT": "Pacific Daylight Time", "WESZ": "Western European Summer Time", "ACWDT": "Australian Central Western Daylight Time", "TMT": "Turkmenistan Standard Time", "HEEG": "East Greenland Summer Time", "NZST": "New Zealand Standard Time", "CLT": "Chile Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AST": "Atlantic Standard Time", "AKDT": "Alaska Daylight Time", "ACWST": "Australian Central Western Standard Time", "LHST": "Lord Howe Standard Time", "EDT": "Eastern Daylight Time", "MDT": "Macau Summer Time", "VET": "Venezuela Time", "AWST": "Australian Western Standard Time", "WITA": "Central Indonesia Time", "SAST": "South Africa Standard Time", "EAT": "East Africa Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "COST": "Colombia Summer Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "CST": "Central Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "IST": "India Standard Time", "WAST": "West Africa Summer Time", "AKST": "Alaska Standard Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "BOT": "Bolivia Time", "OESZ": "Eastern European Summer Time", "WART": "Western Argentina Standard Time", "GMT": "Greenwich Mean Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CLST": "Chile Summer Time", "GFT": "French Guiana Time", "AWDT": "Australian Western Daylight Time", "CHADT": "Chatham Daylight Time", "HNCU": "Cuba Standard Time", "HKST": "Hong Kong Summer Time", "∅∅∅": "Azores Summer Time", "PST": "Pacific Standard Time", "MEZ": "Central European Standard Time", "ACST": "Australian Central Standard Time", "HECU": "Cuba Daylight Time", "WIB": "Western Indonesia Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "NZDT": "New Zealand Daylight Time", "JDT": "Japan Daylight Time", "TMST": "Turkmenistan Summer Time", "CAT": "Central Africa Time", "SGT": "Singapore Standard Time", "GYT": "Guyana Time", "CDT": "Central Daylight Time", "WEZ": "Western European Standard Time", "HNT": "Newfoundland Standard Time", "CHAST": "Chatham Standard Time", "WAT": "West Africa Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "WIT": "Eastern Indonesia Time", "HKT": "Hong Kong Standard Time", "MESZ": "Central European Summer Time", "JST": "Japan Standard Time", "ChST": "Chamorro Standard Time", "HNEG": "East Greenland Standard Time", "HNOG": "West Greenland Standard Time", "WARST": "Western Argentina Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "MST": "Macau Standard Time", "ADT": "Atlantic Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "BT": "Bhutan Time", "SRT": "Suriname Time", "LHDT": "Lord Howe Daylight Time", "EST": "Eastern Standard Time", "OEZ": "Eastern European Standard Time", "UYT": "Uruguay Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HEOG": "West Greenland Summer Time", "ACDT": "Australian Central Daylight Time"},
+ timezones: map[string]string{"HKT": "Hong Kong Standard Time", "WAT": "West Africa Standard Time", "HNT": "Newfoundland Standard Time", "AEDT": "Australian Eastern Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ACWST": "Australian Central Western Standard Time", "WESZ": "Western European Summer Time", "TMST": "Turkmenistan Summer Time", "CST": "Central Standard Time", "COST": "Colombia Summer Time", "∅∅∅": "Azores Summer Time", "GYT": "Guyana Time", "ECT": "Ecuador Time", "IST": "India Standard Time", "HEOG": "West Greenland Summer Time", "ARST": "Argentina Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "EAT": "East Africa Time", "WIT": "Eastern Indonesia Time", "AWDT": "Australian Western Daylight Time", "MYT": "Malaysia Time", "HNOG": "West Greenland Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "UYST": "Uruguay Summer Time", "ChST": "Chamorro Standard Time", "LHST": "Lord Howe Standard Time", "SRT": "Suriname Time", "PDT": "Pacific Daylight Time", "HEEG": "East Greenland Summer Time", "MDT": "Mountain Daylight Time", "WIB": "Western Indonesia Time", "BOT": "Bolivia Time", "JDT": "Japan Daylight Time", "WAST": "West Africa Summer Time", "ACST": "Australian Central Standard Time", "HNEG": "East Greenland Standard Time", "AWST": "Australian Western Standard Time", "SGT": "Singapore Standard Time", "OEZ": "Eastern European Standard Time", "EDT": "Eastern Daylight Time", "COT": "Colombia Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "AST": "Atlantic Standard Time", "TMT": "Turkmenistan Standard Time", "LHDT": "Lord Howe Daylight Time", "SAST": "South Africa Standard Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "CHAST": "Chatham Standard Time", "ACDT": "Australian Central Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "GMT": "Greenwich Mean Time", "CLST": "Chile Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "WITA": "Central Indonesia Time", "HEPMX": "Mexican Pacific Daylight Time", "HKST": "Hong Kong Summer Time", "AEST": "Australian Eastern Standard Time", "OESZ": "Eastern European Summer Time", "AKDT": "Alaska Daylight Time", "JST": "Japan Standard Time", "WART": "Western Argentina Standard Time", "HAT": "Newfoundland Daylight Time", "WEZ": "Western European Standard Time", "GFT": "French Guiana Time", "ACWDT": "Australian Central Western Daylight Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "MEZ": "Central European Standard Time", "BT": "Bhutan Time", "MST": "Mountain Standard Time", "HNPMX": "Mexican Pacific Standard Time", "PST": "Pacific Standard Time", "VET": "Venezuela Time", "EST": "Eastern Standard Time", "CLT": "Chile Standard Time", "AKST": "Alaska Standard Time", "CDT": "Central Daylight Time", "CHADT": "Chatham Daylight Time", "MESZ": "Central European Summer Time", "WARST": "Western Argentina Summer Time", "UYT": "Uruguay Standard Time", "CAT": "Central Africa Time", "ADT": "Atlantic Daylight Time", "ART": "Argentina Standard Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_TT) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_TT) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
@@ -405,15 +405,25 @@ func (en *en_TT) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_TT) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_TT) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_TT) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_TV/en_TV.go b/en_TV/en_TV.go
index f1e869d8..8d6a7ff5 100644
--- a/en_TV/en_TV.go
+++ b/en_TV/en_TV.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"COST": "Colombia Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "ADT": "Atlantic Daylight Time", "WIB": "Western Indonesia Time", "JST": "Japan Standard Time", "HNEG": "East Greenland Standard Time", "ECT": "Ecuador Time", "WART": "Western Argentina Standard Time", "WIT": "Eastern Indonesia Time", "ARST": "Argentina Summer Time", "AEST": "Australian Eastern Standard Time", "VET": "Venezuela Time", "LHDT": "Lord Howe Daylight Time", "SAST": "South Africa Standard Time", "EAT": "East Africa Time", "COT": "Colombia Standard Time", "AST": "Atlantic Standard Time", "AKDT": "Alaska Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "WESZ": "Western European Summer Time", "AWDT": "Australian Western Daylight Time", "WAT": "West Africa Standard Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "CDT": "Central Daylight Time", "PDT": "Pacific Daylight Time", "HECU": "Cuba Daylight Time", "AKST": "Alaska Standard Time", "WEZ": "Western European Standard Time", "CHADT": "Chatham Daylight Time", "ACST": "Australian Central Standard Time", "CAT": "Central Africa Time", "SGT": "Singapore Standard Time", "JDT": "Japan Daylight Time", "HNOG": "West Greenland Standard Time", "HNT": "Newfoundland Standard Time", "ART": "Argentina Standard Time", "MESZ": "Central European Summer Time", "TMT": "Turkmenistan Standard Time", "WAST": "West Africa Summer Time", "ACWDT": "Australian Central Western Daylight Time", "SRT": "Suriname Time", "WITA": "Central Indonesia Time", "CLST": "Chile Summer Time", "TMST": "Turkmenistan Summer Time", "OEZ": "Eastern European Standard Time", "MST": "Macau Standard Time", "HEEG": "East Greenland Summer Time", "ACDT": "Australian Central Daylight Time", "MYT": "Malaysia Time", "HAT": "Newfoundland Daylight Time", "MEZ": "Central European Standard Time", "NZST": "New Zealand Standard Time", "CHAST": "Chatham Standard Time", "IST": "India Standard Time", "UYT": "Uruguay Standard Time", "UYST": "Uruguay Summer Time", "CST": "Central Standard Time", "HKT": "Hong Kong Standard Time", "NZDT": "New Zealand Daylight Time", "BOT": "Bolivia Time", "OESZ": "Eastern European Summer Time", "HNCU": "Cuba Standard Time", "GFT": "French Guiana Time", "HNPMX": "Mexican Pacific Standard Time", "BT": "Bhutan Time", "AEDT": "Australian Eastern Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "∅∅∅": "Amazon Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "PST": "Pacific Standard Time", "ChST": "Chamorro Standard Time", "ACWST": "Australian Central Western Standard Time", "AWST": "Australian Western Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "GMT": "Greenwich Mean Time", "EST": "Eastern Standard Time", "EDT": "Eastern Daylight Time", "HEOG": "West Greenland Summer Time", "LHST": "Lord Howe Standard Time", "CLT": "Chile Standard Time", "WARST": "Western Argentina Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HKST": "Hong Kong Summer Time"},
+ timezones: map[string]string{"SAST": "South Africa Standard Time", "WIB": "Western Indonesia Time", "CAT": "Central Africa Time", "ADT": "Atlantic Daylight Time", "WAST": "West Africa Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "NZST": "New Zealand Standard Time", "HKST": "Hong Kong Summer Time", "MEZ": "Central European Standard Time", "AST": "Atlantic Standard Time", "OESZ": "Eastern European Summer Time", "WITA": "Central Indonesia Time", "UYST": "Uruguay Summer Time", "CHADT": "Chatham Daylight Time", "PST": "Pacific Standard Time", "PDT": "Pacific Daylight Time", "GYT": "Guyana Time", "HAST": "Hawaii-Aleutian Standard Time", "IST": "India Standard Time", "WEZ": "Western European Standard Time", "AEST": "Australian Eastern Standard Time", "BOT": "Bolivia Time", "MESZ": "Central European Summer Time", "ACST": "Australian Central Standard Time", "HNT": "Newfoundland Standard Time", "CDT": "Central Daylight Time", "AWDT": "Australian Western Daylight Time", "HEOG": "West Greenland Summer Time", "WESZ": "Western European Summer Time", "ARST": "Argentina Summer Time", "HAT": "Newfoundland Daylight Time", "AKST": "Alaska Standard Time", "AEDT": "Australian Eastern Daylight Time", "UYT": "Uruguay Standard Time", "LHDT": "Lord Howe Daylight Time", "ACWST": "Australian Central Western Standard Time", "HKT": "Hong Kong Standard Time", "ACDT": "Australian Central Daylight Time", "COT": "Colombia Standard Time", "ChST": "Chamorro Standard Time", "EAT": "East Africa Time", "HECU": "Cuba Daylight Time", "GMT": "Greenwich Mean Time", "EDT": "Eastern Daylight Time", "TMT": "Turkmenistan Standard Time", "WARST": "Western Argentina Summer Time", "TMST": "Turkmenistan Summer Time", "ART": "Argentina Standard Time", "BT": "Bhutan Time", "∅∅∅": "Peru Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "WART": "Western Argentina Standard Time", "WAT": "West Africa Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "CST": "Central Standard Time", "WIT": "Eastern Indonesia Time", "NZDT": "New Zealand Daylight Time", "HNEG": "East Greenland Standard Time", "GFT": "French Guiana Time", "MDT": "Mountain Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "SRT": "Suriname Time", "VET": "Venezuela Time", "JDT": "Japan Daylight Time", "OEZ": "Eastern European Standard Time", "MYT": "Malaysia Time", "COST": "Colombia Summer Time", "HEEG": "East Greenland Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "AWST": "Australian Western Standard Time", "JST": "Japan Standard Time", "CLT": "Chile Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SGT": "Singapore Standard Time", "ECT": "Ecuador Time", "HNOG": "West Greenland Standard Time", "AKDT": "Alaska Daylight Time", "MST": "Mountain Standard Time", "CLST": "Chile Summer Time", "EST": "Eastern Standard Time", "LHST": "Lord Howe Standard Time", "HNCU": "Cuba Standard Time", "CHAST": "Chatham Standard Time", "HNNOMX": "Northwest Mexico Standard Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_TV) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_TV) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
@@ -405,15 +405,25 @@ func (en *en_TV) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_TV) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_TV) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_TV) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_TZ/en_TZ.go b/en_TZ/en_TZ.go
index f7a07264..9ef8a21d 100644
--- a/en_TZ/en_TZ.go
+++ b/en_TZ/en_TZ.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"UYST": "Uruguay Summer Time", "HNOG": "West Greenland Standard Time", "IST": "India Standard Time", "OEZ": "Eastern European Standard Time", "ACST": "Australian Central Standard Time", "AEST": "Australian Eastern Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AST": "Atlantic Standard Time", "VET": "Venezuela Time", "HAST": "Hawaii-Aleutian Standard Time", "NZDT": "New Zealand Daylight Time", "BOT": "Bolivia Time", "OESZ": "Eastern European Summer Time", "AWDT": "Australian Western Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "MYT": "Malaysia Time", "UYT": "Uruguay Standard Time", "HKST": "Hong Kong Summer Time", "AEDT": "Australian Eastern Daylight Time", "CHAST": "Chatham Standard Time", "JST": "Japan Standard Time", "ChST": "Chamorro Standard Time", "AKDT": "Alaska Daylight Time", "CHADT": "Chatham Daylight Time", "HEEG": "East Greenland Summer Time", "MDT": "Macau Summer Time", "ADT": "Atlantic Daylight Time", "ACWST": "Australian Central Western Standard Time", "ARST": "Argentina Summer Time", "PDT": "Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "WART": "Western Argentina Standard Time", "EAT": "East Africa Time", "WARST": "Western Argentina Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "GYT": "Guyana Time", "HNEG": "East Greenland Standard Time", "TMT": "Turkmenistan Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HNT": "Newfoundland Standard Time", "WAT": "West Africa Standard Time", "HNCU": "Cuba Standard Time", "AKST": "Alaska Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "MESZ": "Central European Summer Time", "CLT": "Chile Standard Time", "COST": "Colombia Summer Time", "WEZ": "Western European Standard Time", "HAT": "Newfoundland Daylight Time", "CAT": "Central Africa Time", "BT": "Bhutan Time", "PST": "Pacific Standard Time", "WITA": "Central Indonesia Time", "ACDT": "Australian Central Daylight Time", "ECT": "Ecuador Time", "WIB": "Western Indonesia Time", "LHDT": "Lord Howe Daylight Time", "SAST": "South Africa Standard Time", "JDT": "Japan Daylight Time", "SGT": "Singapore Standard Time", "GMT": "Greenwich Mean Time", "MST": "Macau Standard Time", "EST": "Eastern Standard Time", "WIT": "Eastern Indonesia Time", "MEZ": "Central European Standard Time", "CLST": "Chile Summer Time", "TMST": "Turkmenistan Summer Time", "HECU": "Cuba Daylight Time", "WESZ": "Western European Summer Time", "ART": "Argentina Standard Time", "AWST": "Australian Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "GFT": "French Guiana Time", "WAST": "West Africa Summer Time", "EDT": "Eastern Daylight Time", "SRT": "Suriname Time", "HEOG": "West Greenland Summer Time", "HKT": "Hong Kong Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "∅∅∅": "Amazon Summer Time", "COT": "Colombia Standard Time"},
+ timezones: map[string]string{"JDT": "Japan Daylight Time", "MST": "Macau Standard Time", "BT": "Bhutan Time", "ChST": "Chamorro Standard Time", "CST": "Central Standard Time", "WIT": "Eastern Indonesia Time", "MEZ": "Central European Standard Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "HNNOMX": "Northwest Mexico Standard Time", "AWST": "Australian Western Standard Time", "CLST": "Chile Summer Time", "EST": "Eastern Standard Time", "UYT": "Uruguay Standard Time", "AWDT": "Australian Western Daylight Time", "ADT": "Atlantic Daylight Time", "CDT": "Central Daylight Time", "ACWST": "Australian Central Western Standard Time", "HEOG": "West Greenland Summer Time", "HKST": "Hong Kong Summer Time", "COT": "Colombia Standard Time", "HNEG": "East Greenland Standard Time", "∅∅∅": "Acre Summer Time", "WITA": "Central Indonesia Time", "LHDT": "Lord Howe Daylight Time", "WAST": "West Africa Summer Time", "HEEG": "East Greenland Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "JST": "Japan Standard Time", "TMST": "Turkmenistan Summer Time", "COST": "Colombia Summer Time", "MESZ": "Central European Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "CAT": "Central Africa Time", "HNOG": "West Greenland Standard Time", "WEZ": "Western European Standard Time", "AEST": "Australian Eastern Standard Time", "HECU": "Cuba Daylight Time", "CHADT": "Chatham Daylight Time", "NZST": "New Zealand Standard Time", "AST": "Atlantic Standard Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "CLT": "Chile Standard Time", "ACST": "Australian Central Standard Time", "GFT": "French Guiana Time", "IST": "India Standard Time", "VET": "Venezuela Time", "WAT": "West Africa Standard Time", "HNT": "Newfoundland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "GYT": "Guyana Time", "PDT": "Pacific Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "EDT": "Eastern Daylight Time", "ACDT": "Australian Central Daylight Time", "AKST": "Alaska Standard Time", "UYST": "Uruguay Summer Time", "SAST": "South Africa Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HNCU": "Cuba Standard Time", "CHAST": "Chatham Standard Time", "NZDT": "New Zealand Daylight Time", "MDT": "Macau Summer Time", "ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "AKDT": "Alaska Daylight Time", "SRT": "Suriname Time", "EAT": "East Africa Time", "WIB": "Western Indonesia Time", "PST": "Pacific Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "WESZ": "Western European Summer Time", "MYT": "Malaysia Time", "OESZ": "Eastern European Summer Time", "TMT": "Turkmenistan Standard Time", "ART": "Argentina Standard Time", "HAT": "Newfoundland Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SGT": "Singapore Standard Time", "BOT": "Bolivia Time", "ECT": "Ecuador Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_TZ) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_TZ) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_TZ) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_TZ) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_UG/en_UG.go b/en_UG/en_UG.go
index 91afed63..3ec07ec7 100644
--- a/en_UG/en_UG.go
+++ b/en_UG/en_UG.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"LHDT": "Lord Howe Daylight Time", "OEZ": "Eastern European Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HAT": "Newfoundland Daylight Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "HKST": "Hong Kong Summer Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "MEZ": "Central European Standard Time", "AKST": "Alaska Standard Time", "WIT": "Eastern Indonesia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZDT": "New Zealand Daylight Time", "HECU": "Cuba Daylight Time", "EST": "Eastern Standard Time", "HNT": "Newfoundland Standard Time", "MESZ": "Central European Summer Time", "CLT": "Chile Standard Time", "SGT": "Singapore Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "VET": "Venezuela Time", "JST": "Japan Standard Time", "CLST": "Chile Summer Time", "GFT": "French Guiana Time", "OESZ": "Eastern European Summer Time", "BT": "Bhutan Time", "CHAST": "Chatham Standard Time", "EAT": "East Africa Time", "GMT": "Greenwich Mean Time", "UYST": "Uruguay Summer Time", "LHST": "Lord Howe Standard Time", "ACST": "Australian Central Standard Time", "MYT": "Malaysia Time", "AWDT": "Australian Western Daylight Time", "SAST": "South Africa Standard Time", "WART": "Western Argentina Standard Time", "ChST": "Chamorro Standard Time", "GYT": "Guyana Time", "SRT": "Suriname Time", "ACWST": "Australian Central Western Standard Time", "HNOG": "West Greenland Standard Time", "WEZ": "Western European Standard Time", "TMT": "Turkmenistan Standard Time", "WESZ": "Western European Summer Time", "WITA": "Central Indonesia Time", "HNEG": "East Greenland Standard Time", "WAST": "West Africa Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "HNCU": "Cuba Standard Time", "PST": "Pacific Standard Time", "∅∅∅": "Amazon Summer Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "WAT": "West Africa Standard Time", "HEOG": "West Greenland Summer Time", "PDT": "Pacific Daylight Time", "EDT": "Eastern Daylight Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "MST": "Mountain Standard Time", "NZST": "New Zealand Standard Time", "UYT": "Uruguay Standard Time", "ACWDT": "Australian Central Western Daylight Time", "CHADT": "Chatham Daylight Time", "HEEG": "East Greenland Summer Time", "ECT": "Ecuador Time", "AST": "Atlantic Standard Time", "TMST": "Turkmenistan Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "AKDT": "Alaska Daylight Time", "WIB": "Western Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "AEDT": "Australian Eastern Daylight Time", "IST": "India Standard Time", "JDT": "Japan Daylight Time", "ADT": "Atlantic Daylight Time", "MDT": "Mountain Daylight Time", "HKT": "Hong Kong Standard Time", "AEST": "Australian Eastern Standard Time", "AWST": "Australian Western Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time"},
+ timezones: map[string]string{"SRT": "Suriname Time", "ACWST": "Australian Central Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "JST": "Japan Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CHADT": "Chatham Daylight Time", "CAT": "Central Africa Time", "NZST": "New Zealand Standard Time", "GMT": "Greenwich Mean Time", "COST": "Colombia Summer Time", "CST": "Central Standard Time", "GYT": "Guyana Time", "AWST": "Australian Western Standard Time", "AWDT": "Australian Western Daylight Time", "HNOG": "West Greenland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "MESZ": "Central European Summer Time", "JDT": "Japan Daylight Time", "CLST": "Chile Summer Time", "ADT": "Atlantic Daylight Time", "WESZ": "Western European Summer Time", "HNT": "Newfoundland Standard Time", "ACST": "Australian Central Standard Time", "CDT": "Central Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "MEZ": "Central European Standard Time", "MYT": "Malaysia Time", "WARST": "Western Argentina Summer Time", "ART": "Argentina Standard Time", "EDT": "Eastern Daylight Time", "GFT": "French Guiana Time", "MST": "Mountain Standard Time", "AKST": "Alaska Standard Time", "LHST": "Lord Howe Standard Time", "CLT": "Chile Standard Time", "TMST": "Turkmenistan Summer Time", "EST": "Eastern Standard Time", "HKT": "Hong Kong Standard Time", "∅∅∅": "Acre Summer Time", "HKST": "Hong Kong Summer Time", "EAT": "East Africa Time", "ECT": "Ecuador Time", "BT": "Bhutan Time", "OESZ": "Eastern European Summer Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HECU": "Cuba Daylight Time", "MDT": "Mountain Daylight Time", "WITA": "Central Indonesia Time", "HNPMX": "Mexican Pacific Standard Time", "HNCU": "Cuba Standard Time", "SGT": "Singapore Standard Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "HEEG": "East Greenland Summer Time", "ChST": "Chamorro Standard Time", "AKDT": "Alaska Daylight Time", "UYST": "Uruguay Summer Time", "WIB": "Western Indonesia Time", "WART": "Western Argentina Standard Time", "WAST": "West Africa Summer Time", "AEDT": "Australian Eastern Daylight Time", "WIT": "Eastern Indonesia Time", "AST": "Atlantic Standard Time", "WEZ": "Western European Standard Time", "COT": "Colombia Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "UYT": "Uruguay Standard Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "VET": "Venezuela Time", "HEOG": "West Greenland Summer Time", "ARST": "Argentina Summer Time", "AEST": "Australian Eastern Standard Time", "PST": "Pacific Standard Time", "OEZ": "Eastern European Standard Time", "HAT": "Newfoundland Daylight Time", "CHAST": "Chatham Standard Time", "PDT": "Pacific Daylight Time", "NZDT": "New Zealand Daylight Time", "TMT": "Turkmenistan Standard Time", "HNEG": "East Greenland Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_UG) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_UG) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_UG) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_UG) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_UM/en_UM.go b/en_UM/en_UM.go
index 5403639b..0c8176b5 100644
--- a/en_UM/en_UM.go
+++ b/en_UM/en_UM.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HNPMX": "Mexican Pacific Standard Time", "ADT": "Atlantic Daylight Time", "ACWST": "Australian Central Western Standard Time", "AWDT": "Australian Western Daylight Time", "HECU": "Cuba Daylight Time", "OEZ": "Eastern European Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "UYST": "Uruguay Summer Time", "AST": "Atlantic Standard Time", "JST": "Japan Standard Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "WAT": "West Africa Standard Time", "OESZ": "Eastern European Summer Time", "HAT": "Newfoundland Daylight Time", "NZDT": "New Zealand Daylight Time", "SAST": "South Africa Standard Time", "MESZ": "Central European Summer Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "WART": "Western Argentina Standard Time", "EDT": "Eastern Daylight Time", "BT": "Bhutan Time", "PST": "Pacific Standard Time", "HEOG": "West Greenland Summer Time", "MST": "Macau Standard Time", "UYT": "Uruguay Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "TMST": "Turkmenistan Summer Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "HNEG": "East Greenland Standard Time", "EST": "Eastern Standard Time", "WESZ": "Western European Summer Time", "HKST": "Hong Kong Summer Time", "CHADT": "Chatham Daylight Time", "MEZ": "Central European Standard Time", "ChST": "Chamorro Standard Time", "EAT": "East Africa Time", "GYT": "Guyana Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "AKDT": "Alaska Daylight Time", "CLST": "Chile Summer Time", "∅∅∅": "Amazon Summer Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "AEDT": "Australian Eastern Daylight Time", "NZST": "New Zealand Standard Time", "CLT": "Chile Standard Time", "ACST": "Australian Central Standard Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "GMT": "Greenwich Mean Time", "MYT": "Malaysia Time", "WEZ": "Western European Standard Time", "ACWDT": "Australian Central Western Daylight Time", "CHAST": "Chatham Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNT": "Newfoundland Standard Time", "AWST": "Australian Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "TMT": "Turkmenistan Standard Time", "CDT": "Central Daylight Time", "WAST": "West Africa Summer Time", "MDT": "Macau Summer Time", "AKST": "Alaska Standard Time", "CST": "Central Standard Time", "WIB": "Western Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "HNOG": "West Greenland Standard Time", "WITA": "Central Indonesia Time", "LHST": "Lord Howe Standard Time", "JDT": "Japan Daylight Time", "ECT": "Ecuador Time", "WIT": "Eastern Indonesia Time", "PDT": "Pacific Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "VET": "Venezuela Time", "SRT": "Suriname Time", "AEST": "Australian Eastern Standard Time"},
+ timezones: map[string]string{"GFT": "French Guiana Time", "SRT": "Suriname Time", "EAT": "East Africa Time", "AST": "Atlantic Standard Time", "GMT": "Greenwich Mean Time", "ART": "Argentina Standard Time", "CHAST": "Chatham Standard Time", "MEZ": "Central European Standard Time", "HNOG": "West Greenland Standard Time", "EDT": "Eastern Daylight Time", "MST": "Mountain Standard Time", "UYST": "Uruguay Summer Time", "SGT": "Singapore Standard Time", "HEOG": "West Greenland Summer Time", "ADT": "Atlantic Daylight Time", "LHST": "Lord Howe Standard Time", "GYT": "Guyana Time", "COT": "Colombia Standard Time", "ACWST": "Australian Central Western Standard Time", "ARST": "Argentina Summer Time", "CLST": "Chile Summer Time", "AEST": "Australian Eastern Standard Time", "MDT": "Mountain Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "∅∅∅": "Azores Summer Time", "BOT": "Bolivia Time", "HAST": "Hawaii-Aleutian Standard Time", "HKST": "Hong Kong Summer Time", "BT": "Bhutan Time", "AKDT": "Alaska Daylight Time", "MESZ": "Central European Summer Time", "VET": "Venezuela Time", "HENOMX": "Northwest Mexico Daylight Time", "HAT": "Newfoundland Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "IST": "India Standard Time", "WAT": "West Africa Standard Time", "HNT": "Newfoundland Standard Time", "LHDT": "Lord Howe Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "CAT": "Central Africa Time", "CLT": "Chile Standard Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "CST": "Central Standard Time", "WARST": "Western Argentina Summer Time", "TMST": "Turkmenistan Summer Time", "HNEG": "East Greenland Standard Time", "UYT": "Uruguay Standard Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "PDT": "Pacific Daylight Time", "MYT": "Malaysia Time", "ACDT": "Australian Central Daylight Time", "WITA": "Central Indonesia Time", "ChST": "Chamorro Standard Time", "ECT": "Ecuador Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "CDT": "Central Daylight Time", "AWST": "Australian Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "JST": "Japan Standard Time", "HKT": "Hong Kong Standard Time", "COST": "Colombia Summer Time", "HEEG": "East Greenland Summer Time", "CHADT": "Chatham Daylight Time", "JDT": "Japan Daylight Time", "OESZ": "Eastern European Summer Time", "WESZ": "Western European Summer Time", "EST": "Eastern Standard Time", "ACST": "Australian Central Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "AKST": "Alaska Standard Time", "AEDT": "Australian Eastern Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "OEZ": "Eastern European Standard Time", "WART": "Western Argentina Standard Time", "WAST": "West Africa Summer Time", "SAST": "South Africa Standard Time", "AWDT": "Australian Western Daylight Time", "PST": "Pacific Standard Time", "WEZ": "Western European Standard Time", "TMT": "Turkmenistan Standard Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_UM) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_UM) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
diff --git a/en_US/en_US.go b/en_US/en_US.go
index 923a6182..6a512e84 100644
--- a/en_US/en_US.go
+++ b/en_US/en_US.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"MESZ": "Central European Summer Time", "JDT": "Japan Daylight Time", "HNEG": "East Greenland Standard Time", "GMT": "Greenwich Mean Time", "CST": "Central Standard Time", "WEZ": "Western European Standard Time", "PDT": "Pacific Daylight Time", "WIB": "Western Indonesia Time", "ART": "Argentina Standard Time", "SAST": "South Africa Standard Time", "ACDT": "Australian Central Daylight Time", "WAT": "West Africa Standard Time", "MST": "Macau Standard Time", "CDT": "Central Daylight Time", "ADT": "Atlantic Daylight Time", "HEEG": "East Greenland Summer Time", "COST": "Colombia Summer Time", "SGT": "Singapore Standard Time", "HNPMX": "Mexican Pacific Standard Time", "GYT": "Guyana Time", "VET": "Venezuela Time", "AST": "Atlantic Standard Time", "HNOG": "West Greenland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNT": "Newfoundland Standard Time", "AWDT": "Australian Western Daylight Time", "WESZ": "Western European Summer Time", "IST": "India Standard Time", "TMT": "Turkmenistan Standard Time", "BOT": "Bolivia Time", "ACST": "Australian Central Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "PST": "Pacific Standard Time", "LHDT": "Lord Howe Daylight Time", "CLT": "Chile Standard Time", "CHAST": "Chatham Standard Time", "∅∅∅": "Amazon Summer Time", "TMST": "Turkmenistan Summer Time", "COT": "Colombia Standard Time", "WIT": "Eastern Indonesia Time", "AWST": "Australian Western Standard Time", "AEST": "Australian Eastern Standard Time", "OESZ": "Eastern European Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "HKT": "Hong Kong Standard Time", "LHST": "Lord Howe Standard Time", "EDT": "Eastern Daylight Time", "AEDT": "Australian Eastern Daylight Time", "GFT": "French Guiana Time", "NZDT": "New Zealand Daylight Time", "CHADT": "Chatham Daylight Time", "MEZ": "Central European Standard Time", "WAST": "West Africa Summer Time", "HNCU": "Cuba Standard Time", "AKDT": "Alaska Daylight Time", "BT": "Bhutan Time", "ACWST": "Australian Central Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MDT": "Macau Summer Time", "HAT": "Newfoundland Daylight Time", "WITA": "Central Indonesia Time", "ChST": "Chamorro Standard Time", "CAT": "Central Africa Time", "ACWDT": "Australian Central Western Daylight Time", "HEOG": "West Greenland Summer Time", "CLST": "Chile Summer Time", "EAT": "East Africa Time", "OEZ": "Eastern European Standard Time", "UYT": "Uruguay Standard Time", "UYST": "Uruguay Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "WART": "Western Argentina Standard Time", "HECU": "Cuba Daylight Time", "MYT": "Malaysia Time", "ARST": "Argentina Summer Time", "NZST": "New Zealand Standard Time", "HKST": "Hong Kong Summer Time", "JST": "Japan Standard Time", "ECT": "Ecuador Time", "HNNOMX": "Northwest Mexico Standard Time", "WARST": "Western Argentina Summer Time", "EST": "Eastern Standard Time", "AKST": "Alaska Standard Time", "SRT": "Suriname Time"},
+ timezones: map[string]string{"WART": "Western Argentina Standard Time", "AKST": "Alaska Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNCU": "Cuba Standard Time", "ACWST": "Australian Central Western Standard Time", "ART": "Argentina Standard Time", "HNEG": "East Greenland Standard Time", "LHDT": "Lord Howe Daylight Time", "CST": "Central Standard Time", "VET": "Venezuela Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "MDT": "Macau Summer Time", "WAT": "West Africa Standard Time", "AKDT": "Alaska Daylight Time", "HECU": "Cuba Daylight Time", "CLT": "Chile Standard Time", "AEST": "Australian Eastern Standard Time", "SRT": "Suriname Time", "MESZ": "Central European Summer Time", "GYT": "Guyana Time", "CHADT": "Chatham Daylight Time", "ECT": "Ecuador Time", "ARST": "Argentina Summer Time", "COT": "Colombia Standard Time", "UYT": "Uruguay Standard Time", "CHAST": "Chatham Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "ADT": "Atlantic Daylight Time", "EDT": "Eastern Daylight Time", "HKT": "Hong Kong Standard Time", "ChST": "Chamorro Standard Time", "PDT": "Pacific Daylight Time", "IST": "India Standard Time", "NZST": "New Zealand Standard Time", "JST": "Japan Standard Time", "HAT": "Newfoundland Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "AST": "Atlantic Standard Time", "CLST": "Chile Summer Time", "∅∅∅": "Acre Summer Time", "SAST": "South Africa Standard Time", "LHST": "Lord Howe Standard Time", "CDT": "Central Daylight Time", "MST": "Macau Standard Time", "HEEG": "East Greenland Summer Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "WEZ": "Western European Standard Time", "WAST": "West Africa Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "MEZ": "Central European Standard Time", "JDT": "Japan Daylight Time", "HKST": "Hong Kong Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "WITA": "Central Indonesia Time", "EAT": "East Africa Time", "SGT": "Singapore Standard Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "HNT": "Newfoundland Standard Time", "AWDT": "Australian Western Daylight Time", "OESZ": "Eastern European Summer Time", "MYT": "Malaysia Time", "GFT": "French Guiana Time", "AWST": "Australian Western Standard Time", "PST": "Pacific Standard Time", "NZDT": "New Zealand Daylight Time", "WESZ": "Western European Summer Time", "GMT": "Greenwich Mean Time", "TMST": "Turkmenistan Summer Time", "ACST": "Australian Central Standard Time", "BT": "Bhutan Time", "UYST": "Uruguay Summer Time", "OEZ": "Eastern European Standard Time", "EST": "Eastern Standard Time", "ACDT": "Australian Central Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "HNPMX": "Mexican Pacific Standard Time", "ACWDT": "Australian Central Western Daylight Time"},
}
}
diff --git a/en_US_POSIX/en_US_POSIX.go b/en_US_POSIX/en_US_POSIX.go
index 61f8489c..1b2e620b 100644
--- a/en_US_POSIX/en_US_POSIX.go
+++ b/en_US_POSIX/en_US_POSIX.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"CHADT": "Chatham Daylight Time", "COST": "Colombia Summer Time", "UYT": "Uruguay Standard Time", "AKDT": "Alaska Daylight Time", "MST": "Mountain Standard Time", "AEST": "Australian Eastern Standard Time", "AWST": "Australian Western Standard Time", "WITA": "Central Indonesia Time", "UYST": "Uruguay Summer Time", "ACWST": "Australian Central Western Standard Time", "ECT": "Ecuador Time", "OESZ": "Eastern European Summer Time", "WART": "Western Argentina Standard Time", "HECU": "Cuba Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "NZDT": "New Zealand Daylight Time", "HNEG": "East Greenland Standard Time", "COT": "Colombia Standard Time", "EST": "Eastern Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CST": "Central Standard Time", "HNOG": "West Greenland Standard Time", "ACDT": "Australian Central Daylight Time", "AST": "Atlantic Standard Time", "HKST": "Hong Kong Summer Time", "HNT": "Newfoundland Standard Time", "WESZ": "Western European Summer Time", "LHDT": "Lord Howe Daylight Time", "EAT": "East Africa Time", "GMT": "Greenwich Mean Time", "AEDT": "Australian Eastern Daylight Time", "VET": "Venezuela Time", "NZST": "New Zealand Standard Time", "BOT": "Bolivia Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "WIB": "Western Indonesia Time", "WEZ": "Western European Standard Time", "MESZ": "Central European Summer Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "WAST": "West Africa Summer Time", "GYT": "Guyana Time", "HADT": "Hawaii-Aleutian Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SAST": "South Africa Standard Time", "JST": "Japan Standard Time", "TMST": "Turkmenistan Summer Time", "CDT": "Central Daylight Time", "ARST": "Argentina Summer Time", "SRT": "Suriname Time", "AWDT": "Australian Western Daylight Time", "ACST": "Australian Central Standard Time", "MDT": "Mountain Daylight Time", "CHAST": "Chatham Standard Time", "TMT": "Turkmenistan Standard Time", "CAT": "Central Africa Time", "WAT": "West Africa Standard Time", "HNCU": "Cuba Standard Time", "WIT": "Eastern Indonesia Time", "HEOG": "West Greenland Summer Time", "LHST": "Lord Howe Standard Time", "IST": "India Standard Time", "WARST": "Western Argentina Summer Time", "AKST": "Alaska Standard Time", "BT": "Bhutan Time", "ACWDT": "Australian Central Western Daylight Time", "EDT": "Eastern Daylight Time", "ADT": "Atlantic Daylight Time", "MYT": "Malaysia Time", "PST": "Pacific Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "ChST": "Chamorro Standard Time", "HEEG": "East Greenland Summer Time", "OEZ": "Eastern European Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "ART": "Argentina Standard Time", "HAT": "Newfoundland Daylight Time", "HKT": "Hong Kong Standard Time", "MEZ": "Central European Standard Time", "JDT": "Japan Daylight Time", "∅∅∅": "Amazon Summer Time", "GFT": "French Guiana Time", "HENOMX": "Northwest Mexico Daylight Time", "PDT": "Pacific Daylight Time"},
+ timezones: map[string]string{"WIB": "Western Indonesia Time", "BOT": "Bolivia Time", "UYST": "Uruguay Summer Time", "SRT": "Suriname Time", "ECT": "Ecuador Time", "MESZ": "Central European Summer Time", "OESZ": "Eastern European Summer Time", "HNT": "Newfoundland Standard Time", "∅∅∅": "Azores Summer Time", "WART": "Western Argentina Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "COST": "Colombia Summer Time", "WITA": "Central Indonesia Time", "HEOG": "West Greenland Summer Time", "CHAST": "Chatham Standard Time", "TMST": "Turkmenistan Summer Time", "HECU": "Cuba Daylight Time", "CHADT": "Chatham Daylight Time", "VET": "Venezuela Time", "JST": "Japan Standard Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "MYT": "Malaysia Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "HEEG": "East Greenland Summer Time", "HNEG": "East Greenland Standard Time", "ART": "Argentina Standard Time", "EST": "Eastern Standard Time", "AEST": "Australian Eastern Standard Time", "UYT": "Uruguay Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "WIT": "Eastern Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "AST": "Atlantic Standard Time", "CLT": "Chile Standard Time", "ACST": "Australian Central Standard Time", "SAST": "South Africa Standard Time", "SGT": "Singapore Standard Time", "CAT": "Central Africa Time", "ADT": "Atlantic Daylight Time", "WARST": "Western Argentina Summer Time", "TMT": "Turkmenistan Standard Time", "HKST": "Hong Kong Summer Time", "ACDT": "Australian Central Daylight Time", "CDT": "Central Daylight Time", "PDT": "Pacific Daylight Time", "HNOG": "West Greenland Standard Time", "HAT": "Newfoundland Daylight Time", "HNCU": "Cuba Standard Time", "NZDT": "New Zealand Daylight Time", "AKST": "Alaska Standard Time", "ACWDT": "Australian Central Western Daylight Time", "PST": "Pacific Standard Time", "JDT": "Japan Daylight Time", "AKDT": "Alaska Daylight Time", "AWST": "Australian Western Standard Time", "WESZ": "Western European Summer Time", "WAST": "West Africa Summer Time", "HKT": "Hong Kong Standard Time", "GYT": "Guyana Time", "EAT": "East Africa Time", "HAST": "Hawaii-Aleutian Standard Time", "MEZ": "Central European Standard Time", "CLST": "Chile Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "BT": "Bhutan Time", "HNPMX": "Mexican Pacific Standard Time", "AEDT": "Australian Eastern Daylight Time", "ChST": "Chamorro Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "WAT": "West Africa Standard Time", "EDT": "Eastern Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "GFT": "French Guiana Time", "ACWST": "Australian Central Western Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "IST": "India Standard Time", "NZST": "New Zealand Standard Time", "WEZ": "Western European Standard Time", "COT": "Colombia Standard Time", "LHST": "Lord Howe Standard Time"},
}
}
diff --git a/en_VC/en_VC.go b/en_VC/en_VC.go
index 2fa6c503..79f8fe4d 100644
--- a/en_VC/en_VC.go
+++ b/en_VC/en_VC.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"HNT": "Newfoundland Standard Time", "AEDT": "Australian Eastern Daylight Time", "WITA": "Central Indonesia Time", "∅∅∅": "Peru Summer Time", "WART": "Western Argentina Standard Time", "MST": "Macau Standard Time", "AST": "Atlantic Standard Time", "ACWDT": "Australian Central Western Daylight Time", "IST": "India Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "CHAST": "Chatham Standard Time", "ChST": "Chamorro Standard Time", "HNCU": "Cuba Standard Time", "AKST": "Alaska Standard Time", "PST": "Pacific Standard Time", "ACWST": "Australian Central Western Standard Time", "HEOG": "West Greenland Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "WEZ": "Western European Standard Time", "JST": "Japan Standard Time", "EAT": "East Africa Time", "GMT": "Greenwich Mean Time", "MDT": "Macau Summer Time", "UYT": "Uruguay Standard Time", "WIB": "Western Indonesia Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "CHADT": "Chatham Daylight Time", "HNEG": "East Greenland Standard Time", "TMST": "Turkmenistan Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "AWST": "Australian Western Standard Time", "HKST": "Hong Kong Summer Time", "NZST": "New Zealand Standard Time", "HEEG": "East Greenland Summer Time", "COT": "Colombia Standard Time", "EDT": "Eastern Daylight Time", "AKDT": "Alaska Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNPMX": "Mexican Pacific Standard Time", "UYST": "Uruguay Summer Time", "ARST": "Argentina Summer Time", "ACDT": "Australian Central Daylight Time", "CST": "Central Standard Time", "PDT": "Pacific Daylight Time", "AWDT": "Australian Western Daylight Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "BT": "Bhutan Time", "MYT": "Malaysia Time", "CDT": "Central Daylight Time", "ADT": "Atlantic Daylight Time", "GYT": "Guyana Time", "WIT": "Eastern Indonesia Time", "SGT": "Singapore Standard Time", "HECU": "Cuba Daylight Time", "EST": "Eastern Standard Time", "MESZ": "Central European Summer Time", "CLT": "Chile Standard Time", "ECT": "Ecuador Time", "HNOG": "West Greenland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SAST": "South Africa Standard Time", "HKT": "Hong Kong Standard Time", "JDT": "Japan Daylight Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "OEZ": "Eastern European Standard Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "ACST": "Australian Central Standard Time", "NZDT": "New Zealand Daylight Time", "CLST": "Chile Summer Time", "CAT": "Central Africa Time", "OESZ": "Eastern European Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "SRT": "Suriname Time", "HAT": "Newfoundland Daylight Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "MEZ": "Central European Standard Time", "LHDT": "Lord Howe Daylight Time"},
+ timezones: map[string]string{"MYT": "Malaysia Time", "MDT": "Macau Summer Time", "AEST": "Australian Eastern Standard Time", "GFT": "French Guiana Time", "ACWST": "Australian Central Western Standard Time", "JST": "Japan Standard Time", "CLT": "Chile Standard Time", "TMT": "Turkmenistan Standard Time", "EDT": "Eastern Daylight Time", "AWDT": "Australian Western Daylight Time", "HEEG": "East Greenland Summer Time", "WITA": "Central Indonesia Time", "IST": "India Standard Time", "CLST": "Chile Summer Time", "HNOG": "West Greenland Standard Time", "ADT": "Atlantic Daylight Time", "HKT": "Hong Kong Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "UYST": "Uruguay Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "MESZ": "Central European Summer Time", "OEZ": "Eastern European Standard Time", "AWST": "Australian Western Standard Time", "ECT": "Ecuador Time", "PDT": "Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "WIB": "Western Indonesia Time", "MEZ": "Central European Standard Time", "OESZ": "Eastern European Summer Time", "WESZ": "Western European Summer Time", "TMST": "Turkmenistan Summer Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "BOT": "Bolivia Time", "HEOG": "West Greenland Summer Time", "WAT": "West Africa Standard Time", "ACST": "Australian Central Standard Time", "COST": "Colombia Summer Time", "WIT": "Eastern Indonesia Time", "CHAST": "Chatham Standard Time", "NZST": "New Zealand Standard Time", "ACWDT": "Australian Central Western Daylight Time", "EST": "Eastern Standard Time", "HNEG": "East Greenland Standard Time", "AKST": "Alaska Standard Time", "GYT": "Guyana Time", "GMT": "Greenwich Mean Time", "ARST": "Argentina Summer Time", "ChST": "Chamorro Standard Time", "WARST": "Western Argentina Summer Time", "HAT": "Newfoundland Daylight Time", "SAST": "South Africa Standard Time", "CDT": "Central Daylight Time", "BT": "Bhutan Time", "UYT": "Uruguay Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNPMX": "Mexican Pacific Standard Time", "EAT": "East Africa Time", "CHADT": "Chatham Daylight Time", "∅∅∅": "Amazon Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "JDT": "Japan Daylight Time", "AEDT": "Australian Eastern Daylight Time", "AST": "Atlantic Standard Time", "WEZ": "Western European Standard Time", "ACDT": "Australian Central Daylight Time", "HECU": "Cuba Daylight Time", "VET": "Venezuela Time", "HKST": "Hong Kong Summer Time", "SGT": "Singapore Standard Time", "PST": "Pacific Standard Time", "WART": "Western Argentina Standard Time", "MST": "Macau Standard Time", "HNT": "Newfoundland Standard Time", "SRT": "Suriname Time", "CAT": "Central Africa Time", "ART": "Argentina Standard Time", "WAST": "West Africa Summer Time", "AKDT": "Alaska Daylight Time", "HNCU": "Cuba Standard Time", "CST": "Central Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_VC) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_VC) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_VC) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_VC) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_VG/en_VG.go b/en_VG/en_VG.go
index 0f5541a4..d63f8391 100644
--- a/en_VG/en_VG.go
+++ b/en_VG/en_VG.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"WIB": "Western Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "ART": "Argentina Standard Time", "WITA": "Central Indonesia Time", "MESZ": "Central European Summer Time", "LHDT": "Lord Howe Daylight Time", "CLST": "Chile Summer Time", "GYT": "Guyana Time", "BOT": "Bolivia Time", "AST": "Atlantic Standard Time", "VET": "Venezuela Time", "JST": "Japan Standard Time", "HEEG": "East Greenland Summer Time", "ACDT": "Australian Central Daylight Time", "∅∅∅": "Peru Summer Time", "WARST": "Western Argentina Summer Time", "HNT": "Newfoundland Standard Time", "HKST": "Hong Kong Summer Time", "NZDT": "New Zealand Daylight Time", "CHADT": "Chatham Daylight Time", "TMST": "Turkmenistan Summer Time", "CAT": "Central Africa Time", "PDT": "Pacific Daylight Time", "AEDT": "Australian Eastern Daylight Time", "ACST": "Australian Central Standard Time", "SGT": "Singapore Standard Time", "CDT": "Central Daylight Time", "EDT": "Eastern Daylight Time", "AKST": "Alaska Standard Time", "HNOG": "West Greenland Standard Time", "HKT": "Hong Kong Standard Time", "CHAST": "Chatham Standard Time", "UYT": "Uruguay Standard Time", "EST": "Eastern Standard Time", "MDT": "Macau Summer Time", "HNPMX": "Mexican Pacific Standard Time", "CST": "Central Standard Time", "HAT": "Newfoundland Daylight Time", "AWDT": "Australian Western Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "PST": "Pacific Standard Time", "CLT": "Chile Standard Time", "ADT": "Atlantic Daylight Time", "COT": "Colombia Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "BT": "Bhutan Time", "AWST": "Australian Western Standard Time", "GFT": "French Guiana Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "SAST": "South Africa Standard Time", "JDT": "Japan Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "OEZ": "Eastern European Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "MYT": "Malaysia Time", "WIT": "Eastern Indonesia Time", "ECT": "Ecuador Time", "LHST": "Lord Howe Standard Time", "ChST": "Chamorro Standard Time", "HNEG": "East Greenland Standard Time", "MEZ": "Central European Standard Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "UYST": "Uruguay Summer Time", "AKDT": "Alaska Daylight Time", "WESZ": "Western European Summer Time", "HEOG": "West Greenland Summer Time", "IST": "India Standard Time", "EAT": "East Africa Time", "COST": "Colombia Summer Time", "GMT": "Greenwich Mean Time", "SRT": "Suriname Time", "AEST": "Australian Eastern Standard Time", "NZST": "New Zealand Standard Time", "WART": "Western Argentina Standard Time", "OESZ": "Eastern European Summer Time", "MST": "Macau Standard Time", "WEZ": "Western European Standard Time", "ACWST": "Australian Central Western Standard Time", "ARST": "Argentina Summer Time", "WAST": "West Africa Summer Time"},
+ timezones: map[string]string{"JST": "Japan Standard Time", "MST": "Macau Standard Time", "ART": "Argentina Standard Time", "HKST": "Hong Kong Summer Time", "ACDT": "Australian Central Daylight Time", "BT": "Bhutan Time", "WAST": "West Africa Summer Time", "WITA": "Central Indonesia Time", "WIT": "Eastern Indonesia Time", "CHAST": "Chatham Standard Time", "GMT": "Greenwich Mean Time", "MYT": "Malaysia Time", "WESZ": "Western European Summer Time", "EDT": "Eastern Daylight Time", "ACST": "Australian Central Standard Time", "AWDT": "Australian Western Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHADT": "Chatham Daylight Time", "IST": "India Standard Time", "JDT": "Japan Daylight Time", "HNOG": "West Greenland Standard Time", "ARST": "Argentina Summer Time", "HNEG": "East Greenland Standard Time", "CST": "Central Standard Time", "PDT": "Pacific Daylight Time", "NZST": "New Zealand Standard Time", "MEZ": "Central European Standard Time", "EST": "Eastern Standard Time", "COST": "Colombia Summer Time", "HNT": "Newfoundland Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "CAT": "Central Africa Time", "HKT": "Hong Kong Standard Time", "HAT": "Newfoundland Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "GYT": "Guyana Time", "ECT": "Ecuador Time", "WARST": "Western Argentina Summer Time", "AST": "Atlantic Standard Time", "OEZ": "Eastern European Standard Time", "ChST": "Chamorro Standard Time", "SAST": "South Africa Standard Time", "∅∅∅": "Amazon Summer Time", "WART": "Western Argentina Standard Time", "EAT": "East Africa Time", "CLST": "Chile Summer Time", "ADT": "Atlantic Daylight Time", "OESZ": "Eastern European Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "SRT": "Suriname Time", "WIB": "Western Indonesia Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "LHST": "Lord Howe Standard Time", "PST": "Pacific Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "WAT": "West Africa Standard Time", "AEST": "Australian Eastern Standard Time", "AWST": "Australian Western Standard Time", "SGT": "Singapore Standard Time", "CLT": "Chile Standard Time", "TMST": "Turkmenistan Summer Time", "MDT": "Macau Summer Time", "AKST": "Alaska Standard Time", "UYT": "Uruguay Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "HECU": "Cuba Daylight Time", "NZDT": "New Zealand Daylight Time", "UYST": "Uruguay Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "ACWST": "Australian Central Western Standard Time", "MESZ": "Central European Summer Time", "HEOG": "West Greenland Summer Time", "COT": "Colombia Standard Time", "LHDT": "Lord Howe Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "CDT": "Central Daylight Time", "BOT": "Bolivia Time", "VET": "Venezuela Time", "WEZ": "Western European Standard Time", "TMT": "Turkmenistan Standard Time", "AKDT": "Alaska Daylight Time", "HNCU": "Cuba Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_VG) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_VG) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_VG) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_VG) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -483,13 +493,11 @@ func (en *en_VG) FmtTimeShort(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -497,13 +505,6 @@ func (en *en_VG) FmtTimeShort(t time.Time) string {
}
b = strconv.AppendInt(b, int64(t.Minute()), 10)
- b = append(b, []byte{0x20}...)
-
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
return string(b)
}
@@ -513,13 +514,11 @@ func (en *en_VG) FmtTimeMedium(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -534,13 +533,6 @@ func (en *en_VG) FmtTimeMedium(t time.Time) string {
}
b = strconv.AppendInt(b, int64(t.Second()), 10)
- b = append(b, []byte{0x20}...)
-
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
return string(b)
}
@@ -550,13 +542,11 @@ func (en *en_VG) FmtTimeLong(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -573,14 +563,6 @@ func (en *en_VG) FmtTimeLong(t time.Time) string {
b = strconv.AppendInt(b, int64(t.Second()), 10)
b = append(b, []byte{0x20}...)
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
-
- b = append(b, []byte{0x20}...)
-
tz, _ := t.Zone()
b = append(b, tz...)
@@ -592,13 +574,11 @@ func (en *en_VG) FmtTimeFull(t time.Time) string {
b := make([]byte, 0, 32)
- h := t.Hour()
-
- if h > 12 {
- h -= 12
+ if t.Hour() < 10 {
+ b = append(b, '0')
}
- b = strconv.AppendInt(b, int64(h), 10)
+ b = strconv.AppendInt(b, int64(t.Hour()), 10)
b = append(b, en.timeSeparator...)
if t.Minute() < 10 {
@@ -615,14 +595,6 @@ func (en *en_VG) FmtTimeFull(t time.Time) string {
b = strconv.AppendInt(b, int64(t.Second()), 10)
b = append(b, []byte{0x20}...)
- if t.Hour() < 12 {
- b = append(b, en.periodsAbbreviated[0]...)
- } else {
- b = append(b, en.periodsAbbreviated[1]...)
- }
-
- b = append(b, []byte{0x20}...)
-
tz, _ := t.Zone()
if btz, ok := en.timezones[tz]; ok {
diff --git a/en_VI/en_VI.go b/en_VI/en_VI.go
index 8bc331f8..670dbb93 100644
--- a/en_VI/en_VI.go
+++ b/en_VI/en_VI.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "ECT": "Ecuador Time", "AST": "Atlantic Standard Time", "ACST": "Australian Central Standard Time", "WAT": "West Africa Standard Time", "IST": "India Standard Time", "ACDT": "Australian Central Daylight Time", "OESZ": "Eastern European Summer Time", "WART": "Western Argentina Standard Time", "EST": "Eastern Standard Time", "UYT": "Uruguay Standard Time", "HAT": "Newfoundland Daylight Time", "LHST": "Lord Howe Standard Time", "CAT": "Central Africa Time", "HNPMX": "Mexican Pacific Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "TMT": "Turkmenistan Standard Time", "COT": "Colombia Standard Time", "WARST": "Western Argentina Summer Time", "EDT": "Eastern Daylight Time", "MST": "Macau Standard Time", "CHAST": "Chatham Standard Time", "CLT": "Chile Standard Time", "JDT": "Japan Daylight Time", "HNEG": "East Greenland Standard Time", "WAST": "West Africa Summer Time", "WIB": "Western Indonesia Time", "ACWST": "Australian Central Western Standard Time", "CHADT": "Chatham Daylight Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "HEOG": "West Greenland Summer Time", "CLST": "Chile Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SAST": "South Africa Standard Time", "JST": "Japan Standard Time", "EAT": "East Africa Time", "HECU": "Cuba Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "PST": "Pacific Standard Time", "HKT": "Hong Kong Standard Time", "UYST": "Uruguay Summer Time", "AKDT": "Alaska Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "BT": "Bhutan Time", "HKST": "Hong Kong Summer Time", "HEEG": "East Greenland Summer Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "WITA": "Central Indonesia Time", "OEZ": "Eastern European Standard Time", "COST": "Colombia Summer Time", "PDT": "Pacific Daylight Time", "HNT": "Newfoundland Standard Time", "MYT": "Malaysia Time", "VET": "Venezuela Time", "AEDT": "Australian Eastern Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "MEZ": "Central European Standard Time", "∅∅∅": "Amazon Summer Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "ACWDT": "Australian Central Western Daylight Time", "HNOG": "West Greenland Standard Time", "CST": "Central Standard Time", "GMT": "Greenwich Mean Time", "MDT": "Macau Summer Time", "AKST": "Alaska Standard Time", "CDT": "Central Daylight Time", "ADT": "Atlantic Daylight Time", "NZST": "New Zealand Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "ChST": "Chamorro Standard Time", "GYT": "Guyana Time", "WEZ": "Western European Standard Time", "AEST": "Australian Eastern Standard Time", "TMST": "Turkmenistan Summer Time", "SRT": "Suriname Time", "AWST": "Australian Western Standard Time", "MESZ": "Central European Summer Time"},
+ timezones: map[string]string{"WESZ": "Western European Summer Time", "GMT": "Greenwich Mean Time", "HEOG": "West Greenland Summer Time", "HNT": "Newfoundland Standard Time", "SRT": "Suriname Time", "AWST": "Australian Western Standard Time", "VET": "Venezuela Time", "CLT": "Chile Standard Time", "HNOG": "West Greenland Standard Time", "ACDT": "Australian Central Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "TMT": "Turkmenistan Standard Time", "HKT": "Hong Kong Standard Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "EAT": "East Africa Time", "AWDT": "Australian Western Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "MESZ": "Central European Summer Time", "ART": "Argentina Standard Time", "PST": "Pacific Standard Time", "IST": "India Standard Time", "CLST": "Chile Summer Time", "SAST": "South Africa Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HECU": "Cuba Daylight Time", "PDT": "Pacific Daylight Time", "MST": "Macau Standard Time", "AKST": "Alaska Standard Time", "HNCU": "Cuba Standard Time", "SGT": "Singapore Standard Time", "BT": "Bhutan Time", "AKDT": "Alaska Daylight Time", "MEZ": "Central European Standard Time", "JDT": "Japan Daylight Time", "ADT": "Atlantic Daylight Time", "ARST": "Argentina Summer Time", "COST": "Colombia Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "NZST": "New Zealand Standard Time", "∅∅∅": "Amazon Summer Time", "TMST": "Turkmenistan Summer Time", "HKST": "Hong Kong Summer Time", "WITA": "Central Indonesia Time", "GYT": "Guyana Time", "ACWST": "Australian Central Western Standard Time", "MYT": "Malaysia Time", "CST": "Central Standard Time", "CHADT": "Chatham Daylight Time", "AST": "Atlantic Standard Time", "CDT": "Central Daylight Time", "ECT": "Ecuador Time", "WARST": "Western Argentina Summer Time", "ACST": "Australian Central Standard Time", "COT": "Colombia Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CHAST": "Chatham Standard Time", "HAT": "Newfoundland Daylight Time", "LHST": "Lord Howe Standard Time", "WIT": "Eastern Indonesia Time", "BOT": "Bolivia Time", "UYT": "Uruguay Standard Time", "LHDT": "Lord Howe Daylight Time", "OEZ": "Eastern European Standard Time", "WART": "Western Argentina Standard Time", "MDT": "Macau Summer Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "AEDT": "Australian Eastern Daylight Time", "OESZ": "Eastern European Summer Time", "EDT": "Eastern Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "AEST": "Australian Eastern Standard Time", "ChST": "Chamorro Standard Time", "WIB": "Western Indonesia Time", "CAT": "Central Africa Time", "NZDT": "New Zealand Daylight Time", "WEZ": "Western European Standard Time", "EST": "Eastern Standard Time", "UYST": "Uruguay Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "JST": "Japan Standard Time", "HNEG": "East Greenland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time"},
}
}
diff --git a/en_VU/en_VU.go b/en_VU/en_VU.go
index 5d3a7796..008a66ff 100644
--- a/en_VU/en_VU.go
+++ b/en_VU/en_VU.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"ACDT": "Australian Central Daylight Time", "COT": "Colombia Standard Time", "LHST": "Lord Howe Standard Time", "CHAST": "Chatham Standard Time", "MESZ": "Central European Summer Time", "SAST": "South Africa Standard Time", "JDT": "Japan Daylight Time", "WIT": "Eastern Indonesia Time", "HKT": "Hong Kong Standard Time", "LHDT": "Lord Howe Daylight Time", "NZST": "New Zealand Standard Time", "HECU": "Cuba Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "WARST": "Western Argentina Summer Time", "CAT": "Central Africa Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "UYST": "Uruguay Summer Time", "WEZ": "Western European Standard Time", "HNT": "Newfoundland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "WAT": "West Africa Standard Time", "CLST": "Chile Summer Time", "ACWDT": "Australian Central Western Daylight Time", "PST": "Pacific Standard Time", "AWST": "Australian Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MEZ": "Central European Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "WIB": "Western Indonesia Time", "PDT": "Pacific Daylight Time", "ChST": "Chamorro Standard Time", "GYT": "Guyana Time", "ACWST": "Australian Central Western Standard Time", "WITA": "Central Indonesia Time", "HNEG": "East Greenland Standard Time", "TMST": "Turkmenistan Summer Time", "IST": "India Standard Time", "HEOG": "West Greenland Summer Time", "CHADT": "Chatham Daylight Time", "JST": "Japan Standard Time", "ECT": "Ecuador Time", "HENOMX": "Northwest Mexico Daylight Time", "MDT": "Macau Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "WESZ": "Western European Summer Time", "∅∅∅": "Amazon Summer Time", "HEEG": "East Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "OESZ": "Eastern European Summer Time", "HNOG": "West Greenland Standard Time", "EAT": "East Africa Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "CDT": "Central Daylight Time", "UYT": "Uruguay Standard Time", "VET": "Venezuela Time", "SRT": "Suriname Time", "GMT": "Greenwich Mean Time", "HNCU": "Cuba Standard Time", "AST": "Atlantic Standard Time", "ADT": "Atlantic Daylight Time", "AEDT": "Australian Eastern Daylight Time", "OEZ": "Eastern European Standard Time", "WART": "Western Argentina Standard Time", "NZDT": "New Zealand Daylight Time", "WAST": "West Africa Summer Time", "MST": "Macau Standard Time", "AKST": "Alaska Standard Time", "MYT": "Malaysia Time", "ARST": "Argentina Summer Time", "HKST": "Hong Kong Summer Time", "CLT": "Chile Standard Time", "EDT": "Eastern Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "BT": "Bhutan Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "CST": "Central Standard Time", "HAT": "Newfoundland Daylight Time", "AWDT": "Australian Western Daylight Time", "ACST": "Australian Central Standard Time"},
+ timezones: map[string]string{"HKT": "Hong Kong Standard Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "HNPMX": "Mexican Pacific Standard Time", "BOT": "Bolivia Time", "ACWDT": "Australian Central Western Daylight Time", "VET": "Venezuela Time", "ACDT": "Australian Central Daylight Time", "UYT": "Uruguay Standard Time", "CHADT": "Chatham Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "COST": "Colombia Summer Time", "AEDT": "Australian Eastern Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "SRT": "Suriname Time", "ACWST": "Australian Central Western Standard Time", "JST": "Japan Standard Time", "GFT": "French Guiana Time", "SAST": "South Africa Standard Time", "ECT": "Ecuador Time", "NZDT": "New Zealand Daylight Time", "JDT": "Japan Daylight Time", "ARST": "Argentina Summer Time", "MDT": "Macau Summer Time", "WITA": "Central Indonesia Time", "EAT": "East Africa Time", "CHAST": "Chatham Standard Time", "AWDT": "Australian Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "CLT": "Chile Standard Time", "ART": "Argentina Standard Time", "BT": "Bhutan Time", "HECU": "Cuba Daylight Time", "MEZ": "Central European Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "UYST": "Uruguay Summer Time", "GYT": "Guyana Time", "CST": "Central Standard Time", "PST": "Pacific Standard Time", "TMT": "Turkmenistan Standard Time", "COT": "Colombia Standard Time", "AKDT": "Alaska Daylight Time", "CAT": "Central Africa Time", "WARST": "Western Argentina Summer Time", "OEZ": "Eastern European Standard Time", "WEZ": "Western European Standard Time", "WESZ": "Western European Summer Time", "GMT": "Greenwich Mean Time", "EST": "Eastern Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "WIB": "Western Indonesia Time", "IST": "India Standard Time", "ChST": "Chamorro Standard Time", "LHST": "Lord Howe Standard Time", "ACST": "Australian Central Standard Time", "AKST": "Alaska Standard Time", "HKST": "Hong Kong Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "MST": "Macau Standard Time", "EDT": "Eastern Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CDT": "Central Daylight Time", "OESZ": "Eastern European Summer Time", "NZST": "New Zealand Standard Time", "MYT": "Malaysia Time", "WART": "Western Argentina Standard Time", "CLST": "Chile Summer Time", "AST": "Atlantic Standard Time", "HNEG": "East Greenland Standard Time", "WIT": "Eastern Indonesia Time", "PDT": "Pacific Daylight Time", "HEEG": "East Greenland Summer Time", "TMST": "Turkmenistan Summer Time", "HAT": "Newfoundland Daylight Time", "∅∅∅": "Brasilia Summer Time", "AWST": "Australian Western Standard Time", "ADT": "Atlantic Daylight Time", "AEST": "Australian Eastern Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SGT": "Singapore Standard Time", "MESZ": "Central European Summer Time", "HNCU": "Cuba Standard Time", "HNT": "Newfoundland Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_VU) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_VU) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_VU) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_VU) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_WS/en_WS.go b/en_WS/en_WS.go
index e441bccd..5a405635 100644
--- a/en_WS/en_WS.go
+++ b/en_WS/en_WS.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"WESZ": "Western European Summer Time", "HEOG": "West Greenland Summer Time", "CHADT": "Chatham Daylight Time", "TMT": "Turkmenistan Standard Time", "OEZ": "Eastern European Standard Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "LHDT": "Lord Howe Daylight Time", "SAST": "South Africa Standard Time", "OESZ": "Eastern European Summer Time", "HNPMX": "Mexican Pacific Standard Time", "MESZ": "Central European Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HEEG": "East Greenland Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "WITA": "Central Indonesia Time", "WEZ": "Western European Standard Time", "WAT": "West Africa Standard Time", "MST": "Macau Standard Time", "AKST": "Alaska Standard Time", "UYT": "Uruguay Standard Time", "BT": "Bhutan Time", "AEST": "Australian Eastern Standard Time", "AWDT": "Australian Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CAT": "Central Africa Time", "WARST": "Western Argentina Summer Time", "CST": "Central Standard Time", "ARST": "Argentina Summer Time", "MEZ": "Central European Standard Time", "ECT": "Ecuador Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "AST": "Atlantic Standard Time", "ACWDT": "Australian Central Western Daylight Time", "NZST": "New Zealand Standard Time", "CHAST": "Chatham Standard Time", "JST": "Japan Standard Time", "SGT": "Singapore Standard Time", "ACWST": "Australian Central Western Standard Time", "HNEG": "East Greenland Standard Time", "EAT": "East Africa Time", "WAST": "West Africa Summer Time", "MDT": "Macau Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "VET": "Venezuela Time", "WART": "Western Argentina Standard Time", "EDT": "Eastern Daylight Time", "PST": "Pacific Standard Time", "GMT": "Greenwich Mean Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "COT": "Colombia Standard Time", "CLST": "Chile Summer Time", "GFT": "French Guiana Time", "ART": "Argentina Standard Time", "IST": "India Standard Time", "EST": "Eastern Standard Time", "HKT": "Hong Kong Standard Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "HKST": "Hong Kong Summer Time", "ADT": "Atlantic Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "SRT": "Suriname Time", "PDT": "Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "NZDT": "New Zealand Daylight Time", "CLT": "Chile Standard Time", "TMST": "Turkmenistan Summer Time", "ACST": "Australian Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HECU": "Cuba Daylight Time", "ACDT": "Australian Central Daylight Time", "AEDT": "Australian Eastern Daylight Time", "AWST": "Australian Western Standard Time", "ChST": "Chamorro Standard Time", "AKDT": "Alaska Daylight Time", "CDT": "Central Daylight Time", "HNOG": "West Greenland Standard Time", "JDT": "Japan Daylight Time", "BOT": "Bolivia Time", "COST": "Colombia Summer Time", "∅∅∅": "Amazon Summer Time"},
+ timezones: map[string]string{"EDT": "Eastern Daylight Time", "CDT": "Central Daylight Time", "AWST": "Australian Western Standard Time", "HKT": "Hong Kong Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "TMST": "Turkmenistan Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "UYST": "Uruguay Summer Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "EST": "Eastern Standard Time", "WARST": "Western Argentina Summer Time", "OESZ": "Eastern European Summer Time", "WAT": "West Africa Standard Time", "HNCU": "Cuba Standard Time", "JST": "Japan Standard Time", "MEZ": "Central European Standard Time", "CLST": "Chile Summer Time", "ART": "Argentina Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "COT": "Colombia Standard Time", "∅∅∅": "Azores Summer Time", "WIT": "Eastern Indonesia Time", "MESZ": "Central European Summer Time", "WITA": "Central Indonesia Time", "CHAST": "Chatham Standard Time", "GMT": "Greenwich Mean Time", "ADT": "Atlantic Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWST": "Australian Central Western Standard Time", "CAT": "Central Africa Time", "WEZ": "Western European Standard Time", "ChST": "Chamorro Standard Time", "SRT": "Suriname Time", "HECU": "Cuba Daylight Time", "CHADT": "Chatham Daylight Time", "AKST": "Alaska Standard Time", "LHDT": "Lord Howe Daylight Time", "CST": "Central Standard Time", "WAST": "West Africa Summer Time", "ARST": "Argentina Summer Time", "ACDT": "Australian Central Daylight Time", "BT": "Bhutan Time", "NZST": "New Zealand Standard Time", "WESZ": "Western European Summer Time", "HEOG": "West Greenland Summer Time", "OEZ": "Eastern European Standard Time", "ACST": "Australian Central Standard Time", "LHST": "Lord Howe Standard Time", "WIB": "Western Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "AEST": "Australian Eastern Standard Time", "SAST": "South Africa Standard Time", "ECT": "Ecuador Time", "MDT": "Macau Summer Time", "PDT": "Pacific Daylight Time", "JDT": "Japan Daylight Time", "COST": "Colombia Summer Time", "HNEG": "East Greenland Standard Time", "HNT": "Newfoundland Standard Time", "GYT": "Guyana Time", "AWDT": "Australian Western Daylight Time", "PST": "Pacific Standard Time", "GFT": "French Guiana Time", "HKST": "Hong Kong Summer Time", "EAT": "East Africa Time", "MYT": "Malaysia Time", "CLT": "Chile Standard Time", "HEEG": "East Greenland Summer Time", "HAT": "Newfoundland Daylight Time", "AKDT": "Alaska Daylight Time", "BOT": "Bolivia Time", "WART": "Western Argentina Standard Time", "HNOG": "West Greenland Standard Time", "VET": "Venezuela Time", "AST": "Atlantic Standard Time", "TMT": "Turkmenistan Standard Time", "MST": "Macau Standard Time", "AEDT": "Australian Eastern Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "SGT": "Singapore Standard Time", "ACWDT": "Australian Central Western Daylight Time", "UYT": "Uruguay Standard Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_WS) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_WS) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod100 := math.Mod(n, 100)
nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
@@ -405,15 +405,25 @@ func (en *en_WS) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_WS) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_WS) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_WS) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_ZA/en_ZA.go b/en_ZA/en_ZA.go
index 70c0e18f..6ab3f7d7 100644
--- a/en_ZA/en_ZA.go
+++ b/en_ZA/en_ZA.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"SGT": "Singapore Standard Time", "UYT": "Uruguay Standard Time", "WIT": "Eastern Indonesia Time", "HKST": "Hong Kong Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "EDT": "Eastern Daylight Time", "SAST": "South Africa Standard Time", "OEZ": "Eastern European Standard Time", "AKST": "Alaska Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AEST": "Australian Eastern Standard Time", "LHST": "Lord Howe Standard Time", "CAT": "Central Africa Time", "MST": "Macau Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNT": "Newfoundland Standard Time", "ART": "Argentina Standard Time", "MEZ": "Central European Standard Time", "HECU": "Cuba Daylight Time", "PST": "Pacific Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "JDT": "Japan Daylight Time", "NZST": "New Zealand Standard Time", "TMT": "Turkmenistan Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "WIB": "Western Indonesia Time", "VET": "Venezuela Time", "SRT": "Suriname Time", "WITA": "Central Indonesia Time", "GYT": "Guyana Time", "MESZ": "Central European Summer Time", "GFT": "French Guiana Time", "CHADT": "Chatham Daylight Time", "EAT": "East Africa Time", "WARST": "Western Argentina Summer Time", "HNPMX": "Mexican Pacific Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWST": "Australian Central Western Standard Time", "ARST": "Argentina Summer Time", "GMT": "Greenwich Mean Time", "LHDT": "Lord Howe Daylight Time", "JST": "Japan Standard Time", "ACDT": "Australian Central Daylight Time", "WART": "Western Argentina Standard Time", "CLST": "Chile Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "HEEG": "East Greenland Summer Time", "PDT": "Pacific Daylight Time", "CLT": "Chile Standard Time", "COST": "Colombia Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HNCU": "Cuba Standard Time", "MDT": "Macau Summer Time", "AKDT": "Alaska Daylight Time", "BOT": "Bolivia Time", "TMST": "Turkmenistan Summer Time", "ACST": "Australian Central Standard Time", "UYST": "Uruguay Summer Time", "ADT": "Atlantic Daylight Time", "WESZ": "Western European Summer Time", "HAT": "Newfoundland Daylight Time", "CHAST": "Chatham Standard Time", "WAT": "West Africa Standard Time", "ChST": "Chamorro Standard Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "MYT": "Malaysia Time", "AST": "Atlantic Standard Time", "HEOG": "West Greenland Summer Time", "AWST": "Australian Western Standard Time", "WAST": "West Africa Summer Time", "EST": "Eastern Standard Time", "WEZ": "Western European Standard Time", "HNOG": "West Greenland Standard Time", "AEDT": "Australian Eastern Daylight Time", "AWDT": "Australian Western Daylight Time", "OESZ": "Eastern European Summer Time", "∅∅∅": "Acre Summer Time", "CDT": "Central Daylight Time", "BT": "Bhutan Time", "HKT": "Hong Kong Standard Time", "HNEG": "East Greenland Standard Time"},
+ timezones: map[string]string{"WART": "Western Argentina Standard Time", "WAST": "West Africa Summer Time", "ART": "Argentina Standard Time", "WAT": "West Africa Standard Time", "HNT": "Newfoundland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "WESZ": "Western European Summer Time", "GMT": "Greenwich Mean Time", "TMT": "Turkmenistan Standard Time", "MST": "Macau Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "GFT": "French Guiana Time", "UYST": "Uruguay Summer Time", "SAST": "South Africa Standard Time", "JDT": "Japan Daylight Time", "HKST": "Hong Kong Summer Time", "WITA": "Central Indonesia Time", "AKDT": "Alaska Daylight Time", "GYT": "Guyana Time", "HADT": "Hawaii-Aleutian Daylight Time", "ARST": "Argentina Summer Time", "HNCU": "Cuba Standard Time", "CST": "Central Standard Time", "AWDT": "Australian Western Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "TMST": "Turkmenistan Summer Time", "HAT": "Newfoundland Daylight Time", "ACST": "Australian Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "VET": "Venezuela Time", "CLT": "Chile Standard Time", "ADT": "Atlantic Daylight Time", "EST": "Eastern Standard Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "CHADT": "Chatham Daylight Time", "PST": "Pacific Standard Time", "ChST": "Chamorro Standard Time", "HEEG": "East Greenland Summer Time", "HECU": "Cuba Daylight Time", "HNEG": "East Greenland Standard Time", "EAT": "East Africa Time", "CDT": "Central Daylight Time", "SGT": "Singapore Standard Time", "BOT": "Bolivia Time", "IST": "India Standard Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "∅∅∅": "Acre Summer Time", "MYT": "Malaysia Time", "PDT": "Pacific Daylight Time", "JST": "Japan Standard Time", "CLST": "Chile Summer Time", "HEOG": "West Greenland Summer Time", "OEZ": "Eastern European Standard Time", "SRT": "Suriname Time", "WIT": "Eastern Indonesia Time", "AEDT": "Australian Eastern Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "AKST": "Alaska Standard Time", "AEST": "Australian Eastern Standard Time", "MDT": "Macau Summer Time", "COT": "Colombia Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "ECT": "Ecuador Time", "CAT": "Central Africa Time", "WARST": "Western Argentina Summer Time", "ACDT": "Australian Central Daylight Time", "AST": "Atlantic Standard Time", "COST": "Colombia Summer Time", "UYT": "Uruguay Standard Time", "MEZ": "Central European Standard Time", "EDT": "Eastern Daylight Time", "BT": "Bhutan Time", "WIB": "Western Indonesia Time", "CHAST": "Chatham Standard Time", "OESZ": "Eastern European Summer Time", "WEZ": "Western European Standard Time", "HKT": "Hong Kong Standard Time", "ACWST": "Australian Central Western Standard Time", "MESZ": "Central European Summer Time", "HNOG": "West Greenland Standard Time", "AWST": "Australian Western Standard Time"},
}
}
diff --git a/en_ZM/en_ZM.go b/en_ZM/en_ZM.go
index 8e6745c9..62f3d2a2 100644
--- a/en_ZM/en_ZM.go
+++ b/en_ZM/en_ZM.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"WIB": "Western Indonesia Time", "TMST": "Turkmenistan Summer Time", "CAT": "Central Africa Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "HNOG": "West Greenland Standard Time", "PDT": "Pacific Daylight Time", "HKST": "Hong Kong Summer Time", "NZST": "New Zealand Standard Time", "ChST": "Chamorro Standard Time", "∅∅∅": "Peru Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "EST": "Eastern Standard Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "TMT": "Turkmenistan Standard Time", "WARST": "Western Argentina Summer Time", "BT": "Bhutan Time", "WITA": "Central Indonesia Time", "COT": "Colombia Standard Time", "CDT": "Central Daylight Time", "MYT": "Malaysia Time", "HADT": "Hawaii-Aleutian Daylight Time", "LHDT": "Lord Howe Daylight Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "ECT": "Ecuador Time", "JDT": "Japan Daylight Time", "ACWST": "Australian Central Western Standard Time", "BOT": "Bolivia Time", "HECU": "Cuba Daylight Time", "VET": "Venezuela Time", "WIT": "Eastern Indonesia Time", "LHST": "Lord Howe Standard Time", "HAT": "Newfoundland Daylight Time", "HEEG": "East Greenland Summer Time", "ACST": "Australian Central Standard Time", "SGT": "Singapore Standard Time", "UYST": "Uruguay Summer Time", "HNT": "Newfoundland Standard Time", "EDT": "Eastern Daylight Time", "AST": "Atlantic Standard Time", "AEDT": "Australian Eastern Daylight Time", "CLST": "Chile Summer Time", "EAT": "East Africa Time", "MDT": "Macau Summer Time", "ACWDT": "Australian Central Western Daylight Time", "HKT": "Hong Kong Standard Time", "MEZ": "Central European Standard Time", "COST": "Colombia Summer Time", "CST": "Central Standard Time", "AWDT": "Australian Western Daylight Time", "OEZ": "Eastern European Standard Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "MESZ": "Central European Summer Time", "JST": "Japan Standard Time", "ACDT": "Australian Central Daylight Time", "WART": "Western Argentina Standard Time", "GMT": "Greenwich Mean Time", "HAST": "Hawaii-Aleutian Standard Time", "AKST": "Alaska Standard Time", "PST": "Pacific Standard Time", "IST": "India Standard Time", "OESZ": "Eastern European Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HNEG": "East Greenland Standard Time", "GYT": "Guyana Time", "HEOG": "West Greenland Summer Time", "CLT": "Chile Standard Time", "GFT": "French Guiana Time", "MST": "Macau Standard Time", "UYT": "Uruguay Standard Time", "WEZ": "Western European Standard Time", "WESZ": "Western European Summer Time", "ARST": "Argentina Summer Time", "AWST": "Australian Western Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "AKDT": "Alaska Daylight Time", "ADT": "Atlantic Daylight Time", "SRT": "Suriname Time"},
+ timezones: map[string]string{"VET": "Venezuela Time", "JDT": "Japan Daylight Time", "WARST": "Western Argentina Summer Time", "HNT": "Newfoundland Standard Time", "ChST": "Chamorro Standard Time", "EAT": "East Africa Time", "CST": "Central Standard Time", "ECT": "Ecuador Time", "OESZ": "Eastern European Summer Time", "HKT": "Hong Kong Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHADT": "Chatham Daylight Time", "CAT": "Central Africa Time", "MEZ": "Central European Standard Time", "WESZ": "Western European Summer Time", "GFT": "French Guiana Time", "UYT": "Uruguay Standard Time", "GYT": "Guyana Time", "ACWST": "Australian Central Western Standard Time", "MESZ": "Central European Summer Time", "TMST": "Turkmenistan Summer Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "EST": "Eastern Standard Time", "BT": "Bhutan Time", "AKST": "Alaska Standard Time", "JST": "Japan Standard Time", "WART": "Western Argentina Standard Time", "CLST": "Chile Summer Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "ACDT": "Australian Central Daylight Time", "HEEG": "East Greenland Summer Time", "WEZ": "Western European Standard Time", "HKST": "Hong Kong Summer Time", "ACST": "Australian Central Standard Time", "LHST": "Lord Howe Standard Time", "SGT": "Singapore Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "MYT": "Malaysia Time", "HEOG": "West Greenland Summer Time", "ARST": "Argentina Summer Time", "EDT": "Eastern Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "WITA": "Central Indonesia Time", "SRT": "Suriname Time", "AWDT": "Australian Western Daylight Time", "IST": "India Standard Time", "AEST": "Australian Eastern Standard Time", "WIB": "Western Indonesia Time", "GMT": "Greenwich Mean Time", "COT": "Colombia Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "BOT": "Bolivia Time", "ACWDT": "Australian Central Western Daylight Time", "HNOG": "West Greenland Standard Time", "AST": "Atlantic Standard Time", "WAST": "West Africa Summer Time", "SAST": "South Africa Standard Time", "PDT": "Pacific Daylight Time", "COST": "Colombia Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HAT": "Newfoundland Daylight Time", "AWST": "Australian Western Standard Time", "HNEG": "East Greenland Standard Time", "HNCU": "Cuba Standard Time", "CHAST": "Chatham Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "AEDT": "Australian Eastern Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "PST": "Pacific Standard Time", "ART": "Argentina Standard Time", "UYST": "Uruguay Summer Time", "HECU": "Cuba Daylight Time", "WIT": "Eastern Indonesia Time", "∅∅∅": "Amazon Summer Time", "ADT": "Atlantic Daylight Time", "LHDT": "Lord Howe Daylight Time", "CDT": "Central Daylight Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "CLT": "Chile Standard Time", "OEZ": "Eastern European Standard Time", "AKDT": "Alaska Daylight Time", "HNPMX": "Mexican Pacific Standard Time"},
}
}
@@ -405,15 +405,25 @@ func (en *en_ZM) FmtDateShort(t time.Time) string {
b := make([]byte, 0, 32)
- b = strconv.AppendInt(b, int64(t.Month()), 10)
- b = append(b, []byte{0x2f}...)
+ if t.Day() < 10 {
+ b = append(b, '0')
+ }
+
b = strconv.AppendInt(b, int64(t.Day()), 10)
b = append(b, []byte{0x2f}...)
- if t.Year() > 9 {
- b = append(b, strconv.Itoa(t.Year())[2:]...)
+ if t.Month() < 10 {
+ b = append(b, '0')
+ }
+
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+
+ b = append(b, []byte{0x2f}...)
+
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
} else {
- b = append(b, strconv.Itoa(t.Year())[1:]...)
+ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
}
return string(b)
@@ -424,10 +434,10 @@ func (en *en_ZM) FmtDateMedium(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsAbbreviated[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -443,10 +453,10 @@ func (en *en_ZM) FmtDateLong(t time.Time) string {
b := make([]byte, 0, 32)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
@@ -464,10 +474,10 @@ func (en *en_ZM) FmtDateFull(t time.Time) string {
b = append(b, en.daysWide[t.Weekday()]...)
b = append(b, []byte{0x2c, 0x20}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x20}...)
b = append(b, en.monthsWide[t.Month()]...)
b = append(b, []byte{0x20}...)
- b = strconv.AppendInt(b, int64(t.Day()), 10)
- b = append(b, []byte{0x2c, 0x20}...)
if t.Year() > 0 {
b = strconv.AppendInt(b, int64(t.Year()), 10)
diff --git a/en_ZW/en_ZW.go b/en_ZW/en_ZW.go
index d913e2a9..31639ac7 100644
--- a/en_ZW/en_ZW.go
+++ b/en_ZW/en_ZW.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"B", "A"},
erasWide: []string{"Before Christ", "Anno Domini"},
- timezones: map[string]string{"WAST": "West Africa Summer Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "WITA": "Central Indonesia Time", "MYT": "Malaysia Time", "WIT": "Eastern Indonesia Time", "CHAST": "Chatham Standard Time", "SAST": "South Africa Standard Time", "HEEG": "East Greenland Summer Time", "OESZ": "Eastern European Summer Time", "ECT": "Ecuador Time", "ADT": "Atlantic Daylight Time", "BT": "Bhutan Time", "ART": "Argentina Standard Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "TMST": "Turkmenistan Summer Time", "WAT": "West Africa Standard Time", "SGT": "Singapore Standard Time", "HKT": "Hong Kong Standard Time", "EST": "Eastern Standard Time", "CST": "Central Standard Time", "CLT": "Chile Standard Time", "WART": "Western Argentina Standard Time", "COT": "Colombia Standard Time", "COST": "Colombia Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "UYST": "Uruguay Summer Time", "WESZ": "Western European Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ChST": "Chamorro Standard Time", "GFT": "French Guiana Time", "UYT": "Uruguay Standard Time", "VET": "Venezuela Time", "PDT": "Pacific Daylight Time", "AWST": "Australian Western Standard Time", "HKST": "Hong Kong Summer Time", "IST": "India Standard Time", "CLST": "Chile Summer Time", "TMT": "Turkmenistan Standard Time", "GMT": "Greenwich Mean Time", "HEPMX": "Mexican Pacific Daylight Time", "HNOG": "West Greenland Standard Time", "CAT": "Central Africa Time", "AKDT": "Alaska Daylight Time", "ACWST": "Australian Central Western Standard Time", "WARST": "Western Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "BOT": "Bolivia Time", "HNEG": "East Greenland Standard Time", "ACST": "Australian Central Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "ARST": "Argentina Summer Time", "HEOG": "West Greenland Summer Time", "AEST": "Australian Eastern Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HECU": "Cuba Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "SRT": "Suriname Time", "ACWDT": "Australian Central Western Daylight Time", "NZDT": "New Zealand Daylight Time", "JST": "Japan Standard Time", "ACDT": "Australian Central Daylight Time", "PST": "Pacific Standard Time", "EAT": "East Africa Time", "OEZ": "Eastern European Standard Time", "EDT": "Eastern Daylight Time", "AKST": "Alaska Standard Time", "GYT": "Guyana Time", "HAT": "Newfoundland Daylight Time", "HNT": "Newfoundland Standard Time", "MESZ": "Central European Summer Time", "LHDT": "Lord Howe Daylight Time", "∅∅∅": "Amazon Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "CDT": "Central Daylight Time", "WEZ": "Western European Standard Time", "MEZ": "Central European Standard Time", "CHADT": "Chatham Daylight Time", "JDT": "Japan Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "AST": "Atlantic Standard Time", "WIB": "Western Indonesia Time", "AWDT": "Australian Western Daylight Time"},
+ timezones: map[string]string{"HNPM": "St. Pierre & Miquelon Standard Time", "LHST": "Lord Howe Standard Time", "COT": "Colombia Standard Time", "GFT": "French Guiana Time", "WARST": "Western Argentina Summer Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HEEG": "East Greenland Summer Time", "PST": "Pacific Standard Time", "WEZ": "Western European Standard Time", "CLT": "Chile Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWST": "Australian Central Western Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HNCU": "Cuba Standard Time", "SGT": "Singapore Standard Time", "TMST": "Turkmenistan Summer Time", "MYT": "Malaysia Time", "ACST": "Australian Central Standard Time", "HNEG": "East Greenland Standard Time", "HECU": "Cuba Daylight Time", "IST": "India Standard Time", "GMT": "Greenwich Mean Time", "JDT": "Japan Daylight Time", "HKT": "Hong Kong Standard Time", "ACDT": "Australian Central Daylight Time", "EAT": "East Africa Time", "CST": "Central Standard Time", "NZDT": "New Zealand Daylight Time", "UYST": "Uruguay Summer Time", "WIT": "Eastern Indonesia Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "ARST": "Argentina Summer Time", "SRT": "Suriname Time", "BT": "Bhutan Time", "HENOMX": "Northwest Mexico Daylight Time", "COST": "Colombia Summer Time", "MEZ": "Central European Standard Time", "AST": "Atlantic Standard Time", "HAT": "Newfoundland Daylight Time", "UYT": "Uruguay Standard Time", "∅∅∅": "Brasilia Summer Time", "AWDT": "Australian Western Daylight Time", "GYT": "Guyana Time", "ACWDT": "Australian Central Western Daylight Time", "VET": "Venezuela Time", "AKDT": "Alaska Daylight Time", "NZST": "New Zealand Standard Time", "EDT": "Eastern Daylight Time", "WART": "Western Argentina Standard Time", "HEOG": "West Greenland Summer Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "HKST": "Hong Kong Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "AWST": "Australian Western Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "CAT": "Central Africa Time", "MESZ": "Central European Summer Time", "WAST": "West Africa Summer Time", "EST": "Eastern Standard Time", "HNT": "Newfoundland Standard Time", "WITA": "Central Indonesia Time", "CHAST": "Chatham Standard Time", "PDT": "Pacific Daylight Time", "ChST": "Chamorro Standard Time", "ADT": "Atlantic Daylight Time", "AEDT": "Australian Eastern Daylight Time", "AKST": "Alaska Standard Time", "CDT": "Central Daylight Time", "CLST": "Chile Summer Time", "JST": "Japan Standard Time", "WESZ": "Western European Summer Time", "HNOG": "West Greenland Standard Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "ART": "Argentina Standard Time", "BOT": "Bolivia Time", "ECT": "Ecuador Time", "WIB": "Western Indonesia Time", "AEST": "Australian Eastern Standard Time", "LHDT": "Lord Howe Daylight Time"},
}
}
@@ -112,8 +112,8 @@ func (en *en_ZW) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
func (en *en_ZW) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
if nMod10 == 1 && nMod100 != 11 {
return locales.PluralRuleOne
diff --git a/eo/eo.go b/eo/eo.go
index 8c7888c5..bc9cb854 100644
--- a/eo/eo.go
+++ b/eo/eo.go
@@ -74,7 +74,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"aK", "pK"},
erasNarrow: []string{"aK", "pK"},
erasWide: []string{"aK", "pK"},
- timezones: map[string]string{"HEOG": "HEOG", "HEPM": "HEPM", "HEEG": "HEEG", "WAST": "okcidenta afrika somera tempo", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "HNOG": "HNOG", "JDT": "japana somera tempo", "COST": "COST", "SGT": "SGT", "WIT": "orienta indonezia tempo", "ACWDT": "centrokcidenta aŭstralia somera tempo", "ARST": "ARST", "JST": "japana norma tempo", "WAT": "okcidenta afrika norma tempo", "EST": "orienta nord-amerika norma tempo", "AWST": "okcidenta aŭstralia norma tempo", "LHDT": "LHDT", "IST": "barata tempo", "CDT": "centra nord-amerika somera tempo", "GYT": "GYT", "PST": "pacifika nord-amerika norma tempo", "PDT": "pacifika nord-amerika somera tempo", "MEZ": "centra eŭropa norma tempo", "CST": "centra nord-amerika norma tempo", "HADT": "HADT", "HNPM": "HNPM", "CLT": "CLT", "HENOMX": "HENOMX", "HAST": "HAST", "ACWST": "centrokcidenta aŭstralia norma tempo", "ART": "ART", "CLST": "CLST", "OEZ": "orienta eŭropa norma tempo", "MESZ": "centra eŭropa somera tempo", "SAST": "suda afrika tempo", "AKST": "AKST", "HKT": "HKT", "LHST": "LHST", "NZST": "NZST", "SRT": "SRT", "HKST": "HKST", "VET": "VET", "CHAST": "CHAST", "ACST": "centra aŭstralia norma tempo", "WARST": "WARST", "HECU": "HECU", "GMT": "universala tempo kunordigita", "AKDT": "AKDT", "UYT": "UYT", "HNCU": "HNCU", "MST": "MST", "AST": "atlantika nord-amerika norma tempo", "NZDT": "NZDT", "HNEG": "HNEG", "CAT": "centra afrika tempo", "WART": "WART", "WESZ": "okcidenta eŭropa somera tempo", "GFT": "GFT", "ACDT": "centra aŭstralia somera tempo", "AEST": "orienta aŭstralia norma tempo", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "UYST": "UYST", "BT": "BT", "HNT": "HNT", "HAT": "HAT", "TMST": "TMST", "EAT": "orienta afrika tempo", "OESZ": "orienta eŭropa somera tempo", "COT": "COT", "ADT": "atlantika nord-amerika somera tempo", "WITA": "centra indonezia tempo", "ChST": "ChST", "ECT": "ECT", "MDT": "MDT", "EDT": "orienta nord-amerika somera tempo", "AEDT": "orienta aŭstralia somera tempo", "TMT": "TMT", "MYT": "MYT", "WIB": "okcidenta indonezia tempo", "WEZ": "okcidenta eŭropa norma tempo", "AWDT": "okcidenta aŭstralia somera tempo", "BOT": "BOT"},
+ timezones: map[string]string{"ART": "ART", "ACDT": "centra aŭstralia somera tempo", "HECU": "HECU", "CHAST": "CHAST", "HADT": "HADT", "NZST": "NZST", "WART": "WART", "AST": "atlantika nord-amerika norma tempo", "BT": "BT", "MST": "MST", "EDT": "orienta nord-amerika somera tempo", "UYT": "UYT", "VET": "VET", "WAT": "okcidenta afrika norma tempo", "WAST": "okcidenta afrika somera tempo", "AWDT": "okcidenta aŭstralia somera tempo", "HAST": "HAST", "CAT": "centra afrika tempo", "HKST": "HKST", "ChST": "ChST", "CDT": "centra nord-amerika somera tempo", "∅∅∅": "∅∅∅", "AWST": "okcidenta aŭstralia norma tempo", "AEST": "orienta aŭstralia norma tempo", "HNPMX": "HNPMX", "CST": "centra nord-amerika norma tempo", "PDT": "pacifika nord-amerika somera tempo", "COST": "COST", "WESZ": "okcidenta eŭropa somera tempo", "HENOMX": "HENOMX", "NZDT": "NZDT", "WEZ": "okcidenta eŭropa norma tempo", "MDT": "MDT", "ACST": "centra aŭstralia norma tempo", "HAT": "HAT", "GYT": "GYT", "WIT": "orienta indonezia tempo", "ECT": "ECT", "CLT": "CLT", "HNT": "HNT", "AEDT": "orienta aŭstralia somera tempo", "HNNOMX": "HNNOMX", "GFT": "GFT", "ACWDT": "centrokcidenta aŭstralia somera tempo", "MESZ": "centra eŭropa somera tempo", "HNOG": "HNOG", "ADT": "atlantika nord-amerika somera tempo", "OESZ": "orienta eŭropa somera tempo", "HKT": "HKT", "WITA": "centra indonezia tempo", "UYST": "UYST", "SRT": "SRT", "EST": "orienta nord-amerika norma tempo", "SAST": "suda afrika tempo", "HNCU": "HNCU", "BOT": "BOT", "ACWST": "centrokcidenta aŭstralia norma tempo", "JST": "japana norma tempo", "JDT": "japana somera tempo", "WARST": "WARST", "SGT": "SGT", "PST": "pacifika nord-amerika norma tempo", "MYT": "MYT", "CLST": "CLST", "OEZ": "orienta eŭropa norma tempo", "HNPM": "HNPM", "LHDT": "LHDT", "MEZ": "centra eŭropa norma tempo", "HEOG": "HEOG", "TMST": "TMST", "COT": "COT", "HNEG": "HNEG", "HEEG": "HEEG", "HEPMX": "HEPMX", "CHADT": "CHADT", "IST": "barata tempo", "GMT": "universala tempo kunordigita", "AKST": "AKST", "HEPM": "HEPM", "LHST": "LHST", "EAT": "orienta afrika tempo", "WIB": "okcidenta indonezia tempo", "TMT": "TMT", "ARST": "ARST", "AKDT": "AKDT"},
}
}
diff --git a/eo_001/eo_001.go b/eo_001/eo_001.go
index 359aeb65..9aa3db91 100644
--- a/eo_001/eo_001.go
+++ b/eo_001/eo_001.go
@@ -74,7 +74,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"aK", "pK"},
erasNarrow: []string{"aK", "pK"},
erasWide: []string{"aK", "pK"},
- timezones: map[string]string{"HEPMX": "HEPMX", "ADT": "atlantika nord-amerika somera tempo", "HEEG": "HEEG", "ACST": "centra aŭstralia norma tempo", "COT": "COT", "HEOG": "HEOG", "ACWDT": "centrokcidenta aŭstralia somera tempo", "AEST": "orienta aŭstralia norma tempo", "MESZ": "centra eŭropa somera tempo", "ChST": "ChST", "HAT": "HAT", "HEPM": "HEPM", "JDT": "japana somera tempo", "ECT": "ECT", "HNPMX": "HNPMX", "AST": "atlantika nord-amerika norma tempo", "AKST": "AKST", "VET": "VET", "WEZ": "okcidenta eŭropa norma tempo", "NZST": "NZST", "HNEG": "HNEG", "SGT": "SGT", "WART": "WART", "MDT": "MDT", "UYST": "UYST", "AKDT": "AKDT", "HNOG": "HNOG", "WESZ": "okcidenta eŭropa somera tempo", "∅∅∅": "∅∅∅", "GFT": "GFT", "WARST": "WARST", "HAST": "HAST", "ACWST": "centrokcidenta aŭstralia norma tempo", "HNT": "HNT", "SAST": "suda afrika tempo", "HNNOMX": "HNNOMX", "EST": "orienta nord-amerika norma tempo", "CDT": "centra nord-amerika somera tempo", "AWDT": "okcidenta aŭstralia somera tempo", "CHAST": "CHAST", "WAST": "okcidenta afrika somera tempo", "OESZ": "orienta eŭropa somera tempo", "COST": "COST", "GYT": "GYT", "HKT": "HKT", "HKST": "HKST", "TMT": "TMT", "ACDT": "centra aŭstralia somera tempo", "CAT": "centra afrika tempo", "GMT": "universala tempo kunordigita", "MST": "MST", "CHADT": "CHADT", "EDT": "orienta nord-amerika somera tempo", "CST": "centra nord-amerika norma tempo", "WIT": "orienta indonezia tempo", "ART": "ART", "PDT": "pacifika nord-amerika somera tempo", "CLT": "CLT", "BT": "BT", "PST": "pacifika nord-amerika norma tempo", "WITA": "centra indonezia tempo", "BOT": "BOT", "OEZ": "orienta eŭropa norma tempo", "MYT": "MYT", "LHDT": "LHDT", "CLST": "CLST", "HENOMX": "HENOMX", "HNCU": "HNCU", "SRT": "SRT", "EAT": "orienta afrika tempo", "WAT": "okcidenta afrika norma tempo", "AWST": "okcidenta aŭstralia norma tempo", "HNPM": "HNPM", "TMST": "TMST", "UYT": "UYT", "HADT": "HADT", "MEZ": "centra eŭropa norma tempo", "LHST": "LHST", "JST": "japana norma tempo", "HECU": "HECU", "WIB": "okcidenta indonezia tempo", "ARST": "ARST", "AEDT": "orienta aŭstralia somera tempo", "NZDT": "NZDT", "IST": "barata tempo"},
+ timezones: map[string]string{"CDT": "centra nord-amerika somera tempo", "AWST": "okcidenta aŭstralia norma tempo", "ARST": "ARST", "HEEG": "HEEG", "GFT": "GFT", "WITA": "centra indonezia tempo", "AKST": "AKST", "EAT": "orienta afrika tempo", "JDT": "japana somera tempo", "MYT": "MYT", "COST": "COST", "HNNOMX": "HNNOMX", "WARST": "WARST", "OESZ": "orienta eŭropa somera tempo", "SAST": "suda afrika tempo", "PST": "pacifika nord-amerika norma tempo", "LHST": "LHST", "CHADT": "CHADT", "WAST": "okcidenta afrika somera tempo", "AEST": "orienta aŭstralia norma tempo", "ChST": "ChST", "HEPM": "HEPM", "ADT": "atlantika nord-amerika somera tempo", "EDT": "orienta nord-amerika somera tempo", "AKDT": "AKDT", "HECU": "HECU", "WIT": "orienta indonezia tempo", "MESZ": "centra eŭropa somera tempo", "VET": "VET", "TMST": "TMST", "MDT": "MDT", "ECT": "ECT", "SRT": "SRT", "GYT": "GYT", "NZST": "NZST", "HNOG": "HNOG", "WAT": "okcidenta afrika norma tempo", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "WEZ": "okcidenta eŭropa norma tempo", "CHAST": "CHAST", "PDT": "pacifika nord-amerika somera tempo", "ACWDT": "centrokcidenta aŭstralia somera tempo", "WART": "WART", "CLT": "CLT", "HNT": "HNT", "HADT": "HADT", "HEOG": "HEOG", "HNPMX": "HNPMX", "MST": "MST", "COT": "COT", "HAT": "HAT", "HEPMX": "HEPMX", "MEZ": "centra eŭropa norma tempo", "JST": "japana norma tempo", "OEZ": "orienta eŭropa norma tempo", "TMT": "TMT", "HAST": "HAST", "HNEG": "HNEG", "UYT": "UYT", "HNPM": "HNPM", "ACWST": "centrokcidenta aŭstralia norma tempo", "AST": "atlantika nord-amerika norma tempo", "WESZ": "okcidenta eŭropa somera tempo", "ART": "ART", "ACDT": "centra aŭstralia somera tempo", "ACST": "centra aŭstralia norma tempo", "CAT": "centra afrika tempo", "LHDT": "LHDT", "WIB": "okcidenta indonezia tempo", "CLST": "CLST", "GMT": "universala tempo kunordigita", "EST": "orienta nord-amerika norma tempo", "HKST": "HKST", "CST": "centra nord-amerika norma tempo", "AWDT": "okcidenta aŭstralia somera tempo", "SGT": "SGT", "HNCU": "HNCU", "BOT": "BOT", "IST": "barata tempo", "NZDT": "NZDT", "HKT": "HKT", "BT": "BT", "AEDT": "orienta aŭstralia somera tempo", "UYST": "UYST"},
}
}
diff --git a/es/es.go b/es/es.go
index 8fbcf26d..146fd202 100644
--- a/es/es.go
+++ b/es/es.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"BT": "hora de Bután", "AEDT": "hora de verano de Australia oriental", "TMT": "hora estándar de Turkmenistán", "COT": "hora estándar de Colombia", "GMT": "hora del meridiano de Greenwich", "SAST": "hora de Sudáfrica", "CLST": "hora de verano de Chile", "ACDT": "hora de verano de Australia central", "OESZ": "hora de verano de Europa oriental", "∅∅∅": "hora de verano de Perú", "PDT": "hora de verano del Pacífico", "ART": "hora estándar de Argentina", "WITA": "hora de Indonesia central", "HEPMX": "hora de verano del Pacífico de México", "AKST": "hora estándar de Alaska", "MYT": "hora de Malasia", "WEZ": "hora estándar de Europa occidental", "ARST": "hora de verano de Argentina", "HEOG": "hora de verano de Groenlandia occidental", "EAT": "hora de África oriental", "OEZ": "hora estándar de Europa oriental", "MST": "Hora estándar de Macao", "WIB": "hora de Indonesia occidental", "WESZ": "hora de verano de Europa occidental", "AWDT": "hora de verano de Australia occidental", "SGT": "hora de Singapur", "PST": "hora estándar del Pacífico", "HKT": "hora estándar de Hong Kong", "HNPM": "hora estándar de San Pedro y Miquelón", "AEST": "hora estándar de Australia oriental", "HKST": "hora de verano de Hong Kong", "ACST": "hora estándar de Australia central", "COST": "hora de verano de Colombia", "HNNOMX": "hora estándar del noroeste de México", "ADT": "hora de verano del Atlántico", "VET": "hora de Venezuela", "HNT": "hora estándar de Terranova", "LHDT": "hora de verano de Lord Howe", "CLT": "hora estándar de Chile", "ECT": "hora de Ecuador", "EDT": "hora de verano oriental", "IST": "hora estándar de la India", "HEEG": "hora de verano de Groenlandia oriental", "GFT": "hora de la Guayana Francesa", "UYT": "hora estándar de Uruguay", "UYST": "hora de verano de Uruguay", "SRT": "hora de Surinam", "NZDT": "hora de verano de Nueva Zelanda", "HAST": "hora estándar de Hawái-Aleutiano", "WIT": "hora de Indonesia oriental", "HNCU": "hora estándar de Cuba", "GYT": "hora de Guyana", "CST": "hora estándar central", "AWST": "hora estándar de Australia occidental", "ChST": "hora estándar de Chamorro", "BOT": "hora de Bolivia", "HNEG": "hora estándar de Groenlandia oriental", "WAST": "hora de verano de África occidental", "MDT": "Hora de verano de Macao", "AKDT": "hora de verano de Alaska", "HEPM": "hora de verano de San Pedro y Miquelón", "JDT": "hora de verano de Japón", "TMST": "hora de verano de Turkmenistán", "CAT": "hora de África central", "WARST": "hora de verano de Argentina occidental", "AST": "hora estándar del Atlántico", "ACWST": "hora estándar de Australia centroccidental", "JST": "hora estándar de Japón", "NZST": "hora estándar de Nueva Zelanda", "CHAST": "hora estándar de Chatham", "HECU": "hora de verano de Cuba", "HNPMX": "hora estándar del Pacífico de México", "CDT": "hora de verano central", "ACWDT": "hora de verano de Australia centroccidental", "MEZ": "hora estándar de Europa central", "LHST": "hora estándar de Lord Howe", "HENOMX": "hora de verano del noroeste de México", "MESZ": "hora de verano de Europa central", "CHADT": "hora de verano de Chatham", "WAT": "hora estándar de África occidental", "WART": "hora estándar de Argentina occidental", "EST": "hora estándar oriental", "HADT": "hora de verano de Hawái-Aleutiano", "HAT": "hora de verano de Terranova", "HNOG": "hora estándar de Groenlandia occidental"},
+ timezones: map[string]string{"CHADT": "hora de verano de Chatham", "CAT": "hora de África central", "HNOG": "hora estándar de Groenlandia occidental", "HKT": "hora estándar de Hong Kong", "AKST": "hora estándar de Alaska", "GYT": "hora de Guyana", "AST": "hora estándar del Atlántico", "HNEG": "hora estándar de Groenlandia oriental", "UYT": "hora estándar de Uruguay", "HECU": "hora de verano de Cuba", "AEST": "hora estándar de Australia oriental", "HEPMX": "hora de verano del Pacífico de México", "CST": "hora estándar central", "AWST": "hora estándar de Australia occidental", "ACWST": "hora estándar de Australia centroccidental", "WART": "hora estándar de Argentina occidental", "EDT": "hora de verano oriental", "COST": "hora de verano de Colombia", "MST": "Hora estándar de Macao", "ChST": "hora estándar de Chamorro", "HNCU": "hora estándar de Cuba", "ECT": "hora de Ecuador", "HADT": "hora de verano de Hawái-Aleutiano", "CLST": "hora de verano de Chile", "MDT": "Hora de verano de Macao", "WAT": "hora estándar de África occidental", "HNT": "hora estándar de Terranova", "AKDT": "hora de verano de Alaska", "HEPM": "hora de verano de San Pedro y Miquelón", "EAT": "hora de África oriental", "SGT": "hora de Singapur", "MESZ": "hora de verano de Europa central", "WAST": "hora de verano de África occidental", "ACDT": "hora de verano de Australia central", "PDT": "hora de verano del Pacífico", "NZDT": "hora de verano de Nueva Zelanda", "MEZ": "hora estándar de Europa central", "HEOG": "hora de verano de Groenlandia occidental", "LHST": "hora estándar de Lord Howe", "HNPM": "hora estándar de San Pedro y Miquelón", "SAST": "hora de Sudáfrica", "IST": "hora estándar de la India", "NZST": "hora estándar de Nueva Zelanda", "JDT": "hora de verano de Japón", "EST": "hora estándar oriental", "BT": "hora de Bután", "HAT": "hora de verano de Terranova", "HKST": "hora de verano de Hong Kong", "HNPMX": "hora estándar del Pacífico de México", "WIB": "hora de Indonesia occidental", "WESZ": "hora de verano de Europa occidental", "TMT": "hora estándar de Turkmenistán", "ACST": "hora estándar de Australia central", "ADT": "hora de verano del Atlántico", "WEZ": "hora estándar de Europa occidental", "∅∅∅": "hora de verano de Brasilia", "AWDT": "hora de verano de Australia occidental", "ACWDT": "hora de verano de Australia centroccidental", "VET": "hora de Venezuela", "JST": "hora estándar de Japón", "WARST": "hora de verano de Argentina occidental", "COT": "hora estándar de Colombia", "HEEG": "hora de verano de Groenlandia oriental", "GMT": "hora del meridiano de Greenwich", "ART": "hora estándar de Argentina", "HNNOMX": "hora estándar del noroeste de México", "HENOMX": "hora de verano del noroeste de México", "LHDT": "hora de verano de Lord Howe", "SRT": "hora de Surinam", "WITA": "hora de Indonesia central", "WIT": "hora de Indonesia oriental", "CHAST": "hora estándar de Chatham", "BOT": "hora de Bolivia", "MYT": "hora de Malasia", "CLT": "hora estándar de Chile", "ARST": "hora de verano de Argentina", "OESZ": "hora de verano de Europa oriental", "TMST": "hora de verano de Turkmenistán", "UYST": "hora de verano de Uruguay", "CDT": "hora de verano central", "PST": "hora estándar del Pacífico", "HAST": "hora estándar de Hawái-Aleutiano", "OEZ": "hora estándar de Europa oriental", "GFT": "hora de la Guayana Francesa", "AEDT": "hora de verano de Australia oriental"},
}
}
diff --git a/es_419/es_419.go b/es_419/es_419.go
index fee14d36..21d5a0cd 100644
--- a/es_419/es_419.go
+++ b/es_419/es_419.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"WIT": "hora de Indonesia oriental", "ART": "hora estándar de Argentina", "HADT": "hora de verano de Hawái-Aleutianas", "VET": "hora de Venezuela", "WESZ": "hora de verano de Europa occidental", "NZST": "hora estándar de Nueva Zelanda", "IST": "hora de India", "GYT": "hora de Guyana", "UYST": "hora de verano de Uruguay", "AKST": "hora estándar de Alaska", "MESZ": "hora de verano de Europa central", "HEEG": "hora de verano de Groenlandia oriental", "TMST": "hora de verano de Turkmenistán", "EST": "hora estándar oriental", "HAST": "hora estándar de Hawái-Aleutianas", "HEOG": "hora de verano de Groenlandia occidental", "NZDT": "hora de verano de Nueva Zelanda", "HNEG": "hora estándar de Groenlandia oriental", "CAT": "hora de África central", "COT": "hora estándar de Colombia", "WEZ": "hora estándar de Europa occidental", "HKT": "hora estándar de Hong Kong", "HEPM": "hora de verano de San Pedro y Miquelón", "CDT": "hora de verano central", "AST": "hora estándar del Atlántico", "WIB": "hora de Indonesia occidental", "HNOG": "hora estándar de Groenlandia occidental", "PST": "hora estándar del Pacífico", "ACWDT": "hora de verano de Australia centroccidental", "EAT": "hora de África oriental", "COST": "hora de verano de Colombia", "HNCU": "hora estándar de Cuba", "∅∅∅": "hora de verano de las Azores", "ADT": "hora de verano del Atlántico", "BOT": "hora de Bolivia", "TMT": "hora estándar de Turkmenistán", "ACST": "hora estándar de Australia central", "WART": "hora estándar de Argentina occidental", "HNNOMX": "hora estándar del noroeste de México", "HNPMX": "hora estándar del Pacífico de México", "CLST": "hora de verano de Chile", "JST": "hora estándar de Japón", "AEST": "hora estándar de Australia oriental", "CHAST": "hora estándar de Chatham", "WAST": "hora de verano de África occidental", "ECT": "hora de Ecuador", "WARST": "hora de verano de Argentina occidental", "MST": "Hora estándar de Macao", "BT": "hora de Bután", "ARST": "hora de verano de Argentina", "HENOMX": "hora de verano del noroeste de México", "MEZ": "hora estándar de Europa central", "CLT": "hora estándar de Chile", "UYT": "hora estándar de Uruguay", "AWST": "hora estándar de Australia occidental", "WITA": "hora de Indonesia central", "HEPMX": "hora de verano del Pacífico de México", "CST": "hora estándar central", "AEDT": "hora de verano de Australia oriental", "AKDT": "hora de verano de Alaska", "HAT": "hora de verano de Terranova", "HNPM": "hora estándar de San Pedro y Miquelón", "JDT": "hora de verano de Japón", "HECU": "hora de verano de Cuba", "EDT": "hora de verano oriental", "MYT": "hora de Malasia", "CHADT": "hora de verano de Chatham", "WAT": "hora estándar de África occidental", "OESZ": "hora de verano de Europa oriental", "LHST": "hora estándar de Lord Howe", "SGT": "hora de Singapur", "MDT": "Hora de verano de Macao", "HNT": "hora estándar de Terranova", "HKST": "hora de verano de Hong Kong", "ACDT": "hora de verano de Australia central", "OEZ": "hora estándar de Europa oriental", "GMT": "hora del meridiano de Greenwich", "PDT": "hora de verano del Pacífico", "ACWST": "hora estándar de Australia centroccidental", "SRT": "hora de Surinam", "AWDT": "hora de verano de Australia occidental", "GFT": "hora de la Guayana Francesa", "LHDT": "hora de verano de Lord Howe", "SAST": "hora de Sudáfrica", "ChST": "hora estándar de Chamorro"},
+ timezones: map[string]string{"SRT": "hora de Surinam", "TMST": "hora de verano de Turkmenistán", "CAT": "hora de África central", "TMT": "hora estándar de Turkmenistán", "MDT": "Hora de verano de Macao", "WAT": "hora estándar de África occidental", "ChST": "hora estándar de Chamorro", "WIB": "hora de Indonesia occidental", "CHADT": "hora de verano de Chatham", "HAST": "hora estándar de Hawái-Aleutianas", "HADT": "hora de verano de Hawái-Aleutianas", "ARST": "hora de verano de Argentina", "UYT": "hora estándar de Uruguay", "UYST": "hora de verano de Uruguay", "HNCU": "hora estándar de Cuba", "PDT": "hora de verano del Pacífico", "ACWST": "hora estándar de Australia centroccidental", "AST": "hora estándar del Atlántico", "ADT": "hora de verano del Atlántico", "EST": "hora estándar oriental", "COST": "hora de verano de Colombia", "BT": "hora de Bután", "SAST": "hora de Sudáfrica", "AWST": "hora estándar de Australia occidental", "SGT": "hora de Singapur", "JST": "hora estándar de Japón", "HKT": "hora estándar de Hong Kong", "AEST": "hora estándar de Australia oriental", "LHST": "hora estándar de Lord Howe", "MEZ": "hora estándar de Europa central", "WESZ": "hora de verano de Europa occidental", "CLT": "hora estándar de Chile", "EDT": "hora de verano oriental", "COT": "hora estándar de Colombia", "VET": "hora de Venezuela", "WEZ": "hora estándar de Europa occidental", "∅∅∅": "Hora de verano de Acre", "AEDT": "hora de verano de Australia oriental", "HECU": "hora de verano de Cuba", "WART": "hora estándar de Argentina occidental", "MST": "Hora estándar de Macao", "HKST": "hora de verano de Hong Kong", "CST": "hora estándar central", "GMT": "hora del meridiano de Greenwich", "WARST": "hora de verano de Argentina occidental", "ART": "hora estándar de Argentina", "GFT": "hora de la Guayana Francesa", "CHAST": "hora estándar de Chatham", "HEPMX": "hora de verano del Pacífico de México", "MESZ": "hora de verano de Europa central", "HEOG": "hora de verano de Groenlandia occidental", "HENOMX": "hora de verano del noroeste de México", "HNEG": "hora estándar de Groenlandia oriental", "HNPM": "hora estándar de San Pedro y Miquelón", "WIT": "hora de Indonesia oriental", "PST": "hora estándar del Pacífico", "OEZ": "hora estándar de Europa oriental", "HNOG": "hora estándar de Groenlandia occidental", "AKDT": "hora de verano de Alaska", "HNPMX": "hora estándar del Pacífico de México", "EAT": "hora de África oriental", "HAT": "hora de verano de Terranova", "WITA": "hora de Indonesia central", "GYT": "hora de Guyana", "AWDT": "hora de verano de Australia occidental", "CLST": "hora de verano de Chile", "LHDT": "hora de verano de Lord Howe", "OESZ": "hora de verano de Europa oriental", "HNNOMX": "hora estándar del noroeste de México", "HNT": "hora estándar de Terranova", "HEPM": "hora de verano de San Pedro y Miquelón", "MYT": "hora de Malasia", "ACDT": "hora de verano de Australia central", "HEEG": "hora de verano de Groenlandia oriental", "AKST": "hora estándar de Alaska", "BOT": "hora de Bolivia", "ECT": "hora de Ecuador", "IST": "hora de India", "ACWDT": "hora de verano de Australia centroccidental", "NZST": "hora estándar de Nueva Zelanda", "WAST": "hora de verano de África occidental", "ACST": "hora estándar de Australia central", "CDT": "hora de verano central", "NZDT": "hora de verano de Nueva Zelanda", "JDT": "hora de verano de Japón"},
}
}
diff --git a/es_AR/es_AR.go b/es_AR/es_AR.go
index 70ae0b56..7678229d 100644
--- a/es_AR/es_AR.go
+++ b/es_AR/es_AR.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"PDT": "hora de verano del Pacífico", "HEPM": "hora de verano de San Pedro y Miquelón", "GFT": "hora de la Guayana Francesa", "OEZ": "hora estándar de Europa oriental", "AKST": "hora estándar de Alaska", "CDT": "hora de verano central", "HEOG": "hora de verano de Groenlandia occidental", "SAST": "hora de Sudáfrica", "HNEG": "hora estándar de Groenlandia oriental", "HNNOMX": "hora estándar del noroeste de México", "AST": "hora estándar del Atlántico", "HAST": "hora estándar de Hawái-Aleutiano", "WIT": "hora de Indonesia oriental", "HNOG": "hora estándar de Groenlandia occidental", "HKT": "hora estándar de Hong Kong", "WITA": "hora de Indonesia central", "HNPMX": "hora estándar del Pacífico de México", "VET": "hora de Venezuela", "CHADT": "hora de verano de Chatham", "EDT": "hora de verano oriental", "UYST": "hora de verano de Uruguay", "ART": "hora estándar de Argentina", "LHDT": "hora de verano de Lord Howe", "ACST": "hora estándar de Australia central", "OESZ": "hora de verano de Europa oriental", "WARST": "hora de verano de Argentina occidental", "HEPMX": "hora de verano del Pacífico de México", "WIB": "hora de Indonesia occidental", "ARST": "hora de verano de Argentina", "ACWST": "hora estándar de Australia centroccidental", "LHST": "hora estándar de Lord Howe", "JST": "hora estándar de Japón", "BOT": "hora de Bolivia", "ECT": "hora de Ecuador", "CAT": "hora de África central", "MDT": "hora de verano de las Montañas", "COT": "hora estándar de Colombia", "GMT": "hora del meridiano de Greenwich", "AKDT": "hora de verano de Alaska", "CST": "hora estándar central", "WAST": "hora de verano de África occidental", "ACWDT": "hora de verano de Australia centroccidental", "TMT": "hora estándar de Turkmenistán", "BT": "hora de Bután", "HEEG": "hora de verano de Groenlandia oriental", "EST": "hora estándar oriental", "ADT": "hora de verano del Atlántico", "AEDT": "hora de verano de Australia oriental", "WESZ": "hora de verano de Europa occidental", "HNT": "hora estándar de Terranova", "AWDT": "hora de verano de Australia occidental", "SRT": "hora de Surinam", "CHAST": "hora estándar de Chatham", "GYT": "hora de Guyana", "NZDT": "hora de verano de Nueva Zelanda", "AEST": "hora estándar de Australia oriental", "EAT": "hora de África oriental", "HNCU": "hora estándar de Cuba", "HADT": "hora de verano de Hawái-Aleutiano", "JDT": "hora de verano de Japón", "CLST": "hora de verano de Chile", "WAT": "hora estándar de África occidental", "HENOMX": "hora de verano del noroeste de México", "UYT": "hora estándar de Uruguay", "MST": "hora estándar de las Montañas", "HAT": "hora de verano de Terranova", "HNPM": "hora estándar de San Pedro y Miquelón", "∅∅∅": "hora de verano del Amazonas", "ACDT": "hora de verano de Australia central", "COST": "hora de verano de Colombia", "SGT": "hora de Singapur", "HECU": "hora de verano de Cuba", "PST": "hora estándar del Pacífico", "MYT": "hora de Malasia", "HKST": "hora de verano de Hong Kong", "NZST": "hora estándar de Nueva Zelanda", "CLT": "hora estándar de Chile", "ChST": "hora estándar de Chamorro", "WART": "hora estándar de Argentina occidental", "AWST": "hora estándar de Australia occidental", "MEZ": "hora estándar de Europa central", "MESZ": "hora de verano de Europa central", "IST": "hora estándar de la India", "TMST": "hora de verano de Turkmenistán", "WEZ": "hora estándar de Europa occidental"},
+ timezones: map[string]string{"OESZ": "hora de verano de Europa oriental", "TMST": "hora de verano de Turkmenistán", "HKT": "hora estándar de Hong Kong", "EAT": "hora de África oriental", "ACWST": "hora estándar de Australia centroccidental", "WART": "hora estándar de Argentina occidental", "HNOG": "hora estándar de Groenlandia occidental", "AWST": "hora estándar de Australia occidental", "ECT": "hora de Ecuador", "PDT": "hora de verano del Pacífico", "EDT": "hora de verano oriental", "SAST": "hora de Sudáfrica", "ChST": "hora estándar de Chamorro", "CST": "hora estándar central", "NZST": "hora estándar de Nueva Zelanda", "ARST": "hora de verano de Argentina", "∅∅∅": "hora de verano de Perú", "SGT": "hora de Singapur", "NZDT": "hora de verano de Nueva Zelanda", "WARST": "hora de verano de Argentina occidental", "CHADT": "hora de verano de Chatham", "MYT": "hora de Malasia", "MST": "Hora estándar de Macao", "COT": "hora estándar de Colombia", "GFT": "hora de la Guayana Francesa", "IST": "hora estándar de la India", "CLST": "hora de verano de Chile", "OEZ": "hora estándar de Europa oriental", "WAT": "hora estándar de África occidental", "BT": "hora de Bután", "AEDT": "hora de verano de Australia oriental", "UYT": "hora estándar de Uruguay", "HNPM": "hora estándar de San Pedro y Miquelón", "EST": "hora estándar oriental", "HNEG": "hora estándar de Groenlandia oriental", "HNPMX": "hora estándar del Pacífico de México", "SRT": "hora de Surinam", "CDT": "hora de verano central", "HADT": "hora de verano de Hawái-Aleutiano", "WESZ": "hora de verano de Europa occidental", "GMT": "hora del meridiano de Greenwich", "HNT": "hora estándar de Terranova", "HEPM": "hora de verano de San Pedro y Miquelón", "LHDT": "hora de verano de Lord Howe", "ACWDT": "hora de verano de Australia centroccidental", "MESZ": "hora de verano de Europa central", "COST": "hora de verano de Colombia", "ACST": "hora estándar de Australia central", "HNNOMX": "hora estándar del noroeste de México", "HEEG": "hora de verano de Groenlandia oriental", "JST": "hora estándar de Japón", "MDT": "Hora de verano de Macao", "JDT": "hora de verano de Japón", "CLT": "hora estándar de Chile", "HECU": "hora de verano de Cuba", "WIB": "hora de Indonesia occidental", "WIT": "hora de Indonesia oriental", "MEZ": "hora estándar de Europa central", "VET": "hora de Venezuela", "ACDT": "hora de verano de Australia central", "WITA": "hora de Indonesia central", "HNCU": "hora estándar de Cuba", "WAST": "hora de verano de África occidental", "HKST": "hora de verano de Hong Kong", "HENOMX": "hora de verano del noroeste de México", "HAT": "hora de verano de Terranova", "AKST": "hora estándar de Alaska", "HEPMX": "hora de verano del Pacífico de México", "HAST": "hora estándar de Hawái-Aleutiano", "CAT": "hora de África central", "AST": "hora estándar del Atlántico", "TMT": "hora estándar de Turkmenistán", "LHST": "hora estándar de Lord Howe", "GYT": "hora de Guyana", "AWDT": "hora de verano de Australia occidental", "AEST": "hora estándar de Australia oriental", "UYST": "hora de verano de Uruguay", "ART": "hora estándar de Argentina", "CHAST": "hora estándar de Chatham", "WEZ": "hora estándar de Europa occidental", "AKDT": "hora de verano de Alaska", "BOT": "hora de Bolivia", "PST": "hora estándar del Pacífico", "HEOG": "hora de verano de Groenlandia occidental", "ADT": "hora de verano del Atlántico"},
}
}
diff --git a/es_BO/es_BO.go b/es_BO/es_BO.go
index 91a01dad..03d76de4 100644
--- a/es_BO/es_BO.go
+++ b/es_BO/es_BO.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"HEPMX": "hora de verano del Pacífico de México", "WEZ": "hora estándar de Europa occidental", "HEPM": "hora de verano de San Pedro y Miquelón", "GYT": "hora de Guyana", "HAST": "hora estándar de Hawái-Aleutiano", "BT": "hora de Bután", "ACST": "hora estándar de Australia central", "WAT": "hora estándar de África occidental", "SGT": "hora de Singapur", "MDT": "Hora de verano de Macao", "HNPM": "hora estándar de San Pedro y Miquelón", "HNT": "hora estándar de Terranova", "JDT": "hora de verano de Japón", "HNEG": "hora estándar de Groenlandia oriental", "TMT": "hora estándar de Turkmenistán", "ECT": "hora de Ecuador", "COST": "hora de verano de Colombia", "UYST": "hora de verano de Uruguay", "VET": "hora de Venezuela", "SAST": "hora de Sudáfrica", "GFT": "hora de la Guayana Francesa", "ACDT": "hora de verano de Australia central", "HNNOMX": "hora estándar del noroeste de México", "HENOMX": "hora de verano del noroeste de México", "MESZ": "hora de verano de Europa central", "CLT": "hora estándar de Chile", "CLST": "hora de verano de Chile", "NZST": "hora estándar de Nueva Zelanda", "CHAST": "hora estándar de Chatham", "ChST": "hora estándar de Chamorro", "EST": "hora estándar oriental", "AWDT": "hora de verano de Australia occidental", "WIB": "hora de Indonesia occidental", "HADT": "hora de verano de Hawái-Aleutiano", "SRT": "hora de Surinam", "WESZ": "hora de verano de Europa occidental", "TMST": "hora de verano de Turkmenistán", "WAST": "hora de verano de África occidental", "HNCU": "hora estándar de Cuba", "CDT": "hora de verano central", "LHST": "hora estándar de Lord Howe", "CST": "hora estándar central", "UYT": "hora estándar de Uruguay", "WIT": "hora de Indonesia oriental", "ART": "hora estándar de Argentina", "OESZ": "hora de verano de Europa oriental", "WART": "hora estándar de Argentina occidental", "HNPMX": "hora estándar del Pacífico de México", "MST": "Hora estándar de Macao", "MEZ": "hora estándar de Europa central", "HKST": "hora de verano de Hong Kong", "CHADT": "hora de verano de Chatham", "JST": "hora estándar de Japón", "AKST": "hora estándar de Alaska", "ADT": "hora de verano del Atlántico", "HAT": "hora de verano de Terranova", "ACWST": "hora estándar de Australia centroccidental", "WITA": "hora de Indonesia central", "COT": "hora estándar de Colombia", "GMT": "hora del meridiano de Greenwich", "EDT": "hora de verano oriental", "AST": "hora estándar del Atlántico", "AEST": "hora estándar de Australia oriental", "OEZ": "hora estándar de Europa oriental", "HNOG": "hora estándar de Groenlandia occidental", "PST": "hora estándar del Pacífico", "PDT": "hora de verano del Pacífico", "HEEG": "hora de verano de Groenlandia oriental", "AKDT": "hora de verano de Alaska", "MYT": "hora de Malasia", "HKT": "hora estándar de Hong Kong", "AEDT": "hora de verano de Australia oriental", "AWST": "hora estándar de Australia occidental", "NZDT": "hora de verano de Nueva Zelanda", "CAT": "hora de África central", "EAT": "hora de África oriental", "ACWDT": "hora de verano de Australia centroccidental", "HEOG": "hora de verano de Groenlandia occidental", "LHDT": "hora de verano de Lord Howe", "ARST": "hora de verano de Argentina", "IST": "hora estándar de la India", "∅∅∅": "hora de verano del Amazonas", "BOT": "hora de Bolivia", "WARST": "hora de verano de Argentina occidental", "HECU": "hora de verano de Cuba"},
+ timezones: map[string]string{"HNT": "hora estándar de Terranova", "HEPMX": "hora de verano del Pacífico de México", "NZST": "hora estándar de Nueva Zelanda", "WART": "hora estándar de Argentina occidental", "ART": "hora estándar de Argentina", "ACDT": "hora de verano de Australia central", "MST": "Hora estándar de Macao", "BT": "hora de Bután", "UYT": "hora estándar de Uruguay", "EAT": "hora de África oriental", "CST": "hora estándar central", "SGT": "hora de Singapur", "ADT": "hora de verano del Atlántico", "MESZ": "hora de verano de Europa central", "VET": "hora de Venezuela", "CLT": "hora estándar de Chile", "ARST": "hora de verano de Argentina", "WIT": "hora de Indonesia oriental", "EDT": "hora de verano oriental", "EST": "hora estándar oriental", "COT": "hora estándar de Colombia", "COST": "hora de verano de Colombia", "PST": "hora estándar del Pacífico", "NZDT": "hora de verano de Nueva Zelanda", "MEZ": "hora estándar de Europa central", "AST": "hora estándar del Atlántico", "WESZ": "hora de verano de Europa occidental", "HNNOMX": "hora estándar del noroeste de México", "HAT": "hora de verano de Terranova", "GFT": "hora de la Guayana Francesa", "SAST": "hora de Sudáfrica", "LHDT": "hora de verano de Lord Howe", "AWST": "hora estándar de Australia occidental", "WARST": "hora de verano de Argentina occidental", "WAST": "hora de verano de África occidental", "AKST": "hora estándar de Alaska", "HECU": "hora de verano de Cuba", "JDT": "hora de verano de Japón", "GMT": "hora del meridiano de Greenwich", "MDT": "Hora de verano de Macao", "HEEG": "hora de verano de Groenlandia oriental", "CHADT": "hora de verano de Chatham", "HENOMX": "hora de verano del noroeste de México", "AEST": "hora estándar de Australia oriental", "ChST": "hora estándar de Chamorro", "GYT": "hora de Guyana", "HNCU": "hora estándar de Cuba", "AWDT": "hora de verano de Australia occidental", "ECT": "hora de Ecuador", "ACWST": "hora estándar de Australia centroccidental", "AEDT": "hora de verano de Australia oriental", "HEOG": "hora de verano de Groenlandia occidental", "WEZ": "hora estándar de Europa occidental", "HKT": "hora estándar de Hong Kong", "HEPM": "hora de verano de San Pedro y Miquelón", "LHST": "hora estándar de Lord Howe", "SRT": "hora de Surinam", "IST": "hora estándar de la India", "ACWDT": "hora de verano de Australia centroccidental", "WITA": "hora de Indonesia central", "CDT": "hora de verano central", "HAST": "hora estándar de Hawái-Aleutiano", "JST": "hora estándar de Japón", "TMST": "hora de verano de Turkmenistán", "HNEG": "hora estándar de Groenlandia oriental", "ACST": "hora estándar de Australia central", "PDT": "hora de verano del Pacífico", "HADT": "hora de verano de Hawái-Aleutiano", "HNOG": "hora estándar de Groenlandia occidental", "WAT": "hora estándar de África occidental", "HKST": "hora de verano de Hong Kong", "∅∅∅": "hora de verano de las Azores", "CHAST": "hora estándar de Chatham", "BOT": "hora de Bolivia", "OESZ": "hora de verano de Europa oriental", "AKDT": "hora de verano de Alaska", "WIB": "hora de Indonesia occidental", "MYT": "hora de Malasia", "OEZ": "hora estándar de Europa oriental", "TMT": "hora estándar de Turkmenistán", "UYST": "hora de verano de Uruguay", "HNPM": "hora estándar de San Pedro y Miquelón", "HNPMX": "hora estándar del Pacífico de México", "CAT": "hora de África central", "CLST": "hora de verano de Chile"},
}
}
diff --git a/es_BR/es_BR.go b/es_BR/es_BR.go
index 8d0ea33c..629113a4 100644
--- a/es_BR/es_BR.go
+++ b/es_BR/es_BR.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"AEDT": "hora de verano de Australia oriental", "WART": "hora estándar de Argentina occidental", "HNPMX": "hora estándar del Pacífico de México", "ACWDT": "hora de verano de Australia centroccidental", "HKT": "hora estándar de Hong Kong", "CHAST": "hora estándar de Chatham", "ChST": "hora estándar de Chamorro", "GFT": "hora de la Guayana Francesa", "OESZ": "hora de verano de Europa oriental", "HNNOMX": "hora estándar del noroeste de México", "AKST": "hora estándar de Alaska", "WEZ": "hora estándar de Europa occidental", "HNT": "hora estándar de Terranova", "CLT": "hora estándar de Chile", "JST": "hora estándar de Japón", "EDT": "hora de verano oriental", "GMT": "hora del meridiano de Greenwich", "UYST": "hora de verano de Uruguay", "MESZ": "hora de verano de Europa central", "BOT": "hora de Bolivia", "WAT": "hora estándar de África occidental", "COT": "hora estándar de Colombia", "HEPMX": "hora de verano del Pacífico de México", "GYT": "hora de Guyana", "HNOG": "hora estándar de Groenlandia occidental", "HEOG": "hora de verano de Groenlandia occidental", "∅∅∅": "hora de verano del Amazonas", "HENOMX": "hora de verano del noroeste de México", "AWST": "hora estándar de Australia occidental", "LHDT": "hora de verano de Lord Howe", "ACST": "hora estándar de Australia central", "AKDT": "hora de verano de Alaska", "CST": "hora estándar central", "AST": "hora estándar del Atlántico", "SRT": "hora de Surinam", "HAT": "hora de verano de Terranova", "OEZ": "hora estándar de Europa oriental", "COST": "hora de verano de Colombia", "WIT": "hora de Indonesia oriental", "WESZ": "hora de verano de Europa occidental", "NZST": "hora estándar de Nueva Zelanda", "PDT": "hora de verano del Pacífico", "AWDT": "hora de verano de Australia occidental", "HKST": "hora de verano de Hong Kong", "HECU": "hora de verano de Cuba", "MYT": "hora de Malasia", "ACWST": "hora estándar de Australia centroccidental", "HEPM": "hora de verano de San Pedro y Miquelón", "ACDT": "hora de verano de Australia central", "HNCU": "hora estándar de Cuba", "MST": "hora estándar de las Montañas", "MEZ": "hora estándar de Europa central", "ECT": "hora de Ecuador", "CAT": "hora de África central", "EST": "hora estándar oriental", "VET": "hora de Venezuela", "HADT": "hora de verano de Hawái-Aleutiano", "HNPM": "hora estándar de San Pedro y Miquelón", "SAST": "hora de Sudáfrica", "HNEG": "hora estándar de Groenlandia oriental", "CDT": "hora de verano central", "ADT": "hora de verano del Atlántico", "AEST": "hora estándar de Australia oriental", "TMT": "hora estándar de Turkmenistán", "ARST": "hora de verano de Argentina", "PST": "hora estándar del Pacífico", "WITA": "hora de Indonesia central", "MDT": "hora de verano de las Montañas", "BT": "hora de Bután", "JDT": "hora de verano de Japón", "SGT": "hora de Singapur", "CLST": "hora de verano de Chile", "HEEG": "hora de verano de Groenlandia oriental", "WARST": "hora de verano de Argentina occidental", "HAST": "hora estándar de Hawái-Aleutiano", "LHST": "hora estándar de Lord Howe", "NZDT": "hora de verano de Nueva Zelanda", "CHADT": "hora de verano de Chatham", "IST": "hora estándar de la India", "WAST": "hora de verano de África occidental", "UYT": "hora estándar de Uruguay", "WIB": "hora de Indonesia occidental", "ART": "hora estándar de Argentina", "TMST": "hora de verano de Turkmenistán", "EAT": "hora de África oriental"},
+ timezones: map[string]string{"HECU": "hora de verano de Cuba", "ADT": "hora de verano del Atlántico", "HKST": "hora de verano de Hong Kong", "AKST": "hora estándar de Alaska", "AKDT": "hora de verano de Alaska", "SRT": "hora de Surinam", "WIT": "hora de Indonesia oriental", "AWDT": "hora de verano de Australia occidental", "HAST": "hora estándar de Hawái-Aleutiano", "ART": "hora estándar de Argentina", "AEST": "hora estándar de Australia oriental", "ChST": "hora estándar de Chamorro", "CST": "hora estándar central", "OESZ": "hora de verano de Europa oriental", "ACST": "hora estándar de Australia central", "HNNOMX": "hora estándar del noroeste de México", "BT": "hora de Bután", "SAST": "hora de Sudáfrica", "HADT": "hora de verano de Hawái-Aleutiano", "MST": "Hora estándar de Macao", "HKT": "hora estándar de Hong Kong", "COT": "hora estándar de Colombia", "GYT": "hora de Guyana", "ACWDT": "hora de verano de Australia centroccidental", "MYT": "hora de Malasia", "UYT": "hora estándar de Uruguay", "HNCU": "hora estándar de Cuba", "NZDT": "hora de verano de Nueva Zelanda", "VET": "hora de Venezuela", "HEOG": "hora de verano de Groenlandia occidental", "EAT": "hora de África oriental", "WIB": "hora de Indonesia occidental", "CLST": "hora de verano de Chile", "TMST": "hora de verano de Turkmenistán", "CAT": "hora de África central", "ARST": "hora de verano de Argentina", "WAT": "hora estándar de África occidental", "EDT": "hora de verano oriental", "HEPM": "hora de verano de San Pedro y Miquelón", "HNPMX": "hora estándar del Pacífico de México", "CHAST": "hora estándar de Chatham", "SGT": "hora de Singapur", "TMT": "hora estándar de Turkmenistán", "BOT": "hora de Bolivia", "IST": "hora estándar de la India", "AST": "hora estándar del Atlántico", "COST": "hora de verano de Colombia", "CHADT": "hora de verano de Chatham", "PDT": "hora de verano del Pacífico", "NZST": "hora estándar de Nueva Zelanda", "JDT": "hora de verano de Japón", "WESZ": "hora de verano de Europa occidental", "WAST": "hora de verano de África occidental", "AWST": "hora estándar de Australia occidental", "ACDT": "hora de verano de Australia central", "HNT": "hora estándar de Terranova", "WART": "hora estándar de Argentina occidental", "OEZ": "hora estándar de Europa oriental", "EST": "hora estándar oriental", "∅∅∅": "Hora de verano de Acre", "UYST": "hora de verano de Uruguay", "LHDT": "hora de verano de Lord Howe", "HEPMX": "hora de verano del Pacífico de México", "MDT": "Hora de verano de Macao", "HNEG": "hora estándar de Groenlandia oriental", "GFT": "hora de la Guayana Francesa", "AEDT": "hora de verano de Australia oriental", "HNPM": "hora estándar de San Pedro y Miquelón", "LHST": "hora estándar de Lord Howe", "GMT": "hora del meridiano de Greenwich", "HEEG": "hora de verano de Groenlandia oriental", "CDT": "hora de verano central", "ECT": "hora de Ecuador", "JST": "hora estándar de Japón", "CLT": "hora estándar de Chile", "HNOG": "hora estándar de Groenlandia occidental", "WEZ": "hora estándar de Europa occidental", "WARST": "hora de verano de Argentina occidental", "HENOMX": "hora de verano del noroeste de México", "HAT": "hora de verano de Terranova", "WITA": "hora de Indonesia central", "PST": "hora estándar del Pacífico", "ACWST": "hora estándar de Australia centroccidental", "MEZ": "hora estándar de Europa central", "MESZ": "hora de verano de Europa central"},
}
}
diff --git a/es_CL/es_CL.go b/es_CL/es_CL.go
index 959a0441..246e1fcc 100644
--- a/es_CL/es_CL.go
+++ b/es_CL/es_CL.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"NZDT": "hora de verano de Nueva Zelanda", "HEEG": "hora de verano de Groenlandia oriental", "OESZ": "hora de verano de Europa oriental", "MDT": "Hora de verano de Macao", "SRT": "hora de Surinam", "MESZ": "hora de verano de Europa central", "LHDT": "hora de verano de Lord Howe", "JST": "hora estándar de Japón", "ACST": "hora estándar de Australia central", "EAT": "hora de África oriental", "SGT": "hora de Singapur", "AKST": "hora estándar de Alaska", "CHAST": "hora estándar de Chatham", "HNT": "hora estándar de Terranova", "HKT": "hora estándar de Hong Kong", "ECT": "hora de Ecuador", "OEZ": "hora estándar de Europa oriental", "GMT": "hora del meridiano de Greenwich", "ADT": "hora de verano del Atlántico", "HADT": "hora de verano de Hawái-Aleutiano", "HNOG": "hora estándar de Groenlandia occidental", "LHST": "hora estándar de Lord Howe", "TMST": "hora de verano de Turkmenistán", "ACDT": "hora de verano de Australia central", "BT": "hora de Bután", "ARST": "hora de verano de Argentina", "AWDT": "hora de verano de Australia occidental", "NZST": "hora estándar de Nueva Zelanda", "TMT": "hora estándar de Turkmenistán", "WARST": "hora de verano de Argentina occidental", "EDT": "hora de verano oriental", "MST": "Hora estándar de Macao", "UYT": "hora estándar de Uruguay", "ART": "hora estándar de Argentina", "HEPMX": "hora de verano del Pacífico de México", "CDT": "hora de verano central", "PDT": "hora de verano del Pacífico", "WESZ": "hora de verano de Europa occidental", "ACWDT": "hora de verano de Australia centroccidental", "HENOMX": "hora de verano del noroeste de México", "GYT": "hora de Guyana", "UYST": "hora de verano de Uruguay", "WEZ": "hora estándar de Europa occidental", "ACWST": "hora estándar de Australia centroccidental", "SAST": "hora de Sudáfrica", "CLST": "hora de verano de Chile", "GFT": "hora de la Guayana Francesa", "WIT": "hora de Indonesia oriental", "JDT": "hora de verano de Japón", "WAT": "hora estándar de África occidental", "AWST": "hora estándar de Australia occidental", "CLT": "hora estándar de Chile", "COT": "hora estándar de Colombia", "MYT": "hora de Malasia", "WIB": "hora de Indonesia occidental", "HEPM": "hora de verano de San Pedro y Miquelón", "HNCU": "hora estándar de Cuba", "HNPMX": "hora estándar del Pacífico de México", "HAST": "hora estándar de Hawái-Aleutiano", "WITA": "hora de Indonesia central", "WAST": "hora de verano de África occidental", "AKDT": "hora de verano de Alaska", "CST": "hora estándar central", "HNNOMX": "hora estándar del noroeste de México", "HECU": "hora de verano de Cuba", "EST": "hora estándar oriental", "VET": "hora de Venezuela", "HAT": "hora de verano de Terranova", "AEDT": "hora de verano de Australia oriental", "HNEG": "hora estándar de Groenlandia oriental", "HEOG": "hora de verano de Groenlandia occidental", "CHADT": "hora de verano de Chatham", "BOT": "hora de Bolivia", "CAT": "hora de África central", "WART": "hora estándar de Argentina occidental", "COST": "hora de verano de Colombia", "AEST": "hora estándar de Australia oriental", "IST": "hora estándar de la India", "MEZ": "hora estándar de Europa central", "∅∅∅": "hora de verano del Amazonas", "ChST": "hora estándar de Chamorro", "AST": "hora estándar del Atlántico", "PST": "hora estándar del Pacífico", "HKST": "hora de verano de Hong Kong", "HNPM": "hora estándar de San Pedro y Miquelón"},
+ timezones: map[string]string{"HENOMX": "hora de verano del noroeste de México", "BT": "hora de Bután", "HAT": "hora de verano de Terranova", "AKDT": "hora de verano de Alaska", "HKT": "hora estándar de Hong Kong", "LHST": "hora estándar de Lord Howe", "HECU": "hora de verano de Cuba", "AWST": "hora estándar de Australia occidental", "CAT": "hora de África central", "ACWST": "hora estándar de Australia centroccidental", "MYT": "hora de Malasia", "MDT": "hora de verano de las Montañas", "AEDT": "hora de verano de Australia oriental", "HEPM": "hora de verano de San Pedro y Miquelón", "PDT": "hora de verano del Pacífico", "HADT": "hora de verano de Hawái-Aleutiano", "WESZ": "hora de verano de Europa occidental", "HNNOMX": "hora estándar del noroeste de México", "NZST": "hora estándar de Nueva Zelanda", "TMT": "hora estándar de Turkmenistán", "CHAST": "hora estándar de Chatham", "SAST": "hora de Sudáfrica", "LHDT": "hora de verano de Lord Howe", "CST": "hora estándar central", "IST": "hora estándar de la India", "CLT": "hora estándar de Chile", "∅∅∅": "Hora de verano de Acre", "UYST": "hora de verano de Uruguay", "AKST": "hora estándar de Alaska", "EAT": "hora de África oriental", "JST": "hora estándar de Japón", "WARST": "hora de verano de Argentina occidental", "ART": "hora estándar de Argentina", "UYT": "hora estándar de Uruguay", "HNT": "hora estándar de Terranova", "GFT": "hora de la Guayana Francesa", "AEST": "hora estándar de Australia oriental", "ADT": "hora de verano del Atlántico", "WAST": "hora de verano de África occidental", "HNEG": "hora estándar de Groenlandia oriental", "ChST": "hora estándar de Chamorro", "ACDT": "hora de verano de Australia central", "HNCU": "hora estándar de Cuba", "MEZ": "hora estándar de Europa central", "HNOG": "hora estándar de Groenlandia occidental", "HNPMX": "hora estándar del Pacífico de México", "COT": "hora estándar de Colombia", "GYT": "hora de Guyana", "HAST": "hora estándar de Hawái-Aleutiano", "JDT": "hora de verano de Japón", "CLST": "hora de verano de Chile", "AST": "hora estándar del Atlántico", "OESZ": "hora de verano de Europa oriental", "ACST": "hora estándar de Australia central", "GMT": "hora del meridiano de Greenwich", "WIT": "hora de Indonesia oriental", "SGT": "hora de Singapur", "ECT": "hora de Ecuador", "HEPMX": "hora de verano del Pacífico de México", "EDT": "hora de verano oriental", "MST": "hora estándar de las Montañas", "WITA": "hora de Indonesia central", "BOT": "hora de Bolivia", "OEZ": "hora estándar de Europa oriental", "TMST": "hora de verano de Turkmenistán", "WAT": "hora estándar de África occidental", "HEEG": "hora de verano de Groenlandia oriental", "SRT": "hora de Surinam", "PST": "hora estándar del Pacífico", "NZDT": "hora de verano de Nueva Zelanda", "WART": "hora estándar de Argentina occidental", "HEOG": "hora de verano de Groenlandia occidental", "COST": "hora de verano de Colombia", "CDT": "hora de verano central", "MESZ": "hora de verano de Europa central", "VET": "hora de Venezuela", "ARST": "hora de verano de Argentina", "HNPM": "hora estándar de San Pedro y Miquelón", "HKST": "hora de verano de Hong Kong", "WIB": "hora de Indonesia occidental", "AWDT": "hora de verano de Australia occidental", "CHADT": "hora de verano de Chatham", "ACWDT": "hora de verano de Australia centroccidental", "WEZ": "hora estándar de Europa occidental", "EST": "hora estándar oriental"},
}
}
diff --git a/es_CO/es_CO.go b/es_CO/es_CO.go
index 920fadf3..8c055488 100644
--- a/es_CO/es_CO.go
+++ b/es_CO/es_CO.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"ADT": "hora de verano del Atlántico", "AKDT": "hora de verano de Alaska", "JDT": "hora de verano de Japón", "EST": "hora estándar oriental", "LHDT": "hora de verano de Lord Howe", "HNEG": "hora estándar de Groenlandia oriental", "ACDT": "hora de verano de Australia central", "MST": "Hora estándar de Macao", "HAST": "hora estándar de Hawái-Aleutiano", "ACWDT": "hora de verano de Australia centroccidental", "AWST": "hora estándar de Australia occidental", "AWDT": "hora de verano de Australia occidental", "WAST": "hora de verano de África occidental", "CST": "hora estándar central", "GMT": "hora del meridiano de Greenwich", "HECU": "hora de verano de Cuba", "HEPMX": "hora de verano del Pacífico de México", "PDT": "hora de verano del Pacífico", "COST": "hora de verano de Colombia", "AEST": "hora estándar de Australia oriental", "WARST": "hora de verano de Argentina occidental", "AKST": "hora estándar de Alaska", "SRT": "hora de Surinam", "ACWST": "hora estándar de Australia centroccidental", "HNT": "hora estándar de Terranova", "CLST": "hora de verano de Chile", "WART": "hora estándar de Argentina occidental", "CHADT": "hora de verano de Chatham", "CLT": "hora estándar de Chile", "HEEG": "hora de verano de Groenlandia oriental", "HEOG": "hora de verano de Groenlandia occidental", "WIB": "hora de Indonesia occidental", "ART": "hora estándar de Argentina", "HKST": "hora de verano de Hong Kong", "ECT": "hora de Ecuador", "EDT": "hora de verano oriental", "HENOMX": "hora de verano del noroeste de México", "HNCU": "hora estándar de Cuba", "HNPMX": "hora estándar del Pacífico de México", "GYT": "hora de Guyana", "UYST": "hora de verano de Uruguay", "VET": "hora de Venezuela", "HNPM": "hora estándar de San Pedro y Miquelón", "COT": "hora estándar de Colombia", "TMST": "hora de verano de Turkmenistán", "WAT": "hora estándar de África occidental", "JST": "hora estándar de Japón", "MESZ": "hora de verano de Europa central", "NZST": "hora estándar de Nueva Zelanda", "NZDT": "hora de verano de Nueva Zelanda", "IST": "hora estándar de la India", "GFT": "hora de la Guayana Francesa", "SGT": "hora de Singapur", "AST": "hora estándar del Atlántico", "PST": "hora estándar del Pacífico", "EAT": "hora de África oriental", "MDT": "Hora de verano de Macao", "WIT": "hora de Indonesia oriental", "AEDT": "hora de verano de Australia oriental", "LHST": "hora estándar de Lord Howe", "CAT": "hora de África central", "OESZ": "hora de verano de Europa oriental", "UYT": "hora estándar de Uruguay", "CHAST": "hora estándar de Chatham", "BOT": "hora de Bolivia", "MYT": "hora de Malasia", "WESZ": "hora de verano de Europa occidental", "HAT": "hora de verano de Terranova", "SAST": "hora de Sudáfrica", "ChST": "hora estándar de Chamorro", "ACST": "hora estándar de Australia central", "HADT": "hora de verano de Hawái-Aleutiano", "BT": "hora de Bután", "HNOG": "hora estándar de Groenlandia occidental", "WEZ": "hora estándar de Europa occidental", "HKT": "hora estándar de Hong Kong", "HEPM": "hora de verano de San Pedro y Miquelón", "TMT": "hora estándar de Turkmenistán", "HNNOMX": "hora estándar del noroeste de México", "CDT": "hora de verano central", "ARST": "hora de verano de Argentina", "WITA": "hora de Indonesia central", "MEZ": "hora estándar de Europa central", "OEZ": "hora estándar de Europa oriental", "∅∅∅": "hora de verano de las Azores"},
+ timezones: map[string]string{"JST": "hora estándar de Japón", "GMT": "hora del meridiano de Greenwich", "MYT": "hora de Malasia", "MST": "hora estándar de las Montañas", "CHAST": "hora estándar de Chatham", "HEOG": "hora de verano de Groenlandia occidental", "CLST": "hora de verano de Chile", "TMST": "hora de verano de Turkmenistán", "LHST": "hora estándar de Lord Howe", "ACST": "hora estándar de Australia central", "COT": "hora estándar de Colombia", "HEPMX": "hora de verano del Pacífico de México", "HECU": "hora de verano de Cuba", "CST": "hora estándar central", "CDT": "hora de verano central", "CHADT": "hora de verano de Chatham", "WAT": "hora estándar de África occidental", "HADT": "hora de verano de Hawái-Aleutiano", "ChST": "hora estándar de Chamorro", "SAST": "hora de Sudáfrica", "PST": "hora estándar del Pacífico", "HNT": "hora estándar de Terranova", "NZDT": "hora de verano de Nueva Zelanda", "ECT": "hora de Ecuador", "AEDT": "hora de verano de Australia oriental", "MDT": "hora de verano de las Montañas", "PDT": "hora de verano del Pacífico", "HKT": "hora estándar de Hong Kong", "UYT": "hora estándar de Uruguay", "EAT": "hora de África oriental", "WIB": "hora de Indonesia occidental", "IST": "hora estándar de la India", "NZST": "hora estándar de Nueva Zelanda", "MEZ": "hora estándar de Europa central", "JDT": "hora de verano de Japón", "COST": "hora de verano de Colombia", "WART": "hora estándar de Argentina occidental", "AKST": "hora estándar de Alaska", "GYT": "hora de Guyana", "ACWDT": "hora de verano de Australia centroccidental", "HENOMX": "hora de verano del noroeste de México", "HNEG": "hora estándar de Groenlandia oriental", "AEST": "hora estándar de Australia oriental", "HEPM": "hora de verano de San Pedro y Miquelón", "HAST": "hora estándar de Hawái-Aleutiano", "ACWST": "hora estándar de Australia centroccidental", "ARST": "hora de verano de Argentina", "ACDT": "hora de verano de Australia central", "GFT": "hora de la Guayana Francesa", "BOT": "hora de Bolivia", "MESZ": "hora de verano de Europa central", "TMT": "hora estándar de Turkmenistán", "HEEG": "hora de verano de Groenlandia oriental", "SRT": "hora de Surinam", "VET": "hora de Venezuela", "OEZ": "hora estándar de Europa oriental", "HNPM": "hora estándar de San Pedro y Miquelón", "LHDT": "hora de verano de Lord Howe", "HNCU": "hora estándar de Cuba", "OESZ": "hora de verano de Europa oriental", "AKDT": "hora de verano de Alaska", "∅∅∅": "Hora de verano de Acre", "EDT": "hora de verano oriental", "WIT": "hora de Indonesia oriental", "HNOG": "hora estándar de Groenlandia occidental", "EST": "hora estándar oriental", "WITA": "hora de Indonesia central", "CAT": "hora de África central", "WESZ": "hora de verano de Europa occidental", "CLT": "hora estándar de Chile", "ART": "hora estándar de Argentina", "WAST": "hora de verano de África occidental", "HNNOMX": "hora estándar del noroeste de México", "BT": "hora de Bután", "HAT": "hora de verano de Terranova", "UYST": "hora de verano de Uruguay", "HNPMX": "hora estándar del Pacífico de México", "AWST": "hora estándar de Australia occidental", "AWDT": "hora de verano de Australia occidental", "HKST": "hora de verano de Hong Kong", "AST": "hora estándar del Atlántico", "ADT": "hora de verano del Atlántico", "WEZ": "hora estándar de Europa occidental", "WARST": "hora de verano de Argentina occidental", "SGT": "hora de Singapur"},
}
}
diff --git a/es_CR/es_CR.go b/es_CR/es_CR.go
index 93042e4e..e74bd2cd 100644
--- a/es_CR/es_CR.go
+++ b/es_CR/es_CR.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"CHADT": "hora de verano de Chatham", "ACST": "hora estándar de Australia central", "MST": "hora estándar de las Montañas", "HNPM": "hora estándar de San Pedro y Miquelón", "NZDT": "hora de verano de Nueva Zelanda", "CST": "hora estándar central", "ART": "hora estándar de Argentina", "WAT": "hora estándar de África occidental", "HNCU": "hora estándar de Cuba", "LHDT": "hora de verano de Lord Howe", "CLT": "hora estándar de Chile", "COST": "hora de verano de Colombia", "GYT": "hora de Guyana", "WESZ": "hora de verano de Europa occidental", "ACWST": "hora estándar de Australia centroccidental", "ACWDT": "hora de verano de Australia centroccidental", "EST": "hora estándar oriental", "EDT": "hora de verano oriental", "BT": "hora de Bután", "ARST": "hora de verano de Argentina", "JST": "hora estándar de Japón", "∅∅∅": "hora de verano del Amazonas", "MDT": "hora de verano de las Montañas", "PDT": "hora de verano del Pacífico", "SAST": "hora de Sudáfrica", "AEST": "hora estándar de Australia oriental", "ECT": "hora de Ecuador", "ADT": "hora de verano del Atlántico", "SGT": "hora de Singapur", "PST": "hora estándar del Pacífico", "LHST": "hora estándar de Lord Howe", "GFT": "hora de la Guayana Francesa", "CAT": "hora de África central", "COT": "hora estándar de Colombia", "HADT": "hora de verano de Hawái-Aleutiano", "AEDT": "hora de verano de Australia oriental", "BOT": "hora de Bolivia", "AKDT": "hora de verano de Alaska", "HEEG": "hora de verano de Groenlandia oriental", "TMT": "hora estándar de Turkmenistán", "OESZ": "hora de verano de Europa oriental", "ACDT": "hora de verano de Australia central", "WAST": "hora de verano de África occidental", "HNPMX": "hora estándar del Pacífico de México", "MYT": "hora de Malasia", "AKST": "hora estándar de Alaska", "HAST": "hora estándar de Hawái-Aleutiano", "SRT": "hora de Surinam", "ChST": "hora estándar de Chamorro", "OEZ": "hora estándar de Europa oriental", "WEZ": "hora estándar de Europa occidental", "NZST": "hora estándar de Nueva Zelanda", "JDT": "hora de verano de Japón", "HEPM": "hora de verano de San Pedro y Miquelón", "MEZ": "hora estándar de Europa central", "IST": "hora estándar de la India", "WARST": "hora de verano de Argentina occidental", "HEOG": "hora de verano de Groenlandia occidental", "AWDT": "hora de verano de Australia occidental", "WITA": "hora de Indonesia central", "AST": "hora estándar del Atlántico", "WIB": "hora de Indonesia occidental", "HNT": "hora estándar de Terranova", "WART": "hora estándar de Argentina occidental", "MESZ": "hora de verano de Europa central", "TMST": "hora de verano de Turkmenistán", "GMT": "hora del meridiano de Greenwich", "UYST": "hora de verano de Uruguay", "HNOG": "hora estándar de Groenlandia occidental", "HKT": "hora estándar de Hong Kong", "HKST": "hora de verano de Hong Kong", "CHAST": "hora estándar de Chatham", "EAT": "hora de África oriental", "UYT": "hora estándar de Uruguay", "WIT": "hora de Indonesia oriental", "HAT": "hora de verano de Terranova", "AWST": "hora estándar de Australia occidental", "HNNOMX": "hora estándar del noroeste de México", "HENOMX": "hora de verano del noroeste de México", "HECU": "hora de verano de Cuba", "HEPMX": "hora de verano del Pacífico de México", "CDT": "hora de verano central", "VET": "hora de Venezuela", "CLST": "hora de verano de Chile", "HNEG": "hora estándar de Groenlandia oriental"},
+ timezones: map[string]string{"EDT": "hora de verano oriental", "HKST": "hora de verano de Hong Kong", "HEEG": "hora de verano de Groenlandia oriental", "HAST": "hora estándar de Hawái-Aleutiano", "NZDT": "hora de verano de Nueva Zelanda", "AKST": "hora estándar de Alaska", "UYT": "hora estándar de Uruguay", "HNPM": "hora estándar de San Pedro y Miquelón", "SAST": "hora de Sudáfrica", "CST": "hora estándar central", "ADT": "hora de verano del Atlántico", "HNPMX": "hora estándar del Pacífico de México", "MYT": "hora de Malasia", "WART": "hora estándar de Argentina occidental", "HNT": "hora estándar de Terranova", "AKDT": "hora de verano de Alaska", "NZST": "hora estándar de Nueva Zelanda", "COT": "hora estándar de Colombia", "GFT": "hora de la Guayana Francesa", "AEST": "hora estándar de Australia oriental", "AEDT": "hora de verano de Australia oriental", "LHST": "hora estándar de Lord Howe", "GYT": "hora de Guyana", "AWDT": "hora de verano de Australia occidental", "IST": "hora estándar de la India", "OESZ": "hora de verano de Europa oriental", "TMT": "hora estándar de Turkmenistán", "ART": "hora estándar de Argentina", "WAT": "hora estándar de África occidental", "EST": "hora estándar oriental", "COST": "hora de verano de Colombia", "EAT": "hora de África oriental", "PST": "hora estándar del Pacífico", "JST": "hora estándar de Japón", "JDT": "hora de verano de Japón", "GMT": "hora del meridiano de Greenwich", "SRT": "hora de Surinam", "CHAST": "hora estándar de Chatham", "MEZ": "hora estándar de Europa central", "ACWST": "hora estándar de Australia centroccidental", "VET": "hora de Venezuela", "HNOG": "hora estándar de Groenlandia occidental", "OEZ": "hora estándar de Europa oriental", "WARST": "hora de verano de Argentina occidental", "TMST": "hora de verano de Turkmenistán", "WIT": "hora de Indonesia oriental", "HADT": "hora de verano de Hawái-Aleutiano", "HEPMX": "hora de verano del Pacífico de México", "ACWDT": "hora de verano de Australia centroccidental", "WAST": "hora de verano de África occidental", "HNNOMX": "hora estándar del noroeste de México", "BOT": "hora de Bolivia", "ECT": "hora de Ecuador", "PDT": "hora de verano del Pacífico", "WEZ": "hora estándar de Europa occidental", "WESZ": "hora de verano de Europa occidental", "BT": "hora de Bután", "HECU": "hora de verano de Cuba", "WIB": "hora de Indonesia occidental", "HKT": "hora estándar de Hong Kong", "ACST": "hora estándar de Australia central", "HENOMX": "hora de verano del noroeste de México", "CDT": "hora de verano central", "SGT": "hora de Singapur", "HAT": "hora de verano de Terranova", "HNEG": "hora estándar de Groenlandia oriental", "LHDT": "hora de verano de Lord Howe", "HNCU": "hora estándar de Cuba", "CLT": "hora estándar de Chile", "WITA": "hora de Indonesia central", "UYST": "hora de verano de Uruguay", "∅∅∅": "hora de verano de Brasilia", "AST": "hora estándar del Atlántico", "MDT": "Hora de verano de Macao", "ChST": "hora estándar de Chamorro", "CAT": "hora de África central", "HEOG": "hora de verano de Groenlandia occidental", "MST": "Hora estándar de Macao", "ARST": "hora de verano de Argentina", "ACDT": "hora de verano de Australia central", "MESZ": "hora de verano de Europa central", "CLST": "hora de verano de Chile", "HEPM": "hora de verano de San Pedro y Miquelón", "AWST": "hora estándar de Australia occidental", "CHADT": "hora de verano de Chatham"},
}
}
diff --git a/es_CU/es_CU.go b/es_CU/es_CU.go
index 5c74cdae..cf91ceb0 100644
--- a/es_CU/es_CU.go
+++ b/es_CU/es_CU.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"MST": "Hora estándar de Macao", "AST": "hora estándar del Atlántico", "ART": "hora estándar de Argentina", "AEDT": "hora de verano de Australia oriental", "ACST": "hora estándar de Australia central", "WARST": "hora de verano de Argentina occidental", "HNNOMX": "hora estándar del noroeste de México", "VET": "hora de Venezuela", "PDT": "hora de verano del Pacífico", "JDT": "hora de verano de Japón", "COT": "hora estándar de Colombia", "HEPMX": "hora de verano del Pacífico de México", "PST": "hora estándar del Pacífico", "LHDT": "hora de verano de Lord Howe", "ACDT": "hora de verano de Australia central", "OEZ": "hora estándar de Europa oriental", "OESZ": "hora de verano de Europa oriental", "WAST": "hora de verano de África occidental", "EDT": "hora de verano oriental", "UYT": "hora estándar de Uruguay", "HEPM": "hora de verano de San Pedro y Miquelón", "COST": "hora de verano de Colombia", "MDT": "Hora de verano de Macao", "WITA": "hora de Indonesia central", "LHST": "hora estándar de Lord Howe", "NZDT": "hora de verano de Nueva Zelanda", "EAT": "hora de África oriental", "ADT": "hora de verano del Atlántico", "HNOG": "hora estándar de Groenlandia occidental", "AWDT": "hora de verano de Australia occidental", "NZST": "hora estándar de Nueva Zelanda", "HEEG": "hora de verano de Groenlandia oriental", "WAT": "hora estándar de África occidental", "SRT": "hora de Surinam", "BOT": "hora de Bolivia", "ACWST": "hora estándar de Australia centroccidental", "HNPM": "hora estándar de San Pedro y Miquelón", "CHAST": "hora estándar de Chatham", "EST": "hora estándar oriental", "HNPMX": "hora estándar del Pacífico de México", "UYST": "hora de verano de Uruguay", "ARST": "hora de verano de Argentina", "HKST": "hora de verano de Hong Kong", "GYT": "hora de Guyana", "TMST": "hora de verano de Turkmenistán", "GMT": "hora del meridiano de Greenwich", "MYT": "hora de Malasia", "HADT": "hora de verano de Hawái-Aleutiano", "HNT": "hora estándar de Terranova", "AWST": "hora estándar de Australia occidental", "MEZ": "hora estándar de Europa central", "TMT": "hora estándar de Turkmenistán", "CST": "hora estándar central", "WIT": "hora de Indonesia oriental", "HEOG": "hora de verano de Groenlandia occidental", "MESZ": "hora de verano de Europa central", "IST": "hora estándar de la India", "CLT": "hora estándar de Chile", "CLST": "hora de verano de Chile", "GFT": "hora de la Guayana Francesa", "ChST": "hora estándar de Chamorro", "HNEG": "hora estándar de Groenlandia oriental", "CAT": "hora de África central", "HENOMX": "hora de verano del noroeste de México", "HECU": "hora de verano de Cuba", "AKST": "hora estándar de Alaska", "WIB": "hora de Indonesia occidental", "HAT": "hora de verano de Terranova", "WEZ": "hora estándar de Europa occidental", "WESZ": "hora de verano de Europa occidental", "ACWDT": "hora de verano de Australia centroccidental", "CHADT": "hora de verano de Chatham", "SAST": "hora de Sudáfrica", "WART": "hora estándar de Argentina occidental", "HNCU": "hora estándar de Cuba", "CDT": "hora de verano central", "AKDT": "hora de verano de Alaska", "BT": "hora de Bután", "HKT": "hora estándar de Hong Kong", "JST": "hora estándar de Japón", "∅∅∅": "hora de verano del Amazonas", "ECT": "hora de Ecuador", "SGT": "hora de Singapur", "HAST": "hora estándar de Hawái-Aleutiano", "AEST": "hora estándar de Australia oriental"},
+ timezones: map[string]string{"GYT": "hora de Guyana", "ACWDT": "hora de verano de Australia centroccidental", "MST": "Hora estándar de Macao", "HEPM": "hora de verano de San Pedro y Miquelón", "HEPMX": "hora de verano del Pacífico de México", "SRT": "hora de Surinam", "JST": "hora estándar de Japón", "ART": "hora estándar de Argentina", "HNPM": "hora estándar de San Pedro y Miquelón", "ECT": "hora de Ecuador", "HAST": "hora estándar de Hawái-Aleutiano", "OESZ": "hora de verano de Europa oriental", "WIT": "hora de Indonesia oriental", "BOT": "hora de Bolivia", "CHADT": "hora de verano de Chatham", "WAT": "hora estándar de África occidental", "HAT": "hora de verano de Terranova", "LHDT": "hora de verano de Lord Howe", "CST": "hora estándar central", "AKDT": "hora de verano de Alaska", "HNPMX": "hora estándar del Pacífico de México", "WIB": "hora de Indonesia occidental", "MESZ": "hora de verano de Europa central", "AST": "hora estándar del Atlántico", "EDT": "hora de verano oriental", "BT": "hora de Bután", "TMST": "hora de verano de Turkmenistán", "UYST": "hora de verano de Uruguay", "CAT": "hora de África central", "HNT": "hora estándar de Terranova", "SGT": "hora de Singapur", "NZST": "hora estándar de Nueva Zelanda", "GMT": "hora del meridiano de Greenwich", "CLST": "hora de verano de Chile", "TMT": "hora estándar de Turkmenistán", "MDT": "Hora de verano de Macao", "SAST": "hora de Sudáfrica", "JDT": "hora de verano de Japón", "WESZ": "hora de verano de Europa occidental", "ACST": "hora estándar de Australia central", "UYT": "hora estándar de Uruguay", "HENOMX": "hora de verano del noroeste de México", "VET": "hora de Venezuela", "WEZ": "hora estándar de Europa occidental", "WART": "hora estándar de Argentina occidental", "HKT": "hora estándar de Hong Kong", "PST": "hora estándar del Pacífico", "MYT": "hora de Malasia", "WARST": "hora de verano de Argentina occidental", "CLT": "hora estándar de Chile", "HEEG": "hora de verano de Groenlandia oriental", "CDT": "hora de verano central", "PDT": "hora de verano del Pacífico", "ACWST": "hora estándar de Australia centroccidental", "WAST": "hora de verano de África occidental", "COST": "hora de verano de Colombia", "∅∅∅": "Hora de verano de Acre", "AEDT": "hora de verano de Australia oriental", "HNCU": "hora estándar de Cuba", "HECU": "hora de verano de Cuba", "MEZ": "hora estándar de Europa central", "HNOG": "hora estándar de Groenlandia occidental", "AWDT": "hora de verano de Australia occidental", "ACDT": "hora de verano de Australia central", "AEST": "hora estándar de Australia oriental", "ChST": "hora estándar de Chamorro", "AWST": "hora estándar de Australia occidental", "ADT": "hora de verano del Atlántico", "ARST": "hora de verano de Argentina", "EST": "hora estándar oriental", "HNNOMX": "hora estándar del noroeste de México", "NZDT": "hora de verano de Nueva Zelanda", "GFT": "hora de la Guayana Francesa", "WITA": "hora de Indonesia central", "LHST": "hora estándar de Lord Howe", "CHAST": "hora estándar de Chatham", "OEZ": "hora estándar de Europa oriental", "HEOG": "hora de verano de Groenlandia occidental", "HKST": "hora de verano de Hong Kong", "HNEG": "hora estándar de Groenlandia oriental", "HADT": "hora de verano de Hawái-Aleutiano", "COT": "hora estándar de Colombia", "AKST": "hora estándar de Alaska", "EAT": "hora de África oriental", "IST": "hora estándar de la India"},
}
}
diff --git a/es_DO/es_DO.go b/es_DO/es_DO.go
index 1cad34d2..15bda7e6 100644
--- a/es_DO/es_DO.go
+++ b/es_DO/es_DO.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de la Era Común", "Era Común"},
- timezones: map[string]string{"CLST": "hora de verano de Chile", "∅∅∅": "hora de verano del Amazonas", "HNNOMX": "hora estándar del noroeste de México", "EDT": "hora de verano oriental", "AKST": "hora estándar de Alaska", "WITA": "hora de Indonesia central", "AWST": "hora estándar de Australia occidental", "HEPM": "hora de verano de San Pedro y Miquelón", "WAT": "hora estándar de África occidental", "CDT": "hora de verano central", "ADT": "hora de verano del Atlántico", "WESZ": "hora de verano de Europa occidental", "HNOG": "hora estándar de Groenlandia occidental", "CAT": "hora de África central", "WAST": "hora de verano de África occidental", "GMT": "hora del meridiano de Greenwich", "HNPMX": "hora estándar del Pacífico de México", "UYST": "hora de verano de Uruguay", "AKDT": "hora de verano de Alaska", "HAT": "hora de verano de Terranova", "PDT": "hora de verano del Pacífico", "HNPM": "hora estándar de San Pedro y Miquelón", "HNCU": "hora estándar de Cuba", "EST": "hora estándar oriental", "MST": "Hora estándar de Macao", "MDT": "Hora de verano de Macao", "BT": "hora de Bután", "HNT": "hora estándar de Terranova", "WEZ": "hora estándar de Europa occidental", "JDT": "hora de verano de Japón", "WART": "hora estándar de Argentina occidental", "UYT": "hora estándar de Uruguay", "HAST": "hora estándar de Hawái-Aleutiano", "HKST": "hora de verano de Hong Kong", "NZST": "hora estándar de Nueva Zelanda", "SAST": "hora de Sudáfrica", "CLT": "hora estándar de Chile", "EAT": "hora de África oriental", "HEOG": "hora de verano de Groenlandia occidental", "HNEG": "hora estándar de Groenlandia oriental", "ACDT": "hora de verano de Australia central", "GYT": "hora de Guyana", "ChST": "hora estándar de Chamorro", "AEST": "hora estándar de Australia oriental", "CHADT": "hora de verano de Chatham", "HEEG": "hora de verano de Groenlandia oriental", "ECT": "hora de Ecuador", "VET": "hora de Venezuela", "HKT": "hora estándar de Hong Kong", "JST": "hora estándar de Japón", "HEPMX": "hora de verano del Pacífico de México", "HADT": "hora de verano de Hawái-Aleutiano", "LHST": "hora estándar de Lord Howe", "TMST": "hora de verano de Turkmenistán", "OESZ": "hora de verano de Europa oriental", "WARST": "hora de verano de Argentina occidental", "ART": "hora estándar de Argentina", "MEZ": "hora estándar de Europa central", "GFT": "hora de la Guayana Francesa", "COT": "hora estándar de Colombia", "COST": "hora de verano de Colombia", "ACWST": "hora estándar de Australia centroccidental", "MESZ": "hora de verano de Europa central", "LHDT": "hora de verano de Lord Howe", "NZDT": "hora de verano de Nueva Zelanda", "IST": "hora estándar de la India", "ACST": "hora estándar de Australia central", "HENOMX": "hora de verano del noroeste de México", "ARST": "hora de verano de Argentina", "WIB": "hora de Indonesia occidental", "AWDT": "hora de verano de Australia occidental", "PST": "hora estándar del Pacífico", "AEDT": "hora de verano de Australia oriental", "TMT": "hora estándar de Turkmenistán", "BOT": "hora de Bolivia", "OEZ": "hora estándar de Europa oriental", "CST": "hora estándar central", "MYT": "hora de Malasia", "WIT": "hora de Indonesia oriental", "AST": "hora estándar del Atlántico", "ACWDT": "hora de verano de Australia centroccidental", "CHAST": "hora estándar de Chatham", "SGT": "hora de Singapur", "HECU": "hora de verano de Cuba", "SRT": "hora de Surinam"},
+ timezones: map[string]string{"MST": "Hora estándar de Macao", "HEPM": "hora de verano de San Pedro y Miquelón", "HNPMX": "hora estándar del Pacífico de México", "SGT": "hora de Singapur", "WAT": "hora estándar de África occidental", "WAST": "hora de verano de África occidental", "AEDT": "hora de verano de Australia oriental", "HECU": "hora de verano de Cuba", "AWST": "hora estándar de Australia occidental", "ACWST": "hora estándar de Australia centroccidental", "NZDT": "hora de verano de Nueva Zelanda", "MEZ": "hora estándar de Europa central", "VET": "hora de Venezuela", "WEZ": "hora estándar de Europa occidental", "COST": "hora de verano de Colombia", "WITA": "hora de Indonesia central", "LHDT": "hora de verano de Lord Howe", "HNOG": "hora estándar de Groenlandia occidental", "AST": "hora estándar del Atlántico", "MYT": "hora de Malasia", "CLST": "hora de verano de Chile", "AKST": "hora estándar de Alaska", "CHADT": "hora de verano de Chatham", "EDT": "hora de verano oriental", "SAST": "hora de Sudáfrica", "EAT": "hora de África oriental", "HNCU": "hora estándar de Cuba", "CDT": "hora de verano central", "AWDT": "hora de verano de Australia occidental", "ADT": "hora de verano del Atlántico", "LHST": "hora estándar de Lord Howe", "SRT": "hora de Surinam", "GFT": "hora de la Guayana Francesa", "GYT": "hora de Guyana", "∅∅∅": "hora de verano de Brasilia", "WESZ": "hora de verano de Europa occidental", "ART": "hora estándar de Argentina", "HNEG": "hora estándar de Groenlandia oriental", "HNNOMX": "hora estándar del noroeste de México", "WIT": "hora de Indonesia oriental", "CHAST": "hora estándar de Chatham", "IST": "hora estándar de la India", "OEZ": "hora estándar de Europa oriental", "WARST": "hora de verano de Argentina occidental", "TMT": "hora estándar de Turkmenistán", "ACST": "hora estándar de Australia central", "ACDT": "hora de verano de Australia central", "COT": "hora estándar de Colombia", "ChST": "hora estándar de Chamorro", "UYST": "hora de verano de Uruguay", "HADT": "hora de verano de Hawái-Aleutiano", "MESZ": "hora de verano de Europa central", "GMT": "hora del meridiano de Greenwich", "WART": "hora estándar de Argentina occidental", "CLT": "hora estándar de Chile", "HNT": "hora estándar de Terranova", "CST": "hora estándar central", "BOT": "hora de Bolivia", "NZST": "hora estándar de Nueva Zelanda", "AKDT": "hora de verano de Alaska", "AEST": "hora estándar de Australia oriental", "HNPM": "hora estándar de San Pedro y Miquelón", "WIB": "hora de Indonesia occidental", "ACWDT": "hora de verano de Australia centroccidental", "TMST": "hora de verano de Turkmenistán", "HENOMX": "hora de verano del noroeste de México", "HEPMX": "hora de verano del Pacífico de México", "JDT": "hora de verano de Japón", "HKST": "hora de verano de Hong Kong", "BT": "hora de Bután", "HAT": "hora de verano de Terranova", "HEEG": "hora de verano de Groenlandia oriental", "UYT": "hora estándar de Uruguay", "PST": "hora estándar del Pacífico", "ECT": "hora de Ecuador", "CAT": "hora de África central", "HEOG": "hora de verano de Groenlandia occidental", "OESZ": "hora de verano de Europa oriental", "MDT": "Hora de verano de Macao", "ARST": "hora de verano de Argentina", "PDT": "hora de verano del Pacífico", "HAST": "hora estándar de Hawái-Aleutiano", "JST": "hora estándar de Japón", "EST": "hora estándar oriental", "HKT": "hora estándar de Hong Kong"},
}
}
diff --git a/es_EA/es_EA.go b/es_EA/es_EA.go
index 5a9eca89..ab9afc5d 100644
--- a/es_EA/es_EA.go
+++ b/es_EA/es_EA.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"ACWDT": "hora de verano de Australia centroccidental", "PDT": "hora de verano del Pacífico", "COT": "hora estándar de Colombia", "AEST": "hora estándar de Australia oriental", "HNPM": "hora estándar de San Pedro y Miquelón", "CHAST": "hora estándar de Chatham", "EAT": "hora de África oriental", "OEZ": "hora estándar de Europa oriental", "WEZ": "hora estándar de Europa occidental", "AWST": "hora estándar de Australia occidental", "AWDT": "hora de verano de Australia occidental", "COST": "hora de verano de Colombia", "WART": "hora estándar de Argentina occidental", "HAST": "hora estándar de Hawái-Aleutiano", "∅∅∅": "hora de verano del Amazonas", "SGT": "hora de Singapur", "BOT": "hora de Bolivia", "HNPMX": "hora estándar del Pacífico de México", "MYT": "hora de Malasia", "WESZ": "hora de verano de Europa occidental", "HKT": "hora estándar de Hong Kong", "NZST": "hora estándar de Nueva Zelanda", "HNEG": "hora estándar de Groenlandia oriental", "HNCU": "hora estándar de Cuba", "HADT": "hora de verano de Hawái-Aleutiano", "HEOG": "hora de verano de Groenlandia occidental", "IST": "hora estándar de la India", "CLT": "hora estándar de Chile", "CLST": "hora de verano de Chile", "TMT": "hora estándar de Turkmenistán", "CAT": "hora de África central", "WIT": "hora de Indonesia oriental", "SRT": "hora de Surinam", "HAT": "hora de verano de Terranova", "HNOG": "hora estándar de Groenlandia occidental", "HKST": "hora de verano de Hong Kong", "EST": "hora estándar oriental", "GMT": "hora del meridiano de Greenwich", "HEPMX": "hora de verano del Pacífico de México", "BT": "hora de Bután", "MEZ": "hora estándar de Europa central", "ChST": "hora estándar de Chamorro", "GFT": "hora de la Guayana Francesa", "MDT": "Hora de verano de Macao", "CDT": "hora de verano central", "ADT": "hora de verano del Atlántico", "WIB": "hora de Indonesia occidental", "ART": "hora estándar de Argentina", "ARST": "hora de verano de Argentina", "JDT": "hora de verano de Japón", "ACST": "hora estándar de Australia central", "UYT": "hora estándar de Uruguay", "PST": "hora estándar del Pacífico", "WITA": "hora de Indonesia central", "NZDT": "hora de verano de Nueva Zelanda", "CHADT": "hora de verano de Chatham", "HECU": "hora de verano de Cuba", "EDT": "hora de verano oriental", "WAST": "hora de verano de África occidental", "MST": "Hora estándar de Macao", "AST": "hora estándar del Atlántico", "ACWST": "hora estándar de Australia centroccidental", "HEEG": "hora de verano de Groenlandia oriental", "WAT": "hora estándar de África occidental", "HENOMX": "hora de verano del noroeste de México", "GYT": "hora de Guyana", "VET": "hora de Venezuela", "LHST": "hora estándar de Lord Howe", "ECT": "hora de Ecuador", "AKDT": "hora de verano de Alaska", "AEDT": "hora de verano de Australia oriental", "SAST": "hora de Sudáfrica", "ACDT": "hora de verano de Australia central", "HEPM": "hora de verano de San Pedro y Miquelón", "MESZ": "hora de verano de Europa central", "JST": "hora estándar de Japón", "OESZ": "hora de verano de Europa oriental", "HNNOMX": "hora estándar del noroeste de México", "WARST": "hora de verano de Argentina occidental", "AKST": "hora estándar de Alaska", "CST": "hora estándar central", "HNT": "hora estándar de Terranova", "LHDT": "hora de verano de Lord Howe", "TMST": "hora de verano de Turkmenistán", "UYST": "hora de verano de Uruguay"},
+ timezones: map[string]string{"BOT": "hora de Bolivia", "PDT": "hora de verano del Pacífico", "ECT": "hora de Ecuador", "HKT": "hora estándar de Hong Kong", "∅∅∅": "Hora de verano de Acre", "HNPMX": "hora estándar del Pacífico de México", "SRT": "hora de Surinam", "HECU": "hora de verano de Cuba", "HAT": "hora de verano de Terranova", "EAT": "hora de África oriental", "AWST": "hora estándar de Australia occidental", "CAT": "hora de África central", "MST": "hora estándar de las Montañas", "HADT": "hora de verano de Hawái-Aleutiano", "CLT": "hora estándar de Chile", "HEOG": "hora de verano de Groenlandia occidental", "HENOMX": "hora de verano del noroeste de México", "GYT": "hora de Guyana", "IST": "hora estándar de la India", "ACWDT": "hora de verano de Australia centroccidental", "MEZ": "hora estándar de Europa central", "TMT": "hora estándar de Turkmenistán", "HNT": "hora estándar de Terranova", "CDT": "hora de verano central", "ACWST": "hora estándar de Australia centroccidental", "JDT": "hora de verano de Japón", "ADT": "hora de verano del Atlántico", "VET": "hora de Venezuela", "JST": "hora estándar de Japón", "CLST": "hora de verano de Chile", "EST": "hora estándar oriental", "ACST": "hora estándar de Australia central", "HNNOMX": "hora estándar del noroeste de México", "AKDT": "hora de verano de Alaska", "NZDT": "hora de verano de Nueva Zelanda", "AST": "hora estándar del Atlántico", "OEZ": "hora estándar de Europa oriental", "ACDT": "hora de verano de Australia central", "WITA": "hora de Indonesia central", "LHDT": "hora de verano de Lord Howe", "HAST": "hora estándar de Hawái-Aleutiano", "WESZ": "hora de verano de Europa occidental", "HKST": "hora de verano de Hong Kong", "COT": "hora estándar de Colombia", "HNCU": "hora estándar de Cuba", "WIB": "hora de Indonesia occidental", "CHADT": "hora de verano de Chatham", "HNEG": "hora estándar de Groenlandia oriental", "CST": "hora estándar central", "SGT": "hora de Singapur", "PST": "hora estándar del Pacífico", "AEST": "hora estándar de Australia oriental", "AEDT": "hora de verano de Australia oriental", "SAST": "hora de Sudáfrica", "HNOG": "hora estándar de Groenlandia occidental", "WARST": "hora de verano de Argentina occidental", "MDT": "hora de verano de las Montañas", "WIT": "hora de Indonesia oriental", "GMT": "hora del meridiano de Greenwich", "MYT": "hora de Malasia", "ART": "hora estándar de Argentina", "UYST": "hora de verano de Uruguay", "HEPM": "hora de verano de San Pedro y Miquelón", "LHST": "hora estándar de Lord Howe", "NZST": "hora estándar de Nueva Zelanda", "WAST": "hora de verano de África occidental", "COST": "hora de verano de Colombia", "HEEG": "hora de verano de Groenlandia oriental", "UYT": "hora estándar de Uruguay", "HNPM": "hora estándar de San Pedro y Miquelón", "OESZ": "hora de verano de Europa oriental", "WEZ": "hora estándar de Europa occidental", "TMST": "hora de verano de Turkmenistán", "ARST": "hora de verano de Argentina", "HEPMX": "hora de verano del Pacífico de México", "CHAST": "hora estándar de Chatham", "MESZ": "hora de verano de Europa central", "WAT": "hora estándar de África occidental", "EDT": "hora de verano oriental", "BT": "hora de Bután", "GFT": "hora de la Guayana Francesa", "ChST": "hora estándar de Chamorro", "WART": "hora estándar de Argentina occidental", "AKST": "hora estándar de Alaska", "AWDT": "hora de verano de Australia occidental"},
}
}
diff --git a/es_EC/es_EC.go b/es_EC/es_EC.go
index c021d3eb..ddc002ba 100644
--- a/es_EC/es_EC.go
+++ b/es_EC/es_EC.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"LHST": "hora estándar de Lord Howe", "UYT": "hora estándar de Uruguay", "HADT": "hora de verano de Hawái-Aleutiano", "ARST": "hora de verano de Argentina", "CLT": "hora estándar de Chile", "OESZ": "hora de verano de Europa oriental", "MYT": "hora de Malasia", "TMST": "hora de verano de Turkmenistán", "EAT": "hora de África oriental", "ART": "hora estándar de Argentina", "AWST": "hora estándar de Australia occidental", "NZDT": "hora de verano de Nueva Zelanda", "BOT": "hora de Bolivia", "CAT": "hora de África central", "MDT": "Hora de verano de Macao", "ACWST": "hora estándar de Australia centroccidental", "HAT": "hora de verano de Terranova", "WIB": "hora de Indonesia occidental", "HEOG": "hora de verano de Groenlandia occidental", "MEZ": "hora estándar de Europa central", "SAST": "hora de Sudáfrica", "JDT": "hora de verano de Japón", "WART": "hora estándar de Argentina occidental", "COST": "hora de verano de Colombia", "PST": "hora estándar del Pacífico", "WESZ": "hora de verano de Europa occidental", "VET": "hora de Venezuela", "HNNOMX": "hora estándar del noroeste de México", "ACWDT": "hora de verano de Australia centroccidental", "IST": "hora estándar de la India", "ChST": "hora estándar de Chamorro", "HENOMX": "hora de verano del noroeste de México", "AKST": "hora estándar de Alaska", "AKDT": "hora de verano de Alaska", "WIT": "hora de Indonesia oriental", "AEST": "hora estándar de Australia oriental", "JST": "hora estándar de Japón", "HNEG": "hora estándar de Groenlandia oriental", "WAT": "hora estándar de África occidental", "CHAST": "hora estándar de Chatham", "CLST": "hora de verano de Chile", "ADT": "hora de verano del Atlántico", "GYT": "hora de Guyana", "WITA": "hora de Indonesia central", "CDT": "hora de verano central", "HNT": "hora estándar de Terranova", "GMT": "hora del meridiano de Greenwich", "PDT": "hora de verano del Pacífico", "AEDT": "hora de verano de Australia oriental", "MESZ": "hora de verano de Europa central", "CHADT": "hora de verano de Chatham", "∅∅∅": "hora de verano del Amazonas", "OEZ": "hora estándar de Europa oriental", "WARST": "hora de verano de Argentina occidental", "CST": "hora estándar central", "HNPM": "hora estándar de San Pedro y Miquelón", "HEPM": "hora de verano de San Pedro y Miquelón", "AST": "hora estándar del Atlántico", "EST": "hora estándar oriental", "EDT": "hora de verano oriental", "MST": "Hora estándar de Macao", "HAST": "hora estándar de Hawái-Aleutiano", "BT": "hora de Bután", "SRT": "hora de Surinam", "LHDT": "hora de verano de Lord Howe", "HNCU": "hora estándar de Cuba", "HEEG": "hora de verano de Groenlandia oriental", "GFT": "hora de la Guayana Francesa", "TMT": "hora estándar de Turkmenistán", "WAST": "hora de verano de África occidental", "SGT": "hora de Singapur", "UYST": "hora de verano de Uruguay", "HNOG": "hora estándar de Groenlandia occidental", "NZST": "hora estándar de Nueva Zelanda", "ACST": "hora estándar de Australia central", "ACDT": "hora de verano de Australia central", "HECU": "hora de verano de Cuba", "HNPMX": "hora estándar del Pacífico de México", "WEZ": "hora estándar de Europa occidental", "HKST": "hora de verano de Hong Kong", "ECT": "hora de Ecuador", "COT": "hora estándar de Colombia", "HEPMX": "hora de verano del Pacífico de México", "AWDT": "hora de verano de Australia occidental", "HKT": "hora estándar de Hong Kong"},
+ timezones: map[string]string{"SRT": "hora de Surinam", "CHAST": "hora estándar de Chatham", "∅∅∅": "hora de verano del Amazonas", "HEEG": "hora de verano de Groenlandia oriental", "HNPM": "hora estándar de San Pedro y Miquelón", "MESZ": "hora de verano de Europa central", "ADT": "hora de verano del Atlántico", "AKDT": "hora de verano de Alaska", "AWST": "hora estándar de Australia occidental", "HADT": "hora de verano de Hawái-Aleutiano", "HNEG": "hora estándar de Groenlandia oriental", "BT": "hora de Bután", "WITA": "hora de Indonesia central", "HEPM": "hora de verano de San Pedro y Miquelón", "CST": "hora estándar central", "VET": "hora de Venezuela", "JST": "hora estándar de Japón", "WEZ": "hora estándar de Europa occidental", "HNNOMX": "hora estándar del noroeste de México", "IST": "hora estándar de la India", "ACWST": "hora estándar de Australia centroccidental", "ARST": "hora de verano de Argentina", "WAST": "hora de verano de África occidental", "CAT": "hora de África central", "CLST": "hora de verano de Chile", "HEOG": "hora de verano de Groenlandia occidental", "HAT": "hora de verano de Terranova", "CHADT": "hora de verano de Chatham", "PST": "hora estándar del Pacífico", "ACWDT": "hora de verano de Australia centroccidental", "NZST": "hora estándar de Nueva Zelanda", "LHDT": "hora de verano de Lord Howe", "SAST": "hora de Sudáfrica", "WIB": "hora de Indonesia occidental", "CDT": "hora de verano central", "OEZ": "hora estándar de Europa oriental", "WESZ": "hora de verano de Europa occidental", "WARST": "hora de verano de Argentina occidental", "AST": "hora estándar del Atlántico", "HKT": "hora estándar de Hong Kong", "ACST": "hora estándar de Australia central", "AKST": "hora estándar de Alaska", "HNCU": "hora estándar de Cuba", "EST": "hora estándar oriental", "UYST": "hora de verano de Uruguay", "LHST": "hora estándar de Lord Howe", "SGT": "hora de Singapur", "CLT": "hora estándar de Chile", "TMT": "hora estándar de Turkmenistán", "MDT": "Hora de verano de Macao", "COT": "hora estándar de Colombia", "UYT": "hora estándar de Uruguay", "AWDT": "hora de verano de Australia occidental", "PDT": "hora de verano del Pacífico", "NZDT": "hora de verano de Nueva Zelanda", "HKST": "hora de verano de Hong Kong", "WAT": "hora estándar de África occidental", "JDT": "hora de verano de Japón", "WART": "hora estándar de Argentina occidental", "HENOMX": "hora de verano del noroeste de México", "ACDT": "hora de verano de Australia central", "AEDT": "hora de verano de Australia oriental", "GYT": "hora de Guyana", "MEZ": "hora estándar de Europa central", "TMST": "hora de verano de Turkmenistán", "ART": "hora estándar de Argentina", "MST": "Hora estándar de Macao", "GFT": "hora de la Guayana Francesa", "ChST": "hora estándar de Chamorro", "BOT": "hora de Bolivia", "HAST": "hora estándar de Hawái-Aleutiano", "HNOG": "hora estándar de Groenlandia occidental", "AEST": "hora estándar de Australia oriental", "HECU": "hora de verano de Cuba", "EAT": "hora de África oriental", "WIT": "hora de Indonesia oriental", "ECT": "hora de Ecuador", "GMT": "hora del meridiano de Greenwich", "HNT": "hora estándar de Terranova", "HEPMX": "hora de verano del Pacífico de México", "HNPMX": "hora estándar del Pacífico de México", "OESZ": "hora de verano de Europa oriental", "MYT": "hora de Malasia", "EDT": "hora de verano oriental", "COST": "hora de verano de Colombia"},
}
}
diff --git a/es_ES/es_ES.go b/es_ES/es_ES.go
index 905732c8..0e6bd965 100644
--- a/es_ES/es_ES.go
+++ b/es_ES/es_ES.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"HNPMX": "hora estándar del Pacífico de México", "ARST": "hora de verano de Argentina", "WESZ": "hora de verano de Europa occidental", "HEOG": "hora de verano de Groenlandia occidental", "CLT": "hora estándar de Chile", "ACDT": "hora de verano de Australia central", "WAST": "hora de verano de África occidental", "OESZ": "hora de verano de Europa oriental", "COST": "hora de verano de Colombia", "MDT": "Hora de verano de Macao", "AEDT": "hora de verano de Australia oriental", "HKST": "hora de verano de Hong Kong", "WITA": "hora de Indonesia central", "HNPM": "hora estándar de San Pedro y Miquelón", "HNEG": "hora estándar de Groenlandia oriental", "GYT": "hora de Guyana", "AWDT": "hora de verano de Australia occidental", "HKT": "hora estándar de Hong Kong", "MEZ": "hora estándar de Europa central", "BT": "hora de Bután", "TMST": "hora de verano de Turkmenistán", "CAT": "hora de África central", "WARST": "hora de verano de Argentina occidental", "EDT": "hora de verano oriental", "CDT": "hora de verano central", "MYT": "hora de Malasia", "JDT": "hora de verano de Japón", "UYT": "hora estándar de Uruguay", "WEZ": "hora estándar de Europa occidental", "HNOG": "hora estándar de Groenlandia occidental", "IST": "hora estándar de la India", "ACST": "hora estándar de Australia central", "UYST": "hora de verano de Uruguay", "SRT": "hora de Surinam", "ACWST": "hora estándar de Australia centroccidental", "CST": "hora estándar central", "LHDT": "hora de verano de Lord Howe", "∅∅∅": "hora de verano del Amazonas", "ChST": "hora estándar de Chamorro", "OEZ": "hora estándar de Europa oriental", "ECT": "hora de Ecuador", "HNNOMX": "hora estándar del noroeste de México", "HECU": "hora de verano de Cuba", "NZST": "hora estándar de Nueva Zelanda", "NZDT": "hora de verano de Nueva Zelanda", "GFT": "hora de la Guayana Francesa", "VET": "hora de Venezuela", "PST": "hora estándar del Pacífico", "CHADT": "hora de verano de Chatham", "WAT": "hora estándar de África occidental", "AKST": "hora estándar de Alaska", "PDT": "hora de verano del Pacífico", "MESZ": "hora de verano de Europa central", "LHST": "hora estándar de Lord Howe", "HNCU": "hora estándar de Cuba", "MST": "Hora estándar de Macao", "ACWDT": "hora de verano de Australia centroccidental", "JST": "hora estándar de Japón", "GMT": "hora del meridiano de Greenwich", "EST": "hora estándar oriental", "ADT": "hora de verano del Atlántico", "HAT": "hora de verano de Terranova", "SAST": "hora de Sudáfrica", "WART": "hora estándar de Argentina occidental", "HEPMX": "hora de verano del Pacífico de México", "HEPM": "hora de verano de San Pedro y Miquelón", "TMT": "hora estándar de Turkmenistán", "COT": "hora estándar de Colombia", "HAST": "hora estándar de Hawái-Aleutiano", "ART": "hora estándar de Argentina", "AEST": "hora estándar de Australia oriental", "CLST": "hora de verano de Chile", "HEEG": "hora de verano de Groenlandia oriental", "EAT": "hora de África oriental", "HADT": "hora de verano de Hawái-Aleutiano", "WIT": "hora de Indonesia oriental", "CHAST": "hora estándar de Chatham", "AKDT": "hora de verano de Alaska", "AST": "hora estándar del Atlántico", "HNT": "hora estándar de Terranova", "AWST": "hora estándar de Australia occidental", "BOT": "hora de Bolivia", "HENOMX": "hora de verano del noroeste de México", "SGT": "hora de Singapur", "WIB": "hora de Indonesia occidental"},
+ timezones: map[string]string{"TMST": "hora de verano de Turkmenistán", "MDT": "hora de verano de las Montañas", "JST": "hora estándar de Japón", "WESZ": "hora de verano de Europa occidental", "EST": "hora estándar oriental", "HNNOMX": "hora estándar del noroeste de México", "CHAST": "hora estándar de Chatham", "HAST": "hora estándar de Hawái-Aleutiano", "ACWDT": "hora de verano de Australia centroccidental", "ARST": "hora de verano de Argentina", "WAT": "hora estándar de África occidental", "GFT": "hora de la Guayana Francesa", "UYT": "hora estándar de Uruguay", "HECU": "hora de verano de Cuba", "EDT": "hora de verano oriental", "HKST": "hora de verano de Hong Kong", "HENOMX": "hora de verano del noroeste de México", "HEPM": "hora de verano de San Pedro y Miquelón", "HADT": "hora de verano de Hawái-Aleutiano", "WEZ": "hora estándar de Europa occidental", "WARST": "hora de verano de Argentina occidental", "AEDT": "hora de verano de Australia oriental", "CST": "hora estándar central", "MEZ": "hora estándar de Europa central", "PST": "hora estándar del Pacífico", "MESZ": "hora de verano de Europa central", "OESZ": "hora de verano de Europa oriental", "WART": "hora estándar de Argentina occidental", "MST": "hora estándar de las Montañas", "WIT": "hora de Indonesia oriental", "SGT": "hora de Singapur", "CLT": "hora estándar de Chile", "HEOG": "hora de verano de Groenlandia occidental", "ACDT": "hora de verano de Australia central", "ECT": "hora de Ecuador", "CAT": "hora de África central", "JDT": "hora de verano de Japón", "EAT": "hora de África oriental", "WIB": "hora de Indonesia occidental", "NZDT": "hora de verano de Nueva Zelanda", "ADT": "hora de verano del Atlántico", "GMT": "hora del meridiano de Greenwich", "AEST": "hora estándar de Australia oriental", "ChST": "hora estándar de Chamorro", "HNPMX": "hora estándar del Pacífico de México", "ACST": "hora estándar de Australia central", "GYT": "hora de Guyana", "ACWST": "hora estándar de Australia centroccidental", "AST": "hora estándar del Atlántico", "COST": "hora de verano de Colombia", "AKST": "hora estándar de Alaska", "MYT": "hora de Malasia", "COT": "hora estándar de Colombia", "HNOG": "hora estándar de Groenlandia occidental", "WITA": "hora de Indonesia central", "HEPMX": "hora de verano del Pacífico de México", "CLST": "hora de verano de Chile", "IST": "hora estándar de la India", "AKDT": "hora de verano de Alaska", "HNPM": "hora estándar de San Pedro y Miquelón", "PDT": "hora de verano del Pacífico", "CDT": "hora de verano central", "ART": "hora estándar de Argentina", "BT": "hora de Bután", "HNT": "hora estándar de Terranova", "SRT": "hora de Surinam", "OEZ": "hora estándar de Europa oriental", "HKT": "hora estándar de Hong Kong", "HEEG": "hora de verano de Groenlandia oriental", "∅∅∅": "Hora de verano de Acre", "LHST": "hora estándar de Lord Howe", "LHDT": "hora de verano de Lord Howe", "AWDT": "hora de verano de Australia occidental", "VET": "hora de Venezuela", "TMT": "hora estándar de Turkmenistán", "WAST": "hora de verano de África occidental", "HAT": "hora de verano de Terranova", "UYST": "hora de verano de Uruguay", "SAST": "hora de Sudáfrica", "CHADT": "hora de verano de Chatham", "BOT": "hora de Bolivia", "NZST": "hora estándar de Nueva Zelanda", "HNEG": "hora estándar de Groenlandia oriental", "HNCU": "hora estándar de Cuba", "AWST": "hora estándar de Australia occidental"},
}
}
diff --git a/es_GQ/es_GQ.go b/es_GQ/es_GQ.go
index 041399bb..7e8eae70 100644
--- a/es_GQ/es_GQ.go
+++ b/es_GQ/es_GQ.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"PDT": "hora de verano del Pacífico", "ART": "hora estándar de Argentina", "HEPM": "hora de verano de San Pedro y Miquelón", "IST": "hora estándar de la India", "HAST": "hora estándar de Hawái-Aleutiano", "PST": "hora estándar del Pacífico", "HADT": "hora de verano de Hawái-Aleutiano", "HEOG": "hora de verano de Groenlandia occidental", "WITA": "hora de Indonesia central", "LHST": "hora estándar de Lord Howe", "EDT": "hora de verano oriental", "HNPMX": "hora estándar del Pacífico de México", "ACWST": "hora estándar de Australia centroccidental", "ACWDT": "hora de verano de Australia centroccidental", "AWST": "hora estándar de Australia occidental", "HKST": "hora de verano de Hong Kong", "HNPM": "hora estándar de San Pedro y Miquelón", "SRT": "hora de Surinam", "WEZ": "hora estándar de Europa occidental", "MDT": "Hora de verano de Macao", "AEDT": "hora de verano de Australia oriental", "HKT": "hora estándar de Hong Kong", "SAST": "hora de Sudáfrica", "SGT": "hora de Singapur", "HNCU": "hora estándar de Cuba", "ECT": "hora de Ecuador", "HNNOMX": "hora estándar del noroeste de México", "UYST": "hora de verano de Uruguay", "ADT": "hora de verano del Atlántico", "GFT": "hora de la Guayana Francesa", "TMT": "hora estándar de Turkmenistán", "EAT": "hora de África oriental", "OESZ": "hora de verano de Europa oriental", "AKST": "hora estándar de Alaska", "ChST": "hora estándar de Chamorro", "ACST": "hora estándar de Australia central", "CHADT": "hora de verano de Chatham", "AKDT": "hora de verano de Alaska", "NZST": "hora estándar de Nueva Zelanda", "OEZ": "hora estándar de Europa oriental", "WART": "hora estándar de Argentina occidental", "MST": "Hora estándar de Macao", "UYT": "hora estándar de Uruguay", "VET": "hora de Venezuela", "WIT": "hora de Indonesia oriental", "ACDT": "hora de verano de Australia central", "CAT": "hora de África central", "LHDT": "hora de verano de Lord Howe", "BT": "hora de Bután", "HNOG": "hora estándar de Groenlandia occidental", "HENOMX": "hora de verano del noroeste de México", "HEPMX": "hora de verano del Pacífico de México", "AWDT": "hora de verano de Australia occidental", "∅∅∅": "hora de verano del Amazonas", "HEEG": "hora de verano de Groenlandia oriental", "GMT": "hora del meridiano de Greenwich", "WESZ": "hora de verano de Europa occidental", "JST": "hora estándar de Japón", "BOT": "hora de Bolivia", "WAST": "hora de verano de África occidental", "WARST": "hora de verano de Argentina occidental", "HECU": "hora de verano de Cuba", "GYT": "hora de Guyana", "CDT": "hora de verano central", "AST": "hora estándar del Atlántico", "JDT": "hora de verano de Japón", "HNEG": "hora estándar de Groenlandia oriental", "NZDT": "hora de verano de Nueva Zelanda", "WIB": "hora de Indonesia occidental", "MESZ": "hora de verano de Europa central", "MEZ": "hora estándar de Europa central", "COT": "hora estándar de Colombia", "EST": "hora estándar oriental", "WAT": "hora estándar de África occidental", "CST": "hora estándar central", "HNT": "hora estándar de Terranova", "HAT": "hora de verano de Terranova", "CHAST": "hora estándar de Chatham", "CLT": "hora estándar de Chile", "CLST": "hora de verano de Chile", "TMST": "hora de verano de Turkmenistán", "AEST": "hora estándar de Australia oriental", "ARST": "hora de verano de Argentina", "COST": "hora de verano de Colombia", "MYT": "hora de Malasia"},
+ timezones: map[string]string{"HNCU": "hora estándar de Cuba", "CAT": "hora de África central", "MDT": "Hora de verano de Macao", "HNEG": "hora estándar de Groenlandia oriental", "ChST": "hora estándar de Chamorro", "COT": "hora estándar de Colombia", "AEST": "hora estándar de Australia oriental", "AKST": "hora estándar de Alaska", "HEPM": "hora de verano de San Pedro y Miquelón", "CST": "hora estándar central", "BOT": "hora de Bolivia", "ACWDT": "hora de verano de Australia centroccidental", "CLT": "hora estándar de Chile", "WIB": "hora de Indonesia occidental", "CDT": "hora de verano central", "CHADT": "hora de verano de Chatham", "IST": "hora estándar de la India", "ARST": "hora de verano de Argentina", "HENOMX": "hora de verano del noroeste de México", "HAT": "hora de verano de Terranova", "AKDT": "hora de verano de Alaska", "HECU": "hora de verano de Cuba", "AWST": "hora estándar de Australia occidental", "NZDT": "hora de verano de Nueva Zelanda", "JDT": "hora de verano de Japón", "ART": "hora estándar de Argentina", "SAST": "hora de Sudáfrica", "OEZ": "hora estándar de Europa oriental", "WEZ": "hora estándar de Europa occidental", "TMST": "hora de verano de Turkmenistán", "HNT": "hora estándar de Terranova", "PDT": "hora de verano del Pacífico", "HADT": "hora de verano de Hawái-Aleutiano", "UYT": "hora estándar de Uruguay", "HNPM": "hora estándar de San Pedro y Miquelón", "GMT": "hora del meridiano de Greenwich", "HKT": "hora estándar de Hong Kong", "WAT": "hora estándar de África occidental", "ACDT": "hora de verano de Australia central", "AEDT": "hora de verano de Australia oriental", "HNPMX": "hora estándar del Pacífico de México", "CHAST": "hora estándar de Chatham", "MYT": "hora de Malasia", "ADT": "hora de verano del Atlántico", "EDT": "hora de verano oriental", "HNNOMX": "hora estándar del noroeste de México", "LHST": "hora estándar de Lord Howe", "ECT": "hora de Ecuador", "WESZ": "hora de verano de Europa occidental", "WART": "hora estándar de Argentina occidental", "MST": "Hora estándar de Macao", "AST": "hora estándar del Atlántico", "TMT": "hora estándar de Turkmenistán", "COST": "hora de verano de Colombia", "AWDT": "hora de verano de Australia occidental", "ACWST": "hora estándar de Australia centroccidental", "JST": "hora estándar de Japón", "CLST": "hora de verano de Chile", "GYT": "hora de Guyana", "SGT": "hora de Singapur", "HAST": "hora estándar de Hawái-Aleutiano", "MEZ": "hora estándar de Europa central", "HEPMX": "hora de verano del Pacífico de México", "OESZ": "hora de verano de Europa oriental", "WITA": "hora de Indonesia central", "HEEG": "hora de verano de Groenlandia oriental", "GFT": "hora de la Guayana Francesa", "VET": "hora de Venezuela", "MESZ": "hora de verano de Europa central", "HEOG": "hora de verano de Groenlandia occidental", "WAST": "hora de verano de África occidental", "EST": "hora estándar oriental", "HKST": "hora de verano de Hong Kong", "SRT": "hora de Surinam", "PST": "hora estándar del Pacífico", "NZST": "hora estándar de Nueva Zelanda", "WARST": "hora de verano de Argentina occidental", "HNOG": "hora estándar de Groenlandia occidental", "WIT": "hora de Indonesia oriental", "ACST": "hora estándar de Australia central", "BT": "hora de Bután", "LHDT": "hora de verano de Lord Howe", "∅∅∅": "hora de verano de Brasilia", "UYST": "hora de verano de Uruguay", "EAT": "hora de África oriental"},
}
}
diff --git a/es_GT/es_GT.go b/es_GT/es_GT.go
index c1a25ebc..173c60b0 100644
--- a/es_GT/es_GT.go
+++ b/es_GT/es_GT.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"JDT": "hora de verano de Japón", "COST": "hora de verano de Colombia", "GYT": "hora de Guyana", "SRT": "hora de Surinam", "HNT": "hora estándar de Terranova", "IST": "hora estándar de la India", "HEPM": "hora de verano de San Pedro y Miquelón", "SAST": "hora de Sudáfrica", "ChST": "hora estándar de Chamorro", "BOT": "hora de Bolivia", "CAT": "hora de África central", "MST": "hora estándar de las Montañas", "VET": "hora de Venezuela", "HAT": "hora de verano de Terranova", "HNPMX": "hora estándar del Pacífico de México", "ECT": "hora de Ecuador", "HADT": "hora de verano de Hawái-Aleutiano", "∅∅∅": "hora de verano del Amazonas", "OESZ": "hora de verano de Europa oriental", "TMST": "hora de verano de Turkmenistán", "ACST": "hora estándar de Australia central", "CST": "hora estándar central", "MDT": "hora de verano de las Montañas", "WESZ": "hora de verano de Europa occidental", "LHST": "hora estándar de Lord Howe", "WIB": "hora de Indonesia occidental", "AEST": "hora estándar de Australia oriental", "GFT": "hora de la Guayana Francesa", "TMT": "hora estándar de Turkmenistán", "HECU": "hora de verano de Cuba", "MYT": "hora de Malasia", "PST": "hora estándar del Pacífico", "HKST": "hora de verano de Hong Kong", "CLT": "hora estándar de Chile", "HEEG": "hora de verano de Groenlandia oriental", "AKST": "hora estándar de Alaska", "AWST": "hora estándar de Australia occidental", "CHAST": "hora estándar de Chatham", "JST": "hora estándar de Japón", "WARST": "hora de verano de Argentina occidental", "GMT": "hora del meridiano de Greenwich", "HNOG": "hora estándar de Groenlandia occidental", "MEZ": "hora estándar de Europa central", "ACDT": "hora de verano de Australia central", "LHDT": "hora de verano de Lord Howe", "HENOMX": "hora de verano del noroeste de México", "WART": "hora estándar de Argentina occidental", "SGT": "hora de Singapur", "AEDT": "hora de verano de Australia oriental", "NZST": "hora estándar de Nueva Zelanda", "MESZ": "hora de verano de Europa central", "ADT": "hora de verano del Atlántico", "UYST": "hora de verano de Uruguay", "AWDT": "hora de verano de Australia occidental", "WAST": "hora de verano de África occidental", "AST": "hora estándar del Atlántico", "NZDT": "hora de verano de Nueva Zelanda", "CHADT": "hora de verano de Chatham", "OEZ": "hora estándar de Europa oriental", "HNCU": "hora estándar de Cuba", "EST": "hora estándar oriental", "WIT": "hora de Indonesia oriental", "ACWST": "hora estándar de Australia centroccidental", "PDT": "hora de verano del Pacífico", "HAST": "hora estándar de Hawái-Aleutiano", "BT": "hora de Bután", "CDT": "hora de verano central", "COT": "hora estándar de Colombia", "HEPMX": "hora de verano del Pacífico de México", "HEOG": "hora de verano de Groenlandia occidental", "WAT": "hora estándar de África occidental", "HNNOMX": "hora estándar del noroeste de México", "HNEG": "hora estándar de Groenlandia oriental", "EAT": "hora de África oriental", "UYT": "hora estándar de Uruguay", "ARST": "hora de verano de Argentina", "HKT": "hora estándar de Hong Kong", "WITA": "hora de Indonesia central", "EDT": "hora de verano oriental", "AKDT": "hora de verano de Alaska", "ACWDT": "hora de verano de Australia centroccidental", "ART": "hora estándar de Argentina", "HNPM": "hora estándar de San Pedro y Miquelón", "WEZ": "hora estándar de Europa occidental", "CLST": "hora de verano de Chile"},
+ timezones: map[string]string{"ACWDT": "hora de verano de Australia centroccidental", "AEDT": "hora de verano de Australia oriental", "UYT": "hora estándar de Uruguay", "WIB": "hora de Indonesia occidental", "BOT": "hora de Bolivia", "MEZ": "hora estándar de Europa central", "ACST": "hora estándar de Australia central", "AKDT": "hora de verano de Alaska", "ECT": "hora de Ecuador", "WART": "hora estándar de Argentina occidental", "WAST": "hora de verano de África occidental", "GFT": "hora de la Guayana Francesa", "AKST": "hora estándar de Alaska", "WAT": "hora estándar de África occidental", "HENOMX": "hora de verano del noroeste de México", "AWST": "hora estándar de Australia occidental", "HADT": "hora de verano de Hawái-Aleutiano", "VET": "hora de Venezuela", "JST": "hora estándar de Japón", "HNOG": "hora estándar de Groenlandia occidental", "MDT": "Hora de verano de Macao", "ChST": "hora estándar de Chamorro", "EAT": "hora de África oriental", "HECU": "hora de verano de Cuba", "MESZ": "hora de verano de Europa central", "ACDT": "hora de verano de Australia central", "COST": "hora de verano de Colombia", "HNEG": "hora estándar de Groenlandia oriental", "LHST": "hora estándar de Lord Howe", "LHDT": "hora de verano de Lord Howe", "∅∅∅": "hora de verano de Brasilia", "ACWST": "hora estándar de Australia centroccidental", "NZDT": "hora de verano de Nueva Zelanda", "CLST": "hora de verano de Chile", "HEOG": "hora de verano de Groenlandia occidental", "WITA": "hora de Indonesia central", "COT": "hora estándar de Colombia", "HNPM": "hora estándar de San Pedro y Miquelón", "SRT": "hora de Surinam", "GYT": "hora de Guyana", "WIT": "hora de Indonesia oriental", "AWDT": "hora de verano de Australia occidental", "JDT": "hora de verano de Japón", "TMST": "hora de verano de Turkmenistán", "ART": "hora estándar de Argentina", "EDT": "hora de verano oriental", "BT": "hora de Bután", "CST": "hora estándar central", "CDT": "hora de verano central", "PST": "hora estándar del Pacífico", "IST": "hora estándar de la India", "NZST": "hora estándar de Nueva Zelanda", "WEZ": "hora estándar de Europa occidental", "MYT": "hora de Malasia", "OESZ": "hora de verano de Europa oriental", "HEPM": "hora de verano de San Pedro y Miquelón", "HAST": "hora estándar de Hawái-Aleutiano", "WARST": "hora de verano de Argentina occidental", "TMT": "hora estándar de Turkmenistán", "HKT": "hora estándar de Hong Kong", "HAT": "hora de verano de Terranova", "HNCU": "hora estándar de Cuba", "SGT": "hora de Singapur", "CLT": "hora estándar de Chile", "HNT": "hora estándar de Terranova", "AEST": "hora estándar de Australia oriental", "CHAST": "hora estándar de Chatham", "ADT": "hora de verano del Atlántico", "OEZ": "hora estándar de Europa oriental", "GMT": "hora del meridiano de Greenwich", "HEEG": "hora de verano de Groenlandia oriental", "UYST": "hora de verano de Uruguay", "SAST": "hora de Sudáfrica", "PDT": "hora de verano del Pacífico", "CAT": "hora de África central", "WESZ": "hora de verano de Europa occidental", "MST": "Hora estándar de Macao", "EST": "hora estándar oriental", "HNNOMX": "hora estándar del noroeste de México", "HNPMX": "hora estándar del Pacífico de México", "HEPMX": "hora de verano del Pacífico de México", "CHADT": "hora de verano de Chatham", "AST": "hora estándar del Atlántico", "ARST": "hora de verano de Argentina", "HKST": "hora de verano de Hong Kong"},
}
}
diff --git a/es_HN/es_HN.go b/es_HN/es_HN.go
index a82fbc2e..4b30b100 100644
--- a/es_HN/es_HN.go
+++ b/es_HN/es_HN.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"SAST": "hora de Sudáfrica", "TMT": "hora estándar de Turkmenistán", "SGT": "hora de Singapur", "ADT": "hora de verano del Atlántico", "HNOG": "hora estándar de Groenlandia occidental", "HEOG": "hora de verano de Groenlandia occidental", "ACWDT": "hora de verano de Australia centroccidental", "ARST": "hora de verano de Argentina", "AWST": "hora estándar de Australia occidental", "AWDT": "hora de verano de Australia occidental", "HNNOMX": "hora estándar del noroeste de México", "AKDT": "hora de verano de Alaska", "UYST": "hora de verano de Uruguay", "CDT": "hora de verano central", "AST": "hora estándar del Atlántico", "VET": "hora de Venezuela", "HNPM": "hora estándar de San Pedro y Miquelón", "CHAST": "hora estándar de Chatham", "EAT": "hora de África oriental", "OEZ": "hora estándar de Europa oriental", "WESZ": "hora de verano de Europa occidental", "AEST": "hora estándar de Australia oriental", "TMST": "hora de verano de Turkmenistán", "GYT": "hora de Guyana", "EST": "hora estándar oriental", "LHDT": "hora de verano de Lord Howe", "CHADT": "hora de verano de Chatham", "HNEG": "hora estándar de Groenlandia oriental", "COST": "hora de verano de Colombia", "HNT": "hora estándar de Terranova", "ART": "hora estándar de Argentina", "HEPM": "hora de verano de San Pedro y Miquelón", "ACST": "hora estándar de Australia central", "COT": "hora estándar de Colombia", "HECU": "hora de verano de Cuba", "HAST": "hora estándar de Hawái-Aleutiano", "ACWST": "hora estándar de Australia centroccidental", "IST": "hora estándar de la India", "ACDT": "hora de verano de Australia central", "WARST": "hora de verano de Argentina occidental", "UYT": "hora estándar de Uruguay", "MDT": "Hora de verano de Macao", "HNPMX": "hora estándar del Pacífico de México", "WIB": "hora de Indonesia occidental", "WIT": "hora de Indonesia oriental", "NZST": "hora estándar de Nueva Zelanda", "WART": "hora estándar de Argentina occidental", "HENOMX": "hora de verano del noroeste de México", "HNCU": "hora estándar de Cuba", "PDT": "hora de verano del Pacífico", "WEZ": "hora estándar de Europa occidental", "HKST": "hora de verano de Hong Kong", "ECT": "hora de Ecuador", "MYT": "hora de Malasia", "SRT": "hora de Surinam", "GMT": "hora del meridiano de Greenwich", "PST": "hora estándar del Pacífico", "AEDT": "hora de verano de Australia oriental", "MEZ": "hora estándar de Europa central", "GFT": "hora de la Guayana Francesa", "CAT": "hora de África central", "ChST": "hora estándar de Chamorro", "OESZ": "hora de verano de Europa oriental", "MST": "Hora estándar de Macao", "HAT": "hora de verano de Terranova", "CLST": "hora de verano de Chile", "HEPMX": "hora de verano del Pacífico de México", "BT": "hora de Bután", "HKT": "hora estándar de Hong Kong", "WITA": "hora de Indonesia central", "JDT": "hora de verano de Japón", "HADT": "hora de verano de Hawái-Aleutiano", "MESZ": "hora de verano de Europa central", "LHST": "hora estándar de Lord Howe", "WAT": "hora estándar de África occidental", "AKST": "hora estándar de Alaska", "CST": "hora estándar central", "NZDT": "hora de verano de Nueva Zelanda", "∅∅∅": "hora de verano del Amazonas", "BOT": "hora de Bolivia", "EDT": "hora de verano oriental", "CLT": "hora estándar de Chile", "JST": "hora estándar de Japón", "HEEG": "hora de verano de Groenlandia oriental", "WAST": "hora de verano de África occidental"},
+ timezones: map[string]string{"ACWDT": "hora de verano de Australia centroccidental", "VET": "hora de Venezuela", "MDT": "Hora de verano de Macao", "HNNOMX": "hora estándar del noroeste de México", "HNPMX": "hora estándar del Pacífico de México", "HNCU": "hora estándar de Cuba", "CHAST": "hora estándar de Chatham", "NZDT": "hora de verano de Nueva Zelanda", "JDT": "hora de verano de Japón", "AST": "hora estándar del Atlántico", "OEZ": "hora estándar de Europa oriental", "CLT": "hora estándar de Chile", "EAT": "hora de África oriental", "HKT": "hora estándar de Hong Kong", "GMT": "hora del meridiano de Greenwich", "ChST": "hora estándar de Chamorro", "WEZ": "hora estándar de Europa occidental", "ACWST": "hora estándar de Australia centroccidental", "LHDT": "hora de verano de Lord Howe", "AWST": "hora estándar de Australia occidental", "ECT": "hora de Ecuador", "NZST": "hora estándar de Nueva Zelanda", "HEOG": "hora de verano de Groenlandia occidental", "ADT": "hora de verano del Atlántico", "WAT": "hora estándar de África occidental", "LHST": "hora estándar de Lord Howe", "GFT": "hora de la Guayana Francesa", "HAT": "hora de verano de Terranova", "EDT": "hora de verano oriental", "CDT": "hora de verano central", "SRT": "hora de Surinam", "WIT": "hora de Indonesia oriental", "AWDT": "hora de verano de Australia occidental", "CHADT": "hora de verano de Chatham", "HAST": "hora estándar de Hawái-Aleutiano", "MESZ": "hora de verano de Europa central", "WARST": "hora de verano de Argentina occidental", "SAST": "hora de Sudáfrica", "COST": "hora de verano de Colombia", "MST": "Hora estándar de Macao", "ARST": "hora de verano de Argentina", "WITA": "hora de Indonesia central", "OESZ": "hora de verano de Europa oriental", "PDT": "hora de verano del Pacífico", "HADT": "hora de verano de Hawái-Aleutiano", "CAT": "hora de África central", "HNOG": "hora estándar de Groenlandia occidental", "TMT": "hora estándar de Turkmenistán", "TMST": "hora de verano de Turkmenistán", "HKST": "hora de verano de Hong Kong", "PST": "hora estándar del Pacífico", "ART": "hora estándar de Argentina", "AKST": "hora estándar de Alaska", "MEZ": "hora estándar de Europa central", "∅∅∅": "hora de verano de las Azores", "CST": "hora estándar central", "WART": "hora estándar de Argentina occidental", "HNEG": "hora estándar de Groenlandia oriental", "AEST": "hora estándar de Australia oriental", "AEDT": "hora de verano de Australia oriental", "HEPMX": "hora de verano del Pacífico de México", "ACST": "hora estándar de Australia central", "HENOMX": "hora de verano del noroeste de México", "WIB": "hora de Indonesia occidental", "HECU": "hora de verano de Cuba", "SGT": "hora de Singapur", "IST": "hora estándar de la India", "HNT": "hora estándar de Terranova", "UYT": "hora estándar de Uruguay", "UYST": "hora de verano de Uruguay", "HNPM": "hora estándar de San Pedro y Miquelón", "GYT": "hora de Guyana", "WAST": "hora de verano de África occidental", "EST": "hora estándar oriental", "COT": "hora estándar de Colombia", "BT": "hora de Bután", "HEPM": "hora de verano de San Pedro y Miquelón", "WESZ": "hora de verano de Europa occidental", "AKDT": "hora de verano de Alaska", "BOT": "hora de Bolivia", "MYT": "hora de Malasia", "CLST": "hora de verano de Chile", "ACDT": "hora de verano de Australia central", "HEEG": "hora de verano de Groenlandia oriental", "JST": "hora estándar de Japón"},
}
}
diff --git a/es_IC/es_IC.go b/es_IC/es_IC.go
index cbaa58dd..177ab6bf 100644
--- a/es_IC/es_IC.go
+++ b/es_IC/es_IC.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"WIT": "hora de Indonesia oriental", "HEPM": "hora de verano de San Pedro y Miquelón", "COST": "hora de verano de Colombia", "HENOMX": "hora de verano del noroeste de México", "SGT": "hora de Singapur", "AKST": "hora estándar de Alaska", "WEZ": "hora estándar de Europa occidental", "AWST": "hora estándar de Australia occidental", "HNPM": "hora estándar de San Pedro y Miquelón", "LHST": "hora estándar de Lord Howe", "TMT": "hora estándar de Turkmenistán", "ACST": "hora estándar de Australia central", "HEPMX": "hora de verano del Pacífico de México", "UYST": "hora de verano de Uruguay", "HEOG": "hora de verano de Groenlandia occidental", "ACWDT": "hora de verano de Australia centroccidental", "TMST": "hora de verano de Turkmenistán", "CAT": "hora de África central", "WAT": "hora estándar de África occidental", "WART": "hora estándar de Argentina occidental", "ADT": "hora de verano del Atlántico", "HKT": "hora estándar de Hong Kong", "MEZ": "hora estándar de Europa central", "LHDT": "hora de verano de Lord Howe", "JDT": "hora de verano de Japón", "EST": "hora estándar oriental", "CST": "hora estándar central", "CDT": "hora de verano central", "WESZ": "hora de verano de Europa occidental", "ECT": "hora de Ecuador", "MDT": "Hora de verano de Macao", "AKDT": "hora de verano de Alaska", "SRT": "hora de Surinam", "AWDT": "hora de verano de Australia occidental", "CHAST": "hora estándar de Chatham", "GFT": "hora de la Guayana Francesa", "HNNOMX": "hora estándar del noroeste de México", "GYT": "hora de Guyana", "HADT": "hora de verano de Hawái-Aleutiano", "ACWST": "hora estándar de Australia centroccidental", "HAT": "hora de verano de Terranova", "JST": "hora estándar de Japón", "MYT": "hora de Malasia", "VET": "hora de Venezuela", "∅∅∅": "hora de verano del Amazonas", "HNCU": "hora estándar de Cuba", "WIB": "hora de Indonesia occidental", "HNOG": "hora estándar de Groenlandia occidental", "ART": "hora estándar de Argentina", "WAST": "hora de verano de África occidental", "COT": "hora estándar de Colombia", "WITA": "hora de Indonesia central", "BOT": "hora de Bolivia", "EAT": "hora de África oriental", "MST": "Hora estándar de Macao", "AST": "hora estándar del Atlántico", "HNT": "hora estándar de Terranova", "AEST": "hora estándar de Australia oriental", "HKST": "hora de verano de Hong Kong", "HECU": "hora de verano de Cuba", "EDT": "hora de verano oriental", "CHADT": "hora de verano de Chatham", "SAST": "hora de Sudáfrica", "CLT": "hora estándar de Chile", "HEEG": "hora de verano de Groenlandia oriental", "CLST": "hora de verano de Chile", "OEZ": "hora estándar de Europa oriental", "WARST": "hora de verano de Argentina occidental", "UYT": "hora estándar de Uruguay", "HAST": "hora estándar de Hawái-Aleutiano", "BT": "hora de Bután", "ARST": "hora de verano de Argentina", "MESZ": "hora de verano de Europa central", "PST": "hora estándar del Pacífico", "NZDT": "hora de verano de Nueva Zelanda", "IST": "hora estándar de la India", "OESZ": "hora de verano de Europa oriental", "GMT": "hora del meridiano de Greenwich", "NZST": "hora estándar de Nueva Zelanda", "HNEG": "hora estándar de Groenlandia oriental", "HNPMX": "hora estándar del Pacífico de México", "PDT": "hora de verano del Pacífico", "AEDT": "hora de verano de Australia oriental", "ChST": "hora estándar de Chamorro", "ACDT": "hora de verano de Australia central"},
+ timezones: map[string]string{"PDT": "hora de verano del Pacífico", "IST": "hora estándar de la India", "WITA": "hora de Indonesia central", "HAST": "hora estándar de Hawái-Aleutiano", "NZDT": "hora de verano de Nueva Zelanda", "ACDT": "hora de verano de Australia central", "COT": "hora estándar de Colombia", "BT": "hora de Bután", "ART": "hora estándar de Argentina", "HKT": "hora estándar de Hong Kong", "WART": "hora estándar de Argentina occidental", "AST": "hora estándar del Atlántico", "VET": "hora de Venezuela", "HECU": "hora de verano de Cuba", "SGT": "hora de Singapur", "PST": "hora estándar del Pacífico", "AEDT": "hora de verano de Australia oriental", "UYST": "hora de verano de Uruguay", "GYT": "hora de Guyana", "CST": "hora estándar central", "WIT": "hora de Indonesia oriental", "WAT": "hora estándar de África occidental", "WAST": "hora de verano de África occidental", "HNEG": "hora estándar de Groenlandia oriental", "CHAST": "hora estándar de Chatham", "HNCU": "hora estándar de Cuba", "WIB": "hora de Indonesia occidental", "ECT": "hora de Ecuador", "ACWDT": "hora de verano de Australia centroccidental", "JST": "hora estándar de Japón", "HNNOMX": "hora estándar del noroeste de México", "HAT": "hora de verano de Terranova", "∅∅∅": "hora de verano de Perú", "AKDT": "hora de verano de Alaska", "HNPM": "hora estándar de San Pedro y Miquelón", "EAT": "hora de África oriental", "ACST": "hora estándar de Australia central", "CDT": "hora de verano central", "AWST": "hora estándar de Australia occidental", "OESZ": "hora de verano de Europa oriental", "TMT": "hora estándar de Turkmenistán", "HKST": "hora de verano de Hong Kong", "LHST": "hora estándar de Lord Howe", "HEPMX": "hora de verano del Pacífico de México", "HNOG": "hora estándar de Groenlandia occidental", "ADT": "hora de verano del Atlántico", "MST": "Hora estándar de Macao", "SAST": "hora de Sudáfrica", "ACWST": "hora estándar de Australia centroccidental", "MEZ": "hora estándar de Europa central", "HEOG": "hora de verano de Groenlandia occidental", "HENOMX": "hora de verano del noroeste de México", "UYT": "hora estándar de Uruguay", "HNPMX": "hora estándar del Pacífico de México", "NZST": "hora estándar de Nueva Zelanda", "JDT": "hora de verano de Japón", "CLST": "hora de verano de Chile", "MDT": "Hora de verano de Macao", "COST": "hora de verano de Colombia", "EST": "hora estándar oriental", "HNT": "hora estándar de Terranova", "AKST": "hora estándar de Alaska", "HEPM": "hora de verano de San Pedro y Miquelón", "CHADT": "hora de verano de Chatham", "WEZ": "hora estándar de Europa occidental", "WESZ": "hora de verano de Europa occidental", "TMST": "hora de verano de Turkmenistán", "HADT": "hora de verano de Hawái-Aleutiano", "EDT": "hora de verano oriental", "ChST": "hora estándar de Chamorro", "AWDT": "hora de verano de Australia occidental", "CLT": "hora estándar de Chile", "OEZ": "hora estándar de Europa oriental", "GMT": "hora del meridiano de Greenwich", "GFT": "hora de la Guayana Francesa", "AEST": "hora estándar de Australia oriental", "BOT": "hora de Bolivia", "CAT": "hora de África central", "MESZ": "hora de verano de Europa central", "WARST": "hora de verano de Argentina occidental", "MYT": "hora de Malasia", "ARST": "hora de verano de Argentina", "HEEG": "hora de verano de Groenlandia oriental", "LHDT": "hora de verano de Lord Howe", "SRT": "hora de Surinam"},
}
}
diff --git a/es_MX/es_MX.go b/es_MX/es_MX.go
index 412c44a7..5a7433e2 100644
--- a/es_MX/es_MX.go
+++ b/es_MX/es_MX.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"EDT": "hora de verano oriental", "MDT": "Hora de verano de Macao", "HAT": "hora de verano de Terranova", "LHST": "Hora estándar de Lord Howe", "GFT": "Hora de la Guayana Francesa", "TMT": "Hora estándar de Turkmenistán", "ECT": "Hora de Ecuador", "HNNOMX": "hora estándar del noroeste de México", "ACWDT": "Hora de verano de Australia Centroccidental", "HEPM": "hora de verano de San Pedro y Miquelón", "HNEG": "hora estándar de Groenlandia oriental", "HKT": "hora estándar de Hong Kong", "SAST": "Hora de Sudáfrica", "CLT": "hora estándar de Chile", "JDT": "hora de verano de Japón", "EAT": "Hora de África Oriental", "HENOMX": "hora de verano del noroeste de México", "HEPMX": "hora de verano del Pacífico de México", "WEZ": "Hora estándar de Europa Occidental", "CHAST": "Hora estándar de Chatham", "CHADT": "Hora de verano de Chatham", "IST": "hora estándar de la India", "CLST": "hora de verano de Chile", "JST": "hora estándar de Japón", "ChST": "Hora estándar de Chamorro", "MYT": "hora de Malasia", "HNOG": "hora estándar de Groenlandia occidental", "HKST": "hora de verano de Hong Kong", "BOT": "hora de Bolivia", "WIB": "hora de Indonesia occidental", "VET": "Hora de Venezuela", "WESZ": "Hora de verano de Europa Occidental", "ACWST": "Hora estándar de Australia Centroccidental", "SGT": "hora de Singapur", "BT": "hora de Bután", "AEDT": "Hora de verano de Australia Oriental", "TMST": "Hora de verano de Turkmenistán", "CAT": "Hora de África Central", "WAT": "Hora estándar de África Occidental", "OESZ": "Hora de verano de Europa del Este", "HNCU": "hora estándar de Cuba", "ADT": "hora de verano del Atlántico", "PDT": "hora de verano del Pacífico", "HNT": "hora estándar de Terranova", "ART": "hora estándar de Argentina", "ARST": "hora de verano de Argentina", "AWST": "Hora estándar de Australia Occidental", "LHDT": "Hora de verano de Lord Howe", "NZDT": "Hora de verano de Nueva Zelanda", "EST": "hora estándar oriental", "CDT": "hora de verano central", "WIT": "hora de Indonesia oriental", "AWDT": "Hora de verano de Australia Occidental", "NZST": "Hora estándar de Nueva Zelanda", "GMT": "Hora del meridiano de Greenwich", "MST": "Hora estándar de Macao", "HNPMX": "hora estándar del Pacífico de México", "SRT": "Hora de Surinam", "HEEG": "hora de verano de Groenlandia oriental", "OEZ": "Hora estándar de Europa del Este", "UYT": "Hora estándar de Uruguay", "UYST": "Hora de verano de Uruguay", "PST": "hora estándar del Pacífico", "MEZ": "Hora estándar de Europa Central", "MESZ": "Hora de verano de Europa Central", "ACST": "Hora estándar de Australia Central", "CST": "hora estándar central", "COT": "Hora estándar de Colombia", "HEOG": "hora de verano de Groenlandia occidental", "ACDT": "Hora de verano de Australia Central", "WARST": "hora de verano de Argentina occidental", "HNPM": "hora estándar de San Pedro y Miquelón", "WAST": "Hora de verano de África Occidental", "WART": "hora estándar de Argentina occidental", "AKST": "hora estándar de Alaska", "AST": "hora estándar del Atlántico", "HADT": "hora de verano de Hawái-Aleutiano", "∅∅∅": "hora de verano del Amazonas", "COST": "Hora de verano de Colombia", "HECU": "hora de verano de Cuba", "AKDT": "hora de verano de Alaska", "GYT": "Hora de Guyana", "HAST": "hora estándar de Hawái-Aleutiano", "AEST": "Hora estándar de Australia Oriental", "WITA": "hora de Indonesia central"},
+ timezones: map[string]string{"JST": "hora estándar de Japón", "ACST": "Hora estándar de Australia Central", "ECT": "Hora de Ecuador", "PDT": "hora de verano del Pacífico", "CAT": "Hora de África Central", "OESZ": "Hora de verano de Europa del Este", "ART": "hora estándar de Argentina", "∅∅∅": "Hora de verano de las Azores", "MEZ": "Hora estándar de Europa Central", "WESZ": "Hora de verano de Europa Occidental", "CHAST": "Hora estándar de Chatham", "HKST": "hora de verano de Hong Kong", "UYT": "Hora estándar de Uruguay", "WIB": "hora de Indonesia occidental", "CDT": "hora de verano central", "WIT": "hora de Indonesia oriental", "HAT": "hora de verano de Terranova", "ACWST": "Hora estándar de Australia Centroccidental", "VET": "Hora de Venezuela", "GMT": "Hora del meridiano de Greenwich", "CLT": "hora estándar de Chile", "HEOG": "hora de verano de Groenlandia occidental", "HNPMX": "hora estándar del Pacífico de México", "AWST": "Hora estándar de Australia Occidental", "SGT": "hora de Singapur", "WAT": "Hora estándar de África Occidental", "HENOMX": "hora de verano del noroeste de México", "AKDT": "hora de verano de Alaska", "ChST": "Hora estándar de Chamorro", "UYST": "Hora de verano de Uruguay", "NZST": "Hora estándar de Nueva Zelanda", "JDT": "hora de verano de Japón", "WITA": "hora de Indonesia central", "HEPMX": "hora de verano del Pacífico de México", "HECU": "hora de verano de Cuba", "CHADT": "Hora de verano de Chatham", "AEST": "Hora estándar de Australia Oriental", "AKST": "hora estándar de Alaska", "ADT": "hora de verano del Atlántico", "ARST": "hora de verano de Argentina", "HKT": "hora estándar de Hong Kong", "WARST": "hora de verano de Argentina occidental", "CLST": "hora de verano de Chile", "COT": "Hora estándar de Colombia", "HNEG": "hora estándar de Groenlandia oriental", "HEEG": "hora de verano de Groenlandia oriental", "SAST": "Hora de Sudáfrica", "HADT": "hora de verano de Hawái-Aleutiano", "IST": "hora estándar de la India", "MDT": "Hora de verano de Macao", "COST": "Hora de verano de Colombia", "BT": "hora de Bután", "HAST": "hora estándar de Hawái-Aleutiano", "MESZ": "Hora de verano de Europa Central", "HNOG": "hora estándar de Groenlandia occidental", "BOT": "hora de Bolivia", "TMT": "Hora estándar de Turkmenistán", "EDT": "hora de verano oriental", "NZDT": "Hora de verano de Nueva Zelanda", "MST": "Hora estándar de Macao", "EST": "hora estándar oriental", "HNNOMX": "hora estándar del noroeste de México", "ACDT": "Hora de verano de Australia Central", "SRT": "Hora de Surinam", "LHST": "Hora estándar de Lord Howe", "EAT": "Hora de África Oriental", "HNT": "hora estándar de Terranova", "AEDT": "Hora de verano de Australia Oriental", "AST": "hora estándar del Atlántico", "OEZ": "Hora estándar de Europa del Este", "HEPM": "hora de verano de San Pedro y Miquelón", "GYT": "Hora de Guyana", "AWDT": "Hora de verano de Australia Occidental", "PST": "hora estándar del Pacífico", "ACWDT": "Hora de verano de Australia Centroccidental", "WART": "hora estándar de Argentina occidental", "WAST": "Hora de verano de África Occidental", "GFT": "Hora de la Guayana Francesa", "LHDT": "Hora de verano de Lord Howe", "HNCU": "hora estándar de Cuba", "CST": "hora estándar central", "TMST": "Hora de verano de Turkmenistán", "HNPM": "hora estándar de San Pedro y Miquelón", "WEZ": "Hora estándar de Europa Occidental", "MYT": "hora de Malasia"},
}
}
diff --git a/es_NI/es_NI.go b/es_NI/es_NI.go
index 015a84fd..dc5cdd48 100644
--- a/es_NI/es_NI.go
+++ b/es_NI/es_NI.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"BT": "hora de Bután", "SRT": "hora de Surinam", "HNOG": "hora estándar de Groenlandia occidental", "ACWDT": "hora de verano de Australia centroccidental", "MEZ": "hora estándar de Europa central", "NZDT": "hora de verano de Nueva Zelanda", "CHAST": "hora estándar de Chatham", "TMST": "hora de verano de Turkmenistán", "GFT": "hora de la Guayana Francesa", "GYT": "hora de Guyana", "UYT": "hora estándar de Uruguay", "HKST": "hora de verano de Hong Kong", "BOT": "hora de Bolivia", "OESZ": "hora de verano de Europa oriental", "COST": "hora de verano de Colombia", "HECU": "hora de verano de Cuba", "PST": "hora estándar del Pacífico", "∅∅∅": "hora de verano del Amazonas", "TMT": "hora estándar de Turkmenistán", "WIB": "hora de Indonesia occidental", "HNT": "hora estándar de Terranova", "HKT": "hora estándar de Hong Kong", "MST": "Hora estándar de Macao", "AKDT": "hora de verano de Alaska", "VET": "hora de Venezuela", "HNPM": "hora estándar de San Pedro y Miquelón", "HAST": "hora estándar de Hawái-Aleutiano", "HEOG": "hora de verano de Groenlandia occidental", "WESZ": "hora de verano de Europa occidental", "ACWST": "hora estándar de Australia centroccidental", "AEST": "hora estándar de Australia oriental", "ACDT": "hora de verano de Australia central", "ECT": "hora de Ecuador", "HENOMX": "hora de verano del noroeste de México", "GMT": "hora del meridiano de Greenwich", "AKST": "hora estándar de Alaska", "CST": "hora estándar central", "CDT": "hora de verano central", "HADT": "hora de verano de Hawái-Aleutiano", "WIT": "hora de Indonesia oriental", "JST": "hora estándar de Japón", "ChST": "hora estándar de Chamorro", "HEEG": "hora de verano de Groenlandia oriental", "HNPMX": "hora estándar del Pacífico de México", "LHDT": "hora de verano de Lord Howe", "JDT": "hora de verano de Japón", "ACST": "hora estándar de Australia central", "WAST": "hora de verano de África occidental", "ADT": "hora de verano del Atlántico", "ARST": "hora de verano de Argentina", "LHST": "hora estándar de Lord Howe", "IST": "hora estándar de la India", "CLT": "hora estándar de Chile", "PDT": "hora de verano del Pacífico", "WAT": "hora estándar de África occidental", "SGT": "hora de Singapur", "AST": "hora estándar del Atlántico", "WEZ": "hora estándar de Europa occidental", "MDT": "Hora de verano de Macao", "HEPMX": "hora de verano del Pacífico de México", "UYST": "hora de verano de Uruguay", "HEPM": "hora de verano de San Pedro y Miquelón", "MESZ": "hora de verano de Europa central", "CHADT": "hora de verano de Chatham", "SAST": "hora de Sudáfrica", "CLST": "hora de verano de Chile", "AWST": "hora estándar de Australia occidental", "AWDT": "hora de verano de Australia occidental", "NZST": "hora estándar de Nueva Zelanda", "OEZ": "hora estándar de Europa oriental", "COT": "hora estándar de Colombia", "EST": "hora estándar oriental", "MYT": "hora de Malasia", "WITA": "hora de Indonesia central", "HNEG": "hora estándar de Groenlandia oriental", "EAT": "hora de África oriental", "ART": "hora estándar de Argentina", "HAT": "hora de verano de Terranova", "AEDT": "hora de verano de Australia oriental", "CAT": "hora de África central", "HNNOMX": "hora estándar del noroeste de México", "HNCU": "hora estándar de Cuba", "WART": "hora estándar de Argentina occidental", "WARST": "hora de verano de Argentina occidental", "EDT": "hora de verano oriental"},
+ timezones: map[string]string{"UYT": "hora estándar de Uruguay", "GYT": "hora de Guyana", "CAT": "hora de África central", "ACWST": "hora estándar de Australia centroccidental", "VET": "hora de Venezuela", "MST": "hora estándar de las Montañas", "WIT": "hora de Indonesia oriental", "JDT": "hora de verano de Japón", "WEZ": "hora estándar de Europa occidental", "ARST": "hora de verano de Argentina", "BT": "hora de Bután", "HEEG": "hora de verano de Groenlandia oriental", "AEDT": "hora de verano de Australia oriental", "MDT": "hora de verano de las Montañas", "WIB": "hora de Indonesia occidental", "EDT": "hora de verano oriental", "HECU": "hora de verano de Cuba", "CHADT": "hora de verano de Chatham", "WESZ": "hora de verano de Europa occidental", "TMT": "hora estándar de Turkmenistán", "WAST": "hora de verano de África occidental", "SRT": "hora de Surinam", "AWDT": "hora de verano de Australia occidental", "ACWDT": "hora de verano de Australia centroccidental", "HKST": "hora de verano de Hong Kong", "HNPM": "hora estándar de San Pedro y Miquelón", "HEPM": "hora de verano de San Pedro y Miquelón", "HAST": "hora estándar de Hawái-Aleutiano", "MYT": "hora de Malasia", "WARST": "hora de verano de Argentina occidental", "TMST": "hora de verano de Turkmenistán", "COT": "hora estándar de Colombia", "SGT": "hora de Singapur", "HADT": "hora de verano de Hawái-Aleutiano", "IST": "hora estándar de la India", "ADT": "hora de verano del Atlántico", "GFT": "hora de la Guayana Francesa", "LHDT": "hora de verano de Lord Howe", "CHAST": "hora estándar de Chatham", "MESZ": "hora de verano de Europa central", "HNNOMX": "hora estándar del noroeste de México", "PST": "hora estándar del Pacífico", "MEZ": "hora estándar de Europa central", "WART": "hora estándar de Argentina occidental", "HKT": "hora estándar de Hong Kong", "OESZ": "hora de verano de Europa oriental", "ART": "hora estándar de Argentina", "WAT": "hora estándar de África occidental", "HNT": "hora estándar de Terranova", "HNPMX": "hora estándar del Pacífico de México", "HEPMX": "hora de verano del Pacífico de México", "CDT": "hora de verano central", "AWST": "hora estándar de Australia occidental", "ACDT": "hora de verano de Australia central", "WITA": "hora de Indonesia central", "NZST": "hora estándar de Nueva Zelanda", "CLT": "hora estándar de Chile", "GMT": "hora del meridiano de Greenwich", "COST": "hora de verano de Colombia", "HENOMX": "hora de verano del noroeste de México", "HAT": "hora de verano de Terranova", "∅∅∅": "Hora de verano de Acre", "HNCU": "hora estándar de Cuba", "EST": "hora estándar oriental", "PDT": "hora de verano del Pacífico", "ECT": "hora de Ecuador", "CLST": "hora de verano de Chile", "HNEG": "hora estándar de Groenlandia oriental", "AKST": "hora estándar de Alaska", "AKDT": "hora de verano de Alaska", "EAT": "hora de África oriental", "CST": "hora estándar central", "HNOG": "hora estándar de Groenlandia occidental", "HEOG": "hora de verano de Groenlandia occidental", "AST": "hora estándar del Atlántico", "OEZ": "hora estándar de Europa oriental", "JST": "hora estándar de Japón", "ACST": "hora estándar de Australia central", "UYST": "hora de verano de Uruguay", "LHST": "hora estándar de Lord Howe", "BOT": "hora de Bolivia", "NZDT": "hora de verano de Nueva Zelanda", "AEST": "hora estándar de Australia oriental", "ChST": "hora estándar de Chamorro", "SAST": "hora de Sudáfrica"},
}
}
diff --git a/es_PA/es_PA.go b/es_PA/es_PA.go
index 93cda0c5..732ca8c0 100644
--- a/es_PA/es_PA.go
+++ b/es_PA/es_PA.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"LHDT": "hora de verano de Lord Howe", "NZST": "hora estándar de Nueva Zelanda", "SAST": "hora de Sudáfrica", "HNNOMX": "hora estándar del noroeste de México", "HNPMX": "hora estándar del Pacífico de México", "WIB": "hora de Indonesia occidental", "WITA": "hora de Indonesia central", "MDT": "Hora de verano de Macao", "CST": "hora estándar central", "HNOG": "hora estándar de Groenlandia occidental", "CHAST": "hora estándar de Chatham", "TMST": "hora de verano de Turkmenistán", "ACDT": "hora de verano de Australia central", "EAT": "hora de África oriental", "AKST": "hora estándar de Alaska", "ACWDT": "hora de verano de Australia centroccidental", "HNT": "hora estándar de Terranova", "COT": "hora estándar de Colombia", "LHST": "hora estándar de Lord Howe", "MESZ": "hora de verano de Europa central", "WAST": "hora de verano de África occidental", "ADT": "hora de verano del Atlántico", "ACWST": "hora estándar de Australia centroccidental", "PST": "hora estándar del Pacífico", "ARST": "hora de verano de Argentina", "CLT": "hora estándar de Chile", "GYT": "hora de Guyana", "UYT": "hora estándar de Uruguay", "HADT": "hora de verano de Hawái-Aleutiano", "WARST": "hora de verano de Argentina occidental", "WESZ": "hora de verano de Europa occidental", "HAT": "hora de verano de Terranova", "HEEG": "hora de verano de Groenlandia oriental", "AEST": "hora estándar de Australia oriental", "WAT": "hora estándar de África occidental", "CAT": "hora de África central", "EST": "hora estándar oriental", "AST": "hora estándar del Atlántico", "BT": "hora de Bután", "BOT": "hora de Bolivia", "EDT": "hora de verano oriental", "AKDT": "hora de verano de Alaska", "CLST": "hora de verano de Chile", "OEZ": "hora estándar de Europa oriental", "GMT": "hora del meridiano de Greenwich", "UYST": "hora de verano de Uruguay", "CHADT": "hora de verano de Chatham", "TMT": "hora estándar de Turkmenistán", "HNEG": "hora estándar de Groenlandia oriental", "GFT": "hora de la Guayana Francesa", "ECT": "hora de Ecuador", "MST": "Hora estándar de Macao", "ART": "hora estándar de Argentina", "HNPM": "hora estándar de San Pedro y Miquelón", "HEPM": "hora de verano de San Pedro y Miquelón", "SRT": "hora de Surinam", "PDT": "hora de verano del Pacífico", "AWST": "hora estándar de Australia occidental", "AWDT": "hora de verano de Australia occidental", "HKST": "hora de verano de Hong Kong", "JST": "hora estándar de Japón", "ChST": "hora estándar de Chamorro", "HEPMX": "hora de verano del Pacífico de México", "VET": "hora de Venezuela", "WEZ": "hora estándar de Europa occidental", "ACST": "hora estándar de Australia central", "COST": "hora de verano de Colombia", "HNCU": "hora estándar de Cuba", "CDT": "hora de verano central", "MYT": "hora de Malasia", "HEOG": "hora de verano de Groenlandia occidental", "NZDT": "hora de verano de Nueva Zelanda", "IST": "hora estándar de la India", "∅∅∅": "hora de verano del Amazonas", "HENOMX": "hora de verano del noroeste de México", "WART": "hora estándar de Argentina occidental", "WIT": "hora de Indonesia oriental", "HAST": "hora estándar de Hawái-Aleutiano", "HKT": "hora estándar de Hong Kong", "AEDT": "hora de verano de Australia oriental", "SGT": "hora de Singapur", "HECU": "hora de verano de Cuba", "MEZ": "hora estándar de Europa central", "JDT": "hora de verano de Japón", "OESZ": "hora de verano de Europa oriental"},
+ timezones: map[string]string{"HADT": "hora de verano de Hawái-Aleutiano", "CLST": "hora de verano de Chile", "WAT": "hora estándar de África occidental", "EST": "hora estándar oriental", "UYT": "hora estándar de Uruguay", "CHADT": "hora de verano de Chatham", "PST": "hora estándar del Pacífico", "HEOG": "hora de verano de Groenlandia occidental", "ART": "hora estándar de Argentina", "SAST": "hora de Sudáfrica", "ACWST": "hora estándar de Australia centroccidental", "IST": "hora estándar de la India", "HENOMX": "hora de verano del noroeste de México", "HNPMX": "hora estándar del Pacífico de México", "CHAST": "hora estándar de Chatham", "HNNOMX": "hora estándar del noroeste de México", "AEST": "hora estándar de Australia oriental", "HNPM": "hora estándar de San Pedro y Miquelón", "∅∅∅": "hora de verano de Brasilia", "JST": "hora estándar de Japón", "MDT": "Hora de verano de Macao", "LHDT": "hora de verano de Lord Howe", "TMST": "hora de verano de Turkmenistán", "AEDT": "hora de verano de Australia oriental", "HAST": "hora estándar de Hawái-Aleutiano", "ECT": "hora de Ecuador", "JDT": "hora de verano de Japón", "MEZ": "hora estándar de Europa central", "COST": "hora de verano de Colombia", "HNT": "hora estándar de Terranova", "WITA": "hora de Indonesia central", "WIB": "hora de Indonesia occidental", "SGT": "hora de Singapur", "MESZ": "hora de verano de Europa central", "WEZ": "hora estándar de Europa occidental", "ADT": "hora de verano del Atlántico", "ARST": "hora de verano de Argentina", "ChST": "hora estándar de Chamorro", "VET": "hora de Venezuela", "WARST": "hora de verano de Argentina occidental", "OESZ": "hora de verano de Europa oriental", "MST": "Hora estándar de Macao", "HNEG": "hora estándar de Groenlandia oriental", "LHST": "hora estándar de Lord Howe", "NZST": "hora estándar de Nueva Zelanda", "AST": "hora estándar del Atlántico", "HKT": "hora estándar de Hong Kong", "HKST": "hora de verano de Hong Kong", "CDT": "hora de verano central", "CLT": "hora estándar de Chile", "WAST": "hora de verano de África occidental", "BT": "hora de Bután", "EAT": "hora de África oriental", "HECU": "hora de verano de Cuba", "AWST": "hora estándar de Australia occidental", "ACWDT": "hora de verano de Australia centroccidental", "TMT": "hora estándar de Turkmenistán", "ACDT": "hora de verano de Australia central", "CAT": "hora de África central", "GMT": "hora del meridiano de Greenwich", "HEPMX": "hora de verano del Pacífico de México", "HAT": "hora de verano de Terranova", "GFT": "hora de la Guayana Francesa", "UYST": "hora de verano de Uruguay", "GYT": "hora de Guyana", "CST": "hora estándar central", "AWDT": "hora de verano de Australia occidental", "EDT": "hora de verano oriental", "HEEG": "hora de verano de Groenlandia oriental", "WIT": "hora de Indonesia oriental", "WESZ": "hora de verano de Europa occidental", "SRT": "hora de Surinam", "NZDT": "hora de verano de Nueva Zelanda", "WART": "hora estándar de Argentina occidental", "OEZ": "hora estándar de Europa oriental", "HNCU": "hora estándar de Cuba", "ACST": "hora estándar de Australia central", "COT": "hora estándar de Colombia", "AKST": "hora estándar de Alaska", "AKDT": "hora de verano de Alaska", "BOT": "hora de Bolivia", "PDT": "hora de verano del Pacífico", "MYT": "hora de Malasia", "HNOG": "hora estándar de Groenlandia occidental", "HEPM": "hora de verano de San Pedro y Miquelón"},
}
}
diff --git a/es_PE/es_PE.go b/es_PE/es_PE.go
index 39e33fdf..aeb070ed 100644
--- a/es_PE/es_PE.go
+++ b/es_PE/es_PE.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"AST": "hora estándar del Atlántico", "SRT": "hora de Surinam", "ART": "hora estándar de Argentina", "CLST": "hora de verano de Chile", "COST": "hora de verano de Colombia", "HNNOMX": "hora estándar del noroeste de México", "WARST": "hora de verano de Argentina occidental", "MYT": "hora de Malasia", "UYST": "hora de verano de Uruguay", "HNOG": "hora estándar de Groenlandia occidental", "CHADT": "hora de verano de Chatham", "ChST": "hora estándar de Chamorro", "EAT": "hora de África oriental", "ECT": "hora de Ecuador", "SGT": "hora de Singapur", "JST": "hora estándar de Japón", "HEEG": "hora de verano de Groenlandia oriental", "WESZ": "hora de verano de Europa occidental", "AWST": "hora estándar de Australia occidental", "WITA": "hora de Indonesia central", "CAT": "hora de África central", "HENOMX": "hora de verano del noroeste de México", "CHAST": "hora estándar de Chatham", "MEZ": "hora estándar de Europa central", "WART": "hora estándar de Argentina occidental", "WEZ": "hora estándar de Europa occidental", "NZDT": "hora de verano de Nueva Zelanda", "HNCU": "hora estándar de Cuba", "CLT": "hora estándar de Chile", "ACST": "hora estándar de Australia central", "CST": "hora estándar central", "LHDT": "hora de verano de Lord Howe", "ARST": "hora de verano de Argentina", "IST": "hora estándar de la India", "CDT": "hora de verano central", "UYT": "hora estándar de Uruguay", "BT": "hora de Bután", "HNT": "hora estándar de Terranova", "AEST": "hora estándar de Australia oriental", "MESZ": "hora de verano de Europa central", "JDT": "hora de verano de Japón", "TMST": "hora de verano de Turkmenistán", "OESZ": "hora de verano de Europa oriental", "AKST": "hora estándar de Alaska", "WIT": "hora de Indonesia oriental", "PST": "hora estándar del Pacífico", "AEDT": "hora de verano de Australia oriental", "LHST": "hora estándar de Lord Howe", "GMT": "hora del meridiano de Greenwich", "HNPMX": "hora estándar del Pacífico de México", "HAST": "hora estándar de Hawái-Aleutiano", "VET": "hora de Venezuela", "ACWST": "hora estándar de Australia centroccidental", "HAT": "hora de verano de Terranova", "AWDT": "hora de verano de Australia occidental", "HNPM": "hora estándar de San Pedro y Miquelón", "WAT": "hora estándar de África occidental", "HECU": "hora de verano de Cuba", "WIB": "hora de Indonesia occidental", "HEPM": "hora de verano de San Pedro y Miquelón", "NZST": "hora estándar de Nueva Zelanda", "HNEG": "hora estándar de Groenlandia oriental", "ACDT": "hora de verano de Australia central", "AKDT": "hora de verano de Alaska", "HADT": "hora de verano de Hawái-Aleutiano", "ADT": "hora de verano del Atlántico", "PDT": "hora de verano del Pacífico", "TMT": "hora estándar de Turkmenistán", "HKST": "hora de verano de Hong Kong", "SAST": "hora de Sudáfrica", "MDT": "Hora de verano de Macao", "EST": "hora estándar oriental", "ACWDT": "hora de verano de Australia centroccidental", "GFT": "hora de la Guayana Francesa", "∅∅∅": "hora de verano de Perú", "MST": "Hora estándar de Macao", "HEOG": "hora de verano de Groenlandia occidental", "HEPMX": "hora de verano del Pacífico de México", "EDT": "hora de verano oriental", "GYT": "hora de Guyana", "HKT": "hora estándar de Hong Kong", "BOT": "hora de Bolivia", "WAST": "hora de verano de África occidental", "OEZ": "hora estándar de Europa oriental", "COT": "hora estándar de Colombia"},
+ timezones: map[string]string{"CST": "hora estándar central", "WIT": "hora de Indonesia oriental", "CHAST": "hora estándar de Chatham", "HEOG": "hora de verano de Groenlandia occidental", "HKT": "hora estándar de Hong Kong", "HNPMX": "hora estándar del Pacífico de México", "HNEG": "hora estándar de Groenlandia oriental", "HEEG": "hora de verano de Groenlandia oriental", "LHDT": "hora de verano de Lord Howe", "BOT": "hora de Bolivia", "MYT": "hora de Malasia", "ARST": "hora de verano de Argentina", "WAT": "hora estándar de África occidental", "EAT": "hora de África oriental", "AST": "hora estándar del Atlántico", "ADT": "hora de verano del Atlántico", "OEZ": "hora estándar de Europa oriental", "WEZ": "hora estándar de Europa occidental", "WESZ": "hora de verano de Europa occidental", "CLT": "hora estándar de Chile", "EDT": "hora de verano oriental", "IST": "hora estándar de la India", "BT": "hora de Bután", "CHADT": "hora de verano de Chatham", "HENOMX": "hora de verano del noroeste de México", "HNT": "hora estándar de Terranova", "AEDT": "hora de verano de Australia oriental", "SRT": "hora de Surinam", "ACWDT": "hora de verano de Australia centroccidental", "MESZ": "hora de verano de Europa central", "WITA": "hora de Indonesia central", "CAT": "hora de África central", "SGT": "hora de Singapur", "NZDT": "hora de verano de Nueva Zelanda", "JDT": "hora de verano de Japón", "COT": "hora estándar de Colombia", "CDT": "hora de verano central", "WIB": "hora de Indonesia occidental", "NZST": "hora estándar de Nueva Zelanda", "MST": "Hora estándar de Macao", "MDT": "Hora de verano de Macao", "EST": "hora estándar oriental", "GFT": "hora de la Guayana Francesa", "∅∅∅": "hora de verano de las Azores", "AWST": "hora estándar de Australia occidental", "GMT": "hora del meridiano de Greenwich", "ACST": "hora estándar de Australia central", "HNNOMX": "hora estándar del noroeste de México", "AKST": "hora estándar de Alaska", "SAST": "hora de Sudáfrica", "JST": "hora estándar de Japón", "AKDT": "hora de verano de Alaska", "GYT": "hora de Guyana", "HNCU": "hora estándar de Cuba", "ECT": "hora de Ecuador", "VET": "hora de Venezuela", "CLST": "hora de verano de Chile", "HKST": "hora de verano de Hong Kong", "HEPM": "hora de verano de San Pedro y Miquelón", "LHST": "hora estándar de Lord Howe", "TMT": "hora estándar de Turkmenistán", "ACDT": "hora de verano de Australia central", "HAT": "hora de verano de Terranova", "UYST": "hora de verano de Uruguay", "HAST": "hora estándar de Hawái-Aleutiano", "OESZ": "hora de verano de Europa oriental", "PST": "hora estándar del Pacífico", "MEZ": "hora estándar de Europa central", "HNOG": "hora estándar de Groenlandia occidental", "ART": "hora estándar de Argentina", "HNPM": "hora estándar de San Pedro y Miquelón", "HECU": "hora de verano de Cuba", "AWDT": "hora de verano de Australia occidental", "PDT": "hora de verano del Pacífico", "HADT": "hora de verano de Hawái-Aleutiano", "WART": "hora estándar de Argentina occidental", "WARST": "hora de verano de Argentina occidental", "TMST": "hora de verano de Turkmenistán", "WAST": "hora de verano de África occidental", "HEPMX": "hora de verano del Pacífico de México", "COST": "hora de verano de Colombia", "AEST": "hora estándar de Australia oriental", "ChST": "hora estándar de Chamorro", "UYT": "hora estándar de Uruguay", "ACWST": "hora estándar de Australia centroccidental"},
}
}
diff --git a/es_PH/es_PH.go b/es_PH/es_PH.go
index 4dba9822..a7c64ce1 100644
--- a/es_PH/es_PH.go
+++ b/es_PH/es_PH.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"ChST": "hora estándar de Chamorro", "GFT": "hora de la Guayana Francesa", "HENOMX": "hora de verano del noroeste de México", "EDT": "hora de verano oriental", "UYT": "hora estándar de Uruguay", "HADT": "hora de verano de Hawái-Aleutiano", "HAT": "hora de verano de Terranova", "CHAST": "hora estándar de Chatham", "HNPMX": "hora estándar del Pacífico de México", "WIT": "hora de Indonesia oriental", "OEZ": "hora estándar de Europa oriental", "WART": "hora estándar de Argentina occidental", "HNOG": "hora estándar de Groenlandia occidental", "MESZ": "hora de verano de Europa central", "LHST": "hora estándar de Lord Howe", "NZST": "hora estándar de Nueva Zelanda", "CHADT": "hora de verano de Chatham", "CLST": "hora de verano de Chile", "TMT": "hora estándar de Turkmenistán", "HEPMX": "hora de verano del Pacífico de México", "HAST": "hora estándar de Hawái-Aleutiano", "HNT": "hora estándar de Terranova", "ART": "hora estándar de Argentina", "AEDT": "hora de verano de Australia oriental", "CDT": "hora de verano central", "SRT": "hora de Surinam", "ACST": "hora estándar de Australia central", "ADT": "hora de verano del Atlántico", "HNEG": "hora estándar de Groenlandia oriental", "EAT": "hora de África oriental", "COST": "hora de verano de Colombia", "NZDT": "hora de verano de Nueva Zelanda", "ACDT": "hora de verano de Australia central", "WAST": "hora de verano de África occidental", "HNCU": "hora estándar de Cuba", "HKT": "hora estándar de Hong Kong", "HECU": "hora de verano de Cuba", "AKST": "hora estándar de Alaska", "CST": "hora estándar central", "VET": "hora de Venezuela", "ACWST": "hora estándar de Australia centroccidental", "ARST": "hora de verano de Argentina", "PST": "hora estándar del Pacífico", "WEZ": "hora estándar de Europa occidental", "ACWDT": "hora de verano de Australia centroccidental", "HKST": "hora de verano de Hong Kong", "PDT": "hora de verano del Pacífico", "AWST": "hora estándar de Australia occidental", "OESZ": "hora de verano de Europa oriental", "EST": "hora estándar oriental", "MST": "Hora estándar de Macao", "MYT": "hora de Malasia", "UYST": "hora de verano de Uruguay", "AKDT": "hora de verano de Alaska", "MEZ": "hora estándar de Europa central", "JDT": "hora de verano de Japón", "HEEG": "hora de verano de Groenlandia oriental", "TMST": "hora de verano de Turkmenistán", "ECT": "hora de Ecuador", "SGT": "hora de Singapur", "AST": "hora estándar del Atlántico", "WIB": "hora de Indonesia occidental", "WESZ": "hora de verano de Europa occidental", "AEST": "hora estándar de Australia oriental", "WARST": "hora de verano de Argentina occidental", "BT": "hora de Bután", "HEPM": "hora de verano de San Pedro y Miquelón", "LHDT": "hora de verano de Lord Howe", "HNNOMX": "hora estándar del noroeste de México", "MDT": "Hora de verano de Macao", "HEOG": "hora de verano de Groenlandia occidental", "WITA": "hora de Indonesia central", "WAT": "hora estándar de África occidental", "CAT": "hora de África central", "AWDT": "hora de verano de Australia occidental", "HNPM": "hora estándar de San Pedro y Miquelón", "SAST": "hora de Sudáfrica", "∅∅∅": "hora de verano del Amazonas", "BOT": "hora de Bolivia", "GMT": "hora del meridiano de Greenwich", "GYT": "hora de Guyana", "IST": "hora estándar de la India", "CLT": "hora estándar de Chile", "JST": "hora estándar de Japón", "COT": "hora estándar de Colombia"},
+ timezones: map[string]string{"AWST": "hora estándar de Australia occidental", "AWDT": "hora de verano de Australia occidental", "HADT": "hora de verano de Hawái-Aleutiano", "JST": "hora estándar de Japón", "WART": "hora estándar de Argentina occidental", "AEDT": "hora de verano de Australia oriental", "ChST": "hora estándar de Chamorro", "MEZ": "hora estándar de Europa central", "AEST": "hora estándar de Australia oriental", "JDT": "hora de verano de Japón", "HKST": "hora de verano de Hong Kong", "ECT": "hora de Ecuador", "HEPMX": "hora de verano del Pacífico de México", "LHST": "hora estándar de Lord Howe", "NZST": "hora estándar de Nueva Zelanda", "NZDT": "hora de verano de Nueva Zelanda", "CLST": "hora de verano de Chile", "EST": "hora estándar oriental", "HEEG": "hora de verano de Groenlandia oriental", "HAT": "hora de verano de Terranova", "SRT": "hora de Surinam", "CHADT": "hora de verano de Chatham", "MESZ": "hora de verano de Europa central", "VET": "hora de Venezuela", "HNOG": "hora estándar de Groenlandia occidental", "AKST": "hora estándar de Alaska", "WAT": "hora estándar de África occidental", "HNT": "hora estándar de Terranova", "UYT": "hora estándar de Uruguay", "GYT": "hora de Guyana", "GFT": "hora de la Guayana Francesa", "EAT": "hora de África oriental", "WEZ": "hora estándar de Europa occidental", "CLT": "hora estándar de Chile", "ADT": "hora de verano del Atlántico", "HKT": "hora estándar de Hong Kong", "TMT": "hora estándar de Turkmenistán", "ACDT": "hora de verano de Australia central", "BT": "hora de Bután", "PST": "hora estándar del Pacífico", "ARST": "hora de verano de Argentina", "CDT": "hora de verano central", "HNEG": "hora estándar de Groenlandia oriental", "HNPM": "hora estándar de San Pedro y Miquelón", "HEPM": "hora de verano de San Pedro y Miquelón", "BOT": "hora de Bolivia", "GMT": "hora del meridiano de Greenwich", "OEZ": "hora estándar de Europa oriental", "WAST": "hora de verano de África occidental", "EDT": "hora de verano oriental", "WITA": "hora de Indonesia central", "SGT": "hora de Singapur", "MYT": "hora de Malasia", "TMST": "hora de verano de Turkmenistán", "ART": "hora estándar de Argentina", "COST": "hora de verano de Colombia", "LHDT": "hora de verano de Lord Howe", "WIT": "hora de Indonesia oriental", "WIB": "hora de Indonesia occidental", "PDT": "hora de verano del Pacífico", "ACWST": "hora estándar de Australia centroccidental", "CAT": "hora de África central", "HEOG": "hora de verano de Groenlandia occidental", "HNNOMX": "hora estándar del noroeste de México", "HENOMX": "hora de verano del noroeste de México", "ACST": "hora estándar de Australia central", "CHAST": "hora estándar de Chatham", "ACWDT": "hora de verano de Australia centroccidental", "IST": "hora estándar de la India", "MST": "Hora estándar de Macao", "MDT": "Hora de verano de Macao", "UYST": "hora de verano de Uruguay", "SAST": "hora de Sudáfrica", "CST": "hora estándar central", "HAST": "hora estándar de Hawái-Aleutiano", "WARST": "hora de verano de Argentina occidental", "AST": "hora estándar del Atlántico", "COT": "hora estándar de Colombia", "HNCU": "hora estándar de Cuba", "HNPMX": "hora estándar del Pacífico de México", "HECU": "hora de verano de Cuba", "WESZ": "hora de verano de Europa occidental", "OESZ": "hora de verano de Europa oriental", "∅∅∅": "Hora de verano de Acre", "AKDT": "hora de verano de Alaska"},
}
}
diff --git a/es_PR/es_PR.go b/es_PR/es_PR.go
index 2a7b9e78..630de9ba 100644
--- a/es_PR/es_PR.go
+++ b/es_PR/es_PR.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"BT": "hora de Bután", "AWST": "hora estándar de Australia occidental", "AEST": "hora estándar de Australia oriental", "HNPM": "hora estándar de San Pedro y Miquelón", "CLT": "hora estándar de Chile", "HEEG": "hora de verano de Groenlandia oriental", "WART": "hora estándar de Argentina occidental", "HNCU": "hora estándar de Cuba", "LHDT": "hora de verano de Lord Howe", "MST": "Hora estándar de Macao", "HEPMX": "hora de verano del Pacífico de México", "AEDT": "hora de verano de Australia oriental", "HEPM": "hora de verano de San Pedro y Miquelón", "SAST": "hora de Sudáfrica", "ChST": "hora estándar de Chamorro", "CAT": "hora de África central", "WARST": "hora de verano de Argentina occidental", "LHST": "hora estándar de Lord Howe", "NZST": "hora estándar de Nueva Zelanda", "CDT": "hora de verano central", "GYT": "hora de Guyana", "UYT": "hora estándar de Uruguay", "AWDT": "hora de verano de Australia occidental", "BOT": "hora de Bolivia", "WAST": "hora de verano de África occidental", "OEZ": "hora estándar de Europa oriental", "COT": "hora estándar de Colombia", "HKST": "hora de verano de Hong Kong", "WITA": "hora de Indonesia central", "ACWDT": "hora de verano de Australia centroccidental", "GFT": "hora de la Guayana Francesa", "ACDT": "hora de verano de Australia central", "MDT": "Hora de verano de Macao", "AKDT": "hora de verano de Alaska", "HNNOMX": "hora estándar del noroeste de México", "UYST": "hora de verano de Uruguay", "WIT": "hora de Indonesia oriental", "ADT": "hora de verano del Atlántico", "WESZ": "hora de verano de Europa occidental", "ACWST": "hora estándar de Australia centroccidental", "HNT": "hora estándar de Terranova", "∅∅∅": "hora de verano del Amazonas", "OESZ": "hora de verano de Europa oriental", "GMT": "hora del meridiano de Greenwich", "AKST": "hora estándar de Alaska", "PST": "hora estándar del Pacífico", "MEZ": "hora estándar de Europa central", "EST": "hora estándar oriental", "CHADT": "hora de verano de Chatham", "SRT": "hora de Surinam", "HNOG": "hora estándar de Groenlandia occidental", "CHAST": "hora estándar de Chatham", "JDT": "hora de verano de Japón", "COST": "hora de verano de Colombia", "HNPMX": "hora estándar del Pacífico de México", "HAST": "hora estándar de Hawái-Aleutiano", "WEZ": "hora estándar de Europa occidental", "PDT": "hora de verano del Pacífico", "IST": "hora estándar de la India", "EDT": "hora de verano oriental", "VET": "hora de Venezuela", "HADT": "hora de verano de Hawái-Aleutiano", "EAT": "hora de África oriental", "HENOMX": "hora de verano del noroeste de México", "NZDT": "hora de verano de Nueva Zelanda", "HEOG": "hora de verano de Groenlandia occidental", "ARST": "hora de verano de Argentina", "JST": "hora estándar de Japón", "CST": "hora estándar central", "AST": "hora estándar del Atlántico", "WIB": "hora de Indonesia occidental", "ACST": "hora estándar de Australia central", "SGT": "hora de Singapur", "ART": "hora estándar de Argentina", "CLST": "hora de verano de Chile", "HNEG": "hora estándar de Groenlandia oriental", "TMT": "hora estándar de Turkmenistán", "MYT": "hora de Malasia", "HAT": "hora de verano de Terranova", "HKT": "hora estándar de Hong Kong", "MESZ": "hora de verano de Europa central", "TMST": "hora de verano de Turkmenistán", "WAT": "hora estándar de África occidental", "ECT": "hora de Ecuador", "HECU": "hora de verano de Cuba"},
+ timezones: map[string]string{"WITA": "hora de Indonesia central", "CST": "hora estándar central", "CHAST": "hora estándar de Chatham", "NZST": "hora estándar de Nueva Zelanda", "NZDT": "hora de verano de Nueva Zelanda", "OESZ": "hora de verano de Europa oriental", "CLST": "hora de verano de Chile", "GYT": "hora de Guyana", "CAT": "hora de África central", "TMT": "hora estándar de Turkmenistán", "COT": "hora estándar de Colombia", "HEEG": "hora de verano de Groenlandia oriental", "ARST": "hora de verano de Argentina", "HEPM": "hora de verano de San Pedro y Miquelón", "ECT": "hora de Ecuador", "JDT": "hora de verano de Japón", "GMT": "hora del meridiano de Greenwich", "WARST": "hora de verano de Argentina occidental", "HNOG": "hora estándar de Groenlandia occidental", "∅∅∅": "hora de verano del Amazonas", "ADT": "hora de verano del Atlántico", "EAT": "hora de África oriental", "BOT": "hora de Bolivia", "HNCU": "hora estándar de Cuba", "WIB": "hora de Indonesia occidental", "HAST": "hora estándar de Hawái-Aleutiano", "WESZ": "hora de verano de Europa occidental", "HNPM": "hora estándar de San Pedro y Miquelón", "LHST": "hora estándar de Lord Howe", "SRT": "hora de Surinam", "UYST": "hora de verano de Uruguay", "HKT": "hora estándar de Hong Kong", "WAT": "hora estándar de África occidental", "ACST": "hora estándar de Australia central", "BT": "hora de Bután", "MEZ": "hora estándar de Europa central", "GFT": "hora de la Guayana Francesa", "CDT": "hora de verano central", "WEZ": "hora estándar de Europa occidental", "AEST": "hora estándar de Australia oriental", "AWDT": "hora de verano de Australia occidental", "MST": "Hora estándar de Macao", "UYT": "hora estándar de Uruguay", "ChST": "hora estándar de Chamorro", "HECU": "hora de verano de Cuba", "IST": "hora estándar de la India", "WART": "hora estándar de Argentina occidental", "HEOG": "hora de verano de Groenlandia occidental", "SAST": "hora de Sudáfrica", "TMST": "hora de verano de Turkmenistán", "HAT": "hora de verano de Terranova", "AKST": "hora estándar de Alaska", "HEPMX": "hora de verano del Pacífico de México", "MDT": "Hora de verano de Macao", "HENOMX": "hora de verano del noroeste de México", "AKDT": "hora de verano de Alaska", "WIT": "hora de Indonesia oriental", "SGT": "hora de Singapur", "JST": "hora estándar de Japón", "ART": "hora estándar de Argentina", "EST": "hora estándar oriental", "ACDT": "hora de verano de Australia central", "PDT": "hora de verano del Pacífico", "HADT": "hora de verano de Hawái-Aleutiano", "MESZ": "hora de verano de Europa central", "WAST": "hora de verano de África occidental", "HNPMX": "hora estándar del Pacífico de México", "CHADT": "hora de verano de Chatham", "AWST": "hora estándar de Australia occidental", "ACWST": "hora estándar de Australia centroccidental", "VET": "hora de Venezuela", "EDT": "hora de verano oriental", "COST": "hora de verano de Colombia", "AST": "hora estándar del Atlántico", "HKST": "hora de verano de Hong Kong", "HNNOMX": "hora estándar del noroeste de México", "HNT": "hora estándar de Terranova", "ACWDT": "hora de verano de Australia centroccidental", "OEZ": "hora estándar de Europa oriental", "MYT": "hora de Malasia", "CLT": "hora estándar de Chile", "HNEG": "hora estándar de Groenlandia oriental", "AEDT": "hora de verano de Australia oriental", "LHDT": "hora de verano de Lord Howe", "PST": "hora estándar del Pacífico"},
}
}
diff --git a/es_PY/es_PY.go b/es_PY/es_PY.go
index 6bde1fd1..eb21f442 100644
--- a/es_PY/es_PY.go
+++ b/es_PY/es_PY.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"LHDT": "hora de verano de Lord Howe", "CLT": "hora estándar de Chile", "HEEG": "hora de verano de Groenlandia oriental", "WAST": "hora de verano de África occidental", "WART": "hora estándar de Argentina occidental", "HNCU": "hora estándar de Cuba", "EST": "hora estándar oriental", "SAST": "hora de Sudáfrica", "TMST": "hora de verano de Turkmenistán", "WAT": "hora estándar de África occidental", "HENOMX": "hora de verano del noroeste de México", "AKST": "hora estándar de Alaska", "AWDT": "hora de verano de Australia occidental", "IST": "hora estándar de la India", "ECT": "hora de Ecuador", "HADT": "hora de verano de Hawái-Aleutiano", "GFT": "hora de la Guayana Francesa", "HNEG": "hora estándar de Groenlandia oriental", "CHADT": "hora de verano de Chatham", "PDT": "hora de verano del Pacífico", "HEPM": "hora de verano de San Pedro y Miquelón", "JDT": "hora de verano de Japón", "ChST": "hora estándar de Chamorro", "BT": "hora de Bután", "CDT": "hora de verano central", "HAST": "hora estándar de Hawái-Aleutiano", "ACWST": "hora estándar de Australia centroccidental", "MST": "Hora estándar de Macao", "HEPMX": "hora de verano del Pacífico de México", "MYT": "hora de Malasia", "WEZ": "hora estándar de Europa occidental", "EAT": "hora de África oriental", "COT": "hora estándar de Colombia", "HNPMX": "hora estándar del Pacífico de México", "WESZ": "hora de verano de Europa occidental", "ACWDT": "hora de verano de Australia centroccidental", "HKST": "hora de verano de Hong Kong", "HNPM": "hora estándar de San Pedro y Miquelón", "JST": "hora estándar de Japón", "BOT": "hora de Bolivia", "ACST": "hora estándar de Australia central", "HNT": "hora estándar de Terranova", "ACDT": "hora de verano de Australia central", "WITA": "hora de Indonesia central", "AWST": "hora estándar de Australia occidental", "NZDT": "hora de verano de Nueva Zelanda", "COST": "hora de verano de Colombia", "GMT": "hora del meridiano de Greenwich", "UYST": "hora de verano de Uruguay", "AEST": "hora estándar de Australia oriental", "LHST": "hora estándar de Lord Howe", "CAT": "hora de África central", "SGT": "hora de Singapur", "PST": "hora estándar del Pacífico", "MDT": "Hora de verano de Macao", "WIB": "hora de Indonesia occidental", "HNNOMX": "hora estándar del noroeste de México", "EDT": "hora de verano oriental", "ART": "hora estándar de Argentina", "HKT": "hora estándar de Hong Kong", "MEZ": "hora estándar de Europa central", "MESZ": "hora de verano de Europa central", "CLST": "hora de verano de Chile", "∅∅∅": "hora de verano del Amazonas", "TMT": "hora estándar de Turkmenistán", "ADT": "hora de verano del Atlántico", "OEZ": "hora estándar de Europa oriental", "SRT": "hora de Surinam", "CHAST": "hora estándar de Chatham", "NZST": "hora estándar de Nueva Zelanda", "WARST": "hora de verano de Argentina occidental", "HECU": "hora de verano de Cuba", "VET": "hora de Venezuela", "UYT": "hora estándar de Uruguay", "AKDT": "hora de verano de Alaska", "HAT": "hora de verano de Terranova", "HNOG": "hora estándar de Groenlandia occidental", "HEOG": "hora de verano de Groenlandia occidental", "AEDT": "hora de verano de Australia oriental", "OESZ": "hora de verano de Europa oriental", "GYT": "hora de Guyana", "AST": "hora estándar del Atlántico", "WIT": "hora de Indonesia oriental", "ARST": "hora de verano de Argentina", "CST": "hora estándar central"},
+ timezones: map[string]string{"MEZ": "hora estándar de Europa central", "VET": "hora de Venezuela", "EST": "hora estándar oriental", "CST": "hora estándar central", "WARST": "hora de verano de Argentina occidental", "TMT": "hora estándar de Turkmenistán", "ARST": "hora de verano de Argentina", "ACST": "hora estándar de Australia central", "LHST": "hora estándar de Lord Howe", "EAT": "hora de África oriental", "WAST": "hora de verano de África occidental", "HEEG": "hora de verano de Groenlandia oriental", "AKST": "hora estándar de Alaska", "CDT": "hora de verano central", "WIT": "hora de Indonesia oriental", "HKST": "hora de verano de Hong Kong", "ChST": "hora estándar de Chamorro", "PST": "hora estándar del Pacífico", "HAST": "hora estándar de Hawái-Aleutiano", "JDT": "hora de verano de Japón", "HNOG": "hora estándar de Groenlandia occidental", "TMST": "hora de verano de Turkmenistán", "HNEG": "hora estándar de Groenlandia oriental", "AWST": "hora estándar de Australia occidental", "NZDT": "hora de verano de Nueva Zelanda", "SAST": "hora de Sudáfrica", "SRT": "hora de Surinam", "MESZ": "hora de verano de Europa central", "HNT": "hora estándar de Terranova", "HAT": "hora de verano de Terranova", "AEDT": "hora de verano de Australia oriental", "WITA": "hora de Indonesia central", "UYT": "hora estándar de Uruguay", "AWDT": "hora de verano de Australia occidental", "HADT": "hora de verano de Hawái-Aleutiano", "CLST": "hora de verano de Chile", "HNNOMX": "hora estándar del noroeste de México", "UYST": "hora de verano de Uruguay", "GYT": "hora de Guyana", "CHAST": "hora estándar de Chatham", "WEZ": "hora estándar de Europa occidental", "HENOMX": "hora de verano del noroeste de México", "CHADT": "hora de verano de Chatham", "ECT": "hora de Ecuador", "CAT": "hora de África central", "OEZ": "hora estándar de Europa oriental", "COT": "hora estándar de Colombia", "HNPMX": "hora estándar del Pacífico de México", "HEPMX": "hora de verano del Pacífico de México", "WIB": "hora de Indonesia occidental", "IST": "hora estándar de la India", "MDT": "Hora de verano de Macao", "WAT": "hora estándar de África occidental", "COST": "hora de verano de Colombia", "ACWDT": "hora de verano de Australia centroccidental", "AST": "hora estándar del Atlántico", "WESZ": "hora de verano de Europa occidental", "ART": "hora estándar de Argentina", "ACDT": "hora de verano de Australia central", "MYT": "hora de Malasia", "WART": "hora estándar de Argentina occidental", "HNCU": "hora estándar de Cuba", "HECU": "hora de verano de Cuba", "BOT": "hora de Bolivia", "ACWST": "hora estándar de Australia centroccidental", "GMT": "hora del meridiano de Greenwich", "EDT": "hora de verano oriental", "∅∅∅": "Hora de verano de Acre", "AKDT": "hora de verano de Alaska", "HNPM": "hora estándar de San Pedro y Miquelón", "NZST": "hora estándar de Nueva Zelanda", "BT": "hora de Bután", "JST": "hora estándar de Japón", "ADT": "hora de verano del Atlántico", "HEOG": "hora de verano de Groenlandia occidental", "HKT": "hora estándar de Hong Kong", "SGT": "hora de Singapur", "PDT": "hora de verano del Pacífico", "LHDT": "hora de verano de Lord Howe", "OESZ": "hora de verano de Europa oriental", "CLT": "hora estándar de Chile", "MST": "Hora estándar de Macao", "AEST": "hora estándar de Australia oriental", "GFT": "hora de la Guayana Francesa", "HEPM": "hora de verano de San Pedro y Miquelón"},
}
}
diff --git a/es_SV/es_SV.go b/es_SV/es_SV.go
index 30aa0bbd..0324b35d 100644
--- a/es_SV/es_SV.go
+++ b/es_SV/es_SV.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"SRT": "hora de Surinam", "EAT": "hora de África oriental", "WARST": "hora de verano de Argentina occidental", "ACDT": "hora de verano de Australia central", "MYT": "hora de Malasia", "ECT": "hora de Ecuador", "AKST": "hora estándar de Alaska", "HNOG": "hora estándar de Groenlandia occidental", "HKST": "hora de verano de Hong Kong", "JDT": "hora de verano de Japón", "ACST": "hora estándar de Australia central", "WAT": "hora estándar de África occidental", "HEEG": "hora de verano de Groenlandia oriental", "UYT": "hora estándar de Uruguay", "WIB": "hora de Indonesia occidental", "BT": "hora de Bután", "ACWST": "hora estándar de Australia centroccidental", "HNPM": "hora estándar de San Pedro y Miquelón", "HNEG": "hora estándar de Groenlandia oriental", "WESZ": "hora de verano de Europa occidental", "AEDT": "hora de verano de Australia oriental", "MEZ": "hora estándar de Europa central", "JST": "hora estándar de Japón", "AST": "hora estándar del Atlántico", "CST": "hora estándar central", "HEOG": "hora de verano de Groenlandia occidental", "HKT": "hora estándar de Hong Kong", "CHADT": "hora de verano de Chatham", "OESZ": "hora de verano de Europa oriental", "HNNOMX": "hora estándar del noroeste de México", "MST": "hora estándar de las Montañas", "MDT": "hora de verano de las Montañas", "CHAST": "hora estándar de Chatham", "TMT": "hora estándar de Turkmenistán", "WEZ": "hora estándar de Europa occidental", "SAST": "hora de Sudáfrica", "GFT": "hora de la Guayana Francesa", "CAT": "hora de África central", "SGT": "hora de Singapur", "GYT": "hora de Guyana", "AWDT": "hora de verano de Australia occidental", "NZST": "hora estándar de Nueva Zelanda", "TMST": "hora de verano de Turkmenistán", "WART": "hora estándar de Argentina occidental", "GMT": "hora del meridiano de Greenwich", "HAST": "hora estándar de Hawái-Aleutiano", "ART": "hora estándar de Argentina", "HEPM": "hora de verano de San Pedro y Miquelón", "BOT": "hora de Bolivia", "HNPMX": "hora estándar del Pacífico de México", "MESZ": "hora de verano de Europa central", "NZDT": "hora de verano de Nueva Zelanda", "ChST": "hora estándar de Chamorro", "HNCU": "hora estándar de Cuba", "HECU": "hora de verano de Cuba", "EST": "hora estándar oriental", "EDT": "hora de verano oriental", "HNT": "hora estándar de Terranova", "AEST": "hora estándar de Australia oriental", "LHDT": "hora de verano de Lord Howe", "∅∅∅": "hora de verano del Amazonas", "COT": "hora estándar de Colombia", "OEZ": "hora estándar de Europa oriental", "UYST": "hora de verano de Uruguay", "VET": "hora de Venezuela", "WIT": "hora de Indonesia oriental", "PST": "hora estándar del Pacífico", "HAT": "hora de verano de Terranova", "WITA": "hora de Indonesia central", "CDT": "hora de verano central", "PDT": "hora de verano del Pacífico", "IST": "hora estándar de la India", "CLT": "hora estándar de Chile", "HEPMX": "hora de verano del Pacífico de México", "AKDT": "hora de verano de Alaska", "COST": "hora de verano de Colombia", "HENOMX": "hora de verano del noroeste de México", "ADT": "hora de verano del Atlántico", "HADT": "hora de verano de Hawái-Aleutiano", "ACWDT": "hora de verano de Australia centroccidental", "AWST": "hora estándar de Australia occidental", "LHST": "hora estándar de Lord Howe", "CLST": "hora de verano de Chile", "ARST": "hora de verano de Argentina", "WAST": "hora de verano de África occidental"},
+ timezones: map[string]string{"PDT": "hora de verano del Pacífico", "NZDT": "hora de verano de Nueva Zelanda", "WESZ": "hora de verano de Europa occidental", "HEEG": "hora de verano de Groenlandia oriental", "HENOMX": "hora de verano del noroeste de México", "SRT": "hora de Surinam", "SGT": "hora de Singapur", "HEOG": "hora de verano de Groenlandia occidental", "ARST": "hora de verano de Argentina", "AEST": "hora estándar de Australia oriental", "GYT": "hora de Guyana", "EAT": "hora de África oriental", "CHAST": "hora estándar de Chatham", "CAT": "hora de África central", "MEZ": "hora estándar de Europa central", "VET": "hora de Venezuela", "LHST": "hora estándar de Lord Howe", "ACWST": "hora estándar de Australia centroccidental", "HNEG": "hora estándar de Groenlandia oriental", "WITA": "hora de Indonesia central", "WIB": "hora de Indonesia occidental", "WART": "hora estándar de Argentina occidental", "HECU": "hora de verano de Cuba", "ECT": "hora de Ecuador", "OESZ": "hora de verano de Europa oriental", "COST": "hora de verano de Colombia", "CLST": "hora de verano de Chile", "BT": "hora de Bután", "MESZ": "hora de verano de Europa central", "JDT": "hora de verano de Japón", "GFT": "hora de la Guayana Francesa", "AKDT": "hora de verano de Alaska", "AEDT": "hora de verano de Australia oriental", "HADT": "hora de verano de Hawái-Aleutiano", "TMST": "hora de verano de Turkmenistán", "ACDT": "hora de verano de Australia central", "WAST": "hora de verano de África occidental", "HKST": "hora de verano de Hong Kong", "UYT": "hora estándar de Uruguay", "HEPMX": "hora de verano del Pacífico de México", "CLT": "hora estándar de Chile", "MDT": "Hora de verano de Macao", "CDT": "hora de verano central", "PST": "hora estándar del Pacífico", "GMT": "hora del meridiano de Greenwich", "TMT": "hora estándar de Turkmenistán", "HAST": "hora estándar de Hawái-Aleutiano", "IST": "hora estándar de la India", "ACWDT": "hora de verano de Australia centroccidental", "NZST": "hora estándar de Nueva Zelanda", "MST": "Hora estándar de Macao", "HNCU": "hora estándar de Cuba", "AST": "hora estándar del Atlántico", "WEZ": "hora estándar de Europa occidental", "WIT": "hora de Indonesia oriental", "AWDT": "hora de verano de Australia occidental", "JST": "hora estándar de Japón", "HNOG": "hora estándar de Groenlandia occidental", "MYT": "hora de Malasia", "UYST": "hora de verano de Uruguay", "COT": "hora estándar de Colombia", "HNT": "hora estándar de Terranova", "HAT": "hora de verano de Terranova", "HNPM": "hora estándar de San Pedro y Miquelón", "HEPM": "hora de verano de San Pedro y Miquelón", "LHDT": "hora de verano de Lord Howe", "WAT": "hora estándar de África occidental", "HKT": "hora estándar de Hong Kong", "ACST": "hora estándar de Australia central", "∅∅∅": "Hora de verano de Acre", "ChST": "hora estándar de Chamorro", "SAST": "hora de Sudáfrica", "AWST": "hora estándar de Australia occidental", "OEZ": "hora estándar de Europa oriental", "EST": "hora estándar oriental", "ART": "hora estándar de Argentina", "EDT": "hora de verano oriental", "HNNOMX": "hora estándar del noroeste de México", "AKST": "hora estándar de Alaska", "HNPMX": "hora estándar del Pacífico de México", "CST": "hora estándar central", "ADT": "hora de verano del Atlántico", "WARST": "hora de verano de Argentina occidental", "CHADT": "hora de verano de Chatham", "BOT": "hora de Bolivia"},
}
}
diff --git a/es_US/es_US.go b/es_US/es_US.go
index c04dc0b0..7954f87e 100644
--- a/es_US/es_US.go
+++ b/es_US/es_US.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"WART": "hora estándar de Argentina occidental", "GMT": "hora del meridiano de Greenwich", "EDT": "hora de verano oriental", "UYT": "hora estándar de Uruguay", "HEPM": "hora de verano de San Pedro y Miquelón", "CHADT": "hora de verano de Chatham", "JDT": "hora de verano de Japón", "HNEG": "hora estándar de Groenlandia oriental", "HADT": "hora de verano de Hawái-Aleutiano", "ACWDT": "hora de verano de Australia centroccidental", "MESZ": "hora de verano de Europa central", "EAT": "hora de África oriental", "EST": "hora estándar oriental", "GYT": "hora de Guyana", "HNT": "hora estándar de Terranova", "AWDT": "hora de verano de Australia occidental", "TMT": "hora estándar de Turkmenistán", "WAST": "hora de verano de África occidental", "ACWST": "hora estándar de Australia centroccidental", "MEZ": "hora estándar de Europa central", "WEZ": "hora estándar de Europa occidental", "AST": "hora estándar del Atlántico", "HNPM": "hora estándar de San Pedro y Miquelón", "ACDT": "hora de verano de Australia central", "HECU": "hora de verano de Cuba", "HEPMX": "hora de verano del Pacífico de México", "WARST": "hora de verano de Argentina occidental", "HAST": "hora estándar de Hawái-Aleutiano", "PST": "hora estándar del Pacífico", "LHST": "hora estándar de Lord Howe", "NZDT": "hora de verano de Nueva Zelanda", "CHAST": "hora estándar de Chatham", "WAT": "hora estándar de África occidental", "JST": "hora estándar de Japón", "AWST": "hora estándar de Australia occidental", "NZST": "hora estándar de Nueva Zelanda", "IST": "hora estándar de la India", "CLST": "hora de verano de Chile", "AEDT": "hora de verano de Australia oriental", "BOT": "hora de Bolivia", "AKDT": "hora de verano de Alaska", "HNOG": "hora estándar de Groenlandia occidental", "WITA": "hora de Indonesia central", "WIB": "hora de Indonesia occidental", "HAT": "hora de verano de Terranova", "ARST": "hora de verano de Argentina", "AEST": "hora estándar de Australia oriental", "LHDT": "hora de verano de Lord Howe", "HEEG": "hora de verano de Groenlandia oriental", "HENOMX": "hora de verano del noroeste de México", "UYST": "hora de verano de Uruguay", "ART": "hora estándar de Argentina", "HEOG": "hora de verano de Groenlandia occidental", "PDT": "hora de verano del Pacífico", "HKT": "hora estándar de Hong Kong", "TMST": "hora de verano de Turkmenistán", "CAT": "hora de África central", "MDT": "Hora de verano de Macao", "CLT": "hora estándar de Chile", "MYT": "hora de Malasia", "OEZ": "hora estándar de Europa oriental", "HNNOMX": "hora estándar del noroeste de México", "HNCU": "hora estándar de Cuba", "CDT": "hora de verano central", "MST": "Hora estándar de Macao", "HNPMX": "hora estándar del Pacífico de México", "AKST": "hora estándar de Alaska", "WESZ": "hora de verano de Europa occidental", "HKST": "hora de verano de Hong Kong", "SAST": "hora de Sudáfrica", "ECT": "hora de Ecuador", "SGT": "hora de Singapur", "WIT": "hora de Indonesia oriental", "SRT": "hora de Surinam", "BT": "hora de Bután", "∅∅∅": "hora de verano del Amazonas", "GFT": "hora de la Guayana Francesa", "COT": "hora estándar de Colombia", "ADT": "hora de verano del Atlántico", "CST": "hora estándar central", "VET": "hora de Venezuela", "ChST": "hora de Chamorro", "ACST": "hora estándar de Australia central", "OESZ": "hora de verano de Europa oriental", "COST": "hora de verano de Colombia"},
+ timezones: map[string]string{"WITA": "hora de Indonesia central", "SAST": "hora de Sudáfrica", "CHADT": "hora de verano de Chatham", "TMST": "hora de verano de Turkmenistán", "HAT": "hora de verano de Terranova", "HNEG": "hora estándar de Groenlandia oriental", "AEST": "hora estándar de Australia oriental", "HECU": "hora de verano de Cuba", "OEZ": "hora estándar de Europa oriental", "COT": "hora estándar de Colombia", "HEEG": "hora de verano de Groenlandia oriental", "MST": "hora estándar de las Montañas", "HNPM": "hora estándar de San Pedro y Miquelón", "WIB": "hora de Indonesia occidental", "NZDT": "hora de verano de Nueva Zelanda", "VET": "hora de Venezuela", "JDT": "hora de verano de Japón", "ACST": "hora estándar de Australia central", "MDT": "hora de verano de las Montañas", "ACWST": "hora estándar de Australia centroccidental", "AKST": "hora estándar de Alaska", "AKDT": "hora de verano de Alaska", "LHDT": "hora de verano de Lord Howe", "GYT": "hora de Guyana", "BOT": "hora de Bolivia", "HADT": "hora de verano de Hawái-Aleutiano", "ART": "hora estándar de Argentina", "MYT": "hora de Malasia", "WESZ": "hora de verano de Europa occidental", "EST": "hora estándar oriental", "HKST": "hora de verano de Hong Kong", "GFT": "hora de la Guayana Francesa", "LHST": "hora estándar de Lord Howe", "CDT": "hora de verano central", "IST": "hora estándar de la India", "CLT": "hora estándar de Chile", "HEOG": "hora de verano de Groenlandia occidental", "MEZ": "hora estándar de Europa central", "OESZ": "hora de verano de Europa oriental", "EDT": "hora de verano oriental", "COST": "hora de verano de Colombia", "∅∅∅": "hora de verano de las Azores", "EAT": "hora de África oriental", "NZST": "hora estándar de Nueva Zelanda", "JST": "hora estándar de Japón", "HKT": "hora estándar de Hong Kong", "BT": "hora de Bután", "HNT": "hora estándar de Terranova", "CST": "hora estándar central", "AWDT": "hora de verano de Australia occidental", "WAST": "hora de verano de África occidental", "HNCU": "hora estándar de Cuba", "ECT": "hora de Ecuador", "HNOG": "hora estándar de Groenlandia occidental", "AST": "hora estándar del Atlántico", "WEZ": "hora estándar de Europa occidental", "ACDT": "hora de verano de Australia central", "UYST": "hora de verano de Uruguay", "HNPMX": "hora estándar del Pacífico de México", "CHAST": "hora estándar de Chatham", "MESZ": "hora de verano de Europa central", "HNNOMX": "hora estándar del noroeste de México", "WAT": "hora estándar de África occidental", "ChST": "hora de Chamorro", "UYT": "hora estándar de Uruguay", "SGT": "hora de Singapur", "HAST": "hora estándar de Hawái-Aleutiano", "CAT": "hora de África central", "ADT": "hora de verano del Atlántico", "ARST": "hora de verano de Argentina", "HENOMX": "hora de verano del noroeste de México", "AEDT": "hora de verano de Australia oriental", "SRT": "hora de Surinam", "HEPMX": "hora de verano del Pacífico de México", "AWST": "hora estándar de Australia occidental", "PST": "hora estándar del Pacífico", "GMT": "hora del meridiano de Greenwich", "TMT": "hora estándar de Turkmenistán", "HEPM": "hora de verano de San Pedro y Miquelón", "ACWDT": "hora de verano de Australia centroccidental", "WART": "hora estándar de Argentina occidental", "WIT": "hora de Indonesia oriental", "PDT": "hora de verano del Pacífico", "WARST": "hora de verano de Argentina occidental", "CLST": "hora de verano de Chile"},
}
}
diff --git a/es_UY/es_UY.go b/es_UY/es_UY.go
index 0062cc0c..c334a5c8 100644
--- a/es_UY/es_UY.go
+++ b/es_UY/es_UY.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"ART": "hora estándar de Argentina", "HEOG": "hora de verano de Groenlandia occidental", "AWST": "hora estándar de Australia occidental", "MEZ": "hora estándar de Europa central", "COST": "hora de verano de Colombia", "UYST": "hora de verano de Uruguay", "COT": "hora estándar de Colombia", "MYT": "hora de Malasia", "AKDT": "hora de verano de Alaska", "AWDT": "hora de verano de Australia occidental", "HNPM": "hora estándar de San Pedro y Miquelón", "HNNOMX": "hora estándar del noroeste de México", "EDT": "hora de verano oriental", "AEDT": "hora de verano de Australia oriental", "HKT": "hora estándar de Hong Kong", "MESZ": "hora de verano de Europa central", "HEEG": "hora de verano de Groenlandia oriental", "GFT": "hora de la Guayana Francesa", "EAT": "hora de África oriental", "OEZ": "hora estándar de Europa oriental", "WART": "hora estándar de Argentina occidental", "EST": "hora estándar oriental", "AST": "hora estándar del Atlántico", "ADT": "hora de verano del Atlántico", "HNEG": "hora estándar de Groenlandia oriental", "WAST": "hora de verano de África occidental", "SGT": "hora de Singapur", "WEZ": "hora estándar de Europa occidental", "WESZ": "hora de verano de Europa occidental", "ACWST": "hora estándar de Australia centroccidental", "TMT": "hora estándar de Turkmenistán", "ACDT": "hora de verano de Australia central", "ECT": "hora de Ecuador", "HECU": "hora de verano de Cuba", "CDT": "hora de verano central", "HKST": "hora de verano de Hong Kong", "JST": "hora estándar de Japón", "WARST": "hora de verano de Argentina occidental", "HNCU": "hora estándar de Cuba", "HEPMX": "hora de verano del Pacífico de México", "CST": "hora estándar central", "SRT": "hora de Surinam", "CLST": "hora de verano de Chile", "CAT": "hora de África central", "WIB": "hora de Indonesia occidental", "PST": "hora estándar del Pacífico", "ACWDT": "hora de verano de Australia centroccidental", "HAT": "hora de verano de Terranova", "LHST": "hora estándar de Lord Howe", "CHAST": "hora estándar de Chatham", "CHADT": "hora de verano de Chatham", "JDT": "hora de verano de Japón", "CLT": "hora estándar de Chile", "ACST": "hora estándar de Australia central", "HNPMX": "hora estándar del Pacífico de México", "AKST": "hora estándar de Alaska", "HAST": "hora estándar de Hawái-Aleutiano", "NZDT": "hora de verano de Nueva Zelanda", "BOT": "hora de Bolivia", "NZST": "hora estándar de Nueva Zelanda", "WAT": "hora estándar de África occidental", "GMT": "hora del meridiano de Greenwich", "GYT": "hora de Guyana", "WIT": "hora de Indonesia oriental", "AEST": "hora estándar de Australia oriental", "WITA": "hora de Indonesia central", "LHDT": "hora de verano de Lord Howe", "∅∅∅": "hora de verano del Amazonas", "MST": "Hora estándar de Macao", "HEPM": "hora de verano de San Pedro y Miquelón", "TMST": "hora de verano de Turkmenistán", "OESZ": "hora de verano de Europa oriental", "ARST": "hora de verano de Argentina", "HNOG": "hora estándar de Groenlandia occidental", "HNT": "hora estándar de Terranova", "SAST": "hora de Sudáfrica", "HENOMX": "hora de verano del noroeste de México", "UYT": "hora estándar de Uruguay", "VET": "hora de Venezuela", "BT": "hora de Bután", "PDT": "hora de verano del Pacífico", "IST": "hora estándar de la India", "ChST": "hora estándar de Chamorro", "MDT": "Hora de verano de Macao", "HADT": "hora de verano de Hawái-Aleutiano"},
+ timezones: map[string]string{"AWST": "hora estándar de Australia occidental", "SGT": "hora de Singapur", "HADT": "hora de verano de Hawái-Aleutiano", "OEZ": "hora estándar de Europa oriental", "HNNOMX": "hora estándar del noroeste de México", "LHDT": "hora de verano de Lord Howe", "NZDT": "hora de verano de Nueva Zelanda", "VET": "hora de Venezuela", "ADT": "hora de verano del Atlántico", "MDT": "Hora de verano de Macao", "PDT": "hora de verano del Pacífico", "COST": "hora de verano de Colombia", "GFT": "hora de la Guayana Francesa", "WIB": "hora de Indonesia occidental", "AWDT": "hora de verano de Australia occidental", "CHADT": "hora de verano de Chatham", "WARST": "hora de verano de Argentina occidental", "WAT": "hora estándar de África occidental", "CHAST": "hora estándar de Chatham", "MYT": "hora de Malasia", "AKDT": "hora de verano de Alaska", "HNPM": "hora estándar de San Pedro y Miquelón", "CLT": "hora estándar de Chile", "HNOG": "hora estándar de Groenlandia occidental", "HEOG": "hora de verano de Groenlandia occidental", "GMT": "hora del meridiano de Greenwich", "AKST": "hora estándar de Alaska", "IST": "hora estándar de la India", "ACWST": "hora estándar de Australia centroccidental", "MST": "Hora estándar de Macao", "EDT": "hora de verano oriental", "HNT": "hora estándar de Terranova", "HEEG": "hora de verano de Groenlandia oriental", "UYST": "hora de verano de Uruguay", "BOT": "hora de Bolivia", "CAT": "hora de África central", "∅∅∅": "hora de verano del Amazonas", "ARST": "hora de verano de Argentina", "ACST": "hora estándar de Australia central", "BT": "hora de Bután", "GYT": "hora de Guyana", "JST": "hora estándar de Japón", "WEZ": "hora estándar de Europa occidental", "EST": "hora estándar oriental", "HKT": "hora estándar de Hong Kong", "WAST": "hora de verano de África occidental", "WITA": "hora de Indonesia central", "AEDT": "hora de verano de Australia oriental", "HECU": "hora de verano de Cuba", "ACDT": "hora de verano de Australia central", "CST": "hora estándar central", "ECT": "hora de Ecuador", "WESZ": "hora de verano de Europa occidental", "TMST": "hora de verano de Turkmenistán", "ART": "hora estándar de Argentina", "AEST": "hora estándar de Australia oriental", "SRT": "hora de Surinam", "EAT": "hora de África oriental", "HAST": "hora estándar de Hawái-Aleutiano", "ACWDT": "hora de verano de Australia centroccidental", "OESZ": "hora de verano de Europa oriental", "HNEG": "hora estándar de Groenlandia oriental", "HEPM": "hora de verano de San Pedro y Miquelón", "HEPMX": "hora de verano del Pacífico de México", "WIT": "hora de Indonesia oriental", "CDT": "hora de verano central", "CLST": "hora de verano de Chile", "AST": "hora estándar del Atlántico", "COT": "hora estándar de Colombia", "LHST": "hora estándar de Lord Howe", "SAST": "hora de Sudáfrica", "HNCU": "hora estándar de Cuba", "MEZ": "hora estándar de Europa central", "WART": "hora estándar de Argentina occidental", "HAT": "hora de verano de Terranova", "UYT": "hora estándar de Uruguay", "TMT": "hora estándar de Turkmenistán", "HKST": "hora de verano de Hong Kong", "HENOMX": "hora de verano del noroeste de México", "ChST": "hora estándar de Chamorro", "PST": "hora estándar del Pacífico", "NZST": "hora estándar de Nueva Zelanda", "MESZ": "hora de verano de Europa central", "JDT": "hora de verano de Japón", "HNPMX": "hora estándar del Pacífico de México"},
}
}
diff --git a/es_VE/es_VE.go b/es_VE/es_VE.go
index 4a01d091..48b82171 100644
--- a/es_VE/es_VE.go
+++ b/es_VE/es_VE.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a. C.", "d. C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "después de Cristo"},
- timezones: map[string]string{"WESZ": "hora de verano de Europa occidental", "TMST": "hora de verano de Turkmenistán", "ECT": "hora de Ecuador", "HNNOMX": "hora estándar del noroeste de México", "HNCU": "hora estándar de Cuba", "HNT": "hora estándar de Terranova", "AEST": "hora estándar de Australia oriental", "AEDT": "hora de verano de Australia oriental", "WAT": "hora estándar de África occidental", "COT": "hora estándar de Colombia", "HAST": "hora estándar de Hawái-Aleutiano", "ACWST": "hora estándar de Australia centroccidental", "ACWDT": "hora de verano de Australia centroccidental", "UYT": "hora estándar de Uruguay", "ARST": "hora de verano de Argentina", "HNOG": "hora estándar de Groenlandia occidental", "JDT": "hora de verano de Japón", "WART": "hora estándar de Argentina occidental", "COST": "hora de verano de Colombia", "CDT": "hora de verano central", "AWDT": "hora de verano de Australia occidental", "HNPM": "hora estándar de San Pedro y Miquelón", "∅∅∅": "hora de verano del Amazonas", "HECU": "hora de verano de Cuba", "GYT": "hora de Guyana", "CST": "hora estándar central", "HEOG": "hora de verano de Groenlandia occidental", "OESZ": "hora de verano de Europa oriental", "EDT": "hora de verano oriental", "HNPMX": "hora estándar del Pacífico de México", "ADT": "hora de verano del Atlántico", "AKDT": "hora de verano de Alaska", "HAT": "hora de verano de Terranova", "WITA": "hora de Indonesia central", "MESZ": "hora de verano de Europa central", "JST": "hora estándar de Japón", "GMT": "hora del meridiano de Greenwich", "AST": "hora estándar del Atlántico", "PST": "hora estándar del Pacífico", "HEPM": "hora de verano de San Pedro y Miquelón", "LHDT": "hora de verano de Lord Howe", "NZST": "hora estándar de Nueva Zelanda", "CHAST": "hora estándar de Chatham", "EST": "hora estándar oriental", "WIB": "hora de Indonesia occidental", "HADT": "hora de verano de Hawái-Aleutiano", "WIT": "hora de Indonesia oriental", "WEZ": "hora estándar de Europa occidental", "BOT": "hora de Bolivia", "HNEG": "hora estándar de Groenlandia oriental", "CAT": "hora de África central", "HENOMX": "hora de verano del noroeste de México", "MYT": "hora de Malasia", "UYST": "hora de verano de Uruguay", "LHST": "hora estándar de Lord Howe", "CLT": "hora estándar de Chile", "CLST": "hora de verano de Chile", "TMT": "hora estándar de Turkmenistán", "ACST": "hora estándar de Australia central", "ACDT": "hora de verano de Australia central", "AKST": "hora estándar de Alaska", "VET": "hora de Venezuela", "HKT": "hora estándar de Hong Kong", "NZDT": "hora de verano de Nueva Zelanda", "CHADT": "hora de verano de Chatham", "IST": "hora estándar de la India", "BT": "hora de Bután", "HEEG": "hora de verano de Groenlandia oriental", "WAST": "hora de verano de África occidental", "WARST": "hora de verano de Argentina occidental", "SGT": "hora de Singapur", "MDT": "Hora de verano de Macao", "PDT": "hora de verano del Pacífico", "AWST": "hora estándar de Australia occidental", "SAST": "hora de Sudáfrica", "ChST": "hora estándar de Chamorro", "GFT": "hora de la Guayana Francesa", "EAT": "hora de África oriental", "ART": "hora estándar de Argentina", "MEZ": "hora estándar de Europa central", "OEZ": "hora estándar de Europa oriental", "HKST": "hora de verano de Hong Kong", "MST": "Hora estándar de Macao", "HEPMX": "hora de verano del Pacífico de México", "SRT": "hora de Surinam"},
+ timezones: map[string]string{"AKDT": "hora de verano de Alaska", "GYT": "hora de Guyana", "CDT": "hora de verano central", "MEZ": "hora estándar de Europa central", "OEZ": "hora estándar de Europa oriental", "AEST": "hora estándar de Australia oriental", "UYST": "hora de verano de Uruguay", "HAST": "hora estándar de Hawái-Aleutiano", "JST": "hora estándar de Japón", "WAT": "hora estándar de África occidental", "CHADT": "hora de verano de Chatham", "ECT": "hora de Ecuador", "NZST": "hora estándar de Nueva Zelanda", "HEPM": "hora de verano de San Pedro y Miquelón", "TMT": "hora estándar de Turkmenistán", "COST": "hora de verano de Colombia", "HAT": "hora de verano de Terranova", "HNCU": "hora estándar de Cuba", "AWST": "hora estándar de Australia occidental", "∅∅∅": "hora de verano del Amazonas", "JDT": "hora de verano de Japón", "ADT": "hora de verano del Atlántico", "AWDT": "hora de verano de Australia occidental", "ARST": "hora de verano de Argentina", "EAT": "hora de África oriental", "BOT": "hora de Bolivia", "PST": "hora estándar del Pacífico", "VET": "hora de Venezuela", "HNOG": "hora estándar de Groenlandia occidental", "HENOMX": "hora de verano del noroeste de México", "COT": "hora estándar de Colombia", "HEEG": "hora de verano de Groenlandia oriental", "GFT": "hora de la Guayana Francesa", "ACWST": "hora estándar de Australia centroccidental", "MST": "Hora estándar de Macao", "ART": "hora estándar de Argentina", "WIT": "hora de Indonesia oriental", "SGT": "hora de Singapur", "ACWDT": "hora de verano de Australia centroccidental", "AST": "hora estándar del Atlántico", "ACDT": "hora de verano de Australia central", "WAST": "hora de verano de África occidental", "HNEG": "hora estándar de Groenlandia oriental", "HNPMX": "hora estándar del Pacífico de México", "HECU": "hora de verano de Cuba", "MESZ": "hora de verano de Europa central", "WESZ": "hora de verano de Europa occidental", "HKST": "hora de verano de Hong Kong", "EST": "hora estándar oriental", "HNT": "hora estándar de Terranova", "SAST": "hora de Sudáfrica", "WIB": "hora de Indonesia occidental", "CLT": "hora estándar de Chile", "UYT": "hora estándar de Uruguay", "SRT": "hora de Surinam", "LHST": "hora estándar de Lord Howe", "CST": "hora estándar central", "MYT": "hora de Malasia", "HEOG": "hora de verano de Groenlandia occidental", "HKT": "hora estándar de Hong Kong", "TMST": "hora de verano de Turkmenistán", "ACST": "hora estándar de Australia central", "ChST": "hora estándar de Chamorro", "PDT": "hora de verano del Pacífico", "WARST": "hora de verano de Argentina occidental", "CLST": "hora de verano de Chile", "BT": "hora de Bután", "HEPMX": "hora de verano del Pacífico de México", "CAT": "hora de África central", "WEZ": "hora estándar de Europa occidental", "GMT": "hora del meridiano de Greenwich", "EDT": "hora de verano oriental", "HNNOMX": "hora estándar del noroeste de México", "AKST": "hora estándar de Alaska", "HNPM": "hora estándar de San Pedro y Miquelón", "HADT": "hora de verano de Hawái-Aleutiano", "IST": "hora estándar de la India", "WART": "hora estándar de Argentina occidental", "AEDT": "hora de verano de Australia oriental", "WITA": "hora de Indonesia central", "LHDT": "hora de verano de Lord Howe", "CHAST": "hora estándar de Chatham", "NZDT": "hora de verano de Nueva Zelanda", "OESZ": "hora de verano de Europa oriental", "MDT": "Hora de verano de Macao"},
}
}
diff --git a/et/et.go b/et/et.go
index d183b7de..c31c19a8 100644
--- a/et/et.go
+++ b/et/et.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"eKr", "pKr"},
erasNarrow: []string{"eKr", "pKr"},
erasWide: []string{"enne Kristust", "pärast Kristust"},
- timezones: map[string]string{"TMST": "Türkmenistani suveaeg", "COT": "Colombia standardaeg", "HENOMX": "Loode-Mehhiko suveaeg", "WITA": "Kesk-Indoneesia aeg", "JDT": "Jaapani suveaeg", "EAT": "Ida-Aafrika aeg", "WART": "Lääne-Argentina standardaeg", "WARST": "Lääne-Argentina suveaeg", "NZST": "Uus-Meremaa standardaeg", "∅∅∅": "Amazonase suveaeg", "ACDT": "Kesk-Austraalia suveaeg", "ECT": "Ecuadori aeg", "CHADT": "Chathami suveaeg", "VET": "Venezuela aeg", "ART": "Argentina standardaeg", "AWST": "Lääne-Austraalia standardaeg", "AWDT": "Lääne-Austraalia suveaeg", "MEZ": "Kesk-Euroopa standardaeg", "EDT": "Idaranniku suveaeg", "UYST": "Uruguay suveaeg", "WESZ": "Lääne-Euroopa suveaeg", "MESZ": "Kesk-Euroopa suveaeg", "COST": "Colombia suveaeg", "MST": "Mäestikuvööndi standardaeg", "ACWST": "Kesk-Lääne Austraalia standardaeg", "CLT": "Tšiili standardaeg", "HEEG": "Ida-Gröönimaa suveaeg", "UYT": "Uruguay standardaeg", "ACWDT": "Kesk-Lääne Austraalia suveaeg", "CHAST": "Chathami standardaeg", "SGT": "Singapuri standardaeg", "HADT": "Hawaii-Aleuudi suveaeg", "WIB": "Lääne-Indoneesia aeg", "HAST": "Hawaii-Aleuudi standardaeg", "HEOG": "Lääne-Gröönimaa suveaeg", "PST": "Vaikse ookeani standardaeg", "IST": "India aeg", "GMT": "Greenwichi aeg", "AKDT": "Alaska suveaeg", "LHDT": "Lord Howe’i suveaeg", "JST": "Jaapani standardaeg", "BOT": "Boliivia aeg", "WAT": "Lääne-Aafrika standardaeg", "OESZ": "Ida-Euroopa suveaeg", "HNCU": "Kuuba standardaeg", "CST": "Kesk-Ameerika standardaeg", "AKST": "Alaska standardaeg", "CDT": "Kesk-Ameerika suveaeg", "HNOG": "Lääne-Gröönimaa standardaeg", "LHST": "Lord Howe’i standardaeg", "SAST": "Lõuna-Aafrika standardaeg", "AST": "Atlandi standardaeg", "MYT": "Malaisia \u200b\u200baeg", "WIT": "Ida-Indoneesia aeg", "HAT": "Newfoundlandi suveaeg", "HKST": "Hongkongi suveaeg", "CLST": "Tšiili suveaeg", "TMT": "Türkmenistani standardaeg", "CAT": "Kesk-Aafrika aeg", "GYT": "Guyana aeg", "HECU": "Kuuba suveaeg", "EST": "Idaranniku standardaeg", "WAST": "Lääne-Aafrika suveaeg", "SRT": "Suriname aeg", "PDT": "Vaikse ookeani suveaeg", "WEZ": "Lääne-Euroopa standardaeg", "GFT": "Prantsuse Guajaana aeg", "HNPMX": "Mehhiko Vaikse ookeani standardaeg", "ADT": "Atlandi suveaeg", "HNNOMX": "Loode-Mehhiko standardaeg", "HNT": "Newfoundlandi standardaeg", "HNPM": "Saint-Pierre’i ja Miqueloni standardaeg", "NZDT": "Uus-Meremaa suveaeg", "ARST": "Argentina suveaeg", "AEST": "Ida-Austraalia standardaeg", "AEDT": "Ida-Austraalia suveaeg", "HKT": "Hongkongi standardaeg", "HEPM": "Saint-Pierre’i ja Miqueloni suveaeg", "BT": "Bhutani aeg", "ChST": "Tšamorro standardaeg", "HNEG": "Ida-Gröönimaa standardaeg", "ACST": "Kesk-Austraalia standardaeg", "OEZ": "Ida-Euroopa standardaeg", "HEPMX": "Mehhiko Vaikse ookeani suveaeg", "MDT": "Mäestikuvööndi suveaeg"},
+ timezones: map[string]string{"SAST": "Lõuna-Aafrika standardaeg", "SGT": "Singapuri standardaeg", "PST": "Vaikse ookeani standardaeg", "MEZ": "Kesk-Euroopa standardaeg", "OEZ": "Ida-Euroopa standardaeg", "OESZ": "Ida-Euroopa suveaeg", "MST": "MST", "∅∅∅": "Assooride suveaeg", "HEEG": "Ida-Gröönimaa suveaeg", "HKST": "Hongkongi suveaeg", "CHAST": "Chathami standardaeg", "NZST": "Uus-Meremaa standardaeg", "JDT": "Jaapani suveaeg", "MDT": "MDT", "COST": "Colombia suveaeg", "WIB": "Lääne-Indoneesia aeg", "AWST": "Lääne-Austraalia standardaeg", "CLT": "Tšiili standardaeg", "HNNOMX": "Loode-Mehhiko standardaeg", "HAT": "Newfoundlandi suveaeg", "AKST": "Alaska standardaeg", "AKDT": "Alaska suveaeg", "SRT": "Suriname aeg", "WIT": "Ida-Indoneesia aeg", "WESZ": "Lääne-Euroopa suveaeg", "ACDT": "Kesk-Austraalia suveaeg", "HEPMX": "Mehhiko Vaikse ookeani suveaeg", "HECU": "Kuuba suveaeg", "ACWST": "Kesk-Lääne Austraalia standardaeg", "HEOG": "Lääne-Gröönimaa suveaeg", "HEPM": "Saint-Pierre’i ja Miqueloni suveaeg", "GYT": "Guyana aeg", "HAST": "Hawaii-Aleuudi standardaeg", "ACWDT": "Kesk-Lääne Austraalia suveaeg", "GMT": "Greenwichi aeg", "MYT": "Malaisia \u200b\u200baeg", "ART": "Argentina standardaeg", "CST": "Kesk-Ameerika standardaeg", "EAT": "Ida-Aafrika aeg", "NZDT": "Uus-Meremaa suveaeg", "TMT": "Türkmenistani standardaeg", "TMST": "Türkmenistani suveaeg", "LHDT": "Lord Howe’i suveaeg", "WITA": "Kesk-Indoneesia aeg", "EDT": "Idaranniku suveaeg", "HNCU": "Kuuba standardaeg", "CDT": "Kesk-Ameerika suveaeg", "WART": "Lääne-Argentina standardaeg", "HNOG": "Lääne-Gröönimaa standardaeg", "HNPM": "Saint-Pierre’i ja Miqueloni standardaeg", "HNPMX": "Mehhiko Vaikse ookeani standardaeg", "CHADT": "Chathami suveaeg", "HADT": "Hawaii-Aleuudi suveaeg", "VET": "Venezuela aeg", "EST": "Idaranniku standardaeg", "HENOMX": "Loode-Mehhiko suveaeg", "AWDT": "Lääne-Austraalia suveaeg", "CAT": "Kesk-Aafrika aeg", "MESZ": "Kesk-Euroopa suveaeg", "CLST": "Tšiili suveaeg", "ADT": "Atlandi suveaeg", "WAT": "Lääne-Aafrika standardaeg", "GFT": "Prantsuse Guajaana aeg", "ChST": "Tšamorro standardaeg", "ECT": "Ecuadori aeg", "UYST": "Uruguay suveaeg", "ARST": "Argentina suveaeg", "HKT": "Hongkongi standardaeg", "AEST": "Ida-Austraalia standardaeg", "AEDT": "Ida-Austraalia suveaeg", "PDT": "Vaikse ookeani suveaeg", "ACST": "Kesk-Austraalia standardaeg", "HNEG": "Ida-Gröönimaa standardaeg", "AST": "Atlandi standardaeg", "WEZ": "Lääne-Euroopa standardaeg", "WAST": "Lääne-Aafrika suveaeg", "HNT": "Newfoundlandi standardaeg", "BOT": "Boliivia aeg", "JST": "Jaapani standardaeg", "WARST": "Lääne-Argentina suveaeg", "COT": "Colombia standardaeg", "BT": "Bhutani aeg", "UYT": "Uruguay standardaeg", "IST": "India aeg", "LHST": "Lord Howe’i standardaeg"},
}
}
diff --git a/et_EE/et_EE.go b/et_EE/et_EE.go
index 40ae0a87..34ebcf05 100644
--- a/et_EE/et_EE.go
+++ b/et_EE/et_EE.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"eKr", "pKr"},
erasNarrow: []string{"eKr", "pKr"},
erasWide: []string{"enne Kristust", "pärast Kristust"},
- timezones: map[string]string{"MYT": "Malaisia \u200b\u200baeg", "AWST": "Lääne-Austraalia standardaeg", "TMST": "Türkmenistani suveaeg", "ADT": "Atlandi suveaeg", "ACST": "Kesk-Austraalia standardaeg", "ACDT": "Kesk-Austraalia suveaeg", "WAT": "Lääne-Aafrika standardaeg", "ECT": "Ecuadori aeg", "HENOMX": "Loode-Mehhiko suveaeg", "HNOG": "Lääne-Gröönimaa standardaeg", "HKT": "Hongkongi standardaeg", "JDT": "Jaapani suveaeg", "SGT": "Singapuri standardaeg", "HECU": "Kuuba suveaeg", "GYT": "Guyana aeg", "MEZ": "Kesk-Euroopa standardaeg", "∅∅∅": "Amazonase suveaeg", "OEZ": "Ida-Euroopa standardaeg", "WIT": "Ida-Indoneesia aeg", "BT": "Bhutani aeg", "CHADT": "Chathami suveaeg", "GFT": "Prantsuse Guajaana aeg", "EDT": "Idaranniku suveaeg", "ARST": "Argentina suveaeg", "WITA": "Kesk-Indoneesia aeg", "LHDT": "Lord Howe’i suveaeg", "CLST": "Tšiili suveaeg", "HNNOMX": "Loode-Mehhiko standardaeg", "UYT": "Uruguay standardaeg", "SRT": "Suriname aeg", "ACWDT": "Kesk-Lääne Austraalia suveaeg", "AEST": "Ida-Austraalia standardaeg", "HEPMX": "Mehhiko Vaikse ookeani suveaeg", "WESZ": "Lääne-Euroopa suveaeg", "HAT": "Newfoundlandi suveaeg", "HEEG": "Ida-Gröönimaa suveaeg", "HEPM": "Saint-Pierre’i ja Miqueloni suveaeg", "ChST": "Tšamorro standardaeg", "GMT": "Greenwichi aeg", "MDT": "MDT", "UYST": "Uruguay suveaeg", "WIB": "Lääne-Indoneesia aeg", "IST": "India aeg", "EAT": "Ida-Aafrika aeg", "COST": "Colombia suveaeg", "AKDT": "Alaska suveaeg", "CDT": "Kesk-Ameerika suveaeg", "HNPM": "Saint-Pierre’i ja Miqueloni standardaeg", "WAST": "Lääne-Aafrika suveaeg", "EST": "Idaranniku standardaeg", "PST": "Vaikse ookeani standardaeg", "AKST": "Alaska standardaeg", "CST": "Kesk-Ameerika standardaeg", "PDT": "Vaikse ookeani suveaeg", "HKST": "Hongkongi suveaeg", "CHAST": "Chathami standardaeg", "MESZ": "Kesk-Euroopa suveaeg", "WART": "Lääne-Argentina standardaeg", "HADT": "Hawaii-Aleuudi suveaeg", "HNT": "Newfoundlandi standardaeg", "ART": "Argentina standardaeg", "HNCU": "Kuuba standardaeg", "VET": "Venezuela aeg", "HEOG": "Lääne-Gröönimaa suveaeg", "AWDT": "Lääne-Austraalia suveaeg", "HNPMX": "Mehhiko Vaikse ookeani standardaeg", "NZST": "Uus-Meremaa standardaeg", "SAST": "Lõuna-Aafrika standardaeg", "TMT": "Türkmenistani standardaeg", "COT": "Colombia standardaeg", "MST": "MST", "AST": "Atlandi standardaeg", "WEZ": "Lääne-Euroopa standardaeg", "LHST": "Lord Howe’i standardaeg", "CAT": "Kesk-Aafrika aeg", "HNEG": "Ida-Gröönimaa standardaeg", "OESZ": "Ida-Euroopa suveaeg", "HAST": "Hawaii-Aleuudi standardaeg", "AEDT": "Ida-Austraalia suveaeg", "JST": "Jaapani standardaeg", "BOT": "Boliivia aeg", "WARST": "Lääne-Argentina suveaeg", "ACWST": "Kesk-Lääne Austraalia standardaeg", "NZDT": "Uus-Meremaa suveaeg", "CLT": "Tšiili standardaeg"},
+ timezones: map[string]string{"∅∅∅": "Brasiilia suveaeg", "WARST": "Lääne-Argentina suveaeg", "HNPMX": "Mehhiko Vaikse ookeani standardaeg", "CAT": "Kesk-Aafrika aeg", "WITA": "Kesk-Indoneesia aeg", "HNCU": "Kuuba standardaeg", "CLST": "Tšiili suveaeg", "HENOMX": "Loode-Mehhiko suveaeg", "HEPMX": "Mehhiko Vaikse ookeani suveaeg", "CDT": "Kesk-Ameerika suveaeg", "ECT": "Ecuadori aeg", "NZST": "Uus-Meremaa standardaeg", "JST": "Jaapani standardaeg", "HNOG": "Lääne-Gröönimaa standardaeg", "HNPM": "Saint-Pierre’i ja Miqueloni standardaeg", "SRT": "Suriname aeg", "GYT": "Guyana aeg", "PST": "Vaikse ookeani standardaeg", "MESZ": "Kesk-Euroopa suveaeg", "OEZ": "Ida-Euroopa standardaeg", "OESZ": "Ida-Euroopa suveaeg", "ACST": "Kesk-Austraalia standardaeg", "COST": "Colombia suveaeg", "WIB": "Lääne-Indoneesia aeg", "CHAST": "Chathami standardaeg", "IST": "India aeg", "ACWST": "Kesk-Lääne Austraalia standardaeg", "WESZ": "Lääne-Euroopa suveaeg", "EST": "Idaranniku standardaeg", "HKST": "Hongkongi suveaeg", "HEEG": "Ida-Gröönimaa suveaeg", "BOT": "Boliivia aeg", "MYT": "Malaisia \u200b\u200baeg", "WART": "Lääne-Argentina standardaeg", "CLT": "Tšiili standardaeg", "HKT": "Hongkongi standardaeg", "HAT": "Newfoundlandi suveaeg", "AEST": "Ida-Austraalia standardaeg", "UYST": "Uruguay suveaeg", "HECU": "Kuuba suveaeg", "PDT": "Vaikse ookeani suveaeg", "MST": "MST", "ARST": "Argentina suveaeg", "AKST": "Alaska standardaeg", "AEDT": "Ida-Austraalia suveaeg", "GFT": "Prantsuse Guajaana aeg", "ChST": "Tšamorro standardaeg", "EAT": "Ida-Aafrika aeg", "NZDT": "Uus-Meremaa suveaeg", "JDT": "Jaapani suveaeg", "WEZ": "Lääne-Euroopa standardaeg", "MDT": "MDT", "ACDT": "Kesk-Austraalia suveaeg", "HNNOMX": "Loode-Mehhiko standardaeg", "AKDT": "Alaska suveaeg", "HADT": "Hawaii-Aleuudi suveaeg", "ADT": "Atlandi suveaeg", "HNEG": "Ida-Gröönimaa standardaeg", "AWST": "Lääne-Austraalia standardaeg", "AWDT": "Lääne-Austraalia suveaeg", "ACWDT": "Kesk-Lääne Austraalia suveaeg", "HNT": "Newfoundlandi standardaeg", "CST": "Kesk-Ameerika standardaeg", "WIT": "Ida-Indoneesia aeg", "TMT": "Türkmenistani standardaeg", "WAT": "Lääne-Aafrika standardaeg", "WAST": "Lääne-Aafrika suveaeg", "UYT": "Uruguay standardaeg", "LHST": "Lord Howe’i standardaeg", "LHDT": "Lord Howe’i suveaeg", "CHADT": "Chathami suveaeg", "SGT": "Singapuri standardaeg", "MEZ": "Kesk-Euroopa standardaeg", "AST": "Atlandi standardaeg", "GMT": "Greenwichi aeg", "EDT": "Idaranniku suveaeg", "BT": "Bhutani aeg", "ART": "Argentina standardaeg", "COT": "Colombia standardaeg", "HEPM": "Saint-Pierre’i ja Miqueloni suveaeg", "VET": "Venezuela aeg", "HEOG": "Lääne-Gröönimaa suveaeg", "TMST": "Türkmenistani suveaeg", "SAST": "Lõuna-Aafrika standardaeg", "HAST": "Hawaii-Aleuudi standardaeg"},
}
}
diff --git a/eu/eu.go b/eu/eu.go
index 558a8247..e1509493 100644
--- a/eu/eu.go
+++ b/eu/eu.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"K.a.", "K.o."},
erasNarrow: []string{"", ""},
erasWide: []string{"K.a.", "Kristo ondoren"},
- timezones: map[string]string{"HADT": "Hawaii-Aleutiar uharteetako udako ordutegia", "TMST": "Turkmenistango udako ordua", "OESZ": "Europa ekialdeko udako ordua", "HENOMX": "Mexikoko ipar-ekialdeko udako ordutegia", "AKDT": "Alaskako udako ordutegia", "ChST": "Chamorroko ordu estandarra", "HNEG": "Groenlandia ekialdeko ordutegi estandarra", "GYT": "Guyanako ordua", "TMT": "Turkmenistango ordu estandarra", "UYT": "Uruguayko ordu estandarra", "PST": "Ipar Amerikako Pazifikoko ordutegi estandarra", "UYST": "Uruguayko udako ordua", "LHDT": "Lord Howeko udako ordua", "CHADT": "Chathamgo udako ordua", "ECT": "Ekuadorreko ordua", "WARST": "Argentina mendebaldeko udako ordutegia", "ACWDT": "Australia erdi-mendebaldeko udako ordua", "HNT": "Ternuako ordutegi estandarra", "CLT": "Txileko ordu estandarra", "WIB": "Indonesia mendebaldeko ordua", "WIT": "Indonesia ekialdeko ordua", "PDT": "Ipar Amerikako Pazifikoko udako ordutegia", "MDT": "MDT", "ADT": "Atlantikoko udako ordutegia", "HAST": "Hawaii-Aleutiar uharteetako ordutegi estandarra", "BT": "Bhutango ordua", "LHST": "Lord Howeko ordu estandarra", "NZDT": "Zeelanda Berriko udako ordua", "CLST": "Txileko udako ordua", "WART": "Argentina mendebaldeko ordutegia estandarra", "HECU": "Kubako udako ordutegia", "AST": "Atlantikoko ordutegi estandarra", "HEOG": "Groenlandia mendebaldeko udako ordutegia", "MESZ": "Europa erdialdeko udako ordua", "CAT": "Afrika erdialdeko ordua", "WAT": "Afrika mendebaldeko ordu estandarra", "WAST": "Afrika mendebaldeko udako ordua", "EST": "Ipar Amerikako ekialdeko ordutegi estandarra", "CDT": "Ipar Amerikako erdialdeko udako ordutegia", "AEDT": "Australia ekialdeko udako ordua", "HEPMX": "Mexikoko Pazifikoko udako ordutegia", "HAT": "Ternuako udako ordutegia", "CHAST": "Chathamgo ordu estandarra", "JDT": "Japoniako udako ordua", "OEZ": "Europa ekialdeko ordu estandarra", "MST": "MST", "COT": "Kolonbiako ordu estandarra", "EDT": "Ipar Amerikako ekialdeko udako ordutegia", "ARST": "Argentinako udako ordutegia", "GMT": "Greenwich meridianoko ordua", "AWST": "Australia mendebaldeko ordu estandarra", "HNPM": "Saint-Pierre eta Mikeluneko ordutegi estandarra", "NZST": "Zeelanda Berriko ordu estandarra", "ACST": "Australia erdialdeko ordu estandarra", "EAT": "Afrika ekialdeko ordua", "MYT": "Malaysiako ordua", "VET": "Venezuelako ordua", "WEZ": "Europa mendebaldeko ordu estandarra", "HKT": "Hong Kongo ordu estandarra", "SRT": "Surinamgo ordua", "WESZ": "Europa mendebaldeko udako ordua", "HNOG": "Groenlandia mendebaldeko ordutegi estandarra", "AWDT": "Australia mendebaldeko udako ordua", "MEZ": "Europa erdialdeko ordu estandarra", "IST": "Indiako ordua", "∅∅∅": "Amazoniako udako ordutegia", "AKST": "Alaskako ordutegi estandarra", "ACWST": "Australia erdi-mendebaldeko ordu estandarra", "ART": "Argentinako ordutegi estandarra", "AEST": "Australia ekialdeko ordu estandarra", "HKST": "Hong Kongo udako ordua", "SAST": "Afrika hegoaldeko ordua", "SGT": "Singapurreko ordu estandarra", "HNPMX": "Mexikoko Pazifikoko ordutegi estandarra", "CST": "Ipar Amerikako erdialdeko ordu estandarra", "WITA": "Indonesia erdialdeko ordua", "COST": "Kolonbiako udako ordua", "HEPM": "Saint-Pierre eta Mikeluneko udako ordutegia", "BOT": "Boliviako ordutegia", "HEEG": "Groenlandia ekialdeko udako ordutegia", "ACDT": "Australia erdialdeko udako ordua", "JST": "Japoniako ordu estandarra", "GFT": "Guyana Frantseseko ordua", "HNNOMX": "Mexikoko ipar-ekialdeko ordutegi estandarra", "HNCU": "Kubako ordutegi estandarra"},
+ timezones: map[string]string{"EST": "Ipar Amerikako ekialdeko ordutegi estandarra", "UYST": "Uruguayko udako ordua", "SGT": "Singapurreko ordu estandarra", "PDT": "Ipar Amerikako Pazifikoko udako ordutegia", "ECT": "Ekuadorreko ordua", "ADT": "Atlantikoko udako ordutegia", "WESZ": "Europa mendebaldeko udako ordua", "MYT": "Malaysiako ordua", "HEPM": "Saint-Pierre eta Mikeluneko udako ordutegia", "HECU": "Kubako udako ordutegia", "MEZ": "Europa erdialdeko ordu estandarra", "AST": "Atlantikoko ordutegi estandarra", "MST": "MST", "ART": "Argentinako ordutegi estandarra", "UYT": "Uruguayko ordu estandarra", "WIB": "Indonesia mendebaldeko ordua", "BOT": "Boliviako ordutegia", "WAST": "Afrika mendebaldeko udako ordua", "COST": "Kolonbiako udako ordua", "BT": "Bhutango ordua", "ChST": "Chamorroko ordu estandarra", "HEPMX": "Mexikoko Pazifikoko udako ordutegia", "HNOG": "Groenlandia mendebaldeko ordutegi estandarra", "WART": "Argentina mendebaldeko ordutegia estandarra", "ARST": "Argentinako udako ordutegia", "ACST": "Australia erdialdeko ordu estandarra", "HNPMX": "Mexikoko Pazifikoko ordutegi estandarra", "GYT": "Guyanako ordua", "CAT": "Afrika erdialdeko ordua", "WEZ": "Europa mendebaldeko ordu estandarra", "HEEG": "Groenlandia ekialdeko udako ordutegia", "EAT": "Afrika ekialdeko ordua", "WIT": "Indonesia ekialdeko ordua", "NZDT": "Zeelanda Berriko udako ordua", "MESZ": "Europa erdialdeko udako ordua", "OEZ": "Europa ekialdeko ordu estandarra", "OESZ": "Europa ekialdeko udako ordua", "WARST": "Argentina mendebaldeko udako ordutegia", "CLT": "Txileko ordu estandarra", "PST": "Ipar Amerikako Pazifikoko ordutegi estandarra", "HAST": "Hawaii-Aleutiar uharteetako ordutegi estandarra", "CLST": "Txileko udako ordua", "TMST": "Turkmenistango udako ordua", "CST": "Ipar Amerikako erdialdeko ordu estandarra", "CHAST": "Chathamgo ordu estandarra", "VET": "Venezuelako ordua", "LHST": "Lord Howeko ordu estandarra", "HNCU": "Kubako ordutegi estandarra", "ACWST": "Australia erdi-mendebaldeko ordu estandarra", "MDT": "MDT", "HAT": "Ternuako udako ordutegia", "∅∅∅": "Amazoniako udako ordutegia", "HKT": "Hong Kongo ordu estandarra", "ACDT": "Australia erdialdeko udako ordua", "GFT": "Guyana Frantseseko ordua", "AWST": "Australia mendebaldeko ordu estandarra", "ACWDT": "Australia erdi-mendebaldeko udako ordua", "HKST": "Hong Kongo udako ordua", "HENOMX": "Mexikoko ipar-ekialdeko udako ordutegia", "AKDT": "Alaskako udako ordutegia", "LHDT": "Lord Howeko udako ordua", "NZST": "Zeelanda Berriko ordu estandarra", "WAT": "Afrika mendebaldeko ordu estandarra", "COT": "Kolonbiako ordu estandarra", "HNT": "Ternuako ordutegi estandarra", "WITA": "Indonesia erdialdeko ordua", "HNPM": "Saint-Pierre eta Mikeluneko ordutegi estandarra", "HADT": "Hawaii-Aleutiar uharteetako udako ordutegia", "HEOG": "Groenlandia mendebaldeko udako ordutegia", "GMT": "Greenwich meridianoko ordua", "HNEG": "Groenlandia ekialdeko ordutegi estandarra", "AEDT": "Australia ekialdeko udako ordua", "JST": "Japoniako ordu estandarra", "JDT": "Japoniako udako ordua", "TMT": "Turkmenistango ordu estandarra", "AEST": "Australia ekialdeko ordu estandarra", "IST": "Indiako ordua", "EDT": "Ipar Amerikako ekialdeko udako ordutegia", "SAST": "Afrika hegoaldeko ordua", "SRT": "Surinamgo ordua", "CDT": "Ipar Amerikako erdialdeko udako ordutegia", "AWDT": "Australia mendebaldeko udako ordua", "CHADT": "Chathamgo udako ordua", "HNNOMX": "Mexikoko ipar-ekialdeko ordutegi estandarra", "AKST": "Alaskako ordutegi estandarra"},
}
}
diff --git a/eu_ES/eu_ES.go b/eu_ES/eu_ES.go
index 94cd9504..de496212 100644
--- a/eu_ES/eu_ES.go
+++ b/eu_ES/eu_ES.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"K.a.", "K.o."},
erasNarrow: []string{"", ""},
erasWide: []string{"K.a.", "Kristo ondoren"},
- timezones: map[string]string{"CAT": "Afrika erdialdeko ordua", "WIB": "Indonesia mendebaldeko ordua", "BT": "Bhutango ordua", "HEPM": "Saint-Pierre eta Mikeluneko udako ordutegia", "LHST": "Lord Howeko ordu estandarra", "LHDT": "Lord Howeko udako ordua", "ECT": "Ekuadorreko ordua", "WAST": "Afrika mendebaldeko udako ordua", "WEZ": "Europa mendebaldeko ordu estandarra", "CHAST": "Chathamgo ordu estandarra", "MEZ": "Europa erdialdeko ordu estandarra", "JST": "Japoniako ordu estandarra", "WAT": "Afrika mendebaldeko ordu estandarra", "PST": "Ipar Amerikako Pazifikoko ordutegi estandarra", "PDT": "Ipar Amerikako Pazifikoko udako ordutegia", "AKDT": "Alaskako udako ordutegia", "UYST": "Uruguayko udako ordua", "WESZ": "Europa mendebaldeko udako ordua", "ACWDT": "Australia erdi-mendebaldeko udako ordua", "AKST": "Alaskako ordutegi estandarra", "MESZ": "Europa erdialdeko udako ordua", "TMST": "Turkmenistango udako ordua", "HEPMX": "Mexikoko Pazifikoko udako ordutegia", "EDT": "Ipar Amerikako ekialdeko udako ordutegia", "OESZ": "Europa ekialdeko udako ordua", "CST": "Ipar Amerikako erdialdeko ordu estandarra", "HKT": "Hong Kongo ordu estandarra", "HNPM": "Saint-Pierre eta Mikeluneko ordutegi estandarra", "NZDT": "Zeelanda Berriko udako ordua", "SAST": "Afrika hegoaldeko ordua", "ACST": "Australia erdialdeko ordu estandarra", "HKST": "Hong Kongo udako ordua", "EAT": "Afrika ekialdeko ordua", "WARST": "Argentina mendebaldeko udako ordutegia", "AST": "Atlantikoko ordutegi estandarra", "HNT": "Ternuako ordutegi estandarra", "WIT": "Indonesia ekialdeko ordua", "AWDT": "Australia mendebaldeko udako ordua", "COT": "Kolonbiako ordu estandarra", "ACWST": "Australia erdi-mendebaldeko ordu estandarra", "AEDT": "Australia ekialdeko udako ordua", "ChST": "Chamorroko ordu estandarra", "CDT": "Ipar Amerikako erdialdeko udako ordutegia", "HNOG": "Groenlandia mendebaldeko ordutegi estandarra", "CLST": "Txileko udako ordua", "AEST": "Australia ekialdeko ordu estandarra", "HADT": "Hawaii-Aleutiar uharteetako udako ordutegia", "WITA": "Indonesia erdialdeko ordua", "GMT": "Greenwich meridianoko ordua", "MST": "MST", "HNPMX": "Mexikoko Pazifikoko ordutegi estandarra", "UYT": "Uruguayko ordu estandarra", "HAST": "Hawaii-Aleutiar uharteetako ordutegi estandarra", "HAT": "Ternuako udako ordutegia", "IST": "Indiako ordua", "GFT": "Guyana Frantseseko ordua", "HENOMX": "Mexikoko ipar-ekialdeko udako ordutegia", "VET": "Venezuelako ordua", "MYT": "Malaysiako ordua", "HEOG": "Groenlandia mendebaldeko udako ordutegia", "NZST": "Zeelanda Berriko ordu estandarra", "CLT": "Txileko ordu estandarra", "EST": "Ipar Amerikako ekialdeko ordutegi estandarra", "GYT": "Guyanako ordua", "SRT": "Surinamgo ordua", "ARST": "Argentinako udako ordutegia", "BOT": "Boliviako ordutegia", "COST": "Kolonbiako udako ordua", "HECU": "Kubako udako ordutegia", "ADT": "Atlantikoko udako ordutegia", "SGT": "Singapurreko ordu estandarra", "HNCU": "Kubako ordutegi estandarra", "MDT": "MDT", "ART": "Argentinako ordutegi estandarra", "TMT": "Turkmenistango ordu estandarra", "ACDT": "Australia erdialdeko udako ordua", "OEZ": "Europa ekialdeko ordu estandarra", "HNNOMX": "Mexikoko ipar-ekialdeko ordutegi estandarra", "HEEG": "Groenlandia ekialdeko udako ordutegia", "WART": "Argentina mendebaldeko ordutegia estandarra", "AWST": "Australia mendebaldeko ordu estandarra", "CHADT": "Chathamgo udako ordua", "∅∅∅": "Amazoniako udako ordutegia", "JDT": "Japoniako udako ordua", "HNEG": "Groenlandia ekialdeko ordutegi estandarra"},
+ timezones: map[string]string{"AKST": "Alaskako ordutegi estandarra", "ChST": "Chamorroko ordu estandarra", "LHST": "Lord Howeko ordu estandarra", "IST": "Indiako ordua", "OEZ": "Europa ekialdeko ordu estandarra", "GFT": "Guyana Frantseseko ordua", "HENOMX": "Mexikoko ipar-ekialdeko udako ordutegia", "LHDT": "Lord Howeko udako ordua", "HKST": "Hong Kongo udako ordua", "HNNOMX": "Mexikoko ipar-ekialdeko ordutegi estandarra", "COST": "Kolonbiako udako ordua", "ACWDT": "Australia erdi-mendebaldeko udako ordua", "WAT": "Afrika mendebaldeko ordu estandarra", "SRT": "Surinamgo ordua", "GYT": "Guyanako ordua", "WIB": "Indonesia mendebaldeko ordua", "CHAST": "Chathamgo ordu estandarra", "WART": "Argentina mendebaldeko ordutegia estandarra", "MDT": "MDT", "HNCU": "Kubako ordutegi estandarra", "PST": "Ipar Amerikako Pazifikoko ordutegi estandarra", "HNT": "Ternuako ordutegi estandarra", "HAT": "Ternuako udako ordutegia", "AWDT": "Australia mendebaldeko udako ordua", "CHADT": "Chathamgo udako ordua", "HNOG": "Groenlandia mendebaldeko ordutegi estandarra", "HEOG": "Groenlandia mendebaldeko udako ordutegia", "HECU": "Kubako udako ordutegia", "WESZ": "Europa mendebaldeko udako ordua", "ACST": "Australia erdialdeko ordu estandarra", "HNPMX": "Mexikoko Pazifikoko ordutegi estandarra", "AWST": "Australia mendebaldeko ordu estandarra", "SGT": "Singapurreko ordu estandarra", "CAT": "Afrika erdialdeko ordua", "MEZ": "Europa erdialdeko ordu estandarra", "WEZ": "Europa mendebaldeko ordu estandarra", "HEEG": "Groenlandia ekialdeko udako ordutegia", "WITA": "Indonesia erdialdeko ordua", "HEPM": "Saint-Pierre eta Mikeluneko udako ordutegia", "MESZ": "Europa erdialdeko udako ordua", "TMST": "Turkmenistango udako ordua", "HEPMX": "Mexikoko Pazifikoko udako ordutegia", "HADT": "Hawaii-Aleutiar uharteetako udako ordutegia", "JST": "Japoniako ordu estandarra", "ARST": "Argentinako udako ordutegia", "UYT": "Uruguayko ordu estandarra", "EAT": "Afrika ekialdeko ordua", "CST": "Ipar Amerikako erdialdeko ordu estandarra", "HAST": "Hawaii-Aleutiar uharteetako ordutegi estandarra", "ACWST": "Australia erdi-mendebaldeko ordu estandarra", "OESZ": "Europa ekialdeko udako ordua", "HKT": "Hong Kongo ordu estandarra", "∅∅∅": "Peruko udako ordua", "AKDT": "Alaskako udako ordutegia", "WIT": "Indonesia ekialdeko ordua", "ECT": "Ekuadorreko ordua", "WARST": "Argentina mendebaldeko udako ordutegia", "BT": "Bhutango ordua", "EST": "Ipar Amerikako ekialdeko ordutegi estandarra", "AST": "Atlantikoko ordutegi estandarra", "GMT": "Greenwich meridianoko ordua", "TMT": "Turkmenistango ordu estandarra", "AEDT": "Australia ekialdeko udako ordua", "UYST": "Uruguayko udako ordua", "HNPM": "Saint-Pierre eta Mikeluneko ordutegi estandarra", "JDT": "Japoniako udako ordua", "CLT": "Txileko ordu estandarra", "CDT": "Ipar Amerikako erdialdeko udako ordutegia", "NZDT": "Zeelanda Berriko udako ordua", "ART": "Argentinako ordutegi estandarra", "EDT": "Ipar Amerikako ekialdeko udako ordutegia", "COT": "Kolonbiako ordu estandarra", "HNEG": "Groenlandia ekialdeko ordutegi estandarra", "AEST": "Australia ekialdeko ordu estandarra", "PDT": "Ipar Amerikako Pazifikoko udako ordutegia", "VET": "Venezuelako ordua", "MYT": "Malaysiako ordua", "MST": "MST", "WAST": "Afrika mendebaldeko udako ordua", "ACDT": "Australia erdialdeko udako ordua", "SAST": "Afrika hegoaldeko ordua", "BOT": "Boliviako ordutegia", "NZST": "Zeelanda Berriko ordu estandarra", "CLST": "Txileko udako ordua", "ADT": "Atlantikoko udako ordutegia"},
}
}
diff --git a/ewo/ewo.go b/ewo/ewo.go
index 66bec8f1..7eb519aa 100644
--- a/ewo/ewo.go
+++ b/ewo/ewo.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"oyk", "ayk"},
erasNarrow: []string{"", ""},
erasWide: []string{"osúsúa Yésus kiri", "ámvus Yésus Kirís"},
- timezones: map[string]string{"AKST": "AKST", "HNOG": "HNOG", "WITA": "WITA", "CAT": "CAT", "HNPMX": "HNPMX", "ACWST": "ACWST", "CHADT": "CHADT", "HEPM": "HEPM", "MEZ": "MEZ", "MESZ": "MESZ", "HEEG": "HEEG", "TMST": "TMST", "MDT": "MDT", "UYT": "UYT", "PST": "PST", "WAST": "WAST", "EDT": "EDT", "HKT": "HKT", "HNEG": "HNEG", "NZST": "NZST", "CHAST": "CHAST", "WART": "WART", "ADT": "ADT", "HADT": "HADT", "VET": "VET", "WAT": "WAT", "ACWDT": "ACWDT", "HAT": "HAT", "CLT": "CLT", "LHDT": "LHDT", "JST": "JST", "ACDT": "ACDT", "EAT": "EAT", "COST": "COST", "MST": "MST", "AKDT": "AKDT", "WIT": "WIT", "WARST": "WARST", "EST": "EST", "WEZ": "WEZ", "JDT": "JDT", "LHST": "LHST", "BOT": "BOT", "GFT": "GFT", "TMT": "TMT", "OEZ": "OEZ", "HNCU": "HNCU", "AEST": "AEST", "AWDT": "AWDT", "COT": "COT", "HNNOMX": "HNNOMX", "GYT": "GYT", "WESZ": "WESZ", "ChST": "ChST", "WIB": "WIB", "CLST": "CLST", "HENOMX": "HENOMX", "IST": "IST", "HAST": "HAST", "PDT": "PDT", "HKST": "HKST", "HEOG": "HEOG", "HNT": "HNT", "ARST": "ARST", "AEDT": "AEDT", "HNPM": "HNPM", "HECU": "HECU", "BT": "BT", "SRT": "SRT", "NZDT": "NZDT", "SAST": "SAST", "ACST": "ACST", "OESZ": "OESZ", "ECT": "ECT", "GMT": "GMT", "HEPMX": "HEPMX", "AST": "AST", "SGT": "SGT", "∅∅∅": "∅∅∅", "MYT": "MYT", "ART": "ART", "AWST": "AWST", "UYST": "UYST", "CST": "CST", "CDT": "CDT"},
+ timezones: map[string]string{"COT": "COT", "ChST": "ChST", "SAST": "SAST", "AWST": "AWST", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "EST": "EST", "ACDT": "ACDT", "WESZ": "WESZ", "HEOG": "HEOG", "HEPM": "HEPM", "CHADT": "CHADT", "ACWST": "ACWST", "HKST": "HKST", "HEPMX": "HEPMX", "WITA": "WITA", "AKST": "AKST", "EAT": "EAT", "SGT": "SGT", "WAST": "WAST", "TMST": "TMST", "BT": "BT", "UYT": "UYT", "LHST": "LHST", "HECU": "HECU", "CHAST": "CHAST", "WART": "WART", "JDT": "JDT", "HNOG": "HNOG", "AST": "AST", "EDT": "EDT", "HNEG": "HNEG", "GYT": "GYT", "AWDT": "AWDT", "PST": "PST", "CDT": "CDT", "MYT": "MYT", "ART": "ART", "ARST": "ARST", "HAST": "HAST", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "GMT": "GMT", "HKT": "HKT", "ACST": "ACST", "UYST": "UYST", "WIB": "WIB", "PDT": "PDT", "ACWDT": "ACWDT", "MDT": "MDT", "WIT": "WIT", "WEZ": "WEZ", "MST": "MST", "OEZ": "OEZ", "HEEG": "HEEG", "CST": "CST", "WARST": "WARST", "CLT": "CLT", "ADT": "ADT", "HNT": "HNT", "SRT": "SRT", "HADT": "HADT", "CAT": "CAT", "NZDT": "NZDT", "MEZ": "MEZ", "VET": "VET", "TMT": "TMT", "BOT": "BOT", "ECT": "ECT", "HNNOMX": "HNNOMX", "COST": "COST", "HAT": "HAT", "AEST": "AEST", "GFT": "GFT", "LHDT": "LHDT", "NZST": "NZST", "JST": "JST", "HNPM": "HNPM", "CLST": "CLST", "AKDT": "AKDT", "WAT": "WAT", "AEDT": "AEDT", "HNCU": "HNCU", "IST": "IST", "OESZ": "OESZ"},
}
}
diff --git a/ewo_CM/ewo_CM.go b/ewo_CM/ewo_CM.go
index 2213149f..99f68121 100644
--- a/ewo_CM/ewo_CM.go
+++ b/ewo_CM/ewo_CM.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"oyk", "ayk"},
erasNarrow: []string{"", ""},
erasWide: []string{"osúsúa Yésus kiri", "ámvus Yésus Kirís"},
- timezones: map[string]string{"WARST": "WARST", "WESZ": "WESZ", "AWST": "AWST", "HKT": "HKT", "HEPM": "HEPM", "NZST": "NZST", "CLT": "CLT", "TMST": "TMST", "CHAST": "CHAST", "WART": "WART", "UYT": "UYT", "UYST": "UYST", "ACWDT": "ACWDT", "ACST": "ACST", "HENOMX": "HENOMX", "HAT": "HAT", "MEZ": "MEZ", "HEEG": "HEEG", "SRT": "SRT", "WAT": "WAT", "AKDT": "AKDT", "HAST": "HAST", "PST": "PST", "TMT": "TMT", "EAT": "EAT", "AKST": "AKST", "ADT": "ADT", "AWDT": "AWDT", "WITA": "WITA", "HNCU": "HNCU", "HECU": "HECU", "WIB": "WIB", "ART": "ART", "IST": "IST", "SAST": "SAST", "EST": "EST", "GYT": "GYT", "HNT": "HNT", "LHST": "LHST", "OEZ": "OEZ", "HNPMX": "HNPMX", "∅∅∅": "∅∅∅", "CHADT": "CHADT", "BOT": "BOT", "AST": "AST", "BT": "BT", "WEZ": "WEZ", "HNOG": "HNOG", "HEOG": "HEOG", "PDT": "PDT", "HKST": "HKST", "CLST": "CLST", "HADT": "HADT", "HNPM": "HNPM", "MESZ": "MESZ", "MYT": "MYT", "AEST": "AEST", "JST": "JST", "CDT": "CDT", "MST": "MST", "ARST": "ARST", "LHDT": "LHDT", "GFT": "GFT", "WAST": "WAST", "CAT": "CAT", "COST": "COST", "HEPMX": "HEPMX", "EDT": "EDT", "VET": "VET", "ChST": "ChST", "ACDT": "ACDT", "SGT": "SGT", "GMT": "GMT", "CST": "CST", "WIT": "WIT", "AEDT": "AEDT", "OESZ": "OESZ", "COT": "COT", "HNNOMX": "HNNOMX", "ACWST": "ACWST", "JDT": "JDT", "ECT": "ECT", "NZDT": "NZDT", "HNEG": "HNEG", "MDT": "MDT"},
+ timezones: map[string]string{"HAT": "HAT", "AWST": "AWST", "WARST": "WARST", "MDT": "MDT", "WAT": "WAT", "HKST": "HKST", "ACDT": "ACDT", "AKDT": "AKDT", "GYT": "GYT", "JST": "JST", "HNT": "HNT", "GFT": "GFT", "SAST": "SAST", "HNCU": "HNCU", "CHADT": "CHADT", "HADT": "HADT", "OEZ": "OEZ", "OESZ": "OESZ", "WEZ": "WEZ", "BOT": "BOT", "CAT": "CAT", "WART": "WART", "WESZ": "WESZ", "WAST": "WAST", "COST": "COST", "HEPM": "HEPM", "CDT": "CDT", "CHAST": "CHAST", "TMST": "TMST", "ART": "ART", "WITA": "WITA", "ChST": "ChST", "WIB": "WIB", "PST": "PST", "MYT": "MYT", "AST": "AST", "HKT": "HKT", "HNEG": "HNEG", "HECU": "HECU", "PDT": "PDT", "JDT": "JDT", "CLT": "CLT", "COT": "COT", "AKST": "AKST", "ECT": "ECT", "NZDT": "NZDT", "ACWDT": "ACWDT", "CLST": "CLST", "ACST": "ACST", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "VET": "VET", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "AEST": "AEST", "AEDT": "AEDT", "HNPM": "HNPM", "HNOG": "HNOG", "EAT": "EAT", "AWDT": "AWDT", "IST": "IST", "MESZ": "MESZ", "NZST": "NZST", "GMT": "GMT", "EDT": "EDT", "LHST": "LHST", "LHDT": "LHDT", "HNPMX": "HNPMX", "CST": "CST", "SGT": "SGT", "ADT": "ADT", "BT": "BT", "UYT": "UYT", "UYST": "UYST", "SRT": "SRT", "HEOG": "HEOG", "TMT": "TMT", "ARST": "ARST", "EST": "EST", "HENOMX": "HENOMX", "HAST": "HAST", "MEZ": "MEZ", "MST": "MST", "WIT": "WIT", "ACWST": "ACWST"},
}
}
diff --git a/fa/fa.go b/fa/fa.go
index 951a3b18..8781c133 100644
--- a/fa/fa.go
+++ b/fa/fa.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ق.م.", "م."},
erasNarrow: []string{"ق", "م"},
erasWide: []string{"قبل از میلاد", "میلادی"},
- timezones: map[string]string{"HADT": "وقت تابستانی هاوایی‐الوشن", "OESZ": "وقت تابستانی شرق اروپا", "ECT": "وقت اکوادور", "HNNOMX": "وقت عادی شمال غرب مکزیک", "HENOMX": "وقت تابستانی شمال غرب مکزیک", "HNPMX": "وقت عادی شرق مکزیک", "MDT": "وقت تابستانی کوهستانی امریکا", "ACWST": "وقت عادی مرکز-غرب استرالیا", "HNOG": "وقت عادی غرب گرینلند", "WITA": "وقت مرکز اندونزی", "NZDT": "وقت تابستانی زلاند نو", "IST": "وقت هند", "WARST": "وقت تابستانی غرب آرژانتین", "BT": "وقت بوتان", "PDT": "وقت تابستانی غرب امریکا", "HEOG": "وقت تابستانی غرب گرینلند", "MESZ": "وقت تابستانی مرکز اروپا", "HEEG": "وقت تابستانی شرق گرینلند", "ACST": "وقت عادی مرکز استرالیا", "PST": "وقت عادی غرب امریکا", "AWDT": "وقت تابستانی غرب استرالیا", "JST": "وقت عادی ژاپن", "WAST": "وقت تابستانی غرب افریقا", "COT": "وقت عادی کلمبیا", "EDT": "وقت تابستانی شرق امریکا", "GFT": "وقت گویان فرانسه", "EAT": "وقت شرق افریقا", "OEZ": "وقت عادی شرق اروپا", "AKST": "وقت عادی آلاسکا", "SRT": "وقت سورینام", "SGT": "وقت سنگاپور", "UYST": "وقت تابستانی اروگوئه", "HAST": "وقت عادی هاوایی‐الوشن", "HNPM": "وقت عادی سنت\u200cپیر و میکلون", "JDT": "وقت تابستانی ژاپن", "TMT": "وقت عادی ترکمنستان", "MYT": "وقت مالزی", "CLST": "وقت تابستانی شیلی", "∅∅∅": "وقت تابستانی آمازون", "HAT": "وقت تابستانی نیوفاندلند", "EST": "وقت عادی شرق امریکا", "UYT": "وقت عادی اروگوئه", "CDT": "وقت تابستانی مرکز امریکا", "AST": "وقت عادی آتلانتیک", "CST": "وقت عادی مرکز امریکا", "WIB": "وقت غرب اندونزی", "HNT": "وقت عادی نیوفاندلند", "ARST": "وقت تابستانی آرژانتین", "HKT": "وقت عادی هنگ\u200cکنگ", "SAST": "وقت عادی جنوب افریقا", "ChST": "وقت عادی چامورو", "HNCU": "وقت عادی کوبا", "LHDT": "وقت تابستانی لردهو", "ADT": "وقت تابستانی آتلانتیک", "WEZ": "وقت عادی غرب اروپا", "MEZ": "وقت عادی مرکز اروپا", "TMST": "وقت تابستانی ترکمنستان", "GMT": "وقت گرینویچ", "ACWDT": "وقت تابستانی مرکز-غرب استرالیا", "CAT": "وقت مرکز افریقا", "WAT": "وقت عادی غرب افریقا", "WART": "وقت عادی غرب آرژانتین", "COST": "وقت تابستانی کلمبیا", "HEPMX": "وقت تابستانی شرق مکزیک", "MST": "وقت عادی کوهستانی امریکا", "VET": "وقت ونزوئلا", "ART": "وقت عادی آرژانتین", "HEPM": "وقت تابستانی سنت\u200cپیر و میکلون", "LHST": "وقت عادی لردهو", "NZST": "وقت عادی زلاند نو", "HECU": "وقت تابستانی کوبا", "AKDT": "وقت تابستانی آلاسکا", "ACDT": "وقت تابستانی مرکز استرالیا", "WESZ": "وقت تابستانی غرب اروپا", "AEDT": "وقت تابستانی شرق استرالیا", "CHAST": "وقت عادی چت\u200cهام", "CHADT": "وقت تابستانی چت\u200cهام", "CLT": "وقت عادی شیلی", "BOT": "وقت بولیوی", "HNEG": "وقت عادی شرق گرینلند", "WIT": "وقت شرق اندونزی", "AEST": "وقت عادی شرق استرالیا", "AWST": "وقت عادی غرب استرالیا", "HKST": "وقت تابستانی هنگ\u200cکنگ", "GYT": "وقت گویان"},
+ timezones: map[string]string{"EAT": "وقت شرق افریقا", "AWST": "وقت عادی غرب استرالیا", "CAT": "وقت مرکز افریقا", "ADT": "وقت تابستانی آتلانتیک", "HKST": "وقت تابستانی هنگ\u200cکنگ", "NZST": "وقت عادی زلاند نو", "EDT": "وقت تابستانی شرق امریکا", "AKST": "وقت عادی آلاسکا", "SRT": "وقت سورینام", "JST": "وقت عادی ژاپن", "HNPMX": "وقت عادی شرق مکزیک", "HECU": "وقت تابستانی کوبا", "NZDT": "وقت تابستانی زلاند نو", "AEST": "وقت عادی شرق استرالیا", "MEZ": "وقت عادی مرکز اروپا", "VET": "وقت ونزوئلا", "AST": "وقت عادی آتلانتیک", "HNEG": "وقت عادی شرق گرینلند", "HNPM": "وقت عادی سنت\u200cپیر و میکلون", "PDT": "وقت تابستانی غرب امریکا", "IST": "وقت هند", "HEEG": "وقت تابستانی شرق گرینلند", "AKDT": "وقت تابستانی آلاسکا", "UYST": "وقت تابستانی اروگوئه", "HNT": "وقت عادی نیوفاندلند", "∅∅∅": "وقت تابستانی آزور", "LHDT": "وقت تابستانی لردهو", "MYT": "وقت مالزی", "WART": "وقت عادی غرب آرژانتین", "WEZ": "وقت عادی غرب اروپا", "WESZ": "وقت تابستانی غرب اروپا", "ART": "وقت عادی آرژانتین", "HEPM": "وقت تابستانی سنت\u200cپیر و میکلون", "CHAST": "وقت عادی چت\u200cهام", "SGT": "وقت سنگاپور", "MESZ": "وقت تابستانی مرکز اروپا", "ARST": "وقت تابستانی آرژانتین", "GFT": "وقت گویان فرانسه", "HAST": "وقت عادی هاوایی‐الوشن", "WARST": "وقت تابستانی غرب آرژانتین", "CLST": "وقت تابستانی شیلی", "EST": "وقت عادی شرق امریکا", "BT": "وقت بوتان", "HNOG": "وقت عادی غرب گرینلند", "GMT": "وقت گرینویچ", "BOT": "وقت بولیوی", "ACWST": "وقت عادی مرکز-غرب استرالیا", "ChST": "وقت عادی چامورو", "CLT": "وقت عادی شیلی", "GYT": "وقت گویان", "WIB": "وقت غرب اندونزی", "CDT": "وقت تابستانی مرکز امریکا", "AWDT": "وقت تابستانی غرب استرالیا", "PST": "وقت عادی غرب امریکا", "ACWDT": "وقت تابستانی مرکز-غرب استرالیا", "JDT": "وقت تابستانی ژاپن", "MDT": "وقت تابستانی ماکائو", "HNNOMX": "وقت عادی شمال غرب مکزیک", "HENOMX": "وقت تابستانی شمال غرب مکزیک", "UYT": "وقت عادی اروگوئه", "CST": "وقت عادی مرکز امریکا", "TMT": "وقت عادی ترکمنستان", "WAT": "وقت عادی غرب افریقا", "ACDT": "وقت تابستانی مرکز استرالیا", "HAT": "وقت تابستانی نیوفاندلند", "MST": "وقت عادی ماکائو", "HKT": "وقت عادی هنگ\u200cکنگ", "COST": "وقت تابستانی کلمبیا", "WITA": "وقت مرکز اندونزی", "TMST": "وقت تابستانی ترکمنستان", "SAST": "وقت عادی جنوب افریقا", "LHST": "وقت عادی لردهو", "HEPMX": "وقت تابستانی شرق مکزیک", "WIT": "وقت شرق اندونزی", "CHADT": "وقت تابستانی چت\u200cهام", "OEZ": "وقت عادی شرق اروپا", "OESZ": "وقت تابستانی شرق اروپا", "WAST": "وقت تابستانی غرب افریقا", "ACST": "وقت عادی مرکز استرالیا", "AEDT": "وقت تابستانی شرق استرالیا", "HNCU": "وقت عادی کوبا", "ECT": "وقت اکوادور", "HADT": "وقت تابستانی هاوایی‐الوشن", "HEOG": "وقت تابستانی غرب گرینلند", "COT": "وقت عادی کلمبیا"},
}
}
diff --git a/fa_AF/fa_AF.go b/fa_AF/fa_AF.go
index b76b3f0f..3c5ccc58 100644
--- a/fa_AF/fa_AF.go
+++ b/fa_AF/fa_AF.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ق.م.", "م."},
erasNarrow: []string{"ق", "م"},
erasWide: []string{"قبل از میلاد", "میلادی"},
- timezones: map[string]string{"ARST": "وقت تابستانی آرژانتین", "LHST": "وقت عادی لردهو", "CHADT": "وقت تابستانی چت\u200cهام", "SGT": "وقت سنگاپور", "∅∅∅": "وقت تابستانی آمازون", "ACDT": "وقت تابستانی مرکز استرالیا", "AWDT": "وقت تابستانی غرب استرالیا", "HKST": "وقت تابستانی هنگ\u200cکنگ", "AST": "وقت عادی آتلانتیک", "GYT": "وقت گویان", "ACWDT": "وقت تابستانی مرکز-غرب استرالیا", "WITA": "وقت مرکز اندونزی", "MST": "وقت عادی ماکائو", "HADT": "وقت تابستانی هاوایی‐الوشن", "ACWST": "وقت عادی مرکز-غرب استرالیا", "ART": "وقت عادی آرژانتین", "CLST": "وقت تابستانی شیلی", "OESZ": "وقت تابستانی شرق اروپا", "CST": "وقت عادی مرکز امریکا", "WIB": "وقت غرب اندونزی", "PDT": "وقت تابستانی غرب امریکا", "HECU": "وقت تابستانی کوبا", "NZST": "وقت عادی زلاند نو", "VET": "وقت ونزوئلا", "IST": "وقت هند", "JDT": "وقت تابستانی ژاپن", "BT": "وقت بوتان", "SRT": "وقت سورینام", "WEZ": "وقت عادی غرب اروپا", "AWST": "وقت عادی غرب استرالیا", "HEPM": "وقت تابستانی سنت\u200cپیر و میکلون", "MEZ": "وقت عادی مرکز اروپا", "TMST": "وقت تابستانی ترکمنستان", "HNNOMX": "وقت عادی شمال غرب مکزیک", "HENOMX": "وقت تابستانی شمال غرب مکزیک", "EDT": "وقت تابستانی شرق امریکا", "LHDT": "وقت تابستانی لردهو", "WAT": "وقت عادی غرب افریقا", "MDT": "وقت تابستانی ماکائو", "ADT": "وقت تابستانی آتلانتیک", "HAST": "وقت عادی هاوایی‐الوشن", "MESZ": "وقت تابستانی مرکز اروپا", "GFT": "وقت گویان فرانسه", "ACST": "وقت عادی مرکز استرالیا", "ECT": "وقت اکوادور", "WESZ": "وقت تابستانی غرب اروپا", "HAT": "وقت تابستانی نیوفاندلند", "HEOG": "وقت تابستانی غرب گرینلند", "AEDT": "وقت تابستانی شرق استرالیا", "JST": "وقت عادی ژاپن", "ChST": "وقت عادی چامورو", "CAT": "وقت مرکز افریقا", "COT": "وقت عادی کلمبیا", "HNPMX": "وقت عادی شرق مکزیک", "HEPMX": "وقت تابستانی شرق مکزیک", "MYT": "وقت مالزی", "NZDT": "وقت تابستانی زلاند نو", "HEEG": "وقت تابستانی شرق گرینلند", "WARST": "وقت تابستانی غرب آرژانتین", "COST": "وقت تابستانی کلمبیا", "HNCU": "وقت عادی کوبا", "EST": "وقت عادی شرق امریکا", "UYT": "وقت عادی اروگوئه", "UYST": "وقت تابستانی اروگوئه", "CDT": "وقت تابستانی مرکز امریکا", "WIT": "وقت شرق اندونزی", "PST": "وقت عادی غرب امریکا", "HKT": "وقت عادی هنگ\u200cکنگ", "CLT": "وقت عادی شیلی", "HNEG": "وقت عادی شرق گرینلند", "TMT": "وقت عادی ترکمنستان", "AKST": "وقت عادی آلاسکا", "HNT": "وقت عادی نیوفاندلند", "HNOG": "وقت عادی غرب گرینلند", "CHAST": "وقت عادی چت\u200cهام", "SAST": "وقت عادی جنوب افریقا", "WART": "وقت عادی غرب آرژانتین", "AKDT": "وقت تابستانی آلاسکا", "GMT": "وقت گرینویچ", "AEST": "وقت عادی شرق استرالیا", "HNPM": "وقت عادی سنت\u200cپیر و میکلون", "BOT": "وقت بولیوی", "EAT": "وقت شرق افریقا", "WAST": "وقت تابستانی غرب افریقا", "OEZ": "وقت عادی شرق اروپا"},
+ timezones: map[string]string{"NZDT": "وقت تابستانی زلاند نو", "OESZ": "وقت تابستانی شرق اروپا", "GMT": "وقت گرینویچ", "EST": "وقت عادی شرق امریکا", "PST": "وقت عادی غرب امریکا", "HNOG": "وقت عادی غرب گرینلند", "UYT": "وقت عادی اروگوئه", "UYST": "وقت تابستانی اروگوئه", "HEPM": "وقت تابستانی سنت\u200cپیر و میکلون", "HECU": "وقت تابستانی کوبا", "MDT": "وقت تابستانی ماکائو", "EDT": "وقت تابستانی شرق امریکا", "HNNOMX": "وقت عادی شمال غرب مکزیک", "BT": "وقت بوتان", "WESZ": "وقت تابستانی غرب اروپا", "HENOMX": "وقت تابستانی شمال غرب مکزیک", "AEST": "وقت عادی شرق استرالیا", "AEDT": "وقت تابستانی شرق استرالیا", "SAST": "وقت عادی جنوب افریقا", "BOT": "وقت بولیوی", "HAST": "وقت عادی هاوایی‐الوشن", "HADT": "وقت تابستانی هاوایی‐الوشن", "TMT": "وقت عادی ترکمنستان", "HKT": "وقت عادی هنگ\u200cکنگ", "COT": "وقت عادی کلمبیا", "IST": "وقت هند", "CLST": "وقت تابستانی شیلی", "COST": "وقت تابستانی کلمبیا", "GFT": "وقت گویان فرانسه", "WITA": "وقت مرکز اندونزی", "∅∅∅": "وقت تابستانی آمازون", "MST": "وقت عادی ماکائو", "HNPM": "وقت عادی سنت\u200cپیر و میکلون", "CHAST": "وقت عادی چت\u200cهام", "MYT": "وقت مالزی", "TMST": "وقت تابستانی ترکمنستان", "HNCU": "وقت عادی کوبا", "OEZ": "وقت عادی شرق اروپا", "WARST": "وقت تابستانی غرب آرژانتین", "HNEG": "وقت عادی شرق گرینلند", "HNPMX": "وقت عادی شرق مکزیک", "EAT": "وقت شرق افریقا", "AWST": "وقت عادی غرب استرالیا", "HEEG": "وقت تابستانی شرق گرینلند", "CHADT": "وقت تابستانی چت\u200cهام", "NZST": "وقت عادی زلاند نو", "MEZ": "وقت عادی مرکز اروپا", "JDT": "وقت تابستانی ژاپن", "AST": "وقت عادی آتلانتیک", "ADT": "وقت تابستانی آتلانتیک", "WAT": "وقت عادی غرب افریقا", "JST": "وقت عادی ژاپن", "WART": "وقت عادی غرب آرژانتین", "AWDT": "وقت تابستانی غرب استرالیا", "ACDT": "وقت تابستانی مرکز استرالیا", "AKST": "وقت عادی آلاسکا", "ACWST": "وقت عادی مرکز-غرب استرالیا", "MESZ": "وقت تابستانی مرکز اروپا", "CLT": "وقت عادی شیلی", "ART": "وقت عادی آرژانتین", "ARST": "وقت تابستانی آرژانتین", "WAST": "وقت تابستانی غرب افریقا", "AKDT": "وقت تابستانی آلاسکا", "CST": "وقت عادی مرکز امریکا", "PDT": "وقت تابستانی غرب امریکا", "ECT": "وقت اکوادور", "CAT": "وقت مرکز افریقا", "LHST": "وقت عادی لردهو", "HEPMX": "وقت تابستانی شرق مکزیک", "CDT": "وقت تابستانی مرکز امریکا", "WIT": "وقت شرق اندونزی", "VET": "وقت ونزوئلا", "WEZ": "وقت عادی غرب اروپا", "HKST": "وقت تابستانی هنگ\u200cکنگ", "SRT": "وقت سورینام", "GYT": "وقت گویان", "WIB": "وقت غرب اندونزی", "LHDT": "وقت تابستانی لردهو", "SGT": "وقت سنگاپور", "ACWDT": "وقت تابستانی مرکز-غرب استرالیا", "HEOG": "وقت تابستانی غرب گرینلند", "ACST": "وقت عادی مرکز استرالیا", "HNT": "وقت عادی نیوفاندلند", "HAT": "وقت تابستانی نیوفاندلند", "ChST": "وقت عادی چامورو"},
}
}
diff --git a/fa_IR/fa_IR.go b/fa_IR/fa_IR.go
index 5d1b1d84..8d5cad29 100644
--- a/fa_IR/fa_IR.go
+++ b/fa_IR/fa_IR.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ق.م.", "م."},
erasNarrow: []string{"ق", "م"},
erasWide: []string{"قبل از میلاد", "میلادی"},
- timezones: map[string]string{"HNPM": "وقت عادی سنت\u200cپیر و میکلون", "CHADT": "وقت تابستانی چت\u200cهام", "IST": "وقت هند", "TMT": "وقت عادی ترکمنستان", "EAT": "وقت شرق افریقا", "ART": "وقت عادی آرژانتین", "AWST": "وقت عادی غرب استرالیا", "WARST": "وقت تابستانی غرب آرژانتین", "MYT": "وقت مالزی", "HKST": "وقت تابستانی هنگ\u200cکنگ", "JST": "وقت عادی ژاپن", "HNNOMX": "وقت عادی شمال غرب مکزیک", "AKDT": "وقت تابستانی آلاسکا", "MESZ": "وقت تابستانی مرکز اروپا", "WIB": "وقت غرب اندونزی", "ACST": "وقت عادی مرکز استرالیا", "ACDT": "وقت تابستانی مرکز استرالیا", "OEZ": "وقت عادی شرق اروپا", "HNCU": "وقت عادی کوبا", "HAST": "وقت عادی هاوایی‐الوشن", "ARST": "وقت تابستانی آرژانتین", "AEST": "وقت عادی شرق استرالیا", "SRT": "وقت سورینام", "WITA": "وقت مرکز اندونزی", "HEPM": "وقت تابستانی سنت\u200cپیر و میکلون", "CHAST": "وقت عادی چت\u200cهام", "∅∅∅": "وقت تابستانی آمازون", "TMST": "وقت تابستانی ترکمنستان", "ECT": "وقت اکوادور", "HECU": "وقت تابستانی کوبا", "LHDT": "وقت تابستانی لردهو", "WAST": "وقت تابستانی غرب افریقا", "UYT": "وقت عادی اروگوئه", "CST": "وقت عادی مرکز امریکا", "CDT": "وقت تابستانی مرکز امریکا", "WESZ": "وقت تابستانی غرب اروپا", "ACWST": "وقت عادی مرکز-غرب استرالیا", "HAT": "وقت تابستانی نیوفاندلند", "NZDT": "وقت تابستانی زلاند نو", "CLT": "وقت عادی شیلی", "GFT": "وقت گویان فرانسه", "HNPMX": "وقت عادی شرق مکزیک", "ADT": "وقت تابستانی آتلانتیک", "HADT": "وقت تابستانی هاوایی‐الوشن", "VET": "وقت ونزوئلا", "PST": "وقت عادی غرب امریکا", "HNT": "وقت عادی نیوفاندلند", "AEDT": "وقت تابستانی شرق استرالیا", "HKT": "وقت عادی هنگ\u200cکنگ", "SAST": "وقت عادی جنوب افریقا", "CLST": "وقت تابستانی شیلی", "SGT": "وقت سنگاپور", "AST": "وقت عادی آتلانتیک", "GYT": "وقت گویان", "UYST": "وقت تابستانی اروگوئه", "AKST": "وقت عادی آلاسکا", "WIT": "وقت شرق اندونزی", "BOT": "وقت بولیوی", "WAT": "وقت عادی غرب افریقا", "OESZ": "وقت تابستانی شرق اروپا", "COT": "وقت عادی کلمبیا", "COST": "وقت تابستانی کلمبیا", "ACWDT": "وقت تابستانی مرکز-غرب استرالیا", "LHST": "وقت عادی لردهو", "HNEG": "وقت عادی شرق گرینلند", "WART": "وقت عادی غرب آرژانتین", "GMT": "وقت گرینویچ", "EST": "وقت عادی شرق امریکا", "HEPMX": "وقت تابستانی شرق مکزیک", "BT": "وقت بوتان", "MEZ": "وقت عادی مرکز اروپا", "NZST": "وقت عادی زلاند نو", "JDT": "وقت تابستانی ژاپن", "HENOMX": "وقت تابستانی شمال غرب مکزیک", "MDT": "وقت تابستانی ماکائو", "PDT": "وقت تابستانی غرب امریکا", "WEZ": "وقت عادی غرب اروپا", "AWDT": "وقت تابستانی غرب استرالیا", "HEEG": "وقت تابستانی شرق گرینلند", "CAT": "وقت مرکز افریقا", "EDT": "وقت تابستانی شرق امریکا", "HNOG": "وقت عادی غرب گرینلند", "ChST": "وقت عادی چامورو", "MST": "وقت عادی ماکائو", "HEOG": "وقت تابستانی غرب گرینلند"},
+ timezones: map[string]string{"LHDT": "وقت تابستانی لردهو", "HNPMX": "وقت عادی شرق مکزیک", "WIB": "وقت غرب اندونزی", "CHAST": "وقت عادی چت\u200cهام", "WAT": "وقت عادی غرب افریقا", "AKDT": "وقت تابستانی آلاسکا", "LHST": "وقت عادی لردهو", "HAST": "وقت عادی هاوایی‐الوشن", "HKST": "وقت تابستانی هنگ\u200cکنگ", "AEST": "وقت عادی شرق استرالیا", "UYST": "وقت تابستانی اروگوئه", "ACDT": "وقت تابستانی مرکز استرالیا", "HAT": "وقت تابستانی نیوفاندلند", "HADT": "وقت تابستانی هاوایی‐الوشن", "WESZ": "وقت تابستانی غرب اروپا", "MST": "وقت عادی ماکائو", "ACST": "وقت عادی مرکز استرالیا", "ART": "وقت عادی آرژانتین", "HEPMX": "وقت تابستانی شرق مکزیک", "HNCU": "وقت عادی کوبا", "HEOG": "وقت تابستانی غرب گرینلند", "AST": "وقت عادی آتلانتیک", "ADT": "وقت تابستانی آتلانتیک", "ECT": "وقت اکوادور", "CLT": "وقت عادی شیلی", "OESZ": "وقت تابستانی شرق اروپا", "ChST": "وقت عادی چامورو", "AWDT": "وقت تابستانی غرب استرالیا", "CHADT": "وقت تابستانی چت\u200cهام", "HNPM": "وقت عادی سنت\u200cپیر و میکلون", "OEZ": "وقت عادی شرق اروپا", "GMT": "وقت گرینویچ", "COST": "وقت تابستانی کلمبیا", "HNNOMX": "وقت عادی شمال غرب مکزیک", "MEZ": "وقت عادی مرکز اروپا", "GFT": "وقت گویان فرانسه", "AEDT": "وقت تابستانی شرق استرالیا", "AKST": "وقت عادی آلاسکا", "GYT": "وقت گویان", "BOT": "وقت بولیوی", "PDT": "وقت تابستانی غرب امریکا", "WEZ": "وقت عادی غرب اروپا", "HNT": "وقت عادی نیوفاندلند", "COT": "وقت عادی کلمبیا", "WIT": "وقت شرق اندونزی", "ACWDT": "وقت تابستانی مرکز-غرب استرالیا", "MYT": "وقت مالزی", "WAST": "وقت تابستانی غرب افریقا", "HNOG": "وقت عادی غرب گرینلند", "WITA": "وقت مرکز اندونزی", "UYT": "وقت عادی اروگوئه", "TMT": "وقت عادی ترکمنستان", "BT": "وقت بوتان", "HNEG": "وقت عادی شرق گرینلند", "CDT": "وقت تابستانی مرکز امریکا", "∅∅∅": "وقت تابستانی برازیلیا", "JST": "وقت عادی ژاپن", "CLST": "وقت تابستانی شیلی", "HKT": "وقت عادی هنگ\u200cکنگ", "HENOMX": "وقت تابستانی شمال غرب مکزیک", "SRT": "وقت سورینام", "CST": "وقت عادی مرکز امریکا", "CAT": "وقت مرکز افریقا", "IST": "وقت هند", "ARST": "وقت تابستانی آرژانتین", "ACWST": "وقت عادی مرکز-غرب استرالیا", "EST": "وقت عادی شرق امریکا", "HEEG": "وقت تابستانی شرق گرینلند", "HEPM": "وقت تابستانی سنت\u200cپیر و میکلون", "WART": "وقت عادی غرب آرژانتین", "WARST": "وقت تابستانی غرب آرژانتین", "TMST": "وقت تابستانی ترکمنستان", "EDT": "وقت تابستانی شرق امریکا", "EAT": "وقت شرق افریقا", "SGT": "وقت سنگاپور", "VET": "وقت ونزوئلا", "JDT": "وقت تابستانی ژاپن", "NZDT": "وقت تابستانی زلاند نو", "MESZ": "وقت تابستانی مرکز اروپا", "MDT": "وقت تابستانی ماکائو", "SAST": "وقت عادی جنوب افریقا", "HECU": "وقت تابستانی کوبا", "AWST": "وقت عادی غرب استرالیا", "PST": "وقت عادی غرب امریکا", "NZST": "وقت عادی زلاند نو"},
}
}
diff --git a/ff/ff.go b/ff/ff.go
index 8af14a0a..09e8e072 100644
--- a/ff/ff.go
+++ b/ff/ff.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"H-I", "C-I"},
erasNarrow: []string{"", ""},
erasWide: []string{"Hade Iisa", "Caggal Iisa"},
- timezones: map[string]string{"TMT": "TMT", "WARST": "WARST", "HNT": "HNT", "CLT": "CLT", "CLST": "CLST", "AKDT": "AKDT", "MESZ": "MESZ", "HNPM": "HNPM", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "COST": "COST", "AEST": "AEST", "CAT": "CAT", "SRT": "SRT", "JDT": "JDT", "TMST": "TMST", "ChST": "ChST", "BOT": "BOT", "CST": "CST", "UYST": "UYST", "WIT": "WIT", "WESZ": "WESZ", "GMT": "GMT", "SGT": "SGT", "EST": "EST", "AKST": "AKST", "HEPM": "HEPM", "HEOG": "HEOG", "HKT": "HKT", "∅∅∅": "∅∅∅", "EDT": "EDT", "AST": "AST", "UYT": "UYT", "WAST": "WAST", "CHADT": "CHADT", "MEZ": "MEZ", "ACST": "ACST", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "HAT": "HAT", "WEZ": "WEZ", "NZST": "NZST", "HEEG": "HEEG", "EAT": "EAT", "HAST": "HAST", "ARST": "ARST", "WIB": "WIB", "ACWST": "ACWST", "WITA": "WITA", "AEDT": "AEDT", "GFT": "GFT", "ECT": "ECT", "HEPMX": "HEPMX", "ADT": "ADT", "LHST": "LHST", "GYT": "GYT", "VET": "VET", "HKST": "HKST", "LHDT": "LHDT", "HNCU": "HNCU", "MST": "MST", "MYT": "MYT", "AWST": "AWST", "HNOG": "HNOG", "NZDT": "NZDT", "JST": "JST", "HNEG": "HNEG", "OEZ": "OEZ", "HNPMX": "HNPMX", "ART": "ART", "PDT": "PDT", "CHAST": "CHAST", "SAST": "SAST", "IST": "IST", "WART": "WART", "BT": "BT", "AWDT": "AWDT", "WAT": "WAT", "COT": "COT", "CDT": "CDT", "PST": "PST", "OESZ": "OESZ", "HECU": "HECU", "MDT": "MDT", "HADT": "HADT"},
+ timezones: map[string]string{"AST": "AST", "HKT": "HKT", "HENOMX": "HENOMX", "HNEG": "HNEG", "WIB": "WIB", "ACWST": "ACWST", "JST": "JST", "LHDT": "LHDT", "HNCU": "HNCU", "OESZ": "OESZ", "HNT": "HNT", "CLST": "CLST", "HEOG": "HEOG", "HKST": "HKST", "ACDT": "ACDT", "HEEG": "HEEG", "GYT": "GYT", "HADT": "HADT", "MEZ": "MEZ", "CST": "CST", "EAT": "EAT", "HECU": "HECU", "ART": "ART", "EST": "EST", "AWST": "AWST", "CHAST": "CHAST", "MESZ": "MESZ", "OEZ": "OEZ", "WESZ": "WESZ", "WAT": "WAT", "BT": "BT", "AKST": "AKST", "AWDT": "AWDT", "ECT": "ECT", "VET": "VET", "IST": "IST", "ACWDT": "ACWDT", "GMT": "GMT", "MDT": "MDT", "UYST": "UYST", "HEPM": "HEPM", "CHADT": "CHADT", "PDT": "PDT", "HNPM": "HNPM", "ADT": "ADT", "TMST": "TMST", "GFT": "GFT", "WITA": "WITA", "AEST": "AEST", "HEPMX": "HEPMX", "SRT": "SRT", "BOT": "BOT", "CAT": "CAT", "MST": "MST", "ARST": "ARST", "COST": "COST", "SAST": "SAST", "SGT": "SGT", "TMT": "TMT", "EDT": "EDT", "∅∅∅": "∅∅∅", "CLT": "CLT", "AKDT": "AKDT", "UYT": "UYT", "LHST": "LHST", "HNPMX": "HNPMX", "WIT": "WIT", "WART": "WART", "HAT": "HAT", "ChST": "ChST", "CDT": "CDT", "NZDT": "NZDT", "HNOG": "HNOG", "WARST": "WARST", "WEZ": "WEZ", "ACST": "ACST", "COT": "COT", "PST": "PST", "HAST": "HAST", "WAST": "WAST", "HNNOMX": "HNNOMX", "NZST": "NZST", "MYT": "MYT", "JDT": "JDT", "AEDT": "AEDT"},
}
}
diff --git a/ff_CM/ff_CM.go b/ff_CM/ff_CM.go
index 7252f149..d7d71cc4 100644
--- a/ff_CM/ff_CM.go
+++ b/ff_CM/ff_CM.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"H-I", "C-I"},
erasNarrow: []string{"", ""},
erasWide: []string{"Hade Iisa", "Caggal Iisa"},
- timezones: map[string]string{"GYT": "GYT", "HADT": "HADT", "PST": "PST", "ACWST": "ACWST", "EAT": "EAT", "HECU": "HECU", "HEPMX": "HEPMX", "HAST": "HAST", "ACWDT": "ACWDT", "JST": "JST", "CAT": "CAT", "WAT": "WAT", "BOT": "BOT", "GFT": "GFT", "WAST": "WAST", "MST": "MST", "WITA": "WITA", "NZST": "NZST", "CHADT": "CHADT", "CLST": "CLST", "UYT": "UYT", "SRT": "SRT", "WIT": "WIT", "HNOG": "HNOG", "AEST": "AEST", "AWDT": "AWDT", "EST": "EST", "ARST": "ARST", "∅∅∅": "∅∅∅", "SGT": "SGT", "MDT": "MDT", "COST": "COST", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "HEOG": "HEOG", "MEZ": "MEZ", "NZDT": "NZDT", "JDT": "JDT", "CHAST": "CHAST", "SAST": "SAST", "GMT": "GMT", "BT": "BT", "HNT": "HNT", "ART": "ART", "MESZ": "MESZ", "LHDT": "LHDT", "HKT": "HKT", "HKST": "HKST", "EDT": "EDT", "WART": "WART", "AWST": "AWST", "HEPM": "HEPM", "CLT": "CLT", "HNEG": "HNEG", "TMST": "TMST", "OESZ": "OESZ", "UYST": "UYST", "ADT": "ADT", "WESZ": "WESZ", "HAT": "HAT", "AEDT": "AEDT", "ChST": "ChST", "HNPM": "HNPM", "IST": "IST", "COT": "COT", "CST": "CST", "HNPMX": "HNPMX", "AKDT": "AKDT", "PDT": "PDT", "LHST": "LHST", "ACST": "ACST", "ACDT": "ACDT", "MYT": "MYT", "CDT": "CDT", "WIB": "WIB", "VET": "VET", "WEZ": "WEZ", "HEEG": "HEEG", "OEZ": "OEZ", "ECT": "ECT", "AST": "AST", "TMT": "TMT", "WARST": "WARST", "HENOMX": "HENOMX", "AKST": "AKST"},
+ timezones: map[string]string{"EAT": "EAT", "PST": "PST", "IST": "IST", "WAT": "WAT", "EST": "EST", "UYT": "UYT", "SRT": "SRT", "WART": "WART", "JDT": "JDT", "EDT": "EDT", "COT": "COT", "GFT": "GFT", "GYT": "GYT", "CST": "CST", "AWST": "AWST", "CLT": "CLT", "WESZ": "WESZ", "MYT": "MYT", "MEZ": "MEZ", "JST": "JST", "CLST": "CLST", "AKDT": "AKDT", "HEPM": "HEPM", "HECU": "HECU", "WIT": "WIT", "HADT": "HADT", "WEZ": "WEZ", "TMT": "TMT", "TMST": "TMST", "AST": "AST", "ADT": "ADT", "ACDT": "ACDT", "LHDT": "LHDT", "PDT": "PDT", "NZST": "NZST", "VET": "VET", "BT": "BT", "HEPMX": "HEPMX", "CAT": "CAT", "NZDT": "NZDT", "OESZ": "OESZ", "ART": "ART", "HNNOMX": "HNNOMX", "HAT": "HAT", "SAST": "SAST", "ECT": "ECT", "HNOG": "HNOG", "GMT": "GMT", "MST": "MST", "HKT": "HKT", "ACST": "ACST", "AEST": "AEST", "HAST": "HAST", "HNCU": "HNCU", "AWDT": "AWDT", "OEZ": "OEZ", "HNEG": "HNEG", "AEDT": "AEDT", "SGT": "SGT", "MESZ": "MESZ", "ACWDT": "ACWDT", "ARST": "ARST", "COST": "COST", "HNPM": "HNPM", "CHAST": "CHAST", "BOT": "BOT", "WAST": "WAST", "HKST": "HKST", "HENOMX": "HENOMX", "WITA": "WITA", "UYST": "UYST", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "HEOG": "HEOG", "WARST": "WARST", "ACWST": "ACWST", "HNT": "HNT", "HEEG": "HEEG", "AKST": "AKST", "WIB": "WIB", "CHADT": "CHADT", "MDT": "MDT", "ChST": "ChST", "LHST": "LHST", "CDT": "CDT"},
}
}
diff --git a/ff_GN/ff_GN.go b/ff_GN/ff_GN.go
index 87b5ba01..5475ad66 100644
--- a/ff_GN/ff_GN.go
+++ b/ff_GN/ff_GN.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"H-I", "C-I"},
erasNarrow: []string{"", ""},
erasWide: []string{"Hade Iisa", "Caggal Iisa"},
- timezones: map[string]string{"EAT": "EAT", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "HNOG": "HNOG", "WITA": "WITA", "NZDT": "NZDT", "IST": "IST", "JST": "JST", "GYT": "GYT", "WEZ": "WEZ", "ACWST": "ACWST", "SAST": "SAST", "CST": "CST", "HNT": "HNT", "JDT": "JDT", "ACST": "ACST", "WART": "WART", "CDT": "CDT", "AST": "AST", "AEST": "AEST", "HEPM": "HEPM", "LHDT": "LHDT", "CLT": "CLT", "GFT": "GFT", "CAT": "CAT", "MDT": "MDT", "AKDT": "AKDT", "PST": "PST", "WESZ": "WESZ", "MEZ": "MEZ", "NZST": "NZST", "TMT": "TMT", "SGT": "SGT", "VET": "VET", "WIT": "WIT", "OESZ": "OESZ", "HENOMX": "HENOMX", "HNCU": "HNCU", "EDT": "EDT", "MST": "MST", "SRT": "SRT", "AEDT": "AEDT", "CHADT": "CHADT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "HNPM": "HNPM", "LHST": "LHST", "ECT": "ECT", "WARST": "WARST", "COST": "COST", "GMT": "GMT", "ChST": "ChST", "HNEG": "HNEG", "HAST": "HAST", "ART": "ART", "EST": "EST", "AWDT": "AWDT", "HKST": "HKST", "∅∅∅": "∅∅∅", "UYT": "UYT", "HADT": "HADT", "HEOG": "HEOG", "AWST": "AWST", "HKT": "HKT", "WAT": "WAT", "HECU": "HECU", "AKST": "AKST", "PDT": "PDT", "ARST": "ARST", "BOT": "BOT", "TMST": "TMST", "WAST": "WAST", "OEZ": "OEZ", "CHAST": "CHAST", "HEEG": "HEEG", "MYT": "MYT", "UYST": "UYST", "ADT": "ADT", "BT": "BT", "HAT": "HAT", "MESZ": "MESZ", "CLST": "CLST", "ACDT": "ACDT", "COT": "COT", "WIB": "WIB"},
+ timezones: map[string]string{"ADT": "ADT", "WEZ": "WEZ", "HNOG": "HNOG", "TMT": "TMT", "HNEG": "HNEG", "HNPM": "HNPM", "WIB": "WIB", "WAT": "WAT", "EDT": "EDT", "BT": "BT", "HAT": "HAT", "AKST": "AKST", "AEST": "AEST", "HEPMX": "HEPMX", "CLST": "CLST", "WAST": "WAST", "CHADT": "CHADT", "CAT": "CAT", "IST": "IST", "HKT": "HKT", "PDT": "PDT", "ACWDT": "ACWDT", "CLT": "CLT", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "UYST": "UYST", "EAT": "EAT", "CHAST": "CHAST", "ACWST": "ACWST", "ChST": "ChST", "LHST": "LHST", "CDT": "CDT", "HADT": "HADT", "NZST": "NZST", "VET": "VET", "AST": "AST", "WART": "WART", "HKST": "HKST", "SAST": "SAST", "LHDT": "LHDT", "PST": "PST", "MEZ": "MEZ", "OEZ": "OEZ", "WESZ": "WESZ", "HNCU": "HNCU", "CST": "CST", "HENOMX": "HENOMX", "HNT": "HNT", "WITA": "WITA", "UYT": "UYT", "ECT": "ECT", "MYT": "MYT", "ART": "ART", "EST": "EST", "AKDT": "AKDT", "GFT": "GFT", "GYT": "GYT", "BOT": "BOT", "MDT": "MDT", "ACST": "ACST", "COT": "COT", "HEPM": "HEPM", "SRT": "SRT", "WIT": "WIT", "HAST": "HAST", "ACDT": "ACDT", "HEEG": "HEEG", "AEDT": "AEDT", "AWST": "AWST", "JST": "JST", "TMST": "TMST", "AWDT": "AWDT", "GMT": "GMT", "MST": "MST", "ARST": "ARST", "HNNOMX": "HNNOMX", "NZDT": "NZDT", "JDT": "JDT", "HNPMX": "HNPMX", "HECU": "HECU", "SGT": "SGT", "MESZ": "MESZ", "OESZ": "OESZ", "WARST": "WARST", "COST": "COST"},
}
}
diff --git a/ff_MR/ff_MR.go b/ff_MR/ff_MR.go
index af3cb356..6752d820 100644
--- a/ff_MR/ff_MR.go
+++ b/ff_MR/ff_MR.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"H-I", "C-I"},
erasNarrow: []string{"", ""},
erasWide: []string{"Hade Iisa", "Caggal Iisa"},
- timezones: map[string]string{"AST": "AST", "UYST": "UYST", "SAST": "SAST", "COST": "COST", "ACWST": "ACWST", "CLST": "CLST", "HENOMX": "HENOMX", "AEDT": "AEDT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "WESZ": "WESZ", "NZDT": "NZDT", "CHADT": "CHADT", "CLT": "CLT", "HNCU": "HNCU", "HECU": "HECU", "AKST": "AKST", "VET": "VET", "HEOG": "HEOG", "AWDT": "AWDT", "ECT": "ECT", "HAST": "HAST", "SRT": "SRT", "PST": "PST", "HNT": "HNT", "MEZ": "MEZ", "MESZ": "MESZ", "EST": "EST", "UYT": "UYT", "HADT": "HADT", "ART": "ART", "HNPM": "HNPM", "NZST": "NZST", "TMST": "TMST", "HNNOMX": "HNNOMX", "AWST": "AWST", "LHST": "LHST", "IST": "IST", "HEEG": "HEEG", "TMT": "TMT", "WAT": "WAT", "MST": "MST", "MDT": "MDT", "WIT": "WIT", "ACWDT": "ACWDT", "HAT": "HAT", "ARST": "ARST", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "AKDT": "AKDT", "CST": "CST", "MYT": "MYT", "BT": "BT", "ACST": "ACST", "CAT": "CAT", "WARST": "WARST", "AEST": "AEST", "HKST": "HKST", "LHDT": "LHDT", "JST": "JST", "JDT": "JDT", "ACDT": "ACDT", "GFT": "GFT", "WITA": "WITA", "HNEG": "HNEG", "WAST": "WAST", "ChST": "ChST", "HNOG": "HNOG", "CDT": "CDT", "WEZ": "WEZ", "HKT": "HKT", "BOT": "BOT", "EAT": "EAT", "WART": "WART", "COT": "COT", "GYT": "GYT", "WIB": "WIB", "OEZ": "OEZ", "SGT": "SGT", "EDT": "EDT", "ADT": "ADT", "PDT": "PDT", "HEPM": "HEPM", "CHAST": "CHAST", "GMT": "GMT"},
+ timezones: map[string]string{"TMT": "TMT", "ART": "ART", "MEZ": "MEZ", "JST": "JST", "JDT": "JDT", "WART": "WART", "HEOG": "HEOG", "OEZ": "OEZ", "COT": "COT", "HAT": "HAT", "WIB": "WIB", "ACWDT": "ACWDT", "VET": "VET", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "CHAST": "CHAST", "BOT": "BOT", "NZDT": "NZDT", "WAST": "WAST", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "CLST": "CLST", "WAT": "WAT", "HNNOMX": "HNNOMX", "HNEG": "HNEG", "LHDT": "LHDT", "CAT": "CAT", "ADT": "ADT", "EST": "EST", "HKT": "HKT", "MST": "MST", "HNT": "HNT", "WIT": "WIT", "AWDT": "AWDT", "HADT": "HADT", "WARST": "WARST", "WEZ": "WEZ", "TMST": "TMST", "AKST": "AKST", "HEPM": "HEPM", "IST": "IST", "MESZ": "MESZ", "MDT": "MDT", "SRT": "SRT", "CDT": "CDT", "HAST": "HAST", "MYT": "MYT", "AST": "AST", "OESZ": "OESZ", "ACST": "ACST", "HECU": "HECU", "ECT": "ECT", "BT": "BT", "HEPMX": "HEPMX", "SGT": "SGT", "PST": "PST", "NZST": "NZST", "WESZ": "WESZ", "AEDT": "AEDT", "CST": "CST", "AWST": "AWST", "EAT": "EAT", "GMT": "GMT", "HNOG": "HNOG", "EDT": "EDT", "HEEG": "HEEG", "GFT": "GFT", "UYST": "UYST", "SAST": "SAST", "PDT": "PDT", "ARST": "ARST", "HKST": "HKST", "ACDT": "ACDT", "AEST": "AEST", "ChST": "ChST", "ACWST": "ACWST", "COST": "COST", "AKDT": "AKDT", "UYT": "UYT", "HNPM": "HNPM", "LHST": "LHST", "CLT": "CLT", "WITA": "WITA", "GYT": "GYT", "HNCU": "HNCU"},
}
}
diff --git a/ff_SN/ff_SN.go b/ff_SN/ff_SN.go
index 48ade0d1..5779c774 100644
--- a/ff_SN/ff_SN.go
+++ b/ff_SN/ff_SN.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"H-I", "C-I"},
erasNarrow: []string{"", ""},
erasWide: []string{"Hade Iisa", "Caggal Iisa"},
- timezones: map[string]string{"CDT": "CDT", "HEOG": "HEOG", "JDT": "JDT", "ADT": "ADT", "CHAST": "CHAST", "HAST": "HAST", "BT": "BT", "ART": "ART", "WESZ": "WESZ", "ACWST": "ACWST", "CHADT": "CHADT", "CLST": "CLST", "GFT": "GFT", "EAT": "EAT", "AST": "AST", "AWDT": "AWDT", "SAST": "SAST", "COT": "COT", "MYT": "MYT", "LHDT": "LHDT", "JST": "JST", "CLT": "CLT", "WAT": "WAT", "OESZ": "OESZ", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "MST": "MST", "PDT": "PDT", "ACWDT": "ACWDT", "TMST": "TMST", "ChST": "ChST", "AKST": "AKST", "LHST": "LHST", "MEZ": "MEZ", "IST": "IST", "HNEG": "HNEG", "HEEG": "HEEG", "EDT": "EDT", "WIB": "WIB", "AEST": "AEST", "WITA": "WITA", "HNOG": "HNOG", "HNT": "HNT", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "MDT": "MDT", "UYST": "UYST", "WIT": "WIT", "SRT": "SRT", "AWST": "AWST", "HEPM": "HEPM", "CAT": "CAT", "SGT": "SGT", "HNCU": "HNCU", "HECU": "HECU", "GYT": "GYT", "VET": "VET", "BOT": "BOT", "ECT": "ECT", "PST": "PST", "MESZ": "MESZ", "NZST": "NZST", "COST": "COST", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "AKDT": "AKDT", "HKT": "HKT", "HNPM": "HNPM", "ACST": "ACST", "WART": "WART", "EST": "EST", "ARST": "ARST", "AEDT": "AEDT", "HKST": "HKST", "WAST": "WAST", "HEPMX": "HEPMX", "UYT": "UYT", "HADT": "HADT", "WEZ": "WEZ", "TMT": "TMT", "WARST": "WARST", "GMT": "GMT", "CST": "CST", "HAT": "HAT", "NZDT": "NZDT"},
+ timezones: map[string]string{"AWDT": "AWDT", "WESZ": "WESZ", "CLST": "CLST", "TMST": "TMST", "EDT": "EDT", "HEPMX": "HEPMX", "VET": "VET", "HNOG": "HNOG", "NZDT": "NZDT", "JST": "JST", "GMT": "GMT", "HENOMX": "HENOMX", "SRT": "SRT", "WIT": "WIT", "WEZ": "WEZ", "MST": "MST", "HNT": "HNT", "WIB": "WIB", "BOT": "BOT", "IST": "IST", "CLT": "CLT", "EST": "EST", "HAT": "HAT", "AEDT": "AEDT", "GFT": "GFT", "JDT": "JDT", "MDT": "MDT", "HKT": "HKT", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "LHDT": "LHDT", "CDT": "CDT", "AWST": "AWST", "PST": "PST", "ADT": "ADT", "ART": "ART", "WAST": "WAST", "AKST": "AKST", "HNPM": "HNPM", "HEPM": "HEPM", "NZST": "NZST", "MEZ": "MEZ", "OESZ": "OESZ", "ARST": "ARST", "GYT": "GYT", "HECU": "HECU", "HADT": "HADT", "ACWDT": "ACWDT", "AST": "AST", "BT": "BT", "EAT": "EAT", "CHADT": "CHADT", "PDT": "PDT", "WART": "WART", "HNEG": "HNEG", "WITA": "WITA", "SAST": "SAST", "WAT": "WAT", "ACDT": "ACDT", "HNPMX": "HNPMX", "OEZ": "OEZ", "HNCU": "HNCU", "CST": "CST", "ECT": "ECT", "ACST": "ACST", "UYST": "UYST", "CAT": "CAT", "∅∅∅": "∅∅∅", "HEOG": "HEOG", "WARST": "WARST", "TMT": "TMT", "COST": "COST", "AEST": "AEST", "UYT": "UYT", "LHST": "LHST", "SGT": "SGT", "ACWST": "ACWST", "CHAST": "CHAST", "HAST": "HAST", "MESZ": "MESZ", "MYT": "MYT", "HKST": "HKST", "COT": "COT", "HEEG": "HEEG", "ChST": "ChST"},
}
}
diff --git a/fi/fi.go b/fi/fi.go
index 99ebf4d5..4beb64de 100644
--- a/fi/fi.go
+++ b/fi/fi.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"eKr.", "jKr."},
erasNarrow: []string{"eKr", "jKr"},
erasWide: []string{"ennen Kristuksen syntymää", "jälkeen Kristuksen syntymän"},
- timezones: map[string]string{"AWST": "Länsi-Australian normaaliaika", "NZDT": "Uuden-Seelannin kesäaika", "TMT": "Turkmenistanin normaaliaika", "WART": "Länsi-Argentiinan normaaliaika", "HENOMX": "Luoteis-Meksikon kesäaika", "UYT": "Uruguayn normaaliaika", "AEST": "Itä-Australian normaaliaika", "HKT": "Hongkongin normaaliaika", "CLST": "Chilen kesäaika", "OEZ": "Itä-Euroopan normaaliaika", "WAST": "Länsi-Afrikan kesäaika", "ART": "Argentiinan normaaliaika", "ACWDT": "Läntisen Keski-Australian kesäaika", "HKST": "Hongkongin kesäaika", "HNEG": "Itä-Grönlannin normaaliaika", "MST": "Macaon normaaliaika", "MDT": "Macaon kesäaika", "HEPMX": "Meksikon Tyynenmeren kesäaika", "HAST": "Havaijin-Aleuttien normaaliaika", "HEOG": "Länsi-Grönlannin kesäaika", "PST": "Yhdysvaltain Tyynenmeren normaaliaika", "MESZ": "Keski-Euroopan kesäaika", "SAST": "Etelä-Afrikan aika", "WAT": "Länsi-Afrikan normaaliaika", "WARST": "Länsi-Argentiinan kesäaika", "COT": "Kolumbian normaaliaika", "BT": "Bhutanin aika", "GMT": "Greenwichin normaaliaika", "CHADT": "Chathamin kesäaika", "EST": "Yhdysvaltain itäinen normaaliaika", "CHAST": "Chathamin normaaliaika", "WITA": "Keski-Indonesian aika", "GFT": "Ranskan Guayanan aika", "ChST": "Tšamorron aika", "BOT": "Bolivian aika", "HEEG": "Itä-Grönlannin kesäaika", "ACDT": "Keski-Australian kesäaika", "HNCU": "Kuuban normaaliaika", "WESZ": "Länsi-Euroopan kesäaika", "HNPMX": "Meksikon Tyynenmeren normaaliaika", "CST": "Yhdysvaltain keskinen normaaliaika", "HECU": "Kuuban kesäaika", "SRT": "Surinamen aika", "HNOG": "Länsi-Grönlannin normaaliaika", "NZST": "Uuden-Seelannin normaaliaika", "EDT": "Yhdysvaltain itäinen kesäaika", "CDT": "Yhdysvaltain keskinen kesäaika", "VET": "Venezuelan aika", "ACST": "Keski-Australian normaaliaika", "ECT": "Ecuadorin aika", "ADT": "Kanadan Atlantin kesäaika", "WIB": "Länsi-Indonesian aika", "AWDT": "Länsi-Australian kesäaika", "AEDT": "Itä-Australian kesäaika", "∅∅∅": "Amazonin kesäaika", "EAT": "Itä-Afrikan aika", "COST": "Kolumbian kesäaika", "SGT": "Singaporen aika", "UYST": "Uruguayn kesäaika", "HADT": "Havaijin-Aleuttien kesäaika", "JST": "Japanin normaaliaika", "GYT": "Guyanan aika", "AKST": "Alaskan normaaliaika", "ARST": "Argentiinan kesäaika", "MEZ": "Keski-Euroopan normaaliaika", "HNT": "Newfoundlandin normaaliaika", "LHDT": "Lord Howen kesäaika", "IST": "Intian aika", "CAT": "Keski-Afrikan aika", "HNPM": "Saint-Pierren ja Miquelonin normaaliaika", "HNNOMX": "Luoteis-Meksikon normaaliaika", "AKDT": "Alaskan kesäaika", "CLT": "Chilen normaaliaika", "MYT": "Malesian aika", "OESZ": "Itä-Euroopan kesäaika", "PDT": "Yhdysvaltain Tyynenmeren kesäaika", "WEZ": "Länsi-Euroopan normaaliaika", "WIT": "Itä-Indonesian aika", "ACWST": "Läntisen Keski-Australian normaaliaika", "HEPM": "Saint-Pierren ja Miquelonin kesäaika", "LHST": "Lord Howen normaaliaika", "JDT": "Japanin kesäaika", "TMST": "Turkmenistanin kesäaika", "AST": "Kanadan Atlantin normaaliaika", "HAT": "Newfoundlandin kesäaika"},
+ timezones: map[string]string{"WAST": "Länsi-Afrikan kesäaika", "SRT": "Surinamen aika", "ACWST": "Läntisen Keski-Australian normaaliaika", "HKST": "Hongkongin kesäaika", "BT": "Bhutanin aika", "CHAST": "Chathamin normaaliaika", "WAT": "Länsi-Afrikan normaaliaika", "CST": "Yhdysvaltain keskinen normaaliaika", "CAT": "Keski-Afrikan aika", "AST": "Kanadan Atlantin normaaliaika", "OESZ": "Itä-Euroopan kesäaika", "WESZ": "Länsi-Euroopan kesäaika", "MDT": "Macaon kesäaika", "COST": "Kolumbian kesäaika", "HNT": "Newfoundlandin normaaliaika", "PDT": "Yhdysvaltain Tyynenmeren kesäaika", "GYT": "Guyanan aika", "HENOMX": "Luoteis-Meksikon kesäaika", "HNEG": "Itä-Grönlannin normaaliaika", "∅∅∅": "Acren kesäaika", "AKST": "Alaskan normaaliaika", "AKDT": "Alaskan kesäaika", "UYT": "Uruguayn normaaliaika", "LHDT": "Lord Howen kesäaika", "BOT": "Bolivian aika", "IST": "Intian aika", "MEZ": "Keski-Euroopan normaaliaika", "MST": "Macaon normaaliaika", "ACDT": "Keski-Australian kesäaika", "EAT": "Itä-Afrikan aika", "WIB": "Länsi-Indonesian aika", "AWDT": "Länsi-Australian kesäaika", "SGT": "Singaporen aika", "PST": "Yhdysvaltain Tyynenmeren normaaliaika", "GMT": "Greenwichin normaaliaika", "COT": "Kolumbian normaaliaika", "MYT": "Malesian aika", "WARST": "Länsi-Argentiinan kesäaika", "ACWDT": "Läntisen Keski-Australian kesäaika", "CLT": "Chilen normaaliaika", "ARST": "Argentiinan kesäaika", "HKT": "Hongkongin normaaliaika", "HNNOMX": "Luoteis-Meksikon normaaliaika", "AEDT": "Itä-Australian kesäaika", "LHST": "Lord Howen normaaliaika", "CDT": "Yhdysvaltain keskinen kesäaika", "OEZ": "Itä-Euroopan normaaliaika", "WART": "Länsi-Argentiinan normaaliaika", "ART": "Argentiinan normaaliaika", "AEST": "Itä-Australian normaaliaika", "AWST": "Länsi-Australian normaaliaika", "CLST": "Chilen kesäaika", "ACST": "Keski-Australian normaaliaika", "HEEG": "Itä-Grönlannin kesäaika", "ChST": "Tšamorron aika", "HNCU": "Kuuban normaaliaika", "VET": "Venezuelan aika", "HEOG": "Länsi-Grönlannin kesäaika", "EST": "Yhdysvaltain itäinen normaaliaika", "HNPM": "Saint-Pierren ja Miquelonin normaaliaika", "HEPMX": "Meksikon Tyynenmeren kesäaika", "HECU": "Kuuban kesäaika", "HAST": "Havaijin-Aleuttien normaaliaika", "MESZ": "Keski-Euroopan kesäaika", "JDT": "Japanin kesäaika", "HNOG": "Länsi-Grönlannin normaaliaika", "TMT": "Turkmenistanin normaaliaika", "TMST": "Turkmenistanin kesäaika", "WITA": "Keski-Indonesian aika", "ECT": "Ecuadorin aika", "WEZ": "Länsi-Euroopan normaaliaika", "EDT": "Yhdysvaltain itäinen kesäaika", "GFT": "Ranskan Guayanan aika", "HEPM": "Saint-Pierren ja Miquelonin kesäaika", "NZDT": "Uuden-Seelannin kesäaika", "UYST": "Uruguayn kesäaika", "SAST": "Etelä-Afrikan aika", "HNPMX": "Meksikon Tyynenmeren normaaliaika", "CHADT": "Chathamin kesäaika", "HADT": "Havaijin-Aleuttien kesäaika", "NZST": "Uuden-Seelannin normaaliaika", "JST": "Japanin normaaliaika", "ADT": "Kanadan Atlantin kesäaika", "HAT": "Newfoundlandin kesäaika", "WIT": "Itä-Indonesian aika"},
}
}
diff --git a/fi_FI/fi_FI.go b/fi_FI/fi_FI.go
index 9c6a707f..b0e07494 100644
--- a/fi_FI/fi_FI.go
+++ b/fi_FI/fi_FI.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"eKr.", "jKr."},
erasNarrow: []string{"eKr", "jKr"},
erasWide: []string{"ennen Kristuksen syntymää", "jälkeen Kristuksen syntymän"},
- timezones: map[string]string{"JDT": "Japanin kesäaika", "UYT": "Uruguayn normaaliaika", "UYST": "Uruguayn kesäaika", "HNT": "Newfoundlandin normaaliaika", "ACWDT": "Läntisen Keski-Australian kesäaika", "HNPM": "Saint-Pierren ja Miquelonin normaaliaika", "HENOMX": "Luoteis-Meksikon kesäaika", "PDT": "Yhdysvaltain Tyynenmeren kesäaika", "AEST": "Itä-Australian normaaliaika", "WAT": "Länsi-Afrikan normaaliaika", "AKST": "Alaskan normaaliaika", "ACWST": "Läntisen Keski-Australian normaaliaika", "NZST": "Uuden-Seelannin normaaliaika", "ECT": "Ecuadorin aika", "ART": "Argentiinan normaaliaika", "WEZ": "Länsi-Euroopan normaaliaika", "WARST": "Länsi-Argentiinan kesäaika", "COT": "Kolumbian normaaliaika", "GMT": "Greenwichin normaaliaika", "WIB": "Länsi-Indonesian aika", "LHST": "Lord Howen normaaliaika", "HEEG": "Itä-Grönlannin kesäaika", "SGT": "Singaporen aika", "HAT": "Newfoundlandin kesäaika", "HNOG": "Länsi-Grönlannin normaaliaika", "MEZ": "Keski-Euroopan normaaliaika", "HNCU": "Kuuban normaaliaika", "EDT": "Yhdysvaltain itäinen kesäaika", "MDT": "Macaon kesäaika", "CST": "Yhdysvaltain keskinen normaaliaika", "GYT": "Guyanan aika", "HADT": "Havaijin-Aleuttien kesäaika", "AWDT": "Länsi-Australian kesäaika", "HEPM": "Saint-Pierren ja Miquelonin kesäaika", "SAST": "Etelä-Afrikan aika", "JST": "Japanin normaaliaika", "CLT": "Chilen normaaliaika", "OEZ": "Itä-Euroopan normaaliaika", "HNPMX": "Meksikon Tyynenmeren normaaliaika", "HKST": "Hongkongin kesäaika", "AKDT": "Alaskan kesäaika", "WITA": "Keski-Indonesian aika", "CHADT": "Chathamin kesäaika", "NZDT": "Uuden-Seelannin kesäaika", "∅∅∅": "Amazonin kesäaika", "ACDT": "Keski-Australian kesäaika", "WAST": "Länsi-Afrikan kesäaika", "WART": "Länsi-Argentiinan normaaliaika", "SRT": "Surinamen aika", "HEOG": "Länsi-Grönlannin kesäaika", "GFT": "Ranskan Guayanan aika", "TMT": "Turkmenistanin normaaliaika", "ChST": "Tšamorron aika", "OESZ": "Itä-Euroopan kesäaika", "EST": "Yhdysvaltain itäinen normaaliaika", "ADT": "Kanadan Atlantin kesäaika", "PST": "Yhdysvaltain Tyynenmeren normaaliaika", "AWST": "Länsi-Australian normaaliaika", "HEPMX": "Meksikon Tyynenmeren kesäaika", "WESZ": "Länsi-Euroopan kesäaika", "IST": "Intian aika", "CLST": "Chilen kesäaika", "BOT": "Bolivian aika", "HNEG": "Itä-Grönlannin normaaliaika", "CAT": "Keski-Afrikan aika", "BT": "Bhutanin aika", "HKT": "Hongkongin normaaliaika", "CHAST": "Chathamin normaaliaika", "MESZ": "Keski-Euroopan kesäaika", "HNNOMX": "Luoteis-Meksikon normaaliaika", "HECU": "Kuuban kesäaika", "AST": "Kanadan Atlantin normaaliaika", "WIT": "Itä-Indonesian aika", "COST": "Kolumbian kesäaika", "VET": "Venezuelan aika", "TMST": "Turkmenistanin kesäaika", "HAST": "Havaijin-Aleuttien normaaliaika", "ARST": "Argentiinan kesäaika", "AEDT": "Itä-Australian kesäaika", "LHDT": "Lord Howen kesäaika", "ACST": "Keski-Australian normaaliaika", "EAT": "Itä-Afrikan aika", "MST": "Macaon normaaliaika", "CDT": "Yhdysvaltain keskinen kesäaika", "MYT": "Malesian aika"},
+ timezones: map[string]string{"ACST": "Keski-Australian normaaliaika", "AKDT": "Alaskan kesäaika", "UYT": "Uruguayn normaaliaika", "SAST": "Etelä-Afrikan aika", "OEZ": "Itä-Euroopan normaaliaika", "WIT": "Itä-Indonesian aika", "BOT": "Bolivian aika", "WAST": "Länsi-Afrikan kesäaika", "HKST": "Hongkongin kesäaika", "HEEG": "Itä-Grönlannin kesäaika", "UYST": "Uruguayn kesäaika", "CST": "Yhdysvaltain keskinen normaaliaika", "ACWDT": "Läntisen Keski-Australian kesäaika", "COST": "Kolumbian kesäaika", "HENOMX": "Luoteis-Meksikon kesäaika", "WITA": "Keski-Indonesian aika", "HNCU": "Kuuban normaaliaika", "HECU": "Kuuban kesäaika", "ACDT": "Keski-Australian kesäaika", "HNOG": "Länsi-Grönlannin normaaliaika", "WEZ": "Länsi-Euroopan normaaliaika", "GMT": "Greenwichin normaaliaika", "∅∅∅": "Perun kesäaika", "AEST": "Itä-Australian normaaliaika", "WIB": "Länsi-Indonesian aika", "HAST": "Havaijin-Aleuttien normaaliaika", "MESZ": "Keski-Euroopan kesäaika", "HEPM": "Saint-Pierren ja Miquelonin kesäaika", "AWST": "Länsi-Australian normaaliaika", "VET": "Venezuelan aika", "MDT": "Macaon kesäaika", "WAT": "Länsi-Afrikan normaaliaika", "ChST": "Tšamorron aika", "LHDT": "Lord Howen kesäaika", "HNPMX": "Meksikon Tyynenmeren normaaliaika", "HAT": "Newfoundlandin kesäaika", "HEPMX": "Meksikon Tyynenmeren kesäaika", "EAT": "Itä-Afrikan aika", "CDT": "Yhdysvaltain keskinen kesäaika", "EDT": "Yhdysvaltain itäinen kesäaika", "AWDT": "Länsi-Australian kesäaika", "WART": "Länsi-Argentiinan normaaliaika", "MYT": "Malesian aika", "IST": "Intian aika", "ACWST": "Läntisen Keski-Australian normaaliaika", "ARST": "Argentiinan kesäaika", "GFT": "Ranskan Guayanan aika", "SRT": "Surinamen aika", "CHADT": "Chathamin kesäaika", "PST": "Yhdysvaltain Tyynenmeren normaaliaika", "CLT": "Chilen normaaliaika", "BT": "Bhutanin aika", "LHST": "Lord Howen normaaliaika", "PDT": "Yhdysvaltain Tyynenmeren kesäaika", "CAT": "Keski-Afrikan aika", "WARST": "Länsi-Argentiinan kesäaika", "AEDT": "Itä-Australian kesäaika", "ECT": "Ecuadorin aika", "NZST": "Uuden-Seelannin normaaliaika", "MEZ": "Keski-Euroopan normaaliaika", "JST": "Japanin normaaliaika", "EST": "Yhdysvaltain itäinen normaaliaika", "HNT": "Newfoundlandin normaaliaika", "GYT": "Guyanan aika", "CLST": "Chilen kesäaika", "ADT": "Kanadan Atlantin kesäaika", "WESZ": "Länsi-Euroopan kesäaika", "TMT": "Turkmenistanin normaaliaika", "TMST": "Turkmenistanin kesäaika", "MST": "Macaon normaaliaika", "COT": "Kolumbian normaaliaika", "AKST": "Alaskan normaaliaika", "HNPM": "Saint-Pierren ja Miquelonin normaaliaika", "CHAST": "Chathamin normaaliaika", "JDT": "Japanin kesäaika", "HEOG": "Länsi-Grönlannin kesäaika", "AST": "Kanadan Atlantin normaaliaika", "HKT": "Hongkongin normaaliaika", "HNNOMX": "Luoteis-Meksikon normaaliaika", "HNEG": "Itä-Grönlannin normaaliaika", "HADT": "Havaijin-Aleuttien kesäaika", "NZDT": "Uuden-Seelannin kesäaika", "ART": "Argentiinan normaaliaika", "SGT": "Singaporen aika", "OESZ": "Itä-Euroopan kesäaika"},
}
}
diff --git a/fil/fil.go b/fil/fil.go
index 1c20afa3..a829c5ec 100644
--- a/fil/fil.go
+++ b/fil/fil.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"BC", "AD"},
- timezones: map[string]string{"MDT": "MDT", "HEOG": "Oras sa Tag-init ng Kanlurang Greenland", "HKT": "Standard na Oras sa Hong Kong", "MESZ": "Oras sa Tag-init ng Gitnang Europe", "CLST": "Oras sa Tag-init ng Chile", "WART": "Standard na Oras sa Kanlurang Argentina", "COT": "Standard na Oras sa Colombia", "EST": "Eastern na Standard na Oras", "ACWST": "Standard Time ng Gitnang Kanluran ng Australya", "HAT": "Daylight Time sa Newfoundland", "AEST": "Standard Time ng Silangang Australya", "ChST": "Standard na Oras sa Chamorro", "HECU": "Daylight Time sa Cuba", "AKDT": "Daylight Time sa Alaska", "AST": "Standard na Oras sa Atlantiko", "WESZ": "Oras sa Tag-init ng Kanlurang Europe", "OEZ": "Standard na Oras sa Silangang Europe", "HNNOMX": "Standard na Oras sa Hilagang-kanlurang Mexico", "AKST": "Standard na Oras sa Alaska", "MYT": "Oras ng Malaysia", "UYT": "Standard na Oras sa Uruguay", "WIB": "Oras ng Kanlurang Indonesiya", "BT": "Oras sa Bhutan", "ART": "Standard na Oras sa Argentina", "CAT": "Oras sa Gitnang Africa", "SGT": "Standard na Oras sa Singapore", "CDT": "Sentral na Daylight Time", "SAST": "Oras sa Timog Africa", "HEEG": "Oras sa Tag-init ng Silangang Greenland", "HEPM": "Daylight Time sa Saint Pierre and Miquelon", "CHAST": "Standard na Oras sa Chatham", "IST": "Standard na Oras sa Bhutan", "CLT": "Standard na Oras sa Chile", "HNEG": "Standard na Oras sa Silangang Greenland", "WIT": "Oras ng Silangang Indonesiya", "VET": "Oras sa Venezuela", "AWDT": "Daylight Time sa Kanlurang Australya", "∅∅∅": "Oras sa Tag-init ng Peru", "NZDT": "Daylight Time sa New Zealand", "HAST": "Standard na Oras sa Hawaii-Aleutian", "PDT": "Daylight Time sa Pasipiko", "ACDT": "Daylight Time ng Gitnang Australya", "CST": "Sentral na Karaniwang Oras", "GYT": "Oras sa Guyana", "TMT": "Standard na Oras sa Turkmenistan", "AEDT": "Daylight Time ng Silangang Australya", "NZST": "Standard na Oras sa New Zealand", "BOT": "Oras sa Bolivia", "EDT": "Eastern Daylight Time", "HADT": "Oras sa Tag-init ng Hawaii-Aleutian", "HKST": "Oras sa Tag-init ng Hong Kong", "COST": "Oras sa Tag-init ng Colombia", "HNPMX": "Standard na Oras sa Pasipiko ng Mexico", "HNT": "Standard na Oras sa Newfoundland", "HENOMX": "Daylight Time sa Hilagang-kanlurang Mexico", "WEZ": "Standard na Oras sa Kanlurang Europe", "ARST": "Oras sa Tag-init ng Argentina", "HNPM": "Standard na Oras sa Saint Pierre and Miquelon", "LHDT": "Daylight Time sa Lorde Howe", "ECT": "Oras sa Ecuador", "GMT": "Greenwich Mean Time", "UYST": "Oras sa Tag-init ng Uruguay", "AWST": "Standard Time ng Kanlurang Australya", "JST": "Standard na Oras sa Japan", "GFT": "Oras sa French Guiana", "OESZ": "Oras sa Tag-init ng Silangang Europe", "EAT": "Oras sa Silangang Africa", "WITA": "Oras ng Gitnang Indonesiya", "WARST": "Oras sa Tag-init ng Kanlurang Argentina", "ACWDT": "Daylight Time ng Gitnang Kanluran ng Australya", "ACST": "Standard Time ng Gitnang Australya", "SRT": "Oras sa Suriname", "HNOG": "Standard na Oras sa Kanlurang Greenland", "PST": "Standard na Oras sa Pasipiko", "CHADT": "Daylight Time sa Chatham", "MEZ": "Standard na Oras sa Gitnang Europe", "WAST": "Oras sa Tag-init ng Kanlurang Africa", "HNCU": "Standard na Oras sa Cuba", "ADT": "Daylight Time sa Atlantiko", "LHST": "Standard na Oras sa Lord Howe", "JDT": "Daylight Time sa Japan", "TMST": "Oras sa Tag-init ng Turkmenistan", "WAT": "Standard na Oras sa Kanlurang Africa", "HEPMX": "Daylight Time sa Pasipiko ng Mexico", "MST": "MST"},
+ timezones: map[string]string{"HENOMX": "Daylight Time sa Hilagang-kanlurang Mexico", "ACDT": "Daylight Time ng Gitnang Australya", "∅∅∅": "∅∅∅", "JDT": "Daylight Time sa Japan", "MST": "MST", "HKT": "Standard na Oras sa Hong Kong", "EDT": "Eastern Daylight Time", "AKST": "Standard na Oras sa Alaska", "CLT": "Standard na Oras sa Chile", "TMST": "Oras sa Tag-init ng Turkmenistan", "WIB": "Oras ng Kanlurang Indonesiya", "MESZ": "Oras sa Tag-init ng Gitnang Europe", "ART": "Standard na Oras sa Argentina", "BT": "Oras sa Bhutan", "HNT": "Standard na Oras sa Newfoundland", "LHDT": "Daylight Time sa Lorde Howe", "HKST": "Oras sa Tag-init ng Hong Kong", "EST": "Eastern na Standard na Oras", "HEEG": "Oras sa Tag-init ng Silangang Greenland", "PST": "Standard na Oras sa Pasipiko", "HNPM": "Standard na Oras sa Saint Pierre and Miquelon", "EAT": "Oras sa Silangang Africa", "CHADT": "Daylight Time sa Chatham", "ADT": "Daylight Time sa Atlantiko", "WAT": "Standard na Oras sa Kanlurang Africa", "AEST": "Standard Time ng Silangang Australya", "HNOG": "Standard na Oras sa Kanlurang Greenland", "TMT": "Standard na Oras sa Turkmenistan", "WAST": "Oras sa Tag-init ng Kanlurang Africa", "HAT": "Daylight Time sa Newfoundland", "HNCU": "Standard na Oras sa Cuba", "UYT": "Standard na Oras sa Uruguay", "CST": "Sentral na Karaniwang Oras", "NZDT": "Daylight Time sa New Zealand", "IST": "Standard na Oras sa Bhutan", "JST": "Standard na Oras sa Japan", "MDT": "MDT", "ACST": "Standard Time ng Gitnang Australya", "AKDT": "Daylight Time sa Alaska", "BOT": "Oras sa Bolivia", "HAST": "Standard na Oras sa Hawaii-Aleutian", "GMT": "Greenwich Mean Time", "WART": "Standard na Oras sa Kanlurang Argentina", "AST": "Standard na Oras sa Atlantiko", "SRT": "Oras sa Suriname", "GYT": "Oras sa Guyana", "AWST": "Standard Time ng Kanlurang Australya", "HADT": "Oras sa Tag-init ng Hawaii-Aleutian", "HNNOMX": "Standard na Oras sa Hilagang-kanlurang Mexico", "HNPMX": "Standard na Oras sa Pasipiko ng Mexico", "SGT": "Standard na Oras sa Singapore", "GFT": "Oras sa French Guiana", "WITA": "Oras ng Gitnang Indonesiya", "NZST": "Standard na Oras sa New Zealand", "ARST": "Oras sa Tag-init ng Argentina", "COST": "Oras sa Tag-init ng Colombia", "HNEG": "Standard na Oras sa Silangang Greenland", "ACWDT": "Daylight Time ng Gitnang Kanluran ng Australya", "CLST": "Oras sa Tag-init ng Chile", "HEOG": "Oras sa Tag-init ng Kanlurang Greenland", "HECU": "Daylight Time sa Cuba", "CDT": "Sentral na Daylight Time", "ECT": "Oras sa Ecuador", "LHST": "Standard na Oras sa Lord Howe", "PDT": "Daylight Time sa Pasipiko", "MEZ": "Standard na Oras sa Gitnang Europe", "WEZ": "Standard na Oras sa Kanlurang Europe", "MYT": "Oras ng Malaysia", "COT": "Standard na Oras sa Colombia", "AEDT": "Daylight Time ng Silangang Australya", "HEPMX": "Daylight Time sa Pasipiko ng Mexico", "WARST": "Oras sa Tag-init ng Kanlurang Argentina", "AWDT": "Daylight Time sa Kanlurang Australya", "OESZ": "Oras sa Tag-init ng Silangang Europe", "CAT": "Oras sa Gitnang Africa", "VET": "Oras sa Venezuela", "WESZ": "Oras sa Tag-init ng Kanlurang Europe", "HEPM": "Daylight Time sa Saint Pierre and Miquelon", "CHAST": "Standard na Oras sa Chatham", "ACWST": "Standard Time ng Gitnang Kanluran ng Australya", "WIT": "Oras ng Silangang Indonesiya", "OEZ": "Standard na Oras sa Silangang Europe", "ChST": "Standard na Oras sa Chamorro", "UYST": "Oras sa Tag-init ng Uruguay", "SAST": "Oras sa Timog Africa"},
}
}
diff --git a/fil_PH/fil_PH.go b/fil_PH/fil_PH.go
index 9d906357..7401284d 100644
--- a/fil_PH/fil_PH.go
+++ b/fil_PH/fil_PH.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"BC", "AD"},
- timezones: map[string]string{"AEDT": "Daylight Time ng Silangang Australya", "NZDT": "Daylight Time sa New Zealand", "ACDT": "Daylight Time ng Gitnang Australya", "HENOMX": "Daylight Time sa Hilagang-kanlurang Mexico", "VET": "Oras sa Venezuela", "OESZ": "Oras sa Tag-init ng Silangang Europe", "WARST": "Oras sa Tag-init ng Kanlurang Argentina", "ARST": "Oras sa Tag-init ng Argentina", "HAT": "Daylight Time sa Newfoundland", "JST": "Standard na Oras sa Japan", "HECU": "Daylight Time sa Cuba", "GMT": "Greenwich Mean Time", "ACWST": "Standard Time ng Gitnang Kanluran ng Australya", "ADT": "Daylight Time sa Atlantiko", "UYT": "Standard na Oras sa Uruguay", "WIB": "Oras ng Kanlurang Indonesiya", "SRT": "Oras sa Suriname", "LHDT": "Daylight Time sa Lorde Howe", "IST": "Standard na Oras sa Bhutan", "GFT": "Oras sa French Guiana", "EST": "Eastern na Standard na Oras", "HNOG": "Standard na Oras sa Kanlurang Greenland", "WAT": "Standard na Oras sa Kanlurang Africa", "ECT": "Oras sa Ecuador", "HKST": "Oras sa Tag-init ng Hong Kong", "BT": "Oras sa Bhutan", "HNPM": "Standard na Oras sa Saint Pierre and Miquelon", "EDT": "Eastern Daylight Time", "AKST": "Standard na Oras sa Alaska", "WIT": "Oras ng Silangang Indonesiya", "MDT": "MDT", "AWDT": "Daylight Time sa Kanlurang Australya", "WART": "Standard na Oras sa Kanlurang Argentina", "WESZ": "Oras sa Tag-init ng Kanlurang Europe", "HKT": "Standard na Oras sa Hong Kong", "WITA": "Oras ng Gitnang Indonesiya", "CHAST": "Standard na Oras sa Chatham", "JDT": "Daylight Time sa Japan", "TMST": "Oras sa Tag-init ng Turkmenistan", "HNNOMX": "Standard na Oras sa Hilagang-kanlurang Mexico", "AEST": "Standard Time ng Silangang Australya", "LHST": "Standard na Oras sa Lord Howe", "HNEG": "Standard na Oras sa Silangang Greenland", "HNPMX": "Standard na Oras sa Pasipiko ng Mexico", "ART": "Standard na Oras sa Argentina", "AST": "Standard na Oras sa Atlantiko", "MYT": "Oras ng Malaysia", "PST": "Standard na Oras sa Pasipiko", "HEPM": "Daylight Time sa Saint Pierre and Miquelon", "CLST": "Oras sa Tag-init ng Chile", "COT": "Standard na Oras sa Colombia", "HNCU": "Standard na Oras sa Cuba", "HADT": "Oras sa Tag-init ng Hawaii-Aleutian", "NZST": "Standard na Oras sa New Zealand", "MESZ": "Oras sa Tag-init ng Gitnang Europe", "∅∅∅": "Oras sa Tag-init ng Amazon", "COST": "Oras sa Tag-init ng Colombia", "CST": "Sentral na Karaniwang Oras", "HAST": "Standard na Oras sa Hawaii-Aleutian", "MEZ": "Standard na Oras sa Gitnang Europe", "SAST": "Oras sa Timog Africa", "OEZ": "Standard na Oras sa Silangang Europe", "CAT": "Oras sa Gitnang Africa", "GYT": "Oras sa Guyana", "ACWDT": "Daylight Time ng Gitnang Kanluran ng Australya", "HNT": "Standard na Oras sa Newfoundland", "PDT": "Daylight Time sa Pasipiko", "HEEG": "Oras sa Tag-init ng Silangang Greenland", "ACST": "Standard Time ng Gitnang Australya", "WAST": "Oras sa Tag-init ng Kanlurang Africa", "MST": "MST", "AWST": "Standard Time ng Kanlurang Australya", "CHADT": "Daylight Time sa Chatham", "CDT": "Sentral na Daylight Time", "HEPMX": "Daylight Time sa Pasipiko ng Mexico", "HEOG": "Oras sa Tag-init ng Kanlurang Greenland", "WEZ": "Standard na Oras sa Kanlurang Europe", "TMT": "Standard na Oras sa Turkmenistan", "ChST": "Standard na Oras sa Chamorro", "BOT": "Oras sa Bolivia", "EAT": "Oras sa Silangang Africa", "CLT": "Standard na Oras sa Chile", "SGT": "Standard na Oras sa Singapore", "AKDT": "Daylight Time sa Alaska", "UYST": "Oras sa Tag-init ng Uruguay"},
+ timezones: map[string]string{"COST": "Oras sa Tag-init ng Colombia", "BT": "Oras sa Bhutan", "HNT": "Standard na Oras sa Newfoundland", "AKDT": "Daylight Time sa Alaska", "AWST": "Standard Time ng Kanlurang Australya", "WAST": "Oras sa Tag-init ng Kanlurang Africa", "EDT": "Eastern Daylight Time", "HKT": "Standard na Oras sa Hong Kong", "WARST": "Oras sa Tag-init ng Kanlurang Argentina", "HEOG": "Oras sa Tag-init ng Kanlurang Greenland", "HKST": "Oras sa Tag-init ng Hong Kong", "AKST": "Standard na Oras sa Alaska", "SGT": "Standard na Oras sa Singapore", "IST": "Standard na Oras sa Bhutan", "GMT": "Greenwich Mean Time", "MST": "MST", "MDT": "MDT", "SAST": "Oras sa Timog Africa", "TMT": "Standard na Oras sa Turkmenistan", "TMST": "Oras sa Tag-init ng Turkmenistan", "ART": "Standard na Oras sa Argentina", "HNNOMX": "Standard na Oras sa Hilagang-kanlurang Mexico", "ACWST": "Standard Time ng Gitnang Kanluran ng Australya", "WART": "Standard na Oras sa Kanlurang Argentina", "HNOG": "Standard na Oras sa Kanlurang Greenland", "OEZ": "Standard na Oras sa Silangang Europe", "ACST": "Standard Time ng Gitnang Australya", "GFT": "Oras sa French Guiana", "HNPMX": "Standard na Oras sa Pasipiko ng Mexico", "ADT": "Daylight Time sa Atlantiko", "OESZ": "Oras sa Tag-init ng Silangang Europe", "HEPMX": "Daylight Time sa Pasipiko ng Mexico", "BOT": "Oras sa Bolivia", "HAST": "Standard na Oras sa Hawaii-Aleutian", "HECU": "Daylight Time sa Cuba", "CHAST": "Standard na Oras sa Chatham", "CHADT": "Daylight Time sa Chatham", "NZST": "Standard na Oras sa New Zealand", "JST": "Standard na Oras sa Japan", "WAT": "Standard na Oras sa Kanlurang Africa", "EST": "Eastern na Standard na Oras", "∅∅∅": "Oras sa Tag-init ng Peru", "WIT": "Oras ng Silangang Indonesiya", "MYT": "Oras ng Malaysia", "COT": "Standard na Oras sa Colombia", "LHST": "Standard na Oras sa Lord Howe", "CDT": "Sentral na Daylight Time", "WESZ": "Oras sa Tag-init ng Kanlurang Europe", "CST": "Sentral na Karaniwang Oras", "HADT": "Oras sa Tag-init ng Hawaii-Aleutian", "CAT": "Oras sa Gitnang Africa", "VET": "Oras sa Venezuela", "UYT": "Standard na Oras sa Uruguay", "EAT": "Oras sa Silangang Africa", "ECT": "Oras sa Ecuador", "HNEG": "Standard na Oras sa Silangang Greenland", "WITA": "Oras ng Gitnang Indonesiya", "HNCU": "Standard na Oras sa Cuba", "AST": "Standard na Oras sa Atlantiko", "AEST": "Standard Time ng Silangang Australya", "UYST": "Oras sa Tag-init ng Uruguay", "JDT": "Daylight Time sa Japan", "HEEG": "Oras sa Tag-init ng Silangang Greenland", "MEZ": "Standard na Oras sa Gitnang Europe", "GYT": "Oras sa Guyana", "ACWDT": "Daylight Time ng Gitnang Kanluran ng Australya", "MESZ": "Oras sa Tag-init ng Gitnang Europe", "AEDT": "Daylight Time ng Silangang Australya", "HNPM": "Standard na Oras sa Saint Pierre and Miquelon", "HEPM": "Daylight Time sa Saint Pierre and Miquelon", "PST": "Standard na Oras sa Pasipiko", "PDT": "Daylight Time sa Pasipiko", "CLST": "Oras sa Tag-init ng Chile", "WEZ": "Standard na Oras sa Kanlurang Europe", "ACDT": "Daylight Time ng Gitnang Australya", "HAT": "Daylight Time sa Newfoundland", "AWDT": "Daylight Time sa Kanlurang Australya", "LHDT": "Daylight Time sa Lorde Howe", "SRT": "Oras sa Suriname", "WIB": "Oras ng Kanlurang Indonesiya", "NZDT": "Daylight Time sa New Zealand", "CLT": "Standard na Oras sa Chile", "ARST": "Oras sa Tag-init ng Argentina", "HENOMX": "Daylight Time sa Hilagang-kanlurang Mexico", "ChST": "Standard na Oras sa Chamorro"},
}
}
diff --git a/fo/fo.go b/fo/fo.go
index 88bfff81..c360f404 100644
--- a/fo/fo.go
+++ b/fo/fo.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "e.Kr."},
erasNarrow: []string{"fKr", "eKr"},
erasWide: []string{"fyri Krist", "eftir Krist"},
- timezones: map[string]string{"WIB": "Vestur Indonesia tíð", "HKST": "Hong Kong summartíð", "HNPM": "St. Pierre & Miquelon vanlig tíð", "LHDT": "Lord Howe summartíð", "AKDT": "Alaska summartíð", "COST": "Kolombia summartíð", "CST": "Central vanlig tíð", "BT": "Butan tíð", "HAT": "Newfoundland summartíð", "MESZ": "Miðevropa summartíð", "JDT": "Japan summartíð", "OESZ": "Eysturevropa summartíð", "HAST": "Hawaii-Aleutian vanlig tíð", "SRT": "Surinam tíð", "HEPM": "St. Pierre & Miquelon summartíð", "AST": "Atlantic vanlig tíð", "UYST": "Uruguai summartíð", "HNOG": "Vestur grønlendsk vanlig tíð", "NZDT": "Nýsæland summartíð", "TMT": "Turkmenistan vanlig tíð", "OEZ": "Eysturevropa vanlig tíð", "HNPMX": "Mexican Pacific vanlig tíð", "MDT": "Mountain summartíð", "WESZ": "Vesturevropa summartíð", "AWDT": "vestur Avstralia summartíð", "IST": "India tíð", "WAT": "Vesturafrika vanlig tíð", "HNEG": "Eystur grønlendsk vanlig tíð", "HNCU": "Cuba vanlig tíð", "ADT": "Atlantic summartíð", "MST": "Mountain vanlig tíð", "ARST": "Argentina summartíð", "PST": "Pacific vanlig tíð", "AEST": "eystur Avstralia vanlig tíð", "JST": "Japan vanlig tíð", "PDT": "Pacific summartíð", "HNNOMX": "Northwest Mexico vanlig tíð", "ECT": "Ekvador tíð", "MYT": "Malaisia tíð", "UYT": "Uruguai vanlig tíð", "VET": "Venesuela tíð", "CHADT": "Chatham summartíð", "SAST": "Suðurafrika vanlig tíð", "CLT": "Kili vanlig tíð", "CLST": "Kili summartíð", "ACWDT": "miðvestur Avstralia summartíð", "CHAST": "Chatham vanlig tíð", "BOT": "Bolivia tíð", "HENOMX": "Northwest Mexico summartíð", "CDT": "Central summartíð", "ACWST": "miðvestur Avstralia vanlig tíð", "ART": "Argentina vanlig tíð", "HKT": "Hong Kong vanlig tíð", "AEDT": "eystur Avstralia summartíð", "COT": "Kolombia vanlig tíð", "WIT": "Eystur Indonesia tíð", "WITA": "Mið Indonesia tíð", "∅∅∅": "Amasona summartíð", "EAT": "Eysturafrika tíð", "EST": "Eastern vanlig tíð", "HADT": "Hawaii-Aleutian summartíð", "WEZ": "Vesturevropa vanlig tíð", "LHST": "Lord Howe vanlig tíð", "WART": "Vestur Argentina vanlig tíð", "HECU": "Cuba summartíð", "HEPMX": "Mexican Pacific summartíð", "GYT": "Gujana tíð", "HEOG": "Vestur grønlendsk summartíð", "AWST": "vestur Avstralia vanlig tíð", "GFT": "Franska Gujana tíð", "ChST": "Chamorro vanlig tíð", "SGT": "Singapor tíð", "NZST": "Nýsæland vanlig tíð", "WAST": "Vesturafrika summartíð", "EDT": "Eastern summartíð", "HNT": "Newfoundland vanlig tíð", "TMST": "Turkmenistan summartíð", "ACST": "mið Avstralia vanlig tíð", "CAT": "Miðafrika tíð", "AKST": "Alaska vanlig tíð", "MEZ": "Miðevropa vanlig tíð", "HEEG": "Eystur grønlendsk summartíð", "ACDT": "mið Avstralia summartíð", "WARST": "Vestur Argentina summartíð", "GMT": "Greenwich Mean tíð"},
+ timezones: map[string]string{"TMT": "Turkmenistan vanlig tíð", "HNEG": "Eystur grønlendsk vanlig tíð", "AKDT": "Alaska summartíð", "AEDT": "eystur Avstralia summartíð", "MST": "Mountain vanlig tíð", "HNCU": "Cuba vanlig tíð", "IST": "India tíð", "VET": "Venesuela tíð", "EST": "Eastern vanlig tíð", "WARST": "Vestur Argentina summartíð", "COST": "Kolombia summartíð", "LHST": "Lord Howe vanlig tíð", "HADT": "Hawaii-Aleutian summartíð", "NZDT": "Nýsæland summartíð", "ADT": "Atlantic summartíð", "OESZ": "Eysturevropa summartíð", "WESZ": "Vesturevropa summartíð", "ART": "Argentina vanlig tíð", "AKST": "Alaska vanlig tíð", "ChST": "Chamorro vanlig tíð", "EAT": "Eysturafrika tíð", "CDT": "Central summartíð", "HAST": "Hawaii-Aleutian vanlig tíð", "CAT": "Miðafrika tíð", "ACDT": "mið Avstralia summartíð", "GYT": "Gujana tíð", "HECU": "Cuba summartíð", "PST": "Pacific vanlig tíð", "JDT": "Japan summartíð", "HEOG": "Vestur grønlendsk summartíð", "ARST": "Argentina summartíð", "LHDT": "Lord Howe summartíð", "ECT": "Ekvador tíð", "OEZ": "Eysturevropa vanlig tíð", "TMST": "Turkmenistan summartíð", "HKT": "Hong Kong vanlig tíð", "ACST": "mið Avstralia vanlig tíð", "MYT": "Malaisia tíð", "HNOG": "Vestur grønlendsk vanlig tíð", "HNNOMX": "Northwest Mexico vanlig tíð", "WAT": "Vesturafrika vanlig tíð", "AEST": "eystur Avstralia vanlig tíð", "ACWST": "miðvestur Avstralia vanlig tíð", "ACWDT": "miðvestur Avstralia summartíð", "WAST": "Vesturafrika summartíð", "BT": "Butan tíð", "UYST": "Uruguai summartíð", "SAST": "Suðurafrika vanlig tíð", "AWDT": "vestur Avstralia summartíð", "WART": "Vestur Argentina vanlig tíð", "MDT": "Mountain summartíð", "UYT": "Uruguai vanlig tíð", "WEZ": "Vesturevropa vanlig tíð", "EDT": "Eastern summartíð", "HNT": "Newfoundland vanlig tíð", "HNPMX": "Mexican Pacific vanlig tíð", "SRT": "Surinam tíð", "SGT": "Singapor tíð", "MEZ": "Miðevropa vanlig tíð", "CLT": "Kili vanlig tíð", "WITA": "Mið Indonesia tíð", "HNPM": "St. Pierre & Miquelon vanlig tíð", "HEPMX": "Mexican Pacific summartíð", "WIB": "Vestur Indonesia tíð", "HKST": "Hong Kong summartíð", "HENOMX": "Northwest Mexico summartíð", "GMT": "Greenwich Mean tíð", "COT": "Kolombia vanlig tíð", "∅∅∅": "∅∅∅", "HEPM": "St. Pierre & Miquelon summartíð", "WIT": "Eystur Indonesia tíð", "CHADT": "Chatham summartíð", "NZST": "Nýsæland vanlig tíð", "MESZ": "Miðevropa summartíð", "HAT": "Newfoundland summartíð", "AWST": "vestur Avstralia vanlig tíð", "BOT": "Bolivia tíð", "PDT": "Pacific summartíð", "JST": "Japan vanlig tíð", "AST": "Atlantic vanlig tíð", "HEEG": "Eystur grønlendsk summartíð", "GFT": "Franska Gujana tíð", "CST": "Central vanlig tíð", "CHAST": "Chatham vanlig tíð", "CLST": "Kili summartíð"},
}
}
diff --git a/fo_DK/fo_DK.go b/fo_DK/fo_DK.go
index 84d2454c..47f35632 100644
--- a/fo_DK/fo_DK.go
+++ b/fo_DK/fo_DK.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "e.Kr."},
erasNarrow: []string{"fKr", "eKr"},
erasWide: []string{"fyri Krist", "eftir Krist"},
- timezones: map[string]string{"∅∅∅": "Amasona summartíð", "HNPMX": "Mexican Pacific vanlig tíð", "WEZ": "Vesturevropa vanlig tíð", "LHST": "Lord Howe vanlig tíð", "CHAST": "Chatham vanlig tíð", "CHADT": "Chatham summartíð", "CAT": "Miðafrika tíð", "MDT": "MDT", "UYT": "Uruguai vanlig tíð", "ARST": "Argentina summartíð", "TMT": "Turkmenistan vanlig tíð", "TMST": "Turkmenistan summartíð", "WART": "Vestur Argentina vanlig tíð", "WARST": "Vestur Argentina summartíð", "VET": "Venesuela tíð", "BT": "Butan tíð", "SRT": "Surinam tíð", "IST": "India tíð", "OEZ": "Eysturevropa vanlig tíð", "GFT": "Franska Gujana tíð", "EAT": "Eysturafrika tíð", "COST": "Kolombia summartíð", "EDT": "Eastern summartíð", "MST": "MST", "MESZ": "Miðevropa summartíð", "NZST": "Nýsæland vanlig tíð", "CLT": "Kili vanlig tíð", "SGT": "Singapor tíð", "CLST": "Kili summartíð", "ACST": "mið Avstralia vanlig tíð", "ACDT": "mið Avstralia summartíð", "HNNOMX": "Northwest Mexico vanlig tíð", "CST": "Central vanlig tíð", "WIB": "Vestur Indonesia tíð", "ART": "Argentina vanlig tíð", "HEPM": "St. Pierre & Miquelon summartíð", "OESZ": "Eysturevropa summartíð", "HEPMX": "Mexican Pacific summartíð", "HADT": "Hawaii-Aleutian summartíð", "AWST": "vestur Avstralia vanlig tíð", "NZDT": "Nýsæland summartíð", "HEEG": "Eystur grønlendsk summartíð", "WAST": "Vesturafrika summartíð", "AKDT": "Alaska summartíð", "HAST": "Hawaii-Aleutian vanlig tíð", "HNEG": "Eystur grønlendsk vanlig tíð", "HENOMX": "Northwest Mexico summartíð", "HEOG": "Vestur grønlendsk summartíð", "WITA": "Mið Indonesia tíð", "ChST": "Chamorro vanlig tíð", "WIT": "Eystur Indonesia tíð", "HNOG": "Vestur grønlendsk vanlig tíð", "AEDT": "eystur Avstralia summartíð", "HKST": "Hong Kong summartíð", "ECT": "Ekvador tíð", "GMT": "Greenwich Mean tíð", "HNCU": "Cuba vanlig tíð", "AST": "Atlantic vanlig tíð", "PDT": "Pacific summartíð", "LHDT": "Lord Howe summartíð", "WAT": "Vesturafrika vanlig tíð", "AKST": "Alaska vanlig tíð", "ADT": "Atlantic summartíð", "GYT": "Gujana tíð", "BOT": "Bolivia tíð", "HECU": "Cuba summartíð", "EST": "Eastern vanlig tíð", "UYST": "Uruguai summartíð", "AEST": "eystur Avstralia vanlig tíð", "MEZ": "Miðevropa vanlig tíð", "SAST": "Suðurafrika vanlig tíð", "JDT": "Japan summartíð", "PST": "Pacific vanlig tíð", "WESZ": "Vesturevropa summartíð", "ACWDT": "miðvestur Avstralia summartíð", "HNT": "Newfoundland vanlig tíð", "HAT": "Newfoundland summartíð", "HKT": "Hong Kong vanlig tíð", "JST": "Japan vanlig tíð", "COT": "Kolombia vanlig tíð", "CDT": "Central summartíð", "MYT": "Malaisia tíð", "ACWST": "miðvestur Avstralia vanlig tíð", "AWDT": "vestur Avstralia summartíð", "HNPM": "St. Pierre & Miquelon vanlig tíð"},
+ timezones: map[string]string{"CHADT": "Chatham summartíð", "PDT": "Pacific summartíð", "ACWST": "miðvestur Avstralia vanlig tíð", "OEZ": "Eysturevropa vanlig tíð", "TMST": "Turkmenistan summartíð", "HNEG": "Eystur grønlendsk vanlig tíð", "WITA": "Mið Indonesia tíð", "AEST": "eystur Avstralia vanlig tíð", "SAST": "Suðurafrika vanlig tíð", "MEZ": "Miðevropa vanlig tíð", "HNNOMX": "Northwest Mexico vanlig tíð", "PST": "Pacific vanlig tíð", "HAST": "Hawaii-Aleutian vanlig tíð", "WART": "Vestur Argentina vanlig tíð", "CLT": "Kili vanlig tíð", "EDT": "Eastern summartíð", "LHST": "Lord Howe vanlig tíð", "CLST": "Kili summartíð", "WEZ": "Vesturevropa vanlig tíð", "WAST": "Vesturafrika summartíð", "COT": "Kolombia vanlig tíð", "IST": "India tíð", "ACWDT": "miðvestur Avstralia summartíð", "NZST": "Nýsæland vanlig tíð", "AST": "Atlantic vanlig tíð", "BT": "Butan tíð", "UYST": "Uruguai summartíð", "CDT": "Central summartíð", "CHAST": "Chatham vanlig tíð", "HNOG": "Vestur grønlendsk vanlig tíð", "ART": "Argentina vanlig tíð", "HAT": "Newfoundland summartíð", "AKDT": "Alaska summartíð", "ChST": "Chamorro vanlig tíð", "LHDT": "Lord Howe summartíð", "SRT": "Surinam tíð", "HNCU": "Cuba vanlig tíð", "SGT": "Singapor tíð", "ECT": "Ekvador tíð", "JST": "Japan vanlig tíð", "ACDT": "mið Avstralia summartíð", "MST": "MST", "MDT": "MDT", "HKT": "Hong Kong vanlig tíð", "COST": "Kolombia summartíð", "GYT": "Gujana tíð", "CST": "Central vanlig tíð", "BOT": "Bolivia tíð", "AKST": "Alaska vanlig tíð", "HEPMX": "Mexican Pacific summartíð", "ARST": "Argentina summartíð", "WAT": "Vesturafrika vanlig tíð", "HADT": "Hawaii-Aleutian summartíð", "∅∅∅": "Amasona summartíð", "NZDT": "Nýsæland summartíð", "VET": "Venesuela tíð", "ADT": "Atlantic summartíð", "HNT": "Newfoundland vanlig tíð", "HEEG": "Eystur grønlendsk summartíð", "AEDT": "eystur Avstralia summartíð", "AWST": "vestur Avstralia vanlig tíð", "CAT": "Miðafrika tíð", "MESZ": "Miðevropa summartíð", "GMT": "Greenwich Mean tíð", "TMT": "Turkmenistan vanlig tíð", "HKST": "Hong Kong summartíð", "JDT": "Japan summartíð", "ACST": "mið Avstralia vanlig tíð", "HEPM": "St. Pierre & Miquelon summartíð", "EAT": "Eysturafrika tíð", "MYT": "Malaisia tíð", "HNPM": "St. Pierre & Miquelon vanlig tíð", "HNPMX": "Mexican Pacific vanlig tíð", "WIT": "Eystur Indonesia tíð", "WARST": "Vestur Argentina summartíð", "HECU": "Cuba summartíð", "HEOG": "Vestur grønlendsk summartíð", "OESZ": "Eysturevropa summartíð", "WESZ": "Vesturevropa summartíð", "EST": "Eastern vanlig tíð", "HENOMX": "Northwest Mexico summartíð", "GFT": "Franska Gujana tíð", "UYT": "Uruguai vanlig tíð", "WIB": "Vestur Indonesia tíð", "AWDT": "vestur Avstralia summartíð"},
}
}
diff --git a/fo_FO/fo_FO.go b/fo_FO/fo_FO.go
index 4967bd93..3bbe345f 100644
--- a/fo_FO/fo_FO.go
+++ b/fo_FO/fo_FO.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "e.Kr."},
erasNarrow: []string{"fKr", "eKr"},
erasWide: []string{"fyri Krist", "eftir Krist"},
- timezones: map[string]string{"TMT": "Turkmenistan vanlig tíð", "GYT": "Gujana tíð", "COT": "Kolombia vanlig tíð", "HAT": "Newfoundland summartíð", "WAST": "Vesturafrika summartíð", "HEPM": "St. Pierre & Miquelon summartíð", "HNOG": "Vestur grønlendsk vanlig tíð", "EAT": "Eysturafrika tíð", "WART": "Vestur Argentina vanlig tíð", "HECU": "Cuba summartíð", "HNT": "Newfoundland vanlig tíð", "CHAST": "Chatham vanlig tíð", "JDT": "Japan summartíð", "ACST": "mið Avstralia vanlig tíð", "WIB": "Vestur Indonesia tíð", "GFT": "Franska Gujana tíð", "CAT": "Miðafrika tíð", "HADT": "Hawaii-Aleutian summartíð", "AEST": "eystur Avstralia vanlig tíð", "HNPM": "St. Pierre & Miquelon vanlig tíð", "MESZ": "Miðevropa summartíð", "IST": "India tíð", "HEPMX": "Mexican Pacific summartíð", "HENOMX": "Northwest Mexico summartíð", "CDT": "Central summartíð", "AKDT": "Alaska summartíð", "WIT": "Eystur Indonesia tíð", "ACWDT": "miðvestur Avstralia summartíð", "HNEG": "Eystur grønlendsk vanlig tíð", "COST": "Kolombia summartíð", "MYT": "Malaisia tíð", "WEZ": "Vesturevropa vanlig tíð", "HKT": "Hong Kong vanlig tíð", "ACDT": "mið Avstralia summartíð", "SGT": "Singapor tíð", "MST": "MST", "UYT": "Uruguai vanlig tíð", "HEOG": "Vestur grønlendsk summartíð", "HNNOMX": "Northwest Mexico vanlig tíð", "ART": "Argentina vanlig tíð", "WESZ": "Vesturevropa summartíð", "ACWST": "miðvestur Avstralia vanlig tíð", "AWDT": "vestur Avstralia summartíð", "HKST": "Hong Kong summartíð", "CHADT": "Chatham summartíð", "MEZ": "Miðevropa vanlig tíð", "BT": "Butan tíð", "TMST": "Turkmenistan summartíð", "CLST": "Kili summartíð", "BOT": "Bolivia tíð", "JST": "Japan vanlig tíð", "∅∅∅": "Peru summartíð", "EDT": "Eastern summartíð", "AST": "Atlantic vanlig tíð", "UYST": "Uruguai summartíð", "AEDT": "eystur Avstralia summartíð", "LHST": "Lord Howe vanlig tíð", "NZST": "Nýsæland vanlig tíð", "ECT": "Ekvador tíð", "SAST": "Suðurafrika vanlig tíð", "NZDT": "Nýsæland summartíð", "HNCU": "Cuba vanlig tíð", "CST": "Central vanlig tíð", "HAST": "Hawaii-Aleutian vanlig tíð", "ChST": "Chamorro vanlig tíð", "WAT": "Vesturafrika vanlig tíð", "EST": "Eastern vanlig tíð", "AKST": "Alaska vanlig tíð", "SRT": "Surinam tíð", "PDT": "Pacific summartíð", "HEEG": "Eystur grønlendsk summartíð", "OESZ": "Eysturevropa summartíð", "WARST": "Vestur Argentina summartíð", "MDT": "MDT", "HNPMX": "Mexican Pacific vanlig tíð", "PST": "Pacific vanlig tíð", "AWST": "vestur Avstralia vanlig tíð", "LHDT": "Lord Howe summartíð", "CLT": "Kili vanlig tíð", "OEZ": "Eysturevropa vanlig tíð", "ADT": "Atlantic summartíð", "VET": "Venesuela tíð", "ARST": "Argentina summartíð", "WITA": "Mið Indonesia tíð", "GMT": "Greenwich Mean tíð"},
+ timezones: map[string]string{"NZDT": "Nýsæland summartíð", "CAT": "Miðafrika tíð", "MST": "MST", "HNNOMX": "Northwest Mexico vanlig tíð", "HAT": "Newfoundland summartíð", "AWST": "vestur Avstralia vanlig tíð", "ART": "Argentina vanlig tíð", "SGT": "Singapor tíð", "HAST": "Hawaii-Aleutian vanlig tíð", "NZST": "Nýsæland vanlig tíð", "JST": "Japan vanlig tíð", "OEZ": "Eysturevropa vanlig tíð", "EDT": "Eastern summartíð", "ACDT": "mið Avstralia summartíð", "UYT": "Uruguai vanlig tíð", "HEPMX": "Mexican Pacific summartíð", "HECU": "Cuba summartíð", "VET": "Venesuela tíð", "GMT": "Greenwich Mean tíð", "UYST": "Uruguai summartíð", "HNPMX": "Mexican Pacific vanlig tíð", "SAST": "Suðurafrika vanlig tíð", "CDT": "Central summartíð", "ACWST": "miðvestur Avstralia vanlig tíð", "HKT": "Hong Kong vanlig tíð", "BT": "Butan tíð", "TMT": "Turkmenistan vanlig tíð", "WAT": "Vesturafrika vanlig tíð", "HNCU": "Cuba vanlig tíð", "BOT": "Bolivia tíð", "WART": "Vestur Argentina vanlig tíð", "HEOG": "Vestur grønlendsk summartíð", "HKST": "Hong Kong summartíð", "HEEG": "Eystur grønlendsk summartíð", "ECT": "Ekvador tíð", "WESZ": "Vesturevropa summartíð", "HEPM": "St. Pierre & Miquelon summartíð", "ChST": "Chamorro vanlig tíð", "LHDT": "Lord Howe summartíð", "AWDT": "vestur Avstralia summartíð", "TMST": "Turkmenistan summartíð", "LHST": "Lord Howe vanlig tíð", "WIB": "Vestur Indonesia tíð", "ADT": "Atlantic summartíð", "ACST": "mið Avstralia vanlig tíð", "HNEG": "Eystur grønlendsk vanlig tíð", "HNT": "Newfoundland vanlig tíð", "AKST": "Alaska vanlig tíð", "SRT": "Surinam tíð", "OESZ": "Eysturevropa summartíð", "WAST": "Vesturafrika summartíð", "GFT": "Franska Gujana tíð", "PDT": "Pacific summartíð", "WARST": "Vestur Argentina summartíð", "EAT": "Eysturafrika tíð", "CST": "Central vanlig tíð", "ACWDT": "miðvestur Avstralia summartíð", "EST": "Eastern vanlig tíð", "HENOMX": "Northwest Mexico summartíð", "WITA": "Mið Indonesia tíð", "AKDT": "Alaska summartíð", "GYT": "Gujana tíð", "IST": "India tíð", "WEZ": "Vesturevropa vanlig tíð", "MYT": "Malaisia tíð", "MESZ": "Miðevropa summartíð", "CLT": "Kili vanlig tíð", "AST": "Atlantic vanlig tíð", "∅∅∅": "∅∅∅", "AEST": "eystur Avstralia vanlig tíð", "HNPM": "St. Pierre & Miquelon vanlig tíð", "CHAST": "Chatham vanlig tíð", "HADT": "Hawaii-Aleutian summartíð", "WIT": "Eystur Indonesia tíð", "CHADT": "Chatham summartíð", "JDT": "Japan summartíð", "ARST": "Argentina summartíð", "COST": "Kolombia summartíð", "MEZ": "Miðevropa vanlig tíð", "HNOG": "Vestur grønlendsk vanlig tíð", "MDT": "MDT", "COT": "Kolombia vanlig tíð", "AEDT": "eystur Avstralia summartíð", "PST": "Pacific vanlig tíð", "CLST": "Kili summartíð"},
}
}
diff --git a/fr/fr.go b/fr/fr.go
index f4fa6483..1e3aa5c4 100644
--- a/fr/fr.go
+++ b/fr/fr.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"SGT": "heure de Singapour", "MST": "heure normale de Macao", "UYT": "heure normale de l’Uruguay", "GFT": "heure de la Guyane française", "ACST": "heure normale du centre de l’Australie", "SAST": "heure normale d’Afrique méridionale", "IST": "heure de l’Inde", "JDT": "heure d’été du Japon", "WARST": "heure d’été de l’Ouest argentin", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "AST": "heure normale de l’Atlantique", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "SRT": "heure du Suriname", "ACWST": "heure normale du centre-ouest de l’Australie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EDT": "heure d’été de l’Est", "AKDT": "heure d’été de l’Alaska", "HNOG": "heure normale de l’Ouest du Groenland", "CLST": "heure d’été du Chili", "TMST": "heure d’été du Turkménistan", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "HNEG": "heure normale de l’Est du Groenland", "WAT": "heure normale d’Afrique de l’Ouest", "ECT": "heure de l’Équateur", "GMT": "heure moyenne de Greenwich", "BT": "heure du Bhoutan", "HEOG": "heure d’été de l’Ouest du Groenland", "HNT": "heure normale de Terre-Neuve", "MDT": "heure d’été de Macao", "UYST": "heure d’été de l’Uruguay", "HNCU": "heure normale de Cuba", "CST": "heure normale du centre nord-américain", "AEDT": "heure d’été de l’Est de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "COT": "heure normale de Colombie", "ART": "heure normale d’Argentine", "CAT": "heure normale d’Afrique centrale", "WIB": "heure de l’Ouest indonésien", "LHST": "heure normale de Lord Howe", "CHAST": "heure normale des îles Chatham", "CLT": "heure normale du Chili", "∅∅∅": "heure d’été de l’Amazonie", "OEZ": "heure normale d’Europe de l’Est", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AWST": "heure normale de l’Ouest de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "WART": "heure normale de l’Ouest argentin", "MYT": "heure de la Malaisie", "MEZ": "heure normale d’Europe centrale", "MESZ": "heure d’été d’Europe centrale", "NZDT": "heure d’été de la Nouvelle-Zélande", "JST": "heure normale du Japon", "EST": "heure normale de l’Est nord-américain", "PDT": "heure d’été du Pacifique", "WESZ": "heure d’été d’Europe de l’Ouest", "ARST": "heure d’été de l’Argentine", "HEPMX": "heure d’été du Pacifique mexicain", "LHDT": "heure d’été de Lord Howe", "WAST": "heure d’été d’Afrique de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "HKT": "heure normale de Hong Kong", "CHADT": "heure d’été des îles Chatham", "HEEG": "heure d’été de l’Est du Groenland", "TMT": "heure normale du Turkménistan", "COST": "heure d’été de Colombie", "PST": "heure normale du Pacifique nord-américain", "AEST": "heure normale de l’Est de l’Australie", "HKST": "heure d’été de Hong Kong", "AKST": "heure normale de l’Alaska", "WEZ": "heure normale d’Europe de l’Ouest", "EAT": "heure normale d’Afrique de l’Est", "GYT": "heure du Guyana", "BOT": "heure de Bolivie", "OESZ": "heure d’été d’Europe de l’Est", "CDT": "heure d’été du Centre", "ADT": "heure d’été de l’Atlantique", "WIT": "heure de l’Est indonésien", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "ChST": "heure des Chamorro", "HNPMX": "heure normale du Pacifique mexicain", "VET": "heure du Venezuela", "WITA": "heure du Centre indonésien", "ACDT": "heure d’été du centre de l’Australie", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HECU": "heure d’été de Cuba"},
+ timezones: map[string]string{"JDT": "heure d’été du Japon", "COST": "heure d’été de Colombie", "AEST": "heure normale de l’Est de l’Australie", "GFT": "heure de la Guyane française", "UYST": "heure d’été de l’Uruguay", "LHST": "heure normale de Lord Howe", "SGT": "heure de Singapour", "JST": "heure normale du Japon", "WESZ": "heure d’été d’Europe de l’Ouest", "COT": "heure normale de Colombie", "ChST": "heure des Chamorro", "MST": "heure normale des Rocheuses", "SRT": "heure du Suriname", "HNCU": "heure normale de Cuba", "ACWDT": "heure d’été du centre-ouest de l’Australie", "VET": "heure du Venezuela", "ADT": "heure d’été de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "∅∅∅": "heure d’été de l’Acre", "PDT": "heure d’été du Pacifique", "MYT": "heure de la Malaisie", "ART": "heure normale d’Argentine", "OESZ": "heure d’été d’Europe de l’Est", "WART": "heure normale de l’Ouest argentin", "WARST": "heure d’été de l’Ouest argentin", "CLT": "heure normale du Chili", "TMST": "heure d’été du Turkménistan", "TMT": "heure normale du Turkménistan", "WAST": "heure d’été d’Afrique de l’Ouest", "HNEG": "heure normale de l’Est du Groenland", "SAST": "heure normale d’Afrique méridionale", "CAT": "heure normale d’Afrique centrale", "ACWST": "heure normale du centre-ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "AST": "heure normale de l’Atlantique", "ACST": "heure normale du centre de l’Australie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "LHDT": "heure d’été de Lord Howe", "WEZ": "heure normale d’Europe de l’Ouest", "EDT": "heure d’été de l’Est", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "GYT": "heure du Guyana", "HECU": "heure d’été de Cuba", "BOT": "heure de Bolivie", "EST": "heure normale de l’Est nord-américain", "HKT": "heure normale de Hong Kong", "HKST": "heure d’été de Hong Kong", "AKST": "heure normale de l’Alaska", "MESZ": "heure d’été d’Europe centrale", "HNOG": "heure normale de l’Ouest du Groenland", "ARST": "heure d’été de l’Argentine", "AEDT": "heure d’été de l’Est de l’Australie", "ECT": "heure de l’Équateur", "NZDT": "heure d’été de la Nouvelle-Zélande", "GMT": "heure moyenne de Greenwich", "UYT": "heure normale de l’Uruguay", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HNPMX": "heure normale du Pacifique mexicain", "HEPMX": "heure d’été du Pacifique mexicain", "WIT": "heure de l’Est indonésien", "MEZ": "heure normale d’Europe centrale", "OEZ": "heure normale d’Europe de l’Est", "HEEG": "heure d’été de l’Est du Groenland", "WITA": "heure du Centre indonésien", "EAT": "heure normale d’Afrique de l’Est", "AWST": "heure normale de l’Ouest de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HAT": "heure d’été de Terre-Neuve", "AKDT": "heure d’été de l’Alaska", "PST": "heure normale du Pacifique nord-américain", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "BT": "heure du Bhoutan", "WIB": "heure de l’Ouest indonésien", "HEOG": "heure d’été de l’Ouest du Groenland", "CLST": "heure d’été du Chili", "WAT": "heure normale d’Afrique de l’Ouest", "ACDT": "heure d’été du centre de l’Australie", "MDT": "heure d’été des Rocheuses", "CDT": "heure d’été du Centre", "IST": "heure de l’Inde", "CST": "heure normale du centre nord-américain", "CHAST": "heure normale des îles Chatham", "CHADT": "heure d’été des îles Chatham"},
}
}
diff --git a/fr_BE/fr_BE.go b/fr_BE/fr_BE.go
index 646a1f5a..04074c01 100644
--- a/fr_BE/fr_BE.go
+++ b/fr_BE/fr_BE.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"AWDT": "heure d’été de l’Ouest de l’Australie", "HEEG": "heure d’été de l’Est du Groenland", "OESZ": "heure d’été d’Europe de l’Est", "HEPMX": "heure d’été du Pacifique mexicain", "UYST": "heure d’été de l’Uruguay", "SRT": "heure du Suriname", "ACWST": "heure normale du centre-ouest de l’Australie", "ChST": "heure des Chamorro", "WIB": "heure de l’Ouest indonésien", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "WARST": "heure d’été de l’Ouest argentin", "AKST": "heure normale de l’Alaska", "ADT": "heure d’été de l’Atlantique", "MYT": "heure de la Malaisie", "HKST": "heure d’été de Hong Kong", "AWST": "heure normale de l’Ouest de l’Australie", "CHAST": "heure normale des îles Chatham", "JST": "heure normale du Japon", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HNOG": "heure normale de l’Ouest du Groenland", "NZST": "heure normale de la Nouvelle-Zélande", "CAT": "heure normale d’Afrique centrale", "MEZ": "heure normale d’Europe centrale", "LHST": "heure normale de Lord Howe", "LHDT": "heure d’été de Lord Howe", "HNT": "heure normale de Terre-Neuve", "PST": "heure normale du Pacifique nord-américain", "MESZ": "heure d’été d’Europe centrale", "SAST": "heure normale d’Afrique méridionale", "IST": "heure de l’Inde", "CLST": "heure d’été du Chili", "CST": "heure normale du centre nord-américain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HAT": "heure d’été de Terre-Neuve", "AEST": "heure normale de l’Est de l’Australie", "HKT": "heure normale de Hong Kong", "WITA": "heure du Centre indonésien", "ACST": "heure normale du centre de l’Australie", "WAT": "heure normale d’Afrique de l’Ouest", "WEZ": "heure normale d’Europe de l’Ouest", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "CDT": "heure d’été du Centre", "UYT": "heure normale de l’Uruguay", "COST": "heure d’été de Colombie", "ARST": "heure d’été de l’Argentine", "BOT": "heure de Bolivie", "HNEG": "heure normale de l’Est du Groenland", "SGT": "heure de Singapour", "GYT": "heure du Guyana", "WIT": "heure de l’Est indonésien", "∅∅∅": "heure d’été de l’Amazonie", "HAST": "heure normale d’Hawaii - Aléoutiennes", "BT": "heure du Bhoutan", "HEOG": "heure d’été de l’Ouest du Groenland", "TMST": "heure d’été du Turkménistan", "WART": "heure normale de l’Ouest argentin", "HECU": "heure d’été de Cuba", "MST": "heure normale des Rocheuses", "EAT": "heure normale d’Afrique de l’Est", "OEZ": "heure normale d’Europe de l’Est", "HNPMX": "heure normale du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "VET": "heure du Venezuela", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "GFT": "heure de la Guyane française", "WAST": "heure d’été d’Afrique de l’Ouest", "GMT": "heure moyenne de Greenwich", "AEDT": "heure d’été de l’Est de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "HNCU": "heure normale de Cuba", "EST": "heure normale de l’Est nord-américain", "EDT": "heure d’été de l’Est", "AKDT": "heure d’été de l’Alaska", "PDT": "heure d’été du Pacifique", "NZDT": "heure d’été de la Nouvelle-Zélande", "CHADT": "heure d’été des îles Chatham", "JDT": "heure d’été du Japon", "ART": "heure normale d’Argentine", "WESZ": "heure d’été d’Europe de l’Ouest", "CLT": "heure normale du Chili", "TMT": "heure normale du Turkménistan", "ECT": "heure de l’Équateur", "COT": "heure normale de Colombie", "MDT": "heure d’été des Rocheuses"},
+ timezones: map[string]string{"PDT": "heure d’été du Pacifique", "SAST": "heure normale d’Afrique méridionale", "CST": "heure normale du centre nord-américain", "NZDT": "heure d’été de la Nouvelle-Zélande", "WART": "heure normale de l’Ouest argentin", "OESZ": "heure d’été d’Europe de l’Est", "MST": "heure normale de Macao", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HAT": "heure d’été de Terre-Neuve", "AEDT": "heure d’été de l’Est de l’Australie", "SRT": "heure du Suriname", "HNCU": "heure normale de Cuba", "AWDT": "heure d’été de l’Ouest de l’Australie", "COT": "heure normale de Colombie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "HECU": "heure d’été de Cuba", "NZST": "heure normale de la Nouvelle-Zélande", "MEZ": "heure normale d’Europe centrale", "JDT": "heure d’été du Japon", "CLT": "heure normale du Chili", "TMT": "heure normale du Turkménistan", "HKST": "heure d’été de Hong Kong", "HNEG": "heure normale de l’Est du Groenland", "GFT": "heure de la Guyane française", "AKDT": "heure d’été de l’Alaska", "MESZ": "heure d’été d’Europe centrale", "TMST": "heure d’été du Turkménistan", "UYT": "heure normale de l’Uruguay", "CAT": "heure normale d’Afrique centrale", "MYT": "heure de la Malaisie", "WARST": "heure d’été de l’Ouest argentin", "WESZ": "heure d’été d’Europe de l’Ouest", "WAT": "heure normale d’Afrique de l’Ouest", "EST": "heure normale de l’Est nord-américain", "AWST": "heure normale de l’Ouest de l’Australie", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "VET": "heure du Venezuela", "GMT": "heure moyenne de Greenwich", "BT": "heure du Bhoutan", "AKST": "heure normale de l’Alaska", "HEPMX": "heure d’été du Pacifique mexicain", "GYT": "heure du Guyana", "SGT": "heure de Singapour", "ACWDT": "heure d’été du centre-ouest de l’Australie", "JST": "heure normale du Japon", "CLST": "heure d’été du Chili", "EDT": "heure d’été de l’Est", "HEEG": "heure d’été de l’Est du Groenland", "LHDT": "heure d’été de Lord Howe", "HKT": "heure normale de Hong Kong", "HNT": "heure normale de Terre-Neuve", "BOT": "heure de Bolivie", "PST": "heure normale du Pacifique nord-américain", "WAST": "heure d’été d’Afrique de l’Ouest", "UYST": "heure d’été de l’Uruguay", "ACWST": "heure normale du centre-ouest de l’Australie", "ARST": "heure d’été de l’Argentine", "WITA": "heure du Centre indonésien", "EAT": "heure normale d’Afrique de l’Est", "CHADT": "heure d’été des îles Chatham", "ECT": "heure de l’Équateur", "HAST": "heure normale d’Hawaii - Aléoutiennes", "AST": "heure normale de l’Atlantique", "ART": "heure normale d’Argentine", "AEST": "heure normale de l’Est de l’Australie", "ChST": "heure des Chamorro", "CHAST": "heure normale des îles Chatham", "HNOG": "heure normale de l’Ouest du Groenland", "HEOG": "heure d’été de l’Ouest du Groenland", "ADT": "heure d’été de l’Atlantique", "MDT": "heure d’été de Macao", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "LHST": "heure normale de Lord Howe", "HNPMX": "heure normale du Pacifique mexicain", "CDT": "heure d’été du Centre", "WIT": "heure de l’Est indonésien", "ACST": "heure normale du centre de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "COST": "heure d’été de Colombie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "∅∅∅": "heure d’été de l’Amazonie", "IST": "heure de l’Inde", "OEZ": "heure normale d’Europe de l’Est", "WEZ": "heure normale d’Europe de l’Ouest", "WIB": "heure de l’Ouest indonésien"},
}
}
diff --git a/fr_BF/fr_BF.go b/fr_BF/fr_BF.go
index 4ab90b77..e81fc927 100644
--- a/fr_BF/fr_BF.go
+++ b/fr_BF/fr_BF.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"SAST": "heure normale d’Afrique méridionale", "JST": "heure normale du Japon", "ACDT": "heure d’été du centre de l’Australie", "AST": "heure normale de l’Atlantique", "ADT": "heure d’été de l’Atlantique", "BT": "heure du Bhoutan", "WEZ": "heure normale d’Europe de l’Ouest", "CHADT": "heure d’été des îles Chatham", "GYT": "heure du Guyana", "PDT": "heure d’été du Pacifique", "MEZ": "heure normale d’Europe centrale", "JDT": "heure d’été du Japon", "ACST": "heure normale du centre de l’Australie", "HEEG": "heure d’été de l’Est du Groenland", "TMST": "heure d’été du Turkménistan", "HECU": "heure d’été de Cuba", "HNPMX": "heure normale du Pacifique mexicain", "WIB": "heure de l’Ouest indonésien", "WIT": "heure de l’Est indonésien", "ART": "heure normale d’Argentine", "CLT": "heure normale du Chili", "WESZ": "heure d’été d’Europe de l’Ouest", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "OEZ": "heure normale d’Europe de l’Est", "ECT": "heure de l’Équateur", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "UYST": "heure d’été de l’Uruguay", "WITA": "heure du Centre indonésien", "NZDT": "heure d’été de la Nouvelle-Zélande", "TMT": "heure normale du Turkménistan", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "EDT": "heure d’été de l’Est", "SRT": "heure du Suriname", "HNOG": "heure normale de l’Ouest du Groenland", "AEST": "heure normale de l’Est de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "WARST": "heure d’été de l’Ouest argentin", "MYT": "heure de la Malaisie", "CST": "heure normale du centre nord-américain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HNT": "heure normale de Terre-Neuve", "IST": "heure de l’Inde", "ARST": "heure d’été de l’Argentine", "LHST": "heure normale de Lord Howe", "BOT": "heure de Bolivie", "AWDT": "heure d’été de l’Ouest de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "EAT": "heure normale d’Afrique de l’Est", "EST": "heure normale de l’Est nord-américain", "MDT": "heure d’été de Macao", "HEPMX": "heure d’été du Pacifique mexicain", "UYT": "heure normale de l’Uruguay", "VET": "heure du Venezuela", "GMT": "heure moyenne de Greenwich", "HNCU": "heure normale de Cuba", "MST": "heure normale de Macao", "CHAST": "heure normale des îles Chatham", "∅∅∅": "heure d’été de l’Amazonie", "GFT": "heure de la Guyane française", "MESZ": "heure d’été d’Europe centrale", "SGT": "heure de Singapour", "WART": "heure normale de l’Ouest argentin", "COST": "heure d’été de Colombie", "CDT": "heure d’été du Centre", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HAT": "heure d’été de Terre-Neuve", "HEOG": "heure d’été de l’Ouest du Groenland", "HNEG": "heure normale de l’Est du Groenland", "ChST": "heure des Chamorro", "CAT": "heure normale d’Afrique centrale", "WAST": "heure d’été d’Afrique de l’Ouest", "AKDT": "heure d’été de l’Alaska", "AWST": "heure normale de l’Ouest de l’Australie", "HKST": "heure d’été de Hong Kong", "LHDT": "heure d’été de Lord Howe", "CLST": "heure d’été du Chili", "PST": "heure normale du Pacifique nord-américain", "HKT": "heure normale de Hong Kong", "WAT": "heure normale d’Afrique de l’Ouest", "OESZ": "heure d’été d’Europe de l’Est", "COT": "heure normale de Colombie", "AKST": "heure normale de l’Alaska", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACWST": "heure normale du centre-ouest de l’Australie"},
+ timezones: map[string]string{"HEEG": "heure d’été de l’Est du Groenland", "ACST": "heure normale du centre de l’Australie", "COST": "heure d’été de Colombie", "OESZ": "heure d’été d’Europe de l’Est", "HAT": "heure d’été de Terre-Neuve", "SRT": "heure du Suriname", "PDT": "heure d’été du Pacifique", "VET": "heure du Venezuela", "CLST": "heure d’été du Chili", "WAT": "heure normale d’Afrique de l’Ouest", "HEPMX": "heure d’été du Pacifique mexicain", "GYT": "heure du Guyana", "BOT": "heure de Bolivie", "NZDT": "heure d’été de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "HNOG": "heure normale de l’Ouest du Groenland", "WEZ": "heure normale d’Europe de l’Ouest", "UYST": "heure d’été de l’Uruguay", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "CAT": "heure normale d’Afrique centrale", "HKST": "heure d’été de Hong Kong", "COT": "heure normale de Colombie", "BT": "heure du Bhoutan", "HECU": "heure d’été de Cuba", "NZST": "heure normale de la Nouvelle-Zélande", "ACWST": "heure normale du centre-ouest de l’Australie", "WART": "heure normale de l’Ouest argentin", "HKT": "heure normale de Hong Kong", "WIB": "heure de l’Ouest indonésien", "ECT": "heure de l’Équateur", "TMT": "heure normale du Turkménistan", "ART": "heure normale d’Argentine", "ACDT": "heure d’été du centre de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "EAT": "heure normale d’Afrique de l’Est", "JST": "heure normale du Japon", "AWDT": "heure d’été de l’Ouest de l’Australie", "CHADT": "heure d’été des îles Chatham", "ACWDT": "heure d’été du centre-ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "AEDT": "heure d’été de l’Est de l’Australie", "HNCU": "heure normale de Cuba", "CST": "heure normale du centre nord-américain", "MYT": "heure de la Malaisie", "MST": "heure normale de Macao", "JDT": "heure d’été du Japon", "WESZ": "heure d’été d’Europe de l’Ouest", "GMT": "heure moyenne de Greenwich", "GFT": "heure de la Guyane française", "LHDT": "heure d’été de Lord Howe", "∅∅∅": "heure d’été de Brasilia", "ADT": "heure d’été de l’Atlantique", "PST": "heure normale du Pacifique nord-américain", "AST": "heure normale de l’Atlantique", "TMST": "heure d’été du Turkménistan", "AKST": "heure normale de l’Alaska", "LHST": "heure normale de Lord Howe", "WIT": "heure de l’Est indonésien", "CHAST": "heure normale des îles Chatham", "OEZ": "heure normale d’Europe de l’Est", "MDT": "heure d’été de Macao", "UYT": "heure normale de l’Uruguay", "SAST": "heure normale d’Afrique méridionale", "CDT": "heure d’été du Centre", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ARST": "heure d’été de l’Argentine", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HNT": "heure normale de Terre-Neuve", "AEST": "heure normale de l’Est de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "SGT": "heure de Singapour", "IST": "heure de l’Inde", "WAST": "heure d’été d’Afrique de l’Ouest", "EST": "heure normale de l’Est nord-américain", "EDT": "heure d’été de l’Est", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HNEG": "heure normale de l’Est du Groenland", "AKDT": "heure d’été de l’Alaska", "MESZ": "heure d’été d’Europe centrale", "HEOG": "heure d’été de l’Ouest du Groenland", "ChST": "heure des Chamorro", "WITA": "heure du Centre indonésien", "HNPMX": "heure normale du Pacifique mexicain", "AWST": "heure normale de l’Ouest de l’Australie", "WARST": "heure d’été de l’Ouest argentin"},
}
}
diff --git a/fr_BI/fr_BI.go b/fr_BI/fr_BI.go
index 07aeda59..26a8074d 100644
--- a/fr_BI/fr_BI.go
+++ b/fr_BI/fr_BI.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"HNPM": "heure normale de Saint-Pierre-et-Miquelon", "COT": "heure normale de Colombie", "SGT": "heure de Singapour", "CST": "heure normale du centre nord-américain", "HKST": "heure d’été de Hong Kong", "LHST": "heure normale de Lord Howe", "IST": "heure de l’Inde", "∅∅∅": "heure d’été de l’Amazonie", "WIB": "heure de l’Ouest indonésien", "ChST": "heure des Chamorro", "AKST": "heure normale de l’Alaska", "WEZ": "heure normale d’Europe de l’Ouest", "HNOG": "heure normale de l’Ouest du Groenland", "CHADT": "heure d’été des îles Chatham", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AKDT": "heure d’été de l’Alaska", "PST": "heure normale du Pacifique nord-américain", "AEDT": "heure d’été de l’Est de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "EDT": "heure d’été de l’Est", "MESZ": "heure d’été d’Europe centrale", "NZDT": "heure d’été de la Nouvelle-Zélande", "ADT": "heure d’été de l’Atlantique", "ACWST": "heure normale du centre-ouest de l’Australie", "ECT": "heure de l’Équateur", "HNCU": "heure normale de Cuba", "EST": "heure normale de l’Est nord-américain", "UYST": "heure d’été de l’Uruguay", "CDT": "heure d’été du Centre", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "OESZ": "heure d’été d’Europe de l’Est", "HNPMX": "heure normale du Pacifique mexicain", "GYT": "heure du Guyana", "BT": "heure du Bhoutan", "HNEG": "heure normale de l’Est du Groenland", "TMST": "heure d’été du Turkménistan", "PDT": "heure d’été du Pacifique", "WESZ": "heure d’été d’Europe de l’Ouest", "WITA": "heure du Centre indonésien", "CLST": "heure d’été du Chili", "JDT": "heure d’été du Japon", "GFT": "heure de la Guyane française", "COST": "heure d’été de Colombie", "MST": "heure normale de Macao", "VET": "heure du Venezuela", "CLT": "heure normale du Chili", "CAT": "heure normale d’Afrique centrale", "HEPMX": "heure d’été du Pacifique mexicain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HEOG": "heure d’été de l’Ouest du Groenland", "UYT": "heure normale de l’Uruguay", "WIT": "heure de l’Est indonésien", "MEZ": "heure normale d’Europe centrale", "TMT": "heure normale du Turkménistan", "ACST": "heure normale du centre de l’Australie", "WARST": "heure d’été de l’Ouest argentin", "HECU": "heure d’été de Cuba", "MDT": "heure d’été de Macao", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HNT": "heure normale de Terre-Neuve", "ART": "heure normale d’Argentine", "AWST": "heure normale de l’Ouest de l’Australie", "HAT": "heure d’été de Terre-Neuve", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "CHAST": "heure normale des îles Chatham", "SAST": "heure normale d’Afrique méridionale", "EAT": "heure normale d’Afrique de l’Est", "WAT": "heure normale d’Afrique de l’Ouest", "WART": "heure normale de l’Ouest argentin", "GMT": "heure moyenne de Greenwich", "SRT": "heure du Suriname", "ARST": "heure d’été de l’Argentine", "AEST": "heure normale de l’Est de l’Australie", "LHDT": "heure d’été de Lord Howe", "HEEG": "heure d’été de l’Est du Groenland", "WAST": "heure d’été d’Afrique de l’Ouest", "HKT": "heure normale de Hong Kong", "AWDT": "heure d’été de l’Ouest de l’Australie", "JST": "heure normale du Japon", "BOT": "heure de Bolivie", "OEZ": "heure normale d’Europe de l’Est", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "AST": "heure normale de l’Atlantique", "MYT": "heure de la Malaisie"},
+ timezones: map[string]string{"HAST": "heure normale d’Hawaii - Aléoutiennes", "MEZ": "heure normale d’Europe centrale", "MESZ": "heure d’été d’Europe centrale", "ACST": "heure normale du centre de l’Australie", "AEST": "heure normale de l’Est de l’Australie", "HNCU": "heure normale de Cuba", "WARST": "heure d’été de l’Ouest argentin", "AST": "heure normale de l’Atlantique", "ADT": "heure d’été de l’Atlantique", "WAT": "heure normale d’Afrique de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "TMST": "heure d’été du Turkménistan", "ART": "heure normale d’Argentine", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HEEG": "heure d’été de l’Est du Groenland", "WESZ": "heure d’été d’Europe de l’Ouest", "UYST": "heure d’été de l’Uruguay", "LHDT": "heure d’été de Lord Howe", "MYT": "heure de la Malaisie", "WAST": "heure d’été d’Afrique de l’Ouest", "MST": "heure normale des Rocheuses", "AKDT": "heure d’été de l’Alaska", "SAST": "heure normale d’Afrique méridionale", "CST": "heure normale du centre nord-américain", "ECT": "heure de l’Équateur", "ARST": "heure d’été de l’Argentine", "AKST": "heure normale de l’Alaska", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "LHST": "heure normale de Lord Howe", "TMT": "heure normale du Turkménistan", "GFT": "heure de la Guyane française", "EAT": "heure normale d’Afrique de l’Est", "JDT": "heure d’été du Japon", "SGT": "heure de Singapour", "CHAST": "heure normale des îles Chatham", "IST": "heure de l’Inde", "CAT": "heure normale d’Afrique centrale", "HKST": "heure d’été de Hong Kong", "HNT": "heure normale de Terre-Neuve", "SRT": "heure du Suriname", "MDT": "heure d’été des Rocheuses", "HNPMX": "heure normale du Pacifique mexicain", "ACWST": "heure normale du centre-ouest de l’Australie", "CLT": "heure normale du Chili", "EST": "heure normale de l’Est nord-américain", "COT": "heure normale de Colombie", "HAT": "heure d’été de Terre-Neuve", "UYT": "heure normale de l’Uruguay", "HECU": "heure d’été de Cuba", "AWST": "heure normale de l’Ouest de l’Australie", "PST": "heure normale du Pacifique nord-américain", "EDT": "heure d’été de l’Est", "COST": "heure d’été de Colombie", "AEDT": "heure d’été de l’Est de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "WART": "heure normale de l’Ouest argentin", "GMT": "heure moyenne de Greenwich", "HKT": "heure normale de Hong Kong", "BOT": "heure de Bolivie", "JST": "heure normale du Japon", "OESZ": "heure d’été d’Europe de l’Est", "HEOG": "heure d’été de l’Ouest du Groenland", "WITA": "heure du Centre indonésien", "GYT": "heure du Guyana", "OEZ": "heure normale d’Europe de l’Est", "CDT": "heure d’été du Centre", "CHADT": "heure d’été des îles Chatham", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "CLST": "heure d’été du Chili", "∅∅∅": "heure d’été de l’Acre", "BT": "heure du Bhoutan", "WIB": "heure de l’Ouest indonésien", "ChST": "heure des Chamorro", "WIT": "heure de l’Est indonésien", "PDT": "heure d’été du Pacifique", "ACWDT": "heure d’été du centre-ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "NZDT": "heure d’été de la Nouvelle-Zélande", "VET": "heure du Venezuela", "WEZ": "heure normale d’Europe de l’Ouest", "HNEG": "heure normale de l’Est du Groenland", "HEPMX": "heure d’été du Pacifique mexicain", "AWDT": "heure d’été de l’Ouest de l’Australie", "HNOG": "heure normale de l’Ouest du Groenland"},
}
}
diff --git a/fr_BJ/fr_BJ.go b/fr_BJ/fr_BJ.go
index 66c90756..810ba65e 100644
--- a/fr_BJ/fr_BJ.go
+++ b/fr_BJ/fr_BJ.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"UYST": "heure d’été de l’Uruguay", "WEZ": "heure normale d’Europe de l’Ouest", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CLT": "heure normale du Chili", "HECU": "heure d’été de Cuba", "MYT": "heure de la Malaisie", "GYT": "heure du Guyana", "HNOG": "heure normale de l’Ouest du Groenland", "PST": "heure normale du Pacifique nord-américain", "HKST": "heure d’été de Hong Kong", "ACDT": "heure d’été du centre de l’Australie", "WAST": "heure d’été d’Afrique de l’Ouest", "SGT": "heure de Singapour", "EST": "heure normale de l’Est nord-américain", "HAT": "heure d’été de Terre-Neuve", "AEST": "heure normale de l’Est de l’Australie", "TMST": "heure d’été du Turkménistan", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "ART": "heure normale d’Argentine", "ACWST": "heure normale du centre-ouest de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "BOT": "heure de Bolivie", "WAT": "heure normale d’Afrique de l’Ouest", "HNPMX": "heure normale du Pacifique mexicain", "AKST": "heure normale de l’Alaska", "ARST": "heure d’été de l’Argentine", "MEZ": "heure normale d’Europe centrale", "OESZ": "heure d’été d’Europe de l’Est", "UYT": "heure normale de l’Uruguay", "HKT": "heure normale de Hong Kong", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "LHDT": "heure d’été de Lord Howe", "IST": "heure de l’Inde", "HNEG": "heure normale de l’Est du Groenland", "HEPMX": "heure d’été du Pacifique mexicain", "HNT": "heure normale de Terre-Neuve", "AWDT": "heure d’été de l’Ouest de l’Australie", "∅∅∅": "heure d’été de l’Amazonie", "COST": "heure d’été de Colombie", "WIB": "heure de l’Ouest indonésien", "TMT": "heure normale du Turkménistan", "HEEG": "heure d’été de l’Est du Groenland", "CDT": "heure d’été du Centre", "WIT": "heure de l’Est indonésien", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "HNCU": "heure normale de Cuba", "HAST": "heure normale d’Hawaii - Aléoutiennes", "AWST": "heure normale de l’Ouest de l’Australie", "JST": "heure normale du Japon", "OEZ": "heure normale d’Europe de l’Est", "AST": "heure normale de l’Atlantique", "VET": "heure du Venezuela", "SRT": "heure du Suriname", "HEOG": "heure d’été de l’Ouest du Groenland", "AKDT": "heure d’été de l’Alaska", "WITA": "heure du Centre indonésien", "LHST": "heure normale de Lord Howe", "ChST": "heure des Chamorro", "ACST": "heure normale du centre de l’Australie", "PDT": "heure d’été du Pacifique", "CST": "heure normale du centre nord-américain", "AEDT": "heure d’été de l’Est de l’Australie", "SAST": "heure normale d’Afrique méridionale", "JDT": "heure d’été du Japon", "CLST": "heure d’été du Chili", "ECT": "heure de l’Équateur", "WARST": "heure d’été de l’Ouest argentin", "EDT": "heure d’été de l’Est", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "WESZ": "heure d’été d’Europe de l’Ouest", "MESZ": "heure d’été d’Europe centrale", "CHAST": "heure normale des îles Chatham", "CHADT": "heure d’été des îles Chatham", "CAT": "heure normale d’Afrique centrale", "COT": "heure normale de Colombie", "GMT": "heure moyenne de Greenwich", "ADT": "heure d’été de l’Atlantique", "EAT": "heure normale d’Afrique de l’Est", "BT": "heure du Bhoutan", "MDT": "heure d’été de Macao", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "GFT": "heure de la Guyane française", "WART": "heure normale de l’Ouest argentin", "MST": "heure normale de Macao"},
+ timezones: map[string]string{"SGT": "heure de Singapour", "IST": "heure de l’Inde", "HNOG": "heure normale de l’Ouest du Groenland", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AKDT": "heure d’été de l’Alaska", "AWST": "heure normale de l’Ouest de l’Australie", "MDT": "heure d’été de Macao", "WAST": "heure d’été d’Afrique de l’Ouest", "LHST": "heure normale de Lord Howe", "CDT": "heure d’été du Centre", "PST": "heure normale du Pacifique nord-américain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "WESZ": "heure d’été d’Europe de l’Ouest", "COST": "heure d’été de Colombie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "CHADT": "heure d’été des îles Chatham", "CLT": "heure normale du Chili", "CLST": "heure d’été du Chili", "EDT": "heure d’été de l’Est", "BT": "heure du Bhoutan", "WIT": "heure de l’Est indonésien", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ECT": "heure de l’Équateur", "WEZ": "heure normale d’Europe de l’Ouest", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "GYT": "heure du Guyana", "HNCU": "heure normale de Cuba", "AWDT": "heure d’été de l’Ouest de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "ARST": "heure d’été de l’Argentine", "HNT": "heure normale de Terre-Neuve", "UYT": "heure normale de l’Uruguay", "JDT": "heure d’été du Japon", "AST": "heure normale de l’Atlantique", "HEOG": "heure d’été de l’Ouest du Groenland", "TMT": "heure normale du Turkménistan", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CST": "heure normale du centre nord-américain", "MYT": "heure de la Malaisie", "HNEG": "heure normale de l’Est du Groenland", "AKST": "heure normale de l’Alaska", "SRT": "heure du Suriname", "WIB": "heure de l’Ouest indonésien", "OEZ": "heure normale d’Europe de l’Est", "HEEG": "heure d’été de l’Est du Groenland", "AEST": "heure normale de l’Est de l’Australie", "LHDT": "heure d’été de Lord Howe", "CHAST": "heure normale des îles Chatham", "TMST": "heure d’été du Turkménistan", "WAT": "heure normale d’Afrique de l’Ouest", "GFT": "heure de la Guyane française", "PDT": "heure d’été du Pacifique", "MESZ": "heure d’été d’Europe centrale", "ADT": "heure d’été de l’Atlantique", "OESZ": "heure d’été d’Europe de l’Est", "ACDT": "heure d’été du centre de l’Australie", "UYST": "heure d’été de l’Uruguay", "ACWST": "heure normale du centre-ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "VET": "heure du Venezuela", "WART": "heure normale de l’Ouest argentin", "ART": "heure normale d’Argentine", "COT": "heure normale de Colombie", "NZST": "heure normale de la Nouvelle-Zélande", "ChST": "heure des Chamorro", "SAST": "heure normale d’Afrique méridionale", "HEPMX": "heure d’été du Pacifique mexicain", "HAT": "heure d’été de Terre-Neuve", "BOT": "heure de Bolivie", "CAT": "heure normale d’Afrique centrale", "JST": "heure normale du Japon", "GMT": "heure moyenne de Greenwich", "MST": "heure normale de Macao", "HKT": "heure normale de Hong Kong", "HKST": "heure d’été de Hong Kong", "ACST": "heure normale du centre de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "WITA": "heure du Centre indonésien", "EAT": "heure normale d’Afrique de l’Est", "ACWDT": "heure d’été du centre-ouest de l’Australie", "∅∅∅": "heure d’été de l’Amazonie", "WARST": "heure d’été de l’Ouest argentin", "EST": "heure normale de l’Est nord-américain", "HNPMX": "heure normale du Pacifique mexicain", "HECU": "heure d’été de Cuba"},
}
}
diff --git a/fr_BL/fr_BL.go b/fr_BL/fr_BL.go
index 6c902f13..1ce15592 100644
--- a/fr_BL/fr_BL.go
+++ b/fr_BL/fr_BL.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"LHST": "heure normale de Lord Howe", "COT": "heure normale de Colombie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HEEG": "heure d’été de l’Est du Groenland", "ECT": "heure de l’Équateur", "OEZ": "heure normale d’Europe de l’Est", "WART": "heure normale de l’Ouest argentin", "UYT": "heure normale de l’Uruguay", "JDT": "heure d’été du Japon", "EST": "heure normale de l’Est nord-américain", "WIT": "heure de l’Est indonésien", "AWST": "heure normale de l’Ouest de l’Australie", "CHAST": "heure normale des îles Chatham", "HNCU": "heure normale de Cuba", "MYT": "heure de la Malaisie", "WIB": "heure de l’Ouest indonésien", "MESZ": "heure d’été d’Europe centrale", "CHADT": "heure d’été des îles Chatham", "TMT": "heure normale du Turkménistan", "ChST": "heure des Chamorro", "COST": "heure d’été de Colombie", "MDT": "heure d’été de Macao", "ARST": "heure d’été de l’Argentine", "LHDT": "heure d’été de Lord Howe", "WAST": "heure d’été d’Afrique de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "AKST": "heure normale de l’Alaska", "HNT": "heure normale de Terre-Neuve", "SAST": "heure normale d’Afrique méridionale", "IST": "heure de l’Inde", "CAT": "heure normale d’Afrique centrale", "HECU": "heure d’été de Cuba", "HNPMX": "heure normale du Pacifique mexicain", "HKST": "heure d’été de Hong Kong", "MEZ": "heure normale d’Europe centrale", "∅∅∅": "heure d’été de l’Amazonie", "GFT": "heure de la Guyane française", "GMT": "heure moyenne de Greenwich", "AST": "heure normale de l’Atlantique", "UYST": "heure d’été de l’Uruguay", "BT": "heure du Bhoutan", "PDT": "heure d’été du Pacifique", "WEZ": "heure normale d’Europe de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "CLST": "heure d’été du Chili", "HNEG": "heure normale de l’Est du Groenland", "EAT": "heure normale d’Afrique de l’Est", "SGT": "heure de Singapour", "EDT": "heure d’été de l’Est", "MST": "heure normale de Macao", "HKT": "heure normale de Hong Kong", "GYT": "heure du Guyana", "HNOG": "heure normale de l’Ouest du Groenland", "ACWST": "heure normale du centre-ouest de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HEPMX": "heure d’été du Pacifique mexicain", "TMST": "heure d’été du Turkménistan", "ACDT": "heure d’été du centre de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "CST": "heure normale du centre nord-américain", "VET": "heure du Venezuela", "PST": "heure normale du Pacifique nord-américain", "WESZ": "heure d’été d’Europe de l’Ouest", "WITA": "heure du Centre indonésien", "NZDT": "heure d’été de la Nouvelle-Zélande", "ACST": "heure normale du centre de l’Australie", "WAT": "heure normale d’Afrique de l’Ouest", "WARST": "heure d’été de l’Ouest argentin", "AKDT": "heure d’été de l’Alaska", "ART": "heure normale d’Argentine", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "JST": "heure normale du Japon", "BOT": "heure de Bolivie", "OESZ": "heure d’été d’Europe de l’Est", "ADT": "heure d’été de l’Atlantique", "CDT": "heure d’été du Centre", "HAST": "heure normale d’Hawaii - Aléoutiennes", "CLT": "heure normale du Chili", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "SRT": "heure du Suriname", "HEOG": "heure d’été de l’Ouest du Groenland", "AEST": "heure normale de l’Est de l’Australie"},
+ timezones: map[string]string{"JST": "heure normale du Japon", "TMST": "heure d’été du Turkménistan", "MDT": "heure d’été de Macao", "HKST": "heure d’été de Hong Kong", "BT": "heure du Bhoutan", "ECT": "heure de l’Équateur", "IST": "heure de l’Inde", "GFT": "heure de la Guyane française", "AEST": "heure normale de l’Est de l’Australie", "JDT": "heure d’été du Japon", "GMT": "heure moyenne de Greenwich", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "MESZ": "heure d’été d’Europe centrale", "WEZ": "heure normale d’Europe de l’Ouest", "ChST": "heure des Chamorro", "PST": "heure normale du Pacifique nord-américain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HNOG": "heure normale de l’Ouest du Groenland", "MST": "heure normale de Macao", "WITA": "heure du Centre indonésien", "WIT": "heure de l’Est indonésien", "CAT": "heure normale d’Afrique centrale", "WARST": "heure d’été de l’Ouest argentin", "NZST": "heure normale de la Nouvelle-Zélande", "CLST": "heure d’été du Chili", "OESZ": "heure d’été d’Europe de l’Est", "∅∅∅": "heure d’été de l’Amazonie", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HNPMX": "heure normale du Pacifique mexicain", "HEPMX": "heure d’été du Pacifique mexicain", "GYT": "heure du Guyana", "WAST": "heure d’été d’Afrique de l’Ouest", "COST": "heure d’été de Colombie", "WESZ": "heure d’été d’Europe de l’Ouest", "TMT": "heure normale du Turkménistan", "EDT": "heure d’été de l’Est", "UYT": "heure normale de l’Uruguay", "LHDT": "heure d’été de Lord Howe", "SGT": "heure de Singapour", "VET": "heure du Venezuela", "CHADT": "heure d’été des îles Chatham", "HEOG": "heure d’été de l’Ouest du Groenland", "HNCU": "heure normale de Cuba", "CDT": "heure d’été du Centre", "ACWST": "heure normale du centre-ouest de l’Australie", "ARST": "heure d’été de l’Argentine", "ART": "heure normale d’Argentine", "ACST": "heure normale du centre de l’Australie", "HAT": "heure d’été de Terre-Neuve", "HNEG": "heure normale de l’Est du Groenland", "HEEG": "heure d’été de l’Est du Groenland", "AEDT": "heure d’été de l’Est de l’Australie", "CHAST": "heure normale des îles Chatham", "WART": "heure normale de l’Ouest argentin", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "AKST": "heure normale de l’Alaska", "AKDT": "heure d’été de l’Alaska", "CST": "heure normale du centre nord-américain", "ADT": "heure d’été de l’Atlantique", "HKT": "heure normale de Hong Kong", "ACDT": "heure d’été du centre de l’Australie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "SAST": "heure normale d’Afrique méridionale", "SRT": "heure du Suriname", "EAT": "heure normale d’Afrique de l’Est", "BOT": "heure de Bolivie", "OEZ": "heure normale d’Europe de l’Est", "WIB": "heure de l’Ouest indonésien", "HECU": "heure d’été de Cuba", "AST": "heure normale de l’Atlantique", "COT": "heure normale de Colombie", "CLT": "heure normale du Chili", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HNT": "heure normale de Terre-Neuve", "PDT": "heure d’été du Pacifique", "MEZ": "heure normale d’Europe centrale", "MYT": "heure de la Malaisie", "WAT": "heure normale d’Afrique de l’Ouest", "EST": "heure normale de l’Est nord-américain", "LHST": "heure normale de Lord Howe", "AWST": "heure normale de l’Ouest de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "UYST": "heure d’été de l’Uruguay"},
}
}
diff --git a/fr_CA/fr_CA.go b/fr_CA/fr_CA.go
index a0396906..3785aada 100644
--- a/fr_CA/fr_CA.go
+++ b/fr_CA/fr_CA.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"avant l’ère chrétienne", "de l’ère chrétienne"},
- timezones: map[string]string{"EAT": "Heure d’Afrique orientale", "HENOMX": "heure avancée du Nord-Ouest du Mexique", "GMT": "heure moyenne de Greenwich", "SRT": "heure du Suriname", "SAST": "heure normale d’Afrique du Sud", "ACST": "heure normale du centre de l’Australie", "PDT": "heure avancée du Pacifique", "CHAST": "heure normale des Îles Chatham", "WAT": "heure normale d’Afrique de l’Ouest", "WAST": "heure avancée d’Afrique de l’Ouest", "ECT": "heure de l’Équateur", "AEST": "heure normale de l’Est de l’Australie", "HKT": "heure normale de Hong Kong", "MEZ": "heure normale d’Europe centrale", "TMT": "heure normale du Turkménistan", "SGT": "heure de Singapour", "BT": "heure du Bhoutan", "WEZ": "heure normale d’Europe de l’Ouest", "HAT": "heure avancée de Terre-Neuve", "HNOG": "heure normale de l’Ouest du Groenland", "CST": "heure normale du Centre", "AST": "heure normale de l’Atlantique", "PST": "heure normale du Pacifique", "HKST": "heure avancée de Hong Kong", "HNCU": "heure normale de Cuba", "CDT": "heure avancée du Centre", "ART": "heure normale d’Argentine", "LHST": "heure normale de Lord Howe", "NZDT": "heure avancée de la Nouvelle-Zélande", "OEZ": "heure normale d’Europe de l’Est", "OESZ": "heure avancée d’Europe de l’Est", "HAST": "heure normale d’Hawaï-Aléoutiennes", "AEDT": "heure avancée de l’Est de l’Australie", "IST": "heure de l’Inde", "CLT": "heure normale du Chili", "GFT": "heure de Guyane française", "COT": "heure normale de Colombie", "AKST": "heure normale de l’Alaska", "UYST": "heure avancée de l’Uruguay", "LHDT": "heure avancée de Lord Howe", "WART": "heure normale de l’Ouest argentin", "EDT": "heure avancée de l’Est", "MYT": "heure de la Malaisie", "WESZ": "heure avancée d’Europe de l’Ouest", "AWST": "heure normale de l’Ouest de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CLST": "heure avancée du Chili", "BOT": "heure de Bolivie", "ACDT": "heure avancée du centre de l’Australie", "HEPMX": "heure avancée du Pacifique mexicain", "COST": "heure avancée de Colombie", "ADT": "heure avancée de l’Atlantique", "HADT": "heure avancée d’Hawaï-Aléoutiennes", "CHADT": "heure avancée des Îles Chatham", "TMST": "heure avancée du Turkménistan", "UYT": "heure normale de l’Uruguay", "WIT": "heure de l’Est indonésien", "ACWDT": "heure avancée du centre-ouest de l’Australie", "JDT": "heure avancée du Japon", "ChST": "heure des Chamorro", "HECU": "heure avancée de Cuba", "VET": "heure du Venezuela", "GYT": "heure du Guyana", "ACWST": "heure normale du centre-ouest de l’Australie", "HEOG": "heure avancée de l’Ouest du Groenland", "WARST": "heure avancée de l’Ouest argentin", "MDT": "heure avancée de Macao", "HNEG": "heure normale de l’Est du Groenland", "JST": "heure normale du Japon", "HNT": "heure normale de Terre-Neuve", "WITA": "heure du Centre indonésien", "MESZ": "heure avancée d’Europe centrale", "NZST": "heure normale de la Nouvelle-Zélande", "CAT": "heure d’Afrique centrale", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "MST": "heure normale de Macao", "HNPMX": "heure normale du Pacifique mexicain", "AKDT": "heure avancée de l’Alaska", "WIB": "heure de l’Ouest indonésien", "ARST": "heure avancée de l’Argentine", "AWDT": "heure avancée de l’Ouest de l’Australie", "HEPM": "heure avancée de Saint-Pierre-et-Miquelon", "∅∅∅": "heure avancée de l’Amazonie", "EST": "heure normale de l’Est", "HEEG": "heure avancée de l’Est du Groenland"},
+ timezones: map[string]string{"JDT": "heure avancée du Japon", "HNEG": "heure normale de l’Est du Groenland", "AEDT": "heure avancée de l’Est de l’Australie", "CDT": "heure avancée du Centre", "HEOG": "heure avancée de l’Ouest du Groenland", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AKDT": "heure avancée de l’Alaska", "GYT": "heure du Guyana", "HECU": "heure avancée de Cuba", "CST": "heure normale du Centre", "AWST": "heure normale de l’Ouest de l’Australie", "WAST": "heure avancée d’Afrique de l’Ouest", "ChST": "heure des Chamorro", "HNCU": "heure normale de Cuba", "BOT": "heure de Bolivie", "CHAST": "heure normale des Îles Chatham", "CHADT": "heure avancée des Îles Chatham", "MEZ": "heure normale d’Europe centrale", "WESZ": "heure avancée d’Europe de l’Ouest", "EST": "heure normale de l’Est", "COT": "heure normale de Colombie", "WIT": "heure de l’Est indonésien", "GMT": "heure moyenne de Greenwich", "MYT": "heure de la Malaisie", "CLT": "heure normale du Chili", "HENOMX": "heure avancée du Nord-Ouest du Mexique", "HEEG": "heure avancée de l’Est du Groenland", "AEST": "heure normale de l’Est de l’Australie", "HAST": "heure normale d’Hawaï-Aléoutiennes", "HADT": "heure avancée d’Hawaï-Aléoutiennes", "ECT": "heure de l’Équateur", "PST": "heure normale du Pacifique", "PDT": "heure avancée du Pacifique", "MDT": "heure avancée de Macao", "ARST": "heure avancée de l’Argentine", "WIB": "heure de l’Ouest indonésien", "ACWDT": "heure avancée du centre-ouest de l’Australie", "WEZ": "heure normale d’Europe de l’Ouest", "CLST": "heure avancée du Chili", "UYT": "heure normale de l’Uruguay", "WART": "heure normale de l’Ouest argentin", "EDT": "heure avancée de l’Est", "HNT": "heure normale de Terre-Neuve", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "EAT": "Heure d’Afrique orientale", "NZDT": "heure avancée de la Nouvelle-Zélande", "ADT": "heure avancée de l’Atlantique", "COST": "heure avancée de Colombie", "HNPMX": "heure normale du Pacifique mexicain", "SRT": "heure du Suriname", "HNOG": "heure normale de l’Ouest du Groenland", "MST": "heure normale de Macao", "ACST": "heure normale du centre de l’Australie", "∅∅∅": "heure avancée de l’Acre", "UYST": "heure avancée de l’Uruguay", "SGT": "heure de Singapour", "NZST": "heure normale de la Nouvelle-Zélande", "CAT": "heure d’Afrique centrale", "WARST": "heure avancée de l’Ouest argentin", "WAT": "heure normale d’Afrique de l’Ouest", "GFT": "heure de Guyane française", "HEPM": "heure avancée de Saint-Pierre-et-Miquelon", "IST": "heure de l’Inde", "MESZ": "heure avancée d’Europe centrale", "AST": "heure normale de l’Atlantique", "OEZ": "heure normale d’Europe de l’Est", "WITA": "heure du Centre indonésien", "AKST": "heure normale de l’Alaska", "HEPMX": "heure avancée du Pacifique mexicain", "VET": "heure du Venezuela", "HKST": "heure avancée de Hong Kong", "BT": "heure du Bhoutan", "JST": "heure normale du Japon", "LHDT": "heure avancée de Lord Howe", "OESZ": "heure avancée d’Europe de l’Est", "TMT": "heure normale du Turkménistan", "ACDT": "heure avancée du centre de l’Australie", "SAST": "heure normale d’Afrique du Sud", "LHST": "heure normale de Lord Howe", "AWDT": "heure avancée de l’Ouest de l’Australie", "ACWST": "heure normale du centre-ouest de l’Australie", "TMST": "heure avancée du Turkménistan", "ART": "heure normale d’Argentine", "HKT": "heure normale de Hong Kong", "HAT": "heure avancée de Terre-Neuve"},
}
}
diff --git a/fr_CD/fr_CD.go b/fr_CD/fr_CD.go
index 872c47c2..5aa0a4da 100644
--- a/fr_CD/fr_CD.go
+++ b/fr_CD/fr_CD.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"MDT": "heure d’été de Macao", "UYST": "heure d’été de l’Uruguay", "LHDT": "heure d’été de Lord Howe", "HNEG": "heure normale de l’Est du Groenland", "GMT": "heure moyenne de Greenwich", "UYT": "heure normale de l’Uruguay", "AWST": "heure normale de l’Ouest de l’Australie", "TMT": "heure normale du Turkménistan", "TMST": "heure d’été du Turkménistan", "WAT": "heure normale d’Afrique de l’Ouest", "HNCU": "heure normale de Cuba", "ADT": "heure d’été de l’Atlantique", "VET": "heure du Venezuela", "ART": "heure normale d’Argentine", "IST": "heure de l’Inde", "ACST": "heure normale du centre de l’Australie", "HEPMX": "heure d’été du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "HAST": "heure normale d’Hawaii - Aléoutiennes", "SRT": "heure du Suriname", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HNPMX": "heure normale du Pacifique mexicain", "ACWST": "heure normale du centre-ouest de l’Australie", "ACWDT": "heure d’été du centre-ouest de l’Australie", "PDT": "heure d’été du Pacifique", "JST": "heure normale du Japon", "CLT": "heure normale du Chili", "BOT": "heure de Bolivie", "HKST": "heure d’été de Hong Kong", "AEDT": "heure d’été de l’Est de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CHADT": "heure d’été des îles Chatham", "∅∅∅": "heure d’été de l’Amazonie", "EDT": "heure d’été de l’Est", "WEZ": "heure normale d’Europe de l’Ouest", "GFT": "heure de la Guyane française", "COST": "heure d’été de Colombie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "EST": "heure normale de l’Est nord-américain", "WITA": "heure du Centre indonésien", "AEST": "heure normale de l’Est de l’Australie", "CAT": "heure normale d’Afrique centrale", "EAT": "heure normale d’Afrique de l’Est", "HNT": "heure normale de Terre-Neuve", "HAT": "heure d’été de Terre-Neuve", "JDT": "heure d’été du Japon", "WIT": "heure de l’Est indonésien", "HECU": "heure d’été de Cuba", "MST": "heure normale de Macao", "AKDT": "heure d’été de l’Alaska", "GYT": "heure du Guyana", "CHAST": "heure normale des îles Chatham", "LHST": "heure normale de Lord Howe", "COT": "heure normale de Colombie", "AKST": "heure normale de l’Alaska", "CDT": "heure d’été du Centre", "HNOG": "heure normale de l’Ouest du Groenland", "NZST": "heure normale de la Nouvelle-Zélande", "ECT": "heure de l’Équateur", "MYT": "heure de la Malaisie", "OEZ": "heure normale d’Europe de l’Est", "SGT": "heure de Singapour", "WAST": "heure d’été d’Afrique de l’Ouest", "CST": "heure normale du centre nord-américain", "HEOG": "heure d’été de l’Ouest du Groenland", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "SAST": "heure normale d’Afrique méridionale", "HEEG": "heure d’été de l’Est du Groenland", "CLST": "heure d’été du Chili", "WIB": "heure de l’Ouest indonésien", "PST": "heure normale du Pacifique nord-américain", "WESZ": "heure d’été d’Europe de l’Ouest", "HKT": "heure normale de Hong Kong", "AWDT": "heure d’été de l’Ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "MESZ": "heure d’été d’Europe centrale", "ARST": "heure d’été de l’Argentine", "WARST": "heure d’été de l’Ouest argentin", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACDT": "heure d’été du centre de l’Australie", "OESZ": "heure d’été d’Europe de l’Est", "WART": "heure normale de l’Ouest argentin", "BT": "heure du Bhoutan", "NZDT": "heure d’été de la Nouvelle-Zélande", "ChST": "heure des Chamorro"},
+ timezones: map[string]string{"CHADT": "heure d’été des îles Chatham", "AKDT": "heure d’été de l’Alaska", "UYT": "heure normale de l’Uruguay", "LHST": "heure normale de Lord Howe", "HEPMX": "heure d’été du Pacifique mexicain", "WIT": "heure de l’Est indonésien", "GFT": "heure de la Guyane française", "MYT": "heure de la Malaisie", "TMST": "heure d’été du Turkménistan", "HKT": "heure normale de Hong Kong", "HECU": "heure d’été de Cuba", "WAST": "heure d’été d’Afrique de l’Ouest", "LHDT": "heure d’été de Lord Howe", "ACWST": "heure normale du centre-ouest de l’Australie", "MESZ": "heure d’été d’Europe centrale", "ARST": "heure d’été de l’Argentine", "HNT": "heure normale de Terre-Neuve", "AEDT": "heure d’été de l’Est de l’Australie", "JST": "heure normale du Japon", "TMT": "heure normale du Turkménistan", "HNCU": "heure normale de Cuba", "AWST": "heure normale de l’Ouest de l’Australie", "BOT": "heure de Bolivie", "ECT": "heure de l’Équateur", "MEZ": "heure normale d’Europe centrale", "EST": "heure normale de l’Est nord-américain", "WAT": "heure normale d’Afrique de l’Ouest", "MST": "heure normale des Rocheuses", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "VET": "heure du Venezuela", "HNOG": "heure normale de l’Ouest du Groenland", "ADT": "heure d’été de l’Atlantique", "CDT": "heure d’été du Centre", "AWDT": "heure d’été de l’Ouest de l’Australie", "HKST": "heure d’été de Hong Kong", "COST": "heure d’été de Colombie", "UYST": "heure d’été de l’Uruguay", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WEZ": "heure normale d’Europe de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "HEEG": "heure d’été de l’Est du Groenland", "CLST": "heure d’été du Chili", "AST": "heure normale de l’Atlantique", "ACST": "heure normale du centre de l’Australie", "MDT": "heure d’été des Rocheuses", "HNPMX": "heure normale du Pacifique mexicain", "SGT": "heure de Singapour", "JDT": "heure d’été du Japon", "GMT": "heure moyenne de Greenwich", "HNEG": "heure normale de l’Est du Groenland", "SRT": "heure du Suriname", "∅∅∅": "heure d’été des Açores", "CAT": "heure normale d’Afrique centrale", "OEZ": "heure normale d’Europe de l’Est", "EDT": "heure d’été de l’Est", "BT": "heure du Bhoutan", "WITA": "heure du Centre indonésien", "CST": "heure normale du centre nord-américain", "PST": "heure normale du Pacifique nord-américain", "NZST": "heure normale de la Nouvelle-Zélande", "WART": "heure normale de l’Ouest argentin", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "AEST": "heure normale de l’Est de l’Australie", "GYT": "heure du Guyana", "EAT": "heure normale d’Afrique de l’Est", "NZDT": "heure d’été de la Nouvelle-Zélande", "WESZ": "heure d’été d’Europe de l’Ouest", "HEOG": "heure d’été de l’Ouest du Groenland", "ART": "heure normale d’Argentine", "ChST": "heure des Chamorro", "WIB": "heure de l’Ouest indonésien", "HAST": "heure normale d’Hawaii - Aléoutiennes", "OESZ": "heure d’été d’Europe de l’Est", "CLT": "heure normale du Chili", "AKST": "heure normale de l’Alaska", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "WARST": "heure d’été de l’Ouest argentin", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "ACDT": "heure d’été du centre de l’Australie", "COT": "heure normale de Colombie", "SAST": "heure normale d’Afrique méridionale", "CHAST": "heure normale des îles Chatham", "PDT": "heure d’été du Pacifique", "IST": "heure de l’Inde", "ACWDT": "heure d’été du centre-ouest de l’Australie"},
}
}
diff --git a/fr_CF/fr_CF.go b/fr_CF/fr_CF.go
index 99378b87..b5fb9a43 100644
--- a/fr_CF/fr_CF.go
+++ b/fr_CF/fr_CF.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"SRT": "heure du Suriname", "MEZ": "heure normale d’Europe centrale", "CLST": "heure d’été du Chili", "WAST": "heure d’été d’Afrique de l’Ouest", "SGT": "heure de Singapour", "HECU": "heure d’été de Cuba", "AST": "heure normale de l’Atlantique", "ADT": "heure d’été de l’Atlantique", "HKT": "heure normale de Hong Kong", "WITA": "heure du Centre indonésien", "COST": "heure d’été de Colombie", "WARST": "heure d’été de l’Ouest argentin", "MST": "heure normale de Macao", "ARST": "heure d’été de l’Argentine", "HAT": "heure d’été de Terre-Neuve", "ACDT": "heure d’été du centre de l’Australie", "WAT": "heure normale d’Afrique de l’Ouest", "CST": "heure normale du centre nord-américain", "GMT": "heure moyenne de Greenwich", "HAST": "heure normale d’Hawaii - Aléoutiennes", "WEZ": "heure normale d’Europe de l’Ouest", "WESZ": "heure d’été d’Europe de l’Ouest", "ACWST": "heure normale du centre-ouest de l’Australie", "HKST": "heure d’été de Hong Kong", "OEZ": "heure normale d’Europe de l’Est", "LHST": "heure normale de Lord Howe", "LHDT": "heure d’été de Lord Howe", "JST": "heure normale du Japon", "GYT": "heure du Guyana", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HNPMX": "heure normale du Pacifique mexicain", "AEST": "heure normale de l’Est de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HNEG": "heure normale de l’Est du Groenland", "ACST": "heure normale du centre de l’Australie", "WART": "heure normale de l’Ouest argentin", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HEOG": "heure d’été de l’Ouest du Groenland", "PST": "heure normale du Pacifique nord-américain", "CHADT": "heure d’été des îles Chatham", "HEEG": "heure d’été de l’Est du Groenland", "∅∅∅": "heure d’été du Pérou", "TMT": "heure normale du Turkménistan", "TMST": "heure d’été du Turkménistan", "WIT": "heure de l’Est indonésien", "AKST": "heure normale de l’Alaska", "WIB": "heure de l’Ouest indonésien", "HNT": "heure normale de Terre-Neuve", "NZDT": "heure d’été de la Nouvelle-Zélande", "CHAST": "heure normale des îles Chatham", "SAST": "heure normale d’Afrique méridionale", "IST": "heure de l’Inde", "HNCU": "heure normale de Cuba", "GFT": "heure de la Guyane française", "BT": "heure du Bhoutan", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "MYT": "heure de la Malaisie", "ART": "heure normale d’Argentine", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "EDT": "heure d’été de l’Est", "MDT": "heure d’été de Macao", "AWDT": "heure d’été de l’Ouest de l’Australie", "MESZ": "heure d’été d’Europe centrale", "BOT": "heure de Bolivie", "ECT": "heure de l’Équateur", "EST": "heure normale de l’Est nord-américain", "HEPMX": "heure d’été du Pacifique mexicain", "VET": "heure du Venezuela", "AWST": "heure normale de l’Ouest de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "CAT": "heure normale d’Afrique centrale", "UYT": "heure normale de l’Uruguay", "UYST": "heure d’été de l’Uruguay", "AKDT": "heure d’été de l’Alaska", "CLT": "heure normale du Chili", "ChST": "heure des Chamorro", "OESZ": "heure d’été d’Europe de l’Est", "COT": "heure normale de Colombie", "CDT": "heure d’été du Centre", "HNOG": "heure normale de l’Ouest du Groenland", "PDT": "heure d’été du Pacifique", "JDT": "heure d’été du Japon", "EAT": "heure normale d’Afrique de l’Est"},
+ timezones: map[string]string{"AEDT": "heure d’été de l’Est de l’Australie", "LHDT": "heure d’été de Lord Howe", "JST": "heure normale du Japon", "WEZ": "heure normale d’Europe de l’Ouest", "TMT": "heure normale du Turkménistan", "GFT": "heure de la Guyane française", "COST": "heure d’été de Colombie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HNT": "heure normale de Terre-Neuve", "LHST": "heure normale de Lord Howe", "AWDT": "heure d’été de l’Ouest de l’Australie", "CHAST": "heure normale des îles Chatham", "SGT": "heure de Singapour", "BOT": "heure de Bolivie", "HNPMX": "heure normale du Pacifique mexicain", "UYT": "heure normale de l’Uruguay", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MEZ": "heure normale d’Europe centrale", "ARST": "heure d’été de l’Argentine", "WAST": "heure d’été d’Afrique de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "AKDT": "heure d’été de l’Alaska", "HAST": "heure normale d’Hawaii - Aléoutiennes", "VET": "heure du Venezuela", "ADT": "heure d’été de l’Atlantique", "WESZ": "heure d’été d’Europe de l’Ouest", "ACST": "heure normale du centre de l’Australie", "COT": "heure normale de Colombie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "SAST": "heure normale d’Afrique méridionale", "CHADT": "heure d’été des îles Chatham", "WART": "heure normale de l’Ouest argentin", "AST": "heure normale de l’Atlantique", "MST": "heure normale de Macao", "BT": "heure du Bhoutan", "AEST": "heure normale de l’Est de l’Australie", "HECU": "heure d’été de Cuba", "WIB": "heure de l’Ouest indonésien", "AWST": "heure normale de l’Ouest de l’Australie", "CLST": "heure d’été du Chili", "TMST": "heure d’été du Turkménistan", "HKST": "heure d’été de Hong Kong", "HKT": "heure normale de Hong Kong", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HEPMX": "heure d’été du Pacifique mexicain", "CDT": "heure d’été du Centre", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "CLT": "heure normale du Chili", "GMT": "heure moyenne de Greenwich", "CST": "heure normale du centre nord-américain", "EDT": "heure d’été de l’Est", "AKST": "heure normale de l’Alaska", "ACWST": "heure normale du centre-ouest de l’Australie", "UYST": "heure d’été de l’Uruguay", "HNCU": "heure normale de Cuba", "HNEG": "heure normale de l’Est du Groenland", "SRT": "heure du Suriname", "MESZ": "heure d’été d’Europe centrale", "ACDT": "heure d’été du centre de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "EAT": "heure normale d’Afrique de l’Est", "WIT": "heure de l’Est indonésien", "∅∅∅": "heure d’été de Brasilia", "PST": "heure normale du Pacifique nord-américain", "CAT": "heure normale d’Afrique centrale", "ACWDT": "heure d’été du centre-ouest de l’Australie", "WARST": "heure d’été de l’Ouest argentin", "ART": "heure normale d’Argentine", "OEZ": "heure normale d’Europe de l’Est", "EST": "heure normale de l’Est nord-américain", "HEEG": "heure d’été de l’Est du Groenland", "ECT": "heure de l’Équateur", "NZDT": "heure d’été de la Nouvelle-Zélande", "JDT": "heure d’été du Japon", "HNOG": "heure normale de l’Ouest du Groenland", "MDT": "heure d’été de Macao", "WITA": "heure du Centre indonésien", "ChST": "heure des Chamorro", "GYT": "heure du Guyana", "PDT": "heure d’été du Pacifique", "HEOG": "heure d’été de l’Ouest du Groenland", "OESZ": "heure d’été d’Europe de l’Est", "MYT": "heure de la Malaisie", "IST": "heure de l’Inde", "WAT": "heure normale d’Afrique de l’Ouest"},
}
}
diff --git a/fr_CG/fr_CG.go b/fr_CG/fr_CG.go
index 86650e77..ae60097d 100644
--- a/fr_CG/fr_CG.go
+++ b/fr_CG/fr_CG.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"HEOG": "heure d’été de l’Ouest du Groenland", "NZDT": "heure d’été de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "HNEG": "heure normale de l’Est du Groenland", "GMT": "heure moyenne de Greenwich", "GYT": "heure du Guyana", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "OEZ": "heure normale d’Europe de l’Est", "UYT": "heure normale de l’Uruguay", "WIB": "heure de l’Ouest indonésien", "TMT": "heure normale du Turkménistan", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "JST": "heure normale du Japon", "ADT": "heure d’été de l’Atlantique", "VET": "heure du Venezuela", "ART": "heure normale d’Argentine", "COST": "heure d’été de Colombie", "MDT": "heure d’été de Macao", "HNOG": "heure normale de l’Ouest du Groenland", "ECT": "heure de l’Équateur", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HNT": "heure normale de Terre-Neuve", "JDT": "heure d’été du Japon", "UYST": "heure d’été de l’Uruguay", "ACDT": "heure d’été du centre de l’Australie", "WAST": "heure d’été d’Afrique de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "WART": "heure normale de l’Ouest argentin", "WARST": "heure d’été de l’Ouest argentin", "AWST": "heure normale de l’Ouest de l’Australie", "LHST": "heure normale de Lord Howe", "CLST": "heure d’été du Chili", "ChST": "heure des Chamorro", "ACST": "heure normale du centre de l’Australie", "AKST": "heure normale de l’Alaska", "ARST": "heure d’été de l’Argentine", "HKT": "heure normale de Hong Kong", "SAST": "heure normale d’Afrique méridionale", "PDT": "heure d’été du Pacifique", "WITA": "heure du Centre indonésien", "AWDT": "heure d’été de l’Ouest de l’Australie", "EST": "heure normale de l’Est nord-américain", "MST": "heure normale de Macao", "WIT": "heure de l’Est indonésien", "CHADT": "heure d’été des îles Chatham", "HEEG": "heure d’été de l’Est du Groenland", "GFT": "heure de la Guyane française", "BOT": "heure de Bolivie", "WAT": "heure normale d’Afrique de l’Ouest", "COT": "heure normale de Colombie", "HECU": "heure d’été de Cuba", "SGT": "heure de Singapour", "AEST": "heure normale de l’Est de l’Australie", "MEZ": "heure normale d’Europe centrale", "TMST": "heure d’été du Turkménistan", "∅∅∅": "heure d’été des Açores", "HEPMX": "heure d’été du Pacifique mexicain", "AKDT": "heure d’été de l’Alaska", "ACWST": "heure normale du centre-ouest de l’Australie", "OESZ": "heure d’été d’Europe de l’Est", "EAT": "heure normale d’Afrique de l’Est", "BT": "heure du Bhoutan", "WEZ": "heure normale d’Europe de l’Ouest", "AEDT": "heure d’été de l’Est de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "HNPMX": "heure normale du Pacifique mexicain", "CST": "heure normale du centre nord-américain", "MYT": "heure de la Malaisie", "LHDT": "heure d’été de Lord Howe", "CAT": "heure normale d’Afrique centrale", "HAST": "heure normale d’Hawaii - Aléoutiennes", "SRT": "heure du Suriname", "HAT": "heure d’été de Terre-Neuve", "CHAST": "heure normale des îles Chatham", "IST": "heure de l’Inde", "HNCU": "heure normale de Cuba", "CDT": "heure d’été du Centre", "AST": "heure normale de l’Atlantique", "WESZ": "heure d’été d’Europe de l’Ouest", "HKST": "heure d’été de Hong Kong", "MESZ": "heure d’été d’Europe centrale", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EDT": "heure d’été de l’Est", "PST": "heure normale du Pacifique nord-américain"},
+ timezones: map[string]string{"HAT": "heure d’été de Terre-Neuve", "AKST": "heure normale de l’Alaska", "WIB": "heure de l’Ouest indonésien", "NZDT": "heure d’été de la Nouvelle-Zélande", "PDT": "heure d’été du Pacifique", "ACWDT": "heure d’été du centre-ouest de l’Australie", "JDT": "heure d’été du Japon", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HECU": "heure d’été de Cuba", "AWST": "heure normale de l’Ouest de l’Australie", "CHADT": "heure d’été des îles Chatham", "PST": "heure normale du Pacifique nord-américain", "HNOG": "heure normale de l’Ouest du Groenland", "WAT": "heure normale d’Afrique de l’Ouest", "HNCU": "heure normale de Cuba", "CDT": "heure d’été du Centre", "CLT": "heure normale du Chili", "HNT": "heure normale de Terre-Neuve", "UYT": "heure normale de l’Uruguay", "LHST": "heure normale de Lord Howe", "VET": "heure du Venezuela", "HAST": "heure normale d’Hawaii - Aléoutiennes", "NZST": "heure normale de la Nouvelle-Zélande", "MEZ": "heure normale d’Europe centrale", "MDT": "heure d’été de Macao", "ARST": "heure d’été de l’Argentine", "HKT": "heure normale de Hong Kong", "WITA": "heure du Centre indonésien", "AKDT": "heure d’été de l’Alaska", "MESZ": "heure d’été d’Europe centrale", "ChST": "heure des Chamorro", "CHAST": "heure normale des îles Chatham", "CLST": "heure d’été du Chili", "ADT": "heure d’été de l’Atlantique", "TMT": "heure normale du Turkménistan", "JST": "heure normale du Japon", "WESZ": "heure d’été d’Europe de l’Ouest", "WART": "heure normale de l’Ouest argentin", "ACDT": "heure d’été du centre de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "BOT": "heure de Bolivie", "SGT": "heure de Singapour", "COST": "heure d’été de Colombie", "ACWST": "heure normale du centre-ouest de l’Australie", "CAT": "heure normale d’Afrique centrale", "MYT": "heure de la Malaisie", "OESZ": "heure d’été d’Europe de l’Est", "GMT": "heure moyenne de Greenwich", "WARST": "heure d’été de l’Ouest argentin", "OEZ": "heure normale d’Europe de l’Est", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "∅∅∅": "heure d’été de l’Acre", "LHDT": "heure d’été de Lord Howe", "CST": "heure normale du centre nord-américain", "WEZ": "heure normale d’Europe de l’Ouest", "HKST": "heure d’été de Hong Kong", "EST": "heure normale de l’Est nord-américain", "ACST": "heure normale du centre de l’Australie", "TMST": "heure d’été du Turkménistan", "HEEG": "heure d’été de l’Est du Groenland", "GFT": "heure de la Guyane française", "HEOG": "heure d’été de l’Ouest du Groenland", "AWDT": "heure d’été de l’Ouest de l’Australie", "ECT": "heure de l’Équateur", "IST": "heure de l’Inde", "GYT": "heure du Guyana", "ART": "heure normale d’Argentine", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "COT": "heure normale de Colombie", "UYST": "heure d’été de l’Uruguay", "SRT": "heure du Suriname", "AEST": "heure normale de l’Est de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "HNPMX": "heure normale du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WAST": "heure d’été d’Afrique de l’Ouest", "HNEG": "heure normale de l’Est du Groenland", "HEPMX": "heure d’été du Pacifique mexicain", "SAST": "heure normale d’Afrique méridionale", "WIT": "heure de l’Est indonésien", "MST": "heure normale de Macao", "EDT": "heure d’été de l’Est", "BT": "heure du Bhoutan"},
}
}
diff --git a/fr_CH/fr_CH.go b/fr_CH/fr_CH.go
index 479cf682..9f997ade 100644
--- a/fr_CH/fr_CH.go
+++ b/fr_CH/fr_CH.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"OESZ": "heure d’été d’Europe de l’Est", "WIT": "heure de l’Est indonésien", "ARST": "heure d’été de l’Argentine", "WESZ": "heure d’été d’Europe de l’Ouest", "EST": "heure normale de l’Est nord-américain", "AKDT": "heure d’été de l’Alaska", "PST": "heure normale du Pacifique nord-américain", "ACWDT": "heure d’été du centre-ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "LHDT": "heure d’été de Lord Howe", "CLST": "heure d’été du Chili", "HNEG": "heure normale de l’Est du Groenland", "GFT": "heure de la Guyane française", "BOT": "heure de Bolivie", "BT": "heure du Bhoutan", "AWDT": "heure d’été de l’Ouest de l’Australie", "GMT": "heure moyenne de Greenwich", "SGT": "heure de Singapour", "UYST": "heure d’été de l’Uruguay", "WEZ": "heure normale d’Europe de l’Ouest", "HNPMX": "heure normale du Pacifique mexicain", "VET": "heure du Venezuela", "HEOG": "heure d’été de l’Ouest du Groenland", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "SAST": "heure normale d’Afrique méridionale", "JDT": "heure d’été du Japon", "∅∅∅": "heure d’été du Pérou", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "CST": "heure normale du centre nord-américain", "ADT": "heure d’été de l’Atlantique", "HKT": "heure normale de Hong Kong", "ACST": "heure normale du centre de l’Australie", "MYT": "heure de la Malaisie", "ACWST": "heure normale du centre-ouest de l’Australie", "HAT": "heure d’été de Terre-Neuve", "AKST": "heure normale de l’Alaska", "HAST": "heure normale d’Hawaii - Aléoutiennes", "PDT": "heure d’été du Pacifique", "CHAST": "heure normale des îles Chatham", "ACDT": "heure d’été du centre de l’Australie", "WAST": "heure d’été d’Afrique de l’Ouest", "WART": "heure normale de l’Ouest argentin", "COST": "heure d’été de Colombie", "WAT": "heure normale d’Afrique de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HECU": "heure d’été de Cuba", "AEST": "heure normale de l’Est de l’Australie", "MST": "heure normale de Macao", "UYT": "heure normale de l’Uruguay", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "TMST": "heure d’été du Turkménistan", "EAT": "heure normale d’Afrique de l’Est", "COT": "heure normale de Colombie", "HNCU": "heure normale de Cuba", "LHST": "heure normale de Lord Howe", "JST": "heure normale du Japon", "HEEG": "heure d’été de l’Est du Groenland", "OEZ": "heure normale d’Europe de l’Est", "HEPMX": "heure d’été du Pacifique mexicain", "ART": "heure normale d’Argentine", "NZDT": "heure d’été de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "ChST": "heure des Chamorro", "WIB": "heure de l’Ouest indonésien", "SRT": "heure du Suriname", "HNOG": "heure normale de l’Ouest du Groenland", "CHADT": "heure d’été des îles Chatham", "IST": "heure de l’Inde", "ECT": "heure de l’Équateur", "WARST": "heure d’été de l’Ouest argentin", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "AEDT": "heure d’été de l’Est de l’Australie", "EDT": "heure d’été de l’Est", "MDT": "heure d’été de Macao", "HKST": "heure d’été de Hong Kong", "WITA": "heure du Centre indonésien", "AWST": "heure normale de l’Ouest de l’Australie", "MESZ": "heure d’été d’Europe centrale", "TMT": "heure normale du Turkménistan", "CDT": "heure d’été du Centre", "AST": "heure normale de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "CAT": "heure normale d’Afrique centrale", "GYT": "heure du Guyana"},
+ timezones: map[string]string{"GMT": "heure moyenne de Greenwich", "ACST": "heure normale du centre de l’Australie", "TMT": "heure normale du Turkménistan", "GFT": "heure de la Guyane française", "AKST": "heure normale de l’Alaska", "IST": "heure de l’Inde", "WESZ": "heure d’été d’Europe de l’Ouest", "HEOG": "heure d’été de l’Ouest du Groenland", "NZDT": "heure d’été de la Nouvelle-Zélande", "GYT": "heure du Guyana", "EAT": "heure normale d’Afrique de l’Est", "PST": "heure normale du Pacifique nord-américain", "NZST": "heure normale de la Nouvelle-Zélande", "OESZ": "heure d’été d’Europe de l’Est", "TMST": "heure d’été du Turkménistan", "WAST": "heure d’été d’Afrique de l’Ouest", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "UYST": "heure d’été de l’Uruguay", "ACWST": "heure normale du centre-ouest de l’Australie", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HNEG": "heure normale de l’Est du Groenland", "HAT": "heure d’été de Terre-Neuve", "ACDT": "heure d’été du centre de l’Australie", "COT": "heure normale de Colombie", "COST": "heure d’été de Colombie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "BT": "heure du Bhoutan", "AST": "heure normale de l’Atlantique", "ADT": "heure d’été de l’Atlantique", "MST": "heure normale de Macao", "CDT": "heure d’été du Centre", "CLST": "heure d’été du Chili", "HNT": "heure normale de Terre-Neuve", "WITA": "heure du Centre indonésien", "SRT": "heure du Suriname", "WIT": "heure de l’Est indonésien", "ECT": "heure de l’Équateur", "ARST": "heure d’été de l’Argentine", "∅∅∅": "heure d’été des Açores", "CST": "heure normale du centre nord-américain", "PDT": "heure d’été du Pacifique", "MYT": "heure de la Malaisie", "HKT": "heure normale de Hong Kong", "WAT": "heure normale d’Afrique de l’Ouest", "AEST": "heure normale de l’Est de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "CHADT": "heure d’été des îles Chatham", "HAST": "heure normale d’Hawaii - Aléoutiennes", "EST": "heure normale de l’Est nord-américain", "EDT": "heure d’été de l’Est", "UYT": "heure normale de l’Uruguay", "SGT": "heure de Singapour", "HKST": "heure d’été de Hong Kong", "WARST": "heure d’été de l’Ouest argentin", "OEZ": "heure normale d’Europe de l’Est", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "VET": "heure du Venezuela", "WEZ": "heure normale d’Europe de l’Ouest", "CAT": "heure normale d’Afrique centrale", "JST": "heure normale du Japon", "MDT": "heure d’été de Macao", "HEPMX": "heure d’été du Pacifique mexicain", "WIB": "heure de l’Ouest indonésien", "HNCU": "heure normale de Cuba", "ART": "heure normale d’Argentine", "AWDT": "heure d’été de l’Ouest de l’Australie", "JDT": "heure d’été du Japon", "CLT": "heure normale du Chili", "CHAST": "heure normale des îles Chatham", "WART": "heure normale de l’Ouest argentin", "HEEG": "heure d’été de l’Est du Groenland", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "ChST": "heure des Chamorro", "HNPMX": "heure normale du Pacifique mexicain", "MEZ": "heure normale d’Europe centrale", "SAST": "heure normale d’Afrique méridionale", "HECU": "heure d’été de Cuba", "BOT": "heure de Bolivie", "MESZ": "heure d’été d’Europe centrale", "HNOG": "heure normale de l’Ouest du Groenland", "AEDT": "heure d’été de l’Est de l’Australie", "AKDT": "heure d’été de l’Alaska", "LHST": "heure normale de Lord Howe", "LHDT": "heure d’été de Lord Howe", "AWST": "heure normale de l’Ouest de l’Australie"},
}
}
diff --git a/fr_CI/fr_CI.go b/fr_CI/fr_CI.go
index 1a2b3847..0855eb3e 100644
--- a/fr_CI/fr_CI.go
+++ b/fr_CI/fr_CI.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"JST": "heure normale du Japon", "HEEG": "heure d’été de l’Est du Groenland", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACWST": "heure normale du centre-ouest de l’Australie", "HKST": "heure d’été de Hong Kong", "CHADT": "heure d’été des îles Chatham", "WARST": "heure d’été de l’Ouest argentin", "UYT": "heure normale de l’Uruguay", "ART": "heure normale d’Argentine", "AWST": "heure normale de l’Ouest de l’Australie", "∅∅∅": "heure d’été de l’Amazonie", "ChST": "heure des Chamorro", "HKT": "heure normale de Hong Kong", "LHST": "heure normale de Lord Howe", "WAST": "heure d’été d’Afrique de l’Ouest", "WART": "heure normale de l’Ouest argentin", "HECU": "heure d’été de Cuba", "WIT": "heure de l’Est indonésien", "ACWDT": "heure d’été du centre-ouest de l’Australie", "TMST": "heure d’été du Turkménistan", "WIB": "heure de l’Ouest indonésien", "HAST": "heure normale d’Hawaii - Aléoutiennes", "CHAST": "heure normale des îles Chatham", "CST": "heure normale du centre nord-américain", "WITA": "heure du Centre indonésien", "LHDT": "heure d’été de Lord Howe", "SAST": "heure normale d’Afrique méridionale", "HNEG": "heure normale de l’Est du Groenland", "ACST": "heure normale du centre de l’Australie", "COT": "heure normale de Colombie", "AEST": "heure normale de l’Est de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "HEPMX": "heure d’été du Pacifique mexicain", "NZST": "heure normale de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "AKST": "heure normale de l’Alaska", "GYT": "heure du Guyana", "BT": "heure du Bhoutan", "SRT": "heure du Suriname", "WESZ": "heure d’été d’Europe de l’Ouest", "HNT": "heure normale de Terre-Neuve", "CAT": "heure normale d’Afrique centrale", "WAT": "heure normale d’Afrique de l’Ouest", "SGT": "heure de Singapour", "EDT": "heure d’été de l’Est", "MDT": "heure d’été de Macao", "MYT": "heure de la Malaisie", "WEZ": "heure normale d’Europe de l’Ouest", "ACDT": "heure d’été du centre de l’Australie", "VET": "heure du Venezuela", "HNPMX": "heure normale du Pacifique mexicain", "HAT": "heure d’été de Terre-Neuve", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "BOT": "heure de Bolivie", "GFT": "heure de la Guyane française", "HNCU": "heure normale de Cuba", "AWDT": "heure d’été de l’Ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "JDT": "heure d’été du Japon", "TMT": "heure normale du Turkménistan", "EAT": "heure normale d’Afrique de l’Est", "COST": "heure d’été de Colombie", "UYST": "heure d’été de l’Uruguay", "HEOG": "heure d’été de l’Ouest du Groenland", "NZDT": "heure d’été de la Nouvelle-Zélande", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "PDT": "heure d’été du Pacifique", "OESZ": "heure d’été d’Europe de l’Est", "AKDT": "heure d’été de l’Alaska", "PST": "heure normale du Pacifique nord-américain", "ECT": "heure de l’Équateur", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "GMT": "heure moyenne de Greenwich", "EST": "heure normale de l’Est nord-américain", "CDT": "heure d’été du Centre", "AST": "heure normale de l’Atlantique", "HNOG": "heure normale de l’Ouest du Groenland", "CLST": "heure d’été du Chili", "MESZ": "heure d’été d’Europe centrale", "IST": "heure de l’Inde", "OEZ": "heure normale d’Europe de l’Est", "MST": "heure normale de Macao", "ADT": "heure d’été de l’Atlantique", "ARST": "heure d’été de l’Argentine", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon"},
+ timezones: map[string]string{"WEZ": "heure normale d’Europe de l’Ouest", "ART": "heure normale d’Argentine", "UYT": "heure normale de l’Uruguay", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "ACWST": "heure normale du centre-ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "JDT": "heure d’été du Japon", "MEZ": "heure normale d’Europe centrale", "ARST": "heure d’été de l’Argentine", "MDT": "heure d’été de Macao", "COST": "heure d’été de Colombie", "HEEG": "heure d’été de l’Est du Groenland", "SAST": "heure normale d’Afrique méridionale", "NZDT": "heure d’été de la Nouvelle-Zélande", "CAT": "heure normale d’Afrique centrale", "WAST": "heure d’été d’Afrique de l’Ouest", "WITA": "heure du Centre indonésien", "LHST": "heure normale de Lord Howe", "SRT": "heure du Suriname", "BOT": "heure de Bolivie", "HKT": "heure normale de Hong Kong", "UYST": "heure d’été de l’Uruguay", "LHDT": "heure d’été de Lord Howe", "MESZ": "heure d’été d’Europe centrale", "OEZ": "heure normale d’Europe de l’Est", "WARST": "heure d’été de l’Ouest argentin", "BT": "heure du Bhoutan", "AKDT": "heure d’été de l’Alaska", "HNCU": "heure normale de Cuba", "∅∅∅": "heure d’été de Brasilia", "IST": "heure de l’Inde", "EDT": "heure d’été de l’Est", "AEDT": "heure d’été de l’Est de l’Australie", "ChST": "heure des Chamorro", "CDT": "heure d’été du Centre", "CLST": "heure d’été du Chili", "WART": "heure normale de l’Ouest argentin", "HKST": "heure d’été de Hong Kong", "ACDT": "heure d’été du centre de l’Australie", "GFT": "heure de la Guyane française", "HEPMX": "heure d’été du Pacifique mexicain", "VET": "heure du Venezuela", "WESZ": "heure d’été d’Europe de l’Ouest", "COT": "heure normale de Colombie", "HNEG": "heure normale de l’Est du Groenland", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HECU": "heure d’été de Cuba", "HAST": "heure normale d’Hawaii - Aléoutiennes", "MST": "heure normale de Macao", "CHAST": "heure normale des îles Chatham", "HEOG": "heure d’été de l’Ouest du Groenland", "CST": "heure normale du centre nord-américain", "SGT": "heure de Singapour", "ACWDT": "heure d’été du centre-ouest de l’Australie", "GMT": "heure moyenne de Greenwich", "EST": "heure normale de l’Est nord-américain", "ACST": "heure normale du centre de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ECT": "heure de l’Équateur", "AST": "heure normale de l’Atlantique", "WAT": "heure normale d’Afrique de l’Ouest", "WIB": "heure de l’Ouest indonésien", "PST": "heure normale du Pacifique nord-américain", "MYT": "heure de la Malaisie", "ADT": "heure d’été de l’Atlantique", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AEST": "heure normale de l’Est de l’Australie", "AKST": "heure normale de l’Alaska", "AWDT": "heure d’été de l’Ouest de l’Australie", "PDT": "heure d’été du Pacifique", "HAT": "heure d’été de Terre-Neuve", "HNPMX": "heure normale du Pacifique mexicain", "OESZ": "heure d’été d’Europe de l’Est", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "JST": "heure normale du Japon", "HNT": "heure normale de Terre-Neuve", "WIT": "heure de l’Est indonésien", "AWST": "heure normale de l’Ouest de l’Australie", "TMT": "heure normale du Turkménistan", "TMST": "heure d’été du Turkménistan", "GYT": "heure du Guyana", "CHADT": "heure d’été des îles Chatham", "HNOG": "heure normale de l’Ouest du Groenland"},
}
}
diff --git a/fr_CM/fr_CM.go b/fr_CM/fr_CM.go
index 32df8ef1..172c99cb 100644
--- a/fr_CM/fr_CM.go
+++ b/fr_CM/fr_CM.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"VET": "heure du Venezuela", "ARST": "heure d’été de l’Argentine", "AWDT": "heure d’été de l’Ouest de l’Australie", "UYT": "heure normale de l’Uruguay", "EAT": "heure normale d’Afrique de l’Est", "WAST": "heure d’été d’Afrique de l’Ouest", "CDT": "heure d’été du Centre", "HAT": "heure d’été de Terre-Neuve", "AWST": "heure normale de l’Ouest de l’Australie", "WITA": "heure du Centre indonésien", "LHDT": "heure d’été de Lord Howe", "SAST": "heure normale d’Afrique méridionale", "HEEG": "heure d’été de l’Est du Groenland", "AKDT": "heure d’été de l’Alaska", "ChST": "heure des Chamorro", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "EST": "heure normale de l’Est nord-américain", "UYST": "heure d’été de l’Uruguay", "WIB": "heure de l’Ouest indonésien", "HNEG": "heure normale de l’Est du Groenland", "TMT": "heure normale du Turkménistan", "COT": "heure normale de Colombie", "BT": "heure du Bhoutan", "HNT": "heure normale de Terre-Neuve", "AEST": "heure normale de l’Est de l’Australie", "MESZ": "heure d’été d’Europe centrale", "NZDT": "heure d’été de la Nouvelle-Zélande", "MST": "heure normale de Macao", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "JDT": "heure d’été du Japon", "WART": "heure normale de l’Ouest argentin", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AKST": "heure normale de l’Alaska", "WIT": "heure de l’Est indonésien", "MEZ": "heure normale d’Europe centrale", "ADT": "heure d’été de l’Atlantique", "MDT": "heure d’été de Macao", "HNOG": "heure normale de l’Ouest du Groenland", "NZST": "heure normale de la Nouvelle-Zélande", "BOT": "heure de Bolivie", "GMT": "heure moyenne de Greenwich", "SGT": "heure de Singapour", "ART": "heure normale d’Argentine", "IST": "heure de l’Inde", "JST": "heure normale du Japon", "CST": "heure normale du centre nord-américain", "OEZ": "heure normale d’Europe de l’Est", "ECT": "heure de l’Équateur", "WARST": "heure d’été de l’Ouest argentin", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HKT": "heure normale de Hong Kong", "CHAST": "heure normale des îles Chatham", "GFT": "heure de la Guyane française", "WAT": "heure normale d’Afrique de l’Ouest", "WESZ": "heure d’été d’Europe de l’Ouest", "ACWST": "heure normale du centre-ouest de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "LHST": "heure normale de Lord Howe", "∅∅∅": "heure d’été de l’Amazonie", "ACST": "heure normale du centre de l’Australie", "COST": "heure d’été de Colombie", "SRT": "heure du Suriname", "PST": "heure normale du Pacifique nord-américain", "PDT": "heure d’été du Pacifique", "WEZ": "heure normale d’Europe de l’Ouest", "CHADT": "heure d’été des îles Chatham", "HNCU": "heure normale de Cuba", "HECU": "heure d’été de Cuba", "HEPMX": "heure d’été du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "CLT": "heure normale du Chili", "TMST": "heure d’été du Turkménistan", "OESZ": "heure d’été d’Europe de l’Est", "HNPMX": "heure normale du Pacifique mexicain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "CLST": "heure d’été du Chili", "ACDT": "heure d’été du centre de l’Australie", "EDT": "heure d’été de l’Est", "HEOG": "heure d’été de l’Ouest du Groenland", "HKST": "heure d’été de Hong Kong", "CAT": "heure normale d’Afrique centrale", "GYT": "heure du Guyana", "MYT": "heure de la Malaisie"},
+ timezones: map[string]string{"EDT": "heure d’été de l’Est", "HKST": "heure d’été de Hong Kong", "SGT": "heure de Singapour", "WART": "heure normale de l’Ouest argentin", "MST": "heure normale de Macao", "MDT": "heure d’été de Macao", "COT": "heure normale de Colombie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "UYT": "heure normale de l’Uruguay", "ECT": "heure de l’Équateur", "ACST": "heure normale du centre de l’Australie", "COST": "heure d’été de Colombie", "GYT": "heure du Guyana", "HNCU": "heure normale de Cuba", "AWST": "heure normale de l’Ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "JST": "heure normale du Japon", "CLT": "heure normale du Chili", "HNEG": "heure normale de l’Est du Groenland", "WITA": "heure du Centre indonésien", "AWDT": "heure d’été de l’Ouest de l’Australie", "IST": "heure de l’Inde", "ACWST": "heure normale du centre-ouest de l’Australie", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HEOG": "heure d’été de l’Ouest du Groenland", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MESZ": "heure d’été d’Europe centrale", "WAT": "heure normale d’Afrique de l’Ouest", "AEST": "heure normale de l’Est de l’Australie", "UYST": "heure d’été de l’Uruguay", "LHDT": "heure d’été de Lord Howe", "WIT": "heure de l’Est indonésien", "CHADT": "heure d’été des îles Chatham", "AST": "heure normale de l’Atlantique", "OEZ": "heure normale d’Europe de l’Est", "GFT": "heure de la Guyane française", "WIB": "heure de l’Ouest indonésien", "∅∅∅": "heure d’été de Brasilia", "MYT": "heure de la Malaisie", "HEEG": "heure d’été de l’Est du Groenland", "SRT": "heure du Suriname", "WARST": "heure d’été de l’Ouest argentin", "OESZ": "heure d’été d’Europe de l’Est", "ART": "heure normale d’Argentine", "WAST": "heure d’été d’Afrique de l’Ouest", "ACDT": "heure d’été du centre de l’Australie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AKST": "heure normale de l’Alaska", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CDT": "heure d’été du Centre", "CAT": "heure normale d’Afrique centrale", "NZDT": "heure d’été de la Nouvelle-Zélande", "HNT": "heure normale de Terre-Neuve", "PST": "heure normale du Pacifique nord-américain", "NZST": "heure normale de la Nouvelle-Zélande", "GMT": "heure moyenne de Greenwich", "AEDT": "heure d’été de l’Est de l’Australie", "LHST": "heure normale de Lord Howe", "HNPMX": "heure normale du Pacifique mexicain", "HEPMX": "heure d’été du Pacifique mexicain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HNOG": "heure normale de l’Ouest du Groenland", "AKDT": "heure d’été de l’Alaska", "SAST": "heure normale d’Afrique méridionale", "BOT": "heure de Bolivie", "PDT": "heure d’été du Pacifique", "VET": "heure du Venezuela", "ARST": "heure d’été de l’Argentine", "EAT": "heure normale d’Afrique de l’Est", "JDT": "heure d’été du Japon", "BT": "heure du Bhoutan", "HECU": "heure d’été de Cuba", "HAST": "heure normale d’Hawaii - Aléoutiennes", "TMT": "heure normale du Turkménistan", "TMST": "heure d’été du Turkménistan", "EST": "heure normale de l’Est nord-américain", "CST": "heure normale du centre nord-américain", "CHAST": "heure normale des îles Chatham", "CLST": "heure d’été du Chili", "ADT": "heure d’été de l’Atlantique", "WEZ": "heure normale d’Europe de l’Ouest", "WESZ": "heure d’été d’Europe de l’Ouest", "HKT": "heure normale de Hong Kong", "HAT": "heure d’été de Terre-Neuve", "ChST": "heure des Chamorro"},
}
}
diff --git a/fr_DJ/fr_DJ.go b/fr_DJ/fr_DJ.go
index 498a5ce4..78cab967 100644
--- a/fr_DJ/fr_DJ.go
+++ b/fr_DJ/fr_DJ.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"ChST": "heure des Chamorro", "COT": "heure normale de Colombie", "AKST": "heure normale de l’Alaska", "HNT": "heure normale de Terre-Neuve", "HAT": "heure d’été de Terre-Neuve", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "MESZ": "heure d’été d’Europe centrale", "CAT": "heure normale d’Afrique centrale", "WAST": "heure d’été d’Afrique de l’Ouest", "OEZ": "heure normale d’Europe de l’Est", "OESZ": "heure d’été d’Europe de l’Est", "PDT": "heure d’été du Pacifique", "WEZ": "heure normale d’Europe de l’Ouest", "HEOG": "heure d’été de l’Ouest du Groenland", "HKT": "heure normale de Hong Kong", "WART": "heure normale de l’Ouest argentin", "COST": "heure d’été de Colombie", "SRT": "heure du Suriname", "LHDT": "heure d’été de Lord Howe", "BOT": "heure de Bolivie", "TMST": "heure d’été du Turkménistan", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HAST": "heure normale d’Hawaii - Aléoutiennes", "PST": "heure normale du Pacifique nord-américain", "MEZ": "heure normale d’Europe centrale", "ARST": "heure d’été de l’Argentine", "HNCU": "heure normale de Cuba", "MDT": "heure d’été de Macao", "HEPMX": "heure d’été du Pacifique mexicain", "ACWST": "heure normale du centre-ouest de l’Australie", "WITA": "heure du Centre indonésien", "JST": "heure normale du Japon", "GFT": "heure de la Guyane française", "SGT": "heure de Singapour", "HNPMX": "heure normale du Pacifique mexicain", "ART": "heure normale d’Argentine", "LHST": "heure normale de Lord Howe", "CHAST": "heure normale des îles Chatham", "CLST": "heure d’été du Chili", "HEEG": "heure d’été de l’Est du Groenland", "WARST": "heure d’été de l’Ouest argentin", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EST": "heure normale de l’Est nord-américain", "MST": "heure normale de Macao", "MYT": "heure de la Malaisie", "ACWDT": "heure d’été du centre-ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "NZDT": "heure d’été de la Nouvelle-Zélande", "EAT": "heure normale d’Afrique de l’Est", "VET": "heure du Venezuela", "BT": "heure du Bhoutan", "HNOG": "heure normale de l’Ouest du Groenland", "AEST": "heure normale de l’Est de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "HKST": "heure d’été de Hong Kong", "WAT": "heure normale d’Afrique de l’Ouest", "ADT": "heure d’été de l’Atlantique", "WIT": "heure de l’Est indonésien", "AWST": "heure normale de l’Ouest de l’Australie", "SAST": "heure normale d’Afrique méridionale", "ECT": "heure de l’Équateur", "EDT": "heure d’été de l’Est", "UYST": "heure d’été de l’Uruguay", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WESZ": "heure d’été d’Europe de l’Ouest", "CLT": "heure normale du Chili", "∅∅∅": "heure d’été de l’Amazonie", "JDT": "heure d’été du Japon", "TMT": "heure normale du Turkménistan", "ACST": "heure normale du centre de l’Australie", "HECU": "heure d’été de Cuba", "CST": "heure normale du centre nord-américain", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "CHADT": "heure d’été des îles Chatham", "GMT": "heure moyenne de Greenwich", "AKDT": "heure d’été de l’Alaska", "CDT": "heure d’été du Centre", "GYT": "heure du Guyana", "AWDT": "heure d’été de l’Ouest de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "WIB": "heure de l’Ouest indonésien", "IST": "heure de l’Inde", "HNEG": "heure normale de l’Est du Groenland", "UYT": "heure normale de l’Uruguay", "AST": "heure normale de l’Atlantique"},
+ timezones: map[string]string{"UYT": "heure normale de l’Uruguay", "LHST": "heure normale de Lord Howe", "ARST": "heure d’été de l’Argentine", "HNT": "heure normale de Terre-Neuve", "AEST": "heure normale de l’Est de l’Australie", "UYST": "heure d’été de l’Uruguay", "EAT": "heure normale d’Afrique de l’Est", "HNCU": "heure normale de Cuba", "HAT": "heure d’été de Terre-Neuve", "LHDT": "heure d’été de Lord Howe", "ECT": "heure de l’Équateur", "HKT": "heure normale de Hong Kong", "ACDT": "heure d’été du centre de l’Australie", "ADT": "heure d’été de l’Atlantique", "BT": "heure du Bhoutan", "GFT": "heure de la Guyane française", "ChST": "heure des Chamorro", "HECU": "heure d’été de Cuba", "CST": "heure normale du centre nord-américain", "WIT": "heure de l’Est indonésien", "MESZ": "heure d’été d’Europe centrale", "WEZ": "heure normale d’Europe de l’Ouest", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "AWDT": "heure d’été de l’Ouest de l’Australie", "JDT": "heure d’été du Japon", "COT": "heure normale de Colombie", "AKST": "heure normale de l’Alaska", "SAST": "heure normale d’Afrique méridionale", "HNPMX": "heure normale du Pacifique mexicain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WIB": "heure de l’Ouest indonésien", "MYT": "heure de la Malaisie", "OEZ": "heure normale d’Europe de l’Est", "EDT": "heure d’été de l’Est", "HNEG": "heure normale de l’Est du Groenland", "IST": "heure de l’Inde", "OESZ": "heure d’été d’Europe de l’Est", "ART": "heure normale d’Argentine", "EST": "heure normale de l’Est nord-américain", "COST": "heure d’été de Colombie", "SRT": "heure du Suriname", "MEZ": "heure normale d’Europe centrale", "TMST": "heure d’été du Turkménistan", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "ACWST": "heure normale du centre-ouest de l’Australie", "JST": "heure normale du Japon", "GMT": "heure moyenne de Greenwich", "ACST": "heure normale du centre de l’Australie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "MST": "heure normale des Rocheuses", "PST": "heure normale du Pacifique nord-américain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "MDT": "heure d’été des Rocheuses", "BOT": "heure de Bolivie", "WART": "heure normale de l’Ouest argentin", "WARST": "heure d’été de l’Ouest argentin", "CLT": "heure normale du Chili", "HNOG": "heure normale de l’Ouest du Groenland", "HEOG": "heure d’été de l’Ouest du Groenland", "HEEG": "heure d’été de l’Est du Groenland", "GYT": "heure du Guyana", "CHAST": "heure normale des îles Chatham", "CAT": "heure normale d’Afrique centrale", "CLST": "heure d’été du Chili", "AKDT": "heure d’été de l’Alaska", "HEPMX": "heure d’été du Pacifique mexicain", "SGT": "heure de Singapour", "PDT": "heure d’été du Pacifique", "WESZ": "heure d’été d’Europe de l’Ouest", "TMT": "heure normale du Turkménistan", "AWST": "heure normale de l’Ouest de l’Australie", "CHADT": "heure d’été des îles Chatham", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AST": "heure normale de l’Atlantique", "WAST": "heure d’été d’Afrique de l’Ouest", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "WAT": "heure normale d’Afrique de l’Ouest", "∅∅∅": "heure d’été de l’Acre", "WITA": "heure du Centre indonésien", "AEDT": "heure d’été de l’Est de l’Australie", "CDT": "heure d’été du Centre", "NZST": "heure normale de la Nouvelle-Zélande", "NZDT": "heure d’été de la Nouvelle-Zélande", "VET": "heure du Venezuela", "HKST": "heure d’été de Hong Kong"},
}
}
diff --git a/fr_DZ/fr_DZ.go b/fr_DZ/fr_DZ.go
index 008eaf00..02b2c2c6 100644
--- a/fr_DZ/fr_DZ.go
+++ b/fr_DZ/fr_DZ.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"∅∅∅": "heure d’été de l’Amazonie", "AKST": "heure normale de l’Alaska", "CDT": "heure d’été du Centre", "WIB": "heure de l’Ouest indonésien", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HAST": "heure normale d’Hawaii - Aléoutiennes", "AWDT": "heure d’été de l’Ouest de l’Australie", "CAT": "heure normale d’Afrique centrale", "PDT": "heure d’été du Pacifique", "HKST": "heure d’été de Hong Kong", "WITA": "heure du Centre indonésien", "CHADT": "heure d’été des îles Chatham", "GFT": "heure de la Guyane française", "VET": "heure du Venezuela", "WIT": "heure de l’Est indonésien", "BT": "heure du Bhoutan", "AWST": "heure normale de l’Ouest de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "TMT": "heure normale du Turkménistan", "COST": "heure d’été de Colombie", "AST": "heure normale de l’Atlantique", "ADT": "heure d’été de l’Atlantique", "ART": "heure normale d’Argentine", "CHAST": "heure normale des îles Chatham", "COT": "heure normale de Colombie", "HNOG": "heure normale de l’Ouest du Groenland", "AEDT": "heure d’été de l’Est de l’Australie", "LHST": "heure normale de Lord Howe", "GMT": "heure moyenne de Greenwich", "HNPMX": "heure normale du Pacifique mexicain", "LHDT": "heure d’été de Lord Howe", "IST": "heure de l’Inde", "EAT": "heure normale d’Afrique de l’Est", "ChST": "heure des Chamorro", "TMST": "heure d’été du Turkménistan", "WAT": "heure normale d’Afrique de l’Ouest", "OESZ": "heure d’été d’Europe de l’Est", "EDT": "heure d’été de l’Est", "MDT": "heure d’été des Rocheuses", "AEST": "heure normale de l’Est de l’Australie", "CLST": "heure d’été du Chili", "AKDT": "heure d’été de l’Alaska", "HNEG": "heure normale de l’Est du Groenland", "WAST": "heure d’été d’Afrique de l’Ouest", "WARST": "heure d’été de l’Ouest argentin", "HECU": "heure d’été de Cuba", "MYT": "heure de la Malaisie", "ACWDT": "heure d’été du centre-ouest de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "HNT": "heure normale de Terre-Neuve", "HKT": "heure normale de Hong Kong", "BOT": "heure de Bolivie", "ACST": "heure normale du centre de l’Australie", "SRT": "heure du Suriname", "PST": "heure normale du Pacifique nord-américain", "WESZ": "heure d’été d’Europe de l’Ouest", "HEEG": "heure d’été de l’Est du Groenland", "OEZ": "heure normale d’Europe de l’Est", "HNCU": "heure normale de Cuba", "EST": "heure normale de l’Est nord-américain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "CLT": "heure normale du Chili", "JST": "heure normale du Japon", "HAT": "heure d’été de Terre-Neuve", "SAST": "heure normale d’Afrique méridionale", "ECT": "heure de l’Équateur", "SGT": "heure de Singapour", "GYT": "heure du Guyana", "UYST": "heure d’été de l’Uruguay", "ACWST": "heure normale du centre-ouest de l’Australie", "WEZ": "heure normale d’Europe de l’Ouest", "MESZ": "heure d’été d’Europe centrale", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "ACDT": "heure d’été du centre de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "JDT": "heure d’été du Japon", "UYT": "heure normale de l’Uruguay", "HEOG": "heure d’été de l’Ouest du Groenland", "MEZ": "heure normale d’Europe centrale", "WART": "heure normale de l’Ouest argentin", "HEPMX": "heure d’été du Pacifique mexicain", "CST": "heure normale du centre nord-américain", "MST": "heure normale des Rocheuses", "ARST": "heure d’été de l’Argentine"},
+ timezones: map[string]string{"MESZ": "heure d’été d’Europe centrale", "HNOG": "heure normale de l’Ouest du Groenland", "TMST": "heure d’été du Turkménistan", "HAT": "heure d’été de Terre-Neuve", "HNPMX": "heure normale du Pacifique mexicain", "LHST": "heure normale de Lord Howe", "ChST": "heure des Chamorro", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "ACST": "heure normale du centre de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "ECT": "heure de l’Équateur", "EST": "heure normale de l’Est nord-américain", "CAT": "heure normale d’Afrique centrale", "HKST": "heure d’été de Hong Kong", "HNEG": "heure normale de l’Est du Groenland", "CST": "heure normale du centre nord-américain", "BOT": "heure de Bolivie", "WAST": "heure d’été d’Afrique de l’Ouest", "COT": "heure normale de Colombie", "BT": "heure du Bhoutan", "WART": "heure normale de l’Ouest argentin", "OEZ": "heure normale d’Europe de l’Est", "GMT": "heure moyenne de Greenwich", "CLT": "heure normale du Chili", "AST": "heure normale de l’Atlantique", "OESZ": "heure d’été d’Europe de l’Est", "ART": "heure normale d’Argentine", "WIT": "heure de l’Est indonésien", "IST": "heure de l’Inde", "MEZ": "heure normale d’Europe centrale", "ACWDT": "heure d’été du centre-ouest de l’Australie", "COST": "heure d’été de Colombie", "MDT": "heure d’été des Rocheuses", "SAST": "heure normale d’Afrique méridionale", "GYT": "heure du Guyana", "ACWST": "heure normale du centre-ouest de l’Australie", "JST": "heure normale du Japon", "WESZ": "heure d’été d’Europe de l’Ouest", "ACDT": "heure d’été du centre de l’Australie", "WITA": "heure du Centre indonésien", "PST": "heure normale du Pacifique nord-américain", "PDT": "heure d’été du Pacifique", "HEEG": "heure d’été de l’Est du Groenland", "AKST": "heure normale de l’Alaska", "HECU": "heure d’été de Cuba", "WARST": "heure d’été de l’Ouest argentin", "HEOG": "heure d’été de l’Ouest du Groenland", "LHDT": "heure d’été de Lord Howe", "WIB": "heure de l’Ouest indonésien", "SGT": "heure de Singapour", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "NZST": "heure normale de la Nouvelle-Zélande", "MYT": "heure de la Malaisie", "UYT": "heure normale de l’Uruguay", "HEPMX": "heure d’été du Pacifique mexicain", "AWST": "heure normale de l’Ouest de l’Australie", "HKT": "heure normale de Hong Kong", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "∅∅∅": "heure d’été de l’Acre", "HAST": "heure normale d’Hawaii - Aléoutiennes", "NZDT": "heure d’été de la Nouvelle-Zélande", "WEZ": "heure normale d’Europe de l’Ouest", "ADT": "heure d’été de l’Atlantique", "TMT": "heure normale du Turkménistan", "WAT": "heure normale d’Afrique de l’Ouest", "CDT": "heure d’été du Centre", "CHAST": "heure normale des îles Chatham", "VET": "heure du Venezuela", "ARST": "heure d’été de l’Argentine", "AEST": "heure normale de l’Est de l’Australie", "UYST": "heure d’été de l’Uruguay", "EAT": "heure normale d’Afrique de l’Est", "SRT": "heure du Suriname", "HNCU": "heure normale de Cuba", "JDT": "heure d’été du Japon", "CLST": "heure d’été du Chili", "HNT": "heure normale de Terre-Neuve", "AEDT": "heure d’été de l’Est de l’Australie", "GFT": "heure de la Guyane française", "AWDT": "heure d’été de l’Ouest de l’Australie", "CHADT": "heure d’été des îles Chatham", "EDT": "heure d’été de l’Est", "MST": "heure normale des Rocheuses", "AKDT": "heure d’été de l’Alaska", "HNPM": "heure normale de Saint-Pierre-et-Miquelon"},
}
}
diff --git a/fr_FR/fr_FR.go b/fr_FR/fr_FR.go
index a33ad674..60cc1a30 100644
--- a/fr_FR/fr_FR.go
+++ b/fr_FR/fr_FR.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"BT": "heure du Bhoutan", "OESZ": "heure d’été d’Europe de l’Est", "ARST": "heure d’été de l’Argentine", "NZDT": "heure d’été de la Nouvelle-Zélande", "EDT": "heure d’été de l’Est", "WIB": "heure de l’Ouest indonésien", "WEZ": "heure normale d’Europe de l’Ouest", "ACWST": "heure normale du centre-ouest de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "TMST": "heure d’été du Turkménistan", "COT": "heure normale de Colombie", "HNCU": "heure normale de Cuba", "UYT": "heure normale de l’Uruguay", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ART": "heure normale d’Argentine", "HKT": "heure normale de Hong Kong", "CHADT": "heure d’été des îles Chatham", "ChST": "heure des Chamorro", "CAT": "heure normale d’Afrique centrale", "HEPMX": "heure d’été du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "PDT": "heure d’été du Pacifique", "AEDT": "heure d’été de l’Est de l’Australie", "BOT": "heure de Bolivie", "WART": "heure normale de l’Ouest argentin", "SGT": "heure de Singapour", "HKST": "heure d’été de Hong Kong", "IST": "heure de l’Inde", "ACST": "heure normale du centre de l’Australie", "EST": "heure normale de l’Est nord-américain", "VET": "heure du Venezuela", "HAST": "heure normale d’Hawaii - Aléoutiennes", "AWST": "heure normale de l’Ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "HNEG": "heure normale de l’Est du Groenland", "WAT": "heure normale d’Afrique de l’Ouest", "OEZ": "heure normale d’Europe de l’Est", "COST": "heure d’été de Colombie", "AKST": "heure normale de l’Alaska", "AEST": "heure normale de l’Est de l’Australie", "JDT": "heure d’été du Japon", "∅∅∅": "heure d’été de l’Amazonie", "ACDT": "heure d’été du centre de l’Australie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AKDT": "heure d’été de l’Alaska", "HNOG": "heure normale de l’Ouest du Groenland", "WITA": "heure du Centre indonésien", "CLST": "heure d’été du Chili", "TMT": "heure normale du Turkménistan", "WIT": "heure de l’Est indonésien", "HNT": "heure normale de Terre-Neuve", "CLT": "heure normale du Chili", "GMT": "heure moyenne de Greenwich", "SRT": "heure du Suriname", "JST": "heure normale du Japon", "WARST": "heure d’été de l’Ouest argentin", "MDT": "heure d’été de Macao", "HNPMX": "heure normale du Pacifique mexicain", "CDT": "heure d’été du Centre", "WAST": "heure d’été d’Afrique de l’Ouest", "ECT": "heure de l’Équateur", "CST": "heure normale du centre nord-américain", "PST": "heure normale du Pacifique nord-américain", "HEEG": "heure d’été de l’Est du Groenland", "LHDT": "heure d’été de Lord Howe", "MESZ": "heure d’été d’Europe centrale", "EAT": "heure normale d’Afrique de l’Est", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "LHST": "heure normale de Lord Howe", "GFT": "heure de la Guyane française", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "GYT": "heure du Guyana", "HAT": "heure d’été de Terre-Neuve", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MEZ": "heure normale d’Europe centrale", "MST": "heure normale de Macao", "WESZ": "heure d’été d’Europe de l’Ouest", "CHAST": "heure normale des îles Chatham", "HECU": "heure d’été de Cuba", "ADT": "heure d’été de l’Atlantique", "MYT": "heure de la Malaisie", "UYST": "heure d’été de l’Uruguay", "HEOG": "heure d’été de l’Ouest du Groenland", "SAST": "heure normale d’Afrique méridionale"},
+ timezones: map[string]string{"UYST": "heure d’été de l’Uruguay", "HKST": "heure d’été de Hong Kong", "PST": "heure normale du Pacifique nord-américain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "OEZ": "heure normale d’Europe de l’Est", "ART": "heure normale d’Argentine", "EST": "heure normale de l’Est nord-américain", "HNEG": "heure normale de l’Est du Groenland", "GFT": "heure de la Guyane française", "WIB": "heure de l’Ouest indonésien", "LHST": "heure normale de Lord Howe", "HNCU": "heure normale de Cuba", "SGT": "heure de Singapour", "ACWST": "heure normale du centre-ouest de l’Australie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "∅∅∅": "heure d’été des Açores", "CHADT": "heure d’été des îles Chatham", "MYT": "heure de la Malaisie", "WESZ": "heure d’été d’Europe de l’Ouest", "GMT": "heure moyenne de Greenwich", "MST": "heure normale de Macao", "COT": "heure normale de Colombie", "GYT": "heure du Guyana", "JST": "heure normale du Japon", "HEOG": "heure d’été de l’Ouest du Groenland", "ACDT": "heure d’été du centre de l’Australie", "HEPMX": "heure d’été du Pacifique mexicain", "CST": "heure normale du centre nord-américain", "IST": "heure de l’Inde", "MEZ": "heure normale d’Europe centrale", "VET": "heure du Venezuela", "OESZ": "heure d’été d’Europe de l’Est", "WAST": "heure d’été d’Afrique de l’Ouest", "HECU": "heure d’été de Cuba", "EAT": "heure normale d’Afrique de l’Est", "CDT": "heure d’été du Centre", "TMST": "heure d’été du Turkménistan", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "SRT": "heure du Suriname", "HNOG": "heure normale de l’Ouest du Groenland", "TMT": "heure normale du Turkménistan", "WAT": "heure normale d’Afrique de l’Ouest", "HEEG": "heure d’été de l’Est du Groenland", "ChST": "heure des Chamorro", "JDT": "heure d’été du Japon", "WEZ": "heure normale d’Europe de l’Ouest", "WITA": "heure du Centre indonésien", "AKST": "heure normale de l’Alaska", "AEST": "heure normale de l’Est de l’Australie", "CAT": "heure normale d’Afrique centrale", "AWST": "heure normale de l’Ouest de l’Australie", "ECT": "heure de l’Équateur", "ARST": "heure d’été de l’Argentine", "HNPMX": "heure normale du Pacifique mexicain", "WART": "heure normale de l’Ouest argentin", "AST": "heure normale de l’Atlantique", "EDT": "heure d’été de l’Est", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "NZST": "heure normale de la Nouvelle-Zélande", "WIT": "heure de l’Est indonésien", "ADT": "heure d’été de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "AKDT": "heure d’été de l’Alaska", "LHDT": "heure d’été de Lord Howe", "UYT": "heure normale de l’Uruguay", "CHAST": "heure normale des îles Chatham", "MESZ": "heure d’été d’Europe centrale", "HKT": "heure normale de Hong Kong", "COST": "heure d’été de Colombie", "AEDT": "heure d’été de l’Est de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "BOT": "heure de Bolivie", "PDT": "heure d’été du Pacifique", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CLST": "heure d’été du Chili", "ACST": "heure normale du centre de l’Australie", "HAT": "heure d’été de Terre-Neuve", "SAST": "heure normale d’Afrique méridionale", "NZDT": "heure d’été de la Nouvelle-Zélande", "WARST": "heure d’été de l’Ouest argentin", "CLT": "heure normale du Chili", "MDT": "heure d’été de Macao", "BT": "heure du Bhoutan", "HADT": "heure d’été d’Hawaii - Aléoutiennes"},
}
}
diff --git a/fr_GA/fr_GA.go b/fr_GA/fr_GA.go
index 07534342..a1602bcd 100644
--- a/fr_GA/fr_GA.go
+++ b/fr_GA/fr_GA.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"OEZ": "heure normale d’Europe de l’Est", "WART": "heure normale de l’Ouest argentin", "∅∅∅": "heure d’été de l’Amazonie", "WAT": "heure normale d’Afrique de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "ART": "heure normale d’Argentine", "MEZ": "heure normale d’Europe centrale", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CLST": "heure d’été du Chili", "ECT": "heure de l’Équateur", "SGT": "heure de Singapour", "HNPMX": "heure normale du Pacifique mexicain", "UYST": "heure d’été de l’Uruguay", "SRT": "heure du Suriname", "HKT": "heure normale de Hong Kong", "WITA": "heure du Centre indonésien", "HNOG": "heure normale de l’Ouest du Groenland", "CHAST": "heure normale des îles Chatham", "WAST": "heure d’été d’Afrique de l’Ouest", "ADT": "heure d’été de l’Atlantique", "WIB": "heure de l’Ouest indonésien", "WIT": "heure de l’Est indonésien", "AEST": "heure normale de l’Est de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "HEEG": "heure d’été de l’Est du Groenland", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "CST": "heure normale du centre nord-américain", "MYT": "heure de la Malaisie", "AWDT": "heure d’été de l’Ouest de l’Australie", "JDT": "heure d’été du Japon", "HEOG": "heure d’été de l’Ouest du Groenland", "IST": "heure de l’Inde", "BT": "heure du Bhoutan", "WARST": "heure d’été de l’Ouest argentin", "HEPMX": "heure d’été du Pacifique mexicain", "MST": "heure normale de Macao", "CAT": "heure normale d’Afrique centrale", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "TMT": "heure normale du Turkménistan", "TMST": "heure d’été du Turkménistan", "COT": "heure normale de Colombie", "LHST": "heure normale de Lord Howe", "LHDT": "heure d’été de Lord Howe", "EDT": "heure d’été de l’Est", "AKST": "heure normale de l’Alaska", "CDT": "heure d’été du Centre", "ACWST": "heure normale du centre-ouest de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "JST": "heure normale du Japon", "SAST": "heure normale d’Afrique méridionale", "ACST": "heure normale du centre de l’Australie", "AST": "heure normale de l’Atlantique", "AWST": "heure normale de l’Ouest de l’Australie", "CHADT": "heure d’été des îles Chatham", "COST": "heure d’été de Colombie", "GYT": "heure du Guyana", "PST": "heure normale du Pacifique nord-américain", "HKST": "heure d’été de Hong Kong", "OESZ": "heure d’été d’Europe de l’Est", "EST": "heure normale de l’Est nord-américain", "ARST": "heure d’été de l’Argentine", "MESZ": "heure d’été d’Europe centrale", "EAT": "heure normale d’Afrique de l’Est", "ChST": "heure des Chamorro", "GMT": "heure moyenne de Greenwich", "AKDT": "heure d’été de l’Alaska", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WEZ": "heure normale d’Europe de l’Ouest", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "HNEG": "heure normale de l’Est du Groenland", "BOT": "heure de Bolivie", "HNCU": "heure normale de Cuba", "HECU": "heure d’été de Cuba", "PDT": "heure d’été du Pacifique", "WESZ": "heure d’été d’Europe de l’Ouest", "NZDT": "heure d’été de la Nouvelle-Zélande", "GFT": "heure de la Guyane française", "VET": "heure du Venezuela", "ACDT": "heure d’été du centre de l’Australie", "HAST": "heure normale d’Hawaii - Aléoutiennes", "MDT": "heure d’été de Macao", "UYT": "heure normale de l’Uruguay", "HNT": "heure normale de Terre-Neuve", "NZST": "heure normale de la Nouvelle-Zélande", "CLT": "heure normale du Chili"},
+ timezones: map[string]string{"CDT": "heure d’été du Centre", "WART": "heure normale de l’Ouest argentin", "WAST": "heure d’été d’Afrique de l’Ouest", "BT": "heure du Bhoutan", "WIB": "heure de l’Ouest indonésien", "AWST": "heure normale de l’Ouest de l’Australie", "CHADT": "heure d’été des îles Chatham", "NZST": "heure normale de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "HNT": "heure normale de Terre-Neuve", "AEST": "heure normale de l’Est de l’Australie", "HNCU": "heure normale de Cuba", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "ECT": "heure de l’Équateur", "EST": "heure normale de l’Est nord-américain", "HEEG": "heure d’été de l’Est du Groenland", "AKST": "heure normale de l’Alaska", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "OESZ": "heure d’été d’Europe de l’Est", "GMT": "heure moyenne de Greenwich", "HNOG": "heure normale de l’Ouest du Groenland", "EDT": "heure d’été de l’Est", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "WITA": "heure du Centre indonésien", "CHAST": "heure normale des îles Chatham", "OEZ": "heure normale d’Europe de l’Est", "AST": "heure normale de l’Atlantique", "MST": "heure normale de Macao", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "LHDT": "heure d’été de Lord Howe", "ChST": "heure des Chamorro", "JST": "heure normale du Japon", "IST": "heure de l’Inde", "WESZ": "heure d’été d’Europe de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "CST": "heure normale du centre nord-américain", "PST": "heure normale du Pacifique nord-américain", "BOT": "heure de Bolivie", "JDT": "heure d’été du Japon", "CLST": "heure d’été du Chili", "ADT": "heure d’été de l’Atlantique", "MDT": "heure d’été de Macao", "COT": "heure normale de Colombie", "SAST": "heure normale d’Afrique méridionale", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ACWST": "heure normale du centre-ouest de l’Australie", "HKST": "heure d’été de Hong Kong", "HEPMX": "heure d’été du Pacifique mexicain", "SRT": "heure du Suriname", "UYT": "heure normale de l’Uruguay", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "ACWDT": "heure d’été du centre-ouest de l’Australie", "WEZ": "heure normale d’Europe de l’Ouest", "ACDT": "heure d’été du centre de l’Australie", "GFT": "heure de la Guyane française", "AKDT": "heure d’été de l’Alaska", "EAT": "heure normale d’Afrique de l’Est", "NZDT": "heure d’été de la Nouvelle-Zélande", "MYT": "heure de la Malaisie", "ARST": "heure d’été de l’Argentine", "UYST": "heure d’été de l’Uruguay", "GYT": "heure du Guyana", "PDT": "heure d’été du Pacifique", "CAT": "heure normale d’Afrique centrale", "MEZ": "heure normale d’Europe centrale", "HNEG": "heure normale de l’Est du Groenland", "HECU": "heure d’été de Cuba", "WIT": "heure de l’Est indonésien", "AEDT": "heure d’été de l’Est de l’Australie", "SGT": "heure de Singapour", "MESZ": "heure d’été d’Europe centrale", "AWDT": "heure d’été de l’Ouest de l’Australie", "VET": "heure du Venezuela", "WARST": "heure d’été de l’Ouest argentin", "TMST": "heure d’été du Turkménistan", "ART": "heure normale d’Argentine", "WAT": "heure normale d’Afrique de l’Ouest", "ACST": "heure normale du centre de l’Australie", "TMT": "heure normale du Turkménistan", "COST": "heure d’été de Colombie", "∅∅∅": "heure d’été de l’Acre", "HEOG": "heure d’été de l’Ouest du Groenland", "HKT": "heure normale de Hong Kong", "LHST": "heure normale de Lord Howe", "HNPMX": "heure normale du Pacifique mexicain"},
}
}
diff --git a/fr_GF/fr_GF.go b/fr_GF/fr_GF.go
index 2ec45ebc..ca8393e0 100644
--- a/fr_GF/fr_GF.go
+++ b/fr_GF/fr_GF.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"WART": "heure normale de l’Ouest argentin", "HNCU": "heure normale de Cuba", "ART": "heure normale d’Argentine", "HKST": "heure d’été de Hong Kong", "AKDT": "heure d’été de l’Alaska", "WESZ": "heure d’été d’Europe de l’Ouest", "HKT": "heure normale de Hong Kong", "AWST": "heure normale de l’Ouest de l’Australie", "AST": "heure normale de l’Atlantique", "WIT": "heure de l’Est indonésien", "HNT": "heure normale de Terre-Neuve", "CST": "heure normale du centre nord-américain", "UYT": "heure normale de l’Uruguay", "WEZ": "heure normale d’Europe de l’Ouest", "SAST": "heure normale d’Afrique méridionale", "CLST": "heure d’été du Chili", "HEEG": "heure d’été de l’Est du Groenland", "WAST": "heure d’été d’Afrique de l’Ouest", "ACST": "heure normale du centre de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "HNPMX": "heure normale du Pacifique mexicain", "HNOG": "heure normale de l’Ouest du Groenland", "OEZ": "heure normale d’Europe de l’Est", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZDT": "heure d’été de la Nouvelle-Zélande", "CHAST": "heure normale des îles Chatham", "HNEG": "heure normale de l’Est du Groenland", "UYST": "heure d’été de l’Uruguay", "WIB": "heure de l’Ouest indonésien", "VET": "heure du Venezuela", "WITA": "heure du Centre indonésien", "GFT": "heure de la Guyane française", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "COT": "heure normale de Colombie", "GYT": "heure du Guyana", "AWDT": "heure d’été de l’Ouest de l’Australie", "LHST": "heure normale de Lord Howe", "JST": "heure normale du Japon", "CLT": "heure normale du Chili", "MYT": "heure de la Malaisie", "IST": "heure de l’Inde", "AKST": "heure normale de l’Alaska", "PDT": "heure d’été du Pacifique", "ACWDT": "heure d’été du centre-ouest de l’Australie", "∅∅∅": "heure d’été de l’Amazonie", "JDT": "heure d’été du Japon", "CAT": "heure normale d’Afrique centrale", "BT": "heure du Bhoutan", "BOT": "heure de Bolivie", "ACDT": "heure d’été du centre de l’Australie", "SRT": "heure du Suriname", "ACWST": "heure normale du centre-ouest de l’Australie", "EDT": "heure d’été de l’Est", "MST": "heure normale de Macao", "AEST": "heure normale de l’Est de l’Australie", "ECT": "heure de l’Équateur", "COST": "heure d’été de Colombie", "HECU": "heure d’été de Cuba", "HEPMX": "heure d’été du Pacifique mexicain", "PST": "heure normale du Pacifique nord-américain", "MEZ": "heure normale d’Europe centrale", "SGT": "heure de Singapour", "CDT": "heure d’été du Centre", "ADT": "heure d’été de l’Atlantique", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EST": "heure normale de l’Est nord-américain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "MESZ": "heure d’été d’Europe centrale", "TMST": "heure d’été du Turkménistan", "ChST": "heure des Chamorro", "WAT": "heure normale d’Afrique de l’Ouest", "HEOG": "heure d’été de l’Ouest du Groenland", "ARST": "heure d’été de l’Argentine", "AEDT": "heure d’été de l’Est de l’Australie", "CHADT": "heure d’été des îles Chatham", "LHDT": "heure d’été de Lord Howe", "WARST": "heure d’été de l’Ouest argentin", "HAT": "heure d’été de Terre-Neuve", "GMT": "heure moyenne de Greenwich", "MDT": "heure d’été de Macao", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "TMT": "heure normale du Turkménistan", "OESZ": "heure d’été d’Europe de l’Est"},
+ timezones: map[string]string{"MST": "heure normale de Macao", "ARST": "heure d’été de l’Argentine", "GFT": "heure de la Guyane française", "ChST": "heure des Chamorro", "PST": "heure normale du Pacifique nord-américain", "∅∅∅": "heure d’été de l’Acre", "UYST": "heure d’été de l’Uruguay", "HAST": "heure normale d’Hawaii - Aléoutiennes", "WART": "heure normale de l’Ouest argentin", "WEZ": "heure normale d’Europe de l’Ouest", "ACDT": "heure d’été du centre de l’Australie", "SAST": "heure normale d’Afrique méridionale", "PDT": "heure d’été du Pacifique", "WARST": "heure d’été de l’Ouest argentin", "AST": "heure normale de l’Atlantique", "OEZ": "heure normale d’Europe de l’Est", "ART": "heure normale d’Argentine", "AEDT": "heure d’été de l’Est de l’Australie", "CAT": "heure normale d’Afrique centrale", "GMT": "heure moyenne de Greenwich", "CLT": "heure normale du Chili", "CLST": "heure d’été du Chili", "HNOG": "heure normale de l’Ouest du Groenland", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "GYT": "heure du Guyana", "EST": "heure normale de l’Est nord-américain", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "ACST": "heure normale du centre de l’Australie", "UYT": "heure normale de l’Uruguay", "IST": "heure de l’Inde", "MYT": "heure de la Malaisie", "WESZ": "heure d’été d’Europe de l’Ouest", "WAT": "heure normale d’Afrique de l’Ouest", "HKT": "heure normale de Hong Kong", "COST": "heure d’été de Colombie", "WIB": "heure de l’Ouest indonésien", "ADT": "heure d’été de l’Atlantique", "AKDT": "heure d’été de l’Alaska", "HNCU": "heure normale de Cuba", "NZST": "heure normale de la Nouvelle-Zélande", "HEOG": "heure d’été de l’Ouest du Groenland", "OESZ": "heure d’été d’Europe de l’Est", "COT": "heure normale de Colombie", "HNT": "heure normale de Terre-Neuve", "HNEG": "heure normale de l’Est du Groenland", "AEST": "heure normale de l’Est de l’Australie", "LHDT": "heure d’été de Lord Howe", "HECU": "heure d’été de Cuba", "VET": "heure du Venezuela", "EDT": "heure d’été de l’Est", "WITA": "heure du Centre indonésien", "AKST": "heure normale de l’Alaska", "LHST": "heure normale de Lord Howe", "WIT": "heure de l’Est indonésien", "CHAST": "heure normale des îles Chatham", "MESZ": "heure d’été d’Europe centrale", "JST": "heure normale du Japon", "TMST": "heure d’été du Turkménistan", "SRT": "heure du Suriname", "AWST": "heure normale de l’Ouest de l’Australie", "ECT": "heure de l’Équateur", "WAST": "heure d’été d’Afrique de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HNPMX": "heure normale du Pacifique mexicain", "CST": "heure normale du centre nord-américain", "BOT": "heure de Bolivie", "TMT": "heure normale du Turkménistan", "HKST": "heure d’été de Hong Kong", "BT": "heure du Bhoutan", "AWDT": "heure d’été de l’Ouest de l’Australie", "CHADT": "heure d’été des îles Chatham", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACWST": "heure normale du centre-ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "EAT": "heure normale d’Afrique de l’Est", "SGT": "heure de Singapour", "ACWDT": "heure d’été du centre-ouest de l’Australie", "JDT": "heure d’été du Japon", "MDT": "heure d’été de Macao", "HAT": "heure d’été de Terre-Neuve", "HEEG": "heure d’été de l’Est du Groenland", "HEPMX": "heure d’été du Pacifique mexicain", "CDT": "heure d’été du Centre", "NZDT": "heure d’été de la Nouvelle-Zélande"},
}
}
diff --git a/fr_GN/fr_GN.go b/fr_GN/fr_GN.go
index ebb8000c..acf12679 100644
--- a/fr_GN/fr_GN.go
+++ b/fr_GN/fr_GN.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"UYST": "heure d’été de l’Uruguay", "PST": "heure normale du Pacifique nord-américain", "LHDT": "heure d’été de Lord Howe", "NZDT": "heure d’été de la Nouvelle-Zélande", "OEZ": "heure normale d’Europe de l’Est", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "SGT": "heure de Singapour", "MST": "heure normale de Macao", "ECT": "heure de l’Équateur", "SAST": "heure normale d’Afrique méridionale", "HECU": "heure d’été de Cuba", "MDT": "heure d’été de Macao", "UYT": "heure normale de l’Uruguay", "ARST": "heure d’été de l’Argentine", "HNOG": "heure normale de l’Ouest du Groenland", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "IST": "heure de l’Inde", "OESZ": "heure d’été d’Europe de l’Est", "WARST": "heure d’été de l’Ouest argentin", "HNT": "heure normale de Terre-Neuve", "ART": "heure normale d’Argentine", "HEPMX": "heure d’été du Pacifique mexicain", "AKDT": "heure d’été de l’Alaska", "CLST": "heure d’été du Chili", "WAT": "heure normale d’Afrique de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "WITA": "heure du Centre indonésien", "MESZ": "heure d’été d’Europe centrale", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ACWST": "heure normale du centre-ouest de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "AEST": "heure normale de l’Est de l’Australie", "JDT": "heure d’été du Japon", "HNCU": "heure normale de Cuba", "EDT": "heure d’été de l’Est", "ADT": "heure d’été de l’Atlantique", "HNEG": "heure normale de l’Est du Groenland", "GFT": "heure de la Guyane française", "TMST": "heure d’été du Turkménistan", "LHST": "heure normale de Lord Howe", "CHADT": "heure d’été des îles Chatham", "TMT": "heure normale du Turkménistan", "WAST": "heure d’été d’Afrique de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "SRT": "heure du Suriname", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "AEDT": "heure d’été de l’Est de l’Australie", "ACST": "heure normale du centre de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "CAT": "heure normale d’Afrique centrale", "WIB": "heure de l’Ouest indonésien", "VET": "heure du Venezuela", "HEOG": "heure d’été de l’Ouest du Groenland", "BT": "heure du Bhoutan", "WESZ": "heure d’été d’Europe de l’Ouest", "PDT": "heure d’été du Pacifique", "CLT": "heure normale du Chili", "ChST": "heure des Chamorro", "∅∅∅": "heure d’été des Açores", "CDT": "heure d’été du Centre", "MYT": "heure de la Malaisie", "ACDT": "heure d’été du centre de l’Australie", "CHAST": "heure normale des îles Chatham", "EST": "heure normale de l’Est nord-américain", "AKST": "heure normale de l’Alaska", "GYT": "heure du Guyana", "MEZ": "heure normale d’Europe centrale", "HEEG": "heure d’été de l’Est du Groenland", "COT": "heure normale de Colombie", "GMT": "heure moyenne de Greenwich", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AWST": "heure normale de l’Ouest de l’Australie", "HKT": "heure normale de Hong Kong", "HKST": "heure d’été de Hong Kong", "JST": "heure normale du Japon", "HNPMX": "heure normale du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WIT": "heure de l’Est indonésien", "WEZ": "heure normale d’Europe de l’Ouest", "NZST": "heure normale de la Nouvelle-Zélande", "BOT": "heure de Bolivie", "COST": "heure d’été de Colombie", "WART": "heure normale de l’Ouest argentin", "CST": "heure normale du centre nord-américain"},
+ timezones: map[string]string{"CDT": "heure d’été du Centre", "MST": "heure normale de Macao", "WAT": "heure normale d’Afrique de l’Ouest", "ACST": "heure normale du centre de l’Australie", "HNPMX": "heure normale du Pacifique mexicain", "SAST": "heure normale d’Afrique méridionale", "MEZ": "heure normale d’Europe centrale", "OESZ": "heure d’été d’Europe de l’Est", "WAST": "heure d’été d’Afrique de l’Ouest", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HNEG": "heure normale de l’Est du Groenland", "AEDT": "heure d’été de l’Est de l’Australie", "HNCU": "heure normale de Cuba", "AWDT": "heure d’été de l’Ouest de l’Australie", "ECT": "heure de l’Équateur", "JST": "heure normale du Japon", "ADT": "heure d’été de l’Atlantique", "AEST": "heure normale de l’Est de l’Australie", "WITA": "heure du Centre indonésien", "HECU": "heure d’été de Cuba", "AWST": "heure normale de l’Ouest de l’Australie", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HKST": "heure d’été de Hong Kong", "BT": "heure du Bhoutan", "ACDT": "heure d’été du centre de l’Australie", "GFT": "heure de la Guyane française", "∅∅∅": "heure d’été de Brasilia", "WEZ": "heure normale d’Europe de l’Ouest", "EDT": "heure d’été de l’Est", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "GYT": "heure du Guyana", "CHADT": "heure d’été des îles Chatham", "HKT": "heure normale de Hong Kong", "EST": "heure normale de l’Est nord-américain", "HEEG": "heure d’été de l’Est du Groenland", "HNOG": "heure normale de l’Ouest du Groenland", "HAST": "heure normale d’Hawaii - Aléoutiennes", "CAT": "heure normale d’Afrique centrale", "VET": "heure du Venezuela", "CLT": "heure normale du Chili", "WIB": "heure de l’Ouest indonésien", "CHAST": "heure normale des îles Chatham", "JDT": "heure d’été du Japon", "AST": "heure normale de l’Atlantique", "HAT": "heure d’été de Terre-Neuve", "SRT": "heure du Suriname", "ACWDT": "heure d’été du centre-ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "MESZ": "heure d’été d’Europe centrale", "ARST": "heure d’été de l’Argentine", "LHDT": "heure d’été de Lord Howe", "IST": "heure de l’Inde", "COST": "heure d’été de Colombie", "ChST": "heure des Chamorro", "UYST": "heure d’été de l’Uruguay", "HNT": "heure normale de Terre-Neuve", "AKST": "heure normale de l’Alaska", "EAT": "heure normale d’Afrique de l’Est", "CLST": "heure d’été du Chili", "TMT": "heure normale du Turkménistan", "ART": "heure normale d’Argentine", "COT": "heure normale de Colombie", "UYT": "heure normale de l’Uruguay", "BOT": "heure de Bolivie", "ACWST": "heure normale du centre-ouest de l’Australie", "MYT": "heure de la Malaisie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "AKDT": "heure d’été de l’Alaska", "LHST": "heure normale de Lord Howe", "PDT": "heure d’été du Pacifique", "WESZ": "heure d’été d’Europe de l’Ouest", "OEZ": "heure normale d’Europe de l’Est", "MDT": "heure d’été de Macao", "CST": "heure normale du centre nord-américain", "GMT": "heure moyenne de Greenwich", "WART": "heure normale de l’Ouest argentin", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "NZDT": "heure d’été de la Nouvelle-Zélande", "WARST": "heure d’été de l’Ouest argentin", "HEOG": "heure d’été de l’Ouest du Groenland", "TMST": "heure d’été du Turkménistan", "WIT": "heure de l’Est indonésien", "SGT": "heure de Singapour", "PST": "heure normale du Pacifique nord-américain", "HEPMX": "heure d’été du Pacifique mexicain"},
}
}
diff --git a/fr_GP/fr_GP.go b/fr_GP/fr_GP.go
index 59c8e5f6..32120f05 100644
--- a/fr_GP/fr_GP.go
+++ b/fr_GP/fr_GP.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"PST": "heure normale du Pacifique nord-américain", "OEZ": "heure normale d’Europe de l’Est", "CST": "heure normale du centre nord-américain", "CDT": "heure d’été du Centre", "MYT": "heure de la Malaisie", "WITA": "heure du Centre indonésien", "MESZ": "heure d’été d’Europe centrale", "CAT": "heure normale d’Afrique centrale", "BOT": "heure de Bolivie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AKST": "heure normale de l’Alaska", "AKDT": "heure d’été de l’Alaska", "GFT": "heure de la Guyane française", "TMT": "heure normale du Turkménistan", "ECT": "heure de l’Équateur", "COT": "heure normale de Colombie", "VET": "heure du Venezuela", "ART": "heure normale d’Argentine", "EAT": "heure normale d’Afrique de l’Est", "HEPMX": "heure d’été du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "ChST": "heure des Chamorro", "ACDT": "heure d’été du centre de l’Australie", "SGT": "heure de Singapour", "WIB": "heure de l’Ouest indonésien", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HAT": "heure d’été de Terre-Neuve", "ARST": "heure d’été de l’Argentine", "WEZ": "heure normale d’Europe de l’Ouest", "HNPMX": "heure normale du Pacifique mexicain", "HEEG": "heure d’été de l’Est du Groenland", "PDT": "heure d’été du Pacifique", "WESZ": "heure d’été d’Europe de l’Ouest", "AWST": "heure normale de l’Ouest de l’Australie", "CHADT": "heure d’été des îles Chatham", "SAST": "heure normale d’Afrique méridionale", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HKST": "heure d’été de Hong Kong", "AEDT": "heure d’été de l’Est de l’Australie", "MEZ": "heure normale d’Europe centrale", "CLT": "heure normale du Chili", "ACST": "heure normale du centre de l’Australie", "EST": "heure normale de l’Est nord-américain", "GYT": "heure du Guyana", "MST": "heure normale des Rocheuses", "JDT": "heure d’été du Japon", "HNEG": "heure normale de l’Est du Groenland", "WAST": "heure d’été d’Afrique de l’Ouest", "COST": "heure d’été de Colombie", "ACWST": "heure normale du centre-ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "LHST": "heure normale de Lord Howe", "ADT": "heure d’été de l’Atlantique", "WIT": "heure de l’Est indonésien", "HNOG": "heure normale de l’Ouest du Groenland", "HEOG": "heure d’été de l’Ouest du Groenland", "EDT": "heure d’été de l’Est", "AEST": "heure normale de l’Est de l’Australie", "CHAST": "heure normale des îles Chatham", "JST": "heure normale du Japon", "IST": "heure de l’Inde", "TMST": "heure d’été du Turkménistan", "WAT": "heure normale d’Afrique de l’Ouest", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HNT": "heure normale de Terre-Neuve", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZDT": "heure d’été de la Nouvelle-Zélande", "HECU": "heure d’été de Cuba", "MDT": "heure d’été des Rocheuses", "SRT": "heure du Suriname", "AWDT": "heure d’été de l’Ouest de l’Australie", "LHDT": "heure d’été de Lord Howe", "HNCU": "heure normale de Cuba", "UYT": "heure normale de l’Uruguay", "HAST": "heure normale d’Hawaii - Aléoutiennes", "∅∅∅": "heure d’été de l’Amazonie", "OESZ": "heure d’été d’Europe de l’Est", "WARST": "heure d’été de l’Ouest argentin", "GMT": "heure moyenne de Greenwich", "BT": "heure du Bhoutan", "HKT": "heure normale de Hong Kong", "CLST": "heure d’été du Chili", "WART": "heure normale de l’Ouest argentin", "UYST": "heure d’été de l’Uruguay"},
+ timezones: map[string]string{"ACWST": "heure normale du centre-ouest de l’Australie", "GYT": "heure du Guyana", "EAT": "heure normale d’Afrique de l’Est", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "UYST": "heure d’été de l’Uruguay", "CST": "heure normale du centre nord-américain", "WIT": "heure de l’Est indonésien", "ART": "heure normale d’Argentine", "AKDT": "heure d’été de l’Alaska", "HNT": "heure normale de Terre-Neuve", "BOT": "heure de Bolivie", "ADT": "heure d’été de l’Atlantique", "MDT": "heure d’été de Macao", "CDT": "heure d’été du Centre", "AWST": "heure normale de l’Ouest de l’Australie", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "CAT": "heure normale d’Afrique centrale", "LHST": "heure normale de Lord Howe", "HNCU": "heure normale de Cuba", "ChST": "heure des Chamorro", "CHADT": "heure d’été des îles Chatham", "ACWDT": "heure d’été du centre-ouest de l’Australie", "WAT": "heure normale d’Afrique de l’Ouest", "BT": "heure du Bhoutan", "OEZ": "heure normale d’Europe de l’Est", "MST": "heure normale de Macao", "UYT": "heure normale de l’Uruguay", "CHAST": "heure normale des îles Chatham", "HAST": "heure normale d’Hawaii - Aléoutiennes", "WARST": "heure d’été de l’Ouest argentin", "HNOG": "heure normale de l’Ouest du Groenland", "HEPMX": "heure d’été du Pacifique mexicain", "SRT": "heure du Suriname", "NZDT": "heure d’été de la Nouvelle-Zélande", "IST": "heure de l’Inde", "GMT": "heure moyenne de Greenwich", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "CLST": "heure d’été du Chili", "HKST": "heure d’été de Hong Kong", "AKST": "heure normale de l’Alaska", "ECT": "heure de l’Équateur", "JST": "heure normale du Japon", "WART": "heure normale de l’Ouest argentin", "WESZ": "heure d’été d’Europe de l’Ouest", "MYT": "heure de la Malaisie", "CLT": "heure normale du Chili", "ARST": "heure d’été de l’Argentine", "HEEG": "heure d’été de l’Est du Groenland", "∅∅∅": "heure d’été de l’Acre", "MESZ": "heure d’été d’Europe centrale", "WEZ": "heure normale d’Europe de l’Ouest", "SGT": "heure de Singapour", "PST": "heure normale du Pacifique nord-américain", "GFT": "heure de la Guyane française", "HECU": "heure d’été de Cuba", "SAST": "heure normale d’Afrique méridionale", "AWDT": "heure d’été de l’Ouest de l’Australie", "HNEG": "heure normale de l’Est du Groenland", "HAT": "heure d’été de Terre-Neuve", "EST": "heure normale de l’Est nord-américain", "ACST": "heure normale du centre de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "WITA": "heure du Centre indonésien", "MEZ": "heure normale d’Europe centrale", "HKT": "heure normale de Hong Kong", "WAST": "heure d’été d’Afrique de l’Ouest", "EDT": "heure d’été de l’Est", "LHDT": "heure d’été de Lord Howe", "WIB": "heure de l’Ouest indonésien", "AST": "heure normale de l’Atlantique", "OESZ": "heure d’été d’Europe de l’Est", "HEOG": "heure d’été de l’Ouest du Groenland", "AEST": "heure normale de l’Est de l’Australie", "PDT": "heure d’été du Pacifique", "JDT": "heure d’été du Japon", "VET": "heure du Venezuela", "HNPMX": "heure normale du Pacifique mexicain", "TMST": "heure d’été du Turkménistan", "COT": "heure normale de Colombie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "TMT": "heure normale du Turkménistan", "COST": "heure d’été de Colombie"},
}
}
diff --git a/fr_GQ/fr_GQ.go b/fr_GQ/fr_GQ.go
index d7f1d0a0..1d1c7ab5 100644
--- a/fr_GQ/fr_GQ.go
+++ b/fr_GQ/fr_GQ.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"HNPM": "heure normale de Saint-Pierre-et-Miquelon", "COST": "heure d’été de Colombie", "MDT": "heure d’été de Macao", "HNPMX": "heure normale du Pacifique mexicain", "WIT": "heure de l’Est indonésien", "PDT": "heure d’été du Pacifique", "HKT": "heure normale de Hong Kong", "WAST": "heure d’été d’Afrique de l’Ouest", "OESZ": "heure d’été d’Europe de l’Est", "EDT": "heure d’été de l’Est", "HEPMX": "heure d’été du Pacifique mexicain", "WIB": "heure de l’Ouest indonésien", "VET": "heure du Venezuela", "HEEG": "heure d’été de l’Est du Groenland", "MYT": "heure de la Malaisie", "HNOG": "heure normale de l’Ouest du Groenland", "ACDT": "heure d’été du centre de l’Australie", "WAT": "heure normale d’Afrique de l’Ouest", "HNT": "heure normale de Terre-Neuve", "SAST": "heure normale d’Afrique méridionale", "UYST": "heure d’été de l’Uruguay", "CHADT": "heure d’été des îles Chatham", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "UYT": "heure normale de l’Uruguay", "HAT": "heure d’été de Terre-Neuve", "JST": "heure normale du Japon", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "WART": "heure normale de l’Ouest argentin", "GYT": "heure du Guyana", "LHST": "heure normale de Lord Howe", "IST": "heure de l’Inde", "GFT": "heure de la Guyane française", "CAT": "heure normale d’Afrique centrale", "MESZ": "heure d’été d’Europe centrale", "EAT": "heure normale d’Afrique de l’Est", "AST": "heure normale de l’Atlantique", "SRT": "heure du Suriname", "WEZ": "heure normale d’Europe de l’Ouest", "AEDT": "heure d’été de l’Est de l’Australie", "MEZ": "heure normale d’Europe centrale", "OEZ": "heure normale d’Europe de l’Est", "HNCU": "heure normale de Cuba", "ACWST": "heure normale du centre-ouest de l’Australie", "ARST": "heure d’été de l’Argentine", "CLT": "heure normale du Chili", "TMST": "heure d’été du Turkménistan", "ACST": "heure normale du centre de l’Australie", "ADT": "heure d’été de l’Atlantique", "ART": "heure normale d’Argentine", "GMT": "heure moyenne de Greenwich", "HECU": "heure d’été de Cuba", "HEOG": "heure d’été de l’Ouest du Groenland", "AWST": "heure normale de l’Ouest de l’Australie", "ECT": "heure de l’Équateur", "SGT": "heure de Singapour", "MST": "heure normale de Macao", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ACWDT": "heure d’été du centre-ouest de l’Australie", "BOT": "heure de Bolivie", "WARST": "heure d’été de l’Ouest argentin", "WITA": "heure du Centre indonésien", "CLST": "heure d’été du Chili", "ChST": "heure des Chamorro", "EST": "heure normale de l’Est nord-américain", "AKST": "heure normale de l’Alaska", "AKDT": "heure d’été de l’Alaska", "WESZ": "heure d’été d’Europe de l’Ouest", "AEST": "heure normale de l’Est de l’Australie", "TMT": "heure normale du Turkménistan", "COT": "heure normale de Colombie", "CDT": "heure d’été du Centre", "BT": "heure du Bhoutan", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "∅∅∅": "heure d’été de l’Amazonie", "JDT": "heure d’été du Japon", "CST": "heure normale du centre nord-américain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "PST": "heure normale du Pacifique nord-américain", "HKST": "heure d’été de Hong Kong", "LHDT": "heure d’été de Lord Howe", "AWDT": "heure d’été de l’Ouest de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "CHAST": "heure normale des îles Chatham", "HNEG": "heure normale de l’Est du Groenland"},
+ timezones: map[string]string{"UYST": "heure d’été de l’Uruguay", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "AWDT": "heure d’été de l’Ouest de l’Australie", "IST": "heure de l’Inde", "ACDT": "heure d’été du centre de l’Australie", "COT": "heure normale de Colombie", "HAT": "heure d’été de Terre-Neuve", "EST": "heure normale de l’Est nord-américain", "ACST": "heure normale du centre de l’Australie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HNEG": "heure normale de l’Est du Groenland", "SGT": "heure de Singapour", "VET": "heure du Venezuela", "WEZ": "heure normale d’Europe de l’Ouest", "ART": "heure normale d’Argentine", "GFT": "heure de la Guyane française", "SAST": "heure normale d’Afrique méridionale", "LHST": "heure normale de Lord Howe", "GYT": "heure du Guyana", "GMT": "heure moyenne de Greenwich", "HKT": "heure normale de Hong Kong", "MEZ": "heure normale d’Europe centrale", "OESZ": "heure d’été d’Europe de l’Est", "MDT": "heure d’été de Macao", "AEST": "heure normale de l’Est de l’Australie", "MST": "heure normale de Macao", "CHADT": "heure d’été des îles Chatham", "PDT": "heure d’été du Pacifique", "ACWST": "heure normale du centre-ouest de l’Australie", "WARST": "heure d’été de l’Ouest argentin", "BOT": "heure de Bolivie", "WESZ": "heure d’été d’Europe de l’Ouest", "WAT": "heure normale d’Afrique de l’Ouest", "HNT": "heure normale de Terre-Neuve", "AKST": "heure normale de l’Alaska", "ChST": "heure des Chamorro", "WIT": "heure de l’Est indonésien", "CAT": "heure normale d’Afrique centrale", "CLT": "heure normale du Chili", "MYT": "heure de la Malaisie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HEOG": "heure d’été de l’Ouest du Groenland", "SRT": "heure du Suriname", "WIB": "heure de l’Ouest indonésien", "ARST": "heure d’été de l’Argentine", "WITA": "heure du Centre indonésien", "LHDT": "heure d’été de Lord Howe", "HECU": "heure d’été de Cuba", "HKST": "heure d’été de Hong Kong", "HEEG": "heure d’été de l’Est du Groenland", "AKDT": "heure d’été de l’Alaska", "HNCU": "heure normale de Cuba", "CLST": "heure d’été du Chili", "HNOG": "heure normale de l’Ouest du Groenland", "TMT": "heure normale du Turkménistan", "TMST": "heure d’été du Turkménistan", "AST": "heure normale de l’Atlantique", "ADT": "heure d’été de l’Atlantique", "WAST": "heure d’été d’Afrique de l’Ouest", "BT": "heure du Bhoutan", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ECT": "heure de l’Équateur", "∅∅∅": "heure d’été de l’Amazonie", "MESZ": "heure d’été d’Europe centrale", "WART": "heure normale de l’Ouest argentin", "COST": "heure d’été de Colombie", "UYT": "heure normale de l’Uruguay", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HNPMX": "heure normale du Pacifique mexicain", "CST": "heure normale du centre nord-américain", "PST": "heure normale du Pacifique nord-américain", "JST": "heure normale du Japon", "OEZ": "heure normale d’Europe de l’Est", "EDT": "heure d’été de l’Est", "CHAST": "heure normale des îles Chatham", "EAT": "heure normale d’Afrique de l’Est", "CDT": "heure d’été du Centre", "NZST": "heure normale de la Nouvelle-Zélande", "NZDT": "heure d’été de la Nouvelle-Zélande", "JDT": "heure d’été du Japon", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "HEPMX": "heure d’été du Pacifique mexicain", "AWST": "heure normale de l’Ouest de l’Australie"},
}
}
diff --git a/fr_HT/fr_HT.go b/fr_HT/fr_HT.go
index 5984bec2..8c6d68eb 100644
--- a/fr_HT/fr_HT.go
+++ b/fr_HT/fr_HT.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"GMT": "heure moyenne de Greenwich", "VET": "heure du Venezuela", "HNOG": "heure normale de l’Ouest du Groenland", "WAST": "heure d’été d’Afrique de l’Ouest", "AKST": "heure normale de l’Alaska", "WIT": "heure de l’Est indonésien", "WESZ": "heure d’été d’Europe de l’Ouest", "ARST": "heure d’été de l’Argentine", "CHAST": "heure normale des îles Chatham", "WAT": "heure normale d’Afrique de l’Ouest", "COST": "heure d’été de Colombie", "EDT": "heure d’été de l’Est", "CDT": "heure d’été du Centre", "ADT": "heure d’été de l’Atlantique", "HAT": "heure d’été de Terre-Neuve", "PST": "heure normale du Pacifique nord-américain", "CLST": "heure d’été du Chili", "BOT": "heure de Bolivie", "EAT": "heure normale d’Afrique de l’Est", "SRT": "heure du Suriname", "HNT": "heure normale de Terre-Neuve", "LHST": "heure normale de Lord Howe", "CAT": "heure normale d’Afrique centrale", "MYT": "heure de la Malaisie", "HKT": "heure normale de Hong Kong", "ChST": "heure des Chamorro", "CST": "heure normale du centre nord-américain", "WIB": "heure de l’Ouest indonésien", "HAST": "heure normale d’Hawaii - Aléoutiennes", "PDT": "heure d’été du Pacifique", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "UYST": "heure d’été de l’Uruguay", "MESZ": "heure d’été d’Europe centrale", "ACST": "heure normale du centre de l’Australie", "WARST": "heure d’été de l’Ouest argentin", "HECU": "heure d’été de Cuba", "AKDT": "heure d’été de l’Alaska", "UYT": "heure normale de l’Uruguay", "ACWST": "heure normale du centre-ouest de l’Australie", "CLT": "heure normale du Chili", "WEZ": "heure normale d’Europe de l’Ouest", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "GFT": "heure de la Guyane française", "SGT": "heure de Singapour", "MST": "heure normale de Macao", "EST": "heure normale de l’Est nord-américain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "BT": "heure du Bhoutan", "OESZ": "heure d’été d’Europe de l’Est", "ECT": "heure de l’Équateur", "WART": "heure normale de l’Ouest argentin", "∅∅∅": "heure d’été des Açores", "HEEG": "heure d’été de l’Est du Groenland", "MEZ": "heure normale d’Europe centrale", "IST": "heure de l’Inde", "SAST": "heure normale d’Afrique méridionale", "MDT": "heure d’été de Macao", "HKST": "heure d’été de Hong Kong", "WITA": "heure du Centre indonésien", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZDT": "heure d’été de la Nouvelle-Zélande", "JDT": "heure d’été du Japon", "HNEG": "heure normale de l’Est du Groenland", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HNCU": "heure normale de Cuba", "GYT": "heure du Guyana", "ART": "heure normale d’Argentine", "AWST": "heure normale de l’Ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "TMST": "heure d’été du Turkménistan", "OEZ": "heure normale d’Europe de l’Est", "HNPMX": "heure normale du Pacifique mexicain", "HEPMX": "heure d’été du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "LHDT": "heure d’été de Lord Howe", "TMT": "heure normale du Turkménistan", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AEST": "heure normale de l’Est de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "CHADT": "heure d’été des îles Chatham", "JST": "heure normale du Japon", "HEOG": "heure d’été de l’Ouest du Groenland", "AWDT": "heure d’été de l’Ouest de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "COT": "heure normale de Colombie"},
+ timezones: map[string]string{"MESZ": "heure d’été d’Europe centrale", "ACST": "heure normale du centre de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "HNCU": "heure normale de Cuba", "AKST": "heure normale de l’Alaska", "SAST": "heure normale d’Afrique méridionale", "AWST": "heure normale de l’Ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "VET": "heure du Venezuela", "WART": "heure normale de l’Ouest argentin", "AKDT": "heure d’été de l’Alaska", "HNPMX": "heure normale du Pacifique mexicain", "WARST": "heure d’été de l’Ouest argentin", "SRT": "heure du Suriname", "CST": "heure normale du centre nord-américain", "ECT": "heure de l’Équateur", "HNOG": "heure normale de l’Ouest du Groenland", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HNEG": "heure normale de l’Est du Groenland", "AEST": "heure normale de l’Est de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "CHAST": "heure normale des îles Chatham", "WEZ": "heure normale d’Europe de l’Ouest", "ARST": "heure d’été de l’Argentine", "LHST": "heure normale de Lord Howe", "CDT": "heure d’été du Centre", "CHADT": "heure d’été des îles Chatham", "GYT": "heure du Guyana", "EAT": "heure normale d’Afrique de l’Est", "AWDT": "heure d’été de l’Ouest de l’Australie", "HAST": "heure normale d’Hawaii - Aléoutiennes", "CAT": "heure normale d’Afrique centrale", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CLST": "heure d’été du Chili", "TMT": "heure normale du Turkménistan", "WAT": "heure normale d’Afrique de l’Ouest", "ChST": "heure des Chamorro", "PDT": "heure d’été du Pacifique", "ACWST": "heure normale du centre-ouest de l’Australie", "HEOG": "heure d’été de l’Ouest du Groenland", "ADT": "heure d’été de l’Atlantique", "MYT": "heure de la Malaisie", "MDT": "heure d’été de Macao", "WAST": "heure d’été d’Afrique de l’Ouest", "WIT": "heure de l’Est indonésien", "∅∅∅": "heure d’été de l’Amazonie", "JDT": "heure d’été du Japon", "OEZ": "heure normale d’Europe de l’Est", "COT": "heure normale de Colombie", "UYT": "heure normale de l’Uruguay", "SGT": "heure de Singapour", "EDT": "heure d’été de l’Est", "HKST": "heure d’été de Hong Kong", "COST": "heure d’été de Colombie", "HNT": "heure normale de Terre-Neuve", "HEPMX": "heure d’été du Pacifique mexicain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "EST": "heure normale de l’Est nord-américain", "BT": "heure du Bhoutan", "HAT": "heure d’été de Terre-Neuve", "GFT": "heure de la Guyane française", "IST": "heure de l’Inde", "NZDT": "heure d’été de la Nouvelle-Zélande", "AST": "heure normale de l’Atlantique", "ART": "heure normale d’Argentine", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "UYST": "heure d’été de l’Uruguay", "LHDT": "heure d’été de Lord Howe", "WIB": "heure de l’Ouest indonésien", "BOT": "heure de Bolivie", "JST": "heure normale du Japon", "WESZ": "heure d’été d’Europe de l’Ouest", "TMST": "heure d’été du Turkménistan", "HEEG": "heure d’été de l’Est du Groenland", "AEDT": "heure d’été de l’Est de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "GMT": "heure moyenne de Greenwich", "HKT": "heure normale de Hong Kong", "PST": "heure normale du Pacifique nord-américain", "OESZ": "heure d’été d’Europe de l’Est", "CLT": "heure normale du Chili", "MST": "heure normale de Macao", "WITA": "heure du Centre indonésien", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HECU": "heure d’été de Cuba"},
}
}
diff --git a/fr_KM/fr_KM.go b/fr_KM/fr_KM.go
index 2aa3aeeb..633c3ccd 100644
--- a/fr_KM/fr_KM.go
+++ b/fr_KM/fr_KM.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"MYT": "heure de la Malaisie", "ACWST": "heure normale du centre-ouest de l’Australie", "HEEG": "heure d’été de l’Est du Groenland", "OEZ": "heure normale d’Europe de l’Est", "COST": "heure d’été de Colombie", "ADT": "heure d’été de l’Atlantique", "WITA": "heure du Centre indonésien", "MESZ": "heure d’été d’Europe centrale", "IST": "heure de l’Inde", "EDT": "heure d’été de l’Est", "SRT": "heure du Suriname", "HNOG": "heure normale de l’Ouest du Groenland", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "BOT": "heure de Bolivie", "OESZ": "heure d’été d’Europe de l’Est", "PDT": "heure d’été du Pacifique", "WESZ": "heure d’été d’Europe de l’Ouest", "HNT": "heure normale de Terre-Neuve", "ACST": "heure normale du centre de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "TMST": "heure d’été du Turkménistan", "ACDT": "heure d’été du centre de l’Australie", "HNEG": "heure normale de l’Est du Groenland", "VET": "heure du Venezuela", "WIT": "heure de l’Est indonésien", "LHDT": "heure d’été de Lord Howe", "SAST": "heure normale d’Afrique méridionale", "TMT": "heure normale du Turkménistan", "WAST": "heure d’été d’Afrique de l’Ouest", "WART": "heure normale de l’Ouest argentin", "MST": "heure normale de Macao", "HEPMX": "heure d’été du Pacifique mexicain", "CDT": "heure d’été du Centre", "WEZ": "heure normale d’Europe de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "CLST": "heure d’été du Chili", "ChST": "heure des Chamorro", "WIB": "heure de l’Ouest indonésien", "UYST": "heure d’été de l’Uruguay", "AST": "heure normale de l’Atlantique", "PST": "heure normale du Pacifique nord-américain", "AWDT": "heure d’été de l’Ouest de l’Australie", "WAT": "heure normale d’Afrique de l’Ouest", "UYT": "heure normale de l’Uruguay", "HEOG": "heure d’été de l’Ouest du Groenland", "NZDT": "heure d’été de la Nouvelle-Zélande", "EST": "heure normale de l’Est nord-américain", "NZST": "heure normale de la Nouvelle-Zélande", "CAT": "heure normale d’Afrique centrale", "GMT": "heure moyenne de Greenwich", "AKST": "heure normale de l’Alaska", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "CHAST": "heure normale des îles Chatham", "JDT": "heure d’été du Japon", "WARST": "heure d’été de l’Ouest argentin", "COT": "heure normale de Colombie", "ECT": "heure de l’Équateur", "AKDT": "heure d’été de l’Alaska", "BT": "heure du Bhoutan", "ARST": "heure d’été de l’Argentine", "AWST": "heure normale de l’Ouest de l’Australie", "CLT": "heure normale du Chili", "CHADT": "heure d’été des îles Chatham", "∅∅∅": "heure d’été de l’Amazonie", "GFT": "heure de la Guyane française", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "ART": "heure normale d’Argentine", "HKST": "heure d’été de Hong Kong", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "MEZ": "heure normale d’Europe centrale", "SGT": "heure de Singapour", "HNPMX": "heure normale du Pacifique mexicain", "CST": "heure normale du centre nord-américain", "JST": "heure normale du Japon", "MDT": "heure d’été de Macao", "GYT": "heure du Guyana", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HECU": "heure d’été de Cuba", "AEST": "heure normale de l’Est de l’Australie", "HKT": "heure normale de Hong Kong", "LHST": "heure normale de Lord Howe", "HNCU": "heure normale de Cuba"},
+ timezones: map[string]string{"AST": "heure normale de l’Atlantique", "TMST": "heure d’été du Turkménistan", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "PDT": "heure d’été du Pacifique", "MEZ": "heure normale d’Europe centrale", "MYT": "heure de la Malaisie", "WAST": "heure d’été d’Afrique de l’Ouest", "HNEG": "heure normale de l’Est du Groenland", "AWDT": "heure d’été de l’Ouest de l’Australie", "JDT": "heure d’été du Japon", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "CAT": "heure normale d’Afrique centrale", "CLST": "heure d’été du Chili", "EST": "heure normale de l’Est nord-américain", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "WIB": "heure de l’Ouest indonésien", "EAT": "heure normale d’Afrique de l’Est", "WEZ": "heure normale d’Europe de l’Ouest", "ACST": "heure normale du centre de l’Australie", "HEEG": "heure d’été de l’Est du Groenland", "UYST": "heure d’été de l’Uruguay", "SAST": "heure normale d’Afrique méridionale", "WART": "heure normale de l’Ouest argentin", "MDT": "heure d’été de Macao", "AEDT": "heure d’été de l’Est de l’Australie", "AKDT": "heure d’été de l’Alaska", "HNPMX": "heure normale du Pacifique mexicain", "WARST": "heure d’été de l’Ouest argentin", "EDT": "heure d’été de l’Est", "WIT": "heure de l’Est indonésien", "HNCU": "heure normale de Cuba", "ADT": "heure d’été de l’Atlantique", "ART": "heure normale d’Argentine", "HKST": "heure d’été de Hong Kong", "∅∅∅": "heure d’été de l’Acre", "WITA": "heure du Centre indonésien", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "VET": "heure du Venezuela", "WAT": "heure normale d’Afrique de l’Ouest", "AKST": "heure normale de l’Alaska", "ACWDT": "heure d’été du centre-ouest de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "HAT": "heure d’été de Terre-Neuve", "AEST": "heure normale de l’Est de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "HAST": "heure normale d’Hawaii - Aléoutiennes", "IST": "heure de l’Inde", "ACWST": "heure normale du centre-ouest de l’Australie", "OESZ": "heure d’été d’Europe de l’Est", "GMT": "heure moyenne de Greenwich", "HNOG": "heure normale de l’Ouest du Groenland", "HKT": "heure normale de Hong Kong", "GYT": "heure du Guyana", "NZDT": "heure d’été de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "HEOG": "heure d’été de l’Ouest du Groenland", "TMT": "heure normale du Turkménistan", "SRT": "heure du Suriname", "NZST": "heure normale de la Nouvelle-Zélande", "CDT": "heure d’été du Centre", "CHADT": "heure d’été des îles Chatham", "OEZ": "heure normale d’Europe de l’Est", "ARST": "heure d’été de l’Argentine", "COST": "heure d’été de Colombie", "ChST": "heure des Chamorro", "LHST": "heure normale de Lord Howe", "PST": "heure normale du Pacifique nord-américain", "COT": "heure normale de Colombie", "GFT": "heure de la Guyane française", "SGT": "heure de Singapour", "BOT": "heure de Bolivie", "CHAST": "heure normale des îles Chatham", "ECT": "heure de l’Équateur", "BT": "heure du Bhoutan", "HEPMX": "heure d’été du Pacifique mexicain", "HECU": "heure d’été de Cuba", "CST": "heure normale du centre nord-américain", "AWST": "heure normale de l’Ouest de l’Australie", "JST": "heure normale du Japon", "MESZ": "heure d’été d’Europe centrale", "WESZ": "heure d’été d’Europe de l’Ouest", "MST": "heure normale de Macao", "HNT": "heure normale de Terre-Neuve", "UYT": "heure normale de l’Uruguay", "LHDT": "heure d’été de Lord Howe"},
}
}
diff --git a/fr_LU/fr_LU.go b/fr_LU/fr_LU.go
index 40c3deb7..d962c21b 100644
--- a/fr_LU/fr_LU.go
+++ b/fr_LU/fr_LU.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"BOT": "heure de Bolivie", "HEEG": "heure d’été de l’Est du Groenland", "OEZ": "heure normale d’Europe de l’Est", "OESZ": "heure d’été d’Europe de l’Est", "MST": "heure normale de Macao", "TMT": "heure normale du Turkménistan", "ECT": "heure de l’Équateur", "HEPMX": "heure d’été du Pacifique mexicain", "WIB": "heure de l’Ouest indonésien", "HAT": "heure d’été de Terre-Neuve", "HNOG": "heure normale de l’Ouest du Groenland", "PDT": "heure d’été du Pacifique", "WEZ": "heure normale d’Europe de l’Ouest", "WITA": "heure du Centre indonésien", "NZST": "heure normale de la Nouvelle-Zélande", "WART": "heure normale de l’Ouest argentin", "UYT": "heure normale de l’Uruguay", "WIT": "heure de l’Est indonésien", "AWDT": "heure d’été de l’Ouest de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "JST": "heure normale du Japon", "ACDT": "heure d’été du centre de l’Australie", "ADT": "heure d’été de l’Atlantique", "GYT": "heure du Guyana", "MESZ": "heure d’été d’Europe centrale", "HNEG": "heure normale de l’Est du Groenland", "VET": "heure du Venezuela", "ART": "heure normale d’Argentine", "MEZ": "heure normale d’Europe centrale", "LHDT": "heure d’été de Lord Howe", "∅∅∅": "heure d’été de l’Amazonie", "TMST": "heure d’été du Turkménistan", "ACST": "heure normale du centre de l’Australie", "AEST": "heure normale de l’Est de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CLST": "heure d’été du Chili", "SRT": "heure du Suriname", "GFT": "heure de la Guyane française", "WARST": "heure d’été de l’Ouest argentin", "CDT": "heure d’été du Centre", "PST": "heure normale du Pacifique nord-américain", "MYT": "heure de la Malaisie", "HNT": "heure normale de Terre-Neuve", "HKST": "heure d’été de Hong Kong", "CLT": "heure normale du Chili", "ChST": "heure des Chamorro", "GMT": "heure moyenne de Greenwich", "HNCU": "heure normale de Cuba", "AKST": "heure normale de l’Alaska", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "EAT": "heure normale d’Afrique de l’Est", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EST": "heure normale de l’Est nord-américain", "EDT": "heure d’été de l’Est", "MDT": "heure d’été de Macao", "CST": "heure normale du centre nord-américain", "AEDT": "heure d’été de l’Est de l’Australie", "IST": "heure de l’Inde", "WAST": "heure d’été d’Afrique de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "AST": "heure normale de l’Atlantique", "UYST": "heure d’été de l’Uruguay", "ARST": "heure d’été de l’Argentine", "ACWST": "heure normale du centre-ouest de l’Australie", "HKT": "heure normale de Hong Kong", "CHADT": "heure d’été des îles Chatham", "SAST": "heure normale d’Afrique méridionale", "WAT": "heure normale d’Afrique de l’Ouest", "COT": "heure normale de Colombie", "COST": "heure d’été de Colombie", "SGT": "heure de Singapour", "BT": "heure du Bhoutan", "HEOG": "heure d’été de l’Ouest du Groenland", "WESZ": "heure d’été d’Europe de l’Ouest", "CHAST": "heure normale des îles Chatham", "LHST": "heure normale de Lord Howe", "HECU": "heure d’été de Cuba", "HNPMX": "heure normale du Pacifique mexicain", "AKDT": "heure d’été de l’Alaska", "AWST": "heure normale de l’Ouest de l’Australie", "JDT": "heure d’été du Japon", "CAT": "heure normale d’Afrique centrale", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ACWDT": "heure d’été du centre-ouest de l’Australie"},
+ timezones: map[string]string{"COT": "heure normale de Colombie", "GFT": "heure de la Guyane française", "JDT": "heure d’été du Japon", "WART": "heure normale de l’Ouest argentin", "CLST": "heure d’été du Chili", "HEEG": "heure d’été de l’Est du Groenland", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "AWST": "heure normale de l’Ouest de l’Australie", "GMT": "heure moyenne de Greenwich", "MYT": "heure de la Malaisie", "CHAST": "heure normale des îles Chatham", "MEZ": "heure normale d’Europe centrale", "MESZ": "heure d’été d’Europe centrale", "EST": "heure normale de l’Est nord-américain", "HKT": "heure normale de Hong Kong", "ACST": "heure normale du centre de l’Australie", "HAT": "heure d’été de Terre-Neuve", "AKST": "heure normale de l’Alaska", "WEZ": "heure normale d’Europe de l’Ouest", "BT": "heure du Bhoutan", "UYST": "heure d’été de l’Uruguay", "AWDT": "heure d’été de l’Ouest de l’Australie", "OEZ": "heure normale d’Europe de l’Est", "IST": "heure de l’Inde", "AEST": "heure normale de l’Est de l’Australie", "UYT": "heure normale de l’Uruguay", "HECU": "heure d’été de Cuba", "PDT": "heure d’été du Pacifique", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "MDT": "heure d’été des Rocheuses", "SRT": "heure du Suriname", "WIB": "heure de l’Ouest indonésien", "PST": "heure normale du Pacifique nord-américain", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "LHDT": "heure d’été de Lord Howe", "SAST": "heure normale d’Afrique méridionale", "ECT": "heure de l’Équateur", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "CDT": "heure d’été du Centre", "CAT": "heure normale d’Afrique centrale", "AST": "heure normale de l’Atlantique", "HKST": "heure d’été de Hong Kong", "SGT": "heure de Singapour", "OESZ": "heure d’été d’Europe de l’Est", "TMT": "heure normale du Turkménistan", "ACWST": "heure normale du centre-ouest de l’Australie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "ACDT": "heure d’été du centre de l’Australie", "∅∅∅": "heure d’été de l’Acre", "MST": "heure normale des Rocheuses", "HEPMX": "heure d’été du Pacifique mexicain", "HNCU": "heure normale de Cuba", "ARST": "heure d’été de l’Argentine", "NZDT": "heure d’été de la Nouvelle-Zélande", "WARST": "heure d’été de l’Ouest argentin", "HEOG": "heure d’été de l’Ouest du Groenland", "EDT": "heure d’été de l’Est", "COST": "heure d’été de Colombie", "WITA": "heure du Centre indonésien", "WIT": "heure de l’Est indonésien", "CHADT": "heure d’été des îles Chatham", "ADT": "heure d’été de l’Atlantique", "ART": "heure normale d’Argentine", "WAT": "heure normale d’Afrique de l’Ouest", "LHST": "heure normale de Lord Howe", "HNPMX": "heure normale du Pacifique mexicain", "VET": "heure du Venezuela", "HNOG": "heure normale de l’Ouest du Groenland", "WESZ": "heure d’été d’Europe de l’Ouest", "TMST": "heure d’été du Turkménistan", "HNT": "heure normale de Terre-Neuve", "ChST": "heure des Chamorro", "EAT": "heure normale d’Afrique de l’Est", "BOT": "heure de Bolivie", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ACWDT": "heure d’été du centre-ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "JST": "heure normale du Japon", "WAST": "heure d’été d’Afrique de l’Ouest", "HNEG": "heure normale de l’Est du Groenland", "AEDT": "heure d’été de l’Est de l’Australie", "AKDT": "heure d’été de l’Alaska", "GYT": "heure du Guyana", "CST": "heure normale du centre nord-américain", "CLT": "heure normale du Chili"},
}
}
diff --git a/fr_MA/fr_MA.go b/fr_MA/fr_MA.go
index 95bee043..157b8321 100644
--- a/fr_MA/fr_MA.go
+++ b/fr_MA/fr_MA.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"HEPMX": "heure d’été du Pacifique mexicain", "WIT": "heure de l’Est indonésien", "BT": "heure du Bhoutan", "PDT": "heure d’été du Pacifique", "WEZ": "heure normale d’Europe de l’Ouest", "AWST": "heure normale de l’Ouest de l’Australie", "SAST": "heure normale d’Afrique méridionale", "ChST": "heure des Chamorro", "WARST": "heure d’été de l’Ouest argentin", "COT": "heure normale de Colombie", "SRT": "heure du Suriname", "PST": "heure normale du Pacifique nord-américain", "LHDT": "heure d’été de Lord Howe", "∅∅∅": "heure d’été de l’Amazonie", "ECT": "heure de l’Équateur", "EST": "heure normale de l’Est nord-américain", "MYT": "heure de la Malaisie", "HAT": "heure d’été de Terre-Neuve", "LHST": "heure normale de Lord Howe", "TMST": "heure d’été du Turkménistan", "WAST": "heure d’été d’Afrique de l’Ouest", "AEDT": "heure d’été de l’Est de l’Australie", "IST": "heure de l’Inde", "JST": "heure normale du Japon", "EDT": "heure d’été de l’Est", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HKT": "heure normale de Hong Kong", "NZST": "heure normale de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "BOT": "heure de Bolivie", "COST": "heure d’été de Colombie", "HECU": "heure d’été de Cuba", "MST": "heure normale de Macao", "UYST": "heure d’été de l’Uruguay", "HEEG": "heure d’été de l’Est du Groenland", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "ACWST": "heure normale du centre-ouest de l’Australie", "AEST": "heure normale de l’Est de l’Australie", "MDT": "heure d’été de Macao", "WIB": "heure de l’Ouest indonésien", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MEZ": "heure normale d’Europe centrale", "NZDT": "heure d’été de la Nouvelle-Zélande", "EAT": "heure normale d’Afrique de l’Est", "OEZ": "heure normale d’Europe de l’Est", "HNCU": "heure normale de Cuba", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WESZ": "heure d’été d’Europe de l’Ouest", "HNOG": "heure normale de l’Ouest du Groenland", "HEOG": "heure d’été de l’Ouest du Groenland", "HKST": "heure d’été de Hong Kong", "AWDT": "heure d’été de l’Ouest de l’Australie", "CHADT": "heure d’été des îles Chatham", "HNEG": "heure normale de l’Est du Groenland", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HNPMX": "heure normale du Pacifique mexicain", "CDT": "heure d’été du Centre", "UYT": "heure normale de l’Uruguay", "GFT": "heure de la Guyane française", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "JDT": "heure d’été du Japon", "TMT": "heure normale du Turkménistan", "OESZ": "heure d’été d’Europe de l’Est", "WITA": "heure du Centre indonésien", "MESZ": "heure d’été d’Europe centrale", "AKST": "heure normale de l’Alaska", "CST": "heure normale du centre nord-américain", "VET": "heure du Venezuela", "CLST": "heure d’été du Chili", "WART": "heure normale de l’Ouest argentin", "AST": "heure normale de l’Atlantique", "ADT": "heure d’été de l’Atlantique", "ARST": "heure d’été de l’Argentine", "AKDT": "heure d’été de l’Alaska", "GYT": "heure du Guyana", "CHAST": "heure normale des îles Chatham", "ACST": "heure normale du centre de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "CAT": "heure normale d’Afrique centrale", "WAT": "heure normale d’Afrique de l’Ouest", "SGT": "heure de Singapour", "ACWDT": "heure d’été du centre-ouest de l’Australie", "ART": "heure normale d’Argentine", "GMT": "heure moyenne de Greenwich", "HNT": "heure normale de Terre-Neuve"},
+ timezones: map[string]string{"SAST": "heure normale d’Afrique méridionale", "EST": "heure normale de l’Est nord-américain", "EDT": "heure d’été de l’Est", "WITA": "heure du Centre indonésien", "UYST": "heure d’été de l’Uruguay", "GFT": "heure de la Guyane française", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HECU": "heure d’été de Cuba", "CAT": "heure normale d’Afrique centrale", "ACWST": "heure normale du centre-ouest de l’Australie", "WARST": "heure d’été de l’Ouest argentin", "WAT": "heure normale d’Afrique de l’Ouest", "TMST": "heure d’été du Turkménistan", "AEDT": "heure d’été de l’Est de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "TMT": "heure normale du Turkménistan", "HKT": "heure normale de Hong Kong", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "HNOG": "heure normale de l’Ouest du Groenland", "OESZ": "heure d’été d’Europe de l’Est", "GMT": "heure moyenne de Greenwich", "HNPMX": "heure normale du Pacifique mexicain", "HEPMX": "heure d’été du Pacifique mexicain", "∅∅∅": "heure d’été de l’Amazonie", "CLST": "heure d’été du Chili", "HKST": "heure d’été de Hong Kong", "LHST": "heure normale de Lord Howe", "HNEG": "heure normale de l’Est du Groenland", "CDT": "heure d’été du Centre", "AWST": "heure normale de l’Ouest de l’Australie", "CHADT": "heure d’été des îles Chatham", "ACWDT": "heure d’été du centre-ouest de l’Australie", "JDT": "heure d’été du Japon", "WESZ": "heure d’été d’Europe de l’Ouest", "ARST": "heure d’été de l’Argentine", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ECT": "heure de l’Équateur", "JST": "heure normale du Japon", "HAT": "heure d’été de Terre-Neuve", "HEEG": "heure d’été de l’Est du Groenland", "CST": "heure normale du centre nord-américain", "AST": "heure normale de l’Atlantique", "ART": "heure normale d’Argentine", "HNT": "heure normale de Terre-Neuve", "LHDT": "heure d’été de Lord Howe", "AKDT": "heure d’été de l’Alaska", "IST": "heure de l’Inde", "MYT": "heure de la Malaisie", "ACST": "heure normale du centre de l’Australie", "BT": "heure du Bhoutan", "ACDT": "heure d’été du centre de l’Australie", "SRT": "heure du Suriname", "SGT": "heure de Singapour", "VET": "heure du Venezuela", "HEOG": "heure d’été de l’Ouest du Groenland", "MDT": "heure d’été de Macao", "WAST": "heure d’été d’Afrique de l’Ouest", "CLT": "heure normale du Chili", "AKST": "heure normale de l’Alaska", "PST": "heure normale du Pacifique nord-américain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "BOT": "heure de Bolivie", "PDT": "heure d’été du Pacifique", "WART": "heure normale de l’Ouest argentin", "COT": "heure normale de Colombie", "COST": "heure d’été de Colombie", "WIT": "heure de l’Est indonésien", "ChST": "heure des Chamorro", "HNCU": "heure normale de Cuba", "WIB": "heure de l’Ouest indonésien", "NZDT": "heure d’été de la Nouvelle-Zélande", "WEZ": "heure normale d’Europe de l’Ouest", "MST": "heure normale de Macao", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "CHAST": "heure normale des îles Chatham", "MESZ": "heure d’été d’Europe centrale", "ADT": "heure d’été de l’Atlantique", "OEZ": "heure normale d’Europe de l’Est", "UYT": "heure normale de l’Uruguay", "AWDT": "heure d’été de l’Ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "AEST": "heure normale de l’Est de l’Australie", "GYT": "heure du Guyana"},
}
}
diff --git a/fr_MC/fr_MC.go b/fr_MC/fr_MC.go
index 64679610..06f68c0d 100644
--- a/fr_MC/fr_MC.go
+++ b/fr_MC/fr_MC.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"JDT": "heure d’été du Japon", "BT": "heure du Bhoutan", "HNT": "heure normale de Terre-Neuve", "ART": "heure normale d’Argentine", "AEST": "heure normale de l’Est de l’Australie", "AWST": "heure normale de l’Ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "ECT": "heure de l’Équateur", "HNPMX": "heure normale du Pacifique mexicain", "AKDT": "heure d’été de l’Alaska", "HEOG": "heure d’été de l’Ouest du Groenland", "WAT": "heure normale d’Afrique de l’Ouest", "WAST": "heure d’été d’Afrique de l’Ouest", "OEZ": "heure normale d’Europe de l’Est", "AST": "heure normale de l’Atlantique", "WIB": "heure de l’Ouest indonésien", "WESZ": "heure d’été d’Europe de l’Ouest", "MESZ": "heure d’été d’Europe centrale", "LHDT": "heure d’été de Lord Howe", "ChST": "heure des Chamorro", "CST": "heure normale du centre nord-américain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HKT": "heure normale de Hong Kong", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "IST": "heure de l’Inde", "WARST": "heure d’été de l’Ouest argentin", "HNCU": "heure normale de Cuba", "HAT": "heure d’été de Terre-Neuve", "ARST": "heure d’été de l’Argentine", "JST": "heure normale du Japon", "GFT": "heure de la Guyane française", "TMST": "heure d’été du Turkménistan", "ACDT": "heure d’été du centre de l’Australie", "CDT": "heure d’été du Centre", "ADT": "heure d’été de l’Atlantique", "UYST": "heure d’été de l’Uruguay", "VET": "heure du Venezuela", "PST": "heure normale du Pacifique nord-américain", "BOT": "heure de Bolivie", "CAT": "heure normale d’Afrique centrale", "COST": "heure d’été de Colombie", "EST": "heure normale de l’Est nord-américain", "GYT": "heure du Guyana", "HNOG": "heure normale de l’Ouest du Groenland", "HEEG": "heure d’été de l’Est du Groenland", "LHST": "heure normale de Lord Howe", "SAST": "heure normale d’Afrique méridionale", "GMT": "heure moyenne de Greenwich", "SGT": "heure de Singapour", "MDT": "heure d’été de Macao", "HEPMX": "heure d’été du Pacifique mexicain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACWST": "heure normale du centre-ouest de l’Australie", "CLT": "heure normale du Chili", "∅∅∅": "heure d’été de l’Amazonie", "COT": "heure normale de Colombie", "AKST": "heure normale de l’Alaska", "UYT": "heure normale de l’Uruguay", "AWDT": "heure d’été de l’Ouest de l’Australie", "HKST": "heure d’été de Hong Kong", "HNEG": "heure normale de l’Est du Groenland", "TMT": "heure normale du Turkménistan", "EAT": "heure normale d’Afrique de l’Est", "NZST": "heure normale de la Nouvelle-Zélande", "NZDT": "heure d’été de la Nouvelle-Zélande", "OESZ": "heure d’été d’Europe de l’Est", "WART": "heure normale de l’Ouest argentin", "HECU": "heure d’été de Cuba", "CHADT": "heure d’été des îles Chatham", "MYT": "heure de la Malaisie", "SRT": "heure du Suriname", "PDT": "heure d’été du Pacifique", "CHAST": "heure normale des îles Chatham", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EDT": "heure d’été de l’Est", "MST": "heure normale de Macao", "WIT": "heure de l’Est indonésien", "WEZ": "heure normale d’Europe de l’Ouest", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "CLST": "heure d’été du Chili", "ACST": "heure normale du centre de l’Australie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "WITA": "heure du Centre indonésien", "HNPM": "heure normale de Saint-Pierre-et-Miquelon"},
+ timezones: map[string]string{"AEDT": "heure d’été de l’Est de l’Australie", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACWST": "heure normale du centre-ouest de l’Australie", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CLST": "heure d’été du Chili", "HKT": "heure normale de Hong Kong", "HKST": "heure d’été de Hong Kong", "HNT": "heure normale de Terre-Neuve", "UYST": "heure d’été de l’Uruguay", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "EAT": "heure normale d’Afrique de l’Est", "OEZ": "heure normale d’Europe de l’Est", "WESZ": "heure d’été d’Europe de l’Ouest", "COST": "heure d’été de Colombie", "HAT": "heure d’été de Terre-Neuve", "AWST": "heure normale de l’Ouest de l’Australie", "SGT": "heure de Singapour", "PST": "heure normale du Pacifique nord-américain", "CAT": "heure normale d’Afrique centrale", "TMT": "heure normale du Turkménistan", "HNEG": "heure normale de l’Est du Groenland", "CHAST": "heure normale des îles Chatham", "ChST": "heure des Chamorro", "HEPMX": "heure d’été du Pacifique mexicain", "CST": "heure normale du centre nord-américain", "JDT": "heure d’été du Japon", "ARST": "heure d’été de l’Argentine", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "UYT": "heure normale de l’Uruguay", "LHDT": "heure d’été de Lord Howe", "BOT": "heure de Bolivie", "PDT": "heure d’été du Pacifique", "HAST": "heure normale d’Hawaii - Aléoutiennes", "SAST": "heure normale d’Afrique méridionale", "SRT": "heure du Suriname", "HECU": "heure d’été de Cuba", "CLT": "heure normale du Chili", "HNOG": "heure normale de l’Ouest du Groenland", "WEZ": "heure normale d’Europe de l’Ouest", "WAST": "heure d’été d’Afrique de l’Ouest", "CHADT": "heure d’été des îles Chatham", "ECT": "heure de l’Équateur", "VET": "heure du Venezuela", "MYT": "heure de la Malaisie", "ADT": "heure d’été de l’Atlantique", "MST": "heure normale de Macao", "BT": "heure du Bhoutan", "ACDT": "heure d’été du centre de l’Australie", "∅∅∅": "heure d’été des Açores", "GYT": "heure du Guyana", "HNCU": "heure normale de Cuba", "WIB": "heure de l’Ouest indonésien", "AWDT": "heure d’été de l’Ouest de l’Australie", "WARST": "heure d’été de l’Ouest argentin", "WAT": "heure normale d’Afrique de l’Ouest", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MEZ": "heure normale d’Europe centrale", "COT": "heure normale de Colombie", "AEST": "heure normale de l’Est de l’Australie", "LHST": "heure normale de Lord Howe", "WART": "heure normale de l’Ouest argentin", "GMT": "heure moyenne de Greenwich", "TMST": "heure d’été du Turkménistan", "HEEG": "heure d’été de l’Est du Groenland", "GFT": "heure de la Guyane française", "AKST": "heure normale de l’Alaska", "MESZ": "heure d’été d’Europe centrale", "JST": "heure normale du Japon", "ART": "heure normale d’Argentine", "EDT": "heure d’été de l’Est", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HNPMX": "heure normale du Pacifique mexicain", "NZST": "heure normale de la Nouvelle-Zélande", "HEOG": "heure d’été de l’Ouest du Groenland", "MDT": "heure d’été de Macao", "AKDT": "heure d’été de l’Alaska", "CDT": "heure d’été du Centre", "WIT": "heure de l’Est indonésien", "NZDT": "heure d’été de la Nouvelle-Zélande", "OESZ": "heure d’été d’Europe de l’Est", "EST": "heure normale de l’Est nord-américain", "WITA": "heure du Centre indonésien", "IST": "heure de l’Inde", "AST": "heure normale de l’Atlantique", "ACST": "heure normale du centre de l’Australie"},
}
}
diff --git a/fr_MF/fr_MF.go b/fr_MF/fr_MF.go
index a5e5673c..5a38c7d7 100644
--- a/fr_MF/fr_MF.go
+++ b/fr_MF/fr_MF.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"HKT": "heure normale de Hong Kong", "ECT": "heure de l’Équateur", "AWST": "heure normale de l’Ouest de l’Australie", "WAT": "heure normale d’Afrique de l’Ouest", "OESZ": "heure d’été d’Europe de l’Est", "HECU": "heure d’été de Cuba", "WEZ": "heure normale d’Europe de l’Ouest", "LHST": "heure normale de Lord Howe", "LHDT": "heure d’été de Lord Howe", "CLST": "heure d’été du Chili", "HEEG": "heure d’été de l’Est du Groenland", "NZST": "heure normale de la Nouvelle-Zélande", "AKDT": "heure d’été de l’Alaska", "PST": "heure normale du Pacifique nord-américain", "PDT": "heure d’été du Pacifique", "MESZ": "heure d’été d’Europe centrale", "TMT": "heure normale du Turkménistan", "WARST": "heure d’été de l’Ouest argentin", "ART": "heure normale d’Argentine", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZDT": "heure d’été de la Nouvelle-Zélande", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HAT": "heure d’été de Terre-Neuve", "CAT": "heure normale d’Afrique centrale", "HNPMX": "heure normale du Pacifique mexicain", "EDT": "heure d’été de l’Est", "UYT": "heure normale de l’Uruguay", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "BT": "heure du Bhoutan", "SAST": "heure normale d’Afrique méridionale", "CLT": "heure normale du Chili", "ARST": "heure d’été de l’Argentine", "CST": "heure normale du centre nord-américain", "AST": "heure normale de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "HEOG": "heure d’été de l’Ouest du Groenland", "JDT": "heure d’été du Japon", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "WIB": "heure de l’Ouest indonésien", "ACST": "heure normale du centre de l’Australie", "OEZ": "heure normale d’Europe de l’Est", "MST": "heure normale de Macao", "HEPMX": "heure d’été du Pacifique mexicain", "VET": "heure du Venezuela", "WIT": "heure de l’Est indonésien", "SRT": "heure du Suriname", "ACWDT": "heure d’été du centre-ouest de l’Australie", "GFT": "heure de la Guyane française", "WART": "heure normale de l’Ouest argentin", "UYST": "heure d’été de l’Uruguay", "WITA": "heure du Centre indonésien", "HNEG": "heure normale de l’Est du Groenland", "HNCU": "heure normale de Cuba", "COT": "heure normale de Colombie", "WESZ": "heure d’été d’Europe de l’Ouest", "∅∅∅": "heure d’été de l’Amazonie", "ChST": "heure des Chamorro", "COST": "heure d’été de Colombie", "GMT": "heure moyenne de Greenwich", "HKST": "heure d’été de Hong Kong", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "ACDT": "heure d’été du centre de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "ADT": "heure d’été de l’Atlantique", "MYT": "heure de la Malaisie", "CHADT": "heure d’été des îles Chatham", "MEZ": "heure normale d’Europe centrale", "JST": "heure normale du Japon", "AKST": "heure normale de l’Alaska", "GYT": "heure du Guyana", "HNOG": "heure normale de l’Ouest du Groenland", "CHAST": "heure normale des îles Chatham", "SGT": "heure de Singapour", "EST": "heure normale de l’Est nord-américain", "WAST": "heure d’été d’Afrique de l’Ouest", "CDT": "heure d’été du Centre", "AWDT": "heure d’été de l’Ouest de l’Australie", "IST": "heure de l’Inde", "BOT": "heure de Bolivie", "AEST": "heure normale de l’Est de l’Australie", "TMST": "heure d’été du Turkménistan", "HAST": "heure normale d’Hawaii - Aléoutiennes", "AEDT": "heure d’été de l’Est de l’Australie", "MDT": "heure d’été de Macao", "ACWST": "heure normale du centre-ouest de l’Australie"},
+ timezones: map[string]string{"GFT": "heure de la Guyane française", "CHAST": "heure normale des îles Chatham", "CAT": "heure normale d’Afrique centrale", "WARST": "heure d’été de l’Ouest argentin", "HKST": "heure d’été de Hong Kong", "HNT": "heure normale de Terre-Neuve", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "VET": "heure du Venezuela", "AST": "heure normale de l’Atlantique", "TMT": "heure normale du Turkménistan", "SGT": "heure de Singapour", "MESZ": "heure d’été d’Europe centrale", "WEZ": "heure normale d’Europe de l’Ouest", "COST": "heure d’été de Colombie", "UYST": "heure d’été de l’Uruguay", "HEPMX": "heure d’été du Pacifique mexicain", "WIB": "heure de l’Ouest indonésien", "AWST": "heure normale de l’Ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "HEOG": "heure d’été de l’Ouest du Groenland", "EST": "heure normale de l’Est nord-américain", "AKDT": "heure d’été de l’Alaska", "AEST": "heure normale de l’Est de l’Australie", "LHST": "heure normale de Lord Howe", "AWDT": "heure d’été de l’Ouest de l’Australie", "ECT": "heure de l’Équateur", "ARST": "heure d’été de l’Argentine", "CHADT": "heure d’été des îles Chatham", "NZDT": "heure d’été de la Nouvelle-Zélande", "JDT": "heure d’été du Japon", "CLT": "heure normale du Chili", "HNOG": "heure normale de l’Ouest du Groenland", "OEZ": "heure normale d’Europe de l’Est", "WESZ": "heure d’été d’Europe de l’Ouest", "COT": "heure normale de Colombie", "HNPMX": "heure normale du Pacifique mexicain", "HECU": "heure d’été de Cuba", "ACWDT": "heure d’été du centre-ouest de l’Australie", "WITA": "heure du Centre indonésien", "ACST": "heure normale du centre de l’Australie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "AEDT": "heure d’été de l’Est de l’Australie", "∅∅∅": "heure d’été des Açores", "GYT": "heure du Guyana", "ACWST": "heure normale du centre-ouest de l’Australie", "WAT": "heure normale d’Afrique de l’Ouest", "ACDT": "heure d’été du centre de l’Australie", "IST": "heure de l’Inde", "CLST": "heure d’été du Chili", "MYT": "heure de la Malaisie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HNCU": "heure normale de Cuba", "CST": "heure normale du centre nord-américain", "CDT": "heure d’été du Centre", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ADT": "heure d’été de l’Atlantique", "TMST": "heure d’été du Turkménistan", "ART": "heure normale d’Argentine", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "LHDT": "heure d’été de Lord Howe", "PST": "heure normale du Pacifique nord-américain", "PDT": "heure d’été du Pacifique", "HNEG": "heure normale de l’Est du Groenland", "EDT": "heure d’été de l’Est", "ChST": "heure des Chamorro", "EAT": "heure normale d’Afrique de l’Est", "WART": "heure normale de l’Ouest argentin", "MST": "heure normale de Macao", "AKST": "heure normale de l’Alaska", "WIT": "heure de l’Est indonésien", "WAST": "heure d’été d’Afrique de l’Ouest", "BT": "heure du Bhoutan", "UYT": "heure normale de l’Uruguay", "SRT": "heure du Suriname", "BOT": "heure de Bolivie", "OESZ": "heure d’été d’Europe de l’Est", "MDT": "heure d’été de Macao", "HAT": "heure d’été de Terre-Neuve", "NZST": "heure normale de la Nouvelle-Zélande", "JST": "heure normale du Japon", "GMT": "heure moyenne de Greenwich", "HEEG": "heure d’été de l’Est du Groenland", "SAST": "heure normale d’Afrique méridionale", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HKT": "heure normale de Hong Kong"},
}
}
diff --git a/fr_MG/fr_MG.go b/fr_MG/fr_MG.go
index ab797d85..8a9bd628 100644
--- a/fr_MG/fr_MG.go
+++ b/fr_MG/fr_MG.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"HAST": "heure normale d’Hawaii - Aléoutiennes", "WITA": "heure du Centre indonésien", "MESZ": "heure d’été d’Europe centrale", "LHDT": "heure d’été de Lord Howe", "EDT": "heure d’été de l’Est", "PST": "heure normale du Pacifique nord-américain", "AEST": "heure normale de l’Est de l’Australie", "HKT": "heure normale de Hong Kong", "COST": "heure d’été de Colombie", "HAT": "heure d’été de Terre-Neuve", "HNCU": "heure normale de Cuba", "CDT": "heure d’été du Centre", "TMST": "heure d’été du Turkménistan", "WAST": "heure d’été d’Afrique de l’Ouest", "MYT": "heure de la Malaisie", "WEZ": "heure normale d’Europe de l’Ouest", "CLT": "heure normale du Chili", "HNEG": "heure normale de l’Est du Groenland", "BOT": "heure de Bolivie", "EAT": "heure normale d’Afrique de l’Est", "UYST": "heure d’été de l’Uruguay", "HNT": "heure normale de Terre-Neuve", "CHAST": "heure normale des îles Chatham", "CHADT": "heure d’été des îles Chatham", "SAST": "heure normale d’Afrique méridionale", "ChST": "heure des Chamorro", "TMT": "heure normale du Turkménistan", "WARST": "heure d’été de l’Ouest argentin", "MST": "heure normale de Macao", "ART": "heure normale d’Argentine", "AWDT": "heure d’été de l’Ouest de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "OEZ": "heure normale d’Europe de l’Est", "SRT": "heure du Suriname", "PDT": "heure d’été du Pacifique", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CLST": "heure d’été du Chili", "GFT": "heure de la Guyane française", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "MDT": "heure d’été de Macao", "UYT": "heure normale de l’Uruguay", "AKDT": "heure d’été de l’Alaska", "ADT": "heure d’été de l’Atlantique", "WESZ": "heure d’été d’Europe de l’Ouest", "AWST": "heure normale de l’Ouest de l’Australie", "HKST": "heure d’été de Hong Kong", "ACST": "heure normale du centre de l’Australie", "HNPMX": "heure normale du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "VET": "heure du Venezuela", "BT": "heure du Bhoutan", "HEOG": "heure d’été de l’Ouest du Groenland", "LHST": "heure normale de Lord Howe", "NZST": "heure normale de la Nouvelle-Zélande", "∅∅∅": "heure d’été du Pérou", "CAT": "heure normale d’Afrique centrale", "WART": "heure normale de l’Ouest argentin", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "GMT": "heure moyenne de Greenwich", "WIB": "heure de l’Ouest indonésien", "HEPMX": "heure d’été du Pacifique mexicain", "CST": "heure normale du centre nord-américain", "WIT": "heure de l’Est indonésien", "ARST": "heure d’été de l’Argentine", "HNOG": "heure normale de l’Ouest du Groenland", "NZDT": "heure d’été de la Nouvelle-Zélande", "OESZ": "heure d’été d’Europe de l’Est", "COT": "heure normale de Colombie", "HECU": "heure d’été de Cuba", "EST": "heure normale de l’Est nord-américain", "HEEG": "heure d’été de l’Est du Groenland", "WAT": "heure normale d’Afrique de l’Ouest", "ECT": "heure de l’Équateur", "GYT": "heure du Guyana", "ACWST": "heure normale du centre-ouest de l’Australie", "IST": "heure de l’Inde", "ACDT": "heure d’été du centre de l’Australie", "SGT": "heure de Singapour", "AEDT": "heure d’été de l’Est de l’Australie", "MEZ": "heure normale d’Europe centrale", "JST": "heure normale du Japon", "JDT": "heure d’été du Japon", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "AKST": "heure normale de l’Alaska", "HADT": "heure d’été d’Hawaii - Aléoutiennes"},
+ timezones: map[string]string{"HADT": "heure d’été d’Hawaii - Aléoutiennes", "VET": "heure du Venezuela", "HNOG": "heure normale de l’Ouest du Groenland", "WARST": "heure d’été de l’Ouest argentin", "TMST": "heure d’été du Turkménistan", "HNT": "heure normale de Terre-Neuve", "UYT": "heure normale de l’Uruguay", "CHAST": "heure normale des îles Chatham", "NZST": "heure normale de la Nouvelle-Zélande", "WEZ": "heure normale d’Europe de l’Ouest", "GMT": "heure moyenne de Greenwich", "AEST": "heure normale de l’Est de l’Australie", "ChST": "heure des Chamorro", "JDT": "heure d’été du Japon", "AST": "heure normale de l’Atlantique", "HKT": "heure normale de Hong Kong", "ACST": "heure normale du centre de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "HAT": "heure d’été de Terre-Neuve", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CAT": "heure normale d’Afrique centrale", "NZDT": "heure d’été de la Nouvelle-Zélande", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "SRT": "heure du Suriname", "AWST": "heure normale de l’Ouest de l’Australie", "PST": "heure normale du Pacifique nord-américain", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HNEG": "heure normale de l’Est du Groenland", "AKST": "heure normale de l’Alaska", "EAT": "heure normale d’Afrique de l’Est", "CHADT": "heure d’été des îles Chatham", "WESZ": "heure d’été d’Europe de l’Ouest", "BOT": "heure de Bolivie", "ARST": "heure d’été de l’Argentine", "HKST": "heure d’été de Hong Kong", "BT": "heure du Bhoutan", "LHDT": "heure d’été de Lord Howe", "WIB": "heure de l’Ouest indonésien", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ART": "heure normale d’Argentine", "COT": "heure normale de Colombie", "AKDT": "heure d’été de l’Alaska", "CST": "heure normale du centre nord-américain", "WIT": "heure de l’Est indonésien", "SGT": "heure de Singapour", "MEZ": "heure normale d’Europe centrale", "HEOG": "heure d’été de l’Ouest du Groenland", "WAT": "heure normale d’Afrique de l’Ouest", "WITA": "heure du Centre indonésien", "GFT": "heure de la Guyane française", "LHST": "heure normale de Lord Howe", "HEPMX": "heure d’été du Pacifique mexicain", "∅∅∅": "heure d’été des Açores", "CDT": "heure d’été du Centre", "ACWST": "heure normale du centre-ouest de l’Australie", "JST": "heure normale du Japon", "WAST": "heure d’été d’Afrique de l’Ouest", "TMT": "heure normale du Turkménistan", "UYST": "heure d’été de l’Uruguay", "SAST": "heure normale d’Afrique méridionale", "GYT": "heure du Guyana", "IST": "heure de l’Inde", "ACWDT": "heure d’été du centre-ouest de l’Australie", "MESZ": "heure d’été d’Europe centrale", "OESZ": "heure d’été d’Europe de l’Est", "AEDT": "heure d’été de l’Est de l’Australie", "HECU": "heure d’été de Cuba", "PDT": "heure d’été du Pacifique", "OEZ": "heure normale d’Europe de l’Est", "EDT": "heure d’été de l’Est", "COST": "heure d’été de Colombie", "HEEG": "heure d’été de l’Est du Groenland", "HNCU": "heure normale de Cuba", "AWDT": "heure d’été de l’Ouest de l’Australie", "ECT": "heure de l’Équateur", "CLST": "heure d’été du Chili", "MDT": "heure d’été de Macao", "EST": "heure normale de l’Est nord-américain", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HNPMX": "heure normale du Pacifique mexicain", "ADT": "heure d’été de l’Atlantique", "MYT": "heure de la Malaisie", "WART": "heure normale de l’Ouest argentin", "MST": "heure normale de Macao", "CLT": "heure normale du Chili"},
}
}
diff --git a/fr_ML/fr_ML.go b/fr_ML/fr_ML.go
index 54b09914..74e6fa89 100644
--- a/fr_ML/fr_ML.go
+++ b/fr_ML/fr_ML.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"TMST": "heure d’été du Turkménistan", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "SGT": "heure de Singapour", "UYT": "heure normale de l’Uruguay", "AKDT": "heure d’été de l’Alaska", "MST": "heure normale des Rocheuses", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HKST": "heure d’été de Hong Kong", "HEPMX": "heure d’été du Pacifique mexicain", "WEZ": "heure normale d’Europe de l’Ouest", "WAT": "heure normale d’Afrique de l’Ouest", "PDT": "heure d’été du Pacifique", "LHST": "heure normale de Lord Howe", "JST": "heure normale du Japon", "EST": "heure normale de l’Est nord-américain", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACWST": "heure normale du centre-ouest de l’Australie", "CLT": "heure normale du Chili", "WARST": "heure d’été de l’Ouest argentin", "AWST": "heure normale de l’Ouest de l’Australie", "HKT": "heure normale de Hong Kong", "LHDT": "heure d’été de Lord Howe", "EDT": "heure d’été de l’Est", "NZDT": "heure d’été de la Nouvelle-Zélande", "SAST": "heure normale d’Afrique méridionale", "BOT": "heure de Bolivie", "CST": "heure normale du centre nord-américain", "ADT": "heure d’été de l’Atlantique", "VET": "heure du Venezuela", "WIT": "heure de l’Est indonésien", "SRT": "heure du Suriname", "CAT": "heure normale d’Afrique centrale", "BT": "heure du Bhoutan", "ARST": "heure d’été de l’Argentine", "AEST": "heure normale de l’Est de l’Australie", "MESZ": "heure d’été d’Europe centrale", "∅∅∅": "heure d’été de l’Amazonie", "HEEG": "heure d’été de l’Est du Groenland", "OEZ": "heure normale d’Europe de l’Est", "HEOG": "heure d’été de l’Ouest du Groenland", "MEZ": "heure normale d’Europe centrale", "CHAST": "heure normale des îles Chatham", "CLST": "heure d’été du Chili", "HNEG": "heure normale de l’Est du Groenland", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "HECU": "heure d’été de Cuba", "EAT": "heure normale d’Afrique de l’Est", "WAST": "heure d’été d’Afrique de l’Ouest", "AST": "heure normale de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "HAT": "heure d’été de Terre-Neuve", "ART": "heure normale d’Argentine", "ACST": "heure normale du centre de l’Australie", "UYST": "heure d’été de l’Uruguay", "GYT": "heure du Guyana", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CHADT": "heure d’été des îles Chatham", "TMT": "heure normale du Turkménistan", "OESZ": "heure d’été d’Europe de l’Est", "HNCU": "heure normale de Cuba", "AKST": "heure normale de l’Alaska", "MDT": "heure d’été des Rocheuses", "AEDT": "heure d’été de l’Est de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "GFT": "heure de la Guyane française", "WESZ": "heure d’été d’Europe de l’Ouest", "WITA": "heure du Centre indonésien", "COT": "heure normale de Colombie", "GMT": "heure moyenne de Greenwich", "WART": "heure normale de l’Ouest argentin", "CDT": "heure d’été du Centre", "HNOG": "heure normale de l’Ouest du Groenland", "IST": "heure de l’Inde", "JDT": "heure d’été du Japon", "ECT": "heure de l’Équateur", "ACDT": "heure d’été du centre de l’Australie", "COST": "heure d’été de Colombie", "HNPMX": "heure normale du Pacifique mexicain", "MYT": "heure de la Malaisie", "WIB": "heure de l’Ouest indonésien", "PST": "heure normale du Pacifique nord-américain", "AWDT": "heure d’été de l’Ouest de l’Australie", "ChST": "heure des Chamorro"},
+ timezones: map[string]string{"AKDT": "heure d’été de l’Alaska", "ChST": "heure des Chamorro", "SAST": "heure normale d’Afrique méridionale", "ECT": "heure de l’Équateur", "NZST": "heure normale de la Nouvelle-Zélande", "TMT": "heure normale du Turkménistan", "WITA": "heure du Centre indonésien", "COT": "heure normale de Colombie", "HNPMX": "heure normale du Pacifique mexicain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "JDT": "heure d’été du Japon", "WEZ": "heure normale d’Europe de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "AEDT": "heure d’été de l’Est de l’Australie", "UYT": "heure normale de l’Uruguay", "LHDT": "heure d’été de Lord Howe", "GYT": "heure du Guyana", "WIB": "heure de l’Ouest indonésien", "WAST": "heure d’été d’Afrique de l’Ouest", "ACST": "heure normale du centre de l’Australie", "CST": "heure normale du centre nord-américain", "CDT": "heure d’été du Centre", "AEST": "heure normale de l’Est de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "AWST": "heure normale de l’Ouest de l’Australie", "HEOG": "heure d’été de l’Ouest du Groenland", "WARST": "heure d’été de l’Ouest argentin", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "HEPMX": "heure d’été du Pacifique mexicain", "WART": "heure normale de l’Ouest argentin", "HKST": "heure d’été de Hong Kong", "OEZ": "heure normale d’Europe de l’Est", "GMT": "heure moyenne de Greenwich", "MDT": "heure d’été de Macao", "COST": "heure d’été de Colombie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "VET": "heure du Venezuela", "AST": "heure normale de l’Atlantique", "AKST": "heure normale de l’Alaska", "SRT": "heure du Suriname", "PDT": "heure d’été du Pacifique", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACWST": "heure normale du centre-ouest de l’Australie", "WESZ": "heure d’été d’Europe de l’Ouest", "HKT": "heure normale de Hong Kong", "TMST": "heure d’été du Turkménistan", "PST": "heure normale du Pacifique nord-américain", "IST": "heure de l’Inde", "CLT": "heure normale du Chili", "HNOG": "heure normale de l’Ouest du Groenland", "WAT": "heure normale d’Afrique de l’Ouest", "BT": "heure du Bhoutan", "HECU": "heure d’été de Cuba", "AWDT": "heure d’été de l’Ouest de l’Australie", "ACWDT": "heure d’été du centre-ouest de l’Australie", "JST": "heure normale du Japon", "ARST": "heure d’été de l’Argentine", "MST": "heure normale de Macao", "EST": "heure normale de l’Est nord-américain", "ACDT": "heure d’été du centre de l’Australie", "CHADT": "heure d’été des îles Chatham", "NZDT": "heure d’été de la Nouvelle-Zélande", "OESZ": "heure d’été d’Europe de l’Est", "MYT": "heure de la Malaisie", "WIT": "heure de l’Est indonésien", "CHAST": "heure normale des îles Chatham", "∅∅∅": "heure d’été de l’Acre", "UYST": "heure d’été de l’Uruguay", "MESZ": "heure d’été d’Europe centrale", "EDT": "heure d’été de l’Est", "BOT": "heure de Bolivie", "CAT": "heure normale d’Afrique centrale", "CLST": "heure d’été du Chili", "ART": "heure normale d’Argentine", "EAT": "heure normale d’Afrique de l’Est", "HNCU": "heure normale de Cuba", "HNEG": "heure normale de l’Est du Groenland", "LHST": "heure normale de Lord Howe", "ADT": "heure d’été de l’Atlantique", "HAT": "heure d’été de Terre-Neuve", "HEEG": "heure d’été de l’Est du Groenland", "GFT": "heure de la Guyane française", "SGT": "heure de Singapour", "MEZ": "heure normale d’Europe centrale", "HNT": "heure normale de Terre-Neuve"},
}
}
diff --git a/fr_MQ/fr_MQ.go b/fr_MQ/fr_MQ.go
index 423db2ca..90ff0a13 100644
--- a/fr_MQ/fr_MQ.go
+++ b/fr_MQ/fr_MQ.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"ECT": "heure de l’Équateur", "HEPMX": "heure d’été du Pacifique mexicain", "MYT": "heure de la Malaisie", "AWDT": "heure d’été de l’Ouest de l’Australie", "LHDT": "heure d’été de Lord Howe", "CHADT": "heure d’été des îles Chatham", "CLT": "heure normale du Chili", "OEZ": "heure normale d’Europe de l’Est", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "WIT": "heure de l’Est indonésien", "WEZ": "heure normale d’Europe de l’Ouest", "CHAST": "heure normale des îles Chatham", "AST": "heure normale de l’Atlantique", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "SAST": "heure normale d’Afrique méridionale", "HNEG": "heure normale de l’Est du Groenland", "TMT": "heure normale du Turkménistan", "WAT": "heure normale d’Afrique de l’Ouest", "EST": "heure normale de l’Est nord-américain", "UYST": "heure d’été de l’Uruguay", "PST": "heure normale du Pacifique nord-américain", "HEEG": "heure d’été de l’Est du Groenland", "TMST": "heure d’été du Turkménistan", "ACDT": "heure d’été du centre de l’Australie", "ART": "heure normale d’Argentine", "ARST": "heure d’été de l’Argentine", "NZST": "heure normale de la Nouvelle-Zélande", "ChST": "heure des Chamorro", "GMT": "heure moyenne de Greenwich", "ACWST": "heure normale du centre-ouest de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "MESZ": "heure d’été d’Europe centrale", "∅∅∅": "heure d’été de l’Amazonie", "WAST": "heure d’été d’Afrique de l’Ouest", "MDT": "heure d’été de Macao", "UYT": "heure normale de l’Uruguay", "SRT": "heure du Suriname", "ADT": "heure d’été de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "HAT": "heure d’été de Terre-Neuve", "WITA": "heure du Centre indonésien", "OESZ": "heure d’été d’Europe de l’Est", "COT": "heure normale de Colombie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "MST": "heure normale de Macao", "HAST": "heure normale d’Hawaii - Aléoutiennes", "AKDT": "heure d’été de l’Alaska", "PDT": "heure d’été du Pacifique", "AEDT": "heure d’été de l’Est de l’Australie", "HKST": "heure d’été de Hong Kong", "LHST": "heure normale de Lord Howe", "HECU": "heure d’été de Cuba", "WIB": "heure de l’Ouest indonésien", "HNOG": "heure normale de l’Ouest du Groenland", "CDT": "heure d’été du Centre", "AWST": "heure normale de l’Ouest de l’Australie", "JST": "heure normale du Japon", "BOT": "heure de Bolivie", "GFT": "heure de la Guyane française", "WART": "heure normale de l’Ouest argentin", "HNPMX": "heure normale du Pacifique mexicain", "CST": "heure normale du centre nord-américain", "CLST": "heure d’été du Chili", "JDT": "heure d’été du Japon", "WARST": "heure d’été de l’Ouest argentin", "EDT": "heure d’été de l’Est", "VET": "heure du Venezuela", "HNCU": "heure normale de Cuba", "IST": "heure de l’Inde", "ACST": "heure normale du centre de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "BT": "heure du Bhoutan", "HEOG": "heure d’été de l’Ouest du Groenland", "NZDT": "heure d’été de la Nouvelle-Zélande", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "CAT": "heure normale d’Afrique centrale", "COST": "heure d’été de Colombie", "SGT": "heure de Singapour", "GYT": "heure du Guyana", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AEST": "heure normale de l’Est de l’Australie", "AKST": "heure normale de l’Alaska", "WESZ": "heure d’été d’Europe de l’Ouest", "HKT": "heure normale de Hong Kong", "MEZ": "heure normale d’Europe centrale"},
+ timezones: map[string]string{"HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "SRT": "heure du Suriname", "HECU": "heure d’été de Cuba", "CHADT": "heure d’été des îles Chatham", "BOT": "heure de Bolivie", "CLT": "heure normale du Chili", "HNT": "heure normale de Terre-Neuve", "ARST": "heure d’été de l’Argentine", "BT": "heure du Bhoutan", "HNEG": "heure normale de l’Est du Groenland", "WITA": "heure du Centre indonésien", "SAST": "heure normale d’Afrique méridionale", "HEPMX": "heure d’été du Pacifique mexicain", "OESZ": "heure d’été d’Europe de l’Est", "WESZ": "heure d’été d’Europe de l’Ouest", "CAT": "heure normale d’Afrique centrale", "WIT": "heure de l’Est indonésien", "PDT": "heure d’été du Pacifique", "ADT": "heure d’été de l’Atlantique", "MYT": "heure de la Malaisie", "MST": "heure normale de Macao", "HEEG": "heure d’été de l’Est du Groenland", "UYST": "heure d’été de l’Uruguay", "MESZ": "heure d’été d’Europe centrale", "CLST": "heure d’été du Chili", "HAT": "heure d’été de Terre-Neuve", "∅∅∅": "heure d’été de l’Acre", "EAT": "heure normale d’Afrique de l’Est", "VET": "heure du Venezuela", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HNCU": "heure normale de Cuba", "WEZ": "heure normale d’Europe de l’Ouest", "AEST": "heure normale de l’Est de l’Australie", "ChST": "heure des Chamorro", "UYT": "heure normale de l’Uruguay", "ART": "heure normale d’Argentine", "ACST": "heure normale du centre de l’Australie", "AST": "heure normale de l’Atlantique", "EDT": "heure d’été de l’Est", "AKST": "heure normale de l’Alaska", "MEZ": "heure normale d’Europe centrale", "HEOG": "heure d’été de l’Ouest du Groenland", "CHAST": "heure normale des îles Chatham", "HAST": "heure normale d’Hawaii - Aléoutiennes", "MDT": "heure d’été de Macao", "LHDT": "heure d’été de Lord Howe", "HNPMX": "heure normale du Pacifique mexicain", "IST": "heure de l’Inde", "NZDT": "heure d’été de la Nouvelle-Zélande", "WART": "heure normale de l’Ouest argentin", "TMST": "heure d’été du Turkménistan", "COST": "heure d’été de Colombie", "GYT": "heure du Guyana", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACWDT": "heure d’été du centre-ouest de l’Australie", "GMT": "heure moyenne de Greenwich", "WAT": "heure normale d’Afrique de l’Ouest", "CST": "heure normale du centre nord-américain", "CDT": "heure d’été du Centre", "ACDT": "heure d’été du centre de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "COT": "heure normale de Colombie", "LHST": "heure normale de Lord Howe", "AWST": "heure normale de l’Ouest de l’Australie", "SGT": "heure de Singapour", "PST": "heure normale du Pacifique nord-américain", "WAST": "heure d’été d’Afrique de l’Ouest", "EST": "heure normale de l’Est nord-américain", "ACWST": "heure normale du centre-ouest de l’Australie", "HKST": "heure d’été de Hong Kong", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "ECT": "heure de l’Équateur", "HNOG": "heure normale de l’Ouest du Groenland", "AEDT": "heure d’été de l’Est de l’Australie", "AKDT": "heure d’été de l’Alaska", "HKT": "heure normale de Hong Kong", "GFT": "heure de la Guyane française", "OEZ": "heure normale d’Europe de l’Est", "WARST": "heure d’été de l’Ouest argentin", "TMT": "heure normale du Turkménistan", "WIB": "heure de l’Ouest indonésien", "AWDT": "heure d’été de l’Ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "JST": "heure normale du Japon", "JDT": "heure d’été du Japon"},
}
}
diff --git a/fr_MR/fr_MR.go b/fr_MR/fr_MR.go
index c9d5fca6..482d918d 100644
--- a/fr_MR/fr_MR.go
+++ b/fr_MR/fr_MR.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"AEST": "heure normale de l’Est de l’Australie", "WITA": "heure du Centre indonésien", "CAT": "heure normale d’Afrique centrale", "COST": "heure d’été de Colombie", "ACWST": "heure normale du centre-ouest de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "SAST": "heure normale d’Afrique méridionale", "ChST": "heure des Chamorro", "WESZ": "heure d’été d’Europe de l’Ouest", "OEZ": "heure normale d’Europe de l’Est", "EDT": "heure d’été de l’Est", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HECU": "heure d’été de Cuba", "MST": "heure normale de Macao", "MYT": "heure de la Malaisie", "UYT": "heure normale de l’Uruguay", "AKST": "heure normale de l’Alaska", "WAST": "heure d’été d’Afrique de l’Ouest", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "MESZ": "heure d’été d’Europe centrale", "CLT": "heure normale du Chili", "NZST": "heure normale de la Nouvelle-Zélande", "TMST": "heure d’été du Turkménistan", "WART": "heure normale de l’Ouest argentin", "HNOG": "heure normale de l’Ouest du Groenland", "LHDT": "heure d’été de Lord Howe", "AWDT": "heure d’été de l’Ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "LHST": "heure normale de Lord Howe", "WARST": "heure d’été de l’Ouest argentin", "HEPMX": "heure d’été du Pacifique mexicain", "VET": "heure du Venezuela", "CST": "heure normale du centre nord-américain", "BT": "heure du Bhoutan", "WIB": "heure de l’Ouest indonésien", "HNT": "heure normale de Terre-Neuve", "HKT": "heure normale de Hong Kong", "BOT": "heure de Bolivie", "HNCU": "heure normale de Cuba", "EST": "heure normale de l’Est nord-américain", "AKDT": "heure d’été de l’Alaska", "CDT": "heure d’été du Centre", "ADT": "heure d’été de l’Atlantique", "SRT": "heure du Suriname", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "OESZ": "heure d’été d’Europe de l’Est", "MDT": "heure d’été de Macao", "GYT": "heure du Guyana", "NZDT": "heure d’été de la Nouvelle-Zélande", "CLST": "heure d’été du Chili", "HNEG": "heure normale de l’Est du Groenland", "WEZ": "heure normale d’Europe de l’Ouest", "TMT": "heure normale du Turkménistan", "ACST": "heure normale du centre de l’Australie", "SGT": "heure de Singapour", "UYST": "heure d’été de l’Uruguay", "WIT": "heure de l’Est indonésien", "HEOG": "heure d’été de l’Ouest du Groenland", "PDT": "heure d’été du Pacifique", "HAT": "heure d’été de Terre-Neuve", "AWST": "heure normale de l’Ouest de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "∅∅∅": "heure d’été du Pérou", "HNPMX": "heure normale du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "GFT": "heure de la Guyane française", "ACDT": "heure d’été du centre de l’Australie", "CHADT": "heure d’été des îles Chatham", "JST": "heure normale du Japon", "JDT": "heure d’été du Japon", "COT": "heure normale de Colombie", "ART": "heure normale d’Argentine", "EAT": "heure normale d’Afrique de l’Est", "WAT": "heure normale d’Afrique de l’Ouest", "ECT": "heure de l’Équateur", "IST": "heure de l’Inde", "HEEG": "heure d’été de l’Est du Groenland", "GMT": "heure moyenne de Greenwich", "PST": "heure normale du Pacifique nord-américain", "HKST": "heure d’été de Hong Kong", "CHAST": "heure normale des îles Chatham", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACWDT": "heure d’été du centre-ouest de l’Australie", "ARST": "heure d’été de l’Argentine"},
+ timezones: map[string]string{"ECT": "heure de l’Équateur", "WART": "heure normale de l’Ouest argentin", "OESZ": "heure d’été d’Europe de l’Est", "ACST": "heure normale du centre de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "HEPMX": "heure d’été du Pacifique mexicain", "CHADT": "heure d’été des îles Chatham", "CAT": "heure normale d’Afrique centrale", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "LHDT": "heure d’été de Lord Howe", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "NZST": "heure normale de la Nouvelle-Zélande", "JST": "heure normale du Japon", "HKT": "heure normale de Hong Kong", "HNCU": "heure normale de Cuba", "SRT": "heure du Suriname", "HNPMX": "heure normale du Pacifique mexicain", "CDT": "heure d’été du Centre", "WIT": "heure de l’Est indonésien", "OEZ": "heure normale d’Europe de l’Est", "WESZ": "heure d’été d’Europe de l’Ouest", "MST": "heure normale de Macao", "WITA": "heure du Centre indonésien", "TMT": "heure normale du Turkménistan", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HNOG": "heure normale de l’Ouest du Groenland", "AKST": "heure normale de l’Alaska", "CST": "heure normale du centre nord-américain", "ACWST": "heure normale du centre-ouest de l’Australie", "CLT": "heure normale du Chili", "HAT": "heure d’été de Terre-Neuve", "HECU": "heure d’été de Cuba", "BOT": "heure de Bolivie", "WARST": "heure d’été de l’Ouest argentin", "AST": "heure normale de l’Atlantique", "BT": "heure du Bhoutan", "UYST": "heure d’été de l’Uruguay", "LHST": "heure normale de Lord Howe", "ART": "heure normale d’Argentine", "UYT": "heure normale de l’Uruguay", "PST": "heure normale du Pacifique nord-américain", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "GFT": "heure de la Guyane française", "AWST": "heure normale de l’Ouest de l’Australie", "SGT": "heure de Singapour", "PDT": "heure d’été du Pacifique", "JDT": "heure d’été du Japon", "GMT": "heure moyenne de Greenwich", "WAT": "heure normale d’Afrique de l’Ouest", "HNEG": "heure normale de l’Est du Groenland", "COT": "heure normale de Colombie", "∅∅∅": "heure d’été de l’Acre", "HEEG": "heure d’été de l’Est du Groenland", "NZDT": "heure d’été de la Nouvelle-Zélande", "MYT": "heure de la Malaisie", "WEZ": "heure normale d’Europe de l’Ouest", "ARST": "heure d’été de l’Argentine", "EST": "heure normale de l’Est nord-américain", "SAST": "heure normale d’Afrique méridionale", "VET": "heure du Venezuela", "HKST": "heure d’été de Hong Kong", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AKDT": "heure d’été de l’Alaska", "CHAST": "heure normale des îles Chatham", "IST": "heure de l’Inde", "WAST": "heure d’été d’Afrique de l’Ouest", "COST": "heure d’été de Colombie", "HAST": "heure normale d’Hawaii - Aléoutiennes", "MEZ": "heure normale d’Europe centrale", "MESZ": "heure d’été d’Europe centrale", "CLST": "heure d’été du Chili", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "GYT": "heure du Guyana", "HNT": "heure normale de Terre-Neuve", "WIB": "heure de l’Ouest indonésien", "AWDT": "heure d’été de l’Ouest de l’Australie", "TMST": "heure d’été du Turkménistan", "MDT": "heure d’été de Macao", "EDT": "heure d’été de l’Est", "ChST": "heure des Chamorro", "EAT": "heure normale d’Afrique de l’Est", "HEOG": "heure d’été de l’Ouest du Groenland", "ADT": "heure d’été de l’Atlantique", "AEST": "heure normale de l’Est de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie"},
}
}
diff --git a/fr_MU/fr_MU.go b/fr_MU/fr_MU.go
index 09ac44aa..97c8354f 100644
--- a/fr_MU/fr_MU.go
+++ b/fr_MU/fr_MU.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"CAT": "heure normale d’Afrique centrale", "WART": "heure normale de l’Ouest argentin", "GYT": "heure du Guyana", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MESZ": "heure d’été d’Europe centrale", "LHDT": "heure d’été de Lord Howe", "CLST": "heure d’été du Chili", "WAT": "heure normale d’Afrique de l’Ouest", "WAST": "heure d’été d’Afrique de l’Ouest", "WIT": "heure de l’Est indonésien", "WEZ": "heure normale d’Europe de l’Ouest", "AWDT": "heure d’été de l’Ouest de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "JDT": "heure d’été du Japon", "OESZ": "heure d’été d’Europe de l’Est", "HNPMX": "heure normale du Pacifique mexicain", "HEPMX": "heure d’été du Pacifique mexicain", "EST": "heure normale de l’Est nord-américain", "MYT": "heure de la Malaisie", "PST": "heure normale du Pacifique nord-américain", "HECU": "heure d’été de Cuba", "PDT": "heure d’été du Pacifique", "EAT": "heure normale d’Afrique de l’Est", "HAST": "heure normale d’Hawaii - Aléoutiennes", "AEDT": "heure d’été de l’Est de l’Australie", "TMT": "heure normale du Turkménistan", "UYST": "heure d’été de l’Uruguay", "ACWST": "heure normale du centre-ouest de l’Australie", "HEOG": "heure d’été de l’Ouest du Groenland", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "COST": "heure d’été de Colombie", "HNCU": "heure normale de Cuba", "∅∅∅": "heure d’été des Açores", "AKST": "heure normale de l’Alaska", "WESZ": "heure d’été d’Europe de l’Ouest", "HKT": "heure normale de Hong Kong", "ACST": "heure normale du centre de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "OEZ": "heure normale d’Europe de l’Est", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HNOG": "heure normale de l’Ouest du Groenland", "CHAST": "heure normale des îles Chatham", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EDT": "heure d’été de l’Est", "MST": "heure normale de Macao", "AKDT": "heure d’été de l’Alaska", "AST": "heure normale de l’Atlantique", "SAST": "heure normale d’Afrique méridionale", "BOT": "heure de Bolivie", "GMT": "heure moyenne de Greenwich", "ART": "heure normale d’Argentine", "JST": "heure normale du Japon", "HNEG": "heure normale de l’Est du Groenland", "ChST": "heure des Chamorro", "HNT": "heure normale de Terre-Neuve", "HEEG": "heure d’été de l’Est du Groenland", "BT": "heure du Bhoutan", "SRT": "heure du Suriname", "AWST": "heure normale de l’Ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "LHST": "heure normale de Lord Howe", "GFT": "heure de la Guyane française", "COT": "heure normale de Colombie", "UYT": "heure normale de l’Uruguay", "WIB": "heure de l’Ouest indonésien", "HAT": "heure d’été de Terre-Neuve", "ARST": "heure d’été de l’Argentine", "WITA": "heure du Centre indonésien", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CLT": "heure normale du Chili", "MDT": "heure d’été de Macao", "VET": "heure du Venezuela", "CHADT": "heure d’été des îles Chatham", "TMST": "heure d’été du Turkménistan", "SGT": "heure de Singapour", "CST": "heure normale du centre nord-américain", "CDT": "heure d’été du Centre", "ADT": "heure d’été de l’Atlantique", "IST": "heure de l’Inde", "ECT": "heure de l’Équateur", "WARST": "heure d’été de l’Ouest argentin", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HKST": "heure d’été de Hong Kong", "AEST": "heure normale de l’Est de l’Australie", "MEZ": "heure normale d’Europe centrale"},
+ timezones: map[string]string{"MDT": "heure d’été des Rocheuses", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "SRT": "heure du Suriname", "GYT": "heure du Guyana", "HEOG": "heure d’été de l’Ouest du Groenland", "HKST": "heure d’été de Hong Kong", "ACDT": "heure d’été du centre de l’Australie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "CHAST": "heure normale des îles Chatham", "TMST": "heure d’été du Turkménistan", "COST": "heure d’été de Colombie", "BT": "heure du Bhoutan", "WIT": "heure de l’Est indonésien", "HAST": "heure normale d’Hawaii - Aléoutiennes", "NZST": "heure normale de la Nouvelle-Zélande", "MYT": "heure de la Malaisie", "WARST": "heure d’été de l’Ouest argentin", "HNT": "heure normale de Terre-Neuve", "CST": "heure normale du centre nord-américain", "SGT": "heure de Singapour", "WIB": "heure de l’Ouest indonésien", "BOT": "heure de Bolivie", "CAT": "heure normale d’Afrique centrale", "MESZ": "heure d’été d’Europe centrale", "OEZ": "heure normale d’Europe de l’Est", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HAT": "heure d’été de Terre-Neuve", "WITA": "heure du Centre indonésien", "OESZ": "heure d’été d’Europe de l’Est", "GMT": "heure moyenne de Greenwich", "TMT": "heure normale du Turkménistan", "SAST": "heure normale d’Afrique méridionale", "LHDT": "heure d’été de Lord Howe", "ECT": "heure de l’Équateur", "EDT": "heure d’été de l’Est", "AKDT": "heure d’été de l’Alaska", "ChST": "heure des Chamorro", "WAT": "heure normale d’Afrique de l’Ouest", "JDT": "heure d’été du Japon", "ARST": "heure d’été de l’Argentine", "AEDT": "heure d’été de l’Est de l’Australie", "HEPMX": "heure d’été du Pacifique mexicain", "EAT": "heure normale d’Afrique de l’Est", "HECU": "heure d’été de Cuba", "AWDT": "heure d’été de l’Ouest de l’Australie", "ACST": "heure normale du centre de l’Australie", "GFT": "heure de la Guyane française", "AEST": "heure normale de l’Est de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "ADT": "heure d’été de l’Atlantique", "ART": "heure normale d’Argentine", "AWST": "heure normale de l’Ouest de l’Australie", "ACWST": "heure normale du centre-ouest de l’Australie", "VET": "heure du Venezuela", "AST": "heure normale de l’Atlantique", "WEZ": "heure normale d’Europe de l’Ouest", "WESZ": "heure d’été d’Europe de l’Ouest", "EST": "heure normale de l’Est nord-américain", "HNEG": "heure normale de l’Est du Groenland", "HNCU": "heure normale de Cuba", "WART": "heure normale de l’Ouest argentin", "ACWDT": "heure d’été du centre-ouest de l’Australie", "JST": "heure normale du Japon", "CLT": "heure normale du Chili", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "HNPMX": "heure normale du Pacifique mexicain", "CHADT": "heure d’été des îles Chatham", "PST": "heure normale du Pacifique nord-américain", "CLST": "heure d’été du Chili", "WAST": "heure d’été d’Afrique de l’Ouest", "HKT": "heure normale de Hong Kong", "UYT": "heure normale de l’Uruguay", "HNOG": "heure normale de l’Ouest du Groenland", "AKST": "heure normale de l’Alaska", "IST": "heure de l’Inde", "MST": "heure normale des Rocheuses", "CDT": "heure d’été du Centre", "PDT": "heure d’été du Pacifique", "∅∅∅": "heure d’été de l’Acre", "MEZ": "heure normale d’Europe centrale", "COT": "heure normale de Colombie", "LHST": "heure normale de Lord Howe", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HEEG": "heure d’été de l’Est du Groenland", "UYST": "heure d’été de l’Uruguay"},
}
}
diff --git a/fr_NC/fr_NC.go b/fr_NC/fr_NC.go
index 66d4bdf4..e1a6ccbd 100644
--- a/fr_NC/fr_NC.go
+++ b/fr_NC/fr_NC.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"EST": "heure normale de l’Est nord-américain", "WESZ": "heure d’été d’Europe de l’Ouest", "AWDT": "heure d’été de l’Ouest de l’Australie", "CLST": "heure d’été du Chili", "OEZ": "heure normale d’Europe de l’Est", "∅∅∅": "heure d’été de l’Amazonie", "NZDT": "heure d’été de la Nouvelle-Zélande", "UYST": "heure d’été de l’Uruguay", "ART": "heure normale d’Argentine", "HEOG": "heure d’été de l’Ouest du Groenland", "EAT": "heure normale d’Afrique de l’Est", "AKDT": "heure d’été de l’Alaska", "GMT": "heure moyenne de Greenwich", "EDT": "heure d’été de l’Est", "CDT": "heure d’été du Centre", "WITA": "heure du Centre indonésien", "AEDT": "heure d’été de l’Est de l’Australie", "CHADT": "heure d’été des îles Chatham", "BOT": "heure de Bolivie", "TMST": "heure d’été du Turkménistan", "ACWST": "heure normale du centre-ouest de l’Australie", "HAT": "heure d’été de Terre-Neuve", "SAST": "heure normale d’Afrique méridionale", "TMT": "heure normale du Turkménistan", "HAST": "heure normale d’Hawaii - Aléoutiennes", "SRT": "heure du Suriname", "BT": "heure du Bhoutan", "CLT": "heure normale du Chili", "GYT": "heure du Guyana", "HNPMX": "heure normale du Pacifique mexicain", "WIT": "heure de l’Est indonésien", "PST": "heure normale du Pacifique nord-américain", "NZST": "heure normale de la Nouvelle-Zélande", "ACST": "heure normale du centre de l’Australie", "WARST": "heure d’été de l’Ouest argentin", "WAST": "heure d’été d’Afrique de l’Ouest", "SGT": "heure de Singapour", "MYT": "heure de la Malaisie", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "AWST": "heure normale de l’Ouest de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "GFT": "heure de la Guyane française", "ACDT": "heure d’été du centre de l’Australie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "WART": "heure normale de l’Ouest argentin", "MST": "heure normale de Macao", "UYT": "heure normale de l’Uruguay", "ARST": "heure d’été de l’Argentine", "CHAST": "heure normale des îles Chatham", "JDT": "heure d’été du Japon", "HEEG": "heure d’été de l’Est du Groenland", "ADT": "heure d’été de l’Atlantique", "WIB": "heure de l’Ouest indonésien", "AEST": "heure normale de l’Est de l’Australie", "CAT": "heure normale d’Afrique centrale", "CST": "heure normale du centre nord-américain", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HNT": "heure normale de Terre-Neuve", "OESZ": "heure d’été d’Europe de l’Est", "HECU": "heure d’été de Cuba", "MDT": "heure d’été de Macao", "WEZ": "heure normale d’Europe de l’Ouest", "PDT": "heure d’été du Pacifique", "HNEG": "heure normale de l’Est du Groenland", "HNCU": "heure normale de Cuba", "VET": "heure du Venezuela", "LHDT": "heure d’été de Lord Howe", "MESZ": "heure d’été d’Europe centrale", "JST": "heure normale du Japon", "ECT": "heure de l’Équateur", "COST": "heure d’été de Colombie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "AST": "heure normale de l’Atlantique", "HKT": "heure normale de Hong Kong", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MEZ": "heure normale d’Europe centrale", "ChST": "heure des Chamorro", "COT": "heure normale de Colombie", "IST": "heure de l’Inde", "LHST": "heure normale de Lord Howe", "HEPMX": "heure d’été du Pacifique mexicain", "AKST": "heure normale de l’Alaska", "HKST": "heure d’été de Hong Kong", "WAT": "heure normale d’Afrique de l’Ouest", "HNOG": "heure normale de l’Ouest du Groenland"},
+ timezones: map[string]string{"WIB": "heure de l’Ouest indonésien", "WITA": "heure du Centre indonésien", "HNT": "heure normale de Terre-Neuve", "AKST": "heure normale de l’Alaska", "HNPMX": "heure normale du Pacifique mexicain", "PDT": "heure d’été du Pacifique", "CLST": "heure d’été du Chili", "HEOG": "heure d’été de l’Ouest du Groenland", "HKST": "heure d’été de Hong Kong", "WIT": "heure de l’Est indonésien", "CHADT": "heure d’été des îles Chatham", "IST": "heure de l’Inde", "GYT": "heure du Guyana", "MESZ": "heure d’été d’Europe centrale", "WEZ": "heure normale d’Europe de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HEEG": "heure d’été de l’Est du Groenland", "AKDT": "heure d’été de l’Alaska", "VET": "heure du Venezuela", "GMT": "heure moyenne de Greenwich", "AST": "heure normale de l’Atlantique", "WAT": "heure normale d’Afrique de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "UYT": "heure normale de l’Uruguay", "SAST": "heure normale d’Afrique méridionale", "AWST": "heure normale de l’Ouest de l’Australie", "ACWST": "heure normale du centre-ouest de l’Australie", "TMST": "heure d’été du Turkménistan", "HKT": "heure normale de Hong Kong", "CLT": "heure normale du Chili", "OESZ": "heure d’été d’Europe de l’Est", "∅∅∅": "heure d’été de Brasilia", "SGT": "heure de Singapour", "PST": "heure normale du Pacifique nord-américain", "WESZ": "heure d’été d’Europe de l’Ouest", "HEPMX": "heure d’été du Pacifique mexicain", "HECU": "heure d’été de Cuba", "HNOG": "heure normale de l’Ouest du Groenland", "ARST": "heure d’été de l’Argentine", "ACDT": "heure d’été du centre de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "UYST": "heure d’été de l’Uruguay", "CHAST": "heure normale des îles Chatham", "ACWDT": "heure d’été du centre-ouest de l’Australie", "OEZ": "heure normale d’Europe de l’Est", "HNEG": "heure normale de l’Est du Groenland", "NZST": "heure normale de la Nouvelle-Zélande", "MEZ": "heure normale d’Europe centrale", "ADT": "heure d’été de l’Atlantique", "COT": "heure normale de Colombie", "WAST": "heure d’été d’Afrique de l’Ouest", "EST": "heure normale de l’Est nord-américain", "AEST": "heure normale de l’Est de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HNCU": "heure normale de Cuba", "ECT": "heure de l’Équateur", "JST": "heure normale du Japon", "ART": "heure normale d’Argentine", "LHST": "heure normale de Lord Howe", "LHDT": "heure d’été de Lord Howe", "WARST": "heure d’été de l’Ouest argentin", "MDT": "heure d’été de Macao", "EDT": "heure d’été de l’Est", "BT": "heure du Bhoutan", "ACST": "heure normale du centre de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "ChST": "heure des Chamorro", "CST": "heure normale du centre nord-américain", "AWDT": "heure d’été de l’Ouest de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "MYT": "heure de la Malaisie", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "CAT": "heure normale d’Afrique centrale", "JDT": "heure d’été du Japon", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "GFT": "heure de la Guyane française", "EAT": "heure normale d’Afrique de l’Est", "CDT": "heure d’été du Centre", "BOT": "heure de Bolivie", "WART": "heure normale de l’Ouest argentin", "SRT": "heure du Suriname", "HAST": "heure normale d’Hawaii - Aléoutiennes", "TMT": "heure normale du Turkménistan", "MST": "heure normale de Macao", "COST": "heure d’été de Colombie"},
}
}
diff --git a/fr_NE/fr_NE.go b/fr_NE/fr_NE.go
index a6c6e33a..956c0e97 100644
--- a/fr_NE/fr_NE.go
+++ b/fr_NE/fr_NE.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"WARST": "heure d’été de l’Ouest argentin", "HECU": "heure d’été de Cuba", "MST": "heure normale de Macao", "UYT": "heure normale de l’Uruguay", "HKST": "heure d’été de Hong Kong", "MESZ": "heure d’été d’Europe centrale", "AWST": "heure normale de l’Ouest de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "WART": "heure normale de l’Ouest argentin", "ECT": "heure de l’Équateur", "AST": "heure normale de l’Atlantique", "GYT": "heure du Guyana", "HAT": "heure d’été de Terre-Neuve", "ACST": "heure normale du centre de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "CLT": "heure normale du Chili", "HEEG": "heure d’été de l’Est du Groenland", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "COST": "heure d’été de Colombie", "CST": "heure normale du centre nord-américain", "JST": "heure normale du Japon", "CLST": "heure d’été du Chili", "∅∅∅": "heure d’été des Açores", "WIT": "heure de l’Est indonésien", "ART": "heure normale d’Argentine", "AEST": "heure normale de l’Est de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "HNEG": "heure normale de l’Est du Groenland", "TMT": "heure normale du Turkménistan", "EST": "heure normale de l’Est nord-américain", "WIB": "heure de l’Ouest indonésien", "HAST": "heure normale d’Hawaii - Aléoutiennes", "SRT": "heure du Suriname", "PDT": "heure d’été du Pacifique", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "LHST": "heure normale de Lord Howe", "WAT": "heure normale d’Afrique de l’Ouest", "HEPMX": "heure d’été du Pacifique mexicain", "EDT": "heure d’été de l’Est", "MYT": "heure de la Malaisie", "ARST": "heure d’été de l’Argentine", "HKT": "heure normale de Hong Kong", "COT": "heure normale de Colombie", "GFT": "heure de la Guyane française", "OEZ": "heure normale d’Europe de l’Est", "UYST": "heure d’été de l’Uruguay", "AWDT": "heure d’été de l’Ouest de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MEZ": "heure normale d’Europe centrale", "JDT": "heure d’été du Japon", "MDT": "heure d’été de Macao", "VET": "heure du Venezuela", "HEOG": "heure d’été de l’Ouest du Groenland", "WEZ": "heure normale d’Europe de l’Ouest", "CAT": "heure normale d’Afrique centrale", "AKST": "heure normale de l’Alaska", "ADT": "heure d’été de l’Atlantique", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "SGT": "heure de Singapour", "BT": "heure du Bhoutan", "ACWDT": "heure d’été du centre-ouest de l’Australie", "WESZ": "heure d’été d’Europe de l’Ouest", "NZDT": "heure d’été de la Nouvelle-Zélande", "CHAST": "heure normale des îles Chatham", "WAST": "heure d’été d’Afrique de l’Ouest", "GMT": "heure moyenne de Greenwich", "CDT": "heure d’été du Centre", "ACWST": "heure normale du centre-ouest de l’Australie", "WITA": "heure du Centre indonésien", "AEDT": "heure d’été de l’Est de l’Australie", "HNCU": "heure normale de Cuba", "AKDT": "heure d’été de l’Alaska", "HNOG": "heure normale de l’Ouest du Groenland", "IST": "heure de l’Inde", "OESZ": "heure d’été d’Europe de l’Est", "HNT": "heure normale de Terre-Neuve", "PST": "heure normale du Pacifique nord-américain", "LHDT": "heure d’été de Lord Howe", "ChST": "heure des Chamorro", "BOT": "heure de Bolivie", "HNPMX": "heure normale du Pacifique mexicain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "CHADT": "heure d’été des îles Chatham", "SAST": "heure normale d’Afrique méridionale", "TMST": "heure d’été du Turkménistan"},
+ timezones: map[string]string{"SAST": "heure normale d’Afrique méridionale", "HEPMX": "heure d’été du Pacifique mexicain", "CLT": "heure normale du Chili", "MYT": "heure de la Malaisie", "HNEG": "heure normale de l’Est du Groenland", "HNCU": "heure normale de Cuba", "CHADT": "heure d’été des îles Chatham", "ECT": "heure de l’Équateur", "JDT": "heure d’été du Japon", "ART": "heure normale d’Argentine", "ACST": "heure normale du centre de l’Australie", "AKST": "heure normale de l’Alaska", "AKDT": "heure d’été de l’Alaska", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "ADT": "heure d’été de l’Atlantique", "HKT": "heure normale de Hong Kong", "HEEG": "heure d’été de l’Est du Groenland", "WARST": "heure d’été de l’Ouest argentin", "HNT": "heure normale de Terre-Neuve", "HAT": "heure d’été de Terre-Neuve", "ARST": "heure d’été de l’Argentine", "COST": "heure d’été de Colombie", "HNPMX": "heure normale du Pacifique mexicain", "CST": "heure normale du centre nord-américain", "PST": "heure normale du Pacifique nord-américain", "CLST": "heure d’été du Chili", "HNOG": "heure normale de l’Ouest du Groenland", "WESZ": "heure d’été d’Europe de l’Ouest", "SRT": "heure du Suriname", "BOT": "heure de Bolivie", "WEZ": "heure normale d’Europe de l’Ouest", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "AWDT": "heure d’été de l’Ouest de l’Australie", "VET": "heure du Venezuela", "HKST": "heure d’été de Hong Kong", "LHDT": "heure d’été de Lord Howe", "EAT": "heure normale d’Afrique de l’Est", "WIT": "heure de l’Est indonésien", "IST": "heure de l’Inde", "NZST": "heure normale de la Nouvelle-Zélande", "GMT": "heure moyenne de Greenwich", "COT": "heure normale de Colombie", "∅∅∅": "heure d’été de l’Acre", "SGT": "heure de Singapour", "ACWST": "heure normale du centre-ouest de l’Australie", "ACWDT": "heure d’été du centre-ouest de l’Australie", "MESZ": "heure d’été d’Europe centrale", "HEOG": "heure d’été de l’Ouest du Groenland", "AEDT": "heure d’été de l’Est de l’Australie", "UYST": "heure d’été de l’Uruguay", "MEZ": "heure normale d’Europe centrale", "AEST": "heure normale de l’Est de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "AST": "heure normale de l’Atlantique", "HAST": "heure normale d’Hawaii - Aléoutiennes", "TMT": "heure normale du Turkménistan", "CAT": "heure normale d’Afrique centrale", "EST": "heure normale de l’Est nord-américain", "ChST": "heure des Chamorro", "CHAST": "heure normale des îles Chatham", "GFT": "heure de la Guyane française", "GYT": "heure du Guyana", "WIB": "heure de l’Ouest indonésien", "CDT": "heure d’été du Centre", "JST": "heure normale du Japon", "OESZ": "heure d’été d’Europe de l’Est", "WART": "heure normale de l’Ouest argentin", "EDT": "heure d’été de l’Est", "WITA": "heure du Centre indonésien", "UYT": "heure normale de l’Uruguay", "AWST": "heure normale de l’Ouest de l’Australie", "PDT": "heure d’été du Pacifique", "WAST": "heure d’été d’Afrique de l’Ouest", "ACDT": "heure d’été du centre de l’Australie", "BT": "heure du Bhoutan", "MDT": "heure d’été de Macao", "WAT": "heure normale d’Afrique de l’Ouest", "LHST": "heure normale de Lord Howe", "HECU": "heure d’été de Cuba", "NZDT": "heure d’été de la Nouvelle-Zélande", "OEZ": "heure normale d’Europe de l’Est", "TMST": "heure d’été du Turkménistan", "MST": "heure normale de Macao"},
}
}
diff --git a/fr_PF/fr_PF.go b/fr_PF/fr_PF.go
index c440d81c..b3b51c00 100644
--- a/fr_PF/fr_PF.go
+++ b/fr_PF/fr_PF.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"HENOMX": "heure d’été du Nord-Ouest du Mexique", "AST": "heure normale de l’Atlantique", "PST": "heure normale du Pacifique nord-américain", "PDT": "heure d’été du Pacifique", "CLST": "heure d’été du Chili", "ACST": "heure normale du centre de l’Australie", "EST": "heure normale de l’Est nord-américain", "GYT": "heure du Guyana", "MYT": "heure de la Malaisie", "UYT": "heure normale de l’Uruguay", "IST": "heure de l’Inde", "CLT": "heure normale du Chili", "COST": "heure d’été de Colombie", "EDT": "heure d’été de l’Est", "CDT": "heure d’été du Centre", "WEZ": "heure normale d’Europe de l’Ouest", "ACWST": "heure normale du centre-ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "OESZ": "heure d’été d’Europe de l’Est", "MST": "heure normale de Macao", "SGT": "heure de Singapour", "MDT": "heure d’été de Macao", "HNPMX": "heure normale du Pacifique mexicain", "AWST": "heure normale de l’Ouest de l’Australie", "TMT": "heure normale du Turkménistan", "ChST": "heure des Chamorro", "HEOG": "heure d’été de l’Ouest du Groenland", "LHDT": "heure d’été de Lord Howe", "CHAST": "heure normale des îles Chatham", "GMT": "heure moyenne de Greenwich", "SRT": "heure du Suriname", "HNT": "heure normale de Terre-Neuve", "HNOG": "heure normale de l’Ouest du Groenland", "HNEG": "heure normale de l’Est du Groenland", "BT": "heure du Bhoutan", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WESZ": "heure d’été d’Europe de l’Ouest", "ACWDT": "heure d’été du centre-ouest de l’Australie", "LHST": "heure normale de Lord Howe", "AKST": "heure normale de l’Alaska", "WIB": "heure de l’Ouest indonésien", "ART": "heure normale d’Argentine", "AEST": "heure normale de l’Est de l’Australie", "HNCU": "heure normale de Cuba", "WIT": "heure de l’Est indonésien", "ECT": "heure de l’Équateur", "CAT": "heure normale d’Afrique centrale", "CST": "heure normale du centre nord-américain", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MESZ": "heure d’été d’Europe centrale", "JST": "heure normale du Japon", "ACDT": "heure d’été du centre de l’Australie", "OEZ": "heure normale d’Europe de l’Est", "UYST": "heure d’été de l’Uruguay", "JDT": "heure d’été du Japon", "NZDT": "heure d’été de la Nouvelle-Zélande", "WITA": "heure du Centre indonésien", "MEZ": "heure normale d’Europe centrale", "SAST": "heure normale d’Afrique méridionale", "GFT": "heure de la Guyane française", "VET": "heure du Venezuela", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "WARST": "heure d’été de l’Ouest argentin", "ARST": "heure d’été de l’Argentine", "BOT": "heure de Bolivie", "HEEG": "heure d’été de l’Est du Groenland", "ADT": "heure d’été de l’Atlantique", "AWDT": "heure d’été de l’Ouest de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "HEPMX": "heure d’été du Pacifique mexicain", "AKDT": "heure d’été de l’Alaska", "HAT": "heure d’été de Terre-Neuve", "HKT": "heure normale de Hong Kong", "∅∅∅": "heure d’été de l’Amazonie", "WAST": "heure d’été d’Afrique de l’Ouest", "COT": "heure normale de Colombie", "WART": "heure normale de l’Ouest argentin", "HECU": "heure d’été de Cuba", "HKST": "heure d’été de Hong Kong", "AEDT": "heure d’été de l’Est de l’Australie", "CHADT": "heure d’été des îles Chatham", "TMST": "heure d’été du Turkménistan", "WAT": "heure normale d’Afrique de l’Ouest"},
+ timezones: map[string]string{"AST": "heure normale de l’Atlantique", "COT": "heure normale de Colombie", "AKDT": "heure d’été de l’Alaska", "HEPMX": "heure d’été du Pacifique mexicain", "ART": "heure normale d’Argentine", "AKST": "heure normale de l’Alaska", "EST": "heure normale de l’Est nord-américain", "EAT": "heure normale d’Afrique de l’Est", "SGT": "heure de Singapour", "BOT": "heure de Bolivie", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "JDT": "heure d’été du Japon", "WARST": "heure d’été de l’Ouest argentin", "HEOG": "heure d’été de l’Ouest du Groenland", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "ChST": "heure des Chamorro", "SAST": "heure normale d’Afrique méridionale", "HNCU": "heure normale de Cuba", "ACWDT": "heure d’été du centre-ouest de l’Australie", "ADT": "heure d’été de l’Atlantique", "TMT": "heure normale du Turkménistan", "MST": "heure normale de Macao", "HNEG": "heure normale de l’Est du Groenland", "AWDT": "heure d’été de l’Ouest de l’Australie", "CHAST": "heure normale des îles Chatham", "NZDT": "heure d’été de la Nouvelle-Zélande", "MESZ": "heure d’été d’Europe centrale", "ACST": "heure normale du centre de l’Australie", "COST": "heure d’été de Colombie", "UYT": "heure normale de l’Uruguay", "CDT": "heure d’été du Centre", "PST": "heure normale du Pacifique nord-américain", "NZST": "heure normale de la Nouvelle-Zélande", "MEZ": "heure normale d’Europe centrale", "MYT": "heure de la Malaisie", "TMST": "heure d’été du Turkménistan", "EDT": "heure d’été de l’Est", "CHADT": "heure d’été des îles Chatham", "JST": "heure normale du Japon", "MDT": "heure d’été de Macao", "SRT": "heure du Suriname", "CST": "heure normale du centre nord-américain", "WIT": "heure de l’Est indonésien", "GMT": "heure moyenne de Greenwich", "BT": "heure du Bhoutan", "HAT": "heure d’été de Terre-Neuve", "HNPMX": "heure normale du Pacifique mexicain", "VET": "heure du Venezuela", "CLT": "heure normale du Chili", "WAT": "heure normale d’Afrique de l’Ouest", "HKST": "heure d’été de Hong Kong", "WITA": "heure du Centre indonésien", "AEDT": "heure d’été de l’Est de l’Australie", "LHDT": "heure d’été de Lord Howe", "PDT": "heure d’été du Pacifique", "HAST": "heure normale d’Hawaii - Aléoutiennes", "CAT": "heure normale d’Afrique centrale", "ARST": "heure d’été de l’Argentine", "HEEG": "heure d’été de l’Est du Groenland", "GFT": "heure de la Guyane française", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "GYT": "heure du Guyana", "CLST": "heure d’été du Chili", "OESZ": "heure d’été d’Europe de l’Est", "HKT": "heure normale de Hong Kong", "UYST": "heure d’été de l’Uruguay", "HECU": "heure d’été de Cuba", "WIB": "heure de l’Ouest indonésien", "AWST": "heure normale de l’Ouest de l’Australie", "ACWST": "heure normale du centre-ouest de l’Australie", "WEZ": "heure normale d’Europe de l’Ouest", "WESZ": "heure d’été d’Europe de l’Ouest", "ACDT": "heure d’été du centre de l’Australie", "∅∅∅": "heure d’été des Açores", "WART": "heure normale de l’Ouest argentin", "OEZ": "heure normale d’Europe de l’Est", "WAST": "heure d’été d’Afrique de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HNT": "heure normale de Terre-Neuve", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "LHST": "heure normale de Lord Howe", "ECT": "heure de l’Équateur", "IST": "heure de l’Inde", "HNOG": "heure normale de l’Ouest du Groenland", "AEST": "heure normale de l’Est de l’Australie"},
}
}
diff --git a/fr_PM/fr_PM.go b/fr_PM/fr_PM.go
index e218b127..41531e0a 100644
--- a/fr_PM/fr_PM.go
+++ b/fr_PM/fr_PM.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"NZST": "heure normale de la Nouvelle-Zélande", "GFT": "heure de la Guyane française", "CAT": "heure normale d’Afrique centrale", "WAT": "heure normale d’Afrique de l’Ouest", "HNCU": "heure normale de Cuba", "EST": "heure normale de l’Est nord-américain", "MST": "heure normale de Macao", "WIB": "heure de l’Ouest indonésien", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "SRT": "heure du Suriname", "∅∅∅": "heure d’été de l’Amazonie", "TMT": "heure normale du Turkménistan", "OEZ": "heure normale d’Europe de l’Est", "PST": "heure normale du Pacifique nord-américain", "PDT": "heure d’été du Pacifique", "HKST": "heure d’été de Hong Kong", "MEZ": "heure normale d’Europe centrale", "BOT": "heure de Bolivie", "HNEG": "heure normale de l’Est du Groenland", "ACDT": "heure d’été du centre de l’Australie", "IST": "heure de l’Inde", "ChST": "heure des Chamorro", "OESZ": "heure d’été d’Europe de l’Est", "MDT": "heure d’été de Macao", "AWST": "heure normale de l’Ouest de l’Australie", "CLST": "heure d’été du Chili", "WAST": "heure d’été d’Afrique de l’Ouest", "COST": "heure d’été de Colombie", "CDT": "heure d’été du Centre", "CHAST": "heure normale des îles Chatham", "MYT": "heure de la Malaisie", "LHDT": "heure d’été de Lord Howe", "CLT": "heure normale du Chili", "WART": "heure normale de l’Ouest argentin", "WEZ": "heure normale d’Europe de l’Ouest", "HNT": "heure normale de Terre-Neuve", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "MESZ": "heure d’été d’Europe centrale", "EDT": "heure d’été de l’Est", "HEPMX": "heure d’été du Pacifique mexicain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HKT": "heure normale de Hong Kong", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "SGT": "heure de Singapour", "HECU": "heure d’été de Cuba", "AKDT": "heure d’été de l’Alaska", "WESZ": "heure d’été d’Europe de l’Ouest", "HNOG": "heure normale de l’Ouest du Groenland", "JDT": "heure d’été du Japon", "WARST": "heure d’été de l’Ouest argentin", "AST": "heure normale de l’Atlantique", "AWDT": "heure d’été de l’Ouest de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "SAST": "heure normale d’Afrique méridionale", "ECT": "heure de l’Équateur", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "BT": "heure du Bhoutan", "ART": "heure normale d’Argentine", "LHST": "heure normale de Lord Howe", "CHADT": "heure d’été des îles Chatham", "JST": "heure normale du Japon", "EAT": "heure normale d’Afrique de l’Est", "ACWST": "heure normale du centre-ouest de l’Australie", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HEOG": "heure d’été de l’Ouest du Groenland", "AEDT": "heure d’été de l’Est de l’Australie", "COT": "heure normale de Colombie", "UYT": "heure normale de l’Uruguay", "UYST": "heure d’été de l’Uruguay", "GYT": "heure du Guyana", "WIT": "heure de l’Est indonésien", "ARST": "heure d’été de l’Argentine", "WITA": "heure du Centre indonésien", "HEEG": "heure d’été de l’Est du Groenland", "TMST": "heure d’été du Turkménistan", "ACST": "heure normale du centre de l’Australie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AKST": "heure normale de l’Alaska", "ADT": "heure d’été de l’Atlantique", "AEST": "heure normale de l’Est de l’Australie", "GMT": "heure moyenne de Greenwich", "HNPMX": "heure normale du Pacifique mexicain", "CST": "heure normale du centre nord-américain", "VET": "heure du Venezuela", "HAT": "heure d’été de Terre-Neuve"},
+ timezones: map[string]string{"HADT": "heure d’été d’Hawaii - Aléoutiennes", "VET": "heure du Venezuela", "ART": "heure normale d’Argentine", "WITA": "heure du Centre indonésien", "HECU": "heure d’été de Cuba", "CDT": "heure d’été du Centre", "CLST": "heure d’été du Chili", "AEDT": "heure d’été de l’Est de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZDT": "heure d’été de la Nouvelle-Zélande", "MESZ": "heure d’été d’Europe centrale", "EDT": "heure d’été de l’Est", "UYST": "heure d’été de l’Uruguay", "TMST": "heure d’été du Turkménistan", "MDT": "heure d’été de Macao", "HEEG": "heure d’été de l’Est du Groenland", "HNCU": "heure normale de Cuba", "WIB": "heure de l’Ouest indonésien", "JST": "heure normale du Japon", "WART": "heure normale de l’Ouest argentin", "AST": "heure normale de l’Atlantique", "ChST": "heure des Chamorro", "AKDT": "heure d’été de l’Alaska", "PDT": "heure d’été du Pacifique", "WARST": "heure d’été de l’Ouest argentin", "ARST": "heure d’été de l’Argentine", "HNT": "heure normale de Terre-Neuve", "HNEG": "heure normale de l’Est du Groenland", "WIT": "heure de l’Est indonésien", "CHAST": "heure normale des îles Chatham", "WEZ": "heure normale d’Europe de l’Ouest", "UYT": "heure normale de l’Uruguay", "SAST": "heure normale d’Afrique méridionale", "SGT": "heure de Singapour", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HKST": "heure d’été de Hong Kong", "WAST": "heure d’été d’Afrique de l’Ouest", "HNPMX": "heure normale du Pacifique mexicain", "SRT": "heure du Suriname", "CHADT": "heure d’été des îles Chatham", "CAT": "heure normale d’Afrique centrale", "ADT": "heure d’été de l’Atlantique", "HKT": "heure normale de Hong Kong", "COST": "heure d’été de Colombie", "ACST": "heure normale du centre de l’Australie", "ECT": "heure de l’Équateur", "ACWDT": "heure d’été du centre-ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "WESZ": "heure d’été d’Europe de l’Ouest", "EST": "heure normale de l’Est nord-américain", "GYT": "heure du Guyana", "BOT": "heure de Bolivie", "JDT": "heure d’été du Japon", "HEOG": "heure d’été de l’Ouest du Groenland", "TMT": "heure normale du Turkménistan", "LHDT": "heure d’été de Lord Howe", "CST": "heure normale du centre nord-américain", "MYT": "heure de la Malaisie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AWDT": "heure d’été de l’Ouest de l’Australie", "IST": "heure de l’Inde", "OESZ": "heure d’été d’Europe de l’Est", "HNOG": "heure normale de l’Ouest du Groenland", "WAT": "heure normale d’Afrique de l’Ouest", "COT": "heure normale de Colombie", "HAT": "heure d’été de Terre-Neuve", "GFT": "heure de la Guyane française", "HEPMX": "heure d’été du Pacifique mexicain", "∅∅∅": "heure d’été des Açores", "AWST": "heure normale de l’Ouest de l’Australie", "GMT": "heure moyenne de Greenwich", "MST": "heure normale de Macao", "EAT": "heure normale d’Afrique de l’Est", "ACWST": "heure normale du centre-ouest de l’Australie", "OEZ": "heure normale d’Europe de l’Est", "ACDT": "heure d’été du centre de l’Australie", "BT": "heure du Bhoutan", "AEST": "heure normale de l’Est de l’Australie", "AKST": "heure normale de l’Alaska", "LHST": "heure normale de Lord Howe", "PST": "heure normale du Pacifique nord-américain", "NZST": "heure normale de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "HENOMX": "heure d’été du Nord-Ouest du Mexique"},
}
}
diff --git a/fr_RE/fr_RE.go b/fr_RE/fr_RE.go
index d399f0ff..fd380491 100644
--- a/fr_RE/fr_RE.go
+++ b/fr_RE/fr_RE.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"BOT": "heure de Bolivie", "EAT": "heure normale d’Afrique de l’Est", "UYT": "heure normale de l’Uruguay", "HAST": "heure normale d’Hawaii - Aléoutiennes", "WITA": "heure du Centre indonésien", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "WAST": "heure d’été d’Afrique de l’Ouest", "AST": "heure normale de l’Atlantique", "BT": "heure du Bhoutan", "WEZ": "heure normale d’Europe de l’Ouest", "ACWST": "heure normale du centre-ouest de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "COST": "heure d’été de Colombie", "∅∅∅": "heure d’été des Açores", "GYT": "heure du Guyana", "UYST": "heure d’été de l’Uruguay", "HNEG": "heure normale de l’Est du Groenland", "ECT": "heure de l’Équateur", "WARST": "heure d’été de l’Ouest argentin", "HAT": "heure d’été de Terre-Neuve", "CHAST": "heure normale des îles Chatham", "ChST": "heure des Chamorro", "VET": "heure du Venezuela", "HEOG": "heure d’été de l’Ouest du Groenland", "AEDT": "heure d’été de l’Est de l’Australie", "MEZ": "heure normale d’Europe centrale", "CLST": "heure d’été du Chili", "GMT": "heure moyenne de Greenwich", "WIB": "heure de l’Ouest indonésien", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "AEST": "heure normale de l’Est de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "HKST": "heure d’été de Hong Kong", "OESZ": "heure d’été d’Europe de l’Est", "WART": "heure normale de l’Ouest argentin", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "MYT": "heure de la Malaisie", "SRT": "heure du Suriname", "HKT": "heure normale de Hong Kong", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CLT": "heure normale du Chili", "JDT": "heure d’été du Japon", "HECU": "heure d’été de Cuba", "HNOG": "heure normale de l’Ouest du Groenland", "WESZ": "heure d’été d’Europe de l’Ouest", "ARST": "heure d’été de l’Argentine", "AWST": "heure normale de l’Ouest de l’Australie", "LHST": "heure normale de Lord Howe", "NZDT": "heure d’été de la Nouvelle-Zélande", "IST": "heure de l’Inde", "HNCU": "heure normale de Cuba", "CDT": "heure d’été du Centre", "PDT": "heure d’été du Pacifique", "TMT": "heure normale du Turkménistan", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "CHADT": "heure d’été des îles Chatham", "MESZ": "heure d’été d’Europe centrale", "NZST": "heure normale de la Nouvelle-Zélande", "GFT": "heure de la Guyane française", "TMST": "heure d’été du Turkménistan", "CAT": "heure normale d’Afrique centrale", "HNPMX": "heure normale du Pacifique mexicain", "WIT": "heure de l’Est indonésien", "HNT": "heure normale de Terre-Neuve", "AKDT": "heure d’été de l’Alaska", "ART": "heure normale d’Argentine", "ACST": "heure normale du centre de l’Australie", "EDT": "heure d’été de l’Est", "MDT": "heure d’été de Macao", "HEPMX": "heure d’été du Pacifique mexicain", "HEEG": "heure d’été de l’Est du Groenland", "WAT": "heure normale d’Afrique de l’Ouest", "OEZ": "heure normale d’Europe de l’Est", "SAST": "heure normale d’Afrique méridionale", "SGT": "heure de Singapour", "ADT": "heure d’été de l’Atlantique", "AWDT": "heure d’été de l’Ouest de l’Australie", "PST": "heure normale du Pacifique nord-américain", "COT": "heure normale de Colombie", "MST": "heure normale de Macao", "AKST": "heure normale de l’Alaska", "CST": "heure normale du centre nord-américain", "EST": "heure normale de l’Est nord-américain", "LHDT": "heure d’été de Lord Howe", "JST": "heure normale du Japon"},
+ timezones: map[string]string{"WIB": "heure de l’Ouest indonésien", "WIT": "heure de l’Est indonésien", "BOT": "heure de Bolivie", "CHADT": "heure d’été des îles Chatham", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HEEG": "heure d’été de l’Est du Groenland", "AEST": "heure normale de l’Est de l’Australie", "MDT": "heure d’été des Rocheuses", "AST": "heure normale de l’Atlantique", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "JDT": "heure d’été du Japon", "ACDT": "heure d’été du centre de l’Australie", "LHST": "heure normale de Lord Howe", "CDT": "heure d’été du Centre", "AWDT": "heure d’été de l’Ouest de l’Australie", "VET": "heure du Venezuela", "CLST": "heure d’été du Chili", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "BT": "heure du Bhoutan", "EAT": "heure normale d’Afrique de l’Est", "CHAST": "heure normale des îles Chatham", "CST": "heure normale du centre nord-américain", "PST": "heure normale du Pacifique nord-américain", "NZST": "heure normale de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "HKT": "heure normale de Hong Kong", "AKDT": "heure d’été de l’Alaska", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "SRT": "heure du Suriname", "COT": "heure normale de Colombie", "TMT": "heure normale du Turkménistan", "ARST": "heure d’été de l’Argentine", "WAT": "heure normale d’Afrique de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "IST": "heure de l’Inde", "HEOG": "heure d’été de l’Ouest du Groenland", "HEPMX": "heure d’été du Pacifique mexicain", "HECU": "heure d’été de Cuba", "PDT": "heure d’été du Pacifique", "ACWST": "heure normale du centre-ouest de l’Australie", "WITA": "heure du Centre indonésien", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "UYT": "heure normale de l’Uruguay", "ART": "heure normale d’Argentine", "HKST": "heure d’été de Hong Kong", "ChST": "heure des Chamorro", "WESZ": "heure d’été d’Europe de l’Ouest", "HNOG": "heure normale de l’Ouest du Groenland", "WEZ": "heure normale d’Europe de l’Ouest", "ACST": "heure normale du centre de l’Australie", "SGT": "heure de Singapour", "EST": "heure normale de l’Est nord-américain", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "JST": "heure normale du Japon", "TMST": "heure d’été du Turkménistan", "WAST": "heure d’été d’Afrique de l’Ouest", "OEZ": "heure normale d’Europe de l’Est", "COST": "heure d’été de Colombie", "AEDT": "heure d’été de l’Est de l’Australie", "ECT": "heure de l’Équateur", "MEZ": "heure normale d’Europe centrale", "CAT": "heure normale d’Afrique centrale", "AKST": "heure normale de l’Alaska", "LHDT": "heure d’été de Lord Howe", "ACWDT": "heure d’été du centre-ouest de l’Australie", "GYT": "heure du Guyana", "MYT": "heure de la Malaisie", "WART": "heure normale de l’Ouest argentin", "HNT": "heure normale de Terre-Neuve", "MST": "heure normale des Rocheuses", "UYST": "heure d’été de l’Uruguay", "AWST": "heure normale de l’Ouest de l’Australie", "MESZ": "heure d’été d’Europe centrale", "GMT": "heure moyenne de Greenwich", "GFT": "heure de la Guyane française", "HNPMX": "heure normale du Pacifique mexicain", "SAST": "heure normale d’Afrique méridionale", "∅∅∅": "heure d’été de l’Acre", "WARST": "heure d’été de l’Ouest argentin", "ADT": "heure d’été de l’Atlantique", "OESZ": "heure d’été d’Europe de l’Est", "EDT": "heure d’été de l’Est", "HNEG": "heure normale de l’Est du Groenland", "HNCU": "heure normale de Cuba", "NZDT": "heure d’été de la Nouvelle-Zélande"},
}
}
diff --git a/fr_RW/fr_RW.go b/fr_RW/fr_RW.go
index 69048d68..55d55bad 100644
--- a/fr_RW/fr_RW.go
+++ b/fr_RW/fr_RW.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"WEZ": "heure normale d’Europe de l’Ouest", "WESZ": "heure d’été d’Europe de l’Ouest", "LHDT": "heure d’été de Lord Howe", "MST": "heure normale de Macao", "HNT": "heure normale de Terre-Neuve", "EDT": "heure d’été de l’Est", "GYT": "heure du Guyana", "AEDT": "heure d’été de l’Est de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "NZDT": "heure d’été de la Nouvelle-Zélande", "JST": "heure normale du Japon", "OESZ": "heure d’été d’Europe de l’Est", "CHADT": "heure d’été des îles Chatham", "WARST": "heure d’été de l’Ouest argentin", "COST": "heure d’été de Colombie", "VET": "heure du Venezuela", "ACST": "heure normale du centre de l’Australie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "MDT": "heure d’été de Macao", "CST": "heure normale du centre nord-américain", "UYT": "heure normale de l’Uruguay", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "PST": "heure normale du Pacifique nord-américain", "HKT": "heure normale de Hong Kong", "∅∅∅": "heure d’été de l’Amazonie", "HEPMX": "heure d’été du Pacifique mexicain", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HNPMX": "heure normale du Pacifique mexicain", "WIT": "heure de l’Est indonésien", "HEEG": "heure d’été de l’Est du Groenland", "ECT": "heure de l’Équateur", "HEOG": "heure d’été de l’Ouest du Groenland", "MEZ": "heure normale d’Europe centrale", "ACWST": "heure normale du centre-ouest de l’Australie", "HAT": "heure d’été de Terre-Neuve", "GMT": "heure moyenne de Greenwich", "CAT": "heure normale d’Afrique centrale", "WART": "heure normale de l’Ouest argentin", "ChST": "heure des Chamorro", "HECU": "heure d’été de Cuba", "BT": "heure du Bhoutan", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "IST": "heure de l’Inde", "CLT": "heure normale du Chili", "WITA": "heure du Centre indonésien", "TMST": "heure d’été du Turkménistan", "EAT": "heure normale d’Afrique de l’Est", "PDT": "heure d’été du Pacifique", "OEZ": "heure normale d’Europe de l’Est", "SRT": "heure du Suriname", "WIB": "heure de l’Ouest indonésien", "AEST": "heure normale de l’Est de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MESZ": "heure d’été d’Europe centrale", "SAST": "heure normale d’Afrique méridionale", "WAST": "heure d’été d’Afrique de l’Ouest", "SGT": "heure de Singapour", "HNCU": "heure normale de Cuba", "CDT": "heure d’été du Centre", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AWST": "heure normale de l’Ouest de l’Australie", "JDT": "heure d’été du Japon", "HNEG": "heure normale de l’Est du Groenland", "AKST": "heure normale de l’Alaska", "AKDT": "heure d’été de l’Alaska", "AST": "heure normale de l’Atlantique", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ART": "heure normale d’Argentine", "HKST": "heure d’été de Hong Kong", "CLST": "heure d’été du Chili", "EST": "heure normale de l’Est nord-américain", "CHAST": "heure normale des îles Chatham", "ACDT": "heure d’été du centre de l’Australie", "COT": "heure normale de Colombie", "BOT": "heure de Bolivie", "WAT": "heure normale d’Afrique de l’Ouest", "ADT": "heure d’été de l’Atlantique", "MYT": "heure de la Malaisie", "UYST": "heure d’été de l’Uruguay", "ARST": "heure d’été de l’Argentine", "GFT": "heure de la Guyane française", "TMT": "heure normale du Turkménistan", "HNOG": "heure normale de l’Ouest du Groenland", "LHST": "heure normale de Lord Howe"},
+ timezones: map[string]string{"TMST": "heure d’été du Turkménistan", "ACST": "heure normale du centre de l’Australie", "MESZ": "heure d’été d’Europe centrale", "OESZ": "heure d’été d’Europe de l’Est", "HECU": "heure d’été de Cuba", "ECT": "heure de l’Équateur", "NZDT": "heure d’été de la Nouvelle-Zélande", "VET": "heure du Venezuela", "CLT": "heure normale du Chili", "COT": "heure normale de Colombie", "UYST": "heure d’été de l’Uruguay", "GYT": "heure du Guyana", "CLST": "heure d’été du Chili", "NZST": "heure normale de la Nouvelle-Zélande", "HNOG": "heure normale de l’Ouest du Groenland", "AST": "heure normale de l’Atlantique", "WAST": "heure d’été d’Afrique de l’Ouest", "WIT": "heure de l’Est indonésien", "CST": "heure normale du centre nord-américain", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HNT": "heure normale de Terre-Neuve", "SGT": "heure de Singapour", "EAT": "heure normale d’Afrique de l’Est", "CHAST": "heure normale des îles Chatham", "PST": "heure normale du Pacifique nord-américain", "CAT": "heure normale d’Afrique centrale", "WAT": "heure normale d’Afrique de l’Ouest", "BT": "heure du Bhoutan", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "UYT": "heure normale de l’Uruguay", "MEZ": "heure normale d’Europe centrale", "ARST": "heure d’été de l’Argentine", "HKT": "heure normale de Hong Kong", "MDT": "heure d’été des Rocheuses", "AKDT": "heure d’été de l’Alaska", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HKST": "heure d’été de Hong Kong", "HEEG": "heure d’été de l’Est du Groenland", "LHST": "heure normale de Lord Howe", "ADT": "heure d’été de l’Atlantique", "TMT": "heure normale du Turkménistan", "HNPMX": "heure normale du Pacifique mexicain", "SRT": "heure du Suriname", "HNCU": "heure normale de Cuba", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WART": "heure normale de l’Ouest argentin", "ACDT": "heure d’été du centre de l’Australie", "ChST": "heure des Chamorro", "PDT": "heure d’été du Pacifique", "GFT": "heure de la Guyane française", "WITA": "heure du Centre indonésien", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "BOT": "heure de Bolivie", "IST": "heure de l’Inde", "JST": "heure normale du Japon", "HEOG": "heure d’été de l’Ouest du Groenland", "COST": "heure d’été de Colombie", "AKST": "heure normale de l’Alaska", "WIB": "heure de l’Ouest indonésien", "HEPMX": "heure d’été du Pacifique mexicain", "AWST": "heure normale de l’Ouest de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "ACWST": "heure normale du centre-ouest de l’Australie", "MYT": "heure de la Malaisie", "EST": "heure normale de l’Est nord-américain", "∅∅∅": "heure d’été de l’Acre", "MST": "heure normale des Rocheuses", "WARST": "heure d’été de l’Ouest argentin", "LHDT": "heure d’été de Lord Howe", "JDT": "heure d’été du Japon", "WESZ": "heure d’été d’Europe de l’Ouest", "GMT": "heure moyenne de Greenwich", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HAT": "heure d’été de Terre-Neuve", "AEST": "heure normale de l’Est de l’Australie", "ART": "heure normale d’Argentine", "EDT": "heure d’été de l’Est", "HNEG": "heure normale de l’Est du Groenland", "ACWDT": "heure d’été du centre-ouest de l’Australie", "SAST": "heure normale d’Afrique méridionale", "WEZ": "heure normale d’Europe de l’Ouest", "OEZ": "heure normale d’Europe de l’Est", "AEDT": "heure d’été de l’Est de l’Australie", "CDT": "heure d’été du Centre", "CHADT": "heure d’été des îles Chatham"},
}
}
diff --git a/fr_SC/fr_SC.go b/fr_SC/fr_SC.go
index 0b9d90b1..0d1fcb17 100644
--- a/fr_SC/fr_SC.go
+++ b/fr_SC/fr_SC.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"NZDT": "heure d’été de la Nouvelle-Zélande", "WIB": "heure de l’Ouest indonésien", "SGT": "heure de Singapour", "MDT": "heure d’été de Macao", "CST": "heure normale du centre nord-américain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HAT": "heure d’été de Terre-Neuve", "HEOG": "heure d’été de l’Ouest du Groenland", "HNEG": "heure normale de l’Est du Groenland", "HECU": "heure d’été de Cuba", "ChST": "heure des Chamorro", "EAT": "heure normale d’Afrique de l’Est", "EST": "heure normale de l’Est nord-américain", "BT": "heure du Bhoutan", "ACWST": "heure normale du centre-ouest de l’Australie", "AEST": "heure normale de l’Est de l’Australie", "JST": "heure normale du Japon", "TMST": "heure d’été du Turkménistan", "HNCU": "heure normale de Cuba", "CDT": "heure d’été du Centre", "ARST": "heure d’été de l’Argentine", "HKST": "heure d’été de Hong Kong", "AEDT": "heure d’été de l’Est de l’Australie", "LHST": "heure normale de Lord Howe", "JDT": "heure d’été du Japon", "ECT": "heure de l’Équateur", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EDT": "heure d’été de l’Est", "AST": "heure normale de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "PDT": "heure d’été du Pacifique", "GFT": "heure de la Guyane française", "WAST": "heure d’été d’Afrique de l’Ouest", "MESZ": "heure d’été d’Europe centrale", "ACST": "heure normale du centre de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "GYT": "heure du Guyana", "SRT": "heure du Suriname", "HNOG": "heure normale de l’Ouest du Groenland", "CHAST": "heure normale des îles Chatham", "MEZ": "heure normale d’Europe centrale", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CHADT": "heure d’été des îles Chatham", "BOT": "heure de Bolivie", "MST": "heure normale de Macao", "AKDT": "heure d’été de l’Alaska", "ART": "heure normale d’Argentine", "LHDT": "heure d’été de Lord Howe", "TMT": "heure normale du Turkménistan", "OESZ": "heure d’été d’Europe de l’Est", "WART": "heure normale de l’Ouest argentin", "HNPMX": "heure normale du Pacifique mexicain", "HEPMX": "heure d’été du Pacifique mexicain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "VET": "heure du Venezuela", "∅∅∅": "heure d’été de l’Amazonie", "HEEG": "heure d’été de l’Est du Groenland", "WEZ": "heure normale d’Europe de l’Ouest", "WESZ": "heure d’été d’Europe de l’Ouest", "CAT": "heure normale d’Afrique centrale", "IST": "heure de l’Inde", "OEZ": "heure normale d’Europe de l’Est", "ADT": "heure d’été de l’Atlantique", "WITA": "heure du Centre indonésien", "WARST": "heure d’été de l’Ouest argentin", "GMT": "heure moyenne de Greenwich", "AKST": "heure normale de l’Alaska", "HKT": "heure normale de Hong Kong", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "COST": "heure d’été de Colombie", "AWDT": "heure d’été de l’Ouest de l’Australie", "UYT": "heure normale de l’Uruguay", "AWST": "heure normale de l’Ouest de l’Australie", "WIT": "heure de l’Est indonésien", "NZST": "heure normale de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "COT": "heure normale de Colombie", "UYST": "heure d’été de l’Uruguay", "PST": "heure normale du Pacifique nord-américain", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "WAT": "heure normale d’Afrique de l’Ouest", "MYT": "heure de la Malaisie", "SAST": "heure normale d’Afrique méridionale", "CLST": "heure d’été du Chili"},
+ timezones: map[string]string{"MYT": "heure de la Malaisie", "TMST": "heure d’été du Turkménistan", "UYST": "heure d’été de l’Uruguay", "AWST": "heure normale de l’Ouest de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "MEZ": "heure normale d’Europe centrale", "EST": "heure normale de l’Est nord-américain", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "WIB": "heure de l’Ouest indonésien", "CST": "heure normale du centre nord-américain", "WART": "heure normale de l’Ouest argentin", "CLT": "heure normale du Chili", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "GFT": "heure de la Guyane française", "HNPMX": "heure normale du Pacifique mexicain", "HNCU": "heure normale de Cuba", "ECT": "heure de l’Équateur", "HNOG": "heure normale de l’Ouest du Groenland", "ACST": "heure normale du centre de l’Australie", "AKST": "heure normale de l’Alaska", "EAT": "heure normale d’Afrique de l’Est", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CLST": "heure d’été du Chili", "GYT": "heure du Guyana", "GMT": "heure moyenne de Greenwich", "WAT": "heure normale d’Afrique de l’Ouest", "HEPMX": "heure d’été du Pacifique mexicain", "EDT": "heure d’été de l’Est", "HNT": "heure normale de Terre-Neuve", "ART": "heure normale d’Argentine", "AKDT": "heure d’été de l’Alaska", "WIT": "heure de l’Est indonésien", "WEZ": "heure normale d’Europe de l’Ouest", "WARST": "heure d’été de l’Ouest argentin", "IST": "heure de l’Inde", "HKT": "heure normale de Hong Kong", "ACWST": "heure normale du centre-ouest de l’Australie", "CAT": "heure normale d’Afrique centrale", "VET": "heure du Venezuela", "OEZ": "heure normale d’Europe de l’Est", "ChST": "heure des Chamorro", "∅∅∅": "heure d’été de l’Amazonie", "JDT": "heure d’été du Japon", "CDT": "heure d’été du Centre", "CHAST": "heure normale des îles Chatham", "MESZ": "heure d’été d’Europe centrale", "HAT": "heure d’été de Terre-Neuve", "AEDT": "heure d’été de l’Est de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "OESZ": "heure d’été d’Europe de l’Est", "TMT": "heure normale du Turkménistan", "ADT": "heure d’été de l’Atlantique", "MDT": "heure d’été de Macao", "WAST": "heure d’été d’Afrique de l’Ouest", "HNEG": "heure normale de l’Est du Groenland", "HEEG": "heure d’été de l’Est du Groenland", "BT": "heure du Bhoutan", "JST": "heure normale du Japon", "AST": "heure normale de l’Atlantique", "PDT": "heure d’été du Pacifique", "ARST": "heure d’été de l’Argentine", "HKST": "heure d’été de Hong Kong", "ACDT": "heure d’été du centre de l’Australie", "COT": "heure normale de Colombie", "AEST": "heure normale de l’Est de l’Australie", "HAST": "heure normale d’Hawaii - Aléoutiennes", "PST": "heure normale du Pacifique nord-américain", "SRT": "heure du Suriname", "LHST": "heure normale de Lord Howe", "LHDT": "heure d’été de Lord Howe", "HECU": "heure d’été de Cuba", "CHADT": "heure d’été des îles Chatham", "UYT": "heure normale de l’Uruguay", "HEOG": "heure d’été de l’Ouest du Groenland", "COST": "heure d’été de Colombie", "SGT": "heure de Singapour", "NZDT": "heure d’été de la Nouvelle-Zélande", "WESZ": "heure d’été d’Europe de l’Ouest", "MST": "heure normale de Macao", "WITA": "heure du Centre indonésien", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "SAST": "heure normale d’Afrique méridionale", "BOT": "heure de Bolivie", "NZST": "heure normale de la Nouvelle-Zélande"},
}
}
diff --git a/fr_SN/fr_SN.go b/fr_SN/fr_SN.go
index 1b9cdf21..f11c39eb 100644
--- a/fr_SN/fr_SN.go
+++ b/fr_SN/fr_SN.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"ECT": "heure de l’Équateur", "UYT": "heure normale de l’Uruguay", "UYST": "heure d’été de l’Uruguay", "WESZ": "heure d’été d’Europe de l’Ouest", "ACWDT": "heure d’été du centre-ouest de l’Australie", "∅∅∅": "heure d’été de l’Amazonie", "GFT": "heure de la Guyane française", "WAT": "heure normale d’Afrique de l’Ouest", "WIT": "heure de l’Est indonésien", "ARST": "heure d’été de l’Argentine", "MESZ": "heure d’été d’Europe centrale", "NZST": "heure normale de la Nouvelle-Zélande", "AKDT": "heure d’été de l’Alaska", "OESZ": "heure d’été d’Europe de l’Est", "GMT": "heure moyenne de Greenwich", "AWDT": "heure d’été de l’Ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "CLST": "heure d’été du Chili", "JST": "heure normale du Japon", "CAT": "heure normale d’Afrique centrale", "WIB": "heure de l’Ouest indonésien", "ART": "heure normale d’Argentine", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HAT": "heure d’été de Terre-Neuve", "ACST": "heure normale du centre de l’Australie", "HNCU": "heure normale de Cuba", "AST": "heure normale de l’Atlantique", "HNOG": "heure normale de l’Ouest du Groenland", "NZDT": "heure d’été de la Nouvelle-Zélande", "JDT": "heure d’été du Japon", "HEEG": "heure d’été de l’Est du Groenland", "OEZ": "heure normale d’Europe de l’Est", "MDT": "heure d’été des Rocheuses", "PDT": "heure d’été du Pacifique", "WITA": "heure du Centre indonésien", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HEPMX": "heure d’été du Pacifique mexicain", "SGT": "heure de Singapour", "LHST": "heure normale de Lord Howe", "BOT": "heure de Bolivie", "EAT": "heure normale d’Afrique de l’Est", "MST": "heure normale des Rocheuses", "SRT": "heure du Suriname", "ACWST": "heure normale du centre-ouest de l’Australie", "HNT": "heure normale de Terre-Neuve", "AEST": "heure normale de l’Est de l’Australie", "WART": "heure normale de l’Ouest argentin", "COST": "heure d’été de Colombie", "HECU": "heure d’été de Cuba", "MYT": "heure de la Malaisie", "GYT": "heure du Guyana", "HEOG": "heure d’été de l’Ouest du Groenland", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CLT": "heure normale du Chili", "ACDT": "heure d’été du centre de l’Australie", "EST": "heure normale de l’Est nord-américain", "ChST": "heure des Chamorro", "CST": "heure normale du centre nord-américain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HNEG": "heure normale de l’Est du Groenland", "WARST": "heure d’été de l’Ouest argentin", "COT": "heure normale de Colombie", "AKST": "heure normale de l’Alaska", "HNPMX": "heure normale du Pacifique mexicain", "ADT": "heure d’été de l’Atlantique", "VET": "heure du Venezuela", "WEZ": "heure normale d’Europe de l’Ouest", "HKT": "heure normale de Hong Kong", "CHADT": "heure d’été des îles Chatham", "TMST": "heure d’été du Turkménistan", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AEDT": "heure d’été de l’Est de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "CHAST": "heure normale des îles Chatham", "IST": "heure de l’Inde", "WAST": "heure d’été d’Afrique de l’Ouest", "BT": "heure du Bhoutan", "AWST": "heure normale de l’Ouest de l’Australie", "LHDT": "heure d’été de Lord Howe", "CDT": "heure d’été du Centre", "PST": "heure normale du Pacifique nord-américain", "HKST": "heure d’été de Hong Kong", "SAST": "heure normale d’Afrique méridionale", "TMT": "heure normale du Turkménistan", "EDT": "heure d’été de l’Est"},
+ timezones: map[string]string{"BT": "heure du Bhoutan", "GFT": "heure de la Guyane française", "WITA": "heure du Centre indonésien", "AKDT": "heure d’été de l’Alaska", "AWDT": "heure d’été de l’Ouest de l’Australie", "JST": "heure normale du Japon", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ART": "heure normale d’Argentine", "ARST": "heure d’été de l’Argentine", "WAST": "heure d’été d’Afrique de l’Ouest", "HNPMX": "heure normale du Pacifique mexicain", "WIT": "heure de l’Est indonésien", "HNOG": "heure normale de l’Ouest du Groenland", "LHST": "heure normale de Lord Howe", "CLST": "heure d’été du Chili", "HNT": "heure normale de Terre-Neuve", "CLT": "heure normale du Chili", "ADT": "heure d’été de l’Atlantique", "MDT": "heure d’été de Macao", "COST": "heure d’été de Colombie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "∅∅∅": "heure d’été de Brasilia", "ECT": "heure de l’Équateur", "MST": "heure normale de Macao", "ACDT": "heure d’été du centre de l’Australie", "SRT": "heure du Suriname", "GYT": "heure du Guyana", "WEZ": "heure normale d’Europe de l’Ouest", "COT": "heure normale de Colombie", "HAT": "heure d’été de Terre-Neuve", "AEST": "heure normale de l’Est de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "AST": "heure normale de l’Atlantique", "HEOG": "heure d’été de l’Ouest du Groenland", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AEDT": "heure d’été de l’Est de l’Australie", "ChST": "heure des Chamorro", "AWST": "heure normale de l’Ouest de l’Australie", "PST": "heure normale du Pacifique nord-américain", "TMST": "heure d’été du Turkménistan", "HEPMX": "heure d’été du Pacifique mexicain", "SGT": "heure de Singapour", "OESZ": "heure d’été d’Europe de l’Est", "ACWST": "heure normale du centre-ouest de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "MYT": "heure de la Malaisie", "EST": "heure normale de l’Est nord-américain", "EDT": "heure d’été de l’Est", "AKST": "heure normale de l’Alaska", "WIB": "heure de l’Ouest indonésien", "CHADT": "heure d’été des îles Chatham", "LHDT": "heure d’été de Lord Howe", "UYT": "heure normale de l’Uruguay", "UYST": "heure d’été de l’Uruguay", "WESZ": "heure d’été d’Europe de l’Ouest", "WAT": "heure normale d’Afrique de l’Ouest", "SAST": "heure normale d’Afrique méridionale", "CAT": "heure normale d’Afrique centrale", "JDT": "heure d’été du Japon", "MEZ": "heure normale d’Europe centrale", "OEZ": "heure normale d’Europe de l’Est", "GMT": "heure moyenne de Greenwich", "CDT": "heure d’été du Centre", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WART": "heure normale de l’Ouest argentin", "WARST": "heure d’été de l’Ouest argentin", "HKST": "heure d’été de Hong Kong", "ACST": "heure normale du centre de l’Australie", "CHAST": "heure normale des îles Chatham", "NZST": "heure normale de la Nouvelle-Zélande", "ACWDT": "heure d’été du centre-ouest de l’Australie", "MESZ": "heure d’été d’Europe centrale", "TMT": "heure normale du Turkménistan", "HKT": "heure normale de Hong Kong", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HECU": "heure d’été de Cuba", "PDT": "heure d’été du Pacifique", "BOT": "heure de Bolivie", "IST": "heure de l’Inde", "VET": "heure du Venezuela", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HNEG": "heure normale de l’Est du Groenland", "HEEG": "heure d’été de l’Est du Groenland", "HNCU": "heure normale de Cuba", "CST": "heure normale du centre nord-américain"},
}
}
diff --git a/fr_SY/fr_SY.go b/fr_SY/fr_SY.go
index c4352abc..2399bf23 100644
--- a/fr_SY/fr_SY.go
+++ b/fr_SY/fr_SY.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"WART": "heure normale de l’Ouest argentin", "UYT": "heure normale de l’Uruguay", "ARST": "heure d’été de l’Argentine", "AEST": "heure normale de l’Est de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "CLT": "heure normale du Chili", "TMST": "heure d’été du Turkménistan", "HNEG": "heure normale de l’Est du Groenland", "WAST": "heure d’été d’Afrique de l’Ouest", "AKDT": "heure d’été de l’Alaska", "WIB": "heure de l’Ouest indonésien", "SRT": "heure du Suriname", "HAT": "heure d’été de Terre-Neuve", "HKST": "heure d’été de Hong Kong", "LHDT": "heure d’été de Lord Howe", "HEEG": "heure d’été de l’Est du Groenland", "HNCU": "heure normale de Cuba", "EST": "heure normale de l’Est nord-américain", "MST": "heure normale de Macao", "HNOG": "heure normale de l’Ouest du Groenland", "PST": "heure normale du Pacifique nord-américain", "MEZ": "heure normale d’Europe centrale", "LHST": "heure normale de Lord Howe", "ECT": "heure de l’Équateur", "NZDT": "heure d’été de la Nouvelle-Zélande", "ACDT": "heure d’été du centre de l’Australie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "ADT": "heure d’été de l’Atlantique", "AKST": "heure normale de l’Alaska", "GFT": "heure de la Guyane française", "SAST": "heure normale d’Afrique méridionale", "OESZ": "heure d’été d’Europe de l’Est", "∅∅∅": "heure d’été du Pérou", "SGT": "heure de Singapour", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WESZ": "heure d’été d’Europe de l’Ouest", "HKT": "heure normale de Hong Kong", "NZST": "heure normale de la Nouvelle-Zélande", "COST": "heure d’été de Colombie", "CHADT": "heure d’été des îles Chatham", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "JDT": "heure d’été du Japon", "IST": "heure de l’Inde", "WARST": "heure d’été de l’Ouest argentin", "COT": "heure normale de Colombie", "HECU": "heure d’été de Cuba", "CDT": "heure d’été du Centre", "ACWST": "heure normale du centre-ouest de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "CHAST": "heure normale des îles Chatham", "WAT": "heure normale d’Afrique de l’Ouest", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EDT": "heure d’été de l’Est", "HNPMX": "heure normale du Pacifique mexicain", "WEZ": "heure normale d’Europe de l’Ouest", "ACWDT": "heure d’été du centre-ouest de l’Australie", "ACST": "heure normale du centre de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "VET": "heure du Venezuela", "WITA": "heure du Centre indonésien", "CST": "heure normale du centre nord-américain", "GYT": "heure du Guyana", "BOT": "heure de Bolivie", "ART": "heure normale d’Argentine", "AWST": "heure normale de l’Ouest de l’Australie", "JST": "heure normale du Japon", "OEZ": "heure normale d’Europe de l’Est", "CAT": "heure normale d’Afrique centrale", "GMT": "heure moyenne de Greenwich", "MDT": "heure d’été de Macao", "MYT": "heure de la Malaisie", "WIT": "heure de l’Est indonésien", "HNT": "heure normale de Terre-Neuve", "TMT": "heure normale du Turkménistan", "ChST": "heure des Chamorro", "HEPMX": "heure d’été du Pacifique mexicain", "HEOG": "heure d’été de l’Ouest du Groenland", "MESZ": "heure d’été d’Europe centrale", "AST": "heure normale de l’Atlantique", "UYST": "heure d’été de l’Uruguay", "BT": "heure du Bhoutan", "PDT": "heure d’été du Pacifique", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CLST": "heure d’été du Chili"},
+ timezones: map[string]string{"SRT": "heure du Suriname", "HNCU": "heure normale de Cuba", "CHADT": "heure d’été des îles Chatham", "WEZ": "heure normale d’Europe de l’Ouest", "HKT": "heure normale de Hong Kong", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HNPMX": "heure normale du Pacifique mexicain", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CAT": "heure normale d’Afrique centrale", "WART": "heure normale de l’Ouest argentin", "TMST": "heure d’été du Turkménistan", "BOT": "heure de Bolivie", "UYST": "heure d’été de l’Uruguay", "CDT": "heure d’été du Centre", "SGT": "heure de Singapour", "PST": "heure normale du Pacifique nord-américain", "MYT": "heure de la Malaisie", "HNOG": "heure normale de l’Ouest du Groenland", "AST": "heure normale de l’Atlantique", "HNEG": "heure normale de l’Est du Groenland", "SAST": "heure normale d’Afrique méridionale", "ECT": "heure de l’Équateur", "PDT": "heure d’été du Pacifique", "OESZ": "heure d’été d’Europe de l’Est", "ARST": "heure d’été de l’Argentine", "AWDT": "heure d’été de l’Ouest de l’Australie", "HAST": "heure normale d’Hawaii - Aléoutiennes", "COST": "heure d’été de Colombie", "HEEG": "heure d’été de l’Est du Groenland", "HEPMX": "heure d’été du Pacifique mexicain", "WAT": "heure normale d’Afrique de l’Ouest", "∅∅∅": "heure d’été de l’Amazonie", "WESZ": "heure d’été d’Europe de l’Ouest", "WARST": "heure d’été de l’Ouest argentin", "MDT": "heure d’été de Macao", "EAT": "heure normale d’Afrique de l’Est", "MEZ": "heure normale d’Europe centrale", "ACST": "heure normale du centre de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "BT": "heure du Bhoutan", "WIB": "heure de l’Ouest indonésien", "HECU": "heure d’été de Cuba", "UYT": "heure normale de l’Uruguay", "LHDT": "heure d’été de Lord Howe", "HEOG": "heure d’été de l’Ouest du Groenland", "ADT": "heure d’été de l’Atlantique", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HNT": "heure normale de Terre-Neuve", "CST": "heure normale du centre nord-américain", "JDT": "heure d’été du Japon", "MESZ": "heure d’été d’Europe centrale", "ChST": "heure des Chamorro", "GYT": "heure du Guyana", "LHST": "heure normale de Lord Howe", "AWST": "heure normale de l’Ouest de l’Australie", "JST": "heure normale du Japon", "CLT": "heure normale du Chili", "HKST": "heure d’été de Hong Kong", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "ACWST": "heure normale du centre-ouest de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "GFT": "heure de la Guyane française", "WITA": "heure du Centre indonésien", "AKDT": "heure d’été de l’Alaska", "GMT": "heure moyenne de Greenwich", "OEZ": "heure normale d’Europe de l’Est", "MST": "heure normale de Macao", "WAST": "heure d’été d’Afrique de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "AEST": "heure normale de l’Est de l’Australie", "CHAST": "heure normale des îles Chatham", "IST": "heure de l’Inde", "VET": "heure du Venezuela", "ART": "heure normale d’Argentine", "COT": "heure normale de Colombie", "EST": "heure normale de l’Est nord-américain", "EDT": "heure d’été de l’Est", "AKST": "heure normale de l’Alaska", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "NZST": "heure normale de la Nouvelle-Zélande", "CLST": "heure d’été du Chili", "TMT": "heure normale du Turkménistan", "WIT": "heure de l’Est indonésien"},
}
}
diff --git a/fr_TD/fr_TD.go b/fr_TD/fr_TD.go
index 70a46844..530cd88f 100644
--- a/fr_TD/fr_TD.go
+++ b/fr_TD/fr_TD.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"AST": "heure normale de l’Atlantique", "HKST": "heure d’été de Hong Kong", "LHST": "heure normale de Lord Howe", "IST": "heure de l’Inde", "WIB": "heure de l’Ouest indonésien", "WEZ": "heure normale d’Europe de l’Ouest", "HNOG": "heure normale de l’Ouest du Groenland", "AWST": "heure normale de l’Ouest de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "CHAST": "heure normale des îles Chatham", "JST": "heure normale du Japon", "CAT": "heure normale d’Afrique centrale", "SGT": "heure de Singapour", "UYT": "heure normale de l’Uruguay", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ART": "heure normale d’Argentine", "ACST": "heure normale du centre de l’Australie", "HEPMX": "heure d’été du Pacifique mexicain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HKT": "heure normale de Hong Kong", "WAST": "heure d’été d’Afrique de l’Ouest", "OESZ": "heure d’été d’Europe de l’Est", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EST": "heure normale de l’Est nord-américain", "HNPMX": "heure normale du Pacifique mexicain", "AKDT": "heure d’été de l’Alaska", "GYT": "heure du Guyana", "PDT": "heure d’été du Pacifique", "AWDT": "heure d’été de l’Ouest de l’Australie", "CHADT": "heure d’été des îles Chatham", "JDT": "heure d’été du Japon", "WAT": "heure normale d’Afrique de l’Ouest", "EDT": "heure d’été de l’Est", "ADT": "heure d’été de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "HAT": "heure d’été de Terre-Neuve", "HEOG": "heure d’été de l’Ouest du Groenland", "MESZ": "heure d’été d’Europe centrale", "HNEG": "heure normale de l’Est du Groenland", "EAT": "heure normale d’Afrique de l’Est", "ECT": "heure de l’Équateur", "WART": "heure normale de l’Ouest argentin", "WIT": "heure de l’Est indonésien", "BT": "heure du Bhoutan", "LHDT": "heure d’été de Lord Howe", "CLT": "heure normale du Chili", "TMST": "heure d’été du Turkménistan", "MYT": "heure de la Malaisie", "ChST": "heure des Chamorro", "TMT": "heure normale du Turkménistan", "HECU": "heure d’été de Cuba", "WESZ": "heure d’été d’Europe de l’Ouest", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CLST": "heure d’été du Chili", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "CST": "heure normale du centre nord-américain", "SRT": "heure du Suriname", "AEST": "heure normale de l’Est de l’Australie", "MEZ": "heure normale d’Europe centrale", "NZDT": "heure d’été de la Nouvelle-Zélande", "ACWST": "heure normale du centre-ouest de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "GFT": "heure de la Guyane française", "HNCU": "heure normale de Cuba", "MST": "heure normale de Macao", "MDT": "heure d’été de Macao", "CDT": "heure d’été du Centre", "VET": "heure du Venezuela", "∅∅∅": "heure d’été de l’Amazonie", "OEZ": "heure normale d’Europe de l’Est", "GMT": "heure moyenne de Greenwich", "WITA": "heure du Centre indonésien", "HEEG": "heure d’été de l’Est du Groenland", "COT": "heure normale de Colombie", "UYST": "heure d’été de l’Uruguay", "AKST": "heure normale de l’Alaska", "ARST": "heure d’été de l’Argentine", "SAST": "heure normale d’Afrique méridionale", "BOT": "heure de Bolivie", "ACDT": "heure d’été du centre de l’Australie", "WARST": "heure d’été de l’Ouest argentin", "COST": "heure d’été de Colombie", "PST": "heure normale du Pacifique nord-américain", "ACWDT": "heure d’été du centre-ouest de l’Australie"},
+ timezones: map[string]string{"NZDT": "heure d’été de la Nouvelle-Zélande", "MESZ": "heure d’été d’Europe centrale", "JDT": "heure d’été du Japon", "HNT": "heure normale de Terre-Neuve", "AWDT": "heure d’été de l’Ouest de l’Australie", "BT": "heure du Bhoutan", "UYST": "heure d’été de l’Uruguay", "EAT": "heure normale d’Afrique de l’Est", "PST": "heure normale du Pacifique nord-américain", "ECT": "heure de l’Équateur", "GMT": "heure moyenne de Greenwich", "OESZ": "heure d’été d’Europe de l’Est", "COT": "heure normale de Colombie", "AEST": "heure normale de l’Est de l’Australie", "UYT": "heure normale de l’Uruguay", "WIT": "heure de l’Est indonésien", "AWST": "heure normale de l’Ouest de l’Australie", "PDT": "heure d’été du Pacifique", "WARST": "heure d’été de l’Ouest argentin", "∅∅∅": "heure d’été de l’Acre", "AKST": "heure normale de l’Alaska", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "GYT": "heure du Guyana", "HNCU": "heure normale de Cuba", "OEZ": "heure normale d’Europe de l’Est", "MYT": "heure de la Malaisie", "WAT": "heure normale d’Afrique de l’Ouest", "HEEG": "heure d’été de l’Est du Groenland", "GFT": "heure de la Guyane française", "COST": "heure d’été de Colombie", "MST": "heure normale des Rocheuses", "SAST": "heure normale d’Afrique méridionale", "CDT": "heure d’été du Centre", "CHAST": "heure normale des îles Chatham", "CLST": "heure d’été du Chili", "TMT": "heure normale du Turkménistan", "TMST": "heure d’été du Turkménistan", "IST": "heure de l’Inde", "AST": "heure normale de l’Atlantique", "ACWST": "heure normale du centre-ouest de l’Australie", "HNEG": "heure normale de l’Est du Groenland", "AEDT": "heure d’été de l’Est de l’Australie", "MDT": "heure d’été des Rocheuses", "LHDT": "heure d’été de Lord Howe", "HNPMX": "heure normale du Pacifique mexicain", "HEPMX": "heure d’été du Pacifique mexicain", "HECU": "heure d’été de Cuba", "ACST": "heure normale du centre de l’Australie", "AKDT": "heure d’été de l’Alaska", "BOT": "heure de Bolivie", "WAST": "heure d’été d’Afrique de l’Ouest", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HKST": "heure d’été de Hong Kong", "CHADT": "heure d’été des îles Chatham", "ACWDT": "heure d’été du centre-ouest de l’Australie", "ADT": "heure d’été de l’Atlantique", "WEZ": "heure normale d’Europe de l’Ouest", "WESZ": "heure d’été d’Europe de l’Ouest", "HNOG": "heure normale de l’Ouest du Groenland", "ARST": "heure d’été de l’Argentine", "ChST": "heure des Chamorro", "SRT": "heure du Suriname", "WIB": "heure de l’Ouest indonésien", "EDT": "heure d’été de l’Est", "HKT": "heure normale de Hong Kong", "ACDT": "heure d’été du centre de l’Australie", "HAT": "heure d’été de Terre-Neuve", "WITA": "heure du Centre indonésien", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CST": "heure normale du centre nord-américain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "MEZ": "heure normale d’Europe centrale", "CLT": "heure normale du Chili", "LHST": "heure normale de Lord Howe", "HAST": "heure normale d’Hawaii - Aléoutiennes", "VET": "heure du Venezuela", "HEOG": "heure d’été de l’Ouest du Groenland", "ART": "heure normale d’Argentine", "EST": "heure normale de l’Est nord-américain", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "SGT": "heure de Singapour", "CAT": "heure normale d’Afrique centrale", "NZST": "heure normale de la Nouvelle-Zélande", "JST": "heure normale du Japon", "WART": "heure normale de l’Ouest argentin"},
}
}
diff --git a/fr_TG/fr_TG.go b/fr_TG/fr_TG.go
index 172f76c6..08ab312c 100644
--- a/fr_TG/fr_TG.go
+++ b/fr_TG/fr_TG.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"AEDT": "heure d’été de l’Est de l’Australie", "MESZ": "heure d’été d’Europe centrale", "JDT": "heure d’été du Japon", "BOT": "heure de Bolivie", "CAT": "heure normale d’Afrique centrale", "CST": "heure normale du centre nord-américain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "CHAST": "heure normale des îles Chatham", "ChST": "heure des Chamorro", "OESZ": "heure d’été d’Europe de l’Est", "AST": "heure normale de l’Atlantique", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "CHADT": "heure d’été des îles Chatham", "COT": "heure normale de Colombie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "UYST": "heure d’été de l’Uruguay", "WIT": "heure de l’Est indonésien", "AWST": "heure normale de l’Ouest de l’Australie", "SAST": "heure normale d’Afrique méridionale", "HNCU": "heure normale de Cuba", "PDT": "heure d’été du Pacifique", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "LHDT": "heure d’été de Lord Howe", "NZST": "heure normale de la Nouvelle-Zélande", "ACDT": "heure d’été du centre de l’Australie", "GMT": "heure moyenne de Greenwich", "HNT": "heure normale de Terre-Neuve", "HKST": "heure d’été de Hong Kong", "EDT": "heure d’été de l’Est", "ADT": "heure d’été de l’Atlantique", "ART": "heure normale d’Argentine", "ARST": "heure d’été de l’Argentine", "LHST": "heure normale de Lord Howe", "NZDT": "heure d’été de la Nouvelle-Zélande", "WAT": "heure normale d’Afrique de l’Ouest", "HNPMX": "heure normale du Pacifique mexicain", "VET": "heure du Venezuela", "HNOG": "heure normale de l’Ouest du Groenland", "HEEG": "heure d’été de l’Est du Groenland", "BT": "heure du Bhoutan", "PST": "heure normale du Pacifique nord-américain", "WESZ": "heure d’été d’Europe de l’Ouest", "MEZ": "heure normale d’Europe centrale", "IST": "heure de l’Inde", "SRT": "heure du Suriname", "HEOG": "heure d’été de l’Ouest du Groenland", "AEST": "heure normale de l’Est de l’Australie", "JST": "heure normale du Japon", "SGT": "heure de Singapour", "MDT": "heure d’été de Macao", "WEZ": "heure normale d’Europe de l’Ouest", "HNEG": "heure normale de l’Est du Groenland", "WART": "heure normale de l’Ouest argentin", "MST": "heure normale de Macao", "CDT": "heure d’été du Centre", "ACST": "heure normale du centre de l’Australie", "OEZ": "heure normale d’Europe de l’Est", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "UYT": "heure normale de l’Uruguay", "HAT": "heure d’été de Terre-Neuve", "HKT": "heure normale de Hong Kong", "WITA": "heure du Centre indonésien", "GFT": "heure de la Guyane française", "ECT": "heure de l’Équateur", "WARST": "heure d’été de l’Ouest argentin", "COST": "heure d’été de Colombie", "EST": "heure normale de l’Est nord-américain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "CLST": "heure d’été du Chili", "∅∅∅": "heure d’été de l’Amazonie", "AKDT": "heure d’été de l’Alaska", "MYT": "heure de la Malaisie", "TMST": "heure d’été du Turkménistan", "EAT": "heure normale d’Afrique de l’Est", "HECU": "heure d’été de Cuba", "WIB": "heure de l’Ouest indonésien", "ACWST": "heure normale du centre-ouest de l’Australie", "CLT": "heure normale du Chili", "TMT": "heure normale du Turkménistan", "WAST": "heure d’été d’Afrique de l’Ouest", "HEPMX": "heure d’été du Pacifique mexicain", "AKST": "heure normale de l’Alaska", "GYT": "heure du Guyana", "AWDT": "heure d’été de l’Ouest de l’Australie"},
+ timezones: map[string]string{"∅∅∅": "heure d’été de Brasilia", "AWDT": "heure d’été de l’Ouest de l’Australie", "CHAST": "heure normale des îles Chatham", "MESZ": "heure d’été d’Europe centrale", "WAST": "heure d’été d’Afrique de l’Ouest", "BT": "heure du Bhoutan", "UYST": "heure d’été de l’Uruguay", "LHST": "heure normale de Lord Howe", "HEPMX": "heure d’été du Pacifique mexicain", "CDT": "heure d’été du Centre", "SGT": "heure de Singapour", "VET": "heure du Venezuela", "HKST": "heure d’été de Hong Kong", "PDT": "heure d’été du Pacifique", "AEST": "heure normale de l’Est de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "HNPMX": "heure normale du Pacifique mexicain", "ACST": "heure normale du centre de l’Australie", "HNCU": "heure normale de Cuba", "JST": "heure normale du Japon", "GMT": "heure moyenne de Greenwich", "ChST": "heure des Chamorro", "CHADT": "heure d’été des îles Chatham", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HEOG": "heure d’été de l’Ouest du Groenland", "OESZ": "heure d’été d’Europe de l’Est", "WART": "heure normale de l’Ouest argentin", "TMT": "heure normale du Turkménistan", "HAT": "heure d’été de Terre-Neuve", "WITA": "heure du Centre indonésien", "UYT": "heure normale de l’Uruguay", "GYT": "heure du Guyana", "HAST": "heure normale d’Hawaii - Aléoutiennes", "NZDT": "heure d’été de la Nouvelle-Zélande", "HNOG": "heure normale de l’Ouest du Groenland", "ARST": "heure d’été de l’Argentine", "IST": "heure de l’Inde", "CLT": "heure normale du Chili", "MST": "heure normale de Macao", "ACDT": "heure d’été du centre de l’Australie", "HNEG": "heure normale de l’Est du Groenland", "AKST": "heure normale de l’Alaska", "HECU": "heure d’été de Cuba", "PST": "heure normale du Pacifique nord-américain", "CLST": "heure d’été du Chili", "TMST": "heure d’été du Turkménistan", "WIT": "heure de l’Est indonésien", "AWST": "heure normale de l’Ouest de l’Australie", "BOT": "heure de Bolivie", "CAT": "heure normale d’Afrique centrale", "COT": "heure normale de Colombie", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "JDT": "heure d’été du Japon", "WAT": "heure normale d’Afrique de l’Ouest", "EST": "heure normale de l’Est nord-américain", "HKT": "heure normale de Hong Kong", "COST": "heure d’été de Colombie", "SAST": "heure normale d’Afrique méridionale", "ECT": "heure de l’Équateur", "NZST": "heure normale de la Nouvelle-Zélande", "ADT": "heure d’été de l’Atlantique", "WESZ": "heure d’été d’Europe de l’Ouest", "MYT": "heure de la Malaisie", "ART": "heure normale d’Argentine", "EAT": "heure normale d’Afrique de l’Est", "CST": "heure normale du centre nord-américain", "AST": "heure normale de l’Atlantique", "EDT": "heure d’été de l’Est", "HNT": "heure normale de Terre-Neuve", "SRT": "heure du Suriname", "AKDT": "heure d’été de l’Alaska", "AEDT": "heure d’été de l’Est de l’Australie", "OEZ": "heure normale d’Europe de l’Est", "WARST": "heure d’été de l’Ouest argentin", "GFT": "heure de la Guyane française", "LHDT": "heure d’été de Lord Howe", "ACWST": "heure normale du centre-ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "WEZ": "heure normale d’Europe de l’Ouest", "MDT": "heure d’été de Macao", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HEEG": "heure d’été de l’Est du Groenland", "WIB": "heure de l’Ouest indonésien"},
}
}
diff --git a/fr_TN/fr_TN.go b/fr_TN/fr_TN.go
index 16d0d9d3..c669e8e2 100644
--- a/fr_TN/fr_TN.go
+++ b/fr_TN/fr_TN.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"MDT": "heure d’été des Rocheuses", "ART": "heure normale d’Argentine", "CHAST": "heure normale des îles Chatham", "IST": "heure de l’Inde", "WAT": "heure normale d’Afrique de l’Ouest", "WARST": "heure d’été de l’Ouest argentin", "HAST": "heure normale d’Hawaii - Aléoutiennes", "LHDT": "heure d’été de Lord Howe", "CHADT": "heure d’été des îles Chatham", "BOT": "heure de Bolivie", "ACST": "heure normale du centre de l’Australie", "HNEG": "heure normale de l’Est du Groenland", "EAT": "heure normale d’Afrique de l’Est", "CAT": "heure normale d’Afrique centrale", "CDT": "heure d’été du Centre", "UYT": "heure normale de l’Uruguay", "TMT": "heure normale du Turkménistan", "ChST": "heure des Chamorro", "HEPMX": "heure d’été du Pacifique mexicain", "WIB": "heure de l’Ouest indonésien", "PST": "heure normale du Pacifique nord-américain", "HKT": "heure normale de Hong Kong", "MEZ": "heure normale d’Europe centrale", "MESZ": "heure d’été d’Europe centrale", "AWDT": "heure d’été de l’Ouest de l’Australie", "HNCU": "heure normale de Cuba", "JST": "heure normale du Japon", "OEZ": "heure normale d’Europe de l’Est", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "GMT": "heure moyenne de Greenwich", "WEZ": "heure normale d’Europe de l’Ouest", "CLST": "heure d’été du Chili", "ECT": "heure de l’Équateur", "HECU": "heure d’été de Cuba", "HNPMX": "heure normale du Pacifique mexicain", "MST": "heure normale des Rocheuses", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ARST": "heure d’été de l’Argentine", "PDT": "heure d’été du Pacifique", "AEST": "heure normale de l’Est de l’Australie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "SGT": "heure de Singapour", "EST": "heure normale de l’Est nord-américain", "VET": "heure du Venezuela", "HNT": "heure normale de Terre-Neuve", "SAST": "heure normale d’Afrique méridionale", "TMST": "heure d’été du Turkménistan", "COST": "heure d’été de Colombie", "ADT": "heure d’été de l’Atlantique", "∅∅∅": "heure d’été de l’Amazonie", "AST": "heure normale de l’Atlantique", "MYT": "heure de la Malaisie", "WIT": "heure de l’Est indonésien", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HAT": "heure d’été de Terre-Neuve", "HNOG": "heure normale de l’Ouest du Groenland", "AWST": "heure normale de l’Ouest de l’Australie", "ACWST": "heure normale du centre-ouest de l’Australie", "WITA": "heure du Centre indonésien", "NZDT": "heure d’été de la Nouvelle-Zélande", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "ACDT": "heure d’été du centre de l’Australie", "COT": "heure normale de Colombie", "HEOG": "heure d’été de l’Ouest du Groenland", "JDT": "heure d’été du Japon", "WART": "heure normale de l’Ouest argentin", "AKDT": "heure d’été de l’Alaska", "WAST": "heure d’été d’Afrique de l’Ouest", "OESZ": "heure d’été d’Europe de l’Est", "EDT": "heure d’été de l’Est", "SRT": "heure du Suriname", "BT": "heure du Bhoutan", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "LHST": "heure normale de Lord Howe", "HEEG": "heure d’été de l’Est du Groenland", "AKST": "heure normale de l’Alaska", "HKST": "heure d’été de Hong Kong", "CLT": "heure normale du Chili", "CST": "heure normale du centre nord-américain", "UYST": "heure d’été de l’Uruguay", "WESZ": "heure d’été d’Europe de l’Ouest", "AEDT": "heure d’été de l’Est de l’Australie", "GFT": "heure de la Guyane française", "GYT": "heure du Guyana"},
+ timezones: map[string]string{"SGT": "heure de Singapour", "GMT": "heure moyenne de Greenwich", "WAT": "heure normale d’Afrique de l’Ouest", "COT": "heure normale de Colombie", "AEST": "heure normale de l’Est de l’Australie", "UYST": "heure d’été de l’Uruguay", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HEPMX": "heure d’été du Pacifique mexicain", "OESZ": "heure d’été d’Europe de l’Est", "COST": "heure d’été de Colombie", "WITA": "heure du Centre indonésien", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "LHDT": "heure d’été de Lord Howe", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HKT": "heure normale de Hong Kong", "ACDT": "heure d’été du centre de l’Australie", "MDT": "heure d’été des Rocheuses", "AKDT": "heure d’été de l’Alaska", "LHST": "heure normale de Lord Howe", "HEOG": "heure d’été de l’Ouest du Groenland", "ADT": "heure d’été de l’Atlantique", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "UYT": "heure normale de l’Uruguay", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ACWST": "heure normale du centre-ouest de l’Australie", "VET": "heure du Venezuela", "WARST": "heure d’été de l’Ouest argentin", "BOT": "heure de Bolivie", "MEZ": "heure normale d’Europe centrale", "MYT": "heure de la Malaisie", "EST": "heure normale de l’Est nord-américain", "WAST": "heure d’été d’Afrique de l’Ouest", "HNPMX": "heure normale du Pacifique mexicain", "GYT": "heure du Guyana", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CLST": "heure d’été du Chili", "HKST": "heure d’été de Hong Kong", "EAT": "heure normale d’Afrique de l’Est", "CHADT": "heure d’été des îles Chatham", "JDT": "heure d’été du Japon", "TMST": "heure d’été du Turkménistan", "HNT": "heure normale de Terre-Neuve", "AKST": "heure normale de l’Alaska", "OEZ": "heure normale d’Europe de l’Est", "CLT": "heure normale du Chili", "EDT": "heure d’été de l’Est", "ACST": "heure normale du centre de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "GFT": "heure de la Guyane française", "AWST": "heure normale de l’Ouest de l’Australie", "HAT": "heure d’été de Terre-Neuve", "HEEG": "heure d’été de l’Est du Groenland", "CHAST": "heure normale des îles Chatham", "IST": "heure de l’Inde", "ARST": "heure d’été de l’Argentine", "BT": "heure du Bhoutan", "ECT": "heure de l’Équateur", "NZST": "heure normale de la Nouvelle-Zélande", "MESZ": "heure d’été d’Europe centrale", "MST": "heure normale des Rocheuses", "ChST": "heure des Chamorro", "WIT": "heure de l’Est indonésien", "PST": "heure normale du Pacifique nord-américain", "PDT": "heure d’été du Pacifique", "WEZ": "heure normale d’Europe de l’Ouest", "ART": "heure normale d’Argentine", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "TMT": "heure normale du Turkménistan", "WIB": "heure de l’Ouest indonésien", "NZDT": "heure d’été de la Nouvelle-Zélande", "CAT": "heure normale d’Afrique centrale", "WART": "heure normale de l’Ouest argentin", "HNOG": "heure normale de l’Ouest du Groenland", "SRT": "heure du Suriname", "AWDT": "heure d’été de l’Ouest de l’Australie", "JST": "heure normale du Japon", "CDT": "heure d’été du Centre", "WESZ": "heure d’été d’Europe de l’Ouest", "AST": "heure normale de l’Atlantique", "∅∅∅": "heure d’été des Açores", "SAST": "heure normale d’Afrique méridionale", "HNCU": "heure normale de Cuba", "HECU": "heure d’été de Cuba", "CST": "heure normale du centre nord-américain", "HNEG": "heure normale de l’Est du Groenland"},
}
}
diff --git a/fr_VU/fr_VU.go b/fr_VU/fr_VU.go
index e22d3908..f5edc9ec 100644
--- a/fr_VU/fr_VU.go
+++ b/fr_VU/fr_VU.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"WART": "heure normale de l’Ouest argentin", "WARST": "heure d’été de l’Ouest argentin", "CHADT": "heure d’été des îles Chatham", "HAT": "heure d’été de Terre-Neuve", "HKST": "heure d’été de Hong Kong", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "GMT": "heure moyenne de Greenwich", "MST": "heure normale de Macao", "SAST": "heure normale d’Afrique méridionale", "TMT": "heure normale du Turkménistan", "GYT": "heure du Guyana", "UYST": "heure d’été de l’Uruguay", "WESZ": "heure d’été d’Europe de l’Ouest", "ADT": "heure d’été de l’Atlantique", "HNOG": "heure normale de l’Ouest du Groenland", "AEST": "heure normale de l’Est de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "COT": "heure normale de Colombie", "HECU": "heure d’été de Cuba", "AKDT": "heure d’été de l’Alaska", "CHAST": "heure normale des îles Chatham", "CLST": "heure d’été du Chili", "HEPMX": "heure d’été du Pacifique mexicain", "WEZ": "heure normale d’Europe de l’Ouest", "MESZ": "heure d’été d’Europe centrale", "IST": "heure de l’Inde", "∅∅∅": "heure d’été du Pérou", "CST": "heure normale du centre nord-américain", "PST": "heure normale du Pacifique nord-américain", "ARST": "heure d’été de l’Argentine", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MEZ": "heure normale d’Europe centrale", "WIT": "heure de l’Est indonésien", "ACWST": "heure normale du centre-ouest de l’Australie", "AWST": "heure normale de l’Ouest de l’Australie", "EST": "heure normale de l’Est nord-américain", "AST": "heure normale de l’Atlantique", "HEOG": "heure d’été de l’Ouest du Groenland", "JST": "heure normale du Japon", "ChST": "heure des Chamorro", "EAT": "heure normale d’Afrique de l’Est", "WAST": "heure d’été d’Afrique de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "LHDT": "heure d’été de Lord Howe", "BOT": "heure de Bolivie", "HEEG": "heure d’été de l’Est du Groenland", "TMST": "heure d’été du Turkménistan", "WAT": "heure normale d’Afrique de l’Ouest", "COST": "heure d’été de Colombie", "MYT": "heure de la Malaisie", "NZST": "heure normale de la Nouvelle-Zélande", "OESZ": "heure d’été d’Europe de l’Est", "MDT": "heure d’été de Macao", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "SRT": "heure du Suriname", "HNT": "heure normale de Terre-Neuve", "ECT": "heure de l’Équateur", "AKST": "heure normale de l’Alaska", "CDT": "heure d’été du Centre", "GFT": "heure de la Guyane française", "ACDT": "heure d’été du centre de l’Australie", "UYT": "heure normale de l’Uruguay", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WITA": "heure du Centre indonésien", "JDT": "heure d’été du Japon", "SGT": "heure de Singapour", "HNCU": "heure normale de Cuba", "ART": "heure normale d’Argentine", "PDT": "heure d’été du Pacifique", "AEDT": "heure d’été de l’Est de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "HKT": "heure normale de Hong Kong", "LHST": "heure normale de Lord Howe", "OEZ": "heure normale d’Europe de l’Est", "WIB": "heure de l’Ouest indonésien", "VET": "heure du Venezuela", "HNEG": "heure normale de l’Est du Groenland", "ACST": "heure normale du centre de l’Australie", "HAST": "heure normale d’Hawaii - Aléoutiennes", "BT": "heure du Bhoutan", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CAT": "heure normale d’Afrique centrale", "EDT": "heure d’été de l’Est", "HNPMX": "heure normale du Pacifique mexicain"},
+ timezones: map[string]string{"MESZ": "heure d’été d’Europe centrale", "ChST": "heure des Chamorro", "WIB": "heure de l’Ouest indonésien", "CLT": "heure normale du Chili", "CLST": "heure d’été du Chili", "ART": "heure normale d’Argentine", "HNT": "heure normale de Terre-Neuve", "GFT": "heure de la Guyane française", "CDT": "heure d’été du Centre", "CHAST": "heure normale des îles Chatham", "IST": "heure de l’Inde", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HAT": "heure d’été de Terre-Neuve", "ACWDT": "heure d’été du centre-ouest de l’Australie", "TMST": "heure d’été du Turkménistan", "MST": "heure normale de Macao", "OESZ": "heure d’été d’Europe de l’Est", "AWDT": "heure d’été de l’Ouest de l’Australie", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ECT": "heure de l’Équateur", "CAT": "heure normale d’Afrique centrale", "MEZ": "heure normale d’Europe centrale", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "NZDT": "heure d’été de la Nouvelle-Zélande", "JDT": "heure d’été du Japon", "GMT": "heure moyenne de Greenwich", "EDT": "heure d’été de l’Est", "MDT": "heure d’été de Macao", "AEST": "heure normale de l’Est de l’Australie", "AKST": "heure normale de l’Alaska", "LHDT": "heure d’été de Lord Howe", "BOT": "heure de Bolivie", "CHADT": "heure d’été des îles Chatham", "WART": "heure normale de l’Ouest argentin", "HNOG": "heure normale de l’Ouest du Groenland", "UYT": "heure normale de l’Uruguay", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "WIT": "heure de l’Est indonésien", "WESZ": "heure d’été d’Europe de l’Ouest", "HEOG": "heure d’été de l’Ouest du Groenland", "ACST": "heure normale du centre de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "SGT": "heure de Singapour", "HAST": "heure normale d’Hawaii - Aléoutiennes", "AST": "heure normale de l’Atlantique", "HKT": "heure normale de Hong Kong", "WAST": "heure d’été d’Afrique de l’Ouest", "AKDT": "heure d’été de l’Alaska", "LHST": "heure normale de Lord Howe", "PST": "heure normale du Pacifique nord-américain", "NZST": "heure normale de la Nouvelle-Zélande", "ADT": "heure d’été de l’Atlantique", "TMT": "heure normale du Turkménistan", "HNCU": "heure normale de Cuba", "AWST": "heure normale de l’Ouest de l’Australie", "JST": "heure normale du Japon", "OEZ": "heure normale d’Europe de l’Est", "WEZ": "heure normale d’Europe de l’Ouest", "UYST": "heure d’été de l’Uruguay", "ARST": "heure d’été de l’Argentine", "AEDT": "heure d’été de l’Est de l’Australie", "SAST": "heure normale d’Afrique méridionale", "HECU": "heure d’été de Cuba", "∅∅∅": "heure d’été de l’Amazonie", "VET": "heure du Venezuela", "WARST": "heure d’été de l’Ouest argentin", "SRT": "heure du Suriname", "WITA": "heure du Centre indonésien", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "EAT": "heure normale d’Afrique de l’Est", "MYT": "heure de la Malaisie", "COST": "heure d’été de Colombie", "HNEG": "heure normale de l’Est du Groenland", "HEEG": "heure d’été de l’Est du Groenland", "ACWST": "heure normale du centre-ouest de l’Australie", "WAT": "heure normale d’Afrique de l’Ouest", "HNPMX": "heure normale du Pacifique mexicain", "BT": "heure du Bhoutan", "HEPMX": "heure d’été du Pacifique mexicain", "GYT": "heure du Guyana", "CST": "heure normale du centre nord-américain", "PDT": "heure d’été du Pacifique", "EST": "heure normale de l’Est nord-américain", "HKST": "heure d’été de Hong Kong", "COT": "heure normale de Colombie"},
}
}
diff --git a/fr_WF/fr_WF.go b/fr_WF/fr_WF.go
index 3ce777e6..6b4a04fa 100644
--- a/fr_WF/fr_WF.go
+++ b/fr_WF/fr_WF.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"CAT": "heure normale d’Afrique centrale", "WAT": "heure normale d’Afrique de l’Ouest", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "CDT": "heure d’été du Centre", "SGT": "heure de Singapour", "HECU": "heure d’été de Cuba", "MST": "heure normale de Macao", "HNPMX": "heure normale du Pacifique mexicain", "ART": "heure normale d’Argentine", "CHAST": "heure normale des îles Chatham", "WART": "heure normale de l’Ouest argentin", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "GYT": "heure du Guyana", "HAST": "heure normale d’Hawaii - Aléoutiennes", "AKST": "heure normale de l’Alaska", "CST": "heure normale du centre nord-américain", "ADT": "heure d’été de l’Atlantique", "BT": "heure du Bhoutan", "OEZ": "heure normale d’Europe de l’Est", "COST": "heure d’été de Colombie", "EDT": "heure d’été de l’Est", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "VET": "heure du Venezuela", "ACWST": "heure normale du centre-ouest de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "AWST": "heure normale de l’Ouest de l’Australie", "HNEG": "heure normale de l’Est du Groenland", "PDT": "heure d’été du Pacifique", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "WAST": "heure d’été d’Afrique de l’Ouest", "OESZ": "heure d’été d’Europe de l’Est", "WIT": "heure de l’Est indonésien", "PST": "heure normale du Pacifique nord-américain", "MEZ": "heure normale d’Europe centrale", "LHDT": "heure d’été de Lord Howe", "CHADT": "heure d’été des îles Chatham", "HNOG": "heure normale de l’Ouest du Groenland", "MESZ": "heure d’été d’Europe centrale", "LHST": "heure normale de Lord Howe", "AKDT": "heure d’été de l’Alaska", "SRT": "heure du Suriname", "HEOG": "heure d’été de l’Ouest du Groenland", "UYT": "heure normale de l’Uruguay", "UYST": "heure d’été de l’Uruguay", "BOT": "heure de Bolivie", "EAT": "heure normale d’Afrique de l’Est", "EST": "heure normale de l’Est nord-américain", "AST": "heure normale de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "WITA": "heure du Centre indonésien", "IST": "heure de l’Inde", "JDT": "heure d’été du Japon", "ChST": "heure des Chamorro", "WARST": "heure d’été de l’Ouest argentin", "MYT": "heure de la Malaisie", "WIB": "heure de l’Ouest indonésien", "WEZ": "heure normale d’Europe de l’Ouest", "SAST": "heure normale d’Afrique méridionale", "CLST": "heure d’été du Chili", "∅∅∅": "heure d’été de l’Amazonie", "CLT": "heure normale du Chili", "HEEG": "heure d’été de l’Est du Groenland", "HEPMX": "heure d’été du Pacifique mexicain", "HAT": "heure d’été de Terre-Neuve", "ARST": "heure d’été de l’Argentine", "AEST": "heure normale de l’Est de l’Australie", "HKST": "heure d’été de Hong Kong", "NZST": "heure normale de la Nouvelle-Zélande", "NZDT": "heure d’été de la Nouvelle-Zélande", "TMT": "heure normale du Turkménistan", "ACDT": "heure d’été du centre de l’Australie", "ACWDT": "heure d’été du centre-ouest de l’Australie", "MDT": "heure d’été de Macao", "HNCU": "heure normale de Cuba", "AWDT": "heure d’été de l’Ouest de l’Australie", "GFT": "heure de la Guyane française", "ECT": "heure de l’Équateur", "GMT": "heure moyenne de Greenwich", "TMST": "heure d’été du Turkménistan", "ACST": "heure normale du centre de l’Australie", "COT": "heure normale de Colombie", "WESZ": "heure d’été d’Europe de l’Ouest", "HKT": "heure normale de Hong Kong", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "JST": "heure normale du Japon"},
+ timezones: map[string]string{"HAT": "heure d’été de Terre-Neuve", "AEST": "heure normale de l’Est de l’Australie", "AKST": "heure normale de l’Alaska", "CHADT": "heure d’été des îles Chatham", "HNOG": "heure normale de l’Ouest du Groenland", "COT": "heure normale de Colombie", "UYT": "heure normale de l’Uruguay", "SGT": "heure de Singapour", "WAT": "heure normale d’Afrique de l’Ouest", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACWST": "heure normale du centre-ouest de l’Australie", "MYT": "heure de la Malaisie", "TMST": "heure d’été du Turkménistan", "MST": "heure normale de Macao", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "CST": "heure normale du centre nord-américain", "CHAST": "heure normale des îles Chatham", "LHST": "heure normale de Lord Howe", "SRT": "heure du Suriname", "CAT": "heure normale d’Afrique centrale", "OEZ": "heure normale d’Europe de l’Est", "WARST": "heure d’été de l’Ouest argentin", "ARST": "heure d’été de l’Argentine", "HKT": "heure normale de Hong Kong", "WIB": "heure de l’Ouest indonésien", "AWDT": "heure d’été de l’Ouest de l’Australie", "IST": "heure de l’Inde", "MEZ": "heure normale d’Europe centrale", "HKST": "heure d’été de Hong Kong", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ECT": "heure de l’Équateur", "NZST": "heure normale de la Nouvelle-Zélande", "OESZ": "heure d’été d’Europe de l’Est", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HNPMX": "heure normale du Pacifique mexicain", "BOT": "heure de Bolivie", "PST": "heure normale du Pacifique nord-américain", "COST": "heure d’été de Colombie", "EAT": "heure normale d’Afrique de l’Est", "TMT": "heure normale du Turkménistan", "VET": "heure du Venezuela", "CLT": "heure normale du Chili", "MDT": "heure d’été de Macao", "HNEG": "heure normale de l’Est du Groenland", "GYT": "heure du Guyana", "AWST": "heure normale de l’Ouest de l’Australie", "PDT": "heure d’été du Pacifique", "ART": "heure normale d’Argentine", "HNT": "heure normale de Terre-Neuve", "WEZ": "heure normale d’Europe de l’Ouest", "GMT": "heure moyenne de Greenwich", "CLST": "heure d’été du Chili", "LHDT": "heure d’été de Lord Howe", "ACWDT": "heure d’été du centre-ouest de l’Australie", "JST": "heure normale du Japon", "NZDT": "heure d’été de la Nouvelle-Zélande", "BT": "heure du Bhoutan", "WITA": "heure du Centre indonésien", "HECU": "heure d’été de Cuba", "WIT": "heure de l’Est indonésien", "MESZ": "heure d’été d’Europe centrale", "HEOG": "heure d’été de l’Ouest du Groenland", "ADT": "heure d’été de l’Atlantique", "ACST": "heure normale du centre de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "HNCU": "heure normale de Cuba", "CDT": "heure d’été du Centre", "SAST": "heure normale d’Afrique méridionale", "∅∅∅": "heure d’été de Brasilia", "HEPMX": "heure d’été du Pacifique mexicain", "UYST": "heure d’été de l’Uruguay", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "ChST": "heure des Chamorro", "AST": "heure normale de l’Atlantique", "EST": "heure normale de l’Est nord-américain", "EDT": "heure d’été de l’Est", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "WART": "heure normale de l’Ouest argentin", "WAST": "heure d’été d’Afrique de l’Ouest", "HEEG": "heure d’été de l’Est du Groenland", "AEDT": "heure d’été de l’Est de l’Australie", "GFT": "heure de la Guyane française", "AKDT": "heure d’été de l’Alaska", "JDT": "heure d’été du Japon", "WESZ": "heure d’été d’Europe de l’Ouest"},
}
}
diff --git a/fr_YT/fr_YT.go b/fr_YT/fr_YT.go
index 4adffa19..ef1f6228 100644
--- a/fr_YT/fr_YT.go
+++ b/fr_YT/fr_YT.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
- timezones: map[string]string{"HEPMX": "heure d’été du Pacifique mexicain", "UYT": "heure normale de l’Uruguay", "WEZ": "heure normale d’Europe de l’Ouest", "ChST": "heure des Chamorro", "GFT": "heure de la Guyane française", "WAT": "heure normale d’Afrique de l’Ouest", "∅∅∅": "heure d’été de Brasilia", "CDT": "heure d’été du Centre", "VET": "heure du Venezuela", "AEST": "heure normale de l’Est de l’Australie", "WITA": "heure du Centre indonésien", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "IST": "heure de l’Inde", "CLST": "heure d’été du Chili", "COST": "heure d’été de Colombie", "EDT": "heure d’été de l’Est", "SRT": "heure du Suriname", "HKT": "heure normale de Hong Kong", "OESZ": "heure d’été d’Europe de l’Est", "COT": "heure normale de Colombie", "AKST": "heure normale de l’Alaska", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "PST": "heure normale du Pacifique nord-américain", "HEOG": "heure d’été de l’Ouest du Groenland", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "ACDT": "heure d’été du centre de l’Australie", "GMT": "heure moyenne de Greenwich", "WESZ": "heure d’été d’Europe de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "HEEG": "heure d’été de l’Est du Groenland", "OEZ": "heure normale d’Europe de l’Est", "WARST": "heure d’été de l’Ouest argentin", "SGT": "heure de Singapour", "AST": "heure normale de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "HNEG": "heure normale de l’Est du Groenland", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ACWDT": "heure d’été du centre-ouest de l’Australie", "LHDT": "heure d’été de Lord Howe", "JST": "heure normale du Japon", "TMST": "heure d’été du Turkménistan", "UYST": "heure d’été de l’Uruguay", "MYT": "heure de la Malaisie", "WIT": "heure de l’Est indonésien", "AWDT": "heure d’été de l’Ouest de l’Australie", "EST": "heure normale de l’Est nord-américain", "ACWST": "heure normale du centre-ouest de l’Australie", "ARST": "heure d’été de l’Argentine", "WIB": "heure de l’Ouest indonésien", "GYT": "heure du Guyana", "HKST": "heure d’été de Hong Kong", "CST": "heure normale du centre nord-américain", "HNCU": "heure normale de Cuba", "CHADT": "heure d’été des îles Chatham", "CLT": "heure normale du Chili", "TMT": "heure normale du Turkménistan", "ECT": "heure de l’Équateur", "WART": "heure normale de l’Ouest argentin", "HNPMX": "heure normale du Pacifique mexicain", "HNOG": "heure normale de l’Ouest du Groenland", "MESZ": "heure d’été d’Europe centrale", "SAST": "heure normale d’Afrique méridionale", "ACST": "heure normale du centre de l’Australie", "MST": "heure normale de Macao", "AKDT": "heure d’été de l’Alaska", "ADT": "heure d’été de l’Atlantique", "NZST": "heure normale de la Nouvelle-Zélande", "CAT": "heure normale d’Afrique centrale", "EAT": "heure normale d’Afrique de l’Est", "HECU": "heure d’été de Cuba", "BT": "heure du Bhoutan", "PDT": "heure d’été du Pacifique", "CHAST": "heure normale des îles Chatham", "JDT": "heure d’été du Japon", "BOT": "heure de Bolivie", "MDT": "heure d’été de Macao", "ART": "heure normale d’Argentine", "AEDT": "heure d’été de l’Est de l’Australie", "AWST": "heure normale de l’Ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "LHST": "heure normale de Lord Howe", "NZDT": "heure d’été de la Nouvelle-Zélande", "WAST": "heure d’été d’Afrique de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique"},
+ timezones: map[string]string{"ACST": "heure normale du centre de l’Australie", "COT": "heure normale de Colombie", "AEDT": "heure d’été de l’Est de l’Australie", "VET": "heure du Venezuela", "WESZ": "heure d’été d’Europe de l’Ouest", "HNT": "heure normale de Terre-Neuve", "LHST": "heure normale de Lord Howe", "HECU": "heure d’été de Cuba", "OESZ": "heure d’été d’Europe de l’Est", "EST": "heure normale de l’Est nord-américain", "AST": "heure normale de l’Atlantique", "AKST": "heure normale de l’Alaska", "CHAST": "heure normale des îles Chatham", "SGT": "heure de Singapour", "WART": "heure normale de l’Ouest argentin", "HEOG": "heure d’été de l’Ouest du Groenland", "BT": "heure du Bhoutan", "UYST": "heure d’été de l’Uruguay", "ACWST": "heure normale du centre-ouest de l’Australie", "ACWDT": "heure d’été du centre-ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "HNOG": "heure normale de l’Ouest du Groenland", "MYT": "heure de la Malaisie", "ACDT": "heure d’été du centre de l’Australie", "GFT": "heure de la Guyane française", "MDT": "heure d’été des Rocheuses", "UYT": "heure normale de l’Uruguay", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "TMT": "heure normale du Turkménistan", "ART": "heure normale d’Argentine", "WAST": "heure d’été d’Afrique de l’Ouest", "ADT": "heure d’été de l’Atlantique", "HNEG": "heure normale de l’Est du Groenland", "CDT": "heure d’été du Centre", "CHADT": "heure d’été des îles Chatham", "CAT": "heure normale d’Afrique centrale", "NZST": "heure normale de la Nouvelle-Zélande", "HEPMX": "heure d’été du Pacifique mexicain", "AWDT": "heure d’été de l’Ouest de l’Australie", "HAST": "heure normale d’Hawaii - Aléoutiennes", "TMST": "heure d’été du Turkménistan", "WARST": "heure d’été de l’Ouest argentin", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "SRT": "heure du Suriname", "EAT": "heure normale d’Afrique de l’Est", "PDT": "heure d’été du Pacifique", "NZDT": "heure d’été de la Nouvelle-Zélande", "EDT": "heure d’été de l’Est", "∅∅∅": "heure d’été du Pérou", "AKDT": "heure d’été de l’Alaska", "MST": "heure normale des Rocheuses", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "CLT": "heure normale du Chili", "HAT": "heure d’été de Terre-Neuve", "HEEG": "heure d’été de l’Est du Groenland", "WITA": "heure du Centre indonésien", "HNCU": "heure normale de Cuba", "WEZ": "heure normale d’Europe de l’Ouest", "WAT": "heure normale d’Afrique de l’Ouest", "SAST": "heure normale d’Afrique méridionale", "WIT": "heure de l’Est indonésien", "PST": "heure normale du Pacifique nord-américain", "JST": "heure normale du Japon", "CLST": "heure d’été du Chili", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AEST": "heure normale de l’Est de l’Australie", "HKT": "heure normale de Hong Kong", "ChST": "heure des Chamorro", "AWST": "heure normale de l’Ouest de l’Australie", "BOT": "heure de Bolivie", "ECT": "heure de l’Équateur", "MESZ": "heure d’été d’Europe centrale", "LHDT": "heure d’été de Lord Howe", "JDT": "heure d’été du Japon", "HNPMX": "heure normale du Pacifique mexicain", "WIB": "heure de l’Ouest indonésien", "OEZ": "heure normale d’Europe de l’Est", "GMT": "heure moyenne de Greenwich", "HKST": "heure d’été de Hong Kong", "ARST": "heure d’été de l’Argentine", "COST": "heure d’été de Colombie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "GYT": "heure du Guyana", "CST": "heure normale du centre nord-américain", "IST": "heure de l’Inde"},
}
}
diff --git a/fur/fur.go b/fur/fur.go
index 16be12da..36bf6edd 100644
--- a/fur/fur.go
+++ b/fur/fur.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"pdC", "ddC"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"JDT": "JDT", "HNEG": "HNEG", "WARST": "WARST", "UYST": "UYST", "WIT": "WIT", "SRT": "SRT", "HEOG": "HEOG", "PDT": "PDT", "ACWST": "ACWST", "HEPM": "HEPM", "NZDT": "NZDT", "AKST": "AKST", "ChST": "ChST", "CHADT": "CHADT", "CLT": "CLT", "BOT": "BOT", "ARST": "ARST", "HNPM": "HNPM", "GFT": "GFT", "ECT": "ECT", "AEST": "AEST", "PST": "PST", "HNCU": "HNCU", "EST": "EST", "ADT": "ADT", "CST": "CST", "AEDT": "AEDT", "OEZ": "Ore standard de Europe orientâl", "COT": "COT", "HNPMX": "HNPMX", "GYT": "GYT", "ACWDT": "ACWDT", "AWST": "AWST", "EAT": "EAT", "HECU": "HECU", "BT": "BT", "MST": "MST", "AWDT": "AWDT", "MEZ": "Ore standard de Europe centrâl", "HEEG": "HEEG", "WAST": "WAST", "UYT": "UYT", "WEZ": "Ore standard de Europe ocidentâl", "TMST": "TMST", "ACDT": "ACDT", "COST": "COST", "VET": "VET", "MYT": "MYT", "CDT": "CDT", "TMT": "TMT", "WAT": "WAT", "HEPMX": "HEPMX", "AKDT": "AKDT", "ART": "ART", "HNOG": "HNOG", "HAT": "HAT", "JST": "JST", "CAT": "CAT", "WART": "WART", "HENOMX": "HENOMX", "AST": "AST", "SGT": "SGT", "MESZ": "Ore estive de Europe centrâl", "HAST": "HAST", "LHST": "LHST", "CHAST": "CHAST", "IST": "IST", "∅∅∅": "∅∅∅", "ACST": "ACST", "HNNOMX": "HNNOMX", "MDT": "MDT", "HKST": "HKST", "CLST": "CLST", "OESZ": "Ore estive de Europe orientâl", "WESZ": "Ore estive de Europe ocidentâl", "HADT": "HADT", "HNT": "HNT", "HKT": "HKT", "WITA": "WITA", "LHDT": "LHDT", "NZST": "NZST", "SAST": "SAST", "WIB": "WIB", "EDT": "EDT", "GMT": "GMT"},
+ timezones: map[string]string{"ARST": "ARST", "HNPM": "HNPM", "EAT": "EAT", "CDT": "CDT", "AWST": "AWST", "PST": "PST", "GMT": "GMT", "WAST": "WAST", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "CHAST": "CHAST", "ACWDT": "ACWDT", "HNOG": "HNOG", "CLT": "CLT", "TMST": "TMST", "BT": "BT", "HNT": "HNT", "HAT": "HAT", "ECT": "ECT", "NZDT": "NZDT", "MST": "MST", "HNPMX": "HNPMX", "SGT": "SGT", "HEOG": "HEOG", "HKT": "HKT", "LHDT": "LHDT", "MEZ": "Ore standard de Europe centrâl", "ACST": "ACST", "GFT": "GFT", "AEDT": "AEDT", "WIT": "WIT", "HADT": "HADT", "OESZ": "Ore estive de Europe orientâl", "WART": "WART", "CLST": "CLST", "WITA": "WITA", "∅∅∅": "∅∅∅", "CHADT": "CHADT", "JST": "JST", "WEZ": "Ore standard de Europe ocidentâl", "AKDT": "AKDT", "GYT": "GYT", "AWDT": "AWDT", "BOT": "BOT", "PDT": "PDT", "MESZ": "Ore estive de Europe centrâl", "EDT": "EDT", "UYST": "UYST", "HNCU": "HNCU", "TMT": "TMT", "MDT": "MDT", "COST": "COST", "AKST": "AKST", "ChST": "ChST", "UYT": "UYT", "SAST": "SAST", "LHST": "LHST", "HEPMX": "HEPMX", "VET": "VET", "AEST": "AEST", "ART": "ART", "HKST": "HKST", "HEEG": "HEEG", "WAT": "WAT", "ACDT": "ACDT", "HECU": "HECU", "CST": "CST", "CAT": "CAT", "NZST": "NZST", "WESZ": "Ore estive de Europe ocidentâl", "MYT": "MYT", "HENOMX": "HENOMX", "HAST": "HAST", "IST": "IST", "AST": "AST", "OEZ": "Ore standard de Europe orientâl", "WARST": "WARST", "EST": "EST", "SRT": "SRT", "WIB": "WIB", "ACWST": "ACWST", "JDT": "JDT", "ADT": "ADT", "COT": "COT", "HNEG": "HNEG"},
}
}
diff --git a/fur_IT/fur_IT.go b/fur_IT/fur_IT.go
index 829034e0..b9b39983 100644
--- a/fur_IT/fur_IT.go
+++ b/fur_IT/fur_IT.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"pdC", "ddC"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"WAT": "WAT", "MEZ": "Ore standard de Europe centrâl", "CLT": "CLT", "BOT": "BOT", "AEDT": "AEDT", "NZDT": "NZDT", "HEPMX": "HEPMX", "CDT": "CDT", "HNOG": "HNOG", "WITA": "WITA", "EDT": "EDT", "HNEG": "HNEG", "OEZ": "Ore standard de Europe orientâl", "CAT": "CAT", "HENOMX": "HENOMX", "CST": "CST", "VET": "VET", "ACWDT": "ACWDT", "MDT": "MDT", "SRT": "SRT", "ACWST": "ACWST", "WIT": "WIT", "BT": "BT", "HAT": "HAT", "JDT": "JDT", "ECT": "ECT", "AKST": "AKST", "UYST": "UYST", "WIB": "WIB", "GMT": "GMT", "EST": "EST", "IST": "IST", "ACST": "ACST", "AST": "AST", "GYT": "GYT", "HEOG": "HEOG", "CHADT": "CHADT", "JST": "JST", "SGT": "SGT", "CLST": "CLST", "TMT": "TMT", "WART": "WART", "ART": "ART", "PDT": "PDT", "HKT": "HKT", "MYT": "MYT", "HNT": "HNT", "ACDT": "ACDT", "OESZ": "Ore estive de Europe orientâl", "COST": "COST", "HECU": "HECU", "HADT": "HADT", "WEZ": "Ore standard de Europe ocidentâl", "∅∅∅": "∅∅∅", "ChST": "ChST", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "HNPMX": "HNPMX", "ADT": "ADT", "UYT": "UYT", "HNPM": "HNPM", "LHST": "LHST", "LHDT": "LHDT", "EAT": "EAT", "WARST": "WARST", "AKDT": "AKDT", "AEST": "AEST", "AWDT": "AWDT", "SAST": "SAST", "GFT": "GFT", "MST": "MST", "PST": "PST", "HKST": "HKST", "HEPM": "HEPM", "NZST": "NZST", "WAST": "WAST", "COT": "COT", "HAST": "HAST", "ARST": "ARST", "WESZ": "Ore estive de Europe ocidentâl", "HEEG": "HEEG", "TMST": "TMST", "AWST": "AWST", "CHAST": "CHAST", "MESZ": "Ore estive de Europe centrâl"},
+ timezones: map[string]string{"LHDT": "LHDT", "HECU": "HECU", "BOT": "BOT", "HNNOMX": "HNNOMX", "WITA": "WITA", "HEPM": "HEPM", "ChST": "ChST", "WIT": "WIT", "HAT": "HAT", "BT": "BT", "HNPM": "HNPM", "HEPMX": "HEPMX", "SRT": "SRT", "AWDT": "AWDT", "HAST": "HAST", "CLST": "CLST", "COST": "COST", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "HNOG": "HNOG", "MEZ": "Ore standard de Europe centrâl", "UYST": "UYST", "CST": "CST", "NZDT": "NZDT", "WESZ": "Ore estive de Europe ocidentâl", "WARST": "WARST", "COT": "COT", "ACST": "ACST", "HNEG": "HNEG", "OESZ": "Ore estive de Europe orientâl", "EST": "EST", "HKST": "HKST", "AEDT": "AEDT", "SAST": "SAST", "PST": "PST", "CDT": "CDT", "CAT": "CAT", "ART": "ART", "ACDT": "ACDT", "MDT": "MDT", "UYT": "UYT", "TMT": "TMT", "PDT": "PDT", "WEZ": "Ore standard de Europe ocidentâl", "ADT": "ADT", "OEZ": "Ore standard de Europe orientâl", "TMST": "TMST", "AKDT": "AKDT", "VET": "VET", "JDT": "JDT", "NZST": "NZST", "MESZ": "Ore estive de Europe centrâl", "HEOG": "HEOG", "HENOMX": "HENOMX", "HEEG": "HEEG", "WAT": "WAT", "MYT": "MYT", "CLT": "CLT", "EDT": "EDT", "LHST": "LHST", "HNCU": "HNCU", "HADT": "HADT", "CHAST": "CHAST", "ACWST": "ACWST", "ACWDT": "ACWDT", "HKT": "HKT", "WAST": "WAST", "GFT": "GFT", "AKST": "AKST", "WIB": "WIB", "EAT": "EAT", "CHADT": "CHADT", "WART": "WART", "AWST": "AWST", "SGT": "SGT", "ECT": "ECT", "JST": "JST", "AST": "AST", "HNT": "HNT", "AEST": "AEST", "MST": "MST", "ARST": "ARST", "GYT": "GYT", "IST": "IST", "GMT": "GMT"},
}
}
diff --git a/fy/fy.go b/fy/fy.go
index 4a655108..80a6bc74 100644
--- a/fy/fy.go
+++ b/fy/fy.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "n.Kr."},
erasNarrow: []string{"f.K.", "n.K."},
erasWide: []string{"Foar Kristus", "nei Kristus"},
- timezones: map[string]string{"EST": "Eastern-standerttiid", "EDT": "Eastern-simmertiid", "UYST": "Uruguayaanske simmertiid", "CAT": "Sintraal-Afrikaanske tiid", "HNCU": "Kubaanske standerttiid", "PDT": "Pasifik-simmertiid", "WESZ": "West-Europeeske simmertiid", "AWST": "West-Australyske standerttiid", "ACDT": "Midden-Australyske simmertiid", "∅∅∅": "Peruaanske simmertiid", "AST": "Atlantic-standerttiid", "WIB": "West-Yndonezyske tiid", "HADT": "Hawaii-Aleoetyske simmertiid", "WITA": "Sintraal-Yndonezyske tiid", "ECT": "Ecuadoraanske tiid", "OEZ": "East-Europeeske standerttiid", "HNPMX": "HNPMX", "PST": "Pasifik-standerttiid", "NZST": "Nij-Seelânske standerttiid", "CHAST": "Chatham standerttiid", "LHST": "Lord Howe-eilânske standerttiid", "HNNOMX": "HNNOMX", "ADT": "Atlantic-simmertiid", "UYT": "Uruguayaanske standerttiid", "AKDT": "Alaska-simmertiid", "BT": "Bhutaanske tiid", "HNOG": "West-Groenlânske standerttiid", "CST": "Central-standerttiid", "WEZ": "West-Europeeske standerttiid", "TMT": "Turkmeense standerttiid", "HEEG": "East-Groenlânske simmertiid", "OESZ": "East-Europeeske simmertiid", "COST": "Kolombiaanske simmertiid", "HEPMX": "HEPMX", "MYT": "Maleisyske tiid", "HKT": "Hongkongse standerttiid", "BOT": "Boliviaanske tiid", "AEDT": "East-Australyske simmertiid", "HKST": "Hongkongse simmertiid", "WAT": "West-Afrikaanske standerttiid", "MDT": "Macause simmertiid", "ART": "Argentynske standerttiid", "AEST": "East-Australyske standerttiid", "AWDT": "West-Australyske simmertiid", "EAT": "East-Afrikaanske tiid", "WARST": "West-Argentynske simmertiid", "HEOG": "West-Groenlânske simmertiid", "IST": "Yndiaaske tiid", "GYT": "Guyaanske tiid", "ACWST": "Midden-Australyske westelijke standerttiid", "HAT": "Newfoundlânske-simmertiid", "HNPM": "Saint Pierre en Miquelon-standerttiid", "AKST": "Alaska-standerttiid", "HAST": "Hawaii-Aleoetyske standerttiid", "ACWDT": "Midden-Australyske westelijke simmertiid", "HNT": "Newfoundlânske-standerttiid", "SAST": "Sûd-Afrikaanske tiid", "JDT": "Japanske simmertiid", "WAST": "West-Afrikaanske simmertiid", "WART": "West-Argentynske standerttiid", "VET": "Fenezolaanske tiid", "HEPM": "Saint Pierre en Miquelon-simmertiid", "MESZ": "Midden-Europeeske simmertiid", "WIT": "East-Yndonezyske tiid", "SRT": "Surinaamske tiid", "TMST": "Turkmeense simmertiid", "GFT": "Frâns-Guyaanske tiid", "COT": "Kolombiaanske standerttiid", "HENOMX": "HENOMX", "GMT": "Greenwich Mean Time", "SGT": "Singaporese standerttiid", "CLST": "Sileenske simmertiid", "ChST": "Chamorro-tiid", "MST": "Macause standerttiid", "ARST": "Argentynske simmertiid", "CLT": "Sileenske standerttiid", "CHADT": "Chatham simmertiid", "HNEG": "East-Groenlânske standerttiid", "ACST": "Midden-Australyske standerttiid", "HECU": "Kubaanske simmertiid", "CDT": "Central-simmertiid", "MEZ": "Midden-Europeeske standerttiid", "NZDT": "Nij-Seelânske simmertiid", "LHDT": "Lord Howe-eilânske simmertiid", "JST": "Japanske standerttiid"},
+ timezones: map[string]string{"HKST": "Hongkongse simmertiid", "AKST": "Alaska-standerttiid", "UYST": "Uruguayaanske simmertiid", "WIT": "East-Yndonezyske tiid", "TMT": "Turkmeense standerttiid", "HNT": "Newfoundlânske-standerttiid", "PDT": "Pasifik-simmertiid", "ACWST": "Midden-Australyske westelijke standerttiid", "WEZ": "West-Europeeske standerttiid", "SRT": "Surinaamske tiid", "ADT": "Atlantic-simmertiid", "ACDT": "Midden-Australyske simmertiid", "GFT": "Frâns-Guyaanske tiid", "OEZ": "East-Europeeske standerttiid", "HEEG": "East-Groenlânske simmertiid", "BOT": "Boliviaanske tiid", "NZST": "Nij-Seelânske standerttiid", "AST": "Atlantic-standerttiid", "WART": "West-Argentynske standerttiid", "WAST": "West-Afrikaanske simmertiid", "GYT": "Guyaanske tiid", "EAT": "East-Afrikaanske tiid", "WIB": "West-Yndonezyske tiid", "MEZ": "Midden-Europeeske standerttiid", "MYT": "Maleisyske tiid", "WARST": "West-Argentynske simmertiid", "ARST": "Argentynske simmertiid", "HEPM": "Saint Pierre en Miquelon-simmertiid", "LHST": "Lord Howe-eilânske standerttiid", "HNCU": "Kubaanske standerttiid", "HNNOMX": "HNNOMX", "BT": "Bhutaanske tiid", "∅∅∅": "Azoren-simmertiid", "CAT": "Sintraal-Afrikaanske tiid", "HKT": "Hongkongse standerttiid", "OESZ": "East-Europeeske simmertiid", "WAT": "West-Afrikaanske standerttiid", "SGT": "Singaporese standerttiid", "CLST": "Sileenske simmertiid", "HNOG": "West-Groenlânske standerttiid", "EST": "Eastern-standerttiid", "HENOMX": "HENOMX", "AKDT": "Alaska-simmertiid", "HNPM": "Saint Pierre en Miquelon-standerttiid", "HEPMX": "HEPMX", "CDT": "Central-simmertiid", "JST": "Japanske standerttiid", "CLT": "Sileenske standerttiid", "COT": "Kolombiaanske standerttiid", "HNEG": "East-Groenlânske standerttiid", "MST": "Mountain-standerttiid", "SAST": "Sûd-Afrikaanske tiid", "HNPMX": "HNPMX", "ECT": "Ecuadoraanske tiid", "NZDT": "Nij-Seelânske simmertiid", "COST": "Kolombiaanske simmertiid", "WITA": "Sintraal-Yndonezyske tiid", "MDT": "Mountain-simmertiid", "AWDT": "West-Australyske simmertiid", "ACWDT": "Midden-Australyske westelijke simmertiid", "HAT": "Newfoundlânske-simmertiid", "HECU": "Kubaanske simmertiid", "AEST": "East-Australyske standerttiid", "ChST": "Chamorro-tiid", "UYT": "Uruguayaanske standerttiid", "ART": "Argentynske standerttiid", "EDT": "Eastern-simmertiid", "AEDT": "East-Australyske simmertiid", "IST": "Yndiaaske tiid", "HEOG": "West-Groenlânske simmertiid", "CHAST": "Chatham standerttiid", "CHADT": "Chatham simmertiid", "HAST": "Hawaii-Aleoetyske standerttiid", "WESZ": "West-Europeeske simmertiid", "LHDT": "Lord Howe-eilânske simmertiid", "CST": "Central-standerttiid", "AWST": "West-Australyske standerttiid", "VET": "Fenezolaanske tiid", "JDT": "Japanske simmertiid", "GMT": "Greenwich Mean Time", "TMST": "Turkmeense simmertiid", "ACST": "Midden-Australyske standerttiid", "PST": "Pasifik-standerttiid", "HADT": "Hawaii-Aleoetyske simmertiid", "MESZ": "Midden-Europeeske simmertiid"},
}
}
diff --git a/fy_NL/fy_NL.go b/fy_NL/fy_NL.go
index af27e394..1306eed3 100644
--- a/fy_NL/fy_NL.go
+++ b/fy_NL/fy_NL.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "n.Kr."},
erasNarrow: []string{"f.K.", "n.K."},
erasWide: []string{"Foar Kristus", "nei Kristus"},
- timezones: map[string]string{"HNOG": "West-Groenlânske standerttiid", "HNCU": "Kubaanske standerttiid", "UYST": "Uruguayaanske simmertiid", "WIB": "West-Yndonezyske tiid", "MST": "Mountain-standerttiid", "WAST": "West-Afrikaanske simmertiid", "HENOMX": "HENOMX", "SGT": "Singaporese standerttiid", "HAST": "Hawaii-Aleoetyske standerttiid", "NZST": "Nij-Seelânske standerttiid", "ACDT": "Midden-Australyske simmertiid", "ACST": "Midden-Australyske standerttiid", "OEZ": "East-Europeeske standerttiid", "CAT": "Sintraal-Afrikaanske tiid", "HNNOMX": "HNNOMX", "COT": "Kolombiaanske standerttiid", "HNPM": "Saint Pierre en Miquelon-standerttiid", "HEPM": "Saint Pierre en Miquelon-simmertiid", "NZDT": "Nij-Seelânske simmertiid", "PDT": "Pasifik-simmertiid", "AEST": "East-Australyske standerttiid", "AWDT": "West-Australyske simmertiid", "MEZ": "Midden-Europeeske standerttiid", "GFT": "Frâns-Guyaanske tiid", "CST": "Central-standerttiid", "AST": "Atlantic-standerttiid", "BT": "Bhutaanske tiid", "HEPMX": "HEPMX", "AKDT": "Alaska-simmertiid", "ADT": "Atlantic-simmertiid", "IST": "Yndiaaske tiid", "TMST": "Turkmeense simmertiid", "HECU": "Kubaanske simmertiid", "UYT": "Uruguayaanske standerttiid", "ACWDT": "Midden-Australyske westelijke simmertiid", "LHST": "Lord Howe-eilânske standerttiid", "ARST": "Argentynske simmertiid", "EST": "Eastern-standerttiid", "CDT": "Central-simmertiid", "SRT": "Surinaamske tiid", "HNT": "Newfoundlânske-standerttiid", "ChST": "Chamorro-tiid", "HNPMX": "HNPMX", "AKST": "Alaska-standerttiid", "MDT": "Mountain-simmertiid", "WEZ": "West-Europeeske standerttiid", "COST": "Kolombiaanske simmertiid", "MYT": "Maleisyske tiid", "WESZ": "West-Europeeske simmertiid", "CHAST": "Chatham standerttiid", "ECT": "Ecuadoraanske tiid", "EDT": "Eastern-simmertiid", "WIT": "East-Yndonezyske tiid", "HEOG": "West-Groenlânske simmertiid", "HNEG": "East-Groenlânske standerttiid", "ART": "Argentynske standerttiid", "AWST": "West-Australyske standerttiid", "JST": "Japanske standerttiid", "JDT": "Japanske simmertiid", "WAT": "West-Afrikaanske standerttiid", "EAT": "East-Afrikaanske tiid", "GMT": "Greenwich Mean Time", "HKST": "Hongkongse simmertiid", "AEDT": "East-Australyske simmertiid", "CHADT": "Chatham simmertiid", "TMT": "Turkmeense standerttiid", "BOT": "Boliviaanske tiid", "WART": "West-Argentynske standerttiid", "HAT": "Newfoundlânske-simmertiid", "PST": "Pasifik-standerttiid", "HEEG": "East-Groenlânske simmertiid", "ACWST": "Midden-Australyske westelijke standerttiid", "CLST": "Sileenske simmertiid", "HKT": "Hongkongse standerttiid", "WITA": "Sintraal-Yndonezyske tiid", "MESZ": "Midden-Europeeske simmertiid", "LHDT": "Lord Howe-eilânske simmertiid", "SAST": "Sûd-Afrikaanske tiid", "GYT": "Guyaanske tiid", "HADT": "Hawaii-Aleoetyske simmertiid", "VET": "Fenezolaanske tiid", "WARST": "West-Argentynske simmertiid", "∅∅∅": "Amazone-simmertiid", "CLT": "Sileenske standerttiid", "OESZ": "East-Europeeske simmertiid"},
+ timezones: map[string]string{"HEPMX": "HEPMX", "LHDT": "Lord Howe-eilânske simmertiid", "WAT": "West-Afrikaanske standerttiid", "UYST": "Uruguayaanske simmertiid", "WESZ": "West-Europeeske simmertiid", "MYT": "Maleisyske tiid", "HEOG": "West-Groenlânske simmertiid", "MDT": "Macause simmertiid", "HEPM": "Saint Pierre en Miquelon-simmertiid", "UYT": "Uruguayaanske standerttiid", "BOT": "Boliviaanske tiid", "SGT": "Singaporese standerttiid", "ACWDT": "Midden-Australyske westelijke simmertiid", "IST": "Yndiaaske tiid", "CLT": "Sileenske standerttiid", "CLST": "Sileenske simmertiid", "ART": "Argentynske standerttiid", "AKST": "Alaska-standerttiid", "HNCU": "Kubaanske standerttiid", "∅∅∅": "Brazyljaanske simmertiid", "HNOG": "West-Groenlânske standerttiid", "ARST": "Argentynske simmertiid", "HKST": "Hongkongse simmertiid", "HENOMX": "HENOMX", "AEDT": "East-Australyske simmertiid", "ECT": "Ecuadoraanske tiid", "MESZ": "Midden-Europeeske simmertiid", "HEEG": "East-Groenlânske simmertiid", "GFT": "Frâns-Guyaanske tiid", "GYT": "Guyaanske tiid", "HADT": "Hawaii-Aleoetyske simmertiid", "EST": "Eastern-standerttiid", "JDT": "Japanske simmertiid", "WARST": "West-Argentynske simmertiid", "ACDT": "Midden-Australyske simmertiid", "WITA": "Sintraal-Yndonezyske tiid", "CHADT": "Chatham simmertiid", "ACWST": "Midden-Australyske westelijke standerttiid", "TMT": "Turkmeense standerttiid", "HNT": "Newfoundlânske-standerttiid", "GMT": "Greenwich Mean Time", "ADT": "Atlantic-simmertiid", "VET": "Fenezolaanske tiid", "EDT": "Eastern-simmertiid", "CDT": "Central-simmertiid", "AWST": "West-Australyske standerttiid", "MST": "Macause standerttiid", "EAT": "East-Afrikaanske tiid", "NZDT": "Nij-Seelânske simmertiid", "OEZ": "East-Europeeske standerttiid", "BT": "Bhutaanske tiid", "HNPMX": "HNPMX", "WEZ": "West-Europeeske standerttiid", "AST": "Atlantic-standerttiid", "HNPM": "Saint Pierre en Miquelon-standerttiid", "CST": "Central-standerttiid", "WART": "West-Argentynske standerttiid", "NZST": "Nij-Seelânske standerttiid", "CAT": "Sintraal-Afrikaanske tiid", "WAST": "West-Afrikaanske simmertiid", "ACST": "Midden-Australyske standerttiid", "AEST": "East-Australyske standerttiid", "SAST": "Sûd-Afrikaanske tiid", "WIB": "West-Yndonezyske tiid", "WIT": "East-Yndonezyske tiid", "LHST": "Lord Howe-eilânske standerttiid", "OESZ": "East-Europeeske simmertiid", "HNNOMX": "HNNOMX", "COST": "Kolombiaanske simmertiid", "HNEG": "East-Groenlânske standerttiid", "SRT": "Surinaamske tiid", "AWDT": "West-Australyske simmertiid", "JST": "Japanske standerttiid", "PDT": "Pasifik-simmertiid", "COT": "Kolombiaanske standerttiid", "MEZ": "Midden-Europeeske standerttiid", "HKT": "Hongkongse standerttiid", "AKDT": "Alaska-simmertiid", "CHAST": "Chatham standerttiid", "PST": "Pasifik-standerttiid", "TMST": "Turkmeense simmertiid", "HAT": "Newfoundlânske-simmertiid", "ChST": "Chamorro-tiid", "HECU": "Kubaanske simmertiid", "HAST": "Hawaii-Aleoetyske standerttiid"},
}
}
diff --git a/ga/ga.go b/ga/ga.go
index dd650a49..8cf68460 100644
--- a/ga/ga.go
+++ b/ga/ga.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"RC", "AD"},
erasNarrow: []string{"RC", "AD"},
erasWide: []string{"Roimh Chríost", "Anno Domini"},
- timezones: map[string]string{"HKST": "Am Samhraidh Hong Cong", "IST": "Am Caighdeánach na hIndia", "HECU": "Am Samhraidh Chúba", "EST": "Am Caighdeánach an Oirthir", "HNPMX": "Am Caighdeánach Meicsiceach an Aigéin Chiúin", "CDT": "Am Samhraidh Lárnach", "MST": "Am Caighdeánach na Sléibhte", "AEDT": "Am Samhraidh Oirthear na hAstráile", "ECT": "Am Eacuadór", "COT": "Am Caighdeánach na Colóime", "SGT": "Am Caighdeánach Shingeapór", "BT": "Am na Bútáine", "WEZ": "Am Caighdeánach Iarthar na hEorpa", "MEZ": "Am Caighdeánach Lár na hEorpa", "SRT": "Am Shuranam", "ACWST": "Am Caighdeánach Mheániarthar na hAstráile", "HNT": "Am Caighdeánach Thalamh an Éisc", "AWDT": "Am Samhraidh Iarthar na hAstráile", "LHDT": "Am Samhraidh Lord Howe", "CST": "Am Caighdeánach Lárnach", "VET": "Am Veiniséala", "WIT": "Am Oirthear na hIndinéise", "CAT": "Am Lár na hAfraice", "MESZ": "Am Samhraidh Lár na hEorpa", "JST": "Am Caighdeánach na Seapáine", "WAST": "Am Samhraidh Iarthar na hAfraice", "HNNOMX": "Am Caighdeánach Iarthuaisceart Mheicsiceo", "GFT": "Am Ghuáin na Fraince", "TMST": "Am Samhraidh na Tuircméanastáine", "WAT": "Am Caighdeánach Iarthar na hAfraice", "ACST": "Am Caighdeánach Lár na hAstráile", "AEST": "Am Caighdeánach Oirthear na hAstráile", "AWST": "Am Caighdeánach Iarthar na hAstráile", "CLST": "Am Samhraidh na Sile", "HNCU": "Am Caighdeánach Chúba", "MYT": "Am na Malaeisia", "ART": "Am Caighdeánach na hAirgintíne", "∅∅∅": "Am Samhraidh na hAmasóine", "UYST": "Am Samhraidh Uragua", "AKST": "Am Caighdeánach Alasca", "HADT": "Am Samhraidh Haváí-Ailiúit", "TMT": "Am Caighdeánach na Tuircméanastáine", "OEZ": "Am Caighdeánach Oirthear na hEorpa", "WART": "Am Caighdeánach Iarthar na hAirgintíne", "HENOMX": "Am Samhraidh Iarthuaisceart Mheicsiceo", "ADT": "Am Samhraidh an Atlantaigh", "PDT": "Am Samhraidh an Aigéin Chiúin", "HNOG": "Am Caighdeánach Iarthar na Graonlainne", "EAT": "Am Oirthear na hAfraice", "EDT": "Am Samhraidh an Oirthir", "NZDT": "Am Samhraidh na Nua-Shéalainne", "HEEG": "Am Samhraidh Oirthear na Graonlainne", "COST": "Am Samhraidh na Colóime", "LHST": "Am Caighdeánach Lord Howe", "JDT": "Am Samhraidh na Seapáine", "ChST": "Am Caighdeánach Seamórach", "MDT": "Am Samhraidh na Sléibhte", "HEOG": "Am Samhraidh Iarthar na Graonlainne", "HNPM": "Am Caighdeánach Saint-Pierre-et-Miquelon", "ARST": "Am Samhraidh na hAirgintíne", "HKT": "Am Caighdeánach Hong Cong", "OESZ": "Am Samhraidh Oirthear na hEorpa", "UYT": "Am Caighdeánach Uragua", "HAST": "Am Caighdeánach Haváí-Ailiúit", "WESZ": "Am Samhraidh Iarthar na hEorpa", "CHADT": "Am Samhraidh Chatham", "BOT": "Am na Bolaive", "HNEG": "Am Caighdeánach Oirthear na Graonlainne", "ACDT": "Am Samhraidh Lár na hAstráile", "WARST": "Am Samhraidh Iarthar na hAirgintíne", "GYT": "Am na Guáine", "ACWDT": "Am Samhraidh Mheániarthar na hAstráile", "HAT": "Am Samhraidh Thalamh an Éisc", "PST": "Am Caighdeánach an Aigéin Chiúin", "HEPM": "Am Samhraidh Saint-Pierre-et-Miquelon", "NZST": "Am Caighdeánach na Nua-Shéalainne", "CHAST": "Am Caighdeánach Chatham", "HEPMX": "Am Samhraidh Meicsiceach an Aigéin Chiúin", "AKDT": "Am Samhraidh Alasca", "AST": "Am Caighdeánach an Atlantaigh", "WIB": "Am Iarthar na hIndinéise", "GMT": "Meán-Am Greenwich", "WITA": "Am Lár na hIndinéise", "SAST": "Am Caighdeánach na hAfraice Theas", "CLT": "Am Caighdeánach na Sile"},
+ timezones: map[string]string{"CHAST": "Am Caighdeánach Chatham", "SRT": "Am Shuranam", "CDT": "Am Samhraidh Lárnach", "SGT": "Am Caighdeánach Shingeapór", "HADT": "Am Samhraidh Haváí-Ailiúit", "CAT": "Am Lár na hAfraice", "MESZ": "Am Samhraidh Lár na hEorpa", "ACST": "Am Caighdeánach Lár na hAstráile", "ACDT": "Am Samhraidh Lár na hAstráile", "NZST": "Am Caighdeánach na Nua-Shéalainne", "VET": "Am Veiniséala", "CLT": "Am Caighdeánach na Sile", "EST": "Am Caighdeánach an Oirthir", "GFT": "Am Ghuáin na Fraince", "LHST": "Am Caighdeánach Lord Howe", "HNPMX": "Am Caighdeánach Meicsiceach an Aigéin Chiúin", "JDT": "Am Samhraidh na Seapáine", "HEEG": "Am Samhraidh Oirthear na Graonlainne", "HEPM": "Am Samhraidh Saint-Pierre-et-Miquelon", "WART": "Am Caighdeánach Iarthar na hAirgintíne", "ACWDT": "Am Samhraidh Mheániarthar na hAstráile", "TMST": "Am Samhraidh na Tuircméanastáine", "COST": "Am Samhraidh na Colóime", "UYST": "Am Samhraidh Uragua", "CHADT": "Am Samhraidh Chatham", "WEZ": "Am Caighdeánach Iarthar na hEorpa", "TMT": "Am Caighdeánach na Tuircméanastáine", "HNEG": "Am Caighdeánach Oirthear na Graonlainne", "AEDT": "Am Samhraidh Oirthear na hAstráile", "WAT": "Am Caighdeánach Iarthar na hAfraice", "EDT": "Am Samhraidh an Oirthir", "HENOMX": "Am Samhraidh Iarthuaisceart Mheicsiceo", "AWDT": "Am Samhraidh Iarthar na hAstráile", "MEZ": "Am Caighdeánach Lár na hEorpa", "JST": "Am Caighdeánach na Seapáine", "AST": "Am Caighdeánach an Atlantaigh", "MYT": "Am na Malaeisia", "AKDT": "Am Samhraidh Alasca", "PDT": "Am Samhraidh an Aigéin Chiúin", "HNNOMX": "Am Caighdeánach Iarthuaisceart Mheicsiceo", "ART": "Am Caighdeánach na hAirgintíne", "COT": "Am Caighdeánach na Colóime", "AEST": "Am Caighdeánach Oirthear na hAstráile", "ChST": "Am Caighdeánach Seamórach", "LHDT": "Am Samhraidh Lord Howe", "CST": "Am Caighdeánach Lárnach", "AWST": "Am Caighdeánach Iarthar na hAstráile", "HAST": "Am Caighdeánach Haváí-Ailiúit", "HKST": "Am Samhraidh Hong Cong", "WIT": "Am Oirthear na hIndinéise", "PST": "Am Caighdeánach an Aigéin Chiúin", "ACWST": "Am Caighdeánach Mheániarthar na hAstráile", "ADT": "Am Samhraidh an Atlantaigh", "WESZ": "Am Samhraidh Iarthar na hEorpa", "GMT": "Meán-Am Greenwich", "HNOG": "Am Caighdeánach Iarthar na Graonlainne", "HEOG": "Am Samhraidh Iarthar na Graonlainne", "ARST": "Am Samhraidh na hAirgintíne", "HNT": "Am Caighdeánach Thalamh an Éisc", "AKST": "Am Caighdeánach Alasca", "HNPM": "Am Caighdeánach Saint-Pierre-et-Miquelon", "GYT": "Am na Guáine", "EAT": "Am Oirthear na hAfraice", "ECT": "Am Eacuadór", "∅∅∅": "Am Samhraidh na hAmasóine", "MST": "Am Caighdeánach Mhacao", "WAST": "Am Samhraidh Iarthar na hAfraice", "HKT": "Am Caighdeánach Hong Cong", "WITA": "Am Lár na hIndinéise", "WIB": "Am Iarthar na hIndinéise", "BOT": "Am na Bolaive", "NZDT": "Am Samhraidh na Nua-Shéalainne", "WARST": "Am Samhraidh Iarthar na hAirgintíne", "CLST": "Am Samhraidh na Sile", "MDT": "Am Samhraidh Mhacao", "HAT": "Am Samhraidh Thalamh an Éisc", "SAST": "Am Caighdeánach na hAfraice Theas", "HNCU": "Am Caighdeánach Chúba", "HECU": "Am Samhraidh Chúba", "IST": "Am Caighdeánach na hIndia", "OEZ": "Am Caighdeánach Oirthear na hEorpa", "OESZ": "Am Samhraidh Oirthear na hEorpa", "BT": "Am na Bútáine", "UYT": "Am Caighdeánach Uragua", "HEPMX": "Am Samhraidh Meicsiceach an Aigéin Chiúin"},
}
}
diff --git a/ga_IE/ga_IE.go b/ga_IE/ga_IE.go
index 8cc79fac..29b00c83 100644
--- a/ga_IE/ga_IE.go
+++ b/ga_IE/ga_IE.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"RC", "AD"},
erasNarrow: []string{"RC", "AD"},
erasWide: []string{"Roimh Chríost", "Anno Domini"},
- timezones: map[string]string{"GFT": "Am Ghuáin na Fraince", "EAT": "Am Oirthear na hAfraice", "ACWST": "Am Caighdeánach Mheániarthar na hAstráile", "GMT": "Meán-Am Greenwich", "SGT": "Am Caighdeánach Shingeapór", "AKST": "Am Caighdeánach Alasca", "MST": "Am Caighdeánach na Sléibhte", "BT": "Am na Bútáine", "WITA": "Am Lár na hIndinéise", "HEPM": "Am Samhraidh Saint-Pierre-et-Miquelon", "TMST": "Am Samhraidh na Tuircméanastáine", "HEPMX": "Am Samhraidh Meicsiceach an Aigéin Chiúin", "CST": "Am Caighdeánach Lárnach", "WIB": "Am Iarthar na hIndinéise", "ART": "Am Caighdeánach na hAirgintíne", "CLT": "Am Caighdeánach na Sile", "∅∅∅": "Am Samhraidh na hAmasóine", "EST": "Am Caighdeánach an Oirthir", "HKT": "Am Caighdeánach Hong Cong", "ChST": "Am Caighdeánach Seamórach", "HNEG": "Am Caighdeánach Oirthear na Graonlainne", "HEEG": "Am Samhraidh Oirthear na Graonlainne", "WAT": "Am Caighdeánach Iarthar na hAfraice", "AST": "Am Caighdeánach an Atlantaigh", "HAST": "Am Caighdeánach Haváí-Ailiúit", "HNOG": "Am Caighdeánach Iarthar na Graonlainne", "MESZ": "Am Samhraidh Lár na hEorpa", "TMT": "Am Caighdeánach na Tuircméanastáine", "AWST": "Am Caighdeánach Iarthar na hAstráile", "AWDT": "Am Samhraidh Iarthar na hAstráile", "NZST": "Am Caighdeánach na Nua-Shéalainne", "SAST": "Am Caighdeánach na hAfraice Theas", "IST": "Am Caighdeánach na hIndia", "MYT": "Am na Malaeisia", "UYT": "Am Caighdeánach Uragua", "UYST": "Am Samhraidh Uragua", "WAST": "Am Samhraidh Iarthar na hAfraice", "COST": "Am Samhraidh na Colóime", "HNNOMX": "Am Caighdeánach Iarthuaisceart Mheicsiceo", "ACST": "Am Caighdeánach Lár na hAstráile", "GYT": "Am na Guáine", "HADT": "Am Samhraidh Haváí-Ailiúit", "WEZ": "Am Caighdeánach Iarthar na hEorpa", "CHADT": "Am Samhraidh Chatham", "CLST": "Am Samhraidh na Sile", "WART": "Am Caighdeánach Iarthar na hAirgintíne", "AKDT": "Am Samhraidh Alasca", "ARST": "Am Samhraidh na hAirgintíne", "HNPM": "Am Caighdeánach Saint-Pierre-et-Miquelon", "HNT": "Am Caighdeánach Thalamh an Éisc", "AEDT": "Am Samhraidh Oirthear na hAstráile", "EDT": "Am Samhraidh an Oirthir", "ADT": "Am Samhraidh an Atlantaigh", "WIT": "Am Oirthear na hIndinéise", "HEOG": "Am Samhraidh Iarthar na Graonlainne", "WESZ": "Am Samhraidh Iarthar na hEorpa", "HAT": "Am Samhraidh Thalamh an Éisc", "NZDT": "Am Samhraidh na Nua-Shéalainne", "COT": "Am Caighdeánach na Colóime", "HNCU": "Am Caighdeánach Chúba", "PST": "Am Caighdeánach an Aigéin Chiúin", "AEST": "Am Caighdeánach Oirthear na hAstráile", "BOT": "Am na Bolaive", "HKST": "Am Samhraidh Hong Cong", "LHDT": "Am Samhraidh Lord Howe", "CHAST": "Am Caighdeánach Chatham", "JST": "Am Caighdeánach na Seapáine", "CAT": "Am Lár na hAfraice", "MDT": "Am Samhraidh na Sléibhte", "VET": "Am Veiniséala", "PDT": "Am Samhraidh an Aigéin Chiúin", "OEZ": "Am Caighdeánach Oirthear na hEorpa", "HNPMX": "Am Caighdeánach Meicsiceach an Aigéin Chiúin", "ECT": "Am Eacuadór", "WARST": "Am Samhraidh Iarthar na hAirgintíne", "SRT": "Am Shuranam", "ACDT": "Am Samhraidh Lár na hAstráile", "OESZ": "Am Samhraidh Oirthear na hEorpa", "JDT": "Am Samhraidh na Seapáine", "CDT": "Am Samhraidh Lárnach", "ACWDT": "Am Samhraidh Mheániarthar na hAstráile", "LHST": "Am Caighdeánach Lord Howe", "MEZ": "Am Caighdeánach Lár na hEorpa", "HENOMX": "Am Samhraidh Iarthuaisceart Mheicsiceo", "HECU": "Am Samhraidh Chúba"},
+ timezones: map[string]string{"VET": "Am Veiniséala", "ADT": "Am Samhraidh an Atlantaigh", "GMT": "Meán-Am Greenwich", "ART": "Am Caighdeánach na hAirgintíne", "ACWDT": "Am Samhraidh Mheániarthar na hAstráile", "MEZ": "Am Caighdeánach Lár na hEorpa", "WARST": "Am Samhraidh Iarthar na hAirgintíne", "WAT": "Am Caighdeánach Iarthar na hAfraice", "EDT": "Am Samhraidh an Oirthir", "HNEG": "Am Caighdeánach Oirthear na Graonlainne", "HNPMX": "Am Caighdeánach Meicsiceach an Aigéin Chiúin", "EAT": "Am Oirthear na hAfraice", "CST": "Am Caighdeánach Lárnach", "NZST": "Am Caighdeánach na Nua-Shéalainne", "TMST": "Am Samhraidh na Tuircméanastáine", "LHST": "Am Caighdeánach Lord Howe", "CLT": "Am Caighdeánach na Sile", "ChST": "Am Caighdeánach Seamórach", "ACDT": "Am Samhraidh Lár na hAstráile", "HENOMX": "Am Samhraidh Iarthuaisceart Mheicsiceo", "AKDT": "Am Samhraidh Alasca", "HEPM": "Am Samhraidh Saint-Pierre-et-Miquelon", "LHDT": "Am Samhraidh Lord Howe", "GYT": "Am na Guáine", "CHAST": "Am Caighdeánach Chatham", "CHADT": "Am Samhraidh Chatham", "SRT": "Am Shuranam", "HNCU": "Am Caighdeánach Chúba", "JST": "Am Caighdeánach na Seapáine", "HNOG": "Am Caighdeánach Iarthar na Graonlainne", "CAT": "Am Lár na hAfraice", "HEOG": "Am Samhraidh Iarthar na Graonlainne", "OEZ": "Am Caighdeánach Oirthear na hEorpa", "ARST": "Am Samhraidh na hAirgintíne", "HAST": "Am Caighdeánach Haváí-Ailiúit", "HADT": "Am Samhraidh Haváí-Ailiúit", "AST": "Am Caighdeánach an Atlantaigh", "COST": "Am Samhraidh na Colóime", "AKST": "Am Caighdeánach Alasca", "AEDT": "Am Samhraidh Oirthear na hAstráile", "ECT": "Am Eacuadór", "IST": "Am Caighdeánach na hIndia", "BT": "Am na Bútáine", "AEST": "Am Caighdeánach Oirthear na hAstráile", "CDT": "Am Samhraidh Lárnach", "PDT": "Am Samhraidh an Aigéin Chiúin", "HNNOMX": "Am Caighdeánach Iarthuaisceart Mheicsiceo", "NZDT": "Am Samhraidh na Nua-Shéalainne", "JDT": "Am Samhraidh na Seapáine", "WEZ": "Am Caighdeánach Iarthar na hEorpa", "WART": "Am Caighdeánach Iarthar na hAirgintíne", "TMT": "Am Caighdeánach na Tuircméanastáine", "HKST": "Am Samhraidh Hong Cong", "AWST": "Am Caighdeánach Iarthar na hAstráile", "PST": "Am Caighdeánach an Aigéin Chiúin", "WIB": "Am Iarthar na hIndinéise", "COT": "Am Caighdeánach na Colóime", "UYST": "Am Samhraidh Uragua", "MYT": "Am na Malaeisia", "BOT": "Am na Bolaive", "∅∅∅": "Am Samhraidh na hAmasóine", "HNPM": "Am Caighdeánach Saint-Pierre-et-Miquelon", "SAST": "Am Caighdeánach na hAfraice Theas", "HEPMX": "Am Samhraidh Meicsiceach an Aigéin Chiúin", "GFT": "Am Ghuáin na Fraince", "WITA": "Am Lár na hIndinéise", "EST": "Am Caighdeánach an Oirthir", "HKT": "Am Caighdeánach Hong Cong", "ACST": "Am Caighdeánach Lár na hAstráile", "UYT": "Am Caighdeánach Uragua", "CLST": "Am Samhraidh na Sile", "MST": "Am Caighdeánach Mhacao", "MESZ": "Am Samhraidh Lár na hEorpa", "HAT": "Am Samhraidh Thalamh an Éisc", "AWDT": "Am Samhraidh Iarthar na hAstráile", "SGT": "Am Caighdeánach Shingeapór", "WESZ": "Am Samhraidh Iarthar na hEorpa", "WAST": "Am Samhraidh Iarthar na hAfraice", "HEEG": "Am Samhraidh Oirthear na Graonlainne", "HECU": "Am Samhraidh Chúba", "ACWST": "Am Caighdeánach Mheániarthar na hAstráile", "OESZ": "Am Samhraidh Oirthear na hEorpa", "WIT": "Am Oirthear na hIndinéise", "MDT": "Am Samhraidh Mhacao", "HNT": "Am Caighdeánach Thalamh an Éisc"},
}
}
diff --git a/gd/gd.go b/gd/gd.go
index 113ed6b8..d3582a0e 100644
--- a/gd/gd.go
+++ b/gd/gd.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"RC", "AD"},
erasNarrow: []string{"R", "A"},
erasWide: []string{"Ro Chrìosta", "An dèidh Chrìosta"},
- timezones: map[string]string{"BT": "Àm Butàin", "∅∅∅": "Tìde samhraidh Amasoin", "EAT": "Àm Afraga an Ear", "ADT": "Tìde samhraidh a’ Chuain Siar", "VET": "Àm na Bheiniseala", "SGT": "Àm Singeapòr", "UYST": "Tìde samhraidh Uruguaidh", "HEPM": "Tìde Samhraidh Saint Pierre agus Miquelon", "CHAST": "Bun-àm Chatham", "WAT": "Bun-àm Afraga an Iar", "COT": "Bun-àm Coloimbia", "GMT": "Greenwich Mean Time", "MDT": "Tìde samhraidh Macàthu", "EDT": "Tìde samhraidh Aimeireaga a Tuath an Ear", "AKST": "Bun-àm Alaska", "IST": "Àm nan Innseachan", "GFT": "Àm Guidheàna na Frainge", "HAT": "Tìde samhraidh Talamh an Èisg", "MEZ": "Bun-àm Meadhan na Roinn-Eòrpa", "TMT": "Bun-àm Turcmanastàin", "TMST": "Tìde samhraidh Turcmanastàin", "WEZ": "Bun-àm na Roinn-Eòrpa an Iar", "HNPMX": "Bun-àm a’ Chuain Sèimh Mheagsago", "ART": "Bun-àm na h-Argantaine", "AWDT": "Tìde samhraidh Astràilia an Iar", "HNNOMX": "Bun-àm Mheagsago an Iar-thuath", "HEPMX": "Tìde samhraidh a’ Chuain Sèimh Mheagsago", "AKDT": "Tìde samhraidh Alaska", "CDT": "Tìde samhraidh Meadhan Aimeireaga a Tuath", "NZST": "Bun-àm Shealainn Nuaidh", "SAST": "Àm Afraga a Deas", "JST": "Bun-àm na Seapaine", "WAST": "Tìde Samhraidh Afraga an Iar", "HADT": "Tìde Samhraidh nan Eileanan Hawai’i ’s Aleutach", "AWST": "Bun-àm Astràilia an Iar", "AST": "Bun-àm a’ Chuain Siar", "HAST": "Bun-àm nan Eileanan Hawai’i ’s Aleutach", "ACWST": "Bun-àm Meadhan Astràilia an Iar", "PDT": "Tìde samhraidh a’ Chuain Sèimh", "CLT": "Bun-àm na Sile", "ACST": "Bun-àm Meadhan Astràilia", "ECT": "Àm Eacuadoir", "COST": "Tìde samhraidh Coloimbia", "HKT": "Bun-àm Hong Kong", "EST": "Bun-àm Aimeireaga a Tuath an Ear", "UYT": "Bun-àm Uruguaidh", "WIB": "Àm nan Innd-Innse an Iar", "HNT": "Bun-àm Talamh an Èisg", "CLST": "Tìde samhraidh na Sile", "BOT": "Àm Boilibhia", "HENOMX": "Tìde samhraidh Mheagsago an Iar-thuath", "HNCU": "Bun-àm Cùba", "HEOG": "Tìde samhraidh na Graonlainn an Iar", "AEST": "Bun-àm Astràilia an Ear", "ACDT": "Tìde samhraidh Meadhan Astràilia", "HECU": "Tìde samhraidh Cùba", "WART": "Bun-àm na h-Argantaine Siaraich", "WITA": "Àm Meadhan nan Innd-Innse", "HNPM": "Bun-àm Saint Pierre agus Miquelon", "LHST": "Bun-àm Lord Howe", "HEEG": "Tìde samhraidh na Graonlainn an Ear", "HKST": "Tìde samhraidh Hong Kong", "WARST": "Tìde samhraidh na h-Argantaine Siaraich", "ARST": "Tìde samhraidh na h-Argantaine", "AEDT": "Tìde samhraidh Astràilia an Ear", "NZDT": "Tìde samhraidh Shealainn Nuaidh", "MESZ": "Tìde samhraidh Meadhan na Roinn-Eòrpa", "HNEG": "Bun-àm na Graonlainn an Ear", "OEZ": "Bun-àm na Roinn-Eòrpa an Ear", "ACWDT": "Tìde samhraidh Meadhan Astràilia an Iar", "CST": "Bun-àm Meadhan Aimeireaga a Tuath", "WIT": "Àm nan Innd-Innse an Ear", "SRT": "Àm Suranaim", "WESZ": "Tìde samhraidh na Roinn-Eòrpa an Iar", "LHDT": "Tìde samhraidh Lord Howe", "MST": "Bun-àm Macàthu", "CAT": "Àm Meadhan Afraga", "GYT": "Àm Guidheàna", "MYT": "Àm Mhalaidhsea", "HNOG": "Bun-àm na Graonlainn an Iar", "CHADT": "Tìde samhraidh Chatham", "JDT": "Tìde samhraidh na Seapaine", "ChST": "Àm Chamorro", "OESZ": "Tìde samhraidh na Roinn-Eòrpa an Ear", "PST": "Bun-àm a’ Chuain Sèimh"},
+ timezones: map[string]string{"HNCU": "Bun-àm Cùba", "CHAST": "Bun-àm Chatham", "HEOG": "Tìde samhraidh na Graonlainn an Iar", "MST": "Bun-àm Macàthu", "WAST": "Tìde Samhraidh Afraga an Iar", "COT": "Bun-àm Coloimbia", "LHST": "Bun-àm Lord Howe", "GYT": "Àm Guidheàna", "ACWDT": "Tìde samhraidh Meadhan Astràilia an Iar", "OESZ": "Tìde samhraidh na Roinn-Eòrpa an Ear", "HNNOMX": "Bun-àm Mheagsago an Iar-thuath", "AEDT": "Tìde samhraidh Astràilia an Ear", "AWDT": "Tìde samhraidh Astràilia an Iar", "NZDT": "Tìde samhraidh Shealainn Nuaidh", "WART": "Bun-àm na h-Argantaine Siaraich", "AEST": "Bun-àm Astràilia an Ear", "SAST": "Àm Afraga a Deas", "OEZ": "Bun-àm na Roinn-Eòrpa an Ear", "TMST": "Tìde samhraidh Turcmanastàin", "HEPM": "Tìde Samhraidh Saint Pierre agus Miquelon", "WIB": "Àm nan Innd-Innse an Iar", "WIT": "Àm nan Innd-Innse an Ear", "PDT": "Tìde samhraidh a’ Chuain Sèimh", "MEZ": "Bun-àm Meadhan na Roinn-Eòrpa", "ADT": "Tìde samhraidh a’ Chuain Siar", "WARST": "Tìde samhraidh na h-Argantaine Siaraich", "UYT": "Bun-àm Uruguaidh", "HNPM": "Bun-àm Saint Pierre agus Miquelon", "HADT": "Tìde Samhraidh nan Eileanan Hawai’i ’s Aleutach", "IST": "Àm nan Innseachan", "ACWST": "Bun-àm Meadhan Astràilia an Iar", "MDT": "Tìde samhraidh Macàthu", "EDT": "Tìde samhraidh Aimeireaga a Tuath an Ear", "ACST": "Bun-àm Meadhan Astràilia", "CLT": "Bun-àm na Sile", "ARST": "Tìde samhraidh na h-Argantaine", "EST": "Bun-àm Aimeireaga a Tuath an Ear", "HKST": "Tìde samhraidh Hong Kong", "WEZ": "Bun-àm na Roinn-Eòrpa an Iar", "HENOMX": "Tìde samhraidh Mheagsago an Iar-thuath", "HNPMX": "Bun-àm a’ Chuain Sèimh Mheagsago", "CST": "Bun-àm Meadhan Aimeireaga a Tuath", "ECT": "Àm Eacuadoir", "JST": "Bun-àm na Seapaine", "JDT": "Tìde samhraidh na Seapaine", "TMT": "Bun-àm Turcmanastàin", "AWST": "Bun-àm Astràilia an Iar", "BOT": "Àm Boilibhia", "AST": "Bun-àm a’ Chuain Siar", "GMT": "Greenwich Mean Time", "ART": "Bun-àm na h-Argantaine", "COST": "Tìde samhraidh Coloimbia", "AKST": "Bun-àm Alaska", "LHDT": "Tìde samhraidh Lord Howe", "SGT": "Àm Singeapòr", "CAT": "Àm Meadhan Afraga", "MESZ": "Tìde samhraidh Meadhan na Roinn-Eòrpa", "WAT": "Bun-àm Afraga an Iar", "WITA": "Àm Meadhan nan Innd-Innse", "SRT": "Àm Suranaim", "HECU": "Tìde samhraidh Cùba", "PST": "Bun-àm a’ Chuain Sèimh", "NZST": "Bun-àm Shealainn Nuaidh", "MYT": "Àm Mhalaidhsea", "BT": "Àm Butàin", "HNOG": "Bun-àm na Graonlainn an Iar", "GFT": "Àm Guidheàna na Frainge", "UYST": "Tìde samhraidh Uruguaidh", "CHADT": "Tìde samhraidh Chatham", "∅∅∅": "Tìde samhraidh Amasoin", "CLST": "Tìde samhraidh na Sile", "HNT": "Bun-àm Talamh an Èisg", "EAT": "Àm Afraga an Ear", "ChST": "Àm Chamorro", "HAST": "Bun-àm nan Eileanan Hawai’i ’s Aleutach", "VET": "Àm na Bheiniseala", "HKT": "Bun-àm Hong Kong", "ACDT": "Tìde samhraidh Meadhan Astràilia", "HNEG": "Bun-àm na Graonlainn an Ear", "HEEG": "Tìde samhraidh na Graonlainn an Ear", "WESZ": "Tìde samhraidh na Roinn-Eòrpa an Iar", "HAT": "Tìde samhraidh Talamh an Èisg", "AKDT": "Tìde samhraidh Alaska", "HEPMX": "Tìde samhraidh a’ Chuain Sèimh Mheagsago", "CDT": "Tìde samhraidh Meadhan Aimeireaga a Tuath"},
}
}
diff --git a/gd_GB/gd_GB.go b/gd_GB/gd_GB.go
index 489f1646..268f38ec 100644
--- a/gd_GB/gd_GB.go
+++ b/gd_GB/gd_GB.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"RC", "AD"},
erasNarrow: []string{"R", "A"},
erasWide: []string{"Ro Chrìosta", "An dèidh Chrìosta"},
- timezones: map[string]string{"MST": "Bun-àm Macàthu", "WIT": "Àm nan Innd-Innse an Ear", "HEOG": "Tìde samhraidh na Graonlainn an Iar", "HEPM": "Tìde Samhraidh Saint Pierre agus Miquelon", "GFT": "Àm Guidheàna na Frainge", "WART": "Bun-àm na h-Argantaine Siaraich", "∅∅∅": "Tìde samhraidh Pearù", "UYT": "Bun-àm Uruguaidh", "WITA": "Àm Meadhan nan Innd-Innse", "AEST": "Bun-àm Astràilia an Ear", "HNPM": "Bun-àm Saint Pierre agus Miquelon", "HNEG": "Bun-àm na Graonlainn an Ear", "OESZ": "Tìde samhraidh na Roinn-Eòrpa an Ear", "BOT": "Àm Boilibhia", "HNNOMX": "Bun-àm Mheagsago an Iar-thuath", "HNT": "Bun-àm Talamh an Èisg", "PST": "Bun-àm a’ Chuain Sèimh", "HADT": "Tìde Samhraidh nan Eileanan Hawai’i ’s Aleutach", "ACWDT": "Tìde samhraidh Meadhan Astràilia an Iar", "MYT": "Àm Mhalaidhsea", "ARST": "Tìde samhraidh na h-Argantaine", "LHST": "Bun-àm Lord Howe", "MESZ": "Tìde samhraidh Meadhan na Roinn-Eòrpa", "TMST": "Tìde samhraidh Turcmanastàin", "HNPMX": "Bun-àm a’ Chuain Sèimh Mheagsago", "HENOMX": "Tìde samhraidh Mheagsago an Iar-thuath", "AWDT": "Tìde samhraidh Astràilia an Iar", "ChST": "Àm Chamorro", "COST": "Tìde samhraidh Coloimbia", "VET": "Àm na Bheiniseala", "NZDT": "Tìde samhraidh Shealainn Nuaidh", "CST": "Bun-àm Meadhan Aimeireaga a Tuath", "WIB": "Àm nan Innd-Innse an Iar", "WESZ": "Tìde samhraidh na Roinn-Eòrpa an Iar", "PDT": "Tìde samhraidh a’ Chuain Sèimh", "LHDT": "Tìde samhraidh Lord Howe", "NZST": "Bun-àm Shealainn Nuaidh", "CLT": "Bun-àm na Sile", "CLST": "Tìde samhraidh na Sile", "ACDT": "Tìde samhraidh Meadhan Astràilia", "AKDT": "Tìde samhraidh Alaska", "COT": "Bun-àm Coloimbia", "WARST": "Tìde samhraidh na h-Argantaine Siaraich", "GYT": "Àm Guidheàna", "HAST": "Bun-àm nan Eileanan Hawai’i ’s Aleutach", "ACST": "Bun-àm Meadhan Astràilia", "OEZ": "Bun-àm na Roinn-Eòrpa an Ear", "BT": "Àm Butàin", "ACWST": "Bun-àm Meadhan Astràilia an Iar", "JDT": "Tìde samhraidh na Seapaine", "WAST": "Tìde Samhraidh Afraga an Iar", "MDT": "Tìde samhraidh Macàthu", "AEDT": "Tìde samhraidh Astràilia an Ear", "IST": "Àm nan Innseachan", "CDT": "Tìde samhraidh Meadhan Aimeireaga a Tuath", "HKT": "Bun-àm Hong Kong", "EST": "Bun-àm Aimeireaga a Tuath an Ear", "AKST": "Bun-àm Alaska", "AST": "Bun-àm a’ Chuain Siar", "SRT": "Àm Suranaim", "AWST": "Bun-àm Astràilia an Iar", "MEZ": "Bun-àm Meadhan na Roinn-Eòrpa", "GMT": "Greenwich Mean Time", "HEPMX": "Tìde samhraidh a’ Chuain Sèimh Mheagsago", "ECT": "Àm Eacuadoir", "HECU": "Tìde samhraidh Cùba", "UYST": "Tìde samhraidh Uruguaidh", "HAT": "Tìde samhraidh Talamh an Èisg", "ART": "Bun-àm na h-Argantaine", "HKST": "Tìde samhraidh Hong Kong", "TMT": "Bun-àm Turcmanastàin", "WAT": "Bun-àm Afraga an Iar", "JST": "Bun-àm na Seapaine", "SGT": "Àm Singeapòr", "EDT": "Tìde samhraidh Aimeireaga a Tuath an Ear", "ADT": "Tìde samhraidh a’ Chuain Siar", "HNOG": "Bun-àm na Graonlainn an Iar", "CHAST": "Bun-àm Chatham", "CHADT": "Tìde samhraidh Chatham", "HEEG": "Tìde samhraidh na Graonlainn an Ear", "CAT": "Àm Meadhan Afraga", "WEZ": "Bun-àm na Roinn-Eòrpa an Iar", "SAST": "Àm Afraga a Deas", "EAT": "Àm Afraga an Ear", "HNCU": "Bun-àm Cùba"},
+ timezones: map[string]string{"UYT": "Bun-àm Uruguaidh", "LHDT": "Tìde samhraidh Lord Howe", "HEOG": "Tìde samhraidh na Graonlainn an Iar", "GMT": "Greenwich Mean Time", "AEDT": "Tìde samhraidh Astràilia an Ear", "CDT": "Tìde samhraidh Meadhan Aimeireaga a Tuath", "HADT": "Tìde Samhraidh nan Eileanan Hawai’i ’s Aleutach", "TMST": "Tìde samhraidh Turcmanastàin", "WAT": "Bun-àm Afraga an Iar", "HNPM": "Bun-àm Saint Pierre agus Miquelon", "CHADT": "Tìde samhraidh Chatham", "ECT": "Àm Eacuadoir", "ACWDT": "Tìde samhraidh Meadhan Astràilia an Iar", "MEZ": "Bun-àm Meadhan na Roinn-Eòrpa", "CLST": "Tìde samhraidh na Sile", "HNOG": "Bun-àm na Graonlainn an Iar", "AST": "Bun-àm a’ Chuain Siar", "WAST": "Tìde Samhraidh Afraga an Iar", "EAT": "Àm Afraga an Ear", "HNCU": "Bun-àm Cùba", "OESZ": "Tìde samhraidh na Roinn-Eòrpa an Ear", "WIT": "Àm nan Innd-Innse an Ear", "∅∅∅": "Tìde samhraidh Bhrasilia", "NZDT": "Tìde samhraidh Shealainn Nuaidh", "CLT": "Bun-àm na Sile", "WEZ": "Bun-àm na Roinn-Eòrpa an Iar", "MYT": "Àm Mhalaidhsea", "ACST": "Bun-àm Meadhan Astràilia", "HEEG": "Tìde samhraidh na Graonlainn an Ear", "AWDT": "Tìde samhraidh Astràilia an Iar", "CHAST": "Bun-àm Chatham", "VET": "Àm na Bheiniseala", "COST": "Tìde samhraidh Coloimbia", "AKDT": "Tìde samhraidh Alaska", "CAT": "Àm Meadhan Afraga", "ACWST": "Bun-àm Meadhan Astràilia an Iar", "HNPMX": "Bun-àm a’ Chuain Sèimh Mheagsago", "SGT": "Àm Singeapòr", "HNNOMX": "Bun-àm Mheagsago an Iar-thuath", "ART": "Bun-àm na h-Argantaine", "ACDT": "Tìde samhraidh Meadhan Astràilia", "UYST": "Tìde samhraidh Uruguaidh", "SAST": "Àm Afraga a Deas", "HEPMX": "Tìde samhraidh a’ Chuain Sèimh Mheagsago", "HECU": "Tìde samhraidh Cùba", "MDT": "Tìde samhraidh Macàthu", "NZST": "Bun-àm Shealainn Nuaidh", "OEZ": "Bun-àm na Roinn-Eòrpa an Ear", "BT": "Àm Butàin", "AKST": "Bun-àm Alaska", "ChST": "Àm Chamorro", "GYT": "Àm Guidheàna", "HAST": "Bun-àm nan Eileanan Hawai’i ’s Aleutach", "WESZ": "Tìde samhraidh na Roinn-Eòrpa an Iar", "HKST": "Tìde samhraidh Hong Kong", "HNT": "Bun-àm Talamh an Èisg", "HAT": "Tìde samhraidh Talamh an Èisg", "PST": "Bun-àm a’ Chuain Sèimh", "PDT": "Tìde samhraidh a’ Chuain Sèimh", "MST": "Bun-àm Macàthu", "SRT": "Àm Suranaim", "JDT": "Tìde samhraidh na Seapaine", "WART": "Bun-àm na h-Argantaine Siaraich", "WARST": "Tìde samhraidh na h-Argantaine Siaraich", "COT": "Bun-àm Coloimbia", "HNEG": "Bun-àm na Graonlainn an Ear", "GFT": "Àm Guidheàna na Frainge", "IST": "Àm nan Innseachan", "MESZ": "Tìde samhraidh Meadhan na Roinn-Eòrpa", "AEST": "Bun-àm Astràilia an Ear", "BOT": "Àm Boilibhia", "EST": "Bun-àm Aimeireaga a Tuath an Ear", "EDT": "Tìde samhraidh Aimeireaga a Tuath an Ear", "HENOMX": "Tìde samhraidh Mheagsago an Iar-thuath", "WIB": "Àm nan Innd-Innse an Iar", "AWST": "Bun-àm Astràilia an Iar", "WITA": "Àm Meadhan nan Innd-Innse", "HEPM": "Tìde Samhraidh Saint Pierre agus Miquelon", "JST": "Bun-àm na Seapaine", "HKT": "Bun-àm Hong Kong", "TMT": "Bun-àm Turcmanastàin", "ARST": "Tìde samhraidh na h-Argantaine", "LHST": "Bun-àm Lord Howe", "CST": "Bun-àm Meadhan Aimeireaga a Tuath", "ADT": "Tìde samhraidh a’ Chuain Siar"},
}
}
diff --git a/gl/gl.go b/gl/gl.go
index 54dbf536..1d0c2a73 100644
--- a/gl/gl.go
+++ b/gl/gl.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "despois de Cristo"},
- timezones: map[string]string{"CAT": "Horario de África Central", "WAST": "Horario de verán de África Occidental", "WIB": "Horario de Indonesia Occidental", "PST": "Horario estándar do Pacífico, Norteamérica", "ACWDT": "Horario de verán de Australia Occidental Central", "AEDT": "Horario de verán de Australia Oriental", "AWST": "Horario estándar de Australia Occidental", "CLT": "Horario estándar de Chile", "HNNOMX": "Horario estándar de México Noroeste", "UYST": "Horario de verán de Uruguai", "AWDT": "Horario de verán de Australia Occidental", "HNPM": "Horario estándar de Saint Pierre e Miquelon", "HEPM": "Horario de verán de Saint Pierre e Miquelon", "NZST": "Horario estándar de Nova Zelandia", "SAST": "Horario estándar de África do Sur", "CLST": "Horario de verán de Chile", "OESZ": "Horario de verán de Europa Oriental", "HENOMX": "Horario de verán de México Noroeste", "GMT": "Horario do meridiano de Greenwich", "GYT": "Horario da Güiana", "HADT": "Horario de verán de Hawai-Aleutiano", "COT": "Horario estándar de Colombia", "HAST": "Horario estándar de Hawai-Aleutiano", "CHAST": "Horario estándar de Chatham", "IST": "Horario estándar da India", "BOT": "Horario de Bolivia", "OEZ": "Horario estándar de Europa Oriental", "ADT": "Horario de verán do Atlántico", "BT": "Horario de Bután", "HNT": "Horario estándar de Terranova", "WIT": "Horario de Indonesia Oriental", "ACWST": "Horario estándar de Australia Occidental Central", "AEST": "Horario estándar de Australia Oriental", "MEZ": "Horario estándar de Europa Central", "LHST": "Horario estándar de Lord Howe", "ACST": "Horario estándar de Australia Central", "HECU": "Horario de verán de Cuba", "EAT": "Horario de África Oriental", "EST": "Horario estándar do leste, Norteamérica", "MYT": "Horario de Malaisia", "CST": "Horario estándar central, Norteamérica", "HNOG": "Horario estándar de Groenlandia Occidental", "MESZ": "Horario de verán de Europa Central", "∅∅∅": "Horario de verán do Amazonas", "TMST": "Horario de verán de Turcomenistán", "VET": "Horario de Venezuela", "CHADT": "Horario de verán de Chatham", "CDT": "Horario de verán central, Norteamérica", "JDT": "Horario de verán do Xapón", "WAT": "Horario estándar de África Occidental", "SGT": "Horario estándar de Singapur", "HNCU": "Horario estándar de Cuba", "HNPMX": "Horario estándar do Pacífico mexicano", "AST": "Horario estándar do Atlántico", "WESZ": "Horario de verán de Europa Occidental", "HKT": "Horario estándar de Hong Kong", "WITA": "Horario de Indonesia Central", "GFT": "Horario da Güiana Francesa", "ECT": "Horario de Ecuador", "WARST": "Horario de verán de Arxentina Occidental", "MST": "MST", "NZDT": "Horario de verán de Nova Zelandia", "HEEG": "Horario de verán de Groenlandia Oriental", "ACDT": "Horario de verán de Australia Central", "ART": "Horario estándar de Arxentina", "HEOG": "Horario de verán de Groenlandia Occidental", "PDT": "Horario de verán do Pacífico, Norteamérica", "JST": "Horario estándar do Xapón", "HNEG": "Horario estándar de Groenlandia Oriental", "UYT": "Horario estándar de Uruguai", "AKST": "Horario estándar de Alasca", "ARST": "Horario de verán de Arxentina", "WEZ": "Horario estándar de Europa Occidental", "TMT": "Horario estándar de Turcomenistán", "COST": "Horario de verán de Colombia", "MDT": "MDT", "HEPMX": "Horario de verán do Pacífico mexicano", "AKDT": "Horario de verán de Alasca", "SRT": "Horario de Suriname", "HKST": "Horario de verán de Hong Kong", "LHDT": "Horario de verán de Lord Howe", "ChST": "Horario estándar chamorro", "WART": "Horario estándar de Arxentina Occidental", "EDT": "Horario de verán do leste, Norteamérica", "HAT": "Horario de verán de Terranova"},
+ timezones: map[string]string{"NZST": "Horario estándar de Nova Zelandia", "JDT": "Horario de verán do Xapón", "CLT": "Horario estándar de Chile", "WAST": "Horario de verán de África Occidental", "AEDT": "Horario de verán de Australia Oriental", "HNPM": "Horario estándar de Saint Pierre e Miquelon", "∅∅∅": "Horario de verán das Azores", "BOT": "Horario de Bolivia", "ACWST": "Horario estándar de Australia Occidental Central", "ART": "Horario estándar de Arxentina", "HNEG": "Horario estándar de Groenlandia Oriental", "HEPM": "Horario de verán de Saint Pierre e Miquelon", "WART": "Horario estándar de Arxentina Occidental", "WARST": "Horario de verán de Arxentina Occidental", "HEOG": "Horario de verán de Groenlandia Occidental", "ARST": "Horario de verán de Arxentina", "HEEG": "Horario de verán de Groenlandia Oriental", "LHST": "Horario estándar de Lord Howe", "ECT": "Horario de Ecuador", "CAT": "Horario de África Central", "MST": "MST", "HKST": "Horario de verán de Hong Kong", "COT": "Horario estándar de Colombia", "HNNOMX": "Horario estándar de México Noroeste", "GYT": "Horario da Güiana", "JST": "Horario estándar do Xapón", "TMST": "Horario de verán de Turcomenistán", "SAST": "Horario estándar de África do Sur", "CHADT": "Horario de verán de Chatham", "HNOG": "Horario estándar de Groenlandia Occidental", "EDT": "Horario de verán do leste, Norteamérica", "AWST": "Horario estándar de Australia Occidental", "EST": "Horario estándar do leste, Norteamérica", "BT": "Horario de Bután", "GFT": "Horario da Güiana Francesa", "CST": "Horario estándar central, Norteamérica", "PST": "Horario estándar do Pacífico, Norteamérica", "GMT": "Horario do meridiano de Greenwich", "WAT": "Horario estándar de África Occidental", "HNT": "Horario estándar de Terranova", "HECU": "Horario de verán de Cuba", "VET": "Horario de Venezuela", "WEZ": "Horario estándar de Europa Occidental", "MDT": "MDT", "HNCU": "Horario estándar de Cuba", "IST": "Horario estándar da India", "MESZ": "Horario de verán de Europa Central", "CLST": "Horario de verán de Chile", "HKT": "Horario estándar de Hong Kong", "ACST": "Horario estándar de Australia Central", "PDT": "Horario de verán do Pacífico, Norteamérica", "ACWDT": "Horario de verán de Australia Occidental Central", "NZDT": "Horario de verán de Nova Zelandia", "MEZ": "Horario estándar de Europa Central", "HENOMX": "Horario de verán de México Noroeste", "WIB": "Horario de Indonesia Occidental", "ADT": "Horario de verán do Atlántico", "COST": "Horario de verán de Colombia", "AKST": "Horario estándar de Alasca", "AEST": "Horario estándar de Australia Oriental", "AKDT": "Horario de verán de Alasca", "UYT": "Horario estándar de Uruguai", "HEPMX": "Horario de verán do Pacífico mexicano", "SRT": "Horario de Suriname", "WIT": "Horario de Indonesia Oriental", "AST": "Horario estándar do Atlántico", "OESZ": "Horario de verán de Europa Oriental", "WESZ": "Horario de verán de Europa Occidental", "WITA": "Horario de Indonesia Central", "EAT": "Horario de África Oriental", "HADT": "Horario de verán de Hawai-Aleutiano", "HNPMX": "Horario estándar do Pacífico mexicano", "AWDT": "Horario de verán de Australia Occidental", "CHAST": "Horario estándar de Chatham", "OEZ": "Horario estándar de Europa Oriental", "TMT": "Horario estándar de Turcomenistán", "ACDT": "Horario de verán de Australia Central", "HAT": "Horario de verán de Terranova", "ChST": "Horario estándar chamorro", "UYST": "Horario de verán de Uruguai", "LHDT": "Horario de verán de Lord Howe", "CDT": "Horario de verán central, Norteamérica", "SGT": "Horario estándar de Singapur", "HAST": "Horario estándar de Hawai-Aleutiano", "MYT": "Horario de Malaisia"},
}
}
diff --git a/gl_ES/gl_ES.go b/gl_ES/gl_ES.go
index 7d3c49bb..afc5b816 100644
--- a/gl_ES/gl_ES.go
+++ b/gl_ES/gl_ES.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "despois de Cristo"},
- timezones: map[string]string{"TMT": "Horario estándar de Turcomenistán", "ACST": "Horario estándar de Australia Central", "AEST": "Horario estándar de Australia Oriental", "MST": "MST", "VET": "Horario de Venezuela", "ARST": "Horario de verán de Arxentina", "HNCU": "Horario estándar de Cuba", "BT": "Horario de Bután", "PST": "Horario estándar do Pacífico, Norteamérica", "ACWDT": "Horario de verán de Australia Occidental Central", "HNT": "Horario estándar de Terranova", "ChST": "Horario estándar chamorro", "WART": "Horario estándar de Arxentina Occidental", "ART": "Horario estándar de Arxentina", "HEOG": "Horario de verán de Groenlandia Occidental", "AWST": "Horario estándar de Australia Occidental", "HADT": "Horario de verán de Hawai-Aleutiano", "SRT": "Horario de Suriname", "AEDT": "Horario de verán de Australia Oriental", "HKT": "Horario estándar de Hong Kong", "LHST": "Horario estándar de Lord Howe", "BOT": "Horario de Bolivia", "HEEG": "Horario de verán de Groenlandia Oriental", "TMST": "Horario de verán de Turcomenistán", "UYT": "Horario estándar de Uruguai", "EDT": "Horario de verán do leste, Norteamérica", "AST": "Horario estándar do Atlántico", "WESZ": "Horario de verán de Europa Occidental", "CHADT": "Horario de verán de Chatham", "WARST": "Horario de verán de Arxentina Occidental", "GMT": "Horario do meridiano de Greenwich", "HECU": "Horario de verán de Cuba", "∅∅∅": "Horario de verán das Azores", "HNPMX": "Horario estándar do Pacífico mexicano", "ADT": "Horario de verán do Atlántico", "HKST": "Horario de verán de Hong Kong", "JST": "Horario estándar do Xapón", "HENOMX": "Horario de verán de México Noroeste", "WAT": "Horario estándar de África Occidental", "HEPM": "Horario de verán de Saint Pierre e Miquelon", "CDT": "Horario de verán central, Norteamérica", "MDT": "MDT", "UYST": "Horario de verán de Uruguai", "HAST": "Horario estándar de Hawai-Aleutiano", "WIT": "Horario de Indonesia Oriental", "PDT": "Horario de verán do Pacífico, Norteamérica", "MESZ": "Horario de verán de Europa Central", "NZST": "Horario estándar de Nova Zelandia", "SGT": "Horario estándar de Singapur", "CHAST": "Horario estándar de Chatham", "OESZ": "Horario de verán de Europa Oriental", "NZDT": "Horario de verán de Nova Zelandia", "WIB": "Horario de Indonesia Occidental", "HEPMX": "Horario de verán do Pacífico mexicano", "MYT": "Horario de Malaisia", "GFT": "Horario da Güiana Francesa", "EAT": "Horario de África Oriental", "AKST": "Horario estándar de Alasca", "IST": "Horario estándar da India", "HNEG": "Horario estándar de Groenlandia Oriental", "CAT": "Horario de África Central", "HNNOMX": "Horario estándar de México Noroeste", "GYT": "Horario da Güiana", "WEZ": "Horario estándar de Europa Occidental", "HAT": "Horario de verán de Terranova", "AWDT": "Horario de verán de Australia Occidental", "SAST": "Horario estándar de África do Sur", "CST": "Horario estándar central, Norteamérica", "ACWST": "Horario estándar de Australia Occidental Central", "LHDT": "Horario de verán de Lord Howe", "CLST": "Horario de verán de Chile", "ACDT": "Horario de verán de Australia Central", "COST": "Horario de verán de Colombia", "HNOG": "Horario estándar de Groenlandia Occidental", "HNPM": "Horario estándar de Saint Pierre e Miquelon", "MEZ": "Horario estándar de Europa Central", "CLT": "Horario estándar de Chile", "WAST": "Horario de verán de África Occidental", "OEZ": "Horario estándar de Europa Oriental", "COT": "Horario estándar de Colombia", "AKDT": "Horario de verán de Alasca", "WITA": "Horario de Indonesia Central", "JDT": "Horario de verán do Xapón", "ECT": "Horario de Ecuador", "EST": "Horario estándar do leste, Norteamérica"},
+ timezones: map[string]string{"PDT": "Horario de verán do Pacífico, Norteamérica", "HAST": "Horario estándar de Hawai-Aleutiano", "TMT": "Horario estándar de Turcomenistán", "BT": "Horario de Bután", "ChST": "Horario estándar chamorro", "SAST": "Horario estándar de África do Sur", "WIT": "Horario de Indonesia Oriental", "PST": "Horario estándar do Pacífico, Norteamérica", "OEZ": "Horario estándar de Europa Oriental", "WEZ": "Horario estándar de Europa Occidental", "WESZ": "Horario de verán de Europa Occidental", "HNOG": "Horario estándar de Groenlandia Occidental", "HAT": "Horario de verán de Terranova", "AEDT": "Horario de verán de Australia Oriental", "CDT": "Horario de verán central, Norteamérica", "VET": "Horario de Venezuela", "CLST": "Horario de verán de Chile", "ADT": "Horario de verán do Atlántico", "WIB": "Horario de Indonesia Occidental", "MEZ": "Horario estándar de Europa Central", "MDT": "MDT", "EDT": "Horario de verán do leste, Norteamérica", "HNEG": "Horario estándar de Groenlandia Oriental", "AEST": "Horario estándar de Australia Oriental", "HEPM": "Horario de verán de Saint Pierre e Miquelon", "EAT": "Horario de África Oriental", "MST": "MST", "COT": "Horario estándar de Colombia", "CHADT": "Horario de verán de Chatham", "WART": "Horario estándar de Arxentina Occidental", "WAST": "Horario de verán de África Occidental", "HNT": "Horario estándar de Terranova", "∅∅∅": "Horario de verán de Brasilia", "IST": "Horario estándar da India", "COST": "Horario de verán de Colombia", "GFT": "Horario da Güiana Francesa", "UYT": "Horario estándar de Uruguai", "ACWDT": "Horario de verán de Australia Occidental Central", "NZST": "Horario estándar de Nova Zelandia", "OESZ": "Horario de verán de Europa Oriental", "HNNOMX": "Horario estándar de México Noroeste", "ACST": "Horario estándar de Australia Central", "WITA": "Horario de Indonesia Central", "HEPMX": "Horario de verán do Pacífico mexicano", "SGT": "Horario estándar de Singapur", "ACWST": "Horario estándar de Australia Occidental Central", "HKT": "Horario estándar de Hong Kong", "HENOMX": "Horario de verán de México Noroeste", "ACDT": "Horario de verán de Australia Central", "HEEG": "Horario de verán de Groenlandia Oriental", "SRT": "Horario de Suriname", "ECT": "Horario de Ecuador", "NZDT": "Horario de verán de Nova Zelandia", "HKST": "Horario de verán de Hong Kong", "WAT": "Horario estándar de África Occidental", "CHAST": "Horario estándar de Chatham", "MESZ": "Horario de verán de Europa Central", "CAT": "Horario de África Central", "JDT": "Horario de verán do Xapón", "HEOG": "Horario de verán de Groenlandia Occidental", "HNPM": "Horario estándar de Saint Pierre e Miquelon", "HNPMX": "Horario estándar do Pacífico mexicano", "AWDT": "Horario de verán de Australia Occidental", "CLT": "Horario estándar de Chile", "EST": "Horario estándar do leste, Norteamérica", "WARST": "Horario de verán de Arxentina Occidental", "ART": "Horario estándar de Arxentina", "HADT": "Horario de verán de Hawai-Aleutiano", "GMT": "Horario do meridiano de Greenwich", "AWST": "Horario estándar de Australia Occidental", "BOT": "Horario de Bolivia", "MYT": "Horario de Malaisia", "ARST": "Horario de verán de Arxentina", "AKDT": "Horario de verán de Alasca", "UYST": "Horario de verán de Uruguai", "HNCU": "Horario estándar de Cuba", "CST": "Horario estándar central, Norteamérica", "LHST": "Horario estándar de Lord Howe", "GYT": "Horario da Güiana", "AST": "Horario estándar do Atlántico", "TMST": "Horario de verán de Turcomenistán", "AKST": "Horario estándar de Alasca", "LHDT": "Horario de verán de Lord Howe", "HECU": "Horario de verán de Cuba", "JST": "Horario estándar do Xapón"},
}
}
diff --git a/gsw/gsw.go b/gsw/gsw.go
index 17ecf4f9..5e6e85b8 100644
--- a/gsw/gsw.go
+++ b/gsw/gsw.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr."},
erasNarrow: []string{"v. Chr.", "n. Chr."},
erasWide: []string{"v. Chr.", "n. Chr."},
- timezones: map[string]string{"HNOG": "HNOG", "HNPM": "HNPM", "COT": "COT", "EDT": "EDT", "HNT": "HNT", "ARST": "ARST", "LHST": "LHST", "ACST": "ACST", "EAT": "Oschtafrikanischi Ziit", "WAST": "Weschtafrikanischi Summerziit", "UYST": "UYST", "ACWDT": "ACWDT", "HAST": "HAST", "MESZ": "Mitteleuropäischi Summerziit", "∅∅∅": "Amazonas-Summerziit", "CST": "Amerika-Zentraal Schtandardziit", "MDT": "MDT", "HEEG": "HEEG", "OESZ": "Oschteuropäischi Summerziit", "WART": "WART", "HEPMX": "HEPMX", "WESZ": "Weschteuropäischi Summerziit", "HKT": "HKT", "CAT": "Zentralafrikanischi Ziit", "GYT": "GYT", "WIT": "WIT", "PDT": "PDT", "AEST": "AEST", "CHADT": "CHADT", "WAT": "Weschtafrikanischi Schtandardziit", "AKST": "Alaska-Schtandardziit", "AKDT": "Alaska-Summerziit", "SRT": "SRT", "HENOMX": "HENOMX", "MYT": "MYT", "ACWST": "ACWST", "ADT": "ADT", "EST": "EST", "BT": "BT", "PST": "PST", "AWDT": "AWDT", "HKST": "HKST", "IST": "IST", "JST": "JST", "UYT": "UYT", "HADT": "HADT", "AWST": "AWST", "HEPM": "HEPM", "MEZ": "Mitteleuropäischi Schtandardziit", "LHDT": "LHDT", "SAST": "Süüdafrikanischi ziit", "GFT": "GFT", "TMT": "TMT", "AEDT": "AEDT", "GMT": "GMT", "HNPMX": "HNPMX", "CHAST": "CHAST", "CLST": "CLST", "ChST": "ChST", "WIB": "WIB", "WEZ": "Weschteuropäischi Schtandardziit", "ECT": "ECT", "COST": "COST", "HNCU": "HNCU", "MST": "MST", "HNNOMX": "HNNOMX", "HAT": "HAT", "HEOG": "HEOG", "WITA": "WITA", "NZDT": "NZDT", "HNEG": "HNEG", "TMST": "TMST", "OEZ": "Oschteuropäischi Schtandardziit", "WARST": "WARST", "VET": "VET", "AST": "AST", "SGT": "SGT", "NZST": "NZST", "CLT": "CLT", "JDT": "JDT", "BOT": "BOT", "ACDT": "ACDT", "HECU": "HECU", "CDT": "Amerika-Zentraal Summerziit", "ART": "ART"},
+ timezones: map[string]string{"MYT": "MYT", "MDT": "MDT", "ARST": "ARST", "ChST": "ChST", "WIT": "WIT", "WESZ": "Weschteuropäischi Summerziit", "AKDT": "Alaska-Summerziit", "OESZ": "Oschteuropäischi Summerziit", "HKT": "HKT", "HKST": "HKST", "CLST": "CLST", "HNOG": "HNOG", "AST": "AST", "WEZ": "Weschteuropäischi Schtandardziit", "WAT": "Weschtafrikanischi Schtandardziit", "HNPMX": "HNPMX", "BOT": "BOT", "CLT": "CLT", "COST": "COST", "HNEG": "HNEG", "ACWDT": "ACWDT", "WART": "WART", "ADT": "ADT", "WAST": "Weschtafrikanischi Summerziit", "HENOMX": "HENOMX", "CHAST": "CHAST", "PST": "PST", "HAST": "HAST", "HAT": "HAT", "WITA": "WITA", "AKST": "Alaska-Schtandardziit", "OEZ": "Oschteuropäischi Schtandardziit", "COT": "COT", "BT": "BT", "JDT": "JDT", "GMT": "GMT", "ACST": "ACST", "PDT": "PDT", "IST": "IST", "NZDT": "NZDT", "MST": "MST", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "WIB": "WIB", "CDT": "Amerika-Zentraal Summerziit", "AWST": "AWST", "CHADT": "CHADT", "GFT": "GFT", "LHDT": "LHDT", "HEPMX": "HEPMX", "∅∅∅": "∅∅∅", "HADT": "HADT", "HEOG": "HEOG", "ART": "ART", "AEST": "AEST", "HEPM": "HEPM", "SGT": "SGT", "ECT": "ECT", "MESZ": "Mitteleuropäischi Summerziit", "ACDT": "ACDT", "LHST": "LHST", "HECU": "HECU", "AWDT": "AWDT", "AEDT": "AEDT", "SAST": "Süüdafrikanischi ziit", "VET": "VET", "TMT": "TMT", "TMST": "TMST", "EST": "EST", "UYT": "UYT", "GYT": "GYT", "CST": "Amerika-Zentraal Schtandardziit", "EDT": "EDT", "NZST": "NZST", "WARST": "WARST", "HEEG": "HEEG", "UYST": "UYST", "EAT": "Oschtafrikanischi Ziit", "CAT": "Zentralafrikanischi Ziit", "MEZ": "Mitteleuropäischi Schtandardziit", "JST": "JST", "HNT": "HNT", "SRT": "SRT", "HNCU": "HNCU", "ACWST": "ACWST"},
}
}
diff --git a/gsw_CH/gsw_CH.go b/gsw_CH/gsw_CH.go
index 17fc5dcd..712e2188 100644
--- a/gsw_CH/gsw_CH.go
+++ b/gsw_CH/gsw_CH.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr."},
erasNarrow: []string{"v. Chr.", "n. Chr."},
erasWide: []string{"v. Chr.", "n. Chr."},
- timezones: map[string]string{"WAST": "Weschtafrikanischi Summerziit", "OESZ": "Oschteuropäischi Summerziit", "WARST": "WARST", "GMT": "GMT", "UYST": "UYST", "HNOG": "HNOG", "HADT": "HADT", "HENOMX": "HENOMX", "EST": "EST", "CST": "Amerika-Zentraal Schtandardziit", "WIB": "WIB", "LHDT": "LHDT", "TMT": "TMT", "CAT": "Zentralafrikanischi Ziit", "AKDT": "Alaska-Summerziit", "SRT": "SRT", "HNPM": "HNPM", "AWST": "AWST", "HNEG": "HNEG", "GFT": "GFT", "COST": "COST", "HECU": "HECU", "MST": "MST", "HNT": "HNT", "ADT": "ADT", "IST": "IST", "JDT": "JDT", "ACDT": "ACDT", "COT": "COT", "ART": "ART", "MEZ": "Mitteleuropäischi Schtandardziit", "CHAST": "CHAST", "ChST": "ChST", "BOT": "BOT", "VET": "VET", "PDT": "PDT", "ACWDT": "ACWDT", "SGT": "SGT", "AEST": "AEST", "CHADT": "CHADT", "ARST": "ARST", "AWDT": "AWDT", "HKST": "HKST", "NZST": "NZST", "TMST": "TMST", "HEPMX": "HEPMX", "MYT": "MYT", "CDT": "Amerika-Zentraal Summerziit", "OEZ": "Oschteuropäischi Schtandardziit", "GYT": "GYT", "WESZ": "Weschteuropäischi Summerziit", "HEEG": "HEEG", "WEZ": "Weschteuropäischi Schtandardziit", "HAT": "HAT", "AEDT": "AEDT", "EDT": "EDT", "MDT": "MDT", "HAST": "HAST", "WAT": "Weschtafrikanischi Schtandardziit", "HNCU": "HNCU", "HEOG": "HEOG", "HEPM": "HEPM", "WART": "WART", "MESZ": "Mitteleuropäischi Summerziit", "LHST": "LHST", "CLST": "CLST", "WIT": "WIT", "HKT": "HKT", "SAST": "Süüdafrikanischi ziit", "JST": "JST", "ECT": "ECT", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "UYT": "UYT", "HNNOMX": "HNNOMX", "EAT": "Oschtafrikanischi Ziit", "PST": "PST", "WITA": "WITA", "NZDT": "NZDT", "ACWST": "ACWST", "CLT": "CLT", "ACST": "ACST", "AKST": "Alaska-Schtandardziit", "AST": "AST", "BT": "BT"},
+ timezones: map[string]string{"GFT": "GFT", "AKDT": "Alaska-Summerziit", "WIB": "WIB", "OESZ": "Oschteuropäischi Summerziit", "CLT": "CLT", "COST": "COST", "HEEG": "HEEG", "BOT": "BOT", "NZST": "NZST", "HAST": "HAST", "CAT": "Zentralafrikanischi Ziit", "NZDT": "NZDT", "EDT": "EDT", "AEDT": "AEDT", "SAST": "Süüdafrikanischi ziit", "HNCU": "HNCU", "CST": "Amerika-Zentraal Schtandardziit", "HEPMX": "HEPMX", "HNPM": "HNPM", "LHDT": "LHDT", "HADT": "HADT", "MEZ": "Mitteleuropäischi Schtandardziit", "JST": "JST", "HEOG": "HEOG", "AKST": "Alaska-Schtandardziit", "ChST": "ChST", "SRT": "SRT", "PDT": "PDT", "IST": "IST", "UYT": "UYT", "VET": "VET", "GMT": "GMT", "UYST": "UYST", "AWDT": "AWDT", "MESZ": "Mitteleuropäischi Summerziit", "WAT": "Weschtafrikanischi Schtandardziit", "HEPM": "HEPM", "TMST": "TMST", "ART": "ART", "WEZ": "Weschteuropäischi Schtandardziit", "WESZ": "Weschteuropäischi Summerziit", "MST": "MST", "MDT": "MDT", "HNT": "HNT", "PST": "PST", "ACWST": "ACWST", "HKT": "HKT", "HNEG": "HNEG", "∅∅∅": "∅∅∅", "OEZ": "Oschteuropäischi Schtandardziit", "WAST": "Weschtafrikanischi Summerziit", "COT": "COT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AEST": "AEST", "LHST": "LHST", "WIT": "WIT", "CLST": "CLST", "ACWDT": "ACWDT", "WARST": "WARST", "HNOG": "HNOG", "AST": "AST", "TMT": "TMT", "GYT": "GYT", "ECT": "ECT", "CDT": "Amerika-Zentraal Summerziit", "CHADT": "CHADT", "SGT": "SGT", "JDT": "JDT", "ARST": "ARST", "EST": "EST", "EAT": "Oschtafrikanischi Ziit", "HECU": "HECU", "BT": "BT", "ACST": "ACST", "AWST": "AWST", "ADT": "ADT", "HAT": "HAT", "WITA": "WITA", "CHAST": "CHAST", "HKST": "HKST", "ACDT": "ACDT", "HNPMX": "HNPMX", "WART": "WART", "MYT": "MYT"},
}
}
diff --git a/gsw_FR/gsw_FR.go b/gsw_FR/gsw_FR.go
index 16f44400..ea5158b1 100644
--- a/gsw_FR/gsw_FR.go
+++ b/gsw_FR/gsw_FR.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr."},
erasNarrow: []string{"v. Chr.", "n. Chr."},
erasWide: []string{"v. Chr.", "n. Chr."},
- timezones: map[string]string{"PST": "PST", "ACWST": "ACWST", "AEDT": "AEDT", "TMST": "TMST", "AKDT": "Alaska-Summerziit", "VET": "VET", "NZDT": "NZDT", "ACST": "ACST", "HEPMX": "HEPMX", "ADT": "ADT", "UYT": "UYT", "AWST": "AWST", "OEZ": "Oschteuropäischi Schtandardziit", "HNPMX": "HNPMX", "AST": "AST", "LHDT": "LHDT", "JST": "JST", "COT": "COT", "MST": "MST", "UYST": "UYST", "BT": "BT", "CAT": "Zentralafrikanischi Ziit", "COST": "COST", "HKT": "HKT", "MESZ": "Mitteleuropäischi Summerziit", "LHST": "LHST", "WIT": "WIT", "ARST": "ARST", "JDT": "JDT", "ACDT": "ACDT", "HAST": "HAST", "AEST": "AEST", "NZST": "NZST", "BOT": "BOT", "HEEG": "HEEG", "WAT": "Weschtafrikanischi Schtandardziit", "WIB": "WIB", "GYT": "GYT", "PDT": "PDT", "ACWDT": "ACWDT", "MEZ": "Mitteleuropäischi Schtandardziit", "CLT": "CLT", "EAT": "Oschtafrikanischi Ziit", "SGT": "SGT", "CST": "Amerika-Zentraal Schtandardziit", "HNOG": "HNOG", "WEZ": "Weschteuropäischi Schtandardziit", "HEPM": "HEPM", "∅∅∅": "Amazonas-Summerziit", "WAST": "Weschtafrikanischi Summerziit", "WARST": "WARST", "MYT": "MYT", "SRT": "SRT", "HAT": "HAT", "GFT": "GFT", "ChST": "ChST", "HENOMX": "HENOMX", "HNCU": "HNCU", "HECU": "HECU", "WESZ": "Weschteuropäischi Summerziit", "CHAST": "CHAST", "IST": "IST", "TMT": "TMT", "OESZ": "Oschteuropäischi Summerziit", "HADT": "HADT", "WITA": "WITA", "WART": "WART", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "ECT": "ECT", "EST": "EST", "EDT": "EDT", "CDT": "Amerika-Zentraal Summerziit", "AKST": "Alaska-Schtandardziit", "HEOG": "HEOG", "HKST": "HKST", "MDT": "MDT", "GMT": "GMT", "HNT": "HNT", "ART": "ART", "HNPM": "HNPM", "CHADT": "CHADT", "SAST": "Süüdafrikanischi ziit", "CLST": "CLST", "HNEG": "HNEG"},
+ timezones: map[string]string{"PST": "PST", "MYT": "MYT", "CLST": "CLST", "SRT": "SRT", "EAT": "Oschtafrikanischi Ziit", "ACWDT": "ACWDT", "WARST": "WARST", "AST": "AST", "WESZ": "Weschteuropäischi Summerziit", "HNT": "HNT", "CST": "Amerika-Zentraal Schtandardziit", "HAST": "HAST", "EST": "EST", "HNCU": "HNCU", "CHAST": "CHAST", "SGT": "SGT", "AKDT": "Alaska-Summerziit", "WIB": "WIB", "ADT": "ADT", "MST": "MST", "MDT": "MDT", "EDT": "EDT", "HKT": "HKT", "HENOMX": "HENOMX", "CDT": "Amerika-Zentraal Summerziit", "HADT": "HADT", "HNOG": "HNOG", "HEOG": "HEOG", "HAT": "HAT", "AKST": "Alaska-Schtandardziit", "UYT": "UYT", "VET": "VET", "JDT": "JDT", "ACST": "ACST", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "HECU": "HECU", "WIT": "WIT", "ACWST": "ACWST", "MEZ": "Mitteleuropäischi Schtandardziit", "AEST": "AEST", "NZDT": "NZDT", "HEPM": "HEPM", "JST": "JST", "HKST": "HKST", "SAST": "Süüdafrikanischi ziit", "BOT": "BOT", "NZST": "NZST", "MESZ": "Mitteleuropäischi Summerziit", "COT": "COT", "AWDT": "AWDT", "CAT": "Zentralafrikanischi Ziit", "ART": "ART", "CHADT": "CHADT", "IST": "IST", "OESZ": "Oschteuropäischi Summerziit", "HNPM": "HNPM", "HNPMX": "HNPMX", "AWST": "AWST", "PDT": "PDT", "WART": "WART", "WEZ": "Weschteuropäischi Schtandardziit", "WAT": "Weschtafrikanischi Schtandardziit", "AEDT": "AEDT", "∅∅∅": "Amazonas-Summerziit", "OEZ": "Oschteuropäischi Schtandardziit", "TMT": "TMT", "TMST": "TMST", "ARST": "ARST", "WAST": "Weschtafrikanischi Summerziit", "BT": "BT", "HNEG": "HNEG", "HEEG": "HEEG", "GFT": "GFT", "WITA": "WITA", "UYST": "UYST", "LHST": "LHST", "LHDT": "LHDT", "ECT": "ECT", "GMT": "GMT", "CLT": "CLT", "COST": "COST", "ChST": "ChST", "HEPMX": "HEPMX", "GYT": "GYT"},
}
}
diff --git a/gsw_LI/gsw_LI.go b/gsw_LI/gsw_LI.go
index 2a137383..d63c9c64 100644
--- a/gsw_LI/gsw_LI.go
+++ b/gsw_LI/gsw_LI.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr."},
erasNarrow: []string{"v. Chr.", "n. Chr."},
erasWide: []string{"v. Chr.", "n. Chr."},
- timezones: map[string]string{"WESZ": "Weschteuropäischi Summerziit", "ART": "ART", "NZDT": "NZDT", "CLST": "CLST", "EAT": "Oschtafrikanischi Ziit", "ECT": "ECT", "COST": "COST", "CDT": "Amerika-Zentraal Summerziit", "SRT": "SRT", "JDT": "JDT", "TMT": "TMT", "ACWST": "ACWST", "HAT": "HAT", "CHADT": "CHADT", "ACDT": "ACDT", "ADT": "ADT", "GYT": "GYT", "WIT": "WIT", "HADT": "HADT", "HKT": "HKT", "HNPM": "HNPM", "CHAST": "CHAST", "TMST": "TMST", "COT": "COT", "MESZ": "Mitteleuropäischi Summerziit", "PST": "PST", "HNCU": "HNCU", "CST": "Amerika-Zentraal Schtandardziit", "GFT": "GFT", "CAT": "Zentralafrikanischi Ziit", "BT": "BT", "NZST": "NZST", "BOT": "BOT", "AKDT": "Alaska-Summerziit", "ChST": "ChST", "OEZ": "Oschteuropäischi Schtandardziit", "OESZ": "Oschteuropäischi Summerziit", "HEOG": "HEOG", "JST": "JST", "HNEG": "HNEG", "HNPMX": "HNPMX", "EDT": "EDT", "WIB": "WIB", "VET": "VET", "ARST": "ARST", "AWST": "AWST", "SAST": "Süüdafrikanischi ziit", "MST": "MST", "AEST": "AEST", "MEZ": "Mitteleuropäischi Schtandardziit", "UYST": "UYST", "WEZ": "Weschteuropäischi Schtandardziit", "AKST": "Alaska-Schtandardziit", "HAST": "HAST", "ACWDT": "ACWDT", "LHST": "LHST", "WAT": "Weschtafrikanischi Schtandardziit", "EST": "EST", "WAST": "Weschtafrikanischi Summerziit", "HECU": "HECU", "GMT": "GMT", "MDT": "MDT", "HNT": "HNT", "HNOG": "HNOG", "IST": "IST", "ACST": "ACST", "WITA": "WITA", "WART": "WART", "PDT": "PDT", "AEDT": "AEDT", "HNNOMX": "HNNOMX", "AST": "AST", "SGT": "SGT", "AWDT": "AWDT", "HEPM": "HEPM", "LHDT": "LHDT", "HEEG": "HEEG", "WARST": "WARST", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "MYT": "MYT", "UYT": "UYT", "HKST": "HKST", "CLT": "CLT", "∅∅∅": "Amazonas-Summerziit"},
+ timezones: map[string]string{"BOT": "BOT", "PDT": "PDT", "ACDT": "ACDT", "WIB": "WIB", "WESZ": "Weschteuropäischi Summerziit", "ARST": "ARST", "COST": "COST", "HNPM": "HNPM", "WIT": "WIT", "CHADT": "CHADT", "MEZ": "Mitteleuropäischi Schtandardziit", "WEZ": "Weschteuropäischi Schtandardziit", "WART": "WART", "HKT": "HKT", "EST": "EST", "EDT": "EDT", "JDT": "JDT", "VET": "VET", "ART": "ART", "HKST": "HKST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AKDT": "Alaska-Summerziit", "CDT": "Amerika-Zentraal Summerziit", "GMT": "GMT", "WARST": "WARST", "AWST": "AWST", "HADT": "HADT", "WAT": "Weschtafrikanischi Schtandardziit", "HEEG": "HEEG", "HAT": "HAT", "SAST": "Süüdafrikanischi ziit", "LHDT": "LHDT", "AWDT": "AWDT", "MST": "MST", "MDT": "MDT", "BT": "BT", "GFT": "GFT", "UYST": "UYST", "HEPMX": "HEPMX", "PST": "PST", "IST": "IST", "MYT": "MYT", "CLST": "CLST", "SGT": "SGT", "OESZ": "Oschteuropäischi Summerziit", "WAST": "Weschtafrikanischi Summerziit", "CST": "Amerika-Zentraal Schtandardziit", "HEPM": "HEPM", "ChST": "ChST", "HNEG": "HNEG", "AEST": "AEST", "AKST": "Alaska-Schtandardziit", "EAT": "Oschtafrikanischi Ziit", "CHAST": "CHAST", "ACWDT": "ACWDT", "JST": "JST", "OEZ": "Oschteuropäischi Schtandardziit", "∅∅∅": "Acre-Summerziit", "HECU": "HECU", "NZDT": "NZDT", "AST": "AST", "TMT": "TMT", "ACWST": "ACWST", "ADT": "ADT", "LHST": "LHST", "HNCU": "HNCU", "HNOG": "HNOG", "TMST": "TMST", "GYT": "GYT", "AEDT": "AEDT", "SRT": "SRT", "HNT": "HNT", "ACST": "ACST", "COT": "COT", "WITA": "WITA", "CAT": "Zentralafrikanischi Ziit", "HEOG": "HEOG", "UYT": "UYT", "HNPMX": "HNPMX", "HAST": "HAST", "ECT": "ECT", "NZST": "NZST", "MESZ": "Mitteleuropäischi Summerziit", "CLT": "CLT"},
}
}
diff --git a/gu/gu.go b/gu/gu.go
index 128fa0e9..e6778207 100644
--- a/gu/gu.go
+++ b/gu/gu.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ઈ.સ.પૂર્વે", "ઈ.સ."},
erasNarrow: []string{"ઇ સ પુ", "ઇસ"},
erasWide: []string{"ઈસવીસન પૂર્વે", "ઇસવીસન"},
- timezones: map[string]string{"HKT": "હોંગ કોંગ માનક સમય", "BOT": "બોલિવિયા સમય", "WAT": "પશ્ચિમ આફ્રિકા માનક સમય", "AWST": "ઓસ્ટ્રેલિયન પશ્ચિમી પ્રમાણભૂત સમય", "ACST": "ઓસ્ટ્રેલિયન મધ્ય પ્રમાણભૂત સમય", "COT": "કોલંબિયા માનક સમય", "HNNOMX": "ઉત્તરપશ્ચિમ મેક્સિકો માનક સમય", "AKDT": "અલાસ્કા દિવસ સમય", "ACWDT": "ઓસ્ટ્રેલિયન મધ્ય પશ્ચિમી દિવસ સમય", "PST": "ઉત્તર અમેરિકન પેસિફિક પ્રમાણભૂત સમય", "PDT": "ઉત્તર અમેરિકન પેસિફિક દિવસ સમય", "HEPM": "સેંટ પીએરે એન્ડ મિકીલોન દિવસ સમય", "WAST": "પશ્ચિમ આફ્રિકા ગ્રીષ્મ સમય", "OEZ": "પૂર્વી યુરોપિયન માનક સમય", "WIB": "પશ્ચિમી ઇન્ડોનેશિયા સમય", "WITA": "મધ્ય ઇન્ડોનેશિયા સમય", "CLT": "ચિલી માનક સમય", "ACDT": "ઓસ્ટ્રેલિયન મધ્ય દિવસ સમય", "HENOMX": "ઉત્તરપશ્ચિમ મેક્સિકો દિવસ સમય", "TMT": "તુર્કમેનિસ્તાન માનક સમય", "TMST": "તુર્કમેનિસ્તાન ગ્રીષ્મ સમય", "WART": "પશ્ચિમી અર્જેન્ટીના માનક સમય", "CDT": "ઉત્તર અમેરિકન મધ્ય દિવસ સમય", "WESZ": "પશ્ચિમી યુરોપિયન ગ્રીષ્મ સમય", "CHADT": "ચેતહામ દિવસ સમય", "HNEG": "પૂર્વ ગ્રીનલેન્ડ માનક સમય", "HEEG": "પૂર્વ ગ્રીનલેન્ડ ગ્રીષ્મ સમય", "MEZ": "મધ્ય યુરોપિયન માનક સમય", "CLST": "ચિલી ગ્રીષ્મ સમય", "HNT": "ન્યૂફાઉન્ડલેન્ડ પ્રમાણભૂત સમય", "HNPM": "સેંટ પીએરે એન્ડ મિકીલોન માનક સમય", "HNPMX": "મેક્સીકન પેસિફિક માનક સમય", "BT": "ભૂટાન સમય", "EDT": "ઉત્તર અમેરિકન પૂર્વી દિવસ સમય", "ADT": "અટલાન્ટિક દિવસ સમય", "HNOG": "પશ્ચિમ ગ્રીનલેન્ડ માનક સમય", "JDT": "જાપાન દિવસ સમય", "EAT": "પૂર્વ આફ્રિકા સમય", "COST": "કોલંબિયા ગ્રીષ્મ સમય", "NZDT": "ન્યુઝીલેન્ડ દિવસ સમય", "CHAST": "ચેતહામ માનક સમય", "IST": "ભારતીય માનક સમય", "GFT": "ફ્રેન્ચ ગયાના સમય", "∅∅∅": "પેરુ ગ્રીષ્મ સમય", "VET": "વેનેઝુએલા સમય", "HAT": "ન્યૂફાઉન્ડલેન્ડ દિવસ સમય", "ChST": "કેમોરો માનક સમય", "UYST": "ઉરૂગ્વે ગ્રીષ્મ સમય", "WARST": "પશ્ચિમી અર્જેન્ટીના ગ્રીષ્મ સમય", "GYT": "ગયાના સમય", "MYT": "મલેશિયા સમય", "HAST": "હવાઇ-એલ્યુશિઅન માનક સમય", "HEOG": "પશ્ચિમ ગ્રીનલેન્ડ ગ્રીષ્મ સમય", "LHST": "લોર્ડ હોવ પ્રમાણભૂત સમય", "HEPMX": "મેક્સીકન પેસિફિક દિવસ સમય", "AKST": "અલાસ્કા પ્રમાણભૂત સમય", "WEZ": "પશ્ચિમી યુરોપિયન માનક સમય", "AWDT": "ઓસ્ટ્રેલિયન પશ્ચિમી દિવસ સમય", "MESZ": "મધ્ય યુરોપિયન ગ્રીષ્મ સમય", "OESZ": "પૂર્વી યુરોપીયન ગ્રીષ્મ સમય", "ACWST": "ઓસ્ટ્રેલિયન મધ્ય પશ્ચિમી પ્રમાણભૂત સમય", "SAST": "દક્ષિણ આફ્રિકા માનક સમય", "JST": "જાપાન માનક સમય", "AST": "અટલાન્ટિક પ્રમાણભૂત સમય", "ART": "અર્જેન્ટીના માનક સમય", "MDT": "મકાઉ ગ્રીષ્મ સમય", "CAT": "મધ્ય આફ્રિકા સમય", "HECU": "ક્યૂબા દિવસ સમય", "EST": "ઉત્તર અમેરિકન પૂર્વી પ્રમાણભૂત સમય", "MST": "મકાઉ પ્રમાણભૂત સમય", "UYT": "ઉરૂગ્વે માનક સમય", "WIT": "પૂર્વીય ઇન્ડોનેશિયા સમય", "HADT": "હવાઇ-એલ્યુશિઅન દિવસ સમય", "ARST": "આર્જેન્ટીના ગ્રીષ્મ સમય", "ECT": "એક્વાડોર સમય", "HNCU": "ક્યૂબા માનક સમય", "AEST": "ઓસ્ટ્રેલિયન પૂર્વીય પ્રમાણભૂત સમય", "LHDT": "લોર્ડ હોવ દિવસ સમય", "CST": "ઉત્તર અમેરિકન કેન્દ્રિય પ્રમાણભૂત સમય", "SRT": "સૂરીનામ સમય", "HKST": "હોંગ કોંગ ગ્રીષ્મ સમય", "AEDT": "ઓસ્ટ્રેલિયન પૂર્વીય દિવસ સમય", "NZST": "ન્યુઝીલેન્ડ માનક સમય", "GMT": "ગ્રીનવિચ મધ્યમ સમય", "SGT": "સિંગાપુર માનક સમય"},
+ timezones: map[string]string{"EDT": "ઉત્તર અમેરિકન પૂર્વી દિવસ સમય", "HNPM": "સેંટ પીએરે એન્ડ મિકીલોન માનક સમય", "EAT": "પૂર્વ આફ્રિકા સમય", "NZDT": "ન્યુઝીલેન્ડ દિવસ સમય", "MYT": "મલેશિયા સમય", "OESZ": "પૂર્વી યુરોપીયન ગ્રીષ્મ સમય", "VET": "વેનેઝુએલા સમય", "HNPMX": "મેક્સીકન પેસિફિક માનક સમય", "ARST": "આર્જેન્ટીના ગ્રીષ્મ સમય", "COT": "કોલંબિયા માનક સમય", "AEDT": "ઓસ્ટ્રેલિયન પૂર્વીય દિવસ સમય", "HEPMX": "મેક્સીકન પેસિફિક દિવસ સમય", "HNCU": "ક્યૂબા માનક સમય", "WIT": "પૂર્વીય ઇન્ડોનેશિયા સમય", "WARST": "પશ્ચિમી અર્જેન્ટીના ગ્રીષ્મ સમય", "CLT": "ચિલી માનક સમય", "SAST": "દક્ષિણ આફ્રિકા માનક સમય", "ACWDT": "ઓસ્ટ્રેલિયન મધ્ય પશ્ચિમી દિવસ સમય", "HEOG": "પશ્ચિમ ગ્રીનલેન્ડ ગ્રીષ્મ સમય", "MDT": "મકાઉ ગ્રીષ્મ સમય", "BT": "ભૂટાન સમય", "AEST": "ઓસ્ટ્રેલિયન પૂર્વીય પ્રમાણભૂત સમય", "WITA": "મધ્ય ઇન્ડોનેશિયા સમય", "UYST": "ઉરૂગ્વે ગ્રીષ્મ સમય", "WIB": "પશ્ચિમી ઇન્ડોનેશિયા સમય", "CST": "ઉત્તર અમેરિકન કેન્દ્રિય પ્રમાણભૂત સમય", "HNOG": "પશ્ચિમ ગ્રીનલેન્ડ માનક સમય", "HENOMX": "ઉત્તરપશ્ચિમ મેક્સિકો દિવસ સમય", "UYT": "ઉરૂગ્વે માનક સમય", "WEZ": "પશ્ચિમી યુરોપિયન માનક સમય", "GFT": "ફ્રેન્ચ ગયાના સમય", "ART": "અર્જેન્ટીના માનક સમય", "HKST": "હોંગ કોંગ ગ્રીષ્મ સમય", "WAST": "પશ્ચિમ આફ્રિકા ગ્રીષ્મ સમય", "AWST": "ઓસ્ટ્રેલિયન પશ્ચિમી પ્રમાણભૂત સમય", "CHAST": "ચેતહામ માનક સમય", "CHADT": "ચેતહામ દિવસ સમય", "JST": "જાપાન માનક સમય", "MEZ": "મધ્ય યુરોપિયન માનક સમય", "HNNOMX": "ઉત્તરપશ્ચિમ મેક્સિકો માનક સમય", "HEEG": "પૂર્વ ગ્રીનલેન્ડ ગ્રીષ્મ સમય", "AKST": "અલાસ્કા પ્રમાણભૂત સમય", "EST": "ઉત્તર અમેરિકન પૂર્વી પ્રમાણભૂત સમય", "HEPM": "સેંટ પીએરે એન્ડ મિકીલોન દિવસ સમય", "CDT": "ઉત્તર અમેરિકન મધ્ય દિવસ સમય", "AWDT": "ઓસ્ટ્રેલિયન પશ્ચિમી દિવસ સમય", "ACWST": "ઓસ્ટ્રેલિયન મધ્ય પશ્ચિમી પ્રમાણભૂત સમય", "HKT": "હોંગ કોંગ માનક સમય", "ACST": "ઓસ્ટ્રેલિયન મધ્ય પ્રમાણભૂત સમય", "SRT": "સૂરીનામ સમય", "GYT": "ગયાના સમય", "SGT": "સિંગાપુર માનક સમય", "JDT": "જાપાન દિવસ સમય", "TMST": "તુર્કમેનિસ્તાન ગ્રીષ્મ સમય", "CLST": "ચિલી ગ્રીષ્મ સમય", "ADT": "અટલાન્ટિક દિવસ સમય", "HAST": "હવાઇ-એલ્યુશિઅન માનક સમય", "HADT": "હવાઇ-એલ્યુશિઅન દિવસ સમય", "PDT": "ઉત્તર અમેરિકન પેસિફિક દિવસ સમય", "CAT": "મધ્ય આફ્રિકા સમય", "IST": "ભારતીય માનક સમય", "NZST": "ન્યુઝીલેન્ડ માનક સમય", "MST": "મકાઉ પ્રમાણભૂત સમય", "WAT": "પશ્ચિમ આફ્રિકા માનક સમય", "ACDT": "ઓસ્ટ્રેલિયન મધ્ય દિવસ સમય", "LHDT": "લોર્ડ હોવ દિવસ સમય", "PST": "ઉત્તર અમેરિકન પેસિફિક પ્રમાણભૂત સમય", "WART": "પશ્ચિમી અર્જેન્ટીના માનક સમય", "COST": "કોલંબિયા ગ્રીષ્મ સમય", "HNT": "ન્યૂફાઉન્ડલેન્ડ પ્રમાણભૂત સમય", "HAT": "ન્યૂફાઉન્ડલેન્ડ દિવસ સમય", "ChST": "કેમોરો માનક સમય", "WESZ": "પશ્ચિમી યુરોપિયન ગ્રીષ્મ સમય", "GMT": "ગ્રીનવિચ મધ્યમ સમય", "AST": "અટલાન્ટિક પ્રમાણભૂત સમય", "TMT": "તુર્કમેનિસ્તાન માનક સમય", "HNEG": "પૂર્વ ગ્રીનલેન્ડ માનક સમય", "AKDT": "અલાસ્કા દિવસ સમય", "LHST": "લોર્ડ હોવ પ્રમાણભૂત સમય", "HECU": "ક્યૂબા દિવસ સમય", "ECT": "એક્વાડોર સમય", "MESZ": "મધ્ય યુરોપિયન ગ્રીષ્મ સમય", "OEZ": "પૂર્વી યુરોપિયન માનક સમય", "∅∅∅": "એઝોર્સ ગ્રીષ્મ સમય", "BOT": "બોલિવિયા સમય"},
}
}
diff --git a/gu_IN/gu_IN.go b/gu_IN/gu_IN.go
index d5f014da..ca0cd158 100644
--- a/gu_IN/gu_IN.go
+++ b/gu_IN/gu_IN.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ઈ.સ.પૂર્વે", "ઈ.સ."},
erasNarrow: []string{"ઇ સ પુ", "ઇસ"},
erasWide: []string{"ઈસવીસન પૂર્વે", "ઇસવીસન"},
- timezones: map[string]string{"WIB": "પશ્ચિમી ઇન્ડોનેશિયા સમય", "HADT": "હવાઇ-એલ્યુશિઅન દિવસ સમય", "ARST": "આર્જેન્ટીના ગ્રીષ્મ સમય", "AWST": "ઓસ્ટ્રેલિયન પશ્ચિમી પ્રમાણભૂત સમય", "CLT": "ચિલી માનક સમય", "GFT": "ફ્રેન્ચ ગયાના સમય", "EST": "ઉત્તર અમેરિકન પૂર્વી પ્રમાણભૂત સમય", "MST": "મકાઉ પ્રમાણભૂત સમય", "JST": "જાપાન માનક સમય", "CDT": "ઉત્તર અમેરિકન મધ્ય દિવસ સમય", "HNT": "ન્યૂફાઉન્ડલેન્ડ પ્રમાણભૂત સમય", "HEPM": "સેંટ પીએરે એન્ડ મિકીલોન દિવસ સમય", "LHDT": "લોર્ડ હોવ દિવસ સમય", "ECT": "એક્વાડોર સમય", "BT": "ભૂટાન સમય", "WESZ": "પશ્ચિમી યુરોપિયન ગ્રીષ્મ સમય", "ACWDT": "ઓસ્ટ્રેલિયન મધ્ય પશ્ચિમી દિવસ સમય", "PST": "ઉત્તર અમેરિકન પેસિફિક પ્રમાણભૂત સમય", "IST": "ભારતીય માનક સમય", "CAT": "મધ્ય આફ્રિકા સમય", "COST": "કોલંબિયા ગ્રીષ્મ સમય", "ADT": "અટલાન્ટિક દિવસ સમય", "GYT": "ગયાના સમય", "HNPM": "સેંટ પીએરે એન્ડ મિકીલોન માનક સમય", "TMST": "તુર્કમેનિસ્તાન ગ્રીષ્મ સમય", "AKDT": "અલાસ્કા દિવસ સમય", "HAST": "હવાઇ-એલ્યુશિઅન માનક સમય", "WEZ": "પશ્ચિમી યુરોપિયન માનક સમય", "HECU": "ક્યૂબા દિવસ સમય", "MYT": "મલેશિયા સમય", "HAT": "ન્યૂફાઉન્ડલેન્ડ દિવસ સમય", "HKST": "હોંગ કોંગ ગ્રીષ્મ સમય", "CHAST": "ચેતહામ માનક સમય", "CHADT": "ચેતહામ દિવસ સમય", "SAST": "દક્ષિણ આફ્રિકા માનક સમય", "ACST": "ઓસ્ટ્રેલિયન મધ્ય પ્રમાણભૂત સમય", "AEDT": "ઓસ્ટ્રેલિયન પૂર્વીય દિવસ સમય", "LHST": "લોર્ડ હોવ પ્રમાણભૂત સમય", "JDT": "જાપાન દિવસ સમય", "WITA": "મધ્ય ઇન્ડોનેશિયા સમય", "NZST": "ન્યુઝીલેન્ડ માનક સમય", "NZDT": "ન્યુઝીલેન્ડ દિવસ સમય", "WAST": "પશ્ચિમ આફ્રિકા ગ્રીષ્મ સમય", "EAT": "પૂર્વ આફ્રિકા સમય", "WARST": "પશ્ચિમી અર્જેન્ટીના ગ્રીષ્મ સમય", "MDT": "મકાઉ ગ્રીષ્મ સમય", "∅∅∅": "એમેઝોન ગ્રીષ્મ સમય", "CLST": "ચિલી ગ્રીષ્મ સમય", "ChST": "કેમોરો માનક સમય", "WAT": "પશ્ચિમ આફ્રિકા માનક સમય", "HEPMX": "મેક્સીકન પેસિફિક દિવસ સમય", "HEOG": "પશ્ચિમ ગ્રીનલેન્ડ ગ્રીષ્મ સમય", "AWDT": "ઓસ્ટ્રેલિયન પશ્ચિમી દિવસ સમય", "MEZ": "મધ્ય યુરોપિયન માનક સમય", "MESZ": "મધ્ય યુરોપિયન ગ્રીષ્મ સમય", "OESZ": "પૂર્વી યુરોપીયન ગ્રીષ્મ સમય", "HNNOMX": "ઉત્તરપશ્ચિમ મેક્સિકો માનક સમય", "HEEG": "પૂર્વ ગ્રીનલેન્ડ ગ્રીષ્મ સમય", "SGT": "સિંગાપુર માનક સમય", "AKST": "અલાસ્કા પ્રમાણભૂત સમય", "UYST": "ઉરૂગ્વે ગ્રીષ્મ સમય", "UYT": "ઉરૂગ્વે માનક સમય", "ACWST": "ઓસ્ટ્રેલિયન મધ્ય પશ્ચિમી પ્રમાણભૂત સમય", "ART": "અર્જેન્ટીના માનક સમય", "BOT": "બોલિવિયા સમય", "OEZ": "પૂર્વી યુરોપિયન માનક સમય", "HNCU": "ક્યૂબા માનક સમય", "HNPMX": "મેક્સીકન પેસિફિક માનક સમય", "AST": "અટલાન્ટિક પ્રમાણભૂત સમય", "SRT": "સૂરીનામ સમય", "PDT": "ઉત્તર અમેરિકન પેસિફિક દિવસ સમય", "WART": "પશ્ચિમી અર્જેન્ટીના માનક સમય", "COT": "કોલંબિયા માનક સમય", "EDT": "ઉત્તર અમેરિકન પૂર્વી દિવસ સમય", "CST": "ઉત્તર અમેરિકન કેન્દ્રિય પ્રમાણભૂત સમય", "HNOG": "પશ્ચિમ ગ્રીનલેન્ડ માનક સમય", "AEST": "ઓસ્ટ્રેલિયન પૂર્વીય પ્રમાણભૂત સમય", "TMT": "તુર્કમેનિસ્તાન માનક સમય", "ACDT": "ઓસ્ટ્રેલિયન મધ્ય દિવસ સમય", "WIT": "પૂર્વીય ઇન્ડોનેશિયા સમય", "VET": "વેનેઝુએલા સમય", "HNEG": "પૂર્વ ગ્રીનલેન્ડ માનક સમય", "HENOMX": "ઉત્તરપશ્ચિમ મેક્સિકો દિવસ સમય", "GMT": "ગ્રીનવિચ મધ્યમ સમય", "HKT": "હોંગ કોંગ માનક સમય"},
+ timezones: map[string]string{"SRT": "સૂરીનામ સમય", "TMST": "તુર્કમેનિસ્તાન ગ્રીષ્મ સમય", "MST": "મકાઉ પ્રમાણભૂત સમય", "ACDT": "ઓસ્ટ્રેલિયન મધ્ય દિવસ સમય", "BT": "ભૂટાન સમય", "UYST": "ઉરૂગ્વે ગ્રીષ્મ સમય", "HNPMX": "મેક્સીકન પેસિફિક માનક સમય", "ACWST": "ઓસ્ટ્રેલિયન મધ્ય પશ્ચિમી પ્રમાણભૂત સમય", "JST": "જાપાન માનક સમય", "WAST": "પશ્ચિમ આફ્રિકા ગ્રીષ્મ સમય", "HNT": "ન્યૂફાઉન્ડલેન્ડ પ્રમાણભૂત સમય", "GYT": "ગયાના સમય", "SAST": "દક્ષિણ આફ્રિકા માનક સમય", "CLT": "ચિલી માનક સમય", "GMT": "ગ્રીનવિચ મધ્યમ સમય", "COT": "કોલંબિયા માનક સમય", "HNEG": "પૂર્વ ગ્રીનલેન્ડ માનક સમય", "AEST": "ઓસ્ટ્રેલિયન પૂર્વીય પ્રમાણભૂત સમય", "UYT": "ઉરૂગ્વે માનક સમય", "AKST": "અલાસ્કા પ્રમાણભૂત સમય", "LHDT": "લોર્ડ હોવ દિવસ સમય", "HNCU": "ક્યૂબા માનક સમય", "WIT": "પૂર્વીય ઇન્ડોનેશિયા સમય", "HAST": "હવાઇ-એલ્યુશિઅન માનક સમય", "NZDT": "ન્યુઝીલેન્ડ દિવસ સમય", "MYT": "મલેશિયા સમય", "WART": "પશ્ચિમી અર્જેન્ટીના માનક સમય", "AST": "અટલાન્ટિક પ્રમાણભૂત સમય", "HEPMX": "મેક્સીકન પેસિફિક દિવસ સમય", "∅∅∅": "એમેઝોન ગ્રીષ્મ સમય", "ACWDT": "ઓસ્ટ્રેલિયન મધ્ય પશ્ચિમી દિવસ સમય", "MESZ": "મધ્ય યુરોપિયન ગ્રીષ્મ સમય", "WARST": "પશ્ચિમી અર્જેન્ટીના ગ્રીષ્મ સમય", "HEOG": "પશ્ચિમ ગ્રીનલેન્ડ ગ્રીષ્મ સમય", "AKDT": "અલાસ્કા દિવસ સમય", "WIB": "પશ્ચિમી ઇન્ડોનેશિયા સમય", "SGT": "સિંગાપુર માનક સમય", "CAT": "મધ્ય આફ્રિકા સમય", "OEZ": "પૂર્વી યુરોપિયન માનક સમય", "ARST": "આર્જેન્ટીના ગ્રીષ્મ સમય", "EST": "ઉત્તર અમેરિકન પૂર્વી પ્રમાણભૂત સમય", "HAT": "ન્યૂફાઉન્ડલેન્ડ દિવસ સમય", "HADT": "હવાઇ-એલ્યુશિઅન દિવસ સમય", "WAT": "પશ્ચિમ આફ્રિકા માનક સમય", "COST": "કોલંબિયા ગ્રીષ્મ સમય", "AEDT": "ઓસ્ટ્રેલિયન પૂર્વીય દિવસ સમય", "ChST": "કેમોરો માનક સમય", "HEPM": "સેંટ પીએરે એન્ડ મિકીલોન દિવસ સમય", "CHAST": "ચેતહામ માનક સમય", "ECT": "એક્વાડોર સમય", "MEZ": "મધ્ય યુરોપિયન માનક સમય", "JDT": "જાપાન દિવસ સમય", "HNOG": "પશ્ચિમ ગ્રીનલેન્ડ માનક સમય", "WEZ": "પશ્ચિમી યુરોપિયન માનક સમય", "LHST": "લોર્ડ હોવ પ્રમાણભૂત સમય", "CHADT": "ચેતહામ દિવસ સમય", "CLST": "ચિલી ગ્રીષ્મ સમય", "HENOMX": "ઉત્તરપશ્ચિમ મેક્સિકો દિવસ સમય", "PST": "ઉત્તર અમેરિકન પેસિફિક પ્રમાણભૂત સમય", "PDT": "ઉત્તર અમેરિકન પેસિફિક દિવસ સમય", "MDT": "મકાઉ ગ્રીષ્મ સમય", "HNPM": "સેંટ પીએરે એન્ડ મિકીલોન માનક સમય", "TMT": "તુર્કમેનિસ્તાન માનક સમય", "HKT": "હોંગ કોંગ માનક સમય", "HNNOMX": "ઉત્તરપશ્ચિમ મેક્સિકો માનક સમય", "WESZ": "પશ્ચિમી યુરોપિયન ગ્રીષ્મ સમય", "ACST": "ઓસ્ટ્રેલિયન મધ્ય પ્રમાણભૂત સમય", "HEEG": "પૂર્વ ગ્રીનલેન્ડ ગ્રીષ્મ સમય", "HECU": "ક્યૂબા દિવસ સમય", "IST": "ભારતીય માનક સમય", "EDT": "ઉત્તર અમેરિકન પૂર્વી દિવસ સમય", "GFT": "ફ્રેન્ચ ગયાના સમય", "WITA": "મધ્ય ઇન્ડોનેશિયા સમય", "CDT": "ઉત્તર અમેરિકન મધ્ય દિવસ સમય", "NZST": "ન્યુઝીલેન્ડ માનક સમય", "ADT": "અટલાન્ટિક દિવસ સમય", "OESZ": "પૂર્વી યુરોપીયન ગ્રીષ્મ સમય", "HKST": "હોંગ કોંગ ગ્રીષ્મ સમય", "EAT": "પૂર્વ આફ્રિકા સમય", "CST": "ઉત્તર અમેરિકન કેન્દ્રિય પ્રમાણભૂત સમય", "BOT": "બોલિવિયા સમય", "VET": "વેનેઝુએલા સમય", "ART": "અર્જેન્ટીના માનક સમય", "AWST": "ઓસ્ટ્રેલિયન પશ્ચિમી પ્રમાણભૂત સમય", "AWDT": "ઓસ્ટ્રેલિયન પશ્ચિમી દિવસ સમય"},
}
}
diff --git a/guz/guz.go b/guz/guz.go
index 8a4e34ec..4784baf0 100644
--- a/guz/guz.go
+++ b/guz/guz.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"YA", "YK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Yeso ataiborwa", "Yeso kaiboirwe"},
- timezones: map[string]string{"SRT": "SRT", "HAT": "HAT", "HEOG": "HEOG", "MESZ": "MESZ", "CLT": "CLT", "UYT": "UYT", "BT": "BT", "HNOG": "HNOG", "OESZ": "OESZ", "COT": "COT", "COST": "COST", "VET": "VET", "HNT": "HNT", "HEPM": "HEPM", "MEZ": "MEZ", "CLST": "CLST", "BOT": "BOT", "EAT": "EAT", "EST": "EST", "MDT": "MDT", "ACWST": "ACWST", "WITA": "WITA", "HNPM": "HNPM", "NZDT": "NZDT", "IST": "IST", "WARST": "WARST", "PDT": "PDT", "HADT": "HADT", "WESZ": "WESZ", "AWDT": "AWDT", "HKT": "HKT", "SAST": "SAST", "GFT": "GFT", "ACST": "ACST", "GYT": "GYT", "WAST": "WAST", "AKDT": "AKDT", "MYT": "MYT", "HNCU": "HNCU", "HECU": "HECU", "HENOMX": "HENOMX", "WIT": "WIT", "WEZ": "WEZ", "JST": "JST", "TMST": "TMST", "HEEG": "HEEG", "WART": "WART", "HNNOMX": "HNNOMX", "HAST": "HAST", "HEPMX": "HEPMX", "UYST": "UYST", "MST": "MST", "ARST": "ARST", "ACWDT": "ACWDT", "AWST": "AWST", "NZST": "NZST", "TMT": "TMT", "CST": "CST", "WAT": "WAT", "SGT": "SGT", "ACDT": "ACDT", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "AST": "AST", "LHST": "LHST", "CHAST": "CHAST", "EDT": "EDT", "HNPMX": "HNPMX", "AKST": "AKST", "AEST": "AEST", "AEDT": "AEDT", "HKST": "HKST", "CHADT": "CHADT", "OEZ": "OEZ", "PST": "PST", "ART": "ART", "JDT": "JDT", "ChST": "ChST", "HNEG": "HNEG", "WIB": "WIB", "ADT": "ADT", "CAT": "CAT", "GMT": "GMT", "CDT": "CDT", "ECT": "ECT"},
+ timezones: map[string]string{"HAT": "HAT", "∅∅∅": "∅∅∅", "ACDT": "ACDT", "WAT": "WAT", "UYT": "UYT", "HECU": "HECU", "HAST": "HAST", "ECT": "ECT", "ADT": "ADT", "ART": "ART", "WARST": "WARST", "WIB": "WIB", "HNNOMX": "HNNOMX", "AEST": "AEST", "UYST": "UYST", "WIT": "WIT", "PST": "PST", "WEZ": "WEZ", "TMST": "TMST", "AKDT": "AKDT", "EAT": "EAT", "CHAST": "CHAST", "COT": "COT", "HEEG": "HEEG", "EDT": "EDT", "COST": "COST", "AKST": "AKST", "HEPM": "HEPM", "HEPMX": "HEPMX", "AWDT": "AWDT", "CLST": "CLST", "MDT": "MDT", "SGT": "SGT", "LHST": "LHST", "GYT": "GYT", "CST": "CST", "MST": "MST", "WAST": "WAST", "OEZ": "OEZ", "CLT": "CLT", "HNOG": "HNOG", "HNPMX": "HNPMX", "NZDT": "NZDT", "JDT": "JDT", "AST": "AST", "ARST": "ARST", "HNPM": "HNPM", "ChST": "ChST", "SAST": "SAST", "MESZ": "MESZ", "OESZ": "OESZ", "ACWDT": "ACWDT", "VET": "VET", "GMT": "GMT", "MYT": "MYT", "HNEG": "HNEG", "HADT": "HADT", "IST": "IST", "ACWST": "ACWST", "BOT": "BOT", "PDT": "PDT", "WART": "WART", "GFT": "GFT", "HEOG": "HEOG", "TMT": "TMT", "HKST": "HKST", "BT": "BT", "AEDT": "AEDT", "CAT": "CAT", "JST": "JST", "HENOMX": "HENOMX", "HNT": "HNT", "LHDT": "LHDT", "CDT": "CDT", "CHADT": "CHADT", "EST": "EST", "HKT": "HKT", "WITA": "WITA", "SRT": "SRT", "MEZ": "MEZ", "ACST": "ACST", "HNCU": "HNCU", "AWST": "AWST", "NZST": "NZST", "WESZ": "WESZ"},
}
}
diff --git a/guz_KE/guz_KE.go b/guz_KE/guz_KE.go
index a83a5041..ec8c5500 100644
--- a/guz_KE/guz_KE.go
+++ b/guz_KE/guz_KE.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"YA", "YK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Yeso ataiborwa", "Yeso kaiboirwe"},
- timezones: map[string]string{"HEOG": "HEOG", "JDT": "JDT", "ChST": "ChST", "HECU": "HECU", "WIB": "WIB", "COT": "COT", "EDT": "EDT", "SAST": "SAST", "TMST": "TMST", "ACDT": "ACDT", "HNPMX": "HNPMX", "HADT": "HADT", "ARST": "ARST", "CLST": "CLST", "GFT": "GFT", "ACST": "ACST", "WAST": "WAST", "OEZ": "OEZ", "SGT": "SGT", "MST": "MST", "MESZ": "MESZ", "IST": "IST", "HEPMX": "HEPMX", "AST": "AST", "HNOG": "HNOG", "HKST": "HKST", "WART": "WART", "CDT": "CDT", "VET": "VET", "LHDT": "LHDT", "CHAST": "CHAST", "OESZ": "OESZ", "EST": "EST", "AKST": "AKST", "HEPM": "HEPM", "CLT": "CLT", "HEEG": "HEEG", "HNCU": "HNCU", "GYT": "GYT", "MYT": "MYT", "UYST": "UYST", "AKDT": "AKDT", "CST": "CST", "WIT": "WIT", "AWDT": "AWDT", "HNNOMX": "HNNOMX", "ADT": "ADT", "PDT": "PDT", "WEZ": "WEZ", "ACWDT": "ACWDT", "HAT": "HAT", "LHST": "LHST", "BOT": "BOT", "COST": "COST", "GMT": "GMT", "MDT": "MDT", "BT": "BT", "HNEG": "HNEG", "WAT": "WAT", "HNT": "HNT", "AEST": "AEST", "JST": "JST", "TMT": "TMT", "ECT": "ECT", "CAT": "CAT", "EAT": "EAT", "ART": "ART", "WESZ": "WESZ", "ACWST": "ACWST", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "HENOMX": "HENOMX", "HAST": "HAST", "AEDT": "AEDT", "UYT": "UYT", "SRT": "SRT", "PST": "PST", "MEZ": "MEZ", "NZST": "NZST", "CHADT": "CHADT", "AWST": "AWST", "HKT": "HKT", "WITA": "WITA", "NZDT": "NZDT", "WARST": "WARST"},
+ timezones: map[string]string{"HNOG": "HNOG", "COT": "COT", "BT": "BT", "ChST": "ChST", "NZDT": "NZDT", "WIB": "WIB", "VET": "VET", "WARST": "WARST", "ACDT": "ACDT", "AKST": "AKST", "UYST": "UYST", "HEPM": "HEPM", "CST": "CST", "HKT": "HKT", "HNEG": "HNEG", "AKDT": "AKDT", "GFT": "GFT", "UYT": "UYT", "SRT": "SRT", "AST": "AST", "WEZ": "WEZ", "AEDT": "AEDT", "HNPMX": "HNPMX", "AWDT": "AWDT", "HENOMX": "HENOMX", "LHST": "LHST", "WIT": "WIT", "NZST": "NZST", "WESZ": "WESZ", "TMT": "TMT", "WAT": "WAT", "PDT": "PDT", "GMT": "GMT", "WAST": "WAST", "HAT": "HAT", "SAST": "SAST", "CHADT": "CHADT", "CAT": "CAT", "ACWDT": "ACWDT", "MEZ": "MEZ", "JDT": "JDT", "OEZ": "OEZ", "OESZ": "OESZ", "MYT": "MYT", "MST": "MST", "AWST": "AWST", "ART": "ART", "COST": "COST", "HEEG": "HEEG", "∅∅∅": "∅∅∅", "EAT": "EAT", "CDT": "CDT", "CLT": "CLT", "HNCU": "HNCU", "BOT": "BOT", "IST": "IST", "HADT": "HADT", "ARST": "ARST", "EST": "EST", "EDT": "EDT", "HNT": "HNT", "LHDT": "LHDT", "HAST": "HAST", "MDT": "MDT", "AEST": "AEST", "PST": "PST", "ADT": "ADT", "ACST": "ACST", "HECU": "HECU", "TMST": "TMST", "GYT": "GYT", "CHAST": "CHAST", "SGT": "SGT", "ACWST": "ACWST", "JST": "JST", "WART": "WART", "CLST": "CLST", "HNNOMX": "HNNOMX", "ECT": "ECT", "MESZ": "MESZ", "HEOG": "HEOG", "HKST": "HKST", "WITA": "WITA", "HNPM": "HNPM", "HEPMX": "HEPMX"},
}
}
diff --git a/gv/gv.go b/gv/gv.go
index 79826f02..e7970689 100644
--- a/gv/gv.go
+++ b/gv/gv.go
@@ -57,7 +57,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"RC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"GFT": "GFT", "HNNOMX": "HNNOMX", "WART": "WART", "AKDT": "AKDT", "PST": "PST", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "CLT": "CLT", "OESZ": "OESZ", "ECT": "ECT", "HENOMX": "HENOMX", "HECU": "HECU", "AKST": "AKST", "ADT": "ADT", "MESZ": "MESZ", "BOT": "BOT", "HNT": "HNT", "PDT": "PDT", "WIB": "WIB", "HADT": "HADT", "EST": "EST", "ACWST": "ACWST", "WIT": "WIT", "ARST": "ARST", "WITA": "WITA", "JDT": "JDT", "WARST": "WARST", "SRT": "SRT", "MDT": "MDT", "UYT": "UYT", "WESZ": "WESZ", "HEEG": "HEEG", "OEZ": "OEZ", "HNEG": "HNEG", "SGT": "SGT", "BT": "BT", "CHADT": "CHADT", "CLST": "CLST", "MST": "MST", "AST": "AST", "CHAST": "CHAST", "COST": "COST", "ACST": "ACST", "COT": "COT", "CDT": "CDT", "UYST": "UYST", "VET": "VET", "HNPM": "HNPM", "NZST": "NZST", "HNCU": "HNCU", "HEOG": "HEOG", "AEDT": "AEDT", "ACDT": "ACDT", "WAT": "WAT", "WAST": "WAST", "CAT": "CAT", "CST": "CST", "ACWDT": "ACWDT", "HAT": "HAT", "HEPM": "HEPM", "LHST": "LHST", "JST": "JST", "EAT": "EAT", "GYT": "GYT", "HKST": "HKST", "AWST": "AWST", "NZDT": "NZDT", "IST": "IST", "GMT": "GMT", "HNPMX": "HNPMX", "HAST": "HAST", "HKT": "HKT", "AEST": "AEST", "SAST": "SAST", "ChST": "ChST", "MYT": "MYT", "ART": "ART", "WEZ": "WEZ", "MEZ": "MEZ", "TMST": "TMST", "HNOG": "HNOG", "TMT": "TMT", "EDT": "EDT", "LHDT": "LHDT", "HEPMX": "HEPMX"},
+ timezones: map[string]string{"HADT": "HADT", "ADT": "ADT", "GMT": "GMT", "CLT": "CLT", "HENOMX": "HENOMX", "HAST": "HAST", "WARST": "WARST", "AEST": "AEST", "SRT": "SRT", "GYT": "GYT", "HNCU": "HNCU", "CST": "CST", "WIT": "WIT", "AWDT": "AWDT", "ART": "ART", "ACST": "ACST", "BT": "BT", "HNT": "HNT", "HNEG": "HNEG", "AKDT": "AKDT", "UYT": "UYT", "CDT": "CDT", "BOT": "BOT", "IST": "IST", "EST": "EST", "WITA": "WITA", "HEPM": "HEPM", "OEZ": "OEZ", "WAST": "WAST", "EDT": "EDT", "HAT": "HAT", "WIB": "WIB", "PST": "PST", "HEOG": "HEOG", "WART": "WART", "ARST": "ARST", "COST": "COST", "HNPMX": "HNPMX", "ECT": "ECT", "JST": "JST", "AEDT": "AEDT", "ACWDT": "ACWDT", "MESZ": "MESZ", "AKST": "AKST", "HNPM": "HNPM", "SAST": "SAST", "CHADT": "CHADT", "ACWST": "ACWST", "MEZ": "MEZ", "WESZ": "WESZ", "CLST": "CLST", "HKST": "HKST", "UYST": "UYST", "EAT": "EAT", "CHAST": "CHAST", "CAT": "CAT", "VET": "VET", "HNOG": "HNOG", "TMT": "TMT", "COT": "COT", "LHDT": "LHDT", "WAT": "WAT", "ACDT": "ACDT", "HEPMX": "HEPMX", "HECU": "HECU", "MYT": "MYT", "GFT": "GFT", "SGT": "SGT", "PDT": "PDT", "NZST": "NZST", "AST": "AST", "OESZ": "OESZ", "ChST": "ChST", "NZDT": "NZDT", "∅∅∅": "∅∅∅", "WEZ": "WEZ", "TMST": "TMST", "MST": "MST", "HEEG": "HEEG", "LHST": "LHST", "AWST": "AWST", "JDT": "JDT", "MDT": "MDT", "HKT": "HKT", "HNNOMX": "HNNOMX"},
}
}
@@ -86,8 +86,8 @@ func (gv *gv) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
i := int64(n)
- iMod10 := i % 10
iMod100 := i % 100
+ iMod10 := i % 10
if v == 0 && iMod10 == 1 {
return locales.PluralRuleOne
diff --git a/gv_IM/gv_IM.go b/gv_IM/gv_IM.go
index 92c6689a..68d94ba0 100644
--- a/gv_IM/gv_IM.go
+++ b/gv_IM/gv_IM.go
@@ -57,7 +57,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"RC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"CHADT": "CHADT", "JDT": "JDT", "ACST": "ACST", "WAST": "WAST", "AWST": "AWST", "AEDT": "AEDT", "HEPM": "HEPM", "NZST": "NZST", "CAT": "CAT", "AKST": "AKST", "ADT": "ADT", "ACWDT": "ACWDT", "HEOG": "HEOG", "NZDT": "NZDT", "JST": "JST", "AKDT": "AKDT", "GYT": "GYT", "UYST": "UYST", "HKT": "HKT", "MESZ": "MESZ", "TMST": "TMST", "GMT": "GMT", "MDT": "MDT", "EDT": "EDT", "EST": "EST", "LHST": "LHST", "WARST": "WARST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "BOT": "BOT", "HNNOMX": "HNNOMX", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "EAT": "EAT", "CHAST": "CHAST", "CLT": "CLT", "CLST": "CLST", "ACDT": "ACDT", "SRT": "SRT", "BT": "BT", "ARST": "ARST", "AWDT": "AWDT", "ECT": "ECT", "COST": "COST", "MST": "MST", "HNCU": "HNCU", "WEZ": "WEZ", "ACWST": "ACWST", "AEST": "AEST", "WART": "WART", "OESZ": "OESZ", "CST": "CST", "AST": "AST", "WIT": "WIT", "HNOG": "HNOG", "HNPM": "HNPM", "MEZ": "MEZ", "TMT": "TMT", "UYT": "UYT", "IST": "IST", "HENOMX": "HENOMX", "HECU": "HECU", "CDT": "CDT", "PDT": "PDT", "ChST": "ChST", "OEZ": "OEZ", "WAT": "WAT", "COT": "COT", "SGT": "SGT", "WIB": "WIB", "PST": "PST", "WITA": "WITA", "LHDT": "LHDT", "SAST": "SAST", "ART": "ART", "GFT": "GFT", "VET": "VET", "HADT": "HADT", "HNEG": "HNEG", "MYT": "MYT", "HAST": "HAST", "WESZ": "WESZ", "HNT": "HNT", "HAT": "HAT", "HKST": "HKST"},
+ timezones: map[string]string{"CDT": "CDT", "SGT": "SGT", "CST": "CST", "HADT": "HADT", "AKDT": "AKDT", "HNPM": "HNPM", "UYT": "UYT", "HNCU": "HNCU", "UYST": "UYST", "HECU": "HECU", "ACWST": "ACWST", "JST": "JST", "MST": "MST", "ACDT": "ACDT", "HAT": "HAT", "GFT": "GFT", "LHDT": "LHDT", "MEZ": "MEZ", "AKST": "AKST", "PDT": "PDT", "HNEG": "HNEG", "PST": "PST", "ACWDT": "ACWDT", "WESZ": "WESZ", "TMT": "TMT", "EST": "EST", "COST": "COST", "NZDT": "NZDT", "IST": "IST", "MESZ": "MESZ", "OEZ": "OEZ", "MDT": "MDT", "CHADT": "CHADT", "AEDT": "AEDT", "WITA": "WITA", "EAT": "EAT", "ADT": "ADT", "ART": "ART", "WAT": "WAT", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "HEPM": "HEPM", "JDT": "JDT", "CLST": "CLST", "TMST": "TMST", "HEEG": "HEEG", "COT": "COT", "HEPMX": "HEPMX", "CHAST": "CHAST", "CAT": "CAT", "ChST": "ChST", "SRT": "SRT", "WIT": "WIT", "WEZ": "WEZ", "OESZ": "OESZ", "ARST": "ARST", "BT": "BT", "ECT": "ECT", "MYT": "MYT", "HKT": "HKT", "HNPMX": "HNPMX", "HAST": "HAST", "AWST": "AWST", "WAST": "WAST", "HNNOMX": "HNNOMX", "AEST": "AEST", "WIB": "WIB", "LHST": "LHST", "GYT": "GYT", "WART": "WART", "WARST": "WARST", "CLT": "CLT", "ACST": "ACST", "BOT": "BOT", "VET": "VET", "AST": "AST", "HKST": "HKST", "SAST": "SAST", "HNT": "HNT", "AWDT": "AWDT", "NZST": "NZST", "GMT": "GMT", "HNOG": "HNOG", "HEOG": "HEOG", "EDT": "EDT"},
}
}
diff --git a/ha/ha.go b/ha/ha.go
index 35922af9..0922b691 100644
--- a/ha/ha.go
+++ b/ha/ha.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KHAI", "BHAI"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kafin haihuwar annab", "Bayan haihuwar annab"},
- timezones: map[string]string{"HNPM": "HNPM", "HNNOMX": "HNNOMX", "SGT": "SGT", "HNPMX": "HNPMX", "HAST": "HAST", "HNOG": "HNOG", "AEDT": "AEDT", "CHAST": "CHAST", "ACDT": "ACDT", "CAT": "CAT", "HECU": "HECU", "EST": "EST", "EDT": "EDT", "MDT": "MDT", "AST": "AST", "CDT": "CDT", "ACWST": "ACWST", "SRT": "SRT", "∅∅∅": "∅∅∅", "BOT": "BOT", "HEOG": "HEOG", "PDT": "PDT", "ACWDT": "ACWDT", "HKST": "HKST", "SAST": "SAST", "GFT": "GFT", "COT": "COT", "MYT": "MYT", "ARST": "ARST", "NZST": "NZST", "TMT": "TMT", "HNEG": "HNEG", "HEPMX": "HEPMX", "HADT": "HADT", "VET": "VET", "BT": "BT", "LHDT": "LHDT", "CLT": "CLT", "ChST": "ChST", "MESZ": "MESZ", "CHADT": "CHADT", "OEZ": "OEZ", "COST": "COST", "WIB": "WIB", "WITA": "WITA", "IST": "IST", "AKST": "AKST", "AEST": "AEST", "AWDT": "AWDT", "HEPM": "HEPM", "MEZ": "MEZ", "OESZ": "OESZ", "AKDT": "AKDT", "WESZ": "WESZ", "JDT": "JDT", "CLST": "CLST", "ECT": "ECT", "UYT": "UYT", "UYST": "UYST", "CST": "CST", "ART": "ART", "WEZ": "WEZ", "ACST": "ACST", "AWST": "AWST", "LHST": "LHST", "EAT": "EAT", "HENOMX": "HENOMX", "GYT": "GYT", "HAT": "HAT", "HKT": "HKT", "NZDT": "NZDT", "JST": "JST", "TMST": "TMST", "WAT": "WAT", "WART": "WART", "HNCU": "HNCU", "PST": "PST", "HEEG": "HEEG", "GMT": "GMT", "HNT": "HNT", "WAST": "WAST", "WARST": "WARST", "MST": "MST", "ADT": "ADT", "WIT": "WIT"},
+ timezones: map[string]string{"CHAST": "CHAST", "ACST": "ACST", "AEST": "AEST", "WIB": "WIB", "HKT": "HKT", "HNNOMX": "HNNOMX", "HECU": "HECU", "SGT": "SGT", "ACWST": "ACWST", "CLT": "CLT", "OESZ": "OESZ", "BOT": "BOT", "CAT": "CAT", "WEZ": "WEZ", "HNCU": "HNCU", "HNPM": "HNPM", "PST": "PST", "IST": "IST", "CLST": "CLST", "WESZ": "WESZ", "HAT": "HAT", "ADT": "ADT", "ART": "ART", "HKST": "HKST", "COST": "COST", "WARST": "WARST", "MDT": "MDT", "WITA": "WITA", "AEDT": "AEDT", "HNPMX": "HNPMX", "AWDT": "AWDT", "PDT": "PDT", "TMT": "TMT", "GFT": "GFT", "MESZ": "MESZ", "MST": "MST", "UYST": "UYST", "WAT": "WAT", "ACDT": "ACDT", "BT": "BT", "ChST": "ChST", "HAST": "HAST", "∅∅∅": "∅∅∅", "NZDT": "NZDT", "HNOG": "HNOG", "LHDT": "LHDT", "CDT": "CDT", "JST": "JST", "WART": "WART", "WAST": "WAST", "HNEG": "HNEG", "GMT": "GMT", "TMST": "TMST", "HEEG": "HEEG", "AKDT": "AKDT", "AWST": "AWST", "CHADT": "CHADT", "NZST": "NZST", "HEOG": "HEOG", "GYT": "GYT", "CST": "CST", "MYT": "MYT", "HENOMX": "HENOMX", "LHST": "LHST", "SRT": "SRT", "HNT": "HNT", "AKST": "AKST", "WIT": "WIT", "ACWDT": "ACWDT", "AST": "AST", "OEZ": "OEZ", "COT": "COT", "HEPMX": "HEPMX", "MEZ": "MEZ", "VET": "VET", "HEPM": "HEPM", "SAST": "SAST", "ARST": "ARST", "EST": "EST", "UYT": "UYT", "EAT": "EAT", "ECT": "ECT", "HADT": "HADT", "JDT": "JDT", "EDT": "EDT"},
}
}
diff --git a/ha_GH/ha_GH.go b/ha_GH/ha_GH.go
index 3aec70aa..eb8cbeda 100644
--- a/ha_GH/ha_GH.go
+++ b/ha_GH/ha_GH.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KHAI", "BHAI"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kafin haihuwar annab", "Bayan haihuwar annab"},
- timezones: map[string]string{"PST": "PST", "NZDT": "NZDT", "CST": "CST", "UYT": "UYT", "AKST": "AKST", "CLT": "CLT", "CLST": "CLST", "WART": "WART", "WARST": "WARST", "HECU": "HECU", "HAST": "HAST", "HEOG": "HEOG", "LHDT": "LHDT", "NZST": "NZST", "CAT": "CAT", "∅∅∅": "∅∅∅", "AST": "AST", "HENOMX": "HENOMX", "GMT": "GMT", "MYT": "MYT", "ACST": "ACST", "WAT": "WAT", "COT": "COT", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "SAST": "SAST", "ADT": "ADT", "EST": "EST", "MST": "MST", "AKDT": "AKDT", "HNOG": "HNOG", "MEZ": "MEZ", "ChST": "ChST", "ACDT": "ACDT", "WIB": "WIB", "HADT": "HADT", "WIT": "WIT", "AWST": "AWST", "EDT": "EDT", "HNPMX": "HNPMX", "CDT": "CDT", "TMST": "TMST", "OEZ": "OEZ", "OESZ": "OESZ", "BT": "BT", "ACWST": "ACWST", "ARST": "ARST", "GFT": "GFT", "HEPMX": "HEPMX", "VET": "VET", "HNT": "HNT", "HKST": "HKST", "JST": "JST", "TMT": "TMT", "IST": "IST", "BOT": "BOT", "EAT": "EAT", "WESZ": "WESZ", "AWDT": "AWDT", "HKT": "HKT", "LHST": "LHST", "COST": "COST", "SGT": "SGT", "MDT": "MDT", "PDT": "PDT", "HNPM": "HNPM", "CHADT": "CHADT", "JDT": "JDT", "WEZ": "WEZ", "ART": "ART", "HNEG": "HNEG", "WAST": "WAST", "ECT": "ECT", "UYST": "UYST", "SRT": "SRT", "HAT": "HAT", "AEST": "AEST", "HEPM": "HEPM", "GYT": "GYT", "AEDT": "AEDT", "WITA": "WITA", "MESZ": "MESZ", "HEEG": "HEEG", "CHAST": "CHAST", "HNCU": "HNCU"},
+ timezones: map[string]string{"CHAST": "CHAST", "TMT": "TMT", "GMT": "GMT", "AKST": "AKST", "CST": "CST", "PST": "PST", "MEZ": "MEZ", "MDT": "MDT", "CHADT": "CHADT", "ECT": "ECT", "HKT": "HKT", "COST": "COST", "HNNOMX": "HNNOMX", "BT": "BT", "LHST": "LHST", "WIB": "WIB", "ART": "ART", "GFT": "GFT", "EST": "EST", "AEST": "AEST", "WAT": "WAT", "HNT": "HNT", "CLT": "CLT", "UYT": "UYT", "UYST": "UYST", "IST": "IST", "MESZ": "MESZ", "CLST": "CLST", "MST": "MST", "EDT": "EDT", "∅∅∅": "∅∅∅", "NZST": "NZST", "WESZ": "WESZ", "ADT": "ADT", "WITA": "WITA", "HEPM": "HEPM", "EAT": "EAT", "WEZ": "WEZ", "WART": "WART", "AST": "AST", "WAST": "WAST", "HENOMX": "HENOMX", "SGT": "SGT", "PDT": "PDT", "NZDT": "NZDT", "COT": "COT", "ACDT": "ACDT", "HNPM": "HNPM", "ChST": "ChST", "LHDT": "LHDT", "CDT": "CDT", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "HEOG": "HEOG", "ARST": "ARST", "HKST": "HKST", "HNEG": "HNEG", "GYT": "GYT", "BOT": "BOT", "ACWST": "ACWST", "JDT": "JDT", "OEZ": "OEZ", "MYT": "MYT", "TMST": "TMST", "ACST": "ACST", "HAT": "HAT", "WIT": "WIT", "VET": "VET", "AEDT": "AEDT", "AKDT": "AKDT", "HADT": "HADT", "JST": "JST", "HNOG": "HNOG", "HEPMX": "HEPMX", "SRT": "SRT", "AWST": "AWST", "HAST": "HAST", "CAT": "CAT", "HEEG": "HEEG", "AWDT": "AWDT", "OESZ": "OESZ", "WARST": "WARST", "SAST": "SAST", "HNCU": "HNCU", "HECU": "HECU"},
}
}
diff --git a/ha_NE/ha_NE.go b/ha_NE/ha_NE.go
index 12734aa7..8efb6a6d 100644
--- a/ha_NE/ha_NE.go
+++ b/ha_NE/ha_NE.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KHAI", "BHAI"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kafin haihuwar annab", "Bayan haihuwar annab"},
- timezones: map[string]string{"CHAST": "CHAST", "MEZ": "MEZ", "CLST": "CLST", "TMT": "TMT", "ECT": "ECT", "COST": "COST", "EST": "EST", "AWST": "AWST", "LHDT": "LHDT", "GFT": "GFT", "UYST": "UYST", "AWDT": "AWDT", "HEEG": "HEEG", "WART": "WART", "EDT": "EDT", "NZST": "NZST", "ACST": "ACST", "CAT": "CAT", "HENOMX": "HENOMX", "VET": "VET", "HAT": "HAT", "HNOG": "HNOG", "MESZ": "MESZ", "ACDT": "ACDT", "OEZ": "OEZ", "HNT": "HNT", "HNPM": "HNPM", "ADT": "ADT", "HNEG": "HNEG", "WAT": "WAT", "WAST": "WAST", "GYT": "GYT", "HADT": "HADT", "ART": "ART", "WEZ": "WEZ", "AEST": "AEST", "EAT": "EAT", "MST": "MST", "MDT": "MDT", "CST": "CST", "AKST": "AKST", "AKDT": "AKDT", "ARST": "ARST", "HNNOMX": "HNNOMX", "SGT": "SGT", "BT": "BT", "SRT": "SRT", "JST": "JST", "WARST": "WARST", "AST": "AST", "HAST": "HAST", "HEOG": "HEOG", "NZDT": "NZDT", "COT": "COT", "WIB": "WIB", "HKST": "HKST", "SAST": "SAST", "CLT": "CLT", "UYT": "UYT", "∅∅∅": "∅∅∅", "WIT": "WIT", "PDT": "PDT", "IST": "IST", "ChST": "ChST", "GMT": "GMT", "HNPMX": "HNPMX", "MYT": "MYT", "ACWDT": "ACWDT", "AEDT": "AEDT", "CHADT": "CHADT", "LHST": "LHST", "JDT": "JDT", "CDT": "CDT", "PST": "PST", "WESZ": "WESZ", "WITA": "WITA", "HKT": "HKT", "HEPM": "HEPM", "TMST": "TMST", "BOT": "BOT", "OESZ": "OESZ", "HNCU": "HNCU", "HECU": "HECU", "HEPMX": "HEPMX", "ACWST": "ACWST"},
+ timezones: map[string]string{"HECU": "HECU", "WIB": "WIB", "WIT": "WIT", "HEOG": "HEOG", "HNNOMX": "HNNOMX", "CAT": "CAT", "TMST": "TMST", "ACST": "ACST", "HNPM": "HNPM", "UYT": "UYT", "UYST": "UYST", "CST": "CST", "ECT": "ECT", "OEZ": "OEZ", "MDT": "MDT", "EST": "EST", "HNEG": "HNEG", "SRT": "SRT", "EAT": "EAT", "JDT": "JDT", "HKT": "HKT", "PST": "PST", "JST": "JST", "HEEG": "HEEG", "GFT": "GFT", "WESZ": "WESZ", "ARST": "ARST", "SAST": "SAST", "AWDT": "AWDT", "MESZ": "MESZ", "WART": "WART", "TMT": "TMT", "AEDT": "AEDT", "HEPM": "HEPM", "AWST": "AWST", "CHAST": "CHAST", "IST": "IST", "ACDT": "ACDT", "HEPMX": "HEPMX", "HAST": "HAST", "ADT": "ADT", "EDT": "EDT", "SGT": "SGT", "NZST": "NZST", "VET": "VET", "ART": "ART", "ChST": "ChST", "LHDT": "LHDT", "HAT": "HAT", "HNPMX": "HNPMX", "CHADT": "CHADT", "BOT": "BOT", "ACWDT": "ACWDT", "OESZ": "OESZ", "MYT": "MYT", "WAST": "WAST", "AKDT": "AKDT", "WITA": "WITA", "HNCU": "HNCU", "WEZ": "WEZ", "GMT": "GMT", "CLT": "CLT", "CLST": "CLST", "HENOMX": "HENOMX", "PDT": "PDT", "ACWST": "ACWST", "NZDT": "NZDT", "WAT": "WAT", "WARST": "WARST", "HNOG": "HNOG", "HKST": "HKST", "AEST": "AEST", "GYT": "GYT", "MEZ": "MEZ", "MST": "MST", "BT": "BT", "HNT": "HNT", "AKST": "AKST", "LHST": "LHST", "CDT": "CDT", "∅∅∅": "∅∅∅", "HADT": "HADT", "AST": "AST", "COT": "COT", "COST": "COST"},
}
}
diff --git a/ha_NG/ha_NG.go b/ha_NG/ha_NG.go
index ce294747..52a230c1 100644
--- a/ha_NG/ha_NG.go
+++ b/ha_NG/ha_NG.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KHAI", "BHAI"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kafin haihuwar annab", "Bayan haihuwar annab"},
- timezones: map[string]string{"CHAST": "CHAST", "∅∅∅": "∅∅∅", "CAT": "CAT", "GYT": "GYT", "ACWST": "ACWST", "ACST": "ACST", "CHADT": "CHADT", "BT": "BT", "AWDT": "AWDT", "MESZ": "MESZ", "HNCU": "HNCU", "AKST": "AKST", "CDT": "CDT", "WIT": "WIT", "NZST": "NZST", "IST": "IST", "TMT": "TMT", "AST": "AST", "WIB": "WIB", "HEOG": "HEOG", "WESZ": "WESZ", "HKT": "HKT", "MEZ": "MEZ", "JDT": "JDT", "WAST": "WAST", "COST": "COST", "HENOMX": "HENOMX", "SRT": "SRT", "MDT": "MDT", "HNPMX": "HNPMX", "GMT": "GMT", "ARST": "ARST", "WITA": "WITA", "JST": "JST", "ChST": "ChST", "HNEG": "HNEG", "OEZ": "OEZ", "UYT": "UYT", "HNT": "HNT", "HKST": "HKST", "CLST": "CLST", "COT": "COT", "SGT": "SGT", "UYST": "UYST", "AWST": "AWST", "ACDT": "ACDT", "ECT": "ECT", "WART": "WART", "WARST": "WARST", "MYT": "MYT", "HADT": "HADT", "HNPM": "HNPM", "HEPM": "HEPM", "LHDT": "LHDT", "PDT": "PDT", "SAST": "SAST", "CLT": "CLT", "HEEG": "HEEG", "EST": "EST", "HAST": "HAST", "AEST": "AEST", "LHST": "LHST", "CST": "CST", "ACWDT": "ACWDT", "TMST": "TMST", "EDT": "EDT", "MST": "MST", "AEDT": "AEDT", "PST": "PST", "NZDT": "NZDT", "EAT": "EAT", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "VET": "VET", "ART": "ART", "HNOG": "HNOG", "BOT": "BOT", "WAT": "WAT", "ADT": "ADT", "WEZ": "WEZ", "GFT": "GFT", "OESZ": "OESZ", "HECU": "HECU", "HEPMX": "HEPMX", "HAT": "HAT"},
+ timezones: map[string]string{"OESZ": "OESZ", "HNCU": "HNCU", "HAST": "HAST", "NZDT": "NZDT", "MYT": "MYT", "BOT": "BOT", "LHDT": "LHDT", "CHADT": "CHADT", "PDT": "PDT", "CAT": "CAT", "MEZ": "MEZ", "WARST": "WARST", "AKDT": "AKDT", "UYST": "UYST", "NZST": "NZST", "ACWST": "ACWST", "ADT": "ADT", "HKST": "HKST", "BT": "BT", "HADT": "HADT", "UYT": "UYT", "SAST": "SAST", "HECU": "HECU", "ART": "ART", "MST": "MST", "HNEG": "HNEG", "AKST": "AKST", "ECT": "ECT", "IST": "IST", "WEZ": "WEZ", "WESZ": "WESZ", "EDT": "EDT", "HAT": "HAT", "CDT": "CDT", "PST": "PST", "GMT": "GMT", "WART": "WART", "AST": "AST", "AEDT": "AEDT", "HEEG": "HEEG", "HNPMX": "HNPMX", "JDT": "JDT", "TMST": "TMST", "∅∅∅": "∅∅∅", "HNT": "HNT", "SRT": "SRT", "LHST": "LHST", "GYT": "GYT", "WIT": "WIT", "AWDT": "AWDT", "CLST": "CLST", "COST": "COST", "WAST": "WAST", "ARST": "ARST", "EAT": "EAT", "AWST": "AWST", "SGT": "SGT", "EST": "EST", "AEST": "AEST", "WIB": "WIB", "WITA": "WITA", "GFT": "GFT", "CST": "CST", "CHAST": "CHAST", "ACWDT": "ACWDT", "MESZ": "MESZ", "JST": "JST", "CLT": "CLT", "MDT": "MDT", "WAT": "WAT", "HKT": "HKT", "HNOG": "HNOG", "HNNOMX": "HNNOMX", "COT": "COT", "ChST": "ChST", "HNPM": "HNPM", "VET": "VET", "HEOG": "HEOG", "ACST": "ACST", "HENOMX": "HENOMX", "HEPM": "HEPM", "HEPMX": "HEPMX", "OEZ": "OEZ", "TMT": "TMT", "ACDT": "ACDT"},
}
}
diff --git a/haw/haw.go b/haw/haw.go
index ad90353c..eba60314 100644
--- a/haw/haw.go
+++ b/haw/haw.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "CE"},
erasNarrow: []string{"", ""},
erasWide: []string{"BCE", "CE"},
- timezones: map[string]string{"WESZ": "WESZ", "MEZ": "MEZ", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "EDT": "EDT", "LHDT": "LHDT", "WARST": "WARST", "AST": "AST", "UYST": "UYST", "WIT": "WIT", "PDT": "PDT", "HKST": "HKST", "AEST": "AEST", "MST": "MST", "CST": "CST", "UYT": "UYT", "WAT": "WAT", "HENOMX": "HENOMX", "HNOG": "HNOG", "AKDT": "AKDT", "CDT": "CDT", "GYT": "GYT", "ChST": "ChST", "HAST": "HAST", "WITA": "WITA", "SAST": "SAST", "SRT": "SRT", "HEEG": "HEEG", "CLT": "CLT", "OEZ": "OEZ", "WART": "WART", "EST": "EST", "ARST": "ARST", "∅∅∅": "∅∅∅", "EAT": "EAT", "COT": "COT", "HECU": "HECU", "HADT": "HADT", "HAT": "HAT", "CLST": "CLST", "WEZ": "WEZ", "JST": "JST", "ACST": "ACST", "CAT": "CAT", "COST": "COST", "WIB": "WIB", "HNT": "HNT", "ART": "ART", "BOT": "BOT", "ECT": "ECT", "HEOG": "HEOG", "HNPM": "HNPM", "GFT": "GFT", "AEDT": "AEDT", "JDT": "JDT", "SGT": "SGT", "HNPMX": "HNPMX", "ACWST": "ACWST", "ACWDT": "ACWDT", "NZDT": "NZDT", "CHADT": "CHADT", "TMST": "TMST", "MDT": "MDT", "BT": "BT", "HEPM": "HEPM", "AWST": "AWST", "MESZ": "MESZ", "LHST": "LHST", "HNEG": "HNEG", "AKST": "AKST", "ADT": "ADT", "MYT": "MYT", "ACDT": "ACDT", "WAST": "WAST", "GMT": "GMT", "HEPMX": "HEPMX", "PST": "PST", "AWDT": "AWDT", "CHAST": "CHAST", "IST": "IST", "TMT": "TMT", "OESZ": "OESZ", "VET": "VET", "HKT": "HKT", "NZST": "NZST"},
+ timezones: map[string]string{"VET": "VET", "EDT": "EDT", "HNT": "HNT", "MDT": "MDT", "HENOMX": "HENOMX", "UYST": "UYST", "ECT": "ECT", "NZDT": "NZDT", "MEZ": "MEZ", "HNOG": "HNOG", "AKST": "AKST", "AWST": "AWST", "AWDT": "AWDT", "BOT": "BOT", "NZST": "NZST", "GMT": "GMT", "MST": "MST", "COST": "COST", "HKT": "HKT", "ACST": "ACST", "HEEG": "HEEG", "HEPMX": "HEPMX", "HEOG": "HEOG", "TMST": "TMST", "WAST": "WAST", "COT": "COT", "CAT": "CAT", "OEZ": "OEZ", "OESZ": "OESZ", "WESZ": "WESZ", "ChST": "ChST", "SAST": "SAST", "AEST": "AEST", "AKDT": "AKDT", "HNPM": "HNPM", "HEPM": "HEPM", "HNEG": "HNEG", "WIB": "WIB", "WIT": "WIT", "CHADT": "CHADT", "PDT": "PDT", "HAST": "HAST", "ACWDT": "ACWDT", "ARST": "ARST", "BT": "BT", "LHDT": "LHDT", "AEDT": "AEDT", "WITA": "WITA", "HNCU": "HNCU", "PST": "PST", "HADT": "HADT", "IST": "IST", "WARST": "WARST", "SRT": "SRT", "GYT": "GYT", "ACWST": "ACWST", "JDT": "JDT", "GFT": "GFT", "LHST": "LHST", "EAT": "EAT", "∅∅∅": "∅∅∅", "JST": "JST", "ACDT": "ACDT", "UYT": "UYT", "CDT": "CDT", "ADT": "ADT", "HKST": "HKST", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "WEZ": "WEZ", "CLST": "CLST", "TMT": "TMT", "WAT": "WAT", "CST": "CST", "MYT": "MYT", "WART": "WART", "CLT": "CLT", "HECU": "HECU", "MESZ": "MESZ", "SGT": "SGT", "CHAST": "CHAST", "AST": "AST", "ART": "ART", "EST": "EST", "HAT": "HAT"},
}
}
diff --git a/haw_US/haw_US.go b/haw_US/haw_US.go
index 90ffa64e..e0bcd95b 100644
--- a/haw_US/haw_US.go
+++ b/haw_US/haw_US.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "CE"},
erasNarrow: []string{"", ""},
erasWide: []string{"BCE", "CE"},
- timezones: map[string]string{"ACWDT": "ACWDT", "AEST": "AEST", "MESZ": "MESZ", "HNCU": "HNCU", "WIB": "WIB", "PST": "PST", "AEDT": "AEDT", "CLT": "CLT", "OEZ": "OEZ", "AWST": "AWST", "CLST": "CLST", "ECT": "ECT", "CAT": "CAT", "HECU": "HECU", "MDT": "MDT", "HNPM": "HNPM", "LHST": "LHST", "CHADT": "CHADT", "SGT": "SGT", "AST": "AST", "CST": "CST", "MYT": "MYT", "AKDT": "AKDT", "ARST": "ARST", "WESZ": "WESZ", "HKST": "HKST", "LHDT": "LHDT", "CHAST": "CHAST", "GYT": "GYT", "AWDT": "AWDT", "WITA": "WITA", "MEZ": "MEZ", "WARST": "WARST", "COST": "COST", "HEPMX": "HEPMX", "HNOG": "HNOG", "HKT": "HKT", "JST": "JST", "ChST": "ChST", "HAST": "HAST", "WIT": "WIT", "COT": "COT", "EST": "EST", "HEOG": "HEOG", "WEZ": "WEZ", "HEPM": "HEPM", "TMST": "TMST", "HNEG": "HNEG", "GFT": "GFT", "HNT": "HNT", "SAST": "SAST", "EAT": "EAT", "HNPMX": "HNPMX", "SRT": "SRT", "ART": "ART", "TMT": "TMT", "EDT": "EDT", "UYT": "UYT", "HADT": "HADT", "HAT": "HAT", "ACST": "ACST", "OESZ": "OESZ", "WART": "WART", "ADT": "ADT", "UYST": "UYST", "WAT": "WAT", "WAST": "WAST", "VET": "VET", "BT": "BT", "NZDT": "NZDT", "JDT": "JDT", "ACDT": "ACDT", "HENOMX": "HENOMX", "GMT": "GMT", "MST": "MST", "PDT": "PDT", "ACWST": "ACWST", "NZST": "NZST", "∅∅∅": "∅∅∅", "BOT": "BOT", "HEEG": "HEEG", "IST": "IST", "HNNOMX": "HNNOMX", "AKST": "AKST", "CDT": "CDT"},
+ timezones: map[string]string{"TMST": "TMST", "EST": "EST", "CDT": "CDT", "NZST": "NZST", "MESZ": "MESZ", "HEPMX": "HEPMX", "WIB": "WIB", "MDT": "MDT", "SAST": "SAST", "LHST": "LHST", "AWST": "AWST", "CLT": "CLT", "ADT": "ADT", "MST": "MST", "HEPM": "HEPM", "HNPMX": "HNPMX", "COT": "COT", "GYT": "GYT", "CHAST": "CHAST", "AKST": "AKST", "ChST": "ChST", "CHADT": "CHADT", "JDT": "JDT", "GMT": "GMT", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "WITA": "WITA", "WESZ": "WESZ", "MYT": "MYT", "HEEG": "HEEG", "PDT": "PDT", "HADT": "HADT", "VET": "VET", "HEOG": "HEOG", "GFT": "GFT", "HECU": "HECU", "ACWST": "ACWST", "JST": "JST", "UYST": "UYST", "HNPM": "HNPM", "OESZ": "OESZ", "WIT": "WIT", "CAT": "CAT", "NZDT": "NZDT", "HNT": "HNT", "AEST": "AEST", "UYT": "UYT", "ART": "ART", "PST": "PST", "OEZ": "OEZ", "WEZ": "WEZ", "AWDT": "AWDT", "IST": "IST", "AST": "AST", "EDT": "EDT", "HKT": "HKT", "ACST": "ACST", "HAT": "HAT", "SRT": "SRT", "MEZ": "MEZ", "HNOG": "HNOG", "HNEG": "HNEG", "HAST": "HAST", "ECT": "ECT", "HKST": "HKST", "EAT": "EAT", "HNCU": "HNCU", "BOT": "BOT", "CLST": "CLST", "WARST": "WARST", "BT": "BT", "LHDT": "LHDT", "ACWDT": "ACWDT", "AKDT": "AKDT", "AEDT": "AEDT", "CST": "CST", "SGT": "SGT", "WART": "WART", "COST": "COST", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "WAST": "WAST", "TMT": "TMT", "ARST": "ARST", "WAT": "WAT"},
}
}
diff --git a/he/he.go b/he/he.go
index da31c267..c31c30e4 100644
--- a/he/he.go
+++ b/he/he.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"לפנה״ס", "לספירה"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"JST": "שעון יפן (חורף)", "HNNOMX": "שעון צפון-מערב מקסיקו (חורף)", "MST": "שעון חורף מקאו", "SRT": "שעון סורינאם", "HAT": "שעון ניופאונדלנד (קיץ)", "IST": "שעון הודו", "EST": "שעון החוף המזרחי (חורף)", "ADT": "שעון האוקיינוס האטלנטי (קיץ)", "HNOG": "שעון מערב גרינלנד (חורף)", "MEZ": "שעון מרכז אירופה (חורף)", "HEEG": "שעון מזרח גרינלנד (קיץ)", "WAT": "שעון מערב אפריקה (חורף)", "MDT": "שעון קיץ מקאו", "WESZ": "שעון מערב אירופה (קיץ)", "NZDT": "שעון ניו זילנד (קיץ)", "GFT": "שעון גיאנה הצרפתית", "WART": "שעון מערב ארגנטינה (חורף)", "HNCU": "שעון קובה (חורף)", "HNPMX": "שעון מערב מקסיקו (חורף)", "WEZ": "שעון מערב אירופה (חורף)", "AEDT": "שעון מזרח אוסטרליה (קיץ)", "HKST": "שעון הונג קונג (קיץ)", "ChST": "שעון צ׳אמורו", "OEZ": "שעון מזרח אירופה (חורף)", "WARST": "שעון מערב ארגנטינה (קיץ)", "COST": "שעון קולומביה (קיץ)", "HECU": "שעון קובה (קיץ)", "VET": "שעון ונצואלה", "AWDT": "שעון מערב אוסטרליה (קיץ)", "SAST": "שעון דרום אפריקה", "CST": "שעון מרכז ארה״ב (חורף)", "TMST": "שעון טורקמניסטן (קיץ)", "ACWDT": "שעון מרכז-מערב אוסטרליה (קיץ)", "ARST": "שעון ארגנטינה (קיץ)", "AWST": "שעון מערב אוסטרליה (חורף)", "AKDT": "שעון אלסקה (קיץ)", "HADT": "שעון האיים האלאוטיים הוואי (קיץ)", "ACST": "שעון מרכז אוסטרליה (חורף)", "MYT": "שעון מלזיה", "UYT": "שעון אורוגוואי (חורף)", "CDT": "שעון מרכז ארה״ב (קיץ)", "AST": "שעון האוקיינוס האטלנטי (חורף)", "MESZ": "שעון מרכז אירופה (קיץ)", "CHADT": "שעון צ׳טהאם (קיץ)", "CAT": "שעון מרכז אפריקה", "ECT": "שעון אקוודור", "SGT": "שעון סינגפור", "BT": "שעון בהוטן", "WITA": "שעון מרכז אינדונזיה", "LHDT": "שעון אי הלורד האו (קיץ)", "HNPM": "שעון סנט פייר ומיקלון (חורף)", "HEPM": "שעון סנט פייר ומיקלון (קיץ)", "CLT": "שעון צ׳ילה (חורף)", "∅∅∅": "שעון אמזונס (קיץ)", "TMT": "שעון טורקמניסטן (חורף)", "HEOG": "שעון מערב גרינלנד (קיץ)", "ART": "שעון ארגנטינה (חורף)", "HKT": "שעון הונג קונג (חורף)", "WIB": "שעון מערב אינדונזיה", "ACDT": "שעון מרכז אוסטרליה (קיץ)", "OESZ": "שעון מזרח אירופה (קיץ)", "COT": "שעון קולומביה (חורף)", "HNEG": "שעון מזרח גרינלנד (חורף)", "GYT": "שעון גיאנה", "LHST": "שעון אי הלורד האו (חורף)", "CHAST": "שעון צ׳טהאם (חורף)", "JDT": "שעון יפן (קיץ)", "AKST": "שעון אלסקה (חורף)", "HAST": "שעון האיים האלאוטיים הוואי (חורף)", "CLST": "שעון צ׳ילה (קיץ)", "WAST": "שעון מערב אפריקה (קיץ)", "HEPMX": "שעון מערב מקסיקו (קיץ)", "ACWST": "שעון מרכז-מערב אוסטרליה (חורף)", "BOT": "שעון בוליביה", "EDT": "שעון החוף המזרחי (קיץ)", "HENOMX": "שעון צפון-מערב מקסיקו (קיץ)", "UYST": "שעון אורוגוואי (קיץ)", "PDT": "שעון מערב ארה״ב (קיץ)", "HNT": "שעון ניופאונדלנד (חורף)", "EAT": "שעון מזרח אפריקה", "GMT": "שעון גריניץ׳\u200f", "WIT": "שעון מזרח אינדונזיה", "PST": "שעון מערב ארה״ב (חורף)", "NZST": "שעון ניו זילנד (חורף)", "AEST": "שעון מזרח אוסטרליה (חורף)"},
+ timezones: map[string]string{"∅∅∅": "שעון אמזונס (קיץ)", "EST": "שעון החוף המזרחי (חורף)", "GFT": "שעון גיאנה הצרפתית", "AWDT": "שעון מערב אוסטרליה (קיץ)", "SGT": "שעון סינגפור", "NZST": "שעון ניו זילנד (חורף)", "TMST": "שעון טורקמניסטן (קיץ)", "HKST": "שעון הונג קונג (קיץ)", "HEPM": "שעון סנט פייר ומיקלון (קיץ)", "PDT": "שעון מערב ארה״ב (קיץ)", "HNOG": "שעון מערב גרינלנד (חורף)", "CLT": "שעון צ׳ילה (חורף)", "CLST": "שעון צ׳ילה (קיץ)", "WEZ": "שעון מערב אירופה (חורף)", "MDT": "שעון קיץ מקאו", "AEST": "שעון מזרח אוסטרליה (חורף)", "ChST": "שעון צ׳אמורו", "CAT": "שעון מרכז אפריקה", "ACWDT": "שעון מרכז-מערב אוסטרליה (קיץ)", "TMT": "שעון טורקמניסטן (חורף)", "AKDT": "שעון אלסקה (קיץ)", "HNCU": "שעון קובה (חורף)", "WIB": "שעון מערב אינדונזיה", "CHAST": "שעון צ׳טהאם (חורף)", "OEZ": "שעון מזרח אירופה (חורף)", "LHST": "שעון אי הלורד האו (חורף)", "EAT": "שעון מזרח אפריקה", "ACST": "שעון מרכז אוסטרליה (חורף)", "HAT": "שעון ניופאונדלנד (קיץ)", "WARST": "שעון מערב ארגנטינה (קיץ)", "WAT": "שעון מערב אפריקה (חורף)", "HNEG": "שעון מזרח גרינלנד (חורף)", "WIT": "שעון מזרח אינדונזיה", "CHADT": "שעון צ׳טהאם (קיץ)", "ADT": "שעון האוקיינוס האטלנטי (קיץ)", "COT": "שעון קולומביה (חורף)", "UYT": "שעון אורוגוואי (חורף)", "ACWST": "שעון מרכז-מערב אוסטרליה (חורף)", "VET": "שעון ונצואלה", "AWST": "שעון מערב אוסטרליה (חורף)", "ART": "שעון ארגנטינה (חורף)", "UYST": "שעון אורוגוואי (קיץ)", "WART": "שעון מערב ארגנטינה (חורף)", "ARST": "שעון ארגנטינה (קיץ)", "EDT": "שעון החוף המזרחי (קיץ)", "ACDT": "שעון מרכז אוסטרליה (קיץ)", "HNNOMX": "שעון צפון-מערב מקסיקו (חורף)", "SAST": "שעון דרום אפריקה", "NZDT": "שעון ניו זילנד (קיץ)", "AST": "שעון האוקיינוס האטלנטי (חורף)", "MST": "שעון חורף מקאו", "SRT": "שעון סורינאם", "GYT": "שעון גיאנה", "CST": "שעון מרכז ארה״ב (חורף)", "CDT": "שעון מרכז ארה״ב (קיץ)", "ECT": "שעון אקוודור", "IST": "שעון הודו", "OESZ": "שעון מזרח אירופה (קיץ)", "HNT": "שעון ניופאונדלנד (חורף)", "HEEG": "שעון מזרח גרינלנד (קיץ)", "MEZ": "שעון מרכז אירופה (חורף)", "JDT": "שעון יפן (קיץ)", "HKT": "שעון הונג קונג (חורף)", "MESZ": "שעון מרכז אירופה (קיץ)", "JST": "שעון יפן (חורף)", "HENOMX": "שעון צפון-מערב מקסיקו (קיץ)", "HNPM": "שעון סנט פייר ומיקלון (חורף)", "HEPMX": "שעון מערב מקסיקו (קיץ)", "HEOG": "שעון מערב גרינלנד (קיץ)", "MYT": "שעון מלזיה", "WITA": "שעון מרכז אינדונזיה", "COST": "שעון קולומביה (קיץ)", "BT": "שעון בהוטן", "AEDT": "שעון מזרח אוסטרליה (קיץ)", "HADT": "שעון האיים האלאוטיים הוואי (קיץ)", "GMT": "שעון גריניץ׳\u200f", "HAST": "שעון האיים האלאוטיים הוואי (חורף)", "WESZ": "שעון מערב אירופה (קיץ)", "WAST": "שעון מערב אפריקה (קיץ)", "AKST": "שעון אלסקה (חורף)", "LHDT": "שעון אי הלורד האו (קיץ)", "HNPMX": "שעון מערב מקסיקו (חורף)", "BOT": "שעון בוליביה", "PST": "שעון מערב ארה״ב (חורף)", "HECU": "שעון קובה (קיץ)"},
}
}
diff --git a/he_IL/he_IL.go b/he_IL/he_IL.go
index 6d5da2ff..0a4ff0e2 100644
--- a/he_IL/he_IL.go
+++ b/he_IL/he_IL.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"לפנה״ס", "לספירה"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"AEDT": "שעון מזרח אוסטרליה (קיץ)", "LHDT": "שעון אי הלורד האו (קיץ)", "WAT": "שעון מערב אפריקה (חורף)", "HENOMX": "שעון צפון-מערב מקסיקו (קיץ)", "WESZ": "שעון מערב אירופה (קיץ)", "WITA": "שעון מרכז אינדונזיה", "AEST": "שעון מזרח אוסטרליה (חורף)", "WARST": "שעון מערב ארגנטינה (קיץ)", "GMT": "שעון גריניץ׳\u200f", "HADT": "שעון האיים האלאוטיים הוואי (קיץ)", "PDT": "שעון מערב ארה״ב (קיץ)", "NZDT": "שעון ניו זילנד (קיץ)", "ACDT": "שעון מרכז אוסטרליה (קיץ)", "COST": "שעון קולומביה (קיץ)", "HNCU": "שעון קובה (חורף)", "HNPMX": "שעון מערב מקסיקו (חורף)", "HAST": "שעון האיים האלאוטיים הוואי (חורף)", "OESZ": "שעון מזרח אירופה (קיץ)", "CDT": "שעון מרכז ארה״ב (קיץ)", "UYST": "שעון אורוגוואי (קיץ)", "CHAST": "שעון צ׳טהאם (חורף)", "NZST": "שעון ניו זילנד (חורף)", "ADT": "שעון האוקיינוס האטלנטי (קיץ)", "GYT": "שעון גיאנה", "WIT": "שעון מזרח אינדונזיה", "SRT": "שעון סורינאם", "CHADT": "שעון צ׳טהאם (קיץ)", "LHST": "שעון אי הלורד האו (חורף)", "WAST": "שעון מערב אפריקה (קיץ)", "COT": "שעון קולומביה (חורף)", "UYT": "שעון אורוגוואי (חורף)", "AKST": "שעון אלסקה (חורף)", "AWDT": "שעון מערב אוסטרליה (קיץ)", "BOT": "שעון בוליביה", "OEZ": "שעון מזרח אירופה (חורף)", "SGT": "שעון סינגפור", "MST": "שעון חורף מקאו", "AKDT": "שעון אלסקה (קיץ)", "HEOG": "שעון מערב גרינלנד (קיץ)", "MDT": "שעון קיץ מקאו", "ART": "שעון ארגנטינה (חורף)", "MEZ": "שעון מרכז אירופה (חורף)", "SAST": "שעון דרום אפריקה", "IST": "שעון הודו", "JST": "שעון יפן (חורף)", "EAT": "שעון מזרח אפריקה", "EDT": "שעון החוף המזרחי (קיץ)", "CLST": "שעון צ׳ילה (קיץ)", "TMT": "שעון טורקמניסטן (חורף)", "HEPMX": "שעון מערב מקסיקו (קיץ)", "HKT": "שעון הונג קונג (חורף)", "HEPM": "שעון סנט פייר ומיקלון (קיץ)", "TMST": "שעון טורקמניסטן (קיץ)", "ACST": "שעון מרכז אוסטרליה (חורף)", "CAT": "שעון מרכז אפריקה", "VET": "שעון ונצואלה", "ACWST": "שעון מרכז-מערב אוסטרליה (חורף)", "WEZ": "שעון מערב אירופה (חורף)", "ACWDT": "שעון מרכז-מערב אוסטרליה (קיץ)", "HNPM": "שעון סנט פייר ומיקלון (חורף)", "WART": "שעון מערב ארגנטינה (חורף)", "HNNOMX": "שעון צפון-מערב מקסיקו (חורף)", "EST": "שעון החוף המזרחי (חורף)", "HNT": "שעון ניופאונדלנד (חורף)", "ARST": "שעון ארגנטינה (קיץ)", "CLT": "שעון צ׳ילה (חורף)", "HEEG": "שעון מזרח גרינלנד (קיץ)", "HECU": "שעון קובה (קיץ)", "HAT": "שעון ניופאונדלנד (קיץ)", "AST": "שעון האוקיינוס האטלנטי (חורף)", "BT": "שעון בהוטן", "PST": "שעון מערב ארה״ב (חורף)", "AWST": "שעון מערב אוסטרליה (חורף)", "MESZ": "שעון מרכז אירופה (קיץ)", "JDT": "שעון יפן (קיץ)", "∅∅∅": "שעון אמזונס (קיץ)", "ChST": "שעון צ׳אמורו", "ECT": "שעון אקוודור", "HNOG": "שעון מערב גרינלנד (חורף)", "GFT": "שעון גיאנה הצרפתית", "HNEG": "שעון מזרח גרינלנד (חורף)", "CST": "שעון מרכז ארה״ב (חורף)", "MYT": "שעון מלזיה", "WIB": "שעון מערב אינדונזיה", "HKST": "שעון הונג קונג (קיץ)"},
+ timezones: map[string]string{"COT": "שעון קולומביה (חורף)", "LHST": "שעון אי הלורד האו (חורף)", "PDT": "שעון מערב ארה״ב (קיץ)", "ARST": "שעון ארגנטינה (קיץ)", "WESZ": "שעון מערב אירופה (קיץ)", "OESZ": "שעון מזרח אירופה (קיץ)", "HNEG": "שעון מזרח גרינלנד (חורף)", "ChST": "שעון צ׳אמורו", "CST": "שעון מרכז ארה״ב (חורף)", "HEEG": "שעון מזרח גרינלנד (קיץ)", "WIB": "שעון מערב אינדונזיה", "ACWST": "שעון מרכז-מערב אוסטרליה (חורף)", "JST": "שעון יפן (חורף)", "WART": "שעון מערב ארגנטינה (חורף)", "OEZ": "שעון מזרח אירופה (חורף)", "HNT": "שעון ניופאונדלנד (חורף)", "HNCU": "שעון קובה (חורף)", "ECT": "שעון אקוודור", "PST": "שעון מערב ארה״ב (חורף)", "CLT": "שעון צ׳ילה (חורף)", "ADT": "שעון האוקיינוס האטלנטי (קיץ)", "ART": "שעון ארגנטינה (חורף)", "EST": "שעון החוף המזרחי (חורף)", "HNPM": "שעון סנט פייר ומיקלון (חורף)", "GYT": "שעון גיאנה", "EAT": "שעון מזרח אפריקה", "AKDT": "שעון אלסקה (קיץ)", "HEPM": "שעון סנט פייר ומיקלון (קיץ)", "WARST": "שעון מערב ארגנטינה (קיץ)", "CHAST": "שעון צ׳טהאם (חורף)", "WAT": "שעון מערב אפריקה (חורף)", "HENOMX": "שעון צפון-מערב מקסיקו (קיץ)", "ACDT": "שעון מרכז אוסטרליה (קיץ)", "BT": "שעון בהוטן", "AEST": "שעון מזרח אוסטרליה (חורף)", "AKST": "שעון אלסקה (חורף)", "UYT": "שעון אורוגוואי (חורף)", "MEZ": "שעון מרכז אירופה (חורף)", "MESZ": "שעון מרכז אירופה (קיץ)", "WEZ": "שעון מערב אירופה (חורף)", "HNOG": "שעון מערב גרינלנד (חורף)", "AST": "שעון האוקיינוס האטלנטי (חורף)", "COST": "שעון קולומביה (קיץ)", "MDT": "שעון אזור ההרים בארה״ב (קיץ)", "WITA": "שעון מרכז אינדונזיה", "SRT": "שעון סורינאם", "SGT": "שעון סינגפור", "JDT": "שעון יפן (קיץ)", "TMST": "שעון טורקמניסטן (קיץ)", "WAST": "שעון מערב אפריקה (קיץ)", "EDT": "שעון החוף המזרחי (קיץ)", "HAT": "שעון ניופאונדלנד (קיץ)", "LHDT": "שעון אי הלורד האו (קיץ)", "CDT": "שעון מרכז ארה״ב (קיץ)", "HNNOMX": "שעון צפון-מערב מקסיקו (חורף)", "HKST": "שעון הונג קונג (קיץ)", "MST": "שעון אזור ההרים בארה״ב (חורף)", "HADT": "שעון האיים האלאוטיים הוואי (קיץ)", "TMT": "שעון טורקמניסטן (חורף)", "ACST": "שעון מרכז אוסטרליה (חורף)", "AWDT": "שעון מערב אוסטרליה (קיץ)", "BOT": "שעון בוליביה", "GMT": "שעון גריניץ׳\u200f", "SAST": "שעון דרום אפריקה", "CAT": "שעון מרכז אפריקה", "HKT": "שעון הונג קונג (חורף)", "HECU": "שעון קובה (קיץ)", "WIT": "שעון מזרח אינדונזיה", "AWST": "שעון מערב אוסטרליה (חורף)", "CHADT": "שעון צ׳טהאם (קיץ)", "HAST": "שעון האיים האלאוטיים הוואי (חורף)", "∅∅∅": "∅∅∅", "GFT": "שעון גיאנה הצרפתית", "HEPMX": "שעון מערב מקסיקו (קיץ)", "HEOG": "שעון מערב גרינלנד (קיץ)", "IST": "שעון הודו", "VET": "שעון ונצואלה", "CLST": "שעון צ׳ילה (קיץ)", "UYST": "שעון אורוגוואי (קיץ)", "HNPMX": "שעון מערב מקסיקו (חורף)", "NZDT": "שעון ניו זילנד (קיץ)", "MYT": "שעון מלזיה", "AEDT": "שעון מזרח אוסטרליה (קיץ)", "ACWDT": "שעון מרכז-מערב אוסטרליה (קיץ)", "NZST": "שעון ניו זילנד (חורף)"},
}
}
diff --git a/hi/hi.go b/hi/hi.go
index 78da528d..81882402 100644
--- a/hi/hi.go
+++ b/hi/hi.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ईसा-पूर्व", "ईस्वी"},
erasNarrow: []string{"", ""},
erasWide: []string{"ईसा-पूर्व", "ईसवी सन"},
- timezones: map[string]string{"MST": "MST", "MDT": "MDT", "WIT": "पूर्वी इंडोनेशिया समय", "ART": "अर्जेंटीना मानक समय", "HNEG": "पूर्वी ग्रीनलैंड मानक समय", "TMT": "तुर्कमेनिस्तान मानक समय", "COT": "कोलंबिया मानक समय", "HAST": "हवाई–आल्यूशन मानक समय", "WESZ": "पश्चिमी यूरोपीय ग्रीष्\u200dमकालीन समय", "ACWST": "ऑस्\u200dट्रेलियाई केंद्रीय पश्चिमी मानक समय", "HEEG": "पूर्वी ग्रीनलैंड ग्रीष्मकालीन समय", "LHST": "लॉर्ड होवे मानक समय", "EST": "उत्तरी अमेरिकी पूर्वी मानक समय", "CST": "उत्तरी अमेरिकी केंद्रीय मानक समय", "GYT": "गुयाना समय", "WIB": "पश्चिमी इंडोनेशिया समय", "SRT": "सूरीनाम समय", "PST": "उत्तरी अमेरिकी प्रशांत मानक समय", "WEZ": "पश्चिमी यूरोपीय मानक समय", "NZST": "न्यूज़ीलैंड मानक समय", "ChST": "चामोरो मानक समय", "HEPMX": "मेक्सिकन प्रशांत डेलाइट समय", "CHAST": "चैथम मानक समय", "IST": "भारतीय मानक समय", "CLST": "चिली ग्रीष्मकालीन समय", "JDT": "जापान डेलाइट समय", "ECT": "इक्वाडोर समय", "UYT": "उरुग्वे मानक समय", "AEDT": "ऑस्\u200dट्रेलियाई पूर्वी डेलाइट समय", "CLT": "चिली मानक समय", "GFT": "फ़्रेंच गुयाना समय", "ACDT": "ऑस्\u200dट्रेलियाई केंद्रीय डेलाइट समय", "CDT": "उत्तरी अमेरिकी केंद्रीय डेलाइट समय", "AWDT": "ऑस्ट्रेलियाई पश्चिमी डेलाइट समय", "SAST": "दक्षिण अफ़्रीका समय", "JST": "जापान मानक समय", "TMST": "तुर्कमेनिस्तान ग्रीष्मकालीन समय", "HEPM": "सेंट पियरे और मिकेलान डेलाइट समय", "CAT": "मध्य अफ़्रीका समय", "WART": "पश्चिमी अर्जेंटीना मानक समय", "ARST": "अर्जेंटीना ग्रीष्मकालीन समय", "HKST": "हाँग काँग ग्रीष्मकालीन समय", "MESZ": "मध्\u200dय यूरोपीय ग्रीष्\u200dमकालीन समय", "LHDT": "लॉर्ड होवे डेलाइट समय", "WAT": "पश्चिम अफ़्रीका मानक समय", "HADT": "हवाई–आल्यूशन डेलाइट समय", "ACWDT": "ऑस्\u200dट्रेलियाई केंद्रीय पश्चिमी डेलाइट समय", "HNOG": "पश्चिमी ग्रीनलैंड मानक समय", "WITA": "मध्य इंडोनेशिया समय", "∅∅∅": "अमेज़न ग्रीष्मकालीन समय", "EAT": "पूर्वी अफ़्रीका समय", "HENOMX": "उत्तर पश्चिमी मेक्सिको डेलाइट समय", "AEST": "ऑस्\u200dट्रेलियाई पूर्वी मानक समय", "AKST": "अलास्\u200dका मानक समय", "MYT": "मलेशिया समय", "PDT": "उत्तरी अमेरिकी प्रशांत डेलाइट समय", "HAT": "न्यूफ़ाउंडलैंड डेलाइट समय", "EDT": "उत्तरी अमेरिकी पूर्वी डेलाइट समय", "HNPMX": "मेक्सिकन प्रशांत मानक समय", "HKT": "हाँग काँग मानक समय", "MEZ": "मध्य यूरोपीय मानक समय", "OEZ": "पूर्वी यूरोपीय मानक समय", "OESZ": "पूर्वी यूरोपीय ग्रीष्मकालीन समय", "SGT": "सिंगापुर समय", "AST": "अटलांटिक मानक समय", "CHADT": "चैथम डेलाइट समय", "BOT": "बोलीविया समय", "GMT": "ग्रीनविच मीन टाइम", "ADT": "अटलांटिक डेलाइट समय", "VET": "वेनेज़ुएला समय", "COST": "कोलंबिया ग्रीष्मकालीन समय", "HNNOMX": "उत्तर पश्चिमी मेक्सिको मानक समय", "UYST": "उरुग्वे ग्रीष्मकालीन समय", "BT": "भूटान समय", "HNT": "न्यूफ़ाउंडलैंड मानक समय", "NZDT": "न्यूज़ीलैंड डेलाइट समय", "WARST": "पश्चिमी अर्जेंटीना ग्रीष्मकालीन समय", "HNCU": "क्यूबा मानक समय", "HECU": "क्यूबा डेलाइट समय", "AKDT": "अलास्\u200dका डेलाइट समय", "HEOG": "पश्चिमी ग्रीनलैंड ग्रीष्मकालीन समय", "AWST": "ऑस्ट्रेलियाई पश्चिमी मानक समय", "HNPM": "सेंट पियरे और मिकेलान मानक समय", "ACST": "ऑस्\u200dट्रेलियाई केंद्रीय मानक समय", "WAST": "पश्चिम अफ़्रीका ग्रीष्मकालीन समय"},
+ timezones: map[string]string{"ECT": "इक्वाडोर समय", "HAST": "हवाई–आल्यूशन मानक समय", "WART": "पश्चिमी अर्जेंटीना मानक समय", "HEPMX": "मेक्सिकन प्रशांत डेलाइट समय", "AWDT": "ऑस्ट्रेलियाई पश्चिमी डेलाइट समय", "BOT": "बोलीविया समय", "TMST": "तुर्कमेनिस्तान ग्रीष्मकालीन समय", "AEDT": "ऑस्\u200dट्रेलियाई पूर्वी डेलाइट समय", "UYST": "उरुग्वे ग्रीष्मकालीन समय", "CLT": "चिली मानक समय", "TMT": "तुर्कमेनिस्तान मानक समय", "ACST": "ऑस्\u200dट्रेलियाई केंद्रीय मानक समय", "HNEG": "पूर्वी ग्रीनलैंड मानक समय", "EAT": "पूर्वी अफ़्रीका समय", "WIT": "पूर्वी इंडोनेशिया समय", "MDT": "MDT", "EST": "उत्तरी अमेरिकी पूर्वी मानक समय", "AST": "अटलांटिक मानक समय", "ART": "अर्जेंटीना मानक समय", "BT": "भूटान समय", "LHST": "लॉर्ड होवे मानक समय", "JST": "जापान मानक समय", "HEOG": "पश्चिमी ग्रीनलैंड ग्रीष्मकालीन समय", "AKST": "अलास्\u200dका मानक समय", "ChST": "चामोरो मानक समय", "GYT": "गुयाना समय", "HADT": "हवाई–आल्यूशन डेलाइट समय", "OESZ": "पूर्वी यूरोपीय ग्रीष्मकालीन समय", "HENOMX": "उत्तर पश्चिमी मेक्सिको डेलाइट समय", "GFT": "फ़्रेंच गुयाना समय", "WIB": "पश्चिमी इंडोनेशिया समय", "CAT": "मध्य अफ़्रीका समय", "WAT": "पश्चिम अफ़्रीका मानक समय", "IST": "भारतीय मानक समय", "ACWST": "ऑस्\u200dट्रेलियाई केंद्रीय पश्चिमी मानक समय", "JDT": "जापान डेलाइट समय", "ARST": "अर्जेंटीना ग्रीष्मकालीन समय", "AWST": "ऑस्ट्रेलियाई पश्चिमी मानक समय", "∅∅∅": "अमेज़न ग्रीष्मकालीन समय", "HNT": "न्यूफ़ाउंडलैंड मानक समय", "AKDT": "अलास्\u200dका डेलाइट समय", "HEPM": "सेंट पियरे और मिकेलान डेलाइट समय", "MESZ": "मध्\u200dय यूरोपीय ग्रीष्\u200dमकालीन समय", "OEZ": "पूर्वी यूरोपीय मानक समय", "GMT": "ग्रीनविच मीन टाइम", "HKT": "हाँग काँग मानक समय", "WITA": "मध्य इंडोनेशिया समय", "HNPM": "सेंट पियरे और मिकेलान मानक समय", "CHAST": "चैथम मानक समय", "WEZ": "पश्चिमी यूरोपीय मानक समय", "ADT": "अटलांटिक डेलाइट समय", "EDT": "उत्तरी अमेरिकी पूर्वी डेलाइट समय", "CST": "उत्तरी अमेरिकी केंद्रीय मानक समय", "NZST": "न्यूज़ीलैंड मानक समय", "NZDT": "न्यूज़ीलैंड डेलाइट समय", "WAST": "पश्चिम अफ़्रीका ग्रीष्मकालीन समय", "ACDT": "ऑस्\u200dट्रेलियाई केंद्रीय डेलाइट समय", "HAT": "न्यूफ़ाउंडलैंड डेलाइट समय", "HEEG": "पूर्वी ग्रीनलैंड ग्रीष्मकालीन समय", "SGT": "सिंगापुर समय", "PDT": "उत्तरी अमेरिकी प्रशांत डेलाइट समय", "AEST": "ऑस्\u200dट्रेलियाई पूर्वी मानक समय", "LHDT": "लॉर्ड होवे डेलाइट समय", "ACWDT": "ऑस्\u200dट्रेलियाई केंद्रीय पश्चिमी डेलाइट समय", "WESZ": "पश्चिमी यूरोपीय ग्रीष्\u200dमकालीन समय", "COT": "कोलंबिया मानक समय", "HNCU": "क्यूबा मानक समय", "CLST": "चिली ग्रीष्मकालीन समय", "MST": "MST", "WARST": "पश्चिमी अर्जेंटीना ग्रीष्मकालीन समय", "MYT": "मलेशिया समय", "HNNOMX": "उत्तर पश्चिमी मेक्सिको मानक समय", "UYT": "उरुग्वे मानक समय", "HECU": "क्यूबा डेलाइट समय", "CHADT": "चैथम डेलाइट समय", "MEZ": "मध्य यूरोपीय मानक समय", "COST": "कोलंबिया ग्रीष्मकालीन समय", "SAST": "दक्षिण अफ़्रीका समय", "SRT": "सूरीनाम समय", "PST": "उत्तरी अमेरिकी प्रशांत मानक समय", "HNOG": "पश्चिमी ग्रीनलैंड मानक समय", "HNPMX": "मेक्सिकन प्रशांत मानक समय", "CDT": "उत्तरी अमेरिकी केंद्रीय डेलाइट समय", "VET": "वेनेज़ुएला समय", "HKST": "हाँग काँग ग्रीष्मकालीन समय"},
}
}
diff --git a/hi_IN/hi_IN.go b/hi_IN/hi_IN.go
index 2b68742d..6815f83f 100644
--- a/hi_IN/hi_IN.go
+++ b/hi_IN/hi_IN.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ईसा-पूर्व", "ईस्वी"},
erasNarrow: []string{"", ""},
erasWide: []string{"ईसा-पूर्व", "ईसवी सन"},
- timezones: map[string]string{"WAST": "पश्चिम अफ़्रीका ग्रीष्मकालीन समय", "COT": "कोलंबिया मानक समय", "AWST": "ऑस्ट्रेलियाई पश्चिमी मानक समय", "JDT": "जापान डेलाइट समय", "HNPMX": "मेक्सिकन प्रशांत मानक समय", "HNT": "न्यूफ़ाउंडलैंड मानक समय", "HKST": "हाँग काँग ग्रीष्मकालीन समय", "AEST": "ऑस्\u200dट्रेलियाई पूर्वी मानक समय", "MEZ": "मध्य यूरोपीय मानक समय", "MESZ": "मध्\u200dय यूरोपीय ग्रीष्\u200dमकालीन समय", "LHDT": "लॉर्ड होवे डेलाइट समय", "HNEG": "पूर्वी ग्रीनलैंड मानक समय", "CAT": "मध्य अफ़्रीका समय", "AST": "अटलांटिक मानक समय", "WIB": "पश्चिमी इंडोनेशिया समय", "HECU": "क्यूबा डेलाइट समय", "WIT": "पूर्वी इंडोनेशिया समय", "AEDT": "ऑस्\u200dट्रेलियाई पूर्वी डेलाइट समय", "AWDT": "ऑस्ट्रेलियाई पश्चिमी डेलाइट समय", "ARST": "अर्जेंटीना ग्रीष्मकालीन समय", "∅∅∅": "पेरू ग्रीष्मकालीन समय", "WART": "पश्चिमी अर्जेंटीना मानक समय", "CDT": "उत्तरी अमेरिकी केंद्रीय डेलाइट समय", "ART": "अर्जेंटीना मानक समय", "SRT": "सूरीनाम समय", "NZDT": "न्यूज़ीलैंड डेलाइट समय", "WARST": "पश्चिमी अर्जेंटीना ग्रीष्मकालीन समय", "MYT": "मलेशिया समय", "UYT": "उरुग्वे मानक समय", "HADT": "हवाई–आल्यूशन डेलाइट समय", "AKST": "अलास्\u200dका मानक समय", "AKDT": "अलास्\u200dका डेलाइट समय", "HNPM": "सेंट पियरे और मिकेलान मानक समय", "LHST": "लॉर्ड होवे मानक समय", "BOT": "बोलीविया समय", "UYST": "उरुग्वे ग्रीष्मकालीन समय", "HAT": "न्यूफ़ाउंडलैंड डेलाइट समय", "ACWDT": "ऑस्\u200dट्रेलियाई केंद्रीय पश्चिमी डेलाइट समय", "ACWST": "ऑस्\u200dट्रेलियाई केंद्रीय पश्चिमी मानक समय", "TMST": "तुर्कमेनिस्तान ग्रीष्मकालीन समय", "OESZ": "पूर्वी यूरोपीय ग्रीष्मकालीन समय", "SGT": "सिंगापुर समय", "ADT": "अटलांटिक डेलाइट समय", "WEZ": "पश्चिमी यूरोपीय मानक समय", "HEPM": "सेंट पियरे और मिकेलान डेलाइट समय", "IST": "भारतीय मानक समय", "CLST": "चिली ग्रीष्मकालीन समय", "GFT": "फ़्रेंच गुयाना समय", "ECT": "इक्वाडोर समय", "HNCU": "क्यूबा मानक समय", "BT": "भूटान समय", "EST": "उत्तरी अमेरिकी पूर्वी मानक समय", "MDT": "MDT", "CST": "उत्तरी अमेरिकी केंद्रीय मानक समय", "HNOG": "पश्चिमी ग्रीनलैंड मानक समय", "HEEG": "पूर्वी ग्रीनलैंड ग्रीष्मकालीन समय", "ACDT": "ऑस्\u200dट्रेलियाई केंद्रीय डेलाइट समय", "EAT": "पूर्वी अफ़्रीका समय", "HEPMX": "मेक्सिकन प्रशांत डेलाइट समय", "PDT": "उत्तरी अमेरिकी प्रशांत डेलाइट समय", "CHADT": "चैथम डेलाइट समय", "HKT": "हाँग काँग मानक समय", "ChST": "चामोरो मानक समय", "EDT": "उत्तरी अमेरिकी पूर्वी डेलाइट समय", "MST": "MST", "WESZ": "पश्चिमी यूरोपीय ग्रीष्\u200dमकालीन समय", "HNNOMX": "उत्तर पश्चिमी मेक्सिको मानक समय", "HAST": "हवाई–आल्यूशन मानक समय", "VET": "वेनेज़ुएला समय", "CLT": "चिली मानक समय", "GMT": "ग्रीनविच मीन टाइम", "GYT": "गुयाना समय", "HEOG": "पश्चिमी ग्रीनलैंड ग्रीष्मकालीन समय", "TMT": "तुर्कमेनिस्तान मानक समय", "OEZ": "पूर्वी यूरोपीय मानक समय", "HENOMX": "उत्तर पश्चिमी मेक्सिको डेलाइट समय", "COST": "कोलंबिया ग्रीष्मकालीन समय", "NZST": "न्यूज़ीलैंड मानक समय", "CHAST": "चैथम मानक समय", "SAST": "दक्षिण अफ़्रीका समय", "JST": "जापान मानक समय", "ACST": "ऑस्\u200dट्रेलियाई केंद्रीय मानक समय", "WAT": "पश्चिम अफ़्रीका मानक समय", "PST": "उत्तरी अमेरिकी प्रशांत मानक समय", "WITA": "मध्य इंडोनेशिया समय"},
+ timezones: map[string]string{"HNCU": "क्यूबा मानक समय", "AWST": "ऑस्ट्रेलियाई पश्चिमी मानक समय", "TMT": "तुर्कमेनिस्तान मानक समय", "ACST": "ऑस्\u200dट्रेलियाई केंद्रीय मानक समय", "COST": "कोलंबिया ग्रीष्मकालीन समय", "HEPMX": "मेक्सिकन प्रशांत डेलाइट समय", "HECU": "क्यूबा डेलाइट समय", "AWDT": "ऑस्ट्रेलियाई पश्चिमी डेलाइट समय", "PDT": "उत्तरी अमेरिकी प्रशांत डेलाइट समय", "MDT": "MDT", "AEDT": "ऑस्\u200dट्रेलियाई पूर्वी डेलाइट समय", "LHST": "लॉर्ड होवे मानक समय", "JDT": "जापान डेलाइट समय", "WAT": "पश्चिम अफ़्रीका मानक समय", "HENOMX": "उत्तर पश्चिमी मेक्सिको डेलाइट समय", "HEPM": "सेंट पियरे और मिकेलान डेलाइट समय", "CLT": "चिली मानक समय", "OESZ": "पूर्वी यूरोपीय ग्रीष्मकालीन समय", "TMST": "तुर्कमेनिस्तान ग्रीष्मकालीन समय", "HNNOMX": "उत्तर पश्चिमी मेक्सिको मानक समय", "EDT": "उत्तरी अमेरिकी पूर्वी डेलाइट समय", "GFT": "फ़्रेंच गुयाना समय", "SRT": "सूरीनाम समय", "EAT": "पूर्वी अफ़्रीका समय", "VET": "वेनेज़ुएला समय", "WARST": "पश्चिमी अर्जेंटीना ग्रीष्मकालीन समय", "CLST": "चिली ग्रीष्मकालीन समय", "MST": "MST", "SGT": "सिंगापुर समय", "CAT": "मध्य अफ़्रीका समय", "WEZ": "पश्चिमी यूरोपीय मानक समय", "HKT": "हाँग काँग मानक समय", "BOT": "बोलीविया समय", "AKDT": "अलास्\u200dका डेलाइट समय", "UYST": "उरुग्वे ग्रीष्मकालीन समय", "ACDT": "ऑस्\u200dट्रेलियाई केंद्रीय डेलाइट समय", "HEEG": "पूर्वी ग्रीनलैंड ग्रीष्मकालीन समय", "HNT": "न्यूफ़ाउंडलैंड मानक समय", "AKST": "अलास्\u200dका मानक समय", "COT": "कोलंबिया मानक समय", "MESZ": "मध्\u200dय यूरोपीय ग्रीष्\u200dमकालीन समय", "WESZ": "पश्चिमी यूरोपीय ग्रीष्\u200dमकालीन समय", "OEZ": "पूर्वी यूरोपीय मानक समय", "EST": "उत्तरी अमेरिकी पूर्वी मानक समय", "CST": "उत्तरी अमेरिकी केंद्रीय मानक समय", "WIT": "पूर्वी इंडोनेशिया समय", "PST": "उत्तरी अमेरिकी प्रशांत मानक समय", "∅∅∅": "अमेज़न ग्रीष्मकालीन समय", "HNPM": "सेंट पियरे और मिकेलान मानक समय", "LHDT": "लॉर्ड होवे डेलाइट समय", "JST": "जापान मानक समय", "WART": "पश्चिमी अर्जेंटीना मानक समय", "HNOG": "पश्चिमी ग्रीनलैंड मानक समय", "HNEG": "पूर्वी ग्रीनलैंड मानक समय", "ChST": "चामोरो मानक समय", "WIB": "पश्चिमी इंडोनेशिया समय", "CHADT": "चैथम डेलाइट समय", "HADT": "हवाई–आल्यूशन डेलाइट समय", "NZDT": "न्यूज़ीलैंड डेलाइट समय", "GMT": "ग्रीनविच मीन टाइम", "MYT": "मलेशिया समय", "WITA": "मध्य इंडोनेशिया समय", "HAST": "हवाई–आल्यूशन मानक समय", "NZST": "न्यूज़ीलैंड मानक समय", "IST": "भारतीय मानक समय", "AST": "अटलांटिक मानक समय", "ECT": "इक्वाडोर समय", "MEZ": "मध्य यूरोपीय मानक समय", "WAST": "पश्चिम अफ़्रीका ग्रीष्मकालीन समय", "HNPMX": "मेक्सिकन प्रशांत मानक समय", "HAT": "न्यूफ़ाउंडलैंड डेलाइट समय", "SAST": "दक्षिण अफ़्रीका समय", "GYT": "गुयाना समय", "ART": "अर्जेंटीना मानक समय", "ARST": "अर्जेंटीना ग्रीष्मकालीन समय", "HKST": "हाँग काँग ग्रीष्मकालीन समय", "BT": "भूटान समय", "ACWDT": "ऑस्\u200dट्रेलियाई केंद्रीय पश्चिमी डेलाइट समय", "ADT": "अटलांटिक डेलाइट समय", "AEST": "ऑस्\u200dट्रेलियाई पूर्वी मानक समय", "CDT": "उत्तरी अमेरिकी केंद्रीय डेलाइट समय", "ACWST": "ऑस्\u200dट्रेलियाई केंद्रीय पश्चिमी मानक समय", "HEOG": "पश्चिमी ग्रीनलैंड ग्रीष्मकालीन समय", "UYT": "उरुग्वे मानक समय", "CHAST": "चैथम मानक समय"},
}
}
diff --git a/hr/hr.go b/hr/hr.go
index 5fa3fc05..3c4cea7a 100644
--- a/hr/hr.go
+++ b/hr/hr.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"pr. Kr.", "po. Kr."},
erasNarrow: []string{"pr.n.e.", "AD"},
erasWide: []string{"prije Krista", "poslije Krista"},
- timezones: map[string]string{"HADT": "havajsko-aleutsko ljetno vrijeme", "WESZ": "zapadnoeuropsko ljetno vrijeme", "SAST": "južnoafričko vrijeme", "IST": "indijsko vrijeme", "TMST": "turkmenistansko ljetno vrijeme", "EST": "istočno standardno vrijeme", "HEPMX": "meksičko pacifičko ljetno vrijeme", "SRT": "surinamsko vrijeme", "NZDT": "novozelandsko ljetno vrijeme", "UYST": "urugvajsko ljetno vrijeme", "COT": "kolumbijsko standardno vrijeme", "EDT": "istočno ljetno vrijeme", "GYT": "gvajansko vrijeme", "LHST": "standardno vrijeme otoka Lord Howe", "JDT": "japansko ljetno vrijeme", "GMT": "univerzalno vrijeme", "AKST": "aljaško standardno vrijeme", "CST": "središnje standardno vrijeme", "GFT": "vrijeme Francuske Gvajane", "WART": "zapadno-argentinsko standardno vrijeme", "WARST": "zapadno-argentinsko ljetno vrijeme", "WEZ": "zapadnoeuropsko standardno vrijeme", "ECT": "ekvadorsko vrijeme", "CDT": "središnje ljetno vrijeme", "HAT": "newfoundlandsko ljetno vrijeme", "∅∅∅": "amazonsko ljetno vrijeme", "SGT": "singapursko vrijeme", "AKDT": "aljaško ljetno vrijeme", "MYT": "malezijsko vrijeme", "ACWDT": "australsko središnje zapadno ljetno vrijeme", "WITA": "srednjoindonezijsko vrijeme", "MEZ": "srednjoeuropsko standardno vrijeme", "CHADT": "ljetno vrijeme Chathama", "JST": "japansko standardno vrijeme", "EAT": "istočnoafričko vrijeme", "HENOMX": "sjeverozapadno meksičko ljetno vrijeme", "UYT": "urugvajsko standardno vrijeme", "AST": "atlantsko standardno vrijeme", "ART": "argentinsko standardno vrijeme", "AEST": "istočnoaustralsko standardno vrijeme", "MESZ": "srednjoeuropsko ljetno vrijeme", "NZST": "novozelandsko standardno vrijeme", "CLST": "čileansko ljetno vrijeme", "TMT": "turkmenistansko standardno vrijeme", "CAT": "srednjoafričko vrijeme", "WIT": "istočnoindonezijsko vrijeme", "ARST": "argentinsko ljetno vrijeme", "AWST": "zapadnoaustralsko standardno vrijeme", "ACDT": "srednjoaustralsko ljetno vrijeme", "HNPM": "standardno vrijeme za Sveti Petar i Mikelon", "CHAST": "standardno vrijeme Chathama", "HNEG": "istočnogrenlandsko standardno vrijeme", "WAST": "zapadnoafričko ljetno vrijeme", "OESZ": "istočnoeuropsko ljetno vrijeme", "ADT": "atlantsko ljetno vrijeme", "WIB": "zapadnoindonezijsko vrijeme", "HNT": "newfoundlandsko standardno vrijeme", "HEOG": "zapadnogrenlandsko ljetno vrijeme", "LHDT": "ljetno vrijeme otoka Lord Howe", "ChST": "standardno vrijeme Chamorra", "HEEG": "istočnogrenlandsko ljetno vrijeme", "HNCU": "kubansko standardno vrijeme", "VET": "venezuelsko vrijeme", "BT": "butansko vrijeme", "HEPM": "ljetno vrijeme za Sveti Petar i Mikelon", "ACST": "srednjoaustralsko standardno vrijeme", "WAT": "zapadnoafričko standardno vrijeme", "COST": "kolumbijsko ljetno vrijeme", "HAST": "havajsko-aleutsko standardno vrijeme", "HKST": "hongkonško ljetno vrijeme", "CLT": "čileansko standardno vrijeme", "HNNOMX": "sjeverozapadno meksičko standardno vrijeme", "MST": "standardno makaosko vrijeme", "HECU": "kubansko ljetno vrijeme", "PDT": "pacifičko ljetno vrijeme", "ACWST": "australsko središnje zapadno standardno vrijeme", "HNOG": "zapadnogrenlandsko standardno vrijeme", "AEDT": "istočnoaustralsko ljetno vrijeme", "AWDT": "zapadnoaustralsko ljetno vrijeme", "BOT": "bolivijsko vrijeme", "OEZ": "istočnoeuropsko standardno vrijeme", "HNPMX": "meksičko pacifičko standardno vrijeme", "PST": "pacifičko standardno vrijeme", "HKT": "hongkonško standardno vrijeme", "MDT": "ljetno makaosko vrijeme"},
+ timezones: map[string]string{"AWST": "zapadnoaustralsko standardno vrijeme", "HEOG": "zapadnogrenlandsko ljetno vrijeme", "OESZ": "istočnoeuropsko ljetno vrijeme", "HKT": "hongkonško standardno vrijeme", "SAST": "južnoafričko vrijeme", "IST": "indijsko vrijeme", "HNOG": "zapadnogrenlandsko standardno vrijeme", "ARST": "argentinsko ljetno vrijeme", "JST": "japansko standardno vrijeme", "JDT": "japansko ljetno vrijeme", "ADT": "atlantsko ljetno vrijeme", "AST": "atlantsko standardno vrijeme", "WEZ": "zapadnoeuropsko standardno vrijeme", "ART": "argentinsko standardno vrijeme", "HNPMX": "meksičko pacifičko standardno vrijeme", "HAST": "havajsko-aleutsko standardno vrijeme", "MEZ": "srednjoeuropsko standardno vrijeme", "CHAST": "standardno vrijeme Chathama", "PST": "pacifičko standardno vrijeme", "HADT": "havajsko-aleutsko ljetno vrijeme", "CAT": "srednjoafričko vrijeme", "ACWDT": "australsko središnje zapadno ljetno vrijeme", "HNNOMX": "sjeverozapadno meksičko standardno vrijeme", "AKDT": "aljaško ljetno vrijeme", "AWDT": "zapadnoaustralsko ljetno vrijeme", "OEZ": "istočnoeuropsko standardno vrijeme", "TMT": "turkmenistansko standardno vrijeme", "WAT": "zapadnoafričko standardno vrijeme", "ACWST": "australsko središnje zapadno standardno vrijeme", "WAST": "zapadnoafričko ljetno vrijeme", "COST": "kolumbijsko ljetno vrijeme", "∅∅∅": "Acre ljetno vrijeme", "EAT": "istočnoafričko vrijeme", "MESZ": "srednjoeuropsko ljetno vrijeme", "EST": "istočno standardno vrijeme", "HKST": "hongkonško ljetno vrijeme", "HNEG": "istočnogrenlandsko standardno vrijeme", "HEPM": "ljetno vrijeme za Sveti Petar i Mikelon", "WIB": "zapadnoindonezijsko vrijeme", "SRT": "surinamsko vrijeme", "HECU": "kubansko ljetno vrijeme", "WIT": "istočnoindonezijsko vrijeme", "HENOMX": "sjeverozapadno meksičko ljetno vrijeme", "AEDT": "istočnoaustralsko ljetno vrijeme", "LHDT": "ljetno vrijeme otoka Lord Howe", "BOT": "bolivijsko vrijeme", "ACDT": "srednjoaustralsko ljetno vrijeme", "BT": "butansko vrijeme", "HEEG": "istočnogrenlandsko ljetno vrijeme", "WARST": "zapadno-argentinsko ljetno vrijeme", "GYT": "gvajansko vrijeme", "NZST": "novozelandsko standardno vrijeme", "GMT": "univerzalno vrijeme", "MYT": "malezijsko vrijeme", "MDT": "planinsko ljetno vrijeme", "ChST": "standardno vrijeme Chamorra", "UYT": "urugvajsko standardno vrijeme", "UYST": "urugvajsko ljetno vrijeme", "HEPMX": "meksičko pacifičko ljetno vrijeme", "COT": "kolumbijsko standardno vrijeme", "AKST": "aljaško standardno vrijeme", "MST": "planinsko standardno vrijeme", "WESZ": "zapadnoeuropsko ljetno vrijeme", "CST": "središnje standardno vrijeme", "SGT": "singapursko vrijeme", "VET": "venezuelsko vrijeme", "WART": "zapadno-argentinsko standardno vrijeme", "EDT": "istočno ljetno vrijeme", "AEST": "istočnoaustralsko standardno vrijeme", "CDT": "središnje ljetno vrijeme", "CLT": "čileansko standardno vrijeme", "CHADT": "ljetno vrijeme Chathama", "PDT": "pacifičko ljetno vrijeme", "LHST": "standardno vrijeme otoka Lord Howe", "ECT": "ekvadorsko vrijeme", "CLST": "čileansko ljetno vrijeme", "HNT": "newfoundlandsko standardno vrijeme", "HAT": "newfoundlandsko ljetno vrijeme", "WITA": "srednjoindonezijsko vrijeme", "HNCU": "kubansko standardno vrijeme", "NZDT": "novozelandsko ljetno vrijeme", "TMST": "turkmenistansko ljetno vrijeme", "ACST": "srednjoaustralsko standardno vrijeme", "GFT": "vrijeme Francuske Gvajane", "HNPM": "standardno vrijeme za Sveti Petar i Mikelon"},
}
}
diff --git a/hr_BA/hr_BA.go b/hr_BA/hr_BA.go
index 50ab93cf..8a25ed48 100644
--- a/hr_BA/hr_BA.go
+++ b/hr_BA/hr_BA.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"pr. Kr.", "po. Kr."},
erasNarrow: []string{"pr.n.e.", "AD"},
erasWide: []string{"prije Krista", "poslije Krista"},
- timezones: map[string]string{"MDT": "ljetno makaosko vrijeme", "SRT": "surinamsko vrijeme", "HNT": "newfoundlandsko standardno vrijeme", "AEDT": "istočnoaustralsko ljetno vrijeme", "WITA": "srednjoindonezijsko vrijeme", "MEZ": "srednjoeuropsko standardno vrijeme", "LHST": "standardno vrijeme otoka Lord Howe", "OESZ": "istočnoeuropsko ljetno vrijeme", "CLST": "čileansko ljetno vrijeme", "LHDT": "ljetno vrijeme otoka Lord Howe", "AWST": "zapadnoaustralsko standardno vrijeme", "ChST": "standardno vrijeme Chamorra", "PDT": "pacifičko ljetno vrijeme", "COST": "kolumbijsko ljetno vrijeme", "AKST": "aljaško standardno vrijeme", "WESZ": "zapadnoeuropsko ljetno vrijeme", "HEPM": "ljetno vrijeme za Sveti Petar i Mikelon", "NZDT": "novozelandsko ljetno vrijeme", "CHADT": "ljetno vrijeme Chathama", "WART": "zapadno-argentinsko standardno vrijeme", "MESZ": "srednjoeuropsko ljetno vrijeme", "JST": "japansko standardno vrijeme", "EST": "istočno standardno vrijeme", "COT": "kolumbijsko standardno vrijeme", "ARST": "argentinsko ljetno vrijeme", "CLT": "čileansko standardno vrijeme", "TMST": "turkmenistansko ljetno vrijeme", "WAST": "zapadnoafričko ljetno vrijeme", "WAT": "zapadnoafričko standardno vrijeme", "MST": "standardno makaosko vrijeme", "CDT": "središnje ljetno vrijeme", "HEEG": "istočnogrenlandsko ljetno vrijeme", "ACST": "srednjoaustralsko standardno vrijeme", "EDT": "istočno ljetno vrijeme", "UYT": "urugvajsko standardno vrijeme", "AKDT": "aljaško ljetno vrijeme", "PST": "pacifičko standardno vrijeme", "HAT": "newfoundlandsko ljetno vrijeme", "IST": "indijsko vrijeme", "∅∅∅": "peruansko ljetno vrijeme", "HKT": "hongkonško standardno vrijeme", "CHAST": "standardno vrijeme Chathama", "AEST": "istočnoaustralsko standardno vrijeme", "HEPMX": "meksičko pacifičko ljetno vrijeme", "UYST": "urugvajsko ljetno vrijeme", "HAST": "havajsko-aleutsko standardno vrijeme", "VET": "venezuelsko vrijeme", "WIT": "istočnoindonezijsko vrijeme", "SAST": "južnoafričko vrijeme", "HNCU": "kubansko standardno vrijeme", "HECU": "kubansko ljetno vrijeme", "WIB": "zapadnoindonezijsko vrijeme", "HNOG": "zapadnogrenlandsko standardno vrijeme", "HKST": "hongkonško ljetno vrijeme", "HNPM": "standardno vrijeme za Sveti Petar i Mikelon", "NZST": "novozelandsko standardno vrijeme", "ECT": "ekvadorsko vrijeme", "HNPMX": "meksičko pacifičko standardno vrijeme", "ART": "argentinsko standardno vrijeme", "JDT": "japansko ljetno vrijeme", "BOT": "bolivijsko vrijeme", "SGT": "singapursko vrijeme", "GMT": "univerzalno vrijeme", "BT": "butansko vrijeme", "AWDT": "zapadnoaustralsko ljetno vrijeme", "WARST": "zapadno-argentinsko ljetno vrijeme", "OEZ": "istočnoeuropsko standardno vrijeme", "HENOMX": "sjeverozapadno meksičko ljetno vrijeme", "CST": "središnje standardno vrijeme", "HADT": "havajsko-aleutsko ljetno vrijeme", "HEOG": "zapadnogrenlandsko ljetno vrijeme", "WEZ": "zapadnoeuropsko standardno vrijeme", "CAT": "srednjoafričko vrijeme", "AST": "atlantsko standardno vrijeme", "ADT": "atlantsko ljetno vrijeme", "TMT": "turkmenistansko standardno vrijeme", "ACDT": "srednjoaustralsko ljetno vrijeme", "HNNOMX": "sjeverozapadno meksičko standardno vrijeme", "GYT": "gvajansko vrijeme", "MYT": "malezijsko vrijeme", "ACWST": "australsko središnje zapadno standardno vrijeme", "ACWDT": "australsko središnje zapadno ljetno vrijeme", "HNEG": "istočnogrenlandsko standardno vrijeme", "GFT": "vrijeme Francuske Gvajane", "EAT": "istočnoafričko vrijeme"},
+ timezones: map[string]string{"HAST": "havajsko-aleutsko standardno vrijeme", "IST": "indijsko vrijeme", "AST": "atlantsko standardno vrijeme", "OEZ": "istočnoeuropsko standardno vrijeme", "AEST": "istočnoaustralsko standardno vrijeme", "HEOG": "zapadnogrenlandsko ljetno vrijeme", "AEDT": "istočnoaustralsko ljetno vrijeme", "SRT": "surinamsko vrijeme", "HECU": "kubansko ljetno vrijeme", "PST": "pacifičko standardno vrijeme", "NZDT": "novozelandsko ljetno vrijeme", "HNOG": "zapadnogrenlandsko standardno vrijeme", "UYT": "urugvajsko standardno vrijeme", "EAT": "istočnoafričko vrijeme", "HADT": "havajsko-aleutsko ljetno vrijeme", "VET": "venezuelsko vrijeme", "COT": "kolumbijsko standardno vrijeme", "HENOMX": "sjeverozapadno meksičko ljetno vrijeme", "EST": "istočno standardno vrijeme", "HNT": "newfoundlandsko standardno vrijeme", "HAT": "newfoundlandsko ljetno vrijeme", "HNPMX": "meksičko pacifičko standardno vrijeme", "CHADT": "ljetno vrijeme Chathama", "ACWDT": "australsko središnje zapadno ljetno vrijeme", "MST": "standardno makaosko vrijeme", "WAT": "zapadnoafričko standardno vrijeme", "TMST": "turkmenistansko ljetno vrijeme", "HNEG": "istočnogrenlandsko standardno vrijeme", "HEPMX": "meksičko pacifičko ljetno vrijeme", "∅∅∅": "azorsko ljetno vrijeme", "ECT": "ekvadorsko vrijeme", "WESZ": "zapadnoeuropsko ljetno vrijeme", "WARST": "zapadno-argentinsko ljetno vrijeme", "HKST": "hongkonško ljetno vrijeme", "ACDT": "srednjoaustralsko ljetno vrijeme", "WITA": "srednjoindonezijsko vrijeme", "HNCU": "kubansko standardno vrijeme", "AWST": "zapadnoaustralsko standardno vrijeme", "BOT": "bolivijsko vrijeme", "ACWST": "australsko središnje zapadno standardno vrijeme", "WAST": "zapadnoafričko ljetno vrijeme", "AKST": "aljaško standardno vrijeme", "ChST": "standardno vrijeme Chamorra", "HNPM": "standardno vrijeme za Sveti Petar i Mikelon", "HEPM": "ljetno vrijeme za Sveti Petar i Mikelon", "LHST": "standardno vrijeme otoka Lord Howe", "JST": "japansko standardno vrijeme", "MYT": "malezijsko vrijeme", "ART": "argentinsko standardno vrijeme", "ACST": "srednjoaustralsko standardno vrijeme", "GYT": "gvajansko vrijeme", "WIT": "istočnoindonezijsko vrijeme", "JDT": "japansko ljetno vrijeme", "GFT": "vrijeme Francuske Gvajane", "AKDT": "aljaško ljetno vrijeme", "LHDT": "ljetno vrijeme otoka Lord Howe", "CHAST": "standardno vrijeme Chathama", "GMT": "univerzalno vrijeme", "WART": "zapadno-argentinsko standardno vrijeme", "MDT": "ljetno makaosko vrijeme", "WIB": "zapadnoindonezijsko vrijeme", "PDT": "pacifičko ljetno vrijeme", "BT": "butansko vrijeme", "WEZ": "zapadnoeuropsko standardno vrijeme", "TMT": "turkmenistansko standardno vrijeme", "HKT": "hongkonško standardno vrijeme", "HNNOMX": "sjeverozapadno meksičko standardno vrijeme", "NZST": "novozelandsko standardno vrijeme", "MEZ": "srednjoeuropsko standardno vrijeme", "CLT": "čileansko standardno vrijeme", "ARST": "argentinsko ljetno vrijeme", "UYST": "urugvajsko ljetno vrijeme", "CDT": "središnje ljetno vrijeme", "CAT": "srednjoafričko vrijeme", "CLST": "čileansko ljetno vrijeme", "ADT": "atlantsko ljetno vrijeme", "COST": "kolumbijsko ljetno vrijeme", "CST": "središnje standardno vrijeme", "AWDT": "zapadnoaustralsko ljetno vrijeme", "SGT": "singapursko vrijeme", "OESZ": "istočnoeuropsko ljetno vrijeme", "HEEG": "istočnogrenlandsko ljetno vrijeme", "SAST": "južnoafričko vrijeme", "MESZ": "srednjoeuropsko ljetno vrijeme", "EDT": "istočno ljetno vrijeme"},
}
}
diff --git a/hr_HR/hr_HR.go b/hr_HR/hr_HR.go
index e488be62..de99638e 100644
--- a/hr_HR/hr_HR.go
+++ b/hr_HR/hr_HR.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"pr. Kr.", "po. Kr."},
erasNarrow: []string{"pr.n.e.", "AD"},
erasWide: []string{"prije Krista", "poslije Krista"},
- timezones: map[string]string{"UYT": "urugvajsko standardno vrijeme", "VET": "venezuelsko vrijeme", "HAT": "newfoundlandsko ljetno vrijeme", "CHAST": "standardno vrijeme Chathama", "SGT": "singapursko vrijeme", "WART": "zapadno-argentinsko standardno vrijeme", "MST": "standardno makaosko vrijeme", "NZDT": "novozelandsko ljetno vrijeme", "ACST": "srednjoaustralsko standardno vrijeme", "ACDT": "srednjoaustralsko ljetno vrijeme", "∅∅∅": "peruansko ljetno vrijeme", "ChST": "standardno vrijeme Chamorra", "CLT": "čileansko standardno vrijeme", "HEPMX": "meksičko pacifičko ljetno vrijeme", "ADT": "atlantsko ljetno vrijeme", "WIB": "zapadnoindonezijsko vrijeme", "HEPM": "ljetno vrijeme za Sveti Petar i Mikelon", "CAT": "srednjoafričko vrijeme", "MYT": "malezijsko vrijeme", "WEZ": "zapadnoeuropsko standardno vrijeme", "HKST": "hongkonško ljetno vrijeme", "CDT": "središnje ljetno vrijeme", "ARST": "argentinsko ljetno vrijeme", "SAST": "južnoafričko vrijeme", "GFT": "vrijeme Francuske Gvajane", "MDT": "ljetno makaosko vrijeme", "COST": "kolumbijsko ljetno vrijeme", "HAST": "havajsko-aleutsko standardno vrijeme", "WIT": "istočnoindonezijsko vrijeme", "PST": "pacifičko standardno vrijeme", "ART": "argentinsko standardno vrijeme", "AWST": "zapadnoaustralsko standardno vrijeme", "WARST": "zapadno-argentinsko ljetno vrijeme", "PDT": "pacifičko ljetno vrijeme", "ACWST": "australsko središnje zapadno standardno vrijeme", "CHADT": "ljetno vrijeme Chathama", "IST": "indijsko vrijeme", "JST": "japansko standardno vrijeme", "HNPMX": "meksičko pacifičko standardno vrijeme", "HECU": "kubansko ljetno vrijeme", "AKST": "aljaško standardno vrijeme", "HADT": "havajsko-aleutsko ljetno vrijeme", "MEZ": "srednjoeuropsko standardno vrijeme", "LHST": "standardno vrijeme otoka Lord Howe", "CLST": "čileansko ljetno vrijeme", "TMST": "turkmenistansko ljetno vrijeme", "ECT": "ekvadorsko vrijeme", "NZST": "novozelandsko standardno vrijeme", "HEEG": "istočnogrenlandsko ljetno vrijeme", "HNPM": "standardno vrijeme za Sveti Petar i Mikelon", "HNCU": "kubansko standardno vrijeme", "EST": "istočno standardno vrijeme", "CST": "središnje standardno vrijeme", "BT": "butansko vrijeme", "SRT": "surinamsko vrijeme", "ACWDT": "australsko središnje zapadno ljetno vrijeme", "HNNOMX": "sjeverozapadno meksičko standardno vrijeme", "HENOMX": "sjeverozapadno meksičko ljetno vrijeme", "AWDT": "zapadnoaustralsko ljetno vrijeme", "BOT": "bolivijsko vrijeme", "HNEG": "istočnogrenlandsko standardno vrijeme", "TMT": "turkmenistansko standardno vrijeme", "OESZ": "istočnoeuropsko ljetno vrijeme", "EDT": "istočno ljetno vrijeme", "AST": "atlantsko standardno vrijeme", "WESZ": "zapadnoeuropsko ljetno vrijeme", "AEST": "istočnoaustralsko standardno vrijeme", "HKT": "hongkonško standardno vrijeme", "WITA": "srednjoindonezijsko vrijeme", "LHDT": "ljetno vrijeme otoka Lord Howe", "WAST": "zapadnoafričko ljetno vrijeme", "GMT": "univerzalno vrijeme", "AKDT": "aljaško ljetno vrijeme", "GYT": "gvajansko vrijeme", "JDT": "japansko ljetno vrijeme", "EAT": "istočnoafričko vrijeme", "AEDT": "istočnoaustralsko ljetno vrijeme", "WAT": "zapadnoafričko standardno vrijeme", "COT": "kolumbijsko standardno vrijeme", "UYST": "urugvajsko ljetno vrijeme", "HNT": "newfoundlandsko standardno vrijeme", "HNOG": "zapadnogrenlandsko standardno vrijeme", "HEOG": "zapadnogrenlandsko ljetno vrijeme", "MESZ": "srednjoeuropsko ljetno vrijeme", "OEZ": "istočnoeuropsko standardno vrijeme"},
+ timezones: map[string]string{"NZST": "novozelandsko standardno vrijeme", "NZDT": "novozelandsko ljetno vrijeme", "UYT": "urugvajsko standardno vrijeme", "MST": "standardno makaosko vrijeme", "WAST": "zapadnoafričko ljetno vrijeme", "HNT": "newfoundlandsko standardno vrijeme", "AEST": "istočnoaustralsko standardno vrijeme", "SGT": "singapursko vrijeme", "PDT": "pacifičko ljetno vrijeme", "HEOG": "zapadnogrenlandsko ljetno vrijeme", "TMT": "turkmenistansko standardno vrijeme", "ACWDT": "australsko središnje zapadno ljetno vrijeme", "GFT": "vrijeme Francuske Gvajane", "EAT": "istočnoafričko vrijeme", "BOT": "bolivijsko vrijeme", "∅∅∅": "amazonsko ljetno vrijeme", "HEPM": "ljetno vrijeme za Sveti Petar i Mikelon", "HEPMX": "meksičko pacifičko ljetno vrijeme", "GMT": "univerzalno vrijeme", "MDT": "ljetno makaosko vrijeme", "AKST": "aljaško standardno vrijeme", "AKDT": "aljaško ljetno vrijeme", "AWDT": "zapadnoaustralsko ljetno vrijeme", "HAST": "havajsko-aleutsko standardno vrijeme", "HADT": "havajsko-aleutsko ljetno vrijeme", "ACWST": "australsko središnje zapadno standardno vrijeme", "ChST": "standardno vrijeme Chamorra", "WIB": "zapadnoindonezijsko vrijeme", "GYT": "gvajansko vrijeme", "COST": "kolumbijsko ljetno vrijeme", "SAST": "južnoafričko vrijeme", "LHDT": "ljetno vrijeme otoka Lord Howe", "HNPMX": "meksičko pacifičko standardno vrijeme", "WARST": "zapadno-argentinsko ljetno vrijeme", "WITA": "srednjoindonezijsko vrijeme", "HNCU": "kubansko standardno vrijeme", "CHADT": "ljetno vrijeme Chathama", "JST": "japansko standardno vrijeme", "HNOG": "zapadnogrenlandsko standardno vrijeme", "AST": "atlantsko standardno vrijeme", "ACDT": "srednjoaustralsko ljetno vrijeme", "LHST": "standardno vrijeme otoka Lord Howe", "HKT": "hongkonško standardno vrijeme", "COT": "kolumbijsko standardno vrijeme", "HNNOMX": "sjeverozapadno meksičko standardno vrijeme", "BT": "butansko vrijeme", "ECT": "ekvadorsko vrijeme", "WESZ": "zapadnoeuropsko ljetno vrijeme", "TMST": "turkmenistansko ljetno vrijeme", "EDT": "istočno ljetno vrijeme", "HAT": "newfoundlandsko ljetno vrijeme", "AEDT": "istočnoaustralsko ljetno vrijeme", "CAT": "srednjoafričko vrijeme", "IST": "indijsko vrijeme", "MYT": "malezijsko vrijeme", "HECU": "kubansko ljetno vrijeme", "MEZ": "srednjoeuropsko standardno vrijeme", "MESZ": "srednjoeuropsko ljetno vrijeme", "HNEG": "istočnogrenlandsko standardno vrijeme", "SRT": "surinamsko vrijeme", "CDT": "središnje ljetno vrijeme", "JDT": "japansko ljetno vrijeme", "OESZ": "istočnoeuropsko ljetno vrijeme", "EST": "istočno standardno vrijeme", "HNPM": "standardno vrijeme za Sveti Petar i Mikelon", "ACST": "srednjoaustralsko standardno vrijeme", "AWST": "zapadnoaustralsko standardno vrijeme", "PST": "pacifičko standardno vrijeme", "OEZ": "istočnoeuropsko standardno vrijeme", "HKST": "hongkonško ljetno vrijeme", "HENOMX": "sjeverozapadno meksičko ljetno vrijeme", "UYST": "urugvajsko ljetno vrijeme", "CST": "središnje standardno vrijeme", "CLT": "čileansko standardno vrijeme", "ADT": "atlantsko ljetno vrijeme", "WEZ": "zapadnoeuropsko standardno vrijeme", "ARST": "argentinsko ljetno vrijeme", "ART": "argentinsko standardno vrijeme", "WAT": "zapadnoafričko standardno vrijeme", "HEEG": "istočnogrenlandsko ljetno vrijeme", "WIT": "istočnoindonezijsko vrijeme", "CHAST": "standardno vrijeme Chathama", "VET": "venezuelsko vrijeme", "WART": "zapadno-argentinsko standardno vrijeme", "CLST": "čileansko ljetno vrijeme"},
}
}
@@ -101,8 +101,8 @@ func (hr *hr_HR) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
i := int64(n)
f := locales.F(n, v)
- iMod10 := i % 10
iMod100 := i % 100
+ iMod10 := i % 10
fMod10 := f % 10
fMod100 := f % 100
diff --git a/hsb/hsb.go b/hsb/hsb.go
index ed30a217..af3462f0 100644
--- a/hsb/hsb.go
+++ b/hsb/hsb.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"př.Chr.n.", "po Chr.n."},
erasNarrow: []string{"", ""},
erasWide: []string{"před Chrystowym narodźenjom", "po Chrystowym narodźenju"},
- timezones: map[string]string{"HNCU": "kubaski standardny čas", "MST": "MST", "AST": "atlantiski standardny čas", "WIB": "zapadoindoneski čas", "ACWDT": "sjedźozapadny awstralski lětni čas", "NZDT": "nowoseelandski lětni čas", "CAT": "centralnoafriski čas", "GMT": "Greenwichski čas", "EST": "sewjeroameriski wuchodny standardny čas", "ADT": "atlantiski lětni čas", "AKDT": "alaskaski lětni čas", "VET": "venezuelski čas", "ART": "argentinski standardny čas", "OEZ": "wuchodoeuropski standardny čas", "HNNOMX": "mexiski sewjerozapadny standardny čas", "HADT": "hawaiisko-aleutski lětni čas", "HKST": "Hongkongski lětni čas", "JST": "japanski standardny čas", "BOT": "boliwiski čas", "ACDT": "srjedźoawstralski lětni čas", "LHST": "standardny čas kupy Lord-Howe", "LHDT": "lětni čas kupy Lord-Howe", "CHAST": "chathamski standardny čas", "COST": "kolumbiski lětni čas", "MDT": "MDT", "WEZ": "zapadoeuropski standardny čas", "WESZ": "zapadoeuropski lětni čas", "MEZ": "srjedźoeuropski standardny čas", "WARST": "zapadoargentinski lětni čas", "WITA": "srjedźoindoneski čas", "SAST": "južnoafriski čas", "SGT": "Singapurski čas", "GYT": "guyanski čas", "HNEG": "wuchodogrönlandski standardny čas", "MESZ": "srjedźoeuropski lětni čas", "MYT": "malajziski čas", "WIT": "wuchodoindoneski", "PDT": "sewjeroameriski pacifiski lětni čas", "ACWST": "srjedźozapadny awstralski standardny čas", "HNT": "nowofundlandski standardny čas", "AEDT": "wuchodoawstralski lětni čas", "HEPM": "lětni čas kupow St. Pierre a Miquelon", "CHADT": "chathamski lětni čas", "∅∅∅": "peruski lětni čas", "PST": "sewjeroameriski pacifiski standardny čas", "AWDT": "zapadoawstralski lětni čas", "ACST": "srjedźoawstralski standardny čas", "WAT": "zapadoafriski standardny čas", "OESZ": "wuchodoeuropski lětni čas", "UYT": "uruguayski standardny čas", "AKST": "alaskaski standardny čas", "CLST": "chilski lětni čas", "EAT": "wuchodoafriski čas", "BT": "bhutanski čas", "ARST": "argentinski lětni čas", "HEOG": "zapadogrönlandski lětni čas", "AWST": "zapadoawstralski standardny čas", "HNPM": "standardny čas kupow St. Pierre a Miquelon", "IST": "indiski čas", "WAST": "zapadoafriski lětni čas", "HECU": "kubaski lětni čas", "SRT": "surinamski čas", "HAT": "nowofundlandski lětni čas", "TMT": "turkmenski standardny čas", "HEPMX": "mexiski pacifiski lětni čas", "CDT": "sewjeroameriski centralny lětni čas", "HAST": "hawaiisko-aleutski standardny čas", "NZST": "nowoseelandski standardny čas", "ECT": "ekwadorski čas", "HNOG": "zapadogrönlandski standardny čas", "JDT": "japanski lětni čas", "CLT": "chilski standardny čas", "HEEG": "wuchodogrönlandski lětni čas", "GFT": "francoskoguyanski čas", "HENOMX": "mexiski sewjerozapadny lětni čas", "EDT": "sewjeroameriski wuchodny lětni čas", "HNPMX": "mexiski pacifiski standardny čas", "UYST": "uruguayski lětni čas", "CST": "sewjeroameriski centralny standardny čas", "TMST": "turkmenski lětni čas", "WART": "zapadoargentinski standardny čas", "COT": "kolumbiski standardny čas", "AEST": "wuchodoawstralski standardny čas", "HKT": "Hongkongski standardny čas", "ChST": "chamorroski čas"},
+ timezones: map[string]string{"NZST": "nowoseelandski standardny čas", "ADT": "atlantiski lětni čas", "GFT": "francoskoguyanski čas", "GYT": "guyanski čas", "MYT": "malajziski čas", "EDT": "sewjeroameriski wuchodny lětni čas", "ACST": "srjedźoawstralski standardny čas", "LHST": "standardny čas kupy Lord-Howe", "HEPMX": "mexiski pacifiski lětni čas", "EAT": "wuchodoafriski čas", "CDT": "sewjeroameriski centralny lětni čas", "AWST": "zapadoawstralski standardny čas", "MEZ": "srjedźoeuropski standardny čas", "OESZ": "wuchodoeuropski lětni čas", "HNT": "nowofundlandski standardny čas", "HEEG": "wuchodogrönlandski lětni čas", "SAST": "južnoafriski čas", "CST": "sewjeroameriski centralny standardny čas", "MST": "MST", "SRT": "surinamski čas", "AWDT": "zapadoawstralski lětni čas", "COT": "kolumbiski standardny čas", "ChST": "chamorroski čas", "WIB": "zapadoindoneski čas", "ACWST": "srjedźozapadny awstralski standardny čas", "OEZ": "wuchodoeuropski standardny čas", "HEOG": "zapadogrönlandski lětni čas", "MDT": "MDT", "WITA": "srjedźoindoneski čas", "HEPM": "lětni čas kupow St. Pierre a Miquelon", "HADT": "hawaiisko-aleutski lětni čas", "CLST": "chilski lětni čas", "HNOG": "zapadogrönlandski standardny čas", "COST": "kolumbiski lětni čas", "WIT": "wuchodoindoneski", "PDT": "sewjeroameriski pacifiski lětni čas", "HAST": "hawaiisko-aleutski standardny čas", "HNNOMX": "mexiski sewjerozapadny standardny čas", "HAT": "nowofundlandski lětni čas", "BOT": "boliwiski čas", "CAT": "centralnoafriski čas", "MESZ": "srjedźoeuropski lětni čas", "GMT": "Greenwichski čas", "CLT": "chilski standardny čas", "ART": "argentinski standardny čas", "HENOMX": "mexiski sewjerozapadny lětni čas", "AKST": "alaskaski standardny čas", "HECU": "kubaski lětni čas", "WART": "zapadoargentinski standardny čas", "WARST": "zapadoargentinski lětni čas", "AEDT": "wuchodoawstralski lětni čas", "HNPMX": "mexiski pacifiski standardny čas", "CHAST": "chathamski standardny čas", "IST": "indiski čas", "JDT": "japanski lětni čas", "UYT": "uruguayski standardny čas", "CHADT": "chathamski lětni čas", "ACWDT": "sjedźozapadny awstralski lětni čas", "VET": "venezuelski čas", "WESZ": "zapadoeuropski lětni čas", "AEST": "wuchodoawstralski standardny čas", "LHDT": "lětni čas kupy Lord-Howe", "SGT": "Singapurski čas", "ECT": "ekwadorski čas", "NZDT": "nowoseelandski lětni čas", "HKT": "Hongkongski standardny čas", "ACDT": "srjedźoawstralski lětni čas", "HNEG": "wuchodogrönlandski standardny čas", "HNPM": "standardny čas kupow St. Pierre a Miquelon", "PST": "sewjeroameriski pacifiski standardny čas", "JST": "japanski standardny čas", "WEZ": "zapadoeuropski standardny čas", "TMT": "turkmenski standardny čas", "WAST": "zapadoafriski lětni čas", "EST": "sewjeroameriski wuchodny standardny čas", "BT": "bhutanski čas", "UYST": "uruguayski lětni čas", "AST": "atlantiski standardny čas", "HKST": "Hongkongski lětni čas", "AKDT": "alaskaski lětni čas", "∅∅∅": "Brasiliski lětni čas", "TMST": "turkmenski lětni čas", "ARST": "argentinski lětni čas", "WAT": "zapadoafriski standardny čas", "HNCU": "kubaski standardny čas"},
}
}
diff --git a/hsb_DE/hsb_DE.go b/hsb_DE/hsb_DE.go
index d6bdbd84..73ac0c63 100644
--- a/hsb_DE/hsb_DE.go
+++ b/hsb_DE/hsb_DE.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"př.Chr.n.", "po Chr.n."},
erasNarrow: []string{"", ""},
erasWide: []string{"před Chrystowym narodźenjom", "po Chrystowym narodźenju"},
- timezones: map[string]string{"HAT": "nowofundlandski lětni čas", "ARST": "argentinski lětni čas", "HNPM": "standardny čas kupow St. Pierre a Miquelon", "NZDT": "nowoseelandski lětni čas", "JST": "japanski standardny čas", "BT": "bhutanski čas", "WEZ": "zapadoeuropski standardny čas", "WESZ": "zapadoeuropski lětni čas", "WIB": "zapadoindoneski čas", "TMST": "turkmenski lětni čas", "OESZ": "wuchodoeuropski lětni čas", "HNCU": "kubaski standardny čas", "AKDT": "alaskaski lětni čas", "HAST": "hawaiisko-aleutski standardny čas", "AWDT": "zapadoawstralski lětni čas", "MEZ": "srjedźoeuropski standardny čas", "TMT": "turkmenski standardny čas", "ACDT": "srjedźoawstralski lětni čas", "HNT": "nowofundlandski standardny čas", "BOT": "boliwiski čas", "HEEG": "wuchodogrönlandski lětni čas", "HKT": "Hongkongski standardny čas", "EST": "sewjeroameriski wuchodny standardny čas", "MYT": "malajziski čas", "CHAST": "chathamski standardny čas", "SGT": "Singapurski čas", "HECU": "kubaski lětni čas", "VET": "venezuelski čas", "AEDT": "wuchodoawstralski lětni čas", "HKST": "Hongkongski lětni čas", "∅∅∅": "Amaconaski lětni čas", "ACST": "srjedźoawstralski standardny čas", "OEZ": "wuchodoeuropski standardny čas", "SRT": "surinamski čas", "HEOG": "zapadogrönlandski lětni čas", "LHDT": "lětni čas kupy Lord-Howe", "AST": "atlantiski standardny čas", "ACWDT": "sjedźozapadny awstralski lětni čas", "CHADT": "chathamski lětni čas", "HNNOMX": "mexiski sewjerozapadny standardny čas", "EAT": "wuchodoafriski čas", "COST": "kolumbiski lětni čas", "UYT": "uruguayski standardny čas", "WITA": "srjedźoindoneski čas", "IST": "indiski čas", "CLST": "chilski lětni čas", "WART": "zapadoargentinski standardny čas", "EDT": "sewjeroameriski wuchodny lětni čas", "MST": "MST", "UYST": "uruguayski lětni čas", "AKST": "alaskaski standardny čas", "HADT": "hawaiisko-aleutski lětni čas", "JDT": "japanski lětni čas", "WAST": "zapadoafriski lětni čas", "CST": "sewjeroameriski centralny standardny čas", "ADT": "atlantiski lětni čas", "HNPMX": "mexiski pacifiski standardny čas", "AEST": "wuchodoawstralski standardny čas", "CAT": "centralnoafriski čas", "WAT": "zapadoafriski standardny čas", "GMT": "Greenwichski čas", "HEPMX": "mexiski pacifiski lětni čas", "CDT": "sewjeroameriski centralny lětni čas", "GYT": "guyanski čas", "HEPM": "lětni čas kupow St. Pierre a Miquelon", "SAST": "južnoafriski čas", "ChST": "chamorroski čas", "HENOMX": "mexiski sewjerozapadny lětni čas", "AWST": "zapadoawstralski standardny čas", "MESZ": "srjedźoeuropski lětni čas", "ECT": "ekwadorski čas", "WIT": "wuchodoindoneski", "ACWST": "srjedźozapadny awstralski standardny čas", "HNEG": "wuchodogrönlandski standardny čas", "CLT": "chilski standardny čas", "MDT": "MDT", "PST": "sewjeroameriski pacifiski standardny čas", "ART": "argentinski standardny čas", "HNOG": "zapadogrönlandski standardny čas", "GFT": "francoskoguyanski čas", "WARST": "zapadoargentinski lětni čas", "COT": "kolumbiski standardny čas", "PDT": "sewjeroameriski pacifiski lětni čas", "LHST": "standardny čas kupy Lord-Howe", "NZST": "nowoseelandski standardny čas"},
+ timezones: map[string]string{"MDT": "MDT", "AEDT": "wuchodoawstralski lětni čas", "SAST": "južnoafriski čas", "CST": "sewjeroameriski centralny standardny čas", "SGT": "Singapurski čas", "ACWST": "srjedźozapadny awstralski standardny čas", "JDT": "japanski lětni čas", "HEOG": "zapadogrönlandski lětni čas", "HEPM": "lětni čas kupow St. Pierre a Miquelon", "LHST": "standardny čas kupy Lord-Howe", "WIT": "wuchodoindoneski", "PDT": "sewjeroameriski pacifiski lětni čas", "CLST": "chilski lětni čas", "HNEG": "wuchodogrönlandski standardny čas", "OESZ": "wuchodoeuropski lětni čas", "TMT": "turkmenski standardny čas", "ART": "argentinski standardny čas", "AST": "atlantiski standardny čas", "OEZ": "wuchodoeuropski standardny čas", "HENOMX": "mexiski sewjerozapadny lětni čas", "WITA": "srjedźoindoneski čas", "PST": "sewjeroameriski pacifiski standardny čas", "ACWDT": "sjedźozapadny awstralski lětni čas", "HEEG": "wuchodogrönlandski lětni čas", "HNPMX": "mexiski pacifiski standardny čas", "ARST": "argentinski lětni čas", "WAST": "zapadoafriski lětni čas", "HEPMX": "mexiski pacifiski lětni čas", "CAT": "centralnoafriski čas", "VET": "venezuelski čas", "WART": "zapadoargentinski standardny čas", "WIB": "zapadoindoneski čas", "WARST": "zapadoargentinski lětni čas", "HAT": "nowofundlandski lětni čas", "MST": "MST", "BT": "bhutanski čas", "BOT": "boliwiski čas", "NZST": "nowoseelandski standardny čas", "JST": "japanski standardny čas", "MYT": "malajziski čas", "HKT": "Hongkongski standardny čas", "ACST": "srjedźoawstralski standardny čas", "∅∅∅": "peruski lětni čas", "AKST": "alaskaski standardny čas", "HNOG": "zapadogrönlandski standardny čas", "GMT": "Greenwichski čas", "WAT": "zapadoafriski standardny čas", "EST": "sewjeroameriski wuchodny standardny čas", "MESZ": "srjedźoeuropski lětni čas", "HNT": "nowofundlandski standardny čas", "WESZ": "zapadoeuropski lětni čas", "EDT": "sewjeroameriski wuchodny lětni čas", "GFT": "francoskoguyanski čas", "HNPM": "standardny čas kupow St. Pierre a Miquelon", "LHDT": "lětni čas kupy Lord-Howe", "CHAST": "chathamski standardny čas", "CLT": "chilski standardny čas", "ADT": "atlantiski lětni čas", "IST": "indiski čas", "HNNOMX": "mexiski sewjerozapadny standardny čas", "EAT": "wuchodoafriski čas", "HNCU": "kubaski standardny čas", "CDT": "sewjeroameriski centralny lětni čas", "AWST": "zapadoawstralski standardny čas", "ECT": "ekwadorski čas", "ACDT": "srjedźoawstralski lětni čas", "COST": "kolumbiski lětni čas", "UYT": "uruguayski standardny čas", "GYT": "guyanski čas", "HAST": "hawaiisko-aleutski standardny čas", "NZDT": "nowoseelandski lětni čas", "TMST": "turkmenski lětni čas", "COT": "kolumbiski standardny čas", "AKDT": "alaskaski lětni čas", "ChST": "chamorroski čas", "SRT": "surinamski čas", "HECU": "kubaski lětni čas", "AWDT": "zapadoawstralski lětni čas", "MEZ": "srjedźoeuropski standardny čas", "WEZ": "zapadoeuropski standardny čas", "UYST": "uruguayski lětni čas", "CHADT": "chathamski lětni čas", "HADT": "hawaiisko-aleutski lětni čas", "HKST": "Hongkongski lětni čas", "AEST": "wuchodoawstralski standardny čas"},
}
}
diff --git a/hu/hu.go b/hu/hu.go
index 440e200a..e4c7b50b 100644
--- a/hu/hu.go
+++ b/hu/hu.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"i. e.", "i. sz."},
erasNarrow: []string{"ie.", "isz."},
erasWide: []string{"időszámításunk előtt", "időszámításunk szerint"},
- timezones: map[string]string{"HNOG": "nyugat-grönlandi téli idő", "CDT": "középső államokbeli nyári idő", "UYST": "uruguayi nyári idő", "TMST": "türkmenisztáni nyári idő", "WAT": "nyugat-afrikai téli idő", "OEZ": "kelet-európai téli idő", "HENOMX": "északnyugat-mexikói nyári idő", "AKST": "alaszkai zónaidő", "AKDT": "alaszkai nyári idő", "WIT": "kelet-indonéziai idő", "ACWDT": "közép-nyugat-ausztráliai nyári idő", "WITA": "közép-indonéziai idő", "MEZ": "közép-európai téli idő", "IST": "indiai téli idő", "JDT": "japán nyári idő", "ACWST": "közép-nyugat-ausztráliai téli idő", "HNT": "új-fundlandi zónaidő", "NZST": "új-zélandi téli idő", "EAT": "kelet-afrikai téli idő", "ECT": "ecuadori téli idő", "MYT": "malajziai idő", "UYT": "uruguayi téli idő", "WEZ": "nyugat-európai téli idő", "HAT": "új-fundlandi nyári idő", "HNPM": "Saint Pierre és Miquelon-i zónaidő", "MESZ": "közép-európai nyári idő", "COT": "kolumbiai téli idő", "EDT": "keleti államokbeli nyári idő", "HAST": "hawaii-aleuti téli idő", "SRT": "szurinámi idő", "HNPMX": "mexikói csendes-óceáni zónaidő", "PDT": "csendes-óceáni nyári idő", "HKT": "hongkongi téli idő", "HKST": "hongkongi nyári idő", "CHADT": "chathami nyári idő", "CLST": "chilei nyári idő", "HNEG": "kelet-grönlandi téli idő", "WAST": "nyugat-afrikai nyári idő", "GMT": "greenwichi középidő, téli idő", "PST": "csendes-óceáni zónaidő", "ART": "argentínai téli idő", "OESZ": "kelet-európai nyári idő", "∅∅∅": "perui nyári idő", "HNNOMX": "északnyugat-mexikói zónaidő", "CST": "középső államokbeli zónaidő", "AWST": "nyugat-ausztráliai téli idő", "AWDT": "nyugat-ausztráliai nyári idő", "ChST": "chamorrói téli idő", "AST": "atlanti-óceáni zónaidő", "LHDT": "Lord Howe-szigeti nyári idő", "JST": "japán téli idő", "SGT": "szingapúri téli idő", "HADT": "hawaii-aleuti nyári idő", "AEST": "kelet-ausztráliai téli idő", "CLT": "chilei téli idő", "ACST": "közép-ausztráliai téli idő", "GYT": "guyanai téli idő", "VET": "venezuelai idő", "HEOG": "nyugat-grönlandi nyári idő", "LHST": "Lord Howe-szigeti téli idő", "SAST": "dél-afrikai téli idő", "BOT": "bolíviai téli idő", "HEEG": "kelet-grönlandi nyári idő", "WART": "nyugat-argentínai téli idő", "WARST": "nyugat-argentínai nyári idő", "HECU": "kubai nyári idő", "EST": "keleti államokbeli zónaidő", "MST": "Macaui zónaidő", "MDT": "Macaui nyári idő", "WIB": "nyugat-indonéziai téli idő", "BT": "butáni idő", "ARST": "Argentínai nyári idő", "ACDT": "közép-ausztráliai nyári idő", "HNCU": "kubai téli idő", "AEDT": "kelet-ausztráliai nyári idő", "CHAST": "chathami téli idő", "TMT": "türkmenisztáni téli idő", "CAT": "közép-afrikai téli idő", "COST": "kolumbiai nyári idő", "HEPMX": "mexikói csendes-óceáni nyári idő", "WESZ": "nyugat-európai nyári idő", "NZDT": "új-zélandi nyári idő", "GFT": "francia-guianai idő", "ADT": "atlanti-óceáni nyári idő", "HEPM": "Saint Pierre és Miquelon-i nyári idő"},
+ timezones: map[string]string{"AEDT": "kelet-ausztráliai nyári idő", "HEPM": "Saint Pierre és Miquelon-i nyári idő", "ADT": "atlanti-óceáni nyári idő", "HAST": "hawaii-aleuti téli idő", "COT": "kolumbiai téli idő", "HNNOMX": "északnyugat-mexikói zónaidő", "HNPM": "Saint Pierre és Miquelon-i zónaidő", "GYT": "guyanai téli idő", "CST": "középső államokbeli zónaidő", "CDT": "középső államokbeli nyári idő", "PDT": "csendes-óceáni nyári idő", "MESZ": "közép-európai nyári idő", "OESZ": "kelet-európai nyári idő", "EST": "keleti államokbeli zónaidő", "MST": "hegyvidéki zónaidő", "WIT": "kelet-indonéziai idő", "HEOG": "nyugat-grönlandi nyári idő", "WART": "nyugat-argentínai téli idő", "ART": "argentínai téli idő", "WAST": "nyugat-afrikai nyári idő", "ECT": "ecuadori téli idő", "MEZ": "közép-európai téli idő", "VET": "venezuelai idő", "HNOG": "nyugat-grönlandi téli idő", "CLST": "chilei nyári idő", "ACST": "közép-ausztráliai téli idő", "HEEG": "kelet-grönlandi nyári idő", "AKST": "alaszkai zónaidő", "ACWDT": "közép-nyugat-ausztráliai nyári idő", "OEZ": "kelet-európai téli idő", "EDT": "keleti államokbeli nyári idő", "SAST": "dél-afrikai téli idő", "EAT": "kelet-afrikai téli idő", "PST": "csendes-óceáni zónaidő", "NZST": "új-zélandi téli idő", "GMT": "greenwichi középidő, téli idő", "MYT": "malajziai idő", "HKST": "hongkongi nyári idő", "∅∅∅": "Acre nyári idő", "GFT": "francia-guianai idő", "ChST": "chamorrói téli idő", "AWDT": "nyugat-ausztráliai nyári idő", "JDT": "japán nyári idő", "WESZ": "nyugat-európai nyári idő", "HENOMX": "északnyugat-mexikói nyári idő", "HEPMX": "mexikói csendes-óceáni nyári idő", "ACWST": "közép-nyugat-ausztráliai téli idő", "TMT": "türkmenisztáni téli idő", "HKT": "hongkongi téli idő", "WITA": "közép-indonéziai idő", "LHST": "Lord Howe-szigeti téli idő", "HADT": "hawaii-aleuti nyári idő", "CLT": "chilei téli idő", "HNEG": "kelet-grönlandi téli idő", "UYST": "uruguayi nyári idő", "AWST": "nyugat-ausztráliai téli idő", "SGT": "szingapúri téli idő", "IST": "indiai téli idő", "AST": "atlanti-óceáni zónaidő", "WEZ": "nyugat-európai téli idő", "COST": "kolumbiai nyári idő", "BT": "butáni idő", "HNT": "új-fundlandi zónaidő", "LHDT": "Lord Howe-szigeti nyári idő", "BOT": "bolíviai téli idő", "CAT": "közép-afrikai téli idő", "JST": "japán téli idő", "ACDT": "közép-ausztráliai nyári idő", "MDT": "hegyvidéki nyári idő", "WARST": "nyugat-argentínai nyári idő", "HAT": "új-fundlandi nyári idő", "AEST": "kelet-ausztráliai téli idő", "UYT": "uruguayi téli idő", "HNPMX": "mexikói csendes-óceáni zónaidő", "SRT": "szurinámi idő", "HNCU": "kubai téli idő", "HECU": "kubai nyári idő", "WIB": "nyugat-indonéziai téli idő", "CHADT": "chathami nyári idő", "WAT": "nyugat-afrikai téli idő", "AKDT": "alaszkai nyári idő", "CHAST": "chathami téli idő", "NZDT": "új-zélandi nyári idő", "TMST": "türkmenisztáni nyári idő", "ARST": "Argentínai nyári idő"},
}
}
diff --git a/hu_HU/hu_HU.go b/hu_HU/hu_HU.go
index c1db47bf..d338ba31 100644
--- a/hu_HU/hu_HU.go
+++ b/hu_HU/hu_HU.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"i. e.", "i. sz."},
erasNarrow: []string{"ie.", "isz."},
erasWide: []string{"időszámításunk előtt", "időszámításunk szerint"},
- timezones: map[string]string{"HECU": "kubai nyári idő", "UYST": "uruguayi nyári idő", "HNNOMX": "északnyugat-mexikói zónaidő", "HNCU": "kubai téli idő", "AKST": "alaszkai zónaidő", "PDT": "csendes-óceáni nyári idő", "HKST": "hongkongi nyári idő", "ACDT": "közép-ausztráliai nyári idő", "CDT": "középső államokbeli nyári idő", "WIT": "kelet-indonéziai idő", "WEZ": "nyugat-európai téli idő", "ARST": "Argentínai nyári idő", "EAT": "kelet-afrikai téli idő", "GMT": "greenwichi középidő, téli idő", "ADT": "atlanti-óceáni nyári idő", "VET": "venezuelai idő", "ACST": "közép-ausztráliai téli idő", "MYT": "malajziai idő", "UYT": "uruguayi téli idő", "HAST": "hawaii-aleuti téli idő", "LHST": "Lord Howe-szigeti téli idő", "JDT": "japán nyári idő", "OESZ": "kelet-európai nyári idő", "HENOMX": "északnyugat-mexikói nyári idő", "AWST": "nyugat-ausztráliai téli idő", "MESZ": "közép-európai nyári idő", "WART": "nyugat-argentínai téli idő", "CST": "középső államokbeli zónaidő", "ACWST": "közép-nyugat-ausztráliai téli idő", "HAT": "új-fundlandi nyári idő", "AWDT": "nyugat-ausztráliai nyári idő", "HEPM": "Saint Pierre és Miquelon-i nyári idő", "∅∅∅": "amazóniai nyári idő", "WAST": "nyugat-afrikai nyári idő", "SGT": "szingapúri téli idő", "EST": "keleti államokbeli zónaidő", "HNT": "új-fundlandi zónaidő", "IST": "indiai téli idő", "CLT": "chilei téli idő", "CAT": "közép-afrikai téli idő", "EDT": "keleti államokbeli nyári idő", "WIB": "nyugat-indonéziai téli idő", "AEST": "kelet-ausztráliai téli idő", "MST": "Macaui zónaidő", "WESZ": "nyugat-európai nyári idő", "LHDT": "Lord Howe-szigeti nyári idő", "NZST": "új-zélandi téli idő", "CHAST": "chathami téli idő", "ChST": "chamorrói téli idő", "HEEG": "kelet-grönlandi nyári idő", "COT": "kolumbiai téli idő", "NZDT": "új-zélandi nyári idő", "WAT": "nyugat-afrikai téli idő", "BT": "butáni idő", "HEOG": "nyugat-grönlandi nyári idő", "HKT": "hongkongi téli idő", "TMST": "türkmenisztáni nyári idő", "OEZ": "kelet-európai téli idő", "ECT": "ecuadori téli idő", "SRT": "szurinámi idő", "ART": "argentínai téli idő", "AEDT": "kelet-ausztráliai nyári idő", "CHADT": "chathami nyári idő", "TMT": "türkmenisztáni téli idő", "MDT": "Macaui nyári idő", "HADT": "hawaii-aleuti nyári idő", "PST": "csendes-óceáni zónaidő", "SAST": "dél-afrikai téli idő", "HNEG": "kelet-grönlandi téli idő", "WARST": "nyugat-argentínai nyári idő", "AST": "atlanti-óceáni zónaidő", "ACWDT": "közép-nyugat-ausztráliai nyári idő", "HNPM": "Saint Pierre és Miquelon-i zónaidő", "MEZ": "közép-európai téli idő", "CLST": "chilei nyári idő", "COST": "kolumbiai nyári idő", "HEPMX": "mexikói csendes-óceáni nyári idő", "AKDT": "alaszkai nyári idő", "WITA": "közép-indonéziai idő", "JST": "japán téli idő", "BOT": "bolíviai téli idő", "GFT": "francia-guianai idő", "HNPMX": "mexikói csendes-óceáni zónaidő", "GYT": "guyanai téli idő", "HNOG": "nyugat-grönlandi téli idő"},
+ timezones: map[string]string{"SGT": "szingapúri téli idő", "MESZ": "közép-európai nyári idő", "CHADT": "chathami nyári idő", "HNNOMX": "északnyugat-mexikói zónaidő", "AEST": "kelet-ausztráliai téli idő", "HECU": "kubai nyári idő", "HAST": "hawaii-aleuti téli idő", "ACDT": "közép-ausztráliai nyári idő", "ACST": "közép-ausztráliai téli idő", "HENOMX": "északnyugat-mexikói nyári idő", "AEDT": "kelet-ausztráliai nyári idő", "WAST": "nyugat-afrikai nyári idő", "HNT": "új-fundlandi zónaidő", "CST": "középső államokbeli zónaidő", "ACWDT": "közép-nyugat-ausztráliai nyári idő", "NZST": "új-zélandi téli idő", "MYT": "malajziai idő", "TMT": "türkmenisztáni téli idő", "HKST": "hongkongi nyári idő", "AKDT": "alaszkai nyári idő", "MST": "hegyvidéki zónaidő", "SRT": "szurinámi idő", "CAT": "közép-afrikai téli idő", "WITA": "közép-indonéziai idő", "HNCU": "kubai téli idő", "WIB": "nyugat-indonéziai téli idő", "WIT": "kelet-indonéziai idő", "AWST": "nyugat-ausztráliai téli idő", "JST": "japán téli idő", "ADT": "atlanti-óceáni nyári idő", "∅∅∅": "Acre nyári idő", "HEPMX": "mexikói csendes-óceáni nyári idő", "ECT": "ecuadori téli idő", "HKT": "hongkongi téli idő", "MDT": "hegyvidéki nyári idő", "HNPMX": "mexikói csendes-óceáni zónaidő", "CHAST": "chathami téli idő", "WEZ": "nyugat-európai téli idő", "ART": "argentínai téli idő", "EDT": "keleti államokbeli nyári idő", "ACWST": "közép-nyugat-ausztráliai téli idő", "VET": "venezuelai idő", "EST": "keleti államokbeli zónaidő", "SAST": "dél-afrikai téli idő", "GYT": "guyanai téli idő", "PST": "csendes-óceáni zónaidő", "PDT": "csendes-óceáni nyári idő", "WART": "nyugat-argentínai téli idő", "WARST": "nyugat-argentínai nyári idő", "ARST": "Argentínai nyári idő", "COST": "kolumbiai nyári idő", "HNEG": "kelet-grönlandi téli idő", "AKST": "alaszkai zónaidő", "ChST": "chamorrói téli idő", "EAT": "kelet-afrikai téli idő", "IST": "indiai téli idő", "AST": "atlanti-óceáni zónaidő", "CLST": "chilei nyári idő", "HAT": "új-fundlandi nyári idő", "AWDT": "nyugat-ausztráliai nyári idő", "HNOG": "nyugat-grönlandi téli idő", "HEOG": "nyugat-grönlandi nyári idő", "WESZ": "nyugat-európai nyári idő", "GMT": "greenwichi középidő, téli idő", "CLT": "chilei téli idő", "UYT": "uruguayi téli idő", "GFT": "francia-guianai idő", "UYST": "uruguayi nyári idő", "HEPM": "Saint Pierre és Miquelon-i nyári idő", "MEZ": "közép-európai téli idő", "OESZ": "kelet-európai nyári idő", "COT": "kolumbiai téli idő", "HNPM": "Saint Pierre és Miquelon-i zónaidő", "LHST": "Lord Howe-szigeti téli idő", "CDT": "középső államokbeli nyári idő", "HADT": "hawaii-aleuti nyári idő", "JDT": "japán nyári idő", "TMST": "türkmenisztáni nyári idő", "BT": "butáni idő", "NZDT": "új-zélandi nyári idő", "HEEG": "kelet-grönlandi nyári idő", "LHDT": "Lord Howe-szigeti nyári idő", "BOT": "bolíviai téli idő", "OEZ": "kelet-európai téli idő", "WAT": "nyugat-afrikai téli idő"},
}
}
diff --git a/hy/hy.go b/hy/hy.go
index 58a28581..e32beea4 100644
--- a/hy/hy.go
+++ b/hy/hy.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"Քրիստոսից առաջ", "Քրիստոսից հետո"},
- timezones: map[string]string{"GMT": "Գրինվիչի ժամանակ", "SGT": "Սինգապուրի ժամանակ", "HECU": "Կուբայի ամառային ժամանակ", "UYST": "Ուրուգվայի ամառային ժամանակ", "HNT": "Նյուֆաունդլենդի ստանդարտ ժամանակ", "HEPM": "Սեն Պիեռ և Միքելոնի ամառային ժամանակ", "CLT": "Չիլիի ստանդարտ ժամանակ", "HAT": "Նյուֆաունդլենդի ամառային ժամանակ", "AEDT": "Արևելյան Ավստրալիայի ամառային ժամանակ", "WITA": "Կենտրոնական Ինդոնեզիայի ժամանակ", "LHDT": "Լորդ Հաուի ամառային ժամանակ", "CHAST": "Չաթեմ կղզու ստանդարտ ժամանակ", "ChST": "Չամոռոյի ժամանակ", "EDT": "Արևելյան Ամերիկայի ամառային ժամանակ", "HEPMX": "Մեքսիկայի խաղաղօվկիանոսյան ամառային ժամանակ", "AKDT": "Ալյասկայի ամառային ժամանակ", "HADT": "Հավայան-ալեության ամառային ժամանակ", "AWST": "Արևմտյան Ավստրալիայի ստանդարտ ժամանակ", "ACST": "Կենտրոնական Ավստրալիայի ստանդարտ ժամանակ", "MST": "MST", "AKST": "Ալյասկայի ստանդարտ ժամանակ", "AST": "Ատլանտյան ստանդարտ ժամանակ", "HAST": "Հավայան-ալեության ստանդարտ ժամանակ", "HNPM": "Սեն Պիեռ և Միքելոնի ստանդարտ ժամանակ", "LHST": "Լորդ Հաուի ստանդարտ ժամանակ", "HNEG": "Արևելյան Գրենլանդիայի ստանդարտ ժամանակ", "WAST": "Արևմտյան Աֆրիկայի ամառային ժամանակ", "COST": "Կոլումբիայի ամառային ժամանակ", "ADT": "Ատլանտյան ամառային ժամանակ", "ARST": "Արգենտինայի ամառային ժամանակ", "NZST": "Նոր Զելանդիայի ստանդարտ ժամանակ", "IST": "Հնդկաստանի ստանդարտ ժամանակ", "JST": "Ճապոնիայի ստանդարտ ժամանակ", "GFT": "Ֆրանսիական Գվիանայի ժամանակ", "CAT": "Կենտրոնական Աֆրիկայի ժամանակ", "COT": "Կոլումբիայի ստանդարտ ժամանակ", "HNNOMX": "Հյուսիսարևմտյան Մեքսիկայի ստանդարտ ժամանակ", "HENOMX": "Հյուսիսարևմտյան Մեքսիկայի ամառային ժամանակ", "AEST": "Արևելյան Ավստրալիայի ստանդարտ ժամանակ", "AWDT": "Արևմտյան Ավստրալիայի ամառային ժամանակ", "CLST": "Չիլիի ամառային ժամանակ", "ACDT": "Կենտրոնական Ավստրալիայի ամառային ժամանակ", "WARST": "Արևմտյան Արգենտինայի ամառային ժամանակ", "WAT": "Արևմտյան Աֆրիկայի ստանդարտ ժամանակ", "OESZ": "Արևելյան Եվրոպայի ամառային ժամանակ", "CHADT": "Չաթեմ կղզու ամառային ժամանակ", "WART": "Արևմտյան Արգենտինայի ստնադարտ ժամանակ", "MYT": "Մալայզիայի ժամանակ", "PST": "Խաղաղօվկիանոսյան ստանդարտ ժամանակ", "PDT": "Խաղաղօվկիանոսյան ամառային ժամանակ", "EAT": "Արևելյան Աֆրիկայի ժամանակ", "VET": "Վենեսուելայի ժամանակ", "SRT": "Սուրինամի ժամանակ", "HKT": "Հոնկոնգի ստանդարտ ժամանակ", "BOT": "Բոլիվիայի ժամանակ", "TMT": "Թուրքմենստանի ստանդարտ ժամանակ", "HNPMX": "Մեքսիկայի խաղաղօվկիանոսյան ստանդարտ ժամանակ", "HEEG": "Արևելյան Գրենլանդիայի ամառային ժամանակ", "EST": "Արևելյան Ամերիկայի ստանդարտ ժամանակ", "WEZ": "Արևմտյան Եվրոպայի ստանդարտ ժամանակ", "ACWDT": "Կենտրոնական Ավստրալիայի արևմտյան ամառային ժամանակ", "∅∅∅": "Պերուի ամառային ժամանակ", "HNOG": "Արևմտյան Գրենլանդիայի ստանդարտ ժամանակ", "NZDT": "Նոր Զելանդիայի ամառային ժամանակ", "SAST": "Հարավային Աֆրիկայի ժամանակ", "MDT": "MDT", "ACWST": "Կենտրոնական Ավստրալիայի արևմտյան ստանդարտ ժամանակ", "MESZ": "Կենտրոնական Եվրոպայի ամառային ժամանակ", "JDT": "Ճապոնիայի ամառային ժամանակ", "MEZ": "Կենտրոնական Եվրոպայի ստանդարտ ժամանակ", "ECT": "Էկվադորի ժամանակ", "HNCU": "Կուբայի ստանդարտ ժամանակ", "UYT": "Ուրուգվայի ստանդարտ ժամանակ", "CST": "Կենտրոնական Ամերիկայի ստանդարտ ժամանակ", "CDT": "Կենտրոնական Ամերիկայի ամառային ժամանակ", "GYT": "Գայանայի ժամանակ", "BT": "Բութանի ժամանակ", "TMST": "Թուրքմենստանի ամառային ժամանակ", "OEZ": "Արևելյան Եվրոպայի ստանդարտ ժամանակ", "WIB": "Արևմտյան Ինդոնեզիայի ժամանակ", "WIT": "Արևելյան Ինդոնեզիայի ժամանակ", "WESZ": "Արևմտյան Եվրոպայի ամառային ժամանակ", "ART": "Արգենտինայի ստնադարտ ժամանակ", "HEOG": "Արևմտյան Գրենլանդիայի ամառային ժամանակ", "HKST": "Հոնկոնգի ամառային ժամանակ"},
+ timezones: map[string]string{"HKT": "Հոնկոնգի ստանդարտ ժամանակ", "ACST": "Կենտրոնական Ավստրալիայի ստանդարտ ժամանակ", "HNEG": "Արևելյան Գրենլանդիայի ստանդարտ ժամանակ", "HNPM": "Սեն Պիեռ և Միքելոնի ստանդարտ ժամանակ", "ACWST": "Կենտրոնական Ավստրալիայի արևմտյան ստանդարտ ժամանակ", "NZDT": "Նոր Զելանդիայի ամառային ժամանակ", "HNNOMX": "Հյուսիսարևմտյան Մեքսիկայի ստանդարտ ժամանակ", "HNCU": "Կուբայի ստանդարտ ժամանակ", "GMT": "Գրինվիչի ժամանակ", "COST": "Կոլումբիայի ամառային ժամանակ", "ACDT": "Կենտրոնական Ավստրալիայի ամառային ժամանակ", "HEEG": "Արևելյան Գրենլանդիայի ամառային ժամանակ", "AEDT": "Արևելյան Ավստրալիայի ամառային ժամանակ", "LHDT": "Լորդ Հաուի ամառային ժամանակ", "CAT": "Կենտրոնական Աֆրիկայի ժամանակ", "WEZ": "Արևմտյան Եվրոպայի ստանդարտ ժամանակ", "CDT": "Կենտրոնական Ամերիկայի ամառային ժամանակ", "CHAST": "Չաթեմ կղզու ստանդարտ ժամանակ", "WITA": "Կենտրոնական Ինդոնեզիայի ժամանակ", "LHST": "Լորդ Հաուի ստանդարտ ժամանակ", "AWST": "Արևմտյան Ավստրալիայի ստանդարտ ժամանակ", "AWDT": "Արևմտյան Ավստրալիայի ամառային ժամանակ", "SGT": "Սինգապուրի ժամանակ", "WESZ": "Արևմտյան Եվրոպայի ամառային ժամանակ", "MDT": "MDT", "HEPM": "Սեն Պիեռ և Միքելոնի ամառային ժամանակ", "HNPMX": "Մեքսիկայի խաղաղօվկիանոսյան ստանդարտ ժամանակ", "WIB": "Արևմտյան Ինդոնեզիայի ժամանակ", "WIT": "Արևելյան Ինդոնեզիայի ժամանակ", "HKST": "Հոնկոնգի ամառային ժամանակ", "HAT": "Նյուֆաունդլենդի ամառային ժամանակ", "MST": "MST", "IST": "Հնդկաստանի ստանդարտ ժամանակ", "HNOG": "Արևմտյան Գրենլանդիայի ստանդարտ ժամանակ", "WART": "Արևմտյան Արգենտինայի ստնադարտ ժամանակ", "CLT": "Չիլիի ստանդարտ ժամանակ", "EDT": "Արևելյան Ամերիկայի ամառային ժամանակ", "WAT": "Արևմտյան Աֆրիկայի ստանդարտ ժամանակ", "HNT": "Նյուֆաունդլենդի ստանդարտ ժամանակ", "EAT": "Արևելյան Աֆրիկայի ժամանակ", "ACWDT": "Կենտրոնական Ավստրալիայի արևմտյան ամառային ժամանակ", "MEZ": "Կենտրոնական Եվրոպայի ստանդարտ ժամանակ", "ART": "Արգենտինայի ստնադարտ ժամանակ", "ARST": "Արգենտինայի ամառային ժամանակ", "UYST": "Ուրուգվայի ամառային ժամանակ", "HECU": "Կուբայի ամառային ժամանակ", "MYT": "Մալայզիայի ժամանակ", "WARST": "Արևմտյան Արգենտինայի ամառային ժամանակ", "NZST": "Նոր Զելանդիայի ստանդարտ ժամանակ", "VET": "Վենեսուելայի ժամանակ", "SRT": "Սուրինամի ժամանակ", "CST": "Կենտրոնական Ամերիկայի ստանդարտ ժամանակ", "BOT": "Բոլիվիայի ժամանակ", "PST": "Խաղաղօվկիանոսյան ստանդարտ ժամանակ", "PDT": "Խաղաղօվկիանոսյան ամառային ժամանակ", "HEOG": "Արևմտյան Գրենլանդիայի ամառային ժամանակ", "BT": "Բութանի ժամանակ", "GFT": "Ֆրանսիական Գվիանայի ժամանակ", "GYT": "Գայանայի ժամանակ", "CHADT": "Չաթեմ կղզու ամառային ժամանակ", "HAST": "Հավայան-ալեության ստանդարտ ժամանակ", "JDT": "Ճապոնիայի ամառային ժամանակ", "HADT": "Հավայան-ալեության ամառային ժամանակ", "EST": "Արևելյան Ամերիկայի ստանդարտ ժամանակ", "CLST": "Չիլիի ամառային ժամանակ", "AST": "Ատլանտյան ստանդարտ ժամանակ", "TMT": "Թուրքմենստանի ստանդարտ ժամանակ", "COT": "Կոլումբիայի ստանդարտ ժամանակ", "HEPMX": "Մեքսիկայի խաղաղօվկիանոսյան ամառային ժամանակ", "JST": "Ճապոնիայի ստանդարտ ժամանակ", "OESZ": "Արևելյան Եվրոպայի ամառային ժամանակ", "WAST": "Արևմտյան Աֆրիկայի ամառային ժամանակ", "UYT": "Ուրուգվայի ստանդարտ ժամանակ", "ADT": "Ատլանտյան ամառային ժամանակ", "TMST": "Թուրքմենստանի ամառային ժամանակ", "MESZ": "Կենտրոնական Եվրոպայի ամառային ժամանակ", "OEZ": "Արևելյան Եվրոպայի ստանդարտ ժամանակ", "HENOMX": "Հյուսիսարևմտյան Մեքսիկայի ամառային ժամանակ", "AEST": "Արևելյան Ավստրալիայի ստանդարտ ժամանակ", "AKST": "Ալյասկայի ստանդարտ ժամանակ", "AKDT": "Ալյասկայի ամառային ժամանակ", "ECT": "Էկվադորի ժամանակ", "∅∅∅": "Ամազոնյան ամառային ժամանակ", "ChST": "Չամոռոյի ժամանակ", "SAST": "Հարավային Աֆրիկայի ժամանակ"},
}
}
diff --git a/hy_AM/hy_AM.go b/hy_AM/hy_AM.go
index da696d07..184b2c1a 100644
--- a/hy_AM/hy_AM.go
+++ b/hy_AM/hy_AM.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"Քրիստոսից առաջ", "Քրիստոսից հետո"},
- timezones: map[string]string{"AEST": "Արևելյան Ավստրալիայի ստանդարտ ժամանակ", "HNPM": "Սեն Պիեռ և Միքելոնի ստանդարտ ժամանակ", "HEPM": "Սեն Պիեռ և Միքելոնի ամառային ժամանակ", "CHAST": "Չաթեմ կղզու ստանդարտ ժամանակ", "CLST": "Չիլիի ամառային ժամանակ", "BOT": "Բոլիվիայի ժամանակ", "AKST": "Ալյասկայի ստանդարտ ժամանակ", "ACDT": "Կենտրոնական Ավստրալիայի ամառային ժամանակ", "WAST": "Արևմտյան Աֆրիկայի ամառային ժամանակ", "UYT": "Ուրուգվայի ստանդարտ ժամանակ", "GYT": "Գայանայի ժամանակ", "IST": "Հնդկաստանի ստանդարտ ժամանակ", "HNEG": "Արևելյան Գրենլանդիայի ստանդարտ ժամանակ", "ADT": "Ատլանտյան ամառային ժամանակ", "VET": "Վենեսուելայի ժամանակ", "WEZ": "Արևմտյան Եվրոպայի ստանդարտ ժամանակ", "LHST": "Լորդ Հաուի ստանդարտ ժամանակ", "TMT": "Թուրքմենստանի ստանդարտ ժամանակ", "OESZ": "Արևելյան Եվրոպայի ամառային ժամանակ", "MDT": "MDT", "AKDT": "Ալյասկայի ամառային ժամանակ", "WIB": "Արևմտյան Ինդոնեզիայի ժամանակ", "OEZ": "Արևելյան Եվրոպայի ստանդարտ ժամանակ", "CDT": "Կենտրոնական Ամերիկայի ամառային ժամանակ", "CAT": "Կենտրոնական Աֆրիկայի ժամանակ", "ECT": "Էկվադորի ժամանակ", "GMT": "Գրինվիչի ժամանակ", "ART": "Արգենտինայի ստնադարտ ժամանակ", "WAT": "Արևմտյան Աֆրիկայի ստանդարտ ժամանակ", "COST": "Կոլումբիայի ամառային ժամանակ", "HAT": "Նյուֆաունդլենդի ամառային ժամանակ", "HKT": "Հոնկոնգի ստանդարտ ժամանակ", "HNT": "Նյուֆաունդլենդի ստանդարտ ժամանակ", "ARST": "Արգենտինայի ամառային ժամանակ", "MESZ": "Կենտրոնական Եվրոպայի ամառային ժամանակ", "NZDT": "Նոր Զելանդիայի ամառային ժամանակ", "JDT": "Ճապոնիայի ամառային ժամանակ", "EAT": "Արևելյան Աֆրիկայի ժամանակ", "MYT": "Մալայզիայի ժամանակ", "ACWST": "Կենտրոնական Ավստրալիայի արևմտյան ստանդարտ ժամանակ", "COT": "Կոլումբիայի ստանդարտ ժամանակ", "HENOMX": "Հյուսիսարևմտյան Մեքսիկայի ամառային ժամանակ", "AST": "Ատլանտյան ստանդարտ ժամանակ", "ACWDT": "Կենտրոնական Ավստրալիայի արևմտյան ամառային ժամանակ", "HEOG": "Արևմտյան Գրենլանդիայի ամառային ժամանակ", "WIT": "Արևելյան Ինդոնեզիայի ժամանակ", "NZST": "Նոր Զելանդիայի ստանդարտ ժամանակ", "SAST": "Հարավային Աֆրիկայի ժամանակ", "∅∅∅": "Ամազոնյան ամառային ժամանակ", "WART": "Արևմտյան Արգենտինայի ստնադարտ ժամանակ", "HECU": "Կուբայի ամառային ժամանակ", "HADT": "Հավայան-ալեության ամառային ժամանակ", "CHADT": "Չաթեմ կղզու ամառային ժամանակ", "ACST": "Կենտրոնական Ավստրալիայի ստանդարտ ժամանակ", "HNNOMX": "Հյուսիսարևմտյան Մեքսիկայի ստանդարտ ժամանակ", "UYST": "Ուրուգվայի ամառային ժամանակ", "WESZ": "Արևմտյան Եվրոպայի ամառային ժամանակ", "PST": "Խաղաղօվկիանոսյան ստանդարտ ժամանակ", "PDT": "Խաղաղօվկիանոսյան ամառային ժամանակ", "GFT": "Ֆրանսիական Գվիանայի ժամանակ", "WARST": "Արևմտյան Արգենտինայի ամառային ժամանակ", "EDT": "Արևելյան Ամերիկայի ամառային ժամանակ", "MST": "MST", "HNPMX": "Մեքսիկայի խաղաղօվկիանոսյան ստանդարտ ժամանակ", "SRT": "Սուրինամի ժամանակ", "AEDT": "Արևելյան Ավստրալիայի ամառային ժամանակ", "AWST": "Արևմտյան Ավստրալիայի ստանդարտ ժամանակ", "AWDT": "Արևմտյան Ավստրալիայի ամառային ժամանակ", "HKST": "Հոնկոնգի ամառային ժամանակ", "WITA": "Կենտրոնական Ինդոնեզիայի ժամանակ", "EST": "Արևելյան Ամերիկայի ստանդարտ ժամանակ", "HEPMX": "Մեքսիկայի խաղաղօվկիանոսյան ամառային ժամանակ", "HNCU": "Կուբայի ստանդարտ ժամանակ", "BT": "Բութանի ժամանակ", "HNOG": "Արևմտյան Գրենլանդիայի ստանդարտ ժամանակ", "LHDT": "Լորդ Հաուի ամառային ժամանակ", "CLT": "Չիլիի ստանդարտ ժամանակ", "JST": "Ճապոնիայի ստանդարտ ժամանակ", "TMST": "Թուրքմենստանի ամառային ժամանակ", "SGT": "Սինգապուրի ժամանակ", "HAST": "Հավայան-ալեության ստանդարտ ժամանակ", "MEZ": "Կենտրոնական Եվրոպայի ստանդարտ ժամանակ", "ChST": "Չամոռոյի ժամանակ", "HEEG": "Արևելյան Գրենլանդիայի ամառային ժամանակ", "CST": "Կենտրոնական Ամերիկայի ստանդարտ ժամանակ"},
+ timezones: map[string]string{"AKST": "Ալյասկայի ստանդարտ ժամանակ", "LHDT": "Լորդ Հաուի ամառային ժամանակ", "CHADT": "Չաթեմ կղզու ամառային ժամանակ", "BOT": "Բոլիվիայի ժամանակ", "WAT": "Արևմտյան Աֆրիկայի ստանդարտ ժամանակ", "HKT": "Հոնկոնգի ստանդարտ ժամանակ", "GFT": "Ֆրանսիական Գվիանայի ժամանակ", "SAST": "Հարավային Աֆրիկայի ժամանակ", "HADT": "Հավայան-ալեության ամառային ժամանակ", "WART": "Արևմտյան Արգենտինայի ստնադարտ ժամանակ", "HKST": "Հոնկոնգի ամառային ժամանակ", "HNEG": "Արևելյան Գրենլանդիայի ստանդարտ ժամանակ", "HEPMX": "Մեքսիկայի խաղաղօվկիանոսյան ամառային ժամանակ", "AWST": "Արևմտյան Ավստրալիայի ստանդարտ ժամանակ", "CAT": "Կենտրոնական Աֆրիկայի ժամանակ", "MESZ": "Կենտրոնական Եվրոպայի ամառային ժամանակ", "CLT": "Չիլիի ստանդարտ ժամանակ", "WIT": "Արևելյան Ինդոնեզիայի ժամանակ", "WESZ": "Արևմտյան Եվրոպայի ամառային ժամանակ", "EST": "Արևելյան Ամերիկայի ստանդարտ ժամանակ", "HECU": "Կուբայի ամառային ժամանակ", "SGT": "Սինգապուրի ժամանակ", "NZST": "Նոր Զելանդիայի ստանդարտ ժամանակ", "EDT": "Արևելյան Ամերիկայի ամառային ժամանակ", "BT": "Բութանի ժամանակ", "AST": "Ատլանտյան ստանդարտ ժամանակ", "WEZ": "Արևմտյան Եվրոպայի ստանդարտ ժամանակ", "ART": "Արգենտինայի ստնադարտ ժամանակ", "ARST": "Արգենտինայի ամառային ժամանակ", "CST": "Կենտրոնական Ամերիկայի ստանդարտ ժամանակ", "∅∅∅": "Բրազիլիայի ամառային ժամանակ", "NZDT": "Նոր Զելանդիայի ամառային ժամանակ", "CLST": "Չիլիի ամառային ժամանակ", "HNCU": "Կուբայի ստանդարտ ժամանակ", "COT": "Կոլումբիայի ստանդարտ ժամանակ", "HAT": "Նյուֆաունդլենդի ամառային ժամանակ", "UYT": "Ուրուգվայի ստանդարտ ժամանակ", "EAT": "Արևելյան Աֆրիկայի ժամանակ", "HEPM": "Սեն Պիեռ և Միքելոնի ամառային ժամանակ", "GYT": "Գայանայի ժամանակ", "HAST": "Հավայան-ալեության ստանդարտ ժամանակ", "VET": "Վենեսուելայի ժամանակ", "WAST": "Արևմտյան Աֆրիկայի ամառային ժամանակ", "ChST": "Չամոռոյի ժամանակ", "IST": "Հնդկաստանի ստանդարտ ժամանակ", "WARST": "Արևմտյան Արգենտինայի ամառային ժամանակ", "ADT": "Ատլանտյան ամառային ժամանակ", "MYT": "Մալայզիայի ժամանակ", "HENOMX": "Հյուսիսարևմտյան Մեքսիկայի ամառային ժամանակ", "AEST": "Արևելյան Ավստրալիայի ստանդարտ ժամանակ", "ACWST": "Կենտրոնական Ավստրալիայի արևմտյան ստանդարտ ժամանակ", "HNOG": "Արևմտյան Գրենլանդիայի ստանդարտ ժամանակ", "OEZ": "Արևելյան Եվրոպայի ստանդարտ ժամանակ", "TMST": "Թուրքմենստանի ամառային ժամանակ", "MEZ": "Կենտրոնական Եվրոպայի ստանդարտ ժամանակ", "ACST": "Կենտրոնական Ավստրալիայի ստանդարտ ժամանակ", "HNT": "Նյուֆաունդլենդի ստանդարտ ժամանակ", "LHST": "Լորդ Հաուի ստանդարտ ժամանակ", "MST": "MST", "MDT": "MDT", "SRT": "Սուրինամի ժամանակ", "HNNOMX": "Հյուսիսարևմտյան Մեքսիկայի ստանդարտ ժամանակ", "AKDT": "Ալյասկայի ամառային ժամանակ", "HNPM": "Սեն Պիեռ և Միքելոնի ստանդարտ ժամանակ", "ECT": "Էկվադորի ժամանակ", "PDT": "Խաղաղօվկիանոսյան ամառային ժամանակ", "JST": "Ճապոնիայի ստանդարտ ժամանակ", "HEOG": "Արևմտյան Գրենլանդիայի ամառային ժամանակ", "UYST": "Ուրուգվայի ամառային ժամանակ", "AWDT": "Արևմտյան Ավստրալիայի ամառային ժամանակ", "CHAST": "Չաթեմ կղզու ստանդարտ ժամանակ", "HEEG": "Արևելյան Գրենլանդիայի ամառային ժամանակ", "WITA": "Կենտրոնական Ինդոնեզիայի ժամանակ", "PST": "Խաղաղօվկիանոսյան ստանդարտ ժամանակ", "OESZ": "Արևելյան Եվրոպայի ամառային ժամանակ", "TMT": "Թուրքմենստանի ստանդարտ ժամանակ", "AEDT": "Արևելյան Ավստրալիայի ամառային ժամանակ", "ACWDT": "Կենտրոնական Ավստրալիայի արևմտյան ամառային ժամանակ", "COST": "Կոլումբիայի ամառային ժամանակ", "HNPMX": "Մեքսիկայի խաղաղօվկիանոսյան ստանդարտ ժամանակ", "WIB": "Արևմտյան Ինդոնեզիայի ժամանակ", "CDT": "Կենտրոնական Ամերիկայի ամառային ժամանակ", "JDT": "Ճապոնիայի ամառային ժամանակ", "GMT": "Գրինվիչի ժամանակ", "ACDT": "Կենտրոնական Ավստրալիայի ամառային ժամանակ"},
}
}
diff --git a/id/id.go b/id/id.go
index 4905a8a0..a9bf9ae5 100644
--- a/id/id.go
+++ b/id/id.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"SM", "M"},
erasNarrow: []string{"SM", "M"},
erasWide: []string{"Sebelum Masehi", "Masehi"},
- timezones: map[string]string{"JDT": "Waktu Musim Panas Jepang", "TMT": "Waktu Standar Turkmenistan", "ChST": "Waktu Standar Chamorro", "HECU": "Waktu Musim Panas Kuba", "EST": "Waktu Standar Timur", "AKDT": "Waktu Musim Panas Alaska", "SAST": "Waktu Standar Afrika Selatan", "JST": "Waktu Standar Jepang", "GYT": "Waktu Guyana", "WIT": "Waktu Indonesia Timur", "AEDT": "Waktu Musim Panas Timur Australia", "HEPM": "Waktu Musim Panas Saint Pierre dan Miquelon", "WARST": "Waktu Musim Panas Argentina Bagian Barat", "COT": "Waktu Standar Kolombia", "ACDT": "Waktu Musim Panas Tengah Australia", "HNCU": "Waktu Standar Kuba", "ARST": "Waktu Musim Panas Argentina", "AWST": "Waktu Standar Barat Australia", "CHAST": "Waktu Standar Chatham", "BOT": "Waktu Bolivia", "UYT": "Waktu Standar Uruguay", "HAST": "Waktu Standar Hawaii-Aleutian", "AWDT": "Waktu Musim Panas Barat Australia", "MESZ": "Waktu Musim Panas Eropa Tengah", "ECT": "Waktu Ekuador", "WART": "Waktu Standar Argentina Bagian Barat", "MST": "Waktu Standar Makau", "CDT": "Waktu Musim Panas Tengah", "SRT": "Waktu Suriname", "NZST": "Waktu Standar Selandia Baru", "HNEG": "Waktu Standar Greenland Timur", "HEEG": "Waktu Musim Panas Greenland Timur", "WAST": "Waktu Musim Panas Afrika Barat", "OESZ": "Waktu Musim Panas Eropa Timur", "ART": "Waktu Standar Argentina", "HEOG": "Waktu Musim Panas Greenland Barat", "LHST": "Waktu Standar Lord Howe", "CLST": "Waktu Musim Panas Cile", "EAT": "Waktu Afrika Timur", "ADT": "Waktu Musim Panas Atlantik", "BT": "Waktu Bhutan", "PDT": "Waktu Musim Panas Pasifik", "ACST": "Waktu Standar Tengah Australia", "CAT": "Waktu Afrika Tengah", "WIB": "Waktu Indonesia Barat", "WEZ": "Waktu Standar Eropa Barat", "HNNOMX": "Waktu Standar Meksiko Barat Laut", "CST": "Waktu Standar Tengah", "COST": "Waktu Musim Panas Kolombia", "MYT": "Waktu Malaysia", "PST": "Waktu Standar Pasifik", "HKT": "Waktu Standar Hong Kong", "LHDT": "Waktu Musim Panas Lord Howe", "IST": "Waktu India", "HAT": "Waktu Musim Panas Newfoundland", "HNOG": "Waktu Standar Greenland Barat", "MDT": "Waktu Musim Panas Makau", "UYST": "Waktu Musim Panas Uruguay", "HADT": "Waktu Musim Panas Hawaii-Aleutian", "CHADT": "Waktu Musim Panas Chatham", "EDT": "Waktu Musim Panas Timur", "HEPMX": "Waktu Musim Panas Pasifik Meksiko", "WITA": "Waktu Indonesia Tengah", "∅∅∅": "Waktu Musim Panas Amazon", "SGT": "Waktu Standar Singapura", "AST": "Waktu Standar Atlantik", "VET": "Waktu Venezuela", "HNT": "Waktu Standar Newfoundland", "HKST": "Waktu Musim Panas Hong Kong", "NZDT": "Waktu Musim Panas Selandia Baru", "WAT": "Waktu Standar Afrika Barat", "TMST": "Waktu Musim Panas Turkmenistan", "OEZ": "Waktu Standar Eropa Timur", "HENOMX": "Waktu Musim Panas Meksiko Barat Laut", "GMT": "Greenwich Mean Time", "HNPMX": "Waktu Standar Pasifik Meksiko", "ACWDT": "Waktu Musim Panas Barat Tengah Australia", "CLT": "Waktu Standar Cile", "GFT": "Waktu Guyana Prancis", "WESZ": "Waktu Musim Panas Eropa Barat", "HNPM": "Waktu Standar Saint Pierre dan Miquelon", "ACWST": "Waktu Standar Barat Tengah Australia", "AEST": "Waktu Standar Timur Australia", "MEZ": "Waktu Standar Eropa Tengah", "AKST": "Waktu Standar Alaska"},
+ timezones: map[string]string{"HKT": "Waktu Standar Hong Kong", "ACDT": "Waktu Musim Panas Tengah Australia", "AKDT": "Waktu Musim Panas Alaska", "WEZ": "Waktu Standar Eropa Barat", "EST": "Waktu Standar Timur", "LHST": "Waktu Standar Lord Howe", "AWST": "Waktu Standar Barat Australia", "ACWST": "Waktu Standar Barat Tengah Australia", "ACWDT": "Waktu Musim Panas Barat Tengah Australia", "MESZ": "Waktu Musim Panas Eropa Tengah", "CLST": "Waktu Musim Panas Cile", "AST": "Waktu Standar Atlantik", "UYT": "Waktu Standar Uruguay", "OEZ": "Waktu Standar Eropa Timur", "MYT": "Waktu Malaysia", "WIB": "Waktu Indonesia Barat", "HECU": "Waktu Musim Panas Kuba", "LHDT": "Waktu Musim Panas Lord Howe", "BT": "Waktu Bhutan", "GYT": "Waktu Guyana", "JST": "Waktu Standar Jepang", "WAST": "Waktu Musim Panas Afrika Barat", "SRT": "Waktu Suriname", "HNPMX": "Waktu Standar Pasifik Meksiko", "HADT": "Waktu Musim Panas Hawaii-Aleutian", "WART": "Waktu Standar Argentina Bagian Barat", "UYST": "Waktu Musim Panas Uruguay", "NZST": "Waktu Standar Selandia Baru", "SGT": "Waktu Standar Singapura", "ARST": "Waktu Musim Panas Argentina", "WAT": "Waktu Standar Afrika Barat", "WIT": "Waktu Indonesia Timur", "AWDT": "Waktu Musim Panas Barat Australia", "NZDT": "Waktu Musim Panas Selandia Baru", "ADT": "Waktu Musim Panas Atlantik", "WESZ": "Waktu Musim Panas Eropa Barat", "MST": "Waktu Standar Makau", "HNT": "Waktu Standar Newfoundland", "HAT": "Waktu Musim Panas Newfoundland", "AKST": "Waktu Standar Alaska", "SAST": "Waktu Standar Afrika Selatan", "CDT": "Waktu Musim Panas Tengah", "CHADT": "Waktu Musim Panas Chatham", "VET": "Waktu Venezuela", "HENOMX": "Waktu Musim Panas Meksiko Barat Laut", "HEOG": "Waktu Musim Panas Greenland Barat", "GMT": "Greenwich Mean Time", "HKST": "Waktu Musim Panas Hong Kong", "GFT": "Waktu Guyana Prancis", "ChST": "Waktu Standar Chamorro", "EAT": "Waktu Afrika Timur", "ECT": "Waktu Ekuador", "CAT": "Waktu Afrika Tengah", "CLT": "Waktu Standar Cile", "MDT": "Waktu Musim Panas Makau", "HNOG": "Waktu Standar Greenland Barat", "HNNOMX": "Waktu Standar Meksiko Barat Laut", "HEEG": "Waktu Musim Panas Greenland Timur", "AEST": "Waktu Standar Timur Australia", "AEDT": "Waktu Musim Panas Timur Australia", "HEPMX": "Waktu Musim Panas Pasifik Meksiko", "CHAST": "Waktu Standar Chatham", "HAST": "Waktu Standar Hawaii-Aleutian", "COT": "Waktu Standar Kolombia", "WARST": "Waktu Musim Panas Argentina Bagian Barat", "TMST": "Waktu Musim Panas Turkmenistan", "JDT": "Waktu Musim Panas Jepang", "HNEG": "Waktu Standar Greenland Timur", "HEPM": "Waktu Musim Panas Saint Pierre dan Miquelon", "ACST": "Waktu Standar Tengah Australia", "CST": "Waktu Standar Tengah", "BOT": "Waktu Bolivia", "PDT": "Waktu Musim Panas Pasifik", "IST": "Waktu India", "EDT": "Waktu Musim Panas Timur", "WITA": "Waktu Indonesia Tengah", "HNPM": "Waktu Standar Saint Pierre dan Miquelon", "PST": "Waktu Standar Pasifik", "OESZ": "Waktu Musim Panas Eropa Timur", "ART": "Waktu Standar Argentina", "∅∅∅": "Waktu Musim Panas Acre", "HNCU": "Waktu Standar Kuba", "MEZ": "Waktu Standar Eropa Tengah", "TMT": "Waktu Standar Turkmenistan", "COST": "Waktu Musim Panas Kolombia"},
}
}
diff --git a/id_ID/id_ID.go b/id_ID/id_ID.go
index 8d619375..442dc972 100644
--- a/id_ID/id_ID.go
+++ b/id_ID/id_ID.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"SM", "M"},
erasNarrow: []string{"SM", "M"},
erasWide: []string{"Sebelum Masehi", "Masehi"},
- timezones: map[string]string{"HNT": "Waktu Standar Newfoundland", "IST": "Waktu India", "∅∅∅": "Waktu Musim Panas Amazon", "HEEG": "Waktu Musim Panas Greenland Timur", "WARST": "Waktu Musim Panas Argentina Bagian Barat", "HEPMX": "Waktu Musim Panas Pasifik Meksiko", "ADT": "Waktu Musim Panas Atlantik", "OEZ": "Waktu Standar Eropa Timur", "GMT": "Greenwich Mean Time", "UYST": "Waktu Musim Panas Uruguay", "WEZ": "Waktu Standar Eropa Barat", "HEPM": "Waktu Musim Panas Saint Pierre dan Miquelon", "HADT": "Waktu Musim Panas Hawaii-Aleutian", "MEZ": "Waktu Standar Eropa Tengah", "ChST": "Waktu Standar Chamorro", "TMST": "Waktu Musim Panas Turkmenistan", "MST": "Waktu Standar Makau", "CDT": "Waktu Musim Panas Tengah", "MYT": "Waktu Malaysia", "MESZ": "Waktu Musim Panas Eropa Tengah", "SRT": "Waktu Suriname", "ARST": "Waktu Musim Panas Argentina", "CAT": "Waktu Afrika Tengah", "HECU": "Waktu Musim Panas Kuba", "HNPMX": "Waktu Standar Pasifik Meksiko", "BT": "Waktu Bhutan", "PDT": "Waktu Musim Panas Pasifik", "HNPM": "Waktu Standar Saint Pierre dan Miquelon", "NZDT": "Waktu Musim Panas Selandia Baru", "ACDT": "Waktu Musim Panas Tengah Australia", "UYT": "Waktu Standar Uruguay", "PST": "Waktu Standar Pasifik", "AWDT": "Waktu Musim Panas Barat Australia", "EAT": "Waktu Afrika Timur", "HAT": "Waktu Musim Panas Newfoundland", "AWST": "Waktu Standar Barat Australia", "LHST": "Waktu Standar Lord Howe", "AKST": "Waktu Standar Alaska", "CST": "Waktu Standar Tengah", "WAT": "Waktu Standar Afrika Barat", "ECT": "Waktu Ekuador", "HNOG": "Waktu Standar Greenland Barat", "TMT": "Waktu Standar Turkmenistan", "AKDT": "Waktu Musim Panas Alaska", "LHDT": "Waktu Musim Panas Lord Howe", "NZST": "Waktu Standar Selandia Baru", "CLT": "Waktu Standar Cile", "JDT": "Waktu Musim Panas Jepang", "BOT": "Waktu Bolivia", "GFT": "Waktu Guyana Prancis", "AEST": "Waktu Standar Timur Australia", "WITA": "Waktu Indonesia Tengah", "SAST": "Waktu Standar Afrika Selatan", "OESZ": "Waktu Musim Panas Eropa Timur", "WART": "Waktu Standar Argentina Bagian Barat", "EDT": "Waktu Musim Panas Timur", "ART": "Waktu Standar Argentina", "AEDT": "Waktu Musim Panas Timur Australia", "HKT": "Waktu Standar Hong Kong", "CLST": "Waktu Musim Panas Cile", "WAST": "Waktu Musim Panas Afrika Barat", "HENOMX": "Waktu Musim Panas Meksiko Barat Laut", "SGT": "Waktu Standar Singapura", "WIB": "Waktu Indonesia Barat", "HEOG": "Waktu Musim Panas Greenland Barat", "AST": "Waktu Standar Atlantik", "HAST": "Waktu Standar Hawaii-Aleutian", "CHAST": "Waktu Standar Chatham", "CHADT": "Waktu Musim Panas Chatham", "HNEG": "Waktu Standar Greenland Timur", "COT": "Waktu Standar Kolombia", "COST": "Waktu Musim Panas Kolombia", "HNNOMX": "Waktu Standar Meksiko Barat Laut", "WIT": "Waktu Indonesia Timur", "ACWST": "Waktu Standar Barat Tengah Australia", "JST": "Waktu Standar Jepang", "EST": "Waktu Standar Timur", "MDT": "Waktu Musim Panas Makau", "GYT": "Waktu Guyana", "VET": "Waktu Venezuela", "ACST": "Waktu Standar Tengah Australia", "HNCU": "Waktu Standar Kuba", "WESZ": "Waktu Musim Panas Eropa Barat", "ACWDT": "Waktu Musim Panas Barat Tengah Australia", "HKST": "Waktu Musim Panas Hong Kong"},
+ timezones: map[string]string{"TMST": "Waktu Musim Panas Turkmenistan", "EDT": "Waktu Musim Panas Timur", "CHADT": "Waktu Musim Panas Chatham", "BOT": "Waktu Bolivia", "MESZ": "Waktu Musim Panas Eropa Tengah", "HNOG": "Waktu Standar Greenland Barat", "OEZ": "Waktu Standar Eropa Timur", "WEZ": "Waktu Standar Eropa Barat", "WAST": "Waktu Musim Panas Afrika Barat", "HKT": "Waktu Standar Hong Kong", "COT": "Waktu Standar Kolombia", "HEEG": "Waktu Musim Panas Greenland Timur", "ECT": "Waktu Ekuador", "ACWST": "Waktu Standar Barat Tengah Australia", "WART": "Waktu Standar Argentina Bagian Barat", "CLT": "Waktu Standar Cile", "CLST": "Waktu Musim Panas Cile", "HEOG": "Waktu Musim Panas Greenland Barat", "OESZ": "Waktu Musim Panas Eropa Timur", "COST": "Waktu Musim Panas Kolombia", "∅∅∅": "Waktu Musim Panas Acre", "AEDT": "Waktu Musim Panas Timur Australia", "AWST": "Waktu Standar Barat Australia", "NZST": "Waktu Standar Selandia Baru", "WESZ": "Waktu Musim Panas Eropa Barat", "GFT": "Waktu Guyana Prancis", "AKST": "Waktu Standar Alaska", "HNPM": "Waktu Standar Saint Pierre dan Miquelon", "LHDT": "Waktu Musim Panas Lord Howe", "CDT": "Waktu Musim Panas Tengah", "AEST": "Waktu Standar Timur Australia", "ChST": "Waktu Standar Chamorro", "SRT": "Waktu Suriname", "CHAST": "Waktu Standar Chatham", "VET": "Waktu Venezuela", "ACDT": "Waktu Musim Panas Tengah Australia", "HAT": "Waktu Musim Panas Newfoundland", "UYT": "Waktu Standar Uruguay", "HEPMX": "Waktu Musim Panas Pasifik Meksiko", "AWDT": "Waktu Musim Panas Barat Australia", "PDT": "Waktu Musim Panas Pasifik", "JST": "Waktu Standar Jepang", "GMT": "Greenwich Mean Time", "WAT": "Waktu Standar Afrika Barat", "HECU": "Waktu Musim Panas Kuba", "ADT": "Waktu Musim Panas Atlantik", "ARST": "Waktu Musim Panas Argentina", "EST": "Waktu Standar Timur", "HNNOMX": "Waktu Standar Meksiko Barat Laut", "WIB": "Waktu Indonesia Barat", "CST": "Waktu Standar Tengah", "WARST": "Waktu Musim Panas Argentina Bagian Barat", "AKDT": "Waktu Musim Panas Alaska", "UYST": "Waktu Musim Panas Uruguay", "HNPMX": "Waktu Standar Pasifik Meksiko", "EAT": "Waktu Afrika Timur", "ACST": "Waktu Standar Tengah Australia", "WITA": "Waktu Indonesia Tengah", "TMT": "Waktu Standar Turkmenistan", "GYT": "Waktu Guyana", "CAT": "Waktu Afrika Tengah", "MDT": "Waktu Musim Panas Makau", "ART": "Waktu Standar Argentina", "HENOMX": "Waktu Musim Panas Meksiko Barat Laut", "SAST": "Waktu Standar Afrika Selatan", "LHST": "Waktu Standar Lord Howe", "HKST": "Waktu Musim Panas Hong Kong", "BT": "Waktu Bhutan", "HNEG": "Waktu Standar Greenland Timur", "JDT": "Waktu Musim Panas Jepang", "AST": "Waktu Standar Atlantik", "HEPM": "Waktu Musim Panas Saint Pierre dan Miquelon", "HAST": "Waktu Standar Hawaii-Aleutian", "MEZ": "Waktu Standar Eropa Tengah", "MYT": "Waktu Malaysia", "MST": "Waktu Standar Makau", "HNCU": "Waktu Standar Kuba", "SGT": "Waktu Standar Singapura", "PST": "Waktu Standar Pasifik", "NZDT": "Waktu Musim Panas Selandia Baru", "HNT": "Waktu Standar Newfoundland", "WIT": "Waktu Indonesia Timur", "HADT": "Waktu Musim Panas Hawaii-Aleutian", "IST": "Waktu India", "ACWDT": "Waktu Musim Panas Barat Tengah Australia"},
}
}
diff --git a/ig/ig.go b/ig/ig.go
index cffc159b..41ffe067 100644
--- a/ig/ig.go
+++ b/ig/ig.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"T.K.", "A.K."},
erasNarrow: []string{"T.K.", "A.K."},
erasWide: []string{"Tupu Kristi", "Afọ Kristi"},
- timezones: map[string]string{"HNPMX": "HNPMX", "ADT": "ADT", "MESZ": "MESZ", "NZST": "NZST", "EDT": "EDT", "UYST": "UYST", "SRT": "SRT", "EST": "EST", "HNOG": "HNOG", "CHADT": "CHADT", "JDT": "JDT", "HAST": "HAST", "BT": "BT", "WEZ": "WEZ", "WITA": "WITA", "SAST": "SAST", "GFT": "GFT", "TMT": "TMT", "PDT": "PDT", "AEST": "AEST", "EAT": "EAT", "TMST": "TMST", "HEPMX": "HEPMX", "CST": "CST", "GYT": "GYT", "AWDT": "AWDT", "MEZ": "MEZ", "HNEG": "HNEG", "HEEG": "HEEG", "WART": "WART", "AKDT": "AKDT", "PST": "PST", "ARST": "ARST", "HKT": "HKT", "HNNOMX": "HNNOMX", "UYT": "UYT", "VET": "VET", "ACWST": "ACWST", "ACWDT": "ACWDT", "HKST": "HKST", "HNPM": "HNPM", "ChST": "ChST", "MST": "MST", "CLT": "CLT", "JST": "JST", "WAT": "WAT", "OESZ": "OESZ", "ECT": "ECT", "SGT": "SGT", "WIT": "WIT", "IST": "IST", "CAT": "CAT", "COST": "COST", "HENOMX": "HENOMX", "HNCU": "HNCU", "AEDT": "AEDT", "ACDT": "ACDT", "GMT": "GMT", "HECU": "HECU", "MDT": "MDT", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "LHST": "LHST", "NZDT": "NZDT", "BOT": "BOT", "ACST": "ACST", "WAST": "WAST", "CDT": "CDT", "MYT": "MYT", "WIB": "WIB", "HAT": "HAT", "HEOG": "HEOG", "CHAST": "CHAST", "CLST": "CLST", "HADT": "HADT", "WESZ": "WESZ", "ART": "ART", "AWST": "AWST", "OEZ": "OEZ", "WARST": "WARST", "COT": "COT", "AKST": "AKST", "AST": "AST", "HNT": "HNT", "HEPM": "HEPM"},
+ timezones: map[string]string{"JDT": "JDT", "MYT": "MYT", "TMT": "TMT", "MST": "MST", "UYT": "UYT", "CHAST": "CHAST", "IST": "IST", "NZDT": "NZDT", "HNPM": "HNPM", "CDT": "CDT", "TMST": "TMST", "MESZ": "MESZ", "WARST": "WARST", "COST": "COST", "GFT": "GFT", "GYT": "GYT", "SGT": "SGT", "CAT": "CAT", "CLST": "CLST", "AST": "AST", "ADT": "ADT", "ACST": "ACST", "HENOMX": "HENOMX", "HEPM": "HEPM", "AWDT": "AWDT", "PDT": "PDT", "WESZ": "WESZ", "OESZ": "OESZ", "GMT": "GMT", "HKT": "HKT", "∅∅∅": "∅∅∅", "WART": "WART", "AEDT": "AEDT", "SRT": "SRT", "VET": "VET", "EDT": "EDT", "HNOG": "HNOG", "WAST": "WAST", "HNT": "HNT", "WITA": "WITA", "WIB": "WIB", "PST": "PST", "ACWST": "ACWST", "EST": "EST", "HNNOMX": "HNNOMX", "UYST": "UYST", "JST": "JST", "OEZ": "OEZ", "WAT": "WAT", "WEZ": "WEZ", "COT": "COT", "HNEG": "HNEG", "AKDT": "AKDT", "MDT": "MDT", "ECT": "ECT", "ACDT": "ACDT", "LHST": "LHST", "EAT": "EAT", "AWST": "AWST", "HADT": "HADT", "BT": "BT", "HEEG": "HEEG", "AKST": "AKST", "NZST": "NZST", "ARST": "ARST", "HNPMX": "HNPMX", "CST": "CST", "MEZ": "MEZ", "AEST": "AEST", "HEPMX": "HEPMX", "ACWDT": "ACWDT", "HEOG": "HEOG", "ART": "ART", "HKST": "HKST", "SAST": "SAST", "LHDT": "LHDT", "WIT": "WIT", "CHADT": "CHADT", "CLT": "CLT", "HAST": "HAST", "HAT": "HAT", "ChST": "ChST", "HNCU": "HNCU", "HECU": "HECU", "BOT": "BOT"},
}
}
diff --git a/ig_NG/ig_NG.go b/ig_NG/ig_NG.go
index a4fb976e..d6b81764 100644
--- a/ig_NG/ig_NG.go
+++ b/ig_NG/ig_NG.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"T.K.", "A.K."},
erasNarrow: []string{"T.K.", "A.K."},
erasWide: []string{"Tupu Kristi", "Afọ Kristi"},
- timezones: map[string]string{"ACWST": "ACWST", "CHAST": "CHAST", "CHADT": "CHADT", "HENOMX": "HENOMX", "PDT": "PDT", "AEDT": "AEDT", "HKT": "HKT", "IST": "IST", "ECT": "ECT", "UYT": "UYT", "WIT": "WIT", "ART": "ART", "ACDT": "ACDT", "WARST": "WARST", "HADT": "HADT", "JDT": "JDT", "GMT": "GMT", "HEPMX": "HEPMX", "WITA": "WITA", "BT": "BT", "AWDT": "AWDT", "CLST": "CLST", "JST": "JST", "HEEG": "HEEG", "EAT": "EAT", "WART": "WART", "VET": "VET", "MYT": "MYT", "OESZ": "OESZ", "CDT": "CDT", "WAT": "WAT", "HNEG": "HNEG", "COST": "COST", "HNPMX": "HNPMX", "ADT": "ADT", "GYT": "GYT", "NZDT": "NZDT", "BOT": "BOT", "PST": "PST", "ACWDT": "ACWDT", "MEZ": "MEZ", "AST": "AST", "SRT": "SRT", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "TMT": "TMT", "TMST": "TMST", "ACST": "ACST", "CAT": "CAT", "SGT": "SGT", "HAST": "HAST", "AKDT": "AKDT", "UYST": "UYST", "AKST": "AKST", "HAT": "HAT", "EST": "EST", "EDT": "EDT", "MST": "MST", "CST": "CST", "HNT": "HNT", "MESZ": "MESZ", "NZST": "NZST", "ChST": "ChST", "COT": "COT", "WIB": "WIB", "WESZ": "WESZ", "ARST": "ARST", "AEST": "AEST", "HKST": "HKST", "HNPM": "HNPM", "SAST": "SAST", "OEZ": "OEZ", "MDT": "MDT", "WEZ": "WEZ", "CLT": "CLT", "GFT": "GFT", "WAST": "WAST", "HNCU": "HNCU", "HECU": "HECU", "AWST": "AWST", "LHST": "LHST", "HNOG": "HNOG", "LHDT": "LHDT", "HNNOMX": "HNNOMX", "HEPM": "HEPM"},
+ timezones: map[string]string{"NZST": "NZST", "JDT": "JDT", "CLST": "CLST", "HNNOMX": "HNNOMX", "IST": "IST", "HKT": "HKT", "BOT": "BOT", "ADT": "ADT", "HNT": "HNT", "SGT": "SGT", "TMST": "TMST", "HNPM": "HNPM", "LHST": "LHST", "GYT": "GYT", "HNCU": "HNCU", "∅∅∅": "∅∅∅", "MEZ": "MEZ", "MYT": "MYT", "CDT": "CDT", "HADT": "HADT", "OESZ": "OESZ", "WESZ": "WESZ", "COT": "COT", "EAT": "EAT", "WIB": "WIB", "AWST": "AWST", "CHADT": "CHADT", "PST": "PST", "HAST": "HAST", "MESZ": "MESZ", "WEZ": "WEZ", "MST": "MST", "WAST": "WAST", "ACST": "ACST", "ACDT": "ACDT", "ChST": "ChST", "SAST": "SAST", "WART": "WART", "MDT": "MDT", "EDT": "EDT", "GFT": "GFT", "CST": "CST", "CAT": "CAT", "ARST": "ARST", "HAT": "HAT", "HNEG": "HNEG", "HEEG": "HEEG", "UYT": "UYT", "WAT": "WAT", "SRT": "SRT", "HNPMX": "HNPMX", "WARST": "WARST", "ECT": "ECT", "ACWST": "ACWST", "ACWDT": "ACWDT", "CLT": "CLT", "HNOG": "HNOG", "OEZ": "OEZ", "HKST": "HKST", "COST": "COST", "UYST": "UYST", "WIT": "WIT", "VET": "VET", "JST": "JST", "GMT": "GMT", "HEOG": "HEOG", "AST": "AST", "HENOMX": "HENOMX", "LHDT": "LHDT", "WITA": "WITA", "HEPMX": "HEPMX", "HECU": "HECU", "CHAST": "CHAST", "PDT": "PDT", "AKST": "AKST", "HEPM": "HEPM", "NZDT": "NZDT", "TMT": "TMT", "ART": "ART", "EST": "EST", "BT": "BT", "AEST": "AEST", "AEDT": "AEDT", "AKDT": "AKDT", "AWDT": "AWDT"},
}
}
diff --git a/ii/ii.go b/ii/ii.go
index a30ad356..61753daa 100644
--- a/ii/ii.go
+++ b/ii/ii.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ꃅꋊꂿ", "ꃅꋊꊂ"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"NZDT": "NZDT", "OEZ": "OEZ", "MST": "MST", "GYT": "GYT", "ART": "ART", "WITA": "WITA", "HNPM": "HNPM", "MEZ": "MEZ", "LHST": "LHST", "AST": "AST", "HEOG": "HEOG", "AWDT": "AWDT", "CHAST": "CHAST", "WAST": "WAST", "HNOG": "HNOG", "HKT": "HKT", "CAT": "CAT", "HEPMX": "HEPMX", "VET": "VET", "BT": "BT", "HNT": "HNT", "AWST": "AWST", "HKST": "HKST", "ECT": "ECT", "HENOMX": "HENOMX", "SGT": "SGT", "ADT": "ADT", "WIB": "WIB", "HADT": "HADT", "ACST": "ACST", "CHADT": "CHADT", "WART": "WART", "WARST": "WARST", "COT": "COT", "AKST": "AKST", "MYT": "MYT", "HAT": "HAT", "HEPM": "HEPM", "SAST": "SAST", "LHDT": "LHDT", "EST": "EST", "EDT": "EDT", "MDT": "MDT", "WEZ": "WEZ", "ACWST": "ACWST", "ARST": "ARST", "MESZ": "MESZ", "BOT": "BOT", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "UYT": "UYT", "CLST": "CLST", "HNEG": "HNEG", "WAT": "WAT", "COST": "COST", "PDT": "PDT", "ChST": "ChST", "ACDT": "ACDT", "OESZ": "OESZ", "HNCU": "HNCU", "CST": "CST", "CDT": "CDT", "WIT": "WIT", "NZST": "NZST", "GMT": "GMT", "UYST": "UYST", "SRT": "SRT", "PST": "PST", "CLT": "CLT", "JST": "JST", "HNNOMX": "HNNOMX", "WESZ": "WESZ", "IST": "IST", "TMT": "TMT", "GFT": "GFT", "EAT": "EAT", "HECU": "HECU", "HAST": "HAST", "ACWDT": "ACWDT", "AEST": "AEST", "AEDT": "AEDT", "HEEG": "HEEG", "HNPMX": "HNPMX", "JDT": "JDT", "TMST": "TMST"},
+ timezones: map[string]string{"BT": "BT", "GFT": "GFT", "SAST": "SAST", "HNCU": "HNCU", "HECU": "HECU", "CHAST": "CHAST", "SGT": "SGT", "PDT": "PDT", "HENOMX": "HENOMX", "TMST": "TMST", "EST": "EST", "HNPM": "HNPM", "LHST": "LHST", "WIB": "WIB", "ACWST": "ACWST", "JST": "JST", "WEZ": "WEZ", "COST": "COST", "HNNOMX": "HNNOMX", "AWST": "AWST", "BOT": "BOT", "ACWDT": "ACWDT", "CLST": "CLST", "WAST": "WAST", "ACST": "ACST", "MEZ": "MEZ", "WARST": "WARST", "WESZ": "WESZ", "MDT": "MDT", "AEDT": "AEDT", "IST": "IST", "GMT": "GMT", "CLT": "CLT", "HKT": "HKT", "HNEG": "HNEG", "UYT": "UYT", "ChST": "ChST", "LHDT": "LHDT", "EAT": "EAT", "MESZ": "MESZ", "WART": "WART", "ADT": "ADT", "ARST": "ARST", "COT": "COT", "CST": "CST", "MYT": "MYT", "OESZ": "OESZ", "WAT": "WAT", "PST": "PST", "NZST": "NZST", "ART": "ART", "AKDT": "AKDT", "HEPMX": "HEPMX", "HNPMX": "HNPMX", "ECT": "ECT", "CAT": "CAT", "MST": "MST", "EDT": "EDT", "WITA": "WITA", "AKST": "AKST", "WIT": "WIT", "ACDT": "ACDT", "HAT": "HAT", "HEEG": "HEEG", "NZDT": "NZDT", "VET": "VET", "HEOG": "HEOG", "OEZ": "OEZ", "SRT": "SRT", "CDT": "CDT", "∅∅∅": "∅∅∅", "AST": "AST", "AEST": "AEST", "UYST": "UYST", "HNOG": "HNOG", "GYT": "GYT", "AWDT": "AWDT", "CHADT": "CHADT", "HAST": "HAST", "HADT": "HADT", "JDT": "JDT", "TMT": "TMT", "HKST": "HKST", "HNT": "HNT", "HEPM": "HEPM"},
}
}
diff --git a/ii_CN/ii_CN.go b/ii_CN/ii_CN.go
index 0fc819b9..cfcb283b 100644
--- a/ii_CN/ii_CN.go
+++ b/ii_CN/ii_CN.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ꃅꋊꂿ", "ꃅꋊꊂ"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HNPM": "HNPM", "HEPMX": "HEPMX", "JDT": "JDT", "ChST": "ChST", "OESZ": "OESZ", "HECU": "HECU", "AKST": "AKST", "ADT": "ADT", "HENOMX": "HENOMX", "ACWST": "ACWST", "HEPM": "HEPM", "NZDT": "NZDT", "GFT": "GFT", "TMT": "TMT", "WARST": "WARST", "COST": "COST", "CHAST": "CHAST", "CAT": "CAT", "HNPMX": "HNPMX", "VET": "VET", "SAST": "SAST", "IST": "IST", "∅∅∅": "∅∅∅", "UYST": "UYST", "AEST": "AEST", "AEDT": "AEDT", "MESZ": "MESZ", "HEEG": "HEEG", "WAT": "WAT", "COT": "COT", "EST": "EST", "MEZ": "MEZ", "ACDT": "ACDT", "HAST": "HAST", "BT": "BT", "ART": "ART", "AWST": "AWST", "CST": "CST", "HNOG": "HNOG", "HEOG": "HEOG", "CLT": "CLT", "WAST": "WAST", "MYT": "MYT", "UYT": "UYT", "HAT": "HAT", "CLST": "CLST", "ACST": "ACST", "GMT": "GMT", "HNCU": "HNCU", "SRT": "SRT", "PST": "PST", "WEZ": "WEZ", "ACWDT": "ACWDT", "HKT": "HKT", "WITA": "WITA", "NZST": "NZST", "CDT": "CDT", "AST": "AST", "MST": "MST", "WESZ": "WESZ", "AWDT": "AWDT", "LHST": "LHST", "WART": "WART", "SGT": "SGT", "AKDT": "AKDT", "WIB": "WIB", "HADT": "HADT", "WIT": "WIT", "PDT": "PDT", "HKST": "HKST", "ECT": "ECT", "MDT": "MDT", "LHDT": "LHDT", "JST": "JST", "EAT": "EAT", "HNT": "HNT", "CHADT": "CHADT", "BOT": "BOT", "TMST": "TMST", "OEZ": "OEZ", "EDT": "EDT", "GYT": "GYT", "ARST": "ARST", "HNEG": "HNEG", "HNNOMX": "HNNOMX"},
+ timezones: map[string]string{"AEST": "AEST", "NZST": "NZST", "ARST": "ARST", "ACST": "ACST", "HEEG": "HEEG", "WITA": "WITA", "WIB": "WIB", "WIT": "WIT", "WESZ": "WESZ", "ART": "ART", "WAT": "WAT", "HENOMX": "HENOMX", "HEPM": "HEPM", "LHST": "LHST", "MDT": "MDT", "BOT": "BOT", "HAST": "HAST", "MST": "MST", "OESZ": "OESZ", "WART": "WART", "SAST": "SAST", "EAT": "EAT", "HADT": "HADT", "CAT": "CAT", "JDT": "JDT", "GFT": "GFT", "AKST": "AKST", "UYST": "UYST", "HNCU": "HNCU", "HECU": "HECU", "HNOG": "HNOG", "AEDT": "AEDT", "UYT": "UYT", "LHDT": "LHDT", "HNPM": "HNPM", "IST": "IST", "ADT": "ADT", "COST": "COST", "SGT": "SGT", "MEZ": "MEZ", "VET": "VET", "CLT": "CLT", "TMST": "TMST", "∅∅∅": "∅∅∅", "CHAST": "CHAST", "PDT": "PDT", "CHADT": "CHADT", "ECT": "ECT", "WEZ": "WEZ", "WAST": "WAST", "AKDT": "AKDT", "HEPMX": "HEPMX", "AWDT": "AWDT", "HEOG": "HEOG", "AST": "AST", "EST": "EST", "EDT": "EDT", "HKT": "HKT", "CST": "CST", "ACWDT": "ACWDT", "JST": "JST", "NZDT": "NZDT", "MYT": "MYT", "WARST": "WARST", "ChST": "ChST", "HNPMX": "HNPMX", "ACWST": "ACWST", "SRT": "SRT", "GMT": "GMT", "BT": "BT", "HAT": "HAT", "HNEG": "HNEG", "CDT": "CDT", "MESZ": "MESZ", "ACDT": "ACDT", "COT": "COT", "HNNOMX": "HNNOMX", "TMT": "TMT", "GYT": "GYT", "AWST": "AWST", "OEZ": "OEZ", "HKST": "HKST", "HNT": "HNT", "PST": "PST", "CLST": "CLST"},
}
}
diff --git a/is/is.go b/is/is.go
index 594baad0..9aa62540 100644
--- a/is/is.go
+++ b/is/is.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "e.Kr."},
erasNarrow: []string{"f.k.", "e.k."},
erasWide: []string{"fyrir Krist", "eftir Krist"},
- timezones: map[string]string{"VET": "Venesúelatími", "MESZ": "Sumartími í Mið-Evrópu", "GFT": "Tími í Frönsku Gvæjana", "EAT": "Austur-Afríkutími", "CST": "Staðaltími í miðhluta Bandaríkjanna og Kanada", "HEOG": "Sumartími á Vestur-Grænlandi", "PDT": "Sumartími á Kyrrahafssvæðinu", "ACWDT": "Sumartími í miðvesturhluta Ástralíu", "AWST": "Staðaltími í Vestur-Ástralíu", "CHAST": "Staðaltími í Chatham", "IST": "Indlandstími", "UYT": "Staðaltími í Úrúgvæ", "AEST": "Staðaltími í Austur-Ástralíu", "NZST": "Staðaltími á Nýja-Sjálandi", "NZDT": "Sumartími á Nýja-Sjálandi", "ACST": "Staðaltími í Mið-Ástralíu", "HNNOMX": "Staðaltími í Norðvestur-Mexíkó", "HNCU": "Staðaltími á Kúbu", "HEPMX": "Sumartími í Mexíkó á Kyrrahafssvæðinu", "BT": "Bútantími", "HNOG": "Staðaltími á Vestur-Grænlandi", "WEZ": "Staðaltími í Vestur-Evrópu", "ChST": "Chamorro-staðaltími", "SGT": "Singapúrtími", "EDT": "Sumartími í austurhluta Bandaríkjanna og Kanada", "WESZ": "Sumartími í Vestur-Evrópu", "SAST": "Suður-Afríkutími", "OESZ": "Sumartími í Austur-Evrópu", "AKST": "Staðaltími í Alaska", "HADT": "Sumartími á Havaí og Aleúta", "ACWST": "Staðaltími í miðvesturhluta Ástralíu", "∅∅∅": "Sumartími á Amasónsvæðinu", "WAT": "Staðaltími í Vestur-Afríku", "EST": "Staðaltími í austurhluta Bandaríkjanna og Kanada", "WIB": "Vestur-Indónesíutími", "ART": "Staðaltími í Argentínu", "JDT": "Sumartími í Japan", "TMST": "Sumartími í Túrkmenistan", "WAST": "Sumartími í Vestur-Afríku", "WARST": "Sumartími í Vestur-Argentínu", "WIT": "Austur-Indónesíutími", "AWDT": "Sumartími í Vestur-Ástralíu", "MEZ": "Staðaltími í Mið-Evrópu", "CLT": "Staðaltími í Síle", "TMT": "Staðaltími í Túrkmenistan", "ACDT": "Sumartími í Mið-Ástralíu", "OEZ": "Staðaltími í Austur-Evrópu", "UYST": "Sumartími í Úrúgvæ", "ADT": "Sumartími á Atlantshafssvæðinu", "SRT": "Súrinamtími", "HNT": "Staðaltími á Nýfundnalandi", "HEPM": "Sumartími á Sankti Pierre og Miquelon", "JST": "Staðaltími í Japan", "HEEG": "Sumartími á Austur-Grænlandi", "ECT": "Ekvadortími", "WART": "Staðaltími í Vestur-Argentínu", "CHADT": "Sumartími í Chatham", "HNPMX": "Staðaltími í Mexíkó á Kyrrahafssvæðinu", "HKT": "Staðaltími í Hong Kong", "HNEG": "Staðaltími á Austur-Grænlandi", "COST": "Sumartími í Kólumbíu", "CDT": "Sumartími í miðhluta Bandaríkjanna og Kanada", "AST": "Staðaltími á Atlantshafssvæðinu", "MYT": "Malasíutími", "WITA": "Mið-Indónesíutími", "HKST": "Sumartími í Hong Kong", "HNPM": "Staðaltími á Sankti Pierre og Miquelon", "CLST": "Sumartími í Síle", "AKDT": "Sumartími í Alaska", "ARST": "Sumartími í Argentínu", "LHDT": "Sumartími á Lord Howe-eyju", "GMT": "Greenwich-staðaltími", "HECU": "Sumartími á Kúbu", "MST": "MST", "MDT": "MDT", "HAT": "Sumartími á Nýfundnalandi", "AEDT": "Sumartími í Austur-Ástralíu", "LHST": "Staðaltími á Lord Howe-eyju", "CAT": "Mið-Afríkutími", "GYT": "Gvæjanatími", "HAST": "Staðaltími á Havaí og Aleúta", "PST": "Staðaltími á Kyrrahafssvæðinu", "BOT": "Bólivíutími", "COT": "Staðaltími í Kólumbíu", "HENOMX": "Sumartími í Norðvestur-Mexíkó"},
+ timezones: map[string]string{"HADT": "Sumartími á Havaí og Aleúta", "AST": "Staðaltími á Atlantshafssvæðinu", "ADT": "Sumartími á Atlantshafssvæðinu", "COST": "Sumartími í Kólumbíu", "WITA": "Mið-Indónesíutími", "AKST": "Staðaltími í Alaska", "HNCU": "Staðaltími á Kúbu", "HECU": "Sumartími á Kúbu", "CLST": "Sumartími í Síle", "HKST": "Sumartími í Hong Kong", "AEDT": "Sumartími í Austur-Ástralíu", "CLT": "Staðaltími í Síle", "HNNOMX": "Staðaltími í Norðvestur-Mexíkó", "UYT": "Staðaltími í Úrúgvæ", "BOT": "Bólivíutími", "NZDT": "Sumartími á Nýja-Sjálandi", "MEZ": "Staðaltími í Mið-Evrópu", "GMT": "Greenwich-staðaltími", "ART": "Staðaltími í Argentínu", "WAST": "Sumartími í Vestur-Afríku", "ACDT": "Sumartími í Mið-Ástralíu", "HEEG": "Sumartími á Austur-Grænlandi", "HAST": "Staðaltími á Havaí og Aleúta", "∅∅∅": "Sumartími á Amasónsvæðinu", "ACWST": "Staðaltími í miðvesturhluta Ástralíu", "WART": "Staðaltími í Vestur-Argentínu", "CDT": "Sumartími í miðhluta Bandaríkjanna og Kanada", "IST": "Indlandstími", "JST": "Staðaltími í Japan", "OEZ": "Staðaltími í Austur-Evrópu", "ARST": "Sumartími í Argentínu", "BT": "Bútantími", "GFT": "Tími í Frönsku Gvæjana", "AKDT": "Sumartími í Alaska", "ChST": "Chamorro-staðaltími", "WIT": "Austur-Indónesíutími", "ECT": "Ekvadortími", "PDT": "Sumartími á Kyrrahafssvæðinu", "MYT": "Malasíutími", "HNOG": "Staðaltími á Vestur-Grænlandi", "EST": "Staðaltími í austurhluta Bandaríkjanna og Kanada", "ACST": "Staðaltími í Mið-Ástralíu", "UYST": "Sumartími í Úrúgvæ", "AWDT": "Sumartími í Vestur-Ástralíu", "VET": "Venesúelatími", "SGT": "Singapúrtími", "MDT": "MDT", "COT": "Staðaltími í Kólumbíu", "HNEG": "Staðaltími á Austur-Grænlandi", "AEST": "Staðaltími í Austur-Ástralíu", "HEPMX": "Sumartími í Mexíkó á Kyrrahafssvæðinu", "EAT": "Austur-Afríkutími", "MESZ": "Sumartími í Mið-Evrópu", "WARST": "Sumartími í Vestur-Argentínu", "MST": "MST", "HAT": "Sumartími á Nýfundnalandi", "LHST": "Staðaltími á Lord Howe-eyju", "LHDT": "Sumartími á Lord Howe-eyju", "CST": "Staðaltími í miðhluta Bandaríkjanna og Kanada", "CHADT": "Sumartími í Chatham", "OESZ": "Sumartími í Austur-Evrópu", "WEZ": "Staðaltími í Vestur-Evrópu", "WAT": "Staðaltími í Vestur-Afríku", "HNT": "Staðaltími á Nýfundnalandi", "SAST": "Suður-Afríkutími", "PST": "Staðaltími á Kyrrahafssvæðinu", "WESZ": "Sumartími í Vestur-Evrópu", "EDT": "Sumartími í austurhluta Bandaríkjanna og Kanada", "GYT": "Gvæjanatími", "HEOG": "Sumartími á Vestur-Grænlandi", "TMST": "Sumartími í Túrkmenistan", "HENOMX": "Sumartími í Norðvestur-Mexíkó", "SRT": "Súrinamtími", "AWST": "Staðaltími í Vestur-Ástralíu", "ACWDT": "Sumartími í miðvesturhluta Ástralíu", "TMT": "Staðaltími í Túrkmenistan", "HKT": "Staðaltími í Hong Kong", "HNPM": "Staðaltími á Sankti Pierre og Miquelon", "NZST": "Staðaltími á Nýja-Sjálandi", "CAT": "Mið-Afríkutími", "JDT": "Sumartími í Japan", "HEPM": "Sumartími á Sankti Pierre og Miquelon", "HNPMX": "Staðaltími í Mexíkó á Kyrrahafssvæðinu", "WIB": "Vestur-Indónesíutími", "CHAST": "Staðaltími í Chatham"},
}
}
diff --git a/is_IS/is_IS.go b/is_IS/is_IS.go
index 2a2687e4..0dd23517 100644
--- a/is_IS/is_IS.go
+++ b/is_IS/is_IS.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "e.Kr."},
erasNarrow: []string{"f.k.", "e.k."},
erasWide: []string{"fyrir Krist", "eftir Krist"},
- timezones: map[string]string{"MST": "MST", "HKT": "Staðaltími í Hong Kong", "OESZ": "Sumartími í Austur-Evrópu", "OEZ": "Staðaltími í Austur-Evrópu", "ECT": "Ekvadortími", "EAT": "Austur-Afríkutími", "HECU": "Sumartími á Kúbu", "CST": "Staðaltími í miðhluta Bandaríkjanna og Kanada", "PDT": "Sumartími á Kyrrahafssvæðinu", "CHAST": "Staðaltími í Chatham", "LHDT": "Sumartími á Lord Howe-eyju", "HNNOMX": "Staðaltími í Norðvestur-Mexíkó", "JST": "Staðaltími í Japan", "JDT": "Sumartími í Japan", "HEEG": "Sumartími á Austur-Grænlandi", "∅∅∅": "Sumartími á Asóreyjum", "SGT": "Singapúrtími", "AEST": "Staðaltími í Austur-Ástralíu", "AEDT": "Sumartími í Austur-Ástralíu", "AWST": "Staðaltími í Vestur-Ástralíu", "ChST": "Chamorro-staðaltími", "GFT": "Tími í Frönsku Gvæjana", "HNCU": "Staðaltími á Kúbu", "EDT": "Sumartími í austurhluta Bandaríkjanna og Kanada", "HNPM": "Staðaltími á Sankti Pierre og Miquelon", "NZDT": "Sumartími á Nýja-Sjálandi", "MESZ": "Sumartími í Mið-Evrópu", "WARST": "Sumartími í Vestur-Argentínu", "ACWDT": "Sumartími í miðvesturhluta Ástralíu", "HAT": "Sumartími á Nýfundnalandi", "IST": "Indlandstími", "HNEG": "Staðaltími á Austur-Grænlandi", "CAT": "Mið-Afríkutími", "AKST": "Staðaltími í Alaska", "WIT": "Austur-Indónesíutími", "VET": "Venesúelatími", "WEZ": "Staðaltími í Vestur-Evrópu", "LHST": "Staðaltími á Lord Howe-eyju", "AKDT": "Sumartími í Alaska", "HAST": "Staðaltími á Havaí og Aleúta", "SRT": "Súrinamtími", "MEZ": "Staðaltími í Mið-Evrópu", "WAT": "Staðaltími í Vestur-Afríku", "WART": "Staðaltími í Vestur-Argentínu", "HEPMX": "Sumartími í Mexíkó á Kyrrahafssvæðinu", "HADT": "Sumartími á Havaí og Aleúta", "HEOG": "Sumartími á Vestur-Grænlandi", "AWDT": "Sumartími í Vestur-Ástralíu", "ACDT": "Sumartími í Mið-Ástralíu", "HEPM": "Sumartími á Sankti Pierre og Miquelon", "CLST": "Sumartími í Síle", "TMST": "Sumartími í Túrkmenistan", "GYT": "Gvæjanatími", "UYT": "Staðaltími í Úrúgvæ", "HNT": "Staðaltími á Nýfundnalandi", "HKST": "Sumartími í Hong Kong", "WITA": "Mið-Indónesíutími", "MYT": "Malasíutími", "CHADT": "Sumartími í Chatham", "ACST": "Staðaltími í Mið-Ástralíu", "COT": "Staðaltími í Kólumbíu", "HNPMX": "Staðaltími í Mexíkó á Kyrrahafssvæðinu", "EST": "Staðaltími í austurhluta Bandaríkjanna og Kanada", "WIB": "Vestur-Indónesíutími", "HNOG": "Staðaltími á Vestur-Grænlandi", "COST": "Sumartími í Kólumbíu", "AST": "Staðaltími á Atlantshafssvæðinu", "WESZ": "Sumartími í Vestur-Evrópu", "NZST": "Staðaltími á Nýja-Sjálandi", "HENOMX": "Sumartími í Norðvestur-Mexíkó", "ARST": "Sumartími í Argentínu", "CLT": "Staðaltími í Síle", "GMT": "Greenwich-staðaltími", "CDT": "Sumartími í miðhluta Bandaríkjanna og Kanada", "ADT": "Sumartími á Atlantshafssvæðinu", "ACWST": "Staðaltími í miðvesturhluta Ástralíu", "ART": "Staðaltími í Argentínu", "UYST": "Sumartími í Úrúgvæ", "PST": "Staðaltími á Kyrrahafssvæðinu", "SAST": "Suður-Afríkutími", "TMT": "Staðaltími í Túrkmenistan", "WAST": "Sumartími í Vestur-Afríku", "MDT": "MDT", "BT": "Bútantími", "BOT": "Bólivíutími"},
+ timezones: map[string]string{"ART": "Staðaltími í Argentínu", "ARST": "Sumartími í Argentínu", "BT": "Bútantími", "ACWST": "Staðaltími í miðvesturhluta Ástralíu", "MEZ": "Staðaltími í Mið-Evrópu", "ACST": "Staðaltími í Mið-Ástralíu", "UYST": "Sumartími í Úrúgvæ", "HEPMX": "Sumartími í Mexíkó á Kyrrahafssvæðinu", "OEZ": "Staðaltími í Austur-Evrópu", "EST": "Staðaltími í austurhluta Bandaríkjanna og Kanada", "HNEG": "Staðaltími á Austur-Grænlandi", "WIT": "Austur-Indónesíutími", "CHAST": "Staðaltími í Chatham", "WAST": "Sumartími í Vestur-Afríku", "ChST": "Chamorro-staðaltími", "∅∅∅": "Sumartími í Brasilíu", "WEZ": "Staðaltími í Vestur-Evrópu", "TMT": "Staðaltími í Túrkmenistan", "HEPM": "Sumartími á Sankti Pierre og Miquelon", "SRT": "Súrinamtími", "CST": "Staðaltími í miðhluta Bandaríkjanna og Kanada", "SGT": "Singapúrtími", "NZDT": "Sumartími á Nýja-Sjálandi", "HNOG": "Staðaltími á Vestur-Grænlandi", "PDT": "Sumartími á Kyrrahafssvæðinu", "ECT": "Ekvadortími", "VET": "Venesúelatími", "HEEG": "Sumartími á Austur-Grænlandi", "AKDT": "Sumartími í Alaska", "SAST": "Suður-Afríkutími", "BOT": "Bólivíutími", "HAST": "Staðaltími á Havaí og Aleúta", "HNT": "Staðaltími á Nýfundnalandi", "LHST": "Staðaltími á Lord Howe-eyju", "AWDT": "Sumartími í Vestur-Ástralíu", "PST": "Staðaltími á Kyrrahafssvæðinu", "WESZ": "Sumartími í Vestur-Evrópu", "HAT": "Sumartími á Nýfundnalandi", "AEST": "Staðaltími í Austur-Ástralíu", "COST": "Sumartími í Kólumbíu", "HNNOMX": "Staðaltími í Norðvestur-Mexíkó", "HECU": "Sumartími á Kúbu", "AWST": "Staðaltími í Vestur-Ástralíu", "CAT": "Mið-Afríkutími", "MESZ": "Sumartími í Mið-Evrópu", "MDT": "MDT", "HKT": "Staðaltími í Hong Kong", "HENOMX": "Sumartími í Norðvestur-Mexíkó", "CDT": "Sumartími í miðhluta Bandaríkjanna og Kanada", "HEOG": "Sumartími á Vestur-Grænlandi", "ADT": "Sumartími á Atlantshafssvæðinu", "GFT": "Tími í Frönsku Gvæjana", "HNPM": "Staðaltími á Sankti Pierre og Miquelon", "WAT": "Staðaltími í Vestur-Afríku", "AKST": "Staðaltími í Alaska", "CHADT": "Sumartími í Chatham", "JST": "Staðaltími í Japan", "OESZ": "Sumartími í Austur-Evrópu", "WARST": "Sumartími í Vestur-Argentínu", "CLT": "Staðaltími í Síle", "TMST": "Sumartími í Túrkmenistan", "UYT": "Staðaltími í Úrúgvæ", "LHDT": "Sumartími á Lord Howe-eyju", "EAT": "Austur-Afríkutími", "HADT": "Sumartími á Havaí og Aleúta", "WART": "Staðaltími í Vestur-Argentínu", "WITA": "Mið-Indónesíutími", "AEDT": "Sumartími í Austur-Ástralíu", "GYT": "Gvæjanatími", "WIB": "Vestur-Indónesíutími", "NZST": "Staðaltími á Nýja-Sjálandi", "CLST": "Sumartími í Síle", "EDT": "Sumartími í austurhluta Bandaríkjanna og Kanada", "HNCU": "Staðaltími á Kúbu", "MST": "MST", "HKST": "Sumartími í Hong Kong", "IST": "Indlandstími", "ACWDT": "Sumartími í miðvesturhluta Ástralíu", "JDT": "Sumartími í Japan", "AST": "Staðaltími á Atlantshafssvæðinu", "GMT": "Greenwich-staðaltími", "MYT": "Malasíutími", "ACDT": "Sumartími í Mið-Ástralíu", "COT": "Staðaltími í Kólumbíu", "HNPMX": "Staðaltími í Mexíkó á Kyrrahafssvæðinu"},
}
}
diff --git a/it/it.go b/it/it.go
index c93d0195..97138323 100644
--- a/it/it.go
+++ b/it/it.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"aC", "dC"},
erasWide: []string{"avanti Cristo", "dopo Cristo"},
- timezones: map[string]string{"MST": "MST", "CDT": "Ora legale centrale USA", "HNOG": "Ora standard della Groenlandia occidentale", "HEOG": "Ora legale della Groenlandia occidentale", "OEZ": "Ora standard dell’Europa orientale", "SRT": "Ora del Suriname", "WESZ": "Ora legale dell’Europa occidentale", "ARST": "Ora legale dell’Argentina", "COST": "Ora legale della Colombia", "LHDT": "Ora legale di Lord Howe", "NZDT": "Ora legale della Nuova Zelanda", "BOT": "Ora della Bolivia", "GMT": "Ora del meridiano di Greenwich", "GYT": "Ora della Guyana", "HAST": "Ora standard delle Isole Hawaii-Aleutine", "VET": "Ora del Venezuela", "WITA": "Ora dell’Indonesia centrale", "EAT": "Ora dell’Africa orientale", "HNPMX": "Ora standard del Pacifico (Messico)", "MYT": "Ora della Malesia", "WIT": "Ora dell’Indonesia orientale", "HNNOMX": "Ora standard del Messico nord-occidentale", "HENOMX": "Ora legale del Messico nord-occidentale", "∅∅∅": "∅∅∅", "HEPMX": "Ora legale del Pacifico (Messico)", "WEZ": "Ora standard dell’Europa occidentale", "ART": "Ora standard dell’Argentina", "SAST": "Ora dell’Africa meridionale", "PST": "Ora standard del Pacifico USA", "AWST": "Ora standard dell’Australia occidentale", "WART": "Ora standard dell’Argentina occidentale", "CHAST": "Ora standard delle Chatham", "WARST": "Ora legale dell’Argentina occidentale", "EDT": "Ora legale orientale USA", "MDT": "MDT", "PDT": "Ora legale del Pacifico USA", "ACWDT": "Ora legale dell’Australia centroccidentale", "AWDT": "Ora legale dell’Australia occidentale", "ECT": "Ora dell’Ecuador", "HECU": "Ora legale di Cuba", "AST": "Ora standard dell’Atlantico", "ACWST": "Ora standard dell’Australia centroccidentale", "LHST": "Ora standard di Lord Howe", "ACST": "Ora standard dell’Australia centrale", "COT": "Ora standard della Colombia", "EST": "Ora standard orientale USA", "AKST": "Ora standard dell’Alaska", "WIB": "Ora dell’Indonesia occidentale", "CLST": "Ora legale del Cile", "JST": "Ora standard del Giappone", "HADT": "Ora legale delle Isole Hawaii-Aleutine", "HNT": "Ora standard di Terranova", "ACDT": "Ora legale dell’Australia centrale", "CAT": "Ora dell’Africa centrale", "HEEG": "Ora legale della Groenlandia orientale", "AKDT": "Ora legale dell’Alaska", "AEST": "Ora standard dell’Australia orientale", "HKT": "Ora standard di Hong Kong", "HEPM": "Ora legale di Saint-Pierre e Miquelon", "MEZ": "Ora standard dell’Europa centrale", "JDT": "Ora legale del Giappone", "SGT": "Ora di Singapore", "HNCU": "Ora standard di Cuba", "UYST": "Ora legale dell’Uruguay", "CHADT": "Ora legale delle Chatham", "IST": "Ora standard dell’India", "WAST": "Ora legale dell’Africa occidentale", "CST": "Ora standard centrale USA", "ADT": "Ora legale dell’Atlantico", "HNPM": "Ora standard di Saint-Pierre e Miquelon", "NZST": "Ora standard della Nuova Zelanda", "WAT": "Ora standard dell’Africa occidentale", "BT": "Ora del Bhutan", "AEDT": "Ora legale dell’Australia orientale", "HKST": "Ora legale di Hong Kong", "GFT": "Ora della Guiana francese", "OESZ": "Ora legale dell’Europa orientale", "TMST": "Ora legale del Turkmenistan", "UYT": "Ora standard dell’Uruguay", "HAT": "Ora legale di Terranova", "MESZ": "Ora legale dell’Europa centrale", "HNEG": "Ora standard della Groenlandia orientale", "TMT": "Ora standard del Turkmenistan", "CLT": "Ora standard del Cile", "ChST": "Ora di Chamorro"},
+ timezones: map[string]string{"AWDT": "Ora legale dell’Australia occidentale", "NZST": "Ora standard della Nuova Zelanda", "COST": "Ora legale della Colombia", "ChST": "Ora di Chamorro", "CAT": "Ora dell’Africa centrale", "WESZ": "Ora legale dell’Europa occidentale", "TMT": "Ora standard del Turkmenistan", "WAT": "Ora standard dell’Africa occidentale", "HNT": "Ora standard di Terranova", "HAT": "Ora legale di Terranova", "HNPM": "Ora standard di Saint-Pierre e Miquelon", "HNCU": "Ora standard di Cuba", "OEZ": "Ora standard dell’Europa orientale", "CLST": "Ora legale del Cile", "ARST": "Ora legale dell’Argentina", "AKST": "Ora standard dell’Alaska", "CDT": "Ora legale centrale USA", "BOT": "Ora della Bolivia", "ACWDT": "Ora legale dell’Australia centroccidentale", "JST": "Ora standard del Giappone", "WARST": "Ora legale dell’Argentina occidentale", "MDT": "MDT", "ART": "Ora standard dell’Argentina", "EST": "Ora standard orientale USA", "WIT": "Ora dell’Indonesia orientale", "CHAST": "Ora standard delle Chatham", "HAST": "Ora standard delle Isole Hawaii-Aleutine", "GMT": "Ora del meridiano di Greenwich", "BT": "Ora del Bhutan", "HNEG": "Ora standard della Groenlandia orientale", "GFT": "Ora della Guiana francese", "UYT": "Ora standard dell’Uruguay", "GYT": "Ora della Guyana", "SGT": "Ora di Singapore", "PST": "Ora standard del Pacifico USA", "ECT": "Ora dell’Ecuador", "ACWST": "Ora standard dell’Australia centroccidentale", "MST": "MST", "HENOMX": "Ora legale del Messico nord-occidentale", "∅∅∅": "Ora legale di Brasilia", "JDT": "Ora legale del Giappone", "AST": "Ora standard dell’Atlantico", "AEST": "Ora standard dell’Australia orientale", "SAST": "Ora dell’Africa meridionale", "WEZ": "Ora standard dell’Europa occidentale", "ACST": "Ora standard dell’Australia centrale", "HNNOMX": "Ora standard del Messico nord-occidentale", "HECU": "Ora legale di Cuba", "AWST": "Ora standard dell’Australia occidentale", "HADT": "Ora legale delle Isole Hawaii-Aleutine", "OESZ": "Ora legale dell’Europa orientale", "HNOG": "Ora standard della Groenlandia occidentale", "SRT": "Ora del Suriname", "NZDT": "Ora legale della Nuova Zelanda", "HEOG": "Ora legale della Groenlandia occidentale", "HEEG": "Ora legale della Groenlandia orientale", "AEDT": "Ora legale dell’Australia orientale", "LHDT": "Ora legale di Lord Howe", "EAT": "Ora dell’Africa orientale", "MEZ": "Ora standard dell’Europa centrale", "VET": "Ora del Venezuela", "LHST": "Ora standard di Lord Howe", "HNPMX": "Ora standard del Pacifico (Messico)", "IST": "Ora standard dell’India", "MESZ": "Ora legale dell’Europa centrale", "WART": "Ora standard dell’Argentina occidentale", "EDT": "Ora legale orientale USA", "AKDT": "Ora legale dell’Alaska", "MYT": "Ora della Malesia", "TMST": "Ora legale del Turkmenistan", "WAST": "Ora legale dell’Africa occidentale", "HKST": "Ora legale di Hong Kong", "ACDT": "Ora legale dell’Australia centrale", "COT": "Ora standard della Colombia", "WITA": "Ora dell’Indonesia centrale", "HEPM": "Ora legale di Saint-Pierre e Miquelon", "HEPMX": "Ora legale del Pacifico (Messico)", "UYST": "Ora legale dell’Uruguay", "WIB": "Ora dell’Indonesia occidentale", "CST": "Ora standard centrale USA", "CHADT": "Ora legale delle Chatham", "PDT": "Ora legale del Pacifico USA", "ADT": "Ora legale dell’Atlantico", "CLT": "Ora standard del Cile", "HKT": "Ora standard di Hong Kong"},
}
}
diff --git a/it_CH/it_CH.go b/it_CH/it_CH.go
index d03e89e3..d73b6065 100644
--- a/it_CH/it_CH.go
+++ b/it_CH/it_CH.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"aC", "dC"},
erasWide: []string{"avanti Cristo", "dopo Cristo"},
- timezones: map[string]string{"HKST": "Ora legale di Hong Kong", "ADT": "Ora legale dell’Atlantico", "HNPM": "Ora standard di Saint-Pierre e Miquelon", "CHAST": "Ora standard delle Chatham", "CAT": "Ora dell’Africa centrale", "HECU": "Ora legale di Cuba", "WESZ": "Ora legale dell’Europa occidentale", "ACWDT": "Ora legale dell’Australia centroccidentale", "ACDT": "Ora legale dell’Australia centrale", "WIT": "Ora dell’Indonesia orientale", "WARST": "Ora legale dell’Argentina occidentale", "AKDT": "Ora legale dell’Alaska", "AEDT": "Ora legale dell’Australia orientale", "CLT": "Ora standard del Cile", "TMT": "Ora standard del Turkmenistan", "MYT": "Ora della Malesia", "UYST": "Ora legale dell’Uruguay", "AKST": "Ora standard dell’Alaska", "AEST": "Ora standard dell’Australia orientale", "JDT": "Ora legale del Giappone", "ChST": "Ora di Chamorro", "HNEG": "Ora standard della Groenlandia orientale", "HENOMX": "Ora legale del Messico nord-occidentale", "CST": "Ora standard centrale USA", "BT": "Ora del Bhutan", "HNOG": "Ora standard della Groenlandia occidentale", "PST": "Ora standard del Pacifico USA", "GFT": "Ora della Guiana francese", "TMST": "Ora legale del Turkmenistan", "UYT": "Ora standard dell’Uruguay", "HADT": "Ora legale delle Isole Hawaii-Aleutine", "CLST": "Ora legale del Cile", "BOT": "Ora della Bolivia", "∅∅∅": "Ora legale dell’Amazzonia", "OESZ": "Ora legale dell’Europa orientale", "GMT": "Ora del meridiano di Greenwich", "HNPMX": "Ora standard del Pacifico (Messico)", "HEOG": "Ora legale della Groenlandia occidentale", "AWDT": "Ora legale dell’Australia occidentale", "LHST": "Ora standard di Lord Howe", "IST": "Ora standard dell’India", "WAT": "Ora standard dell’Africa occidentale", "OEZ": "Ora standard dell’Europa orientale", "MDT": "MDT", "HAST": "Ora standard delle Isole Hawaii-Aleutine", "PDT": "Ora legale del Pacifico USA", "ARST": "Ora legale dell’Argentina", "COST": "Ora legale della Colombia", "HEPMX": "Ora legale del Pacifico (Messico)", "HEEG": "Ora legale della Groenlandia orientale", "CDT": "Ora legale centrale USA", "NZST": "Ora standard della Nuova Zelanda", "NZDT": "Ora legale della Nuova Zelanda", "WART": "Ora standard dell’Argentina occidentale", "COT": "Ora standard della Colombia", "WIB": "Ora dell’Indonesia occidentale", "ACWST": "Ora standard dell’Australia centroccidentale", "MESZ": "Ora legale dell’Europa centrale", "LHDT": "Ora legale di Lord Howe", "WAST": "Ora legale dell’Africa occidentale", "SGT": "Ora di Singapore", "HNCU": "Ora standard di Cuba", "GYT": "Ora della Guyana", "WEZ": "Ora standard dell’Europa occidentale", "HNT": "Ora standard di Terranova", "CHADT": "Ora legale delle Chatham", "ACST": "Ora standard dell’Australia centrale", "EST": "Ora standard orientale USA", "MST": "MST", "VET": "Ora del Venezuela", "ART": "Ora standard dell’Argentina", "MEZ": "Ora standard dell’Europa centrale", "HNNOMX": "Ora standard del Messico nord-occidentale", "EDT": "Ora legale orientale USA", "HAT": "Ora legale di Terranova", "AWST": "Ora standard dell’Australia occidentale", "HEPM": "Ora legale di Saint-Pierre e Miquelon", "SAST": "Ora dell’Africa meridionale", "JST": "Ora standard del Giappone", "EAT": "Ora dell’Africa orientale", "ECT": "Ora dell’Ecuador", "AST": "Ora standard dell’Atlantico", "HKT": "Ora standard di Hong Kong", "WITA": "Ora dell’Indonesia centrale", "SRT": "Ora del Suriname"},
+ timezones: map[string]string{"ACDT": "Ora legale dell’Australia centrale", "ChST": "Ora di Chamorro", "MEZ": "Ora standard dell’Europa centrale", "ART": "Ora standard dell’Argentina", "HNT": "Ora standard di Terranova", "CST": "Ora standard centrale USA", "ADT": "Ora legale dell’Atlantico", "WAST": "Ora legale dell’Africa occidentale", "PST": "Ora standard del Pacifico USA", "ACWDT": "Ora legale dell’Australia centroccidentale", "JDT": "Ora legale del Giappone", "CLST": "Ora legale del Cile", "AKDT": "Ora legale dell’Alaska", "SRT": "Ora del Suriname", "MYT": "Ora della Malesia", "MST": "MST", "NZST": "Ora standard della Nuova Zelanda", "VET": "Ora del Venezuela", "GMT": "Ora del meridiano di Greenwich", "HKST": "Ora legale di Hong Kong", "AEST": "Ora standard dell’Australia orientale", "HEPM": "Ora legale di Saint-Pierre e Miquelon", "HECU": "Ora legale di Cuba", "NZDT": "Ora legale della Nuova Zelanda", "WEZ": "Ora standard dell’Europa occidentale", "EST": "Ora standard orientale USA", "AWST": "Ora standard dell’Australia occidentale", "ECT": "Ora dell’Ecuador", "PDT": "Ora legale del Pacifico USA", "ACWST": "Ora standard dell’Australia centroccidentale", "WARST": "Ora legale dell’Argentina occidentale", "MDT": "MDT", "ARST": "Ora legale dell’Argentina", "BT": "Ora del Bhutan", "HAT": "Ora legale di Terranova", "HNPM": "Ora standard di Saint-Pierre e Miquelon", "CHAST": "Ora standard delle Chatham", "JST": "Ora standard del Giappone", "WAT": "Ora standard dell’Africa occidentale", "ACST": "Ora standard dell’Australia centrale", "AKST": "Ora standard dell’Alaska", "WIB": "Ora dell’Indonesia occidentale", "CDT": "Ora legale centrale USA", "HADT": "Ora legale delle Isole Hawaii-Aleutine", "CAT": "Ora dell’Africa centrale", "WART": "Ora standard dell’Argentina occidentale", "BOT": "Ora della Bolivia", "HKT": "Ora standard di Hong Kong", "COT": "Ora standard della Colombia", "SAST": "Ora dell’Africa meridionale", "HNPMX": "Ora standard del Pacifico (Messico)", "GYT": "Ora della Guyana", "EAT": "Ora dell’Africa orientale", "CHADT": "Ora legale delle Chatham", "HNOG": "Ora standard della Groenlandia occidentale", "HENOMX": "Ora legale del Messico nord-occidentale", "CLT": "Ora standard del Cile", "HAST": "Ora standard delle Isole Hawaii-Aleutine", "MESZ": "Ora legale dell’Europa centrale", "WESZ": "Ora legale dell’Europa occidentale", "EDT": "Ora legale orientale USA", "LHDT": "Ora legale di Lord Howe", "IST": "Ora standard dell’India", "AST": "Ora standard dell’Atlantico", "TMT": "Ora standard del Turkmenistan", "TMST": "Ora legale del Turkmenistan", "COST": "Ora legale della Colombia", "∅∅∅": "∅∅∅", "WITA": "Ora dell’Indonesia centrale", "HEPMX": "Ora legale del Pacifico (Messico)", "HNCU": "Ora standard di Cuba", "SGT": "Ora di Singapore", "HNEG": "Ora standard della Groenlandia orientale", "HEEG": "Ora legale della Groenlandia orientale", "GFT": "Ora della Guiana francese", "UYT": "Ora standard dell’Uruguay", "WIT": "Ora dell’Indonesia orientale", "OESZ": "Ora legale dell’Europa orientale", "HNNOMX": "Ora standard del Messico nord-occidentale", "AEDT": "Ora legale dell’Australia orientale", "UYST": "Ora legale dell’Uruguay", "LHST": "Ora standard di Lord Howe", "AWDT": "Ora legale dell’Australia occidentale", "HEOG": "Ora legale della Groenlandia occidentale", "OEZ": "Ora standard dell’Europa orientale"},
}
}
diff --git a/it_IT/it_IT.go b/it_IT/it_IT.go
index d9f3dedf..d45ac71b 100644
--- a/it_IT/it_IT.go
+++ b/it_IT/it_IT.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"aC", "dC"},
erasWide: []string{"avanti Cristo", "dopo Cristo"},
- timezones: map[string]string{"CHADT": "Ora legale delle Chatham", "∅∅∅": "Ora legale dell’Amazzonia", "GMT": "Ora del meridiano di Greenwich", "SGT": "Ora di Singapore", "EST": "Ora standard orientale USA", "ACWST": "Ora standard dell’Australia centroccidentale", "ARST": "Ora legale dell’Argentina", "NZST": "Ora standard della Nuova Zelanda", "COST": "Ora legale della Colombia", "HEPMX": "Ora legale del Pacifico (Messico)", "UYST": "Ora legale dell’Uruguay", "HADT": "Ora legale delle Isole Hawaii-Aleutine", "ACWDT": "Ora legale dell’Australia centroccidentale", "IST": "Ora standard dell’India", "UYT": "Ora standard dell’Uruguay", "BT": "Ora del Bhutan", "AEDT": "Ora legale dell’Australia orientale", "SAST": "Ora dell’Africa meridionale", "HECU": "Ora legale di Cuba", "ART": "Ora standard dell’Argentina", "HNPM": "Ora standard di Saint-Pierre e Miquelon", "WESZ": "Ora legale dell’Europa occidentale", "HNOG": "Ora standard della Groenlandia occidentale", "HEOG": "Ora legale della Groenlandia occidentale", "WITA": "Ora dell’Indonesia centrale", "HNT": "Ora standard di Terranova", "CHAST": "Ora standard delle Chatham", "ACDT": "Ora legale dell’Australia centrale", "OESZ": "Ora legale dell’Europa orientale", "AST": "Ora standard dell’Atlantico", "MYT": "Ora della Malesia", "WEZ": "Ora standard dell’Europa occidentale", "WIT": "Ora dell’Indonesia orientale", "HKST": "Ora legale di Hong Kong", "WART": "Ora standard dell’Argentina occidentale", "HNNOMX": "Ora standard del Messico nord-occidentale", "MST": "MST", "AKST": "Ora standard dell’Alaska", "AKDT": "Ora legale dell’Alaska", "ADT": "Ora legale dell’Atlantico", "CLT": "Ora standard del Cile", "JDT": "Ora legale del Giappone", "COT": "Ora standard della Colombia", "GYT": "Ora della Guyana", "MEZ": "Ora standard dell’Europa centrale", "LHST": "Ora standard di Lord Howe", "LHDT": "Ora legale di Lord Howe", "GFT": "Ora della Guiana francese", "HKT": "Ora standard di Hong Kong", "AWST": "Ora standard dell’Australia occidentale", "HEPM": "Ora legale di Saint-Pierre e Miquelon", "JST": "Ora standard del Giappone", "BOT": "Ora della Bolivia", "CDT": "Ora legale centrale USA", "HAST": "Ora standard delle Isole Hawaii-Aleutine", "HAT": "Ora legale di Terranova", "NZDT": "Ora legale della Nuova Zelanda", "ECT": "Ora dell’Ecuador", "HNCU": "Ora standard di Cuba", "MESZ": "Ora legale dell’Europa centrale", "ChST": "Ora di Chamorro", "HNEG": "Ora standard della Groenlandia orientale", "TMST": "Ora legale del Turkmenistan", "WAT": "Ora standard dell’Africa occidentale", "CLST": "Ora legale del Cile", "CAT": "Ora dell’Africa centrale", "HNPMX": "Ora standard del Pacifico (Messico)", "WIB": "Ora dell’Indonesia occidentale", "CST": "Ora standard centrale USA", "PDT": "Ora legale del Pacifico USA", "ACST": "Ora standard dell’Australia centrale", "OEZ": "Ora standard dell’Europa orientale", "WARST": "Ora legale dell’Argentina occidentale", "HENOMX": "Ora legale del Messico nord-occidentale", "EDT": "Ora legale orientale USA", "MDT": "MDT", "AEST": "Ora standard dell’Australia orientale", "AWDT": "Ora legale dell’Australia occidentale", "WAST": "Ora legale dell’Africa occidentale", "PST": "Ora standard del Pacifico USA", "HEEG": "Ora legale della Groenlandia orientale", "TMT": "Ora standard del Turkmenistan", "EAT": "Ora dell’Africa orientale", "VET": "Ora del Venezuela", "SRT": "Ora del Suriname"},
+ timezones: map[string]string{"∅∅∅": "Ora legale dell’Amazzonia", "VET": "Ora del Venezuela", "WITA": "Ora dell’Indonesia centrale", "AKDT": "Ora legale dell’Alaska", "UYT": "Ora standard dell’Uruguay", "AWST": "Ora standard dell’Australia occidentale", "ACWST": "Ora standard dell’Australia centroccidentale", "JDT": "Ora legale del Giappone", "WART": "Ora standard dell’Argentina occidentale", "AST": "Ora standard dell’Atlantico", "HNT": "Ora standard di Terranova", "UYST": "Ora legale dell’Uruguay", "AWDT": "Ora legale dell’Australia occidentale", "JST": "Ora standard del Giappone", "GMT": "Ora del meridiano di Greenwich", "TMST": "Ora legale del Turkmenistan", "COST": "Ora legale della Colombia", "ChST": "Ora di Chamorro", "CDT": "Ora legale centrale USA", "HECU": "Ora legale di Cuba", "BOT": "Ora della Bolivia", "HAST": "Ora standard delle Isole Hawaii-Aleutine", "CLST": "Ora legale del Cile", "HKST": "Ora legale di Hong Kong", "COT": "Ora standard della Colombia", "AKST": "Ora standard dell’Alaska", "HEPM": "Ora legale di Saint-Pierre e Miquelon", "WAST": "Ora legale dell’Africa occidentale", "HNNOMX": "Ora standard del Messico nord-occidentale", "GFT": "Ora della Guiana francese", "ACWDT": "Ora legale dell’Australia centroccidentale", "BT": "Ora del Bhutan", "HNPM": "Ora standard di Saint-Pierre e Miquelon", "PST": "Ora standard del Pacifico USA", "IST": "Ora standard dell’India", "ADT": "Ora legale dell’Atlantico", "OEZ": "Ora standard dell’Europa orientale", "ARST": "Ora legale dell’Argentina", "HEEG": "Ora legale della Groenlandia orientale", "ECT": "Ora dell’Ecuador", "NZDT": "Ora legale della Nuova Zelanda", "MESZ": "Ora legale dell’Europa centrale", "CLT": "Ora standard del Cile", "WESZ": "Ora legale dell’Europa occidentale", "WAT": "Ora standard dell’Africa occidentale", "HNOG": "Ora standard della Groenlandia occidentale", "OESZ": "Ora legale dell’Europa orientale", "ACST": "Ora standard dell’Australia centrale", "CHAST": "Ora standard delle Chatham", "HEOG": "Ora legale della Groenlandia occidentale", "MST": "MST", "LHST": "Ora standard di Lord Howe", "HNCU": "Ora standard di Cuba", "PDT": "Ora legale del Pacifico USA", "WARST": "Ora legale dell’Argentina occidentale", "EST": "Ora standard orientale USA", "AEST": "Ora standard dell’Australia orientale", "HNPMX": "Ora standard del Pacifico (Messico)", "HKT": "Ora standard di Hong Kong", "ACDT": "Ora legale dell’Australia centrale", "NZST": "Ora standard della Nuova Zelanda", "WEZ": "Ora standard dell’Europa occidentale", "EDT": "Ora legale orientale USA", "HEPMX": "Ora legale del Pacifico (Messico)", "CST": "Ora standard centrale USA", "GYT": "Ora della Guyana", "EAT": "Ora dell’Africa orientale", "MEZ": "Ora standard dell’Europa centrale", "ART": "Ora standard dell’Argentina", "HAT": "Ora legale di Terranova", "HNEG": "Ora standard della Groenlandia orientale", "AEDT": "Ora legale dell’Australia orientale", "SRT": "Ora del Suriname", "WIB": "Ora dell’Indonesia occidentale", "WIT": "Ora dell’Indonesia orientale", "CHADT": "Ora legale delle Chatham", "SGT": "Ora di Singapore", "SAST": "Ora dell’Africa meridionale", "LHDT": "Ora legale di Lord Howe", "HADT": "Ora legale delle Isole Hawaii-Aleutine", "CAT": "Ora dell’Africa centrale", "MYT": "Ora della Malesia", "TMT": "Ora standard del Turkmenistan", "MDT": "MDT", "HENOMX": "Ora legale del Messico nord-occidentale"},
}
}
diff --git a/it_SM/it_SM.go b/it_SM/it_SM.go
index 1a04acc5..3c9d3b2d 100644
--- a/it_SM/it_SM.go
+++ b/it_SM/it_SM.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"aC", "dC"},
erasWide: []string{"avanti Cristo", "dopo Cristo"},
- timezones: map[string]string{"AEDT": "Ora legale dell’Australia orientale", "NZST": "Ora standard della Nuova Zelanda", "ACDT": "Ora legale dell’Australia centrale", "EDT": "Ora legale orientale USA", "AWST": "Ora standard dell’Australia occidentale", "EAT": "Ora dell’Africa orientale", "HAST": "Ora standard delle Isole Hawaii-Aleutine", "ARST": "Ora legale dell’Argentina", "HKT": "Ora standard di Hong Kong", "SGT": "Ora di Singapore", "MST": "MST", "AKDT": "Ora legale dell’Alaska", "ACWDT": "Ora legale dell’Australia centroccidentale", "WITA": "Ora dell’Indonesia centrale", "HNPM": "Ora standard di Saint-Pierre e Miquelon", "AKST": "Ora standard dell’Alaska", "AST": "Ora standard dell’Atlantico", "HADT": "Ora legale delle Isole Hawaii-Aleutine", "ACWST": "Ora standard dell’Australia centroccidentale", "ADT": "Ora legale dell’Atlantico", "HNOG": "Ora standard della Groenlandia occidentale", "HKST": "Ora legale di Hong Kong", "LHDT": "Ora legale di Lord Howe", "TMT": "Ora standard del Turkmenistan", "GMT": "Ora del meridiano di Greenwich", "CST": "Ora standard centrale USA", "HNCU": "Ora standard di Cuba", "HECU": "Ora legale di Cuba", "UYT": "Ora standard dell’Uruguay", "AWDT": "Ora legale dell’Australia occidentale", "CLT": "Ora standard del Cile", "CLST": "Ora legale del Cile", "ChST": "Ora di Chamorro", "WARST": "Ora legale dell’Argentina occidentale", "ECT": "Ora dell’Ecuador", "WART": "Ora standard dell’Argentina occidentale", "HNT": "Ora standard di Terranova", "PST": "Ora standard del Pacifico USA", "LHST": "Ora standard di Lord Howe", "SAST": "Ora dell’Africa meridionale", "WESZ": "Ora legale dell’Europa occidentale", "EST": "Ora standard orientale USA", "UYST": "Ora legale dell’Uruguay", "CHAST": "Ora standard delle Chatham", "WAST": "Ora legale dell’Africa occidentale", "OEZ": "Ora standard dell’Europa orientale", "HNNOMX": "Ora standard del Messico nord-occidentale", "HNEG": "Ora standard della Groenlandia orientale", "MDT": "MDT", "GYT": "Ora della Guyana", "HAT": "Ora legale di Terranova", "NZDT": "Ora legale della Nuova Zelanda", "IST": "Ora standard dell’India", "JST": "Ora standard del Giappone", "BOT": "Ora della Bolivia", "HEPM": "Ora legale di Saint-Pierre e Miquelon", "CAT": "Ora dell’Africa centrale", "HENOMX": "Ora legale del Messico nord-occidentale", "MYT": "Ora della Malesia", "WIB": "Ora dell’Indonesia occidentale", "COST": "Ora legale della Colombia", "HEPMX": "Ora legale del Pacifico (Messico)", "HEOG": "Ora legale della Groenlandia occidentale", "AEST": "Ora standard dell’Australia orientale", "COT": "Ora standard della Colombia", "VET": "Ora del Venezuela", "WIT": "Ora dell’Indonesia orientale", "SRT": "Ora del Suriname", "MEZ": "Ora standard dell’Europa centrale", "HEEG": "Ora legale della Groenlandia orientale", "TMST": "Ora legale del Turkmenistan", "ACST": "Ora standard dell’Australia centrale", "WEZ": "Ora standard dell’Europa occidentale", "PDT": "Ora legale del Pacifico USA", "ART": "Ora standard dell’Argentina", "CHADT": "Ora legale delle Chatham", "MESZ": "Ora legale dell’Europa centrale", "OESZ": "Ora legale dell’Europa orientale", "BT": "Ora del Bhutan", "JDT": "Ora legale del Giappone", "WAT": "Ora standard dell’Africa occidentale", "HNPMX": "Ora standard del Pacifico (Messico)", "∅∅∅": "Ora legale dell’Amazzonia", "GFT": "Ora della Guiana francese", "CDT": "Ora legale centrale USA"},
+ timezones: map[string]string{"PST": "Ora standard del Pacifico USA", "CLT": "Ora standard del Cile", "HAT": "Ora legale di Terranova", "AKDT": "Ora legale dell’Alaska", "WIB": "Ora dell’Indonesia occidentale", "CHAST": "Ora standard delle Chatham", "HNCU": "Ora standard di Cuba", "HAST": "Ora standard delle Isole Hawaii-Aleutine", "ACWST": "Ora standard dell’Australia centroccidentale", "HNNOMX": "Ora standard del Messico nord-occidentale", "HNT": "Ora standard di Terranova", "AKST": "Ora standard dell’Alaska", "HNPMX": "Ora standard del Pacifico (Messico)", "WESZ": "Ora legale dell’Europa occidentale", "HKT": "Ora standard di Hong Kong", "HKST": "Ora legale di Hong Kong", "HECU": "Ora legale di Cuba", "WEZ": "Ora standard dell’Europa occidentale", "PDT": "Ora legale del Pacifico USA", "TMT": "Ora standard del Turkmenistan", "ACST": "Ora standard dell’Australia centrale", "AEDT": "Ora legale dell’Australia orientale", "UYST": "Ora legale dell’Uruguay", "HEPMX": "Ora legale del Pacifico (Messico)", "CLST": "Ora legale del Cile", "WAST": "Ora legale dell’Africa occidentale", "ACDT": "Ora legale dell’Australia centrale", "LHDT": "Ora legale di Lord Howe", "MESZ": "Ora legale dell’Europa centrale", "EST": "Ora standard orientale USA", "MDT": "Ora legale Montagne Rocciose USA", "GFT": "Ora della Guiana francese", "CDT": "Ora legale centrale USA", "JST": "Ora standard del Giappone", "WARST": "Ora legale dell’Argentina occidentale", "WAT": "Ora standard dell’Africa occidentale", "∅∅∅": "∅∅∅", "BT": "Ora del Bhutan", "WIT": "Ora dell’Indonesia orientale", "NZDT": "Ora legale della Nuova Zelanda", "AST": "Ora standard dell’Atlantico", "COT": "Ora standard della Colombia", "HNEG": "Ora standard della Groenlandia orientale", "SRT": "Ora del Suriname", "AWST": "Ora standard dell’Australia occidentale", "GMT": "Ora del meridiano di Greenwich", "MYT": "Ora della Malesia", "OESZ": "Ora legale dell’Europa orientale", "AEST": "Ora standard dell’Australia orientale", "HNPM": "Ora standard di Saint-Pierre e Miquelon", "LHST": "Ora standard di Lord Howe", "NZST": "Ora standard della Nuova Zelanda", "ADT": "Ora legale dell’Atlantico", "HEEG": "Ora legale della Groenlandia orientale", "SGT": "Ora di Singapore", "ACWDT": "Ora legale dell’Australia centroccidentale", "MEZ": "Ora standard dell’Europa centrale", "HADT": "Ora legale delle Isole Hawaii-Aleutine", "OEZ": "Ora standard dell’Europa orientale", "TMST": "Ora legale del Turkmenistan", "ART": "Ora standard dell’Argentina", "WITA": "Ora dell’Indonesia centrale", "UYT": "Ora standard dell’Uruguay", "EAT": "Ora dell’Africa orientale", "AWDT": "Ora legale dell’Australia occidentale", "CAT": "Ora dell’Africa centrale", "HEOG": "Ora legale della Groenlandia occidentale", "ARST": "Ora legale dell’Argentina", "CHADT": "Ora legale delle Chatham", "JDT": "Ora legale del Giappone", "VET": "Ora del Venezuela", "HNOG": "Ora standard della Groenlandia occidentale", "EDT": "Ora legale orientale USA", "COST": "Ora legale della Colombia", "MST": "Ora standard Montagne Rocciose USA", "HEPM": "Ora legale di Saint-Pierre e Miquelon", "HENOMX": "Ora legale del Messico nord-occidentale", "ECT": "Ora dell’Ecuador", "IST": "Ora standard dell’India", "WART": "Ora standard dell’Argentina occidentale", "ChST": "Ora di Chamorro", "SAST": "Ora dell’Africa meridionale", "CST": "Ora standard centrale USA", "BOT": "Ora della Bolivia", "GYT": "Ora della Guyana"},
}
}
diff --git a/ja/ja.go b/ja/ja.go
index 70dcdc09..a243abd5 100644
--- a/ja/ja.go
+++ b/ja/ja.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"紀元前", "西暦"},
erasNarrow: []string{"BC", "AD"},
erasWide: []string{"紀元前", "西暦"},
- timezones: map[string]string{"CLT": "チリ標準時", "HAT": "ニューファンドランド夏時間", "AWST": "オーストラリア西部標準時", "WITA": "インドネシア中部時間", "GYT": "ガイアナ時間", "UYST": "ウルグアイ夏時間", "CDT": "アメリカ中部夏時間", "ADT": "大西洋夏時間", "HNNOMX": "メキシコ北西部標準時", "SGT": "シンガポール標準時", "MST": "マカオ標準時", "WART": "西部アルゼンチン標準時", "AKST": "アラスカ標準時", "AEST": "オーストラリア東部標準時", "AEDT": "オーストラリア東部夏時間", "IST": "インド標準時", "SRT": "スリナム時間", "BOT": "ボリビア時間", "HNEG": "グリーンランド東部標準時", "CLST": "チリ夏時間", "GFT": "仏領ギアナ時間", "AKDT": "アラスカ夏時間", "AST": "大西洋標準時", "HNT": "ニューファンドランド標準時", "NZST": "ニュージーランド標準時", "CHAST": "チャタム標準時", "EST": "アメリカ東部標準時", "UYT": "ウルグアイ標準時", "HKST": "香港夏時間", "WAST": "西アフリカ夏時間", "HNCU": "キューバ標準時", "GMT": "グリニッジ標準時", "EDT": "アメリカ東部夏時間", "MYT": "マレーシア時間", "MEZ": "中央ヨーロッパ標準時", "JDT": "日本夏時間", "WARST": "西部アルゼンチン夏時間", "WAT": "西アフリカ標準時", "∅∅∅": "アマゾン夏時間", "TMT": "トルクメニスタン標準時", "TMST": "トルクメニスタン夏時間", "MESZ": "中央ヨーロッパ夏時間", "NZDT": "ニュージーランド夏時間", "CHADT": "チャタム夏時間", "ACST": "オーストラリア中部標準時", "CAT": "中央アフリカ時間", "WIT": "インドネシア東部時間", "BT": "ブータン時間", "HNOG": "グリーンランド西部標準時", "EAT": "東アフリカ時間", "COT": "コロンビア標準時", "HENOMX": "メキシコ北西部夏時間", "MDT": "マカオ夏時間", "HNPMX": "メキシコ太平洋標準時", "PDT": "アメリカ太平洋夏時間", "WEZ": "西ヨーロッパ標準時", "OESZ": "東ヨーロッパ夏時間", "HKT": "香港標準時", "COST": "コロンビア夏時間", "ACWST": "オーストラリア中西部標準時", "AWDT": "オーストラリア西部夏時間", "HEPMX": "メキシコ太平洋夏時間", "CST": "アメリカ中部標準時", "HAST": "ハワイ・アリューシャン標準時", "ACWDT": "オーストラリア中西部夏時間", "OEZ": "東ヨーロッパ標準時", "PST": "アメリカ太平洋標準時", "JST": "日本標準時", "ChST": "チャモロ時間", "LHST": "ロードハウ標準時", "SAST": "南アフリカ標準時", "ACDT": "オーストラリア中部夏時間", "HECU": "キューバ夏時間", "WIB": "インドネシア西部時間", "VET": "ベネズエラ時間", "WESZ": "西ヨーロッパ夏時間", "HNPM": "サンピエール・ミクロン標準時", "ARST": "アルゼンチン夏時間", "HEPM": "サンピエール・ミクロン夏時間", "LHDT": "ロードハウ夏時間", "HEEG": "グリーンランド東部夏時間", "ECT": "エクアドル時間", "HADT": "ハワイ・アリューシャン夏時間", "HEOG": "グリーンランド西部夏時間", "ART": "アルゼンチン標準時"},
+ timezones: map[string]string{"MDT": "マカオ夏時間", "WAT": "西アフリカ標準時", "HEPM": "サンピエール・ミクロン夏時間", "AWST": "オーストラリア西部標準時", "SGT": "シンガポール標準時", "∅∅∅": "アマゾン夏時間", "WEZ": "西ヨーロッパ標準時", "JST": "日本標準時", "TMST": "トルクメニスタン夏時間", "AEST": "オーストラリア東部標準時", "AST": "大西洋標準時", "WIB": "インドネシア西部時間", "BOT": "ボリビア時間", "VET": "ベネズエラ時間", "OESZ": "東ヨーロッパ夏時間", "WART": "西部アルゼンチン標準時", "GMT": "グリニッジ標準時", "HEEG": "グリーンランド東部夏時間", "AKST": "アラスカ標準時", "HEPMX": "メキシコ太平洋夏時間", "AWDT": "オーストラリア西部夏時間", "COST": "コロンビア夏時間", "HNEG": "グリーンランド東部標準時", "GFT": "仏領ギアナ時間", "COT": "コロンビア標準時", "CST": "アメリカ中部標準時", "PDT": "アメリカ太平洋夏時間", "HADT": "ハワイ・アリューシャン夏時間", "CAT": "中央アフリカ時間", "EST": "アメリカ東部標準時", "ACWDT": "オーストラリア中西部夏時間", "HEOG": "グリーンランド西部夏時間", "HAT": "ニューファンドランド夏時間", "HENOMX": "メキシコ北西部夏時間", "WITA": "インドネシア中部時間", "JDT": "日本夏時間", "MYT": "マレーシア時間", "CLST": "チリ夏時間", "WAST": "西アフリカ夏時間", "HNCU": "キューバ標準時", "HECU": "キューバ夏時間", "MEZ": "中央ヨーロッパ標準時", "HNOG": "グリーンランド西部標準時", "ARST": "アルゼンチン夏時間", "LHDT": "ロードハウ夏時間", "WARST": "西部アルゼンチン夏時間", "AEDT": "オーストラリア東部夏時間", "AKDT": "アラスカ夏時間", "EAT": "東アフリカ時間", "HAST": "ハワイ・アリューシャン標準時", "WESZ": "西ヨーロッパ夏時間", "HKST": "香港夏時間", "HNNOMX": "メキシコ北西部標準時", "HNPM": "サンピエール・ミクロン標準時", "CDT": "アメリカ中部夏時間", "MESZ": "中央ヨーロッパ夏時間", "CLT": "チリ標準時", "HKT": "香港標準時", "ACST": "オーストラリア中部標準時", "HNT": "ニューファンドランド標準時", "UYST": "ウルグアイ夏時間", "ChST": "チャモロ時間", "WIT": "インドネシア東部時間", "PST": "アメリカ太平洋標準時", "IST": "インド標準時", "NZDT": "ニュージーランド夏時間", "ART": "アルゼンチン標準時", "EDT": "アメリカ東部夏時間", "SRT": "スリナム時間", "CHADT": "チャタム夏時間", "OEZ": "東ヨーロッパ標準時", "TMT": "トルクメニスタン標準時", "MST": "マカオ標準時", "UYT": "ウルグアイ標準時", "HNPMX": "メキシコ太平洋標準時", "GYT": "ガイアナ時間", "ADT": "大西洋夏時間", "ACDT": "オーストラリア中部夏時間", "BT": "ブータン時間", "LHST": "ロードハウ標準時", "CHAST": "チャタム標準時", "ECT": "エクアドル時間", "ACWST": "オーストラリア中西部標準時", "NZST": "ニュージーランド標準時", "SAST": "南アフリカ標準時"},
}
}
diff --git a/ja_JP/ja_JP.go b/ja_JP/ja_JP.go
index b0bdd078..63a02149 100644
--- a/ja_JP/ja_JP.go
+++ b/ja_JP/ja_JP.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"紀元前", "西暦"},
erasNarrow: []string{"BC", "AD"},
erasWide: []string{"紀元前", "西暦"},
- timezones: map[string]string{"HEOG": "グリーンランド西部夏時間", "LHST": "ロードハウ標準時", "WART": "西部アルゼンチン標準時", "MYT": "マレーシア時間", "AWST": "オーストラリア西部標準時", "HNPM": "サンピエール・ミクロン標準時", "HEEG": "グリーンランド東部夏時間", "CST": "アメリカ中部標準時", "VET": "ベネズエラ時間", "OESZ": "東ヨーロッパ夏時間", "HADT": "ハワイ・アリューシャン夏時間", "ACDT": "オーストラリア中部夏時間", "OEZ": "東ヨーロッパ標準時", "COST": "コロンビア夏時間", "HEPMX": "メキシコ太平洋夏時間", "CHADT": "チャタム夏時間", "JST": "日本標準時", "GFT": "仏領ギアナ時間", "GMT": "グリニッジ標準時", "MDT": "マカオ夏時間", "WIT": "インドネシア東部時間", "HKT": "香港標準時", "CLST": "チリ夏時間", "∅∅∅": "アマゾン夏時間", "UYST": "ウルグアイ夏時間", "HENOMX": "メキシコ北西部夏時間", "AKST": "アラスカ標準時", "PST": "アメリカ太平洋標準時", "IST": "インド標準時", "JDT": "日本夏時間", "ChST": "チャモロ時間", "CAT": "中央アフリカ時間", "ECT": "エクアドル時間", "EDT": "アメリカ東部夏時間", "AEST": "オーストラリア東部標準時", "HKST": "香港夏時間", "MESZ": "中央ヨーロッパ夏時間", "CLT": "チリ標準時", "WAT": "西アフリカ標準時", "ACST": "オーストラリア中部標準時", "WARST": "西部アルゼンチン夏時間", "HNNOMX": "メキシコ北西部標準時", "HAST": "ハワイ・アリューシャン標準時", "SRT": "スリナム時間", "HNOG": "グリーンランド西部標準時", "ACWDT": "オーストラリア中西部夏時間", "ARST": "アルゼンチン夏時間", "CDT": "アメリカ中部夏時間", "ADT": "大西洋夏時間", "GYT": "ガイアナ時間", "BT": "ブータン時間", "WESZ": "西ヨーロッパ夏時間", "HAT": "ニューファンドランド夏時間", "ART": "アルゼンチン標準時", "MST": "マカオ標準時", "AKDT": "アラスカ夏時間", "AST": "大西洋標準時", "WEZ": "西ヨーロッパ標準時", "WITA": "インドネシア中部時間", "HNEG": "グリーンランド東部標準時", "TMT": "トルクメニスタン標準時", "WAST": "西アフリカ夏時間", "PDT": "アメリカ太平洋夏時間", "ACWST": "オーストラリア中西部標準時", "HNCU": "キューバ標準時", "HEPM": "サンピエール・ミクロン夏時間", "LHDT": "ロードハウ夏時間", "CHAST": "チャタム標準時", "EAT": "東アフリカ時間", "SGT": "シンガポール標準時", "NZDT": "ニュージーランド夏時間", "BOT": "ボリビア時間", "TMST": "トルクメニスタン夏時間", "HECU": "キューバ夏時間", "HNPMX": "メキシコ太平洋標準時", "MEZ": "中央ヨーロッパ標準時", "COT": "コロンビア標準時", "EST": "アメリカ東部標準時", "WIB": "インドネシア西部時間", "UYT": "ウルグアイ標準時", "HNT": "ニューファンドランド標準時", "AEDT": "オーストラリア東部夏時間", "AWDT": "オーストラリア西部夏時間", "NZST": "ニュージーランド標準時", "SAST": "南アフリカ標準時"},
+ timezones: map[string]string{"TMT": "トルクメニスタン標準時", "MST": "マカオ標準時", "HNEG": "グリーンランド東部標準時", "CAT": "中央アフリカ時間", "OESZ": "東ヨーロッパ夏時間", "GMT": "グリニッジ標準時", "ACST": "オーストラリア中部標準時", "COST": "コロンビア夏時間", "ECT": "エクアドル時間", "WESZ": "西ヨーロッパ夏時間", "HKST": "香港夏時間", "LHST": "ロードハウ標準時", "WAT": "西アフリカ標準時", "AKDT": "アラスカ夏時間", "HNNOMX": "メキシコ北西部標準時", "BT": "ブータン時間", "AKST": "アラスカ標準時", "HECU": "キューバ夏時間", "CST": "アメリカ中部標準時", "ADT": "大西洋夏時間", "AST": "大西洋標準時", "AEDT": "オーストラリア東部夏時間", "HNPMX": "メキシコ太平洋標準時", "EAT": "東アフリカ時間", "NZDT": "ニュージーランド夏時間", "SRT": "スリナム時間", "JST": "日本標準時", "HKT": "香港標準時", "ACWDT": "オーストラリア中西部夏時間", "CLT": "チリ標準時", "ARST": "アルゼンチン夏時間", "SGT": "シンガポール標準時", "IST": "インド標準時", "NZST": "ニュージーランド標準時", "COT": "コロンビア標準時", "HEPM": "サンピエール・ミクロン夏時間", "LHDT": "ロードハウ夏時間", "HEPMX": "メキシコ太平洋夏時間", "HNCU": "キューバ標準時", "ACWST": "オーストラリア中西部標準時", "HEOG": "グリーンランド西部夏時間", "HENOMX": "メキシコ北西部夏時間", "HAT": "ニューファンドランド夏時間", "∅∅∅": "アゾレス夏時間", "CHADT": "チャタム夏時間", "BOT": "ボリビア時間", "EDT": "アメリカ東部夏時間", "CLST": "チリ夏時間", "EST": "アメリカ東部標準時", "UYT": "ウルグアイ標準時", "HNPM": "サンピエール・ミクロン標準時", "WIB": "インドネシア西部時間", "PDT": "アメリカ太平洋夏時間", "WARST": "西部アルゼンチン夏時間", "GFT": "仏領ギアナ時間", "WITA": "インドネシア中部時間", "ChST": "チャモロ時間", "CHAST": "チャタム標準時", "HNOG": "グリーンランド西部標準時", "HNT": "ニューファンドランド標準時", "TMST": "トルクメニスタン夏時間", "GYT": "ガイアナ時間", "CDT": "アメリカ中部夏時間", "MYT": "マレーシア時間", "WEZ": "西ヨーロッパ標準時", "MDT": "マカオ夏時間", "ACDT": "オーストラリア中部夏時間", "AWST": "オーストラリア西部標準時", "HAST": "ハワイ・アリューシャン標準時", "OEZ": "東ヨーロッパ標準時", "HEEG": "グリーンランド東部夏時間", "UYST": "ウルグアイ夏時間", "PST": "アメリカ太平洋標準時", "WART": "西部アルゼンチン標準時", "WAST": "西アフリカ夏時間", "HADT": "ハワイ・アリューシャン夏時間", "MEZ": "中央ヨーロッパ標準時", "MESZ": "中央ヨーロッパ夏時間", "VET": "ベネズエラ時間", "JDT": "日本夏時間", "SAST": "南アフリカ標準時", "WIT": "インドネシア東部時間", "AWDT": "オーストラリア西部夏時間", "ART": "アルゼンチン標準時", "AEST": "オーストラリア東部標準時"},
}
}
diff --git a/jgo/jgo.go b/jgo/jgo.go
index b4d5475a..e3d2f1f2 100644
--- a/jgo/jgo.go
+++ b/jgo/jgo.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "CE"},
erasNarrow: []string{"", ""},
erasWide: []string{"tsɛttsɛt mɛŋguꞌ mi ɛ́ lɛɛnɛ Kɛlísɛtɔ gɔ ńɔ́", "tsɛttsɛt mɛŋguꞌ mi ɛ́ fúnɛ Kɛlísɛtɔ tɔ́ mɔ́"},
- timezones: map[string]string{"AEDT": "AEDT", "CHADT": "CHADT", "ACST": "ACST", "HENOMX": "HENOMX", "ChST": "ChST", "MYT": "MYT", "UYT": "UYT", "PDT": "PDT", "CHAST": "CHAST", "MESZ": "MESZ", "CLST": "CLST", "HNEG": "HNEG", "UYST": "UYST", "BOT": "BOT", "ECT": "ECT", "EAT": "EAT", "BT": "BT", "HKT": "HKT", "NZST": "NZST", "∅∅∅": "∅∅∅", "TMT": "TMT", "AKDT": "AKDT", "ACDT": "ACDT", "OESZ": "OESZ", "WARST": "WARST", "HNT": "HNT", "HEOG": "HEOG", "WEZ": "WEZ", "AWST": "AWST", "HNPM": "HNPM", "HNPMX": "HNPMX", "EDT": "EDT", "GYT": "GYT", "HADT": "HADT", "HKST": "HKST", "SAST": "SAST", "HEEG": "HEEG", "SRT": "SRT", "JDT": "JDT", "IST": "IST", "GFT": "GFT", "GMT": "GMT", "ADT": "ADT", "WIB": "WIB", "AWDT": "AWDT", "AST": "AST", "WIT": "WIT", "WITA": "WITA", "OEZ": "OEZ", "CAT": "CAT", "EST": "EST", "HAT": "HAT", "ART": "ART", "COT": "COT", "HECU": "HECU", "CDT": "CDT", "ACWST": "ACWST", "WESZ": "WESZ", "HEPM": "HEPM", "WAT": "WAT", "HNCU": "HNCU", "HEPMX": "HEPMX", "VET": "VET", "ACWDT": "ACWDT", "NZDT": "NZDT", "LHDT": "LHDT", "WAST": "WAST", "MDT": "MDT", "PST": "PST", "AEST": "AEST", "WART": "WART", "MEZ": "MEZ", "COST": "COST", "AKST": "AKST", "MST": "MST", "HAST": "HAST", "HNOG": "HNOG", "JST": "JST", "CLT": "CLT", "CST": "CST", "ARST": "ARST", "LHST": "LHST", "TMST": "TMST", "HNNOMX": "HNNOMX", "SGT": "SGT"},
+ timezones: map[string]string{"HNOG": "HNOG", "CDT": "CDT", "CLT": "CLT", "HNNOMX": "HNNOMX", "GFT": "GFT", "HNPM": "HNPM", "AWDT": "AWDT", "HEOG": "HEOG", "MST": "MST", "CAT": "CAT", "NZDT": "NZDT", "CLST": "CLST", "GMT": "GMT", "TMST": "TMST", "MDT": "MDT", "COT": "COT", "COST": "COST", "BT": "BT", "HAT": "HAT", "UYT": "UYT", "HEPMX": "HEPMX", "WIB": "WIB", "CHADT": "CHADT", "PST": "PST", "HADT": "HADT", "JDT": "JDT", "WAST": "WAST", "EDT": "EDT", "HNEG": "HNEG", "BOT": "BOT", "IST": "IST", "ACWST": "ACWST", "WEZ": "WEZ", "WAT": "WAT", "HKST": "HKST", "LHDT": "LHDT", "HECU": "HECU", "MESZ": "MESZ", "JST": "JST", "WART": "WART", "WARST": "WARST", "ART": "ART", "ARST": "ARST", "EST": "EST", "SGT": "SGT", "AEST": "AEST", "AST": "AST", "ACDT": "ACDT", "AKST": "AKST", "GYT": "GYT", "HNCU": "HNCU", "WIT": "WIT", "ACWDT": "ACWDT", "VET": "VET", "WESZ": "WESZ", "HNT": "HNT", "HNPMX": "HNPMX", "CHAST": "CHAST", "PDT": "PDT", "MEZ": "MEZ", "HEEG": "HEEG", "EAT": "EAT", "HKT": "HKT", "WITA": "WITA", "SRT": "SRT", "HAST": "HAST", "MYT": "MYT", "ADT": "ADT", "OEZ": "OEZ", "TMT": "TMT", "ACST": "ACST", "HENOMX": "HENOMX", "AKDT": "AKDT", "UYST": "UYST", "HEPM": "HEPM", "SAST": "SAST", "LHST": "LHST", "ECT": "ECT", "∅∅∅": "∅∅∅", "NZST": "NZST", "OESZ": "OESZ", "AEDT": "AEDT", "ChST": "ChST", "CST": "CST", "AWST": "AWST"},
}
}
diff --git a/jgo_CM/jgo_CM.go b/jgo_CM/jgo_CM.go
index ab9ff986..d3e9dd30 100644
--- a/jgo_CM/jgo_CM.go
+++ b/jgo_CM/jgo_CM.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "CE"},
erasNarrow: []string{"", ""},
erasWide: []string{"tsɛttsɛt mɛŋguꞌ mi ɛ́ lɛɛnɛ Kɛlísɛtɔ gɔ ńɔ́", "tsɛttsɛt mɛŋguꞌ mi ɛ́ fúnɛ Kɛlísɛtɔ tɔ́ mɔ́"},
- timezones: map[string]string{"JST": "JST", "ACST": "ACST", "HNCU": "HNCU", "PDT": "PDT", "HEPM": "HEPM", "NZDT": "NZDT", "HAT": "HAT", "HKT": "HKT", "OESZ": "OESZ", "AKDT": "AKDT", "MYT": "MYT", "BT": "BT", "GFT": "GFT", "UYST": "UYST", "HNOG": "HNOG", "CLST": "CLST", "WAST": "WAST", "SRT": "SRT", "ACWST": "ACWST", "TMT": "TMT", "BOT": "BOT", "CAT": "CAT", "WITA": "WITA", "AWDT": "AWDT", "SAST": "SAST", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "EDT": "EDT", "GYT": "GYT", "WIT": "WIT", "HENOMX": "HENOMX", "SGT": "SGT", "PST": "PST", "HKST": "HKST", "HNPM": "HNPM", "CHAST": "CHAST", "CHADT": "CHADT", "HNPMX": "HNPMX", "EST": "EST", "HADT": "HADT", "MEZ": "MEZ", "ChST": "ChST", "ECT": "ECT", "CST": "CST", "ADT": "ADT", "WAT": "WAT", "MESZ": "MESZ", "WARST": "WARST", "AST": "AST", "ART": "ART", "HEOG": "HEOG", "EAT": "EAT", "MST": "MST", "TMST": "TMST", "ACDT": "ACDT", "HAST": "HAST", "AEST": "AEST", "LHST": "LHST", "IST": "IST", "CLT": "CLT", "HEPMX": "HEPMX", "AKST": "AKST", "CDT": "CDT", "OEZ": "OEZ", "WART": "WART", "HNT": "HNT", "AWST": "AWST", "HECU": "HECU", "COST": "COST", "GMT": "GMT", "ARST": "ARST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "WEZ": "WEZ", "COT": "COT", "MDT": "MDT", "UYT": "UYT", "WIB": "WIB", "AEDT": "AEDT", "NZST": "NZST", "LHDT": "LHDT", "JDT": "JDT", "VET": "VET", "ACWDT": "ACWDT", "WESZ": "WESZ"},
+ timezones: map[string]string{"PDT": "PDT", "NZDT": "NZDT", "CAT": "CAT", "JDT": "JDT", "TMST": "TMST", "ACST": "ACST", "JST": "JST", "ART": "ART", "GYT": "GYT", "WIT": "WIT", "LHDT": "LHDT", "MEZ": "MEZ", "HEOG": "HEOG", "HAT": "HAT", "WITA": "WITA", "UYT": "UYT", "HEPM": "HEPM", "CHADT": "CHADT", "MYT": "MYT", "WEZ": "WEZ", "MDT": "MDT", "HKST": "HKST", "BT": "BT", "HECU": "HECU", "NZST": "NZST", "ACWST": "ACWST", "MST": "MST", "HENOMX": "HENOMX", "HNCU": "HNCU", "VET": "VET", "HNOG": "HNOG", "OESZ": "OESZ", "EST": "EST", "HNPMX": "HNPMX", "AWST": "AWST", "IST": "IST", "MESZ": "MESZ", "SAST": "SAST", "CST": "CST", "CDT": "CDT", "BOT": "BOT", "WART": "WART", "ADT": "ADT", "WESZ": "WESZ", "HNT": "HNT", "ARST": "ARST", "AKST": "AKST", "LHST": "LHST", "EAT": "EAT", "AWDT": "AWDT", "TMT": "TMT", "WAT": "WAT", "EDT": "EDT", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "HNPM": "HNPM", "GFT": "GFT", "PST": "PST", "HAST": "HAST", "CLST": "CLST", "ACDT": "ACDT", "HNEG": "HNEG", "AEDT": "AEDT", "ECT": "ECT", "GMT": "GMT", "SGT": "SGT", "ACWDT": "ACWDT", "WARST": "WARST", "CLT": "CLT", "HKT": "HKT", "COST": "COST", "AEST": "AEST", "HADT": "HADT", "∅∅∅": "∅∅∅", "COT": "COT", "ChST": "ChST", "HEPMX": "HEPMX", "WIB": "WIB", "HEEG": "HEEG", "AST": "AST", "OEZ": "OEZ", "WAST": "WAST", "UYST": "UYST", "SRT": "SRT", "CHAST": "CHAST"},
}
}
diff --git a/jmc/jmc.go b/jmc/jmc.go
index bcb3eb4c..f29945b5 100644
--- a/jmc/jmc.go
+++ b/jmc/jmc.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Kristu", "Baada ya Kristu"},
- timezones: map[string]string{"AKDT": "AKDT", "HAT": "HAT", "ART": "ART", "MESZ": "MESZ", "TMST": "TMST", "WARST": "WARST", "HECU": "HECU", "UYT": "UYT", "LHST": "LHST", "ACST": "ACST", "ACDT": "ACDT", "WIB": "WIB", "ARST": "ARST", "BT": "BT", "WEZ": "WEZ", "GFT": "GFT", "EAT": "EAT", "HNCU": "HNCU", "MYT": "MYT", "NZST": "NZST", "CAT": "CAT", "GMT": "GMT", "HAST": "HAST", "WIT": "WIT", "AEST": "AEST", "AEDT": "AEDT", "WAT": "WAT", "SGT": "SGT", "HEPMX": "HEPMX", "ACWDT": "ACWDT", "AWDT": "AWDT", "NZDT": "NZDT", "SAST": "SAST", "HNEG": "HNEG", "HEEG": "HEEG", "HNPMX": "HNPMX", "PST": "PST", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "GYT": "GYT", "CLST": "CLST", "CDT": "CDT", "ADT": "ADT", "VET": "VET", "CHAST": "CHAST", "BOT": "BOT", "WAST": "WAST", "EST": "EST", "MDT": "MDT", "AKST": "AKST", "IST": "IST", "HADT": "HADT", "HNOG": "HNOG", "WESZ": "WESZ", "AWST": "AWST", "∅∅∅": "∅∅∅", "HEOG": "HEOG", "HKT": "HKT", "ChST": "ChST", "HNT": "HNT", "WITA": "WITA", "MEZ": "MEZ", "AST": "AST", "SRT": "SRT", "ACWST": "ACWST", "HKST": "HKST", "WART": "WART", "COT": "COT", "COST": "COST", "UYST": "UYST", "HNPM": "HNPM", "CHADT": "CHADT", "HEPM": "HEPM", "LHDT": "LHDT", "JST": "JST", "JDT": "JDT", "TMT": "TMT", "ECT": "ECT", "EDT": "EDT", "CST": "CST", "HENOMX": "HENOMX", "MST": "MST", "OESZ": "OESZ", "PDT": "PDT", "CLT": "CLT"},
+ timezones: map[string]string{"CHAST": "CHAST", "HADT": "HADT", "ChST": "ChST", "HNPMX": "HNPMX", "VET": "VET", "OESZ": "OESZ", "ARST": "ARST", "EST": "EST", "HNNOMX": "HNNOMX", "MESZ": "MESZ", "WART": "WART", "AST": "AST", "GFT": "GFT", "AKDT": "AKDT", "SGT": "SGT", "WEZ": "WEZ", "ACST": "ACST", "HEOG": "HEOG", "GYT": "GYT", "WIT": "WIT", "NZST": "NZST", "IST": "IST", "ACWST": "ACWST", "MDT": "MDT", "ACDT": "ACDT", "LHST": "LHST", "CST": "CST", "HKT": "HKT", "WITA": "WITA", "HECU": "HECU", "TMST": "TMST", "ACWDT": "ACWDT", "CLT": "CLT", "WESZ": "WESZ", "COST": "COST", "HNEG": "HNEG", "AEST": "AEST", "SRT": "SRT", "CDT": "CDT", "BOT": "BOT", "GMT": "GMT", "OEZ": "OEZ", "∅∅∅": "∅∅∅", "PST": "PST", "HAST": "HAST", "MYT": "MYT", "TMT": "TMT", "EDT": "EDT", "COT": "COT", "AKST": "AKST", "AWDT": "AWDT", "HNCU": "HNCU", "CHADT": "CHADT", "WAT": "WAT", "HKST": "HKST", "SAST": "SAST", "AWST": "AWST", "NZDT": "NZDT", "CAT": "CAT", "UYST": "UYST", "HEPM": "HEPM", "HEPMX": "HEPMX", "ADT": "ADT", "ART": "ART", "HENOMX": "HENOMX", "AEDT": "AEDT", "JDT": "JDT", "MST": "MST", "HAT": "HAT", "MEZ": "MEZ", "EAT": "EAT", "PDT": "PDT", "WARST": "WARST", "WAST": "WAST", "LHDT": "LHDT", "ECT": "ECT", "JST": "JST", "CLST": "CLST", "HNOG": "HNOG", "BT": "BT", "HNT": "HNT", "HEEG": "HEEG", "WIB": "WIB", "HNPM": "HNPM", "UYT": "UYT"},
}
}
diff --git a/jmc_TZ/jmc_TZ.go b/jmc_TZ/jmc_TZ.go
index 2630ba67..8c14a6b8 100644
--- a/jmc_TZ/jmc_TZ.go
+++ b/jmc_TZ/jmc_TZ.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Kristu", "Baada ya Kristu"},
- timezones: map[string]string{"OEZ": "OEZ", "LHDT": "LHDT", "MEZ": "MEZ", "TMT": "TMT", "AWST": "AWST", "HEPM": "HEPM", "CHAST": "CHAST", "WAT": "WAT", "HENOMX": "HENOMX", "MST": "MST", "HAST": "HAST", "WEZ": "WEZ", "COST": "COST", "SGT": "SGT", "HEPMX": "HEPMX", "TMST": "TMST", "ACST": "ACST", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "AST": "AST", "ARST": "ARST", "HKST": "HKST", "EDT": "EDT", "UYST": "UYST", "HAT": "HAT", "JST": "JST", "WAST": "WAST", "ECT": "ECT", "SAST": "SAST", "GFT": "GFT", "WIB": "WIB", "HADT": "HADT", "CLT": "CLT", "PDT": "PDT", "CLST": "CLST", "JDT": "JDT", "MDT": "MDT", "AKST": "AKST", "ADT": "ADT", "GYT": "GYT", "ACWST": "ACWST", "HEEG": "HEEG", "WART": "WART", "VET": "VET", "CHADT": "CHADT", "BOT": "BOT", "HNT": "HNT", "HNOG": "HNOG", "PST": "PST", "EAT": "EAT", "HNPMX": "HNPMX", "EST": "EST", "CST": "CST", "WESZ": "WESZ", "WITA": "WITA", "AEST": "AEST", "AKDT": "AKDT", "SRT": "SRT", "ACWDT": "ACWDT", "ART": "ART", "AWDT": "AWDT", "NZDT": "NZDT", "HECU": "HECU", "BT": "BT", "HKT": "HKT", "LHST": "LHST", "NZST": "NZST", "∅∅∅": "∅∅∅", "GMT": "GMT", "WIT": "WIT", "OESZ": "OESZ", "MYT": "MYT", "AEDT": "AEDT", "HNPM": "HNPM", "CAT": "CAT", "CDT": "CDT", "ChST": "ChST", "ACDT": "ACDT", "IST": "IST", "COT": "COT", "WARST": "WARST", "UYT": "UYT", "HEOG": "HEOG", "MESZ": "MESZ"},
+ timezones: map[string]string{"CLST": "CLST", "HEOG": "HEOG", "MDT": "MDT", "ARST": "ARST", "COT": "COT", "AEST": "AEST", "CAT": "CAT", "WARST": "WARST", "HNOG": "HNOG", "OEZ": "OEZ", "HNT": "HNT", "AKST": "AKST", "AKDT": "AKDT", "SRT": "SRT", "AWST": "AWST", "CHADT": "CHADT", "WAST": "WAST", "HKT": "HKT", "AEDT": "AEDT", "HNPMX": "HNPMX", "SGT": "SGT", "ACWDT": "ACWDT", "JST": "JST", "WEZ": "WEZ", "WESZ": "WESZ", "EDT": "EDT", "WITA": "WITA", "MEZ": "MEZ", "MESZ": "MESZ", "ACWST": "ACWST", "NZDT": "NZDT", "CLT": "CLT", "COST": "COST", "AWDT": "AWDT", "PDT": "PDT", "BOT": "BOT", "HKST": "HKST", "JDT": "JDT", "MYT": "MYT", "NZST": "NZST", "WIT": "WIT", "HADT": "HADT", "ChST": "ChST", "HECU": "HECU", "HEEG": "HEEG", "CHAST": "CHAST", "WART": "WART", "ACST": "ACST", "HNEG": "HNEG", "UYST": "UYST", "LHST": "LHST", "EAT": "EAT", "CST": "CST", "ADT": "ADT", "TMST": "TMST", "EST": "EST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HAT": "HAT", "WIB": "WIB", "IST": "IST", "HEPMX": "HEPMX", "UYT": "UYT", "SAST": "SAST", "BT": "BT", "HEPM": "HEPM", "HNCU": "HNCU", "CDT": "CDT", "ART": "ART", "WAT": "WAT", "ECT": "ECT", "GMT": "GMT", "OESZ": "OESZ", "TMT": "TMT", "∅∅∅": "∅∅∅", "HAST": "HAST", "LHDT": "LHDT", "PST": "PST", "ACDT": "ACDT", "AST": "AST", "MST": "MST", "GFT": "GFT", "HNPM": "HNPM", "GYT": "GYT", "VET": "VET"},
}
}
diff --git a/ka/ka.go b/ka/ka.go
index 2b7116e5..c33e35b5 100644
--- a/ka/ka.go
+++ b/ka/ka.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ძვ. წ.", "ახ. წ."},
erasNarrow: []string{"", ""},
erasWide: []string{"ძველი წელთაღრიცხვით", "ახალი წელთაღრიცხვით"},
- timezones: map[string]string{"WEZ": "დასავლეთ ევროპის სტანდარტული დრო", "HNT": "ნიუფაუნდლენდის სტანდარტული დრო", "AEDT": "აღმოსავლეთ ავსტრალიის ზაფხულის დრო", "OEZ": "აღმოსავლეთ ევროპის სტანდარტული დრო", "WART": "დასავლეთ არგენტინის სტანდარტული დრო", "WARST": "დასავლეთ არგენტინის ზაფხულის დრო", "HEPMX": "მექსიკის წყნარი ოკეანის ზაფხულის დრო", "AST": "ატლანტიკის ოკეანის სტანდარტული დრო", "UYT": "ურუგვაის სტანდარტული დრო", "HNPM": "სენ-პიერის და მიკელონის სტანდარტული დრო", "SGT": "სინგაპურის დრო", "HNCU": "კუბის სტანდარტული დრო", "UYST": "ურუგვაის ზაფხულის დრო", "BT": "ბუტანის დრო", "HEOG": "დასავლეთ გრენლანდიის ზაფხულის დრო", "CLT": "ჩილეს სტანდარტული დრო", "CLST": "ჩილეს ზაფხულის დრო", "HNEG": "აღმოსავლეთ გრენლანდიის სტანდარტული დრო", "TMST": "თურქმენეთის ზაფხულის დრო", "SRT": "სურინამის დრო", "MESZ": "ცენტრალური ევროპის ზაფხულის დრო", "CHADT": "ჩატემის ზაფხულის დრო", "ACST": "ავსტრალიის ცენტრალური სტანდარტული დრო", "PDT": "ჩრდილოეთ ამერიკის წყნარი ოკეანის ზაფხულის დრო", "AWST": "დასავლეთ ავსტრალიის სტანდარტული დრო", "HKT": "ჰონკონგის სტანდარტული დრო", "EAT": "აღმოსავლეთ აფრიკის დრო", "WAT": "დასავლეთ აფრიკის სტანდარტული დრო", "HENOMX": "ჩრდილო-დასავლეთ მექსიკის ზაფხულის დრო", "MDT": "ჩრდილოეთ ამერიკის მაუნთინის ზაფხულის დრო", "ARST": "არგენტინის ზაფხულის დრო", "HEPM": "სენ-პიერის და მიკელონის ზაფხულის დრო", "MEZ": "ცენტრალური ევროპის სტანდარტული დრო", "BOT": "ბოლივიის დრო", "MST": "ჩრდილოეთ ამერიკის მაუნთინის სტანდარტული დრო", "WIT": "აღმოსავლეთ ინდონეზიის დრო", "IST": "ინდოეთის დრო", "JST": "იაპონიის სტანდარტული დრო", "ChST": "ჩამოროს დრო", "EST": "ჩრდილოეთ ამერიკის აღმოსავლეთის სტანდარტული დრო", "ECT": "ეკვადორის დრო", "AKST": "ალასკის სტანდარტული დრო", "CDT": "ჩრდილოეთ ამერიკის ცენტრალური ზაფხულის დრო", "GYT": "გაიანის დრო", "PST": "ჩრდილოეთ ამერიკის წყნარი ოკეანის სტანდარტული დრო", "ACWDT": "ცენტრალური და დასავლეთ ავსტრალიის ზაფხულის დრო", "LHDT": "ლორდ-ჰაუს ზაფხულის დრო", "TMT": "თურქმენეთის სტანდარტული დრო", "VET": "ვენესუელის დრო", "AWDT": "დასავლეთ ავსტრალიის ზაფხულის დრო", "WITA": "ცენტრალური ინდონეზიის დრო", "HNNOMX": "ჩრდილო-დასავლეთ მექსიკის დრო", "ADT": "ატლანტიკის ოკეანის ზაფხულის დრო", "NZST": "ახალი ზელანდიის სტანდარტული დრო", "SAST": "სამხრეთ აფრიკის დრო", "ACDT": "ავსტრალიის ცენტრალური ზაფხულის დრო", "CST": "ჩრდილოეთ ამერიკის ცენტრალური სტანდარტული დრო", "HAST": "ჰავაისა და ალეუტის სტანდარტული დრო", "HADT": "ჰავაისა და ალეუტის ზაფხულის დრო", "LHST": "ლორდ-ჰაუს სტანდარტული დრო", "HEEG": "აღმოსავლეთ გრენლანდიის ზაფხულის დრო", "GFT": "საფრანგეთის გვიანის დრო", "HECU": "კუბის ზაფხულის დრო", "COST": "კოლუმბიის ზაფხულის დრო", "MYT": "მალაიზიის დრო", "ART": "არგენტინის სტანდარტული დრო", "CHAST": "ჩატემის სტანდარტული დრო", "WAST": "დასავლეთ აფრიკის ზაფხულის დრო", "AKDT": "ალასკის ზაფხულის დრო", "WESZ": "დასავლეთ ევროპის ზაფხულის დრო", "ACWST": "ცენტრალური და დასავლეთ ავსტრალიის სტანდარტული დრო", "HAT": "ნიუფაუნდლენდის ზაფხულის დრო", "HKST": "ჰონკონგის ზაფხულის დრო", "JDT": "იაპონიის ზაფხულის დრო", "CAT": "ცენტრალური აფრიკის დრო", "OESZ": "აღმოსავლეთ ევროპის ზაფხულის დრო", "HNOG": "დასავლეთ გრენლანდიის სტანდარტული დრო", "AEST": "აღმოსავლეთ ავსტრალიის სტანდარტული დრო", "NZDT": "ახალი ზელანდიის ზაფხულის დრო", "∅∅∅": "ამაზონიის ზაფხულის დრო", "COT": "კოლუმბიის სტანდარტული დრო", "EDT": "ჩრდილოეთ ამერიკის აღმოსავლეთის ზაფხულის დრო", "HNPMX": "მექსიკის წყნარი ოკეანის სტანდარტული დრო", "WIB": "დასავლეთ ინდონეზიის დრო", "GMT": "გრინვიჩის საშუალო დრო"},
+ timezones: map[string]string{"IST": "ინდოეთის დრო", "WEZ": "დასავლეთ ევროპის სტანდარტული დრო", "ACST": "ავსტრალიის ცენტრალური სტანდარტული დრო", "AEDT": "აღმოსავლეთ ავსტრალიის ზაფხულის დრო", "HEPMX": "მექსიკის წყნარი ოკეანის ზაფხულის დრო", "AWDT": "დასავლეთ ავსტრალიის ზაფხულის დრო", "GMT": "გრინვიჩის საშუალო დრო", "OESZ": "აღმოსავლეთ ევროპის ზაფხულის დრო", "HKST": "ჰონკონგის ზაფხულის დრო", "SAST": "სამხრეთ აფრიკის დრო", "GYT": "გაიანის დრო", "SGT": "სინგაპურის დრო", "ECT": "ეკვადორის დრო", "HADT": "ჰავაისა და ალეუტის ზაფხულის დრო", "CDT": "ჩრდილოეთ ამერიკის ცენტრალური ზაფხულის დრო", "VET": "ვენესუელის დრო", "CLST": "ჩილეს ზაფხულის დრო", "ARST": "არგენტინის ზაფხულის დრო", "EDT": "ჩრდილოეთ ამერიკის აღმოსავლეთის ზაფხულის დრო", "ACDT": "ავსტრალიის ცენტრალური ზაფხულის დრო", "HNEG": "აღმოსავლეთ გრენლანდიის სტანდარტული დრო", "HEEG": "აღმოსავლეთ გრენლანდიის ზაფხულის დრო", "NZDT": "ახალი ზელანდიის ზაფხულის დრო", "JST": "იაპონიის სტანდარტული დრო", "LHST": "ლორდ-ჰაუს სტანდარტული დრო", "CHAST": "ჩატემის სტანდარტული დრო", "WARST": "დასავლეთ არგენტინის ზაფხულის დრო", "OEZ": "აღმოსავლეთ ევროპის სტანდარტული დრო", "ART": "არგენტინის სტანდარტული დრო", "HEPM": "სენ-პიერის და მიკელონის ზაფხულის დრო", "HNPMX": "მექსიკის წყნარი ოკეანის სტანდარტული დრო", "CAT": "ცენტრალური აფრიკის დრო", "MEZ": "ცენტრალური ევროპის სტანდარტული დრო", "MESZ": "ცენტრალური ევროპის ზაფხულის დრო", "WART": "დასავლეთ არგენტინის სტანდარტული დრო", "WAST": "დასავლეთ აფრიკის ზაფხულის დრო", "EAT": "აღმოსავლეთ აფრიკის დრო", "NZST": "ახალი ზელანდიის სტანდარტული დრო", "ACWDT": "ცენტრალური და დასავლეთ ავსტრალიის ზაფხულის დრო", "HENOMX": "ჩრდილო-დასავლეთ მექსიკის ზაფხულის დრო", "GFT": "საფრანგეთის გვიანის დრო", "HNOG": "დასავლეთ გრენლანდიის სტანდარტული დრო", "TMT": "თურქმენეთის სტანდარტული დრო", "WITA": "ცენტრალური ინდონეზიის დრო", "WIB": "დასავლეთ ინდონეზიის დრო", "AWST": "დასავლეთ ავსტრალიის სტანდარტული დრო", "PDT": "ჩრდილოეთ ამერიკის წყნარი ოკეანის ზაფხულის დრო", "JDT": "იაპონიის ზაფხულის დრო", "MST": "MST", "BT": "ბუტანის დრო", "UYT": "ურუგვაის სტანდარტული დრო", "CST": "ჩრდილოეთ ამერიკის ცენტრალური სტანდარტული დრო", "CHADT": "ჩატემის ზაფხულის დრო", "HEOG": "დასავლეთ გრენლანდიის ზაფხულის დრო", "WAT": "დასავლეთ აფრიკის სტანდარტული დრო", "COT": "კოლუმბიის სტანდარტული დრო", "AKDT": "ალასკის ზაფხულის დრო", "BOT": "ბოლივიის დრო", "ADT": "ატლანტიკის ოკეანის ზაფხულის დრო", "TMST": "თურქმენეთის ზაფხულის დრო", "EST": "ჩრდილოეთ ამერიკის აღმოსავლეთის სტანდარტული დრო", "HNT": "ნიუფაუნდლენდის სტანდარტული დრო", "AEST": "აღმოსავლეთ ავსტრალიის სტანდარტული დრო", "AKST": "ალასკის სტანდარტული დრო", "WIT": "აღმოსავლეთ ინდონეზიის დრო", "HAST": "ჰავაისა და ალეუტის სტანდარტული დრო", "ACWST": "ცენტრალური და დასავლეთ ავსტრალიის სტანდარტული დრო", "WESZ": "დასავლეთ ევროპის ზაფხულის დრო", "HKT": "ჰონკონგის სტანდარტული დრო", "HAT": "ნიუფაუნდლენდის ზაფხულის დრო", "ChST": "ჩამოროს დრო", "UYST": "ურუგვაის ზაფხულის დრო", "HNCU": "კუბის სტანდარტული დრო", "HECU": "კუბის ზაფხულის დრო", "COST": "კოლუმბიის ზაფხულის დრო", "HNPM": "სენ-პიერის და მიკელონის სტანდარტული დრო", "CLT": "ჩილეს სტანდარტული დრო", "AST": "ატლანტიკის ოკეანის სტანდარტული დრო", "HNNOMX": "ჩრდილო-დასავლეთ მექსიკის დრო", "SRT": "სურინამის დრო", "PST": "ჩრდილოეთ ამერიკის წყნარი ოკეანის სტანდარტული დრო", "∅∅∅": "ამაზონიის ზაფხულის დრო", "MYT": "მალაიზიის დრო", "MDT": "MDT", "LHDT": "ლორდ-ჰაუს ზაფხულის დრო"},
}
}
diff --git a/ka_GE/ka_GE.go b/ka_GE/ka_GE.go
index 5a0f9d1e..12c53f1c 100644
--- a/ka_GE/ka_GE.go
+++ b/ka_GE/ka_GE.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ძვ. წ.", "ახ. წ."},
erasNarrow: []string{"", ""},
erasWide: []string{"ძველი წელთაღრიცხვით", "ახალი წელთაღრიცხვით"},
- timezones: map[string]string{"CHADT": "ჩატემის ზაფხულის დრო", "WAT": "დასავლეთ აფრიკის სტანდარტული დრო", "BT": "ბუტანის დრო", "HNOG": "დასავლეთ გრენლანდიის სტანდარტული დრო", "HECU": "კუბის ზაფხულის დრო", "CLT": "ჩილეს სტანდარტული დრო", "GFT": "საფრანგეთის გვიანის დრო", "ACWDT": "ცენტრალური და დასავლეთ ავსტრალიის ზაფხულის დრო", "ART": "არგენტინის სტანდარტული დრო", "SAST": "სამხრეთ აფრიკის დრო", "ACDT": "ავსტრალიის ცენტრალური ზაფხულის დრო", "COT": "კოლუმბიის სტანდარტული დრო", "CST": "ჩრდილოეთ ამერიკის ცენტრალური სტანდარტული დრო", "SRT": "სურინამის დრო", "PST": "ჩრდილოეთ ამერიკის წყნარი ოკეანის სტანდარტული დრო", "CDT": "ჩრდილოეთ ამერიკის ცენტრალური ზაფხულის დრო", "HAST": "ჰავაისა და ალეუტის სტანდარტული დრო", "HKST": "ჰონკონგის ზაფხულის დრო", "WITA": "ცენტრალური ინდონეზიის დრო", "NZST": "ახალი ზელანდიის სტანდარტული დრო", "IST": "ინდოეთის დრო", "EAT": "აღმოსავლეთ აფრიკის დრო", "HENOMX": "ჩრდილო-დასავლეთ მექსიკის ზაფხულის დრო", "MDT": "ჩრდილოეთ ამერიკის მაუნთინის ზაფხულის დრო", "HADT": "ჰავაისა და ალეუტის ზაფხულის დრო", "MEZ": "ცენტრალური ევროპის სტანდარტული დრო", "CHAST": "ჩატემის სტანდარტული დრო", "ECT": "ეკვადორის დრო", "HNPMX": "მექსიკის წყნარი ოკეანის სტანდარტული დრო", "AST": "ატლანტიკის ოკეანის სტანდარტული დრო", "MST": "ჩრდილოეთ ამერიკის მაუნთინის სტანდარტული დრო", "VET": "ვენესუელის დრო", "WAST": "დასავლეთ აფრიკის ზაფხულის დრო", "HNNOMX": "ჩრდილო-დასავლეთ მექსიკის დრო", "AKST": "ალასკის სტანდარტული დრო", "AKDT": "ალასკის ზაფხულის დრო", "WESZ": "დასავლეთ ევროპის ზაფხულის დრო", "MESZ": "ცენტრალური ევროპის ზაფხულის დრო", "WARST": "დასავლეთ არგენტინის ზაფხულის დრო", "HEPMX": "მექსიკის წყნარი ოკეანის ზაფხულის დრო", "UYT": "ურუგვაის სტანდარტული დრო", "WIT": "აღმოსავლეთ ინდონეზიის დრო", "HEEG": "აღმოსავლეთ გრენლანდიის ზაფხულის დრო", "ACST": "ავსტრალიის ცენტრალური სტანდარტული დრო", "ADT": "ატლანტიკის ოკეანის ზაფხულის დრო", "WEZ": "დასავლეთ ევროპის სტანდარტული დრო", "JDT": "იაპონიის ზაფხულის დრო", "AWST": "დასავლეთ ავსტრალიის სტანდარტული დრო", "LHDT": "ლორდ-ჰაუს ზაფხულის დრო", "∅∅∅": "ამაზონიის ზაფხულის დრო", "JST": "იაპონიის სტანდარტული დრო", "HNEG": "აღმოსავლეთ გრენლანდიის სტანდარტული დრო", "COST": "კოლუმბიის ზაფხულის დრო", "GMT": "გრინვიჩის საშუალო დრო", "HNPM": "სენ-პიერის და მიკელონის სტანდარტული დრო", "LHST": "ლორდ-ჰაუს სტანდარტული დრო", "UYST": "ურუგვაის ზაფხულის დრო", "HNCU": "კუბის სტანდარტული დრო", "EST": "ჩრდილოეთ ამერიკის აღმოსავლეთის სტანდარტული დრო", "ChST": "ჩამოროს დრო", "OEZ": "აღმოსავლეთ ევროპის სტანდარტული დრო", "OESZ": "აღმოსავლეთ ევროპის ზაფხულის დრო", "ACWST": "ცენტრალური და დასავლეთ ავსტრალიის სტანდარტული დრო", "CLST": "ჩილეს ზაფხულის დრო", "HKT": "ჰონკონგის სტანდარტული დრო", "HEPM": "სენ-პიერის და მიკელონის ზაფხულის დრო", "WART": "დასავლეთ არგენტინის სტანდარტული დრო", "GYT": "გაიანის დრო", "MYT": "მალაიზიის დრო", "WIB": "დასავლეთ ინდონეზიის დრო", "ARST": "არგენტინის ზაფხულის დრო", "HEOG": "დასავლეთ გრენლანდიის ზაფხულის დრო", "AEDT": "აღმოსავლეთ ავსტრალიის ზაფხულის დრო", "NZDT": "ახალი ზელანდიის ზაფხულის დრო", "BOT": "ბოლივიის დრო", "TMT": "თურქმენეთის სტანდარტული დრო", "PDT": "ჩრდილოეთ ამერიკის წყნარი ოკეანის ზაფხულის დრო", "HNT": "ნიუფაუნდლენდის სტანდარტული დრო", "AWDT": "დასავლეთ ავსტრალიის ზაფხულის დრო", "TMST": "თურქმენეთის ზაფხულის დრო", "CAT": "ცენტრალური აფრიკის დრო", "SGT": "სინგაპურის დრო", "EDT": "ჩრდილოეთ ამერიკის აღმოსავლეთის ზაფხულის დრო", "HAT": "ნიუფაუნდლენდის ზაფხულის დრო", "AEST": "აღმოსავლეთ ავსტრალიის სტანდარტული დრო"},
+ timezones: map[string]string{"HENOMX": "ჩრდილო-დასავლეთ მექსიკის ზაფხულის დრო", "ChST": "ჩამოროს დრო", "UYT": "ურუგვაის სტანდარტული დრო", "HEPMX": "მექსიკის წყნარი ოკეანის ზაფხულის დრო", "ACDT": "ავსტრალიის ცენტრალური ზაფხულის დრო", "∅∅∅": "ბრაზილიის ზაფხულის დრო", "CHADT": "ჩატემის ზაფხულის დრო", "ECT": "ეკვადორის დრო", "JST": "იაპონიის სტანდარტული დრო", "EDT": "ჩრდილოეთ ამერიკის აღმოსავლეთის ზაფხულის დრო", "ACST": "ავსტრალიის ცენტრალური სტანდარტული დრო", "VET": "ვენესუელის დრო", "COST": "კოლუმბიის ზაფხულის დრო", "BT": "ბუტანის დრო", "HNPM": "სენ-პიერის და მიკელონის სტანდარტული დრო", "AEDT": "აღმოსავლეთ ავსტრალიის ზაფხულის დრო", "LHDT": "ლორდ-ჰაუს ზაფხულის დრო", "CDT": "ჩრდილოეთ ამერიკის ცენტრალური ზაფხულის დრო", "PST": "ჩრდილოეთ ამერიკის წყნარი ოკეანის სტანდარტული დრო", "CAT": "ცენტრალური აფრიკის დრო", "OEZ": "აღმოსავლეთ ევროპის სტანდარტული დრო", "CLST": "ჩილეს ზაფხულის დრო", "HNNOMX": "ჩრდილო-დასავლეთ მექსიკის დრო", "LHST": "ლორდ-ჰაუს სტანდარტული დრო", "SRT": "სურინამის დრო", "AWST": "დასავლეთ ავსტრალიის სტანდარტული დრო", "BOT": "ბოლივიის დრო", "HAST": "ჰავაისა და ალეუტის სტანდარტული დრო", "HEOG": "დასავლეთ გრენლანდიის ზაფხულის დრო", "MYT": "მალაიზიის დრო", "COT": "კოლუმბიის სტანდარტული დრო", "ACWST": "ცენტრალური და დასავლეთ ავსტრალიის სტანდარტული დრო", "ACWDT": "ცენტრალური და დასავლეთ ავსტრალიის ზაფხულის დრო", "CLT": "ჩილეს სტანდარტული დრო", "ARST": "არგენტინის ზაფხულის დრო", "SAST": "სამხრეთ აფრიკის დრო", "WIT": "აღმოსავლეთ ინდონეზიის დრო", "WEZ": "დასავლეთ ევროპის სტანდარტული დრო", "WARST": "დასავლეთ არგენტინის ზაფხულის დრო", "WAST": "დასავლეთ აფრიკის ზაფხულის დრო", "EAT": "აღმოსავლეთ აფრიკის დრო", "CHAST": "ჩატემის სტანდარტული დრო", "HADT": "ჰავაისა და ალეუტის ზაფხულის დრო", "NZST": "ახალი ზელანდიის სტანდარტული დრო", "NZDT": "ახალი ზელანდიის ზაფხულის დრო", "HAT": "ნიუფაუნდლენდის ზაფხულის დრო", "JDT": "იაპონიის ზაფხულის დრო", "ADT": "ატლანტიკის ოკეანის ზაფხულის დრო", "MST": "MST", "AEST": "აღმოსავლეთ ავსტრალიის სტანდარტული დრო", "GYT": "გაიანის დრო", "HECU": "კუბის ზაფხულის დრო", "WESZ": "დასავლეთ ევროპის ზაფხულის დრო", "EST": "ჩრდილოეთ ამერიკის აღმოსავლეთის სტანდარტული დრო", "PDT": "ჩრდილოეთ ამერიკის წყნარი ოკეანის ზაფხულის დრო", "HNOG": "დასავლეთ გრენლანდიის სტანდარტული დრო", "HKST": "ჰონკონგის ზაფხულის დრო", "WITA": "ცენტრალური ინდონეზიის დრო", "HNPMX": "მექსიკის წყნარი ოკეანის სტანდარტული დრო", "SGT": "სინგაპურის დრო", "OESZ": "აღმოსავლეთ ევროპის ზაფხულის დრო", "HKT": "ჰონკონგის სტანდარტული დრო", "HNEG": "აღმოსავლეთ გრენლანდიის სტანდარტული დრო", "AKST": "ალასკის სტანდარტული დრო", "GFT": "საფრანგეთის გვიანის დრო", "IST": "ინდოეთის დრო", "MEZ": "ცენტრალური ევროპის სტანდარტული დრო", "MESZ": "ცენტრალური ევროპის ზაფხულის დრო", "GMT": "გრინვიჩის საშუალო დრო", "MDT": "MDT", "HNT": "ნიუფაუნდლენდის სტანდარტული დრო", "AST": "ატლანტიკის ოკეანის სტანდარტული დრო", "TMT": "თურქმენეთის სტანდარტული დრო", "HEEG": "აღმოსავლეთ გრენლანდიის ზაფხულის დრო", "AKDT": "ალასკის ზაფხულის დრო", "HEPM": "სენ-პიერის და მიკელონის ზაფხულის დრო", "TMST": "თურქმენეთის ზაფხულის დრო", "ART": "არგენტინის სტანდარტული დრო", "UYST": "ურუგვაის ზაფხულის დრო", "CST": "ჩრდილოეთ ამერიკის ცენტრალური სტანდარტული დრო", "AWDT": "დასავლეთ ავსტრალიის ზაფხულის დრო", "WART": "დასავლეთ არგენტინის სტანდარტული დრო", "WAT": "დასავლეთ აფრიკის სტანდარტული დრო", "HNCU": "კუბის სტანდარტული დრო", "WIB": "დასავლეთ ინდონეზიის დრო"},
}
}
diff --git a/kab/kab.go b/kab/kab.go
index 0b6e9e29..7f9a7e0e 100644
--- a/kab/kab.go
+++ b/kab/kab.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"snd. T.Ɛ", "sld. T.Ɛ"},
erasNarrow: []string{"", ""},
erasWide: []string{"send talalit n Ɛisa", "seld talalit n Ɛisa"},
- timezones: map[string]string{"EAT": "EAT", "ECT": "ECT", "MYT": "MYT", "BT": "BT", "HNT": "HNT", "GFT": "GFT", "CAT": "CAT", "CHADT": "CHADT", "TMT": "TMT", "COST": "COST", "MST": "MST", "VET": "VET", "SRT": "SRT", "PDT": "PDT", "WITA": "WITA", "EDT": "EDT", "CDT": "CDT", "HADT": "HADT", "WESZ": "WESZ", "LHDT": "LHDT", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "BOT": "BOT", "ACDT": "ACDT", "OESZ": "OESZ", "WARST": "WARST", "COT": "COT", "ACST": "ACST", "UYT": "UYT", "UYST": "UYST", "HNOG": "HNOG", "ARST": "ARST", "JST": "JST", "AWDT": "AWDT", "HKST": "HKST", "WAT": "WAT", "EST": "EST", "AKDT": "AKDT", "ADT": "ADT", "HAST": "HAST", "AEST": "AEST", "WART": "WART", "CLT": "CLT", "WAST": "WAST", "GMT": "GMT", "∅∅∅": "∅∅∅", "WEZ": "WEZ", "AWST": "AWST", "MEZ": "MEZ", "GYT": "GYT", "NZDT": "NZDT", "HENOMX": "HENOMX", "HECU": "HECU", "AKST": "AKST", "LHST": "LHST", "SAST": "SAST", "TMST": "TMST", "SGT": "SGT", "HEPM": "HEPM", "MESZ": "MESZ", "HNCU": "HNCU", "PST": "PST", "ACWST": "ACWST", "IST": "IST", "CST": "CST", "HEOG": "HEOG", "ART": "ART", "CHAST": "CHAST", "AST": "AST", "WIT": "WIT", "NZST": "NZST", "CLST": "CLST", "HEEG": "HEEG", "HKT": "HKT", "JDT": "JDT", "HNEG": "HNEG", "MDT": "MDT", "HNPMX": "HNPMX", "WIB": "WIB", "HAT": "HAT", "AEDT": "AEDT", "HEPMX": "HEPMX", "ACWDT": "ACWDT", "HNPM": "HNPM", "ChST": "ChST"},
+ timezones: map[string]string{"MYT": "MYT", "AWST": "AWST", "UYST": "UYST", "VET": "VET", "OEZ": "OEZ", "EDT": "EDT", "AEDT": "AEDT", "GFT": "GFT", "AKST": "AKST", "CDT": "CDT", "ACWST": "ACWST", "JDT": "JDT", "AST": "AST", "HAT": "HAT", "WIB": "WIB", "BOT": "BOT", "HAST": "HAST", "ACWDT": "ACWDT", "NZST": "NZST", "MDT": "MDT", "CHAST": "CHAST", "CAT": "CAT", "JST": "JST", "HNOG": "HNOG", "ARST": "ARST", "HKT": "HKT", "ACDT": "ACDT", "AEST": "AEST", "HNNOMX": "HNNOMX", "ChST": "ChST", "HADT": "HADT", "IST": "IST", "MEZ": "MEZ", "OESZ": "OESZ", "GMT": "GMT", "HNEG": "HNEG", "HNPMX": "HNPMX", "EAT": "EAT", "PDT": "PDT", "HENOMX": "HENOMX", "HEEG": "HEEG", "LHST": "LHST", "CST": "CST", "CHADT": "CHADT", "WARST": "WARST", "HEOG": "HEOG", "HEPM": "HEPM", "WITA": "WITA", "UYT": "UYT", "HEPMX": "HEPMX", "HNCU": "HNCU", "TMST": "TMST", "EST": "EST", "COT": "COT", "∅∅∅": "∅∅∅", "ECT": "ECT", "CLT": "CLT", "WESZ": "WESZ", "SRT": "SRT", "AWDT": "AWDT", "WART": "WART", "HNT": "HNT", "WIT": "WIT", "TMT": "TMT", "ACST": "ACST", "MST": "MST", "COST": "COST", "PST": "PST", "NZDT": "NZDT", "HKST": "HKST", "HNPM": "HNPM", "SAST": "SAST", "GYT": "GYT", "ADT": "ADT", "ART": "ART", "AKDT": "AKDT", "LHDT": "LHDT", "HECU": "HECU", "SGT": "SGT", "MESZ": "MESZ", "CLST": "CLST", "WEZ": "WEZ", "WAT": "WAT", "BT": "BT", "WAST": "WAST"},
}
}
diff --git a/kab_DZ/kab_DZ.go b/kab_DZ/kab_DZ.go
index 64488f62..d1e56b80 100644
--- a/kab_DZ/kab_DZ.go
+++ b/kab_DZ/kab_DZ.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"snd. T.Ɛ", "sld. T.Ɛ"},
erasNarrow: []string{"", ""},
erasWide: []string{"send talalit n Ɛisa", "seld talalit n Ɛisa"},
- timezones: map[string]string{"WESZ": "WESZ", "OEZ": "OEZ", "AKST": "AKST", "HADT": "HADT", "HEPMX": "HEPMX", "ACST": "ACST", "HECU": "HECU", "HNPMX": "HNPMX", "TMT": "TMT", "SRT": "SRT", "AST": "AST", "JST": "JST", "JDT": "JDT", "TMST": "TMST", "HAST": "HAST", "SAST": "SAST", "HNCU": "HNCU", "MST": "MST", "EST": "EST", "MYT": "MYT", "PST": "PST", "COST": "COST", "MDT": "MDT", "WIB": "WIB", "WIT": "WIT", "ART": "ART", "ACDT": "ACDT", "HKST": "HKST", "WITA": "WITA", "IST": "IST", "BOT": "BOT", "EAT": "EAT", "COT": "COT", "WARST": "WARST", "HKT": "HKT", "CDT": "CDT", "MEZ": "MEZ", "GMT": "GMT", "HNT": "HNT", "AEST": "AEST", "HNEG": "HNEG", "HEEG": "HEEG", "ChST": "ChST", "GYT": "GYT", "UYT": "UYT", "HEPM": "HEPM", "LHST": "LHST", "NZDT": "NZDT", "WAST": "WAST", "ECT": "ECT", "CAT": "CAT", "AKDT": "AKDT", "HEOG": "HEOG", "AEDT": "AEDT", "WART": "WART", "SGT": "SGT", "ACWST": "ACWST", "GFT": "GFT", "CLT": "CLT", "WAT": "WAT", "HNNOMX": "HNNOMX", "VET": "VET", "BT": "BT", "HNOG": "HNOG", "PDT": "PDT", "NZST": "NZST", "LHDT": "LHDT", "CHADT": "CHADT", "HENOMX": "HENOMX", "EDT": "EDT", "UYST": "UYST", "ACWDT": "ACWDT", "AWDT": "AWDT", "HNPM": "HNPM", "CLST": "CLST", "ADT": "ADT", "HAT": "HAT", "ARST": "ARST", "AWST": "AWST", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "CST": "CST", "WEZ": "WEZ", "CHAST": "CHAST"},
+ timezones: map[string]string{"CLT": "CLT", "HNPM": "HNPM", "HEOG": "HEOG", "TMT": "TMT", "CHAST": "CHAST", "ACWDT": "ACWDT", "IST": "IST", "ARST": "ARST", "ACDT": "ACDT", "HNPMX": "HNPMX", "PST": "PST", "NZDT": "NZDT", "∅∅∅": "∅∅∅", "CLST": "CLST", "HKT": "HKT", "UYST": "UYST", "WIB": "WIB", "MEZ": "MEZ", "VET": "VET", "COST": "COST", "WIT": "WIT", "HNOG": "HNOG", "ART": "ART", "AKST": "AKST", "ChST": "ChST", "HNCU": "HNCU", "WARST": "WARST", "TMST": "TMST", "COT": "COT", "HNT": "HNT", "HEPM": "HEPM", "CST": "CST", "AWST": "AWST", "MDT": "MDT", "WAST": "WAST", "HAT": "HAT", "LHST": "LHST", "LHDT": "LHDT", "GYT": "GYT", "MYT": "MYT", "EST": "EST", "AST": "AST", "ADT": "ADT", "OESZ": "OESZ", "HKST": "HKST", "BT": "BT", "SAST": "SAST", "JDT": "JDT", "WEZ": "WEZ", "HNEG": "HNEG", "AEDT": "AEDT", "GFT": "GFT", "CDT": "CDT", "BOT": "BOT", "SGT": "SGT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "EDT": "EDT", "HEEG": "HEEG", "HAST": "HAST", "MESZ": "MESZ", "GMT": "GMT", "AWDT": "AWDT", "SRT": "SRT", "EAT": "EAT", "AKDT": "AKDT", "HECU": "HECU", "HADT": "HADT", "ACWST": "ACWST", "WITA": "WITA", "HEPMX": "HEPMX", "JST": "JST", "OEZ": "OEZ", "WART": "WART", "MST": "MST", "ACST": "ACST", "AEST": "AEST", "NZST": "NZST", "CAT": "CAT", "UYT": "UYT", "CHADT": "CHADT", "ECT": "ECT", "PDT": "PDT", "WESZ": "WESZ", "WAT": "WAT"},
}
}
diff --git a/kam/kam.go b/kam/kam.go
index f4d44122..6b081652 100644
--- a/kam/kam.go
+++ b/kam/kam.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"MY", "IY"},
erasNarrow: []string{"", ""},
erasWide: []string{"Mbee wa Yesũ", "Ĩtina wa Yesũ"},
- timezones: map[string]string{"∅∅∅": "∅∅∅", "ECT": "ECT", "WIB": "WIB", "HADT": "HADT", "MESZ": "MESZ", "SAST": "SAST", "JST": "JST", "HENOMX": "HENOMX", "IST": "IST", "CLT": "CLT", "HECU": "HECU", "GYT": "GYT", "WEZ": "WEZ", "HAT": "HAT", "ARST": "ARST", "AKST": "AKST", "AST": "AST", "HNEG": "HNEG", "TMT": "TMT", "WARST": "WARST", "HNPMX": "HNPMX", "UYT": "UYT", "HNNOMX": "HNNOMX", "VET": "VET", "AWST": "AWST", "NZST": "NZST", "PDT": "PDT", "WESZ": "WESZ", "WAST": "WAST", "OEZ": "OEZ", "COT": "COT", "COST": "COST", "CDT": "CDT", "SRT": "SRT", "TMST": "TMST", "EAT": "EAT", "WAT": "WAT", "WART": "WART", "HNPM": "HNPM", "AWDT": "AWDT", "HEPM": "HEPM", "ACST": "ACST", "ACDT": "ACDT", "MST": "MST", "MDT": "MDT", "BT": "BT", "AEDT": "AEDT", "LHST": "LHST", "GFT": "GFT", "SGT": "SGT", "HKST": "HKST", "BOT": "BOT", "CAT": "CAT", "HNCU": "HNCU", "EDT": "EDT", "HAST": "HAST", "UYST": "UYST", "MYT": "MYT", "WIT": "WIT", "ACWDT": "ACWDT", "HKT": "HKT", "ADT": "ADT", "PST": "PST", "ACWST": "ACWST", "ART": "ART", "HNOG": "HNOG", "LHDT": "LHDT", "CHADT": "CHADT", "CLST": "CLST", "ChST": "ChST", "HEEG": "HEEG", "AKDT": "AKDT", "CST": "CST", "CHAST": "CHAST", "HEPMX": "HEPMX", "HEOG": "HEOG", "AEST": "AEST", "WITA": "WITA", "NZDT": "NZDT", "JDT": "JDT", "OESZ": "OESZ", "GMT": "GMT", "EST": "EST", "HNT": "HNT", "MEZ": "MEZ"},
+ timezones: map[string]string{"UYST": "UYST", "HADT": "HADT", "CLST": "CLST", "HNNOMX": "HNNOMX", "BT": "BT", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "GYT": "GYT", "HAST": "HAST", "ART": "ART", "GFT": "GFT", "AEST": "AEST", "CST": "CST", "AWDT": "AWDT", "PDT": "PDT", "CAT": "CAT", "NZST": "NZST", "WART": "WART", "WAT": "WAT", "JDT": "JDT", "ADT": "ADT", "EDT": "EDT", "ACDT": "ACDT", "WITA": "WITA", "CHADT": "CHADT", "WARST": "WARST", "HEPM": "HEPM", "LHST": "LHST", "IST": "IST", "MESZ": "MESZ", "HNOG": "HNOG", "EST": "EST", "HNPMX": "HNPMX", "WIT": "WIT", "ACWST": "ACWST", "MST": "MST", "COT": "COT", "HNT": "HNT", "AKST": "AKST", "ChST": "ChST", "LHDT": "LHDT", "MEZ": "MEZ", "WEZ": "WEZ", "HEEG": "HEEG", "HNCU": "HNCU", "ACWDT": "ACWDT", "JST": "JST", "OEZ": "OEZ", "CLT": "CLT", "HAT": "HAT", "PST": "PST", "NZDT": "NZDT", "TMT": "TMT", "CHAST": "CHAST", "GMT": "GMT", "MYT": "MYT", "MDT": "MDT", "HKST": "HKST", "COST": "COST", "SAST": "SAST", "HEPMX": "HEPMX", "HECU": "HECU", "CDT": "CDT", "OESZ": "OESZ", "WESZ": "WESZ", "WAST": "WAST", "HENOMX": "HENOMX", "HNEG": "HNEG", "WIB": "WIB", "SGT": "SGT", "ECT": "ECT", "ARST": "ARST", "HKT": "HKT", "AKDT": "AKDT", "EAT": "EAT", "AST": "AST", "UYT": "UYT", "HNPM": "HNPM", "AWST": "AWST", "BOT": "BOT", "TMST": "TMST", "SRT": "SRT", "VET": "VET", "HEOG": "HEOG", "ACST": "ACST"},
}
}
diff --git a/kam_KE/kam_KE.go b/kam_KE/kam_KE.go
index 9f74ba6b..97a720a5 100644
--- a/kam_KE/kam_KE.go
+++ b/kam_KE/kam_KE.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"MY", "IY"},
erasNarrow: []string{"", ""},
erasWide: []string{"Mbee wa Yesũ", "Ĩtina wa Yesũ"},
- timezones: map[string]string{"WITA": "WITA", "LHST": "LHST", "HNCU": "HNCU", "HNPMX": "HNPMX", "CDT": "CDT", "HAST": "HAST", "WIT": "WIT", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "HADT": "HADT", "HNT": "HNT", "ADT": "ADT", "HAT": "HAT", "HKST": "HKST", "LHDT": "LHDT", "CHADT": "CHADT", "GFT": "GFT", "EST": "EST", "MESZ": "MESZ", "CAT": "CAT", "GYT": "GYT", "PDT": "PDT", "HKT": "HKT", "CHAST": "CHAST", "ChST": "ChST", "TMST": "TMST", "EAT": "EAT", "COST": "COST", "UYT": "UYT", "HNOG": "HNOG", "HEPM": "HEPM", "HEEG": "HEEG", "ART": "ART", "ARST": "ARST", "AWST": "AWST", "NZST": "NZST", "HNEG": "HNEG", "ECT": "ECT", "WART": "WART", "WEZ": "WEZ", "IST": "IST", "CLT": "CLT", "ACDT": "ACDT", "WARST": "WARST", "AKST": "AKST", "PST": "PST", "AKDT": "AKDT", "AST": "AST", "ACWST": "ACWST", "WAT": "WAT", "COT": "COT", "SGT": "SGT", "HECU": "HECU", "MST": "MST", "CST": "CST", "VET": "VET", "ACWDT": "ACWDT", "AEST": "AEST", "AEDT": "AEDT", "MEZ": "MEZ", "BOT": "BOT", "WAST": "WAST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "BT": "BT", "AWDT": "AWDT", "CLST": "CLST", "JST": "JST", "TMT": "TMT", "OESZ": "OESZ", "EDT": "EDT", "WIB": "WIB", "SRT": "SRT", "WESZ": "WESZ", "HNPM": "HNPM", "NZDT": "NZDT", "SAST": "SAST", "ACST": "ACST", "OEZ": "OEZ", "UYST": "UYST", "JDT": "JDT", "GMT": "GMT", "MDT": "MDT", "HEPMX": "HEPMX", "MYT": "MYT"},
+ timezones: map[string]string{"ECT": "ECT", "MESZ": "MESZ", "JDT": "JDT", "CLST": "CLST", "OEZ": "OEZ", "LHDT": "LHDT", "WIT": "WIT", "ADT": "ADT", "GMT": "GMT", "BT": "BT", "LHST": "LHST", "SGT": "SGT", "BOT": "BOT", "NZST": "NZST", "MYT": "MYT", "COST": "COST", "CST": "CST", "HADT": "HADT", "ACWST": "ACWST", "JST": "JST", "WART": "WART", "HNCU": "HNCU", "PDT": "PDT", "CAT": "CAT", "MEZ": "MEZ", "VET": "VET", "WEZ": "WEZ", "ARST": "ARST", "ACDT": "ACDT", "AEST": "AEST", "UYT": "UYT", "CHADT": "CHADT", "HEOG": "HEOG", "WESZ": "WESZ", "MST": "MST", "HNEG": "HNEG", "HNPMX": "HNPMX", "AWDT": "AWDT", "ACWDT": "ACWDT", "NZDT": "NZDT", "TMT": "TMT", "HNNOMX": "HNNOMX", "GFT": "GFT", "HEPM": "HEPM", "SAST": "SAST", "WIB": "WIB", "CDT": "CDT", "CHAST": "CHAST", "IST": "IST", "MDT": "MDT", "COT": "COT", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "AST": "AST", "HAT": "HAT", "EST": "EST", "WITA": "WITA", "UYST": "UYST", "HEPMX": "HEPMX", "WAT": "WAT", "WAST": "WAST", "HNPM": "HNPM", "HECU": "HECU", "PST": "PST", "WARST": "WARST", "HKT": "HKT", "HENOMX": "HENOMX", "TMST": "TMST", "HNT": "HNT", "CLT": "CLT", "ART": "ART", "HKST": "HKST", "AKST": "AKST", "AKDT": "AKDT", "AWST": "AWST", "HAST": "HAST", "HNOG": "HNOG", "EDT": "EDT", "HEEG": "HEEG", "SRT": "SRT", "GYT": "GYT", "OESZ": "OESZ", "ACST": "ACST", "ChST": "ChST", "EAT": "EAT"},
}
}
diff --git a/kde/kde.go b/kde/kde.go
index 8f096365..f6e9b67a 100644
--- a/kde/kde.go
+++ b/kde/kde.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"AY", "NY"},
erasNarrow: []string{"", ""},
erasWide: []string{"Akanapawa Yesu", "Nankuida Yesu"},
- timezones: map[string]string{"IST": "IST", "JST": "JST", "TMT": "TMT", "WART": "WART", "HNNOMX": "HNNOMX", "WIT": "WIT", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "HNPMX": "HNPMX", "AST": "AST", "CST": "CST", "VET": "VET", "HENOMX": "HENOMX", "GYT": "GYT", "BT": "BT", "PST": "PST", "AEDT": "AEDT", "AWDT": "AWDT", "CLST": "CLST", "ECT": "ECT", "WIB": "WIB", "AWST": "AWST", "MYT": "MYT", "EAT": "EAT", "WAT": "WAT", "HEOG": "HEOG", "WEZ": "WEZ", "MESZ": "MESZ", "JDT": "JDT", "BOT": "BOT", "ACDT": "ACDT", "COST": "COST", "UYT": "UYT", "AEST": "AEST", "HEPM": "HEPM", "HEEG": "HEEG", "COT": "COT", "UYST": "UYST", "EDT": "EDT", "MDT": "MDT", "HNOG": "HNOG", "LHDT": "LHDT", "ChST": "ChST", "WAST": "WAST", "OESZ": "OESZ", "HNCU": "HNCU", "HKST": "HKST", "CHAST": "CHAST", "CLT": "CLT", "HADT": "HADT", "ART": "ART", "WESZ": "WESZ", "ACWDT": "ACWDT", "HECU": "HECU", "HEPMX": "HEPMX", "WITA": "WITA", "HNEG": "HNEG", "AKDT": "AKDT", "SRT": "SRT", "HNPM": "HNPM", "CHADT": "CHADT", "TMST": "TMST", "ACST": "ACST", "ADT": "ADT", "HNT": "HNT", "HAT": "HAT", "CDT": "CDT", "LHST": "LHST", "NZST": "NZST", "CAT": "CAT", "GMT": "GMT", "ARST": "ARST", "MEZ": "MEZ", "NZDT": "NZDT", "SAST": "SAST", "PDT": "PDT", "WARST": "WARST", "SGT": "SGT", "AKST": "AKST", "HAST": "HAST", "ACWST": "ACWST", "HKT": "HKT", "GFT": "GFT", "EST": "EST", "MST": "MST"},
+ timezones: map[string]string{"AKST": "AKST", "HKT": "HKT", "WARST": "WARST", "WAT": "WAT", "EDT": "EDT", "HEPMX": "HEPMX", "WIB": "WIB", "HECU": "HECU", "CHAST": "CHAST", "VET": "VET", "∅∅∅": "∅∅∅", "CDT": "CDT", "ADT": "ADT", "WAST": "WAST", "AWST": "AWST", "ECT": "ECT", "WEZ": "WEZ", "WESZ": "WESZ", "HEEG": "HEEG", "HEOG": "HEOG", "MST": "MST", "HAST": "HAST", "PDT": "PDT", "JST": "JST", "WART": "WART", "AEDT": "AEDT", "CST": "CST", "TMST": "TMST", "HNNOMX": "HNNOMX", "HNEG": "HNEG", "ChST": "ChST", "GMT": "GMT", "AST": "AST", "OESZ": "OESZ", "EST": "EST", "SAST": "SAST", "LHST": "LHST", "MEZ": "MEZ", "HEPM": "HEPM", "WIT": "WIT", "CHADT": "CHADT", "ACWDT": "ACWDT", "MESZ": "MESZ", "MYT": "MYT", "UYT": "UYT", "SRT": "SRT", "HNCU": "HNCU", "BOT": "BOT", "SGT": "SGT", "TMT": "TMT", "ART": "ART", "HKST": "HKST", "CAT": "CAT", "ARST": "ARST", "HENOMX": "HENOMX", "HNT": "HNT", "GFT": "GFT", "HNPMX": "HNPMX", "PST": "PST", "ACWST": "ACWST", "ACDT": "ACDT", "OEZ": "OEZ", "ACST": "ACST", "COST": "COST", "WITA": "WITA", "GYT": "GYT", "AWDT": "AWDT", "CLST": "CLST", "HNOG": "HNOG", "BT": "BT", "IST": "IST", "HAT": "HAT", "HNPM": "HNPM", "UYST": "UYST", "LHDT": "LHDT", "EAT": "EAT", "HADT": "HADT", "AEST": "AEST", "AKDT": "AKDT", "NZST": "NZST", "JDT": "JDT", "MDT": "MDT", "NZDT": "NZDT", "CLT": "CLT", "COT": "COT"},
}
}
diff --git a/kde_TZ/kde_TZ.go b/kde_TZ/kde_TZ.go
index 651593ea..ddf0e382 100644
--- a/kde_TZ/kde_TZ.go
+++ b/kde_TZ/kde_TZ.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"AY", "NY"},
erasNarrow: []string{"", ""},
erasWide: []string{"Akanapawa Yesu", "Nankuida Yesu"},
- timezones: map[string]string{"ACDT": "ACDT", "HECU": "HECU", "MYT": "MYT", "CDT": "CDT", "WIB": "WIB", "BT": "BT", "BOT": "BOT", "GFT": "GFT", "JST": "JST", "EDT": "EDT", "PST": "PST", "HAT": "HAT", "AWDT": "AWDT", "HKST": "HKST", "CHADT": "CHADT", "HNNOMX": "HNNOMX", "SRT": "SRT", "NZST": "NZST", "ART": "ART", "HKT": "HKT", "UYT": "UYT", "HNPM": "HNPM", "WART": "WART", "MDT": "MDT", "AWST": "AWST", "MEZ": "MEZ", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "GYT": "GYT", "ADT": "ADT", "WESZ": "WESZ", "NZDT": "NZDT", "OEZ": "OEZ", "EST": "EST", "HENOMX": "HENOMX", "SGT": "SGT", "HNCU": "HNCU", "UYST": "UYST", "HAST": "HAST", "ACWST": "ACWST", "HNEG": "HNEG", "COT": "COT", "HEPM": "HEPM", "MESZ": "MESZ", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "WEZ": "WEZ", "LHST": "LHST", "ChST": "ChST", "TMST": "TMST", "ACST": "ACST", "GMT": "GMT", "MST": "MST", "ACWDT": "ACWDT", "CLST": "CLST", "HEEG": "HEEG", "TMT": "TMT", "HEOG": "HEOG", "AEST": "AEST", "WITA": "WITA", "CST": "CST", "HNOG": "HNOG", "COST": "COST", "AKST": "AKST", "WIT": "WIT", "WAT": "WAT", "OESZ": "OESZ", "ARST": "ARST", "IST": "IST", "LHDT": "LHDT", "CHAST": "CHAST", "SAST": "SAST", "JDT": "JDT", "EAT": "EAT", "AST": "AST", "HADT": "HADT", "VET": "VET", "HNT": "HNT", "CAT": "CAT", "AKDT": "AKDT", "WARST": "WARST", "PDT": "PDT", "CLT": "CLT", "WAST": "WAST", "ECT": "ECT"},
+ timezones: map[string]string{"HAST": "HAST", "EST": "EST", "COST": "COST", "SRT": "SRT", "HNCU": "HNCU", "WIT": "WIT", "ART": "ART", "LHDT": "LHDT", "EAT": "EAT", "NZST": "NZST", "AKDT": "AKDT", "AEST": "AEST", "LHST": "LHST", "WIB": "WIB", "CST": "CST", "NZDT": "NZDT", "WART": "WART", "HEOG": "HEOG", "MDT": "MDT", "BT": "BT", "HEEG": "HEEG", "HECU": "HECU", "ECT": "ECT", "MESZ": "MESZ", "WEZ": "WEZ", "CLT": "CLT", "UYT": "UYT", "GYT": "GYT", "CAT": "CAT", "ACWST": "ACWST", "ADT": "ADT", "HNOG": "HNOG", "MST": "MST", "ACDT": "ACDT", "CDT": "CDT", "ACST": "ACST", "HENOMX": "HENOMX", "HNPM": "HNPM", "HEPM": "HEPM", "HADT": "HADT", "OEZ": "OEZ", "ARST": "ARST", "HNNOMX": "HNNOMX", "ChST": "ChST", "PDT": "PDT", "MEZ": "MEZ", "TMST": "TMST", "EDT": "EDT", "VET": "VET", "WARST": "WARST", "COT": "COT", "HNEG": "HNEG", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "JST": "JST", "AST": "AST", "TMT": "TMT", "OESZ": "OESZ", "AEDT": "AEDT", "GFT": "GFT", "WITA": "WITA", "UYST": "UYST", "AWDT": "AWDT", "SAST": "SAST", "SGT": "SGT", "PST": "PST", "WESZ": "WESZ", "GMT": "GMT", "CLST": "CLST", "WAT": "WAT", "AWST": "AWST", "CHAST": "CHAST", "BOT": "BOT", "WAST": "WAST", "HNT": "HNT", "HAT": "HAT", "AKST": "AKST", "CHADT": "CHADT", "IST": "IST", "JDT": "JDT", "MYT": "MYT", "HKT": "HKT", "HKST": "HKST"},
}
}
diff --git a/kea/kea.go b/kea/kea.go
index 9ac927a6..161763d0 100644
--- a/kea/kea.go
+++ b/kea/kea.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"AK", "DK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Antis di Kristu", "Dispos di Kristu"},
- timezones: map[string]string{"WAST": "Ora di Verão di Afrika Osidental", "CHADT": "CHADT", "CDT": "Ora Sentral di Verãu", "HKT": "HKT", "AEDT": "Ora di Verãu di Australia Oriental", "JST": "JST", "LHDT": "LHDT", "ECT": "ECT", "SGT": "SGT", "EST": "Ora Oriental Padrãu", "WEZ": "Ora Padrãu di Europa Osidental", "NZDT": "NZDT", "ACDT": "Ora di Verãu di Australia Sentral", "AST": "Ora Padrãu di Atlantiku", "ARST": "ARST", "COST": "COST", "ACWST": "Ora Padrãu di Australia Sentru-Osidental", "JDT": "JDT", "TMT": "TMT", "ACWDT": "Ora di Verãu di Australia Sentru-Osidental", "ART": "ART", "MESZ": "Ora di Verãu di Europa Sentral", "OESZ": "Ora di Verãu di Europa Oriental", "WARST": "WARST", "EDT": "Ora Oriental di Verãu", "ADT": "Ora di Verãu di Atlantiku", "HADT": "HADT", "HNEG": "HNEG", "WAT": "Ora Padrãu di Afrika Osidental", "AKDT": "AKDT", "HKST": "HKST", "WITA": "WITA", "AWST": "Ora Padrãu di Australia Osidental", "CLT": "CLT", "HEEG": "HEEG", "HNPMX": "HNPMX", "UYT": "UYT", "PST": "Ora di Pasifiku Padrãu", "WESZ": "Ora di Verãu di Europa Osidental", "HEPM": "HEPM", "MDT": "MDT", "VET": "VET", "CHAST": "CHAST", "GFT": "GFT", "CLST": "CLST", "OEZ": "Ora Padrãu di Europa Oriental", "COT": "COT", "MYT": "MYT", "HNOG": "HNOG", "PDT": "Ora di Pasifiku di Verãu", "AWDT": "Ora di Verãu di Australia Osidental", "TMST": "TMST", "ChST": "ChST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AKST": "AKST", "CST": "Ora Sentral Padrãu", "UYST": "UYST", "HEOG": "HEOG", "AEST": "Ora Padrãu di Australia Oriental", "SAST": "Ora di Sul di Afrika", "HECU": "HECU", "GMT": "GMT", "WIT": "WIT", "SRT": "SRT", "HAT": "HAT", "BT": "BT", "LHST": "LHST", "ACST": "Ora Padrãu di Australia Sentral", "WART": "WART", "MST": "MST", "GYT": "GYT", "HAST": "HAST", "EAT": "Ora di Afrika Oriental", "HEPMX": "HEPMX", "HNPM": "HNPM", "NZST": "NZST", "CAT": "Ora di Afrika Sentral", "HNCU": "HNCU", "MEZ": "Ora Padrãu di Europa Sentral", "IST": "IST", "BOT": "BOT", "∅∅∅": "∅∅∅", "WIB": "WIB", "HNT": "HNT"},
+ timezones: map[string]string{"ECT": "ECT", "HADT": "HADT", "IST": "IST", "HNOG": "HNOG", "HNT": "HNT", "AEST": "Ora Padrãu di Australia Oriental", "SRT": "SRT", "SGT": "SGT", "OESZ": "Ora di Verãu di Europa Oriental", "GFT": "GFT", "HNPM": "HNPM", "CDT": "Ora Sentral di Verãu", "HAST": "HAST", "HKST": "HKST", "HNNOMX": "HNNOMX", "AEDT": "Ora di Verãu di Australia Oriental", "SAST": "Ora di Sul di Afrika", "ART": "ART", "UYT": "UYT", "AWDT": "Ora di Verãu di Australia Osidental", "ACWST": "Ora Padrãu di Australia Sentru-Osidental", "WARST": "WARST", "COST": "COST", "BOT": "BOT", "NZDT": "NZDT", "MESZ": "Ora di Verãu di Europa Sentral", "WAT": "Ora Padrãu di Afrika Osidental", "EST": "Ora Oriental Padrãu", "HNEG": "HNEG", "EAT": "Ora di Afrika Oriental", "CHADT": "CHADT", "CLST": "CLST", "HEOG": "HEOG", "GMT": "GMT", "TMST": "TMST", "COT": "COT", "HNPMX": "HNPMX", "WESZ": "Ora di Verãu di Europa Osidental", "MST": "MST", "HKT": "HKT", "ACST": "Ora Padrãu di Australia Sentral", "HAT": "HAT", "BT": "BT", "LHST": "LHST", "VET": "VET", "MYT": "MYT", "MDT": "MDT", "ARST": "ARST", "HEEG": "HEEG", "WIB": "WIB", "WEZ": "Ora Padrãu di Europa Osidental", "UYST": "UYST", "HEPM": "HEPM", "AWST": "Ora Padrãu di Australia Osidental", "CHAST": "CHAST", "NZST": "NZST", "OEZ": "Ora Padrãu di Europa Oriental", "TMT": "TMT", "∅∅∅": "∅∅∅", "LHDT": "LHDT", "CST": "Ora Sentral Padrãu", "PST": "Ora di Pasifiku Padrãu", "MEZ": "Ora Padrãu di Europa Sentral", "JDT": "JDT", "ACWDT": "Ora di Verãu di Australia Sentru-Osidental", "WART": "WART", "HENOMX": "HENOMX", "HNCU": "HNCU", "WIT": "WIT", "CAT": "Ora di Afrika Sentral", "PDT": "Ora di Pasifiku di Verãu", "JST": "JST", "ADT": "Ora di Verãu di Atlantiku", "ACDT": "Ora di Verãu di Australia Sentral", "AKDT": "AKDT", "ChST": "ChST", "HEPMX": "HEPMX", "AKST": "AKST", "GYT": "GYT", "HECU": "HECU", "CLT": "CLT", "AST": "Ora Padrãu di Atlantiku", "WAST": "Ora di Verão di Afrika Osidental", "EDT": "Ora Oriental di Verãu", "WITA": "WITA"},
}
}
diff --git a/kea_CV/kea_CV.go b/kea_CV/kea_CV.go
index 7c4c9f10..f799c5e5 100644
--- a/kea_CV/kea_CV.go
+++ b/kea_CV/kea_CV.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"AK", "DK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Antis di Kristu", "Dispos di Kristu"},
- timezones: map[string]string{"PST": "Ora di Pasifiku Padrãu", "HADT": "HADT", "SRT": "SRT", "VET": "VET", "WIT": "WIT", "HNPM": "HNPM", "SAST": "Ora di Sul di Afrika", "COT": "COT", "HNPMX": "HNPMX", "WAT": "Ora Padrãu di Afrika Osidental", "WART": "WART", "HAST": "HAST", "ACWDT": "Ora di Verãu di Australia Sentru-Osidental", "AEDT": "Ora di Verãu di Australia Oriental", "IST": "IST", "TMT": "TMT", "∅∅∅": "∅∅∅", "MDT": "MDT", "AKST": "AKST", "AST": "Ora Padrãu di Atlantiku", "HNT": "HNT", "NZST": "NZST", "HNCU": "HNCU", "EDT": "Ora Oriental di Verãu", "MST": "MST", "HKT": "HKT", "GFT": "GFT", "ACST": "Ora Padrãu di Australia Sentral", "WITA": "WITA", "HEPM": "HEPM", "MESZ": "Ora di Verãu di Europa Sentral", "EAT": "Ora di Afrika Oriental", "WESZ": "Ora di Verãu di Europa Osidental", "WAST": "Ora di Verão di Afrika Osidental", "BT": "BT", "HNOG": "HNOG", "HAT": "HAT", "AEST": "Ora Padrãu di Australia Oriental", "JST": "JST", "ChST": "ChST", "TMST": "TMST", "OESZ": "Ora di Verãu di Europa Oriental", "ECT": "ECT", "GMT": "GMT", "GYT": "GYT", "WIB": "WIB", "PDT": "Ora di Pasifiku di Verãu", "ACDT": "Ora di Verãu di Australia Sentral", "CAT": "Ora di Afrika Sentral", "CHAST": "CHAST", "CHADT": "CHADT", "HENOMX": "HENOMX", "EST": "Ora Oriental Padrãu", "NZDT": "NZDT", "CLT": "CLT", "WARST": "WARST", "HNNOMX": "HNNOMX", "HECU": "HECU", "AKDT": "AKDT", "HEOG": "HEOG", "ART": "ART", "AWST": "Ora Padrãu di Australia Osidental", "AWDT": "Ora di Verãu di Australia Osidental", "HNEG": "HNEG", "COST": "COST", "LHST": "LHST", "HKST": "HKST", "CLST": "CLST", "HEPMX": "HEPMX", "ADT": "Ora di Verãu di Atlantiku", "JDT": "JDT", "SGT": "SGT", "WEZ": "Ora Padrãu di Europa Osidental", "CDT": "Ora Sentral di Verãu", "UYT": "UYT", "CST": "Ora Sentral Padrãu", "MYT": "MYT", "UYST": "UYST", "ACWST": "Ora Padrãu di Australia Sentru-Osidental", "ARST": "ARST", "BOT": "BOT", "HEEG": "HEEG", "OEZ": "Ora Padrãu di Europa Oriental", "MEZ": "Ora Padrãu di Europa Sentral", "LHDT": "LHDT"},
+ timezones: map[string]string{"SGT": "SGT", "CLT": "CLT", "HENOMX": "HENOMX", "ACST": "Ora Padrãu di Australia Sentral", "SRT": "SRT", "MDT": "Ora di Verãu di Montanha", "HKST": "HKST", "HNNOMX": "HNNOMX", "HNT": "HNT", "AEDT": "Ora di Verãu di Australia Oriental", "AWST": "Ora Padrãu di Australia Osidental", "PST": "Ora di Pasifiku Padrãu", "ACWDT": "Ora di Verãu di Australia Sentru-Osidental", "COT": "COT", "UYST": "UYST", "WIT": "WIT", "HEPMX": "HEPMX", "CDT": "Ora Sentral di Verãu", "HNEG": "HNEG", "BT": "BT", "UYT": "UYT", "PDT": "Ora di Pasifiku di Verãu", "HNOG": "HNOG", "EST": "Ora Oriental Padrãu", "HAT": "HAT", "WIB": "WIB", "CHAST": "CHAST", "JST": "JST", "HEOG": "HEOG", "WAST": "Ora di Verão di Afrika Osidental", "GYT": "GYT", "AWDT": "Ora di Verãu di Australia Osidental", "CHADT": "CHADT", "ACWST": "Ora Padrãu di Australia Sentru-Osidental", "MEZ": "Ora Padrãu di Europa Sentral", "LHDT": "LHDT", "CAT": "Ora di Afrika Sentral", "CLST": "CLST", "TMST": "TMST", "ART": "ART", "WITA": "WITA", "AKDT": "AKDT", "ChST": "ChST", "ARST": "ARST", "TMT": "TMT", "HECU": "HECU", "IST": "IST", "JDT": "JDT", "GMT": "GMT", "WAT": "Ora Padrãu di Afrika Osidental", "HEEG": "HEEG", "HNPM": "HNPM", "HEPM": "HEPM", "BOT": "BOT", "WART": "WART", "AEST": "Ora Padrãu di Australia Oriental", "HNPMX": "HNPMX", "HNCU": "HNCU", "VET": "VET", "OESZ": "Ora di Verãu di Europa Oriental", "AST": "Ora Padrãu di Atlantiku", "MST": "Ora di Montanha Padrãu", "AKST": "AKST", "CST": "Ora Sentral Padrãu", "HADT": "HADT", "OEZ": "Ora Padrãu di Europa Oriental", "WESZ": "Ora di Verãu di Europa Osidental", "ACDT": "Ora di Verãu di Australia Sentral", "LHST": "LHST", "HAST": "HAST", "∅∅∅": "∅∅∅", "MYT": "MYT", "WARST": "WARST", "WEZ": "Ora Padrãu di Europa Osidental", "EDT": "Ora Oriental di Verãu", "ECT": "ECT", "NZST": "NZST", "MESZ": "Ora di Verãu di Europa Sentral", "EAT": "Ora di Afrika Oriental", "NZDT": "NZDT", "ADT": "Ora di Verãu di Atlantiku", "HKT": "HKT", "COST": "COST", "GFT": "GFT", "SAST": "Ora di Sul di Afrika"},
}
}
diff --git a/khq/khq.go b/khq/khq.go
index 81399b33..364a36bc 100644
--- a/khq/khq.go
+++ b/khq/khq.go
@@ -60,7 +60,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"IJ", "IZ"},
erasNarrow: []string{"", ""},
erasWide: []string{"Isaa jine", "Isaa jamanoo"},
- timezones: map[string]string{"PDT": "PDT", "HEEG": "HEEG", "ECT": "ECT", "WAT": "WAT", "EST": "EST", "MDT": "MDT", "HEOG": "HEOG", "AST": "AST", "ACWDT": "ACWDT", "HKST": "HKST", "MESZ": "MESZ", "CHADT": "CHADT", "WAST": "WAST", "UYST": "UYST", "AKDT": "AKDT", "BT": "BT", "HNT": "HNT", "HAT": "HAT", "AWDT": "AWDT", "LHDT": "LHDT", "TMST": "TMST", "ACDT": "ACDT", "COT": "COT", "HNPMX": "HNPMX", "GYT": "GYT", "AEDT": "AEDT", "AWST": "AWST", "CHAST": "CHAST", "SGT": "SGT", "EDT": "EDT", "HAST": "HAST", "HKT": "HKT", "∅∅∅": "∅∅∅", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "HEPM": "HEPM", "MEZ": "MEZ", "NZDT": "NZDT", "IST": "IST", "CLT": "CLT", "EAT": "EAT", "TMT": "TMT", "CAT": "CAT", "UYT": "UYT", "ART": "ART", "PST": "PST", "WITA": "WITA", "NZST": "NZST", "GFT": "GFT", "WART": "WART", "CST": "CST", "VET": "VET", "ARST": "ARST", "WEZ": "WEZ", "WARST": "WARST", "WIT": "WIT", "SRT": "SRT", "WESZ": "WESZ", "HEPMX": "HEPMX", "CDT": "CDT", "ACWST": "ACWST", "AEST": "AEST", "LHST": "LHST", "CLST": "CLST", "BOT": "BOT", "MYT": "MYT", "HNOG": "HNOG", "JDT": "JDT", "HNEG": "HNEG", "OEZ": "OEZ", "OESZ": "OESZ", "COST": "COST", "HECU": "HECU", "WIB": "WIB", "HADT": "HADT", "JST": "JST", "HENOMX": "HENOMX", "GMT": "GMT", "MST": "MST", "ADT": "ADT", "AKST": "AKST", "HNPM": "HNPM", "SAST": "SAST", "ChST": "ChST", "ACST": "ACST"},
+ timezones: map[string]string{"∅∅∅": "∅∅∅", "HNPM": "HNPM", "HEOG": "HEOG", "COST": "COST", "GYT": "GYT", "CST": "CST", "VET": "VET", "MYT": "MYT", "TMST": "TMST", "UYST": "UYST", "CDT": "CDT", "HAST": "HAST", "ACWST": "ACWST", "MEZ": "MEZ", "JDT": "JDT", "GMT": "GMT", "CLT": "CLT", "BT": "BT", "LHDT": "LHDT", "HNPMX": "HNPMX", "AWST": "AWST", "ACWDT": "ACWDT", "OESZ": "OESZ", "EST": "EST", "HNEG": "HNEG", "HADT": "HADT", "NZST": "NZST", "MESZ": "MESZ", "UYT": "UYT", "AKST": "AKST", "AKDT": "AKDT", "MST": "MST", "MDT": "MDT", "ChST": "ChST", "EDT": "EDT", "HENOMX": "HENOMX", "HNNOMX": "HNNOMX", "EAT": "EAT", "HKT": "HKT", "COT": "COT", "GFT": "GFT", "WIT": "WIT", "IST": "IST", "JST": "JST", "OEZ": "OEZ", "ARST": "ARST", "AEST": "AEST", "WIB": "WIB", "PST": "PST", "AEDT": "AEDT", "HEPM": "HEPM", "LHST": "LHST", "CHAST": "CHAST", "HAT": "HAT", "HEEG": "HEEG", "HEPMX": "HEPMX", "HECU": "HECU", "AWDT": "AWDT", "BOT": "BOT", "PDT": "PDT", "ADT": "ADT", "ACST": "ACST", "SGT": "SGT", "CAT": "CAT", "WESZ": "WESZ", "HKST": "HKST", "HNCU": "HNCU", "HNT": "HNT", "WART": "WART", "ACDT": "ACDT", "CHADT": "CHADT", "AST": "AST", "WARST": "WARST", "CLST": "CLST", "SRT": "SRT", "WEZ": "WEZ", "TMT": "TMT", "NZDT": "NZDT", "SAST": "SAST", "ECT": "ECT", "HNOG": "HNOG", "ART": "ART", "WAT": "WAT", "WAST": "WAST", "WITA": "WITA"},
}
}
diff --git a/khq_ML/khq_ML.go b/khq_ML/khq_ML.go
index 72b63c2a..a14f6cf7 100644
--- a/khq_ML/khq_ML.go
+++ b/khq_ML/khq_ML.go
@@ -60,7 +60,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"IJ", "IZ"},
erasNarrow: []string{"", ""},
erasWide: []string{"Isaa jine", "Isaa jamanoo"},
- timezones: map[string]string{"CDT": "CDT", "AEDT": "AEDT", "HKT": "HKT", "ChST": "ChST", "ACDT": "ACDT", "WARST": "WARST", "UYT": "UYT", "HNCU": "HNCU", "UYST": "UYST", "AWST": "AWST", "ACST": "ACST", "AST": "AST", "HEOG": "HEOG", "JST": "JST", "JDT": "JDT", "MST": "MST", "MDT": "MDT", "ADT": "ADT", "PDT": "PDT", "HKST": "HKST", "∅∅∅": "∅∅∅", "MYT": "MYT", "CLT": "CLT", "TMT": "TMT", "HNPMX": "HNPMX", "WESZ": "WESZ", "ART": "ART", "MEZ": "MEZ", "CLST": "CLST", "CAT": "CAT", "OESZ": "OESZ", "SRT": "SRT", "HNT": "HNT", "NZDT": "NZDT", "WAT": "WAT", "COT": "COT", "GMT": "GMT", "HECU": "HECU", "WIB": "WIB", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "IST": "IST", "BOT": "BOT", "WAST": "WAST", "WIT": "WIT", "PST": "PST", "HEPMX": "HEPMX", "AKDT": "AKDT", "AEST": "AEST", "AWDT": "AWDT", "LHST": "LHST", "SAST": "SAST", "TMST": "TMST", "HENOMX": "HENOMX", "HAT": "HAT", "ARST": "ARST", "CHADT": "CHADT", "EAT": "EAT", "ECT": "ECT", "HADT": "HADT", "ACWST": "ACWST", "HNPM": "HNPM", "NZST": "NZST", "COST": "COST", "EDT": "EDT", "GYT": "GYT", "HNOG": "HNOG", "CST": "CST", "MESZ": "MESZ", "LHDT": "LHDT", "HNEG": "HNEG", "HEEG": "HEEG", "GFT": "GFT", "AKST": "AKST", "WEZ": "WEZ", "WITA": "WITA", "OEZ": "OEZ", "WART": "WART", "EST": "EST", "VET": "VET", "BT": "BT", "CHAST": "CHAST", "SGT": "SGT", "HAST": "HAST", "ACWDT": "ACWDT"},
+ timezones: map[string]string{"SRT": "SRT", "CHADT": "CHADT", "HEOG": "HEOG", "EST": "EST", "COT": "COT", "HEEG": "HEEG", "OESZ": "OESZ", "TMST": "TMST", "MDT": "MDT", "CST": "CST", "WIB": "WIB", "HAST": "HAST", "CLT": "CLT", "HKT": "HKT", "GYT": "GYT", "LHST": "LHST", "AWST": "AWST", "BOT": "BOT", "MYT": "MYT", "WAST": "WAST", "ACST": "ACST", "UYST": "UYST", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "ECT": "ECT", "NZDT": "NZDT", "WARST": "WARST", "WAT": "WAT", "EDT": "EDT", "AKDT": "AKDT", "SAST": "SAST", "CHAST": "CHAST", "MESZ": "MESZ", "OEZ": "OEZ", "BT": "BT", "WITA": "WITA", "AST": "AST", "ACDT": "ACDT", "GFT": "GFT", "HNCU": "HNCU", "CAT": "CAT", "MEZ": "MEZ", "WEZ": "WEZ", "WESZ": "WESZ", "ADT": "ADT", "HNT": "HNT", "WIT": "WIT", "HAT": "HAT", "HECU": "HECU", "EAT": "EAT", "ACWDT": "ACWDT", "JDT": "JDT", "GMT": "GMT", "MST": "MST", "ChST": "ChST", "SGT": "SGT", "HADT": "HADT", "IST": "IST", "WART": "WART", "HNPM": "HNPM", "NZST": "NZST", "VET": "VET", "HENOMX": "HENOMX", "AKST": "AKST", "AWDT": "AWDT", "PDT": "PDT", "ART": "ART", "HNEG": "HNEG", "CDT": "CDT", "TMT": "TMT", "HKST": "HKST", "AEDT": "AEDT", "UYT": "UYT", "HEPMX": "HEPMX", "JST": "JST", "CLST": "CLST", "ARST": "ARST", "HNPMX": "HNPMX", "COST": "COST", "AEST": "AEST", "HEPM": "HEPM", "PST": "PST", "ACWST": "ACWST", "∅∅∅": "∅∅∅", "HNOG": "HNOG"},
}
}
diff --git a/ki/ki.go b/ki/ki.go
index 7160be60..b91503f1 100644
--- a/ki/ki.go
+++ b/ki/ki.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"MK", "TK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Mbere ya Kristo", "Thutha wa Kristo"},
- timezones: map[string]string{"MDT": "MDT", "HEPM": "HEPM", "IST": "IST", "HEEG": "HEEG", "EAT": "EAT", "COST": "COST", "ADT": "ADT", "PST": "PST", "HEOG": "HEOG", "JST": "JST", "HENOMX": "HENOMX", "EDT": "EDT", "HEPMX": "HEPMX", "WEZ": "WEZ", "LHST": "LHST", "GFT": "GFT", "WAST": "WAST", "OEZ": "OEZ", "OESZ": "OESZ", "WARST": "WARST", "AST": "AST", "COT": "COT", "BT": "BT", "AEDT": "AEDT", "JDT": "JDT", "HNPMX": "HNPMX", "CAT": "CAT", "AKDT": "AKDT", "CST": "CST", "HADT": "HADT", "SRT": "SRT", "ACWDT": "ACWDT", "WITA": "WITA", "HNPM": "HNPM", "HAT": "HAT", "HECU": "HECU", "BOT": "BOT", "AKST": "AKST", "VET": "VET", "WESZ": "WESZ", "ARST": "ARST", "NZST": "NZST", "NZDT": "NZDT", "ChST": "ChST", "ECT": "ECT", "SGT": "SGT", "WIB": "WIB", "AWDT": "AWDT", "EST": "EST", "HNT": "HNT", "HNOG": "HNOG", "CHAST": "CHAST", "MYT": "MYT", "CLST": "CLST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "GMT": "GMT", "AEST": "AEST", "HKT": "HKT", "CHADT": "CHADT", "SAST": "SAST", "WAT": "WAT", "UYST": "UYST", "ART": "ART", "MESZ": "MESZ", "ACST": "ACST", "GYT": "GYT", "CLT": "CLT", "HNCU": "HNCU", "MST": "MST", "HAST": "HAST", "PDT": "PDT", "LHDT": "LHDT", "TMT": "TMT", "TMST": "TMST", "WART": "WART", "UYT": "UYT", "CDT": "CDT", "WIT": "WIT", "ACWST": "ACWST", "AWST": "AWST", "HKST": "HKST", "MEZ": "MEZ"},
+ timezones: map[string]string{"UYT": "UYT", "SAST": "SAST", "CHADT": "CHADT", "GMT": "GMT", "EST": "EST", "WAST": "WAST", "ACDT": "ACDT", "ChST": "ChST", "HECU": "HECU", "SGT": "SGT", "ECT": "ECT", "ACWDT": "ACWDT", "CLST": "CLST", "COST": "COST", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "WIT": "WIT", "HEOG": "HEOG", "WITA": "WITA", "LHST": "LHST", "GYT": "GYT", "BT": "BT", "AWST": "AWST", "WARST": "WARST", "AEST": "AEST", "HEPM": "HEPM", "HADT": "HADT", "IST": "IST", "OESZ": "OESZ", "WEZ": "WEZ", "JST": "JST", "MESZ": "MESZ", "MDT": "MDT", "HNPM": "HNPM", "HAT": "HAT", "AEDT": "AEDT", "CDT": "CDT", "HNCU": "HNCU", "WIB": "WIB", "HAST": "HAST", "OEZ": "OEZ", "CLT": "CLT", "ART": "ART", "WART": "WART", "AKST": "AKST", "AKDT": "AKDT", "HEPMX": "HEPMX", "TMT": "TMT", "ARST": "ARST", "CAT": "CAT", "VET": "VET", "MYT": "MYT", "AST": "AST", "EDT": "EDT", "COT": "COT", "ACST": "ACST", "HEEG": "HEEG", "ACWST": "ACWST", "NZST": "NZST", "JDT": "JDT", "MEZ": "MEZ", "HNPMX": "HNPMX", "EAT": "EAT", "∅∅∅": "∅∅∅", "MST": "MST", "CST": "CST", "BOT": "BOT", "SRT": "SRT", "AWDT": "AWDT", "CHAST": "CHAST", "PST": "PST", "ADT": "ADT", "HKT": "HKT", "HNEG": "HNEG", "HENOMX": "HENOMX", "HNT": "HNT", "GFT": "GFT", "UYST": "UYST", "NZDT": "NZDT", "WESZ": "WESZ", "HNOG": "HNOG", "TMST": "TMST", "PDT": "PDT", "HKST": "HKST", "WAT": "WAT"},
}
}
diff --git a/ki_KE/ki_KE.go b/ki_KE/ki_KE.go
index f9ee453f..dcc1b9bb 100644
--- a/ki_KE/ki_KE.go
+++ b/ki_KE/ki_KE.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"MK", "TK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Mbere ya Kristo", "Thutha wa Kristo"},
- timezones: map[string]string{"PST": "PST", "HEPM": "HEPM", "HEPMX": "HEPMX", "WIT": "WIT", "HAST": "HAST", "HAT": "HAT", "CLT": "CLT", "∅∅∅": "∅∅∅", "COT": "COT", "GMT": "GMT", "PDT": "PDT", "HENOMX": "HENOMX", "HECU": "HECU", "HNPMX": "HNPMX", "ACWDT": "ACWDT", "IST": "IST", "HNEG": "HNEG", "WAT": "WAT", "COST": "COST", "HEOG": "HEOG", "WAST": "WAST", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "WART": "WART", "CDT": "CDT", "AST": "AST", "HADT": "HADT", "AKDT": "AKDT", "WIB": "WIB", "BT": "BT", "ART": "ART", "AEST": "AEST", "EAT": "EAT", "ECT": "ECT", "WARST": "WARST", "AKST": "AKST", "SAST": "SAST", "JST": "JST", "HEEG": "HEEG", "ACWST": "ACWST", "CHAST": "CHAST", "MEZ": "MEZ", "BOT": "BOT", "ACDT": "ACDT", "SGT": "SGT", "CST": "CST", "WEZ": "WEZ", "LHST": "LHST", "CHADT": "CHADT", "MESZ": "MESZ", "ChST": "ChST", "MST": "MST", "EST": "EST", "ADT": "ADT", "HKT": "HKT", "OEZ": "OEZ", "CAT": "CAT", "HNCU": "HNCU", "UYST": "UYST", "ARST": "ARST", "HNOG": "HNOG", "TMT": "TMT", "MYT": "MYT", "UYT": "UYT", "WESZ": "WESZ", "AWDT": "AWDT", "AEDT": "AEDT", "NZDT": "NZDT", "TMST": "TMST", "ACST": "ACST", "SRT": "SRT", "AWST": "AWST", "LHDT": "LHDT", "OESZ": "OESZ", "MDT": "MDT", "GYT": "GYT", "VET": "VET", "NZST": "NZST", "GFT": "GFT", "HNT": "HNT", "HKST": "HKST", "WITA": "WITA", "CLST": "CLST", "JDT": "JDT", "EDT": "EDT"},
+ timezones: map[string]string{"HEPM": "HEPM", "LHST": "LHST", "EAT": "EAT", "NZDT": "NZDT", "COST": "COST", "AKDT": "AKDT", "AEDT": "AEDT", "CHAST": "CHAST", "AST": "AST", "TMT": "TMT", "HKST": "HKST", "HAT": "HAT", "SAST": "SAST", "CDT": "CDT", "HNT": "HNT", "SGT": "SGT", "PDT": "PDT", "CST": "CST", "MESZ": "MESZ", "ACST": "ACST", "HNPMX": "HNPMX", "HNCU": "HNCU", "HKT": "HKT", "SRT": "SRT", "BOT": "BOT", "WAST": "WAST", "HADT": "HADT", "JST": "JST", "HNOG": "HNOG", "WIB": "WIB", "AWDT": "AWDT", "PST": "PST", "OESZ": "OESZ", "EDT": "EDT", "MDT": "MDT", "HEPMX": "HEPMX", "CAT": "CAT", "AKST": "AKST", "HECU": "HECU", "OEZ": "OEZ", "LHDT": "LHDT", "GYT": "GYT", "ECT": "ECT", "JDT": "JDT", "CLT": "CLT", "ACDT": "ACDT", "BT": "BT", "HNEG": "HNEG", "ADT": "ADT", "WEZ": "WEZ", "TMST": "TMST", "ACWST": "ACWST", "WARST": "WARST", "HENOMX": "HENOMX", "CHADT": "CHADT", "IST": "IST", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "WAT": "WAT", "HAST": "HAST", "WART": "WART", "MYT": "MYT", "EST": "EST", "COT": "COT", "∅∅∅": "∅∅∅", "MST": "MST", "GMT": "GMT", "UYST": "UYST", "HNPM": "HNPM", "NZST": "NZST", "AWST": "AWST", "MEZ": "MEZ", "VET": "VET", "CLST": "CLST", "HEOG": "HEOG", "HEEG": "HEEG", "GFT": "GFT", "ChST": "ChST", "ARST": "ARST", "WESZ": "WESZ", "AEST": "AEST", "UYT": "UYT", "WIT": "WIT", "WITA": "WITA", "ART": "ART"},
}
}
diff --git a/kk/kk.go b/kk/kk.go
index c2579ad3..6ef96a12 100644
--- a/kk/kk.go
+++ b/kk/kk.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"б.з.д.", "б.з."},
erasNarrow: []string{"", ""},
erasWide: []string{"Біздің заманымызға дейін", "Біздің заманымыз"},
- timezones: map[string]string{"GFT": "Француз Гвианасы уақыты", "OEZ": "Шығыс Еуропа стандартты уақыты", "SRT": "Суринам уақыты", "WEZ": "Батыс Еуропа стандартты уақыты", "NZST": "Жаңа Зеландия стандартты уақыты", "JDT": "Жапония жазғы уақыты", "TMT": "Түрікменстан стандартты уақыты", "HEPMX": "Мексика жазғы Тынық мұхит уақыты", "EDT": "Солтүстік Америка жазғы шығыс уақыты", "AKDT": "Аляска жазғы уақыты", "AEDT": "Австралия жазғы шығыс уақыты", "CHADT": "Чатем жазғы уақыты", "LHDT": "Лорд-Хау жазғы уақыты", "WIT": "Шығыс Индонезия уақыты", "HADT": "Гавай және Алеут аралдары жазғы уақыты", "WESZ": "Батыс Еуропа жазғы уақыты", "HECU": "Куба жазғы уақыты", "CST": "Солтүстік Америка стандартты орталық уақыты", "AST": "Атлантика стандартты уақыты", "GYT": "Гайана уақыты", "UYT": "Уругвай стандартты уақыты", "ACDT": "Австралия жазғы орталық уақыты", "HNPMX": "Мексика стандартты Тынық мұхит уақыты", "ECT": "Эквадор уақыты", "COT": "Колумбия стандартты уақыты", "WITA": "Орталық Индонезия уақыты", "∅∅∅": "Амазон жазғы уақыты", "HNEG": "Шығыс Гренландия стандартты уақыты", "WART": "Батыс Аргентина стандартты уақыты", "WIB": "Батыс Индонезия уақыты", "HAST": "Гавай және Алеут аралдары стандартты уақыты", "ARST": "Аргентина жазғы уақыты", "MESZ": "Орталық Еуропа жазғы уақыты", "HEEG": "Шығыс Гренландия жазғы уақыты", "HNNOMX": "Солтүстік-Батыс Мексика стандартты уақыты", "HENOMX": "Солтүстік-Батыс Мексика жазғы уақыты", "AKST": "Аляска стандартты уақыты", "VET": "Венесуэла уақыты", "IST": "Үндістан стандартты уақыты", "JST": "Жапония стандартты уақыты", "EST": "Солтүстік Америка стандартты шығыс уақыты", "HEOG": "Батыс Гренландия жазғы уақыты", "HNPM": "Сен-Пьер және Микелон стандартты уақыты", "CLT": "Чили стандартты уақыты", "TMST": "Түрікменстан жазғы уақыты", "LHST": "Лорд-Хау стандартты уақыты", "CLST": "Чили жазғы уақыты", "WAST": "Батыс Африка жазғы уақыты", "COST": "Колумбия жазғы уақыты", "HNCU": "Куба стандартты уақыты", "BT": "Бутан уақыты", "NZDT": "Жаңа Зеландия жазғы уақыты", "CHAST": "Чатем стандартты уақыты", "ACWDT": "Австралия жазғы орталық-батыс уақыты", "AWST": "Австралия стандартты батыс уақыты", "WARST": "Батыс Аргентина жазғы уақыты", "MST": "MST", "PDT": "Солтүстік Америка жазғы Тынық мұхиты уақыты", "AWDT": "Австралия жазғы батыс уақыты", "HEPM": "Сен-Пьер және Микелон жазғы уақыты", "SAST": "Оңтүстік Африка уақыты", "ACST": "Австралия стандартты орталық уақыты", "ADT": "Атлантика жазғы уақыты", "ACWST": "Австралия стандартты орталық-батыс уақыты", "WAT": "Батыс Африка стандартты уақыты", "CDT": "Солтүстік Америка жазғы орталық уақыты", "PST": "Солтүстік Америка стандартты Тынық мұхиты уақыты", "HKT": "Гонконг стандартты уақыты", "SGT": "Сингапур стандартты уақыты", "MYT": "Малайзия уақыты", "HNT": "Ньюфаундленд стандартты уақыты", "HNOG": "Батыс Гренландия стандартты уақыты", "AEST": "Австралия стандартты шығыс уақыты", "OESZ": "Шығыс Еуропа жазғы уақыты", "UYST": "Уругвай жазғы уақыты", "CAT": "Орталық Африка уақыты", "MDT": "MDT", "ART": "Аргентина стандартты уақыты", "MEZ": "Орталық Еуропа стандартты уақыты", "BOT": "Боливия уақыты", "GMT": "Гринвич уақыты", "HAT": "Ньюфаундленд жазғы уақыты", "HKST": "Гонконг жазғы уақыты", "ChST": "Чаморро стандартты уақыты", "EAT": "Шығыс Африка уақыты"},
+ timezones: map[string]string{"EST": "Солтүстік Америка стандартты шығыс уақыты", "HNT": "Ньюфаундленд стандартты уақыты", "HNPMX": "Мексика стандартты Тынық мұхит уақыты", "HNCU": "Куба стандартты уақыты", "MDT": "MDT", "WAT": "Батыс Африка стандартты уақыты", "HNEG": "Шығыс Гренландия стандартты уақыты", "EAT": "Шығыс Африка уақыты", "SGT": "Сингапур стандартты уақыты", "MEZ": "Орталық Еуропа стандартты уақыты", "WESZ": "Батыс Еуропа жазғы уақыты", "TMT": "Түрікменстан стандартты уақыты", "ACST": "Австралия стандартты орталық уақыты", "AKST": "Аляска стандартты уақыты", "LHST": "Лорд-Хау стандартты уақыты", "AWST": "Австралия стандартты батыс уақыты", "COST": "Колумбия жазғы уақыты", "AKDT": "Аляска жазғы уақыты", "HEPM": "Сен-Пьер және Микелон жазғы уақыты", "HEPMX": "Мексика жазғы Тынық мұхит уақыты", "WIT": "Шығыс Индонезия уақыты", "JDT": "Жапония жазғы уақыты", "HENOMX": "Солтүстік-Батыс Мексика жазғы уақыты", "LHDT": "Лорд-Хау жазғы уақыты", "MST": "MST", "WITA": "Орталық Индонезия уақыты", "ChST": "Чаморро стандартты уақыты", "SRT": "Суринам уақыты", "CDT": "Солтүстік Америка жазғы орталық уақыты", "GFT": "Француз Гвианасы уақыты", "AST": "Атлантика стандартты уақыты", "WART": "Батыс Аргентина стандартты уақыты", "HNOG": "Батыс Гренландия стандартты уақыты", "EDT": "Солтүстік Америка жазғы шығыс уақыты", "HKST": "Гонконг жазғы уақыты", "HNNOMX": "Солтүстік-Батыс Мексика стандартты уақыты", "∅∅∅": "∅∅∅", "VET": "Венесуэла уақыты", "CLST": "Чили жазғы уақыты", "HKT": "Гонконг стандартты уақыты", "HNPM": "Сен-Пьер және Микелон стандартты уақыты", "ACWDT": "Австралия жазғы орталық-батыс уақыты", "NZST": "Жаңа Зеландия стандартты уақыты", "NZDT": "Жаңа Зеландия жазғы уақыты", "JST": "Жапония стандартты уақыты", "ADT": "Атлантика жазғы уақыты", "CLT": "Чили стандартты уақыты", "ACDT": "Австралия жазғы орталық уақыты", "SAST": "Оңтүстік Африка уақыты", "AWDT": "Австралия жазғы батыс уақыты", "PST": "Солтүстік Америка стандартты Тынық мұхиты уақыты", "OEZ": "Шығыс Еуропа стандартты уақыты", "MYT": "Малайзия уақыты", "HEOG": "Батыс Гренландия жазғы уақыты", "ART": "Аргентина стандартты уақыты", "HAT": "Ньюфаундленд жазғы уақыты", "WIB": "Батыс Индонезия уақыты", "BOT": "Боливия уақыты", "COT": "Колумбия стандартты уақыты", "IST": "Үндістан стандартты уақыты", "WARST": "Батыс Аргентина жазғы уақыты", "ARST": "Аргентина жазғы уақыты", "CST": "Солтүстік Америка стандартты орталық уақыты", "PDT": "Солтүстік Америка жазғы Тынық мұхиты уақыты", "MESZ": "Орталық Еуропа жазғы уақыты", "WEZ": "Батыс Еуропа стандартты уақыты", "CHAST": "Чатем стандартты уақыты", "HADT": "Гавай және Алеут аралдары жазғы уақыты", "GMT": "Гринвич уақыты", "HEEG": "Шығыс Гренландия жазғы уақыты", "HECU": "Куба жазғы уақыты", "CHADT": "Чатем жазғы уақыты", "ECT": "Эквадор уақыты", "WAST": "Батыс Африка жазғы уақыты", "BT": "Бутан уақыты", "AEST": "Австралия стандартты шығыс уақыты", "UYST": "Уругвай жазғы уақыты", "HAST": "Гавай және Алеут аралдары стандартты уақыты", "OESZ": "Шығыс Еуропа жазғы уақыты", "TMST": "Түрікменстан жазғы уақыты", "AEDT": "Австралия жазғы шығыс уақыты", "UYT": "Уругвай стандартты уақыты", "GYT": "Гайана уақыты", "CAT": "Орталық Африка уақыты", "ACWST": "Австралия стандартты орталық-батыс уақыты"},
}
}
diff --git a/kk_KZ/kk_KZ.go b/kk_KZ/kk_KZ.go
index 4da0e89d..054b5c94 100644
--- a/kk_KZ/kk_KZ.go
+++ b/kk_KZ/kk_KZ.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"б.з.д.", "б.з."},
erasNarrow: []string{"", ""},
erasWide: []string{"Біздің заманымызға дейін", "Біздің заманымыз"},
- timezones: map[string]string{"MST": "MST", "GYT": "Гайана уақыты", "WESZ": "Батыс Еуропа жазғы уақыты", "ACWST": "Австралия стандартты орталық-батыс уақыты", "CHADT": "Чатем жазғы уақыты", "∅∅∅": "Перу жазғы уақыты", "SGT": "Сингапур стандартты уақыты", "CST": "Солтүстік Америка стандартты орталық уақыты", "AST": "Атлантика стандартты уақыты", "HENOMX": "Солтүстік-Батыс Мексика жазғы уақыты", "UYT": "Уругвай стандартты уақыты", "WIB": "Батыс Индонезия уақыты", "ACWDT": "Австралия жазғы орталық-батыс уақыты", "ARST": "Аргентина жазғы уақыты", "AWDT": "Австралия жазғы батыс уақыты", "WARST": "Батыс Аргентина жазғы уақыты", "EAT": "Шығыс Африка уақыты", "WAST": "Батыс Африка жазғы уақыты", "HAST": "Гавай және Алеут аралдары стандартты уақыты", "SRT": "Суринам уақыты", "HAT": "Ньюфаундленд жазғы уақыты", "CAT": "Орталық Африка уақыты", "OESZ": "Шығыс Еуропа жазғы уақыты", "ADT": "Атлантика жазғы уақыты", "VET": "Венесуэла уақыты", "MEZ": "Орталық Еуропа стандартты уақыты", "ChST": "Чаморро стандартты уақыты", "AKST": "Аляска стандартты уақыты", "UYST": "Уругвай жазғы уақыты", "PST": "Солтүстік Америка стандартты Тынық мұхиты уақыты", "WITA": "Орталық Индонезия уақыты", "HEPM": "Сен-Пьер және Микелон жазғы уақыты", "MESZ": "Орталық Еуропа жазғы уақыты", "WAT": "Батыс Африка стандартты уақыты", "AKDT": "Аляска жазғы уақыты", "HNT": "Ньюфаундленд стандартты уақыты", "ART": "Аргентина стандартты уақыты", "AWST": "Австралия стандартты батыс уақыты", "HNPM": "Сен-Пьер және Микелон стандартты уақыты", "JST": "Жапония стандартты уақыты", "JDT": "Жапония жазғы уақыты", "IST": "Үндістан стандартты уақыты", "ACDT": "Австралия жазғы орталық уақыты", "WART": "Батыс Аргентина стандартты уақыты", "EDT": "Солтүстік Америка жазғы шығыс уақыты", "MDT": "MDT", "HADT": "Гавай және Алеут аралдары жазғы уақыты", "LHST": "Лорд-Хау стандартты уақыты", "TMT": "Түрікменстан стандартты уақыты", "EST": "Солтүстік Америка стандартты шығыс уақыты", "WEZ": "Батыс Еуропа стандартты уақыты", "HNOG": "Батыс Гренландия стандартты уақыты", "CHAST": "Чатем стандартты уақыты", "LHDT": "Лорд-Хау жазғы уақыты", "NZST": "Жаңа Зеландия стандартты уақыты", "HNEG": "Шығыс Гренландия стандартты уақыты", "ACST": "Австралия стандартты орталық уақыты", "HEPMX": "Мексика жазғы Тынық мұхит уақыты", "BT": "Бутан уақыты", "HEOG": "Батыс Гренландия жазғы уақыты", "HKST": "Гонконг жазғы уақыты", "SAST": "Оңтүстік Африка уақыты", "CLT": "Чили стандартты уақыты", "TMST": "Түрікменстан жазғы уақыты", "COT": "Колумбия стандартты уақыты", "HNNOMX": "Солтүстік-Батыс Мексика стандартты уақыты", "MYT": "Малайзия уақыты", "AEST": "Австралия стандартты шығыс уақыты", "NZDT": "Жаңа Зеландия жазғы уақыты", "BOT": "Боливия уақыты", "GFT": "Француз Гвианасы уақыты", "PDT": "Солтүстік Америка жазғы Тынық мұхиты уақыты", "CLST": "Чили жазғы уақыты", "COST": "Колумбия жазғы уақыты", "HNCU": "Куба стандартты уақыты", "HECU": "Куба жазғы уақыты", "HNPMX": "Мексика стандартты Тынық мұхит уақыты", "CDT": "Солтүстік Америка жазғы орталық уақыты", "HKT": "Гонконг стандартты уақыты", "HEEG": "Шығыс Гренландия жазғы уақыты", "OEZ": "Шығыс Еуропа стандартты уақыты", "ECT": "Эквадор уақыты", "GMT": "Гринвич уақыты", "WIT": "Шығыс Индонезия уақыты", "AEDT": "Австралия жазғы шығыс уақыты"},
+ timezones: map[string]string{"OEZ": "Шығыс Еуропа стандартты уақыты", "TMST": "Түрікменстан жазғы уақыты", "SGT": "Сингапур стандартты уақыты", "BOT": "Боливия уақыты", "NZDT": "Жаңа Зеландия жазғы уақыты", "MEZ": "Орталық Еуропа стандартты уақыты", "HNOG": "Батыс Гренландия стандартты уақыты", "HKT": "Гонконг стандартты уақыты", "LHDT": "Лорд-Хау жазғы уақыты", "GYT": "Гайана уақыты", "HECU": "Куба жазғы уақыты", "ACWST": "Австралия стандартты орталық-батыс уақыты", "JDT": "Жапония жазғы уақыты", "HENOMX": "Солтүстік-Батыс Мексика жазғы уақыты", "AEST": "Австралия стандартты шығыс уақыты", "HEOG": "Батыс Гренландия жазғы уақыты", "COST": "Колумбия жазғы уақыты", "PST": "Солтүстік Америка стандартты Тынық мұхиты уақыты", "HAST": "Гавай және Алеут аралдары стандартты уақыты", "ACWDT": "Австралия жазғы орталық-батыс уақыты", "AKST": "Аляска стандартты уақыты", "ChST": "Чаморро стандартты уақыты", "WIT": "Шығыс Индонезия уақыты", "AWST": "Австралия стандартты батыс уақыты", "MST": "MST", "ARST": "Аргентина жазғы уақыты", "ACST": "Австралия стандартты орталық уақыты", "BT": "Бутан уақыты", "HNEG": "Шығыс Гренландия стандартты уақыты", "CHADT": "Чатем жазғы уақыты", "HADT": "Гавай және Алеут аралдары жазғы уақыты", "CAT": "Орталық Африка уақыты", "ART": "Аргентина стандартты уақыты", "EST": "Солтүстік Америка стандартты шығыс уақыты", "HNNOMX": "Солтүстік-Батыс Мексика стандартты уақыты", "HNT": "Ньюфаундленд стандартты уақыты", "WITA": "Орталық Индонезия уақыты", "ECT": "Эквадор уақыты", "VET": "Венесуэла уақыты", "GMT": "Гринвич уақыты", "LHST": "Лорд-Хау стандартты уақыты", "MESZ": "Орталық Еуропа жазғы уақыты", "UYT": "Уругвай стандартты уақыты", "MDT": "MDT", "WAT": "Батыс Африка стандартты уақыты", "EDT": "Солтүстік Америка жазғы шығыс уақыты", "HKST": "Гонконг жазғы уақыты", "HEEG": "Шығыс Гренландия жазғы уақыты", "HEPM": "Сен-Пьер және Микелон жазғы уақыты", "WART": "Батыс Аргентина стандартты уақыты", "MYT": "Малайзия уақыты", "TMT": "Түрікменстан стандартты уақыты", "ACDT": "Австралия жазғы орталық уақыты", "HAT": "Ньюфаундленд жазғы уақыты", "GFT": "Француз Гвианасы уақыты", "SRT": "Суринам уақыты", "HNCU": "Куба стандартты уақыты", "∅∅∅": "Амазон жазғы уақыты", "NZST": "Жаңа Зеландия стандартты уақыты", "IST": "Үндістан стандартты уақыты", "SAST": "Оңтүстік Африка уақыты", "PDT": "Солтүстік Америка жазғы Тынық мұхиты уақыты", "WARST": "Батыс Аргентина жазғы уақыты", "WEZ": "Батыс Еуропа стандартты уақыты", "OESZ": "Шығыс Еуропа жазғы уақыты", "WESZ": "Батыс Еуропа жазғы уақыты", "AKDT": "Аляска жазғы уақыты", "AEDT": "Австралия жазғы шығыс уақыты", "CHAST": "Чатем стандартты уақыты", "JST": "Жапония стандартты уақыты", "ADT": "Атлантика жазғы уақыты", "WAST": "Батыс Африка жазғы уақыты", "HEPMX": "Мексика жазғы Тынық мұхит уақыты", "WIB": "Батыс Индонезия уақыты", "CDT": "Солтүстік Америка жазғы орталық уақыты", "AWDT": "Австралия жазғы батыс уақыты", "CLST": "Чили жазғы уақыты", "AST": "Атлантика стандартты уақыты", "UYST": "Уругвай жазғы уақыты", "HNPM": "Сен-Пьер және Микелон стандартты уақыты", "CLT": "Чили стандартты уақыты", "COT": "Колумбия стандартты уақыты", "CST": "Солтүстік Америка стандартты орталық уақыты", "HNPMX": "Мексика стандартты Тынық мұхит уақыты", "EAT": "Шығыс Африка уақыты"},
}
}
diff --git a/kkj/kkj.go b/kkj/kkj.go
index fc090e91..2e3a3073 100644
--- a/kkj/kkj.go
+++ b/kkj/kkj.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
daysNarrow: []string{"so", "lu", "ma", "mɛ", "ye", "va", "ms"},
daysShort: []string{"sɔndi", "lundi", "mardi", "mɛrkɛrɛdi", "yedi", "vaŋdɛrɛdi", "mɔnɔ sɔndi"},
daysWide: []string{"sɔndi", "lundi", "mardi", "mɛrkɛrɛdi", "yedi", "vaŋdɛrɛdi", "mɔnɔ sɔndi"},
- timezones: map[string]string{"EST": "EST", "HNPMX": "HNPMX", "GYT": "GYT", "BT": "BT", "MESZ": "MESZ", "ChST": "ChST", "HEEG": "HEEG", "WAST": "WAST", "ACWDT": "ACWDT", "HAT": "HAT", "UYT": "UYT", "AST": "AST", "ART": "ART", "AEST": "AEST", "LHDT": "LHDT", "WART": "WART", "MST": "MST", "HKT": "HKT", "ARST": "ARST", "AWST": "AWST", "MEZ": "MEZ", "LHST": "LHST", "HEPMX": "HEPMX", "HAST": "HAST", "HNEG": "HNEG", "EAT": "EAT", "UYST": "UYST", "AKST": "AKST", "WEZ": "WEZ", "NZST": "NZST", "CHAST": "CHAST", "SGT": "SGT", "MYT": "MYT", "GMT": "GMT", "HKST": "HKST", "WITA": "WITA", "GFT": "GFT", "WARST": "WARST", "AWDT": "AWDT", "HNPM": "HNPM", "ACST": "ACST", "SRT": "SRT", "HNOG": "HNOG", "WAT": "WAT", "HECU": "HECU", "MDT": "MDT", "HNT": "HNT", "AKDT": "AKDT", "VET": "VET", "WIT": "WIT", "PST": "PST", "SAST": "SAST", "CLT": "CLT", "COT": "COT", "HNCU": "HNCU", "WESZ": "WESZ", "IST": "IST", "PDT": "PDT", "TMST": "TMST", "OESZ": "OESZ", "CST": "CST", "ACWST": "ACWST", "∅∅∅": "∅∅∅", "JDT": "JDT", "ACDT": "ACDT", "HENOMX": "HENOMX", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "NZDT": "NZDT", "JST": "JST", "COST": "COST", "CLST": "CLST", "TMT": "TMT", "CDT": "CDT", "ADT": "ADT", "OEZ": "OEZ", "ECT": "ECT", "EDT": "EDT", "WIB": "WIB", "AEDT": "AEDT", "CHADT": "CHADT", "BOT": "BOT", "CAT": "CAT", "HADT": "HADT", "HEOG": "HEOG"},
+ timezones: map[string]string{"WART": "WART", "HEPMX": "HEPMX", "WIT": "WIT", "WEZ": "WEZ", "HEOG": "HEOG", "TMST": "TMST", "ChST": "ChST", "CDT": "CDT", "CHADT": "CHADT", "NZST": "NZST", "NZDT": "NZDT", "WARST": "WARST", "HNPM": "HNPM", "ECT": "ECT", "VET": "VET", "UYST": "UYST", "COST": "COST", "GFT": "GFT", "HEPM": "HEPM", "HNPMX": "HNPMX", "IST": "IST", "WAST": "WAST", "AEDT": "AEDT", "LHDT": "LHDT", "GMT": "GMT", "MST": "MST", "BT": "BT", "HNT": "HNT", "HADT": "HADT", "ACWDT": "ACWDT", "CLT": "CLT", "WESZ": "WESZ", "ACDT": "ACDT", "HENOMX": "HENOMX", "EAT": "EAT", "WIB": "WIB", "PST": "PST", "HAST": "HAST", "OEZ": "OEZ", "JDT": "JDT", "EST": "EST", "HEEG": "HEEG", "LHST": "LHST", "HECU": "HECU", "CLST": "CLST", "HNEG": "HNEG", "∅∅∅": "∅∅∅", "JST": "JST", "EDT": "EDT", "WAT": "WAT", "HAT": "HAT", "SAST": "SAST", "HNCU": "HNCU", "ARST": "ARST", "HNNOMX": "HNNOMX", "AEST": "AEST", "SRT": "SRT", "ACWST": "ACWST", "ART": "ART", "COT": "COT", "SGT": "SGT", "MESZ": "MESZ", "OESZ": "OESZ", "HKST": "HKST", "UYT": "UYT", "GYT": "GYT", "CST": "CST", "MEZ": "MEZ", "MYT": "MYT", "TMT": "TMT", "MDT": "MDT", "WITA": "WITA", "CHAST": "CHAST", "BOT": "BOT", "CAT": "CAT", "HNOG": "HNOG", "ADT": "ADT", "HKT": "HKT", "AKST": "AKST", "AWST": "AWST", "AWDT": "AWDT", "AST": "AST", "AKDT": "AKDT", "PDT": "PDT", "ACST": "ACST"},
}
}
diff --git a/kkj_CM/kkj_CM.go b/kkj_CM/kkj_CM.go
index 33250417..d64d5607 100644
--- a/kkj_CM/kkj_CM.go
+++ b/kkj_CM/kkj_CM.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
daysNarrow: []string{"so", "lu", "ma", "mɛ", "ye", "va", "ms"},
daysShort: []string{"sɔndi", "lundi", "mardi", "mɛrkɛrɛdi", "yedi", "vaŋdɛrɛdi", "mɔnɔ sɔndi"},
daysWide: []string{"sɔndi", "lundi", "mardi", "mɛrkɛrɛdi", "yedi", "vaŋdɛrɛdi", "mɔnɔ sɔndi"},
- timezones: map[string]string{"AEDT": "AEDT", "TMT": "TMT", "CAT": "CAT", "COT": "COT", "MST": "MST", "PST": "PST", "WEZ": "WEZ", "HEPM": "HEPM", "GFT": "GFT", "WARST": "WARST", "WIT": "WIT", "HNT": "HNT", "WITA": "WITA", "CLT": "CLT", "JST": "JST", "WAST": "WAST", "WIB": "WIB", "VET": "VET", "IST": "IST", "HNCU": "HNCU", "WESZ": "WESZ", "ACST": "ACST", "GMT": "GMT", "JDT": "JDT", "ACDT": "ACDT", "HNPMX": "HNPMX", "HAST": "HAST", "AWST": "AWST", "SAST": "SAST", "EDT": "EDT", "UYST": "UYST", "OEZ": "OEZ", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "MEZ": "MEZ", "WAT": "WAT", "ECT": "ECT", "UYT": "UYT", "AST": "AST", "ACWST": "ACWST", "CLST": "CLST", "SGT": "SGT", "CST": "CST", "HNOG": "HNOG", "ART": "ART", "HECU": "HECU", "MYT": "MYT", "HADT": "HADT", "ARST": "ARST", "NZDT": "NZDT", "HEEG": "HEEG", "EAT": "EAT", "HKST": "HKST", "LHDT": "LHDT", "NZST": "NZST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "HEOG": "HEOG", "PDT": "PDT", "AWDT": "AWDT", "HKT": "HKT", "HNPM": "HNPM", "CHAST": "CHAST", "CHADT": "CHADT", "TMST": "TMST", "MDT": "MDT", "SRT": "SRT", "ACWDT": "ACWDT", "CDT": "CDT", "WART": "WART", "COST": "COST", "AKDT": "AKDT", "HENOMX": "HENOMX", "EST": "EST", "GYT": "GYT", "ADT": "ADT", "BT": "BT", "LHST": "LHST", "ChST": "ChST", "BOT": "BOT", "HEPMX": "HEPMX", "AKST": "AKST", "HAT": "HAT", "AEST": "AEST", "MESZ": "MESZ"},
+ timezones: map[string]string{"HNEG": "HNEG", "CST": "CST", "MYT": "MYT", "WARST": "WARST", "HENOMX": "HENOMX", "AEDT": "AEDT", "HNPM": "HNPM", "HNPMX": "HNPMX", "GYT": "GYT", "CHADT": "CHADT", "BOT": "BOT", "ACDT": "ACDT", "∅∅∅": "∅∅∅", "CDT": "CDT", "VET": "VET", "CLST": "CLST", "EST": "EST", "WITA": "WITA", "HNCU": "HNCU", "PST": "PST", "JST": "JST", "HEOG": "HEOG", "OESZ": "OESZ", "WAST": "WAST", "UYT": "UYT", "SAST": "SAST", "ECT": "ECT", "AKDT": "AKDT", "LHST": "LHST", "SGT": "SGT", "MESZ": "MESZ", "TMST": "TMST", "ARST": "ARST", "HKT": "HKT", "HAT": "HAT", "EAT": "EAT", "WIT": "WIT", "ACWST": "ACWST", "HEPM": "HEPM", "LHDT": "LHDT", "HADT": "HADT", "CAT": "CAT", "NZDT": "NZDT", "CLT": "CLT", "WESZ": "WESZ", "WAT": "WAT", "COST": "COST", "GFT": "GFT", "AWST": "AWST", "ADT": "ADT", "WIB": "WIB", "IST": "IST", "ACWDT": "ACWDT", "OEZ": "OEZ", "MST": "MST", "EDT": "EDT", "AEST": "AEST", "AWDT": "AWDT", "COT": "COT", "HNT": "HNT", "AKST": "AKST", "PDT": "PDT", "HAST": "HAST", "HNOG": "HNOG", "MDT": "MDT", "HKST": "HKST", "BT": "BT", "NZST": "NZST", "WART": "WART", "GMT": "GMT", "ACST": "ACST", "MEZ": "MEZ", "AST": "AST", "WEZ": "WEZ", "TMT": "TMT", "ART": "ART", "HNNOMX": "HNNOMX", "HEEG": "HEEG", "JDT": "JDT", "ChST": "ChST", "UYST": "UYST", "HEPMX": "HEPMX", "SRT": "SRT", "HECU": "HECU", "CHAST": "CHAST"},
}
}
diff --git a/kl/kl.go b/kl/kl.go
index 53dd0a75..c970aaf9 100644
--- a/kl/kl.go
+++ b/kl/kl.go
@@ -68,7 +68,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"Kr.in.si.", "Kr.in.king."},
erasNarrow: []string{"Kr.s.", "Kr.k."},
erasWide: []string{"Kristusip inunngornerata siornagut", "Kristusip inunngornerata kingornagut"},
- timezones: map[string]string{"NZST": "NZST", "BOT": "BOT", "EAT": "EAT", "COST": "COST", "HKT": "HKT", "WITA": "WITA", "AEDT": "AEDT", "HEPM": "HEPM", "WART": "WART", "SRT": "SRT", "ADT": "ADT", "UYST": "UYST", "HKST": "HKST", "ACST": "ACST", "EST": "EST", "CST": "CST", "LHST": "LHST", "OEZ": "OEZ", "MST": "MST", "AKDT": "AKDT", "WAST": "WAST", "CDT": "CDT", "ACWDT": "ACWDT", "MEZ": "MEZ", "JST": "JST", "GFT": "GFT", "ACDT": "ACDT", "OESZ": "OESZ", "HECU": "HECU", "HEPMX": "HEPMX", "EDT": "EDT", "AWDT": "AWDT", "MESZ": "MESZ", "CLT": "CLT", "WAT": "WAT", "MDT": "MDT", "GYT": "GYT", "ARST": "ARST", "HNEG": "HNEG", "ECT": "ECT", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "PDT": "PDT", "∅∅∅": "∅∅∅", "AKST": "AKST", "WIT": "WIT", "HAST": "HAST", "NZDT": "NZDT", "AST": "AST", "HADT": "HADT", "HNT": "HNT", "HNPM": "HNPM", "CHADT": "CHADT", "COT": "COT", "HEOG": "HEOG", "CHAST": "CHAST", "BT": "BT", "ART": "ART", "HENOMX": "HENOMX", "VET": "VET", "HAT": "HAT", "WEZ": "WEZ", "WESZ": "WESZ", "IST": "IST", "JDT": "JDT", "HEEG": "HEEG", "WARST": "WARST", "CAT": "CAT", "SGT": "SGT", "ACWST": "ACWST", "HNOG": "HNOG", "AWST": "AWST", "AEST": "AEST", "LHDT": "LHDT", "TMT": "TMT", "PST": "PST", "UYT": "UYT", "SAST": "SAST", "CLST": "CLST", "TMST": "TMST", "HNPMX": "HNPMX", "ChST": "ChST", "MYT": "MYT", "WIB": "WIB", "GMT": "GMT"},
+ timezones: map[string]string{"EAT": "EAT", "AWDT": "AWDT", "WART": "WART", "OESZ": "OESZ", "TMST": "TMST", "HEEG": "HEEG", "AEST": "AEST", "SRT": "SRT", "ARST": "ARST", "EDT": "EDT", "HNPMX": "HNPMX", "AWST": "AWST", "CLST": "CLST", "ADT": "ADT", "HAT": "HAT", "MST": "MST", "UYT": "UYT", "WITA": "WITA", "UYST": "UYST", "HEOG": "HEOG", "MESZ": "MESZ", "WIB": "WIB", "ACWST": "ACWST", "JST": "JST", "PST": "PST", "CHADT": "CHADT", "IST": "IST", "OEZ": "OEZ", "HNPM": "HNPM", "LHST": "LHST", "GYT": "GYT", "AKST": "AKST", "ACWDT": "ACWDT", "HNOG": "HNOG", "WAST": "WAST", "HENOMX": "HENOMX", "COST": "COST", "LHDT": "LHDT", "NZDT": "NZDT", "VET": "VET", "HADT": "HADT", "WEZ": "WEZ", "WESZ": "WESZ", "MYT": "MYT", "EST": "EST", "HEPM": "HEPM", "CST": "CST", "WIT": "WIT", "ACDT": "ACDT", "GFT": "GFT", "HECU": "HECU", "PDT": "PDT", "GMT": "GMT", "COT": "COT", "BT": "BT", "HNT": "HNT", "MDT": "MDT", "HKT": "HKT", "HNCU": "HNCU", "TMT": "TMT", "ART": "ART", "BOT": "BOT", "HAST": "HAST", "JDT": "JDT", "HNEG": "HNEG", "HEPMX": "HEPMX", "SAST": "SAST", "WARST": "WARST", "AST": "AST", "CHAST": "CHAST", "NZST": "NZST", "CAT": "CAT", "HKST": "HKST", "HNNOMX": "HNNOMX", "∅∅∅": "∅∅∅", "CDT": "CDT", "MEZ": "MEZ", "ECT": "ECT", "ACST": "ACST", "AEDT": "AEDT", "AKDT": "AKDT", "ChST": "ChST", "SGT": "SGT", "CLT": "CLT", "WAT": "WAT"},
}
}
diff --git a/kl_GL/kl_GL.go b/kl_GL/kl_GL.go
index 52b85357..4451ed0f 100644
--- a/kl_GL/kl_GL.go
+++ b/kl_GL/kl_GL.go
@@ -68,7 +68,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"Kr.in.si.", "Kr.in.king."},
erasNarrow: []string{"Kr.s.", "Kr.k."},
erasWide: []string{"Kristusip inunngornerata siornagut", "Kristusip inunngornerata kingornagut"},
- timezones: map[string]string{"TMT": "TMT", "ADT": "ADT", "HNOG": "HNOG", "AEDT": "AEDT", "MEZ": "MEZ", "CLT": "CLT", "OEZ": "OEZ", "HENOMX": "HENOMX", "HAST": "HAST", "AWDT": "AWDT", "HAT": "HAT", "WITA": "WITA", "SAST": "SAST", "CLST": "CLST", "WAT": "WAT", "OESZ": "OESZ", "AKDT": "AKDT", "BT": "BT", "UYT": "UYT", "AKST": "AKST", "ChST": "ChST", "HNEG": "HNEG", "ACDT": "ACDT", "CAT": "CAT", "WART": "WART", "HNPMX": "HNPMX", "AEST": "AEST", "HNPM": "HNPM", "HEPM": "HEPM", "IST": "IST", "ACST": "ACST", "WARST": "WARST", "GYT": "GYT", "∅∅∅": "∅∅∅", "EAT": "EAT", "HNCU": "HNCU", "WEZ": "WEZ", "AWST": "AWST", "NZST": "NZST", "ACWST": "ACWST", "HNT": "HNT", "HKT": "HKT", "MESZ": "MESZ", "ARST": "ARST", "JDT": "JDT", "HEEG": "HEEG", "EDT": "EDT", "CDT": "CDT", "WIT": "WIT", "PDT": "PDT", "CHAST": "CHAST", "WAST": "WAST", "MYT": "MYT", "WIB": "WIB", "WESZ": "WESZ", "ACWDT": "ACWDT", "HKST": "HKST", "TMST": "TMST", "ART": "ART", "LHST": "LHST", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "GFT": "GFT", "COST": "COST", "HEPMX": "HEPMX", "PST": "PST", "MST": "MST", "UYST": "UYST", "JST": "JST", "ECT": "ECT", "COT": "COT", "NZDT": "NZDT", "BOT": "BOT", "GMT": "GMT", "MDT": "MDT", "SRT": "SRT", "VET": "VET", "HEOG": "HEOG", "SGT": "SGT", "HECU": "HECU", "EST": "EST", "CST": "CST", "AST": "AST", "HADT": "HADT", "CHADT": "CHADT"},
+ timezones: map[string]string{"MST": "MST", "HEPM": "HEPM", "WESZ": "WESZ", "MYT": "MYT", "WARST": "WARST", "CLT": "CLT", "HNOG": "HNOG", "HEOG": "HEOG", "MEZ": "MEZ", "VET": "VET", "GMT": "GMT", "WAST": "WAST", "ChST": "ChST", "LHDT": "LHDT", "ECT": "ECT", "WEZ": "WEZ", "HNNOMX": "HNNOMX", "CHAST": "CHAST", "ART": "ART", "AKST": "AKST", "UYST": "UYST", "AWDT": "AWDT", "CLST": "CLST", "PDT": "PDT", "EST": "EST", "AKDT": "AKDT", "NZST": "NZST", "ADT": "ADT", "HKT": "HKT", "HNPM": "HNPM", "GYT": "GYT", "HNCU": "HNCU", "WIT": "WIT", "∅∅∅": "∅∅∅", "JST": "JST", "BT": "BT", "HEPMX": "HEPMX", "NZDT": "NZDT", "UYT": "UYT", "LHST": "LHST", "COST": "COST", "AEDT": "AEDT", "HECU": "HECU", "BOT": "BOT", "CAT": "CAT", "ACWST": "ACWST", "OEZ": "OEZ", "EDT": "EDT", "ACDT": "ACDT", "HNT": "HNT", "CST": "CST", "HAST": "HAST", "IST": "IST", "ACWDT": "ACWDT", "TMT": "TMT", "TMST": "TMST", "HAT": "HAT", "HEEG": "HEEG", "AEST": "AEST", "SRT": "SRT", "EAT": "EAT", "WAT": "WAT", "ACST": "ACST", "COT": "COT", "HENOMX": "HENOMX", "HADT": "HADT", "AST": "AST", "ARST": "ARST", "HKST": "HKST", "HNEG": "HNEG", "CDT": "CDT", "MESZ": "MESZ", "GFT": "GFT", "WITA": "WITA", "WIB": "WIB", "AWST": "AWST", "CHADT": "CHADT", "SGT": "SGT", "PST": "PST", "JDT": "JDT", "HNPMX": "HNPMX", "OESZ": "OESZ", "WART": "WART", "MDT": "MDT", "SAST": "SAST"},
}
}
diff --git a/kln/kln.go b/kln/kln.go
index aa2d0d07..e18020bf 100644
--- a/kln/kln.go
+++ b/kln/kln.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"AM", "KO"},
erasNarrow: []string{"", ""},
erasWide: []string{"Amait kesich Jesu", "Kokakesich Jesu"},
- timezones: map[string]string{"HEPMX": "HEPMX", "LHST": "LHST", "HEEG": "HEEG", "WAT": "WAT", "WAST": "WAST", "SAST": "SAST", "IST": "IST", "CLST": "CLST", "UYST": "UYST", "PST": "PST", "AWST": "AWST", "AWDT": "AWDT", "CHADT": "CHADT", "SRT": "SRT", "AEDT": "AEDT", "WITA": "WITA", "HNPMX": "HNPMX", "GYT": "GYT", "WIT": "WIT", "WESZ": "WESZ", "ACWDT": "ACWDT", "TMST": "TMST", "EST": "EST", "WARST": "WARST", "HECU": "HECU", "EDT": "EDT", "CST": "CST", "PDT": "PDT", "HKT": "HKT", "OESZ": "OESZ", "ECT": "ECT", "VET": "VET", "WEZ": "WEZ", "ART": "ART", "BOT": "BOT", "WIB": "WIB", "HNPM": "HNPM", "JDT": "JDT", "HNCU": "HNCU", "HNEG": "HNEG", "MYT": "MYT", "HNNOMX": "HNNOMX", "ACWST": "ACWST", "HKST": "HKST", "∅∅∅": "∅∅∅", "WART": "WART", "NZDT": "NZDT", "AKST": "AKST", "ADT": "ADT", "MST": "MST", "AKDT": "AKDT", "HEPM": "HEPM", "ChST": "ChST", "COT": "COT", "COST": "COST", "UYT": "UYT", "CDT": "CDT", "HAST": "HAST", "NZST": "NZST", "JST": "JST", "CAT": "CAT", "SGT": "SGT", "MEZ": "MEZ", "MESZ": "MESZ", "LHDT": "LHDT", "CHAST": "CHAST", "HNT": "HNT", "HAT": "HAT", "ARST": "ARST", "HNOG": "HNOG", "ACST": "ACST", "ACDT": "ACDT", "GMT": "GMT", "HADT": "HADT", "MDT": "MDT", "BT": "BT", "GFT": "GFT", "TMT": "TMT", "HENOMX": "HENOMX", "OEZ": "OEZ", "AST": "AST", "HEOG": "HEOG", "AEST": "AEST", "CLT": "CLT", "EAT": "EAT"},
+ timezones: map[string]string{"OESZ": "OESZ", "COST": "COST", "AKST": "AKST", "AKDT": "AKDT", "UYT": "UYT", "HECU": "HECU", "CHAST": "CHAST", "PST": "PST", "HADT": "HADT", "CAT": "CAT", "JDT": "JDT", "WEZ": "WEZ", "WART": "WART", "CLT": "CLT", "BT": "BT", "HEPM": "HEPM", "IST": "IST", "CLST": "CLST", "WAT": "WAT", "HNT": "HNT", "∅∅∅": "∅∅∅", "GYT": "GYT", "CST": "CST", "HAST": "HAST", "HNOG": "HNOG", "MYT": "MYT", "HNCU": "HNCU", "SGT": "SGT", "EDT": "EDT", "HNNOMX": "HNNOMX", "CDT": "CDT", "ACST": "ACST", "HAT": "HAT", "NZDT": "NZDT", "WESZ": "WESZ", "TMT": "TMT", "COT": "COT", "HNEG": "HNEG", "LHDT": "LHDT", "AWST": "AWST", "AWDT": "AWDT", "BOT": "BOT", "ACWDT": "ACWDT", "NZST": "NZST", "UYST": "UYST", "HEOG": "HEOG", "EST": "EST", "AEST": "AEST", "HEPMX": "HEPMX", "PDT": "PDT", "ECT": "ECT", "MEZ": "MEZ", "MESZ": "MESZ", "JST": "JST", "AST": "AST", "ACDT": "ACDT", "ChST": "ChST", "HNPM": "HNPM", "HNPMX": "HNPMX", "ARST": "ARST", "HKT": "HKT", "SAST": "SAST", "EAT": "EAT", "WIT": "WIT", "VET": "VET", "HEEG": "HEEG", "ACWST": "ACWST", "ADT": "ADT", "OEZ": "OEZ", "WARST": "WARST", "MST": "MST", "WITA": "WITA", "MDT": "MDT", "WAST": "WAST", "LHST": "LHST", "SRT": "SRT", "CHADT": "CHADT", "GMT": "GMT", "ART": "ART", "HKST": "HKST", "WIB": "WIB", "TMST": "TMST", "HENOMX": "HENOMX", "AEDT": "AEDT", "GFT": "GFT"},
}
}
diff --git a/kln_KE/kln_KE.go b/kln_KE/kln_KE.go
index 4a54d355..f37b3019 100644
--- a/kln_KE/kln_KE.go
+++ b/kln_KE/kln_KE.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"AM", "KO"},
erasNarrow: []string{"", ""},
erasWide: []string{"Amait kesich Jesu", "Kokakesich Jesu"},
- timezones: map[string]string{"WARST": "WARST", "MDT": "MDT", "CDT": "CDT", "MEZ": "MEZ", "JST": "JST", "JDT": "JDT", "HNEG": "HNEG", "WAT": "WAT", "ECT": "ECT", "PDT": "PDT", "NZDT": "NZDT", "LHDT": "LHDT", "TMT": "TMT", "AST": "AST", "HADT": "HADT", "WEZ": "WEZ", "NZST": "NZST", "∅∅∅": "∅∅∅", "VET": "VET", "IST": "IST", "EDT": "EDT", "EAT": "EAT", "GMT": "GMT", "ADT": "ADT", "MYT": "MYT", "AWDT": "AWDT", "BOT": "BOT", "WAST": "WAST", "COST": "COST", "AKST": "AKST", "UYST": "UYST", "HAT": "HAT", "WITA": "WITA", "HNPM": "HNPM", "CHAST": "CHAST", "OESZ": "OESZ", "OEZ": "OEZ", "CAT": "CAT", "HNPMX": "HNPMX", "AKDT": "AKDT", "ART": "ART", "CLT": "CLT", "HEEG": "HEEG", "ACDT": "ACDT", "ACWDT": "ACWDT", "HKST": "HKST", "HEPM": "HEPM", "CLST": "CLST", "ChST": "ChST", "EST": "EST", "UYT": "UYT", "HAST": "HAST", "BT": "BT", "ACWST": "ACWST", "HNOG": "HNOG", "MESZ": "MESZ", "TMST": "TMST", "HEOG": "HEOG", "HKT": "HKT", "AEDT": "AEDT", "LHST": "LHST", "ACST": "ACST", "AWST": "AWST", "CST": "CST", "GYT": "GYT", "WIB": "WIB", "SRT": "SRT", "CHADT": "CHADT", "HNCU": "HNCU", "SAST": "SAST", "COT": "COT", "SGT": "SGT", "WIT": "WIT", "HNT": "HNT", "PST": "PST", "WESZ": "WESZ", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "ARST": "ARST", "AEST": "AEST", "WART": "WART", "MST": "MST", "HEPMX": "HEPMX", "GFT": "GFT", "HECU": "HECU"},
+ timezones: map[string]string{"NZST": "NZST", "HENOMX": "HENOMX", "AEST": "AEST", "ChST": "ChST", "AWDT": "AWDT", "BOT": "BOT", "AST": "AST", "HKST": "HKST", "HEEG": "HEEG", "HEPMX": "HEPMX", "ACWST": "ACWST", "CLT": "CLT", "HAST": "HAST", "ACWDT": "ACWDT", "WESZ": "WESZ", "COST": "COST", "GFT": "GFT", "HNCU": "HNCU", "OESZ": "OESZ", "ART": "ART", "HNOG": "HNOG", "HEOG": "HEOG", "MYT": "MYT", "MDT": "MDT", "COT": "COT", "CHAST": "CHAST", "CHADT": "CHADT", "IST": "IST", "HNT": "HNT", "UYST": "UYST", "HADT": "HADT", "ADT": "ADT", "WITA": "WITA", "LHST": "LHST", "LHDT": "LHDT", "CST": "CST", "WARST": "WARST", "MST": "MST", "AWST": "AWST", "MEZ": "MEZ", "JST": "JST", "ECT": "ECT", "BT": "BT", "AKDT": "AKDT", "WAST": "WAST", "HNPM": "HNPM", "CDT": "CDT", "SGT": "SGT", "VET": "VET", "HAT": "HAT", "HNEG": "HNEG", "AEDT": "AEDT", "UYT": "UYT", "HEPM": "HEPM", "HECU": "HECU", "WART": "WART", "EDT": "EDT", "TMT": "TMT", "ARST": "ARST", "SRT": "SRT", "EAT": "EAT", "PST": "PST", "PDT": "PDT", "MESZ": "MESZ", "JDT": "JDT", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "∅∅∅": "∅∅∅", "WIT": "WIT", "GMT": "GMT", "ACST": "ACST", "ACDT": "ACDT", "GYT": "GYT", "NZDT": "NZDT", "OEZ": "OEZ", "WEZ": "WEZ", "WAT": "WAT", "EST": "EST", "CLST": "CLST", "TMST": "TMST", "HKT": "HKT", "AKST": "AKST", "SAST": "SAST", "WIB": "WIB", "CAT": "CAT"},
}
}
diff --git a/km/km.go b/km/km.go
index a6486983..feff5d55 100644
--- a/km/km.go
+++ b/km/km.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"មុន គ.ស.", "គ.ស."},
erasNarrow: []string{"", ""},
erasWide: []string{"មុន\u200bគ្រិស្តសករាជ", "គ្រិស្តសករាជ"},
- timezones: map[string]string{"HAST": "ម៉ោង\u200bស្តង់ដារ\u200b\u200bនៅ\u200bហាវៃ-អាល់ដ្យូសិន", "ACWST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bភាគ\u200bខាង\u200bលិច\u200bនៃ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "HKT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bហុងកុង", "JDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅជប៉ុន", "HNPMX": "ម៉ោង\u200bស្តង់ដា\u200bនៅ\u200bប៉ាសីុហ្វិក\u200bម៉ិកស៊ិក", "HEPMX": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bប៉ាសីុហ្វិក\u200bម៉ិកស៊ិក", "HADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bហាវៃ-អាល់ដ្យូសិន", "NZDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bនូវែលសេឡង់", "CLST": "ម៉ោងរដូវក្តៅនៅឈីលី", "ACDT": "ម៉ោង\u200bពេលថ្ងៃ\u200b\u200b\u200b\u200bនៅ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "WIB": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200bខាង\u200bលិច", "HAT": "ម៉ោង\u200bពេលថ្ងៃ\u200bនៅ\u200bញូហ្វោនឡែន", "∅∅∅": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាម៉ាសូន", "HNCU": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bគុយបា", "EST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bខាង\u200bកើត\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "EDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bភាគខាង\u200bកើតនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "HKST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bហុងកុង", "AWDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bលិច", "NZST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bនូវែលសេឡង់", "SAST": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bត្បូង", "WIT": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200bខាង\u200bកើត", "BT": "ម៉ោងនៅប៊ូតាន", "WEZ": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអឺរ៉ុប\u200bខាង\u200bលិច", "BOT": "ម៉ោង\u200bនៅ\u200bបូលីវី", "WART": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាសង់ទីន\u200b\u200bខាង\u200bលិច", "MST": "MST", "ADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអាត្លង់ទិក", "COT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bកូឡុំប៊ី", "WITA": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200b\u200bកណ្ដាល", "CLT": "ម៉ោងស្តង់ដារនៅឈីលី", "WAT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bលិច", "OESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200b\u200bខាង\u200bកើត\u200b", "MDT": "MDT", "CST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bកណ្ដាល\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "CDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bភាគ\u200bកណ្ដាល\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "UYST": "ម៉ោង\u200b\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអ៊ុយរូហ្គាយ", "HNPM": "ម៉ោង\u200bស្តង់ដារ\u200bនៅសង់\u200bព្យែរ និង\u200bមីគុយឡុង", "MESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200bកណ្ដាល", "HENOMX": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bម៉ិកស៊ិកភាគពាយព្យ", "SGT": "ម៉ោង\u200bនៅ\u200bសិង្ហបូរី", "GMT": "ម៉ោងនៅគ្រីនវិច", "VET": "ម៉ោង\u200bនៅ\u200bវ៉េណេស៊ុយអេឡា", "PDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200b\u200bភាគ\u200bខាងលិច\u200bនៅ\u200bអាមេរិក\u200bភាគ\u200bខាង\u200bជើង", "CHAST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bចាថាំ", "IST": "ម៉ោង\u200bនៅ\u200bឥណ្ឌា", "ECT": "ម៉ោង\u200bនៅ\u200bអេក្វាទ័រ", "COST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bកូឡុំប៊ី", "AWST": "ម៉ោង\u200b\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bលិច", "GYT": "ម៉ោង\u200bនៅ\u200bឃ្វីយ៉ាន", "PST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bខាង\u200bលិច\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "MEZ": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអឺរ៉ុប\u200bកណ្ដាល", "LHST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bឡត\u200bហៅ", "ACST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "HNOG": "ម៉ោងស្តង់ដារនៅហ្គ្រីនលែនខាងលិច", "ACWDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200b\u200bភាគ\u200bខាង\u200bលិច\u200bនៃ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "ART": "ម៉ោង\u200b\u200bស្តង់ដារ\u200bនៅ\u200bអាសង់ទីន", "TMST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bតួកម៉េនីស្ថាន\u200b", "WAST": "ម៉ោង\u200b\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាហ្វ្រិក\u200b\u200b\u200bខាងលិច", "OEZ": "ម៉ោង\u200bស្តង់ដារ\u200b\u200bនៅ\u200bអឺរ៉ុប\u200b\u200bខាង\u200bកើត\u200b", "MYT": "ម៉ោង\u200bនៅ\u200bម៉ាឡេស៊ី", "HEPM": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅសង់\u200bព្យែរ និង\u200bមីគុយឡុង", "TMT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅតួកម៉េនីស្ថាន", "AKST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាឡាស្កា", "LHDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bឡតហៅ", "UYT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអ៊ុយរូហ្គាយ", "SRT": "ម៉ោង\u200bនៅ\u200bសូរីណាម", "HEOG": "ម៉ោងរដូវក្តៅនៅហ្គ្រីនលែនខាងលិច", "AEST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bកើត", "ChST": "ម៉ោង\u200bនៅ\u200bចាំម៉ូរ៉ូ", "HNNOMX": "ម៉ោង\u200bស្តង់ដា\u200bនៅ\u200bម៉ិកស៊ិកភាគពាយព្យ", "HNT": "ម៉ោង\u200b\u200bស្តង់ដារ\u200b\u200bនៅ\u200bញូហ្វោនឡែន", "CAT": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bកណ្ដាល", "EAT": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bកើត", "AKDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200b\u200bអាឡាស្កា", "CHADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bចាថាំ", "JST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bជប៉ុន", "HNEG": "ម៉ោង\u200b\u200b\u200bស្តង់ដារ\u200bនៅ\u200b\u200bហ្គ្រីនលែន\u200bខាង\u200bកើត", "GFT": "ម៉ោង\u200bនៅ\u200bឃ្វីយ៉ាន\u200bបារាំង", "AST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាត្លង់ទិក", "ARST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាសង់ទីន", "WESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200bខាង\u200bលិច", "AEDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bកើត", "HEEG": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bហ្គ្រីនលែនខាង\u200bកើត", "WARST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាសង់ទីន\u200b\u200bខាង\u200bលិច", "HECU": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bគុយបា"},
+ timezones: map[string]string{"SGT": "ម៉ោង\u200bនៅ\u200bសិង្ហបូរី", "HADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bហាវៃ-អាល់ដ្យូសិន", "IST": "ម៉ោង\u200bនៅ\u200bឥណ្ឌា", "CLT": "ម៉ោងស្តង់ដារនៅឈីលី", "TMST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bតួកម៉េនីស្ថាន\u200b", "HEEG": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bហ្គ្រីនលែនខាង\u200bកើត", "WIB": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200bខាង\u200bលិច", "AWDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bលិច", "JST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bជប៉ុន", "EST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bខាង\u200bកើត\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "ChST": "ម៉ោង\u200bនៅ\u200bចាំម៉ូរ៉ូ", "WIT": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200bខាង\u200bកើត", "HAST": "ម៉ោង\u200bស្តង់ដារ\u200b\u200bនៅ\u200bហាវៃ-អាល់ដ្យូសិន", "BT": "ម៉ោងនៅប៊ូតាន", "AKDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200b\u200bអាឡាស្កា", "HECU": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bគុយបា", "HEPMX": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bប៉ាសីុហ្វិក\u200bម៉ិកស៊ិក", "SRT": "ម៉ោង\u200bនៅ\u200bសូរីណាម", "HNOG": "ម៉ោងស្តង់ដារនៅហ្គ្រីនលែនខាងលិច", "WEZ": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអឺរ៉ុប\u200bខាង\u200bលិច", "MYT": "ម៉ោង\u200bនៅ\u200bម៉ាឡេស៊ី", "AEDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bកើត", "LHDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bឡតហៅ", "HNCU": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bគុយបា", "ACWDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200b\u200bភាគ\u200bខាង\u200bលិច\u200bនៃ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "MEZ": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអឺរ៉ុប\u200bកណ្ដាល", "WESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200bខាង\u200bលិច", "ART": "ម៉ោង\u200b\u200bស្តង់ដារ\u200bនៅ\u200bអាសង់ទីន", "WAST": "ម៉ោង\u200b\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាហ្វ្រិក\u200b\u200b\u200bខាងលិច", "ACST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "ACDT": "ម៉ោង\u200bពេលថ្ងៃ\u200b\u200b\u200b\u200bនៅ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "HENOMX": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bម៉ិកស៊ិកភាគពាយព្យ", "HNT": "ម៉ោង\u200b\u200bស្តង់ដារ\u200b\u200bនៅ\u200bញូហ្វោនឡែន", "HAT": "ម៉ោង\u200bពេលថ្ងៃ\u200bនៅ\u200bញូហ្វោនឡែន", "UYT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអ៊ុយរូហ្គាយ", "MESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200bកណ្ដាល", "ADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអាត្លង់ទិក", "WART": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាសង់ទីន\u200b\u200bខាង\u200bលិច", "EDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bភាគខាង\u200bកើតនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "GFT": "ម៉ោង\u200bនៅ\u200bឃ្វីយ៉ាន\u200bបារាំង", "ACWST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bភាគ\u200bខាង\u200bលិច\u200bនៃ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "BOT": "ម៉ោង\u200bនៅ\u200bបូលីវី", "GMT": "ម៉ោងនៅគ្រីនវិច", "HNEG": "ម៉ោង\u200b\u200b\u200bស្តង់ដារ\u200bនៅ\u200b\u200bហ្គ្រីនលែន\u200bខាង\u200bកើត", "HEPM": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅសង់\u200bព្យែរ និង\u200bមីគុយឡុង", "AWST": "ម៉ោង\u200b\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bលិច", "CHADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bចាថាំ", "WARST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាសង់ទីន\u200b\u200bខាង\u200bលិច", "MDT": "MDT", "WAT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bលិច", "HNPM": "ម៉ោង\u200bស្តង់ដារ\u200bនៅសង់\u200bព្យែរ និង\u200bមីគុយឡុង", "SAST": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bត្បូង", "AST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាត្លង់ទិក", "OESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200b\u200bខាង\u200bកើត\u200b", "∅∅∅": "∅∅∅", "CDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bភាគ\u200bកណ្ដាល\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "JDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅជប៉ុន", "HEOG": "ម៉ោងរដូវក្តៅនៅហ្គ្រីនលែនខាងលិច", "CHAST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bចាថាំ", "NZST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bនូវែលសេឡង់", "NZDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bនូវែលសេឡង់", "CAT": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bកណ្ដាល", "VET": "ម៉ោង\u200bនៅ\u200bវ៉េណេស៊ុយអេឡា", "MST": "MST", "ARST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាសង់ទីន", "UYST": "ម៉ោង\u200b\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអ៊ុយរូហ្គាយ", "EAT": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bកើត", "PST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bខាង\u200bលិច\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "CLST": "ម៉ោងរដូវក្តៅនៅឈីលី", "TMT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅតួកម៉េនីស្ថាន", "LHST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bឡត\u200bហៅ", "HNPMX": "ម៉ោង\u200bស្តង់ដា\u200bនៅ\u200bប៉ាសីុហ្វិក\u200bម៉ិកស៊ិក", "ECT": "ម៉ោង\u200bនៅ\u200bអេក្វាទ័រ", "OEZ": "ម៉ោង\u200bស្តង់ដារ\u200b\u200bនៅ\u200bអឺរ៉ុប\u200b\u200bខាង\u200bកើត\u200b", "COT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bកូឡុំប៊ី", "PDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200b\u200bភាគ\u200bខាងលិច\u200bនៅ\u200bអាមេរិក\u200bភាគ\u200bខាង\u200bជើង", "GYT": "ម៉ោង\u200bនៅ\u200bឃ្វីយ៉ាន", "CST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bកណ្ដាល\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "COST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bកូឡុំប៊ី", "HNNOMX": "ម៉ោង\u200bស្តង់ដា\u200bនៅ\u200bម៉ិកស៊ិកភាគពាយព្យ", "WITA": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200b\u200bកណ្ដាល", "AKST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាឡាស្កា", "AEST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bកើត", "HKT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bហុងកុង", "HKST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bហុងកុង"},
}
}
diff --git a/km_KH/km_KH.go b/km_KH/km_KH.go
index b16312f4..87673a18 100644
--- a/km_KH/km_KH.go
+++ b/km_KH/km_KH.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"មុន គ.ស.", "គ.ស."},
erasNarrow: []string{"", ""},
erasWide: []string{"មុន\u200bគ្រិស្តសករាជ", "គ្រិស្តសករាជ"},
- timezones: map[string]string{"CHADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bចាថាំ", "SAST": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bត្បូង", "∅∅∅": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាម៉ាសូន", "WAT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bលិច", "WARST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាសង់ទីន\u200b\u200bខាង\u200bលិច", "AST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាត្លង់ទិក", "HEOG": "ម៉ោងរដូវក្តៅនៅហ្គ្រីនលែនខាងលិច", "COST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bកូឡុំប៊ី", "EST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bខាង\u200bកើត\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "UYT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអ៊ុយរូហ្គាយ", "WEZ": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអឺរ៉ុប\u200bខាង\u200bលិច", "HEPM": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅសង់\u200bព្យែរ និង\u200bមីគុយឡុង", "TMT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅតួកម៉េនីស្ថាន", "AKST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាឡាស្កា", "AKDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200b\u200bអាឡាស្កា", "WIB": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200bខាង\u200bលិច", "ACWDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200b\u200bភាគ\u200bខាង\u200bលិច\u200bនៃ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "CLT": "ម៉ោងស្តង់ដារនៅឈីលី", "HNCU": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bគុយបា", "EDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bភាគខាង\u200bកើតនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "HNOG": "ម៉ោងស្តង់ដារនៅហ្គ្រីនលែនខាងលិច", "HKT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bហុងកុង", "MEZ": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអឺរ៉ុប\u200bកណ្ដាល", "CHAST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bចាថាំ", "HEEG": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bហ្គ្រីនលែនខាង\u200bកើត", "GFT": "ម៉ោង\u200bនៅ\u200bឃ្វីយ៉ាន\u200bបារាំង", "HNNOMX": "ម៉ោង\u200bស្តង់ដា\u200bនៅ\u200bម៉ិកស៊ិកភាគពាយព្យ", "SGT": "ម៉ោង\u200bនៅ\u200bសិង្ហបូរី", "SRT": "ម៉ោង\u200bនៅ\u200bសូរីណាម", "MESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200bកណ្ដាល", "HADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bហាវៃ-អាល់ដ្យូសិន", "WIT": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200bខាង\u200bកើត", "WITA": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200b\u200bកណ្ដាល", "JST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bជប៉ុន", "HENOMX": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bម៉ិកស៊ិកភាគពាយព្យ", "GMT": "ម៉ោងនៅគ្រីនវិច", "NZST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bនូវែលសេឡង់", "IST": "ម៉ោង\u200bនៅ\u200bឥណ្ឌា", "CLST": "ម៉ោងរដូវក្តៅនៅឈីលី", "BOT": "ម៉ោង\u200bនៅ\u200bបូលីវី", "HNT": "ម៉ោង\u200b\u200bស្តង់ដារ\u200b\u200bនៅ\u200bញូហ្វោនឡែន", "ARST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាសង់ទីន", "NZDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bនូវែលសេឡង់", "HEPMX": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bប៉ាសីុហ្វិក\u200bម៉ិកស៊ិក", "AWDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bលិច", "LHST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bឡត\u200bហៅ", "MST": "MST", "ChST": "ម៉ោង\u200bនៅ\u200bចាំម៉ូរ៉ូ", "ACDT": "ម៉ោង\u200bពេលថ្ងៃ\u200b\u200b\u200b\u200bនៅ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "PDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200b\u200bភាគ\u200bខាងលិច\u200bនៅ\u200bអាមេរិក\u200bភាគ\u200bខាង\u200bជើង", "AEST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bកើត", "HNEG": "ម៉ោង\u200b\u200b\u200bស្តង់ដារ\u200bនៅ\u200b\u200bហ្គ្រីនលែន\u200bខាង\u200bកើត", "OESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200b\u200bខាង\u200bកើត\u200b", "CDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bភាគ\u200bកណ្ដាល\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "AEDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bកើត", "TMST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bតួកម៉េនីស្ថាន\u200b", "WAST": "ម៉ោង\u200b\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាហ្វ្រិក\u200b\u200b\u200bខាងលិច", "UYST": "ម៉ោង\u200b\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអ៊ុយរូហ្គាយ", "BT": "ម៉ោងនៅប៊ូតាន", "PST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bខាង\u200bលិច\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "AWST": "ម៉ោង\u200b\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bលិច", "JDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅជប៉ុន", "HECU": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bគុយបា", "MDT": "MDT", "MYT": "ម៉ោង\u200bនៅ\u200bម៉ាឡេស៊ី", "VET": "ម៉ោង\u200bនៅ\u200bវ៉េណេស៊ុយអេឡា", "HNPM": "ម៉ោង\u200bស្តង់ដារ\u200bនៅសង់\u200bព្យែរ និង\u200bមីគុយឡុង", "LHDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bឡតហៅ", "ACST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "EAT": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bកើត", "OEZ": "ម៉ោង\u200bស្តង់ដារ\u200b\u200bនៅ\u200bអឺរ៉ុប\u200b\u200bខាង\u200bកើត\u200b", "ECT": "ម៉ោង\u200bនៅ\u200bអេក្វាទ័រ", "HNPMX": "ម៉ោង\u200bស្តង់ដា\u200bនៅ\u200bប៉ាសីុហ្វិក\u200bម៉ិកស៊ិក", "CST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bកណ្ដាល\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "ADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអាត្លង់ទិក", "GYT": "ម៉ោង\u200bនៅ\u200bឃ្វីយ៉ាន", "HAST": "ម៉ោង\u200bស្តង់ដារ\u200b\u200bនៅ\u200bហាវៃ-អាល់ដ្យូសិន", "HAT": "ម៉ោង\u200bពេលថ្ងៃ\u200bនៅ\u200bញូហ្វោនឡែន", "HKST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bហុងកុង", "CAT": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bកណ្ដាល", "WART": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាសង់ទីន\u200b\u200bខាង\u200bលិច", "COT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bកូឡុំប៊ី", "WESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200bខាង\u200bលិច", "ACWST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bភាគ\u200bខាង\u200bលិច\u200bនៃ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "ART": "ម៉ោង\u200b\u200bស្តង់ដារ\u200bនៅ\u200bអាសង់ទីន"},
+ timezones: map[string]string{"COST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bកូឡុំប៊ី", "HENOMX": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bម៉ិកស៊ិកភាគពាយព្យ", "GFT": "ម៉ោង\u200bនៅ\u200bឃ្វីយ៉ាន\u200bបារាំង", "AWST": "ម៉ោង\u200b\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bលិច", "∅∅∅": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាម៉ាសូន", "OEZ": "ម៉ោង\u200bស្តង់ដារ\u200b\u200bនៅ\u200bអឺរ៉ុប\u200b\u200bខាង\u200bកើត\u200b", "JST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bជប៉ុន", "GMT": "ម៉ោងនៅគ្រីនវិច", "HNEG": "ម៉ោង\u200b\u200b\u200bស្តង់ដារ\u200bនៅ\u200b\u200bហ្គ្រីនលែន\u200bខាង\u200bកើត", "LHDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bឡតហៅ", "IST": "ម៉ោង\u200bនៅ\u200bឥណ្ឌា", "MESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200bកណ្ដាល", "HAT": "ម៉ោង\u200bពេលថ្ងៃ\u200bនៅ\u200bញូហ្វោនឡែន", "HEEG": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bហ្គ្រីនលែនខាង\u200bកើត", "ChST": "ម៉ោង\u200bនៅ\u200bចាំម៉ូរ៉ូ", "HEPM": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅសង់\u200bព្យែរ និង\u200bមីគុយឡុង", "CDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bភាគ\u200bកណ្ដាល\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "WIT": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200bខាង\u200bកើត", "MEZ": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអឺរ៉ុប\u200bកណ្ដាល", "TMT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅតួកម៉េនីស្ថាន", "EAT": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bកើត", "HADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bហាវៃ-អាល់ដ្យូសិន", "NZDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bនូវែលសេឡង់", "ACST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "COT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bកូឡុំប៊ី", "ACWDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200b\u200bភាគ\u200bខាង\u200bលិច\u200bនៃ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "VET": "ម៉ោង\u200bនៅ\u200bវ៉េណេស៊ុយអេឡា", "CLST": "ម៉ោងរដូវក្តៅនៅឈីលី", "WEZ": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអឺរ៉ុប\u200bខាង\u200bលិច", "HAST": "ម៉ោង\u200bស្តង់ដារ\u200b\u200bនៅ\u200bហាវៃ-អាល់ដ្យូសិន", "CAT": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bកណ្ដាល", "HEPMX": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bប៉ាសីុហ្វិក\u200bម៉ិកស៊ិក", "CHAST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bចាថាំ", "SGT": "ម៉ោង\u200bនៅ\u200bសិង្ហបូរី", "HKST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bហុងកុង", "HECU": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bគុយបា", "MYT": "ម៉ោង\u200bនៅ\u200bម៉ាឡេស៊ី", "HKT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bហុងកុង", "AKST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាឡាស្កា", "UYST": "ម៉ោង\u200b\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអ៊ុយរូហ្គាយ", "JDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅជប៉ុន", "MDT": "MDT", "WARST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាសង់ទីន\u200b\u200bខាង\u200bលិច", "ART": "ម៉ោង\u200b\u200bស្តង់ដារ\u200bនៅ\u200bអាសង់ទីន", "HNNOMX": "ម៉ោង\u200bស្តង់ដា\u200bនៅ\u200bម៉ិកស៊ិកភាគពាយព្យ", "AEDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bកើត", "UYT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអ៊ុយរូហ្គាយ", "AWDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bលិច", "CLT": "ម៉ោងស្តង់ដារនៅឈីលី", "OESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200b\u200bខាង\u200bកើត\u200b", "LHST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bឡត\u200bហៅ", "HEOG": "ម៉ោងរដូវក្តៅនៅហ្គ្រីនលែនខាងលិច", "WAST": "ម៉ោង\u200b\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាហ្វ្រិក\u200b\u200b\u200bខាងលិច", "ADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអាត្លង់ទិក", "WESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200bខាង\u200bលិច", "WART": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាសង់ទីន\u200b\u200bខាង\u200bលិច", "EST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bខាង\u200bកើត\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "SRT": "ម៉ោង\u200bនៅ\u200bសូរីណាម", "ECT": "ម៉ោង\u200bនៅ\u200bអេក្វាទ័រ", "NZST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bនូវែលសេឡង់", "PDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200b\u200bភាគ\u200bខាងលិច\u200bនៅ\u200bអាមេរិក\u200bភាគ\u200bខាង\u200bជើង", "TMST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bតួកម៉េនីស្ថាន\u200b", "WAT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bលិច", "BOT": "ម៉ោង\u200bនៅ\u200bបូលីវី", "PST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bខាង\u200bលិច\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "BT": "ម៉ោងនៅប៊ូតាន", "WITA": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200b\u200bកណ្ដាល", "AEST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bកើត", "GYT": "ម៉ោង\u200bនៅ\u200bឃ្វីយ៉ាន", "CST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bកណ្ដាល\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "ACWST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bភាគ\u200bខាង\u200bលិច\u200bនៃ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "MST": "MST", "ACDT": "ម៉ោង\u200bពេលថ្ងៃ\u200b\u200b\u200b\u200bនៅ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "HNPM": "ម៉ោង\u200bស្តង់ដារ\u200bនៅសង់\u200bព្យែរ និង\u200bមីគុយឡុង", "HNPMX": "ម៉ោង\u200bស្តង់ដា\u200bនៅ\u200bប៉ាសីុហ្វិក\u200bម៉ិកស៊ិក", "WIB": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200bខាង\u200bលិច", "CHADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bចាថាំ", "AST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាត្លង់ទិក", "EDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bភាគខាង\u200bកើតនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "HNT": "ម៉ោង\u200b\u200bស្តង់ដារ\u200b\u200bនៅ\u200bញូហ្វោនឡែន", "AKDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200b\u200bអាឡាស្កា", "SAST": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bត្បូង", "HNCU": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bគុយបា", "HNOG": "ម៉ោងស្តង់ដារនៅហ្គ្រីនលែនខាងលិច", "ARST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាសង់ទីន"},
}
}
diff --git a/kn/kn.go b/kn/kn.go
index 2b5ac079..49cf0275 100644
--- a/kn/kn.go
+++ b/kn/kn.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ಕ್ರಿ.ಪೂ", "ಕ್ರಿ.ಶ"},
erasNarrow: []string{"", ""},
erasWide: []string{"ಕ್ರಿಸ್ತ ಪೂರ್ವ", "ಕ್ರಿಸ್ತ ಶಕ"},
- timezones: map[string]string{"MDT": "ಮಕಾವ್ ಬೇಸಿಗೆ ಸಮಯ", "AKST": "ಅಲಸ್ಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "NZST": "ನ್ಯೂಜಿಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "NZDT": "ನ್ಯೂಜಿಲ್ಯಾಂಡ್ ಹಗಲು ಸಮಯ", "EST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNNOMX": "ವಾಯವ್ಯ ಮೆಕ್ಸಿಕೊ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNT": "ನ್ಯೂಫೌಂಡ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNOG": "ಪಶ್ಚಿಮ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "AWDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪಶ್ಚಿಮ ಹಗಲು ಸಮಯ", "HNPM": "ಸೇಂಟ್ ಪಿಯರ್ ಮತ್ತು ಮಿಕ್ವೆಲನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "COT": "ಕೊಲಂಬಿಯಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "PDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೆಸಿಫಿಕ್ ದಿನದ ಸಮಯ", "WESZ": "ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "WITA": "ಮಧ್ಯ ಇಂಡೋನೇಷಿಯಾ ಸಮಯ", "WAST": "ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾ ಬೇಸಿಗೆ ಸಮಯ", "CAT": "ಮಧ್ಯ ಆಫ್ರಿಕಾ ಸಮಯ", "HNPMX": "ಮೆಕ್ಸಿಕನ್ ಪೆಸಿಫಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "CDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರೀಯ ದಿನದ ಸಮಯ", "HAT": "ನ್ಯೂಫೌಂಡ್\u200cಲ್ಯಾಂಡ್ ದಿನದ ಸಮಯ", "ART": "ಅರ್ಜೆಂಟೀನಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "AEST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪೂರ್ವ ಪ್ರಮಾಣಿತ ಸಮಯ", "OEZ": "ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "CST": "ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರ ಪ್ರಮಾಣಿತ ಸಮಯ", "UYT": "ಉರುಗ್ವೇ ಪ್ರಮಾಣಿತ ಸಮಯ", "UYST": "ಉರುಗ್ವೇ ಬೇಸಿಗೆ ಸಮಯ", "WEZ": "ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "AWST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪಶ್ಚಿಮ ಪ್ರಮಾಣಿತ ಸಮಯ", "GFT": "ಫ್ರೆಂಚ್ ಗಯಾನಾ ಸಮಯ", "OESZ": "ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "HAST": "ಹವಾಯಿ-ಅಲ್ಯುಟಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACWST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪಶ್ಚಿಮ ಪ್ರಮಾಣಿತ ಸಮಯ", "CHADT": "ಚಥಾಮ್ ಹಗಲು ಸಮಯ", "COST": "ಕೊಲಂಬಿಯಾ ಬೇಸಿಗೆ ಸಮಯ", "IST": "ಭಾರತೀಯ ಪ್ರಮಾಣಿತ ಸಮಯ", "CLT": "ಚಿಲಿ ಪ್ರಮಾಣಿತ ಸಮಯ", "CLST": "ಚಿಲಿ ಬೇಸಿಗೆ ಸಮಯ", "TMST": "ತುರ್ಕ್\u200cಮೇನಿಸ್ತಾನ್ ಬೇಸಿಗೆ ಸಮಯ", "ChST": "ಚಮೋರೋ ಪ್ರಮಾಣಿತ ಸಮಯ", "BOT": "ಬೊಲಿವಿಯಾ ಸಮಯ", "HNCU": "ಕ್ಯೂಬಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "HENOMX": "ವಾಯವ್ಯ ಮೆಕ್ಸಿಕೊ ಹಗಲು ಸಮಯ", "HEPMX": "ಮೆಕ್ಸಿಕನ್ ಪೆಸಿಫಿಕ್ ಹಗಲು ಸಮಯ", "GYT": "ಗಯಾನಾ ಸಮಯ", "HADT": "ಹವಾಯಿ-ಅಲ್ಯುಟಿಯನ್ ಹಗಲು ಸಮಯ", "ARST": "ಅರ್ಜೆಂಟಿನಾ ಬೇಸಿಗೆ ಸಮಯ", "∅∅∅": "ಪೆರು ಬೇಸಿಗೆ ಸಮಯ", "EDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ದಿನದ ಸಮಯ", "MYT": "ಮಲೇಷಿಯಾ ಸಮಯ", "SRT": "ಸುರಿನೇಮ್ ಸಮಯ", "LHDT": "ಲಾರ್ಡ್ ಹೋವ್ ಬೆಳಗಿನ ಸಮಯ", "HEEG": "ಪೂರ್ವ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಬೇಸಿಗೆ ಸಮಯ", "HECU": "ಕ್ಯೂಬಾ ದಿನದ ಸಮಯ", "WARST": "ಪಶ್ಚಿಮ ಅರ್ಜೆಂಟೀನಾ ಬೇಸಿಗೆ ಸಮಯ", "BT": "ಭೂತಾನ್ ಸಮಯ", "ECT": "ಈಕ್ವೆಡಾರ್ ಸಮಯ", "AST": "ಅಟ್ಲಾಂಟಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "AKDT": "\u200cಅಲಾಸ್ಕಾ ಹಗಲು ಸಮಯ", "WIT": "ಪೂರ್ವ ಇಂಡೋನೇಷಿಯಾ ಸಮಯ", "HEOG": "ಪಶ್ಚಿಮ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಬೇಸಿಗೆ ಸಮಯ", "JDT": "ಜಪಾನ್ ಹಗಲು ಸಮಯ", "TMT": "ತುರ್ಕ್\u200cಮೇನಿಸ್ತಾನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪ್ರಮಾಣಿತ ಸಮಯ", "MESZ": "ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "LHST": "ಲಾರ್ಡ್ ಹೋವ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACWDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪಶ್ಚಿಮ ಹಗಲು ಸಮಯ", "VET": "ವೆನಿಜುವೆಲಾ ಸಮಯ", "AEDT": "ಪೂರ್ವ ಆಸ್ಟ್ರೇಲಿಯಾದ ಹಗಲು ಸಮಯ", "WAT": "ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "MST": "ಮಕಾವ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "PST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೆಸಿಫಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "SAST": "ದಕ್ಷಿಣ ಆಫ್ರಿಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNEG": "ಪೂರ್ವ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "WART": "ಪಶ್ಚಿಮ ಅರ್ಜೆಂಟೀನಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "WIB": "ಪಶ್ಚಿಮ ಇಂಡೋನೇಷಿಯ ಸಮಯ", "HKST": "ಹಾಂಗ್ ಕಾಂಗ್ ಬೇಸಿಗೆ ಸಮಯ", "HEPM": "ಸೇಂಟ್ ಪಿಯರ್ ಮತ್ತು ಮಿಕ್ವೆಲನ್ ಹಗಲು ಸಮಯ", "MEZ": "ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "JST": "ಜಪಾನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "EAT": "ಪೂರ್ವ ಆಫ್ರಿಕಾ ಸಮಯ", "GMT": "ಗ್ರೀನ್\u200cವಿಚ್ ಸರಾಸರಿ ಕಾಲಮಾನ", "SGT": "ಸಿಂಗಾಪುರ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ADT": "ಅಟ್ಲಾಂಟಿಕ್ ದಿನದ ಸಮಯ", "HKT": "ಹಾಂಗ್ ಕಾಂಗ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "CHAST": "ಚಥಾಮ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಹಗಲು ಸಮಯ"},
+ timezones: map[string]string{"∅∅∅": "ಅಮೆಜಾನ್ ಬೇಸಿಗೆ ಸಮಯ", "MEZ": "ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಹಗಲು ಸಮಯ", "AEDT": "ಪೂರ್ವ ಆಸ್ಟ್ರೇಲಿಯಾದ ಹಗಲು ಸಮಯ", "ACWST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪಶ್ಚಿಮ ಪ್ರಮಾಣಿತ ಸಮಯ", "HKST": "ಹಾಂಗ್ ಕಾಂಗ್ ಬೇಸಿಗೆ ಸಮಯ", "HNNOMX": "ವಾಯವ್ಯ ಮೆಕ್ಸಿಕೊ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNT": "ನ್ಯೂಫೌಂಡ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "SGT": "ಸಿಂಗಾಪುರ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "PDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೆಸಿಫಿಕ್ ದಿನದ ಸಮಯ", "WART": "ಪಶ್ಚಿಮ ಅರ್ಜೆಂಟೀನಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "GFT": "ಫ್ರೆಂಚ್ ಗಯಾನಾ ಸಮಯ", "GYT": "ಗಯಾನಾ ಸಮಯ", "HECU": "ಕ್ಯೂಬಾ ದಿನದ ಸಮಯ", "BOT": "ಬೊಲಿವಿಯಾ ಸಮಯ", "WEZ": "ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNOG": "ಪಶ್ಚಿಮ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ARST": "ಅರ್ಜೆಂಟಿನಾ ಬೇಸಿಗೆ ಸಮಯ", "ACST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪ್ರಮಾಣಿತ ಸಮಯ", "TMST": "ತುರ್ಕ್\u200cಮೇನಿಸ್ತಾನ್ ಬೇಸಿಗೆ ಸಮಯ", "ART": "ಅರ್ಜೆಂಟೀನಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "HENOMX": "ವಾಯವ್ಯ ಮೆಕ್ಸಿಕೊ ಹಗಲು ಸಮಯ", "SAST": "ದಕ್ಷಿಣ ಆಫ್ರಿಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "IST": "ಭಾರತೀಯ ಪ್ರಮಾಣಿತ ಸಮಯ", "OEZ": "ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HEOG": "ಪಶ್ಚಿಮ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಬೇಸಿಗೆ ಸಮಯ", "ADT": "ಅಟ್ಲಾಂಟಿಕ್ ದಿನದ ಸಮಯ", "AWDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪಶ್ಚಿಮ ಹಗಲು ಸಮಯ", "HEPMX": "ಮೆಕ್ಸಿಕನ್ ಪೆಸಿಫಿಕ್ ಹಗಲು ಸಮಯ", "EAT": "ಪೂರ್ವ ಆಫ್ರಿಕಾ ಸಮಯ", "CST": "ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರ ಪ್ರಮಾಣಿತ ಸಮಯ", "HAST": "ಹವಾಯಿ-ಅಲ್ಯುಟಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "AST": "ಅಟ್ಲಾಂಟಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HEEG": "ಪೂರ್ವ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಬೇಸಿಗೆ ಸಮಯ", "CHAST": "ಚಥಾಮ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNEG": "ಪೂರ್ವ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "PST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೆಸಿಫಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACWDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪಶ್ಚಿಮ ಹಗಲು ಸಮಯ", "CAT": "ಮಧ್ಯ ಆಫ್ರಿಕಾ ಸಮಯ", "MDT": "ಮಕಾವ್ ಬೇಸಿಗೆ ಸಮಯ", "WAST": "ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾ ಬೇಸಿಗೆ ಸಮಯ", "JST": "ಜಪಾನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HKT": "ಹಾಂಗ್ ಕಾಂಗ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HAT": "ನ್ಯೂಫೌಂಡ್\u200cಲ್ಯಾಂಡ್ ದಿನದ ಸಮಯ", "EDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ದಿನದ ಸಮಯ", "BT": "ಭೂತಾನ್ ಸಮಯ", "WITA": "ಮಧ್ಯ ಇಂಡೋನೇಷಿಯಾ ಸಮಯ", "AKST": "ಅಲಸ್ಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "NZDT": "ನ್ಯೂಜಿಲ್ಯಾಂಡ್ ಹಗಲು ಸಮಯ", "VET": "ವೆನಿಜುವೆಲಾ ಸಮಯ", "JDT": "ಜಪಾನ್ ಹಗಲು ಸಮಯ", "MYT": "ಮಲೇಷಿಯಾ ಸಮಯ", "ChST": "ಚಮೋರೋ ಪ್ರಮಾಣಿತ ಸಮಯ", "WARST": "ಪಶ್ಚಿಮ ಅರ್ಜೆಂಟೀನಾ ಬೇಸಿಗೆ ಸಮಯ", "MST": "ಮಕಾವ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNPM": "ಸೇಂಟ್ ಪಿಯರ್ ಮತ್ತು ಮಿಕ್ವೆಲನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "GMT": "ಗ್ರೀನ್\u200cವಿಚ್ ಸರಾಸರಿ ಕಾಲಮಾನ", "EST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಪ್ರಮಾಣಿತ ಸಮಯ", "WAT": "ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNCU": "ಕ್ಯೂಬಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "LHDT": "ಲಾರ್ಡ್ ಹೋವ್ ಬೆಳಗಿನ ಸಮಯ", "HNPMX": "ಮೆಕ್ಸಿಕನ್ ಪೆಸಿಫಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "WIB": "ಪಶ್ಚಿಮ ಇಂಡೋನೇಷಿಯ ಸಮಯ", "CHADT": "ಚಥಾಮ್ ಹಗಲು ಸಮಯ", "WESZ": "ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "CLST": "ಚಿಲಿ ಬೇಸಿಗೆ ಸಮಯ", "COT": "ಕೊಲಂಬಿಯಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "HEPM": "ಸೇಂಟ್ ಪಿಯರ್ ಮತ್ತು ಮಿಕ್ವೆಲನ್ ಹಗಲು ಸಮಯ", "HADT": "ಹವಾಯಿ-ಅಲ್ಯುಟಿಯನ್ ಹಗಲು ಸಮಯ", "LHST": "ಲಾರ್ಡ್ ಹೋವ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "SRT": "ಸುರಿನೇಮ್ ಸಮಯ", "ECT": "ಈಕ್ವೆಡಾರ್ ಸಮಯ", "MESZ": "ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "AEST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪೂರ್ವ ಪ್ರಮಾಣಿತ ಸಮಯ", "AKDT": "\u200cಅಲಾಸ್ಕಾ ಹಗಲು ಸಮಯ", "UYT": "ಉರುಗ್ವೇ ಪ್ರಮಾಣಿತ ಸಮಯ", "AWST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪಶ್ಚಿಮ ಪ್ರಮಾಣಿತ ಸಮಯ", "TMT": "ತುರ್ಕ್\u200cಮೇನಿಸ್ತಾನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "UYST": "ಉರುಗ್ವೇ ಬೇಸಿಗೆ ಸಮಯ", "WIT": "ಪೂರ್ವ ಇಂಡೋನೇಷಿಯಾ ಸಮಯ", "CDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರೀಯ ದಿನದ ಸಮಯ", "NZST": "ನ್ಯೂಜಿಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "OESZ": "ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "CLT": "ಚಿಲಿ ಪ್ರಮಾಣಿತ ಸಮಯ", "COST": "ಕೊಲಂಬಿಯಾ ಬೇಸಿಗೆ ಸಮಯ"},
}
}
diff --git a/kn_IN/kn_IN.go b/kn_IN/kn_IN.go
index 41dd4faf..ec9ed689 100644
--- a/kn_IN/kn_IN.go
+++ b/kn_IN/kn_IN.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ಕ್ರಿ.ಪೂ", "ಕ್ರಿ.ಶ"},
erasNarrow: []string{"", ""},
erasWide: []string{"ಕ್ರಿಸ್ತ ಪೂರ್ವ", "ಕ್ರಿಸ್ತ ಶಕ"},
- timezones: map[string]string{"HNT": "ನ್ಯೂಫೌಂಡ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "MESZ": "ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "CLST": "ಚಿಲಿ ಬೇಸಿಗೆ ಸಮಯ", "HNEG": "ಪೂರ್ವ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "CAT": "ಮಧ್ಯ ಆಫ್ರಿಕಾ ಸಮಯ", "GMT": "ಗ್ರೀನ್\u200cವಿಚ್ ಸರಾಸರಿ ಕಾಲಮಾನ", "SGT": "ಸಿಂಗಾಪುರ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "WIB": "ಪಶ್ಚಿಮ ಇಂಡೋನೇಷಿಯ ಸಮಯ", "ADT": "ಅಟ್ಲಾಂಟಿಕ್ ದಿನದ ಸಮಯ", "UYST": "ಉರುಗ್ವೇ ಬೇಸಿಗೆ ಸಮಯ", "CDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರೀಯ ದಿನದ ಸಮಯ", "HADT": "ಹವಾಯಿ-ಅಲ್ಯುಟಿಯನ್ ಹಗಲು ಸಮಯ", "ARST": "ಅರ್ಜೆಂಟಿನಾ ಬೇಸಿಗೆ ಸಮಯ", "HKST": "ಹಾಂಗ್ ಕಾಂಗ್ ಬೇಸಿಗೆ ಸಮಯ", "HEEG": "ಪೂರ್ವ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಬೇಸಿಗೆ ಸಮಯ", "OESZ": "ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "HAST": "ಹವಾಯಿ-ಅಲ್ಯುಟಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNPM": "ಸೇಂಟ್ ಪಿಯರ್ ಮತ್ತು ಮಿಕ್ವೆಲನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNNOMX": "ವಾಯವ್ಯ ಮೆಕ್ಸಿಕೊ ಪ್ರಮಾಣಿತ ಸಮಯ", "EDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ದಿನದ ಸಮಯ", "HNPMX": "ಮೆಕ್ಸಿಕನ್ ಪೆಸಿಫಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "AKDT": "\u200cಅಲಾಸ್ಕಾ ಹಗಲು ಸಮಯ", "SRT": "ಸುರಿನೇಮ್ ಸಮಯ", "ECT": "ಈಕ್ವೆಡಾರ್ ಸಮಯ", "UYT": "ಉರುಗ್ವೇ ಪ್ರಮಾಣಿತ ಸಮಯ", "WIT": "ಪೂರ್ವ ಇಂಡೋನೇಷಿಯಾ ಸಮಯ", "AEST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪೂರ್ವ ಪ್ರಮಾಣಿತ ಸಮಯ", "BOT": "ಬೊಲಿವಿಯಾ ಸಮಯ", "EST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಪ್ರಮಾಣಿತ ಸಮಯ", "ART": "ಅರ್ಜೆಂಟೀನಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACWDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪಶ್ಚಿಮ ಹಗಲು ಸಮಯ", "HKT": "ಹಾಂಗ್ ಕಾಂಗ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪ್ರಮಾಣಿತ ಸಮಯ", "WAT": "ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACWST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪಶ್ಚಿಮ ಪ್ರಮಾಣಿತ ಸಮಯ", "CHADT": "ಚಥಾಮ್ ಹಗಲು ಸಮಯ", "∅∅∅": "ಅಮೆಜಾನ್ ಬೇಸಿಗೆ ಸಮಯ", "TMT": "ತುರ್ಕ್\u200cಮೇನಿಸ್ತಾನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "OEZ": "ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "GYT": "ಗಯಾನಾ ಸಮಯ", "HEOG": "ಪಶ್ಚಿಮ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಬೇಸಿಗೆ ಸಮಯ", "LHDT": "ಲಾರ್ಡ್ ಹೋವ್ ಬೆಳಗಿನ ಸಮಯ", "JST": "ಜಪಾನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "AST": "ಅಟ್ಲಾಂಟಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNOG": "ಪಶ್ಚಿಮ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HEPM": "ಸೇಂಟ್ ಪಿಯರ್ ಮತ್ತು ಮಿಕ್ವೆಲನ್ ಹಗಲು ಸಮಯ", "TMST": "ತುರ್ಕ್\u200cಮೇನಿಸ್ತಾನ್ ಬೇಸಿಗೆ ಸಮಯ", "BT": "ಭೂತಾನ್ ಸಮಯ", "PDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೆಸಿಫಿಕ್ ದಿನದ ಸಮಯ", "HAT": "ನ್ಯೂಫೌಂಡ್\u200cಲ್ಯಾಂಡ್ ದಿನದ ಸಮಯ", "AWDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪಶ್ಚಿಮ ಹಗಲು ಸಮಯ", "JDT": "ಜಪಾನ್ ಹಗಲು ಸಮಯ", "WAST": "ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾ ಬೇಸಿಗೆ ಸಮಯ", "COST": "ಕೊಲಂಬಿಯಾ ಬೇಸಿಗೆ ಸಮಯ", "HENOMX": "ವಾಯವ್ಯ ಮೆಕ್ಸಿಕೊ ಹಗಲು ಸಮಯ", "MST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪರ್ವತ ಪ್ರಮಾಣಿತ ಸಮಯ", "MYT": "ಮಲೇಷಿಯಾ ಸಮಯ", "CST": "ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರ ಪ್ರಮಾಣಿತ ಸಮಯ", "AEDT": "ಪೂರ್ವ ಆಸ್ಟ್ರೇಲಿಯಾದ ಹಗಲು ಸಮಯ", "NZDT": "ನ್ಯೂಜಿಲ್ಯಾಂಡ್ ಹಗಲು ಸಮಯ", "ACDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಹಗಲು ಸಮಯ", "EAT": "ಪೂರ್ವ ಆಫ್ರಿಕಾ ಸಮಯ", "HEPMX": "ಮೆಕ್ಸಿಕನ್ ಪೆಸಿಫಿಕ್ ಹಗಲು ಸಮಯ", "VET": "ವೆನಿಜುವೆಲಾ ಸಮಯ", "LHST": "ಲಾರ್ಡ್ ಹೋವ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "IST": "ಭಾರತೀಯ ಪ್ರಮಾಣಿತ ಸಮಯ", "WARST": "ಪಶ್ಚಿಮ ಅರ್ಜೆಂಟೀನಾ ಬೇಸಿಗೆ ಸಮಯ", "AKST": "ಅಲಸ್ಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "WEZ": "ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "CHAST": "ಚಥಾಮ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "AWST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪಶ್ಚಿಮ ಪ್ರಮಾಣಿತ ಸಮಯ", "PST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೆಸಿಫಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "NZST": "ನ್ಯೂಜಿಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "CLT": "ಚಿಲಿ ಪ್ರಮಾಣಿತ ಸಮಯ", "ChST": "ಚಮೋರೋ ಪ್ರಮಾಣಿತ ಸಮಯ", "COT": "ಕೊಲಂಬಿಯಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "MDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪರ್ವತ ದಿನದ ಸಮಯ", "MEZ": "ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "GFT": "ಫ್ರೆಂಚ್ ಗಯಾನಾ ಸಮಯ", "HNCU": "ಕ್ಯೂಬಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "WESZ": "ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "SAST": "ದಕ್ಷಿಣ ಆಫ್ರಿಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "WART": "ಪಶ್ಚಿಮ ಅರ್ಜೆಂಟೀನಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "HECU": "ಕ್ಯೂಬಾ ದಿನದ ಸಮಯ", "WITA": "ಮಧ್ಯ ಇಂಡೋನೇಷಿಯಾ ಸಮಯ"},
+ timezones: map[string]string{"BOT": "ಬೊಲಿವಿಯಾ ಸಮಯ", "COST": "ಕೊಲಂಬಿಯಾ ಬೇಸಿಗೆ ಸಮಯ", "HNNOMX": "ವಾಯವ್ಯ ಮೆಕ್ಸಿಕೊ ಪ್ರಮಾಣಿತ ಸಮಯ", "CHAST": "ಚಥಾಮ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "∅∅∅": "ಏಕರ್ ಬೇಸಿಗೆ ಸಮಯ", "AKST": "ಅಲಸ್ಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "UYST": "ಉರುಗ್ವೇ ಬೇಸಿಗೆ ಸಮಯ", "HNPM": "ಸೇಂಟ್ ಪಿಯರ್ ಮತ್ತು ಮಿಕ್ವೆಲನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNPMX": "ಮೆಕ್ಸಿಕನ್ ಪೆಸಿಫಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "SRT": "ಸುರಿನೇಮ್ ಸಮಯ", "AWDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪಶ್ಚಿಮ ಹಗಲು ಸಮಯ", "HAT": "ನ್ಯೂಫೌಂಡ್\u200cಲ್ಯಾಂಡ್ ದಿನದ ಸಮಯ", "TMST": "ತುರ್ಕ್\u200cಮೇನಿಸ್ತಾನ್ ಬೇಸಿಗೆ ಸಮಯ", "WAT": "ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNOG": "ಪಶ್ಚಿಮ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "CST": "ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರ ಪ್ರಮಾಣಿತ ಸಮಯ", "HECU": "ಕ್ಯೂಬಾ ದಿನದ ಸಮಯ", "WIB": "ಪಶ್ಚಿಮ ಇಂಡೋನೇಷಿಯ ಸಮಯ", "CAT": "ಮಧ್ಯ ಆಫ್ರಿಕಾ ಸಮಯ", "NZDT": "ನ್ಯೂಜಿಲ್ಯಾಂಡ್ ಹಗಲು ಸಮಯ", "AST": "ಅಟ್ಲಾಂಟಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "UYT": "ಉರುಗ್ವೇ ಪ್ರಮಾಣಿತ ಸಮಯ", "MYT": "ಮಲೇಷಿಯಾ ಸಮಯ", "AEST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪೂರ್ವ ಪ್ರಮಾಣಿತ ಸಮಯ", "SAST": "ದಕ್ಷಿಣ ಆಫ್ರಿಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNCU": "ಕ್ಯೂಬಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACWDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪಶ್ಚಿಮ ಹಗಲು ಸಮಯ", "MEZ": "ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "EST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಪ್ರಮಾಣಿತ ಸಮಯ", "HEEG": "ಪೂರ್ವ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಬೇಸಿಗೆ ಸಮಯ", "GYT": "ಗಯಾನಾ ಸಮಯ", "HAST": "ಹವಾಯಿ-ಅಲ್ಯುಟಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ECT": "ಈಕ್ವೆಡಾರ್ ಸಮಯ", "ADT": "ಅಟ್ಲಾಂಟಿಕ್ ದಿನದ ಸಮಯ", "OESZ": "ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "WEZ": "ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "CLT": "ಚಿಲಿ ಪ್ರಮಾಣಿತ ಸಮಯ", "LHST": "ಲಾರ್ಡ್ ಹೋವ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಹಗಲು ಸಮಯ", "WESZ": "ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "EDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ದಿನದ ಸಮಯ", "OEZ": "ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "LHDT": "ಲಾರ್ಡ್ ಹೋವ್ ಬೆಳಗಿನ ಸಮಯ", "HEPMX": "ಮೆಕ್ಸಿಕನ್ ಪೆಸಿಫಿಕ್ ಹಗಲು ಸಮಯ", "CHADT": "ಚಥಾಮ್ ಹಗಲು ಸಮಯ", "SGT": "ಸಿಂಗಾಪುರ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HADT": "ಹವಾಯಿ-ಅಲ್ಯುಟಿಯನ್ ಹಗಲು ಸಮಯ", "JDT": "ಜಪಾನ್ ಹಗಲು ಸಮಯ", "BT": "ಭೂತಾನ್ ಸಮಯ", "WART": "ಪಶ್ಚಿಮ ಅರ್ಜೆಂಟೀನಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "TMT": "ತುರ್ಕ್\u200cಮೇನಿಸ್ತಾನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "WAST": "ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾ ಬೇಸಿಗೆ ಸಮಯ", "COT": "ಕೊಲಂಬಿಯಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "MESZ": "ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "MDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪರ್ವತ ದಿನದ ಸಮಯ", "HEPM": "ಸೇಂಟ್ ಪಿಯರ್ ಮತ್ತು ಮಿಕ್ವೆಲನ್ ಹಗಲು ಸಮಯ", "CDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರೀಯ ದಿನದ ಸಮಯ", "WIT": "ಪೂರ್ವ ಇಂಡೋನೇಷಿಯಾ ಸಮಯ", "PDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೆಸಿಫಿಕ್ ದಿನದ ಸಮಯ", "IST": "ಭಾರತೀಯ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNEG": "ಪೂರ್ವ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "AEDT": "ಪೂರ್ವ ಆಸ್ಟ್ರೇಲಿಯಾದ ಹಗಲು ಸಮಯ", "WITA": "ಮಧ್ಯ ಇಂಡೋನೇಷಿಯಾ ಸಮಯ", "NZST": "ನ್ಯೂಜಿಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "GMT": "ಗ್ರೀನ್\u200cವಿಚ್ ಸರಾಸರಿ ಕಾಲಮಾನ", "CLST": "ಚಿಲಿ ಬೇಸಿಗೆ ಸಮಯ", "HEOG": "ಪಶ್ಚಿಮ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಬೇಸಿಗೆ ಸಮಯ", "HKST": "ಹಾಂಗ್ ಕಾಂಗ್ ಬೇಸಿಗೆ ಸಮಯ", "HNT": "ನ್ಯೂಫೌಂಡ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "PST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೆಸಿಫಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACWST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪಶ್ಚಿಮ ಪ್ರಮಾಣಿತ ಸಮಯ", "VET": "ವೆನಿಜುವೆಲಾ ಸಮಯ", "WARST": "ಪಶ್ಚಿಮ ಅರ್ಜೆಂಟೀನಾ ಬೇಸಿಗೆ ಸಮಯ", "AKDT": "\u200cಅಲಾಸ್ಕಾ ಹಗಲು ಸಮಯ", "GFT": "ಫ್ರೆಂಚ್ ಗಯಾನಾ ಸಮಯ", "ChST": "ಚಮೋರೋ ಪ್ರಮಾಣಿತ ಸಮಯ", "EAT": "ಪೂರ್ವ ಆಫ್ರಿಕಾ ಸಮಯ", "HENOMX": "ವಾಯವ್ಯ ಮೆಕ್ಸಿಕೊ ಹಗಲು ಸಮಯ", "MST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪರ್ವತ ಪ್ರಮಾಣಿತ ಸಮಯ", "ARST": "ಅರ್ಜೆಂಟಿನಾ ಬೇಸಿಗೆ ಸಮಯ", "HKT": "ಹಾಂಗ್ ಕಾಂಗ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "AWST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪಶ್ಚಿಮ ಪ್ರಮಾಣಿತ ಸಮಯ", "ART": "ಅರ್ಜೆಂಟೀನಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪ್ರಮಾಣಿತ ಸಮಯ", "JST": "ಜಪಾನ್ ಪ್ರಮಾಣಿತ ಸಮಯ"},
}
}
diff --git a/ko/ko.go b/ko/ko.go
index ff6969c0..5b957bf8 100644
--- a/ko/ko.go
+++ b/ko/ko.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"기원전", "서기"},
- timezones: map[string]string{"HADT": "하와이 알류샨 하계 표준시", "WEZ": "서유럽 표준시", "AWST": "오스트레일리아 서부 표준시", "LHDT": "로드 하우 하계 표준시", "NZDT": "뉴질랜드 하계 표준시", "WART": "아르헨티나 서부 표준시", "WARST": "아르헨티나 서부 하계 표준시", "UYST": "우루과이 하계 표준시", "AEST": "오스트레일리아 동부 표준시", "JST": "일본 표준시", "MYT": "말레이시아 시간", "VET": "베네수엘라 시간", "ARST": "아르헨티나 하계 표준시", "CLST": "칠레 하계 표준시", "HEEG": "그린란드 동부 하계 표준시", "TMT": "투르크메니스탄 표준시", "UYT": "우루과이 표준시", "AWDT": "오스트레일리아 서부 하계 표준시", "MESZ": "중부 유럽 하계 표준시", "BOT": "볼리비아 시간", "EAT": "동아프리카 시간", "WITA": "중부 인도네시아 시간", "IST": "인도 표준시", "HNT": "뉴펀들랜드 표준시", "LHST": "로드 하우 표준시", "CAT": "중앙아프리카 시간", "HECU": "쿠바 하계 표준시", "MST": "마카오 표준 시간", "CLT": "칠레 표준시", "HNEG": "그린란드 동부 표준시", "ChST": "차모로 시간", "∅∅∅": "페루 하계 표준시", "WESZ": "서유럽 하계 표준시", "PDT": "미 태평양 하계 표준시", "HKT": "홍콩 표준시", "ACDT": "오스트레일리아 중부 하계 표준시", "GMT": "그리니치 표준시", "HNOG": "그린란드 서부 표준시", "EDT": "미 동부 하계 표준시", "MEZ": "중부 유럽 표준시", "ACST": "오스트레일리아 중부 표준시", "COST": "콜롬비아 하계 표준시", "HENOMX": "멕시코 북서부 하계 표준시", "OEZ": "동유럽 표준시", "COT": "콜롬비아 표준시", "ART": "아르헨티나 표준시", "PST": "미 태평양 표준시", "SAST": "남아프리카 시간", "ECT": "에콰도르 시간", "HNNOMX": "멕시코 북서부 표준시", "WIT": "동부 인도네시아 시간", "CDT": "미 중부 하계 표준시", "GYT": "가이아나 시간", "GFT": "프랑스령 가이아나 시간", "TMST": "투르크메니스탄 하계 표준시", "MDT": "마카오 하계 표준시", "HNPMX": "멕시코 태평양 표준시", "AKDT": "알래스카 하계 표준시", "CHAST": "채텀 표준시", "JDT": "일본 하계 표준시", "HEPMX": "멕시코 태평양 하계 표준시", "AST": "대서양 표준시", "NZST": "뉴질랜드 표준시", "HKST": "홍콩 하계 표준시", "AEDT": "오스트레일리아 동부 하계 표준시", "HEPM": "세인트피에르 미클롱 하계 표준시", "WAST": "서아프리카 하계 표준시", "ACWST": "오스트레일리아 중서부 표준시", "HAT": "뉴펀들랜드 하계 표준시", "HEOG": "그린란드 서부 하계 표준시", "WAT": "서아프리카 표준시", "HNCU": "쿠바 표준시", "ADT": "미 대서양 하계 표준시", "CST": "미 중부 표준시", "BT": "부탄 시간", "ACWDT": "오스트레일리아 중서부 하계 표준시", "CHADT": "채텀 하계 표준시", "OESZ": "동유럽 하계 표준시", "SGT": "싱가포르 표준시", "AKST": "알래스카 표준시", "SRT": "수리남 시간", "HNPM": "세인트피에르 미클롱 표준시", "EST": "미 동부 표준시", "WIB": "서부 인도네시아 시간", "HAST": "하와이 알류샨 표준시"},
+ timezones: map[string]string{"OEZ": "동유럽 표준시", "OESZ": "동유럽 하계 표준시", "HNEG": "그린란드 동부 표준시", "ACWST": "오스트레일리아 중서부 표준시", "ACWDT": "오스트레일리아 중서부 하계 표준시", "MESZ": "중부 유럽 하계 표준시", "GMT": "그리니치 표준시", "CLT": "칠레 표준시", "HNPM": "세인트피에르 미클롱 표준시", "LHST": "로드 하우 표준시", "WAT": "서아프리카 표준시", "HENOMX": "멕시코 북서부 하계 표준시", "AEDT": "오스트레일리아 동부 하계 표준시", "HECU": "쿠바 하계 표준시", "ARST": "아르헨티나 하계 표준시", "COT": "콜롬비아 표준시", "WITA": "중부 인도네시아 시간", "ECT": "에콰도르 시간", "HEOG": "그린란드 서부 하계 표준시", "ADT": "미 대서양 하계 표준시", "MDT": "마카오 하계 표준시", "SGT": "싱가포르 표준시", "HNT": "뉴펀들랜드 표준시", "HEPMX": "멕시코 태평양 하계 표준시", "GYT": "가이아나 시간", "JDT": "일본 하계 표준시", "TMT": "투르크메니스탄 표준시", "WAST": "서아프리카 하계 표준시", "ChST": "차모로 시간", "HEPM": "세인트피에르 미클롱 하계 표준시", "HNCU": "쿠바 표준시", "PST": "미 태평양 표준시", "PDT": "미 태평양 하계 표준시", "CAT": "중앙아프리카 시간", "MST": "마카오 표준 시간", "BOT": "볼리비아 시간", "HADT": "하와이 알류샨 하계 표준시", "HKT": "홍콩 표준시", "AKST": "알래스카 표준시", "HEEG": "그린란드 동부 하계 표준시", "AKDT": "알래스카 하계 표준시", "UYT": "우루과이 표준시", "HAST": "하와이 알류샨 표준시", "NZST": "뉴질랜드 표준시", "MEZ": "중부 유럽 표준시", "ACST": "오스트레일리아 중부 표준시", "AWST": "오스트레일리아 서부 표준시", "CHADT": "채텀 하계 표준시", "VET": "베네수엘라 시간", "WEZ": "서유럽 표준시", "AEST": "오스트레일리아 동부 표준시", "NZDT": "뉴질랜드 하계 표준시", "AST": "대서양 표준시", "EST": "미 동부 표준시", "EDT": "미 동부 하계 표준시", "HNNOMX": "멕시코 북서부 표준시", "SAST": "남아프리카 시간", "LHDT": "로드 하우 하계 표준시", "∅∅∅": "아마존 하계 표준시", "JST": "일본 표준시", "MYT": "말레이시아 시간", "HKST": "홍콩 하계 표준시", "HAT": "뉴펀들랜드 하계 표준시", "SRT": "수리남 시간", "CST": "미 중부 표준시", "CDT": "미 중부 하계 표준시", "CHAST": "채텀 표준시", "WESZ": "서유럽 하계 표준시", "HNOG": "그린란드 서부 표준시", "BT": "부탄 시간", "WART": "아르헨티나 서부 표준시", "ART": "아르헨티나 표준시", "UYST": "우루과이 하계 표준시", "EAT": "동아프리카 시간", "WARST": "아르헨티나 서부 하계 표준시", "CLST": "칠레 하계 표준시", "TMST": "투르크메니스탄 하계 표준시", "WIB": "서부 인도네시아 시간", "GFT": "프랑스령 가이아나 시간", "HNPMX": "멕시코 태평양 표준시", "WIT": "동부 인도네시아 시간", "AWDT": "오스트레일리아 서부 하계 표준시", "IST": "인도 표준시", "ACDT": "오스트레일리아 중부 하계 표준시", "COST": "콜롬비아 하계 표준시"},
}
}
diff --git a/ko_KP/ko_KP.go b/ko_KP/ko_KP.go
index ca00900a..fd1fc37a 100644
--- a/ko_KP/ko_KP.go
+++ b/ko_KP/ko_KP.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"기원전", "서기"},
- timezones: map[string]string{"AKST": "알래스카 표준시", "MYT": "말레이시아 시간", "GFT": "프랑스령 가이아나 시간", "ChST": "차모로 시간", "GMT": "그리니치 표준시", "EAT": "동아프리카 시간", "HKST": "홍콩 하계 표준시", "ART": "아르헨티나 표준시", "HNOG": "그린란드 서부 표준시", "AWDT": "오스트레일리아 서부 하계 표준시", "IST": "인도 표준시", "HEEG": "그린란드 동부 하계 표준시", "TMT": "투르크메니스탄 표준시", "ACDT": "오스트레일리아 중부 하계 표준시", "HAST": "하와이 알류샨 표준시", "MEZ": "중부 유럽 표준시", "SAST": "남아프리카 시간", "WAT": "서아프리카 표준시", "AST": "대서양 표준시", "ACWST": "오스트레일리아 중서부 표준시", "NZST": "뉴질랜드 표준시", "UYST": "우루과이 하계 표준시", "WESZ": "서유럽 하계 표준시", "HAT": "뉴펀들랜드 하계 표준시", "TMST": "투르크메니스탄 하계 표준시", "CAT": "중앙아프리카 시간", "HENOMX": "멕시코 북서부 하계 표준시", "CDT": "미 중부 하계 표준시", "OEZ": "동유럽 표준시", "∅∅∅": "페루 하계 표준시", "AEST": "오스트레일리아 동부 표준시", "SRT": "수리남 시간", "AEDT": "오스트레일리아 동부 하계 표준시", "HEPM": "세인트피에르 미클롱 하계 표준시", "CHADT": "채텀 하계 표준시", "JDT": "일본 하계 표준시", "WART": "아르헨티나 서부 표준시", "HECU": "쿠바 하계 표준시", "WIT": "동부 인도네시아 시간", "HADT": "하와이 알류샨 하계 표준시", "LHDT": "로드 하우 하계 표준시", "CHAST": "채텀 표준시", "CLST": "칠레 하계 표준시", "BOT": "볼리비아 시간", "SGT": "싱가포르 표준시", "MST": "마카오 표준 시간", "WIB": "서부 인도네시아 시간", "PST": "미 태평양 표준시", "CLT": "칠레 표준시", "HNPMX": "멕시코 태평양 표준시", "EST": "미 동부 표준시", "UYT": "우루과이 표준시", "ARST": "아르헨티나 하계 표준시", "WEZ": "서유럽 표준시", "ACWDT": "오스트레일리아 중서부 하계 표준시", "WITA": "중부 인도네시아 시간", "LHST": "로드 하우 표준시", "WAST": "서아프리카 하계 표준시", "MDT": "마카오 하계 표준시", "EDT": "미 동부 하계 표준시", "BT": "부탄 시간", "NZDT": "뉴질랜드 하계 표준시", "MESZ": "중부 유럽 하계 표준시", "JST": "일본 표준시", "AWST": "오스트레일리아 서부 표준시", "HNEG": "그린란드 동부 표준시", "ACST": "오스트레일리아 중부 표준시", "HNNOMX": "멕시코 북서부 표준시", "AKDT": "알래스카 하계 표준시", "HNT": "뉴펀들랜드 표준시", "PDT": "미 태평양 하계 표준시", "HNPM": "세인트피에르 미클롱 표준시", "WARST": "아르헨티나 서부 하계 표준시", "HEPMX": "멕시코 태평양 하계 표준시", "CST": "미 중부 표준시", "ADT": "미 대서양 하계 표준시", "HEOG": "그린란드 서부 하계 표준시", "OESZ": "동유럽 하계 표준시", "ECT": "에콰도르 시간", "COST": "콜롬비아 하계 표준시", "GYT": "가이아나 시간", "COT": "콜롬비아 표준시", "HNCU": "쿠바 표준시", "VET": "베네수엘라 시간", "HKT": "홍콩 표준시"},
+ timezones: map[string]string{"HAT": "뉴펀들랜드 하계 표준시", "WITA": "중부 인도네시아 시간", "HEPMX": "멕시코 태평양 하계 표준시", "HADT": "하와이 알류샨 하계 표준시", "IST": "인도 표준시", "OEZ": "동유럽 표준시", "HENOMX": "멕시코 북서부 하계 표준시", "HEPM": "세인트피에르 미클롱 하계 표준시", "HNPMX": "멕시코 태평양 표준시", "CST": "미 중부 표준시", "ACWST": "오스트레일리아 중서부 표준시", "JDT": "일본 하계 표준시", "WAT": "서아프리카 표준시", "HNNOMX": "멕시코 북서부 표준시", "EAT": "동아프리카 시간", "WEZ": "서유럽 표준시", "WART": "아르헨티나 서부 표준시", "HEOG": "그린란드 서부 하계 표준시", "AST": "대서양 표준시", "AEST": "오스트레일리아 동부 표준시", "HECU": "쿠바 하계 표준시", "MESZ": "중부 유럽 하계 표준시", "CLT": "칠레 표준시", "OESZ": "동유럽 하계 표준시", "TMT": "투르크메니스탄 표준시", "UYST": "우루과이 하계 표준시", "CHADT": "채텀 하계 표준시", "ECT": "에콰도르 시간", "PDT": "미 태평양 하계 표준시", "VET": "베네수엘라 시간", "WARST": "아르헨티나 서부 하계 표준시", "ChST": "차모로 시간", "HNCU": "쿠바 표준시", "PST": "미 태평양 표준시", "NZDT": "뉴질랜드 하계 표준시", "HKST": "홍콩 하계 표준시", "HNPM": "세인트피에르 미클롱 표준시", "SGT": "싱가포르 표준시", "HAST": "하와이 알류샨 표준시", "CAT": "중앙아프리카 시간", "LHST": "로드 하우 표준시", "LHDT": "로드 하우 하계 표준시", "AWDT": "오스트레일리아 서부 하계 표준시", "ART": "아르헨티나 표준시", "EDT": "미 동부 하계 표준시", "HEEG": "그린란드 동부 하계 표준시", "BT": "부탄 시간", "UYT": "우루과이 표준시", "CHAST": "채텀 표준시", "MST": "마카오 표준 시간", "MDT": "마카오 하계 표준시", "ARST": "아르헨티나 하계 표준시", "HNT": "뉴펀들랜드 표준시", "AKDT": "알래스카 하계 표준시", "GYT": "가이아나 시간", "WIB": "서부 인도네시아 시간", "AWST": "오스트레일리아 서부 표준시", "JST": "일본 표준시", "GMT": "그리니치 표준시", "TMST": "투르크메니스탄 하계 표준시", "HNEG": "그린란드 동부 표준시", "WESZ": "서유럽 하계 표준시", "WAST": "서아프리카 하계 표준시", "COST": "콜롬비아 하계 표준시", "ACWDT": "오스트레일리아 중서부 하계 표준시", "ACST": "오스트레일리아 중부 표준시", "SRT": "수리남 시간", "BOT": "볼리비아 시간", "ACDT": "오스트레일리아 중부 하계 표준시", "GFT": "프랑스령 가이아나 시간", "AKST": "알래스카 표준시", "SAST": "남아프리카 시간", "MEZ": "중부 유럽 표준시", "MYT": "말레이시아 시간", "CLST": "칠레 하계 표준시", "EST": "미 동부 표준시", "CDT": "미 중부 하계 표준시", "HNOG": "그린란드 서부 표준시", "ADT": "미 대서양 하계 표준시", "WIT": "동부 인도네시아 시간", "NZST": "뉴질랜드 표준시", "∅∅∅": "아마존 하계 표준시", "HKT": "홍콩 표준시", "COT": "콜롬비아 표준시", "AEDT": "오스트레일리아 동부 하계 표준시"},
}
}
diff --git a/ko_KR/ko_KR.go b/ko_KR/ko_KR.go
index 124b0ea2..69419be9 100644
--- a/ko_KR/ko_KR.go
+++ b/ko_KR/ko_KR.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"기원전", "서기"},
- timezones: map[string]string{"MDT": "미 산지 하계 표준시", "BT": "부탄 시간", "CLST": "칠레 하계 표준시", "AKDT": "알래스카 하계 표준시", "ART": "아르헨티나 표준시", "HNPM": "세인트피에르 미클롱 표준시", "CHADT": "채텀 하계 표준시", "HNEG": "그린란드 동부 표준시", "SGT": "싱가포르 표준시", "HNT": "뉴펀들랜드 표준시", "HAT": "뉴펀들랜드 하계 표준시", "ChST": "차모로 시간", "WAST": "서아프리카 하계 표준시", "OESZ": "동유럽 하계 표준시", "WART": "아르헨티나 서부 표준시", "COT": "콜롬비아 표준시", "MST": "미 산악 표준시", "MEZ": "중부 유럽 표준시", "BOT": "볼리비아 시간", "HADT": "하와이 알류샨 하계 표준시", "PST": "미 태평양 표준시", "OEZ": "동유럽 표준시", "CDT": "미 중부 하계 표준시", "EDT": "미 동부 하계 표준시", "HEPMX": "멕시코 태평양 하계 표준시", "AKST": "알래스카 표준시", "HECU": "쿠바 하계 표준시", "WIB": "서부 인도네시아 시간", "WEZ": "서유럽 표준시", "ACWDT": "오스트레일리아 중서부 하계 표준시", "AEDT": "오스트레일리아 동부 하계 표준시", "HEEG": "그린란드 동부 하계 표준시", "GFT": "프랑스령 가이아나 시간", "ACST": "오스트레일리아 중부 표준시", "WIT": "동부 인도네시아 시간", "SAST": "남아프리카 시간", "IST": "인도 표준시", "ACDT": "오스트레일리아 중부 하계 표준시", "WARST": "아르헨티나 서부 하계 표준시", "ADT": "미 대서양 하계 표준시", "HAST": "하와이 알류샨 표준시", "ACWST": "오스트레일리아 중서부 표준시", "MESZ": "중부 유럽 하계 표준시", "NZST": "뉴질랜드 표준시", "TMT": "투르크메니스탄 표준시", "EST": "미 동부 표준시", "HNPMX": "멕시코 태평양 표준시", "UYT": "우루과이 표준시", "HNOG": "그린란드 서부 표준시", "WESZ": "서유럽 하계 표준시", "AWST": "오스트레일리아 서부 표준시", "HKT": "홍콩 표준시", "JST": "일본 표준시", "∅∅∅": "아마존 하계 표준시", "CAT": "중앙아프리카 시간", "ARST": "아르헨티나 하계 표준시", "HEPM": "세인트피에르 미클롱 하계 표준시", "NZDT": "뉴질랜드 하계 표준시", "WAT": "서아프리카 표준시", "UYST": "우루과이 하계 표준시", "VET": "베네수엘라 시간", "PDT": "미 태평양 하계 표준시", "AEST": "오스트레일리아 동부 표준시", "AWDT": "오스트레일리아 서부 하계 표준시", "COST": "콜롬비아 하계 표준시", "GYT": "가이아나 시간", "WITA": "중부 인도네시아 시간", "LHST": "로드 하우 표준시", "CLT": "칠레 표준시", "AST": "대서양 표준시", "SRT": "수리남 시간", "TMST": "투르크메니스탄 하계 표준시", "ECT": "에콰도르 시간", "EAT": "동아프리카 시간", "HNNOMX": "멕시코 북서부 표준시", "HEOG": "그린란드 서부 하계 표준시", "LHDT": "로드 하우 하계 표준시", "JDT": "일본 하계 표준시", "HENOMX": "멕시코 북서부 하계 표준시", "CST": "미 중부 표준시", "HKST": "홍콩 하계 표준시", "CHAST": "채텀 표준시", "GMT": "그리니치 표준시", "HNCU": "쿠바 표준시", "MYT": "말레이시아 시간"},
+ timezones: map[string]string{"BT": "부탄 시간", "AEST": "오스트레일리아 동부 표준시", "HECU": "쿠바 하계 표준시", "ECT": "에콰도르 시간", "MEZ": "중부 유럽 표준시", "WART": "아르헨티나 서부 표준시", "AST": "대서양 표준시", "HKT": "홍콩 표준시", "ACDT": "오스트레일리아 중부 하계 표준시", "GYT": "가이아나 시간", "ACWDT": "오스트레일리아 중서부 하계 표준시", "MESZ": "중부 유럽 하계 표준시", "OESZ": "동유럽 하계 표준시", "WIB": "서부 인도네시아 시간", "PST": "미 태평양 표준시", "∅∅∅": "아마존 하계 표준시", "ADT": "미 대서양 하계 표준시", "ACST": "오스트레일리아 중부 표준시", "HNEG": "그린란드 동부 표준시", "CHADT": "채텀 하계 표준시", "NZST": "뉴질랜드 표준시", "CLST": "칠레 하계 표준시", "OEZ": "동유럽 표준시", "MST": "마카오 표준 시간", "LHDT": "로드 하우 하계 표준시", "WESZ": "서유럽 하계 표준시", "WARST": "아르헨티나 서부 하계 표준시", "CLT": "칠레 표준시", "HENOMX": "멕시코 북서부 하계 표준시", "COST": "콜롬비아 하계 표준시", "AKST": "알래스카 표준시", "HNPMX": "멕시코 태평양 표준시", "AWST": "오스트레일리아 서부 표준시", "ACWST": "오스트레일리아 중서부 표준시", "JST": "일본 표준시", "LHST": "로드 하우 표준시", "HAST": "하와이 알류샨 표준시", "WAT": "서아프리카 표준시", "SAST": "남아프리카 시간", "WAST": "서아프리카 하계 표준시", "WITA": "중부 인도네시아 시간", "HNCU": "쿠바 표준시", "JDT": "일본 하계 표준시", "TMST": "투르크메니스탄 하계 표준시", "GMT": "그리니치 표준시", "ART": "아르헨티나 표준시", "ARST": "아르헨티나 하계 표준시", "UYT": "우루과이 표준시", "UYST": "우루과이 하계 표준시", "AWDT": "오스트레일리아 서부 하계 표준시", "NZDT": "뉴질랜드 하계 표준시", "IST": "인도 표준시", "HADT": "하와이 알류샨 하계 표준시", "TMT": "투르크메니스탄 표준시", "MDT": "마카오 하계 표준시", "EDT": "미 동부 하계 표준시", "HNPM": "세인트피에르 미클롱 표준시", "BOT": "볼리비아 시간", "VET": "베네수엘라 시간", "HNOG": "그린란드 서부 표준시", "WEZ": "서유럽 표준시", "SGT": "싱가포르 표준시", "EAT": "동아프리카 시간", "HNNOMX": "멕시코 북서부 표준시", "GFT": "프랑스령 가이아나 시간", "HKST": "홍콩 하계 표준시", "COT": "콜롬비아 표준시", "HNT": "뉴펀들랜드 표준시", "AKDT": "알래스카 하계 표준시", "CDT": "미 중부 하계 표준시", "MYT": "말레이시아 시간", "HEOG": "그린란드 서부 하계 표준시", "PDT": "미 태평양 하계 표준시", "CAT": "중앙아프리카 시간", "CST": "미 중부 표준시", "CHAST": "채텀 표준시", "HEPM": "세인트피에르 미클롱 하계 표준시", "HEPMX": "멕시코 태평양 하계 표준시", "HAT": "뉴펀들랜드 하계 표준시", "AEDT": "오스트레일리아 동부 하계 표준시", "ChST": "차모로 시간", "SRT": "수리남 시간", "WIT": "동부 인도네시아 시간", "EST": "미 동부 표준시", "HEEG": "그린란드 동부 하계 표준시"},
}
}
diff --git a/kok/kok.go b/kok/kok.go
index b0ee603e..f2d580c7 100644
--- a/kok/kok.go
+++ b/kok/kok.go
@@ -60,7 +60,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"क्रिस्तपूर्व", "क्रिस्तशखा"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"ACWST": "ACWST", "GFT": "GFT", "MDT": "MDT", "HNPMX": "HNPMX", "AST": "AST", "MYT": "MYT", "WIT": "WIT", "BT": "BT", "HAST": "HAST", "HKT": "HKT", "MEZ": "MEZ", "CHAST": "CHAST", "OESZ": "OESZ", "HNCU": "HNCU", "SRT": "SRT", "ACWDT": "ACWDT", "ARST": "ARST", "AWST": "AWST", "WITA": "WITA", "SGT": "SGT", "AKST": "AKST", "HADT": "HADT", "HNT": "HNT", "HEPM": "HEPM", "LHST": "LHST", "CHADT": "CHADT", "BOT": "BOT", "GMT": "GMT", "ADT": "ADT", "HAT": "HAT", "ECT": "ECT", "UYT": "UYT", "WIB": "WIB", "HNOG": "HNOG", "CST": "CST", "WESZ": "WESZ", "CLT": "CLT", "CLST": "CLST", "OEZ": "OEZ", "CAT": "CAT", "NZDT": "NZDT", "SAST": "SAST", "∅∅∅": "∅∅∅", "EAT": "EAT", "COT": "COT", "EST": "EST", "AEST": "AEST", "JST": "JST", "COST": "COST", "UYST": "UYST", "WEZ": "WEZ", "HEEG": "HEEG", "TMST": "TMST", "WARST": "WARST", "MESZ": "MESZ", "WART": "WART", "HEPMX": "HEPMX", "VET": "VET", "AWDT": "AWDT", "GYT": "GYT", "ART": "ART", "HNPM": "HNPM", "NZST": "NZST", "HNEG": "HNEG", "ACDT": "ACDT", "WAT": "WAT", "CDT": "CDT", "PST": "PST", "HECU": "HECU", "MST": "MST", "AKDT": "AKDT", "HEOG": "HEOG", "EDT": "EDT", "PDT": "PDT", "LHDT": "LHDT", "IST": "भारतीय समय", "JDT": "JDT", "WAST": "WAST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AEDT": "AEDT", "TMT": "TMT", "ChST": "ChST", "ACST": "ACST", "HKST": "HKST"},
+ timezones: map[string]string{"UYST": "UYST", "SGT": "SGT", "GMT": "GMT", "ARST": "ARST", "COT": "COT", "HNNOMX": "HNNOMX", "ChST": "ChST", "PST": "PST", "PDT": "PDT", "∅∅∅": "∅∅∅", "MESZ": "MESZ", "TMST": "TMST", "BT": "BT", "WITA": "WITA", "MEZ": "MEZ", "ADT": "ADT", "MST": "MST", "EDT": "EDT", "GYT": "GYT", "ECT": "ECT", "ACWST": "ACWST", "NZDT": "NZDT", "JDT": "JDT", "MYT": "MYT", "HEOG": "HEOG", "ACST": "ACST", "LHDT": "LHDT", "WIT": "WIT", "JST": "JST", "MDT": "MDT", "WAST": "WAST", "HKST": "HKST", "ACDT": "ACDT", "HNEG": "HNEG", "HNPMX": "HNPMX", "HNPM": "HNPM", "WESZ": "WESZ", "ART": "ART", "HNT": "HNT", "AKST": "AKST", "ACWDT": "ACWDT", "WARST": "WARST", "HAT": "HAT", "HEPM": "HEPM", "SAST": "SAST", "SRT": "SRT", "HNCU": "HNCU", "HECU": "HECU", "IST": "भारतीय समय", "WEZ": "WEZ", "UYT": "UYT", "CST": "CST", "AWST": "AWST", "CHAST": "CHAST", "CAT": "CAT", "HENOMX": "HENOMX", "HEEG": "HEEG", "GFT": "GFT", "AKDT": "AKDT", "AEDT": "AEDT", "LHST": "LHST", "AWDT": "AWDT", "CHADT": "CHADT", "HAST": "HAST", "VET": "VET", "HNOG": "HNOG", "AST": "AST", "OEZ": "OEZ", "OESZ": "OESZ", "WART": "WART", "CLST": "CLST", "EST": "EST", "AEST": "AEST", "TMT": "TMT", "WAT": "WAT", "HKT": "HKT", "COST": "COST", "CDT": "CDT", "BOT": "BOT", "HADT": "HADT", "NZST": "NZST", "CLT": "CLT", "HEPMX": "HEPMX", "EAT": "EAT", "WIB": "WIB"},
}
}
diff --git a/kok_IN/kok_IN.go b/kok_IN/kok_IN.go
index 98f6ba4e..b5880183 100644
--- a/kok_IN/kok_IN.go
+++ b/kok_IN/kok_IN.go
@@ -60,7 +60,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"क्रिस्तपूर्व", "क्रिस्तशखा"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HEPMX": "HEPMX", "AKST": "AKST", "IST": "भारतीय समय", "EDT": "EDT", "WEZ": "WEZ", "MEZ": "MEZ", "CHAST": "CHAST", "JDT": "JDT", "ACST": "ACST", "CST": "CST", "MDT": "MDT", "BT": "BT", "HECU": "HECU", "TMT": "TMT", "HENOMX": "HENOMX", "HNPM": "HNPM", "CLST": "CLST", "∅∅∅": "∅∅∅", "WAT": "WAT", "COT": "COT", "WIT": "WIT", "HKT": "HKT", "SAST": "SAST", "ACWDT": "ACWDT", "WITA": "WITA", "WART": "WART", "WARST": "WARST", "UYST": "UYST", "HAST": "HAST", "WESZ": "WESZ", "HEEG": "HEEG", "MESZ": "MESZ", "CHADT": "CHADT", "TMST": "TMST", "COST": "COST", "SGT": "SGT", "HNCU": "HNCU", "HEOG": "HEOG", "ACWST": "ACWST", "AWDT": "AWDT", "NZST": "NZST", "NZDT": "NZDT", "CLT": "CLT", "EAT": "EAT", "GMT": "GMT", "HNT": "HNT", "ARST": "ARST", "LHST": "LHST", "LHDT": "LHDT", "OEZ": "OEZ", "EST": "EST", "ADT": "ADT", "WIB": "WIB", "ART": "ART", "HNPMX": "HNPMX", "HADT": "HADT", "HEPM": "HEPM", "OESZ": "OESZ", "AEDT": "AEDT", "WAST": "WAST", "AKDT": "AKDT", "VET": "VET", "HNOG": "HNOG", "PST": "PST", "HAT": "HAT", "AWST": "AWST", "JST": "JST", "HNEG": "HNEG", "UYT": "UYT", "CDT": "CDT", "AST": "AST", "GFT": "GFT", "ACDT": "ACDT", "BOT": "BOT", "GYT": "GYT", "PDT": "PDT", "AEST": "AEST", "ChST": "ChST", "ECT": "ECT", "MYT": "MYT", "MST": "MST", "HKST": "HKST", "SRT": "SRT", "CAT": "CAT", "HNNOMX": "HNNOMX"},
+ timezones: map[string]string{"AWDT": "AWDT", "MYT": "MYT", "ADT": "ADT", "HAT": "HAT", "SRT": "SRT", "GYT": "GYT", "WIT": "WIT", "HADT": "HADT", "HNEG": "HNEG", "AKDT": "AKDT", "AEDT": "AEDT", "CAT": "CAT", "HNT": "HNT", "AKST": "AKST", "EAT": "EAT", "WARST": "WARST", "HKT": "HKT", "HENOMX": "HENOMX", "BT": "BT", "PST": "PST", "MEZ": "MEZ", "HNOG": "HNOG", "HEOG": "HEOG", "OESZ": "OESZ", "ART": "ART", "ACST": "ACST", "WIB": "WIB", "NZDT": "NZDT", "OEZ": "OEZ", "GMT": "GMT", "ECT": "ECT", "CLT": "CLT", "WAT": "WAT", "AEST": "AEST", "UYT": "UYT", "HEPM": "HEPM", "LHDT": "LHDT", "HECU": "HECU", "CHAST": "CHAST", "MESZ": "MESZ", "TMT": "TMT", "WAST": "WAST", "GFT": "GFT", "WESZ": "WESZ", "MDT": "MDT", "ARST": "ARST", "COT": "COT", "COST": "COST", "LHST": "LHST", "HNPMX": "HNPMX", "CST": "CST", "CHADT": "CHADT", "PDT": "PDT", "ACWDT": "ACWDT", "WART": "WART", "AWST": "AWST", "HAST": "HAST", "NZST": "NZST", "EST": "EST", "HEEG": "HEEG", "ChST": "ChST", "UYST": "UYST", "HEPMX": "HEPMX", "BOT": "BOT", "IST": "भारतीय समय", "ACWST": "ACWST", "VET": "VET", "WEZ": "WEZ", "EDT": "EDT", "ACDT": "ACDT", "HNPM": "HNPM", "CDT": "CDT", "∅∅∅": "∅∅∅", "SGT": "SGT", "TMST": "TMST", "HNNOMX": "HNNOMX", "AST": "AST", "JST": "JST", "JDT": "JDT", "MST": "MST", "HNCU": "HNCU", "CLST": "CLST", "HKST": "HKST", "WITA": "WITA", "SAST": "SAST"},
}
}
diff --git a/ks/ks.go b/ks/ks.go
index b3b4ea6e..baa66d1b 100644
--- a/ks/ks.go
+++ b/ks/ks.go
@@ -66,7 +66,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"بی سی", "اے ڈی"},
erasNarrow: []string{"", ""},
erasWide: []string{"قبٕل مسیٖح", "عیٖسوی سنہٕ"},
- timezones: map[string]string{"HECU": "کیوٗبا ڈےلایِٔٹ ٹایِم", "MST": "مَکَعوٗ سٹینڑاڑ ٹایِم", "HNPMX": "HNPMX", "AST": "اٮ۪ٹلانٹِک سٹینڑاڑ ٹایِم", "HEEG": "مشرِقی گریٖن لینڑُک سَمَر ٹایِم", "WAST": "مغربی افریٖقا سَمَر ٹایِم", "COT": "کولومبِیا سٹینڑاڑ ٹایِم", "HENOMX": "HENOMX", "MYT": "مَلیشِیا ٹایِم", "UYT": "یوٗرٮ۪گوَے سٹینڑاڑ ٹایِم", "ART": "ارجٮ۪نٹیٖنا سٹینڑاڑ ٹایِم", "HKT": "حانگ کانٛگ سٹینڑاڑ ٹایِم", "IST": "ہِنٛدوستان", "WAT": "مغربی افریٖقا سٹینڑاڑ ٹایِم", "HEPMX": "HEPMX", "NZST": "نِوزِلینڑ سٹینڑاڑ ٹایِم", "CLT": "چِلی سٹینڑاڑ ٹایِم", "ChST": "کٮ۪مورو سٹینڑاڑ ٹایِم", "COST": "کولومبِیا سَمَر ٹایِم", "ADT": "اٮ۪ٹلانٹِک ڈےلایِٔٹ ٹایِم", "SRT": "سُرِنام ٹایِم", "AWDT": "آسٹریلِیَن مغرِبیٖ ڈےلایٔٹ ٹایِم", "TMST": "تُرکمٮ۪نِستان سَمَر ٹایِم", "OEZ": "مشرقی یوٗرپی سٹینڑاڑ ٹایِم", "UYST": "یوٗرٮ۪گوَے سَمَر ٹایِم", "WESZ": "مغرِبی یوٗرِپی سَمَر ٹایِم", "ACST": "آسٹریلِیَن مرکزی سٹینڑاڑ ٹایِم", "EAT": "مشرقی افریٖقا ٹایِم", "AKST": "اٮ۪لاسکا سٹینڑاڑ ٹایِم", "JDT": "جاپٲنۍ ڑےلایِٔٹ ٹایِم", "HNEG": "مشرِقی گریٖن لینڑُک سٹینڑاڑ ٹایِم", "SGT": "سِنٛگاپوٗر ٹایِم", "BT": "بوٗٹان ٹایِم", "HEPM": "سینٛٹ پَیری مِقیوٗلَن ڑےلایِٔٹ ٹایِم", "LHDT": "لعاڑ ڑےلایٔٹ ٹایِم", "MESZ": "مرکزی یوٗرپی سَمَر ٹایِم", "WIT": "مشرِقی اِنڑونیشِیا ٹایِم", "ACWST": "آسٹریلِیَن مرکزی مغربی سٹینڑاڑ ٹایِم", "HNT": "نیوٗ فاونڑلینڑ سٹینڑاڑ ٹایِم", "∅∅∅": "اٮ۪مَزَن سَمَر ٹایِم", "WARST": "مغربی ارجٮ۪نٹیٖنا سَمَر ٹایِم", "PST": "پیسِفِک سٹینڑاڑ ٹایِم", "PDT": "پیسِفِک ڈےلایِٔٹ ٹایِم", "CAT": "مرکزی افریٖقا ٹایِم", "OESZ": "مشرقی یوٗرپی سَمَر ٹایِم", "HADT": "حَواے اٮ۪لیوٗٹِیَن سَمَر ٹایِم", "HEOG": "مغرِبی گریٖن لینڑُک سَمَر ٹایِم", "HKST": "حانٛگ کانٛگ سَمَر ٹایِم", "AEDT": "آسٹریلِیَن مشرقی ڈےلایِٔٹ ٹایِم", "JST": "جاپٲنۍ سٹینڑاڑ ٹایِم", "ARST": "ارجٮ۪نٹیٖنا سَمَر ٹایِم", "HNNOMX": "HNNOMX", "MDT": "مَکَعوٗ سَمَر ٹایِم", "GYT": "گُیَنا ٹایِم", "EST": "مشرقی سٹینڑاڑ ٹایِم", "CDT": "مرکزی ڈےلایِٔٹ ٹایِم", "HNOG": "مغرِبی گریٖن لینڑُک سٹینڑاڑ ٹایِم", "SAST": "جنوٗبی افریقا ٹایِم", "ACDT": "آسٹریلِیَن مرکزی ڈےلایِٔٹ ٹایِم", "HNCU": "کیوٗبا سٹینڑاڑ ٹایِم", "HAST": "حَواے اٮ۪لیوٗٹِیَن سٹینڑاڑ ٹایِم", "ACWDT": "آسٹریلِیَن مرکزی مغربی ڈےلایِٔٹ ٹایِم", "HNPM": "سینٛٹ پَیری مِقیوٗلَن سٹینڑاڑ ٹایِم", "MEZ": "مرکزی یوٗرپی سٹینڑاڑ ٹایِم", "VET": "وٮ۪نٮ۪زیوٗلا ٹایِم", "NZDT": "نِوزِلینڑ ڑےلایٔٹ ٹایِم", "AKDT": "اٮ۪لاسکا ڈےلایِٔٹ ٹایِم", "WART": "مغربی ارجٮ۪نٹیٖنا سٹینڑاڑ ٹایِم", "EDT": "مشرقی ڈےلایِٔٹ ٹایِم", "AWST": "آسٹریلِیَن مغرِبی سٹینڑاڑ ٹایِم", "GFT": "فرٛٮ۪نٛچ گیوٗٮ۪نا ٹایِم", "TMT": "تُرکمٮ۪نِستان سٹینڑاڑ ٹایِم", "ECT": "اِکویڑَر ٹایِم", "CLST": "چِلی سَمَر ٹایِم", "GMT": "گرٛیٖن وِچ میٖن ٹایِم", "CST": "مرکزی سٹینڑاڑ ٹایِم", "WIB": "مغرِبی اِنڑونیشِیا ٹایِم", "WITA": "مرکزی اِنڑونیشِیا ٹایِم", "AEST": "آسٹریلِیَن مشرقی سٹینڑاڑ ٹایِم", "LHST": "لعاڑ حووے سٹینڑاڑ ٹایِم", "CHAST": "کٮ۪تھَم سٹینڑاڑ ٹایِم", "WEZ": "مغرِبی یوٗرپی سٹینڑاڑ ٹایِم", "HAT": "نیوٗ فاونڑ لینڑ ڑےلایِٔٹ ٹایِم", "CHADT": "چٮ۪تھَم سَمَر ٹایِم", "BOT": "بولِوِیا ٹایِم"},
+ timezones: map[string]string{"HAST": "حَواے اٮ۪لیوٗٹِیَن سٹینڑاڑ ٹایِم", "AST": "اٮ۪ٹلانٹِک سٹینڑاڑ ٹایِم", "HNNOMX": "HNNOMX", "GFT": "فرٛٮ۪نٛچ گیوٗٮ۪نا ٹایِم", "AEST": "آسٹریلِیَن مشرقی سٹینڑاڑ ٹایِم", "HEPM": "سینٛٹ پَیری مِقیوٗلَن ڑےلایِٔٹ ٹایِم", "SRT": "سُرِنام ٹایِم", "WAST": "مغربی افریٖقا سَمَر ٹایِم", "∅∅∅": "پٔروٗ سَمَر ٹایِم", "AKDT": "اٮ۪لاسکا ڈےلایِٔٹ ٹایِم", "HADT": "حَواے اٮ۪لیوٗٹِیَن سَمَر ٹایِم", "ACDT": "آسٹریلِیَن مرکزی ڈےلایِٔٹ ٹایِم", "COT": "کولومبِیا سٹینڑاڑ ٹایِم", "AKST": "اٮ۪لاسکا سٹینڑاڑ ٹایِم", "UYT": "یوٗرٮ۪گوَے سٹینڑاڑ ٹایِم", "CST": "مرکزی سٹینڑاڑ ٹایِم", "MST": "مَکَعوٗ سٹینڑاڑ ٹایِم", "EDT": "مشرقی ڈےلایِٔٹ ٹایِم", "ACST": "آسٹریلِیَن مرکزی سٹینڑاڑ ٹایِم", "HNPM": "سینٛٹ پَیری مِقیوٗلَن سٹینڑاڑ ٹایِم", "CLST": "چِلی سَمَر ٹایِم", "HAT": "نیوٗ فاونڑ لینڑ ڑےلایِٔٹ ٹایِم", "SAST": "جنوٗبی افریقا ٹایِم", "BOT": "بولِوِیا ٹایِم", "JDT": "جاپٲنۍ ڑےلایِٔٹ ٹایِم", "ART": "ارجٮ۪نٹیٖنا سٹینڑاڑ ٹایِم", "EAT": "مشرقی افریٖقا ٹایِم", "CDT": "مرکزی ڈےلایِٔٹ ٹایِم", "JST": "جاپٲنۍ سٹینڑاڑ ٹایِم", "OEZ": "مشرقی یوٗرپی سٹینڑاڑ ٹایِم", "HKST": "حانٛگ کانٛگ سَمَر ٹایِم", "BT": "بوٗٹان ٹایِم", "NZDT": "نِوزِلینڑ ڑےلایٔٹ ٹایِم", "WARST": "مغربی ارجٮ۪نٹیٖنا سَمَر ٹایِم", "CLT": "چِلی سٹینڑاڑ ٹایِم", "IST": "ہِنٛدوستان", "WESZ": "مغرِبی یوٗرِپی سَمَر ٹایِم", "GMT": "گرٛیٖن وِچ میٖن ٹایِم", "MDT": "مَکَعوٗ سَمَر ٹایِم", "HNT": "نیوٗ فاونڑلینڑ سٹینڑاڑ ٹایِم", "WIB": "مغرِبی اِنڑونیشِیا ٹایِم", "AWST": "آسٹریلِیَن مغرِبی سٹینڑاڑ ٹایِم", "CHAST": "کٮ۪تھَم سٹینڑاڑ ٹایِم", "MYT": "مَلیشِیا ٹایِم", "LHDT": "لعاڑ ڑےلایٔٹ ٹایِم", "HNPMX": "HNPMX", "OESZ": "مشرقی یوٗرپی سَمَر ٹایِم", "TMT": "تُرکمٮ۪نِستان سٹینڑاڑ ٹایِم", "GYT": "گُیَنا ٹایِم", "SGT": "سِنٛگاپوٗر ٹایِم", "VET": "وٮ۪نٮ۪زیوٗلا ٹایِم", "MEZ": "مرکزی یوٗرپی سٹینڑاڑ ٹایِم", "HNOG": "مغرِبی گریٖن لینڑُک سٹینڑاڑ ٹایِم", "HEOG": "مغرِبی گریٖن لینڑُک سَمَر ٹایِم", "HNEG": "مشرِقی گریٖن لینڑُک سٹینڑاڑ ٹایِم", "WITA": "مرکزی اِنڑونیشِیا ٹایِم", "PDT": "پیسِفِک ڈےلایِٔٹ ٹایِم", "CAT": "مرکزی افریٖقا ٹایِم", "ACWST": "آسٹریلِیَن مرکزی مغربی سٹینڑاڑ ٹایِم", "WAT": "مغربی افریٖقا سٹینڑاڑ ٹایِم", "HENOMX": "HENOMX", "UYST": "یوٗرٮ۪گوَے سَمَر ٹایِم", "WEZ": "مغرِبی یوٗرپی سٹینڑاڑ ٹایِم", "ChST": "کٮ۪مورو سٹینڑاڑ ٹایِم", "HEPMX": "HEPMX", "HECU": "کیوٗبا ڈےلایِٔٹ ٹایِم", "ARST": "ارجٮ۪نٹیٖنا سَمَر ٹایِم", "EST": "مشرقی سٹینڑاڑ ٹایِم", "HKT": "حانگ کانٛگ سٹینڑاڑ ٹایِم", "COST": "کولومبِیا سَمَر ٹایِم", "HEEG": "مشرِقی گریٖن لینڑُک سَمَر ٹایِم", "WIT": "مشرِقی اِنڑونیشِیا ٹایِم", "ACWDT": "آسٹریلِیَن مرکزی مغربی ڈےلایِٔٹ ٹایِم", "MESZ": "مرکزی یوٗرپی سَمَر ٹایِم", "TMST": "تُرکمٮ۪نِستان سَمَر ٹایِم", "AEDT": "آسٹریلِیَن مشرقی ڈےلایِٔٹ ٹایِم", "HNCU": "کیوٗبا سٹینڑاڑ ٹایِم", "AWDT": "آسٹریلِیَن مغرِبیٖ ڈےلایٔٹ ٹایِم", "NZST": "نِوزِلینڑ سٹینڑاڑ ٹایِم", "LHST": "لعاڑ حووے سٹینڑاڑ ٹایِم", "CHADT": "چٮ۪تھَم سَمَر ٹایِم", "WART": "مغربی ارجٮ۪نٹیٖنا سٹینڑاڑ ٹایِم", "ADT": "اٮ۪ٹلانٹِک ڈےلایِٔٹ ٹایِم", "ECT": "اِکویڑَر ٹایِم", "PST": "پیسِفِک سٹینڑاڑ ٹایِم"},
}
}
diff --git a/ks_IN/ks_IN.go b/ks_IN/ks_IN.go
index 8392ad39..d7b58948 100644
--- a/ks_IN/ks_IN.go
+++ b/ks_IN/ks_IN.go
@@ -66,7 +66,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"بی سی", "اے ڈی"},
erasNarrow: []string{"", ""},
erasWide: []string{"قبٕل مسیٖح", "عیٖسوی سنہٕ"},
- timezones: map[string]string{"ACDT": "آسٹریلِیَن مرکزی ڈےلایِٔٹ ٹایِم", "WART": "مغربی ارجٮ۪نٹیٖنا سٹینڑاڑ ٹایِم", "GMT": "گرٛیٖن وِچ میٖن ٹایِم", "HEOG": "مغرِبی گریٖن لینڑُک سَمَر ٹایِم", "AWST": "آسٹریلِیَن مغرِبی سٹینڑاڑ ٹایِم", "AWDT": "آسٹریلِیَن مغرِبیٖ ڈےلایٔٹ ٹایِم", "SAST": "جنوٗبی افریقا ٹایِم", "MDT": "مَکَعوٗ سَمَر ٹایِم", "HNPMX": "HNPMX", "AKST": "اٮ۪لاسکا سٹینڑاڑ ٹایِم", "ACWDT": "آسٹریلِیَن مرکزی مغربی ڈےلایِٔٹ ٹایِم", "HKT": "حانگ کانٛگ سٹینڑاڑ ٹایِم", "MEZ": "مرکزی یوٗرپی سٹینڑاڑ ٹایِم", "TMT": "تُرکمٮ۪نِستان سٹینڑاڑ ٹایِم", "HENOMX": "HENOMX", "HNCU": "کیوٗبا سٹینڑاڑ ٹایِم", "SRT": "سُرِنام ٹایِم", "HKST": "حانٛگ کانٛگ سَمَر ٹایِم", "MESZ": "مرکزی یوٗرپی سَمَر ٹایِم", "NZDT": "نِوزِلینڑ ڑےلایٔٹ ٹایِم", "BOT": "بولِوِیا ٹایِم", "MST": "مَکَعوٗ سٹینڑاڑ ٹایِم", "UYT": "یوٗرٮ۪گوَے سٹینڑاڑ ٹایِم", "CDT": "مرکزی ڈےلایِٔٹ ٹایِم", "WESZ": "مغرِبی یوٗرِپی سَمَر ٹایِم", "HAT": "نیوٗ فاونڑ لینڑ ڑےلایِٔٹ ٹایِم", "LHST": "لعاڑ حووے سٹینڑاڑ ٹایِم", "HECU": "کیوٗبا ڈےلایِٔٹ ٹایِم", "WIB": "مغرِبی اِنڑونیشِیا ٹایِم", "BT": "بوٗٹان ٹایِم", "PDT": "پیسِفِک ڈےلایِٔٹ ٹایِم", "LHDT": "لعاڑ ڑےلایٔٹ ٹایِم", "CHAST": "کٮ۪تھَم سٹینڑاڑ ٹایِم", "∅∅∅": "اٮ۪مَزَن سَمَر ٹایِم", "PST": "پیسِفِک سٹینڑاڑ ٹایِم", "CHADT": "چٮ۪تھَم سَمَر ٹایِم", "AST": "اٮ۪ٹلانٹِک سٹینڑاڑ ٹایِم", "HAST": "حَواے اٮ۪لیوٗٹِیَن سٹینڑاڑ ٹایِم", "HADT": "حَواے اٮ۪لیوٗٹِیَن سَمَر ٹایِم", "HNOG": "مغرِبی گریٖن لینڑُک سٹینڑاڑ ٹایِم", "HNNOMX": "HNNOMX", "ADT": "اٮ۪ٹلانٹِک ڈےلایِٔٹ ٹایِم", "GYT": "گُیَنا ٹایِم", "WITA": "مرکزی اِنڑونیشِیا ٹایِم", "ACST": "آسٹریلِیَن مرکزی سٹینڑاڑ ٹایِم", "EAT": "مشرقی افریٖقا ٹایِم", "HEPM": "سینٛٹ پَیری مِقیوٗلَن ڑےلایِٔٹ ٹایِم", "IST": "ہِنٛدوستان", "WAT": "مغربی افریٖقا سٹینڑاڑ ٹایِم", "UYST": "یوٗرٮ۪گوَے سَمَر ٹایِم", "CST": "مرکزی سٹینڑاڑ ٹایِم", "AEDT": "آسٹریلِیَن مشرقی ڈےلایِٔٹ ٹایِم", "MYT": "مَلیشِیا ٹایِم", "VET": "وٮ۪نٮ۪زیوٗلا ٹایِم", "HNT": "نیوٗ فاونڑلینڑ سٹینڑاڑ ٹایِم", "AEST": "آسٹریلِیَن مشرقی سٹینڑاڑ ٹایِم", "CLST": "چِلی سَمَر ٹایِم", "JDT": "جاپٲنۍ ڑےلایِٔٹ ٹایِم", "HEEG": "مشرِقی گریٖن لینڑُک سَمَر ٹایِم", "OESZ": "مشرقی یوٗرپی سَمَر ٹایِم", "SGT": "سِنٛگاپوٗر ٹایِم", "AKDT": "اٮ۪لاسکا ڈےلایِٔٹ ٹایِم", "WEZ": "مغرِبی یوٗرپی سٹینڑاڑ ٹایِم", "WAST": "مغربی افریٖقا سَمَر ٹایِم", "HEPMX": "HEPMX", "JST": "جاپٲنۍ سٹینڑاڑ ٹایِم", "HNEG": "مشرِقی گریٖن لینڑُک سٹینڑاڑ ٹایِم", "WARST": "مغربی ارجٮ۪نٹیٖنا سَمَر ٹایِم", "COT": "کولومبِیا سٹینڑاڑ ٹایِم", "WIT": "مشرِقی اِنڑونیشِیا ٹایِم", "ART": "ارجٮ۪نٹیٖنا سٹینڑاڑ ٹایِم", "ARST": "ارجٮ۪نٹیٖنا سَمَر ٹایِم", "HNPM": "سینٛٹ پَیری مِقیوٗلَن سٹینڑاڑ ٹایِم", "NZST": "نِوزِلینڑ سٹینڑاڑ ٹایِم", "CLT": "چِلی سٹینڑاڑ ٹایِم", "TMST": "تُرکمٮ۪نِستان سَمَر ٹایِم", "ECT": "اِکویڑَر ٹایِم", "EST": "مشرقی سٹینڑاڑ ٹایِم", "ACWST": "آسٹریلِیَن مرکزی مغربی سٹینڑاڑ ٹایِم", "ChST": "کٮ۪مورو سٹینڑاڑ ٹایِم", "GFT": "فرٛٮ۪نٛچ گیوٗٮ۪نا ٹایِم", "CAT": "مرکزی افریٖقا ٹایِم", "OEZ": "مشرقی یوٗرپی سٹینڑاڑ ٹایِم", "COST": "کولومبِیا سَمَر ٹایِم", "EDT": "مشرقی ڈےلایِٔٹ ٹایِم"},
+ timezones: map[string]string{"LHDT": "لعاڑ ڑےلایٔٹ ٹایِم", "HNCU": "کیوٗبا سٹینڑاڑ ٹایِم", "PST": "پیسِفِک سٹینڑاڑ ٹایِم", "OEZ": "مشرقی یوٗرپی سٹینڑاڑ ٹایِم", "JST": "جاپٲنۍ سٹینڑاڑ ٹایِم", "WART": "مغربی ارجٮ۪نٹیٖنا سٹینڑاڑ ٹایِم", "TMST": "تُرکمٮ۪نِستان سَمَر ٹایِم", "COST": "کولومبِیا سَمَر ٹایِم", "UYT": "یوٗرٮ۪گوَے سٹینڑاڑ ٹایِم", "WITA": "مرکزی اِنڑونیشِیا ٹایِم", "ChST": "کٮ۪مورو سٹینڑاڑ ٹایِم", "GYT": "گُیَنا ٹایِم", "AWST": "آسٹریلِیَن مغرِبی سٹینڑاڑ ٹایِم", "ACST": "آسٹریلِیَن مرکزی سٹینڑاڑ ٹایِم", "BT": "بوٗٹان ٹایِم", "HNT": "نیوٗ فاونڑلینڑ سٹینڑاڑ ٹایِم", "HAT": "نیوٗ فاونڑ لینڑ ڑےلایِٔٹ ٹایِم", "UYST": "یوٗرٮ۪گوَے سَمَر ٹایِم", "∅∅∅": "اٮ۪زورٕس سَمَر ٹ", "SAST": "جنوٗبی افریقا ٹایِم", "CHAST": "کٮ۪تھَم سٹینڑاڑ ٹایِم", "CHADT": "چٮ۪تھَم سَمَر ٹایِم", "OESZ": "مشرقی یوٗرپی سَمَر ٹایِم", "COT": "کولومبِیا سٹینڑاڑ ٹایِم", "HNNOMX": "HNNOMX", "NZDT": "نِوزِلینڑ ڑےلایٔٹ ٹایِم", "MST": "مَکَعوٗ سٹینڑاڑ ٹایِم", "AKDT": "اٮ۪لاسکا ڈےلایِٔٹ ٹایِم", "SRT": "سُرِنام ٹایِم", "IST": "ہِنٛدوستان", "ACWDT": "آسٹریلِیَن مرکزی مغربی ڈےلایِٔٹ ٹایِم", "VET": "وٮ۪نٮ۪زیوٗلا ٹایِم", "JDT": "جاپٲنۍ ڑےلایِٔٹ ٹایِم", "CLST": "چِلی سَمَر ٹایِم", "HKST": "حانٛگ کانٛگ سَمَر ٹایِم", "ACDT": "آسٹریلِیَن مرکزی ڈےلایِٔٹ ٹایِم", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "CST": "مرکزی سٹینڑاڑ ٹایِم", "ECT": "اِکویڑَر ٹایِم", "NZST": "نِوزِلینڑ سٹینڑاڑ ٹایِم", "MESZ": "مرکزی یوٗرپی سَمَر ٹایِم", "AST": "اٮ۪ٹلانٹِک سٹینڑاڑ ٹایِم", "AEST": "آسٹریلِیَن مشرقی سٹینڑاڑ ٹایِم", "HNPM": "سینٛٹ پَیری مِقیوٗلَن سٹینڑاڑ ٹایِم", "EST": "مشرقی سٹینڑاڑ ٹایِم", "HKT": "حانگ کانٛگ سٹینڑاڑ ٹایِم", "EAT": "مشرقی افریٖقا ٹایِم", "CAT": "مرکزی افریٖقا ٹایِم", "MYT": "مَلیشِیا ٹایِم", "HNOG": "مغرِبی گریٖن لینڑُک سٹینڑاڑ ٹایِم", "WESZ": "مغرِبی یوٗرِپی سَمَر ٹایِم", "ART": "ارجٮ۪نٹیٖنا سٹینڑاڑ ٹایِم", "ARST": "ارجٮ۪نٹیٖنا سَمَر ٹایِم", "WIB": "مغرِبی اِنڑونیشِیا ٹایِم", "PDT": "پیسِفِک ڈےلایِٔٹ ٹایِم", "ACWST": "آسٹریلِیَن مرکزی مغربی سٹینڑاڑ ٹایِم", "WAT": "مغربی افریٖقا سٹینڑاڑ ٹایِم", "HEPM": "سینٛٹ پَیری مِقیوٗلَن ڑےلایِٔٹ ٹایِم", "HECU": "کیوٗبا ڈےلایِٔٹ ٹایِم", "SGT": "سِنٛگاپوٗر ٹایِم", "HEOG": "مغرِبی گریٖن لینڑُک سَمَر ٹایِم", "WIT": "مشرِقی اِنڑونیشِیا ٹایِم", "WARST": "مغربی ارجٮ۪نٹیٖنا سَمَر ٹایِم", "GMT": "گرٛیٖن وِچ میٖن ٹایِم", "MDT": "مَکَعوٗ سَمَر ٹایِم", "HEEG": "مشرِقی گریٖن لینڑُک سَمَر ٹایِم", "GFT": "فرٛٮ۪نٛچ گیوٗٮ۪نا ٹایِم", "BOT": "بولِوِیا ٹایِم", "HADT": "حَواے اٮ۪لیوٗٹِیَن سَمَر ٹایِم", "WEZ": "مغرِبی یوٗرپی سٹینڑاڑ ٹایِم", "AKST": "اٮ۪لاسکا سٹینڑاڑ ٹایِم", "AEDT": "آسٹریلِیَن مشرقی ڈےلایِٔٹ ٹایِم", "LHST": "لعاڑ حووے سٹینڑاڑ ٹایِم", "HAST": "حَواے اٮ۪لیوٗٹِیَن سٹینڑاڑ ٹایِم", "ADT": "اٮ۪ٹلانٹِک ڈےلایِٔٹ ٹایِم", "WAST": "مغربی افریٖقا سَمَر ٹایِم", "HENOMX": "HENOMX", "CDT": "مرکزی ڈےلایِٔٹ ٹایِم", "AWDT": "آسٹریلِیَن مغرِبیٖ ڈےلایٔٹ ٹایِم", "MEZ": "مرکزی یوٗرپی سٹینڑاڑ ٹایِم", "CLT": "چِلی سٹینڑاڑ ٹایِم", "TMT": "تُرکمٮ۪نِستان سٹینڑاڑ ٹایِم", "EDT": "مشرقی ڈےلایِٔٹ ٹایِم", "HNEG": "مشرِقی گریٖن لینڑُک سٹینڑاڑ ٹایِم"},
}
}
diff --git a/ksb/ksb.go b/ksb/ksb.go
index b79e6a61..da6bd898 100644
--- a/ksb/ksb.go
+++ b/ksb/ksb.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Klisto", "Baada ya Klisto"},
- timezones: map[string]string{"MST": "MST", "ADT": "ADT", "GYT": "GYT", "VET": "VET", "AWDT": "AWDT", "CHAST": "CHAST", "WAST": "WAST", "ACST": "ACST", "WART": "WART", "SGT": "SGT", "AKST": "AKST", "HADT": "HADT", "AEDT": "AEDT", "NZDT": "NZDT", "HEEG": "HEEG", "AWST": "AWST", "COT": "COT", "LHST": "LHST", "LHDT": "LHDT", "UYT": "UYT", "CDT": "CDT", "AEST": "AEST", "HKST": "HKST", "JDT": "JDT", "ChST": "ChST", "ACWDT": "ACWDT", "HNT": "HNT", "HNNOMX": "HNNOMX", "WESZ": "WESZ", "TMT": "TMT", "HEPMX": "HEPMX", "CST": "CST", "HAST": "HAST", "NZST": "NZST", "CLST": "CLST", "MESZ": "MESZ", "AKDT": "AKDT", "EAT": "EAT", "OEZ": "OEZ", "MYT": "MYT", "SRT": "SRT", "PST": "PST", "WEZ": "WEZ", "HNPM": "HNPM", "HNEG": "HNEG", "ACWST": "ACWST", "SAST": "SAST", "HECU": "HECU", "HNCU": "HNCU", "PDT": "PDT", "HEOG": "HEOG", "BOT": "BOT", "TMST": "TMST", "UYST": "UYST", "HAT": "HAT", "HEPM": "HEPM", "GFT": "GFT", "MDT": "MDT", "WIT": "WIT", "BT": "BT", "ACDT": "ACDT", "OESZ": "OESZ", "AST": "AST", "ART": "ART", "WAT": "WAT", "HNPMX": "HNPMX", "ECT": "ECT", "GMT": "GMT", "EST": "EST", "EDT": "EDT", "MEZ": "MEZ", "CHADT": "CHADT", "WARST": "WARST", "HENOMX": "HENOMX", "HNOG": "HNOG", "IST": "IST", "CLT": "CLT", "CAT": "CAT", "COST": "COST", "WIB": "WIB", "ARST": "ARST", "HKT": "HKT", "WITA": "WITA", "∅∅∅": "∅∅∅", "JST": "JST"},
+ timezones: map[string]string{"CST": "CST", "CDT": "CDT", "MST": "MST", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "HNEG": "HNEG", "AKST": "AKST", "AKDT": "AKDT", "AWST": "AWST", "CHADT": "CHADT", "WESZ": "WESZ", "TMST": "TMST", "WAT": "WAT", "HEEG": "HEEG", "CHAST": "CHAST", "BOT": "BOT", "MYT": "MYT", "HKT": "HKT", "COST": "COST", "HNT": "HNT", "HKST": "HKST", "BT": "BT", "WITA": "WITA", "LHST": "LHST", "WART": "WART", "OEZ": "OEZ", "HAT": "HAT", "HNPMX": "HNPMX", "CLT": "CLT", "AST": "AST", "HECU": "HECU", "WIT": "WIT", "PDT": "PDT", "CAT": "CAT", "NZST": "NZST", "WARST": "WARST", "ART": "ART", "ARST": "ARST", "UYT": "UYT", "LHDT": "LHDT", "SRT": "SRT", "∅∅∅": "∅∅∅", "GFT": "GFT", "UYST": "UYST", "JDT": "JDT", "WEZ": "WEZ", "WAST": "WAST", "COT": "COT", "ACWST": "ACWST", "NZDT": "NZDT", "MESZ": "MESZ", "VET": "VET", "JST": "JST", "OESZ": "OESZ", "HNPM": "HNPM", "EAT": "EAT", "WIB": "WIB", "SGT": "SGT", "HAST": "HAST", "GMT": "GMT", "ChST": "ChST", "AWDT": "AWDT", "MEZ": "MEZ", "SAST": "SAST", "GYT": "GYT", "ECT": "ECT", "HADT": "HADT", "IST": "IST", "EDT": "EDT", "ACDT": "ACDT", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "CLST": "CLST", "HNOG": "HNOG", "EST": "EST", "HEOG": "HEOG", "ADT": "ADT", "MDT": "MDT", "ACST": "ACST", "AEDT": "AEDT", "HEPMX": "HEPMX", "PST": "PST", "TMT": "TMT", "AEST": "AEST", "HEPM": "HEPM"},
}
}
diff --git a/ksb_TZ/ksb_TZ.go b/ksb_TZ/ksb_TZ.go
index 896e80ab..bb6f8e3d 100644
--- a/ksb_TZ/ksb_TZ.go
+++ b/ksb_TZ/ksb_TZ.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Klisto", "Baada ya Klisto"},
- timezones: map[string]string{"UYT": "UYT", "HAST": "HAST", "VET": "VET", "ACWST": "ACWST", "ECT": "ECT", "EAT": "EAT", "MYT": "MYT", "WIT": "WIT", "ART": "ART", "ACST": "ACST", "ADT": "ADT", "AKDT": "AKDT", "SRT": "SRT", "HNT": "HNT", "SAST": "SAST", "AKST": "AKST", "PDT": "PDT", "WESZ": "WESZ", "TMST": "TMST", "HEPMX": "HEPMX", "HADT": "HADT", "LHDT": "LHDT", "WART": "WART", "HNNOMX": "HNNOMX", "HNOG": "HNOG", "AEDT": "AEDT", "JST": "JST", "OESZ": "OESZ", "WAST": "WAST", "HNCU": "HNCU", "MST": "MST", "MESZ": "MESZ", "WEZ": "WEZ", "HNPMX": "HNPMX", "BOT": "BOT", "HKST": "HKST", "IST": "IST", "JDT": "JDT", "CAT": "CAT", "WARST": "WARST", "CST": "CST", "OEZ": "OEZ", "SGT": "SGT", "EDT": "EDT", "WITA": "WITA", "ACWDT": "ACWDT", "HKT": "HKT", "CHAST": "CHAST", "ChST": "ChST", "HEEG": "HEEG", "HECU": "HECU", "EST": "EST", "HEOG": "HEOG", "GYT": "GYT", "ARST": "ARST", "HEPM": "HEPM", "LHST": "LHST", "NZST": "NZST", "WAT": "WAT", "HENOMX": "HENOMX", "AST": "AST", "CLST": "CLST", "BT": "BT", "WIB": "WIB", "MDT": "MDT", "HNPM": "HNPM", "MEZ": "MEZ", "GFT": "GFT", "COT": "COT", "UYST": "UYST", "PST": "PST", "AWDT": "AWDT", "CHADT": "CHADT", "CLT": "CLT", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "ACDT": "ACDT", "HAT": "HAT", "COST": "COST", "AEST": "AEST", "AWST": "AWST", "NZDT": "NZDT", "TMT": "TMT", "GMT": "GMT", "CDT": "CDT"},
+ timezones: map[string]string{"HNEG": "HNEG", "AWST": "AWST", "PDT": "PDT", "MESZ": "MESZ", "WARST": "WARST", "ACWST": "ACWST", "HEEG": "HEEG", "HNPMX": "HNPMX", "HKT": "HKT", "WAST": "WAST", "EST": "EST", "COT": "COT", "BOT": "BOT", "AST": "AST", "OEZ": "OEZ", "MST": "MST", "COST": "COST", "HAT": "HAT", "WEZ": "WEZ", "WART": "WART", "CLT": "CLT", "ARST": "ARST", "JDT": "JDT", "ADT": "ADT", "HKST": "HKST", "LHST": "LHST", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "CDT": "CDT", "SGT": "SGT", "PST": "PST", "VET": "VET", "GMT": "GMT", "ChST": "ChST", "HNCU": "HNCU", "CHADT": "CHADT", "HAST": "HAST", "ACWDT": "ACWDT", "CHAST": "CHAST", "HADT": "HADT", "HNOG": "HNOG", "GFT": "GFT", "UYT": "UYT", "UYST": "UYST", "EAT": "EAT", "HECU": "HECU", "NZST": "NZST", "MEZ": "MEZ", "GYT": "GYT", "CST": "CST", "JST": "JST", "WITA": "WITA", "SRT": "SRT", "WIT": "WIT", "AWDT": "AWDT", "ART": "ART", "AKST": "AKST", "IST": "IST", "EDT": "EDT", "TMST": "TMST", "HEPMX": "HEPMX", "WIB": "WIB", "ECT": "ECT", "CLST": "CLST", "TMT": "TMT", "SAST": "SAST", "CAT": "CAT", "MYT": "MYT", "MDT": "MDT", "ACST": "ACST", "AKDT": "AKDT", "HEPM": "HEPM", "WAT": "WAT", "HNNOMX": "HNNOMX", "HNT": "HNT", "AEDT": "AEDT", "HENOMX": "HENOMX", "ACDT": "ACDT", "BT": "BT", "AEST": "AEST", "NZDT": "NZDT", "WESZ": "WESZ", "HEOG": "HEOG", "OESZ": "OESZ", "HNPM": "HNPM"},
}
}
diff --git a/ksf/ksf.go b/ksf/ksf.go
index 807c64e4..92aea31e 100644
--- a/ksf/ksf.go
+++ b/ksf/ksf.go
@@ -64,7 +64,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"d.Y.", "k.Y."},
erasNarrow: []string{"", ""},
erasWide: []string{"di Yɛ́sus aká yálɛ", "cámɛɛn kǝ kǝbɔpka Y"},
- timezones: map[string]string{"∅∅∅": "∅∅∅", "CST": "CST", "HAST": "HAST", "ACWDT": "ACWDT", "ARST": "ARST", "PDT": "PDT", "HKT": "HKT", "GYT": "GYT", "ART": "ART", "ACWST": "ACWST", "AEST": "AEST", "HEPM": "HEPM", "JDT": "JDT", "OESZ": "OESZ", "COT": "COT", "VET": "VET", "HNT": "HNT", "LHDT": "LHDT", "HEEG": "HEEG", "HNPM": "HNPM", "EST": "EST", "EDT": "EDT", "HEOG": "HEOG", "PST": "PST", "AWDT": "AWDT", "HKST": "HKST", "WITA": "WITA", "CHADT": "CHADT", "CLST": "CLST", "HENOMX": "HENOMX", "AKST": "AKST", "WIB": "WIB", "IST": "IST", "WARST": "WARST", "SRT": "SRT", "NZST": "NZST", "HNNOMX": "HNNOMX", "GMT": "GMT", "MDT": "MDT", "ADT": "ADT", "MYT": "MYT", "WIT": "WIT", "AWST": "AWST", "NZDT": "NZDT", "CHAST": "CHAST", "CLT": "CLT", "GFT": "GFT", "ACDT": "ACDT", "HADT": "HADT", "WEZ": "WEZ", "ChST": "ChST", "AKDT": "AKDT", "WESZ": "WESZ", "MESZ": "MESZ", "CAT": "CAT", "HAT": "HAT", "TMT": "TMT", "TMST": "TMST", "UYST": "UYST", "ACST": "ACST", "UYT": "UYT", "HNOG": "HNOG", "COST": "COST", "MEZ": "MEZ", "SAST": "SAST", "BOT": "BOT", "HNEG": "HNEG", "ECT": "ECT", "WAST": "WAST", "WART": "WART", "HNCU": "HNCU", "HECU": "HECU", "HNPMX": "HNPMX", "AEDT": "AEDT", "LHST": "LHST", "JST": "JST", "WAT": "WAT", "SGT": "SGT", "MST": "MST", "HEPMX": "HEPMX", "AST": "AST", "CDT": "CDT", "BT": "BT", "EAT": "EAT", "OEZ": "OEZ"},
+ timezones: map[string]string{"HNOG": "HNOG", "OEZ": "OEZ", "MYT": "MYT", "PDT": "PDT", "MEZ": "MEZ", "WART": "WART", "COST": "COST", "WITA": "WITA", "AKDT": "AKDT", "CHADT": "CHADT", "JDT": "JDT", "EST": "EST", "HKST": "HKST", "ECT": "ECT", "JST": "JST", "HNEG": "HNEG", "CLST": "CLST", "EDT": "EDT", "HEEG": "HEEG", "HADT": "HADT", "ACWDT": "ACWDT", "NZST": "NZST", "BOT": "BOT", "ACST": "ACST", "HENOMX": "HENOMX", "HEPM": "HEPM", "HECU": "HECU", "WIB": "WIB", "AWDT": "AWDT", "VET": "VET", "AEDT": "AEDT", "HEPMX": "HEPMX", "CAT": "CAT", "HAST": "HAST", "ACWST": "ACWST", "CLT": "CLT", "AKST": "AKST", "GFT": "GFT", "HNPM": "HNPM", "LHST": "LHST", "CHAST": "CHAST", "HEOG": "HEOG", "WEZ": "WEZ", "WARST": "WARST", "ARST": "ARST", "HNCU": "HNCU", "SGT": "SGT", "MESZ": "MESZ", "MDT": "MDT", "COT": "COT", "HNT": "HNT", "UYT": "UYT", "GYT": "GYT", "PST": "PST", "WESZ": "WESZ", "WAT": "WAT", "HKT": "HKT", "ACDT": "ACDT", "ChST": "ChST", "CST": "CST", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "SRT": "SRT", "CDT": "CDT", "AST": "AST", "GMT": "GMT", "MST": "MST", "WAST": "WAST", "BT": "BT", "ADT": "ADT", "OESZ": "OESZ", "IST": "IST", "SAST": "SAST", "LHDT": "LHDT", "TMT": "TMT", "TMST": "TMST", "HNNOMX": "HNNOMX", "HAT": "HAT", "AEST": "AEST", "UYST": "UYST", "EAT": "EAT", "WIT": "WIT", "AWST": "AWST", "ART": "ART", "NZDT": "NZDT"},
}
}
diff --git a/ksf_CM/ksf_CM.go b/ksf_CM/ksf_CM.go
index 5966c5b4..320e7abe 100644
--- a/ksf_CM/ksf_CM.go
+++ b/ksf_CM/ksf_CM.go
@@ -64,7 +64,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"d.Y.", "k.Y."},
erasNarrow: []string{"", ""},
erasWide: []string{"di Yɛ́sus aká yálɛ", "cámɛɛn kǝ kǝbɔpka Y"},
- timezones: map[string]string{"SAST": "SAST", "ACST": "ACST", "ECT": "ECT", "HECU": "HECU", "EDT": "EDT", "WIT": "WIT", "OEZ": "OEZ", "COT": "COT", "HNT": "HNT", "HNOG": "HNOG", "ACDT": "ACDT", "HEPMX": "HEPMX", "ADT": "ADT", "ART": "ART", "LHST": "LHST", "CLT": "CLT", "AKDT": "AKDT", "MYT": "MYT", "HKST": "HKST", "HNEG": "HNEG", "EAT": "EAT", "SRT": "SRT", "PDT": "PDT", "ACWST": "ACWST", "WIB": "WIB", "ACWDT": "ACWDT", "AWDT": "AWDT", "HNPM": "HNPM", "NZST": "NZST", "JDT": "JDT", "GMT": "GMT", "CST": "CST", "AST": "AST", "HAST": "HAST", "AEST": "AEST", "HEPM": "HEPM", "LHDT": "LHDT", "CHADT": "CHADT", "CAT": "CAT", "OESZ": "OESZ", "WEZ": "WEZ", "HEOG": "HEOG", "HKT": "HKT", "WITA": "WITA", "TMT": "TMT", "WAT": "WAT", "CDT": "CDT", "BT": "BT", "MEZ": "MEZ", "HEEG": "HEEG", "HENOMX": "HENOMX", "MST": "MST", "HADT": "HADT", "VET": "VET", "MESZ": "MESZ", "CLST": "CLST", "ChST": "ChST", "WAST": "WAST", "SGT": "SGT", "GFT": "GFT", "WESZ": "WESZ", "IST": "IST", "WART": "WART", "WARST": "WARST", "HNNOMX": "HNNOMX", "PST": "PST", "CHAST": "CHAST", "JST": "JST", "BOT": "BOT", "TMST": "TMST", "HNPMX": "HNPMX", "AEDT": "AEDT", "AWST": "AWST", "NZDT": "NZDT", "HNCU": "HNCU", "UYST": "UYST", "ARST": "ARST", "∅∅∅": "∅∅∅", "EST": "EST", "AKST": "AKST", "HAT": "HAT", "COST": "COST", "MDT": "MDT", "GYT": "GYT", "UYT": "UYT"},
+ timezones: map[string]string{"HEPMX": "HEPMX", "IST": "IST", "ACST": "ACST", "∅∅∅": "∅∅∅", "WIB": "WIB", "NZDT": "NZDT", "MEZ": "MEZ", "ADT": "ADT", "HNCU": "HNCU", "MESZ": "MESZ", "AST": "AST", "WEZ": "WEZ", "EDT": "EDT", "BT": "BT", "LHST": "LHST", "PDT": "PDT", "HNOG": "HNOG", "GMT": "GMT", "TMT": "TMT", "HEPM": "HEPM", "OESZ": "OESZ", "MYT": "MYT", "TMST": "TMST", "HNNOMX": "HNNOMX", "WITA": "WITA", "ECT": "ECT", "ACWDT": "ACWDT", "NZST": "NZST", "MDT": "MDT", "HNEG": "HNEG", "UYST": "UYST", "VET": "VET", "OEZ": "OEZ", "EST": "EST", "HAT": "HAT", "ChST": "ChST", "HAST": "HAST", "HADT": "HADT", "WARST": "WARST", "ACDT": "ACDT", "AKST": "AKST", "LHDT": "LHDT", "WIT": "WIT", "CHAST": "CHAST", "WART": "WART", "CLST": "CLST", "WAT": "WAT", "COT": "COT", "EAT": "EAT", "HECU": "HECU", "CHADT": "CHADT", "CAT": "CAT", "HENOMX": "HENOMX", "SAST": "SAST", "AWST": "AWST", "JST": "JST", "COST": "COST", "AKDT": "AKDT", "HNPMX": "HNPMX", "BOT": "BOT", "CLT": "CLT", "HNT": "HNT", "AEST": "AEST", "HNPM": "HNPM", "ART": "ART", "GYT": "GYT", "CST": "CST", "CDT": "CDT", "PST": "PST", "ACWST": "ACWST", "JDT": "JDT", "MST": "MST", "WAST": "WAST", "UYT": "UYT", "AWDT": "AWDT", "SGT": "SGT", "ARST": "ARST", "HKT": "HKT", "AEDT": "AEDT", "GFT": "GFT", "SRT": "SRT", "HEOG": "HEOG", "WESZ": "WESZ", "HKST": "HKST", "HEEG": "HEEG"},
}
}
diff --git a/ksh/ksh.go b/ksh/ksh.go
index b3c37563..39f10919 100644
--- a/ksh/ksh.go
+++ b/ksh/ksh.go
@@ -72,7 +72,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr."},
erasNarrow: []string{"vC", "nC"},
erasWide: []string{"vür Krestos", "noh Krestos"},
- timezones: map[string]string{"HADT": "HADT", "HKT": "HKT", "JST": "JST", "ARST": "ARST", "PDT": "PDT", "UYST": "UYST", "WIB": "WIB", "ACWDT": "ACWDT", "AWDT": "AWDT", "MESZ": "Meddel-Europpa sing Summerzick", "OESZ": "Oß-Europpa sing Summerzick", "EAT": "Oß-Affrekaanesche Zigg", "HEPMX": "HEPMX", "MYT": "MYT", "BT": "BT", "HEOG": "HEOG", "HNT": "HNT", "CLST": "CLST", "HENOMX": "HENOMX", "COT": "COT", "HNPMX": "HNPMX", "AKST": "AKST", "ADT": "ADT", "MST": "MST", "AKDT": "AKDT", "HAST": "HAST", "HAT": "HAT", "HNOG": "HNOG", "∅∅∅": "∅∅∅", "HKST": "HKST", "HECU": "HECU", "HNEG": "HNEG", "GFT": "GFT", "ACST": "ACST", "WAT": "Jewöhnlijje Wäß-Affrekaanesche Zigg", "HNCU": "HNCU", "UYT": "UYT", "WEZ": "Weß-Europpa sing jewöhnlijje Zick", "AWST": "AWST", "TMT": "TMT", "CAT": "Zentraal-Affrekaanesche Zigg", "SGT": "SGT", "WIT": "WIT", "MEZ": "Meddel-Europpa sing jewöhnlijje Zick", "IST": "IST", "NZDT": "NZDT", "BOT": "BOT", "HNNOMX": "HNNOMX", "AST": "AST", "VET": "VET", "HEPM": "HEPM", "WARST": "WARST", "COST": "COST", "CST": "CST", "HNPM": "HNPM", "WAST": "Wäß-Affrekaanesche Sommerzigg", "CDT": "CDT", "MDT": "MDT", "JDT": "JDT", "LHDT": "LHDT", "GMT": "Greenwich sing Standat-Zick", "SRT": "SRT", "AEST": "AEST", "NZST": "NZST", "ACDT": "ACDT", "WART": "WART", "EST": "EST", "GYT": "GYT", "ART": "ART", "WITA": "WITA", "SAST": "Söd-Affrekaanesche Zigg", "CLT": "CLT", "TMST": "TMST", "ChST": "ChST", "OEZ": "Oß-Europpa sing jewöhnlijje Zick", "ACWST": "ACWST", "CHAST": "CHAST", "LHST": "LHST", "ECT": "ECT", "CHADT": "CHADT", "HEEG": "HEEG", "EDT": "EDT", "PST": "PST", "WESZ": "Weß-Europpa sing Summerzick", "AEDT": "AEDT"},
+ timezones: map[string]string{"ECT": "ECT", "IST": "IST", "OESZ": "Oß-Europpa sing Summerzick", "HKST": "HKST", "CHAST": "CHAST", "CAT": "Zentraal-Affrekaanesche Zigg", "GMT": "Greenwich sing Standat-Zick", "EST": "EST", "COST": "COST", "HEPMX": "HEPMX", "HAT": "HAT", "HEEG": "HEEG", "LHST": "LHST", "WIB": "WIB", "HNCU": "HNCU", "SGT": "SGT", "∅∅∅": "∅∅∅", "JST": "JST", "WEZ": "Weß-Europpa sing jewöhnlijje Zick", "MDT": "MDT", "HKT": "HKT", "PST": "PST", "HEOG": "HEOG", "ACST": "ACST", "ACDT": "ACDT", "COT": "COT", "HECU": "HECU", "BOT": "BOT", "JDT": "JDT", "WART": "WART", "WARST": "WARST", "TMST": "TMST", "LHDT": "LHDT", "CLT": "CLT", "HNOG": "HNOG", "SAST": "Söd-Affrekaanesche Zigg", "HAST": "HAST", "CLST": "CLST", "TMT": "TMT", "WAT": "Jewöhnlijje Wäß-Affrekaanesche Zigg", "WITA": "WITA", "HNPM": "HNPM", "MST": "MST", "HADT": "HADT", "ARST": "ARST", "AKDT": "AKDT", "AEST": "AEST", "AEDT": "AEDT", "CHADT": "CHADT", "PDT": "PDT", "NZDT": "NZDT", "ACWST": "ACWST", "ACWDT": "ACWDT", "HENOMX": "HENOMX", "GFT": "GFT", "ChST": "ChST", "GYT": "GYT", "UYST": "UYST", "EAT": "Oß-Affrekaanesche Zigg", "AST": "AST", "WAST": "Wäß-Affrekaanesche Sommerzigg", "EDT": "EDT", "HNT": "HNT", "AKST": "AKST", "UYT": "UYT", "AWST": "AWST", "NZST": "NZST", "MYT": "MYT", "OEZ": "Oß-Europpa sing jewöhnlijje Zick", "MEZ": "Meddel-Europpa sing jewöhnlijje Zick", "WESZ": "Weß-Europpa sing Summerzick", "HNNOMX": "HNNOMX", "HNEG": "HNEG", "HEPM": "HEPM", "WIT": "WIT", "AWDT": "AWDT", "MESZ": "Meddel-Europpa sing Summerzick", "VET": "VET", "ART": "ART", "BT": "BT", "SRT": "SRT", "ADT": "ADT", "HNPMX": "HNPMX", "CST": "CST", "CDT": "CDT"},
}
}
diff --git a/ksh_DE/ksh_DE.go b/ksh_DE/ksh_DE.go
index b1c0d9aa..5b05a627 100644
--- a/ksh_DE/ksh_DE.go
+++ b/ksh_DE/ksh_DE.go
@@ -72,7 +72,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr."},
erasNarrow: []string{"vC", "nC"},
erasWide: []string{"vür Krestos", "noh Krestos"},
- timezones: map[string]string{"HAST": "HAST", "HADT": "HADT", "HEOG": "HEOG", "IST": "IST", "EDT": "EDT", "AKST": "AKST", "ACDT": "ACDT", "HENOMX": "HENOMX", "WART": "WART", "SGT": "SGT", "HEPMX": "HEPMX", "HEPM": "HEPM", "CHADT": "CHADT", "OESZ": "Oß-Europpa sing Summerzick", "COST": "COST", "GMT": "Greenwich sing Standat-Zick", "CLST": "CLST", "ChST": "ChST", "MST": "MST", "VET": "VET", "WIT": "WIT", "AWDT": "AWDT", "NZDT": "NZDT", "CST": "CST", "WIB": "WIB", "AWST": "AWST", "ACST": "ACST", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "GYT": "GYT", "HNOG": "HNOG", "TMST": "TMST", "CDT": "CDT", "MYT": "MYT", "SRT": "SRT", "LHDT": "LHDT", "HAT": "HAT", "ARST": "ARST", "HKST": "HKST", "WAST": "Wäß-Affrekaanesche Sommerzigg", "HNCU": "HNCU", "AST": "AST", "HKT": "HKT", "NZST": "NZST", "EAT": "Oß-Affrekaanesche Zigg", "OEZ": "Oß-Europpa sing jewöhnlijje Zick", "HNT": "HNT", "ART": "ART", "PDT": "PDT", "MDT": "MDT", "ADT": "ADT", "UYT": "UYT", "WESZ": "Weß-Europpa sing Summerzick", "ACWDT": "ACWDT", "MEZ": "Meddel-Europpa sing jewöhnlijje Zick", "∅∅∅": "∅∅∅", "JST": "JST", "HECU": "HECU", "EST": "EST", "WEZ": "Weß-Europpa sing jewöhnlijje Zick", "HNPM": "HNPM", "BOT": "BOT", "ECT": "ECT", "WARST": "WARST", "ACWST": "ACWST", "CHAST": "CHAST", "SAST": "Söd-Affrekaanesche Zigg", "TMT": "TMT", "CAT": "Zentraal-Affrekaanesche Zigg", "JDT": "JDT", "WAT": "Jewöhnlijje Wäß-Affrekaanesche Zigg", "AKDT": "AKDT", "WITA": "WITA", "AEDT": "AEDT", "LHST": "LHST", "CLT": "CLT", "UYST": "UYST", "PST": "PST", "HNEG": "HNEG", "GFT": "GFT", "COT": "COT", "BT": "BT", "AEST": "AEST", "MESZ": "Meddel-Europpa sing Summerzick", "HEEG": "HEEG"},
+ timezones: map[string]string{"AWST": "AWST", "AWDT": "AWDT", "IST": "IST", "HENOMX": "HENOMX", "CDT": "CDT", "JST": "JST", "OESZ": "Oß-Europpa sing Summerzick", "WAT": "Jewöhnlijje Wäß-Affrekaanesche Zigg", "HKST": "HKST", "HNEG": "HNEG", "WITA": "WITA", "SGT": "SGT", "HEPM": "HEPM", "ACWDT": "ACWDT", "AST": "AST", "MYT": "MYT", "AKDT": "AKDT", "UYST": "UYST", "EAT": "Oß-Affrekaanesche Zigg", "OEZ": "Oß-Europpa sing jewöhnlijje Zick", "GFT": "GFT", "LHDT": "LHDT", "WAST": "Wäß-Affrekaanesche Sommerzigg", "EST": "EST", "AEST": "AEST", "TMST": "TMST", "SRT": "SRT", "CST": "CST", "WIT": "WIT", "ECT": "ECT", "WESZ": "Weß-Europpa sing Summerzick", "HNPM": "HNPM", "HNCU": "HNCU", "WARST": "WARST", "CLST": "CLST", "ACDT": "ACDT", "AKST": "AKST", "ChST": "ChST", "WIB": "WIB", "CHAST": "CHAST", "CAT": "Zentraal-Affrekaanesche Zigg", "HNOG": "HNOG", "COT": "COT", "HEEG": "HEEG", "UYT": "UYT", "PDT": "PDT", "HEOG": "HEOG", "HNNOMX": "HNNOMX", "BT": "BT", "HAT": "HAT", "PST": "PST", "HAST": "HAST", "ART": "ART", "HNT": "HNT", "AEDT": "AEDT", "GYT": "GYT", "CHADT": "CHADT", "VET": "VET", "ADT": "ADT", "CLT": "CLT", "HECU": "HECU", "NZST": "NZST", "NZDT": "NZDT", "WEZ": "Weß-Europpa sing jewöhnlijje Zick", "GMT": "Greenwich sing Standat-Zick", "TMT": "TMT", "COST": "COST", "∅∅∅": "de Azore ier Summerzick", "JDT": "JDT", "HADT": "HADT", "BOT": "BOT", "ACWST": "ACWST", "MEZ": "Meddel-Europpa sing jewöhnlijje Zick", "WART": "WART", "ARST": "ARST", "ACST": "ACST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "MESZ": "Meddel-Europpa sing Summerzick", "MST": "MST", "EDT": "EDT", "HKT": "HKT", "LHST": "LHST", "MDT": "MDT", "SAST": "Söd-Affrekaanesche Zigg"},
}
}
diff --git a/kw/kw.go b/kw/kw.go
index d4b68e78..fe5ddfba 100644
--- a/kw/kw.go
+++ b/kw/kw.go
@@ -57,7 +57,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"RC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"ACST": "ACST", "HNCU": "HNCU", "AWDT": "AWDT", "LHDT": "LHDT", "HNEG": "HNEG", "GFT": "GFT", "AEDT": "AEDT", "CST": "CST", "AST": "AST", "HNPMX": "HNPMX", "ART": "ART", "HENOMX": "HENOMX", "EDT": "EDT", "CAT": "CAT", "UYST": "UYST", "AEST": "AEST", "ChST": "ChST", "ACDT": "ACDT", "WART": "WART", "CDT": "CDT", "CHAST": "CHAST", "JST": "JST", "ECT": "ECT", "HEPMX": "HEPMX", "VET": "VET", "WIT": "WIT", "AWST": "AWST", "WARST": "WARST", "EST": "EST", "HECU": "HECU", "AKDT": "AKDT", "HAST": "HAST", "WEZ": "WEZ", "ACWST": "ACWST", "CLT": "CLT", "WAST": "WAST", "MDT": "MDT", "SRT": "SRT", "HNOG": "HNOG", "MEZ": "MEZ", "NZST": "NZST", "BOT": "BOT", "SGT": "SGT", "GMT": "GMT", "MST": "MST", "HADT": "HADT", "WITA": "WITA", "∅∅∅": "∅∅∅", "TMST": "TMST", "EAT": "EAT", "OESZ": "OESZ", "AKST": "AKST", "ACWDT": "ACWDT", "CHADT": "CHADT", "JDT": "JDT", "HEEG": "HEEG", "UYT": "UYT", "PST": "PST", "PDT": "PDT", "WESZ": "WESZ", "HKT": "HKT", "LHST": "LHST", "WAT": "WAT", "COST": "COST", "HAT": "HAT", "ARST": "ARST", "HEOG": "HEOG", "MESZ": "MESZ", "NZDT": "NZDT", "MYT": "MYT", "BT": "BT", "OEZ": "OEZ", "COT": "COT", "ADT": "ADT", "HNT": "HNT", "IST": "IST", "CLST": "CLST", "TMT": "TMT", "HKST": "HKST", "HNNOMX": "HNNOMX", "GYT": "GYT", "HEPM": "HEPM", "SAST": "SAST", "WIB": "WIB", "HNPM": "HNPM"},
+ timezones: map[string]string{"HAT": "HAT", "AEDT": "AEDT", "CHADT": "CHADT", "CAT": "CAT", "MEZ": "MEZ", "MST": "MST", "ACST": "ACST", "BT": "BT", "JDT": "JDT", "HECU": "HECU", "CST": "CST", "OESZ": "OESZ", "EST": "EST", "HNEG": "HNEG", "HEPM": "HEPM", "HNT": "HNT", "HNPMX": "HNPMX", "EAT": "EAT", "PDT": "PDT", "MESZ": "MESZ", "HKST": "HKST", "ACDT": "ACDT", "HENOMX": "HENOMX", "TMT": "TMT", "WEZ": "WEZ", "AKST": "AKST", "AEST": "AEST", "ChST": "ChST", "LHDT": "LHDT", "WIB": "WIB", "WARST": "WARST", "HAST": "HAST", "CLT": "CLT", "CLST": "CLST", "AST": "AST", "WESZ": "WESZ", "ARST": "ARST", "HEEG": "HEEG", "BOT": "BOT", "LHST": "LHST", "AWDT": "AWDT", "GMT": "GMT", "SAST": "SAST", "WIT": "WIT", "AWST": "AWST", "SGT": "SGT", "PST": "PST", "HNNOMX": "HNNOMX", "GFT": "GFT", "HNPM": "HNPM", "HADT": "HADT", "NZST": "NZST", "MDT": "MDT", "WAST": "WAST", "∅∅∅": "∅∅∅", "SRT": "SRT", "ADT": "ADT", "TMST": "TMST", "VET": "VET", "HNOG": "HNOG", "WAT": "WAT", "CHAST": "CHAST", "OEZ": "OEZ", "EDT": "EDT", "COT": "COT", "GYT": "GYT", "JST": "JST", "WART": "WART", "HEOG": "HEOG", "HNCU": "HNCU", "CDT": "CDT", "ACWDT": "ACWDT", "WITA": "WITA", "HEPMX": "HEPMX", "ECT": "ECT", "IST": "IST", "ACWST": "ACWST", "ART": "ART", "HKT": "HKT", "COST": "COST", "MYT": "MYT", "NZDT": "NZDT", "AKDT": "AKDT", "UYT": "UYT", "UYST": "UYST"},
}
}
diff --git a/kw_GB/kw_GB.go b/kw_GB/kw_GB.go
index 832df6af..ab0cb463 100644
--- a/kw_GB/kw_GB.go
+++ b/kw_GB/kw_GB.go
@@ -57,7 +57,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"RC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"TMT": "TMT", "EST": "EST", "AST": "AST", "UYT": "UYT", "AWDT": "AWDT", "LHST": "LHST", "CHADT": "CHADT", "HEEG": "HEEG", "AKST": "AKST", "CDT": "CDT", "SRT": "SRT", "AEST": "AEST", "HNEG": "HNEG", "VET": "VET", "NZDT": "NZDT", "CHAST": "CHAST", "COT": "COT", "HNCU": "HNCU", "MDT": "MDT", "HKST": "HKST", "IST": "IST", "WARST": "WARST", "CST": "CST", "TMST": "TMST", "EAT": "EAT", "SGT": "SGT", "EDT": "EDT", "UYST": "UYST", "JDT": "JDT", "ChST": "ChST", "CAT": "CAT", "MST": "MST", "HAST": "HAST", "WITA": "WITA", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "GMT": "GMT", "ACWDT": "ACWDT", "ACWST": "ACWST", "ARST": "ARST", "AWST": "AWST", "CLST": "CLST", "WAST": "WAST", "ECT": "ECT", "HENOMX": "HENOMX", "GYT": "GYT", "WIB": "WIB", "ART": "ART", "HNPM": "HNPM", "MEZ": "MEZ", "HECU": "HECU", "MYT": "MYT", "HADT": "HADT", "BT": "BT", "HEPM": "HEPM", "SAST": "SAST", "ACDT": "ACDT", "HNT": "HNT", "HAT": "HAT", "LHDT": "LHDT", "NZST": "NZST", "WAT": "WAT", "WIT": "WIT", "PDT": "PDT", "HNOG": "HNOG", "HEOG": "HEOG", "HKT": "HKT", "ADT": "ADT", "OEZ": "OEZ", "WART": "WART", "AKDT": "AKDT", "AEDT": "AEDT", "CLT": "CLT", "∅∅∅": "∅∅∅", "JST": "JST", "BOT": "BOT", "ACST": "ACST", "COST": "COST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "PST": "PST", "WEZ": "WEZ", "WESZ": "WESZ", "GFT": "GFT", "OESZ": "OESZ"},
+ timezones: map[string]string{"HKST": "HKST", "GFT": "GFT", "CHADT": "CHADT", "MEZ": "MEZ", "MESZ": "MESZ", "WARST": "WARST", "CLST": "CLST", "MDT": "MDT", "SAST": "SAST", "IST": "IST", "HNPMX": "HNPMX", "ECT": "ECT", "WIB": "WIB", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "AEST": "AEST", "HADT": "HADT", "WESZ": "WESZ", "HENOMX": "HENOMX", "AWST": "AWST", "VET": "VET", "TMT": "TMT", "HNT": "HNT", "AKST": "AKST", "EST": "EST", "SRT": "SRT", "CDT": "CDT", "AWDT": "AWDT", "CAT": "CAT", "ADT": "ADT", "MYT": "MYT", "ARST": "ARST", "GYT": "GYT", "HKT": "HKT", "UYT": "UYT", "∅∅∅": "∅∅∅", "BOT": "BOT", "NZDT": "NZDT", "TMST": "TMST", "MST": "MST", "ART": "ART", "HNPM": "HNPM", "HEPMX": "HEPMX", "LHST": "LHST", "JST": "JST", "AST": "AST", "WART": "WART", "WAST": "WAST", "EDT": "EDT", "HNEG": "HNEG", "HECU": "HECU", "CST": "CST", "CHAST": "CHAST", "ACWST": "ACWST", "HNOG": "HNOG", "BT": "BT", "HNCU": "HNCU", "PST": "PST", "GMT": "GMT", "WIT": "WIT", "NZST": "NZST", "ACST": "ACST", "HEEG": "HEEG", "UYST": "UYST", "HAST": "HAST", "WEZ": "WEZ", "ACDT": "ACDT", "HAT": "HAT", "EAT": "EAT", "SGT": "SGT", "WAT": "WAT", "PDT": "PDT", "JDT": "JDT", "HEOG": "HEOG", "COT": "COT", "ChST": "ChST", "LHDT": "LHDT", "WITA": "WITA", "HEPM": "HEPM", "ACWDT": "ACWDT", "OESZ": "OESZ", "CLT": "CLT", "COST": "COST", "AKDT": "AKDT", "AEDT": "AEDT"},
}
}
diff --git a/ky/ky.go b/ky/ky.go
index 68b0ba34..40e2460f 100644
--- a/ky/ky.go
+++ b/ky/ky.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"б.з.ч.", "б.з."},
erasNarrow: []string{"б.з.ч.", "б.з."},
erasWide: []string{"", ""},
- timezones: map[string]string{"ECT": "Экуадор убактысы", "MST": "MST", "WIB": "Батыш Индонезия убактысы", "ACWST": "Австралия борбордук батыш кышкы убакыты", "JDT": "Жапон жайкы убактысы", "HEEG": "Чыгыш Гренландия жайкы убактысы", "GMT": "GMT, кышкы убакыты", "HECU": "Куба жайкы убактысы", "HKST": "Гонконг жайкы убактысы", "HNPM": "Сен Пьер жана Микелон кышкы убактысы", "CHAST": "Чатам кышкы убакыт", "GYT": "Гвиана убактысы", "SRT": "Суринаме убактысы", "PDT": "Түндүк Америка, Тынч океан жайкы убактысы", "LHDT": "Лорд Хау жайкы убактысы", "NZST": "Жаӊы Зеландия кышкы убакыты", "∅∅∅": "Амазон жайкы убактысы", "MYT": "Малайзия убактысы", "AKDT": "Аляска жайкы убактысы", "OEZ": "Чыгыш Европа кышкы убакыты", "WAST": "Батыш Африка жайкы убактысы", "AKST": "Аляска кышкы убактысы", "ART": "Аргентина кышкы убактысы", "AWDT": "Австралия батыш жайкы убактысы", "MESZ": "Борбордук Европа жайкы убактысы", "GFT": "Француз Гвиана убактысы", "BOT": "Боливия убактысы", "BT": "Бутан убактысы", "AEST": "Австралия чыгыш кышкы убакыты", "AWST": "Австралия батыш кышкы убакыты", "IST": "Индия убактысы", "HENOMX": "Түндүк-чыгыш Мексика жайкы убактысы", "HNPMX": "Мексика, Тынч океан кышкы убактысы", "HADT": "Гавайи-Алеут жайкы убактысы", "ARST": "Аргентина жайкы убактысы", "HAST": "Гавайи-Алеут кышкы убактысы", "HAT": "Нюфаундлэнд жайкы убактысы", "TMST": "Түркмөнстан жайкы убактысы", "HNEG": "Чыгыш Гренландия кышкы убактысы", "WART": "Батыш Аргентина кышкы убактысы", "WARST": "Батыш Аргентина жайкы убактысы", "COT": "Колумбия кышкы убактысы", "EDT": "Түндүк Америка, чыгыш жайкы убактысы", "ACDT": "Австралия борбордук жайкы убактысы", "EST": "Түндүк Америка, чыгыш кышкы убактысы", "UYT": "Уругвай кышкы убактысы", "VET": "Венесуэла убактысы", "WITA": "Борбордук Индонезия убактысы", "CLT": "Чили кышкы убактысы", "HEPMX": "Мексика, Тынч океан жайкы убактысы", "CDT": "Түндүк Америка, борбордук жайкы убакыт", "AST": "Атлантика кышкы убактысы", "WIT": "Чыгыш Индонезия убактысы", "OESZ": "Чыгыш Европа жайкы убактысы", "HNT": "Нюфаундлэнд кышкы убактысы", "ACST": "Австралия борбордук кышкы убакыты", "HNNOMX": "Түндүк-чыгыш Мексика кышкы убактысы", "CST": "Түндүк Америка, борбордук кышкы убактысы", "ADT": "Атлантика жайкы убактысы", "PST": "Түндүк Америка, Тынч океан кышкы убактысы", "HKT": "Гонконг кышкы убакыты", "MEZ": "Борбордук Европа кышкы убакыты", "LHST": "Лорд Хау кышкы убакыты", "ChST": "Чаморро убактысы", "CAT": "Борбордук Африка убактысы", "HNCU": "Куба кышкы убактысы", "HEOG": "Батыш Гренландия жайкы убактысы", "NZDT": "Жаңы Зеландия жайкы убакыты", "TMT": "Түркмөнстан кышкы убакыты", "AEDT": "Австралия чыгыш жайкы убактысы", "JST": "Жапон кышкы убакыты", "HNOG": "Батыш Гренландия кышкы убактысы", "WESZ": "Батыш Европа жайкы убактысы", "COST": "Колумбия жайкы убактысы", "SGT": "Сингапур убактысы", "HEPM": "Сен Пьер жана Микелон жайкы убактысы", "CHADT": "Чатам жайкы убактысы", "SAST": "Түштүк Африка убактысы", "CLST": "Чили жайкы убактысы", "EAT": "Чыгыш Африка убактысы", "WAT": "Батыш Африка кышкы убакыты", "MDT": "MDT", "UYST": "Уругвай жайкы убактысы", "WEZ": "Батыш Европа кышкы убакыты", "ACWDT": "Австралия борбордук чыгыш жайкы убактысы"},
+ timezones: map[string]string{"ChST": "Чаморро убактысы", "HECU": "Куба жайкы убактысы", "CST": "Түндүк Америка, борбордук кышкы убактысы", "GMT": "GMT, кышкы убакыты", "AST": "Атлантика кышкы убактысы", "HNT": "Нюфаундлэнд кышкы убактысы", "HAT": "Нюфаундлэнд жайкы убактысы", "WITA": "Борбордук Индонезия убактысы", "SGT": "Сингапур убактысы", "ACWDT": "Австралия борбордук чыгыш жайкы убактысы", "ADT": "Атлантика жайкы убактысы", "TMT": "Түркмөнстан кышкы убакыты", "HNNOMX": "Түндүк-чыгыш Мексика кышкы убактысы", "MEZ": "Борбордук Европа кышкы убакыты", "MYT": "Малайзия убактысы", "CLT": "Чили кышкы убактысы", "UYST": "Уругвай жайкы убактысы", "HNPMX": "Мексика, Тынч океан кышкы убактысы", "CAT": "Борбордук Африка убактысы", "MST": "MST", "AKST": "Аляска кышкы убактысы", "AWDT": "Австралия батыш жайкы убактысы", "CHADT": "Чатам жайкы убактысы", "VET": "Венесуэла убактысы", "HKT": "Гонконг кышкы убакыты", "BT": "Бутан убактысы", "HNCU": "Куба кышкы убактысы", "JDT": "Жапон жайкы убактысы", "CHAST": "Чатам кышкы убакыт", "ACWST": "Австралия борбордук батыш кышкы убакыты", "WEZ": "Батыш Европа кышкы убакыты", "OESZ": "Чыгыш Европа жайкы убактысы", "HKST": "Гонконг жайкы убактысы", "ACST": "Австралия борбордук кышкы убакыты", "HNPM": "Сен Пьер жана Микелон кышкы убактысы", "EAT": "Чыгыш Африка убактысы", "ECT": "Экуадор убактысы", "MESZ": "Борбордук Европа жайкы убактысы", "CLST": "Чили жайкы убактысы", "ACDT": "Австралия борбордук жайкы убактысы", "COT": "Колумбия кышкы убактысы", "HEEG": "Чыгыш Гренландия жайкы убактысы", "UYT": "Уругвай кышкы убактысы", "AWST": "Австралия батыш кышкы убакыты", "JST": "Жапон кышкы убакыты", "OEZ": "Чыгыш Европа кышкы убакыты", "TMST": "Түркмөнстан жайкы убактысы", "WAST": "Батыш Африка жайкы убактысы", "∅∅∅": "∅∅∅", "HEPM": "Сен Пьер жана Микелон жайкы убактысы", "COST": "Колумбия жайкы убактысы", "GFT": "Француз Гвиана убактысы", "BOT": "Боливия убактысы", "NZST": "Жаӊы Зеландия кышкы убакыты", "HEOG": "Батыш Гренландия жайкы убактысы", "WAT": "Батыш Африка кышкы убакыты", "SAST": "Түштүк Африка убактысы", "WIB": "Батыш Индонезия убактысы", "PDT": "Түндүк Америка, Тынч океан жайкы убактысы", "WESZ": "Батыш Европа жайкы убактысы", "WART": "Батыш Аргентина кышкы убактысы", "ART": "Аргентина кышкы убактысы", "NZDT": "Жаңы Зеландия жайкы убакыты", "WARST": "Батыш Аргентина жайкы убактысы", "ARST": "Аргентина жайкы убактысы", "LHST": "Лорд Хау кышкы убакыты", "LHDT": "Лорд Хау жайкы убактысы", "HAST": "Гавайи-Алеут кышкы убактысы", "MDT": "MDT", "PST": "Түндүк Америка, Тынч океан кышкы убактысы", "IST": "Индия убактысы", "CDT": "Түндүк Америка, борбордук жайкы убакыт", "HNOG": "Батыш Гренландия кышкы убактысы", "HENOMX": "Түндүк-чыгыш Мексика жайкы убактысы", "HNEG": "Чыгыш Гренландия кышкы убактысы", "AKDT": "Аляска жайкы убактысы", "SRT": "Суринаме убактысы", "HADT": "Гавайи-Алеут жайкы убактысы", "EST": "Түндүк Америка, чыгыш кышкы убактысы", "EDT": "Түндүк Америка, чыгыш жайкы убактысы", "AEDT": "Австралия чыгыш жайкы убактысы", "GYT": "Гвиана убактысы", "WIT": "Чыгыш Индонезия убактысы", "AEST": "Австралия чыгыш кышкы убакыты", "HEPMX": "Мексика, Тынч океан жайкы убактысы"},
}
}
diff --git a/ky_KG/ky_KG.go b/ky_KG/ky_KG.go
index 097b68d8..3a7b7520 100644
--- a/ky_KG/ky_KG.go
+++ b/ky_KG/ky_KG.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"б.з.ч.", "б.з."},
erasNarrow: []string{"б.з.ч.", "б.з."},
erasWide: []string{"", ""},
- timezones: map[string]string{"JDT": "Жапон жайкы убактысы", "BOT": "Боливия убактысы", "HEOG": "Батыш Гренландия жайкы убактысы", "NZDT": "Жаңы Зеландия жайкы убакыты", "LHDT": "Лорд Хау жайкы убактысы", "CHAST": "Чатам кышкы убакыт", "HEEG": "Чыгыш Гренландия жайкы убактысы", "WARST": "Батыш Аргентина жайкы убактысы", "COT": "Колумбия кышкы убактысы", "AKDT": "Аляска жайкы убактысы", "ACWDT": "Австралия борбордук чыгыш жайкы убактысы", "HNPM": "Сен Пьер жана Микелон кышкы убактысы", "∅∅∅": "Амазон жайкы убактысы", "TMST": "Түркмөнстан жайкы убактысы", "HNNOMX": "Түндүк-чыгыш Мексика кышкы убактысы", "AEDT": "Австралия чыгыш жайкы убактысы", "WITA": "Борбордук Индонезия убактысы", "MEZ": "Борбордук Европа кышкы убакыты", "ARST": "Аргентина жайкы убактысы", "AWST": "Австралия батыш кышкы убакыты", "CLT": "Чили кышкы убактысы", "ECT": "Экуадор убактысы", "CST": "Түндүк Америка, борбордук кышкы убактысы", "GYT": "Гвиана убактысы", "WIB": "Батыш Индонезия убактысы", "ACWST": "Австралия борбордук батыш кышкы убакыты", "HEPM": "Сен Пьер жана Микелон жайкы убактысы", "HNCU": "Куба кышкы убактысы", "UYT": "Уругвай кышкы убактысы", "CDT": "Түндүк Америка, борбордук жайкы убакыт", "WIT": "Чыгыш Индонезия убактысы", "SRT": "Суринаме убактысы", "WAST": "Батыш Африка жайкы убактысы", "EDT": "Түндүк Америка, чыгыш жайкы убактысы", "AKST": "Аляска кышкы убактысы", "HADT": "Гавайи-Алеут жайкы убактысы", "VET": "Венесуэла убактысы", "MESZ": "Борбордук Европа жайкы убактысы", "OESZ": "Чыгыш Европа жайкы убактысы", "MST": "MST", "HNOG": "Батыш Гренландия кышкы убактысы", "AWDT": "Австралия батыш жайкы убактысы", "LHST": "Лорд Хау кышкы убакыты", "ChST": "Чаморро убактысы", "ACST": "Австралия борбордук кышкы убакыты", "WART": "Батыш Аргентина кышкы убактысы", "GMT": "GMT, кышкы убакыты", "PST": "Түндүк Америка, Тынч океан кышкы убактысы", "WEZ": "Батыш Европа кышкы убакыты", "HNEG": "Чыгыш Гренландия кышкы убактысы", "HNPMX": "Мексика, Тынч океан кышкы убактысы", "ART": "Аргентина кышкы убактысы", "HKST": "Гонконг жайкы убактысы", "CLST": "Чили жайкы убактысы", "COST": "Колумбия жайкы убактысы", "AST": "Атлантика кышкы убактысы", "BT": "Бутан убактысы", "NZST": "Жаӊы Зеландия кышкы убакыты", "HECU": "Куба жайкы убактысы", "UYST": "Уругвай жайкы убактысы", "HAST": "Гавайи-Алеут кышкы убактысы", "HKT": "Гонконг кышкы убакыты", "CHADT": "Чатам жайкы убактысы", "EAT": "Чыгыш Африка убактысы", "OEZ": "Чыгыш Европа кышкы убакыты", "SGT": "Сингапур убактысы", "EST": "Түндүк Америка, чыгыш кышкы убактысы", "HNT": "Нюфаундлэнд кышкы убактысы", "HAT": "Нюфаундлэнд жайкы убактысы", "GFT": "Француз Гвиана убактысы", "ACDT": "Австралия борбордук жайкы убактысы", "MDT": "MDT", "MYT": "Малайзия убактысы", "IST": "Индия убактысы", "CAT": "Борбордук Африка убактысы", "HENOMX": "Түндүк-чыгыш Мексика жайкы убактысы", "ADT": "Атлантика жайкы убактысы", "SAST": "Түштүк Африка убактысы", "HEPMX": "Мексика, Тынч океан жайкы убактысы", "PDT": "Түндүк Америка, Тынч океан жайкы убактысы", "AEST": "Австралия чыгыш кышкы убакыты", "JST": "Жапон кышкы убакыты", "TMT": "Түркмөнстан кышкы убакыты", "WAT": "Батыш Африка кышкы убакыты", "WESZ": "Батыш Европа жайкы убактысы"},
+ timezones: map[string]string{"WIB": "Батыш Индонезия убактысы", "SGT": "Сингапур убактысы", "WART": "Батыш Аргентина кышкы убактысы", "MST": "Түндүк Америка, тоо кышкы убактысы", "HNEG": "Чыгыш Гренландия кышкы убактысы", "HEEG": "Чыгыш Гренландия жайкы убактысы", "GFT": "Француз Гвиана убактысы", "LHST": "Лорд Хау кышкы убакыты", "HNCU": "Куба кышкы убактысы", "HECU": "Куба жайкы убактысы", "ECT": "Экуадор убактысы", "COT": "Колумбия кышкы убактысы", "CLST": "Чили жайкы убактысы", "ART": "Аргентина кышкы убактысы", "NZST": "Жаӊы Зеландия кышкы убакыты", "EDT": "Түндүк Америка, чыгыш жайкы убактысы", "BT": "Бутан убактысы", "WITA": "Борбордук Индонезия убактысы", "CHAST": "Чатам кышкы убакыт", "WARST": "Батыш Аргентина жайкы убактысы", "WAST": "Батыш Африка жайкы убактысы", "HEPMX": "Мексика, Тынч океан жайкы убактысы", "WIT": "Чыгыш Индонезия убактысы", "BOT": "Боливия убактысы", "CLT": "Чили кышкы убактысы", "WAT": "Батыш Африка кышкы убакыты", "AEST": "Австралия чыгыш кышкы убакыты", "UYST": "Уругвай жайкы убактысы", "AWST": "Австралия батыш кышкы убакыты", "CHADT": "Чатам жайкы убактысы", "ACST": "Австралия борбордук кышкы убакыты", "MDT": "Түндүк Америка, тоо жайкы убактысы", "PDT": "Түндүк Америка, Тынч океан жайкы убактысы", "NZDT": "Жаңы Зеландия жайкы убакыты", "IST": "Индия убактысы", "HNOG": "Батыш Гренландия кышкы убактысы", "ADT": "Атлантика жайкы убактысы", "TMST": "Түркмөнстан жайкы убактысы", "HKT": "Гонконг кышкы убакыты", "UYT": "Уругвай кышкы убактысы", "MESZ": "Борбордук Европа жайкы убактысы", "VET": "Венесуэла убактысы", "EST": "Түндүк Америка, чыгыш кышкы убактысы", "MYT": "Малайзия убактысы", "AST": "Атлантика кышкы убактысы", "WESZ": "Батыш Европа жайкы убактысы", "CDT": "Түндүк Америка, борбордук жайкы убакыт", "AKDT": "Аляска жайкы убактысы", "LHDT": "Лорд Хау жайкы убактысы", "GMT": "GMT, кышкы убакыты", "COST": "Колумбия жайкы убактысы", "ChST": "Чаморро убактысы", "HNPMX": "Мексика, Тынч океан кышкы убактысы", "CST": "Түндүк Америка, борбордук кышкы убактысы", "ACWST": "Австралия борбордук батыш кышкы убакыты", "OEZ": "Чыгыш Европа кышкы убакыты", "HENOMX": "Түндүк-чыгыш Мексика жайкы убактысы", "HAT": "Нюфаундлэнд жайкы убактысы", "HEPM": "Сен Пьер жана Микелон жайкы убактысы", "HAST": "Гавайи-Алеут кышкы убактысы", "WEZ": "Батыш Европа кышкы убакыты", "TMT": "Түркмөнстан кышкы убакыты", "HNNOMX": "Түндүк-чыгыш Мексика кышкы убактысы", "CAT": "Борбордук Африка убактысы", "MEZ": "Борбордук Европа кышкы убакыты", "JST": "Жапон кышкы убакыты", "OESZ": "Чыгыш Европа жайкы убактысы", "ARST": "Аргентина жайкы убактысы", "∅∅∅": "∅∅∅", "JDT": "Жапон жайкы убактысы", "EAT": "Чыгыш Африка убактысы", "HEOG": "Батыш Гренландия жайкы убактысы", "HNT": "Нюфаундлэнд кышкы убактысы", "AEDT": "Австралия чыгыш жайкы убактысы", "HNPM": "Сен Пьер жана Микелон кышкы убактысы", "SAST": "Түштүк Африка убактысы", "PST": "Түндүк Америка, Тынч океан кышкы убактысы", "ACWDT": "Австралия борбордук чыгыш жайкы убактысы", "ACDT": "Австралия борбордук жайкы убактысы", "AKST": "Аляска кышкы убактысы", "SRT": "Суринаме убактысы", "GYT": "Гвиана убактысы", "AWDT": "Австралия батыш жайкы убактысы", "HADT": "Гавайи-Алеут жайкы убактысы", "HKST": "Гонконг жайкы убактысы"},
}
}
diff --git a/lag/lag.go b/lag/lag.go
index 7efcc6ee..1541db59 100644
--- a/lag/lag.go
+++ b/lag/lag.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KSA", "KA"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kɨrɨsitʉ sɨ anavyaal", "Kɨrɨsitʉ akavyaalwe"},
- timezones: map[string]string{"NZDT": "NZDT", "∅∅∅": "∅∅∅", "SGT": "SGT", "HEPMX": "HEPMX", "MST": "MST", "PST": "PST", "WESZ": "WESZ", "AWDT": "AWDT", "IST": "IST", "WAT": "WAT", "CAT": "CAT", "HNNOMX": "HNNOMX", "HAT": "HAT", "HKT": "HKT", "AWST": "AWST", "ART": "ART", "AEST": "AEST", "LHST": "LHST", "HEPM": "HEPM", "CHADT": "CHADT", "CLST": "CLST", "TMST": "TMST", "OESZ": "OESZ", "AST": "AST", "WIB": "WIB", "ACWST": "ACWST", "WITA": "WITA", "SAST": "SAST", "HNEG": "HNEG", "TMT": "TMT", "BOT": "BOT", "CST": "CST", "WIT": "WIT", "VET": "VET", "EAT": "EAT", "COT": "COT", "MYT": "MYT", "COST": "COST", "ACST": "ACST", "BT": "BT", "AEDT": "AEDT", "LHDT": "LHDT", "CLT": "CLT", "ACDT": "ACDT", "ADT": "ADT", "HAST": "HAST", "HECU": "HECU", "CHAST": "CHAST", "ChST": "ChST", "EST": "EST", "AKST": "AKST", "WEZ": "WEZ", "NZST": "NZST", "GFT": "GFT", "HNCU": "HNCU", "AKDT": "AKDT", "CDT": "CDT", "GYT": "GYT", "JST": "JST", "GMT": "GMT", "UYST": "UYST", "HNOG": "HNOG", "MESZ": "MESZ", "MEZ": "MEZ", "ECT": "ECT", "HENOMX": "HENOMX", "MDT": "MDT", "ARST": "ARST", "HNPM": "HNPM", "JDT": "JDT", "OEZ": "OEZ", "WARST": "WARST", "HNPMX": "HNPMX", "EDT": "EDT", "SRT": "SRT", "PDT": "PDT", "HKST": "HKST", "HNT": "HNT", "HEOG": "HEOG", "HEEG": "HEEG", "WAST": "WAST", "WART": "WART", "UYT": "UYT", "HADT": "HADT", "ACWDT": "ACWDT"},
+ timezones: map[string]string{"CDT": "CDT", "AWST": "AWST", "VET": "VET", "OEZ": "OEZ", "MESZ": "MESZ", "JST": "JST", "HEOG": "HEOG", "MST": "MST", "COST": "COST", "BT": "BT", "BOT": "BOT", "ACWDT": "ACWDT", "HAT": "HAT", "AKST": "AKST", "HNCU": "HNCU", "CST": "CST", "CLT": "CLT", "ACDT": "ACDT", "UYST": "UYST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "OESZ": "OESZ", "WEZ": "WEZ", "EDT": "EDT", "ChST": "ChST", "HNPM": "HNPM", "AWDT": "AWDT", "ECT": "ECT", "HNOG": "HNOG", "HADT": "HADT", "ARST": "ARST", "EST": "EST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HNT": "HNT", "WITA": "WITA", "CHADT": "CHADT", "CLST": "CLST", "NZDT": "NZDT", "ADT": "ADT", "ART": "ART", "HKST": "HKST", "AEDT": "AEDT", "UYT": "UYT", "CAT": "CAT", "ACWST": "ACWST", "WIB": "WIB", "MYT": "MYT", "LHST": "LHST", "SGT": "SGT", "NZST": "NZST", "WARST": "WARST", "WAST": "WAST", "HEEG": "HEEG", "AEST": "AEST", "LHDT": "LHDT", "WIT": "WIT", "PST": "PST", "PDT": "PDT", "GFT": "GFT", "WART": "WART", "TMT": "TMT", "JDT": "JDT", "AST": "AST", "TMST": "TMST", "WAT": "WAT", "AKDT": "AKDT", "HEPM": "HEPM", "CHAST": "CHAST", "IST": "IST", "GYT": "GYT", "HKT": "HKT", "HNPMX": "HNPMX", "WESZ": "WESZ", "GMT": "GMT", "HEPMX": "HEPMX", "MDT": "MDT", "ACST": "ACST", "SAST": "SAST", "SRT": "SRT", "EAT": "EAT", "HECU": "HECU", "HAST": "HAST", "MEZ": "MEZ", "COT": "COT"},
}
}
diff --git a/lag_TZ/lag_TZ.go b/lag_TZ/lag_TZ.go
index 9f0ec721..0851ea20 100644
--- a/lag_TZ/lag_TZ.go
+++ b/lag_TZ/lag_TZ.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KSA", "KA"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kɨrɨsitʉ sɨ anavyaal", "Kɨrɨsitʉ akavyaalwe"},
- timezones: map[string]string{"AEDT": "AEDT", "WARST": "WARST", "HNCU": "HNCU", "HNPMX": "HNPMX", "AKST": "AKST", "PDT": "PDT", "ACST": "ACST", "MYT": "MYT", "IST": "IST", "HNEG": "HNEG", "TMST": "TMST", "OESZ": "OESZ", "MST": "MST", "HEPMX": "HEPMX", "HNT": "HNT", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "HNNOMX": "HNNOMX", "MDT": "MDT", "VET": "VET", "MEZ": "MEZ", "LHST": "LHST", "BOT": "BOT", "CAT": "CAT", "EST": "EST", "ADT": "ADT", "PST": "PST", "HEOG": "HEOG", "HKT": "HKT", "NZDT": "NZDT", "CLT": "CLT", "GMT": "GMT", "CST": "CST", "GYT": "GYT", "CHADT": "CHADT", "COST": "COST", "EDT": "EDT", "AKDT": "AKDT", "CDT": "CDT", "WEZ": "WEZ", "MESZ": "MESZ", "ECT": "ECT", "SGT": "SGT", "ACWDT": "ACWDT", "AEST": "AEST", "WAT": "WAT", "UYST": "UYST", "WIT": "WIT", "BT": "BT", "HAT": "HAT", "CHAST": "CHAST", "OEZ": "OEZ", "HEPM": "HEPM", "WAST": "WAST", "COT": "COT", "UYT": "UYT", "HNOG": "HNOG", "AWST": "AWST", "HKST": "HKST", "JST": "JST", "EAT": "EAT", "SRT": "SRT", "ARST": "ARST", "ChST": "ChST", "HEEG": "HEEG", "HENOMX": "HENOMX", "HECU": "HECU", "HAST": "HAST", "AWDT": "AWDT", "JDT": "JDT", "ACDT": "ACDT", "AST": "AST", "HADT": "HADT", "ACWST": "ACWST", "ART": "ART", "LHDT": "LHDT", "NZST": "NZST", "SAST": "SAST", "WART": "WART", "GFT": "GFT", "WESZ": "WESZ", "WITA": "WITA", "CLST": "CLST", "TMT": "TMT", "WIB": "WIB"},
+ timezones: map[string]string{"CHAST": "CHAST", "PST": "PST", "HNOG": "HNOG", "COST": "COST", "HEOG": "HEOG", "HEEG": "HEEG", "AEST": "AEST", "HNPM": "HNPM", "AWDT": "AWDT", "WARST": "WARST", "CLST": "CLST", "HKST": "HKST", "ACDT": "ACDT", "AEDT": "AEDT", "HEPM": "HEPM", "LHDT": "LHDT", "HECU": "HECU", "CDT": "CDT", "SGT": "SGT", "ECT": "ECT", "WAST": "WAST", "HAST": "HAST", "MESZ": "MESZ", "TMST": "TMST", "EAT": "EAT", "OESZ": "OESZ", "WEZ": "WEZ", "HNNOMX": "HNNOMX", "HNT": "HNT", "HAT": "HAT", "UYT": "UYT", "PDT": "PDT", "CAT": "CAT", "ACWST": "ACWST", "MEZ": "MEZ", "EST": "EST", "EDT": "EDT", "COT": "COT", "HEPMX": "HEPMX", "JST": "JST", "JDT": "JDT", "AST": "AST", "OEZ": "OEZ", "WESZ": "WESZ", "∅∅∅": "∅∅∅", "AWST": "AWST", "CHADT": "CHADT", "MST": "MST", "WITA": "WITA", "SAST": "SAST", "LHST": "LHST", "HNPMX": "HNPMX", "NZST": "NZST", "ADT": "ADT", "WAT": "WAT", "UYST": "UYST", "WIB": "WIB", "CLT": "CLT", "HENOMX": "HENOMX", "AKST": "AKST", "NZDT": "NZDT", "ART": "ART", "BT": "BT", "HNEG": "HNEG", "WIT": "WIT", "BOT": "BOT", "IST": "IST", "ARST": "ARST", "ChST": "ChST", "WART": "WART", "TMT": "TMT", "HKT": "HKT", "GYT": "GYT", "HNCU": "HNCU", "CST": "CST", "HADT": "HADT", "VET": "VET", "MYT": "MYT", "GFT": "GFT", "ACWDT": "ACWDT", "GMT": "GMT", "MDT": "MDT", "ACST": "ACST", "AKDT": "AKDT", "SRT": "SRT"},
}
}
diff --git a/lb/lb.go b/lb/lb.go
index 0c07ca56..0a987179 100644
--- a/lb/lb.go
+++ b/lb/lb.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr."},
erasNarrow: []string{"", ""},
erasWide: []string{"v. Chr.", "n. Chr."},
- timezones: map[string]string{"UYST": "Uruguayanesch Summerzäit", "AKST": "Alaska-Normalzäit", "AKDT": "Alaska-Summerzäit", "HAST": "Hawaii-Aleuten-Normalzäit", "MEZ": "Mëtteleuropäesch Normalzäit", "JST": "Japanesch Normalzäit", "∅∅∅": "Amazonas-Summerzäit", "WAST": "Westafrikanesch Summerzäit", "COST": "Kolumbianesch Summerzäit", "WIB": "Westindonesesch Zäit", "HNPM": "Saint-Pierre-a-Miquelon-Normalzäit", "JDT": "Japanesch Summerzäit", "ChST": "Chamorro-Zäit", "HENOMX": "Nordwest-Mexiko-Summerzäit", "CST": "Nordamerikanesch Inland-Normalzäit", "SRT": "Suriname-Zäit", "AEST": "Ostaustralesch Normalzäit", "NZST": "Neiséiland-Normalzäit", "ACDT": "Zentralaustralesch Summerzäit", "OEZ": "Osteuropäesch Normalzäit", "AST": "Atlantik-Normalzäit", "CDT": "Nordamerikanesch Inland-Summerzäit", "HADT": "Hawaii-Aleuten-Summerzäit", "WESZ": "Westeuropäesch Summerzäit", "OESZ": "Osteuropäesch Summerzäit", "HNNOMX": "Nordwest-Mexiko-Normalzäit", "GMT": "Mëttler Greenwich-Zäit", "EST": "Nordamerikanesch Ostküsten-Normalzäit", "ACST": "Zentralaustralesch Normalzäit", "ADT": "Atlantik-Summerzäit", "HEOG": "Westgrönland-Summerzäit", "SAST": "Südafrikanesch Zäit", "IST": "Indesch Zäit", "HEEG": "Ostgrönland-Summerzäit", "WARST": "Westargentinesch Summerzäit", "AWDT": "Westaustralesch Summerzäit", "HKT": "Hong-Kong-Normalzäit", "NZDT": "Neiséiland-Summerzäit", "BOT": "Bolivianesch Zäit", "AEDT": "Ostaustralesch Summerzäit", "AWST": "Westaustralesch Normalzäit", "MESZ": "Mëtteleuropäesch Summerzäit", "HNEG": "Ostgrönland-Normalzäit", "WART": "Westargentinesch Normalzäit", "MST": "MST", "MDT": "MDT", "WEZ": "Westeuropäesch Normalzäit", "HEPM": "Saint-Pierre-a-Miquelon-Summerzäit", "ACWST": "Zentral-/Westaustralesch Normalzäit", "HNT": "Neifundland-Normalzäit", "TMT": "Turkmenistan-Normalzäit", "TMST": "Turkmenistan-Summerzäit", "CAT": "Zentralafrikanesch Zäit", "UYT": "Uruguyanesch Normalzäit", "WIT": "Ostindonesesch Zäit", "PDT": "Nordamerikanesch Westküsten-Summerzäit", "WITA": "Zentralindonesesch Zäit", "LHDT": "Lord-Howe-Summerzäit", "EAT": "Ostafrikanesch Zäit", "HNCU": "Kubanesch Normalzäit", "GYT": "Guyana-Zäit", "HNOG": "Westgrönland-Normalzäit", "ACWDT": "Zentral-/Westaustralesch Summerzäit", "HKST": "Hong-Kong-Summerzäit", "VET": "Venezuela-Zäit", "BT": "Bhutan-Zäit", "CLT": "Chilenesch Normalzäit", "GFT": "Franséisch-Guayane-Zäit", "SGT": "Singapur-Standardzäit", "EDT": "Nordamerikanesch Ostküsten-Summerzäit", "HNPMX": "Mexikanesch Pazifik-Normalzäit", "HEPMX": "Mexikanesch Pazifik-Summerzäit", "ART": "Argentinesch Normalzäit", "CHAST": "Chatham-Normalzäit", "ECT": "Ecuadorianesch Zäit", "WAT": "Westafrikanesch Normalzäit", "MYT": "Malaysesch Zäit", "PST": "Nordamerikanesch Westküsten-Normalzäit", "CHADT": "Chatham-Summerzäit", "CLST": "Chilenesch Summerzäit", "HECU": "Kubanesch Summerzäit", "ARST": "Argentinesch Summerzäit", "COT": "Kolumbianesch Normalzäit", "HAT": "Neifundland-Summerzäit", "LHST": "Lord-Howe-Normalzäit"},
+ timezones: map[string]string{"HECU": "Kubanesch Summerzäit", "BOT": "Bolivianesch Zäit", "CLST": "Chilenesch Summerzäit", "HEOG": "Westgrönland-Summerzäit", "ACST": "Zentralaustralesch Normalzäit", "COT": "Kolumbianesch Normalzäit", "HNPMX": "Mexikanesch Pazifik-Normalzäit", "CDT": "Nordamerikanesch Inland-Summerzäit", "ACWDT": "Zentral-/Westaustralesch Summerzäit", "EDT": "Nordamerikanesch Ostküsten-Summerzäit", "ACDT": "Zentralaustralesch Summerzäit", "HENOMX": "Nordwest-Mexiko-Summerzäit", "GFT": "Franséisch-Guayane-Zäit", "WIT": "Ostindonesesch Zäit", "MESZ": "Mëtteleuropäesch Summerzäit", "OEZ": "Osteuropäesch Normalzäit", "HNPM": "Saint-Pierre-a-Miquelon-Normalzäit", "HEPM": "Saint-Pierre-a-Miquelon-Summerzäit", "NZST": "Neiséiland-Normalzäit", "HNOG": "Westgrönland-Normalzäit", "WAT": "Westafrikanesch Normalzäit", "BT": "Bhutan-Zäit", "SRT": "Suriname-Zäit", "LHST": "Lord-Howe-Normalzäit", "CST": "Nordamerikanesch Inland-Normalzäit", "PST": "Nordamerikanesch Westküsten-Normalzäit", "HNNOMX": "Nordwest-Mexiko-Normalzäit", "HNEG": "Ostgrönland-Normalzäit", "JST": "Japanesch Normalzäit", "ADT": "Atlantik-Summerzäit", "HNT": "Neifundland-Normalzäit", "WITA": "Zentralindonesesch Zäit", "GYT": "Guyana-Zäit", "SGT": "Singapur-Standardzäit", "MYT": "Malaysesch Zäit", "WESZ": "Westeuropäesch Summerzäit", "ARST": "Argentinesch Summerzäit", "ChST": "Chamorro-Zäit", "VET": "Venezuela-Zäit", "WART": "Westargentinesch Normalzäit", "AKST": "Alaska-Normalzäit", "HAST": "Hawaii-Aleuten-Normalzäit", "JDT": "Japanesch Summerzäit", "GMT": "Mëttler Greenwich-Zäit", "WARST": "Westargentinesch Summerzäit", "WAST": "Westafrikanesch Summerzäit", "CLT": "Chilenesch Normalzäit", "OESZ": "Osteuropäesch Summerzäit", "TMT": "Turkmenistan-Normalzäit", "HKST": "Hong-Kong-Summerzäit", "UYST": "Uruguayanesch Summerzäit", "AWST": "Westaustralesch Normalzäit", "AEST": "Ostaustralesch Normalzäit", "UYT": "Uruguyanesch Normalzäit", "EAT": "Ostafrikanesch Zäit", "WIB": "Westindonesesch Zäit", "CAT": "Zentralafrikanesch Zäit", "HKT": "Hong-Kong-Normalzäit", "SAST": "Südafrikanesch Zäit", "HEPMX": "Mexikanesch Pazifik-Summerzäit", "HNCU": "Kubanesch Normalzäit", "CHADT": "Chatham-Summerzäit", "AST": "Atlantik-Normalzäit", "TMST": "Turkmenistan-Summerzäit", "MST": "MST", "AEDT": "Ostaustralesch Summerzäit", "AKDT": "Alaska-Summerzäit", "∅∅∅": "Brasília-Summerzäit", "PDT": "Nordamerikanesch Westküsten-Summerzäit", "NZDT": "Neiséiland-Summerzäit", "MEZ": "Mëtteleuropäesch Normalzäit", "MDT": "MDT", "HEEG": "Ostgrönland-Summerzäit", "ECT": "Ecuadorianesch Zäit", "IST": "Indesch Zäit", "ART": "Argentinesch Normalzäit", "COST": "Kolumbianesch Summerzäit", "HAT": "Neifundland-Summerzäit", "AWDT": "Westaustralesch Summerzäit", "CHAST": "Chatham-Normalzäit", "HADT": "Hawaii-Aleuten-Summerzäit", "ACWST": "Zentral-/Westaustralesch Normalzäit", "WEZ": "Westeuropäesch Normalzäit", "EST": "Nordamerikanesch Ostküsten-Normalzäit", "LHDT": "Lord-Howe-Summerzäit"},
}
}
diff --git a/lb_LU/lb_LU.go b/lb_LU/lb_LU.go
index 9ac1446a..b2b3be08 100644
--- a/lb_LU/lb_LU.go
+++ b/lb_LU/lb_LU.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr."},
erasNarrow: []string{"", ""},
erasWide: []string{"v. Chr.", "n. Chr."},
- timezones: map[string]string{"ECT": "Ecuadorianesch Zäit", "HKT": "Hong-Kong-Normalzäit", "NZST": "Neiséiland-Normalzäit", "BOT": "Bolivianesch Zäit", "CST": "Nordamerikanesch Inland-Normalzäit", "HNOG": "Westgrönland-Normalzäit", "TMT": "Turkmenistan-Normalzäit", "EAT": "Ostafrikanesch Zäit", "WAT": "Westafrikanesch Normalzäit", "WARST": "Westargentinesch Summerzäit", "GMT": "Mëttler Greenwich-Zäit", "GYT": "Guyana-Zäit", "WIT": "Ostindonesesch Zäit", "AWST": "Westaustralesch Normalzäit", "HNCU": "Kubanesch Normalzäit", "AST": "Atlantik-Normalzäit", "AKST": "Alaska-Normalzäit", "PDT": "Nordamerikanesch Westküsten-Summerzäit", "AWDT": "Westaustralesch Summerzäit", "LHST": "Lord-Howe-Normalzäit", "JDT": "Japanesch Summerzäit", "∅∅∅": "Amazonas-Summerzäit", "HECU": "Kubanesch Summerzäit", "ACWST": "Zentral-/Westaustralesch Normalzäit", "WITA": "Zentralindonesesch Zäit", "CAT": "Zentralafrikanesch Zäit", "HNNOMX": "Nordwest-Mexiko-Normalzäit", "HNPMX": "Mexikanesch Pazifik-Normalzäit", "HEOG": "Westgrönland-Summerzäit", "WEZ": "Westeuropäesch Normalzäit", "MEZ": "Mëtteleuropäesch Normalzäit", "CHADT": "Chatham-Summerzäit", "SAST": "Südafrikanesch Zäit", "SGT": "Singapur-Standardzäit", "ARST": "Argentinesch Summerzäit", "HNT": "Neifundland-Normalzäit", "WAST": "Westafrikanesch Summerzäit", "AKDT": "Alaska-Summerzäit", "ART": "Argentinesch Normalzäit", "NZDT": "Neiséiland-Summerzäit", "CHAST": "Chatham-Normalzäit", "WART": "Westargentinesch Normalzäit", "MYT": "Malaysesch Zäit", "SRT": "Suriname-Zäit", "ACWDT": "Zentral-/Westaustralesch Summerzäit", "CLST": "Chilenesch Summerzäit", "ChST": "Chamorro-Zäit", "COT": "Kolumbianesch Normalzäit", "MST": "MST", "HAST": "Hawaii-Aleuten-Normalzäit", "BT": "Bhutan-Zäit", "AEDT": "Ostaustralesch Summerzäit", "LHDT": "Lord-Howe-Summerzäit", "IST": "Indesch Zäit", "HNEG": "Ostgrönland-Normalzäit", "HEEG": "Ostgrönland-Summerzäit", "GFT": "Franséisch-Guayane-Zäit", "ACST": "Zentralaustralesch Normalzäit", "HKST": "Hong-Kong-Summerzäit", "HNPM": "Saint-Pierre-a-Miquelon-Normalzäit", "HEPM": "Saint-Pierre-a-Miquelon-Summerzäit", "EDT": "Nordamerikanesch Ostküsten-Summerzäit", "MDT": "MDT", "HEPMX": "Mexikanesch Pazifik-Summerzäit", "HAT": "Neifundland-Summerzäit", "ACDT": "Zentralaustralesch Summerzäit", "COST": "Kolumbianesch Summerzäit", "UYT": "Uruguyanesch Normalzäit", "UYST": "Uruguayanesch Summerzäit", "CDT": "Nordamerikanesch Inland-Summerzäit", "PST": "Nordamerikanesch Westküsten-Normalzäit", "JST": "Japanesch Normalzäit", "TMST": "Turkmenistan-Summerzäit", "WIB": "Westindonesesch Zäit", "HADT": "Hawaii-Aleuten-Summerzäit", "WESZ": "Westeuropäesch Summerzäit", "MESZ": "Mëtteleuropäesch Summerzäit", "CLT": "Chilenesch Normalzäit", "OEZ": "Osteuropäesch Normalzäit", "OESZ": "Osteuropäesch Summerzäit", "EST": "Nordamerikanesch Ostküsten-Normalzäit", "ADT": "Atlantik-Summerzäit", "VET": "Venezuela-Zäit", "HENOMX": "Nordwest-Mexiko-Summerzäit", "AEST": "Ostaustralesch Normalzäit"},
+ timezones: map[string]string{"ACST": "Zentralaustralesch Normalzäit", "COST": "Kolumbianesch Summerzäit", "AKDT": "Alaska-Summerzäit", "HNPM": "Saint-Pierre-a-Miquelon-Normalzäit", "SRT": "Suriname-Zäit", "SAST": "Südafrikanesch Zäit", "AWST": "Westaustralesch Normalzäit", "WARST": "Westargentinesch Summerzäit", "WESZ": "Westeuropäesch Summerzäit", "TMST": "Turkmenistan-Summerzäit", "ARST": "Argentinesch Summerzäit", "EST": "Nordamerikanesch Ostküsten-Normalzäit", "∅∅∅": "Acre-Summerzäit", "HECU": "Kubanesch Summerzäit", "NZST": "Neiséiland-Normalzäit", "CAT": "Zentralafrikanesch Zäit", "ART": "Argentinesch Normalzäit", "MDT": "Rocky-Mountain-Summerzäit", "AKST": "Alaska-Normalzäit", "UYT": "Uruguyanesch Normalzäit", "CST": "Nordamerikanesch Inland-Normalzäit", "PDT": "Nordamerikanesch Westküsten-Summerzäit", "HENOMX": "Nordwest-Mexiko-Summerzäit", "WIT": "Ostindonesesch Zäit", "ECT": "Ecuadorianesch Zäit", "ACWDT": "Zentral-/Westaustralesch Summerzäit", "WART": "Westargentinesch Normalzäit", "HNT": "Neifundland-Normalzäit", "LHST": "Lord-Howe-Normalzäit", "HEPMX": "Mexikanesch Pazifik-Summerzäit", "MEZ": "Mëtteleuropäesch Normalzäit", "VET": "Venezuela-Zäit", "HADT": "Hawaii-Aleuten-Summerzäit", "MYT": "Malaysesch Zäit", "HNOG": "Westgrönland-Normalzäit", "OESZ": "Osteuropäesch Summerzäit", "ACDT": "Zentralaustralesch Summerzäit", "HNPMX": "Mexikanesch Pazifik-Normalzäit", "SGT": "Singapur-Standardzäit", "JST": "Japanesch Normalzäit", "MESZ": "Mëtteleuropäesch Summerzäit", "HEEG": "Ostgrönland-Summerzäit", "AEST": "Ostaustralesch Normalzäit", "ChST": "Chamorro-Zäit", "UYST": "Uruguayanesch Summerzäit", "LHDT": "Lord-Howe-Summerzäit", "GYT": "Guyana-Zäit", "CHADT": "Chatham-Summerzäit", "GMT": "Mëttler Greenwich-Zäit", "OEZ": "Osteuropäesch Normalzäit", "WAT": "Westafrikanesch Normalzäit", "GFT": "Franséisch-Guayane-Zäit", "IST": "Indesch Zäit", "ACWST": "Zentral-/Westaustralesch Normalzäit", "TMT": "Turkmenistan-Normalzäit", "HKST": "Hong-Kong-Summerzäit", "AEDT": "Ostaustralesch Summerzäit", "HNCU": "Kubanesch Normalzäit", "AST": "Atlantik-Normalzäit", "BT": "Bhutan-Zäit", "PST": "Nordamerikanesch Westküsten-Normalzäit", "NZDT": "Neiséiland-Summerzäit", "CLST": "Chilenesch Summerzäit", "HAT": "Neifundland-Summerzäit", "MST": "Rocky-Mountain-Normalzäit", "AWDT": "Westaustralesch Summerzäit", "BOT": "Bolivianesch Zäit", "CLT": "Chilenesch Normalzäit", "EDT": "Nordamerikanesch Ostküsten-Summerzäit", "HEPM": "Saint-Pierre-a-Miquelon-Summerzäit", "EAT": "Ostafrikanesch Zäit", "CDT": "Nordamerikanesch Inland-Summerzäit", "WEZ": "Westeuropäesch Normalzäit", "HKT": "Hong-Kong-Normalzäit", "HNNOMX": "Nordwest-Mexiko-Normalzäit", "WITA": "Zentralindonesesch Zäit", "WIB": "Westindonesesch Zäit", "HAST": "Hawaii-Aleuten-Normalzäit", "ADT": "Atlantik-Summerzäit", "WAST": "Westafrikanesch Summerzäit", "COT": "Kolumbianesch Normalzäit", "HNEG": "Ostgrönland-Normalzäit", "CHAST": "Chatham-Normalzäit", "JDT": "Japanesch Summerzäit", "HEOG": "Westgrönland-Summerzäit"},
}
}
diff --git a/lg/lg.go b/lg/lg.go
index 0236c2ae..9351c11e 100644
--- a/lg/lg.go
+++ b/lg/lg.go
@@ -57,7 +57,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kulisito nga tannaza", "Bukya Kulisito Azaal"},
- timezones: map[string]string{"PST": "PST", "ACWST": "ACWST", "HKST": "HKST", "MEZ": "MEZ", "MESZ": "MESZ", "HAST": "HAST", "ART": "ART", "CHADT": "CHADT", "HNCU": "HNCU", "AST": "AST", "HADT": "HADT", "MST": "MST", "WEZ": "WEZ", "WESZ": "WESZ", "HAT": "HAT", "SAST": "SAST", "BOT": "BOT", "HENOMX": "HENOMX", "WAT": "WAT", "VET": "VET", "HNOG": "HNOG", "HEOG": "HEOG", "NZST": "NZST", "IST": "IST", "TMT": "TMT", "HEEG": "HEEG", "HNPMX": "HNPMX", "MYT": "MYT", "HEPM": "HEPM", "LHDT": "LHDT", "JST": "JST", "ACDT": "ACDT", "COT": "COT", "EDT": "EDT", "UYST": "UYST", "CST": "CST", "HNPM": "HNPM", "LHST": "LHST", "TMST": "TMST", "WAST": "WAST", "AKST": "AKST", "AKDT": "AKDT", "ACWDT": "ACWDT", "ECT": "ECT", "CAT": "CAT", "COST": "COST", "HEPMX": "HEPMX", "GYT": "GYT", "ARST": "ARST", "WARST": "WARST", "HECU": "HECU", "ChST": "ChST", "GFT": "GFT", "OESZ": "OESZ", "SGT": "SGT", "UYT": "UYT", "WIB": "WIB", "JDT": "JDT", "CLST": "CLST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "EST": "EST", "AEDT": "AEDT", "CLT": "CLT", "HNNOMX": "HNNOMX", "WART": "WART", "SRT": "SRT", "HNT": "HNT", "AWDT": "AWDT", "ACST": "ACST", "MDT": "MDT", "ADT": "ADT", "AEST": "AEST", "CHAST": "CHAST", "AWST": "AWST", "NZDT": "NZDT", "OEZ": "OEZ", "GMT": "GMT", "WIT": "WIT", "BT": "BT", "PDT": "PDT", "HKT": "HKT", "WITA": "WITA", "EAT": "EAT", "CDT": "CDT"},
+ timezones: map[string]string{"JDT": "JDT", "AWDT": "AWDT", "PDT": "PDT", "AEST": "AEST", "AEDT": "AEDT", "LHDT": "LHDT", "CHAST": "CHAST", "HEOG": "HEOG", "WIB": "WIB", "AST": "AST", "GYT": "GYT", "ECT": "ECT", "NZDT": "NZDT", "WEZ": "WEZ", "GMT": "GMT", "WART": "WART", "ARST": "ARST", "WIT": "WIT", "PST": "PST", "ChST": "ChST", "HNPMX": "HNPMX", "COST": "COST", "WITA": "WITA", "OEZ": "OEZ", "MYT": "MYT", "WAST": "WAST", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "BOT": "BOT", "CLST": "CLST", "WARST": "WARST", "TMST": "TMST", "EST": "EST", "HKST": "HKST", "ACST": "ACST", "BT": "BT", "ACWST": "ACWST", "WESZ": "WESZ", "HEEG": "HEEG", "HEPMX": "HEPMX", "AKDT": "AKDT", "UYST": "UYST", "CDT": "CDT", "HNOG": "HNOG", "VET": "VET", "MDT": "MDT", "UYT": "UYT", "SAST": "SAST", "EAT": "EAT", "IST": "IST", "MEZ": "MEZ", "CAT": "CAT", "ACDT": "ACDT", "HNEG": "HNEG", "HNPM": "HNPM", "LHST": "LHST", "CST": "CST", "HADT": "HADT", "MST": "MST", "HAT": "HAT", "HEPM": "HEPM", "SRT": "SRT", "MESZ": "MESZ", "CLT": "CLT", "OESZ": "OESZ", "ART": "ART", "HENOMX": "HENOMX", "SGT": "SGT", "ACWDT": "ACWDT", "EDT": "EDT", "COT": "COT", "GFT": "GFT", "HECU": "HECU", "HAST": "HAST", "JST": "JST", "WAT": "WAT", "HNT": "HNT", "AKST": "AKST", "TMT": "TMT", "HKT": "HKT", "CHADT": "CHADT", "NZST": "NZST", "ADT": "ADT", "∅∅∅": "∅∅∅", "AWST": "AWST"},
}
}
diff --git a/lg_UG/lg_UG.go b/lg_UG/lg_UG.go
index 4f1577b3..064e9025 100644
--- a/lg_UG/lg_UG.go
+++ b/lg_UG/lg_UG.go
@@ -57,7 +57,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kulisito nga tannaza", "Bukya Kulisito Azaal"},
- timezones: map[string]string{"CLST": "CLST", "CAT": "CAT", "GMT": "GMT", "GYT": "GYT", "WESZ": "WESZ", "EAT": "EAT", "WIT": "WIT", "ECT": "ECT", "COST": "COST", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "HNT": "HNT", "HKT": "HKT", "BOT": "BOT", "WAST": "WAST", "SGT": "SGT", "EDT": "EDT", "BT": "BT", "PST": "PST", "AKDT": "AKDT", "MESZ": "MESZ", "PDT": "PDT", "IST": "IST", "TMST": "TMST", "HECU": "HECU", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "UYT": "UYT", "HADT": "HADT", "JST": "JST", "∅∅∅": "∅∅∅", "ACDT": "ACDT", "OESZ": "OESZ", "ACWST": "ACWST", "HKST": "HKST", "HAST": "HAST", "VET": "VET", "ARST": "ARST", "LHDT": "LHDT", "NZST": "NZST", "TMT": "TMT", "COT": "COT", "CDT": "CDT", "ART": "ART", "HNPM": "HNPM", "MEZ": "MEZ", "NZDT": "NZDT", "AEST": "AEST", "LHST": "LHST", "CLT": "CLT", "ACST": "ACST", "EST": "EST", "AST": "AST", "AKST": "AKST", "HAT": "HAT", "CHADT": "CHADT", "WARST": "WARST", "HNCU": "HNCU", "MST": "MST", "MDT": "MDT", "AWST": "AWST", "ChST": "ChST", "HNNOMX": "HNNOMX", "SRT": "SRT", "HNOG": "HNOG", "AWDT": "AWDT", "CHAST": "CHAST", "OEZ": "OEZ", "CST": "CST", "HEOG": "HEOG", "AEDT": "AEDT", "WITA": "WITA", "WAT": "WAT", "WART": "WART", "MYT": "MYT", "UYST": "UYST", "WEZ": "WEZ", "HEPM": "HEPM", "HNEG": "HNEG", "SAST": "SAST", "JDT": "JDT", "HEEG": "HEEG", "GFT": "GFT", "ADT": "ADT", "WIB": "WIB"},
+ timezones: map[string]string{"HAST": "HAST", "ACWDT": "ACWDT", "CLT": "CLT", "HNPMX": "HNPMX", "TMT": "TMT", "HKT": "HKT", "CDT": "CDT", "NZDT": "NZDT", "VET": "VET", "OESZ": "OESZ", "AWDT": "AWDT", "HKST": "HKST", "ACST": "ACST", "HNPM": "HNPM", "ECT": "ECT", "JDT": "JDT", "HNEG": "HNEG", "HECU": "HECU", "HNNOMX": "HNNOMX", "GFT": "GFT", "GYT": "GYT", "AKST": "AKST", "HEPM": "HEPM", "LHDT": "LHDT", "ACWST": "ACWST", "AEST": "AEST", "AEDT": "AEDT", "UYST": "UYST", "EAT": "EAT", "HNCU": "HNCU", "IST": "IST", "ChST": "ChST", "∅∅∅": "∅∅∅", "ART": "ART", "ACDT": "ACDT", "BT": "BT", "GMT": "GMT", "COT": "COT", "HNT": "HNT", "HAT": "HAT", "WIB": "WIB", "SGT": "SGT", "NZST": "NZST", "JST": "JST", "WITA": "WITA", "MST": "MST", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "SRT": "SRT", "CST": "CST", "HEOG": "HEOG", "AST": "AST", "TMST": "TMST", "WAST": "WAST", "WIT": "WIT", "AWST": "AWST", "CHADT": "CHADT", "WAT": "WAT", "ARST": "ARST", "MESZ": "MESZ", "HNOG": "HNOG", "OEZ": "OEZ", "WEZ": "WEZ", "EST": "EST", "UYT": "UYT", "PST": "PST", "CAT": "CAT", "MYT": "MYT", "MDT": "MDT", "EDT": "EDT", "COST": "COST", "HEEG": "HEEG", "LHST": "LHST", "CHAST": "CHAST", "PDT": "PDT", "WARST": "WARST", "WESZ": "WESZ", "CLST": "CLST", "ADT": "ADT", "AKDT": "AKDT", "SAST": "SAST", "BOT": "BOT", "HADT": "HADT", "MEZ": "MEZ", "WART": "WART"},
}
}
diff --git a/lkt/lkt.go b/lkt/lkt.go
index 7611aab4..c3ec411e 100644
--- a/lkt/lkt.go
+++ b/lkt/lkt.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
monthsWide: []string{"", "Wiótheȟika Wí", "Thiyóȟeyuŋka Wí", "Ištáwičhayazaŋ Wí", "Pȟežítȟo Wí", "Čhaŋwápetȟo Wí", "Wípazukȟa-wašté Wí", "Čhaŋpȟásapa Wí", "Wasútȟuŋ Wí", "Čhaŋwápeǧi Wí", "Čhaŋwápe-kasná Wí", "Waníyetu Wí", "Tȟahékapšuŋ Wí"},
daysNarrow: []string{"A", "W", "N", "Y", "T", "Z", "O"},
daysWide: []string{"Aŋpétuwakȟaŋ", "Aŋpétuwaŋži", "Aŋpétunuŋpa", "Aŋpétuyamni", "Aŋpétutopa", "Aŋpétuzaptaŋ", "Owáŋgyužažapi"},
- timezones: map[string]string{"HADT": "HADT", "WEZ": "WEZ", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "PST": "PST", "ARST": "ARST", "HEPM": "HEPM", "HEEG": "HEEG", "AEDT": "AEDT", "MYT": "MYT", "WIB": "WIB", "WIT": "WIT", "HEOG": "HEOG", "AWDT": "AWDT", "GFT": "GFT", "WARST": "WARST", "MDT": "MDT", "LHST": "LHST", "ACST": "ACST", "BT": "BT", "ACWST": "ACWST", "CHADT": "CHADT", "COST": "COST", "HNCU": "HNCU", "HNPMX": "HNPMX", "PDT": "PDT", "JDT": "JDT", "COT": "COT", "HENOMX": "HENOMX", "EDT": "EDT", "HNT": "HNT", "BOT": "BOT", "TMT": "TMT", "HAST": "HAST", "SRT": "SRT", "HKT": "HKT", "HKST": "HKST", "HNPM": "HNPM", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "EAT": "EAT", "GMT": "GMT", "UYT": "UYT", "AST": "AST", "HNOG": "HNOG", "JST": "JST", "ChST": "ChST", "WAT": "WAT", "OEZ": "OEZ", "UYST": "UYST", "WITA": "WITA", "NZST": "NZST", "CLST": "CLST", "TMST": "TMST", "SAST": "SAST", "ART": "ART", "AEST": "AEST", "HNEG": "HNEG", "WAST": "WAST", "SGT": "SGT", "HECU": "HECU", "EST": "EST", "VET": "VET", "NZDT": "NZDT", "CST": "CST", "ADT": "ADT", "CAT": "CAT", "ECT": "ECT", "WART": "WART", "HEPMX": "HEPMX", "AKST": "AKST", "AKDT": "AKDT", "GYT": "GYT", "ACWDT": "ACWDT", "AWST": "AWST", "CHAST": "CHAST", "IST": "IST", "CLT": "CLT", "LHDT": "LHDT", "ACDT": "ACDT", "MST": "MST", "CDT": "CDT", "WESZ": "WESZ", "HAT": "HAT", "MEZ": "MEZ"},
+ timezones: map[string]string{"HEEG": "HEEG", "MEZ": "MEZ", "WART": "WART", "CHAST": "CHAST", "OEZ": "OEZ", "COT": "COT", "COST": "COST", "HNT": "HNT", "UYST": "UYST", "WIB": "WIB", "WESZ": "WESZ", "MYT": "MYT", "ART": "ART", "HEPMX": "HEPMX", "EAT": "EAT", "WIT": "WIT", "PDT": "PDT", "CLT": "CLT", "HKST": "HKST", "EST": "EST", "HKT": "HKT", "HAT": "HAT", "HAST": "HAST", "HADT": "HADT", "CAT": "CAT", "WAT": "WAT", "AKST": "AKST", "MST": "MST", "GYT": "GYT", "SGT": "SGT", "VET": "VET", "TMST": "TMST", "MDT": "MDT", "CDT": "CDT", "OESZ": "OESZ", "WEZ": "WEZ", "CLST": "CLST", "BT": "BT", "HNEG": "HNEG", "AEST": "AEST", "ChST": "ChST", "NZDT": "NZDT", "HNOG": "HNOG", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "CST": "CST", "IST": "IST", "JST": "JST", "HENOMX": "HENOMX", "ADT": "ADT", "TMT": "TMT", "HEOG": "HEOG", "GMT": "GMT", "ACDT": "ACDT", "WITA": "WITA", "AKDT": "AKDT", "HNCU": "HNCU", "ACWST": "ACWST", "AWDT": "AWDT", "CHADT": "CHADT", "ECT": "ECT", "ACST": "ACST", "HNPM": "HNPM", "SRT": "SRT", "HECU": "HECU", "AWST": "AWST", "JDT": "JDT", "ARST": "ARST", "EDT": "EDT", "GFT": "GFT", "LHST": "LHST", "PST": "PST", "WARST": "WARST", "SAST": "SAST", "BOT": "BOT", "ACWDT": "ACWDT", "MESZ": "MESZ", "UYT": "UYT", "HEPM": "HEPM", "NZST": "NZST", "WAST": "WAST", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "LHDT": "LHDT", "AST": "AST"},
}
}
diff --git a/lkt_US/lkt_US.go b/lkt_US/lkt_US.go
index 069715ab..8f71d068 100644
--- a/lkt_US/lkt_US.go
+++ b/lkt_US/lkt_US.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
monthsWide: []string{"", "Wiótheȟika Wí", "Thiyóȟeyuŋka Wí", "Ištáwičhayazaŋ Wí", "Pȟežítȟo Wí", "Čhaŋwápetȟo Wí", "Wípazukȟa-wašté Wí", "Čhaŋpȟásapa Wí", "Wasútȟuŋ Wí", "Čhaŋwápeǧi Wí", "Čhaŋwápe-kasná Wí", "Waníyetu Wí", "Tȟahékapšuŋ Wí"},
daysNarrow: []string{"A", "W", "N", "Y", "T", "Z", "O"},
daysWide: []string{"Aŋpétuwakȟaŋ", "Aŋpétuwaŋži", "Aŋpétunuŋpa", "Aŋpétuyamni", "Aŋpétutopa", "Aŋpétuzaptaŋ", "Owáŋgyužažapi"},
- timezones: map[string]string{"∅∅∅": "∅∅∅", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "HNT": "HNT", "VET": "VET", "MESZ": "MESZ", "ACWDT": "ACWDT", "AWDT": "AWDT", "JST": "JST", "ECT": "ECT", "CAT": "CAT", "WAT": "WAT", "COST": "COST", "SRT": "SRT", "NZDT": "NZDT", "CHAST": "CHAST", "LHST": "LHST", "IST": "IST", "CLT": "CLT", "GFT": "GFT", "ACST": "ACST", "EAT": "EAT", "AST": "AST", "HKST": "HKST", "HEOG": "HEOG", "NZST": "NZST", "CLST": "CLST", "TMT": "TMT", "HNEG": "HNEG", "GMT": "GMT", "HAST": "HAST", "BT": "BT", "JDT": "JDT", "WARST": "WARST", "WITA": "WITA", "ChST": "ChST", "HENOMX": "HENOMX", "ACWST": "ACWST", "COT": "COT", "AKST": "AKST", "AEST": "AEST", "AWST": "AWST", "EST": "EST", "HEPMX": "HEPMX", "HADT": "HADT", "ART": "ART", "HNOG": "HNOG", "WESZ": "WESZ", "LHDT": "LHDT", "HEEG": "HEEG", "HNCU": "HNCU", "MST": "MST", "PDT": "PDT", "HAT": "HAT", "TMST": "TMST", "HECU": "HECU", "GYT": "GYT", "MEZ": "MEZ", "SAST": "SAST", "SGT": "SGT", "AKDT": "AKDT", "AEDT": "AEDT", "HNPM": "HNPM", "MYT": "MYT", "UYT": "UYT", "HKT": "HKT", "CHADT": "CHADT", "BOT": "BOT", "OESZ": "OESZ", "UYST": "UYST", "CDT": "CDT", "ARST": "ARST", "PST": "PST", "HEPM": "HEPM", "ACDT": "ACDT", "WART": "WART", "EDT": "EDT", "ADT": "ADT", "CST": "CST", "WIT": "WIT", "WAST": "WAST", "OEZ": "OEZ", "MDT": "MDT", "HNPMX": "HNPMX", "WIB": "WIB"},
+ timezones: map[string]string{"COT": "COT", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "UYST": "UYST", "JST": "JST", "ARST": "ARST", "EDT": "EDT", "GFT": "GFT", "NZST": "NZST", "MESZ": "MESZ", "WESZ": "WESZ", "WAT": "WAT", "ACST": "ACST", "ACDT": "ACDT", "AEST": "AEST", "WART": "WART", "HNOG": "HNOG", "OEZ": "OEZ", "ACWDT": "ACWDT", "AKDT": "AKDT", "SAST": "SAST", "LHDT": "LHDT", "GYT": "GYT", "HNCU": "HNCU", "CHADT": "CHADT", "NZDT": "NZDT", "CLT": "CLT", "AST": "AST", "JDT": "JDT", "WAST": "WAST", "ACWST": "ACWST", "CLST": "CLST", "HKT": "HKT", "ADT": "ADT", "HNNOMX": "HNNOMX", "WITA": "WITA", "AKST": "AKST", "LHST": "LHST", "HADT": "HADT", "CAT": "CAT", "IST": "IST", "WEZ": "WEZ", "TMT": "TMT", "EST": "EST", "SRT": "SRT", "TMST": "TMST", "HENOMX": "HENOMX", "HEEG": "HEEG", "ChST": "ChST", "CDT": "CDT", "BOT": "BOT", "VET": "VET", "HEOG": "HEOG", "HAT": "HAT", "HKST": "HKST", "MST": "MST", "EAT": "EAT", "HECU": "HECU", "WIT": "WIT", "AWDT": "AWDT", "ECT": "ECT", "COST": "COST", "HNPM": "HNPM", "HEPMX": "HEPMX", "SGT": "SGT", "PST": "PST", "HAST": "HAST", "BT": "BT", "MDT": "MDT", "HEPM": "HEPM", "GMT": "GMT", "HNT": "HNT", "MYT": "MYT", "OESZ": "OESZ", "ART": "ART", "AEDT": "AEDT", "AWST": "AWST", "WARST": "WARST", "UYT": "UYT", "HNPMX": "HNPMX", "WIB": "WIB", "CST": "CST", "CHAST": "CHAST", "PDT": "PDT", "MEZ": "MEZ"},
}
}
diff --git a/ln/ln.go b/ln/ln.go
index c86f7df7..2913b8d8 100644
--- a/ln/ln.go
+++ b/ln/ln.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"libóso ya", "nsima ya Y"},
erasNarrow: []string{"", ""},
erasWide: []string{"Yambo ya Yézu Krís", "Nsima ya Yézu Krís"},
- timezones: map[string]string{"WART": "WART", "SRT": "SRT", "AEDT": "AEDT", "IST": "IST", "CLST": "CLST", "HNEG": "HNEG", "COST": "COST", "CDT": "CDT", "ART": "ART", "PST": "PST", "AWDT": "AWDT", "MEZ": "MEZ", "CAT": "Ntángo ya Lubumbashi", "HNNOMX": "HNNOMX", "SGT": "SGT", "PDT": "PDT", "AWST": "AWST", "LHST": "LHST", "NZDT": "NZDT", "CHADT": "CHADT", "HNCU": "HNCU", "MYT": "MYT", "WIB": "WIB", "SAST": "Ntángo ya Afríka ya Sidi", "JDT": "JDT", "ECT": "ECT", "ACST": "ACST", "WARST": "WARST", "HECU": "HECU", "UYST": "UYST", "WITA": "WITA", "HNPM": "HNPM", "TMT": "TMT", "TMST": "TMST", "AKDT": "AKDT", "BT": "BT", "HEEG": "HEEG", "COT": "COT", "EST": "EST", "ACWST": "ACWST", "AEST": "AEST", "NZST": "NZST", "BOT": "BOT", "HENOMX": "HENOMX", "HAT": "HAT", "∅∅∅": "∅∅∅", "ACDT": "ACDT", "GMT": "Ntángo ya Londoni", "EDT": "EDT", "CHAST": "CHAST", "WAT": "WAT", "HEPMX": "HEPMX", "AKST": "AKST", "MDT": "MDT", "HADT": "HADT", "WESZ": "WESZ", "ARST": "ARST", "CLT": "CLT", "ChST": "ChST", "WAST": "WAST", "AST": "AST", "MST": "MST", "WEZ": "WEZ", "ACWDT": "ACWDT", "HNOG": "HNOG", "OEZ": "OEZ", "HEPM": "HEPM", "OESZ": "OESZ", "WIT": "WIT", "HNT": "HNT", "HNPMX": "HNPMX", "CST": "CST", "VET": "VET", "GFT": "GFT", "HKST": "HKST", "MESZ": "MESZ", "ADT": "ADT", "GYT": "GYT", "UYT": "UYT", "HAST": "HAST", "EAT": "Ntángo ya Afríka ya Ɛ́sita", "HEOG": "HEOG", "HKT": "HKT", "LHDT": "LHDT", "JST": "JST"},
+ timezones: map[string]string{"HADT": "HADT", "OEZ": "OEZ", "LHST": "LHST", "CST": "CST", "PST": "PST", "JDT": "JDT", "WEZ": "WEZ", "HNOG": "HNOG", "ACST": "ACST", "EST": "EST", "HNT": "HNT", "MDT": "MDT", "UYST": "UYST", "JST": "JST", "HEOG": "HEOG", "WAST": "WAST", "CHADT": "CHADT", "HKT": "HKT", "HENOMX": "HENOMX", "AEST": "AEST", "MST": "MST", "HAST": "HAST", "NZDT": "NZDT", "COST": "COST", "BT": "BT", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "SAST": "Ntángo ya Afríka ya Sidi", "SGT": "SGT", "WAT": "WAT", "CDT": "CDT", "PDT": "PDT", "NZST": "NZST", "WIB": "WIB", "AKST": "AKST", "ChST": "ChST", "HNPM": "HNPM", "AWST": "AWST", "OESZ": "OESZ", "GMT": "Ntángo ya Londoni", "EDT": "EDT", "UYT": "UYT", "LHDT": "LHDT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "BOT": "BOT", "TMT": "TMT", "ART": "ART", "AKDT": "AKDT", "HNNOMX": "HNNOMX", "CAT": "Ntángo ya Lubumbashi", "CLT": "CLT", "HKST": "HKST", "HEEG": "HEEG", "SRT": "SRT", "ACWST": "ACWST", "ADT": "ADT", "WART": "WART", "TMST": "TMST", "HNEG": "HNEG", "HAT": "HAT", "VET": "VET", "CLST": "CLST", "COT": "COT", "MYT": "MYT", "WITA": "WITA", "WIT": "WIT", "AWDT": "AWDT", "ACWDT": "ACWDT", "HNCU": "HNCU", "GYT": "GYT", "EAT": "Ntángo ya Afríka ya Ɛ́sita", "HECU": "HECU", "IST": "IST", "MEZ": "MEZ", "AST": "AST", "GFT": "GFT", "HEPM": "HEPM", "CHAST": "CHAST", "ECT": "ECT", "MESZ": "MESZ", "WESZ": "WESZ", "WARST": "WARST", "ARST": "ARST", "ACDT": "ACDT"},
}
}
diff --git a/ln_AO/ln_AO.go b/ln_AO/ln_AO.go
index ba6547d9..7a6d8696 100644
--- a/ln_AO/ln_AO.go
+++ b/ln_AO/ln_AO.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"libóso ya", "nsima ya Y"},
erasNarrow: []string{"", ""},
erasWide: []string{"Yambo ya Yézu Krís", "Nsima ya Yézu Krís"},
- timezones: map[string]string{"ADT": "ADT", "AWST": "AWST", "JDT": "JDT", "GFT": "GFT", "CAT": "Ntángo ya Lubumbashi", "WART": "WART", "CDT": "CDT", "HADT": "HADT", "PDT": "PDT", "AEST": "AEST", "HKT": "HKT", "HEPM": "HEPM", "ECT": "ECT", "MESZ": "MESZ", "MST": "MST", "AST": "AST", "ACWST": "ACWST", "CLST": "CLST", "TMT": "TMT", "EST": "EST", "MDT": "MDT", "COT": "COT", "GMT": "Ntángo ya Londoni", "HECU": "HECU", "CHADT": "CHADT", "ACST": "ACST", "ACDT": "ACDT", "EAT": "Ntángo ya Afríka ya Ɛ́sita", "HKST": "HKST", "WIB": "WIB", "SGT": "SGT", "WITA": "WITA", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "MEZ": "MEZ", "WARST": "WARST", "WIT": "WIT", "ART": "ART", "CLT": "CLT", "HAST": "HAST", "EDT": "EDT", "HNPMX": "HNPMX", "UYST": "UYST", "ACWDT": "ACWDT", "HEOG": "HEOG", "HEEG": "HEEG", "OESZ": "OESZ", "PST": "PST", "HAT": "HAT", "AEDT": "AEDT", "TMST": "TMST", "HEPMX": "HEPMX", "HNCU": "HNCU", "AKDT": "AKDT", "CST": "CST", "HNPM": "HNPM", "LHDT": "LHDT", "NZST": "NZST", "NZDT": "NZDT", "OEZ": "OEZ", "AKST": "AKST", "GYT": "GYT", "MYT": "MYT", "ARST": "ARST", "AWDT": "AWDT", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "SRT": "SRT", "WESZ": "WESZ", "SAST": "Ntángo ya Afríka ya Sidi", "IST": "IST", "JST": "JST", "VET": "VET", "ChST": "ChST", "BOT": "BOT", "COST": "COST", "WAST": "WAST", "HENOMX": "HENOMX", "UYT": "UYT", "BT": "BT", "HNT": "HNT", "HNOG": "HNOG", "LHST": "LHST", "WAT": "WAT", "HNEG": "HNEG"},
+ timezones: map[string]string{"SAST": "Ntángo ya Afríka ya Sidi", "HNOG": "HNOG", "CHAST": "CHAST", "MESZ": "MESZ", "CLST": "CLST", "WARST": "WARST", "AST": "AST", "OESZ": "OESZ", "MDT": "MDT", "AWDT": "AWDT", "VET": "VET", "WART": "WART", "CLT": "CLT", "HKT": "HKT", "∅∅∅": "∅∅∅", "HNPM": "HNPM", "WIT": "WIT", "CHADT": "CHADT", "BOT": "BOT", "MYT": "MYT", "HNT": "HNT", "UYT": "UYT", "EAT": "Ntángo ya Afríka ya Ɛ́sita", "ACDT": "ACDT", "HEPM": "HEPM", "HNPMX": "HNPMX", "UYST": "UYST", "WESZ": "WESZ", "ARST": "ARST", "COST": "COST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "GYT": "GYT", "OEZ": "OEZ", "ACWST": "ACWST", "ECT": "ECT", "MST": "MST", "GFT": "GFT", "WITA": "WITA", "AKST": "AKST", "ChST": "ChST", "SGT": "SGT", "JDT": "JDT", "GMT": "Ntángo ya Londoni", "HKST": "HKST", "HAT": "HAT", "PDT": "PDT", "HADT": "HADT", "ADT": "ADT", "WAT": "WAT", "SRT": "SRT", "HNCU": "HNCU", "CST": "CST", "PST": "PST", "HEOG": "HEOG", "ACST": "ACST", "BT": "BT", "WIB": "WIB", "AWST": "AWST", "HAST": "HAST", "WEZ": "WEZ", "COT": "COT", "AEST": "AEST", "NZST": "NZST", "TMT": "TMT", "AEDT": "AEDT", "HECU": "HECU", "NZDT": "NZDT", "HNEG": "HNEG", "WAST": "WAST", "EDT": "EDT", "AKDT": "AKDT", "CDT": "CDT", "IST": "IST", "JST": "JST", "TMST": "TMST", "CAT": "Ntángo ya Lubumbashi", "LHDT": "LHDT", "EST": "EST", "HEEG": "HEEG", "LHST": "LHST", "ACWDT": "ACWDT", "MEZ": "MEZ", "ART": "ART"},
}
}
diff --git a/ln_CD/ln_CD.go b/ln_CD/ln_CD.go
index 11bdb8ce..2a4cc58c 100644
--- a/ln_CD/ln_CD.go
+++ b/ln_CD/ln_CD.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"libóso ya", "nsima ya Y"},
erasNarrow: []string{"", ""},
erasWide: []string{"Yambo ya Yézu Krís", "Nsima ya Yézu Krís"},
- timezones: map[string]string{"EDT": "EDT", "CDT": "CDT", "ACWDT": "ACWDT", "HEOG": "HEOG", "ACST": "ACST", "COST": "COST", "AST": "AST", "EAT": "Ntángo ya Afríka ya Ɛ́sita", "HNOG": "HNOG", "CHAST": "CHAST", "CAT": "Ntángo ya Lubumbashi", "EST": "EST", "CST": "CST", "HADT": "HADT", "WITA": "WITA", "MDT": "MDT", "WIB": "WIB", "MEZ": "MEZ", "IST": "IST", "WAT": "WAT", "OEZ": "OEZ", "WART": "WART", "GMT": "Ntángo ya Londoni", "GYT": "GYT", "SRT": "SRT", "CLST": "CLST", "JST": "JST", "HNEG": "HNEG", "SGT": "SGT", "ART": "ART", "AEST": "AEST", "SAST": "Ntángo ya Afríka ya Sidi", "∅∅∅": "∅∅∅", "AKST": "AKST", "PDT": "PDT", "WEZ": "WEZ", "HKST": "HKST", "NZDT": "NZDT", "ChST": "ChST", "GFT": "GFT", "WAST": "WAST", "OESZ": "OESZ", "HEPMX": "HEPMX", "MYT": "MYT", "HNT": "HNT", "ARST": "ARST", "AEDT": "AEDT", "HNPM": "HNPM", "LHDT": "LHDT", "HNCU": "HNCU", "HNPMX": "HNPMX", "WIT": "WIT", "HEPM": "HEPM", "NZST": "NZST", "CLT": "CLT", "ECT": "ECT", "WARST": "WARST", "HENOMX": "HENOMX", "HECU": "HECU", "MST": "MST", "WESZ": "WESZ", "AWDT": "AWDT", "TMST": "TMST", "HAST": "HAST", "LHST": "LHST", "BOT": "BOT", "TMT": "TMT", "ACDT": "ACDT", "AKDT": "AKDT", "ADT": "ADT", "VET": "VET", "BT": "BT", "AWST": "AWST", "HKT": "HKT", "MESZ": "MESZ", "HEEG": "HEEG", "COT": "COT", "UYST": "UYST", "ACWST": "ACWST", "JDT": "JDT", "HNNOMX": "HNNOMX", "UYT": "UYT", "PST": "PST", "HAT": "HAT", "CHADT": "CHADT"},
+ timezones: map[string]string{"IST": "IST", "HEOG": "HEOG", "COST": "COST", "HNEG": "HNEG", "WITA": "WITA", "HEPM": "HEPM", "LHDT": "LHDT", "CDT": "CDT", "CAT": "Ntángo ya Lubumbashi", "ACWST": "ACWST", "ART": "ART", "WAST": "WAST", "ChST": "ChST", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "CHAST": "CHAST", "CHADT": "CHADT", "WEZ": "WEZ", "TMT": "TMT", "COT": "COT", "HEEG": "HEEG", "LHST": "LHST", "WESZ": "WESZ", "ACDT": "ACDT", "HENOMX": "HENOMX", "AKST": "AKST", "SAST": "Ntángo ya Afríka ya Sidi", "CST": "CST", "SGT": "SGT", "HAST": "HAST", "JST": "JST", "HKT": "HKT", "AWST": "AWST", "WART": "WART", "WARST": "WARST", "ACST": "ACST", "HNT": "HNT", "GYT": "GYT", "EDT": "EDT", "∅∅∅": "∅∅∅", "HKST": "HKST", "AEST": "AEST", "EST": "EST", "WIT": "WIT", "PST": "PST", "PDT": "PDT", "ACWDT": "ACWDT", "NZDT": "NZDT", "MEZ": "MEZ", "ADT": "ADT", "HEPMX": "HEPMX", "SRT": "SRT", "HADT": "HADT", "MDT": "MDT", "HNPMX": "HNPMX", "HNCU": "HNCU", "WIB": "WIB", "BOT": "BOT", "ECT": "ECT", "GMT": "Ntángo ya Londoni", "ARST": "ARST", "UYT": "UYT", "HNPM": "HNPM", "AST": "AST", "CLT": "CLT", "CLST": "CLST", "MST": "MST", "HECU": "HECU", "NZST": "NZST", "JDT": "JDT", "HNOG": "HNOG", "HAT": "HAT", "AKDT": "AKDT", "GFT": "GFT", "BT": "BT", "UYST": "UYST", "EAT": "Ntángo ya Afríka ya Ɛ́sita", "AWDT": "AWDT", "VET": "VET", "OESZ": "OESZ", "MYT": "MYT", "TMST": "TMST", "AEDT": "AEDT", "OEZ": "OEZ", "WAT": "WAT"},
}
}
diff --git a/ln_CF/ln_CF.go b/ln_CF/ln_CF.go
index 7f8f5e69..dc4e8a74 100644
--- a/ln_CF/ln_CF.go
+++ b/ln_CF/ln_CF.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"libóso ya", "nsima ya Y"},
erasNarrow: []string{"", ""},
erasWide: []string{"Yambo ya Yézu Krís", "Nsima ya Yézu Krís"},
- timezones: map[string]string{"PST": "PST", "AEST": "AEST", "AWDT": "AWDT", "HEPM": "HEPM", "LHST": "LHST", "CHAST": "CHAST", "CLST": "CLST", "MDT": "MDT", "CHADT": "CHADT", "MYT": "MYT", "ADT": "ADT", "WITA": "WITA", "HNPM": "HNPM", "CAT": "Ntángo ya Lubumbashi", "COST": "COST", "ECT": "ECT", "UYST": "UYST", "CST": "CST", "GYT": "GYT", "HAST": "HAST", "WEZ": "WEZ", "EAT": "Ntángo ya Afríka ya Ɛ́sita", "OESZ": "OESZ", "AKST": "AKST", "AEDT": "AEDT", "HECU": "HECU", "HEPMX": "HEPMX", "ACDT": "ACDT", "WAST": "WAST", "CDT": "CDT", "HADT": "HADT", "SAST": "Ntángo ya Afríka ya Sidi", "CLT": "CLT", "ACST": "ACST", "HAT": "HAT", "TMT": "TMT", "BT": "BT", "ACWST": "ACWST", "HKT": "HKT", "GMT": "Ntángo ya Londoni", "PDT": "PDT", "AST": "AST", "HNOG": "HNOG", "AWST": "AWST", "NZDT": "NZDT", "HENOMX": "HENOMX", "EDT": "EDT", "VET": "VET", "MEZ": "MEZ", "WARST": "WARST", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "WIB": "WIB", "WIT": "WIT", "ChST": "ChST", "BOT": "BOT", "WESZ": "WESZ", "IST": "IST", "WAT": "WAT", "UYT": "UYT", "HNCU": "HNCU", "ACWDT": "ACWDT", "ART": "ART", "∅∅∅": "∅∅∅", "SGT": "SGT", "WART": "WART", "COT": "COT", "SRT": "SRT", "HNT": "HNT", "HKST": "HKST", "MESZ": "MESZ", "GFT": "GFT", "OEZ": "OEZ", "HEEG": "HEEG", "TMST": "TMST", "HEOG": "HEOG", "LHDT": "LHDT", "NZST": "NZST", "JST": "JST", "EST": "EST", "MST": "MST", "AKDT": "AKDT", "ARST": "ARST", "JDT": "JDT", "HNEG": "HNEG"},
+ timezones: map[string]string{"PST": "PST", "ACWST": "ACWST", "WART": "WART", "HENOMX": "HENOMX", "HNEG": "HNEG", "WITA": "WITA", "CHAST": "CHAST", "ACDT": "ACDT", "BT": "BT", "BOT": "BOT", "HAST": "HAST", "IST": "IST", "CLT": "CLT", "MDT": "MDT", "WAT": "WAT", "EAT": "Ntángo ya Afríka ya Ɛ́sita", "CDT": "CDT", "MYT": "MYT", "EDT": "EDT", "HNNOMX": "HNNOMX", "HEEG": "HEEG", "ChST": "ChST", "UYST": "UYST", "SRT": "SRT", "CAT": "Ntángo ya Lubumbashi", "WARST": "WARST", "TMT": "TMT", "HNT": "HNT", "MESZ": "MESZ", "WEZ": "WEZ", "AEST": "AEST", "SAST": "Ntángo ya Afríka ya Sidi", "WIB": "WIB", "AWST": "AWST", "PDT": "PDT", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "JDT": "JDT", "MST": "MST", "AKDT": "AKDT", "HADT": "HADT", "OEZ": "OEZ", "WESZ": "WESZ", "ART": "ART", "ARST": "ARST", "HNPMX": "HNPMX", "GYT": "GYT", "GMT": "Ntángo ya Londoni", "COT": "COT", "AKST": "AKST", "HNPM": "HNPM", "HECU": "HECU", "WIT": "WIT", "NZST": "NZST", "VET": "VET", "AEDT": "AEDT", "HNCU": "HNCU", "ECT": "ECT", "MEZ": "MEZ", "JST": "JST", "HAT": "HAT", "LHDT": "LHDT", "SGT": "SGT", "NZDT": "NZDT", "HNOG": "HNOG", "TMST": "TMST", "HKT": "HKT", "HKST": "HKST", "CLST": "CLST", "COST": "COST", "HEPM": "HEPM", "HEPMX": "HEPMX", "CST": "CST", "EST": "EST", "WAST": "WAST", "GFT": "GFT", "UYT": "UYT", "CHADT": "CHADT", "HEOG": "HEOG", "AST": "AST", "ADT": "ADT", "OESZ": "OESZ", "ACST": "ACST", "LHST": "LHST", "AWDT": "AWDT"},
}
}
diff --git a/ln_CG/ln_CG.go b/ln_CG/ln_CG.go
index 20e3aeb4..6dacbbd6 100644
--- a/ln_CG/ln_CG.go
+++ b/ln_CG/ln_CG.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"libóso ya", "nsima ya Y"},
erasNarrow: []string{"", ""},
erasWide: []string{"Yambo ya Yézu Krís", "Nsima ya Yézu Krís"},
- timezones: map[string]string{"HNEG": "HNEG", "COST": "COST", "BT": "BT", "HNOG": "HNOG", "CHADT": "CHADT", "AEDT": "AEDT", "CLST": "CLST", "WARST": "WARST", "SGT": "SGT", "GMT": "Ntángo ya Londoni", "HADT": "HADT", "WIT": "WIT", "NZDT": "NZDT", "OESZ": "OESZ", "HECU": "HECU", "AKST": "AKST", "AST": "AST", "HEOG": "HEOG", "LHST": "LHST", "LHDT": "LHDT", "HNCU": "HNCU", "HEPMX": "HEPMX", "WEZ": "WEZ", "GYT": "GYT", "WITA": "WITA", "ChST": "ChST", "SAST": "Ntángo ya Afríka ya Sidi", "COT": "COT", "ADT": "ADT", "WIB": "WIB", "AWDT": "AWDT", "CHAST": "CHAST", "ACDT": "ACDT", "WART": "WART", "EDT": "EDT", "HNT": "HNT", "NZST": "NZST", "CLT": "CLT", "WAT": "WAT", "OEZ": "OEZ", "∅∅∅": "∅∅∅", "HAST": "HAST", "ARST": "ARST", "ACST": "ACST", "CAT": "Ntángo ya Lubumbashi", "WESZ": "WESZ", "ART": "ART", "HKST": "HKST", "UYST": "UYST", "SRT": "SRT", "HNPM": "HNPM", "HNNOMX": "HNNOMX", "MDT": "MDT", "AKDT": "AKDT", "CDT": "CDT", "JDT": "JDT", "CST": "CST", "UYT": "UYT", "PDT": "PDT", "HKT": "HKT", "GFT": "GFT", "JST": "JST", "BOT": "BOT", "EAT": "Ntángo ya Afríka ya Ɛ́sita", "ECT": "ECT", "HAT": "HAT", "MEZ": "MEZ", "IST": "IST", "ACWST": "ACWST", "AEST": "AEST", "TMT": "TMT", "ACWDT": "ACWDT", "HEEG": "HEEG", "WAST": "WAST", "HENOMX": "HENOMX", "MST": "MST", "HNPMX": "HNPMX", "VET": "VET", "AWST": "AWST", "HEPM": "HEPM", "MESZ": "MESZ", "TMST": "TMST", "EST": "EST", "MYT": "MYT", "PST": "PST"},
+ timezones: map[string]string{"AEST": "AEST", "IST": "IST", "MESZ": "MESZ", "WITA": "WITA", "CHAST": "CHAST", "MEZ": "MEZ", "ARST": "ARST", "BOT": "BOT", "PST": "PST", "WART": "WART", "HEOG": "HEOG", "TMT": "TMT", "COST": "COST", "HNPM": "HNPM", "AWDT": "AWDT", "CHADT": "CHADT", "HADT": "HADT", "CAT": "Ntángo ya Lubumbashi", "MYT": "MYT", "ACST": "ACST", "HEEG": "HEEG", "SRT": "SRT", "HNCU": "HNCU", "GMT": "Ntángo ya Londoni", "CLST": "CLST", "TMST": "TMST", "HKST": "HKST", "ACDT": "ACDT", "HEPMX": "HEPMX", "CDT": "CDT", "ACWST": "ACWST", "BT": "BT", "∅∅∅": "∅∅∅", "ACWDT": "ACWDT", "CLT": "CLT", "WESZ": "WESZ", "AKDT": "AKDT", "JST": "JST", "OEZ": "OEZ", "HKT": "HKT", "HNEG": "HNEG", "ChST": "ChST", "UYT": "UYT", "CST": "CST", "AWST": "AWST", "PDT": "PDT", "ART": "ART", "WAST": "WAST", "AEDT": "AEDT", "LHST": "LHST", "GYT": "GYT", "NZDT": "NZDT", "HENOMX": "HENOMX", "HAT": "HAT", "HNT": "HNT", "GFT": "GFT", "AKST": "AKST", "HEPM": "HEPM", "WIT": "WIT", "JDT": "JDT", "WARST": "WARST", "ADT": "ADT", "SGT": "SGT", "HAST": "HAST", "EST": "EST", "EDT": "EDT", "HNNOMX": "HNNOMX", "MST": "MST", "SAST": "Ntángo ya Afríka ya Sidi", "ECT": "ECT", "OESZ": "OESZ", "LHDT": "LHDT", "EAT": "Ntángo ya Afríka ya Ɛ́sita", "WIB": "WIB", "UYST": "UYST", "COT": "COT", "WEZ": "WEZ", "MDT": "MDT", "HNPMX": "HNPMX", "HECU": "HECU", "NZST": "NZST", "VET": "VET", "HNOG": "HNOG", "AST": "AST", "WAT": "WAT"},
}
}
diff --git a/lo/lo.go b/lo/lo.go
index c5c0b64c..f890ce4d 100644
--- a/lo/lo.go
+++ b/lo/lo.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ກ່ອນ ຄ.ສ.", "ຄ.ສ."},
erasNarrow: []string{"", ""},
erasWide: []string{"ກ່ອນຄຣິດສັກກະລາດ", "ຄຣິດສັກກະລາດ"},
- timezones: map[string]string{"ACWDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bກາງ\u200bຕາ\u200bເວັນ\u200bຕົກ", "HKT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຮອງ\u200bກົງ", "ChST": "ເວ\u200bລາ\u200bຈາ\u200bໂມ\u200bໂຣ", "COST": "ເວລາລະດູຮ້ອນໂຄລໍາເບຍ", "PST": "ເວລາມາດຕະຖານແປຊິຟິກ", "ACWST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານອອສ\u200bເຕຣ\u200bລຽນ\u200bກາງ\u200bຕາ\u200bເວັນ\u200bຕົກ", "CHADT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bຊາ\u200bທາມ", "BOT": "ເວ\u200bລາ\u200bໂບ\u200bລິ\u200bເວຍ", "GFT": "ເວ\u200bລາ\u200bເຟ\u200bຣນ\u200bຊ໌\u200bເກຍ\u200bນາ", "MST": "ເວລາມາດຕະຖານມາເກົາ", "HNOG": "ເວລາມາດຕະຖານກຣີນແລນຕາເວັນຕົກ", "NZDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bນິວ\u200bຊີ\u200bແລນ", "MYT": "ເວ\u200bລາ\u200bມາ\u200bເລ\u200bເຊຍ", "AKST": "ເວລາມາດຕະຖານອະແລສກາ", "SRT": "ເວ\u200bລາ\u200bຊຸ\u200bຣິ\u200bນາມ", "HAT": "ເວລາກາງເວັນນິວຟາວແລນ", "JDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bຍີ່\u200bປຸ່ນ", "HEEG": "ເວລາລະດູຮ້ອນກຣີນແລນຕາເວັນອອກ", "CDT": "ເວລາກາງເວັນກາງ", "HKST": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bຮອງ\u200bກົງ", "CLT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານຊິ\u200bລີ", "JST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຍີ່\u200bປຸ່ນ", "TMT": "ເວລາມາດຕະຖານຕວກເມນິສຖານ", "WIB": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bຕາ\u200bເວັນ\u200bຕົກ", "AWDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bຕົກ", "HNPM": "\u200bເວ\u200bລາມາດ\u200bຕະ\u200bຖານເຊນ\u200bປີ\u200bແອ ແລະ\u200bມິ\u200bກົວ\u200bລອນ", "HADT": "ເວລາຕອນທ່ຽງຮາວາຍ-ເອລູທຽນ", "AEST": "ເວ\u200bລາ\u200bມາດຕະຖານ\u200b\u200b\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bອອກ", "MEZ": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຢູ\u200bໂຣບກາງ", "ECT": "ເວ\u200bລາ\u200bເອ\u200bກົວ\u200bດໍ", "WARST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນເວ\u200bສ\u200bເທິນອາ\u200bເຈນ\u200bທິ\u200bນາ", "HECU": "ເວລາກາງເວັນຄິວບາ", "AKDT": "ເວລາກາງເວັນອະແລສກາ", "LHDT": "\u200bເວ\u200bລ\u200bສາ\u200bຕອນ\u200b\u200bທ່ຽງ\u200bລອດ\u200bເຮົາ\u200b", "ACDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bເລຍ\u200bກາງ", "HENOMX": "ເວລາກາງເວັນເມັກຊິກັນນອດເວສ", "HAST": "ເວລາມາດຕະຖານຮາວາຍ-ເອລູທຽນ", "BT": "ເວ\u200bລາ\u200bພູ\u200bຖານ", "HNEG": "ເວລາມາດຕະຖານຕາເວັນອອກກຣີນແລນ", "OEZ": "ເວ\u200bລາ\u200bມາ\u200bດ\u200bຕະ\u200bຖານ\u200bຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bອອກ", "HNCU": "ເວລາມາດຕະຖານຂອງຄິວບາ", "EDT": "ເວລາກາງເວັນຕາເວັນອອກ", "HNT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bນິວ\u200bຟາວ\u200bແລນ", "ART": "\u200bເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານອາ\u200bເຈນ\u200bທິ\u200bນາ", "WITA": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bກາງ", "ACST": "ເວ\u200bລາມາດ\u200bຕະ\u200bຖານອອ\u200bສ\u200bເຕຣ\u200bເລຍ\u200bກ\u200bາງ", "EST": "ເວລາມາດຕະຖານຕາເວັນອອກ", "HNPMX": "ເວລາມາດຕະຖານແປຊິຟິກເມັກຊິກັນ", "GYT": "ເວລາກາຍອານາ", "CHAST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຊາ\u200bທາມ", "UYT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bອູ\u200bຣູ\u200bກວຍ", "ADT": "ເວລາກາງເວັນຂອງອາແລນຕິກ", "AWST": "ເວ\u200bລາ\u200bມາ\u200bດ\u200bຕະ\u200bຖານອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bຕົກ", "MESZ": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bຢູ\u200bໂຣບ\u200bກາງ", "IST": "ເວລາ ອິນເດຍ", "CAT": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bກາງ", "WAST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bຕົກ", "HEOG": "ເວລາຕອນທ່ຽງກຣີນແລນຕາເວັນຕົກ", "AEDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bອອກ", "WESZ": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bຕົກ", "TMST": "ເວລາລະດູຮ້ອນຕວກເມນິສຖານ", "MDT": "ເວລາລະດູຮ້ອນມາເກົາ", "VET": "ເວ\u200bລາ\u200bເວ\u200bເນ\u200bຊູ\u200bເອ\u200bລາ", "WEZ": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bຕົກ", "EAT": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bອອກ", "COT": "ເວລາມາດຕະຖານໂຄລຳເບຍ", "PDT": "ເວລາກາງເວັນແປຊິຟິກ", "AST": "ເວລາມາດຕະຖານຂອງອາແລນຕິກ", "LHST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bລອດ\u200bເຮົາ", "∅∅∅": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bເປ\u200bຣູ", "WAT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bຕົກ", "WART": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານເວ\u200bສ\u200bເທິນອາ\u200bເຈນ\u200bທິ\u200bນາ", "SGT": "ເວ\u200bລາ\u200bສິງ\u200bກະ\u200bໂປ", "ARST": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອາ\u200bເຈນ\u200bທິ\u200bນາ", "GMT": "ເວ\u200bລາກຣີນ\u200bວິ\u200bຊ", "HEPMX": "ເວລາກາງເວັນແປຊິຟິກເມັກຊິກັນ", "UYST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອູ\u200bຣູ\u200bກວຍ", "CST": "ເວລາມາດຕະຖານກາງ", "NZST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານນິວ\u200bຊີ\u200bແລນ", "SAST": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bໃຕ້", "CLST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຊິ\u200bລີ", "OESZ": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bອອກ", "HNNOMX": "\u200bເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານນອດ\u200bເວ\u200bສ\u200bເມັກ\u200bຊິ\u200bໂກ", "WIT": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bຕາ\u200bເວັນ\u200bອອກ", "HEPM": "\u200bເວ\u200bລາຕອນ\u200bທ່ຽງເຊນ\u200bປີ\u200bແອ ແລະ\u200bມິ\u200bກົວ\u200bລອນ"},
+ timezones: map[string]string{"EST": "ເວລາມາດຕະຖານຕາເວັນອອກ", "HNT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bນິວ\u200bຟາວ\u200bແລນ", "GFT": "ເວ\u200bລາ\u200bເຟ\u200bຣນ\u200bຊ໌\u200bເກຍ\u200bນາ", "WITA": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bກາງ", "SGT": "ເວ\u200bລາ\u200bສິງ\u200bກະ\u200bໂປ", "AST": "ເວລາມາດຕະຖານຂອງອາແລນຕິກ", "HNNOMX": "\u200bເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານນອດ\u200bເວ\u200bສ\u200bເມັກ\u200bຊິ\u200bໂກ", "HENOMX": "ເວລາກາງເວັນເມັກຊິກັນນອດເວສ", "EAT": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bອອກ", "MST": "ເວລາມາດຕະຖານມາເກົາ", "HAT": "ເວລາກາງເວັນນິວຟາວແລນ", "UYST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອູ\u200bຣູ\u200bກວຍ", "GYT": "ເວລາກາຍອານາ", "WIT": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bຕາ\u200bເວັນ\u200bອອກ", "∅∅∅": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນອາ\u200bເມ\u200bຊອນ", "CAT": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bກາງ", "HEOG": "ເວລາຕອນທ່ຽງກຣີນແລນຕາເວັນຕົກ", "WAST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bຕົກ", "BT": "ເວ\u200bລາ\u200bພູ\u200bຖານ", "UYT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bອູ\u200bຣູ\u200bກວຍ", "HADT": "ເວລາຕອນທ່ຽງຮາວາຍ-ເອລູທຽນ", "VET": "ເວ\u200bລາ\u200bເວ\u200bເນ\u200bຊູ\u200bເອ\u200bລາ", "WARST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນເວ\u200bສ\u200bເທິນອາ\u200bເຈນ\u200bທິ\u200bນາ", "CLST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຊິ\u200bລີ", "AEST": "ເວ\u200bລາ\u200bມາດຕະຖານ\u200b\u200b\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bອອກ", "HECU": "ເວລາກາງເວັນຄິວບາ", "CST": "ເວລາມາດຕະຖານກາງ", "CDT": "ເວລາກາງເວັນກາງ", "HAST": "ເວລາມາດຕະຖານຮາວາຍ-ເອລູທຽນ", "MESZ": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bຢູ\u200bໂຣບ\u200bກາງ", "HEEG": "ເວລາລະດູຮ້ອນກຣີນແລນຕາເວັນອອກ", "AEDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bອອກ", "JST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຍີ່\u200bປຸ່ນ", "MYT": "ເວ\u200bລາ\u200bມາ\u200bເລ\u200bເຊຍ", "ACDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bເລຍ\u200bກາງ", "AKDT": "ເວລາກາງເວັນອະແລສກາ", "CHAST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຊາ\u200bທາມ", "ECT": "ເວ\u200bລາ\u200bເອ\u200bກົວ\u200bດໍ", "PDT": "ເວລາກາງເວັນແປຊິຟິກ", "ACWST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານອອສ\u200bເຕຣ\u200bລຽນ\u200bກາງ\u200bຕາ\u200bເວັນ\u200bຕົກ", "ACWDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bກາງ\u200bຕາ\u200bເວັນ\u200bຕົກ", "MEZ": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຢູ\u200bໂຣບກາງ", "GMT": "ເວ\u200bລາກຣີນ\u200bວິ\u200bຊ", "HNOG": "ເວລາມາດຕະຖານກຣີນແລນຕາເວັນຕົກ", "TMST": "ເວລາລະດູຮ້ອນຕວກເມນິສຖານ", "MDT": "ເວລາລະດູຮ້ອນມາເກົາ", "COST": "ເວລາລະດູຮ້ອນໂຄລໍາເບຍ", "SAST": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bໃຕ້", "JDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bຍີ່\u200bປຸ່ນ", "OESZ": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bອອກ", "ART": "\u200bເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານອາ\u200bເຈນ\u200bທິ\u200bນາ", "NZST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານນິວ\u200bຊີ\u200bແລນ", "ARST": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອາ\u200bເຈນ\u200bທິ\u200bນາ", "HKST": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bຮອງ\u200bກົງ", "HEPM": "\u200bເວ\u200bລາຕອນ\u200bທ່ຽງເຊນ\u200bປີ\u200bແອ ແລະ\u200bມິ\u200bກົວ\u200bລອນ", "SRT": "ເວ\u200bລາ\u200bຊຸ\u200bຣິ\u200bນາມ", "LHDT": "\u200bເວ\u200bລ\u200bສາ\u200bຕອນ\u200b\u200bທ່ຽງ\u200bລອດ\u200bເຮົາ\u200b", "WIB": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bຕາ\u200bເວັນ\u200bຕົກ", "CHADT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bຊາ\u200bທາມ", "WAT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bຕົກ", "EDT": "ເວລາກາງເວັນຕາເວັນອອກ", "HKT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຮອງ\u200bກົງ", "HNEG": "ເວລາມາດຕະຖານຕາເວັນອອກກຣີນແລນ", "AKST": "ເວລາມາດຕະຖານອະແລສກາ", "HNPM": "\u200bເວ\u200bລາມາດ\u200bຕະ\u200bຖານເຊນ\u200bປີ\u200bແອ ແລະ\u200bມິ\u200bກົວ\u200bລອນ", "HNPMX": "ເວລາມາດຕະຖານແປຊິຟິກເມັກຊິກັນ", "BOT": "ເວ\u200bລາ\u200bໂບ\u200bລິ\u200bເວຍ", "WART": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານເວ\u200bສ\u200bເທິນອາ\u200bເຈນ\u200bທິ\u200bນາ", "OEZ": "ເວ\u200bລາ\u200bມາ\u200bດ\u200bຕະ\u200bຖານ\u200bຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bອອກ", "WESZ": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bຕົກ", "COT": "ເວລາມາດຕະຖານໂຄລຳເບຍ", "HNCU": "ເວລາມາດຕະຖານຂອງຄິວບາ", "PST": "ເວລາມາດຕະຖານແປຊິຟິກ", "NZDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bນິວ\u200bຊີ\u200bແລນ", "IST": "ເວລາ ອິນເດຍ", "ADT": "ເວລາກາງເວັນຂອງອາແລນຕິກ", "WEZ": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bຕົກ", "TMT": "ເວລາມາດຕະຖານຕວກເມນິສຖານ", "ACST": "ເວ\u200bລາມາດ\u200bຕະ\u200bຖານອອ\u200bສ\u200bເຕຣ\u200bເລຍ\u200bກ\u200bາງ", "LHST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bລອດ\u200bເຮົາ", "HEPMX": "ເວລາກາງເວັນແປຊິຟິກເມັກຊິກັນ", "CLT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານຊິ\u200bລີ", "ChST": "ເວ\u200bລາ\u200bຈາ\u200bໂມ\u200bໂຣ", "AWST": "ເວ\u200bລາ\u200bມາ\u200bດ\u200bຕະ\u200bຖານອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bຕົກ", "AWDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bຕົກ"},
}
}
diff --git a/lo_LA/lo_LA.go b/lo_LA/lo_LA.go
index 4166b777..33150b1d 100644
--- a/lo_LA/lo_LA.go
+++ b/lo_LA/lo_LA.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ກ່ອນ ຄ.ສ.", "ຄ.ສ."},
erasNarrow: []string{"", ""},
erasWide: []string{"ກ່ອນຄຣິດສັກກະລາດ", "ຄຣິດສັກກະລາດ"},
- timezones: map[string]string{"IST": "ເວລາ ອິນເດຍ", "BOT": "ເວ\u200bລາ\u200bໂບ\u200bລິ\u200bເວຍ", "WAST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bຕົກ", "MYT": "ເວ\u200bລາ\u200bມາ\u200bເລ\u200bເຊຍ", "ART": "\u200bເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານອາ\u200bເຈນ\u200bທິ\u200bນາ", "PDT": "ເວລາກາງເວັນແປຊິຟິກ", "TMST": "ເວລາລະດູຮ້ອນຕວກເມນິສຖານ", "WAT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bຕົກ", "WARST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນເວ\u200bສ\u200bເທິນອາ\u200bເຈນ\u200bທິ\u200bນາ", "HAT": "ເວລາກາງເວັນນິວຟາວແລນ", "CLT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານຊິ\u200bລີ", "UYT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bອູ\u200bຣູ\u200bກວຍ", "AEDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bອອກ", "HKST": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bຮອງ\u200bກົງ", "MEZ": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຢູ\u200bໂຣບກາງ", "COT": "ເວລາມາດຕະຖານໂຄລຳເບຍ", "AKDT": "ເວລາກາງເວັນອະແລສກາ", "UYST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອູ\u200bຣູ\u200bກວຍ", "AKST": "ເວລາມາດຕະຖານອະແລສກາ", "SRT": "ເວ\u200bລາ\u200bຊຸ\u200bຣິ\u200bນາມ", "HNT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bນິວ\u200bຟາວ\u200bແລນ", "LHST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bລອດ\u200bເຮົາ", "SGT": "ເວ\u200bລາ\u200bສິງ\u200bກະ\u200bໂປ", "HNPMX": "ເວລາມາດຕະຖານແປຊິຟິກເມັກຊິກັນ", "AWDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bຕົກ", "CHADT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bຊາ\u200bທາມ", "NZST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານນິວ\u200bຊີ\u200bແລນ", "OEZ": "ເວ\u200bລາ\u200bມາ\u200bດ\u200bຕະ\u200bຖານ\u200bຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bອອກ", "WART": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານເວ\u200bສ\u200bເທິນອາ\u200bເຈນ\u200bທິ\u200bນາ", "CDT": "ເວລາກາງເວັນກາງ", "HNOG": "ເວລາມາດຕະຖານກຣີນແລນຕາເວັນຕົກ", "WEZ": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bຕົກ", "AEST": "ເວ\u200bລາ\u200bມາດຕະຖານ\u200b\u200b\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bອອກ", "HEPM": "\u200bເວ\u200bລາຕອນ\u200bທ່ຽງເຊນ\u200bປີ\u200bແອ ແລະ\u200bມິ\u200bກົວ\u200bລອນ", "JST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຍີ່\u200bປຸ່ນ", "∅∅∅": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນອາ\u200bເມ\u200bຊອນ", "COST": "ເວລາລະດູຮ້ອນໂຄລໍາເບຍ", "MST": "ເວລາມາດຕະຖານມາເກົາ", "HNCU": "ເວລາມາດຕະຖານຂອງຄິວບາ", "MESZ": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bຢູ\u200bໂຣບ\u200bກາງ", "JDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bຍີ່\u200bປຸ່ນ", "ACDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bເລຍ\u200bກາງ", "EAT": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bອອກ", "GYT": "ເວລາກາຍອານາ", "EDT": "ເວລາກາງເວັນຕາເວັນອອກ", "ACWDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bກາງ\u200bຕາ\u200bເວັນ\u200bຕົກ", "ECT": "ເວ\u200bລາ\u200bເອ\u200bກົວ\u200bດໍ", "GMT": "ເວ\u200bລາກຣີນ\u200bວິ\u200bຊ", "EST": "ເວລາມາດຕະຖານຕາເວັນອອກ", "PST": "ເວລາມາດຕະຖານແປຊິຟິກ", "WESZ": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bຕົກ", "CLST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຊິ\u200bລີ", "HEOG": "ເວລາຕອນທ່ຽງກຣີນແລນຕາເວັນຕົກ", "AST": "ເວລາມາດຕະຖານຂອງອາແລນຕິກ", "HADT": "ເວລາຕອນທ່ຽງຮາວາຍ-ເອລູທຽນ", "SAST": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bໃຕ້", "CST": "ເວລາມາດຕະຖານກາງ", "HNEG": "ເວລາມາດຕະຖານຕາເວັນອອກກຣີນແລນ", "CAT": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bກາງ", "HECU": "ເວລາກາງເວັນຄິວບາ", "ACWST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານອອສ\u200bເຕຣ\u200bລຽນ\u200bກາງ\u200bຕາ\u200bເວັນ\u200bຕົກ", "WITA": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bກາງ", "HNPM": "\u200bເວ\u200bລາມາດ\u200bຕະ\u200bຖານເຊນ\u200bປີ\u200bແອ ແລະ\u200bມິ\u200bກົວ\u200bລອນ", "ChST": "ເວ\u200bລາ\u200bຈາ\u200bໂມ\u200bໂຣ", "HNNOMX": "\u200bເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານນອດ\u200bເວ\u200bສ\u200bເມັກ\u200bຊິ\u200bໂກ", "VET": "ເວ\u200bລາ\u200bເວ\u200bເນ\u200bຊູ\u200bເອ\u200bລາ", "WIB": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bຕາ\u200bເວັນ\u200bຕົກ", "HAST": "ເວລາມາດຕະຖານຮາວາຍ-ເອລູທຽນ", "HKT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຮອງ\u200bກົງ", "HEEG": "ເວລາລະດູຮ້ອນກຣີນແລນຕາເວັນອອກ", "ACST": "ເວ\u200bລາມາດ\u200bຕະ\u200bຖານອອ\u200bສ\u200bເຕຣ\u200bເລຍ\u200bກ\u200bາງ", "ADT": "ເວລາກາງເວັນຂອງອາແລນຕິກ", "WIT": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bຕາ\u200bເວັນ\u200bອອກ", "BT": "ເວ\u200bລາ\u200bພູ\u200bຖານ", "AWST": "ເວ\u200bລາ\u200bມາ\u200bດ\u200bຕະ\u200bຖານອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bຕົກ", "NZDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bນິວ\u200bຊີ\u200bແລນ", "TMT": "ເວລາມາດຕະຖານຕວກເມນິສຖານ", "OESZ": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bອອກ", "MDT": "ເວລາລະດູຮ້ອນມາເກົາ", "ARST": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອາ\u200bເຈນ\u200bທິ\u200bນາ", "CHAST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຊາ\u200bທາມ", "LHDT": "\u200bເວ\u200bລ\u200bສາ\u200bຕອນ\u200b\u200bທ່ຽງ\u200bລອດ\u200bເຮົາ\u200b", "GFT": "ເວ\u200bລາ\u200bເຟ\u200bຣນ\u200bຊ໌\u200bເກຍ\u200bນາ", "HENOMX": "ເວລາກາງເວັນເມັກຊິກັນນອດເວສ", "HEPMX": "ເວລາກາງເວັນແປຊິຟິກເມັກຊິກັນ"},
+ timezones: map[string]string{"HKT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຮອງ\u200bກົງ", "WIT": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bຕາ\u200bເວັນ\u200bອອກ", "WESZ": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bຕົກ", "AKDT": "ເວລາກາງເວັນອະແລສກາ", "AWDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bຕົກ", "CHADT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bຊາ\u200bທາມ", "ACWST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານອອສ\u200bເຕຣ\u200bລຽນ\u200bກາງ\u200bຕາ\u200bເວັນ\u200bຕົກ", "JST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຍີ່\u200bປຸ່ນ", "WARST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນເວ\u200bສ\u200bເທິນອາ\u200bເຈນ\u200bທິ\u200bນາ", "OESZ": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bອອກ", "ACDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bເລຍ\u200bກາງ", "HNT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bນິວ\u200bຟາວ\u200bແລນ", "WIB": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bຕາ\u200bເວັນ\u200bຕົກ", "CST": "ເວລາມາດຕະຖານກາງ", "SRT": "ເວ\u200bລາ\u200bຊຸ\u200bຣິ\u200bນາມ", "HEPM": "\u200bເວ\u200bລາຕອນ\u200bທ່ຽງເຊນ\u200bປີ\u200bແອ ແລະ\u200bມິ\u200bກົວ\u200bລອນ", "SAST": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bໃຕ້", "EAT": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bອອກ", "HNCU": "ເວລາມາດຕະຖານຂອງຄິວບາ", "ART": "\u200bເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານອາ\u200bເຈນ\u200bທິ\u200bນາ", "CAT": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bກາງ", "CLT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານຊິ\u200bລີ", "WAT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bຕົກ", "WITA": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bກາງ", "LHST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bລອດ\u200bເຮົາ", "SGT": "ເວ\u200bລາ\u200bສິງ\u200bກະ\u200bໂປ", "MDT": "ເວລາລະດູຮ້ອນມາເກົາ", "TMT": "ເວລາມາດຕະຖານຕວກເມນິສຖານ", "LHDT": "\u200bເວ\u200bລ\u200bສາ\u200bຕອນ\u200b\u200bທ່ຽງ\u200bລອດ\u200bເຮົາ\u200b", "PST": "ເວລາມາດຕະຖານແປຊິຟິກ", "MESZ": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bຢູ\u200bໂຣບ\u200bກາງ", "HEOG": "ເວລາຕອນທ່ຽງກຣີນແລນຕາເວັນຕົກ", "COT": "ເວລາມາດຕະຖານໂຄລຳເບຍ", "AKST": "ເວລາມາດຕະຖານອະແລສກາ", "ChST": "ເວ\u200bລາ\u200bຈາ\u200bໂມ\u200bໂຣ", "PDT": "ເວລາກາງເວັນແປຊິຟິກ", "MYT": "ເວ\u200bລາ\u200bມາ\u200bເລ\u200bເຊຍ", "EST": "ເວລາມາດຕະຖານຕາເວັນອອກ", "HECU": "ເວລາກາງເວັນຄິວບາ", "CLST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຊິ\u200bລີ", "EDT": "ເວລາກາງເວັນຕາເວັນອອກ", "HNNOMX": "\u200bເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານນອດ\u200bເວ\u200bສ\u200bເມັກ\u200bຊິ\u200bໂກ", "GYT": "ເວລາກາຍອານາ", "NZST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານນິວ\u200bຊີ\u200bແລນ", "JDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bຍີ່\u200bປຸ່ນ", "ADT": "ເວລາກາງເວັນຂອງອາແລນຕິກ", "ARST": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອາ\u200bເຈນ\u200bທິ\u200bນາ", "ACST": "ເວ\u200bລາມາດ\u200bຕະ\u200bຖານອອ\u200bສ\u200bເຕຣ\u200bເລຍ\u200bກ\u200bາງ", "HNEG": "ເວລາມາດຕະຖານຕາເວັນອອກກຣີນແລນ", "HEEG": "ເວລາລະດູຮ້ອນກຣີນແລນຕາເວັນອອກ", "CDT": "ເວລາກາງເວັນກາງ", "BOT": "ເວ\u200bລາ\u200bໂບ\u200bລິ\u200bເວຍ", "UYST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອູ\u200bຣູ\u200bກວຍ", "HNPMX": "ເວລາມາດຕະຖານແປຊິຟິກເມັກຊິກັນ", "WART": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານເວ\u200bສ\u200bເທິນອາ\u200bເຈນ\u200bທິ\u200bນາ", "AST": "ເວລາມາດຕະຖານຂອງອາແລນຕິກ", "AEST": "ເວ\u200bລາ\u200bມາດຕະຖານ\u200b\u200b\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bອອກ", "GFT": "ເວ\u200bລາ\u200bເຟ\u200bຣນ\u200bຊ໌\u200bເກຍ\u200bນາ", "CHAST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຊາ\u200bທາມ", "NZDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bນິວ\u200bຊີ\u200bແລນ", "IST": "ເວລາ ອິນເດຍ", "HAST": "ເວລາມາດຕະຖານຮາວາຍ-ເອລູທຽນ", "ECT": "ເວ\u200bລາ\u200bເອ\u200bກົວ\u200bດໍ", "TMST": "ເວລາລະດູຮ້ອນຕວກເມນິສຖານ", "MST": "ເວລາມາດຕະຖານມາເກົາ", "HKST": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bຮອງ\u200bກົງ", "WAST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bຕົກ", "COST": "ເວລາລະດູຮ້ອນໂຄລໍາເບຍ", "BT": "ເວ\u200bລາ\u200bພູ\u200bຖານ", "AWST": "ເວ\u200bລາ\u200bມາ\u200bດ\u200bຕະ\u200bຖານອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bຕົກ", "HADT": "ເວລາຕອນທ່ຽງຮາວາຍ-ເອລູທຽນ", "UYT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bອູ\u200bຣູ\u200bກວຍ", "HNOG": "ເວລາມາດຕະຖານກຣີນແລນຕາເວັນຕົກ", "OEZ": "ເວ\u200bລາ\u200bມາ\u200bດ\u200bຕະ\u200bຖານ\u200bຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bອອກ", "HAT": "ເວລາກາງເວັນນິວຟາວແລນ", "AEDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bອອກ", "HNPM": "\u200bເວ\u200bລາມາດ\u200bຕະ\u200bຖານເຊນ\u200bປີ\u200bແອ ແລະ\u200bມິ\u200bກົວ\u200bລອນ", "∅∅∅": "ເວລາຕາມເຂດລະດູຮ້ອນຕາມເຂດບຣາຊີເລຍ", "GMT": "ເວ\u200bລາກຣີນ\u200bວິ\u200bຊ", "VET": "ເວ\u200bລາ\u200bເວ\u200bເນ\u200bຊູ\u200bເອ\u200bລາ", "WEZ": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bຕົກ", "HENOMX": "ເວລາກາງເວັນເມັກຊິກັນນອດເວສ", "HEPMX": "ເວລາກາງເວັນແປຊິຟິກເມັກຊິກັນ", "ACWDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bກາງ\u200bຕາ\u200bເວັນ\u200bຕົກ", "MEZ": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຢູ\u200bໂຣບກາງ"},
}
}
diff --git a/lrc/lrc.go b/lrc/lrc.go
index 6d89c6e1..234fb343 100644
--- a/lrc/lrc.go
+++ b/lrc/lrc.go
@@ -64,7 +64,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "CE"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HKST": "HKST", "GFT": "GFT", "HAT": "HAT", "HEOG": "HEOG", "AWDT": "AWDT", "WIB": "WIB", "WESZ": "WESZ", "AEST": "AEST", "TMST": "TMST", "ACST": "ACST", "EAT": "EAT", "SGT": "SGT", "WART": "WART", "HEPMX": "HEPMX", "HEEG": "HEEG", "CDT": "روٙشنایی نئهادار روٙز", "SAST": "SAST", "CLST": "CLST", "EST": "EST", "WEZ": "WEZ", "CHAST": "CHAST", "IST": "IST", "GYT": "GYT", "SRT": "SRT", "AWST": "AWST", "MEZ": "MEZ", "HNEG": "HNEG", "TMT": "TMT", "MST": "MST", "AKDT": "AKDT", "CST": "گاٛت مینجاٛیی ئستاٛنداٛرد", "HADT": "HADT", "HNT": "HNT", "NZST": "NZST", "ACDT": "ACDT", "CAT": "CAT", "COT": "COT", "UYT": "UYT", "ARST": "ARST", "AEDT": "AEDT", "NZDT": "NZDT", "BOT": "BOT", "WAST": "WAST", "OEZ": "OEZ", "ADT": "ADT", "WAT": "WAT", "ACWDT": "ACWDT", "LHDT": "LHDT", "HECU": "HECU", "UYST": "UYST", "ART": "ART", "MESZ": "MESZ", "HNPMX": "HNPMX", "HNOG": "HNOG", "JST": "JST", "JDT": "JDT", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "ECT": "ECT", "COST": "COST", "HNCU": "HNCU", "PST": "PST", "HKT": "HKT", "CHADT": "CHADT", "HEPM": "HEPM", "HENOMX": "HENOMX", "VET": "VET", "ACWST": "ACWST", "WITA": "WITA", "PDT": "PDT", "WARST": "WARST", "HNNOMX": "HNNOMX", "MDT": "MDT", "HAST": "HAST", "WIT": "WIT", "HNPM": "HNPM", "LHST": "LHST", "CLT": "CLT", "ChST": "ChST", "EDT": "EDT", "MYT": "MYT", "AKST": "AKST", "GMT": "GMT", "AST": "AST", "BT": "BT"},
+ timezones: map[string]string{"ART": "ART", "HNPM": "HNPM", "SRT": "SRT", "HECU": "HECU", "JDT": "JDT", "WART": "WART", "EST": "EST", "GYT": "GYT", "CHADT": "CHADT", "NZST": "NZST", "AST": "AST", "EDT": "EDT", "COT": "COT", "UYT": "UYT", "CST": "گاٛت مینجاٛیی ئستاٛنداٛرد", "AWST": "AWST", "AWDT": "AWDT", "ACWDT": "ACWDT", "NZDT": "NZDT", "ADT": "ADT", "HNEG": "HNEG", "HEEG": "HEEG", "AEST": "AEST", "BOT": "BOT", "ACWST": "ACWST", "MESZ": "MESZ", "AKDT": "AKDT", "UYST": "UYST", "MYT": "MYT", "HNT": "HNT", "CLST": "CLST", "HKST": "HKST", "HNCU": "HNCU", "PDT": "PDT", "MEZ": "MEZ", "MST": "MST", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "LHST": "LHST", "CDT": "روٙشنایی نئهادار روٙز", "CHAST": "CHAST", "HAST": "HAST", "VET": "VET", "BT": "BT", "HAT": "HAT", "ARST": "ARST", "ACDT": "ACDT", "TMT": "TMT", "HKT": "HKT", "HNOG": "HNOG", "OESZ": "OESZ", "WEZ": "WEZ", "WAT": "WAT", "WIB": "WIB", "PST": "PST", "WARST": "WARST", "MDT": "MDT", "GFT": "GFT", "AKST": "AKST", "AEDT": "AEDT", "HEPMX": "HEPMX", "EAT": "EAT", "∅∅∅": "∅∅∅", "GMT": "GMT", "SGT": "SGT", "HENOMX": "HENOMX", "ChST": "ChST", "SAST": "SAST", "HNPMX": "HNPMX", "IST": "IST", "CLT": "CLT", "WESZ": "WESZ", "JST": "JST", "OEZ": "OEZ", "TMST": "TMST", "WAST": "WAST", "COST": "COST", "WITA": "WITA", "LHDT": "LHDT", "WIT": "WIT", "ECT": "ECT", "HADT": "HADT", "ACST": "ACST", "CAT": "CAT", "HEOG": "HEOG"},
}
}
diff --git a/lrc_IQ/lrc_IQ.go b/lrc_IQ/lrc_IQ.go
index ba746921..a7b9db8c 100644
--- a/lrc_IQ/lrc_IQ.go
+++ b/lrc_IQ/lrc_IQ.go
@@ -64,7 +64,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "CE"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"TMT": "TMT", "HNCU": "HNCU", "HNT": "HNT", "PDT": "PDT", "NZST": "NZST", "HNEG": "HNEG", "VET": "VET", "HAT": "HAT", "HKT": "HKT", "ACDT": "ACDT", "COT": "COT", "GMT": "GMT", "AST": "AST", "ADT": "ADT", "AKST": "AKST", "ART": "ART", "WITA": "WITA", "AWST": "AWST", "MDT": "MDT", "HNPMX": "HNPMX", "UYST": "UYST", "AKDT": "AKDT", "HAST": "HAST", "ARST": "ARST", "AEST": "AEST", "CHADT": "CHADT", "ACST": "ACST", "COST": "COST", "EST": "EST", "BT": "BT", "SRT": "SRT", "MEZ": "MEZ", "IST": "IST", "CLT": "CLT", "GFT": "GFT", "WAST": "WAST", "WIB": "WIB", "WIT": "WIT", "HNPM": "HNPM", "HADT": "HADT", "ACWDT": "ACWDT", "LHDT": "LHDT", "JST": "JST", "∅∅∅": "∅∅∅", "BOT": "BOT", "ECT": "ECT", "WARST": "WARST", "SGT": "SGT", "HEPMX": "HEPMX", "NZDT": "NZDT", "TMST": "TMST", "ChST": "ChST", "OESZ": "OESZ", "PST": "PST", "ACWST": "ACWST", "CHAST": "CHAST", "OEZ": "OEZ", "CAT": "CAT", "HENOMX": "HENOMX", "AEDT": "AEDT", "SAST": "SAST", "EAT": "EAT", "HNNOMX": "HNNOMX", "CST": "گاٛت مینجاٛیی ئستاٛنداٛرد", "UYT": "UYT", "HEOG": "HEOG", "HEPM": "HEPM", "HECU": "HECU", "MYT": "MYT", "AWDT": "AWDT", "HKST": "HKST", "EDT": "EDT", "MST": "MST", "WESZ": "WESZ", "MESZ": "MESZ", "GYT": "GYT", "HNOG": "HNOG", "WEZ": "WEZ", "LHST": "LHST", "JDT": "JDT", "CLST": "CLST", "HEEG": "HEEG", "WAT": "WAT", "WART": "WART", "CDT": "روٙشنایی نئهادار روٙز"},
+ timezones: map[string]string{"JDT": "JDT", "MST": "MST", "CLST": "CLST", "ACST": "ACST", "PST": "PST", "IST": "IST", "MEZ": "MEZ", "MYT": "MYT", "BT": "BT", "HAT": "HAT", "AKDT": "AKDT", "UYST": "UYST", "VET": "VET", "HKST": "HKST", "HEEG": "HEEG", "SAST": "SAST", "HNCU": "HNCU", "AWST": "AWST", "ECT": "ECT", "NZDT": "NZDT", "JST": "JST", "HNOG": "HNOG", "UYT": "UYT", "LHST": "LHST", "HNPMX": "HNPMX", "NZST": "NZST", "OEZ": "OEZ", "WESZ": "WESZ", "WART": "WART", "PDT": "PDT", "ACWDT": "ACWDT", "MESZ": "MESZ", "CLT": "CLT", "TMST": "TMST", "HNNOMX": "HNNOMX", "SGT": "SGT", "TMT": "TMT", "WAT": "WAT", "WAST": "WAST", "AEST": "AEST", "HAST": "HAST", "AST": "AST", "ARST": "ARST", "HENOMX": "HENOMX", "CST": "گاٛت مینجاٛیی ئستاٛنداٛرد", "ADT": "ADT", "GMT": "GMT", "WARST": "WARST", "COT": "COT", "ChST": "ChST", "EAT": "EAT", "CDT": "روٙشنایی نئهادار روٙز", "HEOG": "HEOG", "AEDT": "AEDT", "HNPM": "HNPM", "HEPM": "HEPM", "WIT": "WIT", "CHADT": "CHADT", "BOT": "BOT", "ART": "ART", "ACDT": "ACDT", "COST": "COST", "HNT": "HNT", "∅∅∅": "∅∅∅", "AWDT": "AWDT", "OESZ": "OESZ", "MDT": "MDT", "HNEG": "HNEG", "AKST": "AKST", "GFT": "GFT", "SRT": "SRT", "GYT": "GYT", "ACWST": "ACWST", "EST": "EST", "HKT": "HKT", "WITA": "WITA", "LHDT": "LHDT", "CHAST": "CHAST", "HECU": "HECU", "WIB": "WIB", "HADT": "HADT", "CAT": "CAT", "WEZ": "WEZ", "EDT": "EDT", "HEPMX": "HEPMX"},
}
}
diff --git a/lrc_IR/lrc_IR.go b/lrc_IR/lrc_IR.go
index 23175ae0..223255fd 100644
--- a/lrc_IR/lrc_IR.go
+++ b/lrc_IR/lrc_IR.go
@@ -64,7 +64,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "CE"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"CLST": "CLST", "ChST": "ChST", "OEZ": "OEZ", "SGT": "SGT", "CDT": "روٙشنایی نئهادار روٙز", "MEZ": "MEZ", "WAT": "WAT", "WARST": "WARST", "GMT": "GMT", "HNPMX": "HNPMX", "AKDT": "AKDT", "CHAST": "CHAST", "EAT": "EAT", "WAST": "WAST", "WESZ": "WESZ", "HEOG": "HEOG", "HKST": "HKST", "MESZ": "MESZ", "NZDT": "NZDT", "WART": "WART", "WEZ": "WEZ", "CLT": "CLT", "∅∅∅": "∅∅∅", "JST": "JST", "TMST": "TMST", "COT": "COT", "COST": "COST", "HNNOMX": "HNNOMX", "MDT": "MDT", "SAST": "SAST", "EST": "EST", "AWDT": "AWDT", "HNPM": "HNPM", "BOT": "BOT", "HEEG": "HEEG", "GFT": "GFT", "ACST": "ACST", "ECT": "ECT", "GYT": "GYT", "ART": "ART", "AKST": "AKST", "ACWST": "ACWST", "AWST": "AWST", "MST": "MST", "UYT": "UYT", "BT": "BT", "ACWDT": "ACWDT", "HNOG": "HNOG", "IST": "IST", "UYST": "UYST", "MYT": "MYT", "HADT": "HADT", "HKT": "HKT", "CHADT": "CHADT", "HNEG": "HNEG", "VET": "VET", "WITA": "WITA", "HENOMX": "HENOMX", "AST": "AST", "PST": "PST", "LHDT": "LHDT", "JDT": "JDT", "HECU": "HECU", "HAST": "HAST", "PDT": "PDT", "ARST": "ARST", "AEDT": "AEDT", "ACDT": "ACDT", "CAT": "CAT", "CST": "گاٛت مینجاٛیی ئستاٛنداٛرد", "WIT": "WIT", "HAT": "HAT", "AEST": "AEST", "NZST": "NZST", "TMT": "TMT", "OESZ": "OESZ", "EDT": "EDT", "HEPMX": "HEPMX", "WIB": "WIB", "SRT": "SRT", "HNT": "HNT", "LHST": "LHST", "HNCU": "HNCU", "ADT": "ADT", "HEPM": "HEPM"},
+ timezones: map[string]string{"HNCU": "HNCU", "OEZ": "OEZ", "CLT": "CLT", "BOT": "BOT", "CHAST": "CHAST", "MEZ": "MEZ", "MYT": "MYT", "CLST": "CLST", "WIB": "WIB", "EAT": "EAT", "AWDT": "AWDT", "CST": "گاٛت مینجاٛیی ئستاٛنداٛرد", "SGT": "SGT", "HEEG": "HEEG", "LHDT": "LHDT", "SRT": "SRT", "SAST": "SAST", "AKDT": "AKDT", "ECT": "ECT", "TMT": "TMT", "WAT": "WAT", "WITA": "WITA", "∅∅∅": "∅∅∅", "IST": "IST", "NZDT": "NZDT", "WEZ": "WEZ", "AST": "AST", "HENOMX": "HENOMX", "AEDT": "AEDT", "HNPM": "HNPM", "HEPM": "HEPM", "WESZ": "WESZ", "TMST": "TMST", "HNNOMX": "HNNOMX", "HNEG": "HNEG", "BT": "BT", "AEST": "AEST", "HADT": "HADT", "CAT": "CAT", "ACWDT": "ACWDT", "JST": "JST", "HKT": "HKT", "HEOG": "HEOG", "EDT": "EDT", "COT": "COT", "COST": "COST", "ChST": "ChST", "GYT": "GYT", "HAST": "HAST", "MESZ": "MESZ", "WARST": "WARST", "HNOG": "HNOG", "ACST": "ACST", "HAT": "HAT", "MST": "MST", "HNPMX": "HNPMX", "JDT": "JDT", "NZST": "NZST", "UYT": "UYT", "LHST": "LHST", "WIT": "WIT", "OESZ": "OESZ", "ARST": "ARST", "EST": "EST", "HECU": "HECU", "CDT": "روٙشنایی نئهادار روٙز", "ACWST": "ACWST", "WAST": "WAST", "HNT": "HNT", "AKST": "AKST", "VET": "VET", "HKST": "HKST", "PST": "PST", "UYST": "UYST", "HEPMX": "HEPMX", "AWST": "AWST", "PDT": "PDT", "GMT": "GMT", "WART": "WART", "ADT": "ADT", "ART": "ART", "MDT": "MDT", "GFT": "GFT", "CHADT": "CHADT", "ACDT": "ACDT"},
}
}
diff --git a/lt/lt.go b/lt/lt.go
index 10864ef5..f7cc1c5a 100644
--- a/lt/lt.go
+++ b/lt/lt.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"pr. Kr.", "po Kr."},
erasNarrow: []string{"pr. Kr.", "po Kr."},
erasWide: []string{"prieš Kristų", "po Kristaus"},
- timezones: map[string]string{"MDT": "Makau vasaros laikas", "NZDT": "Naujosios Zelandijos vasaros laikas", "JST": "Japonijos žiemos laikas", "CAT": "Centrinės Afrikos laikas", "MYT": "Malaizijos laikas", "UYST": "Urugvajaus vasaros laikas", "HAST": "Havajų–Aleutų žiemos laikas", "WEZ": "Vakarų Europos žiemos laikas", "ACDT": "Centrinės Australijos vasaros laikas", "BT": "Butano laikas", "ACST": "Centrinės Australijos žiemos laikas", "GMT": "Grinvičo laikas", "EST": "Šiaurės Amerikos rytų žiemos laikas", "HEPMX": "Meksikos Ramiojo vandenyno vasaros laikas", "ADT": "Atlanto vasaros laikas", "WIB": "Vakarų Indonezijos laikas", "ACWST": "Centrinės vakarų Australijos žiemos laikas", "SAST": "Pietų Afrikos laikas", "OESZ": "Rytų Europos vasaros laikas", "HNCU": "Kubos žiemos laikas", "SRT": "Surinamo laikas", "CHADT": "Čatamo vasaros laikas", "ECT": "Ekvadoro laikas", "COT": "Kolumbijos žiemos laikas", "HENOMX": "Šiaurės Vakarų Meksikos vasaros laikas", "HNT": "Niufaundlendo žiemos laikas", "HKST": "Honkongo vasaros laikas", "CLT": "Čilės žiemos laikas", "TMST": "Turkmėnistano vasaros laikas", "ChST": "Čamoro laikas", "WART": "Vakarų Argentinos žiemos laikas", "WARST": "Vakarų Argentinos vasaros laikas", "EAT": "Rytų Afrikos laikas", "EDT": "Šiaurės Amerikos rytų vasaros laikas", "AST": "Atlanto žiemos laikas", "GYT": "Gajanos laikas", "WIT": "Rytų Indonezijos laikas", "ACWDT": "Centrinės vakarų Australijos vasaros laikas", "AEDT": "Rytų Australijos vasaros laikas", "HNPM": "Sen Pjero ir Mikelono žiemos laikas", "AKDT": "Aliaskos vasaros laikas", "HADT": "Havajų–Aleutų vasaros laikas", "ART": "Argentinos žiemos laikas", "PST": "Šiaurės Amerikos Ramiojo vandenyno žiemos laikas", "WITA": "Centrinės Indonezijos laikas", "MESZ": "Vidurio Europos vasaros laikas", "LHDT": "Lordo Hau vasaros laikas", "HKT": "Honkongo žiemos laikas", "WAST": "Vakarų Afrikos vasaros laikas", "HECU": "Kubos vasaros laikas", "VET": "Venesuelos laikas", "NZST": "Naujosios Zelandijos žiemos laikas", "∅∅∅": "Amazonės vasaros laikas", "BOT": "Bolivijos laikas", "HNEG": "Grenlandijos rytų žiemos laikas", "WAT": "Vakarų Afrikos žiemos laikas", "HNNOMX": "Šiaurės Vakarų Meksikos žiemos laikas", "GFT": "Prancūzijos Gvianos laikas", "UYT": "Urugvajaus žiemos laikas", "HEOG": "Grenlandijos vakarų vasaros laikas", "WESZ": "Vakarų Europos vasaros laikas", "AWDT": "Vakarų Australijos vasaros laikas", "HEPM": "Sen Pjero ir Mikelono vasaros laikas", "IST": "Indijos laikas", "TMT": "Turkmėnistano žiemos laikas", "MEZ": "Vidurio Europos žiemos laikas", "MST": "Makau žiemos laikas", "AKST": "Aliaskos žiemos laikas", "CST": "Šiaurės Amerikos centro žiemos laikas", "CDT": "Šiaurės Amerikos centro vasaros laikas", "HNOG": "Grenlandijos vakarų žiemos laikas", "PDT": "Šiaurės Amerikos Ramiojo vandenyno vasaros laikas", "AWST": "Vakarų Australijos žiemos laikas", "CLST": "Čilės vasaros laikas", "COST": "Kolumbijos vasaros laikas", "HNPMX": "Meksikos Ramiojo vandenyno žiemos laikas", "ARST": "Argentinos vasaros laikas", "HEEG": "Grenlandijos rytų vasaros laikas", "CHAST": "Čatamo žiemos laikas", "SGT": "Singapūro laikas", "HAT": "Niufaundlendo vasaros laikas", "AEST": "Rytų Australijos žiemos laikas", "JDT": "Japonijos vasaros laikas", "OEZ": "Rytų Europos žiemos laikas", "LHST": "Lordo Hau žiemos laikas"},
+ timezones: map[string]string{"JDT": "Japonijos vasaros laikas", "TMT": "Turkmėnistano žiemos laikas", "WAT": "Vakarų Afrikos žiemos laikas", "HKST": "Honkongo vasaros laikas", "ACDT": "Centrinės Australijos vasaros laikas", "HNT": "Niufaundlendo žiemos laikas", "ACWDT": "Centrinės vakarų Australijos vasaros laikas", "VET": "Venesuelos laikas", "AEDT": "Rytų Australijos vasaros laikas", "HEPM": "Sen Pjero ir Mikelono vasaros laikas", "ACST": "Centrinės Australijos žiemos laikas", "BT": "Butano laikas", "HNPMX": "Meksikos Ramiojo vandenyno žiemos laikas", "GYT": "Gajanos laikas", "CHAST": "Čatamo žiemos laikas", "EDT": "Šiaurės Amerikos rytų vasaros laikas", "OESZ": "Rytų Europos vasaros laikas", "WEZ": "Vakarų Europos žiemos laikas", "MST": "Makau žiemos laikas", "HNNOMX": "Šiaurės Vakarų Meksikos žiemos laikas", "CDT": "Šiaurės Amerikos centro vasaros laikas", "NZDT": "Naujosios Zelandijos vasaros laikas", "WART": "Vakarų Argentinos žiemos laikas", "HENOMX": "Šiaurės Vakarų Meksikos vasaros laikas", "HEEG": "Grenlandijos rytų vasaros laikas", "AKDT": "Aliaskos vasaros laikas", "AWDT": "Vakarų Australijos vasaros laikas", "CLT": "Čilės žiemos laikas", "MEZ": "Vidurio Europos žiemos laikas", "OEZ": "Rytų Europos žiemos laikas", "ACWST": "Centrinės vakarų Australijos žiemos laikas", "COST": "Kolumbijos vasaros laikas", "ECT": "Ekvadoro laikas", "IST": "Indijos laikas", "CAT": "Centrinės Afrikos laikas", "JST": "Japonijos žiemos laikas", "AST": "Atlanto žiemos laikas", "HNEG": "Grenlandijos rytų žiemos laikas", "EAT": "Rytų Afrikos laikas", "SGT": "Singapūro laikas", "PDT": "Šiaurės Amerikos Ramiojo vandenyno vasaros laikas", "ChST": "Čamoro laikas", "SRT": "Surinamo laikas", "WIT": "Rytų Indonezijos laikas", "GFT": "Prancūzijos Gvianos laikas", "WITA": "Centrinės Indonezijos laikas", "HNOG": "Grenlandijos vakarų žiemos laikas", "ADT": "Atlanto vasaros laikas", "MDT": "Makau vasaros laikas", "UYST": "Urugvajaus vasaros laikas", "CST": "Šiaurės Amerikos centro žiemos laikas", "HADT": "Havajų–Aleutų vasaros laikas", "WARST": "Vakarų Argentinos vasaros laikas", "HAT": "Niufaundlendo vasaros laikas", "CLST": "Čilės vasaros laikas", "GMT": "Grinvičo laikas", "WAST": "Vakarų Afrikos vasaros laikas", "SAST": "Pietų Afrikos laikas", "HNCU": "Kubos žiemos laikas", "HECU": "Kubos vasaros laikas", "MESZ": "Vidurio Europos vasaros laikas", "WESZ": "Vakarų Europos vasaros laikas", "MYT": "Malaizijos laikas", "ARST": "Argentinos vasaros laikas", "COT": "Kolumbijos žiemos laikas", "AEST": "Rytų Australijos žiemos laikas", "CHADT": "Čatamo vasaros laikas", "NZST": "Naujosios Zelandijos žiemos laikas", "UYT": "Urugvajaus žiemos laikas", "WIB": "Vakarų Indonezijos laikas", "LHST": "Lordo Hau žiemos laikas", "ART": "Argentinos žiemos laikas", "AKST": "Aliaskos žiemos laikas", "EST": "Šiaurės Amerikos rytų žiemos laikas", "HEPMX": "Meksikos Ramiojo vandenyno vasaros laikas", "PST": "Šiaurės Amerikos Ramiojo vandenyno žiemos laikas", "∅∅∅": "Amazonės vasaros laikas", "HAST": "Havajų–Aleutų žiemos laikas", "HEOG": "Grenlandijos vakarų vasaros laikas", "TMST": "Turkmėnistano vasaros laikas", "HKT": "Honkongo žiemos laikas", "HNPM": "Sen Pjero ir Mikelono žiemos laikas", "LHDT": "Lordo Hau vasaros laikas", "AWST": "Vakarų Australijos žiemos laikas", "BOT": "Bolivijos laikas"},
}
}
diff --git a/lt_LT/lt_LT.go b/lt_LT/lt_LT.go
index 725efb55..96855a48 100644
--- a/lt_LT/lt_LT.go
+++ b/lt_LT/lt_LT.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"pr. Kr.", "po Kr."},
erasNarrow: []string{"pr. Kr.", "po Kr."},
erasWide: []string{"prieš Kristų", "po Kristaus"},
- timezones: map[string]string{"LHDT": "Lordo Hau vasaros laikas", "JST": "Japonijos žiemos laikas", "JDT": "Japonijos vasaros laikas", "TMT": "Turkmėnistano žiemos laikas", "∅∅∅": "Peru vasaros laikas", "EDT": "Šiaurės Amerikos rytų vasaros laikas", "CHADT": "Čatamo vasaros laikas", "CHAST": "Čatamo žiemos laikas", "WIB": "Vakarų Indonezijos laikas", "ACWDT": "Centrinės vakarų Australijos vasaros laikas", "ART": "Argentinos žiemos laikas", "AEST": "Rytų Australijos žiemos laikas", "AEDT": "Rytų Australijos vasaros laikas", "MESZ": "Vidurio Europos vasaros laikas", "LHST": "Lordo Hau žiemos laikas", "ECT": "Ekvadoro laikas", "PDT": "Šiaurės Amerikos Ramiojo vandenyno vasaros laikas", "WEZ": "Vakarų Europos žiemos laikas", "HNCU": "Kubos žiemos laikas", "WESZ": "Vakarų Europos vasaros laikas", "HEPMX": "Meksikos Ramiojo vandenyno vasaros laikas", "HNPM": "Sen Pjero ir Mikelono žiemos laikas", "GFT": "Prancūzijos Gvianos laikas", "EST": "Šiaurės Amerikos rytų žiemos laikas", "AST": "Atlanto žiemos laikas", "HEOG": "Grenlandijos vakarų vasaros laikas", "HKT": "Honkongo žiemos laikas", "AWST": "Vakarų Australijos žiemos laikas", "EAT": "Rytų Afrikos laikas", "WARST": "Vakarų Argentinos vasaros laikas", "COT": "Kolumbijos žiemos laikas", "MEZ": "Vidurio Europos žiemos laikas", "TMST": "Turkmėnistano vasaros laikas", "ACDT": "Centrinės Australijos vasaros laikas", "MDT": "Makau vasaros laikas", "HADT": "Havajų–Aleutų vasaros laikas", "BT": "Butano laikas", "AKDT": "Aliaskos vasaros laikas", "HAT": "Niufaundlendo vasaros laikas", "CLT": "Čilės žiemos laikas", "OEZ": "Rytų Europos žiemos laikas", "WART": "Vakarų Argentinos žiemos laikas", "SGT": "Singapūro laikas", "WAT": "Vakarų Afrikos žiemos laikas", "PST": "Šiaurės Amerikos Ramiojo vandenyno žiemos laikas", "NZDT": "Naujosios Zelandijos vasaros laikas", "HAST": "Havajų–Aleutų žiemos laikas", "AWDT": "Vakarų Australijos vasaros laikas", "HEEG": "Grenlandijos rytų vasaros laikas", "HECU": "Kubos vasaros laikas", "ADT": "Atlanto vasaros laikas", "UYST": "Urugvajaus vasaros laikas", "SRT": "Surinamo laikas", "ChST": "Čamoro laikas", "ACST": "Centrinės Australijos žiemos laikas", "OESZ": "Rytų Europos vasaros laikas", "COST": "Kolumbijos vasaros laikas", "WIT": "Rytų Indonezijos laikas", "WITA": "Centrinės Indonezijos laikas", "SAST": "Pietų Afrikos laikas", "HNEG": "Grenlandijos rytų žiemos laikas", "CAT": "Centrinės Afrikos laikas", "AKST": "Aliaskos žiemos laikas", "MYT": "Malaizijos laikas", "HEPM": "Sen Pjero ir Mikelono vasaros laikas", "CST": "Šiaurės Amerikos centro žiemos laikas", "CDT": "Šiaurės Amerikos centro vasaros laikas", "ACWST": "Centrinės vakarų Australijos žiemos laikas", "HNOG": "Grenlandijos vakarų žiemos laikas", "HKST": "Honkongo vasaros laikas", "CLST": "Čilės vasaros laikas", "BOT": "Bolivijos laikas", "GMT": "Grinvičo laikas", "HNPMX": "Meksikos Ramiojo vandenyno žiemos laikas", "VET": "Venesuelos laikas", "MST": "Makau žiemos laikas", "GYT": "Gajanos laikas", "UYT": "Urugvajaus žiemos laikas", "HNT": "Niufaundlendo žiemos laikas", "ARST": "Argentinos vasaros laikas", "WAST": "Vakarų Afrikos vasaros laikas", "HNNOMX": "Šiaurės Vakarų Meksikos žiemos laikas", "HENOMX": "Šiaurės Vakarų Meksikos vasaros laikas", "NZST": "Naujosios Zelandijos žiemos laikas", "IST": "Indijos laikas"},
+ timezones: map[string]string{"ARST": "Argentinos vasaros laikas", "WAT": "Vakarų Afrikos žiemos laikas", "ACWST": "Centrinės vakarų Australijos žiemos laikas", "HNOG": "Grenlandijos vakarų žiemos laikas", "UYT": "Urugvajaus žiemos laikas", "UYST": "Urugvajaus vasaros laikas", "HNPM": "Sen Pjero ir Mikelono žiemos laikas", "EAT": "Rytų Afrikos laikas", "OESZ": "Rytų Europos vasaros laikas", "ADT": "Atlanto vasaros laikas", "EST": "Šiaurės Amerikos rytų žiemos laikas", "COST": "Kolumbijos vasaros laikas", "CST": "Šiaurės Amerikos centro žiemos laikas", "JDT": "Japonijos vasaros laikas", "MESZ": "Vidurio Europos vasaros laikas", "HADT": "Havajų–Aleutų vasaros laikas", "NZST": "Naujosios Zelandijos žiemos laikas", "HKT": "Honkongo žiemos laikas", "HNNOMX": "Šiaurės Vakarų Meksikos žiemos laikas", "CDT": "Šiaurės Amerikos centro vasaros laikas", "AWDT": "Vakarų Australijos vasaros laikas", "PDT": "Šiaurės Amerikos Ramiojo vandenyno vasaros laikas", "WAST": "Vakarų Afrikos vasaros laikas", "PST": "Šiaurės Amerikos Ramiojo vandenyno žiemos laikas", "ECT": "Ekvadoro laikas", "VET": "Venesuelos laikas", "GMT": "Grinvičo laikas", "ACST": "Centrinės Australijos žiemos laikas", "∅∅∅": "Ako vasaros laikas", "AEDT": "Rytų Australijos vasaros laikas", "ChST": "Čamoro laikas", "WIB": "Vakarų Indonezijos laikas", "TMT": "Turkmėnistano žiemos laikas", "EDT": "Šiaurės Amerikos rytų vasaros laikas", "HECU": "Kubos vasaros laikas", "BOT": "Bolivijos laikas", "JST": "Japonijos žiemos laikas", "OEZ": "Rytų Europos žiemos laikas", "AWST": "Vakarų Australijos žiemos laikas", "ACWDT": "Centrinės vakarų Australijos vasaros laikas", "HAT": "Niufaundlendo vasaros laikas", "HEEG": "Grenlandijos rytų vasaros laikas", "AKST": "Aliaskos žiemos laikas", "HEPMX": "Meksikos Ramiojo vandenyno vasaros laikas", "GYT": "Gajanos laikas", "ACDT": "Centrinės Australijos vasaros laikas", "HEPM": "Sen Pjero ir Mikelono vasaros laikas", "LHDT": "Lordo Hau vasaros laikas", "GFT": "Prancūzijos Gvianos laikas", "HNPMX": "Meksikos Ramiojo vandenyno žiemos laikas", "WIT": "Rytų Indonezijos laikas", "MEZ": "Vidurio Europos žiemos laikas", "CLT": "Čilės žiemos laikas", "HNEG": "Grenlandijos rytų žiemos laikas", "AKDT": "Aliaskos vasaros laikas", "SAST": "Pietų Afrikos laikas", "CHADT": "Čatamo vasaros laikas", "WESZ": "Vakarų Europos vasaros laikas", "BT": "Butano laikas", "IST": "Indijos laikas", "WART": "Vakarų Argentinos žiemos laikas", "TMST": "Turkmėnistano vasaros laikas", "HKST": "Honkongo vasaros laikas", "COT": "Kolumbijos žiemos laikas", "LHST": "Lordo Hau žiemos laikas", "CAT": "Centrinės Afrikos laikas", "CLST": "Čilės vasaros laikas", "HNCU": "Kubos žiemos laikas", "WEZ": "Vakarų Europos žiemos laikas", "MYT": "Malaizijos laikas", "HEOG": "Grenlandijos vakarų vasaros laikas", "AST": "Atlanto žiemos laikas", "SRT": "Surinamo laikas", "SGT": "Singapūro laikas", "CHAST": "Čatamo žiemos laikas", "ART": "Argentinos žiemos laikas", "MST": "Makau žiemos laikas", "MDT": "Makau vasaros laikas", "HNT": "Niufaundlendo žiemos laikas", "AEST": "Rytų Australijos žiemos laikas", "HAST": "Havajų–Aleutų žiemos laikas", "WARST": "Vakarų Argentinos vasaros laikas", "HENOMX": "Šiaurės Vakarų Meksikos vasaros laikas", "WITA": "Centrinės Indonezijos laikas", "NZDT": "Naujosios Zelandijos vasaros laikas"},
}
}
diff --git a/lu/lu.go b/lu/lu.go
index cb9c4a20..8a0818ef 100644
--- a/lu/lu.go
+++ b/lu/lu.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"kmp. Y.K.", "kny. Y. K."},
erasNarrow: []string{"", ""},
erasWide: []string{"Kumpala kwa Yezu Kli", "Kunyima kwa Yezu Kli"},
- timezones: map[string]string{"∅∅∅": "∅∅∅", "EST": "EST", "ACWDT": "ACWDT", "CLST": "CLST", "SGT": "SGT", "CDT": "CDT", "HNEG": "HNEG", "COST": "COST", "WESZ": "WESZ", "HNT": "HNT", "AWDT": "AWDT", "TMT": "TMT", "WAST": "WAST", "HNNOMX": "HNNOMX", "HAST": "HAST", "ARST": "ARST", "MEZ": "MEZ", "IST": "IST", "EDT": "EDT", "MDT": "MDT", "HEOG": "HEOG", "LHDT": "LHDT", "JDT": "JDT", "HEEG": "HEEG", "ACST": "ACST", "WAT": "WAT", "HADT": "HADT", "PST": "PST", "AEDT": "AEDT", "HKT": "HKT", "HNPM": "HNPM", "VET": "VET", "ACWST": "ACWST", "SAST": "SAST", "JST": "JST", "TMST": "TMST", "CAT": "CAT", "COT": "COT", "UYT": "UYT", "WIB": "WIB", "OEZ": "OEZ", "WART": "WART", "ADT": "ADT", "AKDT": "AKDT", "SRT": "SRT", "HNOG": "HNOG", "MESZ": "MESZ", "CHADT": "CHADT", "GFT": "GFT", "HNCU": "HNCU", "AST": "AST", "AEST": "AEST", "EAT": "EAT", "WARST": "WARST", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "CST": "CST", "BT": "BT", "HEPM": "HEPM", "ChST": "ChST", "ACDT": "ACDT", "PDT": "PDT", "HAT": "HAT", "AWST": "AWST", "HKST": "HKST", "CHAST": "CHAST", "BOT": "BOT", "OESZ": "OESZ", "HECU": "HECU", "HEPMX": "HEPMX", "MYT": "MYT", "AKST": "AKST", "ART": "ART", "CLT": "CLT", "MST": "MST", "NZDT": "NZDT", "ECT": "ECT", "GYT": "GYT", "UYST": "UYST", "WITA": "WITA", "NZST": "NZST", "GMT": "GMT", "WIT": "WIT", "WEZ": "WEZ", "LHST": "LHST"},
+ timezones: map[string]string{"LHDT": "LHDT", "AWDT": "AWDT", "JDT": "JDT", "CLT": "CLT", "WAST": "WAST", "EST": "EST", "ACST": "ACST", "WIT": "WIT", "∅∅∅": "∅∅∅", "SGT": "SGT", "NZST": "NZST", "MDT": "MDT", "COST": "COST", "NZDT": "NZDT", "ACWDT": "ACWDT", "HNT": "HNT", "AKST": "AKST", "HEPMX": "HEPMX", "UYST": "UYST", "HNCU": "HNCU", "CHADT": "CHADT", "ECT": "ECT", "HEOG": "HEOG", "ART": "ART", "ACDT": "ACDT", "EAT": "EAT", "GMT": "GMT", "TMST": "TMST", "GFT": "GFT", "ChST": "ChST", "UYT": "UYT", "CDT": "CDT", "HADT": "HADT", "MEZ": "MEZ", "COT": "COT", "HEPM": "HEPM", "HNEG": "HNEG", "CST": "CST", "HAST": "HAST", "VET": "VET", "WARST": "WARST", "WAT": "WAT", "HKT": "HKT", "HNOG": "HNOG", "OEZ": "OEZ", "WEZ": "WEZ", "AEDT": "AEDT", "WITA": "WITA", "ARST": "ARST", "WIB": "WIB", "IST": "IST", "CLST": "CLST", "AST": "AST", "OESZ": "OESZ", "MST": "MST", "MYT": "MYT", "ADT": "ADT", "TMT": "TMT", "AWST": "AWST", "PDT": "PDT", "AKDT": "AKDT", "HNPMX": "HNPMX", "LHST": "LHST", "PST": "PST", "HENOMX": "HENOMX", "HAT": "HAT", "HEEG": "HEEG", "AEST": "AEST", "HNPM": "HNPM", "BT": "BT", "WESZ": "WESZ", "HNNOMX": "HNNOMX", "SRT": "SRT", "GYT": "GYT", "HECU": "HECU", "EDT": "EDT", "HKST": "HKST", "SAST": "SAST", "WART": "WART", "CHAST": "CHAST", "BOT": "BOT", "CAT": "CAT", "ACWST": "ACWST", "MESZ": "MESZ", "JST": "JST"},
}
}
diff --git a/lu_CD/lu_CD.go b/lu_CD/lu_CD.go
index 2bdf1b83..f1e83be3 100644
--- a/lu_CD/lu_CD.go
+++ b/lu_CD/lu_CD.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"kmp. Y.K.", "kny. Y. K."},
erasNarrow: []string{"", ""},
erasWide: []string{"Kumpala kwa Yezu Kli", "Kunyima kwa Yezu Kli"},
- timezones: map[string]string{"CAT": "CAT", "WAT": "WAT", "WIB": "WIB", "HAST": "HAST", "HKT": "HKT", "JDT": "JDT", "TMST": "TMST", "OESZ": "OESZ", "VET": "VET", "HNOG": "HNOG", "MEZ": "MEZ", "MESZ": "MESZ", "HEEG": "HEEG", "ACST": "ACST", "COST": "COST", "ADT": "ADT", "HKST": "HKST", "GYT": "GYT", "ART": "ART", "ARST": "ARST", "CLST": "CLST", "WESZ": "WESZ", "HNT": "HNT", "TMT": "TMT", "ECT": "ECT", "∅∅∅": "∅∅∅", "COT": "COT", "HEPMX": "HEPMX", "PDT": "PDT", "AWDT": "AWDT", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "MYT": "MYT", "HAT": "HAT", "WART": "WART", "MDT": "MDT", "AWST": "AWST", "EAT": "EAT", "WAST": "WAST", "OEZ": "OEZ", "HENOMX": "HENOMX", "AKST": "AKST", "AKDT": "AKDT", "PST": "PST", "NZDT": "NZDT", "EDT": "EDT", "CST": "CST", "HEOG": "HEOG", "WEZ": "WEZ", "HECU": "HECU", "UYT": "UYT", "AEST": "AEST", "HEPM": "HEPM", "LHST": "LHST", "CHAST": "CHAST", "BOT": "BOT", "AST": "AST", "ACWDT": "ACWDT", "WITA": "WITA", "IST": "IST", "ACDT": "ACDT", "WARST": "WARST", "HNCU": "HNCU", "EST": "EST", "MST": "MST", "CDT": "CDT", "JST": "JST", "GMT": "GMT", "HADT": "HADT", "BT": "BT", "SRT": "SRT", "CHADT": "CHADT", "AEDT": "AEDT", "NZST": "NZST", "ChST": "ChST", "GFT": "GFT", "SGT": "SGT", "UYST": "UYST", "WIT": "WIT", "ACWST": "ACWST", "CLT": "CLT", "HNEG": "HNEG", "HNPM": "HNPM", "LHDT": "LHDT", "SAST": "SAST"},
+ timezones: map[string]string{"ADT": "ADT", "HKT": "HKT", "HEPM": "HEPM", "AST": "AST", "ACST": "ACST", "GFT": "GFT", "WITA": "WITA", "HNT": "HNT", "HNCU": "HNCU", "AWDT": "AWDT", "PDT": "PDT", "IST": "IST", "NZST": "NZST", "MST": "MST", "EST": "EST", "CAT": "CAT", "MEZ": "MEZ", "SRT": "SRT", "CDT": "CDT", "WARST": "WARST", "ARST": "ARST", "SGT": "SGT", "HNPM": "HNPM", "CHAST": "CHAST", "PST": "PST", "ACWST": "ACWST", "JDT": "JDT", "ART": "ART", "AEDT": "AEDT", "LHST": "LHST", "WIB": "WIB", "WIT": "WIT", "AWST": "AWST", "WESZ": "WESZ", "ACDT": "ACDT", "AEST": "AEST", "SAST": "SAST", "VET": "VET", "MYT": "MYT", "HNNOMX": "HNNOMX", "HADT": "HADT", "BT": "BT", "AKDT": "AKDT", "UYST": "UYST", "CST": "CST", "ACWDT": "ACWDT", "NZDT": "NZDT", "WART": "WART", "OESZ": "OESZ", "ECT": "ECT", "COST": "COST", "HENOMX": "HENOMX", "ChST": "ChST", "UYT": "UYT", "CLT": "CLT", "WEZ": "WEZ", "TMT": "TMT", "COT": "COT", "HEPMX": "HEPMX", "EAT": "EAT", "BOT": "BOT", "CLST": "CLST", "WAT": "WAT", "∅∅∅": "∅∅∅", "JST": "JST", "HKST": "HKST", "CHADT": "CHADT", "HAT": "HAT", "HEEG": "HEEG", "LHDT": "LHDT", "GYT": "GYT", "MESZ": "MESZ", "HEOG": "HEOG", "TMST": "TMST", "EDT": "EDT", "AKST": "AKST", "HNPMX": "HNPMX", "HECU": "HECU", "HAST": "HAST", "HNOG": "HNOG", "GMT": "GMT", "MDT": "MDT", "HNEG": "HNEG", "OEZ": "OEZ", "WAST": "WAST"},
}
}
diff --git a/luo/luo.go b/luo/luo.go
index 78ed7ca1..814e9284 100644
--- a/luo/luo.go
+++ b/luo/luo.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kapok Kristo obiro", "Ka Kristo osebiro"},
- timezones: map[string]string{"CST": "CST", "PDT": "PDT", "ACDT": "ACDT", "EAT": "EAT", "HENOMX": "HENOMX", "AKST": "AKST", "PST": "PST", "HEPM": "HEPM", "TMT": "TMT", "CAT": "CAT", "HAT": "HAT", "AEDT": "AEDT", "ACWST": "ACWST", "WAST": "WAST", "CDT": "CDT", "WIT": "WIT", "WESZ": "WESZ", "HKT": "HKT", "AWDT": "AWDT", "GFT": "GFT", "WAT": "WAT", "CHAST": "CHAST", "CHADT": "CHADT", "EDT": "EDT", "SRT": "SRT", "ACWDT": "ACWDT", "CLT": "CLT", "HNNOMX": "HNNOMX", "GMT": "GMT", "∅∅∅": "∅∅∅", "SGT": "SGT", "ACST": "ACST", "ECT": "ECT", "ART": "ART", "CLST": "CLST", "HEEG": "HEEG", "MST": "MST", "HNOG": "HNOG", "AEST": "AEST", "LHST": "LHST", "TMST": "TMST", "UYT": "UYT", "LHDT": "LHDT", "HECU": "HECU", "WITA": "WITA", "AST": "AST", "ADT": "ADT", "HNPM": "HNPM", "IST": "IST", "JST": "JST", "OEZ": "OEZ", "COT": "COT", "HADT": "HADT", "VET": "VET", "BT": "BT", "HEOG": "HEOG", "WEZ": "WEZ", "NZDT": "NZDT", "EST": "EST", "MYT": "MYT", "MEZ": "MEZ", "JDT": "JDT", "HNT": "HNT", "AWST": "AWST", "HNEG": "HNEG", "OESZ": "OESZ", "AKDT": "AKDT", "WIB": "WIB", "HAST": "HAST", "ARST": "ARST", "NZST": "NZST", "HNCU": "HNCU", "HEPMX": "HEPMX", "WART": "WART", "WARST": "WARST", "COST": "COST", "HNPMX": "HNPMX", "MDT": "MDT", "GYT": "GYT", "ChST": "ChST", "BOT": "BOT", "MESZ": "MESZ", "SAST": "SAST", "UYST": "UYST", "HKST": "HKST"},
+ timezones: map[string]string{"MDT": "MDT", "HENOMX": "HENOMX", "CDT": "CDT", "CHADT": "CHADT", "OESZ": "OESZ", "WEZ": "WEZ", "CAT": "CAT", "WESZ": "WESZ", "EAT": "EAT", "MST": "MST", "COT": "COT", "BT": "BT", "GYT": "GYT", "ACWDT": "ACWDT", "HNNOMX": "HNNOMX", "AEST": "AEST", "LHST": "LHST", "CLST": "CLST", "WAT": "WAT", "EST": "EST", "ACDT": "ACDT", "CHAST": "CHAST", "BOT": "BOT", "HADT": "HADT", "NZDT": "NZDT", "SRT": "SRT", "MESZ": "MESZ", "HNT": "HNT", "HEPM": "HEPM", "HEPMX": "HEPMX", "MEZ": "MEZ", "MYT": "MYT", "WART": "WART", "WITA": "WITA", "ECT": "ECT", "HKST": "HKST", "VET": "VET", "JDT": "JDT", "HKT": "HKT", "HEEG": "HEEG", "SGT": "SGT", "HAST": "HAST", "IST": "IST", "ACWST": "ACWST", "GFT": "GFT", "EDT": "EDT", "ACST": "ACST", "HAT": "HAT", "AKST": "AKST", "WIT": "WIT", "PDT": "PDT", "HEOG": "HEOG", "WARST": "WARST", "∅∅∅": "∅∅∅", "GMT": "GMT", "ARST": "ARST", "HNPMX": "HNPMX", "CLT": "CLT", "HNOG": "HNOG", "AEDT": "AEDT", "HNPM": "HNPM", "HNCU": "HNCU", "JST": "JST", "ADT": "ADT", "WAST": "WAST", "AKDT": "AKDT", "COST": "COST", "ChST": "ChST", "LHDT": "LHDT", "HECU": "HECU", "AWST": "AWST", "AWDT": "AWDT", "OEZ": "OEZ", "TMST": "TMST", "TMT": "TMT", "ART": "ART", "HNEG": "HNEG", "UYT": "UYT", "CST": "CST", "PST": "PST", "NZST": "NZST", "AST": "AST", "UYST": "UYST", "SAST": "SAST", "WIB": "WIB"},
}
}
diff --git a/luo_KE/luo_KE.go b/luo_KE/luo_KE.go
index bee34765..f0ec82a2 100644
--- a/luo_KE/luo_KE.go
+++ b/luo_KE/luo_KE.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kapok Kristo obiro", "Ka Kristo osebiro"},
- timezones: map[string]string{"LHST": "LHST", "NZDT": "NZDT", "TMST": "TMST", "MST": "MST", "UYST": "UYST", "PDT": "PDT", "HAT": "HAT", "AWDT": "AWDT", "IST": "IST", "TMT": "TMT", "WAST": "WAST", "SGT": "SGT", "MYT": "MYT", "ACWST": "ACWST", "HKT": "HKT", "HEPM": "HEPM", "WART": "WART", "AST": "AST", "GYT": "GYT", "VET": "VET", "WIT": "WIT", "BT": "BT", "WEZ": "WEZ", "MEZ": "MEZ", "SAST": "SAST", "JST": "JST", "WAT": "WAT", "AKST": "AKST", "HNOG": "HNOG", "HEOG": "HEOG", "ChST": "ChST", "EAT": "EAT", "EST": "EST", "WIB": "WIB", "SRT": "SRT", "MESZ": "MESZ", "NZST": "NZST", "CAT": "CAT", "OEZ": "OEZ", "ART": "ART", "HNPM": "HNPM", "AEDT": "AEDT", "WITA": "WITA", "GFT": "GFT", "WARST": "WARST", "HKST": "HKST", "CHADT": "CHADT", "JDT": "JDT", "ACDT": "ACDT", "HNPMX": "HNPMX", "CST": "CST", "PST": "PST", "LHDT": "LHDT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "HAST": "HAST", "AWST": "AWST", "ACST": "ACST", "MDT": "MDT", "ECT": "ECT", "CDT": "CDT", "CLST": "CLST", "BOT": "BOT", "HEEG": "HEEG", "GMT": "GMT", "HECU": "HECU", "AKDT": "AKDT", "HADT": "HADT", "ACWDT": "ACWDT", "AEST": "AEST", "CLT": "CLT", "OESZ": "OESZ", "HEPMX": "HEPMX", "ADT": "ADT", "WESZ": "WESZ", "HNT": "HNT", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "COT": "COT", "HENOMX": "HENOMX", "COST": "COST", "EDT": "EDT", "UYT": "UYT", "ARST": "ARST"},
+ timezones: map[string]string{"VET": "VET", "ADT": "ADT", "ARST": "ARST", "CLST": "CLST", "CHADT": "CHADT", "COST": "COST", "HNNOMX": "HNNOMX", "SRT": "SRT", "SGT": "SGT", "NZDT": "NZDT", "MEZ": "MEZ", "MDT": "MDT", "EST": "EST", "HAT": "HAT", "HNPMX": "HNPMX", "GYT": "GYT", "WIB": "WIB", "WIT": "WIT", "CHAST": "CHAST", "PST": "PST", "HAST": "HAST", "HNOG": "HNOG", "HKST": "HKST", "GFT": "GFT", "UYT": "UYT", "BOT": "BOT", "HADT": "HADT", "TMT": "TMT", "EDT": "EDT", "UYST": "UYST", "HECU": "HECU", "OEZ": "OEZ", "WAST": "WAST", "HNEG": "HNEG", "LHDT": "LHDT", "MESZ": "MESZ", "TMST": "TMST", "HNT": "HNT", "AEDT": "AEDT", "HKT": "HKT", "ACST": "ACST", "AKST": "AKST", "AKDT": "AKDT", "LHST": "LHST", "HEPMX": "HEPMX", "AWST": "AWST", "OESZ": "OESZ", "WEZ": "WEZ", "GMT": "GMT", "ART": "ART", "JST": "JST", "WART": "WART", "∅∅∅": "∅∅∅", "HEPM": "HEPM", "CAT": "CAT", "WESZ": "WESZ", "MYT": "MYT", "AEST": "AEST", "HNPM": "HNPM", "ECT": "ECT", "ACWST": "ACWST", "NZST": "NZST", "JDT": "JDT", "COT": "COT", "WITA": "WITA", "HNCU": "HNCU", "AWDT": "AWDT", "CLT": "CLT", "HEOG": "HEOG", "WAT": "WAT", "HENOMX": "HENOMX", "ChST": "ChST", "SAST": "SAST", "EAT": "EAT", "CST": "CST", "ACWDT": "ACWDT", "AST": "AST", "MST": "MST", "BT": "BT", "HEEG": "HEEG", "IST": "IST", "WARST": "WARST", "ACDT": "ACDT", "CDT": "CDT", "PDT": "PDT"},
}
}
diff --git a/luy/luy.go b/luy/luy.go
index c6dc6f05..e7ee835d 100644
--- a/luy/luy.go
+++ b/luy/luy.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Imberi ya Kuuza Kwa", "Muhiga Kuvita Kuuza"},
- timezones: map[string]string{"SRT": "SRT", "IST": "IST", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "EST": "EST", "AKST": "AKST", "AST": "AST", "HNOG": "HNOG", "AWDT": "AWDT", "HKT": "HKT", "∅∅∅": "∅∅∅", "WARST": "WARST", "GMT": "GMT", "HECU": "HECU", "UYT": "UYT", "HAST": "HAST", "PST": "PST", "ACWDT": "ACWDT", "ARST": "ARST", "AEDT": "AEDT", "ADT": "ADT", "WIB": "WIB", "WITA": "WITA", "LHDT": "LHDT", "ChST": "ChST", "MYT": "MYT", "ACWST": "ACWST", "HNT": "HNT", "HEOG": "HEOG", "CAT": "CAT", "HENOMX": "HENOMX", "HEPM": "HEPM", "WAT": "WAT", "EDT": "EDT", "HADT": "HADT", "BT": "BT", "WESZ": "WESZ", "AEST": "AEST", "AWST": "AWST", "CDT": "CDT", "HNPMX": "HNPMX", "PDT": "PDT", "HNPM": "HNPM", "CHADT": "CHADT", "JST": "JST", "JDT": "JDT", "OEZ": "OEZ", "ART": "ART", "NZST": "NZST", "SAST": "SAST", "HEEG": "HEEG", "WAST": "WAST", "WIT": "WIT", "GFT": "GFT", "EAT": "EAT", "COT": "COT", "MDT": "MDT", "MESZ": "MESZ", "CLST": "CLST", "TMT": "TMT", "ACDT": "ACDT", "MST": "MST", "ACST": "ACST", "WART": "WART", "SGT": "SGT", "CLT": "CLT", "TMST": "TMST", "COST": "COST", "CST": "CST", "GYT": "GYT", "AKDT": "AKDT", "VET": "VET", "HAT": "HAT", "HKST": "HKST", "CHAST": "CHAST", "BOT": "BOT", "UYST": "UYST", "WEZ": "WEZ", "MEZ": "MEZ", "NZDT": "NZDT", "OESZ": "OESZ", "HEPMX": "HEPMX", "LHST": "LHST", "ECT": "ECT", "HNCU": "HNCU"},
+ timezones: map[string]string{"UYST": "UYST", "PDT": "PDT", "NZDT": "NZDT", "WARST": "WARST", "HNNOMX": "HNNOMX", "HKT": "HKT", "WAT": "WAT", "AWST": "AWST", "PST": "PST", "CLST": "CLST", "ARST": "ARST", "IST": "IST", "VET": "VET", "ACWST": "ACWST", "JST": "JST", "HEOG": "HEOG", "ADT": "ADT", "TMT": "TMT", "AEDT": "AEDT", "EAT": "EAT", "∅∅∅": "∅∅∅", "SGT": "SGT", "JDT": "JDT", "MESZ": "MESZ", "HNOG": "HNOG", "COT": "COT", "GFT": "GFT", "CST": "CST", "BOT": "BOT", "CHADT": "CHADT", "HADT": "HADT", "HAT": "HAT", "GYT": "GYT", "CAT": "CAT", "HKST": "HKST", "ACDT": "ACDT", "GMT": "GMT", "MST": "MST", "UYT": "UYT", "HENOMX": "HENOMX", "WITA": "WITA", "AKST": "AKST", "MEZ": "MEZ", "WART": "WART", "WAST": "WAST", "COST": "COST", "OEZ": "OEZ", "ChST": "ChST", "LHDT": "LHDT", "LHST": "LHST", "SAST": "SAST", "HECU": "HECU", "ACWDT": "ACWDT", "WESZ": "WESZ", "AST": "AST", "HNEG": "HNEG", "HNPM": "HNPM", "HNCU": "HNCU", "HAST": "HAST", "WEZ": "WEZ", "EDT": "EDT", "EST": "EST", "HEEG": "HEEG", "CDT": "CDT", "AWDT": "AWDT", "OESZ": "OESZ", "MDT": "MDT", "HEPM": "HEPM", "HEPMX": "HEPMX", "WIT": "WIT", "ECT": "ECT", "MYT": "MYT", "BT": "BT", "HNPMX": "HNPMX", "WIB": "WIB", "NZST": "NZST", "ACST": "ACST", "AEST": "AEST", "HNT": "HNT", "AKDT": "AKDT", "SRT": "SRT", "CHAST": "CHAST", "CLT": "CLT", "TMST": "TMST", "ART": "ART"},
}
}
diff --git a/luy_KE/luy_KE.go b/luy_KE/luy_KE.go
index a509ae61..4c260d58 100644
--- a/luy_KE/luy_KE.go
+++ b/luy_KE/luy_KE.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Imberi ya Kuuza Kwa", "Muhiga Kuvita Kuuza"},
- timezones: map[string]string{"JST": "JST", "HEEG": "HEEG", "WARST": "WARST", "COT": "COT", "SGT": "SGT", "AST": "AST", "COST": "COST", "HNOG": "HNOG", "AEST": "AEST", "MESZ": "MESZ", "LHST": "LHST", "HENOMX": "HENOMX", "MYT": "MYT", "PST": "PST", "AEDT": "AEDT", "CHADT": "CHADT", "CLT": "CLT", "BOT": "BOT", "HEPMX": "HEPMX", "UYT": "UYT", "∅∅∅": "∅∅∅", "ACST": "ACST", "EAT": "EAT", "WAT": "WAT", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "WESZ": "WESZ", "HNPM": "HNPM", "WART": "WART", "HECU": "HECU", "AKST": "AKST", "HADT": "HADT", "CAT": "CAT", "EST": "EST", "CDT": "CDT", "UYST": "UYST", "SRT": "SRT", "ARST": "ARST", "AWDT": "AWDT", "CHAST": "CHAST", "HNCU": "HNCU", "ADT": "ADT", "HAST": "HAST", "WEZ": "WEZ", "ACWST": "ACWST", "WITA": "WITA", "HKST": "HKST", "CLST": "CLST", "MDT": "MDT", "HEPM": "HEPM", "MEZ": "MEZ", "ACDT": "ACDT", "VET": "VET", "PDT": "PDT", "IST": "IST", "TMST": "TMST", "GMT": "GMT", "GYT": "GYT", "ACWDT": "ACWDT", "HKT": "HKT", "LHDT": "LHDT", "NZST": "NZST", "SAST": "SAST", "CST": "CST", "ECT": "ECT", "WIT": "WIT", "ART": "ART", "HEOG": "HEOG", "GFT": "GFT", "ChST": "ChST", "OESZ": "OESZ", "BT": "BT", "EDT": "EDT", "MST": "MST", "AWST": "AWST", "NZDT": "NZDT", "TMT": "TMT", "HNEG": "HNEG", "OEZ": "OEZ", "WAST": "WAST", "WIB": "WIB", "HNT": "HNT", "HAT": "HAT", "JDT": "JDT", "AKDT": "AKDT"},
+ timezones: map[string]string{"HENOMX": "HENOMX", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "HAST": "HAST", "WESZ": "WESZ", "AWST": "AWST", "ACWDT": "ACWDT", "WART": "WART", "MESZ": "MESZ", "GMT": "GMT", "ART": "ART", "HAT": "HAT", "AKST": "AKST", "LHDT": "LHDT", "JST": "JST", "MEZ": "MEZ", "HNNOMX": "HNNOMX", "COT": "COT", "MDT": "MDT", "UYT": "UYT", "SAST": "SAST", "AST": "AST", "WAT": "WAT", "BT": "BT", "CDT": "CDT", "BOT": "BOT", "HADT": "HADT", "CLST": "CLST", "HEEG": "HEEG", "AKDT": "AKDT", "ECT": "ECT", "VET": "VET", "CLT": "CLT", "HEPM": "HEPM", "HNOG": "HNOG", "TMT": "TMT", "TMST": "TMST", "ACST": "ACST", "GFT": "GFT", "WITA": "WITA", "GYT": "GYT", "HKT": "HKT", "WIT": "WIT", "NZDT": "NZDT", "OESZ": "OESZ", "EDT": "EDT", "MST": "MST", "SRT": "SRT", "ARST": "ARST", "OEZ": "OEZ", "EST": "EST", "HNEG": "HNEG", "∅∅∅": "∅∅∅", "AEST": "AEST", "ACWST": "ACWST", "IST": "IST", "HKST": "HKST", "HNT": "HNT", "AEDT": "AEDT", "HECU": "HECU", "CHAST": "CHAST", "WEZ": "WEZ", "PST": "PST", "JDT": "JDT", "ChST": "ChST", "LHST": "LHST", "WIB": "WIB", "AWDT": "AWDT", "CHADT": "CHADT", "HEOG": "HEOG", "ADT": "ADT", "WAST": "WAST", "COST": "COST", "EAT": "EAT", "HNCU": "HNCU", "CAT": "CAT", "MYT": "MYT", "ACDT": "ACDT", "HNPM": "HNPM", "UYST": "UYST", "CST": "CST", "NZST": "NZST", "SGT": "SGT", "PDT": "PDT", "WARST": "WARST"},
}
}
diff --git a/lv/lv.go b/lv/lv.go
index 37d204b4..3de39192 100644
--- a/lv/lv.go
+++ b/lv/lv.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"p.m.ē.", "m.ē."},
erasNarrow: []string{"p.m.ē.", "m.ē."},
erasWide: []string{"pirms mūsu ēras", "mūsu ērā"},
- timezones: map[string]string{"CLST": "Čīles vasaras laiks", "EAT": "Austrumāfrikas laiks", "BT": "Butānas laiks", "WITA": "Centrālindonēzijas laiks", "JST": "Japānas ziemas laiks", "JDT": "Japānas vasaras laiks", "WAT": "Rietumāfrikas ziemas laiks", "LHDT": "Lorda Hava salas vasaras laiks", "SAST": "Dienvidāfrikas ziemas laiks", "MST": "MST", "HNOG": "Rietumgrenlandes ziemas laiks", "HEOG": "Rietumgrenlandes vasaras laiks", "HEPM": "Senpjēras un Mikelonas vasaras laiks", "COST": "Kolumbijas vasaras laiks", "AKDT": "Aļaskas vasaras laiks", "ADT": "Atlantijas vasaras laiks", "HADT": "Havaju–Aleutu vasaras laiks", "ARST": "Argentīnas vasaras laiks", "PST": "Klusā okeāna ziemas laiks", "BOT": "Bolīvijas laiks", "OESZ": "Austrumeiropas vasaras laiks", "ECT": "Ekvadoras laiks", "GYT": "Gajānas laiks", "EDT": "Austrumu vasaras laiks", "MDT": "MDT", "UYT": "Urugvajas ziemas laiks", "UYST": "Urugvajas vasaras laiks", "ChST": "Čamorra ziemas laiks", "HNNOMX": "Ziemeļrietumu Meksikas ziemas laiks", "WART": "Rietumargentīnas ziemas laiks", "SGT": "Singapūras laiks", "SRT": "Surinamas laiks", "HEPMX": "Meksikas Klusā okeāna piekrastes vasaras laiks", "TMT": "Turkmenistānas ziemas laiks", "TMST": "Turkmenistānas vasaras laiks", "CST": "Centrālais ziemas laiks", "WESZ": "Rietumeiropas vasaras laiks", "AEST": "Austrālijas austrumu ziemas laiks", "HNPM": "Senpjēras un Mikelonas ziemas laiks", "NZST": "Jaunzēlandes ziemas laiks", "HNEG": "Austrumgrenlandes ziemas laiks", "WEZ": "Rietumeiropas ziemas laiks", "EST": "Austrumu ziemas laiks", "AST": "Atlantijas ziemas laiks", "MYT": "Malaizijas laiks", "HAST": "Havaju–Aleutu ziemas laiks", "PDT": "Klusā okeāna vasaras laiks", "CHAST": "Četemas ziemas laiks", "IST": "Indijas ziemas laiks", "WAST": "Rietumāfrikas vasaras laiks", "ART": "Argentīnas ziemas laiks", "WIT": "Austrumindonēzijas laiks", "ACWDT": "Austrālijas centrālais rietumu vasaras laiks", "CHADT": "Četemas vasaras laiks", "MEZ": "Centrāleiropas ziemas laiks", "HENOMX": "Ziemeļrietumu Meksikas vasaras laiks", "GMT": "Griničas laiks", "HNT": "Ņūfaundlendas ziemas laiks", "HAT": "Ņūfaundlendas vasaras laiks", "NZDT": "Jaunzēlandes vasaras laiks", "∅∅∅": "Amazones vasaras laiks", "HNCU": "Kubas ziemas laiks", "AKST": "Aļaskas ziemas laiks", "CAT": "Centrālāfrikas laiks", "HECU": "Kubas vasaras laiks", "HNPMX": "Meksikas Klusā okeāna piekrastes ziemas laiks", "CDT": "Centrālais vasaras laiks", "HKST": "Honkongas vasaras laiks", "MESZ": "Centrāleiropas vasaras laiks", "HEEG": "Austrumgrenlandes vasaras laiks", "ACST": "Austrālijas centrālais ziemas laiks", "HKT": "Honkongas ziemas laiks", "OEZ": "Austrumeiropas ziemas laiks", "COT": "Kolumbijas ziemas laiks", "ACWST": "Austrālijas centrālais rietumu ziemas laiks", "AEDT": "Austrālijas austrumu vasaras laiks", "GFT": "Franču Gviānas laiks", "WARST": "Rietumargentīnas vasaras laiks", "VET": "Venecuēlas laiks", "ACDT": "Austrālijas centrālais vasaras laiks", "WIB": "Rietumindonēzijas laiks", "AWST": "Austrālijas rietumu ziemas laiks", "AWDT": "Austrālijas rietumu vasaras laiks", "LHST": "Lorda Hava salas ziemas laiks", "CLT": "Čīles ziemas laiks"},
+ timezones: map[string]string{"AKDT": "Aļaskas vasaras laiks", "AEST": "Austrālijas austrumu ziemas laiks", "UYT": "Urugvajas ziemas laiks", "ARST": "Argentīnas vasaras laiks", "HADT": "Havaju–Aleutu vasaras laiks", "EDT": "Austrumu vasaras laiks", "ACST": "Austrālijas centrālais ziemas laiks", "MDT": "Kalnu vasaras laiks", "HNCU": "Kubas ziemas laiks", "CDT": "Centrālais vasaras laiks", "WIT": "Austrumindonēzijas laiks", "HKST": "Honkongas vasaras laiks", "HAT": "Ņūfaundlendas vasaras laiks", "HEEG": "Austrumgrenlandes vasaras laiks", "CAT": "Centrālāfrikas laiks", "MESZ": "Centrāleiropas vasaras laiks", "WAT": "Rietumāfrikas ziemas laiks", "ACDT": "Austrālijas centrālais vasaras laiks", "CHAST": "Četemas ziemas laiks", "HNOG": "Rietumgrenlandes ziemas laiks", "PDT": "Klusā okeāna vasaras laiks", "WESZ": "Rietumeiropas vasaras laiks", "TMST": "Turkmenistānas vasaras laiks", "COST": "Kolumbijas vasaras laiks", "HENOMX": "Ziemeļrietumu Meksikas vasaras laiks", "ChST": "Čamorra ziemas laiks", "AWST": "Austrālijas rietumu ziemas laiks", "CHADT": "Četemas vasaras laiks", "HNEG": "Austrumgrenlandes ziemas laiks", "HNPM": "Senpjēras un Mikelonas ziemas laiks", "LHST": "Lorda Hava salas ziemas laiks", "OESZ": "Austrumeiropas vasaras laiks", "WART": "Rietumargentīnas ziemas laiks", "WAST": "Rietumāfrikas vasaras laiks", "EST": "Austrumu ziemas laiks", "HEPMX": "Meksikas Klusā okeāna piekrastes vasaras laiks", "SGT": "Singapūras laiks", "HEOG": "Rietumgrenlandes vasaras laiks", "OEZ": "Austrumeiropas ziemas laiks", "ART": "Argentīnas ziemas laiks", "MST": "Kalnu ziemas laiks", "HNPMX": "Meksikas Klusā okeāna piekrastes ziemas laiks", "TMT": "Turkmenistānas ziemas laiks", "UYST": "Urugvajas vasaras laiks", "GYT": "Gajānas laiks", "ECT": "Ekvadoras laiks", "AST": "Atlantijas ziemas laiks", "GMT": "Griničas laiks", "AWDT": "Austrālijas rietumu vasaras laiks", "BOT": "Bolīvijas laiks", "PST": "Klusā okeāna ziemas laiks", "NZST": "Jaunzēlandes ziemas laiks", "ADT": "Atlantijas vasaras laiks", "IST": "Indijas ziemas laiks", "WIB": "Rietumindonēzijas laiks", "NZDT": "Jaunzēlandes vasaras laiks", "MEZ": "Centrāleiropas ziemas laiks", "COT": "Kolumbijas ziemas laiks", "∅∅∅": "∅∅∅", "WITA": "Centrālindonēzijas laiks", "AEDT": "Austrālijas austrumu vasaras laiks", "SRT": "Surinamas laiks", "CLT": "Čīles ziemas laiks", "WEZ": "Rietumeiropas ziemas laiks", "BT": "Butānas laiks", "AKST": "Aļaskas ziemas laiks", "HECU": "Kubas vasaras laiks", "HAST": "Havaju–Aleutu ziemas laiks", "JDT": "Japānas vasaras laiks", "JST": "Japānas ziemas laiks", "CLST": "Čīles vasaras laiks", "HNNOMX": "Ziemeļrietumu Meksikas ziemas laiks", "GFT": "Franču Gviānas laiks", "LHDT": "Lorda Hava salas vasaras laiks", "CST": "Centrālais ziemas laiks", "ACWST": "Austrālijas centrālais rietumu ziemas laiks", "HKT": "Honkongas ziemas laiks", "HEPM": "Senpjēras un Mikelonas vasaras laiks", "EAT": "Austrumāfrikas laiks", "VET": "Venecuēlas laiks", "MYT": "Malaizijas laiks", "WARST": "Rietumargentīnas vasaras laiks", "HNT": "Ņūfaundlendas ziemas laiks", "SAST": "Dienvidāfrikas ziemas laiks", "ACWDT": "Austrālijas centrālais rietumu vasaras laiks"},
}
}
@@ -102,8 +102,8 @@ func (lv *lv) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
f := locales.F(n, v)
nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
- fMod10 := f % 10
fMod100 := f % 100
+ fMod10 := f % 10
if (nMod10 == 0) || (nMod100 >= 11 && nMod100 <= 19) || (v == 2 && fMod100 >= 11 && fMod100 <= 19) {
return locales.PluralRuleZero
diff --git a/lv_LV/lv_LV.go b/lv_LV/lv_LV.go
index e650379b..f8933772 100644
--- a/lv_LV/lv_LV.go
+++ b/lv_LV/lv_LV.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"p.m.ē.", "m.ē."},
erasNarrow: []string{"p.m.ē.", "m.ē."},
erasWide: []string{"pirms mūsu ēras", "mūsu ērā"},
- timezones: map[string]string{"HEOG": "Rietumgrenlandes vasaras laiks", "PST": "Klusā okeāna ziemas laiks", "WART": "Rietumargentīnas ziemas laiks", "ADT": "Atlantijas vasaras laiks", "HNT": "Ņūfaundlendas ziemas laiks", "JST": "Japānas ziemas laiks", "WAST": "Rietumāfrikas vasaras laiks", "OEZ": "Austrumeiropas ziemas laiks", "SGT": "Singapūras laiks", "AEDT": "Austrālijas austrumu vasaras laiks", "CHADT": "Četemas vasaras laiks", "BOT": "Bolīvijas laiks", "WARST": "Rietumargentīnas vasaras laiks", "AKST": "Aļaskas ziemas laiks", "GYT": "Gajānas laiks", "MYT": "Malaizijas laiks", "ART": "Argentīnas ziemas laiks", "HKT": "Honkongas ziemas laiks", "IST": "Indijas ziemas laiks", "TMT": "Turkmenistānas ziemas laiks", "AST": "Atlantijas ziemas laiks", "HNEG": "Austrumgrenlandes ziemas laiks", "TMST": "Turkmenistānas vasaras laiks", "EAT": "Austrumāfrikas laiks", "HADT": "Havaju–Aleutu vasaras laiks", "AWDT": "Austrālijas rietumu vasaras laiks", "CHAST": "Četemas ziemas laiks", "CLT": "Čīles ziemas laiks", "∅∅∅": "Amazones vasaras laiks", "OESZ": "Austrumeiropas vasaras laiks", "HENOMX": "Ziemeļrietumu Meksikas vasaras laiks", "HNPMX": "Meksikas Klusā okeāna piekrastes ziemas laiks", "WIB": "Rietumindonēzijas laiks", "PDT": "Klusā okeāna vasaras laiks", "WITA": "Centrālindonēzijas laiks", "NZDT": "Jaunzēlandes vasaras laiks", "MESZ": "Centrāleiropas vasaras laiks", "CAT": "Centrālāfrikas laiks", "EDT": "Austrumu vasaras laiks", "ACWDT": "Austrālijas centrālais rietumu vasaras laiks", "HKST": "Honkongas vasaras laiks", "MEZ": "Centrāleiropas ziemas laiks", "ACDT": "Austrālijas centrālais vasaras laiks", "COST": "Kolumbijas vasaras laiks", "HNOG": "Rietumgrenlandes ziemas laiks", "AEST": "Austrālijas austrumu ziemas laiks", "LHST": "Lorda Hava salas ziemas laiks", "HNNOMX": "Ziemeļrietumu Meksikas ziemas laiks", "HECU": "Kubas vasaras laiks", "WEZ": "Rietumeiropas ziemas laiks", "HNPM": "Senpjēras un Mikelonas ziemas laiks", "NZST": "Jaunzēlandes ziemas laiks", "HEPMX": "Meksikas Klusā okeāna piekrastes vasaras laiks", "UYST": "Urugvajas vasaras laiks", "AKDT": "Aļaskas vasaras laiks", "WIT": "Austrumindonēzijas laiks", "BT": "Butānas laiks", "HEPM": "Senpjēras un Mikelonas vasaras laiks", "ECT": "Ekvadoras laiks", "HNCU": "Kubas ziemas laiks", "ARST": "Argentīnas vasaras laiks", "CLST": "Čīles vasaras laiks", "CDT": "Centrālais vasaras laiks", "EST": "Austrumu ziemas laiks", "HAST": "Havaju–Aleutu ziemas laiks", "SRT": "Surinamas laiks", "JDT": "Japānas vasaras laiks", "GMT": "Griničas laiks", "MST": "MST", "SAST": "Dienvidāfrikas ziemas laiks", "ChST": "Čamorra ziemas laiks", "ACST": "Austrālijas centrālais ziemas laiks", "COT": "Kolumbijas ziemas laiks", "MDT": "MDT", "GFT": "Franču Gviānas laiks", "CST": "Centrālais ziemas laiks", "UYT": "Urugvajas ziemas laiks", "VET": "Venecuēlas laiks", "WESZ": "Rietumeiropas vasaras laiks", "AWST": "Austrālijas rietumu ziemas laiks", "LHDT": "Lorda Hava salas vasaras laiks", "HEEG": "Austrumgrenlandes vasaras laiks", "HAT": "Ņūfaundlendas vasaras laiks", "WAT": "Rietumāfrikas ziemas laiks", "ACWST": "Austrālijas centrālais rietumu ziemas laiks"},
+ timezones: map[string]string{"JST": "Japānas ziemas laiks", "HEOG": "Rietumgrenlandes vasaras laiks", "ART": "Argentīnas ziemas laiks", "HKT": "Honkongas ziemas laiks", "COST": "Kolumbijas vasaras laiks", "AEDT": "Austrālijas austrumu vasaras laiks", "CDT": "Centrālais vasaras laiks", "HAST": "Havaju–Aleutu ziemas laiks", "ACWDT": "Austrālijas centrālais rietumu vasaras laiks", "MST": "MST", "ARST": "Argentīnas vasaras laiks", "EDT": "Austrumu vasaras laiks", "ACDT": "Austrālijas centrālais vasaras laiks", "WITA": "Centrālindonēzijas laiks", "BOT": "Bolīvijas laiks", "PDT": "Klusā okeāna vasaras laiks", "UYT": "Urugvajas ziemas laiks", "ADT": "Atlantijas vasaras laiks", "HNPM": "Senpjēras un Mikelonas ziemas laiks", "HNPMX": "Meksikas Klusā okeāna piekrastes ziemas laiks", "SRT": "Surinamas laiks", "WIT": "Austrumindonēzijas laiks", "CLT": "Čīles ziemas laiks", "HENOMX": "Ziemeļrietumu Meksikas vasaras laiks", "HAT": "Ņūfaundlendas vasaras laiks", "GFT": "Franču Gviānas laiks", "ECT": "Ekvadoras laiks", "OEZ": "Austrumeiropas ziemas laiks", "GMT": "Griničas laiks", "HECU": "Kubas vasaras laiks", "PST": "Klusā okeāna ziemas laiks", "MESZ": "Centrāleiropas vasaras laiks", "WAST": "Rietumāfrikas vasaras laiks", "EST": "Austrumu ziemas laiks", "HNT": "Ņūfaundlendas ziemas laiks", "SAST": "Dienvidāfrikas ziemas laiks", "EAT": "Austrumāfrikas laiks", "MEZ": "Centrāleiropas ziemas laiks", "WART": "Rietumargentīnas ziemas laiks", "TMST": "Turkmenistānas vasaras laiks", "WAT": "Rietumāfrikas ziemas laiks", "LHST": "Lorda Hava salas ziemas laiks", "∅∅∅": "Brazīlijas vasaras laiks", "HADT": "Havaju–Aleutu vasaras laiks", "AST": "Atlantijas ziemas laiks", "HEEG": "Austrumgrenlandes vasaras laiks", "AEST": "Austrālijas austrumu ziemas laiks", "GYT": "Gajānas laiks", "AWST": "Austrālijas rietumu ziemas laiks", "ACWST": "Austrālijas centrālais rietumu ziemas laiks", "CHADT": "Četemas vasaras laiks", "WARST": "Rietumargentīnas vasaras laiks", "HEPM": "Senpjēras un Mikelonas vasaras laiks", "HNCU": "Kubas ziemas laiks", "CST": "Centrālais ziemas laiks", "HNOG": "Rietumgrenlandes ziemas laiks", "HNNOMX": "Ziemeļrietumu Meksikas ziemas laiks", "AKDT": "Aļaskas vasaras laiks", "ChST": "Čamorra ziemas laiks", "VET": "Venecuēlas laiks", "CLST": "Čīles vasaras laiks", "HKST": "Honkongas vasaras laiks", "BT": "Butānas laiks", "UYST": "Urugvajas vasaras laiks", "HEPMX": "Meksikas Klusā okeāna piekrastes vasaras laiks", "LHDT": "Lorda Hava salas vasaras laiks", "IST": "Indijas ziemas laiks", "JDT": "Japānas vasaras laiks", "COT": "Kolumbijas ziemas laiks", "AKST": "Aļaskas ziemas laiks", "WEZ": "Rietumeiropas ziemas laiks", "MYT": "Malaizijas laiks", "ACST": "Austrālijas centrālais ziemas laiks", "HNEG": "Austrumgrenlandes ziemas laiks", "WESZ": "Rietumeiropas vasaras laiks", "OESZ": "Austrumeiropas vasaras laiks", "NZST": "Jaunzēlandes ziemas laiks", "CAT": "Centrālāfrikas laiks", "TMT": "Turkmenistānas ziemas laiks", "MDT": "MDT", "AWDT": "Austrālijas rietumu vasaras laiks", "CHAST": "Četemas ziemas laiks", "NZDT": "Jaunzēlandes vasaras laiks", "WIB": "Rietumindonēzijas laiks", "SGT": "Singapūras laiks"},
}
}
diff --git a/mas/mas.go b/mas/mas.go
index 99de2b88..5c16ebfb 100644
--- a/mas/mas.go
+++ b/mas/mas.go
@@ -62,7 +62,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"MY", "EY"},
erasNarrow: []string{"", ""},
erasWide: []string{"Meínō Yɛ́sʉ", "Eínō Yɛ́sʉ"},
- timezones: map[string]string{"LHST": "LHST", "HEEG": "HEEG", "CAT": "CAT", "ADT": "ADT", "MYT": "MYT", "ACWDT": "ACWDT", "MEZ": "MEZ", "IST": "IST", "OEZ": "OEZ", "HKT": "HKT", "HEPM": "HEPM", "HNEG": "HNEG", "TMST": "TMST", "WIB": "WIB", "MESZ": "MESZ", "HNCU": "HNCU", "WARST": "WARST", "PST": "PST", "AEDT": "AEDT", "SAST": "SAST", "ChST": "ChST", "COT": "COT", "AKDT": "AKDT", "CDT": "CDT", "WIT": "WIT", "HNOG": "HNOG", "CLT": "CLT", "WAST": "WAST", "COST": "COST", "NZST": "NZST", "ECT": "ECT", "WAT": "WAT", "HENOMX": "HENOMX", "WART": "WART", "MDT": "MDT", "SRT": "SRT", "ARST": "ARST", "LHDT": "LHDT", "CLST": "CLST", "EAT": "EAT", "GMT": "GMT", "MST": "MST", "EDT": "EDT", "UYST": "UYST", "HEOG": "HEOG", "TMT": "TMT", "ACDT": "ACDT", "AWST": "AWST", "PDT": "PDT", "AWDT": "AWDT", "WITA": "WITA", "AEST": "AEST", "GFT": "GFT", "HECU": "HECU", "HNNOMX": "HNNOMX", "UYT": "UYT", "WEZ": "WEZ", "ACWST": "ACWST", "HAT": "HAT", "BOT": "BOT", "ACST": "ACST", "JDT": "JDT", "OESZ": "OESZ", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "GYT": "GYT", "ART": "ART", "EST": "EST", "AKST": "AKST", "JST": "JST", "HNPM": "HNPM", "BT": "BT", "WESZ": "WESZ", "HNT": "HNT", "HKST": "HKST", "SGT": "SGT", "HAST": "HAST", "CST": "CST", "AST": "AST", "VET": "VET", "HADT": "HADT", "NZDT": "NZDT", "CHAST": "CHAST"},
+ timezones: map[string]string{"AEST": "AEST", "HEPM": "HEPM", "AWST": "AWST", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "EST": "EST", "ACST": "ACST", "UYT": "UYT", "HNPM": "HNPM", "HNCU": "HNCU", "WAST": "WAST", "AEDT": "AEDT", "SAST": "SAST", "HEPMX": "HEPMX", "HECU": "HECU", "HADT": "HADT", "ARST": "ARST", "BT": "BT", "PDT": "PDT", "JDT": "JDT", "WEZ": "WEZ", "MDT": "MDT", "WITA": "WITA", "BOT": "BOT", "HKST": "HKST", "HENOMX": "HENOMX", "HEEG": "HEEG", "CDT": "CDT", "HNT": "HNT", "SGT": "SGT", "CAT": "CAT", "HNOG": "HNOG", "ADT": "ADT", "MST": "MST", "COST": "COST", "HNNOMX": "HNNOMX", "ECT": "ECT", "WARST": "WARST", "AST": "AST", "HNEG": "HNEG", "CHADT": "CHADT", "TMST": "TMST", "LHST": "LHST", "ACWST": "ACWST", "NZST": "NZST", "NZDT": "NZDT", "VET": "VET", "WART": "WART", "HEOG": "HEOG", "CST": "CST", "WIT": "WIT", "CHAST": "CHAST", "JST": "JST", "GFT": "GFT", "WIB": "WIB", "WESZ": "WESZ", "HAT": "HAT", "UYST": "UYST", "LHDT": "LHDT", "HAST": "HAST", "CLST": "CLST", "OESZ": "OESZ", "GMT": "GMT", "GYT": "GYT", "ACWDT": "ACWDT", "MESZ": "MESZ", "TMT": "TMT", "AKST": "AKST", "AKDT": "AKDT", "ChST": "ChST", "IST": "IST", "MEZ": "MEZ", "CLT": "CLT", "OEZ": "OEZ", "ACDT": "ACDT", "COT": "COT", "ART": "ART", "WAT": "WAT", "HKT": "HKT", "HNPMX": "HNPMX", "EAT": "EAT", "PST": "PST", "MYT": "MYT", "EDT": "EDT", "SRT": "SRT"},
}
}
diff --git a/mas_KE/mas_KE.go b/mas_KE/mas_KE.go
index ea074a0d..2c594e5e 100644
--- a/mas_KE/mas_KE.go
+++ b/mas_KE/mas_KE.go
@@ -62,7 +62,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"MY", "EY"},
erasNarrow: []string{"", ""},
erasWide: []string{"Meínō Yɛ́sʉ", "Eínō Yɛ́sʉ"},
- timezones: map[string]string{"AWDT": "AWDT", "NZST": "NZST", "HNEG": "HNEG", "LHDT": "LHDT", "ChST": "ChST", "CAT": "CAT", "ECT": "ECT", "SGT": "SGT", "HNCU": "HNCU", "HECU": "HECU", "ADT": "ADT", "HAST": "HAST", "ACWST": "ACWST", "COST": "COST", "ACST": "ACST", "GMT": "GMT", "MST": "MST", "MDT": "MDT", "ART": "ART", "NZDT": "NZDT", "HEEG": "HEEG", "TMST": "TMST", "EAT": "EAT", "WAT": "WAT", "WAST": "WAST", "HNPMX": "HNPMX", "PDT": "PDT", "ACWDT": "ACWDT", "HAT": "HAT", "AST": "AST", "HNT": "HNT", "ARST": "ARST", "JDT": "JDT", "ACDT": "ACDT", "OEZ": "OEZ", "OESZ": "OESZ", "HENOMX": "HENOMX", "CHADT": "CHADT", "VET": "VET", "SRT": "SRT", "WEZ": "WEZ", "WESZ": "WESZ", "AWST": "AWST", "HEPM": "HEPM", "LHST": "LHST", "PST": "PST", "MESZ": "MESZ", "EST": "EST", "AKST": "AKST", "WIT": "WIT", "HEOG": "HEOG", "BOT": "BOT", "COT": "COT", "WARST": "WARST", "UYST": "UYST", "WIB": "WIB", "HNOG": "HNOG", "AEDT": "AEDT", "IST": "IST", "JST": "JST", "WART": "WART", "EDT": "EDT", "AKDT": "AKDT", "HADT": "HADT", "BT": "BT", "TMT": "TMT", "HEPMX": "HEPMX", "CDT": "CDT", "HKST": "HKST", "MEZ": "MEZ", "GFT": "GFT", "UYT": "UYT", "CST": "CST", "GYT": "GYT", "AEST": "AEST", "HKT": "HKT", "HNPM": "HNPM", "SAST": "SAST", "∅∅∅": "∅∅∅", "WITA": "WITA", "CHAST": "CHAST", "CLT": "CLT", "CLST": "CLST", "MYT": "MYT", "HNNOMX": "HNNOMX"},
+ timezones: map[string]string{"PDT": "PDT", "MESZ": "MESZ", "HNOG": "HNOG", "COT": "COT", "HENOMX": "HENOMX", "HNPM": "HNPM", "AWST": "AWST", "CHADT": "CHADT", "ACWST": "ACWST", "OEZ": "OEZ", "MST": "MST", "ACDT": "ACDT", "AKST": "AKST", "CDT": "CDT", "HKT": "HKT", "AKDT": "AKDT", "LHST": "LHST", "AWDT": "AWDT", "EAT": "EAT", "CST": "CST", "NZDT": "NZDT", "JST": "JST", "AST": "AST", "GFT": "GFT", "ChST": "ChST", "LHDT": "LHDT", "CHAST": "CHAST", "ACWDT": "ACWDT", "AEST": "AEST", "HNCU": "HNCU", "HECU": "HECU", "MEZ": "MEZ", "ACST": "ACST", "HNEG": "HNEG", "SGT": "SGT", "JDT": "JDT", "CLST": "CLST", "EDT": "EDT", "HNT": "HNT", "HAT": "HAT", "WIB": "WIB", "∅∅∅": "∅∅∅", "ADT": "ADT", "CLT": "CLT", "WAST": "WAST", "AEDT": "AEDT", "SAST": "SAST", "SRT": "SRT", "IST": "IST", "GMT": "GMT", "TMST": "TMST", "MDT": "MDT", "ARST": "ARST", "HKST": "HKST", "ECT": "ECT", "VET": "VET", "WITA": "WITA", "TMT": "TMT", "COST": "COST", "GYT": "GYT", "WIT": "WIT", "HEOG": "HEOG", "UYST": "UYST", "BOT": "BOT", "HAST": "HAST", "OESZ": "OESZ", "WEZ": "WEZ", "WESZ": "WESZ", "WART": "WART", "HEEG": "HEEG", "BT": "BT", "HEPM": "HEPM", "PST": "PST", "CAT": "CAT", "WARST": "WARST", "ART": "ART", "WAT": "WAT", "EST": "EST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "NZST": "NZST", "MYT": "MYT", "HNNOMX": "HNNOMX", "HADT": "HADT", "UYT": "UYT"},
}
}
diff --git a/mas_TZ/mas_TZ.go b/mas_TZ/mas_TZ.go
index c91af3ad..516de0dc 100644
--- a/mas_TZ/mas_TZ.go
+++ b/mas_TZ/mas_TZ.go
@@ -62,7 +62,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"MY", "EY"},
erasNarrow: []string{"", ""},
erasWide: []string{"Meínō Yɛ́sʉ", "Eínō Yɛ́sʉ"},
- timezones: map[string]string{"UYST": "UYST", "HEOG": "HEOG", "PST": "PST", "LHDT": "LHDT", "EAT": "EAT", "COST": "COST", "CST": "CST", "SRT": "SRT", "AWST": "AWST", "CLST": "CLST", "EST": "EST", "CDT": "CDT", "ADT": "ADT", "WEZ": "WEZ", "MEZ": "MEZ", "JDT": "JDT", "COT": "COT", "MDT": "MDT", "HNT": "HNT", "ACWDT": "ACWDT", "HEPM": "HEPM", "∅∅∅": "∅∅∅", "TMT": "TMT", "CAT": "CAT", "AKST": "AKST", "AKDT": "AKDT", "ARST": "ARST", "HKST": "HKST", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "AEDT": "AEDT", "CLT": "CLT", "TMST": "TMST", "WAT": "WAT", "WART": "WART", "HECU": "HECU", "CHADT": "CHADT", "SAST": "SAST", "GFT": "GFT", "ChST": "ChST", "HENOMX": "HENOMX", "GMT": "GMT", "HNPMX": "HNPMX", "MYT": "MYT", "VET": "VET", "BT": "BT", "HNOG": "HNOG", "LHST": "LHST", "OEZ": "OEZ", "WAST": "WAST", "GYT": "GYT", "HNPM": "HNPM", "BOT": "BOT", "ACST": "ACST", "MST": "MST", "MESZ": "MESZ", "IST": "IST", "ART": "ART", "NZST": "NZST", "ACDT": "ACDT", "WIB": "WIB", "WIT": "WIT", "HAT": "HAT", "CHAST": "CHAST", "NZDT": "NZDT", "WARST": "WARST", "EDT": "EDT", "HADT": "HADT", "WESZ": "WESZ", "ACWST": "ACWST", "HEEG": "HEEG", "SGT": "SGT", "AST": "AST", "AEST": "AEST", "HKT": "HKT", "OESZ": "OESZ", "ECT": "ECT", "HAST": "HAST", "JST": "JST", "HNEG": "HNEG", "UYT": "UYT", "PDT": "PDT", "WITA": "WITA", "AWDT": "AWDT", "HNCU": "HNCU"},
+ timezones: map[string]string{"OEZ": "OEZ", "WART": "WART", "WAT": "WAT", "HKT": "HKT", "AKDT": "AKDT", "CST": "CST", "IST": "IST", "ACWST": "ACWST", "BT": "BT", "AKST": "AKST", "SGT": "SGT", "HADT": "HADT", "NZST": "NZST", "WEZ": "WEZ", "ART": "ART", "HENOMX": "HENOMX", "WIB": "WIB", "AWDT": "AWDT", "PST": "PST", "ECT": "ECT", "HNT": "HNT", "HEEG": "HEEG", "SAST": "SAST", "ACWDT": "ACWDT", "CLT": "CLT", "HEOG": "HEOG", "ADT": "ADT", "GFT": "GFT", "HNPM": "HNPM", "LHST": "LHST", "HNPMX": "HNPMX", "CHADT": "CHADT", "BOT": "BOT", "AWST": "AWST", "HNOG": "HNOG", "AST": "AST", "MYT": "MYT", "MDT": "MDT", "UYT": "UYT", "GYT": "GYT", "CAT": "CAT", "VET": "VET", "∅∅∅": "∅∅∅", "ARST": "ARST", "WAST": "WAST", "COT": "COT", "AEDT": "AEDT", "ChST": "ChST", "CHAST": "CHAST", "PDT": "PDT", "HKST": "HKST", "ACST": "ACST", "CDT": "CDT", "OESZ": "OESZ", "EDT": "EDT", "GMT": "GMT", "TMT": "TMT", "HNCU": "HNCU", "JDT": "JDT", "CLST": "CLST", "WARST": "WARST", "TMST": "TMST", "AEST": "AEST", "LHDT": "LHDT", "WIT": "WIT", "NZDT": "NZDT", "MEZ": "MEZ", "HAT": "HAT", "SRT": "SRT", "HAST": "HAST", "EST": "EST", "HEPM": "HEPM", "EAT": "EAT", "HNEG": "HNEG", "WITA": "WITA", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "HECU": "HECU", "MST": "MST", "ACDT": "ACDT", "UYST": "UYST", "MESZ": "MESZ", "WESZ": "WESZ", "JST": "JST", "COST": "COST"},
}
}
diff --git a/mer/mer.go b/mer/mer.go
index 3e4f8b3f..830a73b2 100644
--- a/mer/mer.go
+++ b/mer/mer.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"MK", "NK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Mbere ya Kristũ", "Nyuma ya Kristũ"},
- timezones: map[string]string{"HEPM": "HEPM", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "HEPMX": "HEPMX", "CDT": "CDT", "WIT": "WIT", "LHST": "LHST", "COT": "COT", "HAST": "HAST", "HAT": "HAT", "PST": "PST", "TMST": "TMST", "HNEG": "HNEG", "HEEG": "HEEG", "EST": "EST", "AKST": "AKST", "HNOG": "HNOG", "PDT": "PDT", "WEZ": "WEZ", "ACWDT": "ACWDT", "WITA": "WITA", "AWDT": "AWDT", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "HECU": "HECU", "ARST": "ARST", "ACWST": "ACWST", "WART": "WART", "HADT": "HADT", "BT": "BT", "ART": "ART", "JST": "JST", "ChST": "ChST", "ACDT": "ACDT", "UYT": "UYT", "VET": "VET", "HEOG": "HEOG", "AEST": "AEST", "AEDT": "AEDT", "HNPM": "HNPM", "ACST": "ACST", "CAT": "CAT", "MDT": "MDT", "ADT": "ADT", "MEZ": "MEZ", "CLT": "CLT", "BOT": "BOT", "EAT": "EAT", "WARST": "WARST", "GMT": "GMT", "SRT": "SRT", "MESZ": "MESZ", "LHDT": "LHDT", "TMT": "TMT", "EDT": "EDT", "MYT": "MYT", "HKST": "HKST", "NZST": "NZST", "WAST": "WAST", "HNCU": "HNCU", "GYT": "GYT", "UYST": "UYST", "WESZ": "WESZ", "HKT": "HKT", "CHADT": "CHADT", "WAT": "WAT", "CLST": "CLST", "OEZ": "OEZ", "OESZ": "OESZ", "AWST": "AWST", "JDT": "JDT", "COST": "COST", "CST": "CST", "GFT": "GFT", "HNPMX": "HNPMX", "AKDT": "AKDT", "WIB": "WIB", "HNT": "HNT", "SAST": "SAST", "ECT": "ECT", "HENOMX": "HENOMX", "AST": "AST", "IST": "IST", "SGT": "SGT", "MST": "MST"},
+ timezones: map[string]string{"ACDT": "ACDT", "ACWDT": "ACWDT", "JST": "JST", "CLT": "CLT", "EDT": "EDT", "MST": "MST", "GYT": "GYT", "HECU": "HECU", "SGT": "SGT", "HAST": "HAST", "AST": "AST", "COST": "COST", "HEEG": "HEEG", "AKST": "AKST", "ChST": "ChST", "SAST": "SAST", "EAT": "EAT", "AWST": "AWST", "HENOMX": "HENOMX", "AKDT": "AKDT", "CDT": "CDT", "ECT": "ECT", "HADT": "HADT", "MEZ": "MEZ", "OEZ": "OEZ", "HKST": "HKST", "HEPMX": "HEPMX", "CST": "CST", "CHADT": "CHADT", "BOT": "BOT", "CLST": "CLST", "ART": "ART", "WAT": "WAT", "∅∅∅": "∅∅∅", "AEST": "AEST", "UYST": "UYST", "HNPM": "HNPM", "WIT": "WIT", "GMT": "GMT", "HAT": "HAT", "LHST": "LHST", "HNPMX": "HNPMX", "HNCU": "HNCU", "CHAST": "CHAST", "WESZ": "WESZ", "EST": "EST", "GFT": "GFT", "AWDT": "AWDT", "MYT": "MYT", "TMST": "TMST", "HNNOMX": "HNNOMX", "UYT": "UYT", "NZDT": "NZDT", "ARST": "ARST", "HNT": "HNT", "CAT": "CAT", "ADT": "ADT", "MESZ": "MESZ", "JDT": "JDT", "WAST": "WAST", "HKT": "HKT", "BT": "BT", "PDT": "PDT", "ACWST": "ACWST", "VET": "VET", "WEZ": "WEZ", "ACST": "ACST", "HNEG": "HNEG", "WITA": "WITA", "HEPM": "HEPM", "HNOG": "HNOG", "OESZ": "OESZ", "COT": "COT", "TMT": "TMT", "AEDT": "AEDT", "MDT": "MDT", "SRT": "SRT", "IST": "IST", "WARST": "WARST", "HEOG": "HEOG", "LHDT": "LHDT", "WIB": "WIB", "PST": "PST", "NZST": "NZST", "WART": "WART"},
}
}
diff --git a/mer_KE/mer_KE.go b/mer_KE/mer_KE.go
index 4a398fef..66795adf 100644
--- a/mer_KE/mer_KE.go
+++ b/mer_KE/mer_KE.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"MK", "NK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Mbere ya Kristũ", "Nyuma ya Kristũ"},
- timezones: map[string]string{"CDT": "CDT", "PDT": "PDT", "WEZ": "WEZ", "MESZ": "MESZ", "ACDT": "ACDT", "HENOMX": "HENOMX", "MYT": "MYT", "WITA": "WITA", "HEEG": "HEEG", "WARST": "WARST", "HNNOMX": "HNNOMX", "UYST": "UYST", "AKDT": "AKDT", "WIB": "WIB", "WART": "WART", "GMT": "GMT", "HADT": "HADT", "CLST": "CLST", "EAT": "EAT", "ART": "ART", "WAT": "WAT", "OESZ": "OESZ", "ECT": "ECT", "HEPMX": "HEPMX", "ADT": "ADT", "BT": "BT", "WESZ": "WESZ", "ACWDT": "ACWDT", "WAST": "WAST", "CHADT": "CHADT", "TMST": "TMST", "HNT": "HNT", "OEZ": "OEZ", "EDT": "EDT", "HNPMX": "HNPMX", "VET": "VET", "HKST": "HKST", "IST": "IST", "TMT": "TMT", "CAT": "CAT", "HAT": "HAT", "CHAST": "CHAST", "WIT": "WIT", "PST": "PST", "CLT": "CLT", "MST": "MST", "MDT": "MDT", "ACWST": "ACWST", "JDT": "JDT", "GFT": "GFT", "COST": "COST", "AKST": "AKST", "CST": "CST", "AST": "AST", "HKT": "HKT", "HNEG": "HNEG", "HECU": "HECU", "EST": "EST", "UYT": "UYT", "GYT": "GYT", "HEOG": "HEOG", "AWST": "AWST", "HNPM": "HNPM", "HEPM": "HEPM", "SGT": "SGT", "NZDT": "NZDT", "HNCU": "HNCU", "ARST": "ARST", "AEST": "AEST", "AWDT": "AWDT", "ACST": "ACST", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "SAST": "SAST", "BOT": "BOT", "HNOG": "HNOG", "SRT": "SRT", "NZST": "NZST", "ChST": "ChST", "HAST": "HAST", "MEZ": "MEZ", "LHST": "LHST", "LHDT": "LHDT", "JST": "JST", "COT": "COT"},
+ timezones: map[string]string{"MYT": "MYT", "HEPM": "HEPM", "SAST": "SAST", "LHDT": "LHDT", "SRT": "SRT", "PDT": "PDT", "ACWDT": "ACWDT", "ARST": "ARST", "HAT": "HAT", "WITA": "WITA", "HNPMX": "HNPMX", "CDT": "CDT", "SGT": "SGT", "HAST": "HAST", "VET": "VET", "TMST": "TMST", "WAT": "WAT", "ACST": "ACST", "COST": "COST", "BT": "BT", "AKST": "AKST", "ChST": "ChST", "HNPM": "HNPM", "LHST": "LHST", "AWDT": "AWDT", "BOT": "BOT", "MEZ": "MEZ", "OESZ": "OESZ", "ART": "ART", "MDT": "MDT", "WIB": "WIB", "NZDT": "NZDT", "∅∅∅": "∅∅∅", "UYT": "UYT", "HEPMX": "HEPMX", "GYT": "GYT", "HECU": "HECU", "ECT": "ECT", "NZST": "NZST", "EDT": "EDT", "EAT": "EAT", "WIT": "WIT", "GFT": "GFT", "CST": "CST", "IST": "IST", "ADT": "ADT", "WEZ": "WEZ", "CLST": "CLST", "MST": "MST", "COT": "COT", "HADT": "HADT", "CAT": "CAT", "AST": "AST", "EST": "EST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "CHAST": "CHAST", "ACWST": "ACWST", "WARST": "WARST", "ACDT": "ACDT", "HNEG": "HNEG", "AKDT": "AKDT", "PST": "PST", "MESZ": "MESZ", "HEOG": "HEOG", "WAST": "WAST", "HKST": "HKST", "UYST": "UYST", "AWST": "AWST", "HNOG": "HNOG", "WESZ": "WESZ", "TMT": "TMT", "HEEG": "HEEG", "CHADT": "CHADT", "OEZ": "OEZ", "GMT": "GMT", "WART": "WART", "HKT": "HKT", "AEST": "AEST", "AEDT": "AEDT", "HNCU": "HNCU", "JST": "JST", "JDT": "JDT", "CLT": "CLT", "HNT": "HNT"},
}
}
diff --git a/mfe/mfe.go b/mfe/mfe.go
index 493cbf1a..560a4810 100644
--- a/mfe/mfe.go
+++ b/mfe/mfe.go
@@ -66,7 +66,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. Z-K", "ap. Z-K"},
erasNarrow: []string{"", ""},
erasWide: []string{"avan Zezi-Krist", "apre Zezi-Krist"},
- timezones: map[string]string{"TMT": "TMT", "ACST": "ACST", "ADT": "ADT", "WIT": "WIT", "SRT": "SRT", "HNPM": "HNPM", "MEZ": "MEZ", "LHDT": "LHDT", "WAT": "WAT", "GMT": "GMT", "ACWDT": "ACWDT", "GFT": "GFT", "PDT": "PDT", "BOT": "BOT", "SGT": "SGT", "ARST": "ARST", "LHST": "LHST", "CAT": "CAT", "ECT": "ECT", "AKDT": "AKDT", "CDT": "CDT", "WESZ": "WESZ", "HEOG": "HEOG", "WAST": "WAST", "HENOMX": "HENOMX", "AST": "AST", "HKT": "HKT", "SAST": "SAST", "EAT": "EAT", "MST": "MST", "HEPMX": "HEPMX", "MYT": "MYT", "HADT": "HADT", "∅∅∅": "∅∅∅", "WART": "WART", "COST": "COST", "CST": "CST", "WIB": "WIB", "CHAST": "CHAST", "CHADT": "CHADT", "HAT": "HAT", "CLT": "CLT", "TMST": "TMST", "WARST": "WARST", "MDT": "MDT", "UYST": "UYST", "HAST": "HAST", "ACWST": "ACWST", "ART": "ART", "AEST": "AEST", "JDT": "JDT", "HNCU": "HNCU", "HNPMX": "HNPMX", "VET": "VET", "BT": "BT", "IST": "IST", "HNEG": "HNEG", "HEEG": "HEEG", "HNOG": "HNOG", "ChST": "ChST", "ACDT": "ACDT", "OEZ": "OEZ", "OESZ": "OESZ", "COT": "COT", "HKST": "HKST", "NZST": "NZST", "HNNOMX": "HNNOMX", "EST": "EST", "AKST": "AKST", "PST": "PST", "WITA": "WITA", "HEPM": "HEPM", "JST": "JST", "EDT": "EDT", "UYT": "UYT", "GYT": "GYT", "WEZ": "WEZ", "HNT": "HNT", "AEDT": "AEDT", "AWST": "AWST", "AWDT": "AWDT", "MESZ": "MESZ", "NZDT": "NZDT", "CLST": "CLST", "HECU": "HECU"},
+ timezones: map[string]string{"NZDT": "NZDT", "ADT": "ADT", "GMT": "GMT", "MYT": "MYT", "EDT": "EDT", "SGT": "SGT", "ART": "ART", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "TMST": "TMST", "HKT": "HKT", "AEDT": "AEDT", "HECU": "HECU", "AST": "AST", "WAST": "WAST", "HNEG": "HNEG", "AKDT": "AKDT", "GYT": "GYT", "ARST": "ARST", "AKST": "AKST", "GFT": "GFT", "HEPM": "HEPM", "HNCU": "HNCU", "CST": "CST", "CHAST": "CHAST", "NZST": "NZST", "HNOG": "HNOG", "MST": "MST", "AEST": "AEST", "HADT": "HADT", "HNT": "HNT", "HAT": "HAT", "UYT": "UYT", "CDT": "CDT", "OESZ": "OESZ", "CLT": "CLT", "MDT": "MDT", "HEEG": "HEEG", "EAT": "EAT", "IST": "IST", "ACWDT": "ACWDT", "HENOMX": "HENOMX", "CLST": "CLST", "HNPM": "HNPM", "SAST": "SAST", "SRT": "SRT", "WITA": "WITA", "ChST": "ChST", "CAT": "CAT", "MEZ": "MEZ", "JST": "JST", "WEZ": "WEZ", "HKST": "HKST", "ACST": "ACST", "AWDT": "AWDT", "BOT": "BOT", "HEOG": "HEOG", "UYST": "UYST", "WIB": "WIB", "PDT": "PDT", "ACWST": "ACWST", "WARST": "WARST", "EST": "EST", "BT": "BT", "HEPMX": "HEPMX", "∅∅∅": "∅∅∅", "ECT": "ECT", "ACDT": "ACDT", "COST": "COST", "OEZ": "OEZ", "TMT": "TMT", "WIT": "WIT", "CHADT": "CHADT", "HAST": "HAST", "MESZ": "MESZ", "VET": "VET", "JDT": "JDT", "COT": "COT", "LHST": "LHST", "LHDT": "LHDT", "AWST": "AWST", "PST": "PST", "WESZ": "WESZ", "WART": "WART", "WAT": "WAT"},
}
}
diff --git a/mfe_MU/mfe_MU.go b/mfe_MU/mfe_MU.go
index 25440e57..71016cf7 100644
--- a/mfe_MU/mfe_MU.go
+++ b/mfe_MU/mfe_MU.go
@@ -66,7 +66,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. Z-K", "ap. Z-K"},
erasNarrow: []string{"", ""},
erasWide: []string{"avan Zezi-Krist", "apre Zezi-Krist"},
- timezones: map[string]string{"AEDT": "AEDT", "CHAST": "CHAST", "CLT": "CLT", "HEEG": "HEEG", "ACDT": "ACDT", "OESZ": "OESZ", "HEOG": "HEOG", "HKT": "HKT", "VET": "VET", "AKDT": "AKDT", "HADT": "HADT", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "ADT": "ADT", "MEZ": "MEZ", "WAST": "WAST", "JST": "JST", "ChST": "ChST", "ACST": "ACST", "ECT": "ECT", "EAT": "EAT", "WART": "WART", "ACWDT": "ACWDT", "IST": "IST", "WARST": "WARST", "SGT": "SGT", "MST": "MST", "∅∅∅": "∅∅∅", "BOT": "BOT", "GMT": "GMT", "WIT": "WIT", "BT": "BT", "SRT": "SRT", "HNT": "HNT", "AWST": "AWST", "COST": "COST", "HECU": "HECU", "CDT": "CDT", "AST": "AST", "MYT": "MYT", "HEPM": "HEPM", "HNEG": "HNEG", "WITA": "WITA", "SAST": "SAST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "EDT": "EDT", "ARST": "ARST", "HKST": "HKST", "WAT": "WAT", "CAT": "CAT", "AKST": "AKST", "WIB": "WIB", "HAST": "HAST", "WEZ": "WEZ", "LHST": "LHST", "MESZ": "MESZ", "UYT": "UYT", "LHDT": "LHDT", "GYT": "GYT", "HAT": "HAT", "HNPM": "HNPM", "WESZ": "WESZ", "AWDT": "AWDT", "NZDT": "NZDT", "CLST": "CLST", "UYST": "UYST", "ART": "ART", "PST": "PST", "HNOG": "HNOG", "TMT": "TMT", "GFT": "GFT", "OEZ": "OEZ", "COT": "COT", "MDT": "MDT", "CST": "CST", "PDT": "PDT", "CHADT": "CHADT", "TMST": "TMST", "EST": "EST", "AEST": "AEST", "JDT": "JDT", "HENOMX": "HENOMX", "ACWST": "ACWST", "NZST": "NZST"},
+ timezones: map[string]string{"HADT": "HADT", "NZDT": "NZDT", "HENOMX": "HENOMX", "LHDT": "LHDT", "IST": "IST", "MYT": "MYT", "HNOG": "HNOG", "TMST": "TMST", "ARST": "ARST", "UYST": "UYST", "EAT": "EAT", "ACWST": "ACWST", "ACWDT": "ACWDT", "WART": "WART", "HKT": "HKT", "COST": "COST", "HNT": "HNT", "HECU": "HECU", "ECT": "ECT", "PDT": "PDT", "AST": "AST", "HEEG": "HEEG", "HNPM": "HNPM", "HNPMX": "HNPMX", "AWST": "AWST", "∅∅∅": "∅∅∅", "MEZ": "MEZ", "JST": "JST", "TMT": "TMT", "HKST": "HKST", "AKDT": "AKDT", "ChST": "ChST", "HEPMX": "HEPMX", "SRT": "SRT", "CHADT": "CHADT", "CLST": "CLST", "WEZ": "WEZ", "MST": "MST", "AEDT": "AEDT", "LHST": "LHST", "GYT": "GYT", "HNCU": "HNCU", "WARST": "WARST", "CLT": "CLT", "HAT": "HAT", "GFT": "GFT", "BOT": "BOT", "EST": "EST", "HEPM": "HEPM", "MESZ": "MESZ", "MDT": "MDT", "WAST": "WAST", "CST": "CST", "VET": "VET", "HEOG": "HEOG", "GMT": "GMT", "ART": "ART", "WITA": "WITA", "AWDT": "AWDT", "CAT": "CAT", "NZST": "NZST", "ADT": "ADT", "OESZ": "OESZ", "WESZ": "WESZ", "UYT": "UYT", "WIT": "WIT", "JDT": "JDT", "ACST": "ACST", "WIB": "WIB", "CDT": "CDT", "PST": "PST", "HNNOMX": "HNNOMX", "SAST": "SAST", "HAST": "HAST", "OEZ": "OEZ", "WAT": "WAT", "COT": "COT", "BT": "BT", "HNEG": "HNEG", "AKST": "AKST", "AEST": "AEST", "EDT": "EDT", "ACDT": "ACDT", "CHAST": "CHAST", "SGT": "SGT"},
}
}
diff --git a/mg/mg.go b/mg/mg.go
index 107076b2..83291785 100644
--- a/mg/mg.go
+++ b/mg/mg.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Alohan’i JK", "Aorian’i JK"},
- timezones: map[string]string{"ChST": "ChST", "CAT": "CAT", "VET": "VET", "ART": "ART", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "UYST": "UYST", "HKT": "HKT", "CDT": "CDT", "MYT": "MYT", "WIT": "WIT", "SRT": "SRT", "ACWDT": "ACWDT", "HNT": "HNT", "HAT": "HAT", "HNOG": "HNOG", "CLST": "CLST", "COT": "COT", "HKST": "HKST", "ARST": "ARST", "NZST": "NZST", "WIB": "WIB", "HADT": "HADT", "OESZ": "OESZ", "WART": "WART", "GMT": "GMT", "EST": "EST", "EDT": "EDT", "HAST": "HAST", "LHST": "LHST", "SAST": "SAST", "ACDT": "ACDT", "WAST": "WAST", "MDT": "MDT", "AKDT": "AKDT", "GYT": "GYT", "BT": "BT", "JDT": "JDT", "ACST": "ACST", "ECT": "ECT", "AWST": "AWST", "MST": "MST", "HEPM": "HEPM", "CLT": "CLT", "TMT": "TMT", "ADT": "ADT", "UYT": "UYT", "WAT": "WAT", "CST": "CST", "EAT": "EAT", "HNCU": "HNCU", "AKST": "AKST", "AEDT": "AEDT", "HNPM": "HNPM", "CHAST": "CHAST", "MEZ": "MEZ", "BOT": "BOT", "HEEG": "HEEG", "COST": "COST", "HEPMX": "HEPMX", "HEOG": "HEOG", "PST": "PST", "PDT": "PDT", "NZDT": "NZDT", "MESZ": "MESZ", "WITA": "WITA", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AST": "AST", "AEST": "AEST", "LHDT": "LHDT", "IST": "IST", "WARST": "WARST", "HECU": "HECU", "SGT": "SGT", "WEZ": "WEZ", "WESZ": "WESZ", "CHADT": "CHADT", "GFT": "GFT", "HNPMX": "HNPMX", "ACWST": "ACWST", "JST": "JST", "TMST": "TMST"},
+ timezones: map[string]string{"PDT": "PDT", "JDT": "JDT", "EAT": "EAT", "AWST": "AWST", "ChST": "ChST", "TMT": "TMT", "EST": "EST", "HEOG": "HEOG", "GYT": "GYT", "∅∅∅": "∅∅∅", "HKT": "HKT", "WAT": "WAT", "HNPMX": "HNPMX", "AST": "AST", "TMST": "TMST", "ADT": "ADT", "COST": "COST", "HNT": "HNT", "HAT": "HAT", "SAST": "SAST", "CHADT": "CHADT", "NZST": "NZST", "ACWDT": "ACWDT", "WAST": "WAST", "WITA": "WITA", "HEPM": "HEPM", "HAST": "HAST", "IST": "IST", "ACWST": "ACWST", "OEZ": "OEZ", "WESZ": "WESZ", "CLT": "CLT", "COT": "COT", "GFT": "GFT", "WIT": "WIT", "CHAST": "CHAST", "AKST": "AKST", "SGT": "SGT", "WARST": "WARST", "EDT": "EDT", "ACDT": "ACDT", "WIB": "WIB", "CDT": "CDT", "CLST": "CLST", "HNOG": "HNOG", "ART": "ART", "CAT": "CAT", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "HADT": "HADT", "NZDT": "NZDT", "MST": "MST", "AEST": "AEST", "HECU": "HECU", "BOT": "BOT", "HNEG": "HNEG", "LHST": "LHST", "LHDT": "LHDT", "SRT": "SRT", "MEZ": "MEZ", "ARST": "ARST", "OESZ": "OESZ", "WART": "WART", "BT": "BT", "UYT": "UYT", "UYST": "UYST", "CST": "CST", "AWDT": "AWDT", "MYT": "MYT", "HNPM": "HNPM", "PST": "PST", "GMT": "GMT", "VET": "VET", "MDT": "MDT", "HENOMX": "HENOMX", "ACST": "ACST", "AEDT": "AEDT", "HEPMX": "HEPMX", "HNCU": "HNCU", "ECT": "ECT", "HKST": "HKST", "HEEG": "HEEG", "JST": "JST", "WEZ": "WEZ"},
}
}
diff --git a/mg_MG/mg_MG.go b/mg_MG/mg_MG.go
index c8378bf6..42dceac1 100644
--- a/mg_MG/mg_MG.go
+++ b/mg_MG/mg_MG.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Alohan’i JK", "Aorian’i JK"},
- timezones: map[string]string{"HEOG": "HEOG", "LHDT": "LHDT", "HAST": "HAST", "HADT": "HADT", "HEPM": "HEPM", "EST": "EST", "HNPMX": "HNPMX", "MDT": "MDT", "ACWST": "ACWST", "AEST": "AEST", "SAST": "SAST", "HEEG": "HEEG", "NZST": "NZST", "NZDT": "NZDT", "SGT": "SGT", "UYT": "UYT", "JDT": "JDT", "WIT": "WIT", "HNOG": "HNOG", "PST": "PST", "AEDT": "AEDT", "MEZ": "MEZ", "CST": "CST", "AKDT": "AKDT", "WITA": "WITA", "MESZ": "MESZ", "JST": "JST", "CAT": "CAT", "EAT": "EAT", "HAT": "HAT", "PDT": "PDT", "AWDT": "AWDT", "CLT": "CLT", "HNEG": "HNEG", "HENOMX": "HENOMX", "EDT": "EDT", "ADT": "ADT", "WIB": "WIB", "MST": "MST", "SRT": "SRT", "CHADT": "CHADT", "OEZ": "OEZ", "MYT": "MYT", "UYST": "UYST", "AST": "AST", "BT": "BT", "IST": "IST", "BOT": "BOT", "ACST": "ACST", "WART": "WART", "ECT": "ECT", "HNNOMX": "HNNOMX", "WARST": "WARST", "HNT": "HNT", "ART": "ART", "ARST": "ARST", "HKST": "HKST", "TMST": "TMST", "WESZ": "WESZ", "AWST": "AWST", "∅∅∅": "∅∅∅", "AKST": "AKST", "GYT": "GYT", "VET": "VET", "WEZ": "WEZ", "COST": "COST", "HNCU": "HNCU", "HECU": "HECU", "CDT": "CDT", "ACWDT": "ACWDT", "HKT": "HKT", "CHAST": "CHAST", "LHST": "LHST", "OESZ": "OESZ", "ChST": "ChST", "ACDT": "ACDT", "GMT": "GMT", "WAST": "WAST", "COT": "COT", "HEPMX": "HEPMX", "HNPM": "HNPM", "CLST": "CLST", "GFT": "GFT", "TMT": "TMT", "WAT": "WAT"},
+ timezones: map[string]string{"∅∅∅": "∅∅∅", "ACWDT": "ACWDT", "WIB": "WIB", "ADT": "ADT", "ACST": "ACST", "GFT": "GFT", "AEST": "AEST", "HEPMX": "HEPMX", "WIT": "WIT", "PST": "PST", "PDT": "PDT", "MEZ": "MEZ", "MESZ": "MESZ", "ART": "ART", "HEPM": "HEPM", "CDT": "CDT", "HNPMX": "HNPMX", "JST": "JST", "COST": "COST", "LHDT": "LHDT", "CST": "CST", "CAT": "CAT", "COT": "COT", "HNNOMX": "HNNOMX", "HEEG": "HEEG", "AKST": "AKST", "UYT": "UYT", "SGT": "SGT", "NZST": "NZST", "CLT": "CLT", "CLST": "CLST", "HNOG": "HNOG", "GYT": "GYT", "AWST": "AWST", "AWDT": "AWDT", "ECT": "ECT", "HAST": "HAST", "HADT": "HADT", "ACWST": "ACWST", "VET": "VET", "HEOG": "HEOG", "ARST": "ARST", "EAT": "EAT", "HECU": "HECU", "MDT": "MDT", "HKT": "HKT", "AEDT": "AEDT", "LHST": "LHST", "BOT": "BOT", "IST": "IST", "JDT": "JDT", "WEZ": "WEZ", "WAT": "WAT", "HKST": "HKST", "CHAST": "CHAST", "CHADT": "CHADT", "EST": "EST", "HENOMX": "HENOMX", "WITA": "WITA", "UYST": "UYST", "SRT": "SRT", "HNCU": "HNCU", "OEZ": "OEZ", "ChST": "ChST", "NZDT": "NZDT", "WART": "WART", "AST": "AST", "WESZ": "WESZ", "TMT": "TMT", "EDT": "EDT", "ACDT": "ACDT", "HAT": "HAT", "MYT": "MYT", "WARST": "WARST", "OESZ": "OESZ", "HNPM": "HNPM", "GMT": "GMT", "TMST": "TMST", "HNT": "HNT", "SAST": "SAST", "MST": "MST", "WAST": "WAST", "BT": "BT", "HNEG": "HNEG", "AKDT": "AKDT"},
}
}
diff --git a/mgh/mgh.go b/mgh/mgh.go
index 0df8e75c..a806c928 100644
--- a/mgh/mgh.go
+++ b/mgh/mgh.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"HY", "YY"},
erasNarrow: []string{"", ""},
erasWide: []string{"Hinapiya yesu", "Yopia yesu"},
- timezones: map[string]string{"TMT": "TMT", "MDT": "MDT", "ACWDT": "ACWDT", "AWST": "AWST", "HKT": "HKT", "CHADT": "CHADT", "CLT": "CLT", "WAT": "WAT", "OESZ": "OESZ", "WARST": "WARST", "HEPMX": "HEPMX", "∅∅∅": "∅∅∅", "EDT": "EDT", "MST": "MST", "HAST": "HAST", "LHST": "LHST", "NZST": "NZST", "HNPM": "HNPM", "HEPM": "HEPM", "ARST": "ARST", "IST": "IST", "JDT": "JDT", "ACDT": "ACDT", "AKST": "AKST", "CDT": "CDT", "MYT": "MYT", "HADT": "HADT", "ART": "ART", "MESZ": "MESZ", "ACST": "ACST", "EST": "EST", "AST": "AST", "COST": "COST", "BT": "BT", "AWDT": "AWDT", "JST": "JST", "TMST": "TMST", "EAT": "EAT", "GMT": "GMT", "HECU": "HECU", "PST": "PST", "GFT": "GFT", "COT": "COT", "HENOMX": "HENOMX", "HNT": "HNT", "HAT": "HAT", "AEST": "AEST", "OEZ": "OEZ", "HNCU": "HNCU", "AEDT": "AEDT", "HKST": "HKST", "WESZ": "WESZ", "ACWST": "ACWST", "SGT": "SGT", "HNPMX": "HNPMX", "AKDT": "AKDT", "GYT": "GYT", "WIB": "WIB", "PDT": "PDT", "HEOG": "HEOG", "HNOG": "HNOG", "CLST": "CLST", "HEEG": "HEEG", "UYST": "UYST", "CST": "CST", "ADT": "ADT", "SRT": "SRT", "SAST": "SAST", "HNEG": "HNEG", "WART": "WART", "VET": "VET", "WIT": "WIT", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "MEZ": "MEZ", "CHAST": "CHAST", "ChST": "ChST", "BOT": "BOT", "WAST": "WAST", "ECT": "ECT", "LHDT": "LHDT", "NZDT": "NZDT", "CAT": "CAT", "UYT": "UYT", "WITA": "WITA"},
+ timezones: map[string]string{"GYT": "GYT", "CST": "CST", "WIT": "WIT", "MESZ": "MESZ", "HNOG": "HNOG", "WART": "WART", "UYST": "UYST", "ChST": "ChST", "BOT": "BOT", "MST": "MST", "HKT": "HKT", "COST": "COST", "HNNOMX": "HNNOMX", "LHST": "LHST", "LHDT": "LHDT", "WARST": "WARST", "ARST": "ARST", "HNCU": "HNCU", "PDT": "PDT", "CLST": "CLST", "ADT": "ADT", "WEZ": "WEZ", "CDT": "CDT", "CHADT": "CHADT", "IST": "IST", "HKST": "HKST", "WITA": "WITA", "HEPM": "HEPM", "HEOG": "HEOG", "WESZ": "WESZ", "ART": "ART", "AKDT": "AKDT", "EAT": "EAT", "CLT": "CLT", "TMST": "TMST", "MDT": "MDT", "WAST": "WAST", "HNEG": "HNEG", "HEPMX": "HEPMX", "SRT": "SRT", "ECT": "ECT", "∅∅∅": "∅∅∅", "VET": "VET", "BT": "BT", "MEZ": "MEZ", "ACDT": "ACDT", "COT": "COT", "SAST": "SAST", "TMT": "TMT", "AKST": "AKST", "HECU": "HECU", "PST": "PST", "CAT": "CAT", "GMT": "GMT", "MYT": "MYT", "JST": "JST", "AST": "AST", "WAT": "WAT", "HAT": "HAT", "CHAST": "CHAST", "ACWST": "ACWST", "AEST": "AEST", "GFT": "GFT", "AWDT": "AWDT", "SGT": "SGT", "ACWDT": "ACWDT", "OEZ": "OEZ", "HNT": "HNT", "UYT": "UYT", "HNPM": "HNPM", "NZDT": "NZDT", "EST": "EST", "HENOMX": "HENOMX", "HEEG": "HEEG", "HADT": "HADT", "JDT": "JDT", "EDT": "EDT", "AEDT": "AEDT", "HNPMX": "HNPMX", "WIB": "WIB", "AWST": "AWST", "HAST": "HAST", "NZST": "NZST", "OESZ": "OESZ", "ACST": "ACST"},
}
}
diff --git a/mgh_MZ/mgh_MZ.go b/mgh_MZ/mgh_MZ.go
index 3e23de3f..d03ebc26 100644
--- a/mgh_MZ/mgh_MZ.go
+++ b/mgh_MZ/mgh_MZ.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"HY", "YY"},
erasNarrow: []string{"", ""},
erasWide: []string{"Hinapiya yesu", "Yopia yesu"},
- timezones: map[string]string{"WITA": "WITA", "HEPM": "HEPM", "GFT": "GFT", "WARST": "WARST", "ADT": "ADT", "HADT": "HADT", "HNOG": "HNOG", "OESZ": "OESZ", "CDT": "CDT", "HAST": "HAST", "HEPMX": "HEPMX", "EDT": "EDT", "GYT": "GYT", "ACWST": "ACWST", "LHDT": "LHDT", "HEEG": "HEEG", "SGT": "SGT", "BT": "BT", "HKST": "HKST", "HKT": "HKT", "EAT": "EAT", "WAST": "WAST", "HEOG": "HEOG", "NZDT": "NZDT", "CAT": "CAT", "AKST": "AKST", "ACWDT": "ACWDT", "AEST": "AEST", "OEZ": "OEZ", "HNPMX": "HNPMX", "AST": "AST", "LHST": "LHST", "WAT": "WAT", "WESZ": "WESZ", "MESZ": "MESZ", "WIT": "WIT", "AWDT": "AWDT", "IST": "IST", "CLT": "CLT", "JST": "JST", "MST": "MST", "UYT": "UYT", "VET": "VET", "JDT": "JDT", "HNT": "HNT", "AEDT": "AEDT", "ChST": "ChST", "MDT": "MDT", "CST": "CST", "PST": "PST", "EST": "EST", "MYT": "MYT", "SRT": "SRT", "ARST": "ARST", "MEZ": "MEZ", "ECT": "ECT", "COT": "COT", "HECU": "HECU", "CHAST": "CHAST", "SAST": "SAST", "HNEG": "HNEG", "WIB": "WIB", "HAT": "HAT", "BOT": "BOT", "TMT": "TMT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HNCU": "HNCU", "HNPM": "HNPM", "NZST": "NZST", "CHADT": "CHADT", "CLST": "CLST", "TMST": "TMST", "ACDT": "ACDT", "GMT": "GMT", "PDT": "PDT", "WEZ": "WEZ", "AWST": "AWST", "WART": "WART", "UYST": "UYST", "AKDT": "AKDT", "ART": "ART", "ACST": "ACST", "∅∅∅": "∅∅∅", "COST": "COST"},
+ timezones: map[string]string{"CAT": "CAT", "WARST": "WARST", "WITA": "WITA", "PST": "PST", "NZDT": "NZDT", "HKT": "HKT", "GFT": "GFT", "LHST": "LHST", "HECU": "HECU", "OEZ": "OEZ", "GMT": "GMT", "CLST": "CLST", "AEDT": "AEDT", "HNPM": "HNPM", "SRT": "SRT", "ACDT": "ACDT", "HEPM": "HEPM", "ACWST": "ACWST", "MDT": "MDT", "ARST": "ARST", "HKST": "HKST", "HENOMX": "HENOMX", "HNT": "HNT", "HAT": "HAT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "BOT": "BOT", "MESZ": "MESZ", "HNOG": "HNOG", "SGT": "SGT", "HAST": "HAST", "∅∅∅": "∅∅∅", "MYT": "MYT", "EST": "EST", "HNNOMX": "HNNOMX", "CST": "CST", "WIT": "WIT", "NZST": "NZST", "WEZ": "WEZ", "EDT": "EDT", "ACST": "ACST", "COT": "COT", "SAST": "SAST", "ACWDT": "ACWDT", "AST": "AST", "TMST": "TMST", "ART": "ART", "VET": "VET", "WAST": "WAST", "HNEG": "HNEG", "CHAST": "CHAST", "JST": "JST", "ADT": "ADT", "TMT": "TMT", "MST": "MST", "AKST": "AKST", "EAT": "EAT", "HNCU": "HNCU", "CDT": "CDT", "COST": "COST", "GYT": "GYT", "CHADT": "CHADT", "MEZ": "MEZ", "CLT": "CLT", "HEOG": "HEOG", "WAT": "WAT", "AKDT": "AKDT", "AEST": "AEST", "UYT": "UYT", "AWDT": "AWDT", "HADT": "HADT", "OESZ": "OESZ", "WESZ": "WESZ", "ChST": "ChST", "UYST": "UYST", "LHDT": "LHDT", "PDT": "PDT", "ECT": "ECT", "BT": "BT", "AWST": "AWST", "IST": "IST", "JDT": "JDT", "WART": "WART", "HEEG": "HEEG", "WIB": "WIB"},
}
}
diff --git a/mgo/mgo.go b/mgo/mgo.go
index 672c7c05..b59f67ee 100644
--- a/mgo/mgo.go
+++ b/mgo/mgo.go
@@ -70,7 +70,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "CE"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"WART": "WART", "CDT": "CDT", "GYT": "GYT", "AEDT": "AEDT", "HNPM": "HNPM", "EAT": "EAT", "EST": "EST", "HNPMX": "HNPMX", "HNT": "HNT", "HAT": "HAT", "AWDT": "AWDT", "HEEG": "HEEG", "ACST": "ACST", "CHADT": "CHADT", "CST": "CST", "ADT": "ADT", "AEST": "AEST", "OESZ": "OESZ", "EDT": "EDT", "AST": "AST", "WEZ": "WEZ", "AWST": "AWST", "LHDT": "LHDT", "CLST": "CLST", "∅∅∅": "∅∅∅", "WAT": "WAT", "HNCU": "HNCU", "HNOG": "HNOG", "ChST": "ChST", "ACDT": "ACDT", "MST": "MST", "WIT": "WIT", "ACWST": "ACWST", "HKST": "HKST", "COT": "COT", "GMT": "GMT", "MYT": "MYT", "HAST": "HAST", "JDT": "JDT", "GFT": "GFT", "HNEG": "HNEG", "IST": "IST", "BOT": "BOT", "HNNOMX": "HNNOMX", "AKST": "AKST", "VET": "VET", "PDT": "PDT", "WESZ": "WESZ", "MEZ": "MEZ", "MESZ": "MESZ", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "HEPM": "HEPM", "NZST": "NZST", "CLT": "CLT", "CHAST": "CHAST", "OEZ": "OEZ", "CAT": "CAT", "WARST": "WARST", "SGT": "SGT", "ARST": "ARST", "WITA": "WITA", "HKT": "HKT", "JST": "JST", "TMT": "TMT", "COST": "COST", "MDT": "MDT", "HADT": "HADT", "HEOG": "HEOG", "PST": "PST", "SAST": "SAST", "WAST": "WAST", "HECU": "HECU", "UYST": "UYST", "AKDT": "AKDT", "ART": "ART", "LHST": "LHST", "NZDT": "NZDT", "ECT": "ECT", "HEPMX": "HEPMX", "WIB": "WIB", "TMST": "TMST", "UYT": "UYT", "BT": "BT", "SRT": "SRT"},
+ timezones: map[string]string{"ARST": "ARST", "COT": "COT", "HNEG": "HNEG", "WITA": "WITA", "AWDT": "AWDT", "BOT": "BOT", "AEST": "AEST", "MEZ": "MEZ", "HKT": "HKT", "WIB": "WIB", "AST": "AST", "WAT": "WAT", "NZDT": "NZDT", "JST": "JST", "MDT": "MDT", "ChST": "ChST", "LHDT": "LHDT", "CHADT": "CHADT", "HAST": "HAST", "ACWDT": "ACWDT", "WESZ": "WESZ", "MYT": "MYT", "ACST": "ACST", "HEPMX": "HEPMX", "HNCU": "HNCU", "ECT": "ECT", "PST": "PST", "JDT": "JDT", "CLT": "CLT", "HNOG": "HNOG", "WAST": "WAST", "EDT": "EDT", "HEEG": "HEEG", "CST": "CST", "MESZ": "MESZ", "GFT": "GFT", "HECU": "HECU", "TMT": "TMT", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "BT": "BT", "HAT": "HAT", "HNPM": "HNPM", "IST": "IST", "ACWST": "ACWST", "COST": "COST", "HNT": "HNT", "ART": "ART", "HKST": "HKST", "UYST": "UYST", "SRT": "SRT", "VET": "VET", "TMST": "TMST", "EAT": "EAT", "EST": "EST", "UYT": "UYT", "HEOG": "HEOG", "ADT": "ADT", "GMT": "GMT", "HENOMX": "HENOMX", "HADT": "HADT", "WART": "WART", "AEDT": "AEDT", "LHST": "LHST", "GYT": "GYT", "CHAST": "CHAST", "AKST": "AKST", "SGT": "SGT", "CAT": "CAT", "CLST": "CLST", "HNPMX": "HNPMX", "∅∅∅": "∅∅∅", "AWST": "AWST", "HEPM": "HEPM", "OEZ": "OEZ", "WEZ": "WEZ", "NZST": "NZST", "MST": "MST", "PDT": "PDT", "WARST": "WARST", "OESZ": "OESZ", "AKDT": "AKDT", "SAST": "SAST", "CDT": "CDT", "WIT": "WIT"},
}
}
diff --git a/mgo_CM/mgo_CM.go b/mgo_CM/mgo_CM.go
index 9f82821b..00f0da75 100644
--- a/mgo_CM/mgo_CM.go
+++ b/mgo_CM/mgo_CM.go
@@ -70,7 +70,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "CE"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"OEZ": "OEZ", "ACWST": "ACWST", "HAT": "HAT", "ARST": "ARST", "HKST": "HKST", "WITA": "WITA", "TMST": "TMST", "WAT": "WAT", "WART": "WART", "AWST": "AWST", "AST": "AST", "JST": "JST", "ChST": "ChST", "HEPMX": "HEPMX", "SGT": "SGT", "BT": "BT", "SRT": "SRT", "PDT": "PDT", "HNOG": "HNOG", "ACDT": "ACDT", "ECT": "ECT", "HENOMX": "HENOMX", "CST": "CST", "BOT": "BOT", "VET": "VET", "WIT": "WIT", "PST": "PST", "LHDT": "LHDT", "CHAST": "CHAST", "CHADT": "CHADT", "CLT": "CLT", "GFT": "GFT", "TMT": "TMT", "GMT": "GMT", "UYT": "UYT", "MYT": "MYT", "EAT": "EAT", "GYT": "GYT", "AKDT": "AKDT", "HADT": "HADT", "AEST": "AEST", "HKT": "HKT", "HEPM": "HEPM", "SAST": "SAST", "IST": "IST", "HNCU": "HNCU", "CDT": "CDT", "ACWDT": "ACWDT", "JDT": "JDT", "WAST": "WAST", "∅∅∅": "∅∅∅", "CAT": "CAT", "WARST": "WARST", "UYST": "UYST", "AEDT": "AEDT", "MEZ": "MEZ", "COST": "COST", "AWDT": "AWDT", "MESZ": "MESZ", "ACST": "ACST", "ADT": "ADT", "MDT": "MDT", "HAST": "HAST", "HNT": "HNT", "LHST": "LHST", "HECU": "HECU", "MST": "MST", "NZDT": "NZDT", "EDT": "EDT", "WEZ": "WEZ", "HNPM": "HNPM", "CLST": "CLST", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "WIB": "WIB", "WESZ": "WESZ", "HEOG": "HEOG", "HNEG": "HNEG", "EST": "EST", "AKST": "AKST", "ART": "ART", "NZST": "NZST", "OESZ": "OESZ", "COT": "COT"},
+ timezones: map[string]string{"HAST": "HAST", "∅∅∅": "∅∅∅", "WART": "WART", "HKST": "HKST", "WIT": "WIT", "MESZ": "MESZ", "WESZ": "WESZ", "WITA": "WITA", "HEPM": "HEPM", "CHADT": "CHADT", "MYT": "MYT", "CLST": "CLST", "EST": "EST", "COT": "COT", "HNEG": "HNEG", "AKDT": "AKDT", "PST": "PST", "IST": "IST", "OEZ": "OEZ", "TMST": "TMST", "CST": "CST", "HECU": "HECU", "SGT": "SGT", "NZST": "NZST", "OESZ": "OESZ", "WARST": "WARST", "WAT": "WAT", "GFT": "GFT", "LHST": "LHST", "MEZ": "MEZ", "AST": "AST", "EDT": "EDT", "HEPMX": "HEPMX", "HNCU": "HNCU", "BOT": "BOT", "ACST": "ACST", "WIB": "WIB", "PDT": "PDT", "HADT": "HADT", "VET": "VET", "HNOG": "HNOG", "TMT": "TMT", "MDT": "MDT", "HNNOMX": "HNNOMX", "HAT": "HAT", "CAT": "CAT", "ACWST": "ACWST", "ADT": "ADT", "ART": "ART", "SAST": "SAST", "HNPMX": "HNPMX", "EAT": "EAT", "JDT": "JDT", "ACDT": "ACDT", "AKST": "AKST", "AEST": "AEST", "UYT": "UYT", "HNPM": "HNPM", "JST": "JST", "HEOG": "HEOG", "ARST": "ARST", "HKT": "HKT", "HENOMX": "HENOMX", "CDT": "CDT", "ACWDT": "ACWDT", "WEZ": "WEZ", "COST": "COST", "HNT": "HNT", "GYT": "GYT", "NZDT": "NZDT", "HEEG": "HEEG", "ChST": "ChST", "AWDT": "AWDT", "BT": "BT", "AEDT": "AEDT", "ECT": "ECT", "MST": "MST", "UYST": "UYST", "CHAST": "CHAST", "GMT": "GMT", "CLT": "CLT", "WAST": "WAST", "LHDT": "LHDT", "SRT": "SRT", "AWST": "AWST"},
}
}
diff --git a/mk/mk.go b/mk/mk.go
index 7d2efd36..a089b2f7 100644
--- a/mk/mk.go
+++ b/mk/mk.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"пр.н.е.", "н.е."},
erasWide: []string{"пред нашата ера", "од нашата ера"},
- timezones: map[string]string{"AST": "Атлантско стандардно време", "WIB": "Време во Западна Индонезија", "ART": "Стандардно време во Аргентина", "AWST": "Стандардно време во Западна Австралија", "WART": "Стандардно време во западна Аргентина", "GYT": "Време во Гвајана", "MDT": "MDT", "UYST": "Летно сметање на времето во Уругвај", "HAST": "Стандардно време во Хаваи - Алеутски острови", "HADT": "Летно сметање на времето во Хаваи - Алеутски острови", "WIT": "Време во Источна Индонезија", "HKT": "Стандардно време во Хонг Конг", "BOT": "Време во Боливија", "ACST": "Стандардно време во Централна Австралија", "JST": "Стандардно време во Јапонија", "ACDT": "Летно сметање на времето во Централна Австралија", "ECT": "Време во Еквадор", "AKDT": "Летно сметање на времето во Аљаска", "ACWST": "Стандардно време во Централна и Западна Австралија", "ACWDT": "Летно сметање на времето во Централна и Западна Австралија", "ARST": "Летно сметање на времето во Аргентина", "ChST": "Време во Чаморо", "HEEG": "Летно сметање на времето во Источен Гренланд", "CHADT": "Летно сметање на времето во Четем", "MESZ": "Средноевропско летно време", "LHDT": "Летно сметање на времето во Лорд Хау", "JDT": "Летно сметање на времето во Јапонија", "EST": "Источно стандардно време", "MYT": "Време во Малезија", "NZST": "Стандардно време во Нов Зеланд", "GFT": "Време во Француска Гвајана", "HNCU": "Стандардно време во Куба", "EAT": "Источноафриканско време", "COT": "Стандардно време во Колумбија", "EDT": "Источно летно сметање на времето", "SAST": "Време во Јужноафриканска Република", "CLT": "Стандардно време во Чиле", "HNEG": "Стандардно време во Источен Гренланд", "TMST": "Летно време во Туркменистан", "AEST": "Стандардно време во Источна Австралија", "AWDT": "Летно сметање на времето во Западна Австралија", "CAT": "Средноафриканско време", "HNPMX": "Стандардно тихоокеанско време во Мексико", "HNNOMX": "Стандардно време во северозападно Мексико", "HEPMX": "Летно тихоокеанско време во Мексико", "NZDT": "Летно сметање на времето во Нов Зеланд", "∅∅∅": "Летно сметање на времето во Перу", "OEZ": "Источноевропско стандардно време", "ADT": "Атлантско летно сметање на времето", "VET": "Време во Венецуела", "HEOG": "Летно сметање на времето во Западен Гренланд", "WAT": "Западноафриканско стандардно време", "AKST": "Стандардно време во Аљаска", "HNT": "Стандардно време на Њуфаундленд", "LHST": "Стандардно време во Лорд Хау", "IST": "Време во Индија", "TMT": "Стандардно време во Туркменистан", "SGT": "Време во Сингапур", "PDT": "Пацифичко летно сметање на времето", "WEZ": "Западноевропско стандардно време", "WESZ": "Западноевропско летно време", "CHAST": "Стандардно време во Четем", "SRT": "Време во Суринам", "HNOG": "Стандардно време во Западен Гренланд", "CST": "Централно стандардно време во Северна Америка", "CDT": "Централно летно сметање на времето", "WITA": "Време во Централна Индонезија", "WARST": "Летно сметање на времето во западна Аргентина", "COST": "Летно сметање на времето во Колумбија", "GMT": "Средно време по Гринич", "UYT": "Стандардно време во Уругвај", "HAT": "Летно сметање на времето на Њуфаундленд", "HNPM": "Стандардно време на Сент Пјер и Микелан", "CLST": "Летно сметање на времето во Чиле", "OESZ": "Источноевропско летно време", "HENOMX": "Летно сметање на времето во северозападно Мексико", "PST": "Пацифичко стандардно време", "AEDT": "Летно сметање на времето во Источна Австралија", "HECU": "Летно сметање на времето во Куба", "BT": "Време во Бутан", "HKST": "Летно време во Хонг Конг", "HEPM": "Летно сметање на времето на Сент Пјер и Микелан", "MEZ": "Средноевропско стандардно време", "WAST": "Западноафриканско летно сметање на времето", "MST": "MST"},
+ timezones: map[string]string{"EAT": "Источноафриканско време", "IST": "Време во Индија", "MEZ": "Средноевропско стандардно време", "AWDT": "Летно сметање на времето во Западна Австралија", "CHADT": "Летно сметање на времето во Четем", "HADT": "Летно сметање на времето во Хаваи - Алеутски острови", "WART": "Стандардно време во западна Аргентина", "EST": "Источно стандардно време", "UYT": "Стандардно време во Уругвај", "CDT": "Централно летно сметање на времето", "CLT": "Стандардно време во Чиле", "ART": "Стандардно време во Аргентина", "AEDT": "Летно сметање на времето во Источна Австралија", "LHDT": "Летно сметање на времето во Лорд Хау", "HENOMX": "Летно сметање на времето во северозападно Мексико", "CST": "Централно стандардно време во Северна Америка", "AWST": "Стандардно време во Западна Австралија", "NZST": "Стандардно време во Нов Зеланд", "VET": "Време во Венецуела", "MST": "MST", "HKT": "Стандардно време во Хонг Конг", "WIB": "Време во Западна Индонезија", "NZDT": "Летно сметање на времето во Нов Зеланд", "WARST": "Летно сметање на времето во западна Аргентина", "BT": "Време во Бутан", "HEPM": "Летно сметање на времето на Сент Пјер и Микелан", "SAST": "Време во Јужноафриканска Република", "SRT": "Време во Суринам", "HAST": "Стандардно време во Хаваи - Алеутски острови", "ACWST": "Стандардно време во Централна и Западна Австралија", "CLST": "Летно сметање на времето во Чиле", "HNT": "Стандардно време на Њуфаундленд", "HEEG": "Летно сметање на времето во Источен Гренланд", "AKST": "Стандардно време во Аљаска", "HAT": "Летно сметање на времето на Њуфаундленд", "HECU": "Летно сметање на времето во Куба", "WIT": "Време во Источна Индонезија", "SGT": "Време во Сингапур", "GMT": "Средно време по Гринич", "TMST": "Летно време во Туркменистан", "COST": "Летно сметање на времето во Колумбија", "MESZ": "Средноевропско летно време", "HKST": "Летно време во Хонг Конг", "HNEG": "Стандардно време во Источен Гренланд", "GYT": "Време во Гвајана", "HNPM": "Стандардно време на Сент Пјер и Микелан", "ECT": "Време во Еквадор", "ACWDT": "Летно сметање на времето во Централна и Западна Австралија", "MYT": "Време во Малезија", "HEOG": "Летно сметање на времето во Западен Гренланд", "WEZ": "Западноевропско стандардно време", "TMT": "Стандардно време во Туркменистан", "HNOG": "Стандардно време во Западен Гренланд", "OEZ": "Источноевропско стандардно време", "ACDT": "Летно сметање на времето во Централна Австралија", "HNPMX": "Стандардно тихоокеанско време во Мексико", "OESZ": "Источноевропско летно време", "HEPMX": "Летно тихоокеанско време во Мексико", "WITA": "Време во Централна Индонезија", "LHST": "Стандардно време во Лорд Хау", "BOT": "Време во Боливија", "PST": "Пацифичко стандардно време", "MDT": "MDT", "EDT": "Источно летно сметање на времето", "COT": "Стандардно време во Колумбија", "GFT": "Време во Француска Гвајана", "JDT": "Летно сметање на времето во Јапонија", "HNNOMX": "Стандардно време во северозападно Мексико", "AEST": "Стандардно време во Источна Австралија", "HNCU": "Стандардно време во Куба", "WAST": "Западноафриканско летно сметање на времето", "AKDT": "Летно сметање на времето во Аљаска", "UYST": "Летно сметање на времето во Уругвај", "CHAST": "Стандардно време во Четем", "JST": "Стандардно време во Јапонија", "ADT": "Атлантско летно сметање на времето", "WAT": "Западноафриканско стандардно време", "ACST": "Стандардно време во Централна Австралија", "ChST": "Време во Чаморо", "∅∅∅": "Летно сметање на времето во Бразилија", "PDT": "Пацифичко летно сметање на времето", "CAT": "Средноафриканско време", "AST": "Атлантско стандардно време", "WESZ": "Западноевропско летно време", "ARST": "Летно сметање на времето во Аргентина"},
}
}
diff --git a/mk_MK/mk_MK.go b/mk_MK/mk_MK.go
index 1f3cefc0..fa8452b6 100644
--- a/mk_MK/mk_MK.go
+++ b/mk_MK/mk_MK.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"пр.н.е.", "н.е."},
erasWide: []string{"пред нашата ера", "од нашата ера"},
- timezones: map[string]string{"HNNOMX": "Стандардно време во северозападно Мексико", "UYST": "Летно сметање на времето во Уругвај", "LHST": "Стандардно време во Лорд Хау", "SAST": "Време во Јужноафриканска Република", "AWST": "Стандардно време во Западна Австралија", "NZST": "Стандардно време во Нов Зеланд", "CHAST": "Стандардно време во Четем", "MDT": "MDT", "UYT": "Стандардно време во Уругвај", "CST": "Централно стандардно време во Северна Америка", "WEZ": "Западноевропско стандардно време", "ACWST": "Стандардно време во Централна и Западна Австралија", "AWDT": "Летно сметање на времето во Западна Австралија", "HNPM": "Стандардно време на Сент Пјер и Микелан", "MESZ": "Средноевропско летно време", "IST": "Време во Индија", "HEOG": "Летно сметање на времето во Западен Гренланд", "CAT": "Средноафриканско време", "HECU": "Летно сметање на времето во Куба", "AKST": "Стандардно време во Аљаска", "ADT": "Атлантско летно сметање на времето", "ART": "Стандардно време во Аргентина", "MEZ": "Средноевропско стандардно време", "WIT": "Време во Источна Индонезија", "HEEG": "Летно сметање на времето во Источен Гренланд", "WIB": "Време во Западна Индонезија", "JDT": "Летно сметање на времето во Јапонија", "TMST": "Летно време во Туркменистан", "ACDT": "Летно сметање на времето во Централна Австралија", "COST": "Летно сметање на времето во Колумбија", "HEPMX": "Летно тихоокеанско време во Мексико", "CDT": "Централно летно сметање на времето", "VET": "Време во Венецуела", "LHDT": "Летно сметање на времето во Лорд Хау", "HNOG": "Стандардно време во Западен Гренланд", "CLST": "Летно сметање на времето во Чиле", "WART": "Стандардно време во западна Аргентина", "COT": "Стандардно време во Колумбија", "HENOMX": "Летно сметање на времето во северозападно Мексико", "BT": "Време во Бутан", "WESZ": "Западноевропско летно време", "MST": "MST", "SRT": "Време во Суринам", "GFT": "Време во Француска Гвајана", "WAST": "Западноафриканско летно сметање на времето", "OEZ": "Источноевропско стандардно време", "HNPMX": "Стандардно тихоокеанско време во Мексико", "MYT": "Време во Малезија", "HADT": "Летно сметање на времето во Хаваи - Алеутски острови", "HKST": "Летно време во Хонг Конг", "NZDT": "Летно сметање на времето во Нов Зеланд", "HAST": "Стандардно време во Хаваи - Алеутски острови", "AEST": "Стандардно време во Источна Австралија", "HEPM": "Летно сметање на времето на Сент Пјер и Микелан", "CLT": "Стандардно време во Чиле", "PST": "Пацифичко стандардно време", "WITA": "Време во Централна Индонезија", "ChST": "Време во Чаморо", "TMT": "Стандардно време во Туркменистан", "HKT": "Стандардно време во Хонг Конг", "HNEG": "Стандардно време во Источен Гренланд", "ACST": "Стандардно време во Централна Австралија", "GMT": "Средно време по Гринич", "HNCU": "Стандардно време во Куба", "∅∅∅": "Акре летно сметање на времето", "HNT": "Стандардно време на Њуфаундленд", "HAT": "Летно сметање на времето на Њуфаундленд", "AEDT": "Летно сметање на времето во Источна Австралија", "JST": "Стандардно време во Јапонија", "WAT": "Западноафриканско стандардно време", "WARST": "Летно сметање на времето во западна Аргентина", "EDT": "Источно летно сметање на времето", "AST": "Атлантско стандардно време", "PDT": "Пацифичко летно сметање на времето", "ARST": "Летно сметање на времето во Аргентина", "OESZ": "Источноевропско летно време", "CHADT": "Летно сметање на времето во Четем", "BOT": "Време во Боливија", "EAT": "Источноафриканско време", "SGT": "Време во Сингапур", "EST": "Источно стандардно време", "AKDT": "Летно сметање на времето во Аљаска", "GYT": "Време во Гвајана", "ACWDT": "Летно сметање на времето во Централна и Западна Австралија", "ECT": "Време во Еквадор"},
+ timezones: map[string]string{"GMT": "Средно време по Гринич", "WART": "Стандардно време во западна Аргентина", "WIB": "Време во Западна Индонезија", "WIT": "Време во Источна Индонезија", "SGT": "Време во Сингапур", "CAT": "Средноафриканско време", "MESZ": "Средноевропско летно време", "JDT": "Летно сметање на времето во Јапонија", "CLST": "Летно сметање на времето во Чиле", "ART": "Стандардно време во Аргентина", "UYT": "Стандардно време во Уругвај", "HEPMX": "Летно тихоокеанско време во Мексико", "ADT": "Атлантско летно сметање на времето", "WEZ": "Западноевропско стандардно време", "MDT": "MDT", "COT": "Стандардно време во Колумбија", "HNNOMX": "Стандардно време во северозападно Мексико", "AKDT": "Летно сметање на времето во Аљаска", "HECU": "Летно сметање на времето во Куба", "CHADT": "Летно сметање на времето во Четем", "MEZ": "Средноевропско стандардно време", "HNOG": "Стандардно време во Западен Гренланд", "HNPMX": "Стандардно тихоокеанско време во Мексико", "ACWST": "Стандардно време во Централна и Западна Австралија", "JST": "Стандардно време во Јапонија", "TMST": "Летно време во Туркменистан", "AKST": "Стандардно време во Аљаска", "AEST": "Стандардно време во Источна Австралија", "GFT": "Време во Француска Гвајана", "SAST": "Време во Јужноафриканска Република", "PST": "Пацифичко стандардно време", "HAST": "Стандардно време во Хаваи - Алеутски острови", "NZDT": "Летно сметање на времето во Нов Зеланд", "HEOG": "Летно сметање на времето во Западен Гренланд", "EDT": "Источно летно сметање на времето", "HKT": "Стандардно време во Хонг Конг", "COST": "Летно сметање на времето во Колумбија", "UYST": "Летно сметање на времето во Уругвај", "AWST": "Стандардно време во Западна Австралија", "CHAST": "Стандардно време во Четем", "NZST": "Стандардно време во Нов Зеланд", "OESZ": "Источноевропско летно време", "WAST": "Западноафриканско летно сметање на времето", "ACST": "Стандардно време во Централна Австралија", "ChST": "Време во Чаморо", "AWDT": "Летно сметање на времето во Западна Австралија", "HNT": "Стандардно време на Њуфаундленд", "HNEG": "Стандардно време во Источен Гренланд", "HNPM": "Стандардно време на Сент Пјер и Микелан", "LHST": "Стандардно време во Лорд Хау", "HEEG": "Летно сметање на времето во Источен Гренланд", "LHDT": "Летно сметање на времето во Лорд Хау", "EAT": "Источноафриканско време", "∅∅∅": "Летно сметање на времето во Бразилија", "IST": "Време во Индија", "MYT": "Време во Малезија", "ARST": "Летно сметање на времето во Аргентина", "EST": "Источно стандардно време", "CST": "Централно стандардно време во Северна Америка", "ACWDT": "Летно сметање на времето во Централна и Западна Австралија", "VET": "Време во Венецуела", "CLT": "Стандардно време во Чиле", "HKST": "Летно време во Хонг Конг", "BOT": "Време во Боливија", "ECT": "Време во Еквадор", "TMT": "Стандардно време во Туркменистан", "MST": "MST", "HEPM": "Летно сметање на времето на Сент Пјер и Микелан", "PDT": "Пацифичко летно сметање на времето", "OEZ": "Источноевропско стандардно време", "WARST": "Летно сметање на времето во западна Аргентина", "WITA": "Време во Централна Индонезија", "HAT": "Летно сметање на времето на Њуфаундленд", "SRT": "Време во Суринам", "GYT": "Време во Гвајана", "CDT": "Централно летно сметање на времето", "WESZ": "Западноевропско летно време", "ACDT": "Летно сметање на времето во Централна Австралија", "AEDT": "Летно сметање на времето во Источна Австралија", "HNCU": "Стандардно време во Куба", "HADT": "Летно сметање на времето во Хаваи - Алеутски острови", "AST": "Атлантско стандардно време", "WAT": "Западноафриканско стандардно време", "HENOMX": "Летно сметање на времето во северозападно Мексико", "BT": "Време во Бутан"},
}
}
diff --git a/ml/ml.go b/ml/ml.go
index 2fc5d947..ca58d01e 100644
--- a/ml/ml.go
+++ b/ml/ml.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ക്രി.മു.", "എഡി"},
erasNarrow: []string{"", ""},
erasWide: []string{"ക്രിസ്\u200cതുവിന് മുമ്പ്", "ആന്നോ ഡൊമിനി"},
- timezones: map[string]string{"ECT": "ഇക്വഡോർ സമയം", "WART": "പടിഞ്ഞാറൻ അർജന്റീന സ്റ്റാൻഡേർഡ് സമയം", "HNT": "ന്യൂഫൗണ്ട്\u200cലാന്റ് സ്റ്റാൻഡേർഡ് സമയം", "HAT": "ന്യൂഫൗണ്ട്\u200cലാന്റ് ഡേലൈറ്റ് സമയം", "AEDT": "ഓസ്\u200cട്രേലിയൻ കിഴക്കൻ ഡേലൈറ്റ് സമയം", "WITA": "മധ്യ ഇന്തോനേഷ്യ സമയം", "NZDT": "ന്യൂസിലാൻഡ് ഡേലൈറ്റ് സമയം", "∅∅∅": "ആമസോൺ ഗ്രീഷ്\u200cമകാല സമയം", "UYST": "ഉറുഗ്വേ ഗ്രീഷ്\u200cമകാല സമയം", "GYT": "ഗയാന സമയം", "AEST": "ഓസ്\u200cട്രേലിയൻ കിഴക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "IST": "ഇന്ത്യൻ സ്റ്റാൻഡേർഡ് സമയം", "CLST": "ചിലി ഗ്രീഷ്\u200cമകാല സമയം", "HECU": "ക്യൂബ ഡേലൈറ്റ് സമയം", "MYT": "മലേഷ്യ സമയം", "ADT": "അറ്റ്\u200cലാന്റിക് ഡേലൈറ്റ് സമയം", "HADT": "ഹവായ്-അലൂഷ്യൻ ഡേലൈറ്റ് സമയം", "CAT": "മധ്യ ആഫ്രിക്ക സമയം", "WAST": "പടിഞ്ഞാറൻ ആഫ്രിക്ക ഗ്രീഷ്\u200cമകാല സമയം", "HNCU": "ക്യൂബ സ്റ്റാൻഡേർഡ് സമയം", "MDT": "വടക്കെ അമേരിക്കൻ മൗണ്ടൻ ഡേലൈറ്റ് സമയം", "ACWST": "ഓസ്ട്രേലിയൻ സെൻട്രൽ പടിഞ്ഞാറൻ സ്റ്റാൻഡേർഡ് സമയം", "MEZ": "സെൻട്രൽ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "BOT": "ബൊളീവിയ സമയം", "OEZ": "കിഴക്കൻ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "SGT": "സിംഗപ്പൂർ സ്റ്റാൻഡേർഡ് സമയം", "EST": "വടക്കെ അമേരിക്കൻ കിഴക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "WIB": "പടിഞ്ഞാറൻ ഇന്തോനേഷ്യ സമയം", "WESZ": "പടിഞ്ഞാറൻ യൂറോപ്യൻ ഗ്രീഷ്\u200cമകാല സമയം", "TMT": "തുർക്ക്\u200cമെനിസ്ഥാൻ സ്റ്റാൻഡേർഡ് സമയം", "COST": "കൊളംബിയ ഗ്രീഷ്\u200cമകാല സമയം", "GMT": "ഗ്രീൻവിച്ച് മീൻ സമയം", "MST": "വടക്കെ അമേരിക്കൻ മൗണ്ടൻ സ്റ്റാൻഡേർഡ് സമയം", "ACST": "ഓസ്ട്രേലിയൻ സെൻട്രൽ സ്റ്റാൻഡേർഡ് സമയം", "COT": "കൊളംബിയ സ്റ്റാൻഡേർഡ് സമയം", "HAST": "ഹവായ്-അലൂഷ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "SAST": "ദക്ഷിണാഫ്രിക്ക സ്റ്റാൻഡേർഡ് സമയം", "ChST": "ചമോറോ സ്റ്റാൻഡേർഡ് സമയം", "HNPMX": "മെക്\u200cസിക്കൻ പസഫിക് സ്റ്റാൻഡേർഡ് സമയം", "PDT": "വടക്കെ അമേരിക്കൻ പസഫിക് ഡേലൈറ്റ് സമയം", "AWST": "ഓസ്\u200cട്രേലിയൻ പടിഞ്ഞാറൻ സ്റ്റാൻഡേർഡ് സമയം", "AWDT": "ഓസ്\u200cട്രേലിയൻ പടിഞ്ഞാറൻ ഡേലൈറ്റ് സമയം", "HEPM": "സെന്റ് പിയറി ആൻഡ് മിക്വലൻ ഡേലൈറ്റ് സമയം", "CLT": "ചിലി സ്റ്റാൻഡേർഡ് സമയം", "HEEG": "കിഴക്കൻ ഗ്രീൻലാൻഡ് ഗ്രീഷ്\u200cമകാല സമയം", "MESZ": "സെൻട്രൽ യൂറോപ്യൻ ഗ്രീഷ്മകാല സമയം", "CHADT": "ചാത്തം ഗ്രീഷ്\u200cമകാല സമയം", "HNEG": "കിഴക്കൻ ഗ്രീൻലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "WARST": "പടിഞ്ഞാറൻ അർജന്റീന ഗ്രീഷ്\u200cമകാല സമയം", "WEZ": "പടിഞ്ഞാറൻ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "ACWDT": "ഓസ്ട്രേലിയൻ സെൻട്രൽ പടിഞ്ഞാറൻ ഡേലൈറ്റ് സമയം", "HNOG": "പടിഞ്ഞാറൻ ഗ്രീൻലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "TMST": "തുർക്ക്\u200cമെനിസ്ഥാൻ ഗ്രീഷ്\u200cമകാല സമയം", "HENOMX": "വടക്കുപടിഞ്ഞാറൻ മെക്സിക്കൻ ഡേലൈറ്റ് സമയം", "AKST": "അലാസ്ക സ്റ്റാൻഡേർഡ് സമയം", "HKST": "ഹോങ്കോങ്ങ് ഗ്രീഷ്\u200cമകാല സമയം", "JST": "ജപ്പാൻ സ്റ്റാൻഡേർഡ് സമയം", "OESZ": "കിഴക്കൻ യൂറോപ്യൻ ഗ്രീഷ്മകാല സമയം", "EDT": "വടക്കെ അമേരിക്കൻ കിഴക്കൻ ഡേലൈറ്റ് സമയം", "LHST": "ലോർഡ് ഹോവ് സ്റ്റാൻഡേർഡ് സമയം", "LHDT": "ലോർഡ് ഹോവ് ഡേലൈറ്റ് സമയം", "WAT": "പടിഞ്ഞാറൻ ആഫ്രിക്ക സ്റ്റാൻഡേർഡ് സമയം", "UYT": "ഉറുഗ്വേ സ്റ്റാൻഡേർഡ് സമയം", "CST": "വടക്കെ അമേരിക്കൻ സെൻട്രൽ സ്റ്റാൻഡേർഡ് സമയം", "AST": "അറ്റ്\u200cലാന്റിക് സ്റ്റാൻഡേർഡ് സമയം", "ART": "അർജന്റീന സ്റ്റാൻഡേർഡ് സമയം", "HKT": "ഹോങ്കോങ്ങ് സ്റ്റാൻഡേർഡ് സമയം", "WIT": "കിഴക്കൻ ഇന്തോനേഷ്യ സമയം", "ARST": "അർജന്റീന ഗ്രീഷ്\u200cമകാല സമയം", "GFT": "ഫ്രഞ്ച് ഗയാന സമയം", "ACDT": "ഓസ്ട്രേലിയൻ സെൻട്രൽ ഡേലൈറ്റ് സമയം", "EAT": "കിഴക്കൻ ആഫ്രിക്ക സമയം", "JDT": "ജപ്പാൻ ഡേലൈറ്റ് സമയം", "HNNOMX": "വടക്കുപടിഞ്ഞാറൻ മെക്\u200cസിക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "AKDT": "അലാസ്\u200cക ഡേലൈറ്റ് സമയം", "CDT": "വടക്കെ അമേരിക്കൻ സെൻട്രൽ ഡേലൈറ്റ് സമയം", "BT": "ഭൂട്ടാൻ സമയം", "PST": "വടക്കെ അമേരിക്കൻ പസഫിക് സ്റ്റാൻഡേർഡ് സമയം", "NZST": "ന്യൂസിലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "HEPMX": "മെക്സിക്കൻ പസഫിക് ഡേലൈറ്റ് സമയം", "VET": "വെനിസ്വേല സമയം", "SRT": "സുരിനെയിം സമയം", "HEOG": "പടിഞ്ഞാറൻ ഗ്രീൻലാൻഡ് ഗ്രീഷ്\u200cമകാല സമയം", "HNPM": "സെന്റ് പിയറി ആൻഡ് മിക്വലൻ സ്റ്റാൻഡേർഡ് സമയം", "CHAST": "ചാത്തം സ്റ്റാൻഡേർഡ് സമയം"},
+ timezones: map[string]string{"MST": "വടക്കെ അമേരിക്കൻ മൗണ്ടൻ സ്റ്റാൻഡേർഡ് സമയം", "GFT": "ഫ്രഞ്ച് ഗയാന സമയം", "JDT": "ജപ്പാൻ ഡേലൈറ്റ് സമയം", "WESZ": "പടിഞ്ഞാറൻ യൂറോപ്യൻ ഗ്രീഷ്\u200cമകാല സമയം", "EDT": "വടക്കെ അമേരിക്കൻ കിഴക്കൻ ഡേലൈറ്റ് സമയം", "MDT": "വടക്കെ അമേരിക്കൻ മൗണ്ടൻ ഡേലൈറ്റ് സമയം", "AKDT": "അലാസ്\u200cക ഡേലൈറ്റ് സമയം", "CHADT": "ചാത്തം ഗ്രീഷ്\u200cമകാല സമയം", "PDT": "വടക്കെ അമേരിക്കൻ പസഫിക് ഡേലൈറ്റ് സമയം", "HEOG": "പടിഞ്ഞാറൻ ഗ്രീൻലാൻഡ് ഗ്രീഷ്\u200cമകാല സമയം", "TMT": "തുർക്ക്\u200cമെനിസ്ഥാൻ സ്റ്റാൻഡേർഡ് സമയം", "TMST": "തുർക്ക്\u200cമെനിസ്ഥാൻ ഗ്രീഷ്\u200cമകാല സമയം", "HNEG": "കിഴക്കൻ ഗ്രീൻലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "UYST": "ഉറുഗ്വേ ഗ്രീഷ്\u200cമകാല സമയം", "HNCU": "ക്യൂബ സ്റ്റാൻഡേർഡ് സമയം", "HECU": "ക്യൂബ ഡേലൈറ്റ് സമയം", "CST": "വടക്കെ അമേരിക്കൻ സെൻട്രൽ സ്റ്റാൻഡേർഡ് സമയം", "HKT": "ഹോങ്കോങ്ങ് സ്റ്റാൻഡേർഡ് സമയം", "HENOMX": "വടക്കുപടിഞ്ഞാറൻ മെക്സിക്കൻ ഡേലൈറ്റ് സമയം", "HNT": "ന്യൂഫൗണ്ട്\u200cലാന്റ് സ്റ്റാൻഡേർഡ് സമയം", "WART": "പടിഞ്ഞാറൻ അർജന്റീന സ്റ്റാൻഡേർഡ് സമയം", "COST": "കൊളംബിയ ഗ്രീഷ്\u200cമകാല സമയം", "ARST": "അർജന്റീന ഗ്രീഷ്\u200cമകാല സമയം", "BOT": "ബൊളീവിയ സമയം", "CHAST": "ചാത്തം സ്റ്റാൻഡേർഡ് സമയം", "HAST": "ഹവായ്-അലൂഷ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "WAT": "പടിഞ്ഞാറൻ ആഫ്രിക്ക സ്റ്റാൻഡേർഡ് സമയം", "HEPM": "സെന്റ് പിയറി ആൻഡ് മിക്വലൻ ഡേലൈറ്റ് സമയം", "ChST": "ചമോറോ സ്റ്റാൻഡേർഡ് സമയം", "LHDT": "ലോർഡ് ഹോവ് ഡേലൈറ്റ് സമയം", "SAST": "ദക്ഷിണാഫ്രിക്ക സ്റ്റാൻഡേർഡ് സമയം", "ACWDT": "ഓസ്ട്രേലിയൻ സെൻട്രൽ പടിഞ്ഞാറൻ ഡേലൈറ്റ് സമയം", "CLST": "ചിലി ഗ്രീഷ്\u200cമകാല സമയം", "HKST": "ഹോങ്കോങ്ങ് ഗ്രീഷ്\u200cമകാല സമയം", "AWDT": "ഓസ്\u200cട്രേലിയൻ പടിഞ്ഞാറൻ ഡേലൈറ്റ് സമയം", "ADT": "അറ്റ്\u200cലാന്റിക് ഡേലൈറ്റ് സമയം", "HAT": "ന്യൂഫൗണ്ട്\u200cലാന്റ് ഡേലൈറ്റ് സമയം", "SGT": "സിംഗപ്പൂർ സ്റ്റാൻഡേർഡ് സമയം", "EST": "വടക്കെ അമേരിക്കൻ കിഴക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "UYT": "ഉറുഗ്വേ സ്റ്റാൻഡേർഡ് സമയം", "SRT": "സുരിനെയിം സമയം", "HADT": "ഹവായ്-അലൂഷ്യൻ ഡേലൈറ്റ് സമയം", "OEZ": "കിഴക്കൻ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "MEZ": "സെൻട്രൽ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "COT": "കൊളംബിയ സ്റ്റാൻഡേർഡ് സമയം", "HEPMX": "മെക്സിക്കൻ പസഫിക് ഡേലൈറ്റ് സമയം", "CDT": "വടക്കെ അമേരിക്കൻ സെൻട്രൽ ഡേലൈറ്റ് സമയം", "PST": "വടക്കെ അമേരിക്കൻ പസഫിക് സ്റ്റാൻഡേർഡ് സമയം", "JST": "ജപ്പാൻ സ്റ്റാൻഡേർഡ് സമയം", "WIT": "കിഴക്കൻ ഇന്തോനേഷ്യ സമയം", "ACWST": "ഓസ്ട്രേലിയൻ സെൻട്രൽ പടിഞ്ഞാറൻ സ്റ്റാൻഡേർഡ് സമയം", "CAT": "മധ്യ ആഫ്രിക്ക സമയം", "ACDT": "ഓസ്ട്രേലിയൻ സെൻട്രൽ ഡേലൈറ്റ് സമയം", "HEEG": "കിഴക്കൻ ഗ്രീൻലാൻഡ് ഗ്രീഷ്\u200cമകാല സമയം", "AEDT": "ഓസ്\u200cട്രേലിയൻ കിഴക്കൻ ഡേലൈറ്റ് സമയം", "HNPM": "സെന്റ് പിയറി ആൻഡ് മിക്വലൻ സ്റ്റാൻഡേർഡ് സമയം", "EAT": "കിഴക്കൻ ആഫ്രിക്ക സമയം", "ART": "അർജന്റീന സ്റ്റാൻഡേർഡ് സമയം", "WITA": "മധ്യ ഇന്തോനേഷ്യ സമയം", "WIB": "പടിഞ്ഞാറൻ ഇന്തോനേഷ്യ സമയം", "WARST": "പടിഞ്ഞാറൻ അർജന്റീന ഗ്രീഷ്\u200cമകാല സമയം", "HNOG": "പടിഞ്ഞാറൻ ഗ്രീൻലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "AST": "അറ്റ്\u200cലാന്റിക് സ്റ്റാൻഡേർഡ് സമയം", "IST": "ഇന്ത്യൻ സ്റ്റാൻഡേർഡ് സമയം", "CLT": "ചിലി സ്റ്റാൻഡേർഡ് സമയം", "VET": "വെനിസ്വേല സമയം", "WEZ": "പടിഞ്ഞാറൻ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "GMT": "ഗ്രീൻവിച്ച് മീൻ സമയം", "HNNOMX": "വടക്കുപടിഞ്ഞാറൻ മെക്\u200cസിക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "∅∅∅": "എയ്ക്കർ വേനൽക്കാല സമയം", "AEST": "ഓസ്\u200cട്രേലിയൻ കിഴക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "AKST": "അലാസ്ക സ്റ്റാൻഡേർഡ് സമയം", "LHST": "ലോർഡ് ഹോവ് സ്റ്റാൻഡേർഡ് സമയം", "NZST": "ന്യൂസിലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "NZDT": "ന്യൂസിലാൻഡ് ഡേലൈറ്റ് സമയം", "MESZ": "സെൻട്രൽ യൂറോപ്യൻ ഗ്രീഷ്മകാല സമയം", "WAST": "പടിഞ്ഞാറൻ ആഫ്രിക്ക ഗ്രീഷ്\u200cമകാല സമയം", "BT": "ഭൂട്ടാൻ സമയം", "HNPMX": "മെക്\u200cസിക്കൻ പസഫിക് സ്റ്റാൻഡേർഡ് സമയം", "GYT": "ഗയാന സമയം", "AWST": "ഓസ്\u200cട്രേലിയൻ പടിഞ്ഞാറൻ സ്റ്റാൻഡേർഡ് സമയം", "OESZ": "കിഴക്കൻ യൂറോപ്യൻ ഗ്രീഷ്മകാല സമയം", "MYT": "മലേഷ്യ സമയം", "ACST": "ഓസ്ട്രേലിയൻ സെൻട്രൽ സ്റ്റാൻഡേർഡ് സമയം", "ECT": "ഇക്വഡോർ സമയം"},
}
}
diff --git a/ml_IN/ml_IN.go b/ml_IN/ml_IN.go
index 0d4f5120..6315c6a2 100644
--- a/ml_IN/ml_IN.go
+++ b/ml_IN/ml_IN.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ക്രി.മു.", "എഡി"},
erasNarrow: []string{"", ""},
erasWide: []string{"ക്രിസ്\u200cതുവിന് മുമ്പ്", "ആന്നോ ഡൊമിനി"},
- timezones: map[string]string{"AWDT": "ഓസ്\u200cട്രേലിയൻ പടിഞ്ഞാറൻ ഡേലൈറ്റ് സമയം", "ECT": "ഇക്വഡോർ സമയം", "COT": "കൊളംബിയ സ്റ്റാൻഡേർഡ് സമയം", "UYT": "ഉറുഗ്വേ സ്റ്റാൻഡേർഡ് സമയം", "AKST": "അലാസ്ക സ്റ്റാൻഡേർഡ് സമയം", "LHST": "ലോർഡ് ഹോവ് സ്റ്റാൻഡേർഡ് സമയം", "HEEG": "കിഴക്കൻ ഗ്രീൻലാൻഡ് ഗ്രീഷ്\u200cമകാല സമയം", "ACDT": "ഓസ്ട്രേലിയൻ സെൻട്രൽ ഡേലൈറ്റ് സമയം", "HNPMX": "മെക്\u200cസിക്കൻ പസഫിക് സ്റ്റാൻഡേർഡ് സമയം", "UYST": "ഉറുഗ്വേ ഗ്രീഷ്\u200cമകാല സമയം", "HADT": "ഹവായ്-അലൂഷ്യൻ ഡേലൈറ്റ് സമയം", "BT": "ഭൂട്ടാൻ സമയം", "ACWDT": "ഓസ്ട്രേലിയൻ സെൻട്രൽ പടിഞ്ഞാറൻ ഡേലൈറ്റ് സമയം", "GFT": "ഫ്രഞ്ച് ഗയാന സമയം", "TMT": "തുർക്ക്\u200cമെനിസ്ഥാൻ സ്റ്റാൻഡേർഡ് സമയം", "BOT": "ബൊളീവിയ സമയം", "WAT": "പടിഞ്ഞാറൻ ആഫ്രിക്ക സ്റ്റാൻഡേർഡ് സമയം", "SRT": "സുരിനെയിം സമയം", "ARST": "അർജന്റീന ഗ്രീഷ്\u200cമകാല സമയം", "PDT": "വടക്കെ അമേരിക്കൻ പസഫിക് ഡേലൈറ്റ് സമയം", "CHADT": "ചാത്തം ഗ്രീഷ്\u200cമകാല സമയം", "SAST": "ദക്ഷിണാഫ്രിക്ക സ്റ്റാൻഡേർഡ് സമയം", "HNCU": "ക്യൂബ സ്റ്റാൻഡേർഡ് സമയം", "MST": "മകൌ സ്റ്റാൻഡേർഡ് സമയം", "MYT": "മലേഷ്യ സമയം", "HAST": "ഹവായ്-അലൂഷ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "WIT": "കിഴക്കൻ ഇന്തോനേഷ്യ സമയം", "LHDT": "ലോർഡ് ഹോവ് ഡേലൈറ്റ് സമയം", "∅∅∅": "ആമസോൺ ഗ്രീഷ്\u200cമകാല സമയം", "CAT": "മധ്യ ആഫ്രിക്ക സമയം", "ACWST": "ഓസ്ട്രേലിയൻ സെൻട്രൽ പടിഞ്ഞാറൻ സ്റ്റാൻഡേർഡ് സമയം", "HNPM": "സെന്റ് പിയറി ആൻഡ് മിക്വലൻ സ്റ്റാൻഡേർഡ് സമയം", "CHAST": "ചാത്തം സ്റ്റാൻഡേർഡ് സമയം", "COST": "കൊളംബിയ ഗ്രീഷ്\u200cമകാല സമയം", "CDT": "വടക്കെ അമേരിക്കൻ സെൻട്രൽ ഡേലൈറ്റ് സമയം", "MESZ": "സെൻട്രൽ യൂറോപ്യൻ ഗ്രീഷ്മകാല സമയം", "JST": "ജപ്പാൻ സ്റ്റാൻഡേർഡ് സമയം", "ChST": "ചമോറോ സ്റ്റാൻഡേർഡ് സമയം", "EAT": "കിഴക്കൻ ആഫ്രിക്ക സമയം", "MDT": "മകൌ വേനൽക്കാല സമയം", "AST": "അറ്റ്\u200cലാന്റിക് സ്റ്റാൻഡേർഡ് സമയം", "PST": "വടക്കെ അമേരിക്കൻ പസഫിക് സ്റ്റാൻഡേർഡ് സമയം", "EST": "വടക്കെ അമേരിക്കൻ കിഴക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "AKDT": "അലാസ്\u200cക ഡേലൈറ്റ് സമയം", "HNT": "ന്യൂഫൗണ്ട്\u200cലാന്റ് സ്റ്റാൻഡേർഡ് സമയം", "HNOG": "പടിഞ്ഞാറൻ ഗ്രീൻലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "WITA": "മധ്യ ഇന്തോനേഷ്യ സമയം", "IST": "ഇന്ത്യൻ സ്റ്റാൻഡേർഡ് സമയം", "WARST": "പടിഞ്ഞാറൻ അർജന്റീന ഗ്രീഷ്\u200cമകാല സമയം", "HECU": "ക്യൂബ ഡേലൈറ്റ് സമയം", "NZST": "ന്യൂസിലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "NZDT": "ന്യൂസിലാൻഡ് ഡേലൈറ്റ് സമയം", "TMST": "തുർക്ക്\u200cമെനിസ്ഥാൻ ഗ്രീഷ്\u200cമകാല സമയം", "HNEG": "കിഴക്കൻ ഗ്രീൻലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "HENOMX": "വടക്കുപടിഞ്ഞാറൻ മെക്സിക്കൻ ഡേലൈറ്റ് സമയം", "EDT": "വടക്കെ അമേരിക്കൻ കിഴക്കൻ ഡേലൈറ്റ് സമയം", "VET": "വെനിസ്വേല സമയം", "HAT": "ന്യൂഫൗണ്ട്\u200cലാന്റ് ഡേലൈറ്റ് സമയം", "HEOG": "പടിഞ്ഞാറൻ ഗ്രീൻലാൻഡ് ഗ്രീഷ്\u200cമകാല സമയം", "HNNOMX": "വടക്കുപടിഞ്ഞാറൻ മെക്\u200cസിക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "ADT": "അറ്റ്\u200cലാന്റിക് ഡേലൈറ്റ് സമയം", "WESZ": "പടിഞ്ഞാറൻ യൂറോപ്യൻ ഗ്രീഷ്\u200cമകാല സമയം", "MEZ": "സെൻട്രൽ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "CLT": "ചിലി സ്റ്റാൻഡേർഡ് സമയം", "CLST": "ചിലി ഗ്രീഷ്\u200cമകാല സമയം", "OESZ": "കിഴക്കൻ യൂറോപ്യൻ ഗ്രീഷ്മകാല സമയം", "WART": "പടിഞ്ഞാറൻ അർജന്റീന സ്റ്റാൻഡേർഡ് സമയം", "WEZ": "പടിഞ്ഞാറൻ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "AEDT": "ഓസ്\u200cട്രേലിയൻ കിഴക്കൻ ഡേലൈറ്റ് സമയം", "HEPM": "സെന്റ് പിയറി ആൻഡ് മിക്വലൻ ഡേലൈറ്റ് സമയം", "JDT": "ജപ്പാൻ ഡേലൈറ്റ് സമയം", "ACST": "ഓസ്ട്രേലിയൻ സെൻട്രൽ സ്റ്റാൻഡേർഡ് സമയം", "GMT": "ഗ്രീൻവിച്ച് മീൻ സമയം", "ART": "അർജന്റീന സ്റ്റാൻഡേർഡ് സമയം", "HKT": "ഹോങ്കോങ്ങ് സ്റ്റാൻഡേർഡ് സമയം", "HKST": "ഹോങ്കോങ്ങ് ഗ്രീഷ്\u200cമകാല സമയം", "AEST": "ഓസ്\u200cട്രേലിയൻ കിഴക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "OEZ": "കിഴക്കൻ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "GYT": "ഗയാന സമയം", "AWST": "ഓസ്\u200cട്രേലിയൻ പടിഞ്ഞാറൻ സ്റ്റാൻഡേർഡ് സമയം", "WAST": "പടിഞ്ഞാറൻ ആഫ്രിക്ക ഗ്രീഷ്\u200cമകാല സമയം", "SGT": "സിംഗപ്പൂർ സ്റ്റാൻഡേർഡ് സമയം", "HEPMX": "മെക്സിക്കൻ പസഫിക് ഡേലൈറ്റ് സമയം", "CST": "വടക്കെ അമേരിക്കൻ സെൻട്രൽ സ്റ്റാൻഡേർഡ് സമയം", "WIB": "പടിഞ്ഞാറൻ ഇന്തോനേഷ്യ സമയം"},
+ timezones: map[string]string{"WAT": "പടിഞ്ഞാറൻ ആഫ്രിക്ക സ്റ്റാൻഡേർഡ് സമയം", "ACST": "ഓസ്ട്രേലിയൻ സെൻട്രൽ സ്റ്റാൻഡേർഡ് സമയം", "COT": "കൊളംബിയ സ്റ്റാൻഡേർഡ് സമയം", "AST": "അറ്റ്\u200cലാന്റിക് സ്റ്റാൻഡേർഡ് സമയം", "TMST": "തുർക്ക്\u200cമെനിസ്ഥാൻ ഗ്രീഷ്\u200cമകാല സമയം", "HNOG": "പടിഞ്ഞാറൻ ഗ്രീൻലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "HKST": "ഹോങ്കോങ്ങ് ഗ്രീഷ്\u200cമകാല സമയം", "SAST": "ദക്ഷിണാഫ്രിക്ക സ്റ്റാൻഡേർഡ് സമയം", "HEPMX": "മെക്സിക്കൻ പസഫിക് ഡേലൈറ്റ് സമയം", "WIT": "കിഴക്കൻ ഇന്തോനേഷ്യ സമയം", "ECT": "ഇക്വഡോർ സമയം", "PST": "വടക്കെ അമേരിക്കൻ പസഫിക് സ്റ്റാൻഡേർഡ് സമയം", "CLT": "ചിലി സ്റ്റാൻഡേർഡ് സമയം", "GMT": "ഗ്രീൻവിച്ച് മീൻ സമയം", "HEEG": "കിഴക്കൻ ഗ്രീൻലാൻഡ് ഗ്രീഷ്\u200cമകാല സമയം", "HNPMX": "മെക്\u200cസിക്കൻ പസഫിക് സ്റ്റാൻഡേർഡ് സമയം", "HEOG": "പടിഞ്ഞാറൻ ഗ്രീൻലാൻഡ് ഗ്രീഷ്\u200cമകാല സമയം", "ARST": "അർജന്റീന ഗ്രീഷ്\u200cമകാല സമയം", "HEPM": "സെന്റ് പിയറി ആൻഡ് മിക്വലൻ ഡേലൈറ്റ് സമയം", "CHAST": "ചാത്തം സ്റ്റാൻഡേർഡ് സമയം", "HAST": "ഹവായ്-അലൂഷ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "MYT": "മലേഷ്യ സമയം", "CLST": "ചിലി ഗ്രീഷ്\u200cമകാല സമയം", "ACWDT": "ഓസ്ട്രേലിയൻ സെൻട്രൽ പടിഞ്ഞാറൻ ഡേലൈറ്റ് സമയം", "OEZ": "കിഴക്കൻ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "AEST": "ഓസ്\u200cട്രേലിയൻ കിഴക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "AWST": "ഓസ്\u200cട്രേലിയൻ പടിഞ്ഞാറൻ സ്റ്റാൻഡേർഡ് സമയം", "ACWST": "ഓസ്ട്രേലിയൻ സെൻട്രൽ പടിഞ്ഞാറൻ സ്റ്റാൻഡേർഡ് സമയം", "WEZ": "പടിഞ്ഞാറൻ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "WAST": "പടിഞ്ഞാറൻ ആഫ്രിക്ക ഗ്രീഷ്\u200cമകാല സമയം", "HAT": "ന്യൂഫൗണ്ട്\u200cലാന്റ് ഡേലൈറ്റ് സമയം", "AKDT": "അലാസ്\u200cക ഡേലൈറ്റ് സമയം", "SRT": "സുരിനെയിം സമയം", "MEZ": "സെൻട്രൽ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "WARST": "പടിഞ്ഞാറൻ അർജന്റീന ഗ്രീഷ്\u200cമകാല സമയം", "WESZ": "പടിഞ്ഞാറൻ യൂറോപ്യൻ ഗ്രീഷ്\u200cമകാല സമയം", "HNNOMX": "വടക്കുപടിഞ്ഞാറൻ മെക്\u200cസിക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "HENOMX": "വടക്കുപടിഞ്ഞാറൻ മെക്സിക്കൻ ഡേലൈറ്റ് സമയം", "AKST": "അലാസ്ക സ്റ്റാൻഡേർഡ് സമയം", "CST": "വടക്കെ അമേരിക്കൻ സെൻട്രൽ സ്റ്റാൻഡേർഡ് സമയം", "SGT": "സിംഗപ്പൂർ സ്റ്റാൻഡേർഡ് സമയം", "TMT": "തുർക്ക്\u200cമെനിസ്ഥാൻ സ്റ്റാൻഡേർഡ് സമയം", "ART": "അർജന്റീന സ്റ്റാൻഡേർഡ് സമയം", "JDT": "ജപ്പാൻ ഡേലൈറ്റ് സമയം", "EDT": "വടക്കെ അമേരിക്കൻ കിഴക്കൻ ഡേലൈറ്റ് സമയം", "MDT": "വടക്കെ അമേരിക്കൻ മൗണ്ടൻ ഡേലൈറ്റ് സമയം", "GFT": "ഫ്രഞ്ച് ഗയാന സമയം", "LHST": "ലോർഡ് ഹോവ് സ്റ്റാൻഡേർഡ് സമയം", "EAT": "കിഴക്കൻ ആഫ്രിക്ക സമയം", "HECU": "ക്യൂബ ഡേലൈറ്റ് സമയം", "CHADT": "ചാത്തം ഗ്രീഷ്\u200cമകാല സമയം", "OESZ": "കിഴക്കൻ യൂറോപ്യൻ ഗ്രീഷ്മകാല സമയം", "BT": "ഭൂട്ടാൻ സമയം", "MST": "വടക്കെ അമേരിക്കൻ മൗണ്ടൻ സ്റ്റാൻഡേർഡ് സമയം", "LHDT": "ലോർഡ് ഹോവ് ഡേലൈറ്റ് സമയം", "PDT": "വടക്കെ അമേരിക്കൻ പസഫിക് ഡേലൈറ്റ് സമയം", "NZST": "ന്യൂസിലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "JST": "ജപ്പാൻ സ്റ്റാൻഡേർഡ് സമയം", "ADT": "അറ്റ്\u200cലാന്റിക് ഡേലൈറ്റ് സമയം", "HNEG": "കിഴക്കൻ ഗ്രീൻലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "WITA": "മധ്യ ഇന്തോനേഷ്യ സമയം", "AEDT": "ഓസ്\u200cട്രേലിയൻ കിഴക്കൻ ഡേലൈറ്റ് സമയം", "HNPM": "സെന്റ് പിയറി ആൻഡ് മിക്വലൻ സ്റ്റാൻഡേർഡ് സമയം", "GYT": "ഗയാന സമയം", "HNCU": "ക്യൂബ സ്റ്റാൻഡേർഡ് സമയം", "WIB": "പടിഞ്ഞാറൻ ഇന്തോനേഷ്യ സമയം", "HKT": "ഹോങ്കോങ്ങ് സ്റ്റാൻഡേർഡ് സമയം", "ACDT": "ഓസ്ട്രേലിയൻ സെൻട്രൽ ഡേലൈറ്റ് സമയം", "ChST": "ചമോറോ സ്റ്റാൻഡേർഡ് സമയം", "BOT": "ബൊളീവിയ സമയം", "NZDT": "ന്യൂസിലാൻഡ് ഡേലൈറ്റ് സമയം", "CAT": "മധ്യ ആഫ്രിക്ക സമയം", "IST": "ഇന്ത്യൻ സ്റ്റാൻഡേർഡ് സമയം", "EST": "വടക്കെ അമേരിക്കൻ കിഴക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "UYST": "ഉറുഗ്വേ ഗ്രീഷ്\u200cമകാല സമയം", "CDT": "വടക്കെ അമേരിക്കൻ സെൻട്രൽ ഡേലൈറ്റ് സമയം", "VET": "വെനിസ്വേല സമയം", "COST": "കൊളംബിയ ഗ്രീഷ്\u200cമകാല സമയം", "HNT": "ന്യൂഫൗണ്ട്\u200cലാന്റ് സ്റ്റാൻഡേർഡ് സമയം", "AWDT": "ഓസ്\u200cട്രേലിയൻ പടിഞ്ഞാറൻ ഡേലൈറ്റ് സമയം", "HADT": "ഹവായ്-അലൂഷ്യൻ ഡേലൈറ്റ് സമയം", "WART": "പടിഞ്ഞാറൻ അർജന്റീന സ്റ്റാൻഡേർഡ് സമയം", "∅∅∅": "എയ്ക്കർ വേനൽക്കാല സമയം", "UYT": "ഉറുഗ്വേ സ്റ്റാൻഡേർഡ് സമയം", "MESZ": "സെൻട്രൽ യൂറോപ്യൻ ഗ്രീഷ്മകാല സമയം"},
}
}
diff --git a/mn/mn.go b/mn/mn.go
index 90162413..9bfa5efc 100644
--- a/mn/mn.go
+++ b/mn/mn.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"м.э.ө", "м.э."},
erasNarrow: []string{"МЭӨ", "МЭ"},
erasWide: []string{"манай эриний өмнөх", "манай эриний"},
- timezones: map[string]string{"HAT": "Нью-Фаундлендын зуны цаг", "HNCU": "Кубын стандарт цаг", "EDT": "Зүүн эргийн зуны цаг", "UYT": "Уругвайн стандарт цаг", "AKST": "Аляскийн стандарт цаг", "WIB": "Баруун Индонезийн цаг", "SRT": "Суринамын цаг", "HKST": "Хонг Конгийн зуны цаг", "CLT": "Чилийн стандарт цаг", "CLST": "Чилийн зуны цаг", "HEPMX": "Мексикийн номхон далайн зуны цаг", "AST": "Атлантын стандарт цаг", "HEOG": "Баруун Гринландын зуны цаг", "AEDT": "Австралийн зүүн эргийн зуны цаг", "ACDT": "Төв Австралийн зуны цаг", "OESZ": "Зүүн Европын зуны цаг", "WART": "Баруун Аргентины стандарт цаг", "HNPMX": "Мексикийн номхон далайн стандарт цаг", "MYT": "Малайзын цаг", "HEEG": "Зүүн Гринландын зуны цаг", "ART": "Аргентины стандарт цаг", "ACWST": "Австралийн төв баруун эргийн стандарт цаг", "HEPM": "Сент-Пьер ба Микелоны зуны цаг", "ADT": "Атлантын зуны цаг", "PST": "Номхон далайн стандарт цаг", "CHADT": "Чатемын зуны цаг", "LHDT": "Лорд Хоугийн зуны цаг", "IST": "Энэтхэгийн цаг", "HNEG": "Зүүн Гринландын стандарт цаг", "HNT": "Нью-Фаундлендын стандарт цаг", "NZST": "Шинэ Зеландын стандарт цаг", "GFT": "Францын Гияанагийн цаг", "BOT": "Боливийн цаг", "WAST": "Баруун Африкийн зуны цаг", "VET": "Венесуэлийн цаг", "BT": "Бутаны цаг", "NZDT": "Шинэ Зеландын зуны цаг", "∅∅∅": "Амазоны зуны цаг", "COST": "Колумбын зуны цаг", "MDT": "MDT", "JST": "Японы стандарт цаг", "ACST": "Төв Австралийн стандарт цаг", "OEZ": "Зүүн Европын стандарт цаг", "WAT": "Баруун Африкийн стандарт цаг", "CDT": "Төв зуны цаг", "HADT": "Хавай-Алеутын зуны цаг", "AWST": "Австралийн баруун эргийн стандарт цаг", "AWDT": "Австралийн баруун эргийн зуны цаг", "HECU": "Кубын зуны цаг", "GYT": "Гуяанагийн цаг", "CHAST": "Чатемын стандарт цаг", "JDT": "Японы зуны цаг", "ECT": "Эквадорын цаг", "WARST": "Баруун Аргентины зуны цаг", "HENOMX": "Баруун хойд Мексикийн зуны цаг", "SGT": "Сингапурын цаг", "ARST": "Аргентины зуны цаг", "ACWDT": "Австралийн төв баруун эргийн зуны цаг", "HAST": "Хавай-Алеутын стандарт цаг", "WIT": "Зүүн Индонезийн цаг", "PDT": "Номхон далайн зуны цаг", "WEZ": "Баруун Европын стандарт цаг", "AEST": "Австралийн зүүн эргийн стандарт цаг", "HNPM": "Сент-Пьерре ба Микелоны стандарт цаг", "MESZ": "Төв Европын зуны цаг", "ChST": "Чаморрогийн цаг", "EAT": "Зүүн Африкийн цаг", "GMT": "Гринвичийн үндсэн цаг", "MEZ": "Төв Европын стандарт цаг", "CAT": "Төв Африкийн цаг", "UYST": "Уругвайн зуны цаг", "HNOG": "Баруун Гринландын стандарт цаг", "WESZ": "Баруун Европын зуны цаг", "HKT": "Хонг Конгийн стандарт цаг", "LHST": "Лорд Хоугийн стандарт цаг", "SAST": "Өмнөд Африкийн стандарт цаг", "TMT": "Туркменистаны стандарт цаг", "TMST": "Туркменистаны зуны цаг", "EST": "Зүүн эргийн стандарт цаг", "AKDT": "Аляскийн зуны цаг", "COT": "Колумбын стандарт цаг", "HNNOMX": "Баруун хойд Мексикийн стандарт цаг", "MST": "MST", "CST": "Төв стандарт цаг", "WITA": "Төв Индонезийн цаг"},
+ timezones: map[string]string{"WIT": "Зүүн Индонезийн цаг", "AWDT": "Австралийн баруун эргийн зуны цаг", "SGT": "Сингапурын цаг", "NZDT": "Шинэ Зеландын зуны цаг", "AEST": "Австралийн зүүн эргийн стандарт цаг", "WIB": "Баруун Индонезийн цаг", "CDT": "Төв зуны цаг", "HEOG": "Баруун Гринландын зуны цаг", "EST": "Зүүн эргийн стандарт цаг", "HAT": "Нью-Фаундлендын зуны цаг", "HEPM": "Сент-Пьер ба Микелоны зуны цаг", "UYT": "Уругвайн стандарт цаг", "HECU": "Кубын зуны цаг", "PST": "Номхон далайн стандарт цаг", "PDT": "Номхон далайн зуны цаг", "ACDT": "Төв Австралийн зуны цаг", "AKST": "Аляскийн стандарт цаг", "HNPM": "Сент-Пьерре ба Микелоны стандарт цаг", "HEPMX": "Мексикийн номхон далайн зуны цаг", "SAST": "Өмнөд Африкийн стандарт цаг", "LHST": "Лорд Хоугийн стандарт цаг", "HAST": "Хавай-Алеутын стандарт цаг", "ECT": "Эквадорын цаг", "WESZ": "Баруун Европын зуны цаг", "OESZ": "Зүүн Европын зуны цаг", "MST": "MST", "WAT": "Баруун Африкийн стандарт цаг", "WAST": "Баруун Африкийн зуны цаг", "CHAST": "Чатемын стандарт цаг", "EAT": "Зүүн Африкийн цаг", "HADT": "Хавай-Алеутын зуны цаг", "ACST": "Төв Австралийн стандарт цаг", "HEEG": "Зүүн Гринландын зуны цаг", "HNT": "Нью-Фаундлендын стандарт цаг", "HNCU": "Кубын стандарт цаг", "MEZ": "Төв Европын стандарт цаг", "HNOG": "Баруун Гринландын стандарт цаг", "OEZ": "Зүүн Европын стандарт цаг", "HNNOMX": "Баруун хойд Мексикийн стандарт цаг", "COST": "Колумбын зуны цаг", "WITA": "Төв Индонезийн цаг", "UYST": "Уругвайн зуны цаг", "JST": "Японы стандарт цаг", "HKST": "Хонг Конгийн зуны цаг", "ChST": "Чаморрогийн цаг", "LHDT": "Лорд Хоугийн зуны цаг", "WARST": "Баруун Аргентины зуны цаг", "BOT": "Боливийн цаг", "NZST": "Шинэ Зеландын стандарт цаг", "VET": "Венесуэлийн цаг", "AST": "Атлантын стандарт цаг", "GFT": "Францын Гияанагийн цаг", "AWST": "Австралийн баруун эргийн стандарт цаг", "MYT": "Малайзын цаг", "TMST": "Туркменистаны зуны цаг", "MDT": "MDT", "HENOMX": "Баруун хойд Мексикийн зуны цаг", "HNPMX": "Мексикийн номхон далайн стандарт цаг", "∅∅∅": "Бразилийн зуны цаг", "GMT": "Гринвичийн үндсэн цаг", "ARST": "Аргентины зуны цаг", "AEDT": "Австралийн зүүн эргийн зуны цаг", "ACWST": "Австралийн төв баруун эргийн стандарт цаг", "ACWDT": "Австралийн төв баруун эргийн зуны цаг", "CLT": "Чилийн стандарт цаг", "ART": "Аргентины стандарт цаг", "HNEG": "Зүүн Гринландын стандарт цаг", "CST": "Төв стандарт цаг", "CAT": "Төв Африкийн цаг", "IST": "Энэтхэгийн цаг", "JDT": "Японы зуны цаг", "EDT": "Зүүн эргийн зуны цаг", "COT": "Колумбын стандарт цаг", "WEZ": "Баруун Европын стандарт цаг", "CLST": "Чилийн зуны цаг", "TMT": "Туркменистаны стандарт цаг", "BT": "Бутаны цаг", "SRT": "Суринамын цаг", "CHADT": "Чатемын зуны цаг", "MESZ": "Төв Европын зуны цаг", "WART": "Баруун Аргентины стандарт цаг", "ADT": "Атлантын зуны цаг", "HKT": "Хонг Конгийн стандарт цаг", "AKDT": "Аляскийн зуны цаг", "GYT": "Гуяанагийн цаг"},
}
}
diff --git a/mn_MN/mn_MN.go b/mn_MN/mn_MN.go
index 5f9cf17a..407039f1 100644
--- a/mn_MN/mn_MN.go
+++ b/mn_MN/mn_MN.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"м.э.ө", "м.э."},
erasNarrow: []string{"МЭӨ", "МЭ"},
erasWide: []string{"манай эриний өмнөх", "манай эриний"},
- timezones: map[string]string{"HNEG": "Зүүн Гринландын стандарт цаг", "TMST": "Туркменистаны зуны цаг", "MDT": "MDT", "ARST": "Аргентины зуны цаг", "HKT": "Хонг Конгийн стандарт цаг", "LHDT": "Лорд Хоугийн зуны цаг", "JST": "Японы стандарт цаг", "OESZ": "Зүүн Европын зуны цаг", "HECU": "Кубын зуны цаг", "UYST": "Уругвайн зуны цаг", "WEZ": "Баруун Европын стандарт цаг", "AWST": "Австралийн баруун эргийн стандарт цаг", "WART": "Баруун Аргентины стандарт цаг", "HEPMX": "Мексикийн номхон далайн зуны цаг", "AKDT": "Аляскийн зуны цаг", "ADT": "Атлантын зуны цаг", "MYT": "Малайзын цаг", "GFT": "Францын Гияанагийн цаг", "ECT": "Эквадорын цаг", "TMT": "Туркменистаны стандарт цаг", "ChST": "Чаморрогийн цаг", "HKST": "Хонг Конгийн зуны цаг", "WITA": "Төв Индонезийн цаг", "CHADT": "Чатемын зуны цаг", "MESZ": "Төв Европын зуны цаг", "IST": "Энэтхэгийн цаг", "BOT": "Боливийн цаг", "ACST": "Төв Австралийн стандарт цаг", "COST": "Колумбын зуны цаг", "GYT": "Гуяанагийн цаг", "HNPM": "Сент-Пьерре ба Микелоны стандарт цаг", "NZST": "Шинэ Зеландын стандарт цаг", "PDT": "Номхон далайн зуны цаг", "AWDT": "Австралийн баруун эргийн зуны цаг", "HEPM": "Сент-Пьер ба Микелоны зуны цаг", "OEZ": "Зүүн Европын стандарт цаг", "HNCU": "Кубын стандарт цаг", "EST": "Зүүн эргийн стандарт цаг", "HAST": "Хавай-Алеутын стандарт цаг", "ACWST": "Австралийн төв баруун эргийн стандарт цаг", "LHST": "Лорд Хоугийн стандарт цаг", "HNOG": "Баруун Гринландын стандарт цаг", "CHAST": "Чатемын стандарт цаг", "CLST": "Чилийн зуны цаг", "MST": "MST", "WIB": "Баруун Индонезийн цаг", "SRT": "Суринамын цаг", "BT": "Бутаны цаг", "WESZ": "Баруун Европын зуны цаг", "CAT": "Төв Африкийн цаг", "JDT": "Японы зуны цаг", "HEEG": "Зүүн Гринландын зуны цаг", "COT": "Колумбын стандарт цаг", "WARST": "Баруун Аргентины зуны цаг", "AKST": "Аляскийн стандарт цаг", "ART": "Аргентины стандарт цаг", "AEST": "Австралийн зүүн эргийн стандарт цаг", "SAST": "Өмнөд Африкийн стандарт цаг", "CLT": "Чилийн стандарт цаг", "VET": "Венесуэлийн цаг", "HAT": "Нью-Фаундлендын зуны цаг", "PST": "Номхон далайн стандарт цаг", "ACDT": "Төв Австралийн зуны цаг", "WAST": "Баруун Африкийн зуны цаг", "∅∅∅": "Перугийн зуны цаг", "CDT": "Төв зуны цаг", "UYT": "Уругвайн стандарт цаг", "AEDT": "Австралийн зүүн эргийн зуны цаг", "NZDT": "Шинэ Зеландын зуны цаг", "GMT": "Гринвичийн үндсэн цаг", "EDT": "Зүүн эргийн зуны цаг", "WIT": "Зүүн Индонезийн цаг", "SGT": "Сингапурын цаг", "MEZ": "Төв Европын стандарт цаг", "WAT": "Баруун Африкийн стандарт цаг", "HENOMX": "Баруун хойд Мексикийн зуны цаг", "AST": "Атлантын стандарт цаг", "ACWDT": "Австралийн төв баруун эргийн зуны цаг", "HEOG": "Баруун Гринландын зуны цаг", "HNT": "Нью-Фаундлендын стандарт цаг", "EAT": "Зүүн Африкийн цаг", "HNNOMX": "Баруун хойд Мексикийн стандарт цаг", "HNPMX": "Мексикийн номхон далайн стандарт цаг", "CST": "Төв стандарт цаг", "HADT": "Хавай-Алеутын зуны цаг"},
+ timezones: map[string]string{"GMT": "Гринвичийн үндсэн цаг", "MST": "Уулын стандарт цаг", "MDT": "Уулын зуны цаг", "NZST": "Шинэ Зеландын стандарт цаг", "WIB": "Баруун Индонезийн цаг", "EAT": "Зүүн Африкийн цаг", "MESZ": "Төв Европын зуны цаг", "WESZ": "Баруун Европын зуны цаг", "∅∅∅": "∅∅∅", "UYST": "Уругвайн зуны цаг", "GYT": "Гуяанагийн цаг", "CHAST": "Чатемын стандарт цаг", "MYT": "Малайзын цаг", "JST": "Японы стандарт цаг", "OEZ": "Зүүн Европын стандарт цаг", "GFT": "Францын Гияанагийн цаг", "AKDT": "Аляскийн зуны цаг", "CDT": "Төв зуны цаг", "HEOG": "Баруун Гринландын зуны цаг", "WEZ": "Баруун Европын стандарт цаг", "WARST": "Баруун Аргентины зуны цаг", "CLST": "Чилийн зуны цаг", "CST": "Төв стандарт цаг", "NZDT": "Шинэ Зеландын зуны цаг", "WITA": "Төв Индонезийн цаг", "ChST": "Чаморрогийн цаг", "HECU": "Кубын зуны цаг", "SGT": "Сингапурын цаг", "ART": "Аргентины стандарт цаг", "WAT": "Баруун Африкийн стандарт цаг", "COST": "Колумбын зуны цаг", "HNNOMX": "Баруун хойд Мексикийн стандарт цаг", "HNPM": "Сент-Пьерре ба Микелоны стандарт цаг", "HEPM": "Сент-Пьер ба Микелоны зуны цаг", "IST": "Энэтхэгийн цаг", "LHDT": "Лорд Хоугийн зуны цаг", "HNPMX": "Мексикийн номхон далайн стандарт цаг", "HAST": "Хавай-Алеутын стандарт цаг", "ECT": "Эквадорын цаг", "JDT": "Японы зуны цаг", "EDT": "Зүүн эргийн зуны цаг", "BT": "Бутаны цаг", "AKST": "Аляскийн стандарт цаг", "CLT": "Чилийн стандарт цаг", "HKST": "Хонг Конгийн зуны цаг", "PST": "Номхон далайн стандарт цаг", "ADT": "Атлантын зуны цаг", "TMST": "Туркменистаны зуны цаг", "SRT": "Суринамын цаг", "AWDT": "Австралийн баруун эргийн зуны цаг", "VET": "Венесуэлийн цаг", "CAT": "Төв Африкийн цаг", "ACST": "Төв Австралийн стандарт цаг", "AEST": "Австралийн зүүн эргийн стандарт цаг", "WIT": "Зүүн Индонезийн цаг", "HADT": "Хавай-Алеутын зуны цаг", "HNOG": "Баруун Гринландын стандарт цаг", "TMT": "Туркменистаны стандарт цаг", "ARST": "Аргентины зуны цаг", "EST": "Зүүн эргийн стандарт цаг", "HAT": "Нью-Фаундлендын зуны цаг", "HNCU": "Кубын стандарт цаг", "AEDT": "Австралийн зүүн эргийн зуны цаг", "UYT": "Уругвайн стандарт цаг", "HEPMX": "Мексикийн номхон далайн зуны цаг", "AWST": "Австралийн баруун эргийн стандарт цаг", "BOT": "Боливийн цаг", "HKT": "Хонг Конгийн стандарт цаг", "HENOMX": "Баруун хойд Мексикийн зуны цаг", "HEEG": "Зүүн Гринландын зуны цаг", "OESZ": "Зүүн Европын зуны цаг", "WART": "Баруун Аргентины стандарт цаг", "AST": "Атлантын стандарт цаг", "CHADT": "Чатемын зуны цаг", "PDT": "Номхон далайн зуны цаг", "ACWDT": "Австралийн төв баруун эргийн зуны цаг", "MEZ": "Төв Европын стандарт цаг", "COT": "Колумбын стандарт цаг", "HNT": "Нью-Фаундлендын стандарт цаг", "ACWST": "Австралийн төв баруун эргийн стандарт цаг", "LHST": "Лорд Хоугийн стандарт цаг", "SAST": "Өмнөд Африкийн стандарт цаг", "WAST": "Баруун Африкийн зуны цаг", "ACDT": "Төв Австралийн зуны цаг", "HNEG": "Зүүн Гринландын стандарт цаг"},
}
}
diff --git a/mr/mr.go b/mr/mr.go
index cd4b138f..94e44578 100644
--- a/mr/mr.go
+++ b/mr/mr.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"इ. स. पू.", "इ. स."},
erasNarrow: []string{"", ""},
erasWide: []string{"ईसवीसनपूर्व", "ईसवीसन"},
- timezones: map[string]string{"EAT": "पूर्व आफ्रिका वेळ", "EST": "पौर्वात्य प्रमाण वेळ", "ART": "अर्जेंटिना प्रमाण वेळ", "AKST": "अलास्का प्रमाण वेळ", "WESZ": "पश्चिम युरोपियन उन्हाळी वेळ", "GFT": "फ्रेंच गयाना वेळ", "TMT": "तुर्कमेनिस्तान प्रमाण वेळ", "WAT": "पश्चिम आफ्रिका प्रमाण वेळ", "ECT": "इक्वेडोर वेळ", "COST": "कोलंबिया उन्हाळी वेळ", "EDT": "पौर्वात्य सूर्यप्रकाश वेळ", "HAT": "न्यू फाउंडलंड सूर्यप्रकाश वेळ", "WITA": "मध्\u200dय इंडोनेशिया वेळ", "LHDT": "लॉर्ड होवे सूर्यप्रकाश वेळ", "WARST": "पश्चिमी अर्जेंटिना उन्हाळी वेळ", "HNNOMX": "वायव्य मेक्सिको प्रमाण वेळ", "MESZ": "मध्\u200dय युरोपियन उन्हाळी वेळ", "WART": "पश्चिमी अर्जेंटिना प्रमाण वेळ", "ARST": "अर्जेंटिना उन्हाळी वेळ", "AEST": "ऑस्ट्रेलियन पूर्व प्रमाण वेळ", "JST": "जपान प्रमाण वेळ", "ChST": "चामोरो प्रमाण वेळ", "ACDT": "ऑस्ट्रेलियन मध्य सूर्यप्रकाश वेळ", "MST": "मकाऊ प्रमाणवेळ", "AKDT": "अलास्का सूर्यप्रकाश वेळ", "PDT": "पॅसिफिक सूर्यप्रकाश वेळ", "HEOG": "पश्चिम ग्रीनलँड उन्हाळी वेळ", "HNPM": "सेंट पियर आणि मिक्वेलोन प्रमाण वेळ", "MEZ": "मध्\u200dय युरोपियन प्रमाण वेळ", "HEEG": "पूर्व ग्रीनलँड उन्हाळी वेळ", "OEZ": "पूर्व युरोपियन प्रमाण वेळ", "COT": "कोलंबिया प्रमाण वेळ", "CDT": "केंद्रीय सूर्यप्रकाश वेळ", "ACWDT": "ऑस्ट्रेलियन मध्य-पश्चिम सूर्यप्रकाश वेळ", "CLST": "चिली उन्हाळी वेळ", "WAST": "पश्चिम आफ्रिका उन्हाळी वेळ", "HNPMX": "मेक्सिको पॅसिफिक प्रमाण वेळ", "BT": "भूतान वेळ", "HEPMX": "मेक्सिको पॅसिफिक सूर्यप्रकाश वेळ", "GYT": "गयाना वेळ", "SRT": "सुरिनाम वेळ", "PST": "पॅसिफिक प्रमाण वेळ", "CHADT": "चॅथम सूर्यप्रकाश वेळ", "∅∅∅": "अ\u200dॅमेझॉन उन्हाळी वेळ", "WEZ": "पश्चिम युरोपियन प्रमाण वेळ", "HEPM": "सेंट पियर आणि मिक्वेलोन सूर्यप्रकाश वेळ", "NZDT": "न्यूझीलंड सूर्यप्रकाश वेळ", "JDT": "जपान सूर्यप्रकाश वेळ", "MDT": "मकाऊ ग्रीष्मकालीन वेळ", "UYST": "उरुग्वे उन्हाळी वेळ", "HAST": "हवाई-अलूशन प्रमाण वेळ", "WIT": "पौर्वात्य इंडोनेशिया वेळ", "CAT": "मध्\u200dय आफ्रिका वेळ", "GMT": "ग्रीनिच प्रमाण वेळ", "CST": "केंद्रीय प्रमाण वेळ", "HADT": "हवाई-अलूशन सूर्यप्रकाश वेळ", "AWST": "ऑस्ट्रेलियन पश्चिम प्रमाण वेळ", "LHST": "लॉर्ड होवे प्रमाण वेळ", "TMST": "तुर्कमेनिस्तान उन्हाळी वेळ", "AST": "अटलांटिक प्रमाण वेळ", "ADT": "अटलांटिक सूर्यप्रकाश वेळ", "MYT": "मलेशिया वेळ", "UYT": "उरुग्वे प्रमाण वेळ", "SAST": "दक्षिण आफ्रिका प्रमाण वेळ", "WIB": "पश्चिमी इंडोनेशिया वेळ", "VET": "व्हेनेझुएला वेळ", "ACWST": "ऑस्ट्रेलियन मध्य-पश्चिम प्रमाण वेळ", "HNOG": "पश्चिम ग्रीनलँड प्रमाण वेळ", "HKT": "हाँग काँग प्रमाण वेळ", "SGT": "सिंगापूर प्रमाण वेळ", "HNCU": "क्यूबा प्रमाण वेळ", "NZST": "न्यूझीलंड प्रमाण वेळ", "CHAST": "चॅथम प्रमाण वेळ", "IST": "भारतीय प्रमाण वेळ", "BOT": "बोलिव्हिया वेळ", "HNEG": "पूर्व ग्रीनलँड प्रमाण वेळ", "ACST": "ऑस्ट्रेलियन मध्य प्रमाण वेळ", "AEDT": "ऑस्ट्रेलियन पूर्व सूर्यप्रकाश वेळ", "HENOMX": "वायव्य मेक्सिको सूर्यप्रकाश वेळ", "HECU": "क्यूबा सूर्यप्रकाश वेळ", "HNT": "न्यू फाउंडलंड प्रमाण वेळ", "AWDT": "ऑस्ट्रेलियन पश्चिम सूर्यप्रकाश वेळ", "HKST": "हाँग काँग उन्हाळी वेळ", "CLT": "चिली प्रमाण वेळ", "OESZ": "पूर्व युरोपियन उन्हाळी वेळ"},
+ timezones: map[string]string{"ARST": "अर्जेंटिना उन्हाळी वेळ", "WAST": "पश्चिम आफ्रिका उन्हाळी वेळ", "AST": "अटलांटिक प्रमाण वेळ", "ART": "अर्जेंटिना प्रमाण वेळ", "WITA": "मध्\u200dय इंडोनेशिया वेळ", "LHDT": "लॉर्ड होवे सूर्यप्रकाश वेळ", "HAT": "न्यू फाउंडलंड सूर्यप्रकाश वेळ", "HNEG": "पूर्व ग्रीनलँड प्रमाण वेळ", "MYT": "मलेशिया वेळ", "UYST": "उरुग्वे उन्हाळी वेळ", "HNPM": "सेंट पियर आणि मिक्वेलोन प्रमाण वेळ", "HEPMX": "मेक्सिको पॅसिफिक सूर्यप्रकाश वेळ", "EAT": "पूर्व आफ्रिका वेळ", "BOT": "बोलिव्हिया वेळ", "JST": "जपान प्रमाण वेळ", "OESZ": "पूर्व युरोपियन उन्हाळी वेळ", "HKT": "हाँग काँग प्रमाण वेळ", "ACDT": "ऑस्ट्रेलियन मध्य सूर्यप्रकाश वेळ", "GFT": "फ्रेंच गयाना वेळ", "TMT": "तुर्कमेनिस्तान प्रमाण वेळ", "EST": "पौर्वात्य प्रमाण वेळ", "HNT": "न्यू फाउंडलंड प्रमाण वेळ", "PDT": "पॅसिफिक सूर्यप्रकाश वेळ", "HNNOMX": "वायव्य मेक्सिको प्रमाण वेळ", "HENOMX": "वायव्य मेक्सिको सूर्यप्रकाश वेळ", "HKST": "हाँग काँग उन्हाळी वेळ", "HEEG": "पूर्व ग्रीनलँड उन्हाळी वेळ", "HNPMX": "मेक्सिको पॅसिफिक प्रमाण वेळ", "CAT": "मध्\u200dय आफ्रिका वेळ", "NZST": "न्यूझीलंड प्रमाण वेळ", "HNOG": "पश्चिम ग्रीनलँड प्रमाण वेळ", "MDT": "मकाऊ ग्रीष्मकालीन वेळ", "WESZ": "पश्चिम युरोपियन उन्हाळी वेळ", "GMT": "ग्रीनिच प्रमाण वेळ", "SGT": "सिंगापूर प्रमाण वेळ", "HADT": "हवाई-अलूशन सूर्यप्रकाश वेळ", "CLT": "चिली प्रमाण वेळ", "OEZ": "पूर्व युरोपियन प्रमाण वेळ", "ChST": "चामोरो प्रमाण वेळ", "HNCU": "क्यूबा प्रमाण वेळ", "HECU": "क्यूबा सूर्यप्रकाश वेळ", "IST": "भारतीय प्रमाण वेळ", "MEZ": "मध्\u200dय युरोपियन प्रमाण वेळ", "AEST": "ऑस्ट्रेलियन पूर्व प्रमाण वेळ", "∅∅∅": "ऐकर ग्रीष्म वेळ", "AKST": "अलास्का प्रमाण वेळ", "AEDT": "ऑस्ट्रेलियन पूर्व सूर्यप्रकाश वेळ", "HEPM": "सेंट पियर आणि मिक्वेलोन सूर्यप्रकाश वेळ", "SRT": "सुरिनाम वेळ", "ACWDT": "ऑस्ट्रेलियन मध्य-पश्चिम सूर्यप्रकाश वेळ", "MESZ": "मध्\u200dय युरोपियन उन्हाळी वेळ", "HEOG": "पश्चिम ग्रीनलँड उन्हाळी वेळ", "AKDT": "अलास्का सूर्यप्रकाश वेळ", "SAST": "दक्षिण आफ्रिका प्रमाण वेळ", "CDT": "केंद्रीय सूर्यप्रकाश वेळ", "WIT": "पौर्वात्य इंडोनेशिया वेळ", "AWST": "ऑस्ट्रेलियन पश्चिम प्रमाण वेळ", "COT": "कोलंबिया प्रमाण वेळ", "BT": "भूतान वेळ", "CST": "केंद्रीय प्रमाण वेळ", "ADT": "अटलांटिक सूर्यप्रकाश वेळ", "COST": "कोलंबिया उन्हाळी वेळ", "GYT": "गयाना वेळ", "AWDT": "ऑस्ट्रेलियन पश्चिम सूर्यप्रकाश वेळ", "HAST": "हवाई-अलूशन प्रमाण वेळ", "CLST": "चिली उन्हाळी वेळ", "WARST": "पश्चिमी अर्जेंटिना उन्हाळी वेळ", "WAT": "पश्चिम आफ्रिका प्रमाण वेळ", "CHAST": "चॅथम प्रमाण वेळ", "ACWST": "ऑस्ट्रेलियन मध्य-पश्चिम प्रमाण वेळ", "JDT": "जपान सूर्यप्रकाश वेळ", "TMST": "तुर्कमेनिस्तान उन्हाळी वेळ", "UYT": "उरुग्वे प्रमाण वेळ", "WIB": "पश्चिमी इंडोनेशिया वेळ", "NZDT": "न्यूझीलंड सूर्यप्रकाश वेळ", "WEZ": "पश्चिम युरोपियन प्रमाण वेळ", "WART": "पश्चिमी अर्जेंटिना प्रमाण वेळ", "ACST": "ऑस्ट्रेलियन मध्य प्रमाण वेळ", "PST": "पॅसिफिक प्रमाण वेळ", "VET": "व्हेनेझुएला वेळ", "MST": "मकाऊ प्रमाणवेळ", "CHADT": "चॅथम सूर्यप्रकाश वेळ", "ECT": "इक्वेडोर वेळ", "EDT": "पौर्वात्य सूर्यप्रकाश वेळ", "LHST": "लॉर्ड होवे प्रमाण वेळ"},
}
}
diff --git a/mr_IN/mr_IN.go b/mr_IN/mr_IN.go
index fe472166..e808d527 100644
--- a/mr_IN/mr_IN.go
+++ b/mr_IN/mr_IN.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"इ. स. पू.", "इ. स."},
erasNarrow: []string{"", ""},
erasWide: []string{"ईसवीसनपूर्व", "ईसवीसन"},
- timezones: map[string]string{"AST": "अटलांटिक प्रमाण वेळ", "WIB": "पश्चिमी इंडोनेशिया वेळ", "SRT": "सुरिनाम वेळ", "ACDT": "ऑस्ट्रेलियन मध्य सूर्यप्रकाश वेळ", "COST": "कोलंबिया उन्हाळी वेळ", "HECU": "क्यूबा सूर्यप्रकाश वेळ", "MDT": "मकाऊ ग्रीष्मकालीन वेळ", "ARST": "अर्जेंटिना उन्हाळी वेळ", "JDT": "जपान सूर्यप्रकाश वेळ", "WAT": "पश्चिम आफ्रिका प्रमाण वेळ", "MST": "मकाऊ प्रमाणवेळ", "HAT": "न्यू फाउंडलंड सूर्यप्रकाश वेळ", "HEPMX": "मेक्सिको पॅसिफिक सूर्यप्रकाश वेळ", "GYT": "गयाना वेळ", "BT": "भूतान वेळ", "ACWST": "ऑस्ट्रेलियन मध्य-पश्चिम प्रमाण वेळ", "SAST": "दक्षिण आफ्रिका प्रमाण वेळ", "COT": "कोलंबिया प्रमाण वेळ", "SGT": "सिंगापूर प्रमाण वेळ", "HNPMX": "मेक्सिको पॅसिफिक प्रमाण वेळ", "WARST": "पश्चिमी अर्जेंटिना उन्हाळी वेळ", "NZDT": "न्यूझीलंड सूर्यप्रकाश वेळ", "ACWDT": "ऑस्ट्रेलियन मध्य-पश्चिम सूर्यप्रकाश वेळ", "HNT": "न्यू फाउंडलंड प्रमाण वेळ", "AEST": "ऑस्ट्रेलियन पूर्व प्रमाण वेळ", "JST": "जपान प्रमाण वेळ", "BOT": "बोलिव्हिया वेळ", "AKDT": "अलास्का सूर्यप्रकाश वेळ", "CDT": "केंद्रीय सूर्यप्रकाश वेळ", "LHST": "लॉर्ड होवे प्रमाण वेळ", "ECT": "इक्वेडोर वेळ", "EDT": "पौर्वात्य सूर्यप्रकाश वेळ", "MYT": "मलेशिया वेळ", "HEPM": "सेंट पियर आणि मिक्वेलोन सूर्यप्रकाश वेळ", "ADT": "अटलांटिक सूर्यप्रकाश वेळ", "AEDT": "ऑस्ट्रेलियन पूर्व सूर्यप्रकाश वेळ", "HKT": "हाँग काँग प्रमाण वेळ", "WESZ": "पश्चिम युरोपियन उन्हाळी वेळ", "HNOG": "पश्चिम ग्रीनलँड प्रमाण वेळ", "AWST": "ऑस्ट्रेलियन पश्चिम प्रमाण वेळ", "AWDT": "ऑस्ट्रेलियन पश्चिम सूर्यप्रकाश वेळ", "WAST": "पश्चिम आफ्रिका उन्हाळी वेळ", "HENOMX": "वायव्य मेक्सिको सूर्यप्रकाश वेळ", "AKST": "अलास्का प्रमाण वेळ", "PST": "पॅसिफिक प्रमाण वेळ", "TMT": "तुर्कमेनिस्तान प्रमाण वेळ", "ACST": "ऑस्ट्रेलियन मध्य प्रमाण वेळ", "UYT": "उरुग्वे प्रमाण वेळ", "PDT": "पॅसिफिक सूर्यप्रकाश वेळ", "MEZ": "मध्\u200dय युरोपियन प्रमाण वेळ", "IST": "भारतीय प्रमाण वेळ", "CLST": "चिली उन्हाळी वेळ", "∅∅∅": "अ\u200dॅमेझॉन उन्हाळी वेळ", "HNNOMX": "वायव्य मेक्सिको प्रमाण वेळ", "EAT": "पूर्व आफ्रिका वेळ", "GMT": "ग्रीनिच प्रमाण वेळ", "EST": "पौर्वात्य प्रमाण वेळ", "OEZ": "पूर्व युरोपियन प्रमाण वेळ", "HNCU": "क्यूबा प्रमाण वेळ", "UYST": "उरुग्वे उन्हाळी वेळ", "ART": "अर्जेंटिना प्रमाण वेळ", "HEOG": "पश्चिम ग्रीनलँड उन्हाळी वेळ", "CHAST": "चॅथम प्रमाण वेळ", "CHADT": "चॅथम सूर्यप्रकाश वेळ", "CLT": "चिली प्रमाण वेळ", "GFT": "फ्रेंच गयाना वेळ", "WART": "पश्चिमी अर्जेंटिना प्रमाण वेळ", "VET": "व्हेनेझुएला वेळ", "HNEG": "पूर्व ग्रीनलँड प्रमाण वेळ", "CST": "केंद्रीय प्रमाण वेळ", "HADT": "हवाई-अलूशन सूर्यप्रकाश वेळ", "HKST": "हाँग काँग उन्हाळी वेळ", "WEZ": "पश्चिम युरोपियन प्रमाण वेळ", "HNPM": "सेंट पियर आणि मिक्वेलोन प्रमाण वेळ", "MESZ": "मध्\u200dय युरोपियन उन्हाळी वेळ", "ChST": "चामोरो प्रमाण वेळ", "TMST": "तुर्कमेनिस्तान उन्हाळी वेळ", "CAT": "मध्\u200dय आफ्रिका वेळ", "OESZ": "पूर्व युरोपियन उन्हाळी वेळ", "LHDT": "लॉर्ड होवे सूर्यप्रकाश वेळ", "NZST": "न्यूझीलंड प्रमाण वेळ", "HEEG": "पूर्व ग्रीनलँड उन्हाळी वेळ", "HAST": "हवाई-अलूशन प्रमाण वेळ", "WIT": "पौर्वात्य इंडोनेशिया वेळ", "WITA": "मध्\u200dय इंडोनेशिया वेळ"},
+ timezones: map[string]string{"IST": "भारतीय प्रमाण वेळ", "ART": "अर्जेंटिना प्रमाण वेळ", "HEEG": "पूर्व ग्रीनलँड उन्हाळी वेळ", "SAST": "दक्षिण आफ्रिका प्रमाण वेळ", "AKDT": "अलास्का सूर्यप्रकाश वेळ", "AWDT": "ऑस्ट्रेलियन पश्चिम सूर्यप्रकाश वेळ", "CHADT": "चॅथम सूर्यप्रकाश वेळ", "CLT": "चिली प्रमाण वेळ", "WAST": "पश्चिम आफ्रिका उन्हाळी वेळ", "HNT": "न्यू फाउंडलंड प्रमाण वेळ", "HENOMX": "वायव्य मेक्सिको सूर्यप्रकाश वेळ", "ACDT": "ऑस्ट्रेलियन मध्य सूर्यप्रकाश वेळ", "LHST": "लॉर्ड होवे प्रमाण वेळ", "LHDT": "लॉर्ड होवे सूर्यप्रकाश वेळ", "BOT": "बोलिव्हिया वेळ", "MEZ": "मध्\u200dय युरोपियन प्रमाण वेळ", "HNOG": "पश्चिम ग्रीनलँड प्रमाण वेळ", "EDT": "पौर्वात्य सूर्यप्रकाश वेळ", "HEOG": "पश्चिम ग्रीनलँड उन्हाळी वेळ", "ADT": "अटलांटिक सूर्यप्रकाश वेळ", "UYT": "उरुग्वे प्रमाण वेळ", "WIB": "पश्चिमी इंडोनेशिया वेळ", "HAST": "हवाई-अलूशन प्रमाण वेळ", "ACWST": "ऑस्ट्रेलियन मध्य-पश्चिम प्रमाण वेळ", "NZST": "न्यूझीलंड प्रमाण वेळ", "CAT": "मध्\u200dय आफ्रिका वेळ", "CST": "केंद्रीय प्रमाण वेळ", "WITA": "मध्\u200dय इंडोनेशिया वेळ", "JST": "जपान प्रमाण वेळ", "OEZ": "पूर्व युरोपियन प्रमाण वेळ", "EST": "पौर्वात्य प्रमाण वेळ", "COT": "कोलंबिया प्रमाण वेळ", "AEST": "ऑस्ट्रेलियन पूर्व प्रमाण वेळ", "HADT": "हवाई-अलूशन सूर्यप्रकाश वेळ", "TMST": "तुर्कमेनिस्तान उन्हाळी वेळ", "MST": "मकाऊ प्रमाणवेळ", "MDT": "मकाऊ ग्रीष्मकालीन वेळ", "GYT": "गयाना वेळ", "PST": "पॅसिफिक प्रमाण वेळ", "∅∅∅": "अ\u200dॅमेझॉन उन्हाळी वेळ", "JDT": "जपान सूर्यप्रकाश वेळ", "TMT": "तुर्कमेनिस्तान प्रमाण वेळ", "ARST": "अर्जेंटिना उन्हाळी वेळ", "WIT": "पौर्वात्य इंडोनेशिया वेळ", "HNPM": "सेंट पियर आणि मिक्वेलोन प्रमाण वेळ", "HNPMX": "मेक्सिको पॅसिफिक प्रमाण वेळ", "SRT": "सुरिनाम वेळ", "HKST": "हाँग काँग उन्हाळी वेळ", "BT": "भूतान वेळ", "AEDT": "ऑस्ट्रेलियन पूर्व सूर्यप्रकाश वेळ", "AKST": "अलास्का प्रमाण वेळ", "VET": "व्हेनेझुएला वेळ", "MESZ": "मध्\u200dय युरोपियन उन्हाळी वेळ", "OESZ": "पूर्व युरोपियन उन्हाळी वेळ", "HEPM": "सेंट पियर आणि मिक्वेलोन सूर्यप्रकाश वेळ", "CDT": "केंद्रीय सूर्यप्रकाश वेळ", "PDT": "पॅसिफिक सूर्यप्रकाश वेळ", "HKT": "हाँग काँग प्रमाण वेळ", "HAT": "न्यू फाउंडलंड सूर्यप्रकाश वेळ", "HNEG": "पूर्व ग्रीनलँड प्रमाण वेळ", "HEPMX": "मेक्सिको पॅसिफिक सूर्यप्रकाश वेळ", "AWST": "ऑस्ट्रेलियन पश्चिम प्रमाण वेळ", "ECT": "इक्वेडोर वेळ", "ACWDT": "ऑस्ट्रेलियन मध्य-पश्चिम सूर्यप्रकाश वेळ", "WART": "पश्चिमी अर्जेंटिना प्रमाण वेळ", "UYST": "उरुग्वे उन्हाळी वेळ", "ChST": "चामोरो प्रमाण वेळ", "HECU": "क्यूबा सूर्यप्रकाश वेळ", "NZDT": "न्यूझीलंड सूर्यप्रकाश वेळ", "WEZ": "पश्चिम युरोपियन प्रमाण वेळ", "GMT": "ग्रीनिच प्रमाण वेळ", "MYT": "मलेशिया वेळ", "CLST": "चिली उन्हाळी वेळ", "AST": "अटलांटिक प्रमाण वेळ", "WAT": "पश्चिम आफ्रिका प्रमाण वेळ", "EAT": "पूर्व आफ्रिका वेळ", "COST": "कोलंबिया उन्हाळी वेळ", "HNNOMX": "वायव्य मेक्सिको प्रमाण वेळ", "ACST": "ऑस्ट्रेलियन मध्य प्रमाण वेळ", "GFT": "फ्रेंच गयाना वेळ", "SGT": "सिंगापूर प्रमाण वेळ", "CHAST": "चॅथम प्रमाण वेळ", "WESZ": "पश्चिम युरोपियन उन्हाळी वेळ", "WARST": "पश्चिमी अर्जेंटिना उन्हाळी वेळ", "HNCU": "क्यूबा प्रमाण वेळ"},
}
}
diff --git a/ms/ms.go b/ms/ms.go
index 6e591fdc..f2af59b6 100644
--- a/ms/ms.go
+++ b/ms/ms.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"S.M.", "TM"},
erasNarrow: []string{"", ""},
erasWide: []string{"S.M.", "TM"},
- timezones: map[string]string{"ACWST": "Waktu Piawai Barat Tengah Australia", "WART": "Waktu Piawai Argentina Barat", "HNNOMX": "Waktu Piawai Barat Laut Mexico", "HNCU": "Waktu Piawai Cuba", "AEST": "Waktu Piawai Timur Australia", "LHST": "Waktu Piawai Lord Howe", "NZST": "Waktu Piawai New Zealand", "ChST": "Waktu Piawai Chamorro", "AKDT": "Waktu Siang Alaska", "CDT": "Waktu Siang Tengah", "UYT": "Waktu Piawai Uruguay", "AKST": "Waktu Piawai Alaska", "HEOG": "Waktu Musim Panas Greenland Barat", "WEZ": "Waktu Piawai Eropah Barat", "MESZ": "Waktu Musim Panas Eropah Tengah", "CLT": "Waktu Piawai Chile", "ACST": "Waktu Piawai Australia Tengah", "HECU": "Waktu Siang Cuba", "SRT": "Waktu Suriname", "GYT": "Waktu Guyana", "PDT": "Waktu Siang Pasifik", "WITA": "Waktu Indonesia Tengah", "MEZ": "Waktu Piawai Eropah Tengah", "JDT": "Waktu Siang Jepun", "TMST": "Waktu Musim Panas Turkmenistan", "COST": "Waktu Musim Panas Colombia", "HKT": "Waktu Piawai Hong Kong", "HKST": "Waktu Musim Panas Hong Kong", "HEEG": "Waktu Musim Panas Greenland Timur", "MDT": "MDT", "HNPMX": "Waktu Piawai Pasifik Mexico", "SAST": "Waktu Piawai Afrika Selatan", "PST": "Waktu Piawai Pasifik", "CHAST": "Waktu Piawai Chatham", "WAT": "Waktu Piawai Afrika Barat", "OEZ": "Waktu Piawai Eropah Timur", "EAT": "Waktu Afrika Timur", "HEPMX": "Waktu Siang Pasifik Mexico", "AEDT": "Waktu Siang Australia Timur", "JST": "Waktu Piawai Jepun", "∅∅∅": "Waktu Musim Panas Amazon", "WARST": "Waktu Musim Panas Argentina Barat", "HENOMX": "Waktu Siang Barat Laut Mexico", "EST": "Waktu Piawai Timur", "MST": "MST", "WIB": "Waktu Indonesia Barat", "BT": "Waktu Bhutan", "OESZ": "Waktu Musim Panas Eropah Timur", "ACWDT": "Waktu Siang Barat Tengah Australia", "LHDT": "Waktu Siang Lord Howe", "TMT": "Waktu Piawai Turkmenistan", "BOT": "Waktu Bolivia", "ACDT": "Waktu Siang Australia Tengah", "CAT": "Waktu Afrika Tengah", "HNOG": "Waktu Piawai Greenland Barat", "HAT": "Waktu Siang Newfoundland", "CLST": "Waktu Musim Panas Chile", "HNEG": "Waktu Piawai Greenland Timur", "WAST": "Waktu Musim Panas Afrika Barat", "COT": "Waktu Piawai Colombia", "ART": "Waktu Piawai Argentina", "WESZ": "Waktu Musim Panas Eropah Barat", "AWST": "Waktu Piawai Australia Barat", "GMT": "Waktu Min Greenwich", "SGT": "Waktu Piawai Singapura", "AWDT": "Waktu Siang Australia Barat", "NZDT": "Waktu Siang New Zealand", "ECT": "Waktu Ecuador", "UYST": "Waktu Musim Panas Uruguay", "WIT": "Waktu Indonesia Timur", "CST": "Waktu Piawai Pusat", "HAST": "Waktu Piawai Hawaii-Aleutian", "HNPM": "Waktu Piawai Saint Pierre dan Miquelon", "HEPM": "Waktu Siang Saint Pierre dan Miquelon", "CHADT": "Waktu Siang Chatham", "EDT": "Waktu Siang Timur", "AST": "Waktu Piawai Atlantik", "MYT": "Waktu Malaysia", "HADT": "Waktu Siang Hawaii-Aleutian", "ARST": "Waktu Musim Panas Argentina", "HNT": "Waktu Piawai Newfoundland", "IST": "Waktu Piawai India", "GFT": "Waktu Guyana Perancis", "ADT": "Waktu Siang Atlantik", "VET": "Waktu Venezuela"},
+ timezones: map[string]string{"CAT": "Waktu Afrika Tengah", "NZST": "Waktu Piawai New Zealand", "GMT": "Waktu Min Greenwich", "HKST": "Waktu Musim Panas Hong Kong", "ACDT": "Waktu Siang Australia Tengah", "AKST": "Waktu Piawai Alaska", "HEPMX": "Waktu Siang Pasifik Mexico", "WIB": "Waktu Indonesia Barat", "BOT": "Waktu Bolivia", "HAST": "Waktu Piawai Hawaii-Aleutian", "AST": "Waktu Piawai Atlantik", "MST": "MST", "EDT": "Waktu Siang Timur", "COT": "Waktu Piawai Colombia", "HNPMX": "Waktu Piawai Pasifik Mexico", "HECU": "Waktu Siang Cuba", "JST": "Waktu Piawai Jepun", "HNNOMX": "Waktu Piawai Barat Laut Mexico", "HNPM": "Waktu Piawai Saint Pierre dan Miquelon", "WIT": "Waktu Indonesia Timur", "HEOG": "Waktu Musim Panas Greenland Barat", "ART": "Waktu Piawai Argentina", "WAT": "Waktu Piawai Afrika Barat", "HNT": "Waktu Piawai Newfoundland", "HAT": "Waktu Siang Newfoundland", "HEPM": "Waktu Siang Saint Pierre dan Miquelon", "WESZ": "Waktu Musim Panas Eropah Barat", "WART": "Waktu Piawai Argentina Barat", "ARST": "Waktu Musim Panas Argentina", "UYT": "Waktu Piawai Uruguay", "PDT": "Waktu Siang Pasifik", "OESZ": "Waktu Musim Panas Eropah Timur", "CHAST": "Waktu Piawai Chatham", "HADT": "Waktu Siang Hawaii-Aleutian", "MESZ": "Waktu Musim Panas Eropah Tengah", "CLT": "Waktu Piawai Chile", "LHDT": "Waktu Siang Lord Howe", "CHADT": "Waktu Siang Chatham", "NZDT": "Waktu Siang New Zealand", "CLST": "Waktu Musim Panas Chile", "TMT": "Waktu Piawai Turkmenistan", "GFT": "Waktu Guyana Perancis", "HNCU": "Waktu Piawai Cuba", "AWST": "Waktu Piawai Australia Barat", "MEZ": "Waktu Piawai Eropah Tengah", "AEDT": "Waktu Siang Australia Timur", "UYST": "Waktu Musim Panas Uruguay", "SAST": "Waktu Piawai Afrika Selatan", "SRT": "Waktu Suriname", "ECT": "Waktu Ecuador", "JDT": "Waktu Siang Jepun", "HENOMX": "Waktu Siang Barat Laut Mexico", "CST": "Waktu Piawai Pusat", "SGT": "Waktu Piawai Singapura", "ACWST": "Waktu Piawai Barat Tengah Australia", "WEZ": "Waktu Piawai Eropah Barat", "EST": "Waktu Piawai Timur", "AKDT": "Waktu Siang Alaska", "ACWDT": "Waktu Siang Barat Tengah Australia", "OEZ": "Waktu Piawai Eropah Timur", "TMST": "Waktu Musim Panas Turkmenistan", "WAST": "Waktu Musim Panas Afrika Barat", "BT": "Waktu Bhutan", "AEST": "Waktu Piawai Timur Australia", "MYT": "Waktu Malaysia", "HNEG": "Waktu Piawai Greenland Timur", "ChST": "Waktu Piawai Chamorro", "IST": "Waktu Piawai India", "VET": "Waktu Venezuela", "WARST": "Waktu Musim Panas Argentina Barat", "HNOG": "Waktu Piawai Greenland Barat", "MDT": "MDT", "CDT": "Waktu Siang Tengah", "PST": "Waktu Piawai Pasifik", "HKT": "Waktu Piawai Hong Kong", "COST": "Waktu Musim Panas Colombia", "∅∅∅": "∅∅∅", "LHST": "Waktu Piawai Lord Howe", "EAT": "Waktu Afrika Timur", "AWDT": "Waktu Siang Australia Barat", "ADT": "Waktu Siang Atlantik", "ACST": "Waktu Piawai Australia Tengah", "HEEG": "Waktu Musim Panas Greenland Timur", "WITA": "Waktu Indonesia Tengah", "GYT": "Waktu Guyana"},
}
}
diff --git a/ms_BN/ms_BN.go b/ms_BN/ms_BN.go
index 99d4e167..1dfe8cbb 100644
--- a/ms_BN/ms_BN.go
+++ b/ms_BN/ms_BN.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"S.M.", "TM"},
erasNarrow: []string{"", ""},
erasWide: []string{"S.M.", "TM"},
- timezones: map[string]string{"WART": "Waktu Piawai Argentina Barat", "HKST": "Waktu Musim Panas Hong Kong", "AEST": "Waktu Piawai Timur Australia", "CLST": "Waktu Musim Panas Chile", "TMST": "Waktu Musim Panas Turkmenistan", "WIB": "Waktu Indonesia Barat", "HNOG": "Waktu Piawai Greenland Barat", "JDT": "Waktu Siang Jepun", "GFT": "Waktu Guyana Perancis", "ECT": "Waktu Ecuador", "GMT": "Waktu Min Greenwich", "WAT": "Waktu Piawai Afrika Barat", "WARST": "Waktu Musim Panas Argentina Barat", "CST": "Waktu Piawai Pusat", "HADT": "Waktu Siang Hawaii-Aleutian", "EST": "Waktu Piawai Timur", "GYT": "Waktu Guyana", "HAST": "Waktu Piawai Hawaii-Aleutian", "HNPM": "Waktu Piawai Saint Pierre dan Miquelon", "NZDT": "Waktu Siang New Zealand", "MESZ": "Waktu Musim Panas Eropah Tengah", "HNNOMX": "Waktu Piawai Barat Laut Mexico", "WIT": "Waktu Indonesia Timur", "ChST": "Waktu Piawai Chamorro", "BOT": "Waktu Bolivia", "OESZ": "Waktu Musim Panas Eropah Timur", "AST": "Waktu Piawai Atlantik", "ACWST": "Waktu Piawai Barat Tengah Australia", "HNT": "Waktu Piawai Newfoundland", "ART": "Waktu Piawai Argentina", "AWDT": "Waktu Siang Australia Barat", "JST": "Waktu Piawai Jepun", "CLT": "Waktu Piawai Chile", "HNPMX": "Waktu Piawai Pasifik Mexico", "CAT": "Waktu Afrika Tengah", "AKDT": "Waktu Siang Alaska", "VET": "Waktu Venezuela", "HKT": "Waktu Piawai Hong Kong", "SAST": "Waktu Piawai Afrika Selatan", "ACDT": "Waktu Siang Australia Tengah", "OEZ": "Waktu Piawai Eropah Timur", "COT": "Waktu Piawai Colombia", "COST": "Waktu Musim Panas Colombia", "MST": "MST", "HAT": "Waktu Siang Newfoundland", "WITA": "Waktu Indonesia Tengah", "CHAST": "Waktu Piawai Chatham", "HEEG": "Waktu Musim Panas Greenland Timur", "TMT": "Waktu Piawai Turkmenistan", "CHADT": "Waktu Siang Chatham", "MYT": "Waktu Malaysia", "ACWDT": "Waktu Siang Barat Tengah Australia", "AWST": "Waktu Piawai Australia Barat", "HNEG": "Waktu Piawai Greenland Timur", "EAT": "Waktu Afrika Timur", "CDT": "Waktu Siang Tengah", "UYST": "Waktu Musim Panas Uruguay", "PDT": "Waktu Siang Pasifik", "MEZ": "Waktu Piawai Eropah Tengah", "LHDT": "Waktu Siang Lord Howe", "EDT": "Waktu Siang Timur", "AKST": "Waktu Piawai Alaska", "HEPM": "Waktu Siang Saint Pierre dan Miquelon", "HNCU": "Waktu Piawai Cuba", "SRT": "Waktu Suriname", "WESZ": "Waktu Musim Panas Eropah Barat", "SGT": "Waktu Piawai Singapura", "ADT": "Waktu Siang Atlantik", "BT": "Waktu Bhutan", "NZST": "Waktu Piawai New Zealand", "WAST": "Waktu Musim Panas Afrika Barat", "HENOMX": "Waktu Siang Barat Laut Mexico", "HECU": "Waktu Siang Cuba", "IST": "Waktu Piawai India", "HEOG": "Waktu Musim Panas Greenland Barat", "PST": "Waktu Piawai Pasifik", "WEZ": "Waktu Piawai Eropah Barat", "HEPMX": "Waktu Siang Pasifik Mexico", "MDT": "MDT", "UYT": "Waktu Piawai Uruguay", "ARST": "Waktu Musim Panas Argentina", "AEDT": "Waktu Siang Australia Timur", "LHST": "Waktu Piawai Lord Howe", "∅∅∅": "Waktu Musim Panas Amazon", "ACST": "Waktu Piawai Australia Tengah"},
+ timezones: map[string]string{"SAST": "Waktu Piawai Afrika Selatan", "HEPMX": "Waktu Siang Pasifik Mexico", "SRT": "Waktu Suriname", "PDT": "Waktu Siang Pasifik", "JDT": "Waktu Siang Jepun", "WITA": "Waktu Indonesia Tengah", "AKDT": "Waktu Siang Alaska", "EAT": "Waktu Afrika Timur", "IST": "Waktu Piawai India", "JST": "Waktu Piawai Jepun", "OESZ": "Waktu Musim Panas Eropah Timur", "WAT": "Waktu Piawai Afrika Barat", "MDT": "Waktu Hari Siang Pergunungan", "UYST": "Waktu Musim Panas Uruguay", "CDT": "Waktu Siang Tengah", "HAST": "Waktu Piawai Hawaii-Aleutian", "NZST": "Waktu Piawai New Zealand", "VET": "Waktu Venezuela", "TMT": "Waktu Piawai Turkmenistan", "HNNOMX": "Waktu Piawai Barat Laut Mexico", "HNT": "Waktu Piawai Newfoundland", "AKST": "Waktu Piawai Alaska", "SGT": "Waktu Piawai Singapura", "HADT": "Waktu Siang Hawaii-Aleutian", "HNOG": "Waktu Piawai Greenland Barat", "OEZ": "Waktu Piawai Eropah Timur", "ARST": "Waktu Musim Panas Argentina", "HNPMX": "Waktu Piawai Pasifik Mexico", "GMT": "Waktu Min Greenwich", "HKT": "Waktu Piawai Hong Kong", "ACDT": "Waktu Siang Australia Tengah", "LHST": "Waktu Piawai Lord Howe", "LHDT": "Waktu Siang Lord Howe", "HECU": "Waktu Siang Cuba", "ACWST": "Waktu Piawai Barat Tengah Australia", "CLST": "Waktu Musim Panas Chile", "WEZ": "Waktu Piawai Eropah Barat", "WAST": "Waktu Musim Panas Afrika Barat", "EST": "Waktu Piawai Timur", "∅∅∅": "∅∅∅", "GFT": "Waktu Guyana Perancis", "HNCU": "Waktu Piawai Cuba", "CST": "Waktu Piawai Pusat", "CHAST": "Waktu Piawai Chatham", "BOT": "Waktu Bolivia", "NZDT": "Waktu Siang New Zealand", "COT": "Waktu Piawai Colombia", "HNPM": "Waktu Piawai Saint Pierre dan Miquelon", "MYT": "Waktu Malaysia", "AST": "Waktu Piawai Atlantik", "ACST": "Waktu Piawai Australia Tengah", "HEPM": "Waktu Siang Saint Pierre dan Miquelon", "PST": "Waktu Piawai Pasifik", "WART": "Waktu Piawai Argentina Barat", "UYT": "Waktu Piawai Uruguay", "ECT": "Waktu Ecuador", "ACWDT": "Waktu Siang Barat Tengah Australia", "MEZ": "Waktu Piawai Eropah Tengah", "EDT": "Waktu Siang Timur", "COST": "Waktu Musim Panas Colombia", "AEST": "Waktu Piawai Timur Australia", "ChST": "Waktu Piawai Chamorro", "MESZ": "Waktu Musim Panas Eropah Tengah", "ART": "Waktu Piawai Argentina", "WIB": "Waktu Indonesia Barat", "CHADT": "Waktu Siang Chatham", "HEOG": "Waktu Musim Panas Greenland Barat", "ADT": "Waktu Siang Atlantik", "WESZ": "Waktu Musim Panas Eropah Barat", "TMST": "Waktu Musim Panas Turkmenistan", "HENOMX": "Waktu Siang Barat Laut Mexico", "AEDT": "Waktu Siang Australia Timur", "GYT": "Waktu Guyana", "WIT": "Waktu Indonesia Timur", "AWST": "Waktu Piawai Australia Barat", "AWDT": "Waktu Siang Australia Barat", "CLT": "Waktu Piawai Chile", "HKST": "Waktu Musim Panas Hong Kong", "HAT": "Waktu Siang Newfoundland", "HNEG": "Waktu Piawai Greenland Timur", "MST": "Waktu Piawai Pergunungan", "CAT": "Waktu Afrika Tengah", "WARST": "Waktu Musim Panas Argentina Barat", "BT": "Waktu Bhutan", "HEEG": "Waktu Musim Panas Greenland Timur"},
}
}
diff --git a/ms_MY/ms_MY.go b/ms_MY/ms_MY.go
index 2c154a10..2dde1fb3 100644
--- a/ms_MY/ms_MY.go
+++ b/ms_MY/ms_MY.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"S.M.", "TM"},
erasNarrow: []string{"", ""},
erasWide: []string{"S.M.", "TM"},
- timezones: map[string]string{"WESZ": "Waktu Musim Panas Eropah Barat", "AWST": "Waktu Piawai Australia Barat", "HEPMX": "Waktu Siang Pasifik Mexico", "AKDT": "Waktu Siang Alaska", "WIB": "Waktu Indonesia Barat", "BT": "Waktu Bhutan", "∅∅∅": "Waktu Musim Panas Amazon", "WAT": "Waktu Piawai Afrika Barat", "ART": "Waktu Piawai Argentina", "ARST": "Waktu Musim Panas Argentina", "MEZ": "Waktu Piawai Eropah Tengah", "IST": "Waktu Piawai India", "WAST": "Waktu Musim Panas Afrika Barat", "SRT": "Waktu Suriname", "GFT": "Waktu Guyana Perancis", "EAT": "Waktu Afrika Timur", "WART": "Waktu Piawai Argentina Barat", "MYT": "Waktu Malaysia", "NZST": "Waktu Piawai New Zealand", "NZDT": "Waktu Siang New Zealand", "CLST": "Waktu Musim Panas Chile", "HNEG": "Waktu Piawai Greenland Timur", "PDT": "Waktu Siang Pasifik", "CHAST": "Waktu Piawai Chatham", "JDT": "Waktu Siang Jepun", "ECT": "Waktu Ecuador", "WIT": "Waktu Indonesia Timur", "HNOG": "Waktu Piawai Greenland Barat", "HKT": "Waktu Piawai Hong Kong", "WITA": "Waktu Indonesia Tengah", "AEST": "Waktu Piawai Timur Australia", "LHDT": "Waktu Siang Lord Howe", "HNPMX": "Waktu Piawai Pasifik Mexico", "HADT": "Waktu Siang Hawaii-Aleutian", "HAT": "Waktu Siang Newfoundland", "TMST": "Waktu Musim Panas Turkmenistan", "HNCU": "Waktu Piawai Cuba", "EDT": "Waktu Siang Timur", "HAST": "Waktu Piawai Hawaii-Aleutian", "COT": "Waktu Piawai Colombia", "EST": "Waktu Piawai Timur", "CST": "Waktu Piawai Pusat", "HNT": "Waktu Piawai Newfoundland", "HEEG": "Waktu Musim Panas Greenland Timur", "ACST": "Waktu Piawai Australia Tengah", "OEZ": "Waktu Piawai Eropah Timur", "OESZ": "Waktu Musim Panas Eropah Timur", "HEOG": "Waktu Musim Panas Greenland Barat", "UYST": "Waktu Musim Panas Uruguay", "TMT": "Waktu Piawai Turkmenistan", "ChST": "Waktu Piawai Chamorro", "HENOMX": "Waktu Siang Barat Laut Mexico", "GYT": "Waktu Guyana", "AEDT": "Waktu Siang Australia Timur", "AWDT": "Waktu Siang Australia Barat", "HEPM": "Waktu Siang Saint Pierre dan Miquelon", "CHADT": "Waktu Siang Chatham", "COST": "Waktu Musim Panas Colombia", "MST": "MST", "MDT": "MDT", "ACWDT": "Waktu Siang Barat Tengah Australia", "HNPM": "Waktu Piawai Saint Pierre dan Miquelon", "CAT": "Waktu Afrika Tengah", "CDT": "Waktu Siang Tengah", "ADT": "Waktu Siang Atlantik", "ACWST": "Waktu Piawai Barat Tengah Australia", "LHST": "Waktu Piawai Lord Howe", "BOT": "Waktu Bolivia", "WARST": "Waktu Musim Panas Argentina Barat", "VET": "Waktu Venezuela", "HNNOMX": "Waktu Piawai Barat Laut Mexico", "SGT": "Waktu Piawai Singapura", "WEZ": "Waktu Piawai Eropah Barat", "AST": "Waktu Piawai Atlantik", "UYT": "Waktu Piawai Uruguay", "HKST": "Waktu Musim Panas Hong Kong", "SAST": "Waktu Piawai Afrika Selatan", "JST": "Waktu Piawai Jepun", "CLT": "Waktu Piawai Chile", "ACDT": "Waktu Siang Australia Tengah", "PST": "Waktu Piawai Pasifik", "MESZ": "Waktu Musim Panas Eropah Tengah", "HECU": "Waktu Siang Cuba", "GMT": "Waktu Min Greenwich", "AKST": "Waktu Piawai Alaska"},
+ timezones: map[string]string{"ARST": "Waktu Musim Panas Argentina", "HNNOMX": "Waktu Piawai Barat Laut Mexico", "HEEG": "Waktu Musim Panas Greenland Timur", "CDT": "Waktu Siang Tengah", "AWST": "Waktu Piawai Australia Barat", "AWDT": "Waktu Siang Australia Barat", "ECT": "Waktu Ecuador", "ACWST": "Waktu Piawai Barat Tengah Australia", "ACWDT": "Waktu Siang Barat Tengah Australia", "OEZ": "Waktu Piawai Eropah Timur", "HNT": "Waktu Piawai Newfoundland", "LHDT": "Waktu Siang Lord Howe", "EAT": "Waktu Afrika Timur", "HADT": "Waktu Siang Hawaii-Aleutian", "MDT": "Waktu Hari Siang Pergunungan", "HNPMX": "Waktu Piawai Pasifik Mexico", "HECU": "Waktu Siang Cuba", "PDT": "Waktu Siang Pasifik", "IST": "Waktu Piawai India", "VET": "Waktu Venezuela", "GMT": "Waktu Min Greenwich", "COT": "Waktu Piawai Colombia", "∅∅∅": "Waktu Musim Panas Azores", "BT": "Waktu Bhutan", "MESZ": "Waktu Musim Panas Eropah Tengah", "MYT": "Waktu Malaysia", "HKST": "Waktu Musim Panas Hong Kong", "NZST": "Waktu Piawai New Zealand", "WIT": "Waktu Indonesia Timur", "BOT": "Waktu Bolivia", "JST": "Waktu Piawai Jepun", "HENOMX": "Waktu Siang Barat Laut Mexico", "SRT": "Waktu Suriname", "SAST": "Waktu Piawai Afrika Selatan", "CHAST": "Waktu Piawai Chatham", "PST": "Waktu Piawai Pasifik", "WEZ": "Waktu Piawai Eropah Barat", "TMT": "Waktu Piawai Turkmenistan", "ACST": "Waktu Piawai Australia Tengah", "AKST": "Waktu Piawai Alaska", "CLT": "Waktu Piawai Chile", "HNOG": "Waktu Piawai Greenland Barat", "WARST": "Waktu Musim Panas Argentina Barat", "WAST": "Waktu Musim Panas Afrika Barat", "EDT": "Waktu Siang Timur", "NZDT": "Waktu Siang New Zealand", "HNCU": "Waktu Piawai Cuba", "HAST": "Waktu Piawai Hawaii-Aleutian", "WESZ": "Waktu Musim Panas Eropah Barat", "WAT": "Waktu Piawai Afrika Barat", "UYT": "Waktu Piawai Uruguay", "AEST": "Waktu Piawai Timur Australia", "UYST": "Waktu Musim Panas Uruguay", "LHST": "Waktu Piawai Lord Howe", "CHADT": "Waktu Siang Chatham", "HKT": "Waktu Piawai Hong Kong", "HNEG": "Waktu Piawai Greenland Timur", "WITA": "Waktu Indonesia Tengah", "AEDT": "Waktu Siang Australia Timur", "HEPM": "Waktu Siang Saint Pierre dan Miquelon", "CST": "Waktu Piawai Pusat", "HEOG": "Waktu Musim Panas Greenland Barat", "ART": "Waktu Piawai Argentina", "ACDT": "Waktu Siang Australia Tengah", "HAT": "Waktu Siang Newfoundland", "AKDT": "Waktu Siang Alaska", "CLST": "Waktu Musim Panas Chile", "EST": "Waktu Piawai Timur", "CAT": "Waktu Afrika Tengah", "ChST": "Waktu Piawai Chamorro", "HNPM": "Waktu Piawai Saint Pierre dan Miquelon", "GYT": "Waktu Guyana", "WIB": "Waktu Indonesia Barat", "MEZ": "Waktu Piawai Eropah Tengah", "JDT": "Waktu Siang Jepun", "COST": "Waktu Musim Panas Colombia", "MST": "Waktu Piawai Pergunungan", "HEPMX": "Waktu Siang Pasifik Mexico", "SGT": "Waktu Piawai Singapura", "WART": "Waktu Piawai Argentina Barat", "AST": "Waktu Piawai Atlantik", "ADT": "Waktu Siang Atlantik", "OESZ": "Waktu Musim Panas Eropah Timur", "TMST": "Waktu Musim Panas Turkmenistan", "GFT": "Waktu Guyana Perancis"},
}
}
diff --git a/ms_SG/ms_SG.go b/ms_SG/ms_SG.go
index 99b70140..df2417eb 100644
--- a/ms_SG/ms_SG.go
+++ b/ms_SG/ms_SG.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"S.M.", "TM"},
erasNarrow: []string{"", ""},
erasWide: []string{"S.M.", "TM"},
- timezones: map[string]string{"AKST": "Waktu Piawai Alaska", "PDT": "Waktu Siang Pasifik", "SAST": "Waktu Piawai Afrika Selatan", "ACDT": "Waktu Siang Australia Tengah", "TMST": "Waktu Musim Panas Turkmenistan", "WART": "Waktu Piawai Argentina Barat", "GMT": "Waktu Min Greenwich", "HEPMX": "Waktu Siang Pasifik Mexico", "HAST": "Waktu Piawai Hawaii-Aleutian", "AWDT": "Waktu Siang Australia Barat", "CLT": "Waktu Piawai Chile", "WARST": "Waktu Musim Panas Argentina Barat", "HNNOMX": "Waktu Piawai Barat Laut Mexico", "AST": "Waktu Piawai Atlantik", "ACWST": "Waktu Piawai Barat Tengah Australia", "HNT": "Waktu Piawai Newfoundland", "AEST": "Waktu Piawai Timur Australia", "OESZ": "Waktu Musim Panas Eropah Timur", "CLST": "Waktu Musim Panas Chile", "JDT": "Waktu Siang Jepun", "BT": "Waktu Bhutan", "ACST": "Waktu Piawai Australia Tengah", "EST": "Waktu Piawai Timur", "WESZ": "Waktu Musim Panas Eropah Barat", "HNPM": "Waktu Piawai Saint Pierre dan Miquelon", "SGT": "Waktu Piawai Singapura", "CHADT": "Waktu Siang Chatham", "HEEG": "Waktu Musim Panas Greenland Timur", "WIT": "Waktu Indonesia Timur", "SRT": "Waktu Suriname", "WITA": "Waktu Indonesia Tengah", "LHST": "Waktu Piawai Lord Howe", "WAST": "Waktu Musim Panas Afrika Barat", "HECU": "Waktu Siang Cuba", "CDT": "Waktu Siang Tengah", "GFT": "Waktu Guyana Perancis", "WAT": "Waktu Piawai Afrika Barat", "COT": "Waktu Piawai Colombia", "MYT": "Waktu Malaysia", "ART": "Waktu Piawai Argentina", "LHDT": "Waktu Siang Lord Howe", "ChST": "Waktu Piawai Chamorro", "MEZ": "Waktu Piawai Eropah Tengah", "HENOMX": "Waktu Siang Barat Laut Mexico", "MDT": "MDT", "WIB": "Waktu Indonesia Barat", "HKT": "Waktu Piawai Hong Kong", "HKST": "Waktu Musim Panas Hong Kong", "MST": "MST", "UYST": "Waktu Musim Panas Uruguay", "PST": "Waktu Piawai Pasifik", "NZST": "Waktu Piawai New Zealand", "EDT": "Waktu Siang Timur", "ECT": "Waktu Ecuador", "GYT": "Waktu Guyana", "UYT": "Waktu Piawai Uruguay", "ACWDT": "Waktu Siang Barat Tengah Australia", "ARST": "Waktu Musim Panas Argentina", "AEDT": "Waktu Siang Australia Timur", "IST": "Waktu Piawai India", "HNEG": "Waktu Piawai Greenland Timur", "COST": "Waktu Musim Panas Colombia", "HAT": "Waktu Siang Newfoundland", "HEPM": "Waktu Siang Saint Pierre dan Miquelon", "CHAST": "Waktu Piawai Chatham", "EAT": "Waktu Afrika Timur", "HNCU": "Waktu Piawai Cuba", "HNPMX": "Waktu Piawai Pasifik Mexico", "CST": "Waktu Piawai Pusat", "HADT": "Waktu Siang Hawaii-Aleutian", "HNOG": "Waktu Piawai Greenland Barat", "MESZ": "Waktu Musim Panas Eropah Tengah", "CAT": "Waktu Afrika Tengah", "WEZ": "Waktu Piawai Eropah Barat", "OEZ": "Waktu Piawai Eropah Timur", "AKDT": "Waktu Siang Alaska", "ADT": "Waktu Siang Atlantik", "HEOG": "Waktu Musim Panas Greenland Barat", "∅∅∅": "Waktu Musim Panas Amazon", "BOT": "Waktu Bolivia", "JST": "Waktu Piawai Jepun", "TMT": "Waktu Piawai Turkmenistan", "VET": "Waktu Venezuela", "AWST": "Waktu Piawai Australia Barat", "NZDT": "Waktu Siang New Zealand"},
+ timezones: map[string]string{"AWDT": "Waktu Siang Australia Barat", "ART": "Waktu Piawai Argentina", "AEDT": "Waktu Siang Australia Timur", "AWST": "Waktu Piawai Australia Barat", "MEZ": "Waktu Piawai Eropah Tengah", "WART": "Waktu Piawai Argentina Barat", "HEOG": "Waktu Musim Panas Greenland Barat", "ACST": "Waktu Piawai Australia Tengah", "HEEG": "Waktu Musim Panas Greenland Timur", "PDT": "Waktu Siang Pasifik", "BOT": "Waktu Bolivia", "ACWDT": "Waktu Siang Barat Tengah Australia", "JDT": "Waktu Siang Jepun", "TMST": "Waktu Musim Panas Turkmenistan", "MST": "MST", "WAST": "Waktu Musim Panas Afrika Barat", "HEPMX": "Waktu Siang Pasifik Mexico", "ARST": "Waktu Musim Panas Argentina", "HKT": "Waktu Piawai Hong Kong", "COST": "Waktu Musim Panas Colombia", "WITA": "Waktu Indonesia Tengah", "NZST": "Waktu Piawai New Zealand", "LHST": "Waktu Piawai Lord Howe", "SRT": "Waktu Suriname", "CAT": "Waktu Afrika Tengah", "WARST": "Waktu Musim Panas Argentina Barat", "TMT": "Waktu Piawai Turkmenistan", "EDT": "Waktu Siang Timur", "BT": "Waktu Bhutan", "∅∅∅": "Waktu Musim Panas Azores", "GFT": "Waktu Guyana Perancis", "HADT": "Waktu Siang Hawaii-Aleutian", "AKDT": "Waktu Siang Alaska", "CDT": "Waktu Siang Tengah", "PST": "Waktu Piawai Pasifik", "IST": "Waktu Piawai India", "ACWST": "Waktu Piawai Barat Tengah Australia", "GMT": "Waktu Min Greenwich", "HKST": "Waktu Musim Panas Hong Kong", "CHADT": "Waktu Siang Chatham", "ACDT": "Waktu Siang Australia Tengah", "HNNOMX": "Waktu Piawai Barat Laut Mexico", "HENOMX": "Waktu Siang Barat Laut Mexico", "AEST": "Waktu Piawai Timur Australia", "HAST": "Waktu Piawai Hawaii-Aleutian", "GYT": "Waktu Guyana", "CST": "Waktu Piawai Pusat", "WIT": "Waktu Indonesia Timur", "CLT": "Waktu Piawai Chile", "UYT": "Waktu Piawai Uruguay", "ECT": "Waktu Ecuador", "SGT": "Waktu Piawai Singapura", "HNT": "Waktu Piawai Newfoundland", "SAST": "Waktu Piawai Afrika Selatan", "HECU": "Waktu Siang Cuba", "MESZ": "Waktu Musim Panas Eropah Tengah", "VET": "Waktu Venezuela", "ChST": "Waktu Piawai Chamorro", "HNPMX": "Waktu Piawai Pasifik Mexico", "EAT": "Waktu Afrika Timur", "WIB": "Waktu Indonesia Barat", "MYT": "Waktu Malaysia", "HNOG": "Waktu Piawai Greenland Barat", "AST": "Waktu Piawai Atlantik", "WESZ": "Waktu Musim Panas Eropah Barat", "LHDT": "Waktu Siang Lord Howe", "HAT": "Waktu Siang Newfoundland", "EST": "Waktu Piawai Timur", "HNCU": "Waktu Piawai Cuba", "NZDT": "Waktu Siang New Zealand", "JST": "Waktu Piawai Jepun", "CLST": "Waktu Musim Panas Chile", "OEZ": "Waktu Piawai Eropah Timur", "WEZ": "Waktu Piawai Eropah Barat", "MDT": "MDT", "UYST": "Waktu Musim Panas Uruguay", "WAT": "Waktu Piawai Afrika Barat", "HEPM": "Waktu Siang Saint Pierre dan Miquelon", "CHAST": "Waktu Piawai Chatham", "ADT": "Waktu Siang Atlantik", "OESZ": "Waktu Musim Panas Eropah Timur", "COT": "Waktu Piawai Colombia", "HNEG": "Waktu Piawai Greenland Timur", "AKST": "Waktu Piawai Alaska", "HNPM": "Waktu Piawai Saint Pierre dan Miquelon"},
}
}
diff --git a/mt/mt.go b/mt/mt.go
index ae54b6c0..42fa63d6 100644
--- a/mt/mt.go
+++ b/mt/mt.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"QK", "WK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Qabel Kristu", "Wara Kristu"},
- timezones: map[string]string{"ACWDT": "ACWDT", "NZDT": "NZDT", "MEZ": "Ħin Ċentrali Ewropew Standard", "BOT": "BOT", "MDT": "MDT", "GYT": "GYT", "WIB": "WIB", "HKST": "HKST", "GMT": "GMT", "GFT": "GFT", "HENOMX": "HENOMX", "COT": "COT", "PDT": "PDT", "WITA": "WITA", "HEPM": "HEPM", "IST": "IST", "WAST": "WAST", "HNPMX": "HNPMX", "UYT": "UYT", "VET": "VET", "HEOG": "HEOG", "AWST": "AWST", "CHAST": "CHAST", "HEPMX": "HEPMX", "AST": "AST", "WIT": "WIT", "AWDT": "AWDT", "CLST": "CLST", "TMST": "TMST", "OESZ": "OESZ", "CDT": "CDT", "ACWST": "ACWST", "PST": "PST", "HEEG": "HEEG", "MYT": "MYT", "BT": "BT", "JDT": "JDT", "HNCU": "HNCU", "UYST": "UYST", "HAT": "HAT", "CLT": "CLT", "TMT": "TMT", "AEDT": "AEDT", "MESZ": "Ħin Ċentrali Ewropew tas-Sajf", "LHDT": "LHDT", "ARST": "ARST", "SAST": "SAST", "JST": "JST", "HNEG": "HNEG", "WAT": "WAT", "EDT": "EDT", "HADT": "HADT", "ART": "ART", "OEZ": "OEZ", "ECT": "ECT", "HECU": "HECU", "EST": "EST", "AKDT": "AKDT", "ACDT": "ACDT", "HNOG": "HNOG", "EAT": "EAT", "COST": "COST", "SGT": "SGT", "HAST": "HAST", "SRT": "SRT", "HNT": "HNT", "HNNOMX": "HNNOMX", "WARST": "WARST", "WESZ": "WESZ", "HKT": "HKT", "CAT": "CAT", "ACST": "ACST", "AEST": "AEST", "CHADT": "CHADT", "ChST": "ChST", "HNPM": "HNPM", "NZST": "NZST", "LHST": "LHST", "∅∅∅": "∅∅∅", "WART": "WART", "MST": "MST", "ADT": "ADT", "WEZ": "WEZ", "AKST": "AKST", "CST": "CST"},
+ timezones: map[string]string{"HENOMX": "HENOMX", "HNEG": "HNEG", "MESZ": "Ħin Ċentrali Ewropew tas-Sajf", "WEZ": "WEZ", "MDT": "MDT", "EDT": "EDT", "COST": "COST", "HEEG": "HEEG", "CST": "CST", "AST": "AST", "OESZ": "OESZ", "HKT": "HKT", "HNNOMX": "HNNOMX", "TMST": "TMST", "AEST": "AEST", "HNPM": "HNPM", "LHST": "LHST", "AWDT": "AWDT", "JST": "JST", "WARST": "WARST", "LHDT": "LHDT", "MYT": "MYT", "AKDT": "AKDT", "HECU": "HECU", "MEZ": "Ħin Ċentrali Ewropew Standard", "HEOG": "HEOG", "ADT": "ADT", "AKST": "AKST", "BOT": "BOT", "VET": "VET", "CLT": "CLT", "OEZ": "OEZ", "ACDT": "ACDT", "CLST": "CLST", "COT": "COT", "HNPMX": "HNPMX", "CAT": "CAT", "ACWST": "ACWST", "JDT": "JDT", "WART": "WART", "TMT": "TMT", "ARST": "ARST", "UYT": "UYT", "UYST": "UYST", "HEPM": "HEPM", "HEPMX": "HEPMX", "HADT": "HADT", "CHADT": "CHADT", "PST": "PST", "IST": "IST", "HNT": "HNT", "GFT": "GFT", "SRT": "SRT", "CDT": "CDT", "CHAST": "CHAST", "WAT": "WAT", "ACST": "ACST", "WESZ": "WESZ", "ART": "ART", "EST": "EST", "SAST": "SAST", "∅∅∅": "∅∅∅", "GYT": "GYT", "EAT": "EAT", "WIB": "WIB", "BT": "BT", "WITA": "WITA", "SGT": "SGT", "ECT": "ECT", "NZST": "NZST", "AEDT": "AEDT", "ChST": "ChST", "HAST": "HAST", "NZDT": "NZDT", "WAST": "WAST", "HAT": "HAT", "WIT": "WIT", "PDT": "PDT", "ACWDT": "ACWDT", "GMT": "GMT", "MST": "MST", "HNCU": "HNCU", "AWST": "AWST", "HNOG": "HNOG", "HKST": "HKST"},
}
}
diff --git a/mt_MT/mt_MT.go b/mt_MT/mt_MT.go
index 52f32002..1d57febe 100644
--- a/mt_MT/mt_MT.go
+++ b/mt_MT/mt_MT.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"QK", "WK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Qabel Kristu", "Wara Kristu"},
- timezones: map[string]string{"HEEG": "HEEG", "EDT": "EDT", "AWST": "AWST", "ARST": "ARST", "WITA": "WITA", "MEZ": "Ħin Ċentrali Ewropew Standard", "CLST": "CLST", "AST": "AST", "HADT": "HADT", "BT": "BT", "HNPM": "HNPM", "ChST": "ChST", "HENOMX": "HENOMX", "GMT": "GMT", "MDT": "MDT", "ART": "ART", "NZDT": "NZDT", "IST": "IST", "WAT": "WAT", "COST": "COST", "SRT": "SRT", "HAST": "HAST", "CHADT": "CHADT", "ACDT": "ACDT", "CAT": "CAT", "WAST": "WAST", "WARST": "WARST", "HECU": "HECU", "WIB": "WIB", "GYT": "GYT", "NZST": "NZST", "TMST": "TMST", "GFT": "GFT", "OEZ": "OEZ", "ADT": "ADT", "UYT": "UYT", "WESZ": "WESZ", "WIT": "WIT", "MESZ": "Ħin Ċentrali Ewropew tas-Sajf", "MST": "MST", "HNPMX": "HNPMX", "CHAST": "CHAST", "HEOG": "HEOG", "ACWDT": "ACWDT", "HNT": "HNT", "AWDT": "AWDT", "LHDT": "LHDT", "SGT": "SGT", "VET": "VET", "JST": "JST", "WART": "WART", "MYT": "MYT", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "ACST": "ACST", "PDT": "PDT", "AEST": "AEST", "HEPM": "HEPM", "JDT": "JDT", "AKST": "AKST", "HAT": "HAT", "CLT": "CLT", "TMT": "TMT", "EAT": "EAT", "COT": "COT", "CST": "CST", "LHST": "LHST", "HKT": "HKT", "SAST": "SAST", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "PST": "PST", "ACWST": "ACWST", "HKST": "HKST", "BOT": "BOT", "HNEG": "HNEG", "ECT": "ECT", "OESZ": "OESZ", "HNOG": "HNOG", "EST": "EST", "HEPMX": "HEPMX", "UYST": "UYST", "AKDT": "AKDT", "CDT": "CDT", "HNCU": "HNCU"},
+ timezones: map[string]string{"HEEG": "HEEG", "HNCU": "HNCU", "CLT": "CLT", "GMT": "GMT", "HKST": "HKST", "HNEG": "HNEG", "MST": "MST", "ACST": "ACST", "COT": "COT", "AKDT": "AKDT", "HKT": "HKT", "WIB": "WIB", "HADT": "HADT", "CAT": "CAT", "JDT": "JDT", "WARST": "WARST", "MYT": "MYT", "BT": "BT", "WITA": "WITA", "WIT": "WIT", "CHADT": "CHADT", "MESZ": "Ħin Ċentrali Ewropew tas-Sajf", "JST": "JST", "HEOG": "HEOG", "SAST": "SAST", "AWST": "AWST", "BOT": "BOT", "WESZ": "WESZ", "MDT": "MDT", "ART": "ART", "COST": "COST", "AKST": "AKST", "UYT": "UYT", "SGT": "SGT", "NZST": "NZST", "NZDT": "NZDT", "MEZ": "Ħin Ċentrali Ewropew Standard", "HECU": "HECU", "EST": "EST", "EDT": "EDT", "HNPM": "HNPM", "EAT": "EAT", "CHAST": "CHAST", "PDT": "PDT", "ACWDT": "ACWDT", "AST": "AST", "HENOMX": "HENOMX", "HNT": "HNT", "HEPMX": "HEPMX", "GYT": "GYT", "VET": "VET", "HNOG": "HNOG", "ADT": "ADT", "ARST": "ARST", "GFT": "GFT", "AEDT": "AEDT", "CST": "CST", "CDT": "CDT", "AWDT": "AWDT", "PST": "PST", "WEZ": "WEZ", "ACDT": "ACDT", "IST": "IST", "WART": "WART", "HNNOMX": "HNNOMX", "HAST": "HAST", "∅∅∅": "∅∅∅", "TMST": "TMST", "UYST": "UYST", "AEST": "AEST", "LHDT": "LHDT", "HNPMX": "HNPMX", "HEPM": "HEPM", "SRT": "SRT", "CLST": "CLST", "OEZ": "OEZ", "OESZ": "OESZ", "TMT": "TMT", "ECT": "ECT", "ACWST": "ACWST", "WAST": "WAST", "WAT": "WAT", "HAT": "HAT", "LHST": "LHST", "ChST": "ChST"},
}
}
diff --git a/mua/mua.go b/mua/mua.go
index 80367b92..46253515 100644
--- a/mua/mua.go
+++ b/mua/mua.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "PK"},
erasNarrow: []string{"", ""},
erasWide: []string{"KǝPel Kristu", "Pel Kristu"},
- timezones: map[string]string{"ACST": "ACST", "PST": "PST", "HNPM": "HNPM", "LHDT": "LHDT", "SAST": "SAST", "CLST": "CLST", "JST": "JST", "TMT": "TMT", "TMST": "TMST", "WAT": "WAT", "HNNOMX": "HNNOMX", "HAST": "HAST", "HEOG": "HEOG", "MEZ": "MEZ", "HECU": "HECU", "EST": "EST", "AKDT": "AKDT", "ARST": "ARST", "HNCU": "HNCU", "HEPM": "HEPM", "MDT": "MDT", "CDT": "CDT", "AST": "AST", "WIB": "WIB", "CLT": "CLT", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "CAT": "CAT", "BT": "BT", "LHST": "LHST", "CHAST": "CHAST", "COST": "COST", "WART": "WART", "WEZ": "WEZ", "HKT": "HKT", "WITA": "WITA", "ChST": "ChST", "SGT": "SGT", "HNPMX": "HNPMX", "ART": "ART", "AWST": "AWST", "NZST": "NZST", "HEEG": "HEEG", "WAST": "WAST", "HENOMX": "HENOMX", "AKST": "AKST", "HNOG": "HNOG", "AEDT": "AEDT", "VET": "VET", "WESZ": "WESZ", "ACWST": "ACWST", "ACWDT": "ACWDT", "AEST": "AEST", "HNEG": "HNEG", "COT": "COT", "CST": "CST", "HADT": "HADT", "CHADT": "CHADT", "GMT": "GMT", "EDT": "EDT", "AWDT": "AWDT", "HKST": "HKST", "IST": "IST", "UYST": "UYST", "HNT": "HNT", "MESZ": "MESZ", "JDT": "JDT", "ACDT": "ACDT", "UYT": "UYT", "GYT": "GYT", "MYT": "MYT", "PDT": "PDT", "GFT": "GFT", "EAT": "EAT", "HEPMX": "HEPMX", "ADT": "ADT", "HAT": "HAT", "NZDT": "NZDT", "ECT": "ECT", "MST": "MST", "WIT": "WIT", "SRT": "SRT", "BOT": "BOT", "OESZ": "OESZ", "WARST": "WARST"},
+ timezones: map[string]string{"HAST": "HAST", "WEZ": "WEZ", "OEZ": "OEZ", "MST": "MST", "CST": "CST", "CHAST": "CHAST", "BOT": "BOT", "PDT": "PDT", "MDT": "MDT", "HKT": "HKT", "ACST": "ACST", "COST": "COST", "GYT": "GYT", "CDT": "CDT", "SAST": "SAST", "HNPM": "HNPM", "HEOG": "HEOG", "HAT": "HAT", "WAT": "WAT", "HEEG": "HEEG", "HEPM": "HEPM", "HECU": "HECU", "TMT": "TMT", "ACWST": "ACWST", "JDT": "JDT", "VET": "VET", "WESZ": "WESZ", "WAST": "WAST", "EDT": "EDT", "HADT": "HADT", "ECT": "ECT", "AKST": "AKST", "UYT": "UYT", "ART": "ART", "ACDT": "ACDT", "COT": "COT", "WITA": "WITA", "HNPMX": "HNPMX", "CLT": "CLT", "ADT": "ADT", "MYT": "MYT", "WARST": "WARST", "AST": "AST", "BT": "BT", "GFT": "GFT", "HEPMX": "HEPMX", "AWST": "AWST", "SGT": "SGT", "LHDT": "LHDT", "ACWDT": "ACWDT", "HNOG": "HNOG", "IST": "IST", "EST": "EST", "HNNOMX": "HNNOMX", "HNT": "HNT", "ChST": "ChST", "SRT": "SRT", "AWDT": "AWDT", "NZDT": "NZDT", "HENOMX": "HENOMX", "OESZ": "OESZ", "HKST": "HKST", "UYST": "UYST", "WIT": "WIT", "JST": "JST", "MESZ": "MESZ", "AEST": "AEST", "PST": "PST", "NZST": "NZST", "CAT": "CAT", "WART": "WART", "EAT": "EAT", "HNCU": "HNCU", "MEZ": "MEZ", "GMT": "GMT", "AEDT": "AEDT", "AKDT": "AKDT", "LHST": "LHST", "WIB": "WIB", "∅∅∅": "∅∅∅", "ARST": "ARST", "TMST": "TMST", "HNEG": "HNEG", "CHADT": "CHADT", "CLST": "CLST"},
}
}
diff --git a/mua_CM/mua_CM.go b/mua_CM/mua_CM.go
index 2298af79..284b2701 100644
--- a/mua_CM/mua_CM.go
+++ b/mua_CM/mua_CM.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "PK"},
erasNarrow: []string{"", ""},
erasWide: []string{"KǝPel Kristu", "Pel Kristu"},
- timezones: map[string]string{"AEST": "AEST", "WITA": "WITA", "NZDT": "NZDT", "CHADT": "CHADT", "JST": "JST", "WIT": "WIT", "PDT": "PDT", "ARST": "ARST", "BOT": "BOT", "CAT": "CAT", "ACDT": "ACDT", "HECU": "HECU", "UYST": "UYST", "HADT": "HADT", "HNPM": "HNPM", "IST": "IST", "HEEG": "HEEG", "WAST": "WAST", "COST": "COST", "CDT": "CDT", "AWST": "AWST", "AWDT": "AWDT", "JDT": "JDT", "CLT": "CLT", "GFT": "GFT", "GMT": "GMT", "MYT": "MYT", "HEPM": "HEPM", "HNEG": "HNEG", "EDT": "EDT", "BT": "BT", "TMST": "TMST", "OESZ": "OESZ", "CLST": "CLST", "ACST": "ACST", "WART": "WART", "UYT": "UYT", "AKST": "AKST", "PST": "PST", "HNT": "HNT", "LHDT": "LHDT", "AKDT": "AKDT", "ADT": "ADT", "WEZ": "WEZ", "AEDT": "AEDT", "WARST": "WARST", "WESZ": "WESZ", "ACWST": "ACWST", "HNCU": "HNCU", "ART": "ART", "HKT": "HKT", "MEZ": "MEZ", "GYT": "GYT", "CST": "CST", "ECT": "ECT", "MDT": "MDT", "HEPMX": "HEPMX", "HENOMX": "HENOMX", "MST": "MST", "VET": "VET", "HEOG": "HEOG", "CHAST": "CHAST", "WAT": "WAT", "OEZ": "OEZ", "SGT": "SGT", "HNPMX": "HNPMX", "AST": "AST", "ACWDT": "ACWDT", "SAST": "SAST", "∅∅∅": "∅∅∅", "EAT": "EAT", "COT": "COT", "EST": "EST", "HNOG": "HNOG", "MESZ": "MESZ", "NZST": "NZST", "ChST": "ChST", "HNNOMX": "HNNOMX", "WIB": "WIB", "HAST": "HAST", "SRT": "SRT", "HAT": "HAT", "HKST": "HKST", "LHST": "LHST", "TMT": "TMT"},
+ timezones: map[string]string{"HNCU": "HNCU", "NZST": "NZST", "MESZ": "MESZ", "EST": "EST", "AKST": "AKST", "GMT": "GMT", "WAT": "WAT", "HNT": "HNT", "ACWDT": "ACWDT", "JDT": "JDT", "WEZ": "WEZ", "MST": "MST", "ARST": "ARST", "AEST": "AEST", "GFT": "GFT", "ChST": "ChST", "UYT": "UYT", "HEPM": "HEPM", "VET": "VET", "WESZ": "WESZ", "HNNOMX": "HNNOMX", "HAT": "HAT", "∅∅∅": "∅∅∅", "BOT": "BOT", "ECT": "ECT", "PDT": "PDT", "HAST": "HAST", "MEZ": "MEZ", "WART": "WART", "CST": "CST", "CHAST": "CHAST", "SGT": "SGT", "HNOG": "HNOG", "WAST": "WAST", "SRT": "SRT", "EAT": "EAT", "HECU": "HECU", "CHADT": "CHADT", "PST": "PST", "CLST": "CLST", "AST": "AST", "EDT": "EDT", "WITA": "WITA", "UYST": "UYST", "OEZ": "OEZ", "TMT": "TMT", "HEPMX": "HEPMX", "HADT": "HADT", "NZDT": "NZDT", "HEOG": "HEOG", "MDT": "MDT", "ACWST": "ACWST", "JST": "JST", "WARST": "WARST", "CLT": "CLT", "HKT": "HKT", "WIT": "WIT", "MYT": "MYT", "TMST": "TMST", "BT": "BT", "AEDT": "AEDT", "HNEG": "HNEG", "GYT": "GYT", "CDT": "CDT", "AWST": "AWST", "IST": "IST", "HKST": "HKST", "ACST": "ACST", "ACDT": "ACDT", "AKDT": "AKDT", "HNPM": "HNPM", "AWDT": "AWDT", "CAT": "CAT", "COT": "COT", "LHST": "LHST", "WIB": "WIB", "ADT": "ADT", "OESZ": "OESZ", "COST": "COST", "HENOMX": "HENOMX", "HEEG": "HEEG", "SAST": "SAST", "LHDT": "LHDT", "HNPMX": "HNPMX", "ART": "ART"},
}
}
diff --git a/my/my.go b/my/my.go
index e0d402a0..cb61bb17 100644
--- a/my/my.go
+++ b/my/my.go
@@ -68,7 +68,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ဘီစီ", "အေဒီ"},
erasNarrow: []string{"", ""},
erasWide: []string{"ခရစ်တော် မပေါ်မီနှစ်", "ခရစ်နှစ်"},
- timezones: map[string]string{"HENOMX": "အနောက်တောင် မက္ကစီကို နွေရာသီ စံတော်ချိန်", "SRT": "စူးရီနာမ်အချိန်", "HNPM": "စိန့်ပီအဲနှင့်မီခွီလွန်စံတော်ချိန်", "CHAST": "ချားသမ်စံတော်ချိန်", "CAT": "အလယ်အာဖရိက အချိန်", "EAT": "အရှေ့အာဖရိက အချိန်", "MST": "မကာအို စံတော်ချိန်", "HADT": "ဟာဝိုင်ယီ အယ်လူးရှန်း နွေရာသီ စံတော်ချိန်", "ACWDT": "ဩစတြေးလျား အလယ်အနောက်ပိုင်း နွေရာသီ အချိန်", "HNOG": "အနောက် ဂရင်းလန်း စံတော်ချိန်", "HNCU": "ကျူးဘား စံတော်ချိန်", "AKST": "အလားစကားစံတော်ချိန်", "MYT": "မလေးရှား အချိန်", "UYST": "ဥရုဂွေး နွေရာသီ အချိန်", "VET": "ဗင်နီဇွဲလား အချိန်", "ACWST": "ဩစတြေးလျား အလယ်အနောက်ပိုင်း စံတော်ချိန်", "HEPM": "စိန့်ပီအဲနှင့် မီခွီလွန် နွေရာသီ စံတော်ချိန်", "MESZ": "ဥရောပ အလယ်ပိုင်း နွေရာသီ အချိန်", "ChST": "ချာမိုရိုအချိန်", "WAT": "အနောက်အာဖရိက စံတော်ချိန်", "WIB": "အနောက်ပိုင်း အင်ဒိုနီးရှား အချိန်", "HEOG": "အနောက် ဂရင်းလန် နွေရာသီ စံတော်ချိန်", "AEDT": "အရှေ့ဩစတြေးလျား နွေရာသီ အချိန်", "AWST": "အနောက်ဩစတြေးလျား စံတော်ချိန်", "LHST": "လော့ဒ်ဟောင်စံတော်ချိန်", "IST": "အိန္ဒိယ စံတော်ချိန်", "TMT": "တာ့ခ်မင်နစ္စတန် စံတော်ချိန်", "TMST": "တာ့ခ်မင်နစ္စတန် နွေရာသီ အချိန်", "HNT": "နယူးဖောင်လန် စံတော်ချိန်", "SAST": "တောင်အာဖရိက အချိန်", "ACST": "ဩစတြေးလျား အလယ်ပိုင်း စံတော်ချိန်", "ECT": "အီကွေဒေါ အချိန်", "EST": "မြောက်အမေရိက အရှေ့ပိုင်းစံတော်ချိန်", "EDT": "မြောက်အမေရိက အရှေ့ပိုင်း နွေရာသီစံတော်ချိန်", "AWDT": "ဩစတြေးလျား နွေရာသီ အချိန်", "HKST": "ဟောင်ကောင် နွေရာသီ အချိန်", "WAST": "အနောက်အာဖရိက နွေရာသီ အချိန်", "HECU": "ကျူးဘား နွေရာသီ စံတော်ချိန်", "AKDT": "အလားစကား နွေရာသီစံတော်ချိန်", "NZST": "နယူးဇီလန် စံတော်ချိန်", "BT": "ဘူတန် အချိန်", "WESZ": "အနောက်ဥရောပ နွေရာသီ အချိန်", "HNEG": "အရှေ့ဂရင်းလန်း စံတော်ချိန်", "OEZ": "အရှေ့ဥရောပ စံတော်ချိန်", "OESZ": "အရှေ့ဥရောပ နွေရာသီ အချိန်", "COT": "ကိုလံဘီယာ စံတော်ချိန်", "HAST": "ဟာဝိုင်ယီ အယ်လူးရှန်း စံတော်ချိန်", "WIT": "အရှေ့ပိုင်း အင်ဒိုနီးရှား အချိန်", "HKT": "ဟောင်ကောင် စံတော်ချိန်", "MEZ": "ဥရောပ အလယ်ပိုင်း စံတော်ချိန်", "BOT": "ဘိုလီးဘီးယား အချိန်", "HEEG": "အရှေ့ဂရင်းလန် နွေရာသီ စံတော်ချိန်", "GFT": "ပြင်သစ် ဂီအားနား အချိန်", "COST": "ကိုလံဘီယာ နွေရာသီ အချိန်", "CST": "မြောက်အမေရိက အလယ်ပိုင်းစံတော်ချိန်", "ARST": "အာဂျင်တီးနား နွေရာသီအချိန်", "LHDT": "လော့ဒ်ဟောင် နွေရာသီ အချိန်", "CLT": "ချီလီ စံတော်ချိန်", "JDT": "ဂျပန် နွေရာသီ အချိန်", "GMT": "ဂရင်းနစ် စံတော်ချိန်", "MDT": "မကာအို နွေရာသီ အချိန်", "UYT": "ဥရုဂွေး စံတော်ချိန်", "HAT": "နယူးဖောင်လန် နွေရာသီ စံတော်ချိန်", "WITA": "အလယ်ပိုင်း အင်ဒိုနီးရှား အချိန်", "HNPMX": "မက္ကဆီကန် ပစိဖိတ် စံတော်ချိန်", "HEPMX": "မက္ကစီကန် ပစိဖိတ် နွေရာသီ စံတော်ချိန်", "PST": "မြောက်အမေရိက ပစိဖိတ်စံတော်ချိန်", "WEZ": "အနောက်ဥရောပ စံတော်ချိန်", "HNNOMX": "အနောက်တောင် မက္ကဆီကို စံတော်ချိန်", "GYT": "ဂိုင်ယာနာ အချိန်", "ART": "အာဂျင်တီးနား စံတော်ချိန်", "ACDT": "ဩစတြေးလျား အလယ်ပိုင်း နွေရာသီ အချိန်", "WARST": "အနောက် အာဂျင်တီးနား နွေရာသီ အချိန်", "PDT": "မြောက်အမေရိက ပစိဖိတ် နွေရာသီစံတော်ချိန်", "CHADT": "ချာသမ် နွေရာသီ အချိန်", "CLST": "ချီလီ နွေရာသီ အချိန်", "JST": "ဂျပန် စံတော်ချိန်", "AEST": "အရှေ့ဩစတြေးလျား စံတော်ချိန်", "NZDT": "နယူးဇီလန် နွေရာသီ အချိန်", "∅∅∅": "ပီရူး နွေရာသီ အချိန်", "WART": "အနောက် အာဂျင်တီးနား စံတော်ချိန်", "SGT": "စင်္ကာပူ အချိန်", "CDT": "မြောက်အမေရိက အလယ်ပိုင်း နွေရာသီစံတော်ချိန်", "AST": "အတ္တလန်တစ် စံတော်ချိန်", "ADT": "အတ္တလန်တစ် နွေရာသီ စံတော်ချိန်"},
+ timezones: map[string]string{"AEST": "အရှေ့ဩစတြေးလျား စံတော်ချိန်", "AEDT": "အရှေ့ဩစတြေးလျား နွေရာသီ အချိန်", "LHST": "လော့ဒ်ဟောင်စံတော်ချိန်", "EAT": "အရှေ့အာဖရိက အချိန်", "WIB": "အနောက်ပိုင်း အင်ဒိုနီးရှား အချိန်", "CHADT": "ချာသမ် နွေရာသီ အချိန်", "CAT": "အလယ်အာဖရိက အချိန်", "COST": "ကိုလံဘီယာ နွေရာသီ အချိန်", "HNEG": "အရှေ့ဂရင်းလန်း စံတော်ချိန်", "∅∅∅": "ပီရူး နွေရာသီ အချိန်", "AST": "အတ္တလန်တစ် စံတော်ချိန်", "HNT": "နယူးဖောင်လန် စံတော်ချိန်", "WITA": "အလယ်ပိုင်း အင်ဒိုနီးရှား အချိန်", "MDT": "မြောက်အမေရိက တောင်တန်းဒေသ နွေရာသီစံတော်ချိန်", "BOT": "ဘိုလီးဘီးယား အချိန်", "PDT": "မြောက်အမေရိက ပစိဖိတ် နွေရာသီစံတော်ချိန်", "WEZ": "အနောက်ဥရောပ စံတော်ချိန်", "WAT": "အနောက်အာဖရိက စံတော်ချိန်", "HEEG": "အရှေ့ဂရင်းလန် နွေရာသီ စံတော်ချိန်", "MST": "မြောက်အမေရိက တောင်တန်းဒေသစံတော်ချိန်", "HECU": "ကျူးဘား နွေရာသီ စံတော်ချိန်", "GMT": "ဂရင်းနစ် စံတော်ချိန်", "ACST": "ဩစတြေးလျား အလယ်ပိုင်း စံတော်ချိန်", "PST": "မြောက်အမေရိက ပစိဖိတ်စံတော်ချိန်", "ADT": "အတ္တလန်တစ် နွေရာသီ စံတော်ချိန်", "OESZ": "အရှေ့ဥရောပ နွေရာသီ အချိန်", "MYT": "မလေးရှား အချိန်", "ACDT": "ဩစတြေးလျား အလယ်ပိုင်း နွေရာသီ အချိန်", "HNNOMX": "အနောက်တောင် မက္ကဆီကို စံတော်ချိန်", "HAST": "ဟာဝိုင်ယီ အယ်လူးရှန်း စံတော်ချိန်", "IST": "အိန္ဒိယ စံတော်ချိန်", "WAST": "အနောက်အာဖရိက နွေရာသီ အချိန်", "HKST": "ဟောင်ကောင် နွေရာသီ အချိန်", "AKST": "အလားစကားစံတော်ချိန်", "HNPM": "စိန့်ပီအဲနှင့်မီခွီလွန်စံတော်ချိန်", "SAST": "တောင်အာဖရိက အချိန်", "HADT": "ဟာဝိုင်ယီ အယ်လူးရှန်း နွေရာသီ စံတော်ချိန်", "WART": "အနောက် အာဂျင်တီးနား စံတော်ချိန်", "CLST": "ချီလီ နွေရာသီ အချိန်", "UYT": "ဥရုဂွေး စံတော်ချိန်", "HNCU": "ကျူးဘား စံတော်ချိန်", "AWST": "အနောက်ဩစတြေးလျား စံတော်ချိန်", "TMST": "တာ့ခ်မင်နစ္စတန် နွေရာသီ အချိန်", "CHAST": "ချားသမ်စံတော်ချိန်", "ACWST": "ဩစတြေးလျား အလယ်အနောက်ပိုင်း စံတော်ချိန်", "CLT": "ချီလီ စံတော်ချိန်", "MEZ": "ဥရောပ အလယ်ပိုင်း စံတော်ချိန်", "WARST": "အနောက် အာဂျင်တီးနား နွေရာသီ အချိန်", "ART": "အာဂျင်တီးနား စံတော်ချိန်", "HNPMX": "မက္ကဆီကန် ပစိဖိတ် စံတော်ချိန်", "CST": "မြောက်အမေရိက အလယ်ပိုင်းစံတော်ချိန်", "NZDT": "နယူးဇီလန် နွေရာသီ အချိန်", "JDT": "ဂျပန် နွေရာသီ အချိန်", "GFT": "ပြင်သစ် ဂီအားနား အချိန်", "ChST": "ချာမိုရိုအချိန်", "HEPM": "စိန့်ပီအဲနှင့် မီခွီလွန် နွေရာသီ စံတော်ချိန်", "CDT": "မြောက်အမေရိက အလယ်ပိုင်း နွေရာသီစံတော်ချိန်", "AWDT": "ဩစတြေးလျား နွေရာသီ အချိန်", "SGT": "စင်္ကာပူ အချိန်", "MESZ": "ဥရောပ အလယ်ပိုင်း နွေရာသီ အချိန်", "JST": "ဂျပန် စံတော်ချိန်", "COT": "ကိုလံဘီယာ စံတော်ချိန်", "UYST": "ဥရုဂွေး နွေရာသီ အချိန်", "GYT": "ဂိုင်ယာနာ အချိန်", "ARST": "အာဂျင်တီးနား နွေရာသီအချိန်", "EDT": "မြောက်အမေရိက အရှေ့ပိုင်း နွေရာသီစံတော်ချိန်", "HEOG": "အနောက် ဂရင်းလန် နွေရာသီ စံတော်ချိန်", "OEZ": "အရှေ့ဥရောပ စံတော်ချိန်", "WESZ": "အနောက်ဥရောပ နွေရာသီ အချိန်", "VET": "ဗင်နီဇွဲလား အချိန်", "HNOG": "အနောက် ဂရင်းလန်း စံတော်ချိန်", "TMT": "တာ့ခ်မင်နစ္စတန် စံတော်ချိန်", "HENOMX": "အနောက်တောင် မက္ကစီကို နွေရာသီ စံတော်ချိန်", "WIT": "အရှေ့ပိုင်း အင်ဒိုနီးရှား အချိန်", "ECT": "အီကွေဒေါ အချိန်", "NZST": "နယူးဇီလန် စံတော်ချိန်", "HKT": "ဟောင်ကောင် စံတော်ချိန်", "HAT": "နယူးဖောင်လန် နွေရာသီ စံတော်ချိန်", "AKDT": "အလားစကား နွေရာသီစံတော်ချိန်", "ACWDT": "ဩစတြေးလျား အလယ်အနောက်ပိုင်း နွေရာသီ အချိန်", "SRT": "စူးရီနာမ်အချိန်", "EST": "မြောက်အမေရိက အရှေ့ပိုင်းစံတော်ချိန်", "BT": "ဘူတန် အချိန်", "LHDT": "လော့ဒ်ဟောင် နွေရာသီ အချိန်", "HEPMX": "မက္ကစီကန် ပစိဖိတ် နွေရာသီ စံတော်ချိန်"},
}
}
diff --git a/my_MM/my_MM.go b/my_MM/my_MM.go
index 4526f03b..fc514e9a 100644
--- a/my_MM/my_MM.go
+++ b/my_MM/my_MM.go
@@ -68,7 +68,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ဘီစီ", "အေဒီ"},
erasNarrow: []string{"", ""},
erasWide: []string{"ခရစ်တော် မပေါ်မီနှစ်", "ခရစ်နှစ်"},
- timezones: map[string]string{"HECU": "ကျူးဘား နွေရာသီ စံတော်ချိန်", "GYT": "ဂိုင်ယာနာ အချိန်", "VET": "ဗင်နီဇွဲလား အချိန်", "ACWDT": "ဩစတြေးလျား အလယ်အနောက်ပိုင်း နွေရာသီ အချိန်", "ChST": "ချာမိုရိုအချိန်", "HNEG": "အရှေ့ဂရင်းလန်း စံတော်ချိန်", "ACDT": "ဩစတြေးလျား အလယ်ပိုင်း နွေရာသီ အချိန်", "WAST": "အနောက်အာဖရိက နွေရာသီ အချိန်", "HNPMX": "မက္ကဆီကန် ပစိဖိတ် စံတော်ချိန်", "BT": "ဘူတန် အချိန်", "ACWST": "ဩစတြေးလျား အလယ်အနောက်ပိုင်း စံတော်ချိန်", "HAT": "နယူးဖောင်လန် နွေရာသီ စံတော်ချိန်", "HEPM": "စိန့်ပီအဲနှင့် မီခွီလွန် နွေရာသီ စံတော်ချိန်", "JST": "ဂျပန် စံတော်ချိန်", "OEZ": "အရှေ့ဥရောပ စံတော်ချိန်", "HEPMX": "မက္ကစီကန် ပစိဖိတ် နွေရာသီ စံတော်ချိန်", "AST": "အတ္တလန်တစ် စံတော်ချိန်", "HAST": "ဟာဝိုင်ယီ အယ်လူးရှန်း စံတော်ချိန်", "HKT": "ဟောင်ကောင် စံတော်ချိန်", "MESZ": "ဥရောပ အလယ်ပိုင်း နွေရာသီ အချိန်", "HNNOMX": "အနောက်တောင် မက္ကဆီကို စံတော်ချိန်", "WIB": "အနောက်ပိုင်း အင်ဒိုနီးရှား အချိန်", "ARST": "အာဂျင်တီးနား နွေရာသီအချိန်", "HKST": "ဟောင်ကောင် နွေရာသီ အချိန်", "∅∅∅": "အာမေဇုံ နွေရာသီအချိန်", "OESZ": "အရှေ့ဥရောပ နွေရာသီ အချိန်", "WART": "အနောက် အာဂျင်တီးနား စံတော်ချိန်", "COST": "ကိုလံဘီယာ နွေရာသီ အချိန်", "UYST": "ဥရုဂွေး နွေရာသီ အချိန်", "ART": "အာဂျင်တီးနား စံတော်ချိန်", "LHDT": "လော့ဒ်ဟောင် နွေရာသီ အချိန်", "NZDT": "နယူးဇီလန် နွေရာသီ အချိန်", "CLST": "ချီလီ နွေရာသီ အချိန်", "CAT": "အလယ်အာဖရိက အချိန်", "ECT": "အီကွေဒေါ အချိန်", "SGT": "စင်္ကာပူ အချိန်", "WEZ": "အနောက်ဥရောပ စံတော်ချိန်", "HNOG": "အနောက် ဂရင်းလန်း စံတော်ချိန်", "WITA": "အလယ်ပိုင်း အင်ဒိုနီးရှား အချိန်", "HNCU": "ကျူးဘား စံတော်ချိန်", "UYT": "ဥရုဂွေး စံတော်ချိန်", "CHADT": "ချာသမ် နွေရာသီ အချိန်", "TMST": "တာ့ခ်မင်နစ္စတန် နွေရာသီ အချိန်", "ACST": "ဩစတြေးလျား အလယ်ပိုင်း စံတော်ချိန်", "AKST": "အလားစကားစံတော်ချိန်", "WESZ": "အနောက်ဥရောပ နွေရာသီ အချိန်", "AWST": "အနောက်ဩစတြေးလျား စံတော်ချိန်", "HNPM": "စိန့်ပီအဲနှင့်မီခွီလွန်စံတော်ချိန်", "BOT": "ဘိုလီးဘီးယား အချိန်", "COT": "ကိုလံဘီယာ စံတော်ချိန်", "EDT": "မြောက်အမေရိက အရှေ့ပိုင်း နွေရာသီစံတော်ချိန်", "CST": "မြောက်အမေရိက အလယ်ပိုင်းစံတော်ချိန်", "ADT": "အတ္တလန်တစ် နွေရာသီ စံတော်ချိန်", "PST": "မြောက်အမေရိက ပစိဖိတ်စံတော်ချိန်", "HEOG": "အနောက် ဂရင်းလန် နွေရာသီ စံတော်ချိန်", "AWDT": "ဩစတြေးလျား နွေရာသီ အချိန်", "WAT": "အနောက်အာဖရိက စံတော်ချိန်", "WARST": "အနောက် အာဂျင်တီးနား နွေရာသီ အချိန်", "MYT": "မလေးရှား အချိန်", "HADT": "ဟာဝိုင်ယီ အယ်လူးရှန်း နွေရာသီ စံတော်ချိန်", "HEEG": "အရှေ့ဂရင်းလန် နွေရာသီ စံတော်ချိန်", "GFT": "ပြင်သစ် ဂီအားနား အချိန်", "GMT": "ဂရင်းနစ် စံတော်ချိန်", "PDT": "မြောက်အမေရိက ပစိဖိတ် နွေရာသီစံတော်ချိန်", "HNT": "နယူးဖောင်လန် စံတော်ချိန်", "LHST": "လော့ဒ်ဟောင်စံတော်ချိန်", "SAST": "တောင်အာဖရိက အချိန်", "CLT": "ချီလီ စံတော်ချိန်", "EST": "မြောက်အမေရိက အရှေ့ပိုင်းစံတော်ချိန်", "NZST": "နယူးဇီလန် စံတော်ချိန်", "SRT": "စူးရီနာမ်အချိန်", "AEST": "အရှေ့ဩစတြေးလျား စံတော်ချိန်", "MEZ": "ဥရောပ အလယ်ပိုင်း စံတော်ချိန်", "JDT": "ဂျပန် နွေရာသီ အချိန်", "EAT": "အရှေ့အာဖရိက အချိန်", "MST": "မကာအို စံတော်ချိန်", "AEDT": "အရှေ့ဩစတြေးလျား နွေရာသီ အချိန်", "IST": "အိန္ဒိယ စံတော်ချိန်", "TMT": "တာ့ခ်မင်နစ္စတန် စံတော်ချိန်", "CDT": "မြောက်အမေရိက အလယ်ပိုင်း နွေရာသီစံတော်ချိန်", "WIT": "အရှေ့ပိုင်း အင်ဒိုနီးရှား အချိန်", "CHAST": "ချားသမ်စံတော်ချိန်", "HENOMX": "အနောက်တောင် မက္ကစီကို နွေရာသီ စံတော်ချိန်", "MDT": "မကာအို နွေရာသီ အချိန်", "AKDT": "အလားစကား နွေရာသီစံတော်ချိန်"},
+ timezones: map[string]string{"MDT": "မြောက်အမေရိက တောင်တန်းဒေသ နွေရာသီစံတော်ချိန်", "WIB": "အနောက်ပိုင်း အင်ဒိုနီးရှား အချိန်", "AWST": "အနောက်ဩစတြေးလျား စံတော်ချိန်", "ECT": "အီကွေဒေါ အချိန်", "WESZ": "အနောက်ဥရောပ နွေရာသီ အချိန်", "HNEG": "အရှေ့ဂရင်းလန်း စံတော်ချိန်", "NZST": "နယူးဇီလန် စံတော်ချိန်", "VET": "ဗင်နီဇွဲလား အချိန်", "EDT": "မြောက်အမေရိက အရှေ့ပိုင်း နွေရာသီစံတော်ချိန်", "BT": "ဘူတန် အချိန်", "WITA": "အလယ်ပိုင်း အင်ဒိုနီးရှား အချိန်", "AEST": "အရှေ့ဩစတြေးလျား စံတော်ချိန်", "HEPM": "စိန့်ပီအဲနှင့် မီခွီလွန် နွေရာသီ စံတော်ချိန်", "LHDT": "လော့ဒ်ဟောင် နွေရာသီ အချိန်", "WEZ": "အနောက်ဥရောပ စံတော်ချိန်", "WAST": "အနောက်အာဖရိက နွေရာသီ အချိန်", "ACDT": "ဩစတြေးလျား အလယ်ပိုင်း နွေရာသီ အချိန်", "HENOMX": "အနောက်တောင် မက္ကစီကို နွေရာသီ စံတော်ချိန်", "∅∅∅": "∅∅∅", "ChST": "ချာမိုရိုအချိန်", "UYST": "ဥရုဂွေး နွေရာသီ အချိန်", "OEZ": "အရှေ့ဥရောပ စံတော်ချိန်", "WAT": "အနောက်အာဖရိက စံတော်ချိန်", "LHST": "လော့ဒ်ဟောင်စံတော်ချိန်", "GYT": "ဂိုင်ယာနာ အချိန်", "CDT": "မြောက်အမေရိက အလယ်ပိုင်း နွေရာသီစံတော်ချိန်", "AWDT": "ဩစတြေးလျား နွေရာသီ အချိန်", "SGT": "စင်္ကာပူ အချိန်", "ACWST": "ဩစတြေးလျား အလယ်အနောက်ပိုင်း စံတော်ချိန်", "JST": "ဂျပန် စံတော်ချိန်", "AEDT": "အရှေ့ဩစတြေးလျား နွေရာသီ အချိန်", "GMT": "ဂရင်းနစ် စံတော်ချိန်", "UYT": "ဥရုဂွေး စံတော်ချိန်", "ACWDT": "ဩစတြေးလျား အလယ်အနောက်ပိုင်း နွေရာသီ အချိန်", "WART": "အနောက် အာဂျင်တီးနား စံတော်ချိန်", "CLST": "ချီလီ နွေရာသီ အချိန်", "TMT": "တာ့ခ်မင်နစ္စတန် စံတော်ချိန်", "HKST": "ဟောင်ကောင် နွေရာသီ အချိန်", "COST": "ကိုလံဘီယာ နွေရာသီ အချိန်", "HNNOMX": "အနောက်တောင် မက္ကဆီကို စံတော်ချိန်", "MESZ": "ဥရောပ အလယ်ပိုင်း နွေရာသီ အချိန်", "CLT": "ချီလီ စံတော်ချိန်", "COT": "ကိုလံဘီယာ စံတော်ချိန်", "SRT": "စူးရီနာမ်အချိန်", "HNCU": "ကျူးဘား စံတော်ချိန်", "IST": "အိန္ဒိယ စံတော်ချိန်", "TMST": "တာ့ခ်မင်နစ္စတန် နွေရာသီ အချိန်", "HNPM": "စိန့်ပီအဲနှင့်မီခွီလွန်စံတော်ချိန်", "HEEG": "အရှေ့ဂရင်းလန် နွေရာသီ စံတော်ချိန်", "SAST": "တောင်အာဖရိက အချိန်", "HEPMX": "မက္ကစီကန် ပစိဖိတ် နွေရာသီ စံတော်ချိန်", "CHAST": "ချားသမ်စံတော်ချိန်", "ACST": "ဩစတြေးလျား အလယ်ပိုင်း စံတော်ချိန်", "HNOG": "အနောက် ဂရင်းလန်း စံတော်ချိန်", "MST": "မြောက်အမေရိက တောင်တန်းဒေသစံတော်ချိန်", "GFT": "ပြင်သစ် ဂီအားနား အချိန်", "HECU": "ကျူးဘား နွေရာသီ စံတော်ချိန်", "PST": "မြောက်အမေရိက ပစိဖိတ်စံတော်ချိန်", "HEOG": "အနောက် ဂရင်းလန် နွေရာသီ စံတော်ချိန်", "ADT": "အတ္တလန်တစ် နွေရာသီ စံတော်ချိန်", "WARST": "အနောက် အာဂျင်တီးနား နွေရာသီ အချိန်", "AKDT": "အလားစကား နွေရာသီစံတော်ချိန်", "HNPMX": "မက္ကဆီကန် ပစိဖိတ် စံတော်ချိန်", "CHADT": "ချာသမ် နွေရာသီ အချိန်", "BOT": "ဘိုလီးဘီးယား အချိန်", "PDT": "မြောက်အမေရိက ပစိဖိတ် နွေရာသီစံတော်ချိန်", "HAST": "ဟာဝိုင်ယီ အယ်လူးရှန်း စံတော်ချိန်", "CAT": "အလယ်အာဖရိက အချိန်", "ARST": "အာဂျင်တီးနား နွေရာသီအချိန်", "HNT": "နယူးဖောင်လန် စံတော်ချိန်", "CST": "မြောက်အမေရိက အလယ်ပိုင်းစံတော်ချိန်", "WIT": "အရှေ့ပိုင်း အင်ဒိုနီးရှား အချိန်", "AST": "အတ္တလန်တစ် စံတော်ချိန်", "HKT": "ဟောင်ကောင် စံတော်ချိန်", "MEZ": "ဥရောပ အလယ်ပိုင်း စံတော်ချိန်", "MYT": "မလေးရှား အချိန်", "ART": "အာဂျင်တီးနား စံတော်ချိန်", "HADT": "ဟာဝိုင်ယီ အယ်လူးရှန်း နွေရာသီ စံတော်ချိန်", "HAT": "နယူးဖောင်လန် နွေရာသီ စံတော်ချိန်", "AKST": "အလားစကားစံတော်ချိန်", "OESZ": "အရှေ့ဥရောပ နွေရာသီ အချိန်", "EST": "မြောက်အမေရိက အရှေ့ပိုင်းစံတော်ချိန်", "NZDT": "နယူးဇီလန် နွေရာသီ အချိန်", "JDT": "ဂျပန် နွေရာသီ အချိန်", "EAT": "အရှေ့အာဖရိက အချိန်"},
}
}
diff --git a/mzn/mzn.go b/mzn/mzn.go
index 8d7a5d92..e8f13aa6 100644
--- a/mzn/mzn.go
+++ b/mzn/mzn.go
@@ -53,7 +53,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"پ.م", "م."},
erasNarrow: []string{"", ""},
erasWide: []string{"قبل میلاد", "بعد میلاد"},
- timezones: map[string]string{"AKST": "AKST", "ARST": "ARST", "CLST": "CLST", "EDT": "EDT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "GYT": "GYT", "MST": "MST", "HAT": "HAT", "AEDT": "AEDT", "IST": "IST", "WAT": "WAT", "ACWST": "ACWST", "ACWDT": "ACWDT", "HEPM": "HEPM", "CHADT": "CHADT", "ChST": "ChST", "ACST": "ACST", "ECT": "ECT", "CAT": "CAT", "ART": "ART", "EST": "EST", "OESZ": "OESZ", "AWDT": "AWDT", "JST": "JST", "EAT": "EAT", "PDT": "PDT", "HNOG": "HNOG", "AWST": "AWST", "BOT": "BOT", "AST": "AST", "ADT": "ADT", "VET": "VET", "HKST": "HKST", "CLT": "CLT", "HNEG": "HNEG", "GFT": "GFT", "HNT": "HNT", "UYT": "UYT", "CST": "CST", "MYT": "MYT", "HEOG": "HEOG", "MEZ": "MEZ", "MESZ": "MESZ", "HEEG": "HEEG", "ACDT": "ACDT", "WIB": "WIB", "HAST": "HAST", "WEZ": "WEZ", "HNPM": "HNPM", "WAST": "WAST", "HECU": "HECU", "CDT": "CDT", "MDT": "MDT", "HKT": "HKT", "NZDT": "NZDT", "CHAST": "CHAST", "COT": "COT", "COST": "COST", "HNCU": "HNCU", "AEST": "AEST", "WIT": "WIT", "SRT": "SRT", "WESZ": "WESZ", "WITA": "WITA", "NZST": "NZST", "JDT": "JDT", "∅∅∅": "∅∅∅", "HADT": "HADT", "OEZ": "OEZ", "SGT": "SGT", "UYST": "UYST", "AKDT": "AKDT", "TMT": "TMT", "SAST": "SAST", "HENOMX": "HENOMX", "BT": "BT", "TMST": "TMST", "WARST": "WARST", "GMT": "GMT", "PST": "PST", "LHDT": "LHDT", "WART": "WART", "LHST": "LHST", "HNNOMX": "HNNOMX"},
+ timezones: map[string]string{"MEZ": "MEZ", "HNOG": "HNOG", "ADT": "ADT", "EDT": "EDT", "WIB": "WIB", "AWST": "AWST", "ACWST": "ACWST", "NZST": "NZST", "BT": "BT", "ChST": "ChST", "OEZ": "OEZ", "COT": "COT", "UYT": "UYT", "HNCU": "HNCU", "CST": "CST", "SGT": "SGT", "MESZ": "MESZ", "HEOG": "HEOG", "MST": "MST", "VET": "VET", "ARST": "ARST", "HKT": "HKT", "ACST": "ACST", "HNPMX": "HNPMX", "MYT": "MYT", "ACDT": "ACDT", "COST": "COST", "HAT": "HAT", "AKDT": "AKDT", "UYST": "UYST", "PST": "PST", "GMT": "GMT", "HENOMX": "HENOMX", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "AEST": "AEST", "AEDT": "AEDT", "HAST": "HAST", "JDT": "JDT", "MDT": "MDT", "WAT": "WAT", "ACWDT": "ACWDT", "ART": "ART", "HECU": "HECU", "CDT": "CDT", "WIT": "WIT", "ECT": "ECT", "TMST": "TMST", "WITA": "WITA", "SAST": "SAST", "GYT": "GYT", "BOT": "BOT", "HADT": "HADT", "WARST": "WARST", "AWDT": "AWDT", "OESZ": "OESZ", "SRT": "SRT", "CLT": "CLT", "WAST": "WAST", "GFT": "GFT", "HEPMX": "HEPMX", "WESZ": "WESZ", "EST": "EST", "EAT": "EAT", "TMT": "TMT", "HKST": "HKST", "HNT": "HNT", "NZDT": "NZDT", "IST": "IST", "JST": "JST", "WEZ": "WEZ", "HNPM": "HNPM", "HEPM": "HEPM", "LHST": "LHST", "CHAST": "CHAST", "CAT": "CAT", "WART": "WART", "AST": "AST", "HNEG": "HNEG", "AKST": "AKST", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "CHADT": "CHADT", "PDT": "PDT", "CLST": "CLST"},
}
}
diff --git a/mzn_IR/mzn_IR.go b/mzn_IR/mzn_IR.go
index 67ff0bb1..61cf069f 100644
--- a/mzn_IR/mzn_IR.go
+++ b/mzn_IR/mzn_IR.go
@@ -53,7 +53,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"پ.م", "م."},
erasNarrow: []string{"", ""},
erasWide: []string{"قبل میلاد", "بعد میلاد"},
- timezones: map[string]string{"HNCU": "HNCU", "HKT": "HKT", "CLT": "CLT", "COT": "COT", "EST": "EST", "HEOG": "HEOG", "BOT": "BOT", "COST": "COST", "SGT": "SGT", "ACWDT": "ACWDT", "WAT": "WAT", "WARST": "WARST", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "MYT": "MYT", "∅∅∅": "∅∅∅", "GMT": "GMT", "MST": "MST", "HNT": "HNT", "HKST": "HKST", "SAST": "SAST", "CAT": "CAT", "OESZ": "OESZ", "HADT": "HADT", "AWST": "AWST", "HEPM": "HEPM", "MESZ": "MESZ", "ACDT": "ACDT", "WART": "WART", "CST": "CST", "HNOG": "HNOG", "AEDT": "AEDT", "HNPM": "HNPM", "HEEG": "HEEG", "ACST": "ACST", "VET": "VET", "HAT": "HAT", "IST": "IST", "HNEG": "HNEG", "OEZ": "OEZ", "UYST": "UYST", "WIB": "WIB", "WITA": "WITA", "ECT": "ECT", "EAT": "EAT", "HENOMX": "HENOMX", "EDT": "EDT", "WEZ": "WEZ", "ART": "ART", "LHST": "LHST", "AKST": "AKST", "AKDT": "AKDT", "BT": "BT", "ARST": "ARST", "PDT": "PDT", "JDT": "JDT", "CLST": "CLST", "WAST": "WAST", "AST": "AST", "WIT": "WIT", "WESZ": "WESZ", "CHAST": "CHAST", "JST": "JST", "TMST": "TMST", "GYT": "GYT", "UYT": "UYT", "HAST": "HAST", "AEST": "AEST", "NZST": "NZST", "GFT": "GFT", "ADT": "ADT", "PST": "PST", "LHDT": "LHDT", "HECU": "HECU", "MDT": "MDT", "CDT": "CDT", "SRT": "SRT", "ACWST": "ACWST", "AWDT": "AWDT", "MEZ": "MEZ", "NZDT": "NZDT", "CHADT": "CHADT", "TMT": "TMT", "ChST": "ChST"},
+ timezones: map[string]string{"HECU": "HECU", "NZST": "NZST", "IST": "IST", "EST": "EST", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "WIT": "WIT", "SGT": "SGT", "MYT": "MYT", "HNOG": "HNOG", "ADT": "ADT", "ART": "ART", "HENOMX": "HENOMX", "SRT": "SRT", "BOT": "BOT", "PDT": "PDT", "MEZ": "MEZ", "SAST": "SAST", "AWST": "AWST", "CLST": "CLST", "AEDT": "AEDT", "WITA": "WITA", "HNPM": "HNPM", "HNPMX": "HNPMX", "WAST": "WAST", "BT": "BT", "HNT": "HNT", "EAT": "EAT", "CDT": "CDT", "HADT": "HADT", "HNEG": "HNEG", "LHST": "LHST", "CST": "CST", "∅∅∅": "∅∅∅", "CHAST": "CHAST", "ECT": "ECT", "PST": "PST", "MESZ": "MESZ", "ACDT": "ACDT", "HAT": "HAT", "ChST": "ChST", "HEPMX": "HEPMX", "JDT": "JDT", "WART": "WART", "TMT": "TMT", "MST": "MST", "JST": "JST", "CLT": "CLT", "AST": "AST", "EDT": "EDT", "HEEG": "HEEG", "AWDT": "AWDT", "MDT": "MDT", "HKST": "HKST", "ACST": "ACST", "AKDT": "AKDT", "WIB": "WIB", "CAT": "CAT", "OESZ": "OESZ", "WEZ": "WEZ", "ACWST": "ACWST", "ACWDT": "ACWDT", "GMT": "GMT", "HEOG": "HEOG", "GFT": "GFT", "AKST": "AKST", "UYT": "UYT", "GYT": "GYT", "NZDT": "NZDT", "WARST": "WARST", "TMST": "TMST", "COST": "COST", "LHDT": "LHDT", "HNCU": "HNCU", "CHADT": "CHADT", "VET": "VET", "ARST": "ARST", "COT": "COT", "HAST": "HAST", "OEZ": "OEZ", "AEST": "AEST", "WESZ": "WESZ", "WAT": "WAT", "HKT": "HKT", "UYST": "UYST"},
}
}
diff --git a/naq/naq.go b/naq/naq.go
index 21bf3865..4291d62f 100644
--- a/naq/naq.go
+++ b/naq/naq.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Xristub aiǃâ", "Xristub khaoǃgâ"},
- timezones: map[string]string{"HENOMX": "HENOMX", "HNCU": "HNCU", "AKST": "AKST", "CDT": "CDT", "AWST": "AWST", "AST": "AST", "ADT": "ADT", "JST": "JST", "TMST": "TMST", "ECT": "ECT", "MDT": "MDT", "CST": "CST", "AEST": "AEST", "SAST": "SAST", "CLST": "CLST", "HEEG": "HEEG", "HEPM": "HEPM", "HNNOMX": "HNNOMX", "UYST": "UYST", "PST": "PST", "WESZ": "WESZ", "ACWST": "ACWST", "HAT": "HAT", "HEOG": "HEOG", "WIB": "WIB", "HADT": "HADT", "SRT": "SRT", "ACWDT": "ACWDT", "AEDT": "AEDT", "JDT": "JDT", "∅∅∅": "∅∅∅", "GMT": "GMT", "EST": "EST", "VET": "VET", "WITA": "WITA", "IST": "IST", "HNEG": "HNEG", "CAT": "CAT", "WAT": "WAT", "WIT": "WIT", "ART": "ART", "LHST": "LHST", "SGT": "SGT", "HECU": "HECU", "AKDT": "AKDT", "GYT": "GYT", "MEZ": "MEZ", "CHAST": "CHAST", "TMT": "TMT", "WART": "WART", "HNPMX": "HNPMX", "UYT": "UYT", "HKT": "HKT", "LHDT": "LHDT", "COST": "COST", "EDT": "EDT", "ACDT": "ACDT", "OEZ": "OEZ", "WEZ": "WEZ", "NZST": "NZST", "CHADT": "CHADT", "CLT": "CLT", "COT": "COT", "MST": "MST", "HAST": "HAST", "HNOG": "HNOG", "GFT": "GFT", "HKST": "HKST", "MESZ": "MESZ", "HNPM": "HNPM", "EAT": "EAT", "WARST": "WARST", "MYT": "MYT", "BT": "BT", "PDT": "PDT", "HNT": "HNT", "AWDT": "AWDT", "ARST": "ARST", "NZDT": "NZDT", "ChST": "ChST", "ACST": "ACST", "WAST": "WAST", "OESZ": "OESZ", "HEPMX": "HEPMX", "BOT": "BOT"},
+ timezones: map[string]string{"HECU": "HECU", "CDT": "CDT", "AWDT": "AWDT", "ADT": "ADT", "HAT": "HAT", "AST": "AST", "GMT": "GMT", "ART": "ART", "GYT": "GYT", "EAT": "EAT", "AWST": "AWST", "HADT": "HADT", "MESZ": "MESZ", "AKST": "AKST", "HEOG": "HEOG", "HNPM": "HNPM", "CHAST": "CHAST", "CHADT": "CHADT", "CAT": "CAT", "ACWST": "ACWST", "HEPMX": "HEPMX", "CLST": "CLST", "WESZ": "WESZ", "ACST": "ACST", "HNNOMX": "HNNOMX", "ChST": "ChST", "HEPM": "HEPM", "HNOG": "HNOG", "EDT": "EDT", "IST": "IST", "CLT": "CLT", "WAT": "WAT", "BT": "BT", "EST": "EST", "HEEG": "HEEG", "UYT": "UYT", "∅∅∅": "∅∅∅", "SGT": "SGT", "HAST": "HAST", "ARST": "ARST", "JST": "JST", "WAST": "WAST", "ACDT": "ACDT", "SAST": "SAST", "WIT": "WIT", "ACWDT": "ACWDT", "WEZ": "WEZ", "TMT": "TMT", "WARST": "WARST", "HKST": "HKST", "COST": "COST", "WIB": "WIB", "CST": "CST", "MEZ": "MEZ", "VET": "VET", "OEZ": "OEZ", "HNT": "HNT", "AKDT": "AKDT", "HNCU": "HNCU", "MYT": "MYT", "WITA": "WITA", "BOT": "BOT", "PST": "PST", "PDT": "PDT", "OESZ": "OESZ", "TMST": "TMST", "ECT": "ECT", "JDT": "JDT", "WART": "WART", "COT": "COT", "HNEG": "HNEG", "LHDT": "LHDT", "MDT": "MDT", "AEST": "AEST", "AEDT": "AEDT", "SRT": "SRT", "HKT": "HKT", "GFT": "GFT", "MST": "MST", "HENOMX": "HENOMX", "UYST": "UYST", "LHST": "LHST", "HNPMX": "HNPMX", "NZST": "NZST", "NZDT": "NZDT"},
}
}
diff --git a/naq_NA/naq_NA.go b/naq_NA/naq_NA.go
index cf8d9a7c..cac5e37d 100644
--- a/naq_NA/naq_NA.go
+++ b/naq_NA/naq_NA.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Xristub aiǃâ", "Xristub khaoǃgâ"},
- timezones: map[string]string{"HEEG": "HEEG", "WART": "WART", "ART": "ART", "AWDT": "AWDT", "HEPM": "HEPM", "LHST": "LHST", "HEOG": "HEOG", "WEZ": "WEZ", "ACWST": "ACWST", "AWST": "AWST", "EST": "EST", "HAT": "HAT", "UYST": "UYST", "ADT": "ADT", "HNOG": "HNOG", "AEST": "AEST", "ACST": "ACST", "GMT": "GMT", "HNCU": "HNCU", "BT": "BT", "AEDT": "AEDT", "GYT": "GYT", "AKST": "AKST", "CLST": "CLST", "HNEG": "HNEG", "CDT": "CDT", "PST": "PST", "ARST": "ARST", "WARST": "WARST", "SGT": "SGT", "∅∅∅": "∅∅∅", "MDT": "MDT", "MYT": "MYT", "HNPM": "HNPM", "CLT": "CLT", "TMT": "TMT", "COST": "COST", "HENOMX": "HENOMX", "SRT": "SRT", "PDT": "PDT", "WESZ": "WESZ", "ChST": "ChST", "WAST": "WAST", "HADT": "HADT", "HKST": "HKST", "MESZ": "MESZ", "IST": "IST", "JDT": "JDT", "JST": "JST", "TMST": "TMST", "HECU": "HECU", "ACWDT": "ACWDT", "NZST": "NZST", "NZDT": "NZDT", "SAST": "SAST", "HNNOMX": "HNNOMX", "HAST": "HAST", "VET": "VET", "HNT": "HNT", "CHADT": "CHADT", "LHDT": "LHDT", "BOT": "BOT", "WAT": "WAT", "UYT": "UYT", "CST": "CST", "WIT": "WIT", "HKT": "HKT", "MEZ": "MEZ", "EAT": "EAT", "ECT": "ECT", "HEPMX": "HEPMX", "AST": "AST", "WITA": "WITA", "GFT": "GFT", "ACDT": "ACDT", "EDT": "EDT", "CHAST": "CHAST", "OESZ": "OESZ", "CAT": "CAT", "OEZ": "OEZ", "COT": "COT", "MST": "MST", "HNPMX": "HNPMX", "AKDT": "AKDT", "WIB": "WIB"},
+ timezones: map[string]string{"SGT": "SGT", "PDT": "PDT", "WARST": "WARST", "HEOG": "HEOG", "UYT": "UYT", "SAST": "SAST", "AWDT": "AWDT", "NZDT": "NZDT", "MESZ": "MESZ", "WEZ": "WEZ", "HNOG": "HNOG", "WART": "WART", "CLST": "CLST", "AEDT": "AEDT", "UYST": "UYST", "EAT": "EAT", "ACWST": "ACWST", "VET": "VET", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "HEEG": "HEEG", "HNPM": "HNPM", "ChST": "ChST", "HEPMX": "HEPMX", "HADT": "HADT", "MYT": "MYT", "HKT": "HKT", "HKST": "HKST", "HECU": "HECU", "LHDT": "LHDT", "WIB": "WIB", "AST": "AST", "EDT": "EDT", "HNEG": "HNEG", "AEST": "AEST", "AKDT": "AKDT", "SRT": "SRT", "HNCU": "HNCU", "CHAST": "CHAST", "WESZ": "WESZ", "HNT": "HNT", "GFT": "GFT", "HEPM": "HEPM", "OESZ": "OESZ", "TMST": "TMST", "MST": "MST", "ACDT": "ACDT", "IST": "IST", "JDT": "JDT", "CDT": "CDT", "AWST": "AWST", "PST": "PST", "ARST": "ARST", "HENOMX": "HENOMX", "CST": "CST", "WAT": "WAT", "HAT": "HAT", "GYT": "GYT", "WIT": "WIT", "MDT": "MDT", "ACST": "ACST", "LHST": "LHST", "HAST": "HAST", "ECT": "ECT", "JST": "JST", "CLT": "CLT", "BOT": "BOT", "CAT": "CAT", "GMT": "GMT", "ADT": "ADT", "ACWDT": "ACWDT", "MEZ": "MEZ", "COT": "COT", "HNPMX": "HNPMX", "COST": "COST", "BT": "BT", "CHADT": "CHADT", "ART": "ART", "EST": "EST", "WAST": "WAST", "AKST": "AKST", "NZST": "NZST", "∅∅∅": "∅∅∅", "TMT": "TMT", "WITA": "WITA"},
}
}
diff --git a/nb/nb.go b/nb/nb.go
index 31bbaa99..2429d52b 100644
--- a/nb/nb.go
+++ b/nb/nb.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "e.Kr."},
erasNarrow: []string{"f.Kr.", "e.Kr."},
erasWide: []string{"før Kristus", "etter Kristus"},
- timezones: map[string]string{"LHST": "normaltid for Lord Howe-øya", "BOT": "boliviansk tid", "UYT": "uruguayansk normaltid", "UYST": "uruguayansk sommertid", "ACWST": "vest-sentralaustralsk normaltid", "CAT": "sentralafrikansk tid", "COT": "colombiansk normaltid", "CLST": "chilensk sommertid", "HNEG": "østgrønlandsk normaltid", "WAT": "vestafrikansk normaltid", "CLT": "chilensk normaltid", "GFT": "tidssone for Fransk Guyana", "ADT": "atlanterhavskystlig sommertid", "GYT": "guyansk tid", "HEPM": "sommertid for Saint-Pierre-et-Miquelon", "PDT": "sommertid for den nordamerikanske Stillehavskysten", "WEZ": "vesteuropeisk normaltid", "OESZ": "østeuropeisk sommertid", "ACWDT": "vest-sentralaustralsk sommertid", "AWST": "vestaustralsk normaltid", "MEZ": "sentraleuropeisk normaltid", "JST": "japansk normaltid", "EAT": "østafrikansk tid", "AKST": "alaskisk normaltid", "CDT": "sommertid for det sentrale Nord-Amerika", "AST": "atlanterhavskystlig standardtid", "HNNOMX": "normaltid for nordvestlige Mexico", "EST": "normaltid for den nordamerikanske østkysten", "MYT": "malaysisk tid", "∅∅∅": "sommertid for Amazonas", "HNCU": "cubansk normaltid", "PST": "normaltid for den nordamerikanske Stillehavskysten", "NZDT": "newzealandsk sommertid", "ChST": "tidssone for Chamorro", "ECT": "ecuadoriansk tid", "WART": "vestargentinsk normaltid", "VET": "venezuelansk tid", "SRT": "surinamsk tid", "HNT": "normaltid for Newfoundland", "HEPMX": "sommertid for den meksikanske Stillehavskysten", "EDT": "sommertid for den nordamerikanske østkysten", "WESZ": "vesteuropeisk sommertid", "ARST": "argentinsk sommertid", "AEDT": "østaustralsk sommertid", "ACDT": "sentralaustralsk sommertid", "MDT": "sommertid for Rocky Mountains (USA)", "WIT": "østindonesisk tid", "BT": "bhutansk tid", "HEEG": "østgrønlandsk sommertid", "COST": "colombiansk sommertid", "WIB": "vestindonesisk tid", "HADT": "sommertid for Hawaii og Aleutene", "AWDT": "vestaustralsk sommertid", "OEZ": "østeuropeisk normaltid", "HENOMX": "sommertid for nordvestlige Mexico", "AEST": "østaustralsk normaltid", "NZST": "newzealandsk normaltid", "MESZ": "sentraleuropeisk sommertid", "HNPM": "normaltid for Saint-Pierre-et-Miquelon", "CHADT": "sommertid for Chatham", "JDT": "japansk sommertid", "HAT": "sommertid for Newfoundland", "ART": "argentinsk normaltid", "HNOG": "vestgrønlandsk normaltid", "SGT": "singaporsk tid", "AKDT": "alaskisk sommertid", "MST": "normaltid for Rocky Mountains (USA)", "IST": "indisk tid", "CHAST": "normaltid for Chatham", "ACST": "sentralaustralsk normaltid", "CST": "normaltid for det sentrale Nord-Amerika", "HAST": "normaltid for Hawaii og Aleutene", "LHDT": "sommertid for Lord Howe-øya", "SAST": "sørafrikansk tid", "TMST": "turkmensk sommertid", "WAST": "vestafrikansk sommertid", "WARST": "vestargentinsk sommertid", "HEOG": "vestgrønlandsk sommertid", "HKT": "normaltid for Hongkong", "WITA": "sentralindonesisk tid", "GMT": "Greenwich middeltid", "HNPMX": "normaltid for den meksikanske Stillehavskysten", "HKST": "sommertid for Hongkong", "TMT": "turkmensk normaltid", "HECU": "cubansk sommertid"},
+ timezones: map[string]string{"AEST": "østaustralsk normaltid", "AWDT": "vestaustralsk sommertid", "ACWST": "vest-sentralaustralsk normaltid", "MESZ": "sentraleuropeisk sommertid", "MYT": "malaysisk tid", "HNOG": "vestgrønlandsk normaltid", "AKST": "alaskisk normaltid", "AKDT": "alaskisk sommertid", "CDT": "sommertid for det sentrale Nord-Amerika", "HADT": "sommertid for Hawaii og Aleutene", "WART": "vestargentinsk normaltid", "WAT": "vestafrikansk normaltid", "SAST": "sørafrikansk tid", "SGT": "singaporsk tid", "HAST": "normaltid for Hawaii og Aleutene", "ADT": "atlanterhavskystlig sommertid", "WIT": "østindonesisk tid", "ACDT": "sentralaustralsk sommertid", "COST": "colombiansk sommertid", "HENOMX": "sommertid for nordvestlige Mexico", "HNT": "normaltid for Newfoundland", "HAT": "sommertid for Newfoundland", "ChST": "tidssone for Chamorro", "LHST": "normaltid for Lord Howe-øya", "PST": "normaltid for den nordamerikanske Stillehavskysten", "HEOG": "vestgrønlandsk sommertid", "BT": "bhutansk tid", "AEDT": "østaustralsk sommertid", "ECT": "ecuadoriansk tid", "GMT": "Greenwich middeltid", "HNNOMX": "normaltid for nordvestlige Mexico", "AST": "atlanterhavskystlig standardtid", "TMST": "turkmensk sommertid", "COT": "colombiansk normaltid", "VET": "venezuelansk tid", "CLT": "chilensk normaltid", "WESZ": "vesteuropeisk sommertid", "UYT": "uruguayansk normaltid", "LHDT": "sommertid for Lord Howe-øya", "GYT": "guyansk tid", "EAT": "østafrikansk tid", "OESZ": "østeuropeisk sommertid", "EDT": "sommertid for den nordamerikanske østkysten", "HNCU": "cubansk normaltid", "NZDT": "newzealandsk sommertid", "CAT": "sentralafrikansk tid", "IST": "indisk tid", "CLST": "chilensk sommertid", "WAST": "vestafrikansk sommertid", "HNEG": "østgrønlandsk normaltid", "HEEG": "østgrønlandsk sommertid", "CST": "normaltid for det sentrale Nord-Amerika", "OEZ": "østeuropeisk normaltid", "WARST": "vestargentinsk sommertid", "ACST": "sentralaustralsk normaltid", "AWST": "vestaustralsk normaltid", "CHAST": "normaltid for Chatham", "CHADT": "sommertid for Chatham", "BOT": "boliviansk tid", "PDT": "sommertid for den nordamerikanske Stillehavskysten", "JST": "japansk normaltid", "∅∅∅": "Acre sommertid", "MDT": "sommertid for Rocky Mountains (USA)", "GFT": "tidssone for Fransk Guyana", "UYST": "uruguayansk sommertid", "HEPM": "sommertid for Saint-Pierre-et-Miquelon", "NZST": "newzealandsk normaltid", "HEPMX": "sommertid for den meksikanske Stillehavskysten", "MEZ": "sentraleuropeisk normaltid", "JDT": "japansk sommertid", "ARST": "argentinsk sommertid", "MST": "normaltid for Rocky Mountains (USA)", "WITA": "sentralindonesisk tid", "HNPM": "normaltid for Saint-Pierre-et-Miquelon", "HECU": "cubansk sommertid", "ACWDT": "vest-sentralaustralsk sommertid", "ART": "argentinsk normaltid", "HKST": "sommertid for Hongkong", "SRT": "surinamsk tid", "HNPMX": "normaltid for den meksikanske Stillehavskysten", "WIB": "vestindonesisk tid", "WEZ": "vesteuropeisk normaltid", "TMT": "turkmensk normaltid", "EST": "normaltid for den nordamerikanske østkysten", "HKT": "normaltid for Hongkong"},
}
}
diff --git a/nb_NO/nb_NO.go b/nb_NO/nb_NO.go
index d372c455..6b0cf321 100644
--- a/nb_NO/nb_NO.go
+++ b/nb_NO/nb_NO.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "e.Kr."},
erasNarrow: []string{"f.Kr.", "e.Kr."},
erasWide: []string{"før Kristus", "etter Kristus"},
- timezones: map[string]string{"EAT": "østafrikansk tid", "ECT": "ecuadoriansk tid", "GMT": "Greenwich middeltid", "BT": "bhutansk tid", "SAST": "sørafrikansk tid", "IST": "indisk tid", "∅∅∅": "sommertid for Amazonas", "BOT": "boliviansk tid", "ChST": "tidssone for Chamorro", "HNPMX": "normaltid for den meksikanske Stillehavskysten", "UYT": "uruguayansk normaltid", "HAST": "normaltid for Hawaii og Aleutene", "WEZ": "vesteuropeisk normaltid", "NZST": "newzealandsk normaltid", "NZDT": "newzealandsk sommertid", "CLT": "chilensk normaltid", "HNPM": "normaltid for Saint-Pierre-et-Miquelon", "AWST": "vestaustralsk normaltid", "GFT": "tidssone for Fransk Guyana", "PST": "normaltid for den nordamerikanske Stillehavskysten", "ARST": "argentinsk sommertid", "WITA": "sentralindonesisk tid", "HEPMX": "sommertid for den meksikanske Stillehavskysten", "SGT": "singaporsk tid", "ACWST": "vest-sentralaustralsk normaltid", "HAT": "sommertid for Newfoundland", "ACST": "sentralaustralsk normaltid", "WAST": "vestafrikansk sommertid", "WART": "vestargentinsk normaltid", "HKST": "sommertid for Hongkong", "HNEG": "østgrønlandsk normaltid", "HEEG": "østgrønlandsk sommertid", "TMST": "turkmensk sommertid", "CAT": "sentralafrikansk tid", "AKDT": "alaskisk sommertid", "CST": "normaltid for det sentrale Nord-Amerika", "AST": "atlanterhavskystlig standardtid", "HKT": "normaltid for Hongkong", "ACDT": "sentralaustralsk sommertid", "OESZ": "østeuropeisk sommertid", "EST": "normaltid for den nordamerikanske østkysten", "MST": "Macau, standardtid", "WIB": "vestindonesisk tid", "AEST": "østaustralsk normaltid", "LHST": "normaltid for Lord Howe-øya", "LHDT": "sommertid for Lord Howe-øya", "HNCU": "cubansk normaltid", "GYT": "guyansk tid", "HEOG": "vestgrønlandsk sommertid", "MEZ": "sentraleuropeisk normaltid", "JDT": "japansk sommertid", "TMT": "turkmensk normaltid", "COT": "colombiansk normaltid", "CHAST": "normaltid for Chatham", "OEZ": "østeuropeisk normaltid", "MDT": "Macau, sommertid", "VET": "venezuelansk tid", "WIT": "østindonesisk tid", "PDT": "sommertid for den nordamerikanske Stillehavskysten", "WESZ": "vesteuropeisk sommertid", "ACWDT": "vest-sentralaustralsk sommertid", "ADT": "atlanterhavskystlig sommertid", "CHADT": "sommertid for Chatham", "COST": "colombiansk sommertid", "HNNOMX": "normaltid for nordvestlige Mexico", "UYST": "uruguayansk sommertid", "ART": "argentinsk normaltid", "WARST": "vestargentinsk sommertid", "EDT": "sommertid for den nordamerikanske østkysten", "AKST": "alaskisk normaltid", "CDT": "sommertid for det sentrale Nord-Amerika", "MYT": "malaysisk tid", "SRT": "surinamsk tid", "HNT": "normaltid for Newfoundland", "AWDT": "vestaustralsk sommertid", "MESZ": "sentraleuropeisk sommertid", "WAT": "vestafrikansk normaltid", "HNOG": "vestgrønlandsk normaltid", "AEDT": "østaustralsk sommertid", "HEPM": "sommertid for Saint-Pierre-et-Miquelon", "JST": "japansk normaltid", "HENOMX": "sommertid for nordvestlige Mexico", "HADT": "sommertid for Hawaii og Aleutene", "CLST": "chilensk sommertid", "HECU": "cubansk sommertid"},
+ timezones: map[string]string{"ADT": "atlanterhavskystlig sommertid", "EDT": "sommertid for den nordamerikanske østkysten", "HKST": "sommertid for Hongkong", "HEEG": "østgrønlandsk sommertid", "JST": "japansk normaltid", "HNCU": "cubansk normaltid", "JDT": "japansk sommertid", "CLST": "chilensk sommertid", "WESZ": "vesteuropeisk sommertid", "HKT": "normaltid for Hongkong", "UYST": "uruguayansk sommertid", "EAT": "østafrikansk tid", "HAST": "normaltid for Hawaii og Aleutene", "ACWDT": "vest-sentralaustralsk sommertid", "HEOG": "vestgrønlandsk sommertid", "MYT": "malaysisk tid", "ACST": "sentralaustralsk normaltid", "GFT": "tidssone for Fransk Guyana", "LHDT": "sommertid for Lord Howe-øya", "ARST": "argentinsk sommertid", "WAT": "vestafrikansk normaltid", "HECU": "cubansk sommertid", "WIB": "vestindonesisk tid", "BOT": "boliviansk tid", "WART": "vestargentinsk normaltid", "WEZ": "vesteuropeisk normaltid", "AKST": "alaskisk normaltid", "HNPMX": "normaltid for den meksikanske Stillehavskysten", "CAT": "sentralafrikansk tid", "HNOG": "vestgrønlandsk normaltid", "MDT": "Macau, sommertid", "COST": "colombiansk sommertid", "HNT": "normaltid for Newfoundland", "HADT": "sommertid for Hawaii og Aleutene", "TMT": "turkmensk normaltid", "CST": "normaltid for det sentrale Nord-Amerika", "CHADT": "sommertid for Chatham", "NZDT": "newzealandsk sommertid", "AEDT": "østaustralsk sommertid", "WIT": "østindonesisk tid", "IST": "indisk tid", "MESZ": "sentraleuropeisk sommertid", "AST": "atlanterhavskystlig standardtid", "MST": "Macau, standardtid", "WAST": "vestafrikansk sommertid", "HEPM": "sommertid for Saint-Pierre-et-Miquelon", "LHST": "normaltid for Lord Howe-øya", "MEZ": "sentraleuropeisk normaltid", "CLT": "chilensk normaltid", "COT": "colombiansk normaltid", "HAT": "sommertid for Newfoundland", "∅∅∅": "peruansk sommertid", "NZST": "newzealandsk normaltid", "OESZ": "østeuropeisk sommertid", "HNPM": "normaltid for Saint-Pierre-et-Miquelon", "SGT": "singaporsk tid", "HENOMX": "sommertid for nordvestlige Mexico", "HNEG": "østgrønlandsk normaltid", "SRT": "surinamsk tid", "SAST": "sørafrikansk tid", "HEPMX": "sommertid for den meksikanske Stillehavskysten", "GYT": "guyansk tid", "ART": "argentinsk normaltid", "ACDT": "sentralaustralsk sommertid", "HNNOMX": "normaltid for nordvestlige Mexico", "BT": "bhutansk tid", "AEST": "østaustralsk normaltid", "AWDT": "vestaustralsk sommertid", "CHAST": "normaltid for Chatham", "ECT": "ecuadoriansk tid", "ACWST": "vest-sentralaustralsk normaltid", "ChST": "tidssone for Chamorro", "UYT": "uruguayansk normaltid", "CDT": "sommertid for det sentrale Nord-Amerika", "WARST": "vestargentinsk sommertid", "OEZ": "østeuropeisk normaltid", "GMT": "Greenwich middeltid", "EST": "normaltid for den nordamerikanske østkysten", "WITA": "sentralindonesisk tid", "AWST": "vestaustralsk normaltid", "PDT": "sommertid for den nordamerikanske Stillehavskysten", "VET": "venezuelansk tid", "TMST": "turkmensk sommertid", "AKDT": "alaskisk sommertid", "PST": "normaltid for den nordamerikanske Stillehavskysten"},
}
}
diff --git a/nb_SJ/nb_SJ.go b/nb_SJ/nb_SJ.go
index f1b6e054..87f2f4e0 100644
--- a/nb_SJ/nb_SJ.go
+++ b/nb_SJ/nb_SJ.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "e.Kr."},
erasNarrow: []string{"f.Kr.", "e.Kr."},
erasWide: []string{"før Kristus", "etter Kristus"},
- timezones: map[string]string{"MEZ": "sentraleuropeisk normaltid", "CHAST": "normaltid for Chatham", "∅∅∅": "sommertid for Amazonas", "HEEG": "østgrønlandsk sommertid", "CAT": "sentralafrikansk tid", "EAT": "østafrikansk tid", "HENOMX": "sommertid for nordvestlige Mexico", "SGT": "singaporsk tid", "WITA": "sentralindonesisk tid", "HEPMX": "sommertid for den meksikanske Stillehavskysten", "TMST": "turkmensk sommertid", "WARST": "vestargentinsk sommertid", "HNCU": "cubansk normaltid", "HKST": "sommertid for Hongkong", "LHST": "normaltid for Lord Howe-øya", "HNNOMX": "normaltid for nordvestlige Mexico", "PDT": "sommertid for den nordamerikanske Stillehavskysten", "HAT": "sommertid for Newfoundland", "HKT": "normaltid for Hongkong", "HNEG": "østgrønlandsk normaltid", "CDT": "sommertid for det sentrale Nord-Amerika", "AEST": "østaustralsk normaltid", "HNPM": "normaltid for Saint-Pierre-et-Miquelon", "ACDT": "sentralaustralsk sommertid", "HECU": "cubansk sommertid", "ACWDT": "vest-sentralaustralsk sommertid", "MDT": "sommertid for Rocky Mountains (USA)", "AWDT": "vestaustralsk sommertid", "HNPMX": "normaltid for den meksikanske Stillehavskysten", "UYST": "uruguayansk sommertid", "ARST": "argentinsk sommertid", "GFT": "tidssone for Fransk Guyana", "EST": "normaltid for den nordamerikanske østkysten", "ADT": "atlanterhavskystlig sommertid", "MYT": "malaysisk tid", "HAST": "normaltid for Hawaii og Aleutene", "NZDT": "newzealandsk sommertid", "CLT": "chilensk normaltid", "OEZ": "østeuropeisk normaltid", "GYT": "guyansk tid", "SRT": "surinamsk tid", "HNT": "normaltid for Newfoundland", "ART": "argentinsk normaltid", "HEOG": "vestgrønlandsk sommertid", "HEPM": "sommertid for Saint-Pierre-et-Miquelon", "ACST": "sentralaustralsk normaltid", "COST": "colombiansk sommertid", "AST": "atlanterhavskystlig standardtid", "GMT": "Greenwich middeltid", "WEZ": "vesteuropeisk normaltid", "HNOG": "vestgrønlandsk normaltid", "AEDT": "østaustralsk sommertid", "MESZ": "sentraleuropeisk sommertid", "NZST": "newzealandsk normaltid", "SAST": "sørafrikansk tid", "JST": "japansk normaltid", "WIT": "østindonesisk tid", "HADT": "sommertid for Hawaii og Aleutene", "BT": "bhutansk tid", "PST": "normaltid for den nordamerikanske Stillehavskysten", "ACWST": "vest-sentralaustralsk normaltid", "TMT": "turkmensk normaltid", "EDT": "sommertid for den nordamerikanske østkysten", "MST": "normaltid for Rocky Mountains (USA)", "CLST": "chilensk sommertid", "OESZ": "østeuropeisk sommertid", "AWST": "vestaustralsk normaltid", "WESZ": "vesteuropeisk sommertid", "CHADT": "sommertid for Chatham", "ChST": "tidssone for Chamorro", "BOT": "boliviansk tid", "WAT": "vestafrikansk normaltid", "AKDT": "alaskisk sommertid", "LHDT": "sommertid for Lord Howe-øya", "IST": "indisk tid", "WAST": "vestafrikansk sommertid", "VET": "venezuelansk tid", "CST": "normaltid for det sentrale Nord-Amerika", "UYT": "uruguayansk normaltid", "WIB": "vestindonesisk tid", "JDT": "japansk sommertid", "ECT": "ecuadoriansk tid", "WART": "vestargentinsk normaltid", "COT": "colombiansk normaltid", "AKST": "alaskisk normaltid"},
+ timezones: map[string]string{"HKST": "sommertid for Hongkong", "GFT": "tidssone for Fransk Guyana", "CST": "normaltid for det sentrale Nord-Amerika", "SGT": "singaporsk tid", "ACDT": "sentralaustralsk sommertid", "HNCU": "cubansk normaltid", "WIT": "østindonesisk tid", "PST": "normaltid for den nordamerikanske Stillehavskysten", "NZST": "newzealandsk normaltid", "∅∅∅": "sommertid for Amazonas", "VET": "venezuelansk tid", "HNNOMX": "normaltid for nordvestlige Mexico", "WARST": "vestargentinsk sommertid", "GYT": "guyansk tid", "WIB": "vestindonesisk tid", "ACWST": "vest-sentralaustralsk normaltid", "OESZ": "østeuropeisk sommertid", "HNT": "normaltid for Newfoundland", "COST": "colombiansk sommertid", "AEDT": "østaustralsk sommertid", "ChST": "tidssone for Chamorro", "LHDT": "sommertid for Lord Howe-øya", "CAT": "sentralafrikansk tid", "MESZ": "sentraleuropeisk sommertid", "HNOG": "vestgrønlandsk normaltid", "HEOG": "vestgrønlandsk sommertid", "HECU": "cubansk sommertid", "CHAST": "normaltid for Chatham", "ECT": "ecuadoriansk tid", "PDT": "sommertid for den nordamerikanske Stillehavskysten", "MDT": "Macau, sommertid", "UYST": "uruguayansk sommertid", "CDT": "sommertid for det sentrale Nord-Amerika", "AWDT": "vestaustralsk sommertid", "HNPMX": "normaltid for den meksikanske Stillehavskysten", "MEZ": "sentraleuropeisk normaltid", "WART": "vestargentinsk normaltid", "HAT": "sommertid for Newfoundland", "HNPM": "normaltid for Saint-Pierre-et-Miquelon", "BOT": "boliviansk tid", "WAT": "vestafrikansk normaltid", "COT": "colombiansk normaltid", "LHST": "normaltid for Lord Howe-øya", "AWST": "vestaustralsk normaltid", "MST": "Macau, standardtid", "WAST": "vestafrikansk sommertid", "HEEG": "østgrønlandsk sommertid", "WITA": "sentralindonesisk tid", "AKDT": "alaskisk sommertid", "SRT": "surinamsk tid", "CHADT": "sommertid for Chatham", "ACWDT": "vest-sentralaustralsk sommertid", "CLT": "chilensk normaltid", "CLST": "chilensk sommertid", "HNEG": "østgrønlandsk normaltid", "HAST": "normaltid for Hawaii og Aleutene", "GMT": "Greenwich middeltid", "EST": "normaltid for den nordamerikanske østkysten", "ACST": "sentralaustralsk normaltid", "BT": "bhutansk tid", "HEPM": "sommertid for Saint-Pierre-et-Miquelon", "SAST": "sørafrikansk tid", "ADT": "atlanterhavskystlig sommertid", "TMST": "turkmensk sommertid", "HENOMX": "sommertid for nordvestlige Mexico", "AKST": "alaskisk normaltid", "OEZ": "østeuropeisk normaltid", "TMT": "turkmensk normaltid", "ARST": "argentinsk sommertid", "UYT": "uruguayansk normaltid", "IST": "indisk tid", "WESZ": "vesteuropeisk sommertid", "MYT": "malaysisk tid", "AST": "atlanterhavskystlig standardtid", "EAT": "østafrikansk tid", "JST": "japansk normaltid", "ART": "argentinsk normaltid", "HEPMX": "sommertid for den meksikanske Stillehavskysten", "HADT": "sommertid for Hawaii og Aleutene", "WEZ": "vesteuropeisk normaltid", "EDT": "sommertid for den nordamerikanske østkysten", "NZDT": "newzealandsk sommertid", "JDT": "japansk sommertid", "HKT": "normaltid for Hongkong", "AEST": "østaustralsk normaltid"},
}
}
diff --git a/nd/nd.go b/nd/nd.go
index aa226142..dbeb75f5 100644
--- a/nd/nd.go
+++ b/nd/nd.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"UKristo angakabuyi", "Ukristo ebuyile"},
- timezones: map[string]string{"ChST": "ChST", "VET": "VET", "HNPM": "HNPM", "HKT": "HKT", "SGT": "SGT", "CDT": "CDT", "SRT": "SRT", "PST": "PST", "JST": "JST", "UYST": "UYST", "BT": "BT", "WEZ": "WEZ", "WART": "WART", "HAST": "HAST", "HNEG": "HNEG", "TMT": "TMT", "WAST": "WAST", "ECT": "ECT", "EDT": "EDT", "CST": "CST", "HNOG": "HNOG", "LHST": "LHST", "HNPMX": "HNPMX", "CHADT": "CHADT", "COT": "COT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "EST": "EST", "ACWST": "ACWST", "ARST": "ARST", "WITA": "WITA", "IST": "IST", "CAT": "CAT", "HNCU": "HNCU", "HEPMX": "HEPMX", "WIT": "WIT", "OEZ": "OEZ", "AKST": "AKST", "ACWDT": "ACWDT", "JDT": "JDT", "EAT": "EAT", "MST": "MST", "HADT": "HADT", "ACDT": "ACDT", "OESZ": "OESZ", "MDT": "MDT", "UYT": "UYT", "CLT": "CLT", "∅∅∅": "∅∅∅", "BOT": "BOT", "HEEG": "HEEG", "WESZ": "WESZ", "HNT": "HNT", "HAT": "HAT", "AWDT": "AWDT", "TMST": "TMST", "WAT": "WAT", "AEST": "AEST", "AEDT": "AEDT", "NZST": "NZST", "CHAST": "CHAST", "CLST": "CLST", "HECU": "HECU", "GYT": "GYT", "PDT": "PDT", "MESZ": "MESZ", "GFT": "GFT", "GMT": "GMT", "MYT": "MYT", "HEPM": "HEPM", "HEOG": "HEOG", "HKST": "HKST", "MEZ": "MEZ", "NZDT": "NZDT", "WARST": "WARST", "COST": "COST", "AKDT": "AKDT", "AST": "AST", "LHDT": "LHDT", "SAST": "SAST", "ADT": "ADT", "WIB": "WIB", "ART": "ART", "AWST": "AWST", "ACST": "ACST"},
+ timezones: map[string]string{"HNPM": "HNPM", "HAST": "HAST", "CAT": "CAT", "SGT": "SGT", "ACWST": "ACWST", "ACWDT": "ACWDT", "WARST": "WARST", "TMT": "TMT", "ACST": "ACST", "BOT": "BOT", "JST": "JST", "WART": "WART", "MST": "MST", "COT": "COT", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "WIT": "WIT", "EST": "EST", "EDT": "EDT", "AKDT": "AKDT", "HNPMX": "HNPMX", "GYT": "GYT", "IST": "IST", "NZDT": "NZDT", "MESZ": "MESZ", "AEST": "AEST", "GFT": "GFT", "WIB": "WIB", "AWST": "AWST", "CHADT": "CHADT", "NZST": "NZST", "ARST": "ARST", "AWDT": "AWDT", "PST": "PST", "UYT": "UYT", "UYST": "UYST", "SAST": "SAST", "ECT": "ECT", "HKT": "HKT", "HEPMX": "HEPMX", "HADT": "HADT", "HNNOMX": "HNNOMX", "HEEG": "HEEG", "AEDT": "AEDT", "WITA": "WITA", "AKST": "AKST", "LHDT": "LHDT", "HECU": "HECU", "CDT": "CDT", "WAST": "WAST", "HENOMX": "HENOMX", "MYT": "MYT", "WAT": "WAT", "HAT": "HAT", "HEPM": "HEPM", "VET": "VET", "WESZ": "WESZ", "TMST": "TMST", "COST": "COST", "ADT": "ADT", "HKST": "HKST", "CST": "CST", "PDT": "PDT", "MEZ": "MEZ", "GMT": "GMT", "CLT": "CLT", "JDT": "JDT", "OESZ": "OESZ", "WEZ": "WEZ", "CLST": "CLST", "HNEG": "HNEG", "ACDT": "ACDT", "HNT": "HNT", "ChST": "ChST", "LHST": "LHST", "CHAST": "CHAST", "HNOG": "HNOG", "HEOG": "HEOG", "MDT": "MDT", "BT": "BT", "SRT": "SRT", "EAT": "EAT", "OEZ": "OEZ", "AST": "AST", "ART": "ART"},
}
}
diff --git a/nd_ZW/nd_ZW.go b/nd_ZW/nd_ZW.go
index 51ea6e82..6e0a0397 100644
--- a/nd_ZW/nd_ZW.go
+++ b/nd_ZW/nd_ZW.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"UKristo angakabuyi", "Ukristo ebuyile"},
- timezones: map[string]string{"ACWST": "ACWST", "HEPM": "HEPM", "GMT": "GMT", "PDT": "PDT", "WIB": "WIB", "CLST": "CLST", "TMT": "TMT", "WARST": "WARST", "HEPMX": "HEPMX", "UYST": "UYST", "MEZ": "MEZ", "CHAST": "CHAST", "IST": "IST", "LHST": "LHST", "CHADT": "CHADT", "SAST": "SAST", "ChST": "ChST", "EST": "EST", "HADT": "HADT", "WIT": "WIT", "AWST": "AWST", "HNPMX": "HNPMX", "WITA": "WITA", "EAT": "EAT", "WAT": "WAT", "ADT": "ADT", "WESZ": "WESZ", "HEOG": "HEOG", "AEST": "AEST", "HEEG": "HEEG", "WART": "WART", "ART": "ART", "NZST": "NZST", "JDT": "JDT", "AKST": "AKST", "CST": "CST", "ACWDT": "ACWDT", "JST": "JST", "HNCU": "HNCU", "ECT": "ECT", "HENOMX": "HENOMX", "MYT": "MYT", "AKDT": "AKDT", "HNOG": "HNOG", "HKT": "HKT", "NZDT": "NZDT", "WAST": "WAST", "HNNOMX": "HNNOMX", "HAST": "HAST", "PST": "PST", "WEZ": "WEZ", "BOT": "BOT", "SGT": "SGT", "EDT": "EDT", "CDT": "CDT", "GYT": "GYT", "SRT": "SRT", "AEDT": "AEDT", "AWDT": "AWDT", "ACDT": "ACDT", "CAT": "CAT", "COT": "COT", "HECU": "HECU", "UYT": "UYT", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "ACST": "ACST", "AST": "AST", "MST": "MST", "MDT": "MDT", "HAT": "HAT", "HKST": "HKST", "COST": "COST", "CLT": "CLT", "BT": "BT", "GFT": "GFT", "TMST": "TMST", "HNPM": "HNPM", "MESZ": "MESZ", "HNEG": "HNEG", "OEZ": "OEZ", "OESZ": "OESZ", "VET": "VET", "HNT": "HNT", "ARST": "ARST"},
+ timezones: map[string]string{"TMST": "TMST", "ARST": "ARST", "ACST": "ACST", "COT": "COT", "HEEG": "HEEG", "GYT": "GYT", "AST": "AST", "WESZ": "WESZ", "WAT": "WAT", "BT": "BT", "HAST": "HAST", "WARST": "WARST", "TMT": "TMT", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "ACWST": "ACWST", "ACWDT": "ACWDT", "ART": "ART", "ChST": "ChST", "PDT": "PDT", "HNOG": "HNOG", "GMT": "GMT", "CDT": "CDT", "CHADT": "CHADT", "LHST": "LHST", "CST": "CST", "AWDT": "AWDT", "WITA": "WITA", "AWST": "AWST", "SRT": "SRT", "EAT": "EAT", "WIB": "WIB", "SGT": "SGT", "PST": "PST", "NZDT": "NZDT", "ACDT": "ACDT", "LHDT": "LHDT", "WART": "WART", "AKDT": "AKDT", "AKST": "AKST", "BOT": "BOT", "ADT": "ADT", "EST": "EST", "HKT": "HKT", "COST": "COST", "GFT": "GFT", "NZST": "NZST", "JDT": "JDT", "UYT": "UYT", "SAST": "SAST", "∅∅∅": "∅∅∅", "AEST": "AEST", "MST": "MST", "MDT": "MDT", "WAST": "WAST", "AEDT": "AEDT", "UYST": "UYST", "HNPM": "HNPM", "HEOG": "HEOG", "WEZ": "WEZ", "CLT": "CLT", "CLST": "CLST", "HAT": "HAT", "VET": "VET", "JST": "JST", "EDT": "EDT", "HNT": "HNT", "HECU": "HECU", "WIT": "WIT", "HADT": "HADT", "MESZ": "MESZ", "OEZ": "OEZ", "OESZ": "OESZ", "HENOMX": "HENOMX", "HEPM": "HEPM", "HEPMX": "HEPMX", "ECT": "ECT", "CAT": "CAT", "MEZ": "MEZ", "HKST": "HKST", "HNEG": "HNEG", "HNPMX": "HNPMX", "CHAST": "CHAST", "IST": "IST", "MYT": "MYT"},
}
}
diff --git a/nds/nds.go b/nds/nds.go
index 012c09e8..0a83bbca 100644
--- a/nds/nds.go
+++ b/nds/nds.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v.Chr.", "n.Chr."},
erasNarrow: []string{"vC", "nC"},
erasWide: []string{"vör Christus", "na Christus"},
- timezones: map[string]string{"NZST": "NZST", "SAST": "Söödafrikaansch Tiet", "HECU": "HECU", "AST": "Noordamerikaansch Atlantik-Standardtiet", "ADT": "Noordamerikaansch Atlantik-Summertiet", "HAST": "HAST", "CHAST": "CHAST", "TMST": "TMST", "ACDT": "Zentraalaustraalsch Summertiet", "SGT": "SGT", "SRT": "SRT", "AEST": "Oostaustraalsch Standardtiet", "HADT": "HADT", "HENOMX": "HENOMX", "GMT": "Gröönwisch-Welttiet", "UYST": "UYST", "AKST": "AKST", "HEPM": "HEPM", "MESZ": "Zentraaleuropääsch Summertiet", "EAT": "Oostafrikaansch Tiet", "WEZ": "Westeuropääsch Standardtiet", "MEZ": "Zentraaleuropääsch Standardtiet", "CLT": "CLT", "ACST": "Zentraalaustraalsch Standardtiet", "ECT": "ECT", "CDT": "Noordamerikaansch zentraal Summertiet", "ARST": "ARST", "LHDT": "LHDT", "NZDT": "NZDT", "GFT": "GFT", "CST": "Noordamerikaansch zentraal Standardtiet", "GYT": "GYT", "WIB": "Westindoneesch Tiet", "BT": "BT", "HEOG": "HEOG", "CHADT": "CHADT", "CLST": "CLST", "HEEG": "HEEG", "CAT": "Zentraalafrikaansch Tiet", "WESZ": "Westeuropääsch Summertiet", "HNT": "HNT", "ART": "ART", "UYT": "UYT", "∅∅∅": "∅∅∅", "BOT": "BOT", "COST": "COST", "HNNOMX": "HNNOMX", "MDT": "MDT", "AKDT": "AKDT", "ACWST": "Westzentraalaustraalsch Standardtiet", "AWST": "Westaustraalsch Standardtiet", "HKST": "HKST", "JST": "Japaansch Standardtiet", "TMT": "TMT", "MST": "MST", "HNPMX": "HNPMX", "WITA": "Indoneesch Zentraaltiet", "ChST": "ChST", "WAST": "Westafrikaansch Summertiet", "COT": "COT", "PDT": "Noordamerikaansch Pazifik-Summertiet", "OEZ": "Oosteuropääsch Standardtiet", "HEPMX": "HEPMX", "VET": "VET", "HAT": "HAT", "WIT": "Oostindoneesch Tiet", "PST": "Noordamerikaansch Pazifik-Standardtiet", "AEDT": "Oostaustraalsch Summertiet", "HNPM": "HNPM", "JDT": "Japaansch Summertiet", "HNCU": "HNCU", "MYT": "MYT", "LHST": "LHST", "HNEG": "HNEG", "WART": "WART", "EST": "Noordamerikaansch oosten Standardtiet", "EDT": "Noordamerikaansch oosten Summertiet", "HNOG": "HNOG", "ACWDT": "Westzentraalaustraalsch Summertiet", "AWDT": "Westaustraalsch Summertiet", "HKT": "HKT", "IST": "Indien-Tiet", "WAT": "Westafrikaansch Standardtiet", "OESZ": "Oosteuropääsch Summertiet", "WARST": "WARST"},
+ timezones: map[string]string{"∅∅∅": "∅∅∅", "LHDT": "LHDT", "SGT": "SGT", "BOT": "BOT", "WESZ": "Westeuropääsch Summertiet", "ART": "ART", "WIB": "Westindoneesch Tiet", "TMT": "TMT", "ACDT": "Zentraalaustraalsch Summertiet", "WIT": "Oostindoneesch Tiet", "PDT": "Noordamerikaansch Pazifik-Summertiet", "IST": "Indien-Tiet", "COT": "COT", "SAST": "Söödafrikaansch Tiet", "CHAST": "CHAST", "JDT": "Japaansch Summertiet", "HEOG": "HEOG", "GMT": "Gröönwisch-Welttiet", "EDT": "Noordamerikaansch oosten Summertiet", "ACST": "Zentraalaustraalsch Standardtiet", "HEEG": "HEEG", "AWST": "Westaustraalsch Standardtiet", "ACWDT": "Westzentraalaustraalsch Summertiet", "NZST": "NZST", "WAT": "Westafrikaansch Standardtiet", "HEPMX": "HEPMX", "AWDT": "Westaustraalsch Summertiet", "HNOG": "HNOG", "WEZ": "Westeuropääsch Standardtiet", "HAT": "HAT", "AKST": "AKST", "HNPMX": "HNPMX", "HECU": "HECU", "MESZ": "Zentraaleuropääsch Summertiet", "WAST": "Westafrikaansch Summertiet", "BT": "BT", "EAT": "Oostafrikaansch Tiet", "HNPM": "HNPM", "CDT": "Noordamerikaansch zentraal Summertiet", "WART": "WART", "CHADT": "CHADT", "AST": "Noordamerikaansch Atlantik-Standardtiet", "OEZ": "Oosteuropääsch Standardtiet", "ARST": "ARST", "HENOMX": "HENOMX", "GFT": "GFT", "CST": "Noordamerikaansch zentraal Standardtiet", "PST": "Noordamerikaansch Pazifik-Standardtiet", "CLST": "CLST", "EST": "Noordamerikaansch oosten Standardtiet", "COST": "COST", "TMST": "TMST", "UYST": "UYST", "LHST": "LHST", "GYT": "GYT", "HAST": "HAST", "CAT": "Zentraalafrikaansch Tiet", "NZDT": "NZDT", "ADT": "Noordamerikaansch Atlantik-Summertiet", "MDT": "MDT", "WITA": "Indoneesch Zentraaltiet", "HADT": "HADT", "WARST": "WARST", "HNT": "HNT", "HNEG": "HNEG", "AEST": "Oostaustraalsch Standardtiet", "ECT": "ECT", "MYT": "MYT", "HKST": "HKST", "AKDT": "AKDT", "UYT": "UYT", "HEPM": "HEPM", "SRT": "SRT", "HNCU": "HNCU", "CLT": "CLT", "MST": "MST", "HNNOMX": "HNNOMX", "ChST": "ChST", "ACWST": "Westzentraalaustraalsch Standardtiet", "MEZ": "Zentraaleuropääsch Standardtiet", "VET": "VET", "JST": "Japaansch Standardtiet", "OESZ": "Oosteuropääsch Summertiet", "HKT": "HKT", "AEDT": "Oostaustraalsch Summertiet"},
}
}
diff --git a/nds_DE/nds_DE.go b/nds_DE/nds_DE.go
index 051b9c82..90a852cd 100644
--- a/nds_DE/nds_DE.go
+++ b/nds_DE/nds_DE.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v.Chr.", "n.Chr."},
erasNarrow: []string{"vC", "nC"},
erasWide: []string{"vör Christus", "na Christus"},
- timezones: map[string]string{"NZDT": "NZDT", "CLST": "CLST", "EST": "Noordamerikaansch oosten Standardtiet", "HEPMX": "HEPMX", "HAST": "HAST", "ART": "ART", "HNPM": "HNPM", "HKT": "HKT", "SAST": "Söödafrikaansch Tiet", "CLT": "CLT", "WAST": "Westafrikaansch Summertiet", "MYT": "MYT", "UYT": "UYT", "UYST": "UYST", "AWDT": "Westaustraalsch Summertiet", "TMT": "TMT", "HAT": "HAT", "HEOG": "HEOG", "AKST": "AKST", "CST": "Noordamerikaansch zentraal Standardtiet", "GYT": "GYT", "SRT": "SRT", "JST": "Japaansch Standardtiet", "WAT": "Westafrikaansch Standardtiet", "WART": "WART", "HECU": "HECU", "MDT": "MDT", "AKDT": "AKDT", "ChST": "ChST", "OEZ": "Oosteuropääsch Standardtiet", "COST": "COST", "AEST": "Oostaustraalsch Standardtiet", "WITA": "Indoneesch Zentraaltiet", "LHDT": "LHDT", "ACST": "Zentraalaustraalsch Standardtiet", "GMT": "Gröönwisch-Welttiet", "HADT": "HADT", "VET": "VET", "ACWDT": "Westzentraalaustraalsch Summertiet", "AWST": "Westaustraalsch Standardtiet", "JDT": "Japaansch Summertiet", "HNEG": "HNEG", "GFT": "GFT", "EDT": "Noordamerikaansch oosten Summertiet", "CDT": "Noordamerikaansch zentraal Summertiet", "BT": "BT", "MEZ": "Zentraaleuropääsch Standardtiet", "BOT": "BOT", "COT": "COT", "HNNOMX": "HNNOMX", "ACWST": "Westzentraalaustraalsch Standardtiet", "HEPM": "HEPM", "WARST": "WARST", "WIB": "Westindoneesch Tiet", "CAT": "Zentraalafrikaansch Tiet", "WEZ": "Westeuropääsch Standardtiet", "ARST": "ARST", "HKST": "HKST", "NZST": "NZST", "IST": "Indien-Tiet", "EAT": "Oostafrikaansch Tiet", "HNPMX": "HNPMX", "HNT": "HNT", "HNOG": "HNOG", "CHAST": "CHAST", "CHADT": "CHADT", "TMST": "TMST", "SGT": "SGT", "AST": "Noordamerikaansch Atlantik-Standardtiet", "WESZ": "Westeuropääsch Summertiet", "ECT": "ECT", "HNCU": "HNCU", "WIT": "Oostindoneesch Tiet", "AEDT": "Oostaustraalsch Summertiet", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "OESZ": "Oosteuropääsch Summertiet", "MST": "MST", "PDT": "Noordamerikaansch Pazifik-Summertiet", "ACDT": "Zentraalaustraalsch Summertiet", "HENOMX": "HENOMX", "ADT": "Noordamerikaansch Atlantik-Summertiet", "PST": "Noordamerikaansch Pazifik-Standardtiet", "MESZ": "Zentraaleuropääsch Summertiet", "LHST": "LHST"},
+ timezones: map[string]string{"HEEG": "HEEG", "ACWDT": "Westzentraalaustraalsch Summertiet", "ARST": "ARST", "AEDT": "Oostaustraalsch Summertiet", "HNPMX": "HNPMX", "EAT": "Oostafrikaansch Tiet", "HNCU": "HNCU", "OESZ": "Oosteuropääsch Summertiet", "MEZ": "Zentraaleuropääsch Standardtiet", "CHADT": "CHADT", "AST": "Noordamerikaansch Atlantik-Standardtiet", "OEZ": "Oosteuropääsch Standardtiet", "WAST": "Westafrikaansch Summertiet", "EDT": "Noordamerikaansch oosten Summertiet", "HKT": "HKT", "WITA": "Indoneesch Zentraaltiet", "HECU": "HECU", "WIB": "Westindoneesch Tiet", "CDT": "Noordamerikaansch zentraal Summertiet", "WESZ": "Westeuropääsch Summertiet", "WAT": "Westafrikaansch Standardtiet", "ChST": "ChST", "HEPM": "HEPM", "CST": "Noordamerikaansch zentraal Standardtiet", "VET": "VET", "SRT": "SRT", "HADT": "HADT", "IST": "Indien-Tiet", "TMST": "TMST", "GYT": "GYT", "AWDT": "Westaustraalsch Summertiet", "SGT": "SGT", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "UYT": "UYT", "UYST": "UYST", "LHST": "LHST", "CAT": "Zentraalafrikaansch Tiet", "CLT": "CLT", "HNOG": "HNOG", "MYT": "MYT", "TMT": "TMT", "HKST": "HKST", "HAT": "HAT", "HNPM": "HNPM", "CLST": "CLST", "WARST": "WARST", "MST": "Noordamerikaansch Barg-Standardtiet", "JST": "Japaansch Standardtiet", "JDT": "Japaansch Summertiet", "ADT": "Noordamerikaansch Atlantik-Summertiet", "LHDT": "LHDT", "PDT": "Noordamerikaansch Pazifik-Summertiet", "WEZ": "Westeuropääsch Standardtiet", "EST": "Noordamerikaansch oosten Standardtiet", "ACDT": "Zentraalaustraalsch Summertiet", "AKST": "AKST", "AEST": "Oostaustraalsch Standardtiet", "MDT": "Noordamerikaansch Barg-Summertiet", "AKDT": "AKDT", "AWST": "Westaustraalsch Standardtiet", "HAST": "HAST", "ART": "ART", "HNEG": "HNEG", "ECT": "ECT", "ACWST": "Westzentraalaustraalsch Standardtiet", "WIT": "Oostindoneesch Tiet", "MESZ": "Zentraaleuropääsch Summertiet", "WART": "WART", "COT": "COT", "COST": "COST", "BT": "BT", "SAST": "Söödafrikaansch Tiet", "HEPMX": "HEPMX", "HEOG": "HEOG", "ACST": "Zentraalaustraalsch Standardtiet", "BOT": "BOT", "PST": "Noordamerikaansch Pazifik-Standardtiet", "NZST": "NZST", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "HNT": "HNT", "GFT": "GFT", "CHAST": "CHAST", "GMT": "Gröönwisch-Welttiet"},
}
}
diff --git a/nds_NL/nds_NL.go b/nds_NL/nds_NL.go
index daf803bf..38a0fa69 100644
--- a/nds_NL/nds_NL.go
+++ b/nds_NL/nds_NL.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v.Chr.", "n.Chr."},
erasNarrow: []string{"vC", "nC"},
erasWide: []string{"vör Christus", "na Christus"},
- timezones: map[string]string{"ECT": "ECT", "GYT": "GYT", "HNOG": "HNOG", "WITA": "Indoneesch Zentraaltiet", "NZST": "NZST", "MESZ": "Zentraaleuropääsch Summertiet", "WAT": "Westafrikaansch Standardtiet", "GMT": "Gröönwisch-Welttiet", "ART": "ART", "HEOG": "HEOG", "HKST": "HKST", "CLST": "CLST", "AWDT": "Westaustraalsch Summertiet", "HEEG": "HEEG", "ACDT": "Zentraalaustraalsch Summertiet", "AKDT": "AKDT", "HADT": "HADT", "EAT": "Oostafrikaansch Tiet", "TMT": "TMT", "TMST": "TMST", "ChST": "ChST", "HNCU": "HNCU", "HECU": "HECU", "AST": "Noordamerikaansch Atlantik-Standardtiet", "ADT": "Noordamerikaansch Atlantik-Summertiet", "GFT": "GFT", "CAT": "Zentraalafrikaansch Tiet", "IST": "Indien-Tiet", "WAST": "Westafrikaansch Summertiet", "EDT": "Noordamerikaansch oosten Summertiet", "WIT": "Oostindoneesch Tiet", "AEST": "Oostaustraalsch Standardtiet", "CHADT": "CHADT", "LHDT": "LHDT", "CDT": "Noordamerikaansch zentraal Summertiet", "ACWST": "Westzentraalaustraalsch Standardtiet", "ARST": "ARST", "HAST": "HAST", "WEZ": "Westeuropääsch Standardtiet", "HEPM": "HEPM", "JST": "Japaansch Standardtiet", "LHST": "LHST", "COT": "COT", "AKST": "AKST", "BT": "BT", "SRT": "SRT", "PDT": "Noordamerikaansch Pazifik-Summertiet", "HKT": "HKT", "OESZ": "Oosteuropääsch Summertiet", "HEPMX": "HEPMX", "EST": "Noordamerikaansch oosten Standardtiet", "AEDT": "Oostaustraalsch Summertiet", "HNPM": "HNPM", "JDT": "Japaansch Summertiet", "MEZ": "Zentraaleuropääsch Standardtiet", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "UYT": "UYT", "ACWDT": "Westzentraalaustraalsch Summertiet", "HNNOMX": "HNNOMX", "WARST": "WARST", "HAT": "HAT", "CHAST": "CHAST", "CLT": "CLT", "HNEG": "HNEG", "ACST": "Zentraalaustraalsch Standardtiet", "CST": "Noordamerikaansch zentraal Standardtiet", "VET": "VET", "PST": "Noordamerikaansch Pazifik-Standardtiet", "WESZ": "Westeuropääsch Summertiet", "SAST": "Söödafrikaansch Tiet", "MYT": "MYT", "UYST": "UYST", "WIB": "Westindoneesch Tiet", "HNT": "HNT", "NZDT": "NZDT", "BOT": "BOT", "OEZ": "Oosteuropääsch Standardtiet", "WART": "WART", "∅∅∅": "∅∅∅", "SGT": "SGT", "MST": "MST", "MDT": "MDT", "AWST": "Westaustraalsch Standardtiet", "COST": "COST"},
+ timezones: map[string]string{"HECU": "HECU", "CHADT": "CHADT", "HAST": "HAST", "ACWDT": "Westzentraalaustraalsch Summertiet", "AEDT": "Oostaustraalsch Summertiet", "GMT": "Gröönwisch-Welttiet", "TMT": "TMT", "ARST": "ARST", "HNNOMX": "HNNOMX", "LHST": "LHST", "GYT": "GYT", "HNEG": "HNEG", "AKDT": "AKDT", "ChST": "ChST", "UYST": "UYST", "NZDT": "NZDT", "WESZ": "Westeuropääsch Summertiet", "WAST": "Westafrikaansch Summertiet", "HEPM": "HEPM", "LHDT": "LHDT", "CST": "Noordamerikaansch zentraal Standardtiet", "ACWST": "Westzentraalaustraalsch Standardtiet", "WART": "WART", "WARST": "WARST", "HENOMX": "HENOMX", "UYT": "UYT", "JST": "Japaansch Standardtiet", "WEZ": "Westeuropääsch Standardtiet", "HNT": "HNT", "ACST": "Zentraalaustraalsch Standardtiet", "MDT": "Noordamerikaansch Barg-Summertiet", "PDT": "Noordamerikaansch Pazifik-Summertiet", "IST": "Indien-Tiet", "VET": "VET", "AST": "Noordamerikaansch Atlantik-Standardtiet", "OEZ": "Oosteuropääsch Standardtiet", "WAT": "Westafrikaansch Standardtiet", "WIT": "Oostindoneesch Tiet", "NZST": "NZST", "ADT": "Noordamerikaansch Atlantik-Summertiet", "HKT": "HKT", "WITA": "Indoneesch Zentraaltiet", "SRT": "SRT", "CDT": "Noordamerikaansch zentraal Summertiet", "AWST": "Westaustraalsch Standardtiet", "HEPMX": "HEPMX", "HADT": "HADT", "EST": "Noordamerikaansch oosten Standardtiet", "HKST": "HKST", "∅∅∅": "∅∅∅", "HEOG": "HEOG", "ART": "ART", "JDT": "Japaansch Summertiet", "GFT": "GFT", "HNPM": "HNPM", "HNPMX": "HNPMX", "WIB": "Westindoneesch Tiet", "SGT": "SGT", "PST": "Noordamerikaansch Pazifik-Standardtiet", "ECT": "ECT", "ACDT": "Zentraalaustraalsch Summertiet", "COST": "COST", "AKST": "AKST", "HNOG": "HNOG", "COT": "COT", "HNCU": "HNCU", "AWDT": "Westaustraalsch Summertiet", "CAT": "Zentraalafrikaansch Tiet", "MESZ": "Zentraaleuropääsch Summertiet", "CLT": "CLT", "EDT": "Noordamerikaansch oosten Summertiet", "CHAST": "CHAST", "BOT": "BOT", "OESZ": "Oosteuropääsch Summertiet", "CLST": "CLST", "HAT": "HAT", "BT": "BT", "AEST": "Oostaustraalsch Standardtiet", "MST": "Noordamerikaansch Barg-Standardtiet", "SAST": "Söödafrikaansch Tiet", "EAT": "Oostafrikaansch Tiet", "MEZ": "Zentraaleuropääsch Standardtiet", "MYT": "MYT", "TMST": "TMST", "HEEG": "HEEG"},
}
}
diff --git a/ne/ne.go b/ne/ne.go
index de8e5d4d..bb3c9d6f 100644
--- a/ne/ne.go
+++ b/ne/ne.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ईसा पूर्व", "सन्"},
erasNarrow: []string{"", ""},
erasWide: []string{"ईसा पूर्व", "सन्"},
- timezones: map[string]string{"HEOG": "पश्चिमी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "AEST": "पूर्वी अस्ट्रेलिया मानक समय", "MEZ": "केन्द्रीय युरोपेली मानक समय", "TMT": "तुर्कमेनिस्तान मानक समय", "ECT": "ईक्वोडोर समय", "HENOMX": "उत्तर पश्चिम मेक्सिकोको दिवा समय", "HAST": "हवाई-एलुटियन मानक समय", "GMT": "ग्रीनविच मिन समय", "EST": "पूर्वी मानक समय", "AEDT": "पूर्वी अस्ट्रेलिया दिवा समय", "HKST": "हङकङ ग्रीष्मकालीन समय", "MST": "MST", "AST": "एट्लान्टिक मानक समय", "GYT": "गुयाना समय", "IST": "भारतीय मानक समय", "NZDT": "न्यूजिल्यान्ड दिवा समय", "HNPMX": "मेक्सिकन प्यासिफिक मानक समय", "HNT": "न्यूफाउनडल्यान्डको मानक समय", "HKT": "हङकङ मानक समय", "WITA": "केन्द्रीय इन्डोनेशिया समय", "WIB": "पश्चिमी इन्डोनेशिया समय", "WEZ": "पश्चिमी युरोपेली मानक समय", "CLST": "चिली ग्रीष्मकालीन समय", "BOT": "बोलिभिया समय", "ACST": "केन्द्रीय अस्ट्रेलिया मानक समय", "UYST": "उरुग्वे ग्रीष्मकालीन समय", "JDT": "जापान दिवा समय", "HNEG": "पूर्वी ग्रीनल्यान्डको मानक समय", "ART": "अर्जेनटिनी मानक समय", "ARST": "अर्जेनटिनी ग्रीष्मकालीन समय", "∅∅∅": "अमेजन ग्रीष्मकालीन समय", "EAT": "पूर्वी अफ्रिकी समय", "HADT": "हवाई-एलुटियन दिवा समय", "AWDT": "पश्चिमी अस्ट्रेलिया दिवा समय", "SAST": "दक्षिण अफ्रिकी समय", "WAST": "पश्चिम अफ्रिकी ग्रीष्मकालीन समय", "OESZ": "पूर्वी युरोपेली ग्रीष्मकालीन समय", "SRT": "सुरिनामा समय", "LHST": "लर्ड हावे मानक समय", "AKDT": "अलस्काको दिवा समय", "WIT": "पूर्वी इन्डोनेशिया समय", "LHDT": "लर्ड हावे दिवा समय", "CHADT": "चाथाम दिवा समय", "WAT": "पश्चिम अफ्रिकी मानक समय", "OEZ": "पूर्वी युरोपेली मानक समय", "WART": "पश्चिमी अर्जेनटिनी मानक समय", "UYT": "उरूग्वे मानक समय", "HNCU": "क्यूबाको मानक समय", "HEPMX": "मेक्सिकन प्यासिफिक दिवा समय", "ADT": "एट्लान्टिक दिवा समय", "PST": "प्यासिफिक मानक समय", "CLT": "चिली मानक समय", "JST": "जापान मानक समय", "HEEG": "पूर्वी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "COT": "कोलम्बियाली मानक समय", "PDT": "प्यासिफिक दिवा समय", "HEPM": "सेन्ट पियर्रे र मिक्युलोनको दिवा समय", "GFT": "फ्रेन्च ग्वाना समय", "CHAST": "चाथाम मानक समय", "CAT": "केन्द्रीय अफ्रिकी समय", "HNOG": "पश्चिमी ग्रीनल्यान्डको मानक समय", "MESZ": "केन्द्रीय युरोपेली ग्रीष्मकालीन समय", "SGT": "सिंगापुर मानक समय", "ACWDT": "केन्द्रीय पश्चिमी अस्ट्रेलिया दिवा समय", "HAT": "न्यूफाउनल्यान्डको दिवा समय", "AWST": "पश्चिमी अस्ट्रेलिया मानक समय", "HNPM": "सेन्ट पियर्रे र मिक्युलोनको मानक समय", "ChST": "चामोर्रो मानक समय", "TMST": "तुर्कमेनिस्तान ग्रीष्मकालीन मानक समय", "EDT": "पूर्वी दिवा समय", "CDT": "केन्द्रीय दिवा समय", "BT": "भुटानी समय", "WESZ": "युरोपेली ग्रीष्मकालीन समय", "ACWST": "केन्द्रीय पश्चिमी अस्ट्रेलिया मानक समय", "WARST": "पश्चिमी अर्जेनटिनी ग्रीष्मकालीन समय", "COST": "कोलम्बियाली ग्रीष्मकालीन समय", "AKST": "अलस्काको मानक समय", "CST": "केन्द्रीय मानक समय", "MYT": "मलेसिया समय", "VET": "भेनेज्युएला समय", "NZST": "न्यूजिल्यान्ड मानक समय", "ACDT": "केन्द्रीय अस्ट्रेलिया दिवा समय", "HNNOMX": "उत्तर पश्चिम मेक्सिकोको मानक समय", "HECU": "क्यूबाको दिवा समय", "MDT": "MDT"},
+ timezones: map[string]string{"COST": "कोलम्बियाली ग्रीष्मकालीन समय", "BT": "भुटानी समय", "CST": "केन्द्रीय मानक समय", "HNOG": "पश्चिमी ग्रीनल्यान्डको मानक समय", "ADT": "एट्लान्टिक दिवा समय", "AWST": "पश्चिमी अस्ट्रेलिया मानक समय", "CHAST": "चाथाम मानक समय", "CLT": "चिली मानक समय", "HKST": "हङकङ ग्रीष्मकालीन समय", "COT": "कोलम्बियाली मानक समय", "HNT": "न्यूफाउनडल्यान्डको मानक समय", "UYT": "उरूग्वे मानक समय", "WIB": "पश्चिमी इन्डोनेशिया समय", "TMST": "तुर्कमेनिस्तान ग्रीष्मकालीन मानक समय", "ACWDT": "केन्द्रीय पश्चिमी अस्ट्रेलिया दिवा समय", "VET": "भेनेज्युएला समय", "TMT": "तुर्कमेनिस्तान मानक समय", "GFT": "फ्रेन्च ग्वाना समय", "AKST": "अलस्काको मानक समय", "HNPM": "सेन्ट पियर्रे र मिक्युलोनको मानक समय", "GYT": "गुयाना समय", "HECU": "क्यूबाको दिवा समय", "CHADT": "चाथाम दिवा समय", "PDT": "प्यासिफिक दिवा समय", "LHST": "लर्ड हावे मानक समय", "HEPMX": "मेक्सिकन प्यासिफिक दिवा समय", "SRT": "सुरिनामा समय", "HNCU": "क्यूबाको मानक समय", "CDT": "केन्द्रीय दिवा समय", "HEOG": "पश्चिमी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "MYT": "मलेसिया समय", "EDT": "पूर्वी दिवा समय", "HKT": "हङकङ मानक समय", "WITA": "केन्द्रीय इन्डोनेशिया समय", "ECT": "ईक्वोडोर समय", "MESZ": "केन्द्रीय युरोपेली ग्रीष्मकालीन समय", "ART": "अर्जेनटिनी मानक समय", "AWDT": "पश्चिमी अस्ट्रेलिया दिवा समय", "SGT": "सिंगापुर मानक समय", "BOT": "बोलिभिया समय", "ACWST": "केन्द्रीय पश्चिमी अस्ट्रेलिया मानक समय", "WART": "पश्चिमी अर्जेनटिनी मानक समय", "ACST": "केन्द्रीय अस्ट्रेलिया मानक समय", "HAT": "न्यूफाउनल्यान्डको दिवा समय", "HEEG": "पूर्वी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "AEST": "पूर्वी अस्ट्रेलिया मानक समय", "UYST": "उरुग्वे ग्रीष्मकालीन समय", "NZST": "न्यूजिल्यान्ड मानक समय", "OESZ": "पूर्वी युरोपेली ग्रीष्मकालीन समय", "HENOMX": "उत्तर पश्चिम मेक्सिकोको दिवा समय", "AKDT": "अलस्काको दिवा समय", "MST": "हिमाली मानक समय", "HNPMX": "मेक्सिकन प्यासिफिक मानक समय", "WIT": "पूर्वी इन्डोनेशिया समय", "HEPM": "सेन्ट पियर्रे र मिक्युलोनको दिवा समय", "MEZ": "केन्द्रीय युरोपेली मानक समय", "WEZ": "पश्चिमी युरोपेली मानक समय", "HADT": "हवाई-एलुटियन दिवा समय", "CAT": "केन्द्रीय अफ्रिकी समय", "AST": "एट्लान्टिक मानक समय", "JDT": "जापान दिवा समय", "CLST": "चिली ग्रीष्मकालीन समय", "OEZ": "पूर्वी युरोपेली मानक समय", "ACDT": "केन्द्रीय अस्ट्रेलिया दिवा समय", "HNNOMX": "उत्तर पश्चिम मेक्सिकोको मानक समय", "AEDT": "पूर्वी अस्ट्रेलिया दिवा समय", "ChST": "चामोर्रो मानक समय", "IST": "भारतीय मानक समय", "WARST": "पश्चिमी अर्जेनटिनी ग्रीष्मकालीन समय", "WAST": "पश्चिम अफ्रिकी ग्रीष्मकालीन समय", "MDT": "हिमाली दिवा समय", "LHDT": "लर्ड हावे दिवा समय", "HAST": "हवाई-एलुटियन मानक समय", "WESZ": "युरोपेली ग्रीष्मकालीन समय", "PST": "प्यासिफिक मानक समय", "JST": "जापान मानक समय", "ARST": "अर्जेनटिनी ग्रीष्मकालीन समय", "WAT": "पश्चिम अफ्रिकी मानक समय", "EST": "पूर्वी मानक समय", "SAST": "दक्षिण अफ्रिकी समय", "EAT": "पूर्वी अफ्रिकी समय", "HNEG": "पूर्वी ग्रीनल्यान्डको मानक समय", "∅∅∅": "∅∅∅", "NZDT": "न्यूजिल्यान्ड दिवा समय", "GMT": "ग्रीनविच मिन समय"},
}
}
diff --git a/ne_IN/ne_IN.go b/ne_IN/ne_IN.go
index 2a7220de..d2466db6 100644
--- a/ne_IN/ne_IN.go
+++ b/ne_IN/ne_IN.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ईसा पूर्व", "सन्"},
erasNarrow: []string{"", ""},
erasWide: []string{"ईसा पूर्व", "सन्"},
- timezones: map[string]string{"HNPMX": "मेक्सिकन प्यासिफिक मानक समय", "ADT": "एट्लान्टिक दिवा समय", "WEZ": "पश्चिमी युरोपेली मानक समय", "IST": "भारतीय मानक समय", "ACDT": "केन्द्रीय अस्ट्रेलिया दिवा समय", "HEEG": "पूर्वी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "ECT": "ईक्वोडोर समय", "MST": "MST", "HNT": "न्यूफाउनडल्यान्डको मानक समय", "ART": "अर्जेनटिनी मानक समय", "AWDT": "पश्चिमी अस्ट्रेलिया दिवा समय", "HADT": "हवाई-एलुटियन दिवा समय", "MEZ": "केन्द्रीय युरोपेली मानक समय", "BOT": "बोलिभिया समय", "ACST": "केन्द्रीय अस्ट्रेलिया मानक समय", "COST": "कोलम्बियाली ग्रीष्मकालीन समय", "HENOMX": "उत्तर पश्चिम मेक्सिकोको दिवा समय", "EST": "पूर्वी मानक समय", "ACWDT": "केन्द्रीय पश्चिमी अस्ट्रेलिया दिवा समय", "JST": "जापान मानक समय", "HECU": "क्यूबाको दिवा समय", "VET": "भेनेज्युएला समय", "PST": "प्यासिफिक मानक समय", "CLT": "चिली मानक समय", "SRT": "सुरिनामा समय", "NZST": "न्यूजिल्यान्ड मानक समय", "CHADT": "चाथाम दिवा समय", "ChST": "चामोर्रो मानक समय", "GFT": "फ्रेन्च ग्वाना समय", "EDT": "पूर्वी दिवा समय", "HEOG": "पश्चिमी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "MESZ": "केन्द्रीय युरोपेली ग्रीष्मकालीन समय", "∅∅∅": "पेरु ग्रीष्मकालीन समय", "HNCU": "क्यूबाको मानक समय", "CST": "केन्द्रीय मानक समय", "HEPM": "सेन्ट पियर्रे र मिक्युलोनको दिवा समय", "LHST": "लर्ड हावे मानक समय", "NZDT": "न्यूजिल्यान्ड दिवा समय", "TMT": "तुर्कमेनिस्तान मानक समय", "GMT": "ग्रीनविच मिन समय", "PDT": "प्यासिफिक दिवा समय", "ARST": "अर्जेनटिनी ग्रीष्मकालीन समय", "AEST": "पूर्वी अस्ट्रेलिया मानक समय", "HKT": "हङकङ मानक समय", "WART": "पश्चिमी अर्जेनटिनी मानक समय", "HEPMX": "मेक्सिकन प्यासिफिक दिवा समय", "AST": "एट्लान्टिक मानक समय", "AWST": "पश्चिमी अस्ट्रेलिया मानक समय", "AEDT": "पूर्वी अस्ट्रेलिया दिवा समय", "CHAST": "चाथाम मानक समय", "WESZ": "युरोपेली ग्रीष्मकालीन समय", "LHDT": "लर्ड हावे दिवा समय", "HNEG": "पूर्वी ग्रीनल्यान्डको मानक समय", "CAT": "केन्द्रीय अफ्रिकी समय", "WAST": "पश्चिम अफ्रिकी ग्रीष्मकालीन समय", "OEZ": "पूर्वी युरोपेली मानक समय", "WARST": "पश्चिमी अर्जेनटिनी ग्रीष्मकालीन समय", "HNOG": "पश्चिमी ग्रीनल्यान्डको मानक समय", "BT": "भुटानी समय", "JDT": "जापान दिवा समय", "AKST": "अलस्काको मानक समय", "AKDT": "अलस्काको दिवा समय", "HAST": "हवाई-एलुटियन मानक समय", "EAT": "पूर्वी अफ्रिकी समय", "WAT": "पश्चिम अफ्रिकी मानक समय", "OESZ": "पूर्वी युरोपेली ग्रीष्मकालीन समय", "GYT": "गुयाना समय", "MYT": "मलेसिया समय", "WIT": "पूर्वी इन्डोनेशिया समय", "HKST": "हङकङ ग्रीष्मकालीन समय", "WITA": "केन्द्रीय इन्डोनेशिया समय", "HNPM": "सेन्ट पियर्रे र मिक्युलोनको मानक समय", "TMST": "तुर्कमेनिस्तान ग्रीष्मकालीन मानक समय", "UYST": "उरुग्वे ग्रीष्मकालीन समय", "CDT": "केन्द्रीय दिवा समय", "WIB": "पश्चिमी इन्डोनेशिया समय", "COT": "कोलम्बियाली मानक समय", "HNNOMX": "उत्तर पश्चिम मेक्सिकोको मानक समय", "SGT": "सिंगापुर मानक समय", "MDT": "MDT", "UYT": "उरूग्वे मानक समय", "ACWST": "केन्द्रीय पश्चिमी अस्ट्रेलिया मानक समय", "HAT": "न्यूफाउनल्यान्डको दिवा समय", "SAST": "दक्षिण अफ्रिकी समय", "CLST": "चिली ग्रीष्मकालीन समय"},
+ timezones: map[string]string{"CLST": "चिली ग्रीष्मकालीन समय", "ACST": "केन्द्रीय अस्ट्रेलिया मानक समय", "HAT": "न्यूफाउनल्यान्डको दिवा समय", "AEDT": "पूर्वी अस्ट्रेलिया दिवा समय", "SRT": "सुरिनामा समय", "WIB": "पश्चिमी इन्डोनेशिया समय", "TMT": "तुर्कमेनिस्तान मानक समय", "HNNOMX": "उत्तर पश्चिम मेक्सिकोको मानक समय", "CDT": "केन्द्रीय दिवा समय", "∅∅∅": "ब्राजिलीया ग्रीष्मकालीन समय", "AWST": "पश्चिमी अस्ट्रेलिया मानक समय", "VET": "भेनेज्युएला समय", "JST": "जापान मानक समय", "WART": "पश्चिमी अर्जेनटिनी मानक समय", "EAT": "पूर्वी अफ्रिकी समय", "CST": "केन्द्रीय मानक समय", "ART": "अर्जेनटिनी मानक समय", "HADT": "हवाई-एलुटियन दिवा समय", "ACWDT": "केन्द्रीय पश्चिमी अस्ट्रेलिया दिवा समय", "BT": "भुटानी समय", "AEST": "पूर्वी अस्ट्रेलिया मानक समय", "AWDT": "पश्चिमी अस्ट्रेलिया दिवा समय", "ECT": "ईक्वोडोर समय", "CLT": "चिली मानक समय", "HNOG": "पश्चिमी ग्रीनल्यान्डको मानक समय", "WAT": "पश्चिम अफ्रिकी मानक समय", "EST": "पूर्वी मानक समय", "HAST": "हवाई-एलुटियन मानक समय", "MEZ": "केन्द्रीय युरोपेली मानक समय", "JDT": "जापान दिवा समय", "HEOG": "पश्चिमी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "GYT": "गुयाना समय", "ARST": "अर्जेनटिनी ग्रीष्मकालीन समय", "EDT": "पूर्वी दिवा समय", "PDT": "प्यासिफिक दिवा समय", "NZDT": "न्यूजिल्यान्ड दिवा समय", "MESZ": "केन्द्रीय युरोपेली ग्रीष्मकालीन समय", "AST": "एट्लान्टिक मानक समय", "WEZ": "पश्चिमी युरोपेली मानक समय", "WESZ": "युरोपेली ग्रीष्मकालीन समय", "HNPM": "सेन्ट पियर्रे र मिक्युलोनको मानक समय", "NZST": "न्यूजिल्यान्ड मानक समय", "TMST": "तुर्कमेनिस्तान ग्रीष्मकालीन मानक समय", "HEPM": "सेन्ट पियर्रे र मिक्युलोनको दिवा समय", "SAST": "दक्षिण अफ्रिकी समय", "WIT": "पूर्वी इन्डोनेशिया समय", "BOT": "बोलिभिया समय", "HENOMX": "उत्तर पश्चिम मेक्सिकोको दिवा समय", "HNT": "न्यूफाउनडल्यान्डको मानक समय", "ACWST": "केन्द्रीय पश्चिमी अस्ट्रेलिया मानक समय", "HEEG": "पूर्वी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "GFT": "फ्रेन्च ग्वाना समय", "AKDT": "अलस्काको दिवा समय", "HNPMX": "मेक्सिकन प्यासिफिक मानक समय", "HECU": "क्यूबाको दिवा समय", "WAST": "पश्चिम अफ्रिकी ग्रीष्मकालीन समय", "HKST": "हङकङ ग्रीष्मकालीन समय", "UYST": "उरुग्वे ग्रीष्मकालीन समय", "LHDT": "लर्ड हावे दिवा समय", "HEPMX": "मेक्सिकन प्यासिफिक दिवा समय", "HNCU": "क्यूबाको मानक समय", "CHAST": "चाथाम मानक समय", "WARST": "पश्चिमी अर्जेनटिनी ग्रीष्मकालीन समय", "ADT": "एट्लान्टिक दिवा समय", "OESZ": "पूर्वी युरोपेली ग्रीष्मकालीन समय", "CAT": "केन्द्रीय अफ्रिकी समय", "MDT": "MDT", "HNEG": "पूर्वी ग्रीनल्यान्डको मानक समय", "WITA": "केन्द्रीय इन्डोनेशिया समय", "IST": "भारतीय मानक समय", "COST": "कोलम्बियाली ग्रीष्मकालीन समय", "UYT": "उरूग्वे मानक समय", "LHST": "लर्ड हावे मानक समय", "COT": "कोलम्बियाली मानक समय", "AKST": "अलस्काको मानक समय", "PST": "प्यासिफिक मानक समय", "MYT": "मलेसिया समय", "GMT": "ग्रीनविच मिन समय", "MST": "MST", "HKT": "हङकङ मानक समय", "ACDT": "केन्द्रीय अस्ट्रेलिया दिवा समय", "CHADT": "चाथाम दिवा समय", "SGT": "सिंगापुर मानक समय", "OEZ": "पूर्वी युरोपेली मानक समय", "ChST": "चामोर्रो मानक समय"},
}
}
diff --git a/ne_NP/ne_NP.go b/ne_NP/ne_NP.go
index 6e3edd2b..936664e6 100644
--- a/ne_NP/ne_NP.go
+++ b/ne_NP/ne_NP.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ईसा पूर्व", "सन्"},
erasNarrow: []string{"", ""},
erasWide: []string{"ईसा पूर्व", "सन्"},
- timezones: map[string]string{"LHDT": "लर्ड हावे दिवा समय", "HEPMX": "मेक्सिकन प्यासिफिक दिवा समय", "AWST": "पश्चिमी अस्ट्रेलिया मानक समय", "WART": "पश्चिमी अर्जेनटिनी मानक समय", "HNCU": "क्यूबाको मानक समय", "HECU": "क्यूबाको दिवा समय", "GMT": "ग्रीनविच मिन समय", "PST": "प्यासिफिक मानक समय", "HEPM": "सेन्ट पियर्रे र मिक्युलोनको दिवा समय", "OEZ": "पूर्वी युरोपेली मानक समय", "CAT": "केन्द्रीय अफ्रिकी समय", "MST": "MST", "ACWST": "केन्द्रीय पश्चिमी अस्ट्रेलिया मानक समय", "HNPM": "सेन्ट पियर्रे र मिक्युलोनको मानक समय", "NZST": "न्यूजिल्यान्ड मानक समय", "TMT": "तुर्कमेनिस्तान मानक समय", "EDT": "पूर्वी दिवा समय", "HEOG": "पश्चिमी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "SGT": "सिंगापुर मानक समय", "MYT": "मलेसिया समय", "WIB": "पश्चिमी इन्डोनेशिया समय", "CHADT": "चाथाम दिवा समय", "HNPMX": "मेक्सिकन प्यासिफिक मानक समय", "UYT": "उरूग्वे मानक समय", "CST": "केन्द्रीय मानक समय", "AST": "एट्लान्टिक मानक समय", "ARST": "अर्जेनटिनी ग्रीष्मकालीन समय", "MESZ": "केन्द्रीय युरोपेली ग्रीष्मकालीन समय", "CLT": "चिली मानक समय", "COT": "कोलम्बियाली मानक समय", "EST": "पूर्वी मानक समय", "HAST": "हवाई-एलुटियन मानक समय", "SRT": "सुरिनामा समय", "ART": "अर्जेनटिनी मानक समय", "PDT": "प्यासिफिक दिवा समय", "WEZ": "पश्चिमी युरोपेली मानक समय", "ACST": "केन्द्रीय अस्ट्रेलिया मानक समय", "WAT": "पश्चिम अफ्रिकी मानक समय", "ADT": "एट्लान्टिक दिवा समय", "GYT": "गुयाना समय", "IST": "भारतीय मानक समय", "GFT": "फ्रेन्च ग्वाना समय", "ChST": "चामोर्रो मानक समय", "COST": "कोलम्बियाली ग्रीष्मकालीन समय", "UYST": "उरुग्वे ग्रीष्मकालीन समय", "CLST": "चिली ग्रीष्मकालीन समय", "HNNOMX": "उत्तर पश्चिम मेक्सिकोको मानक समय", "WARST": "पश्चिमी अर्जेनटिनी ग्रीष्मकालीन समय", "LHST": "लर्ड हावे मानक समय", "EAT": "पूर्वी अफ्रिकी समय", "AKST": "अलस्काको मानक समय", "AKDT": "अलस्काको दिवा समय", "CDT": "केन्द्रीय दिवा समय", "HADT": "हवाई-एलुटियन दिवा समय", "WITA": "केन्द्रीय इन्डोनेशिया समय", "ACDT": "केन्द्रीय अस्ट्रेलिया दिवा समय", "OESZ": "पूर्वी युरोपेली ग्रीष्मकालीन समय", "AEST": "पूर्वी अस्ट्रेलिया मानक समय", "ECT": "ईक्वोडोर समय", "MDT": "MDT", "HAT": "न्यूफाउनल्यान्डको दिवा समय", "HKT": "हङकङ मानक समय", "AWDT": "पश्चिमी अस्ट्रेलिया दिवा समय", "CHAST": "चाथाम मानक समय", "HEEG": "पूर्वी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "TMST": "तुर्कमेनिस्तान ग्रीष्मकालीन मानक समय", "MEZ": "केन्द्रीय युरोपेली मानक समय", "SAST": "दक्षिण अफ्रिकी समय", "HNOG": "पश्चिमी ग्रीनल्यान्डको मानक समय", "AEDT": "पूर्वी अस्ट्रेलिया दिवा समय", "WAST": "पश्चिम अफ्रिकी ग्रीष्मकालीन समय", "BT": "भुटानी समय", "BOT": "बोलिभिया समय", "HKST": "हङकङ ग्रीष्मकालीन समय", "∅∅∅": "अमेजन ग्रीष्मकालीन समय", "JST": "जापान मानक समय", "HNT": "न्यूफाउनडल्यान्डको मानक समय", "WESZ": "युरोपेली ग्रीष्मकालीन समय", "HENOMX": "उत्तर पश्चिम मेक्सिकोको दिवा समय", "WIT": "पूर्वी इन्डोनेशिया समय", "VET": "भेनेज्युएला समय", "ACWDT": "केन्द्रीय पश्चिमी अस्ट्रेलिया दिवा समय", "NZDT": "न्यूजिल्यान्ड दिवा समय", "JDT": "जापान दिवा समय", "HNEG": "पूर्वी ग्रीनल्यान्डको मानक समय"},
+ timezones: map[string]string{"AKST": "अलस्काको मानक समय", "HNPM": "सेन्ट पियर्रे र मिक्युलोनको मानक समय", "HAST": "हवाई-एलुटियन मानक समय", "PST": "प्यासिफिक मानक समय", "WAT": "पश्चिम अफ्रिकी मानक समय", "HNEG": "पूर्वी ग्रीनल्यान्डको मानक समय", "MYT": "मलेसिया समय", "CLST": "चिली ग्रीष्मकालीन समय", "HKST": "हङकङ ग्रीष्मकालीन समय", "EDT": "पूर्वी दिवा समय", "WIT": "पूर्वी इन्डोनेशिया समय", "BOT": "बोलिभिया समय", "IST": "भारतीय मानक समय", "MDT": "MDT", "EST": "पूर्वी मानक समय", "ACDT": "केन्द्रीय अस्ट्रेलिया दिवा समय", "HENOMX": "उत्तर पश्चिम मेक्सिकोको दिवा समय", "COT": "कोलम्बियाली मानक समय", "OEZ": "पूर्वी युरोपेली मानक समय", "ARST": "अर्जेनटिनी ग्रीष्मकालीन समय", "COST": "कोलम्बियाली ग्रीष्मकालीन समय", "UYT": "उरूग्वे मानक समय", "TMST": "तुर्कमेनिस्तान ग्रीष्मकालीन मानक समय", "HEPMX": "मेक्सिकन प्यासिफिक दिवा समय", "CDT": "केन्द्रीय दिवा समय", "AWDT": "पश्चिमी अस्ट्रेलिया दिवा समय", "CHAST": "चाथाम मानक समय", "SGT": "सिंगापुर मानक समय", "AEST": "पूर्वी अस्ट्रेलिया मानक समय", "HEPM": "सेन्ट पियर्रे र मिक्युलोनको दिवा समय", "LHDT": "लर्ड हावे दिवा समय", "WIB": "पश्चिमी इन्डोनेशिया समय", "HNNOMX": "उत्तर पश्चिम मेक्सिकोको मानक समय", "WITA": "केन्द्रीय इन्डोनेशिया समय", "HAT": "न्यूफाउनल्यान्डको दिवा समय", "AKDT": "अलस्काको दिवा समय", "HNPMX": "मेक्सिकन प्यासिफिक मानक समय", "PDT": "प्यासिफिक दिवा समय", "NZDT": "न्यूजिल्यान्ड दिवा समय", "ACST": "केन्द्रीय अस्ट्रेलिया मानक समय", "BT": "भुटानी समय", "EAT": "पूर्वी अफ्रिकी समय", "HECU": "क्यूबाको दिवा समय", "CHADT": "चाथाम दिवा समय", "NZST": "न्यूजिल्यान्ड मानक समय", "WESZ": "युरोपेली ग्रीष्मकालीन समय", "AEDT": "पूर्वी अस्ट्रेलिया दिवा समय", "GYT": "गुयाना समय", "JST": "जापान मानक समय", "MEZ": "केन्द्रीय युरोपेली मानक समय", "GFT": "फ्रेन्च ग्वाना समय", "UYST": "उरुग्वे ग्रीष्मकालीन समय", "HADT": "हवाई-एलुटियन दिवा समय", "OESZ": "पूर्वी युरोपेली ग्रीष्मकालीन समय", "TMT": "तुर्कमेनिस्तान मानक समय", "MST": "MST", "AST": "एट्लान्टिक मानक समय", "HKT": "हङकङ मानक समय", "SAST": "दक्षिण अफ्रिकी समय", "LHST": "लर्ड हावे मानक समय", "ECT": "ईक्वोडोर समय", "WEZ": "पश्चिमी युरोपेली मानक समय", "WART": "पश्चिमी अर्जेनटिनी मानक समय", "HEOG": "पश्चिमी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "CST": "केन्द्रीय मानक समय", "VET": "भेनेज्युएला समय", "GMT": "ग्रीनविच मिन समय", "WARST": "पश्चिमी अर्जेनटिनी ग्रीष्मकालीन समय", "ChST": "चामोर्रो मानक समय", "ACWST": "केन्द्रीय पश्चिमी अस्ट्रेलिया मानक समय", "ACWDT": "केन्द्रीय पश्चिमी अस्ट्रेलिया दिवा समय", "CAT": "केन्द्रीय अफ्रिकी समय", "MESZ": "केन्द्रीय युरोपेली ग्रीष्मकालीन समय", "SRT": "सुरिनामा समय", "HNCU": "क्यूबाको मानक समय", "WAST": "पश्चिम अफ्रिकी ग्रीष्मकालीन समय", "HEEG": "पूर्वी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "HNT": "न्यूफाउनडल्यान्डको मानक समय", "JDT": "जापान दिवा समय", "CLT": "चिली मानक समय", "ADT": "एट्लान्टिक दिवा समय", "ART": "अर्जेनटिनी मानक समय", "∅∅∅": "अमेजन ग्रीष्मकालीन समय", "HNOG": "पश्चिमी ग्रीनल्यान्डको मानक समय", "AWST": "पश्चिमी अस्ट्रेलिया मानक समय"},
}
}
diff --git a/nl/nl.go b/nl/nl.go
index 59b0a5b5..0cec181d 100644
--- a/nl/nl.go
+++ b/nl/nl.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v.Chr.", "n.Chr."},
erasNarrow: []string{"v.C.", "n.C."},
erasWide: []string{"voor Christus", "na Christus"},
- timezones: map[string]string{"HENOMX": "Noordwest-Mexicaanse zomertijd", "GMT": "Greenwich Mean Time", "SRT": "Surinaamse tijd", "WART": "West-Argentijnse standaardtijd", "EDT": "Eastern-zomertijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "AEST": "Oost-Australische standaardtijd", "HKT": "Hongkongse standaardtijd", "WAST": "West-Afrikaanse zomertijd", "WEZ": "West-Europese standaardtijd", "ART": "Argentijnse standaardtijd", "MEZ": "Midden-Europese standaardtijd", "NZDT": "Nieuw-Zeelandse zomertijd", "JDT": "Japanse zomertijd", "ECT": "Ecuadoraanse tijd", "∅∅∅": "Peruaanse zomertijd", "MDT": "Macause zomertijd", "AKDT": "Alaska-zomertijd", "WESZ": "West-Europese zomertijd", "CHAST": "Chatham-standaardtijd", "WAT": "West-Afrikaanse standaardtijd", "HECU": "Cubaanse zomertijd", "CST": "Central-standaardtijd", "HADT": "Hawaii-Aleoetische zomertijd", "WIT": "Oost-Indonesische tijd", "AWST": "West-Australische standaardtijd", "LHDT": "Lord Howe-eilandse zomertijd", "IST": "Indiase tijd", "CAT": "Centraal-Afrikaanse tijd", "WARST": "West-Argentijnse zomertijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "PDT": "Pacific-zomertijd", "HEOG": "West-Groenlandse zomertijd", "NZST": "Nieuw-Zeelandse standaardtijd", "ChST": "Chamorro-tijd", "EST": "Eastern-standaardtijd", "ARST": "Argentijnse zomertijd", "MESZ": "Midden-Europese zomertijd", "HNEG": "Oost-Groenlandse standaardtijd", "TMT": "Turkmeense standaardtijd", "TMST": "Turkmeense zomertijd", "COT": "Colombiaanse standaardtijd", "ADT": "Atlantic-zomertijd", "PST": "Pacific-standaardtijd", "WITA": "Centraal-Indonesische tijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "JST": "Japanse standaardtijd", "COST": "Colombiaanse zomertijd", "AKST": "Alaska-standaardtijd", "AWDT": "West-Australische zomertijd", "CHADT": "Chatham-zomertijd", "ACST": "Midden-Australische standaardtijd", "OESZ": "Oost-Europese zomertijd", "LHST": "Lord Howe-eilandse standaardtijd", "GFT": "Frans-Guyaanse tijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "MYT": "Maleisische tijd", "UYT": "Uruguayaanse standaardtijd", "HAST": "Hawaii-Aleoetische standaardtijd", "VET": "Venezolaanse tijd", "BT": "Bhutaanse tijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "OEZ": "Oost-Europese standaardtijd", "WIB": "West-Indonesische tijd", "ACWDT": "Midden-Australische westelijke zomertijd", "HNOG": "West-Groenlandse standaardtijd", "ACWST": "Midden-Australische westelijke standaardtijd", "HNT": "Newfoundland-standaardtijd", "CLT": "Chileense standaardtijd", "BOT": "Boliviaanse tijd", "HNCU": "Cubaanse standaardtijd", "MST": "Macause standaardtijd", "CDT": "Central-zomertijd", "AST": "Atlantic-standaardtijd", "HAT": "Newfoundland-zomertijd", "AEDT": "Oost-Australische zomertijd", "HKST": "Hongkongse zomertijd", "HEEG": "Oost-Groenlandse zomertijd", "ACDT": "Midden-Australische zomertijd", "EAT": "Oost-Afrikaanse tijd", "SGT": "Singaporese standaardtijd", "CLST": "Chileense zomertijd", "GYT": "Guyaanse tijd", "UYST": "Uruguayaanse zomertijd", "SAST": "Zuid-Afrikaanse tijd"},
+ timezones: map[string]string{"HKST": "Hongkongse zomertijd", "COST": "Colombiaanse zomertijd", "HNCU": "Cubaanse standaardtijd", "CHAST": "Chatham-standaardtijd", "CHADT": "Chatham-zomertijd", "JST": "Japanse standaardtijd", "WESZ": "West-Europese zomertijd", "TMST": "Turkmeense zomertijd", "HNT": "Newfoundland-standaardtijd", "AKDT": "Alaska-zomertijd", "ECT": "Ecuadoraanse tijd", "NZDT": "Nieuw-Zeelandse zomertijd", "MEZ": "Midden-Europese standaardtijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "EAT": "Oost-Afrikaanse tijd", "PDT": "Pacific-zomertijd", "HAST": "Hawaii-Aleoetische standaardtijd", "HADT": "Hawaii-Aleoetische zomertijd", "CLST": "Chileense zomertijd", "WITA": "Centraal-Indonesische tijd", "SGT": "Singaporese standaardtijd", "ACWDT": "Midden-Australische westelijke zomertijd", "MESZ": "Midden-Europese zomertijd", "ART": "Argentijnse standaardtijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "ChST": "Chamorro-tijd", "GYT": "Guyaanse tijd", "PST": "Pacific-standaardtijd", "OESZ": "Oost-Europese zomertijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "BT": "Bhutaanse tijd", "HNEG": "Oost-Groenlandse standaardtijd", "VET": "Venezolaanse tijd", "MYT": "Maleisische tijd", "WAT": "West-Afrikaanse standaardtijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "AKST": "Alaska-standaardtijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "IST": "Indiase tijd", "MST": "Macause standaardtijd", "ARST": "Argentijnse zomertijd", "AEDT": "Oost-Australische zomertijd", "SAST": "Zuid-Afrikaanse tijd", "CDT": "Central-zomertijd", "CAT": "Centraal-Afrikaanse tijd", "AST": "Atlantic-standaardtijd", "CLT": "Chileense standaardtijd", "EDT": "Eastern-zomertijd", "LHDT": "Lord Howe-eilandse zomertijd", "UYST": "Uruguayaanse zomertijd", "∅∅∅": "Braziliaanse zomertijd", "AWST": "West-Australische standaardtijd", "AWDT": "West-Australische zomertijd", "BOT": "Boliviaanse tijd", "GMT": "Greenwich Mean Time", "HAT": "Newfoundland-zomertijd", "WEZ": "West-Europese standaardtijd", "WART": "West-Argentijnse standaardtijd", "HEOG": "West-Groenlandse zomertijd", "HEEG": "Oost-Groenlandse zomertijd", "GFT": "Frans-Guyaanse tijd", "HECU": "Cubaanse zomertijd", "OEZ": "Oost-Europese standaardtijd", "HNOG": "West-Groenlandse standaardtijd", "MDT": "Macause zomertijd", "WAST": "West-Afrikaanse zomertijd", "HKT": "Hongkongse standaardtijd", "ADT": "Atlantic-zomertijd", "TMT": "Turkmeense standaardtijd", "COT": "Colombiaanse standaardtijd", "UYT": "Uruguayaanse standaardtijd", "ACWST": "Midden-Australische westelijke standaardtijd", "NZST": "Nieuw-Zeelandse standaardtijd", "LHST": "Lord Howe-eilandse standaardtijd", "WIB": "West-Indonesische tijd", "JDT": "Japanse zomertijd", "ACST": "Midden-Australische standaardtijd", "ACDT": "Midden-Australische zomertijd", "SRT": "Surinaamse tijd", "CST": "Central-standaardtijd", "WIT": "Oost-Indonesische tijd", "WARST": "West-Argentijnse zomertijd", "EST": "Eastern-standaardtijd", "AEST": "Oost-Australische standaardtijd"},
}
}
diff --git a/nl_AW/nl_AW.go b/nl_AW/nl_AW.go
index dfd74669..b51c1584 100644
--- a/nl_AW/nl_AW.go
+++ b/nl_AW/nl_AW.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v.Chr.", "n.Chr."},
erasNarrow: []string{"v.C.", "n.C."},
erasWide: []string{"voor Christus", "na Christus"},
- timezones: map[string]string{"AWDT": "West-Australische zomertijd", "MESZ": "Midden-Europese zomertijd", "BOT": "Boliviaanse tijd", "SGT": "Singaporese standaardtijd", "EST": "Eastern-standaardtijd", "CST": "Central-standaardtijd", "HEOG": "West-Groenlandse zomertijd", "ACST": "Midden-Australische standaardtijd", "OEZ": "Oost-Europese standaardtijd", "AKDT": "Alaska-zomertijd", "ADT": "Atlantic-zomertijd", "GYT": "Guyaanse tijd", "WIB": "West-Indonesische tijd", "PST": "Pacific-standaardtijd", "PDT": "Pacific-zomertijd", "AEST": "Oost-Australische standaardtijd", "JDT": "Japanse zomertijd", "ChST": "Chamorro-tijd", "GFT": "Frans-Guyaanse tijd", "TMST": "Turkmeense zomertijd", "CDT": "Central-zomertijd", "ART": "Argentijnse standaardtijd", "HKT": "Hongkongse standaardtijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "CLT": "Chileense standaardtijd", "ECT": "Ecuadoraanse tijd", "COT": "Colombiaanse standaardtijd", "HAST": "Hawaii-Aleoetische standaardtijd", "WEZ": "West-Europese standaardtijd", "HECU": "Cubaanse zomertijd", "EDT": "Eastern-zomertijd", "ACWDT": "Midden-Australische westelijke zomertijd", "ARST": "Argentijnse zomertijd", "CLST": "Chileense zomertijd", "SRT": "Surinaamse tijd", "AEDT": "Oost-Australische zomertijd", "∅∅∅": "Amazone-zomertijd", "WAT": "West-Afrikaanse standaardtijd", "OESZ": "Oost-Europese zomertijd", "GMT": "Greenwich Mean Time", "WART": "West-Argentijnse standaardtijd", "HAT": "Newfoundland-zomertijd", "IST": "Indiase tijd", "HEEG": "Oost-Groenlandse zomertijd", "ACDT": "Midden-Australische zomertijd", "MDT": "Macause zomertijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "WESZ": "West-Europese zomertijd", "HKST": "Hongkongse zomertijd", "LHDT": "Lord Howe-eilandse zomertijd", "MST": "Macause standaardtijd", "MYT": "Maleisische tijd", "HNOG": "West-Groenlandse standaardtijd", "CHADT": "Chatham-zomertijd", "BT": "Bhutaanse tijd", "CHAST": "Chatham-standaardtijd", "HNEG": "Oost-Groenlandse standaardtijd", "COST": "Colombiaanse zomertijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "HNCU": "Cubaanse standaardtijd", "UYT": "Uruguayaanse standaardtijd", "ACWST": "Midden-Australische westelijke standaardtijd", "MEZ": "Midden-Europese standaardtijd", "LHST": "Lord Howe-eilandse standaardtijd", "WAST": "West-Afrikaanse zomertijd", "WARST": "West-Argentijnse zomertijd", "HADT": "Hawaii-Aleoetische zomertijd", "AWST": "West-Australische standaardtijd", "TMT": "Turkmeense standaardtijd", "CAT": "Centraal-Afrikaanse tijd", "EAT": "Oost-Afrikaanse tijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "UYST": "Uruguayaanse zomertijd", "VET": "Venezolaanse tijd", "HNT": "Newfoundland-standaardtijd", "NZST": "Nieuw-Zeelandse standaardtijd", "NZDT": "Nieuw-Zeelandse zomertijd", "SAST": "Zuid-Afrikaanse tijd", "AKST": "Alaska-standaardtijd", "WITA": "Centraal-Indonesische tijd", "JST": "Japanse standaardtijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "AST": "Atlantic-standaardtijd", "WIT": "Oost-Indonesische tijd"},
+ timezones: map[string]string{"AKDT": "Alaska-zomertijd", "ChST": "Chamorro-tijd", "HAST": "Hawaii-Aleoetische standaardtijd", "EST": "Eastern-standaardtijd", "WIT": "Oost-Indonesische tijd", "WARST": "West-Argentijnse zomertijd", "HEOG": "West-Groenlandse zomertijd", "PST": "Pacific-standaardtijd", "ECT": "Ecuadoraanse tijd", "WEZ": "West-Europese standaardtijd", "GMT": "Greenwich Mean Time", "HKT": "Hongkongse standaardtijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "MDT": "Mountain-zomertijd", "UYT": "Uruguayaanse standaardtijd", "HEEG": "Oost-Groenlandse zomertijd", "GYT": "Guyaanse tijd", "WESZ": "West-Europese zomertijd", "SRT": "Surinaamse tijd", "ART": "Argentijnse standaardtijd", "COST": "Colombiaanse zomertijd", "HNT": "Newfoundland-standaardtijd", "∅∅∅": "Acre-zomertijd", "PDT": "Pacific-zomertijd", "TMST": "Turkmeense zomertijd", "HKST": "Hongkongse zomertijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "HNCU": "Cubaanse standaardtijd", "CHADT": "Chatham-zomertijd", "CHAST": "Chatham-standaardtijd", "HAT": "Newfoundland-zomertijd", "CDT": "Central-zomertijd", "SGT": "Singaporese standaardtijd", "WITA": "Centraal-Indonesische tijd", "EAT": "Oost-Afrikaanse tijd", "CAT": "Centraal-Afrikaanse tijd", "WIB": "West-Indonesische tijd", "CST": "Central-standaardtijd", "BOT": "Boliviaanse tijd", "OESZ": "Oost-Europese zomertijd", "WART": "West-Argentijnse standaardtijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "SAST": "Zuid-Afrikaanse tijd", "ARST": "Argentijnse zomertijd", "WAST": "West-Afrikaanse zomertijd", "MST": "Mountain-standaardtijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "HECU": "Cubaanse zomertijd", "AWDT": "West-Australische zomertijd", "ACWST": "Midden-Australische westelijke standaardtijd", "COT": "Colombiaanse standaardtijd", "ACDT": "Midden-Australische zomertijd", "AEDT": "Oost-Australische zomertijd", "EDT": "Eastern-zomertijd", "VET": "Venezolaanse tijd", "JST": "Japanse standaardtijd", "CLST": "Chileense zomertijd", "WAT": "West-Afrikaanse standaardtijd", "JDT": "Japanse zomertijd", "MESZ": "Midden-Europese zomertijd", "ADT": "Atlantic-zomertijd", "IST": "Indiase tijd", "OEZ": "Oost-Europese standaardtijd", "UYST": "Uruguayaanse zomertijd", "AWST": "West-Australische standaardtijd", "HADT": "Hawaii-Aleoetische zomertijd", "LHST": "Lord Howe-eilandse standaardtijd", "NZDT": "Nieuw-Zeelandse zomertijd", "LHDT": "Lord Howe-eilandse zomertijd", "ACWDT": "Midden-Australische westelijke zomertijd", "MEZ": "Midden-Europese standaardtijd", "HNOG": "West-Groenlandse standaardtijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "BT": "Bhutaanse tijd", "GFT": "Frans-Guyaanse tijd", "MYT": "Maleisische tijd", "CLT": "Chileense standaardtijd", "ACST": "Midden-Australische standaardtijd", "AEST": "Oost-Australische standaardtijd", "AKST": "Alaska-standaardtijd", "TMT": "Turkmeense standaardtijd", "HNEG": "Oost-Groenlandse standaardtijd", "NZST": "Nieuw-Zeelandse standaardtijd", "AST": "Atlantic-standaardtijd"},
}
}
diff --git a/nl_BE/nl_BE.go b/nl_BE/nl_BE.go
index edb940ae..39cfe462 100644
--- a/nl_BE/nl_BE.go
+++ b/nl_BE/nl_BE.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v.Chr.", "n.Chr."},
erasNarrow: []string{"v.C.", "n.C."},
erasWide: []string{"voor Christus", "na Christus"},
- timezones: map[string]string{"EST": "Eastern-standaardtijd", "CDT": "Central-zomertijd", "WESZ": "West-Europese zomertijd", "AWDT": "West-Australische zomertijd", "CAT": "Centraal-Afrikaanse tijd", "HECU": "Cubaanse zomertijd", "BT": "Bhutaanse tijd", "HEOG": "West-Groenlandse zomertijd", "HAT": "Newfoundland-zomertijd", "HNCU": "Cubaanse standaardtijd", "AKST": "Alaska-standaardtijd", "TMT": "Turkmeense standaardtijd", "WART": "West-Argentijnse standaardtijd", "SGT": "Singaporese standaardtijd", "GYT": "Guyaanse tijd", "ACWDT": "Midden-Australische westelijke zomertijd", "NZST": "Nieuw-Zeelandse standaardtijd", "JDT": "Japanse zomertijd", "BOT": "Boliviaanse tijd", "WAT": "West-Afrikaanse standaardtijd", "ECT": "Ecuadoraanse tijd", "UYT": "Uruguayaanse standaardtijd", "AST": "Atlantic-standaardtijd", "ACWST": "Midden-Australische westelijke standaardtijd", "HKT": "Hongkongse standaardtijd", "CLT": "Chileense standaardtijd", "GFT": "Frans-Guyaanse tijd", "HKST": "Hongkongse zomertijd", "WITA": "Centraal-Indonesische tijd", "ADT": "Atlantic-zomertijd", "HAST": "Hawaii-Aleoetische standaardtijd", "HNOG": "West-Groenlandse standaardtijd", "NZDT": "Nieuw-Zeelandse zomertijd", "TMST": "Turkmeense zomertijd", "EAT": "Oost-Afrikaanse tijd", "UYST": "Uruguayaanse zomertijd", "MEZ": "Midden-Europese standaardtijd", "∅∅∅": "Amazone-zomertijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "AEST": "Oost-Australische standaardtijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "EDT": "Eastern-zomertijd", "MST": "Macause standaardtijd", "MDT": "Macause zomertijd", "PST": "Pacific-standaardtijd", "AWST": "West-Australische standaardtijd", "MESZ": "Midden-Europese zomertijd", "SAST": "Zuid-Afrikaanse tijd", "JST": "Japanse standaardtijd", "OESZ": "Oost-Europese zomertijd", "CST": "Central-standaardtijd", "WIT": "Oost-Indonesische tijd", "WEZ": "West-Europese standaardtijd", "ACST": "Midden-Australische standaardtijd", "ACDT": "Midden-Australische zomertijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "CHADT": "Chatham-zomertijd", "IST": "Indiase tijd", "HNEG": "Oost-Groenlandse standaardtijd", "ART": "Argentijnse standaardtijd", "MYT": "Maleisische tijd", "HNT": "Newfoundland-standaardtijd", "SRT": "Surinaamse tijd", "ARST": "Argentijnse zomertijd", "COST": "Colombiaanse zomertijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "GMT": "Greenwich Mean Time", "HADT": "Hawaii-Aleoetische zomertijd", "CLST": "Chileense zomertijd", "OEZ": "Oost-Europese standaardtijd", "WAST": "West-Afrikaanse zomertijd", "AEDT": "Oost-Australische zomertijd", "PDT": "Pacific-zomertijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "LHST": "Lord Howe-eilandse standaardtijd", "LHDT": "Lord Howe-eilandse zomertijd", "CHAST": "Chatham-standaardtijd", "HEEG": "Oost-Groenlandse zomertijd", "COT": "Colombiaanse standaardtijd", "AKDT": "Alaska-zomertijd", "WIB": "West-Indonesische tijd", "VET": "Venezolaanse tijd", "ChST": "Chamorro-tijd", "WARST": "West-Argentijnse zomertijd"},
+ timezones: map[string]string{"HAT": "Newfoundland-zomertijd", "AEST": "Oost-Australische standaardtijd", "HNCU": "Cubaanse standaardtijd", "WIT": "Oost-Indonesische tijd", "CHADT": "Chatham-zomertijd", "PST": "Pacific-standaardtijd", "JDT": "Japanse zomertijd", "OEZ": "Oost-Europese standaardtijd", "WAT": "West-Afrikaanse standaardtijd", "WITA": "Centraal-Indonesische tijd", "UYT": "Uruguayaanse standaardtijd", "GYT": "Guyaanse tijd", "CST": "Central-standaardtijd", "HADT": "Hawaii-Aleoetische zomertijd", "WESZ": "West-Europese zomertijd", "MDT": "Macause zomertijd", "ACWDT": "Midden-Australische westelijke zomertijd", "SRT": "Surinaamse tijd", "CHAST": "Chatham-standaardtijd", "MYT": "Maleisische tijd", "ACDT": "Midden-Australische zomertijd", "TMST": "Turkmeense zomertijd", "EDT": "Eastern-zomertijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "AWST": "West-Australische standaardtijd", "WARST": "West-Argentijnse zomertijd", "CLST": "Chileense zomertijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "AEDT": "Oost-Australische zomertijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "GMT": "Greenwich Mean Time", "ADT": "Atlantic-zomertijd", "ACST": "Midden-Australische standaardtijd", "AKDT": "Alaska-zomertijd", "WIB": "West-Indonesische tijd", "SGT": "Singaporese standaardtijd", "JST": "Japanse standaardtijd", "EST": "Eastern-standaardtijd", "TMT": "Turkmeense standaardtijd", "MST": "Macause standaardtijd", "ARST": "Argentijnse zomertijd", "∅∅∅": "Acre-zomertijd", "BT": "Bhutaanse tijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "HEOG": "West-Groenlandse zomertijd", "AST": "Atlantic-standaardtijd", "OESZ": "Oost-Europese zomertijd", "ECT": "Ecuadoraanse tijd", "NZDT": "Nieuw-Zeelandse zomertijd", "WEZ": "West-Europese standaardtijd", "HNOG": "West-Groenlandse standaardtijd", "MEZ": "Midden-Europese standaardtijd", "AKST": "Alaska-standaardtijd", "EAT": "Oost-Afrikaanse tijd", "CDT": "Central-zomertijd", "PDT": "Pacific-zomertijd", "NZST": "Nieuw-Zeelandse standaardtijd", "CAT": "Centraal-Afrikaanse tijd", "VET": "Venezolaanse tijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "LHDT": "Lord Howe-eilandse zomertijd", "HECU": "Cubaanse zomertijd", "BOT": "Boliviaanse tijd", "HAST": "Hawaii-Aleoetische standaardtijd", "COT": "Colombiaanse standaardtijd", "HNEG": "Oost-Groenlandse standaardtijd", "WAST": "West-Afrikaanse zomertijd", "ChST": "Chamorro-tijd", "UYST": "Uruguayaanse zomertijd", "AWDT": "West-Australische zomertijd", "ACWST": "Midden-Australische westelijke standaardtijd", "WART": "West-Argentijnse standaardtijd", "CLT": "Chileense standaardtijd", "HEEG": "Oost-Groenlandse zomertijd", "IST": "Indiase tijd", "COST": "Colombiaanse zomertijd", "MESZ": "Midden-Europese zomertijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "HKST": "Hongkongse zomertijd", "HNT": "Newfoundland-standaardtijd", "GFT": "Frans-Guyaanse tijd", "SAST": "Zuid-Afrikaanse tijd", "LHST": "Lord Howe-eilandse standaardtijd", "ART": "Argentijnse standaardtijd", "HKT": "Hongkongse standaardtijd"},
}
}
diff --git a/nl_BQ/nl_BQ.go b/nl_BQ/nl_BQ.go
index 279027c0..61ed5731 100644
--- a/nl_BQ/nl_BQ.go
+++ b/nl_BQ/nl_BQ.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v.Chr.", "n.Chr."},
erasNarrow: []string{"v.C.", "n.C."},
erasWide: []string{"voor Christus", "na Christus"},
- timezones: map[string]string{"UYT": "Uruguayaanse standaardtijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "SAST": "Zuid-Afrikaanse tijd", "IST": "Indiase tijd", "CLST": "Chileense zomertijd", "COST": "Colombiaanse zomertijd", "ADT": "Atlantic-zomertijd", "WEZ": "West-Europese standaardtijd", "ACST": "Midden-Australische standaardtijd", "CAT": "Centraal-Afrikaanse tijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "WESZ": "West-Europese zomertijd", "AEDT": "Oost-Australische zomertijd", "HKT": "Hongkongse standaardtijd", "HEEG": "Oost-Groenlandse zomertijd", "VET": "Venezolaanse tijd", "EST": "Eastern-standaardtijd", "AST": "Atlantic-standaardtijd", "GYT": "Guyaanse tijd", "ACWST": "Midden-Australische westelijke standaardtijd", "WAT": "West-Afrikaanse standaardtijd", "COT": "Colombiaanse standaardtijd", "AKDT": "Alaska-zomertijd", "WIB": "West-Indonesische tijd", "CHAST": "Chatham-standaardtijd", "CHADT": "Chatham-zomertijd", "JDT": "Japanse zomertijd", "CLT": "Chileense standaardtijd", "ChST": "Chamorro-tijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "HECU": "Cubaanse zomertijd", "EDT": "Eastern-zomertijd", "MYT": "Maleisische tijd", "UYST": "Uruguayaanse zomertijd", "WIT": "Oost-Indonesische tijd", "GFT": "Frans-Guyaanse tijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "HNCU": "Cubaanse standaardtijd", "HNT": "Newfoundland-standaardtijd", "NZST": "Nieuw-Zeelandse standaardtijd", "SGT": "Singaporese standaardtijd", "HAST": "Hawaii-Aleoetische standaardtijd", "HADT": "Hawaii-Aleoetische zomertijd", "ARST": "Argentijnse zomertijd", "AEST": "Oost-Australische standaardtijd", "WART": "West-Argentijnse standaardtijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "CDT": "Central-zomertijd", "SRT": "Surinaamse tijd", "HAT": "Newfoundland-zomertijd", "HKST": "Hongkongse zomertijd", "ACDT": "Midden-Australische zomertijd", "ECT": "Ecuadoraanse tijd", "MDT": "Macause zomertijd", "HEOG": "West-Groenlandse zomertijd", "PDT": "Pacific-zomertijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "TMT": "Turkmeense standaardtijd", "OEZ": "Oost-Europese standaardtijd", "GMT": "Greenwich Mean Time", "AKST": "Alaska-standaardtijd", "AWDT": "West-Australische zomertijd", "LHDT": "Lord Howe-eilandse zomertijd", "NZDT": "Nieuw-Zeelandse zomertijd", "OESZ": "Oost-Europese zomertijd", "∅∅∅": "Azoren-zomertijd", "WITA": "Centraal-Indonesische tijd", "MESZ": "Midden-Europese zomertijd", "JST": "Japanse standaardtijd", "TMST": "Turkmeense zomertijd", "BOT": "Boliviaanse tijd", "HNOG": "West-Groenlandse standaardtijd", "BT": "Bhutaanse tijd", "ACWDT": "Midden-Australische westelijke zomertijd", "MEZ": "Midden-Europese standaardtijd", "HNEG": "Oost-Groenlandse standaardtijd", "EAT": "Oost-Afrikaanse tijd", "WAST": "West-Afrikaanse zomertijd", "MST": "Macause standaardtijd", "CST": "Central-standaardtijd", "ART": "Argentijnse standaardtijd", "PST": "Pacific-standaardtijd", "AWST": "West-Australische standaardtijd", "LHST": "Lord Howe-eilandse standaardtijd", "WARST": "West-Argentijnse zomertijd"},
+ timezones: map[string]string{"WIB": "West-Indonesische tijd", "CST": "Central-standaardtijd", "SGT": "Singaporese standaardtijd", "CAT": "Centraal-Afrikaanse tijd", "ACWDT": "Midden-Australische westelijke zomertijd", "ACDT": "Midden-Australische zomertijd", "SRT": "Surinaamse tijd", "ACST": "Midden-Australische standaardtijd", "AEDT": "Oost-Australische zomertijd", "WITA": "Centraal-Indonesische tijd", "AKDT": "Alaska-zomertijd", "CDT": "Central-zomertijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "HECU": "Cubaanse zomertijd", "WART": "West-Argentijnse standaardtijd", "HEOG": "West-Groenlandse zomertijd", "WEZ": "West-Europese standaardtijd", "MST": "Macause standaardtijd", "EDT": "Eastern-zomertijd", "SAST": "Zuid-Afrikaanse tijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "JDT": "Japanse zomertijd", "HKT": "Hongkongse standaardtijd", "JST": "Japanse standaardtijd", "BT": "Bhutaanse tijd", "HAT": "Newfoundland-zomertijd", "UYST": "Uruguayaanse zomertijd", "NZDT": "Nieuw-Zeelandse zomertijd", "HNOG": "West-Groenlandse standaardtijd", "AST": "Atlantic-standaardtijd", "OEZ": "Oost-Europese standaardtijd", "LHST": "Lord Howe-eilandse standaardtijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "AWST": "West-Australische standaardtijd", "CLST": "Chileense zomertijd", "WESZ": "West-Europese zomertijd", "ART": "Argentijnse standaardtijd", "COT": "Colombiaanse standaardtijd", "HNT": "Newfoundland-standaardtijd", "∅∅∅": "Azoren-zomertijd", "GFT": "Frans-Guyaanse tijd", "GMT": "Greenwich Mean Time", "HENOMX": "Noordwest-Mexicaanse zomertijd", "HAST": "Hawaii-Aleoetische standaardtijd", "CHAST": "Chatham-standaardtijd", "ACWST": "Midden-Australische westelijke standaardtijd", "MYT": "Maleisische tijd", "ARST": "Argentijnse zomertijd", "EST": "Eastern-standaardtijd", "AKST": "Alaska-standaardtijd", "GYT": "Guyaanse tijd", "BOT": "Boliviaanse tijd", "IST": "Indiase tijd", "MESZ": "Midden-Europese zomertijd", "WARST": "West-Argentijnse zomertijd", "WAT": "West-Afrikaanse standaardtijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "WIT": "Oost-Indonesische tijd", "NZST": "Nieuw-Zeelandse standaardtijd", "HNCU": "Cubaanse standaardtijd", "ECT": "Ecuadoraanse tijd", "HKST": "Hongkongse zomertijd", "COST": "Colombiaanse zomertijd", "HEEG": "Oost-Groenlandse zomertijd", "LHDT": "Lord Howe-eilandse zomertijd", "HADT": "Hawaii-Aleoetische zomertijd", "VET": "Venezolaanse tijd", "OESZ": "Oost-Europese zomertijd", "TMT": "Turkmeense standaardtijd", "AWDT": "West-Australische zomertijd", "PDT": "Pacific-zomertijd", "WAST": "West-Afrikaanse zomertijd", "PST": "Pacific-standaardtijd", "MEZ": "Midden-Europese standaardtijd", "CLT": "Chileense standaardtijd", "TMST": "Turkmeense zomertijd", "MDT": "Macause zomertijd", "HNEG": "Oost-Groenlandse standaardtijd", "AEST": "Oost-Australische standaardtijd", "UYT": "Uruguayaanse standaardtijd", "CHADT": "Chatham-zomertijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "ADT": "Atlantic-zomertijd", "ChST": "Chamorro-tijd", "EAT": "Oost-Afrikaanse tijd"},
}
}
diff --git a/nl_CW/nl_CW.go b/nl_CW/nl_CW.go
index e324f530..a9b99504 100644
--- a/nl_CW/nl_CW.go
+++ b/nl_CW/nl_CW.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v.Chr.", "n.Chr."},
erasNarrow: []string{"v.C.", "n.C."},
erasWide: []string{"voor Christus", "na Christus"},
- timezones: map[string]string{"MEZ": "Midden-Europese standaardtijd", "CLT": "Chileense standaardtijd", "CLST": "Chileense zomertijd", "ChST": "Chamorro-tijd", "EST": "Eastern-standaardtijd", "EDT": "Eastern-zomertijd", "HNOG": "West-Groenlandse standaardtijd", "ACDT": "Midden-Australische zomertijd", "COT": "Colombiaanse standaardtijd", "HEOG": "West-Groenlandse zomertijd", "ACST": "Midden-Australische standaardtijd", "AKDT": "Alaska-zomertijd", "WIB": "West-Indonesische tijd", "OEZ": "Oost-Europese standaardtijd", "SGT": "Singaporese standaardtijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "UYT": "Uruguayaanse standaardtijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "HADT": "Hawaii-Aleoetische zomertijd", "ARST": "Argentijnse zomertijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "HNCU": "Cubaanse standaardtijd", "UYST": "Uruguayaanse zomertijd", "OESZ": "Oost-Europese zomertijd", "WIT": "Oost-Indonesische tijd", "AEST": "Oost-Australische standaardtijd", "AWDT": "West-Australische zomertijd", "LHST": "Lord Howe-eilandse standaardtijd", "JST": "Japanse standaardtijd", "TMT": "Turkmeense standaardtijd", "WAST": "West-Afrikaanse zomertijd", "MST": "Macause standaardtijd", "MYT": "Maleisische tijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "IST": "Indiase tijd", "TMST": "Turkmeense zomertijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "WESZ": "West-Europese zomertijd", "WITA": "Centraal-Indonesische tijd", "HEEG": "Oost-Groenlandse zomertijd", "GFT": "Frans-Guyaanse tijd", "HNT": "Newfoundland-standaardtijd", "AWST": "West-Australische standaardtijd", "LHDT": "Lord Howe-eilandse zomertijd", "NZST": "Nieuw-Zeelandse standaardtijd", "SAST": "Zuid-Afrikaanse tijd", "CAT": "Centraal-Afrikaanse tijd", "HECU": "Cubaanse zomertijd", "SRT": "Surinaamse tijd", "BOT": "Boliviaanse tijd", "CDT": "Central-zomertijd", "PST": "Pacific-standaardtijd", "CHAST": "Chatham-standaardtijd", "CHADT": "Chatham-zomertijd", "∅∅∅": "Peruaanse zomertijd", "EAT": "Oost-Afrikaanse tijd", "MDT": "Macause zomertijd", "GYT": "Guyaanse tijd", "HAST": "Hawaii-Aleoetische standaardtijd", "ART": "Argentijnse standaardtijd", "HKT": "Hongkongse standaardtijd", "WART": "West-Argentijnse standaardtijd", "COST": "Colombiaanse zomertijd", "AST": "Atlantic-standaardtijd", "AEDT": "Oost-Australische zomertijd", "NZDT": "Nieuw-Zeelandse zomertijd", "JDT": "Japanse zomertijd", "AKST": "Alaska-standaardtijd", "ACWDT": "Midden-Australische westelijke zomertijd", "HAT": "Newfoundland-zomertijd", "PDT": "Pacific-zomertijd", "ACWST": "Midden-Australische westelijke standaardtijd", "MESZ": "Midden-Europese zomertijd", "HNEG": "Oost-Groenlandse standaardtijd", "GMT": "Greenwich Mean Time", "ADT": "Atlantic-zomertijd", "BT": "Bhutaanse tijd", "WEZ": "West-Europese standaardtijd", "WAT": "West-Afrikaanse standaardtijd", "WARST": "West-Argentijnse zomertijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "HKST": "Hongkongse zomertijd", "ECT": "Ecuadoraanse tijd", "CST": "Central-standaardtijd", "VET": "Venezolaanse tijd"},
+ timezones: map[string]string{"EST": "Eastern-standaardtijd", "SRT": "Surinaamse tijd", "MDT": "Macause zomertijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "ChST": "Chamorro-tijd", "JDT": "Japanse zomertijd", "OESZ": "Oost-Europese zomertijd", "HEOG": "West-Groenlandse zomertijd", "TMT": "Turkmeense standaardtijd", "SGT": "Singaporese standaardtijd", "GMT": "Greenwich Mean Time", "MYT": "Maleisische tijd", "ACDT": "Midden-Australische zomertijd", "WITA": "Centraal-Indonesische tijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "BOT": "Boliviaanse tijd", "ACWST": "Midden-Australische westelijke standaardtijd", "HNOG": "West-Groenlandse standaardtijd", "WAST": "West-Afrikaanse zomertijd", "AEST": "Oost-Australische standaardtijd", "HAST": "Hawaii-Aleoetische standaardtijd", "UYST": "Uruguayaanse zomertijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "EAT": "Oost-Afrikaanse tijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "CST": "Central-standaardtijd", "HADT": "Hawaii-Aleoetische zomertijd", "COST": "Colombiaanse zomertijd", "HEEG": "Oost-Groenlandse zomertijd", "GFT": "Frans-Guyaanse tijd", "UYT": "Uruguayaanse standaardtijd", "LHDT": "Lord Howe-eilandse zomertijd", "WIB": "West-Indonesische tijd", "PST": "Pacific-standaardtijd", "JST": "Japanse standaardtijd", "WARST": "West-Argentijnse zomertijd", "MST": "Macause standaardtijd", "AEDT": "Oost-Australische zomertijd", "MEZ": "Midden-Europese standaardtijd", "CDT": "Central-zomertijd", "OEZ": "Oost-Europese standaardtijd", "GYT": "Guyaanse tijd", "HNCU": "Cubaanse standaardtijd", "PDT": "Pacific-zomertijd", "ECT": "Ecuadoraanse tijd", "NZST": "Nieuw-Zeelandse standaardtijd", "AKST": "Alaska-standaardtijd", "WEZ": "West-Europese standaardtijd", "WART": "West-Argentijnse standaardtijd", "CLST": "Chileense zomertijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "HAT": "Newfoundland-zomertijd", "BT": "Bhutaanse tijd", "HECU": "Cubaanse zomertijd", "NZDT": "Nieuw-Zeelandse zomertijd", "ADT": "Atlantic-zomertijd", "EDT": "Eastern-zomertijd", "COT": "Colombiaanse standaardtijd", "CAT": "Centraal-Afrikaanse tijd", "VET": "Venezolaanse tijd", "AST": "Atlantic-standaardtijd", "WIT": "Oost-Indonesische tijd", "AWST": "West-Australische standaardtijd", "∅∅∅": "Acre-zomertijd", "CHADT": "Chatham-zomertijd", "TMST": "Turkmeense zomertijd", "HKT": "Hongkongse standaardtijd", "HKST": "Hongkongse zomertijd", "HNEG": "Oost-Groenlandse standaardtijd", "ACWDT": "Midden-Australische westelijke zomertijd", "SAST": "Zuid-Afrikaanse tijd", "AWDT": "West-Australische zomertijd", "CHAST": "Chatham-standaardtijd", "IST": "Indiase tijd", "MESZ": "Midden-Europese zomertijd", "WESZ": "West-Europese zomertijd", "ART": "Argentijnse standaardtijd", "WAT": "West-Afrikaanse standaardtijd", "HNT": "Newfoundland-standaardtijd", "AKDT": "Alaska-zomertijd", "LHST": "Lord Howe-eilandse standaardtijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "CLT": "Chileense standaardtijd", "ARST": "Argentijnse zomertijd", "ACST": "Midden-Australische standaardtijd"},
}
}
diff --git a/nl_NL/nl_NL.go b/nl_NL/nl_NL.go
index afd95463..6ad7bf89 100644
--- a/nl_NL/nl_NL.go
+++ b/nl_NL/nl_NL.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v.Chr.", "n.Chr."},
erasNarrow: []string{"v.C.", "n.C."},
erasWide: []string{"voor Christus", "na Christus"},
- timezones: map[string]string{"HAST": "Hawaii-Aleoetische standaardtijd", "ACWDT": "Midden-Australische westelijke zomertijd", "HNT": "Newfoundland-standaardtijd", "AWST": "West-Australische standaardtijd", "BOT": "Boliviaanse tijd", "TMST": "Turkmeense zomertijd", "ECT": "Ecuadoraanse tijd", "HECU": "Cubaanse zomertijd", "GFT": "Frans-Guyaanse tijd", "HNOG": "West-Groenlandse standaardtijd", "HKST": "Hongkongse zomertijd", "LHST": "Lord Howe-eilandse standaardtijd", "WITA": "Centraal-Indonesische tijd", "WAT": "West-Afrikaanse standaardtijd", "WARST": "West-Argentijnse zomertijd", "EDT": "Eastern-zomertijd", "AWDT": "West-Australische zomertijd", "VET": "Venezolaanse tijd", "CHAST": "Chatham-standaardtijd", "CLT": "Chileense standaardtijd", "WART": "West-Argentijnse standaardtijd", "MDT": "Macause zomertijd", "WIB": "West-Indonesische tijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "AKDT": "Alaska-zomertijd", "HADT": "Hawaii-Aleoetische zomertijd", "IST": "Indiase tijd", "HNEG": "Oost-Groenlandse standaardtijd", "ACST": "Midden-Australische standaardtijd", "WAST": "West-Afrikaanse zomertijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "JDT": "Japanse zomertijd", "HNCU": "Cubaanse standaardtijd", "ART": "Argentijnse standaardtijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "MEZ": "Midden-Europese standaardtijd", "AST": "Atlantic-standaardtijd", "BT": "Bhutaanse tijd", "PST": "Pacific-standaardtijd", "HAT": "Newfoundland-zomertijd", "CST": "Central-standaardtijd", "ARST": "Argentijnse zomertijd", "CHADT": "Chatham-zomertijd", "JST": "Japanse standaardtijd", "OESZ": "Oost-Europese zomertijd", "MST": "Macause standaardtijd", "UYT": "Uruguayaanse standaardtijd", "TMT": "Turkmeense standaardtijd", "ACDT": "Midden-Australische zomertijd", "AEST": "Oost-Australische standaardtijd", "LHDT": "Lord Howe-eilandse zomertijd", "CAT": "Centraal-Afrikaanse tijd", "EST": "Eastern-standaardtijd", "ACWST": "Midden-Australische westelijke standaardtijd", "HEOG": "West-Groenlandse zomertijd", "AKST": "Alaska-standaardtijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "MESZ": "Midden-Europese zomertijd", "CLST": "Chileense zomertijd", "ChST": "Chamorro-tijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "AEDT": "Oost-Australische zomertijd", "∅∅∅": "Amazone-zomertijd", "COT": "Colombiaanse standaardtijd", "SGT": "Singaporese standaardtijd", "GYT": "Guyaanse tijd", "ADT": "Atlantic-zomertijd", "PDT": "Pacific-zomertijd", "NZST": "Nieuw-Zeelandse standaardtijd", "NZDT": "Nieuw-Zeelandse zomertijd", "HEEG": "Oost-Groenlandse zomertijd", "MYT": "Maleisische tijd", "UYST": "Uruguayaanse zomertijd", "CDT": "Central-zomertijd", "WEZ": "West-Europese standaardtijd", "WESZ": "West-Europese zomertijd", "SAST": "Zuid-Afrikaanse tijd", "EAT": "Oost-Afrikaanse tijd", "OEZ": "Oost-Europese standaardtijd", "GMT": "Greenwich Mean Time", "WIT": "Oost-Indonesische tijd", "COST": "Colombiaanse zomertijd", "SRT": "Surinaamse tijd", "HKT": "Hongkongse standaardtijd"},
+ timezones: map[string]string{"MDT": "Macause zomertijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "ChST": "Chamorro-tijd", "AWDT": "West-Australische zomertijd", "CHADT": "Chatham-zomertijd", "HADT": "Hawaii-Aleoetische zomertijd", "JST": "Japanse standaardtijd", "WIT": "Oost-Indonesische tijd", "∅∅∅": "Amazone-zomertijd", "WARST": "West-Argentijnse zomertijd", "MST": "Macause standaardtijd", "EDT": "Eastern-zomertijd", "AKST": "Alaska-standaardtijd", "ACWDT": "Midden-Australische westelijke zomertijd", "ARST": "Argentijnse zomertijd", "WIB": "West-Indonesische tijd", "AWST": "West-Australische standaardtijd", "AST": "Atlantic-standaardtijd", "HNCU": "Cubaanse standaardtijd", "HAT": "Newfoundland-zomertijd", "SGT": "Singaporese standaardtijd", "CAT": "Centraal-Afrikaanse tijd", "HKT": "Hongkongse standaardtijd", "HNEG": "Oost-Groenlandse standaardtijd", "AKDT": "Alaska-zomertijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "NZDT": "Nieuw-Zeelandse zomertijd", "EST": "Eastern-standaardtijd", "TMST": "Turkmeense zomertijd", "ART": "Argentijnse standaardtijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "CDT": "Central-zomertijd", "ECT": "Ecuadoraanse tijd", "WESZ": "West-Europese zomertijd", "HEEG": "Oost-Groenlandse zomertijd", "AEST": "Oost-Australische standaardtijd", "ACDT": "Midden-Australische zomertijd", "HNT": "Newfoundland-standaardtijd", "COT": "Colombiaanse standaardtijd", "BT": "Bhutaanse tijd", "WITA": "Centraal-Indonesische tijd", "SRT": "Surinaamse tijd", "GYT": "Guyaanse tijd", "HECU": "Cubaanse zomertijd", "PST": "Pacific-standaardtijd", "MEZ": "Midden-Europese standaardtijd", "MYT": "Maleisische tijd", "WAT": "West-Afrikaanse standaardtijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "LHST": "Lord Howe-eilandse standaardtijd", "LHDT": "Lord Howe-eilandse zomertijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "IST": "Indiase tijd", "MESZ": "Midden-Europese zomertijd", "WEZ": "West-Europese standaardtijd", "CLT": "Chileense standaardtijd", "HEOG": "West-Groenlandse zomertijd", "TMT": "Turkmeense standaardtijd", "WAST": "West-Afrikaanse zomertijd", "UYST": "Uruguayaanse zomertijd", "ACWST": "Midden-Australische westelijke standaardtijd", "NZST": "Nieuw-Zeelandse standaardtijd", "EAT": "Oost-Afrikaanse tijd", "CST": "Central-standaardtijd", "SAST": "Zuid-Afrikaanse tijd", "ACST": "Midden-Australische standaardtijd", "GFT": "Frans-Guyaanse tijd", "BOT": "Boliviaanse tijd", "CHAST": "Chatham-standaardtijd", "ADT": "Atlantic-zomertijd", "AEDT": "Oost-Australische zomertijd", "VET": "Venezolaanse tijd", "OEZ": "Oost-Europese standaardtijd", "UYT": "Uruguayaanse standaardtijd", "PDT": "Pacific-zomertijd", "HAST": "Hawaii-Aleoetische standaardtijd", "HNOG": "West-Groenlandse standaardtijd", "GMT": "Greenwich Mean Time", "WART": "West-Argentijnse standaardtijd", "CLST": "Chileense zomertijd", "HKST": "Hongkongse zomertijd", "COST": "Colombiaanse zomertijd", "JDT": "Japanse zomertijd", "OESZ": "Oost-Europese zomertijd"},
}
}
diff --git a/nl_SR/nl_SR.go b/nl_SR/nl_SR.go
index 3ca7382d..b2f6cddc 100644
--- a/nl_SR/nl_SR.go
+++ b/nl_SR/nl_SR.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v.Chr.", "n.Chr."},
erasNarrow: []string{"v.C.", "n.C."},
erasWide: []string{"voor Christus", "na Christus"},
- timezones: map[string]string{"NZST": "Nieuw-Zeelandse standaardtijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "WIT": "Oost-Indonesische tijd", "ACWST": "Midden-Australische westelijke standaardtijd", "UYST": "Uruguayaanse zomertijd", "WESZ": "West-Europese zomertijd", "MEZ": "Midden-Europese standaardtijd", "IST": "Indiase tijd", "CLST": "Chileense zomertijd", "GMT": "Greenwich Mean Time", "EDT": "Eastern-zomertijd", "GYT": "Guyaanse tijd", "TMST": "Turkmeense zomertijd", "ACWDT": "Midden-Australische westelijke zomertijd", "WEZ": "West-Europese standaardtijd", "HKT": "Hongkongse standaardtijd", "HNEG": "Oost-Groenlandse standaardtijd", "ACST": "Midden-Australische standaardtijd", "COST": "Colombiaanse zomertijd", "MYT": "Maleisische tijd", "UYT": "Uruguayaanse standaardtijd", "WAT": "West-Afrikaanse standaardtijd", "VET": "Venezolaanse tijd", "BT": "Bhutaanse tijd", "ARST": "Argentijnse zomertijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "GFT": "Frans-Guyaanse tijd", "TMT": "Turkmeense standaardtijd", "EAT": "Oost-Afrikaanse tijd", "WIB": "West-Indonesische tijd", "HAST": "Hawaii-Aleoetische standaardtijd", "AEDT": "Oost-Australische zomertijd", "HKST": "Hongkongse zomertijd", "ECT": "Ecuadoraanse tijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "PST": "Pacific-standaardtijd", "OESZ": "Oost-Europese zomertijd", "HADT": "Hawaii-Aleoetische zomertijd", "HEOG": "West-Groenlandse zomertijd", "AWST": "West-Australische standaardtijd", "CHADT": "Chatham-zomertijd", "LHST": "Lord Howe-eilandse standaardtijd", "∅∅∅": "Azoren-zomertijd", "AKDT": "Alaska-zomertijd", "AST": "Atlantic-standaardtijd", "CHAST": "Chatham-standaardtijd", "ChST": "Chamorro-tijd", "OEZ": "Oost-Europese standaardtijd", "SGT": "Singaporese standaardtijd", "AKST": "Alaska-standaardtijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "HNCU": "Cubaanse standaardtijd", "MST": "Macause standaardtijd", "HEEG": "Oost-Groenlandse zomertijd", "AWDT": "West-Australische zomertijd", "NZDT": "Nieuw-Zeelandse zomertijd", "MESZ": "Midden-Europese zomertijd", "LHDT": "Lord Howe-eilandse zomertijd", "JST": "Japanse standaardtijd", "MDT": "Macause zomertijd", "CDT": "Central-zomertijd", "SRT": "Surinaamse tijd", "JDT": "Japanse zomertijd", "ACDT": "Midden-Australische zomertijd", "CAT": "Centraal-Afrikaanse tijd", "WARST": "West-Argentijnse zomertijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "HNOG": "West-Groenlandse standaardtijd", "WAST": "West-Afrikaanse zomertijd", "HAT": "Newfoundland-zomertijd", "WITA": "Centraal-Indonesische tijd", "SAST": "Zuid-Afrikaanse tijd", "ADT": "Atlantic-zomertijd", "HNT": "Newfoundland-standaardtijd", "ART": "Argentijnse standaardtijd", "AEST": "Oost-Australische standaardtijd", "CLT": "Chileense standaardtijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "EST": "Eastern-standaardtijd", "CST": "Central-standaardtijd", "BOT": "Boliviaanse tijd", "PDT": "Pacific-zomertijd", "WART": "West-Argentijnse standaardtijd", "COT": "Colombiaanse standaardtijd", "HECU": "Cubaanse zomertijd"},
+ timezones: map[string]string{"JDT": "Japanse zomertijd", "HKST": "Hongkongse zomertijd", "GYT": "Guyaanse tijd", "HNCU": "Cubaanse standaardtijd", "HECU": "Cubaanse zomertijd", "OEZ": "Oost-Europese standaardtijd", "HNOG": "West-Groenlandse standaardtijd", "WIB": "West-Indonesische tijd", "HAST": "Hawaii-Aleoetische standaardtijd", "WESZ": "West-Europese zomertijd", "MYT": "Maleisische tijd", "ART": "Argentijnse standaardtijd", "COT": "Colombiaanse standaardtijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "AWDT": "West-Australische zomertijd", "ACST": "Midden-Australische standaardtijd", "LHST": "Lord Howe-eilandse standaardtijd", "LHDT": "Lord Howe-eilandse zomertijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "∅∅∅": "Azoren-zomertijd", "ADT": "Atlantic-zomertijd", "AKDT": "Alaska-zomertijd", "GFT": "Frans-Guyaanse tijd", "SAST": "Zuid-Afrikaanse tijd", "CHAST": "Chatham-standaardtijd", "PDT": "Pacific-zomertijd", "HADT": "Hawaii-Aleoetische zomertijd", "WARST": "West-Argentijnse zomertijd", "WAST": "West-Afrikaanse zomertijd", "AEDT": "Oost-Australische zomertijd", "UYT": "Uruguayaanse standaardtijd", "CHADT": "Chatham-zomertijd", "CAT": "Centraal-Afrikaanse tijd", "ACWDT": "Midden-Australische westelijke zomertijd", "WEZ": "West-Europese standaardtijd", "HEEG": "Oost-Groenlandse zomertijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "SRT": "Surinaamse tijd", "BOT": "Boliviaanse tijd", "PST": "Pacific-standaardtijd", "GMT": "Greenwich Mean Time", "HEOG": "West-Groenlandse zomertijd", "BT": "Bhutaanse tijd", "EAT": "Oost-Afrikaanse tijd", "SGT": "Singaporese standaardtijd", "ACWST": "Midden-Australische westelijke standaardtijd", "AKST": "Alaska-standaardtijd", "CST": "Central-standaardtijd", "CLT": "Chileense standaardtijd", "MST": "Macause standaardtijd", "MDT": "Macause zomertijd", "EDT": "Eastern-zomertijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "CDT": "Central-zomertijd", "WIT": "Oost-Indonesische tijd", "WART": "West-Argentijnse standaardtijd", "COST": "Colombiaanse zomertijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "ACDT": "Midden-Australische zomertijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "HNT": "Newfoundland-standaardtijd", "AWST": "West-Australische standaardtijd", "ECT": "Ecuadoraanse tijd", "IST": "Indiase tijd", "NZST": "Nieuw-Zeelandse standaardtijd", "AST": "Atlantic-standaardtijd", "OESZ": "Oost-Europese zomertijd", "TMST": "Turkmeense zomertijd", "HNEG": "Oost-Groenlandse standaardtijd", "NZDT": "Nieuw-Zeelandse zomertijd", "MESZ": "Midden-Europese zomertijd", "WAT": "West-Afrikaanse standaardtijd", "UYST": "Uruguayaanse zomertijd", "VET": "Venezolaanse tijd", "JST": "Japanse standaardtijd", "ARST": "Argentijnse zomertijd", "HAT": "Newfoundland-zomertijd", "AEST": "Oost-Australische standaardtijd", "MEZ": "Midden-Europese standaardtijd", "CLST": "Chileense zomertijd", "TMT": "Turkmeense standaardtijd", "EST": "Eastern-standaardtijd", "HKT": "Hongkongse standaardtijd", "WITA": "Centraal-Indonesische tijd", "ChST": "Chamorro-tijd"},
}
}
diff --git a/nl_SX/nl_SX.go b/nl_SX/nl_SX.go
index 0b06797f..463bb50f 100644
--- a/nl_SX/nl_SX.go
+++ b/nl_SX/nl_SX.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v.Chr.", "n.Chr."},
erasNarrow: []string{"v.C.", "n.C."},
erasWide: []string{"voor Christus", "na Christus"},
- timezones: map[string]string{"MYT": "Maleisische tijd", "UYT": "Uruguayaanse standaardtijd", "AEDT": "Oost-Australische zomertijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "HNCU": "Cubaanse standaardtijd", "CDT": "Central-zomertijd", "UYST": "Uruguayaanse zomertijd", "NZST": "Nieuw-Zeelandse standaardtijd", "TMST": "Turkmeense zomertijd", "EAT": "Oost-Afrikaanse tijd", "MDT": "Macause zomertijd", "ACWDT": "Midden-Australische westelijke zomertijd", "HAT": "Newfoundland-zomertijd", "HNOG": "West-Groenlandse standaardtijd", "AEST": "Oost-Australische standaardtijd", "HNEG": "Oost-Groenlandse standaardtijd", "OEZ": "Oost-Europese standaardtijd", "TMT": "Turkmeense standaardtijd", "WAT": "West-Afrikaanse standaardtijd", "SGT": "Singaporese standaardtijd", "BT": "Bhutaanse tijd", "AWDT": "West-Australische zomertijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "JDT": "Japanse zomertijd", "BOT": "Boliviaanse tijd", "WARST": "West-Argentijnse zomertijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "HECU": "Cubaanse zomertijd", "SRT": "Surinaamse tijd", "PDT": "Pacific-zomertijd", "HEOG": "West-Groenlandse zomertijd", "WART": "West-Argentijnse standaardtijd", "WIB": "West-Indonesische tijd", "WEZ": "West-Europese standaardtijd", "LHST": "Lord Howe-eilandse standaardtijd", "LHDT": "Lord Howe-eilandse zomertijd", "JST": "Japanse standaardtijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "CST": "Central-standaardtijd", "HADT": "Hawaii-Aleoetische zomertijd", "WITA": "Centraal-Indonesische tijd", "CHADT": "Chatham-zomertijd", "VET": "Venezolaanse tijd", "WIT": "Oost-Indonesische tijd", "CHAST": "Chatham-standaardtijd", "ACDT": "Midden-Australische zomertijd", "∅∅∅": "Azoren-zomertijd", "EST": "Eastern-standaardtijd", "HKST": "Hongkongse zomertijd", "CAT": "Centraal-Afrikaanse tijd", "WAST": "West-Afrikaanse zomertijd", "COT": "Colombiaanse standaardtijd", "AKDT": "Alaska-zomertijd", "HKT": "Hongkongse standaardtijd", "ACST": "Midden-Australische standaardtijd", "ADT": "Atlantic-zomertijd", "WESZ": "West-Europese zomertijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "IST": "Indiase tijd", "OESZ": "Oost-Europese zomertijd", "ECT": "Ecuadoraanse tijd", "AKST": "Alaska-standaardtijd", "HNT": "Newfoundland-standaardtijd", "ART": "Argentijnse standaardtijd", "ARST": "Argentijnse zomertijd", "NZDT": "Nieuw-Zeelandse zomertijd", "SAST": "Zuid-Afrikaanse tijd", "ChST": "Chamorro-tijd", "HAST": "Hawaii-Aleoetische standaardtijd", "PST": "Pacific-standaardtijd", "ACWST": "Midden-Australische westelijke standaardtijd", "MESZ": "Midden-Europese zomertijd", "GFT": "Frans-Guyaanse tijd", "GMT": "Greenwich Mean Time", "EDT": "Eastern-zomertijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "GYT": "Guyaanse tijd", "AWST": "West-Australische standaardtijd", "CLT": "Chileense standaardtijd", "CLST": "Chileense zomertijd", "COST": "Colombiaanse zomertijd", "MST": "Macause standaardtijd", "AST": "Atlantic-standaardtijd", "MEZ": "Midden-Europese standaardtijd", "HEEG": "Oost-Groenlandse zomertijd"},
+ timezones: map[string]string{"AWST": "West-Australische standaardtijd", "ADT": "Atlantic-zomertijd", "MST": "Macause standaardtijd", "UYT": "Uruguayaanse standaardtijd", "∅∅∅": "Braziliaanse zomertijd", "IST": "Indiase tijd", "ACWST": "Midden-Australische westelijke standaardtijd", "HNOG": "West-Groenlandse standaardtijd", "ARST": "Argentijnse zomertijd", "COT": "Colombiaanse standaardtijd", "HECU": "Cubaanse zomertijd", "EST": "Eastern-standaardtijd", "EDT": "Eastern-zomertijd", "HNEG": "Oost-Groenlandse standaardtijd", "AEST": "Oost-Australische standaardtijd", "SRT": "Surinaamse tijd", "EAT": "Oost-Afrikaanse tijd", "WITA": "Centraal-Indonesische tijd", "ChST": "Chamorro-tijd", "HADT": "Hawaii-Aleoetische zomertijd", "MEZ": "Midden-Europese standaardtijd", "OESZ": "Oost-Europese zomertijd", "HKT": "Hongkongse standaardtijd", "ACST": "Midden-Australische standaardtijd", "ACDT": "Midden-Australische zomertijd", "UYST": "Uruguayaanse zomertijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "CHADT": "Chatham-zomertijd", "HAST": "Hawaii-Aleoetische standaardtijd", "WAT": "West-Afrikaanse standaardtijd", "COST": "Colombiaanse zomertijd", "HEEG": "Oost-Groenlandse zomertijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "SGT": "Singaporese standaardtijd", "WEZ": "West-Europese standaardtijd", "CAT": "Centraal-Afrikaanse tijd", "JDT": "Japanse zomertijd", "GFT": "Frans-Guyaanse tijd", "HNCU": "Cubaanse standaardtijd", "WESZ": "West-Europese zomertijd", "GMT": "Greenwich Mean Time", "LHST": "Lord Howe-eilandse standaardtijd", "LHDT": "Lord Howe-eilandse zomertijd", "CDT": "Central-zomertijd", "CHAST": "Chatham-standaardtijd", "PST": "Pacific-standaardtijd", "PDT": "Pacific-zomertijd", "WAST": "West-Afrikaanse zomertijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "VET": "Venezolaanse tijd", "HEOG": "West-Groenlandse zomertijd", "AST": "Atlantic-standaardtijd", "MDT": "Macause zomertijd", "HNT": "Newfoundland-standaardtijd", "GYT": "Guyaanse tijd", "CST": "Central-standaardtijd", "WIT": "Oost-Indonesische tijd", "NZDT": "Nieuw-Zeelandse zomertijd", "JST": "Japanse standaardtijd", "WARST": "West-Argentijnse zomertijd", "ART": "Argentijnse standaardtijd", "ECT": "Ecuadoraanse tijd", "NZST": "Nieuw-Zeelandse standaardtijd", "CLT": "Chileense standaardtijd", "CLST": "Chileense zomertijd", "OEZ": "Oost-Europese standaardtijd", "TMT": "Turkmeense standaardtijd", "HKST": "Hongkongse zomertijd", "BT": "Bhutaanse tijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "SAST": "Zuid-Afrikaanse tijd", "ACWDT": "Midden-Australische westelijke zomertijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "AKST": "Alaska-standaardtijd", "WIB": "West-Indonesische tijd", "HAT": "Newfoundland-zomertijd", "AEDT": "Oost-Australische zomertijd", "AWDT": "West-Australische zomertijd", "BOT": "Boliviaanse tijd", "MESZ": "Midden-Europese zomertijd", "MYT": "Maleisische tijd", "WART": "West-Argentijnse standaardtijd", "TMST": "Turkmeense zomertijd", "AKDT": "Alaska-zomertijd", "HNPMX": "Mexicaanse Pacific-standaardtijd"},
}
}
diff --git a/nmg/nmg.go b/nmg/nmg.go
index 6ad3bc8b..1f78ff4d 100644
--- a/nmg/nmg.go
+++ b/nmg/nmg.go
@@ -64,7 +64,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BL", "PB"},
erasNarrow: []string{"", ""},
erasWide: []string{"Bó Lahlɛ̄", "Pfiɛ Burī"},
- timezones: map[string]string{"MEZ": "MEZ", "NZDT": "NZDT", "AKDT": "AKDT", "AWST": "AWST", "CHADT": "CHADT", "EAT": "EAT", "HEPMX": "HEPMX", "CDT": "CDT", "MDT": "MDT", "AEST": "AEST", "AEDT": "AEDT", "NZST": "NZST", "CLT": "CLT", "OEZ": "OEZ", "GYT": "GYT", "SRT": "SRT", "WESZ": "WESZ", "LHDT": "LHDT", "WARST": "WARST", "WIB": "WIB", "ARST": "ARST", "HNOG": "HNOG", "HEOG": "HEOG", "HEEG": "HEEG", "CAT": "CAT", "WAST": "WAST", "AST": "AST", "ADT": "ADT", "IST": "IST", "HECU": "HECU", "ACWST": "ACWST", "ACST": "ACST", "WAT": "WAT", "HNCU": "HNCU", "UYT": "UYT", "WIT": "WIT", "WEZ": "WEZ", "WITA": "WITA", "HNPM": "HNPM", "JST": "JST", "GMT": "GMT", "UYST": "UYST", "VET": "VET", "HKST": "HKST", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "COST": "COST", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "MESZ": "MESZ", "LHST": "LHST", "PST": "PST", "HNT": "HNT", "HAT": "HAT", "COT": "COT", "AKST": "AKST", "HADT": "HADT", "JDT": "JDT", "ECT": "ECT", "ART": "ART", "HEPM": "HEPM", "SAST": "SAST", "CLST": "CLST", "ACDT": "ACDT", "EDT": "EDT", "WART": "WART", "MYT": "MYT", "HAST": "HAST", "BT": "BT", "AWDT": "AWDT", "ChST": "ChST", "GFT": "GFT", "TMST": "TMST", "HNNOMX": "HNNOMX", "SGT": "SGT", "EST": "EST", "MST": "MST", "ACWDT": "ACWDT", "CST": "CST", "PDT": "PDT", "HKT": "HKT", "CHAST": "CHAST", "BOT": "BOT", "HNEG": "HNEG", "TMT": "TMT"},
+ timezones: map[string]string{"AST": "AST", "HNPMX": "HNPMX", "SGT": "SGT", "CAT": "CAT", "CLT": "CLT", "SRT": "SRT", "HEOG": "HEOG", "OESZ": "OESZ", "AEST": "AEST", "AEDT": "AEDT", "AKDT": "AKDT", "HNCU": "HNCU", "WIT": "WIT", "MYT": "MYT", "IST": "IST", "MDT": "MDT", "HKST": "HKST", "COT": "COT", "OEZ": "OEZ", "MST": "MST", "HNPM": "HNPM", "CHADT": "CHADT", "ECT": "ECT", "MESZ": "MESZ", "JST": "JST", "CLST": "CLST", "WAST": "WAST", "HKT": "HKT", "HNNOMX": "HNNOMX", "HEEG": "HEEG", "EAT": "EAT", "CDT": "CDT", "CHAST": "CHAST", "TMST": "TMST", "HADT": "HADT", "NZDT": "NZDT", "ACWST": "ACWST", "HAST": "HAST", "LHDT": "LHDT", "ARST": "ARST", "HNOG": "HNOG", "COST": "COST", "∅∅∅": "∅∅∅", "WIB": "WIB", "PDT": "PDT", "GMT": "GMT", "BT": "BT", "HNT": "HNT", "HNEG": "HNEG", "BOT": "BOT", "JDT": "JDT", "WARST": "WARST", "ACDT": "ACDT", "GFT": "GFT", "HECU": "HECU", "AWST": "AWST", "NZST": "NZST", "TMT": "TMT", "ADT": "ADT", "WESZ": "WESZ", "EDT": "EDT", "AKST": "AKST", "WART": "WART", "HEPMX": "HEPMX", "MEZ": "MEZ", "SAST": "SAST", "ChST": "ChST", "CST": "CST", "WEZ": "WEZ", "EST": "EST", "UYT": "UYT", "ART": "ART", "ACST": "ACST", "HENOMX": "HENOMX", "HAT": "HAT", "WITA": "WITA", "UYST": "UYST", "HEPM": "HEPM", "LHST": "LHST", "WAT": "WAT", "AWDT": "AWDT", "PST": "PST", "ACWDT": "ACWDT", "VET": "VET", "GYT": "GYT"},
}
}
diff --git a/nmg_CM/nmg_CM.go b/nmg_CM/nmg_CM.go
index ecb7d995..ac5133e0 100644
--- a/nmg_CM/nmg_CM.go
+++ b/nmg_CM/nmg_CM.go
@@ -64,7 +64,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BL", "PB"},
erasNarrow: []string{"", ""},
erasWide: []string{"Bó Lahlɛ̄", "Pfiɛ Burī"},
- timezones: map[string]string{"JST": "JST", "TMST": "TMST", "COT": "COT", "EDT": "EDT", "HNPMX": "HNPMX", "MYT": "MYT", "BT": "BT", "GFT": "GFT", "IST": "IST", "HEOG": "HEOG", "CLST": "CLST", "HEEG": "HEEG", "MDT": "MDT", "HNT": "HNT", "WAST": "WAST", "ECT": "ECT", "GMT": "GMT", "HKST": "HKST", "HAT": "HAT", "ART": "ART", "NZDT": "NZDT", "CHAST": "CHAST", "SAST": "SAST", "SGT": "SGT", "CDT": "CDT", "ACWST": "ACWST", "UYT": "UYT", "HENOMX": "HENOMX", "ChST": "ChST", "∅∅∅": "∅∅∅", "TMT": "TMT", "ACST": "ACST", "WIT": "WIT", "OESZ": "OESZ", "HNCU": "HNCU", "ADT": "ADT", "ACWDT": "ACWDT", "WITA": "WITA", "ACDT": "ACDT", "UYST": "UYST", "WIB": "WIB", "AEDT": "AEDT", "PST": "PST", "MEZ": "MEZ", "HNEG": "HNEG", "WAT": "WAT", "HNNOMX": "HNNOMX", "EST": "EST", "HADT": "HADT", "AWST": "AWST", "HKT": "HKT", "WART": "WART", "CST": "CST", "WESZ": "WESZ", "MESZ": "MESZ", "CLT": "CLT", "BOT": "BOT", "WARST": "WARST", "MST": "MST", "AKST": "AKST", "AST": "AST", "ARST": "ARST", "GYT": "GYT", "HNPM": "HNPM", "EAT": "EAT", "COST": "COST", "SRT": "SRT", "VET": "VET", "AEST": "AEST", "HEPM": "HEPM", "NZST": "NZST", "JDT": "JDT", "AKDT": "AKDT", "HAST": "HAST", "AWDT": "AWDT", "LHST": "LHST", "LHDT": "LHDT", "CHADT": "CHADT", "CAT": "CAT", "OEZ": "OEZ", "HNOG": "HNOG", "WEZ": "WEZ", "HECU": "HECU", "HEPMX": "HEPMX", "PDT": "PDT"},
+ timezones: map[string]string{"OEZ": "OEZ", "OESZ": "OESZ", "HNPMX": "HNPMX", "PDT": "PDT", "WART": "WART", "WARST": "WARST", "ACST": "ACST", "CHADT": "CHADT", "CAT": "CAT", "ACWDT": "ACWDT", "PST": "PST", "ACWST": "ACWST", "VET": "VET", "HNOG": "HNOG", "TMT": "TMT", "HNPM": "HNPM", "HNCU": "HNCU", "ECT": "ECT", "MEZ": "MEZ", "COT": "COT", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "CST": "CST", "CHAST": "CHAST", "EAT": "EAT", "CDT": "CDT", "CLST": "CLST", "MYT": "MYT", "HENOMX": "HENOMX", "WITA": "WITA", "SGT": "SGT", "ADT": "ADT", "WEZ": "WEZ", "HNT": "HNT", "WIT": "WIT", "BOT": "BOT", "CLT": "CLT", "HEOG": "HEOG", "GMT": "GMT", "UYST": "UYST", "HECU": "HECU", "WIB": "WIB", "WAST": "WAST", "HKST": "HKST", "HEEG": "HEEG", "BT": "BT", "HAT": "HAT", "ChST": "ChST", "LHDT": "LHDT", "MDT": "MDT", "HKT": "HKT", "UYT": "UYT", "HAST": "HAST", "MESZ": "MESZ", "ARST": "ARST", "ACDT": "ACDT", "COST": "COST", "AEST": "AEST", "IST": "IST", "JST": "JST", "ART": "ART", "MST": "MST", "WAT": "WAT", "EDT": "EDT", "HNEG": "HNEG", "NZST": "NZST", "NZDT": "NZDT", "TMST": "TMST", "HEPM": "HEPM", "JDT": "JDT", "GFT": "GFT", "AKST": "AKST", "HEPMX": "HEPMX", "AWST": "AWST", "AST": "AST", "HADT": "HADT", "WESZ": "WESZ", "EST": "EST", "LHST": "LHST", "GYT": "GYT", "AWDT": "AWDT", "SAST": "SAST", "SRT": "SRT"},
}
}
diff --git a/nn/nn.go b/nn/nn.go
index 247e70ec..5dd9e3a6 100644
--- a/nn/nn.go
+++ b/nn/nn.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "e.Kr."},
erasNarrow: []string{"f.Kr.", "e.Kr."},
erasWide: []string{"f.Kr.", "e.Kr."},
- timezones: map[string]string{"ACDT": "sentralaustralsk sommartid", "CST": "CST", "WIB": "WIB", "HAST": "HAST", "BOT": "BOT", "ChST": "ChST", "HKST": "HKST", "AEST": "austaustralsk standardtid", "HEEG": "HEEG", "WAT": "vestafrikansk standardtid", "CAT": "sentralafrikansk tid", "SGT": "SGT", "AKDT": "AKDT", "UYT": "UYT", "COT": "COT", "MST": "MST", "WITA": "WITA", "LHDT": "LHDT", "HNT": "HNT", "HNEG": "HNEG", "HEPM": "HEPM", "JDT": "JDT", "GYT": "GYT", "WIT": "WIT", "ACWST": "vest-sentralaustralsk standardtid", "ACWDT": "vest-sentralaustralsk sommartid", "HAT": "HAT", "ACST": "sentralaustralsk standardtid", "HEPMX": "HEPMX", "AST": "AST", "BT": "BT", "NZST": "NZST", "MEZ": "sentraleuropeisk standardtid", "WART": "WART", "WEZ": "vesteuropeisk standardtid", "PDT": "PDT", "LHST": "LHST", "NZDT": "NZDT", "JST": "JST", "TMT": "TMT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "ARST": "ARST", "AWDT": "vestaustralsk sommartid", "AEDT": "austaustralsk sommartid", "COST": "COST", "WARST": "WARST", "EST": "EST", "SRT": "SRT", "WESZ": "vesteuropeisk sommartid", "CDT": "CDT", "ART": "ART", "HNPM": "HNPM", "TMST": "TMST", "EAT": "austafrikansk tid", "WAST": "vestafrikansk sommartid", "∅∅∅": "∅∅∅", "GMT": "greenwich middeltid", "HKT": "HKT", "MDT": "MDT", "SAST": "sørafrikansk tid", "CLST": "CLST", "GFT": "GFT", "OEZ": "austeuropeisk standardtid", "HEOG": "HEOG", "CHADT": "CHADT", "MESZ": "sentraleuropeisk sommartid", "UYST": "UYST", "VET": "VET", "CHAST": "CHAST", "ECT": "ECT", "HNCU": "HNCU", "AKST": "AKST", "ADT": "ADT", "MYT": "MYT", "IST": "IST", "CLT": "CLT", "PST": "PST", "AWST": "vestaustralsk standardtid", "OESZ": "austeuropeisk sommartid", "HECU": "HECU", "EDT": "EDT", "HADT": "HADT", "HNOG": "HNOG"},
+ timezones: map[string]string{"MDT": "MDT", "HEPM": "HEPM", "HEPMX": "HEPMX", "WIB": "WIB", "CHAST": "CHAST", "IST": "IST", "ACWST": "vest-sentralaustralsk standardtid", "AST": "AST", "ART": "ART", "AKST": "AKST", "HEOG": "HEOG", "COT": "COT", "HNPMX": "HNPMX", "MYT": "MYT", "WAT": "vestafrikansk standardtid", "WAST": "vestafrikansk sommartid", "HNT": "HNT", "HNCU": "HNCU", "HADT": "HADT", "ECT": "ECT", "ACWDT": "vest-sentralaustralsk sommartid", "NZDT": "NZDT", "HEEG": "HEEG", "LHDT": "LHDT", "HECU": "HECU", "CAT": "sentralafrikansk tid", "VET": "VET", "MST": "MST", "EST": "EST", "SAST": "sørafrikansk tid", "SRT": "SRT", "CHADT": "CHADT", "ACST": "sentralaustralsk standardtid", "HENOMX": "HENOMX", "AEST": "austaustralsk standardtid", "AEDT": "austaustralsk sommartid", "MESZ": "sentraleuropeisk sommartid", "OEZ": "austeuropeisk standardtid", "ARST": "ARST", "EDT": "EDT", "MEZ": "sentraleuropeisk standardtid", "WEZ": "vesteuropeisk standardtid", "CLST": "CLST", "HAT": "HAT", "WITA": "WITA", "ChST": "ChST", "EAT": "austafrikansk tid", "JST": "JST", "OESZ": "austeuropeisk sommartid", "COST": "COST", "HNNOMX": "HNNOMX", "BT": "BT", "UYT": "UYT", "AWDT": "vestaustralsk sommartid", "SGT": "SGT", "PDT": "PDT", "GMT": "greenwich middeltid", "JDT": "JDT", "HKST": "HKST", "GFT": "GFT", "HAST": "HAST", "WART": "WART", "CLT": "CLT", "UYST": "UYST", "HNPM": "HNPM", "LHST": "LHST", "BOT": "BOT", "NZST": "NZST", "HNOG": "HNOG", "ACDT": "sentralaustralsk sommartid", "HNEG": "HNEG", "AKDT": "AKDT", "CDT": "CDT", "WIT": "WIT", "AWST": "vestaustralsk standardtid", "ADT": "ADT", "WESZ": "vesteuropeisk sommartid", "TMT": "TMT", "TMST": "TMST", "HKT": "HKT", "PST": "PST", "∅∅∅": "∅∅∅", "WARST": "WARST", "GYT": "GYT", "CST": "CST"},
}
}
diff --git a/nn_NO/nn_NO.go b/nn_NO/nn_NO.go
index 825ec903..22a5cbb4 100644
--- a/nn_NO/nn_NO.go
+++ b/nn_NO/nn_NO.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "e.Kr."},
erasNarrow: []string{"f.Kr.", "e.Kr."},
erasWide: []string{"f.Kr.", "e.Kr."},
- timezones: map[string]string{"EDT": "EDT", "MST": "MST", "HEOG": "HEOG", "IST": "IST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "OESZ": "austeuropeisk sommartid", "CDT": "CDT", "HAST": "HAST", "ART": "ART", "HEPM": "HEPM", "LHDT": "LHDT", "HNNOMX": "HNNOMX", "WIB": "WIB", "BT": "BT", "HAT": "HAT", "HKT": "HKT", "MEZ": "sentraleuropeisk standardtid", "ACDT": "sentralaustralsk sommartid", "AWST": "vestaustralsk standardtid", "CHADT": "CHADT", "MESZ": "sentraleuropeisk sommartid", "WART": "WART", "COT": "COT", "HADT": "HADT", "VET": "VET", "PDT": "PDT", "GMT": "greenwich middeltid", "ACWDT": "vest-sentralaustralsk sommartid", "COST": "COST", "AKST": "AKST", "MYT": "MYT", "UYST": "UYST", "PST": "PST", "JDT": "JDT", "CLST": "CLST", "WAT": "vestafrikansk standardtid", "WARST": "WARST", "HNCU": "HNCU", "AKDT": "AKDT", "AEST": "austaustralsk standardtid", "TMT": "TMT", "TMST": "TMST", "UYT": "UYT", "WITA": "WITA", "LHST": "LHST", "WAST": "vestafrikansk sommartid", "HEEG": "HEEG", "OEZ": "austeuropeisk standardtid", "AST": "AST", "ARST": "ARST", "HKST": "HKST", "SAST": "sørafrikansk tid", "CHAST": "CHAST", "HEPMX": "HEPMX", "WIT": "WIT", "WEZ": "vesteuropeisk standardtid", "NZST": "NZST", "ACST": "sentralaustralsk standardtid", "HENOMX": "HENOMX", "EST": "EST", "SRT": "SRT", "CLT": "CLT", "GFT": "GFT", "NZDT": "NZDT", "JST": "JST", "CAT": "sentralafrikansk tid", "GYT": "GYT", "MDT": "MDT", "AEDT": "austaustralsk sommartid", "AWDT": "vestaustralsk sommartid", "ACWST": "vest-sentralaustralsk standardtid", "HNPM": "HNPM", "HNPMX": "HNPMX", "SGT": "SGT", "CST": "CST", "ECT": "ECT", "EAT": "austafrikansk tid", "HECU": "HECU", "ChST": "ChST", "BOT": "BOT", "ADT": "ADT", "HNT": "HNT", "HNOG": "HNOG", "WESZ": "vesteuropeisk sommartid"},
+ timezones: map[string]string{"CLT": "CLT", "COST": "COST", "AEST": "austaustralsk standardtid", "WITA": "WITA", "SRT": "SRT", "CDT": "CDT", "PDT": "PDT", "HADT": "HADT", "CLST": "CLST", "WESZ": "vesteuropeisk sommartid", "WAST": "vestafrikansk sommartid", "EDT": "EDT", "MST": "MST", "SAST": "sørafrikansk tid", "SGT": "SGT", "HAST": "HAST", "JDT": "JDT", "GYT": "GYT", "CHADT": "CHADT", "ECT": "ECT", "MYT": "MYT", "AST": "AST", "WIT": "WIT", "CAT": "sentralafrikansk tid", "WARST": "WARST", "HEOG": "HEOG", "HKST": "HKST", "ACST": "sentralaustralsk standardtid", "COT": "COT", "AKDT": "AKDT", "HECU": "HECU", "HNOG": "HNOG", "HAT": "HAT", "AEDT": "austaustralsk sommartid", "UYT": "UYT", "HEPM": "HEPM", "EAT": "austafrikansk tid", "HENOMX": "HENOMX", "CST": "CST", "EST": "EST", "MDT": "MDT", "AWST": "vestaustralsk standardtid", "PST": "PST", "HEEG": "HEEG", "ChST": "ChST", "BOT": "BOT", "ADT": "ADT", "ACDT": "sentralaustralsk sommartid", "AWDT": "vestaustralsk sommartid", "CHAST": "CHAST", "JST": "JST", "WAT": "vestafrikansk standardtid", "∅∅∅": "∅∅∅", "BT": "BT", "UYST": "UYST", "NZST": "NZST", "OESZ": "austeuropeisk sommartid", "GFT": "GFT", "AKST": "AKST", "HNPM": "HNPM", "LHST": "LHST", "LHDT": "LHDT", "HEPMX": "HEPMX", "MESZ": "sentraleuropeisk sommartid", "WEZ": "vesteuropeisk standardtid", "ART": "ART", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "WIB": "WIB", "ACWDT": "vest-sentralaustralsk sommartid", "WART": "WART", "TMT": "TMT", "ARST": "ARST", "NZDT": "NZDT", "ACWST": "vest-sentralaustralsk standardtid", "HNT": "HNT", "GMT": "greenwich middeltid", "OEZ": "austeuropeisk standardtid", "TMST": "TMST", "HKT": "HKT", "HNEG": "HNEG", "HNCU": "HNCU", "IST": "IST", "MEZ": "sentraleuropeisk standardtid", "VET": "VET"},
}
}
diff --git a/nnh/nnh.go b/nnh/nnh.go
index 3b62fed3..eeca5912 100644
--- a/nnh/nnh.go
+++ b/nnh/nnh.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"m.z.Y.", "m.g.n.Y."},
erasNarrow: []string{"", ""},
erasWide: []string{"mé zyé Yěsô", "mé gÿo ńzyé Yěsô"},
- timezones: map[string]string{"WIB": "WIB", "HADT": "HADT", "HKST": "HKST", "OEZ": "OEZ", "HENOMX": "HENOMX", "MST": "MST", "UYST": "UYST", "GYT": "GYT", "SRT": "SRT", "ACWST": "ACWST", "PST": "PST", "TMST": "TMST", "COST": "COST", "HNCU": "HNCU", "SGT": "SGT", "AEST": "AEST", "CST": "CST", "BT": "BT", "CDT": "CDT", "UYT": "UYT", "HNPM": "HNPM", "HEEG": "HEEG", "ChST": "ChST", "CAT": "CAT", "JST": "JST", "ACWDT": "ACWDT", "LHDT": "LHDT", "HECU": "HECU", "EDT": "EDT", "HAT": "HAT", "HAST": "HAST", "VET": "VET", "HNT": "HNT", "HNOG": "HNOG", "CHAST": "CHAST", "IST": "IST", "CLT": "CLT", "WIT": "WIT", "HKT": "HKT", "CLST": "CLST", "EAT": "EAT", "AEDT": "AEDT", "NZDT": "NZDT", "LHST": "LHST", "SAST": "SAST", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "AWST": "AWST", "JDT": "JDT", "TMT": "TMT", "ACST": "ACST", "ART": "ART", "BOT": "BOT", "GMT": "GMT", "HEOG": "HEOG", "WEZ": "WEZ", "WAT": "WAT", "COT": "COT", "EST": "EST", "MDT": "MDT", "ADT": "ADT", "CHADT": "CHADT", "MEZ": "MEZ", "HNEG": "HNEG", "GFT": "GFT", "AKST": "AKST", "MYT": "MYT", "WITA": "WITA", "ACDT": "ACDT", "ECT": "ECT", "WARST": "WARST", "HNPMX": "HNPMX", "PDT": "PDT", "AWDT": "AWDT", "WAST": "WAST", "HEPMX": "HEPMX", "AKDT": "AKDT", "ARST": "ARST", "HEPM": "HEPM", "NZST": "NZST", "OESZ": "OESZ", "AST": "AST", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "WART": "WART"},
+ timezones: map[string]string{"HNT": "HNT", "AEDT": "AEDT", "HNPMX": "HNPMX", "AWDT": "AWDT", "WITA": "WITA", "LHDT": "LHDT", "HAST": "HAST", "NZDT": "NZDT", "CAT": "CAT", "COST": "COST", "HAT": "HAT", "HNPM": "HNPM", "HNCU": "HNCU", "AWST": "AWST", "HKT": "HKT", "MYT": "MYT", "WAT": "WAT", "HEEG": "HEEG", "ChST": "ChST", "NZST": "NZST", "ACWST": "ACWST", "MESZ": "MESZ", "BT": "BT", "GFT": "GFT", "WIB": "WIB", "WIT": "WIT", "HNNOMX": "HNNOMX", "MST": "MST", "HEPMX": "HEPMX", "GYT": "GYT", "OEZ": "OEZ", "HEPM": "HEPM", "BOT": "BOT", "IST": "IST", "WART": "WART", "HEOG": "HEOG", "CHAST": "CHAST", "CHADT": "CHADT", "VET": "VET", "CST": "CST", "CDT": "CDT", "PST": "PST", "MEZ": "MEZ", "ACDT": "ACDT", "WAST": "WAST", "ACST": "ACST", "HENOMX": "HENOMX", "HADT": "HADT", "ACWDT": "ACWDT", "OESZ": "OESZ", "ART": "ART", "ARST": "ARST", "AKST": "AKST", "EAT": "EAT", "SGT": "SGT", "COT": "COT", "JDT": "JDT", "GMT": "GMT", "WEZ": "WEZ", "EST": "EST", "ADT": "ADT", "TMT": "TMT", "AEST": "AEST", "SRT": "SRT", "LHST": "LHST", "CLST": "CLST", "AST": "AST", "UYST": "UYST", "JST": "JST", "ECT": "ECT", "PDT": "PDT", "WARST": "WARST", "HNEG": "HNEG", "AKDT": "AKDT", "UYT": "UYT", "SAST": "SAST", "HECU": "HECU", "TMST": "TMST", "EDT": "EDT", "HKST": "HKST", "∅∅∅": "∅∅∅", "MDT": "MDT", "CLT": "CLT", "HNOG": "HNOG", "WESZ": "WESZ"},
}
}
diff --git a/nnh_CM/nnh_CM.go b/nnh_CM/nnh_CM.go
index 59e73c36..6574fa86 100644
--- a/nnh_CM/nnh_CM.go
+++ b/nnh_CM/nnh_CM.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"m.z.Y.", "m.g.n.Y."},
erasNarrow: []string{"", ""},
erasWide: []string{"mé zyé Yěsô", "mé gÿo ńzyé Yěsô"},
- timezones: map[string]string{"HAT": "HAT", "CHADT": "CHADT", "IST": "IST", "HKST": "HKST", "HNEG": "HNEG", "EAT": "EAT", "SGT": "SGT", "HNPMX": "HNPMX", "UYT": "UYT", "SRT": "SRT", "SAST": "SAST", "HNNOMX": "HNNOMX", "HEOG": "HEOG", "HKT": "HKT", "WITA": "WITA", "EST": "EST", "AKDT": "AKDT", "WIB": "WIB", "WEZ": "WEZ", "ACWDT": "ACWDT", "CLST": "CLST", "BOT": "BOT", "ACDT": "ACDT", "WARST": "WARST", "HECU": "HECU", "PDT": "PDT", "ACST": "ACST", "OESZ": "OESZ", "COT": "COT", "WART": "WART", "AST": "AST", "HADT": "HADT", "WESZ": "WESZ", "HNT": "HNT", "TMT": "TMT", "MST": "MST", "HEPM": "HEPM", "GFT": "GFT", "TMST": "TMST", "JDT": "JDT", "HEEG": "HEEG", "WAT": "WAT", "EDT": "EDT", "HAST": "HAST", "HNOG": "HNOG", "PST": "PST", "LHDT": "LHDT", "COST": "COST", "HNCU": "HNCU", "CDT": "CDT", "ADT": "ADT", "MESZ": "MESZ", "ECT": "ECT", "ACWST": "ACWST", "AEST": "AEST", "MYT": "MYT", "AWST": "AWST", "HENOMX": "HENOMX", "ChST": "ChST", "MDT": "MDT", "CST": "CST", "BT": "BT", "NZDT": "NZDT", "JST": "JST", "AKST": "AKST", "WIT": "WIT", "NZST": "NZST", "CLT": "CLT", "CAT": "CAT", "UYST": "UYST", "AWDT": "AWDT", "HNPM": "HNPM", "MEZ": "MEZ", "WAST": "WAST", "ART": "ART", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "GMT": "GMT", "LHST": "LHST", "CHAST": "CHAST", "HEPMX": "HEPMX", "GYT": "GYT", "VET": "VET", "ARST": "ARST", "AEDT": "AEDT"},
+ timezones: map[string]string{"HKT": "HKT", "ACDT": "ACDT", "JDT": "JDT", "WESZ": "WESZ", "ART": "ART", "EST": "EST", "MYT": "MYT", "CDT": "CDT", "CHAST": "CHAST", "CHADT": "CHADT", "HAST": "HAST", "MEZ": "MEZ", "CLT": "CLT", "BT": "BT", "AKST": "AKST", "AEDT": "AEDT", "HEPM": "HEPM", "BOT": "BOT", "COT": "COT", "ChST": "ChST", "LHDT": "LHDT", "OESZ": "OESZ", "HKST": "HKST", "ACST": "ACST", "MESZ": "MESZ", "WARST": "WARST", "ARST": "ARST", "CLST": "CLST", "HEOG": "HEOG", "COST": "COST", "MDT": "MDT", "SAST": "SAST", "WIT": "WIT", "WART": "WART", "HECU": "HECU", "IST": "IST", "WAST": "WAST", "HENOMX": "HENOMX", "HAT": "HAT", "WITA": "WITA", "HEPMX": "HEPMX", "GYT": "GYT", "ADT": "ADT", "OEZ": "OEZ", "GMT": "GMT", "HNEG": "HNEG", "∅∅∅": "∅∅∅", "PST": "PST", "ACWST": "ACWST", "JST": "JST", "WAT": "WAT", "EDT": "EDT", "TMST": "TMST", "UYT": "UYT", "UYST": "UYST", "LHST": "LHST", "AWST": "AWST", "TMT": "TMT", "AEST": "AEST", "SRT": "SRT", "CST": "CST", "NZDT": "NZDT", "WEZ": "WEZ", "HNOG": "HNOG", "HNT": "HNT", "HEEG": "HEEG", "ECT": "ECT", "HADT": "HADT", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "SGT": "SGT", "AST": "AST", "GFT": "GFT", "MST": "MST", "EAT": "EAT", "HNCU": "HNCU", "WIB": "WIB", "PDT": "PDT", "VET": "VET", "NZST": "NZST", "AKDT": "AKDT", "HNPMX": "HNPMX", "AWDT": "AWDT", "CAT": "CAT", "ACWDT": "ACWDT"},
}
}
diff --git a/nus/nus.go b/nus/nus.go
index 33a72afa..eebb0f2b 100644
--- a/nus/nus.go
+++ b/nus/nus.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"AY", "ƐY"},
erasNarrow: []string{"", ""},
erasWide: []string{"A ka̱n Yecu ni dap", "Ɛ ca Yecu dap"},
- timezones: map[string]string{"WIT": "WIT", "HNT": "HNT", "TMT": "TMT", "ECT": "ECT", "HNNOMX": "HNNOMX", "GMT": "GMT", "PDT": "PDT", "LHST": "LHST", "JST": "JST", "ACST": "ACST", "HENOMX": "HENOMX", "MDT": "MDT", "HNPMX": "HNPMX", "UYT": "UYT", "CDT": "CDT", "HAST": "HAST", "SRT": "SRT", "PST": "PST", "WEZ": "WEZ", "SGT": "SGT", "HNCU": "HNCU", "HEPMX": "HEPMX", "UYST": "UYST", "CST": "CST", "HAT": "HAT", "AEDT": "AEDT", "MST": "MST", "ART": "ART", "HEPM": "HEPM", "CHAST": "CHAST", "OEZ": "OEZ", "LHDT": "LHDT", "TMST": "TMST", "COST": "COST", "AST": "AST", "HADT": "HADT", "ACWST": "ACWST", "AWDT": "AWDT", "HKST": "HKST", "HECU": "HECU", "HEEG": "HEEG", "WART": "WART", "CAT": "CAT", "GYT": "GYT", "MYT": "MYT", "AKST": "AKST", "ARST": "ARST", "SAST": "SAST", "WAT": "WAT", "OESZ": "OESZ", "AKDT": "AKDT", "HEOG": "HEOG", "WITA": "WITA", "MEZ": "MEZ", "CHADT": "CHADT", "EST": "EST", "NZDT": "NZDT", "IST": "IST", "JDT": "JDT", "NZST": "NZST", "WARST": "WARST", "VET": "VET", "HNEG": "HNEG", "HNOG": "HNOG", "AWST": "AWST", "MESZ": "MESZ", "BOT": "BOT", "ACDT": "ACDT", "EAT": "EAT", "WIB": "WIB", "AEST": "AEST", "HKT": "HKT", "CLT": "CLT", "GFT": "GFT", "EDT": "EDT", "ADT": "ADT", "WESZ": "WESZ", "HNPM": "HNPM", "COT": "COT", "WAST": "WAST", "∅∅∅": "∅∅∅", "BT": "BT", "ACWDT": "ACWDT", "CLST": "CLST", "ChST": "ChST"},
+ timezones: map[string]string{"HNPMX": "HNPMX", "HEOG": "HEOG", "EST": "EST", "SRT": "SRT", "HECU": "HECU", "ACWST": "ACWST", "NZST": "NZST", "MDT": "MDT", "ARST": "ARST", "COST": "COST", "MEZ": "MEZ", "HKST": "HKST", "WITA": "WITA", "AEDT": "AEDT", "SGT": "SGT", "ECT": "ECT", "JST": "JST", "AEST": "AEST", "COT": "COT", "GYT": "GYT", "CDT": "CDT", "NZDT": "NZDT", "MYT": "MYT", "WART": "WART", "WESZ": "WESZ", "EDT": "EDT", "WIB": "WIB", "HAST": "HAST", "WEZ": "WEZ", "TMT": "TMT", "SAST": "SAST", "PST": "PST", "PDT": "PDT", "HEEG": "HEEG", "ChST": "ChST", "WARST": "WARST", "TMST": "TMST", "HNEG": "HNEG", "AKST": "AKST", "HNPM": "HNPM", "ART": "ART", "ACST": "ACST", "HEPM": "HEPM", "UYST": "UYST", "HEPMX": "HEPMX", "AWDT": "AWDT", "AST": "AST", "GMT": "GMT", "MST": "MST", "WAT": "WAT", "HAT": "HAT", "AWST": "AWST", "MESZ": "MESZ", "ADT": "ADT", "BOT": "BOT", "ACWDT": "ACWDT", "HNNOMX": "HNNOMX", "HNT": "HNT", "GFT": "GFT", "OESZ": "OESZ", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "CST": "CST", "CHAST": "CHAST", "CHADT": "CHADT", "HADT": "HADT", "HNOG": "HNOG", "HKT": "HKT", "AKDT": "AKDT", "UYT": "UYT", "LHDT": "LHDT", "EAT": "EAT", "WIT": "WIT", "CAT": "CAT", "HENOMX": "HENOMX", "LHST": "LHST", "CLT": "CLT", "CLST": "CLST", "ACDT": "ACDT", "BT": "BT", "IST": "IST", "VET": "VET", "JDT": "JDT", "OEZ": "OEZ", "WAST": "WAST"},
}
}
diff --git a/nus_SS/nus_SS.go b/nus_SS/nus_SS.go
index 56fb90b9..921d6e2f 100644
--- a/nus_SS/nus_SS.go
+++ b/nus_SS/nus_SS.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"AY", "ƐY"},
erasNarrow: []string{"", ""},
erasWide: []string{"A ka̱n Yecu ni dap", "Ɛ ca Yecu dap"},
- timezones: map[string]string{"AEDT": "AEDT", "WAST": "WAST", "MYT": "MYT", "HAST": "HAST", "WITA": "WITA", "OEZ": "OEZ", "ART": "ART", "IST": "IST", "PDT": "PDT", "HKT": "HKT", "JST": "JST", "JDT": "JDT", "ECT": "ECT", "∅∅∅": "∅∅∅", "GYT": "GYT", "AKDT": "AKDT", "TMST": "TMST", "HAT": "HAT", "PST": "PST", "HNPM": "HNPM", "WAT": "WAT", "WART": "WART", "HENOMX": "HENOMX", "VET": "VET", "ACWST": "ACWST", "CLT": "CLT", "CAT": "CAT", "HNPMX": "HNPMX", "CDT": "CDT", "WESZ": "WESZ", "TMT": "TMT", "SGT": "SGT", "MST": "MST", "UYT": "UYT", "CHADT": "CHADT", "SAST": "SAST", "HEEG": "HEEG", "EAT": "EAT", "WARST": "WARST", "COST": "COST", "SRT": "SRT", "UYST": "UYST", "WIT": "WIT", "ARST": "ARST", "HNOG": "HNOG", "HNCU": "HNCU", "HECU": "HECU", "HEPMX": "HEPMX", "ADT": "ADT", "ACWDT": "ACWDT", "CHAST": "CHAST", "LHDT": "LHDT", "WIB": "WIB", "NZST": "NZST", "GMT": "GMT", "BT": "BT", "HNT": "HNT", "AWDT": "AWDT", "AKST": "AKST", "MEZ": "MEZ", "ChST": "ChST", "HKST": "HKST", "MESZ": "MESZ", "CLST": "CLST", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "EST": "EST", "WEZ": "WEZ", "ACDT": "ACDT", "CST": "CST", "BOT": "BOT", "COT": "COT", "HEOG": "HEOG", "HEPM": "HEPM", "HNEG": "HNEG", "LHST": "LHST", "ACST": "ACST", "MDT": "MDT", "AST": "AST", "AEST": "AEST", "GFT": "GFT", "EDT": "EDT", "HADT": "HADT", "AWST": "AWST", "NZDT": "NZDT"},
+ timezones: map[string]string{"NZDT": "NZDT", "JST": "JST", "CLST": "CLST", "ACWST": "ACWST", "NZST": "NZST", "WIB": "WIB", "VET": "VET", "CLT": "CLT", "ACST": "ACST", "HNCU": "HNCU", "PST": "PST", "PDT": "PDT", "HADT": "HADT", "LHST": "LHST", "GYT": "GYT", "WIT": "WIT", "AWST": "AWST", "SGT": "SGT", "OESZ": "OESZ", "WAST": "WAST", "COST": "COST", "HEEG": "HEEG", "OEZ": "OEZ", "AWDT": "AWDT", "HECU": "HECU", "CHAST": "CHAST", "CAT": "CAT", "TMT": "TMT", "MST": "MST", "ARST": "ARST", "HNPMX": "HNPMX", "MYT": "MYT", "ART": "ART", "BT": "BT", "HAST": "HAST", "SRT": "SRT", "HEOG": "HEOG", "AKST": "AKST", "AEST": "AEST", "UYT": "UYT", "EST": "EST", "HKST": "HKST", "JDT": "JDT", "HNOG": "HNOG", "WART": "WART", "WAT": "WAT", "HAT": "HAT", "HEPMX": "HEPMX", "ADT": "ADT", "WESZ": "WESZ", "WARST": "WARST", "MDT": "MDT", "ECT": "ECT", "IST": "IST", "ACWDT": "ACWDT", "HKT": "HKT", "EAT": "EAT", "CST": "CST", "CDT": "CDT", "HNT": "HNT", "GFT": "GFT", "WITA": "WITA", "UYST": "UYST", "∅∅∅": "∅∅∅", "MESZ": "MESZ", "WEZ": "WEZ", "GMT": "GMT", "TMST": "TMST", "HNEG": "HNEG", "AKDT": "AKDT", "AEDT": "AEDT", "ChST": "ChST", "MEZ": "MEZ", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HNPM": "HNPM", "HEPM": "HEPM", "BOT": "BOT", "AST": "AST", "EDT": "EDT", "COT": "COT", "CHADT": "CHADT", "SAST": "SAST", "LHDT": "LHDT"},
}
}
diff --git a/nyn/nyn.go b/nyn/nyn.go
index 43be2876..7976dee6 100644
--- a/nyn/nyn.go
+++ b/nyn/nyn.go
@@ -57,7 +57,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kurisito Atakaijire", "Kurisito Yaijire"},
- timezones: map[string]string{"CHAST": "CHAST", "UYST": "UYST", "HADT": "HADT", "HKT": "HKT", "HNCU": "HNCU", "HECU": "HECU", "AST": "AST", "MESZ": "MESZ", "JST": "JST", "MYT": "MYT", "AKST": "AKST", "AKDT": "AKDT", "HNOG": "HNOG", "WEZ": "WEZ", "AWDT": "AWDT", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "MDT": "MDT", "PST": "PST", "HNT": "HNT", "AEST": "AEST", "LHST": "LHST", "OESZ": "OESZ", "WIB": "WIB", "WIT": "WIT", "ACWST": "ACWST", "IST": "IST", "TMT": "TMT", "CAT": "CAT", "CST": "CST", "AEDT": "AEDT", "ChST": "ChST", "ACDT": "ACDT", "COT": "COT", "ADT": "ADT", "GYT": "GYT", "HKST": "HKST", "NZST": "NZST", "CHADT": "CHADT", "JDT": "JDT", "EST": "EST", "BT": "BT", "ACST": "ACST", "OEZ": "OEZ", "WARST": "WARST", "GMT": "GMT", "ACWDT": "ACWDT", "SAST": "SAST", "CLT": "CLT", "TMST": "TMST", "VET": "VET", "AWST": "AWST", "HEEG": "HEEG", "COST": "COST", "SGT": "SGT", "HEOG": "HEOG", "HAT": "HAT", "HEPM": "HEPM", "GFT": "GFT", "PDT": "PDT", "WESZ": "WESZ", "WITA": "WITA", "HNPM": "HNPM", "MEZ": "MEZ", "∅∅∅": "∅∅∅", "ECT": "ECT", "WART": "WART", "HEPMX": "HEPMX", "HAST": "HAST", "LHDT": "LHDT", "BOT": "BOT", "WAT": "WAT", "WAST": "WAST", "UYT": "UYT", "CDT": "CDT", "MST": "MST", "HNPMX": "HNPMX", "SRT": "SRT", "ART": "ART", "ARST": "ARST", "CLST": "CLST", "HNEG": "HNEG", "EAT": "EAT", "EDT": "EDT"},
+ timezones: map[string]string{"HECU": "HECU", "WART": "WART", "CLT": "CLT", "ChST": "ChST", "BT": "BT", "HEEG": "HEEG", "∅∅∅": "∅∅∅", "HNOG": "HNOG", "MST": "MST", "HNPMX": "HNPMX", "SRT": "SRT", "CHAST": "CHAST", "ACWST": "ACWST", "CLST": "CLST", "HEPM": "HEPM", "SGT": "SGT", "NZST": "NZST", "NZDT": "NZDT", "AST": "AST", "WESZ": "WESZ", "TMT": "TMT", "AKST": "AKST", "WAT": "WAT", "WAST": "WAST", "AEDT": "AEDT", "SAST": "SAST", "IST": "IST", "OESZ": "OESZ", "MYT": "MYT", "ARST": "ARST", "WITA": "WITA", "BOT": "BOT", "PDT": "PDT", "MESZ": "MESZ", "WEZ": "WEZ", "ART": "ART", "HKT": "HKT", "CST": "CST", "AWST": "AWST", "JDT": "JDT", "EST": "EST", "HAT": "HAT", "UYT": "UYT", "LHDT": "LHDT", "HEPMX": "HEPMX", "HNCU": "HNCU", "WIB": "WIB", "ACWDT": "ACWDT", "HENOMX": "HENOMX", "OEZ": "OEZ", "HNPM": "HNPM", "LHST": "LHST", "GYT": "GYT", "GMT": "GMT", "AKDT": "AKDT", "AEST": "AEST", "CHADT": "CHADT", "VET": "VET", "EDT": "EDT", "EAT": "EAT", "CDT": "CDT", "WARST": "WARST", "HKST": "HKST", "HNNOMX": "HNNOMX", "HNT": "HNT", "HEOG": "HEOG", "COT": "COT", "GFT": "GFT", "JST": "JST", "ADT": "ADT", "ACST": "ACST", "HNEG": "HNEG", "WIT": "WIT", "HADT": "HADT", "TMST": "TMST", "COST": "COST", "UYST": "UYST", "AWDT": "AWDT", "HAST": "HAST", "ECT": "ECT", "MEZ": "MEZ", "ACDT": "ACDT", "PST": "PST", "CAT": "CAT", "MDT": "MDT"},
}
}
diff --git a/nyn_UG/nyn_UG.go b/nyn_UG/nyn_UG.go
index d900ddc6..4b2f9ca5 100644
--- a/nyn_UG/nyn_UG.go
+++ b/nyn_UG/nyn_UG.go
@@ -57,7 +57,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kurisito Atakaijire", "Kurisito Yaijire"},
- timezones: map[string]string{"EAT": "EAT", "CST": "CST", "ACWDT": "ACWDT", "HKT": "HKT", "CHADT": "CHADT", "JST": "JST", "TMT": "TMT", "OESZ": "OESZ", "HNCU": "HNCU", "UYT": "UYT", "SRT": "SRT", "AEDT": "AEDT", "ECT": "ECT", "WART": "WART", "HKST": "HKST", "CLT": "CLT", "MYT": "MYT", "AEST": "AEST", "HNPM": "HNPM", "BOT": "BOT", "ACDT": "ACDT", "WITA": "WITA", "MEZ": "MEZ", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "COT": "COT", "COST": "COST", "AKDT": "AKDT", "AWST": "AWST", "AST": "AST", "ADT": "ADT", "HNOG": "HNOG", "NZDT": "NZDT", "MST": "MST", "HNPMX": "HNPMX", "UYST": "UYST", "HADT": "HADT", "WIT": "WIT", "HNT": "HNT", "IST": "IST", "ARST": "ARST", "NZST": "NZST", "JDT": "JDT", "OEZ": "OEZ", "EDT": "EDT", "HEPMX": "HEPMX", "CDT": "CDT", "WESZ": "WESZ", "WAT": "WAT", "AKST": "AKST", "BT": "BT", "AWDT": "AWDT", "HNEG": "HNEG", "SAST": "SAST", "CLST": "CLST", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "EST": "EST", "VET": "VET", "HAT": "HAT", "GFT": "GFT", "GMT": "GMT", "WIB": "WIB", "WEZ": "WEZ", "LHDT": "LHDT", "WARST": "WARST", "HAST": "HAST", "HEOG": "HEOG", "PST": "PST", "PDT": "PDT", "WAST": "WAST", "SGT": "SGT", "MDT": "MDT", "ART": "ART", "CHAST": "CHAST", "CAT": "CAT", "HECU": "HECU", "GYT": "GYT", "HEPM": "HEPM", "ChST": "ChST", "ACWST": "ACWST", "LHST": "LHST", "TMST": "TMST", "ACST": "ACST"},
+ timezones: map[string]string{"HEEG": "HEEG", "HECU": "HECU", "ART": "ART", "HNNOMX": "HNNOMX", "ACST": "ACST", "HNT": "HNT", "GFT": "GFT", "WIB": "WIB", "CHAST": "CHAST", "IST": "IST", "WEZ": "WEZ", "GMT": "GMT", "ARST": "ARST", "EST": "EST", "HEPM": "HEPM", "HNCU": "HNCU", "∅∅∅": "∅∅∅", "ACWDT": "ACWDT", "MYT": "MYT", "WARST": "WARST", "WAST": "WAST", "CDT": "CDT", "HADT": "HADT", "ACDT": "ACDT", "HEPMX": "HEPMX", "BOT": "BOT", "MESZ": "MESZ", "ADT": "ADT", "TMST": "TMST", "GYT": "GYT", "HAST": "HAST", "NZDT": "NZDT", "ECT": "ECT", "ACWST": "ACWST", "CAT": "CAT", "PST": "PST", "PDT": "PDT", "TMT": "TMT", "MST": "MST", "COT": "COT", "COST": "COST", "AWST": "AWST", "MEZ": "MEZ", "ChST": "ChST", "JST": "JST", "JDT": "JDT", "SRT": "SRT", "SAST": "SAST", "NZST": "NZST", "AKST": "AKST", "OESZ": "OESZ", "CLT": "CLT", "HNEG": "HNEG", "HNPM": "HNPM", "SGT": "SGT", "CHADT": "CHADT", "HEOG": "HEOG", "WAT": "WAT", "HENOMX": "HENOMX", "WITA": "WITA", "UYST": "UYST", "LHDT": "LHDT", "WESZ": "WESZ", "WART": "WART", "HNPMX": "HNPMX", "EDT": "EDT", "HAT": "HAT", "EAT": "EAT", "VET": "VET", "MDT": "MDT", "HKST": "HKST", "AKDT": "AKDT", "UYT": "UYT", "LHST": "LHST", "OEZ": "OEZ", "CLST": "CLST", "AST": "AST", "HKT": "HKT", "AEDT": "AEDT", "WIT": "WIT", "AWDT": "AWDT", "BT": "BT", "AEST": "AEST", "CST": "CST", "HNOG": "HNOG"},
}
}
diff --git a/om/om.go b/om/om.go
index aac33706..d7e962fb 100644
--- a/om/om.go
+++ b/om/om.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "CE"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"WIT": "WIT", "PST": "PST", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "ECT": "ECT", "CHADT": "CHADT", "LHST": "LHST", "CDT": "CDT", "HEPMX": "HEPMX", "CST": "CST", "BT": "BT", "AEDT": "AEDT", "HNPM": "HNPM", "MESZ": "MESZ", "WAST": "WAST", "HENOMX": "HENOMX", "SGT": "SGT", "AST": "AST", "AEST": "AEST", "SAST": "SAST", "GFT": "GFT", "WAT": "WAT", "HNCU": "HNCU", "GYT": "GYT", "UYST": "UYST", "AKDT": "AKDT", "SRT": "SRT", "HNT": "HNT", "HEPM": "HEPM", "COST": "COST", "HNNOMX": "HNNOMX", "HECU": "HECU", "JDT": "JDT", "ChST": "ChST", "WEZ": "WEZ", "WESZ": "WESZ", "VET": "VET", "HKT": "HKT", "CLT": "CLT", "HEEG": "HEEG", "HNPMX": "HNPMX", "BOT": "BOT", "WIB": "WIB", "AWST": "AWST", "CLST": "CLST", "TMST": "TMST", "AKST": "AKST", "ACST": "ACST", "OEZ": "OEZ", "HNOG": "HNOG", "PDT": "PDT", "CHAST": "CHAST", "MEZ": "MEZ", "NZDT": "NZDT", "JST": "JST", "UYT": "UYT", "NZST": "NZST", "EAT": "EAT", "WARST": "WARST", "EDT": "EDT", "ART": "ART", "IST": "IST", "ACDT": "ACDT", "HAST": "HAST", "HAT": "HAT", "LHDT": "LHDT", "GMT": "GMT", "EST": "EST", "ADT": "ADT", "HADT": "HADT", "ACWST": "ACWST", "HKST": "HKST", "TMT": "TMT", "OESZ": "OESZ", "MDT": "MDT", "MST": "MST", "MYT": "MYT", "ARST": "ARST", "HEOG": "HEOG", "WITA": "WITA", "CAT": "CAT", "WART": "WART", "COT": "COT", "ACWDT": "ACWDT"},
+ timezones: map[string]string{"AEST": "AEST", "HNCU": "HNCU", "AWDT": "AWDT", "WESZ": "WESZ", "TMT": "TMT", "WAT": "WAT", "HKT": "HKT", "HNT": "HNT", "WIB": "WIB", "AWST": "AWST", "COST": "COST", "HENOMX": "HENOMX", "GFT": "GFT", "AKDT": "AKDT", "SRT": "SRT", "GYT": "GYT", "ADT": "ADT", "TMST": "TMST", "WIT": "WIT", "EDT": "EDT", "HKST": "HKST", "ACST": "ACST", "HEEG": "HEEG", "MDT": "MDT", "HEPM": "HEPM", "EAT": "EAT", "CHADT": "CHADT", "HAST": "HAST", "ACWDT": "ACWDT", "NZST": "NZST", "MEZ": "MEZ", "VET": "VET", "JST": "JST", "OEZ": "OEZ", "CAT": "CAT", "WARST": "WARST", "AST": "AST", "WAST": "WAST", "ChST": "ChST", "UYT": "UYT", "UYST": "UYST", "PDT": "PDT", "HEOG": "HEOG", "OESZ": "OESZ", "GMT": "GMT", "ACDT": "ACDT", "COT": "COT", "HAT": "HAT", "HNEG": "HNEG", "HEPMX": "HEPMX", "CST": "CST", "WART": "WART", "EST": "EST", "∅∅∅": "∅∅∅", "PST": "PST", "CLST": "CLST", "CHAST": "CHAST", "SGT": "SGT", "NZDT": "NZDT", "CLT": "CLT", "AKST": "AKST", "LHDT": "LHDT", "MESZ": "MESZ", "JDT": "JDT", "HNOG": "HNOG", "WEZ": "WEZ", "ARST": "ARST", "BT": "BT", "MST": "MST", "WITA": "WITA", "SAST": "SAST", "HECU": "HECU", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "IST": "IST", "MYT": "MYT", "ART": "ART", "HNPM": "HNPM", "CDT": "CDT", "ECT": "ECT", "AEDT": "AEDT", "LHST": "LHST", "BOT": "BOT", "HADT": "HADT", "ACWST": "ACWST"},
}
}
diff --git a/om_ET/om_ET.go b/om_ET/om_ET.go
index 0c1bcb43..c28bb730 100644
--- a/om_ET/om_ET.go
+++ b/om_ET/om_ET.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "CE"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"EST": "EST", "HEPMX": "HEPMX", "UYST": "UYST", "CST": "CST", "GYT": "GYT", "CAT": "CAT", "OESZ": "OESZ", "MDT": "MDT", "UYT": "UYT", "CHADT": "CHADT", "GFT": "GFT", "EAT": "EAT", "ECT": "ECT", "SGT": "SGT", "BOT": "BOT", "WAST": "WAST", "AKDT": "AKDT", "ACWDT": "ACWDT", "CLST": "CLST", "GMT": "GMT", "MYT": "MYT", "SAST": "SAST", "JST": "JST", "JDT": "JDT", "HNCU": "HNCU", "WITA": "WITA", "HNPM": "HNPM", "HEPM": "HEPM", "NZST": "NZST", "ACDT": "ACDT", "COST": "COST", "WARST": "WARST", "COT": "COT", "WIT": "WIT", "ACWST": "ACWST", "HNT": "HNT", "IST": "IST", "∅∅∅": "∅∅∅", "ACST": "ACST", "AKST": "AKST", "HEOG": "HEOG", "TMST": "TMST", "WART": "WART", "EDT": "EDT", "WIB": "WIB", "VET": "VET", "WESZ": "WESZ", "ARST": "ARST", "HNOG": "HNOG", "CLT": "CLT", "HNNOMX": "HNNOMX", "AWST": "AWST", "HEEG": "HEEG", "HADT": "HADT", "SRT": "SRT", "AEDT": "AEDT", "HKT": "HKT", "MST": "MST", "HNPMX": "HNPMX", "AST": "AST", "WEZ": "WEZ", "AEST": "AEST", "HKST": "HKST", "CHAST": "CHAST", "HNEG": "HNEG", "OEZ": "OEZ", "HAT": "HAT", "ChST": "ChST", "WAT": "WAT", "PDT": "PDT", "AWDT": "AWDT", "MESZ": "MESZ", "NZDT": "NZDT", "ADT": "ADT", "HAST": "HAST", "HECU": "HECU", "CDT": "CDT", "LHDT": "LHDT", "TMT": "TMT", "HENOMX": "HENOMX", "ART": "ART", "MEZ": "MEZ", "LHST": "LHST", "BT": "BT", "PST": "PST"},
+ timezones: map[string]string{"CLST": "CLST", "LHDT": "LHDT", "HEPMX": "HEPMX", "GYT": "GYT", "AWDT": "AWDT", "CLT": "CLT", "VET": "VET", "MEZ": "MEZ", "EDT": "EDT", "COT": "COT", "AKDT": "AKDT", "ChST": "ChST", "MESZ": "MESZ", "WART": "WART", "AST": "AST", "MDT": "MDT", "UYST": "UYST", "NZST": "NZST", "ARST": "ARST", "ACST": "ACST", "AEST": "AEST", "LHST": "LHST", "SGT": "SGT", "OESZ": "OESZ", "MYT": "MYT", "HAT": "HAT", "ART": "ART", "HNT": "HNT", "PDT": "PDT", "HAST": "HAST", "ECT": "ECT", "ACWST": "ACWST", "WEZ": "WEZ", "HNNOMX": "HNNOMX", "HNEG": "HNEG", "HNPMX": "HNPMX", "HECU": "HECU", "BOT": "BOT", "CHAST": "CHAST", "CHADT": "CHADT", "TMT": "TMT", "AKST": "AKST", "PST": "PST", "IST": "IST", "WAST": "WAST", "ACDT": "ACDT", "GFT": "GFT", "SAST": "SAST", "AWST": "AWST", "HKST": "HKST", "WIT": "WIT", "TMST": "TMST", "AEDT": "AEDT", "SRT": "SRT", "CST": "CST", "JST": "JST", "WARST": "WARST", "HNOG": "HNOG", "HEEG": "HEEG", "BT": "BT", "UYT": "UYT", "JDT": "JDT", "WESZ": "WESZ", "ADT": "ADT", "EST": "EST", "CDT": "CDT", "NZDT": "NZDT", "WAT": "WAT", "COST": "COST", "CAT": "CAT", "MST": "MST", "HKT": "HKT", "HEPM": "HEPM", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "WIB": "WIB", "ACWDT": "ACWDT", "HENOMX": "HENOMX", "WITA": "WITA", "HEOG": "HEOG", "HNPM": "HNPM", "EAT": "EAT", "HADT": "HADT", "OEZ": "OEZ", "GMT": "GMT"},
}
}
diff --git a/om_KE/om_KE.go b/om_KE/om_KE.go
index 8c6d3392..022d9857 100644
--- a/om_KE/om_KE.go
+++ b/om_KE/om_KE.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HNOG": "HNOG", "AWST": "AWST", "HENOMX": "HENOMX", "WIB": "WIB", "HEPMX": "HEPMX", "PST": "PST", "WEZ": "WEZ", "HEPM": "HEPM", "HNEG": "HNEG", "WART": "WART", "GMT": "GMT", "ART": "ART", "GFT": "GFT", "WARST": "WARST", "HAST": "HAST", "MESZ": "MESZ", "EAT": "EAT", "COT": "COT", "PDT": "PDT", "UYST": "UYST", "CST": "CST", "WESZ": "WESZ", "ACWDT": "ACWDT", "LHST": "LHST", "EST": "EST", "AST": "AST", "MEZ": "MEZ", "SAST": "SAST", "JST": "JST", "CLST": "CLST", "BOT": "BOT", "∅∅∅": "∅∅∅", "HEOG": "HEOG", "HKT": "HKT", "WITA": "WITA", "ACST": "ACST", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "MST": "MST", "WIT": "WIT", "ARST": "ARST", "NZST": "NZST", "HNCU": "HNCU", "ACDT": "ACDT", "WAT": "WAT", "AKDT": "AKDT", "VET": "VET", "HNT": "HNT", "AWDT": "AWDT", "WAST": "WAST", "MYT": "MYT", "GYT": "GYT", "AKST": "AKST", "BT": "BT", "HKST": "HKST", "CHADT": "CHADT", "IST": "IST", "JDT": "JDT", "HNPMX": "HNPMX", "COST": "COST", "ChST": "ChST", "CDT": "CDT", "HAT": "HAT", "HECU": "HECU", "HNPM": "HNPM", "LHDT": "LHDT", "CHAST": "CHAST", "TMT": "TMT", "HEEG": "HEEG", "ECT": "ECT", "OEZ": "OEZ", "ACWST": "ACWST", "EDT": "EDT", "ADT": "ADT", "UYT": "UYT", "HADT": "HADT", "SRT": "SRT", "SGT": "SGT", "AEST": "AEST", "NZDT": "NZDT", "CAT": "CAT", "MDT": "MDT", "CLT": "CLT", "TMST": "TMST", "AEDT": "AEDT"},
+ timezones: map[string]string{"HNCU": "HNCU", "AWST": "AWST", "PST": "PST", "EDT": "EDT", "HKT": "HKT", "AKDT": "AKDT", "ChST": "ChST", "UYST": "UYST", "SRT": "SRT", "HECU": "HECU", "WIB": "WIB", "TMT": "TMT", "GFT": "GFT", "HNPM": "HNPM", "LHDT": "LHDT", "TMST": "TMST", "MDT": "MDT", "ART": "ART", "WAT": "WAT", "AEST": "AEST", "UYT": "UYT", "WIT": "WIT", "HAST": "HAST", "IST": "IST", "MYT": "MYT", "OESZ": "OESZ", "GMT": "GMT", "HNT": "HNT", "ECT": "ECT", "WAST": "WAST", "EAT": "EAT", "CDT": "CDT", "NZDT": "NZDT", "HEOG": "HEOG", "OEZ": "OEZ", "HEPM": "HEPM", "BOT": "BOT", "NZST": "NZST", "MESZ": "MESZ", "WEZ": "WEZ", "ACST": "ACST", "ACDT": "ACDT", "COT": "COT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "CHAST": "CHAST", "HADT": "HADT", "BT": "BT", "PDT": "PDT", "JST": "JST", "MST": "MST", "SAST": "SAST", "∅∅∅": "∅∅∅", "AWDT": "AWDT", "MEZ": "MEZ", "WARST": "WARST", "CLST": "CLST", "HAT": "HAT", "ACWST": "ACWST", "VET": "VET", "WESZ": "WESZ", "EST": "EST", "HEEG": "HEEG", "AEDT": "AEDT", "CAT": "CAT", "WITA": "WITA", "AKST": "AKST", "HNPMX": "HNPMX", "CST": "CST", "CHADT": "CHADT", "ACWDT": "ACWDT", "CLT": "CLT", "HNOG": "HNOG", "HNEG": "HNEG", "SGT": "SGT", "HEPMX": "HEPMX", "JDT": "JDT", "AST": "AST", "LHST": "LHST", "WART": "WART", "ADT": "ADT", "ARST": "ARST", "HKST": "HKST", "COST": "COST", "GYT": "GYT"},
}
}
diff --git a/or/or.go b/or/or.go
index 2a93a6a9..7ca0e1b8 100644
--- a/or/or.go
+++ b/or/or.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
periodsAbbreviated: []string{"am", "pm"},
periodsNarrow: []string{"am", "pm"},
periodsWide: []string{"am", "pm"},
- timezones: map[string]string{"COT": "COT", "EDT": "EDT", "PST": "PST", "CHAST": "CHAST", "HEEG": "HEEG", "BOT": "BOT", "OEZ": "OEZ", "WART": "WART", "GYT": "GYT", "NZST": "NZST", "NZDT": "NZDT", "MST": "MST", "HNT": "HNT", "HAT": "HAT", "CLT": "CLT", "MESZ": "MESZ", "MDT": "MDT", "MYT": "MYT", "BT": "BT", "WESZ": "WESZ", "HEPM": "HEPM", "HNPM": "HNPM", "AST": "AST", "HNOG": "HNOG", "WITA": "WITA", "AEST": "AEST", "AWDT": "AWDT", "GMT": "GMT", "PDT": "PDT", "JST": "JST", "TMT": "TMT", "ChST": "ChST", "HKST": "HKST", "JDT": "JDT", "WAST": "WAST", "ECT": "ECT", "HEPMX": "HEPMX", "WIT": "WIT", "HADT": "HADT", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "HECU": "HECU", "ACWDT": "ACWDT", "COST": "COST", "IST": "IST", "ACST": "ACST", "WAT": "WAT", "ART": "ART", "ARST": "ARST", "HEOG": "HEOG", "CHADT": "CHADT", "LHDT": "LHDT", "CLST": "CLST", "AKST": "AKST", "AKDT": "AKDT", "HAST": "HAST", "HKT": "HKT", "LHST": "LHST", "CST": "CST", "OESZ": "OESZ", "CAT": "CAT", "HENOMX": "HENOMX", "WARST": "WARST", "HNPMX": "HNPMX", "TMST": "TMST", "CDT": "CDT", "ADT": "ADT", "UYST": "UYST", "WIB": "WIB", "SRT": "SRT", "EAT": "EAT", "EST": "EST", "ACWST": "ACWST", "WEZ": "WEZ", "AWST": "AWST", "SAST": "SAST", "GFT": "GFT", "MEZ": "MEZ", "HNEG": "HNEG", "ACDT": "ACDT", "∅∅∅": "∅∅∅", "SGT": "SGT", "UYT": "UYT", "VET": "VET", "AEDT": "AEDT"},
+ timezones: map[string]string{"ACDT": "ACDT", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "SAST": "SAST", "SGT": "SGT", "ACST": "ACST", "MDT": "MDT", "HEPM": "HEPM", "WESZ": "WESZ", "HNOG": "HNOG", "OESZ": "OESZ", "ART": "ART", "NZDT": "NZDT", "MESZ": "MESZ", "WEZ": "WEZ", "EAT": "EAT", "VET": "VET", "CLT": "CLT", "TMST": "TMST", "HEEG": "HEEG", "AKST": "AKST", "UYT": "UYT", "HNCU": "HNCU", "CAT": "CAT", "HEOG": "HEOG", "AST": "AST", "HNEG": "HNEG", "MST": "MST", "UYST": "UYST", "IST": "IST", "WAT": "WAT", "HENOMX": "HENOMX", "CHADT": "CHADT", "AWDT": "AWDT", "PST": "PST", "JDT": "JDT", "HNNOMX": "HNNOMX", "WITA": "WITA", "HECU": "HECU", "HAT": "HAT", "AEST": "AEST", "GFT": "GFT", "AKDT": "AKDT", "JST": "JST", "EDT": "EDT", "∅∅∅": "∅∅∅", "BT": "BT", "GMT": "GMT", "WART": "WART", "ADT": "ADT", "WIT": "WIT", "CHAST": "CHAST", "WARST": "WARST", "EST": "EST", "ChST": "ChST", "HEPMX": "HEPMX", "AWST": "AWST", "ACWST": "ACWST", "TMT": "TMT", "ARST": "ARST", "LHDT": "LHDT", "GYT": "GYT", "CST": "CST", "PDT": "PDT", "OEZ": "OEZ", "WAST": "WAST", "COT": "COT", "HNT": "HNT", "WIB": "WIB", "BOT": "BOT", "HADT": "HADT", "MYT": "MYT", "HKT": "HKT", "SRT": "SRT", "LHST": "LHST", "NZST": "NZST", "HKST": "HKST", "COST": "COST", "ECT": "ECT", "CDT": "CDT", "CLST": "CLST", "MEZ": "MEZ", "AEDT": "AEDT", "HNPM": "HNPM", "HAST": "HAST"},
}
}
diff --git a/or_IN/or_IN.go b/or_IN/or_IN.go
index de3cf529..5be6f8e5 100644
--- a/or_IN/or_IN.go
+++ b/or_IN/or_IN.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
periodsAbbreviated: []string{"am", "pm"},
periodsNarrow: []string{"am", "pm"},
periodsWide: []string{"am", "pm"},
- timezones: map[string]string{"EST": "EST", "CST": "CST", "MDT": "MDT", "BT": "BT", "MEZ": "MEZ", "CLT": "CLT", "HNPMX": "HNPMX", "ACST": "ACST", "HENOMX": "HENOMX", "HECU": "HECU", "MST": "MST", "SRT": "SRT", "HAT": "HAT", "CLST": "CLST", "UYT": "UYT", "HAST": "HAST", "HNOG": "HNOG", "HEEG": "HEEG", "ACDT": "ACDT", "WARST": "WARST", "ACWST": "ACWST", "AEST": "AEST", "NZST": "NZST", "SAST": "SAST", "EAT": "EAT", "ADT": "ADT", "VET": "VET", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "JST": "JST", "OEZ": "OEZ", "ChST": "ChST", "OESZ": "OESZ", "COST": "COST", "WESZ": "WESZ", "HKST": "HKST", "HEPM": "HEPM", "JDT": "JDT", "HNEG": "HNEG", "AKDT": "AKDT", "UYST": "UYST", "WIB": "WIB", "HNPM": "HNPM", "LHDT": "LHDT", "GFT": "GFT", "SGT": "SGT", "ART": "ART", "WAT": "WAT", "CAT": "CAT", "HEPMX": "HEPMX", "AKST": "AKST", "MYT": "MYT", "HKT": "HKT", "AWDT": "AWDT", "CHADT": "CHADT", "LHST": "LHST", "ECT": "ECT", "PST": "PST", "AEDT": "AEDT", "AWST": "AWST", "COT": "COT", "HNT": "HNT", "WART": "WART", "EDT": "EDT", "HADT": "HADT", "BOT": "BOT", "WAST": "WAST", "HNCU": "HNCU", "CDT": "CDT", "TMT": "TMT", "AST": "AST", "ACWDT": "ACWDT", "PDT": "PDT", "WEZ": "WEZ", "NZDT": "NZDT", "IST": "IST", "TMST": "TMST", "HNNOMX": "HNNOMX", "GMT": "GMT", "WIT": "WIT", "ARST": "ARST", "HEOG": "HEOG", "WITA": "WITA", "CHAST": "CHAST", "GYT": "GYT"},
+ timezones: map[string]string{"OESZ": "OESZ", "CLST": "CLST", "TMST": "TMST", "COST": "COST", "HEEG": "HEEG", "ACWDT": "ACWDT", "NZST": "NZST", "CAT": "CAT", "WEZ": "WEZ", "ADT": "ADT", "HNPM": "HNPM", "WIT": "WIT", "PST": "PST", "NZDT": "NZDT", "JST": "JST", "HAST": "HAST", "ARST": "ARST", "WAT": "WAT", "HENOMX": "HENOMX", "ACST": "ACST", "SRT": "SRT", "TMT": "TMT", "HKST": "HKST", "COT": "COT", "ECT": "ECT", "IST": "IST", "AST": "AST", "AKDT": "AKDT", "AWST": "AWST", "MESZ": "MESZ", "MYT": "MYT", "AEDT": "AEDT", "HNPMX": "HNPMX", "HEOG": "HEOG", "ACDT": "ACDT", "UYT": "UYT", "HEPMX": "HEPMX", "HADT": "HADT", "MEZ": "MEZ", "∅∅∅": "∅∅∅", "WITA": "WITA", "UYST": "UYST", "GYT": "GYT", "PDT": "PDT", "MDT": "MDT", "SGT": "SGT", "OEZ": "OEZ", "WESZ": "WESZ", "CLT": "CLT", "EDT": "EDT", "CDT": "CDT", "CHADT": "CHADT", "ACWST": "ACWST", "GMT": "GMT", "MST": "MST", "HNT": "HNT", "HAT": "HAT", "BT": "BT", "AWDT": "AWDT", "VET": "VET", "EST": "EST", "HKT": "HKT", "WAST": "WAST", "HNCU": "HNCU", "HECU": "HECU", "WIB": "WIB", "CST": "CST", "BOT": "BOT", "HNOG": "HNOG", "WARST": "WARST", "HNEG": "HNEG", "HEPM": "HEPM", "ChST": "ChST", "CHAST": "CHAST", "WART": "WART", "SAST": "SAST", "EAT": "EAT", "JDT": "JDT", "ART": "ART", "AEST": "AEST", "GFT": "GFT", "LHST": "LHST", "LHDT": "LHDT", "HNNOMX": "HNNOMX", "AKST": "AKST"},
}
}
diff --git a/os/os.go b/os/os.go
index 845b5455..2b2b8613 100644
--- a/os/os.go
+++ b/os/os.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"н.д.а.", "н.д."},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"EAT": "EAT", "WAST": "WAST", "HENOMX": "HENOMX", "MST": "MST", "ACWDT": "ACWDT", "CLST": "CLST", "HEEG": "HEEG", "HNPMX": "HNPMX", "PST": "PST", "HNOG": "HNOG", "AWDT": "AWDT", "MESZ": "Астӕуккаг Европӕйаг сӕрдыгон рӕстӕг", "CHADT": "CHADT", "CLT": "CLT", "JDT": "JDT", "WART": "WART", "EST": "EST", "EDT": "EDT", "AKDT": "AKDT", "ART": "ART", "WITA": "WITA", "COT": "COT", "NZST": "NZST", "WESZ": "Ныгъуылӕн Европӕйаг сӕрдыгон рӕстӕг", "LHDT": "LHDT", "CHAST": "CHAST", "AKST": "AKST", "CST": "CST", "UYT": "UYT", "JST": "JST", "BOT": "BOT", "OESZ": "Скӕсӕн Европӕйаг сӕрдыгон рӕстӕг", "GMT": "Гринвичы рӕстӕмбис рӕстӕг", "AST": "AST", "HAST": "HAST", "PDT": "PDT", "AEST": "AEST", "AEDT": "AEDT", "ACST": "ACST", "CAT": "CAT", "OEZ": "Скӕсӕн Европӕйаг стандартон рӕстӕг", "∅∅∅": "∅∅∅", "SRT": "SRT", "HKST": "HKST", "SAST": "SAST", "TMT": "TMT", "ECT": "ECT", "HEPMX": "HEPMX", "MYT": "MYT", "BT": "BT", "TMST": "TMST", "WARST": "WARST", "ADT": "ADT", "WIB": "WIB", "HNT": "HNT", "HAT": "HAT", "HEOG": "HEOG", "AWST": "AWST", "ChST": "ChST", "HNNOMX": "HNNOMX", "MDT": "MDT", "WEZ": "Ныгъуылӕн Европӕйаг стандартон рӕстӕг", "HNPM": "HNPM", "GFT": "GFT", "GYT": "GYT", "ACWST": "ACWST", "HKT": "HKT", "NZDT": "NZDT", "HNEG": "HNEG", "ACDT": "ACDT", "ARST": "ARST", "MEZ": "Астӕуккаг Европӕйаг стандартон рӕстӕг", "LHST": "LHST", "COST": "COST", "CDT": "CDT", "UYST": "UYST", "WIT": "WIT", "SGT": "SGT", "HECU": "HECU", "VET": "VET", "HEPM": "HEPM", "WAT": "WAT", "HNCU": "HNCU", "HADT": "HADT", "IST": "IST"},
+ timezones: map[string]string{"ACWST": "ACWST", "MESZ": "Астӕуккаг Европӕйаг сӕрдыгон рӕстӕг", "VET": "VET", "GYT": "GYT", "∅∅∅": "∅∅∅", "COST": "COST", "HNPM": "HNPM", "SGT": "SGT", "ECT": "ECT", "OEZ": "Скӕсӕн Европӕйаг стандартон рӕстӕг", "ACST": "ACST", "COT": "COT", "JST": "JST", "ACDT": "ACDT", "WIB": "WIB", "WIT": "WIT", "AWDT": "AWDT", "CHADT": "CHADT", "HECU": "HECU", "PST": "PST", "CAT": "CAT", "HNOG": "HNOG", "TMST": "TMST", "HNT": "HNT", "ChST": "ChST", "UYST": "UYST", "AST": "AST", "SRT": "SRT", "PDT": "PDT", "IST": "IST", "MST": "MST", "WAT": "WAT", "AEDT": "AEDT", "WITA": "WITA", "UYT": "UYT", "HNEG": "HNEG", "EAT": "EAT", "NZST": "NZST", "WEZ": "Ныгъуылӕн Европӕйаг стандартон рӕстӕг", "GMT": "Гринвичы рӕстӕмбис рӕстӕг", "WART": "WART", "CLST": "CLST", "HEOG": "HEOG", "LHDT": "LHDT", "HAST": "HAST", "OESZ": "Скӕсӕн Европӕйаг сӕрдыгон рӕстӕг", "MYT": "MYT", "ARST": "ARST", "WAST": "WAST", "HKT": "HKT", "HKST": "HKST", "HEPMX": "HEPMX", "MEZ": "Астӕуккаг Европӕйаг стандартон рӕстӕг", "WESZ": "Ныгъуылӕн Европӕйаг сӕрдыгон рӕстӕг", "WARST": "WARST", "AKDT": "AKDT", "AEST": "AEST", "LHST": "LHST", "JDT": "JDT", "AKST": "AKST", "GFT": "GFT", "SAST": "SAST", "CDT": "CDT", "BOT": "BOT", "ACWDT": "ACWDT", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "CST": "CST", "CHAST": "CHAST", "NZDT": "NZDT", "EST": "EST", "HENOMX": "HENOMX", "HNCU": "HNCU", "ADT": "ADT", "CLT": "CLT", "ART": "ART", "EDT": "EDT", "HEEG": "HEEG", "AWST": "AWST", "HNPMX": "HNPMX", "HADT": "HADT", "TMT": "TMT", "MDT": "MDT", "BT": "BT", "HAT": "HAT"},
}
}
diff --git a/os_GE/os_GE.go b/os_GE/os_GE.go
index 558372db..a449b072 100644
--- a/os_GE/os_GE.go
+++ b/os_GE/os_GE.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"н.д.а.", "н.д."},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HNOG": "HNOG", "WEZ": "Ныгъуылӕн Европӕйаг стандартон рӕстӕг", "TMT": "TMT", "OEZ": "Скӕсӕн Европӕйаг стандартон рӕстӕг", "WART": "WART", "HAST": "HAST", "BT": "BT", "ARST": "ARST", "NZST": "NZST", "ACST": "ACST", "ADT": "ADT", "GYT": "GYT", "MYT": "MYT", "UYST": "UYST", "WIB": "WIB", "SRT": "SRT", "JDT": "JDT", "GFT": "GFT", "ChST": "ChST", "WARST": "WARST", "COT": "COT", "EST": "EST", "JST": "JST", "HNEG": "HNEG", "OESZ": "Скӕсӕн Европӕйаг сӕрдыгон рӕстӕг", "AKST": "AKST", "PDT": "PDT", "MESZ": "Астӕуккаг Европӕйаг сӕрдыгон рӕстӕг", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "AST": "AST", "MEZ": "Астӕуккаг Европӕйаг стандартон рӕстӕг", "LHDT": "LHDT", "WAT": "WAT", "HKT": "HKT", "HKST": "HKST", "IST": "IST", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "HECU": "HECU", "EDT": "EDT", "CDT": "CDT", "PST": "PST", "WITA": "WITA", "HAT": "HAT", "ART": "ART", "SAST": "SAST", "CLST": "CLST", "HEEG": "HEEG", "COST": "COST", "VET": "VET", "WIT": "WIT", "HEPM": "HEPM", "UYT": "UYT", "AWDT": "AWDT", "CHADT": "CHADT", "LHST": "LHST", "WAST": "WAST", "SGT": "SGT", "HNPM": "HNPM", "ACWST": "ACWST", "AWST": "AWST", "TMST": "TMST", "BOT": "BOT", "CAT": "CAT", "HNNOMX": "HNNOMX", "MDT": "MDT", "AKDT": "AKDT", "ECT": "ECT", "EAT": "EAT", "MST": "MST", "HEOG": "HEOG", "ACWDT": "ACWDT", "CHAST": "CHAST", "HENOMX": "HENOMX", "GMT": "Гринвичы рӕстӕмбис рӕстӕг", "CST": "CST", "HNT": "HNT", "WESZ": "Ныгъуылӕн Европӕйаг сӕрдыгон рӕстӕг", "AEDT": "AEDT", "CLT": "CLT", "ACDT": "ACDT", "HADT": "HADT", "AEST": "AEST", "NZDT": "NZDT"},
+ timezones: map[string]string{"MDT": "MDT", "HNPMX": "HNPMX", "SRT": "SRT", "MESZ": "Астӕуккаг Европӕйаг сӕрдыгон рӕстӕг", "VET": "VET", "WITA": "WITA", "HNPM": "HNPM", "HEPM": "HEPM", "AWST": "AWST", "ACWDT": "ACWDT", "WARST": "WARST", "AEST": "AEST", "HNT": "HNT", "LHDT": "LHDT", "WESZ": "Ныгъуылӕн Европӕйаг сӕрдыгон рӕстӕг", "TMST": "TMST", "ACST": "ACST", "BT": "BT", "UYST": "UYST", "JST": "JST", "TMT": "TMT", "GFT": "GFT", "LHST": "LHST", "EAT": "EAT", "ADT": "ADT", "HKST": "HKST", "OEZ": "Скӕсӕн Европӕйаг стандартон рӕстӕг", "AWDT": "AWDT", "CHAST": "CHAST", "NZST": "NZST", "IST": "IST", "HEOG": "HEOG", "AST": "AST", "COST": "COST", "∅∅∅": "∅∅∅", "HECU": "HECU", "MYT": "MYT", "MST": "MST", "WAT": "WAT", "PDT": "PDT", "GYT": "GYT", "BOT": "BOT", "CAT": "CAT", "CLT": "CLT", "HEPMX": "HEPMX", "CST": "CST", "WIT": "WIT", "CHADT": "CHADT", "HADT": "HADT", "ECT": "ECT", "ChST": "ChST", "HNCU": "HNCU", "AEDT": "AEDT", "SGT": "SGT", "ACWST": "ACWST", "NZDT": "NZDT", "HKT": "HKT", "WAST": "WAST", "EDT": "EDT", "HAT": "HAT", "CDT": "CDT", "CLST": "CLST", "HNOG": "HNOG", "OESZ": "Скӕсӕн Европӕйаг сӕрдыгон рӕстӕг", "HENOMX": "HENOMX", "AKDT": "AKDT", "WIB": "WIB", "HAST": "HAST", "JDT": "JDT", "WART": "WART", "AKST": "AKST", "SAST": "SAST", "PST": "PST", "ARST": "ARST", "HEEG": "HEEG", "EST": "EST", "ACDT": "ACDT", "UYT": "UYT", "MEZ": "Астӕуккаг Европӕйаг стандартон рӕстӕг", "ART": "ART", "HNNOMX": "HNNOMX", "COT": "COT", "HNEG": "HNEG", "WEZ": "Ныгъуылӕн Европӕйаг стандартон рӕстӕг", "GMT": "Гринвичы рӕстӕмбис рӕстӕг"},
}
}
diff --git a/os_RU/os_RU.go b/os_RU/os_RU.go
index cb4a2a93..3f7c126a 100644
--- a/os_RU/os_RU.go
+++ b/os_RU/os_RU.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"н.д.а.", "н.д."},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"PST": "PST", "HNPM": "HNPM", "WARST": "WARST", "ACWDT": "ACWDT", "HAST": "HAST", "HEPMX": "HEPMX", "CDT": "CDT", "ECT": "ECT", "HADT": "HADT", "HAT": "HAT", "HEOG": "HEOG", "CHAST": "CHAST", "JST": "JST", "GFT": "GFT", "TMT": "TMT", "JDT": "JDT", "EDT": "EDT", "AST": "AST", "MYT": "MYT", "HKST": "HKST", "AEDT": "AEDT", "ACST": "ACST", "CAT": "CAT", "UYST": "UYST", "WITA": "WITA", "LHST": "LHST", "HNNOMX": "HNNOMX", "MST": "MST", "HNCU": "HNCU", "SRT": "SRT", "WESZ": "Ныгъуылӕн Европӕйаг сӕрдыгон рӕстӕг", "MEZ": "Астӕуккаг Европӕйаг стандартон рӕстӕг", "BOT": "BOT", "COT": "COT", "HECU": "HECU", "EST": "EST", "AEST": "AEST", "MESZ": "Астӕуккаг Европӕйаг сӕрдыгон рӕстӕг", "ChST": "ChST", "ACDT": "ACDT", "VET": "VET", "AWDT": "AWDT", "OEZ": "Скӕсӕн Европӕйаг стандартон рӕстӕг", "OESZ": "Скӕсӕн Европӕйаг сӕрдыгон рӕстӕг", "SAST": "SAST", "TMST": "TMST", "HENOMX": "HENOMX", "HNT": "HNT", "HEPM": "HEPM", "NZST": "NZST", "HNEG": "HNEG", "WAST": "WAST", "ADT": "ADT", "WIB": "WIB", "ART": "ART", "AWST": "AWST", "HEEG": "HEEG", "MDT": "MDT", "HNOG": "HNOG", "NZDT": "NZDT", "GYT": "GYT", "WEZ": "Ныгъуылӕн Европӕйаг стандартон рӕстӕг", "AKDT": "AKDT", "CST": "CST", "ARST": "ARST", "PDT": "PDT", "LHDT": "LHDT", "CLT": "CLT", "SGT": "SGT", "HNPMX": "HNPMX", "CLST": "CLST", "ACWST": "ACWST", "IST": "IST", "WART": "WART", "GMT": "Гринвичы рӕстӕмбис рӕстӕг", "AKST": "AKST", "UYT": "UYT", "WIT": "WIT", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "COST": "COST", "BT": "BT", "HKT": "HKT", "EAT": "EAT", "WAT": "WAT"},
+ timezones: map[string]string{"VET": "VET", "JST": "JST", "JDT": "JDT", "GFT": "GFT", "WITA": "WITA", "HECU": "HECU", "WIT": "WIT", "WEZ": "Ныгъуылӕн Европӕйаг стандартон рӕстӕг", "AEST": "AEST", "UYST": "UYST", "HNPMX": "HNPMX", "ACDT": "ACDT", "ACWDT": "ACWDT", "CHADT": "CHADT", "OEZ": "Скӕсӕн Европӕйаг стандартон рӕстӕг", "MYT": "MYT", "ART": "ART", "ARST": "ARST", "BT": "BT", "AKST": "AKST", "HEPMX": "HEPMX", "NZDT": "NZDT", "WESZ": "Ныгъуылӕн Европӕйаг сӕрдыгон рӕстӕг", "WART": "WART", "MDT": "MDT", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "ADT": "ADT", "WARST": "WARST", "HNNOMX": "HNNOMX", "PST": "PST", "OESZ": "Скӕсӕн Европӕйаг сӕрдыгон рӕстӕг", "HNCU": "HNCU", "EAT": "EAT", "NZST": "NZST", "HEOG": "HEOG", "HKT": "HKT", "WAT": "WAT", "AKDT": "AKDT", "MEZ": "Астӕуккаг Европӕйаг стандартон рӕстӕг", "MST": "MST", "HAST": "HAST", "ECT": "ECT", "BOT": "BOT", "GMT": "Гринвичы рӕстӕмбис рӕстӕг", "ChST": "ChST", "LHST": "LHST", "SGT": "SGT", "WIB": "WIB", "AWST": "AWST", "ACWST": "ACWST", "COST": "COST", "HNT": "HNT", "SRT": "SRT", "HEPM": "HEPM", "CLST": "CLST", "EST": "EST", "COT": "COT", "ACST": "ACST", "TMST": "TMST", "EDT": "EDT", "HKST": "HKST", "HNPM": "HNPM", "HNOG": "HNOG", "GYT": "GYT", "CST": "CST", "HADT": "HADT", "HNEG": "HNEG", "PDT": "PDT", "CLT": "CLT", "SAST": "SAST", "CDT": "CDT", "AWDT": "AWDT", "IST": "IST", "MESZ": "Астӕуккаг Европӕйаг сӕрдыгон рӕстӕг", "WAST": "WAST", "HENOMX": "HENOMX", "LHDT": "LHDT", "AST": "AST", "CHAST": "CHAST", "CAT": "CAT", "TMT": "TMT", "HAT": "HAT", "HEEG": "HEEG", "UYT": "UYT"},
}
}
diff --git a/pa/pa.go b/pa/pa.go
index 4fc1de42..853f7a05 100644
--- a/pa/pa.go
+++ b/pa/pa.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ਈ. ਪੂ.", "ਸੰਨ"},
erasNarrow: []string{"ਈ.ਪੂ.", "ਸੰਨ"},
erasWide: []string{"ਈਸਵੀ ਪੂਰਵ", "ਈਸਵੀ ਸੰਨ"},
- timezones: map[string]string{"PDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ACWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HKT": "ਹਾਂਗ ਕਾਂਗ ਮਿਆਰੀ ਵੇਲਾ", "JST": "ਜਪਾਨ ਮਿਆਰੀ ਵੇਲਾ", "WAST": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "CST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "ADT": "ਅਟਲਾਂਟਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "LHST": "ਲੌਰਡ ਹੋਵੇ ਮਿਆਰੀ ਵੇਲਾ", "CLST": "ਚਿਲੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "JDT": "ਜਪਾਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "SGT": "ਸਿੰਗਾਪੁਰ ਮਿਆਰੀ ਵੇਲਾ", "HNPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "HADT": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "HAT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CHADT": "ਚੈਥਮ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HECU": "ਕਿਊਬਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "UYT": "ਉਰੂਗਵੇ ਮਿਆਰੀ ਵੇਲਾ", "GYT": "ਗੁਯਾਨਾ ਵੇਲਾ", "ACDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "OESZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AKST": "ਅਲਾਸਕਾ ਮਿਆਰੀ ਵੇਲਾ", "ART": "ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "WAT": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "VET": "ਵੈਨੇਜ਼ੂਏਲਾ ਵੇਲਾ", "ChST": "ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ", "SRT": "ਸੂਰੀਨਾਮ ਵੇਲਾ", "HNOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "NZDT": "ਨਿਊਜ਼ੀਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "IST": "ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ", "AKDT": "ਅਲਾਸਕਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AST": "ਅਟਲਾਂਟਿਕ ਮਿਆਰੀ ਵੇਲਾ", "HNEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "HEEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HKST": "ਹਾਂਗ ਕਾਂਗ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HEPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MEZ": "ਮੱਧ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "GFT": "ਫ੍ਰੈਂਚ ਗੁਏਨਾ ਵੇਲਾ", "∅∅∅": "ਪੇਰੂ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WIB": "ਪੱਛਮੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "NZST": "ਨਿਊਜ਼ੀਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "MESZ": "ਮੱਧ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "CHAST": "ਚੈਥਮ ਮਿਆਰੀ ਵੇਲਾ", "CLT": "ਚਿਲੀ ਮਿਆਰੀ ਵੇਲਾ", "ACWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "AWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "AWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "BOT": "ਬੋਲੀਵੀਆ ਵੇਲਾ", "OEZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "HENOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MDT": "ਮਕਾਉ ਗਰਮੀ-ਰੁੱਤ ਸਮਾਂ", "HEOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਮਿਆਰੀ ਵੇਲਾ", "CAT": "ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ", "HNCU": "ਕਿਊਬਾ ਮਿਆਰੀ ਵੇਲਾ", "ARST": "ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AEST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "AEDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "EAT": "ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ", "HEPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HAST": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਮਿਆਰੀ ਵੇਲਾ", "EDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "PST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "WITA": "ਮੱਧ ਇੰਡੋਨੇਸ਼ੀਆਈ ਵੇਲਾ", "EST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "MYT": "ਮਲੇਸ਼ੀਆ ਵੇਲਾ", "WIT": "ਪੂਰਬੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "WEZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "WESZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "COT": "ਕੋਲੰਬੀਆ ਮਿਆਰੀ ਵੇਲਾ", "COST": "ਕੋਲੰਬੀਆ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "GMT": "ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ", "LHDT": "ਲੌਰਡ ਹੋਵੇ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "TMT": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਮਿਆਰੀ ਵੇਲਾ", "ACST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "MST": "ਮਕਾਉ ਮਿਆਰੀ ਸਮਾਂ", "SAST": "ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "TMST": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNNOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਮਿਆਰੀ ਵੇਲਾ", "UYST": "ਉਰੂਗਵੇ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "BT": "ਭੂਟਾਨ ਵੇਲਾ", "ECT": "ਇਕਵੇਡੋਰ ਵੇਲਾ", "WART": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "WARST": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ"},
+ timezones: map[string]string{"WESZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HAT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "LHST": "ਲੌਰਡ ਹੋਵੇ ਮਿਆਰੀ ਵੇਲਾ", "CLT": "ਚਿਲੀ ਮਿਆਰੀ ਵੇਲਾ", "CLST": "ਚਿਲੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "OEZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "UYST": "ਉਰੂਗਵੇ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HEPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WIB": "ਪੱਛਮੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "HNOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "VET": "ਵੈਨੇਜ਼ੂਏਲਾ ਵੇਲਾ", "BT": "ਭੂਟਾਨ ਵੇਲਾ", "AWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ECT": "ਇਕਵੇਡੋਰ ਵੇਲਾ", "HADT": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ACWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "COST": "ਕੋਲੰਬੀਆ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HECU": "ਕਿਊਬਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "JST": "ਜਪਾਨ ਮਿਆਰੀ ਵੇਲਾ", "WARST": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ARST": "ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HKT": "ਹਾਂਗ ਕਾਂਗ ਮਿਆਰੀ ਵੇਲਾ", "UYT": "ਉਰੂਗਵੇ ਮਿਆਰੀ ਵੇਲਾ", "GYT": "ਗੁਯਾਨਾ ਵੇਲਾ", "ACWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "OESZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WEZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "ACDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "AKDT": "ਅਲਾਸਕਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "CHADT": "ਚੈਥਮ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HEEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AEST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "CHAST": "ਚੈਥਮ ਮਿਆਰੀ ਵੇਲਾ", "MEZ": "ਮੱਧ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "ART": "ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "SRT": "ਸੂਰੀਨਾਮ ਵੇਲਾ", "EAT": "ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ", "HAST": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਮਿਆਰੀ ਵੇਲਾ", "WAST": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "EST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "EDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HKST": "ਹਾਂਗ ਕਾਂਗ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "HEOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AEDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNCU": "ਕਿਊਬਾ ਮਿਆਰੀ ਵੇਲਾ", "CAT": "ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ", "NZDT": "ਨਿਊਜ਼ੀਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WART": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "WAT": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "MST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਮਾਉਂਟੇਨ ਮਿਆਰੀ ਵੇਲਾ", "BOT": "ਬੋਲੀਵੀਆ ਵੇਲਾ", "CST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "WIT": "ਪੂਰਬੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "JDT": "ਜਪਾਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ACST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "∅∅∅": "ਪੇਰੂ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "GFT": "ਫ੍ਰੈਂਚ ਗੁਏਨਾ ਵੇਲਾ", "AKST": "ਅਲਾਸਕਾ ਮਿਆਰੀ ਵੇਲਾ", "MDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਮਾਉਂਟੇਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "TMT": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਮਿਆਰੀ ਵੇਲਾ", "HEPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "SGT": "ਸਿੰਗਾਪੁਰ ਮਿਆਰੀ ਵੇਲਾ", "NZST": "ਨਿਊਜ਼ੀਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "WITA": "ਮੱਧ ਇੰਡੋਨੇਸ਼ੀਆਈ ਵੇਲਾ", "CDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "IST": "ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ", "MESZ": "ਮੱਧ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ADT": "ਅਟਲਾਂਟਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNNOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਮਿਆਰੀ ਵੇਲਾ", "HNPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਮਿਆਰੀ ਵੇਲਾ", "LHDT": "ਲੌਰਡ ਹੋਵੇ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "PST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "PDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MYT": "ਮਲੇਸ਼ੀਆ ਵੇਲਾ", "TMST": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AST": "ਅਟਲਾਂਟਿਕ ਮਿਆਰੀ ਵੇਲਾ", "GMT": "ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ", "COT": "ਕੋਲੰਬੀਆ ਮਿਆਰੀ ਵੇਲਾ", "HENOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ChST": "ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ", "SAST": "ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "HNPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ"},
}
}
diff --git a/pa_Arab/pa_Arab.go b/pa_Arab/pa_Arab.go
index 2b13046d..50424d70 100644
--- a/pa_Arab/pa_Arab.go
+++ b/pa_Arab/pa_Arab.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ايساپورو", "سں"},
erasNarrow: []string{"", ""},
erasWide: []string{"ايساپورو", "سں"},
- timezones: map[string]string{"HNEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "GFT": "ਫ੍ਰੈਂਚ ਗੁਏਨਾ ਵੇਲਾ", "VET": "ਵੈਨੇਜ਼ੂਏਲਾ ਵੇਲਾ", "SAST": "ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "∅∅∅": "ਅਮੇਜ਼ਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ART": "ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "CLT": "ਚਿਲੀ ਮਿਆਰੀ ਵੇਲਾ", "WAT": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "NZST": "ਨਿਊਜ਼ੀਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "IST": "ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ", "AKDT": "ਅਲਾਸਕਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "GYT": "ਗੁਯਾਨਾ ਵੇਲਾ", "WIB": "ਪੱਛਮੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "BT": "ਭੂਟਾਨ ਵੇਲਾ", "HNT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "PST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "CHADT": "ਚੈਥਮ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "GMT": "ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ", "AKST": "ਅਲਾਸਕਾ ਮਿਆਰੀ ਵੇਲਾ", "LHDT": "ਲੌਰਡ ਹੋਵੇ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "SGT": "ਸਿੰਗਾਪੁਰ ਮਿਆਰੀ ਵੇਲਾ", "UYT": "ਉਰੂਗਵੇ ਮਿਆਰੀ ਵੇਲਾ", "HADT": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ARST": "ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WESZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ACST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "COT": "ਕੋਲੰਬੀਆ ਮਿਆਰੀ ਵੇਲਾ", "MST": "ਮਕਾਉ ਮਿਆਰੀ ਸਮਾਂ", "CDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AST": "ਅਟਲਾਂਟਿਕ ਮਿਆਰੀ ਵੇਲਾ", "ADT": "ਅਟਲਾਂਟਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HAST": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਮਿਆਰੀ ਵੇਲਾ", "HKT": "ਹਾਂਗ ਕਾਂਗ ਮਿਆਰੀ ਵੇਲਾ", "HECU": "ਕਿਊਬਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "EST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "MEZ": "ਮੱਧ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "HNPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਮਿਆਰੀ ਵੇਲਾ", "NZDT": "ਨਿਊਜ਼ੀਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "COST": "ਕੋਲੰਬੀਆ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "HAT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "AEST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "OESZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HENOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNCU": "ਕਿਊਬਾ ਮਿਆਰੀ ਵੇਲਾ", "EDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HKST": "ਹਾਂਗ ਕਾਂਗ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "AWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CHAST": "ਚੈਥਮ ਮਿਆਰੀ ਵੇਲਾ", "TMST": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ChST": "ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ", "LHST": "ਲੌਰਡ ਹੋਵੇ ਮਿਆਰੀ ਵੇਲਾ", "WARST": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "MYT": "ਮਲੇਸ਼ੀਆ ਵੇਲਾ", "CLST": "ਚਿਲੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "EAT": "ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ", "ECT": "ਇਕਵੇਡੋਰ ਵੇਲਾ", "WART": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "WITA": "ਮੱਧ ਇੰਡੋਨੇਸ਼ੀਆਈ ਵੇਲਾ", "HEEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "BOT": "ਬੋਲੀਵੀਆ ਵੇਲਾ", "HNNOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਮਿਆਰੀ ਵੇਲਾ", "WIT": "ਪੂਰਬੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "SRT": "ਸੂਰੀਨਾਮ ਵੇਲਾ", "ACDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WAST": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "MDT": "ਮਕਾਉ ਗਰਮੀ-ਰੁੱਤ ਸਮਾਂ", "CST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "UYST": "ਉਰੂਗਵੇ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "MESZ": "ਮੱਧ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "JST": "ਜਪਾਨ ਮਿਆਰੀ ਵੇਲਾ", "HEPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ACWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "PDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AEDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HEPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "TMT": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਮਿਆਰੀ ਵੇਲਾ", "CAT": "ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ", "ACWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WEZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "JDT": "ਜਪਾਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "OEZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "HEOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ"},
+ timezones: map[string]string{"WITA": "ਮੱਧ ਇੰਡੋਨੇਸ਼ੀਆਈ ਵੇਲਾ", "HNPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "BOT": "ਬੋਲੀਵੀਆ ਵੇਲਾ", "NZST": "ਨਿਊਜ਼ੀਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "VET": "ਵੈਨੇਜ਼ੂਏਲਾ ਵੇਲਾ", "AKST": "ਅਲਾਸਕਾ ਮਿਆਰੀ ਵੇਲਾ", "HNT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "AEDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਮਿਆਰੀ ਵੇਲਾ", "HEPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HENOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "TMT": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਮਿਆਰੀ ਵੇਲਾ", "CST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "CHAST": "ਚੈਥਮ ਮਿਆਰੀ ਵੇਲਾ", "PDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WEZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "HKT": "ਹਾਂਗ ਕਾਂਗ ਮਿਆਰੀ ਵੇਲਾ", "UYT": "ਉਰੂਗਵੇ ਮਿਆਰੀ ਵੇਲਾ", "HADT": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CAT": "ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ", "MEZ": "ਮੱਧ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "MDT": "ਮਕਾਉ ਗਰਮੀ-ਰੁੱਤ ਸਮਾਂ", "BT": "ਭੂਟਾਨ ਵੇਲਾ", "UYST": "ਉਰੂਗਵੇ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "EDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ART": "ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "WAT": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "ACST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "HNEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "GFT": "ਫ੍ਰੈਂਚ ਗੁਏਨਾ ਵੇਲਾ", "CHADT": "ਚੈਥਮ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "NZDT": "ਨਿਊਜ਼ੀਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CLT": "ਚਿਲੀ ਮਿਆਰੀ ਵੇਲਾ", "AWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WART": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "HKST": "ਹਾਂਗ ਕਾਂਗ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ACDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "COST": "ਕੋਲੰਬੀਆ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AKDT": "ਅਲਾਸਕਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "GYT": "ਗੁਯਾਨਾ ਵੇਲਾ", "HNCU": "ਕਿਊਬਾ ਮਿਆਰੀ ਵੇਲਾ", "WIB": "ਪੱਛਮੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "OEZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "JDT": "ਜਪਾਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HEOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ChST": "ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ", "HECU": "ਕਿਊਬਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "PST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "WESZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "MST": "ਮਕਾਉ ਮਿਆਰੀ ਸਮਾਂ", "HAT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "EAT": "ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ", "MESZ": "ਮੱਧ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "MYT": "ਮਲੇਸ਼ੀਆ ਵੇਲਾ", "EST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "HEEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "JST": "ਜਪਾਨ ਮਿਆਰੀ ਵੇਲਾ", "OESZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ARST": "ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AEST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "SAST": "ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "WIT": "ਪੂਰਬੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "ACWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "CLST": "ਚਿਲੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WAST": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ECT": "ਇਕਵੇਡੋਰ ਵੇਲਾ", "WARST": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "∅∅∅": "∅∅∅", "IST": "ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ", "ACWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNNOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਮਿਆਰੀ ਵੇਲਾ", "TMST": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "LHST": "ਲੌਰਡ ਹੋਵੇ ਮਿਆਰੀ ਵੇਲਾ", "SRT": "ਸੂਰੀਨਾਮ ਵੇਲਾ", "SGT": "ਸਿੰਗਾਪੁਰ ਮਿਆਰੀ ਵੇਲਾ", "HAST": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਮਿਆਰੀ ਵੇਲਾ", "GMT": "ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ", "ADT": "ਅਟਲਾਂਟਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "COT": "ਕੋਲੰਬੀਆ ਮਿਆਰੀ ਵੇਲਾ", "HEPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "LHDT": "ਲੌਰਡ ਹੋਵੇ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AST": "ਅਟਲਾਂਟਿਕ ਮਿਆਰੀ ਵੇਲਾ"},
}
}
diff --git a/pa_Arab_PK/pa_Arab_PK.go b/pa_Arab_PK/pa_Arab_PK.go
index 5f314ce2..19edad0f 100644
--- a/pa_Arab_PK/pa_Arab_PK.go
+++ b/pa_Arab_PK/pa_Arab_PK.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ਈ. ਪੂ.", "ਸੰਨ"},
erasNarrow: []string{"ਈ.ਪੂ.", "ਸੰਨ"},
erasWide: []string{"ਈਸਵੀ ਪੂਰਵ", "ਈਸਵੀ ਸੰਨ"},
- timezones: map[string]string{"BT": "ਭੂਟਾਨ ਵੇਲਾ", "HKST": "ਹਾਂਗ ਕਾਂਗ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਮਿਆਰੀ ਵੇਲਾ", "HEPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "JDT": "ਜਪਾਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "BOT": "ਬੋਲੀਵੀਆ ਵੇਲਾ", "HNEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "CAT": "ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ", "EAT": "ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ", "HNPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "UYST": "ਉਰੂਗਵੇ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "SRT": "ਸੂਰੀਨਾਮ ਵੇਲਾ", "ART": "ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "HNOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "AEDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HKT": "ਹਾਂਗ ਕਾਂਗ ਮਿਆਰੀ ਵੇਲਾ", "CLST": "ਚਿਲੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "PST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "MEZ": "ਮੱਧ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "CHADT": "ਚੈਥਮ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "JST": "ਜਪਾਨ ਮਿਆਰੀ ਵੇਲਾ", "MDT": "ਮਕਾਉ ਗਰਮੀ-ਰੁੱਤ ਸਮਾਂ", "WESZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ACWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "IST": "ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ", "WAT": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "OESZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNCU": "ਕਿਊਬਾ ਮਿਆਰੀ ਵੇਲਾ", "ADT": "ਅਟਲਾਂਟਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "GYT": "ਗੁਯਾਨਾ ਵੇਲਾ", "HAST": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਮਿਆਰੀ ਵੇਲਾ", "HNT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "AEST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "SAST": "ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "TMT": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਮਿਆਰੀ ਵੇਲਾ", "WARST": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "COST": "ਕੋਲੰਬੀਆ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "UYT": "ਉਰੂਗਵੇ ਮਿਆਰੀ ਵੇਲਾ", "CDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MYT": "ਮਲੇਸ਼ੀਆ ਵੇਲਾ", "WIB": "ਪੱਛਮੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "HEEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HEPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WART": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "WEZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "HEOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WAST": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HENOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "PDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ARST": "ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "GFT": "ਫ੍ਰੈਂਚ ਗੁਏਨਾ ਵੇਲਾ", "LHST": "ਲੌਰਡ ਹੋਵੇ ਮਿਆਰੀ ਵੇਲਾ", "LHDT": "ਲੌਰਡ ਹੋਵੇ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "OEZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "MST": "ਮਕਾਉ ਮਿਆਰੀ ਸਮਾਂ", "ACWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "AWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CLT": "ਚਿਲੀ ਮਿਆਰੀ ਵੇਲਾ", "∅∅∅": "ਅਮੇਜ਼ਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ChST": "ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ", "SGT": "ਸਿੰਗਾਪੁਰ ਮਿਆਰੀ ਵੇਲਾ", "HADT": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "EST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "ACDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ECT": "ਇਕਵੇਡੋਰ ਵੇਲਾ", "HECU": "ਕਿਊਬਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AST": "ਅਟਲਾਂਟਿਕ ਮਿਆਰੀ ਵੇਲਾ", "VET": "ਵੈਨੇਜ਼ੂਏਲਾ ਵੇਲਾ", "MESZ": "ਮੱਧ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "CHAST": "ਚੈਥਮ ਮਿਆਰੀ ਵੇਲਾ", "EDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "TMST": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNNOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਮਿਆਰੀ ਵੇਲਾ", "GMT": "ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ", "AKDT": "ਅਲਾਸਕਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HAT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WITA": "ਮੱਧ ਇੰਡੋਨੇਸ਼ੀਆਈ ਵੇਲਾ", "NZST": "ਨਿਊਜ਼ੀਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "NZDT": "ਨਿਊਜ਼ੀਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ACST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "COT": "ਕੋਲੰਬੀਆ ਮਿਆਰੀ ਵੇਲਾ", "AKST": "ਅਲਾਸਕਾ ਮਿਆਰੀ ਵੇਲਾ", "WIT": "ਪੂਰਬੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ"},
+ timezones: map[string]string{"CLT": "ਚਿਲੀ ਮਿਆਰੀ ਵੇਲਾ", "HEOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AST": "ਅਟਲਾਂਟਿਕ ਮਿਆਰੀ ਵੇਲਾ", "HNEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "UYT": "ਉਰੂਗਵੇ ਮਿਆਰੀ ਵੇਲਾ", "HNPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "SGT": "ਸਿੰਗਾਪੁਰ ਮਿਆਰੀ ਵੇਲਾ", "ACWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AEST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "SRT": "ਸੂਰੀਨਾਮ ਵੇਲਾ", "CST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "CAT": "ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ", "IST": "ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ", "NZST": "ਨਿਊਜ਼ੀਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "BT": "ਭੂਟਾਨ ਵੇਲਾ", "AKST": "ਅਲਾਸਕਾ ਮਿਆਰੀ ਵੇਲਾ", "MEZ": "ਮੱਧ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "COST": "ਕੋਲੰਬੀਆ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ACST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "HNT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "HAT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਮਾਉਂਟੇਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "GYT": "ਗੁਯਾਨਾ ਵੇਲਾ", "MESZ": "ਮੱਧ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "GFT": "ਫ੍ਰੈਂਚ ਗੁਏਨਾ ਵੇਲਾ", "WESZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "EDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HKST": "ਹਾਂਗ ਕਾਂਗ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HENOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "SAST": "ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "HEPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CLST": "ਚਿਲੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "GMT": "ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ", "TMST": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WAT": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "AKDT": "ਅਲਾਸਕਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WIB": "ਪੱਛਮੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "WIT": "ਪੂਰਬੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "CHAST": "ਚੈਥਮ ਮਿਆਰੀ ਵੇਲਾ", "ADT": "ਅਟਲਾਂਟਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WAST": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਮਿਆਰੀ ਵੇਲਾ", "OESZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "MYT": "ਮਲੇਸ਼ੀਆ ਵੇਲਾ", "TMT": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਮਿਆਰੀ ਵੇਲਾ", "ART": "ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "ACDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "COT": "ਕੋਲੰਬੀਆ ਮਿਆਰੀ ਵੇਲਾ", "LHST": "ਲੌਰਡ ਹੋਵੇ ਮਿਆਰੀ ਵੇਲਾ", "BOT": "ਬੋਲੀਵੀਆ ਵੇਲਾ", "NZDT": "ਨਿਊਜ਼ੀਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "OEZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "WARST": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "VET": "ਵੈਨੇਜ਼ੂਏਲਾ ਵੇਲਾ", "JST": "ਜਪਾਨ ਮਿਆਰੀ ਵੇਲਾ", "∅∅∅": "∅∅∅", "WITA": "ਮੱਧ ਇੰਡੋਨੇਸ਼ੀਆਈ ਵੇਲਾ", "CDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "PST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "PDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "EAT": "ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ", "JDT": "ਜਪਾਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WEZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "HEEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AEDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HAST": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਮਿਆਰੀ ਵੇਲਾ", "ECT": "ਇਕਵੇਡੋਰ ਵੇਲਾ", "CHADT": "ਚੈਥਮ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ARST": "ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "EST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "HNNOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਮਿਆਰੀ ਵੇਲਾ", "WART": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "MST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਮਾਉਂਟੇਨ ਮਿਆਰੀ ਵੇਲਾ", "HEPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "LHDT": "ਲੌਰਡ ਹੋਵੇ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "HADT": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "HKT": "ਹਾਂਗ ਕਾਂਗ ਮਿਆਰੀ ਵੇਲਾ", "ChST": "ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ", "UYST": "ਉਰੂਗਵੇ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNCU": "ਕਿਊਬਾ ਮਿਆਰੀ ਵੇਲਾ", "HECU": "ਕਿਊਬਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ACWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ"},
}
}
diff --git a/pa_Guru/pa_Guru.go b/pa_Guru/pa_Guru.go
index 6df44129..69b82fd5 100644
--- a/pa_Guru/pa_Guru.go
+++ b/pa_Guru/pa_Guru.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ਈ. ਪੂ.", "ਸੰਨ"},
erasNarrow: []string{"ਈ.ਪੂ.", "ਸੰਨ"},
erasWide: []string{"ਈਸਵੀ ਪੂਰਵ", "ਈਸਵੀ ਸੰਨ"},
- timezones: map[string]string{"SRT": "ਸੂਰੀਨਾਮ ਵੇਲਾ", "HAT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WITA": "ਮੱਧ ਇੰਡੋਨੇਸ਼ੀਆਈ ਵੇਲਾ", "ChST": "ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ", "COT": "ਕੋਲੰਬੀਆ ਮਿਆਰੀ ਵੇਲਾ", "LHDT": "ਲੌਰਡ ਹੋਵੇ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "JDT": "ਜਪਾਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HENOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "EST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "CST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "ARST": "ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "HEPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WIB": "ਪੱਛਮੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "WEZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "HKST": "ਹਾਂਗ ਕਾਂਗ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ECT": "ਇਕਵੇਡੋਰ ਵੇਲਾ", "LHST": "ਲੌਰਡ ਹੋਵੇ ਮਿਆਰੀ ਵੇਲਾ", "HEEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNNOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਮਿਆਰੀ ਵੇਲਾ", "∅∅∅": "ਅਜੋਰੇਸ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HEOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਮਿਆਰੀ ਵੇਲਾ", "JST": "ਜਪਾਨ ਮਿਆਰੀ ਵੇਲਾ", "AST": "ਅਟਲਾਂਟਿਕ ਮਿਆਰੀ ਵੇਲਾ", "GYT": "ਗੁਯਾਨਾ ਵੇਲਾ", "IST": "ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ", "GFT": "ਫ੍ਰੈਂਚ ਗੁਏਨਾ ਵੇਲਾ", "OEZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "WAST": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "NZDT": "ਨਿਊਜ਼ੀਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MEZ": "ਮੱਧ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "SGT": "ਸਿੰਗਾਪੁਰ ਮਿਆਰੀ ਵੇਲਾ", "HECU": "ਕਿਊਬਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "GMT": "ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ", "ADT": "ਅਟਲਾਂਟਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "WIT": "ਪੂਰਬੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "ART": "ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "NZST": "ਨਿਊਜ਼ੀਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "TMT": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਮਿਆਰੀ ਵੇਲਾ", "WARST": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "BOT": "ਬੋਲੀਵੀਆ ਵੇਲਾ", "ACDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "EDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AKST": "ਅਲਾਸਕਾ ਮਿਆਰੀ ਵੇਲਾ", "AKDT": "ਅਲਾਸਕਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HADT": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AEDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CHAST": "ਚੈਥਮ ਮਿਆਰੀ ਵੇਲਾ", "CHADT": "ਚੈਥਮ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MESZ": "ਮੱਧ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "MYT": "ਮਲੇਸ਼ੀਆ ਵੇਲਾ", "UYT": "ਉਰੂਗਵੇ ਮਿਆਰੀ ਵੇਲਾ", "VET": "ਵੈਨੇਜ਼ੂਏਲਾ ਵੇਲਾ", "PDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "HNOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "TMST": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ACST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "CAT": "ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ", "CDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WAT": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "OESZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "EAT": "ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ", "COST": "ਕੋਲੰਬੀਆ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WART": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "HNCU": "ਕਿਊਬਾ ਮਿਆਰੀ ਵੇਲਾ", "WESZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ACWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HKT": "ਹਾਂਗ ਕਾਂਗ ਮਿਆਰੀ ਵੇਲਾ", "SAST": "ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "AWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AEST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "CLT": "ਚਿਲੀ ਮਿਆਰੀ ਵੇਲਾ", "MDT": "ਮਕਾਉ ਗਰਮੀ-ਰੁੱਤ ਸਮਾਂ", "HEPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HAST": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਮਿਆਰੀ ਵੇਲਾ", "BT": "ਭੂਟਾਨ ਵੇਲਾ", "ACWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "MST": "ਮਕਾਉ ਮਿਆਰੀ ਸਮਾਂ", "UYST": "ਉਰੂਗਵੇ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "PST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "CLST": "ਚਿਲੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ"},
+ timezones: map[string]string{"UYST": "ਉਰੂਗਵੇ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "CDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "IST": "ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ", "WAST": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "GFT": "ਫ੍ਰੈਂਚ ਗੁਏਨਾ ਵੇਲਾ", "LHDT": "ਲੌਰਡ ਹੋਵੇ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CHADT": "ਚੈਥਮ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WART": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "MST": "ਮਕਾਉ ਮਿਆਰੀ ਸਮਾਂ", "HNEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "AEDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "UYT": "ਉਰੂਗਵੇ ਮਿਆਰੀ ਵੇਲਾ", "SAST": "ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "WARST": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HEPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNCU": "ਕਿਊਬਾ ਮਿਆਰੀ ਵੇਲਾ", "WIB": "ਪੱਛਮੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "WIT": "ਪੂਰਬੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "NZST": "ਨਿਊਜ਼ੀਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "WEZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "ARST": "ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "EST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "HNNOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਮਿਆਰੀ ਵੇਲਾ", "∅∅∅": "ਪੇਰੂ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "NZDT": "ਨਿਊਜ਼ੀਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "OESZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "GMT": "ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ", "ChST": "ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ", "AWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "HADT": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MESZ": "ਮੱਧ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "CLST": "ਚਿਲੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "TMT": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਮਿਆਰੀ ਵੇਲਾ", "EDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "LHST": "ਲੌਰਡ ਹੋਵੇ ਮਿਆਰੀ ਵੇਲਾ", "SRT": "ਸੂਰੀਨਾਮ ਵੇਲਾ", "MEZ": "ਮੱਧ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "MYT": "ਮਲੇਸ਼ੀਆ ਵੇਲਾ", "ACDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "COT": "ਕੋਲੰਬੀਆ ਮਿਆਰੀ ਵੇਲਾ", "HNT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "GYT": "ਗੁਯਾਨਾ ਵੇਲਾ", "EAT": "ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ", "CST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "CAT": "ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ", "JDT": "ਜਪਾਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ART": "ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "HAT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "PDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "PST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "HAST": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਮਿਆਰੀ ਵੇਲਾ", "CLT": "ਚਿਲੀ ਮਿਆਰੀ ਵੇਲਾ", "MDT": "ਮਕਾਉ ਗਰਮੀ-ਰੁੱਤ ਸਮਾਂ", "HKST": "ਹਾਂਗ ਕਾਂਗ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "COST": "ਕੋਲੰਬੀਆ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HENOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ECT": "ਇਕਵੇਡੋਰ ਵੇਲਾ", "HNOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "TMST": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ACST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "ACWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "VET": "ਵੈਨੇਜ਼ੂਏਲਾ ਵੇਲਾ", "WESZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "BT": "ਭੂਟਾਨ ਵੇਲਾ", "WITA": "ਮੱਧ ਇੰਡੋਨੇਸ਼ੀਆਈ ਵੇਲਾ", "AKDT": "ਅਲਾਸਕਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "BOT": "ਬੋਲੀਵੀਆ ਵੇਲਾ", "HEOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AEST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "HEPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ACWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "OEZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "HKT": "ਹਾਂਗ ਕਾਂਗ ਮਿਆਰੀ ਵੇਲਾ", "HEEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "AST": "ਅਟਲਾਂਟਿਕ ਮਿਆਰੀ ਵੇਲਾ", "SGT": "ਸਿੰਗਾਪੁਰ ਮਿਆਰੀ ਵੇਲਾ", "JST": "ਜਪਾਨ ਮਿਆਰੀ ਵੇਲਾ", "ADT": "ਅਟਲਾਂਟਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WAT": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "AKST": "ਅਲਾਸਕਾ ਮਿਆਰੀ ਵੇਲਾ", "HNPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਮਿਆਰੀ ਵੇਲਾ", "HECU": "ਕਿਊਬਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CHAST": "ਚੈਥਮ ਮਿਆਰੀ ਵੇਲਾ"},
}
}
diff --git a/pa_Guru_IN/pa_Guru_IN.go b/pa_Guru_IN/pa_Guru_IN.go
index 7e362a06..cae6691a 100644
--- a/pa_Guru_IN/pa_Guru_IN.go
+++ b/pa_Guru_IN/pa_Guru_IN.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ਈ. ਪੂ.", "ਸੰਨ"},
erasNarrow: []string{"ਈ.ਪੂ.", "ਸੰਨ"},
erasWide: []string{"ਈਸਵੀ ਪੂਰਵ", "ਈਸਵੀ ਸੰਨ"},
- timezones: map[string]string{"WESZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "CHAST": "ਚੈਥਮ ਮਿਆਰੀ ਵੇਲਾ", "WART": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "HNPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "VET": "ਵੈਨੇਜ਼ੂਏਲਾ ਵੇਲਾ", "PST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "MESZ": "ਮੱਧ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "JST": "ਜਪਾਨ ਮਿਆਰੀ ਵੇਲਾ", "WAST": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "EDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MYT": "ਮਲੇਸ਼ੀਆ ਵੇਲਾ", "PDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HEEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "GFT": "ਫ੍ਰੈਂਚ ਗੁਏਨਾ ਵੇਲਾ", "TMST": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WARST": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "UYST": "ਉਰੂਗਵੇ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WEZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "CHADT": "ਚੈਥਮ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ACDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "COST": "ਕੋਲੰਬੀਆ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "CDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "HEOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HKT": "ਹਾਂਗ ਕਾਂਗ ਮਿਆਰੀ ਵੇਲਾ", "HEPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "SGT": "ਸਿੰਗਾਪੁਰ ਮਿਆਰੀ ਵੇਲਾ", "AWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "NZDT": "ਨਿਊਜ਼ੀਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "JDT": "ਜਪਾਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "TMT": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਮਿਆਰੀ ਵੇਲਾ", "COT": "ਕੋਲੰਬੀਆ ਮਿਆਰੀ ਵੇਲਾ", "WIT": "ਪੂਰਬੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "HAT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "LHDT": "ਲੌਰਡ ਹੋਵੇ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MEZ": "ਮੱਧ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "SAST": "ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "WAT": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "WIB": "ਪੱਛਮੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "AWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AEDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "LHST": "ਲੌਰਡ ਹੋਵੇ ਮਿਆਰੀ ਵੇਲਾ", "NZST": "ਨਿਊਜ਼ੀਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "GMT": "ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ", "HEPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AKDT": "ਅਲਾਸਕਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "HKST": "ਹਾਂਗ ਕਾਂਗ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "BOT": "ਬੋਲੀਵੀਆ ਵੇਲਾ", "ChST": "ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ", "ECT": "ਇਕਵੇਡੋਰ ਵੇਲਾ", "CST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "HNPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਮਿਆਰੀ ਵੇਲਾ", "ACST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "AST": "ਅਟਲਾਂਟਿਕ ਮਿਆਰੀ ਵੇਲਾ", "UYT": "ਉਰੂਗਵੇ ਮਿਆਰੀ ਵੇਲਾ", "MST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਮਾਉਂਟੇਨ ਮਿਆਰੀ ਵੇਲਾ", "HENOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HADT": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNNOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਮਿਆਰੀ ਵੇਲਾ", "HECU": "ਕਿਊਬਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ADT": "ਅਟਲਾਂਟਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "IST": "ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ", "CLT": "ਚਿਲੀ ਮਿਆਰੀ ਵੇਲਾ", "CAT": "ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ", "HNCU": "ਕਿਊਬਾ ਮਿਆਰੀ ਵੇਲਾ", "EST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "OEZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "GYT": "ਗੁਯਾਨਾ ਵੇਲਾ", "MDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਮਾਉਂਟੇਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HAST": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਮਿਆਰੀ ਵੇਲਾ", "SRT": "ਸੂਰੀਨਾਮ ਵੇਲਾ", "ACWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "∅∅∅": "ਅਮੇਜ਼ਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ARST": "ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "EAT": "ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ", "AKST": "ਅਲਾਸਕਾ ਮਿਆਰੀ ਵੇਲਾ", "CLST": "ਚਿਲੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "OESZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "BT": "ਭੂਟਾਨ ਵੇਲਾ", "ACWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ART": "ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "WITA": "ਮੱਧ ਇੰਡੋਨੇਸ਼ੀਆਈ ਵੇਲਾ", "AEST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ"},
+ timezones: map[string]string{"TMST": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HAT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CHADT": "ਚੈਥਮ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ChST": "ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ", "SRT": "ਸੂਰੀਨਾਮ ਵੇਲਾ", "ECT": "ਇਕਵੇਡੋਰ ਵੇਲਾ", "MST": "ਮਕਾਉ ਮਿਆਰੀ ਸਮਾਂ", "ARST": "ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "EDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "NZST": "ਨਿਊਜ਼ੀਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "NZDT": "ਨਿਊਜ਼ੀਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HEOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "LHST": "ਲੌਰਡ ਹੋਵੇ ਮਿਆਰੀ ਵੇਲਾ", "HADT": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਮਿਆਰੀ ਵੇਲਾ", "CDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MEZ": "ਮੱਧ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "LHDT": "ਲੌਰਡ ਹੋਵੇ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "AWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "AWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "BOT": "ਬੋਲੀਵੀਆ ਵੇਲਾ", "CLST": "ਚਿਲੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "MYT": "ਮਲੇਸ਼ੀਆ ਵੇਲਾ", "AKDT": "ਅਲਾਸਕਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "IST": "ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ", "HECU": "ਕਿਊਬਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HAST": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਮਿਆਰੀ ਵੇਲਾ", "ACWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WAT": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "HKST": "ਹਾਂਗ ਕਾਂਗ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ACST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "COST": "ਕੋਲੰਬੀਆ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNCU": "ਕਿਊਬਾ ਮਿਆਰੀ ਵੇਲਾ", "OEZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "MDT": "ਮਕਾਉ ਗਰਮੀ-ਰੁੱਤ ਸਮਾਂ", "ART": "ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "PST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "PDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ACWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "HNT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "AKST": "ਅਲਾਸਕਾ ਮਿਆਰੀ ਵੇਲਾ", "HNPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "BT": "ਭੂਟਾਨ ਵੇਲਾ", "HEPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "GMT": "ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ", "TMT": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਮਿਆਰੀ ਵੇਲਾ", "HENOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "COT": "ਕੋਲੰਬੀਆ ਮਿਆਰੀ ਵੇਲਾ", "∅∅∅": "ਪੇਰੂ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WITA": "ਮੱਧ ਇੰਡੋਨੇਸ਼ੀਆਈ ਵੇਲਾ", "CHAST": "ਚੈਥਮ ਮਿਆਰੀ ਵੇਲਾ", "MESZ": "ਮੱਧ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WART": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "ADT": "ਅਟਲਾਂਟਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ACDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "EST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "GFT": "ਫ੍ਰੈਂਚ ਗੁਏਨਾ ਵੇਲਾ", "WIT": "ਪੂਰਬੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "CAT": "ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ", "VET": "ਵੈਨੇਜ਼ੂਏਲਾ ਵੇਲਾ", "JDT": "ਜਪਾਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AST": "ਅਟਲਾਂਟਿਕ ਮਿਆਰੀ ਵੇਲਾ", "GYT": "ਗੁਯਾਨਾ ਵੇਲਾ", "SGT": "ਸਿੰਗਾਪੁਰ ਮਿਆਰੀ ਵੇਲਾ", "SAST": "ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "WARST": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "HNEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "UYST": "ਉਰੂਗਵੇ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "EAT": "ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ", "CLT": "ਚਿਲੀ ਮਿਆਰੀ ਵੇਲਾ", "AEST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "UYT": "ਉਰੂਗਵੇ ਮਿਆਰੀ ਵੇਲਾ", "WAST": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HKT": "ਹਾਂਗ ਕਾਂਗ ਮਿਆਰੀ ਵੇਲਾ", "HNNOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਮਿਆਰੀ ਵੇਲਾ", "HEEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AEDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "OESZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WEZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "WESZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HEPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WIB": "ਪੱਛਮੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "JST": "ਜਪਾਨ ਮਿਆਰੀ ਵੇਲਾ"},
}
}
diff --git a/pl/pl.go b/pl/pl.go
index 4030669f..8ab9fa60 100644
--- a/pl/pl.go
+++ b/pl/pl.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"p.n.e.", "n.e."},
erasNarrow: []string{"", ""},
erasWide: []string{"przed naszą erą", "naszej ery"},
- timezones: map[string]string{"HNNOMX": "Meksyk Północno-Zachodni (czas standardowy)", "UYST": "Urugwaj (czas letni)", "HNT": "Nowa Fundlandia (czas standardowy)", "CAT": "Czas środkowoafrykański", "EAT": "Czas wschodnioafrykański", "WITA": "Indonezja Środkowa", "HNPM": "Saint-Pierre i Miquelon (czas standardowy)", "CHAST": "Chatham (czas standardowy)", "CHADT": "Chatham (czas letni)", "EST": "Czas wschodnioamerykański standardowy", "EDT": "Czas wschodnioamerykański letni", "HNPMX": "Meksyk (czas pacyficzny standardowy)", "UYT": "Urugwaj (czas standardowy)", "ACWDT": "Czas środkowo-zachodnioaustralijski letni", "MESZ": "Czas środkowoeuropejski letni", "TMST": "Turkmenistan (czas letni)", "LHDT": "Lord Howe (czas letni)", "AKST": "Alaska (czas standardowy)", "AKDT": "Alaska (czas letni)", "AST": "Czas atlantycki standardowy", "ADT": "Czas atlantycki letni", "ART": "Argentyna (czas standardowy)", "AWST": "Czas zachodnioaustralijski standardowy", "HEPM": "Saint-Pierre i Miquelon (czas letni)", "AEDT": "Czas wschodnioaustralijski letni", "BOT": "Boliwia", "ECT": "Ekwador", "SGT": "Singapur", "MST": "MST", "SRT": "Surinam", "PST": "Czas pacyficzny standardowy", "ACWST": "Czas środkowo-zachodnioaustralijski standardowy", "CLT": "Chile (czas standardowy)", "TMT": "Turkmenistan (czas standardowy)", "HEEG": "Grenlandia Wschodnia (czas letni)", "ACST": "Czas środkowoaustralijski standardowy", "∅∅∅": "Peru (czas letni)", "OEZ": "Czas wschodnioeuropejski standardowy", "WARST": "Argentyna Zachodnia (czas letni)", "WIB": "Indonezja Zachodnia", "BT": "Bhutan", "PDT": "Czas pacyficzny letni", "ACDT": "Czas środkowoaustralijski letni", "CDT": "Czas środkowoamerykański letni", "AEST": "Czas wschodnioaustralijski standardowy", "GFT": "Gujana Francuska", "GMT": "Czas uniwersalny", "MDT": "MDT", "HAST": "Hawaje-Aleuty (czas standardowy)", "VET": "Wenezuela", "HAT": "Nowa Fundlandia (czas letni)", "SAST": "Czas południowoafrykański", "JST": "Japonia (czas standardowy)", "WAST": "Czas zachodnioafrykański letni", "COT": "Kolumbia (czas standardowy)", "HECU": "Kuba (czas letni)", "JDT": "Japonia (czas letni)", "NZDT": "Nowa Zelandia (czas letni)", "WART": "Argentyna Zachodnia (czas standardowy)", "WEZ": "Czas zachodnioeuropejski standardowy", "WESZ": "Czas zachodnioeuropejski letni", "ARST": "Argentyna (czas letni)", "HNOG": "Grenlandia Zachodnia (czas standardowy)", "MEZ": "Czas środkowoeuropejski standardowy", "LHST": "Lord Howe (czas standardowy)", "HADT": "Hawaje-Aleuty (czas letni)", "IST": "Czas indyjski", "ChST": "Czamorro", "CLST": "Chile (czas letni)", "OESZ": "Czas wschodnioeuropejski letni", "HENOMX": "Meksyk Północno-Zachodni (czas letni)", "GYT": "Gujana", "WIT": "Indonezja Wschodnia", "HKT": "Hongkong (czas standardowy)", "HKST": "Hongkong (czas letni)", "NZST": "Nowa Zelandia (czas standardowy)", "COST": "Kolumbia (czas letni)", "HNCU": "Kuba (czas standardowy)", "HEPMX": "Meksyk (czas pacyficzny letni)", "HNEG": "Grenlandia Wschodnia (czas standardowy)", "WAT": "Czas zachodnioafrykański standardowy", "CST": "Czas środkowoamerykański standardowy", "MYT": "Malezja", "HEOG": "Grenlandia Zachodnia (czas letni)", "AWDT": "Czas zachodnioaustralijski letni"},
+ timezones: map[string]string{"HNCU": "Kuba (czas standardowy)", "EST": "Czas wschodnioamerykański standardowy", "HEEG": "Grenlandia Wschodnia (czas letni)", "WITA": "Indonezja Środkowa", "CHAST": "Chatham (czas standardowy)", "HEOG": "Grenlandia Zachodnia (czas letni)", "TMT": "Turkmenistan (czas standardowy)", "ART": "Argentyna (czas standardowy)", "ChST": "Czamorro", "HEPMX": "Meksyk (czas pacyficzny letni)", "GYT": "Gujana", "CST": "Czas środkowoamerykański standardowy", "PDT": "Czas pacyficzny letni", "CAT": "Czas środkowoafrykański", "MESZ": "Czas środkowoeuropejski letni", "ACDT": "Czas środkowoaustralijski letni", "MDT": "Czas górski letni", "HNEG": "Grenlandia Wschodnia (czas standardowy)", "SRT": "Surinam", "AWDT": "Czas zachodnioaustralijski letni", "OEZ": "Czas wschodnioeuropejski standardowy", "COT": "Kolumbia (czas standardowy)", "AKST": "Alaska (czas standardowy)", "CHADT": "Chatham (czas letni)", "ACWST": "Czas środkowo-zachodnioaustralijski standardowy", "BT": "Bhutan", "SAST": "Czas południowoafrykański", "HEPM": "Saint-Pierre i Miquelon (czas letni)", "NZDT": "Nowa Zelandia (czas letni)", "TMST": "Turkmenistan (czas letni)", "UYT": "Urugwaj (czas standardowy)", "GFT": "Gujana Francuska", "BOT": "Boliwia", "HAST": "Hawaje-Aleuty (czas standardowy)", "AST": "Czas atlantycki standardowy", "CLT": "Chile (czas standardowy)", "ARST": "Argentyna (czas letni)", "AEDT": "Czas wschodnioaustralijski letni", "MST": "Czas górski standardowy", "LHST": "Lord Howe (czas standardowy)", "HECU": "Kuba (czas letni)", "WIB": "Indonezja Zachodnia", "WART": "Argentyna Zachodnia (czas standardowy)", "AKDT": "Alaska (czas letni)", "∅∅∅": "Azory (czas letni)", "ECT": "Ekwador", "IST": "Czas indyjski", "GMT": "Czas uniwersalny", "CLST": "Chile (czas letni)", "WAST": "Czas zachodnioafrykański letni", "HKT": "Hongkong (czas standardowy)", "LHDT": "Lord Howe (czas letni)", "HNT": "Nowa Fundlandia (czas standardowy)", "SGT": "Singapur", "ACWDT": "Czas środkowo-zachodnioaustralijski letni", "OESZ": "Czas wschodnioeuropejski letni", "HNNOMX": "Meksyk Północno-Zachodni (czas standardowy)", "HAT": "Nowa Fundlandia (czas letni)", "HNPMX": "Meksyk (czas pacyficzny standardowy)", "JST": "Japonia (czas standardowy)", "HKST": "Hongkong (czas letni)", "ACST": "Czas środkowoaustralijski standardowy", "UYST": "Urugwaj (czas letni)", "AWST": "Czas zachodnioaustralijski standardowy", "ADT": "Czas atlantycki letni", "WEZ": "Czas zachodnioeuropejski standardowy", "WESZ": "Czas zachodnioeuropejski letni", "WARST": "Argentyna Zachodnia (czas letni)", "HNOG": "Grenlandia Zachodnia (czas standardowy)", "EDT": "Czas wschodnioamerykański letni", "AEST": "Czas wschodnioaustralijski standardowy", "COST": "Kolumbia (czas letni)", "WAT": "Czas zachodnioafrykański standardowy", "HADT": "Hawaje-Aleuty (czas letni)", "PST": "Czas pacyficzny standardowy", "VET": "Wenezuela", "JDT": "Japonia (czas letni)", "MYT": "Malezja", "WIT": "Indonezja Wschodnia", "CDT": "Czas środkowoamerykański letni", "NZST": "Nowa Zelandia (czas standardowy)", "HENOMX": "Meksyk Północno-Zachodni (czas letni)", "EAT": "Czas wschodnioafrykański", "MEZ": "Czas środkowoeuropejski standardowy", "HNPM": "Saint-Pierre i Miquelon (czas standardowy)"},
}
}
diff --git a/pl_PL/pl_PL.go b/pl_PL/pl_PL.go
index 8f187448..4a2ee08a 100644
--- a/pl_PL/pl_PL.go
+++ b/pl_PL/pl_PL.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"p.n.e.", "n.e."},
erasNarrow: []string{"", ""},
erasWide: []string{"przed naszą erą", "naszej ery"},
- timezones: map[string]string{"HKST": "Hongkong (czas letni)", "NZDT": "Nowa Zelandia (czas letni)", "∅∅∅": "Czas amazoński letni", "OESZ": "Czas wschodnioeuropejski letni", "ECT": "Ekwador", "COST": "Kolumbia (czas letni)", "BT": "Bhutan", "SRT": "Surinam", "CHADT": "Chatham (czas letni)", "JST": "Japonia (czas standardowy)", "UYT": "Urugwaj (czas standardowy)", "AKDT": "Alaska (czas letni)", "HAT": "Nowa Fundlandia (czas letni)", "HKT": "Hongkong (czas standardowy)", "SAST": "Czas południowoafrykański", "WAT": "Czas zachodnioafrykański standardowy", "HNCU": "Kuba (czas standardowy)", "MDT": "MDT", "HNPM": "Saint-Pierre i Miquelon (czas standardowy)", "BOT": "Boliwia", "AKST": "Alaska (czas standardowy)", "AWST": "Czas zachodnioaustralijski standardowy", "MEZ": "Czas środkowoeuropejski standardowy", "HNEG": "Grenlandia Wschodnia (czas standardowy)", "ACST": "Czas środkowoaustralijski standardowy", "UYST": "Urugwaj (czas letni)", "ARST": "Argentyna (czas letni)", "AEDT": "Czas wschodnioaustralijski letni", "CHAST": "Chatham (czas standardowy)", "EAT": "Czas wschodnioafrykański", "GMT": "Czas uniwersalny", "PST": "Czas pacyficzny standardowy", "IST": "Czas indyjski", "HEEG": "Grenlandia Wschodnia (czas letni)", "WART": "Argentyna Zachodnia (czas standardowy)", "SGT": "Singapur", "MST": "MST", "WESZ": "Czas zachodnioeuropejski letni", "HEOG": "Grenlandia Zachodnia (czas letni)", "WEZ": "Czas zachodnioeuropejski standardowy", "ACWST": "Czas środkowo-zachodnioaustralijski standardowy", "ChST": "Czamorro", "WAST": "Czas zachodnioafrykański letni", "COT": "Kolumbia (czas standardowy)", "HENOMX": "Meksyk Północno-Zachodni (czas letni)", "GYT": "Gujana", "WIT": "Indonezja Wschodnia", "MESZ": "Czas środkowoeuropejski letni", "HAST": "Hawaje-Aleuty (czas standardowy)", "PDT": "Czas pacyficzny letni", "CLT": "Chile (czas standardowy)", "JDT": "Japonia (czas letni)", "HNNOMX": "Meksyk Północno-Zachodni (czas standardowy)", "EST": "Czas wschodnioamerykański standardowy", "ADT": "Czas atlantycki letni", "MYT": "Malezja", "HNPMX": "Meksyk (czas pacyficzny standardowy)", "HADT": "Hawaje-Aleuty (czas letni)", "ART": "Argentyna (czas standardowy)", "CLST": "Chile (czas letni)", "CST": "Czas środkowoamerykański standardowy", "VET": "Wenezuela", "AST": "Czas atlantycki standardowy", "WIB": "Indonezja Zachodnia", "GFT": "Gujana Francuska", "TMT": "Turkmenistan (czas standardowy)", "AWDT": "Czas zachodnioaustralijski letni", "WITA": "Indonezja Środkowa", "NZST": "Nowa Zelandia (czas standardowy)", "CAT": "Czas środkowoafrykański", "OEZ": "Czas wschodnioeuropejski standardowy", "EDT": "Czas wschodnioamerykański letni", "HEPMX": "Meksyk (czas pacyficzny letni)", "ACWDT": "Czas środkowo-zachodnioaustralijski letni", "HNOG": "Grenlandia Zachodnia (czas standardowy)", "ACDT": "Czas środkowoaustralijski letni", "WARST": "Argentyna Zachodnia (czas letni)", "LHDT": "Lord Howe (czas letni)", "LHST": "Lord Howe (czas standardowy)", "TMST": "Turkmenistan (czas letni)", "HECU": "Kuba (czas letni)", "CDT": "Czas środkowoamerykański letni", "HNT": "Nowa Fundlandia (czas standardowy)", "AEST": "Czas wschodnioaustralijski standardowy", "HEPM": "Saint-Pierre i Miquelon (czas letni)"},
+ timezones: map[string]string{"CST": "Czas środkowoamerykański standardowy", "ECT": "Ekwador", "GYT": "Gujana", "ACWDT": "Czas środkowo-zachodnioaustralijski letni", "ACDT": "Czas środkowoaustralijski letni", "HNPMX": "Meksyk (czas pacyficzny standardowy)", "EAT": "Czas wschodnioafrykański", "CDT": "Czas środkowoamerykański letni", "BOT": "Boliwia", "CHAST": "Chatham (czas standardowy)", "HNCU": "Kuba (czas standardowy)", "AWST": "Czas zachodnioaustralijski standardowy", "OESZ": "Czas wschodnioeuropejski letni", "TMST": "Turkmenistan (czas letni)", "EDT": "Czas wschodnioamerykański letni", "HAT": "Nowa Fundlandia (czas letni)", "WITA": "Indonezja Środkowa", "HEPMX": "Meksyk (czas pacyficzny letni)", "AWDT": "Czas zachodnioaustralijski letni", "JDT": "Japonia (czas letni)", "ADT": "Czas atlantycki letni", "WEZ": "Czas zachodnioeuropejski standardowy", "MYT": "Malezja", "WARST": "Argentyna Zachodnia (czas letni)", "TMT": "Turkmenistan (czas standardowy)", "ACST": "Czas środkowoaustralijski standardowy", "HEPM": "Saint-Pierre i Miquelon (czas letni)", "NZST": "Nowa Zelandia (czas standardowy)", "JST": "Japonia (czas standardowy)", "∅∅∅": "Czas amazoński letni", "MEZ": "Czas środkowoeuropejski standardowy", "HKST": "Hongkong (czas letni)", "CHADT": "Chatham (czas letni)", "IST": "Czas indyjski", "ARST": "Argentyna (czas letni)", "HKT": "Hongkong (czas standardowy)", "COT": "Kolumbia (czas standardowy)", "HNT": "Nowa Fundlandia (czas standardowy)", "HECU": "Kuba (czas letni)", "WIB": "Indonezja Zachodnia", "PDT": "Czas pacyficzny letni", "HNOG": "Grenlandia Zachodnia (czas standardowy)", "HNEG": "Grenlandia Wschodnia (czas standardowy)", "OEZ": "Czas wschodnioeuropejski standardowy", "COST": "Kolumbia (czas letni)", "HEEG": "Grenlandia Wschodnia (czas letni)", "AEDT": "Czas wschodnioaustralijski letni", "LHST": "Lord Howe (czas standardowy)", "VET": "Wenezuela", "HNNOMX": "Meksyk Północno-Zachodni (czas standardowy)", "AKST": "Alaska (czas standardowy)", "ChST": "Czamorro", "CLT": "Chile (czas standardowy)", "CLST": "Chile (czas letni)", "AEST": "Czas wschodnioaustralijski standardowy", "UYT": "Urugwaj (czas standardowy)", "UYST": "Urugwaj (czas letni)", "HNPM": "Saint-Pierre i Miquelon (czas standardowy)", "HADT": "Hawaje-Aleuty (czas letni)", "NZDT": "Nowa Zelandia (czas letni)", "SRT": "Surinam", "WART": "Argentyna Zachodnia (czas standardowy)", "CAT": "Czas środkowoafrykański", "MESZ": "Czas środkowoeuropejski letni", "GMT": "Czas uniwersalny", "ART": "Argentyna (czas standardowy)", "WAST": "Czas zachodnioafrykański letni", "AKDT": "Alaska (czas letni)", "WIT": "Indonezja Wschodnia", "ACWST": "Czas środkowo-zachodnioaustralijski standardowy", "WESZ": "Czas zachodnioeuropejski letni", "MDT": "MDT", "EST": "Czas wschodnioamerykański standardowy", "WAT": "Czas zachodnioafrykański standardowy", "SAST": "Czas południowoafrykański", "HEOG": "Grenlandia Zachodnia (czas letni)", "AST": "Czas atlantycki standardowy", "HENOMX": "Meksyk Północno-Zachodni (czas letni)", "BT": "Bhutan", "SGT": "Singapur", "PST": "Czas pacyficzny standardowy", "GFT": "Gujana Francuska", "LHDT": "Lord Howe (czas letni)", "HAST": "Hawaje-Aleuty (czas standardowy)", "MST": "MST"},
}
}
diff --git a/prg/prg.go b/prg/prg.go
index cba023ce..9096a7f9 100644
--- a/prg/prg.go
+++ b/prg/prg.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"LHDT": "LHDT", "ACDT": "ACDT", "COST": "COST", "MST": "MST", "WESZ": "Wakkariskas Eurōpas daggas kerdā", "HNT": "HNT", "TMT": "TMT", "UYST": "UYST", "AWDT": "AWDT", "HNPM": "HNPM", "NZST": "NZST", "SAST": "SAST", "AKDT": "AKDT", "HADT": "HADT", "HNOG": "HNOG", "JDT": "JDT", "HNEG": "HNEG", "BT": "BT", "PDT": "Pacīfiskas Amērikas daggas kerdā", "MEZ": "Centrālas Eurōpas zēimas kerdā", "GFT": "GFT", "WAT": "WAT", "AKST": "AKST", "ACWDT": "ACWDT", "IST": "IST", "NZDT": "NZDT", "TMST": "TMST", "WART": "WART", "WARST": "WARST", "EDT": "Dēiniskas Amērikas daggas kerdā", "CDT": "Centrālas Amērikas daggas kerdā", "ART": "ART", "ECT": "ECT", "CAT": "CAT", "HAST": "HAST", "CLST": "CLST", "ChST": "ChST", "WITA": "WITA", "CHAST": "CHAST", "BOT": "BOT", "HEEG": "HEEG", "OESZ": "Dēiniskas Eurōpas daggas kerdā", "HNCU": "HNCU", "UYT": "UYT", "ACWST": "ACWST", "HENOMX": "HENOMX", "CLT": "CLT", "HEPMX": "HEPMX", "ADT": "Atlāntiska daggas kerdā", "HEPM": "HEPM", "SRT": "SRT", "WEZ": "Wakkariskas Eurōpas zēimas kerdā", "AWST": "AWST", "CHADT": "CHADT", "WAST": "WAST", "CST": "Centrālas Amērikas zēimas kerdā", "WIB": "WIB", "VET": "VET", "GYT": "GYT", "HNNOMX": "HNNOMX", "HECU": "HECU", "∅∅∅": "∅∅∅", "MDT": "MDT", "HKST": "HKST", "SGT": "SGT", "HAT": "HAT", "PST": "Pacīfiskas Amērikas zēimas kerdā", "LHST": "LHST", "AST": "Atlāntiska zēimas kerdā", "ARST": "ARST", "HKT": "HKT", "JST": "JST", "EAT": "EAT", "MYT": "MYT", "HEOG": "HEOG", "AEST": "AEST", "WIT": "WIT", "AEDT": "AEDT", "MESZ": "Centrālas Eurōpas daggas kerdā", "ACST": "ACST", "OEZ": "Dēiniskas Eurōpas zēimas kerdā", "GMT": "Greenwich kerdā", "HNPMX": "HNPMX", "EST": "Dēiniskas Amērikas zēimas kerdā", "COT": "COT"},
+ timezones: map[string]string{"AEDT": "AEDT", "WIT": "WIT", "CAT": "CAT", "CLST": "CLST", "HNPMX": "HNPMX", "HAST": "HAST", "HEPMX": "HEPMX", "HNCU": "HNCU", "ECT": "ECT", "WARST": "WARST", "HNPM": "HNPM", "HECU": "HECU", "HADT": "HADT", "ADT": "Atlāntiska daggas kerdā", "OESZ": "Dēiniskas Eurōpas daggas kerdā", "NZST": "NZST", "WESZ": "Wakkariskas Eurōpas daggas kerdā", "WART": "WART", "TMT": "TMT", "HEOG": "HEOG", "HKT": "HKT", "COST": "COST", "HEEG": "HEEG", "AKDT": "AKDT", "ChST": "ChST", "LHST": "LHST", "SGT": "SGT", "MDT": "MDT", "EST": "Dēiniskas Amērikas zēimas kerdā", "IST": "IST", "OEZ": "Dēiniskas Eurōpas zēimas kerdā", "AST": "Atlāntiska zēimas kerdā", "EDT": "Dēiniskas Amērikas daggas kerdā", "∅∅∅": "∅∅∅", "WITA": "WITA", "AWDT": "AWDT", "ACWST": "ACWST", "MEZ": "Centrālas Eurōpas zēimas kerdā", "JST": "JST", "MYT": "MYT", "HNOG": "HNOG", "HENOMX": "HENOMX", "AKST": "AKST", "HEPM": "HEPM", "PST": "Pacīfiskas Amērikas zēimas kerdā", "PDT": "Pacīfiskas Amērikas daggas kerdā", "ARST": "ARST", "BT": "BT", "HNEG": "HNEG", "AEST": "AEST", "UYST": "UYST", "AWST": "AWST", "CHADT": "CHADT", "WEZ": "Wakkariskas Eurōpas zēimas kerdā", "TMST": "TMST", "GFT": "GFT", "NZDT": "NZDT", "VET": "VET", "CLT": "CLT", "SAST": "SAST", "WIB": "WIB", "CST": "Centrālas Amērikas zēimas kerdā", "BOT": "BOT", "ART": "ART", "HAT": "HAT", "CDT": "Centrālas Amērikas daggas kerdā", "CHAST": "CHAST", "MST": "MST", "WAT": "WAT", "WAST": "WAST", "HNT": "HNT", "GMT": "Greenwich kerdā", "HKST": "HKST", "SRT": "SRT", "ACWDT": "ACWDT", "MESZ": "Centrālas Eurōpas daggas kerdā", "JDT": "JDT", "EAT": "EAT", "ACST": "ACST", "ACDT": "ACDT", "COT": "COT", "HNNOMX": "HNNOMX", "UYT": "UYT", "LHDT": "LHDT", "GYT": "GYT"},
}
}
@@ -96,10 +96,10 @@ func (prg *prg) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
f := locales.F(n, v)
- nMod10 := math.Mod(n, 10)
nMod100 := math.Mod(n, 100)
- fMod100 := f % 100
+ nMod10 := math.Mod(n, 10)
fMod10 := f % 10
+ fMod100 := f % 100
if (nMod10 == 0) || (nMod100 >= 11 && nMod100 <= 19) || (v == 2 && fMod100 >= 11 && fMod100 <= 19) {
return locales.PluralRuleZero
diff --git a/prg_001/prg_001.go b/prg_001/prg_001.go
index d902df97..4e60e46b 100644
--- a/prg_001/prg_001.go
+++ b/prg_001/prg_001.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"WART": "WART", "HAST": "HAST", "WEZ": "Wakkariskas Eurōpas zēimas kerdā", "HNT": "HNT", "HNOG": "HNOG", "NZST": "NZST", "CHADT": "CHADT", "OESZ": "Dēiniskas Eurōpas daggas kerdā", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HECU": "HECU", "UYST": "UYST", "ARST": "ARST", "NZDT": "NZDT", "CLST": "CLST", "AWST": "AWST", "MESZ": "Centrālas Eurōpas daggas kerdā", "JST": "JST", "JDT": "JDT", "MYT": "MYT", "HEOG": "HEOG", "CHAST": "CHAST", "EAT": "EAT", "WARST": "WARST", "AKDT": "AKDT", "HKT": "HKT", "GFT": "GFT", "ACST": "ACST", "COT": "COT", "MST": "Amērikas gārban zēimas kerdā", "VET": "VET", "WIT": "WIT", "CST": "Centrālas Amērikas zēimas kerdā", "AST": "Atlāntiska zēimas kerdā", "ADT": "Atlāntiska daggas kerdā", "ACWST": "ACWST", "HEPM": "HEPM", "CDT": "Centrālas Amērikas daggas kerdā", "ART": "ART", "HNPM": "HNPM", "MEZ": "Centrālas Eurōpas zēimas kerdā", "TMST": "TMST", "SRT": "SRT", "PST": "Pacīfiskas Amērikas zēimas kerdā", "SAST": "SAST", "WAT": "WAT", "BT": "BT", "WESZ": "Wakkariskas Eurōpas daggas kerdā", "HEEG": "HEEG", "EST": "Dēiniskas Amērikas zēimas kerdā", "EDT": "Dēiniskas Amērikas daggas kerdā", "WIB": "WIB", "PDT": "Pacīfiskas Amērikas daggas kerdā", "AEST": "AEST", "AEDT": "AEDT", "WAST": "WAST", "SGT": "SGT", "HEPMX": "HEPMX", "GMT": "Greenwich kerdā", "HADT": "HADT", "LHST": "LHST", "IST": "IST", "CLT": "CLT", "∅∅∅": "∅∅∅", "TMT": "TMT", "CAT": "CAT", "GYT": "GYT", "HAT": "HAT", "BOT": "BOT", "ECT": "ECT", "UYT": "UYT", "LHDT": "LHDT", "HNEG": "HNEG", "OEZ": "Dēiniskas Eurōpas zēimas kerdā", "COST": "COST", "MDT": "Amērikas gārban daggas kerdā", "WITA": "WITA", "ChST": "ChST", "ACDT": "ACDT", "HNPMX": "HNPMX", "AKST": "AKST", "ACWDT": "ACWDT", "AWDT": "AWDT", "HKST": "HKST", "HNCU": "HNCU"},
+ timezones: map[string]string{"MESZ": "Centrālas Eurōpas daggas kerdā", "AEDT": "AEDT", "WITA": "WITA", "NZST": "NZST", "TMT": "TMT", "CHADT": "CHADT", "HEOG": "HEOG", "WAST": "WAST", "ACST": "ACST", "AKST": "AKST", "CDT": "Centrālas Amērikas daggas kerdā", "WIT": "WIT", "PST": "Pacīfiskas Amērikas zēimas kerdā", "EDT": "Dēiniskas Amērikas daggas kerdā", "HNEG": "HNEG", "ChST": "ChST", "HNCU": "HNCU", "MST": "MST", "HNPM": "HNPM", "GYT": "GYT", "HECU": "HECU", "BOT": "BOT", "PDT": "Pacīfiskas Amērikas daggas kerdā", "MDT": "MDT", "EST": "Dēiniskas Amērikas zēimas kerdā", "HKT": "HKT", "WIB": "WIB", "MYT": "MYT", "ACDT": "ACDT", "HENOMX": "HENOMX", "HNT": "HNT", "SRT": "SRT", "SAST": "SAST", "∅∅∅": "∅∅∅", "IST": "IST", "MEZ": "Centrālas Eurōpas zēimas kerdā", "WARST": "WARST", "ADT": "Atlāntiska daggas kerdā", "BT": "BT", "AKDT": "AKDT", "HEPM": "HEPM", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "CST": "Centrālas Amērikas zēimas kerdā", "CHAST": "CHAST", "GMT": "Greenwich kerdā", "OEZ": "Dēiniskas Eurōpas zēimas kerdā", "LHST": "LHST", "SGT": "SGT", "HADT": "HADT", "OESZ": "Dēiniskas Eurōpas daggas kerdā", "WAT": "WAT", "HKST": "HKST", "COT": "COT", "GFT": "GFT", "UYST": "UYST", "LHDT": "LHDT", "AWDT": "AWDT", "NZDT": "NZDT", "CLST": "CLST", "WEZ": "Wakkariskas Eurōpas zēimas kerdā", "ART": "ART", "HNNOMX": "HNNOMX", "HAT": "HAT", "AEST": "AEST", "ECT": "ECT", "JST": "JST", "JDT": "JDT", "WART": "WART", "HNOG": "HNOG", "UYT": "UYT", "HAST": "HAST", "CLT": "CLT", "AST": "Atlāntiska zēimas kerdā", "COST": "COST", "ACWDT": "ACWDT", "ARST": "ARST", "CAT": "CAT", "WESZ": "Wakkariskas Eurōpas daggas kerdā", "AWST": "AWST", "ACWST": "ACWST", "VET": "VET", "TMST": "TMST", "HEEG": "HEEG", "EAT": "EAT"},
}
}
diff --git a/ps/ps.go b/ps/ps.go
index 945febde..d1fb73cf 100644
--- a/ps/ps.go
+++ b/ps/ps.go
@@ -70,7 +70,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"له میلاد وړاندې", "م."},
erasNarrow: []string{"", ""},
erasWide: []string{"له میلاد څخه وړاندې", "له میلاد څخه وروسته"},
- timezones: map[string]string{"OEZ": "OEZ", "ART": "ART", "HNOG": "HNOG", "WITA": "WITA", "SAST": "SAST", "WAT": "WAT", "∅∅∅": "∅∅∅", "TMT": "TMT", "SGT": "SGT", "AST": "AST", "MDT": "MDT", "ACWST": "ACWST", "ACWDT": "ACWDT", "MESZ": "MESZ", "HNT": "HNT", "AWST": "AWST", "AWDT": "AWDT", "IST": "IST", "COT": "COT", "CHAST": "CHAST", "LHDT": "LHDT", "ACDT": "ACDT", "HADT": "HADT", "SRT": "SRT", "HAT": "HAT", "HEPM": "HEPM", "NZDT": "NZDT", "HNCU": "HNCU", "MYT": "MYT", "BOT": "BOT", "GMT": "گرينويچ وخت", "HENOMX": "HENOMX", "CDT": "CDT", "ADT": "ADT", "HAST": "HAST", "MEZ": "MEZ", "CLST": "CLST", "EDT": "EDT", "HEOG": "HEOG", "HNPM": "HNPM", "NZST": "NZST", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "VET": "VET", "LHST": "LHST", "JDT": "JDT", "GFT": "GFT", "WART": "WART", "AEST": "AEST", "ECT": "ECT", "WARST": "WARST", "ACST": "ACST", "HECU": "HECU", "COST": "COST", "WIB": "WIB", "MST": "MST", "WESZ": "د لودیځې اورپا د اوړي وخت", "HKT": "HKT", "JST": "JST", "WAST": "WAST", "EAT": "EAT", "CST": "CST", "UYT": "UYT", "WEZ": "د لودیځې اروپا معیاري وخت", "HKST": "HKST", "AEDT": "AEDT", "AKDT": "AKDT", "WIT": "WIT", "CAT": "CAT", "UYST": "UYST", "HEEG": "HEEG", "ChST": "ChST", "OESZ": "OESZ", "EST": "EST", "GYT": "GYT", "ARST": "ARST", "PST": "PST", "PDT": "PDT", "TMST": "TMST", "HEPMX": "HEPMX", "AKST": "AKST", "BT": "BT", "CHADT": "CHADT", "CLT": "CLT", "HNEG": "HNEG"},
+ timezones: map[string]string{"HAT": "HAT", "HNEG": "HNEG", "CST": "CST", "AWDT": "AWDT", "CAT": "CAT", "BOT": "BOT", "MDT": "MDT", "EST": "EST", "COT": "COT", "HNT": "HNT", "AEDT": "AEDT", "UYT": "UYT", "HECU": "HECU", "ECT": "ECT", "OEZ": "OEZ", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "HNCU": "HNCU", "WIT": "WIT", "WEZ": "د لودیځې اروپا معیاري وخت", "TMST": "TMST", "WAT": "WAT", "HENOMX": "HENOMX", "GFT": "GFT", "SRT": "SRT", "MESZ": "MESZ", "JDT": "JDT", "WART": "WART", "GMT": "گرينويچ وخت", "HEEG": "HEEG", "LHDT": "LHDT", "HEPMX": "HEPMX", "PST": "PST", "HAST": "HAST", "ACWDT": "ACWDT", "NZST": "NZST", "WARST": "WARST", "COST": "COST", "AKST": "AKST", "WIB": "WIB", "AST": "AST", "TMT": "TMT", "HNPMX": "HNPMX", "GYT": "GYT", "VET": "VET", "CLT": "CLT", "EDT": "EDT", "IST": "IST", "WAST": "WAST", "HKST": "HKST", "ACST": "ACST", "ACWST": "ACWST", "HEOG": "HEOG", "ARST": "ARST", "UYST": "UYST", "LHST": "LHST", "CHADT": "CHADT", "SGT": "SGT", "HKT": "HKT", "WITA": "WITA", "HEPM": "HEPM", "EAT": "EAT", "NZDT": "NZDT", "HNOG": "HNOG", "ADT": "ADT", "ACDT": "ACDT", "BT": "BT", "CHAST": "CHAST", "SAST": "SAST", "CDT": "CDT", "ART": "ART", "AEST": "AEST", "HNPM": "HNPM", "AWST": "AWST", "PDT": "PDT", "HNNOMX": "HNNOMX", "ChST": "ChST", "HADT": "HADT", "JST": "JST", "WESZ": "د لودیځې اورپا د اوړي وخت", "MST": "MST", "MEZ": "MEZ", "OESZ": "OESZ", "MYT": "MYT", "CLST": "CLST"},
}
}
diff --git a/ps_AF/ps_AF.go b/ps_AF/ps_AF.go
index 30deab7e..a903dd26 100644
--- a/ps_AF/ps_AF.go
+++ b/ps_AF/ps_AF.go
@@ -70,7 +70,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"له میلاد وړاندې", "م."},
erasNarrow: []string{"", ""},
erasWide: []string{"له میلاد څخه وړاندې", "له میلاد څخه وروسته"},
- timezones: map[string]string{"SAST": "SAST", "MYT": "MYT", "UYST": "UYST", "PDT": "PDT", "AWST": "AWST", "AWDT": "AWDT", "WAST": "WAST", "COST": "COST", "GMT": "گرينويچ وخت", "AEST": "AEST", "HKT": "HKT", "CST": "CST", "CDT": "CDT", "ADT": "ADT", "ACWDT": "ACWDT", "CLT": "CLT", "WART": "WART", "HADT": "HADT", "LHDT": "LHDT", "NZST": "NZST", "OESZ": "OESZ", "MDT": "MDT", "AKST": "AKST", "VET": "VET", "SRT": "SRT", "HAT": "HAT", "CLST": "CLST", "∅∅∅": "∅∅∅", "ACDT": "ACDT", "ECT": "ECT", "CAT": "CAT", "GYT": "GYT", "HEOG": "HEOG", "HNPM": "HNPM", "CHAST": "CHAST", "HEEG": "HEEG", "EST": "EST", "AST": "AST", "UYT": "UYT", "WIT": "WIT", "NZDT": "NZDT", "WAT": "WAT", "HNPMX": "HNPMX", "HNT": "HNT", "COT": "COT", "MST": "MST", "WEZ": "د لودیځې اروپا معیاري وخت", "ACWST": "ACWST", "WITA": "WITA", "CHADT": "CHADT", "TMST": "TMST", "HECU": "HECU", "ART": "ART", "AEDT": "AEDT", "HEPMX": "HEPMX", "WIB": "WIB", "MEZ": "MEZ", "LHST": "LHST", "IST": "IST", "BOT": "BOT", "ACST": "ACST", "HENOMX": "HENOMX", "WESZ": "د لودیځې اورپا د اوړي وخت", "MESZ": "MESZ", "GFT": "GFT", "EAT": "EAT", "HNOG": "HNOG", "PST": "PST", "TMT": "TMT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "HKST": "HKST", "BT": "BT", "ARST": "ARST", "JST": "JST", "JDT": "JDT", "ChST": "ChST", "OEZ": "OEZ", "EDT": "EDT", "HAST": "HAST", "WARST": "WARST", "HNCU": "HNCU", "AKDT": "AKDT", "SGT": "SGT", "HEPM": "HEPM"},
+ timezones: map[string]string{"SAST": "SAST", "MYT": "MYT", "CLST": "CLST", "AST": "AST", "TMST": "TMST", "HNPMX": "HNPMX", "VET": "VET", "WAST": "WAST", "EST": "EST", "HEEG": "HEEG", "SRT": "SRT", "WIT": "WIT", "CHAST": "CHAST", "NZST": "NZST", "HEOG": "HEOG", "HNEG": "HNEG", "BT": "BT", "HNPM": "HNPM", "EAT": "EAT", "BOT": "BOT", "CLT": "CLT", "OESZ": "OESZ", "MST": "MST", "GYT": "GYT", "CHADT": "CHADT", "PST": "PST", "MEZ": "MEZ", "ARST": "ARST", "HNT": "HNT", "HAT": "HAT", "WITA": "WITA", "∅∅∅": "∅∅∅", "LHDT": "LHDT", "WIB": "WIB", "ECT": "ECT", "CAT": "CAT", "WARST": "WARST", "AKDT": "AKDT", "ChST": "ChST", "UYT": "UYT", "LHST": "LHST", "PDT": "PDT", "NZDT": "NZDT", "WEZ": "د لودیځې اروپا معیاري وخت", "GMT": "گرينويچ وخت", "MDT": "MDT", "ACST": "ACST", "AWST": "AWST", "AWDT": "AWDT", "ACWDT": "ACWDT", "ADT": "ADT", "TMT": "TMT", "COST": "COST", "AEDT": "AEDT", "HEPM": "HEPM", "HECU": "HECU", "SGT": "SGT", "HAST": "HAST", "WESZ": "د لودیځې اورپا د اوړي وخت", "ART": "ART", "HEPMX": "HEPMX", "IST": "IST", "HNOG": "HNOG", "HENOMX": "HENOMX", "AKST": "AKST", "HKST": "HKST", "HNNOMX": "HNNOMX", "GFT": "GFT", "HNCU": "HNCU", "CDT": "CDT", "HADT": "HADT", "JDT": "JDT", "WART": "WART", "MESZ": "MESZ", "OEZ": "OEZ", "EDT": "EDT", "ACDT": "ACDT", "COT": "COT", "UYST": "UYST", "CST": "CST", "ACWST": "ACWST", "HKT": "HKT", "WAT": "WAT", "AEST": "AEST", "JST": "JST"},
}
}
diff --git a/pt/pt.go b/pt/pt.go
index 29faf0c4..b89454ea 100644
--- a/pt/pt.go
+++ b/pt/pt.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "depois de Cristo"},
- timezones: map[string]string{"MYT": "Horário da Malásia", "HKT": "Horário Padrão de Hong Kong", "AWST": "Horário Padrão da Austrália Ocidental", "COST": "Horário de Verão da Colômbia", "CST": "Horário Padrão Central", "HKST": "Horário de Verão de Hong Kong", "HNEG": "Horário Padrão da Groelândia Oriental", "MST": "Horário Padrão de Macau", "OESZ": "Horário de Verão da Europa Oriental", "COT": "Horário Padrão da Colômbia", "MDT": "Horário de Verão de Macau", "WITA": "Horário da Indonésia Central", "CHAST": "Horário Padrão de Chatham", "CHADT": "Horário de Verão de Chatham", "EST": "Horário Padrão Oriental", "AKDT": "Horário de Verão do Alasca", "ADT": "Horário de Verão do Atlântico", "BT": "Horário do Butão", "SRT": "Horário do Suriname", "PST": "Horário Padrão do Pacífico", "MEZ": "Horário Padrão da Europa Central", "CLST": "Horário de Verão do Chile", "AEDT": "Horário de Verão da Austrália Oriental", "ACDT": "Horário de Verão da Austrália Central", "HNNOMX": "Horário Padrão do Noroeste do México", "HNT": "Horário Padrão de Terra Nova", "HAT": "Horário de Verão de Terra Nova", "ART": "Horário Padrão da Argentina", "ARST": "Horário de Verão da Argentina", "GFT": "Horário da Guiana Francesa", "TMST": "Horário de Verão do Turcomenistão", "HNOG": "Horário Padrão da Groenlândia Ocidental", "HNCU": "Horário Padrão de Cuba", "CDT": "Horário de Verão Central", "AWDT": "Horário de Verão da Austrália Ocidental", "WAT": "Horário Padrão da África Ocidental", "HENOMX": "Horário de Verão do Noroeste do México", "TMT": "Horário Padrão do Turcomenistão", "BOT": "Horário da Bolívia", "EDT": "Horário de Verão Oriental", "JDT": "Horário de Verão do Japão", "CLT": "Horário Padrão do Chile", "ECT": "Horário do Equador", "AST": "Horário Padrão do Atlântico", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "OEZ": "Horário Padrão da Europa Oriental", "CAT": "Horário da África Central", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "ChST": "Horário de Chamorro", "∅∅∅": "Horário de Verão do Amazonas", "ACST": "Horário Padrão da Austrália Central", "WAST": "Horário de Verão da África Ocidental", "AKST": "Horário Padrão do Alasca", "PDT": "Horário de Verão do Pacífico", "AEST": "Horário Padrão da Austrália Oriental", "NZST": "Horário Padrão da Nova Zelândia", "SAST": "Horário da África do Sul", "HEEG": "Horário de Verão da Groelândia Oriental", "HEPMX": "Horário de Verão do Pacífico do México", "WIT": "Horário da Indonésia Oriental", "LHDT": "Horário de Verão de Lord Howe", "JST": "Horário Padrão do Japão", "GYT": "Horário da Guiana", "WIB": "Horário da Indonésia Ocidental", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "WART": "Horário Padrão da Argentina Ocidental", "GMT": "Horário do Meridiano de Greenwich", "NZDT": "Horário de Verão da Nova Zelândia", "VET": "Horário da Venezuela", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "HEOG": "Horário de Verão da Groenlândia Ocidental", "WEZ": "Horário Padrão da Europa Ocidental", "IST": "Horário Padrão da Índia", "SGT": "Horário Padrão de Cingapura", "HNPMX": "Horário Padrão do Pacífico do México", "UYT": "Horário Padrão do Uruguai", "UYST": "Horário de Verão do Uruguai", "EAT": "Horário da África Oriental", "WARST": "Horário de Verão da Argentina Ocidental", "HECU": "Horário de Verão de Cuba", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "WESZ": "Horário de Verão da Europa Ocidental", "MESZ": "Horário de Verão da Europa Central", "LHST": "Horário Padrão de Lord Howe"},
+ timezones: map[string]string{"∅∅∅": "Horário de Verão dos Açores", "AWDT": "Horário de Verão da Austrália Ocidental", "GMT": "Horário do Meridiano de Greenwich", "AKDT": "Horário de Verão do Alasca", "UYT": "Horário Padrão do Uruguai", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "HKT": "Horário Padrão de Hong Kong", "LHST": "Horário Padrão de Lord Howe", "AWST": "Horário Padrão da Austrália Ocidental", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "MYT": "Horário da Malásia", "WARST": "Horário de Verão da Argentina Ocidental", "TMT": "Horário Padrão do Turcomenistão", "ARST": "Horário de Verão da Argentina", "AKST": "Horário Padrão do Alasca", "SAST": "Horário da África do Sul", "GYT": "Horário da Guiana", "JST": "Horário Padrão do Japão", "NZST": "Horário Padrão da Nova Zelândia", "MESZ": "Horário de Verão da Europa Central", "WEZ": "Horário Padrão da Europa Ocidental", "EDT": "Horário de Verão Oriental", "HAT": "Horário de Verão de Terra Nova", "ChST": "Horário de Chamorro", "HNPMX": "Horário Padrão do Pacífico do México", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "HEEG": "Horário de Verão da Groelândia Oriental", "COST": "Horário de Verão da Colômbia", "HNNOMX": "Horário Padrão do Noroeste do México", "HECU": "Horário de Verão de Cuba", "ECT": "Horário do Equador", "WART": "Horário Padrão da Argentina Ocidental", "MDT": "Horário de Verão de Macau", "WAST": "Horário de Verão da África Ocidental", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "AST": "Horário Padrão do Atlântico", "OEZ": "Horário Padrão da Europa Oriental", "ACST": "Horário Padrão da Austrália Central", "HNEG": "Horário Padrão da Groelândia Oriental", "CAT": "Horário da África Central", "CLST": "Horário de Verão do Chile", "ADT": "Horário de Verão do Atlântico", "UYST": "Horário de Verão do Uruguai", "BT": "Horário do Butão", "VET": "Horário da Venezuela", "CLT": "Horário Padrão do Chile", "AEDT": "Horário de Verão da Austrália Oriental", "MEZ": "Horário Padrão da Europa Central", "OESZ": "Horário de Verão da Europa Oriental", "TMST": "Horário de Verão do Turcomenistão", "MST": "Horário Padrão de Macau", "CST": "Horário Padrão Central", "IST": "Horário Padrão da Índia", "HNOG": "Horário Padrão da Groenlândia Ocidental", "ACDT": "Horário de Verão da Austrália Central", "WITA": "Horário da Indonésia Central", "AEST": "Horário Padrão da Austrália Oriental", "SRT": "Horário do Suriname", "CHAST": "Horário Padrão de Chatham", "HKST": "Horário de Verão de Hong Kong", "SGT": "Horário Padrão de Cingapura", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "JDT": "Horário de Verão do Japão", "WESZ": "Horário de Verão da Europa Ocidental", "EST": "Horário Padrão Oriental", "HEPMX": "Horário de Verão do Pacífico do México", "HNCU": "Horário Padrão de Cuba", "CDT": "Horário de Verão Central", "COT": "Horário Padrão da Colômbia", "HENOMX": "Horário de Verão do Noroeste do México", "BOT": "Horário da Bolívia", "WAT": "Horário Padrão da África Ocidental", "EAT": "Horário da África Oriental", "WIB": "Horário da Indonésia Ocidental", "CHADT": "Horário de Verão de Chatham", "PDT": "Horário de Verão do Pacífico", "NZDT": "Horário de Verão da Nova Zelândia", "HEOG": "Horário de Verão da Groenlândia Ocidental", "ART": "Horário Padrão da Argentina", "HNT": "Horário Padrão de Terra Nova", "LHDT": "Horário de Verão de Lord Howe", "WIT": "Horário da Indonésia Oriental", "PST": "Horário Padrão do Pacífico", "GFT": "Horário da Guiana Francesa"},
}
}
diff --git a/pt_AO/pt_AO.go b/pt_AO/pt_AO.go
index ad7de266..7be3e236 100644
--- a/pt_AO/pt_AO.go
+++ b/pt_AO/pt_AO.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "depois de Cristo"},
- timezones: map[string]string{"LHDT": "Horário de Verão de Lord Howe", "EST": "Horário Padrão Oriental", "HKST": "Horário de Verão de Hong Kong", "CLT": "Horário Padrão do Chile", "WARST": "Horário de Verão da Argentina Ocidental", "BT": "Horário do Butão", "PST": "Horário Padrão do Pacífico", "WITA": "Horário da Indonésia Central", "SRT": "Horário do Suriname", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "SAST": "Horário da África do Sul", "CLST": "Horário de Verão do Chile", "HNCU": "Horário Padrão de Cuba", "MDT": "Horário de Verão de Macau", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "NZDT": "Horário de Verão da Nova Zelândia", "MST": "Horário Padrão de Macau", "HEPMX": "Horário de Verão do Pacífico do México", "AEST": "Horário Padrão da Austrália Oriental", "COT": "Horário Padrão da Colômbia", "AKST": "Horário Padrão do Alasca", "UYST": "Horário de Verão do Uruguai", "TMST": "Horário de Verão do Turcomenistão", "HENOMX": "Horário de Verão do Noroeste do México", "HNT": "Horário Padrão de Terra Nova", "MEZ": "Horário Padrão da Europa Central", "LHST": "Horário Padrão de Lord Howe", "CHAST": "Horário Padrão de Chatham", "∅∅∅": "Horário de Verão do Amazonas", "GFT": "Horário da Guiana Francesa", "MYT": "Horário da Malásia", "AEDT": "Horário de Verão da Austrália Oriental", "AWST": "Horário Padrão da Austrália Ocidental", "BOT": "Horário da Bolívia", "OESZ": "Horário de Verão da Europa Oriental", "SGT": "Horário Padrão de Cingapura", "EDT": "Horário de Verão Oriental", "HAT": "Horário de Verão de Terra Nova", "ART": "Horário Padrão da Argentina", "NZST": "Horário Padrão da Nova Zelândia", "IST": "Horário Padrão da Índia", "JDT": "Horário de Verão do Japão", "WART": "Horário Padrão da Argentina Ocidental", "WESZ": "Horário de Verão da Europa Ocidental", "TMT": "Horário Padrão do Turcomenistão", "ACDT": "Horário de Verão da Austrália Central", "ADT": "Horário de Verão do Atlântico", "HEOG": "Horário de Verão da Groenlândia Ocidental", "HKT": "Horário Padrão de Hong Kong", "WAST": "Horário de Verão da África Ocidental", "OEZ": "Horário Padrão da Europa Oriental", "CDT": "Horário de Verão Central", "WIT": "Horário da Indonésia Oriental", "PDT": "Horário de Verão do Pacífico", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "HNOG": "Horário Padrão da Groenlândia Ocidental", "AWDT": "Horário de Verão da Austrália Ocidental", "JST": "Horário Padrão do Japão", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "CHADT": "Horário de Verão de Chatham", "ChST": "Horário de Chamorro", "HEEG": "Horário de Verão da Groelândia Oriental", "EAT": "Horário da África Oriental", "HNNOMX": "Horário Padrão do Noroeste do México", "WIB": "Horário da Indonésia Ocidental", "VET": "Horário da Venezuela", "COST": "Horário de Verão da Colômbia", "HNPMX": "Horário Padrão do Pacífico do México", "WEZ": "Horário Padrão da Europa Ocidental", "ARST": "Horário de Verão da Argentina", "HNEG": "Horário Padrão da Groelândia Oriental", "CAT": "Horário da África Central", "WAT": "Horário Padrão da África Ocidental", "ECT": "Horário do Equador", "AKDT": "Horário de Verão do Alasca", "AST": "Horário Padrão do Atlântico", "GYT": "Horário da Guiana", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "MESZ": "Horário de Verão da Europa Central", "ACST": "Horário Padrão da Austrália Central", "GMT": "Horário do Meridiano de Greenwich", "HECU": "Horário de Verão de Cuba", "CST": "Horário Padrão Central", "UYT": "Horário Padrão do Uruguai"},
+ timezones: map[string]string{"AST": "Horário Padrão do Atlântico", "GMT": "Horário do Meridiano de Greenwich", "MST": "Horário Padrão de Macau", "ARST": "Horário de Verão da Argentina", "GYT": "Horário da Guiana", "WIB": "Horário da Indonésia Ocidental", "CHADT": "Horário de Verão de Chatham", "MEZ": "Horário Padrão da Europa Central", "UYT": "Horário Padrão do Uruguai", "SAST": "Horário da África do Sul", "LHST": "Horário Padrão de Lord Howe", "HEPMX": "Horário de Verão do Pacífico do México", "AWST": "Horário Padrão da Austrália Ocidental", "COT": "Horário Padrão da Colômbia", "TMST": "Horário de Verão do Turcomenistão", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "HNPMX": "Horário Padrão do Pacífico do México", "HNCU": "Horário Padrão de Cuba", "MESZ": "Horário de Verão da Europa Central", "COST": "Horário de Verão da Colômbia", "WITA": "Horário da Indonésia Central", "HEOG": "Horário de Verão da Groenlândia Ocidental", "ART": "Horário Padrão da Argentina", "ACDT": "Horário de Verão da Austrália Central", "WIT": "Horário da Indonésia Oriental", "IST": "Horário Padrão da Índia", "NZDT": "Horário de Verão da Nova Zelândia", "CLST": "Horário de Verão do Chile", "HNEG": "Horário Padrão da Groelândia Oriental", "HEEG": "Horário de Verão da Groelândia Oriental", "GFT": "Horário da Guiana Francesa", "ChST": "Horário de Chamorro", "∅∅∅": "Horário de Verão de Brasília", "ECT": "Horário do Equador", "VET": "Horário da Venezuela", "MYT": "Horário da Malásia", "BOT": "Horário da Bolívia", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "TMT": "Horário Padrão do Turcomenistão", "HKST": "Horário de Verão de Hong Kong", "CST": "Horário Padrão Central", "CAT": "Horário da África Central", "JDT": "Horário de Verão do Japão", "WART": "Horário Padrão da Argentina Ocidental", "EST": "Horário Padrão Oriental", "HNT": "Horário Padrão de Terra Nova", "EAT": "Horário da África Oriental", "HECU": "Horário de Verão de Cuba", "CDT": "Horário de Verão Central", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "AEST": "Horário Padrão da Austrália Oriental", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "WESZ": "Horário de Verão da Europa Ocidental", "WAT": "Horário Padrão da África Ocidental", "HENOMX": "Horário de Verão do Noroeste do México", "SRT": "Horário do Suriname", "CHAST": "Horário Padrão de Chatham", "PST": "Horário Padrão do Pacífico", "PDT": "Horário de Verão do Pacífico", "WEZ": "Horário Padrão da Europa Ocidental", "UYST": "Horário de Verão do Uruguai", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "LHDT": "Horário de Verão de Lord Howe", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "OEZ": "Horário Padrão da Europa Oriental", "HAT": "Horário de Verão de Terra Nova", "AEDT": "Horário de Verão da Austrália Oriental", "SGT": "Horário Padrão de Cingapura", "HNOG": "Horário Padrão da Groenlândia Ocidental", "AKDT": "Horário de Verão do Alasca", "EDT": "Horário de Verão Oriental", "ACST": "Horário Padrão da Austrália Central", "BT": "Horário do Butão", "WARST": "Horário de Verão da Argentina Ocidental", "CLT": "Horário Padrão do Chile", "ADT": "Horário de Verão do Atlântico", "MDT": "Horário de Verão de Macau", "NZST": "Horário Padrão da Nova Zelândia", "OESZ": "Horário de Verão da Europa Oriental", "WAST": "Horário de Verão da África Ocidental", "AKST": "Horário Padrão do Alasca", "AWDT": "Horário de Verão da Austrália Ocidental", "JST": "Horário Padrão do Japão", "HKT": "Horário Padrão de Hong Kong", "HNNOMX": "Horário Padrão do Noroeste do México"},
}
}
diff --git a/pt_BR/pt_BR.go b/pt_BR/pt_BR.go
index 35d54773..8e6d02f1 100644
--- a/pt_BR/pt_BR.go
+++ b/pt_BR/pt_BR.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "depois de Cristo"},
- timezones: map[string]string{"LHST": "Horário Padrão de Lord Howe", "ACDT": "Horário de Verão da Austrália Central", "WAST": "Horário de Verão da África Ocidental", "PDT": "Horário de Verão do Pacífico", "WITA": "Horário da Indonésia Central", "WAT": "Horário Padrão da África Ocidental", "HNNOMX": "Horário Padrão do Noroeste do México", "ART": "Horário Padrão da Argentina", "AWDT": "Horário de Verão da Austrália Ocidental", "MESZ": "Horário de Verão da Europa Central", "HNCU": "Horário Padrão de Cuba", "AST": "Horário Padrão do Atlântico", "BT": "Horário do Butão", "HKST": "Horário de Verão de Hong Kong", "GMT": "Horário do Meridiano de Greenwich", "EST": "Horário Padrão Oriental", "UYST": "Horário de Verão do Uruguai", "HEOG": "Horário de Verão da Groenlândia Ocidental", "∅∅∅": "Horário de Verão do Amazonas", "TMT": "Horário Padrão do Turcomenistão", "WARST": "Horário de Verão da Argentina Ocidental", "COT": "Horário Padrão da Colômbia", "CHADT": "Horário de Verão de Chatham", "MDT": "Horário de Verão de Macau", "HNPMX": "Horário Padrão do Pacífico do México", "MYT": "Horário da Malásia", "UYT": "Horário Padrão do Uruguai", "CLST": "Horário de Verão do Chile", "ACST": "Horário Padrão da Austrália Central", "CAT": "Horário da África Central", "HECU": "Horário de Verão de Cuba", "CDT": "Horário de Verão Central", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "AEDT": "Horário de Verão da Austrália Oriental", "MEZ": "Horário Padrão da Europa Central", "NZST": "Horário Padrão da Nova Zelândia", "SAST": "Horário da África do Sul", "CLT": "Horário Padrão do Chile", "JST": "Horário Padrão do Japão", "HAT": "Horário de Verão de Terra Nova", "BOT": "Horário da Bolívia", "COST": "Horário de Verão da Colômbia", "HENOMX": "Horário de Verão do Noroeste do México", "AKDT": "Horário de Verão do Alasca", "TMST": "Horário de Verão do Turcomenistão", "NZDT": "Horário de Verão da Nova Zelândia", "WIT": "Horário da Indonésia Oriental", "WESZ": "Horário de Verão da Europa Ocidental", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "JDT": "Horário de Verão do Japão", "ChST": "Horário de Chamorro", "MST": "Horário Padrão de Macau", "GYT": "Horário da Guiana", "HEEG": "Horário de Verão da Groelândia Oriental", "ADT": "Horário de Verão do Atlântico", "ARST": "Horário de Verão da Argentina", "HNEG": "Horário Padrão da Groelândia Oriental", "ECT": "Horário do Equador", "SGT": "Horário Padrão de Cingapura", "VET": "Horário da Venezuela", "WART": "Horário Padrão da Argentina Ocidental", "CST": "Horário Padrão Central", "AWST": "Horário Padrão da Austrália Ocidental", "HNOG": "Horário Padrão da Groenlândia Ocidental", "AKST": "Horário Padrão do Alasca", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "WEZ": "Horário Padrão da Europa Ocidental", "HNT": "Horário Padrão de Terra Nova", "HKT": "Horário Padrão de Hong Kong", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "IST": "Horário Padrão da Índia", "EAT": "Horário da África Oriental", "OESZ": "Horário de Verão da Europa Oriental", "SRT": "Horário do Suriname", "CHAST": "Horário Padrão de Chatham", "WIB": "Horário da Indonésia Ocidental", "PST": "Horário Padrão do Pacífico", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "AEST": "Horário Padrão da Austrália Oriental", "GFT": "Horário da Guiana Francesa", "OEZ": "Horário Padrão da Europa Oriental", "EDT": "Horário de Verão Oriental", "HEPMX": "Horário de Verão do Pacífico do México", "LHDT": "Horário de Verão de Lord Howe"},
+ timezones: map[string]string{"JDT": "Horário de Verão do Japão", "AST": "Horário Padrão do Atlântico", "ARST": "Horário de Verão da Argentina", "SRT": "Horário do Suriname", "CDT": "Horário de Verão Central", "NZDT": "Horário de Verão da Nova Zelândia", "ACST": "Horário Padrão da Austrália Central", "HNNOMX": "Horário Padrão do Noroeste do México", "LHST": "Horário Padrão de Lord Howe", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "WART": "Horário Padrão da Argentina Ocidental", "HEPMX": "Horário de Verão do Pacífico do México", "WARST": "Horário de Verão da Argentina Ocidental", "BT": "Horário do Butão", "HAT": "Horário de Verão de Terra Nova", "UYT": "Horário Padrão do Uruguai", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "TMST": "Horário de Verão do Turcomenistão", "WAT": "Horário Padrão da África Ocidental", "GFT": "Horário da Guiana Francesa", "PST": "Horário Padrão do Pacífico", "CAT": "Horário da África Central", "HNT": "Horário Padrão de Terra Nova", "AKST": "Horário Padrão do Alasca", "CST": "Horário Padrão Central", "AEDT": "Horário de Verão da Austrália Oriental", "EAT": "Horário da África Oriental", "ACDT": "Horário de Verão da Austrália Central", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "HKST": "Horário de Verão de Hong Kong", "COT": "Horário Padrão da Colômbia", "GYT": "Horário da Guiana", "AWST": "Horário Padrão da Austrália Ocidental", "BOT": "Horário da Bolívia", "AKDT": "Horário de Verão do Alasca", "HNCU": "Horário Padrão de Cuba", "EDT": "Horário de Verão Oriental", "HECU": "Horário de Verão de Cuba", "WESZ": "Horário de Verão da Europa Ocidental", "HKT": "Horário Padrão de Hong Kong", "HNEG": "Horário Padrão da Groelândia Oriental", "WITA": "Horário da Indonésia Central", "ChST": "Horário de Chamorro", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "PDT": "Horário de Verão do Pacífico", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "SGT": "Horário Padrão de Cingapura", "ECT": "Horário do Equador", "CLT": "Horário Padrão do Chile", "∅∅∅": "Horário de Verão do Acre", "UYST": "Horário de Verão do Uruguai", "CHAST": "Horário Padrão de Chatham", "SAST": "Horário da África do Sul", "WAST": "Horário de Verão da África Ocidental", "COST": "Horário de Verão da Colômbia", "HNPMX": "Horário Padrão do Pacífico do México", "WIB": "Horário da Indonésia Ocidental", "HEOG": "Horário de Verão da Groenlândia Ocidental", "OESZ": "Horário de Verão da Europa Oriental", "AEST": "Horário Padrão da Austrália Oriental", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "LHDT": "Horário de Verão de Lord Howe", "IST": "Horário Padrão da Índia", "NZST": "Horário Padrão da Nova Zelândia", "MESZ": "Horário de Verão da Europa Central", "ADT": "Horário de Verão do Atlântico", "MYT": "Horário da Malásia", "WIT": "Horário da Indonésia Oriental", "AWDT": "Horário de Verão da Austrália Ocidental", "CHADT": "Horário de Verão de Chatham", "TMT": "Horário Padrão do Turcomenistão", "OEZ": "Horário Padrão da Europa Oriental", "GMT": "Horário do Meridiano de Greenwich", "HENOMX": "Horário de Verão do Noroeste do México", "HEEG": "Horário de Verão da Groelândia Oriental", "MEZ": "Horário Padrão da Europa Central", "VET": "Horário da Venezuela", "CLST": "Horário de Verão do Chile", "HNOG": "Horário Padrão da Groenlândia Ocidental", "WEZ": "Horário Padrão da Europa Ocidental", "ART": "Horário Padrão da Argentina", "EST": "Horário Padrão Oriental", "MST": "Horário Padrão da Montanha", "MDT": "Horário de Verão da Montanha", "JST": "Horário Padrão do Japão"},
}
}
diff --git a/pt_CH/pt_CH.go b/pt_CH/pt_CH.go
index 03fd76ff..33452147 100644
--- a/pt_CH/pt_CH.go
+++ b/pt_CH/pt_CH.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "depois de Cristo"},
- timezones: map[string]string{"CLST": "Horário de Verão do Chile", "GFT": "Horário da Guiana Francesa", "GMT": "Horário do Meridiano de Greenwich", "ChST": "Horário de Chamorro", "ACST": "Horário Padrão da Austrália Central", "COST": "Horário de Verão da Colômbia", "HKST": "Horário de Verão de Hong Kong", "CLT": "Horário Padrão do Chile", "WAST": "Horário de Verão da África Ocidental", "EST": "Horário Padrão Oriental", "HNPMX": "Horário Padrão do Pacífico do México", "PDT": "Horário de Verão do Pacífico", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "MESZ": "Horário de Verão da Europa Central", "WAT": "Horário Padrão da África Ocidental", "WARST": "Horário de Verão da Argentina Ocidental", "HECU": "Horário de Verão de Cuba", "AKST": "Horário Padrão do Alasca", "AKDT": "Horário de Verão do Alasca", "VET": "Horário da Venezuela", "ARST": "Horário de Verão da Argentina", "CHAST": "Horário Padrão de Chatham", "CAT": "Horário da África Central", "EDT": "Horário de Verão Oriental", "MST": "Horário Padrão de Macau", "MYT": "Horário da Malásia", "BT": "Horário do Butão", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "LHDT": "Horário de Verão de Lord Howe", "COT": "Horário Padrão da Colômbia", "SGT": "Horário Padrão de Cingapura", "AST": "Horário Padrão do Atlântico", "UYST": "Horário de Verão do Uruguai", "SRT": "Horário do Suriname", "TMT": "Horário Padrão do Turcomenistão", "WART": "Horário Padrão da Argentina Ocidental", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "AWDT": "Horário de Verão da Austrália Ocidental", "IST": "Horário Padrão da Índia", "JST": "Horário Padrão do Japão", "TMST": "Horário de Verão do Turcomenistão", "ECT": "Horário do Equador", "WIB": "Horário da Indonésia Ocidental", "BOT": "Horário da Bolívia", "EAT": "Horário da África Oriental", "HENOMX": "Horário de Verão do Noroeste do México", "MDT": "Horário de Verão de Macau", "∅∅∅": "Horário de Verão do Amazonas", "HEEG": "Horário de Verão da Groelândia Oriental", "OEZ": "Horário Padrão da Europa Oriental", "HEPMX": "Horário de Verão do Pacífico do México", "ADT": "Horário de Verão do Atlântico", "HAT": "Horário de Verão de Terra Nova", "PST": "Horário Padrão do Pacífico", "WESZ": "Horário de Verão da Europa Ocidental", "JDT": "Horário de Verão do Japão", "ACDT": "Horário de Verão da Austrália Central", "HNNOMX": "Horário Padrão do Noroeste do México", "HNCU": "Horário Padrão de Cuba", "CDT": "Horário de Verão Central", "UYT": "Horário Padrão do Uruguai", "ART": "Horário Padrão da Argentina", "HNOG": "Horário Padrão da Groenlândia Ocidental", "CHADT": "Horário de Verão de Chatham", "LHST": "Horário Padrão de Lord Howe", "NZDT": "Horário de Verão da Nova Zelândia", "CST": "Horário Padrão Central", "GYT": "Horário da Guiana", "HNT": "Horário Padrão de Terra Nova", "HEOG": "Horário de Verão da Groenlândia Ocidental", "WEZ": "Horário Padrão da Europa Ocidental", "WITA": "Horário da Indonésia Central", "HNEG": "Horário Padrão da Groelândia Oriental", "OESZ": "Horário de Verão da Europa Oriental", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "HKT": "Horário Padrão de Hong Kong", "MEZ": "Horário Padrão da Europa Central", "NZST": "Horário Padrão da Nova Zelândia", "SAST": "Horário da África do Sul", "WIT": "Horário da Indonésia Oriental", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "AEST": "Horário Padrão da Austrália Oriental", "AEDT": "Horário de Verão da Austrália Oriental", "AWST": "Horário Padrão da Austrália Ocidental"},
+ timezones: map[string]string{"SAST": "Horário da África do Sul", "HECU": "Horário de Verão de Cuba", "WARST": "Horário de Verão da Argentina Ocidental", "HNT": "Horário Padrão de Terra Nova", "AWDT": "Horário de Verão da Austrália Ocidental", "AST": "Horário Padrão do Atlântico", "MDT": "Horário de Verão de Macau", "WITA": "Horário da Indonésia Central", "ChST": "Horário de Chamorro", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "HNCU": "Horário Padrão de Cuba", "MYT": "Horário da Malásia", "MST": "Horário Padrão de Macau", "ART": "Horário Padrão da Argentina", "HKST": "Horário de Verão de Hong Kong", "HEEG": "Horário de Verão da Groelândia Oriental", "GYT": "Horário da Guiana", "CST": "Horário Padrão Central", "PST": "Horário Padrão do Pacífico", "HAT": "Horário de Verão de Terra Nova", "AEST": "Horário Padrão da Austrália Oriental", "UYST": "Horário de Verão do Uruguai", "WIB": "Horário da Indonésia Ocidental", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "WAT": "Horário Padrão da África Ocidental", "EDT": "Horário de Verão Oriental", "HNEG": "Horário Padrão da Groelândia Oriental", "WART": "Horário Padrão da Argentina Ocidental", "WESZ": "Horário de Verão da Europa Ocidental", "ARST": "Horário de Verão da Argentina", "AKDT": "Horário de Verão do Alasca", "LHDT": "Horário de Verão de Lord Howe", "SGT": "Horário Padrão de Cingapura", "NZST": "Horário Padrão da Nova Zelândia", "VET": "Horário da Venezuela", "OEZ": "Horário Padrão da Europa Oriental", "ACST": "Horário Padrão da Austrália Central", "COT": "Horário Padrão da Colômbia", "WIT": "Horário da Indonésia Oriental", "JST": "Horário Padrão do Japão", "GMT": "Horário do Meridiano de Greenwich", "AEDT": "Horário de Verão da Austrália Oriental", "IST": "Horário Padrão da Índia", "HEOG": "Horário de Verão da Groenlândia Ocidental", "HENOMX": "Horário de Verão do Noroeste do México", "CDT": "Horário de Verão Central", "CLT": "Horário Padrão do Chile", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "MESZ": "Horário de Verão da Europa Central", "TMST": "Horário de Verão do Turcomenistão", "HKT": "Horário Padrão de Hong Kong", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "BOT": "Horário da Bolívia", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "JDT": "Horário de Verão do Japão", "TMT": "Horário Padrão do Turcomenistão", "ACDT": "Horário de Verão da Austrália Central", "BT": "Horário do Butão", "GFT": "Horário da Guiana Francesa", "HEPMX": "Horário de Verão do Pacífico do México", "EAT": "Horário da África Oriental", "CHADT": "Horário de Verão de Chatham", "ECT": "Horário do Equador", "PDT": "Horário de Verão do Pacífico", "WEZ": "Horário Padrão da Europa Ocidental", "WAST": "Horário de Verão da África Ocidental", "CHAST": "Horário Padrão de Chatham", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "OESZ": "Horário de Verão da Europa Oriental", "COST": "Horário de Verão da Colômbia", "HNNOMX": "Horário Padrão do Noroeste do México", "LHST": "Horário Padrão de Lord Howe", "SRT": "Horário do Suriname", "CAT": "Horário da África Central", "CLST": "Horário de Verão do Chile", "HNOG": "Horário Padrão da Groenlândia Ocidental", "ADT": "Horário de Verão do Atlântico", "EST": "Horário Padrão Oriental", "UYT": "Horário Padrão do Uruguai", "∅∅∅": "Horário de Verão dos Açores", "HNPMX": "Horário Padrão do Pacífico do México", "AWST": "Horário Padrão da Austrália Ocidental", "NZDT": "Horário de Verão da Nova Zelândia", "MEZ": "Horário Padrão da Europa Central", "AKST": "Horário Padrão do Alasca"},
}
}
diff --git a/pt_CV/pt_CV.go b/pt_CV/pt_CV.go
index 9793116f..3c58329e 100644
--- a/pt_CV/pt_CV.go
+++ b/pt_CV/pt_CV.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "depois de Cristo"},
- timezones: map[string]string{"AWST": "Horário Padrão da Austrália Ocidental", "CHAST": "Horário Padrão de Chatham", "CLT": "Horário Padrão do Chile", "EAT": "Horário da África Oriental", "ECT": "Horário do Equador", "GMT": "Horário do Meridiano de Greenwich", "UYT": "Horário Padrão do Uruguai", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "GFT": "Horário da Guiana Francesa", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "ACST": "Horário Padrão da Austrália Central", "HECU": "Horário de Verão de Cuba", "WIT": "Horário da Indonésia Oriental", "ART": "Horário Padrão da Argentina", "PDT": "Horário de Verão do Pacífico", "NZDT": "Horário de Verão da Nova Zelândia", "CHADT": "Horário de Verão de Chatham", "CAT": "Horário da África Central", "HNNOMX": "Horário Padrão do Noroeste do México", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "WESZ": "Horário de Verão da Europa Ocidental", "HAT": "Horário de Verão de Terra Nova", "AKST": "Horário Padrão do Alasca", "ADT": "Horário de Verão do Atlântico", "WEZ": "Horário Padrão da Europa Ocidental", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "SAST": "Horário da África do Sul", "COST": "Horário de Verão da Colômbia", "AST": "Horário Padrão do Atlântico", "MYT": "Horário da Malásia", "HNT": "Horário Padrão de Terra Nova", "MEZ": "Horário Padrão da Europa Central", "HENOMX": "Horário de Verão do Noroeste do México", "UYST": "Horário de Verão do Uruguai", "BT": "Horário do Butão", "HKST": "Horário de Verão de Hong Kong", "AEST": "Horário Padrão da Austrália Oriental", "VET": "Horário da Venezuela", "MESZ": "Horário de Verão da Europa Central", "ChST": "Horário de Chamorro", "IST": "Horário Padrão da Índia", "TMST": "Horário de Verão do Turcomenistão", "WAT": "Horário Padrão da África Ocidental", "WART": "Horário Padrão da Argentina Ocidental", "AKDT": "Horário de Verão do Alasca", "SRT": "Horário do Suriname", "HEOG": "Horário de Verão da Groenlândia Ocidental", "TMT": "Horário Padrão do Turcomenistão", "ACDT": "Horário de Verão da Austrália Central", "WAST": "Horário de Verão da África Ocidental", "∅∅∅": "Horário de Verão do Peru", "SGT": "Horário Padrão de Cingapura", "CLST": "Horário de Verão do Chile", "MDT": "Horário de Verão de Macau", "GYT": "Horário da Guiana", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "HEEG": "Horário de Verão da Groelândia Oriental", "HEPMX": "Horário de Verão do Pacífico do México", "EST": "Horário Padrão Oriental", "WIB": "Horário da Indonésia Ocidental", "AEDT": "Horário de Verão da Austrália Oriental", "LHST": "Horário Padrão de Lord Howe", "BOT": "Horário da Bolívia", "OESZ": "Horário de Verão da Europa Oriental", "COT": "Horário Padrão da Colômbia", "WITA": "Horário da Indonésia Central", "LHDT": "Horário de Verão de Lord Howe", "JDT": "Horário de Verão do Japão", "HNCU": "Horário Padrão de Cuba", "ARST": "Horário de Verão da Argentina", "AWDT": "Horário de Verão da Austrália Ocidental", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "WARST": "Horário de Verão da Argentina Ocidental", "MST": "Horário Padrão de Macau", "HNOG": "Horário Padrão da Groenlândia Ocidental", "JST": "Horário Padrão do Japão", "EDT": "Horário de Verão Oriental", "HNEG": "Horário Padrão da Groelândia Oriental", "HKT": "Horário Padrão de Hong Kong", "NZST": "Horário Padrão da Nova Zelândia", "OEZ": "Horário Padrão da Europa Oriental", "HNPMX": "Horário Padrão do Pacífico do México", "CST": "Horário Padrão Central", "CDT": "Horário de Verão Central", "PST": "Horário Padrão do Pacífico"},
+ timezones: map[string]string{"COT": "Horário Padrão da Colômbia", "UYT": "Horário Padrão do Uruguai", "WIB": "Horário da Indonésia Ocidental", "CHADT": "Horário de Verão de Chatham", "OESZ": "Horário de Verão da Europa Oriental", "HENOMX": "Horário de Verão do Noroeste do México", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "AST": "Horário Padrão do Atlântico", "TMT": "Horário Padrão do Turcomenistão", "AEDT": "Horário de Verão da Austrália Oriental", "SAST": "Horário da África do Sul", "LHST": "Horário Padrão de Lord Howe", "HECU": "Horário de Verão de Cuba", "PDT": "Horário de Verão do Pacífico", "WART": "Horário Padrão da Argentina Ocidental", "EST": "Horário Padrão Oriental", "ACDT": "Horário de Verão da Austrália Central", "AKST": "Horário Padrão do Alasca", "LHDT": "Horário de Verão de Lord Howe", "HEPMX": "Horário de Verão do Pacífico do México", "GMT": "Horário do Meridiano de Greenwich", "WAST": "Horário de Verão da África Ocidental", "UYST": "Horário de Verão do Uruguai", "SGT": "Horário Padrão de Cingapura", "CAT": "Horário da África Central", "OEZ": "Horário Padrão da Europa Oriental", "HKST": "Horário de Verão de Hong Kong", "WITA": "Horário da Indonésia Central", "HNPMX": "Horário Padrão do Pacífico do México", "ECT": "Horário do Equador", "VET": "Horário da Venezuela", "GFT": "Horário da Guiana Francesa", "MDT": "Horário de Verão da Montanha", "PST": "Horário Padrão do Pacífico", "HKT": "Horário Padrão de Hong Kong", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "WIT": "Horário da Indonésia Oriental", "CHAST": "Horário Padrão de Chatham", "CLT": "Horário Padrão do Chile", "ACST": "Horário Padrão da Austrália Central", "BT": "Horário do Butão", "CDT": "Horário de Verão Central", "WESZ": "Horário de Verão da Europa Ocidental", "AKDT": "Horário de Verão do Alasca", "EAT": "Horário da África Oriental", "IST": "Horário Padrão da Índia", "WARST": "Horário de Verão da Argentina Ocidental", "ART": "Horário Padrão da Argentina", "HNT": "Horário Padrão de Terra Nova", "BOT": "Horário da Bolívia", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "WEZ": "Horário Padrão da Europa Ocidental", "MYT": "Horário da Malásia", "EDT": "Horário de Verão Oriental", "HEEG": "Horário de Verão da Groelândia Oriental", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "AEST": "Horário Padrão da Austrália Oriental", "AWDT": "Horário de Verão da Austrália Ocidental", "NZST": "Horário Padrão da Nova Zelândia", "MESZ": "Horário de Verão da Europa Central", "ARST": "Horário de Verão da Argentina", "COST": "Horário de Verão da Colômbia", "HAT": "Horário de Verão de Terra Nova", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "CLST": "Horário de Verão do Chile", "TMST": "Horário de Verão do Turcomenistão", "MEZ": "Horário Padrão da Europa Central", "WAT": "Horário Padrão da África Ocidental", "HNEG": "Horário Padrão da Groelândia Oriental", "GYT": "Horário da Guiana", "CST": "Horário Padrão Central", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "HNCU": "Horário Padrão de Cuba", "AWST": "Horário Padrão da Austrália Ocidental", "NZDT": "Horário de Verão da Nova Zelândia", "HNNOMX": "Horário Padrão do Noroeste do México", "∅∅∅": "Horário de Verão do Acre", "MST": "Horário Padrão da Montanha", "ChST": "Horário de Chamorro", "SRT": "Horário do Suriname", "JST": "Horário Padrão do Japão", "JDT": "Horário de Verão do Japão", "HNOG": "Horário Padrão da Groenlândia Ocidental", "HEOG": "Horário de Verão da Groenlândia Ocidental", "ADT": "Horário de Verão do Atlântico"},
}
}
diff --git a/pt_GQ/pt_GQ.go b/pt_GQ/pt_GQ.go
index eee3e0f6..85a7c9af 100644
--- a/pt_GQ/pt_GQ.go
+++ b/pt_GQ/pt_GQ.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "depois de Cristo"},
- timezones: map[string]string{"WARST": "Horário de Verão da Argentina Ocidental", "AEST": "Horário Padrão da Austrália Oriental", "IST": "Horário Padrão da Índia", "TMT": "Horário Padrão do Turcomenistão", "MESZ": "Horário de Verão da Europa Central", "EST": "Horário Padrão Oriental", "MDT": "Horário de Verão de Macau", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "HAT": "Horário de Verão de Terra Nova", "NZDT": "Horário de Verão da Nova Zelândia", "GMT": "Horário do Meridiano de Greenwich", "SGT": "Horário Padrão de Cingapura", "UYST": "Horário de Verão do Uruguai", "WEZ": "Horário Padrão da Europa Ocidental", "WART": "Horário Padrão da Argentina Ocidental", "COST": "Horário de Verão da Colômbia", "AST": "Horário Padrão do Atlântico", "HNT": "Horário Padrão de Terra Nova", "CHADT": "Horário de Verão de Chatham", "WAT": "Horário Padrão da África Ocidental", "ECT": "Horário do Equador", "PST": "Horário Padrão do Pacífico", "ChST": "Horário de Chamorro", "MYT": "Horário da Malásia", "UYT": "Horário Padrão do Uruguai", "ARST": "Horário de Verão da Argentina", "AEDT": "Horário de Verão da Austrália Oriental", "JDT": "Horário de Verão do Japão", "CST": "Horário Padrão Central", "ADT": "Horário de Verão do Atlântico", "WIB": "Horário da Indonésia Ocidental", "ACDT": "Horário de Verão da Austrália Central", "HNOG": "Horário Padrão da Groenlândia Ocidental", "SAST": "Horário da África do Sul", "TMST": "Horário de Verão do Turcomenistão", "AWDT": "Horário de Verão da Austrália Ocidental", "WAST": "Horário de Verão da África Ocidental", "HNNOMX": "Horário Padrão do Noroeste do México", "MST": "Horário Padrão de Macau", "VET": "Horário da Venezuela", "HKST": "Horário de Verão de Hong Kong", "HNEG": "Horário Padrão da Groelândia Oriental", "AWST": "Horário Padrão da Austrália Ocidental", "MEZ": "Horário Padrão da Europa Central", "JST": "Horário Padrão do Japão", "CLT": "Horário Padrão do Chile", "CLST": "Horário de Verão do Chile", "OEZ": "Horário Padrão da Europa Oriental", "HEPMX": "Horário de Verão do Pacífico do México", "AKDT": "Horário de Verão do Alasca", "GYT": "Horário da Guiana", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "HEOG": "Horário de Verão da Groenlândia Ocidental", "LHST": "Horário Padrão de Lord Howe", "HENOMX": "Horário de Verão do Noroeste do México", "HECU": "Horário de Verão de Cuba", "CDT": "Horário de Verão Central", "WIT": "Horário da Indonésia Oriental", "ART": "Horário Padrão da Argentina", "OESZ": "Horário de Verão da Europa Oriental", "EAT": "Horário da África Oriental", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "WITA": "Horário da Indonésia Central", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "ACST": "Horário Padrão da Austrália Central", "EDT": "Horário de Verão Oriental", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "HKT": "Horário Padrão de Hong Kong", "BOT": "Horário da Bolívia", "PDT": "Horário de Verão do Pacífico", "NZST": "Horário Padrão da Nova Zelândia", "CHAST": "Horário Padrão de Chatham", "∅∅∅": "Horário de Verão do Peru", "COT": "Horário Padrão da Colômbia", "AKST": "Horário Padrão do Alasca", "BT": "Horário do Butão", "SRT": "Horário do Suriname", "LHDT": "Horário de Verão de Lord Howe", "HEEG": "Horário de Verão da Groelândia Oriental", "GFT": "Horário da Guiana Francesa", "CAT": "Horário da África Central", "HNCU": "Horário Padrão de Cuba", "HNPMX": "Horário Padrão do Pacífico do México", "WESZ": "Horário de Verão da Europa Ocidental", "HEPM": "Horário de Verão de Saint Pierre e Miquelon"},
+ timezones: map[string]string{"HNCU": "Horário Padrão de Cuba", "GMT": "Horário do Meridiano de Greenwich", "WART": "Horário Padrão da Argentina Ocidental", "MDT": "Horário de Verão de Macau", "HKT": "Horário Padrão de Hong Kong", "HKST": "Horário de Verão de Hong Kong", "HNPMX": "Horário Padrão do Pacífico do México", "GYT": "Horário da Guiana", "PST": "Horário Padrão do Pacífico", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "ADT": "Horário de Verão do Atlântico", "ACST": "Horário Padrão da Austrália Central", "WITA": "Horário da Indonésia Central", "AWST": "Horário Padrão da Austrália Ocidental", "CHADT": "Horário de Verão de Chatham", "NZST": "Horário Padrão da Nova Zelândia", "OESZ": "Horário de Verão da Europa Oriental", "TMST": "Horário de Verão do Turcomenistão", "EDT": "Horário de Verão Oriental", "HNT": "Horário Padrão de Terra Nova", "SAST": "Horário da África do Sul", "IST": "Horário Padrão da Índia", "MEZ": "Horário Padrão da Europa Central", "WEZ": "Horário Padrão da Europa Ocidental", "EST": "Horário Padrão Oriental", "LHDT": "Horário de Verão de Lord Howe", "SRT": "Horário do Suriname", "AWDT": "Horário de Verão da Austrália Ocidental", "CHAST": "Horário Padrão de Chatham", "AEST": "Horário Padrão da Austrália Oriental", "CST": "Horário Padrão Central", "BT": "Horário do Butão", "TMT": "Horário Padrão do Turcomenistão", "AEDT": "Horário de Verão da Austrália Oriental", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "HECU": "Horário de Verão de Cuba", "ECT": "Horário do Equador", "JST": "Horário Padrão do Japão", "JDT": "Horário de Verão do Japão", "AST": "Horário Padrão do Atlântico", "HEOG": "Horário de Verão da Groenlândia Ocidental", "HENOMX": "Horário de Verão do Noroeste do México", "UYT": "Horário Padrão do Uruguai", "UYST": "Horário de Verão do Uruguai", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "MST": "Horário Padrão de Macau", "WAST": "Horário de Verão da África Ocidental", "COT": "Horário Padrão da Colômbia", "ACDT": "Horário de Verão da Austrália Central", "ART": "Horário Padrão da Argentina", "HNEG": "Horário Padrão da Groelândia Oriental", "GFT": "Horário da Guiana Francesa", "LHST": "Horário Padrão de Lord Howe", "CAT": "Horário da África Central", "MESZ": "Horário de Verão da Europa Central", "OEZ": "Horário Padrão da Europa Oriental", "CLT": "Horário Padrão do Chile", "∅∅∅": "Horário de Verão dos Açores", "WIB": "Horário da Indonésia Ocidental", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "NZDT": "Horário de Verão da Nova Zelândia", "WESZ": "Horário de Verão da Europa Ocidental", "EAT": "Horário da África Oriental", "WIT": "Horário da Indonésia Oriental", "ARST": "Horário de Verão da Argentina", "COST": "Horário de Verão da Colômbia", "HNNOMX": "Horário Padrão do Noroeste do México", "HEEG": "Horário de Verão da Groelândia Oriental", "HEPMX": "Horário de Verão do Pacífico do México", "PDT": "Horário de Verão do Pacífico", "VET": "Horário da Venezuela", "CLST": "Horário de Verão do Chile", "HNOG": "Horário Padrão da Groenlândia Ocidental", "SGT": "Horário Padrão de Cingapura", "WAT": "Horário Padrão da África Ocidental", "HAT": "Horário de Verão de Terra Nova", "AKDT": "Horário de Verão do Alasca", "ChST": "Horário de Chamorro", "CDT": "Horário de Verão Central", "BOT": "Horário da Bolívia", "MYT": "Horário da Malásia", "WARST": "Horário de Verão da Argentina Ocidental", "AKST": "Horário Padrão do Alasca"},
}
}
diff --git a/pt_GW/pt_GW.go b/pt_GW/pt_GW.go
index fa991b63..8df04286 100644
--- a/pt_GW/pt_GW.go
+++ b/pt_GW/pt_GW.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "depois de Cristo"},
- timezones: map[string]string{"HEPMX": "Horário de Verão do Pacífico do México", "MDT": "Horário de Verão da Montanha", "LHDT": "Horário de Verão de Lord Howe", "NZST": "Horário Padrão da Nova Zelândia", "TMT": "Horário Padrão do Turcomenistão", "HNNOMX": "Horário Padrão do Noroeste do México", "HECU": "Horário de Verão de Cuba", "HNOG": "Horário Padrão da Groenlândia Ocidental", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "NZDT": "Horário de Verão da Nova Zelândia", "HNEG": "Horário Padrão da Groelândia Oriental", "UYT": "Horário Padrão do Uruguai", "MST": "Horário Padrão da Montanha", "CHADT": "Horário de Verão de Chatham", "BOT": "Horário da Bolívia", "WART": "Horário Padrão da Argentina Ocidental", "HNPMX": "Horário Padrão do Pacífico do México", "AST": "Horário Padrão do Atlântico", "ADT": "Horário de Verão do Atlântico", "BT": "Horário do Butão", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "CLT": "Horário Padrão do Chile", "SRT": "Horário do Suriname", "HKT": "Horário Padrão de Hong Kong", "OEZ": "Horário Padrão da Europa Oriental", "CST": "Horário Padrão Central", "WIB": "Horário da Indonésia Ocidental", "WIT": "Horário da Indonésia Oriental", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "HKST": "Horário de Verão de Hong Kong", "CHAST": "Horário Padrão de Chatham", "EAT": "Horário da África Oriental", "WARST": "Horário de Verão da Argentina Ocidental", "EDT": "Horário de Verão Oriental", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "WESZ": "Horário de Verão da Europa Ocidental", "ART": "Horário Padrão da Argentina", "MEZ": "Horário Padrão da Europa Central", "MESZ": "Horário de Verão da Europa Central", "GFT": "Horário da Guiana Francesa", "ACST": "Horário Padrão da Austrália Central", "ECT": "Horário do Equador", "AWST": "Horário Padrão da Austrália Ocidental", "WITA": "Horário da Indonésia Central", "AEDT": "Horário de Verão da Austrália Oriental", "AKDT": "Horário de Verão do Alasca", "SGT": "Horário Padrão de Cingapura", "MYT": "Horário da Malásia", "UYST": "Horário de Verão do Uruguai", "ARST": "Horário de Verão da Argentina", "JST": "Horário Padrão do Japão", "GYT": "Horário da Guiana", "HAT": "Horário de Verão de Terra Nova", "SAST": "Horário da África do Sul", "ChST": "Horário de Chamorro", "ACDT": "Horário de Verão da Austrália Central", "EST": "Horário Padrão Oriental", "AKST": "Horário Padrão do Alasca", "LHST": "Horário Padrão de Lord Howe", "IST": "Horário Padrão da Índia", "TMST": "Horário de Verão do Turcomenistão", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "PDT": "Horário de Verão do Pacífico", "∅∅∅": "Horário de Verão do Amazonas", "HEEG": "Horário de Verão da Groelândia Oriental", "WAT": "Horário Padrão da África Ocidental", "WAST": "Horário de Verão da África Ocidental", "AEST": "Horário Padrão da Austrália Oriental", "CLST": "Horário de Verão do Chile", "JDT": "Horário de Verão do Japão", "COST": "Horário de Verão da Colômbia", "HENOMX": "Horário de Verão do Noroeste do México", "CDT": "Horário de Verão Central", "HNT": "Horário Padrão de Terra Nova", "PST": "Horário Padrão do Pacífico", "AWDT": "Horário de Verão da Austrália Ocidental", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "CAT": "Horário da África Central", "COT": "Horário Padrão da Colômbia", "VET": "Horário da Venezuela", "WEZ": "Horário Padrão da Europa Ocidental", "HEOG": "Horário de Verão da Groenlândia Ocidental", "OESZ": "Horário de Verão da Europa Oriental", "HNCU": "Horário Padrão de Cuba", "GMT": "Horário do Meridiano de Greenwich"},
+ timezones: map[string]string{"CLST": "Horário de Verão do Chile", "AST": "Horário Padrão do Atlântico", "CDT": "Horário de Verão Central", "AWST": "Horário Padrão da Austrália Ocidental", "ADT": "Horário de Verão do Atlântico", "WIT": "Horário da Indonésia Oriental", "AWDT": "Horário de Verão da Austrália Ocidental", "BOT": "Horário da Bolívia", "HNOG": "Horário Padrão da Groenlândia Ocidental", "HNNOMX": "Horário Padrão do Noroeste do México", "BT": "Horário do Butão", "ChST": "Horário de Chamorro", "EST": "Horário Padrão Oriental", "COT": "Horário Padrão da Colômbia", "HENOMX": "Horário de Verão do Noroeste do México", "SRT": "Horário do Suriname", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "HNCU": "Horário Padrão de Cuba", "CST": "Horário Padrão Central", "HEOG": "Horário de Verão da Groenlândia Ocidental", "WEZ": "Horário Padrão da Europa Ocidental", "MST": "Horário Padrão de Macau", "ACST": "Horário Padrão da Austrália Central", "UYT": "Horário Padrão do Uruguai", "LHST": "Horário Padrão de Lord Howe", "SAST": "Horário da África do Sul", "EAT": "Horário da África Oriental", "NZDT": "Horário de Verão da Nova Zelândia", "JST": "Horário Padrão do Japão", "WARST": "Horário de Verão da Argentina Ocidental", "HNEG": "Horário Padrão da Groelândia Oriental", "HEEG": "Horário de Verão da Groelândia Oriental", "WITA": "Horário da Indonésia Central", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "ART": "Horário Padrão da Argentina", "AKDT": "Horário de Verão do Alasca", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "HNPMX": "Horário Padrão do Pacífico do México", "SGT": "Horário Padrão de Cingapura", "NZST": "Horário Padrão da Nova Zelândia", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "WART": "Horário Padrão da Argentina Ocidental", "CLT": "Horário Padrão do Chile", "UYST": "Horário de Verão do Uruguai", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "MEZ": "Horário Padrão da Europa Central", "OEZ": "Horário Padrão da Europa Oriental", "WAST": "Horário de Verão da África Ocidental", "HKST": "Horário de Verão de Hong Kong", "COST": "Horário de Verão da Colômbia", "ECT": "Horário do Equador", "CAT": "Horário da África Central", "JDT": "Horário de Verão do Japão", "WESZ": "Horário de Verão da Europa Ocidental", "WIB": "Horário da Indonésia Ocidental", "CHAST": "Horário Padrão de Chatham", "ARST": "Horário de Verão da Argentina", "ACDT": "Horário de Verão da Austrália Central", "AEDT": "Horário de Verão da Austrália Oriental", "AKST": "Horário Padrão do Alasca", "LHDT": "Horário de Verão de Lord Howe", "∅∅∅": "Horário de Verão do Amazonas", "MESZ": "Horário de Verão da Europa Central", "MYT": "Horário da Malásia", "OESZ": "Horário de Verão da Europa Oriental", "EDT": "Horário de Verão Oriental", "GFT": "Horário da Guiana Francesa", "HEPMX": "Horário de Verão do Pacífico do México", "GYT": "Horário da Guiana", "CHADT": "Horário de Verão de Chatham", "PDT": "Horário de Verão do Pacífico", "GMT": "Horário do Meridiano de Greenwich", "TMST": "Horário de Verão do Turcomenistão", "HNT": "Horário Padrão de Terra Nova", "AEST": "Horário Padrão da Austrália Oriental", "TMT": "Horário Padrão do Turcomenistão", "MDT": "Horário de Verão de Macau", "WAT": "Horário Padrão da África Ocidental", "HAT": "Horário de Verão de Terra Nova", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "PST": "Horário Padrão do Pacífico", "IST": "Horário Padrão da Índia", "VET": "Horário da Venezuela", "HKT": "Horário Padrão de Hong Kong", "HECU": "Horário de Verão de Cuba"},
}
}
diff --git a/pt_LU/pt_LU.go b/pt_LU/pt_LU.go
index 14ce4657..8c400c79 100644
--- a/pt_LU/pt_LU.go
+++ b/pt_LU/pt_LU.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "depois de Cristo"},
- timezones: map[string]string{"MST": "Horário Padrão de Macau", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "EAT": "Horário da África Oriental", "ADT": "Horário de Verão do Atlântico", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "MEZ": "Horário Padrão da Europa Central", "BOT": "Horário da Bolívia", "ART": "Horário Padrão da Argentina", "NZDT": "Horário de Verão da Nova Zelândia", "CHAST": "Horário Padrão de Chatham", "HECU": "Horário de Verão de Cuba", "HNPMX": "Horário Padrão do Pacífico do México", "MDT": "Horário de Verão de Macau", "AST": "Horário Padrão do Atlântico", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "LHDT": "Horário de Verão de Lord Howe", "SGT": "Horário Padrão de Cingapura", "HNT": "Horário Padrão de Terra Nova", "PST": "Horário Padrão do Pacífico", "CAT": "Horário da África Central", "HNCU": "Horário Padrão de Cuba", "HEPMX": "Horário de Verão do Pacífico do México", "BT": "Horário do Butão", "SRT": "Horário do Suriname", "AEST": "Horário Padrão da Austrália Oriental", "CHADT": "Horário de Verão de Chatham", "TMT": "Horário Padrão do Turcomenistão", "HENOMX": "Horário de Verão do Noroeste do México", "EDT": "Horário de Verão Oriental", "UYT": "Horário Padrão do Uruguai", "HKST": "Horário de Verão de Hong Kong", "AEDT": "Horário de Verão da Austrália Oriental", "COT": "Horário Padrão da Colômbia", "GMT": "Horário do Meridiano de Greenwich", "CST": "Horário Padrão Central", "UYST": "Horário de Verão do Uruguai", "WITA": "Horário da Indonésia Central", "VET": "Horário da Venezuela", "AKST": "Horário Padrão do Alasca", "HAT": "Horário de Verão de Terra Nova", "ECT": "Horário do Equador", "GYT": "Horário da Guiana", "LHST": "Horário Padrão de Lord Howe", "HNEG": "Horário Padrão da Groelândia Oriental", "HEEG": "Horário de Verão da Groelândia Oriental", "SAST": "Horário da África do Sul", "CLT": "Horário Padrão do Chile", "ACST": "Horário Padrão da Austrália Central", "∅∅∅": "Horário de Verão dos Açores", "EST": "Horário Padrão Oriental", "ARST": "Horário de Verão da Argentina", "PDT": "Horário de Verão do Pacífico", "AWST": "Horário Padrão da Austrália Ocidental", "ACDT": "Horário de Verão da Austrália Central", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "IST": "Horário Padrão da Índia", "JST": "Horário Padrão do Japão", "HNNOMX": "Horário Padrão do Noroeste do México", "WART": "Horário Padrão da Argentina Ocidental", "WARST": "Horário de Verão da Argentina Ocidental", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "HEOG": "Horário de Verão da Groenlândia Ocidental", "WAT": "Horário Padrão da África Ocidental", "CDT": "Horário de Verão Central", "WESZ": "Horário de Verão da Europa Ocidental", "OEZ": "Horário Padrão da Europa Oriental", "MESZ": "Horário de Verão da Europa Central", "WAST": "Horário de Verão da África Ocidental", "AKDT": "Horário de Verão do Alasca", "MYT": "Horário da Malásia", "WIB": "Horário da Indonésia Ocidental", "HNOG": "Horário Padrão da Groenlândia Ocidental", "WEZ": "Horário Padrão da Europa Ocidental", "CLST": "Horário de Verão do Chile", "GFT": "Horário da Guiana Francesa", "TMST": "Horário de Verão do Turcomenistão", "COST": "Horário de Verão da Colômbia", "WIT": "Horário da Indonésia Oriental", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "NZST": "Horário Padrão da Nova Zelândia", "JDT": "Horário de Verão do Japão", "OESZ": "Horário de Verão da Europa Oriental", "HKT": "Horário Padrão de Hong Kong", "AWDT": "Horário de Verão da Austrália Ocidental", "ChST": "Horário de Chamorro"},
+ timezones: map[string]string{"ACWST": "Horário Padrão da Austrália Centro-Ocidental", "NZST": "Horário Padrão da Nova Zelândia", "GMT": "Horário do Meridiano de Greenwich", "MYT": "Horário da Malásia", "ART": "Horário Padrão da Argentina", "HAT": "Horário de Verão de Terra Nova", "AEST": "Horário Padrão da Austrália Oriental", "HECU": "Horário de Verão de Cuba", "HENOMX": "Horário de Verão do Noroeste do México", "∅∅∅": "Horário de Verão do Acre", "LHST": "Horário Padrão de Lord Howe", "AWST": "Horário Padrão da Austrália Ocidental", "HNPMX": "Horário Padrão do Pacífico do México", "VET": "Horário da Venezuela", "WARST": "Horário de Verão da Argentina Ocidental", "COT": "Horário Padrão da Colômbia", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "ACDT": "Horário de Verão da Austrália Central", "CHADT": "Horário de Verão de Chatham", "AST": "Horário Padrão do Atlântico", "ADT": "Horário de Verão do Atlântico", "WAST": "Horário de Verão da África Ocidental", "ChST": "Horário de Chamorro", "SAST": "Horário da África do Sul", "HEPMX": "Horário de Verão do Pacífico do México", "PST": "Horário Padrão do Pacífico", "HNOG": "Horário Padrão da Groenlândia Ocidental", "HNT": "Horário Padrão de Terra Nova", "HEEG": "Horário de Verão da Groelândia Oriental", "EAT": "Horário da África Oriental", "HKT": "Horário Padrão de Hong Kong", "ACST": "Horário Padrão da Austrália Central", "BOT": "Horário da Bolívia", "CLST": "Horário de Verão do Chile", "EDT": "Horário de Verão Oriental", "CDT": "Horário de Verão Central", "SGT": "Horário Padrão de Cingapura", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "WITA": "Horário da Indonésia Central", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "GYT": "Horário da Guiana", "TMST": "Horário de Verão do Turcomenistão", "COST": "Horário de Verão da Colômbia", "HNNOMX": "Horário Padrão do Noroeste do México", "WIT": "Horário da Indonésia Oriental", "CHAST": "Horário Padrão de Chatham", "MEZ": "Horário Padrão da Europa Central", "ARST": "Horário de Verão da Argentina", "BT": "Horário do Butão", "AEDT": "Horário de Verão da Austrália Oriental", "WART": "Horário Padrão da Argentina Ocidental", "JST": "Horário Padrão do Japão", "HEOG": "Horário de Verão da Groenlândia Ocidental", "TMT": "Horário Padrão do Turcomenistão", "MST": "Horário Padrão da Montanha", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "SRT": "Horário do Suriname", "UYT": "Horário Padrão do Uruguai", "LHDT": "Horário de Verão de Lord Howe", "AWDT": "Horário de Verão da Austrália Ocidental", "PDT": "Horário de Verão do Pacífico", "ECT": "Horário do Equador", "HNEG": "Horário Padrão da Groelândia Oriental", "GFT": "Horário da Guiana Francesa", "MDT": "Horário de Verão da Montanha", "HKST": "Horário de Verão de Hong Kong", "WEZ": "Horário Padrão da Europa Ocidental", "EST": "Horário Padrão Oriental", "CAT": "Horário da África Central", "IST": "Horário Padrão da Índia", "OESZ": "Horário de Verão da Europa Oriental", "MESZ": "Horário de Verão da Europa Central", "WAT": "Horário Padrão da África Ocidental", "WIB": "Horário da Indonésia Ocidental", "JDT": "Horário de Verão do Japão", "AKST": "Horário Padrão do Alasca", "AKDT": "Horário de Verão do Alasca", "UYST": "Horário de Verão do Uruguai", "CLT": "Horário Padrão do Chile", "OEZ": "Horário Padrão da Europa Oriental", "WESZ": "Horário de Verão da Europa Ocidental", "HNCU": "Horário Padrão de Cuba", "CST": "Horário Padrão Central", "NZDT": "Horário de Verão da Nova Zelândia"},
}
}
diff --git a/pt_MO/pt_MO.go b/pt_MO/pt_MO.go
index dc33ef13..1fe98780 100644
--- a/pt_MO/pt_MO.go
+++ b/pt_MO/pt_MO.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "depois de Cristo"},
- timezones: map[string]string{"HEOG": "Horário de Verão da Groenlândia Ocidental", "CLST": "Horário de Verão do Chile", "OEZ": "Horário Padrão da Europa Oriental", "AST": "Horário Padrão do Atlântico", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "WARST": "Horário de Verão da Argentina Ocidental", "AKST": "Horário Padrão do Alasca", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "MEZ": "Horário Padrão da Europa Central", "JST": "Horário Padrão do Japão", "ChST": "Horário de Chamorro", "WAT": "Horário Padrão da África Ocidental", "TMST": "Horário de Verão do Turcomenistão", "CAT": "Horário da África Central", "MDT": "Horário de Verão de Macau", "CST": "Horário Padrão Central", "HNT": "Horário Padrão de Terra Nova", "JDT": "Horário de Verão do Japão", "TMT": "Horário Padrão do Turcomenistão", "HEPMX": "Horário de Verão do Pacífico do México", "WEZ": "Horário Padrão da Europa Ocidental", "AKDT": "Horário de Verão do Alasca", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "BT": "Horário do Butão", "HKT": "Horário Padrão de Hong Kong", "GFT": "Horário da Guiana Francesa", "WART": "Horário Padrão da Argentina Ocidental", "COT": "Horário Padrão da Colômbia", "MYT": "Horário da Malásia", "SRT": "Horário do Suriname", "HNEG": "Horário Padrão da Groelândia Oriental", "HEEG": "Horário de Verão da Groelândia Oriental", "WAST": "Horário de Verão da África Ocidental", "ECT": "Horário do Equador", "ADT": "Horário de Verão do Atlântico", "PDT": "Horário de Verão do Pacífico", "HKST": "Horário de Verão de Hong Kong", "ACST": "Horário Padrão da Austrália Central", "ACDT": "Horário de Verão da Austrália Central", "HECU": "Horário de Verão de Cuba", "UYT": "Horário Padrão do Uruguai", "ARST": "Horário de Verão da Argentina", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "NZDT": "Horário de Verão da Nova Zelândia", "CHAST": "Horário Padrão de Chatham", "WIT": "Horário da Indonésia Oriental", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "HAT": "Horário de Verão de Terra Nova", "AEST": "Horário Padrão da Austrália Oriental", "WITA": "Horário da Indonésia Central", "CDT": "Horário de Verão Central", "GYT": "Horário da Guiana", "WIB": "Horário da Indonésia Ocidental", "VET": "Horário da Venezuela", "NZST": "Horário Padrão da Nova Zelândia", "IST": "Horário Padrão da Índia", "GMT": "Horário do Meridiano de Greenwich", "HNCU": "Horário Padrão de Cuba", "LHDT": "Horário de Verão de Lord Howe", "CHADT": "Horário de Verão de Chatham", "AWST": "Horário Padrão da Austrália Ocidental", "AWDT": "Horário de Verão da Austrália Ocidental", "∅∅∅": "Horário de Verão do Amazonas", "EST": "Horário Padrão Oriental", "HNPMX": "Horário Padrão do Pacífico do México", "UYST": "Horário de Verão do Uruguai", "HNOG": "Horário Padrão da Groenlândia Ocidental", "AEDT": "Horário de Verão da Austrália Oriental", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "LHST": "Horário Padrão de Lord Howe", "SAST": "Horário da África do Sul", "HNNOMX": "Horário Padrão do Noroeste do México", "MST": "Horário Padrão de Macau", "ART": "Horário Padrão da Argentina", "MESZ": "Horário de Verão da Europa Central", "CLT": "Horário Padrão do Chile", "COST": "Horário de Verão da Colômbia", "SGT": "Horário Padrão de Cingapura", "BOT": "Horário da Bolívia", "EDT": "Horário de Verão Oriental", "WESZ": "Horário de Verão da Europa Ocidental", "EAT": "Horário da África Oriental", "OESZ": "Horário de Verão da Europa Oriental", "HENOMX": "Horário de Verão do Noroeste do México", "PST": "Horário Padrão do Pacífico"},
+ timezones: map[string]string{"MESZ": "Horário de Verão da Europa Central", "MYT": "Horário da Malásia", "TMST": "Horário de Verão do Turcomenistão", "HEEG": "Horário de Verão da Groelândia Oriental", "ChST": "Horário de Chamorro", "AWDT": "Horário de Verão da Austrália Ocidental", "SGT": "Horário Padrão de Cingapura", "VET": "Horário da Venezuela", "EAT": "Horário da África Oriental", "HKST": "Horário de Verão de Hong Kong", "LHST": "Horário Padrão de Lord Howe", "CHAST": "Horário Padrão de Chatham", "PST": "Horário Padrão do Pacífico", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "HAT": "Horário de Verão de Terra Nova", "BT": "Horário do Butão", "HNCU": "Horário Padrão de Cuba", "BOT": "Horário da Bolívia", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "HKT": "Horário Padrão de Hong Kong", "AEST": "Horário Padrão da Austrália Oriental", "JDT": "Horário de Verão do Japão", "WEZ": "Horário Padrão da Europa Ocidental", "WESZ": "Horário de Verão da Europa Ocidental", "WART": "Horário Padrão da Argentina Ocidental", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "WIB": "Horário da Indonésia Ocidental", "CDT": "Horário de Verão Central", "NZDT": "Horário de Verão da Nova Zelândia", "HNOG": "Horário Padrão da Groenlândia Ocidental", "EDT": "Horário de Verão Oriental", "COST": "Horário de Verão da Colômbia", "AKST": "Horário Padrão do Alasca", "OESZ": "Horário de Verão da Europa Oriental", "CLT": "Horário Padrão do Chile", "EST": "Horário Padrão Oriental", "HNT": "Horário Padrão de Terra Nova", "WITA": "Horário da Indonésia Central", "SRT": "Horário do Suriname", "∅∅∅": "Horário de Verão de Brasília", "AWST": "Horário Padrão da Austrália Ocidental", "HEOG": "Horário de Verão da Groenlândia Ocidental", "ARST": "Horário de Verão da Argentina", "HNNOMX": "Horário Padrão do Noroeste do México", "ACST": "Horário Padrão da Austrália Central", "CHADT": "Horário de Verão de Chatham", "MEZ": "Horário Padrão da Europa Central", "WAT": "Horário Padrão da África Ocidental", "UYT": "Horário Padrão do Uruguai", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "HEPMX": "Horário de Verão do Pacífico do México", "HECU": "Horário de Verão de Cuba", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "CLST": "Horário de Verão do Chile", "LHDT": "Horário de Verão de Lord Howe", "HNPMX": "Horário Padrão do Pacífico do México", "WARST": "Horário de Verão da Argentina Ocidental", "AST": "Horário Padrão do Atlântico", "HNEG": "Horário Padrão da Groelândia Oriental", "AEDT": "Horário de Verão da Austrália Oriental", "PDT": "Horário de Verão do Pacífico", "IST": "Horário Padrão da Índia", "TMT": "Horário Padrão do Turcomenistão", "AKDT": "Horário de Verão do Alasca", "UYST": "Horário de Verão do Uruguai", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "ADT": "Horário de Verão do Atlântico", "MST": "Horário Padrão de Macau", "WAST": "Horário de Verão da África Ocidental", "ACDT": "Horário de Verão da Austrália Central", "WIT": "Horário da Indonésia Oriental", "NZST": "Horário Padrão da Nova Zelândia", "GMT": "Horário do Meridiano de Greenwich", "ART": "Horário Padrão da Argentina", "MDT": "Horário de Verão de Macau", "COT": "Horário Padrão da Colômbia", "SAST": "Horário da África do Sul", "CST": "Horário Padrão Central", "ECT": "Horário do Equador", "OEZ": "Horário Padrão da Europa Oriental", "HENOMX": "Horário de Verão do Noroeste do México", "GFT": "Horário da Guiana Francesa", "GYT": "Horário da Guiana", "CAT": "Horário da África Central", "JST": "Horário Padrão do Japão"},
}
}
diff --git a/pt_MZ/pt_MZ.go b/pt_MZ/pt_MZ.go
index 5c42cf78..d9a54887 100644
--- a/pt_MZ/pt_MZ.go
+++ b/pt_MZ/pt_MZ.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "depois de Cristo"},
- timezones: map[string]string{"HNPMX": "Horário Padrão do Pacífico do México", "AKDT": "Horário de Verão do Alasca", "AEDT": "Horário de Verão da Austrália Oriental", "TMST": "Horário de Verão do Turcomenistão", "HEEG": "Horário de Verão da Groelândia Oriental", "OEZ": "Horário Padrão da Europa Oriental", "ECT": "Horário do Equador", "EST": "Horário Padrão Oriental", "COST": "Horário de Verão da Colômbia", "HNNOMX": "Horário Padrão do Noroeste do México", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "AWST": "Horário Padrão da Austrália Ocidental", "HKT": "Horário Padrão de Hong Kong", "NZDT": "Horário de Verão da Nova Zelândia", "JDT": "Horário de Verão do Japão", "COT": "Horário Padrão da Colômbia", "MDT": "Horário de Verão de Macau", "WIT": "Horário da Indonésia Oriental", "SRT": "Horário do Suriname", "OESZ": "Horário de Verão da Europa Oriental", "CAT": "Horário da África Central", "WAT": "Horário Padrão da África Ocidental", "GMT": "Horário do Meridiano de Greenwich", "CST": "Horário Padrão Central", "VET": "Horário da Venezuela", "HEOG": "Horário de Verão da Groenlândia Ocidental", "ACDT": "Horário de Verão da Austrália Central", "EAT": "Horário da África Oriental", "HECU": "Horário de Verão de Cuba", "MYT": "Horário da Malásia", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "IST": "Horário Padrão da Índia", "∅∅∅": "Horário de Verão do Amazonas", "GFT": "Horário da Guiana Francesa", "TMT": "Horário Padrão do Turcomenistão", "BOT": "Horário da Bolívia", "SGT": "Horário Padrão de Cingapura", "HAT": "Horário de Verão de Terra Nova", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "CHAST": "Horário Padrão de Chatham", "CHADT": "Horário de Verão de Chatham", "LHST": "Horário Padrão de Lord Howe", "ACST": "Horário Padrão da Austrália Central", "HNT": "Horário Padrão de Terra Nova", "AST": "Horário Padrão do Atlântico", "NZST": "Horário Padrão da Nova Zelândia", "CLT": "Horário Padrão do Chile", "WARST": "Horário de Verão da Argentina Ocidental", "MST": "Horário Padrão de Macau", "WIB": "Horário da Indonésia Ocidental", "ART": "Horário Padrão da Argentina", "MEZ": "Horário Padrão da Europa Central", "GYT": "Horário da Guiana", "ARST": "Horário de Verão da Argentina", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "SAST": "Horário da África do Sul", "ADT": "Horário de Verão do Atlântico", "PST": "Horário Padrão do Pacífico", "CLST": "Horário de Verão do Chile", "WART": "Horário Padrão da Argentina Ocidental", "AEST": "Horário Padrão da Austrália Oriental", "HNEG": "Horário Padrão da Groelândia Oriental", "HENOMX": "Horário de Verão do Noroeste do México", "UYT": "Horário Padrão do Uruguai", "HNCU": "Horário Padrão de Cuba", "EDT": "Horário de Verão Oriental", "BT": "Horário do Butão", "PDT": "Horário de Verão do Pacífico", "WEZ": "Horário Padrão da Europa Ocidental", "WESZ": "Horário de Verão da Europa Ocidental", "WITA": "Horário da Indonésia Central", "LHDT": "Horário de Verão de Lord Howe", "AKST": "Horário Padrão do Alasca", "HKST": "Horário de Verão de Hong Kong", "CDT": "Horário de Verão Central", "MESZ": "Horário de Verão da Europa Central", "JST": "Horário Padrão do Japão", "ChST": "Horário de Chamorro", "HEPMX": "Horário de Verão do Pacífico do México", "UYST": "Horário de Verão do Uruguai", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "HNOG": "Horário Padrão da Groenlândia Ocidental", "AWDT": "Horário de Verão da Austrália Ocidental", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "WAST": "Horário de Verão da África Ocidental"},
+ timezones: map[string]string{"ADT": "Horário de Verão do Atlântico", "EST": "Horário Padrão Oriental", "EDT": "Horário de Verão Oriental", "COT": "Horário Padrão da Colômbia", "SGT": "Horário Padrão de Cingapura", "ECT": "Horário do Equador", "PST": "Horário Padrão do Pacífico", "PDT": "Horário de Verão do Pacífico", "HNPMX": "Horário Padrão do Pacífico do México", "HEPMX": "Horário de Verão do Pacífico do México", "SAST": "Horário da África do Sul", "WIB": "Horário da Indonésia Ocidental", "BOT": "Horário da Bolívia", "HEOG": "Horário de Verão da Groenlândia Ocidental", "HNNOMX": "Horário Padrão do Noroeste do México", "∅∅∅": "Horário de Verão de Brasília", "CHADT": "Horário de Verão de Chatham", "NZDT": "Horário de Verão da Nova Zelândia", "ACDT": "Horário de Verão da Austrália Central", "CLST": "Horário de Verão do Chile", "AST": "Horário Padrão do Atlântico", "HKST": "Horário de Verão de Hong Kong", "AEDT": "Horário de Verão da Austrália Oriental", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "JST": "Horário Padrão do Japão", "WARST": "Horário de Verão da Argentina Ocidental", "CLT": "Horário Padrão do Chile", "ChST": "Horário de Chamorro", "HNEG": "Horário Padrão da Groelândia Oriental", "AKDT": "Horário de Verão do Alasca", "LHDT": "Horário de Verão de Lord Howe", "WEZ": "Horário Padrão da Europa Ocidental", "WESZ": "Horário de Verão da Europa Ocidental", "ARST": "Horário de Verão da Argentina", "WAST": "Horário de Verão da África Ocidental", "IST": "Horário Padrão da Índia", "WAT": "Horário Padrão da África Ocidental", "UYT": "Horário Padrão do Uruguai", "COST": "Horário de Verão da Colômbia", "HAT": "Horário de Verão de Terra Nova", "UYST": "Horário de Verão do Uruguai", "LHST": "Horário Padrão de Lord Howe", "CAT": "Horário da África Central", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "JDT": "Horário de Verão do Japão", "MDT": "Horário de Verão de Macau", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "HNCU": "Horário Padrão de Cuba", "NZST": "Horário Padrão da Nova Zelândia", "VET": "Horário da Venezuela", "WART": "Horário Padrão da Argentina Ocidental", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "HNOG": "Horário Padrão da Groenlândia Ocidental", "SRT": "Horário do Suriname", "AWDT": "Horário de Verão da Austrália Ocidental", "HKT": "Horário Padrão de Hong Kong", "HNT": "Horário Padrão de Terra Nova", "HEEG": "Horário de Verão da Groelândia Oriental", "GFT": "Horário da Guiana Francesa", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "HECU": "Horário de Verão de Cuba", "AWST": "Horário Padrão da Austrália Ocidental", "TMT": "Horário Padrão do Turcomenistão", "ACST": "Horário Padrão da Austrália Central", "MYT": "Horário da Malásia", "GYT": "Horário da Guiana", "EAT": "Horário da África Oriental", "WIT": "Horário da Indonésia Oriental", "GMT": "Horário do Meridiano de Greenwich", "ART": "Horário Padrão da Argentina", "AEST": "Horário Padrão da Austrália Oriental", "CST": "Horário Padrão Central", "MESZ": "Horário de Verão da Europa Central", "OEZ": "Horário Padrão da Europa Oriental", "OESZ": "Horário de Verão da Europa Oriental", "MEZ": "Horário Padrão da Europa Central", "BT": "Horário do Butão", "WITA": "Horário da Indonésia Central", "AKST": "Horário Padrão do Alasca", "CDT": "Horário de Verão Central", "CHAST": "Horário Padrão de Chatham", "TMST": "Horário de Verão do Turcomenistão", "MST": "Horário Padrão de Macau", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "HENOMX": "Horário de Verão do Noroeste do México"},
}
}
diff --git a/pt_PT/pt_PT.go b/pt_PT/pt_PT.go
index 25aaba1d..03540cad 100644
--- a/pt_PT/pt_PT.go
+++ b/pt_PT/pt_PT.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.E.C.", "E.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"ACDT": "Hora de verão da Austrália Central", "EDT": "Hora de verão Oriental", "LHDT": "Hora de verão de Lord Howe", "IST": "Hora padrão da Índia", "HEEG": "Hora de verão da Gronelândia Oriental", "ACWST": "Hora padrão da Austrália Central Ocidental", "AWST": "Hora padrão da Austrália Ocidental", "HKT": "Hora padrão de Hong Kong", "WITA": "Hora da Indonésia Central", "MEZ": "Hora padrão da Europa Central", "ACST": "Hora padrão da Austrália Central", "∅∅∅": "Hora de verão do Peru", "MDT": "Hora de verão de Macau", "AEST": "Hora padrão da Austrália Oriental", "JST": "Hora padrão do Japão", "HECU": "Hora de verão de Cuba", "HADT": "Hora de verão do Havai e Aleutas", "HEOG": "Hora de verão da Gronelândia Ocidental", "LHST": "Hora padrão de Lord Howe", "HNEG": "Hora padrão da Gronelândia Oriental", "WAT": "Hora padrão da África Ocidental", "OEZ": "Hora padrão da Europa Oriental", "SRT": "Hora do Suriname", "ART": "Hora padrão da Argentina", "CLT": "Hora padrão do Chile", "WAST": "Hora de verão da África Ocidental", "UYST": "Hora de verão do Uruguai", "PDT": "Hora de verão do Pacífico", "AWDT": "Hora de verão da Austrália Ocidental", "AEDT": "Hora de verão da Austrália Oriental", "HNPMX": "Hora padrão do Pacífico Mexicano", "MESZ": "Hora de verão da Europa Central", "JDT": "Hora de verão do Japão", "NZDT": "Hora de verão da Nova Zelândia", "WARST": "Hora de verão da Argentina Ocidental", "ADT": "Hora de verão do Atlântico", "VET": "Hora da Venezuela", "HKST": "Hora de verão de Hong Kong", "HNPM": "Hora padrão de São Pedro e Miquelão", "WIB": "Hora da Indonésia Ocidental", "HNOG": "Hora padrão da Gronelândia Ocidental", "OESZ": "Hora de verão da Europa Oriental", "ECT": "Hora do Equador", "HNNOMX": "Hora padrão do Noroeste do México", "HENOMX": "Hora de verão do Noroeste do México", "AST": "Hora padrão do Atlântico", "HNCU": "Hora padrão de Cuba", "WESZ": "Hora de verão da Europa Ocidental", "GFT": "Hora da Guiana Francesa", "EAT": "Hora da África Oriental", "CAT": "Hora da África Central", "AKDT": "Hora de verão do Alasca", "HNT": "Hora padrão da Terra Nova", "PST": "Hora padrão do Pacífico", "CHADT": "Hora de verão do Chatham", "CLST": "Hora de verão do Chile", "BOT": "Hora da Bolívia", "GMT": "Hora de Greenwich", "CST": "Hora padrão Central", "HAST": "Hora padrão do Havai e Aleutas", "ACWDT": "Hora de verão da Austrália Central Ocidental", "NZST": "Hora padrão da Nova Zelândia", "AKST": "Hora padrão do Alasca", "GYT": "Hora da Guiana", "HEPM": "Hora de verão de São Pedro e Miquelão", "ChST": "Hora padrão do Chamorro", "BT": "Hora do Butão", "WEZ": "Hora padrão da Europa Ocidental", "HAT": "Hora de verão da Terra Nova", "HEPMX": "Hora de verão do Pacífico Mexicano", "EST": "Hora padrão Oriental", "CDT": "Hora de verão Central", "MYT": "Hora da Malásia", "WIT": "Hora da Indonésia Oriental", "ARST": "Hora de verão da Argentina", "TMT": "Hora padrão do Turquemenistão", "TMST": "Hora de verão do Turquemenistão", "WART": "Hora padrão da Argentina Ocidental", "SGT": "Hora padrão de Singapura", "MST": "Hora padrão de Macau", "UYT": "Hora padrão do Uruguai", "SAST": "Hora da África do Sul", "COT": "Hora padrão da Colômbia", "COST": "Hora de verão da Colômbia", "CHAST": "Hora padrão do Chatham"},
+ timezones: map[string]string{"EST": "Hora padrão Oriental", "LHST": "Hora padrão de Lord Howe", "AWST": "Hora padrão da Austrália Ocidental", "NZDT": "Hora de verão da Nova Zelândia", "WEZ": "Hora padrão da Europa Ocidental", "WESZ": "Hora de verão da Europa Ocidental", "ART": "Hora padrão da Argentina", "ARST": "Hora de verão da Argentina", "HNPMX": "Hora padrão do Pacífico Mexicano", "HENOMX": "Hora de verão do Noroeste do México", "ChST": "Hora padrão do Chamorro", "GYT": "Hora da Guiana", "WIB": "Hora da Indonésia Ocidental", "NZST": "Hora padrão da Nova Zelândia", "WARST": "Hora de verão da Argentina Ocidental", "WAST": "Hora de verão da África Ocidental", "AEDT": "Hora de verão da Austrália Oriental", "UYST": "Hora de verão do Uruguai", "AWDT": "Hora de verão da Austrália Ocidental", "PDT": "Hora de verão do Pacífico", "VET": "Hora da Venezuela", "WAT": "Hora padrão da África Ocidental", "HNNOMX": "Hora padrão do Noroeste do México", "AEST": "Hora padrão da Austrália Oriental", "AKDT": "Hora de verão do Alasca", "SRT": "Hora do Suriname", "CHAST": "Hora padrão do Chatham", "ECT": "Hora do Equador", "ACWDT": "Hora de verão da Austrália Central Ocidental", "MEZ": "Hora padrão da Europa Central", "TMT": "Hora padrão do Turquemenistão", "WITA": "Hora da Indonésia Central", "ADT": "Hora de verão do Atlântico", "TMST": "Hora de verão do Turquemenistão", "ACDT": "Hora de verão da Austrália Central", "HNPM": "Hora padrão de São Pedro e Miquelão", "JST": "Hora padrão do Japão", "MDT": "Hora de verão de Macau", "HECU": "Hora de verão de Cuba", "ACST": "Hora padrão da Austrália Central", "CDT": "Hora de verão Central", "∅∅∅": "Hora de verão do Amazonas", "WART": "Hora padrão da Argentina Ocidental", "COST": "Hora de verão da Colômbia", "UYT": "Hora padrão do Uruguai", "BOT": "Hora da Bolívia", "HAST": "Hora padrão do Havai e Aleutas", "SAST": "Hora da África do Sul", "CST": "Hora padrão Central", "LHDT": "Hora de verão de Lord Howe", "HNCU": "Hora padrão de Cuba", "SGT": "Hora padrão de Singapura", "HADT": "Hora de verão do Havai e Aleutas", "CAT": "Hora da África Central", "ACWST": "Hora padrão da Austrália Central Ocidental", "AST": "Hora padrão do Atlântico", "OEZ": "Hora padrão da Europa Oriental", "GMT": "Hora de Greenwich", "CLT": "Hora padrão do Chile", "HKT": "Hora padrão de Hong Kong", "HKST": "Hora de verão de Hong Kong", "JDT": "Hora de verão do Japão", "MST": "Hora padrão de Macau", "COT": "Hora padrão da Colômbia", "HNEG": "Hora padrão da Gronelândia Oriental", "MYT": "Hora da Malásia", "AKST": "Hora padrão do Alasca", "HEPM": "Hora de verão de São Pedro e Miquelão", "HEPMX": "Hora de verão do Pacífico Mexicano", "EAT": "Hora da África Oriental", "HNT": "Hora padrão da Terra Nova", "HAT": "Hora de verão da Terra Nova", "CHADT": "Hora de verão do Chatham", "PST": "Hora padrão do Pacífico", "CLST": "Hora de verão do Chile", "HNOG": "Hora padrão da Gronelândia Ocidental", "HEOG": "Hora de verão da Gronelândia Ocidental", "OESZ": "Hora de verão da Europa Oriental", "GFT": "Hora da Guiana Francesa", "IST": "Hora padrão da Índia", "MESZ": "Hora de verão da Europa Central", "EDT": "Hora de verão Oriental", "BT": "Hora do Butão", "HEEG": "Hora de verão da Gronelândia Oriental", "WIT": "Hora da Indonésia Oriental"},
}
}
@@ -102,7 +102,7 @@ func (pt *pt_PT) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
- if n >= 0 && n <= 2 && n != 2 {
+ if n == 1 && v == 0 {
return locales.PluralRuleOne
}
diff --git a/pt_ST/pt_ST.go b/pt_ST/pt_ST.go
index e0ad2eac..30cd725d 100644
--- a/pt_ST/pt_ST.go
+++ b/pt_ST/pt_ST.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "depois de Cristo"},
- timezones: map[string]string{"UYST": "Horário de Verão do Uruguai", "WEZ": "Horário Padrão da Europa Ocidental", "CHADT": "Horário de Verão de Chatham", "COT": "Horário Padrão da Colômbia", "HNNOMX": "Horário Padrão do Noroeste do México", "MDT": "Horário de Verão de Macau", "HNPMX": "Horário Padrão do Pacífico do México", "GYT": "Horário da Guiana", "ACST": "Horário Padrão da Austrália Central", "LHDT": "Horário de Verão de Lord Howe", "NZST": "Horário Padrão da Nova Zelândia", "GFT": "Horário da Guiana Francesa", "OESZ": "Horário de Verão da Europa Oriental", "MST": "Horário Padrão de Macau", "ADT": "Horário de Verão do Atlântico", "WIT": "Horário da Indonésia Oriental", "PST": "Horário Padrão do Pacífico", "OEZ": "Horário Padrão da Europa Oriental", "HEPMX": "Horário de Verão do Pacífico do México", "HKT": "Horário Padrão de Hong Kong", "MEZ": "Horário Padrão da Europa Central", "IST": "Horário Padrão da Índia", "WART": "Horário Padrão da Argentina Ocidental", "HECU": "Horário de Verão de Cuba", "AST": "Horário Padrão do Atlântico", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "CLST": "Horário de Verão do Chile", "AEDT": "Horário de Verão da Austrália Oriental", "BOT": "Horário da Bolívia", "ECT": "Horário do Equador", "WARST": "Horário de Verão da Argentina Ocidental", "EST": "Horário Padrão Oriental", "AWST": "Horário Padrão da Austrália Ocidental", "AWDT": "Horário de Verão da Austrália Ocidental", "HEEG": "Horário de Verão da Groelândia Oriental", "COST": "Horário de Verão da Colômbia", "EDT": "Horário de Verão Oriental", "HEOG": "Horário de Verão da Groenlândia Ocidental", "WESZ": "Horário de Verão da Europa Ocidental", "HAT": "Horário de Verão de Terra Nova", "TMST": "Horário de Verão do Turcomenistão", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "JDT": "Horário de Verão do Japão", "SGT": "Horário Padrão de Cingapura", "HNCU": "Horário Padrão de Cuba", "MYT": "Horário da Malásia", "CDT": "Horário de Verão Central", "HKST": "Horário de Verão de Hong Kong", "EAT": "Horário da África Oriental", "AKDT": "Horário de Verão do Alasca", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "MESZ": "Horário de Verão da Europa Central", "HNEG": "Horário Padrão da Groelândia Oriental", "JST": "Horário Padrão do Japão", "ACDT": "Horário de Verão da Austrália Central", "CAT": "Horário da África Central", "GMT": "Horário do Meridiano de Greenwich", "WIB": "Horário da Indonésia Ocidental", "HNT": "Horário Padrão de Terra Nova", "CHAST": "Horário Padrão de Chatham", "UYT": "Horário Padrão do Uruguai", "PDT": "Horário de Verão do Pacífico", "LHST": "Horário Padrão de Lord Howe", "TMT": "Horário Padrão do Turcomenistão", "AKST": "Horário Padrão do Alasca", "ARST": "Horário de Verão da Argentina", "NZDT": "Horário de Verão da Nova Zelândia", "SAST": "Horário da África do Sul", "∅∅∅": "Horário de Verão do Peru", "CST": "Horário Padrão Central", "SRT": "Horário do Suriname", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "WITA": "Horário da Indonésia Central", "WAST": "Horário de Verão da África Ocidental", "HENOMX": "Horário de Verão do Noroeste do México", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "CLT": "Horário Padrão do Chile", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "BT": "Horário do Butão", "HNOG": "Horário Padrão da Groenlândia Ocidental", "AEST": "Horário Padrão da Austrália Oriental", "WAT": "Horário Padrão da África Ocidental", "VET": "Horário da Venezuela", "ART": "Horário Padrão da Argentina", "ChST": "Horário de Chamorro"},
+ timezones: map[string]string{"HEOG": "Horário de Verão da Groenlândia Ocidental", "ADT": "Horário de Verão do Atlântico", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "CAT": "Horário da África Central", "WITA": "Horário da Indonésia Central", "GYT": "Horário da Guiana", "HKST": "Horário de Verão de Hong Kong", "NZDT": "Horário de Verão da Nova Zelândia", "TMT": "Horário Padrão do Turcomenistão", "ACDT": "Horário de Verão da Austrália Central", "EAT": "Horário da África Oriental", "AWST": "Horário Padrão da Austrália Ocidental", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "OEZ": "Horário Padrão da Europa Oriental", "COST": "Horário de Verão da Colômbia", "HNNOMX": "Horário Padrão do Noroeste do México", "HENOMX": "Horário de Verão do Noroeste do México", "AKDT": "Horário de Verão do Alasca", "∅∅∅": "Horário de Verão de Brasília", "CST": "Horário Padrão Central", "GMT": "Horário do Meridiano de Greenwich", "HNPMX": "Horário Padrão do Pacífico do México", "WIT": "Horário da Indonésia Oriental", "PST": "Horário Padrão do Pacífico", "HAT": "Horário de Verão de Terra Nova", "AEDT": "Horário de Verão da Austrália Oriental", "UYT": "Horário Padrão do Uruguai", "JDT": "Horário de Verão do Japão", "WAT": "Horário Padrão da África Ocidental", "TMST": "Horário de Verão do Turcomenistão", "SRT": "Horário do Suriname", "MESZ": "Horário de Verão da Europa Central", "MYT": "Horário da Malásia", "WAST": "Horário de Verão da África Ocidental", "GFT": "Horário da Guiana Francesa", "CLT": "Horário Padrão do Chile", "ARST": "Horário de Verão da Argentina", "WEZ": "Horário Padrão da Europa Ocidental", "WART": "Horário Padrão da Argentina Ocidental", "COT": "Horário Padrão da Colômbia", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "CDT": "Horário de Verão Central", "AWDT": "Horário de Verão da Austrália Ocidental", "HNEG": "Horário Padrão da Groelândia Oriental", "ECT": "Horário do Equador", "ACST": "Horário Padrão da Austrália Central", "BT": "Horário do Butão", "AKST": "Horário Padrão do Alasca", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "JST": "Horário Padrão do Japão", "MEZ": "Horário Padrão da Europa Central", "HNOG": "Horário Padrão da Groenlândia Ocidental", "EST": "Horário Padrão Oriental", "AEST": "Horário Padrão da Austrália Oriental", "UYST": "Horário de Verão do Uruguai", "WIB": "Horário da Indonésia Ocidental", "SGT": "Horário Padrão de Cingapura", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "AST": "Horário Padrão do Atlântico", "MDT": "Horário de Verão de Macau", "HKT": "Horário Padrão de Hong Kong", "HEEG": "Horário de Verão da Groelândia Oriental", "CHADT": "Horário de Verão de Chatham", "PDT": "Horário de Verão do Pacífico", "MST": "Horário Padrão de Macau", "LHST": "Horário Padrão de Lord Howe", "LHDT": "Horário de Verão de Lord Howe", "HEPMX": "Horário de Verão do Pacífico do México", "CHAST": "Horário Padrão de Chatham", "OESZ": "Horário de Verão da Europa Oriental", "IST": "Horário Padrão da Índia", "VET": "Horário da Venezuela", "WESZ": "Horário de Verão da Europa Ocidental", "EDT": "Horário de Verão Oriental", "HNT": "Horário Padrão de Terra Nova", "HECU": "Horário de Verão de Cuba", "BOT": "Horário da Bolívia", "WARST": "Horário de Verão da Argentina Ocidental", "CLST": "Horário de Verão do Chile", "ART": "Horário Padrão da Argentina", "ChST": "Horário de Chamorro", "SAST": "Horário da África do Sul", "HNCU": "Horário Padrão de Cuba", "NZST": "Horário Padrão da Nova Zelândia"},
}
}
diff --git a/pt_TL/pt_TL.go b/pt_TL/pt_TL.go
index 36bb1319..e55edb20 100644
--- a/pt_TL/pt_TL.go
+++ b/pt_TL/pt_TL.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"a.C.", "d.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"antes de Cristo", "depois de Cristo"},
- timezones: map[string]string{"MST": "Horário Padrão de Macau", "HEEG": "Horário de Verão da Groelândia Oriental", "CAT": "Horário da África Central", "OESZ": "Horário de Verão da Europa Oriental", "HNNOMX": "Horário Padrão do Noroeste do México", "EST": "Horário Padrão Oriental", "JST": "Horário Padrão do Japão", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "WESZ": "Horário de Verão da Europa Ocidental", "NZST": "Horário Padrão da Nova Zelândia", "ACST": "Horário Padrão da Austrália Central", "WAST": "Horário de Verão da África Ocidental", "HECU": "Horário de Verão de Cuba", "HNPMX": "Horário Padrão do Pacífico do México", "CST": "Horário Padrão Central", "HNCU": "Horário Padrão de Cuba", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "EAT": "Horário da África Oriental", "OEZ": "Horário Padrão da Europa Oriental", "MDT": "Horário de Verão de Macau", "LHST": "Horário Padrão de Lord Howe", "WAT": "Horário Padrão da África Ocidental", "PDT": "Horário de Verão do Pacífico", "BOT": "Horário da Bolívia", "CLST": "Horário de Verão do Chile", "COT": "Horário Padrão da Colômbia", "GYT": "Horário da Guiana", "CHADT": "Horário de Verão de Chatham", "HKT": "Horário Padrão de Hong Kong", "MYT": "Horário da Malásia", "BT": "Horário do Butão", "PST": "Horário Padrão do Pacífico", "LHDT": "Horário de Verão de Lord Howe", "CHAST": "Horário Padrão de Chatham", "MESZ": "Horário de Verão da Europa Central", "JDT": "Horário de Verão do Japão", "COST": "Horário de Verão da Colômbia", "AKST": "Horário Padrão do Alasca", "ART": "Horário Padrão da Argentina", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "MEZ": "Horário Padrão da Europa Central", "CLT": "Horário Padrão do Chile", "ChST": "Horário de Chamorro", "WARST": "Horário de Verão da Argentina Ocidental", "VET": "Horário da Venezuela", "HNOG": "Horário Padrão da Groenlândia Ocidental", "WIT": "Horário da Indonésia Oriental", "ARST": "Horário de Verão da Argentina", "CDT": "Horário de Verão Central", "UYT": "Horário Padrão do Uruguai", "WIB": "Horário da Indonésia Ocidental", "AWST": "Horário Padrão da Austrália Ocidental", "IST": "Horário Padrão da Índia", "SAST": "Horário da África do Sul", "HNEG": "Horário Padrão da Groelândia Oriental", "TMT": "Horário Padrão do Turcomenistão", "WART": "Horário Padrão da Argentina Ocidental", "GMT": "Horário do Meridiano de Greenwich", "AST": "Horário Padrão do Atlântico", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "ECT": "Horário do Equador", "EDT": "Horário de Verão Oriental", "UYST": "Horário de Verão do Uruguai", "WEZ": "Horário Padrão da Europa Ocidental", "AEST": "Horário Padrão da Austrália Oriental", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "TMST": "Horário de Verão do Turcomenistão", "SRT": "Horário do Suriname", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "HKST": "Horário de Verão de Hong Kong", "HEOG": "Horário de Verão da Groenlândia Ocidental", "AWDT": "Horário de Verão da Austrália Ocidental", "ACDT": "Horário de Verão da Austrália Central", "HENOMX": "Horário de Verão do Noroeste do México", "ADT": "Horário de Verão do Atlântico", "HNT": "Horário Padrão de Terra Nova", "AKDT": "Horário de Verão do Alasca", "HAT": "Horário de Verão de Terra Nova", "WITA": "Horário da Indonésia Central", "AEDT": "Horário de Verão da Austrália Oriental", "NZDT": "Horário de Verão da Nova Zelândia", "SGT": "Horário Padrão de Cingapura", "∅∅∅": "Horário de Verão dos Açores", "HEPMX": "Horário de Verão do Pacífico do México", "GFT": "Horário da Guiana Francesa"},
+ timezones: map[string]string{"NZST": "Horário Padrão da Nova Zelândia", "MESZ": "Horário de Verão da Europa Central", "JDT": "Horário de Verão do Japão", "COST": "Horário de Verão da Colômbia", "IST": "Horário Padrão da Índia", "HEPMX": "Horário de Verão do Pacífico do México", "GYT": "Horário da Guiana", "EAT": "Horário da África Oriental", "VET": "Horário da Venezuela", "HNOG": "Horário Padrão da Groenlândia Ocidental", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "HKT": "Horário Padrão de Hong Kong", "SGT": "Horário Padrão de Cingapura", "HNPMX": "Horário Padrão do Pacífico do México", "CAT": "Horário da África Central", "MEZ": "Horário Padrão da Europa Central", "OEZ": "Horário Padrão da Europa Oriental", "GFT": "Horário da Guiana Francesa", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "∅∅∅": "Horário de Verão dos Açores", "HNCU": "Horário Padrão de Cuba", "CDT": "Horário de Verão Central", "CHADT": "Horário de Verão de Chatham", "TMT": "Horário Padrão do Turcomenistão", "BT": "Horário do Butão", "WITA": "Horário da Indonésia Central", "HEEG": "Horário de Verão da Groelândia Oriental", "NZDT": "Horário de Verão da Nova Zelândia", "EDT": "Horário de Verão Oriental", "HNT": "Horário Padrão de Terra Nova", "HNEG": "Horário Padrão da Groelândia Oriental", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "ECT": "Horário do Equador", "WART": "Horário Padrão da Argentina Ocidental", "HEOG": "Horário de Verão da Groenlândia Ocidental", "AST": "Horário Padrão do Atlântico", "WEZ": "Horário Padrão da Europa Ocidental", "WESZ": "Horário de Verão da Europa Ocidental", "WAST": "Horário de Verão da África Ocidental", "BOT": "Horário da Bolívia", "SRT": "Horário do Suriname", "HECU": "Horário de Verão de Cuba", "WIB": "Horário da Indonésia Ocidental", "AWST": "Horário Padrão da Austrália Ocidental", "PDT": "Horário de Verão do Pacífico", "TMST": "Horário de Verão do Turcomenistão", "MST": "Horário Padrão da Montanha", "MYT": "Horário da Malásia", "AKST": "Horário Padrão do Alasca", "LHDT": "Horário de Verão de Lord Howe", "OESZ": "Horário de Verão da Europa Oriental", "EST": "Horário Padrão Oriental", "HNNOMX": "Horário Padrão do Noroeste do México", "UYST": "Horário de Verão do Uruguai", "AWDT": "Horário de Verão da Austrália Ocidental", "WAT": "Horário Padrão da África Ocidental", "ACDT": "Horário de Verão da Austrália Central", "CST": "Horário Padrão Central", "AEDT": "Horário de Verão da Austrália Oriental", "CHAST": "Horário Padrão de Chatham", "MDT": "Horário de Verão da Montanha", "SAST": "Horário da África do Sul", "WIT": "Horário da Indonésia Oriental", "PST": "Horário Padrão do Pacífico", "JST": "Horário Padrão do Japão", "HKST": "Horário de Verão de Hong Kong", "ACST": "Horário Padrão da Austrália Central", "HENOMX": "Horário de Verão do Noroeste do México", "AKDT": "Horário de Verão do Alasca", "CLST": "Horário de Verão do Chile", "ADT": "Horário de Verão do Atlântico", "ART": "Horário Padrão da Argentina", "ARST": "Horário de Verão da Argentina", "CLT": "Horário Padrão do Chile", "ChST": "Horário de Chamorro", "UYT": "Horário Padrão do Uruguai", "LHST": "Horário Padrão de Lord Howe", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "WARST": "Horário de Verão da Argentina Ocidental", "AEST": "Horário Padrão da Austrália Oriental", "COT": "Horário Padrão da Colômbia", "HAT": "Horário de Verão de Terra Nova", "GMT": "Horário do Meridiano de Greenwich"},
}
}
diff --git a/qu/qu.go b/qu/qu.go
index 9d1c84e9..59233aa4 100644
--- a/qu/qu.go
+++ b/qu/qu.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HNPMX": "HNPMX", "AKDT": "AKDT", "SRT": "SRT", "WEZ": "WEZ", "LHDT": "LHDT", "WAST": "WAST", "OESZ": "OESZ", "WARST": "WARST", "HEPMX": "HEPMX", "HNT": "HNT", "GFT": "GFT", "ACST": "ACST", "HENOMX": "HENOMX", "WART": "WART", "SAST": "SAST", "HNEG": "HNEG", "WAT": "WAT", "CST": "CST", "ACWST": "ACWST", "ADT": "ADT", "ACDT": "ACDT", "ECT": "ECT", "ARST": "ARST", "MST": "MST", "HADT": "HADT", "HEPM": "HEPM", "BT": "BT", "CLST": "CLST", "COST": "COST", "EDT": "EDT", "WIB": "WIB", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "HKT": "HKT", "LHST": "LHST", "CHADT": "CHADT", "MESZ": "MESZ", "IST": "IST", "CLT": "CLT", "HNCU": "HNCU", "UYST": "UYST", "AEST": "AEST", "HEEG": "HEEG", "TMT": "TMT", "TMST": "TMST", "VET": "VET", "HEOG": "HEOG", "AEDT": "AEDT", "NZST": "NZST", "ChST": "ChST", "EAT": "EAT", "SGT": "SGT", "MDT": "MDT", "GYT": "GYT", "MYT": "MYT", "AWDT": "AWDT", "JDT": "JDT", "BOT": "BOT", "CAT": "CAT", "EST": "EST", "AKST": "AKST", "WITA": "WITA", "OEZ": "OEZ", "ART": "ART", "PST": "PST", "GMT": "GMT", "ACWDT": "ACWDT", "WIT": "WIT", "HNPM": "HNPM", "NZDT": "NZDT", "HAST": "HAST", "HAT": "HAT", "HNOG": "HNOG", "AWST": "AWST", "HKST": "HKST", "COT": "COT", "HECU": "HECU", "UYT": "UYT", "MEZ": "MEZ", "JST": "JST", "PDT": "PDT", "CHAST": "CHAST", "HNNOMX": "HNNOMX", "CDT": "CDT", "AST": "AST"},
+ timezones: map[string]string{"SGT": "SGT", "GMT": "GMT", "HNPMX": "HNPMX", "WITA": "WITA", "AKDT": "AKDT", "HEPM": "HEPM", "SRT": "SRT", "AWST": "AWST", "MEZ": "MEZ", "EDT": "EDT", "HNT": "HNT", "HNPM": "HNPM", "AWDT": "AWDT", "HADT": "HADT", "NZDT": "NZDT", "OESZ": "OESZ", "AEST": "AEST", "AKST": "AKST", "PDT": "PDT", "WEZ": "WEZ", "HENOMX": "HENOMX", "HNOG": "HNOG", "ARST": "ARST", "HKT": "HKT", "PST": "PST", "NZST": "NZST", "CAT": "CAT", "COT": "COT", "GFT": "GFT", "UYT": "UYT", "GYT": "GYT", "WIB": "WIB", "WIT": "WIT", "MYT": "MYT", "CLT": "CLT", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "HKST": "HKST", "IST": "IST", "ACWDT": "ACWDT", "TMT": "TMT", "HNCU": "HNCU", "EST": "EST", "ChST": "ChST", "HEPMX": "HEPMX", "ECT": "ECT", "WARST": "WARST", "MST": "MST", "UYST": "UYST", "ACWST": "ACWST", "OEZ": "OEZ", "AEDT": "AEDT", "LHDT": "LHDT", "CHADT": "CHADT", "MESZ": "MESZ", "HEOG": "HEOG", "COST": "COST", "ACDT": "ACDT", "BT": "BT", "EAT": "EAT", "ART": "ART", "WAST": "WAST", "WART": "WART", "ADT": "ADT", "WAT": "WAT", "HEEG": "HEEG", "LHST": "LHST", "HECU": "HECU", "VET": "VET", "JDT": "JDT", "HAST": "HAST", "MDT": "MDT", "HNNOMX": "HNNOMX", "ACST": "ACST", "SAST": "SAST", "CDT": "CDT", "CLST": "CLST", "TMST": "TMST", "HAT": "HAT", "HNEG": "HNEG", "CST": "CST", "BOT": "BOT", "CHAST": "CHAST", "JST": "JST", "AST": "AST"},
}
}
diff --git a/qu_BO/qu_BO.go b/qu_BO/qu_BO.go
index a0b2372d..60eb1345 100644
--- a/qu_BO/qu_BO.go
+++ b/qu_BO/qu_BO.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HEPMX": "HEPMX", "WIT": "WIT", "WEZ": "WEZ", "HEOG": "HEOG", "CHADT": "CHADT", "ACST": "ACST", "BOT": "BOT", "EAT": "EAT", "EDT": "EDT", "WESZ": "WESZ", "HNT": "HNT", "CLST": "CLST", "JST": "JST", "ACDT": "ACDT", "CAT": "CAT", "COST": "COST", "MST": "MST", "AKST": "AKST", "HAT": "HAT", "NZDT": "NZDT", "TMST": "TMST", "SGT": "SGT", "MYT": "MYT", "CDT": "CDT", "GYT": "GYT", "WIB": "WIB", "PDT": "PDT", "MESZ": "MESZ", "ChST": "ChST", "HNOG": "HNOG", "HKT": "HKT", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "JDT": "JDT", "HNEG": "HNEG", "EST": "EST", "AEST": "AEST", "HNCU": "HNCU", "CST": "CST", "AWDT": "AWDT", "IST": "IST", "WAST": "WAST", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "MEZ": "MEZ", "LHST": "LHST", "TMT": "TMT", "OEZ": "OEZ", "COT": "COT", "UYT": "UYT", "HNPM": "HNPM", "CLT": "CLT", "BT": "BT", "ACWST": "ACWST", "HKST": "HKST", "CHAST": "CHAST", "GMT": "GMT", "VET": "VET", "ART": "ART", "WITA": "WITA", "SAST": "SAST", "AST": "AST", "ECT": "ECT", "WARST": "WARST", "UYST": "UYST", "ADT": "ADT", "AWST": "AWST", "HEPM": "HEPM", "NZST": "NZST", "ACWDT": "ACWDT", "ARST": "ARST", "AEDT": "AEDT", "HENOMX": "HENOMX", "MDT": "MDT", "HAST": "HAST", "HEEG": "HEEG", "WAT": "WAT", "HADT": "HADT", "SRT": "SRT", "HECU": "HECU", "HNPMX": "HNPMX", "WART": "WART", "PST": "PST", "LHDT": "LHDT", "GFT": "GFT"},
+ timezones: map[string]string{"CDT": "CDT", "ACDT": "ACDT", "HEPMX": "HEPMX", "CST": "CST", "UYT": "UYT", "SAST": "SAST", "AWDT": "AWDT", "IST": "IST", "EDT": "EDT", "COT": "COT", "∅∅∅": "∅∅∅", "AEST": "AEST", "WEZ": "WEZ", "ARST": "ARST", "LHDT": "LHDT", "HNCU": "HNCU", "CHADT": "CHADT", "HAST": "HAST", "GMT": "GMT", "ACST": "ACST", "HNNOMX": "HNNOMX", "LHST": "LHST", "WIB": "WIB", "NZST": "NZST", "HNEG": "HNEG", "WITA": "WITA", "MST": "MST", "HENOMX": "HENOMX", "AEDT": "AEDT", "ACWDT": "ACWDT", "HADT": "HADT", "ACWST": "ACWST", "MESZ": "MESZ", "HEOG": "HEOG", "WESZ": "WESZ", "HAT": "HAT", "AKST": "AKST", "MDT": "MDT", "TMST": "TMST", "HKT": "HKT", "MEZ": "MEZ", "PDT": "PDT", "WART": "WART", "CLT": "CLT", "UYST": "UYST", "SRT": "SRT", "BOT": "BOT", "SGT": "SGT", "CLST": "CLST", "OESZ": "OESZ", "HNOG": "HNOG", "WAST": "WAST", "HEEG": "HEEG", "HNPM": "HNPM", "HEPM": "HEPM", "HECU": "HECU", "PST": "PST", "WAT": "WAT", "COST": "COST", "AKDT": "AKDT", "ChST": "ChST", "ECT": "ECT", "NZDT": "NZDT", "JST": "JST", "OEZ": "OEZ", "BT": "BT", "GYT": "GYT", "WIT": "WIT", "WARST": "WARST", "AST": "AST", "MYT": "MYT", "EST": "EST", "HKST": "HKST", "GFT": "GFT", "EAT": "EAT", "VET": "VET", "CHAST": "CHAST", "CAT": "CAT", "JDT": "JDT", "ADT": "ADT", "TMT": "TMT", "HNT": "HNT", "HNPMX": "HNPMX", "AWST": "AWST", "ART": "ART"},
}
}
diff --git a/qu_EC/qu_EC.go b/qu_EC/qu_EC.go
index 17651e4e..a3874886 100644
--- a/qu_EC/qu_EC.go
+++ b/qu_EC/qu_EC.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"TMST": "TMST", "UYT": "UYT", "WEZ": "WEZ", "LHST": "LHST", "MDT": "MDT", "WESZ": "WESZ", "CHADT": "CHADT", "OEZ": "OEZ", "OESZ": "OESZ", "WIT": "WIT", "SRT": "SRT", "JDT": "JDT", "MEZ": "MEZ", "ACST": "ACST", "WARST": "WARST", "HECU": "HECU", "AKST": "AKST", "ACWDT": "ACWDT", "HNT": "HNT", "HNEG": "HNEG", "CAT": "CAT", "HENOMX": "HENOMX", "SGT": "SGT", "EST": "EST", "EAT": "EAT", "WAT": "WAT", "GMT": "GMT", "WITA": "WITA", "CLST": "CLST", "HNNOMX": "HNNOMX", "UYST": "UYST", "ECT": "ECT", "HEOG": "HEOG", "AEST": "AEST", "IST": "IST", "GFT": "GFT", "AST": "AST", "ACWST": "ACWST", "ARST": "ARST", "AWST": "AWST", "AEDT": "AEDT", "HAST": "HAST", "HADT": "HADT", "HAT": "HAT", "ART": "ART", "HNPM": "HNPM", "WART": "WART", "HEPMX": "HEPMX", "ADT": "ADT", "ChST": "ChST", "NZDT": "NZDT", "CHAST": "CHAST", "MESZ": "MESZ", "HNPMX": "HNPMX", "HNOG": "HNOG", "JST": "JST", "COT": "COT", "HKST": "HKST", "CLT": "CLT", "BOT": "BOT", "TMT": "TMT", "COST": "COST", "MST": "MST", "HKT": "HKT", "PST": "PST", "AWDT": "AWDT", "LHDT": "LHDT", "NZST": "NZST", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "WIB": "WIB", "GYT": "GYT", "MYT": "MYT", "VET": "VET", "PDT": "PDT", "HEPM": "HEPM", "HNCU": "HNCU", "EDT": "EDT", "CST": "CST", "SAST": "SAST", "HEEG": "HEEG", "ACDT": "ACDT", "CDT": "CDT", "BT": "BT", "WAST": "WAST"},
+ timezones: map[string]string{"CST": "CST", "CDT": "CDT", "ECT": "ECT", "VET": "VET", "MYT": "MYT", "TMST": "TMST", "MST": "MST", "HKST": "HKST", "CHAST": "CHAST", "MEZ": "MEZ", "MESZ": "MESZ", "HNOG": "HNOG", "ART": "ART", "HEEG": "HEEG", "WIT": "WIT", "AST": "AST", "MDT": "MDT", "WAT": "WAT", "HEOG": "HEOG", "COT": "COT", "ChST": "ChST", "ACST": "ACST", "GFT": "GFT", "HEPMX": "HEPMX", "AWDT": "AWDT", "HAT": "HAT", "UYT": "UYT", "HADT": "HADT", "∅∅∅": "∅∅∅", "ADT": "ADT", "OEZ": "OEZ", "WESZ": "WESZ", "TMT": "TMT", "SRT": "SRT", "AWST": "AWST", "ACWDT": "ACWDT", "NZDT": "NZDT", "ARST": "ARST", "HNEG": "HNEG", "WITA": "WITA", "EAT": "EAT", "AEDT": "AEDT", "HECU": "HECU", "CHADT": "CHADT", "OESZ": "OESZ", "CLT": "CLT", "CLST": "CLST", "COST": "COST", "HENOMX": "HENOMX", "HNT": "HNT", "GYT": "GYT", "HAST": "HAST", "WEZ": "WEZ", "EDT": "EDT", "HKT": "HKT", "AKST": "AKST", "HNPMX": "HNPMX", "LHST": "LHST", "LHDT": "LHDT", "HNCU": "HNCU", "SGT": "SGT", "PDT": "PDT", "SAST": "SAST", "PST": "PST", "ACWST": "ACWST", "NZST": "NZST", "EST": "EST", "ACDT": "ACDT", "HEPM": "HEPM", "JST": "JST", "BT": "BT", "AEST": "AEST", "BOT": "BOT", "UYST": "UYST", "HNPM": "HNPM", "IST": "IST", "JDT": "JDT", "GMT": "GMT", "WART": "WART", "WARST": "WARST", "AKDT": "AKDT", "WIB": "WIB", "CAT": "CAT", "WAST": "WAST", "HNNOMX": "HNNOMX"},
}
}
diff --git a/qu_PE/qu_PE.go b/qu_PE/qu_PE.go
index 453c6274..bbe260c1 100644
--- a/qu_PE/qu_PE.go
+++ b/qu_PE/qu_PE.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HNEG": "HNEG", "HEOG": "HEOG", "AWST": "AWST", "WITA": "WITA", "ART": "ART", "MEZ": "MEZ", "SAST": "SAST", "HEEG": "HEEG", "TMT": "TMT", "GYT": "GYT", "NZST": "NZST", "WIT": "WIT", "ChST": "ChST", "HNNOMX": "HNNOMX", "GMT": "GMT", "MST": "MST", "UYST": "UYST", "MESZ": "MESZ", "BOT": "BOT", "WARST": "WARST", "COT": "COT", "MYT": "MYT", "JDT": "JDT", "ACDT": "ACDT", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "HNOG": "HNOG", "AEDT": "AEDT", "OESZ": "OESZ", "CST": "CST", "WESZ": "WESZ", "AEST": "AEST", "JST": "JST", "WAT": "WAT", "COST": "COST", "ACWDT": "ACWDT", "HAT": "HAT", "AWDT": "AWDT", "CHADT": "CHADT", "CLST": "CLST", "HEPMX": "HEPMX", "HAST": "HAST", "ACWST": "ACWST", "HNT": "HNT", "HEPM": "HEPM", "CHAST": "CHAST", "EDT": "EDT", "UYT": "UYT", "AKST": "AKST", "PST": "PST", "WAST": "WAST", "SGT": "SGT", "MDT": "MDT", "SRT": "SRT", "CDT": "CDT", "HKST": "HKST", "NZDT": "NZDT", "GFT": "GFT", "TMST": "TMST", "EAT": "EAT", "HECU": "HECU", "VET": "VET", "ARST": "ARST", "HKT": "HKT", "CLT": "CLT", "ACST": "ACST", "HNCU": "HNCU", "WIB": "WIB", "HADT": "HADT", "CAT": "CAT", "ECT": "ECT", "HENOMX": "HENOMX", "BT": "BT", "AST": "AST", "HNPM": "HNPM", "IST": "IST", "ADT": "ADT", "PDT": "PDT", "WEZ": "WEZ", "LHST": "LHST", "WART": "WART", "EST": "EST", "HNPMX": "HNPMX", "AKDT": "AKDT", "LHDT": "LHDT"},
+ timezones: map[string]string{"HNCU": "HNCU", "CAT": "CAT", "JDT": "JDT", "TMST": "TMST", "HNT": "HNT", "AEST": "AEST", "EST": "EST", "BOT": "BOT", "JST": "JST", "MESZ": "MESZ", "MYT": "MYT", "CLST": "CLST", "WIT": "WIT", "IST": "IST", "VET": "VET", "WEZ": "WEZ", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "PST": "PST", "HAST": "HAST", "ECT": "ECT", "OEZ": "OEZ", "ACST": "ACST", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "EDT": "EDT", "ChST": "ChST", "HECU": "HECU", "GFT": "GFT", "LHST": "LHST", "SRT": "SRT", "EAT": "EAT", "HNOG": "HNOG", "ARST": "ARST", "WAT": "WAT", "WAST": "WAST", "AWST": "AWST", "PDT": "PDT", "HADT": "HADT", "HKT": "HKT", "COST": "COST", "UYST": "UYST", "HEPMX": "HEPMX", "ACDT": "ACDT", "BT": "BT", "CHADT": "CHADT", "WESZ": "WESZ", "ADT": "ADT", "MDT": "MDT", "HENOMX": "HENOMX", "TMT": "TMT", "ART": "ART", "WITA": "WITA", "AKST": "AKST", "NZDT": "NZDT", "GMT": "GMT", "WART": "WART", "MST": "MST", "CST": "CST", "CHAST": "CHAST", "ACWDT": "ACWDT", "HEEG": "HEEG", "AKDT": "AKDT", "HNPMX": "HNPMX", "CDT": "CDT", "WIB": "WIB", "OESZ": "OESZ", "HEOG": "HEOG", "HKST": "HKST", "GYT": "GYT", "SGT": "SGT", "NZST": "NZST", "COT": "COT", "HAT": "HAT", "HNEG": "HNEG", "AWDT": "AWDT", "WARST": "WARST", "AST": "AST", "HEPM": "HEPM", "ACWST": "ACWST", "MEZ": "MEZ", "CLT": "CLT", "SAST": "SAST", "UYT": "UYT", "LHDT": "LHDT"},
}
}
diff --git a/rm/rm.go b/rm/rm.go
index ed281d88..1c2103b3 100644
--- a/rm/rm.go
+++ b/rm/rm.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. Cr.", "s. Cr."},
erasNarrow: []string{"", ""},
erasWide: []string{"avant Cristus", "suenter Cristus"},
- timezones: map[string]string{"LHST": "LHST", "JST": "JST", "ChST": "ChST", "EDT": "EDT", "UYT": "UYT", "AWDT": "AWDT", "OEZ": "OEZ", "HNPMX": "HNPMX", "AKDT": "AKDT", "MYT": "MYT", "ART": "ART", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "ACST": "ACST", "OESZ": "OESZ", "PST": "PST", "PDT": "PDT", "NZDT": "NZDT", "CLT": "CLT", "GFT": "GFT", "WITA": "WITA", "HAST": "HAST", "WESZ": "WESZ", "HEPM": "HEPM", "CHAST": "CHAST", "CLST": "CLST", "ACDT": "ACDT", "UYST": "UYST", "GYT": "GYT", "HNT": "HNT", "WART": "WART", "WIT": "WIT", "SRT": "SRT", "HNOG": "HNOG", "ARST": "ARST", "NZST": "NZST", "JDT": "JDT", "WARST": "WARST", "COST": "COST", "GMT": "GMT", "WIB": "WIB", "CST": "CST", "HAT": "HAT", "SAST": "SAST", "MDT": "MDT", "CDT": "CDT", "AST": "AST", "WEZ": "WEZ", "AEDT": "AEDT", "ACWDT": "ACWDT", "AEST": "AEST", "HKT": "HKT", "HNPM": "HNPM", "IST": "IST", "TMST": "TMST", "EST": "EST", "HKST": "HKST", "HENOMX": "HENOMX", "ADT": "ADT", "HECU": "HECU", "HADT": "HADT", "MESZ": "MESZ", "LHDT": "LHDT", "BOT": "BOT", "CAT": "CAT", "ECT": "ECT", "COT": "COT", "VET": "VET", "ACWST": "ACWST", "MEZ": "MEZ", "HNEG": "HNEG", "WAT": "WAT", "SGT": "SGT", "HNCU": "HNCU", "HEPMX": "HEPMX", "HEOG": "HEOG", "EAT": "EAT", "WAST": "WAST", "AKST": "AKST", "AWST": "AWST", "CHADT": "CHADT", "TMT": "TMT", "HNNOMX": "HNNOMX", "MST": "MST", "BT": "BT"},
+ timezones: map[string]string{"LHST": "LHST", "ACWST": "ACWST", "JDT": "JDT", "AEDT": "AEDT", "AKST": "AKST", "HEPMX": "HEPMX", "MEZ": "MEZ", "HENOMX": "HENOMX", "UYT": "UYT", "GYT": "GYT", "EAT": "EAT", "HECU": "HECU", "WAT": "WAT", "HNNOMX": "HNNOMX", "HAT": "HAT", "ChST": "ChST", "SGT": "SGT", "MESZ": "MESZ", "VET": "VET", "HEOG": "HEOG", "ART": "ART", "WITA": "WITA", "AKDT": "AKDT", "UYST": "UYST", "SAST": "SAST", "WIB": "WIB", "AWDT": "AWDT", "CAT": "CAT", "HNOG": "HNOG", "ADT": "ADT", "MST": "MST", "HNCU": "HNCU", "CST": "CST", "IST": "IST", "AST": "AST", "OEZ": "OEZ", "EST": "EST", "WIT": "WIT", "HKST": "HKST", "PST": "PST", "ACWDT": "ACWDT", "WARST": "WARST", "HNPMX": "HNPMX", "PDT": "PDT", "HAST": "HAST", "NZST": "NZST", "COT": "COT", "CHAST": "CHAST", "ACST": "ACST", "GFT": "GFT", "CHADT": "CHADT", "JST": "JST", "TMST": "TMST", "MDT": "MDT", "ARST": "ARST", "EDT": "EDT", "ACDT": "ACDT", "HEPM": "HEPM", "CDT": "CDT", "NZDT": "NZDT", "CLT": "CLT", "OESZ": "OESZ", "COST": "COST", "HEEG": "HEEG", "HNPM": "HNPM", "HADT": "HADT", "WEZ": "WEZ", "WAST": "WAST", "BT": "BT", "LHDT": "LHDT", "AWST": "AWST", "BOT": "BOT", "ECT": "ECT", "GMT": "GMT", "CLST": "CLST", "HKT": "HKT", "HNEG": "HNEG", "SRT": "SRT", "∅∅∅": "∅∅∅", "MYT": "MYT", "WART": "WART", "WESZ": "WESZ", "TMT": "TMT", "HNT": "HNT", "AEST": "AEST"},
}
}
diff --git a/rm_CH/rm_CH.go b/rm_CH/rm_CH.go
index 23172b72..edbee5bf 100644
--- a/rm_CH/rm_CH.go
+++ b/rm_CH/rm_CH.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"av. Cr.", "s. Cr."},
erasNarrow: []string{"", ""},
erasWide: []string{"avant Cristus", "suenter Cristus"},
- timezones: map[string]string{"GYT": "GYT", "WIB": "WIB", "HNOG": "HNOG", "HNPM": "HNPM", "MESZ": "MESZ", "NZDT": "NZDT", "WAT": "WAT", "COT": "COT", "CDT": "CDT", "ARST": "ARST", "LHDT": "LHDT", "EAT": "EAT", "OESZ": "OESZ", "UYST": "UYST", "AKST": "AKST", "HEPM": "HEPM", "ACST": "ACST", "OEZ": "OEZ", "MDT": "MDT", "AWST": "AWST", "TMT": "TMT", "AWDT": "AWDT", "BOT": "BOT", "GFT": "GFT", "EST": "EST", "VET": "VET", "ACWST": "ACWST", "AEDT": "AEDT", "HKT": "HKT", "HNCU": "HNCU", "CST": "CST", "HADT": "HADT", "UYT": "UYT", "SAST": "SAST", "IST": "IST", "ChST": "ChST", "SGT": "SGT", "MST": "MST", "MYT": "MYT", "MEZ": "MEZ", "HECU": "HECU", "HNPMX": "HNPMX", "HAST": "HAST", "WEZ": "WEZ", "TMST": "TMST", "HNEG": "HNEG", "WAST": "WAST", "WARST": "WARST", "AKDT": "AKDT", "ART": "ART", "AEST": "AEST", "NZST": "NZST", "HEOG": "HEOG", "ACWDT": "ACWDT", "CHAST": "CHAST", "HEEG": "HEEG", "PDT": "PDT", "HNT": "HNT", "LHST": "LHST", "WIT": "WIT", "HEPMX": "HEPMX", "BT": "BT", "PST": "PST", "HAT": "HAT", "WART": "WART", "COST": "COST", "GMT": "GMT", "EDT": "EDT", "HKST": "HKST", "CHADT": "CHADT", "CAT": "CAT", "JST": "JST", "JDT": "JDT", "CLT": "CLT", "HENOMX": "HENOMX", "SRT": "SRT", "HNNOMX": "HNNOMX", "AST": "AST", "WESZ": "WESZ", "WITA": "WITA", "CLST": "CLST", "∅∅∅": "∅∅∅", "ACDT": "ACDT", "ECT": "ECT", "ADT": "ADT"},
+ timezones: map[string]string{"WIT": "WIT", "AWDT": "AWDT", "ECT": "ECT", "MEZ": "MEZ", "TMT": "TMT", "HAT": "HAT", "LHDT": "LHDT", "CDT": "CDT", "CST": "CST", "SGT": "SGT", "BOT": "BOT", "MYT": "MYT", "WAT": "WAT", "EDT": "EDT", "HNCU": "HNCU", "NZST": "NZST", "WART": "WART", "CLST": "CLST", "HNEG": "HNEG", "AEST": "AEST", "HECU": "HECU", "CHADT": "CHADT", "ACWST": "ACWST", "ACST": "ACST", "HADT": "HADT", "ADT": "ADT", "HKT": "HKT", "HEEG": "HEEG", "AKDT": "AKDT", "UYST": "UYST", "ARST": "ARST", "SAST": "SAST", "GYT": "GYT", "HNPM": "HNPM", "PST": "PST", "IST": "IST", "VET": "VET", "AST": "AST", "TMST": "TMST", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "WAST": "WAST", "COST": "COST", "ChST": "ChST", "LHST": "LHST", "HEPMX": "HEPMX", "NZDT": "NZDT", "JDT": "JDT", "OEZ": "OEZ", "UYT": "UYT", "WIB": "WIB", "AEDT": "AEDT", "JST": "JST", "GMT": "GMT", "WARST": "WARST", "MDT": "MDT", "EST": "EST", "BT": "BT", "CAT": "CAT", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "SRT": "SRT", "AKST": "AKST", "GFT": "GFT", "EAT": "EAT", "PDT": "PDT", "ART": "ART", "HKST": "HKST", "ACDT": "ACDT", "WEZ": "WEZ", "HNT": "HNT", "AWST": "AWST", "COT": "COT", "CHAST": "CHAST", "HAST": "HAST", "ACWDT": "ACWDT", "WESZ": "WESZ", "CLT": "CLT", "MST": "MST", "MESZ": "MESZ", "OESZ": "OESZ", "HNOG": "HNOG", "HEOG": "HEOG", "WITA": "WITA", "HEPM": "HEPM"},
}
}
diff --git a/rn/rn.go b/rn/rn.go
index aac81cba..393cc95a 100644
--- a/rn/rn.go
+++ b/rn/rn.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"Mb.Y.", "Ny.Y"},
erasNarrow: []string{"", ""},
erasWide: []string{"Mbere ya Yezu", "Nyuma ya Yezu"},
- timezones: map[string]string{"JST": "JST", "HECU": "HECU", "CDT": "CDT", "GYT": "GYT", "AKST": "AKST", "WESZ": "WESZ", "HKT": "HKT", "WAT": "WAT", "COST": "COST", "OEZ": "OEZ", "WIT": "WIT", "MDT": "MDT", "ECT": "ECT", "WAST": "WAST", "EST": "EST", "UYT": "UYT", "ARST": "ARST", "HNPM": "HNPM", "CHADT": "CHADT", "OESZ": "OESZ", "MEZ": "MEZ", "PDT": "PDT", "AEST": "AEST", "CHAST": "CHAST", "HNOG": "HNOG", "HAST": "HAST", "HADT": "HADT", "HEOG": "HEOG", "HNEG": "HNEG", "ADT": "ADT", "MYT": "MYT", "ART": "ART", "PST": "PST", "ACST": "ACST", "WARST": "WARST", "JDT": "JDT", "BOT": "BOT", "BT": "BT", "WEZ": "WEZ", "WITA": "WITA", "HKST": "HKST", "HEPM": "HEPM", "LHDT": "LHDT", "NZST": "NZST", "SRT": "SRT", "HAT": "HAT", "ACWST": "ACWST", "LHST": "LHST", "TMT": "TMT", "GMT": "GMT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HNCU": "HNCU", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "HNT": "HNT", "ACWDT": "ACWDT", "CAT": "CAT", "TMST": "TMST", "ChST": "ChST", "ACDT": "ACDT", "MESZ": "MESZ", "SGT": "SGT", "EDT": "EDT", "AST": "AST", "AKDT": "AKDT", "NZDT": "NZDT", "GFT": "GFT", "HEEG": "HEEG", "COT": "COT", "AWST": "AWST", "WART": "WART", "VET": "VET", "AEDT": "AEDT", "AWDT": "AWDT", "SAST": "SAST", "CLT": "CLT", "CLST": "CLST", "UYST": "UYST", "EAT": "EAT", "MST": "MST", "CST": "CST", "WIB": "WIB", "IST": "IST", "∅∅∅": "∅∅∅"},
+ timezones: map[string]string{"GFT": "GFT", "UYT": "UYT", "CDT": "CDT", "BOT": "BOT", "IST": "IST", "MESZ": "MESZ", "CLST": "CLST", "UYST": "UYST", "HECU": "HECU", "VET": "VET", "CLT": "CLT", "MDT": "MDT", "EDT": "EDT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "WIB": "WIB", "MEZ": "MEZ", "ACST": "ACST", "AKDT": "AKDT", "AKST": "AKST", "ChST": "ChST", "SAST": "SAST", "PST": "PST", "WART": "WART", "ADT": "ADT", "WEZ": "WEZ", "HEEG": "HEEG", "AEDT": "AEDT", "SRT": "SRT", "HNPMX": "HNPMX", "CST": "CST", "PDT": "PDT", "GMT": "GMT", "WARST": "WARST", "ART": "ART", "HKT": "HKT", "ACDT": "ACDT", "GYT": "GYT", "SGT": "SGT", "CAT": "CAT", "JDT": "JDT", "TMST": "TMST", "OESZ": "OESZ", "ARST": "ARST", "HKST": "HKST", "HNT": "HNT", "HEPM": "HEPM", "LHDT": "LHDT", "HADT": "HADT", "OEZ": "OEZ", "LHST": "LHST", "HNOG": "HNOG", "TMT": "TMT", "MST": "MST", "WAT": "WAT", "WITA": "WITA", "EAT": "EAT", "WIT": "WIT", "∅∅∅": "∅∅∅", "AEST": "AEST", "HNPM": "HNPM", "NZDT": "NZDT", "HEOG": "HEOG", "COT": "COT", "HNEG": "HNEG", "CHAST": "CHAST", "CHADT": "CHADT", "ACWST": "ACWST", "HAT": "HAT", "AWST": "AWST", "HAST": "HAST", "MYT": "MYT", "AST": "AST", "WAST": "WAST", "ECT": "ECT", "NZST": "NZST", "ACWDT": "ACWDT", "HNCU": "HNCU", "AWDT": "AWDT", "EST": "EST", "COST": "COST", "BT": "BT", "JST": "JST", "WESZ": "WESZ"},
}
}
diff --git a/rn_BI/rn_BI.go b/rn_BI/rn_BI.go
index 1f5bf109..a02587ed 100644
--- a/rn_BI/rn_BI.go
+++ b/rn_BI/rn_BI.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"Mb.Y.", "Ny.Y"},
erasNarrow: []string{"", ""},
erasWide: []string{"Mbere ya Yezu", "Nyuma ya Yezu"},
- timezones: map[string]string{"HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AKST": "AKST", "AWDT": "AWDT", "CHADT": "CHADT", "JST": "JST", "∅∅∅": "∅∅∅", "BT": "BT", "HNT": "HNT", "AEST": "AEST", "HKT": "HKT", "NZST": "NZST", "HNEG": "HNEG", "MST": "MST", "HAT": "HAT", "HNPM": "HNPM", "HEPM": "HEPM", "WAST": "WAST", "HADT": "HADT", "WEZ": "WEZ", "WESZ": "WESZ", "AEDT": "AEDT", "ChST": "ChST", "BOT": "BOT", "ADT": "ADT", "CDT": "CDT", "HAST": "HAST", "PDT": "PDT", "ACWST": "ACWST", "ACWDT": "ACWDT", "HNOG": "HNOG", "ACDT": "ACDT", "MYT": "MYT", "PST": "PST", "LHST": "LHST", "SAST": "SAST", "EAT": "EAT", "EST": "EST", "UYST": "UYST", "CLST": "CLST", "TMST": "TMST", "OEZ": "OEZ", "CST": "CST", "VET": "VET", "WIT": "WIT", "ARST": "ARST", "HEOG": "HEOG", "AWST": "AWST", "LHDT": "LHDT", "SGT": "SGT", "JDT": "JDT", "NZDT": "NZDT", "OESZ": "OESZ", "ECT": "ECT", "GMT": "GMT", "CLT": "CLT", "TMT": "TMT", "CAT": "CAT", "AKDT": "AKDT", "HKST": "HKST", "MESZ": "MESZ", "WART": "WART", "EDT": "EDT", "HEPMX": "HEPMX", "WIB": "WIB", "COT": "COT", "COST": "COST", "MDT": "MDT", "AST": "AST", "CHAST": "CHAST", "IST": "IST", "HEEG": "HEEG", "GFT": "GFT", "WAT": "WAT", "HECU": "HECU", "HNPMX": "HNPMX", "WARST": "WARST", "MEZ": "MEZ", "HNCU": "HNCU", "GYT": "GYT", "ART": "ART", "WITA": "WITA", "ACST": "ACST", "SRT": "SRT", "UYT": "UYT"},
+ timezones: map[string]string{"OEZ": "OEZ", "WEZ": "WEZ", "SAST": "SAST", "SRT": "SRT", "CAT": "CAT", "EDT": "EDT", "HAT": "HAT", "GFT": "GFT", "UYT": "UYT", "LHST": "LHST", "HNPMX": "HNPMX", "WIT": "WIT", "AWST": "AWST", "ACWDT": "ACWDT", "MESZ": "MESZ", "HNOG": "HNOG", "WESZ": "WESZ", "LHDT": "LHDT", "EAT": "EAT", "MEZ": "MEZ", "HNT": "HNT", "CDT": "CDT", "CHADT": "CHADT", "ACWST": "ACWST", "VET": "VET", "MST": "MST", "ARST": "ARST", "COT": "COT", "HENOMX": "HENOMX", "AEST": "AEST", "UYST": "UYST", "HNPM": "HNPM", "ECT": "ECT", "WART": "WART", "TMT": "TMT", "ACST": "ACST", "BT": "BT", "HNCU": "HNCU", "IST": "IST", "HEOG": "HEOG", "CLT": "CLT", "CLST": "CLST", "HNNOMX": "HNNOMX", "HNEG": "HNEG", "GYT": "GYT", "SGT": "SGT", "AST": "AST", "AKDT": "AKDT", "CST": "CST", "PDT": "PDT", "COST": "COST", "HEEG": "HEEG", "HEPMX": "HEPMX", "CHAST": "CHAST", "PST": "PST", "AKST": "AKST", "HECU": "HECU", "EST": "EST", "JST": "JST", "WARST": "WARST", "MDT": "MDT", "HKST": "HKST", "ACDT": "ACDT", "HAST": "HAST", "HADT": "HADT", "OESZ": "OESZ", "GMT": "GMT", "ART": "ART", "AEDT": "AEDT", "WIB": "WIB", "BOT": "BOT", "MYT": "MYT", "HKT": "HKT", "∅∅∅": "∅∅∅", "HEPM": "HEPM", "AWDT": "AWDT", "NZST": "NZST", "NZDT": "NZDT", "JDT": "JDT", "ADT": "ADT", "TMST": "TMST", "WAT": "WAT", "WAST": "WAST", "WITA": "WITA", "ChST": "ChST"},
}
}
diff --git a/ro/ro.go b/ro/ro.go
index ce4f17dc..b851f984 100644
--- a/ro/ro.go
+++ b/ro/ro.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"î.Hr.", "d.Hr."},
erasNarrow: []string{"", ""},
erasWide: []string{"înainte de Hristos", "după Hristos"},
- timezones: map[string]string{"COST": "Ora de vară a Columbiei", "PST": "Ora standard în zona Pacific nord-americană", "AWDT": "Ora de vară a Australiei Occidentale", "LHDT": "Ora de vară din Lord Howe", "∅∅∅": "Ora de vară a Amazonului", "ChST": "Ora din Chamorro", "BOT": "Ora Boliviei", "HEEG": "Ora de vară a Groenlandei orientale", "EAT": "Ora Africii Orientale", "CST": "Ora standard centrală nord-americană", "AST": "Ora standard în zona Atlantic nord-americană", "SRT": "Ora Surinamului", "EST": "Ora standard orientală nord-americană", "GYT": "Ora din Guyana", "JST": "Ora standard a Japoniei", "HNNOMX": "Ora standard a Mexicului de nord-vest", "HKST": "Ora de vară din Hong Kong", "MESZ": "Ora de vară a Europei Centrale", "CLST": "Ora de vară din Chile", "OEZ": "Ora standard a Europei de Est", "UYT": "Ora standard a Uruguayului", "AKDT": "Ora de vară din Alaska", "ADT": "Ora de vară în zona Atlantic nord-americană", "HNEG": "Ora standard a Groenlandei orientale", "MDT": "Ora de vară în zona montană nord-americană", "MEZ": "Ora standard a Europei Centrale", "NZDT": "Ora de vară a Noii Zeelande", "CHAST": "Ora standard din Chatham", "CHADT": "Ora de vară din Chatham", "IST": "Ora Indiei", "WARST": "Ora de vară a Argentinei Occidentale", "HEPMX": "Ora de vară a zonei Pacific mexicane", "CDT": "Ora de vară centrală nord-americană", "WIT": "Ora Indoneziei de Est", "AEST": "Ora standard a Australiei Orientale", "ACDT": "Ora de vară a Australiei Centrale", "HNPMX": "Ora standard a zonei Pacific mexicane", "MST": "Ora standard în zona montană nord-americană", "HAST": "Ora standard din Hawaii-Aleutine", "TMT": "Ora standard din Turkmenistan", "WESZ": "Ora de vară a Europei de Vest", "ART": "Ora standard a Argentinei", "LHST": "Ora standard din Lord Howe", "WART": "Ora standard a Argentinei Occidentale", "HENOMX": "Ora de vară a Mexicului de nord-vest", "HEOG": "Ora de vară a Groenlandei occidentale", "PDT": "Ora de vară în zona Pacific nord-americană", "WEZ": "Ora standard a Europei de Vest", "WIB": "Ora Indoneziei de Vest", "WAT": "Ora standard a Africii Occidentale", "ACST": "Ora standard a Australiei Centrale", "WAST": "Ora de vară a Africii Occidentale", "VET": "Ora Venezuelei", "BT": "Ora Bhutanului", "ARST": "Ora de vară a Argentinei", "HEPM": "Ora de vară din Saint-Pierre și Miquelon", "GFT": "Ora din Guyana Franceză", "CAT": "Ora Africii Centrale", "GMT": "Ora de Greenwhich", "EDT": "Ora de vară orientală nord-americană", "HADT": "Ora de vară din Hawaii-Aleutine", "HNT": "Ora standard din Newfoundland", "HKT": "Ora standard din Hong Kong", "COT": "Ora standard a Columbiei", "HNCU": "Ora standard a Cubei", "HECU": "Ora de vară a Cubei", "HAT": "Ora de vară din Newfoundland", "NZST": "Ora standard a Noii Zeelande", "JDT": "Ora de vară a Japoniei", "AEDT": "Ora de vară a Australiei Orientale", "CLT": "Ora standard din Chile", "TMST": "Ora de vară din Turkmenistan", "HNPM": "Ora standard din Saint-Pierre și Miquelon", "MYT": "Ora din Malaysia", "ACWST": "Ora standard a Australiei Central Occidentale", "WITA": "Ora Indoneziei Centrale", "ACWDT": "Ora de vară a Australiei Central Occidentale", "SAST": "Ora Africii Meridionale", "ECT": "Ora Ecuadorului", "UYST": "Ora de vară a Uruguayului", "AKST": "Ora standard din Alaska", "HNOG": "Ora standard a Groenlandei occidentale", "AWST": "Ora standard a Australiei Occidentale", "OESZ": "Ora de vară a Europei de Est", "SGT": "Ora din Singapore"},
+ timezones: map[string]string{"WEZ": "Ora standard a Europei de Vest", "GMT": "Ora de Greenwhich", "MST": "MST", "SAST": "Ora Africii Meridionale", "CST": "Ora standard centrală nord-americană", "AST": "Ora standard în zona Atlantic nord-americană", "CAT": "Ora Africii Centrale", "ADT": "Ora de vară în zona Atlantic nord-americană", "ACDT": "Ora de vară a Australiei Centrale", "SRT": "Ora Surinamului", "SGT": "Ora din Singapore", "HAST": "Ora standard din Hawaii-Aleutine", "PDT": "Ora de vară în zona Pacific nord-americană", "HAT": "Ora de vară din Newfoundland", "HNEG": "Ora standard a Groenlandei orientale", "HNPM": "Ora standard din Saint-Pierre și Miquelon", "HECU": "Ora de vară a Cubei", "∅∅∅": "Ora de vară a Brasiliei", "HNT": "Ora standard din Newfoundland", "ChST": "Ora din Chamorro", "LHST": "Ora standard din Lord Howe", "NZST": "Ora standard a Noii Zeelande", "TMT": "Ora standard din Turkmenistan", "WESZ": "Ora de vară a Europei de Vest", "WAT": "Ora standard a Africii Occidentale", "WITA": "Ora Indoneziei Centrale", "EAT": "Ora Africii Orientale", "CHADT": "Ora de vară din Chatham", "MYT": "Ora din Malaysia", "HKST": "Ora de vară din Hong Kong", "LHDT": "Ora de vară din Lord Howe", "MEZ": "Ora standard a Europei Centrale", "CLT": "Ora standard din Chile", "HNNOMX": "Ora standard a Mexicului de nord-vest", "AEDT": "Ora de vară a Australiei Orientale", "CHAST": "Ora standard din Chatham", "WAST": "Ora de vară a Africii Occidentale", "AKST": "Ora standard din Alaska", "WIB": "Ora Indoneziei de Vest", "ARST": "Ora de vară a Argentinei", "JST": "Ora standard a Japoniei", "JDT": "Ora de vară a Japoniei", "TMST": "Ora de vară din Turkmenistan", "MDT": "MDT", "GFT": "Ora din Guyana Franceză", "GYT": "Ora din Guyana", "ACWST": "Ora standard a Australiei Central Occidentale", "ACWDT": "Ora de vară a Australiei Central Occidentale", "IST": "Ora Indiei", "HKT": "Ora standard din Hong Kong", "COST": "Ora de vară a Columbiei", "HENOMX": "Ora de vară a Mexicului de nord-vest", "BT": "Ora Bhutanului", "HNCU": "Ora standard a Cubei", "HEOG": "Ora de vară a Groenlandei occidentale", "OESZ": "Ora de vară a Europei de Est", "EDT": "Ora de vară orientală nord-americană", "WIT": "Ora Indoneziei de Est", "WART": "Ora standard a Argentinei Occidentale", "ACST": "Ora standard a Australiei Centrale", "COT": "Ora standard a Columbiei", "HEEG": "Ora de vară a Groenlandei orientale", "HEPM": "Ora de vară din Saint-Pierre și Miquelon", "HEPMX": "Ora de vară a zonei Pacific mexicane", "BOT": "Ora Boliviei", "ART": "Ora standard a Argentinei", "AEST": "Ora standard a Australiei Orientale", "UYST": "Ora de vară a Uruguayului", "CDT": "Ora de vară centrală nord-americană", "PST": "Ora standard în zona Pacific nord-americană", "HADT": "Ora de vară din Hawaii-Aleutine", "MESZ": "Ora de vară a Europei Centrale", "VET": "Ora Venezuelei", "EST": "Ora standard orientală nord-americană", "HNPMX": "Ora standard a zonei Pacific mexicane", "AWST": "Ora standard a Australiei Occidentale", "AWDT": "Ora de vară a Australiei Occidentale", "WARST": "Ora de vară a Argentinei Occidentale", "CLST": "Ora de vară din Chile", "HNOG": "Ora standard a Groenlandei occidentale", "OEZ": "Ora standard a Europei de Est", "AKDT": "Ora de vară din Alaska", "UYT": "Ora standard a Uruguayului", "ECT": "Ora Ecuadorului", "NZDT": "Ora de vară a Noii Zeelande"},
}
}
diff --git a/ro_MD/ro_MD.go b/ro_MD/ro_MD.go
index 1d1cbbc1..2b012901 100644
--- a/ro_MD/ro_MD.go
+++ b/ro_MD/ro_MD.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"SGT": "Ora din Singapore", "MST": "MST", "WESZ": "Ora de vară a Europei de Vest", "HECU": "Ora de vară a Cubei", "AST": "Ora standard în zona Atlantic nord-americană", "MEZ": "Ora standard a Europei Centrale", "EST": "Ora standard orientală nord-americană", "HNPM": "Ora standard din Saint-Pierre și Miquelon", "NZDT": "Ora de vară a Noii Zeelande", "JDT": "Ora de vară a Japoniei", "WAT": "Ora standard a Africii Occidentale", "HADT": "Ora de vară din Hawaii-Aleutine", "SRT": "Ora Surinamului", "WEZ": "Ora standard a Europei de Vest", "HKST": "Ora de vară din Hong Kong", "BT": "Ora Bhutanului", "MDT": "MDT", "CDT": "Ora de vară centrală nord-americană", "WIB": "Ora Indoneziei de Vest", "VET": "Ora Venezuelei", "PDT": "Ora de vară în zona Pacific nord-americană", "AEST": "Ora standard a Australiei Orientale", "∅∅∅": "Ora de vară a Amazonului", "WARST": "Ora de vară a Argentinei Occidentale", "CST": "Ora standard centrală nord-americană", "HKT": "Ora standard din Hong Kong", "HEPM": "Ora de vară din Saint-Pierre și Miquelon", "LHDT": "Ora de vară din Lord Howe", "NZST": "Ora standard a Noii Zeelande", "TMST": "Ora de vară din Turkmenistan", "ACDT": "Ora de vară a Australiei Centrale", "AKDT": "Ora de vară din Alaska", "GYT": "Ora din Guyana", "ARST": "Ora de vară a Argentinei", "HNOG": "Ora standard a Groenlandei occidentale", "AWST": "Ora standard a Australiei Occidentale", "WITA": "Ora Indoneziei Centrale", "IST": "Ora Indiei", "HEEG": "Ora de vară a Groenlandei orientale", "HEPMX": "Ora de vară a zonei Pacific mexicane", "ACWST": "Ora standard a Australiei Central Occidentale", "HEOG": "Ora de vară a Groenlandei occidentale", "JST": "Ora standard a Japoniei", "AKST": "Ora standard din Alaska", "PST": "Ora standard în zona Pacific nord-americană", "CLST": "Ora de vară din Chile", "ECT": "Ora Ecuadorului", "CAT": "Ora Africii Centrale", "COT": "Ora standard a Columbiei", "WART": "Ora standard a Argentinei Occidentale", "UYST": "Ora de vară a Uruguayului", "ACWDT": "Ora de vară a Australiei Central Occidentale", "CLT": "Ora standard din Chile", "HNEG": "Ora standard a Groenlandei orientale", "TMT": "Ora standard din Turkmenistan", "WAST": "Ora de vară a Africii Occidentale", "CHAST": "Ora standard din Chatham", "SAST": "Ora Africii Meridionale", "ACST": "Ora standard a Australiei Centrale", "HAST": "Ora standard din Hawaii-Aleutine", "HNT": "Ora standard din Newfoundland", "AWDT": "Ora de vară a Australiei Occidentale", "OEZ": "Ora standard a Europei de Est", "COST": "Ora de vară a Columbiei", "GMT": "Ora de Greenwhich", "HNPMX": "Ora standard a zonei Pacific mexicane", "HAT": "Ora de vară din Newfoundland", "ChST": "Ora din Chamorro", "EAT": "Ora Africii Orientale", "OESZ": "Ora de vară a Europei de Est", "HNNOMX": "Ora standard a Mexicului de nord-vest", "HENOMX": "Ora de vară a Mexicului de nord-vest", "ADT": "Ora de vară în zona Atlantic nord-americană", "MYT": "Ora din Malaysia", "MESZ": "Ora de vară a Europei Centrale", "BOT": "Ora Boliviei", "EDT": "Ora de vară orientală nord-americană", "UYT": "Ora standard a Uruguayului", "WIT": "Ora Indoneziei de Est", "ART": "Ora standard a Argentinei", "AEDT": "Ora de vară a Australiei Orientale", "GFT": "Ora din Guyana Franceză", "HNCU": "Ora standard a Cubei", "LHST": "Ora standard din Lord Howe", "CHADT": "Ora de vară din Chatham"},
+ timezones: map[string]string{"WESZ": "Ora de vară a Europei de Vest", "AEST": "Ora standard a Australiei Orientale", "HECU": "Ora de vară a Cubei", "CDT": "Ora de vară centrală nord-americană", "COST": "Ora de vară a Columbiei", "SGT": "Ora din Singapore", "ACWST": "Ora standard a Australiei Central Occidentale", "MESZ": "Ora de vară a Europei Centrale", "OEZ": "Ora standard a Europei de Est", "WIB": "Ora Indoneziei de Vest", "AEDT": "Ora de vară a Australiei Orientale", "MDT": "Ora de vară în zona montană nord-americană", "GFT": "Ora din Guyana Franceză", "LHST": "Ora standard din Lord Howe", "HNOG": "Ora standard a Groenlandei occidentale", "HENOMX": "Ora de vară a Mexicului de nord-vest", "HEPMX": "Ora de vară a zonei Pacific mexicane", "PST": "Ora standard în zona Pacific nord-americană", "GMT": "Ora de Greenwhich", "TMST": "Ora de vară din Turkmenistan", "UYST": "Ora de vară a Uruguayului", "HNNOMX": "Ora standard a Mexicului de nord-vest", "HEEG": "Ora de vară a Groenlandei orientale", "MST": "Ora standard în zona montană nord-americană", "NZST": "Ora standard a Noii Zeelande", "ACDT": "Ora de vară a Australiei Centrale", "HKT": "Ora standard din Hong Kong", "AKDT": "Ora de vară din Alaska", "HNPMX": "Ora standard a zonei Pacific mexicane", "HNCU": "Ora standard a Cubei", "PDT": "Ora de vară în zona Pacific nord-americană", "ECT": "Ora Ecuadorului", "WEZ": "Ora standard a Europei de Vest", "WAT": "Ora standard a Africii Occidentale", "ART": "Ora standard a Argentinei", "WARST": "Ora de vară a Argentinei Occidentale", "HNPM": "Ora standard din Saint-Pierre și Miquelon", "GYT": "Ora din Guyana", "JDT": "Ora de vară a Japoniei", "ADT": "Ora de vară în zona Atlantic nord-americană", "MYT": "Ora din Malaysia", "CLT": "Ora standard din Chile", "WITA": "Ora Indoneziei Centrale", "BOT": "Ora Boliviei", "HAST": "Ora standard din Hawaii-Aleutine", "HEOG": "Ora de vară a Groenlandei occidentale", "AST": "Ora standard în zona Atlantic nord-americană", "WART": "Ora standard a Argentinei Occidentale", "SRT": "Ora Surinamului", "CLST": "Ora de vară din Chile", "TMT": "Ora standard din Turkmenistan", "BT": "Ora Bhutanului", "HEPM": "Ora de vară din Saint-Pierre și Miquelon", "CHAST": "Ora standard din Chatham", "NZDT": "Ora de vară a Noii Zeelande", "JST": "Ora standard a Japoniei", "COT": "Ora standard a Columbiei", "EDT": "Ora de vară orientală nord-americană", "HKST": "Ora de vară din Hong Kong", "ACST": "Ora standard a Australiei Centrale", "LHDT": "Ora de vară din Lord Howe", "WIT": "Ora Indoneziei de Est", "AWST": "Ora standard a Australiei Occidentale", "AWDT": "Ora de vară a Australiei Occidentale", "EST": "Ora standard orientală nord-americană", "OESZ": "Ora de vară a Europei de Est", "CHADT": "Ora de vară din Chatham", "ChST": "Ora din Chamorro", "SAST": "Ora Africii Meridionale", "∅∅∅": "Ora de vară Acre", "UYT": "Ora standard a Uruguayului", "CST": "Ora standard centrală nord-americană", "CAT": "Ora Africii Centrale", "ACWDT": "Ora de vară a Australiei Central Occidentale", "MEZ": "Ora standard a Europei Centrale", "WAST": "Ora de vară a Africii Occidentale", "HNEG": "Ora standard a Groenlandei orientale", "EAT": "Ora Africii Orientale", "IST": "Ora Indiei", "VET": "Ora Venezuelei", "HAT": "Ora de vară din Newfoundland", "AKST": "Ora standard din Alaska", "HADT": "Ora de vară din Hawaii-Aleutine", "ARST": "Ora de vară a Argentinei", "HNT": "Ora standard din Newfoundland"},
}
}
diff --git a/ro_RO/ro_RO.go b/ro_RO/ro_RO.go
index f197e5c1..1ae87c2b 100644
--- a/ro_RO/ro_RO.go
+++ b/ro_RO/ro_RO.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"î.Hr.", "d.Hr."},
erasNarrow: []string{"", ""},
erasWide: []string{"înainte de Hristos", "după Hristos"},
- timezones: map[string]string{"HKST": "Ora de vară din Hong Kong", "HNPMX": "Ora standard a zonei Pacific mexicane", "ARST": "Ora de vară a Argentinei", "HNOG": "Ora standard a Groenlandei occidentale", "ACWDT": "Ora de vară a Australiei Central Occidentale", "CHADT": "Ora de vară din Chatham", "CST": "Ora standard centrală nord-americană", "JDT": "Ora de vară a Japoniei", "ChST": "Ora din Chamorro", "HNEG": "Ora standard a Groenlandei orientale", "WAST": "Ora de vară a Africii Occidentale", "HADT": "Ora de vară din Hawaii-Aleutine", "GYT": "Ora din Guyana", "MYT": "Ora din Malaysia", "TMT": "Ora standard din Turkmenistan", "OESZ": "Ora de vară a Europei de Est", "COST": "Ora de vară a Columbiei", "HEPMX": "Ora de vară a zonei Pacific mexicane", "ACWST": "Ora standard a Australiei Central Occidentale", "HEPM": "Ora de vară din Saint-Pierre și Miquelon", "JST": "Ora standard a Japoniei", "CLST": "Ora de vară din Chile", "BOT": "Ora Boliviei", "EDT": "Ora de vară orientală nord-americană", "UYT": "Ora standard a Uruguayului", "MEZ": "Ora standard a Europei Centrale", "MST": "MST", "∅∅∅": "Ora de vară din Azore", "ADT": "Ora de vară în zona Atlantic nord-americană", "UYST": "Ora de vară a Uruguayului", "CDT": "Ora de vară centrală nord-americană", "HNPM": "Ora standard din Saint-Pierre și Miquelon", "LHDT": "Ora de vară din Lord Howe", "WART": "Ora standard a Argentinei Occidentale", "AWST": "Ora standard a Australiei Occidentale", "AKDT": "Ora de vară din Alaska", "HAST": "Ora standard din Hawaii-Aleutine", "HEOG": "Ora de vară a Groenlandei occidentale", "HKT": "Ora standard din Hong Kong", "EAT": "Ora Africii Orientale", "GMT": "Ora de Greenwhich", "WIT": "Ora Indoneziei de Est", "BT": "Ora Bhutanului", "PST": "Ora standard în zona Pacific nord-americană", "WESZ": "Ora de vară a Europei de Vest", "NZST": "Ora standard a Noii Zeelande", "HEEG": "Ora de vară a Groenlandei orientale", "GFT": "Ora din Guyana Franceză", "WIB": "Ora Indoneziei de Vest", "ACDT": "Ora de vară a Australiei Centrale", "COT": "Ora standard a Columbiei", "HNNOMX": "Ora standard a Mexicului de nord-vest", "SGT": "Ora din Singapore", "SRT": "Ora Surinamului", "WEZ": "Ora standard a Europei de Vest", "HAT": "Ora de vară din Newfoundland", "AWDT": "Ora de vară a Australiei Occidentale", "WARST": "Ora de vară a Argentinei Occidentale", "ACST": "Ora standard a Australiei Centrale", "CAT": "Ora Africii Centrale", "OEZ": "Ora standard a Europei de Est", "MESZ": "Ora de vară a Europei Centrale", "LHST": "Ora standard din Lord Howe", "SAST": "Ora Africii Meridionale", "MDT": "MDT", "ART": "Ora standard a Argentinei", "AEST": "Ora standard a Australiei Orientale", "WITA": "Ora Indoneziei Centrale", "CHAST": "Ora standard din Chatham", "IST": "Ora Indiei", "AKST": "Ora standard din Alaska", "HECU": "Ora de vară a Cubei", "NZDT": "Ora de vară a Noii Zeelande", "CLT": "Ora standard din Chile", "ECT": "Ora Ecuadorului", "WAT": "Ora standard a Africii Occidentale", "HNCU": "Ora standard a Cubei", "AST": "Ora standard în zona Atlantic nord-americană", "VET": "Ora Venezuelei", "HENOMX": "Ora de vară a Mexicului de nord-vest", "PDT": "Ora de vară în zona Pacific nord-americană", "HNT": "Ora standard din Newfoundland", "AEDT": "Ora de vară a Australiei Orientale", "TMST": "Ora de vară din Turkmenistan", "EST": "Ora standard orientală nord-americană"},
+ timezones: map[string]string{"HAT": "Ora de vară din Newfoundland", "GFT": "Ora din Guyana Franceză", "ACWST": "Ora standard a Australiei Central Occidentale", "TMT": "Ora standard din Turkmenistan", "TMST": "Ora de vară din Turkmenistan", "WAT": "Ora standard a Africii Occidentale", "COT": "Ora standard a Columbiei", "HNEG": "Ora standard a Groenlandei orientale", "SGT": "Ora din Singapore", "NZST": "Ora standard a Noii Zeelande", "VET": "Ora Venezuelei", "EST": "Ora standard orientală nord-americană", "UYT": "Ora standard a Uruguayului", "AWST": "Ora standard a Australiei Occidentale", "AWDT": "Ora de vară a Australiei Occidentale", "CHAST": "Ora standard din Chatham", "CLST": "Ora de vară din Chile", "HKT": "Ora standard din Hong Kong", "HAST": "Ora standard din Hawaii-Aleutine", "CAT": "Ora Africii Centrale", "JST": "Ora standard a Japoniei", "ChST": "Ora din Chamorro", "CST": "Ora standard centrală nord-americană", "ACWDT": "Ora de vară a Australiei Central Occidentale", "CLT": "Ora standard din Chile", "ADT": "Ora de vară în zona Atlantic nord-americană", "OEZ": "Ora standard a Europei de Est", "ARST": "Ora de vară a Argentinei", "HNNOMX": "Ora standard a Mexicului de nord-vest", "WART": "Ora standard a Argentinei Occidentale", "HEOG": "Ora de vară a Groenlandei occidentale", "MEZ": "Ora standard a Europei Centrale", "MST": "MST", "ACDT": "Ora de vară a Australiei Centrale", "HEEG": "Ora de vară a Groenlandei orientale", "HEPM": "Ora de vară din Saint-Pierre și Miquelon", "HECU": "Ora de vară a Cubei", "WEZ": "Ora standard a Europei de Vest", "AEDT": "Ora de vară a Australiei Orientale", "SRT": "Ora Surinamului", "BOT": "Ora Boliviei", "HADT": "Ora de vară din Hawaii-Aleutine", "WAST": "Ora de vară a Africii Occidentale", "∅∅∅": "Ora de vară Acre", "WITA": "Ora Indoneziei Centrale", "WIB": "Ora Indoneziei de Vest", "WIT": "Ora Indoneziei de Est", "COST": "Ora de vară a Columbiei", "HNPMX": "Ora standard a zonei Pacific mexicane", "LHST": "Ora standard din Lord Howe", "HNCU": "Ora standard a Cubei", "OESZ": "Ora de vară a Europei de Est", "EDT": "Ora de vară orientală nord-americană", "CDT": "Ora de vară centrală nord-americană", "BT": "Ora Bhutanului", "HNT": "Ora standard din Newfoundland", "NZDT": "Ora de vară a Noii Zeelande", "MYT": "Ora din Malaysia", "WARST": "Ora de vară a Argentinei Occidentale", "HNOG": "Ora standard a Groenlandei occidentale", "MDT": "MDT", "ART": "Ora standard a Argentinei", "JDT": "Ora de vară a Japoniei", "GMT": "Ora de Greenwhich", "AEST": "Ora standard a Australiei Orientale", "AKST": "Ora standard din Alaska", "LHDT": "Ora de vară din Lord Howe", "GYT": "Ora din Guyana", "AKDT": "Ora de vară din Alaska", "UYST": "Ora de vară a Uruguayului", "EAT": "Ora Africii Orientale", "ECT": "Ora Ecuadorului", "HENOMX": "Ora de vară a Mexicului de nord-vest", "ACST": "Ora standard a Australiei Centrale", "HNPM": "Ora standard din Saint-Pierre și Miquelon", "SAST": "Ora Africii Meridionale", "PST": "Ora standard în zona Pacific nord-americană", "PDT": "Ora de vară în zona Pacific nord-americană", "IST": "Ora Indiei", "MESZ": "Ora de vară a Europei Centrale", "WESZ": "Ora de vară a Europei de Vest", "AST": "Ora standard în zona Atlantic nord-americană", "HKST": "Ora de vară din Hong Kong", "HEPMX": "Ora de vară a zonei Pacific mexicane", "CHADT": "Ora de vară din Chatham"},
}
}
diff --git a/rof/rof.go b/rof/rof.go
index f9c5c2b7..99d8d98e 100644
--- a/rof/rof.go
+++ b/rof/rof.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KM", "BM"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Mayesu", "Baada ya Mayesu"},
- timezones: map[string]string{"HNPM": "HNPM", "HNEG": "HNEG", "IST": "IST", "ECT": "ECT", "AKDT": "AKDT", "ACDT": "ACDT", "SGT": "SGT", "ADT": "ADT", "WIB": "WIB", "WIT": "WIT", "WEZ": "WEZ", "SAST": "SAST", "TMST": "TMST", "EST": "EST", "HNPMX": "HNPMX", "HECU": "HECU", "ACWDT": "ACWDT", "CHADT": "CHADT", "HEEG": "HEEG", "GFT": "GFT", "ACST": "ACST", "WART": "WART", "HADT": "HADT", "HAT": "HAT", "AEDT": "AEDT", "ChST": "ChST", "WARST": "WARST", "HENOMX": "HENOMX", "CST": "CST", "WAT": "WAT", "ART": "ART", "ARST": "ARST", "WITA": "WITA", "MEZ": "MEZ", "CLT": "CLT", "∅∅∅": "∅∅∅", "UYT": "UYT", "PST": "PST", "HNT": "HNT", "HKST": "HKST", "NZST": "NZST", "COT": "COT", "COST": "COST", "OESZ": "OESZ", "MST": "MST", "HEPM": "HEPM", "CHAST": "CHAST", "JST": "JST", "JDT": "JDT", "BOT": "BOT", "CAT": "CAT", "HEPMX": "HEPMX", "UYST": "UYST", "CDT": "CDT", "GYT": "GYT", "BT": "BT", "LHDT": "LHDT", "EAT": "EAT", "AKST": "AKST", "AST": "AST", "WESZ": "WESZ", "HNOG": "HNOG", "AWST": "AWST", "MESZ": "MESZ", "CLST": "CLST", "OEZ": "OEZ", "LHST": "LHST", "GMT": "GMT", "AWDT": "AWDT", "HKT": "HKT", "AEST": "AEST", "HNNOMX": "HNNOMX", "HAST": "HAST", "PDT": "PDT", "ACWST": "ACWST", "HNCU": "HNCU", "EDT": "EDT", "VET": "VET", "SRT": "SRT", "HEOG": "HEOG", "NZDT": "NZDT", "TMT": "TMT", "WAST": "WAST", "MDT": "MDT", "MYT": "MYT"},
+ timezones: map[string]string{"HEOG": "HEOG", "EDT": "EDT", "HECU": "HECU", "HAST": "HAST", "SGT": "SGT", "UYT": "UYT", "COT": "COT", "AEST": "AEST", "GYT": "GYT", "HKT": "HKT", "HAT": "HAT", "ADT": "ADT", "HNT": "HNT", "AEDT": "AEDT", "ChST": "ChST", "ACWDT": "ACWDT", "MDT": "MDT", "NZST": "NZST", "CLT": "CLT", "HEEG": "HEEG", "UYST": "UYST", "SAST": "SAST", "HNPMX": "HNPMX", "HNCU": "HNCU", "CHADT": "CHADT", "JDT": "JDT", "HNOG": "HNOG", "TMT": "TMT", "HKST": "HKST", "ACDT": "ACDT", "GFT": "GFT", "IST": "IST", "VET": "VET", "AKDT": "AKDT", "GMT": "GMT", "CST": "CST", "WESZ": "WESZ", "TMST": "TMST", "WAT": "WAT", "HNPM": "HNPM", "BOT": "BOT", "ACWST": "ACWST", "NZDT": "NZDT", "MEZ": "MEZ", "OESZ": "OESZ", "WIB": "WIB", "ECT": "ECT", "ART": "ART", "ARST": "ARST", "ACST": "ACST", "BT": "BT", "WITA": "WITA", "LHDT": "LHDT", "WEZ": "WEZ", "MST": "MST", "AWST": "AWST", "HADT": "HADT", "MYT": "MYT", "EAT": "EAT", "WIT": "WIT", "MESZ": "MESZ", "WART": "WART", "OEZ": "OEZ", "COST": "COST", "HNEG": "HNEG", "AKST": "AKST", "AWDT": "AWDT", "CHAST": "CHAST", "HEPM": "HEPM", "LHST": "LHST", "CAT": "CAT", "JST": "JST", "PST": "PST", "PDT": "PDT", "WARST": "WARST", "HNNOMX": "HNNOMX", "SRT": "SRT", "CDT": "CDT", "∅∅∅": "∅∅∅", "WAST": "WAST", "EST": "EST", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "CLST": "CLST", "AST": "AST"},
}
}
diff --git a/rof_TZ/rof_TZ.go b/rof_TZ/rof_TZ.go
index e15459f4..b21c18ec 100644
--- a/rof_TZ/rof_TZ.go
+++ b/rof_TZ/rof_TZ.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KM", "BM"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Mayesu", "Baada ya Mayesu"},
- timezones: map[string]string{"CST": "CST", "WIB": "WIB", "HEOG": "HEOG", "AKST": "AKST", "MYT": "MYT", "LHST": "LHST", "CHAST": "CHAST", "SAST": "SAST", "WAST": "WAST", "WART": "WART", "HEPMX": "HEPMX", "HNT": "HNT", "HNOG": "HNOG", "NZST": "NZST", "CAT": "CAT", "HNCU": "HNCU", "WIT": "WIT", "HKST": "HKST", "NZDT": "NZDT", "WARST": "WARST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "EST": "EST", "HADT": "HADT", "HNPM": "HNPM", "WAT": "WAT", "HECU": "HECU", "MEZ": "MEZ", "CHADT": "CHADT", "COT": "COT", "GMT": "GMT", "VET": "VET", "ACWST": "ACWST", "JST": "JST", "GYT": "GYT", "BOT": "BOT", "ART": "ART", "OESZ": "OESZ", "ECT": "ECT", "ACDT": "ACDT", "EDT": "EDT", "JDT": "JDT", "SGT": "SGT", "SRT": "SRT", "WESZ": "WESZ", "HAT": "HAT", "HKT": "HKT", "IST": "IST", "OEZ": "OEZ", "MDT": "MDT", "ADT": "ADT", "PST": "PST", "PDT": "PDT", "AEDT": "AEDT", "AWST": "AWST", "WITA": "WITA", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "CLST": "CLST", "ARST": "ARST", "LHDT": "LHDT", "ChST": "ChST", "GFT": "GFT", "CDT": "CDT", "BT": "BT", "AWDT": "AWDT", "TMT": "TMT", "TMST": "TMST", "ACST": "ACST", "EAT": "EAT", "COST": "COST", "AKDT": "AKDT", "UYT": "UYT", "UYST": "UYST", "AST": "AST", "HAST": "HAST", "WEZ": "WEZ", "HEPM": "HEPM", "HEEG": "HEEG", "MST": "MST", "ACWDT": "ACWDT", "AEST": "AEST", "CLT": "CLT", "HNPMX": "HNPMX"},
+ timezones: map[string]string{"WAT": "WAT", "EDT": "EDT", "AEST": "AEST", "WIB": "WIB", "HAST": "HAST", "VET": "VET", "HKT": "HKT", "SGT": "SGT", "PST": "PST", "NZST": "NZST", "CHAST": "CHAST", "HADT": "HADT", "CAT": "CAT", "MDT": "MDT", "HAT": "HAT", "AEDT": "AEDT", "EAT": "EAT", "WARST": "WARST", "ACST": "ACST", "AKST": "AKST", "UYST": "UYST", "IST": "IST", "CLT": "CLT", "ADT": "ADT", "OEZ": "OEZ", "ART": "ART", "EST": "EST", "COST": "COST", "HEPM": "HEPM", "AWST": "AWST", "MYT": "MYT", "HNOG": "HNOG", "MST": "MST", "PDT": "PDT", "JST": "JST", "OESZ": "OESZ", "ACWDT": "ACWDT", "HNEG": "HNEG", "WITA": "WITA", "SRT": "SRT", "LHDT": "LHDT", "CST": "CST", "BOT": "BOT", "ACWST": "ACWST", "WART": "WART", "HNPM": "HNPM", "GYT": "GYT", "HECU": "HECU", "JDT": "JDT", "AST": "AST", "WESZ": "WESZ", "BT": "BT", "AKDT": "AKDT", "ChST": "ChST", "GMT": "GMT", "ECT": "ECT", "ACDT": "ACDT", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "HNT": "HNT", "GFT": "GFT", "HNPMX": "HNPMX", "AWDT": "AWDT", "HEOG": "HEOG", "TMST": "TMST", "ARST": "ARST", "CHADT": "CHADT", "NZDT": "NZDT", "MESZ": "MESZ", "CLST": "CLST", "HKST": "HKST", "SAST": "SAST", "LHST": "LHST", "WEZ": "WEZ", "WAST": "WAST", "COT": "COT", "HEEG": "HEEG", "HEPMX": "HEPMX", "HNNOMX": "HNNOMX", "UYT": "UYT", "HNCU": "HNCU", "CDT": "CDT", "WIT": "WIT", "MEZ": "MEZ", "TMT": "TMT"},
}
}
diff --git a/root/root.go b/root/root.go
index 887a1db6..ed27465b 100644
--- a/root/root.go
+++ b/root/root.go
@@ -64,7 +64,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "CE"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HNT": "HNT", "SAST": "SAST", "BOT": "BOT", "WAST": "WAST", "UYT": "UYT", "AKST": "AKST", "PST": "PST", "HKT": "HKT", "HKST": "HKST", "MEZ": "MEZ", "MYT": "MYT", "WIB": "WIB", "HEOG": "HEOG", "HNNOMX": "HNNOMX", "LHST": "LHST", "CLT": "CLT", "WARST": "WARST", "PDT": "PDT", "AWDT": "AWDT", "HNEG": "HNEG", "ECT": "ECT", "ADT": "ADT", "MDT": "MDT", "VET": "VET", "EDT": "EDT", "BT": "BT", "CHAST": "CHAST", "HENOMX": "HENOMX", "WIT": "WIT", "ARST": "ARST", "CLST": "CLST", "JST": "JST", "HNPMX": "HNPMX", "AKDT": "AKDT", "AST": "AST", "MST": "MST", "HEPMX": "HEPMX", "HAT": "HAT", "ART": "ART", "NZDT": "NZDT", "HEEG": "HEEG", "TMST": "TMST", "COST": "COST", "HNCU": "HNCU", "HECU": "HECU", "CDT": "CDT", "HNPM": "HNPM", "JDT": "JDT", "HEPM": "HEPM", "OESZ": "OESZ", "COT": "COT", "GYT": "GYT", "CST": "CST", "AWST": "AWST", "ACWST": "ACWST", "MESZ": "MESZ", "GFT": "GFT", "TMT": "TMT", "EAT": "EAT", "UYST": "UYST", "HAST": "HAST", "WEZ": "WEZ", "WART": "WART", "AEDT": "AEDT", "CHADT": "CHADT", "HADT": "HADT", "HNOG": "HNOG", "WESZ": "WESZ", "AEST": "AEST", "WITA": "WITA", "EST": "EST", "IST": "IST", "∅∅∅": "∅∅∅", "ACDT": "ACDT", "SGT": "SGT", "SRT": "SRT", "LHDT": "LHDT", "NZST": "NZST", "ACST": "ACST", "WAT": "WAT", "OEZ": "OEZ", "GMT": "GMT", "ACWDT": "ACWDT", "ChST": "ChST", "CAT": "CAT"},
+ timezones: map[string]string{"UYST": "UYST", "SGT": "SGT", "HEOG": "HEOG", "OEZ": "OEZ", "ARST": "ARST", "ACDT": "ACDT", "AKST": "AKST", "CAT": "CAT", "HNCU": "HNCU", "CDT": "CDT", "BOT": "BOT", "ACST": "ACST", "COST": "COST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "UYT": "UYT", "MESZ": "MESZ", "CLT": "CLT", "ADT": "ADT", "HNPMX": "HNPMX", "WIT": "WIT", "IST": "IST", "WEZ": "WEZ", "WAT": "WAT", "JDT": "JDT", "OESZ": "OESZ", "WESZ": "WESZ", "COT": "COT", "BT": "BT", "HAT": "HAT", "AWST": "AWST", "CHADT": "CHADT", "HKT": "HKT", "AEDT": "AEDT", "ACWDT": "ACWDT", "NZDT": "NZDT", "TMT": "TMT", "TMST": "TMST", "ChST": "ChST", "HNPM": "HNPM", "HEPMX": "HEPMX", "MEZ": "MEZ", "HECU": "HECU", "SAST": "SAST", "WIB": "WIB", "EST": "EST", "CLST": "CLST", "AST": "AST", "CST": "CST", "PDT": "PDT", "NZST": "NZST", "HNEG": "HNEG", "HEEG": "HEEG", "AKDT": "AKDT", "AEST": "AEST", "GYT": "GYT", "HKST": "HKST", "MST": "MST", "HEPM": "HEPM", "ECT": "ECT", "ACWST": "ACWST", "MDT": "MDT", "PST": "PST", "JST": "JST", "WART": "WART", "WARST": "WARST", "HNOG": "HNOG", "GMT": "GMT", "ART": "ART", "GFT": "GFT", "WITA": "WITA", "SRT": "SRT", "CHAST": "CHAST", "HAST": "HAST", "EDT": "EDT", "∅∅∅": "∅∅∅", "EAT": "EAT", "HADT": "HADT", "MYT": "MYT", "WAST": "WAST", "HNT": "HNT", "LHST": "LHST", "LHDT": "LHDT", "AWDT": "AWDT", "VET": "VET"},
}
}
diff --git a/ru/ru.go b/ru/ru.go
index 1c5126ce..13430f36 100644
--- a/ru/ru.go
+++ b/ru/ru.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"до н. э.", "н. э."},
erasNarrow: []string{"до н.э.", "н.э."},
erasWide: []string{"до Рождества Христова", "от Рождества Христова"},
- timezones: map[string]string{"COST": "Колумбия, летнее время", "AKST": "Аляска, стандартное время", "AST": "Атлантическое стандартное время", "ARST": "Аргентина, летнее время", "WITA": "Центральная Индонезия", "EAT": "Восточная Африка", "WEZ": "Западная Европа, стандартное время", "WESZ": "Западная Европа, летнее время", "HEOG": "Западная Гренландия, летнее время", "NZST": "Новая Зеландия, стандартное время", "ChST": "Чаморро", "PST": "Тихоокеанское стандартное время", "UYST": "Уругвай, летнее время", "HEPMX": "Тихоокеанское мексиканское летнее время", "OESZ": "Восточная Европа, летнее время", "WART": "Западная Аргентина, стандартное время", "GMT": "Среднее время по Гринвичу", "AWST": "Западная Австралия, стандартное время", "JST": "Япония, стандартное время", "WAST": "Западная Африка, летнее время", "HAST": "Гавайско-алеутское стандартное время", "CLST": "Чили, летнее время", "HNEG": "Восточная Гренландия, стандарное время", "HECU": "Куба, летнее время", "SGT": "Сингапур", "VET": "Венесуэла", "HNOG": "Западная Гренландия, стандартное время", "HEPM": "Сен-Пьер и Микелон, летнее время", "HENOMX": "Северо-западное мексиканское летнее время", "HNT": "Ньюфаундленд, стандартное время", "AEST": "Восточная Австралия, стандартное время", "AEDT": "Восточная Австралия, летнее время", "CLT": "Чили, стандартное время", "WAT": "Западная Африка, стандартное время", "HNPM": "Сен-Пьер и Микелон, стандартное время", "TMT": "Туркмения, стандартное время", "SRT": "Суринам", "ACWST": "Центральная Австралия, западное стандартное время", "HKT": "Гонконг, стандартное время", "MEZ": "Центральная Европа, стандартное время", "HNCU": "Куба, стандартное время", "BT": "Бутан", "BOT": "Боливия", "ACDT": "Центральная Австралия, летнее время", "HNPMX": "Тихоокеанское мексиканское стандартное время", "COT": "Колумбия, стандартное время", "EST": "Восточная Америка, стандартное время", "WIB": "Западная Индонезия", "WIT": "Восточная Индонезия", "LHST": "Лорд-Хау, стандартное время", "LHDT": "Лорд-Хау, летнее время", "IST": "Индия", "∅∅∅": "Перу, летнее время", "ACST": "Центральная Австралия, стандартное время", "JDT": "Япония, летнее время", "WARST": "Западная Аргентина, летнее время", "CDT": "Центральная Америка, летнее время", "MYT": "Малайзия", "MESZ": "Центральная Европа, летнее время", "ECT": "Эквадор", "CST": "Центральная Америка, стандартное время", "UYT": "Уругвай, стандартное время", "PDT": "Тихоокеанское летнее время", "TMST": "Туркмения, летнее время", "AKDT": "Аляска, летнее время", "ADT": "Атлантическое летнее время", "HAT": "Ньюфаундленд, летнее время", "AWDT": "Западная Австралия, летнее время", "HKST": "Гонконг, летнее время", "HEEG": "Восточная Гренландия, летнее время", "MDT": "Макао, летнее время", "OEZ": "Восточная Европа, стандартное время", "HNNOMX": "Северо-западное мексиканское стандартное время", "EDT": "Восточная Америка, летнее время", "MST": "Макао, стандартное время", "GYT": "Гайана", "HADT": "Гавайско-алеутское летнее время", "ACWDT": "Центральная Австралия, западное летнее время", "CAT": "Центральная Африка", "NZDT": "Новая Зеландия, летнее время", "CHAST": "Чатем, стандартное время", "CHADT": "Чатем, летнее время", "SAST": "Южная Африка", "GFT": "Французская Гвиана", "ART": "Аргентина, стандартное время"},
+ timezones: map[string]string{"JDT": "Япония, летнее время", "UYT": "Уругвай, стандартное время", "JST": "Япония, стандартное время", "EST": "Восточная Америка, стандартное время", "EDT": "Восточная Америка, летнее время", "SRT": "Суринам", "AWST": "Западная Австралия, стандартное время", "NZST": "Новая Зеландия, стандартное время", "CLST": "Чили, летнее время", "ARST": "Аргентина, летнее время", "WAT": "Западная Африка, стандартное время", "ACST": "Центральная Австралия, стандартное время", "PST": "Тихоокеанское стандартное время", "PDT": "Тихоокеанское летнее время", "ACWST": "Центральная Австралия, западное стандартное время", "CLT": "Чили, стандартное время", "ADT": "Атлантическое летнее время", "MST": "Макао, стандартное время", "SAST": "Южная Африка", "EAT": "Восточная Африка", "CDT": "Центральная Америка, летнее время", "CHAST": "Чатем, стандартное время", "AKST": "Аляска, стандартное время", "AST": "Атлантическое стандартное время", "WESZ": "Западная Европа, летнее время", "GFT": "Французская Гвиана", "AKDT": "Аляска, летнее время", "UYST": "Уругвай, летнее время", "HNPM": "Сен-Пьер и Микелон, стандартное время", "LHST": "Лорд-Хау, стандартное время", "WART": "Западная Аргентина, стандартное время", "HEEG": "Восточная Гренландия, летнее время", "WEZ": "Западная Европа, стандартное время", "MYT": "Малайзия", "AEDT": "Восточная Австралия, летнее время", "CAT": "Центральная Африка", "HNOG": "Западная Гренландия, стандартное время", "WAST": "Западная Африка, летнее время", "MESZ": "Центральная Европа, летнее время", "GMT": "Среднее время по Гринвичу", "HAT": "Ньюфаундленд, летнее время", "HEPM": "Сен-Пьер и Микелон, летнее время", "WIB": "Западная Индонезия", "AWDT": "Западная Австралия, летнее время", "HNNOMX": "Северо-западное мексиканское стандартное время", "ART": "Аргентина, стандартное время", "HKST": "Гонконг, летнее время", "COT": "Колумбия, стандартное время", "HENOMX": "Северо-западное мексиканское летнее время", "AEST": "Восточная Австралия, стандартное время", "ECT": "Эквадор", "HAST": "Гавайско-алеутское стандартное время", "ACDT": "Центральная Австралия, летнее время", "HNT": "Ньюфаундленд, стандартное время", "ChST": "Чаморро", "LHDT": "Лорд-Хау, летнее время", "ACWDT": "Центральная Австралия, западное летнее время", "OEZ": "Восточная Европа, стандартное время", "∅∅∅": "Бразилия, летнее время", "IST": "Индия", "NZDT": "Новая Зеландия, летнее время", "MEZ": "Центральная Европа, стандартное время", "OESZ": "Восточная Европа, летнее время", "HNEG": "Восточная Гренландия, стандарное время", "CST": "Центральная Америка, стандартное время", "WIT": "Восточная Индонезия", "WITA": "Центральная Индонезия", "HECU": "Куба, летнее время", "HEPMX": "Тихоокеанское мексиканское летнее время", "SGT": "Сингапур", "TMT": "Туркмения, стандартное время", "VET": "Венесуэла", "COST": "Колумбия, летнее время", "HNPMX": "Тихоокеанское мексиканское стандартное время", "CHADT": "Чатем, летнее время", "HADT": "Гавайско-алеутское летнее время", "MDT": "Макао, летнее время", "BT": "Бутан", "GYT": "Гайана", "HNCU": "Куба, стандартное время", "WARST": "Западная Аргентина, летнее время", "TMST": "Туркмения, летнее время", "HKT": "Гонконг, стандартное время", "BOT": "Боливия", "HEOG": "Западная Гренландия, летнее время"},
}
}
diff --git a/ru_BY/ru_BY.go b/ru_BY/ru_BY.go
index 11d4db0f..0345e26a 100644
--- a/ru_BY/ru_BY.go
+++ b/ru_BY/ru_BY.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"до н. э.", "н. э."},
erasNarrow: []string{"до н.э.", "н.э."},
erasWide: []string{"до Рождества Христова", "от Рождества Христова"},
- timezones: map[string]string{"HNCU": "Куба, стандартное время", "HEPMX": "Тихоокеанское мексиканское летнее время", "AKDT": "Аляска, летнее время", "HKST": "Гонконг, летнее время", "WIB": "Западная Индонезия", "JST": "Япония, стандартное время", "ChST": "Чаморро", "HENOMX": "Северо-западное мексиканское летнее время", "MYT": "Малайзия", "SRT": "Суринам", "HNOG": "Западная Гренландия, стандартное время", "PDT": "Тихоокеанское летнее время", "ACST": "Центральная Австралия, стандартное время", "OEZ": "Восточная Европа, стандартное время", "ECT": "Эквадор", "WARST": "Западная Аргентина, летнее время", "MEZ": "Центральная Европа, стандартное время", "GYT": "Гайана", "HNPM": "Сен-Пьер и Микелон, стандартное время", "HEPM": "Сен-Пьер и Микелон, летнее время", "MST": "Макао, стандартное время", "CST": "Центральная Америка, стандартное время", "HEOG": "Западная Гренландия, летнее время", "SAST": "Южная Африка", "CLT": "Чили, стандартное время", "COST": "Колумбия, летнее время", "EST": "Восточная Америка, стандартное время", "WIT": "Восточная Индонезия", "WESZ": "Западная Европа, летнее время", "IST": "Индия", "HEEG": "Восточная Гренландия, летнее время", "COT": "Колумбия, стандартное время", "CDT": "Центральная Америка, летнее время", "LHST": "Лорд-Хау, стандартное время", "EDT": "Восточная Америка, летнее время", "BT": "Бутан", "HAT": "Ньюфаундленд, летнее время", "ADT": "Атлантическое летнее время", "ACWST": "Центральная Австралия, западное стандартное время", "AEDT": "Восточная Австралия, летнее время", "BOT": "Боливия", "OESZ": "Восточная Европа, летнее время", "SGT": "Сингапур", "AKST": "Аляска, стандартное время", "∅∅∅": "Амазонка, летнее время", "WART": "Западная Аргентина, стандартное время", "AEST": "Восточная Австралия, стандартное время", "ACDT": "Центральная Австралия, летнее время", "HNPMX": "Тихоокеанское мексиканское стандартное время", "AWDT": "Западная Австралия, летнее время", "VET": "Венесуэла", "HNT": "Ньюфаундленд, стандартное время", "WITA": "Центральная Индонезия", "HNEG": "Восточная Гренландия, стандарное время", "TMT": "Туркмения, стандартное время", "MDT": "Макао, летнее время", "AST": "Атлантическое стандартное время", "HECU": "Куба, летнее время", "HAST": "Гавайско-алеутское стандартное время", "WEZ": "Западная Европа, стандартное время", "CHADT": "Чатем, летнее время", "EAT": "Восточная Африка", "WAT": "Западная Африка, стандартное время", "WAST": "Западная Африка, летнее время", "CAT": "Центральная Африка", "UYT": "Уругвай, стандартное время", "HADT": "Гавайско-алеутское летнее время", "NZST": "Новая Зеландия, стандартное время", "NZDT": "Новая Зеландия, летнее время", "CLST": "Чили, летнее время", "GFT": "Французская Гвиана", "AWST": "Западная Австралия, стандартное время", "HKT": "Гонконг, стандартное время", "MESZ": "Центральная Европа, летнее время", "CHAST": "Чатем, стандартное время", "HNNOMX": "Северо-западное мексиканское стандартное время", "ACWDT": "Центральная Австралия, западное летнее время", "UYST": "Уругвай, летнее время", "ART": "Аргентина, стандартное время", "ARST": "Аргентина, летнее время", "LHDT": "Лорд-Хау, летнее время", "JDT": "Япония, летнее время", "TMST": "Туркмения, летнее время", "GMT": "Среднее время по Гринвичу", "PST": "Тихоокеанское стандартное время"},
+ timezones: map[string]string{"HNPMX": "Тихоокеанское мексиканское стандартное время", "AWST": "Западная Австралия, стандартное время", "OESZ": "Восточная Европа, летнее время", "AEDT": "Восточная Австралия, летнее время", "UYST": "Уругвай, летнее время", "LHST": "Лорд-Хау, стандартное время", "JDT": "Япония, летнее время", "ART": "Аргентина, стандартное время", "ACDT": "Центральная Австралия, летнее время", "HENOMX": "Северо-западное мексиканское летнее время", "SRT": "Суринам", "AWDT": "Западная Австралия, летнее время", "SGT": "Сингапур", "CAT": "Центральная Африка", "EDT": "Восточная Америка, летнее время", "LHDT": "Лорд-Хау, летнее время", "HNCU": "Куба, стандартное время", "WARST": "Западная Аргентина, летнее время", "CLT": "Чили, стандартное время", "AST": "Атлантическое стандартное время", "OEZ": "Восточная Европа, стандартное время", "WAT": "Западная Африка, стандартное время", "HKST": "Гонконг, летнее время", "AKDT": "Аляска, летнее время", "∅∅∅": "Азорские о-ва, летнее время", "NZST": "Новая Зеландия, стандартное время", "TMT": "Туркмения, стандартное время", "MEZ": "Центральная Европа, стандартное время", "HEOG": "Западная Гренландия, летнее время", "TMST": "Туркмения, летнее время", "EST": "Восточная Америка, стандартное время", "HKT": "Гонконг, стандартное время", "BOT": "Боливия", "MESZ": "Центральная Европа, летнее время", "MYT": "Малайзия", "ChST": "Чаморро", "HECU": "Куба, летнее время", "IST": "Индия", "NZDT": "Новая Зеландия, летнее время", "JST": "Япония, стандартное время", "HAT": "Ньюфаундленд, летнее время", "GFT": "Французская Гвиана", "CST": "Центральная Америка, стандартное время", "CLST": "Чили, летнее время", "ACST": "Центральная Австралия, стандартное время", "AEST": "Восточная Австралия, стандартное время", "CHADT": "Чатем, летнее время", "ECT": "Эквадор", "ACWST": "Центральная Австралия, западное стандартное время", "WART": "Западная Аргентина, стандартное время", "MST": "Макао, стандартное время", "BT": "Бутан", "UYT": "Уругвай, стандартное время", "WIB": "Западная Индонезия", "WIT": "Восточная Индонезия", "PST": "Тихоокеанское стандартное время", "HNOG": "Западная Гренландия, стандартное время", "GMT": "Среднее время по Гринвичу", "MDT": "Макао, летнее время", "HEEG": "Восточная Гренландия, летнее время", "HADT": "Гавайско-алеутское летнее время", "ADT": "Атлантическое летнее время", "HNT": "Ньюфаундленд, стандартное время", "SAST": "Южная Африка", "CDT": "Центральная Америка, летнее время", "WEZ": "Западная Европа, стандартное время", "WAST": "Западная Африка, летнее время", "HNEG": "Восточная Гренландия, стандарное время", "VET": "Венесуэла", "HNPM": "Сен-Пьер и Микелон, стандартное время", "HEPM": "Сен-Пьер и Микелон, летнее время", "EAT": "Восточная Африка", "CHAST": "Чатем, стандартное время", "PDT": "Тихоокеанское летнее время", "HAST": "Гавайско-алеутское стандартное время", "ACWDT": "Центральная Австралия, западное летнее время", "ARST": "Аргентина, летнее время", "WITA": "Центральная Индонезия", "HEPMX": "Тихоокеанское мексиканское летнее время", "GYT": "Гайана", "WESZ": "Западная Европа, летнее время", "COT": "Колумбия, стандартное время", "COST": "Колумбия, летнее время", "HNNOMX": "Северо-западное мексиканское стандартное время", "AKST": "Аляска, стандартное время"},
}
}
diff --git a/ru_KG/ru_KG.go b/ru_KG/ru_KG.go
index c56e1042..ff747b0d 100644
--- a/ru_KG/ru_KG.go
+++ b/ru_KG/ru_KG.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"до н. э.", "н. э."},
erasNarrow: []string{"до н.э.", "н.э."},
erasWide: []string{"до Рождества Христова", "от Рождества Христова"},
- timezones: map[string]string{"CAT": "Центральная Африка", "COT": "Колумбия, стандартное время", "SGT": "Сингапур", "HNOG": "Западная Гренландия, стандартное время", "PST": "Тихоокеанское стандартное время", "ChST": "Чаморро", "WARST": "Западная Аргентина, летнее время", "HECU": "Куба, летнее время", "EST": "Восточная Америка, стандартное время", "AST": "Атлантическое стандартное время", "HAST": "Гавайско-алеутское стандартное время", "ART": "Аргентина, стандартное время", "ACWST": "Центральная Австралия, западное стандартное время", "WAT": "Западная Африка, стандартное время", "HNCU": "Куба, стандартное время", "MYT": "Малайзия", "UYST": "Уругвай, летнее время", "AKDT": "Аляска, летнее время", "WIT": "Восточная Индонезия", "MEZ": "Центральная Европа, стандартное время", "JST": "Япония, стандартное время", "OEZ": "Восточная Европа, стандартное время", "HNNOMX": "Северо-западное мексиканское стандартное время", "MDT": "Макао, летнее время", "BT": "Бутан", "TMT": "Туркмения, стандартное время", "CST": "Центральная Америка, стандартное время", "AEST": "Восточная Австралия, стандартное время", "CHADT": "Чатем, летнее время", "SAST": "Южная Африка", "TMST": "Туркмения, летнее время", "COST": "Колумбия, летнее время", "ADT": "Атлантическое летнее время", "HEOG": "Западная Гренландия, летнее время", "WESZ": "Западная Европа, летнее время", "MESZ": "Центральная Европа, летнее время", "ACST": "Центральная Австралия, стандартное время", "OESZ": "Восточная Европа, летнее время", "HNPMX": "Тихоокеанское мексиканское стандартное время", "WIB": "Западная Индонезия", "ARST": "Аргентина, летнее время", "AWDT": "Западная Австралия, летнее время", "WAST": "Западная Африка, летнее время", "WEZ": "Западная Европа, стандартное время", "LHDT": "Лорд-Хау, летнее время", "HAT": "Ньюфаундленд, летнее время", "JDT": "Япония, летнее время", "ACDT": "Центральная Австралия, летнее время", "EDT": "Восточная Америка, летнее время", "GYT": "Гайана", "AKST": "Аляска, стандартное время", "CDT": "Центральная Америка, летнее время", "ACWDT": "Центральная Австралия, западное летнее время", "HNEG": "Восточная Гренландия, стандарное время", "EAT": "Восточная Африка", "HNT": "Ньюфаундленд, стандартное время", "HKT": "Гонконг, стандартное время", "HNPM": "Сен-Пьер и Микелон, стандартное время", "NZDT": "Новая Зеландия, летнее время", "GFT": "Французская Гвиана", "∅∅∅": "Перу, летнее время", "VET": "Венесуэла", "AEDT": "Восточная Австралия, летнее время", "HEPM": "Сен-Пьер и Микелон, летнее время", "LHST": "Лорд-Хау, стандартное время", "CLST": "Чили, летнее время", "HEPMX": "Тихоокеанское мексиканское летнее время", "AWST": "Западная Австралия, стандартное время", "HKST": "Гонконг, летнее время", "WITA": "Центральная Индонезия", "NZST": "Новая Зеландия, стандартное время", "CHAST": "Чатем, стандартное время", "HEEG": "Восточная Гренландия, летнее время", "GMT": "Среднее время по Гринвичу", "SRT": "Суринам", "BOT": "Боливия", "IST": "Индия", "WART": "Западная Аргентина, стандартное время", "HADT": "Гавайско-алеутское летнее время", "ECT": "Эквадор", "HENOMX": "Северо-западное мексиканское летнее время", "MST": "Макао, стандартное время", "UYT": "Уругвай, стандартное время", "PDT": "Тихоокеанское летнее время", "CLT": "Чили, стандартное время"},
+ timezones: map[string]string{"SRT": "Суринам", "SAST": "Южная Африка", "CLT": "Чили, стандартное время", "HNEG": "Восточная Гренландия, стандарное время", "∅∅∅": "Акри летнее время", "AKST": "Аляска, стандартное время", "ChST": "Чаморро", "HNPMX": "Тихоокеанское мексиканское стандартное время", "LHST": "Лорд-Хау, стандартное время", "HECU": "Куба, летнее время", "AWDT": "Западная Австралия, летнее время", "TMT": "Туркмения, стандартное время", "ACDT": "Центральная Австралия, летнее время", "HNPM": "Сен-Пьер и Микелон, стандартное время", "JDT": "Япония, летнее время", "WAST": "Западная Африка, летнее время", "UYT": "Уругвай, стандартное время", "HEOG": "Западная Гренландия, летнее время", "ECT": "Эквадор", "MESZ": "Центральная Европа, летнее время", "EST": "Восточная Америка, стандартное время", "HENOMX": "Северо-западное мексиканское летнее время", "HEPM": "Сен-Пьер и Микелон, летнее время", "VET": "Венесуэла", "ARST": "Аргентина, летнее время", "ACST": "Центральная Австралия, стандартное время", "WIT": "Восточная Индонезия", "CHAST": "Чатем, стандартное время", "NZST": "Новая Зеландия, стандартное время", "MDT": "Макао, летнее время", "HKST": "Гонконг, летнее время", "GFT": "Французская Гвиана", "WART": "Западная Аргентина, стандартное время", "ADT": "Атлантическое летнее время", "OEZ": "Восточная Европа, стандартное время", "OESZ": "Восточная Европа, летнее время", "MST": "Макао, стандартное время", "WITA": "Центральная Индонезия", "UYST": "Уругвай, летнее время", "WARST": "Западная Аргентина, летнее время", "AEST": "Восточная Австралия, стандартное время", "AWST": "Западная Австралия, стандартное время", "GYT": "Гайана", "SGT": "Сингапур", "PST": "Тихоокеанское стандартное время", "GMT": "Среднее время по Гринвичу", "MYT": "Малайзия", "ART": "Аргентина, стандартное время", "WAT": "Западная Африка, стандартное время", "HAT": "Ньюфаундленд, летнее время", "PDT": "Тихоокеанское летнее время", "IST": "Индия", "EAT": "Восточная Африка", "HNCU": "Куба, стандартное время", "CHADT": "Чатем, летнее время", "WESZ": "Западная Европа, летнее время", "HNOG": "Западная Гренландия, стандартное время", "EDT": "Восточная Америка, летнее время", "COT": "Колумбия, стандартное время", "HNT": "Ньюфаундленд, стандартное время", "JST": "Япония, стандартное время", "ACWDT": "Центральная Австралия, западное летнее время", "CLST": "Чили, летнее время", "AST": "Атлантическое стандартное время", "HNNOMX": "Северо-западное мексиканское стандартное время", "BOT": "Боливия", "ACWST": "Центральная Австралия, западное стандартное время", "LHDT": "Лорд-Хау, летнее время", "CST": "Центральная Америка, стандартное время", "HEPMX": "Тихоокеанское мексиканское летнее время", "HAST": "Гавайско-алеутское стандартное время", "MEZ": "Центральная Европа, стандартное время", "WEZ": "Западная Европа, стандартное время", "TMST": "Туркмения, летнее время", "HEEG": "Восточная Гренландия, летнее время", "BT": "Бутан", "AEDT": "Восточная Австралия, летнее время", "HADT": "Гавайско-алеутское летнее время", "NZDT": "Новая Зеландия, летнее время", "CAT": "Центральная Африка", "HKT": "Гонконг, стандартное время", "COST": "Колумбия, летнее время", "AKDT": "Аляска, летнее время", "WIB": "Западная Индонезия", "CDT": "Центральная Америка, летнее время"},
}
}
@@ -100,8 +100,8 @@ func (ru *ru_KG) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
i := int64(n)
- iMod10 := i % 10
iMod100 := i % 100
+ iMod10 := i % 10
if v == 0 && iMod10 == 1 && iMod100 != 11 {
return locales.PluralRuleOne
diff --git a/ru_KZ/ru_KZ.go b/ru_KZ/ru_KZ.go
index 482dd330..1d7e0de4 100644
--- a/ru_KZ/ru_KZ.go
+++ b/ru_KZ/ru_KZ.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"до н. э.", "н. э."},
erasNarrow: []string{"до н.э.", "н.э."},
erasWide: []string{"до Рождества Христова", "от Рождества Христова"},
- timezones: map[string]string{"WIT": "Восточная Индонезия", "IST": "Индия", "JST": "Япония, стандартное время", "ACDT": "Центральная Австралия, летнее время", "MYT": "Малайзия", "HAST": "Гавайско-алеутское стандартное время", "VET": "Венесуэла", "CLST": "Чили, летнее время", "GFT": "Французская Гвиана", "HENOMX": "Северо-западное мексиканское летнее время", "MST": "Макао, стандартное время", "LHDT": "Лорд-Хау, летнее время", "CLT": "Чили, стандартное время", "GMT": "Среднее время по Гринвичу", "SRT": "Суринам", "WESZ": "Западная Европа, летнее время", "WARST": "Западная Аргентина, летнее время", "CHADT": "Чатем, летнее время", "ChST": "Чаморро", "BOT": "Боливия", "EAT": "Восточная Африка", "WART": "Западная Аргентина, стандартное время", "MDT": "Макао, летнее время", "ART": "Аргентина, стандартное время", "AEDT": "Восточная Австралия, летнее время", "AWDT": "Западная Австралия, летнее время", "∅∅∅": "Амазонка, летнее время", "WAT": "Западная Африка, стандартное время", "OESZ": "Восточная Европа, летнее время", "SGT": "Сингапур", "SAST": "Южная Африка", "COT": "Колумбия, стандартное время", "HNT": "Ньюфаундленд, стандартное время", "HNPM": "Сен-Пьер и Микелон, стандартное время", "NZST": "Новая Зеландия, стандартное время", "NZDT": "Новая Зеландия, летнее время", "ECT": "Эквадор", "AST": "Атлантическое стандартное время", "HEOG": "Западная Гренландия, летнее время", "LHST": "Лорд-Хау, стандартное время", "HNEG": "Восточная Гренландия, стандарное время", "ADT": "Атлантическое летнее время", "HEPM": "Сен-Пьер и Микелон, летнее время", "MEZ": "Центральная Европа, стандартное время", "CHAST": "Чатем, стандартное время", "JDT": "Япония, летнее время", "TMST": "Туркмения, летнее время", "WEZ": "Западная Европа, стандартное время", "HAT": "Ньюфаундленд, летнее время", "HEPMX": "Тихоокеанское мексиканское летнее время", "UYT": "Уругвай, стандартное время", "PST": "Тихоокеанское стандартное время", "AKST": "Аляска, стандартное время", "PDT": "Тихоокеанское летнее время", "ACWDT": "Центральная Австралия, западное летнее время", "WITA": "Центральная Индонезия", "HEEG": "Восточная Гренландия, летнее время", "ACST": "Центральная Австралия, стандартное время", "WAST": "Западная Африка, летнее время", "EDT": "Восточная Америка, летнее время", "AEST": "Восточная Австралия, стандартное время", "MESZ": "Центральная Европа, летнее время", "HNPMX": "Тихоокеанское мексиканское стандартное время", "GYT": "Гайана", "UYST": "Уругвай, летнее время", "CDT": "Центральная Америка, летнее время", "ACWST": "Центральная Австралия, западное стандартное время", "HNNOMX": "Северо-западное мексиканское стандартное время", "HNCU": "Куба, стандартное время", "HECU": "Куба, летнее время", "CST": "Центральная Америка, стандартное время", "HKT": "Гонконг, стандартное время", "TMT": "Туркмения, стандартное время", "CAT": "Центральная Африка", "COST": "Колумбия, летнее время", "EST": "Восточная Америка, стандартное время", "AWST": "Западная Австралия, стандартное время", "HKST": "Гонконг, летнее время", "AKDT": "Аляска, летнее время", "HADT": "Гавайско-алеутское летнее время", "BT": "Бутан", "HNOG": "Западная Гренландия, стандартное время", "OEZ": "Восточная Европа, стандартное время", "WIB": "Западная Индонезия", "ARST": "Аргентина, летнее время"},
+ timezones: map[string]string{"ACDT": "Центральная Австралия, летнее время", "CDT": "Центральная Америка, летнее время", "WEZ": "Западная Европа, стандартное время", "WESZ": "Западная Европа, летнее время", "AEST": "Восточная Австралия, стандартное время", "ACWST": "Центральная Австралия, западное стандартное время", "EST": "Восточная Америка, стандартное время", "MESZ": "Центральная Европа, летнее время", "VET": "Венесуэла", "CLT": "Чили, стандартное время", "HAT": "Ньюфаундленд, летнее время", "UYST": "Уругвай, летнее время", "HEPM": "Сен-Пьер и Микелон, летнее время", "BOT": "Боливия", "HAST": "Гавайско-алеутское стандартное время", "HEEG": "Восточная Гренландия, летнее время", "NZDT": "Новая Зеландия, летнее время", "HKST": "Гонконг, летнее время", "JDT": "Япония, летнее время", "WART": "Западная Аргентина, стандартное время", "HNPMX": "Тихоокеанское мексиканское стандартное время", "CHADT": "Чатем, летнее время", "PST": "Тихоокеанское стандартное время", "MYT": "Малайзия", "ACST": "Центральная Австралия, стандартное время", "HNPM": "Сен-Пьер и Микелон, стандартное время", "LHST": "Лорд-Хау, стандартное время", "SRT": "Суринам", "ACWDT": "Центральная Австралия, западное летнее время", "AST": "Атлантическое стандартное время", "HKT": "Гонконг, стандартное время", "AKST": "Аляска, стандартное время", "HADT": "Гавайско-алеутское летнее время", "GMT": "Среднее время по Гринвичу", "COST": "Колумбия, летнее время", "UYT": "Уругвай, стандартное время", "TMT": "Туркмения, стандартное время", "ARST": "Аргентина, летнее время", "ChST": "Чаморро", "CST": "Центральная Америка, стандартное время", "OEZ": "Восточная Европа, стандартное время", "HNNOMX": "Северо-западное мексиканское стандартное время", "HENOMX": "Северо-западное мексиканское летнее время", "SAST": "Южная Африка", "GYT": "Гайана", "WIB": "Западная Индонезия", "∅∅∅": "Амазонка, летнее время", "HEOG": "Западная Гренландия, летнее время", "EDT": "Восточная Америка, летнее время", "GFT": "Французская Гвиана", "WIT": "Восточная Индонезия", "SGT": "Сингапур", "TMST": "Туркмения, летнее время", "MEZ": "Центральная Европа, стандартное время", "OESZ": "Восточная Европа, летнее время", "WARST": "Западная Аргентина, летнее время", "MDT": "Макао, летнее время", "WAT": "Западная Африка, стандартное время", "HNT": "Ньюфаундленд, стандартное время", "CHAST": "Чатем, стандартное время", "CAT": "Центральная Африка", "HNEG": "Восточная Гренландия, стандарное время", "HECU": "Куба, летнее время", "BT": "Бутан", "WITA": "Центральная Индонезия", "EAT": "Восточная Африка", "AWST": "Западная Австралия, стандартное время", "AWDT": "Западная Австралия, летнее время", "WAST": "Западная Африка, летнее время", "PDT": "Тихоокеанское летнее время", "ART": "Аргентина, стандартное время", "NZST": "Новая Зеландия, стандартное время", "JST": "Япония, стандартное время", "CLST": "Чили, летнее время", "MST": "Макао, стандартное время", "COT": "Колумбия, стандартное время", "AKDT": "Аляска, летнее время", "ECT": "Эквадор", "IST": "Индия", "AEDT": "Восточная Австралия, летнее время", "HEPMX": "Тихоокеанское мексиканское летнее время", "LHDT": "Лорд-Хау, летнее время", "HNCU": "Куба, стандартное время", "HNOG": "Западная Гренландия, стандартное время", "ADT": "Атлантическое летнее время"},
}
}
diff --git a/ru_MD/ru_MD.go b/ru_MD/ru_MD.go
index c23b4ec6..e30730a0 100644
--- a/ru_MD/ru_MD.go
+++ b/ru_MD/ru_MD.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"до н. э.", "н. э."},
erasNarrow: []string{"до н.э.", "н.э."},
erasWide: []string{"до Рождества Христова", "от Рождества Христова"},
- timezones: map[string]string{"ACDT": "Центральная Австралия, летнее время", "COT": "Колумбия, стандартное время", "WIB": "Западная Индонезия", "AEST": "Восточная Австралия, стандартное время", "AWST": "Западная Австралия, стандартное время", "AWDT": "Западная Австралия, летнее время", "MEZ": "Центральная Европа, стандартное время", "NZDT": "Новая Зеландия, летнее время", "CHADT": "Чатем, летнее время", "JST": "Япония, стандартное время", "WAST": "Западная Африка, летнее время", "VET": "Венесуэла", "∅∅∅": "Амазонка, летнее время", "CAT": "Центральная Африка", "WARST": "Западная Аргентина, летнее время", "HNPMX": "Тихоокеанское мексиканское стандартное время", "ARST": "Аргентина, летнее время", "HNPM": "Сен-Пьер и Микелон, стандартное время", "GMT": "Среднее время по Гринвичу", "MST": "Макао, стандартное время", "MDT": "Макао, летнее время", "ADT": "Атлантическое летнее время", "SRT": "Суринам", "WEZ": "Западная Европа, стандартное время", "CLT": "Чили, стандартное время", "SGT": "Сингапур", "HKT": "Гонконг, стандартное время", "BOT": "Боливия", "AST": "Атлантическое стандартное время", "MYT": "Малайзия", "WITA": "Центральная Индонезия", "WART": "Западная Аргентина, стандартное время", "HNCU": "Куба, стандартное время", "AKST": "Аляска, стандартное время", "LHDT": "Лорд-Хау, летнее время", "CLST": "Чили, летнее время", "OESZ": "Восточная Европа, летнее время", "HEPMX": "Тихоокеанское мексиканское летнее время", "HADT": "Гавайско-алеутское летнее время", "WIT": "Восточная Индонезия", "ART": "Аргентина, стандартное время", "WESZ": "Западная Европа, летнее время", "MESZ": "Центральная Европа, летнее время", "HEEG": "Восточная Гренландия, летнее время", "HNNOMX": "Северо-западное мексиканское стандартное время", "HNOG": "Западная Гренландия, стандартное время", "HAT": "Ньюфаундленд, летнее время", "EAT": "Восточная Африка", "GYT": "Гайана", "CST": "Центральная Америка, стандартное время", "BT": "Бутан", "PST": "Тихоокеанское стандартное время", "JDT": "Япония, летнее время", "GFT": "Французская Гвиана", "ACST": "Центральная Австралия, стандартное время", "COST": "Колумбия, летнее время", "UYT": "Уругвай, стандартное время", "AKDT": "Аляска, летнее время", "TMT": "Туркмения, стандартное время", "TMST": "Туркмения, летнее время", "HENOMX": "Северо-западное мексиканское летнее время", "ACWDT": "Центральная Австралия, западное летнее время", "HEOG": "Западная Гренландия, летнее время", "PDT": "Тихоокеанское летнее время", "AEDT": "Восточная Австралия, летнее время", "ChST": "Чаморро", "HNEG": "Восточная Гренландия, стандарное время", "HAST": "Гавайско-алеутское стандартное время", "NZST": "Новая Зеландия, стандартное время", "OEZ": "Восточная Европа, стандартное время", "EST": "Восточная Америка, стандартное время", "EDT": "Восточная Америка, летнее время", "UYST": "Уругвай, летнее время", "CDT": "Центральная Америка, летнее время", "ACWST": "Центральная Австралия, западное стандартное время", "HEPM": "Сен-Пьер и Микелон, летнее время", "CHAST": "Чатем, стандартное время", "SAST": "Южная Африка", "IST": "Индия", "ECT": "Эквадор", "WAT": "Западная Африка, стандартное время", "HECU": "Куба, летнее время", "HNT": "Ньюфаундленд, стандартное время", "HKST": "Гонконг, летнее время", "LHST": "Лорд-Хау, стандартное время"},
+ timezones: map[string]string{"AWDT": "Западная Австралия, летнее время", "BOT": "Боливия", "NZDT": "Новая Зеландия, летнее время", "OESZ": "Восточная Европа, летнее время", "TMT": "Туркмения, стандартное время", "WAST": "Западная Африка, летнее время", "HKST": "Гонконг, летнее время", "ChST": "Чаморро", "CST": "Центральная Америка, стандартное время", "IST": "Индия", "OEZ": "Восточная Европа, стандартное время", "GYT": "Гайана", "∅∅∅": "Акри летнее время", "SGT": "Сингапур", "ACWDT": "Центральная Австралия, западное летнее время", "HNEG": "Восточная Гренландия, стандарное время", "LHST": "Лорд-Хау, стандартное время", "LHDT": "Лорд-Хау, летнее время", "EAT": "Восточная Африка", "WIB": "Западная Индонезия", "PDT": "Тихоокеанское летнее время", "MEZ": "Центральная Европа, стандартное время", "WESZ": "Западная Европа, летнее время", "HNT": "Ньюфаундленд, стандартное время", "HENOMX": "Северо-западное мексиканское летнее время", "HNCU": "Куба, стандартное время", "ACWST": "Центральная Австралия, западное стандартное время", "MYT": "Малайзия", "AKDT": "Аляска, летнее время", "HADT": "Гавайско-алеутское летнее время", "GMT": "Среднее время по Гринвичу", "COT": "Колумбия, стандартное время", "WIT": "Восточная Индонезия", "CLST": "Чили, летнее время", "EDT": "Восточная Америка, летнее время", "HNPM": "Сен-Пьер и Микелон, стандартное время", "MDT": "Горное летнее время (США)", "UYT": "Уругвай, стандартное время", "HNPMX": "Тихоокеанское мексиканское стандартное время", "ECT": "Эквадор", "HEEG": "Восточная Гренландия, летнее время", "HAT": "Ньюфаундленд, летнее время", "UYST": "Уругвай, летнее время", "CHAST": "Чатем, стандартное время", "PST": "Тихоокеанское стандартное время", "MESZ": "Центральная Европа, летнее время", "CLT": "Чили, стандартное время", "BT": "Бутан", "HEPM": "Сен-Пьер и Микелон, летнее время", "SRT": "Суринам", "AEST": "Восточная Австралия, стандартное время", "AWST": "Западная Австралия, стандартное время", "TMST": "Туркмения, летнее время", "ARST": "Аргентина, летнее время", "AEDT": "Восточная Австралия, летнее время", "VET": "Венесуэла", "JST": "Япония, стандартное время", "HEOG": "Западная Гренландия, летнее время", "ACDT": "Центральная Австралия, летнее время", "COST": "Колумбия, летнее время", "CHADT": "Чатем, летнее время", "WAT": "Западная Африка, стандартное время", "JDT": "Япония, летнее время", "HECU": "Куба, летнее время", "HAST": "Гавайско-алеутское стандартное время", "CAT": "Центральная Африка", "WART": "Западная Аргентина, стандартное время", "HNOG": "Западная Гренландия, стандартное время", "ART": "Аргентина, стандартное время", "HKT": "Гонконг, стандартное время", "HEPMX": "Тихоокеанское мексиканское летнее время", "AKST": "Аляска, стандартное время", "SAST": "Южная Африка", "CDT": "Центральная Америка, летнее время", "WARST": "Западная Аргентина, летнее время", "AST": "Атлантическое стандартное время", "WEZ": "Западная Европа, стандартное время", "EST": "Восточная Америка, стандартное время", "WITA": "Центральная Индонезия", "HNNOMX": "Северо-западное мексиканское стандартное время", "GFT": "Французская Гвиана", "NZST": "Новая Зеландия, стандартное время", "ADT": "Атлантическое летнее время", "ACST": "Центральная Австралия, стандартное время", "MST": "Горное стандартное время (США)"},
}
}
diff --git a/ru_RU/ru_RU.go b/ru_RU/ru_RU.go
index 1410bd9f..906ff0aa 100644
--- a/ru_RU/ru_RU.go
+++ b/ru_RU/ru_RU.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"до н. э.", "н. э."},
erasNarrow: []string{"до н.э.", "н.э."},
erasWide: []string{"до Рождества Христова", "от Рождества Христова"},
- timezones: map[string]string{"HNPMX": "Тихоокеанское мексиканское стандартное время", "HEPMX": "Тихоокеанское мексиканское летнее время", "HAST": "Гавайско-алеутское стандартное время", "HADT": "Гавайско-алеутское летнее время", "BOT": "Боливия", "COST": "Колумбия, летнее время", "GMT": "Среднее время по Гринвичу", "WITA": "Центральная Индонезия", "AEDT": "Восточная Австралия, летнее время", "JDT": "Япония, летнее время", "HENOMX": "Северо-западное мексиканское летнее время", "WARST": "Западная Аргентина, летнее время", "MDT": "Макао, летнее время", "OEZ": "Восточная Европа, стандартное время", "ECT": "Эквадор", "UYT": "Уругвай, стандартное время", "BT": "Бутан", "HNT": "Ньюфаундленд, стандартное время", "HNNOMX": "Северо-западное мексиканское стандартное время", "WART": "Западная Аргентина, стандартное время", "COT": "Колумбия, стандартное время", "CST": "Центральная Америка, стандартное время", "MYT": "Малайзия", "ARST": "Аргентина, летнее время", "AEST": "Восточная Австралия, стандартное время", "ChST": "Чаморро", "EDT": "Восточная Америка, летнее время", "HNEG": "Восточная Гренландия, стандарное время", "TMT": "Туркмения, стандартное время", "WAST": "Западная Африка, летнее время", "HNCU": "Куба, стандартное время", "HECU": "Куба, летнее время", "AKST": "Аляска, стандартное время", "AWST": "Западная Австралия, стандартное время", "HEPM": "Сен-Пьер и Микелон, летнее время", "SRT": "Суринам", "AWDT": "Западная Австралия, летнее время", "GYT": "Гайана", "HNOG": "Западная Гренландия, стандартное время", "PDT": "Тихоокеанское летнее время", "CLST": "Чили, летнее время", "AST": "Атлантическое стандартное время", "TMST": "Туркмения, летнее время", "ACST": "Центральная Австралия, стандартное время", "MESZ": "Центральная Европа, летнее время", "LHST": "Лорд-Хау, стандартное время", "LHDT": "Лорд-Хау, летнее время", "CDT": "Центральная Америка, летнее время", "WIB": "Западная Индонезия", "ACWDT": "Центральная Австралия, западное летнее время", "ART": "Аргентина, стандартное время", "WEZ": "Западная Европа, стандартное время", "IST": "Индия", "CLT": "Чили, стандартное время", "CHADT": "Чатем, летнее время", "EST": "Восточная Америка, стандартное время", "MST": "Макао, стандартное время", "VET": "Венесуэла", "HAT": "Ньюфаундленд, летнее время", "WESZ": "Западная Европа, летнее время", "HNPM": "Сен-Пьер и Микелон, стандартное время", "NZDT": "Новая Зеландия, летнее время", "ACDT": "Центральная Австралия, летнее время", "SGT": "Сингапур", "SAST": "Южная Африка", "HEEG": "Восточная Гренландия, летнее время", "GFT": "Французская Гвиана", "WAT": "Западная Африка, стандартное время", "∅∅∅": "Азорские о-ва, летнее время", "ADT": "Атлантическое летнее время", "ACWST": "Центральная Австралия, западное стандартное время", "HKST": "Гонконг, летнее время", "MEZ": "Центральная Европа, стандартное время", "CHAST": "Чатем, стандартное время", "OESZ": "Восточная Европа, летнее время", "CAT": "Центральная Африка", "WIT": "Восточная Индонезия", "HEOG": "Западная Гренландия, летнее время", "PST": "Тихоокеанское стандартное время", "HKT": "Гонконг, стандартное время", "NZST": "Новая Зеландия, стандартное время", "AKDT": "Аляска, летнее время", "UYST": "Уругвай, летнее время", "JST": "Япония, стандартное время", "EAT": "Восточная Африка"},
+ timezones: map[string]string{"HEPM": "Сен-Пьер и Микелон, летнее время", "UYT": "Уругвай, стандартное время", "WESZ": "Западная Европа, летнее время", "HNOG": "Западная Гренландия, стандартное время", "BT": "Бутан", "WAT": "Западная Африка, стандартное время", "AEDT": "Восточная Австралия, летнее время", "ChST": "Чаморро", "CST": "Центральная Америка, стандартное время", "AST": "Атлантическое стандартное время", "HKST": "Гонконг, летнее время", "HNNOMX": "Северо-западное мексиканское стандартное время", "HENOMX": "Северо-западное мексиканское летнее время", "GFT": "Французская Гвиана", "WITA": "Центральная Индонезия", "AKST": "Аляска, стандартное время", "∅∅∅": "Азорские о-ва, летнее время", "NZDT": "Новая Зеландия, летнее время", "MYT": "Малайзия", "CLST": "Чили, летнее время", "OESZ": "Восточная Европа, летнее время", "MDT": "Макао, летнее время", "VET": "Венесуэла", "TMT": "Туркмения, стандартное время", "HAT": "Ньюфаундленд, летнее время", "GYT": "Гайана", "HECU": "Куба, летнее время", "CLT": "Чили, стандартное время", "WAST": "Западная Африка, летнее время", "CHADT": "Чатем, летнее время", "PDT": "Тихоокеанское летнее время", "OEZ": "Восточная Европа, стандартное время", "SRT": "Суринам", "WARST": "Западная Аргентина, летнее время", "ACDT": "Центральная Австралия, летнее время", "CAT": "Центральная Африка", "ART": "Аргентина, стандартное время", "AEST": "Восточная Австралия, стандартное время", "EAT": "Восточная Африка", "HNCU": "Куба, стандартное время", "BOT": "Боливия", "HNT": "Ньюфаундленд, стандартное время", "SAST": "Южная Африка", "SGT": "Сингапур", "JDT": "Япония, летнее время", "ADT": "Атлантическое летнее время", "TMST": "Туркмения, летнее время", "EST": "Восточная Америка, стандартное время", "COT": "Колумбия, стандартное время", "WIB": "Западная Индонезия", "CHAST": "Чатем, стандартное время", "WART": "Западная Аргентина, стандартное время", "ARST": "Аргентина, летнее время", "HAST": "Гавайско-алеутское стандартное время", "ECT": "Эквадор", "JST": "Япония, стандартное время", "PST": "Тихоокеанское стандартное время", "NZST": "Новая Зеландия, стандартное время", "IST": "Индия", "MEZ": "Центральная Европа, стандартное время", "MESZ": "Центральная Европа, летнее время", "HNPMX": "Тихоокеанское мексиканское стандартное время", "CDT": "Центральная Америка, летнее время", "AWST": "Западная Австралия, стандартное время", "HNEG": "Восточная Гренландия, стандарное время", "WEZ": "Западная Европа, стандартное время", "HEOG": "Западная Гренландия, летнее время", "HKT": "Гонконг, стандартное время", "COST": "Колумбия, летнее время", "AKDT": "Аляска, летнее время", "LHDT": "Лорд-Хау, летнее время", "AWDT": "Западная Австралия, летнее время", "ACWST": "Центральная Австралия, западное стандартное время", "HNPM": "Сен-Пьер и Микелон, стандартное время", "HADT": "Гавайско-алеутское летнее время", "MST": "Макао, стандартное время", "EDT": "Восточная Америка, летнее время", "HEEG": "Восточная Гренландия, летнее время", "UYST": "Уругвай, летнее время", "HEPMX": "Тихоокеанское мексиканское летнее время", "LHST": "Лорд-Хау, стандартное время", "WIT": "Восточная Индонезия", "ACWDT": "Центральная Австралия, западное летнее время", "GMT": "Среднее время по Гринвичу", "ACST": "Центральная Австралия, стандартное время"},
}
}
@@ -100,8 +100,8 @@ func (ru *ru_RU) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
i := int64(n)
- iMod100 := i % 100
iMod10 := i % 10
+ iMod100 := i % 100
if v == 0 && iMod10 == 1 && iMod100 != 11 {
return locales.PluralRuleOne
diff --git a/ru_UA/ru_UA.go b/ru_UA/ru_UA.go
index d8fff3d7..11a57916 100644
--- a/ru_UA/ru_UA.go
+++ b/ru_UA/ru_UA.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"до н. э.", "н. э."},
erasNarrow: []string{"до н.э.", "н.э."},
erasWide: []string{"до Рождества Христова", "от Рождества Христова"},
- timezones: map[string]string{"IST": "Индия", "JST": "Япония, стандартное время", "ChST": "Чаморро", "SRT": "Суринам", "ART": "Аргентина, стандартное время", "HKT": "Гонконг, стандартное время", "AEDT": "Восточная Австралия, летнее время", "SAST": "Южная Африка", "COT": "Колумбия, стандартное время", "MYT": "Малайзия", "UYST": "Уругвай, летнее время", "AWDT": "Западная Австралия, летнее время", "NZDT": "Новая Зеландия, летнее время", "TMST": "Туркмения, летнее время", "HENOMX": "Северо-западное мексиканское летнее время", "GMT": "Среднее время по Гринвичу", "ACWST": "Центральная Австралия, западное стандартное время", "LHDT": "Лорд-Хау, летнее время", "∅∅∅": "Амазонка, летнее время", "OEZ": "Восточная Европа, стандартное время", "GYT": "Гайана", "ARST": "Аргентина, летнее время", "CAT": "Центральная Африка", "EAT": "Восточная Африка", "WIB": "Западная Индонезия", "VET": "Венесуэла", "HEPM": "Сен-Пьер и Микелон, летнее время", "HEEG": "Восточная Гренландия, летнее время", "CDT": "Центральная Америка, летнее время", "AEST": "Восточная Австралия, стандартное время", "NZST": "Новая Зеландия, стандартное время", "HEPMX": "Тихоокеанское мексиканское летнее время", "EDT": "Восточная Америка, летнее время", "MDT": "Макао, летнее время", "WESZ": "Западная Европа, летнее время", "AWST": "Западная Австралия, стандартное время", "GFT": "Французская Гвиана", "HNPMX": "Тихоокеанское мексиканское стандартное время", "EST": "Восточная Америка, стандартное время", "CLST": "Чили, летнее время", "BOT": "Боливия", "HNOG": "Западная Гренландия, стандартное время", "MEZ": "Центральная Европа, стандартное время", "WAST": "Западная Африка, летнее время", "SGT": "Сингапур", "ACWDT": "Центральная Австралия, западное летнее время", "HEOG": "Западная Гренландия, летнее время", "WITA": "Центральная Индонезия", "MST": "Макао, стандартное время", "ACST": "Центральная Австралия, стандартное время", "ECT": "Эквадор", "WART": "Западная Аргентина, стандартное время", "HAST": "Гавайско-алеутское стандартное время", "BT": "Бутан", "WEZ": "Западная Европа, стандартное время", "CHAST": "Чатем, стандартное время", "HNEG": "Восточная Гренландия, стандарное время", "WARST": "Западная Аргентина, летнее время", "COST": "Колумбия, летнее время", "HECU": "Куба, летнее время", "AST": "Атлантическое стандартное время", "AKDT": "Аляска, летнее время", "ADT": "Атлантическое летнее время", "UYT": "Уругвай, стандартное время", "PDT": "Тихоокеанское летнее время", "HKST": "Гонконг, летнее время", "WAT": "Западная Африка, стандартное время", "OESZ": "Восточная Европа, летнее время", "HNNOMX": "Северо-западное мексиканское стандартное время", "WIT": "Восточная Индонезия", "LHST": "Лорд-Хау, стандартное время", "TMT": "Туркмения, стандартное время", "HADT": "Гавайско-алеутское летнее время", "HNT": "Ньюфаундленд, стандартное время", "HNCU": "Куба, стандартное время", "AKST": "Аляска, стандартное время", "PST": "Тихоокеанское стандартное время", "HNPM": "Сен-Пьер и Микелон, стандартное время", "CLT": "Чили, стандартное время", "CST": "Центральная Америка, стандартное время", "HAT": "Ньюфаундленд, летнее время", "CHADT": "Чатем, летнее время", "MESZ": "Центральная Европа, летнее время", "JDT": "Япония, летнее время", "ACDT": "Центральная Австралия, летнее время"},
+ timezones: map[string]string{"BT": "Бутан", "GFT": "Французская Гвиана", "AKST": "Аляска, стандартное время", "TMT": "Туркмения, стандартное время", "ART": "Аргентина, стандартное время", "ARST": "Аргентина, летнее время", "HKT": "Гонконг, стандартное время", "EAT": "Восточная Африка", "OEZ": "Восточная Европа, стандартное время", "WAST": "Западная Африка, летнее время", "WESZ": "Западная Европа, летнее время", "HNEG": "Восточная Гренландия, стандарное время", "BOT": "Боливия", "CAT": "Центральная Африка", "AST": "Атлантическое стандартное время", "WIB": "Западная Индонезия", "AWST": "Западная Австралия, стандартное время", "AWDT": "Западная Австралия, летнее время", "NZDT": "Новая Зеландия, летнее время", "WART": "Западная Аргентина, стандартное время", "ChST": "Чаморро", "SAST": "Южная Африка", "HEPMX": "Тихоокеанское мексиканское летнее время", "WIT": "Восточная Индонезия", "HAST": "Гавайско-алеутское стандартное время", "ECT": "Эквадор", "MYT": "Малайзия", "HNPM": "Сен-Пьер и Микелон, стандартное время", "∅∅∅": "Азорские о-ва, летнее время", "HECU": "Куба, летнее время", "HKST": "Гонконг, летнее время", "HNT": "Ньюфаундленд, стандартное время", "HNCU": "Куба, стандартное время", "SGT": "Сингапур", "PDT": "Тихоокеанское летнее время", "LHDT": "Лорд-Хау, летнее время", "WEZ": "Западная Европа, стандартное время", "TMST": "Туркмения, летнее время", "HNPMX": "Тихоокеанское мексиканское стандартное время", "EST": "Восточная Америка, стандартное время", "COT": "Колумбия, стандартное время", "ACST": "Центральная Австралия, стандартное время", "HENOMX": "Северо-западное мексиканское летнее время", "HEEG": "Восточная Гренландия, летнее время", "AEDT": "Восточная Австралия, летнее время", "PST": "Тихоокеанское стандартное время", "NZST": "Новая Зеландия, стандартное время", "EDT": "Восточная Америка, летнее время", "IST": "Индия", "ACWST": "Центральная Австралия, западное стандартное время", "JST": "Япония, стандартное время", "HNOG": "Западная Гренландия, стандартное время", "HEOG": "Западная Гренландия, летнее время", "UYST": "Уругвай, летнее время", "LHST": "Лорд-Хау, стандартное время", "CHAST": "Чатем, стандартное время", "WARST": "Западная Аргентина, летнее время", "MST": "Макао, стандартное время", "HAT": "Ньюфаундленд, летнее время", "ACWDT": "Центральная Австралия, западное летнее время", "COST": "Колумбия, летнее время", "SRT": "Суринам", "CST": "Центральная Америка, стандартное время", "CDT": "Центральная Америка, летнее время", "AEST": "Восточная Австралия, стандартное время", "CHADT": "Чатем, летнее время", "JDT": "Япония, летнее время", "MDT": "Макао, летнее время", "CLT": "Чили, стандартное время", "OESZ": "Восточная Европа, летнее время", "AKDT": "Аляска, летнее время", "GYT": "Гайана", "HADT": "Гавайско-алеутское летнее время", "MEZ": "Центральная Европа, стандартное время", "WAT": "Западная Африка, стандартное время", "ACDT": "Центральная Австралия, летнее время", "HNNOMX": "Северо-западное мексиканское стандартное время", "WITA": "Центральная Индонезия", "UYT": "Уругвай, стандартное время", "MESZ": "Центральная Европа, летнее время", "CLST": "Чили, летнее время", "GMT": "Среднее время по Гринвичу", "HEPM": "Сен-Пьер и Микелон, летнее время", "VET": "Венесуэла", "ADT": "Атлантическое летнее время"},
}
}
diff --git a/rw/rw.go b/rw/rw.go
index bd96459e..c83fa2f5 100644
--- a/rw/rw.go
+++ b/rw/rw.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "CE"},
erasNarrow: []string{"", ""},
erasWide: []string{"BCE", "CE"},
- timezones: map[string]string{"∅∅∅": "∅∅∅", "GFT": "GFT", "WAT": "WAT", "AST": "AST", "HNOG": "HNOG", "NZDT": "NZDT", "SAST": "SAST", "TMST": "TMST", "ChST": "ChST", "SGT": "SGT", "ACWDT": "ACWDT", "HEEG": "HEEG", "HECU": "HECU", "JDT": "JDT", "EAT": "EAT", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "CDT": "CDT", "ADT": "ADT", "GYT": "GYT", "BT": "BT", "HAT": "HAT", "PST": "PST", "HKST": "HKST", "EDT": "EDT", "CST": "CST", "AWST": "AWST", "CHAST": "CHAST", "BOT": "BOT", "WART": "WART", "WIT": "WIT", "HEPM": "HEPM", "MEZ": "MEZ", "ACDT": "ACDT", "OEZ": "OEZ", "CAT": "CAT", "HENOMX": "HENOMX", "GMT": "GMT", "MDT": "MDT", "HEOG": "HEOG", "AEST": "AEST", "LHDT": "LHDT", "IST": "IST", "JST": "JST", "ECT": "ECT", "AKST": "AKST", "ARST": "ARST", "CLT": "CLT", "ACST": "ACST", "WARST": "WARST", "MYT": "MYT", "UYT": "UYT", "HAST": "HAST", "HADT": "HADT", "SRT": "SRT", "ART": "ART", "WEZ": "WEZ", "AEDT": "AEDT", "HNCU": "HNCU", "MST": "MST", "WIB": "WIB", "HNT": "HNT", "TMT": "TMT", "OESZ": "OESZ", "WITA": "WITA", "AWDT": "AWDT", "LHST": "LHST", "CLST": "CLST", "COT": "COT", "AKDT": "AKDT", "VET": "VET", "PDT": "PDT", "WESZ": "WESZ", "CHADT": "CHADT", "MESZ": "MESZ", "WAST": "WAST", "ACWST": "ACWST", "NZST": "NZST", "COST": "COST", "HKT": "HKT", "HNPM": "HNPM", "HNEG": "HNEG", "EST": "EST", "HEPMX": "HEPMX", "UYST": "UYST"},
+ timezones: map[string]string{"ECT": "ECT", "WARST": "WARST", "UYST": "UYST", "HNPMX": "HNPMX", "EAT": "EAT", "CST": "CST", "ACWST": "ACWST", "WAST": "WAST", "EDT": "EDT", "ACDT": "ACDT", "NZDT": "NZDT", "VET": "VET", "AST": "AST", "ADT": "ADT", "WEZ": "WEZ", "WESZ": "WESZ", "ACST": "ACST", "GFT": "GFT", "WITA": "WITA", "GYT": "GYT", "CHADT": "CHADT", "GMT": "GMT", "MYT": "MYT", "TMST": "TMST", "ACWDT": "ACWDT", "CLST": "CLST", "HEOG": "HEOG", "EST": "EST", "ChST": "ChST", "SAST": "SAST", "SRT": "SRT", "BOT": "BOT", "HNT": "HNT", "JST": "JST", "ART": "ART", "HKST": "HKST", "BT": "BT", "HAT": "HAT", "HNEG": "HNEG", "UYT": "UYT", "LHDT": "LHDT", "CHAST": "CHAST", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "OESZ": "OESZ", "COST": "COST", "AEST": "AEST", "IST": "IST", "∅∅∅": "∅∅∅", "MEZ": "MEZ", "CLT": "CLT", "MST": "MST", "HKT": "HKT", "AWST": "AWST", "PST": "PST", "MDT": "MDT", "HEPM": "HEPM", "HEPMX": "HEPMX", "HNCU": "HNCU", "WIT": "WIT", "SGT": "SGT", "NZST": "NZST", "HNOG": "HNOG", "WAT": "WAT", "AEDT": "AEDT", "LHST": "LHST", "WIB": "WIB", "AWDT": "AWDT", "CAT": "CAT", "MESZ": "MESZ", "JDT": "JDT", "WART": "WART", "TMT": "TMT", "COT": "COT", "HENOMX": "HENOMX", "HEEG": "HEEG", "ARST": "ARST", "HECU": "HECU", "CDT": "CDT", "PDT": "PDT", "HAST": "HAST", "HADT": "HADT", "AKST": "AKST", "AKDT": "AKDT"},
}
}
diff --git a/rw_RW/rw_RW.go b/rw_RW/rw_RW.go
index a84804fe..2f10cee3 100644
--- a/rw_RW/rw_RW.go
+++ b/rw_RW/rw_RW.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "CE"},
erasNarrow: []string{"", ""},
erasWide: []string{"BCE", "CE"},
- timezones: map[string]string{"WAT": "WAT", "EDT": "EDT", "UYT": "UYT", "WEZ": "WEZ", "HKT": "HKT", "NZST": "NZST", "CLST": "CLST", "ACST": "ACST", "HNCU": "HNCU", "HEPMX": "HEPMX", "CDT": "CDT", "ADT": "ADT", "HNPM": "HNPM", "LHST": "LHST", "OESZ": "OESZ", "AEST": "AEST", "LHDT": "LHDT", "MESZ": "MESZ", "WIB": "WIB", "HAST": "HAST", "SRT": "SRT", "HAT": "HAT", "PST": "PST", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "CAT": "CAT", "AST": "AST", "HEOG": "HEOG", "AWST": "AWST", "ChST": "ChST", "ACDT": "ACDT", "MYT": "MYT", "PDT": "PDT", "HEPM": "HEPM", "CHAST": "CHAST", "COT": "COT", "ACWST": "ACWST", "ART": "ART", "BOT": "BOT", "TMST": "TMST", "ECT": "ECT", "WIT": "WIT", "HNT": "HNT", "COST": "COST", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "GYT": "GYT", "WESZ": "WESZ", "MEZ": "MEZ", "SAST": "SAST", "GFT": "GFT", "HENOMX": "HENOMX", "SGT": "SGT", "AKST": "AKST", "MST": "MST", "HKST": "HKST", "HNEG": "HNEG", "EST": "EST", "EAT": "EAT", "GMT": "GMT", "CST": "CST", "MDT": "MDT", "VET": "VET", "CHADT": "CHADT", "CLT": "CLT", "WARST": "WARST", "HADT": "HADT", "ACWDT": "ACWDT", "ARST": "ARST", "IST": "IST", "JDT": "JDT", "BT": "BT", "AWDT": "AWDT", "WART": "WART", "HNPMX": "HNPMX", "HNOG": "HNOG", "NZDT": "NZDT", "HEEG": "HEEG", "HECU": "HECU", "WAST": "WAST", "UYST": "UYST", "WITA": "WITA", "AEDT": "AEDT", "JST": "JST", "TMT": "TMT"},
+ timezones: map[string]string{"AWST": "AWST", "NZDT": "NZDT", "MESZ": "MESZ", "ADT": "ADT", "WAST": "WAST", "CST": "CST", "WIB": "WIB", "NZST": "NZST", "UYT": "UYT", "PST": "PST", "CAT": "CAT", "IST": "IST", "CLT": "CLT", "HEOG": "HEOG", "HKT": "HKT", "AKST": "AKST", "GMT": "GMT", "HNOG": "HNOG", "HAT": "HAT", "HEEG": "HEEG", "AEST": "AEST", "UYST": "UYST", "SAST": "SAST", "MST": "MST", "ChST": "ChST", "CDT": "CDT", "AWDT": "AWDT", "WAT": "WAT", "MDT": "MDT", "HADT": "HADT", "VET": "VET", "MYT": "MYT", "OEZ": "OEZ", "OESZ": "OESZ", "ECT": "ECT", "WARST": "WARST", "EDT": "EDT", "BT": "BT", "HNT": "HNT", "∅∅∅": "∅∅∅", "HEPMX": "HEPMX", "CHAST": "CHAST", "CHADT": "CHADT", "PDT": "PDT", "HAST": "HAST", "EST": "EST", "HEPM": "HEPM", "AKDT": "AKDT", "WESZ": "WESZ", "ARST": "ARST", "COT": "COT", "COST": "COST", "AEDT": "AEDT", "CLST": "CLST", "MEZ": "MEZ", "HNPM": "HNPM", "ACWDT": "ACWDT", "HENOMX": "HENOMX", "WITA": "WITA", "HECU": "HECU", "WIT": "WIT", "JDT": "JDT", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "EAT": "EAT", "WEZ": "WEZ", "ACDT": "ACDT", "SRT": "SRT", "LHDT": "LHDT", "GYT": "GYT", "HNCU": "HNCU", "BOT": "BOT", "ACWST": "ACWST", "TMT": "TMT", "TMST": "TMST", "LHST": "LHST", "ACST": "ACST", "HKST": "HKST", "SGT": "SGT", "JST": "JST", "WART": "WART", "AST": "AST", "ART": "ART", "HNEG": "HNEG", "GFT": "GFT"},
}
}
diff --git a/rwk/rwk.go b/rwk/rwk.go
index 9ccd0bd0..4ff56d84 100644
--- a/rwk/rwk.go
+++ b/rwk/rwk.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Kristu", "Baada ya Kristu"},
- timezones: map[string]string{"ChST": "ChST", "CAT": "CAT", "CDT": "CDT", "PST": "PST", "BOT": "BOT", "VET": "VET", "IST": "IST", "HENOMX": "HENOMX", "HADT": "HADT", "PDT": "PDT", "COST": "COST", "HECU": "HECU", "HNPMX": "HNPMX", "GYT": "GYT", "WESZ": "WESZ", "JDT": "JDT", "∅∅∅": "∅∅∅", "WIT": "WIT", "HKT": "HKT", "MEZ": "MEZ", "MESZ": "MESZ", "COT": "COT", "UYT": "UYT", "AKST": "AKST", "BT": "BT", "ARST": "ARST", "HAT": "HAT", "EAT": "EAT", "HNCU": "HNCU", "EST": "EST", "MDT": "MDT", "CST": "CST", "HNPM": "HNPM", "HNEG": "HNEG", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "HKST": "HKST", "CHADT": "CHADT", "CHAST": "CHAST", "TMST": "TMST", "ACST": "ACST", "ADT": "ADT", "HAST": "HAST", "HNOG": "HNOG", "ACWST": "ACWST", "JST": "JST", "TMT": "TMT", "WIB": "WIB", "ACWDT": "ACWDT", "CLT": "CLT", "WEZ": "WEZ", "HNT": "HNT", "AWDT": "AWDT", "UYST": "UYST", "ART": "ART", "AWST": "AWST", "HEPM": "HEPM", "NZDT": "NZDT", "NZST": "NZST", "SAST": "SAST", "GFT": "GFT", "OEZ": "OEZ", "AST": "AST", "AEDT": "AEDT", "LHST": "LHST", "ECT": "ECT", "SGT": "SGT", "HEOG": "HEOG", "LHDT": "LHDT", "HEEG": "HEEG", "ACDT": "ACDT", "WAT": "WAT", "WARST": "WARST", "EDT": "EDT", "SRT": "SRT", "AKDT": "AKDT", "AEST": "AEST", "CLST": "CLST", "WAST": "WAST", "WART": "WART", "GMT": "GMT", "MST": "MST", "MYT": "MYT", "WITA": "WITA"},
+ timezones: map[string]string{"AKDT": "AKDT", "ACWST": "ACWST", "VET": "VET", "WARST": "WARST", "HNOG": "HNOG", "MDT": "MDT", "HEEG": "HEEG", "PDT": "PDT", "MEZ": "MEZ", "MST": "MST", "UYT": "UYT", "WIT": "WIT", "AWST": "AWST", "HAST": "HAST", "WEZ": "WEZ", "ART": "ART", "HAT": "HAT", "WITA": "WITA", "WIB": "WIB", "ECT": "ECT", "JDT": "JDT", "COT": "COT", "HNT": "HNT", "HNPM": "HNPM", "BOT": "BOT", "MYT": "MYT", "HNNOMX": "HNNOMX", "AKST": "AKST", "AEST": "AEST", "AEDT": "AEDT", "PST": "PST", "HADT": "HADT", "HEPM": "HEPM", "SAST": "SAST", "GYT": "GYT", "AWDT": "AWDT", "IST": "IST", "EDT": "EDT", "HKT": "HKT", "GMT": "GMT", "HEPMX": "HEPMX", "CAT": "CAT", "JST": "JST", "ARST": "ARST", "HKST": "HKST", "BT": "BT", "HNPMX": "HNPMX", "SRT": "SRT", "CST": "CST", "MESZ": "MESZ", "CLT": "CLT", "HEOG": "HEOG", "AST": "AST", "ADT": "ADT", "TMST": "TMST", "ACST": "ACST", "ACDT": "ACDT", "CHADT": "CHADT", "SGT": "SGT", "NZST": "NZST", "CLST": "CLST", "OEZ": "OEZ", "WAST": "WAST", "WART": "WART", "HENOMX": "HENOMX", "LHST": "LHST", "LHDT": "LHDT", "EAT": "EAT", "ACWDT": "ACWDT", "EST": "EST", "ChST": "ChST", "UYST": "UYST", "CDT": "CDT", "COST": "COST", "HNCU": "HNCU", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "NZDT": "NZDT", "OESZ": "OESZ", "WESZ": "WESZ", "TMT": "TMT", "WAT": "WAT", "HNEG": "HNEG", "GFT": "GFT", "HECU": "HECU"},
}
}
diff --git a/rwk_TZ/rwk_TZ.go b/rwk_TZ/rwk_TZ.go
index 20ae0003..5051f564 100644
--- a/rwk_TZ/rwk_TZ.go
+++ b/rwk_TZ/rwk_TZ.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Kristu", "Baada ya Kristu"},
- timezones: map[string]string{"NZST": "NZST", "CLST": "CLST", "MDT": "MDT", "HAT": "HAT", "AEST": "AEST", "HNPM": "HNPM", "MESZ": "MESZ", "CLT": "CLT", "ChST": "ChST", "WARST": "WARST", "EDT": "EDT", "HNPMX": "HNPMX", "HEOG": "HEOG", "MEZ": "MEZ", "JST": "JST", "MST": "MST", "CST": "CST", "PDT": "PDT", "HNT": "HNT", "AWDT": "AWDT", "CDT": "CDT", "HNOG": "HNOG", "PST": "PST", "WEZ": "WEZ", "WESZ": "WESZ", "WIB": "WIB", "SRT": "SRT", "HEEG": "HEEG", "WAST": "WAST", "EST": "EST", "UYST": "UYST", "TMST": "TMST", "COST": "COST", "HENOMX": "HENOMX", "ADT": "ADT", "IST": "IST", "WIT": "WIT", "LHST": "LHST", "GMT": "GMT", "AST": "AST", "BOT": "BOT", "ACDT": "ACDT", "CAT": "CAT", "WAT": "WAT", "OEZ": "OEZ", "WART": "WART", "ACWDT": "ACWDT", "SGT": "SGT", "HEPMX": "HEPMX", "GYT": "GYT", "AKDT": "AKDT", "HAST": "HAST", "HECU": "HECU", "AWST": "AWST", "HKT": "HKT", "ART": "ART", "WITA": "WITA", "HNEG": "HNEG", "ACST": "ACST", "COT": "COT", "HADT": "HADT", "VET": "VET", "ACWST": "ACWST", "GFT": "GFT", "LHDT": "LHDT", "CHAST": "CHAST", "SAST": "SAST", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "MYT": "MYT", "BT": "BT", "HKST": "HKST", "NZDT": "NZDT", "CHADT": "CHADT", "JDT": "JDT", "TMT": "TMT", "EAT": "EAT", "ECT": "ECT", "HNCU": "HNCU", "UYT": "UYT", "AKST": "AKST", "ARST": "ARST", "AEDT": "AEDT", "HEPM": "HEPM"},
+ timezones: map[string]string{"JST": "JST", "WAST": "WAST", "AKDT": "AKDT", "ChST": "ChST", "HNPM": "HNPM", "HEPM": "HEPM", "HNPMX": "HNPMX", "HECU": "HECU", "∅∅∅": "∅∅∅", "WEZ": "WEZ", "TMST": "TMST", "WITA": "WITA", "SAST": "SAST", "ECT": "ECT", "ACST": "ACST", "COST": "COST", "UYST": "UYST", "CHADT": "CHADT", "PST": "PST", "HAST": "HAST", "CAT": "CAT", "JDT": "JDT", "MST": "MST", "HAT": "HAT", "HADT": "HADT", "WESZ": "WESZ", "TMT": "TMT", "HKST": "HKST", "AEDT": "AEDT", "CHAST": "CHAST", "VET": "VET", "HNNOMX": "HNNOMX", "WIB": "WIB", "CST": "CST", "NZDT": "NZDT", "CLT": "CLT", "ART": "ART", "EST": "EST", "AEST": "AEST", "GYT": "GYT", "MESZ": "MESZ", "AWST": "AWST", "MEZ": "MEZ", "OEZ": "OEZ", "EDT": "EDT", "UYT": "UYT", "HEPMX": "HEPMX", "CDT": "CDT", "SGT": "SGT", "ACWDT": "ACWDT", "NZST": "NZST", "WARST": "WARST", "LHDT": "LHDT", "PDT": "PDT", "IST": "IST", "HNOG": "HNOG", "ADT": "ADT", "WART": "WART", "SRT": "SRT", "EAT": "EAT", "OESZ": "OESZ", "COT": "COT", "HENOMX": "HENOMX", "HNCU": "HNCU", "WIT": "WIT", "ACWST": "ACWST", "MYT": "MYT", "CLST": "CLST", "HKT": "HKT", "HNT": "HNT", "GFT": "GFT", "AST": "AST", "ACDT": "ACDT", "BT": "BT", "HEEG": "HEEG", "AWDT": "AWDT", "HEOG": "HEOG", "GMT": "GMT", "MDT": "MDT", "WAT": "WAT", "HNEG": "HNEG", "AKST": "AKST", "BOT": "BOT", "ARST": "ARST", "LHST": "LHST"},
}
}
diff --git a/sah/sah.go b/sah/sah.go
index afdb3369..695a9656 100644
--- a/sah/sah.go
+++ b/sah/sah.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"б. э. и.", "б. э"},
erasNarrow: []string{"", ""},
erasWide: []string{"б. э. и.", "б. э"},
- timezones: map[string]string{"CLT": "CLT", "HEEG": "HEEG", "ACDT": "Киин Австралия сайыҥҥы кэмэ", "ADT": "ADT", "PDT": "PDT", "AWST": "Арҕаа Австралия сүрүн кэмэ", "HNT": "HNT", "HAT": "HAT", "JST": "Дьоппуон сүрүн кэмэ", "CLST": "CLST", "GMT": "GMT", "EST": "EST", "HEPMX": "HEPMX", "ACWST": "ACWST", "TMT": "TMT", "ACST": "Киин Австралия сүрүн кэмэ", "EAT": "EAT", "HNOG": "HNOG", "AEST": "Илин Австралия сүрүн кэмэ", "MEZ": "MEZ", "HAST": "HAST", "SRT": "SRT", "ECT": "ECT", "HADT": "HADT", "JDT": "Дьоппуон сайыҥҥы кэмэ", "COST": "COST", "TMST": "TMST", "HNEG": "HNEG", "HNPMX": "HNPMX", "HEOG": "HEOG", "AEDT": "Илин Австралия сайыҥҥы кэмэ", "WITA": "WITA", "MESZ": "MESZ", "CAT": "CAT", "HENOMX": "HENOMX", "SGT": "SGT", "HECU": "HECU", "AKST": "AKST", "WESZ": "WESZ", "LHST": "LHST", "NZST": "Саҥа Сэйлэнд сүрүн кэмэ", "ChST": "ChST", "WAST": "WAST", "AST": "AST", "HNPM": "HNPM", "HEPM": "HEPM", "CHAST": "CHAST", "GFT": "GFT", "COT": "COT", "VET": "VET", "WIT": "WIT", "NZDT": "Саҥа Сэйлэнд сайыҥҥы кэмэ", "SAST": "SAST", "GYT": "GYT", "UYST": "UYST", "AWDT": "Арҕаа Австралия сайыҥҥы кэмэ", "IST": "Ииндийэ сүрүн кэмэ", "WAT": "WAT", "OESZ": "OESZ", "MYT": "MYT", "ARST": "ARST", "PST": "PST", "CDT": "CDT", "ART": "ART", "ACWDT": "ACWDT", "LHDT": "LHDT", "HNCU": "HNCU", "MDT": "MDT", "UYT": "UYT", "WEZ": "WEZ", "HKT": "HKT", "BT": "BT", "∅∅∅": "∅∅∅", "BOT": "BOT", "WART": "WART", "MST": "MST", "CST": "CST", "WIB": "WIB", "CHADT": "CHADT", "OEZ": "OEZ", "WARST": "WARST", "HNNOMX": "HNNOMX", "EDT": "EDT", "AKDT": "AKDT", "HKST": "HKST"},
+ timezones: map[string]string{"HKT": "HKT", "ACDT": "Киин Австралия сайыҥҥы кэмэ", "SAST": "SAST", "ECT": "ECT", "PDT": "PDT", "HAST": "HAST", "CAT": "CAT", "HEEG": "HEEG", "GFT": "GFT", "UYST": "UYST", "HEPM": "HEPM", "∅∅∅": "∅∅∅", "CLT": "CLT", "OEZ": "OEZ", "HAT": "HAT", "HEPMX": "HEPMX", "HNPMX": "HNPMX", "WIT": "WIT", "ACWDT": "ACWDT", "COT": "COT", "HENOMX": "HENOMX", "HNCU": "HNCU", "JST": "Дьоппуон сүрүн кэмэ", "BT": "BT", "LHDT": "LHDT", "TMT": "TMT", "TMST": "TMST", "ARST": "ARST", "ChST": "ChST", "WIB": "WIB", "AWST": "Арҕаа Австралия сүрүн кэмэ", "AWDT": "Арҕаа Австралия сайыҥҥы кэмэ", "ACWST": "ACWST", "HADT": "HADT", "MESZ": "MESZ", "WEZ": "WEZ", "WITA": "WITA", "AEST": "Илин Австралия сүрүн кэмэ", "MEZ": "MEZ", "CLST": "CLST", "MYT": "MYT", "WAST": "WAST", "MST": "MST", "MDT": "MDT", "EST": "EST", "EDT": "EDT", "CDT": "CDT", "NZST": "Саҥа Сэйлэнд сүрүн кэмэ", "WARST": "WARST", "HEOG": "HEOG", "HNT": "HNT", "WART": "WART", "HNPM": "HNPM", "LHST": "LHST", "CHADT": "CHADT", "JDT": "Дьоппуон сайыҥҥы кэмэ", "HNNOMX": "HNNOMX", "AEDT": "Илин Австралия сайыҥҥы кэмэ", "NZDT": "Саҥа Сэйлэнд сайыҥҥы кэмэ", "WESZ": "WESZ", "ACST": "Киин Австралия сүрүн кэмэ", "AKST": "AKST", "CHAST": "CHAST", "OESZ": "OESZ", "GMT": "GMT", "AKDT": "AKDT", "SGT": "SGT", "ART": "ART", "WAT": "WAT", "HKST": "HKST", "UYT": "UYT", "SRT": "SRT", "GYT": "GYT", "EAT": "EAT", "PST": "PST", "AST": "AST", "ADT": "ADT", "HECU": "HECU", "IST": "Ииндийэ сүрүн кэмэ", "VET": "VET", "HNOG": "HNOG", "CST": "CST", "BOT": "BOT", "COST": "COST", "HNEG": "HNEG"},
}
}
diff --git a/sah_RU/sah_RU.go b/sah_RU/sah_RU.go
index 4eb3e7a4..497e3175 100644
--- a/sah_RU/sah_RU.go
+++ b/sah_RU/sah_RU.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"б. э. и.", "б. э"},
erasNarrow: []string{"", ""},
erasWide: []string{"б. э. и.", "б. э"},
- timezones: map[string]string{"ECT": "ECT", "UYT": "UYT", "WESZ": "WESZ", "HKT": "HKT", "GFT": "GFT", "WAT": "WAT", "HNCU": "HNCU", "MYT": "MYT", "PST": "PST", "HNPM": "HNPM", "ACDT": "Киин Австралия сайыҥҥы кэмэ", "WAST": "WAST", "WARST": "WARST", "HECU": "HECU", "HEPMX": "HEPMX", "GYT": "GYT", "HEEG": "HEEG", "ACST": "Киин Австралия сүрүн кэмэ", "EAT": "EAT", "MDT": "MDT", "WITA": "WITA", "AWDT": "Арҕаа Австралия сайыҥҥы кэмэ", "HAST": "HAST", "HAT": "HAT", "MESZ": "MESZ", "CLST": "CLST", "OEZ": "OEZ", "WART": "WART", "EDT": "EDT", "MST": "MST", "ART": "ART", "JST": "Дьоппуон сүрүн кэмэ", "CLT": "CLT", "∅∅∅": "∅∅∅", "UYST": "UYST", "AKDT": "AKDT", "SAST": "SAST", "WIB": "WIB", "HNOG": "HNOG", "ACWST": "ACWST", "MEZ": "MEZ", "ChST": "ChST", "COT": "COT", "HNT": "HNT", "ACWDT": "ACWDT", "NZST": "Саҥа Сэйлэнд сүрүн кэмэ", "NZDT": "Саҥа Сэйлэнд сайыҥҥы кэмэ", "TMST": "TMST", "VET": "VET", "BT": "BT", "PDT": "PDT", "CHAST": "CHAST", "HNNOMX": "HNNOMX", "EST": "EST", "CST": "CST", "SRT": "SRT", "HKST": "HKST", "LHDT": "LHDT", "IST": "Ииндийэ сүрүн кэмэ", "TMT": "TMT", "CAT": "CAT", "ADT": "ADT", "AWST": "Арҕаа Австралия сүрүн кэмэ", "HNPMX": "HNPMX", "AKST": "AKST", "LHST": "LHST", "BOT": "BOT", "HNEG": "HNEG", "COST": "COST", "GMT": "GMT", "SGT": "SGT", "AEDT": "Илин Австралия сайыҥҥы кэмэ", "HEPM": "HEPM", "JDT": "Дьоппуон сайыҥҥы кэмэ", "OESZ": "OESZ", "ARST": "ARST", "AEST": "Илин Австралия сүрүн кэмэ", "CHADT": "CHADT", "HENOMX": "HENOMX", "CDT": "CDT", "WIT": "WIT", "HEOG": "HEOG", "WEZ": "WEZ", "AST": "AST", "HADT": "HADT"},
+ timezones: map[string]string{"WITA": "WITA", "SRT": "SRT", "HKST": "HKST", "HENOMX": "HENOMX", "HNT": "HNT", "CST": "CST", "ACWST": "ACWST", "WAST": "WAST", "WIB": "WIB", "AWST": "Арҕаа Австралия сүрүн кэмэ", "BOT": "BOT", "OESZ": "OESZ", "HAT": "HAT", "HECU": "HECU", "MESZ": "MESZ", "ART": "ART", "CLT": "CLT", "AST": "AST", "WESZ": "WESZ", "GFT": "GFT", "HEPMX": "HEPMX", "HNCU": "HNCU", "HADT": "HADT", "∅∅∅": "∅∅∅", "SGT": "SGT", "VET": "VET", "COST": "COST", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "HAST": "HAST", "MEZ": "MEZ", "ChST": "ChST", "UYST": "UYST", "CHADT": "CHADT", "PST": "PST", "JDT": "Дьоппуон сайыҥҥы кэмэ", "JST": "Дьоппуон сүрүн кэмэ", "ACST": "Киин Австралия сүрүн кэмэ", "BT": "BT", "AEDT": "Илин Австралия сайыҥҥы кэмэ", "UYT": "UYT", "NZST": "Саҥа Сэйлэнд сүрүн кэмэ", "NZDT": "Саҥа Сэйлэнд сайыҥҥы кэмэ", "GMT": "GMT", "ARST": "ARST", "PDT": "PDT", "HNOG": "HNOG", "EST": "EST", "AEST": "Илин Австралия сүрүн кэмэ", "WIT": "WIT", "CHAST": "CHAST", "CAT": "CAT", "WEZ": "WEZ", "ACDT": "Киин Австралия сайыҥҥы кэмэ", "HNEG": "HNEG", "HEEG": "HEEG", "HEPM": "HEPM", "MST": "MST", "HKT": "HKT", "WART": "WART", "WARST": "WARST", "TMT": "TMT", "AKST": "AKST", "LHST": "LHST", "HNPMX": "HNPMX", "IST": "Ииндийэ сүрүн кэмэ", "ACWDT": "ACWDT", "LHDT": "LHDT", "CDT": "CDT", "ADT": "ADT", "MYT": "MYT", "ECT": "ECT", "CLST": "CLST", "COT": "COT", "HNPM": "HNPM", "GYT": "GYT", "AWDT": "Арҕаа Австралия сайыҥҥы кэмэ", "HEOG": "HEOG", "EDT": "EDT", "MDT": "MDT", "WAT": "WAT", "SAST": "SAST", "EAT": "EAT", "OEZ": "OEZ", "TMST": "TMST"},
}
}
diff --git a/saq/saq.go b/saq/saq.go
index 20f8837f..d3bad1d5 100644
--- a/saq/saq.go
+++ b/saq/saq.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Christo", "Baada ya Christo"},
- timezones: map[string]string{"WIB": "WIB", "CHADT": "CHADT", "CLST": "CLST", "HENOMX": "HENOMX", "EDT": "EDT", "EAT": "EAT", "HNCU": "HNCU", "HAST": "HAST", "LHST": "LHST", "IST": "IST", "BOT": "BOT", "CAT": "CAT", "GMT": "GMT", "MDT": "MDT", "HAT": "HAT", "HNOG": "HNOG", "OESZ": "OESZ", "COT": "COT", "MYT": "MYT", "ACWST": "ACWST", "HEOG": "HEOG", "HKST": "HKST", "SAST": "SAST", "MEZ": "MEZ", "NZDT": "NZDT", "ChST": "ChST", "AST": "AST", "MST": "MST", "WIT": "WIT", "AEDT": "AEDT", "AWDT": "AWDT", "GYT": "GYT", "ACWDT": "ACWDT", "AKST": "AKST", "ADT": "ADT", "BT": "BT", "WITA": "WITA", "VET": "VET", "TMT": "TMT", "ACDT": "ACDT", "HNPMX": "HNPMX", "HNNOMX": "HNNOMX", "SRT": "SRT", "WESZ": "WESZ", "JST": "JST", "HNEG": "HNEG", "ECT": "ECT", "GFT": "GFT", "AKDT": "AKDT", "WEZ": "WEZ", "HNT": "HNT", "LHDT": "LHDT", "HEEG": "HEEG", "AEST": "AEST", "WAST": "WAST", "EST": "EST", "HNPM": "HNPM", "WARST": "WARST", "COST": "COST", "UYT": "UYT", "CST": "CST", "PDT": "PDT", "AWST": "AWST", "HKT": "HKT", "HEPMX": "HEPMX", "PST": "PST", "ARST": "ARST", "OEZ": "OEZ", "HECU": "HECU", "WART": "WART", "HEPM": "HEPM", "NZST": "NZST", "CLT": "CLT", "∅∅∅": "∅∅∅", "JDT": "JDT", "UYST": "UYST", "CHAST": "CHAST", "SGT": "SGT", "ACST": "ACST", "WAT": "WAT", "CDT": "CDT", "HADT": "HADT", "ART": "ART", "MESZ": "MESZ", "TMST": "TMST"},
+ timezones: map[string]string{"AWDT": "AWDT", "HAST": "HAST", "NZDT": "NZDT", "TMST": "TMST", "MYT": "MYT", "HNOG": "HNOG", "WIB": "WIB", "PST": "PST", "IST": "IST", "JST": "JST", "MEZ": "MEZ", "GFT": "GFT", "HEPMX": "HEPMX", "VET": "VET", "ADT": "ADT", "HENOMX": "HENOMX", "HNT": "HNT", "HNPM": "HNPM", "WAST": "WAST", "HNNOMX": "HNNOMX", "AEST": "AEST", "AKST": "AKST", "SAST": "SAST", "LHDT": "LHDT", "HNEG": "HNEG", "SGT": "SGT", "SRT": "SRT", "ARST": "ARST", "CAT": "CAT", "WARST": "WARST", "CLST": "CLST", "∅∅∅": "∅∅∅", "WITA": "WITA", "AKDT": "AKDT", "UYST": "UYST", "CDT": "CDT", "HKST": "HKST", "WAT": "WAT", "HAT": "HAT", "MESZ": "MESZ", "WART": "WART", "OESZ": "OESZ", "HKT": "HKT", "HADT": "HADT", "EDT": "EDT", "ACDT": "ACDT", "AEDT": "AEDT", "MDT": "MDT", "HECU": "HECU", "CST": "CST", "CHADT": "CHADT", "JDT": "JDT", "CLT": "CLT", "OEZ": "OEZ", "UYT": "UYT", "GYT": "GYT", "WIT": "WIT", "CHAST": "CHAST", "NZST": "NZST", "EST": "EST", "ACST": "ACST", "HEEG": "HEEG", "BOT": "BOT", "ACWST": "ACWST", "WEZ": "WEZ", "TMT": "TMT", "BT": "BT", "MST": "MST", "ChST": "ChST", "LHST": "LHST", "HNCU": "HNCU", "HNPMX": "HNPMX", "AWST": "AWST", "PDT": "PDT", "ACWDT": "ACWDT", "GMT": "GMT", "ART": "ART", "HEPM": "HEPM", "EAT": "EAT", "WESZ": "WESZ", "HEOG": "HEOG", "AST": "AST", "ECT": "ECT", "COT": "COT", "COST": "COST"},
}
}
diff --git a/saq_KE/saq_KE.go b/saq_KE/saq_KE.go
index 2ece81a4..8a1a0ea6 100644
--- a/saq_KE/saq_KE.go
+++ b/saq_KE/saq_KE.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Christo", "Baada ya Christo"},
- timezones: map[string]string{"HEOG": "HEOG", "AWDT": "AWDT", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "BOT": "BOT", "COST": "COST", "HNEG": "HNEG", "MDT": "MDT", "MYT": "MYT", "WESZ": "WESZ", "HKST": "HKST", "IST": "IST", "CHAST": "CHAST", "ACST": "ACST", "ECT": "ECT", "VET": "VET", "WIT": "WIT", "BT": "BT", "HNT": "HNT", "MEZ": "MEZ", "WARST": "WARST", "WIB": "WIB", "CHADT": "CHADT", "HKT": "HKT", "TMT": "TMT", "WAT": "WAT", "HNCU": "HNCU", "EST": "EST", "MST": "MST", "AKST": "AKST", "AEST": "AEST", "COT": "COT", "OEZ": "OEZ", "HEPMX": "HEPMX", "HADT": "HADT", "AWST": "AWST", "CLST": "CLST", "GFT": "GFT", "JDT": "JDT", "TMST": "TMST", "WEZ": "WEZ", "ARST": "ARST", "LHST": "LHST", "LHDT": "LHDT", "NZST": "NZST", "SGT": "SGT", "JST": "JST", "CAT": "CAT", "WAST": "WAST", "HEPM": "HEPM", "SAST": "SAST", "OESZ": "OESZ", "EDT": "EDT", "CST": "CST", "AST": "AST", "PST": "PST", "WITA": "WITA", "HENOMX": "HENOMX", "HNPM": "HNPM", "CLT": "CLT", "UYST": "UYST", "ADT": "ADT", "HAST": "HAST", "HAT": "HAT", "AEDT": "AEDT", "GMT": "GMT", "HECU": "HECU", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "HEEG": "HEEG", "CDT": "CDT", "SRT": "SRT", "MESZ": "MESZ", "ChST": "ChST", "WART": "WART", "GYT": "GYT", "HNOG": "HNOG", "HNPMX": "HNPMX", "UYT": "UYT", "PDT": "PDT", "ACWST": "ACWST", "ART": "ART", "ACDT": "ACDT", "EAT": "EAT"},
+ timezones: map[string]string{"AEST": "AEST", "HNPM": "HNPM", "AWST": "AWST", "SGT": "SGT", "ECT": "ECT", "ACWST": "ACWST", "WART": "WART", "ACDT": "ACDT", "WEZ": "WEZ", "JST": "JST", "HECU": "HECU", "NZST": "NZST", "SAST": "SAST", "AKDT": "AKDT", "HAST": "HAST", "VET": "VET", "AST": "AST", "ART": "ART", "PST": "PST", "HEOG": "HEOG", "ARST": "ARST", "MDT": "MDT", "ACST": "ACST", "AKST": "AKST", "ChST": "ChST", "UYST": "UYST", "GYT": "GYT", "WIB": "WIB", "MST": "MST", "OEZ": "OEZ", "MESZ": "MESZ", "GFT": "GFT", "HNCU": "HNCU", "IST": "IST", "ADT": "ADT", "HNT": "HNT", "WESZ": "WESZ", "WARST": "WARST", "EDT": "EDT", "BT": "BT", "HNEG": "HNEG", "∅∅∅": "∅∅∅", "UYT": "UYT", "LHST": "LHST", "HEPMX": "HEPMX", "AWDT": "AWDT", "HNNOMX": "HNNOMX", "MYT": "MYT", "TMST": "TMST", "JDT": "JDT", "CST": "CST", "HNOG": "HNOG", "HEPM": "HEPM", "EST": "EST", "HENOMX": "HENOMX", "PDT": "PDT", "CAT": "CAT", "MEZ": "MEZ", "OESZ": "OESZ", "WAST": "WAST", "HKST": "HKST", "HAT": "HAT", "HEEG": "HEEG", "ACWDT": "ACWDT", "GMT": "GMT", "WAT": "WAT", "HNPMX": "HNPMX", "BOT": "BOT", "HADT": "HADT", "LHDT": "LHDT", "COT": "COT", "SRT": "SRT", "EAT": "EAT", "WIT": "WIT", "NZDT": "NZDT", "CLT": "CLT", "CLST": "CLST", "HKT": "HKT", "AEDT": "AEDT", "TMT": "TMT", "COST": "COST", "CDT": "CDT", "CHAST": "CHAST", "CHADT": "CHADT", "WITA": "WITA"},
}
}
diff --git a/sbp/sbp.go b/sbp/sbp.go
index 38bac3b8..cfc4894f 100644
--- a/sbp/sbp.go
+++ b/sbp/sbp.go
@@ -60,7 +60,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"AK", "PK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Ashanali uKilisito", "Pamwandi ya Kilisto"},
- timezones: map[string]string{"MST": "MST", "NZST": "NZST", "ChST": "ChST", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "MDT": "MDT", "HNOG": "HNOG", "MESZ": "MESZ", "CLST": "CLST", "JST": "JST", "SGT": "SGT", "GYT": "GYT", "PST": "PST", "HAT": "HAT", "LHST": "LHST", "ECT": "ECT", "HNCU": "HNCU", "AKST": "AKST", "WIB": "WIB", "WEZ": "WEZ", "AWST": "AWST", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "COT": "COT", "HNPMX": "HNPMX", "HKT": "HKT", "JDT": "JDT", "CAT": "CAT", "OEZ": "OEZ", "HENOMX": "HENOMX", "MYT": "MYT", "UYT": "UYT", "AKDT": "AKDT", "HAST": "HAST", "AWDT": "AWDT", "HNPM": "HNPM", "HEPM": "HEPM", "IST": "IST", "BOT": "BOT", "EST": "EST", "AST": "AST", "ADT": "ADT", "BT": "BT", "HNT": "HNT", "MEZ": "MEZ", "LHDT": "LHDT", "CLT": "CLT", "TMT": "TMT", "VET": "VET", "SRT": "SRT", "TMST": "TMST", "HECU": "HECU", "CST": "CST", "CDT": "CDT", "UYST": "UYST", "WITA": "WITA", "ACWST": "ACWST", "ARST": "ARST", "GFT": "GFT", "WARST": "WARST", "HADT": "HADT", "NZDT": "NZDT", "CHADT": "CHADT", "HNEG": "HNEG", "EAT": "EAT", "OESZ": "OESZ", "GMT": "GMT", "SAST": "SAST", "WART": "WART", "PDT": "PDT", "HKST": "HKST", "HEEG": "HEEG", "ACST": "ACST", "WESZ": "WESZ", "ACWDT": "ACWDT", "ART": "ART", "AEDT": "AEDT", "ACDT": "ACDT", "WAT": "WAT", "WAST": "WAST", "WIT": "WIT", "HEOG": "HEOG", "AEST": "AEST", "COST": "COST", "EDT": "EDT"},
+ timezones: map[string]string{"LHST": "LHST", "TMT": "TMT", "HAT": "HAT", "GFT": "GFT", "SRT": "SRT", "WESZ": "WESZ", "ARST": "ARST", "AKST": "AKST", "AEST": "AEST", "SAST": "SAST", "CHAST": "CHAST", "ACWST": "ACWST", "WITA": "WITA", "HNPM": "HNPM", "HEPMX": "HEPMX", "ECT": "ECT", "CLST": "CLST", "HNNOMX": "HNNOMX", "HNOG": "HNOG", "TMST": "TMST", "ART": "ART", "HNPMX": "HNPMX", "AWDT": "AWDT", "PDT": "PDT", "VET": "VET", "OESZ": "OESZ", "WIB": "WIB", "CDT": "CDT", "NZST": "NZST", "HKST": "HKST", "ACDT": "ACDT", "HNEG": "HNEG", "AKDT": "AKDT", "MDT": "MDT", "NZDT": "NZDT", "HENOMX": "HENOMX", "HECU": "HECU", "CST": "CST", "CHADT": "CHADT", "AEDT": "AEDT", "AWST": "AWST", "SGT": "SGT", "MEZ": "MEZ", "MESZ": "MESZ", "OEZ": "OEZ", "WAST": "WAST", "∅∅∅": "∅∅∅", "HEPM": "HEPM", "GYT": "GYT", "HAST": "HAST", "JDT": "JDT", "HEOG": "HEOG", "AST": "AST", "WAT": "WAT", "EST": "EST", "COST": "COST", "UYT": "UYT", "HNCU": "HNCU", "MYT": "MYT", "CAT": "CAT", "ADT": "ADT", "WART": "WART", "HEEG": "HEEG", "MST": "MST", "ChST": "ChST", "BOT": "BOT", "PST": "PST", "HKT": "HKT", "EAT": "EAT", "IST": "IST", "ACWDT": "ACWDT", "JST": "JST", "WIT": "WIT", "CLT": "CLT", "WEZ": "WEZ", "EDT": "EDT", "BT": "BT", "HNT": "HNT", "UYST": "UYST", "LHDT": "LHDT", "ACST": "ACST", "COT": "COT", "HADT": "HADT", "GMT": "GMT", "WARST": "WARST"},
}
}
diff --git a/sbp_TZ/sbp_TZ.go b/sbp_TZ/sbp_TZ.go
index 2ac64237..31481bbd 100644
--- a/sbp_TZ/sbp_TZ.go
+++ b/sbp_TZ/sbp_TZ.go
@@ -60,7 +60,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"AK", "PK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Ashanali uKilisito", "Pamwandi ya Kilisto"},
- timezones: map[string]string{"COT": "COT", "HEPMX": "HEPMX", "MYT": "MYT", "UYT": "UYT", "HAST": "HAST", "WEZ": "WEZ", "HKST": "HKST", "SAST": "SAST", "HECU": "HECU", "AST": "AST", "BT": "BT", "HNPM": "HNPM", "WART": "WART", "ARST": "ARST", "JDT": "JDT", "MEZ": "MEZ", "IST": "IST", "TMT": "TMT", "MST": "MST", "LHDT": "LHDT", "EAT": "EAT", "WARST": "WARST", "SGT": "SGT", "HNPMX": "HNPMX", "HEOG": "HEOG", "PDT": "PDT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "GMT": "GMT", "GYT": "GYT", "HADT": "HADT", "SRT": "SRT", "HNT": "HNT", "MESZ": "MESZ", "WESZ": "WESZ", "AEDT": "AEDT", "NZDT": "NZDT", "BOT": "BOT", "OESZ": "OESZ", "CST": "CST", "WIT": "WIT", "WITA": "WITA", "CHADT": "CHADT", "GFT": "GFT", "ACDT": "ACDT", "OEZ": "OEZ", "ChST": "ChST", "EDT": "EDT", "AKST": "AKST", "VET": "VET", "ACWST": "ACWST", "LHST": "LHST", "NZST": "NZST", "JST": "JST", "ACST": "ACST", "WAST": "WAST", "EST": "EST", "ADT": "ADT", "ART": "ART", "ACWDT": "ACWDT", "HKT": "HKT", "HEPM": "HEPM", "CAT": "CAT", "TMST": "TMST", "HNCU": "HNCU", "WIB": "WIB", "PST": "PST", "AWST": "AWST", "AWDT": "AWDT", "CHAST": "CHAST", "CLT": "CLT", "WAT": "WAT", "CLST": "CLST", "∅∅∅": "∅∅∅", "CDT": "CDT", "UYST": "UYST", "AKDT": "AKDT", "HAT": "HAT", "HNOG": "HNOG", "AEST": "AEST", "HEEG": "HEEG", "MDT": "MDT", "ECT": "ECT", "COST": "COST", "HENOMX": "HENOMX"},
+ timezones: map[string]string{"CDT": "CDT", "AWDT": "AWDT", "NZST": "NZST", "CLST": "CLST", "EST": "EST", "ChST": "ChST", "WIB": "WIB", "CST": "CST", "HADT": "HADT", "LHST": "LHST", "HEPMX": "HEPMX", "ADT": "ADT", "TMST": "TMST", "OESZ": "OESZ", "NZDT": "NZDT", "HNOG": "HNOG", "EDT": "EDT", "COT": "COT", "AKDT": "AKDT", "AEST": "AEST", "MEZ": "MEZ", "WESZ": "WESZ", "WARST": "WARST", "ART": "ART", "WAT": "WAT", "PST": "PST", "AST": "AST", "CHAST": "CHAST", "CAT": "CAT", "ACWDT": "ACWDT", "JST": "JST", "EAT": "EAT", "HNCU": "HNCU", "HEEG": "HEEG", "HNPM": "HNPM", "HKST": "HKST", "HNT": "HNT", "HEOG": "HEOG", "ARST": "ARST", "ACST": "ACST", "AEDT": "AEDT", "WIT": "WIT", "SGT": "SGT", "HNNOMX": "HNNOMX", "BT": "BT", "WITA": "WITA", "HNPMX": "HNPMX", "CLT": "CLT", "HKT": "HKT", "JDT": "JDT", "UYT": "UYT", "HEPM": "HEPM", "PDT": "PDT", "IST": "IST", "OEZ": "OEZ", "WEZ": "WEZ", "GMT": "GMT", "TMT": "TMT", "HENOMX": "HENOMX", "LHDT": "LHDT", "CHADT": "CHADT", "VET": "VET", "SRT": "SRT", "MST": "MST", "AKST": "AKST", "SAST": "SAST", "GYT": "GYT", "HAST": "HAST", "ECT": "ECT", "ACDT": "ACDT", "HNEG": "HNEG", "UYST": "UYST", "MESZ": "MESZ", "WART": "WART", "BOT": "BOT", "MYT": "MYT", "MDT": "MDT", "WAST": "WAST", "HAT": "HAT", "HECU": "HECU", "∅∅∅": "∅∅∅", "COST": "COST", "GFT": "GFT", "AWST": "AWST", "ACWST": "ACWST"},
}
}
diff --git a/se/se.go b/se/se.go
index 4f522dd4..d9850c99 100644
--- a/se/se.go
+++ b/se/se.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"o.Kr.", "m.Kr."},
erasNarrow: []string{"ooá", "oá"},
erasWide: []string{"ovdal Kristtusa", "maŋŋel Kristtusa"},
- timezones: map[string]string{"WAT": "WAT", "BT": "BT", "SRT": "SRT", "HNPM": "HNPM", "CHADT": "CHADT", "CLST": "CLST", "HEEG": "HEEG", "EAT": "EAT", "EDT": "EDT", "MST": "MST", "HEPMX": "HEPMX", "CST": "CST", "PST": "PST", "PDT": "PDT", "HNT": "HNT", "CLT": "CLT", "COT": "COT", "∅∅∅": "∅∅∅", "VET": "VET", "AEST": "AEST", "AWDT": "AWDT", "ChST": "ChST", "BOT": "BOT", "HNPMX": "HNPMX", "WITA": "WITA", "NZST": "NZST", "GFT": "GFT", "UYT": "UYT", "HAST": "HAST", "ACWST": "ACWST", "WAST": "WAST", "CHAST": "CHAST", "IST": "IST", "ACDT": "ACDT", "HEOG": "HEOG", "HKST": "HKST", "MESZ": "gaska-Eurohpá geassiáigi", "CAT": "CAT", "GMT": "Greenwich gaskka áigi", "UYST": "UYST", "AKDT": "AKDT", "WEZ": "oarje-Eurohpá dábálašáigi", "AWST": "AWST", "HEPM": "HEPM", "LHST": "LHST", "WART": "WART", "HECU": "HECU", "ART": "ART", "NZDT": "NZDT", "SAST": "SAST", "WIT": "WIT", "HNEG": "HNEG", "TMST": "TMST", "WARST": "WARST", "SGT": "SGT", "EST": "EST", "MDT": "MDT", "MYT": "MYT", "AEDT": "AEDT", "HENOMX": "HENOMX", "AKST": "AKST", "CDT": "CDT", "MEZ": "gaska-Eurohpá dábálašáigi", "TMT": "TMT", "OEZ": "nuorti-Eurohpá dábálašáigi", "OESZ": "nuorti-Eurohpá geassiáigi", "HNNOMX": "HNNOMX", "AST": "AST", "ACWDT": "ACWDT", "HKT": "HKT", "LHDT": "LHDT", "ACST": "ACST", "ECT": "ECT", "COST": "COST", "HNCU": "HNCU", "ADT": "ADT", "GYT": "GYT", "WIB": "WIB", "WESZ": "oarje-Eurohpá geassiáigi", "ARST": "ARST", "HADT": "HADT", "HAT": "HAT", "HNOG": "HNOG", "JST": "JST", "JDT": "JDT"},
+ timezones: map[string]string{"HADT": "HADT", "CLT": "CLT", "ART": "ART", "HEEG": "HEEG", "CDT": "CDT", "WIT": "WIT", "NZST": "NZST", "AST": "AST", "COT": "COT", "UYST": "UYST", "GYT": "GYT", "SGT": "SGT", "MST": "MST", "ACST": "ACST", "HEPM": "HEPM", "CHAST": "CHAST", "MESZ": "gaska-Eurohpá geassiáigi", "HNEG": "HNEG", "HEPMX": "HEPMX", "HAST": "HAST", "OEZ": "nuorti-Eurohpá dábálašáigi", "HKT": "HKT", "HNNOMX": "HNNOMX", "UYT": "UYT", "LHDT": "LHDT", "ACWDT": "ACWDT", "WEZ": "oarje-Eurohpá dábálašáigi", "WART": "WART", "WARST": "WARST", "HEOG": "HEOG", "ACWST": "ACWST", "∅∅∅": "∅∅∅", "GMT": "Greenwich gaskka áigi", "TMST": "TMST", "SAST": "SAST", "HNPMX": "HNPMX", "AWDT": "AWDT", "CAT": "CAT", "WESZ": "oarje-Eurohpá geassiáigi", "EDT": "EDT", "COST": "COST", "BT": "BT", "CHADT": "CHADT", "GFT": "GFT", "AEDT": "AEDT", "ChST": "ChST", "IST": "IST", "NZDT": "NZDT", "MDT": "MDT", "ARST": "ARST", "HNT": "HNT", "HAT": "HAT", "WIB": "WIB", "PST": "PST", "JST": "JST", "JDT": "JDT", "CLST": "CLST", "WAT": "WAT", "AKDT": "AKDT", "PDT": "PDT", "OESZ": "nuorti-Eurohpá geassiáigi", "AEST": "AEST", "HNCU": "HNCU", "AWST": "AWST", "ECT": "ECT", "VET": "VET", "EST": "EST", "HKST": "HKST", "ACDT": "ACDT", "CST": "CST", "HNPM": "HNPM", "LHST": "LHST", "MEZ": "gaska-Eurohpá dábálašáigi", "ADT": "ADT", "HNOG": "HNOG", "WAST": "WAST", "HENOMX": "HENOMX", "AKST": "AKST", "HECU": "HECU", "BOT": "BOT", "MYT": "MYT", "TMT": "TMT", "SRT": "SRT", "EAT": "EAT", "WITA": "WITA"},
}
}
diff --git a/se_FI/se_FI.go b/se_FI/se_FI.go
index dda7e190..b7f4b21a 100644
--- a/se_FI/se_FI.go
+++ b/se_FI/se_FI.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"o.Kr.", "m.Kr."},
erasNarrow: []string{"ooá", "oá"},
erasWide: []string{"ovdal Kristtusa", "maŋŋel Kristtusa"},
- timezones: map[string]string{"HNPMX": "HNPMX", "HADT": "HADT", "BOT": "BOT", "ACDT": "ACDT", "GYT": "GYT", "CLT": "CLT", "CDT": "CDT", "CAT": "CAT", "HAT": "HAT", "TMT": "TMT", "WART": "WART", "AKDT": "AKDT", "HNOG": "HNOG", "AEST": "AEST", "CHAST": "CHAST", "UYST": "UYST", "HAST": "HAST", "PDT": "PDT", "LHDT": "LHDT", "HEEG": "HEEG", "CLST": "CLST", "ACST": "ACST", "WAST": "WAST", "HEPMX": "HEPMX", "NZST": "NZST", "CHADT": "CHADT", "HNEG": "HNEG", "EAT": "EAT", "HENOMX": "HENOMX", "HNCU": "HNCU", "EDT": "EDT", "WESZ": "oarje-Eurohpá geassiáigi", "HKST": "HKST", "JDT": "JDT", "ACWDT": "ACWDT", "WIB": "WIB", "AEDT": "AEDT", "WARST": "WARST", "JST": "JST", "TMST": "TMST", "COT": "COT", "EST": "EST", "MYT": "MYT", "VET": "VET", "LHST": "LHST", "NZDT": "NZDT", "SAST": "SAST", "WAT": "WAT", "HECU": "HECU", "AST": "AST", "SRT": "SRT", "PST": "PST", "AWST": "AWST", "MESZ": "gaska-Eurohpá geassiáigi", "OESZ": "nuorti-Eurohpá geassiáigi", "ECT": "ECT", "COST": "COST", "MDT": "MDT", "BT": "BT", "WEZ": "oarje-Eurohpá dábálašáigi", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "ART": "ART", "MST": "MST", "UYT": "UYT", "AKST": "AKST", "CST": "CST", "HNPM": "HNPM", "HNNOMX": "HNNOMX", "GFT": "GFT", "WIT": "WIT", "WITA": "WITA", "IST": "IST", "SGT": "SGT", "ACWST": "ACWST", "HNT": "HNT", "MEZ": "gaska-Eurohpá dábálašáigi", "GMT": "Greenwich gaskka áigi", "ChST": "ChST", "OEZ": "nuorti-Eurohpá dábálašáigi", "ADT": "ADT", "HKT": "HKT", "HEPM": "HEPM", "ARST": "ARST", "HEOG": "HEOG"},
+ timezones: map[string]string{"ACDT": "ACDT", "AEST": "AEST", "CHADT": "CHADT", "HADT": "HADT", "OEZ": "nuorti-Eurohpá dábálašáigi", "MDT": "MDT", "ART": "ART", "WAT": "WAT", "HEPMX": "HEPMX", "ACWDT": "ACWDT", "JDT": "JDT", "HNOG": "HNOG", "HENOMX": "HENOMX", "PDT": "PDT", "ARST": "ARST", "HECU": "HECU", "NZST": "NZST", "GFT": "GFT", "AKDT": "AKDT", "CST": "CST", "WIT": "WIT", "UYST": "UYST", "HNPM": "HNPM", "SGT": "SGT", "BOT": "BOT", "HAST": "HAST", "WARST": "WARST", "CLT": "CLT", "HEOG": "HEOG", "CDT": "CDT", "CAT": "CAT", "JST": "JST", "WART": "WART", "WESZ": "oarje-Eurohpá geassiáigi", "SAST": "SAST", "GMT": "Greenwich gaskka áigi", "EST": "EST", "HKT": "HKT", "HNT": "HNT", "WITA": "WITA", "LHST": "LHST", "EAT": "EAT", "IST": "IST", "MESZ": "gaska-Eurohpá geassiáigi", "ADT": "ADT", "TMST": "TMST", "HKST": "HKST", "UYT": "UYT", "MST": "MST", "COT": "COT", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "ACWST": "ACWST", "NZDT": "NZDT", "VET": "VET", "MYT": "MYT", "AKST": "AKST", "GYT": "GYT", "MEZ": "gaska-Eurohpá dábálašáigi", "COST": "COST", "AEDT": "AEDT", "PST": "PST", "AST": "AST", "HAT": "HAT", "ChST": "ChST", "AWDT": "AWDT", "ECT": "ECT", "CLST": "CLST", "OESZ": "nuorti-Eurohpá geassiáigi", "LHDT": "LHDT", "WIB": "WIB", "AWST": "AWST", "WEZ": "oarje-Eurohpá dábálašáigi", "HNNOMX": "HNNOMX", "BT": "BT", "HEEG": "HEEG", "SRT": "SRT", "ACST": "ACST", "HNCU": "HNCU", "TMT": "TMT", "WAST": "WAST", "EDT": "EDT", "HNEG": "HNEG", "HEPM": "HEPM", "HNPMX": "HNPMX"},
}
}
diff --git a/se_NO/se_NO.go b/se_NO/se_NO.go
index ecadaa89..86c2fab2 100644
--- a/se_NO/se_NO.go
+++ b/se_NO/se_NO.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"o.Kr.", "m.Kr."},
erasNarrow: []string{"ooá", "oá"},
erasWide: []string{"ovdal Kristtusa", "maŋŋel Kristtusa"},
- timezones: map[string]string{"CDT": "CDT", "MEZ": "gaska-Eurohpá dábálašáigi", "TMT": "TMT", "ACST": "ACST", "SGT": "SGT", "HNCU": "HNCU", "COT": "COT", "HAST": "HAST", "HNOG": "HNOG", "LHDT": "LHDT", "CHADT": "CHADT", "WAT": "WAT", "EDT": "EDT", "CST": "CST", "WEZ": "oarje-Eurohpá dábálašáigi", "MYT": "MYT", "HNPM": "HNPM", "NZDT": "NZDT", "JST": "JST", "OEZ": "nuorti-Eurohpá dábálašáigi", "ECT": "ECT", "HECU": "HECU", "HNPMX": "HNPMX", "TMST": "TMST", "ACWST": "ACWST", "AWDT": "AWDT", "CHAST": "CHAST", "AST": "AST", "WESZ": "oarje-Eurohpá geassiáigi", "PST": "PST", "HKST": "HKST", "SRT": "SRT", "HNT": "HNT", "AWST": "AWST", "ACDT": "ACDT", "ADT": "ADT", "WIT": "WIT", "HADT": "HADT", "CLT": "CLT", "COST": "COST", "ACWDT": "ACWDT", "HAT": "HAT", "MESZ": "gaska-Eurohpá geassiáigi", "GMT": "Greenwich gaskka áigi", "CLST": "CLST", "PDT": "PDT", "WITA": "WITA", "NZST": "NZST", "BOT": "BOT", "HNEG": "HNEG", "WIB": "WIB", "VET": "VET", "HKT": "HKT", "AEST": "AEST", "ChST": "ChST", "WAST": "WAST", "CAT": "CAT", "ART": "ART", "UYST": "UYST", "HEOG": "HEOG", "JDT": "JDT", "EAT": "EAT", "WART": "WART", "AKST": "AKST", "AKDT": "AKDT", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "OESZ": "nuorti-Eurohpá geassiáigi", "MST": "MST", "MDT": "MDT", "ARST": "ARST", "AEDT": "AEDT", "HEPM": "HEPM", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "EST": "EST", "UYT": "UYT", "BT": "BT", "LHST": "LHST", "IST": "IST", "SAST": "SAST", "GFT": "GFT", "∅∅∅": "∅∅∅", "WARST": "WARST", "GYT": "GYT"},
+ timezones: map[string]string{"HADT": "HADT", "ECT": "ECT", "HNEG": "HNEG", "ChST": "ChST", "HNCU": "HNCU", "CHADT": "CHADT", "PDT": "PDT", "EDT": "EDT", "ACST": "ACST", "COST": "COST", "UYST": "UYST", "NZDT": "NZDT", "HNOG": "HNOG", "WIB": "WIB", "CHAST": "CHAST", "WAT": "WAT", "OESZ": "nuorti-Eurohpá geassiáigi", "ARST": "ARST", "LHDT": "LHDT", "SRT": "SRT", "CDT": "CDT", "AWST": "AWST", "HAST": "HAST", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "BOT": "BOT", "JST": "JST", "WAST": "WAST", "HKST": "HKST", "HENOMX": "HENOMX", "CST": "CST", "ACWDT": "ACWDT", "MEZ": "gaska-Eurohpá dábálašáigi", "VET": "VET", "HAT": "HAT", "HEPM": "HEPM", "WART": "WART", "MDT": "MDT", "HECU": "HECU", "MYT": "MYT", "WITA": "WITA", "AWDT": "AWDT", "NZST": "NZST", "MESZ": "gaska-Eurohpá geassiáigi", "WEZ": "oarje-Eurohpá dábálašáigi", "CLST": "CLST", "HNNOMX": "HNNOMX", "UYT": "UYT", "SAST": "SAST", "PST": "PST", "IST": "IST", "COT": "COT", "AEST": "AEST", "ACWST": "ACWST", "JDT": "JDT", "EST": "EST", "HEEG": "HEEG", "AEDT": "AEDT", "WESZ": "oarje-Eurohpá geassiáigi", "CAT": "CAT", "CLT": "CLT", "AST": "AST", "BT": "BT", "AKDT": "AKDT", "MST": "MST", "HNPM": "HNPM", "HEPMX": "HEPMX", "GMT": "Greenwich gaskka áigi", "TMST": "TMST", "ART": "ART", "WIT": "WIT", "SGT": "SGT", "OEZ": "nuorti-Eurohpá dábálašáigi", "HNT": "HNT", "AKST": "AKST", "LHST": "LHST", "GYT": "GYT", "EAT": "EAT", "WARST": "WARST", "TMT": "TMT", "ACDT": "ACDT", "GFT": "GFT", "HEOG": "HEOG", "ADT": "ADT", "HKT": "HKT"},
}
}
diff --git a/se_SE/se_SE.go b/se_SE/se_SE.go
index 600dbe64..38042e08 100644
--- a/se_SE/se_SE.go
+++ b/se_SE/se_SE.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"o.Kr.", "m.Kr."},
erasNarrow: []string{"ooá", "oá"},
erasWide: []string{"ovdal Kristtusa", "maŋŋel Kristtusa"},
- timezones: map[string]string{"HECU": "HECU", "AKST": "AKST", "VET": "VET", "EAT": "EAT", "HEOG": "HEOG", "LHDT": "LHDT", "COST": "COST", "HNNOMX": "HNNOMX", "MYT": "MYT", "WESZ": "oarje-Eurohpá geassiáigi", "ART": "ART", "LHST": "LHST", "ChST": "ChST", "SRT": "SRT", "HNT": "HNT", "HEPM": "HEPM", "AEST": "AEST", "AEDT": "AEDT", "NZST": "NZST", "CHAST": "CHAST", "MEZ": "gaska-Eurohpá dábálašáigi", "CST": "CST", "HAST": "HAST", "HAT": "HAT", "CLST": "CLST", "OEZ": "nuorti-Eurohpá dábálašáigi", "UYST": "UYST", "WIB": "WIB", "BT": "BT", "AWST": "AWST", "AWDT": "AWDT", "WAST": "WAST", "OESZ": "nuorti-Eurohpá geassiáigi", "ECT": "ECT", "GYT": "GYT", "MST": "MST", "HADT": "HADT", "HENOMX": "HENOMX", "EST": "EST", "NZDT": "NZDT", "CHADT": "CHADT", "CLT": "CLT", "SGT": "SGT", "CDT": "CDT", "AST": "AST", "ADT": "ADT", "TMST": "TMST", "ACDT": "ACDT", "CAT": "CAT", "WEZ": "oarje-Eurohpá dábálašáigi", "IST": "IST", "JDT": "JDT", "EDT": "EDT", "HNPM": "HNPM", "GFT": "GFT", "WARST": "WARST", "HEPMX": "HEPMX", "UYT": "UYT", "PDT": "PDT", "SAST": "SAST", "WART": "WART", "WITA": "WITA", "JST": "JST", "BOT": "BOT", "TMT": "TMT", "ACST": "ACST", "WAT": "WAT", "COT": "COT", "AKDT": "AKDT", "HKT": "HKT", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "HNPMX": "HNPMX", "ACWDT": "ACWDT", "ARST": "ARST", "HKST": "HKST", "WIT": "WIT", "GMT": "Greenwich gaskka áigi", "MDT": "MDT", "ACWST": "ACWST", "HEEG": "HEEG", "HNCU": "HNCU", "HNOG": "HNOG", "PST": "PST", "MESZ": "gaska-Eurohpá geassiáigi"},
+ timezones: map[string]string{"TMST": "TMST", "EAT": "EAT", "VET": "VET", "LHST": "LHST", "HEPMX": "HEPMX", "CST": "CST", "HEEG": "HEEG", "BOT": "BOT", "ACWST": "ACWST", "ARST": "ARST", "EST": "EST", "HKT": "HKT", "UYST": "UYST", "JST": "JST", "ACST": "ACST", "HNEG": "HNEG", "AEST": "AEST", "WAST": "WAST", "CDT": "CDT", "CHADT": "CHADT", "WARST": "WARST", "AST": "AST", "MST": "MST", "CLT": "CLT", "COT": "COT", "NZDT": "NZDT", "MDT": "MDT", "HNPM": "HNPM", "AWDT": "AWDT", "SRT": "SRT", "WIB": "WIB", "HAST": "HAST", "CLST": "CLST", "ACDT": "ACDT", "GFT": "GFT", "HNPMX": "HNPMX", "MESZ": "gaska-Eurohpá geassiáigi", "HNNOMX": "HNNOMX", "HNT": "HNT", "LHDT": "LHDT", "ECT": "ECT", "JDT": "JDT", "WART": "WART", "HKST": "HKST", "HNCU": "HNCU", "BT": "BT", "AKST": "AKST", "AKDT": "AKDT", "HEPM": "HEPM", "IST": "IST", "OEZ": "nuorti-Eurohpá dábálašáigi", "HEOG": "HEOG", "COST": "COST", "ART": "ART", "AWST": "AWST", "HADT": "HADT", "WESZ": "oarje-Eurohpá geassiáigi", "MYT": "MYT", "HNOG": "HNOG", "∅∅∅": "∅∅∅", "ChST": "ChST", "WIT": "WIT", "CAT": "CAT", "WEZ": "oarje-Eurohpá dábálašáigi", "HENOMX": "HENOMX", "HAT": "HAT", "GYT": "GYT", "HECU": "HECU", "SGT": "SGT", "CHAST": "CHAST", "PST": "PST", "ADT": "ADT", "TMT": "TMT", "EDT": "EDT", "ACWDT": "ACWDT", "WITA": "WITA", "PDT": "PDT", "NZST": "NZST", "MEZ": "gaska-Eurohpá dábálašáigi", "OESZ": "nuorti-Eurohpá geassiáigi", "GMT": "Greenwich gaskka áigi", "AEDT": "AEDT", "WAT": "WAT", "UYT": "UYT", "SAST": "SAST"},
}
}
diff --git a/seh/seh.go b/seh/seh.go
index aac213f0..73eaefea 100644
--- a/seh/seh.go
+++ b/seh/seh.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"AC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Antes de Cristo", "Anno Domini"},
- timezones: map[string]string{"JDT": "JDT", "HNEG": "HNEG", "ECT": "ECT", "WIT": "WIT", "BT": "BT", "ACWST": "ACWST", "COT": "COT", "HEPMX": "HEPMX", "HAT": "HAT", "AEST": "AEST", "UYT": "UYT", "MESZ": "MESZ", "NZDT": "NZDT", "ChST": "ChST", "ACST": "ACST", "HNCU": "HNCU", "MDT": "MDT", "AKDT": "AKDT", "GYT": "GYT", "COST": "COST", "CST": "CST", "UYST": "UYST", "HADT": "HADT", "WESZ": "WESZ", "HNOG": "HNOG", "LHST": "LHST", "LHDT": "LHDT", "BOT": "BOT", "MST": "MST", "ACWDT": "ACWDT", "AWDT": "AWDT", "HKT": "HKT", "HNPM": "HNPM", "NZST": "NZST", "WARST": "WARST", "AKST": "AKST", "WEZ": "WEZ", "SAST": "SAST", "GFT": "GFT", "TMT": "TMT", "WAST": "WAST", "OEZ": "OEZ", "WIB": "WIB", "HEOG": "HEOG", "HKST": "HKST", "JST": "JST", "EAT": "EAT", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "ADT": "ADT", "HAST": "HAST", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "EST": "EST", "TMST": "TMST", "SGT": "SGT", "EDT": "EDT", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "HECU": "HECU", "VET": "VET", "ART": "ART", "CLST": "CLST", "AEDT": "AEDT", "AWST": "AWST", "WITA": "WITA", "HEPM": "HEPM", "CLT": "CLT", "HEEG": "HEEG", "OESZ": "OESZ", "WART": "WART", "PDT": "PDT", "ARST": "ARST", "MEZ": "MEZ", "IST": "IST", "GMT": "GMT", "CDT": "CDT", "AST": "AST", "MYT": "MYT", "HNT": "HNT", "CAT": "CAT", "WAT": "WAT", "SRT": "SRT", "PST": "PST", "CHADT": "CHADT"},
+ timezones: map[string]string{"PDT": "PDT", "HKST": "HKST", "ACDT": "ACDT", "COT": "COT", "AKST": "AKST", "ChST": "ChST", "HNCU": "HNCU", "CST": "CST", "MDT": "MDT", "HNPM": "HNPM", "GYT": "GYT", "PST": "PST", "EST": "EST", "BT": "BT", "LHDT": "LHDT", "WIT": "WIT", "WESZ": "WESZ", "ART": "ART", "GFT": "GFT", "EAT": "EAT", "BOT": "BOT", "ECT": "ECT", "IST": "IST", "ACWST": "ACWST", "HENOMX": "HENOMX", "AKDT": "AKDT", "HECU": "HECU", "HADT": "HADT", "MYT": "MYT", "ADT": "ADT", "∅∅∅": "∅∅∅", "UYT": "UYT", "HEPMX": "HEPMX", "HAST": "HAST", "MEZ": "MEZ", "MESZ": "MESZ", "GMT": "GMT", "HNNOMX": "HNNOMX", "AEDT": "AEDT", "WIB": "WIB", "OESZ": "OESZ", "AEST": "AEST", "LHST": "LHST", "CHADT": "CHADT", "CAT": "CAT", "AST": "AST", "TMT": "TMT", "ARST": "ARST", "WAT": "WAT", "COST": "COST", "UYST": "UYST", "CDT": "CDT", "HAT": "HAT", "HEEG": "HEEG", "WEZ": "WEZ", "ACST": "ACST", "HNEG": "HNEG", "WITA": "WITA", "HNPMX": "HNPMX", "CLT": "CLT", "HNOG": "HNOG", "WAST": "WAST", "EDT": "EDT", "CHAST": "CHAST", "JST": "JST", "WART": "WART", "JDT": "JDT", "MST": "MST", "SRT": "SRT", "AWST": "AWST", "AWDT": "AWDT", "SGT": "SGT", "ACWDT": "ACWDT", "VET": "VET", "OEZ": "OEZ", "HKT": "HKT", "HNT": "HNT", "SAST": "SAST", "NZST": "NZST", "WARST": "WARST", "CLST": "CLST", "HEOG": "HEOG", "TMST": "TMST", "HEPM": "HEPM", "NZDT": "NZDT"},
}
}
diff --git a/seh_MZ/seh_MZ.go b/seh_MZ/seh_MZ.go
index 051da38b..e9889aef 100644
--- a/seh_MZ/seh_MZ.go
+++ b/seh_MZ/seh_MZ.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"AC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Antes de Cristo", "Anno Domini"},
- timezones: map[string]string{"WITA": "WITA", "MST": "MST", "VET": "VET", "ACWDT": "ACWDT", "HNPM": "HNPM", "ACST": "ACST", "HNNOMX": "HNNOMX", "HECU": "HECU", "UYST": "UYST", "ART": "ART", "JST": "JST", "ACDT": "ACDT", "OESZ": "OESZ", "GMT": "GMT", "EST": "EST", "HEPMX": "HEPMX", "AWDT": "AWDT", "WAST": "WAST", "SGT": "SGT", "HAST": "HAST", "HAT": "HAT", "PST": "PST", "WIT": "WIT", "HKT": "HKT", "CHADT": "CHADT", "MESZ": "MESZ", "HNPMX": "HNPMX", "CST": "CST", "CDT": "CDT", "CLT": "CLT", "HNOG": "HNOG", "PDT": "PDT", "ACWST": "ACWST", "HEPM": "HEPM", "CHAST": "CHAST", "NZST": "NZST", "WESZ": "WESZ", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "ADT": "ADT", "AKST": "AKST", "LHDT": "LHDT", "SAST": "SAST", "COST": "COST", "SRT": "SRT", "HNT": "HNT", "NZDT": "NZDT", "CLST": "CLST", "AKDT": "AKDT", "ARST": "ARST", "UYT": "UYT", "BT": "BT", "AEST": "AEST", "HNEG": "HNEG", "CAT": "CAT", "WARST": "WARST", "COT": "COT", "MYT": "MYT", "WEZ": "WEZ", "AWST": "AWST", "LHST": "LHST", "IST": "IST", "ECT": "ECT", "HENOMX": "HENOMX", "WIB": "WIB", "HKST": "HKST", "GFT": "GFT", "ChST": "ChST", "MDT": "MDT", "AST": "AST", "TMST": "TMST", "BOT": "BOT", "EDT": "EDT", "GYT": "GYT", "JDT": "JDT", "OEZ": "OEZ", "HNCU": "HNCU", "HEOG": "HEOG", "HADT": "HADT", "MEZ": "MEZ", "TMT": "TMT", "HEEG": "HEEG", "EAT": "EAT", "WAT": "WAT", "WART": "WART"},
+ timezones: map[string]string{"HEPM": "HEPM", "ChST": "ChST", "ACWST": "ACWST", "CAT": "CAT", "AEDT": "AEDT", "AKDT": "AKDT", "UYT": "UYT", "WAT": "WAT", "SRT": "SRT", "CHADT": "CHADT", "EDT": "EDT", "HENOMX": "HENOMX", "HNPM": "HNPM", "HNPMX": "HNPMX", "OESZ": "OESZ", "PDT": "PDT", "HADT": "HADT", "CLT": "CLT", "HNOG": "HNOG", "TMST": "TMST", "MDT": "MDT", "GFT": "GFT", "UYST": "UYST", "ACST": "ACST", "HEEG": "HEEG", "HNT": "HNT", "BOT": "BOT", "ADT": "ADT", "ACDT": "ACDT", "WESZ": "WESZ", "MYT": "MYT", "HNCU": "HNCU", "SGT": "SGT", "IST": "IST", "ACWDT": "ACWDT", "NZST": "NZST", "OEZ": "OEZ", "CLST": "CLST", "EST": "EST", "AKST": "AKST", "CDT": "CDT", "AWST": "AWST", "HKT": "HKT", "HNNOMX": "HNNOMX", "∅∅∅": "∅∅∅", "SAST": "SAST", "JDT": "JDT", "BT": "BT", "AEST": "AEST", "MEZ": "MEZ", "HKST": "HKST", "CHAST": "CHAST", "HAST": "HAST", "WARST": "WARST", "HEOG": "HEOG", "ARST": "ARST", "WITA": "WITA", "LHST": "LHST", "AWDT": "AWDT", "COT": "COT", "HNEG": "HNEG", "VET": "VET", "TMT": "TMT", "COST": "COST", "HAT": "HAT", "LHDT": "LHDT", "GYT": "GYT", "EAT": "EAT", "JST": "JST", "WEZ": "WEZ", "WAST": "WAST", "MST": "MST", "HECU": "HECU", "ECT": "ECT", "GMT": "GMT", "ART": "ART", "AST": "AST", "WIT": "WIT", "NZDT": "NZDT", "WART": "WART", "PST": "PST", "MESZ": "MESZ", "HEPMX": "HEPMX", "WIB": "WIB", "CST": "CST"},
}
}
diff --git a/ses/ses.go b/ses/ses.go
index 2542204d..0a8d6cb4 100644
--- a/ses/ses.go
+++ b/ses/ses.go
@@ -60,7 +60,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"IJ", "IZ"},
erasNarrow: []string{"", ""},
erasWide: []string{"Isaa jine", "Isaa zamanoo"},
- timezones: map[string]string{"NZST": "NZST", "JST": "JST", "WAST": "WAST", "WIB": "WIB", "ART": "ART", "LHDT": "LHDT", "ACST": "ACST", "EAT": "EAT", "WART": "WART", "GMT": "GMT", "CDT": "CDT", "HNOG": "HNOG", "SAST": "SAST", "HNPMX": "HNPMX", "AST": "AST", "GYT": "GYT", "HEPMX": "HEPMX", "HAT": "HAT", "LHST": "LHST", "JDT": "JDT", "GFT": "GFT", "TMT": "TMT", "WARST": "WARST", "EST": "EST", "AWST": "AWST", "CHAST": "CHAST", "BOT": "BOT", "MEZ": "MEZ", "CLT": "CLT", "HNCU": "HNCU", "CST": "CST", "∅∅∅": "∅∅∅", "SGT": "SGT", "AKST": "AKST", "AKDT": "AKDT", "ADT": "ADT", "AEST": "AEST", "ChST": "ChST", "COT": "COT", "HEOG": "HEOG", "AEDT": "AEDT", "HKST": "HKST", "MESZ": "MESZ", "MYT": "MYT", "WIT": "WIT", "HNEG": "HNEG", "BT": "BT", "HNT": "HNT", "HEPM": "HEPM", "NZDT": "NZDT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "UYST": "UYST", "PDT": "PDT", "WITA": "WITA", "WESZ": "WESZ", "ARST": "ARST", "ECT": "ECT", "COST": "COST", "HECU": "HECU", "MDT": "MDT", "HADT": "HADT", "WEZ": "WEZ", "PST": "PST", "CHADT": "CHADT", "CLST": "CLST", "ACDT": "ACDT", "OEZ": "OEZ", "OESZ": "OESZ", "MST": "MST", "CAT": "CAT", "UYT": "UYT", "SRT": "SRT", "AWDT": "AWDT", "HKT": "HKT", "HNPM": "HNPM", "IST": "IST", "WAT": "WAT", "HENOMX": "HENOMX", "EDT": "EDT", "VET": "VET", "ACWST": "ACWST", "TMST": "TMST", "HAST": "HAST", "ACWDT": "ACWDT"},
+ timezones: map[string]string{"AWDT": "AWDT", "NZDT": "NZDT", "MESZ": "MESZ", "HKT": "HKT", "HEEG": "HEEG", "AST": "AST", "TMT": "TMT", "ECT": "ECT", "HNNOMX": "HNNOMX", "WITA": "WITA", "LHDT": "LHDT", "HAST": "HAST", "WARST": "WARST", "ADT": "ADT", "EST": "EST", "ACST": "ACST", "CLST": "CLST", "HEOG": "HEOG", "TMST": "TMST", "COT": "COT", "CDT": "CDT", "JST": "JST", "GMT": "GMT", "WAST": "WAST", "COST": "COST", "JDT": "JDT", "UYST": "UYST", "BOT": "BOT", "CAT": "CAT", "AKST": "AKST", "LHST": "LHST", "SGT": "SGT", "PDT": "PDT", "ACWST": "ACWST", "HENOMX": "HENOMX", "UYT": "UYT", "AWST": "AWST", "WIT": "WIT", "∅∅∅": "∅∅∅", "MDT": "MDT", "HNT": "HNT", "HECU": "HECU", "CST": "CST", "WESZ": "WESZ", "BT": "BT", "HNEG": "HNEG", "WIB": "WIB", "ACDT": "ACDT", "GFT": "GFT", "AEST": "AEST", "HEPMX": "HEPMX", "ACWDT": "ACWDT", "MEZ": "MEZ", "CLT": "CLT", "WAT": "WAT", "SRT": "SRT", "EAT": "EAT", "CHADT": "CHADT", "HADT": "HADT", "CHAST": "CHAST", "NZST": "NZST", "VET": "VET", "WEZ": "WEZ", "EDT": "EDT", "HNOG": "HNOG", "OEZ": "OEZ", "ARST": "ARST", "GYT": "GYT", "IST": "IST", "MST": "MST", "HNPM": "HNPM", "HEPM": "HEPM", "AKDT": "AKDT", "WART": "WART", "OESZ": "OESZ", "ART": "ART", "HAT": "HAT", "SAST": "SAST", "HNPMX": "HNPMX", "HNCU": "HNCU", "PST": "PST", "MYT": "MYT", "HKST": "HKST", "AEDT": "AEDT", "ChST": "ChST"},
}
}
diff --git a/ses_ML/ses_ML.go b/ses_ML/ses_ML.go
index b73dddc6..eb85395e 100644
--- a/ses_ML/ses_ML.go
+++ b/ses_ML/ses_ML.go
@@ -60,7 +60,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"IJ", "IZ"},
erasNarrow: []string{"", ""},
erasWide: []string{"Isaa jine", "Isaa zamanoo"},
- timezones: map[string]string{"MESZ": "MESZ", "TMT": "TMT", "HADT": "HADT", "NZST": "NZST", "JDT": "JDT", "BOT": "BOT", "WIT": "WIT", "WEZ": "WEZ", "WESZ": "WESZ", "HAT": "HAT", "HEPM": "HEPM", "HEEG": "HEEG", "HNPMX": "HNPMX", "WIB": "WIB", "HNT": "HNT", "MEZ": "MEZ", "IST": "IST", "JST": "JST", "ChST": "ChST", "ECT": "ECT", "GMT": "GMT", "HNCU": "HNCU", "MDT": "MDT", "UYST": "UYST", "AST": "AST", "HAST": "HAST", "AWDT": "AWDT", "LHST": "LHST", "CHADT": "CHADT", "SAST": "SAST", "WAST": "WAST", "HECU": "HECU", "PST": "PST", "ACWST": "ACWST", "WAT": "WAT", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "CDT": "CDT", "ADT": "ADT", "GYT": "GYT", "HEOG": "HEOG", "AWST": "AWST", "HKST": "HKST", "HNEG": "HNEG", "AKST": "AKST", "VET": "VET", "AEDT": "AEDT", "OESZ": "OESZ", "WART": "WART", "MYT": "MYT", "BT": "BT", "PDT": "PDT", "HNPM": "HNPM", "CAT": "CAT", "COT": "COT", "SRT": "SRT", "NZDT": "NZDT", "GFT": "GFT", "ACWDT": "ACWDT", "ARST": "ARST", "HNOG": "HNOG", "WITA": "WITA", "OEZ": "OEZ", "LHDT": "LHDT", "TMST": "TMST", "AKDT": "AKDT", "ART": "ART", "AEST": "AEST", "CLT": "CLT", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "EDT": "EDT", "HKT": "HKT", "WARST": "WARST", "MST": "MST", "EST": "EST", "CHAST": "CHAST", "CLST": "CLST", "∅∅∅": "∅∅∅", "ACST": "ACST", "EAT": "EAT", "COST": "COST", "SGT": "SGT", "UYT": "UYT", "CST": "CST"},
+ timezones: map[string]string{"ART": "ART", "SAST": "SAST", "HECU": "HECU", "AWDT": "AWDT", "WEZ": "WEZ", "WITA": "WITA", "∅∅∅": "∅∅∅", "HAST": "HAST", "CAT": "CAT", "CLST": "CLST", "GYT": "GYT", "BOT": "BOT", "GMT": "GMT", "WART": "WART", "HEOG": "HEOG", "AST": "AST", "HENOMX": "HENOMX", "BT": "BT", "CST": "CST", "JDT": "JDT", "MYT": "MYT", "GFT": "GFT", "ChST": "ChST", "SGT": "SGT", "JST": "JST", "OESZ": "OESZ", "ARST": "ARST", "EST": "EST", "HEPM": "HEPM", "NZST": "NZST", "MEZ": "MEZ", "MDT": "MDT", "WAT": "WAT", "WIT": "WIT", "CHAST": "CHAST", "CLT": "CLT", "WIB": "WIB", "ACWST": "ACWST", "UYST": "UYST", "HEPMX": "HEPMX", "LHDT": "LHDT", "MESZ": "MESZ", "HNOG": "HNOG", "COT": "COT", "CDT": "CDT", "AWST": "AWST", "PDT": "PDT", "AEDT": "AEDT", "TMT": "TMT", "TMST": "TMST", "HEEG": "HEEG", "EDT": "EDT", "HNT": "HNT", "AKST": "AKST", "UYT": "UYT", "ECT": "ECT", "WARST": "WARST", "MST": "MST", "AEST": "AEST", "LHST": "LHST", "EAT": "EAT", "CHADT": "CHADT", "ACDT": "ACDT", "AKDT": "AKDT", "SRT": "SRT", "VET": "VET", "HKST": "HKST", "PST": "PST", "NZDT": "NZDT", "IST": "IST", "ADT": "ADT", "ACST": "ACST", "HNPM": "HNPM", "HNPMX": "HNPMX", "HNCU": "HNCU", "OEZ": "OEZ", "HKT": "HKT", "WAST": "WAST", "HNNOMX": "HNNOMX", "COST": "COST", "HADT": "HADT", "ACWDT": "ACWDT", "WESZ": "WESZ", "HNEG": "HNEG", "HAT": "HAT"},
}
}
diff --git a/sg/sg.go b/sg/sg.go
index 2d2b04b2..091681c3 100644
--- a/sg/sg.go
+++ b/sg/sg.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KnK", "NpK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kôzo na Krîstu", "Na pekô tî Krîstu"},
- timezones: map[string]string{"UYT": "UYT", "WESZ": "WESZ", "IST": "IST", "CLT": "CLT", "OEZ": "OEZ", "HECU": "HECU", "WIT": "WIT", "AEDT": "AEDT", "AWST": "AWST", "MESZ": "MESZ", "HNCU": "HNCU", "HNPMX": "HNPMX", "PDT": "PDT", "LHST": "LHST", "JST": "JST", "EAT": "EAT", "∅∅∅": "∅∅∅", "HEOG": "HEOG", "WITA": "WITA", "HEPM": "HEPM", "NZDT": "NZDT", "GMT": "GMT", "HNOG": "HNOG", "SAST": "SAST", "OESZ": "OESZ", "WARST": "WARST", "MDT": "MDT", "HADT": "HADT", "ACWST": "ACWST", "WEZ": "WEZ", "HEEG": "HEEG", "PST": "PST", "NZST": "NZST", "BOT": "BOT", "ECT": "ECT", "HENOMX": "HENOMX", "EST": "EST", "GYT": "GYT", "HKST": "HKST", "HNEG": "HNEG", "TMT": "TMT", "ACST": "ACST", "CAT": "CAT", "CDT": "CDT", "AST": "AST", "ADT": "ADT", "MYT": "MYT", "HKT": "HKT", "TMST": "TMST", "ChST": "ChST", "WAST": "WAST", "MST": "MST", "UYST": "UYST", "ARST": "ARST", "HNPM": "HNPM", "LHDT": "LHDT", "WART": "WART", "COT": "COT", "WIB": "WIB", "HAST": "HAST", "COST": "COST", "GFT": "GFT", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "SRT": "SRT", "HNT": "HNT", "AEST": "AEST", "AWDT": "AWDT", "WAT": "WAT", "SGT": "SGT", "EDT": "EDT", "AKST": "AKST", "ART": "ART", "CHADT": "CHADT", "AKDT": "AKDT", "BT": "BT", "ACWDT": "ACWDT", "CLST": "CLST", "CST": "CST", "HAT": "HAT", "MEZ": "MEZ", "VET": "VET", "CHAST": "CHAST", "JDT": "JDT", "ACDT": "ACDT"},
+ timezones: map[string]string{"OESZ": "OESZ", "WEZ": "WEZ", "UYST": "UYST", "LHDT": "LHDT", "HAST": "HAST", "AWDT": "AWDT", "CHADT": "CHADT", "MEZ": "MEZ", "CLST": "CLST", "WESZ": "WESZ", "HENOMX": "HENOMX", "HEEG": "HEEG", "HECU": "HECU", "PDT": "PDT", "ACWDT": "ACWDT", "IST": "IST", "WARST": "WARST", "HNOG": "HNOG", "TMT": "TMT", "HNEG": "HNEG", "HADT": "HADT", "∅∅∅": "∅∅∅", "WART": "WART", "EDT": "EDT", "BOT": "BOT", "ARST": "ARST", "WAT": "WAT", "ACWST": "ACWST", "MESZ": "MESZ", "GMT": "GMT", "MYT": "MYT", "ADT": "ADT", "MDT": "MDT", "EST": "EST", "CHAST": "CHAST", "AST": "AST", "COST": "COST", "SRT": "SRT", "SAST": "SAST", "WIB": "WIB", "CST": "CST", "ECT": "ECT", "NZDT": "NZDT", "VET": "VET", "TMST": "TMST", "ART": "ART", "HKT": "HKT", "UYT": "UYT", "NZST": "NZST", "WITA": "WITA", "CDT": "CDT", "COT": "COT", "HNNOMX": "HNNOMX", "WIT": "WIT", "WAST": "WAST", "AKDT": "AKDT", "AEDT": "AEDT", "AKST": "AKST", "HEPMX": "HEPMX", "GYT": "GYT", "PST": "PST", "MST": "MST", "ACDT": "ACDT", "BT": "BT", "HNT": "HNT", "LHST": "LHST", "AWST": "AWST", "JST": "JST", "OEZ": "OEZ", "ChST": "ChST", "EAT": "EAT", "HEOG": "HEOG", "ACST": "ACST", "HAT": "HAT", "AEST": "AEST", "HEPM": "HEPM", "HNPMX": "HNPMX", "HNCU": "HNCU", "SGT": "SGT", "CAT": "CAT", "JDT": "JDT", "CLT": "CLT", "HKST": "HKST", "GFT": "GFT", "HNPM": "HNPM"},
}
}
diff --git a/sg_CF/sg_CF.go b/sg_CF/sg_CF.go
index 3648394a..1dd55330 100644
--- a/sg_CF/sg_CF.go
+++ b/sg_CF/sg_CF.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KnK", "NpK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kôzo na Krîstu", "Na pekô tî Krîstu"},
- timezones: map[string]string{"HKT": "HKT", "CLST": "CLST", "SGT": "SGT", "HNCU": "HNCU", "HAT": "HAT", "WIT": "WIT", "BT": "BT", "MESZ": "MESZ", "JST": "JST", "TMT": "TMT", "CST": "CST", "HNOG": "HNOG", "HEPM": "HEPM", "ACST": "ACST", "WIB": "WIB", "HAST": "HAST", "UYT": "UYT", "PDT": "PDT", "WITA": "WITA", "JDT": "JDT", "ECT": "ECT", "MST": "MST", "LHDT": "LHDT", "ARST": "ARST", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "AWDT": "AWDT", "NZDT": "NZDT", "IST": "IST", "∅∅∅": "∅∅∅", "HNT": "HNT", "HEOG": "HEOG", "SAST": "SAST", "CLT": "CLT", "WAT": "WAT", "CDT": "CDT", "WARST": "WARST", "EST": "EST", "UYST": "UYST", "HADT": "HADT", "HNEG": "HNEG", "EAT": "EAT", "CAT": "CAT", "WART": "WART", "WAST": "WAST", "OEZ": "OEZ", "GMT": "GMT", "AKST": "AKST", "AWST": "AWST", "CHAST": "CHAST", "CHADT": "CHADT", "GFT": "GFT", "VET": "VET", "WESZ": "WESZ", "HKST": "HKST", "COT": "COT", "HECU": "HECU", "WEZ": "WEZ", "HNPMX": "HNPMX", "EDT": "EDT", "ADT": "ADT", "ACDT": "ACDT", "OESZ": "OESZ", "COST": "COST", "MDT": "MDT", "AKDT": "AKDT", "MYT": "MYT", "SRT": "SRT", "ACWST": "ACWST", "BOT": "BOT", "TMST": "TMST", "ChST": "ChST", "HEPMX": "HEPMX", "PST": "PST", "HEEG": "HEEG", "AST": "AST", "AEDT": "AEDT", "HNPM": "HNPM", "LHST": "LHST", "NZST": "NZST", "ART": "ART", "AEST": "AEST", "MEZ": "MEZ", "HENOMX": "HENOMX", "GYT": "GYT"},
+ timezones: map[string]string{"WIB": "WIB", "CLT": "CLT", "HNEG": "HNEG", "HAST": "HAST", "MEZ": "MEZ", "OEZ": "OEZ", "WAT": "WAT", "SAST": "SAST", "AKDT": "AKDT", "UYT": "UYT", "ACWST": "ACWST", "JST": "JST", "TMT": "TMT", "MST": "MST", "COST": "COST", "AEDT": "AEDT", "HEPMX": "HEPMX", "UYST": "UYST", "LHST": "LHST", "HECU": "HECU", "CST": "CST", "WIT": "WIT", "WART": "WART", "ACST": "ACST", "WITA": "WITA", "LHDT": "LHDT", "WESZ": "WESZ", "MDT": "MDT", "HEEG": "HEEG", "AKST": "AKST", "ChST": "ChST", "ACWDT": "ACWDT", "CLST": "CLST", "HKST": "HKST", "HAT": "HAT", "GFT": "GFT", "VET": "VET", "ART": "ART", "HKT": "HKT", "HEPM": "HEPM", "ARST": "ARST", "HNT": "HNT", "BOT": "BOT", "PST": "PST", "IST": "IST", "JDT": "JDT", "GMT": "GMT", "AST": "AST", "HENOMX": "HENOMX", "BT": "BT", "HNCU": "HNCU", "AWST": "AWST", "SGT": "SGT", "ECT": "ECT", "HADT": "HADT", "WEZ": "WEZ", "HNOG": "HNOG", "AEST": "AEST", "HNPM": "HNPM", "AWDT": "AWDT", "MYT": "MYT", "EDT": "EDT", "HNNOMX": "HNNOMX", "EAT": "EAT", "CDT": "CDT", "CHAST": "CHAST", "NZST": "NZST", "COT": "COT", "HNPMX": "HNPMX", "GYT": "GYT", "CHADT": "CHADT", "ADT": "ADT", "WAST": "WAST", "ACDT": "ACDT", "SRT": "SRT", "∅∅∅": "∅∅∅", "NZDT": "NZDT", "CAT": "CAT", "MESZ": "MESZ", "HEOG": "HEOG", "TMST": "TMST", "PDT": "PDT", "OESZ": "OESZ", "WARST": "WARST", "EST": "EST"},
}
}
diff --git a/shi/shi.go b/shi/shi.go
index f2c293bd..f20ccf25 100644
--- a/shi/shi.go
+++ b/shi/shi.go
@@ -60,7 +60,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ⴷⴰⵄ", "ⴷⴼⵄ"},
erasNarrow: []string{"", ""},
erasWide: []string{"ⴷⴰⵜ ⵏ ⵄⵉⵙⴰ", "ⴷⴼⴼⵉⵔ ⵏ ⵄⵉⵙⴰ"},
- timezones: map[string]string{"HEOG": "HEOG", "WITA": "WITA", "MESZ": "MESZ", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "GYT": "GYT", "SRT": "SRT", "TMT": "TMT", "COT": "COT", "AST": "AST", "HNOG": "HNOG", "ACWST": "ACWST", "JDT": "JDT", "CAT": "CAT", "MST": "MST", "WIB": "WIB", "PST": "PST", "AEDT": "AEDT", "HKT": "HKT", "HKST": "HKST", "LHST": "LHST", "WAT": "WAT", "AKDT": "AKDT", "HNCU": "HNCU", "HNPM": "HNPM", "NZDT": "NZDT", "TMST": "TMST", "WARST": "WARST", "AWST": "AWST", "MDT": "MDT", "ART": "ART", "IST": "IST", "EST": "EST", "HADT": "HADT", "CLT": "CLT", "BOT": "BOT", "HNPMX": "HNPMX", "PDT": "PDT", "HAT": "HAT", "AEST": "AEST", "AWDT": "AWDT", "HEPM": "HEPM", "NZST": "NZST", "∅∅∅": "∅∅∅", "HEPMX": "HEPMX", "EAT": "EAT", "HENOMX": "HENOMX", "ECT": "ECT", "ChST": "ChST", "OESZ": "OESZ", "EDT": "EDT", "HNEG": "HNEG", "HEEG": "HEEG", "WAST": "WAST", "ADT": "ADT", "UYST": "UYST", "CST": "CST", "CHAST": "CHAST", "ACST": "ACST", "OEZ": "OEZ", "WART": "WART", "MYT": "MYT", "CLST": "CLST", "ACWDT": "ACWDT", "CDT": "CDT", "WIT": "WIT", "ARST": "ARST", "HNT": "HNT", "MEZ": "MEZ", "HECU": "HECU", "AKST": "AKST", "BT": "BT", "COST": "COST", "SGT": "SGT", "VET": "VET", "WESZ": "WESZ", "GFT": "GFT", "GMT": "GMT", "WEZ": "WEZ", "HAST": "HAST", "LHDT": "LHDT", "CHADT": "CHADT", "SAST": "SAST", "JST": "JST", "UYT": "UYT"},
+ timezones: map[string]string{"WAT": "WAT", "SAST": "SAST", "WIT": "WIT", "SGT": "SGT", "PDT": "PDT", "MESZ": "MESZ", "JDT": "JDT", "TMT": "TMT", "CLT": "CLT", "HEEG": "HEEG", "AEST": "AEST", "ChST": "ChST", "CHADT": "CHADT", "IST": "IST", "WART": "WART", "HKST": "HKST", "HNT": "HNT", "CST": "CST", "ECT": "ECT", "ACWDT": "ACWDT", "CHAST": "CHAST", "MDT": "MDT", "ARST": "ARST", "HNNOMX": "HNNOMX", "HAT": "HAT", "HEPM": "HEPM", "PST": "PST", "HNOG": "HNOG", "EST": "EST", "AEDT": "AEDT", "LHST": "LHST", "GFT": "GFT", "∅∅∅": "∅∅∅", "AWDT": "AWDT", "GMT": "GMT", "ACDT": "ACDT", "COT": "COT", "COST": "COST", "HNCU": "HNCU", "HADT": "HADT", "NZDT": "NZDT", "JST": "JST", "AST": "AST", "HENOMX": "HENOMX", "AKST": "AKST", "UYST": "UYST", "GYT": "GYT", "CDT": "CDT", "NZST": "NZST", "WAST": "WAST", "EDT": "EDT", "HKT": "HKT", "ART": "ART", "BT": "BT", "HECU": "HECU", "MEZ": "MEZ", "ADT": "ADT", "OESZ": "OESZ", "WARST": "WARST", "MST": "MST", "WIB": "WIB", "VET": "VET", "CAT": "CAT", "ACWST": "ACWST", "OEZ": "OEZ", "HEOG": "HEOG", "LHDT": "LHDT", "WEZ": "WEZ", "WESZ": "WESZ", "MYT": "MYT", "AKDT": "AKDT", "WITA": "WITA", "SRT": "SRT", "AWST": "AWST", "TMST": "TMST", "HEPMX": "HEPMX", "EAT": "EAT", "BOT": "BOT", "HAST": "HAST", "ACST": "ACST", "UYT": "UYT", "HNPM": "HNPM", "CLST": "CLST", "HNEG": "HNEG", "HNPMX": "HNPMX"},
}
}
diff --git a/shi_Latn/shi_Latn.go b/shi_Latn/shi_Latn.go
index 34322798..b8d21330 100644
--- a/shi_Latn/shi_Latn.go
+++ b/shi_Latn/shi_Latn.go
@@ -60,7 +60,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"daɛ", "dfɛ"},
erasNarrow: []string{"", ""},
erasWide: []string{"dat n ɛisa", "dffir n ɛisa"},
- timezones: map[string]string{"NZDT": "NZDT", "CLST": "CLST", "ChST": "ChST", "GYT": "GYT", "CAT": "CAT", "WART": "WART", "AWDT": "AWDT", "JST": "JST", "HNEG": "HNEG", "ACST": "ACST", "MDT": "MDT", "UYST": "UYST", "AKST": "AKST", "AST": "AST", "ADT": "ADT", "ACDT": "ACDT", "HECU": "HECU", "CST": "CST", "WIB": "WIB", "SRT": "SRT", "HAT": "HAT", "WITA": "WITA", "∅∅∅": "∅∅∅", "COT": "COT", "HNT": "HNT", "AWST": "AWST", "CHADT": "CHADT", "HEEG": "HEEG", "BT": "BT", "LHDT": "LHDT", "EDT": "EDT", "PST": "PST", "UYT": "UYT", "HADT": "HADT", "WIT": "WIT", "HEPM": "HEPM", "MESZ": "MESZ", "CHAST": "CHAST", "ECT": "ECT", "MST": "MST", "IST": "IST", "ARST": "ARST", "HKST": "HKST", "WAT": "WAT", "WARST": "WARST", "HNPMX": "HNPMX", "MYT": "MYT", "AEDT": "AEDT", "CLT": "CLT", "HENOMX": "HENOMX", "HNCU": "HNCU", "HNOG": "HNOG", "NZST": "NZST", "TMST": "TMST", "SGT": "SGT", "AEST": "AEST", "HKT": "HKT", "EST": "EST", "HEOG": "HEOG", "WAST": "WAST", "COST": "COST", "VET": "VET", "HNPM": "HNPM", "SAST": "SAST", "JDT": "JDT", "BOT": "BOT", "GFT": "GFT", "AKDT": "AKDT", "WEZ": "WEZ", "WESZ": "WESZ", "ART": "ART", "LHST": "LHST", "OESZ": "OESZ", "GMT": "GMT", "EAT": "EAT", "OEZ": "OEZ", "HEPMX": "HEPMX", "ACWST": "ACWST", "MEZ": "MEZ", "TMT": "TMT", "HNNOMX": "HNNOMX", "PDT": "PDT", "ACWDT": "ACWDT", "CDT": "CDT", "HAST": "HAST"},
+ timezones: map[string]string{"GMT": "GMT", "GFT": "GFT", "MYT": "MYT", "GYT": "GYT", "PST": "PST", "WESZ": "WESZ", "MST": "MST", "EST": "EST", "COST": "COST", "AEDT": "AEDT", "SAST": "SAST", "WIB": "WIB", "ACWST": "ACWST", "NZST": "NZST", "NZDT": "NZDT", "WART": "WART", "MDT": "MDT", "ART": "ART", "WITA": "WITA", "TMST": "TMST", "UYST": "UYST", "HNCU": "HNCU", "AWDT": "AWDT", "SGT": "SGT", "HKT": "HKT", "HNT": "HNT", "HNEG": "HNEG", "ChST": "ChST", "HAST": "HAST", "AST": "AST", "CLT": "CLT", "TMT": "TMT", "HENOMX": "HENOMX", "LHST": "LHST", "HECU": "HECU", "HEOG": "HEOG", "ADT": "ADT", "HEEG": "HEEG", "PDT": "PDT", "ACWDT": "ACWDT", "MEZ": "MEZ", "JST": "JST", "HNOG": "HNOG", "OESZ": "OESZ", "∅∅∅": "∅∅∅", "VET": "VET", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "SRT": "SRT", "EAT": "EAT", "HADT": "HADT", "WAST": "WAST", "HKST": "HKST", "AKDT": "AKDT", "HEPM": "HEPM", "CDT": "CDT", "CHADT": "CHADT", "WAT": "WAT", "ACDT": "ACDT", "WIT": "WIT", "AWST": "AWST", "CHAST": "CHAST", "ACST": "ACST", "CST": "CST", "IST": "IST", "MESZ": "MESZ", "JDT": "JDT", "CLST": "CLST", "BT": "BT", "OEZ": "OEZ", "WEZ": "WEZ", "WARST": "WARST", "EDT": "EDT", "BOT": "BOT", "ECT": "ECT", "CAT": "CAT", "ARST": "ARST", "COT": "COT", "HNNOMX": "HNNOMX", "HAT": "HAT", "AKST": "AKST", "AEST": "AEST", "UYT": "UYT", "HNPM": "HNPM", "LHDT": "LHDT"},
}
}
diff --git a/shi_Latn_MA/shi_Latn_MA.go b/shi_Latn_MA/shi_Latn_MA.go
index a700ccd9..97e56f14 100644
--- a/shi_Latn_MA/shi_Latn_MA.go
+++ b/shi_Latn_MA/shi_Latn_MA.go
@@ -60,7 +60,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ⴷⴰⵄ", "ⴷⴼⵄ"},
erasNarrow: []string{"", ""},
erasWide: []string{"ⴷⴰⵜ ⵏ ⵄⵉⵙⴰ", "ⴷⴼⴼⵉⵔ ⵏ ⵄⵉⵙⴰ"},
- timezones: map[string]string{"CHAST": "CHAST", "SGT": "SGT", "OESZ": "OESZ", "GYT": "GYT", "HAT": "HAT", "ART": "ART", "CAT": "CAT", "WAT": "WAT", "HKT": "HKT", "NZDT": "NZDT", "MST": "MST", "AKDT": "AKDT", "MEZ": "MEZ", "NZST": "NZST", "HEPMX": "HEPMX", "WIT": "WIT", "IST": "IST", "HNEG": "HNEG", "EAT": "EAT", "WARST": "WARST", "WITA": "WITA", "LHST": "LHST", "WAST": "WAST", "EDT": "EDT", "HENOMX": "HENOMX", "BT": "BT", "SRT": "SRT", "HEPM": "HEPM", "MESZ": "MESZ", "LHDT": "LHDT", "COT": "COT", "CLST": "CLST", "JDT": "JDT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "PDT": "PDT", "AEST": "AEST", "CHADT": "CHADT", "SAST": "SAST", "CST": "CST", "HADT": "HADT", "HNPMX": "HNPMX", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "ChST": "ChST", "TMT": "TMT", "GMT": "GMT", "HECU": "HECU", "AEDT": "AEDT", "BOT": "BOT", "ACST": "ACST", "WART": "WART", "HNCU": "HNCU", "CDT": "CDT", "HEOG": "HEOG", "HNT": "HNT", "HKST": "HKST", "COST": "COST", "UYST": "UYST", "AKST": "AKST", "HAST": "HAST", "AWDT": "AWDT", "GFT": "GFT", "ECT": "ECT", "MDT": "MDT", "MYT": "MYT", "UYT": "UYT", "WEZ": "WEZ", "WESZ": "WESZ", "AWST": "AWST", "EST": "EST", "CLT": "CLT", "JST": "JST", "ACDT": "ACDT", "OEZ": "OEZ", "WIB": "WIB", "HNOG": "HNOG", "ARST": "ARST", "TMST": "TMST", "ADT": "ADT", "VET": "VET", "PST": "PST", "ACWST": "ACWST", "HNPM": "HNPM", "AST": "AST"},
+ timezones: map[string]string{"HADT": "HADT", "ARST": "ARST", "CDT": "CDT", "ECT": "ECT", "CAT": "CAT", "IST": "IST", "WART": "WART", "HNT": "HNT", "HAT": "HAT", "UYST": "UYST", "EST": "EST", "∅∅∅": "∅∅∅", "CHAST": "CHAST", "ADT": "ADT", "MESZ": "MESZ", "WESZ": "WESZ", "HKT": "HKT", "COT": "COT", "HEEG": "HEEG", "AKST": "AKST", "ACWDT": "ACWDT", "CHADT": "CHADT", "CLT": "CLT", "HNOG": "HNOG", "OESZ": "OESZ", "ChST": "ChST", "WIB": "WIB", "BOT": "BOT", "WIT": "WIT", "NZST": "NZST", "WAT": "WAT", "HNPM": "HNPM", "HNPMX": "HNPMX", "SAST": "SAST", "EAT": "EAT", "AST": "AST", "ACST": "ACST", "HNEG": "HNEG", "AEST": "AEST", "ACWST": "ACWST", "ART": "ART", "HKST": "HKST", "WAST": "WAST", "HNNOMX": "HNNOMX", "ACDT": "ACDT", "UYT": "UYT", "LHST": "LHST", "CLST": "CLST", "GYT": "GYT", "AWDT": "AWDT", "WEZ": "WEZ", "GMT": "GMT", "MYT": "MYT", "BT": "BT", "HEPMX": "HEPMX", "SRT": "SRT", "WARST": "WARST", "TMST": "TMST", "EDT": "EDT", "AEDT": "AEDT", "WITA": "WITA", "PDT": "PDT", "HEPM": "HEPM", "LHDT": "LHDT", "HNCU": "HNCU", "JST": "JST", "JDT": "JDT", "MEZ": "MEZ", "HEOG": "HEOG", "OEZ": "OEZ", "MDT": "MDT", "AKDT": "AKDT", "HAST": "HAST", "TMT": "TMT", "GFT": "GFT", "HENOMX": "HENOMX", "AWST": "AWST", "SGT": "SGT", "PST": "PST", "NZDT": "NZDT", "VET": "VET", "MST": "MST", "HECU": "HECU", "CST": "CST", "COST": "COST"},
}
}
diff --git a/shi_Tfng/shi_Tfng.go b/shi_Tfng/shi_Tfng.go
index 7267cb49..485e591d 100644
--- a/shi_Tfng/shi_Tfng.go
+++ b/shi_Tfng/shi_Tfng.go
@@ -60,7 +60,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ⴷⴰⵄ", "ⴷⴼⵄ"},
erasNarrow: []string{"", ""},
erasWide: []string{"ⴷⴰⵜ ⵏ ⵄⵉⵙⴰ", "ⴷⴼⴼⵉⵔ ⵏ ⵄⵉⵙⴰ"},
- timezones: map[string]string{"PDT": "PDT", "HNT": "HNT", "WITA": "WITA", "CLST": "CLST", "CAT": "CAT", "SGT": "SGT", "HECU": "HECU", "VET": "VET", "NZST": "NZST", "JDT": "JDT", "WAT": "WAT", "HAT": "HAT", "JST": "JST", "TMST": "TMST", "EAT": "EAT", "ECT": "ECT", "WART": "WART", "WARST": "WARST", "GMT": "GMT", "SAST": "SAST", "OESZ": "OESZ", "EST": "EST", "UYST": "UYST", "PST": "PST", "SRT": "SRT", "ARST": "ARST", "CHAST": "CHAST", "IST": "IST", "BOT": "BOT", "CST": "CST", "MDT": "MDT", "MESZ": "MESZ", "GFT": "GFT", "ACDT": "ACDT", "HEPMX": "HEPMX", "AKDT": "AKDT", "MYT": "MYT", "ART": "ART", "NZDT": "NZDT", "MEZ": "MEZ", "ACST": "ACST", "OEZ": "OEZ", "EDT": "EDT", "HADT": "HADT", "ChST": "ChST", "HNEG": "HNEG", "ACWDT": "ACWDT", "ACWST": "ACWST", "AWST": "AWST", "HNPM": "HNPM", "CLT": "CLT", "HEEG": "HEEG", "TMT": "TMT", "HAST": "HAST", "HEOG": "HEOG", "AEST": "AEST", "AEDT": "AEDT", "LHST": "LHST", "WIB": "WIB", "CHADT": "CHADT", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "CDT": "CDT", "GYT": "GYT", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "WAST": "WAST", "COT": "COT", "COST": "COST", "HNNOMX": "HNNOMX", "BT": "BT", "WEZ": "WEZ", "WESZ": "WESZ", "AKST": "AKST", "ADT": "ADT", "MST": "MST", "HNOG": "HNOG", "HKT": "HKT", "HKST": "HKST", "HEPM": "HEPM", "LHDT": "LHDT", "HNCU": "HNCU", "UYT": "UYT", "WIT": "WIT", "AST": "AST"},
+ timezones: map[string]string{"AWST": "AWST", "CHAST": "CHAST", "NZST": "NZST", "AST": "AST", "HKST": "HKST", "AEST": "AEST", "AEDT": "AEDT", "LHST": "LHST", "AWDT": "AWDT", "BOT": "BOT", "MESZ": "MESZ", "HEOG": "HEOG", "WAT": "WAT", "LHDT": "LHDT", "HADT": "HADT", "IST": "IST", "TMST": "TMST", "ACDT": "ACDT", "HEEG": "HEEG", "ARST": "ARST", "PST": "PST", "HAST": "HAST", "ACWST": "ACWST", "ACWDT": "ACWDT", "VET": "VET", "JDT": "JDT", "OEZ": "OEZ", "WAST": "WAST", "WITA": "WITA", "ChST": "ChST", "GMT": "GMT", "HKT": "HKT", "HAT": "HAT", "PDT": "PDT", "ECT": "ECT", "TMT": "TMT", "EDT": "EDT", "WART": "WART", "CLT": "CLT", "COT": "COT", "HNT": "HNT", "HNOG": "HNOG", "UYST": "UYST", "JST": "JST", "SAST": "SAST", "HEPMX": "HEPMX", "∅∅∅": "∅∅∅", "GYT": "GYT", "EAT": "EAT", "NZDT": "NZDT", "MEZ": "MEZ", "UYT": "UYT", "SRT": "SRT", "MYT": "MYT", "HNCU": "HNCU", "HECU": "HECU", "CDT": "CDT", "CHADT": "CHADT", "SGT": "SGT", "OESZ": "OESZ", "WESZ": "WESZ", "ART": "ART", "ACST": "ACST", "HNEG": "HNEG", "CLST": "CLST", "GFT": "GFT", "WIB": "WIB", "WIT": "WIT", "CAT": "CAT", "BT": "BT", "HNPM": "HNPM", "HEPM": "HEPM", "HNPMX": "HNPMX", "WARST": "WARST", "MDT": "MDT", "EST": "EST", "HNNOMX": "HNNOMX", "ADT": "ADT", "WEZ": "WEZ", "MST": "MST", "COST": "COST", "AKST": "AKST", "CST": "CST", "HENOMX": "HENOMX", "AKDT": "AKDT"},
}
}
diff --git a/shi_Tfng_MA/shi_Tfng_MA.go b/shi_Tfng_MA/shi_Tfng_MA.go
index 67a879ff..6c54805a 100644
--- a/shi_Tfng_MA/shi_Tfng_MA.go
+++ b/shi_Tfng_MA/shi_Tfng_MA.go
@@ -60,7 +60,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ⴷⴰⵄ", "ⴷⴼⵄ"},
erasNarrow: []string{"", ""},
erasWide: []string{"ⴷⴰⵜ ⵏ ⵄⵉⵙⴰ", "ⴷⴼⴼⵉⵔ ⵏ ⵄⵉⵙⴰ"},
- timezones: map[string]string{"AEST": "AEST", "JST": "JST", "ARST": "ARST", "HENOMX": "HENOMX", "MDT": "MDT", "AKST": "AKST", "HEPM": "HEPM", "ChST": "ChST", "OEZ": "OEZ", "WEZ": "WEZ", "WESZ": "WESZ", "ACWDT": "ACWDT", "MST": "MST", "BT": "BT", "WAT": "WAT", "HNPMX": "HNPMX", "ADT": "ADT", "WIT": "WIT", "CHAST": "CHAST", "MESZ": "MESZ", "CLT": "CLT", "∅∅∅": "∅∅∅", "UYT": "UYT", "VET": "VET", "HAST": "HAST", "ECT": "ECT", "AST": "AST", "CDT": "CDT", "NZDT": "NZDT", "COT": "COT", "COST": "COST", "HNCU": "HNCU", "HECU": "HECU", "AKDT": "AKDT", "PDT": "PDT", "IST": "IST", "GFT": "GFT", "CHADT": "CHADT", "GYT": "GYT", "HADT": "HADT", "AEDT": "AEDT", "CAT": "CAT", "AWST": "AWST", "HNEG": "HNEG", "ACST": "ACST", "WAST": "WAST", "HNNOMX": "HNNOMX", "WARST": "WARST", "HEOG": "HEOG", "JDT": "JDT", "BOT": "BOT", "HNPM": "HNPM", "LHST": "LHST", "GMT": "GMT", "AWDT": "AWDT", "CLST": "CLST", "SGT": "SGT", "HEPMX": "HEPMX", "ACWST": "ACWST", "ART": "ART", "HNOG": "HNOG", "LHDT": "LHDT", "HEEG": "HEEG", "EAT": "EAT", "EST": "EST", "MYT": "MYT", "TMT": "TMT", "TMST": "TMST", "EDT": "EDT", "SRT": "SRT", "HKT": "HKT", "NZST": "NZST", "MEZ": "MEZ", "SAST": "SAST", "WART": "WART", "CST": "CST", "UYST": "UYST", "WIB": "WIB", "HNT": "HNT", "HAT": "HAT", "HKST": "HKST", "ACDT": "ACDT", "OESZ": "OESZ", "WITA": "WITA", "PST": "PST"},
+ timezones: map[string]string{"EAT": "EAT", "BOT": "BOT", "MESZ": "MESZ", "VET": "VET", "COT": "COT", "HEEG": "HEEG", "AKDT": "AKDT", "HEPMX": "HEPMX", "HAST": "HAST", "∅∅∅": "∅∅∅", "AEST": "AEST", "GYT": "GYT", "AWST": "AWST", "ECT": "ECT", "ADT": "ADT", "ARST": "ARST", "CHADT": "CHADT", "WITA": "WITA", "WIB": "WIB", "MYT": "MYT", "WIT": "WIT", "CHAST": "CHAST", "PDT": "PDT", "HADT": "HADT", "EDT": "EDT", "GFT": "GFT", "ACST": "ACST", "HNEG": "HNEG", "IST": "IST", "JST": "JST", "JDT": "JDT", "WARST": "WARST", "AST": "AST", "MDT": "MDT", "UYST": "UYST", "NZST": "NZST", "MEZ": "MEZ", "OESZ": "OESZ", "GMT": "GMT", "ChST": "ChST", "HNPMX": "HNPMX", "ACWST": "ACWST", "CLST": "CLST", "HNOG": "HNOG", "TMST": "TMST", "AKST": "AKST", "LHST": "LHST", "WAT": "WAT", "HKT": "HKT", "HNT": "HNT", "HNPM": "HNPM", "CST": "CST", "SGT": "SGT", "NZDT": "NZDT", "TMT": "TMT", "WAST": "WAST", "BT": "BT", "SAST": "SAST", "SRT": "SRT", "WART": "WART", "HEOG": "HEOG", "OEZ": "OEZ", "ART": "ART", "HENOMX": "HENOMX", "HEPM": "HEPM", "ACWDT": "ACWDT", "AEDT": "AEDT", "AWDT": "AWDT", "CLT": "CLT", "WESZ": "WESZ", "EST": "EST", "ACDT": "ACDT", "UYT": "UYT", "CAT": "CAT", "WEZ": "WEZ", "MST": "MST", "COST": "COST", "HECU": "HECU", "CDT": "CDT", "HKST": "HKST", "HNNOMX": "HNNOMX", "HAT": "HAT", "LHDT": "LHDT", "HNCU": "HNCU", "PST": "PST"},
}
}
diff --git a/si/si.go b/si/si.go
index 590e9049..9b1d7b6c 100644
--- a/si/si.go
+++ b/si/si.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ක්\u200dරි.පූ.", "ක්\u200dරි.ව."},
erasNarrow: []string{"", ""},
erasWide: []string{"ක්\u200dරිස්තු පූර්ව", "ක්\u200dරිස්තු වර්ෂ"},
- timezones: map[string]string{"HNCU": "කියුබානු සම්මත වේලාව", "EST": "උතුරු ඇමරිකානු නැගෙනහිර සම්මත වේලාව", "SRT": "සුරිනාම වේලාව", "AEST": "නැගෙනහිර ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "HEPM": "ශාන්ත පියරේ සහ මැකෝලන් දිවාආලෝක වේලාව", "HKST": "හොංකොං ග්\u200dරීෂ්ම වේලාව", "MESZ": "මධ්\u200dයම යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "ChST": "චමොරෝ වේලාව", "ACST": "ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "HAST": "හවායි-අලෙයුතියාන් සම්මත වේලාව", "HNT": "නිව්ෆවුන්ලන්ත සම්මත වේලාව", "ART": "ආර්ජන්ටිනා සම්මත වේලාව", "SGT": "සිංගප්පුරු වේලාව", "WITA": "මධ්\u200dයම ඉන්දුනීසියානු වේලාව", "EAT": "නැගෙනහිර අප්\u200dරිකානු වේලාව", "HNNOMX": "වයඹ මෙක්සිකෝ සම්මත වේලාව", "WESZ": "බටහිර යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "ARST": "ආර්ජන්ටිනා ග්\u200dරීෂ්ම කාලය", "GFT": "ප්\u200dරංශ ගයනා වේලාව", "CAT": "මධ්\u200dයම අප්\u200dරිකානු වේලාව", "COT": "කොලොම්බියා සම්මත වේලාව", "AKST": "ඇලස්කා සම්මත වේලාව", "GYT": "ගයනා වේලාව", "BT": "භුතාන වේලාව", "∅∅∅": "ඇමර්සන් ග්\u200dරීෂ්ම කාලය", "OEZ": "නැගෙනහිර යුරෝපීය සම්මත වේලාව", "HEOG": "බටහිර ග්\u200dරීන්ලන්ත ග්\u200dරීෂ්ම කාලය", "MEZ": "මධ්\u200dයම යුරෝපීය සම්මත වේලාව", "IST": "ඉන්දියානු වේලාව", "COST": "කොලොම්බියා ග්\u200dරීෂ්ම කාලය", "UYT": "උරුගුවේ සම්මත වේලාව", "AST": "අත්ලාන්තික් සම්මත වේලාව", "LHST": "ලෝර්ඩ් හෝව් සම්මත වේලාව", "CLT": "චිලී සම්මත වේලාව", "EDT": "උතුරු ඇමරිකානු නැගෙනහිර දිවාආලෝක වේලාව", "MYT": "මැලේසියානු වේලාව", "WIB": "බටහිර ඉන්දුනීසියානු වේලාව", "NZST": "නවසීලන්ත සම්මත වේලාව", "HNPMX": "මෙක්සිකෝ පැසිෆික් සම්මත වේලාව", "HKT": "හොංකොං සම්මත වේලාව", "BOT": "බොලිවියා වේලාව", "TMT": "ටර්ක්මෙනිස්තාන සම්මත වේලාව", "ACWST": "මධ්\u200dයම බටහිර ඔස්ට්\u200dරේලියානු සම්මත වේලාව", "AWDT": "බටහිර ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "HNPM": "ශාන්ත පියරේ සහ මැකෝලන් සම්මත වේලාව", "JST": "ජපාන සම්මත වේලාව", "JDT": "ජපාන දහවල් වේලාව", "ADT": "අත්ලාන්තික් දිවාආලෝක වේලාව", "MST": "උතුරු ඇමරිකානු කඳුකර සම්මත වේලාව", "PST": "උතුරු ඇමරිකානු පැසිෆික් සම්මත වේලාව", "HEEG": "නැගෙනහිර ග්\u200dරීන්ලන්ත ග්\u200dරීෂ්ම කාලය", "TMST": "ටර්ක්මෙනිස්තාන ග්\u200dරීෂ්ම වේලාව", "HENOMX": "වයඹ මෙක්සිකෝ දිවාආලෝක වේලාව", "ACWDT": "මධ්\u200dයම බටහිර ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "AEDT": "නැඟෙනහිර ඕස්ට්\u200dරේලියානු දහවල් වේලාව", "AWST": "බටහිර ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "WARST": "බටහිර ආර්ජන්ටිනා ග්\u200dරීෂ්ම කාලය", "AKDT": "ඇලස්කා දිවාආලෝක වේලාව", "CST": "උතුරු ඇමරිකානු මධ්\u200dයම සම්මත වේලාව", "WEZ": "බටහිර යුරෝපීය සම්මත වේලාව", "GMT": "ග්\u200dරිනිච් මධ්\u200dයම වේලාව", "LHDT": "ලෝර්ඩ් හෝව් දිවා වේලාව", "SAST": "දකුණු අප්\u200dරිකානු වේලාව", "WAST": "බටහිර අප්\u200dරිකානු ග්\u200dරීෂ්ම කාලය", "HNOG": "බටහිර ග්\u200dරීන්ලන්ත සම්මත වේලාව", "ACDT": "මධ්\u200dයම ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "HADT": "හවායි-අලෙයුතියාන් දිවාආලෝක වේලාව", "VET": "වෙනිසියුලා වේලාව", "WIT": "නැගෙනහිර ඉන්දුනීසියානු වේලාව", "HECU": "කියුබානු දිවාආලෝක වේලාව", "UYST": "උරුගුවේ ග්\u200dරීෂ්ම කාලය", "CLST": "චිලී ග්\u200dරීෂ්ම කාලය", "OESZ": "නැගෙනහිර යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "WAT": "බටහිර අප්\u200dරිකානු සම්මත වේලාව", "WART": "බටහිර ආර්ජන්ටිනා සම්මත වේලාව", "HEPMX": "මෙක්සිකෝ පැසිෆික් දිවාආලෝක වේලාව", "HAT": "නිව්ෆවුන්ලන්ත දිවාආලෝක වේලාව", "CHADT": "චැතම් දිවා වේලාව", "HNEG": "නැගෙනහිර ග්\u200dරීන්ලන්ත සම්මත වේලාව", "NZDT": "නවසීලන්ත දිවා වේලාව", "CHAST": "චැතම් සම්මත වේලාව", "ECT": "ඉක්වදෝර් වේලාව", "CDT": "උතුරු ඇමරිකානු මධ්\u200dයම දිවාආලෝක වේලාව", "MDT": "උතුරු ඇමරිකානු කඳුකර දිවාආලෝක වේලාව", "PDT": "උතුරු ඇමරිකානු පැසිෆික් දිවාආලෝක වේලාව"},
+ timezones: map[string]string{"MYT": "මැලේසියානු වේලාව", "WARST": "බටහිර ආර්ජන්ටිනා ග්\u200dරීෂ්ම කාලය", "TMT": "ටර්ක්මෙනිස්තාන සම්මත වේලාව", "WAT": "බටහිර අප්\u200dරිකානු සම්මත වේලාව", "HADT": "හවායි-අලෙයුතියාන් දිවාආලෝක වේලාව", "HEOG": "බටහිර ග්\u200dරීන්ලන්ත ග්\u200dරීෂ්ම කාලය", "WESZ": "බටහිර යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "UYT": "උරුගුවේ සම්මත වේලාව", "CST": "උතුරු ඇමරිකානු මධ්\u200dයම සම්මත වේලාව", "AWST": "බටහිර ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "ADT": "අත්ලාන්තික් දිවාආලෝක වේලාව", "ART": "ආර්ජන්ටිනා සම්මත වේලාව", "ARST": "ආර්ජන්ටිනා ග්\u200dරීෂ්ම කාලය", "HKT": "හොංකොං සම්මත වේලාව", "COT": "කොලොම්බියා සම්මත වේලාව", "BT": "භුතාන වේලාව", "EST": "උතුරු ඇමරිකානු නැගෙනහිර සම්මත වේලාව", "HENOMX": "වයඹ මෙක්සිකෝ දිවාආලෝක වේලාව", "HNPM": "ශාන්ත පියරේ සහ මැකෝලන් සම්මත වේලාව", "WAST": "බටහිර අප්\u200dරිකානු ග්\u200dරීෂ්ම කාලය", "HECU": "කියුබානු දිවාආලෝක වේලාව", "JST": "ජපාන සම්මත වේලාව", "HNOG": "බටහිර ග්\u200dරීන්ලන්ත සම්මත වේලාව", "GYT": "ගයනා වේලාව", "CHADT": "චැතම් දිවා වේලාව", "HEEG": "නැගෙනහිර ග්\u200dරීන්ලන්ත ග්\u200dරීෂ්ම කාලය", "AKST": "ඇලස්කා සම්මත වේලාව", "NZDT": "නවසීලන්ත දිවා වේලාව", "MEZ": "මධ්\u200dයම යුරෝපීය සම්මත වේලාව", "GMT": "ග්\u200dරිනිච් මධ්\u200dයම වේලාව", "OEZ": "නැගෙනහිර යුරෝපීය සම්මත වේලාව", "OESZ": "නැගෙනහිර යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "EDT": "උතුරු ඇමරිකානු නැගෙනහිර දිවාආලෝක වේලාව", "HEPM": "ශාන්ත පියරේ සහ මැකෝලන් දිවාආලෝක වේලාව", "CHAST": "චැතම් සම්මත වේලාව", "NZST": "නවසීලන්ත සම්මත වේලාව", "HNT": "නිව්ෆවුන්ලන්ත සම්මත වේලාව", "AEST": "නැගෙනහිර ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "ChST": "චමොරෝ වේලාව", "HAST": "හවායි-අලෙයුතියාන් සම්මත වේලාව", "PDT": "උතුරු ඇමරිකානු පැසිෆික් දිවාආලෝක වේලාව", "WART": "බටහිර ආර්ජන්ටිනා සම්මත වේලාව", "MST": "MST", "MDT": "MDT", "AEDT": "නැඟෙනහිර ඕස්ට්\u200dරේලියානු දහවල් වේලාව", "LHST": "ලෝර්ඩ් හෝව් සම්මත වේලාව", "HEPMX": "මෙක්සිකෝ පැසිෆික් දිවාආලෝක වේලාව", "∅∅∅": "ඇමර්සන් ග්\u200dරීෂ්ම කාලය", "HAT": "නිව්ෆවුන්ලන්ත දිවාආලෝක වේලාව", "CDT": "උතුරු ඇමරිකානු මධ්\u200dයම දිවාආලෝක වේලාව", "ACWST": "මධ්\u200dයම බටහිර ඔස්ට්\u200dරේලියානු සම්මත වේලාව", "JDT": "ජපාන දහවල් වේලාව", "TMST": "ටර්ක්මෙනිස්තාන ග්\u200dරීෂ්ම වේලාව", "UYST": "උරුගුවේ ග්\u200dරීෂ්ම කාලය", "AWDT": "බටහිර ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "CLT": "චිලී සම්මත වේලාව", "CLST": "චිලී ග්\u200dරීෂ්ම කාලය", "ACST": "ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "COST": "කොලොම්බියා ග්\u200dරීෂ්ම කාලය", "HNNOMX": "වයඹ මෙක්සිකෝ සම්මත වේලාව", "HNEG": "නැගෙනහිර ග්\u200dරීන්ලන්ත සම්මත වේලාව", "SRT": "සුරිනාම වේලාව", "SAST": "දකුණු අප්\u200dරිකානු වේලාව", "CAT": "මධ්\u200dයම අප්\u200dරිකානු වේලාව", "VET": "වෙනිසියුලා වේලාව", "AST": "අත්ලාන්තික් සම්මත වේලාව", "HKST": "හොංකොං ග්\u200dරීෂ්ම වේලාව", "WITA": "මධ්\u200dයම ඉන්දුනීසියානු වේලාව", "AKDT": "ඇලස්කා දිවාආලෝක වේලාව", "WIB": "බටහිර ඉන්දුනීසියානු වේලාව", "BOT": "බොලිවියා වේලාව", "WIT": "නැගෙනහිර ඉන්දුනීසියානු වේලාව", "PST": "උතුරු ඇමරිකානු පැසිෆික් සම්මත වේලාව", "IST": "ඉන්දියානු වේලාව", "MESZ": "මධ්\u200dයම යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "LHDT": "ලෝර්ඩ් හෝව් දිවා වේලාව", "HNPMX": "මෙක්සිකෝ පැසිෆික් සම්මත වේලාව", "EAT": "නැගෙනහිර අප්\u200dරිකානු වේලාව", "HNCU": "කියුබානු සම්මත වේලාව", "ACWDT": "මධ්\u200dයම බටහිර ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "WEZ": "බටහිර යුරෝපීය සම්මත වේලාව", "ACDT": "මධ්\u200dයම ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "GFT": "ප්\u200dරංශ ගයනා වේලාව", "SGT": "සිංගප්පුරු වේලාව", "ECT": "ඉක්වදෝර් වේලාව"},
}
}
diff --git a/si_LK/si_LK.go b/si_LK/si_LK.go
index c8c5b36a..c6619ba6 100644
--- a/si_LK/si_LK.go
+++ b/si_LK/si_LK.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ක්\u200dරි.පූ.", "ක්\u200dරි.ව."},
erasNarrow: []string{"", ""},
erasWide: []string{"ක්\u200dරිස්තු පූර්ව", "ක්\u200dරිස්තු වර්ෂ"},
- timezones: map[string]string{"WARST": "බටහිර ආර්ජන්ටිනා ග්\u200dරීෂ්ම කාලය", "UYT": "උරුගුවේ සම්මත වේලාව", "ACWST": "මධ්\u200dයම බටහිර ඔස්ට්\u200dරේලියානු සම්මත වේලාව", "NZST": "නවසීලන්ත සම්මත වේලාව", "NZDT": "නවසීලන්ත දිවා වේලාව", "TMT": "ටර්ක්මෙනිස්තාන සම්මත වේලාව", "WART": "බටහිර ආර්ජන්ටිනා සම්මත වේලාව", "HNCU": "කියුබානු සම්මත වේලාව", "WESZ": "බටහිර යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "ACWDT": "මධ්\u200dයම බටහිර ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "LHDT": "ලෝර්ඩ් හෝව් දිවා වේලාව", "JDT": "ජපාන දහවල් වේලාව", "CST": "උතුරු ඇමරිකානු මධ්\u200dයම සම්මත වේලාව", "BT": "භුතාන වේලාව", "SRT": "සුරිනාම වේලාව", "PDT": "උතුරු ඇමරිකානු පැසිෆික් දිවාආලෝක වේලාව", "ECT": "ඉක්වදෝර් වේලාව", "AKDT": "ඇලස්කා දිවාආලෝක වේලාව", "ARST": "ආර්ජන්ටිනා ග්\u200dරීෂ්ම කාලය", "AWDT": "බටහිර ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "HEPM": "ශාන්ත පියරේ සහ මැකෝලන් දිවාආලෝක වේලාව", "TMST": "ටර්ක්මෙනිස්තාන ග්\u200dරීෂ්ම වේලාව", "SGT": "සිංගප්පුරු වේලාව", "UYST": "උරුගුවේ ග්\u200dරීෂ්ම කාලය", "ART": "ආර්ජන්ටිනා සම්මත වේලාව", "CHADT": "චැතම් දිවා වේලාව", "BOT": "බොලිවියා වේලාව", "ACDT": "මධ්\u200dයම ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "EAT": "නැගෙනහිර අප්\u200dරිකානු වේලාව", "HNNOMX": "වයඹ මෙක්සිකෝ සම්මත වේලාව", "AEDT": "නැඟෙනහිර ඕස්ට්\u200dරේලියානු දහවල් වේලාව", "HNEG": "නැගෙනහිර ග්\u200dරීන්ලන්ත සම්මත වේලාව", "HECU": "කියුබානු දිවාආලෝක වේලාව", "MYT": "මැලේසියානු වේලාව", "HAST": "හවායි-අලෙයුතියාන් සම්මත වේලාව", "HNT": "නිව්ෆවුන්ලන්ත සම්මත වේලාව", "ACST": "ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "WAT": "බටහිර අප්\u200dරිකානු සම්මත වේලාව", "MST": "MST", "AST": "අත්ලාන්තික් සම්මත වේලාව", "VET": "වෙනිසියුලා වේලාව", "∅∅∅": "ඇසොර්ස් ග්\u200dරීෂ්ම වේලාව", "AKST": "ඇලස්කා සම්මත වේලාව", "JST": "ජපාන සම්මත වේලාව", "HEEG": "නැගෙනහිර ග්\u200dරීන්ලන්ත ග්\u200dරීෂ්ම කාලය", "WAST": "බටහිර අප්\u200dරිකානු ග්\u200dරීෂ්ම කාලය", "LHST": "ලෝර්ඩ් හෝව් සම්මත වේලාව", "OESZ": "නැගෙනහිර යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "MDT": "MDT", "WEZ": "බටහිර යුරෝපීය සම්මත වේලාව", "AEST": "නැගෙනහිර ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "HNPM": "ශාන්ත පියරේ සහ මැකෝලන් සම්මත වේලාව", "CHAST": "චැතම් සම්මත වේලාව", "IST": "ඉන්දියානු වේලාව", "SAST": "දකුණු අප්\u200dරිකානු වේලාව", "COT": "කොලොම්බියා සම්මත වේලාව", "GYT": "ගයනා වේලාව", "HADT": "හවායි-අලෙයුතියාන් දිවාආලෝක වේලාව", "HNOG": "බටහිර ග්\u200dරීන්ලන්ත සම්මත වේලාව", "AWST": "බටහිර ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "MEZ": "මධ්\u200dයම යුරෝපීය සම්මත වේලාව", "MESZ": "මධ්\u200dයම යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "CLST": "චිලී ග්\u200dරීෂ්ම කාලය", "WIT": "නැගෙනහිර ඉන්දුනීසියානු වේලාව", "GFT": "ප්\u200dරංශ ගයනා වේලාව", "OEZ": "නැගෙනහිර යුරෝපීය සම්මත වේලාව", "CAT": "මධ්\u200dයම අප්\u200dරිකානු වේලාව", "COST": "කොලොම්බියා ග්\u200dරීෂ්ම කාලය", "HENOMX": "වයඹ මෙක්සිකෝ දිවාආලෝක වේලාව", "GMT": "ග්\u200dරිනිච් මධ්\u200dයම වේලාව", "HNPMX": "මෙක්සිකෝ පැසිෆික් සම්මත වේලාව", "ADT": "අත්ලාන්තික් දිවාආලෝක වේලාව", "WIB": "බටහිර ඉන්දුනීසියානු වේලාව", "HEOG": "බටහිර ග්\u200dරීන්ලන්ත ග්\u200dරීෂ්ම කාලය", "ChST": "චමොරෝ වේලාව", "EST": "උතුරු ඇමරිකානු නැගෙනහිර සම්මත වේලාව", "EDT": "උතුරු ඇමරිකානු නැගෙනහිර දිවාආලෝක වේලාව", "CDT": "උතුරු ඇමරිකානු මධ්\u200dයම දිවාආලෝක වේලාව", "PST": "උතුරු ඇමරිකානු පැසිෆික් සම්මත වේලාව", "WITA": "මධ්\u200dයම ඉන්දුනීසියානු වේලාව", "HKT": "හොංකොං සම්මත වේලාව", "HKST": "හොංකොං ග්\u200dරීෂ්ම වේලාව", "HEPMX": "මෙක්සිකෝ පැසිෆික් දිවාආලෝක වේලාව", "HAT": "නිව්ෆවුන්ලන්ත දිවාආලෝක වේලාව", "CLT": "චිලී සම්මත වේලාව"},
+ timezones: map[string]string{"AWST": "බටහිර ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "OESZ": "නැගෙනහිර යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "HEOG": "බටහිර ග්\u200dරීන්ලන්ත ග්\u200dරීෂ්ම කාලය", "MST": "උතුරු ඇමරිකානු කඳුකර සම්මත වේලාව", "UYST": "උරුගුවේ ග්\u200dරීෂ්ම කාලය", "HNCU": "කියුබානු සම්මත වේලාව", "WIB": "බටහිර ඉන්දුනීසියානු වේලාව", "CDT": "උතුරු ඇමරිකානු මධ්\u200dයම දිවාආලෝක වේලාව", "WAT": "බටහිර අප්\u200dරිකානු සම්මත වේලාව", "LHST": "ලෝර්ඩ් හෝව් සම්මත වේලාව", "HEPMX": "මෙක්සිකෝ පැසිෆික් දිවාආලෝක වේලාව", "BOT": "බොලිවියා වේලාව", "ACST": "ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "ACDT": "මධ්\u200dයම ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "AEDT": "නැඟෙනහිර ඕස්ට්\u200dරේලියානු දහවල් වේලාව", "WITA": "මධ්\u200dයම ඉන්දුනීසියානු වේලාව", "HNPM": "ශාන්ත පියරේ සහ මැකෝලන් සම්මත වේලාව", "MEZ": "මධ්\u200dයම යුරෝපීය සම්මත වේලාව", "EST": "උතුරු ඇමරිකානු නැගෙනහිර සම්මත වේලාව", "EDT": "උතුරු ඇමරිකානු නැගෙනහිර දිවාආලෝක වේලාව", "ART": "ආර්ජන්ටිනා සම්මත වේලාව", "BT": "භුතාන වේලාව", "ChST": "චමොරෝ වේලාව", "HAST": "හවායි-අලෙයුතියාන් සම්මත වේලාව", "JST": "ජපාන සම්මත වේලාව", "CLT": "චිලී සම්මත වේලාව", "COST": "කොලොම්බියා ග්\u200dරීෂ්ම කාලය", "JDT": "ජපාන දහවල් වේලාව", "MESZ": "මධ්\u200dයම යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "GMT": "ග්\u200dරිනිච් මධ්\u200dයම වේලාව", "ARST": "ආර්ජන්ටිනා ග්\u200dරීෂ්ම කාලය", "ECT": "ඉක්වදෝර් වේලාව", "NZDT": "නවසීලන්ත දිවා වේලාව", "AKDT": "ඇලස්කා දිවාආලෝක වේලාව", "PST": "උතුරු ඇමරිකානු පැසිෆික් සම්මත වේලාව", "WART": "බටහිර ආර්ජන්ටිනා සම්මත වේලාව", "WAST": "බටහිර අප්\u200dරිකානු ග්\u200dරීෂ්ම කාලය", "HKT": "හොංකොං සම්මත වේලාව", "PDT": "උතුරු ඇමරිකානු පැසිෆික් දිවාආලෝක වේලාව", "WEZ": "බටහිර යුරෝපීය සම්මත වේලාව", "WESZ": "බටහිර යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "TMT": "ටර්ක්මෙනිස්තාන සම්මත වේලාව", "TMST": "ටර්ක්මෙනිස්තාන ග්\u200dරීෂ්ම වේලාව", "HNT": "නිව්ෆවුන්ලන්ත සම්මත වේලාව", "MDT": "උතුරු ඇමරිකානු කඳුකර දිවාආලෝක වේලාව", "SAST": "දකුණු අප්\u200dරිකානු වේලාව", "WARST": "බටහිර ආර්ජන්ටිනා ග්\u200dරීෂ්ම කාලය", "COT": "කොලොම්බියා සම්මත වේලාව", "SRT": "සුරිනාම වේලාව", "HECU": "කියුබානු දිවාආලෝක වේලාව", "CHADT": "චැතම් දිවා වේලාව", "ACWST": "මධ්\u200dයම බටහිර ඔස්ට්\u200dරේලියානු සම්මත වේලාව", "HNEG": "නැගෙනහිර ග්\u200dරීන්ලන්ත සම්මත වේලාව", "AEST": "නැගෙනහිර ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "LHDT": "ලෝර්ඩ් හෝව් දිවා වේලාව", "WIT": "නැගෙනහිර ඉන්දුනීසියානු වේලාව", "ACWDT": "මධ්\u200dයම බටහිර ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "HKST": "හොංකොං ග්\u200dරීෂ්ම වේලාව", "HNNOMX": "වයඹ මෙක්සිකෝ සම්මත වේලාව", "GYT": "ගයනා වේලාව", "OEZ": "නැගෙනහිර යුරෝපීය සම්මත වේලාව", "HNOG": "බටහිර ග්\u200dරීන්ලන්ත සම්මත වේලාව", "ADT": "අත්ලාන්තික් දිවාආලෝක වේලාව", "HAT": "නිව්ෆවුන්ලන්ත දිවාආලෝක වේලාව", "GFT": "ප්\u200dරංශ ගයනා වේලාව", "AKST": "ඇලස්කා සම්මත වේලාව", "HEPM": "ශාන්ත පියරේ සහ මැකෝලන් දිවාආලෝක වේලාව", "NZST": "නවසීලන්ත සම්මත වේලාව", "CLST": "චිලී ග්\u200dරීෂ්ම කාලය", "AST": "අත්ලාන්තික් සම්මත වේලාව", "HEEG": "නැගෙනහිර ග්\u200dරීන්ලන්ත ග්\u200dරීෂ්ම කාලය", "∅∅∅": "∅∅∅", "HNPMX": "මෙක්සිකෝ පැසිෆික් සම්මත වේලාව", "CST": "උතුරු ඇමරිකානු මධ්\u200dයම සම්මත වේලාව", "CAT": "මධ්\u200dයම අප්\u200dරිකානු වේලාව", "UYT": "උරුගුවේ සම්මත වේලාව", "EAT": "නැගෙනහිර අප්\u200dරිකානු වේලාව", "SGT": "සිංගප්පුරු වේලාව", "CHAST": "චැතම් සම්මත වේලාව", "IST": "ඉන්දියානු වේලාව", "HENOMX": "වයඹ මෙක්සිකෝ දිවාආලෝක වේලාව", "AWDT": "බටහිර ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "HADT": "හවායි-අලෙයුතියාන් දිවාආලෝක වේලාව", "VET": "වෙනිසියුලා වේලාව", "MYT": "මැලේසියානු වේලාව"},
}
}
diff --git a/sk/sk.go b/sk/sk.go
index 027af59c..0e29f00f 100644
--- a/sk/sk.go
+++ b/sk/sk.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"pred Kr.", "po Kr."},
erasNarrow: []string{"", ""},
erasWide: []string{"pred Kristom", "po Kristovi"},
- timezones: map[string]string{"HEPM": "pierre-miquelonský letný čas", "GFT": "francúzskoguyanský čas", "HENOMX": "severozápadný mexický letný čas", "EST": "severoamerický východný štandardný čas", "CST": "severoamerický centrálny štandardný čas", "WIT": "východoindonézsky čas", "BT": "bhutánsky čas", "ARST": "argentínsky letný čas", "HNOG": "západogrónsky štandardný čas", "NZST": "novozélandský štandardný čas", "ChST": "chamorrský štandardný čas", "COST": "kolumbijský letný čas", "SRT": "surinamský čas", "WEZ": "západoeurópsky štandardný čas", "MEZ": "stredoeurópsky štandardný čas", "MESZ": "stredoeurópsky letný čas", "HNEG": "východogrónsky štandardný čas", "CAT": "stredoafrický čas", "WAT": "západoafrický štandardný čas", "EDT": "severoamerický východný letný čas", "MST": "MST", "UYST": "uruguajský letný čas", "HAST": "havajsko-aleutský štandardný čas", "WITA": "stredoindonézsky čas", "WARST": "západoargentínsky letný čas", "HECU": "kubánsky letný čas", "AKST": "aljašský štandardný čas", "AKDT": "aljašský letný čas", "HAT": "newfoundlandský letný čas", "SAST": "juhoafrický čas", "MYT": "malajzijský čas", "NZDT": "novozélandský letný čas", "CLT": "čilský štandardný čas", "EAT": "východoafrický čas", "MDT": "MDT", "VET": "venezuelský čas", "PDT": "severoamerický tichomorský letný čas", "ACWDT": "stredozápadný austrálsky letný čas", "HNT": "newfoundlandský štandardný čas", "AEST": "východoaustrálsky štandardný čas", "JDT": "japonský letný čas", "WAST": "západoafrický letný čas", "ART": "argentínsky štandardný čas", "AEDT": "východoaustrálsky letný čas", "OEZ": "východoeurópsky štandardný čas", "WART": "západoargentínsky štandardný čas", "CDT": "severoamerický centrálny letný čas", "GYT": "guyanský čas", "PST": "severoamerický tichomorský štandardný čas", "CHADT": "chathamský letný čas", "TMT": "turkménsky štandardný čas", "HNPMX": "mexický tichomorský štandardný čas", "WESZ": "západoeurópsky letný čas", "ACWST": "stredozápadný austrálsky štandardný čas", "TMST": "turkménsky letný čas", "HEOG": "západogrónsky letný čas", "COT": "kolumbijský štandardný čas", "UYT": "uruguajský štandardný čas", "AST": "atlantický štandardný čas", "AWDT": "západoaustrálsky letný čas", "HNPM": "pierre-miquelonský štandardný čas", "ACST": "stredoaustrálsky štandardný čas", "ECT": "ekvádorský čas", "HNNOMX": "severozápadný mexický štandardný čas", "GMT": "greenwichský čas", "SGT": "singapurský štandardný čas", "HKT": "hongkonský štandardný čas", "LHST": "štandardný čas ostrova lorda Howa", "LHDT": "letný čas ostrova lorda Howa", "CHAST": "chathamský štandardný čas", "JST": "japonský štandardný čas", "HEEG": "východogrónsky letný čas", "HEPMX": "mexický tichomorský letný čas", "WIB": "západoindonézsky čas", "CLST": "čilský letný čas", "∅∅∅": "amazonský letný čas", "BOT": "bolívijský čas", "ADT": "atlantický letný čas", "ACDT": "stredoaustrálsky letný čas", "OESZ": "východoeurópsky letný čas", "HNCU": "kubánsky štandardný čas", "IST": "indický čas", "HADT": "havajsko-aleutský letný čas", "AWST": "západoaustrálsky štandardný čas", "HKST": "hongkonský letný čas"},
+ timezones: map[string]string{"SAST": "juhoafrický čas", "HECU": "kubánsky letný čas", "ACWST": "stredozápadný austrálsky štandardný čas", "WARST": "západoargentínsky letný čas", "OESZ": "východoeurópsky letný čas", "HNEG": "východogrónsky štandardný čas", "GFT": "francúzskoguyanský čas", "CHADT": "chathamský letný čas", "HAST": "havajsko-aleutský štandardný čas", "JST": "japonský štandardný čas", "HENOMX": "severozápadný mexický letný čas", "CHAST": "chathamský štandardný čas", "AEST": "východoaustrálsky štandardný čas", "UYST": "uruguajský letný čas", "IST": "indický čas", "JDT": "japonský letný čas", "WAT": "západoafrický štandardný čas", "HKT": "hongkonský štandardný čas", "MEZ": "stredoeurópsky štandardný čas", "BT": "bhutánsky čas", "∅∅∅": "∅∅∅", "HEPM": "pierre-miquelonský letný čas", "LHST": "štandardný čas ostrova lorda Howa", "CDT": "severoamerický centrálny letný čas", "WIT": "východoindonézsky čas", "SGT": "singapurský štandardný čas", "EDT": "severoamerický východný letný čas", "HNNOMX": "severozápadný mexický štandardný čas", "UYT": "uruguajský štandardný čas", "HNPM": "pierre-miquelonský štandardný čas", "PDT": "severoamerický tichomorský letný čas", "HKST": "hongkonský letný čas", "ACST": "stredoaustrálsky štandardný čas", "COT": "kolumbijský štandardný čas", "TMST": "turkménsky letný čas", "WITA": "stredoindonézsky čas", "AKDT": "aljašský letný čas", "HNPMX": "mexický tichomorský štandardný čas", "AWDT": "západoaustrálsky letný čas", "ADT": "atlantický letný čas", "OEZ": "východoeurópsky štandardný čas", "WEZ": "západoeurópsky štandardný čas", "BOT": "bolívijský čas", "ACDT": "stredoaustrálsky letný čas", "HNT": "newfoundlandský štandardný čas", "HEEG": "východogrónsky letný čas", "HEPMX": "mexický tichomorský letný čas", "TMT": "turkménsky štandardný čas", "ART": "argentínsky štandardný čas", "EST": "severoamerický východný štandardný čas", "MST": "severoamerický horský štandardný čas", "SRT": "surinamský čas", "GYT": "guyanský čas", "ACWDT": "stredozápadný austrálsky letný čas", "LHDT": "letný čas ostrova lorda Howa", "ECT": "ekvádorský čas", "GMT": "greenwichský čas", "COST": "kolumbijský letný čas", "AEDT": "východoaustrálsky letný čas", "NZST": "novozélandský štandardný čas", "NZDT": "novozélandský letný čas", "AST": "atlantický štandardný čas", "EAT": "východoafrický čas", "WIB": "západoindonézsky čas", "CST": "severoamerický centrálny štandardný čas", "HADT": "havajsko-aleutský letný čas", "CLT": "čilský štandardný čas", "ARST": "argentínsky letný čas", "ChST": "chamorrský štandardný čas", "MESZ": "stredoeurópsky letný čas", "WART": "západoargentínsky štandardný čas", "HNOG": "západogrónsky štandardný čas", "WAST": "západoafrický letný čas", "AKST": "aljašský štandardný čas", "HNCU": "kubánsky štandardný čas", "CAT": "stredoafrický čas", "VET": "venezuelský čas", "CLST": "čilský letný čas", "HEOG": "západogrónsky letný čas", "WESZ": "západoeurópsky letný čas", "HAT": "newfoundlandský letný čas", "MDT": "severoamerický horský letný čas", "AWST": "západoaustrálsky štandardný čas", "PST": "severoamerický tichomorský štandardný čas", "MYT": "malajzijský čas"},
}
}
diff --git a/sk_SK/sk_SK.go b/sk_SK/sk_SK.go
index fee10ce2..2ef5ccb1 100644
--- a/sk_SK/sk_SK.go
+++ b/sk_SK/sk_SK.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"pred Kr.", "po Kr."},
erasNarrow: []string{"", ""},
erasWide: []string{"pred Kristom", "po Kristovi"},
- timezones: map[string]string{"AWDT": "západoaustrálsky letný čas", "CDT": "severoamerický centrálny letný čas", "AST": "atlantický štandardný čas", "WESZ": "západoeurópsky letný čas", "ACWDT": "stredozápadný austrálsky letný čas", "HNT": "newfoundlandský štandardný čas", "CHADT": "chathamský letný čas", "JDT": "japonský letný čas", "CAT": "stredoafrický čas", "WITA": "stredoindonézsky čas", "AEST": "východoaustrálsky štandardný čas", "CHAST": "chathamský štandardný čas", "HNPM": "pierre-miquelonský štandardný čas", "NZST": "novozélandský štandardný čas", "CST": "severoamerický centrálny štandardný čas", "WAT": "západoafrický štandardný čas", "COST": "kolumbijský letný čas", "HENOMX": "severozápadný mexický letný čas", "HEPMX": "mexický tichomorský letný čas", "ARST": "argentínsky letný čas", "HNOG": "západogrónsky štandardný čas", "MESZ": "stredoeurópsky letný čas", "OESZ": "východoeurópsky letný čas", "HNNOMX": "severozápadný mexický štandardný čas", "UYT": "uruguajský štandardný čas", "BT": "bhutánsky čas", "HKT": "hongkonský štandardný čas", "ChST": "chamorrský štandardný čas", "GYT": "guyanský čas", "UYST": "uruguajský letný čas", "MDT": "severoamerický horský letný čas", "WEZ": "západoeurópsky štandardný čas", "OEZ": "východoeurópsky štandardný čas", "TMT": "turkménsky štandardný čas", "WAST": "západoafrický letný čas", "AWST": "západoaustrálsky štandardný čas", "ACDT": "stredoaustrálsky letný čas", "EAT": "východoafrický čas", "COT": "kolumbijský štandardný čas", "MYT": "malajzijský čas", "MST": "severoamerický horský štandardný čas", "HEOG": "západogrónsky letný čas", "PDT": "severoamerický tichomorský letný čas", "HNEG": "východogrónsky štandardný čas", "SGT": "singapurský štandardný čas", "EST": "severoamerický východný štandardný čas", "HKST": "hongkonský letný čas", "AEDT": "východoaustrálsky letný čas", "HEPM": "pierre-miquelonský letný čas", "TMST": "turkménsky letný čas", "WARST": "západoargentínsky letný čas", "VET": "venezuelský čas", "WIT": "východoindonézsky čas", "NZDT": "novozélandský letný čas", "HAT": "newfoundlandský letný čas", "ECT": "ekvádorský čas", "WIB": "západoindonézsky čas", "HADT": "havajsko-aleutský letný čas", "SRT": "surinamský čas", "ADT": "atlantický letný čas", "HAST": "havajsko-aleutský štandardný čas", "PST": "severoamerický tichomorský štandardný čas", "GFT": "francúzskoguyanský čas", "IST": "indický čas", "WART": "západoargentínsky štandardný čas", "HECU": "kubánsky letný čas", "HNPMX": "mexický tichomorský štandardný čas", "AKST": "aljašský štandardný čas", "LHST": "štandardný čas ostrova lorda Howa", "ACST": "stredoaustrálsky štandardný čas", "GMT": "greenwichský čas", "MEZ": "stredoeurópsky štandardný čas", "SAST": "juhoafrický čas", "CLT": "čilský štandardný čas", "∅∅∅": "amazonský letný čas", "JST": "japonský štandardný čas", "ACWST": "stredozápadný austrálsky štandardný čas", "ART": "argentínsky štandardný čas", "LHDT": "letný čas ostrova lorda Howa", "BOT": "bolívijský čas", "EDT": "severoamerický východný letný čas", "AKDT": "aljašský letný čas", "CLST": "čilský letný čas", "HEEG": "východogrónsky letný čas", "HNCU": "kubánsky štandardný čas"},
+ timezones: map[string]string{"ACWST": "stredozápadný austrálsky štandardný čas", "TMST": "turkménsky letný čas", "WAST": "západoafrický letný čas", "AKDT": "aljašský letný čas", "HEPMX": "mexický tichomorský letný čas", "SAST": "juhoafrický čas", "SGT": "singapurský štandardný čas", "GMT": "greenwichský čas", "WARST": "západoargentínsky letný čas", "ADT": "atlantický letný čas", "BT": "bhutánsky čas", "HAT": "newfoundlandský letný čas", "HNPM": "pierre-miquelonský štandardný čas", "COT": "kolumbijský štandardný čas", "HNEG": "východogrónsky štandardný čas", "EDT": "severoamerický východný letný čas", "HENOMX": "severozápadný mexický letný čas", "AKST": "aljašský štandardný čas", "CST": "severoamerický centrálny štandardný čas", "AWDT": "západoaustrálsky letný čas", "AST": "atlantický štandardný čas", "ACST": "stredoaustrálsky štandardný čas", "EAT": "východoafrický čas", "PDT": "severoamerický tichomorský letný čas", "IST": "indický čas", "ACDT": "stredoaustrálsky letný čas", "HNT": "newfoundlandský štandardný čas", "ChST": "chamorrský štandardný čas", "WART": "západoargentínsky štandardný čas", "CLT": "čilský štandardný čas", "JDT": "japonský letný čas", "TMT": "turkménsky štandardný čas", "UYST": "uruguajský letný čas", "HNPMX": "mexický tichomorský štandardný čas", "JST": "japonský štandardný čas", "CLST": "čilský letný čas", "MDT": "MDT", "GFT": "francúzskoguyanský čas", "WITA": "stredoindonézsky čas", "GYT": "guyanský čas", "ACWDT": "stredozápadný austrálsky letný čas", "MYT": "malajzijský čas", "CAT": "stredoafrický čas", "VET": "venezuelský čas", "BOT": "bolívijský čas", "CHAST": "chathamský štandardný čas", "NZST": "novozélandský štandardný čas", "CDT": "severoamerický centrálny letný čas", "HEOG": "západogrónsky letný čas", "OEZ": "východoeurópsky štandardný čas", "HAST": "havajsko-aleutský štandardný čas", "MEZ": "stredoeurópsky štandardný čas", "COST": "kolumbijský letný čas", "∅∅∅": "azorský letný čas", "LHST": "štandardný čas ostrova lorda Howa", "CHADT": "chathamský letný čas", "MESZ": "stredoeurópsky letný čas", "WEZ": "západoeurópsky štandardný čas", "HNOG": "západogrónsky štandardný čas", "EST": "severoamerický východný štandardný čas", "HEPM": "pierre-miquelonský letný čas", "LHDT": "letný čas ostrova lorda Howa", "WIT": "východoindonézsky čas", "AWST": "západoaustrálsky štandardný čas", "PST": "severoamerický tichomorský štandardný čas", "ART": "argentínsky štandardný čas", "HADT": "havajsko-aleutský letný čas", "NZDT": "novozélandský letný čas", "ARST": "argentínsky letný čas", "HKT": "hongkonský štandardný čas", "AEST": "východoaustrálsky štandardný čas", "WIB": "západoindonézsky čas", "HNCU": "kubánsky štandardný čas", "HECU": "kubánsky letný čas", "MST": "MST", "WAT": "západoafrický štandardný čas", "HNNOMX": "severozápadný mexický štandardný čas", "AEDT": "východoaustrálsky letný čas", "SRT": "surinamský čas", "ECT": "ekvádorský čas", "WESZ": "západoeurópsky letný čas", "HEEG": "východogrónsky letný čas", "UYT": "uruguajský štandardný čas", "OESZ": "východoeurópsky letný čas", "HKST": "hongkonský letný čas"},
}
}
diff --git a/sl/sl.go b/sl/sl.go
index 19fd6123..22dfdb5a 100644
--- a/sl/sl.go
+++ b/sl/sl.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"pr. Kr.", "po Kr."},
erasNarrow: []string{"", ""},
erasWide: []string{"pred Kristusom", "po Kristusu"},
- timezones: map[string]string{"MEZ": "Srednjeevropski standardni čas", "BOT": "Bolivijski čas", "SGT": "Singapurski standardni čas", "EDT": "Vzhodni poletni čas", "ACWST": "Avstralski centralni zahodni standardni čas", "HKST": "Hongkonški poletni čas", "WITA": "Indonezijski osrednji čas", "AWDT": "Avstralski zahodni poletni čas", "AEDT": "Avstralski vzhodni poletni čas", "CLT": "Čilski standardni čas", "HECU": "Kubanski poletni čas", "ARST": "Argentinski poletni čas", "JST": "Japonski standardni čas", "WAST": "Zahodnoafriški poletni čas", "COT": "Kolumbijski standardni čas", "AKDT": "Aljaški poletni čas", "WIT": "Indonezijski vzhodni čas", "HAT": "Novofundlandski poletni čas", "HKT": "Hongkonški standardni čas", "NZST": "Novozelandski standardni čas", "CHAST": "Čatamski standardni čas", "AST": "Atlantski standardni čas", "UYST": "Urugvajski poletni čas", "SAST": "Južnoafriški čas", "GFT": "Čas: Francoska Gvajana", "HNPMX": "mehiški pacifiški standardni čas", "CDT": "Centralni poletni čas", "HNOG": "Zahodnogrenlandski standardni čas", "JDT": "Japonski poletni čas", "TMT": "Turkmenistanski standardni čas", "ChST": "Čamorski standardni čas", "HNT": "Novofundlandski standardni čas", "EAT": "Vzhodnoafriški čas", "MDT": "MDT", "HEEG": "Vzhodnogrenlandski poletni čas", "WAT": "Zahodnoafriški standardni čas", "WART": "Argentinski zahodni standardni čas", "AKST": "Aljaški standardni čas", "ART": "Argentinski standardni čas", "AEST": "Avstralski vzhodni standardni čas", "LHST": "Standardni čas otoka Lord Howe", "∅∅∅": "Amazonski poletni čas", "BT": "Butanski čas", "CST": "Centralni standardni čas", "NZDT": "Novozelandski poletni čas", "HENOMX": "mehiški severozahodni poletni čas", "EST": "Vzhodni standardni čas", "MST": "MST", "COST": "Kolumbijski poletni čas", "HAST": "Havajski aleutski standardni čas", "HADT": "Havajski aleutski poletni čas", "HEOG": "Zahodnogrenlandski poletni čas", "WEZ": "Zahodnoevropski standardni čas", "AWST": "Avstralski zahodni standardni čas", "TMST": "Turkmenistanski poletni čas", "CLST": "Čilski poletni čas", "ACST": "Avstralski centralni standardni čas", "HEPMX": "mehiški pacifiški poletni čas", "UYT": "Urugvajski standardni čas", "CAT": "Centralnoafriški čas", "ADT": "Atlantski poletni čas", "GYT": "Gvajanski čas", "WESZ": "Zahodnoevropski poletni čas", "HEPM": "Poletni čas: Saint Pierre in Miquelon", "CHADT": "Čatamski poletni čas", "IST": "Indijski standardni čas", "ECT": "Ekvadorski čas", "WARST": "Argentinski zahodni poletni čas", "PDT": "Pacifiški poletni čas", "LHDT": "Poletni čas otoka Lord Howe", "HNNOMX": "mehiški severozahodni standardni čas", "VET": "Venezuelski čas", "GMT": "Greenwiški srednji čas", "WIB": "Indonezijski zahodni čas", "SRT": "Surinamski čas", "ACWDT": "Avstralski centralni zahodni poletni čas", "HNPM": "Standardni čas: Saint Pierre in Miquelon", "MESZ": "Srednjeevropski poletni čas", "OESZ": "Vzhodnoevropski poletni čas", "HNCU": "Kubanski standardni čas", "MYT": "Malezijski čas", "PST": "Pacifiški standardni čas", "HNEG": "Vzhodnogrenlandski standardni čas", "ACDT": "Avstralski centralni poletni čas", "OEZ": "Vzhodnoevropski standardni čas"},
+ timezones: map[string]string{"SRT": "Surinamski čas", "HAST": "Havajski aleutski standardni čas", "HADT": "Havajski aleutski poletni čas", "OESZ": "Vzhodnoevropski poletni čas", "ChST": "Čamorski standardni čas", "EDT": "Vzhodni poletni čas", "HNPMX": "mehiški pacifiški standardni čas", "AWST": "Avstralski zahodni standardni čas", "ADT": "Atlantski poletni čas", "MST": "MST", "WARST": "Argentinski zahodni poletni čas", "HNOG": "Zahodnogrenlandski standardni čas", "∅∅∅": "∅∅∅", "EAT": "Vzhodnoafriški čas", "NZST": "Novozelandski standardni čas", "JDT": "Japonski poletni čas", "WESZ": "Zahodnoevropski poletni čas", "AKDT": "Aljaški poletni čas", "HNCU": "Kubanski standardni čas", "AEST": "Avstralski vzhodni standardni čas", "AEDT": "Avstralski vzhodni poletni čas", "HENOMX": "mehiški severozahodni poletni čas", "CDT": "Centralni poletni čas", "TMT": "Turkmenistanski standardni čas", "MDT": "MDT", "PDT": "Pacifiški poletni čas", "ACWDT": "Avstralski centralni zahodni poletni čas", "ART": "Argentinski standardni čas", "HNPM": "Standardni čas: Saint Pierre in Miquelon", "COT": "Kolumbijski standardni čas", "OEZ": "Vzhodnoevropski standardni čas", "TMST": "Turkmenistanski poletni čas", "ACST": "Avstralski centralni standardni čas", "HNEG": "Vzhodnogrenlandski standardni čas", "HEEG": "Vzhodnogrenlandski poletni čas", "AKST": "Aljaški standardni čas", "UYT": "Urugvajski standardni čas", "SGT": "Singapurski standardni čas", "JST": "Japonski standardni čas", "CLST": "Čilski poletni čas", "IST": "Indijski standardni čas", "EST": "Vzhodni standardni čas", "HAT": "Novofundlandski poletni čas", "BOT": "Bolivijski čas", "VET": "Venezuelski čas", "MEZ": "Srednjeevropski standardni čas", "WAT": "Zahodnoafriški standardni čas", "ACDT": "Avstralski centralni poletni čas", "HNT": "Novofundlandski standardni čas", "WIT": "Indonezijski vzhodni čas", "CAT": "Centralnoafriški čas", "MESZ": "Srednjeevropski poletni čas", "HEOG": "Zahodnogrenlandski poletni čas", "ARST": "Argentinski poletni čas", "GFT": "Čas: Francoska Gvajana", "HEPM": "Poletni čas: Saint Pierre in Miquelon", "LHDT": "Poletni čas otoka Lord Howe", "HEPMX": "mehiški pacifiški poletni čas", "CHADT": "Čatamski poletni čas", "GMT": "Greenwiški srednji čas", "AST": "Atlantski standardni čas", "NZDT": "Novozelandski poletni čas", "CLT": "Čilski standardni čas", "WITA": "Indonezijski osrednji čas", "UYST": "Urugvajski poletni čas", "LHST": "Standardni čas otoka Lord Howe", "CHAST": "Čatamski standardni čas", "WEZ": "Zahodnoevropski standardni čas", "MYT": "Malezijski čas", "GYT": "Gvajanski čas", "WIB": "Indonezijski zahodni čas", "ACWST": "Avstralski centralni zahodni standardni čas", "HKST": "Hongkonški poletni čas", "HNNOMX": "mehiški severozahodni standardni čas", "WAST": "Zahodnoafriški poletni čas", "BT": "Butanski čas", "AWDT": "Avstralski zahodni poletni čas", "PST": "Pacifiški standardni čas", "ECT": "Ekvadorski čas", "WART": "Argentinski zahodni standardni čas", "HKT": "Hongkonški standardni čas", "CST": "Centralni standardni čas", "COST": "Kolumbijski poletni čas", "SAST": "Južnoafriški čas", "HECU": "Kubanski poletni čas"},
}
}
diff --git a/sl_SI/sl_SI.go b/sl_SI/sl_SI.go
index f3aa7ffd..d968037f 100644
--- a/sl_SI/sl_SI.go
+++ b/sl_SI/sl_SI.go
@@ -75,7 +75,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"pr. Kr.", "po Kr."},
erasNarrow: []string{"", ""},
erasWide: []string{"pred Kristusom", "po Kristusu"},
- timezones: map[string]string{"HENOMX": "mehiški severozahodni poletni čas", "HNCU": "Kubanski standardni čas", "HNPMX": "mehiški pacifiški standardni čas", "AEDT": "Avstralski vzhodni poletni čas", "GFT": "Čas: Francoska Gvajana", "EST": "Vzhodni standardni čas", "UYST": "Urugvajski poletni čas", "HNPM": "Standardni čas: Saint Pierre in Miquelon", "IST": "Indijski standardni čas", "BOT": "Bolivijski čas", "CST": "Centralni standardni čas", "CDT": "Centralni poletni čas", "AKST": "Aljaški standardni čas", "WITA": "Indonezijski osrednji čas", "NZST": "Novozelandski standardni čas", "PST": "Pacifiški standardni čas", "ECT": "Ekvadorski čas", "WAST": "Zahodnoafriški poletni čas", "COT": "Kolumbijski standardni čas", "MST": "MST", "MDT": "MDT", "ADT": "Atlantski poletni čas", "ACST": "Avstralski centralni standardni čas", "HECU": "Kubanski poletni čas", "AST": "Atlantski standardni čas", "LHDT": "Poletni čas otoka Lord Howe", "NZDT": "Novozelandski poletni čas", "CLT": "Čilski standardni čas", "HNEG": "Vzhodnogrenlandski standardni čas", "EAT": "Vzhodnoafriški čas", "AWST": "Avstralski zahodni standardni čas", "CLST": "Čilski poletni čas", "WAT": "Zahodnoafriški standardni čas", "WART": "Argentinski zahodni standardni čas", "UYT": "Urugvajski standardni čas", "HAST": "Havajski aleutski standardni čas", "HNT": "Novofundlandski standardni čas", "WEZ": "Zahodnoevropski standardni čas", "ChST": "Čamorski standardni čas", "HEEG": "Vzhodnogrenlandski poletni čas", "CAT": "Centralnoafriški čas", "ART": "Argentinski standardni čas", "SAST": "Južnoafriški čas", "OESZ": "Vzhodnoevropski poletni čas", "COST": "Kolumbijski poletni čas", "GYT": "Gvajanski čas", "AWDT": "Avstralski zahodni poletni čas", "CHADT": "Čatamski poletni čas", "MEZ": "Srednjeevropski standardni čas", "WARST": "Argentinski zahodni poletni čas", "WIB": "Indonezijski zahodni čas", "SRT": "Surinamski čas", "HEPM": "Poletni čas: Saint Pierre in Miquelon", "JST": "Japonski standardni čas", "EDT": "Vzhodni poletni čas", "BT": "Butanski čas", "ACWST": "Avstralski centralni zahodni standardni čas", "LHST": "Standardni čas otoka Lord Howe", "AEST": "Avstralski vzhodni standardni čas", "HKT": "Hongkonški standardni čas", "ACDT": "Avstralski centralni poletni čas", "∅∅∅": "Perujski poletni čas", "VET": "Venezuelski čas", "WIT": "Indonezijski vzhodni čas", "HAT": "Novofundlandski poletni čas", "HEOG": "Zahodnogrenlandski poletni čas", "HKST": "Hongkonški poletni čas", "TMST": "Turkmenistanski poletni čas", "GMT": "Greenwiški srednji čas", "HADT": "Havajski aleutski poletni čas", "CHAST": "Čatamski standardni čas", "OEZ": "Vzhodnoevropski standardni čas", "MYT": "Malezijski čas", "AKDT": "Aljaški poletni čas", "ARST": "Argentinski poletni čas", "JDT": "Japonski poletni čas", "TMT": "Turkmenistanski standardni čas", "HEPMX": "mehiški pacifiški poletni čas", "HNOG": "Zahodnogrenlandski standardni čas", "WESZ": "Zahodnoevropski poletni čas", "HNNOMX": "mehiški severozahodni standardni čas", "SGT": "Singapurski standardni čas", "PDT": "Pacifiški poletni čas", "ACWDT": "Avstralski centralni zahodni poletni čas", "MESZ": "Srednjeevropski poletni čas"},
+ timezones: map[string]string{"AWST": "Avstralski zahodni standardni čas", "JDT": "Japonski poletni čas", "GMT": "Greenwiški srednji čas", "OEZ": "Vzhodnoevropski standardni čas", "WITA": "Indonezijski osrednji čas", "LHST": "Standardni čas otoka Lord Howe", "HAST": "Havajski aleutski standardni čas", "HADT": "Havajski aleutski poletni čas", "ACWDT": "Avstralski centralni zahodni poletni čas", "MEZ": "Srednjeevropski standardni čas", "UYST": "Urugvajski poletni čas", "GYT": "Gvajanski čas", "IST": "Indijski standardni čas", "EST": "Vzhodni standardni čas", "COT": "Kolumbijski standardni čas", "ChST": "Čamorski standardni čas", "HNPM": "Standardni čas: Saint Pierre in Miquelon", "HEPM": "Poletni čas: Saint Pierre in Miquelon", "MESZ": "Srednjeevropski poletni čas", "WARST": "Argentinski zahodni poletni čas", "HNEG": "Vzhodnogrenlandski standardni čas", "SAST": "Južnoafriški čas", "HAT": "Novofundlandski poletni čas", "HEEG": "Vzhodnogrenlandski poletni čas", "BOT": "Bolivijski čas", "WESZ": "Zahodnoevropski poletni čas", "WAST": "Zahodnoafriški poletni čas", "EDT": "Vzhodni poletni čas", "ACST": "Avstralski centralni standardni čas", "HNT": "Novofundlandski standardni čas", "HECU": "Kubanski poletni čas", "CDT": "Centralni poletni čas", "AWDT": "Avstralski zahodni poletni čas", "CAT": "Centralnoafriški čas", "VET": "Venezuelski čas", "ACDT": "Avstralski centralni poletni čas", "UYT": "Urugvajski standardni čas", "LHDT": "Poletni čas otoka Lord Howe", "MYT": "Malezijski čas", "AST": "Atlantski standardni čas", "HENOMX": "mehiški severozahodni poletni čas", "NZDT": "Novozelandski poletni čas", "MDT": "MDT", "BT": "Butanski čas", "GFT": "Čas: Francoska Gvajana", "AKST": "Aljaški standardni čas", "HNPMX": "mehiški pacifiški standardni čas", "HNCU": "Kubanski standardni čas", "ACWST": "Avstralski centralni zahodni standardni čas", "HKST": "Hongkonški poletni čas", "CST": "Centralni standardni čas", "ECT": "Ekvadorski čas", "ART": "Argentinski standardni čas", "WAT": "Zahodnoafriški standardni čas", "AKDT": "Aljaški poletni čas", "HEPMX": "mehiški pacifiški poletni čas", "EAT": "Vzhodnoafriški čas", "PDT": "Pacifiški poletni čas", "NZST": "Novozelandski standardni čas", "∅∅∅": "Amazonski poletni čas", "ADT": "Atlantski poletni čas", "COST": "Kolumbijski poletni čas", "WIB": "Indonezijski zahodni čas", "CHAST": "Čatamski standardni čas", "HNOG": "Zahodnogrenlandski standardni čas", "HEOG": "Zahodnogrenlandski poletni čas", "OESZ": "Vzhodnoevropski poletni čas", "TMST": "Turkmenistanski poletni čas", "AEST": "Avstralski vzhodni standardni čas", "WIT": "Indonezijski vzhodni čas", "CHADT": "Čatamski poletni čas", "PST": "Pacifiški standardni čas", "CLST": "Čilski poletni čas", "TMT": "Turkmenistanski standardni čas", "HNNOMX": "mehiški severozahodni standardni čas", "AEDT": "Avstralski vzhodni poletni čas", "SGT": "Singapurski standardni čas", "WEZ": "Zahodnoevropski standardni čas", "MST": "MST", "ARST": "Argentinski poletni čas", "HKT": "Hongkonški standardni čas", "JST": "Japonski standardni čas", "WART": "Argentinski zahodni standardni čas", "CLT": "Čilski standardni čas", "SRT": "Surinamski čas"},
}
}
diff --git a/smn/smn.go b/smn/smn.go
index de185c4c..2e555ae7 100644
--- a/smn/smn.go
+++ b/smn/smn.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"oKr.", "mKr."},
erasNarrow: []string{"", ""},
erasWide: []string{"Ovdil Kristus šoddâm", "maŋa Kristus šoddâm"},
- timezones: map[string]string{"AST": "AST", "VET": "VET", "ARST": "ARST", "LHDT": "LHDT", "COST": "COST", "JDT": "JDT", "WIT": "WIT", "PDT": "PDT", "WEZ": "WEZ", "WESZ": "WESZ", "NZST": "NZST", "GMT": "GMT", "HNCU": "HNCU", "CLT": "CLT", "HEEG": "HEEG", "TMT": "TMT", "TMST": "TMST", "COT": "COT", "HAST": "HAST", "NZDT": "NZDT", "EDT": "EDT", "AEDT": "AEDT", "HNPM": "HNPM", "WAT": "WAT", "MDT": "MDT", "UYST": "UYST", "CST": "CST", "PST": "PST", "AEST": "AEST", "WAST": "WAST", "LHST": "LHST", "∅∅∅": "∅∅∅", "EAT": "EAT", "MST": "MST", "SRT": "SRT", "ART": "ART", "HKST": "HKST", "WITA": "WITA", "HNPMX": "HNPMX", "CDT": "CDT", "BT": "BT", "HECU": "HECU", "AWDT": "AWDT", "SAST": "SAST", "JST": "JST", "EST": "EST", "UYT": "UYT", "AKST": "AKST", "HNOG": "HNOG", "ACWST": "ACWST", "ChST": "ChST", "CAT": "CAT", "ECT": "ECT", "HENOMX": "HENOMX", "AKDT": "AKDT", "HADT": "HADT", "HEOG": "HEOG", "MESZ": "MESZ", "ACDT": "ACDT", "OEZ": "OEZ", "WART": "WART", "WARST": "WARST", "MYT": "MYT", "WIB": "WIB", "HNT": "HNT", "HAT": "HAT", "CHAST": "CHAST", "ACWDT": "ACWDT", "HEPM": "HEPM", "SGT": "SGT", "GFT": "GFT", "HEPMX": "HEPMX", "ADT": "ADT", "AWST": "AWST", "HKT": "HKT", "HNEG": "HNEG", "CHADT": "CHADT", "BOT": "BOT", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "GYT": "GYT", "MEZ": "MEZ", "IST": "IST", "CLST": "CLST", "ACST": "ACST"},
+ timezones: map[string]string{"VET": "VET", "WAST": "WAST", "COT": "COT", "WITA": "WITA", "HNCU": "HNCU", "MYT": "MYT", "TMT": "TMT", "UYT": "UYT", "UYST": "UYST", "HNPM": "HNPM", "IST": "IST", "ACDT": "ACDT", "COST": "COST", "GYT": "GYT", "HECU": "HECU", "PST": "PST", "PDT": "PDT", "NZST": "NZST", "JST": "JST", "WART": "WART", "ADT": "ADT", "WEZ": "WEZ", "ARST": "ARST", "WAT": "WAT", "HKT": "HKT", "HNNOMX": "HNNOMX", "SAST": "SAST", "OEZ": "OEZ", "LHDT": "LHDT", "WIT": "WIT", "HNT": "HNT", "CST": "CST", "JDT": "JDT", "TMST": "TMST", "ACST": "ACST", "AKST": "AKST", "OESZ": "OESZ", "HKST": "HKST", "BT": "BT", "CDT": "CDT", "HADT": "HADT", "HNOG": "HNOG", "HAT": "HAT", "AEDT": "AEDT", "HNPMX": "HNPMX", "EAT": "EAT", "ACWST": "ACWST", "∅∅∅": "∅∅∅", "MEZ": "MEZ", "WARST": "WARST", "WESZ": "WESZ", "HNEG": "HNEG", "HEPM": "HEPM", "LHST": "LHST", "AWST": "AWST", "AWDT": "AWDT", "NZDT": "NZDT", "MDT": "MDT", "EST": "EST", "GFT": "GFT", "ChST": "ChST", "ECT": "ECT", "CAT": "CAT", "CLT": "CLT", "HEOG": "HEOG", "MST": "MST", "HEPMX": "HEPMX", "BOT": "BOT", "MESZ": "MESZ", "GMT": "GMT", "CLST": "CLST", "AST": "AST", "ART": "ART", "HEEG": "HEEG", "SRT": "SRT", "WIB": "WIB", "CHADT": "CHADT", "HAST": "HAST", "HENOMX": "HENOMX", "AKDT": "AKDT", "CHAST": "CHAST", "ACWDT": "ACWDT", "EDT": "EDT", "AEST": "AEST", "SGT": "SGT"},
}
}
diff --git a/smn_FI/smn_FI.go b/smn_FI/smn_FI.go
index c65ce98f..0228b65a 100644
--- a/smn_FI/smn_FI.go
+++ b/smn_FI/smn_FI.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"oKr.", "mKr."},
erasNarrow: []string{"", ""},
erasWide: []string{"Ovdil Kristus šoddâm", "maŋa Kristus šoddâm"},
- timezones: map[string]string{"HNOG": "HNOG", "WIT": "WIT", "BOT": "BOT", "AKST": "AKST", "ACWDT": "ACWDT", "NZDT": "NZDT", "MEZ": "MEZ", "IST": "IST", "∅∅∅": "∅∅∅", "CAT": "CAT", "COST": "COST", "NZST": "NZST", "CHAST": "CHAST", "HKT": "HKT", "MESZ": "MESZ", "TMST": "TMST", "SRT": "SRT", "HAT": "HAT", "WAT": "WAT", "HAST": "HAST", "HKST": "HKST", "HNEG": "HNEG", "TMT": "TMT", "EAT": "EAT", "GYT": "GYT", "WEZ": "WEZ", "CHADT": "CHADT", "JDT": "JDT", "ACDT": "ACDT", "HEPMX": "HEPMX", "ART": "ART", "HNPM": "HNPM", "CDT": "CDT", "HENOMX": "HENOMX", "AKDT": "AKDT", "JST": "JST", "MDT": "MDT", "UYT": "UYT", "HNT": "HNT", "AEST": "AEST", "WARST": "WARST", "HEOG": "HEOG", "LHST": "LHST", "HEPM": "HEPM", "GMT": "GMT", "ARST": "ARST", "AWDT": "AWDT", "HNNOMX": "HNNOMX", "WART": "WART", "SGT": "SGT", "BT": "BT", "OEZ": "OEZ", "AEDT": "AEDT", "CLST": "CLST", "WAST": "WAST", "OESZ": "OESZ", "ECT": "ECT", "COT": "COT", "WESZ": "WESZ", "AWST": "AWST", "MYT": "MYT", "MST": "MST", "EDT": "EDT", "WITA": "WITA", "LHDT": "LHDT", "HEEG": "HEEG", "CST": "CST", "ADT": "ADT", "UYST": "UYST", "ACWST": "ACWST", "PDT": "PDT", "VET": "VET", "ChST": "ChST", "ACST": "ACST", "HNCU": "HNCU", "HNPMX": "HNPMX", "EST": "EST", "AST": "AST", "CLT": "CLT", "GFT": "GFT", "WIB": "WIB", "HADT": "HADT", "HECU": "HECU", "PST": "PST", "SAST": "SAST"},
+ timezones: map[string]string{"ECT": "ECT", "ARST": "ARST", "CLT": "CLT", "ACDT": "ACDT", "UYT": "UYT", "HEPMX": "HEPMX", "BOT": "BOT", "CHAST": "CHAST", "MYT": "MYT", "WAT": "WAT", "HNCU": "HNCU", "HECU": "HECU", "CDT": "CDT", "HADT": "HADT", "WARST": "WARST", "LHST": "LHST", "AWST": "AWST", "MESZ": "MESZ", "CLST": "CLST", "HEOG": "HEOG", "HKT": "HKT", "WITA": "WITA", "ChST": "ChST", "WAST": "WAST", "TMT": "TMT", "ACWDT": "ACWDT", "WEZ": "WEZ", "HENOMX": "HENOMX", "WIT": "WIT", "AWDT": "AWDT", "NZST": "NZST", "NZDT": "NZDT", "JDT": "JDT", "AST": "AST", "COT": "COT", "AKDT": "AKDT", "GYT": "GYT", "CST": "CST", "ACWST": "ACWST", "VET": "VET", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "HNPMX": "HNPMX", "OEZ": "OEZ", "AEST": "AEST", "EAT": "EAT", "CHADT": "CHADT", "SRT": "SRT", "WIB": "WIB", "JST": "JST", "ADT": "ADT", "ACST": "ACST", "BT": "BT", "HNPM": "HNPM", "HEEG": "HEEG", "UYST": "UYST", "SAST": "SAST", "PST": "PST", "CAT": "CAT", "EDT": "EDT", "HAT": "HAT", "HNEG": "HNEG", "WESZ": "WESZ", "ART": "ART", "OESZ": "OESZ", "WART": "WART", "TMST": "TMST", "EST": "EST", "AKST": "AKST", "HAST": "HAST", "SGT": "SGT", "IST": "IST", "GMT": "GMT", "HKST": "HKST", "COST": "COST", "∅∅∅": "∅∅∅", "MST": "MST", "GFT": "GFT", "MEZ": "MEZ", "LHDT": "LHDT", "PDT": "PDT", "HNOG": "HNOG", "HNT": "HNT", "AEDT": "AEDT", "MDT": "MDT"},
}
}
diff --git a/sn/sn.go b/sn/sn.go
index c3fc978f..841e8fe0 100644
--- a/sn/sn.go
+++ b/sn/sn.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kristo asati auya", "mugore ramambo vedu"},
- timezones: map[string]string{"AKST": "AKST", "ART": "ART", "NZDT": "NZDT", "SAST": "SAST", "ACDT": "ACDT", "HECU": "HECU", "GMT": "GMT", "HEPMX": "HEPMX", "HEOG": "HEOG", "NZST": "NZST", "CAT": "CAT", "EAT": "EAT", "HNNOMX": "HNNOMX", "CST": "CST", "HNOG": "HNOG", "ChST": "ChST", "TMT": "TMT", "ECT": "ECT", "SGT": "SGT", "ADT": "ADT", "PST": "PST", "HNT": "HNT", "AEST": "AEST", "OESZ": "OESZ", "COT": "COT", "HENOMX": "HENOMX", "ACST": "ACST", "OEZ": "OEZ", "EDT": "EDT", "SRT": "SRT", "AWST": "AWST", "AWDT": "AWDT", "WITA": "WITA", "JST": "JST", "WART": "WART", "HNEG": "HNEG", "MYT": "MYT", "WIB": "WIB", "ACWDT": "ACWDT", "HAT": "HAT", "HKST": "HKST", "HNPM": "HNPM", "LHDT": "LHDT", "HEEG": "HEEG", "WIT": "WIT", "MEZ": "MEZ", "CLT": "CLT", "WAST": "WAST", "HAST": "HAST", "TMST": "TMST", "AKDT": "AKDT", "ACWST": "ACWST", "MESZ": "MESZ", "BOT": "BOT", "COST": "COST", "MDT": "MDT", "GYT": "GYT", "WEZ": "WEZ", "WESZ": "WESZ", "CHADT": "CHADT", "WARST": "WARST", "HNCU": "HNCU", "HNPMX": "HNPMX", "∅∅∅": "∅∅∅", "GFT": "GFT", "WAT": "WAT", "EST": "EST", "HEPM": "HEPM", "LHST": "LHST", "CHAST": "CHAST", "CLST": "CLST", "BT": "BT", "MST": "MST", "UYT": "UYT", "CDT": "CDT", "HADT": "HADT", "JDT": "JDT", "UYST": "UYST", "PDT": "PDT", "ARST": "ARST", "VET": "VET", "AEDT": "AEDT", "HKT": "HKT", "IST": "IST", "AST": "AST"},
+ timezones: map[string]string{"WIB": "WIB", "ADT": "ADT", "GMT": "GMT", "MST": "MST", "COST": "COST", "HNNOMX": "HNNOMX", "UYT": "UYT", "BOT": "BOT", "MESZ": "MESZ", "HEEG": "HEEG", "CHADT": "CHADT", "HEOG": "HEOG", "COT": "COT", "AWDT": "AWDT", "EST": "EST", "ACDT": "ACDT", "HNPMX": "HNPMX", "CST": "CST", "WIT": "WIT", "SGT": "SGT", "CLST": "CLST", "ACST": "ACST", "HENOMX": "HENOMX", "HNOG": "HNOG", "AKST": "AKST", "LHDT": "LHDT", "GYT": "GYT", "HECU": "HECU", "HADT": "HADT", "WEZ": "WEZ", "ART": "ART", "GFT": "GFT", "HNCU": "HNCU", "VET": "VET", "OESZ": "OESZ", "WART": "WART", "CAT": "CAT", "AST": "AST", "TMT": "TMT", "HKST": "HKST", "HAT": "HAT", "HNPM": "HNPM", "ECT": "ECT", "ChST": "ChST", "SAST": "SAST", "LHST": "LHST", "CDT": "CDT", "WAT": "WAT", "WITA": "WITA", "HEPMX": "HEPMX", "IST": "IST", "ACWST": "ACWST", "WARST": "WARST", "CLT": "CLT", "TMST": "TMST", "WAST": "WAST", "HNT": "HNT", "AWST": "AWST", "PST": "PST", "ACWDT": "ACWDT", "NZST": "NZST", "NZDT": "NZDT", "MEZ": "MEZ", "JDT": "JDT", "MYT": "MYT", "EDT": "EDT", "∅∅∅": "∅∅∅", "PDT": "PDT", "HAST": "HAST", "JST": "JST", "WESZ": "WESZ", "ARST": "ARST", "UYST": "UYST", "HEPM": "HEPM", "EAT": "EAT", "MDT": "MDT", "HKT": "HKT", "BT": "BT", "AKDT": "AKDT", "AEST": "AEST", "SRT": "SRT", "CHAST": "CHAST", "OEZ": "OEZ", "HNEG": "HNEG", "AEDT": "AEDT"},
}
}
diff --git a/sn_ZW/sn_ZW.go b/sn_ZW/sn_ZW.go
index 837d019b..eccab32f 100644
--- a/sn_ZW/sn_ZW.go
+++ b/sn_ZW/sn_ZW.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kristo asati auya", "mugore ramambo vedu"},
- timezones: map[string]string{"WART": "WART", "HNCU": "HNCU", "EST": "EST", "UYT": "UYT", "BT": "BT", "ACWST": "ACWST", "CLST": "CLST", "HENOMX": "HENOMX", "WAST": "WAST", "CST": "CST", "AST": "AST", "AWDT": "AWDT", "TMST": "TMST", "BOT": "BOT", "AEDT": "AEDT", "CHADT": "CHADT", "LHST": "LHST", "∅∅∅": "∅∅∅", "WIT": "WIT", "CHAST": "CHAST", "ACDT": "ACDT", "HEOG": "HEOG", "HAST": "HAST", "HKST": "HKST", "EDT": "EDT", "MST": "MST", "COST": "COST", "UYST": "UYST", "WIB": "WIB", "ARST": "ARST", "AEST": "AEST", "HEPM": "HEPM", "CAT": "CAT", "EAT": "EAT", "HEEG": "HEEG", "GFT": "GFT", "ACST": "ACST", "NZDT": "NZDT", "JST": "JST", "JDT": "JDT", "OESZ": "OESZ", "SGT": "SGT", "GYT": "GYT", "HNOG": "HNOG", "MEZ": "MEZ", "CLT": "CLT", "ChST": "ChST", "VET": "VET", "WEZ": "WEZ", "WITA": "WITA", "HNEG": "HNEG", "AKDT": "AKDT", "OEZ": "OEZ", "PDT": "PDT", "AWST": "AWST", "SAST": "SAST", "WAT": "WAT", "ART": "ART", "HKT": "HKT", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "CDT": "CDT", "SRT": "SRT", "ACWDT": "ACWDT", "HNT": "HNT", "MDT": "MDT", "ADT": "ADT", "LHDT": "LHDT", "TMT": "TMT", "HECU": "HECU", "WARST": "WARST", "MYT": "MYT", "HAT": "HAT", "HNPM": "HNPM", "NZST": "NZST", "GMT": "GMT", "AKST": "AKST", "COT": "COT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "HADT": "HADT", "PST": "PST", "WESZ": "WESZ", "IST": "IST", "ECT": "ECT"},
+ timezones: map[string]string{"AWDT": "AWDT", "ACWST": "ACWST", "JST": "JST", "WIT": "WIT", "WAT": "WAT", "EST": "EST", "ACST": "ACST", "BT": "BT", "HADT": "HADT", "CAT": "CAT", "WESZ": "WESZ", "TMT": "TMT", "IST": "IST", "HNT": "HNT", "AKDT": "AKDT", "HAST": "HAST", "EDT": "EDT", "HNNOMX": "HNNOMX", "UYT": "UYT", "LHST": "LHST", "AWST": "AWST", "BOT": "BOT", "MEZ": "MEZ", "AST": "AST", "HNEG": "HNEG", "WITA": "WITA", "AEDT": "AEDT", "SAST": "SAST", "HNPMX": "HNPMX", "EAT": "EAT", "VET": "VET", "HKST": "HKST", "HNCU": "HNCU", "HNPM": "HNPM", "SRT": "SRT", "ACWDT": "ACWDT", "WARST": "WARST", "MDT": "MDT", "ECT": "ECT", "ARST": "ARST", "PST": "PST", "ADT": "ADT", "OESZ": "OESZ", "UYST": "UYST", "WIB": "WIB", "CHAST": "CHAST", "NZDT": "NZDT", "CLT": "CLT", "HNOG": "HNOG", "GMT": "GMT", "WAST": "WAST", "HEPM": "HEPM", "JDT": "JDT", "WEZ": "WEZ", "ART": "ART", "HECU": "HECU", "NZST": "NZST", "CLST": "CLST", "OEZ": "OEZ", "COT": "COT", "ChST": "ChST", "∅∅∅": "∅∅∅", "GYT": "GYT", "MESZ": "MESZ", "MYT": "MYT", "ACDT": "ACDT", "GFT": "GFT", "AKST": "AKST", "HEPMX": "HEPMX", "PDT": "PDT", "MST": "MST", "HKT": "HKT", "LHDT": "LHDT", "CHADT": "CHADT", "HAT": "HAT", "HEEG": "HEEG", "AEST": "AEST", "WART": "WART", "TMST": "TMST", "HENOMX": "HENOMX", "CST": "CST", "CDT": "CDT", "SGT": "SGT", "HEOG": "HEOG", "COST": "COST"},
}
}
diff --git a/so/so.go b/so/so.go
index 0f7b15af..89d51891 100644
--- a/so/so.go
+++ b/so/so.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"CK", "CD"},
erasNarrow: []string{"", ""},
erasWide: []string{"CK", "CD"},
- timezones: map[string]string{"UYT": "UYT", "BT": "BT", "HEOG": "HEOG", "NZDT": "NZDT", "TMT": "TMT", "OEZ": "OEZ", "COST": "Waqtiyada Xagaaga Kolambiya", "MDT": "MDT", "HEPM": "HEPM", "GMT": "GMT", "SGT": "SGT", "WITA": "WITA", "PDT": "PDT", "WART": "WART", "HAST": "HAST", "JST": "JST", "HEEG": "HEEG", "GFT": "GFT", "CAT": "CAT", "ART": "ART", "AKDT": "AKDT", "WIT": "WIT", "MST": "MST", "UYST": "UYST", "ACWST": "ACWST", "HAT": "HAT", "ARST": "ARST", "AEST": "AEST", "AWDT": "AWDT", "HNNOMX": "HNNOMX", "GYT": "GYT", "VET": "VET", "MESZ": "MESZ", "LHDT": "LHDT", "NZST": "NZST", "WAT": "WAT", "ADT": "ADT", "IST": "IST", "EAT": "EAT", "CST": "CST", "HADT": "HADT", "WESZ": "WESZ", "HKT": "HKT", "HNPM": "HNPM", "SAST": "SAST", "JDT": "JDT", "BOT": "BOT", "WIB": "WIB", "OESZ": "OESZ", "WAST": "WAST", "MEZ": "MEZ", "CHAST": "CHAST", "HECU": "HECU", "HNT": "HNT", "HNOG": "HNOG", "AEDT": "AEDT", "CLT": "CLT", "TMST": "TMST", "ACST": "ACST", "WARST": "WARST", "PST": "PST", "AST": "AST", "WEZ": "WEZ", "HKST": "HKST", "LHST": "LHST", "ChST": "ChST", "HNEG": "HNEG", "EDT": "EDT", "HEPMX": "HEPMX", "CLST": "CLST", "HENOMX": "HENOMX", "HNCU": "HNCU", "EST": "EST", "SRT": "SRT", "CHADT": "CHADT", "ACDT": "ACDT", "MYT": "MYT", "AKST": "AKST", "AWST": "AWST", "ECT": "ECT", "COT": "Waqtiyada Caadiga ah ee kolambiya", "HNPMX": "HNPMX", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "CDT": "CDT"},
+ timezones: map[string]string{"MDT": "MDT", "AKST": "AKST", "JDT": "JDT", "WEZ": "WEZ", "WESZ": "WESZ", "EDT": "EDT", "HKST": "HKST", "HENOMX": "HENOMX", "HAT": "HAT", "AWDT": "AWDT", "TMT": "TMT", "ACST": "ACST", "GYT": "GYT", "AWST": "AWST", "IST": "IST", "MEZ": "MEZ", "OEZ": "OEZ", "OESZ": "OESZ", "TMST": "TMST", "HNPMX": "HNPMX", "WITA": "WITA", "CST": "CST", "CHADT": "CHADT", "SGT": "SGT", "NZST": "NZST", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "HAST": "HAST", "MYT": "MYT", "WAT": "WAT", "HNPM": "HNPM", "LHDT": "LHDT", "HECU": "HECU", "CHAST": "CHAST", "ACWST": "ACWST", "CLST": "CLST", "HEOG": "HEOG", "HNT": "HNT", "GMT": "GMT", "WART": "WART", "WARST": "WARST", "CLT": "CLT", "AKDT": "AKDT", "GFT": "GFT", "SAST": "SAST", "LHST": "LHST", "HEPMX": "HEPMX", "HADT": "HADT", "MESZ": "MESZ", "JST": "JST", "BT": "BT", "HKT": "HKT", "CAT": "CAT", "AST": "AST", "ART": "ART", "ChST": "ChST", "ACWDT": "ACWDT", "VET": "VET", "EST": "EST", "UYT": "UYT", "EAT": "EAT", "WIT": "WIT", "BOT": "BOT", "HNOG": "HNOG", "SRT": "SRT", "AEDT": "AEDT", "UYST": "UYST", "COST": "Waqtiyada Xagaaga Kolambiya", "CDT": "CDT", "ARST": "ARST", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "WIB": "WIB", "PDT": "PDT", "ACDT": "ACDT", "HEEG": "HEEG", "AEST": "AEST", "MST": "MST", "ECT": "ECT", "NZDT": "NZDT", "WAST": "WAST", "COT": "Waqtiyada Caadiga ah ee kolambiya", "PST": "PST", "ADT": "ADT", "HEPM": "HEPM"},
}
}
diff --git a/so_DJ/so_DJ.go b/so_DJ/so_DJ.go
index c75e3403..3bab1f69 100644
--- a/so_DJ/so_DJ.go
+++ b/so_DJ/so_DJ.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"CK", "CD"},
erasNarrow: []string{"", ""},
erasWide: []string{"CK", "CD"},
- timezones: map[string]string{"MST": "MST", "UYT": "UYT", "UYST": "UYST", "ARST": "ARST", "ART": "ART", "HEOG": "HEOG", "HKT": "HKT", "CLST": "CLST", "JDT": "JDT", "EAT": "EAT", "HEPMX": "HEPMX", "AKST": "AKST", "SRT": "SRT", "ACWST": "ACWST", "HNOG": "HNOG", "WEZ": "WEZ", "BOT": "BOT", "GFT": "GFT", "EST": "EST", "AEDT": "AEDT", "IST": "IST", "ACDT": "ACDT", "HENOMX": "HENOMX", "ADT": "ADT", "NZST": "NZST", "NZDT": "NZDT", "CAT": "CAT", "COST": "Waqtiyada Xagaaga Kolambiya", "EDT": "EDT", "HADT": "HADT", "WITA": "WITA", "LHST": "LHST", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "HECU": "HECU", "HNPMX": "HNPMX", "CST": "CST", "ACWDT": "ACWDT", "AEST": "AEST", "HNPM": "HNPM", "TMT": "TMT", "OEZ": "OEZ", "WARST": "WARST", "COT": "Waqtiyada Caadiga ah ee kolambiya", "WIB": "WIB", "BT": "BT", "PST": "PST", "CHADT": "CHADT", "WAST": "WAST", "WART": "WART", "WIT": "WIT", "HAT": "HAT", "ChST": "ChST", "SGT": "SGT", "VET": "VET", "HKST": "HKST", "MESZ": "MESZ", "ACST": "ACST", "OESZ": "OESZ", "ECT": "ECT", "CLT": "CLT", "HNCU": "HNCU", "AKDT": "AKDT", "HNT": "HNT", "AWST": "AWST", "MEZ": "MEZ", "LHDT": "LHDT", "CHAST": "CHAST", "SAST": "SAST", "∅∅∅": "∅∅∅", "MDT": "MDT", "CDT": "CDT", "GYT": "GYT", "HAST": "HAST", "WESZ": "WESZ", "HEPM": "HEPM", "JST": "JST", "HNEG": "HNEG", "TMST": "TMST", "GMT": "GMT", "AST": "AST", "MYT": "MYT", "PDT": "PDT", "AWDT": "AWDT", "WAT": "WAT"},
+ timezones: map[string]string{"SRT": "SRT", "HNCU": "HNCU", "HAST": "HAST", "PDT": "PDT", "ADT": "ADT", "HEPMX": "HEPMX", "MESZ": "MESZ", "EDT": "EDT", "LHDT": "LHDT", "CLST": "CLST", "HKST": "HKST", "AKST": "AKST", "HECU": "HECU", "PST": "PST", "NZST": "NZST", "IST": "IST", "JST": "JST", "EAT": "EAT", "BOT": "BOT", "GMT": "GMT", "OEZ": "OEZ", "WAST": "WAST", "WART": "WART", "COST": "Waqtiyada Xagaaga Kolambiya", "HNPMX": "HNPMX", "AST": "AST", "ARST": "ARST", "HKT": "HKT", "ChST": "ChST", "HADT": "HADT", "ECT": "ECT", "∅∅∅": "∅∅∅", "HEOG": "HEOG", "HAT": "HAT", "AEST": "AEST", "UYST": "UYST", "SGT": "SGT", "NZDT": "NZDT", "CAT": "CAT", "WAT": "WAT", "UYT": "UYT", "VET": "VET", "WARST": "WARST", "TMST": "TMST", "WITA": "WITA", "HENOMX": "HENOMX", "ACST": "ACST", "GFT": "GFT", "LHST": "LHST", "WESZ": "WESZ", "HNNOMX": "HNNOMX", "GYT": "GYT", "CDT": "CDT", "CHAST": "CHAST", "ACWDT": "ACWDT", "HNEG": "HNEG", "HEEG": "HEEG", "MST": "MST", "ACDT": "ACDT", "AEDT": "AEDT", "AWDT": "AWDT", "ACWST": "ACWST", "MEZ": "MEZ", "OESZ": "OESZ", "COT": "Waqtiyada Caadiga ah ee kolambiya", "HEPM": "HEPM", "CST": "CST", "WIT": "WIT", "TMT": "TMT", "EST": "EST", "BT": "BT", "AKDT": "AKDT", "HNOG": "HNOG", "HNT": "HNT", "WIB": "WIB", "CHADT": "CHADT", "JDT": "JDT", "WEZ": "WEZ", "MYT": "MYT", "SAST": "SAST", "AWST": "AWST", "CLT": "CLT", "MDT": "MDT", "ART": "ART", "HNPM": "HNPM"},
}
}
diff --git a/so_ET/so_ET.go b/so_ET/so_ET.go
index 4a607b4a..f00b135c 100644
--- a/so_ET/so_ET.go
+++ b/so_ET/so_ET.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"CK", "CD"},
erasNarrow: []string{"", ""},
erasWide: []string{"CK", "CD"},
- timezones: map[string]string{"∅∅∅": "∅∅∅", "ACWST": "ACWST", "MESZ": "MESZ", "CHADT": "CHADT", "ACDT": "ACDT", "GMT": "GMT", "HAST": "HAST", "AWDT": "AWDT", "NZST": "NZST", "TMST": "TMST", "JST": "JST", "HNEG": "HNEG", "ECT": "ECT", "COT": "Waqtiyada Caadiga ah ee kolambiya", "HENOMX": "HENOMX", "HNCU": "HNCU", "HNPMX": "HNPMX", "BT": "BT", "SAST": "SAST", "HECU": "HECU", "HEPMX": "HEPMX", "CST": "CST", "SRT": "SRT", "ACWDT": "ACWDT", "HAT": "HAT", "CHAST": "CHAST", "ACST": "ACST", "WIT": "WIT", "AEST": "AEST", "IST": "IST", "BOT": "BOT", "ART": "ART", "WART": "WART", "EST": "EST", "MDT": "MDT", "AST": "AST", "VET": "VET", "WEZ": "WEZ", "HNT": "HNT", "HNPM": "HNPM", "GFT": "GFT", "HNNOMX": "HNNOMX", "NZDT": "NZDT", "CAT": "CAT", "WAT": "WAT", "EDT": "EDT", "CDT": "CDT", "UYT": "UYT", "UYST": "UYST", "CLT": "CLT", "LHDT": "LHDT", "OEZ": "OEZ", "WARST": "WARST", "SGT": "SGT", "ADT": "ADT", "HADT": "HADT", "HEOG": "HEOG", "AWST": "AWST", "JDT": "JDT", "AKST": "AKST", "PDT": "PDT", "WITA": "WITA", "HEPM": "HEPM", "ChST": "ChST", "WAST": "WAST", "AKDT": "AKDT", "HKT": "HKT", "COST": "Waqtiyada Xagaaga Kolambiya", "AEDT": "AEDT", "TMT": "TMT", "MST": "MST", "WIB": "WIB", "PST": "PST", "MEZ": "MEZ", "HEEG": "HEEG", "OESZ": "OESZ", "GYT": "GYT", "WESZ": "WESZ", "HNOG": "HNOG", "HKST": "HKST", "EAT": "EAT", "MYT": "MYT", "ARST": "ARST", "LHST": "LHST", "CLST": "CLST"},
+ timezones: map[string]string{"WAT": "WAT", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "SAST": "SAST", "HECU": "HECU", "ECT": "ECT", "JDT": "JDT", "OEZ": "OEZ", "AWST": "AWST", "TMST": "TMST", "HKT": "HKT", "GFT": "GFT", "HNCU": "HNCU", "HAST": "HAST", "ARST": "ARST", "HKST": "HKST", "HNT": "HNT", "HEPMX": "HEPMX", "WIB": "WIB", "ART": "ART", "COT": "Waqtiyada Caadiga ah ee kolambiya", "MST": "MST", "WITA": "WITA", "HADT": "HADT", "JST": "JST", "EDT": "EDT", "HNPM": "HNPM", "EAT": "EAT", "NZDT": "NZDT", "CAT": "CAT", "VET": "VET", "ACST": "ACST", "BT": "BT", "HEPM": "HEPM", "AWDT": "AWDT", "MEZ": "MEZ", "MYT": "MYT", "CLST": "CLST", "EST": "EST", "HNEG": "HNEG", "UYST": "UYST", "HNPMX": "HNPMX", "CHADT": "CHADT", "IST": "IST", "AST": "AST", "HEEG": "HEEG", "AEST": "AEST", "LHDT": "LHDT", "GYT": "GYT", "CHAST": "CHAST", "PST": "PST", "ACWST": "ACWST", "WAST": "WAST", "COST": "Waqtiyada Xagaaga Kolambiya", "UYT": "UYT", "SGT": "SGT", "HNOG": "HNOG", "CLT": "CLT", "AKST": "AKST", "SRT": "SRT", "LHST": "LHST", "CDT": "CDT", "MESZ": "MESZ", "GMT": "GMT", "WARST": "WARST", "TMT": "TMT", "MDT": "MDT", "BOT": "BOT", "ACDT": "ACDT", "ACWDT": "ACWDT", "HEOG": "HEOG", "WESZ": "WESZ", "AEDT": "AEDT", "PDT": "PDT", "NZST": "NZST", "OESZ": "OESZ", "ChST": "ChST", "CST": "CST", "WART": "WART", "HAT": "HAT", "WIT": "WIT", "ADT": "ADT", "WEZ": "WEZ", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX"},
}
}
diff --git a/so_KE/so_KE.go b/so_KE/so_KE.go
index 8b7d29a1..c408a203 100644
--- a/so_KE/so_KE.go
+++ b/so_KE/so_KE.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"CK", "CD"},
erasNarrow: []string{"", ""},
erasWide: []string{"CK", "CD"},
- timezones: map[string]string{"HNEG": "HNEG", "HEEG": "HEEG", "ADT": "ADT", "IST": "IST", "JST": "JST", "∅∅∅": "∅∅∅", "JDT": "JDT", "AKST": "AKST", "CST": "CST", "GYT": "GYT", "CLT": "CLT", "CLST": "CLST", "TMST": "TMST", "OESZ": "OESZ", "WARST": "WARST", "SGT": "SGT", "WIB": "WIB", "HAST": "HAST", "ARST": "ARST", "AWDT": "AWDT", "BT": "BT", "UYT": "UYT", "HADT": "HADT", "SRT": "SRT", "HAT": "HAT", "MEZ": "MEZ", "EDT": "EDT", "VET": "VET", "ChST": "ChST", "EST": "EST", "EAT": "EAT", "WAT": "WAT", "MST": "MST", "HNPMX": "HNPMX", "WIT": "WIT", "HNPM": "HNPM", "CAT": "CAT", "WART": "WART", "OEZ": "OEZ", "WEZ": "WEZ", "HKST": "HKST", "WITA": "WITA", "BOT": "BOT", "GFT": "GFT", "HNNOMX": "HNNOMX", "PST": "PST", "ART": "ART", "ACDT": "ACDT", "COST": "Waqtiyada Xagaaga Kolambiya", "HENOMX": "HENOMX", "HNCU": "HNCU", "PDT": "PDT", "LHST": "LHST", "MYT": "MYT", "HEPM": "HEPM", "NZDT": "NZDT", "LHDT": "LHDT", "GMT": "GMT", "HEPMX": "HEPMX", "ACWST": "ACWST", "AEDT": "AEDT", "CHADT": "CHADT", "TMT": "TMT", "WAST": "WAST", "MDT": "MDT", "ACWDT": "ACWDT", "MESZ": "MESZ", "CHAST": "CHAST", "SAST": "SAST", "COT": "Waqtiyada Caadiga ah ee kolambiya", "HNOG": "HNOG", "AWST": "AWST", "NZST": "NZST", "AKDT": "AKDT", "CDT": "CDT", "AST": "AST", "WESZ": "WESZ", "HKT": "HKT", "AEST": "AEST", "ACST": "ACST", "ECT": "ECT", "HECU": "HECU", "UYST": "UYST", "HNT": "HNT", "HEOG": "HEOG"},
+ timezones: map[string]string{"WAST": "WAST", "EST": "EST", "AEDT": "AEDT", "ACWST": "ACWST", "WIB": "WIB", "PST": "PST", "ECT": "ECT", "ADT": "ADT", "WEZ": "WEZ", "COST": "Waqtiyada Xagaaga Kolambiya", "UYST": "UYST", "BOT": "BOT", "HADT": "HADT", "VET": "VET", "AST": "AST", "OEZ": "OEZ", "WITA": "WITA", "HEPM": "HEPM", "CST": "CST", "AWST": "AWST", "SGT": "SGT", "HNOG": "HNOG", "MDT": "MDT", "ART": "ART", "EDT": "EDT", "SAST": "SAST", "HNT": "HNT", "HAT": "HAT", "ACDT": "ACDT", "CAT": "CAT", "HENOMX": "HENOMX", "HEEG": "HEEG", "AWDT": "AWDT", "EAT": "EAT", "CDT": "CDT", "WIT": "WIT", "HAST": "HAST", "NZST": "NZST", "AKST": "AKST", "HNPMX": "HNPMX", "LHST": "LHST", "∅∅∅": "∅∅∅", "GYT": "GYT", "ACWDT": "ACWDT", "GMT": "GMT", "CLST": "CLST", "ChST": "ChST", "OESZ": "OESZ", "WART": "WART", "JST": "JST", "ARST": "ARST", "PDT": "PDT", "MESZ": "MESZ", "MST": "MST", "HKT": "HKT", "ACST": "ACST", "HNPM": "HNPM", "HEOG": "HEOG", "WAT": "WAT", "HKST": "HKST", "HNNOMX": "HNNOMX", "BT": "BT", "HEPMX": "HEPMX", "HECU": "HECU", "CLT": "CLT", "AKDT": "AKDT", "AEST": "AEST", "SRT": "SRT", "CHADT": "CHADT", "NZDT": "NZDT", "TMT": "TMT", "TMST": "TMST", "LHDT": "LHDT", "CHAST": "CHAST", "MEZ": "MEZ", "JDT": "JDT", "MYT": "MYT", "WARST": "WARST", "COT": "Waqtiyada Caadiga ah ee kolambiya", "UYT": "UYT", "IST": "IST", "WESZ": "WESZ", "HNEG": "HNEG", "GFT": "GFT", "HNCU": "HNCU"},
}
}
diff --git a/so_SO/so_SO.go b/so_SO/so_SO.go
index 355d0acb..644fb8ec 100644
--- a/so_SO/so_SO.go
+++ b/so_SO/so_SO.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"CK", "CD"},
erasNarrow: []string{"", ""},
erasWide: []string{"CK", "CD"},
- timezones: map[string]string{"AKST": "AKST", "ACWDT": "ACWDT", "WITA": "WITA", "BOT": "BOT", "HEPMX": "HEPMX", "EAT": "EAT", "AKDT": "AKDT", "HADT": "HADT", "JST": "JST", "JDT": "JDT", "PDT": "PDT", "ACST": "ACST", "COT": "Waqtiyada Caadiga ah ee kolambiya", "ADT": "ADT", "GYT": "GYT", "SRT": "SRT", "HNT": "HNT", "AEST": "AEST", "HEPM": "HEPM", "HNCU": "HNCU", "CDT": "CDT", "CHADT": "CHADT", "WAT": "WAT", "UYT": "UYT", "WESZ": "WESZ", "AWDT": "AWDT", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "TMST": "TMST", "BT": "BT", "SAST": "SAST", "CAT": "CAT", "ACWST": "ACWST", "ART": "ART", "HECU": "HECU", "MST": "MST", "HNNOMX": "HNNOMX", "EDT": "EDT", "UYST": "UYST", "WIT": "WIT", "HKST": "HKST", "AEDT": "AEDT", "TMT": "TMT", "ACDT": "ACDT", "AWST": "AWST", "OESZ": "OESZ", "COST": "Waqtiyada Xagaaga Kolambiya", "GFT": "GFT", "WAST": "WAST", "HEOG": "HEOG", "ChST": "ChST", "SGT": "SGT", "PST": "PST", "WEZ": "WEZ", "HNEG": "HNEG", "WARST": "WARST", "AST": "AST", "VET": "VET", "HNOG": "HNOG", "CLT": "CLT", "WART": "WART", "MEZ": "MEZ", "CLST": "CLST", "WIB": "WIB", "MDT": "MDT", "MYT": "MYT", "HKT": "HKT", "HNPM": "HNPM", "NZST": "NZST", "CHAST": "CHAST", "ECT": "ECT", "GMT": "GMT", "HAT": "HAT", "LHST": "LHST", "LHDT": "LHDT", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "OEZ": "OEZ", "EST": "EST", "CST": "CST", "HAST": "HAST", "ARST": "ARST", "NZDT": "NZDT", "IST": "IST", "HEEG": "HEEG"},
+ timezones: map[string]string{"BOT": "BOT", "CAT": "CAT", "HNPM": "HNPM", "HNPMX": "HNPMX", "SAST": "SAST", "PST": "PST", "HAST": "HAST", "AST": "AST", "WAST": "WAST", "HNT": "HNT", "AEDT": "AEDT", "JDT": "JDT", "HEPM": "HEPM", "HEPMX": "HEPMX", "HECU": "HECU", "WIB": "WIB", "SGT": "SGT", "ECT": "ECT", "PDT": "PDT", "HKST": "HKST", "ChST": "ChST", "UYST": "UYST", "WIT": "WIT", "MESZ": "MESZ", "OESZ": "OESZ", "MST": "MST", "ART": "ART", "BT": "BT", "CDT": "CDT", "ACST": "ACST", "AKDT": "AKDT", "HNCU": "HNCU", "NZST": "NZST", "ACWDT": "ACWDT", "CLST": "CLST", "ARST": "ARST", "GFT": "GFT", "SRT": "SRT", "ACWST": "ACWST", "MEZ": "MEZ", "HNOG": "HNOG", "TMT": "TMT", "GYT": "GYT", "AKST": "AKST", "UYT": "UYT", "JST": "JST", "GMT": "GMT", "CLT": "CLT", "HKT": "HKT", "ACDT": "ACDT", "HNEG": "HNEG", "EAT": "EAT", "CHAST": "CHAST", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "COT": "Waqtiyada Caadiga ah ee kolambiya", "HNNOMX": "HNNOMX", "AWST": "AWST", "VET": "VET", "WARST": "WARST", "OEZ": "OEZ", "MDT": "MDT", "LHDT": "LHDT", "AWDT": "AWDT", "WEZ": "WEZ", "WESZ": "WESZ", "WAT": "WAT", "COST": "Waqtiyada Xagaaga Kolambiya", "WITA": "WITA", "LHST": "LHST", "ADT": "ADT", "EDT": "EDT", "HENOMX": "HENOMX", "CST": "CST", "IST": "IST", "MYT": "MYT", "HADT": "HADT", "WART": "WART", "HAT": "HAT", "AEST": "AEST", "NZDT": "NZDT", "HEOG": "HEOG", "TMST": "TMST", "EST": "EST", "HEEG": "HEEG"},
}
}
diff --git a/sq/sq.go b/sq/sq.go
index afd36536..a816c7d8 100644
--- a/sq/sq.go
+++ b/sq/sq.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"p.K.", "mb.K."},
erasNarrow: []string{"p.K.", "mb.K."},
erasWide: []string{"para Krishtit", "mbas Krishtit"},
- timezones: map[string]string{"WIT": "Ora e Indonezisë Lindore", "WEZ": "Ora standarde e Evropës Perëndimore", "JDT": "Ora verore e Japonisë", "HNEG": "Ora standarde e Grenlandës Lindore", "TMT": "Ora standarde e Turkmenistanit", "ACST": "Ora standarde e Australisë Qendrore", "OEZ": "Ora standarde e Evropës Lindore", "HENOMX": "Ora verore e Meksikës Veriperëndimore", "ARST": "Ora verore e Argjentinës", "WITA": "Ora e Indonezisë Qendrore", "TMST": "Ora verore e Turkmenistanit", "CAT": "Ora e Afrikës Qendrore", "EAT": "Ora e Afrikës Lindore", "COT": "Ora standarde e Kolumbisë", "HAST": "Ora standarde e Ishujve Hauai-Aleutian", "CHAST": "Ora standarde e Katamit", "WAST": "Ora verore e Afrikës Perëndimore", "HNNOMX": "Ora standarde e Meksikës Veriperëndimore", "EST": "Ora standarde e SHBA-së Lindore", "GYT": "Ora e Guajanës", "UYST": "Ora verore e Uruguait", "AEDT": "Ora verore e Australisë Lindore", "BOT": "Ora e Bolivisë", "HNCU": "Ora standarde e Kubës", "EDT": "Ora verore e SHBA-së Lindore", "CDT": "Ora verore e SHBA-së Qendrore", "WESZ": "Ora verore e Evropës Perëndimore", "HNT": "Ora standarde e Njufaundlendit [Tokës së Re]", "GMT": "Ora e Meridianit të Grinuiçit", "UYT": "Ora standarde e Uruguait", "ACWST": "Ora standarde e Australisë Qendroro-Perëndimore", "CHADT": "Ora verore e Katamit", "GFT": "Ora e Guajanës Franceze", "AST": "Ora standarde e Atlantikut", "HNPM": "Ora standarde e Shën-Pier dhe Mikuelon", "NZST": "Ora standarde e Zelandës së Re", "∅∅∅": "Ora verore e Amazonës", "HEEG": "Ora verore e Grenlandës Lindore", "HEPMX": "Ora verore meksikane e Bregut të Paqësorit", "LHDT": "Ora verore e Lord-Houit", "SAST": "Ora standarde e Afrikës Jugore", "ChST": "Ora e Kamorros", "HNPMX": "Ora standarde meksikane e Bregut të Paqësorit", "HADT": "Ora verore e Ishujve Hauai-Aleutian", "PDT": "Ora verore amerikane e Bregut të Paqësorit", "ACDT": "Ora verore e Australisë Qendrore", "MST": "Ora standarde e Makaos", "COST": "Ora verore e Kolumbisë", "HECU": "Ora verore e Kubës", "HAT": "Ora verore e Njufaundlendit [Tokës së Re]", "HEPM": "Ora verore e Shën-Pier dhe Mikuelon", "WARST": "Ora verore e Argjentinës Perëndimore", "SGT": "Ora e Singaporit", "CST": "Ora standarde e SHBA-së Qendrore", "BT": "Ora e Butanit", "PST": "Ora standarde amerikane e Bregut të Paqësorit", "VET": "Ora e Venezuelës", "MESZ": "Ora verore e Evropës Qendrore", "NZDT": "Ora verore e Zelandës së Re", "ACWDT": "Ora verore e Australisë Qendroro-Perëndimore", "LHST": "Ora standarde e Lord-Houit", "IST": "Ora standarde e Indisë", "WAT": "Ora standarde e Afrikës Perëndimore", "OESZ": "Ora verore e Evropës Lindore", "AKDT": "Ora verore e Alsaskës", "MYT": "Ora e Malajzisë", "SRT": "Ora e Surinamit", "JST": "Ora standarde e Japonisë", "HNOG": "Ora standarde e Grenlandës Perëndimore", "HKT": "Ora standarde e Hong-Kongut", "CLST": "Ora verore e Kilit", "AKST": "Ora standarde e Alaskës", "ADT": "Ora verore e Atlantikut", "ART": "Ora standarde e Argjentinës", "AWDT": "Ora verore e Australisë Perëndimore", "AEST": "Ora standarde e Australisë Lindore", "AWST": "Ora standarde e Australisë Perëndimore", "CLT": "Ora standarde e Kilit", "ECT": "Ora e Ekuadorit", "WART": "Ora standarde e Argjentinës Perëndimore", "MDT": "Ora verore e Makaos", "WIB": "Ora e Indonezisë Perëndimore", "HEOG": "Ora verore e Grenlandës Perëndimore", "HKST": "Ora verore e Hong-Kongut", "MEZ": "Ora standarde e Evropës Qendrore"},
+ timezones: map[string]string{"HADT": "Ora verore e Ishujve Hauai-Aleutian", "HNNOMX": "Ora standarde e Meksikës Veriperëndimore", "ACST": "Ora standarde e Australisë Qendrore", "HAT": "Ora verore e Njufaundlendit [Tokës së Re]", "HEPMX": "Ora verore meksikane e Bregut të Paqësorit", "AWDT": "Ora verore e Australisë Perëndimore", "HNOG": "Ora standarde e Grenlandës Perëndimore", "HEOG": "Ora verore e Grenlandës Perëndimore", "ART": "Ora standarde e Argjentinës", "COT": "Ora standarde e Kolumbisë", "ACWST": "Ora standarde e Australisë Qendroro-Perëndimore", "CLST": "Ora verore e Kilit", "OEZ": "Ora standarde e Evropës Lindore", "TMST": "Ora verore e Turkmenistanit", "IST": "Ora standarde e Indisë", "OESZ": "Ora verore e Evropës Lindore", "AEST": "Ora standarde e Australisë Lindore", "GFT": "Ora e Guajanës Franceze", "WITA": "Ora e Indonezisë Qendrore", "NZDT": "Ora verore e Zelandës së Re", "UYT": "Ora standarde e Uruguait", "HNCU": "Ora standarde e Kubës", "HECU": "Ora verore e Kubës", "WARST": "Ora verore e Argjentinës Perëndimore", "MDT": "Ora verore e Makaos", "ARST": "Ora verore e Argjentinës", "EDT": "Ora verore e SHBA-së Lindore", "HEEG": "Ora verore e Grenlandës Lindore", "WIT": "Ora e Indonezisë Lindore", "AWST": "Ora standarde e Australisë Perëndimore", "PST": "Ora standarde amerikane e Bregut të Paqësorit", "MEZ": "Ora standarde e Evropës Qendrore", "GMT": "Ora e Meridianit të Grinuiçit", "UYST": "Ora verore e Uruguait", "MYT": "Ora e Malajzisë", "AEDT": "Ora verore e Australisë Lindore", "ChST": "Ora e Kamorros", "SRT": "Ora e Surinamit", "VET": "Ora e Venezuelës", "ACWDT": "Ora verore e Australisë Qendroro-Perëndimore", "WEZ": "Ora standarde e Evropës Perëndimore", "AST": "Ora standarde e Atlantikut", "WIB": "Ora e Indonezisë Perëndimore", "CHAST": "Ora standarde e Katamit", "HAST": "Ora standarde e Ishujve Hauai-Aleutian", "JDT": "Ora verore e Japonisë", "HKT": "Ora standarde e Hong-Kongut", "AKDT": "Ora verore e Alsaskës", "HNPMX": "Ora standarde meksikane e Bregut të Paqësorit", "LHST": "Ora standarde e Lord-Houit", "NZST": "Ora standarde e Zelandës së Re", "SGT": "Ora e Singaporit", "HENOMX": "Ora verore e Meksikës Veriperëndimore", "HNEG": "Ora standarde e Grenlandës Lindore", "HNT": "Ora standarde e Njufaundlendit [Tokës së Re]", "SAST": "Ora standarde e Afrikës Jugore", "GYT": "Ora e Guajanës", "HNPM": "Ora standarde e Shën-Pier dhe Mikuelon", "WART": "Ora standarde e Argjentinës Perëndimore", "ADT": "Ora verore e Atlantikut", "MST": "Ora standarde e Makaos", "HKST": "Ora verore e Hong-Kongut", "EST": "Ora standarde e SHBA-së Lindore", "∅∅∅": "Ora verore e Ejkrit [Ako]", "EAT": "Ora e Afrikës Lindore", "ECT": "Ora e Ekuadorit", "WESZ": "Ora verore e Evropës Perëndimore", "CLT": "Ora standarde e Kilit", "COST": "Ora verore e Kolumbisë", "AKST": "Ora standarde e Alaskës", "LHDT": "Ora verore e Lord-Houit", "JST": "Ora standarde e Japonisë", "MESZ": "Ora verore e Evropës Qendrore", "ACDT": "Ora verore e Australisë Qendrore", "BT": "Ora e Butanit", "HEPM": "Ora verore e Shën-Pier dhe Mikuelon", "CDT": "Ora verore e SHBA-së Qendrore", "PDT": "Ora verore amerikane e Bregut të Paqësorit", "CHADT": "Ora verore e Katamit", "CAT": "Ora e Afrikës Qendrore", "TMT": "Ora standarde e Turkmenistanit", "WAT": "Ora standarde e Afrikës Perëndimore", "WAST": "Ora verore e Afrikës Perëndimore", "CST": "Ora standarde e SHBA-së Qendrore", "BOT": "Ora e Bolivisë"},
}
}
diff --git a/sq_AL/sq_AL.go b/sq_AL/sq_AL.go
index e2bb61fe..1b452850 100644
--- a/sq_AL/sq_AL.go
+++ b/sq_AL/sq_AL.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"p.K.", "mb.K."},
erasNarrow: []string{"p.K.", "mb.K."},
erasWide: []string{"para Krishtit", "mbas Krishtit"},
- timezones: map[string]string{"HECU": "Ora verore e Kubës", "EDT": "Ora verore e SHBA-së Lindore", "MYT": "Ora e Malajzisë", "SAST": "Ora standarde e Afrikës Jugore", "GFT": "Ora e Guajanës Franceze", "WAT": "Ora standarde e Afrikës Perëndimore", "SGT": "Ora e Singaporit", "MEZ": "Ora standarde e Evropës Qendrore", "HEEG": "Ora verore e Grenlandës Lindore", "MST": "Ora standarde e Makaos", "ECT": "Ora e Ekuadorit", "HNNOMX": "Ora standarde e Meksikës Veriperëndimore", "VET": "Ora e Venezuelës", "WEZ": "Ora standarde e Evropës Perëndimore", "AWDT": "Ora verore e Australisë Perëndimore", "∅∅∅": "Ora verore e Amazonës", "JST": "Ora standarde e Japonisë", "TMST": "Ora verore e Turkmenistanit", "ACWDT": "Ora verore e Australisë Qendroro-Perëndimore", "HEOG": "Ora verore e Grenlandës Perëndimore", "EST": "Ora standarde e SHBA-së Lindore", "GYT": "Ora e Guajanës", "BT": "Ora e Butanit", "WESZ": "Ora verore e Evropës Perëndimore", "AEST": "Ora standarde e Australisë Lindore", "HNPM": "Ora standarde e Shën-Pier dhe Mikuelon", "BOT": "Ora e Bolivisë", "CST": "Ora standarde e SHBA-së Qendrore", "WAST": "Ora verore e Afrikës Perëndimore", "OESZ": "Ora verore e Evropës Lindore", "HENOMX": "Ora verore e Meksikës Veriperëndimore", "AKST": "Ora standarde e Alaskës", "HEPM": "Ora verore e Shën-Pier dhe Mikuelon", "ChST": "Ora e Kamorros", "ACDT": "Ora verore e Australisë Qendrore", "EAT": "Ora e Afrikës Lindore", "AKDT": "Ora verore e Alsaskës", "PDT": "Ora verore amerikane e Bregut të Paqësorit", "ACWST": "Ora standarde e Australisë Qendroro-Perëndimore", "WITA": "Ora e Indonezisë Qendrore", "CHAST": "Ora standarde e Katamit", "CLT": "Ora standarde e Kilit", "AST": "Ora standarde e Atlantikut", "NZDT": "Ora verore e Zelandës së Re", "CAT": "Ora e Afrikës Qendrore", "COST": "Ora verore e Kolumbisë", "HNPMX": "Ora standarde meksikane e Bregut të Paqësorit", "ADT": "Ora verore e Atlantikut", "HNOG": "Ora standarde e Grenlandës Perëndimore", "AWST": "Ora standarde e Australisë Perëndimore", "HKT": "Ora standarde e Hong-Kongut", "LHST": "Ora standarde e Lord-Houit", "CLST": "Ora verore e Kilit", "HNT": "Ora standarde e Njufaundlendit [Tokës së Re]", "ART": "Ora standarde e Argjentinës", "ACST": "Ora standarde e Australisë Qendrore", "WARST": "Ora verore e Argjentinës Perëndimore", "GMT": "Ora e Meridianit të Grinuiçit", "HADT": "Ora verore e Ishujve Hauai-Aleutian", "HAST": "Ora standarde e Ishujve Hauai-Aleutian", "SRT": "Ora e Surinamit", "CHADT": "Ora verore e Katamit", "HNEG": "Ora standarde e Grenlandës Lindore", "TMT": "Ora standarde e Turkmenistanit", "WART": "Ora standarde e Argjentinës Perëndimore", "MESZ": "Ora verore e Evropës Qendrore", "COT": "Ora standarde e Kolumbisë", "HEPMX": "Ora verore meksikane e Bregut të Paqësorit", "UYT": "Ora standarde e Uruguait", "WIT": "Ora e Indonezisë Lindore", "HKST": "Ora verore e Hong-Kongut", "LHDT": "Ora verore e Lord-Houit", "NZST": "Ora standarde e Zelandës së Re", "HNCU": "Ora standarde e Kubës", "OEZ": "Ora standarde e Evropës Lindore", "MDT": "Ora verore e Makaos", "CDT": "Ora verore e SHBA-së Qendrore", "ARST": "Ora verore e Argjentinës", "PST": "Ora standarde amerikane e Bregut të Paqësorit", "AEDT": "Ora verore e Australisë Lindore", "IST": "Ora standarde e Indisë", "JDT": "Ora verore e Japonisë", "WIB": "Ora e Indonezisë Perëndimore", "UYST": "Ora verore e Uruguait", "HAT": "Ora verore e Njufaundlendit [Tokës së Re]"},
+ timezones: map[string]string{"MESZ": "Ora verore e Evropës Qendrore", "CLST": "Ora verore e Kilit", "EDT": "Ora verore e SHBA-së Lindore", "COT": "Ora standarde e Kolumbisë", "PDT": "Ora verore amerikane e Bregut të Paqësorit", "NZST": "Ora standarde e Zelandës së Re", "ADT": "Ora verore e Atlantikut", "WAT": "Ora standarde e Afrikës Perëndimore", "HNT": "Ora standarde e Njufaundlendit [Tokës së Re]", "ChST": "Ora e Kamorros", "HADT": "Ora verore e Ishujve Hauai-Aleutian", "IST": "Ora standarde e Indisë", "ACDT": "Ora verore e Australisë Qendrore", "HNNOMX": "Ora standarde e Meksikës Veriperëndimore", "CLT": "Ora standarde e Kilit", "OESZ": "Ora verore e Evropës Lindore", "JDT": "Ora verore e Japonisë", "MDT": "Ora verore e Makaos", "GMT": "Ora e Meridianit të Grinuiçit", "HNPMX": "Ora standarde meksikane e Bregut të Paqësorit", "HEPMX": "Ora verore meksikane e Bregut të Paqësorit", "BOT": "Ora e Bolivisë", "PST": "Ora standarde amerikane e Bregut të Paqësorit", "HAT": "Ora verore e Njufaundlendit [Tokës së Re]", "GFT": "Ora e Guajanës Franceze", "CST": "Ora standarde e SHBA-së Qendrore", "CAT": "Ora e Afrikës Qendrore", "WARST": "Ora verore e Argjentinës Perëndimore", "AKDT": "Ora verore e Alsaskës", "AWST": "Ora standarde e Australisë Perëndimore", "COST": "Ora verore e Kolumbisë", "OEZ": "Ora standarde e Evropës Lindore", "TMT": "Ora standarde e Turkmenistanit", "WAST": "Ora verore e Afrikës Perëndimore", "HKST": "Ora verore e Hong-Kongut", "HNPM": "Ora standarde e Shën-Pier dhe Mikuelon", "SGT": "Ora e Singaporit", "AST": "Ora standarde e Atlantikut", "NZDT": "Ora verore e Zelandës së Re", "JST": "Ora standarde e Japonisë", "WIT": "Ora e Indonezisë Lindore", "VET": "Ora e Venezuelës", "HNEG": "Ora standarde e Grenlandës Lindore", "HKT": "Ora standarde e Hong-Kongut", "ACST": "Ora standarde e Australisë Qendrore", "HEPM": "Ora verore e Shën-Pier dhe Mikuelon", "CDT": "Ora verore e SHBA-së Qendrore", "ECT": "Ora e Ekuadorit", "HNOG": "Ora standarde e Grenlandës Perëndimore", "HENOMX": "Ora verore e Meksikës Veriperëndimore", "HEEG": "Ora verore e Grenlandës Lindore", "WITA": "Ora e Indonezisë Qendrore", "AEDT": "Ora verore e Australisë Lindore", "UYT": "Ora standarde e Uruguait", "LHST": "Ora standarde e Lord-Houit", "AWDT": "Ora verore e Australisë Perëndimore", "∅∅∅": "Ora verore e Amazonës", "WESZ": "Ora verore e Evropës Perëndimore", "MST": "Ora standarde e Makaos", "ARST": "Ora verore e Argjentinës", "AKST": "Ora standarde e Alaskës", "LHDT": "Ora verore e Lord-Houit", "GYT": "Ora e Guajanës", "ACWST": "Ora standarde e Australisë Qendroro-Perëndimore", "WEZ": "Ora standarde e Evropës Perëndimore", "MYT": "Ora e Malajzisë", "TMST": "Ora verore e Turkmenistanit", "ART": "Ora standarde e Argjentinës", "UYST": "Ora verore e Uruguait", "SAST": "Ora standarde e Afrikës Jugore", "CHAST": "Ora standarde e Katamit", "MEZ": "Ora standarde e Evropës Qendrore", "SRT": "Ora e Surinamit", "EAT": "Ora e Afrikës Lindore", "HECU": "Ora verore e Kubës", "CHADT": "Ora verore e Katamit", "HAST": "Ora standarde e Ishujve Hauai-Aleutian", "HEOG": "Ora verore e Grenlandës Perëndimore", "EST": "Ora standarde e SHBA-së Lindore", "BT": "Ora e Butanit", "AEST": "Ora standarde e Australisë Lindore", "HNCU": "Ora standarde e Kubës", "WIB": "Ora e Indonezisë Perëndimore", "ACWDT": "Ora verore e Australisë Qendroro-Perëndimore", "WART": "Ora standarde e Argjentinës Perëndimore"},
}
}
diff --git a/sq_MK/sq_MK.go b/sq_MK/sq_MK.go
index 84ff3ecd..f369726c 100644
--- a/sq_MK/sq_MK.go
+++ b/sq_MK/sq_MK.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"p.K.", "mb.K."},
erasNarrow: []string{"p.K.", "mb.K."},
erasWide: []string{"para Krishtit", "mbas Krishtit"},
- timezones: map[string]string{"HNNOMX": "Ora standarde e Meksikës Veriperëndimore", "BT": "Ora e Butanit", "ART": "Ora standarde e Argjentinës", "HKT": "Ora standarde e Hong-Kongut", "CHAST": "Ora standarde e Katamit", "IST": "Ora standarde e Indisë", "∅∅∅": "Ora verore e Amazonës", "HNEG": "Ora standarde e Grenlandës Lindore", "GMT": "Ora e Meridianit të Grinuiçit", "EDT": "Ora verore e SHBA-së Lindore", "CLT": "Ora standarde e Kilit", "ACST": "Ora standarde e Australisë Qendrore", "EAT": "Ora e Afrikës Lindore", "ECT": "Ora e Ekuadorit", "COST": "Ora verore e Kolumbisë", "GYT": "Ora e Guajanës", "WESZ": "Ora verore e Evropës Perëndimore", "ARST": "Ora verore e Argjentinës", "NZST": "Ora standarde e Zelandës së Re", "ACDT": "Ora verore e Australisë Qendrore", "WART": "Ora standarde e Argjentinës Perëndimore", "HNPMX": "Ora standarde meksikane e Bregut të Paqësorit", "CDT": "Ora verore e SHBA-së Qendrore", "ACWDT": "Ora verore e Australisë Qendroro-Perëndimore", "HEOG": "Ora verore e Grenlandës Perëndimore", "TMT": "Ora standarde e Turkmenistanit", "CAT": "Ora e Afrikës Qendrore", "HENOMX": "Ora verore e Meksikës Veriperëndimore", "UYST": "Ora verore e Uruguait", "HAST": "Ora standarde e Ishujve Hauai-Aleutian", "HADT": "Ora verore e Ishujve Hauai-Aleutian", "MEZ": "Ora standarde e Evropës Qendrore", "MESZ": "Ora verore e Evropës Qendrore", "CLST": "Ora verore e Kilit", "WAT": "Ora standarde e Afrikës Perëndimore", "AST": "Ora standarde e Atlantikut", "MST": "Ora standarde amerikane e Brezit Malor", "SRT": "Ora e Surinamit", "HKST": "Ora verore e Hong-Kongut", "VET": "Ora e Venezuelës", "WITA": "Ora e Indonezisë Qendrore", "JDT": "Ora verore e Japonisë", "WARST": "Ora verore e Argjentinës Perëndimore", "HNCU": "Ora standarde e Kubës", "MDT": "Ora verore amerikane e Brezit Malor", "WIT": "Ora e Indonezisë Lindore", "AWDT": "Ora verore e Australisë Perëndimore", "NZDT": "Ora verore e Zelandës së Re", "JST": "Ora standarde e Japonisë", "WAST": "Ora verore e Afrikës Perëndimore", "SGT": "Ora e Singaporit", "WEZ": "Ora standarde e Evropës Perëndimore", "HNT": "Ora standarde e Njufaundlendit [Tokës së Re]", "LHST": "Ora standarde e Lord-Houit", "HECU": "Ora verore e Kubës", "CST": "Ora standarde e SHBA-së Qendrore", "ADT": "Ora verore e Atlantikut", "ACWST": "Ora standarde e Australisë Qendroro-Perëndimore", "HNPM": "Ora standarde e Shën-Pier dhe Mikuelon", "BOT": "Ora e Bolivisë", "EST": "Ora standarde e SHBA-së Lindore", "AKST": "Ora standarde e Alaskës", "PDT": "Ora verore amerikane e Bregut të Paqësorit", "PST": "Ora standarde amerikane e Bregut të Paqësorit", "HNOG": "Ora standarde e Grenlandës Perëndimore", "AEST": "Ora standarde e Australisë Lindore", "LHDT": "Ora verore e Lord-Houit", "MYT": "Ora e Malajzisë", "CHADT": "Ora verore e Katamit", "ChST": "Ora e Kamorros", "OEZ": "Ora standarde e Evropës Lindore", "OESZ": "Ora verore e Evropës Lindore", "WIB": "Ora e Indonezisë Perëndimore", "HEPM": "Ora verore e Shën-Pier dhe Mikuelon", "HEEG": "Ora verore e Grenlandës Lindore", "GFT": "Ora e Guajanës Franceze", "TMST": "Ora verore e Turkmenistanit", "AKDT": "Ora verore e Alsaskës", "HAT": "Ora verore e Njufaundlendit [Tokës së Re]", "AWST": "Ora standarde e Australisë Perëndimore", "SAST": "Ora standarde e Afrikës Jugore", "HEPMX": "Ora verore meksikane e Bregut të Paqësorit", "UYT": "Ora standarde e Uruguait", "AEDT": "Ora verore e Australisë Lindore", "COT": "Ora standarde e Kolumbisë"},
+ timezones: map[string]string{"MDT": "Ora verore amerikane e Brezit Malor", "HNOG": "Ora standarde e Grenlandës Perëndimore", "IST": "Ora standarde e Indisë", "ACWDT": "Ora verore e Australisë Qendroro-Perëndimore", "HNNOMX": "Ora standarde e Meksikës Veriperëndimore", "MST": "Ora standarde amerikane e Brezit Malor", "UYST": "Ora verore e Uruguait", "ADT": "Ora verore e Atlantikut", "SRT": "Ora e Surinamit", "MEZ": "Ora standarde e Evropës Qendrore", "WART": "Ora standarde e Argjentinës Perëndimore", "AKST": "Ora standarde e Alaskës", "CAT": "Ora e Afrikës Qendrore", "WESZ": "Ora verore e Evropës Perëndimore", "CLST": "Ora verore e Kilit", "AST": "Ora standarde e Atlantikut", "ACST": "Ora standarde e Australisë Qendrore", "HEEG": "Ora verore e Grenlandës Lindore", "WITA": "Ora e Indonezisë Qendrore", "EDT": "Ora verore e SHBA-së Lindore", "EAT": "Ora e Afrikës Lindore", "OESZ": "Ora verore e Evropës Lindore", "WARST": "Ora verore e Argjentinës Perëndimore", "WAST": "Ora verore e Afrikës Perëndimore", "GFT": "Ora e Guajanës Franceze", "HEPM": "Ora verore e Shën-Pier dhe Mikuelon", "HECU": "Ora verore e Kubës", "MYT": "Ora e Malajzisë", "WAT": "Ora standarde e Afrikës Perëndimore", "ACDT": "Ora verore e Australisë Qendrore", "CHADT": "Ora verore e Katamit", "HADT": "Ora verore e Ishujve Hauai-Aleutian", "JDT": "Ora verore e Japonisë", "HENOMX": "Ora verore e Meksikës Veriperëndimore", "HNPM": "Ora standarde e Shën-Pier dhe Mikuelon", "HNPMX": "Ora standarde meksikane e Bregut të Paqësorit", "∅∅∅": "Ora verore e Ejkrit [Ako]", "LHST": "Ora standarde e Lord-Houit", "CLT": "Ora standarde e Kilit", "HEOG": "Ora verore e Grenlandës Perëndimore", "TMST": "Ora verore e Turkmenistanit", "SGT": "Ora e Singaporit", "OEZ": "Ora standarde e Evropës Lindore", "TMT": "Ora standarde e Turkmenistanit", "ARST": "Ora verore e Argjentinës", "HKST": "Ora verore e Hong-Kongut", "AEDT": "Ora verore e Australisë Lindore", "UYT": "Ora standarde e Uruguait", "HEPMX": "Ora verore meksikane e Bregut të Paqësorit", "GYT": "Ora e Guajanës", "CHAST": "Ora standarde e Katamit", "AWST": "Ora standarde e Australisë Perëndimore", "AWDT": "Ora verore e Australisë Perëndimore", "JST": "Ora standarde e Japonisë", "GMT": "Ora e Meridianit të Grinuiçit", "ChST": "Ora e Kamorros", "CST": "Ora standarde e SHBA-së Qendrore", "CDT": "Ora verore e SHBA-së Qendrore", "HNCU": "Ora standarde e Kubës", "BOT": "Ora e Bolivisë", "ACWST": "Ora standarde e Australisë Qendroro-Perëndimore", "NZST": "Ora standarde e Zelandës së Re", "WEZ": "Ora standarde e Evropës Perëndimore", "COT": "Ora standarde e Kolumbisë", "COST": "Ora verore e Kolumbisë", "HAT": "Ora verore e Njufaundlendit [Tokës së Re]", "HKT": "Ora standarde e Hong-Kongut", "EST": "Ora standarde e SHBA-së Lindore", "PST": "Ora standarde amerikane e Bregut të Paqësorit", "PDT": "Ora verore amerikane e Bregut të Paqësorit", "MESZ": "Ora verore e Evropës Qendrore", "HAST": "Ora standarde e Ishujve Hauai-Aleutian", "NZDT": "Ora verore e Zelandës së Re", "HNEG": "Ora standarde e Grenlandës Lindore", "AEST": "Ora standarde e Australisë Lindore", "SAST": "Ora standarde e Afrikës Jugore", "LHDT": "Ora verore e Lord-Houit", "WIB": "Ora e Indonezisë Perëndimore", "WIT": "Ora e Indonezisë Lindore", "ECT": "Ora e Ekuadorit", "VET": "Ora e Venezuelës", "HNT": "Ora standarde e Njufaundlendit [Tokës së Re]", "BT": "Ora e Butanit", "AKDT": "Ora verore e Alsaskës", "ART": "Ora standarde e Argjentinës"},
}
}
diff --git a/sq_XK/sq_XK.go b/sq_XK/sq_XK.go
index 578c8770..72f8ab8d 100644
--- a/sq_XK/sq_XK.go
+++ b/sq_XK/sq_XK.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"p.K.", "mb.K."},
erasNarrow: []string{"p.K.", "mb.K."},
erasWide: []string{"para Krishtit", "mbas Krishtit"},
- timezones: map[string]string{"OESZ": "Ora verore e Evropës Lindore", "SGT": "Ora e Singaporit", "AWDT": "Ora verore e Australisë Perëndimore", "ACDT": "Ora verore e Australisë Qendrore", "JST": "Ora standarde e Japonisë", "JDT": "Ora verore e Japonisë", "BOT": "Ora e Bolivisë", "HNEG": "Ora standarde e Grenlandës Lindore", "OEZ": "Ora standarde e Evropës Lindore", "GMT": "Ora e Meridianit të Grinuiçit", "HECU": "Ora verore e Kubës", "SRT": "Ora e Surinamit", "AEDT": "Ora verore e Australisë Lindore", "SAST": "Ora standarde e Afrikës Jugore", "ChST": "Ora e Kamorros", "EAT": "Ora e Afrikës Lindore", "WAT": "Ora standarde e Afrikës Perëndimore", "WART": "Ora standarde e Argjentinës Perëndimore", "AKST": "Ora standarde e Alaskës", "WIB": "Ora e Indonezisë Perëndimore", "NZST": "Ora standarde e Zelandës së Re", "WESZ": "Ora verore e Evropës Perëndimore", "HAT": "Ora verore e Njufaundlendit [Tokës së Re]", "HKT": "Ora standarde e Hong-Kongut", "ARST": "Ora verore e Argjentinës", "HNCU": "Ora standarde e Kubës", "AST": "Ora standarde e Atlantikut", "PST": "Ora standarde amerikane e Bregut të Paqësorit", "AKDT": "Ora verore e Alsaskës", "LHST": "Ora standarde e Lord-Houit", "TMT": "Ora standarde e Turkmenistanit", "CHADT": "Ora verore e Katamit", "CLT": "Ora standarde e Kilit", "HEPMX": "Ora verore meksikane e Bregut të Paqësorit", "ADT": "Ora verore e Atlantikut", "WITA": "Ora e Indonezisë Qendrore", "EST": "Ora standarde e SHBA-së Lindore", "MDT": "Ora verore e Makaos", "HNPMX": "Ora standarde meksikane e Bregut të Paqësorit", "VET": "Ora e Venezuelës", "HEOG": "Ora verore e Grenlandës Perëndimore", "COT": "Ora standarde e Kolumbisë", "COST": "Ora verore e Kolumbisë", "HNNOMX": "Ora standarde e Meksikës Veriperëndimore", "ECT": "Ora e Ekuadorit", "NZDT": "Ora verore e Zelandës së Re", "HEEG": "Ora verore e Grenlandës Lindore", "WEZ": "Ora standarde e Evropës Perëndimore", "ART": "Ora standarde e Argjentinës", "MESZ": "Ora verore e Evropës Qendrore", "ACWST": "Ora standarde e Australisë Qendroro-Perëndimore", "ACWDT": "Ora verore e Australisë Qendroro-Perëndimore", "AWST": "Ora standarde e Australisë Perëndimore", "CLST": "Ora verore e Kilit", "GFT": "Ora e Guajanës Franceze", "UYST": "Ora verore e Uruguait", "HADT": "Ora verore e Ishujve Hauai-Aleutian", "PDT": "Ora verore amerikane e Bregut të Paqësorit", "CDT": "Ora verore e SHBA-së Qendrore", "WIT": "Ora e Indonezisë Lindore", "TMST": "Ora verore e Turkmenistanit", "EDT": "Ora verore e SHBA-së Lindore", "GYT": "Ora e Guajanës", "BT": "Ora e Butanit", "HNT": "Ora standarde e Njufaundlendit [Tokës së Re]", "AEST": "Ora standarde e Australisë Lindore", "WARST": "Ora verore e Argjentinës Perëndimore", "HENOMX": "Ora verore e Meksikës Veriperëndimore", "∅∅∅": "Ora verore e Azoreve", "HKST": "Ora verore e Hong-Kongut", "MEZ": "Ora standarde e Evropës Qendrore", "ACST": "Ora standarde e Australisë Qendrore", "UYT": "Ora standarde e Uruguait", "CST": "Ora standarde e SHBA-së Qendrore", "HAST": "Ora standarde e Ishujve Hauai-Aleutian", "CAT": "Ora e Afrikës Qendrore", "WAST": "Ora verore e Afrikës Perëndimore", "HNPM": "Ora standarde e Shën-Pier dhe Mikuelon", "LHDT": "Ora verore e Lord-Houit", "IST": "Ora standarde e Indisë", "HEPM": "Ora verore e Shën-Pier dhe Mikuelon", "CHAST": "Ora standarde e Katamit", "MST": "Ora standarde e Makaos", "MYT": "Ora e Malajzisë", "HNOG": "Ora standarde e Grenlandës Perëndimore"},
+ timezones: map[string]string{"WARST": "Ora verore e Argjentinës Perëndimore", "HNOG": "Ora standarde e Grenlandës Perëndimore", "HNT": "Ora standarde e Njufaundlendit [Tokës së Re]", "AEDT": "Ora verore e Australisë Lindore", "HNCU": "Ora standarde e Kubës", "GMT": "Ora e Meridianit të Grinuiçit", "WESZ": "Ora verore e Evropës Perëndimore", "TMT": "Ora standarde e Turkmenistanit", "HKT": "Ora standarde e Hong-Kongut", "BT": "Ora e Butanit", "SGT": "Ora e Singaporit", "CHAST": "Ora standarde e Katamit", "BOT": "Ora e Bolivisë", "ECT": "Ora e Ekuadorit", "CAT": "Ora e Afrikës Qendrore", "IST": "Ora standarde e Indisë", "VET": "Ora e Venezuelës", "WART": "Ora standarde e Argjentinës Perëndimore", "HECU": "Ora verore e Kubës", "AKST": "Ora standarde e Alaskës", "WITA": "Ora e Indonezisë Qendrore", "AKDT": "Ora verore e Alsaskës", "AEST": "Ora standarde e Australisë Lindore", "CLT": "Ora standarde e Kilit", "WAT": "Ora standarde e Afrikës Perëndimore", "GFT": "Ora e Guajanës Franceze", "CHADT": "Ora verore e Katamit", "HNNOMX": "Ora standarde e Meksikës Veriperëndimore", "COT": "Ora standarde e Kolumbisë", "EAT": "Ora e Afrikës Lindore", "AWDT": "Ora verore e Australisë Perëndimore", "JST": "Ora standarde e Japonisë", "OEZ": "Ora standarde e Evropës Lindore", "MST": "Ora standarde e Makaos", "ACST": "Ora standarde e Australisë Qendrore", "HENOMX": "Ora verore e Meksikës Veriperëndimore", "HEPMX": "Ora verore meksikane e Bregut të Paqësorit", "WIB": "Ora e Indonezisë Perëndimore", "AWST": "Ora standarde e Australisë Perëndimore", "PST": "Ora standarde amerikane e Bregut të Paqësorit", "MESZ": "Ora verore e Evropës Qendrore", "EDT": "Ora verore e SHBA-së Lindore", "LHST": "Ora standarde e Lord-Houit", "MDT": "Ora verore e Makaos", "ARST": "Ora verore e Argjentinës", "HAT": "Ora verore e Njufaundlendit [Tokës së Re]", "HEPM": "Ora verore e Shën-Pier dhe Mikuelon", "JDT": "Ora verore e Japonisë", "AST": "Ora standarde e Atlantikut", "NZDT": "Ora verore e Zelandës së Re", "HEOG": "Ora verore e Grenlandës Perëndimore", "COST": "Ora verore e Kolumbisë", "CLST": "Ora verore e Kilit", "CDT": "Ora verore e SHBA-së Qendrore", "ACWDT": "Ora verore e Australisë Qendroro-Perëndimore", "ChST": "Ora e Kamorros", "HNPMX": "Ora standarde meksikane e Bregut të Paqësorit", "LHDT": "Ora verore e Lord-Houit", "GYT": "Ora e Guajanës", "WIT": "Ora e Indonezisë Lindore", "PDT": "Ora verore amerikane e Bregut të Paqësorit", "HAST": "Ora standarde e Ishujve Hauai-Aleutian", "HADT": "Ora verore e Ishujve Hauai-Aleutian", "OESZ": "Ora verore e Evropës Lindore", "SAST": "Ora standarde e Afrikës Jugore", "UYST": "Ora verore e Uruguait", "∅∅∅": "Ora verore e Azoreve", "CST": "Ora standarde e SHBA-së Qendrore", "NZST": "Ora standarde e Zelandës së Re", "MEZ": "Ora standarde e Evropës Qendrore", "MYT": "Ora e Malajzisë", "WAST": "Ora verore e Afrikës Perëndimore", "HNEG": "Ora standarde e Grenlandës Lindore", "SRT": "Ora e Surinamit", "UYT": "Ora standarde e Uruguait", "WEZ": "Ora standarde e Evropës Perëndimore", "ART": "Ora standarde e Argjentinës", "ACWST": "Ora standarde e Australisë Qendroro-Perëndimore", "TMST": "Ora verore e Turkmenistanit", "EST": "Ora standarde e SHBA-së Lindore", "HKST": "Ora verore e Hong-Kongut", "ACDT": "Ora verore e Australisë Qendrore", "HEEG": "Ora verore e Grenlandës Lindore", "HNPM": "Ora standarde e Shën-Pier dhe Mikuelon", "ADT": "Ora verore e Atlantikut"},
}
}
diff --git a/sr/sr.go b/sr/sr.go
index 2870339c..52511c20 100644
--- a/sr/sr.go
+++ b/sr/sr.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"п. н. е.", "н. е."},
erasNarrow: []string{"п.н.е.", "н.е."},
erasWide: []string{"пре нове ере", "нове ере"},
- timezones: map[string]string{"MESZ": "Средњеевропско летње рачунање времена", "IST": "Индијско стандардно време", "CLST": "Чиле летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "HNNOMX": "Северозападни Мексико стандардно време", "UYT": "Уругвај стандардно време", "WIT": "Источно-индонезијско време", "HEOG": "Западни Гренланд летње рачунање времена", "JDT": "Јапанско летње рачунање времена", "EDT": "Северноамеричко источно летње време", "HNOG": "Западни Гренланд стандардно време", "EST": "Северноамеричко источно стандардно време", "MST": "Макао стандардно време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "HNT": "Њуфаундленд стандардно време", "HKT": "Хонг Конг стандардно време", "GFT": "Француска Гвајана време", "HNPMX": "Мексички Пацифик стандардно време", "CHADT": "Чатам летње рачунање времена", "∅∅∅": "Амазон летње рачунање времена", "WAST": "Западно-афричко летње рачунање времена", "OEZ": "Источноевропско стандардно време", "AKDT": "Аљаска, летње рачунање времена", "CST": "Северноамеричко централно стандардно време", "LHST": "Лорд Хов стандардно време", "CHAST": "Чатам стандардно време", "AEST": "Аустралијско источно стандардно време", "HNPM": "Сен Пјер и Микелон стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "TMST": "Туркменистан летње рачунање времена", "ACDT": "Аустралијско централно летње рачунање времена", "HENOMX": "Северозападни Мексико летње рачунање времена", "WIB": "Западно-индонезијско време", "WEZ": "Западноевропско стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "JST": "Јапанско стандардно време", "BOT": "Боливија време", "MYT": "Малезија време", "AEDT": "Аустралијско источно летње рачунање времена", "AWDT": "Аустралијско западно летње рачунање времена", "OESZ": "Источноевропско летње рачунање времена", "WARST": "Западна Аргентина летње рачунање времена", "COST": "Колумбија летње рачунање времена", "GYT": "Гвајана време", "AWST": "Аустралијско западно стандардно време", "WESZ": "Западноевропско летње рачунање времена", "ChST": "Чаморо време", "TMT": "Туркменистан стандардно време", "GMT": "Средње време по Гриничу", "VET": "Венецуела време", "BT": "Бутан време", "PDT": "Северноамеричко пацифичко летње време", "HADT": "Хавајско-алеутско летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "CLT": "Чиле стандардно време", "WART": "Западна Аргентина стандардно време", "COT": "Колумбија стандардно време", "AKST": "Аљаска, стандардно време", "AST": "Атлантско стандардно време", "ADT": "Атлантско летње рачунање времена", "HNCU": "Куба стандардно време", "HEPMX": "Мексички Пацифик летње рачунање времена", "CDT": "Северноамеричко централно летње време", "SRT": "Суринам време", "PST": "Северноамеричко пацифичко стандардно време", "NZST": "Нови Зеланд стандардно време", "CAT": "Централно-афричко време", "HAT": "Њуфаундленд летње рачунање времена", "HKST": "Хонг Конг летње рачунање времена", "NZDT": "Нови Зеланд летње рачунање времена", "ECT": "Еквадор време", "SGT": "Сингапур стандардно време", "HECU": "Куба летње рачунање времена", "HAST": "Хавајско-алеутско стандардно време", "UYST": "Уругвај летње рачунање времена", "WITA": "Централно-индонезијско време", "MEZ": "Средњеевропско стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "SAST": "Јужно-афричко време", "ACST": "Аустралијско централно стандардно време", "EAT": "Источно-афричко време", "WAT": "Западно-афричко стандардно време", "MDT": "Макао летње рачунање времена", "ART": "Аргентина стандардно време", "ARST": "Аргентина летње рачунање времена"},
+ timezones: map[string]string{"GFT": "Француска Гвајана време", "HEOG": "Западни Гренланд летње рачунање времена", "ARST": "Аргентина летње рачунање времена", "NZST": "Нови Зеланд стандардно време", "ADT": "Атлантско летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "ACST": "Аустралијско централно стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "SAST": "Јужно-афричко време", "HADT": "Хавајско-алеутско летње рачунање времена", "WIT": "Источно-индонезијско време", "AWST": "Аустралијско западно стандардно време", "ECT": "Еквадор време", "NZDT": "Нови Зеланд летње рачунање времена", "HAT": "Њуфаундленд летње рачунање времена", "ChST": "Чаморо време", "UYST": "Уругвај летње рачунање времена", "GYT": "Гвајана време", "HECU": "Куба летње рачунање времена", "PDT": "Северноамеричко пацифичко летње време", "MESZ": "Средњеевропско летње рачунање времена", "JST": "Јапанско стандардно време", "AKDT": "Аљаска, летње рачунање времена", "LHDT": "Лорд Хов летње рачунање времена", "HNPMX": "Мексички Пацифик стандардно време", "ACWST": "Аустралијско централно западно стандардно време", "ART": "Аргентина стандардно време", "HKT": "Хонг Конг стандардно време", "WART": "Западна Аргентина стандардно време", "HNOG": "Западни Гренланд стандардно време", "MYT": "Малезија време", "ACDT": "Аустралијско централно летње рачунање времена", "HENOMX": "Северозападни Мексико летње рачунање времена", "CST": "Северноамеричко централно стандардно време", "CHAST": "Чатам стандардно време", "HAST": "Хавајско-алеутско стандардно време", "CDT": "Северноамеричко централно летње време", "VET": "Венецуела време", "AST": "Атлантско стандардно време", "WAST": "Западно-афричко летње рачунање времена", "EDT": "Северноамеричко источно летње време", "BT": "Бутан време", "HEEG": "Источни Гренланд летње рачунање времена", "WITA": "Централно-индонезијско време", "COT": "Колумбија стандардно време", "HNT": "Њуфаундленд стандардно време", "AEST": "Аустралијско источно стандардно време", "PST": "Северноамеричко пацифичко стандардно време", "HEPMX": "Мексички Пацифик летње рачунање времена", "EAT": "Источно-афричко време", "HKST": "Хонг Конг летње рачунање времена", "HNCU": "Куба стандардно време", "SGT": "Сингапур стандардно време", "BOT": "Боливија време", "MDT": "Северноамеричко планинско летње време", "CAT": "Централно-афричко време", "HNNOMX": "Северозападни Мексико стандардно време", "CLST": "Чиле летње рачунање времена", "WESZ": "Западноевропско летње рачунање времена", "COST": "Колумбија летње рачунање времена", "UYT": "Уругвај стандардно време", "HNPM": "Сен Пјер и Микелон стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "IST": "Индијско стандардно време", "OEZ": "Источноевропско стандардно време", "AKST": "Аљаска, стандардно време", "MST": "Северноамеричко планинско стандардно време", "LHST": "Лорд Хов стандардно време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "WARST": "Западна Аргентина летње рачунање времена", "TMST": "Туркменистан летње рачунање времена", "WAT": "Западно-афричко стандардно време", "HNEG": "Источни Гренланд стандардно време", "∅∅∅": "Перу летње рачунање времена", "WIB": "Западно-индонезијско време", "TMT": "Туркменистан стандардно време", "SRT": "Суринам време", "CHADT": "Чатам летње рачунање времена", "GMT": "Средње време по Гриничу", "OESZ": "Источноевропско летње рачунање времена", "WEZ": "Западноевропско стандардно време", "AEDT": "Аустралијско источно летње рачунање времена", "JDT": "Јапанско летње рачунање времена", "CLT": "Чиле стандардно време"},
}
}
@@ -105,8 +105,8 @@ func (sr *sr) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
f := locales.F(n, v)
iMod10 := i % 10
iMod100 := i % 100
- fMod10 := f % 10
fMod100 := f % 100
+ fMod10 := f % 10
if (v == 0 && iMod10 == 1 && iMod100 != 11) || (fMod10 == 1 && fMod100 != 11) {
return locales.PluralRuleOne
diff --git a/sr_Cyrl/sr_Cyrl.go b/sr_Cyrl/sr_Cyrl.go
index 5f066c7a..ca5e7c44 100644
--- a/sr_Cyrl/sr_Cyrl.go
+++ b/sr_Cyrl/sr_Cyrl.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"п. н. е.", "н. е."},
erasNarrow: []string{"п.н.е.", "н.е."},
erasWide: []string{"пре нове ере", "нове ере"},
- timezones: map[string]string{"MYT": "Малезија време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "ART": "Аргентина стандардно време", "HENOMX": "Северозападни Мексико летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "COT": "Колумбија стандардно време", "CDT": "Северноамеричко централно летње време", "GYT": "Гвајана време", "LHDT": "Лорд Хов летње рачунање времена", "SAST": "Јужно-афричко време", "CST": "Северноамеричко централно стандардно време", "WIB": "Западно-индонезијско време", "PDT": "Северноамеричко пацифичко летње време", "EST": "Северноамеричко источно стандардно време", "EDT": "Северноамеричко источно летње време", "ChST": "Чаморо време", "EAT": "Источно-афричко време", "OEZ": "Источноевропско стандардно време", "AWST": "Аустралијско западно стандардно време", "LHST": "Лорд Хов стандардно време", "CHAST": "Чатам стандардно време", "MESZ": "Средњеевропско летње рачунање времена", "CLST": "Чиле летње рачунање времена", "ECT": "Еквадор време", "BOT": "Боливија време", "TMST": "Туркменистан летње рачунање времена", "COST": "Колумбија летње рачунање времена", "ADT": "Атлантско летње рачунање времена", "WIT": "Источно-индонезијско време", "HAST": "Хавајско-алеутско стандардно време", "HEOG": "Западни Гренланд летње рачунање времена", "NZDT": "Нови Зеланд летње рачунање времена", "HNPMX": "Мексички Пацифик стандардно време", "OESZ": "Источноевропско летње рачунање времена", "UYT": "Уругвај стандардно време", "SRT": "Суринам време", "WEZ": "Западноевропско стандардно време", "WITA": "Централно-индонезијско време", "JDT": "Јапанско летње рачунање времена", "∅∅∅": "Амазон летње рачунање времена", "HNCU": "Куба стандардно време", "VET": "Венецуела време", "HNT": "Њуфаундленд стандардно време", "AEST": "Аустралијско источно стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "HNPM": "Сен Пјер и Микелон стандардно време", "JST": "Јапанско стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "WARST": "Западна Аргентина летње рачунање времена", "MDT": "Северноамеричко планинско летње време", "TMT": "Туркменистан стандардно време", "WAT": "Западно-афричко стандардно време", "CAT": "Централно-афричко време", "WART": "Западна Аргентина стандардно време", "SGT": "Сингапур стандардно време", "UYST": "Уругвај летње рачунање времена", "MST": "Северноамеричко планинско стандардно време", "WESZ": "Западноевропско летње рачунање времена", "PST": "Северноамеричко пацифичко стандардно време", "HNNOMX": "Северозападни Мексико стандардно време", "AST": "Атлантско стандардно време", "HKST": "Хонг Конг летње рачунање времена", "ACST": "Аустралијско централно стандардно време", "HECU": "Куба летње рачунање времена", "HADT": "Хавајско-алеутско летње рачунање времена", "HAT": "Њуфаундленд летње рачунање времена", "AEDT": "Аустралијско источно летње рачунање времена", "GMT": "Средње време по Гриничу", "AKDT": "Аљаска, летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "GFT": "Француска Гвајана време", "ACDT": "Аустралијско централно летње рачунање времена", "WAST": "Западно-афричко летње рачунање времена", "IST": "Индијско стандардно време", "CLT": "Чиле стандардно време", "AKST": "Аљаска, стандардно време", "BT": "Бутан време", "ARST": "Аргентина летње рачунање времена", "HNOG": "Западни Гренланд стандардно време", "HKT": "Хонг Конг стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "NZST": "Нови Зеланд стандардно време", "CHADT": "Чатам летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена"},
+ timezones: map[string]string{"TMST": "Туркменистан летње рачунање времена", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "SRT": "Суринам време", "HECU": "Куба летње рачунање времена", "PST": "Северноамеричко пацифичко стандардно време", "WART": "Западна Аргентина стандардно време", "HNEG": "Источни Гренланд стандардно време", "SAST": "Јужно-афричко време", "LHST": "Лорд Хов стандардно време", "GYT": "Гвајана време", "PDT": "Северноамеричко пацифичко летње време", "HAT": "Њуфаундленд летње рачунање времена", "ART": "Аргентина стандардно време", "ACST": "Аустралијско централно стандардно време", "CLST": "Чиле летње рачунање времена", "OEZ": "Источноевропско стандардно време", "JST": "Јапанско стандардно време", "WARST": "Западна Аргентина летње рачунање времена", "WAST": "Западно-афричко летње рачунање времена", "BT": "Бутан време", "HEEG": "Источни Гренланд летње рачунање времена", "ChST": "Чаморо време", "HAST": "Хавајско-алеутско стандардно време", "NZDT": "Нови Зеланд летње рачунање времена", "HKST": "Хонг Конг летње рачунање времена", "AKST": "Аљаска, стандардно време", "HEOG": "Западни Гренланд летње рачунање времена", "WAT": "Западно-афричко стандардно време", "HNOG": "Западни Гренланд стандардно време", "HNNOMX": "Северозападни Мексико стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "ECT": "Еквадор време", "MEZ": "Средњеевропско стандардно време", "JDT": "Јапанско летње рачунање времена", "CLT": "Чиле стандардно време", "WESZ": "Западноевропско летње рачунање времена", "HNPM": "Сен Пјер и Микелон стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "AWST": "Аустралијско западно стандардно време", "CAT": "Централно-афричко време", "HNPMX": "Мексички Пацифик стандардно време", "HNCU": "Куба стандардно време", "CDT": "Северноамеричко централно летње време", "MDT": "Макао летње рачунање времена", "UYT": "Уругвај стандардно време", "ADT": "Атлантско летње рачунање времена", "GMT": "Средње време по Гриничу", "ACDT": "Аустралијско централно летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена", "CST": "Северноамеричко централно стандардно време", "SGT": "Сингапур стандардно време", "∅∅∅": "Амазон летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "OESZ": "Источноевропско летње рачунање времена", "HKT": "Хонг Конг стандардно време", "HENOMX": "Северозападни Мексико летње рачунање времена", "WITA": "Централно-индонезијско време", "UYST": "Уругвај летње рачунање времена", "BOT": "Боливија време", "HADT": "Хавајско-алеутско летње рачунање времена", "WIT": "Источно-индонезијско време", "WEZ": "Западноевропско стандардно време", "MYT": "Малезија време", "GFT": "Француска Гвајана време", "IST": "Индијско стандардно време", "NZST": "Нови Зеланд стандардно време", "VET": "Венецуела време", "MST": "Макао стандардно време", "COT": "Колумбија стандардно време", "COST": "Колумбија летње рачунање времена", "CHAST": "Чатам стандардно време", "CHADT": "Чатам летње рачунање времена", "HNT": "Њуфаундленд стандардно време", "AKDT": "Аљаска, летње рачунање времена", "MESZ": "Средњеевропско летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "TMT": "Туркменистан стандардно време", "AEDT": "Аустралијско источно летње рачунање времена", "EAT": "Источно-афричко време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "AST": "Атлантско стандардно време", "WIB": "Западно-индонезијско време", "ARST": "Аргентина летње рачунање времена", "AEST": "Аустралијско источно стандардно време", "EDT": "Северноамеричко источно летње време"},
}
}
diff --git a/sr_Cyrl_BA/sr_Cyrl_BA.go b/sr_Cyrl_BA/sr_Cyrl_BA.go
index 48f74ffe..8da97a42 100644
--- a/sr_Cyrl_BA/sr_Cyrl_BA.go
+++ b/sr_Cyrl_BA/sr_Cyrl_BA.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"прије нове ере", "нове ере"},
- timezones: map[string]string{"HNOG": "Западни Гренланд стандардно време", "ChST": "Чаморо време", "ACST": "Аустралијско централно стандардно време", "CAT": "Централно-афричко време", "WIT": "Источно-индонезијско време", "HADT": "Хавајско-алеутско летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "WAT": "Западно-афричко стандардно време", "HNCU": "Куба стандардно време", "ADT": "Атлантско летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "UYT": "Уругвај стандардно време", "ACWST": "Аустралијско централно западно стандардно време", "∅∅∅": "Амазон летње рачунање времена", "WAST": "Западно-афричко летње рачунање времена", "WART": "Западна Аргентина стандардно време", "PST": "Северноамеричко пацифичко стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "TMT": "Туркменистан стандардно време", "TMST": "Туркменистан летње рачунање времена", "SAST": "Јужно-афричко време", "ACDT": "Аустралијско централно летње рачунање времена", "GMT": "Средње време по Гриничу", "AKDT": "Аљаска, летње рачунање времена", "WIB": "Западно-индонезијско време", "VET": "Венецуела време", "ART": "Аргентина стандардно време", "HNNOMX": "Северозападни Мексико стандардно време", "WARST": "Западна Аргентина летње рачунање времена", "EDT": "Северноамеричко источно летње време", "COT": "Колумбија стандардно време", "COST": "Колумбија летње рачунање времена", "CST": "Северноамеричко централно стандардно време", "HEOG": "Западни Гренланд летње рачунање времена", "AWST": "Аустралијско западно стандардно време", "CHADT": "Чатам летње рачунање времена", "GFT": "Француска Гвајана време", "MDT": "Макао летње рачунање времена", "CDT": "Северноамеричко централно летње време", "NZST": "Нови Зеланд стандардно време", "JST": "Јапанско стандардно време", "BOT": "Боливија време", "ECT": "Еквадор време", "OESZ": "Источноевропско летње рачунање времена", "EAT": "Источно-афричко време", "AST": "Атлантско стандардно време", "UYST": "Уругвај летње рачунање времена", "HAT": "Њуфаундленд летње рачунање времена", "ARST": "Аргентина летње рачунање времена", "HNPM": "Сен Пјер и Микелон стандардно време", "CLT": "Чиле стандардно време", "AEDT": "Аустралијско источно летње рачунање времена", "IST": "Индијско стандардно време", "AKST": "Аљаска, стандардно време", "GYT": "Гвајана време", "HNPMX": "Мексички Пацифик стандардно време", "HAST": "Хавајско-алеутско стандардно време", "HKST": "Хонг Конг летње рачунање времена", "AEST": "Аустралијско источно стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "NZDT": "Нови Зеланд летње рачунање времена", "ACWDT": "Аустралијско централно западно летње рачунање времена", "HNT": "Њуфаундленд стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "MST": "Макао стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "HENOMX": "Северозападни Мексико летње рачунање времена", "SGT": "Сингапур стандардно време", "BT": "Бутан време", "PDT": "Северноамеричко пацифичко летње време", "WITA": "Централно-индонезијско време", "CHAST": "Чатам стандардно време", "HEPMX": "Мексички Пацифик летње рачунање времена", "SRT": "Суринам време", "WESZ": "Западноевропско летње рачунање времена", "LHST": "Лорд Хов стандардно време", "HECU": "Куба летње рачунање времена", "HKT": "Хонг Конг стандардно време", "MESZ": "Средњеевропско летње рачунање времена", "CLST": "Чиле летње рачунање времена", "MYT": "Малезија време", "WEZ": "Западноевропско стандардно време", "JDT": "Јапанско летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "OEZ": "Источноевропско стандардно време"},
+ timezones: map[string]string{"PDT": "Северноамеричко пацифичко летње време", "ARST": "Аргентина летње рачунање времена", "EAT": "Источно-афричко време", "AST": "Атлантско стандардно време", "AEDT": "Аустралијско источно летње рачунање времена", "SRT": "Суринам време", "CHADT": "Чатам летње рачунање времена", "CAT": "Централно-афричко време", "MEZ": "Средњеевропско стандардно време", "HEOG": "Западни Гренланд летње рачунање времена", "AWST": "Аустралијско западно стандардно време", "ACWST": "Аустралијско централно западно стандардно време", "NZST": "Нови Зеланд стандардно време", "CLT": "Чиле стандардно време", "LHST": "Лорд Хов стандардно време", "WIT": "Источно-индонезијско време", "OEZ": "Источноевропско стандардно време", "WART": "Западна Аргентина стандардно време", "CHAST": "Чатам стандардно време", "HKT": "Хонг Конг стандардно време", "CST": "Северноамеричко централно стандардно време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "JST": "Јапанско стандардно време", "HENOMX": "Северозападни Мексико летње рачунање времена", "ACST": "Аустралијско централно стандардно време", "AKST": "Аљаска, стандардно време", "ChST": "Чаморо време", "GYT": "Гвајана време", "SGT": "Сингапур стандардно време", "OESZ": "Источноевропско летње рачунање времена", "WARST": "Западна Аргентина летње рачунање времена", "HNOG": "Западни Гренланд стандардно време", "ADT": "Атлантско летње рачунање времена", "MDT": "Макао летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "COT": "Колумбија стандардно време", "ACDT": "Аустралијско централно летње рачунање времена", "NZDT": "Нови Зеланд летње рачунање времена", "JDT": "Јапанско летње рачунање времена", "AKDT": "Аљаска, летње рачунање времена", "WAST": "Западно-афричко летње рачунање времена", "HECU": "Куба летње рачунање времена", "CDT": "Северноамеричко централно летње време", "MESZ": "Средњеевропско летње рачунање времена", "WEZ": "Западноевропско стандардно време", "UYT": "Уругвај стандардно време", "BT": "Бутан време", "AEST": "Аустралијско источно стандардно време", "CLST": "Чиле летње рачунање времена", "ART": "Аргентина стандардно време", "HKST": "Хонг Конг летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "HNPM": "Сен Пјер и Микелон стандардно време", "∅∅∅": "Амазон летње рачунање времена", "VET": "Венецуела време", "ECT": "Еквадор време", "LHDT": "Лорд Хов летње рачунање времена", "HAST": "Хавајско-алеутско стандардно време", "COST": "Колумбија летње рачунање времена", "HAT": "Њуфаундленд летње рачунање времена", "HNPMX": "Мексички Пацифик стандардно време", "TMT": "Туркменистан стандардно време", "WAT": "Западно-афричко стандардно време", "SAST": "Јужно-афричко време", "HNCU": "Куба стандардно време", "HADT": "Хавајско-алеутско летње рачунање времена", "GMT": "Средње време по Гриничу", "HNNOMX": "Северозападни Мексико стандардно време", "HNT": "Њуфаундленд стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "AWDT": "Аустралијско западно летње рачунање времена", "IST": "Индијско стандардно време", "TMST": "Туркменистан летње рачунање времена", "WESZ": "Западноевропско летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена", "EDT": "Северноамеричко источно летње време", "GFT": "Француска Гвајана време", "WITA": "Централно-индонезијско време", "UYST": "Уругвај летње рачунање времена", "WIB": "Западно-индонезијско време", "BOT": "Боливија време", "MYT": "Малезија време", "MST": "Макао стандардно време", "PST": "Северноамеричко пацифичко стандардно време"},
}
}
@@ -103,10 +103,10 @@ func (sr *sr_Cyrl_BA) CardinalPluralRule(num float64, v uint64) locales.PluralRu
n := math.Abs(num)
i := int64(n)
f := locales.F(n, v)
- iMod100 := i % 100
iMod10 := i % 10
- fMod10 := f % 10
+ iMod100 := i % 100
fMod100 := f % 100
+ fMod10 := f % 10
if (v == 0 && iMod10 == 1 && iMod100 != 11) || (fMod10 == 1 && fMod100 != 11) {
return locales.PluralRuleOne
diff --git a/sr_Cyrl_ME/sr_Cyrl_ME.go b/sr_Cyrl_ME/sr_Cyrl_ME.go
index dfe11d5c..87392587 100644
--- a/sr_Cyrl_ME/sr_Cyrl_ME.go
+++ b/sr_Cyrl_ME/sr_Cyrl_ME.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HNT": "Њуфаундленд стандардно време", "HKST": "Хонг Конг летње рачунање времена", "WITA": "Централно-индонезијско време", "NZST": "Нови Зеланд стандардно време", "JDT": "Јапанско летње рачунање времена", "WESZ": "Западноевропско летње рачунање времена", "MESZ": "Средњеевропско летње рачунање времена", "GFT": "Француска Гвајана време", "HNNOMX": "Северозападни Мексико стандардно време", "SGT": "Сингапур стандардно време", "EDT": "Северноамеричко источно летње време", "HAT": "Њуфаундленд летње рачунање времена", "AWDT": "Аустралијско западно летње рачунање времена", "SAST": "Јужно-афричко време", "CLST": "Чиле летње рачунање времена", "HEEG": "Источни Гренланд летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "WARST": "Западна Аргентина летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена", "HADT": "Хавајско-алеутско летње рачунање времена", "VET": "Венецуела време", "HNOG": "Западни Гренланд стандардно време", "PST": "Северноамеричко пацифичко стандардно време", "OESZ": "Источноевропско летње рачунање времена", "HNCU": "Куба стандардно време", "AKDT": "Аљаска, летње рачунање времена", "GYT": "Гвајана време", "WIB": "Западно-индонезијско време", "MDT": "Северноамеричко планинско летње време", "AWST": "Аустралијско западно стандардно време", "IST": "Индијско стандардно време", "COT": "Колумбија стандардно време", "HEOG": "Западни Гренланд летње рачунање времена", "HNPM": "Сен Пјер и Микелон стандардно време", "CLT": "Чиле стандардно време", "HNEG": "Источни Гренланд стандардно време", "UYT": "Уругвај стандардно време", "WAT": "Западно-афричко стандардно време", "CAT": "Централно-афричко време", "COST": "Колумбија летње рачунање времена", "ARST": "Аргентина летње рачунање времена", "AEST": "Аустралијско источно стандардно време", "CHADT": "Чатам летње рачунање времена", "ChST": "Чаморо време", "ACDT": "Аустралијско централно летње рачунање времена", "MST": "Северноамеричко планинско стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "HENOMX": "Северозападни Мексико летње рачунање времена", "WART": "Западна Аргентина стандардно време", "MYT": "Малезија време", "LHST": "Лорд Хов стандардно време", "WAST": "Западно-афричко летње рачунање времена", "OEZ": "Источноевропско стандардно време", "CDT": "Северноамеричко централно летње време", "CST": "Северноамеричко централно стандардно време", "AST": "Атлантско стандардно време", "WIT": "Источно-индонезијско време", "BT": "Бутан време", "LHDT": "Лорд Хов летње рачунање времена", "TMT": "Туркменистан стандардно време", "EST": "Северноамеричко источно стандардно време", "HECU": "Куба летње рачунање времена", "ART": "Аргентина стандардно време", "WEZ": "Западноевропско стандардно време", "HKT": "Хонг Конг стандардно време", "MEZ": "Средњеевропско стандардно време", "TMST": "Туркменистан летње рачунање времена", "PDT": "Северноамеричко пацифичко летње време", "JST": "Јапанско стандардно време", "UYST": "Уругвај летње рачунање времена", "SRT": "Суринам време", "NZDT": "Нови Зеланд летње рачунање времена", "ACST": "Аустралијско централно стандардно време", "GMT": "Средње време по Гриничу", "HNPMX": "Мексички Пацифик стандардно време", "HAST": "Хавајско-алеутско стандардно време", "BOT": "Боливија време", "ECT": "Еквадор време", "EAT": "Источно-афричко време", "AEDT": "Аустралијско источно летње рачунање времена", "CHAST": "Чатам стандардно време", "∅∅∅": "Амазон летње рачунање времена", "AKST": "Аљаска, стандардно време", "ADT": "Атлантско летње рачунање времена"},
+ timezones: map[string]string{"HNPM": "Сен Пјер и Микелон стандардно време", "CST": "Северноамеричко централно стандардно време", "AWST": "Аустралијско западно стандардно време", "ART": "Аргентина стандардно време", "HKT": "Хонг Конг стандардно време", "COT": "Колумбија стандардно време", "∅∅∅": "Акре летње рачунање времена", "LHDT": "Лорд Хов летње рачунање времена", "HNPMX": "Мексички Пацифик стандардно време", "WIB": "Западно-индонезијско време", "SGT": "Сингапур стандардно време", "JST": "Јапанско стандардно време", "WART": "Западна Аргентина стандардно време", "MST": "Макао стандардно време", "HKST": "Хонг Конг летње рачунање времена", "HNCU": "Куба стандардно време", "CDT": "Северноамеричко централно летње време", "CHAST": "Чатам стандардно време", "CLT": "Чиле стандардно време", "CLST": "Чиле летње рачунање времена", "COST": "Колумбија летње рачунање времена", "EAT": "Источно-афричко време", "MESZ": "Средњеевропско летње рачунање времена", "GMT": "Средње време по Гриничу", "EDT": "Северноамеричко источно летње време", "GFT": "Француска Гвајана време", "WITA": "Централно-индонезијско време", "ECT": "Еквадор време", "IST": "Индијско стандардно време", "ARST": "Аргентина летње рачунање времена", "AEDT": "Аустралијско источно летње рачунање времена", "GYT": "Гвајана време", "MEZ": "Средњеевропско стандардно време", "AKST": "Аљаска, стандардно време", "AEST": "Аустралијско источно стандардно време", "OESZ": "Источноевропско летње рачунање времена", "MYT": "Малезија време", "TMST": "Туркменистан летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "LHST": "Лорд Хов стандардно време", "HADT": "Хавајско-алеутско летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "MDT": "Макао летње рачунање времена", "SAST": "Јужно-афричко време", "HECU": "Куба летње рачунање времена", "NZST": "Нови Зеланд стандардно време", "WARST": "Западна Аргентина летње рачунање времена", "WAST": "Западно-афричко летње рачунање времена", "ACDT": "Аустралијско централно летње рачунање времена", "HAT": "Њуфаундленд летње рачунање времена", "PDT": "Северноамеричко пацифичко летње време", "VET": "Венецуела време", "AST": "Атлантско стандардно време", "HEOG": "Западни Гренланд летње рачунање времена", "WAT": "Западно-афричко стандардно време", "ACST": "Аустралијско централно стандардно време", "ADT": "Атлантско летње рачунање времена", "UYST": "Уругвај летње рачунање времена", "SRT": "Суринам време", "WIT": "Источно-индонезијско време", "PST": "Северноамеричко пацифичко стандардно време", "JDT": "Јапанско летње рачунање времена", "OEZ": "Источноевропско стандардно време", "HNOG": "Западни Гренланд стандардно време", "HENOMX": "Северозападни Мексико летње рачунање времена", "BT": "Бутан време", "HNT": "Њуфаундленд стандардно време", "CAT": "Централно-афричко време", "WEZ": "Западноевропско стандардно време", "TMT": "Туркменистан стандардно време", "HNNOMX": "Северозападни Мексико стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "AKDT": "Аљаска, летње рачунање времена", "ChST": "Чаморо време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена", "BOT": "Боливија време", "NZDT": "Нови Зеланд летње рачунање времена", "AWDT": "Аустралијско западно летње рачунање времена", "CHADT": "Чатам летње рачунање времена", "WESZ": "Западноевропско летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "UYT": "Уругвај стандардно време", "HAST": "Хавајско-алеутско стандардно време", "ACWDT": "Аустралијско централно западно летње рачунање времена"},
}
}
@@ -105,8 +105,8 @@ func (sr *sr_Cyrl_ME) CardinalPluralRule(num float64, v uint64) locales.PluralRu
f := locales.F(n, v)
iMod10 := i % 10
iMod100 := i % 100
- fMod10 := f % 10
fMod100 := f % 100
+ fMod10 := f % 10
if (v == 0 && iMod10 == 1 && iMod100 != 11) || (fMod10 == 1 && fMod100 != 11) {
return locales.PluralRuleOne
diff --git a/sr_Cyrl_RS/sr_Cyrl_RS.go b/sr_Cyrl_RS/sr_Cyrl_RS.go
index fabc5914..4d0a3577 100644
--- a/sr_Cyrl_RS/sr_Cyrl_RS.go
+++ b/sr_Cyrl_RS/sr_Cyrl_RS.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"п. н. е.", "н. е."},
erasNarrow: []string{"п.н.е.", "н.е."},
erasWide: []string{"пре нове ере", "нове ере"},
- timezones: map[string]string{"HKST": "Хонг Конг летње рачунање времена", "HECU": "Куба летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "VET": "Венецуела време", "HNOG": "Западни Гренланд стандардно време", "BOT": "Боливија време", "WAST": "Западно-афричко летње рачунање времена", "MYT": "Малезија време", "ART": "Аргентина стандардно време", "CHAST": "Чатам стандардно време", "JST": "Јапанско стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "GYT": "Гвајана време", "WESZ": "Западноевропско летње рачунање времена", "HAT": "Њуфаундленд летње рачунање времена", "AEST": "Аустралијско источно стандардно време", "CLST": "Чиле летње рачунање времена", "HNNOMX": "Северозападни Мексико стандардно време", "CST": "Северноамеричко централно стандардно време", "CAT": "Централно-афричко време", "AST": "Атлантско стандардно време", "SRT": "Суринам време", "PST": "Северноамеричко пацифичко стандардно време", "PDT": "Северноамеричко пацифичко летње време", "AEDT": "Аустралијско источно летње рачунање времена", "HKT": "Хонг Конг стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "ChST": "Чаморо време", "ECT": "Еквадор време", "OEZ": "Источноевропско стандардно време", "MST": "Макао стандардно време", "AKST": "Аљаска, стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "WART": "Западна Аргентина стандардно време", "WEZ": "Западноевропско стандардно време", "NZDT": "Нови Зеланд летње рачунање времена", "CHADT": "Чатам летње рачунање времена", "ACDT": "Аустралијско централно летње рачунање времена", "EAT": "Источно-афричко време", "OESZ": "Источноевропско летње рачунање времена", "MDT": "Макао летње рачунање времена", "AKDT": "Аљаска, летње рачунање времена", "LHST": "Лорд Хов стандардно време", "ACST": "Аустралијско централно стандардно време", "COT": "Колумбија стандардно време", "ADT": "Атлантско летње рачунање времена", "CDT": "Северноамеричко централно летње време", "WIT": "Источно-индонезијско време", "MESZ": "Средњеевропско летње рачунање времена", "HENOMX": "Северозападни Мексико летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена", "WIB": "Западно-индонезијско време", "ACWST": "Аустралијско централно западно стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "GFT": "Француска Гвајана време", "HNPMX": "Мексички Пацифик стандардно време", "HADT": "Хавајско-алеутско летње рачунање времена", "BT": "Бутан време", "HEOG": "Западни Гренланд летње рачунање времена", "HNT": "Њуфаундленд стандардно време", "NZST": "Нови Зеланд стандардно време", "SAST": "Јужно-афричко време", "IST": "Индијско стандардно време", "CLT": "Чиле стандардно време", "ARST": "Аргентина летње рачунање времена", "TMST": "Туркменистан летње рачунање времена", "EDT": "Северноамеричко источно летње време", "AWST": "Аустралијско западно стандардно време", "MEZ": "Средњеевропско стандардно време", "JDT": "Јапанско летње рачунање времена", "∅∅∅": "Амазон летње рачунање времена", "TMT": "Туркменистан стандардно време", "WAT": "Западно-афричко стандардно време", "WARST": "Западна Аргентина летње рачунање времена", "GMT": "Средње време по Гриничу", "UYT": "Уругвај стандардно време", "HAST": "Хавајско-алеутско стандардно време", "WITA": "Централно-индонезијско време", "HNPM": "Сен Пјер и Микелон стандардно време", "HNCU": "Куба стандардно време", "UYST": "Уругвај летње рачунање времена", "ACWDT": "Аустралијско централно западно летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "COST": "Колумбија летње рачунање времена", "SGT": "Сингапур стандардно време"},
+ timezones: map[string]string{"ART": "Аргентина стандардно време", "ACST": "Аустралијско централно стандардно време", "ChST": "Чаморо време", "HEOG": "Западни Гренланд летње рачунање времена", "ACDT": "Аустралијско централно летње рачунање времена", "HNOG": "Западни Гренланд стандардно време", "WEZ": "Западноевропско стандардно време", "HKST": "Хонг Конг летње рачунање времена", "JDT": "Јапанско летње рачунање времена", "CLT": "Чиле стандардно време", "WAT": "Западно-афричко стандардно време", "BT": "Бутан време", "AKDT": "Аљаска, летње рачунање времена", "WIB": "Западно-индонезијско време", "AST": "Атлантско стандардно време", "TMST": "Туркменистан летње рачунање времена", "HAT": "Њуфаундленд летње рачунање времена", "UYT": "Уругвај стандардно време", "MESZ": "Средњеевропско летње рачунање времена", "WART": "Западна Аргентина стандардно време", "WESZ": "Западноевропско летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена", "WIT": "Источно-индонезијско време", "BOT": "Боливија време", "LHST": "Лорд Хов стандардно време", "CST": "Северноамеричко централно стандардно време", "PST": "Северноамеричко пацифичко стандардно време", "HAST": "Хавајско-алеутско стандардно време", "HADT": "Хавајско-алеутско летње рачунање времена", "WARST": "Западна Аргентина летње рачунање времена", "GMT": "Средње време по Гриничу", "HNEG": "Источни Гренланд стандардно време", "HNPMX": "Мексички Пацифик стандардно време", "NZDT": "Нови Зеланд летње рачунање времена", "CLST": "Чиле летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "GFT": "Француска Гвајана време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "SAST": "Јужно-афричко време", "CDT": "Северноамеричко централно летње време", "AWST": "Аустралијско западно стандардно време", "NZST": "Нови Зеланд стандардно време", "JST": "Јапанско стандардно време", "ADT": "Атлантско летње рачунање времена", "HNNOMX": "Северозападни Мексико стандардно време", "WITA": "Централно-индонезијско време", "∅∅∅": "Азори летње рачунање времена", "EAT": "Источно-афричко време", "HECU": "Куба летње рачунање времена", "MYT": "Малезија време", "MST": "Макао стандардно време", "ARST": "Аргентина летње рачунање времена", "EDT": "Северноамеричко источно летње време", "HEEG": "Источни Гренланд летње рачунање времена", "LHDT": "Лорд Хов летње рачунање времена", "AEST": "Аустралијско источно стандардно време", "CHADT": "Чатам летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "OEZ": "Источноевропско стандардно време", "TMT": "Туркменистан стандардно време", "COT": "Колумбија стандардно време", "COST": "Колумбија летње рачунање времена", "HNT": "Њуфаундленд стандардно време", "GYT": "Гвајана време", "HNPM": "Сен Пјер и Микелон стандардно време", "UYST": "Уругвај летње рачунање времена", "ACWDT": "Аустралијско централно западно летње рачунање времена", "VET": "Венецуела време", "OESZ": "Источноевропско летње рачунање времена", "MDT": "Макао летње рачунање времена", "CAT": "Централно-афричко време", "SGT": "Сингапур стандардно време", "ECT": "Еквадор време", "PDT": "Северноамеричко пацифичко летње време", "IST": "Индијско стандардно време", "WAST": "Западно-афричко летње рачунање времена", "AEDT": "Аустралијско источно летње рачунање времена", "CHAST": "Чатам стандардно време", "HENOMX": "Северозападни Мексико летње рачунање времена", "HNCU": "Куба стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "HKT": "Хонг Конг стандардно време", "AKST": "Аљаска, стандардно време", "SRT": "Суринам време"},
}
}
@@ -103,10 +103,10 @@ func (sr *sr_Cyrl_RS) CardinalPluralRule(num float64, v uint64) locales.PluralRu
n := math.Abs(num)
i := int64(n)
f := locales.F(n, v)
- iMod10 := i % 10
iMod100 := i % 100
- fMod10 := f % 10
+ iMod10 := i % 10
fMod100 := f % 100
+ fMod10 := f % 10
if (v == 0 && iMod10 == 1 && iMod100 != 11) || (fMod10 == 1 && fMod100 != 11) {
return locales.PluralRuleOne
diff --git a/sr_Cyrl_XK/sr_Cyrl_XK.go b/sr_Cyrl_XK/sr_Cyrl_XK.go
index dd421b3b..6af25788 100644
--- a/sr_Cyrl_XK/sr_Cyrl_XK.go
+++ b/sr_Cyrl_XK/sr_Cyrl_XK.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"п. н. е.", "н. е."},
erasNarrow: []string{"п.н.е.", "н.е."},
erasWide: []string{"пре нове ере", "нове ере"},
- timezones: map[string]string{"AWDT": "Аустралијско западно летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "ACDT": "Аустралијско централно летње рачунање времена", "OESZ": "Источноевропско летње рачунање времена", "HAST": "Хавајско-алеутско стандардно време", "BT": "Бутан време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "WAST": "Западно-афричко летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена", "AST": "Атлантско стандардно време", "VET": "Венецуела време", "WITA": "Централно-индонезијско време", "CHADT": "Чатам летње рачунање времена", "SAST": "Јужно-афричко време", "TMST": "Туркменистан летње рачунање времена", "HNPMX": "Мексички Пацифик стандардно време", "AEST": "Аустралијско источно стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "WAT": "Западно-афричко стандардно време", "HADT": "Хавајско-алеутско летње рачунање времена", "ART": "Аргентина стандардно време", "AWST": "Аустралијско западно стандардно време", "NZST": "Нови Зеланд стандардно време", "CLT": "Чиле стандардно време", "CAT": "Централно-афричко време", "AKDT": "Аљаска, летње рачунање времена", "GYT": "Гвајана време", "HKST": "Хонг Конг летње рачунање времена", "CHAST": "Чатам стандардно време", "UYT": "Уругвај стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "COST": "Колумбија летње рачунање времена", "HNNOMX": "Северозападни Мексико стандардно време", "CST": "Северноамеричко централно стандардно време", "NZDT": "Нови Зеланд летње рачунање времена", "MST": "Макао стандардно време", "AKST": "Аљаска, стандардно време", "EST": "Северноамеричко источно стандардно време", "EDT": "Северноамеричко источно летње време", "UYST": "Уругвај летње рачунање времена", "HNT": "Њуфаундленд стандардно време", "MEZ": "Средњеевропско стандардно време", "HKT": "Хонг Конг стандардно време", "ECT": "Еквадор време", "WARST": "Западна Аргентина летње рачунање времена", "GMT": "Средње време по Гриничу", "SGT": "Сингапур стандардно време", "SRT": "Суринам време", "PST": "Северноамеричко пацифичко стандардно време", "HNCU": "Куба стандардно време", "ACWST": "Аустралијско централно западно стандардно време", "GFT": "Француска Гвајана време", "HECU": "Куба летње рачунање времена", "WIT": "Источно-индонезијско време", "WEZ": "Западноевропско стандардно време", "MESZ": "Средњеевропско летње рачунање времена", "MYT": "Малезија време", "WESZ": "Западноевропско летње рачунање времена", "IST": "Индијско стандардно време", "∅∅∅": "Амазон летње рачунање времена", "JDT": "Јапанско летње рачунање времена", "BOT": "Боливија време", "TMT": "Туркменистан стандардно време", "CDT": "Северноамеричко централно летње време", "ARST": "Аргентина летње рачунање времена", "LHST": "Лорд Хов стандардно време", "WART": "Западна Аргентина стандардно време", "WIB": "Западно-индонезијско време", "HNOG": "Западни Гренланд стандардно време", "HNPM": "Сен Пјер и Микелон стандардно време", "ACST": "Аустралијско централно стандардно време", "OEZ": "Источноевропско стандардно време", "HENOMX": "Северозападни Мексико летње рачунање времена", "MDT": "Макао летње рачунање времена", "HEOG": "Западни Гренланд летње рачунање времена", "ADT": "Атлантско летње рачунање времена", "PDT": "Северноамеричко пацифичко летње време", "CLST": "Чиле летње рачунање времена", "JST": "Јапанско стандардно време", "ChST": "Чаморо време", "HEEG": "Источни Гренланд летње рачунање времена", "EAT": "Источно-афричко време", "COT": "Колумбија стандардно време", "HAT": "Њуфаундленд летње рачунање времена", "AEDT": "Аустралијско источно летње рачунање времена"},
+ timezones: map[string]string{"HNEG": "Источни Гренланд стандардно време", "WITA": "Централно-индонезијско време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "SRT": "Суринам време", "HAST": "Хавајско-алеутско стандардно време", "∅∅∅": "Акре летње рачунање времена", "ACWDT": "Аустралијско централно западно летње рачунање времена", "ADT": "Атлантско летње рачунање времена", "HNOG": "Западни Гренланд стандардно време", "GMT": "Средње време по Гриничу", "ARST": "Аргентина летње рачунање времена", "HNNOMX": "Северозападни Мексико стандардно време", "HEPMX": "Мексички Пацифик летње рачунање времена", "PST": "Северноамеричко пацифичко стандардно време", "NZDT": "Нови Зеланд летње рачунање времена", "CLT": "Чиле стандардно време", "HAT": "Њуфаундленд летње рачунање времена", "MDT": "Северноамеричко планинско летње време", "LHDT": "Лорд Хов летње рачунање времена", "IST": "Индијско стандардно време", "JST": "Јапанско стандардно време", "AKDT": "Аљаска, летње рачунање времена", "GYT": "Гвајана време", "WEZ": "Западноевропско стандардно време", "WART": "Западна Аргентина стандардно време", "HKT": "Хонг Конг стандардно време", "ART": "Аргентина стандардно време", "HKST": "Хонг Конг летње рачунање времена", "COT": "Колумбија стандардно време", "MST": "Северноамеричко планинско стандардно време", "ChST": "Чаморо време", "HECU": "Куба летње рачунање времена", "NZST": "Нови Зеланд стандардно време", "WIT": "Источно-индонезијско време", "CHADT": "Чатам летње рачунање времена", "MYT": "Малезија време", "TMT": "Туркменистан стандардно време", "WESZ": "Западноевропско летње рачунање времена", "EDT": "Северноамеричко источно летње време", "HNPM": "Сен Пјер и Микелон стандардно време", "ECT": "Еквадор време", "ACWST": "Аустралијско централно западно стандардно време", "MEZ": "Средњеевропско стандардно време", "HEOG": "Западни Гренланд летње рачунање времена", "BT": "Бутан време", "UYT": "Уругвај стандардно време", "HNCU": "Куба стандардно време", "CLST": "Чиле летње рачунање времена", "HADT": "Хавајско-алеутско летње рачунање времена", "AEDT": "Аустралијско источно летње рачунање времена", "LHST": "Лорд Хов стандардно време", "CST": "Северноамеричко централно стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "PDT": "Северноамеричко пацифичко летње време", "HENOMX": "Северозападни Мексико летње рачунање времена", "AKST": "Аљаска, стандардно време", "UYST": "Уругвај летње рачунање времена", "VET": "Венецуела време", "EST": "Северноамеричко источно стандардно време", "COST": "Колумбија летње рачунање времена", "SAST": "Јужно-афричко време", "WIB": "Западно-индонезијско време", "CAT": "Централно-афричко време", "JDT": "Јапанско летње рачунање времена", "HEEG": "Источни Гренланд летње рачунање времена", "HNPMX": "Мексички Пацифик стандардно време", "CDT": "Северноамеричко централно летње време", "BOT": "Боливија време", "MESZ": "Средњеевропско летње рачунање времена", "ACST": "Аустралијско централно стандардно време", "HNT": "Њуфаундленд стандардно време", "AST": "Атлантско стандардно време", "OESZ": "Источноевропско летње рачунање времена", "WAST": "Западно-афричко летње рачунање времена", "ACDT": "Аустралијско централно летње рачунање времена", "EAT": "Источно-афричко време", "AWST": "Аустралијско западно стандардно време", "CHAST": "Чатам стандардно време", "OEZ": "Источноевропско стандардно време", "WAT": "Западно-афричко стандардно време", "GFT": "Француска Гвајана време", "AEST": "Аустралијско источно стандардно време", "SGT": "Сингапур стандардно време", "WARST": "Западна Аргентина летње рачунање времена", "TMST": "Туркменистан летње рачунање времена"},
}
}
@@ -103,8 +103,8 @@ func (sr *sr_Cyrl_XK) CardinalPluralRule(num float64, v uint64) locales.PluralRu
n := math.Abs(num)
i := int64(n)
f := locales.F(n, v)
- iMod10 := i % 10
iMod100 := i % 100
+ iMod10 := i % 10
fMod10 := f % 10
fMod100 := f % 100
diff --git a/sr_Latn/sr_Latn.go b/sr_Latn/sr_Latn.go
index 637ba8b4..f3fa3ca2 100644
--- a/sr_Latn/sr_Latn.go
+++ b/sr_Latn/sr_Latn.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"p. n. e.", "n. e."},
erasNarrow: []string{"p.n.e.", "n.e."},
erasWide: []string{"pre nove ere", "nove ere"},
- timezones: map[string]string{"WART": "Zapadna Argentina standardno vreme", "MST": "Makao standardno vreme", "CLST": "Čile letnje računanje vremena", "JDT": "Japansko letnje računanje vremena", "ACDT": "Australijsko centralno letnje računanje vremena", "EDT": "Severnoameričko istočno letnje vreme", "AEDT": "Australijsko istočno letnje računanje vremena", "MEZ": "Srednjeevropsko standardno vreme", "LHST": "Lord Hov standardno vreme", "ACST": "Australijsko centralno standardno vreme", "HNCU": "Kuba standardno vreme", "WESZ": "Zapadnoevropsko letnje računanje vremena", "MESZ": "Srednjeevropsko letnje računanje vremena", "BOT": "Bolivija vreme", "CDT": "Severnoameričko centralno letnje vreme", "WEZ": "Zapadnoevropsko standardno vreme", "ART": "Argentina standardno vreme", "ARST": "Argentina letnje računanje vremena", "WITA": "Centralno-indonezijsko vreme", "COST": "Kolumbija letnje računanje vremena", "HECU": "Kuba letnje računanje vremena", "EST": "Severnoameričko istočno standardno vreme", "MDT": "Makao letnje računanje vremena", "UYT": "Urugvaj standardno vreme", "LHDT": "Lord Hov letnje računanje vremena", "HENOMX": "Severozapadni Meksiko letnje računanje vremena", "GYT": "Gvajana vreme", "SAST": "Južno-afričko vreme", "VET": "Venecuela vreme", "BT": "Butan vreme", "WAST": "Zapadno-afričko letnje računanje vremena", "OEZ": "Istočnoevropsko standardno vreme", "WARST": "Zapadna Argentina letnje računanje vremena", "COT": "Kolumbija standardno vreme", "SGT": "Singapur standardno vreme", "ADT": "Atlantsko letnje računanje vremena", "HAT": "Njufaundlend letnje računanje vremena", "NZST": "Novi Zeland standardno vreme", "JST": "Japansko standardno vreme", "HEPMX": "Meksički Pacifik letnje računanje vremena", "WIB": "Zapadno-indonezijsko vreme", "ChST": "Čamoro vreme", "HNEG": "Istočni Grenland standardno vreme", "TMST": "Turkmenistan letnje računanje vremena", "CAT": "Centralno-afričko vreme", "ECT": "Ekvador vreme", "∅∅∅": "Peru letnje računanje vremena", "PDT": "Severnoameričko pacifičko letnje vreme", "AWDT": "Australijsko zapadno letnje računanje vremena", "CHADT": "Čatam letnje računanje vremena", "TMT": "Turkmenistan standardno vreme", "HAST": "Havajsko-aleutsko standardno vreme", "SRT": "Surinam vreme", "HKST": "Hong Kong letnje računanje vremena", "HEPM": "Sen Pjer i Mikelon letnje računanje vremena", "AEST": "Australijsko istočno standardno vreme", "HNPM": "Sen Pjer i Mikelon standardno vreme", "EAT": "Istočno-afričko vreme", "AKST": "Aljaska, standardno vreme", "HADT": "Havajsko-aleutsko letnje računanje vremena", "WIT": "Istočno-indonezijsko vreme", "ACWDT": "Australijsko centralno zapadno letnje računanje vremena", "HNOG": "Zapadni Grenland standardno vreme", "OESZ": "Istočnoevropsko letnje računanje vremena", "HNPMX": "Meksički Pacifik standardno vreme", "MYT": "Malezija vreme", "HKT": "Hong Kong standardno vreme", "NZDT": "Novi Zeland letnje računanje vremena", "WAT": "Zapadno-afričko standardno vreme", "AST": "Atlantsko standardno vreme", "PST": "Severnoameričko pacifičko standardno vreme", "HNT": "Njufaundlend standardno vreme", "IST": "Indijsko standardno vreme", "GFT": "Francuska Gvajana vreme", "HNNOMX": "Severozapadni Meksiko standardno vreme", "GMT": "Srednje vreme po Griniču", "CST": "Severnoameričko centralno standardno vreme", "CLT": "Čile standardno vreme", "ACWST": "Australijsko centralno zapadno standardno vreme", "HEEG": "Istočni Grenland letnje računanje vremena", "AKDT": "Aljaska, letnje računanje vremena", "AWST": "Australijsko zapadno standardno vreme", "UYST": "Urugvaj letnje računanje vremena", "HEOG": "Zapadni Grenland letnje računanje vremena", "CHAST": "Čatam standardno vreme"},
+ timezones: map[string]string{"GYT": "Gvajana vreme", "AWDT": "Australijsko zapadno letnje računanje vremena", "MEZ": "Srednjeevropsko standardno vreme", "WITA": "Centralno-indonezijsko vreme", "AKDT": "Aljaska, letnje računanje vremena", "LHDT": "Lord Hov letnje računanje vremena", "ACWST": "Australijsko centralno zapadno standardno vreme", "OESZ": "Istočnoevropsko letnje računanje vremena", "MDT": "Severnoameričko planinsko letnje vreme", "HECU": "Kuba letnje računanje vremena", "CST": "Severnoameričko centralno standardno vreme", "HNPMX": "Meksički Pacifik standardno vreme", "SGT": "Singapur standardno vreme", "ECT": "Ekvador vreme", "IST": "Indijsko standardno vreme", "NZDT": "Novi Zeland letnje računanje vremena", "ACDT": "Australijsko centralno letnje računanje vremena", "HNEG": "Istočni Grenland standardno vreme", "LHST": "Lord Hov standardno vreme", "WESZ": "Zapadnoevropsko letnje računanje vremena", "PST": "Severnoameričko pacifičko standardno vreme", "HAST": "Havajsko-aleutsko standardno vreme", "JST": "Japansko standardno vreme", "HEOG": "Zapadni Grenland letnje računanje vremena", "ART": "Argentina standardno vreme", "HKST": "Hong Kong letnje računanje vremena", "BT": "Butan vreme", "AEDT": "Australijsko istočno letnje računanje vremena", "BOT": "Bolivija vreme", "HADT": "Havajsko-aleutsko letnje računanje vremena", "COT": "Kolumbija standardno vreme", "EAT": "Istočno-afričko vreme", "WIB": "Zapadno-indonezijsko vreme", "EST": "Severnoameričko istočno standardno vreme", "UYST": "Urugvaj letnje računanje vremena", "WARST": "Zapadna Argentina letnje računanje vremena", "AST": "Atlantsko standardno vreme", "HNT": "Njufaundlend standardno vreme", "ChST": "Čamoro vreme", "CDT": "Severnoameričko centralno letnje vreme", "CHAST": "Čatam standardno vreme", "CHADT": "Čatam letnje računanje vremena", "HKT": "Hong Kong standardno vreme", "COST": "Kolumbija letnje računanje vremena", "HNNOMX": "Severozapadni Meksiko standardno vreme", "NZST": "Novi Zeland standardno vreme", "VET": "Venecuela vreme", "∅∅∅": "Peru letnje računanje vremena", "MST": "Severnoameričko planinsko standardno vreme", "MESZ": "Srednjeevropsko letnje računanje vremena", "JDT": "Japansko letnje računanje vremena", "CLST": "Čile letnje računanje vremena", "WAST": "Zapadno-afričko letnje računanje vremena", "EDT": "Severnoameričko istočno letnje vreme", "HENOMX": "Severozapadni Meksiko letnje računanje vremena", "WIT": "Istočno-indonezijsko vreme", "WAT": "Zapadno-afričko standardno vreme", "HEEG": "Istočni Grenland letnje računanje vremena", "HNPM": "Sen Pjer i Mikelon standardno vreme", "TMST": "Turkmenistan letnje računanje vremena", "ACST": "Australijsko centralno standardno vreme", "ADT": "Atlantsko letnje računanje vremena", "WEZ": "Zapadnoevropsko standardno vreme", "MYT": "Malezija vreme", "AEST": "Australijsko istočno standardno vreme", "HNCU": "Kuba standardno vreme", "GMT": "Srednje vreme po Griniču", "ACWDT": "Australijsko centralno zapadno letnje računanje vremena", "WART": "Zapadna Argentina standardno vreme", "GFT": "Francuska Gvajana vreme", "SAST": "Južno-afričko vreme", "PDT": "Severnoameričko pacifičko letnje vreme", "OEZ": "Istočnoevropsko standardno vreme", "AKST": "Aljaska, standardno vreme", "HEPMX": "Meksički Pacifik letnje računanje vremena", "CAT": "Centralno-afričko vreme", "TMT": "Turkmenistan standardno vreme", "HAT": "Njufaundlend letnje računanje vremena", "AWST": "Australijsko zapadno standardno vreme", "CLT": "Čile standardno vreme", "HNOG": "Zapadni Grenland standardno vreme", "ARST": "Argentina letnje računanje vremena", "UYT": "Urugvaj standardno vreme", "HEPM": "Sen Pjer i Mikelon letnje računanje vremena", "SRT": "Surinam vreme"},
}
}
@@ -103,8 +103,8 @@ func (sr *sr_Latn) CardinalPluralRule(num float64, v uint64) locales.PluralRule
n := math.Abs(num)
i := int64(n)
f := locales.F(n, v)
- iMod10 := i % 10
iMod100 := i % 100
+ iMod10 := i % 10
fMod10 := f % 10
fMod100 := f % 100
diff --git a/sr_Latn_BA/sr_Latn_BA.go b/sr_Latn_BA/sr_Latn_BA.go
index 57023a0e..195f5e57 100644
--- a/sr_Latn_BA/sr_Latn_BA.go
+++ b/sr_Latn_BA/sr_Latn_BA.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"prije nove ere", "nove ere"},
- timezones: map[string]string{"ARST": "Аргентина летње рачунање времена", "WEZ": "Западноевропско стандардно време", "AEDT": "Аустралијско источно летње рачунање времена", "SAST": "Јужно-афричко време", "WART": "Западна Аргентина стандардно време", "HAST": "Хавајско-алеутско стандардно време", "HEOG": "Западни Гренланд летње рачунање времена", "ECT": "Еквадор време", "MST": "Макао стандардно време", "WITA": "Централно-индонезијско време", "CLT": "Чиле стандардно време", "ADT": "Атлантско летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "HADT": "Хавајско-алеутско летње рачунање времена", "HECU": "Куба летње рачунање времена", "HNOG": "Западни Гренланд стандардно време", "PST": "Северноамеричко пацифичко стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "CHAST": "Чатам стандардно време", "CLST": "Чиле летње рачунање времена", "ACDT": "Аустралијско централно летње рачунање времена", "MYT": "Малезија време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "NZDT": "Нови Зеланд летње рачунање времена", "TMT": "Туркменистан стандардно време", "HNT": "Њуфаундленд стандардно време", "EDT": "Северноамеричко источно летње време", "CST": "Северноамеричко централно стандардно време", "GYT": "Гвајана време", "VET": "Венецуела време", "ART": "Аргентина стандардно време", "JST": "Јапанско стандардно време", "COT": "Колумбија стандардно време", "∅∅∅": "Азори летње рачунање времена", "TMST": "Туркменистан летње рачунање времена", "OESZ": "Источноевропско летње рачунање времена", "PDT": "Северноамеричко пацифичко летње време", "WIB": "Западно-индонезијско време", "SRT": "Суринам време", "WESZ": "Западноевропско летње рачунање времена", "CAT": "Централно-афричко време", "UYST": "Уругвај летње рачунање времена", "CDT": "Северноамеричко централно летње време", "AKST": "Аљаска, стандардно време", "AEST": "Аустралијско источно стандардно време", "MESZ": "Средњеевропско летње рачунање времена", "WAT": "Западно-афричко стандардно време", "HNCU": "Куба стандардно време", "AST": "Атлантско стандардно време", "AWST": "Аустралијско западно стандардно време", "GFT": "Француска Гвајана време", "ACST": "Аустралијско централно стандардно време", "GMT": "Средње време по Гриничу", "BOT": "Боливија време", "HNNOMX": "Северозападни Мексико стандардно време", "HENOMX": "Северозападни Мексико летње рачунање времена", "IST": "Индијско стандардно време", "HNPMX": "Мексички Пацифик стандардно време", "BT": "Бутан време", "HKST": "Хонг Конг летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "ChST": "Чаморо време", "OEZ": "Источноевропско стандардно време", "MDT": "Макао летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена", "HNPM": "Сен Пјер и Микелон стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "CHADT": "Чатам летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "WARST": "Западна Аргентина летње рачунање времена", "SGT": "Сингапур стандардно време", "HAT": "Њуфаундленд летње рачунање времена", "LHST": "Лорд Хов стандардно време", "NZST": "Нови Зеланд стандардно време", "EAT": "Источно-афричко време", "WAST": "Западно-афричко летње рачунање времена", "UYT": "Уругвај стандардно време", "WIT": "Источно-индонезијско време", "ACWST": "Аустралијско централно западно стандардно време", "HKT": "Хонг Конг стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "JDT": "Јапанско летње рачунање времена", "COST": "Колумбија летње рачунање времена", "AKDT": "Аљаска, летње рачунање времена"},
+ timezones: map[string]string{"PDT": "Северноамеричко пацифичко летње време", "JDT": "Јапанско летње рачунање времена", "MESZ": "Средњеевропско летње рачунање времена", "COT": "Колумбија стандардно време", "HENOMX": "Северозападни Мексико летње рачунање времена", "HAT": "Њуфаундленд летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "SAST": "Јужно-афричко време", "WAST": "Западно-афричко летње рачунање времена", "∅∅∅": "Акре летње рачунање времена", "AWDT": "Аустралијско западно летње рачунање времена", "GMT": "Средње време по Гриничу", "ART": "Аргентина стандардно време", "HKST": "Хонг Конг летње рачунање времена", "CHAST": "Чатам стандардно време", "PST": "Северноамеричко пацифичко стандардно време", "WESZ": "Западноевропско летње рачунање времена", "TMT": "Туркменистан стандардно време", "CHADT": "Чатам летње рачунање времена", "MYT": "Малезија време", "HNOG": "Западни Гренланд стандардно време", "WAT": "Западно-афричко стандардно време", "HNT": "Њуфаундленд стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "WIB": "Западно-индонезијско време", "BOT": "Боливија време", "ACDT": "Аустралијско централно летње рачунање времена", "UYT": "Уругвај стандардно време", "HNPMX": "Мексички Пацифик стандардно време", "NZDT": "Нови Зеланд летње рачунање времена", "HEOG": "Западни Гренланд летње рачунање времена", "MST": "Северноамеричко планинско стандардно време", "MDT": "Северноамеричко планинско летње време", "HNCU": "Куба стандардно време", "CST": "Северноамеричко централно стандардно време", "NZST": "Нови Зеланд стандардно време", "AEST": "Аустралијско источно стандардно време", "WIT": "Источно-индонезијско време", "SGT": "Сингапур стандардно време", "CAT": "Централно-афричко време", "WART": "Западна Аргентина стандардно време", "HNNOMX": "Северозападни Мексико стандардно време", "ChST": "Чаморо време", "IST": "Индијско стандардно време", "JST": "Јапанско стандардно време", "TMST": "Туркменистан летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "WARST": "Западна Аргентина летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "HEPMX": "Мексички Пацифик летње рачунање времена", "GYT": "Гвајана време", "CDT": "Северноамеричко централно летње време", "ECT": "Еквадор време", "EAT": "Источно-афричко време", "HADT": "Хавајско-алеутско летње рачунање времена", "BT": "Бутан време", "AEDT": "Аустралијско источно летње рачунање времена", "UYST": "Уругвај летње рачунање времена", "HNPM": "Сен Пјер и Микелон стандардно време", "SRT": "Суринам време", "ADT": "Атлантско летње рачунање времена", "GFT": "Француска Гвајана време", "LHST": "Лорд Хов стандардно време", "AWST": "Аустралијско западно стандардно време", "OEZ": "Источноевропско стандардно време", "WEZ": "Западноевропско стандардно време", "HAST": "Хавајско-алеутско стандардно време", "ACWST": "Аустралијско централно западно стандардно време", "OESZ": "Источноевропско летње рачунање времена", "ARST": "Аргентина летње рачунање времена", "HKT": "Хонг Конг стандардно време", "COST": "Колумбија летње рачунање времена", "ACWDT": "Аустралијско централно западно летње рачунање времена", "CLST": "Чиле летње рачунање времена", "EDT": "Северноамеричко источно летње време", "ACST": "Аустралијско централно стандардно време", "AKST": "Аљаска, стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "AST": "Атлантско стандардно време", "AKDT": "Аљаска, летње рачунање времена", "LHDT": "Лорд Хов летње рачунање времена", "VET": "Венецуела време", "CLT": "Чиле стандардно време", "WITA": "Централно-индонезијско време", "HECU": "Куба летње рачунање времена"},
}
}
@@ -103,8 +103,8 @@ func (sr *sr_Latn_BA) CardinalPluralRule(num float64, v uint64) locales.PluralRu
n := math.Abs(num)
i := int64(n)
f := locales.F(n, v)
- iMod10 := i % 10
iMod100 := i % 100
+ iMod10 := i % 10
fMod10 := f % 10
fMod100 := f % 100
diff --git a/sr_Latn_ME/sr_Latn_ME.go b/sr_Latn_ME/sr_Latn_ME.go
index 74cbe1c4..9b6e6876 100644
--- a/sr_Latn_ME/sr_Latn_ME.go
+++ b/sr_Latn_ME/sr_Latn_ME.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"NZDT": "Нови Зеланд летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "UYST": "Уругвај летње рачунање времена", "HAST": "Хавајско-алеутско стандардно време", "WITA": "Централно-индонезијско време", "HNT": "Њуфаундленд стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "CLST": "Чиле летње рачунање времена", "JST": "Јапанско стандардно време", "WAST": "Западно-афричко летње рачунање времена", "ECT": "Еквадор време", "AKST": "Аљаска, стандардно време", "CDT": "Северноамеричко централно летње време", "UYT": "Уругвај стандардно време", "HAT": "Њуфаундленд летње рачунање времена", "BOT": "Боливија време", "EAT": "Источно-афричко време", "WARST": "Западна Аргентина летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена", "ACDT": "Аустралијско централно летње рачунање времена", "COT": "Колумбија стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "CHADT": "Чатам летње рачунање времена", "WEZ": "Западноевропско стандардно време", "ChST": "Чаморо време", "OESZ": "Источноевропско летње рачунање времена", "WART": "Западна Аргентина стандардно време", "ADT": "Атлантско летње рачунање времена", "ACST": "Аустралијско централно стандардно време", "WIT": "Источно-индонезијско време", "AEDT": "Аустралијско источно летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "SGT": "Сингапур стандардно време", "HNPMX": "Мексички Пацифик стандардно време", "ARST": "Аргентина летње рачунање времена", "WAT": "Западно-афричко стандардно време", "GMT": "Средње време по Гриничу", "AEST": "Аустралијско источно стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "HEOG": "Западни Гренланд летње рачунање времена", "CHAST": "Чатам стандардно време", "OEZ": "Источноевропско стандардно време", "EDT": "Северноамеричко источно летње време", "MYT": "Малезија време", "HNOG": "Западни Гренланд стандардно време", "HADT": "Хавајско-алеутско летње рачунање времена", "SRT": "Суринам време", "ACWST": "Аустралијско централно западно стандардно време", "IST": "Индијско стандардно време", "∅∅∅": "Амазон летње рачунање времена", "GFT": "Француска Гвајана време", "CAT": "Централно-афричко време", "HENOMX": "Северозападни Мексико летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "COST": "Колумбија летње рачунање времена", "CST": "Северноамеричко централно стандардно време", "WESZ": "Западноевропско летње рачунање времена", "HNPM": "Сен Пјер и Микелон стандардно време", "VET": "Венецуела време", "PDT": "Северноамеричко пацифичко летње време", "MESZ": "Средњеевропско летње рачунање времена", "JDT": "Јапанско летње рачунање времена", "TMT": "Туркменистан стандардно време", "HNCU": "Куба стандардно време", "HECU": "Куба летње рачунање времена", "WIB": "Западно-индонезијско време", "BT": "Бутан време", "HKT": "Хонг Конг стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "TMST": "Туркменистан летње рачунање времена", "HNNOMX": "Северозападни Мексико стандардно време", "AST": "Атлантско стандардно време", "PST": "Северноамеричко пацифичко стандардно време", "LHST": "Лорд Хов стандардно време", "SAST": "Јужно-афричко време", "MST": "Макао стандардно време", "AKDT": "Аљаска, летње рачунање времена", "GYT": "Гвајана време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "HKST": "Хонг Конг летње рачунање времена", "NZST": "Нови Зеланд стандардно време", "CLT": "Чиле стандардно време", "MDT": "Макао летње рачунање времена", "ART": "Аргентина стандардно време", "AWST": "Аустралијско западно стандардно време"},
+ timezones: map[string]string{"HNPM": "Сен Пјер и Микелон стандардно време", "HECU": "Куба летње рачунање времена", "CST": "Северноамеричко централно стандардно време", "HAST": "Хавајско-алеутско стандардно време", "OEZ": "Источноевропско стандардно време", "ACST": "Аустралијско централно стандардно време", "AEDT": "Аустралијско источно летње рачунање времена", "CAT": "Централно-афричко време", "MESZ": "Средњеевропско летње рачунање времена", "JST": "Јапанско стандардно време", "WAT": "Западно-афричко стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "HADT": "Хавајско-алеутско летње рачунање времена", "UYT": "Уругвај стандардно време", "VET": "Венецуела време", "CLT": "Чиле стандардно време", "ARST": "Аргентина летње рачунање времена", "HNT": "Њуфаундленд стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "SGT": "Сингапур стандардно време", "ACWST": "Аустралијско централно западно стандардно време", "HEOG": "Западни Гренланд летње рачунање времена", "MDT": "Макао летње рачунање времена", "ChST": "Чаморо време", "EDT": "Северноамеричко источно летње време", "HKST": "Хонг Конг летње рачунање времена", "NZDT": "Нови Зеланд летње рачунање времена", "UYST": "Уругвај летње рачунање времена", "ADT": "Атлантско летње рачунање времена", "HENOMX": "Северозападни Мексико летње рачунање времена", "AKDT": "Аљаска, летње рачунање времена", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "HNCU": "Куба стандардно време", "TMT": "Туркменистан стандардно време", "MST": "Макао стандардно време", "GFT": "Француска Гвајана време", "SRT": "Суринам време", "AWST": "Аустралијско западно стандардно време", "MEZ": "Средњеевропско стандардно време", "HNOG": "Западни Гренланд стандардно време", "HNNOMX": "Северозападни Мексико стандардно време", "LHST": "Лорд Хов стандардно време", "AKST": "Аљаска, стандардно време", "CHADT": "Чатам летње рачунање времена", "WART": "Западна Аргентина стандардно време", "ART": "Аргентина стандардно време", "COST": "Колумбија летње рачунање времена", "WITA": "Централно-индонезијско време", "HNPMX": "Мексички Пацифик стандардно време", "WIB": "Западно-индонезијско време", "CDT": "Северноамеричко централно летње време", "IST": "Индијско стандардно време", "WESZ": "Западноевропско летње рачунање времена", "WARST": "Западна Аргентина летње рачунање времена", "∅∅∅": "Акре летње рачунање времена", "GMT": "Средње време по Гриничу", "SAST": "Јужно-афричко време", "EAT": "Источно-афричко време", "ECT": "Еквадор време", "JDT": "Јапанско летње рачунање времена", "TMST": "Туркменистан летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "BT": "Бутан време", "AEST": "Аустралијско источно стандардно време", "HEPMX": "Мексички Пацифик летње рачунање времена", "WIT": "Источно-индонезијско време", "PDT": "Северноамеричко пацифичко летње време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "MYT": "Малезија време", "ACDT": "Аустралијско централно летње рачунање времена", "COT": "Колумбија стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "CLST": "Чиле летње рачунање времена", "WAST": "Западно-афричко летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "HKT": "Хонг Конг стандардно време", "HAT": "Њуфаундленд летње рачунање времена", "GYT": "Гвајана време", "CHAST": "Чатам стандардно време", "BOT": "Боливија време", "AST": "Атлантско стандардно време", "OESZ": "Источноевропско летње рачунање времена", "WEZ": "Западноевропско стандардно време", "PST": "Северноамеричко пацифичко стандардно време", "NZST": "Нови Зеланд стандардно време"},
}
}
@@ -105,8 +105,8 @@ func (sr *sr_Latn_ME) CardinalPluralRule(num float64, v uint64) locales.PluralRu
f := locales.F(n, v)
iMod10 := i % 10
iMod100 := i % 100
- fMod10 := f % 10
fMod100 := f % 100
+ fMod10 := f % 10
if (v == 0 && iMod10 == 1 && iMod100 != 11) || (fMod10 == 1 && fMod100 != 11) {
return locales.PluralRuleOne
diff --git a/sr_Latn_RS/sr_Latn_RS.go b/sr_Latn_RS/sr_Latn_RS.go
index abe98b65..7a3ba740 100644
--- a/sr_Latn_RS/sr_Latn_RS.go
+++ b/sr_Latn_RS/sr_Latn_RS.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"п. н. е.", "н. е."},
erasNarrow: []string{"п.н.е.", "н.е."},
erasWide: []string{"пре нове ере", "нове ере"},
- timezones: map[string]string{"CLT": "Чиле стандардно време", "CST": "Северноамеричко централно стандардно време", "SRT": "Суринам време", "AEST": "Аустралијско источно стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "HENOMX": "Северозападни Мексико летње рачунање времена", "MST": "Макао стандардно време", "HADT": "Хавајско-алеутско летње рачунање времена", "ACWDT": "Аустралијско централно западно летње рачунање времена", "AEDT": "Аустралијско источно летње рачунање времена", "ADT": "Атлантско летње рачунање времена", "HEOG": "Западни Гренланд летње рачунање времена", "∅∅∅": "Амазон летње рачунање времена", "SAST": "Јужно-афричко време", "IST": "Индијско стандардно време", "BOT": "Боливија време", "HEEG": "Источни Гренланд летње рачунање времена", "GFT": "Француска Гвајана време", "HNPMX": "Мексички Пацифик стандардно време", "WESZ": "Западноевропско летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "LHST": "Лорд Хов стандардно време", "NZST": "Нови Зеланд стандардно време", "EAT": "Источно-афричко време", "WAT": "Западно-афричко стандардно време", "HNOG": "Западни Гренланд стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "ECT": "Еквадор време", "ARST": "Аргентина летње рачунање времена", "CAT": "Централно-афричко време", "TMT": "Туркменистан стандардно време", "HNCU": "Куба стандардно време", "HEPMX": "Мексички Пацифик летње рачунање времена", "AST": "Атлантско стандардно време", "PST": "Северноамеричко пацифичко стандардно време", "HNT": "Њуфаундленд стандардно време", "CLST": "Чиле летње рачунање времена", "GMT": "Средње време по Гриничу", "CDT": "Северноамеричко централно летње време", "HAST": "Хавајско-алеутско стандардно време", "AWST": "Аустралијско западно стандардно време", "HKST": "Хонг Конг летње рачунање времена", "JDT": "Јапанско летње рачунање времена", "ACST": "Аустралијско централно стандардно време", "SGT": "Сингапур стандардно време", "HNPM": "Сен Пјер и Микелон стандардно време", "MESZ": "Средњеевропско летње рачунање времена", "EDT": "Северноамеричко источно летње време", "ACDT": "Аустралијско централно летње рачунање времена", "HNNOMX": "Северозападни Мексико стандардно време", "HKT": "Хонг Конг стандардно време", "WITA": "Централно-индонезијско време", "CHADT": "Чатам летње рачунање времена", "MDT": "Макао летње рачунање времена", "MYT": "Малезија време", "UYT": "Уругвај стандардно време", "PDT": "Северноамеричко пацифичко летње време", "WEZ": "Западноевропско стандардно време", "AKST": "Аљаска, стандардно време", "VET": "Венецуела време", "HECU": "Куба летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "WAST": "Западно-афричко летње рачунање времена", "OEZ": "Источноевропско стандардно време", "HNEG": "Источни Гренланд стандардно време", "WARST": "Западна Аргентина летње рачунање времена", "AKDT": "Аљаска, летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "OESZ": "Источноевропско летње рачунање времена", "GYT": "Гвајана време", "JST": "Јапанско стандардно време", "TMST": "Туркменистан летње рачунање времена", "CHAST": "Чатам стандардно време", "ChST": "Чаморо време", "UYST": "Уругвај летње рачунање времена", "WIB": "Западно-индонезијско време", "HAT": "Њуфаундленд летње рачунање времена", "ART": "Аргентина стандардно време", "WART": "Западна Аргентина стандардно време", "COT": "Колумбија стандардно време", "COST": "Колумбија летње рачунање времена", "WIT": "Источно-индонезијско време", "BT": "Бутан време", "NZDT": "Нови Зеланд летње рачунање времена"},
+ timezones: map[string]string{"ECT": "Еквадор време", "PST": "Северноамеричко пацифичко стандардно време", "IST": "Индијско стандардно време", "MESZ": "Средњеевропско летње рачунање времена", "COT": "Колумбија стандардно време", "AKDT": "Аљаска, летње рачунање времена", "VET": "Венецуела време", "ADT": "Атлантско летње рачунање времена", "WAT": "Западно-афричко стандардно време", "SRT": "Суринам време", "HECU": "Куба летње рачунање времена", "WIB": "Западно-индонезијско време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "CLT": "Чиле стандардно време", "WAST": "Западно-афричко летње рачунање времена", "HKT": "Хонг Конг стандардно време", "COST": "Колумбија летње рачунање времена", "SAST": "Јужно-афричко време", "BOT": "Боливија време", "NZDT": "Нови Зеланд летње рачунање времена", "HNT": "Њуфаундленд стандардно време", "WITA": "Централно-индонезијско време", "LHDT": "Лорд Хов летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "WESZ": "Западноевропско летње рачунање времена", "GMT": "Средње време по Гриничу", "ACDT": "Аустралијско централно летње рачунање времена", "∅∅∅": "Амазон летње рачунање времена", "NZST": "Нови Зеланд стандардно време", "AST": "Атлантско стандардно време", "MST": "Макао стандардно време", "HNNOMX": "Северозападни Мексико стандардно време", "HAT": "Њуфаундленд летње рачунање времена", "HAST": "Хавајско-алеутско стандардно време", "JDT": "Јапанско летње рачунање времена", "ART": "Аргентина стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "ChST": "Чаморо време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "HNOG": "Западни Гренланд стандардно време", "HEOG": "Западни Гренланд летње рачунање времена", "OEZ": "Источноевропско стандардно време", "EST": "Северноамеричко источно стандардно време", "WIT": "Источно-индонезијско време", "CHAST": "Чатам стандардно време", "BT": "Бутан време", "AEDT": "Аустралијско источно летње рачунање времена", "UYT": "Уругвај стандардно време", "EAT": "Источно-афричко време", "CST": "Северноамеричко централно стандардно време", "PDT": "Северноамеричко пацифичко летње време", "HADT": "Хавајско-алеутско летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "MYT": "Малезија време", "WART": "Западна Аргентина стандардно време", "OESZ": "Источноевропско летње рачунање времена", "WEZ": "Западноевропско стандардно време", "TMST": "Туркменистан летње рачунање времена", "HENOMX": "Северозападни Мексико летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "UYST": "Уругвај летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена", "CDT": "Северноамеричко централно летње време", "SGT": "Сингапур стандардно време", "CAT": "Централно-афричко време", "AEST": "Аустралијско источно стандардно време", "GYT": "Гвајана време", "MDT": "Макао летње рачунање времена", "EDT": "Северноамеричко источно летње време", "HNPM": "Сен Пјер и Микелон стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "JST": "Јапанско стандардно време", "TMT": "Туркменистан стандардно време", "ARST": "Аргентина летње рачунање времена", "GFT": "Француска Гвајана време", "AKST": "Аљаска, стандардно време", "WARST": "Западна Аргентина летње рачунање времена", "ACST": "Аустралијско централно стандардно време", "HNPMX": "Мексички Пацифик стандардно време", "HNCU": "Куба стандардно време", "CHADT": "Чатам летње рачунање времена", "CLST": "Чиле летње рачунање времена", "HKST": "Хонг Конг летње рачунање времена", "LHST": "Лорд Хов стандардно време", "AWST": "Аустралијско западно стандардно време"},
}
}
@@ -103,10 +103,10 @@ func (sr *sr_Latn_RS) CardinalPluralRule(num float64, v uint64) locales.PluralRu
n := math.Abs(num)
i := int64(n)
f := locales.F(n, v)
- iMod100 := i % 100
iMod10 := i % 10
- fMod100 := f % 100
+ iMod100 := i % 100
fMod10 := f % 10
+ fMod100 := f % 100
if (v == 0 && iMod10 == 1 && iMod100 != 11) || (fMod10 == 1 && fMod100 != 11) {
return locales.PluralRuleOne
diff --git a/sr_Latn_XK/sr_Latn_XK.go b/sr_Latn_XK/sr_Latn_XK.go
index d80d96f0..b5a9035b 100644
--- a/sr_Latn_XK/sr_Latn_XK.go
+++ b/sr_Latn_XK/sr_Latn_XK.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"п. н. е.", "н. е."},
erasNarrow: []string{"п.н.е.", "н.е."},
erasWide: []string{"пре нове ере", "нове ере"},
- timezones: map[string]string{"MYT": "Малезија време", "UYST": "Уругвај летње рачунање времена", "CDT": "Северноамеричко централно летње време", "HNT": "Њуфаундленд стандардно време", "WITA": "Централно-индонезијско време", "SAST": "Јужно-афричко време", "PST": "Северноамеричко пацифичко стандардно време", "AWST": "Аустралијско западно стандардно време", "TMT": "Туркменистан стандардно време", "∅∅∅": "Перу летње рачунање времена", "AST": "Атлантско стандардно време", "GYT": "Гвајана време", "VET": "Венецуела време", "ART": "Аргентина стандардно време", "CHAST": "Чатам стандардно време", "SGT": "Сингапур стандардно време", "HECU": "Куба летње рачунање времена", "EDT": "Северноамеричко источно летње време", "ADT": "Атлантско летње рачунање времена", "JST": "Јапанско стандардно време", "HKST": "Хонг Конг летње рачунање времена", "HNPM": "Сен Пјер и Микелон стандардно време", "BOT": "Боливија време", "WAT": "Западно-афричко стандардно време", "MDT": "Макао летње рачунање времена", "AKDT": "Аљаска, летње рачунање времена", "WIT": "Источно-индонезијско време", "AEDT": "Аустралијско источно летње рачунање времена", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "WAST": "Западно-афричко летње рачунање времена", "HNPMX": "Мексички Пацифик стандардно време", "HNOG": "Западни Гренланд стандардно време", "CHADT": "Чатам летње рачунање времена", "ECT": "Еквадор време", "HNNOMX": "Северозападни Мексико стандардно време", "EST": "Северноамеричко источно стандардно време", "HEPMX": "Мексички Пацифик летње рачунање времена", "ARST": "Аргентина летње рачунање времена", "AEST": "Аустралијско источно стандардно време", "JDT": "Јапанско летње рачунање времена", "WART": "Западна Аргентина стандардно време", "COT": "Колумбија стандардно време", "WESZ": "Западноевропско летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "NZST": "Нови Зеланд стандардно време", "IST": "Индијско стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "ChST": "Чаморо време", "WARST": "Западна Аргентина летње рачунање времена", "PDT": "Северноамеричко пацифичко летње време", "WEZ": "Западноевропско стандардно време", "HAT": "Њуфаундленд летње рачунање времена", "MESZ": "Средњеевропско летње рачунање времена", "HNCU": "Куба стандардно време", "HADT": "Хавајско-алеутско летње рачунање времена", "SRT": "Суринам време", "TMST": "Туркменистан летње рачунање времена", "GMT": "Средње време по Гриничу", "MST": "Макао стандардно време", "MEZ": "Средњеевропско стандардно време", "CAT": "Централно-афричко време", "EAT": "Источно-афричко време", "COST": "Колумбија летње рачунање времена", "WIB": "Западно-индонезијско време", "HAST": "Хавајско-алеутско стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "AKST": "Аљаска, стандардно време", "CST": "Северноамеричко централно стандардно време", "BT": "Бутан време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "CLT": "Чиле стандардно време", "ACDT": "Аустралијско централно летње рачунање времена", "HENOMX": "Северозападни Мексико летње рачунање времена", "LHST": "Лорд Хов стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "ACST": "Аустралијско централно стандардно време", "OEZ": "Источноевропско стандардно време", "OESZ": "Источноевропско летње рачунање времена", "UYT": "Уругвај стандардно време", "CLST": "Чиле летње рачунање времена", "GFT": "Француска Гвајана време", "HEOG": "Западни Гренланд летње рачунање времена", "HKT": "Хонг Конг стандардно време", "NZDT": "Нови Зеланд летње рачунање времена"},
+ timezones: map[string]string{"CST": "Северноамеричко централно стандардно време", "WART": "Западна Аргентина стандардно време", "AEDT": "Аустралијско источно летње рачунање времена", "HECU": "Куба летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "MESZ": "Средњеевропско летње рачунање времена", "CLST": "Чиле летње рачунање времена", "OEZ": "Источноевропско стандардно време", "HKST": "Хонг Конг летње рачунање времена", "SRT": "Суринам време", "ARST": "Аргентина летње рачунање времена", "HAST": "Хавајско-алеутско стандардно време", "ACWST": "Аустралијско централно западно стандардно време", "GMT": "Средње време по Гриничу", "AST": "Атлантско стандардно време", "OESZ": "Источноевропско летње рачунање времена", "WEZ": "Западноевропско стандардно време", "IST": "Индијско стандардно време", "TMST": "Туркменистан летње рачунање времена", "WAT": "Западно-афричко стандардно време", "UYT": "Уругвај стандардно време", "CDT": "Северноамеричко централно летње време", "CHAST": "Чатам стандардно време", "BOT": "Боливија време", "AEST": "Аустралијско источно стандардно време", "HNPM": "Сен Пјер и Микелон стандардно време", "AWST": "Аустралијско западно стандардно време", "HADT": "Хавајско-алеутско летње рачунање времена", "HENOMX": "Северозападни Мексико летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "AKST": "Аљаска, стандардно време", "UYST": "Уругвај летње рачунање времена", "HNOG": "Западни Гренланд стандардно време", "HEOG": "Западни Гренланд летње рачунање времена", "TMT": "Туркменистан стандардно време", "HKT": "Хонг Конг стандардно време", "BT": "Бутан време", "HAT": "Њуфаундленд летње рачунање времена", "HNCU": "Куба стандардно време", "WIB": "Западно-индонезијско време", "∅∅∅": "Бразилија летње рачунање времена", "JDT": "Јапанско летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "AKDT": "Аљаска, летње рачунање времена", "SAST": "Јужно-афричко време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "COT": "Колумбија стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "ChST": "Чаморо време", "EAT": "Источно-афричко време", "SGT": "Сингапур стандардно време", "CAT": "Централно-афричко време", "WARST": "Западна Аргентина летње рачунање времена", "ACDT": "Аустралијско централно летње рачунање времена", "HNNOMX": "Северозападни Мексико стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "LHST": "Лорд Хов стандардно време", "CHADT": "Чатам летње рачунање времена", "ECT": "Еквадор време", "JST": "Јапанско стандардно време", "ADT": "Атлантско летње рачунање времена", "EDT": "Северноамеричко источно летње време", "ACST": "Аустралијско централно стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "PST": "Северноамеричко пацифичко стандардно време", "PDT": "Северноамеричко пацифичко летње време", "CLT": "Чиле стандардно време", "MST": "Макао стандардно време", "WIT": "Источно-индонезијско време", "NZST": "Нови Зеланд стандардно време", "WITA": "Централно-индонезијско време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена", "NZDT": "Нови Зеланд летње рачунање времена", "MYT": "Малезија време", "HNT": "Њуфаундленд стандардно време", "VET": "Венецуела време", "MDT": "Макао летње рачунање времена", "WAST": "Западно-афричко летње рачунање времена", "COST": "Колумбија летње рачунање времена", "GFT": "Француска Гвајана време", "WESZ": "Западноевропско летње рачунање времена", "ART": "Аргентина стандардно време", "HNPMX": "Мексички Пацифик стандардно време", "GYT": "Гвајана време"},
}
}
diff --git a/sv/sv.go b/sv/sv.go
index 3a92675e..5536a7bc 100644
--- a/sv/sv.go
+++ b/sv/sv.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "e.Kr."},
erasNarrow: []string{"f.Kr.", "e.Kr."},
erasWide: []string{"före Kristus", "efter Kristus"},
- timezones: map[string]string{"MEZ": "centraleuropeisk normaltid", "OESZ": "östeuropeisk sommartid", "GMT": "Greenwichtid", "MYT": "malaysisk tid", "AEDT": "östaustralisk sommartid", "IST": "indisk tid", "∅∅∅": "Amazonas, sommartid", "TMST": "turkmensk sommartid", "ECT": "ecuadoriansk tid", "WART": "västargentinsk normaltid", "HNNOMX": "nordvästmexikansk normaltid", "WIB": "västindonesisk tid", "WIT": "östindonesisk tid", "WEZ": "västeuropeisk normaltid", "HNEG": "östgrönländsk normaltid", "WARST": "västargentinsk sommartid", "EDT": "östnordamerikansk sommartid", "AKST": "Alaska, normaltid", "SRT": "Surinamtid", "CHADT": "Chatham, sommartid", "OEZ": "östeuropeisk normaltid", "HENOMX": "nordvästmexikansk sommartid", "EST": "östnordamerikansk normaltid", "HKST": "Hongkong, sommartid", "CHAST": "Chatham, normaltid", "CLT": "chilensk normaltid", "EAT": "östafrikansk tid", "WAT": "västafrikansk normaltid", "HEPMX": "mexikansk stillahavstid, sommartid", "AWDT": "västaustralisk sommartid", "HNPM": "S:t Pierre och Miquelon, normaltid", "ACDT": "centralaustralisk sommartid", "HNOG": "västgrönländsk normaltid", "VET": "venezuelansk tid", "HAT": "Newfoundland, sommartid", "NZST": "nyzeeländsk normaltid", "ChST": "Chamorrotid", "ACST": "centralaustralisk normaltid", "WAST": "västafrikansk sommartid", "HAST": "Honolulu, normaltid", "HNT": "Newfoundland, normaltid", "JST": "japansk normaltid", "COST": "colombiansk sommartid", "ACWST": "västcentralaustralisk normaltid", "BT": "bhutansk tid", "PST": "västnordamerikansk normaltid", "LHST": "Lord Howe, normaltid", "TMT": "turkmensk normaltid", "HNPMX": "mexikansk stillahavstid, normaltid", "AKDT": "Alaska, sommartid", "ADT": "nordamerikansk atlantsommartid", "AEST": "östaustralisk normaltid", "CLST": "chilensk sommartid", "JDT": "japansk sommartid", "MDT": "Macausommartid", "GYT": "Guyanatid", "HADT": "Honolulu, sommartid", "WESZ": "västeuropeisk sommartid", "ARST": "östargentinsk sommartid", "HEOG": "västgrönländsk sommartid", "WITA": "centralindonesisk tid", "LHDT": "Lord Howe, sommartid", "CST": "centralnordamerikansk normaltid", "SGT": "Singaporetid", "UYT": "uruguayansk normaltid", "UYST": "uruguayansk sommartid", "AST": "nordamerikansk atlantnormaltid", "PDT": "västnordamerikansk sommartid", "MST": "Macaunormaltid", "HEPM": "S:t Pierre och Miquelon, sommartid", "GFT": "Franska Guyanatid", "HNCU": "kubansk normaltid", "ACWDT": "västcentralaustralisk sommartid", "COT": "colombiansk normaltid", "CDT": "centralnordamerikansk sommartid", "AWST": "västaustralisk normaltid", "HKT": "Hongkong, normaltid", "NZDT": "nyzeeländsk sommartid", "BOT": "boliviansk tid", "HECU": "kubansk sommartid", "ART": "östargentinsk normaltid", "SAST": "sydafrikansk tid", "HEEG": "östgrönländsk sommartid", "CAT": "centralafrikansk tid", "MESZ": "centraleuropeisk sommartid"},
+ timezones: map[string]string{"IST": "indisk tid", "CAT": "centralafrikansk tid", "JST": "japansk normaltid", "HAT": "Newfoundland, sommartid", "HNPMX": "mexikansk stillahavstid, normaltid", "HEPMX": "mexikansk stillahavstid, sommartid", "∅∅∅": "azorisk sommartid", "WAT": "västafrikansk normaltid", "GYT": "Guyanatid", "MEZ": "centraleuropeisk normaltid", "WESZ": "västeuropeisk sommartid", "AST": "nordamerikansk atlantnormaltid", "WIB": "västindonesisk tid", "EAT": "östafrikansk tid", "HADT": "Honolulu, sommartid", "PDT": "västnordamerikansk sommartid", "JDT": "japansk sommartid", "WART": "västargentinsk normaltid", "HEEG": "östgrönländsk sommartid", "AKDT": "Alaska, sommartid", "LHDT": "Lord Howe, sommartid", "CDT": "centralnordamerikansk sommartid", "BOT": "boliviansk tid", "HKST": "Hongkong, sommartid", "SAST": "sydafrikansk tid", "MYT": "malaysisk tid", "CLT": "chilensk normaltid", "ChST": "Chamorrotid", "HEOG": "västgrönländsk sommartid", "BT": "bhutansk tid", "TMST": "turkmensk sommartid", "EDT": "östnordamerikansk sommartid", "AEDT": "östaustralisk sommartid", "CHAST": "Chatham, normaltid", "PST": "västnordamerikansk normaltid", "HNPM": "S:t Pierre och Miquelon, normaltid", "HEPM": "S:t Pierre och Miquelon, sommartid", "CST": "centralnordamerikansk normaltid", "OEZ": "östeuropeisk normaltid", "WAST": "västafrikansk sommartid", "SRT": "Surinamtid", "SGT": "Singaporetid", "HAST": "Honolulu, normaltid", "ART": "östargentinsk normaltid", "ACDT": "centralaustralisk sommartid", "AEST": "östaustralisk normaltid", "ECT": "ecuadoriansk tid", "MESZ": "centraleuropeisk sommartid", "WEZ": "västeuropeisk normaltid", "HNOG": "västgrönländsk normaltid", "TMT": "turkmensk normaltid", "MST": "Macaunormaltid", "HKT": "Hongkong, normaltid", "HENOMX": "nordvästmexikansk sommartid", "ACWDT": "västcentralaustralisk sommartid", "VET": "venezuelansk tid", "CLST": "chilensk sommartid", "GFT": "Franska Guyanatid", "WITA": "centralindonesisk tid", "CHADT": "Chatham, sommartid", "COT": "colombiansk normaltid", "COST": "colombiansk sommartid", "HNNOMX": "nordvästmexikansk normaltid", "UYST": "uruguayansk sommartid", "AWDT": "västaustralisk sommartid", "ACWST": "västcentralaustralisk normaltid", "HNT": "Newfoundland, normaltid", "AKST": "Alaska, normaltid", "LHST": "Lord Howe, normaltid", "HNCU": "kubansk normaltid", "EST": "östnordamerikansk normaltid", "GMT": "Greenwichtid", "WARST": "västargentinsk sommartid", "HNEG": "östgrönländsk normaltid", "UYT": "uruguayansk normaltid", "WIT": "östindonesisk tid", "NZDT": "nyzeeländsk sommartid", "OESZ": "östeuropeisk sommartid", "ADT": "nordamerikansk atlantsommartid", "ARST": "östargentinsk sommartid", "MDT": "Macausommartid", "ACST": "centralaustralisk normaltid", "HECU": "kubansk sommartid", "AWST": "västaustralisk normaltid", "NZST": "nyzeeländsk normaltid"},
}
}
diff --git a/sv_AX/sv_AX.go b/sv_AX/sv_AX.go
index 06bd7176..af30ebc4 100644
--- a/sv_AX/sv_AX.go
+++ b/sv_AX/sv_AX.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "e.Kr."},
erasNarrow: []string{"f.Kr.", "e.Kr."},
erasWide: []string{"före Kristus", "efter Kristus"},
- timezones: map[string]string{"AWDT": "västaustralisk sommartid", "MESZ": "centraleuropeisk sommartid", "GYT": "Guyanatid", "UYST": "uruguayansk sommartid", "BT": "bhutansk tid", "MDT": "Macausommartid", "PDT": "västnordamerikansk sommartid", "WEZ": "västeuropeisk normaltid", "COT": "colombiansk normaltid", "HNCU": "kubansk normaltid", "WIT": "östindonesisk tid", "HEOG": "västgrönländsk sommartid", "NZDT": "nyzeeländsk sommartid", "∅∅∅": "Amazonas, sommartid", "HNEG": "östgrönländsk normaltid", "WAST": "västafrikansk sommartid", "HNPMX": "mexikansk stillahavstid, normaltid", "PST": "västnordamerikansk normaltid", "HEEG": "östgrönländsk sommartid", "ACDT": "centralaustralisk sommartid", "HNNOMX": "nordvästmexikansk normaltid", "HENOMX": "nordvästmexikansk sommartid", "CDT": "centralnordamerikansk sommartid", "MYT": "malaysisk tid", "VET": "venezuelansk tid", "AWST": "västaustralisk normaltid", "NZST": "nyzeeländsk normaltid", "JST": "japansk normaltid", "OESZ": "östeuropeisk sommartid", "EDT": "östnordamerikansk sommartid", "HNPM": "S:t Pierre och Miquelon, normaltid", "TMST": "turkmensk sommartid", "EAT": "östafrikansk tid", "ACWST": "västcentralaustralisk normaltid", "AEST": "östaustralisk normaltid", "COST": "colombiansk sommartid", "GMT": "Greenwichtid", "ACWDT": "västcentralaustralisk sommartid", "WITA": "centralindonesisk tid", "CLT": "chilensk normaltid", "GFT": "Franska Guyanatid", "HEPM": "S:t Pierre och Miquelon, sommartid", "CHADT": "Chatham, sommartid", "SGT": "Singaporetid", "EST": "östnordamerikansk normaltid", "ADT": "nordamerikansk atlantsommartid", "WIB": "västindonesisk tid", "HNOG": "västgrönländsk normaltid", "TMT": "turkmensk normaltid", "MST": "Macaunormaltid", "AKST": "Alaska, normaltid", "CST": "centralnordamerikansk normaltid", "HEPMX": "mexikansk stillahavstid, sommartid", "HKT": "Hongkong, normaltid", "CHAST": "Chatham, normaltid", "ECT": "ecuadoriansk tid", "CAT": "centralafrikansk tid", "WART": "västargentinsk normaltid", "HECU": "kubansk sommartid", "HAT": "Newfoundland, sommartid", "ART": "östargentinsk normaltid", "HKST": "Hongkong, sommartid", "LHST": "Lord Howe, normaltid", "CLST": "chilensk sommartid", "BOT": "boliviansk tid", "OEZ": "östeuropeisk normaltid", "AEDT": "östaustralisk sommartid", "MEZ": "centraleuropeisk normaltid", "WAT": "västafrikansk normaltid", "AST": "nordamerikansk atlantnormaltid", "JDT": "japansk sommartid", "AKDT": "Alaska, sommartid", "UYT": "uruguayansk normaltid", "WESZ": "västeuropeisk sommartid", "HAST": "Honolulu, normaltid", "HADT": "Honolulu, sommartid", "ARST": "östargentinsk sommartid", "ACST": "centralaustralisk normaltid", "WARST": "västargentinsk sommartid", "SRT": "Surinamtid", "HNT": "Newfoundland, normaltid", "LHDT": "Lord Howe, sommartid", "SAST": "sydafrikansk tid", "IST": "indisk tid", "ChST": "Chamorrotid"},
+ timezones: map[string]string{"HEOG": "västgrönländsk sommartid", "ACST": "centralaustralisk normaltid", "COT": "colombiansk normaltid", "COST": "colombiansk sommartid", "HENOMX": "nordvästmexikansk sommartid", "GYT": "Guyanatid", "CHAST": "Chatham, normaltid", "BOT": "boliviansk tid", "EDT": "östnordamerikansk sommartid", "HKST": "Hongkong, sommartid", "HNPMX": "mexikansk stillahavstid, normaltid", "HEPMX": "mexikansk stillahavstid, sommartid", "SGT": "Singaporetid", "NZST": "nyzeeländsk normaltid", "WESZ": "västeuropeisk sommartid", "HAST": "Honolulu, normaltid", "HNT": "Newfoundland, normaltid", "AEDT": "östaustralisk sommartid", "ChST": "Chamorrotid", "HECU": "kubansk sommartid", "AWDT": "västaustralisk sommartid", "CHADT": "Chatham, sommartid", "PST": "västnordamerikansk normaltid", "JST": "japansk normaltid", "TMST": "turkmensk sommartid", "UYST": "uruguayansk sommartid", "LHDT": "Lord Howe, sommartid", "AST": "nordamerikansk atlantnormaltid", "CLST": "chilensk sommartid", "BT": "bhutansk tid", "IST": "indisk tid", "HNOG": "västgrönländsk normaltid", "HAT": "Newfoundland, sommartid", "ACWDT": "västcentralaustralisk sommartid", "HNNOMX": "nordvästmexikansk normaltid", "∅∅∅": "västbrasiliansk sommartid", "UYT": "uruguayansk normaltid", "SAST": "sydafrikansk tid", "WART": "västargentinsk normaltid", "WARST": "västargentinsk sommartid", "WEZ": "västeuropeisk normaltid", "ART": "östargentinsk normaltid", "WAST": "västafrikansk sommartid", "EST": "östnordamerikansk normaltid", "WITA": "centralindonesisk tid", "HNPM": "S:t Pierre och Miquelon, normaltid", "LHST": "Lord Howe, normaltid", "ACWST": "västcentralaustralisk normaltid", "MDT": "Macausommartid", "AKDT": "Alaska, sommartid", "HNCU": "kubansk normaltid", "HADT": "Honolulu, sommartid", "OESZ": "östeuropeisk sommartid", "VET": "venezuelansk tid", "HNEG": "östgrönländsk normaltid", "HEEG": "östgrönländsk sommartid", "AKST": "Alaska, normaltid", "GFT": "Franska Guyanatid", "EAT": "östafrikansk tid", "CDT": "centralnordamerikansk sommartid", "MEZ": "centraleuropeisk normaltid", "OEZ": "östeuropeisk normaltid", "AEST": "östaustralisk normaltid", "HEPM": "S:t Pierre och Miquelon, sommartid", "PDT": "västnordamerikansk sommartid", "GMT": "Greenwichtid", "MYT": "malaysisk tid", "WAT": "västafrikansk normaltid", "HKT": "Hongkong, normaltid", "CST": "centralnordamerikansk normaltid", "ECT": "ecuadoriansk tid", "CLT": "chilensk normaltid", "ACDT": "centralaustralisk sommartid", "MST": "Macaunormaltid", "SRT": "Surinamtid", "WIB": "västindonesisk tid", "WIT": "östindonesisk tid", "AWST": "västaustralisk normaltid", "ADT": "nordamerikansk atlantsommartid", "ARST": "östargentinsk sommartid", "CAT": "centralafrikansk tid", "NZDT": "nyzeeländsk sommartid", "MESZ": "centraleuropeisk sommartid", "TMT": "turkmensk normaltid", "JDT": "japansk sommartid"},
}
}
diff --git a/sv_FI/sv_FI.go b/sv_FI/sv_FI.go
index 0bc272ff..78c3166e 100644
--- a/sv_FI/sv_FI.go
+++ b/sv_FI/sv_FI.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "e.Kr."},
erasNarrow: []string{"f.Kr.", "e.Kr."},
erasWide: []string{"före Kristus", "efter Kristus"},
- timezones: map[string]string{"TMT": "turkmensk normaltid", "COST": "colombiansk sommartid", "HEPMX": "mexikansk stillahavstid, sommartid", "CLST": "chilensk sommartid", "GFT": "Franska Guyanatid", "ACDT": "centralaustralisk sommartid", "HNNOMX": "nordvästmexikansk normaltid", "HECU": "kubansk sommartid", "EDT": "östnordamerikansk sommartid", "AKDT": "Alaska, sommartid", "HAT": "Newfoundland, sommartid", "ChST": "Chamorrotid", "SGT": "Singaporetid", "PDT": "västnordamerikansk sommartid", "ARST": "östargentinsk sommartid", "AEDT": "östaustralisk sommartid", "HKT": "Hongkong, normaltid", "TMST": "turkmensk sommartid", "WARST": "västargentinsk sommartid", "AKST": "Alaska, normaltid", "SRT": "Surinamtid", "HNPM": "S:t Pierre och Miquelon, normaltid", "GMT": "Greenwichtid", "PST": "västnordamerikansk normaltid", "IST": "indisk tid", "ACWST": "västcentralaustralisk normaltid", "NZST": "nyzeeländsk normaltid", "∅∅∅": "Amazonas, sommartid", "WART": "västargentinsk normaltid", "HNCU": "kubansk normaltid", "MST": "Macaunormaltid", "AEST": "östaustralisk normaltid", "AWST": "västaustralisk normaltid", "LHST": "Lord Howe, normaltid", "CLT": "chilensk normaltid", "JST": "japansk normaltid", "ECT": "ecuadoriansk tid", "ADT": "nordamerikansk atlantsommartid", "HADT": "Honolulu, sommartid", "WESZ": "västeuropeisk sommartid", "NZDT": "nyzeeländsk sommartid", "CHAST": "Chatham, normaltid", "HNEG": "östgrönländsk normaltid", "ACST": "centralaustralisk normaltid", "MDT": "Macausommartid", "MYT": "malaysisk tid", "EAT": "östafrikansk tid", "WAT": "västafrikansk normaltid", "HKST": "Hongkong, sommartid", "HNOG": "västgrönländsk normaltid", "HEPM": "S:t Pierre och Miquelon, sommartid", "LHDT": "Lord Howe, sommartid", "HNPMX": "mexikansk stillahavstid, normaltid", "UYT": "uruguayansk normaltid", "GYT": "Guyanatid", "HNT": "Newfoundland, normaltid", "JDT": "japansk sommartid", "OESZ": "östeuropeisk sommartid", "CDT": "centralnordamerikansk sommartid", "WIT": "östindonesisk tid", "BT": "bhutansk tid", "ACWDT": "västcentralaustralisk sommartid", "CHADT": "Chatham, sommartid", "HEEG": "östgrönländsk sommartid", "EST": "östnordamerikansk normaltid", "HAST": "Honolulu, normaltid", "VET": "venezuelansk tid", "SAST": "sydafrikansk tid", "WITA": "centralindonesisk tid", "COT": "colombiansk normaltid", "WIB": "västindonesisk tid", "WEZ": "västeuropeisk normaltid", "HEOG": "västgrönländsk sommartid", "AST": "nordamerikansk atlantnormaltid", "ART": "östargentinsk normaltid", "OEZ": "östeuropeisk normaltid", "HENOMX": "nordvästmexikansk sommartid", "UYST": "uruguayansk sommartid", "CST": "centralnordamerikansk normaltid", "MEZ": "centraleuropeisk normaltid", "MESZ": "centraleuropeisk sommartid", "BOT": "boliviansk tid", "CAT": "centralafrikansk tid", "WAST": "västafrikansk sommartid", "AWDT": "västaustralisk sommartid"},
+ timezones: map[string]string{"CHADT": "Chatham, sommartid", "BOT": "boliviansk tid", "TMT": "turkmensk normaltid", "TMST": "turkmensk sommartid", "HENOMX": "nordvästmexikansk sommartid", "AKST": "Alaska, normaltid", "AEST": "östaustralisk normaltid", "ECT": "ecuadoriansk tid", "∅∅∅": "Amazonas, sommartid", "ACWDT": "västcentralaustralisk sommartid", "MESZ": "centraleuropeisk sommartid", "WITA": "centralindonesisk tid", "COST": "colombiansk sommartid", "UYT": "uruguayansk normaltid", "CAT": "centralafrikansk tid", "JST": "japansk normaltid", "JDT": "japansk sommartid", "WEZ": "västeuropeisk normaltid", "ARST": "östargentinsk sommartid", "WAT": "västafrikansk normaltid", "HNPMX": "mexikansk stillahavstid, normaltid", "HEPMX": "mexikansk stillahavstid, sommartid", "WART": "västargentinsk normaltid", "HEOG": "västgrönländsk sommartid", "ADT": "nordamerikansk atlantsommartid", "ART": "östargentinsk normaltid", "PDT": "västnordamerikansk sommartid", "OEZ": "östeuropeisk normaltid", "MYT": "malaysisk tid", "HNEG": "östgrönländsk normaltid", "HEPM": "S:t Pierre och Miquelon, sommartid", "BT": "bhutansk tid", "HECU": "kubansk sommartid", "WIT": "östindonesisk tid", "CDT": "centralnordamerikansk sommartid", "HNNOMX": "nordvästmexikansk normaltid", "UYST": "uruguayansk sommartid", "LHST": "Lord Howe, normaltid", "EAT": "östafrikansk tid", "NZST": "nyzeeländsk normaltid", "ACDT": "centralaustralisk sommartid", "HNT": "Newfoundland, normaltid", "HNPM": "S:t Pierre och Miquelon, normaltid", "HKT": "Hongkong, normaltid", "HEEG": "östgrönländsk sommartid", "GYT": "Guyanatid", "PST": "västnordamerikansk normaltid", "ACWST": "västcentralaustralisk normaltid", "CLT": "chilensk normaltid", "CLST": "chilensk sommartid", "AST": "nordamerikansk atlantnormaltid", "HAST": "Honolulu, normaltid", "MST": "Macaunormaltid", "WAST": "västafrikansk sommartid", "LHDT": "Lord Howe, sommartid", "AWDT": "västaustralisk sommartid", "GFT": "Franska Guyanatid", "SGT": "Singaporetid", "VET": "venezuelansk tid", "MDT": "Macausommartid", "EDT": "östnordamerikansk sommartid", "ACST": "centralaustralisk normaltid", "WIB": "västindonesisk tid", "CHAST": "Chatham, normaltid", "HADT": "Honolulu, sommartid", "WARST": "västargentinsk sommartid", "OESZ": "östeuropeisk sommartid", "COT": "colombiansk normaltid", "AEDT": "östaustralisk sommartid", "EST": "östnordamerikansk normaltid", "ChST": "Chamorrotid", "SRT": "Surinamtid", "HNCU": "kubansk normaltid", "WESZ": "västeuropeisk sommartid", "HKST": "Hongkong, sommartid", "AKDT": "Alaska, sommartid", "SAST": "sydafrikansk tid", "CST": "centralnordamerikansk normaltid", "IST": "indisk tid", "NZDT": "nyzeeländsk sommartid", "HNOG": "västgrönländsk normaltid", "HAT": "Newfoundland, sommartid", "MEZ": "centraleuropeisk normaltid", "GMT": "Greenwichtid", "AWST": "västaustralisk normaltid"},
}
}
diff --git a/sv_SE/sv_SE.go b/sv_SE/sv_SE.go
index 4a957bf9..0d86eda4 100644
--- a/sv_SE/sv_SE.go
+++ b/sv_SE/sv_SE.go
@@ -73,7 +73,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"f.Kr.", "e.Kr."},
erasNarrow: []string{"f.Kr.", "e.Kr."},
erasWide: []string{"före Kristus", "efter Kristus"},
- timezones: map[string]string{"ACDT": "centralaustralisk sommartid", "HAT": "Newfoundland, sommartid", "PST": "västnordamerikansk normaltid", "SAST": "sydafrikansk tid", "CLT": "chilensk normaltid", "ACWST": "västcentralaustralisk normaltid", "ART": "östargentinsk normaltid", "ARST": "östargentinsk sommartid", "HKST": "Hongkong, sommartid", "AEDT": "östaustralisk sommartid", "BOT": "boliviansk tid", "WAT": "västafrikansk normaltid", "BT": "bhutansk tid", "WESZ": "västeuropeisk sommartid", "EST": "östnordamerikansk normaltid", "HKT": "Hongkong, normaltid", "LHDT": "Lord Howe, sommartid", "GFT": "Franska Guyanatid", "SGT": "Singaporetid", "GMT": "Greenwichtid", "MST": "Macaunormaltid", "HAST": "Honolulu, normaltid", "HNOG": "västgrönländsk normaltid", "WAST": "västafrikansk sommartid", "HNCU": "kubansk normaltid", "AWST": "västaustralisk normaltid", "EDT": "östnordamerikansk sommartid", "MYT": "malaysisk tid", "EAT": "östafrikansk tid", "HNNOMX": "nordvästmexikansk normaltid", "MDT": "Macausommartid", "WIB": "västindonesisk tid", "LHST": "Lord Howe, normaltid", "∅∅∅": "Amazonas, sommartid", "HEEG": "östgrönländsk sommartid", "OESZ": "östeuropeisk sommartid", "AKST": "Alaska, normaltid", "CLST": "chilensk sommartid", "ChST": "Chamorrotid", "ECT": "ecuadoriansk tid", "UYT": "uruguayansk normaltid", "AWDT": "västaustralisk sommartid", "CHAST": "Chatham, normaltid", "IST": "indisk tid", "ACST": "centralaustralisk normaltid", "WIT": "östindonesisk tid", "WEZ": "västeuropeisk normaltid", "ACWDT": "västcentralaustralisk sommartid", "HNPM": "S:t Pierre och Miquelon, normaltid", "COST": "colombiansk sommartid", "HECU": "kubansk sommartid", "CST": "centralnordamerikansk normaltid", "NZDT": "nyzeeländsk sommartid", "MESZ": "centraleuropeisk sommartid", "JDT": "japansk sommartid", "OEZ": "östeuropeisk normaltid", "AST": "nordamerikansk atlantnormaltid", "ADT": "nordamerikansk atlantsommartid", "WITA": "centralindonesisk tid", "NZST": "nyzeeländsk normaltid", "CAT": "centralafrikansk tid", "WARST": "västargentinsk sommartid", "UYST": "uruguayansk sommartid", "HNT": "Newfoundland, normaltid", "JST": "japansk normaltid", "HNEG": "östgrönländsk normaltid", "HADT": "Honolulu, sommartid", "AEST": "östaustralisk normaltid", "HEPM": "S:t Pierre och Miquelon, sommartid", "TMT": "turkmensk normaltid", "VET": "venezuelansk tid", "HNPMX": "mexikansk stillahavstid, normaltid", "AKDT": "Alaska, sommartid", "GYT": "Guyanatid", "PDT": "västnordamerikansk sommartid", "CHADT": "Chatham, sommartid", "MEZ": "centraleuropeisk normaltid", "TMST": "turkmensk sommartid", "COT": "colombiansk normaltid", "HEPMX": "mexikansk stillahavstid, sommartid", "CDT": "centralnordamerikansk sommartid", "SRT": "Surinamtid", "HEOG": "västgrönländsk sommartid", "HENOMX": "nordvästmexikansk sommartid", "WART": "västargentinsk normaltid"},
+ timezones: map[string]string{"EAT": "östafrikansk tid", "COST": "colombiansk sommartid", "HAT": "Newfoundland, sommartid", "LHST": "Lord Howe, normaltid", "LHDT": "Lord Howe, sommartid", "HNPMX": "mexikansk stillahavstid, normaltid", "HAST": "Honolulu, normaltid", "WESZ": "västeuropeisk sommartid", "CLST": "chilensk sommartid", "HNEG": "östgrönländsk normaltid", "AEST": "östaustralisk normaltid", "ChST": "Chamorrotid", "HECU": "kubansk sommartid", "ADT": "nordamerikansk atlantsommartid", "HNT": "Newfoundland, normaltid", "UYT": "uruguayansk normaltid", "SAST": "sydafrikansk tid", "GYT": "Guyanatid", "JST": "japansk normaltid", "COT": "colombiansk normaltid", "NZDT": "nyzeeländsk sommartid", "WAT": "västafrikansk normaltid", "WIB": "västindonesisk tid", "HADT": "Honolulu, sommartid", "WARST": "västargentinsk sommartid", "WAST": "västafrikansk sommartid", "AWST": "västaustralisk normaltid", "CHAST": "Chatham, normaltid", "NZST": "nyzeeländsk normaltid", "VET": "venezuelansk tid", "OEZ": "östeuropeisk normaltid", "HNPM": "S:t Pierre och Miquelon, normaltid", "HKST": "Hongkong, sommartid", "AWDT": "västaustralisk sommartid", "SGT": "Singaporetid", "PST": "västnordamerikansk normaltid", "CAT": "centralafrikansk tid", "GMT": "Greenwichtid", "CLT": "chilensk normaltid", "MEZ": "centraleuropeisk normaltid", "ACDT": "centralaustralisk sommartid", "HEEG": "östgrönländsk sommartid", "AEDT": "östaustralisk sommartid", "GFT": "Franska Guyanatid", "CDT": "centralnordamerikansk sommartid", "WIT": "östindonesisk tid", "ECT": "ecuadoriansk tid", "HNOG": "västgrönländsk normaltid", "MST": "Macaunormaltid", "HKT": "Hongkong, normaltid", "WITA": "centralindonesisk tid", "WART": "västargentinsk normaltid", "EDT": "östnordamerikansk sommartid", "∅∅∅": "Brasilia, sommartid", "CHADT": "Chatham, sommartid", "BOT": "boliviansk tid", "IST": "indisk tid", "JDT": "japansk sommartid", "MYT": "malaysisk tid", "HNNOMX": "nordvästmexikansk normaltid", "ACWST": "västcentralaustralisk normaltid", "AST": "nordamerikansk atlantnormaltid", "ACST": "centralaustralisk normaltid", "CST": "centralnordamerikansk normaltid", "PDT": "västnordamerikansk sommartid", "MDT": "Macausommartid", "ART": "östargentinsk normaltid", "BT": "bhutansk tid", "UYST": "uruguayansk sommartid", "HEPMX": "mexikansk stillahavstid, sommartid", "HNCU": "kubansk normaltid", "OESZ": "östeuropeisk sommartid", "WEZ": "västeuropeisk normaltid", "TMST": "turkmensk sommartid", "EST": "östnordamerikansk normaltid", "AKST": "Alaska, normaltid", "ACWDT": "västcentralaustralisk sommartid", "ARST": "östargentinsk sommartid", "SRT": "Surinamtid", "MESZ": "centraleuropeisk sommartid", "HEOG": "västgrönländsk sommartid", "TMT": "turkmensk normaltid", "HENOMX": "nordvästmexikansk sommartid", "AKDT": "Alaska, sommartid", "HEPM": "S:t Pierre och Miquelon, sommartid"},
}
}
diff --git a/sw/sw.go b/sw/sw.go
index d487ee35..a6b49c51 100644
--- a/sw/sw.go
+++ b/sw/sw.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Kristo", "Baada ya Kristo"},
- timezones: map[string]string{"HECU": "Saa za Mchana za Cuba", "MDT": "MDT", "MEZ": "Saa Wastani za Ulaya ya kati", "LHDT": "Saa za Mchana za Lord Howe", "OEZ": "Saa Wastani za Mashariki mwa Ulaya", "HKT": "Saa Wastani za Hong Kong", "AEDT": "Saa za Mchana za Mashariki mwa Australia", "HEPMX": "Saa za mchana za pasifiki za Mexico", "AKST": "Saa za Wastani za Alaska", "GYT": "Saa za Guyana", "MYT": "Saa za Malaysia", "PST": "Saa za Wastani za Pasifiki", "HNOG": "Saa za Wastani za Greenland Magharibi", "HEPM": "Saa za Mchana za Saint-Pierre na Miquelon", "∅∅∅": "Saa za Majira ya joto za Peru", "NZDT": "Saa za Mchana za New Zealand", "CLT": "Saa za Wastani za Chile", "TMST": "Saa za Majira ya joto za Turkmenistan", "ACST": "Saa Wastani za Australia ya Kati", "MESZ": "Saa za Majira ya joto za Ulaya ya Kati", "HENOMX": "Saa za mchana za Mexico Kaskazini Magharibi", "MST": "MST", "VET": "Saa za Venezuela", "ACWDT": "Saa za Mchana za Magharibi ya Kati ya Australia", "HNT": "Saa za Wastani za Newfoundland", "AWDT": "Saa za Mchana za Australia Magharibi", "HNEG": "Saa za Wastani za Greenland Mashariki", "WARST": "Saa za Majira ya joto za Magharibi mwa Argentina", "EDT": "Saa za Mchana za Mashariki", "NZST": "Saa Wastani za New Zealand", "WAST": "Saa za Majira ya joto za Afrika Magharibi", "COST": "Saa za Majira ya joto za Colombia", "GMT": "Saa za Greenwich", "HADT": "Saa za Mchana za Hawaii-Aleutian", "WITA": "Saa za Indonesia ya Kati", "CHAST": "Saa Wastani za Chatham", "JST": "Saa Wastani za Japan", "COT": "Saa za Wastani za Colombia", "UYT": "Saa za Wastani za Uruguay", "SRT": "Saa za Suriname", "SAST": "Saa Wastani za Afrika Kusini", "JDT": "Saa za Mchana za Japan", "ADT": "Saa za Mchana za Atlantiki", "ART": "Saa za Wastani za Argentina", "AEST": "Saa Wastani za Mashariki mwa Australia", "CHADT": "Saa za Mchana za Chatham", "CLST": "Saa za Majira ya joto za Chile", "UYST": "Saa za Majira ya joto za Uruguay", "WEZ": "Saa Wastani za Magharibi mwa Ulaya", "ARST": "Saa za Majira ya joto za Argentina", "HNPM": "Saa za Wastani ya Saint-Pierre na Miquelon", "HNPMX": "Saa za wastani za pasifiki za Mexico", "ACWST": "Saa Wastani za Magharibi ya Kati ya Australia", "ChST": "Saa Wastani za Chamorro", "ECT": "Saa za Ecuador", "WESZ": "Saa za Majira ya joto za Magharibi mwa Ulaya", "HEOG": "Saa za Majira ya joto za Greenland Magharibi", "OESZ": "Saa za Majira ya joto za Mashariki mwa Ulaya", "WAT": "Saa za Wastani za Afrika Magharibi", "SGT": "Saa Wastani za Singapore", "EST": "Saa za Wastani za Mashariki", "WIB": "Saa za Magharibi mwa Indonesia", "HAT": "Saa za Mchana za Newfoundland", "ACDT": "Saa za Mchana za Australia ya Kati", "CAT": "Saa za Afrika ya Kati", "AKDT": "Saa za Mchana za Alaska", "WART": "Saa Wastani za Magharibi mwa Argentina", "HNCU": "Saa za Wastani ya Cuba", "PDT": "Saa za Mchana za Pasifiki", "AWST": "Saa Wastani za Australia Magharibi", "LHST": "Saa Wastani za Lord Howe", "EAT": "Saa za Afrika Mashariki", "CST": "Saa za Wastani za Kati", "HAST": "Saa za Wastani za Hawaii-Aleutian", "WIT": "Saa za Mashariki mwa Indonesia", "BT": "Saa za Bhutan", "HKST": "Saa za Majira ya joto za Hong Kong", "IST": "Saa Wastani za India", "BOT": "Saa za Bolivia", "HNNOMX": "Saa Wastani za Mexico Kaskazini Magharibi", "HEEG": "Saa za Majira ya joto za Greenland Mashariki", "AST": "Saa za Wastani za Atlantiki", "GFT": "Saa za Guiana ya Ufaransa", "TMT": "Saa za Wastani za Turkmenistan", "CDT": "Saa za Mchana za Kati"},
+ timezones: map[string]string{"MST": "Saa za Wastani za Mountain", "ChST": "Saa Wastani za Chamorro", "WEZ": "Saa Wastani za Magharibi mwa Ulaya", "HAT": "Saa za Mchana za Newfoundland", "UYT": "Saa za Wastani za Uruguay", "HADT": "Saa za Mchana za Hawaii-Aleutian", "ACWDT": "Saa za Mchana za Magharibi ya Kati ya Australia", "CLST": "Saa za Majira ya joto za Chile", "WART": "Saa Wastani za Magharibi mwa Argentina", "TMT": "Saa za Wastani za Turkmenistan", "HNNOMX": "Saa Wastani za Mexico Kaskazini Magharibi", "LHST": "Saa Wastani za Lord Howe", "HEPMX": "Saa za mchana za pasifiki za Mexico", "WIT": "Saa za Mashariki mwa Indonesia", "ACWST": "Saa Wastani za Magharibi ya Kati ya Australia", "AEST": "Saa Wastani za Mashariki mwa Australia", "HKT": "Saa Wastani za Hong Kong", "MEZ": "Saa Wastani za Ulaya ya kati", "VET": "Saa za Venezuela", "TMST": "Saa za Majira ya joto za Turkmenistan", "ARST": "Saa za Majira ya joto za Argentina", "COT": "Saa za Wastani za Colombia", "GFT": "Saa za Guiana ya Ufaransa", "UYST": "Saa za Majira ya joto za Uruguay", "NZST": "Saa Wastani za New Zealand", "JST": "Saa Wastani za Japan", "EST": "Saa za Wastani za Mashariki", "HENOMX": "Saa za mchana za Mexico Kaskazini Magharibi", "WITA": "Saa za Indonesia ya Kati", "AKST": "Saa za Wastani za Alaska", "HNPM": "Saa za Wastani ya Saint-Pierre na Miquelon", "CHAST": "Saa Wastani za Chatham", "WAST": "Saa za Majira ya joto za Afrika Magharibi", "HNEG": "Saa za Wastani za Greenland Mashariki", "GYT": "Saa za Guyana", "HNCU": "Saa za Wastani ya Cuba", "WARST": "Saa za Majira ya joto za Magharibi mwa Argentina", "OESZ": "Saa za Majira ya joto za Mashariki mwa Ulaya", "HAST": "Saa za Wastani za Hawaii-Aleutian", "CLT": "Saa za Wastani za Chile", "HNOG": "Saa za Wastani za Greenland Magharibi", "ACDT": "Saa za Mchana za Australia ya Kati", "LHDT": "Saa za Mchana za Lord Howe", "HNPMX": "Saa za wastani za pasifiki za Mexico", "AWDT": "Saa za Mchana za Australia Magharibi", "CHADT": "Saa za Mchana za Chatham", "ADT": "Saa za Mchana za Atlantiki", "MYT": "Saa za Malaysia", "AKDT": "Saa za Mchana za Alaska", "WAT": "Saa za Wastani za Afrika Magharibi", "HNT": "Saa za Wastani za Newfoundland", "∅∅∅": "Saa za Majira ya joto za Peru", "CAT": "Saa za Afrika ya Kati", "MESZ": "Saa za Majira ya joto za Ulaya ya Kati", "EDT": "Saa za Mchana za Mashariki", "PDT": "Saa za Mchana za Pasifiki", "HEEG": "Saa za Majira ya joto za Greenland Mashariki", "WIB": "Saa za Magharibi mwa Indonesia", "CDT": "Saa za Mchana za Kati", "SGT": "Saa Wastani za Singapore", "ECT": "Saa za Ecuador", "AEDT": "Saa za Mchana za Mashariki mwa Australia", "EAT": "Saa za Afrika Mashariki", "AST": "Saa za Wastani za Atlantiki", "JDT": "Saa za Mchana za Japan", "BT": "Saa za Bhutan", "MDT": "Saa za Mchana za Mountain", "HEPM": "Saa za Mchana za Saint-Pierre na Miquelon", "PST": "Saa za Wastani za Pasifiki", "IST": "Saa Wastani za India", "COST": "Saa za Majira ya joto za Colombia", "CST": "Saa za Wastani za Kati", "AWST": "Saa Wastani za Australia Magharibi", "WESZ": "Saa za Majira ya joto za Magharibi mwa Ulaya", "HKST": "Saa za Majira ya joto za Hong Kong", "NZDT": "Saa za Mchana za New Zealand", "HEOG": "Saa za Majira ya joto za Greenland Magharibi", "OEZ": "Saa Wastani za Mashariki mwa Ulaya", "ACST": "Saa Wastani za Australia ya Kati", "SAST": "Saa Wastani za Afrika Kusini", "SRT": "Saa za Suriname", "HECU": "Saa za Mchana za Cuba", "BOT": "Saa za Bolivia", "GMT": "Saa za Greenwich", "ART": "Saa za Wastani za Argentina"},
}
}
diff --git a/sw_CD/sw_CD.go b/sw_CD/sw_CD.go
index b1383b4b..ca3537be 100644
--- a/sw_CD/sw_CD.go
+++ b/sw_CD/sw_CD.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Kristo", "Baada ya Kristo"},
- timezones: map[string]string{"HKST": "Saa za Majira ya joto za Hong Kong", "ChST": "Saa Wastani za Chamorro", "ACST": "Saa Wastani za Australia ya Kati", "EAT": "Saa za Afrika Mashariki", "HNCU": "Saa za Wastani ya Cuba", "EST": "Saa za Wastani za Mashariki", "UYT": "Saa za Wastani za Uruguay", "SAST": "Saa Wastani za Afrika Kusini", "IST": "Saa Wastani za India", "OESZ": "Saa za Majira ya joto za Mashariki mwa Ulaya", "HNNOMX": "Saa Wastani za Mexico Kaskazini Magharibi", "HEPMX": "Saa za mchana za pasifiki za Mexico", "HAT": "Saa za Mchana za Newfoundland", "LHDT": "Saa za Mchana za Lord Howe", "GFT": "Saa za Guiana ya Ufaransa", "ECT": "Saa za Ecuador", "GMT": "Saa za Greenwich", "SGT": "Saa Wastani za Singapore", "MDT": "MDT", "HNEG": "Saa za Wastani za Greenland Mashariki", "MST": "MST", "CST": "Saa za Wastani za Kati", "ACWST": "Saa Wastani za Magharibi ya Kati ya Australia", "TMST": "Saa za Majira ya joto za Turkmenistan", "AKST": "Saa za Wastani za Alaska", "WIB": "Saa za Magharibi mwa Indonesia", "HAST": "Saa za Wastani za Hawaii-Aleutian", "ACWDT": "Saa za Mchana za Magharibi ya Kati ya Australia", "MEZ": "Saa Wastani za Ulaya ya kati", "OEZ": "Saa Wastani za Mashariki mwa Ulaya", "PST": "Saa za Wastani za Pasifiki", "HEPM": "Saa za Mchana za Saint-Pierre na Miquelon", "ACDT": "Saa za Mchana za Australia ya Kati", "WARST": "Saa za Majira ya joto za Magharibi mwa Argentina", "HNPMX": "Saa za wastani za pasifiki za Mexico", "CLT": "Saa za Wastani za Chile", "HKT": "Saa Wastani za Hong Kong", "AWST": "Saa Wastani za Australia Magharibi", "AWDT": "Saa za Mchana za Australia Magharibi", "CAT": "Saa za Afrika ya Kati", "HENOMX": "Saa za mchana za Mexico Kaskazini Magharibi", "CDT": "Saa za Mchana za Kati", "ADT": "Saa za Mchana za Atlantiki", "ART": "Saa za Wastani za Argentina", "HNPM": "Saa za Wastani ya Saint-Pierre na Miquelon", "PDT": "Saa za Mchana za Pasifiki", "MESZ": "Saa za Majira ya joto za Ulaya ya Kati", "LHST": "Saa Wastani za Lord Howe", "AST": "Saa za Wastani za Atlantiki", "UYST": "Saa za Majira ya joto za Uruguay", "VET": "Saa za Venezuela", "BT": "Saa za Bhutan", "HNT": "Saa za Wastani za Newfoundland", "HECU": "Saa za Mchana za Cuba", "JDT": "Saa za Mchana za Japan", "TMT": "Saa za Wastani za Turkmenistan", "BOT": "Saa za Bolivia", "AKDT": "Saa za Mchana za Alaska", "HADT": "Saa za Mchana za Hawaii-Aleutian", "CLST": "Saa za Majira ya joto za Chile", "HEEG": "Saa za Majira ya joto za Greenland Mashariki", "WAT": "Saa za Wastani za Afrika Magharibi", "COT": "Saa za Wastani za Colombia", "ARST": "Saa za Majira ya joto za Argentina", "WESZ": "Saa za Majira ya joto za Magharibi mwa Ulaya", "CHAST": "Saa Wastani za Chatham", "WART": "Saa Wastani za Magharibi mwa Argentina", "EDT": "Saa za Mchana za Mashariki", "GYT": "Saa za Guyana", "AEST": "Saa Wastani za Mashariki mwa Australia", "NZDT": "Saa za Mchana za New Zealand", "SRT": "Saa za Suriname", "HNOG": "Saa za Wastani za Greenland Magharibi", "WITA": "Saa za Indonesia ya Kati", "NZST": "Saa Wastani za New Zealand", "CHADT": "Saa za Mchana za Chatham", "WAST": "Saa za Majira ya joto za Afrika Magharibi", "∅∅∅": "Saa za Majira ya joto za Peru", "HEOG": "Saa za Majira ya joto za Greenland Magharibi", "AEDT": "Saa za Mchana za Mashariki mwa Australia", "COST": "Saa za Majira ya joto za Colombia", "MYT": "Saa za Malaysia", "WIT": "Saa za Mashariki mwa Indonesia", "WEZ": "Saa Wastani za Magharibi mwa Ulaya", "JST": "Saa Wastani za Japan"},
+ timezones: map[string]string{"HAST": "Saa za Wastani za Hawaii-Aleutian", "JDT": "Saa za Mchana za Japan", "HNCU": "Saa za Wastani ya Cuba", "CST": "Saa za Wastani za Kati", "MYT": "Saa za Malaysia", "HEOG": "Saa za Majira ya joto za Greenland Magharibi", "TMST": "Saa za Majira ya joto za Turkmenistan", "HNT": "Saa za Wastani za Newfoundland", "MESZ": "Saa za Majira ya joto za Ulaya ya Kati", "ART": "Saa za Wastani za Argentina", "ARST": "Saa za Majira ya joto za Argentina", "HKST": "Saa za Majira ya joto za Hong Kong", "HEPMX": "Saa za mchana za pasifiki za Mexico", "CDT": "Saa za Mchana za Kati", "HADT": "Saa za Mchana za Hawaii-Aleutian", "HNNOMX": "Saa Wastani za Mexico Kaskazini Magharibi", "AKST": "Saa za Wastani za Alaska", "ChST": "Saa Wastani za Chamorro", "SRT": "Saa za Suriname", "AWDT": "Saa za Mchana za Australia Magharibi", "WAT": "Saa za Wastani za Afrika Magharibi", "EDT": "Saa za Mchana za Mashariki", "HEPM": "Saa za Mchana za Saint-Pierre na Miquelon", "NZST": "Saa Wastani za New Zealand", "JST": "Saa Wastani za Japan", "GMT": "Saa za Greenwich", "OEZ": "Saa Wastani za Mashariki mwa Ulaya", "AEDT": "Saa za Mchana za Mashariki mwa Australia", "LHST": "Saa Wastani za Lord Howe", "GYT": "Saa za Guyana", "WEZ": "Saa Wastani za Magharibi mwa Ulaya", "WESZ": "Saa za Majira ya joto za Magharibi mwa Ulaya", "WIT": "Saa za Mashariki mwa Indonesia", "CHAST": "Saa Wastani za Chatham", "SGT": "Saa Wastani za Singapore", "OESZ": "Saa za Majira ya joto za Mashariki mwa Ulaya", "HENOMX": "Saa za mchana za Mexico Kaskazini Magharibi", "HNPMX": "Saa za wastani za pasifiki za Mexico", "EAT": "Saa za Afrika Mashariki", "HECU": "Saa za Mchana za Cuba", "PST": "Saa za Wastani za Pasifiki", "ACWST": "Saa Wastani za Magharibi ya Kati ya Australia", "ACDT": "Saa za Mchana za Australia ya Kati", "COST": "Saa za Majira ya joto za Colombia", "AEST": "Saa Wastani za Mashariki mwa Australia", "GFT": "Saa za Guiana ya Ufaransa", "∅∅∅": "Saa za Majira ya joto za Azores", "WIB": "Saa za Magharibi mwa Indonesia", "CAT": "Saa za Afrika ya Kati", "IST": "Saa Wastani za India", "CLT": "Saa za Wastani za Chile", "HKT": "Saa Wastani za Hong Kong", "ACST": "Saa Wastani za Australia ya Kati", "UYST": "Saa za Majira ya joto za Uruguay", "AWST": "Saa Wastani za Australia Magharibi", "PDT": "Saa za Mchana za Pasifiki", "CLST": "Saa za Majira ya joto za Chile", "HNOG": "Saa za Wastani za Greenland Magharibi", "AST": "Saa za Wastani za Atlantiki", "MDT": "MDT", "WITA": "Saa za Indonesia ya Kati", "NZDT": "Saa za Mchana za New Zealand", "ADT": "Saa za Mchana za Atlantiki", "TMT": "Saa za Wastani za Turkmenistan", "HAT": "Saa za Mchana za Newfoundland", "UYT": "Saa za Wastani za Uruguay", "SAST": "Saa Wastani za Afrika Kusini", "LHDT": "Saa za Mchana za Lord Howe", "CHADT": "Saa za Mchana za Chatham", "MEZ": "Saa Wastani za Ulaya ya kati", "VET": "Saa za Venezuela", "WAST": "Saa za Majira ya joto za Afrika Magharibi", "AKDT": "Saa za Mchana za Alaska", "HNPM": "Saa za Wastani ya Saint-Pierre na Miquelon", "BOT": "Saa za Bolivia", "ACWDT": "Saa za Mchana za Magharibi ya Kati ya Australia", "WART": "Saa Wastani za Magharibi mwa Argentina", "MST": "MST", "EST": "Saa za Wastani za Mashariki", "ECT": "Saa za Ecuador", "WARST": "Saa za Majira ya joto za Magharibi mwa Argentina", "COT": "Saa za Wastani za Colombia", "BT": "Saa za Bhutan", "HNEG": "Saa za Wastani za Greenland Mashariki", "HEEG": "Saa za Majira ya joto za Greenland Mashariki"},
}
}
diff --git a/sw_KE/sw_KE.go b/sw_KE/sw_KE.go
index 3cbebd49..c8f83aec 100644
--- a/sw_KE/sw_KE.go
+++ b/sw_KE/sw_KE.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Kristo", "Baada ya Kristo"},
- timezones: map[string]string{"WIB": "Saa za Magharibi mwa Indonesia", "WITA": "Saa za Indonesia ya Kati", "CHADT": "Saa za Mchana za Chatham", "NZST": "Saa Wastani za New Zealand", "WARST": "Saa za Majira ya joto za Magharibi mwa Argentina", "HNNOMX": "Saa Wastani za Mexico Kaskazini Magharibi", "WEZ": "Saa Wastani za Magharibi mwa Ulaya", "AWST": "Saa Wastani za Australia Magharibi", "HKST": "Saa za Majira ya joto za Hong Kong", "HNEG": "Saa za Wastani za Greenland Mashariki", "WART": "Saa Wastani za Magharibi mwa Argentina", "SGT": "Saa Wastani za Singapore", "CHAST": "Saa Wastani za Chatham", "CLT": "Saa za Wastani za Chile", "HNCU": "Saa za Wastani ya Cuba", "BT": "Saa za Bhutan", "HNT": "Saa za Wastani za Newfoundland", "MESZ": "Saa za Majira ya joto za Ulaya ya Kati", "NZDT": "Saa za Mchana za New Zealand", "BOT": "Saa za Bolivia", "HEPMX": "Saa za mchana za pasifiki za Mexico", "EST": "Saa za Wastani za Mashariki", "WIT": "Saa za Mashariki mwa Indonesia", "ART": "Saa za Wastani za Argentina", "ARST": "Saa za Majira ya joto za Argentina", "CLST": "Saa za Majira ya joto za Chile", "CAT": "Saa za Afrika ya Kati", "EAT": "Saa za Afrika Mashariki", "COST": "Saa za Majira ya joto za Colombia", "UYT": "Saa za Wastani za Uruguay", "HAST": "Saa za Wastani za Hawaii-Aleutian", "MEZ": "Saa Wastani za Ulaya ya kati", "IST": "Saa Wastani za India", "UYST": "Saa za Majira ya joto za Uruguay", "AKDT": "Saa za Mchana za Alaska", "HEPM": "Saa za Mchana za Saint-Pierre na Miquelon", "LHST": "Saa Wastani za Lord Howe", "LHDT": "Saa za Mchana za Lord Howe", "CST": "Saa za Wastani za Kati", "HADT": "Saa za Mchana za Hawaii-Aleutian", "PDT": "Saa za Mchana za Pasifiki", "AWDT": "Saa za Mchana za Australia Magharibi", "HNPM": "Saa za Wastani ya Saint-Pierre na Miquelon", "ACDT": "Saa za Mchana za Australia ya Kati", "OEZ": "Saa Wastani za Mashariki mwa Ulaya", "EDT": "Saa za Mchana za Mashariki", "MST": "Saa za Wastani za Mountain", "COT": "Saa za Wastani za Colombia", "GMT": "Saa za Greenwich", "SRT": "Saa za Suriname", "SAST": "Saa Wastani za Afrika Kusini", "TMT": "Saa za Wastani za Turkmenistan", "TMST": "Saa za Majira ya joto za Turkmenistan", "VET": "Saa za Venezuela", "HAT": "Saa za Mchana za Newfoundland", "WESZ": "Saa za Majira ya joto za Magharibi mwa Ulaya", "HEOG": "Saa za Majira ya joto za Greenland Magharibi", "HKT": "Saa Wastani za Hong Kong", "HENOMX": "Saa za mchana za Mexico Kaskazini Magharibi", "HECU": "Saa za Mchana za Cuba", "ADT": "Saa za Mchana za Atlantiki", "PST": "Saa za Wastani za Pasifiki", "∅∅∅": "Saa za Majira ya joto za Amazon", "GFT": "Saa za Guiana ya Ufaransa", "HEEG": "Saa za Majira ya joto za Greenland Mashariki", "WAST": "Saa za Majira ya joto za Afrika Magharibi", "HNPMX": "Saa za wastani za pasifiki za Mexico", "ACST": "Saa Wastani za Australia ya Kati", "OESZ": "Saa za Majira ya joto za Mashariki mwa Ulaya", "CDT": "Saa za Mchana za Kati", "AST": "Saa za Wastani za Atlantiki", "GYT": "Saa za Guyana", "AKST": "Saa za Wastani za Alaska", "MDT": "Saa za Mchana za Mountain", "HNOG": "Saa za Wastani za Greenland Magharibi", "AEDT": "Saa za Mchana za Mashariki mwa Australia", "JST": "Saa Wastani za Japan", "ChST": "Saa Wastani za Chamorro", "WAT": "Saa za Wastani za Afrika Magharibi", "ACWST": "Saa Wastani za Magharibi ya Kati ya Australia", "ACWDT": "Saa za Mchana za Magharibi ya Kati ya Australia", "AEST": "Saa Wastani za Mashariki mwa Australia", "JDT": "Saa za Mchana za Japan", "ECT": "Saa za Ecuador", "MYT": "Saa za Malaysia"},
+ timezones: map[string]string{"TMST": "Saa za Majira ya joto za Turkmenistan", "HENOMX": "Saa za mchana za Mexico Kaskazini Magharibi", "UYT": "Saa za Wastani za Uruguay", "HADT": "Saa za Mchana za Hawaii-Aleutian", "IST": "Saa Wastani za India", "WESZ": "Saa za Majira ya joto za Magharibi mwa Ulaya", "GFT": "Saa za Guiana ya Ufaransa", "HNPM": "Saa za Wastani ya Saint-Pierre na Miquelon", "UYST": "Saa za Majira ya joto za Uruguay", "CHAST": "Saa Wastani za Chatham", "CAT": "Saa za Afrika ya Kati", "ADT": "Saa za Mchana za Atlantiki", "HNNOMX": "Saa Wastani za Mexico Kaskazini Magharibi", "MST": "Saa za Wastani za Mountain", "HEPMX": "Saa za mchana za pasifiki za Mexico", "WIB": "Saa za Magharibi mwa Indonesia", "EAT": "Saa za Afrika Mashariki", "BT": "Saa za Bhutan", "CHADT": "Saa za Mchana za Chatham", "HEOG": "Saa za Majira ya joto za Greenland Magharibi", "TMT": "Saa za Wastani za Turkmenistan", "HNEG": "Saa za Wastani za Greenland Mashariki", "CST": "Saa za Wastani za Kati", "BOT": "Saa za Bolivia", "PST": "Saa za Wastani za Pasifiki", "JST": "Saa Wastani za Japan", "ChST": "Saa Wastani za Chamorro", "AST": "Saa za Wastani za Atlantiki", "AKDT": "Saa za Mchana za Alaska", "LHDT": "Saa za Mchana za Lord Howe", "GYT": "Saa za Guyana", "ACWDT": "Saa za Mchana za Magharibi ya Kati ya Australia", "CLT": "Saa za Wastani za Chile", "WEZ": "Saa Wastani za Magharibi mwa Ulaya", "MYT": "Saa za Malaysia", "WARST": "Saa za Majira ya joto za Magharibi mwa Argentina", "HKST": "Saa za Majira ya joto za Hong Kong", "HNPMX": "Saa za wastani za pasifiki za Mexico", "SAST": "Saa Wastani za Afrika Kusini", "HAST": "Saa za Wastani za Hawaii-Aleutian", "ACWST": "Saa Wastani za Magharibi ya Kati ya Australia", "ART": "Saa za Wastani za Argentina", "NZDT": "Saa za Mchana za New Zealand", "JDT": "Saa za Mchana za Japan", "OEZ": "Saa Wastani za Mashariki mwa Ulaya", "SRT": "Saa za Suriname", "LHST": "Saa Wastani za Lord Howe", "HECU": "Saa za Mchana za Cuba", "AWDT": "Saa za Mchana za Australia Magharibi", "ECT": "Saa za Ecuador", "EDT": "Saa za Mchana za Mashariki", "ACST": "Saa Wastani za Australia ya Kati", "COT": "Saa za Wastani za Colombia", "AEST": "Saa Wastani za Mashariki mwa Australia", "GMT": "Saa za Greenwich", "OESZ": "Saa za Majira ya joto za Mashariki mwa Ulaya", "ARST": "Saa za Majira ya joto za Argentina", "EST": "Saa za Wastani za Mashariki", "AEDT": "Saa za Mchana za Mashariki mwa Australia", "HEPM": "Saa za Mchana za Saint-Pierre na Miquelon", "AWST": "Saa Wastani za Australia Magharibi", "SGT": "Saa Wastani za Singapore", "WAT": "Saa za Wastani za Afrika Magharibi", "HAT": "Saa za Mchana za Newfoundland", "MDT": "Saa za Mchana za Mountain", "MESZ": "Saa za Majira ya joto za Ulaya ya Kati", "HNOG": "Saa za Wastani za Greenland Magharibi", "MEZ": "Saa Wastani za Ulaya ya kati", "CLST": "Saa za Majira ya joto za Chile", "HKT": "Saa Wastani za Hong Kong", "WAST": "Saa za Majira ya joto za Afrika Magharibi", "HNT": "Saa za Wastani za Newfoundland", "WITA": "Saa za Indonesia ya Kati", "HNCU": "Saa za Wastani ya Cuba", "ACDT": "Saa za Mchana za Australia ya Kati", "PDT": "Saa za Mchana za Pasifiki", "WART": "Saa Wastani za Magharibi mwa Argentina", "COST": "Saa za Majira ya joto za Colombia", "∅∅∅": "∅∅∅", "CDT": "Saa za Mchana za Kati", "WIT": "Saa za Mashariki mwa Indonesia", "VET": "Saa za Venezuela", "HEEG": "Saa za Majira ya joto za Greenland Mashariki", "AKST": "Saa za Wastani za Alaska", "NZST": "Saa Wastani za New Zealand"},
}
}
diff --git a/sw_TZ/sw_TZ.go b/sw_TZ/sw_TZ.go
index 79425056..ef62f822 100644
--- a/sw_TZ/sw_TZ.go
+++ b/sw_TZ/sw_TZ.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Kristo", "Baada ya Kristo"},
- timezones: map[string]string{"GYT": "Saa za Guyana", "UYT": "Saa za Wastani za Uruguay", "∅∅∅": "Saa za Majira ya joto za Amazon", "HEEG": "Saa za Majira ya joto za Greenland Mashariki", "EAT": "Saa za Afrika Mashariki", "AST": "Saa za Wastani za Atlantiki", "MYT": "Saa za Malaysia", "PST": "Saa za Wastani za Pasifiki", "AWST": "Saa Wastani za Australia Magharibi", "ChST": "Saa Wastani za Chamorro", "HECU": "Saa za Mchana za Cuba", "HEPMX": "Saa za mchana za pasifiki za Mexico", "WIT": "Saa za Mashariki mwa Indonesia", "HAST": "Saa za Wastani za Hawaii-Aleutian", "WEZ": "Saa Wastani za Magharibi mwa Ulaya", "GFT": "Saa za Guiana ya Ufaransa", "WAST": "Saa za Majira ya joto za Afrika Magharibi", "ADT": "Saa za Mchana za Atlantiki", "HAT": "Saa za Mchana za Newfoundland", "HNOG": "Saa za Wastani za Greenland Magharibi", "CHADT": "Saa za Mchana za Chatham", "HNNOMX": "Saa Wastani za Mexico Kaskazini Magharibi", "HENOMX": "Saa za mchana za Mexico Kaskazini Magharibi", "ACST": "Saa Wastani za Australia ya Kati", "WART": "Saa Wastani za Magharibi mwa Argentina", "CST": "Saa za Wastani za Kati", "WESZ": "Saa za Majira ya joto za Magharibi mwa Ulaya", "ACWST": "Saa Wastani za Magharibi ya Kati ya Australia", "ARST": "Saa za Majira ya joto za Argentina", "AEST": "Saa Wastani za Mashariki mwa Australia", "JDT": "Saa za Mchana za Japan", "UYST": "Saa za Majira ya joto za Uruguay", "WIB": "Saa za Magharibi mwa Indonesia", "PDT": "Saa za Mchana za Pasifiki", "LHST": "Saa Wastani za Lord Howe", "COST": "Saa za Majira ya joto za Colombia", "ACDT": "Saa za Mchana za Australia ya Kati", "HNT": "Saa za Wastani za Newfoundland", "MESZ": "Saa za Majira ya joto za Ulaya ya Kati", "JST": "Saa Wastani za Japan", "HNEG": "Saa za Wastani za Greenland Mashariki", "CAT": "Saa za Afrika ya Kati", "HKST": "Saa za Majira ya joto za Hong Kong", "LHDT": "Saa za Mchana za Lord Howe", "BOT": "Saa za Bolivia", "ECT": "Saa za Ecuador", "EST": "Saa za Wastani za Mashariki", "AKST": "Saa za Wastani za Alaska", "HNPM": "Saa za Wastani ya Saint-Pierre na Miquelon", "CLT": "Saa za Wastani za Chile", "WAT": "Saa za Wastani za Afrika Magharibi", "ACWDT": "Saa za Mchana za Magharibi ya Kati ya Australia", "WITA": "Saa za Indonesia ya Kati", "MEZ": "Saa Wastani za Ulaya ya kati", "SAST": "Saa Wastani za Afrika Kusini", "CLST": "Saa za Majira ya joto za Chile", "TMST": "Saa za Majira ya joto za Turkmenistan", "MST": "MST", "EDT": "Saa za Mchana za Mashariki", "AWDT": "Saa za Mchana za Australia Magharibi", "AEDT": "Saa za Mchana za Mashariki mwa Australia", "HNCU": "Saa za Wastani ya Cuba", "GMT": "Saa za Greenwich", "HADT": "Saa za Mchana za Hawaii-Aleutian", "SRT": "Saa za Suriname", "OEZ": "Saa Wastani za Mashariki mwa Ulaya", "OESZ": "Saa za Majira ya joto za Mashariki mwa Ulaya", "TMT": "Saa za Wastani za Turkmenistan", "SGT": "Saa Wastani za Singapore", "HNPMX": "Saa za wastani za pasifiki za Mexico", "VET": "Saa za Venezuela", "ART": "Saa za Wastani za Argentina", "HEOG": "Saa za Majira ya joto za Greenland Magharibi", "HKT": "Saa Wastani za Hong Kong", "IST": "Saa Wastani za India", "WARST": "Saa za Majira ya joto za Magharibi mwa Argentina", "HEPM": "Saa za Mchana za Saint-Pierre na Miquelon", "CHAST": "Saa Wastani za Chatham", "COT": "Saa za Wastani za Colombia", "MDT": "MDT", "AKDT": "Saa za Mchana za Alaska", "CDT": "Saa za Mchana za Kati", "BT": "Saa za Bhutan", "NZST": "Saa Wastani za New Zealand", "NZDT": "Saa za Mchana za New Zealand"},
+ timezones: map[string]string{"CLST": "Saa za Majira ya joto za Chile", "COT": "Saa za Wastani za Colombia", "BT": "Saa za Bhutan", "HNT": "Saa za Wastani za Newfoundland", "EAT": "Saa za Afrika Mashariki", "HAST": "Saa za Wastani za Hawaii-Aleutian", "WAST": "Saa za Majira ya joto za Afrika Magharibi", "HKT": "Saa Wastani za Hong Kong", "AWST": "Saa Wastani za Australia Magharibi", "CAT": "Saa za Afrika ya Kati", "WESZ": "Saa za Majira ya joto za Magharibi mwa Ulaya", "ART": "Saa za Wastani za Argentina", "ACST": "Saa Wastani za Australia ya Kati", "WIT": "Saa za Mashariki mwa Indonesia", "ACWST": "Saa Wastani za Magharibi ya Kati ya Australia", "NZST": "Saa Wastani za New Zealand", "MESZ": "Saa za Majira ya joto za Ulaya ya Kati", "HEOG": "Saa za Majira ya joto za Greenland Magharibi", "ADT": "Saa za Mchana za Atlantiki", "OESZ": "Saa za Majira ya joto za Mashariki mwa Ulaya", "CLT": "Saa za Wastani za Chile", "LHDT": "Saa za Mchana za Lord Howe", "HEPM": "Saa za Mchana za Saint-Pierre na Miquelon", "HEEG": "Saa za Majira ya joto za Greenland Mashariki", "ACWDT": "Saa za Mchana za Magharibi ya Kati ya Australia", "HENOMX": "Saa za mchana za Mexico Kaskazini Magharibi", "WITA": "Saa za Indonesia ya Kati", "UYST": "Saa za Majira ya joto za Uruguay", "CHADT": "Saa za Mchana za Chatham", "CDT": "Saa za Mchana za Kati", "ECT": "Saa za Ecuador", "JST": "Saa Wastani za Japan", "∅∅∅": "Saa za Majira ya joto za Azores", "OEZ": "Saa Wastani za Mashariki mwa Ulaya", "GMT": "Saa za Greenwich", "CST": "Saa za Wastani za Kati", "WARST": "Saa za Majira ya joto za Magharibi mwa Argentina", "ARST": "Saa za Majira ya joto za Argentina", "COST": "Saa za Majira ya joto za Colombia", "AST": "Saa za Wastani za Atlantiki", "NZDT": "Saa za Mchana za New Zealand", "HNNOMX": "Saa Wastani za Mexico Kaskazini Magharibi", "AKDT": "Saa za Mchana za Alaska", "HEPMX": "Saa za mchana za pasifiki za Mexico", "HADT": "Saa za Mchana za Hawaii-Aleutian", "MEZ": "Saa Wastani za Ulaya ya kati", "VET": "Saa za Venezuela", "JDT": "Saa za Mchana za Japan", "WEZ": "Saa Wastani za Magharibi mwa Ulaya", "MST": "MST", "HKST": "Saa za Majira ya joto za Hong Kong", "HNPMX": "Saa za wastani za pasifiki za Mexico", "UYT": "Saa za Wastani za Uruguay", "HNEG": "Saa za Wastani za Greenland Mashariki", "SGT": "Saa Wastani za Singapore", "MYT": "Saa za Malaysia", "AEST": "Saa Wastani za Mashariki mwa Australia", "ChST": "Saa Wastani za Chamorro", "SAST": "Saa Wastani za Afrika Kusini", "BOT": "Saa za Bolivia", "PDT": "Saa za Mchana za Pasifiki", "CHAST": "Saa Wastani za Chatham", "WAT": "Saa za Wastani za Afrika Magharibi", "EST": "Saa za Wastani za Mashariki", "ACDT": "Saa za Mchana za Australia ya Kati", "AEDT": "Saa za Mchana za Mashariki mwa Australia", "SRT": "Saa za Suriname", "WIB": "Saa za Magharibi mwa Indonesia", "AWDT": "Saa za Mchana za Australia Magharibi", "PST": "Saa za Wastani za Pasifiki", "WART": "Saa Wastani za Magharibi mwa Argentina", "TMT": "Saa za Wastani za Turkmenistan", "TMST": "Saa za Majira ya joto za Turkmenistan", "MDT": "MDT", "LHST": "Saa Wastani za Lord Howe", "HAT": "Saa za Mchana za Newfoundland", "AKST": "Saa za Wastani za Alaska", "GFT": "Saa za Guiana ya Ufaransa", "EDT": "Saa za Mchana za Mashariki", "HNCU": "Saa za Wastani ya Cuba", "HECU": "Saa za Mchana za Cuba", "IST": "Saa Wastani za India", "HNOG": "Saa za Wastani za Greenland Magharibi", "HNPM": "Saa za Wastani ya Saint-Pierre na Miquelon", "GYT": "Saa za Guyana"},
}
}
diff --git a/sw_UG/sw_UG.go b/sw_UG/sw_UG.go
index 8ee188d9..313d5fb4 100644
--- a/sw_UG/sw_UG.go
+++ b/sw_UG/sw_UG.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Kristo", "Baada ya Kristo"},
- timezones: map[string]string{"CDT": "Saa za Mchana za Kati", "CHAST": "Saa Wastani za Chatham", "HNEG": "Saa za Wastani za Greenland Mashariki", "WARST": "Saa za Majira ya joto za Magharibi mwa Argentina", "COST": "Saa za Majira ya joto za Colombia", "HEPMX": "Saa za mchana za pasifiki za Mexico", "AEDT": "Saa za Mchana za Mashariki mwa Australia", "MEZ": "Saa Wastani za Ulaya ya kati", "EAT": "Saa za Afrika Mashariki", "HENOMX": "Saa za mchana za Mexico Kaskazini Magharibi", "GYT": "Saa za Guyana", "ACWST": "Saa Wastani za Magharibi ya Kati ya Australia", "UYT": "Saa za Wastani za Uruguay", "HKST": "Saa za Majira ya joto za Hong Kong", "HEEG": "Saa za Majira ya joto za Greenland Mashariki", "TMST": "Saa za Majira ya joto za Turkmenistan", "WART": "Saa Wastani za Magharibi mwa Argentina", "HECU": "Saa za Mchana za Cuba", "HAT": "Saa za Mchana za Newfoundland", "HNNOMX": "Saa Wastani za Mexico Kaskazini Magharibi", "AKDT": "Saa za Mchana za Alaska", "WEZ": "Saa Wastani za Magharibi mwa Ulaya", "ACWDT": "Saa za Mchana za Magharibi ya Kati ya Australia", "JST": "Saa Wastani za Japan", "VET": "Saa za Venezuela", "WIT": "Saa za Mashariki mwa Indonesia", "SRT": "Saa za Suriname", "WIB": "Saa za Magharibi mwa Indonesia", "MESZ": "Saa za Majira ya joto za Ulaya ya Kati", "OEZ": "Saa Wastani za Mashariki mwa Ulaya", "∅∅∅": "∅∅∅", "HNPMX": "Saa za wastani za pasifiki za Mexico", "CST": "Saa za Wastani za Kati", "PST": "Saa za Wastani za Pasifiki", "ChST": "Saa Wastani za Chamorro", "WAST": "Saa za Majira ya joto za Afrika Magharibi", "HNCU": "Saa za Wastani ya Cuba", "AST": "Saa za Wastani za Atlantiki", "HAST": "Saa za Wastani za Hawaii-Aleutian", "AWDT": "Saa za Mchana za Australia Magharibi", "HEPM": "Saa za Mchana za Saint-Pierre na Miquelon", "LHDT": "Saa za Mchana za Lord Howe", "TMT": "Saa za Wastani za Turkmenistan", "CAT": "Saa za Afrika ya Kati", "EDT": "Saa za Mchana za Mashariki", "HADT": "Saa za Mchana za Hawaii-Aleutian", "ARST": "Saa za Majira ya joto za Argentina", "WAT": "Saa za Wastani za Afrika Magharibi", "NZDT": "Saa za Mchana za New Zealand", "CHADT": "Saa za Mchana za Chatham", "SAST": "Saa Wastani za Afrika Kusini", "BOT": "Saa za Bolivia", "ACST": "Saa Wastani za Australia ya Kati", "ADT": "Saa za Mchana za Atlantiki", "PDT": "Saa za Mchana za Pasifiki", "WITA": "Saa za Indonesia ya Kati", "AKST": "Saa za Wastani za Alaska", "WESZ": "Saa za Majira ya joto za Magharibi mwa Ulaya", "ART": "Saa za Wastani za Argentina", "HEOG": "Saa za Majira ya joto za Greenland Magharibi", "ECT": "Saa za Ecuador", "EST": "Saa za Wastani za Mashariki", "MST": "MST", "MDT": "MDT", "GFT": "Saa za Guiana ya Ufaransa", "GMT": "Saa za Greenwich", "AEST": "Saa Wastani za Mashariki mwa Australia", "JDT": "Saa za Mchana za Japan", "NZST": "Saa Wastani za New Zealand", "CLT": "Saa za Wastani za Chile", "ACDT": "Saa za Mchana za Australia ya Kati", "MYT": "Saa za Malaysia", "HNT": "Saa za Wastani za Newfoundland", "HNPM": "Saa za Wastani ya Saint-Pierre na Miquelon", "OESZ": "Saa za Majira ya joto za Mashariki mwa Ulaya", "COT": "Saa za Wastani za Colombia", "HNOG": "Saa za Wastani za Greenland Magharibi", "AWST": "Saa Wastani za Australia Magharibi", "CLST": "Saa za Majira ya joto za Chile", "BT": "Saa za Bhutan", "HKT": "Saa Wastani za Hong Kong", "LHST": "Saa Wastani za Lord Howe", "SGT": "Saa Wastani za Singapore", "UYST": "Saa za Majira ya joto za Uruguay", "IST": "Saa Wastani za India"},
+ timezones: map[string]string{"AST": "Saa za Wastani za Atlantiki", "MDT": "MDT", "MESZ": "Saa za Majira ya joto za Ulaya ya Kati", "VET": "Saa za Venezuela", "WART": "Saa Wastani za Magharibi mwa Argentina", "CLST": "Saa za Majira ya joto za Chile", "OEZ": "Saa Wastani za Mashariki mwa Ulaya", "MEZ": "Saa Wastani za Ulaya ya kati", "HKT": "Saa Wastani za Hong Kong", "WAST": "Saa za Majira ya joto za Afrika Magharibi", "EST": "Saa za Wastani za Mashariki", "ChST": "Saa Wastani za Chamorro", "TMST": "Saa za Majira ya joto za Turkmenistan", "EDT": "Saa za Mchana za Mashariki", "ACDT": "Saa za Mchana za Australia ya Kati", "AWST": "Saa Wastani za Australia Magharibi", "CHADT": "Saa za Mchana za Chatham", "HAST": "Saa za Wastani za Hawaii-Aleutian", "NZST": "Saa Wastani za New Zealand", "NZDT": "Saa za Mchana za New Zealand", "HEPM": "Saa za Mchana za Saint-Pierre na Miquelon", "HEEG": "Saa za Majira ya joto za Greenland Mashariki", "AEST": "Saa Wastani za Mashariki mwa Australia", "CDT": "Saa za Mchana za Kati", "WIT": "Saa za Mashariki mwa Indonesia", "AWDT": "Saa za Mchana za Australia Magharibi", "WEZ": "Saa Wastani za Magharibi mwa Ulaya", "ART": "Saa za Wastani za Argentina", "SGT": "Saa Wastani za Singapore", "JDT": "Saa za Mchana za Japan", "WARST": "Saa za Majira ya joto za Magharibi mwa Argentina", "AKDT": "Saa za Mchana za Alaska", "UYST": "Saa za Majira ya joto za Uruguay", "WAT": "Saa za Wastani za Afrika Magharibi", "HAT": "Saa za Mchana za Newfoundland", "SRT": "Saa za Suriname", "∅∅∅": "Saa za Majira ya joto za Azores", "WIB": "Saa za Magharibi mwa Indonesia", "CLT": "Saa za Wastani za Chile", "MST": "MST", "GFT": "Saa za Guiana ya Ufaransa", "LHDT": "Saa za Mchana za Lord Howe", "BOT": "Saa za Bolivia", "PST": "Saa za Wastani za Pasifiki", "IST": "Saa Wastani za India", "HENOMX": "Saa za mchana za Mexico Kaskazini Magharibi", "LHST": "Saa Wastani za Lord Howe", "CAT": "Saa za Afrika ya Kati", "HKST": "Saa za Majira ya joto za Hong Kong", "CST": "Saa za Wastani za Kati", "COST": "Saa za Majira ya joto za Colombia", "WITA": "Saa za Indonesia ya Kati", "EAT": "Saa za Afrika Mashariki", "ACST": "Saa Wastani za Australia ya Kati", "HNEG": "Saa za Wastani za Greenland Mashariki", "AEDT": "Saa za Mchana za Mashariki mwa Australia", "OESZ": "Saa za Majira ya joto za Mashariki mwa Ulaya", "ARST": "Saa za Majira ya joto za Argentina", "AKST": "Saa za Wastani za Alaska", "GYT": "Saa za Guyana", "HNCU": "Saa za Wastani ya Cuba", "HADT": "Saa za Mchana za Hawaii-Aleutian", "GMT": "Saa za Greenwich", "ADT": "Saa za Mchana za Atlantiki", "HEPMX": "Saa za mchana za pasifiki za Mexico", "SAST": "Saa Wastani za Afrika Kusini", "HECU": "Saa za Mchana za Cuba", "PDT": "Saa za Mchana za Pasifiki", "TMT": "Saa za Wastani za Turkmenistan", "HNPM": "Saa za Wastani ya Saint-Pierre na Miquelon", "HNPMX": "Saa za wastani za pasifiki za Mexico", "ECT": "Saa za Ecuador", "JST": "Saa Wastani za Japan", "HNOG": "Saa za Wastani za Greenland Magharibi", "COT": "Saa za Wastani za Colombia", "CHAST": "Saa Wastani za Chatham", "HEOG": "Saa za Majira ya joto za Greenland Magharibi", "HNNOMX": "Saa Wastani za Mexico Kaskazini Magharibi", "HNT": "Saa za Wastani za Newfoundland", "UYT": "Saa za Wastani za Uruguay", "ACWST": "Saa Wastani za Magharibi ya Kati ya Australia", "ACWDT": "Saa za Mchana za Magharibi ya Kati ya Australia", "WESZ": "Saa za Majira ya joto za Magharibi mwa Ulaya", "MYT": "Saa za Malaysia", "BT": "Saa za Bhutan"},
}
}
diff --git a/ta/ta.go b/ta/ta.go
index 5c4a8e16..f87af637 100644
--- a/ta/ta.go
+++ b/ta/ta.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"கி.மு.", "கி.பி."},
erasNarrow: []string{"", ""},
erasWide: []string{"கிறிஸ்துவுக்கு முன்", "அன்னோ டோமினி"},
- timezones: map[string]string{"HNT": "நியூஃபவுண்ட்லாந்து நிலையான நேரம்", "CHAST": "சத்தாம் நிலையான நேரம்", "NZDT": "நியூசிலாந்து பகலொளி நேரம்", "ACDT": "ஆஸ்திரேலியன் மத்திய பகலொளி நேரம்", "WARST": "மேற்கத்திய அர்ஜென்டினா கோடை நேரம்", "HENOMX": "வடமேற்கு மெக்ஸிகோ பகலொளி நேரம்", "BT": "பூடான் நேரம்", "SRT": "சுரினாம் நேரம்", "WESZ": "மேற்கத்திய ஐரோப்பிய கோடை நேரம்", "HKST": "ஹாங்காங் கோடை நேரம்", "MEZ": "மத்திய ஐரோப்பிய நிலையான நேரம்", "CAT": "மத்திய ஆப்பிரிக்க நேரம்", "EAT": "கிழக்கு ஆப்பிரிக்க நேரம்", "WART": "மேற்கத்திய அர்ஜென்டினா நிலையான நேரம்", "SGT": "சிங்கப்பூர் நிலையான நேரம்", "HNCU": "கியூபா நிலையான நேரம்", "HECU": "கியூபா பகலொளி நேரம்", "HNPMX": "மெக்ஸிகன் பசிபிக் நிலையான நேரம்", "HEPM": "செயின்ட் பியரி & மிக்குயிலான் பகலொளி நேரம்", "JST": "ஜப்பான் நிலையான நேரம்", "TMT": "துர்க்மெனிஸ்தான் நிலையான நேரம்", "ChST": "சாமோரோ நிலையான நேரம்", "WIB": "மேற்கத்திய இந்தோனேசிய நேரம்", "WIT": "கிழக்கத்திய இந்தோனேசிய நேரம்", "GYT": "கயானா நேரம்", "ART": "அர்ஜென்டினா நிலையான நேரம்", "PST": "பசிபிக் நிலையான நேரம்", "ACWDT": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய பகலொளி நேரம்", "AWST": "ஆஸ்திரேலியன் மேற்கத்திய நிலையான நேரம்", "MESZ": "மத்திய ஐரோப்பிய கோடை நேரம்", "HEEG": "கிழக்கு கிரீன்லாந்து கோடை நேரம்", "COST": "கொலம்பியா கோடை நேரம்", "CST": "மத்திய நிலையான நேரம்", "AST": "அட்லாண்டிக் நிலையான நேரம்", "AKDT": "அலாஸ்கா பகலொளி நேரம்", "HADT": "ஹவாய்-அலேஷியன் பகலொளி நேரம்", "ACWST": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய நிலையான நேரம்", "JDT": "ஜப்பான் பகலொளி நேரம்", "TMST": "துர்க்மெனிஸ்தான் கோடை நேரம்", "BOT": "பொலிவியா நேரம்", "ACST": "ஆஸ்திரேலியன் மத்திய நிலையான நேரம்", "OESZ": "கிழக்கத்திய ஐரோப்பிய கோடை நேரம்", "GMT": "கிரீன்விச் சராசரி நேரம்", "EST": "கிழக்கத்திய நிலையான நேரம்", "WEZ": "மேற்கத்திய ஐரோப்பிய நிலையான நேரம்", "LHDT": "லார்ட் ஹோவ் பகலொளி நேரம்", "NZST": "நியூசிலாந்து நிலையான நேரம்", "IST": "இந்திய நிலையான நேரம்", "HNNOMX": "வடமேற்கு மெக்ஸிகோ நிலையான நேரம்", "AKST": "அலாஸ்கா நிலையான நேரம்", "MDT": "மக்காவ் கோடை நேரம்", "CDT": "மத்திய பகலொளி நேரம்", "UYT": "உருகுவே நிலையான நேரம்", "AWDT": "ஆஸ்திரேலியன் மேற்கத்திய பகலொளி நேரம்", "CLT": "சிலி நிலையான நேரம்", "WAST": "மேற்கு ஆப்பிரிக்க கோடை நேரம்", "AEST": "ஆஸ்திரேலியன் கிழக்கத்திய நிலையான நேரம்", "AEDT": "ஆஸ்திரேலியன் கிழக்கத்திய பகலொளி நேரம்", "WAT": "மேற்கு ஆப்பிரிக்க நிலையான நேரம்", "HAT": "நியூஃபவுண்ட்லாந்து பகலொளி நேரம்", "CHADT": "சத்தாம் பகலொளி நேரம்", "LHST": "லார்ட் ஹோவ் நிலையான நேரம்", "∅∅∅": "அமேசான் கோடை நேரம்", "COT": "கொலம்பியா நிலையான நேரம்", "ADT": "அட்லாண்டிக் பகலொளி நேரம்", "HKT": "ஹாங்காங் நிலையான நேரம்", "ECT": "ஈக்வடார் நேரம்", "HEPMX": "மெக்ஸிகன் பசிபிக் பகலொளி நேரம்", "HAST": "ஹவாய்-அலேஷியன் நிலையான நேரம்", "PDT": "பசிபிக் பகலொளி நேரம்", "SAST": "தென் ஆப்பிரிக்க நிலையான நேரம்", "CLST": "சிலி கோடை நேரம்", "HNEG": "கிழக்கு கிரீன்லாந்து நிலையான நேரம்", "EDT": "கிழக்கத்திய பகலொளி நேரம்", "MYT": "மலேஷிய நேரம்", "HNOG": "மேற்கு கிரீன்லாந்து நிலையான நேரம்", "HEOG": "மேற்கு கிரீன்லாந்து கோடை நேரம்", "WITA": "மத்திய இந்தோனேசிய நேரம்", "GFT": "ஃபிரஞ்சு கயானா நேரம்", "OEZ": "கிழக்கத்திய ஐரோப்பிய நிலையான நேரம்", "UYST": "உருகுவே கோடை நேரம்", "VET": "வெனிசுலா நேரம்", "ARST": "அர்ஜென்டினா கோடை நேரம்", "HNPM": "செயின்ட் பியரி & மிக்குயிலான் நிலையான நேரம்", "MST": "மக்காவ் தர நேரம்"},
+ timezones: map[string]string{"WAT": "மேற்கு ஆப்பிரிக்க நிலையான நேரம்", "ACST": "ஆஸ்திரேலியன் மத்திய நிலையான நேரம்", "AWDT": "ஆஸ்திரேலியன் மேற்கத்திய பகலொளி நேரம்", "HADT": "ஹவாய்-அலேஷியன் பகலொளி நேரம்", "MEZ": "மத்திய ஐரோப்பிய நிலையான நேரம்", "HEOG": "மேற்கு கிரீன்லாந்து கோடை நேரம்", "MDT": "மக்காவ் கோடை நேரம்", "HENOMX": "வடமேற்கு மெக்ஸிகோ பகலொளி நேரம்", "SRT": "சுரினாம் நேரம்", "HNCU": "கியூபா நிலையான நேரம்", "NZDT": "நியூசிலாந்து பகலொளி நேரம்", "CAT": "மத்திய ஆப்பிரிக்க நேரம்", "VET": "வெனிசுலா நேரம்", "WART": "மேற்கத்திய அர்ஜென்டினா நிலையான நேரம்", "ADT": "அட்லாண்டிக் பகலொளி நேரம்", "COST": "கொலம்பியா கோடை நேரம்", "GFT": "ஃபிரஞ்சு கயானா நேரம்", "BOT": "பொலிவியா நேரம்", "ACWST": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய நிலையான நேரம்", "HAST": "ஹவாய்-அலேஷியன் நிலையான நேரம்", "JDT": "ஜப்பான் பகலொளி நேரம்", "WESZ": "மேற்கத்திய ஐரோப்பிய கோடை நேரம்", "ART": "அர்ஜென்டினா நிலையான நேரம்", "WAST": "மேற்கு ஆப்பிரிக்க கோடை நேரம்", "UYT": "உருகுவே நிலையான நேரம்", "EAT": "கிழக்கு ஆப்பிரிக்க நேரம்", "JST": "ஜப்பான் நிலையான நேரம்", "WARST": "மேற்கத்திய அர்ஜென்டினா கோடை நேரம்", "HNOG": "மேற்கு கிரீன்லாந்து நிலையான நேரம்", "TMST": "துர்க்மெனிஸ்தான் கோடை நேரம்", "HKST": "ஹாங்காங் கோடை நேரம்", "WITA": "மத்திய இந்தோனேசிய நேரம்", "HNPM": "செயின்ட் பியரி & மிக்குயிலான் நிலையான நேரம்", "MYT": "மலேஷிய நேரம்", "ACDT": "ஆஸ்திரேலியன் மத்திய பகலொளி நேரம்", "SAST": "தென் ஆப்பிரிக்க நிலையான நேரம்", "HECU": "கியூபா பகலொளி நேரம்", "IST": "இந்திய நிலையான நேரம்", "MESZ": "மத்திய ஐரோப்பிய கோடை நேரம்", "CLST": "சிலி கோடை நேரம்", "BT": "பூடான் நேரம்", "HEPMX": "மெக்ஸிகன் பசிபிக் பகலொளி நேரம்", "CHADT": "சத்தாம் பகலொளி நேரம்", "SGT": "சிங்கப்பூர் நிலையான நேரம்", "ARST": "அர்ஜென்டினா கோடை நேரம்", "HKT": "ஹாங்காங் நிலையான நேரம்", "AKST": "அலாஸ்கா நிலையான நேரம்", "AKDT": "அலாஸ்கா பகலொளி நேரம்", "ECT": "ஈக்வடார் நேரம்", "PDT": "பசிபிக் பகலொளி நேரம்", "CLT": "சிலி நிலையான நேரம்", "HNT": "நியூஃபவுண்ட்லாந்து நிலையான நேரம்", "HNEG": "கிழக்கு கிரீன்லாந்து நிலையான நேரம்", "AEST": "ஆஸ்திரேலியன் கிழக்கத்திய நிலையான நேரம்", "WIB": "மேற்கத்திய இந்தோனேசிய நேரம்", "CDT": "மத்திய பகலொளி நேரம்", "GMT": "கிரீன்விச் சராசரி நேரம்", "AEDT": "ஆஸ்திரேலியன் கிழக்கத்திய பகலொளி நேரம்", "OESZ": "கிழக்கத்திய ஐரோப்பிய கோடை நேரம்", "MST": "மக்காவ் தர நேரம்", "CST": "மத்திய நிலையான நேரம்", "AWST": "ஆஸ்திரேலியன் மேற்கத்திய நிலையான நேரம்", "AST": "அட்லாண்டிக் நிலையான நேரம்", "TMT": "துர்க்மெனிஸ்தான் நிலையான நேரம்", "EST": "கிழக்கத்திய நிலையான நேரம்", "HEEG": "கிழக்கு கிரீன்லாந்து கோடை நேரம்", "LHST": "லார்ட் ஹோவ் நிலையான நேரம்", "HNPMX": "மெக்ஸிகன் பசிபிக் நிலையான நேரம்", "ACWDT": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய பகலொளி நேரம்", "CHAST": "சத்தாம் நிலையான நேரம்", "OEZ": "கிழக்கத்திய ஐரோப்பிய நிலையான நேரம்", "WEZ": "மேற்கத்திய ஐரோப்பிய நிலையான நேரம்", "COT": "கொலம்பியா நிலையான நேரம்", "∅∅∅": "அக்ரே கோடை நேரம்", "GYT": "கயானா நேரம்", "WIT": "கிழக்கத்திய இந்தோனேசிய நேரம்", "EDT": "கிழக்கத்திய பகலொளி நேரம்", "HNNOMX": "வடமேற்கு மெக்ஸிகோ நிலையான நேரம்", "HAT": "நியூஃபவுண்ட்லாந்து பகலொளி நேரம்", "HEPM": "செயின்ட் பியரி & மிக்குயிலான் பகலொளி நேரம்", "PST": "பசிபிக் நிலையான நேரம்", "ChST": "சாமோரோ நிலையான நேரம்", "UYST": "உருகுவே கோடை நேரம்", "LHDT": "லார்ட் ஹோவ் பகலொளி நேரம்", "NZST": "நியூசிலாந்து நிலையான நேரம்"},
}
}
diff --git a/ta_IN/ta_IN.go b/ta_IN/ta_IN.go
index 3a1c437b..f2cbd9a2 100644
--- a/ta_IN/ta_IN.go
+++ b/ta_IN/ta_IN.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"கி.மு.", "கி.பி."},
erasNarrow: []string{"", ""},
erasWide: []string{"கிறிஸ்துவுக்கு முன்", "அன்னோ டோமினி"},
- timezones: map[string]string{"EST": "கிழக்கத்திய நிலையான நேரம்", "HEPMX": "மெக்ஸிகன் பசிபிக் பகலொளி நேரம்", "AEDT": "ஆஸ்திரேலியன் கிழக்கத்திய பகலொளி நேரம்", "∅∅∅": "அமேசான் கோடை நேரம்", "GFT": "ஃபிரஞ்சு கயானா நேரம்", "ECT": "ஈக்வடார் நேரம்", "CAT": "மத்திய ஆப்பிரிக்க நேரம்", "WARST": "மேற்கத்திய அர்ஜென்டினா கோடை நேரம்", "MESZ": "மத்திய ஐரோப்பிய கோடை நேரம்", "HENOMX": "வடமேற்கு மெக்ஸிகோ பகலொளி நேரம்", "HNCU": "கியூபா நிலையான நேரம்", "HNOG": "மேற்கு கிரீன்லாந்து நிலையான நேரம்", "ACWST": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய நிலையான நேரம்", "MEZ": "மத்திய ஐரோப்பிய நிலையான நேரம்", "NZST": "நியூசிலாந்து நிலையான நேரம்", "CHAST": "சத்தாம் நிலையான நேரம்", "ADT": "அட்லாண்டிக் பகலொளி நேரம்", "UYST": "உருகுவே கோடை நேரம்", "HAST": "ஹவாய்-அலேஷியன் நிலையான நேரம்", "UYT": "உருகுவே நிலையான நேரம்", "CST": "மத்திய நிலையான நேரம்", "SAST": "தென் ஆப்பிரிக்க நிலையான நேரம்", "JDT": "ஜப்பான் பகலொளி நேரம்", "TMT": "துர்க்மெனிஸ்தான் நிலையான நேரம்", "EAT": "கிழக்கு ஆப்பிரிக்க நேரம்", "MDT": "மக்காவ் கோடை நேரம்", "HNPMX": "மெக்ஸிகன் பசிபிக் நிலையான நேரம்", "VET": "வெனிசுலா நேரம்", "ART": "அர்ஜென்டினா நிலையான நேரம்", "HNPM": "செயின்ட் பியரி & மிக்குயிலான் நிலையான நேரம்", "OEZ": "கிழக்கத்திய ஐரோப்பிய நிலையான நேரம்", "COST": "கொலம்பியா கோடை நேரம்", "AKST": "அலாஸ்கா நிலையான நேரம்", "PDT": "பசிபிக் பகலொளி நேரம்", "CLT": "சிலி நிலையான நேரம்", "TMST": "துர்க்மெனிஸ்தான் கோடை நேரம்", "HNEG": "கிழக்கு கிரீன்லாந்து நிலையான நேரம்", "SGT": "சிங்கப்பூர் நிலையான நேரம்", "AKDT": "அலாஸ்கா பகலொளி நேரம்", "PST": "பசிபிக் நிலையான நேரம்", "WITA": "மத்திய இந்தோனேசிய நேரம்", "LHDT": "லார்ட் ஹோவ் பகலொளி நேரம்", "NZDT": "நியூசிலாந்து பகலொளி நேரம்", "WAST": "மேற்கு ஆப்பிரிக்க கோடை நேரம்", "HNNOMX": "வடமேற்கு மெக்ஸிகோ நிலையான நேரம்", "AWDT": "ஆஸ்திரேலியன் மேற்கத்திய பகலொளி நேரம்", "JST": "ஜப்பான் நிலையான நேரம்", "COT": "கொலம்பியா நிலையான நேரம்", "ARST": "அர்ஜென்டினா கோடை நேரம்", "ACST": "ஆஸ்திரேலியன் மத்திய நிலையான நேரம்", "WAT": "மேற்கு ஆப்பிரிக்க நிலையான நேரம்", "HEOG": "மேற்கு கிரீன்லாந்து கோடை நேரம்", "ACDT": "ஆஸ்திரேலியன் மத்திய பகலொளி நேரம்", "EDT": "கிழக்கத்திய பகலொளி நேரம்", "AEST": "ஆஸ்திரேலியன் கிழக்கத்திய நிலையான நேரம்", "AWST": "ஆஸ்திரேலியன் மேற்கத்திய நிலையான நேரம்", "HKST": "ஹாங்காங் கோடை நேரம்", "LHST": "லார்ட் ஹோவ் நிலையான நேரம்", "CHADT": "சத்தாம் பகலொளி நேரம்", "HEEG": "கிழக்கு கிரீன்லாந்து கோடை நேரம்", "GYT": "கயானா நேரம்", "HADT": "ஹவாய்-அலேஷியன் பகலொளி நேரம்", "OESZ": "கிழக்கத்திய ஐரோப்பிய கோடை நேரம்", "HECU": "கியூபா பகலொளி நேரம்", "MST": "மக்காவ் தர நேரம்", "WEZ": "மேற்கத்திய ஐரோப்பிய நிலையான நேரம்", "WESZ": "மேற்கத்திய ஐரோப்பிய கோடை நேரம்", "ACWDT": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய பகலொளி நேரம்", "IST": "இந்திய நிலையான நேரம்", "CLST": "சிலி கோடை நேரம்", "ChST": "சாமோரோ நிலையான நேரம்", "GMT": "கிரீன்விச் சராசரி நேரம்", "WIT": "கிழக்கத்திய இந்தோனேசிய நேரம்", "HNT": "நியூஃபவுண்ட்லாந்து நிலையான நேரம்", "HEPM": "செயின்ட் பியரி & மிக்குயிலான் பகலொளி நேரம்", "AST": "அட்லாண்டிக் நிலையான நேரம்", "SRT": "சுரினாம் நேரம்", "BOT": "பொலிவியா நேரம்", "MYT": "மலேஷிய நேரம்", "HKT": "ஹாங்காங் நிலையான நேரம்", "WART": "மேற்கத்திய அர்ஜென்டினா நிலையான நேரம்", "CDT": "மத்திய பகலொளி நேரம்", "WIB": "மேற்கத்திய இந்தோனேசிய நேரம்", "BT": "பூடான் நேரம்", "HAT": "நியூஃபவுண்ட்லாந்து பகலொளி நேரம்"},
+ timezones: map[string]string{"ECT": "ஈக்வடார் நேரம்", "CLST": "சிலி கோடை நேரம்", "EDT": "கிழக்கத்திய பகலொளி நேரம்", "UYT": "உருகுவே நிலையான நேரம்", "GYT": "கயானா நேரம்", "WIB": "மேற்கத்திய இந்தோனேசிய நேரம்", "MEZ": "மத்திய ஐரோப்பிய நிலையான நேரம்", "JST": "ஜப்பான் நிலையான நேரம்", "AST": "அட்லாண்டிக் நிலையான நேரம்", "HKT": "ஹாங்காங் நிலையான நேரம்", "HKST": "ஹாங்காங் கோடை நேரம்", "UYST": "உருகுவே கோடை நேரம்", "HNCU": "கியூபா நிலையான நேரம்", "ACWDT": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய பகலொளி நேரம்", "HNT": "நியூஃபவுண்ட்லாந்து நிலையான நேரம்", "AWDT": "ஆஸ்திரேலியன் மேற்கத்திய பகலொளி நேரம்", "BOT": "பொலிவியா நேரம்", "PST": "பசிபிக் நிலையான நேரம்", "BT": "பூடான் நேரம்", "HEEG": "கிழக்கு கிரீன்லாந்து கோடை நேரம்", "WITA": "மத்திய இந்தோனேசிய நேரம்", "LHDT": "லார்ட் ஹோவ் பகலொளி நேரம்", "∅∅∅": "அசோர்ஸ் கோடை நேரம்", "SGT": "சிங்கப்பூர் நிலையான நேரம்", "HAST": "ஹவாய்-அலேஷியன் நிலையான நேரம்", "OEZ": "கிழக்கத்திய ஐரோப்பிய நிலையான நேரம்", "MYT": "மலேஷிய நேரம்", "EST": "கிழக்கத்திய நிலையான நேரம்", "HEPM": "செயின்ட் பியரி & மிக்குயிலான் பகலொளி நேரம்", "SAST": "தென் ஆப்பிரிக்க நிலையான நேரம்", "WIT": "கிழக்கத்திய இந்தோனேசிய நேரம்", "COT": "கொலம்பியா நிலையான நேரம்", "HEPMX": "மெக்ஸிகன் பசிபிக் பகலொளி நேரம்", "HADT": "ஹவாய்-அலேஷியன் பகலொளி நேரம்", "WART": "மேற்கத்திய அர்ஜென்டினா நிலையான நேரம்", "HEOG": "மேற்கு கிரீன்லாந்து கோடை நேரம்", "MST": "மவுன்டைன் நிலையான நேரம்", "CHADT": "சத்தாம் பகலொளி நேரம்", "PDT": "பசிபிக் பகலொளி நேரம்", "JDT": "ஜப்பான் பகலொளி நேரம்", "HNNOMX": "வடமேற்கு மெக்ஸிகோ நிலையான நேரம்", "AEDT": "ஆஸ்திரேலியன் கிழக்கத்திய பகலொளி நேரம்", "MDT": "மவுன்டைன் பகலொளி நேரம்", "NZST": "நியூசிலாந்து நிலையான நேரம்", "ADT": "அட்லாண்டிக் பகலொளி நேரம்", "WEZ": "மேற்கத்திய ஐரோப்பிய நிலையான நேரம்", "WESZ": "மேற்கத்திய ஐரோப்பிய கோடை நேரம்", "ACDT": "ஆஸ்திரேலியன் மத்திய பகலொளி நேரம்", "AKST": "அலாஸ்கா நிலையான நேரம்", "CST": "மத்திய நிலையான நேரம்", "IST": "இந்திய நிலையான நேரம்", "OESZ": "கிழக்கத்திய ஐரோப்பிய கோடை நேரம்", "TMT": "துர்க்மெனிஸ்தான் நிலையான நேரம்", "WAST": "மேற்கு ஆப்பிரிக்க கோடை நேரம்", "HENOMX": "வடமேற்கு மெக்ஸிகோ பகலொளி நேரம்", "CDT": "மத்திய பகலொளி நேரம்", "CHAST": "சத்தாம் நிலையான நேரம்", "CLT": "சிலி நிலையான நேரம்", "GMT": "கிரீன்விச் சராசரி நேரம்", "GFT": "ஃபிரஞ்சு கயானா நேரம்", "ARST": "அர்ஜென்டினா கோடை நேரம்", "HNEG": "கிழக்கு கிரீன்லாந்து நிலையான நேரம்", "WAT": "மேற்கு ஆப்பிரிக்க நிலையான நேரம்", "HNPM": "செயின்ட் பியரி & மிக்குயிலான் நிலையான நேரம்", "EAT": "கிழக்கு ஆப்பிரிக்க நேரம்", "TMST": "துர்க்மெனிஸ்தான் கோடை நேரம்", "CAT": "மத்திய ஆப்பிரிக்க நேரம்", "NZDT": "நியூசிலாந்து பகலொளி நேரம்", "HNOG": "மேற்கு கிரீன்லாந்து நிலையான நேரம்", "ChST": "சாமோரோ நிலையான நேரம்", "HECU": "கியூபா பகலொளி நேரம்", "AWST": "ஆஸ்திரேலியன் மேற்கத்திய நிலையான நேரம்", "COST": "கொலம்பியா கோடை நேரம்", "AKDT": "அலாஸ்கா பகலொளி நேரம்", "ACWST": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய நிலையான நேரம்", "VET": "வெனிசுலா நேரம்", "WARST": "மேற்கத்திய அர்ஜென்டினா கோடை நேரம்", "ACST": "ஆஸ்திரேலியன் மத்திய நிலையான நேரம்", "HAT": "நியூஃபவுண்ட்லாந்து பகலொளி நேரம்", "AEST": "ஆஸ்திரேலியன் கிழக்கத்திய நிலையான நேரம்", "LHST": "லார்ட் ஹோவ் நிலையான நேரம்", "HNPMX": "மெக்ஸிகன் பசிபிக் நிலையான நேரம்", "SRT": "சுரினாம் நேரம்", "MESZ": "மத்திய ஐரோப்பிய கோடை நேரம்", "ART": "அர்ஜென்டினா நிலையான நேரம்"},
}
}
diff --git a/ta_LK/ta_LK.go b/ta_LK/ta_LK.go
index 431037a2..e790f298 100644
--- a/ta_LK/ta_LK.go
+++ b/ta_LK/ta_LK.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"கி.மு.", "கி.பி."},
erasNarrow: []string{"", ""},
erasWide: []string{"கிறிஸ்துவுக்கு முன்", "அன்னோ டோமினி"},
- timezones: map[string]string{"NZST": "நியூசிலாந்து நிலையான நேரம்", "EAT": "கிழக்கு ஆப்பிரிக்க நேரம்", "WARST": "மேற்கத்திய அர்ஜென்டினா கோடை நேரம்", "COT": "கொலம்பியா நிலையான நேரம்", "MDT": "மக்காவ் கோடை நேரம்", "AWDT": "ஆஸ்திரேலியன் மேற்கத்திய பகலொளி நேரம்", "HKST": "ஹாங்காங் கோடை நேரம்", "CHADT": "சத்தாம் பகலொளி நேரம்", "MEZ": "மத்திய ஐரோப்பிய நிலையான நேரம்", "MESZ": "மத்திய ஐரோப்பிய கோடை நேரம்", "JST": "ஜப்பான் நிலையான நேரம்", "TMT": "துர்க்மெனிஸ்தான் நிலையான நேரம்", "HEEG": "கிழக்கு கிரீன்லாந்து கோடை நேரம்", "SRT": "சுரினாம் நேரம்", "WIB": "மேற்கத்திய இந்தோனேசிய நேரம்", "CHAST": "சத்தாம் நிலையான நேரம்", "IST": "இந்திய நிலையான நேரம்", "CLST": "சிலி கோடை நேரம்", "TMST": "துர்க்மெனிஸ்தான் கோடை நேரம்", "WART": "மேற்கத்திய அர்ஜென்டினா நிலையான நேரம்", "ADT": "அட்லாண்டிக் பகலொளி நேரம்", "AKDT": "அலாஸ்கா பகலொளி நேரம்", "ARST": "அர்ஜென்டினா கோடை நேரம்", "LHST": "லார்ட் ஹோவ் நிலையான நேரம்", "SGT": "சிங்கப்பூர் நிலையான நேரம்", "AST": "அட்லாண்டிக் நிலையான நேரம்", "HNT": "நியூஃபவுண்ட்லாந்து நிலையான நேரம்", "HADT": "ஹவாய்-அலேஷியன் பகலொளி நேரம்", "WEZ": "மேற்கத்திய ஐரோப்பிய நிலையான நேரம்", "GFT": "ஃபிரஞ்சு கயானா நேரம்", "ACST": "ஆஸ்திரேலியன் மத்திய நிலையான நேரம்", "OEZ": "கிழக்கத்திய ஐரோப்பிய நிலையான நேரம்", "OESZ": "கிழக்கத்திய ஐரோப்பிய கோடை நேரம்", "HAST": "ஹவாய்-அலேஷியன் நிலையான நேரம்", "HNOG": "மேற்கு கிரீன்லாந்து நிலையான நேரம்", "HEOG": "மேற்கு கிரீன்லாந்து கோடை நேரம்", "AEST": "ஆஸ்திரேலியன் கிழக்கத்திய நிலையான நேரம்", "WAT": "மேற்கு ஆப்பிரிக்க நிலையான நேரம்", "HAT": "நியூஃபவுண்ட்லாந்து பகலொளி நேரம்", "UYST": "உருகுவே கோடை நேரம்", "MST": "மக்காவ் தர நேரம்", "ACWST": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய நிலையான நேரம்", "HEPM": "செயின்ட் பியரி & மிக்குயிலான் பகலொளி நேரம்", "SAST": "தென் ஆப்பிரிக்க நிலையான நேரம்", "JDT": "ஜப்பான் பகலொளி நேரம்", "MYT": "மலேஷிய நேரம்", "ART": "அர்ஜென்டினா நிலையான நேரம்", "PDT": "பசிபிக் பகலொளி நேரம்", "AEDT": "ஆஸ்திரேலியன் கிழக்கத்திய பகலொளி நேரம்", "HKT": "ஹாங்காங் நிலையான நேரம்", "LHDT": "லார்ட் ஹோவ் பகலொளி நேரம்", "CLT": "சிலி நிலையான நேரம்", "ECT": "ஈக்வடார் நேரம்", "HNPMX": "மெக்ஸிகன் பசிபிக் நிலையான நேரம்", "PST": "பசிபிக் நிலையான நேரம்", "AKST": "அலாஸ்கா நிலையான நேரம்", "BT": "பூடான் நேரம்", "ChST": "சாமோரோ நிலையான நேரம்", "HNEG": "கிழக்கு கிரீன்லாந்து நிலையான நேரம்", "WAST": "மேற்கு ஆப்பிரிக்க கோடை நேரம்", "COST": "கொலம்பியா கோடை நேரம்", "HENOMX": "வடமேற்கு மெக்ஸிகோ பகலொளி நேரம்", "VET": "வெனிசுலா நேரம்", "HEPMX": "மெக்ஸிகன் பசிபிக் பகலொளி நேரம்", "CST": "மத்திய நிலையான நேரம்", "∅∅∅": "அமேசான் கோடை நேரம்", "GMT": "கிரீன்விச் சராசரி நேரம்", "EST": "கிழக்கத்திய நிலையான நேரம்", "WESZ": "மேற்கத்திய ஐரோப்பிய கோடை நேரம்", "ACDT": "ஆஸ்திரேலியன் மத்திய பகலொளி நேரம்", "CAT": "மத்திய ஆப்பிரிக்க நேரம்", "HNNOMX": "வடமேற்கு மெக்ஸிகோ நிலையான நேரம்", "HNCU": "கியூபா நிலையான நேரம்", "EDT": "கிழக்கத்திய பகலொளி நேரம்", "UYT": "உருகுவே நிலையான நேரம்", "HNPM": "செயின்ட் பியரி & மிக்குயிலான் நிலையான நேரம்", "AWST": "ஆஸ்திரேலியன் மேற்கத்திய நிலையான நேரம்", "NZDT": "நியூசிலாந்து பகலொளி நேரம்", "BOT": "பொலிவியா நேரம்", "HECU": "கியூபா பகலொளி நேரம்", "CDT": "மத்திய பகலொளி நேரம்", "ACWDT": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய பகலொளி நேரம்", "GYT": "கயானா நேரம்", "WITA": "மத்திய இந்தோனேசிய நேரம்", "WIT": "கிழக்கத்திய இந்தோனேசிய நேரம்"},
+ timezones: map[string]string{"ACWDT": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய பகலொளி நேரம்", "CAT": "மத்திய ஆப்பிரிக்க நேரம்", "JST": "ஜப்பான் நிலையான நேரம்", "JDT": "ஜப்பான் பகலொளி நேரம்", "OESZ": "கிழக்கத்திய ஐரோப்பிய கோடை நேரம்", "ADT": "அட்லாண்டிக் பகலொளி நேரம்", "EAT": "கிழக்கு ஆப்பிரிக்க நேரம்", "AWDT": "ஆஸ்திரேலியன் மேற்கத்திய பகலொளி நேரம்", "COST": "கொலம்பியா கோடை நேரம்", "AKST": "அலாஸ்கா நிலையான நேரம்", "LHDT": "லார்ட் ஹோவ் பகலொளி நேரம்", "ARST": "அர்ஜென்டினா கோடை நேரம்", "MDT": "மக்காவ் கோடை நேரம்", "COT": "கொலம்பியா நிலையான நேரம்", "SRT": "சுரினாம் நேரம்", "PST": "பசிபிக் நிலையான நேரம்", "EDT": "கிழக்கத்திய பகலொளி நேரம்", "HKT": "ஹாங்காங் நிலையான நேரம்", "ChST": "சாமோரோ நிலையான நேரம்", "HNCU": "கியூபா நிலையான நேரம்", "HNOG": "மேற்கு கிரீன்லாந்து நிலையான நேரம்", "HEPM": "செயின்ட் பியரி & மிக்குயிலான் பகலொளி நேரம்", "SAST": "தென் ஆப்பிரிக்க நிலையான நேரம்", "VET": "வெனிசுலா நேரம்", "GMT": "கிரீன்விச் சராசரி நேரம்", "NZST": "நியூசிலாந்து நிலையான நேரம்", "WAT": "மேற்கு ஆப்பிரிக்க நிலையான நேரம்", "HNNOMX": "வடமேற்கு மெக்ஸிகோ நிலையான நேரம்", "HNT": "நியூஃபவுண்ட்லாந்து நிலையான நேரம்", "HNEG": "கிழக்கு கிரீன்லாந்து நிலையான நேரம்", "AWST": "ஆஸ்திரேலியன் மேற்கத்திய நிலையான நேரம்", "IST": "இந்திய நிலையான நேரம்", "HAST": "ஹவாய்-அலேஷியன் நிலையான நேரம்", "AST": "அட்லாண்டிக் நிலையான நேரம்", "WAST": "மேற்கு ஆப்பிரிக்க கோடை நேரம்", "HAT": "நியூஃபவுண்ட்லாந்து பகலொளி நேரம்", "CDT": "மத்திய பகலொளி நேரம்", "PDT": "பசிபிக் பகலொளி நேரம்", "WART": "மேற்கத்திய அர்ஜென்டினா நிலையான நேரம்", "BT": "பூடான் நேரம்", "HNPM": "செயின்ட் பியரி & மிக்குயிலான் நிலையான நேரம்", "SGT": "சிங்கப்பூர் நிலையான நேரம்", "OEZ": "கிழக்கத்திய ஐரோப்பிய நிலையான நேரம்", "HEEG": "கிழக்கு கிரீன்லாந்து கோடை நேரம்", "CLST": "சிலி கோடை நேரம்", "TMT": "துர்க்மெனிஸ்தான் நிலையான நேரம்", "TMST": "துர்க்மெனிஸ்தான் கோடை நேரம்", "HENOMX": "வடமேற்கு மெக்ஸிகோ பகலொளி நேரம்", "∅∅∅": "பிரேசிலியா கோடை நேரம்", "ECT": "ஈக்வடார் நேரம்", "HKST": "ஹாங்காங் கோடை நேரம்", "ACDT": "ஆஸ்திரேலியன் மத்திய பகலொளி நேரம்", "HNPMX": "மெக்ஸிகன் பசிபிக் நிலையான நேரம்", "WESZ": "மேற்கத்திய ஐரோப்பிய கோடை நேரம்", "ART": "அர்ஜென்டினா நிலையான நேரம்", "MEZ": "மத்திய ஐரோப்பிய நிலையான நேரம்", "MST": "மக்காவ் தர நேரம்", "ACST": "ஆஸ்திரேலியன் மத்திய நிலையான நேரம்", "GFT": "ஃபிரஞ்சு கயானா நேரம்", "UYT": "உருகுவே நிலையான நேரம்", "HECU": "கியூபா பகலொளி நேரம்", "CST": "மத்திய நிலையான நேரம்", "MYT": "மலேஷிய நேரம்", "CLT": "சிலி நிலையான நேரம்", "WIT": "கிழக்கத்திய இந்தோனேசிய நேரம்", "HADT": "ஹவாய்-அலேஷியன் பகலொளி நேரம்", "NZDT": "நியூசிலாந்து பகலொளி நேரம்", "MESZ": "மத்திய ஐரோப்பிய கோடை நேரம்", "WARST": "மேற்கத்திய அர்ஜென்டினா கோடை நேரம்", "WITA": "மத்திய இந்தோனேசிய நேரம்", "AKDT": "அலாஸ்கா பகலொளி நேரம்", "LHST": "லார்ட் ஹோவ் நிலையான நேரம்", "GYT": "கயானா நேரம்", "CHADT": "சத்தாம் பகலொளி நேரம்", "BOT": "பொலிவியா நேரம்", "WEZ": "மேற்கத்திய ஐரோப்பிய நிலையான நேரம்", "AEST": "ஆஸ்திரேலியன் கிழக்கத்திய நிலையான நேரம்", "AEDT": "ஆஸ்திரேலியன் கிழக்கத்திய பகலொளி நேரம்", "UYST": "உருகுவே கோடை நேரம்", "HEPMX": "மெக்ஸிகன் பசிபிக் பகலொளி நேரம்", "ACWST": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய நிலையான நேரம்", "HEOG": "மேற்கு கிரீன்லாந்து கோடை நேரம்", "EST": "கிழக்கத்திய நிலையான நேரம்", "WIB": "மேற்கத்திய இந்தோனேசிய நேரம்", "CHAST": "சத்தாம் நிலையான நேரம்"},
}
}
diff --git a/ta_MY/ta_MY.go b/ta_MY/ta_MY.go
index 6d99f5c0..cfedc482 100644
--- a/ta_MY/ta_MY.go
+++ b/ta_MY/ta_MY.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"கி.மு.", "கி.பி."},
erasNarrow: []string{"", ""},
erasWide: []string{"கிறிஸ்துவுக்கு முன்", "அன்னோ டோமினி"},
- timezones: map[string]string{"TMST": "துர்க்மெனிஸ்தான் கோடை நேரம்", "COST": "கொலம்பியா கோடை நேரம்", "EST": "கிழக்கத்திய நிலையான நேரம்", "AEDT": "ஆஸ்திரேலியன் கிழக்கத்திய பகலொளி நேரம்", "SRT": "சுரினாம் நேரம்", "PDT": "பசிபிக் பகலொளி நேரம்", "IST": "இந்திய நிலையான நேரம்", "HNEG": "கிழக்கு கிரீன்லாந்து நிலையான நேரம்", "HAST": "ஹவாய்-அலேஷியன் நிலையான நேரம்", "HEOG": "மேற்கு கிரீன்லாந்து கோடை நேரம்", "HEPM": "செயின்ட் பியரி & மிக்குயிலான் பகலொளி நேரம்", "CAT": "மத்திய ஆப்பிரிக்க நேரம்", "OESZ": "கிழக்கத்திய ஐரோப்பிய கோடை நேரம்", "WIB": "மேற்கத்திய இந்தோனேசிய நேரம்", "WIT": "கிழக்கத்திய இந்தோனேசிய நேரம்", "MST": "மக்காவ் தர நேரம்", "UYST": "உருகுவே கோடை நேரம்", "ACWDT": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய பகலொளி நேரம்", "LHST": "லார்ட் ஹோவ் நிலையான நேரம்", "ChST": "சாமோரோ நிலையான நேரம்", "BOT": "பொலிவியா நேரம்", "HNNOMX": "வடமேற்கு மெக்ஸிகோ நிலையான நேரம்", "MDT": "மக்காவ் கோடை நேரம்", "ADT": "அட்லாண்டிக் பகலொளி நேரம்", "MESZ": "மத்திய ஐரோப்பிய கோடை நேரம்", "HKT": "ஹாங்காங் நிலையான நேரம்", "CHAST": "சத்தாம் நிலையான நேரம்", "∅∅∅": "அமேசான் கோடை நேரம்", "HEEG": "கிழக்கு கிரீன்லாந்து கோடை நேரம்", "WARST": "மேற்கத்திய அர்ஜென்டினா கோடை நேரம்", "HENOMX": "வடமேற்கு மெக்ஸிகோ பகலொளி நேரம்", "HNPMX": "மெக்ஸிகன் பசிபிக் நிலையான நேரம்", "ART": "அர்ஜென்டினா நிலையான நேரம்", "UYT": "உருகுவே நிலையான நேரம்", "MYT": "மலேஷிய நேரம்", "HNT": "நியூஃபவுண்ட்லாந்து நிலையான நேரம்", "AWST": "ஆஸ்திரேலியன் மேற்கத்திய நிலையான நேரம்", "HNPM": "செயின்ட் பியரி & மிக்குயிலான் நிலையான நேரம்", "CHADT": "சத்தாம் பகலொளி நேரம்", "CLST": "சிலி கோடை நேரம்", "JDT": "ஜப்பான் பகலொளி நேரம்", "BT": "பூடான் நேரம்", "ACWST": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய நிலையான நேரம்", "CLT": "சிலி நிலையான நேரம்", "WART": "மேற்கத்திய அர்ஜென்டினா நிலையான நேரம்", "HEPMX": "மெக்ஸிகன் பசிபிக் பகலொளி நேரம்", "AKDT": "அலாஸ்கா பகலொளி நேரம்", "HADT": "ஹவாய்-அலேஷியன் பகலொளி நேரம்", "JST": "ஜப்பான் நிலையான நேரம்", "TMT": "துர்க்மெனிஸ்தான் நிலையான நேரம்", "WAT": "மேற்கு ஆப்பிரிக்க நிலையான நேரம்", "WITA": "மத்திய இந்தோனேசிய நேரம்", "MEZ": "மத்திய ஐரோப்பிய நிலையான நேரம்", "LHDT": "லார்ட் ஹோவ் பகலொளி நேரம்", "ACDT": "ஆஸ்திரேலியன் மத்திய பகலொளி நேரம்", "COT": "கொலம்பியா நிலையான நேரம்", "WESZ": "மேற்கத்திய ஐரோப்பிய கோடை நேரம்", "SGT": "சிங்கப்பூர் நிலையான நேரம்", "HNCU": "கியூபா நிலையான நேரம்", "AKST": "அலாஸ்கா நிலையான நேரம்", "PST": "பசிபிக் நிலையான நேரம்", "NZDT": "நியூசிலாந்து பகலொளி நேரம்", "GMT": "கிரீன்விச் சராசரி நேரம்", "HECU": "கியூபா பகலொளி நேரம்", "EDT": "கிழக்கத்திய பகலொளி நேரம்", "AWDT": "ஆஸ்திரேலியன் மேற்கத்திய பகலொளி நேரம்", "SAST": "தென் ஆப்பிரிக்க நிலையான நேரம்", "WAST": "மேற்கு ஆப்பிரிக்க கோடை நேரம்", "OEZ": "கிழக்கத்திய ஐரோப்பிய நிலையான நேரம்", "CST": "மத்திய நிலையான நேரம்", "CDT": "மத்திய பகலொளி நேரம்", "AEST": "ஆஸ்திரேலியன் கிழக்கத்திய நிலையான நேரம்", "NZST": "நியூசிலாந்து நிலையான நேரம்", "GFT": "ஃபிரஞ்சு கயானா நேரம்", "AST": "அட்லாண்டிக் நிலையான நேரம்", "GYT": "கயானா நேரம்", "HAT": "நியூஃபவுண்ட்லாந்து பகலொளி நேரம்", "HKST": "ஹாங்காங் கோடை நேரம்", "WEZ": "மேற்கத்திய ஐரோப்பிய நிலையான நேரம்", "ARST": "அர்ஜென்டினா கோடை நேரம்", "HNOG": "மேற்கு கிரீன்லாந்து நிலையான நேரம்", "ACST": "ஆஸ்திரேலியன் மத்திய நிலையான நேரம்", "EAT": "கிழக்கு ஆப்பிரிக்க நேரம்", "ECT": "ஈக்வடார் நேரம்", "VET": "வெனிசுலா நேரம்"},
+ timezones: map[string]string{"MDT": "மக்காவ் கோடை நேரம்", "HNCU": "கியூபா நிலையான நேரம்", "ACWDT": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய பகலொளி நேரம்", "WART": "மேற்கத்திய அர்ஜென்டினா நிலையான நேரம்", "HAT": "நியூஃபவுண்ட்லாந்து பகலொளி நேரம்", "HNPMX": "மெக்ஸிகன் பசிபிக் நிலையான நேரம்", "HEPMX": "மெக்ஸிகன் பசிபிக் பகலொளி நேரம்", "AWST": "ஆஸ்திரேலியன் மேற்கத்திய நிலையான நேரம்", "HADT": "ஹவாய்-அலேஷியன் பகலொளி நேரம்", "ART": "அர்ஜென்டினா நிலையான நேரம்", "HNT": "நியூஃபவுண்ட்லாந்து நிலையான நேரம்", "AKST": "அலாஸ்கா நிலையான நேரம்", "∅∅∅": "பிரேசிலியா கோடை நேரம்", "WESZ": "மேற்கத்திய ஐரோப்பிய கோடை நேரம்", "AST": "அட்லாண்டிக் நிலையான நேரம்", "EDT": "கிழக்கத்திய பகலொளி நேரம்", "WAST": "மேற்கு ஆப்பிரிக்க கோடை நேரம்", "COT": "கொலம்பியா நிலையான நேரம்", "HEEG": "கிழக்கு கிரீன்லாந்து கோடை நேரம்", "SAST": "தென் ஆப்பிரிக்க நிலையான நேரம்", "CDT": "மத்திய பகலொளி நேரம்", "JDT": "ஜப்பான் பகலொளி நேரம்", "WEZ": "மேற்கத்திய ஐரோப்பிய நிலையான நேரம்", "WARST": "மேற்கத்திய அர்ஜென்டினா கோடை நேரம்", "AEDT": "ஆஸ்திரேலியன் கிழக்கத்திய பகலொளி நேரம்", "LHST": "லார்ட் ஹோவ் நிலையான நேரம்", "WIB": "மேற்கத்திய இந்தோனேசிய நேரம்", "WIT": "கிழக்கத்திய இந்தோனேசிய நேரம்", "NZDT": "நியூசிலாந்து பகலொளி நேரம்", "LHDT": "லார்ட் ஹோவ் பகலொளி நேரம்", "CHADT": "சத்தாம் பகலொளி நேரம்", "MST": "மக்காவ் தர நேரம்", "ACST": "ஆஸ்திரேலியன் மத்திய நிலையான நேரம்", "ACDT": "ஆஸ்திரேலியன் மத்திய பகலொளி நேரம்", "VET": "வெனிசுலா நேரம்", "HNNOMX": "வடமேற்கு மெக்ஸிகோ நிலையான நேரம்", "AEST": "ஆஸ்திரேலியன் கிழக்கத்திய நிலையான நேரம்", "ChST": "சாமோரோ நிலையான நேரம்", "IST": "இந்திய நிலையான நேரம்", "NZST": "நியூசிலாந்து நிலையான நேரம்", "MEZ": "மத்திய ஐரோப்பிய நிலையான நேரம்", "CLT": "சிலி நிலையான நேரம்", "HNOG": "மேற்கு கிரீன்லாந்து நிலையான நேரம்", "HEPM": "செயின்ட் பியரி & மிக்குயிலான் பகலொளி நேரம்", "HECU": "கியூபா பகலொளி நேரம்", "CHAST": "சத்தாம் நிலையான நேரம்", "HAST": "ஹவாய்-அலேஷியன் நிலையான நேரம்", "ADT": "அட்லாண்டிக் பகலொளி நேரம்", "HKST": "ஹாங்காங் கோடை நேரம்", "HNEG": "கிழக்கு கிரீன்லாந்து நிலையான நேரம்", "HNPM": "செயின்ட் பியரி & மிக்குயிலான் நிலையான நேரம்", "CAT": "மத்திய ஆப்பிரிக்க நேரம்", "OEZ": "கிழக்கத்திய ஐரோப்பிய நிலையான நேரம்", "MYT": "மலேஷிய நேரம்", "HENOMX": "வடமேற்கு மெக்ஸிகோ பகலொளி நேரம்", "GFT": "ஃபிரஞ்சு கயானா நேரம்", "GYT": "கயானா நேரம்", "SGT": "சிங்கப்பூர் நிலையான நேரம்", "BOT": "பொலிவியா நேரம்", "HEOG": "மேற்கு கிரீன்லாந்து கோடை நேரம்", "TMST": "துர்க்மெனிஸ்தான் கோடை நேரம்", "ARST": "அர்ஜென்டினா கோடை நேரம்", "HKT": "ஹாங்காங் நிலையான நேரம்", "COST": "கொலம்பியா கோடை நேரம்", "JST": "ஜப்பான் நிலையான நேரம்", "OESZ": "கிழக்கத்திய ஐரோப்பிய கோடை நேரம்", "GMT": "கிரீன்விச் சராசரி நேரம்", "WAT": "மேற்கு ஆப்பிரிக்க நிலையான நேரம்", "AKDT": "அலாஸ்கா பகலொளி நேரம்", "SRT": "சுரினாம் நேரம்", "PST": "பசிபிக் நிலையான நேரம்", "PDT": "பசிபிக் பகலொளி நேரம்", "ACWST": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய நிலையான நேரம்", "TMT": "துர்க்மெனிஸ்தான் நிலையான நேரம்", "EST": "கிழக்கத்திய நிலையான நேரம்", "WITA": "மத்திய இந்தோனேசிய நேரம்", "EAT": "கிழக்கு ஆப்பிரிக்க நேரம்", "AWDT": "ஆஸ்திரேலியன் மேற்கத்திய பகலொளி நேரம்", "ECT": "ஈக்வடார் நேரம்", "UYST": "உருகுவே கோடை நேரம்", "CLST": "சிலி கோடை நேரம்", "BT": "பூடான் நேரம்", "UYT": "உருகுவே நிலையான நேரம்", "CST": "மத்திய நிலையான நேரம்", "MESZ": "மத்திய ஐரோப்பிய கோடை நேரம்"},
}
}
diff --git a/ta_SG/ta_SG.go b/ta_SG/ta_SG.go
index bcd5640a..39d018b6 100644
--- a/ta_SG/ta_SG.go
+++ b/ta_SG/ta_SG.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"கி.மு.", "கி.பி."},
erasNarrow: []string{"", ""},
erasWide: []string{"கிறிஸ்துவுக்கு முன்", "அன்னோ டோமினி"},
- timezones: map[string]string{"∅∅∅": "அமேசான் கோடை நேரம்", "GMT": "கிரீன்விச் சராசரி நேரம்", "SGT": "சிங்கப்பூர் நிலையான நேரம்", "HEPM": "செயின்ட் பியரி & மிக்குயிலான் பகலொளி நேரம்", "MEZ": "மத்திய ஐரோப்பிய நிலையான நேரம்", "BOT": "பொலிவியா நேரம்", "TMST": "துர்க்மெனிஸ்தான் கோடை நேரம்", "WAST": "மேற்கு ஆப்பிரிக்க கோடை நேரம்", "ECT": "ஈக்வடார் நேரம்", "UYST": "உருகுவே கோடை நேரம்", "AST": "அட்லாண்டிக் நிலையான நேரம்", "HAST": "ஹவாய்-அலேஷியன் நிலையான நேரம்", "WIT": "கிழக்கத்திய இந்தோனேசிய நேரம்", "SRT": "சுரினாம் நேரம்", "AWDT": "ஆஸ்திரேலியன் மேற்கத்திய பகலொளி நேரம்", "NZST": "நியூசிலாந்து நிலையான நேரம்", "JST": "ஜப்பான் நிலையான நேரம்", "OESZ": "கிழக்கத்திய ஐரோப்பிய கோடை நேரம்", "WARST": "மேற்கத்திய அர்ஜென்டினா கோடை நேரம்", "HADT": "ஹவாய்-அலேஷியன் பகலொளி நேரம்", "WAT": "மேற்கு ஆப்பிரிக்க நிலையான நேரம்", "MDT": "மக்காவ் கோடை நேரம்", "AKST": "அலாஸ்கா நிலையான நேரம்", "ADT": "அட்லாண்டிக் பகலொளி நேரம்", "NZDT": "நியூசிலாந்து பகலொளி நேரம்", "CLST": "சிலி கோடை நேரம்", "CHADT": "சத்தாம் பகலொளி நேரம்", "HNEG": "கிழக்கு கிரீன்லாந்து நிலையான நேரம்", "EAT": "கிழக்கு ஆப்பிரிக்க நேரம்", "HNCU": "கியூபா நிலையான நேரம்", "ART": "அர்ஜென்டினா நிலையான நேரம்", "WITA": "மத்திய இந்தோனேசிய நேரம்", "LHDT": "லார்ட் ஹோவ் பகலொளி நேரம்", "IST": "இந்திய நிலையான நேரம்", "JDT": "ஜப்பான் பகலொளி நேரம்", "WART": "மேற்கத்திய அர்ஜென்டினா நிலையான நேரம்", "HNPMX": "மெக்ஸிகன் பசிபிக் நிலையான நேரம்", "UYT": "உருகுவே நிலையான நேரம்", "AKDT": "அலாஸ்கா பகலொளி நேரம்", "MYT": "மலேஷிய நேரம்", "ARST": "அர்ஜென்டினா கோடை நேரம்", "AWST": "ஆஸ்திரேலியன் மேற்கத்திய நிலையான நேரம்", "MESZ": "மத்திய ஐரோப்பிய கோடை நேரம்", "CHAST": "சத்தாம் நிலையான நேரம்", "COT": "கொலம்பியா நிலையான நேரம்", "EDT": "கிழக்கத்திய பகலொளி நேரம்", "CDT": "மத்திய பகலொளி நேரம்", "ACWST": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய நிலையான நேரம்", "ACWDT": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய பகலொளி நேரம்", "HNPM": "செயின்ட் பியரி & மிக்குயிலான் நிலையான நேரம்", "LHST": "லார்ட் ஹோவ் நிலையான நேரம்", "HEEG": "கிழக்கு கிரீன்லாந்து கோடை நேரம்", "ACDT": "ஆஸ்திரேலியன் மத்திய பகலொளி நேரம்", "EST": "கிழக்கத்திய நிலையான நேரம்", "CAT": "மத்திய ஆப்பிரிக்க நேரம்", "HNNOMX": "வடமேற்கு மெக்ஸிகோ நிலையான நேரம்", "HEPMX": "மெக்ஸிகன் பசிபிக் பகலொளி நேரம்", "CST": "மத்திய நிலையான நேரம்", "WIB": "மேற்கத்திய இந்தோனேசிய நேரம்", "PST": "பசிபிக் நிலையான நேரம்", "HNOG": "மேற்கு கிரீன்லாந்து நிலையான நேரம்", "AEDT": "ஆஸ்திரேலியன் கிழக்கத்திய பகலொளி நேரம்", "ChST": "சாமோரோ நிலையான நேரம்", "GFT": "ஃபிரஞ்சு கயானா நேரம்", "COST": "கொலம்பியா கோடை நேரம்", "HECU": "கியூபா பகலொளி நேரம்", "HKT": "ஹாங்காங் நிலையான நேரம்", "GYT": "கயானா நேரம்", "WEZ": "மேற்கத்திய ஐரோப்பிய நிலையான நேரம்", "HNT": "நியூஃபவுண்ட்லாந்து நிலையான நேரம்", "HAT": "நியூஃபவுண்ட்லாந்து பகலொளி நேரம்", "HEOG": "மேற்கு கிரீன்லாந்து கோடை நேரம்", "HKST": "ஹாங்காங் கோடை நேரம்", "ACST": "ஆஸ்திரேலியன் மத்திய நிலையான நேரம்", "OEZ": "கிழக்கத்திய ஐரோப்பிய நிலையான நேரம்", "HENOMX": "வடமேற்கு மெக்ஸிகோ பகலொளி நேரம்", "MST": "மக்காவ் தர நேரம்", "VET": "வெனிசுலா நேரம்", "WESZ": "மேற்கத்திய ஐரோப்பிய கோடை நேரம்", "AEST": "ஆஸ்திரேலியன் கிழக்கத்திய நிலையான நேரம்", "CLT": "சிலி நிலையான நேரம்", "TMT": "துர்க்மெனிஸ்தான் நிலையான நேரம்", "BT": "பூடான் நேரம்", "PDT": "பசிபிக் பகலொளி நேரம்", "SAST": "தென் ஆப்பிரிக்க நிலையான நேரம்"},
+ timezones: map[string]string{"IST": "இந்திய நிலையான நேரம்", "JDT": "ஜப்பான் பகலொளி நேரம்", "EDT": "கிழக்கத்திய பகலொளி நேரம்", "ChST": "சாமோரோ நிலையான நேரம்", "CST": "மத்திய நிலையான நேரம்", "PST": "பசிபிக் நிலையான நேரம்", "OESZ": "கிழக்கத்திய ஐரோப்பிய கோடை நேரம்", "WARST": "மேற்கத்திய அர்ஜென்டினா கோடை நேரம்", "HENOMX": "வடமேற்கு மெக்ஸிகோ பகலொளி நேரம்", "HNPMX": "மெக்ஸிகன் பசிபிக் நிலையான நேரம்", "HECU": "கியூபா பகலொளி நேரம்", "HAT": "நியூஃபவுண்ட்லாந்து பகலொளி நேரம்", "HNOG": "மேற்கு கிரீன்லாந்து நிலையான நேரம்", "HEOG": "மேற்கு கிரீன்லாந்து கோடை நேரம்", "WEZ": "மேற்கத்திய ஐரோப்பிய நிலையான நேரம்", "EST": "கிழக்கத்திய நிலையான நேரம்", "AEDT": "ஆஸ்திரேலியன் கிழக்கத்திய பகலொளி நேரம்", "AEST": "ஆஸ்திரேலியன் கிழக்கத்திய நிலையான நேரம்", "CDT": "மத்திய பகலொளி நேரம்", "JST": "ஜப்பான் நிலையான நேரம்", "GMT": "கிரீன்விச் சராசரி நேரம்", "HKT": "ஹாங்காங் நிலையான நேரம்", "BT": "பூடான் நேரம்", "WITA": "மத்திய இந்தோனேசிய நேரம்", "AKST": "அலாஸ்கா நிலையான நேரம்", "WIT": "கிழக்கத்திய இந்தோனேசிய நேரம்", "AWST": "ஆஸ்திரேலியன் மேற்கத்திய நிலையான நேரம்", "ARST": "அர்ஜென்டினா கோடை நேரம்", "COT": "கொலம்பியா நிலையான நேரம்", "HNNOMX": "வடமேற்கு மெக்ஸிகோ நிலையான நேரம்", "SAST": "தென் ஆப்பிரிக்க நிலையான நேரம்", "HNPM": "செயின்ட் பியரி & மிக்குயிலான் நிலையான நேரம்", "GYT": "கயானா நேரம்", "CHADT": "சத்தாம் பகலொளி நேரம்", "PDT": "பசிபிக் பகலொளி நேரம்", "CLT": "சிலி நிலையான நேரம்", "ART": "அர்ஜென்டினா நிலையான நேரம்", "HNT": "நியூஃபவுண்ட்லாந்து நிலையான நேரம்", "HEEG": "கிழக்கு கிரீன்லாந்து கோடை நேரம்", "ACWDT": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய பகலொளி நேரம்", "AST": "அட்லாண்டிக் நிலையான நேரம்", "MST": "மக்காவ் தர நேரம்", "WAT": "மேற்கு ஆப்பிரிக்க நிலையான நேரம்", "ACST": "ஆஸ்திரேலியன் மத்திய நிலையான நேரம்", "HEPM": "செயின்ட் பியரி & மிக்குயிலான் பகலொளி நேரம்", "CLST": "சிலி கோடை நேரம்", "ACDT": "ஆஸ்திரேலியன் மத்திய பகலொளி நேரம்", "COST": "கொலம்பியா கோடை நேரம்", "SRT": "சுரினாம் நேரம்", "WIB": "மேற்கத்திய இந்தோனேசிய நேரம்", "CAT": "மத்திய ஆப்பிரிக்க நேரம்", "ACWST": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய நிலையான நேரம்", "NZDT": "நியூசிலாந்து பகலொளி நேரம்", "TMT": "துர்க்மெனிஸ்தான் நிலையான நேரம்", "WAST": "மேற்கு ஆப்பிரிக்க கோடை நேரம்", "AKDT": "அலாஸ்கா பகலொளி நேரம்", "AWDT": "ஆஸ்திரேலியன் மேற்கத்திய பகலொளி நேரம்", "NZST": "நியூசிலாந்து நிலையான நேரம்", "OEZ": "கிழக்கத்திய ஐரோப்பிய நிலையான நேரம்", "WART": "மேற்கத்திய அர்ஜென்டினா நிலையான நேரம்", "TMST": "துர்க்மெனிஸ்தான் கோடை நேரம்", "HKST": "ஹாங்காங் கோடை நேரம்", "BOT": "பொலிவியா நேரம்", "ADT": "அட்லாண்டிக் பகலொளி நேரம்", "HNEG": "கிழக்கு கிரீன்லாந்து நிலையான நேரம்", "LHST": "லார்ட் ஹோவ் நிலையான நேரம்", "∅∅∅": "அமேசான் கோடை நேரம்", "MEZ": "மத்திய ஐரோப்பிய நிலையான நேரம்", "MESZ": "மத்திய ஐரோப்பிய கோடை நேரம்", "UYT": "உருகுவே நிலையான நேரம்", "HEPMX": "மெக்ஸிகன் பசிபிக் பகலொளி நேரம்", "HAST": "ஹவாய்-அலேஷியன் நிலையான நேரம்", "HADT": "ஹவாய்-அலேஷியன் பகலொளி நேரம்", "VET": "வெனிசுலா நேரம்", "MDT": "மக்காவ் கோடை நேரம்", "HNCU": "கியூபா நிலையான நேரம்", "CHAST": "சத்தாம் நிலையான நேரம்", "SGT": "சிங்கப்பூர் நிலையான நேரம்", "MYT": "மலேஷிய நேரம்", "LHDT": "லார்ட் ஹோவ் பகலொளி நேரம்", "EAT": "கிழக்கு ஆப்பிரிக்க நேரம்", "ECT": "ஈக்வடார் நேரம்", "WESZ": "மேற்கத்திய ஐரோப்பிய கோடை நேரம்", "GFT": "ஃபிரஞ்சு கயானா நேரம்", "UYST": "உருகுவே கோடை நேரம்"},
}
}
diff --git a/te/te.go b/te/te.go
index f60459d1..f0e538fa 100644
--- a/te/te.go
+++ b/te/te.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"క్రీపూ", "క్రీశ"},
erasNarrow: []string{"", ""},
erasWide: []string{"క్రీస్తు పూర్వం", "క్రీస్తు శకం"},
- timezones: map[string]string{"ADT": "అట్లాంటిక్ పగటి సమయం", "WIT": "తూర్పు ఇండోనేషియా సమయం", "HEPM": "సెయింట్ పియర్ మరియు మిక్వెలాన్ పగటి సమయం", "MEZ": "సెంట్రల్ యూరోపియన్ ప్రామాణిక సమయం", "MESZ": "సెంట్రల్ యూరోపియన్ వేసవి సమయం", "CHADT": "చాథమ్ పగటి వెలుతురు సమయం", "SAST": "దక్షిణ ఆఫ్రికా ప్రామాణిక సమయం", "CLT": "చిలీ ప్రామాణిక సమయం", "CAT": "సెంట్రల్ ఆఫ్రికా సమయం", "HNT": "న్యూఫౌండ్ ల్యాండ్ ప్రామాణిక సమయం", "ARST": "ఆర్జెంటీనా వేసవి సమయం", "LHST": "లార్డ్ హోవ్ ప్రామాణిక సమయం", "HENOMX": "వాయవ్య మెక్సికో పగటి సమయం", "MST": "మకావ్ ప్రామాణిక సమయం", "UYT": "ఉరుగ్వే ప్రామాణిక సమయం", "AKST": "అలాస్కా ప్రామాణిక సమయం", "HAST": "హవాయ్-అల్యూషియన్ ప్రామాణిక సమయం", "CHAST": "చాథమ్ ప్రామాణిక సమయం", "ACST": "ఆస్ట్రేలియా మధ్యమ ప్రామాణిక సమయం", "ACDT": "ఆస్ట్రేలియా మధ్యమ పగటి సమయం", "OESZ": "తూర్పు యూరోపియన్ వేసవి సమయం", "AKDT": "అలాస్కా పగటి సమయం", "WIB": "పశ్చిమ ఇండోనేషియా సమయం", "SRT": "సూరినామ్ సమయం", "AEDT": "తూర్పు ఆస్ట్రేలియా పగటి సమయం", "AWDT": "పశ్చిమ ఆస్ట్రేలియన్ పగటి సమయం", "IST": "భారతదేశ సమయం", "GFT": "ఫ్రెంచ్ గయానా సమయం", "HNOG": "పశ్చిమ గ్రీన్\u200cల్యాండ్ ప్రామాణిక సమయం", "PDT": "పసిఫిక్ పగటి సమయం", "∅∅∅": "అమెజాన్ వేసవి సమయం", "BOT": "బొలీవియా సమయం", "WART": "పశ్చిమ అర్జెంటీనా ప్రామాణిక సమయం", "WARST": "పశ్చిమ అర్జెంటీనా వేసవి సమయం", "SGT": "సింగపూర్ ప్రామాణిక సమయం", "VET": "వెనిజులా సమయం", "HKT": "హాంకాంగ్ ప్రామాణిక సమయం", "HKST": "హాంకాంగ్ వేసవి సమయం", "WAT": "పశ్చిమ ఆఫ్రికా ప్రామాణిక సమయం", "HNNOMX": "వాయవ్య మెక్సికో ప్రామాణిక సమయం", "EDT": "తూర్పు పగటి సమయం", "HEPMX": "మెక్సికన్ పసిఫిక్ పగటి సమయం", "WEZ": "పశ్చిమ యూరోపియన్ ప్రామాణిక సమయం", "NZDT": "న్యూజిల్యాండ్ పగటి వెలుతురు సమయం", "WAST": "పశ్చిమ ఆఫ్రికా వేసవి సమయం", "AEST": "తూర్పు ఆస్ట్రేలియా ప్రామాణిక సమయం", "HEEG": "తూర్పు గ్రీన్\u200cల్యాండ్ వేసవి సమయం", "OEZ": "తూర్పు యూరోపియన్ ప్రామాణిక సమయం", "EST": "తూర్పు ప్రామాణిక సమయం", "MDT": "మకావ్ వేసవి సమయం", "HAT": "న్యూఫౌండ్ ల్యాండ్ పగటి సమయం", "NZST": "న్యూజిల్యాండ్ ప్రామాణిక సమయం", "TMST": "తుర్క్మెనిస్థాన్ వేసవి సమయం", "EAT": "తూర్పు ఆఫ్రికా సమయం", "CST": "మధ్యమ ప్రామాణిక సమయం", "WITA": "సెంట్రల్ ఇండోనేషియా సమయం", "HNPMX": "మెక్సికన్ పసిఫిక్ ప్రామాణిక సమయం", "BT": "భూటాన్ సమయం", "PST": "పసిఫిక్ ప్రామాణిక సమయం", "JST": "జపాన్ ప్రామాణిక సమయం", "HNEG": "తూర్పు గ్రీన్\u200cల్యాండ్ ప్రామాణిక సమయం", "HECU": "క్యూబా పగటి సమయం", "ACWST": "మధ్యమ ఆస్ట్రేలియా పశ్చిమ ప్రామాణిక సమయం", "LHDT": "లార్డ్ హోవ్ పగటి సమయం", "CLST": "చిలీ వేసవి సమయం", "ECT": "ఈక్వడార్ సమయం", "COT": "కొలంబియా ప్రామాణిక సమయం", "GYT": "గయానా సమయం", "CDT": "మధ్యమ పగటి సమయం", "HEOG": "పశ్చిమ గ్రీన్\u200cల్యాండ్ వేసవి సమయం", "ChST": "చామర్రో ప్రామాణిక సమయం", "COST": "కొలంబియా వేసవి సమయం", "HNCU": "క్యూబా ప్రామాణిక సమయం", "HNPM": "సెయింట్ పియెర్ మరియు మిక్వెలాన్ ప్రామాణిక సమయం", "JDT": "జపాన్ పగటి వెలుతురు సమయం", "TMT": "తుర్క్మెనిస్థాన్ ప్రామాణిక సమయం", "UYST": "ఉరుగ్వే వేసవి సమయం", "AST": "అట్లాంటిక్ ప్రామాణిక సమయం", "ACWDT": "మధ్యమ ఆస్ట్రేలియన్ పశ్చిమ పగటి సమయం", "AWST": "పశ్చిమ ఆస్ట్రేలియన్ ప్రామాణిక సమయం", "GMT": "గ్రీన్\u200cవిచ్ సగటు సమయం", "MYT": "మలేషియా సమయం", "HADT": "హవాయ్-అల్యూషియన్ పగటి వెలుతురు సమయం", "WESZ": "పశ్చిమ యూరోపియన్ వేసవి సమయం", "ART": "అర్జెంటీనా ప్రామాణిక సమయం"},
+ timezones: map[string]string{"AWST": "పశ్చిమ ఆస్ట్రేలియన్ ప్రామాణిక సమయం", "SGT": "సింగపూర్ ప్రామాణిక సమయం", "CAT": "సెంట్రల్ ఆఫ్రికా సమయం", "ACWST": "మధ్యమ ఆస్ట్రేలియా పశ్చిమ ప్రామాణిక సమయం", "HNEG": "తూర్పు గ్రీన్\u200cల్యాండ్ ప్రామాణిక సమయం", "CHADT": "చాథమ్ పగటి వెలుతురు సమయం", "ECT": "ఈక్వడార్ సమయం", "MESZ": "సెంట్రల్ యూరోపియన్ వేసవి సమయం", "GMT": "గ్రీన్\u200cవిచ్ సగటు సమయం", "MDT": "మకావ్ వేసవి సమయం", "HEEG": "తూర్పు గ్రీన్\u200cల్యాండ్ వేసవి సమయం", "PDT": "పసిఫిక్ పగటి సమయం", "IST": "భారతదేశ సమయం", "NZDT": "న్యూజిల్యాండ్ పగటి వెలుతురు సమయం", "TMST": "తుర్క్మెనిస్థాన్ వేసవి సమయం", "ChST": "చామర్రో ప్రామాణిక సమయం", "HNPMX": "మెక్సికన్ పసిఫిక్ ప్రామాణిక సమయం", "ACWDT": "మధ్యమ ఆస్ట్రేలియన్ పశ్చిమ పగటి సమయం", "COST": "కొలంబియా వేసవి సమయం", "LHDT": "లార్డ్ హోవ్ పగటి సమయం", "MEZ": "సెంట్రల్ యూరోపియన్ ప్రామాణిక సమయం", "JST": "జపాన్ ప్రామాణిక సమయం", "GFT": "ఫ్రెంచ్ గయానా సమయం", "GYT": "గయానా సమయం", "EAT": "తూర్పు ఆఫ్రికా సమయం", "WIB": "పశ్చిమ ఇండోనేషియా సమయం", "HADT": "హవాయ్-అల్యూషియన్ పగటి వెలుతురు సమయం", "MYT": "మలేషియా సమయం", "HENOMX": "వాయవ్య మెక్సికో పగటి సమయం", "WITA": "సెంట్రల్ ఇండోనేషియా సమయం", "HAST": "హవాయ్-అల్యూషియన్ ప్రామాణిక సమయం", "HEOG": "పశ్చిమ గ్రీన్\u200cల్యాండ్ వేసవి సమయం", "ADT": "అట్లాంటిక్ పగటి సమయం", "OEZ": "తూర్పు యూరోపియన్ ప్రామాణిక సమయం", "WEZ": "పశ్చిమ యూరోపియన్ ప్రామాణిక సమయం", "ACST": "ఆస్ట్రేలియా మధ్యమ ప్రామాణిక సమయం", "HAT": "న్యూఫౌండ్ ల్యాండ్ పగటి సమయం", "UYST": "ఉరుగ్వే వేసవి సమయం", "CST": "మధ్యమ ప్రామాణిక సమయం", "AWDT": "పశ్చిమ ఆస్ట్రేలియన్ పగటి సమయం", "VET": "వెనిజులా సమయం", "JDT": "జపాన్ పగటి వెలుతురు సమయం", "CLST": "చిలీ వేసవి సమయం", "HNOG": "పశ్చిమ గ్రీన్\u200cల్యాండ్ ప్రామాణిక సమయం", "HEPM": "సెయింట్ పియర్ మరియు మిక్వెలాన్ పగటి సమయం", "∅∅∅": "అజోర్స్ వేసవి సమయం", "HNCU": "క్యూబా ప్రామాణిక సమయం", "BOT": "బొలీవియా సమయం", "PST": "పసిఫిక్ ప్రామాణిక సమయం", "TMT": "తుర్క్మెనిస్థాన్ ప్రామాణిక సమయం", "AKDT": "అలాస్కా పగటి సమయం", "LHST": "లార్డ్ హోవ్ ప్రామాణిక సమయం", "ARST": "ఆర్జెంటీనా వేసవి సమయం", "EST": "తూర్పు ప్రామాణిక సమయం", "ACDT": "ఆస్ట్రేలియా మధ్యమ పగటి సమయం", "HNNOMX": "వాయవ్య మెక్సికో ప్రామాణిక సమయం", "AEST": "తూర్పు ఆస్ట్రేలియా ప్రామాణిక సమయం", "HEPMX": "మెక్సికన్ పసిఫిక్ పగటి సమయం", "WIT": "తూర్పు ఇండోనేషియా సమయం", "WART": "పశ్చిమ అర్జెంటీనా ప్రామాణిక సమయం", "CLT": "చిలీ ప్రామాణిక సమయం", "MST": "మకావ్ ప్రామాణిక సమయం", "ART": "అర్జెంటీనా ప్రామాణిక సమయం", "UYT": "ఉరుగ్వే ప్రామాణిక సమయం", "CHAST": "చాథమ్ ప్రామాణిక సమయం", "NZST": "న్యూజిల్యాండ్ ప్రామాణిక సమయం", "AST": "అట్లాంటిక్ ప్రామాణిక సమయం", "OESZ": "తూర్పు యూరోపియన్ వేసవి సమయం", "HKT": "హాంకాంగ్ ప్రామాణిక సమయం", "HKST": "హాంకాంగ్ వేసవి సమయం", "HNPM": "సెయింట్ పియెర్ మరియు మిక్వెలాన్ ప్రామాణిక సమయం", "SAST": "దక్షిణ ఆఫ్రికా ప్రామాణిక సమయం", "SRT": "సూరినామ్ సమయం", "CDT": "మధ్యమ పగటి సమయం", "EDT": "తూర్పు పగటి సమయం", "HNT": "న్యూఫౌండ్ ల్యాండ్ ప్రామాణిక సమయం", "AEDT": "తూర్పు ఆస్ట్రేలియా పగటి సమయం", "HECU": "క్యూబా పగటి సమయం", "WESZ": "పశ్చిమ యూరోపియన్ వేసవి సమయం", "COT": "కొలంబియా ప్రామాణిక సమయం", "BT": "భూటాన్ సమయం", "AKST": "అలాస్కా ప్రామాణిక సమయం", "WARST": "పశ్చిమ అర్జెంటీనా వేసవి సమయం", "WAT": "పశ్చిమ ఆఫ్రికా ప్రామాణిక సమయం", "WAST": "పశ్చిమ ఆఫ్రికా వేసవి సమయం"},
}
}
diff --git a/te_IN/te_IN.go b/te_IN/te_IN.go
index 7c724355..2be3b03f 100644
--- a/te_IN/te_IN.go
+++ b/te_IN/te_IN.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"క్రీపూ", "క్రీశ"},
erasNarrow: []string{"", ""},
erasWide: []string{"క్రీస్తు పూర్వం", "క్రీస్తు శకం"},
- timezones: map[string]string{"GFT": "ఫ్రెంచ్ గయానా సమయం", "WARST": "పశ్చిమ అర్జెంటీనా వేసవి సమయం", "PST": "పసిఫిక్ ప్రామాణిక సమయం", "PDT": "పసిఫిక్ పగటి సమయం", "ACWST": "మధ్యమ ఆస్ట్రేలియా పశ్చిమ ప్రామాణిక సమయం", "AEST": "తూర్పు ఆస్ట్రేలియా ప్రామాణిక సమయం", "AWDT": "పశ్చిమ ఆస్ట్రేలియన్ పగటి సమయం", "NZST": "న్యూజిల్యాండ్ ప్రామాణిక సమయం", "MESZ": "సెంట్రల్ యూరోపియన్ వేసవి సమయం", "CAT": "సెంట్రల్ ఆఫ్రికా సమయం", "COST": "కొలంబియా వేసవి సమయం", "GMT": "గ్రీన్\u200cవిచ్ సగటు సమయం", "HEPMX": "మెక్సికన్ పసిఫిక్ పగటి సమయం", "MYT": "మలేషియా సమయం", "HAST": "హవాయ్-అల్యూషియన్ ప్రామాణిక సమయం", "WITA": "సెంట్రల్ ఇండోనేషియా సమయం", "CHADT": "చాథమ్ పగటి వెలుతురు సమయం", "WAT": "పశ్చిమ ఆఫ్రికా ప్రామాణిక సమయం", "MST": "మకావ్ ప్రామాణిక సమయం", "WIB": "పశ్చిమ ఇండోనేషియా సమయం", "HEPM": "సెయింట్ పియర్ మరియు మిక్వెలాన్ పగటి సమయం", "CDT": "మధ్యమ పగటి సమయం", "HADT": "హవాయ్-అల్యూషియన్ పగటి వెలుతురు సమయం", "NZDT": "న్యూజిల్యాండ్ పగటి వెలుతురు సమయం", "CLST": "చిలీ వేసవి సమయం", "TMST": "తుర్క్మెనిస్థాన్ వేసవి సమయం", "WAST": "పశ్చిమ ఆఫ్రికా వేసవి సమయం", "VET": "వెనిజులా సమయం", "HNPMX": "మెక్సికన్ పసిఫిక్ ప్రామాణిక సమయం", "BOT": "బొలీవియా సమయం", "OEZ": "తూర్పు యూరోపియన్ ప్రామాణిక సమయం", "OESZ": "తూర్పు యూరోపియన్ వేసవి సమయం", "∅∅∅": "పెరూ వేసవి సమయం", "JST": "జపాన్ ప్రామాణిక సమయం", "ChST": "చామర్రో ప్రామాణిక సమయం", "TMT": "తుర్క్మెనిస్థాన్ ప్రామాణిక సమయం", "EST": "తూర్పు ప్రామాణిక సమయం", "MDT": "మకావ్ వేసవి సమయం", "AKDT": "అలాస్కా పగటి సమయం", "WEZ": "పశ్చిమ యూరోపియన్ ప్రామాణిక సమయం", "HAT": "న్యూఫౌండ్ ల్యాండ్ పగటి సమయం", "HNEG": "తూర్పు గ్రీన్\u200cల్యాండ్ ప్రామాణిక సమయం", "IST": "భారతదేశ సమయం", "HNCU": "క్యూబా ప్రామాణిక సమయం", "HECU": "క్యూబా పగటి సమయం", "AKST": "అలాస్కా ప్రామాణిక సమయం", "WESZ": "పశ్చిమ యూరోపియన్ వేసవి సమయం", "AWST": "పశ్చిమ ఆస్ట్రేలియన్ ప్రామాణిక సమయం", "HKT": "హాంకాంగ్ ప్రామాణిక సమయం", "CHAST": "చాథమ్ ప్రామాణిక సమయం", "CLT": "చిలీ ప్రామాణిక సమయం", "HNOG": "పశ్చిమ గ్రీన్\u200cల్యాండ్ ప్రామాణిక సమయం", "HNPM": "సెయింట్ పియెర్ మరియు మిక్వెలాన్ ప్రామాణిక సమయం", "LHST": "లార్డ్ హోవ్ ప్రామాణిక సమయం", "LHDT": "లార్డ్ హోవ్ పగటి సమయం", "JDT": "జపాన్ పగటి వెలుతురు సమయం", "GYT": "గయానా సమయం", "WIT": "తూర్పు ఇండోనేషియా సమయం", "ART": "అర్జెంటీనా ప్రామాణిక సమయం", "HEOG": "పశ్చిమ గ్రీన్\u200cల్యాండ్ వేసవి సమయం", "HNNOMX": "వాయవ్య మెక్సికో ప్రామాణిక సమయం", "UYT": "ఉరుగ్వే ప్రామాణిక సమయం", "ACST": "ఆస్ట్రేలియా మధ్యమ ప్రామాణిక సమయం", "EAT": "తూర్పు ఆఫ్రికా సమయం", "ACWDT": "మధ్యమ ఆస్ట్రేలియన్ పశ్చిమ పగటి సమయం", "HNT": "న్యూఫౌండ్ ల్యాండ్ ప్రామాణిక సమయం", "AEDT": "తూర్పు ఆస్ట్రేలియా పగటి సమయం", "SAST": "దక్షిణ ఆఫ్రికా ప్రామాణిక సమయం", "SRT": "సూరినామ్ సమయం", "ACDT": "ఆస్ట్రేలియా మధ్యమ పగటి సమయం", "ECT": "ఈక్వడార్ సమయం", "HENOMX": "వాయవ్య మెక్సికో పగటి సమయం", "SGT": "సింగపూర్ ప్రామాణిక సమయం", "CST": "మధ్యమ ప్రామాణిక సమయం", "AST": "అట్లాంటిక్ ప్రామాణిక సమయం", "BT": "భూటాన్ సమయం", "HKST": "హాంకాంగ్ వేసవి సమయం", "MEZ": "సెంట్రల్ యూరోపియన్ ప్రామాణిక సమయం", "COT": "కొలంబియా ప్రామాణిక సమయం", "EDT": "తూర్పు పగటి సమయం", "ARST": "ఆర్జెంటీనా వేసవి సమయం", "WART": "పశ్చిమ అర్జెంటీనా ప్రామాణిక సమయం", "ADT": "అట్లాంటిక్ పగటి సమయం", "UYST": "ఉరుగ్వే వేసవి సమయం", "HEEG": "తూర్పు గ్రీన్\u200cల్యాండ్ వేసవి సమయం"},
+ timezones: map[string]string{"HECU": "క్యూబా పగటి సమయం", "OESZ": "తూర్పు యూరోపియన్ వేసవి సమయం", "MDT": "మకావ్ వేసవి సమయం", "HNNOMX": "వాయవ్య మెక్సికో ప్రామాణిక సమయం", "LHST": "లార్డ్ హోవ్ ప్రామాణిక సమయం", "TMT": "తుర్క్మెనిస్థాన్ ప్రామాణిక సమయం", "COST": "కొలంబియా వేసవి సమయం", "HNT": "న్యూఫౌండ్ ల్యాండ్ ప్రామాణిక సమయం", "HAT": "న్యూఫౌండ్ ల్యాండ్ పగటి సమయం", "NZST": "న్యూజిల్యాండ్ ప్రామాణిక సమయం", "NZDT": "న్యూజిల్యాండ్ పగటి వెలుతురు సమయం", "MYT": "మలేషియా సమయం", "WART": "పశ్చిమ అర్జెంటీనా ప్రామాణిక సమయం", "AEDT": "తూర్పు ఆస్ట్రేలియా పగటి సమయం", "EST": "తూర్పు ప్రామాణిక సమయం", "ChST": "చామర్రో ప్రామాణిక సమయం", "SRT": "సూరినామ్ సమయం", "VET": "వెనిజులా సమయం", "CLST": "చిలీ వేసవి సమయం", "ADT": "అట్లాంటిక్ పగటి సమయం", "ART": "అర్జెంటీనా ప్రామాణిక సమయం", "HNCU": "క్యూబా ప్రామాణిక సమయం", "ECT": "ఈక్వడార్ సమయం", "HNOG": "పశ్చిమ గ్రీన్\u200cల్యాండ్ ప్రామాణిక సమయం", "WEZ": "పశ్చిమ యూరోపియన్ ప్రామాణిక సమయం", "HNPMX": "మెక్సికన్ పసిఫిక్ ప్రామాణిక సమయం", "HEEG": "తూర్పు గ్రీన్\u200cల్యాండ్ వేసవి సమయం", "SAST": "దక్షిణ ఆఫ్రికా ప్రామాణిక సమయం", "∅∅∅": "అమెజాన్ వేసవి సమయం", "MEZ": "సెంట్రల్ యూరోపియన్ ప్రామాణిక సమయం", "ARST": "ఆర్జెంటీనా వేసవి సమయం", "ACDT": "ఆస్ట్రేలియా మధ్యమ పగటి సమయం", "HAST": "హవాయ్-అల్యూషియన్ ప్రామాణిక సమయం", "GFT": "ఫ్రెంచ్ గయానా సమయం", "HEPM": "సెయింట్ పియర్ మరియు మిక్వెలాన్ పగటి సమయం", "GYT": "గయానా సమయం", "AKST": "అలాస్కా ప్రామాణిక సమయం", "UYT": "ఉరుగ్వే ప్రామాణిక సమయం", "ACWDT": "మధ్యమ ఆస్ట్రేలియన్ పశ్చిమ పగటి సమయం", "JDT": "జపాన్ పగటి వెలుతురు సమయం", "CLT": "చిలీ ప్రామాణిక సమయం", "EDT": "తూర్పు పగటి సమయం", "WARST": "పశ్చిమ అర్జెంటీనా వేసవి సమయం", "WAT": "పశ్చిమ ఆఫ్రికా ప్రామాణిక సమయం", "HEPMX": "మెక్సికన్ పసిఫిక్ పగటి సమయం", "AWDT": "పశ్చిమ ఆస్ట్రేలియన్ పగటి సమయం", "SGT": "సింగపూర్ ప్రామాణిక సమయం", "IST": "భారతదేశ సమయం", "COT": "కొలంబియా ప్రామాణిక సమయం", "HENOMX": "వాయవ్య మెక్సికో పగటి సమయం", "HADT": "హవాయ్-అల్యూషియన్ పగటి వెలుతురు సమయం", "JST": "జపాన్ ప్రామాణిక సమయం", "HEOG": "పశ్చిమ గ్రీన్\u200cల్యాండ్ వేసవి సమయం", "HNEG": "తూర్పు గ్రీన్\u200cల్యాండ్ ప్రామాణిక సమయం", "MESZ": "సెంట్రల్ యూరోపియన్ వేసవి సమయం", "HKT": "హాంకాంగ్ ప్రామాణిక సమయం", "AKDT": "అలాస్కా పగటి సమయం", "BT": "భూటాన్ సమయం", "AEST": "తూర్పు ఆస్ట్రేలియా ప్రామాణిక సమయం", "HNPM": "సెయింట్ పియెర్ మరియు మిక్వెలాన్ ప్రామాణిక సమయం", "EAT": "తూర్పు ఆఫ్రికా సమయం", "PDT": "పసిఫిక్ పగటి సమయం", "ACWST": "మధ్యమ ఆస్ట్రేలియా పశ్చిమ ప్రామాణిక సమయం", "TMST": "తుర్క్మెనిస్థాన్ వేసవి సమయం", "MST": "మకావ్ ప్రామాణిక సమయం", "WIB": "పశ్చిమ ఇండోనేషియా సమయం", "WIT": "తూర్పు ఇండోనేషియా సమయం", "AWST": "పశ్చిమ ఆస్ట్రేలియన్ ప్రామాణిక సమయం", "CDT": "మధ్యమ పగటి సమయం", "OEZ": "తూర్పు యూరోపియన్ ప్రామాణిక సమయం", "WAST": "పశ్చిమ ఆఫ్రికా వేసవి సమయం", "WITA": "సెంట్రల్ ఇండోనేషియా సమయం", "LHDT": "లార్డ్ హోవ్ పగటి సమయం", "ACST": "ఆస్ట్రేలియా మధ్యమ ప్రామాణిక సమయం", "PST": "పసిఫిక్ ప్రామాణిక సమయం", "WESZ": "పశ్చిమ యూరోపియన్ వేసవి సమయం", "GMT": "గ్రీన్\u200cవిచ్ సగటు సమయం", "HKST": "హాంకాంగ్ వేసవి సమయం", "CHADT": "చాథమ్ పగటి వెలుతురు సమయం", "CAT": "సెంట్రల్ ఆఫ్రికా సమయం", "CST": "మధ్యమ ప్రామాణిక సమయం", "CHAST": "చాథమ్ ప్రామాణిక సమయం", "BOT": "బొలీవియా సమయం", "AST": "అట్లాంటిక్ ప్రామాణిక సమయం", "UYST": "ఉరుగ్వే వేసవి సమయం"},
}
}
diff --git a/teo/teo.go b/teo/teo.go
index 1e00e05b..26dbd4f0 100644
--- a/teo/teo.go
+++ b/teo/teo.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Christo", "Baada ya Christo"},
- timezones: map[string]string{"HKST": "HKST", "OEZ": "OEZ", "COST": "COST", "EST": "EST", "ART": "ART", "HNOG": "HNOG", "∅∅∅": "∅∅∅", "WART": "WART", "SGT": "SGT", "EDT": "EDT", "HADT": "HADT", "VET": "VET", "PST": "PST", "ChST": "ChST", "ACST": "ACST", "EAT": "EAT", "HNCU": "HNCU", "HNPMX": "HNPMX", "WIT": "WIT", "PDT": "PDT", "ACWST": "ACWST", "WITA": "WITA", "COT": "COT", "AKST": "AKST", "ARST": "ARST", "HKT": "HKT", "CAT": "CAT", "WAT": "WAT", "MST": "MST", "WIB": "WIB", "NZDT": "NZDT", "WAST": "WAST", "SRT": "SRT", "AEST": "AEST", "CHAST": "CHAST", "AST": "AST", "HEEG": "HEEG", "ACDT": "ACDT", "WESZ": "WESZ", "HEPM": "HEPM", "CHADT": "CHADT", "LHST": "LHST", "LHDT": "LHDT", "CLT": "CLT", "AKDT": "AKDT", "HNT": "HNT", "ACWDT": "ACWDT", "AWDT": "AWDT", "MESZ": "MESZ", "NZST": "NZST", "IST": "IST", "WEZ": "WEZ", "AEDT": "AEDT", "TMST": "TMST", "GYT": "GYT", "CST": "CST", "CDT": "CDT", "HAT": "HAT", "JST": "JST", "HNEG": "HNEG", "WARST": "WARST", "GMT": "GMT", "MDT": "MDT", "HEPMX": "HEPMX", "BT": "BT", "AWST": "AWST", "HNPM": "HNPM", "SAST": "SAST", "CLST": "CLST", "TMT": "TMT", "ECT": "ECT", "JDT": "JDT", "OESZ": "OESZ", "HENOMX": "HENOMX", "HECU": "HECU", "UYT": "UYT", "UYST": "UYST", "GFT": "GFT", "MYT": "MYT", "HAST": "HAST", "HEOG": "HEOG", "MEZ": "MEZ", "BOT": "BOT", "HNNOMX": "HNNOMX", "ADT": "ADT"},
+ timezones: map[string]string{"CST": "CST", "CDT": "CDT", "AWST": "AWST", "ADT": "ADT", "WESZ": "WESZ", "WARST": "WARST", "ACDT": "ACDT", "AEDT": "AEDT", "UYT": "UYT", "UYST": "UYST", "EAT": "EAT", "AEST": "AEST", "LHST": "LHST", "HNPMX": "HNPMX", "HKT": "HKT", "AKST": "AKST", "HECU": "HECU", "ACWDT": "ACWDT", "NZDT": "NZDT", "WAT": "WAT", "WITA": "WITA", "VET": "VET", "COST": "COST", "MDT": "MDT", "GFT": "GFT", "LHDT": "LHDT", "ACWST": "ACWST", "MEZ": "MEZ", "EST": "EST", "BT": "BT", "HNNOMX": "HNNOMX", "∅∅∅": "∅∅∅", "WIT": "WIT", "PDT": "PDT", "IST": "IST", "GMT": "GMT", "MYT": "MYT", "TMST": "TMST", "ACST": "ACST", "MST": "MST", "AST": "AST", "OEZ": "OEZ", "OESZ": "OESZ", "WAST": "WAST", "HAT": "HAT", "ECT": "ECT", "NZST": "NZST", "WART": "WART", "EDT": "EDT", "HENOMX": "HENOMX", "GYT": "GYT", "JST": "JST", "HEOG": "HEOG", "HNCU": "HNCU", "SGT": "SGT", "BOT": "BOT", "WIB": "WIB", "HNPM": "HNPM", "CAT": "CAT", "MESZ": "MESZ", "ART": "ART", "HNT": "HNT", "SAST": "SAST", "HAST": "HAST", "HNOG": "HNOG", "WEZ": "WEZ", "CLST": "CLST", "HEPM": "HEPM", "CHADT": "CHADT", "PST": "PST", "HADT": "HADT", "JDT": "JDT", "CLT": "CLT", "CHAST": "CHAST", "HEEG": "HEEG", "AKDT": "AKDT", "ChST": "ChST", "HEPMX": "HEPMX", "SRT": "SRT", "AWDT": "AWDT", "TMT": "TMT", "HNEG": "HNEG", "HKST": "HKST", "COT": "COT", "ARST": "ARST"},
}
}
diff --git a/teo_KE/teo_KE.go b/teo_KE/teo_KE.go
index e27d25c9..851cde30 100644
--- a/teo_KE/teo_KE.go
+++ b/teo_KE/teo_KE.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Christo", "Baada ya Christo"},
- timezones: map[string]string{"AWDT": "AWDT", "HKST": "HKST", "UYT": "UYT", "WIT": "WIT", "SRT": "SRT", "WITA": "WITA", "ChST": "ChST", "WAST": "WAST", "OEZ": "OEZ", "MST": "MST", "WIB": "WIB", "PST": "PST", "MESZ": "MESZ", "WAT": "WAT", "TMT": "TMT", "HNNOMX": "HNNOMX", "NZST": "NZST", "JDT": "JDT", "HNEG": "HNEG", "CAT": "CAT", "GMT": "GMT", "CST": "CST", "HEOG": "HEOG", "HAT": "HAT", "CHAST": "CHAST", "JST": "JST", "WART": "WART", "EST": "EST", "GYT": "GYT", "HAST": "HAST", "WEZ": "WEZ", "ACWST": "ACWST", "SAST": "SAST", "ECT": "ECT", "SGT": "SGT", "WESZ": "WESZ", "MEZ": "MEZ", "ACST": "ACST", "PDT": "PDT", "EAT": "EAT", "HENOMX": "HENOMX", "ADT": "ADT", "BT": "BT", "ACWDT": "ACWDT", "AEST": "AEST", "CLT": "CLT", "EDT": "EDT", "HNCU": "HNCU", "AKDT": "AKDT", "HADT": "HADT", "HNOG": "HNOG", "ARST": "ARST", "CLST": "CLST", "OESZ": "OESZ", "COT": "COT", "AKST": "AKST", "CDT": "CDT", "LHDT": "LHDT", "TMST": "TMST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "IST": "IST", "GFT": "GFT", "HECU": "HECU", "AEDT": "AEDT", "AWST": "AWST", "HEEG": "HEEG", "ACDT": "ACDT", "ART": "ART", "LHST": "LHST", "∅∅∅": "∅∅∅", "HKT": "HKT", "HNPM": "HNPM", "HEPM": "HEPM", "CHADT": "CHADT", "HNT": "HNT", "WARST": "WARST", "COST": "COST", "MDT": "MDT", "MYT": "MYT", "UYST": "UYST", "AST": "AST", "NZDT": "NZDT", "BOT": "BOT", "VET": "VET"},
+ timezones: map[string]string{"AWST": "AWST", "PDT": "PDT", "COST": "COST", "UYT": "UYT", "UYST": "UYST", "LHST": "LHST", "HECU": "HECU", "CST": "CST", "ECT": "ECT", "CAT": "CAT", "MDT": "MDT", "ART": "ART", "COT": "COT", "HNNOMX": "HNNOMX", "GFT": "GFT", "NZST": "NZST", "CLST": "CLST", "HKST": "HKST", "HNPM": "HNPM", "ACWST": "ACWST", "OEZ": "OEZ", "OESZ": "OESZ", "AKST": "AKST", "AEDT": "AEDT", "HAST": "HAST", "TMT": "TMT", "BT": "BT", "AEST": "AEST", "CDT": "CDT", "MESZ": "MESZ", "WESZ": "WESZ", "WART": "WART", "WITA": "WITA", "MYT": "MYT", "ACDT": "ACDT", "GYT": "GYT", "ACWDT": "ACWDT", "ADT": "ADT", "ChST": "ChST", "CHAST": "CHAST", "CHADT": "CHADT", "HADT": "HADT", "NZDT": "NZDT", "GMT": "GMT", "HNOG": "HNOG", "HEOG": "HEOG", "HKT": "HKT", "SAST": "SAST", "WIT": "WIT", "AST": "AST", "WAST": "WAST", "ACST": "ACST", "HNT": "HNT", "AKDT": "AKDT", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "VET": "VET", "EDT": "EDT", "HNCU": "HNCU", "WIB": "WIB", "EST": "EST", "SRT": "SRT", "EAT": "EAT", "SGT": "SGT", "MEZ": "MEZ", "JST": "JST", "WEZ": "WEZ", "WAT": "WAT", "HENOMX": "HENOMX", "HAT": "HAT", "IST": "IST", "MST": "MST", "ARST": "ARST", "HEEG": "HEEG", "HNPMX": "HNPMX", "PST": "PST", "WARST": "WARST", "CLT": "CLT", "HNEG": "HNEG", "HEPMX": "HEPMX", "AWDT": "AWDT", "JDT": "JDT", "TMST": "TMST", "HEPM": "HEPM", "BOT": "BOT"},
}
}
diff --git a/teo_UG/teo_UG.go b/teo_UG/teo_UG.go
index 3196e39c..17ae4e50 100644
--- a/teo_UG/teo_UG.go
+++ b/teo_UG/teo_UG.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Christo", "Baada ya Christo"},
- timezones: map[string]string{"MDT": "MDT", "COST": "COST", "UYT": "UYT", "AST": "AST", "BT": "BT", "WITA": "WITA", "SAST": "SAST", "JST": "JST", "VET": "VET", "PST": "PST", "ACWDT": "ACWDT", "CHAST": "CHAST", "WAST": "WAST", "WEZ": "WEZ", "HNT": "HNT", "CLST": "CLST", "WAT": "WAT", "UYST": "UYST", "MYT": "MYT", "MST": "MST", "ADT": "ADT", "HAST": "HAST", "WIT": "WIT", "HKT": "HKT", "NZDT": "NZDT", "ACST": "ACST", "ACDT": "ACDT", "OEZ": "OEZ", "SRT": "SRT", "ARST": "ARST", "HEEG": "HEEG", "HAT": "HAT", "AWDT": "AWDT", "CHADT": "CHADT", "TMT": "TMT", "EAT": "EAT", "HNCU": "HNCU", "CDT": "CDT", "HNPM": "HNPM", "LHST": "LHST", "LHDT": "LHDT", "IST": "IST", "OESZ": "OESZ", "HADT": "HADT", "PDT": "PDT", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "BOT": "BOT", "TMST": "TMST", "CAT": "CAT", "SGT": "SGT", "HECU": "HECU", "HEPMX": "HEPMX", "ART": "ART", "AWST": "AWST", "HNPMX": "HNPMX", "CST": "CST", "GYT": "GYT", "WIB": "WIB", "HNOG": "HNOG", "HKST": "HKST", "HEPM": "HEPM", "WARST": "WARST", "ACWST": "ACWST", "MEZ": "MEZ", "COT": "COT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AKST": "AKST", "WESZ": "WESZ", "CLT": "CLT", "GFT": "GFT", "ECT": "ECT", "WART": "WART", "AKDT": "AKDT", "HNEG": "HNEG", "GMT": "GMT", "EST": "EST", "EDT": "EDT", "HEOG": "HEOG", "AEST": "AEST", "AEDT": "AEDT", "NZST": "NZST", "JDT": "JDT", "ChST": "ChST"},
+ timezones: map[string]string{"HAST": "HAST", "ACWDT": "ACWDT", "WARST": "WARST", "AKST": "AKST", "AKDT": "AKDT", "ADT": "ADT", "WAST": "WAST", "UYT": "UYT", "CST": "CST", "WIT": "WIT", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "WAT": "WAT", "HKST": "HKST", "HNPMX": "HNPMX", "BOT": "BOT", "OESZ": "OESZ", "MYT": "MYT", "CLST": "CLST", "BT": "BT", "HAT": "HAT", "WEZ": "WEZ", "MDT": "MDT", "HNNOMX": "HNNOMX", "JDT": "JDT", "HNEG": "HNEG", "ChST": "ChST", "LHDT": "LHDT", "SRT": "SRT", "CHADT": "CHADT", "GMT": "GMT", "EDT": "EDT", "HKT": "HKT", "EAT": "EAT", "PST": "PST", "MEZ": "MEZ", "HNOG": "HNOG", "ACST": "ACST", "HEEG": "HEEG", "LHST": "LHST", "GYT": "GYT", "HNCU": "HNCU", "WIB": "WIB", "TMT": "TMT", "TMST": "TMST", "ARST": "ARST", "EST": "EST", "CDT": "CDT", "HADT": "HADT", "ACWST": "ACWST", "NZDT": "NZDT", "MESZ": "MESZ", "WART": "WART", "COT": "COT", "HENOMX": "HENOMX", "UYST": "UYST", "HNPM": "HNPM", "SGT": "SGT", "JST": "JST", "OEZ": "OEZ", "AEDT": "AEDT", "HEPM": "HEPM", "SAST": "SAST", "CHAST": "CHAST", "ECT": "ECT", "CAT": "CAT", "ART": "ART", "HNT": "HNT", "WITA": "WITA", "HEPMX": "HEPMX", "AWST": "AWST", "IST": "IST", "AWDT": "AWDT", "AST": "AST", "ACDT": "ACDT", "AEST": "AEST", "GFT": "GFT", "PDT": "PDT", "VET": "VET", "CLT": "CLT", "MST": "MST", "COST": "COST", "HECU": "HECU", "NZST": "NZST", "HEOG": "HEOG"},
}
}
diff --git a/th/th.go b/th/th.go
index 097c7d62..19f618bf 100644
--- a/th/th.go
+++ b/th/th.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ปีก่อน ค.ศ.", "ค.ศ."},
erasNarrow: []string{"ก่อน ค.ศ.", "ค.ศ."},
erasWide: []string{"ปีก่อนคริสต์ศักราช", "คริสต์ศักราช"},
- timezones: map[string]string{"IST": "เวลาอินเดีย", "SGT": "เวลาสิงคโปร์", "CDT": "เวลาออมแสงตอนกลางในอเมริกาเหนือ", "BT": "เวลาภูฏาน", "AEDT": "เวลาออมแสงทางตะวันออกของออสเตรเลีย", "AWST": "เวลามาตรฐานทางตะวันตกของออสเตรเลีย", "CHADT": "เวลาออมแสงแชทัม", "BOT": "เวลาโบลิเวีย", "LHDT": "เวลาออมแสงลอร์ดโฮว์", "CLST": "เวลาฤดูร้อนชิลี", "ChST": "เวลาชามอร์โร", "WARST": "เวลาฤดูร้อนทางตะวันตกของอาร์เจนตินา", "MDT": "เวลาฤดูร้อนมาเก๊า", "CST": "เวลามาตรฐานตอนกลางในอเมริกาเหนือ", "UYT": "เวลามาตรฐานอุรุกวัย", "SRT": "เวลาซูรินาเม", "ARST": "เวลาฤดูร้อนอาร์เจนตินา", "HKT": "เวลามาตรฐานฮ่องกง", "GFT": "เวลาเฟรนช์เกียนา", "HEPMX": "เวลาออมแสงแปซิฟิกเม็กซิโก", "ECT": "เวลาเอกวาดอร์", "WART": "เวลามาตรฐานทางตะวันตกของอาร์เจนตินา", "HADT": "เวลาออมแสงฮาวาย-อะลูเชียน", "HEOG": "เวลาฤดูร้อนกรีนแลนด์ตะวันตก", "WITA": "เวลาอินโดนีเซียตอนกลาง", "MESZ": "เวลาฤดูร้อนยุโรปกลาง", "HNEG": "เวลามาตรฐานกรีนแลนด์ตะวันออก", "HKST": "เวลาฤดูร้อนฮ่องกง", "∅∅∅": "เวลาฤดูร้อนแอมะซอน", "COT": "เวลามาตรฐานโคลอมเบีย", "LHST": "เวลามาตรฐานลอร์ดโฮว์", "JDT": "เวลาออมแสงญี่ปุ่น", "GMT": "เวลามาตรฐานกรีนิช", "HAST": "เวลามาตรฐานฮาวาย-อะลูเชียน", "ACWDT": "เวลาออมแสงทางตะวันตกตอนกลางของออสเตรเลีย", "ART": "เวลามาตรฐานอาร์เจนตินา", "WEZ": "เวลามาตรฐานยุโรปตะวันตก", "AEST": "เวลามาตรฐานทางตะวันออกของออสเตรเลีย", "ADT": "เวลาออมแสงของแอตแลนติก", "MST": "เวลามาตรฐานมาเก๊า", "MYT": "เวลามาเลเซีย", "EDT": "เวลาออมแสงทางตะวันออกในอเมริกาเหนือ", "AKST": "เวลามาตรฐานอะแลสกา", "VET": "เวลาเวเนซุเอลา", "TMST": "เวลาฤดูร้อนเติร์กเมนิสถาน", "WAST": "เวลาฤดูร้อนแอฟริกาตะวันตก", "OESZ": "เวลาฤดูร้อนยุโรปตะวันออก", "EAT": "เวลาแอฟริกาตะวันออก", "HNT": "เวลามาตรฐานนิวฟันด์แลนด์", "PST": "เวลามาตรฐานแปซิฟิกในอเมริกาเหนือ", "WESZ": "เวลาฤดูร้อนยุโรปตะวันตก", "AST": "เวลามาตรฐานแอตแลนติก", "UYST": "เวลาฤดูร้อนอุรุกวัย", "HNPM": "เวลามาตรฐานแซงปีแยร์และมีเกอลง", "ACST": "เวลามาตรฐานทางตอนกลางของออสเตรเลีย", "WAT": "เวลามาตรฐานแอฟริกาตะวันตก", "HNNOMX": "เวลามาตรฐานเม็กซิโกตะวันตกเฉียงเหนือ", "AKDT": "เวลาออมแสงของอะแลสกา", "WIT": "เวลาอินโดนีเซียฝั่งตะวันออก", "ACWST": "เวลามาตรฐานทางตะวันตกตอนกลางของออสเตรเลีย", "PDT": "เวลาออมแสงแปซิฟิกในอเมริกาเหนือ", "ACDT": "เวลาออมแสงทางตอนกลางของออสเตรเลีย", "COST": "เวลาฤดูร้อนโคลอมเบีย", "HAT": "เวลาออมแสงนิวฟันด์แลนด์", "AWDT": "เวลาออมแสงทางตะวันตกของออสเตรเลีย", "CHAST": "เวลามาตรฐานแชทัม", "HECU": "เวลาออมแสงของคิวบา", "GYT": "เวลากายอานา", "HNOG": "เวลามาตรฐานกรีนแลนด์ตะวันตก", "MEZ": "เวลามาตรฐานยุโรปกลาง", "SAST": "เวลาแอฟริกาใต้", "HEEG": "เวลาฤดูร้อนกรีนแลนด์ตะวันออก", "HNPMX": "เวลามาตรฐานแปซิฟิกเม็กซิโก", "WIB": "เวลาอินโดนีเซียฝั่งตะวันตก", "NZST": "เวลามาตรฐานนิวซีแลนด์", "OEZ": "เวลามาตรฐานยุโรปตะวันออก", "CAT": "เวลาแอฟริกากลาง", "HENOMX": "เวลาออมแสงเม็กซิโกตะวันตกเฉียงเหนือ", "HNCU": "เวลามาตรฐานคิวบา", "EST": "เวลามาตรฐานทางตะวันออกในอเมริกาเหนือ", "HEPM": "เวลาออมแสงของแซงปีแยร์และมีเกอลง", "NZDT": "เวลาออมแสงนิวซีแลนด์", "JST": "เวลามาตรฐานญี่ปุ่น", "CLT": "เวลามาตรฐานชิลี", "TMT": "เวลามาตรฐานเติร์กเมนิสถาน"},
+ timezones: map[string]string{"WIT": "เวลาอินโดนีเซียฝั่งตะวันออก", "OESZ": "เวลาฤดูร้อนยุโรปตะวันออก", "MST": "เวลามาตรฐานมาเก๊า", "GFT": "เวลาเฟรนช์เกียนา", "HADT": "เวลาออมแสงฮาวาย-อะลูเชียน", "AEDT": "เวลาออมแสงทางตะวันออกของออสเตรเลีย", "HAT": "เวลาออมแสงนิวฟันด์แลนด์", "LHST": "เวลามาตรฐานลอร์ดโฮว์", "CST": "เวลามาตรฐานตอนกลางในอเมริกาเหนือ", "HAST": "เวลามาตรฐานฮาวาย-อะลูเชียน", "MESZ": "เวลาฤดูร้อนยุโรปกลาง", "CLST": "เวลาฤดูร้อนชิลี", "WESZ": "เวลาฤดูร้อนยุโรปตะวันตก", "AST": "เวลามาตรฐานแอตแลนติก", "ARST": "เวลาฤดูร้อนอาร์เจนตินา", "GYT": "เวลากายอานา", "∅∅∅": "เวลาฤดูร้อนบราซิเลีย", "CHADT": "เวลาออมแสงแชทัม", "PST": "เวลามาตรฐานแปซิฟิกในอเมริกาเหนือ", "HNCU": "เวลามาตรฐานคิวบา", "ADT": "เวลาออมแสงของแอตแลนติก", "HENOMX": "เวลาออมแสงเม็กซิโกตะวันตกเฉียงเหนือ", "HNT": "เวลามาตรฐานนิวฟันด์แลนด์", "HEPM": "เวลาออมแสงของแซงปีแยร์และมีเกอลง", "CDT": "เวลาออมแสงตอนกลางในอเมริกาเหนือ", "SGT": "เวลาสิงคโปร์", "MYT": "เวลามาเลเซีย", "ART": "เวลามาตรฐานอาร์เจนตินา", "AKST": "เวลามาตรฐานอะแลสกา", "HEOG": "เวลาฤดูร้อนกรีนแลนด์ตะวันตก", "HKST": "เวลาฤดูร้อนฮ่องกง", "HNNOMX": "เวลามาตรฐานเม็กซิโกตะวันตกเฉียงเหนือ", "HEEG": "เวลาฤดูร้อนกรีนแลนด์ตะวันออก", "HNEG": "เวลามาตรฐานกรีนแลนด์ตะวันออก", "EAT": "เวลาแอฟริกาตะวันออก", "PDT": "เวลาออมแสงแปซิฟิกในอเมริกาเหนือ", "NZDT": "เวลาออมแสงนิวซีแลนด์", "MDT": "เวลาฤดูร้อนมาเก๊า", "AWST": "เวลามาตรฐานทางตะวันตกของออสเตรเลีย", "NZST": "เวลามาตรฐานนิวซีแลนด์", "EST": "เวลามาตรฐานทางตะวันออกในอเมริกาเหนือ", "ChST": "เวลาชามอร์โร", "CLT": "เวลามาตรฐานชิลี", "TMT": "เวลามาตรฐานเติร์กเมนิสถาน", "ACST": "เวลามาตรฐานทางตอนกลางของออสเตรเลีย", "UYST": "เวลาฤดูร้อนอุรุกวัย", "ECT": "เวลาเอกวาดอร์", "IST": "เวลาอินเดีย", "JST": "เวลามาตรฐานญี่ปุ่น", "OEZ": "เวลามาตรฐานยุโรปตะวันออก", "HNPMX": "เวลามาตรฐานแปซิฟิกเม็กซิโก", "HECU": "เวลาออมแสงของคิวบา", "WART": "เวลามาตรฐานทางตะวันตกของอาร์เจนตินา", "HKT": "เวลามาตรฐานฮ่องกง", "BT": "เวลาภูฏาน", "WAT": "เวลามาตรฐานแอฟริกาตะวันตก", "ACDT": "เวลาออมแสงทางตอนกลางของออสเตรเลีย", "UYT": "เวลามาตรฐานอุรุกวัย", "LHDT": "เวลาออมแสงลอร์ดโฮว์", "ACWST": "เวลามาตรฐานทางตะวันตกตอนกลางของออสเตรเลีย", "VET": "เวลาเวเนซุเอลา", "MEZ": "เวลามาตรฐานยุโรปกลาง", "WARST": "เวลาฤดูร้อนทางตะวันตกของอาร์เจนตินา", "WITA": "เวลาอินโดนีเซียตอนกลาง", "HNPM": "เวลามาตรฐานแซงปีแยร์และมีเกอลง", "HEPMX": "เวลาออมแสงแปซิฟิกเม็กซิโก", "SRT": "เวลาซูรินาเม", "WEZ": "เวลามาตรฐานยุโรปตะวันตก", "TMST": "เวลาฤดูร้อนเติร์กเมนิสถาน", "WAST": "เวลาฤดูร้อนแอฟริกาตะวันตก", "COST": "เวลาฤดูร้อนโคลอมเบีย", "AKDT": "เวลาออมแสงของอะแลสกา", "WIB": "เวลาอินโดนีเซียฝั่งตะวันตก", "CHAST": "เวลามาตรฐานแชทัม", "ACWDT": "เวลาออมแสงทางตะวันตกตอนกลางของออสเตรเลีย", "AEST": "เวลามาตรฐานทางตะวันออกของออสเตรเลีย", "COT": "เวลามาตรฐานโคลอมเบีย", "BOT": "เวลาโบลิเวีย", "CAT": "เวลาแอฟริกากลาง", "JDT": "เวลาออมแสงญี่ปุ่น", "GMT": "เวลามาตรฐานกรีนิช", "AWDT": "เวลาออมแสงทางตะวันตกของออสเตรเลีย", "HNOG": "เวลามาตรฐานกรีนแลนด์ตะวันตก", "EDT": "เวลาออมแสงทางตะวันออกในอเมริกาเหนือ", "SAST": "เวลาแอฟริกาใต้"},
}
}
diff --git a/th_TH/th_TH.go b/th_TH/th_TH.go
index c751f619..2fec96a8 100644
--- a/th_TH/th_TH.go
+++ b/th_TH/th_TH.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ปีก่อน ค.ศ.", "ค.ศ."},
erasNarrow: []string{"ก่อน ค.ศ.", "ค.ศ."},
erasWide: []string{"ปีก่อนคริสต์ศักราช", "คริสต์ศักราช"},
- timezones: map[string]string{"AST": "เวลามาตรฐานแอตแลนติก", "AEDT": "เวลาออมแสงทางตะวันออกของออสเตรเลีย", "WITA": "เวลาอินโดนีเซียตอนกลาง", "MESZ": "เวลาฤดูร้อนยุโรปกลาง", "GFT": "เวลาเฟรนช์เกียนา", "WARST": "เวลาฤดูร้อนทางตะวันตกของอาร์เจนตินา", "GMT": "เวลามาตรฐานกรีนิช", "OESZ": "เวลาฤดูร้อนยุโรปตะวันออก", "WESZ": "เวลาฤดูร้อนยุโรปตะวันตก", "HNT": "เวลามาตรฐานนิวฟันด์แลนด์", "PDT": "เวลาออมแสงแปซิฟิกในอเมริกาเหนือ", "ACDT": "เวลาออมแสงทางตอนกลางของออสเตรเลีย", "COT": "เวลามาตรฐานโคลอมเบีย", "EST": "เวลามาตรฐานทางตะวันออกในอเมริกาเหนือ", "HEPMX": "เวลาออมแสงแปซิฟิกเม็กซิโก", "WART": "เวลามาตรฐานทางตะวันตกของอาร์เจนตินา", "BT": "เวลาภูฏาน", "SRT": "เวลาซูรินาเม", "WEZ": "เวลามาตรฐานยุโรปตะวันตก", "ACWST": "เวลามาตรฐานทางตะวันตกตอนกลางของออสเตรเลีย", "NZDT": "เวลาออมแสงนิวซีแลนด์", "CHAST": "เวลามาตรฐานแชทัม", "ChST": "เวลาชามอร์โร", "CST": "เวลามาตรฐานตอนกลางในอเมริกาเหนือ", "TMT": "เวลามาตรฐานเติร์กเมนิสถาน", "WAT": "เวลามาตรฐานแอฟริกาตะวันตก", "MYT": "เวลามาเลเซีย", "UYST": "เวลาฤดูร้อนอุรุกวัย", "WAST": "เวลาฤดูร้อนแอฟริกาตะวันตก", "HKT": "เวลามาตรฐานฮ่องกง", "HNPMX": "เวลามาตรฐานแปซิฟิกเม็กซิโก", "LHDT": "เวลาออมแสงลอร์ดโฮว์", "CLT": "เวลามาตรฐานชิลี", "ECT": "เวลาเอกวาดอร์", "MDT": "เวลาฤดูร้อนมาเก๊า", "ARST": "เวลาฤดูร้อนอาร์เจนตินา", "HEOG": "เวลาฤดูร้อนกรีนแลนด์ตะวันตก", "AWDT": "เวลาออมแสงทางตะวันตกของออสเตรเลีย", "HNCU": "เวลามาตรฐานคิวบา", "EDT": "เวลาออมแสงทางตะวันออกในอเมริกาเหนือ", "MST": "เวลามาตรฐานมาเก๊า", "ART": "เวลามาตรฐานอาร์เจนตินา", "JDT": "เวลาออมแสงญี่ปุ่น", "TMST": "เวลาฤดูร้อนเติร์กเมนิสถาน", "AKDT": "เวลาออมแสงของอะแลสกา", "HAT": "เวลาออมแสงนิวฟันด์แลนด์", "AKST": "เวลามาตรฐานอะแลสกา", "HNOG": "เวลามาตรฐานกรีนแลนด์ตะวันตก", "HKST": "เวลาฤดูร้อนฮ่องกง", "LHST": "เวลามาตรฐานลอร์ดโฮว์", "SAST": "เวลาแอฟริกาใต้", "EAT": "เวลาแอฟริกาตะวันออก", "OEZ": "เวลามาตรฐานยุโรปตะวันออก", "CAT": "เวลาแอฟริกากลาง", "HNNOMX": "เวลามาตรฐานเม็กซิโกตะวันตกเฉียงเหนือ", "HENOMX": "เวลาออมแสงเม็กซิโกตะวันตกเฉียงเหนือ", "GYT": "เวลากายอานา", "NZST": "เวลามาตรฐานนิวซีแลนด์", "CHADT": "เวลาออมแสงแชทัม", "∅∅∅": "เวลาฤดูร้อนแอมะซอน", "ACST": "เวลามาตรฐานทางตอนกลางของออสเตรเลีย", "WIB": "เวลาอินโดนีเซียฝั่งตะวันตก", "HADT": "เวลาออมแสงฮาวาย-อะลูเชียน", "VET": "เวลาเวเนซุเอลา", "HEPM": "เวลาออมแสงของแซงปีแยร์และมีเกอลง", "HNEG": "เวลามาตรฐานกรีนแลนด์ตะวันออก", "UYT": "เวลามาตรฐานอุรุกวัย", "PST": "เวลามาตรฐานแปซิฟิกในอเมริกาเหนือ", "ACWDT": "เวลาออมแสงทางตะวันตกตอนกลางของออสเตรเลีย", "AEST": "เวลามาตรฐานทางตะวันออกของออสเตรเลีย", "HEEG": "เวลาฤดูร้อนกรีนแลนด์ตะวันออก", "SGT": "เวลาสิงคโปร์", "CDT": "เวลาออมแสงตอนกลางในอเมริกาเหนือ", "ADT": "เวลาออมแสงของแอตแลนติก", "AWST": "เวลามาตรฐานทางตะวันตกของออสเตรเลีย", "HNPM": "เวลามาตรฐานแซงปีแยร์และมีเกอลง", "CLST": "เวลาฤดูร้อนชิลี", "JST": "เวลามาตรฐานญี่ปุ่น", "COST": "เวลาฤดูร้อนโคลอมเบีย", "WIT": "เวลาอินโดนีเซียฝั่งตะวันออก", "HAST": "เวลามาตรฐานฮาวาย-อะลูเชียน", "MEZ": "เวลามาตรฐานยุโรปกลาง", "IST": "เวลาอินเดีย", "BOT": "เวลาโบลิเวีย", "HECU": "เวลาออมแสงของคิวบา"},
+ timezones: map[string]string{"AKST": "เวลามาตรฐานอะแลสกา", "HEPMX": "เวลาออมแสงแปซิฟิกเม็กซิโก", "AWST": "เวลามาตรฐานทางตะวันตกของออสเตรเลีย", "HAST": "เวลามาตรฐานฮาวาย-อะลูเชียน", "OEZ": "เวลามาตรฐานยุโรปตะวันออก", "ART": "เวลามาตรฐานอาร์เจนตินา", "HNT": "เวลามาตรฐานนิวฟันด์แลนด์", "WITA": "เวลาอินโดนีเซียตอนกลาง", "ChST": "เวลาชามอร์โร", "PST": "เวลามาตรฐานแปซิฟิกในอเมริกาเหนือ", "CAT": "เวลาแอฟริกากลาง", "HNEG": "เวลามาตรฐานกรีนแลนด์ตะวันออก", "GFT": "เวลาเฟรนช์เกียนา", "HNPM": "เวลามาตรฐานแซงปีแยร์และมีเกอลง", "BOT": "เวลาโบลิเวีย", "JDT": "เวลาออมแสงญี่ปุ่น", "HAT": "เวลาออมแสงนิวฟันด์แลนด์", "CST": "เวลามาตรฐานตอนกลางในอเมริกาเหนือ", "CDT": "เวลาออมแสงตอนกลางในอเมริกาเหนือ", "ECT": "เวลาเอกวาดอร์", "HNOG": "เวลามาตรฐานกรีนแลนด์ตะวันตก", "OESZ": "เวลาฤดูร้อนยุโรปตะวันออก", "TMST": "เวลาฤดูร้อนเติร์กเมนิสถาน", "∅∅∅": "เวลาฤดูร้อนอาเกร", "AKDT": "เวลาออมแสงของอะแลสกา", "WIT": "เวลาอินโดนีเซียฝั่งตะวันออก", "CLT": "เวลามาตรฐานชิลี", "CLST": "เวลาฤดูร้อนชิลี", "ADT": "เวลาออมแสงของแอตแลนติก", "GMT": "เวลามาตรฐานกรีนิช", "HNNOMX": "เวลามาตรฐานเม็กซิโกตะวันตกเฉียงเหนือ", "LHST": "เวลามาตรฐานลอร์ดโฮว์", "SGT": "เวลาสิงคโปร์", "ACWDT": "เวลาออมแสงทางตะวันตกตอนกลางของออสเตรเลีย", "WARST": "เวลาฤดูร้อนทางตะวันตกของอาร์เจนตินา", "EST": "เวลามาตรฐานทางตะวันออกในอเมริกาเหนือ", "MDT": "เวลาออมแสงแถบภูเขาในอเมริกาเหนือ", "HNPMX": "เวลามาตรฐานแปซิฟิกเม็กซิโก", "ACWST": "เวลามาตรฐานทางตะวันตกตอนกลางของออสเตรเลีย", "TMT": "เวลามาตรฐานเติร์กเมนิสถาน", "HKST": "เวลาฤดูร้อนฮ่องกง", "SAST": "เวลาแอฟริกาใต้", "IST": "เวลาอินเดีย", "WAT": "เวลามาตรฐานแอฟริกาตะวันตก", "BT": "เวลาภูฏาน", "WESZ": "เวลาฤดูร้อนยุโรปตะวันตก", "VET": "เวลาเวเนซุเอลา", "HECU": "เวลาออมแสงของคิวบา", "AWDT": "เวลาออมแสงทางตะวันตกของออสเตรเลีย", "MESZ": "เวลาฤดูร้อนยุโรปกลาง", "COT": "เวลามาตรฐานโคลอมเบีย", "HEEG": "เวลาฤดูร้อนกรีนแลนด์ตะวันออก", "MST": "เวลามาตรฐานแถบภูเขาในอเมริกาเหนือ", "UYT": "เวลามาตรฐานอุรุกวัย", "HNCU": "เวลามาตรฐานคิวบา", "JST": "เวลามาตรฐานญี่ปุ่น", "ARST": "เวลาฤดูร้อนอาร์เจนตินา", "EDT": "เวลาออมแสงทางตะวันออกในอเมริกาเหนือ", "ACDT": "เวลาออมแสงทางตอนกลางของออสเตรเลีย", "HKT": "เวลามาตรฐานฮ่องกง", "NZST": "เวลามาตรฐานนิวซีแลนด์", "HADT": "เวลาออมแสงฮาวาย-อะลูเชียน", "AEST": "เวลามาตรฐานทางตะวันออกของออสเตรเลีย", "CHADT": "เวลาออมแสงแชทัม", "NZDT": "เวลาออมแสงนิวซีแลนด์", "MEZ": "เวลามาตรฐานยุโรปกลาง", "MYT": "เวลามาเลเซีย", "HEOG": "เวลาฤดูร้อนกรีนแลนด์ตะวันตก", "AST": "เวลามาตรฐานแอตแลนติก", "ACST": "เวลามาตรฐานทางตอนกลางของออสเตรเลีย", "EAT": "เวลาแอฟริกาตะวันออก", "PDT": "เวลาออมแสงแปซิฟิกในอเมริกาเหนือ", "UYST": "เวลาฤดูร้อนอุรุกวัย", "SRT": "เวลาซูรินาเม", "GYT": "เวลากายอานา", "WIB": "เวลาอินโดนีเซียฝั่งตะวันตก", "CHAST": "เวลามาตรฐานแชทัม", "WEZ": "เวลามาตรฐานยุโรปตะวันตก", "COST": "เวลาฤดูร้อนโคลอมเบีย", "AEDT": "เวลาออมแสงทางตะวันออกของออสเตรเลีย", "HEPM": "เวลาออมแสงของแซงปีแยร์และมีเกอลง", "LHDT": "เวลาออมแสงลอร์ดโฮว์", "WART": "เวลามาตรฐานทางตะวันตกของอาร์เจนตินา", "WAST": "เวลาฤดูร้อนแอฟริกาตะวันตก", "HENOMX": "เวลาออมแสงเม็กซิโกตะวันตกเฉียงเหนือ"},
}
}
diff --git a/ti/ti.go b/ti/ti.go
index 8d100e14..c7fa8d46 100644
--- a/ti/ti.go
+++ b/ti/ti.go
@@ -66,7 +66,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ዓ/ዓ", "ዓ/ም"},
erasNarrow: []string{"", ""},
erasWide: []string{"ዓ/ዓ", "ዓመተ ምህረት"},
- timezones: map[string]string{"ACST": "ACST", "ART": "ART", "HNOG": "HNOG", "NZST": "NZST", "EST": "EST", "WEZ": "WEZ", "HEPM": "HEPM", "CHADT": "CHADT", "AKDT": "AKDT", "OEZ": "OEZ", "WARST": "WARST", "ECT": "ECT", "WIT": "WIT", "AWST": "AWST", "AWDT": "AWDT", "AEDT": "AEDT", "ACWDT": "ACWDT", "ARST": "ARST", "HEOG": "HEOG", "JST": "JST", "TMT": "TMT", "COT": "COT", "BT": "BT", "CHAST": "CHAST", "LHDT": "LHDT", "HECU": "HECU", "SGT": "SGT", "WITA": "WITA", "CLT": "CLT", "HEEG": "HEEG", "HADT": "HADT", "VET": "VET", "PDT": "PDT", "HAST": "HAST", "HKST": "HKST", "HNPM": "HNPM", "ACDT": "ACDT", "HEPMX": "HEPMX", "AKST": "AKST", "ADT": "ADT", "MST": "MST", "GMT": "GMT", "WIB": "WIB", "HNEG": "HNEG", "BOT": "BOT", "CDT": "CDT", "GYT": "GYT", "ACWST": "ACWST", "COST": "COST", "MESZ": "MESZ", "IST": "IST", "ChST": "ChST", "SAST": "SAST", "TMST": "TMST", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "WART": "WART", "CST": "CST", "UYT": "UYT", "HAT": "HAT", "HNPMX": "HNPMX", "NZDT": "NZDT", "MEZ": "MEZ", "∅∅∅": "∅∅∅", "CLST": "CLST", "WAST": "WAST", "UYST": "UYST", "PST": "PST", "HKT": "HKT", "EDT": "EDT", "GFT": "GFT", "MDT": "MDT", "SRT": "SRT", "LHST": "LHST", "WESZ": "WESZ", "AEST": "AEST", "JDT": "JDT", "WAT": "WAT", "CAT": "CAT", "AST": "AST", "MYT": "MYT", "HNT": "HNT", "EAT": "EAT", "HENOMX": "HENOMX", "HNCU": "HNCU"},
+ timezones: map[string]string{"MESZ": "MESZ", "WART": "WART", "WARST": "WARST", "MDT": "MDT", "AKST": "AKST", "GYT": "GYT", "CHADT": "CHADT", "HAST": "HAST", "TMT": "TMT", "WAT": "WAT", "COT": "COT", "SAST": "SAST", "WITA": "WITA", "HEPM": "HEPM", "HECU": "HECU", "CDT": "CDT", "TMST": "TMST", "ART": "ART", "COST": "COST", "HAT": "HAT", "WIB": "WIB", "MYT": "MYT", "HEOG": "HEOG", "AEST": "AEST", "ChST": "ChST", "LHDT": "LHDT", "HNOG": "HNOG", "WAST": "WAST", "ECT": "ECT", "ACWST": "ACWST", "OESZ": "OESZ", "HNEG": "HNEG", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "GFT": "GFT", "HNPMX": "HNPMX", "UYST": "UYST", "EAT": "EAT", "EDT": "EDT", "NZST": "NZST", "CAT": "CAT", "HKT": "HKT", "AKDT": "AKDT", "UYT": "UYT", "HNCU": "HNCU", "WIT": "WIT", "HADT": "HADT", "SGT": "SGT", "JST": "JST", "GMT": "GMT", "ACDT": "ACDT", "HEEG": "HEEG", "HNPM": "HNPM", "HEPMX": "HEPMX", "CST": "CST", "ADT": "ADT", "ARST": "ARST", "HKST": "HKST", "CHAST": "CHAST", "NZDT": "NZDT", "CLST": "CLST", "CLT": "CLT", "HNNOMX": "HNNOMX", "ACST": "ACST", "PDT": "PDT", "OEZ": "OEZ", "WESZ": "WESZ", "BT": "BT", "LHST": "LHST", "SRT": "SRT", "VET": "VET", "WEZ": "WEZ", "HNT": "HNT", "MEZ": "MEZ", "ACWDT": "ACWDT", "EST": "EST", "MST": "MST", "AWST": "AWST", "BOT": "BOT", "PST": "PST", "IST": "IST", "HENOMX": "HENOMX", "AWDT": "AWDT", "AST": "AST", "JDT": "JDT"},
}
}
diff --git a/ti_ER/ti_ER.go b/ti_ER/ti_ER.go
index e5126817..11b4a17c 100644
--- a/ti_ER/ti_ER.go
+++ b/ti_ER/ti_ER.go
@@ -66,7 +66,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"WEZ": "WEZ", "JST": "JST", "COST": "COST", "BOT": "BOT", "GMT": "GMT", "MDT": "MDT", "NZDT": "NZDT", "SAST": "SAST", "JDT": "JDT", "GFT": "GFT", "WART": "WART", "UYST": "UYST", "MST": "MST", "NZST": "NZST", "WAT": "WAT", "OESZ": "OESZ", "CDT": "CDT", "BT": "BT", "HNOG": "HNOG", "IST": "IST", "COT": "COT", "WIT": "WIT", "ACWST": "ACWST", "HKT": "HKT", "LHST": "LHST", "HAST": "HAST", "SRT": "SRT", "AEST": "AEST", "ACDT": "ACDT", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "EAT": "EAT", "CST": "CST", "HADT": "HADT", "ART": "ART", "ARST": "ARST", "HEOG": "HEOG", "HECU": "HECU", "HNPMX": "HNPMX", "SGT": "SGT", "WIB": "WIB", "HNT": "HNT", "MESZ": "MESZ", "CLT": "CLT", "OEZ": "OEZ", "AST": "AST", "UYT": "UYT", "HEEG": "HEEG", "TMST": "TMST", "HNPM": "HNPM", "HEPM": "HEPM", "HNNOMX": "HNNOMX", "MYT": "MYT", "VET": "VET", "ACWDT": "ACWDT", "PDT": "PDT", "WITA": "WITA", "HAT": "HAT", "HNCU": "HNCU", "EST": "EST", "GYT": "GYT", "CHADT": "CHADT", "MEZ": "MEZ", "ChST": "ChST", "HENOMX": "HENOMX", "ACST": "ACST", "HEPMX": "HEPMX", "AKST": "AKST", "AKDT": "AKDT", "CHAST": "CHAST", "CLST": "CLST", "TMT": "TMT", "LHDT": "LHDT", "WAST": "WAST", "ECT": "ECT", "ADT": "ADT", "WESZ": "WESZ", "HKST": "HKST", "AEDT": "AEDT", "AWST": "AWST", "CAT": "CAT", "PST": "PST", "HNEG": "HNEG", "WARST": "WARST", "EDT": "EDT"},
+ timezones: map[string]string{"ECT": "ECT", "CAT": "CAT", "COT": "COT", "WARST": "WARST", "ART": "ART", "HEPM": "HEPM", "CDT": "CDT", "ARST": "ARST", "BT": "BT", "LHDT": "LHDT", "WIB": "WIB", "PDT": "PDT", "NZDT": "NZDT", "MEZ": "MEZ", "CLST": "CLST", "CHADT": "CHADT", "HAT": "HAT", "AWDT": "AWDT", "HNEG": "HNEG", "MST": "MST", "AEST": "AEST", "HNPM": "HNPM", "HADT": "HADT", "IST": "IST", "JST": "JST", "WART": "WART", "MYT": "MYT", "TMT": "TMT", "GYT": "GYT", "PST": "PST", "∅∅∅": "∅∅∅", "VET": "VET", "AST": "AST", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "WITA": "WITA", "SRT": "SRT", "HNOG": "HNOG", "HEOG": "HEOG", "OESZ": "OESZ", "HKST": "HKST", "HEPMX": "HEPMX", "EAT": "EAT", "HNCU": "HNCU", "CLT": "CLT", "AKDT": "AKDT", "LHST": "LHST", "HNPMX": "HNPMX", "WAST": "WAST", "ACST": "ACST", "HNT": "HNT", "ACWST": "ACWST", "ACWDT": "ACWDT", "ADT": "ADT", "MDT": "MDT", "HENOMX": "HENOMX", "GFT": "GFT", "HECU": "HECU", "AEDT": "AEDT", "ChST": "ChST", "UYT": "UYT", "WIT": "WIT", "HAST": "HAST", "JDT": "JDT", "OEZ": "OEZ", "WESZ": "WESZ", "AKST": "AKST", "CHAST": "CHAST", "NZST": "NZST", "HKT": "HKT", "COST": "COST", "TMST": "TMST", "WAT": "WAT", "EST": "EST", "EDT": "EDT", "AWST": "AWST", "BOT": "BOT", "WEZ": "WEZ", "GMT": "GMT", "HEEG": "HEEG", "UYST": "UYST", "SGT": "SGT", "MESZ": "MESZ", "SAST": "SAST", "CST": "CST"},
}
}
diff --git a/ti_ET/ti_ET.go b/ti_ET/ti_ET.go
index aca53b32..e5c34e6a 100644
--- a/ti_ET/ti_ET.go
+++ b/ti_ET/ti_ET.go
@@ -66,7 +66,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ዓ/ዓ", "ዓ/ም"},
erasNarrow: []string{"", ""},
erasWide: []string{"ዓ/ዓ", "ዓመተ ምህረት"},
- timezones: map[string]string{"CLST": "CLST", "ACST": "ACST", "EST": "EST", "WITA": "WITA", "CHAST": "CHAST", "MYT": "MYT", "AKDT": "AKDT", "VET": "VET", "SAST": "SAST", "MST": "MST", "AEDT": "AEDT", "MESZ": "MESZ", "CHADT": "CHADT", "ACDT": "ACDT", "CST": "CST", "CDT": "CDT", "SRT": "SRT", "HAT": "HAT", "NZST": "NZST", "GFT": "GFT", "TMT": "TMT", "COT": "COT", "AKST": "AKST", "AST": "AST", "PST": "PST", "HKST": "HKST", "WAST": "WAST", "UYT": "UYT", "ADT": "ADT", "JST": "JST", "EAT": "EAT", "BOT": "BOT", "COST": "COST", "MDT": "MDT", "HNPMX": "HNPMX", "ACWDT": "ACWDT", "CLT": "CLT", "ChST": "ChST", "CAT": "CAT", "HNT": "HNT", "∅∅∅": "∅∅∅", "ARST": "ARST", "AWST": "AWST", "NZDT": "NZDT", "WAT": "WAT", "GYT": "GYT", "BT": "BT", "HNOG": "HNOG", "HNPM": "HNPM", "ART": "ART", "HKT": "HKT", "OEZ": "OEZ", "HENOMX": "HENOMX", "WEZ": "WEZ", "HEEG": "HEEG", "JDT": "JDT", "OESZ": "OESZ", "HAST": "HAST", "HEOG": "HEOG", "ACWST": "ACWST", "HADT": "HADT", "AWDT": "AWDT", "IST": "IST", "LHST": "LHST", "HNNOMX": "HNNOMX", "GMT": "GMT", "SGT": "SGT", "HNCU": "HNCU", "HEPM": "HEPM", "MEZ": "MEZ", "WART": "WART", "EDT": "EDT", "HEPMX": "HEPMX", "WIB": "WIB", "WIT": "WIT", "WESZ": "WESZ", "AEST": "AEST", "HNEG": "HNEG", "TMST": "TMST", "ECT": "ECT", "WARST": "WARST", "HECU": "HECU", "UYST": "UYST", "PDT": "PDT", "LHDT": "LHDT"},
+ timezones: map[string]string{"ACDT": "ACDT", "HNT": "HNT", "HNPM": "HNPM", "SGT": "SGT", "WART": "WART", "MDT": "MDT", "GFT": "GFT", "WIT": "WIT", "MYT": "MYT", "ECT": "ECT", "CAT": "CAT", "UYST": "UYST", "HEPMX": "HEPMX", "HADT": "HADT", "NZST": "NZST", "∅∅∅": "∅∅∅", "WAST": "WAST", "SAST": "SAST", "IST": "IST", "BT": "BT", "AKDT": "AKDT", "HEPM": "HEPM", "TMT": "TMT", "EDT": "EDT", "HAT": "HAT", "AKST": "AKST", "EST": "EST", "OEZ": "OEZ", "CLT": "CLT", "CLST": "CLST", "TMST": "TMST", "HKST": "HKST", "HNEG": "HNEG", "WITA": "WITA", "HAST": "HAST", "GYT": "GYT", "ADT": "ADT", "WAT": "WAT", "AWST": "AWST", "JDT": "JDT", "MEZ": "MEZ", "LHDT": "LHDT", "HNPMX": "HNPMX", "HNCU": "HNCU", "CST": "CST", "NZDT": "NZDT", "HENOMX": "HENOMX", "SRT": "SRT", "WIB": "WIB", "ACWST": "ACWST", "MST": "MST", "ARST": "ARST", "HKT": "HKT", "COT": "COT", "HNNOMX": "HNNOMX", "AEST": "AEST", "AEDT": "AEDT", "OESZ": "OESZ", "CDT": "CDT", "HEOG": "HEOG", "CHAST": "CHAST", "ACWDT": "ACWDT", "MESZ": "MESZ", "WEZ": "WEZ", "WARST": "WARST", "LHST": "LHST", "PDT": "PDT", "HNOG": "HNOG", "AST": "AST", "ChST": "ChST", "EAT": "EAT", "JST": "JST", "COST": "COST", "HECU": "HECU", "AWDT": "AWDT", "BOT": "BOT", "PST": "PST", "WESZ": "WESZ", "GMT": "GMT", "ART": "ART", "ACST": "ACST", "HEEG": "HEEG", "UYT": "UYT", "CHADT": "CHADT", "VET": "VET"},
}
}
diff --git a/tk/tk.go b/tk/tk.go
index c276a302..38566b6d 100644
--- a/tk/tk.go
+++ b/tk/tk.go
@@ -66,7 +66,7 @@ func New() locales.Translator {
daysAbbreviated: []string{"ýb", "db", "sb", "çb", "pb", "an", "şb"},
daysNarrow: []string{"Ý", "D", "S", "Ç", "P", "A", "Ş"},
daysWide: []string{"ýekşenbe", "duşenbe", "sişenbe", "çarşenbe", "penşenbe", "anna", "şenbe"},
- timezones: map[string]string{"UYST": "Urugwaý, tomusky wagt", "ART": "Argentina, standart wagt", "NZST": "Täze Zelandiýa, standart wagt", "ACDT": "Merkezi Awstraliýa, tomusky wagt", "OESZ": "Gündogar Ýewropa, tomusky wagt", "GFT": "Fransuz Gwiana", "HEPMX": "Meksikan Ýuwaş umman, tomusky wagt", "GYT": "Gaýana", "HADT": "Gawaý-Aleut, tomusky wagt", "BT": "Butan", "AEST": "Gündogar Awstraliýa, standart wagt", "AEDT": "Gündogar Awstraliýa, tomusky wagt", "NZDT": "Täze Zelandiýa, tomusky wagt", "WAST": "Günbatar Afrika, tomusky wagt", "UYT": "Urugwaý, standart wagt", "HNOG": "Günbatar Grenlandiýa, standart wagt", "ACWDT": "Merkezi Awstraliýa, günbatar tarap, tomusky wagt", "WARST": "Günbatar Argentina, tomusky wagt", "EDT": "Günorta Amerika, tomusky wagt", "PST": "Ýuwaş umman, standart wagt", "ACWST": "Merkezi Awstraliýa, günbatar tarap, standart wagt", "MEZ": "Merkezi Ýewropa, standart wagt", "LHST": "Lord-Hau, standart wagt", "CLT": "Çili, standart wagt", "COT": "Kolumbiýa, standart wagt", "WART": "Günbatar Argentina, standart wagt", "HNCU": "Kuba, standart wagt", "MYT": "Malaýziýa", "AKDT": "Alýaska, tomusky wagt", "WESZ": "Günbatar Ýewropa, tomusky wagt", "LHDT": "Lord-Hau, tomusky wagt", "TMT": "Türkmenistan, standart wagt", "CAT": "Merkezi Afrika", "GMT": "Grinwiç boýunça orta wagt", "CDT": "Merkezi Amerika, tomusky wagt", "HNT": "Nýufaundlend, standart wagt", "HAT": "Nýufaundlend, tomusky wagt", "MESZ": "Merkezi Ýewropa, tomusky wagt", "WAT": "Günbatar Afrika, standart wagt", "∅∅∅": "Azor adalary, tomusky wagt", "HEEG": "Gündogar Grenlandiýa, tomusky wagt", "HEOG": "Günbatar Grenlandiýa, tomusky wagt", "JST": "Ýaponiýa, standart wagt", "HECU": "Kuba, tomusky wagt", "HAST": "Gawaý-Aleut, standart wagt", "ARST": "Argentina, tomusky wagt", "WEZ": "Günbatar Ýewropa, standart wagt", "AWDT": "Günbatar Awstraliýa, tomusky wagt", "HNPM": "Sen Pýer we Mikelon, standart wagt", "HNPMX": "Meksikan Ýuwaş umman, standart wagt", "AKST": "Alýaska, standart wagt", "WITA": "Merkezi Indoneziýa", "JDT": "Ýaponiýa, tomusky wagt", "BOT": "Boliwiýa", "COST": "Kolumbiýa, tomusky wagt", "HNNOMX": "D.g.-G.b. Meksika, standart wagt", "CST": "Merkezi Amerika, standart wagt", "SRT": "Surinam", "HKT": "Gonkong, standart wagt", "CLST": "Çili, tomusky wagt", "SGT": "Singapur, standart wagt", "HKST": "Gonkong, tomusky wagt", "ChST": "Çamorro", "ACST": "Merkezi Awstraliýa, standart wagt", "EST": "Günorta Amerika, standart wagt", "HEPM": "Sen Pýer we Mikelon, tomusky wagt", "CHAST": "Çatem, standart wagt", "EAT": "Gündogar Afrika", "ADT": "Atlantika, tomusky wagt", "PDT": "Ýuwaş umman, tomusky wagt", "AWST": "Günbatar Awstraliýa, standart wagt", "CHADT": "Çatem, tomusky wagt", "IST": "Hindistan", "HNEG": "Gündogar Grenlandiýa, standart wagt", "ECT": "Ekwador", "HENOMX": "D.g.-G.b. Meksika, tomusky wagt", "MDT": "MDT", "AST": "Atlantika, standart wagt", "VET": "Wenesuela", "WIT": "Gündogar Indoneziýa", "SAST": "Günorta Afrika, standart wagt", "TMST": "Türkmenistan, tomusky wagt", "OEZ": "Gündogar Ýewropa, standart wagt", "MST": "MST", "WIB": "Günbatar Indoneziýa"},
+ timezones: map[string]string{"BOT": "Boliwiýa", "HADT": "Gawaý-Aleut, tomusky wagt", "CLT": "Çili, standart wagt", "TMST": "Türkmenistan, tomusky wagt", "HKST": "Gonkong, tomusky wagt", "∅∅∅": "Peru, tomusky wagt", "GYT": "Gaýana", "AWDT": "Günbatar Awstraliýa, tomusky wagt", "VET": "Wenesuela", "CLST": "Çili, tomusky wagt", "ADT": "Atlantika, tomusky wagt", "OEZ": "Gündogar Ýewropa, standart wagt", "WAST": "Günbatar Afrika, tomusky wagt", "CST": "Merkezi Amerika, standart wagt", "WIT": "Gündogar Indoneziýa", "OESZ": "Gündogar Ýewropa, tomusky wagt", "GMT": "Grinwiç boýunça orta wagt", "AKST": "Alýaska, standart wagt", "HEPM": "Sen Pýer we Mikelon, tomusky wagt", "JST": "Ýaponiýa, standart wagt", "HEOG": "Günbatar Grenlandiýa, tomusky wagt", "MST": "MST", "ART": "Argentina, standart wagt", "ARST": "Argentina, tomusky wagt", "WEZ": "Günbatar Ýewropa, standart wagt", "HENOMX": "D.g.-G.b. Meksika, tomusky wagt", "HEPMX": "Meksikan Ýuwaş umman, tomusky wagt", "HNCU": "Kuba, standart wagt", "MDT": "MDT", "SAST": "Günorta Afrika, standart wagt", "HAST": "Gawaý-Aleut, standart wagt", "ECT": "Ekwador", "UYST": "Urugwaý, tomusky wagt", "AWST": "Günbatar Awstraliýa, standart wagt", "CHAST": "Çatem, standart wagt", "SGT": "Singapur, standart wagt", "WAT": "Günbatar Afrika, standart wagt", "UYT": "Urugwaý, standart wagt", "LHDT": "Lord-Hau, tomusky wagt", "EST": "Günorta Amerika, standart wagt", "WIB": "Günbatar Indoneziýa", "WART": "Günbatar Argentina, standart wagt", "ACST": "Merkezi Awstraliýa, standart wagt", "CHADT": "Çatem, tomusky wagt", "NZDT": "Täze Zelandiýa, tomusky wagt", "AEDT": "Gündogar Awstraliýa, tomusky wagt", "HNPMX": "Meksikan Ýuwaş umman, standart wagt", "CAT": "Merkezi Afrika", "MYT": "Malaýziýa", "EDT": "Günorta Amerika, tomusky wagt", "COT": "Kolumbiýa, standart wagt", "BT": "Butan", "MEZ": "Merkezi Ýewropa, standart wagt", "WARST": "Günbatar Argentina, tomusky wagt", "AST": "Atlantika, standart wagt", "WITA": "Merkezi Indoneziýa", "AKDT": "Alýaska, tomusky wagt", "LHST": "Lord-Hau, standart wagt", "SRT": "Surinam", "EAT": "Gündogar Afrika", "ACDT": "Merkezi Awstraliýa, tomusky wagt", "HAT": "Nýufaundlend, tomusky wagt", "HEEG": "Gündogar Grenlandiýa, tomusky wagt", "GFT": "Fransuz Gwiana", "ACWDT": "Merkezi Awstraliýa, günbatar tarap, tomusky wagt", "NZST": "Täze Zelandiýa, standart wagt", "HNNOMX": "D.g.-G.b. Meksika, standart wagt", "HNT": "Nýufaundlend, standart wagt", "HNEG": "Gündogar Grenlandiýa, standart wagt", "MESZ": "Merkezi Ýewropa, tomusky wagt", "JDT": "Ýaponiýa, tomusky wagt", "COST": "Kolumbiýa, tomusky wagt", "HNPM": "Sen Pýer we Mikelon, standart wagt", "PST": "Ýuwaş umman, standart wagt", "IST": "Hindistan", "ACWST": "Merkezi Awstraliýa, günbatar tarap, standart wagt", "WESZ": "Günbatar Ýewropa, tomusky wagt", "TMT": "Türkmenistan, standart wagt", "HKT": "Gonkong, standart wagt", "ChST": "Çamorro", "PDT": "Ýuwaş umman, tomusky wagt", "HNOG": "Günbatar Grenlandiýa, standart wagt", "AEST": "Gündogar Awstraliýa, standart wagt", "HECU": "Kuba, tomusky wagt", "CDT": "Merkezi Amerika, tomusky wagt"},
}
}
diff --git a/tk_TM/tk_TM.go b/tk_TM/tk_TM.go
index dca4c57b..79079363 100644
--- a/tk_TM/tk_TM.go
+++ b/tk_TM/tk_TM.go
@@ -66,7 +66,7 @@ func New() locales.Translator {
daysAbbreviated: []string{"ýb", "db", "sb", "çb", "pb", "an", "şb"},
daysNarrow: []string{"Ý", "D", "S", "Ç", "P", "A", "Ş"},
daysWide: []string{"ýekşenbe", "duşenbe", "sişenbe", "çarşenbe", "penşenbe", "anna", "şenbe"},
- timezones: map[string]string{"NZST": "Täze Zelandiýa, standart wagt", "∅∅∅": "Amazonka, tomusky wagt", "WIB": "Günbatar Indoneziýa", "ACWST": "Merkezi Awstraliýa, günbatar tarap, standart wagt", "AEDT": "Gündogar Awstraliýa, tomusky wagt", "WAST": "Günbatar Afrika, tomusky wagt", "WART": "Günbatar Argentina, standart wagt", "SGT": "Singapur, standart wagt", "HNPMX": "Meksikan Ýuwaş umman, standart wagt", "AEST": "Gündogar Awstraliýa, standart wagt", "HKT": "Gonkong, standart wagt", "ChST": "Çamorro", "OESZ": "Gündogar Ýewropa, tomusky wagt", "HEPMX": "Meksikan Ýuwaş umman, tomusky wagt", "ARST": "Argentina, tomusky wagt", "AWST": "Günbatar Awstraliýa, standart wagt", "MESZ": "Merkezi Ýewropa, tomusky wagt", "JST": "Ýaponiýa, standart wagt", "HENOMX": "D.g.-G.b. Meksika, tomusky wagt", "ADT": "Atlantika, tomusky wagt", "HEOG": "Günbatar Grenlandiýa, tomusky wagt", "PDT": "Ýuwaş umman, tomusky wagt", "HEPM": "Sen Pýer we Mikelon, tomusky wagt", "EAT": "Gündogar Afrika", "HNCU": "Kuba, standart wagt", "MDT": "MDT", "UYT": "Urugwaý, standart wagt", "AST": "Atlantika, standart wagt", "WIT": "Gündogar Indoneziýa", "NZDT": "Täze Zelandiýa, tomusky wagt", "HECU": "Kuba, tomusky wagt", "WESZ": "Günbatar Ýewropa, tomusky wagt", "MEZ": "Merkezi Ýewropa, standart wagt", "LHST": "Lord-Hau, standart wagt", "IST": "Hindistan", "GFT": "Fransuz Gwiana", "ACDT": "Merkezi Awstraliýa, tomusky wagt", "CDT": "Merkezi Amerika, tomusky wagt", "EDT": "Günorta Amerika, tomusky wagt", "BT": "Butan", "LHDT": "Lord-Hau, tomusky wagt", "CHAST": "Çatem, standart wagt", "CLST": "Çili, tomusky wagt", "COT": "Kolumbiýa, standart wagt", "COST": "Kolumbiýa, tomusky wagt", "EST": "Günorta Amerika, standart wagt", "WITA": "Merkezi Indoneziýa", "ACST": "Merkezi Awstraliýa, standart wagt", "WARST": "Günbatar Argentina, tomusky wagt", "AKST": "Alýaska, standart wagt", "HNPM": "Sen Pýer we Mikelon, standart wagt", "WEZ": "Günbatar Ýewropa, standart wagt", "HNT": "Nýufaundlend, standart wagt", "CHADT": "Çatem, tomusky wagt", "CLT": "Çili, standart wagt", "BOT": "Boliwiýa", "CAT": "Merkezi Afrika", "CST": "Merkezi Amerika, standart wagt", "HAST": "Gawaý-Aleut, standart wagt", "ART": "Argentina, standart wagt", "TMT": "Türkmenistan, standart wagt", "GMT": "Grinwiç boýunça orta wagt", "HNOG": "Günbatar Grenlandiýa, standart wagt", "AWDT": "Günbatar Awstraliýa, tomusky wagt", "HKST": "Gonkong, tomusky wagt", "SAST": "Günorta Afrika, standart wagt", "UYST": "Urugwaý, tomusky wagt", "VET": "Wenesuela", "PST": "Ýuwaş umman, standart wagt", "ACWDT": "Merkezi Awstraliýa, günbatar tarap, tomusky wagt", "JDT": "Ýaponiýa, tomusky wagt", "HEEG": "Gündogar Grenlandiýa, tomusky wagt", "WAT": "Günbatar Afrika, standart wagt", "MYT": "Malaýziýa", "TMST": "Türkmenistan, tomusky wagt", "GYT": "Gaýana", "HADT": "Gawaý-Aleut, tomusky wagt", "HNEG": "Gündogar Grenlandiýa, standart wagt", "OEZ": "Gündogar Ýewropa, standart wagt", "SRT": "Surinam", "HAT": "Nýufaundlend, tomusky wagt", "ECT": "Ekwador", "HNNOMX": "D.g.-G.b. Meksika, standart wagt", "MST": "MST", "AKDT": "Alýaska, tomusky wagt"},
+ timezones: map[string]string{"PDT": "Ýuwaş umman, tomusky wagt", "WITA": "Merkezi Indoneziýa", "AEST": "Gündogar Awstraliýa, standart wagt", "BOT": "Boliwiýa", "CLT": "Çili, standart wagt", "SRT": "Surinam", "LHDT": "Lord-Hau, tomusky wagt", "OEZ": "Gündogar Ýewropa, standart wagt", "ACST": "Merkezi Awstraliýa, standart wagt", "HENOMX": "D.g.-G.b. Meksika, tomusky wagt", "HAT": "Nýufaundlend, tomusky wagt", "HNEG": "Gündogar Grenlandiýa, standart wagt", "GFT": "Fransuz Gwiana", "CST": "Merkezi Amerika, standart wagt", "AWST": "Günbatar Awstraliýa, standart wagt", "ECT": "Ekwador", "MYT": "Malaýziýa", "WIT": "Gündogar Indoneziýa", "ADT": "Atlantika, tomusky wagt", "ARST": "Argentina, tomusky wagt", "EST": "Günorta Amerika, standart wagt", "HKST": "Gonkong, tomusky wagt", "HNPM": "Sen Pýer we Mikelon, standart wagt", "CHADT": "Çatem, tomusky wagt", "MESZ": "Merkezi Ýewropa, tomusky wagt", "WEZ": "Günbatar Ýewropa, standart wagt", "HKT": "Gonkong, standart wagt", "HADT": "Gawaý-Aleut, tomusky wagt", "MEZ": "Merkezi Ýewropa, standart wagt", "BT": "Butan", "HEEG": "Gündogar Grenlandiýa, tomusky wagt", "AEDT": "Gündogar Awstraliýa, tomusky wagt", "AWDT": "Günbatar Awstraliýa, tomusky wagt", "JDT": "Ýaponiýa, tomusky wagt", "WARST": "Günbatar Argentina, tomusky wagt", "GMT": "Grinwiç boýunça orta wagt", "PST": "Ýuwaş umman, standart wagt", "AST": "Atlantika, standart wagt", "WAST": "Günbatar Afrika, tomusky wagt", "TMST": "Türkmenistan, tomusky wagt", "MST": "MST", "COST": "Kolumbiýa, tomusky wagt", "UYT": "Urugwaý, standart wagt", "EAT": "Gündogar Afrika", "HAST": "Gawaý-Aleut, standart wagt", "CLST": "Çili, tomusky wagt", "WESZ": "Günbatar Ýewropa, tomusky wagt", "HEPM": "Sen Pýer we Mikelon, tomusky wagt", "HECU": "Kuba, tomusky wagt", "WIB": "Günbatar Indoneziýa", "CHAST": "Çatem, standart wagt", "ACWDT": "Merkezi Awstraliýa, günbatar tarap, tomusky wagt", "EDT": "Günorta Amerika, tomusky wagt", "ACDT": "Merkezi Awstraliýa, tomusky wagt", "ChST": "Çamorro", "HNPMX": "Meksikan Ýuwaş umman, standart wagt", "SGT": "Singapur, standart wagt", "CAT": "Merkezi Afrika", "ACWST": "Merkezi Awstraliýa, günbatar tarap, standart wagt", "ART": "Argentina, standart wagt", "COT": "Kolumbiýa, standart wagt", "AKST": "Alýaska, standart wagt", "SAST": "Günorta Afrika, standart wagt", "∅∅∅": "Braziliýa, tomusky wagt", "NZDT": "Täze Zelandiýa, tomusky wagt", "OESZ": "Gündogar Ýewropa, tomusky wagt", "UYST": "Urugwaý, tomusky wagt", "TMT": "Türkmenistan, standart wagt", "MDT": "MDT", "WAT": "Günbatar Afrika, standart wagt", "HNNOMX": "D.g.-G.b. Meksika, standart wagt", "IST": "Hindistan", "JST": "Ýaponiýa, standart wagt", "HNOG": "Günbatar Grenlandiýa, standart wagt", "HEOG": "Günbatar Grenlandiýa, tomusky wagt", "AKDT": "Alýaska, tomusky wagt", "LHST": "Lord-Hau, standart wagt", "VET": "Wenesuela", "WART": "Günbatar Argentina, standart wagt", "HNT": "Nýufaundlend, standart wagt", "HEPMX": "Meksikan Ýuwaş umman, tomusky wagt", "GYT": "Gaýana", "HNCU": "Kuba, standart wagt", "CDT": "Merkezi Amerika, tomusky wagt", "NZST": "Täze Zelandiýa, standart wagt"},
}
}
diff --git a/to/to.go b/to/to.go
index a49f3502..e2b56670 100644
--- a/to/to.go
+++ b/to/to.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KM", "TS"},
erasNarrow: []string{"", ""},
erasWide: []string{"ki muʻa", "taʻu ʻo Sīsū"},
- timezones: map[string]string{"EDT": "houa fakaʻamelika-tokelau hahake taimi liliu", "UYT": "houa fakaʻulukuai taimi totonu", "WESZ": "houa fakaʻeulope-hihifo taimi liliu", "WITA": "houa fakaʻinitonisia-loto", "CHADT": "houa fakasatihami taimi liliu", "WIT": "houa fakaʻinitonisia-hahake", "GFT": "houa fakakuiana-fakafalanisē", "TMST": "houa fakatūkimenisitani taimi liliu", "ChST": "houa fakakamolo", "COT": "houa fakakolomipia taimi totonu", "HNPMX": "houa fakamekisikou-pasifika taimi totonu", "ACWDT": "houa fakaʻaositelēlia-loto-hihifo taimi liliu", "CLT": "houa fakasili taimi totonu", "ACDT": "houa fakaʻaositelēlia-loto taimi liliu", "WAT": "houa fakaʻafelika-hihifo taimi totonu", "CDT": "houa fakaʻamelika-tokelau loto taimi liliu", "AST": "houa fakaʻamelika-tokelau ʻatalanitiki taimi totonu", "UYST": "houa fakaʻulukuai taimi liliu", "AWDT": "houa fakaʻaositelēlia-hihifo taimi liliu", "∅∅∅": "houa fakaʻamasōne taimi liliu", "ECT": "houa fakaʻekuetoa", "AWST": "houa fakaʻaositelēlia-hihifo taimi totonu", "SAST": "houa fakaʻafelika-tonga", "HNEG": "houa fakafonuamata-hahake taimi totonu", "ACST": "houa fakaʻaositelēlia-loto taimi totonu", "WAST": "houa fakaʻafelika-hihifo taimi liliu", "HENOMX": "houa fakamekisikou-tokelauhihifo taimi liliu", "MST": "houa fakamakau taimi totonu", "JST": "houa fakasiapani taimi totonu", "EAT": "houa fakaʻafelika-hahake", "HEPMX": "houa fakamekisikou-pasifika taimi liliu", "HNT": "houa fakafonuaʻilofoʻou taimi totonu", "ART": "houa fakaʻasenitina taimi totonu", "NZST": "houa fakanuʻusila taimi totonu", "GMT": "houa fakakiliniuisi mālie", "WARST": "houa fakaʻasenitina-hihifo taimi liliu", "SGT": "houa fakasingapoa", "ARST": "houa fakaʻasenitina taimi liliu", "NZDT": "houa fakanuʻusila taimi liliu", "CLST": "houa fakasili taimi liliu", "BOT": "houa fakapolīvia", "HNNOMX": "houa fakamekisikou-tokelauhihifo taimi totonu", "HAST": "houa fakahauaʻi taimi totonu", "HNPM": "houa fakasā-piea-mo-mikeloni taimi totonu", "CHAST": "houa fakasatihami taimi totonu", "LHST": "houa fakamotuʻeikihoue taimi totonu", "LHDT": "houa fakamotuʻeikihoue taimi liliu", "MEZ": "houa fakaʻeulope-loto taimi totonu", "TMT": "houa fakatūkimenisitani taimi totonu", "EST": "houa fakaʻamelika-tokelau hahake taimi totonu", "VET": "houa fakavenesuela", "SRT": "houa fakasuliname", "PDT": "houa fakaʻamelika-tokelau pasifika taimi liliu", "HEPM": "houa fakasā-piea-mo-mikeloni taimi liliu", "CAT": "houa fakaʻafelika-loto", "WART": "houa fakaʻasenitina-hihifo taimi totonu", "ADT": "houa fakaʻamelika-tokelau ʻatalanitiki taimi liliu", "GYT": "houa fakakuiana", "ACWST": "houa fakaʻaositelēlia-loto-hihifo taimi totonu", "HEOG": "houa fakafonuamata-hihifo taimi liliu", "MESZ": "houa fakaʻeulope-loto taimi liliu", "CST": "houa fakaʻamelika-tokelau loto taimi totonu", "BT": "houa fakapūtani", "PST": "houa fakaʻamelika-tokelau pasifika taimi totonu", "HEEG": "houa fakafonuamata-hahake taimi liliu", "MYT": "houa fakamaleisia", "HADT": "houa fakahauaʻi taimi liliu", "HAT": "houa fakafonuaʻilofoʻou taimi liliu", "HNOG": "houa fakafonuamata-hihifo taimi totonu", "HKT": "houa fakahongi-kongi taimi totonu", "AEDT": "houa fakaʻaositelēlia-hahake taimi liliu", "IST": "houa fakaʻinitia", "OEZ": "houa fakaʻeulope-hahake taimi totonu", "AKST": "houa fakaʻalasika taimi totonu", "AKDT": "houa fakaʻalasika taimi liliu", "WIB": "houa fakaʻinitonisia-hihifo", "HKST": "houa fakahongi-kongi taimi liliu", "AEST": "houa fakaʻaositelēlia-hahake taimi totonu", "HNCU": "houa fakakiupa taimi totonu", "HECU": "houa fakakiupa taimi liliu", "MDT": "houa fakamakau taimi liliu", "WEZ": "houa fakaʻeulope-hihifo taimi totonu", "JDT": "houa fakasiapani taimi liliu", "OESZ": "houa fakaʻeulope-hahake taimi liliu", "COST": "houa fakakolomipia taimi liliu"},
+ timezones: map[string]string{"GMT": "houa fakakiliniuisi mālie", "EDT": "houa fakaʻamelika-tokelau hahake taimi liliu", "HNNOMX": "houa fakamekisikou-tokelauhihifo taimi totonu", "LHDT": "houa fakamotuʻeikihoue taimi liliu", "AWDT": "houa fakaʻaositelēlia-hihifo taimi liliu", "HAST": "houa fakahauaʻi taimi totonu", "HADT": "houa fakahauaʻi taimi liliu", "OESZ": "houa fakaʻeulope-hahake taimi liliu", "HNPM": "houa fakasā-piea-mo-mikeloni taimi totonu", "ACST": "houa fakaʻaositelēlia-loto taimi totonu", "HNT": "houa fakafonuaʻilofoʻou taimi totonu", "∅∅∅": "houa fakaʻāsolesi taimi liliu", "HECU": "houa fakakiupa taimi liliu", "AWST": "houa fakaʻaositelēlia-hihifo taimi totonu", "MESZ": "houa fakaʻeulope-loto taimi liliu", "AST": "houa fakaʻamelika-tokelau ʻatalanitiki taimi totonu", "CAT": "houa fakaʻafelika-loto", "WEZ": "houa fakaʻeulope-hihifo taimi totonu", "AEDT": "houa fakaʻaositelēlia-hahake taimi liliu", "ChST": "houa fakakamolo", "SAST": "houa fakaʻafelika-tonga", "WIB": "houa fakaʻinitonisia-hihifo", "ACWST": "houa fakaʻaositelēlia-loto-hihifo taimi totonu", "HAT": "houa fakafonuaʻilofoʻou taimi liliu", "UYT": "houa fakaʻulukuai taimi totonu", "MDT": "houa fakamakau taimi liliu", "ACWDT": "houa fakaʻaositelēlia-loto-hihifo taimi liliu", "OEZ": "houa fakaʻeulope-hahake taimi totonu", "MYT": "houa fakamaleisia", "HEOG": "houa fakafonuamata-hihifo taimi liliu", "ADT": "houa fakaʻamelika-tokelau ʻatalanitiki taimi liliu", "HEEG": "houa fakafonuamata-hahake taimi liliu", "UYST": "houa fakaʻulukuai taimi liliu", "BOT": "houa fakapolīvia", "HNOG": "houa fakafonuamata-hihifo taimi totonu", "MST": "houa fakamakau taimi totonu", "COST": "houa fakakolomipia taimi liliu", "HENOMX": "houa fakamekisikou-tokelauhihifo taimi liliu", "LHST": "houa fakamotuʻeikihoue taimi totonu", "PDT": "houa fakaʻamelika-tokelau pasifika taimi liliu", "ECT": "houa fakaʻekuetoa", "AKDT": "houa fakaʻalasika taimi liliu", "HEPM": "houa fakasā-piea-mo-mikeloni taimi liliu", "ART": "houa fakaʻasenitina taimi totonu", "HKT": "houa fakahongi-kongi taimi totonu", "HKST": "houa fakahongi-kongi taimi liliu", "ACDT": "houa fakaʻaositelēlia-loto taimi liliu", "AKST": "houa fakaʻalasika taimi totonu", "GYT": "houa fakakuiana", "CHADT": "houa fakasatihami taimi liliu", "MEZ": "houa fakaʻeulope-loto taimi totonu", "BT": "houa fakapūtani", "GFT": "houa fakakuiana-fakafalanisē", "TMT": "houa fakatūkimenisitani taimi totonu", "WAT": "houa fakaʻafelika-hihifo taimi totonu", "HNPMX": "houa fakamekisikou-pasifika taimi totonu", "HNCU": "houa fakakiupa taimi totonu", "PST": "houa fakaʻamelika-tokelau pasifika taimi totonu", "JDT": "houa fakasiapani taimi liliu", "CLST": "houa fakasili taimi liliu", "SRT": "houa fakasuliname", "EAT": "houa fakaʻafelika-hahake", "SGT": "houa fakasingapoa", "CHAST": "houa fakasatihami taimi totonu", "WESZ": "houa fakaʻeulope-hihifo taimi liliu", "IST": "houa fakaʻinitia", "NZST": "houa fakanuʻusila taimi totonu", "TMST": "houa fakatūkimenisitani taimi liliu", "HNEG": "houa fakafonuamata-hahake taimi totonu", "WIT": "houa fakaʻinitonisia-hahake", "CST": "houa fakaʻamelika-tokelau loto taimi totonu", "JST": "houa fakasiapani taimi totonu", "WARST": "houa fakaʻasenitina-hihifo taimi liliu", "AEST": "houa fakaʻaositelēlia-hahake taimi totonu", "COT": "houa fakakolomipia taimi totonu", "HEPMX": "houa fakamekisikou-pasifika taimi liliu", "NZDT": "houa fakanuʻusila taimi liliu", "WART": "houa fakaʻasenitina-hihifo taimi totonu", "CLT": "houa fakasili taimi totonu", "EST": "houa fakaʻamelika-tokelau hahake taimi totonu", "CDT": "houa fakaʻamelika-tokelau loto taimi liliu", "WAST": "houa fakaʻafelika-hihifo taimi liliu", "WITA": "houa fakaʻinitonisia-loto", "VET": "houa fakavenesuela", "ARST": "houa fakaʻasenitina taimi liliu"},
}
}
diff --git a/to_TO/to_TO.go b/to_TO/to_TO.go
index 59639ed4..e13b9dc6 100644
--- a/to_TO/to_TO.go
+++ b/to_TO/to_TO.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KM", "TS"},
erasNarrow: []string{"", ""},
erasWide: []string{"ki muʻa", "taʻu ʻo Sīsū"},
- timezones: map[string]string{"VET": "houa fakavenesuela", "ARST": "houa fakaʻasenitina taimi liliu", "AEDT": "houa fakaʻaositelēlia-hahake taimi liliu", "AWST": "houa fakaʻaositelēlia-hihifo taimi totonu", "HEPM": "houa fakasā-piea-mo-mikeloni taimi liliu", "∅∅∅": "houa fakaʻāsolesi taimi liliu", "HNNOMX": "houa fakamekisikou-tokelauhihifo taimi totonu", "HNPMX": "houa fakamekisikou-pasifika taimi totonu", "BT": "houa fakapūtani", "AEST": "houa fakaʻaositelēlia-hahake taimi totonu", "HKT": "houa fakahongi-kongi taimi totonu", "GFT": "houa fakakuiana-fakafalanisē", "WARST": "houa fakaʻasenitina-hihifo taimi liliu", "HNT": "houa fakafonuaʻilofoʻou taimi totonu", "AWDT": "houa fakaʻaositelēlia-hihifo taimi liliu", "HNEG": "houa fakafonuamata-hahake taimi totonu", "WIT": "houa fakaʻinitonisia-hahake", "EDT": "houa fakaʻamelika-tokelau hahake taimi liliu", "AKST": "houa fakaʻalasika taimi totonu", "WIB": "houa fakaʻinitonisia-hihifo", "ACWDT": "houa fakaʻaositelēlia-loto-hihifo taimi liliu", "MESZ": "houa fakaʻeulope-loto taimi liliu", "IST": "houa fakaʻinitia", "GMT": "houa fakakiliniuisi mālie", "CLST": "houa fakasili taimi liliu", "HEOG": "houa fakafonuamata-hihifo taimi liliu", "SGT": "houa fakasingapoa", "MST": "houa fakamakau taimi totonu", "ADT": "houa fakaʻamelika-tokelau ʻatalanitiki taimi liliu", "HAST": "houa fakahauaʻi taimi totonu", "WESZ": "houa fakaʻeulope-hihifo taimi liliu", "ACDT": "houa fakaʻaositelēlia-loto taimi liliu", "COST": "houa fakakolomipia taimi liliu", "SRT": "houa fakasuliname", "HEEG": "houa fakafonuamata-hahake taimi liliu", "TMT": "houa fakatūkimenisitani taimi totonu", "UYST": "houa fakaʻulukuai taimi liliu", "MEZ": "houa fakaʻeulope-loto taimi totonu", "JST": "houa fakasiapani taimi totonu", "ChST": "houa fakakamolo", "TMST": "houa fakatūkimenisitani taimi liliu", "HNPM": "houa fakasā-piea-mo-mikeloni taimi totonu", "AKDT": "houa fakaʻalasika taimi liliu", "ART": "houa fakaʻasenitina taimi totonu", "HKST": "houa fakahongi-kongi taimi liliu", "LHDT": "houa fakamotuʻeikihoue taimi liliu", "WAT": "houa fakaʻafelika-hihifo taimi totonu", "MDT": "houa fakamakau taimi liliu", "CST": "houa fakaʻamelika-tokelau loto taimi totonu", "CDT": "houa fakaʻamelika-tokelau loto taimi liliu", "AST": "houa fakaʻamelika-tokelau ʻatalanitiki taimi totonu", "HAT": "houa fakafonuaʻilofoʻou taimi liliu", "HNOG": "houa fakafonuamata-hihifo taimi totonu", "NZST": "houa fakanuʻusila taimi totonu", "CHADT": "houa fakasatihami taimi liliu", "HNCU": "houa fakakiupa taimi totonu", "OESZ": "houa fakaʻeulope-hahake taimi liliu", "CAT": "houa fakaʻafelika-loto", "JDT": "houa fakasiapani taimi liliu", "NZDT": "houa fakanuʻusila taimi liliu", "HADT": "houa fakahauaʻi taimi liliu", "PDT": "houa fakaʻamelika-tokelau pasifika taimi liliu", "WITA": "houa fakaʻinitonisia-loto", "LHST": "houa fakamotuʻeikihoue taimi totonu", "CHAST": "houa fakasatihami taimi totonu", "MYT": "houa fakamaleisia", "HECU": "houa fakakiupa taimi liliu", "WEZ": "houa fakaʻeulope-hihifo taimi totonu", "CLT": "houa fakasili taimi totonu", "WART": "houa fakaʻasenitina-hihifo taimi totonu", "GYT": "houa fakakuiana", "PST": "houa fakaʻamelika-tokelau pasifika taimi totonu", "OEZ": "houa fakaʻeulope-hahake taimi totonu", "ECT": "houa fakaʻekuetoa", "HENOMX": "houa fakamekisikou-tokelauhihifo taimi liliu", "EST": "houa fakaʻamelika-tokelau hahake taimi totonu", "UYT": "houa fakaʻulukuai taimi totonu", "ACWST": "houa fakaʻaositelēlia-loto-hihifo taimi totonu", "SAST": "houa fakaʻafelika-tonga", "BOT": "houa fakapolīvia", "WAST": "houa fakaʻafelika-hihifo taimi liliu", "COT": "houa fakakolomipia taimi totonu", "ACST": "houa fakaʻaositelēlia-loto taimi totonu", "EAT": "houa fakaʻafelika-hahake", "HEPMX": "houa fakamekisikou-pasifika taimi liliu"},
+ timezones: map[string]string{"WARST": "houa fakaʻasenitina-hihifo taimi liliu", "GYT": "houa fakakuiana", "EAT": "houa fakaʻafelika-hahake", "AWST": "houa fakaʻaositelēlia-hihifo taimi totonu", "AWDT": "houa fakaʻaositelēlia-hihifo taimi liliu", "CHADT": "houa fakasatihami taimi liliu", "MESZ": "houa fakaʻeulope-loto taimi liliu", "WART": "houa fakaʻasenitina-hihifo taimi totonu", "WAST": "houa fakaʻafelika-hihifo taimi liliu", "HNPM": "houa fakasā-piea-mo-mikeloni taimi totonu", "HNPMX": "houa fakamekisikou-pasifika taimi totonu", "PDT": "houa fakaʻamelika-tokelau pasifika taimi liliu", "AST": "houa fakaʻamelika-tokelau ʻatalanitiki taimi totonu", "COT": "houa fakakolomipia taimi totonu", "AEST": "houa fakaʻaositelēlia-hahake taimi totonu", "LHDT": "houa fakamotuʻeikihoue taimi liliu", "ACWST": "houa fakaʻaositelēlia-loto-hihifo taimi totonu", "VET": "houa fakavenesuela", "HEOG": "houa fakafonuamata-hihifo taimi liliu", "HAT": "houa fakafonuaʻilofoʻou taimi liliu", "HAST": "houa fakahauaʻi taimi totonu", "ECT": "houa fakaʻekuetoa", "IST": "houa fakaʻinitia", "TMST": "houa fakatūkimenisitani taimi liliu", "AKST": "houa fakaʻalasika taimi totonu", "UYST": "houa fakaʻulukuai taimi liliu", "LHST": "houa fakamotuʻeikihoue taimi totonu", "WIT": "houa fakaʻinitonisia-hahake", "WESZ": "houa fakaʻeulope-hihifo taimi liliu", "ACDT": "houa fakaʻaositelēlia-loto taimi liliu", "BOT": "houa fakapolīvia", "ACWDT": "houa fakaʻaositelēlia-loto-hihifo taimi liliu", "OESZ": "houa fakaʻeulope-hahake taimi liliu", "HNT": "houa fakafonuaʻilofoʻou taimi totonu", "GFT": "houa fakakuiana-fakafalanisē", "SAST": "houa fakaʻafelika-tonga", "HECU": "houa fakakiupa taimi liliu", "NZST": "houa fakanuʻusila taimi totonu", "NZDT": "houa fakanuʻusila taimi liliu", "HNOG": "houa fakafonuamata-hihifo taimi totonu", "HEPM": "houa fakasā-piea-mo-mikeloni taimi liliu", "UYT": "houa fakaʻulukuai taimi totonu", "SGT": "houa fakasingapoa", "MYT": "houa fakamaleisia", "CLST": "houa fakasili taimi liliu", "ADT": "houa fakaʻamelika-tokelau ʻatalanitiki taimi liliu", "MDT": "houa fakamakau taimi liliu", "WITA": "houa fakaʻinitonisia-loto", "AEDT": "houa fakaʻaositelēlia-hahake taimi liliu", "CLT": "houa fakasili taimi totonu", "GMT": "houa fakakiliniuisi mālie", "EST": "houa fakaʻamelika-tokelau hahake taimi totonu", "ACST": "houa fakaʻaositelēlia-loto taimi totonu", "WIB": "houa fakaʻinitonisia-hihifo", "PST": "houa fakaʻamelika-tokelau pasifika taimi totonu", "JST": "houa fakasiapani taimi totonu", "WAT": "houa fakaʻafelika-hihifo taimi totonu", "HENOMX": "houa fakamekisikou-tokelauhihifo taimi liliu", "CHAST": "houa fakasatihami taimi totonu", "JDT": "houa fakasiapani taimi liliu", "MST": "houa fakamakau taimi totonu", "HEEG": "houa fakafonuamata-hahake taimi liliu", "HEPMX": "houa fakamekisikou-pasifika taimi liliu", "SRT": "houa fakasuliname", "∅∅∅": "houa fakaʻamasōne taimi liliu", "CAT": "houa fakaʻafelika-loto", "ARST": "houa fakaʻasenitina taimi liliu", "HKT": "houa fakahongi-kongi taimi totonu", "COST": "houa fakakolomipia taimi liliu", "AKDT": "houa fakaʻalasika taimi liliu", "HADT": "houa fakahauaʻi taimi liliu", "TMT": "houa fakatūkimenisitani taimi totonu", "EDT": "houa fakaʻamelika-tokelau hahake taimi liliu", "HNNOMX": "houa fakamekisikou-tokelauhihifo taimi totonu", "CST": "houa fakaʻamelika-tokelau loto taimi totonu", "CDT": "houa fakaʻamelika-tokelau loto taimi liliu", "HNEG": "houa fakafonuamata-hahake taimi totonu", "ChST": "houa fakakamolo", "MEZ": "houa fakaʻeulope-loto taimi totonu", "OEZ": "houa fakaʻeulope-hahake taimi totonu", "WEZ": "houa fakaʻeulope-hihifo taimi totonu", "ART": "houa fakaʻasenitina taimi totonu", "HKST": "houa fakahongi-kongi taimi liliu", "BT": "houa fakapūtani", "HNCU": "houa fakakiupa taimi totonu"},
}
}
diff --git a/tqq b/tqq
new file mode 100644
index 00000000..465b32e0
--- /dev/null
+++ b/tqq
@@ -0,0 +1,255022 @@
+diff --git a/af/af.go b/af/af.go
+index a76aa23..b9b5d03 100644
+--- a/af/af.go
++++ b/af/af.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"v.C.", "n.C."},
+ erasNarrow: []string{"v.C.", "n.C."},
+ erasWide: []string{"voor Christus", "na Christus"},
+- timezones: map[string]string{"UYT": "Uruguay-standaardtyd", "MST": "MST", "CDT": "Sentrale dagligtyd", "HEPM": "Sint-Pierre en Miquelon-dagligtyd", "MEZ": "Sentraal-Europese standaardtyd", "TMST": "Turkmenistan-somertyd", "WART": "Wes-Argentinië-standaardtyd", "UYST": "Uruguay-somertyd", "VET": "Venezuela-tyd", "IST": "Indië-standaardtyd", "JDT": "Japan-dagligtyd", "HEPMX": "Meksikaanse Pasifiese dagligtyd", "WAT": "Wes-Afrika-standaardtyd", "HECU": "Kuba-dagligtyd", "GYT": "Guyana-tyd", "HNPM": "Sint-Pierre en Miquelon-standaardtyd", "ChST": "Chamorro-standaardtyd", "CAT": "Sentraal-Afrika-tyd", "WIB": "Wes-Indonesië-tyd", "HAT": "Newfoundland-dagligtyd", "HNOG": "Wes-Groenland-standaardtyd", "AEDT": "Australiese Oostelike dagligtyd", "AWDT": "Australiese Westelike dagligtyd", "LHST": "Lord Howe-standaardtyd", "GFT": "Frans-Guiana-tyd", "HNCU": "Kuba-standaardtyd", "HEEG": "Oos-Groenland-somertyd", "CHADT": "Chatham-dagligtyd", "JST": "Japan-standaardtyd", "HNEG": "Oos-Groenland-standaardtyd", "ACDT": "Australiese sentrale dagligtyd", "AEST": "Australiese Oostelike standaardtyd", "COST": "Colombië-somertyd", "SGT": "Singapoer-standaardtyd", "CST": "Sentrale standaardtyd", "ADT": "Atlantiese dagligtyd", "HADT": "Hawaii-Aleusiër-dagligtyd", "LHDT": "Lord Howe-dagligtyd", "WAST": "Wes-Afrika-somertyd", "GMT": "Greenwich-mediaantyd", "MDT": "MDT", "HNPMX": "Meksikaanse Pasifiese standaardtyd", "ACWST": "Australiese sentraal-Westelike standaard-tyd", "AWST": "Australiese Westelike standaardtyd", "WARST": "Wes-Argentinië-somertyd", "ECT": "Ecuador-tyd", "∅∅∅": "Peru-somertyd", "EDT": "Oostelike dagligtyd", "NZST": "Nieu-Seeland-standaardtyd", "OESZ": "Oos-Europese somertyd", "HENOMX": "Noordwes-Meksiko-dagligtyd", "AKDT": "Alaska-dagligtyd", "HEOG": "Wes-Groenland-somertyd", "WESZ": "Wes-Europese somertyd", "HKST": "Hongkong-somertyd", "EAT": "Oos-Afrika-tyd", "HAST": "Hawaii-Aleusiër-standaardtyd", "PDT": "Pasifiese dagligtyd", "WITA": "Sentraal Indonesië-tyd", "BOT": "Bolivia-tyd", "MYT": "Maleisië-tyd", "AKST": "Alaska-standaardtyd", "BT": "Bhoetan-tyd", "SRT": "Suriname-tyd", "HNT": "Newfoundland-standaardtyd", "SAST": "Suid-Afrika-standaardtyd", "CLT": "Chili-standaardtyd", "OEZ": "Oos-Europese standaardtyd", "ART": "Argentinië-standaardtyd", "WEZ": "Wes-Europese standaardtyd", "ACWDT": "Australiese sentraal-Westelike dagligtyd", "CHAST": "Chatham-standaardtyd", "AST": "Atlantiese standaardtyd", "ARST": "Argentinië-somertyd", "PST": "Pasifiese standaardtyd", "MESZ": "Sentraal-Europese somertyd", "CLST": "Chili-somertyd", "COT": "Colombië-standaardtyd", "NZDT": "Nieu-Seeland-dagligtyd", "TMT": "Turkmenistan-standaardtyd", "ACST": "Australiese sentraal-standaardtyd", "EST": "Oostelike standaardtyd", "WIT": "Oos-Indonesië-tyd", "HKT": "Hongkong-standaardtyd", "HNNOMX": "Noordwes-Meksiko-standaardtyd"},
++ timezones: map[string]string{"BOT": "Bolivia-tyd", "HEEG": "Oos-Groenland-somertyd", "AWDT": "Australiese Westelike dagligtyd", "LHST": "Lord Howe-standaardtyd", "PDT": "Pasifiese dagligtyd", "GYT": "Guyana-tyd", "CAT": "Sentraal-Afrika-tyd", "TMT": "Turkmenistan-standaardtyd", "HEPM": "Sint-Pierre en Miquelon-dagligtyd", "HNCU": "Kuba-standaardtyd", "HECU": "Kuba-dagligtyd", "OEZ": "Oos-Europese standaardtyd", "HNT": "Newfoundland-standaardtyd", "MDT": "MDT", "ART": "Argentinië-standaardtyd", "HNPM": "Sint-Pierre en Miquelon-standaardtyd", "LHDT": "Lord Howe-dagligtyd", "SGT": "Singapoer-standaardtyd", "WAST": "Wes-Afrika-somertyd", "SAST": "Suid-Afrika-standaardtyd", "EDT": "Oostelike dagligtyd", "AEDT": "Australiese Oostelike dagligtyd", "CHAST": "Chatham-standaardtyd", "UYT": "Uruguay-standaardtyd", "HNPMX": "Meksikaanse Pasifiese standaardtyd", "TMST": "Turkmenistan-somertyd", "MYT": "Maleisië-tyd", "GMT": "Greenwich-mediaantyd", "COT": "Colombië-standaardtyd", "WITA": "Sentraal Indonesië-tyd", "ChST": "Chamorro-standaardtyd", "AST": "Atlantiese standaardtyd", "HAST": "Hawaii-Aleusiër-standaardtyd", "HADT": "Hawaii-Aleusiër-dagligtyd", "HNEG": "Oos-Groenland-standaardtyd", "ACWDT": "Australiese sentraal-Westelike dagligtyd", "HNOG": "Wes-Groenland-standaardtyd", "EST": "Oostelike standaardtyd", "CLST": "Chili-somertyd", "NZDT": "Nieu-Seeland-dagligtyd", "MESZ": "Sentraal-Europese somertyd", "JDT": "Japan-dagligtyd", "PST": "Pasifiese standaardtyd", "WAT": "Wes-Afrika-standaardtyd", "GFT": "Frans-Guiana-tyd", "HKT": "Hongkong-standaardtyd", "AWST": "Australiese Westelike standaardtyd", "WIT": "Oos-Indonesië-tyd", "JST": "Japan-standaardtyd", "WIB": "Wes-Indonesië-tyd", "HNNOMX": "Noordwes-Meksiko-standaardtyd", "COST": "Colombië-somertyd", "HKST": "Hongkong-somertyd", "CDT": "Sentrale dagligtyd", "ECT": "Ecuador-tyd", "HENOMX": "Noordwes-Meksiko-dagligtyd", "ACDT": "Australiese sentrale dagligtyd", "CHADT": "Chatham-dagligtyd", "AKST": "Alaska-standaardtyd", "HAT": "Newfoundland-dagligtyd", "∅∅∅": "Brasilië somertyd", "CST": "Sentrale standaardtyd", "ADT": "Atlantiese dagligtyd", "WESZ": "Wes-Europese somertyd", "OESZ": "Oos-Europese somertyd", "WARST": "Wes-Argentinië-somertyd", "MEZ": "Sentraal-Europese standaardtyd", "VET": "Venezuela-tyd", "WEZ": "Wes-Europese standaardtyd", "HEOG": "Wes-Groenland-somertyd", "MST": "MST", "ARST": "Argentinië-somertyd", "SRT": "Suriname-tyd", "ACST": "Australiese sentraal-standaardtyd", "ACWST": "Australiese sentraal-Westelike standaard-tyd", "UYST": "Uruguay-somertyd", "IST": "Indië-standaardtyd", "WART": "Wes-Argentinië-standaardtyd", "CLT": "Chili-standaardtyd", "BT": "Bhoetan-tyd", "AEST": "Australiese Oostelike standaardtyd", "HEPMX": "Meksikaanse Pasifiese dagligtyd", "AKDT": "Alaska-dagligtyd", "NZST": "Nieu-Seeland-standaardtyd", "EAT": "Oos-Afrika-tyd"},
+ }
+ }
+ 
+diff --git a/af_NA/af_NA.go b/af_NA/af_NA.go
+index fd4af72..8b082a8 100644
+--- a/af_NA/af_NA.go
++++ b/af_NA/af_NA.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type af_NA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'af_NA' locale
+ func New() locales.Translator {
+ return &af_NA{
+- locale: "af_NA",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "$", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan.", "Feb.", "Mrt.", "Apr.", "Mei", "Jun.", "Jul.", "Aug.", "Sep.", "Okt.", "Nov.", "Des."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januarie", "Februarie", "Maart", "April", "Mei", "Junie", "Julie", "Augustus", "September", "Oktober", "November", "Desember"},
+- daysAbbreviated: []string{"So.", "Ma.", "Di.", "Wo.", "Do.", "Vr.", "Sa."},
+- daysNarrow: []string{"S", "M", "D", "W", "D", "V", "S"},
+- daysShort: []string{"So.", "Ma.", "Di.", "Wo.", "Do.", "Vr.", "Sa."},
+- daysWide: []string{"Sondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrydag", "Saterdag"},
+- periodsAbbreviated: []string{"vm.", "nm."},
+- periodsNarrow: []string{"v", "n"},
+- periodsWide: []string{"vm.", "nm."},
+- erasAbbreviated: []string{"v.C.", "n.C."},
+- erasNarrow: []string{"v.C.", "n.C."},
+- erasWide: []string{"voor Christus", "na Christus"},
+- timezones: map[string]string{"HEEG": "Oos-Groenland-somertyd", "HNNOMX": "Noordwes-Meksiko-standaardtyd", "HECU": "Kuba-dagligtyd", "AEDT": "Australiese Oostelike dagligtyd", "JDT": "Japan-dagligtyd", "ChST": "Chamorro-standaardtyd", "AKST": "Alaska-standaardtyd", "CDT": "Sentrale dagligtyd", "AST": "Atlantiese standaardtyd", "ACWDT": "Australiese sentraal-Westelike dagligtyd", "NZDT": "Nieu-Seeland-dagligtyd", "AWST": "Australiese Westelike standaardtyd", "GFT": "Frans-Guiana-tyd", "ECT": "Ecuador-tyd", "MST": "MST", "HEPMX": "Meksikaanse Pasifiese dagligtyd", "ACWST": "Australiese sentraal-Westelike standaard-tyd", "AEST": "Australiese Oostelike standaardtyd", "AWDT": "Australiese Westelike dagligtyd", "CLST": "Chili-somertyd", "∅∅∅": "Peru-somertyd", "EST": "Oostelike standaardtyd", "GYT": "Guyana-tyd", "MYT": "Maleisië-tyd", "WIT": "Oos-Indonesië-tyd", "WITA": "Sentraal Indonesië-tyd", "HNPM": "Sint-Pierre en Miquelon-standaardtyd", "CLT": "Chili-standaardtyd", "WAST": "Wes-Afrika-somertyd", "OESZ": "Oos-Europese somertyd", "WARST": "Wes-Argentinië-somertyd", "GMT": "Greenwich-mediaantyd", "HNPMX": "Meksikaanse Pasifiese standaardtyd", "EDT": "Oostelike dagligtyd", "BT": "Bhoetan-tyd", "ARST": "Argentinië-somertyd", "HKST": "Hongkong-somertyd", "HNEG": "Oos-Groenland-standaardtyd", "CAT": "Sentraal-Afrika-tyd", "WART": "Wes-Argentinië-standaardtyd", "COST": "Colombië-somertyd", "CST": "Sentrale standaardtyd", "HEOG": "Wes-Groenland-somertyd", "HKT": "Hongkong-standaardtyd", "BOT": "Bolivia-tyd", "SAST": "Suid-Afrika-standaardtyd", "EAT": "Oos-Afrika-tyd", "VET": "Venezuela-tyd", "ART": "Argentinië-standaardtyd", "LHDT": "Lord Howe-dagligtyd", "NZST": "Nieu-Seeland-standaardtyd", "HNT": "Newfoundland-standaardtyd", "MEZ": "Sentraal-Europese standaardtyd", "MESZ": "Sentraal-Europese somertyd", "ACST": "Australiese sentraal-standaardtyd", "IST": "Indië-standaardtyd", "WAT": "Wes-Afrika-standaardtyd", "MDT": "MDT", "ADT": "Atlantiese dagligtyd", "HEPM": "Sint-Pierre en Miquelon-dagligtyd", "LHST": "Lord Howe-standaardtyd", "CHADT": "Chatham-dagligtyd", "OEZ": "Oos-Europese standaardtyd", "SGT": "Singapoer-standaardtyd", "HADT": "Hawaii-Aleusiër-dagligtyd", "WEZ": "Wes-Europese standaardtyd", "CHAST": "Chatham-standaardtyd", "HNCU": "Kuba-standaardtyd", "AKDT": "Alaska-dagligtyd", "PST": "Pasifiese standaardtyd", "HAT": "Newfoundland-dagligtyd", "TMT": "Turkmenistan-standaardtyd", "TMST": "Turkmenistan-somertyd", "COT": "Colombië-standaardtyd", "HENOMX": "Noordwes-Meksiko-dagligtyd", "PDT": "Pasifiese dagligtyd", "WESZ": "Wes-Europese somertyd", "JST": "Japan-standaardtyd", "HNOG": "Wes-Groenland-standaardtyd", "ACDT": "Australiese sentrale dagligtyd", "UYT": "Uruguay-standaardtyd", "UYST": "Uruguay-somertyd", "WIB": "Wes-Indonesië-tyd", "HAST": "Hawaii-Aleusiër-standaardtyd", "SRT": "Suriname-tyd"},
++ locale: "af_NA",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "$", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ADT": "ADT", "SRT": "SRT", "MESZ": "MESZ", "HENOMX": "HENOMX", "UYT": "UYT", "OEZ": "OEZ", "NZST": "NZST", "NZDT": "NZDT", "HEOG": "HEOG", "CHAST": "CHAST", "SGT": "SGT", "COST": "COST", "MDT": "MDT", "HEPM": "HEPM", "HNEG": "HNEG", "LHST": "LHST", "MYT": "MYT", "JST": "JST", "IST": "IST", "BT": "BT", "CST": "CST", "ARST": "ARST", "AEDT": "AEDT", "WEZ": "WEZ", "OESZ": "OESZ", "COT": "COT", "WIB": "WIB", "VET": "VET", "AWST": "AWST", "HNPM": "HNPM", "PDT": "PDT", "AEST": "AEST", "∅∅∅": "∅∅∅", "HADT": "HADT", "ACDT": "ACDT", "AKDT": "AKDT", "EAT": "EAT", "ACST": "ACST", "MEZ": "MEZ", "WAST": "WAST", "WARST": "WARST", "SAST": "SAST", "HKT": "HKT", "TMT": "TMT", "ChST": "ChST", "PST": "PST", "HEPMX": "HEPMX", "AKST": "AKST", "WART": "WART", "EDT": "EDT", "CDT": "CDT", "LHDT": "LHDT", "TMST": "TMST", "BOT": "BOT", "ECT": "ECT", "AWDT": "AWDT", "ACWST": "ACWST", "WIT": "WIT", "GYT": "GYT", "EST": "EST", "CLT": "CLT", "GFT": "GFT", "GMT": "GMT", "WESZ": "WESZ", "HECU": "HECU", "WAT": "WAT", "AST": "AST", "ART": "ART", "HEEG": "HEEG", "CHADT": "CHADT", "HAT": "HAT", "CAT": "CAT", "MST": "MST", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "WITA": "WITA", "HAST": "HAST", "HNPMX": "HNPMX", "HNT": "HNT", "HNOG": "HNOG", "JDT": "JDT", "HNCU": "HNCU", "UYST": "UYST", "HKST": "HKST", "CLST": "CLST"},
+ }
+ }
+ 
+@@ -124,7 +101,7 @@ func (af *af_NA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (af *af_NA) MonthsAbbreviated() []string {
+- return af.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -134,7 +111,7 @@ func (af *af_NA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (af *af_NA) MonthsNarrow() []string {
+- return af.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -144,7 +121,7 @@ func (af *af_NA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (af *af_NA) MonthsWide() []string {
+- return af.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,75 +167,13 @@ func (af *af_NA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'af_NA' and handles both Whole and Real numbers based on 'v'
+ func (af *af_NA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, af.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(af.group) - 1; j >= 0; j-- {
+- b = append(b, af.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, af.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'af_NA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (af *af_NA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, af.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, af.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, af.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'af_NA'
+@@ -266,58 +181,7 @@ func (af *af_NA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := af.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, af.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(af.group) - 1; j >= 0; j-- {
+- b = append(b, af.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, af.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, af.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'af_NA'
+@@ -326,70 +190,7 @@ func (af *af_NA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := af.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, af.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(af.group) - 1; j >= 0; j-- {
+- b = append(b, af.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, af.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, af.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, af.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'af_NA'
+@@ -397,28 +198,6 @@ func (af *af_NA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -486,19 +265,6 @@ func (af *af_NA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, af.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -507,26 +273,6 @@ func (af *af_NA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, af.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, af.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -535,30 +281,6 @@ func (af *af_NA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, af.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, af.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -567,34 +289,5 @@ func (af *af_NA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, af.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, af.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := af.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/af_ZA/af_ZA.go b/af_ZA/af_ZA.go
+index 4e99fc4..b840e45 100644
+--- a/af_ZA/af_ZA.go
++++ b/af_ZA/af_ZA.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type af_ZA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'af_ZA' locale
+ func New() locales.Translator {
+ return &af_ZA{
+- locale: "af_ZA",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan.", "Feb.", "Mrt.", "Apr.", "Mei", "Jun.", "Jul.", "Aug.", "Sep.", "Okt.", "Nov.", "Des."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januarie", "Februarie", "Maart", "April", "Mei", "Junie", "Julie", "Augustus", "September", "Oktober", "November", "Desember"},
+- daysAbbreviated: []string{"So.", "Ma.", "Di.", "Wo.", "Do.", "Vr.", "Sa."},
+- daysNarrow: []string{"S", "M", "D", "W", "D", "V", "S"},
+- daysShort: []string{"So.", "Ma.", "Di.", "Wo.", "Do.", "Vr.", "Sa."},
+- daysWide: []string{"Sondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrydag", "Saterdag"},
+- periodsAbbreviated: []string{"vm.", "nm."},
+- periodsNarrow: []string{"v", "n"},
+- periodsWide: []string{"vm.", "nm."},
+- erasAbbreviated: []string{"v.C.", "n.C."},
+- erasNarrow: []string{"v.C.", "n.C."},
+- erasWide: []string{"voor Christus", "na Christus"},
+- timezones: map[string]string{"∅∅∅": "Amasone-somertyd", "OEZ": "Oos-Europese standaardtyd", "WIB": "Wes-Indonesië-tyd", "AWST": "Australiese Westelike standaardtyd", "CHAST": "Chatham-standaardtyd", "JST": "Japan-standaardtyd", "WARST": "Wes-Argentinië-somertyd", "EDT": "Oostelike dagligtyd", "ARST": "Argentinië-somertyd", "WITA": "Sentraal Indonesië-tyd", "MESZ": "Sentraal-Europese somertyd", "TMT": "Turkmenistan-standaardtyd", "HAST": "Hawaii-Aleusiër-standaardtyd", "ART": "Argentinië-standaardtyd", "HNPM": "Sint-Pierre en Miquelon-standaardtyd", "MEZ": "Sentraal-Europese standaardtyd", "SAST": "Suid-Afrika-standaardtyd", "CLST": "Chili-somertyd", "TMST": "Turkmenistan-somertyd", "EAT": "Oos-Afrika-tyd", "HENOMX": "Noordwes-Meksiko-dagligtyd", "HNPMX": "Meksikaanse Pasifiese standaardtyd", "UYST": "Uruguay-somertyd", "IST": "Indië-standaardtyd", "WAT": "Wes-Afrika-standaardtyd", "WAST": "Wes-Afrika-somertyd", "ECT": "Ecuador-tyd", "GYT": "Guyana-tyd", "VET": "Venezuela-tyd", "HKST": "Hongkong-somertyd", "LHDT": "Lord Howe-dagligtyd", "NZDT": "Nieu-Seeland-dagligtyd", "ChST": "Chamorro-standaardtyd", "HEEG": "Oos-Groenland-somertyd", "COT": "Colombië-standaardtyd", "HEPMX": "Meksikaanse Pasifiese dagligtyd", "WESZ": "Wes-Europese somertyd", "ACDT": "Australiese sentrale dagligtyd", "CAT": "Sentraal-Afrika-tyd", "UYT": "Uruguay-standaardtyd", "CST": "Sentrale standaardtyd", "HEPM": "Sint-Pierre en Miquelon-dagligtyd", "LHST": "Lord Howe-standaardtyd", "CHADT": "Chatham-dagligtyd", "CLT": "Chili-standaardtyd", "JDT": "Japan-dagligtyd", "WART": "Wes-Argentinië-standaardtyd", "HNCU": "Kuba-standaardtyd", "HEOG": "Wes-Groenland-somertyd", "ACWST": "Australiese sentraal-Westelike standaard-tyd", "AEST": "Australiese Oostelike standaardtyd", "HNEG": "Oos-Groenland-standaardtyd", "AKST": "Alaska-standaardtyd", "BT": "Bhoetan-tyd", "PDT": "Pasifiese dagligtyd", "COST": "Colombië-somertyd", "GMT": "Greenwich-mediaantyd", "AKDT": "Alaska-dagligtyd", "PST": "Pasifiese standaardtyd", "AEDT": "Australiese Oostelike dagligtyd", "AWDT": "Australiese Westelike dagligtyd", "HKT": "Hongkong-standaardtyd", "AST": "Atlantiese standaardtyd", "ADT": "Atlantiese dagligtyd", "GFT": "Frans-Guiana-tyd", "HNNOMX": "Noordwes-Meksiko-standaardtyd", "WIT": "Oos-Indonesië-tyd", "HNT": "Newfoundland-standaardtyd", "SGT": "Singapoer-standaardtyd", "CDT": "Sentrale dagligtyd", "WEZ": "Wes-Europese standaardtyd", "ACWDT": "Australiese sentraal-Westelike dagligtyd", "HAT": "Newfoundland-dagligtyd", "NZST": "Nieu-Seeland-standaardtyd", "ACST": "Australiese sentraal-standaardtyd", "OESZ": "Oos-Europese somertyd", "HECU": "Kuba-dagligtyd", "EST": "Oostelike standaardtyd", "MST": "MST", "MDT": "MDT", "MYT": "Maleisië-tyd", "SRT": "Suriname-tyd", "HNOG": "Wes-Groenland-standaardtyd", "BOT": "Bolivia-tyd", "HADT": "Hawaii-Aleusiër-dagligtyd"},
++ locale: "af_ZA",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MESZ": "MESZ", "JST": "JST", "CHADT": "CHADT", "AKST": "AKST", "EDT": "EDT", "BOT": "BOT", "HADT": "HADT", "AWST": "AWST", "AKDT": "AKDT", "CAT": "CAT", "WIB": "WIB", "HAST": "HAST", "HEEG": "HEEG", "HNOG": "HNOG", "CLST": "CLST", "SRT": "SRT", "HEPMX": "HEPMX", "OESZ": "OESZ", "GYT": "GYT", "HNEG": "HNEG", "HNPM": "HNPM", "HEPM": "HEPM", "HNT": "HNT", "HEOG": "HEOG", "COST": "COST", "HNNOMX": "HNNOMX", "GFT": "GFT", "COT": "COT", "MST": "MST", "NZST": "NZST", "ACST": "ACST", "LHST": "LHST", "MYT": "MYT", "WEZ": "WEZ", "CST": "CST", "AWDT": "AWDT", "HECU": "HECU", "HNPMX": "HNPMX", "HAT": "HAT", "WITA": "WITA", "NZDT": "NZDT", "UYST": "UYST", "∅∅∅": "∅∅∅", "IST": "IST", "OEZ": "OEZ", "TMT": "TMT", "CHAST": "CHAST", "SGT": "SGT", "EST": "EST", "ADT": "ADT", "GMT": "GMT", "AEDT": "AEDT", "UYT": "UYT", "VET": "VET", "SAST": "SAST", "CDT": "CDT", "ART": "ART", "ARST": "ARST", "AST": "AST", "HNCU": "HNCU", "WAST": "WAST", "WART": "WART", "WAT": "WAT", "MDT": "MDT", "ChST": "ChST", "EAT": "EAT", "HENOMX": "HENOMX", "LHDT": "LHDT", "PST": "PST", "WESZ": "WESZ", "CLT": "CLT", "JDT": "JDT", "AEST": "AEST", "WIT": "WIT", "ECT": "ECT", "ACDT": "ACDT", "ACWDT": "ACWDT", "PDT": "PDT", "HKT": "HKT", "HKST": "HKST", "MEZ": "MEZ", "ACWST": "ACWST", "BT": "BT", "WARST": "WARST", "TMST": "TMST"},
+ }
+ }
+ 
+@@ -124,7 +101,7 @@ func (af *af_ZA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (af *af_ZA) MonthsAbbreviated() []string {
+- return af.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -134,7 +111,7 @@ func (af *af_ZA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (af *af_ZA) MonthsNarrow() []string {
+- return af.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -144,7 +121,7 @@ func (af *af_ZA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (af *af_ZA) MonthsWide() []string {
+- return af.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,75 +167,13 @@ func (af *af_ZA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'af_ZA' and handles both Whole and Real numbers based on 'v'
+ func (af *af_ZA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, af.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(af.group) - 1; j >= 0; j-- {
+- b = append(b, af.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, af.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'af_ZA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (af *af_ZA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, af.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, af.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, af.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'af_ZA'
+@@ -266,58 +181,7 @@ func (af *af_ZA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := af.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, af.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(af.group) - 1; j >= 0; j-- {
+- b = append(b, af.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, af.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, af.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'af_ZA'
+@@ -326,70 +190,7 @@ func (af *af_ZA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := af.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, af.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(af.group) - 1; j >= 0; j-- {
+- b = append(b, af.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, af.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, af.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, af.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'af_ZA'
+@@ -397,28 +198,6 @@ func (af *af_ZA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -427,21 +206,6 @@ func (af *af_ZA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, af.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -450,21 +214,6 @@ func (af *af_ZA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, af.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -473,24 +222,6 @@ func (af *af_ZA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, af.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, af.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -499,19 +230,6 @@ func (af *af_ZA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, af.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -520,26 +238,6 @@ func (af *af_ZA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, af.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, af.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -548,30 +246,6 @@ func (af *af_ZA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, af.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, af.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -580,34 +254,5 @@ func (af *af_ZA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, af.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, af.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := af.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/agq/agq.go b/agq/agq.go
+index 430aa6b..f57c297 100644
+--- a/agq/agq.go
++++ b/agq/agq.go
+@@ -61,7 +61,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"SK", "BK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Sěe Kɨ̀lesto", "Bǎa Kɨ̀lesto"},
+- timezones: map[string]string{"BOT": "BOT", "TMT": "TMT", "WAST": "WAST", "MDT": "MDT", "HNPMX": "HNPMX", "AST": "AST", "AEDT": "AEDT", "HKST": "HKST", "CLST": "CLST", "ACST": "ACST", "OESZ": "OESZ", "WIT": "WIT", "PDT": "PDT", "ACWST": "ACWST", "HEPM": "HEPM", "MEZ": "MEZ", "NZST": "NZST", "NZDT": "NZDT", "IST": "IST", "EDT": "EDT", "ACWDT": "ACWDT", "HNOG": "HNOG", "JDT": "JDT", "WIB": "WIB", "SRT": "SRT", "HEOG": "HEOG", "LHDT": "LHDT", "ECT": "ECT", "WARST": "WARST", "COT": "COT", "COST": "COST", "GMT": "GMT", "BT": "BT", "ART": "ART", "WAT": "WAT", "OEZ": "OEZ", "HNCU": "HNCU", "EST": "EST", "PST": "PST", "AEST": "AEST", "AWDT": "AWDT", "WITA": "WITA", "CHAST": "CHAST", "HEPMX": "HEPMX", "UYT": "UYT", "HADT": "HADT", "HAT": "HAT", "HNPM": "HNPM", "MESZ": "MESZ", "ChST": "ChST", "HEEG": "HEEG", "EAT": "EAT", "HECU": "HECU", "MST": "MST", "WESZ": "WESZ", "CHADT": "CHADT", "GFT": "GFT", "TMST": "TMST", "ADT": "ADT", "VET": "VET", "SAST": "SAST", "MYT": "MYT", "WEZ": "WEZ", "AWST": "AWST", "JST": "JST", "HENOMX": "HENOMX", "UYST": "UYST", "HKT": "HKT", "CAT": "CAT", "SGT": "SGT", "GYT": "GYT", "HNT": "HNT", "∅∅∅": "∅∅∅", "CDT": "CDT", "LHST": "LHST", "CLT": "CLT", "ACDT": "ACDT", "AKDT": "AKDT", "HAST": "HAST", "HNEG": "HNEG", "WART": "WART", "HNNOMX": "HNNOMX", "AKST": "AKST", "CST": "CST", "ARST": "ARST"},
++ timezones: map[string]string{"BOT": "BOT", "∅∅∅": "∅∅∅", "WAT": "WAT", "AKDT": "AKDT", "HECU": "HECU", "OESZ": "OESZ", "COT": "COT", "CST": "CST", "HAT": "HAT", "ARST": "ARST", "SRT": "SRT", "HEPM": "HEPM", "WIT": "WIT", "ECT": "ECT", "JST": "JST", "AWST": "AWST", "EDT": "EDT", "HAST": "HAST", "BT": "BT", "WESZ": "WESZ", "GFT": "GFT", "TMST": "TMST", "AST": "AST", "GMT": "GMT", "UYST": "UYST", "WEZ": "WEZ", "ART": "ART", "MYT": "MYT", "AEST": "AEST", "CHAST": "CHAST", "PDT": "PDT", "WAST": "WAST", "HEOG": "HEOG", "CLST": "CLST", "MESZ": "MESZ", "HEEG": "HEEG", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "VET": "VET", "OEZ": "OEZ", "TMT": "TMT", "CHADT": "CHADT", "HEPMX": "HEPMX", "HNCU": "HNCU", "HNT": "HNT", "WARST": "WARST", "HKT": "HKT", "HKST": "HKST", "CLT": "CLT", "WITA": "WITA", "WIB": "WIB", "ADT": "ADT", "HNEG": "HNEG", "AWDT": "AWDT", "LHDT": "LHDT", "ACWDT": "ACWDT", "EST": "EST", "ACST": "ACST", "LHST": "LHST", "CDT": "CDT", "EAT": "EAT", "HNPM": "HNPM", "UYT": "UYT", "WART": "WART", "SAST": "SAST", "MST": "MST", "MDT": "MDT", "HADT": "HADT", "IST": "IST", "ACWST": "ACWST", "GYT": "GYT", "ChST": "ChST", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "JDT": "JDT", "AEDT": "AEDT", "AKST": "AKST", "HNOG": "HNOG", "NZST": "NZST", "MEZ": "MEZ", "PST": "PST", "SGT": "SGT", "COST": "COST", "CAT": "CAT", "NZDT": "NZDT"},
+ }
+ }
+ 
+diff --git a/agq_CM/agq_CM.go b/agq_CM/agq_CM.go
+index 33225f3..0662597 100644
+--- a/agq_CM/agq_CM.go
++++ b/agq_CM/agq_CM.go
+@@ -42,26 +42,13 @@ type agq_CM struct {
+ // New returns a new instance of translator for the 'agq_CM' locale
+ func New() locales.Translator {
+ return &agq_CM{
+- locale: "agq_CM",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "nùm", "kɨz", "tɨd", "taa", "see", "nzu", "dum", "fɔe", "dzu", "lɔm", "kaa", "fwo"},
+- monthsNarrow: []string{"", "n", "k", "t", "t", "s", "z", "k", "f", "d", "l", "c", "f"},
+- monthsWide: []string{"", "ndzɔ̀ŋɔ̀nùm", "ndzɔ̀ŋɔ̀kƗ̀zùʔ", "ndzɔ̀ŋɔ̀tƗ̀dʉ̀ghà", "ndzɔ̀ŋɔ̀tǎafʉ̄ghā", "ndzɔ̀ŋèsèe", "ndzɔ̀ŋɔ̀nzùghò", "ndzɔ̀ŋɔ̀dùmlo", "ndzɔ̀ŋɔ̀kwîfɔ̀e", "ndzɔ̀ŋɔ̀tƗ̀fʉ̀ghàdzughù", "ndzɔ̀ŋɔ̀ghǔuwelɔ̀m", "ndzɔ̀ŋɔ̀chwaʔàkaa wo", "ndzɔ̀ŋèfwòo"},
+- daysAbbreviated: []string{"nts", "kpa", "ghɔ", "tɔm", "ume", "ghɨ", "dzk"},
+- daysNarrow: []string{"n", "k", "g", "t", "u", "g", "d"},
+- daysWide: []string{"tsuʔntsɨ", "tsuʔukpà", "tsuʔughɔe", "tsuʔutɔ̀mlò", "tsuʔumè", "tsuʔughɨ̂m", "tsuʔndzɨkɔʔɔ"},
+- periodsAbbreviated: []string{"a.g", "a.k"},
+- periodsWide: []string{"a.g", "a.k"},
+- erasAbbreviated: []string{"SK", "BK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Sěe Kɨ̀lesto", "Bǎa Kɨ̀lesto"},
+- timezones: map[string]string{"∅∅∅": "∅∅∅", "WAT": "WAT", "HAT": "HAT", "ChST": "ChST", "HNEG": "HNEG", "AKST": "AKST", "AKDT": "AKDT", "WIT": "WIT", "BT": "BT", "LHDT": "LHDT", "CLT": "CLT", "COST": "COST", "HNCU": "HNCU", "EDT": "EDT", "VET": "VET", "SRT": "SRT", "AEST": "AEST", "AEDT": "AEDT", "JDT": "JDT", "GFT": "GFT", "GYT": "GYT", "HADT": "HADT", "HNOG": "HNOG", "PDT": "PDT", "AWST": "AWST", "AWDT": "AWDT", "CLST": "CLST", "TMT": "TMT", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "WESZ": "WESZ", "HKT": "HKT", "MEZ": "MEZ", "CHAST": "CHAST", "ACDT": "ACDT", "WAST": "WAST", "OEZ": "OEZ", "COT": "COT", "ART": "ART", "ECT": "ECT", "WARST": "WARST", "HNNOMX": "HNNOMX", "SGT": "SGT", "EST": "EST", "PST": "PST", "HNT": "HNT", "NZST": "NZST", "HEEG": "HEEG", "CAT": "CAT", "OESZ": "OESZ", "MDT": "MDT", "UYT": "UYT", "EAT": "EAT", "HECU": "HECU", "HNPMX": "HNPMX", "CST": "CST", "HEPM": "HEPM", "NZDT": "NZDT", "IST": "IST", "JST": "JST", "ADT": "ADT", "HEOG": "HEOG", "ACWST": "ACWST", "HKST": "HKST", "HNPM": "HNPM", "SAST": "SAST", "TMST": "TMST", "WART": "WART", "ARST": "ARST", "WEZ": "WEZ", "WITA": "WITA", "MESZ": "MESZ", "BOT": "BOT", "CDT": "CDT", "ACWDT": "ACWDT", "CHADT": "CHADT", "GMT": "GMT", "AST": "AST", "UYST": "UYST", "MST": "MST", "MYT": "MYT", "WIB": "WIB", "HAST": "HAST", "LHST": "LHST", "ACST": "ACST"},
++ locale: "agq_CM",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WITA": "WITA", "ART": "ART", "ACDT": "ACDT", "HEPM": "HEPM", "ACWDT": "ACWDT", "WARST": "WARST", "CST": "CST", "MST": "MST", "SGT": "SGT", "TMST": "TMST", "ARST": "ARST", "CHADT": "CHADT", "VET": "VET", "CLST": "CLST", "AEST": "AEST", "HECU": "HECU", "OEZ": "OEZ", "GYT": "GYT", "EST": "EST", "PST": "PST", "PDT": "PDT", "WAT": "WAT", "NZDT": "NZDT", "CDT": "CDT", "ChST": "ChST", "ACST": "ACST", "MYT": "MYT", "AKDT": "AKDT", "HNOG": "HNOG", "NZST": "NZST", "HNEG": "HNEG", "AWST": "AWST", "HKST": "HKST", "GMT": "GMT", "UYT": "UYT", "CAT": "CAT", "WIB": "WIB", "LHDT": "LHDT", "BT": "BT", "WAST": "WAST", "COT": "COT", "COST": "COST", "AST": "AST", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "HNCU": "HNCU", "WEZ": "WEZ", "ECT": "ECT", "GFT": "GFT", "HEOG": "HEOG", "CLT": "CLT", "HAST": "HAST", "LHST": "LHST", "∅∅∅": "∅∅∅", "UYST": "UYST", "WART": "WART", "HKT": "HKT", "WESZ": "WESZ", "SAST": "SAST", "TMT": "TMT", "MDT": "MDT", "EAT": "EAT", "JST": "JST", "AWDT": "AWDT", "HNPMX": "HNPMX", "EDT": "EDT", "AEDT": "AEDT", "CHAST": "CHAST", "AKST": "AKST", "ADT": "ADT", "SRT": "SRT", "HENOMX": "HENOMX", "MESZ": "MESZ", "JDT": "JDT", "OESZ": "OESZ", "HNT": "HNT", "HAT": "HAT", "HADT": "HADT", "ACWST": "ACWST", "HEPMX": "HEPMX", "BOT": "BOT", "HEEG": "HEEG", "MEZ": "MEZ", "IST": "IST", "WIT": "WIT"},
+ }
+ }
+ 
+@@ -107,7 +94,7 @@ func (agq *agq_CM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (agq *agq_CM) MonthsAbbreviated() []string {
+- return agq.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -117,7 +104,7 @@ func (agq *agq_CM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (agq *agq_CM) MonthsNarrow() []string {
+- return agq.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -127,7 +114,7 @@ func (agq *agq_CM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (agq *agq_CM) MonthsWide() []string {
+- return agq.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -173,75 +160,13 @@ func (agq *agq_CM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'agq_CM' and handles both Whole and Real numbers based on 'v'
+ func (agq *agq_CM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, agq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(agq.group) - 1; j >= 0; j-- {
+- b = append(b, agq.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, agq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'agq_CM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (agq *agq_CM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, agq.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, agq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, agq.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'agq_CM'
+@@ -249,56 +174,7 @@ func (agq *agq_CM) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := agq.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, agq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(agq.group) - 1; j >= 0; j-- {
+- b = append(b, agq.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, agq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, agq.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'agq_CM'
+@@ -307,63 +183,7 @@ func (agq *agq_CM) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := agq.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, agq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(agq.group) - 1; j >= 0; j-- {
+- b = append(b, agq.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, agq.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, agq.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'agq_CM'
+@@ -371,17 +191,6 @@ func (agq *agq_CM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -390,17 +199,6 @@ func (agq *agq_CM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, agq.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -409,17 +207,6 @@ func (agq *agq_CM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, agq.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -428,19 +215,6 @@ func (agq *agq_CM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, agq.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, agq.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,19 +223,6 @@ func (agq *agq_CM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, agq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -470,26 +231,6 @@ func (agq *agq_CM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, agq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, agq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -498,30 +239,6 @@ func (agq *agq_CM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, agq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, agq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -530,34 +247,5 @@ func (agq *agq_CM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, agq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, agq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := agq.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ak/ak.go b/ak/ak.go
+index 17425f4..39db909 100644
+--- a/ak/ak.go
++++ b/ak/ak.go
+@@ -60,7 +60,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"AK", "KE"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Ansa Kristo", "Kristo Ekyiri"},
+- timezones: map[string]string{"ACST": "ACST", "MST": "MST", "HNT": "HNT", "ART": "ART", "WIB": "WIB", "ACWST": "ACWST", "MEZ": "MEZ", "MESZ": "MESZ", "JDT": "JDT", "HNCU": "HNCU", "AKST": "AKST", "AST": "AST", "AWST": "AWST", "CHADT": "CHADT", "JST": "JST", "OEZ": "OEZ", "EDT": "EDT", "HAT": "HAT", "LHST": "LHST", "ChST": "ChST", "BOT": "BOT", "COT": "COT", "CDT": "CDT", "HAST": "HAST", "WESZ": "WESZ", "SAST": "SAST", "∅∅∅": "∅∅∅", "WAST": "WAST", "WARST": "WARST", "WIT": "WIT", "BT": "BT", "ACWDT": "ACWDT", "WITA": "WITA", "NZDT": "NZDT", "CLST": "CLST", "WAT": "WAT", "WART": "WART", "GMT": "GMT", "MYT": "MYT", "HNNOMX": "HNNOMX", "EST": "EST", "WEZ": "WEZ", "AEDT": "AEDT", "TMT": "TMT", "CST": "CST", "CHAST": "CHAST", "HENOMX": "HENOMX", "MDT": "MDT", "HADT": "HADT", "VET": "VET", "PST": "PST", "HEEG": "HEEG", "ECT": "ECT", "ADT": "ADT", "ARST": "ARST", "HNPM": "HNPM", "GFT": "GFT", "ACDT": "ACDT", "COST": "COST", "SGT": "SGT", "HEPMX": "HEPMX", "AKDT": "AKDT", "SRT": "SRT", "LHDT": "LHDT", "IST": "IST", "TMST": "TMST", "OESZ": "OESZ", "HECU": "HECU", "UYT": "UYT", "AWDT": "AWDT", "HKST": "HKST", "HEPM": "HEPM", "HKT": "HKT", "NZST": "NZST", "HNEG": "HNEG", "EAT": "EAT", "UYST": "UYST", "AEST": "AEST", "CLT": "CLT", "HNPMX": "HNPMX", "HEOG": "HEOG", "CAT": "CAT", "GYT": "GYT", "PDT": "PDT", "HNOG": "HNOG"},
++ timezones: map[string]string{"GFT": "GFT", "HEOG": "HEOG", "ChST": "ChST", "BOT": "BOT", "EAT": "EAT", "JST": "JST", "JDT": "JDT", "PST": "PST", "ACWDT": "ACWDT", "HEPMX": "HEPMX", "CDT": "CDT", "HADT": "HADT", "ACDT": "ACDT", "UYT": "UYT", "VET": "VET", "WARST": "WARST", "AKST": "AKST", "GMT": "GMT", "MEZ": "MEZ", "HNEG": "HNEG", "HENOMX": "HENOMX", "TMT": "TMT", "CLST": "CLST", "HNT": "HNT", "HAT": "HAT", "HNPM": "HNPM", "PDT": "PDT", "OESZ": "OESZ", "CHAST": "CHAST", "UYST": "UYST", "MST": "MST", "HAST": "HAST", "HNNOMX": "HNNOMX", "HECU": "HECU", "WAT": "WAT", "EST": "EST", "NZST": "NZST", "NZDT": "NZDT", "CHADT": "CHADT", "WEZ": "WEZ", "HKT": "HKT", "SRT": "SRT", "ACST": "ACST", "BT": "BT", "HNCU": "HNCU", "WART": "WART", "COST": "COST", "HKST": "HKST", "AST": "AST", "MYT": "MYT", "HEPM": "HEPM", "COT": "COT", "CLT": "CLT", "ECT": "ECT", "LHST": "LHST", "SGT": "SGT", "AEDT": "AEDT", "HNPMX": "HNPMX", "OEZ": "OEZ", "TMST": "TMST", "WIB": "WIB", "AWST": "AWST", "IST": "IST", "HNOG": "HNOG", "EDT": "EDT", "CST": "CST", "ARST": "ARST", "AEST": "AEST", "SAST": "SAST", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "AWDT": "AWDT", "WAST": "WAST", "AKDT": "AKDT", "GYT": "GYT", "CAT": "CAT", "WITA": "WITA", "ART": "ART", "HEEG": "HEEG", "ACWST": "ACWST", "WIT": "WIT", "MDT": "MDT", "ADT": "ADT", "LHDT": "LHDT"},
+ }
+ }
+ 
+diff --git a/ak_GH/ak_GH.go b/ak_GH/ak_GH.go
+index c07c545..44cb397 100644
+--- a/ak_GH/ak_GH.go
++++ b/ak_GH/ak_GH.go
+@@ -42,25 +42,13 @@ type ak_GH struct {
+ // New returns a new instance of translator for the 'ak_GH' locale
+ func New() locales.Translator {
+ return &ak_GH{
+- locale: "ak_GH",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "S-Ɔ", "K-Ɔ", "E-Ɔ", "E-O", "E-K", "O-A", "A-K", "D-Ɔ", "F-Ɛ", "Ɔ-A", "Ɔ-O", "M-Ɔ"},
+- monthsWide: []string{"", "Sanda-Ɔpɛpɔn", "Kwakwar-Ɔgyefuo", "Ebɔw-Ɔbenem", "Ebɔbira-Oforisuo", "Esusow Aketseaba-Kɔtɔnimba", "Obirade-Ayɛwohomumu", "Ayɛwoho-Kitawonsa", "Difuu-Ɔsandaa", "Fankwa-Ɛbɔ", "Ɔbɛsɛ-Ahinime", "Ɔberɛfɛw-Obubuo", "Mumu-Ɔpɛnimba"},
+- daysAbbreviated: []string{"Kwe", "Dwo", "Ben", "Wuk", "Yaw", "Fia", "Mem"},
+- daysNarrow: []string{"K", "D", "B", "W", "Y", "F", "M"},
+- daysWide: []string{"Kwesida", "Dwowda", "Benada", "Wukuda", "Yawda", "Fida", "Memeneda"},
+- periodsAbbreviated: []string{"AN", "EW"},
+- periodsWide: []string{"AN", "EW"},
+- erasAbbreviated: []string{"AK", "KE"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Ansa Kristo", "Kristo Ekyiri"},
+- timezones: map[string]string{"ACDT": "ACDT", "HNT": "HNT", "NZDT": "NZDT", "MESZ": "MESZ", "SAST": "SAST", "ACWST": "ACWST", "ChST": "ChST", "MDT": "MDT", "UYT": "UYT", "WIB": "WIB", "ARST": "ARST", "COT": "COT", "COST": "COST", "HNCU": "HNCU", "HEPMX": "HEPMX", "CLST": "CLST", "ACST": "ACST", "PDT": "PDT", "JDT": "JDT", "OESZ": "OESZ", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "ACWDT": "ACWDT", "AWDT": "AWDT", "EAT": "EAT", "AKDT": "AKDT", "UYST": "UYST", "HKT": "HKT", "EST": "EST", "CHAST": "CHAST", "CHADT": "CHADT", "HEOG": "HEOG", "IST": "IST", "GFT": "GFT", "ECT": "ECT", "MST": "MST", "CST": "CST", "SRT": "SRT", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "WARST": "WARST", "HAST": "HAST", "HEPM": "HEPM", "WART": "WART", "HKST": "HKST", "WITA": "WITA", "AEDT": "AEDT", "MYT": "MYT", "JST": "JST", "WAST": "WAST", "HNOG": "HNOG", "PST": "PST", "WEZ": "WEZ", "HEEG": "HEEG", "TMT": "TMT", "HECU": "HECU", "SGT": "SGT", "AKST": "AKST", "CLT": "CLT", "TMST": "TMST", "BOT": "BOT", "ADT": "ADT", "HADT": "HADT", "WESZ": "WESZ", "MEZ": "MEZ", "AST": "AST", "GYT": "GYT", "VET": "VET", "ART": "ART", "CAT": "CAT", "GMT": "GMT", "EDT": "EDT", "CDT": "CDT", "AWST": "AWST", "NZST": "NZST", "LHDT": "LHDT", "HNEG": "HNEG", "WAT": "WAT", "HENOMX": "HENOMX", "BT": "BT", "AEST": "AEST", "WIT": "WIT", "HAT": "HAT", "HNPM": "HNPM", "LHST": "LHST"},
++ locale: "ak_GH",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AWDT": "AWDT", "WESZ": "WESZ", "COT": "COT", "HEOG": "HEOG", "JST": "JST", "CHADT": "CHADT", "HNCU": "HNCU", "CDT": "CDT", "WIB": "WIB", "HAST": "HAST", "HEEG": "HEEG", "IST": "IST", "CHAST": "CHAST", "HAT": "HAT", "HNOG": "HNOG", "WITA": "WITA", "CST": "CST", "AST": "AST", "HNNOMX": "HNNOMX", "OEZ": "OEZ", "OESZ": "OESZ", "HNT": "HNT", "WIT": "WIT", "SAST": "SAST", "EAT": "EAT", "MESZ": "MESZ", "PST": "PST", "AEDT": "AEDT", "HECU": "HECU", "ADT": "ADT", "HEPM": "HEPM", "VET": "VET", "AKDT": "AKDT", "WARST": "WARST", "GMT": "GMT", "ARST": "ARST", "MYT": "MYT", "WEZ": "WEZ", "GYT": "GYT", "HKST": "HKST", "TMST": "TMST", "UYT": "UYT", "∅∅∅": "∅∅∅", "CLT": "CLT", "MST": "MST", "SRT": "SRT", "ACWST": "ACWST", "AEST": "AEST", "ACST": "ACST", "MEZ": "MEZ", "LHST": "LHST", "BT": "BT", "ACWDT": "ACWDT", "UYST": "UYST", "MDT": "MDT", "ChST": "ChST", "ART": "ART", "HNPM": "HNPM", "WAST": "WAST", "AKST": "AKST", "EST": "EST", "NZST": "NZST", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "GFT": "GFT", "CAT": "CAT", "BOT": "BOT", "HNEG": "HNEG", "PDT": "PDT", "SGT": "SGT", "WART": "WART", "COST": "COST", "HKT": "HKT", "CLST": "CLST", "NZDT": "NZDT", "AWST": "AWST", "HNPMX": "HNPMX", "WAT": "WAT", "HADT": "HADT", "ACDT": "ACDT", "LHDT": "LHDT", "JDT": "JDT", "EDT": "EDT", "ECT": "ECT", "TMT": "TMT"},
+ }
+ }
+ 
+@@ -113,7 +101,7 @@ func (ak *ak_GH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ak *ak_GH) MonthsAbbreviated() []string {
+- return ak.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -133,7 +121,7 @@ func (ak *ak_GH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ak *ak_GH) MonthsWide() []string {
+- return ak.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -193,56 +181,7 @@ func (ak *ak_GH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ak.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ak.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ak.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ak.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ak.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ak_GH'
+@@ -251,64 +190,7 @@ func (ak *ak_GH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ak.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ak.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ak.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ak.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ak.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ak_GH'
+@@ -316,28 +198,6 @@ func (ak *ak_GH) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -346,17 +206,6 @@ func (ak *ak_GH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ak.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -365,17 +214,6 @@ func (ak *ak_GH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ak.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -384,25 +222,6 @@ func (ak *ak_GH) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ak.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ak.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -411,28 +230,6 @@ func (ak *ak_GH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ak.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ak.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ak.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -441,35 +238,6 @@ func (ak *ak_GH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ak.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ak.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ak.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ak.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -478,40 +246,6 @@ func (ak *ak_GH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ak.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ak.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ak.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ak.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -520,44 +254,5 @@ func (ak *ak_GH) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ak.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ak.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ak.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ak.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ak.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/am/am.go b/am/am.go
+index 4ae553c..f15ff9b 100644
+--- a/am/am.go
++++ b/am/am.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ዓ/ዓ", "ዓ/ም"},
+ erasNarrow: []string{"ዓ/ዓ", "ዓ/ም"},
+ erasWide: []string{"ዓመተ ዓለም", "ዓመተ ምሕረት"},
+- timezones: map[string]string{"EST": "የምዕራባዊ መደበኛ የሰዓት አቆጣጠር", "MDT": "MDT", "UYT": "የኡራጓይ መደበኛ ሰዓት", "LHST": "የሎርድ ሆዌ መደበኛ የሰዓት አቆጣጠር", "HEEG": "የምስራቅ ግሪንላንድ ክረምት ሰዓት", "OEZ": "የምስራቃዊ አውሮፓ መደበኛ ሰዓት", "WIB": "የምዕራባዊ ኢንዶኔዢያ ሰዓት", "HEPM": "ቅዱስ የፒዬር እና ሚኴሎን የቀን ብርሃን ሰዓት", "JST": "የጃፓን መደበኛ ሰዓት", "WAST": "የምዕራብ አፍሪካ ክረምት ሰዓት", "AKDT": "የአላስካ የቀን ሰዓት አቆጣጠር", "WIT": "የምስራቃዊ ኢንዶኔዢያ ሰዓት", "ART": "የአርጀንቲና መደበኛ ሰዓት አቆጣጠር", "AWDT": "የአውስትራሊያ ምስራቃዊ የቀን ሰዓት አቆጣጠር", "CHADT": "የቻታም የቀን ብርሃን ሰዓት", "HNEG": "የምስራቅ ግሪንላንድ መደበኛ ሰዓት", "COST": "የኮሎምቢያ ክረምት ሰዓት", "HEPMX": "የሜክሲኮ ፓሲፊክ የቀን ሰዓት አቆጣጠር", "PDT": "የፓስፊክ የቀን ሰዓት አቆጣጠር", "HKT": "የሆንግ ኮንግ መደበኛ ሰዓት", "MESZ": "የመካከለኛው አውሮፓ ክረምት ሰዓት", "IST": "የህንድ መደበኛ ሰዓት", "TMT": "የቱርክመኒስታን መደበኛ ሰዓት", "TMST": "የቱርክመኒስታን ክረምት ሰዓት", "EAT": "የምስራቅ አፍሪካ ሰዓት", "CDT": "የመካከለኛ የቀን ሰዓት አቆጣጠር", "HNOG": "የምዕራብ ግሪንላንድ መደበኛ ሰዓት", "CHAST": "የቻታም መደበኛ ሰዓት", "GFT": "የፈረንሳይ ጉያና ሰዓት", "HECU": "የኩባ የቀን ብርሃን ሰዓት", "HENOMX": "ሰሜናዊ ምእራብ የሜክሲኮ የቀን ሰዓት አቆጣጠር", "SGT": "የሲንጋፒር መደበኛ ሰዓት", "PST": "የፓስፊክ መደበኛ ሰዓት አቆጣጠር", "HEOG": "የምዕራብ ግሪንላንድ ክረምት ሰዓት", "AEST": "የአውስትራሊያ ምዕራባዊ መደበኛ የሰዓት አቆጣጠር", "JDT": "የጃፓን የቀን ብርሃን ሰዓት", "ACDT": "የአውስትራሊያ መካከለኛ የቀን ሰዓት አቆጣጠር", "HNPM": "ቅዱስ የፒዬር እና ሚኴሎን መደበኛ ሰዓት", "HNCU": "የኩባ መደበኛ ሰዓት", "AST": "የአትላንቲክ መደበኛ የሰዓት አቆጣጠር", "UYST": "የኡራጓይ ክረምት ሰዓት", "HAST": "የሃዋይ አሌኡት መደበኛ ሰዓት አቆጣጠር", "LHDT": "የሎርድ ሆዌ የቀን ሰዓት አቆጣጠር", "CLT": "የቺሊ መደበኛ ሰዓት", "∅∅∅": "የፔሩ ክረምት ሰዓት", "NZST": "የኒው ዚላንድ መደበኛ ሰዓት", "ChST": "የቻሞሮ መደበኛ ሰዓት", "SRT": "የሱሪናም ሰዓት", "GMT": "ግሪንዊች ማዕከላዊ ሰዓት", "HAT": "የኒውፋውንድላንድ የቀን የሰዓት አቆጣጠር", "HNNOMX": "ሰሜናዊ ምእራብ የሜክሲኮ መደበኛ ሰዓት አቆጣጠር", "WARST": "የአርጀንቲና ምስራቃዊ በጋ ሰዓት አቆጣጠር", "HNPMX": "የሜክሲኮ ፓሲፊክ መደበኛ ሰዓት አቆጣጠር", "AWST": "የአውስትራሊያ ምስራቃዊ መደበኛ ሰዓት አቆጣጠር", "WITA": "የመካከለኛው ኢንዶኔዢያ ሰዓት", "NZDT": "የኒው ዚላንድ የቀን ብርሃን ሰዓት", "WAT": "የምዕራብ አፍሪካ መደበኛ ሰዓት", "HADT": "የሃዋይ አሌኡት የቀን ሰዓት አቆጣጠር", "ACWDT": "የአውስትራሊያ መካከለኛው ምስራቅ የቀን ሰዓት አቆጣጠር", "MST": "MST", "CAT": "የመካከለኛው አፍሪካ ሰዓት", "ECT": "የኢኳዶር ሰዓት", "COT": "የኮሎምቢያ መደበኛ ሰዓት", "ADT": "የአትላንቲክ የቀን ሰዓት አቆጣጠር", "MYT": "የማሌይዢያ ሰዓት", "VET": "የቬኔዝዌላ ሰዓት", "WESZ": "የምዕራባዊ አውሮፓ ክረምት ሰዓት", "ACST": "የአውስትራሊያ መካከለኛ መደበኛ የሰዓት አቆጣጠር", "AEDT": "የአውስትራሊያ ምዕራባዊ የቀን ሰዓት አቆጣጠር", "HNT": "የኒውፋውንድላንድ መደበኛ የሰዓት አቆጣጠር", "BT": "የቡታን ሰዓት", "HKST": "የሆንግ ኮንግ ክረምት ሰዓት", "EDT": "የምዕራባዊ የቀን ሰዓት አቆጣጠር", "AKST": "የአላስካ መደበኛ የሰዓት አቆጣጠር", "GYT": "የጉያና ሰዓት", "WEZ": "የምዕራባዊ አውሮፓ መደበኛ ሰዓት", "ACWST": "የአውስትራሊያ መካከለኛ ምስራቃዊ መደበኛ ሰዓት አቆጣጠር", "OESZ": "የምስራቃዊ አውሮፓ ክረምት ሰዓት", "CST": "የመካከለኛ መደበኛ ሰዓት አቆጣጠር", "ARST": "የአርጀንቲና የበጋ ሰዓት አቆጣጠር", "MEZ": "የመካከለኛው አውሮፓ መደበኛ ሰዓት", "SAST": "የደቡብ አፍሪካ መደበኛ ሰዓት", "CLST": "የቺሊ ክረምት ሰዓት", "BOT": "የቦሊቪያ ሰዓት", "WART": "የምዕራባዊ አርጀንቲና መደበኛ ሰዓት አቆጣጠር"},
++ timezones: map[string]string{"WIB": "የምዕራባዊ ኢንዶኔዢያ ሰዓት", "MDT": "MDT", "BOT": "የቦሊቪያ ሰዓት", "HNNOMX": "ሰሜናዊ ምእራብ የሜክሲኮ መደበኛ ሰዓት አቆጣጠር", "OESZ": "የምስራቃዊ አውሮፓ ክረምት ሰዓት", "EDT": "የምዕራባዊ የቀን ሰዓት አቆጣጠር", "ECT": "የኢኳዶር ሰዓት", "MST": "MST", "LHST": "የሎርድ ሆዌ መደበኛ የሰዓት አቆጣጠር", "WAST": "የምዕራብ አፍሪካ ክረምት ሰዓት", "GFT": "የፈረንሳይ ጉያና ሰዓት", "HECU": "የኩባ የቀን ብርሃን ሰዓት", "HAST": "የሃዋይ አሌኡት መደበኛ ሰዓት አቆጣጠር", "HKT": "የሆንግ ኮንግ መደበኛ ሰዓት", "EAT": "የምስራቅ አፍሪካ ሰዓት", "HNEG": "የምስራቅ ግሪንላንድ መደበኛ ሰዓት", "HENOMX": "ሰሜናዊ ምእራብ የሜክሲኮ የቀን ሰዓት አቆጣጠር", "BT": "የቡታን ሰዓት", "WART": "የምዕራባዊ አርጀንቲና መደበኛ ሰዓት አቆጣጠር", "TMT": "የቱርክመኒስታን መደበኛ ሰዓት", "EST": "የምዕራባዊ መደበኛ የሰዓት አቆጣጠር", "CLST": "የቺሊ ክረምት ሰዓት", "NZST": "የኒው ዚላንድ መደበኛ ሰዓት", "ChST": "የቻሞሮ መደበኛ ሰዓት", "MESZ": "የመካከለኛው አውሮፓ ክረምት ሰዓት", "AEST": "የአውስትራሊያ ምዕራባዊ መደበኛ የሰዓት አቆጣጠር", "HEPMX": "የሜክሲኮ ፓሲፊክ የቀን ሰዓት አቆጣጠር", "AKDT": "የአላስካ የቀን ሰዓት አቆጣጠር", "AEDT": "የአውስትራሊያ ምዕራባዊ የቀን ሰዓት አቆጣጠር", "ARST": "የአርጀንቲና የበጋ ሰዓት አቆጣጠር", "AST": "የአትላንቲክ መደበኛ የሰዓት አቆጣጠር", "SRT": "የሱሪናም ሰዓት", "PDT": "የፓስፊክ የቀን ሰዓት አቆጣጠር", "WESZ": "የምዕራባዊ አውሮፓ ክረምት ሰዓት", "NZDT": "የኒው ዚላንድ የቀን ብርሃን ሰዓት", "MYT": "የማሌይዢያ ሰዓት", "UYT": "የኡራጓይ መደበኛ ሰዓት", "IST": "የህንድ መደበኛ ሰዓት", "SGT": "የሲንጋፒር መደበኛ ሰዓት", "CLT": "የቺሊ መደበኛ ሰዓት", "ADT": "የአትላንቲክ የቀን ሰዓት አቆጣጠር", "JDT": "የጃፓን የቀን ብርሃን ሰዓት", "AWST": "የአውስትራሊያ ምስራቃዊ መደበኛ ሰዓት አቆጣጠር", "HNPMX": "የሜክሲኮ ፓሲፊክ መደበኛ ሰዓት አቆጣጠር", "CDT": "የመካከለኛ የቀን ሰዓት አቆጣጠር", "UYST": "የኡራጓይ ክረምት ሰዓት", "WARST": "የአርጀንቲና ምስራቃዊ በጋ ሰዓት አቆጣጠር", "GYT": "የጉያና ሰዓት", "COT": "የኮሎምቢያ መደበኛ ሰዓት", "COST": "የኮሎምቢያ ክረምት ሰዓት", "HNOG": "የምዕራብ ግሪንላንድ መደበኛ ሰዓት", "CST": "የመካከለኛ መደበኛ ሰዓት አቆጣጠር", "ACWDT": "የአውስትራሊያ መካከለኛው ምስራቅ የቀን ሰዓት አቆጣጠር", "PST": "የፓስፊክ መደበኛ ሰዓት አቆጣጠር", "HAT": "የኒውፋውንድላንድ የቀን የሰዓት አቆጣጠር", "LHDT": "የሎርድ ሆዌ የቀን ሰዓት አቆጣጠር", "∅∅∅": "∅∅∅", "WEZ": "የምዕራባዊ አውሮፓ መደበኛ ሰዓት", "HNT": "የኒውፋውንድላንድ መደበኛ የሰዓት አቆጣጠር", "ART": "የአርጀንቲና መደበኛ ሰዓት አቆጣጠር", "HNPM": "ቅዱስ የፒዬር እና ሚኴሎን መደበኛ ሰዓት", "HEPM": "ቅዱስ የፒዬር እና ሚኴሎን የቀን ብርሃን ሰዓት", "AWDT": "የአውስትራሊያ ምስራቃዊ የቀን ሰዓት አቆጣጠር", "ACST": "የአውስትራሊያ መካከለኛ መደበኛ የሰዓት አቆጣጠር", "SAST": "የደቡብ አፍሪካ መደበኛ ሰዓት", "TMST": "የቱርክመኒስታን ክረምት ሰዓት", "CAT": "የመካከለኛው አፍሪካ ሰዓት", "WITA": "የመካከለኛው ኢንዶኔዢያ ሰዓት", "HEEG": "የምስራቅ ግሪንላንድ ክረምት ሰዓት", "CHADT": "የቻታም የቀን ብርሃን ሰዓት", "WAT": "የምዕራብ አፍሪካ መደበኛ ሰዓት", "AKST": "የአላስካ መደበኛ የሰዓት አቆጣጠር", "WIT": "የምስራቃዊ ኢንዶኔዢያ ሰዓት", "GMT": "ግሪንዊች ማዕከላዊ ሰዓት", "ACDT": "የአውስትራሊያ መካከለኛ የቀን ሰዓት አቆጣጠር", "ACWST": "የአውስትራሊያ መካከለኛ ምስራቃዊ መደበኛ ሰዓት አቆጣጠር", "CHAST": "የቻታም መደበኛ ሰዓት", "OEZ": "የምስራቃዊ አውሮፓ መደበኛ ሰዓት", "MEZ": "የመካከለኛው አውሮፓ መደበኛ ሰዓት", "JST": "የጃፓን መደበኛ ሰዓት", "HEOG": "የምዕራብ ግሪንላንድ ክረምት ሰዓት", "HKST": "የሆንግ ኮንግ ክረምት ሰዓት", "VET": "የቬኔዝዌላ ሰዓት", "HNCU": "የኩባ መደበኛ ሰዓት", "HADT": "የሃዋይ አሌኡት የቀን ሰዓት አቆጣጠር"},
+ }
+ }
+ 
+diff --git a/am_ET/am_ET.go b/am_ET/am_ET.go
+index 0ab31df..7a26e1b 100644
+--- a/am_ET/am_ET.go
++++ b/am_ET/am_ET.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type am_ET struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'am_ET' locale
+ func New() locales.Translator {
+ return &am_ET{
+- locale: "am_ET",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "ጃንዩ", "ፌብሩ", "ማርች", "ኤፕሪ", "ሜይ", "ጁን", "ጁላይ", "ኦገስ", "ሴፕቴ", "ኦክቶ", "ኖቬም", "ዲሴም"},
+- monthsNarrow: []string{"", "ጃ", "ፌ", "ማ", "ኤ", "ሜ", "ጁ", "ጁ", "ኦ", "ሴ", "ኦ", "ኖ", "ዲ"},
+- monthsWide: []string{"", "ጃንዩወሪ", "ፌብሩወሪ", "ማርች", "ኤፕሪል", "ሜይ", "ጁን", "ጁላይ", "ኦገስት", "ሴፕቴምበር", "ኦክቶበር", "ኖቬምበር", "ዲሴምበር"},
+- daysAbbreviated: []string{"እሑድ", "ሰኞ", "ማክሰ", "ረቡዕ", "ሐሙስ", "ዓርብ", "ቅዳሜ"},
+- daysNarrow: []string{"እ", "ሰ", "ማ", "ረ", "ሐ", "ዓ", "ቅ"},
+- daysShort: []string{"እ", "ሰ", "ማ", "ረ", "ሐ", "ዓ", "ቅ"},
+- daysWide: []string{"እሑድ", "ሰኞ", "ማክሰኞ", "ረቡዕ", "ሐሙስ", "ዓርብ", "ቅዳሜ"},
+- periodsAbbreviated: []string{"ጥዋት", "ከሰዓት"},
+- periodsNarrow: []string{"ጠ", "ከ"},
+- periodsWide: []string{"ጥዋት", "ከሰዓት"},
+- erasAbbreviated: []string{"ዓ/ዓ", "ዓ/ም"},
+- erasNarrow: []string{"ዓ/ዓ", "ዓ/ም"},
+- erasWide: []string{"ዓመተ ዓለም", "ዓመተ ምሕረት"},
+- timezones: map[string]string{"UYST": "የኡራጓይ ክረምት ሰዓት", "WIT": "የምስራቃዊ ኢንዶኔዢያ ሰዓት", "AWST": "የአውስትራሊያ ምስራቃዊ መደበኛ ሰዓት አቆጣጠር", "OEZ": "የምስራቃዊ አውሮፓ መደበኛ ሰዓት", "HNEG": "የምስራቅ ግሪንላንድ መደበኛ ሰዓት", "GMT": "ግሪንዊች ማዕከላዊ ሰዓት", "WIB": "የምዕራባዊ ኢንዶኔዢያ ሰዓት", "ACWST": "የአውስትራሊያ መካከለኛ ምስራቃዊ መደበኛ ሰዓት አቆጣጠር", "CLT": "የቺሊ መደበኛ ሰዓት", "HEPM": "ቅዱስ የፒዬር እና ሚኴሎን የቀን ብርሃን ሰዓት", "PDT": "የፓስፊክ የቀን ሰዓት አቆጣጠር", "CHADT": "የቻታም የቀን ብርሃን ሰዓት", "IST": "የህንድ መደበኛ ሰዓት", "∅∅∅": "የአማዞን የቀን ሰዓት አቆጣጠር", "JDT": "የጃፓን የቀን ብርሃን ሰዓት", "VET": "የቬኔዝዌላ ሰዓት", "WESZ": "የምዕራባዊ አውሮፓ ክረምት ሰዓት", "HAT": "የኒውፋውንድላንድ የቀን የሰዓት አቆጣጠር", "EST": "የምዕራባዊ መደበኛ የሰዓት አቆጣጠር", "MYT": "የማሌይዢያ ሰዓት", "ADT": "የአትላንቲክ የቀን ሰዓት አቆጣጠር", "AEST": "የአውስትራሊያ ምዕራባዊ መደበኛ የሰዓት አቆጣጠር", "JST": "የጃፓን መደበኛ ሰዓት", "AST": "የአትላንቲክ መደበኛ የሰዓት አቆጣጠር", "BOT": "የቦሊቪያ ሰዓት", "MDT": "የተራራ የቀንሰዓት አቆጣጠር", "PST": "የፓስፊክ መደበኛ ሰዓት አቆጣጠር", "SAST": "የደቡብ አፍሪካ መደበኛ ሰዓት", "HNPMX": "የሜክሲኮ ፓሲፊክ መደበኛ ሰዓት አቆጣጠር", "UYT": "የኡራጓይ መደበኛ ሰዓት", "HAST": "የሃዋይ አሌኡት መደበኛ ሰዓት አቆጣጠር", "ACWDT": "የአውስትራሊያ መካከለኛው ምስራቅ የቀን ሰዓት አቆጣጠር", "MEZ": "የመካከለኛው አውሮፓ መደበኛ ሰዓት", "TMT": "የቱርክመኒስታን መደበኛ ሰዓት", "ACDT": "የአውስትራሊያ መካከለኛ የቀን ሰዓት አቆጣጠር", "SGT": "የሲንጋፒር መደበኛ ሰዓት", "HNCU": "የኩባ መደበኛ ሰዓት", "AKDT": "የአላስካ የቀን ሰዓት አቆጣጠር", "NZDT": "የኒው ዚላንድ የቀን ብርሃን ሰዓት", "CLST": "የቺሊ ክረምት ሰዓት", "HEEG": "የምስራቅ ግሪንላንድ ክረምት ሰዓት", "CHAST": "የቻታም መደበኛ ሰዓት", "MESZ": "የመካከለኛው አውሮፓ ክረምት ሰዓት", "WARST": "የአርጀንቲና ምስራቃዊ በጋ ሰዓት አቆጣጠር", "HECU": "የኩባ የቀን ብርሃን ሰዓት", "HNOG": "የምዕራብ ግሪንላንድ መደበኛ ሰዓት", "HKST": "የሆንግ ኮንግ ክረምት ሰዓት", "NZST": "የኒው ዚላንድ መደበኛ ሰዓት", "OESZ": "የምስራቃዊ አውሮፓ ክረምት ሰዓት", "CST": "የመካከለኛ መደበኛ ሰዓት አቆጣጠር", "SRT": "የሱሪናም ሰዓት", "HNPM": "ቅዱስ የፒዬር እና ሚኴሎን መደበኛ ሰዓት", "ChST": "የቻሞሮ መደበኛ ሰዓት", "WAST": "የምዕራብ አፍሪካ ክረምት ሰዓት", "EDT": "የምዕራባዊ የቀን ሰዓት አቆጣጠር", "CDT": "የመካከለኛ የቀን ሰዓት አቆጣጠር", "HADT": "የሃዋይ አሌኡት የቀን ሰዓት አቆጣጠር", "LHDT": "የሎርድ ሆዌ የቀን ሰዓት አቆጣጠር", "WAT": "የምዕራብ አፍሪካ መደበኛ ሰዓት", "AEDT": "የአውስትራሊያ ምዕራባዊ የቀን ሰዓት አቆጣጠር", "ACST": "የአውስትራሊያ መካከለኛ መደበኛ የሰዓት አቆጣጠር", "EAT": "የምስራቅ አፍሪካ ሰዓት", "BT": "የቡታን ሰዓት", "ART": "የአርጀንቲና መደበኛ ሰዓት አቆጣጠር", "ARST": "የአርጀንቲና የበጋ ሰዓት አቆጣጠር", "MST": "የተራራ መደበኛ የሰዓት አቆጣጠር", "TMST": "የቱርክመኒስታን ክረምት ሰዓት", "WART": "የምዕራባዊ አርጀንቲና መደበኛ ሰዓት አቆጣጠር", "HKT": "የሆንግ ኮንግ መደበኛ ሰዓት", "ECT": "የኢኳዶር ሰዓት", "COT": "የኮሎምቢያ መደበኛ ሰዓት", "HEPMX": "የሜክሲኮ ፓሲፊክ የቀን ሰዓት አቆጣጠር", "GYT": "የጉያና ሰዓት", "WEZ": "የምዕራባዊ አውሮፓ መደበኛ ሰዓት", "HNT": "የኒውፋውንድላንድ መደበኛ የሰዓት አቆጣጠር", "HEOG": "የምዕራብ ግሪንላንድ ክረምት ሰዓት", "AWDT": "የአውስትራሊያ ምስራቃዊ የቀን ሰዓት አቆጣጠር", "HENOMX": "ሰሜናዊ ምእራብ የሜክሲኮ የቀን ሰዓት አቆጣጠር", "CAT": "የመካከለኛው አፍሪካ ሰዓት", "COST": "የኮሎምቢያ ክረምት ሰዓት", "HNNOMX": "ሰሜናዊ ምእራብ የሜክሲኮ መደበኛ ሰዓት አቆጣጠር", "AKST": "የአላስካ መደበኛ የሰዓት አቆጣጠር", "WITA": "የመካከለኛው ኢንዶኔዢያ ሰዓት", "LHST": "የሎርድ ሆዌ መደበኛ የሰዓት አቆጣጠር", "GFT": "የፈረንሳይ ጉያና ሰዓት"},
++ locale: "am_ET",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"JST": "JST", "∅∅∅": "∅∅∅", "WAT": "WAT", "CLST": "CLST", "CDT": "CDT", "HNCU": "HNCU", "HEOG": "HEOG", "AEDT": "AEDT", "WEZ": "WEZ", "TMST": "TMST", "NZDT": "NZDT", "ChST": "ChST", "HEEG": "HEEG", "UYST": "UYST", "EST": "EST", "BOT": "BOT", "ACDT": "ACDT", "CHADT": "CHADT", "SGT": "SGT", "VET": "VET", "WIT": "WIT", "WITA": "WITA", "AST": "AST", "AKDT": "AKDT", "CLT": "CLT", "MDT": "MDT", "GMT": "GMT", "ART": "ART", "AWDT": "AWDT", "HEPMX": "HEPMX", "GFT": "GFT", "NZST": "NZST", "WIB": "WIB", "HENOMX": "HENOMX", "AWST": "AWST", "BT": "BT", "OEZ": "OEZ", "SAST": "SAST", "ACWDT": "ACWDT", "ARST": "ARST", "HADT": "HADT", "MEZ": "MEZ", "MESZ": "MESZ", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "ACWST": "ACWST", "CHAST": "CHAST", "WARST": "WARST", "HKT": "HKT", "CST": "CST", "AKST": "AKST", "ECT": "ECT", "ADT": "ADT", "SRT": "SRT", "PST": "PST", "AEST": "AEST", "HNT": "HNT", "TMT": "TMT", "MST": "MST", "HAST": "HAST", "LHDT": "LHDT", "HEPM": "HEPM", "JDT": "JDT", "PDT": "PDT", "WART": "WART", "CAT": "CAT", "HNPM": "HNPM", "IST": "IST", "UYT": "UYT", "WESZ": "WESZ", "WAST": "WAST", "COST": "COST", "HNOG": "HNOG", "LHST": "LHST", "HAT": "HAT", "EDT": "EDT", "EAT": "EAT", "COT": "COT", "ACST": "ACST", "MYT": "MYT", "HECU": "HECU", "HNPMX": "HNPMX", "OESZ": "OESZ", "GYT": "GYT", "HKST": "HKST"},
+ }
+ }
+ 
+@@ -136,7 +113,7 @@ func (am *am_ET) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (am *am_ET) MonthsAbbreviated() []string {
+- return am.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -146,7 +123,7 @@ func (am *am_ET) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (am *am_ET) MonthsNarrow() []string {
+- return am.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -156,7 +133,7 @@ func (am *am_ET) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (am *am_ET) MonthsWide() []string {
+- return am.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -202,73 +179,13 @@ func (am *am_ET) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'am_ET' and handles both Whole and Real numbers based on 'v'
+ func (am *am_ET) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, am.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, am.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, am.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'am_ET' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (am *am_ET) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, am.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, am.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, am.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'am_ET'
+@@ -276,56 +193,7 @@ func (am *am_ET) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := am.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, am.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, am.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, am.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, am.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'am_ET'
+@@ -334,68 +202,7 @@ func (am *am_ET) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := am.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, am.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, am.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, am.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, am.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, am.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'am_ET'
+@@ -403,27 +210,6 @@ func (am *am_ET) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -432,17 +218,6 @@ func (am *am_ET) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, am.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -451,17 +226,6 @@ func (am *am_ET) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, am.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -470,19 +234,6 @@ func (am *am_ET) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, am.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20, 0xe1, 0x8d, 0xa3}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, am.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,28 +242,6 @@ func (am *am_ET) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, am.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, am.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, am.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -521,35 +250,6 @@ func (am *am_ET) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, am.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, am.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, am.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, am.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -558,40 +258,6 @@ func (am *am_ET) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, am.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, am.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, am.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, am.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -600,44 +266,5 @@ func (am *am_ET) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, am.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, am.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, am.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, am.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := am.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar/ar.go b/ar/ar.go
+index 05ebd8f..4281fb7 100644
+--- a/ar/ar.go
++++ b/ar/ar.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"", ""},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"VET": "توقيت فنزويلا", "PDT": "توقيت المحيط الهادي الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "CAT": "توقيت وسط أفريقيا", "HADT": "توقيت هاواي ألوتيان الصيفي", "WIT": "توقيت شرق إندونيسيا", "WESZ": "توقيت غرب أوروبا الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "GFT": "توقيت غايانا الفرنسية", "ADT": "التوقيت الصيفي الأطلسي", "∅∅∅": "توقيت الأمازون الصيفي", "HNCU": "توقيت كوبا الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "WITA": "توقيت وسط إندونيسيا", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "NZST": "توقيت نيوزيلندا الرسمي", "BT": "توقيت بوتان", "AWST": "توقيت غرب أستراليا الرسمي", "GMT": "توقيت غرينتش", "MST": "التوقيت الجبلي الرسمي لأمريكا الشمالية", "BOT": "توقيت بوليفيا", "OEZ": "توقيت شرق أوروبا الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "HNT": "توقيت نيوفاوندلاند الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "GYT": "توقيت غيانا", "ARST": "توقيت الأرجنتين الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "CHAST": "توقيت تشاتام الرسمي", "TMT": "توقيت تركمانستان الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "ECT": "توقيت الإكوادور", "COST": "توقيت كولومبيا الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "UYST": "توقيت أورغواي الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "ART": "توقيت الأرجنتين الرسمي", "IST": "توقيت الهند", "CLST": "توقيت شيلي الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "AKST": "التوقيت الرسمي لألاسكا", "MYT": "توقيت ماليزيا", "MDT": "التوقيت الجبلي الصيفي لأمريكا الشمالية", "SRT": "توقيت سورينام", "PST": "توقيت المحيط الهادي الرسمي", "EAT": "توقيت شرق أفريقيا", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "AST": "التوقيت الرسمي الأطلسي", "HNEG": "توقيت شرق غرينلاند الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "HECU": "توقيت كوبا الصيفي", "UYT": "توقيت أورغواي الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "JDT": "توقيت اليابان الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "HAST": "توقيت هاواي ألوتيان الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "CHADT": "توقيت تشاتام الصيفي", "ChST": "توقيت تشامورو", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "WIB": "توقيت غرب إندونيسيا", "LHST": "توقيت لورد هاو الرسمي", "SAST": "توقيت جنوب أفريقيا", "WARST": "توقيت غرب الأرجنتين الصيفي", "COT": "توقيت كولومبيا الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "CLT": "توقيت شيلي الرسمي", "JST": "توقيت اليابان الرسمي", "TMST": "توقيت تركمانستان الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "SGT": "توقيت سنغافورة"},
++ timezones: map[string]string{"HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "WARST": "توقيت غرب الأرجنتين الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "JST": "توقيت اليابان الرسمي", "CHADT": "توقيت تشاتام الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "AST": "التوقيت الرسمي الأطلسي", "ADT": "التوقيت الصيفي الأطلسي", "HAST": "توقيت هاواي ألوتيان الرسمي", "BT": "توقيت بوتان", "AEST": "توقيت شرق أستراليا الرسمي", "GYT": "توقيت غيانا", "∅∅∅": "توقيت برازيليا الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "SAST": "توقيت جنوب أفريقيا", "COST": "توقيت كولومبيا الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "UYT": "توقيت أورغواي الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "CHAST": "توقيت تشاتام الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "MST": "MST", "MDT": "MDT", "BOT": "توقيت بوليفيا", "LHST": "توقيت لورد هاو الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "HNCU": "توقيت كوبا الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "EAT": "توقيت شرق أفريقيا", "AWST": "توقيت غرب أستراليا الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "COT": "توقيت كولومبيا الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "ART": "توقيت الأرجنتين الرسمي", "UYST": "توقيت أورغواي الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "WITA": "توقيت وسط إندونيسيا", "ARST": "توقيت الأرجنتين الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "HECU": "توقيت كوبا الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "CLST": "توقيت شيلي الصيفي", "GMT": "توقيت غرينتش", "HEEG": "توقيت شرق غرينلاند الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "WIB": "توقيت غرب إندونيسيا", "HADT": "توقيت هاواي ألوتيان الصيفي", "ECT": "توقيت الإكوادور", "ChST": "توقيت تشامورو", "LHDT": "التوقيت الصيفي للورد هاو", "PST": "توقيت المحيط الهادي الرسمي", "WIT": "توقيت شرق إندونيسيا", "HNOG": "توقيت غرب غرينلاند الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "CAT": "توقيت وسط أفريقيا", "VET": "توقيت فنزويلا", "HNEG": "توقيت شرق غرينلاند الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "GFT": "توقيت غايانا الفرنسية", "HNT": "توقيت نيوفاوندلاند الرسمي", "TMST": "توقيت تركمانستان الصيفي", "SRT": "توقيت سورينام", "MYT": "توقيت ماليزيا", "JDT": "توقيت اليابان الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "CLT": "توقيت شيلي الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "SGT": "توقيت سنغافورة", "TMT": "توقيت تركمانستان الرسمي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "IST": "توقيت الهند", "WEZ": "توقيت غرب أوروبا الرسمي"},
+ }
+ }
+ 
+diff --git a/ar_001/ar_001.go b/ar_001/ar_001.go
+index cffbc6a..d9a0a92 100644
+--- a/ar_001/ar_001.go
++++ b/ar_001/ar_001.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ar_001 struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_001' locale
+ func New() locales.Translator {
+ return &ar_001{
+- locale: "ar_001",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"HADT": "توقيت هاواي ألوتيان الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "IST": "توقيت الهند", "ChST": "توقيت تشامورو", "TMST": "توقيت تركمانستان الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "SRT": "توقيت سورينام", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "JDT": "توقيت اليابان الصيفي", "UYT": "توقيت أورغواي الرسمي", "BT": "توقيت بوتان", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "UYST": "توقيت أورغواي الصيفي", "ART": "توقيت الأرجنتين الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "AST": "التوقيت الرسمي الأطلسي", "GYT": "توقيت غيانا", "VET": "توقيت فنزويلا", "HAT": "توقيت نيوفاوندلاند الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "TMT": "توقيت تركمانستان الرسمي", "EAT": "توقيت شرق أفريقيا", "WAST": "توقيت غرب أفريقيا الصيفي", "COT": "توقيت كولومبيا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "WESZ": "توقيت غرب أوروبا الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "WITA": "توقيت وسط إندونيسيا", "ECT": "توقيت الإكوادور", "WARST": "توقيت غرب الأرجنتين الصيفي", "HNCU": "توقيت كوبا الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "CHAST": "توقيت تشاتام الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "SGT": "توقيت سنغافورة", "MYT": "توقيت ماليزيا", "ARST": "توقيت الأرجنتين الصيفي", "LHST": "توقيت لورد هاو الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "COST": "توقيت كولومبيا الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "GMT": "توقيت غرينتش", "ADT": "التوقيت الصيفي الأطلسي", "HNOG": "توقيت غرب غرينلاند الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "CAT": "توقيت وسط أفريقيا", "WAT": "توقيت غرب أفريقيا الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "AKDT": "توقيت ألاسكا الصيفي", "WIB": "توقيت غرب إندونيسيا", "HAST": "توقيت هاواي ألوتيان الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "CLT": "توقيت شيلي الرسمي", "JST": "توقيت اليابان الرسمي", "BOT": "توقيت بوليفيا", "GFT": "توقيت غايانا الفرنسية", "∅∅∅": "توقيت بيرو الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "WEZ": "توقيت غرب أوروبا الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "CHADT": "توقيت تشاتام الصيفي", "HECU": "توقيت كوبا الصيفي", "WIT": "توقيت شرق إندونيسيا", "SAST": "توقيت جنوب أفريقيا", "CLST": "توقيت شيلي الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "MST": "MST", "MDT": "MDT"},
++ locale: "ar_001",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CLST": "CLST", "SRT": "SRT", "JST": "JST", "BT": "BT", "WAT": "WAT", "AKDT": "AKDT", "WARST": "WARST", "CDT": "CDT", "JDT": "JDT", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "WART": "WART", "GYT": "GYT", "MDT": "MDT", "ChST": "ChST", "UYT": "UYT", "PDT": "PDT", "GFT": "GFT", "HKST": "HKST", "VET": "VET", "HNT": "HNT", "HEOG": "HEOG", "ART": "ART", "ARST": "ARST", "PST": "PST", "CAT": "CAT", "WITA": "WITA", "MST": "MST", "AWST": "AWST", "MYT": "MYT", "IST": "IST", "AKST": "AKST", "AST": "AST", "HNEG": "HNEG", "ADT": "ADT", "EAT": "EAT", "MEZ": "MEZ", "LHDT": "LHDT", "ACWST": "ACWST", "OESZ": "OESZ", "TMT": "TMT", "WIB": "WIB", "HNPM": "HNPM", "AEDT": "AEDT", "WAST": "WAST", "NZST": "NZST", "ECT": "ECT", "EST": "EST", "BOT": "BOT", "ACST": "ACST", "ACDT": "ACDT", "UYST": "UYST", "ACWDT": "ACWDT", "AEST": "AEST", "WEZ": "WEZ", "CHAST": "CHAST", "HNNOMX": "HNNOMX", "CHADT": "CHADT", "OEZ": "OEZ", "EDT": "EDT", "MESZ": "MESZ", "TMST": "TMST", "HEPM": "HEPM", "HNCU": "HNCU", "HEPMX": "HEPMX", "COT": "COT", "COST": "COST", "GMT": "GMT", "HAST": "HAST", "HECU": "HECU", "HAT": "HAT", "SAST": "SAST", "HNOG": "HNOG", "HENOMX": "HENOMX", "LHST": "LHST", "SGT": "SGT", "HKT": "HKT", "CLT": "CLT", "HEEG": "HEEG", "WIT": "WIT", "CST": "CST", "HNPMX": "HNPMX", "NZDT": "NZDT", "HADT": "HADT", "AWDT": "AWDT"},
+ }
+ }
+ 
+@@ -186,7 +161,7 @@ func (ar *ar_001) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_001) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +171,7 @@ func (ar *ar_001) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_001) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +181,7 @@ func (ar *ar_001) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_001) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +227,13 @@ func (ar *ar_001) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_001' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_001) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_001' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_001) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_001'
+@@ -338,62 +241,7 @@ func (ar *ar_001) FmtCurrency(num float64, v uint64, currency currency.Type) str
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_001'
+@@ -402,69 +250,7 @@ func (ar *ar_001) FmtAccounting(num float64, v uint64, currency currency.Type) s
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_001'
+@@ -472,17 +258,6 @@ func (ar *ar_001) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +266,6 @@ func (ar *ar_001) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +274,6 @@ func (ar *ar_001) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +282,6 @@ func (ar *ar_001) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +290,6 @@ func (ar *ar_001) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +298,6 @@ func (ar *ar_001) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +306,6 @@ func (ar *ar_001) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +314,5 @@ func (ar *ar_001) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_AE/ar_AE.go b/ar_AE/ar_AE.go
+index 067ae8a..2b8e8bc 100644
+--- a/ar_AE/ar_AE.go
++++ b/ar_AE/ar_AE.go
+@@ -10,70 +10,48 @@ import (
+ )
+ 
+ type ar_AE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_AE' locale
+ func New() locales.Translator {
+ return &ar_AE{
+- locale: "ar_AE",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "$", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"PST": "توقيت المحيط الهادي الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "LHST": "توقيت لورد هاو الرسمي", "CLT": "توقيت شيلي الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "HNT": "توقيت نيوفاوندلاند الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "TMT": "توقيت تركمانستان الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "SRT": "توقيت سورينام", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "NZDT": "توقيت نيوزيلندا الصيفي", "IST": "توقيت الهند", "GFT": "توقيت غايانا الفرنسية", "CAT": "توقيت وسط أفريقيا", "HNCU": "توقيت كوبا الرسمي", "MYT": "توقيت ماليزيا", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "SGT": "توقيت سنغافورة", "HADT": "توقيت هاواي ألوتيان الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "CHADT": "توقيت تشاتام الصيفي", "EAT": "توقيت شرق أفريقيا", "COST": "توقيت كولومبيا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "WAT": "توقيت غرب أفريقيا الرسمي", "COT": "توقيت كولومبيا الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "MST": "MST", "ADT": "التوقيت الصيفي الأطلسي", "GYT": "توقيت غيانا", "ARST": "توقيت الأرجنتين الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "SAST": "توقيت جنوب أفريقيا", "ACDT": "توقيت وسط أستراليا الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "AST": "التوقيت الرسمي الأطلسي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "UYT": "توقيت أورغواي الرسمي", "MDT": "MDT", "WIT": "توقيت شرق إندونيسيا", "HEOG": "توقيت غرب غرينلاند الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "CHAST": "توقيت تشاتام الرسمي", "JDT": "توقيت اليابان الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "AEST": "توقيت شرق أستراليا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "JST": "توقيت اليابان الرسمي", "WIB": "توقيت غرب إندونيسيا", "HAST": "توقيت هاواي ألوتيان الرسمي", "BOT": "توقيت بوليفيا", "TMST": "توقيت تركمانستان الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "GMT": "توقيت غرينتش", "UYST": "توقيت أورغواي الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "HEEG": "توقيت شرق غرينلاند الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "BT": "توقيت بوتان", "PDT": "توقيت المحيط الهادي الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "ART": "توقيت الأرجنتين الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "ECT": "توقيت الإكوادور", "HECU": "توقيت كوبا الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "WITA": "توقيت وسط إندونيسيا", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "CLST": "توقيت شيلي الصيفي", "∅∅∅": "توقيت الأمازون الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "ChST": "توقيت تشامورو", "VET": "توقيت فنزويلا"},
++ locale: "ar_AE",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "$", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ erasAbbreviated: []string{"", ""},
++ erasNarrow: []string{"", ""},
++ erasWide: []string{"", ""},
++ timezones: map[string]string{"EDT": "EDT", "TMT": "TMT", "HADT": "HADT", "HNPM": "HNPM", "CHADT": "CHADT", "AEDT": "AEDT", "HNCU": "HNCU", "EST": "EST", "HAT": "HAT", "TMST": "TMST", "WITA": "WITA", "MDT": "MDT", "HEEG": "HEEG", "SGT": "SGT", "WARST": "WARST", "GYT": "GYT", "HKT": "HKT", "HENOMX": "HENOMX", "LHDT": "LHDT", "JST": "JST", "JDT": "JDT", "OESZ": "OESZ", "BOT": "BOT", "VET": "VET", "HECU": "HECU", "AKDT": "AKDT", "NZDT": "NZDT", "CDT": "CDT", "GMT": "GMT", "SRT": "SRT", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "LHST": "LHST", "IST": "IST", "ACWDT": "ACWDT", "HNEG": "HNEG", "ACWST": "ACWST", "AKST": "AKST", "WIT": "WIT", "CAT": "CAT", "AWST": "AWST", "UYT": "UYT", "WAST": "WAST", "HAST": "HAST", "WESZ": "WESZ", "WAT": "WAT", "HEOG": "HEOG", "WIB": "WIB", "ARST": "ARST", "WART": "WART", "SAST": "SAST", "ECT": "ECT", "MESZ": "MESZ", "UYST": "UYST", "GFT": "GFT", "ChST": "ChST", "CLT": "CLT", "ADT": "ADT", "ART": "ART", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "BT": "BT", "HNPMX": "HNPMX", "HKST": "HKST", "CHAST": "CHAST", "AEST": "AEST", "WEZ": "WEZ", "HNT": "HNT", "COST": "COST", "HNOG": "HNOG", "CLST": "CLST", "MEZ": "MEZ", "MYT": "MYT", "HEPM": "HEPM", "PST": "PST", "HEPMX": "HEPMX", "EAT": "EAT", "PDT": "PDT", "COT": "COT", "MST": "MST", "AST": "AST", "ACST": "ACST", "OEZ": "OEZ", "CST": "CST", "NZST": "NZST"},
+ }
+ }
+ 
+@@ -186,7 +164,7 @@ func (ar *ar_AE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_AE) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +174,7 @@ func (ar *ar_AE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_AE) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +184,7 @@ func (ar *ar_AE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_AE) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +230,13 @@ func (ar *ar_AE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_AE' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_AE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_AE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_AE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_AE'
+@@ -338,62 +244,7 @@ func (ar *ar_AE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_AE'
+@@ -402,69 +253,7 @@ func (ar *ar_AE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_AE'
+@@ -472,17 +261,6 @@ func (ar *ar_AE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +269,6 @@ func (ar *ar_AE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +277,6 @@ func (ar *ar_AE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +285,6 @@ func (ar *ar_AE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +293,6 @@ func (ar *ar_AE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +301,6 @@ func (ar *ar_AE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +309,6 @@ func (ar *ar_AE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +317,5 @@ func (ar *ar_AE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_BH/ar_BH.go b/ar_BH/ar_BH.go
+index 6ea0023..2d1e7c5 100644
+--- a/ar_BH/ar_BH.go
++++ b/ar_BH/ar_BH.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ar_BH struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_BH' locale
+ func New() locales.Translator {
+ return &ar_BH{
+- locale: "ar_BH",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"MESZ": "توقيت وسط أوروبا الصيفي", "ECT": "توقيت الإكوادور", "AKDT": "توقيت ألاسكا الصيفي", "∅∅∅": "توقيت الأمازون الصيفي", "HECU": "توقيت كوبا الصيفي", "MST": "MST", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HNOG": "توقيت غرب غرينلاند الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "GYT": "توقيت غيانا", "MYT": "توقيت ماليزيا", "WIT": "توقيت شرق إندونيسيا", "ARST": "توقيت الأرجنتين الصيفي", "GMT": "توقيت غرينتش", "HADT": "توقيت هاواي ألوتيان الصيفي", "BT": "توقيت بوتان", "HNCU": "توقيت كوبا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "CLT": "توقيت شيلي الرسمي", "TMT": "توقيت تركمانستان الرسمي", "CAT": "توقيت وسط أفريقيا", "HAT": "توقيت نيوفاوندلاند الصيفي", "CLST": "توقيت شيلي الصيفي", "UYT": "توقيت أورغواي الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "AEST": "توقيت شرق أستراليا الرسمي", "EAT": "توقيت شرق أفريقيا", "COT": "توقيت كولومبيا الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "WARST": "توقيت غرب الأرجنتين الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "HEOG": "توقيت غرب غرينلاند الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "COST": "توقيت كولومبيا الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "IST": "توقيت الهند", "HEEG": "توقيت شرق غرينلاند الصيفي", "SGT": "توقيت سنغافورة", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "WEZ": "توقيت غرب أوروبا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "CHAST": "توقيت تشاتام الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "VET": "توقيت فنزويلا", "WAT": "توقيت غرب أفريقيا الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "UYST": "توقيت أورغواي الصيفي", "HNT": "توقيت نيوفاوندلاند الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "JST": "توقيت اليابان الرسمي", "ChST": "توقيت تشامورو", "SRT": "توقيت سورينام", "CHADT": "توقيت تشاتام الصيفي", "GFT": "توقيت غايانا الفرنسية", "ACST": "توقيت وسط أستراليا الرسمي", "MDT": "MDT", "WIB": "توقيت غرب إندونيسيا", "ART": "توقيت الأرجنتين الرسمي", "LHST": "توقيت لورد هاو الرسمي", "BOT": "توقيت بوليفيا", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "JDT": "توقيت اليابان الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "TMST": "توقيت تركمانستان الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "WESZ": "توقيت غرب أوروبا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "SAST": "توقيت جنوب أفريقيا", "AST": "التوقيت الرسمي الأطلسي", "ADT": "التوقيت الصيفي الأطلسي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "WITA": "توقيت وسط إندونيسيا"},
++ locale: "ar_BH",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AEDT": "AEDT", "TMT": "TMT", "GMT": "GMT", "ARST": "ARST", "HAST": "HAST", "ACST": "ACST", "HENOMX": "HENOMX", "OESZ": "OESZ", "∅∅∅": "∅∅∅", "ECT": "ECT", "JST": "JST", "ACWDT": "ACWDT", "BOT": "BOT", "CHADT": "CHADT", "UYT": "UYT", "MST": "MST", "HADT": "HADT", "AWST": "AWST", "BT": "BT", "WIT": "WIT", "HKT": "HKT", "CLST": "CLST", "WITA": "WITA", "NZDT": "NZDT", "AKST": "AKST", "MYT": "MYT", "HNCU": "HNCU", "WARST": "WARST", "CST": "CST", "CDT": "CDT", "EAT": "EAT", "HEEG": "HEEG", "AEST": "AEST", "OEZ": "OEZ", "GFT": "GFT", "HAT": "HAT", "NZST": "NZST", "HNEG": "HNEG", "HECU": "HECU", "TMST": "TMST", "SRT": "SRT", "ACDT": "ACDT", "HNPM": "HNPM", "UYST": "UYST", "WAST": "WAST", "HEOG": "HEOG", "CAT": "CAT", "IST": "IST", "ACWST": "ACWST", "HNT": "HNT", "MDT": "MDT", "PST": "PST", "SGT": "SGT", "PDT": "PDT", "WESZ": "WESZ", "GYT": "GYT", "EST": "EST", "EDT": "EDT", "CLT": "CLT", "ART": "ART", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "AKDT": "AKDT", "COST": "COST", "ChST": "ChST", "AWDT": "AWDT", "LHDT": "LHDT", "CHAST": "CHAST", "HKST": "HKST", "AST": "AST", "LHST": "LHST", "HEPM": "HEPM", "SAST": "SAST", "HNOG": "HNOG", "WIB": "WIB", "MEZ": "MEZ", "WAT": "WAT", "VET": "VET", "HEPMX": "HEPMX", "WART": "WART", "COT": "COT", "ADT": "ADT", "MESZ": "MESZ", "JDT": "JDT", "WEZ": "WEZ"},
+ }
+ }
+ 
+@@ -186,7 +161,7 @@ func (ar *ar_BH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_BH) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +171,7 @@ func (ar *ar_BH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_BH) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +181,7 @@ func (ar *ar_BH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_BH) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +227,13 @@ func (ar *ar_BH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_BH' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_BH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_BH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_BH) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_BH'
+@@ -338,62 +241,7 @@ func (ar *ar_BH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_BH'
+@@ -402,69 +250,7 @@ func (ar *ar_BH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_BH'
+@@ -472,17 +258,6 @@ func (ar *ar_BH) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +266,6 @@ func (ar *ar_BH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +274,6 @@ func (ar *ar_BH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +282,6 @@ func (ar *ar_BH) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +290,6 @@ func (ar *ar_BH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +298,6 @@ func (ar *ar_BH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +306,6 @@ func (ar *ar_BH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +314,5 @@ func (ar *ar_BH) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_DJ/ar_DJ.go b/ar_DJ/ar_DJ.go
+index c5144cc..48359b6 100644
+--- a/ar_DJ/ar_DJ.go
++++ b/ar_DJ/ar_DJ.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ar_DJ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_DJ' locale
+ func New() locales.Translator {
+ return &ar_DJ{
+- locale: "ar_DJ",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "Fdj", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"ChST": "توقيت تشامورو", "TMT": "توقيت تركمانستان الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "NZST": "توقيت نيوزيلندا الرسمي", "SAST": "توقيت جنوب أفريقيا", "COT": "توقيت كولومبيا الرسمي", "HECU": "توقيت كوبا الصيفي", "HNT": "توقيت نيوفاوندلاند الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "WITA": "توقيت وسط إندونيسيا", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "AST": "التوقيت الرسمي الأطلسي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "CLST": "توقيت شيلي الصيفي", "BOT": "توقيت بوليفيا", "ACST": "توقيت وسط أستراليا الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "BT": "توقيت بوتان", "WEZ": "توقيت غرب أوروبا الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "GYT": "توقيت غيانا", "JDT": "توقيت اليابان الصيفي", "CAT": "توقيت وسط أفريقيا", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "MYT": "توقيت ماليزيا", "AKDT": "توقيت ألاسكا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "WESZ": "توقيت غرب أوروبا الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "COST": "توقيت كولومبيا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HAST": "توقيت هاواي ألوتيان الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "GMT": "توقيت غرينتش", "ART": "توقيت الأرجنتين الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "UYST": "توقيت أورغواي الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "WIB": "توقيت غرب إندونيسيا", "HEOG": "توقيت غرب غرينلاند الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "TMST": "توقيت تركمانستان الصيفي", "VET": "توقيت فنزويلا", "HKST": "توقيت هونغ كونغ الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "MST": "MST", "MDT": "MDT", "MEZ": "توقيت وسط أوروبا الرسمي", "LHST": "توقيت لورد هاو الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "CLT": "توقيت شيلي الرسمي", "∅∅∅": "توقيت الأمازون الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "SGT": "توقيت سنغافورة", "SRT": "توقيت سورينام", "ACDT": "توقيت وسط أستراليا الصيفي", "EAT": "توقيت شرق أفريقيا", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "HNOG": "توقيت غرب غرينلاند الرسمي", "ECT": "توقيت الإكوادور", "UYT": "توقيت أورغواي الرسمي", "GFT": "توقيت غايانا الفرنسية", "HNCU": "توقيت كوبا الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "HADT": "توقيت هاواي ألوتيان الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "CHAST": "توقيت تشاتام الرسمي", "IST": "توقيت الهند", "JST": "توقيت اليابان الرسمي", "WIT": "توقيت شرق إندونيسيا", "PDT": "توقيت المحيط الهادي الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك"},
++ locale: "ar_DJ",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "Fdj", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACWST": "ACWST", "CHADT": "CHADT", "WAT": "WAT", "COST": "COST", "EAT": "EAT", "MYT": "MYT", "AEDT": "AEDT", "AKDT": "AKDT", "ARST": "ARST", "MESZ": "MESZ", "IST": "IST", "PDT": "PDT", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "HADT": "HADT", "JST": "JST", "ADT": "ADT", "VET": "VET", "HECU": "HECU", "GFT": "GFT", "WIT": "WIT", "HKST": "HKST", "MDT": "MDT", "UYST": "UYST", "GYT": "GYT", "WITA": "WITA", "HNPM": "HNPM", "TMT": "TMT", "CAT": "CAT", "NZST": "NZST", "ART": "ART", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "ACST": "ACST", "AWST": "AWST", "EDT": "EDT", "TMST": "TMST", "CLT": "CLT", "CDT": "CDT", "ECT": "ECT", "ChST": "ChST", "JDT": "JDT", "ACWDT": "ACWDT", "SAST": "SAST", "CST": "CST", "AST": "AST", "SRT": "SRT", "ACDT": "ACDT", "COT": "COT", "EST": "EST", "WESZ": "WESZ", "HNOG": "HNOG", "MEZ": "MEZ", "HEPM": "HEPM", "CHAST": "CHAST", "HEPMX": "HEPMX", "AKST": "AKST", "OEZ": "OEZ", "HNT": "HNT", "BOT": "BOT", "BT": "BT", "NZDT": "NZDT", "HAST": "HAST", "HEEG": "HEEG", "GMT": "GMT", "AEST": "AEST", "UYT": "UYT", "SGT": "SGT", "WART": "WART", "WARST": "WARST", "HEOG": "HEOG", "HAT": "HAT", "CLST": "CLST", "WIB": "WIB", "AWDT": "AWDT", "WEZ": "WEZ", "HNCU": "HNCU", "WAST": "WAST", "MST": "MST", "HENOMX": "HENOMX", "LHST": "LHST", "PST": "PST", "HNPMX": "HNPMX", "HKT": "HKT", "HNEG": "HNEG"},
+ }
+ }
+ 
+@@ -186,7 +161,7 @@ func (ar *ar_DJ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_DJ) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +171,7 @@ func (ar *ar_DJ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_DJ) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +181,7 @@ func (ar *ar_DJ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_DJ) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +227,13 @@ func (ar *ar_DJ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_DJ' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_DJ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_DJ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_DJ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_DJ'
+@@ -338,62 +241,7 @@ func (ar *ar_DJ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_DJ'
+@@ -402,69 +250,7 @@ func (ar *ar_DJ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_DJ'
+@@ -472,17 +258,6 @@ func (ar *ar_DJ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +266,6 @@ func (ar *ar_DJ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +274,6 @@ func (ar *ar_DJ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +282,6 @@ func (ar *ar_DJ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +290,6 @@ func (ar *ar_DJ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +298,6 @@ func (ar *ar_DJ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +306,6 @@ func (ar *ar_DJ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +314,5 @@ func (ar *ar_DJ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_DZ/ar_DZ.go b/ar_DZ/ar_DZ.go
+index 5ee8e26..21b9970 100644
+--- a/ar_DZ/ar_DZ.go
++++ b/ar_DZ/ar_DZ.go
+@@ -10,70 +10,50 @@ import (
+ )
+ 
+ type ar_DZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_DZ' locale
+ func New() locales.Translator {
+ return &ar_DZ{
+- locale: "ar_DZ",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: ",",
+- group: ".",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ج", "ف", "م", "أ", "م", "ج", "ج", "أ", "س", "أ", "ن", "د"},
+- monthsWide: []string{"", "جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"HKST": "توقيت هونغ كونغ الصيفي", "CHAST": "توقيت تشاتام الرسمي", "CHADT": "توقيت تشاتام الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "ECT": "توقيت الإكوادور", "WART": "توقيت غرب الأرجنتين الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "COT": "توقيت كولومبيا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "ChST": "توقيت تشامورو", "WARST": "توقيت غرب الأرجنتين الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "GMT": "توقيت غرينتش", "SGT": "توقيت سنغافورة", "BT": "توقيت بوتان", "MDT": "التوقيت الجبلي الصيفي لأمريكا الشمالية", "GYT": "توقيت غيانا", "MST": "التوقيت الجبلي الرسمي لأمريكا الشمالية", "HNOG": "توقيت غرب غرينلاند الرسمي", "LHST": "توقيت لورد هاو الرسمي", "SAST": "توقيت جنوب أفريقيا", "JDT": "توقيت اليابان الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "UYST": "توقيت أورغواي الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "WAT": "توقيت غرب أفريقيا الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "WIT": "توقيت شرق إندونيسيا", "GFT": "توقيت غايانا الفرنسية", "TMT": "توقيت تركمانستان الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "CLT": "توقيت شيلي الرسمي", "CLST": "توقيت شيلي الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "ART": "توقيت الأرجنتين الرسمي", "IST": "توقيت الهند", "JST": "توقيت اليابان الرسمي", "HNCU": "توقيت كوبا الرسمي", "HECU": "توقيت كوبا الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "ADT": "التوقيت الصيفي الأطلسي", "MYT": "توقيت ماليزيا", "UYT": "توقيت أورغواي الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "PDT": "توقيت المحيط الهادي الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "COST": "توقيت كولومبيا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HAT": "توقيت نيوفاوندلاند الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "TMST": "توقيت تركمانستان الصيفي", "EAT": "توقيت شرق أفريقيا", "WIB": "توقيت غرب إندونيسيا", "∅∅∅": "توقيت الأمازون الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "SRT": "توقيت سورينام", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "BOT": "توقيت بوليفيا", "WITA": "توقيت وسط إندونيسيا", "AST": "التوقيت الرسمي الأطلسي", "VET": "توقيت فنزويلا", "HNT": "توقيت نيوفاوندلاند الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WEZ": "توقيت غرب أوروبا الرسمي", "CAT": "توقيت وسط أفريقيا", "WAST": "توقيت غرب أفريقيا الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي"},
++ locale: "ar_DZ",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ decimal: ",",
++ group: ".",
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
++ monthsNarrow: []string{"", "ج", "ف", "م", "أ", "م", "ج", "ج", "أ", "س", "أ", "ن", "د"},
++ monthsWide: []string{"", "جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
++ timezones: map[string]string{"CLST": "CLST", "WIB": "WIB", "HEOG": "HEOG", "JDT": "JDT", "WEZ": "WEZ", "WESZ": "WESZ", "AST": "AST", "ACST": "ACST", "HEEG": "HEEG", "AWST": "AWST", "MYT": "MYT", "HNPMX": "HNPMX", "GFT": "GFT", "WART": "WART", "EST": "EST", "MESZ": "MESZ", "TMT": "TMT", "ARST": "ARST", "CHAST": "CHAST", "WAST": "WAST", "GYT": "GYT", "COT": "COT", "CDT": "CDT", "NZST": "NZST", "GMT": "GMT", "UYST": "UYST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "LHDT": "LHDT", "PDT": "PDT", "HECU": "HECU", "COST": "COST", "EDT": "EDT", "MEZ": "MEZ", "CAT": "CAT", "IST": "IST", "AKDT": "AKDT", "WARST": "WARST", "CLT": "CLT", "MDT": "MDT", "CHADT": "CHADT", "HEPM": "HEPM", "WIT": "WIT", "HNEG": "HNEG", "ACWDT": "ACWDT", "SAST": "SAST", "HNOG": "HNOG", "HKT": "HKT", "TMST": "TMST", "NZDT": "NZDT", "BOT": "BOT", "ACWST": "ACWST", "EAT": "EAT", "SRT": "SRT", "HAST": "HAST", "UYT": "UYT", "PST": "PST", "BT": "BT", "HEPMX": "HEPMX", "VET": "VET", "HNCU": "HNCU", "WAT": "WAT", "AKST": "AKST", "AEDT": "AEDT", "MST": "MST", "OESZ": "OESZ", "HKST": "HKST", "ART": "ART", "HADT": "HADT", "ACDT": "ACDT", "AEST": "AEST", "∅∅∅": "∅∅∅", "ECT": "ECT", "ChST": "ChST", "AWDT": "AWDT", "HNPM": "HNPM", "SGT": "SGT", "JST": "JST", "OEZ": "OEZ", "HNT": "HNT", "HAT": "HAT", "WITA": "WITA", "CST": "CST", "ADT": "ADT", "LHST": "LHST"},
+ }
+ }
+ 
+@@ -252,79 +232,13 @@ func (ar *ar_DZ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_DZ' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_DZ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_DZ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_DZ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 10
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_DZ'
+@@ -332,58 +246,7 @@ func (ar *ar_DZ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_DZ'
+@@ -392,65 +255,7 @@ func (ar *ar_DZ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_DZ'
+@@ -458,17 +263,6 @@ func (ar *ar_DZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -477,27 +271,6 @@ func (ar *ar_DZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -506,17 +279,6 @@ func (ar *ar_DZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -525,19 +287,6 @@ func (ar *ar_DZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -546,28 +295,6 @@ func (ar *ar_DZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -576,35 +303,6 @@ func (ar *ar_DZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -613,40 +311,6 @@ func (ar *ar_DZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -655,44 +319,5 @@ func (ar *ar_DZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_EG/ar_EG.go b/ar_EG/ar_EG.go
+index 662ace3..54feef4 100644
+--- a/ar_EG/ar_EG.go
++++ b/ar_EG/ar_EG.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ar_EG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_EG' locale
+ func New() locales.Translator {
+ return &ar_EG{
+- locale: "ar_EG",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"HNPM": "توقيت سانت بيير وميكولون الرسمي", "JDT": "توقيت اليابان الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "MYT": "توقيت ماليزيا", "HEOG": "توقيت غرب غرينلاند الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "LHST": "توقيت لورد هاو الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "HECU": "توقيت كوبا الصيفي", "SGT": "توقيت سنغافورة", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "HNT": "توقيت نيوفاوندلاند الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "∅∅∅": "توقيت الأمازون الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "ECT": "توقيت الإكوادور", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "AEDT": "توقيت شرق أستراليا الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "COST": "توقيت كولومبيا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "WIB": "توقيت غرب إندونيسيا", "BT": "توقيت بوتان", "ART": "توقيت الأرجنتين الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "CLT": "توقيت شيلي الرسمي", "GFT": "توقيت غايانا الفرنسية", "WART": "توقيت غرب الأرجنتين الرسمي", "MST": "MST", "AKST": "التوقيت الرسمي لألاسكا", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "GYT": "توقيت غيانا", "WAT": "توقيت غرب أفريقيا الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "PST": "توقيت المحيط الهادي الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "SAST": "توقيت جنوب أفريقيا", "CLST": "توقيت شيلي الصيفي", "TMST": "توقيت تركمانستان الصيفي", "CAT": "توقيت وسط أفريقيا", "MEZ": "توقيت وسط أوروبا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "EAT": "توقيت شرق أفريقيا", "MDT": "MDT", "HADT": "توقيت هاواي ألوتيان الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "CHAST": "توقيت تشاتام الرسمي", "TMT": "توقيت تركمانستان الرسمي", "ChST": "توقيت تشامورو", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "UYT": "توقيت أورغواي الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "JST": "توقيت اليابان الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "WIT": "توقيت شرق إندونيسيا", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "WITA": "توقيت وسط إندونيسيا", "WEZ": "توقيت غرب أوروبا الرسمي", "AST": "التوقيت الرسمي الأطلسي", "COT": "توقيت كولومبيا الرسمي", "GMT": "توقيت غرينتش", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "UYST": "توقيت أورغواي الصيفي", "SRT": "توقيت سورينام", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "VET": "توقيت فنزويلا", "IST": "توقيت الهند", "ACDT": "توقيت وسط أستراليا الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "BOT": "توقيت بوليفيا", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HNCU": "توقيت كوبا الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "CHADT": "توقيت تشاتام الصيفي"},
++ locale: "ar_EG",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"JDT": "JDT", "HNT": "HNT", "SAST": "SAST", "ARST": "ARST", "AWDT": "AWDT", "VET": "VET", "HNOG": "HNOG", "EDT": "EDT", "MEZ": "MEZ", "ACWDT": "ACWDT", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "CLT": "CLT", "ART": "ART", "HEEG": "HEEG", "HNPM": "HNPM", "PST": "PST", "AST": "AST", "HAST": "HAST", "HNPMX": "HNPMX", "COT": "COT", "ChST": "ChST", "MDT": "MDT", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "CHAST": "CHAST", "HAT": "HAT", "WARST": "WARST", "WIT": "WIT", "HKST": "HKST", "ACDT": "ACDT", "HEPM": "HEPM", "WART": "WART", "SRT": "SRT", "HEPMX": "HEPMX", "GMT": "GMT", "BT": "BT", "HNEG": "HNEG", "LHST": "LHST", "IST": "IST", "AEST": "AEST", "WESZ": "WESZ", "CLST": "CLST", "ECT": "ECT", "EAT": "EAT", "AWST": "AWST", "WAT": "WAT", "CST": "CST", "WIB": "WIB", "HADT": "HADT", "PDT": "PDT", "HECU": "HECU", "GFT": "GFT", "EST": "EST", "HKT": "HKT", "CDT": "CDT", "NZST": "NZST", "MYT": "MYT", "ADT": "ADT", "SGT": "SGT", "OEZ": "OEZ", "OESZ": "OESZ", "TMT": "TMT", "TMST": "TMST", "WITA": "WITA", "ACWST": "ACWST", "AEDT": "AEDT", "UYST": "UYST", "WEZ": "WEZ", "HNCU": "HNCU", "WAST": "WAST", "JST": "JST", "COST": "COST", "HENOMX": "HENOMX", "BOT": "BOT", "UYT": "UYT", "AKST": "AKST", "AKDT": "AKDT", "GYT": "GYT", "HEOG": "HEOG", "CAT": "CAT", "MST": "MST", "NZDT": "NZDT", "ACST": "ACST", "MESZ": "MESZ"},
+ }
+ }
+ 
+@@ -186,7 +161,7 @@ func (ar *ar_EG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_EG) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +171,7 @@ func (ar *ar_EG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_EG) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +181,7 @@ func (ar *ar_EG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_EG) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +227,13 @@ func (ar *ar_EG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_EG' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_EG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_EG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_EG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_EG'
+@@ -338,62 +241,7 @@ func (ar *ar_EG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_EG'
+@@ -402,69 +250,7 @@ func (ar *ar_EG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_EG'
+@@ -472,17 +258,6 @@ func (ar *ar_EG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +266,6 @@ func (ar *ar_EG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +274,6 @@ func (ar *ar_EG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +282,6 @@ func (ar *ar_EG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +290,6 @@ func (ar *ar_EG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +298,6 @@ func (ar *ar_EG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +306,6 @@ func (ar *ar_EG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +314,5 @@ func (ar *ar_EG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_EH/ar_EH.go b/ar_EH/ar_EH.go
+index c742f78..ac62cd3 100644
+--- a/ar_EH/ar_EH.go
++++ b/ar_EH/ar_EH.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ar_EH struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_EH' locale
+ func New() locales.Translator {
+ return &ar_EH{
+- locale: "ar_EH",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"HNOG": "توقيت غرب غرينلاند الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "GMT": "توقيت غرينتش", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "UYT": "توقيت أورغواي الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "HAT": "توقيت نيوفاوندلاند الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "CHAST": "توقيت تشاتام الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "SAST": "توقيت جنوب أفريقيا", "JST": "توقيت اليابان الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "AST": "التوقيت الرسمي الأطلسي", "PST": "توقيت المحيط الهادي الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "CLT": "توقيت شيلي الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "BT": "توقيت بوتان", "HEOG": "توقيت غرب غرينلاند الصيفي", "TMST": "توقيت تركمانستان الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "VET": "توقيت فنزويلا", "EAT": "توقيت شرق أفريقيا", "HNCU": "توقيت كوبا الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "SRT": "توقيت سورينام", "WEZ": "توقيت غرب أوروبا الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "ECT": "توقيت الإكوادور", "WAT": "توقيت غرب أفريقيا الرسمي", "GYT": "توقيت غيانا", "WIB": "توقيت غرب إندونيسيا", "JDT": "توقيت اليابان الصيفي", "CLST": "توقيت شيلي الصيفي", "UYST": "توقيت أورغواي الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "ART": "توقيت الأرجنتين الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "SGT": "توقيت سنغافورة", "HECU": "توقيت كوبا الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "GFT": "توقيت غايانا الفرنسية", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "MYT": "توقيت ماليزيا", "AKST": "التوقيت الرسمي لألاسكا", "NZDT": "توقيت نيوزيلندا الصيفي", "IST": "توقيت الهند", "∅∅∅": "توقيت الأمازون الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "COST": "توقيت كولومبيا الصيفي", "MDT": "MDT", "HADT": "توقيت هاواي ألوتيان الصيفي", "WITA": "توقيت وسط إندونيسيا", "CHADT": "توقيت تشاتام الصيفي", "TMT": "توقيت تركمانستان الرسمي", "BOT": "توقيت بوليفيا", "ACDT": "توقيت وسط أستراليا الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "ChST": "توقيت تشامورو", "CAT": "توقيت وسط أفريقيا", "COT": "توقيت كولومبيا الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "LHST": "توقيت لورد هاو الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "MST": "MST", "WIT": "توقيت شرق إندونيسيا"},
++ locale: "ar_EH",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACST": "ACST", "AWST": "AWST", "WESZ": "WESZ", "TMST": "TMST", "MST": "MST", "HECU": "HECU", "HAT": "HAT", "HKT": "HKT", "ACWST": "ACWST", "JDT": "JDT", "UYT": "UYT", "GMT": "GMT", "ChST": "ChST", "HNOG": "HNOG", "AST": "AST", "HNCU": "HNCU", "MEZ": "MEZ", "AEST": "AEST", "CHADT": "CHADT", "LHDT": "LHDT", "HEPM": "HEPM", "CHAST": "CHAST", "VET": "VET", "HEPMX": "HEPMX", "OESZ": "OESZ", "WITA": "WITA", "ARST": "ARST", "EDT": "EDT", "CLT": "CLT", "CLST": "CLST", "CDT": "CDT", "SRT": "SRT", "HNEG": "HNEG", "WART": "WART", "COT": "COT", "AEDT": "AEDT", "AKST": "AKST", "IST": "IST", "ACWDT": "ACWDT", "SGT": "SGT", "AKDT": "AKDT", "∅∅∅": "∅∅∅", "BT": "BT", "MESZ": "MESZ", "HEEG": "HEEG", "HNPMX": "HNPMX", "HNT": "HNT", "GYT": "GYT", "HEOG": "HEOG", "TMT": "TMT", "CAT": "CAT", "ECT": "ECT", "WIB": "WIB", "HNNOMX": "HNNOMX", "WIT": "WIT", "SAST": "SAST", "PDT": "PDT", "OEZ": "OEZ", "BOT": "BOT", "HAST": "HAST", "MYT": "MYT", "UYST": "UYST", "PST": "PST", "WEZ": "WEZ", "COST": "COST", "NZST": "NZST", "GFT": "GFT", "WAT": "WAT", "WAST": "WAST", "EAT": "EAT", "MDT": "MDT", "ADT": "ADT", "HENOMX": "HENOMX", "LHST": "LHST", "JST": "JST", "EST": "EST", "CST": "CST", "WARST": "WARST", "ART": "ART", "HADT": "HADT", "ACDT": "ACDT", "AWDT": "AWDT", "HNPM": "HNPM", "HKST": "HKST", "NZDT": "NZDT"},
+ }
+ }
+ 
+@@ -186,7 +161,7 @@ func (ar *ar_EH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_EH) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +171,7 @@ func (ar *ar_EH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_EH) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +181,7 @@ func (ar *ar_EH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_EH) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +227,13 @@ func (ar *ar_EH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_EH' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_EH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_EH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_EH) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_EH'
+@@ -338,62 +241,7 @@ func (ar *ar_EH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_EH'
+@@ -402,69 +250,7 @@ func (ar *ar_EH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_EH'
+@@ -472,17 +258,6 @@ func (ar *ar_EH) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +266,6 @@ func (ar *ar_EH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +274,6 @@ func (ar *ar_EH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +282,6 @@ func (ar *ar_EH) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +290,6 @@ func (ar *ar_EH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +298,6 @@ func (ar *ar_EH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +306,6 @@ func (ar *ar_EH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +314,5 @@ func (ar *ar_EH) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_ER/ar_ER.go b/ar_ER/ar_ER.go
+index 355e486..e6ea992 100644
+--- a/ar_ER/ar_ER.go
++++ b/ar_ER/ar_ER.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ar_ER struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_ER' locale
+ func New() locales.Translator {
+ return &ar_ER{
+- locale: "ar_ER",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "Nfk", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"EAT": "توقيت شرق أفريقيا", "OEZ": "توقيت شرق أوروبا الرسمي", "ECT": "توقيت الإكوادور", "HECU": "توقيت كوبا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "WESZ": "توقيت غرب أوروبا الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "CAT": "توقيت وسط أفريقيا", "AKST": "التوقيت الرسمي لألاسكا", "AWST": "توقيت غرب أستراليا الرسمي", "CHAST": "توقيت تشاتام الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "GYT": "توقيت غيانا", "UYT": "توقيت أورغواي الرسمي", "WIT": "توقيت شرق إندونيسيا", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "CLT": "توقيت شيلي الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "LHST": "توقيت لورد هاو الرسمي", "GMT": "توقيت غرينتش", "VET": "توقيت فنزويلا", "NZST": "توقيت نيوزيلندا الرسمي", "IST": "توقيت الهند", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "MYT": "توقيت ماليزيا", "HADT": "توقيت هاواي ألوتيان الصيفي", "JDT": "توقيت اليابان الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "MST": "MST", "UYST": "توقيت أورغواي الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "CLST": "توقيت شيلي الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "ARST": "توقيت الأرجنتين الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "HNCU": "توقيت كوبا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "JST": "توقيت اليابان الرسمي", "ChST": "توقيت تشامورو", "MDT": "MDT", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "WITA": "توقيت وسط إندونيسيا", "HEEG": "توقيت شرق غرينلاند الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "COT": "توقيت كولومبيا الرسمي", "WEZ": "توقيت غرب أوروبا الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "∅∅∅": "توقيت بيرو الصيفي", "WIB": "توقيت غرب إندونيسيا", "HNT": "توقيت نيوفاوندلاند الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "COST": "توقيت كولومبيا الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "ART": "توقيت الأرجنتين الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "HAST": "توقيت هاواي ألوتيان الرسمي", "SRT": "توقيت سورينام", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "GFT": "توقيت غايانا الفرنسية", "TMT": "توقيت تركمانستان الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "AST": "التوقيت الرسمي الأطلسي", "AEST": "توقيت شرق أستراليا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "BOT": "توقيت بوليفيا", "TMST": "توقيت تركمانستان الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "SGT": "توقيت سنغافورة", "BT": "توقيت بوتان", "CHADT": "توقيت تشاتام الصيفي", "SAST": "توقيت جنوب أفريقيا"},
++ locale: "ar_ER",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "Nfk", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACST": "ACST", "AWDT": "AWDT", "VET": "VET", "HNPMX": "HNPMX", "OEZ": "OEZ", "SAST": "SAST", "COT": "COT", "WITA": "WITA", "HECU": "HECU", "CAT": "CAT", "CLST": "CLST", "ARST": "ARST", "HNOG": "HNOG", "∅∅∅": "∅∅∅", "ChST": "ChST", "HADT": "HADT", "MESZ": "MESZ", "HNEG": "HNEG", "HENOMX": "HENOMX", "LHST": "LHST", "AEDT": "AEDT", "HEOG": "HEOG", "HKST": "HKST", "CST": "CST", "MDT": "MDT", "BT": "BT", "HKT": "HKT", "TMST": "TMST", "ADT": "ADT", "SRT": "SRT", "WAT": "WAT", "OESZ": "OESZ", "WARST": "WARST", "NZST": "NZST", "GMT": "GMT", "MYT": "MYT", "JST": "JST", "HEPMX": "HEPMX", "NZDT": "NZDT", "IST": "IST", "HNCU": "HNCU", "MEZ": "MEZ", "HNPM": "HNPM", "AKDT": "AKDT", "HAT": "HAT", "EDT": "EDT", "MST": "MST", "SGT": "SGT", "AKST": "AKST", "ECT": "ECT", "ACWST": "ACWST", "WIT": "WIT", "WIB": "WIB", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "AWST": "AWST", "LHDT": "LHDT", "PST": "PST", "AEST": "AEST", "TMT": "TMT", "CDT": "CDT", "ART": "ART", "HAST": "HAST", "ACWDT": "ACWDT", "CHAST": "CHAST", "GFT": "GFT", "HNT": "HNT", "AST": "AST", "HEEG": "HEEG", "HEPM": "HEPM", "PDT": "PDT", "CHADT": "CHADT", "WESZ": "WESZ", "EST": "EST", "BOT": "BOT", "EAT": "EAT", "UYT": "UYT", "GYT": "GYT", "COST": "COST", "CLT": "CLT", "JDT": "JDT", "UYST": "UYST", "WEZ": "WEZ", "WAST": "WAST", "WART": "WART"},
+ }
+ }
+ 
+@@ -186,7 +161,7 @@ func (ar *ar_ER) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_ER) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +171,7 @@ func (ar *ar_ER) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_ER) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +181,7 @@ func (ar *ar_ER) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_ER) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +227,13 @@ func (ar *ar_ER) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_ER' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_ER) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_ER' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_ER) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_ER'
+@@ -338,62 +241,7 @@ func (ar *ar_ER) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_ER'
+@@ -402,69 +250,7 @@ func (ar *ar_ER) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_ER'
+@@ -472,17 +258,6 @@ func (ar *ar_ER) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +266,6 @@ func (ar *ar_ER) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +274,6 @@ func (ar *ar_ER) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +282,6 @@ func (ar *ar_ER) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +290,6 @@ func (ar *ar_ER) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +298,6 @@ func (ar *ar_ER) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +306,6 @@ func (ar *ar_ER) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +314,5 @@ func (ar *ar_ER) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_IL/ar_IL.go b/ar_IL/ar_IL.go
+index 55c0473..b891f71 100644
+--- a/ar_IL/ar_IL.go
++++ b/ar_IL/ar_IL.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ar_IL struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_IL' locale
+ func New() locales.Translator {
+ return &ar_IL{
+- locale: "ar_IL",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"WAT": "توقيت غرب أفريقيا الرسمي", "COST": "توقيت كولومبيا الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "WIT": "توقيت شرق إندونيسيا", "AWST": "توقيت غرب أستراليا الرسمي", "UYT": "توقيت أورغواي الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "HNEG": "توقيت شرق غرينلاند الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HNCU": "توقيت كوبا الرسمي", "MDT": "MDT", "WIB": "توقيت غرب إندونيسيا", "PST": "توقيت المحيط الهادي الرسمي", "JDT": "توقيت اليابان الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "JST": "توقيت اليابان الرسمي", "EAT": "توقيت شرق أفريقيا", "WARST": "توقيت غرب الأرجنتين الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "SAST": "توقيت جنوب أفريقيا", "GYT": "توقيت غيانا", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "BOT": "توقيت بوليفيا", "GFT": "توقيت غايانا الفرنسية", "TMT": "توقيت تركمانستان الرسمي", "GMT": "توقيت غرينتش", "MST": "MST", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "LHDT": "التوقيت الصيفي للورد هاو", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "MYT": "توقيت ماليزيا", "AEST": "توقيت شرق أستراليا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "CHADT": "توقيت تشاتام الصيفي", "CAT": "توقيت وسط أفريقيا", "SGT": "توقيت سنغافورة", "WEZ": "توقيت غرب أوروبا الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "TMST": "توقيت تركمانستان الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "CLST": "توقيت شيلي الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "HECU": "توقيت كوبا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HNOG": "توقيت غرب غرينلاند الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "CLT": "توقيت شيلي الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "COT": "توقيت كولومبيا الرسمي", "BT": "توقيت بوتان", "HKT": "توقيت هونغ كونغ الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "UYST": "توقيت أورغواي الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "WITA": "توقيت وسط إندونيسيا", "CHAST": "توقيت تشاتام الرسمي", "IST": "توقيت الهند", "AST": "التوقيت الرسمي الأطلسي", "ADT": "التوقيت الصيفي الأطلسي", "HNT": "توقيت نيوفاوندلاند الرسمي", "ART": "توقيت الأرجنتين الرسمي", "ChST": "توقيت تشامورو", "∅∅∅": "توقيت بيرو الصيفي", "ECT": "توقيت الإكوادور", "SRT": "توقيت سورينام", "NZDT": "توقيت نيوزيلندا الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "HADT": "توقيت هاواي ألوتيان الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "VET": "توقيت فنزويلا"},
++ locale: "ar_IL",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNT": "HNT", "CAT": "CAT", "CLST": "CLST", "AWST": "AWST", "JST": "JST", "PDT": "PDT", "HEPMX": "HEPMX", "HNEG": "HNEG", "ACWDT": "ACWDT", "MST": "MST", "CST": "CST", "ECT": "ECT", "WIB": "WIB", "GMT": "GMT", "ChST": "ChST", "ACST": "ACST", "CHAST": "CHAST", "GYT": "GYT", "SGT": "SGT", "EST": "EST", "HKST": "HKST", "BOT": "BOT", "HNNOMX": "HNNOMX", "UYT": "UYT", "UYST": "UYST", "TMT": "TMT", "MEZ": "MEZ", "HNPM": "HNPM", "AEST": "AEST", "WAT": "WAT", "HAT": "HAT", "HKT": "HKT", "ADT": "ADT", "MESZ": "MESZ", "WEZ": "WEZ", "HECU": "HECU", "WART": "WART", "SAST": "SAST", "AST": "AST", "ART": "ART", "SRT": "SRT", "LHDT": "LHDT", "IST": "IST", "AEDT": "AEDT", "OEZ": "OEZ", "NZDT": "NZDT", "ARST": "ARST", "HNCU": "HNCU", "AKDT": "AKDT", "AKST": "AKST", "OESZ": "OESZ", "BT": "BT", "WAST": "WAST", "HAST": "HAST", "COST": "COST", "CLT": "CLT", "HEOG": "HEOG", "MDT": "MDT", "WESZ": "WESZ", "HNPMX": "HNPMX", "EDT": "EDT", "TMST": "TMST", "WARST": "WARST", "NZST": "NZST", "ACDT": "ACDT", "HENOMX": "HENOMX", "HEPM": "HEPM", "CHADT": "CHADT", "GFT": "GFT", "CDT": "CDT", "EAT": "EAT", "HADT": "HADT", "HEEG": "HEEG", "MYT": "MYT", "JDT": "JDT", "ACWST": "ACWST", "HNOG": "HNOG", "COT": "COT", "WITA": "WITA", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "PST": "PST", "LHST": "LHST", "VET": "VET", "WIT": "WIT"},
+ }
+ }
+ 
+@@ -186,7 +161,7 @@ func (ar *ar_IL) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_IL) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +171,7 @@ func (ar *ar_IL) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_IL) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +181,7 @@ func (ar *ar_IL) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_IL) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +227,13 @@ func (ar *ar_IL) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_IL' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_IL) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_IL' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_IL) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_IL'
+@@ -338,62 +241,7 @@ func (ar *ar_IL) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_IL'
+@@ -402,69 +250,7 @@ func (ar *ar_IL) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_IL'
+@@ -472,17 +258,6 @@ func (ar *ar_IL) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +266,6 @@ func (ar *ar_IL) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +274,6 @@ func (ar *ar_IL) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +282,6 @@ func (ar *ar_IL) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/ar_IQ/ar_IQ.go b/ar_IQ/ar_IQ.go
+index 8e472f3..21f229e 100644
+--- a/ar_IQ/ar_IQ.go
++++ b/ar_IQ/ar_IQ.go
+@@ -10,70 +10,48 @@ import (
+ )
+ 
+ type ar_IQ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_IQ' locale
+ func New() locales.Translator {
+ return &ar_IQ{
+- locale: "ar_IQ",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرین الأول", "تشرين الثاني", "كانون الأول"},
+- monthsNarrow: []string{"", "ك", "ش", "آ", "ن", "أ", "ح", "ت", "آ", "أ", "ت", "ت", "ك"},
+- monthsWide: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"HNT": "توقيت نيوفاوندلاند الرسمي", "ART": "توقيت الأرجنتين الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "JST": "توقيت اليابان الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "COST": "توقيت كولومبيا الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "EAT": "توقيت شرق أفريقيا", "HNCU": "توقيت كوبا الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "AKST": "التوقيت الرسمي لألاسكا", "GYT": "توقيت غيانا", "UYST": "توقيت أورغواي الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "TMST": "توقيت تركمانستان الصيفي", "CAT": "توقيت وسط أفريقيا", "GFT": "توقيت غايانا الفرنسية", "WART": "توقيت غرب الأرجنتين الرسمي", "BT": "توقيت بوتان", "SRT": "توقيت سورينام", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "∅∅∅": "توقيت الأمازون الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "AWDT": "توقيت غرب أستراليا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WAST": "توقيت غرب أفريقيا الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "CHAST": "توقيت تشاتام الرسمي", "SAST": "توقيت جنوب أفريقيا", "TMT": "توقيت تركمانستان الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "WEZ": "توقيت غرب أوروبا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "JDT": "توقيت اليابان الصيفي", "ChST": "توقيت تشامورو", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "PST": "توقيت المحيط الهادي الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "WITA": "توقيت وسط إندونيسيا", "CHADT": "توقيت تشاتام الصيفي", "BOT": "توقيت بوليفيا", "WAT": "توقيت غرب أفريقيا الرسمي", "WIT": "توقيت شرق إندونيسيا", "ARST": "توقيت الأرجنتين الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "MDT": "MDT", "MYT": "توقيت ماليزيا", "WIB": "توقيت غرب إندونيسيا", "HKT": "توقيت هونغ كونغ الرسمي", "IST": "توقيت الهند", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "GMT": "توقيت غرينتش", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "MST": "MST", "AST": "التوقيت الرسمي الأطلسي", "HAST": "توقيت هاواي ألوتيان الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "CLT": "توقيت شيلي الرسمي", "HECU": "توقيت كوبا الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "SGT": "توقيت سنغافورة", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "AKDT": "توقيت ألاسكا الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "COT": "توقيت كولومبيا الرسمي", "ECT": "توقيت الإكوادور", "UYT": "توقيت أورغواي الرسمي", "VET": "توقيت فنزويلا", "HNOG": "توقيت غرب غرينلاند الرسمي", "CLST": "توقيت شيلي الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي"},
++ locale: "ar_IQ",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرین الأول", "تشرين الثاني", "كانون الأول"},
++ monthsNarrow: []string{"", "ك", "ش", "آ", "ن", "أ", "ح", "ت", "آ", "أ", "ت", "ت", "ك"},
++ monthsWide: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
++ timezones: map[string]string{"MESZ": "MESZ", "ACDT": "ACDT", "HEEG": "HEEG", "ACWDT": "ACWDT", "HNCU": "HNCU", "WART": "WART", "HKST": "HKST", "EAT": "EAT", "NZDT": "NZDT", "TMT": "TMT", "WAT": "WAT", "AKDT": "AKDT", "ECT": "ECT", "CDT": "CDT", "MST": "MST", "SGT": "SGT", "WAST": "WAST", "HAT": "HAT", "HNPMX": "HNPMX", "AWDT": "AWDT", "LHDT": "LHDT", "WARST": "WARST", "AWST": "AWST", "WESZ": "WESZ", "WIB": "WIB", "ARST": "ARST", "ChST": "ChST", "JST": "JST", "HENOMX": "HENOMX", "JDT": "JDT", "IST": "IST", "CST": "CST", "HNNOMX": "HNNOMX", "HADT": "HADT", "OESZ": "OESZ", "SAST": "SAST", "MDT": "MDT", "VET": "VET", "TMST": "TMST", "CAT": "CAT", "AEST": "AEST", "CHAST": "CHAST", "UYST": "UYST", "HKT": "HKT", "ADT": "ADT", "HNPM": "HNPM", "CHADT": "CHADT", "COT": "COT", "AST": "AST", "ACWST": "ACWST", "HNEG": "HNEG", "AEDT": "AEDT", "HEPMX": "HEPMX", "AKST": "AKST", "EDT": "EDT", "MEZ": "MEZ", "ACST": "ACST", "MYT": "MYT", "WIT": "WIT", "HNOG": "HNOG", "SRT": "SRT", "GFT": "GFT", "COST": "COST", "CLST": "CLST", "WITA": "WITA", "HECU": "HECU", "UYT": "UYT", "BT": "BT", "HEOG": "HEOG", "CLT": "CLT", "GMT": "GMT", "HAST": "HAST", "HEPM": "HEPM", "OEZ": "OEZ", "HNT": "HNT", "NZST": "NZST", "ART": "ART", "BOT": "BOT", "∅∅∅": "∅∅∅", "PST": "PST", "PDT": "PDT", "WEZ": "WEZ", "GYT": "GYT", "EST": "EST", "LHST": "LHST"},
+ }
+ }
+ 
+@@ -252,85 +230,13 @@ func (ar *ar_IQ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_IQ' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_IQ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_IQ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_IQ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_IQ'
+@@ -338,62 +244,7 @@ func (ar *ar_IQ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_IQ'
+@@ -402,69 +253,7 @@ func (ar *ar_IQ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_IQ'
+@@ -472,17 +261,6 @@ func (ar *ar_IQ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +269,6 @@ func (ar *ar_IQ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +277,6 @@ func (ar *ar_IQ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +285,6 @@ func (ar *ar_IQ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +293,6 @@ func (ar *ar_IQ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +301,6 @@ func (ar *ar_IQ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +309,6 @@ func (ar *ar_IQ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +317,5 @@ func (ar *ar_IQ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_JO/ar_JO.go b/ar_JO/ar_JO.go
+index 13a215c..79fba91 100644
+--- a/ar_JO/ar_JO.go
++++ b/ar_JO/ar_JO.go
+@@ -10,70 +10,48 @@ import (
+ )
+ 
+ type ar_JO struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_JO' locale
+ func New() locales.Translator {
+ return &ar_JO{
+- locale: "ar_JO",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
+- monthsNarrow: []string{"", "ك", "ش", "آ", "ن", "أ", "ح", "ت", "آ", "أ", "ت", "ت", "ك"},
+- monthsWide: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"SRT": "توقيت سورينام", "NZST": "توقيت نيوزيلندا الرسمي", "SAST": "توقيت جنوب أفريقيا", "ACST": "توقيت وسط أستراليا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "AST": "التوقيت الرسمي الأطلسي", "UYST": "توقيت أورغواي الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "CHAST": "توقيت تشاتام الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "BT": "توقيت بوتان", "LHST": "توقيت لورد هاو الرسمي", "JDT": "توقيت اليابان الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HNCU": "توقيت كوبا الرسمي", "MST": "التوقيت الجبلي الرسمي لأمريكا الشمالية", "AEDT": "توقيت شرق أستراليا الصيفي", "COST": "توقيت كولومبيا الصيفي", "GMT": "توقيت غرينتش", "OESZ": "توقيت شرق أوروبا الصيفي", "WIT": "توقيت شرق إندونيسيا", "HEOG": "توقيت غرب غرينلاند الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "JST": "توقيت اليابان الرسمي", "TMST": "توقيت تركمانستان الصيفي", "SGT": "توقيت سنغافورة", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "MYT": "توقيت ماليزيا", "AKST": "التوقيت الرسمي لألاسكا", "HADT": "توقيت هاواي ألوتيان الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "∅∅∅": "توقيت الأمازون الصيفي", "ChST": "توقيت تشامورو", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "WIB": "توقيت غرب إندونيسيا", "ARST": "توقيت الأرجنتين الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "WITA": "توقيت وسط إندونيسيا", "WAST": "توقيت غرب أفريقيا الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "ART": "توقيت الأرجنتين الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "BOT": "توقيت بوليفيا", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "GFT": "توقيت غايانا الفرنسية", "COT": "توقيت كولومبيا الرسمي", "MDT": "التوقيت الجبلي الصيفي لأمريكا الشمالية", "VET": "توقيت فنزويلا", "AEST": "توقيت شرق أستراليا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "CHADT": "توقيت تشاتام الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "EAT": "توقيت شرق أفريقيا", "GYT": "توقيت غيانا", "AKDT": "توقيت ألاسكا الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "CAT": "توقيت وسط أفريقيا", "HECU": "توقيت كوبا الصيفي", "UYT": "توقيت أورغواي الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "CLT": "توقيت شيلي الرسمي", "CLST": "توقيت شيلي الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "IST": "توقيت الهند", "TMT": "توقيت تركمانستان الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "ECT": "توقيت الإكوادور", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية"},
++ locale: "ar_JO",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
++ monthsNarrow: []string{"", "ك", "ش", "آ", "ن", "أ", "ح", "ت", "آ", "أ", "ت", "ت", "ك"},
++ monthsWide: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
++ timezones: map[string]string{"SAST": "SAST", "HAST": "HAST", "MYT": "MYT", "HNCU": "HNCU", "AKDT": "AKDT", "GYT": "GYT", "HEOG": "HEOG", "SRT": "SRT", "ACDT": "ACDT", "HEEG": "HEEG", "PDT": "PDT", "SGT": "SGT", "HNT": "HNT", "HKST": "HKST", "WIB": "WIB", "BOT": "BOT", "HNEG": "HNEG", "MEZ": "MEZ", "OESZ": "OESZ", "HAT": "HAT", "CLT": "CLT", "ECT": "ECT", "ChST": "ChST", "ART": "ART", "MESZ": "MESZ", "CHADT": "CHADT", "COST": "COST", "HKT": "HKT", "VET": "VET", "GFT": "GFT", "EST": "EST", "AWST": "AWST", "HNNOMX": "HNNOMX", "BT": "BT", "ACWDT": "ACWDT", "COT": "COT", "ACST": "ACST", "EAT": "EAT", "AEDT": "AEDT", "OEZ": "OEZ", "GMT": "GMT", "ADT": "ADT", "CAT": "CAT", "HEPM": "HEPM", "JST": "JST", "JDT": "JDT", "EDT": "EDT", "CLST": "CLST", "PST": "PST", "UYST": "UYST", "HECU": "HECU", "HEPMX": "HEPMX", "WAT": "WAT", "HNOG": "HNOG", "AST": "AST", "LHDT": "LHDT", "IST": "IST", "HNPMX": "HNPMX", "TMST": "TMST", "HENOMX": "HENOMX", "NZST": "NZST", "HADT": "HADT", "WIT": "WIT", "MDT": "MDT", "LHST": "LHST", "HNPM": "HNPM", "CDT": "CDT", "ARST": "ARST", "MST": "MST", "ACWST": "ACWST", "WARST": "WARST", "TMT": "TMT", "CHAST": "CHAST", "WESZ": "WESZ", "∅∅∅": "∅∅∅", "NZDT": "NZDT", "CST": "CST", "AEST": "AEST", "UYT": "UYT", "WART": "WART", "WITA": "WITA", "AKST": "AKST", "WAST": "WAST", "AWDT": "AWDT", "WEZ": "WEZ"},
+ }
+ }
+ 
+@@ -252,85 +230,13 @@ func (ar *ar_JO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_JO' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_JO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_JO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_JO) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_JO'
+@@ -338,62 +244,7 @@ func (ar *ar_JO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_JO'
+@@ -402,69 +253,7 @@ func (ar *ar_JO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_JO'
+@@ -472,17 +261,6 @@ func (ar *ar_JO) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +269,6 @@ func (ar *ar_JO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +277,6 @@ func (ar *ar_JO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +285,6 @@ func (ar *ar_JO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +293,6 @@ func (ar *ar_JO) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +301,6 @@ func (ar *ar_JO) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +309,6 @@ func (ar *ar_JO) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +317,5 @@ func (ar *ar_JO) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_KM/ar_KM.go b/ar_KM/ar_KM.go
+index 2927be9..7a8c4c0 100644
+--- a/ar_KM/ar_KM.go
++++ b/ar_KM/ar_KM.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ar_KM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_KM' locale
+ func New() locales.Translator {
+ return &ar_KM{
+- locale: "ar_KM",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"CLST": "توقيت شيلي الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "WART": "توقيت غرب الأرجنتين الرسمي", "HADT": "توقيت هاواي ألوتيان الصيفي", "VET": "توقيت فنزويلا", "NZST": "توقيت نيوزيلندا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "UYST": "توقيت أورغواي الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "TMST": "توقيت تركمانستان الصيفي", "MYT": "توقيت ماليزيا", "BT": "توقيت بوتان", "ECT": "توقيت الإكوادور", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "CHAST": "توقيت تشاتام الرسمي", "IST": "توقيت الهند", "BOT": "توقيت بوليفيا", "WAT": "توقيت غرب أفريقيا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "JST": "توقيت اليابان الرسمي", "HNCU": "توقيت كوبا الرسمي", "SGT": "توقيت سنغافورة", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "WITA": "توقيت وسط إندونيسيا", "GMT": "توقيت غرينتش", "WIB": "توقيت غرب إندونيسيا", "WESZ": "توقيت غرب أوروبا الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "HECU": "توقيت كوبا الصيفي", "MST": "MST", "AST": "التوقيت الرسمي الأطلسي", "JDT": "توقيت اليابان الصيفي", "ChST": "توقيت تشامورو", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "SRT": "توقيت سورينام", "PDT": "توقيت المحيط الهادي الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "ARST": "توقيت الأرجنتين الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "HNEG": "توقيت شرق غرينلاند الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "AKST": "التوقيت الرسمي لألاسكا", "AKDT": "توقيت ألاسكا الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "HKST": "توقيت هونغ كونغ الصيفي", "GFT": "توقيت غايانا الفرنسية", "∅∅∅": "توقيت أزورس الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "SAST": "توقيت جنوب أفريقيا", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "ART": "توقيت الأرجنتين الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "TMT": "توقيت تركمانستان الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "CAT": "توقيت وسط أفريقيا", "COT": "توقيت كولومبيا الرسمي", "COST": "توقيت كولومبيا الصيفي", "HNT": "توقيت نيوفاوندلاند الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "GYT": "توقيت غيانا", "AEDT": "توقيت شرق أستراليا الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "EAT": "توقيت شرق أفريقيا", "MDT": "MDT", "UYT": "توقيت أورغواي الرسمي", "WIT": "توقيت شرق إندونيسيا", "HEOG": "توقيت غرب غرينلاند الصيفي", "CLT": "توقيت شيلي الرسمي"},
++ locale: "ar_KM",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HKT": "HKT", "PST": "PST", "UYST": "UYST", "HECU": "HECU", "LHDT": "LHDT", "MST": "MST", "AST": "AST", "ART": "ART", "AKDT": "AKDT", "GYT": "GYT", "COST": "COST", "EDT": "EDT", "CLT": "CLT", "WEZ": "WEZ", "SGT": "SGT", "VET": "VET", "AWDT": "AWDT", "CST": "CST", "HAST": "HAST", "HNNOMX": "HNNOMX", "ACST": "ACST", "WIB": "WIB", "ADT": "ADT", "GMT": "GMT", "COT": "COT", "MESZ": "MESZ", "JDT": "JDT", "AEDT": "AEDT", "AKST": "AKST", "WARST": "WARST", "NZDT": "NZDT", "ChST": "ChST", "MEZ": "MEZ", "ACWDT": "ACWDT", "WESZ": "WESZ", "HEOG": "HEOG", "AWST": "AWST", "IST": "IST", "∅∅∅": "∅∅∅", "NZST": "NZST", "CHAST": "CHAST", "OESZ": "OESZ", "LHST": "LHST", "WART": "WART", "EST": "EST", "ECT": "ECT", "ACDT": "ACDT", "HNPM": "HNPM", "AEST": "AEST", "CHADT": "CHADT", "WAT": "WAT", "MDT": "MDT", "HEEG": "HEEG", "MYT": "MYT", "BT": "BT", "HNCU": "HNCU", "CAT": "CAT", "HADT": "HADT", "HEPM": "HEPM", "OEZ": "OEZ", "HKST": "HKST", "ARST": "ARST", "EAT": "EAT", "HNEG": "HNEG", "HEPMX": "HEPMX", "BOT": "BOT", "SRT": "SRT", "HAT": "HAT", "SAST": "SAST", "GFT": "GFT", "WIT": "WIT", "WAST": "WAST", "HNT": "HNT", "HNOG": "HNOG", "TMT": "TMT", "TMST": "TMST", "PDT": "PDT", "UYT": "UYT", "HNPMX": "HNPMX", "CLST": "CLST", "CDT": "CDT", "JST": "JST", "ACWST": "ACWST", "WITA": "WITA", "HENOMX": "HENOMX"},
+ }
+ }
+ 
+@@ -186,7 +161,7 @@ func (ar *ar_KM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_KM) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +171,7 @@ func (ar *ar_KM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_KM) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +181,7 @@ func (ar *ar_KM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_KM) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +227,13 @@ func (ar *ar_KM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_KM' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_KM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_KM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_KM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_KM'
+@@ -338,62 +241,7 @@ func (ar *ar_KM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_KM'
+@@ -402,69 +250,7 @@ func (ar *ar_KM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_KM'
+@@ -472,17 +258,6 @@ func (ar *ar_KM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +266,6 @@ func (ar *ar_KM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +274,6 @@ func (ar *ar_KM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +282,6 @@ func (ar *ar_KM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/ar_KW/ar_KW.go b/ar_KW/ar_KW.go
+index 101fee6..5094a89 100644
+--- a/ar_KW/ar_KW.go
++++ b/ar_KW/ar_KW.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ar_KW struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_KW' locale
+ func New() locales.Translator {
+ return &ar_KW{
+- locale: "ar_KW",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"NZST": "توقيت نيوزيلندا الرسمي", "COST": "توقيت كولومبيا الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "GMT": "توقيت غرينتش", "AEDT": "توقيت شرق أستراليا الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "EAT": "توقيت شرق أفريقيا", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "MEZ": "توقيت وسط أوروبا الرسمي", "CLT": "توقيت شيلي الرسمي", "ChST": "توقيت تشامورو", "MST": "MST", "JDT": "توقيت اليابان الصيفي", "GFT": "توقيت غايانا الفرنسية", "HNEG": "توقيت شرق غرينلاند الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "MDT": "MDT", "HAT": "توقيت نيوفاوندلاند الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "CHAST": "توقيت تشاتام الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "JST": "توقيت اليابان الرسمي", "ECT": "توقيت الإكوادور", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "AKDT": "توقيت ألاسكا الصيفي", "UYST": "توقيت أورغواي الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "HNT": "توقيت نيوفاوندلاند الرسمي", "BOT": "توقيت بوليفيا", "HNCU": "توقيت كوبا الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "MYT": "توقيت ماليزيا", "UYT": "توقيت أورغواي الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "IST": "توقيت الهند", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "TMT": "توقيت تركمانستان الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "AKST": "التوقيت الرسمي لألاسكا", "BT": "توقيت بوتان", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "WIT": "توقيت شرق إندونيسيا", "HADT": "توقيت هاواي ألوتيان الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "∅∅∅": "توقيت بيرو الصيفي", "GYT": "توقيت غيانا", "AEST": "توقيت شرق أستراليا الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "TMST": "توقيت تركمانستان الصيفي", "SRT": "توقيت سورينام", "WEZ": "توقيت غرب أوروبا الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "CAT": "توقيت وسط أفريقيا", "WARST": "توقيت غرب الأرجنتين الصيفي", "AST": "التوقيت الرسمي الأطلسي", "VET": "توقيت فنزويلا", "HAST": "توقيت هاواي ألوتيان الرسمي", "SGT": "توقيت سنغافورة", "WIB": "توقيت غرب إندونيسيا", "LHDT": "التوقيت الصيفي للورد هاو", "CLST": "توقيت شيلي الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "COT": "توقيت كولومبيا الرسمي", "HECU": "توقيت كوبا الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "ADT": "التوقيت الصيفي الأطلسي", "ART": "توقيت الأرجنتين الرسمي", "SAST": "توقيت جنوب أفريقيا", "WESZ": "توقيت غرب أوروبا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "WITA": "توقيت وسط إندونيسيا", "LHST": "توقيت لورد هاو الرسمي", "CHADT": "توقيت تشاتام الصيفي"},
++ locale: "ar_KW",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CHAST": "CHAST", "UYT": "UYT", "AEDT": "AEDT", "WARST": "WARST", "CST": "CST", "EAT": "EAT", "JDT": "JDT", "CHADT": "CHADT", "PDT": "PDT", "WAT": "WAT", "GFT": "GFT", "HNT": "HNT", "ADT": "ADT", "MESZ": "MESZ", "ACDT": "ACDT", "EDT": "EDT", "TMST": "TMST", "ARST": "ARST", "HNEG": "HNEG", "HEOG": "HEOG", "CLST": "CLST", "CDT": "CDT", "NZDT": "NZDT", "ChST": "ChST", "CLT": "CLT", "MEZ": "MEZ", "HEEG": "HEEG", "HKT": "HKT", "HKST": "HKST", "WEZ": "WEZ", "WESZ": "WESZ", "WAST": "WAST", "HNPMX": "HNPMX", "HAST": "HAST", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "HNPM": "HNPM", "WART": "WART", "EST": "EST", "SRT": "SRT", "SGT": "SGT", "AKST": "AKST", "JST": "JST", "UYST": "UYST", "PST": "PST", "BT": "BT", "VET": "VET", "WITA": "WITA", "ECT": "ECT", "ART": "ART", "HEPMX": "HEPMX", "BOT": "BOT", "∅∅∅": "∅∅∅", "IST": "IST", "LHST": "LHST", "MYT": "MYT", "AEST": "AEST", "HECU": "HECU", "HAT": "HAT", "HADT": "HADT", "AWST": "AWST", "AWDT": "AWDT", "TMT": "TMT", "CAT": "CAT", "OEZ": "OEZ", "COT": "COT", "GMT": "GMT", "ACST": "ACST", "HENOMX": "HENOMX", "COST": "COST", "AST": "AST", "OESZ": "OESZ", "SAST": "SAST", "AKDT": "AKDT", "GYT": "GYT", "MDT": "MDT", "NZST": "NZST", "LHDT": "LHDT", "ACWDT": "ACWDT", "WIT": "WIT", "HNOG": "HNOG", "WIB": "WIB", "HEPM": "HEPM", "ACWST": "ACWST", "MST": "MST"},
+ }
+ }
+ 
+@@ -186,7 +161,7 @@ func (ar *ar_KW) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_KW) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +171,7 @@ func (ar *ar_KW) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_KW) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +181,7 @@ func (ar *ar_KW) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_KW) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +227,13 @@ func (ar *ar_KW) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_KW' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_KW) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_KW' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_KW) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_KW'
+@@ -338,62 +241,7 @@ func (ar *ar_KW) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_KW'
+@@ -402,69 +250,7 @@ func (ar *ar_KW) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_KW'
+@@ -472,17 +258,6 @@ func (ar *ar_KW) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +266,6 @@ func (ar *ar_KW) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +274,6 @@ func (ar *ar_KW) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +282,6 @@ func (ar *ar_KW) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +290,6 @@ func (ar *ar_KW) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +298,6 @@ func (ar *ar_KW) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +306,6 @@ func (ar *ar_KW) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +314,5 @@ func (ar *ar_KW) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_LB/ar_LB.go b/ar_LB/ar_LB.go
+index 678cf2c..ab8aa88 100644
+--- a/ar_LB/ar_LB.go
++++ b/ar_LB/ar_LB.go
+@@ -10,70 +10,50 @@ import (
+ )
+ 
+ type ar_LB struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_LB' locale
+ func New() locales.Translator {
+ return &ar_LB{
+- locale: "ar_LB",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: ",",
+- group: ".",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
+- monthsNarrow: []string{"", "ك", "ش", "آ", "ن", "أ", "ح", "ت", "آ", "أ", "ت", "ت", "ك"},
+- monthsWide: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"CAT": "توقيت وسط أفريقيا", "WARST": "توقيت غرب الأرجنتين الصيفي", "COST": "توقيت كولومبيا الصيفي", "AST": "التوقيت الرسمي الأطلسي", "BT": "توقيت بوتان", "AEST": "توقيت شرق أستراليا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "IST": "توقيت الهند", "UYT": "توقيت أورغواي الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "ART": "توقيت الأرجنتين الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "JDT": "توقيت اليابان الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "HNCU": "توقيت كوبا الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "UYST": "توقيت أورغواي الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "CHAST": "توقيت تشاتام الرسمي", "GFT": "توقيت غايانا الفرنسية", "SGT": "توقيت سنغافورة", "HNT": "توقيت نيوفاوندلاند الرسمي", "WITA": "توقيت وسط إندونيسيا", "HEEG": "توقيت شرق غرينلاند الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "WIT": "توقيت شرق إندونيسيا", "HKT": "توقيت هونغ كونغ الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "SAST": "توقيت جنوب أفريقيا", "WART": "توقيت غرب الأرجنتين الرسمي", "GMT": "توقيت غرينتش", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "CLT": "توقيت شيلي الرسمي", "TMT": "توقيت تركمانستان الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "HECU": "توقيت كوبا الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "HADT": "توقيت هاواي ألوتيان الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "TMST": "توقيت تركمانستان الصيفي", "ChST": "توقيت تشامورو", "EAT": "توقيت شرق أفريقيا", "WESZ": "توقيت غرب أوروبا الصيفي", "ECT": "توقيت الإكوادور", "VET": "توقيت فنزويلا", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "WEZ": "توقيت غرب أوروبا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "∅∅∅": "توقيت الأمازون الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "SRT": "توقيت سورينام", "PDT": "توقيت المحيط الهادي الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "MEZ": "توقيت وسط أوروبا الرسمي", "MDT": "MDT", "GYT": "توقيت غيانا", "WIB": "توقيت غرب إندونيسيا", "CLST": "توقيت شيلي الصيفي", "BOT": "توقيت بوليفيا", "WAST": "توقيت غرب أفريقيا الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "COT": "توقيت كولومبيا الرسمي", "MST": "MST", "MYT": "توقيت ماليزيا", "AWST": "توقيت غرب أستراليا الرسمي", "JST": "توقيت اليابان الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي"},
++ locale: "ar_LB",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ decimal: ",",
++ group: ".",
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
++ monthsNarrow: []string{"", "ك", "ش", "آ", "ن", "أ", "ح", "ت", "آ", "أ", "ت", "ت", "ك"},
++ monthsWide: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
++ timezones: map[string]string{"GMT": "GMT", "ACST": "ACST", "HEEG": "HEEG", "AWST": "AWST", "CLST": "CLST", "CST": "CST", "NZDT": "NZDT", "ECT": "ECT", "HNT": "HNT", "EDT": "EDT", "BOT": "BOT", "ACWST": "ACWST", "WEZ": "WEZ", "WESZ": "WESZ", "ARST": "ARST", "TMT": "TMT", "ADT": "ADT", "SRT": "SRT", "HNNOMX": "HNNOMX", "∅∅∅": "∅∅∅", "PST": "PST", "AEST": "AEST", "WAT": "WAT", "HEPM": "HEPM", "ACWDT": "ACWDT", "HNCU": "HNCU", "OESZ": "OESZ", "AEDT": "AEDT", "EST": "EST", "HKT": "HKT", "HADT": "HADT", "COST": "COST", "ChST": "ChST", "SGT": "SGT", "HECU": "HECU", "WAST": "WAST", "WIT": "WIT", "LHST": "LHST", "UYT": "UYT", "IST": "IST", "HKST": "HKST", "ART": "ART", "CDT": "CDT", "AST": "AST", "LHDT": "LHDT", "MYT": "MYT", "UYST": "UYST", "HEOG": "HEOG", "CLT": "CLT", "WITA": "WITA", "GYT": "GYT", "VET": "VET", "AKDT": "AKDT", "OEZ": "OEZ", "SAST": "SAST", "CAT": "CAT", "HNEG": "HNEG", "CHADT": "CHADT", "BT": "BT", "HNPMX": "HNPMX", "GFT": "GFT", "HNOG": "HNOG", "HNPM": "HNPM", "CHAST": "CHAST", "PDT": "PDT", "MDT": "MDT", "WIB": "WIB", "HEPMX": "HEPMX", "WART": "WART", "MST": "MST", "HAST": "HAST", "ACDT": "ACDT", "HENOMX": "HENOMX", "JST": "JST", "HAT": "HAT", "WARST": "WARST", "COT": "COT", "MEZ": "MEZ", "MESZ": "MESZ", "AWDT": "AWDT", "JDT": "JDT", "AKST": "AKST", "TMST": "TMST", "NZST": "NZST", "EAT": "EAT"},
+ }
+ }
+ 
+@@ -252,79 +232,13 @@ func (ar *ar_LB) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_LB' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_LB) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_LB' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_LB) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 10
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_LB'
+@@ -332,58 +246,7 @@ func (ar *ar_LB) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_LB'
+@@ -392,65 +255,7 @@ func (ar *ar_LB) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_LB'
+@@ -458,17 +263,6 @@ func (ar *ar_LB) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -477,27 +271,6 @@ func (ar *ar_LB) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -506,17 +279,6 @@ func (ar *ar_LB) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -525,19 +287,6 @@ func (ar *ar_LB) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -546,28 +295,6 @@ func (ar *ar_LB) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -576,35 +303,6 @@ func (ar *ar_LB) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -613,40 +311,6 @@ func (ar *ar_LB) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -655,44 +319,5 @@ func (ar *ar_LB) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_LY/ar_LY.go b/ar_LY/ar_LY.go
+index f074810..20dd554 100644
+--- a/ar_LY/ar_LY.go
++++ b/ar_LY/ar_LY.go
+@@ -10,70 +10,49 @@ import (
+ )
+ 
+ type ar_LY struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_LY' locale
+ func New() locales.Translator {
+ return &ar_LY{
+- locale: "ar_LY",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: ",",
+- group: ".",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"", ""},
+- periodsNarrow: []string{"", ""},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"LHDT": "التوقيت الصيفي للورد هاو", "SAST": "توقيت جنوب أفريقيا", "COST": "توقيت كولومبيا الصيفي", "MDT": "MDT", "AST": "التوقيت الرسمي الأطلسي", "MYT": "توقيت ماليزيا", "TMST": "توقيت تركمانستان الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "SGT": "توقيت سنغافورة", "HECU": "توقيت كوبا الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "IST": "توقيت الهند", "JST": "توقيت اليابان الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "AKST": "التوقيت الرسمي لألاسكا", "HADT": "توقيت هاواي ألوتيان الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "CLST": "توقيت شيلي الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "HNCU": "توقيت كوبا الرسمي", "UYST": "توقيت أورغواي الصيفي", "TMT": "توقيت تركمانستان الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "BOT": "توقيت بوليفيا", "HEEG": "توقيت شرق غرينلاند الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "MST": "MST", "GYT": "توقيت غيانا", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "SRT": "توقيت سورينام", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "WITA": "توقيت وسط إندونيسيا", "HKT": "توقيت هونغ كونغ الرسمي", "CHAST": "توقيت تشاتام الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "WIT": "توقيت شرق إندونيسيا", "BT": "توقيت بوتان", "ARST": "توقيت الأرجنتين الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "JDT": "توقيت اليابان الصيفي", "ChST": "توقيت تشامورو", "WESZ": "توقيت غرب أوروبا الصيفي", "CLT": "توقيت شيلي الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "CHADT": "توقيت تشاتام الصيفي", "∅∅∅": "توقيت الأمازون الصيفي", "EAT": "توقيت شرق أفريقيا", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "HAST": "توقيت هاواي ألوتيان الرسمي", "ART": "توقيت الأرجنتين الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "ECT": "توقيت الإكوادور", "COT": "توقيت كولومبيا الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WIB": "توقيت غرب إندونيسيا", "VET": "توقيت فنزويلا", "HNT": "توقيت نيوفاوندلاند الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "GFT": "توقيت غايانا الفرنسية", "CAT": "توقيت وسط أفريقيا", "WART": "توقيت غرب الأرجنتين الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "GMT": "توقيت غرينتش", "UYT": "توقيت أورغواي الرسمي", "WEZ": "توقيت غرب أوروبا الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي"},
++ locale: "ar_LY",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ decimal: ",",
++ group: ".",
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"", ""},
++ periodsNarrow: []string{"", ""},
++ timezones: map[string]string{"MST": "MST", "AWST": "AWST", "CHAST": "CHAST", "WESZ": "WESZ", "WIT": "WIT", "COT": "COT", "CHADT": "CHADT", "WEZ": "WEZ", "CAT": "CAT", "WIB": "WIB", "WAT": "WAT", "WART": "WART", "ChST": "ChST", "WITA": "WITA", "BOT": "BOT", "HENOMX": "HENOMX", "LHDT": "LHDT", "AEST": "AEST", "UYT": "UYT", "HNPMX": "HNPMX", "HKST": "HKST", "ADT": "ADT", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "LHST": "LHST", "AKDT": "AKDT", "CLT": "CLT", "GMT": "GMT", "ARST": "ARST", "SRT": "SRT", "HNEG": "HNEG", "HEPM": "HEPM", "PDT": "PDT", "EST": "EST", "CLST": "CLST", "NZDT": "NZDT", "HAST": "HAST", "MEZ": "MEZ", "HNT": "HNT", "CDT": "CDT", "ART": "ART", "MESZ": "MESZ", "JST": "JST", "HNPM": "HNPM", "WARST": "WARST", "GYT": "GYT", "HNOG": "HNOG", "AWDT": "AWDT", "AEDT": "AEDT", "HEEG": "HEEG", "PST": "PST", "HNCU": "HNCU", "EDT": "EDT", "CST": "CST", "AST": "AST", "UYST": "UYST", "WAST": "WAST", "HAT": "HAT", "TMST": "TMST", "EAT": "EAT", "BT": "BT", "VET": "VET", "HECU": "HECU", "ACWDT": "ACWDT", "OESZ": "OESZ", "SAST": "SAST", "HADT": "HADT", "SGT": "SGT", "AKST": "AKST", "GFT": "GFT", "HKT": "HKT", "TMT": "TMT", "ECT": "ECT", "MYT": "MYT", "∅∅∅": "∅∅∅", "IST": "IST", "ACWST": "ACWST", "HEOG": "HEOG", "NZST": "NZST", "MDT": "MDT", "ACST": "ACST", "JDT": "JDT", "HEPMX": "HEPMX", "OEZ": "OEZ", "COST": "COST"},
+ }
+ }
+ 
+@@ -186,7 +165,7 @@ func (ar *ar_LY) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_LY) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +175,7 @@ func (ar *ar_LY) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_LY) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +185,7 @@ func (ar *ar_LY) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_LY) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,79 +231,13 @@ func (ar *ar_LY) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_LY' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_LY) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_LY' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_LY) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 10
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_LY'
+@@ -332,58 +245,7 @@ func (ar *ar_LY) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_LY'
+@@ -392,65 +254,7 @@ func (ar *ar_LY) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_LY'
+@@ -458,17 +262,6 @@ func (ar *ar_LY) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -477,27 +270,6 @@ func (ar *ar_LY) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -506,17 +278,6 @@ func (ar *ar_LY) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -525,19 +286,6 @@ func (ar *ar_LY) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -546,28 +294,6 @@ func (ar *ar_LY) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -576,35 +302,6 @@ func (ar *ar_LY) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -613,40 +310,6 @@ func (ar *ar_LY) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -655,44 +318,5 @@ func (ar *ar_LY) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_MA/ar_MA.go b/ar_MA/ar_MA.go
+index 73bc6e8..318d52a 100644
+--- a/ar_MA/ar_MA.go
++++ b/ar_MA/ar_MA.go
+@@ -10,70 +10,50 @@ import (
+ )
+ 
+ type ar_MA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_MA' locale
+ func New() locales.Translator {
+ return &ar_MA{
+- locale: "ar_MA",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: ",",
+- group: ".",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "ماي", "يونيو", "يوليوز", "غشت", "شتنبر", "أكتوبر", "نونبر", "دجنبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "م", "ن", "ل", "غ", "ش", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "ماي", "يونيو", "يوليوز", "غشت", "شتنبر", "أكتوبر", "نونبر", "دجنبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"WEZ": "توقيت غرب أوروبا الرسمي", "EAT": "توقيت شرق أفريقيا", "WAT": "توقيت غرب أفريقيا الرسمي", "GYT": "توقيت غيانا", "AKST": "التوقيت الرسمي لألاسكا", "AWST": "توقيت غرب أستراليا الرسمي", "CHAST": "توقيت تشاتام الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "WESZ": "توقيت غرب أوروبا الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "TMST": "توقيت تركمانستان الصيفي", "SGT": "توقيت سنغافورة", "HNOG": "توقيت غرب غرينلاند الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "WITA": "توقيت وسط إندونيسيا", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "ECT": "توقيت الإكوادور", "AEDT": "توقيت شرق أستراليا الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "CAT": "توقيت وسط أفريقيا", "HADT": "توقيت هاواي ألوتيان الصيفي", "VET": "توقيت فنزويلا", "HKST": "توقيت هونغ كونغ الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "CLT": "توقيت شيلي الرسمي", "GFT": "توقيت غايانا الفرنسية", "OESZ": "توقيت شرق أوروبا الصيفي", "COST": "توقيت كولومبيا الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "TMT": "توقيت تركمانستان الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "COT": "توقيت كولومبيا الرسمي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "UYT": "توقيت أورغواي الرسمي", "WIT": "توقيت شرق إندونيسيا", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "MDT": "MDT", "HNT": "توقيت نيوفاوندلاند الرسمي", "ChST": "توقيت تشامورو", "WAST": "توقيت غرب أفريقيا الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "ADT": "التوقيت الصيفي الأطلسي", "WIB": "توقيت غرب إندونيسيا", "SRT": "توقيت سورينام", "LHST": "توقيت لورد هاو الرسمي", "CLST": "توقيت شيلي الصيفي", "BOT": "توقيت بوليفيا", "OEZ": "توقيت شرق أوروبا الرسمي", "GMT": "توقيت غرينتش", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HKT": "توقيت هونغ كونغ الرسمي", "∅∅∅": "توقيت الأمازون الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "MST": "MST", "IST": "توقيت الهند", "JST": "توقيت اليابان الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "SAST": "توقيت جنوب أفريقيا", "AST": "التوقيت الرسمي الأطلسي", "UYST": "توقيت أورغواي الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "BT": "توقيت بوتان", "ARST": "توقيت الأرجنتين الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "NZST": "توقيت نيوزيلندا الرسمي", "JDT": "توقيت اليابان الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "MYT": "توقيت ماليزيا", "ART": "توقيت الأرجنتين الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "HNCU": "توقيت كوبا الرسمي", "HECU": "توقيت كوبا الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية"},
++ locale: "ar_MA",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ decimal: ",",
++ group: ".",
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "ماي", "يونيو", "يوليوز", "غشت", "شتنبر", "أكتوبر", "نونبر", "دجنبر"},
++ monthsNarrow: []string{"", "ي", "ف", "م", "أ", "م", "ن", "ل", "غ", "ش", "ك", "ب", "د"},
++ monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "ماي", "يونيو", "يوليوز", "غشت", "شتنبر", "أكتوبر", "نونبر", "دجنبر"},
++ timezones: map[string]string{"HEPM": "HEPM", "LHDT": "LHDT", "AKDT": "AKDT", "OEZ": "OEZ", "WART": "WART", "NZST": "NZST", "PST": "PST", "COST": "COST", "HENOMX": "HENOMX", "JDT": "JDT", "TMST": "TMST", "AST": "AST", "HAST": "HAST", "MEZ": "MEZ", "HEEG": "HEEG", "UYST": "UYST", "HNOG": "HNOG", "EAT": "EAT", "HNEG": "HNEG", "HKST": "HKST", "JST": "JST", "HECU": "HECU", "WEZ": "WEZ", "TMT": "TMT", "EDT": "EDT", "WIT": "WIT", "COT": "COT", "EST": "EST", "CLT": "CLT", "ACWST": "ACWST", "AEDT": "AEDT", "WESZ": "WESZ", "WAT": "WAT", "ADT": "ADT", "HEPMX": "HEPMX", "SGT": "SGT", "ECT": "ECT", "MDT": "MDT", "GYT": "GYT", "CAT": "CAT", "NZDT": "NZDT", "CST": "CST", "AEST": "AEST", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "GFT": "GFT", "HADT": "HADT", "HNNOMX": "HNNOMX", "MYT": "MYT", "AWST": "AWST", "WAST": "WAST", "HEOG": "HEOG", "ARST": "ARST", "ACWDT": "ACWDT", "AKST": "AKST", "HKT": "HKT", "WIB": "WIB", "HAT": "HAT", "ART": "ART", "BOT": "BOT", "HNPM": "HNPM", "HNT": "HNT", "SAST": "SAST", "WITA": "WITA", "CDT": "CDT", "BT": "BT", "VET": "VET", "HNPMX": "HNPMX", "OESZ": "OESZ", "GMT": "GMT", "SRT": "SRT", "AWDT": "AWDT", "CHAST": "CHAST", "MST": "MST", "ACST": "ACST", "LHST": "LHST", "WARST": "WARST", "CLST": "CLST", "ChST": "ChST", "ACDT": "ACDT", "CHADT": "CHADT", "IST": "IST", "PDT": "PDT", "MESZ": "MESZ", "UYT": "UYT"},
+ }
+ }
+ 
+@@ -252,79 +232,13 @@ func (ar *ar_MA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_MA' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_MA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_MA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_MA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 10
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_MA'
+@@ -332,58 +246,7 @@ func (ar *ar_MA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_MA'
+@@ -392,65 +255,7 @@ func (ar *ar_MA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_MA'
+@@ -458,17 +263,6 @@ func (ar *ar_MA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -477,27 +271,6 @@ func (ar *ar_MA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -506,17 +279,6 @@ func (ar *ar_MA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -525,19 +287,6 @@ func (ar *ar_MA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/ar_MR/ar_MR.go b/ar_MR/ar_MR.go
+index 05b33fb..8e03c30 100644
+--- a/ar_MR/ar_MR.go
++++ b/ar_MR/ar_MR.go
+@@ -10,70 +10,50 @@ import (
+ )
+ 
+ type ar_MR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_MR' locale
+ func New() locales.Translator {
+ return &ar_MR{
+- locale: "ar_MR",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: ",",
+- group: ".",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "إبريل", "مايو", "يونيو", "يوليو", "أغشت", "شتمبر", "أكتوبر", "نوفمبر", "دجمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "إ", "و", "ن", "ل", "غ", "ش", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "إبريل", "مايو", "يونيو", "يوليو", "أغشت", "شتمبر", "أكتوبر", "نوفمبر", "دجمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"HKST": "توقيت هونغ كونغ الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "JST": "توقيت اليابان الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "ADT": "التوقيت الصيفي الأطلسي", "MYT": "توقيت ماليزيا", "UYST": "توقيت أورغواي الصيفي", "ART": "توقيت الأرجنتين الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "CLT": "توقيت شيلي الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "HNCU": "توقيت كوبا الرسمي", "HECU": "توقيت كوبا الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "CHAST": "توقيت تشاتام الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "TMT": "توقيت تركمانستان الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "JDT": "توقيت اليابان الصيفي", "SGT": "توقيت سنغافورة", "WEZ": "توقيت غرب أوروبا الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "IST": "توقيت الهند", "WAT": "توقيت غرب أفريقيا الرسمي", "ECT": "توقيت الإكوادور", "COT": "توقيت كولومبيا الرسمي", "HAST": "توقيت هاواي ألوتيان الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "ChST": "توقيت تشامورو", "CAT": "توقيت وسط أفريقيا", "MDT": "MDT", "AEDT": "توقيت شرق أستراليا الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WIT": "توقيت شرق إندونيسيا", "WART": "توقيت غرب الأرجنتين الرسمي", "GMT": "توقيت غرينتش", "HAT": "توقيت نيوفاوندلاند الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "LHST": "توقيت لورد هاو الرسمي", "CHADT": "توقيت تشاتام الصيفي", "GFT": "توقيت غايانا الفرنسية", "AST": "التوقيت الرسمي الأطلسي", "SAST": "توقيت جنوب أفريقيا", "∅∅∅": "توقيت الأمازون الصيفي", "TMST": "توقيت تركمانستان الصيفي", "SRT": "توقيت سورينام", "COST": "توقيت كولومبيا الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "EAT": "توقيت شرق أفريقيا", "AKDT": "توقيت ألاسكا الصيفي", "CLST": "توقيت شيلي الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "VET": "توقيت فنزويلا", "BT": "توقيت بوتان", "AWDT": "توقيت غرب أستراليا الصيفي", "BOT": "توقيت بوليفيا", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "WIB": "توقيت غرب إندونيسيا", "PST": "توقيت المحيط الهادي الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "WESZ": "توقيت غرب أوروبا الصيفي", "WITA": "توقيت وسط إندونيسيا", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "HADT": "توقيت هاواي ألوتيان الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "MST": "MST", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "GYT": "توقيت غيانا", "UYT": "توقيت أورغواي الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي"},
++ locale: "ar_MR",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ decimal: ",",
++ group: ".",
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "إبريل", "مايو", "يونيو", "يوليو", "أغشت", "شتمبر", "أكتوبر", "نوفمبر", "دجمبر"},
++ monthsNarrow: []string{"", "ي", "ف", "م", "إ", "و", "ن", "ل", "غ", "ش", "ك", "ب", "د"},
++ monthsWide: []string{"", "يناير", "فبراير", "مارس", "إبريل", "مايو", "يونيو", "يوليو", "أغشت", "شتمبر", "أكتوبر", "نوفمبر", "دجمبر"},
++ timezones: map[string]string{"HEPM": "HEPM", "WIT": "WIT", "MST": "MST", "BOT": "BOT", "AKST": "AKST", "GFT": "GFT", "HNOG": "HNOG", "TMST": "TMST", "CLT": "CLT", "CLST": "CLST", "NZST": "NZST", "AWDT": "AWDT", "LHST": "LHST", "IST": "IST", "ACWDT": "ACWDT", "AKDT": "AKDT", "SAST": "SAST", "COT": "COT", "COST": "COST", "HKT": "HKT", "CDT": "CDT", "HAST": "HAST", "BT": "BT", "ACWST": "ACWST", "CHADT": "CHADT", "UYST": "UYST", "GYT": "GYT", "ADT": "ADT", "MESZ": "MESZ", "CHAST": "CHAST", "VET": "VET", "HNEG": "HNEG", "PST": "PST", "AEST": "AEST", "AEDT": "AEDT", "OESZ": "OESZ", "EST": "EST", "EDT": "EDT", "WIB": "WIB", "ACST": "ACST", "MYT": "MYT", "PDT": "PDT", "UYT": "UYT", "WESZ": "WESZ", "SGT": "SGT", "HNT": "HNT", "HEOG": "HEOG", "ChST": "ChST", "ACDT": "ACDT", "AWST": "AWST", "WARST": "WARST", "CST": "CST", "ARST": "ARST", "EAT": "EAT", "HADT": "HADT", "HECU": "HECU", "WAST": "WAST", "CAT": "CAT", "AST": "AST", "SRT": "SRT", "MEZ": "MEZ", "JDT": "JDT", "HAT": "HAT", "WART": "WART", "HNCU": "HNCU", "∅∅∅": "∅∅∅", "ECT": "ECT", "GMT": "GMT", "HEEG": "HEEG", "HENOMX": "HENOMX", "LHDT": "LHDT", "HKST": "HKST", "NZDT": "NZDT", "ART": "ART", "WEZ": "WEZ", "WAT": "WAT", "TMT": "TMT", "WITA": "WITA", "HEPMX": "HEPMX", "MDT": "MDT", "HNPMX": "HNPMX", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "JST": "JST"},
+ }
+ }
+ 
+@@ -252,79 +232,13 @@ func (ar *ar_MR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_MR' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_MR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_MR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_MR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 10
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_MR'
+@@ -332,58 +246,7 @@ func (ar *ar_MR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_MR'
+@@ -392,65 +255,7 @@ func (ar *ar_MR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_MR'
+@@ -458,17 +263,6 @@ func (ar *ar_MR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -477,27 +271,6 @@ func (ar *ar_MR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -506,17 +279,6 @@ func (ar *ar_MR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -525,19 +287,6 @@ func (ar *ar_MR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -546,28 +295,6 @@ func (ar *ar_MR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -576,35 +303,6 @@ func (ar *ar_MR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -613,40 +311,6 @@ func (ar *ar_MR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -655,44 +319,5 @@ func (ar *ar_MR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_OM/ar_OM.go b/ar_OM/ar_OM.go
+index 2bea560..791e4d0 100644
+--- a/ar_OM/ar_OM.go
++++ b/ar_OM/ar_OM.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ar_OM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_OM' locale
+ func New() locales.Translator {
+ return &ar_OM{
+- locale: "ar_OM",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"VET": "توقيت فنزويلا", "PST": "توقيت المحيط الهادي الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "SAST": "توقيت جنوب أفريقيا", "WART": "توقيت غرب الأرجنتين الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "GMT": "توقيت غرينتش", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "HEOG": "توقيت غرب غرينلاند الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "ARST": "توقيت الأرجنتين الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "JDT": "توقيت اليابان الصيفي", "EAT": "توقيت شرق أفريقيا", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "UYST": "توقيت أورغواي الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "ChST": "توقيت تشامورو", "BOT": "توقيت بوليفيا", "WAT": "توقيت غرب أفريقيا الرسمي", "GFT": "توقيت غايانا الفرنسية", "OEZ": "توقيت شرق أوروبا الرسمي", "WIB": "توقيت غرب إندونيسيا", "PDT": "توقيت المحيط الهادي الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "∅∅∅": "توقيت الأمازون الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "CAT": "توقيت وسط أفريقيا", "HECU": "توقيت كوبا الصيفي", "MST": "MST", "SRT": "توقيت سورينام", "IST": "توقيت الهند", "AKST": "التوقيت الرسمي لألاسكا", "ADT": "التوقيت الصيفي الأطلسي", "WEZ": "توقيت غرب أوروبا الرسمي", "ART": "توقيت الأرجنتين الرسمي", "WITA": "توقيت وسط إندونيسيا", "TMST": "توقيت تركمانستان الصيفي", "ECT": "توقيت الإكوادور", "WARST": "توقيت غرب الأرجنتين الصيفي", "HNCU": "توقيت كوبا الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "AEST": "توقيت شرق أستراليا الرسمي", "CLT": "توقيت شيلي الرسمي", "CLST": "توقيت شيلي الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "MYT": "توقيت ماليزيا", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "CHADT": "توقيت تشاتام الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "GYT": "توقيت غيانا", "HADT": "توقيت هاواي ألوتيان الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "BT": "توقيت بوتان", "TMT": "توقيت تركمانستان الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "COT": "توقيت كولومبيا الرسمي", "COST": "توقيت كولومبيا الصيفي", "SGT": "توقيت سنغافورة", "MDT": "MDT", "HAT": "توقيت نيوفاوندلاند الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "CHAST": "توقيت تشاتام الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "JST": "توقيت اليابان الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "UYT": "توقيت أورغواي الرسمي", "AST": "التوقيت الرسمي الأطلسي", "WIT": "توقيت شرق إندونيسيا", "AWDT": "توقيت غرب أستراليا الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي"},
++ locale: "ar_OM",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"PDT": "PDT", "SAST": "SAST", "WITA": "WITA", "WESZ": "WESZ", "HEOG": "HEOG", "HKT": "HKT", "NZST": "NZST", "WIB": "WIB", "AWST": "AWST", "AEST": "AEST", "∅∅∅": "∅∅∅", "EDT": "EDT", "CST": "CST", "ADT": "ADT", "HADT": "HADT", "ACDT": "ACDT", "ACWST": "ACWST", "IST": "IST", "HNT": "HNT", "ARST": "ARST", "AKST": "AKST", "OEZ": "OEZ", "ChST": "ChST", "VET": "VET", "HAT": "HAT", "COT": "COT", "HKST": "HKST", "LHDT": "LHDT", "JDT": "JDT", "UYT": "UYT", "COST": "COST", "HNOG": "HNOG", "TMT": "TMT", "SGT": "SGT", "HEPMX": "HEPMX", "AKDT": "AKDT", "GYT": "GYT", "BOT": "BOT", "MESZ": "MESZ", "HNPM": "HNPM", "JST": "JST", "OESZ": "OESZ", "AWDT": "AWDT", "AEDT": "AEDT", "WIT": "WIT", "GFT": "GFT", "CLST": "CLST", "MST": "MST", "NZDT": "NZDT", "ART": "ART", "BT": "BT", "HNCU": "HNCU", "HNPMX": "HNPMX", "AST": "AST", "HNEG": "HNEG", "MDT": "MDT", "ECT": "ECT", "ACST": "ACST", "HENOMX": "HENOMX", "LHST": "LHST", "WART": "WART", "CAT": "CAT", "CLT": "CLT", "HAST": "HAST", "EAT": "EAT", "HECU": "HECU", "WARST": "WARST", "EST": "EST", "TMST": "TMST", "HNNOMX": "HNNOMX", "CHADT": "CHADT", "WEZ": "WEZ", "WAT": "WAT", "MYT": "MYT", "ACWDT": "ACWDT", "PST": "PST", "UYST": "UYST", "MEZ": "MEZ", "CDT": "CDT", "GMT": "GMT", "SRT": "SRT", "HEEG": "HEEG", "HEPM": "HEPM", "CHAST": "CHAST", "WAST": "WAST"},
+ }
+ }
+ 
+@@ -186,7 +161,7 @@ func (ar *ar_OM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_OM) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +171,7 @@ func (ar *ar_OM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_OM) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +181,7 @@ func (ar *ar_OM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_OM) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +227,13 @@ func (ar *ar_OM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_OM' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_OM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_OM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_OM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_OM'
+@@ -338,62 +241,7 @@ func (ar *ar_OM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_OM'
+@@ -402,69 +250,7 @@ func (ar *ar_OM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_OM'
+@@ -472,17 +258,6 @@ func (ar *ar_OM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +266,6 @@ func (ar *ar_OM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +274,6 @@ func (ar *ar_OM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +282,6 @@ func (ar *ar_OM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +290,6 @@ func (ar *ar_OM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +298,6 @@ func (ar *ar_OM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +306,6 @@ func (ar *ar_OM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +314,5 @@ func (ar *ar_OM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_PS/ar_PS.go b/ar_PS/ar_PS.go
+index 67d062b..f09d696 100644
+--- a/ar_PS/ar_PS.go
++++ b/ar_PS/ar_PS.go
+@@ -10,70 +10,48 @@ import (
+ )
+ 
+ type ar_PS struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_PS' locale
+ func New() locales.Translator {
+ return &ar_PS{
+- locale: "ar_PS",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
+- monthsNarrow: []string{"", "ك", "ش", "آ", "ن", "أ", "ح", "ت", "آ", "أ", "ت", "ت", "ك"},
+- monthsWide: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"WESZ": "توقيت غرب أوروبا الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "AEST": "توقيت شرق أستراليا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "CHADT": "توقيت تشاتام الصيفي", "BOT": "توقيت بوليفيا", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "OESZ": "توقيت شرق أوروبا الصيفي", "MDT": "MDT", "PST": "توقيت المحيط الهادي الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "CLT": "توقيت شيلي الرسمي", "JST": "توقيت اليابان الرسمي", "ChST": "توقيت تشامورو", "HEOG": "توقيت غرب غرينلاند الصيفي", "CAT": "توقيت وسط أفريقيا", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "AKDT": "توقيت ألاسكا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "GMT": "توقيت غرينتش", "HECU": "توقيت كوبا الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "AKST": "التوقيت الرسمي لألاسكا", "MYT": "توقيت ماليزيا", "WEZ": "توقيت غرب أوروبا الرسمي", "TMT": "توقيت تركمانستان الرسمي", "COST": "توقيت كولومبيا الصيفي", "UYT": "توقيت أورغواي الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WIB": "توقيت غرب إندونيسيا", "HEEG": "توقيت شرق غرينلاند الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "SGT": "توقيت سنغافورة", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "HAST": "توقيت هاواي ألوتيان الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "GFT": "توقيت غايانا الفرنسية", "WAT": "توقيت غرب أفريقيا الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "AST": "التوقيت الرسمي الأطلسي", "GYT": "توقيت غيانا", "PDT": "توقيت المحيط الهادي الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "LHST": "توقيت لورد هاو الرسمي", "CHAST": "توقيت تشاتام الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "SRT": "توقيت سورينام", "WITA": "توقيت وسط إندونيسيا", "MST": "MST", "WIT": "توقيت شرق إندونيسيا", "AWST": "توقيت غرب أستراليا الرسمي", "IST": "توقيت الهند", "EAT": "توقيت شرق أفريقيا", "ECT": "توقيت الإكوادور", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "VET": "توقيت فنزويلا", "HKT": "توقيت هونغ كونغ الرسمي", "CLST": "توقيت شيلي الصيفي", "COT": "توقيت كولومبيا الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "ADT": "التوقيت الصيفي الأطلسي", "ART": "توقيت الأرجنتين الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "TMST": "توقيت تركمانستان الصيفي", "UYST": "توقيت أورغواي الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "SAST": "توقيت جنوب أفريقيا", "∅∅∅": "توقيت الأمازون الصيفي", "HNCU": "توقيت كوبا الرسمي", "BT": "توقيت بوتان", "JDT": "توقيت اليابان الصيفي"},
++ locale: "ar_PS",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
++ monthsNarrow: []string{"", "ك", "ش", "آ", "ن", "أ", "ح", "ت", "آ", "أ", "ت", "ت", "ك"},
++ monthsWide: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
++ timezones: map[string]string{"COST": "COST", "CLT": "CLT", "MST": "MST", "ACST": "ACST", "UYST": "UYST", "HAT": "HAT", "EAT": "EAT", "HAST": "HAST", "LHDT": "LHDT", "SGT": "SGT", "HNOG": "HNOG", "WARST": "WARST", "HEOG": "HEOG", "HNNOMX": "HNNOMX", "JDT": "JDT", "GFT": "GFT", "HKT": "HKT", "NZST": "NZST", "JST": "JST", "LHST": "LHST", "WESZ": "WESZ", "CHADT": "CHADT", "IST": "IST", "HNPMX": "HNPMX", "COT": "COT", "AST": "AST", "HEEG": "HEEG", "MEZ": "MEZ", "HNPM": "HNPM", "ADT": "ADT", "ACWDT": "ACWDT", "OESZ": "OESZ", "CST": "CST", "WAST": "WAST", "ACDT": "ACDT", "AEDT": "AEDT", "HECU": "HECU", "ART": "ART", "HENOMX": "HENOMX", "GYT": "GYT", "WITA": "WITA", "AWST": "AWST", "EST": "EST", "BOT": "BOT", "HADT": "HADT", "WAT": "WAT", "SAST": "SAST", "CLST": "CLST", "AEST": "AEST", "HEPMX": "HEPMX", "HKST": "HKST", "NZDT": "NZDT", "ECT": "ECT", "MYT": "MYT", "AWDT": "AWDT", "ACWST": "ACWST", "SRT": "SRT", "PST": "PST", "WIT": "WIT", "HNT": "HNT", "TMT": "TMT", "HNEG": "HNEG", "MESZ": "MESZ", "HEPM": "HEPM", "VET": "VET", "HNCU": "HNCU", "WEZ": "WEZ", "AKST": "AKST", "WIB": "WIB", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "PDT": "PDT", "CAT": "CAT", "CDT": "CDT", "MDT": "MDT", "ChST": "ChST", "GMT": "GMT", "BT": "BT", "AKDT": "AKDT", "TMST": "TMST", "OEZ": "OEZ", "ARST": "ARST", "UYT": "UYT", "WART": "WART", "EDT": "EDT"},
+ }
+ }
+ 
+@@ -252,85 +230,13 @@ func (ar *ar_PS) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_PS' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_PS) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_PS' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_PS) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_PS'
+@@ -338,62 +244,7 @@ func (ar *ar_PS) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_PS'
+@@ -402,69 +253,7 @@ func (ar *ar_PS) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_PS'
+@@ -472,17 +261,6 @@ func (ar *ar_PS) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +269,6 @@ func (ar *ar_PS) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +277,6 @@ func (ar *ar_PS) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +285,6 @@ func (ar *ar_PS) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +293,6 @@ func (ar *ar_PS) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +301,6 @@ func (ar *ar_PS) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +309,6 @@ func (ar *ar_PS) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +317,5 @@ func (ar *ar_PS) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_QA/ar_QA.go b/ar_QA/ar_QA.go
+index 675f1a3..780da81 100644
+--- a/ar_QA/ar_QA.go
++++ b/ar_QA/ar_QA.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ar_QA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_QA' locale
+ func New() locales.Translator {
+ return &ar_QA{
+- locale: "ar_QA",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"CAT": "توقيت وسط أفريقيا", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "BT": "توقيت بوتان", "HKST": "توقيت هونغ كونغ الصيفي", "WITA": "توقيت وسط إندونيسيا", "CLST": "توقيت شيلي الصيفي", "EAT": "توقيت شرق أفريقيا", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WIB": "توقيت غرب إندونيسيا", "HNT": "توقيت نيوفاوندلاند الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "MESZ": "توقيت وسط أوروبا الصيفي", "TMST": "توقيت تركمانستان الصيفي", "VET": "توقيت فنزويلا", "HEEG": "توقيت شرق غرينلاند الصيفي", "AST": "التوقيت الرسمي الأطلسي", "SRT": "توقيت سورينام", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "COST": "توقيت كولومبيا الصيفي", "SGT": "توقيت سنغافورة", "GMT": "توقيت غرينتش", "NZDT": "توقيت نيوزيلندا الصيفي", "CHAST": "توقيت تشاتام الرسمي", "IST": "توقيت الهند", "JDT": "توقيت اليابان الصيفي", "WESZ": "توقيت غرب أوروبا الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "MDT": "MDT", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "AKDT": "توقيت ألاسكا الصيفي", "UYST": "توقيت أورغواي الصيفي", "MST": "MST", "AKST": "التوقيت الرسمي لألاسكا", "ART": "توقيت الأرجنتين الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "LHST": "توقيت لورد هاو الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "COT": "توقيت كولومبيا الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "ADT": "التوقيت الصيفي الأطلسي", "GYT": "توقيت غيانا", "MEZ": "توقيت وسط أوروبا الرسمي", "∅∅∅": "توقيت الأمازون الصيفي", "TMT": "توقيت تركمانستان الرسمي", "ChST": "توقيت تشامورو", "HAST": "توقيت هاواي ألوتيان الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "BOT": "توقيت بوليفيا", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HADT": "توقيت هاواي ألوتيان الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "HECU": "توقيت كوبا الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "GFT": "توقيت غايانا الفرنسية", "WIT": "توقيت شرق إندونيسيا", "SAST": "توقيت جنوب أفريقيا", "JST": "توقيت اليابان الرسمي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "ECT": "توقيت الإكوادور", "WART": "توقيت غرب الأرجنتين الرسمي", "UYT": "توقيت أورغواي الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "CHADT": "توقيت تشاتام الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "CLT": "توقيت شيلي الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HNCU": "توقيت كوبا الرسمي", "MYT": "توقيت ماليزيا"},
++ locale: "ar_QA",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SRT": "SRT", "PST": "PST", "CHADT": "CHADT", "OEZ": "OEZ", "WART": "WART", "WARST": "WARST", "NZST": "NZST", "AWDT": "AWDT", "HEOG": "HEOG", "TMST": "TMST", "ChST": "ChST", "UYT": "UYT", "HNCU": "HNCU", "HNPMX": "HNPMX", "NZDT": "NZDT", "ART": "ART", "HADT": "HADT", "ACDT": "ACDT", "AEDT": "AEDT", "GFT": "GFT", "ECT": "ECT", "MESZ": "MESZ", "MST": "MST", "MDT": "MDT", "WIB": "WIB", "BOT": "BOT", "MEZ": "MEZ", "AWST": "AWST", "LHDT": "LHDT", "HEPM": "HEPM", "AST": "AST", "EAT": "EAT", "JDT": "JDT", "IST": "IST", "AEST": "AEST", "COST": "COST", "HNOG": "HNOG", "∅∅∅": "∅∅∅", "HKST": "HKST", "CLST": "CLST", "WITA": "WITA", "WESZ": "WESZ", "HKT": "HKT", "ACST": "ACST", "BT": "BT", "AKST": "AKST", "ADT": "ADT", "GMT": "GMT", "TMT": "TMT", "CLT": "CLT", "HNEG": "HNEG", "HENOMX": "HENOMX", "WEZ": "WEZ", "AKDT": "AKDT", "OESZ": "OESZ", "ARST": "ARST", "PDT": "PDT", "ACWDT": "ACWDT", "UYST": "UYST", "EST": "EST", "CDT": "CDT", "HNPM": "HNPM", "JST": "JST", "CHAST": "CHAST", "SGT": "SGT", "VET": "VET", "WAST": "WAST", "HAT": "HAT", "CST": "CST", "HAST": "HAST", "HNNOMX": "HNNOMX", "HECU": "HECU", "HNT": "HNT", "COT": "COT", "CAT": "CAT", "HEEG": "HEEG", "LHST": "LHST", "ACWST": "ACWST", "HEPMX": "HEPMX", "WIT": "WIT", "SAST": "SAST", "GYT": "GYT", "EDT": "EDT", "MYT": "MYT", "WAT": "WAT"},
+ }
+ }
+ 
+@@ -186,7 +161,7 @@ func (ar *ar_QA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_QA) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +171,7 @@ func (ar *ar_QA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_QA) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +181,7 @@ func (ar *ar_QA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_QA) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +227,13 @@ func (ar *ar_QA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_QA' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_QA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_QA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_QA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_QA'
+@@ -338,62 +241,7 @@ func (ar *ar_QA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_QA'
+@@ -402,69 +250,7 @@ func (ar *ar_QA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_QA'
+@@ -472,17 +258,6 @@ func (ar *ar_QA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +266,6 @@ func (ar *ar_QA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +274,6 @@ func (ar *ar_QA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +282,6 @@ func (ar *ar_QA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +290,6 @@ func (ar *ar_QA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +298,6 @@ func (ar *ar_QA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +306,6 @@ func (ar *ar_QA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +314,5 @@ func (ar *ar_QA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_SA/ar_SA.go b/ar_SA/ar_SA.go
+index d04c8e3..056e1ea 100644
+--- a/ar_SA/ar_SA.go
++++ b/ar_SA/ar_SA.go
+@@ -10,70 +10,48 @@ import (
+ )
+ 
+ type ar_SA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_SA' locale
+ func New() locales.Translator {
+ return &ar_SA{
+- locale: "ar_SA",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"", ""},
+- periodsNarrow: []string{"", ""},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"AWDT": "توقيت غرب أستراليا الصيفي", "EAT": "توقيت شرق أفريقيا", "WART": "توقيت غرب الأرجنتين الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "GYT": "توقيت غيانا", "LHDT": "التوقيت الصيفي للورد هاو", "MDT": "MDT", "AKST": "التوقيت الرسمي لألاسكا", "MYT": "توقيت ماليزيا", "HNT": "توقيت نيوفاوندلاند الرسمي", "ChST": "توقيت تشامورو", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "OESZ": "توقيت شرق أوروبا الصيفي", "COST": "توقيت كولومبيا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "TMT": "توقيت تركمانستان الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "CLST": "توقيت شيلي الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "VET": "توقيت فنزويلا", "SRT": "توقيت سورينام", "HAST": "توقيت هاواي ألوتيان الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "ART": "توقيت الأرجنتين الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "SGT": "توقيت سنغافورة", "HNCU": "توقيت كوبا الرسمي", "MST": "MST", "AST": "التوقيت الرسمي الأطلسي", "WITA": "توقيت وسط إندونيسيا", "AEST": "توقيت شرق أستراليا الرسمي", "HADT": "توقيت هاواي ألوتيان الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "JDT": "توقيت اليابان الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "HAT": "توقيت نيوفاوندلاند الصيفي", "∅∅∅": "توقيت بيرو الصيفي", "GMT": "توقيت غرينتش", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "IST": "توقيت الهند", "JST": "توقيت اليابان الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HECU": "توقيت كوبا الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "CHAST": "توقيت تشاتام الرسمي", "WIT": "توقيت شرق إندونيسيا", "WEZ": "توقيت غرب أوروبا الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "BOT": "توقيت بوليفيا", "WAST": "توقيت غرب أفريقيا الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "UYST": "توقيت أورغواي الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "TMST": "توقيت تركمانستان الصيفي", "ECT": "توقيت الإكوادور", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "UYT": "توقيت أورغواي الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "GFT": "توقيت غايانا الفرنسية", "CAT": "توقيت وسط أفريقيا", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "CLT": "توقيت شيلي الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "COT": "توقيت كولومبيا الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "SAST": "توقيت جنوب أفريقيا", "WAT": "توقيت غرب أفريقيا الرسمي", "AKDT": "توقيت ألاسكا الصيفي", "WIB": "توقيت غرب إندونيسيا", "BT": "توقيت بوتان"},
++ locale: "ar_SA",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ percent: "٪",
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"", ""},
++ periodsNarrow: []string{"", ""},
++ timezones: map[string]string{"CLT": "CLT", "ADT": "ADT", "MEZ": "MEZ", "AWST": "AWST", "LHDT": "LHDT", "IST": "IST", "WESZ": "WESZ", "HNCU": "HNCU", "ART": "ART", "ACDT": "ACDT", "HNPMX": "HNPMX", "HNOG": "HNOG", "BOT": "BOT", "ACWST": "ACWST", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "CAT": "CAT", "NZST": "NZST", "HEOG": "HEOG", "SGT": "SGT", "HNPM": "HNPM", "PST": "PST", "UYST": "UYST", "EST": "EST", "MDT": "MDT", "HENOMX": "HENOMX", "AWDT": "AWDT", "MYT": "MYT", "WARST": "WARST", "WIT": "WIT", "SAST": "SAST", "HKT": "HKT", "TMT": "TMT", "AST": "AST", "ChST": "ChST", "AEST": "AEST", "HECU": "HECU", "WAST": "WAST", "AKDT": "AKDT", "TMST": "TMST", "WITA": "WITA", "HEPM": "HEPM", "PDT": "PDT", "AKST": "AKST", "COT": "COT", "HNNOMX": "HNNOMX", "OESZ": "OESZ", "HNT": "HNT", "CLST": "CLST", "EAT": "EAT", "LHST": "LHST", "UYT": "UYT", "WEZ": "WEZ", "HEPMX": "HEPMX", "WART": "WART", "CHADT": "CHADT", "ECT": "ECT", "HAST": "HAST", "HNEG": "HNEG", "HEEG": "HEEG", "JST": "JST", "ACWDT": "ACWDT", "CHAST": "CHAST", "VET": "VET", "CDT": "CDT", "ARST": "ARST", "OEZ": "OEZ", "GFT": "GFT", "EDT": "EDT", "COST": "COST", "CST": "CST", "NZDT": "NZDT", "GMT": "GMT", "HADT": "HADT", "MESZ": "MESZ", "ACST": "ACST", "GYT": "GYT", "HKST": "HKST", "MST": "MST", "WIB": "WIB", "SRT": "SRT", "JDT": "JDT", "BT": "BT", "WAT": "WAT", "HAT": "HAT"},
+ }
+ }
+ 
+@@ -186,7 +164,7 @@ func (ar *ar_SA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_SA) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +174,7 @@ func (ar *ar_SA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_SA) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +184,7 @@ func (ar *ar_SA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_SA) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +230,13 @@ func (ar *ar_SA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_SA' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_SA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_SA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_SA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 9
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_SA'
+@@ -338,62 +244,7 @@ func (ar *ar_SA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_SA'
+@@ -402,69 +253,7 @@ func (ar *ar_SA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_SA'
+@@ -472,17 +261,6 @@ func (ar *ar_SA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +269,6 @@ func (ar *ar_SA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +277,6 @@ func (ar *ar_SA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +285,6 @@ func (ar *ar_SA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +293,6 @@ func (ar *ar_SA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +301,6 @@ func (ar *ar_SA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +309,6 @@ func (ar *ar_SA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +317,5 @@ func (ar *ar_SA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_SD/ar_SD.go b/ar_SD/ar_SD.go
+index 6bb92c2..e34b95d 100644
+--- a/ar_SD/ar_SD.go
++++ b/ar_SD/ar_SD.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ar_SD struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_SD' locale
+ func New() locales.Translator {
+ return &ar_SD{
+- locale: "ar_SD",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"ACWDT": "توقيت غرب وسط أستراليا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "CLT": "توقيت شيلي الرسمي", "CLST": "توقيت شيلي الصيفي", "ChST": "توقيت تشامورو", "WIT": "توقيت شرق إندونيسيا", "WESZ": "توقيت غرب أوروبا الصيفي", "ART": "توقيت الأرجنتين الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "SAST": "توقيت جنوب أفريقيا", "WART": "توقيت غرب الأرجنتين الرسمي", "WARST": "توقيت غرب الأرجنتين الصيفي", "AKST": "التوقيت الرسمي لألاسكا", "UYST": "توقيت أورغواي الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "HADT": "توقيت هاواي ألوتيان الصيفي", "SRT": "توقيت سورينام", "HAT": "توقيت نيوفاوندلاند الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "WIB": "توقيت غرب إندونيسيا", "LHDT": "التوقيت الصيفي للورد هاو", "HNEG": "توقيت شرق غرينلاند الرسمي", "BOT": "توقيت بوليفيا", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "AST": "التوقيت الرسمي الأطلسي", "WEZ": "توقيت غرب أوروبا الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "SGT": "توقيت سنغافورة", "MDT": "MDT", "LHST": "توقيت لورد هاو الرسمي", "JDT": "توقيت اليابان الصيفي", "COT": "توقيت كولومبيا الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "VET": "توقيت فنزويلا", "BT": "توقيت بوتان", "HNT": "توقيت نيوفاوندلاند الرسمي", "ECT": "توقيت الإكوادور", "CAT": "توقيت وسط أفريقيا", "MST": "MST", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "GYT": "توقيت غيانا", "HNOG": "توقيت غرب غرينلاند الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "WITA": "توقيت وسط إندونيسيا", "NZDT": "توقيت نيوزيلندا الصيفي", "CHADT": "توقيت تشاتام الصيفي", "∅∅∅": "توقيت بيرو الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "IST": "توقيت الهند", "TMST": "توقيت تركمانستان الصيفي", "GMT": "توقيت غرينتش", "HEOG": "توقيت غرب غرينلاند الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "EAT": "توقيت شرق أفريقيا", "HNCU": "توقيت كوبا الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "AEST": "توقيت شرق أستراليا الرسمي", "COST": "توقيت كولومبيا الصيفي", "HECU": "توقيت كوبا الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "JST": "توقيت اليابان الرسمي", "GFT": "توقيت غايانا الفرنسية", "TMT": "توقيت تركمانستان الرسمي", "WAST": "توقيت غرب أفريقيا الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "AWDT": "توقيت غرب أستراليا الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "CHAST": "توقيت تشاتام الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "MYT": "توقيت ماليزيا", "UYT": "توقيت أورغواي الرسمي"},
++ locale: "ar_SD",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"LHST": "LHST", "CHAST": "CHAST", "HAT": "HAT", "ART": "ART", "HNEG": "HNEG", "HEEG": "HEEG", "CLST": "CLST", "NZST": "NZST", "AEDT": "AEDT", "HNT": "HNT", "WART": "WART", "GYT": "GYT", "COT": "COT", "HECU": "HECU", "ARST": "ARST", "BOT": "BOT", "EAT": "EAT", "LHDT": "LHDT", "AKST": "AKST", "COST": "COST", "BT": "BT", "WEZ": "WEZ", "WAT": "WAT", "IST": "IST", "AKDT": "AKDT", "∅∅∅": "∅∅∅", "MEZ": "MEZ", "ACDT": "ACDT", "HENOMX": "HENOMX", "VET": "VET", "HEPMX": "HEPMX", "HEOG": "HEOG", "NZDT": "NZDT", "HAST": "HAST", "HNNOMX": "HNNOMX", "SRT": "SRT", "ACST": "ACST", "HKST": "HKST", "WIB": "WIB", "JST": "JST", "JDT": "JDT", "OEZ": "OEZ", "SAST": "SAST", "CAT": "CAT", "HADT": "HADT", "HNPM": "HNPM", "UYT": "UYT", "WARST": "WARST", "WIT": "WIT", "CDT": "CDT", "AST": "AST", "SGT": "SGT", "HNPMX": "HNPMX", "HNCU": "HNCU", "WITA": "WITA", "ECT": "ECT", "PDT": "PDT", "ACWDT": "ACWDT", "UYST": "UYST", "PST": "PST", "HKT": "HKT", "TMST": "TMST", "MESZ": "MESZ", "MYT": "MYT", "MDT": "MDT", "GMT": "GMT", "AWDT": "AWDT", "CHADT": "CHADT", "EST": "EST", "EDT": "EDT", "CLT": "CLT", "MST": "MST", "WESZ": "WESZ", "ACWST": "ACWST", "WAST": "WAST", "HNOG": "HNOG", "ChST": "ChST", "AWST": "AWST", "HEPM": "HEPM", "ADT": "ADT", "AEST": "AEST", "OESZ": "OESZ", "GFT": "GFT", "TMT": "TMT", "CST": "CST"},
+ }
+ }
+ 
+@@ -186,7 +161,7 @@ func (ar *ar_SD) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_SD) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +171,7 @@ func (ar *ar_SD) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_SD) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +181,7 @@ func (ar *ar_SD) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_SD) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +227,13 @@ func (ar *ar_SD) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_SD' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_SD) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_SD' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_SD) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_SD'
+@@ -338,62 +241,7 @@ func (ar *ar_SD) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_SD'
+@@ -402,69 +250,7 @@ func (ar *ar_SD) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_SD'
+@@ -472,17 +258,6 @@ func (ar *ar_SD) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +266,6 @@ func (ar *ar_SD) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +274,6 @@ func (ar *ar_SD) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +282,6 @@ func (ar *ar_SD) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +290,6 @@ func (ar *ar_SD) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +298,6 @@ func (ar *ar_SD) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +306,6 @@ func (ar *ar_SD) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +314,5 @@ func (ar *ar_SD) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_SO/ar_SO.go b/ar_SO/ar_SO.go
+index 3558328..fa8d3c7 100644
+--- a/ar_SO/ar_SO.go
++++ b/ar_SO/ar_SO.go
+@@ -10,70 +10,46 @@ import (
+ )
+ 
+ type ar_SO struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_SO' locale
+ func New() locales.Translator {
+ return &ar_SO{
+- locale: "ar_SO",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "S", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"AWST": "توقيت غرب أستراليا الرسمي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "WESZ": "توقيت غرب أوروبا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "LHST": "توقيت لورد هاو الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "GYT": "توقيت غيانا", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "GMT": "توقيت غرينتش", "MYT": "توقيت ماليزيا", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "WIT": "توقيت شرق إندونيسيا", "NZDT": "توقيت نيوزيلندا الصيفي", "COST": "توقيت كولومبيا الصيفي", "BT": "توقيت بوتان", "LHDT": "التوقيت الصيفي للورد هاو", "CLT": "توقيت شيلي الرسمي", "TMST": "توقيت تركمانستان الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "ECT": "توقيت الإكوادور", "CHAST": "توقيت تشاتام الرسمي", "GFT": "توقيت غايانا الفرنسية", "AKDT": "توقيت ألاسكا الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "AST": "التوقيت الرسمي الأطلسي", "ART": "توقيت الأرجنتين الرسمي", "CLST": "توقيت شيلي الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "HEOG": "توقيت غرب غرينلاند الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "CAT": "توقيت وسط أفريقيا", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "MST": "MST", "MDT": "MDT", "JDT": "توقيت اليابان الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "IST": "توقيت الهند", "∅∅∅": "توقيت الأمازون الصيفي", "BOT": "توقيت بوليفيا", "SRT": "توقيت سورينام", "ChST": "توقيت تشامورو", "SGT": "توقيت سنغافورة", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "MESZ": "توقيت وسط أوروبا الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "JST": "توقيت اليابان الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "UYT": "توقيت أورغواي الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "WIB": "توقيت غرب إندونيسيا", "HADT": "توقيت هاواي ألوتيان الصيفي", "TMT": "توقيت تركمانستان الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "COT": "توقيت كولومبيا الرسمي", "HECU": "توقيت كوبا الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "SAST": "توقيت جنوب أفريقيا", "HAST": "توقيت هاواي ألوتيان الرسمي", "WITA": "توقيت وسط إندونيسيا", "EAT": "توقيت شرق أفريقيا", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "UYST": "توقيت أورغواي الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "HNT": "توقيت نيوفاوندلاند الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "CHADT": "توقيت تشاتام الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "HNCU": "توقيت كوبا الرسمي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "VET": "توقيت فنزويلا"},
++ locale: "ar_SO",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ percent: "٪",
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "S", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNEG": "HNEG", "ACWST": "ACWST", "AKST": "AKST", "GFT": "GFT", "COST": "COST", "WITA": "WITA", "UYST": "UYST", "CAT": "CAT", "LHDT": "LHDT", "AST": "AST", "BOT": "BOT", "HNPM": "HNPM", "IST": "IST", "WAT": "WAT", "HAT": "HAT", "ART": "ART", "ACDT": "ACDT", "HENOMX": "HENOMX", "MEZ": "MEZ", "OESZ": "OESZ", "TMT": "TMT", "SRT": "SRT", "HEEG": "HEEG", "SGT": "SGT", "CDT": "CDT", "EAT": "EAT", "JST": "JST", "AWST": "AWST", "CHAST": "CHAST", "HNCU": "HNCU", "COT": "COT", "ChST": "ChST", "HNNOMX": "HNNOMX", "ADT": "ADT", "HADT": "HADT", "WIB": "WIB", "ACST": "ACST", "MYT": "MYT", "BT": "BT", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "HKST": "HKST", "OEZ": "OEZ", "EST": "EST", "WESZ": "WESZ", "GMT": "GMT", "PDT": "PDT", "EDT": "EDT", "MST": "MST", "WEZ": "WEZ", "AKDT": "AKDT", "CLT": "CLT", "CST": "CST", "PST": "PST", "AEDT": "AEDT", "HEPMX": "HEPMX", "WAST": "WAST", "WIT": "WIT", "MDT": "MDT", "LHST": "LHST", "JDT": "JDT", "VET": "VET", "NZST": "NZST", "ECT": "ECT", "TMST": "TMST", "CLST": "CLST", "HAST": "HAST", "AEST": "AEST", "UYT": "UYT", "WARST": "WARST", "HKT": "HKT", "HEOG": "HEOG", "HNPMX": "HNPMX", "HNT": "HNT", "HNOG": "HNOG", "SAST": "SAST", "NZDT": "NZDT", "ARST": "ARST", "MESZ": "MESZ", "HEPM": "HEPM", "AWDT": "AWDT", "WART": "WART", "GYT": "GYT", "ACWDT": "ACWDT", "HECU": "HECU"},
+ }
+ }
+ 
+@@ -186,7 +162,7 @@ func (ar *ar_SO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_SO) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +172,7 @@ func (ar *ar_SO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_SO) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +182,7 @@ func (ar *ar_SO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_SO) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +228,13 @@ func (ar *ar_SO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_SO' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_SO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_SO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_SO) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 9
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_SO'
+@@ -338,62 +242,7 @@ func (ar *ar_SO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_SO'
+@@ -402,69 +251,7 @@ func (ar *ar_SO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_SO'
+@@ -472,17 +259,6 @@ func (ar *ar_SO) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +267,6 @@ func (ar *ar_SO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +275,6 @@ func (ar *ar_SO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +283,6 @@ func (ar *ar_SO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +291,6 @@ func (ar *ar_SO) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +299,6 @@ func (ar *ar_SO) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +307,6 @@ func (ar *ar_SO) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +315,5 @@ func (ar *ar_SO) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_SS/ar_SS.go b/ar_SS/ar_SS.go
+index 43f59d8..d69d662 100644
+--- a/ar_SS/ar_SS.go
++++ b/ar_SS/ar_SS.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ar_SS struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_SS' locale
+ func New() locales.Translator {
+ return &ar_SS{
+- locale: "ar_SS",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GB£", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "£", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"∅∅∅": "توقيت الأمازون الصيفي", "WAT": "توقيت غرب أفريقيا الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "WIB": "توقيت غرب إندونيسيا", "TMST": "توقيت تركمانستان الصيفي", "CAT": "توقيت وسط أفريقيا", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "AKDT": "توقيت ألاسكا الصيفي", "UYT": "توقيت أورغواي الرسمي", "UYST": "توقيت أورغواي الصيفي", "HEEG": "توقيت شرق غرينلاند الصيفي", "GMT": "توقيت غرينتش", "SGT": "توقيت سنغافورة", "HADT": "توقيت هاواي ألوتيان الصيفي", "PST": "توقيت المحيط الهادي الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "ChST": "توقيت تشامورو", "ACDT": "توقيت وسط أستراليا الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "AKST": "التوقيت الرسمي لألاسكا", "ADT": "التوقيت الصيفي الأطلسي", "WEZ": "توقيت غرب أوروبا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "WITA": "توقيت وسط إندونيسيا", "SRT": "توقيت سورينام", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "ART": "توقيت الأرجنتين الرسمي", "LHST": "توقيت لورد هاو الرسمي", "CLST": "توقيت شيلي الصيفي", "BOT": "توقيت بوليفيا", "ACST": "توقيت وسط أستراليا الرسمي", "AST": "التوقيت الرسمي الأطلسي", "GYT": "توقيت غيانا", "MYT": "توقيت ماليزيا", "NZST": "توقيت نيوزيلندا الرسمي", "TMT": "توقيت تركمانستان الرسمي", "EAT": "توقيت شرق أفريقيا", "MDT": "MDT", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "HAST": "توقيت هاواي ألوتيان الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "PDT": "توقيت المحيط الهادي الصيفي", "GFT": "توقيت غايانا الفرنسية", "WAST": "توقيت غرب أفريقيا الصيفي", "COT": "توقيت كولومبيا الرسمي", "COST": "توقيت كولومبيا الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HNCU": "توقيت كوبا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "JDT": "توقيت اليابان الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "VET": "توقيت فنزويلا", "WIT": "توقيت شرق إندونيسيا", "MEZ": "توقيت وسط أوروبا الرسمي", "CHAST": "توقيت تشاتام الرسمي", "JST": "توقيت اليابان الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "BT": "توقيت بوتان", "WESZ": "توقيت غرب أوروبا الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "SAST": "توقيت جنوب أفريقيا", "IST": "توقيت الهند", "MST": "MST", "HKST": "توقيت هونغ كونغ الصيفي", "CHADT": "توقيت تشاتام الصيفي", "CLT": "توقيت شيلي الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "ECT": "توقيت الإكوادور", "WARST": "توقيت غرب الأرجنتين الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "OEZ": "توقيت شرق أوروبا الرسمي", "HECU": "توقيت كوبا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HKT": "توقيت هونغ كونغ الرسمي", "LHDT": "التوقيت الصيفي للورد هاو"},
++ locale: "ar_SS",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GB£", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "£", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SAST": "SAST", "HKST": "HKST", "∅∅∅": "∅∅∅", "WEZ": "WEZ", "OESZ": "OESZ", "HAT": "HAT", "COT": "COT", "EAT": "EAT", "HEPM": "HEPM", "ACWDT": "ACWDT", "PDT": "PDT", "MESZ": "MESZ", "WAST": "WAST", "WART": "WART", "CAT": "CAT", "HENOMX": "HENOMX", "AWDT": "AWDT", "JDT": "JDT", "AEST": "AEST", "AKDT": "AKDT", "CLT": "CLT", "WITA": "WITA", "WARST": "WARST", "HNOG": "HNOG", "HKT": "HKT", "HNEG": "HNEG", "CHADT": "CHADT", "VET": "VET", "HNCU": "HNCU", "WIT": "WIT", "ECT": "ECT", "BT": "BT", "HNT": "HNT", "CDT": "CDT", "ART": "ART", "BOT": "BOT", "SGT": "SGT", "GYT": "GYT", "AEDT": "AEDT", "HECU": "HECU", "OEZ": "OEZ", "NZDT": "NZDT", "WIB": "WIB", "HEEG": "HEEG", "ACDT": "ACDT", "HNPM": "HNPM", "UYST": "UYST", "PST": "PST", "SRT": "SRT", "MDT": "MDT", "ACWST": "ACWST", "COST": "COST", "CHAST": "CHAST", "UYT": "UYT", "AKST": "AKST", "ARST": "ARST", "MST": "MST", "HNNOMX": "HNNOMX", "AWST": "AWST", "LHDT": "LHDT", "GFT": "GFT", "TMST": "TMST", "NZST": "NZST", "HEOG": "HEOG", "TMT": "TMT", "CLST": "CLST", "GMT": "GMT", "HAST": "HAST", "LHST": "LHST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "CST": "CST", "ChST": "ChST", "AST": "AST", "MEZ": "MEZ", "ACST": "ACST", "JST": "JST", "ADT": "ADT", "IST": "IST", "WESZ": "WESZ", "EST": "EST", "HADT": "HADT", "MYT": "MYT", "WAT": "WAT", "EDT": "EDT"},
+ }
+ }
+ 
+@@ -186,7 +161,7 @@ func (ar *ar_SS) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_SS) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +171,7 @@ func (ar *ar_SS) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_SS) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +181,7 @@ func (ar *ar_SS) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_SS) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +227,13 @@ func (ar *ar_SS) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_SS' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_SS) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_SS' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_SS) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_SS'
+@@ -338,62 +241,7 @@ func (ar *ar_SS) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_SS'
+@@ -402,69 +250,7 @@ func (ar *ar_SS) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_SS'
+@@ -472,17 +258,6 @@ func (ar *ar_SS) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +266,6 @@ func (ar *ar_SS) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +274,6 @@ func (ar *ar_SS) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +282,6 @@ func (ar *ar_SS) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +290,6 @@ func (ar *ar_SS) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +298,6 @@ func (ar *ar_SS) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +306,6 @@ func (ar *ar_SS) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +314,5 @@ func (ar *ar_SS) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_SY/ar_SY.go b/ar_SY/ar_SY.go
+index 7850193..c2400ec 100644
+--- a/ar_SY/ar_SY.go
++++ b/ar_SY/ar_SY.go
+@@ -10,70 +10,48 @@ import (
+ )
+ 
+ type ar_SY struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_SY' locale
+ func New() locales.Translator {
+ return &ar_SY{
+- locale: "ar_SY",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
+- monthsNarrow: []string{"", "ك", "ش", "آ", "ن", "أ", "ح", "ت", "آ", "أ", "ت", "ت", "ك"},
+- monthsWide: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"AST": "التوقيت الرسمي الأطلسي", "VET": "توقيت فنزويلا", "HNT": "توقيت نيوفاوندلاند الرسمي", "CLST": "توقيت شيلي الصيفي", "ACDT": "توقيت وسط أستراليا الصيفي", "COST": "توقيت كولومبيا الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "MST": "MST", "HAT": "توقيت نيوفاوندلاند الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "GMT": "توقيت غرينتش", "CLT": "توقيت شيلي الرسمي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "ADT": "التوقيت الصيفي الأطلسي", "SRT": "توقيت سورينام", "HKT": "توقيت هونغ كونغ الرسمي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "WIT": "توقيت شرق إندونيسيا", "HECU": "توقيت كوبا الصيفي", "MYT": "توقيت ماليزيا", "PST": "توقيت المحيط الهادي الرسمي", "WITA": "توقيت وسط إندونيسيا", "MESZ": "توقيت وسط أوروبا الصيفي", "IST": "توقيت الهند", "JST": "توقيت اليابان الرسمي", "TMT": "توقيت تركمانستان الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "HADT": "توقيت هاواي ألوتيان الصيفي", "BT": "توقيت بوتان", "WEZ": "توقيت غرب أوروبا الرسمي", "WESZ": "توقيت غرب أوروبا الصيفي", "GFT": "توقيت غايانا الفرنسية", "ACST": "توقيت وسط أستراليا الرسمي", "SGT": "توقيت سنغافورة", "WIB": "توقيت غرب إندونيسيا", "AKDT": "توقيت ألاسكا الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "CHAST": "توقيت تشاتام الرسمي", "CHADT": "توقيت تشاتام الصيفي", "COT": "توقيت كولومبيا الرسمي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "MDT": "MDT", "HNOG": "توقيت غرب غرينلاند الرسمي", "HEOG": "توقيت غرب غرينلاند الصيفي", "LHDT": "التوقيت الصيفي للورد هاو", "EAT": "توقيت شرق أفريقيا", "WART": "توقيت غرب الأرجنتين الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "AEST": "توقيت شرق أستراليا الرسمي", "LHST": "توقيت لورد هاو الرسمي", "∅∅∅": "توقيت الأمازون الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "GYT": "توقيت غيانا", "UYST": "توقيت أورغواي الصيفي", "HKST": "توقيت هونغ كونغ الصيفي", "TMST": "توقيت تركمانستان الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "AEDT": "توقيت شرق أستراليا الصيفي", "AWDT": "توقيت غرب أستراليا الصيفي", "JDT": "توقيت اليابان الصيفي", "BOT": "توقيت بوليفيا", "WAT": "توقيت غرب أفريقيا الرسمي", "UYT": "توقيت أورغواي الرسمي", "HNCU": "توقيت كوبا الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "NZDT": "توقيت نيوزيلندا الصيفي", "SAST": "توقيت جنوب أفريقيا", "ChST": "توقيت تشامورو", "OEZ": "توقيت شرق أوروبا الرسمي", "AWST": "توقيت غرب أستراليا الرسمي", "ECT": "توقيت الإكوادور", "CAT": "توقيت وسط أفريقيا", "HAST": "توقيت هاواي ألوتيان الرسمي", "ART": "توقيت الأرجنتين الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية"},
++ locale: "ar_SY",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
++ monthsNarrow: []string{"", "ك", "ش", "آ", "ن", "أ", "ح", "ت", "آ", "أ", "ت", "ت", "ك"},
++ monthsWide: []string{"", "كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"},
++ timezones: map[string]string{"ART": "ART", "HNNOMX": "HNNOMX", "UYT": "UYT", "UYST": "UYST", "OEZ": "OEZ", "WART": "WART", "COT": "COT", "CLT": "CLT", "MDT": "MDT", "JDT": "JDT", "HEOG": "HEOG", "SRT": "SRT", "MEZ": "MEZ", "TMST": "TMST", "WITA": "WITA", "HNPM": "HNPM", "HEPM": "HEPM", "WESZ": "WESZ", "HADT": "HADT", "AKDT": "AKDT", "HNT": "HNT", "HAT": "HAT", "∅∅∅": "∅∅∅", "COST": "COST", "CDT": "CDT", "EAT": "EAT", "EDT": "EDT", "CHADT": "CHADT", "BT": "BT", "SAST": "SAST", "HKT": "HKT", "CLST": "CLST", "ECT": "ECT", "HNEG": "HNEG", "AWDT": "AWDT", "AWST": "AWST", "ACWDT": "ACWDT", "IST": "IST", "AEDT": "AEDT", "SGT": "SGT", "OESZ": "OESZ", "GFT": "GFT", "CAT": "CAT", "AST": "AST", "ChST": "ChST", "JST": "JST", "WAT": "WAT", "VET": "VET", "EST": "EST", "TMT": "TMT", "HAST": "HAST", "LHST": "LHST", "ACWST": "ACWST", "AEST": "AEST", "HECU": "HECU", "WAST": "WAST", "WIT": "WIT", "HNOG": "HNOG", "ARST": "ARST", "MESZ": "MESZ", "PDT": "PDT", "HNCU": "HNCU", "HKST": "HKST", "NZST": "NZST", "LHDT": "LHDT", "CST": "CST", "HENOMX": "HENOMX", "PST": "PST", "AKST": "AKST", "CHAST": "CHAST", "GYT": "GYT", "WIB": "WIB", "MST": "MST", "ADT": "ADT", "BOT": "BOT", "ACDT": "ACDT", "GMT": "GMT", "HEEG": "HEEG", "HNPMX": "HNPMX", "WEZ": "WEZ", "WARST": "WARST", "NZDT": "NZDT", "ACST": "ACST", "MYT": "MYT", "HEPMX": "HEPMX"},
+ }
+ }
+ 
+@@ -252,85 +230,13 @@ func (ar *ar_SY) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_SY' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_SY) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_SY' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_SY) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_SY'
+@@ -338,62 +244,7 @@ func (ar *ar_SY) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_SY'
+@@ -402,69 +253,7 @@ func (ar *ar_SY) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_SY'
+@@ -472,17 +261,6 @@ func (ar *ar_SY) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +269,6 @@ func (ar *ar_SY) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +277,6 @@ func (ar *ar_SY) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +285,6 @@ func (ar *ar_SY) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +293,6 @@ func (ar *ar_SY) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +301,6 @@ func (ar *ar_SY) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +309,6 @@ func (ar *ar_SY) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +317,5 @@ func (ar *ar_SY) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_TD/ar_TD.go b/ar_TD/ar_TD.go
+index bec62d0..516a91e 100644
+--- a/ar_TD/ar_TD.go
++++ b/ar_TD/ar_TD.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ar_TD struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_TD' locale
+ func New() locales.Translator {
+ return &ar_TD{
+- locale: "ar_TD",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"SAST": "توقيت جنوب أفريقيا", "JST": "توقيت اليابان الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "HAST": "توقيت هاواي ألوتيان الرسمي", "PDT": "توقيت المحيط الهادي الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "AWDT": "توقيت غرب أستراليا الصيفي", "NZDT": "توقيت نيوزيلندا الصيفي", "WEZ": "توقيت غرب أوروبا الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WIB": "توقيت غرب إندونيسيا", "MST": "MST", "HEOG": "توقيت غرب غرينلاند الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "WART": "توقيت غرب الأرجنتين الرسمي", "CHADT": "توقيت تشاتام الصيفي", "IST": "توقيت الهند", "∅∅∅": "توقيت الأمازون الصيفي", "BOT": "توقيت بوليفيا", "ECT": "توقيت الإكوادور", "MDT": "MDT", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "ARST": "توقيت الأرجنتين الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "TMT": "توقيت تركمانستان الرسمي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "WESZ": "توقيت غرب أوروبا الصيفي", "ART": "توقيت الأرجنتين الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "WAST": "توقيت غرب أفريقيا الصيفي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "OESZ": "توقيت شرق أوروبا الصيفي", "HECU": "توقيت كوبا الصيفي", "CLT": "توقيت شيلي الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "VET": "توقيت فنزويلا", "BT": "توقيت بوتان", "UYST": "توقيت أورغواي الصيفي", "LHST": "توقيت لورد هاو الرسمي", "GFT": "توقيت غايانا الفرنسية", "ChST": "توقيت تشامورو", "COST": "توقيت كولومبيا الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "AST": "التوقيت الرسمي الأطلسي", "MYT": "توقيت ماليزيا", "AEST": "توقيت شرق أستراليا الرسمي", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "HNEG": "توقيت شرق غرينلاند الرسمي", "OEZ": "توقيت شرق أوروبا الرسمي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "AKDT": "توقيت ألاسكا الصيفي", "ADT": "التوقيت الصيفي الأطلسي", "WIT": "توقيت شرق إندونيسيا", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HAT": "توقيت نيوفاوندلاند الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "COT": "توقيت كولومبيا الرسمي", "HADT": "توقيت هاواي ألوتيان الصيفي", "CAT": "توقيت وسط أفريقيا", "SGT": "توقيت سنغافورة", "HNCU": "توقيت كوبا الرسمي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "WITA": "توقيت وسط إندونيسيا", "HEEG": "توقيت شرق غرينلاند الصيفي", "UYT": "توقيت أورغواي الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "CLST": "توقيت شيلي الصيفي", "TMST": "توقيت تركمانستان الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "GMT": "توقيت غرينتش", "GYT": "توقيت غيانا", "HNOG": "توقيت غرب غرينلاند الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "CHAST": "توقيت تشاتام الرسمي", "JDT": "توقيت اليابان الصيفي", "MESZ": "توقيت وسط أوروبا الصيفي", "EAT": "توقيت شرق أفريقيا", "SRT": "توقيت سورينام"},
++ locale: "ar_TD",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HECU": "HECU", "WART": "WART", "CAT": "CAT", "WIB": "WIB", "AWDT": "AWDT", "ACWST": "ACWST", "CLT": "CLT", "∅∅∅": "∅∅∅", "ACWDT": "ACWDT", "AKST": "AKST", "TMT": "TMT", "HAST": "HAST", "JST": "JST", "WAT": "WAT", "ACDT": "ACDT", "HEEG": "HEEG", "AWST": "AWST", "LHDT": "LHDT", "IST": "IST", "ECT": "ECT", "AST": "AST", "HADT": "HADT", "WITA": "WITA", "AEDT": "AEDT", "GFT": "GFT", "HNOG": "HNOG", "WESZ": "WESZ", "CST": "CST", "CDT": "CDT", "SRT": "SRT", "AEST": "AEST", "WEZ": "WEZ", "COST": "COST", "BOT": "BOT", "CHADT": "CHADT", "PDT": "PDT", "WIT": "WIT", "HKST": "HKST", "MST": "MST", "HNNOMX": "HNNOMX", "VET": "VET", "HNPMX": "HNPMX", "COT": "COT", "EDT": "EDT", "HNPM": "HNPM", "JDT": "JDT", "SGT": "SGT", "ACST": "ACST", "LHST": "LHST", "HNCU": "HNCU", "OESZ": "OESZ", "GYT": "GYT", "ChST": "ChST", "ARST": "ARST", "MEZ": "MEZ", "SAST": "SAST", "HKT": "HKT", "MDT": "MDT", "HNEG": "HNEG", "HAT": "HAT", "EST": "EST", "GMT": "GMT", "EAT": "EAT", "AKDT": "AKDT", "HEOG": "HEOG", "CLST": "CLST", "NZST": "NZST", "NZDT": "NZDT", "PST": "PST", "HENOMX": "HENOMX", "HEPM": "HEPM", "OEZ": "OEZ", "HNT": "HNT", "CHAST": "CHAST", "UYT": "UYT", "UYST": "UYST", "HEPMX": "HEPMX", "WAST": "WAST", "WARST": "WARST", "ART": "ART", "MESZ": "MESZ", "BT": "BT", "ADT": "ADT", "MYT": "MYT", "TMST": "TMST"},
+ }
+ }
+ 
+@@ -186,7 +161,7 @@ func (ar *ar_TD) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_TD) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +171,7 @@ func (ar *ar_TD) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_TD) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +181,7 @@ func (ar *ar_TD) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_TD) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +227,13 @@ func (ar *ar_TD) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_TD' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_TD) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_TD' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_TD) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_TD'
+@@ -338,62 +241,7 @@ func (ar *ar_TD) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_TD'
+@@ -402,69 +250,7 @@ func (ar *ar_TD) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_TD'
+@@ -472,17 +258,6 @@ func (ar *ar_TD) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +266,6 @@ func (ar *ar_TD) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +274,6 @@ func (ar *ar_TD) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +282,6 @@ func (ar *ar_TD) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +290,6 @@ func (ar *ar_TD) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +298,6 @@ func (ar *ar_TD) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +306,6 @@ func (ar *ar_TD) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +314,5 @@ func (ar *ar_TD) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_TN/ar_TN.go b/ar_TN/ar_TN.go
+index 7652b1b..6d33c62 100644
+--- a/ar_TN/ar_TN.go
++++ b/ar_TN/ar_TN.go
+@@ -10,70 +10,50 @@ import (
+ )
+ 
+ type ar_TN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_TN' locale
+ func New() locales.Translator {
+ return &ar_TN{
+- locale: "ar_TN",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: ",",
+- group: ".",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ج", "ف", "م", "أ", "م", "ج", "ج", "أ", "س", "أ", "ن", "د"},
+- monthsWide: []string{"", "جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"HEEG": "توقيت شرق غرينلاند الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "HNT": "توقيت نيوفاوندلاند الرسمي", "ART": "توقيت الأرجنتين الرسمي", "ARST": "توقيت الأرجنتين الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "MEZ": "توقيت وسط أوروبا الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "SGT": "توقيت سنغافورة", "WEZ": "توقيت غرب أوروبا الرسمي", "IST": "توقيت الهند", "TMT": "توقيت تركمانستان الرسمي", "EAT": "توقيت شرق أفريقيا", "GYT": "توقيت غيانا", "HAT": "توقيت نيوفاوندلاند الصيفي", "AEDT": "توقيت شرق أستراليا الصيفي", "BOT": "توقيت بوليفيا", "CAT": "توقيت وسط أفريقيا", "WIT": "توقيت شرق إندونيسيا", "AWDT": "توقيت غرب أستراليا الصيفي", "AST": "التوقيت الرسمي الأطلسي", "HNEG": "توقيت شرق غرينلاند الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "HNCU": "توقيت كوبا الرسمي", "MST": "MST", "MDT": "MDT", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "PST": "توقيت المحيط الهادي الرسمي", "CHAST": "توقيت تشاتام الرسمي", "∅∅∅": "توقيت الأمازون الصيفي", "AKDT": "توقيت ألاسكا الصيفي", "HADT": "توقيت هاواي ألوتيان الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "AEST": "توقيت شرق أستراليا الرسمي", "WITA": "توقيت وسط إندونيسيا", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "JST": "توقيت اليابان الرسمي", "COT": "توقيت كولومبيا الرسمي", "HECU": "توقيت كوبا الصيفي", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "WESZ": "توقيت غرب أوروبا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "NZST": "توقيت نيوزيلندا الرسمي", "TMST": "توقيت تركمانستان الصيفي", "OESZ": "توقيت شرق أوروبا الصيفي", "WART": "توقيت غرب الأرجنتين الرسمي", "COST": "توقيت كولومبيا الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "HKT": "توقيت هونغ كونغ الرسمي", "JDT": "توقيت اليابان الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "GMT": "توقيت غرينتش", "GFT": "توقيت غايانا الفرنسية", "OEZ": "توقيت شرق أوروبا الرسمي", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "UYST": "توقيت أورغواي الصيفي", "SAST": "توقيت جنوب أفريقيا", "CLST": "توقيت شيلي الصيفي", "ChST": "توقيت تشامورو", "WAT": "توقيت غرب أفريقيا الرسمي", "ADT": "التوقيت الصيفي الأطلسي", "NZDT": "توقيت نيوزيلندا الصيفي", "ACST": "توقيت وسط أستراليا الرسمي", "AKST": "التوقيت الرسمي لألاسكا", "CHADT": "توقيت تشاتام الصيفي", "CLT": "توقيت شيلي الرسمي", "HAST": "توقيت هاواي ألوتيان الرسمي", "VET": "توقيت فنزويلا", "SRT": "توقيت سورينام", "MESZ": "توقيت وسط أوروبا الصيفي", "UYT": "توقيت أورغواي الرسمي", "HNOG": "توقيت غرب غرينلاند الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "ECT": "توقيت الإكوادور", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "MYT": "توقيت ماليزيا", "WIB": "توقيت غرب إندونيسيا", "BT": "توقيت بوتان", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "HEPM": "توقيت سانت بيير وميكولون الصيفي"},
++ locale: "ar_TN",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ decimal: ",",
++ group: ".",
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
++ monthsNarrow: []string{"", "ج", "ف", "م", "أ", "م", "ج", "ج", "أ", "س", "أ", "ن", "د"},
++ monthsWide: []string{"", "جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
++ timezones: map[string]string{"HAST": "HAST", "AWDT": "AWDT", "CHADT": "CHADT", "UYT": "UYT", "EAT": "EAT", "UYST": "UYST", "HECU": "HECU", "SGT": "SGT", "MDT": "MDT", "SAST": "SAST", "CLT": "CLT", "ART": "ART", "ARST": "ARST", "ACST": "ACST", "WIT": "WIT", "GYT": "GYT", "IST": "IST", "HNCU": "HNCU", "WART": "WART", "EDT": "EDT", "HNEG": "HNEG", "PDT": "PDT", "ACWDT": "ACWDT", "COT": "COT", "HKST": "HKST", "WITA": "WITA", "CST": "CST", "CHAST": "CHAST", "GFT": "GFT", "HKT": "HKT", "MST": "MST", "HENOMX": "HENOMX", "LHST": "LHST", "WESZ": "WESZ", "COST": "COST", "TMST": "TMST", "NZDT": "NZDT", "MESZ": "MESZ", "WEZ": "WEZ", "OESZ": "OESZ", "WAT": "WAT", "HEPM": "HEPM", "HEPMX": "HEPMX", "AKDT": "AKDT", "NZST": "NZST", "ChST": "ChST", "WAST": "WAST", "HAT": "HAT", "CLST": "CLST", "WIB": "WIB", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "MYT": "MYT", "JST": "JST", "AEDT": "AEDT", "VET": "VET", "AWST": "AWST", "AKST": "AKST", "WARST": "WARST", "AST": "AST", "ADT": "ADT", "BOT": "BOT", "AEST": "AEST", "HNPMX": "HNPMX", "HEOG": "HEOG", "EST": "EST", "ECT": "ECT", "HEEG": "HEEG", "HNPM": "HNPM", "JDT": "JDT", "ACWST": "ACWST", "HNOG": "HNOG", "TMT": "TMT", "SRT": "SRT", "LHDT": "LHDT", "PST": "PST", "BT": "BT", "HNT": "HNT", "CAT": "CAT", "CDT": "CDT", "GMT": "GMT", "HADT": "HADT", "MEZ": "MEZ", "∅∅∅": "∅∅∅", "OEZ": "OEZ"},
+ }
+ }
+ 
+@@ -252,79 +232,13 @@ func (ar *ar_TN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_TN' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_TN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_TN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_TN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 10
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_TN'
+@@ -332,58 +246,7 @@ func (ar *ar_TN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_TN'
+@@ -392,65 +255,7 @@ func (ar *ar_TN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ar.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ar.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_TN'
+@@ -458,17 +263,6 @@ func (ar *ar_TN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -477,27 +271,6 @@ func (ar *ar_TN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -506,17 +279,6 @@ func (ar *ar_TN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -525,19 +287,6 @@ func (ar *ar_TN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -546,28 +295,6 @@ func (ar *ar_TN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -576,35 +303,6 @@ func (ar *ar_TN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -613,40 +311,6 @@ func (ar *ar_TN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -655,44 +319,5 @@ func (ar *ar_TN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ar_YE/ar_YE.go b/ar_YE/ar_YE.go
+index 6c202bd..8b712b6 100644
+--- a/ar_YE/ar_YE.go
++++ b/ar_YE/ar_YE.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ar_YE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ar_YE' locale
+ func New() locales.Translator {
+ return &ar_YE{
+- locale: "ar_YE",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{1, 4, 5, 6},
+- decimal: "٫",
+- group: "٬",
+- minus: "؜-",
+- percent: "٪؜",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- monthsNarrow: []string{"", "ي", "ف", "م", "أ", "و", "ن", "ل", "غ", "س", "ك", "ب", "د"},
+- monthsWide: []string{"", "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"},
+- daysAbbreviated: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysNarrow: []string{"ح", "ن", "ث", "ر", "خ", "ج", "س"},
+- daysShort: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- daysWide: []string{"الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"},
+- periodsAbbreviated: []string{"ص", "م"},
+- periodsNarrow: []string{"ص", "م"},
+- periodsWide: []string{"ص", "م"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"ChST": "توقيت تشامورو", "MST": "MST", "AKST": "التوقيت الرسمي لألاسكا", "HAST": "توقيت هاواي ألوتيان الرسمي", "SRT": "توقيت سورينام", "CHAST": "توقيت تشاتام الرسمي", "LHDT": "التوقيت الصيفي للورد هاو", "CLST": "توقيت شيلي الصيفي", "WARST": "توقيت غرب الأرجنتين الصيفي", "EST": "التوقيت الرسمي الشرقي لأمريكا الشمالية", "VET": "توقيت فنزويلا", "AWDT": "توقيت غرب أستراليا الصيفي", "NZST": "توقيت نيوزيلندا الرسمي", "EAT": "توقيت شرق أفريقيا", "COT": "توقيت كولومبيا الرسمي", "WIB": "توقيت غرب إندونيسيا", "HNT": "توقيت نيوفاوندلاند الرسمي", "CAT": "توقيت وسط أفريقيا", "WART": "توقيت غرب الأرجنتين الرسمي", "∅∅∅": "توقيت أزورس الصيفي", "ART": "توقيت الأرجنتين الرسمي", "HKT": "توقيت هونغ كونغ الرسمي", "MESZ": "توقيت وسط أوروبا الصيفي", "HENOMX": "التوقيت الصيفي لشمال غرب المكسيك", "CDT": "التوقيت الصيفي المركزي لأمريكا الشمالية", "MYT": "توقيت ماليزيا", "WESZ": "توقيت غرب أوروبا الصيفي", "ACWDT": "توقيت غرب وسط أستراليا الصيفي", "WAST": "توقيت غرب أفريقيا الصيفي", "HEOG": "توقيت غرب غرينلاند الصيفي", "PDT": "توقيت المحيط الهادي الصيفي", "ACWST": "توقيت غرب وسط أستراليا الرسمي", "AEDT": "توقيت شرق أستراليا الصيفي", "SAST": "توقيت جنوب أفريقيا", "TMT": "توقيت تركمانستان الرسمي", "HEEG": "توقيت شرق غرينلاند الصيفي", "HEPMX": "توقيت المحيط الهادي الصيفي للمكسيك", "IST": "توقيت الهند", "HADT": "توقيت هاواي ألوتيان الصيفي", "WIT": "توقيت شرق إندونيسيا", "OESZ": "توقيت شرق أوروبا الصيفي", "HNPMX": "توقيت المحيط الهادي الرسمي للمكسيك", "ADT": "التوقيت الصيفي الأطلسي", "HNPM": "توقيت سانت بيير وميكولون الرسمي", "GFT": "توقيت غايانا الفرنسية", "OEZ": "توقيت شرق أوروبا الرسمي", "JDT": "توقيت اليابان الصيفي", "MDT": "MDT", "CST": "التوقيت الرسمي المركزي لأمريكا الشمالية", "AST": "التوقيت الرسمي الأطلسي", "UYST": "توقيت أورغواي الصيفي", "ARST": "توقيت الأرجنتين الصيفي", "AWST": "توقيت غرب أستراليا الرسمي", "HKST": "توقيت هونغ كونغ الصيفي", "CLT": "توقيت شيلي الرسمي", "TMST": "توقيت تركمانستان الصيفي", "HNNOMX": "التوقيت الرسمي لشمال غرب المكسيك", "GMT": "توقيت غرينتش", "EDT": "التوقيت الصيفي الشرقي لأمريكا الشمالية", "AKDT": "توقيت ألاسكا الصيفي", "BT": "توقيت بوتان", "HEPM": "توقيت سانت بيير وميكولون الصيفي", "JST": "توقيت اليابان الرسمي", "SGT": "توقيت سنغافورة", "WEZ": "توقيت غرب أوروبا الرسمي", "CHADT": "توقيت تشاتام الصيفي", "MEZ": "توقيت وسط أوروبا الرسمي", "ACDT": "توقيت وسط أستراليا الصيفي", "GYT": "توقيت غيانا", "WITA": "توقيت وسط إندونيسيا", "NZDT": "توقيت نيوزيلندا الصيفي", "BOT": "توقيت بوليفيا", "ECT": "توقيت الإكوادور", "COST": "توقيت كولومبيا الصيفي", "HECU": "توقيت كوبا الصيفي", "LHST": "توقيت لورد هاو الرسمي", "HNEG": "توقيت شرق غرينلاند الرسمي", "WAT": "توقيت غرب أفريقيا الرسمي", "ACST": "توقيت وسط أستراليا الرسمي", "HNCU": "توقيت كوبا الرسمي", "UYT": "توقيت أورغواي الرسمي", "HAT": "توقيت نيوفاوندلاند الصيفي", "HNOG": "توقيت غرب غرينلاند الرسمي", "PST": "توقيت المحيط الهادي الرسمي", "AEST": "توقيت شرق أستراليا الرسمي"},
++ locale: "ar_YE",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{1, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNPM": "HNPM", "HNPMX": "HNPMX", "WAST": "WAST", "OEZ": "OEZ", "WARST": "WARST", "ChST": "ChST", "AWST": "AWST", "WESZ": "WESZ", "HKST": "HKST", "ARST": "ARST", "SRT": "SRT", "ACDT": "ACDT", "HEPM": "HEPM", "CAT": "CAT", "WIB": "WIB", "BOT": "BOT", "CHADT": "CHADT", "UYT": "UYT", "UYST": "UYST", "HKT": "HKT", "CDT": "CDT", "AEST": "AEST", "AKST": "AKST", "HEOG": "HEOG", "ART": "ART", "MDT": "MDT", "HENOMX": "HENOMX", "SGT": "SGT", "HECU": "HECU", "AKDT": "AKDT", "EST": "EST", "HNNOMX": "HNNOMX", "ACWST": "ACWST", "COT": "COT", "NZDT": "NZDT", "HAST": "HAST", "∅∅∅": "∅∅∅", "ACWDT": "ACWDT", "AEDT": "AEDT", "HNCU": "HNCU", "MST": "MST", "LHDT": "LHDT", "WEZ": "WEZ", "HAT": "HAT", "ACST": "ACST", "JST": "JST", "BT": "BT", "CHAST": "CHAST", "OESZ": "OESZ", "ADT": "ADT", "MYT": "MYT", "IST": "IST", "HEPMX": "HEPMX", "WART": "WART", "WIT": "WIT", "CLST": "CLST", "AST": "AST", "HEEG": "HEEG", "TMT": "TMT", "AWDT": "AWDT", "WAT": "WAT", "HNT": "HNT", "SAST": "SAST", "CLT": "CLT", "GMT": "GMT", "EDT": "EDT", "MEZ": "MEZ", "MESZ": "MESZ", "HNEG": "HNEG", "JDT": "JDT", "PST": "PST", "GFT": "GFT", "COST": "COST", "TMST": "TMST", "CST": "CST", "NZST": "NZST", "EAT": "EAT", "GYT": "GYT", "HNOG": "HNOG", "WITA": "WITA", "HADT": "HADT", "LHST": "LHST", "PDT": "PDT", "VET": "VET", "ECT": "ECT"},
+ }
+ }
+ 
+@@ -186,7 +161,7 @@ func (ar *ar_YE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ar *ar_YE) MonthsAbbreviated() []string {
+- return ar.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -196,7 +171,7 @@ func (ar *ar_YE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ar *ar_YE) MonthsNarrow() []string {
+- return ar.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -206,7 +181,7 @@ func (ar *ar_YE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ar *ar_YE) MonthsWide() []string {
+- return ar.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -252,85 +227,13 @@ func (ar *ar_YE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ar_YE' and handles both Whole and Real numbers based on 'v'
+ func (ar *ar_YE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ar_YE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ar *ar_YE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ar.percentSuffix...)
+-
+- b = append(b, ar.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ar_YE'
+@@ -338,62 +241,7 @@ func (ar *ar_YE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ar_YE'
+@@ -402,69 +250,7 @@ func (ar *ar_YE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ar.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ar.decimal) - 1; j >= 0; j-- {
+- b = append(b, ar.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ar.group) - 1; j >= 0; j-- {
+- b = append(b, ar.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ar.minus) - 1; j >= 0; j-- {
+- b = append(b, ar.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ar.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ar.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ar.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ar_YE'
+@@ -472,17 +258,6 @@ func (ar *ar_YE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,27 +266,6 @@ func (ar *ar_YE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0xe2, 0x80, 0x8f, 0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -520,17 +274,6 @@ func (ar *ar_YE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +282,6 @@ func (ar *ar_YE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ar.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ar.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,28 +290,6 @@ func (ar *ar_YE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,35 +298,6 @@ func (ar *ar_YE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -627,40 +306,6 @@ func (ar *ar_YE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -669,44 +314,5 @@ func (ar *ar_YE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ar.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ar.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ar.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ar.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/as/as.go b/as/as.go
+index 13818e9..1ff0c02 100644
+--- a/as/as.go
++++ b/as/as.go
+@@ -58,7 +58,7 @@ func New() locales.Translator {
+ daysWide: []string{"দেওবাৰ", "সোমবাৰ", "মঙ্গলবাৰ", "বুধবাৰ", "বৃহষ্পতিবাৰ", "শুক্ৰবাৰ", "শনিবাৰ"},
+ periodsAbbreviated: []string{"পূৰ্বাহ্ণ", "অপৰাহ্ণ"},
+ periodsWide: []string{"পূৰ্বাহ্ণ", "অপৰাহ্ণ"},
+- timezones: map[string]string{"AKDT": "AKDT", "UYST": "UYST", "WIT": "WIT", "AWST": "AWST", "BOT": "BOT", "WAT": "WAT", "HNOG": "HNOG", "HEPM": "HEPM", "IST": "ভাৰতীয় সময়", "ChST": "ChST", "TMT": "TMT", "WAST": "WAST", "HNNOMX": "HNNOMX", "CDT": "CDT", "JDT": "JDT", "CAT": "CAT", "HAST": "HAST", "AWDT": "AWDT", "CHAST": "CHAST", "COST": "COST", "HNCU": "HNCU", "PST": "PST", "ACWST": "ACWST", "MEZ": "MEZ", "WART": "WART", "EST": "EST", "WESZ": "WESZ", "AEDT": "AEDT", "SAST": "SAST", "CLST": "CLST", "OESZ": "OESZ", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "BT": "BT", "ACWDT": "ACWDT", "ART": "ART", "HKT": "HKT", "HEEG": "HEEG", "HENOMX": "HENOMX", "CST": "CST", "MYT": "MYT", "HEOG": "HEOG", "COT": "COT", "MST": "MST", "VET": "VET", "AEST": "AEST", "JST": "JST", "GMT": "GMT", "UYT": "UYT", "HAT": "HAT", "NZST": "NZST", "ACST": "ACST", "ECT": "ECT", "MDT": "MDT", "AKST": "AKST", "WIB": "WIB", "LHST": "LHST", "CLT": "CLT", "HEPMX": "HEPMX", "AST": "AST", "ARST": "ARST", "HKST": "HKST", "ADT": "ADT", "HADT": "HADT", "WITA": "WITA", "MESZ": "MESZ", "EAT": "EAT", "WARST": "WARST", "WEZ": "WEZ", "CHADT": "CHADT", "GFT": "GFT", "ACDT": "ACDT", "OEZ": "OEZ", "HECU": "HECU", "GYT": "GYT", "SRT": "SRT", "HNT": "HNT", "NZDT": "NZDT", "SGT": "SGT", "EDT": "EDT", "PDT": "PDT", "HNPM": "HNPM", "LHDT": "LHDT", "HNEG": "HNEG", "TMST": "TMST"},
++ timezones: map[string]string{"CHAST": "CHAST", "AEST": "AEST", "HEPMX": "HEPMX", "HNT": "HNT", "SAST": "SAST", "HAST": "HAST", "MEZ": "MEZ", "HEPM": "HEPM", "CLT": "CLT", "WIT": "WIT", "HEOG": "HEOG", "TMT": "TMT", "WITA": "WITA", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "HKT": "HKT", "JDT": "JDT", "IST": "ভাৰতীয় সময়", "OESZ": "OESZ", "GYT": "GYT", "COT": "COT", "CST": "CST", "BT": "BT", "OEZ": "OEZ", "HECU": "HECU", "WARST": "WARST", "MST": "MST", "NZDT": "NZDT", "JST": "JST", "GMT": "GMT", "HNCU": "HNCU", "AKDT": "AKDT", "HENOMX": "HENOMX", "ACWST": "ACWST", "WAT": "WAT", "ECT": "ECT", "WIB": "WIB", "ARST": "ARST", "WART": "WART", "COST": "COST", "CAT": "CAT", "AST": "AST", "PST": "PST", "GFT": "GFT", "HKST": "HKST", "ART": "ART", "HNOG": "HNOG", "EDT": "EDT", "MYT": "MYT", "CHADT": "CHADT", "AKST": "AKST", "CLST": "CLST", "SRT": "SRT", "HNEG": "HNEG", "AWDT": "AWDT", "WEZ": "WEZ", "LHST": "LHST", "UYST": "UYST", "∅∅∅": "∅∅∅", "VET": "VET", "WAST": "WAST", "MDT": "MDT", "NZST": "NZST", "BOT": "BOT", "HADT": "HADT", "AEDT": "AEDT", "WESZ": "WESZ", "HAT": "HAT", "CDT": "CDT", "ChST": "ChST", "EAT": "EAT", "PDT": "PDT", "AWST": "AWST", "LHDT": "LHDT", "HNPM": "HNPM", "EST": "EST", "TMST": "TMST", "ADT": "ADT", "MESZ": "MESZ", "ACDT": "ACDT", "SGT": "SGT", "ACST": "ACST", "UYT": "UYT", "ACWDT": "ACWDT"},
+ }
+ }
+ 
+diff --git a/as_IN/as_IN.go b/as_IN/as_IN.go
+index 87b786a..66301c5 100644
+--- a/as_IN/as_IN.go
++++ b/as_IN/as_IN.go
+@@ -10,55 +10,45 @@ import (
+ )
+ 
+ type as_IN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'as_IN' locale
+ func New() locales.Translator {
+ return &as_IN{
+- locale: "as_IN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 5, 6},
+- pluralsRange: nil,
+- timeSeparator: ".",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "জানু", "ফেব্ৰু", "মাৰ্চ", "এপ্ৰিল", "মে", "জুন", "জুলাই", "আগ", "সেপ্ট", "অক্টো", "নভে", "ডিসে"},
+- monthsWide: []string{"", "জানুৱাৰী", "ফেব্ৰুৱাৰী", "মাৰ্চ", "এপ্ৰিল", "মে", "জুন", "জুলাই", "আগষ্ট", "ছেপ্তেম্বৰ", "অক্টোবৰ", "নৱেম্বৰ", "ডিচেম্বৰ"},
+- daysAbbreviated: []string{"ৰবি", "সোম", "মঙ্গল", "বুধ", "বৃহষ্পতি", "শুক্ৰ", "শনি"},
+- daysWide: []string{"দেওবাৰ", "সোমবাৰ", "মঙ্গলবাৰ", "বুধবাৰ", "বৃহষ্পতিবাৰ", "শুক্ৰবাৰ", "শনিবাৰ"},
+- periodsAbbreviated: []string{"পূৰ্বাহ্ণ", "অপৰাহ্ণ"},
+- periodsWide: []string{"পূৰ্বাহ্ণ", "অপৰাহ্ণ"},
+- timezones: map[string]string{"HKST": "HKST", "WITA": "WITA", "JST": "JST", "EDT": "EDT", "AKST": "AKST", "CST": "CST", "CDT": "CDT", "AWDT": "AWDT", "MYT": "MYT", "HNPMX": "HNPMX", "UYT": "UYT", "CHAST": "CHAST", "ARST": "ARST", "LHST": "LHST", "IST": "ভাৰতীয় সময়", "HNEG": "HNEG", "SGT": "SGT", "UYST": "UYST", "WIT": "WIT", "NZST": "NZST", "CLT": "CLT", "GFT": "GFT", "TMT": "TMT", "PST": "PST", "HKT": "HKT", "BOT": "BOT", "COT": "COT", "HENOMX": "HENOMX", "HECU": "HECU", "WIB": "WIB", "HAT": "HAT", "MEZ": "MEZ", "MESZ": "MESZ", "LHDT": "LHDT", "WAST": "WAST", "GMT": "GMT", "ADT": "ADT", "AEST": "AEST", "SAST": "SAST", "GYT": "GYT", "WESZ": "WESZ", "WEZ": "WEZ", "ACWST": "ACWST", "ACWDT": "ACWDT", "ChST": "ChST", "EAT": "EAT", "SRT": "SRT", "CHADT": "CHADT", "HEPMX": "HEPMX", "VET": "VET", "HEOG": "HEOG", "AWST": "AWST", "ACDT": "ACDT", "WAT": "WAT", "ECT": "ECT", "HNNOMX": "HNNOMX", "EST": "EST", "HAST": "HAST", "AST": "AST", "AKDT": "AKDT", "ART": "ART", "∅∅∅": "∅∅∅", "ACST": "ACST", "WART": "WART", "BT": "BT", "HEPM": "HEPM", "JDT": "JDT", "HEEG": "HEEG", "WARST": "WARST", "HNPM": "HNPM", "NZDT": "NZDT", "OEZ": "OEZ", "HADT": "HADT", "CLST": "CLST", "CAT": "CAT", "OESZ": "OESZ", "MST": "MST", "HNT": "HNT", "HNOG": "HNOG", "COST": "COST", "PDT": "PDT", "TMST": "TMST", "HNCU": "HNCU", "MDT": "MDT", "AEDT": "AEDT"},
++ locale: "as_IN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 5, 6},
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HADT": "HADT", "HNCU": "HNCU", "HNT": "HNT", "COST": "COST", "WITA": "WITA", "GMT": "GMT", "ACDT": "ACDT", "HEEG": "HEEG", "ACWDT": "ACWDT", "CAT": "CAT", "HNEG": "HNEG", "WAST": "WAST", "AST": "AST", "BOT": "BOT", "MESZ": "MESZ", "ECT": "ECT", "ARST": "ARST", "HAST": "HAST", "AWDT": "AWDT", "WART": "WART", "EST": "EST", "PDT": "PDT", "WESZ": "WESZ", "OEZ": "OEZ", "MEZ": "MEZ", "HENOMX": "HENOMX", "HNPM": "HNPM", "UYT": "UYT", "IST": "IST", "WIB": "WIB", "ART": "ART", "HEOG": "HEOG", "HKST": "HKST", "CLT": "CLT", "AWST": "AWST", "MYT": "MYT", "BT": "BT", "AKST": "AKST", "SAST": "SAST", "CST": "CST", "NZST": "NZST", "LHST": "LHST", "ADT": "ADT", "UYST": "UYST", "∅∅∅": "∅∅∅", "GYT": "GYT", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "MDT": "MDT", "ChST": "ChST", "ACST": "ACST", "JST": "JST", "PST": "PST", "HECU": "HECU", "GFT": "GFT", "TMT": "TMT", "TMST": "TMST", "CDT": "CDT", "LHDT": "LHDT", "CHADT": "CHADT", "WAT": "WAT", "WIT": "WIT", "HNOG": "HNOG", "SRT": "SRT", "NZDT": "NZDT", "JDT": "JDT", "HEPMX": "HEPMX", "AKDT": "AKDT", "WARST": "WARST", "COT": "COT", "ACWST": "ACWST", "CHAST": "CHAST", "HNPMX": "HNPMX", "CLST": "CLST", "EAT": "EAT", "HEPM": "HEPM", "SGT": "SGT", "VET": "VET", "MST": "MST", "HKT": "HKT", "AEST": "AEST", "AEDT": "AEDT", "OESZ": "OESZ", "HAT": "HAT", "EDT": "EDT"},
+ }
+ }
+ 
+@@ -125,7 +115,7 @@ func (as *as_IN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (as *as_IN) MonthsAbbreviated() []string {
+- return as.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -145,7 +135,7 @@ func (as *as_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (as *as_IN) MonthsWide() []string {
+- return as.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -191,82 +181,13 @@ func (as *as_IN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'as_IN' and handles both Whole and Real numbers based on 'v'
+ func (as *as_IN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, as.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, as.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, as.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'as_IN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (as *as_IN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, as.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, as.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, as.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'as_IN'
+@@ -274,69 +195,7 @@ func (as *as_IN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := as.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, as.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, as.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(as.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, as.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, as.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, as.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'as_IN'
+@@ -345,81 +204,7 @@ func (as *as_IN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := as.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, as.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, as.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(as.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, as.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, as.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(as.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, as.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, as.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'as_IN'
+@@ -427,17 +212,6 @@ func (as *as_IN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,27 +220,6 @@ func (as *as_IN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,17 +228,6 @@ func (as *as_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, as.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -494,19 +236,6 @@ func (as *as_IN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, as.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, as.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -515,28 +244,6 @@ func (as *as_IN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, as.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, as.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -545,35 +252,6 @@ func (as *as_IN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, as.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, as.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -582,40 +260,6 @@ func (as *as_IN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, as.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, as.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -624,44 +268,5 @@ func (as *as_IN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, as.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, as.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := as.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/asa/asa.go b/asa/asa.go
+index f852c82..fc419b3 100644
+--- a/asa/asa.go
++++ b/asa/asa.go
+@@ -63,7 +63,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"KM", "BM"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kabla yakwe Yethu", "Baada yakwe Yethu"},
+- timezones: map[string]string{"AWDT": "AWDT", "LHST": "LHST", "TMT": "TMT", "HNPMX": "HNPMX", "BT": "BT", "ACST": "ACST", "ECT": "ECT", "EAT": "EAT", "PST": "PST", "WESZ": "WESZ", "HEEG": "HEEG", "MYT": "MYT", "WIB": "WIB", "HEOG": "HEOG", "ACWDT": "ACWDT", "NZDT": "NZDT", "CHADT": "CHADT", "TMST": "TMST", "HECU": "HECU", "JST": "JST", "ACDT": "ACDT", "WAT": "WAT", "ACWST": "ACWST", "EST": "EST", "HKT": "HKT", "CLST": "CLST", "GFT": "GFT", "WAST": "WAST", "COST": "COST", "HENOMX": "HENOMX", "CST": "CST", "ART": "ART", "HKST": "HKST", "WITA": "WITA", "JDT": "JDT", "ChST": "ChST", "HNEG": "HNEG", "GMT": "GMT", "ARST": "ARST", "MEZ": "MEZ", "ADT": "ADT", "WIT": "WIT", "SRT": "SRT", "WEZ": "WEZ", "COT": "COT", "PDT": "PDT", "HNOG": "HNOG", "HAT": "HAT", "HNPM": "HNPM", "OESZ": "OESZ", "WART": "WART", "HNNOMX": "HNNOMX", "HADT": "HADT", "VET": "VET", "MESZ": "MESZ", "NZST": "NZST", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "UYST": "UYST", "HEPM": "HEPM", "CHAST": "CHAST", "IST": "IST", "CAT": "CAT", "MST": "MST", "AEDT": "AEDT", "BOT": "BOT", "MDT": "MDT", "AST": "AST", "GYT": "GYT", "AKST": "AKST", "WARST": "WARST", "SGT": "SGT", "HAST": "HAST", "HNT": "HNT", "LHDT": "LHDT", "OEZ": "OEZ", "EDT": "EDT", "HEPMX": "HEPMX", "AKDT": "AKDT", "CDT": "CDT", "AEST": "AEST", "AWST": "AWST", "SAST": "SAST", "CLT": "CLT", "UYT": "UYT"},
++ timezones: map[string]string{"PST": "PST", "AKDT": "AKDT", "CST": "CST", "MDT": "MDT", "ARST": "ARST", "HEPM": "HEPM", "HEEG": "HEEG", "WIT": "WIT", "ART": "ART", "EAT": "EAT", "AEDT": "AEDT", "UYT": "UYT", "HNPMX": "HNPMX", "GFT": "GFT", "AST": "AST", "PDT": "PDT", "MYT": "MYT", "WARST": "WARST", "COST": "COST", "TMT": "TMT", "CLST": "CLST", "ADT": "ADT", "HADT": "HADT", "ACDT": "ACDT", "LHDT": "LHDT", "ACWDT": "ACWDT", "OESZ": "OESZ", "GMT": "GMT", "MEZ": "MEZ", "WEZ": "WEZ", "HKT": "HKT", "LHST": "LHST", "BT": "BT", "UYST": "UYST", "WAT": "WAT", "HAT": "HAT", "SAST": "SAST", "MST": "MST", "ACST": "ACST", "HNCU": "HNCU", "OEZ": "OEZ", "WART": "WART", "SGT": "SGT", "WESZ": "WESZ", "AKST": "AKST", "HNT": "HNT", "WITA": "WITA", "MESZ": "MESZ", "CHADT": "CHADT", "WAST": "WAST", "HKST": "HKST", "HNPM": "HNPM", "AWDT": "AWDT", "AEST": "AEST", "VET": "VET", "EST": "EST", "HNEG": "HNEG", "HECU": "HECU", "NZDT": "NZDT", "JST": "JST", "JDT": "JDT", "∅∅∅": "∅∅∅", "IST": "IST", "CHAST": "CHAST", "COT": "COT", "HEOG": "HEOG", "TMST": "TMST", "HNNOMX": "HNNOMX", "NZST": "NZST", "ECT": "ECT", "ChST": "ChST", "SRT": "SRT", "CAT": "CAT", "GYT": "GYT", "HNOG": "HNOG", "CDT": "CDT", "HAST": "HAST", "ACWST": "ACWST", "CLT": "CLT", "WIB": "WIB", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "EDT": "EDT", "BOT": "BOT", "AWST": "AWST"},
+ }
+ }
+ 
+diff --git a/asa_TZ/asa_TZ.go b/asa_TZ/asa_TZ.go
+index 6efae2d..706de5e 100644
+--- a/asa_TZ/asa_TZ.go
++++ b/asa_TZ/asa_TZ.go
+@@ -10,60 +10,45 @@ import (
+ )
+ 
+ type asa_TZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'asa_TZ' locale
+ func New() locales.Translator {
+ return &asa_TZ{
+- locale: "asa_TZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"},
+- daysAbbreviated: []string{"Jpi", "Jtt", "Jnn", "Jtn", "Alh", "Ijm", "Jmo"},
+- daysNarrow: []string{"J", "J", "J", "J", "A", "I", "J"},
+- daysWide: []string{"Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"},
+- periodsAbbreviated: []string{"icheheavo", "ichamthi"},
+- periodsWide: []string{"icheheavo", "ichamthi"},
+- erasAbbreviated: []string{"KM", "BM"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kabla yakwe Yethu", "Baada yakwe Yethu"},
+- timezones: map[string]string{"SRT": "SRT", "WEZ": "WEZ", "ECT": "ECT", "OEZ": "OEZ", "∅∅∅": "∅∅∅", "CST": "CST", "WIB": "WIB", "HNOG": "HNOG", "WITA": "WITA", "JST": "JST", "COST": "COST", "HNEG": "HNEG", "EST": "EST", "ART": "ART", "HAT": "HAT", "AEDT": "AEDT", "MEZ": "MEZ", "CHADT": "CHADT", "CLT": "CLT", "ACST": "ACST", "CAT": "CAT", "WAST": "WAST", "VET": "VET", "ARST": "ARST", "EAT": "EAT", "HNCU": "HNCU", "ADT": "ADT", "BOT": "BOT", "UYST": "UYST", "ACWST": "ACWST", "AWST": "AWST", "LHDT": "LHDT", "TMST": "TMST", "WART": "WART", "HENOMX": "HENOMX", "HAST": "HAST", "CLST": "CLST", "HNNOMX": "HNNOMX", "GMT": "GMT", "HEPMX": "HEPMX", "GYT": "GYT", "WESZ": "WESZ", "HKT": "HKT", "HNPMX": "HNPMX", "MYT": "MYT", "HADT": "HADT", "ACWDT": "ACWDT", "HEEG": "HEEG", "OESZ": "OESZ", "AST": "AST", "AKST": "AKST", "AWDT": "AWDT", "HEPM": "HEPM", "MESZ": "MESZ", "UYT": "UYT", "SAST": "SAST", "ACDT": "ACDT", "AKDT": "AKDT", "WIT": "WIT", "HEOG": "HEOG", "HNPM": "HNPM", "LHST": "LHST", "NZST": "NZST", "EDT": "EDT", "MDT": "MDT", "HKST": "HKST", "CHAST": "CHAST", "JDT": "JDT", "ChST": "ChST", "CDT": "CDT", "PST": "PST", "HNT": "HNT", "GFT": "GFT", "WARST": "WARST", "COT": "COT", "SGT": "SGT", "HECU": "HECU", "MST": "MST", "PDT": "PDT", "IST": "IST", "BT": "BT", "AEST": "AEST", "NZDT": "NZDT", "TMT": "TMT", "WAT": "WAT"},
++ locale: "asa_TZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MESZ": "MESZ", "TMST": "TMST", "WIB": "WIB", "CDT": "CDT", "NZST": "NZST", "MYT": "MYT", "HNPM": "HNPM", "AWST": "AWST", "OESZ": "OESZ", "SAST": "SAST", "WIT": "WIT", "COST": "COST", "ART": "ART", "HNEG": "HNEG", "CHADT": "CHADT", "HNCU": "HNCU", "HNPMX": "HNPMX", "WESZ": "WESZ", "VET": "VET", "EDT": "EDT", "BOT": "BOT", "ACDT": "ACDT", "AEST": "AEST", "AEDT": "AEDT", "PST": "PST", "LHST": "LHST", "LHDT": "LHDT", "ARST": "ARST", "GMT": "GMT", "HEPM": "HEPM", "COT": "COT", "CLST": "CLST", "AWDT": "AWDT", "NZDT": "NZDT", "ChST": "ChST", "GYT": "GYT", "CAT": "CAT", "CLT": "CLT", "HNNOMX": "HNNOMX", "BT": "BT", "HECU": "HECU", "HNT": "HNT", "HNOG": "HNOG", "AST": "AST", "MST": "MST", "EAT": "EAT", "JST": "JST", "AKDT": "AKDT", "HKST": "HKST", "ECT": "ECT", "ACWDT": "ACWDT", "UYT": "UYT", "WAST": "WAST", "OEZ": "OEZ", "WARST": "WARST", "SRT": "SRT", "∅∅∅": "∅∅∅", "CST": "CST", "HAST": "HAST", "IST": "IST", "HEPMX": "HEPMX", "HAT": "HAT", "HKT": "HKT", "CHAST": "CHAST", "UYST": "UYST", "HEEG": "HEEG", "HENOMX": "HENOMX", "ACST": "ACST", "JDT": "JDT", "ACWST": "ACWST", "EST": "EST", "MDT": "MDT", "MEZ": "MEZ", "SGT": "SGT", "WAT": "WAT", "AKST": "AKST", "HADT": "HADT", "WEZ": "WEZ", "WART": "WART", "ADT": "ADT", "PDT": "PDT", "GFT": "GFT", "HEOG": "HEOG", "TMT": "TMT", "WITA": "WITA"},
+ }
+ }
+ 
+@@ -116,7 +101,7 @@ func (asa *asa_TZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (asa *asa_TZ) MonthsAbbreviated() []string {
+- return asa.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -126,7 +111,7 @@ func (asa *asa_TZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (asa *asa_TZ) MonthsNarrow() []string {
+- return asa.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -136,7 +121,7 @@ func (asa *asa_TZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (asa *asa_TZ) MonthsWide() []string {
+- return asa.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -196,56 +181,7 @@ func (asa *asa_TZ) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := asa.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, asa.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, asa.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, asa.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, asa.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, asa.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'asa_TZ'
+@@ -254,63 +190,7 @@ func (asa *asa_TZ) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := asa.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, asa.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, asa.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, asa.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, asa.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, asa.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, asa.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'asa_TZ'
+@@ -318,27 +198,6 @@ func (asa *asa_TZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -347,17 +206,6 @@ func (asa *asa_TZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, asa.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -366,17 +214,6 @@ func (asa *asa_TZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, asa.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -385,19 +222,6 @@ func (asa *asa_TZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, asa.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, asa.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -406,19 +230,6 @@ func (asa *asa_TZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, asa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -427,26 +238,6 @@ func (asa *asa_TZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, asa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, asa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -455,30 +246,6 @@ func (asa *asa_TZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, asa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, asa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -487,34 +254,5 @@ func (asa *asa_TZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, asa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, asa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := asa.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ast/ast.go b/ast/ast.go
+index 90e5817..e5ddbef 100644
+--- a/ast/ast.go
++++ b/ast/ast.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"e.C.", "d.C."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"enantes de Cristu", "después de Cristu"},
+- timezones: map[string]string{"HKST": "Hora braniega de Ḥong Kong", "NZDT": "Hora braniega de Nueva Zelanda", "IST": "Hora estándar de la India", "HNCU": "Hora estándar de Cuba", "AKST": "Hora estándar d’Alaska", "WIB": "Hora d’Indonesia del oeste", "ARST": "Hora braniega d’Arxentina", "HKT": "Hora estándar de Ḥong Kong", "BOT": "Hora de Bolivia", "WAT": "Hora estándar d’África del oeste", "HEOG": "Hora braniega de Groenlandia occidental", "AWST": "Hora estándar d’Australia del oeste", "HADT": "Hora braniega de Hawaii-Aleutianes", "JDT": "Hora braniega de Xapón", "OESZ": "Hora braniega d’Europa del Este", "ECT": "Hora d’Ecuador", "NZST": "Hora estándar de Nueva Zelanda", "CLT": "Hora estándar de Chile", "CLST": "Hora braniega de Chile", "WARST": "Hora braniega occidental d’Arxentina", "CDT": "Hora braniega central norteamericana", "UYST": "Hora braniega del Uruguái", "WIT": "Hora d’Indonesia del este", "PST": "Hora estándar del Pacíficu norteamericanu", "ACDT": "Hora braniega d’Australia central", "CAT": "Hora d’África central", "HENOMX": "Hora braniega del noroeste de Méxicu", "CST": "Hora estándar central norteamericana", "GYT": "Hora de La Guyana", "HNOG": "Hora estándar de Groenlandia occidental", "WESZ": "Hora braniega d’Europa Occidental", "HEPMX": "Hora braniega del Pacíficu de Méxicu", "AEDT": "Hora braniega d’Australia del este", "TMT": "Hora estándar del Turkmenistán", "LHDT": "Hora braniega de Lord Howe", "HNEG": "Hora estándar de Groenlandia oriental", "GFT": "Hora de La Guyana Francesa", "HNNOMX": "Hora estándar del noroeste de Méxicu", "EST": "Hora estándar del este norteamericanu", "HAT": "Hora braniega de Newfoundland", "WEZ": "Hora estándar d’Europa Occidental", "MESZ": "Hora braniega d’Europa Central", "AKDT": "Hora braniega d’Alaska", "VET": "Hora de Venezuela", "BT": "Hora de Bután", "CHADT": "Hora braniega de Chatham", "MST": "Hora estándar de Macáu", "AST": "Hora estándar del Atlánticu", "HNT": "Hora estándar de Newfoundland", "COT": "Hora estándar de Colombia", "HECU": "Hora braniega de Cuba", "∅∅∅": "Hora braniega de Les Azores", "GMT": "Hora media de Greenwich", "EDT": "Hora braniega del este norteamericanu", "ChST": "Hora estándar de Chamorro", "PDT": "Hora braniega del Pacíficu norteamericanu", "LHST": "Hora estándar de Lord Howe", "SAST": "Hora de Sudáfrica", "HEEG": "Hora braniega de Groenlandia oriental", "TMST": "Hora braniega del Turkmenistán", "HNPM": "Hora estándar de Saint Pierre y Miquelon", "MEZ": "Hora estándar d’Europa Central", "HNPMX": "Hora estándar del Pacíficu de Méxicu", "ADT": "Hora braniega del Atlánticu", "MYT": "Hora de Malasia", "HAST": "Hora estándar de Hawaii-Aleutianes", "ACWDT": "Hora braniega d’Australia central del oeste", "OEZ": "Hora estándar d’Europa del Este", "WART": "Hora estándar occidental d’Arxentina", "SGT": "Hora estándar de Singapur", "MDT": "Hora braniega de Macáu", "JST": "Hora estándar de Xapón", "WAST": "Hora braniega d’África del oeste", "COST": "Hora braniega de Colombia", "WITA": "Hora d’Indonesia central", "AEST": "Hora estándar d’Australia del este", "HEPM": "Hora braniega de Saint Pierre y Miquelon", "EAT": "Hora d’África del este", "ART": "Hora estándar d’Arxentina", "CHAST": "Hora estándar de Chatham", "UYT": "Hora estándar del Uruguái", "SRT": "Hora del Surinam", "ACWST": "Hora estándar d’Australia central del oeste", "AWDT": "Hora braniega d’Australia del oeste", "ACST": "Hora estándar d’Australia central"},
++ timezones: map[string]string{"AEDT": "Hora braniega d’Australia del este", "VET": "Hora de Venezuela", "HECU": "Hora braniega de Cuba", "AKST": "Hora estándar d’Alaska", "COT": "Hora estándar de Colombia", "COST": "Hora braniega de Colombia", "WIB": "Hora d’Indonesia del oeste", "AWDT": "Hora braniega d’Australia del oeste", "CHAST": "Hora estándar de Chatham", "HNCU": "Hora estándar de Cuba", "MEZ": "Hora estándar d’Europa Central", "ACWST": "Hora estándar d’Australia central del oeste", "IST": "Hora estándar de la India", "PDT": "Hora braniega del Pacíficu norteamericanu", "GMT": "Hora media de Greenwich", "LHDT": "Hora braniega de Lord Howe", "EST": "Hora estándar del este norteamericanu", "HNEG": "Hora estándar de Groenlandia oriental", "OESZ": "Hora braniega d’Europa del Este", "HAT": "Hora braniega de Newfoundland", "HKT": "Hora estándar de Ḥong Kong", "ChST": "Hora estándar de Chamorro", "CDT": "Hora braniega central norteamericana", "SRT": "Hora del Surinam", "BT": "Hora de Bután", "NZDT": "Hora braniega de Nueva Zelanda", "ECT": "Hora d’Ecuador", "HNPMX": "Hora estándar del Pacíficu de Méxicu", "∅∅∅": "Hora braniega de Les Azores", "HEEG": "Hora braniega de Groenlandia oriental", "EAT": "Hora d’África del este", "ACDT": "Hora braniega d’Australia central", "HEPM": "Hora braniega de Saint Pierre y Miquelon", "JST": "Hora estándar de Xapón", "JDT": "Hora braniega de Xapón", "TMT": "Hora estándar del Turkmenistán", "CST": "Hora estándar central norteamericana", "AWST": "Hora estándar d’Australia del oeste", "UYT": "Hora estándar del Uruguái", "SGT": "Hora estándar de Singapur", "MST": "Hora estándar de Macáu", "ACST": "Hora estándar d’Australia central", "HNPM": "Hora estándar de Saint Pierre y Miquelon", "AEST": "Hora estándar d’Australia del este", "WEZ": "Hora estándar d’Europa Occidental", "WIT": "Hora d’Indonesia del este", "HNT": "Hora estándar de Newfoundland", "WARST": "Hora braniega occidental d’Arxentina", "CLT": "Hora estándar de Chile", "HAST": "Hora estándar de Hawaii-Aleutianes", "HNOG": "Hora estándar de Groenlandia occidental", "ACWDT": "Hora braniega d’Australia central del oeste", "GYT": "Hora de La Guyana", "TMST": "Hora braniega del Turkmenistán", "EDT": "Hora braniega del este norteamericanu", "ARST": "Hora braniega d’Arxentina", "BOT": "Hora de Bolivia", "WITA": "Hora d’Indonesia central", "MDT": "Hora braniega de Macáu", "ART": "Hora estándar d’Arxentina", "HADT": "Hora braniega de Hawaii-Aleutianes", "CAT": "Hora d’África central", "CLST": "Hora braniega de Chile", "ADT": "Hora braniega del Atlánticu", "HNNOMX": "Hora estándar del noroeste de Méxicu", "HENOMX": "Hora braniega del noroeste de Méxicu", "MYT": "Hora de Malasia", "WAST": "Hora braniega d’África del oeste", "AKDT": "Hora braniega d’Alaska", "HKST": "Hora braniega de Ḥong Kong", "NZST": "Hora estándar de Nueva Zelanda", "WART": "Hora estándar occidental d’Arxentina", "UYST": "Hora braniega del Uruguái", "HEPMX": "Hora braniega del Pacíficu de Méxicu", "WESZ": "Hora braniega d’Europa Occidental", "GFT": "Hora de La Guyana Francesa", "SAST": "Hora de Sudáfrica", "AST": "Hora estándar del Atlánticu", "CHADT": "Hora braniega de Chatham", "PST": "Hora estándar del Pacíficu norteamericanu", "WAT": "Hora estándar d’África del oeste", "OEZ": "Hora estándar d’Europa del Este", "HEOG": "Hora braniega de Groenlandia occidental", "MESZ": "Hora braniega d’Europa Central", "LHST": "Hora estándar de Lord Howe"},
+ }
+ }
+ 
+diff --git a/ast_ES/ast_ES.go b/ast_ES/ast_ES.go
+index efea916..af5e33c 100644
+--- a/ast_ES/ast_ES.go
++++ b/ast_ES/ast_ES.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ast_ES struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ast_ES' locale
+ func New() locales.Translator {
+ return &ast_ES{
+- locale: "ast_ES",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "xin", "feb", "mar", "abr", "may", "xun", "xnt", "ago", "set", "och", "pay", "avi"},
+- monthsNarrow: []string{"", "X", "F", "M", "A", "M", "X", "X", "A", "S", "O", "P", "A"},
+- monthsWide: []string{"", "de xineru", "de febreru", "de marzu", "d’abril", "de mayu", "de xunu", "de xunetu", "d’agostu", "de setiembre", "d’ochobre", "de payares", "d’avientu"},
+- daysAbbreviated: []string{"dom", "llu", "mar", "mié", "xue", "vie", "sáb"},
+- daysNarrow: []string{"D", "L", "M", "M", "X", "V", "S"},
+- daysShort: []string{"do", "ll", "ma", "mi", "xu", "vi", "sá"},
+- daysWide: []string{"domingu", "llunes", "martes", "miércoles", "xueves", "vienres", "sábadu"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"de la mañana", "de la tarde"},
+- erasAbbreviated: []string{"e.C.", "d.C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"enantes de Cristu", "después de Cristu"},
+- timezones: map[string]string{"HNEG": "Hora estándar de Groenlandia oriental", "HNCU": "Hora estándar de Cuba", "ARST": "Hora braniega d’Arxentina", "AWDT": "Hora braniega d’Australia del oeste", "LHDT": "Hora braniega de Lord Howe", "CHADT": "Hora braniega de Chatham", "JDT": "Hora braniega de Xapón", "ADT": "Hora braniega del Atlánticu", "VET": "Hora de Venezuela", "ACWST": "Hora estándar d’Australia central del oeste", "PDT": "Hora braniega del Pacíficu norteamericanu", "AEST": "Hora estándar d’Australia del este", "HEOG": "Hora braniega de Groenlandia occidental", "HKST": "Hora braniega de Ḥong Kong", "HEEG": "Hora braniega de Groenlandia oriental", "ACST": "Hora estándar d’Australia central", "EAT": "Hora d’África del este", "WART": "Hora estándar occidental d’Arxentina", "EST": "Hora estándar del este norteamericanu", "BT": "Hora de Bután", "GFT": "Hora de La Guyana Francesa", "TMST": "Hora braniega del Turkmenistán", "IST": "Hora estándar de la India", "WAST": "Hora braniega d’África del oeste", "COT": "Hora estándar de Colombia", "GMT": "Hora media de Greenwich", "NZST": "Hora estándar de Nueva Zelanda", "MESZ": "Hora braniega d’Europa Central", "WIT": "Hora d’Indonesia del este", "WESZ": "Hora braniega d’Europa Occidental", "CHAST": "Hora estándar de Chatham", "WAT": "Hora estándar d’África del oeste", "ECT": "Hora d’Ecuador", "CAT": "Hora d’África central", "HNPMX": "Hora estándar del Pacíficu de Méxicu", "GYT": "Hora de La Guyana", "TMT": "Hora estándar del Turkmenistán", "HENOMX": "Hora braniega del noroeste de Méxicu", "HNOG": "Hora estándar de Groenlandia occidental", "PST": "Hora estándar del Pacíficu norteamericanu", "MST": "Hora estándar de Macáu", "UYST": "Hora braniega del Uruguái", "OESZ": "Hora braniega d’Europa del Este", "MDT": "Hora braniega de Macáu", "AKST": "Hora estándar d’Alaska", "SRT": "Hora del Surinam", "HKT": "Hora estándar de Ḥong Kong", "JST": "Hora estándar de Xapón", "COST": "Hora braniega de Colombia", "HEPMX": "Hora braniega del Pacíficu de Méxicu", "AKDT": "Hora braniega d’Alaska", "CDT": "Hora braniega central norteamericana", "UYT": "Hora estándar del Uruguái", "HECU": "Hora braniega de Cuba", "WIB": "Hora d’Indonesia del oeste", "CST": "Hora estándar central norteamericana", "SAST": "Hora de Sudáfrica", "WARST": "Hora braniega occidental d’Arxentina", "WEZ": "Hora estándar d’Europa Occidental", "ACWDT": "Hora braniega d’Australia central del oeste", "HNT": "Hora estándar de Newfoundland", "BOT": "Hora de Bolivia", "HNNOMX": "Hora estándar del noroeste de Méxicu", "HAT": "Hora braniega de Newfoundland", "ART": "Hora estándar d’Arxentina", "WITA": "Hora d’Indonesia central", "MEZ": "Hora estándar d’Europa Central", "HEPM": "Hora braniega de Saint Pierre y Miquelon", "CLT": "Hora estándar de Chile", "OEZ": "Hora estándar d’Europa del Este", "AST": "Hora estándar del Atlánticu", "HAST": "Hora estándar de Hawaii-Aleutianes", "AWST": "Hora estándar d’Australia del oeste", "HNPM": "Hora estándar de Saint Pierre y Miquelon", "CLST": "Hora braniega de Chile", "ChST": "Hora estándar de Chamorro", "ACDT": "Hora braniega d’Australia central", "MYT": "Hora de Malasia", "HADT": "Hora braniega de Hawaii-Aleutianes", "AEDT": "Hora braniega d’Australia del este", "LHST": "Hora estándar de Lord Howe", "∅∅∅": "Hora braniega del Perú", "SGT": "Hora estándar de Singapur", "EDT": "Hora braniega del este norteamericanu", "NZDT": "Hora braniega de Nueva Zelanda"},
++ locale: "ast_ES",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNPM": "HNPM", "AKST": "AKST", "NZDT": "NZDT", "ADT": "ADT", "MEZ": "MEZ", "LHDT": "LHDT", "WAT": "WAT", "TMST": "TMST", "EDT": "EDT", "WITA": "WITA", "LHST": "LHST", "ChST": "ChST", "MESZ": "MESZ", "EST": "EST", "JDT": "JDT", "VET": "VET", "HNPMX": "HNPMX", "COT": "COT", "TMT": "TMT", "SAST": "SAST", "NZST": "NZST", "SRT": "SRT", "JST": "JST", "BT": "BT", "AEDT": "AEDT", "HECU": "HECU", "AKDT": "AKDT", "ACDT": "ACDT", "WAST": "WAST", "HNOG": "HNOG", "AEST": "AEST", "UYT": "UYT", "UYST": "UYST", "PST": "PST", "WESZ": "WESZ", "HAST": "HAST", "HNEG": "HNEG", "ACWST": "ACWST", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "CAT": "CAT", "CLST": "CLST", "ACST": "ACST", "AWDT": "AWDT", "OESZ": "OESZ", "HNT": "HNT", "HEOG": "HEOG", "EAT": "EAT", "HEPM": "HEPM", "ACWDT": "ACWDT", "CHADT": "CHADT", "PDT": "PDT", "GMT": "GMT", "WEZ": "WEZ", "WIB": "WIB", "AST": "AST", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "CST": "CST", "CDT": "CDT", "CHAST": "CHAST", "HEPMX": "HEPMX", "SGT": "SGT", "HADT": "HADT", "HENOMX": "HENOMX", "COST": "COST", "HKST": "HKST", "ECT": "ECT", "IST": "IST", "HNCU": "HNCU", "GFT": "GFT", "WIT": "WIT", "WARST": "WARST", "ARST": "ARST", "BOT": "BOT", "GYT": "GYT", "CLT": "CLT", "MYT": "MYT", "HAT": "HAT", "HKT": "HKT", "MDT": "MDT", "ART": "ART", "AWST": "AWST", "WART": "WART", "MST": "MST"},
+ }
+ }
+ 
+@@ -125,7 +102,7 @@ func (ast *ast_ES) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ast *ast_ES) MonthsAbbreviated() []string {
+- return ast.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -135,7 +112,7 @@ func (ast *ast_ES) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ast *ast_ES) MonthsNarrow() []string {
+- return ast.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -145,7 +122,7 @@ func (ast *ast_ES) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ast *ast_ES) MonthsWide() []string {
+- return ast.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -191,73 +168,13 @@ func (ast *ast_ES) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ast_ES' and handles both Whole and Real numbers based on 'v'
+ func (ast *ast_ES) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ast.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ast.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ast.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ast_ES' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ast *ast_ES) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ast.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ast.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ast.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ast_ES'
+@@ -265,56 +182,7 @@ func (ast *ast_ES) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ast.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ast.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ast.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ast.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ast.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ast.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ast_ES'
+@@ -323,63 +191,7 @@ func (ast *ast_ES) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ast.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ast.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ast.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ast.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ast.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ast.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ast.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ast_ES'
+@@ -387,17 +199,6 @@ func (ast *ast_ES) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -406,17 +207,6 @@ func (ast *ast_ES) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ast.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -425,18 +215,6 @@ func (ast *ast_ES) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ast.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -445,20 +223,6 @@ func (ast *ast_ES) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ast.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ast.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -467,19 +231,6 @@ func (ast *ast_ES) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ast.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -488,26 +239,6 @@ func (ast *ast_ES) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ast.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ast.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -516,30 +247,6 @@ func (ast *ast_ES) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ast.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ast.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -548,34 +255,5 @@ func (ast *ast_ES) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ast.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ast.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ast.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/az/az.go b/az/az.go
+index 16876e4..e9be608 100644
+--- a/az/az.go
++++ b/az/az.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"e.ə.", "y.e."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"eramızdan əvvəl", "yeni era"},
+- timezones: map[string]string{"∅∅∅": "Amazon Yay Vaxtı", "HEEG": "Şərqi Qrenlandiya Yay Vaxtı", "AST": "Atlantik Standart Vaxt", "CLST": "Çili Yay Vaxtı", "EAT": "Şərqi Afrika Vaxtı", "OEZ": "Şərqi Avropa Standart Vaxtı", "WART": "Qərbi Argentina Standart Vaxtı", "HENOMX": "Şimal-Qərbi Meksika Yay Vaxtı", "CDT": "Şimali Mərkəzi Amerika Yay Vaxtı", "HAST": "Havay-Aleut Standart Vaxtı", "TMST": "Türkmənistan Yay Vaxtı", "ACST": "Mərkəzi Avstraliya Standart Vaxtı", "WAST": "Qərbi Afrika Yay Vaxtı", "WIB": "Qərbi İndoneziya Vaxtı", "HKST": "Honq Konq Yay Vaxtı", "GMT": "Qrinviç Orta Vaxtı", "AKST": "Alyaska Standart Vaxtı", "ACWST": "Mərkəzi Qərbi Avstraliya Standart Vaxtı", "HAT": "Nyufaundlend Yay Vaxtı", "AEST": "Şərqi Avstraliya Standart Vaxtı", "HKT": "Honq Konq Standart Vaxtı", "HNPM": "San Pier və Mikelon Standart Vaxtı", "JST": "Yaponiya Standart Vaxtı", "WARST": "Qərbi Argentina Yay Vaxtı", "EST": "Şimali Şərqi Amerika Standart Vaxtı", "WESZ": "Qərbi Avropa Yay Vaxtı", "GYT": "Qayana Vaxtı", "SRT": "Surinam Vaxtı", "PST": "Şimali Amerika Sakit Okean Standart Vaxtı", "ARST": "Argentina Yay Vaxtı", "AWST": "Qərbi Avstraliya Standart Vaxtı", "HADT": "Havay-Aleut Yay Vaxtı", "NZST": "Yeni Zelandiya Standart Vaxtı", "ChST": "Çamorro Vaxtı", "COT": "Kolumbiya Standart Vaxtı", "COST": "Kolumbiya Yay Vaxtı", "MDT": "MDT", "UYST": "Uruqvay Yay Vaxtı", "WIT": "Şərqi İndoneziya Vaxtı", "HNCU": "Kuba Standart Vaxtı", "HECU": "Kuba Yay Vaxtı", "AKDT": "Alyaska Yay Vaxtı", "BT": "Butan Vaxtı", "HNNOMX": "Şimal-Qərbi Meksika Standart Vaxtı", "SGT": "Sinqapur Vaxtı", "MST": "MST", "ART": "Argentina Standart Vaxtı", "MEZ": "Mərkəzi Avropa Standart Vaxtı", "MESZ": "Mərkəzi Avropa Yay Vaxtı", "OESZ": "Şərqi Avropa Yay Vaxtı", "HEPMX": "Meksika Sakit Okean Yay Vaxtı", "HNOG": "Qərbi Qrenlandiya Standart Vaxtı", "HNPMX": "Meksika Sakit Okean Standart Vaxtı", "MYT": "Malayziya Vaxtı", "TMT": "Türkmənistan Standart Vaxtı", "LHST": "Lord Hau Standart Vaxtı", "NZDT": "Yeni Zelandiya Yay Vaxtı", "IST": "Hindistan Vaxtı", "CLT": "Çili Standart Vaxtı", "BOT": "Boliviya Vaxtı", "CAT": "Mərkəzi Afrika Vaxtı", "VET": "Venesuela Vaxtı", "CHAST": "Çatham Standart Vaxtı", "SAST": "Cənubi Afrika Vaxtı", "JDT": "Yaponiya Yay Vaxtı", "HNEG": "Şərqi Qrenlandiya Standart Vaxtı", "ACDT": "Mərkəzi Avstraliya Yay Vaxtı", "WAT": "Qərbi Afrika Standart Vaxtı", "WEZ": "Qərbi Avropa Standart Vaxtı", "ACWDT": "Mərkəzi Qərbi Avstraliya Yay Vaxtı", "HNT": "Nyufaundlend Standart Vaxtı", "LHDT": "Lord Hau Yay vaxtı", "GFT": "Fransız Qvianası Vaxtı", "UYT": "Uruqvay Standart Vaxtı", "ADT": "Atlantik Yay Vaxtı", "PDT": "Şimali Amerika Sakit Okean Yay Vaxtı", "WITA": "Mərkəzi İndoneziya Vaxtı", "CHADT": "Çatham Yay Vaxtı", "ECT": "Ekvador Vaxtı", "HEOG": "Qərbi Qrenlandiya Yay Vaxtı", "AWDT": "Qərbi Avstraliya Yay Vaxtı", "HEPM": "San Pier və Mikelon Yay Vaxtı", "EDT": "Şimali Şərqi Amerika Yay Vaxtı", "CST": "Şimali Mərkəzi Amerika Standart Vaxtı", "AEDT": "Şərqi Avstraliya Yay Vaxtı"},
++ timezones: map[string]string{"CLST": "Çili Yay Vaxtı", "BOT": "Boliviya Vaxtı", "ACDT": "Mərkəzi Avstraliya Yay Vaxtı", "COT": "Kolumbiya Standart Vaxtı", "IST": "Hindistan Vaxtı", "PDT": "Şimali Amerika Sakit Okean Yay Vaxtı", "VET": "Venesuela Vaxtı", "OESZ": "Şərqi Avropa Yay Vaxtı", "CLT": "Çili Standart Vaxtı", "SRT": "Surinam Vaxtı", "LHST": "Lord Hau Standart Vaxtı", "AKST": "Alyaska Standart Vaxtı", "OEZ": "Şərqi Avropa Standart Vaxtı", "GFT": "Fransız Qvianası Vaxtı", "HNOG": "Qərbi Qrenlandiya Standart Vaxtı", "HKST": "Honq Konq Yay Vaxtı", "WIB": "Qərbi İndoneziya Vaxtı", "AST": "Atlantik Standart Vaxt", "MESZ": "Mərkəzi Avropa Yay Vaxtı", "HEEG": "Şərqi Qrenlandiya Yay Vaxtı", "AWST": "Qərbi Avstraliya Standart Vaxtı", "HNPM": "San Pier və Mikelon Standart Vaxtı", "UYT": "Uruqvay Standart Vaxtı", "SAST": "Cənubi Afrika Vaxtı", "NZST": "Yeni Zelandiya Standart Vaxtı", "ADT": "Atlantik Yay Vaxtı", "ARST": "Argentina Yay Vaxtı", "HENOMX": "Şimal-Qərbi Meksika Yay Vaxtı", "MYT": "Malayziya Vaxtı", "AEST": "Şərqi Avstraliya Standart Vaxtı", "CAT": "Mərkəzi Afrika Vaxtı", "ART": "Argentina Standart Vaxtı", "HNEG": "Şərqi Qrenlandiya Standart Vaxtı", "AWDT": "Qərbi Avstraliya Yay Vaxtı", "JDT": "Yaponiya Yay Vaxtı", "ChST": "Çamorro Vaxtı", "HADT": "Havay-Aleut Yay Vaxtı", "WEZ": "Qərbi Avropa Standart Vaxtı", "WAT": "Qərbi Afrika Standart Vaxtı", "WAST": "Qərbi Afrika Yay Vaxtı", "HAT": "Nyufaundlend Yay Vaxtı", "TMT": "Türkmənistan Standart Vaxtı", "WIT": "Şərqi İndoneziya Vaxtı", "EDT": "Şimali Şərqi Amerika Yay Vaxtı", "HKT": "Honq Konq Standart Vaxtı", "WITA": "Mərkəzi İndoneziya Vaxtı", "GMT": "Qrinviç Orta Vaxtı", "HAST": "Havay-Aleut Standart Vaxtı", "WARST": "Qərbi Argentina Yay Vaxtı", "TMST": "Türkmənistan Yay Vaxtı", "MST": "MST", "MDT": "MDT", "CST": "Şimali Mərkəzi Amerika Standart Vaxtı", "EAT": "Şərqi Afrika Vaxtı", "JST": "Yaponiya Standart Vaxtı", "ACWST": "Mərkəzi Qərbi Avstraliya Standart Vaxtı", "ACWDT": "Mərkəzi Qərbi Avstraliya Yay Vaxtı", "AEDT": "Şərqi Avstraliya Yay Vaxtı", "HNT": "Nyufaundlend Standart Vaxtı", "COST": "Kolumbiya Yay Vaxtı", "EST": "Şimali Şərqi Amerika Standart Vaxtı", "ECT": "Ekvador Vaxtı", "ACST": "Mərkəzi Avstraliya Standart Vaxtı", "UYST": "Uruqvay Yay Vaxtı", "HNCU": "Kuba Standart Vaxtı", "WART": "Qərbi Argentina Standart Vaxtı", "NZDT": "Yeni Zelandiya Yay Vaxtı", "BT": "Butan Vaxtı", "SGT": "Sinqapur Vaxtı", "HEOG": "Qərbi Qrenlandiya Yay Vaxtı", "HNNOMX": "Şimal-Qərbi Meksika Standart Vaxtı", "LHDT": "Lord Hau Yay vaxtı", "WESZ": "Qərbi Avropa Yay Vaxtı", "AKDT": "Alyaska Yay Vaxtı", "PST": "Şimali Amerika Sakit Okean Standart Vaxtı", "CHAST": "Çatham Standart Vaxtı", "HECU": "Kuba Yay Vaxtı", "HNPMX": "Meksika Sakit Okean Standart Vaxtı", "HEPMX": "Meksika Sakit Okean Yay Vaxtı", "GYT": "Qayana Vaxtı", "∅∅∅": "Braziliya Yay Vaxtı", "CDT": "Şimali Mərkəzi Amerika Yay Vaxtı", "MEZ": "Mərkəzi Avropa Standart Vaxtı", "HEPM": "San Pier və Mikelon Yay Vaxtı", "CHADT": "Çatham Yay Vaxtı"},
+ }
+ }
+ 
+@@ -112,9 +112,9 @@ func (az *az) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+ i := int64(n)
++ iMod10 := i % 10
+ iMod100 := i % 100
+ iMod1000 := i % 1000
+- iMod10 := i % 10
+ 
+ if (iMod10 == 1 || iMod10 == 2 || iMod10 == 5 || iMod10 == 7 || iMod10 == 8) || (iMod100 == 20 || iMod100 == 50 || iMod100 == 70 || iMod100 == 80) {
+ return locales.PluralRuleOne
+diff --git a/az_Cyrl/az_Cyrl.go b/az_Cyrl/az_Cyrl.go
+index 4d8a733..dd53362 100644
+--- a/az_Cyrl/az_Cyrl.go
++++ b/az_Cyrl/az_Cyrl.go
+@@ -59,7 +59,6 @@ func New() locales.Translator {
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: " ",
+ monthsAbbreviated: []string{"", "јан", "фев", "мар", "апр", "май", "ијн", "ијл", "авг", "сен", "окт", "ној", "дек"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+ monthsWide: []string{"", "јанвар", "феврал", "март", "апрел", "май", "ијун", "ијул", "август", "сентјабр", "октјабр", "нојабр", "декабр"},
+ daysAbbreviated: []string{"Б.", "Б.Е.", "Ч.А.", "Ч.", "Ҹ.А.", "Ҹ.", "Ш."},
+ daysNarrow: []string{"7", "1", "2", "3", "4", "5", "6"},
+@@ -71,7 +70,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"е.ә.", "ј.е."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"ерамыздан әввәл", "јени ера"},
+- timezones: map[string]string{"WITA": "Mərkəzi İndoneziya Vaxtı", "CLST": "Çili Yay Vaxtı", "GFT": "Fransız Qvianası Vaxtı", "GMT": "Qrinviç Orta Vaxtı", "SGT": "Sinqapur Vaxtı", "IST": "Hindistan Vaxtı", "JDT": "Yaponiya Yay Vaxtı", "OEZ": "Şərqi Avropa Standart Vaxtı", "WARST": "Qərbi Argentina Yay Vaxtı", "ADT": "Atlantik Yay Vaxtı", "NZDT": "Yeni Zelandiya Yay Vaxtı", "COT": "Kolumbiya Standart Vaxtı", "HNNOMX": "Şimal-Qərbi Meksika Standart Vaxtı", "EST": "Şimali Şərqi Amerika Standart Vaxtı", "MST": "MST", "MDT": "MDT", "MYT": "Malayziya Vaxtı", "ACWST": "Mərkəzi Qərbi Avstraliya Standart Vaxtı", "HAT": "Nyufaundlend Yay Vaxtı", "WAT": "Qərbi Afrika Standart Vaxtı", "OESZ": "Şərqi Avropa Yay Vaxtı", "CDT": "Şimali Mərkəzi Amerika Yay Vaxtı", "SAST": "Cənubi Afrika Vaxtı", "HENOMX": "Şimal-Qərbi Meksika Yay Vaxtı", "PST": "Şimali Amerika Sakit Okean Standart Vaxtı", "AWDT": "Qərbi Avstraliya Yay Vaxtı", "HNPM": "San Pier və Mikelon Standart Vaxtı", "MEZ": "Mərkəzi Avropa Standart Vaxtı", "CLT": "Çili Standart Vaxtı", "ACWDT": "Mərkəzi Qərbi Avstraliya Yay Vaxtı", "HNT": "Nyufaundlend Standart Vaxtı", "HKT": "Honq Konq Standart Vaxtı", "JST": "Yaponiya Standart Vaxtı", "TMT": "Türkmənistan Standart Vaxtı", "ECT": "Ekvador Vaxtı", "COST": "Kolumbiya Yay Vaxtı", "UYT": "Uruqvay Standart Vaxtı", "AKDT": "Alyaska Yay Vaxtı", "AEST": "Şərqi Avstraliya Standart Vaxtı", "CHAST": "Çatham Standart Vaxtı", "ChST": "Çamorro Vaxtı", "EAT": "Şərqi Afrika Vaxtı", "WAST": "Qərbi Afrika Yay Vaxtı", "GYT": "Qayana Vaxtı", "ART": "Argentina Standart Vaxtı", "HNOG": "Qərbi Qrenlandiya Standart Vaxtı", "HEOG": "Qərbi Qrenlandiya Yay Vaxtı", "AEDT": "Şərqi Avstraliya Yay Vaxtı", "MESZ": "Mərkəzi Avropa Yay Vaxtı", "WART": "Qərbi Argentina Standart Vaxtı", "HECU": "Kuba Yay Vaxtı", "HEPM": "San Pier və Mikelon Yay Vaxtı", "TMST": "Türkmənistan Yay Vaxtı", "AST": "Atlantik Standart Vaxt", "BT": "Butan Vaxtı", "AWST": "Qərbi Avstraliya Standart Vaxtı", "HNCU": "Kuba Standart Vaxtı", "AKST": "Alyaska Standart Vaxtı", "CST": "Şimali Mərkəzi Amerika Standart Vaxtı", "HADT": "Havay-Aleut Yay Vaxtı", "SRT": "Surinam Vaxtı", "ARST": "Argentina Yay Vaxtı", "HKST": "Honq Konq Yay Vaxtı", "LHDT": "Lord Hau Yay vaxtı", "ACDT": "Mərkəzi Avstraliya Yay Vaxtı", "HNPMX": "Meksika Sakit Okean Standart Vaxtı", "UYST": "Uruqvay Yay Vaxtı", "HAST": "Havay-Aleut Standart Vaxtı", "WESZ": "Qərbi Avropa Yay Vaxtı", "LHST": "Lord Hau Standart Vaxtı", "BOT": "Boliviya Vaxtı", "ACST": "Mərkəzi Avstraliya Standart Vaxtı", "HEPMX": "Meksika Sakit Okean Yay Vaxtı", "WIB": "Qərbi İndoneziya Vaxtı", "VET": "Venesuela Vaxtı", "WIT": "Şərqi İndoneziya Vaxtı", "CAT": "Mərkəzi Afrika Vaxtı", "EDT": "Şimali Şərqi Amerika Yay Vaxtı", "PDT": "Şimali Amerika Sakit Okean Yay Vaxtı", "∅∅∅": "Amazon Yay Vaxtı", "HNEG": "Şərqi Qrenlandiya Standart Vaxtı", "HEEG": "Şərqi Qrenlandiya Yay Vaxtı", "WEZ": "Qərbi Avropa Standart Vaxtı", "NZST": "Yeni Zelandiya Standart Vaxtı", "CHADT": "Çatham Yay Vaxtı"},
++ timezones: map[string]string{"HEPM": "HEPM", "WARST": "WARST", "ECT": "ECT", "MDT": "MDT", "AEDT": "AEDT", "CHAST": "CHAST", "WESZ": "WESZ", "WIT": "WIT", "ACDT": "ACDT", "WAST": "WAST", "SAST": "SAST", "ChST": "ChST", "ARST": "ARST", "ACST": "ACST", "HNPM": "HNPM", "MYT": "MYT", "IST": "IST", "HNPMX": "HNPMX", "COT": "COT", "CLST": "CLST", "GMT": "GMT", "SRT": "SRT", "WIB": "WIB", "HENOMX": "HENOMX", "JDT": "JDT", "AWDT": "AWDT", "ACWST": "ACWST", "ACWDT": "ACWDT", "VET": "VET", "HKT": "HKT", "NZDT": "NZDT", "AST": "AST", "ADT": "ADT", "NZST": "NZST", "HAST": "HAST", "MESZ": "MESZ", "LHST": "LHST", "CHADT": "CHADT", "GFT": "GFT", "WART": "WART", "HKST": "HKST", "HNT": "HNT", "HNEG": "HNEG", "JST": "JST", "AEST": "AEST", "PST": "PST", "PDT": "PDT", "BT": "BT", "HNCU": "HNCU", "CAT": "CAT", "CST": "CST", "HADT": "HADT", "MEZ": "MEZ", "UYT": "UYT", "HECU": "HECU", "COST": "COST", "BOT": "BOT", "WEZ": "WEZ", "OEZ": "OEZ", "HNOG": "HNOG", "EST": "EST", "TMST": "TMST", "CLT": "CLT", "HNNOMX": "HNNOMX", "UYST": "UYST", "SGT": "SGT", "AKDT": "AKDT", "OESZ": "OESZ", "HEOG": "HEOG", "EDT": "EDT", "WITA": "WITA", "CDT": "CDT", "HEPMX": "HEPMX", "HAT": "HAT", "MST": "MST", "EAT": "EAT", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "WAT": "WAT", "AKST": "AKST", "GYT": "GYT", "ART": "ART", "TMT": "TMT", "HEEG": "HEEG", "AWST": "AWST"},
+ }
+ }
+ 
+@@ -112,9 +111,9 @@ func (az *az_Cyrl) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+ i := int64(n)
++ iMod10 := i % 10
+ iMod100 := i % 100
+ iMod1000 := i % 1000
+- iMod10 := i % 10
+ 
+ if (iMod10 == 1 || iMod10 == 2 || iMod10 == 5 || iMod10 == 7 || iMod10 == 8) || (iMod100 == 20 || iMod100 == 50 || iMod100 == 70 || iMod100 == 80) {
+ return locales.PluralRuleOne
+@@ -160,7 +159,7 @@ func (az *az_Cyrl) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (az *az_Cyrl) MonthsNarrow() []string {
+- return az.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+diff --git a/az_Cyrl_AZ/az_Cyrl_AZ.go b/az_Cyrl_AZ/az_Cyrl_AZ.go
+index 4d5148a..9848418 100644
+--- a/az_Cyrl_AZ/az_Cyrl_AZ.go
++++ b/az_Cyrl_AZ/az_Cyrl_AZ.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type az_Cyrl_AZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'az_Cyrl_AZ' locale
+ func New() locales.Translator {
+ return &az_Cyrl_AZ{
+- locale: "az_Cyrl_AZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 4, 5, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "yan", "fev", "mar", "apr", "may", "iyn", "iyl", "avq", "sen", "okt", "noy", "dek"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "yanvar", "fevral", "mart", "aprel", "may", "iyun", "iyul", "avqust", "sentyabr", "oktyabr", "noyabr", "dekabr"},
+- daysAbbreviated: []string{"B.", "B.E.", "Ç.A.", "Ç.", "C.A.", "C.", "Ş."},
+- daysNarrow: []string{"7", "1", "2", "3", "4", "5", "6"},
+- daysShort: []string{"B.", "B.E.", "Ç.A.", "Ç.", "C.A.", "C.", "Ş."},
+- daysWide: []string{"bazar", "bazar ertəsi", "çərşənbə axşamı", "çərşənbə", "cümə axşamı", "cümə", "şənbə"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"e.ə.", "y.e."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"eramızdan əvvəl", "yeni era"},
+- timezones: map[string]string{"WEZ": "Qərbi Avropa Standart Vaxtı", "HKT": "Honq Konq Standart Vaxtı", "HNT": "Nyufaundlend Standart Vaxtı", "COST": "Kolumbiya Yay Vaxtı", "CST": "Şimali Mərkəzi Amerika Standart Vaxtı", "SRT": "Surinam Vaxtı", "HNPM": "San Pier və Mikelon Standart Vaxtı", "ACST": "Mərkəzi Avstraliya Standart Vaxtı", "CAT": "Mərkəzi Afrika Vaxtı", "MDT": "Şimali Dağlıq Amerika Yay Vaxtı", "WITA": "Mərkəzi İndoneziya Vaxtı", "CHAST": "Çatham Standart Vaxtı", "AWST": "Qərbi Avstraliya Standart Vaxtı", "JDT": "Yaponiya Yay Vaxtı", "ECT": "Ekvador Vaxtı", "JST": "Yaponiya Standart Vaxtı", "BOT": "Boliviya Vaxtı", "ACDT": "Mərkəzi Avstraliya Yay Vaxtı", "AKST": "Alyaska Standart Vaxtı", "ACWDT": "Mərkəzi Qərbi Avstraliya Yay Vaxtı", "AEST": "Şərqi Avstraliya Standart Vaxtı", "NZDT": "Yeni Zelandiya Yay Vaxtı", "AWDT": "Qərbi Avstraliya Yay Vaxtı", "MYT": "Malayziya Vaxtı", "SAST": "Cənubi Afrika Vaxtı", "IST": "Hindistan Vaxtı", "GFT": "Fransız Qvianası Vaxtı", "OEZ": "Şərqi Avropa Standart Vaxtı", "HNCU": "Kuba Standart Vaxtı", "HEOG": "Qərbi Qrenlandiya Yay Vaxtı", "HKST": "Honq Konq Yay Vaxtı", "LHST": "Lord Hau Standart Vaxtı", "AKDT": "Alyaska Yay Vaxtı", "CDT": "Şimali Mərkəzi Amerika Yay Vaxtı", "BT": "Butan Vaxtı", "ART": "Argentina Standart Vaxtı", "∅∅∅": "Amazon Yay Vaxtı", "WARST": "Qərbi Argentina Yay Vaxtı", "EST": "Şimali Şərqi Amerika Standart Vaxtı", "WIB": "Qərbi İndoneziya Vaxtı", "HADT": "Havay-Aleut Yay Vaxtı", "WIT": "Şərqi İndoneziya Vaxtı", "AST": "Atlantik Standart Vaxt", "HEPMX": "Meksika Sakit Okean Yay Vaxtı", "WESZ": "Qərbi Avropa Yay Vaxtı", "TMT": "Türkmənistan Standart Vaxtı", "HNNOMX": "Şimal-Qərbi Meksika Standart Vaxtı", "ARST": "Argentina Yay Vaxtı", "AEDT": "Şərqi Avstraliya Yay Vaxtı", "MESZ": "Mərkəzi Avropa Yay Vaxtı", "ChST": "Çamorro Vaxtı", "HECU": "Kuba Yay Vaxtı", "MST": "Şimali Dağlıq Amerika Standart Vaxtı", "PDT": "Şimali Amerika Sakit Okean Yay Vaxtı", "HAT": "Nyufaundlend Yay Vaxtı", "HNPMX": "Meksika Sakit Okean Standart Vaxtı", "UYST": "Uruqvay Yay Vaxtı", "CLST": "Çili Yay Vaxtı", "TMST": "Türkmənistan Yay Vaxtı", "WAT": "Qərbi Afrika Standart Vaxtı", "SGT": "Sinqapur Vaxtı", "GYT": "Qayana Vaxtı", "MEZ": "Mərkəzi Avropa Standart Vaxtı", "LHDT": "Lord Hau Yay vaxtı", "NZST": "Yeni Zelandiya Standart Vaxtı", "ADT": "Atlantik Yay Vaxtı", "HAST": "Havay-Aleut Standart Vaxtı", "PST": "Şimali Amerika Sakit Okean Standart Vaxtı", "UYT": "Uruqvay Standart Vaxtı", "HEEG": "Şərqi Qrenlandiya Yay Vaxtı", "EAT": "Şərqi Afrika Vaxtı", "WAST": "Qərbi Afrika Yay Vaxtı", "EDT": "Şimali Şərqi Amerika Yay Vaxtı", "VET": "Venesuela Vaxtı", "ACWST": "Mərkəzi Qərbi Avstraliya Standart Vaxtı", "HEPM": "San Pier və Mikelon Yay Vaxtı", "WART": "Qərbi Argentina Standart Vaxtı", "HENOMX": "Şimal-Qərbi Meksika Yay Vaxtı", "CHADT": "Çatham Yay Vaxtı", "HNEG": "Şərqi Qrenlandiya Standart Vaxtı", "OESZ": "Şərqi Avropa Yay Vaxtı", "GMT": "Qrinviç Orta Vaxtı", "HNOG": "Qərbi Qrenlandiya Standart Vaxtı", "CLT": "Çili Standart Vaxtı", "COT": "Kolumbiya Standart Vaxtı"},
++ locale: "az_Cyrl_AZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 4, 5, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CST": "CST", "HENOMX": "HENOMX", "AEDT": "AEDT", "ACWDT": "ACWDT", "CHAST": "CHAST", "WAST": "WAST", "AKDT": "AKDT", "UYT": "UYT", "IST": "IST", "PDT": "PDT", "LHST": "LHST", "PST": "PST", "LHDT": "LHDT", "ACWST": "ACWST", "COST": "COST", "HNOG": "HNOG", "CLST": "CLST", "WITA": "WITA", "GMT": "GMT", "BOT": "BOT", "HADT": "HADT", "ACST": "ACST", "HNPMX": "HNPMX", "∅∅∅": "∅∅∅", "MST": "MST", "AST": "AST", "AWST": "AWST", "AWDT": "AWDT", "HNPM": "HNPM", "SGT": "SGT", "HNCU": "HNCU", "CAT": "CAT", "CLT": "CLT", "ACDT": "ACDT", "TMST": "TMST", "OEZ": "OEZ", "OESZ": "OESZ", "HKST": "HKST", "HAT": "HAT", "HEEG": "HEEG", "JST": "JST", "UYST": "UYST", "WEZ": "WEZ", "WESZ": "WESZ", "HEPMX": "HEPMX", "GFT": "GFT", "SAST": "SAST", "MEZ": "MEZ", "JDT": "JDT", "BT": "BT", "MYT": "MYT", "HNT": "HNT", "COT": "COT", "HNEG": "HNEG", "ADT": "ADT", "ARST": "ARST", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "WAT": "WAT", "WART": "WART", "MDT": "MDT", "NZST": "NZST", "WIB": "WIB", "WARST": "WARST", "HEOG": "HEOG", "VET": "VET", "HKT": "HKT", "ChST": "ChST", "MESZ": "MESZ", "CHADT": "CHADT", "AEST": "AEST", "GYT": "GYT", "ECT": "ECT", "SRT": "SRT", "EAT": "EAT", "NZDT": "NZDT", "AKST": "AKST", "EDT": "EDT", "HECU": "HECU", "WIT": "WIT", "EST": "EST", "TMT": "TMT", "CDT": "CDT", "ART": "ART", "HAST": "HAST"},
+ }
+ }
+ 
+@@ -150,7 +127,7 @@ func (az *az_Cyrl_AZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (az *az_Cyrl_AZ) MonthsAbbreviated() []string {
+- return az.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -160,7 +137,7 @@ func (az *az_Cyrl_AZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (az *az_Cyrl_AZ) MonthsNarrow() []string {
+- return az.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -170,7 +147,7 @@ func (az *az_Cyrl_AZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (az *az_Cyrl_AZ) MonthsWide() []string {
+- return az.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -216,73 +193,13 @@ func (az *az_Cyrl_AZ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'az_Cyrl_AZ' and handles both Whole and Real numbers based on 'v'
+ func (az *az_Cyrl_AZ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, az.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, az.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, az.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'az_Cyrl_AZ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (az *az_Cyrl_AZ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, az.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, az.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, az.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'az_Cyrl_AZ'
+@@ -290,60 +207,7 @@ func (az *az_Cyrl_AZ) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := az.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, az.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, az.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(az.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, az.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, az.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, az.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'az_Cyrl_AZ'
+@@ -352,72 +216,7 @@ func (az *az_Cyrl_AZ) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := az.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, az.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, az.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(az.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, az.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, az.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(az.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, az.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, az.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'az_Cyrl_AZ'
+@@ -425,27 +224,6 @@ func (az *az_Cyrl_AZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,17 +232,6 @@ func (az *az_Cyrl_AZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, az.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -473,17 +240,6 @@ func (az *az_Cyrl_AZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, az.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -492,20 +248,6 @@ func (az *az_Cyrl_AZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, az.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, az.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -514,19 +256,6 @@ func (az *az_Cyrl_AZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -535,26 +264,6 @@ func (az *az_Cyrl_AZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -563,30 +272,6 @@ func (az *az_Cyrl_AZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -595,34 +280,5 @@ func (az *az_Cyrl_AZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := az.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/az_Latn/az_Latn.go b/az_Latn/az_Latn.go
+index aece59c..8240472 100644
+--- a/az_Latn/az_Latn.go
++++ b/az_Latn/az_Latn.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type az_Latn struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'az_Latn' locale
+ func New() locales.Translator {
+ return &az_Latn{
+- locale: "az_Latn",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 4, 5, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "yan", "fev", "mar", "apr", "may", "iyn", "iyl", "avq", "sen", "okt", "noy", "dek"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "yanvar", "fevral", "mart", "aprel", "may", "iyun", "iyul", "avqust", "sentyabr", "oktyabr", "noyabr", "dekabr"},
+- daysAbbreviated: []string{"B.", "B.E.", "Ç.A.", "Ç.", "C.A.", "C.", "Ş."},
+- daysNarrow: []string{"7", "1", "2", "3", "4", "5", "6"},
+- daysShort: []string{"B.", "B.E.", "Ç.A.", "Ç.", "C.A.", "C.", "Ş."},
+- daysWide: []string{"bazar", "bazar ertəsi", "çərşənbə axşamı", "çərşənbə", "cümə axşamı", "cümə", "şənbə"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"e.ə.", "y.e."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"eramızdan əvvəl", "yeni era"},
+- timezones: map[string]string{"GYT": "Qayana Vaxtı", "UYST": "Uruqvay Yay Vaxtı", "WIT": "Şərqi İndoneziya Vaxtı", "NZDT": "Yeni Zelandiya Yay Vaxtı", "ACDT": "Mərkəzi Avstraliya Yay Vaxtı", "HKST": "Honq Konq Yay Vaxtı", "CLT": "Çili Standart Vaxtı", "ChST": "Çamorro Vaxtı", "HEEG": "Şərqi Qrenlandiya Yay Vaxtı", "ACST": "Mərkəzi Avstraliya Standart Vaxtı", "HENOMX": "Şimal-Qərbi Meksika Yay Vaxtı", "WIB": "Qərbi İndoneziya Vaxtı", "LHST": "Lord Hau Standart Vaxtı", "CHAST": "Çatham Standart Vaxtı", "JST": "Yaponiya Standart Vaxtı", "HEPMX": "Meksika Sakit Okean Yay Vaxtı", "OESZ": "Şərqi Avropa Yay Vaxtı", "HNCU": "Kuba Standart Vaxtı", "BT": "Butan Vaxtı", "IST": "Hindistan Vaxtı", "CLST": "Çili Yay Vaxtı", "HNEG": "Şərqi Qrenlandiya Standart Vaxtı", "WARST": "Qərbi Argentina Yay Vaxtı", "EDT": "Şimali Şərqi Amerika Yay Vaxtı", "TMT": "Türkmənistan Standart Vaxtı", "TMST": "Türkmənistan Yay Vaxtı", "EST": "Şimali Şərqi Amerika Standart Vaxtı", "AKST": "Alyaska Standart Vaxtı", "MYT": "Malayziya Vaxtı", "ACWDT": "Mərkəzi Qərbi Avstraliya Yay Vaxtı", "HEOG": "Qərbi Qrenlandiya Yay Vaxtı", "HEPM": "San Pier və Mikelon Yay Vaxtı", "WAT": "Qərbi Afrika Standart Vaxtı", "HECU": "Kuba Yay Vaxtı", "HNPMX": "Meksika Sakit Okean Standart Vaxtı", "AKDT": "Alyaska Yay Vaxtı", "CDT": "Şimali Mərkəzi Amerika Yay Vaxtı", "ACWST": "Mərkəzi Qərbi Avstraliya Standart Vaxtı", "AEST": "Şərqi Avstraliya Standart Vaxtı", "SAST": "Cənubi Afrika Vaxtı", "GFT": "Fransız Qvianası Vaxtı", "OEZ": "Şərqi Avropa Standart Vaxtı", "COST": "Kolumbiya Yay Vaxtı", "MST": "MST", "ADT": "Atlantik Yay Vaxtı", "AEDT": "Şərqi Avstraliya Yay Vaxtı", "MESZ": "Mərkəzi Avropa Yay Vaxtı", "NZST": "Yeni Zelandiya Standart Vaxtı", "EAT": "Şərqi Afrika Vaxtı", "HNNOMX": "Şimal-Qərbi Meksika Standart Vaxtı", "WESZ": "Qərbi Avropa Yay Vaxtı", "ART": "Argentina Standart Vaxtı", "ARST": "Argentina Yay Vaxtı", "HNOG": "Qərbi Qrenlandiya Standart Vaxtı", "AWST": "Qərbi Avstraliya Standart Vaxtı", "GMT": "Qrinviç Orta Vaxtı", "CST": "Şimali Mərkəzi Amerika Standart Vaxtı", "HAST": "Havay-Aleut Standart Vaxtı", "MEZ": "Mərkəzi Avropa Standart Vaxtı", "CAT": "Mərkəzi Afrika Vaxtı", "WAST": "Qərbi Afrika Yay Vaxtı", "SGT": "Sinqapur Vaxtı", "AST": "Atlantik Standart Vaxt", "SRT": "Surinam Vaxtı", "WEZ": "Qərbi Avropa Standart Vaxtı", "HNT": "Nyufaundlend Standart Vaxtı", "AWDT": "Qərbi Avstraliya Yay Vaxtı", "JDT": "Yaponiya Yay Vaxtı", "WART": "Qərbi Argentina Standart Vaxtı", "UYT": "Uruqvay Standart Vaxtı", "VET": "Venesuela Vaxtı", "PDT": "Şimali Amerika Sakit Okean Yay Vaxtı", "WITA": "Mərkəzi İndoneziya Vaxtı", "HNPM": "San Pier və Mikelon Standart Vaxtı", "CHADT": "Çatham Yay Vaxtı", "COT": "Kolumbiya Standart Vaxtı", "HAT": "Nyufaundlend Yay Vaxtı", "HKT": "Honq Konq Standart Vaxtı", "BOT": "Boliviya Vaxtı", "∅∅∅": "Azor Yay Vaxtı", "MDT": "MDT", "HADT": "Havay-Aleut Yay Vaxtı", "PST": "Şimali Amerika Sakit Okean Standart Vaxtı", "LHDT": "Lord Hau Yay vaxtı", "ECT": "Ekvador Vaxtı"},
++ locale: "az_Latn",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 4, 5, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MYT": "MYT", "BT": "BT", "CDT": "CDT", "MDT": "MDT", "LHST": "LHST", "JDT": "JDT", "HAT": "HAT", "HNOG": "HNOG", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "WAT": "WAT", "ADT": "ADT", "SRT": "SRT", "MESZ": "MESZ", "MST": "MST", "NZST": "NZST", "GMT": "GMT", "∅∅∅": "∅∅∅", "AEST": "AEST", "AEDT": "AEDT", "AKDT": "AKDT", "HNT": "HNT", "CHADT": "CHADT", "SGT": "SGT", "WITA": "WITA", "ACDT": "ACDT", "CLST": "CLST", "ART": "ART", "BOT": "BOT", "HNCU": "HNCU", "HECU": "HECU", "HEPMX": "HEPMX", "HEOG": "HEOG", "CAT": "CAT", "HAST": "HAST", "HADT": "HADT", "HNEG": "HNEG", "CLT": "CLT", "AST": "AST", "ChST": "ChST", "UYT": "UYT", "CHAST": "CHAST", "VET": "VET", "OESZ": "OESZ", "COST": "COST", "HENOMX": "HENOMX", "ACWST": "ACWST", "WESZ": "WESZ", "ECT": "ECT", "MEZ": "MEZ", "WART": "WART", "HKT": "HKT", "NZDT": "NZDT", "WIB": "WIB", "JST": "JST", "AKST": "AKST", "WARST": "WARST", "WIT": "WIT", "SAST": "SAST", "HKST": "HKST", "UYST": "UYST", "IST": "IST", "PST": "PST", "PDT": "PDT", "EST": "EST", "AWST": "AWST", "HEPM": "HEPM", "WAST": "WAST", "ACWDT": "ACWDT", "WEZ": "WEZ", "GFT": "GFT", "ACST": "ACST", "EDT": "EDT", "TMST": "TMST", "CST": "CST", "HNPM": "HNPM", "HNPMX": "HNPMX", "OEZ": "OEZ", "GYT": "GYT", "COT": "COT", "HEEG": "HEEG", "LHDT": "LHDT", "TMT": "TMT", "ARST": "ARST", "EAT": "EAT"},
+ }
+ }
+ 
+@@ -150,7 +127,7 @@ func (az *az_Latn) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (az *az_Latn) MonthsAbbreviated() []string {
+- return az.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -160,7 +137,7 @@ func (az *az_Latn) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (az *az_Latn) MonthsNarrow() []string {
+- return az.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -170,7 +147,7 @@ func (az *az_Latn) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (az *az_Latn) MonthsWide() []string {
+- return az.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -216,73 +193,13 @@ func (az *az_Latn) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'az_Latn' and handles both Whole and Real numbers based on 'v'
+ func (az *az_Latn) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, az.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, az.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, az.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'az_Latn' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (az *az_Latn) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, az.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, az.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, az.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'az_Latn'
+@@ -290,60 +207,7 @@ func (az *az_Latn) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := az.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, az.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, az.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(az.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, az.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, az.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, az.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'az_Latn'
+@@ -352,72 +216,7 @@ func (az *az_Latn) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := az.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, az.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, az.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(az.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, az.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, az.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(az.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, az.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, az.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'az_Latn'
+@@ -425,27 +224,6 @@ func (az *az_Latn) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,17 +232,6 @@ func (az *az_Latn) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, az.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -473,17 +240,6 @@ func (az *az_Latn) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, az.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -492,20 +248,6 @@ func (az *az_Latn) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, az.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, az.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -514,19 +256,6 @@ func (az *az_Latn) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -535,26 +264,6 @@ func (az *az_Latn) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -563,30 +272,6 @@ func (az *az_Latn) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -595,34 +280,5 @@ func (az *az_Latn) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := az.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/az_Latn_AZ/az_Latn_AZ.go b/az_Latn_AZ/az_Latn_AZ.go
+index e892d87..b9c0fca 100644
+--- a/az_Latn_AZ/az_Latn_AZ.go
++++ b/az_Latn_AZ/az_Latn_AZ.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type az_Latn_AZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'az_Latn_AZ' locale
+ func New() locales.Translator {
+ return &az_Latn_AZ{
+- locale: "az_Latn_AZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 4, 5, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "yan", "fev", "mar", "apr", "may", "iyn", "iyl", "avq", "sen", "okt", "noy", "dek"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "yanvar", "fevral", "mart", "aprel", "may", "iyun", "iyul", "avqust", "sentyabr", "oktyabr", "noyabr", "dekabr"},
+- daysAbbreviated: []string{"B.", "B.E.", "Ç.A.", "Ç.", "C.A.", "C.", "Ş."},
+- daysNarrow: []string{"7", "1", "2", "3", "4", "5", "6"},
+- daysShort: []string{"B.", "B.E.", "Ç.A.", "Ç.", "C.A.", "C.", "Ş."},
+- daysWide: []string{"bazar", "bazar ertəsi", "çərşənbə axşamı", "çərşənbə", "cümə axşamı", "cümə", "şənbə"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"e.ə.", "y.e."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"eramızdan əvvəl", "yeni era"},
+- timezones: map[string]string{"JDT": "Yaponiya Yay Vaxtı", "WIT": "Şərqi İndoneziya Vaxtı", "AEST": "Şərqi Avstraliya Standart Vaxtı", "CHAST": "Çatham Standart Vaxtı", "SAST": "Cənubi Afrika Vaxtı", "CLST": "Çili Yay Vaxtı", "COST": "Kolumbiya Yay Vaxtı", "UYT": "Uruqvay Standart Vaxtı", "AST": "Atlantik Standart Vaxt", "GFT": "Fransız Qvianası Vaxtı", "EST": "Şimali Şərqi Amerika Standart Vaxtı", "ACWDT": "Mərkəzi Qərbi Avstraliya Yay Vaxtı", "HEOG": "Qərbi Qrenlandiya Yay Vaxtı", "HNT": "Nyufaundlend Standart Vaxtı", "CLT": "Çili Standart Vaxtı", "ACST": "Mərkəzi Avstraliya Standart Vaxtı", "WARST": "Qərbi Argentina Yay Vaxtı", "HEPMX": "Meksika Sakit Okean Yay Vaxtı", "ADT": "Atlantik Yay Vaxtı", "MYT": "Malayziya Vaxtı", "BOT": "Boliviya Vaxtı", "VET": "Venesuela Vaxtı", "AWDT": "Qərbi Avstraliya Yay Vaxtı", "BT": "Butan Vaxtı", "ARST": "Argentina Yay Vaxtı", "CAT": "Mərkəzi Afrika Vaxtı", "COT": "Kolumbiya Standart Vaxtı", "HNCU": "Kuba Standart Vaxtı", "HNPMX": "Meksika Sakit Okean Standart Vaxtı", "AKST": "Alyaska Standart Vaxtı", "WIB": "Qərbi İndoneziya Vaxtı", "ChST": "Çamorro Vaxtı", "WAST": "Qərbi Afrika Yay Vaxtı", "OEZ": "Şərqi Avropa Standart Vaxtı", "UYST": "Uruqvay Yay Vaxtı", "NZST": "Yeni Zelandiya Standart Vaxtı", "SRT": "Surinam Vaxtı", "HNNOMX": "Şimal-Qərbi Meksika Standart Vaxtı", "SGT": "Sinqapur Vaxtı", "HECU": "Kuba Yay Vaxtı", "EDT": "Şimali Şərqi Amerika Yay Vaxtı", "MST": "MST", "HADT": "Havay-Aleut Yay Vaxtı", "MEZ": "Mərkəzi Avropa Standart Vaxtı", "IST": "Hindistan Vaxtı", "TMT": "Türkmənistan Standart Vaxtı", "OESZ": "Şərqi Avropa Yay Vaxtı", "ACWST": "Mərkəzi Qərbi Avstraliya Standart Vaxtı", "WITA": "Mərkəzi İndoneziya Vaxtı", "HEPM": "San Pier və Mikelon Yay Vaxtı", "∅∅∅": "Amazon Yay Vaxtı", "ART": "Argentina Standart Vaxtı", "LHST": "Lord Hau Standart Vaxtı", "CDT": "Şimali Mərkəzi Amerika Yay Vaxtı", "WESZ": "Qərbi Avropa Yay Vaxtı", "HKT": "Honq Konq Standart Vaxtı", "MESZ": "Mərkəzi Avropa Yay Vaxtı", "CHADT": "Çatham Yay Vaxtı", "AWST": "Qərbi Avstraliya Standart Vaxtı", "WAT": "Qərbi Afrika Standart Vaxtı", "WART": "Qərbi Argentina Standart Vaxtı", "HENOMX": "Şimal-Qərbi Meksika Yay Vaxtı", "AKDT": "Alyaska Yay Vaxtı", "GYT": "Qayana Vaxtı", "PST": "Şimali Amerika Sakit Okean Standart Vaxtı", "JST": "Yaponiya Standart Vaxtı", "HNEG": "Şərqi Qrenlandiya Standart Vaxtı", "TMST": "Türkmənistan Yay Vaxtı", "WEZ": "Qərbi Avropa Standart Vaxtı", "AEDT": "Şərqi Avstraliya Yay Vaxtı", "HEEG": "Şərqi Qrenlandiya Yay Vaxtı", "EAT": "Şərqi Afrika Vaxtı", "HAST": "Havay-Aleut Standart Vaxtı", "PDT": "Şimali Amerika Sakit Okean Yay Vaxtı", "LHDT": "Lord Hau Yay vaxtı", "NZDT": "Yeni Zelandiya Yay Vaxtı", "ACDT": "Mərkəzi Avstraliya Yay Vaxtı", "ECT": "Ekvador Vaxtı", "HAT": "Nyufaundlend Yay Vaxtı", "HNOG": "Qərbi Qrenlandiya Standart Vaxtı", "HKST": "Honq Konq Yay Vaxtı", "HNPM": "San Pier və Mikelon Standart Vaxtı", "GMT": "Qrinviç Orta Vaxtı", "MDT": "MDT", "CST": "Şimali Mərkəzi Amerika Standart Vaxtı"},
++ locale: "az_Latn_AZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 4, 5, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACST": "ACST", "IST": "IST", "AKDT": "AKDT", "WIT": "WIT", "GYT": "GYT", "CAT": "CAT", "CLST": "CLST", "NZST": "NZST", "PDT": "PDT", "UYST": "UYST", "WEZ": "WEZ", "HNPMX": "HNPMX", "OESZ": "OESZ", "HNT": "HNT", "MYT": "MYT", "AEST": "AEST", "UYT": "UYT", "∅∅∅": "∅∅∅", "JDT": "JDT", "HECU": "HECU", "OEZ": "OEZ", "CLT": "CLT", "GMT": "GMT", "ACWST": "ACWST", "HEPMX": "HEPMX", "AKST": "AKST", "HNOG": "HNOG", "TMST": "TMST", "AST": "AST", "ADT": "ADT", "ChST": "ChST", "EAT": "EAT", "LHDT": "LHDT", "HEPM": "HEPM", "WESZ": "WESZ", "COST": "COST", "CST": "CST", "MDT": "MDT", "EDT": "EDT", "TMT": "TMT", "CDT": "CDT", "HNNOMX": "HNNOMX", "AWST": "AWST", "JST": "JST", "CHAST": "CHAST", "VET": "VET", "WARST": "WARST", "HADT": "HADT", "MEZ": "MEZ", "HENOMX": "HENOMX", "HNPM": "HNPM", "PST": "PST", "HNCU": "HNCU", "NZDT": "NZDT", "AWDT": "AWDT", "ACWDT": "ACWDT", "WAT": "WAT", "WIB": "WIB", "HAST": "HAST", "ACDT": "ACDT", "WAST": "WAST", "SAST": "SAST", "MST": "MST", "ARST": "ARST", "WITA": "WITA", "HEEG": "HEEG", "LHST": "LHST", "BT": "BT", "AEDT": "AEDT", "SGT": "SGT", "GFT": "GFT", "EST": "EST", "HKST": "HKST", "MESZ": "MESZ", "HNEG": "HNEG", "CHADT": "CHADT", "HAT": "HAT", "COT": "COT", "HEOG": "HEOG", "HKT": "HKT", "SRT": "SRT", "WART": "WART", "ECT": "ECT", "ART": "ART", "BOT": "BOT"},
+ }
+ }
+ 
+@@ -112,9 +89,9 @@ func (az *az_Latn_AZ) OrdinalPluralRule(num float64, v uint64) locales.PluralRul
+ 
+ n := math.Abs(num)
+ i := int64(n)
+- iMod1000 := i % 1000
+ iMod10 := i % 10
+ iMod100 := i % 100
++ iMod1000 := i % 1000
+ 
+ if (iMod10 == 1 || iMod10 == 2 || iMod10 == 5 || iMod10 == 7 || iMod10 == 8) || (iMod100 == 20 || iMod100 == 50 || iMod100 == 70 || iMod100 == 80) {
+ return locales.PluralRuleOne
+@@ -150,7 +127,7 @@ func (az *az_Latn_AZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (az *az_Latn_AZ) MonthsAbbreviated() []string {
+- return az.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -160,7 +137,7 @@ func (az *az_Latn_AZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (az *az_Latn_AZ) MonthsNarrow() []string {
+- return az.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -170,7 +147,7 @@ func (az *az_Latn_AZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (az *az_Latn_AZ) MonthsWide() []string {
+- return az.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -216,73 +193,13 @@ func (az *az_Latn_AZ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'az_Latn_AZ' and handles both Whole and Real numbers based on 'v'
+ func (az *az_Latn_AZ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, az.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, az.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, az.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'az_Latn_AZ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (az *az_Latn_AZ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, az.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, az.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, az.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'az_Latn_AZ'
+@@ -290,60 +207,7 @@ func (az *az_Latn_AZ) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := az.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, az.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, az.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(az.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, az.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, az.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, az.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'az_Latn_AZ'
+@@ -352,72 +216,7 @@ func (az *az_Latn_AZ) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := az.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, az.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, az.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(az.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, az.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, az.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(az.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, az.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, az.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'az_Latn_AZ'
+@@ -425,27 +224,6 @@ func (az *az_Latn_AZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,17 +232,6 @@ func (az *az_Latn_AZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, az.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -473,17 +240,6 @@ func (az *az_Latn_AZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, az.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -492,20 +248,6 @@ func (az *az_Latn_AZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, az.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, az.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -514,19 +256,6 @@ func (az *az_Latn_AZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -535,26 +264,6 @@ func (az *az_Latn_AZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -563,30 +272,6 @@ func (az *az_Latn_AZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -595,34 +280,5 @@ func (az *az_Latn_AZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, az.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := az.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/bas/bas.go b/bas/bas.go
+index 7e9dd51..8e570a2 100644
+--- a/bas/bas.go
++++ b/bas/bas.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"b.Y.K", "m.Y.K"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"bisū bi Yesù Krǐstò", "i mbūs Yesù Krǐstò"},
+- timezones: map[string]string{"MESZ": "MESZ", "SAST": "SAST", "WARST": "WARST", "VET": "VET", "NZDT": "NZDT", "JDT": "JDT", "ACST": "ACST", "WAT": "WAT", "HECU": "HECU", "HNPMX": "HNPMX", "HKST": "HKST", "AST": "AST", "EST": "EST", "MST": "MST", "ART": "ART", "HNT": "HNT", "HKT": "HKT", "CHADT": "CHADT", "COST": "COST", "HENOMX": "HENOMX", "CST": "CST", "MEZ": "MEZ", "JST": "JST", "CLST": "CLST", "GMT": "GMT", "SRT": "SRT", "HNOG": "HNOG", "HAT": "HAT", "AWST": "AWST", "WITA": "WITA", "HEPM": "HEPM", "GYT": "GYT", "HADT": "HADT", "HEOG": "HEOG", "AKST": "AKST", "AEST": "AEST", "CHAST": "CHAST", "CLT": "CLT", "∅∅∅": "∅∅∅", "WAST": "WAST", "UYST": "UYST", "HAST": "HAST", "ACWST": "ACWST", "AEDT": "AEDT", "LHST": "LHST", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "BT": "BT", "ARST": "ARST", "ChST": "ChST", "ECT": "ECT", "WESZ": "WESZ", "AWDT": "AWDT", "BOT": "BOT", "NZST": "NZST", "GFT": "GFT", "OEZ": "OEZ", "MYT": "MYT", "UYT": "UYT", "MDT": "MDT", "WIB": "WIB", "HNPM": "HNPM", "HNEG": "HNEG", "OESZ": "OESZ", "SGT": "SGT", "EDT": "EDT", "WIT": "WIT", "PST": "PST", "IST": "IST", "WART": "WART", "CDT": "CDT", "TMT": "TMT", "HEEG": "HEEG", "EAT": "EAT", "COT": "COT", "PDT": "PDT", "WEZ": "WEZ", "ACWDT": "ACWDT", "LHDT": "LHDT", "TMST": "TMST", "ACDT": "ACDT", "CAT": "CAT", "HNCU": "HNCU", "ADT": "ADT", "AKDT": "AKDT"},
++ timezones: map[string]string{"ACST": "ACST", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "GFT": "GFT", "GYT": "GYT", "HEEG": "HEEG", "CHADT": "CHADT", "WARST": "WARST", "NZST": "NZST", "HADT": "HADT", "LHST": "LHST", "ACWDT": "ACWDT", "OEZ": "OEZ", "SAST": "SAST", "TMT": "TMT", "WITA": "WITA", "ACDT": "ACDT", "LHDT": "LHDT", "BT": "BT", "WAT": "WAT", "EDT": "EDT", "CLT": "CLT", "ART": "ART", "HNNOMX": "HNNOMX", "UYST": "UYST", "HEPM": "HEPM", "VET": "VET", "HECU": "HECU", "WAST": "WAST", "EST": "EST", "TMST": "TMST", "PDT": "PDT", "ADT": "ADT", "EAT": "EAT", "HAST": "HAST", "MEZ": "MEZ", "MYT": "MYT", "HNPM": "HNPM", "PST": "PST", "HNCU": "HNCU", "WIT": "WIT", "COT": "COT", "CAT": "CAT", "CST": "CST", "ACWST": "ACWST", "HKST": "HKST", "NZDT": "NZDT", "WIB": "WIB", "JST": "JST", "SGT": "SGT", "CLST": "CLST", "HEOG": "HEOG", "MDT": "MDT", "BOT": "BOT", "IST": "IST", "UYT": "UYT", "HAT": "HAT", "WART": "WART", "HNOG": "HNOG", "HNEG": "HNEG", "CHAST": "CHAST", "HEPMX": "HEPMX", "COST": "COST", "MESZ": "MESZ", "AEST": "AEST", "AKST": "AKST", "AST": "AST", "MST": "MST", "SRT": "SRT", "AWDT": "AWDT", "HKT": "HKT", "ECT": "ECT", "ChST": "ChST", "JDT": "JDT", "OESZ": "OESZ", "HNT": "HNT", "AWST": "AWST", "HNPMX": "HNPMX", "GMT": "GMT", "ARST": "ARST", "HENOMX": "HENOMX", "WEZ": "WEZ", "WESZ": "WESZ", "CDT": "CDT"},
+ }
+ }
+ 
+diff --git a/bas_CM/bas_CM.go b/bas_CM/bas_CM.go
+index 89bed66..96e0325 100644
+--- a/bas_CM/bas_CM.go
++++ b/bas_CM/bas_CM.go
+@@ -10,64 +10,45 @@ import (
+ )
+ 
+ type bas_CM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'bas_CM' locale
+ func New() locales.Translator {
+ return &bas_CM{
+- locale: "bas_CM",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "kɔn", "mac", "mat", "mto", "mpu", "hil", "nje", "hik", "dip", "bio", "may", "liɓ"},
+- monthsNarrow: []string{"", "k", "m", "m", "m", "m", "h", "n", "h", "d", "b", "m", "l"},
+- monthsWide: []string{"", "Kɔndɔŋ", "Màcɛ̂l", "Màtùmb", "Màtop", "M̀puyɛ", "Hìlòndɛ̀", "Njèbà", "Hìkaŋ", "Dìpɔ̀s", "Bìòôm", "Màyɛsèp", "Lìbuy li ńyèe"},
+- daysAbbreviated: []string{"nɔy", "nja", "uum", "ŋge", "mbɔ", "kɔɔ", "jon"},
+- daysNarrow: []string{"n", "n", "u", "ŋ", "m", "k", "j"},
+- daysWide: []string{"ŋgwà nɔ̂y", "ŋgwà njaŋgumba", "ŋgwà ûm", "ŋgwà ŋgê", "ŋgwà mbɔk", "ŋgwà kɔɔ", "ŋgwà jôn"},
+- periodsAbbreviated: []string{"I bikɛ̂glà", "I ɓugajɔp"},
+- periodsWide: []string{"I bikɛ̂glà", "I ɓugajɔp"},
+- erasAbbreviated: []string{"b.Y.K", "m.Y.K"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"bisū bi Yesù Krǐstò", "i mbūs Yesù Krǐstò"},
+- timezones: map[string]string{"SGT": "SGT", "MST": "MST", "HNT": "HNT", "HKT": "HKT", "WITA": "WITA", "ChST": "ChST", "HEEG": "HEEG", "ECT": "ECT", "CST": "CST", "EST": "EST", "BT": "BT", "HEPM": "HEPM", "NZST": "NZST", "MEZ": "MEZ", "WAST": "WAST", "COST": "COST", "UYST": "UYST", "AKST": "AKST", "ADT": "ADT", "PDT": "PDT", "ACWDT": "ACWDT", "HAT": "HAT", "SAST": "SAST", "TMT": "TMT", "WART": "WART", "HNPMX": "HNPMX", "AWST": "AWST", "AWDT": "AWDT", "HADT": "HADT", "WIT": "WIT", "COT": "COT", "AKDT": "AKDT", "AST": "AST", "HAST": "HAST", "CLST": "CLST", "GYT": "GYT", "VET": "VET", "HNPM": "HNPM", "ACWST": "ACWST", "ARST": "ARST", "MESZ": "MESZ", "CHADT": "CHADT", "CLT": "CLT", "ACDT": "ACDT", "WARST": "WARST", "HECU": "HECU", "ART": "ART", "IST": "IST", "HNNOMX": "HNNOMX", "GMT": "GMT", "WEZ": "WEZ", "HEPMX": "HEPMX", "WIB": "WIB", "PST": "PST", "WESZ": "WESZ", "JST": "JST", "JDT": "JDT", "ACST": "ACST", "HENOMX": "HENOMX", "HEOG": "HEOG", "GFT": "GFT", "TMST": "TMST", "AEST": "AEST", "BOT": "BOT", "WAT": "WAT", "OESZ": "OESZ", "LHDT": "LHDT", "HNOG": "HNOG", "CHAST": "CHAST", "OEZ": "OEZ", "EDT": "EDT", "CDT": "CDT", "SRT": "SRT", "HNEG": "HNEG", "EAT": "EAT", "AEDT": "AEDT", "NZDT": "NZDT", "∅∅∅": "∅∅∅", "CAT": "CAT", "MYT": "MYT", "UYT": "UYT", "HNCU": "HNCU", "MDT": "MDT", "HKST": "HKST", "LHST": "LHST"},
++ locale: "bas_CM",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AKDT": "AKDT", "MST": "MST", "HNEG": "HNEG", "HEOG": "HEOG", "EST": "EST", "CLT": "CLT", "HEPM": "HEPM", "WESZ": "WESZ", "∅∅∅": "∅∅∅", "GFT": "GFT", "ADT": "ADT", "HEEG": "HEEG", "AWST": "AWST", "HNPMX": "HNPMX", "GYT": "GYT", "TMT": "TMT", "MDT": "MDT", "ART": "ART", "AST": "AST", "HAST": "HAST", "JST": "JST", "LHST": "LHST", "UYT": "UYT", "HEPMX": "HEPMX", "OEZ": "OEZ", "OESZ": "OESZ", "CST": "CST", "PST": "PST", "WAST": "WAST", "HAT": "HAT", "SAST": "SAST", "EDT": "EDT", "HKST": "HKST", "NZST": "NZST", "HNPM": "HNPM", "UYST": "UYST", "HNOG": "HNOG", "GMT": "GMT", "LHDT": "LHDT", "WITA": "WITA", "NZDT": "NZDT", "AWDT": "AWDT", "HKT": "HKT", "JDT": "JDT", "VET": "VET", "WART": "WART", "WIB": "WIB", "ChST": "ChST", "EAT": "EAT", "IST": "IST", "HNCU": "HNCU", "ARST": "ARST", "BT": "BT", "HNT": "HNT", "WARST": "WARST", "MYT": "MYT", "PDT": "PDT", "SGT": "SGT", "AKST": "AKST", "COT": "COT", "CLST": "CLST", "MESZ": "MESZ", "AEDT": "AEDT", "CHAST": "CHAST", "HECU": "HECU", "WEZ": "WEZ", "WAT": "WAT", "COST": "COST", "ECT": "ECT", "CDT": "CDT", "ACST": "ACST", "TMST": "TMST", "SRT": "SRT", "HENOMX": "HENOMX", "MEZ": "MEZ", "ACWST": "ACWST", "AEST": "AEST", "WIT": "WIT", "CAT": "CAT", "BOT": "BOT", "HADT": "HADT", "HNNOMX": "HNNOMX", "ACDT": "ACDT", "ACWDT": "ACWDT", "CHADT": "CHADT"},
+ }
+ }
+ 
+@@ -113,7 +94,7 @@ func (bas *bas_CM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (bas *bas_CM) MonthsAbbreviated() []string {
+- return bas.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -123,7 +104,7 @@ func (bas *bas_CM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (bas *bas_CM) MonthsNarrow() []string {
+- return bas.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -133,7 +114,7 @@ func (bas *bas_CM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (bas *bas_CM) MonthsWide() []string {
+- return bas.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -179,77 +160,13 @@ func (bas *bas_CM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'bas_CM' and handles both Whole and Real numbers based on 'v'
+ func (bas *bas_CM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bas.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(bas.group) - 1; j >= 0; j-- {
+- b = append(b, bas.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bas.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'bas_CM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (bas *bas_CM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bas.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bas.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, bas.percentSuffix...)
+-
+- b = append(b, bas.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'bas_CM'
+@@ -257,58 +174,7 @@ func (bas *bas_CM) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bas.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bas.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(bas.group) - 1; j >= 0; j-- {
+- b = append(b, bas.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bas.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bas.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, bas.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'bas_CM'
+@@ -317,65 +183,7 @@ func (bas *bas_CM) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bas.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bas.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(bas.group) - 1; j >= 0; j-- {
+- b = append(b, bas.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, bas.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bas.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, bas.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, bas.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'bas_CM'
+@@ -383,17 +191,6 @@ func (bas *bas_CM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -402,17 +199,6 @@ func (bas *bas_CM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bas.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -421,17 +207,6 @@ func (bas *bas_CM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bas.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -440,19 +215,6 @@ func (bas *bas_CM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, bas.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bas.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -461,19 +223,6 @@ func (bas *bas_CM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bas.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -482,26 +231,6 @@ func (bas *bas_CM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bas.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bas.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -510,30 +239,6 @@ func (bas *bas_CM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bas.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bas.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -542,34 +247,5 @@ func (bas *bas_CM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bas.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bas.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := bas.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/be/be.go b/be/be.go
+index b1bcad1..a9f91f3 100644
+--- a/be/be.go
++++ b/be/be.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"да н.э.", "н.э."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"да нараджэння Хрыстова", "ад нараджэння Хрыстова"},
+- timezones: map[string]string{"MST": "MST", "UYST": "Уругвайскі летні час", "CHAST": "Стандартны час Чатэма", "CLST": "Чылійскі летні час", "ChST": "Час Чамора", "HEOG": "Летні час Заходняй Грэнландыі", "GMT": "Час па Грынвічы", "UYT": "Уругвайскі стандартны час", "HNT": "Ньюфаўндлендскі стандартны час", "HKT": "Стандартны час Ганконга", "LHDT": "Летні час Лорд-Хау", "TMT": "Стандартны час Туркменістана", "TMST": "Летні час Туркменістана", "WART": "Стандартны час Заходняй Аргенціны", "CDT": "Паўночнаамерыканскі цэнтральны летні час", "IST": "Час Індыі", "OEZ": "Усходнееўрапейскі стандартны час", "GYT": "Час Гаяны", "ADT": "Атлантычны летні час", "WEZ": "Заходнееўрапейскі стандартны час", "AWST": "Стандартны час заходняй Аўстраліі", "ACDT": "Летні час цэнтральнай Аўстраліі", "HENOMX": "Паўночна-заходні мексіканскі летні час", "HNPMX": "Мексіканскі ціхаакіянскі стандатны час", "ACWDT": "Заходні летні час Цэнтральнай Аўстраліі", "CLT": "Чылійскі стандартны час", "OESZ": "Усходнееўрапейскі летні час", "BT": "Час Бутана", "SRT": "Час Сурынама", "AEST": "Стандартны час усходняй Аўстраліі", "HKST": "Летні час Ганконга", "∅∅∅": "Амазонскі летні час", "ECT": "Эквадорскі час", "EDT": "Паўночнаамерыканскі ўсходні летні час", "ARST": "Аргенцінскі летні час", "MESZ": "Цэнтральнаеўрапейскі летні час", "HEEG": "Летні час Усходняй Грэнландыі", "SGT": "Сінгапурскі час", "ART": "Аргенцінскі стандартны час", "AKST": "Стандартны час Аляскі", "NZST": "Стандартны час Новай Зеландыі", "CHADT": "Летні час Чатэма", "GFT": "Час Французскай Гвіяны", "HEPMX": "Мексіканскі ціхаакіянскі летні час", "CAT": "Цэнтральнаафрыканскі час", "EAT": "Усходнеафрыканскі час", "AKDT": "Летні час Аляскі", "AST": "Атлантычны стандартны час", "WIT": "Усходнеінданезійскі час", "HNOG": "Стандартны час Заходняй Грэнландыі", "JDT": "Летні час Японіі", "BOT": "Балівійскі час", "PST": "Ціхаакіянскі стандартны час", "WESZ": "Заходнееўрапейскі летні час", "MYT": "Час Малайзіі", "ACWST": "Заходні стандартны час Цэнтральнай Аўстраліі", "COT": "Калумбійскі стандартны час", "EST": "Паўночнаамерыканскі ўсходні стандартны час", "HECU": "Летні час Кубы", "CST": "Паўночнаамерыканскі цэнтральны стандартны час", "AEDT": "Летні час усходняй Аўстраліі", "HNPM": "Стандартны час Сен-П’ер і Мікелон", "SAST": "Паўднёваафрыканскі час", "WAST": "Заходнеафрыканскі летні час", "HAST": "Гавайска-Алеуцкі стандартны час", "HADT": "Гавайска-Алеуцкі летні час", "AWDT": "Летні час заходняй Аўстраліі", "HEPM": "Стандартны летні час Сен-П’ер і Мікелон", "JST": "Стандартны час Японіі", "ACST": "Стандартны час цэнтральнай Аўстраліі", "WARST": "Летні час Заходняй Аргенціны", "COST": "Калумбійскі летні час", "HNCU": "Стандартны час Кубы", "HAT": "Ньюфаўндлендскі летні час", "WITA": "Цэнтральнаінданезійскі час", "MEZ": "Цэнтральнаеўрапейскі стандартны час", "HNEG": "Стандартны час Усходняй Грэнландыі", "WAT": "Заходнеафрыканскі стандартны час", "WIB": "Заходнеінданезійскі час", "VET": "Венесуэльскі час", "PDT": "Ціхаакіянскі летні час", "LHST": "Стандартны час Лорд-Хау", "NZDT": "Летні час Новай Зеландыі", "HNNOMX": "Паўночна-заходні мексіканскі стандартны час", "MDT": "MDT"},
++ timezones: map[string]string{"EDT": "Паўночнаамерыканскі ўсходні летні час", "TMST": "Летні час Туркменістана", "CLST": "Чылійскі летні час", "HEPM": "Стандартны летні час Сен-П’ер і Мікелон", "∅∅∅": "∅∅∅", "ACWST": "Заходні стандартны час Цэнтральнай Аўстраліі", "ACWDT": "Заходні летні час Цэнтральнай Аўстраліі", "HAT": "Ньюфаўндлендскі летні час", "CST": "Паўночнаамерыканскі цэнтральны стандартны час", "MDT": "MDT", "EAT": "Усходнеафрыканскі час", "ACDT": "Летні час цэнтральнай Аўстраліі", "AEDT": "Летні час усходняй Аўстраліі", "GFT": "Час Французскай Гвіяны", "ChST": "Час Чамора", "ART": "Аргенцінскі стандартны час", "MEZ": "Цэнтральнаеўрапейскі стандартны час", "CHAST": "Стандартны час Чатэма", "UYT": "Уругвайскі стандартны час", "WARST": "Летні час Заходняй Аргенціны", "CDT": "Паўночнаамерыканскі цэнтральны летні час", "HNNOMX": "Паўночна-заходні мексіканскі стандартны час", "HNPMX": "Мексіканскі ціхаакіянскі стандатны час", "AST": "Атлантычны стандартны час", "LHST": "Стандартны час Лорд-Хау", "IST": "Час Індыі", "GYT": "Час Гаяны", "ECT": "Эквадорскі час", "SRT": "Час Сурынама", "CHADT": "Летні час Чатэма", "BT": "Час Бутана", "AEST": "Стандартны час усходняй Аўстраліі", "COST": "Калумбійскі летні час", "CLT": "Чылійскі стандартны час", "HNPM": "Стандартны час Сен-П’ер і Мікелон", "AKDT": "Летні час Аляскі", "WIT": "Усходнеінданезійскі час", "MST": "MST", "COT": "Калумбійскі стандартны час", "HEOG": "Летні час Заходняй Грэнландыі", "HENOMX": "Паўночна-заходні мексіканскі летні час", "HECU": "Летні час Кубы", "HEPMX": "Мексіканскі ціхаакіянскі летні час", "WAST": "Заходнеафрыканскі летні час", "OESZ": "Усходнееўрапейскі летні час", "HNEG": "Стандартны час Усходняй Грэнландыі", "LHDT": "Летні час Лорд-Хау", "AKST": "Стандартны час Аляскі", "EST": "Паўночнаамерыканскі ўсходні стандартны час", "ARST": "Аргенцінскі летні час", "MYT": "Час Малайзіі", "WESZ": "Заходнееўрапейскі летні час", "VET": "Венесуэльскі час", "HKT": "Стандартны час Ганконга", "BOT": "Балівійскі час", "AWST": "Стандартны час заходняй Аўстраліі", "UYST": "Уругвайскі летні час", "HNT": "Ньюфаўндлендскі стандартны час", "HAST": "Гавайска-Алеуцкі стандартны час", "JST": "Стандартны час Японіі", "SGT": "Сінгапурскі час", "HNOG": "Стандартны час Заходняй Грэнландыі", "CAT": "Цэнтральнаафрыканскі час", "WEZ": "Заходнееўрапейскі стандартны час", "WAT": "Заходнеафрыканскі стандартны час", "NZDT": "Летні час Новай Зеландыі", "GMT": "Час па Грынвічы", "ACST": "Стандартны час цэнтральнай Аўстраліі", "PST": "Ціхаакіянскі стандартны час", "WART": "Стандартны час Заходняй Аргенціны", "TMT": "Стандартны час Туркменістана", "NZST": "Стандартны час Новай Зеландыі", "JDT": "Летні час Японіі", "PDT": "Ціхаакіянскі летні час", "OEZ": "Усходнееўрапейскі стандартны час", "SAST": "Паўднёваафрыканскі час", "WIB": "Заходнеінданезійскі час", "WITA": "Цэнтральнаінданезійскі час", "ADT": "Атлантычны летні час", "HADT": "Гавайска-Алеуцкі летні час", "MESZ": "Цэнтральнаеўрапейскі летні час", "HEEG": "Летні час Усходняй Грэнландыі", "AWDT": "Летні час заходняй Аўстраліі", "HNCU": "Стандартны час Кубы", "HKST": "Летні час Ганконга"},
+ }
+ }
+ 
+@@ -101,8 +101,8 @@ func (be *be) PluralsRange() []locales.PluralRule {
+ func (be *be) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
++ nMod100 := math.Mod(n, 100)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+diff --git a/be_BY/be_BY.go b/be_BY/be_BY.go
+index 9405a4c..5a302a3 100644
+--- a/be_BY/be_BY.go
++++ b/be_BY/be_BY.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type be_BY struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'be_BY' locale
+ func New() locales.Translator {
+ return &be_BY{
+- locale: "be_BY",
+- pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{4, 6},
+- pluralsRange: []locales.PluralRule{2, 4, 5, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "сту", "лют", "сак", "кра", "мая", "чэр", "ліп", "жні", "вер", "кас", "ліс", "сне"},
+- monthsNarrow: []string{"", "с", "л", "с", "к", "м", "ч", "л", "ж", "в", "к", "л", "с"},
+- monthsWide: []string{"", "студзеня", "лютага", "сакавіка", "красавіка", "мая", "чэрвеня", "ліпеня", "жніўня", "верасня", "кастрычніка", "лістапада", "снежня"},
+- daysAbbreviated: []string{"нд", "пн", "аў", "ср", "чц", "пт", "сб"},
+- daysNarrow: []string{"н", "п", "а", "с", "ч", "п", "с"},
+- daysShort: []string{"нд", "пн", "аў", "ср", "чц", "пт", "сб"},
+- daysWide: []string{"нядзеля", "панядзелак", "аўторак", "серада", "чацвер", "пятніца", "субота"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"am", "pm"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"да н.э.", "н.э."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"да нараджэння Хрыстова", "ад нараджэння Хрыстова"},
+- timezones: map[string]string{"COST": "Калумбійскі летні час", "AKDT": "Летні час Аляскі", "ARST": "Аргенцінскі летні час", "ACST": "Стандартны час цэнтральнай Аўстраліі", "SAST": "Паўднёваафрыканскі час", "EAT": "Усходнеафрыканскі час", "HNPMX": "Мексіканскі ціхаакіянскі стандатны час", "ART": "Аргенцінскі стандартны час", "AWST": "Стандартны час заходняй Аўстраліі", "LHST": "Стандартны час Лорд-Хау", "MEZ": "Цэнтральнаеўрапейскі стандартны час", "JDT": "Летні час Японіі", "HNEG": "Стандартны час Усходняй Грэнландыі", "HENOMX": "Паўночна-заходні мексіканскі летні час", "SGT": "Сінгапурскі час", "ACWST": "Заходні стандартны час Цэнтральнай Аўстраліі", "LHDT": "Летні час Лорд-Хау", "NZDT": "Летні час Новай Зеландыі", "HAT": "Ньюфаўндлендскі летні час", "AWDT": "Летні час заходняй Аўстраліі", "HEPM": "Стандартны летні час Сен-П’ер і Мікелон", "BOT": "Балівійскі час", "HEEG": "Летні час Усходняй Грэнландыі", "CDT": "Паўночнаамерыканскі цэнтральны летні час", "HAST": "Гавайска-Алеуцкі стандартны час", "BT": "Час Бутана", "CAT": "Цэнтральнаафрыканскі час", "WARST": "Летні час Заходняй Аргенціны", "EST": "Паўночнаамерыканскі ўсходні стандартны час", "OESZ": "Усходнееўрапейскі летні час", "GMT": "Час па Грынвічы", "UYST": "Уругвайскі летні час", "PDT": "Ціхаакіянскі летні час", "IST": "Час Індыі", "CHADT": "Летні час Чатэма", "OEZ": "Усходнееўрапейскі стандартны час", "ECT": "Эквадорскі час", "CST": "Паўночнаамерыканскі цэнтральны стандартны час", "WESZ": "Заходнееўрапейскі летні час", "AEDT": "Летні час усходняй Аўстраліі", "WEZ": "Заходнееўрапейскі стандартны час", "HECU": "Летні час Кубы", "HEPMX": "Мексіканскі ціхаакіянскі летні час", "JST": "Стандартны час Японіі", "GFT": "Час Французскай Гвіяны", "ACWDT": "Заходні летні час Цэнтральнай Аўстраліі", "HNT": "Ньюфаўндлендскі стандартны час", "NZST": "Стандартны час Новай Зеландыі", "TMST": "Летні час Туркменістана", "ACDT": "Летні час цэнтральнай Аўстраліі", "HNCU": "Стандартны час Кубы", "MST": "Паўночнаамерыканскі горны стандартны час", "HADT": "Гавайска-Алеуцкі летні час", "∅∅∅": "Амазонскі летні час", "MYT": "Час Малайзіі", "MDT": "Паўночнаамерыканскі горны летні час", "MESZ": "Цэнтральнаеўрапейскі летні час", "TMT": "Стандартны час Туркменістана", "WAT": "Заходнеафрыканскі стандартны час", "UYT": "Уругвайскі стандартны час", "VET": "Венесуэльскі час", "HKST": "Летні час Ганконга", "CHAST": "Стандартны час Чатэма", "WAST": "Заходнеафрыканскі летні час", "PST": "Ціхаакіянскі стандартны час", "WITA": "Цэнтральнаінданезійскі час", "HNPM": "Стандартны час Сен-П’ер і Мікелон", "AEST": "Стандартны час усходняй Аўстраліі", "CLST": "Чылійскі летні час", "ChST": "Час Чамора", "WART": "Стандартны час Заходняй Аргенціны", "GYT": "Час Гаяны", "HEOG": "Летні час Заходняй Грэнландыі", "HKT": "Стандартны час Ганконга", "ADT": "Атлантычны летні час", "HNNOMX": "Паўночна-заходні мексіканскі стандартны час", "EDT": "Паўночнаамерыканскі ўсходні летні час", "HNOG": "Стандартны час Заходняй Грэнландыі", "CLT": "Чылійскі стандартны час", "COT": "Калумбійскі стандартны час", "AKST": "Стандартны час Аляскі", "AST": "Атлантычны стандартны час", "WIT": "Усходнеінданезійскі час", "WIB": "Заходнеінданезійскі час", "SRT": "Час Сурынама"},
++ locale: "be_BY",
++ pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{4, 6},
++ pluralsRange: []locales.PluralRule{2, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AKDT": "AKDT", "HAT": "HAT", "HEOG": "HEOG", "HAST": "HAST", "HECU": "HECU", "HNPMX": "HNPMX", "HNT": "HNT", "CAT": "CAT", "CLST": "CLST", "ACWDT": "ACWDT", "AEDT": "AEDT", "GFT": "GFT", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "CLT": "CLT", "JDT": "JDT", "GYT": "GYT", "HEPM": "HEPM", "CHADT": "CHADT", "PST": "PST", "ACWST": "ACWST", "HKT": "HKT", "ARST": "ARST", "AWDT": "AWDT", "HNEG": "HNEG", "JST": "JST", "AKST": "AKST", "WART": "WART", "HNOG": "HNOG", "TMT": "TMT", "MDT": "MDT", "AST": "AST", "TMST": "TMST", "AWST": "AWST", "WITA": "WITA", "GMT": "GMT", "HNNOMX": "HNNOMX", "WARST": "WARST", "EST": "EST", "BOT": "BOT", "UYST": "UYST", "EDT": "EDT", "UYT": "UYT", "WAST": "WAST", "SGT": "SGT", "CDT": "CDT", "WEZ": "WEZ", "HENOMX": "HENOMX", "BT": "BT", "HNCU": "HNCU", "COT": "COT", "ECT": "ECT", "SRT": "SRT", "CHAST": "CHAST", "WAT": "WAT", "OEZ": "OEZ", "WIT": "WIT", "MST": "MST", "NZDT": "NZDT", "ACDT": "ACDT", "HEEG": "HEEG", "MYT": "MYT", "PDT": "PDT", "WESZ": "WESZ", "OESZ": "OESZ", "CST": "CST", "MESZ": "MESZ", "ACST": "ACST", "LHDT": "LHDT", "AEST": "AEST", "HEPMX": "HEPMX", "SAST": "SAST", "NZST": "NZST", "HADT": "HADT", "LHST": "LHST", "IST": "IST", "VET": "VET", "ADT": "ADT", "EAT": "EAT", "ART": "ART", "MEZ": "MEZ", "COST": "COST", "HKST": "HKST", "WIB": "WIB", "ChST": "ChST"},
+ }
+ }
+ 
+@@ -178,7 +153,7 @@ func (be *be_BY) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (be *be_BY) MonthsAbbreviated() []string {
+- return be.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -188,7 +163,7 @@ func (be *be_BY) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (be *be_BY) MonthsNarrow() []string {
+- return be.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -198,7 +173,7 @@ func (be *be_BY) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (be *be_BY) MonthsWide() []string {
+- return be.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -244,77 +219,13 @@ func (be *be_BY) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'be_BY' and handles both Whole and Real numbers based on 'v'
+ func (be *be_BY) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, be.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(be.group) - 1; j >= 0; j-- {
+- b = append(b, be.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, be.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'be_BY' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (be *be_BY) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, be.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, be.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, be.percentSuffix...)
+-
+- b = append(b, be.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'be_BY'
+@@ -322,58 +233,7 @@ func (be *be_BY) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := be.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, be.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(be.group) - 1; j >= 0; j-- {
+- b = append(b, be.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, be.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, be.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, be.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'be_BY'
+@@ -382,65 +242,7 @@ func (be *be_BY) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := be.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, be.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(be.group) - 1; j >= 0; j-- {
+- b = append(b, be.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, be.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, be.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, be.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, be.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'be_BY'
+@@ -448,23 +250,6 @@ func (be *be_BY) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -473,23 +258,6 @@ func (be *be_BY) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -498,20 +266,6 @@ func (be *be_BY) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, be.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -520,22 +274,6 @@ func (be *be_BY) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, be.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, be.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -544,19 +282,6 @@ func (be *be_BY) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, be.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -565,26 +290,6 @@ func (be *be_BY) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, be.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, be.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -593,30 +298,6 @@ func (be *be_BY) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, be.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, be.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -625,34 +306,5 @@ func (be *be_BY) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, be.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, be.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := be.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/bem/bem.go b/bem/bem.go
+index 4cadeaa..0f3f862 100644
+--- a/bem/bem.go
++++ b/bem/bem.go
+@@ -61,7 +61,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Before Yesu", "After Yesu"},
+- timezones: map[string]string{"MEZ": "MEZ", "CLT": "CLT", "CLST": "CLST", "HNNOMX": "HNNOMX", "SGT": "SGT", "WIB": "WIB", "∅∅∅": "∅∅∅", "BOT": "BOT", "HNEG": "HNEG", "GFT": "GFT", "HNCU": "HNCU", "AST": "AST", "AKST": "AKST", "HAST": "HAST", "AEST": "AEST", "LHST": "LHST", "OEZ": "OEZ", "COT": "COT", "GMT": "GMT", "UYST": "UYST", "ART": "ART", "CHAST": "CHAST", "CHADT": "CHADT", "JDT": "JDT", "HNOG": "HNOG", "ChST": "ChST", "WART": "WART", "COST": "COST", "HECU": "HECU", "ADT": "ADT", "HADT": "HADT", "WIT": "WIT", "AWST": "AWST", "HEEG": "HEEG", "MDT": "MDT", "HEPMX": "HEPMX", "GYT": "GYT", "BT": "BT", "PDT": "PDT", "HAT": "HAT", "ACDT": "ACDT", "EST": "EST", "EDT": "EDT", "CDT": "CDT", "PST": "PST", "HEOG": "HEOG", "WAST": "WAST", "MST": "MST", "ECT": "ECT", "ACWST": "ACWST", "ACWDT": "ACWDT", "HNT": "HNT", "HNPM": "HNPM", "NZDT": "NZDT", "JST": "JST", "ACST": "ACST", "WESZ": "WESZ", "HKT": "HKT", "TMST": "TMST", "CAT": "CAT", "WARST": "WARST", "UYT": "UYT", "AEDT": "AEDT", "SAST": "SAST", "AKDT": "AKDT", "CST": "CST", "MYT": "MYT", "ARST": "ARST", "MESZ": "MESZ", "EAT": "EAT", "HKST": "HKST", "WITA": "WITA", "NZST": "NZST", "WAT": "WAT", "HNPMX": "HNPMX", "SRT": "SRT", "AWDT": "AWDT", "LHDT": "LHDT", "HENOMX": "HENOMX", "VET": "VET", "TMT": "TMT", "WEZ": "WEZ", "HEPM": "HEPM", "IST": "IST", "OESZ": "OESZ"},
++ timezones: map[string]string{"GYT": "GYT", "EST": "EST", "CDT": "CDT", "HEPM": "HEPM", "LHST": "LHST", "WEZ": "WEZ", "MEZ": "MEZ", "HNPM": "HNPM", "HNT": "HNT", "HAT": "HAT", "WARST": "WARST", "HNOG": "HNOG", "CLT": "CLT", "EAT": "EAT", "HNCU": "HNCU", "OEZ": "OEZ", "TMT": "TMT", "ARST": "ARST", "COST": "COST", "CST": "CST", "AST": "AST", "SGT": "SGT", "ADT": "ADT", "HADT": "HADT", "MESZ": "MESZ", "PDT": "PDT", "VET": "VET", "GFT": "GFT", "ECT": "ECT", "ChST": "ChST", "AWDT": "AWDT", "HKT": "HKT", "NZST": "NZST", "HNNOMX": "HNNOMX", "UYT": "UYT", "ACWST": "ACWST", "HNPMX": "HNPMX", "EDT": "EDT", "WITA": "WITA", "ART": "ART", "ACST": "ACST", "JST": "JST", "LHDT": "LHDT", "AEST": "AEST", "IST": "IST", "WIT": "WIT", "HKST": "HKST", "MST": "MST", "NZDT": "NZDT", "GMT": "GMT", "BOT": "BOT", "ACWDT": "ACWDT", "AEDT": "AEDT", "AKST": "AKST", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "TMST": "TMST", "CLST": "CLST", "HNEG": "HNEG", "HECU": "HECU", "SAST": "SAST", "CHAST": "CHAST", "CHADT": "CHADT", "AKDT": "AKDT", "COT": "COT", "JDT": "JDT", "HEPMX": "HEPMX", "WESZ": "WESZ", "WAST": "WAST", "AWST": "AWST", "MYT": "MYT", "UYST": "UYST", "PST": "PST", "BT": "BT", "OESZ": "OESZ", "CAT": "CAT", "ACDT": "ACDT", "HENOMX": "HENOMX", "HEEG": "HEEG", "WAT": "WAT", "WART": "WART", "WIB": "WIB", "MDT": "MDT", "SRT": "SRT", "HAST": "HAST"},
+ }
+ }
+ 
+diff --git a/bem_ZM/bem_ZM.go b/bem_ZM/bem_ZM.go
+index 212cd07..f6ce501 100644
+--- a/bem_ZM/bem_ZM.go
++++ b/bem_ZM/bem_ZM.go
+@@ -10,58 +10,45 @@ import (
+ )
+ 
+ type bem_ZM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'bem_ZM' locale
+ func New() locales.Translator {
+ return &bem_ZM{
+- locale: "bem_ZM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mac", "Epr", "Mei", "Jun", "Jul", "Oga", "Sep", "Okt", "Nov", "Dis"},
+- monthsNarrow: []string{"", "J", "F", "M", "E", "M", "J", "J", "O", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januari", "Februari", "Machi", "Epreo", "Mei", "Juni", "Julai", "Ogasti", "Septemba", "Oktoba", "Novemba", "Disemba"},
+- daysWide: []string{"Pa Mulungu", "Palichimo", "Palichibuli", "Palichitatu", "Palichine", "Palichisano", "Pachibelushi"},
+- periodsAbbreviated: []string{"uluchelo", "akasuba"},
+- periodsWide: []string{"uluchelo", "akasuba"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Before Yesu", "After Yesu"},
+- timezones: map[string]string{"NZST": "NZST", "GYT": "GYT", "UYST": "UYST", "WIB": "WIB", "AEDT": "AEDT", "WAST": "WAST", "HNOG": "HNOG", "PST": "PST", "ACWDT": "ACWDT", "VET": "VET", "HEOG": "HEOG", "AEST": "AEST", "AWST": "AWST", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "AST": "AST", "PDT": "PDT", "HECU": "HECU", "HAST": "HAST", "HNPM": "HNPM", "MESZ": "MESZ", "LHDT": "LHDT", "HNEG": "HNEG", "ACDT": "ACDT", "OESZ": "OESZ", "TMT": "TMT", "AWDT": "AWDT", "EST": "EST", "MYT": "MYT", "ART": "ART", "CHADT": "CHADT", "CLT": "CLT", "ChST": "ChST", "MEZ": "MEZ", "JDT": "JDT", "GMT": "GMT", "HEPMX": "HEPMX", "WESZ": "WESZ", "HKT": "HKT", "IST": "IST", "TMST": "TMST", "ARST": "ARST", "HEPM": "HEPM", "HNPMX": "HNPMX", "UYT": "UYT", "AKDT": "AKDT", "BT": "BT", "HNT": "HNT", "CAT": "CAT", "EAT": "EAT", "MST": "MST", "CST": "CST", "AKST": "AKST", "WIT": "WIT", "ECT": "ECT", "MDT": "MDT", "LHST": "LHST", "NZDT": "NZDT", "JST": "JST", "CLST": "CLST", "BOT": "BOT", "ACST": "ACST", "ADT": "ADT", "HADT": "HADT", "CDT": "CDT", "WEZ": "WEZ", "ACWST": "ACWST", "CHAST": "CHAST", "WAT": "WAT", "SRT": "SRT", "HAT": "HAT", "COST": "COST", "HENOMX": "HENOMX", "WITA": "WITA", "HKST": "HKST", "GFT": "GFT", "OEZ": "OEZ", "WARST": "WARST", "COT": "COT", "EDT": "EDT", "SAST": "SAST", "WART": "WART", "SGT": "SGT", "HNCU": "HNCU"},
++ locale: "bem_ZM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNT": "HNT", "HKST": "HKST", "WAST": "WAST", "AKDT": "AKDT", "HAT": "HAT", "EST": "EST", "HKT": "HKT", "MESZ": "MESZ", "AWDT": "AWDT", "HNPM": "HNPM", "HECU": "HECU", "HNPMX": "HNPMX", "WART": "WART", "EDT": "EDT", "GMT": "GMT", "ChST": "ChST", "HEPM": "HEPM", "SGT": "SGT", "WAT": "WAT", "GFT": "GFT", "MDT": "MDT", "AST": "AST", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "PST": "PST", "CLST": "CLST", "NZST": "NZST", "ECT": "ECT", "AWST": "AWST", "MYT": "MYT", "HEPMX": "HEPMX", "OESZ": "OESZ", "WIB": "WIB", "HNEG": "HNEG", "PDT": "PDT", "CHAST": "CHAST", "WEZ": "WEZ", "HEOG": "HEOG", "NZDT": "NZDT", "HENOMX": "HENOMX", "SRT": "SRT", "MEZ": "MEZ", "WESZ": "WESZ", "COST": "COST", "ARST": "ARST", "BOT": "BOT", "HAST": "HAST", "HEEG": "HEEG", "HNCU": "HNCU", "SAST": "SAST", "HNOG": "HNOG", "EAT": "EAT", "JDT": "JDT", "UYT": "UYT", "AKST": "AKST", "BT": "BT", "AEDT": "AEDT", "WIT": "WIT", "CAT": "CAT", "CST": "CST", "ART": "ART", "LHST": "LHST", "IST": "IST", "UYST": "UYST", "WARST": "WARST", "GYT": "GYT", "TMT": "TMT", "WITA": "WITA", "ACWST": "ACWST", "ACWDT": "ACWDT", "OEZ": "OEZ", "COT": "COT", "MST": "MST", "ADT": "ADT", "LHDT": "LHDT", "JST": "JST", "AEST": "AEST", "TMST": "TMST", "CLT": "CLT", "CDT": "CDT", "HADT": "HADT", "VET": "VET", "∅∅∅": "∅∅∅", "ACST": "ACST", "CHADT": "CHADT"},
+ }
+ }
+ 
+@@ -114,7 +101,7 @@ func (bem *bem_ZM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (bem *bem_ZM) MonthsAbbreviated() []string {
+- return bem.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -124,7 +111,7 @@ func (bem *bem_ZM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (bem *bem_ZM) MonthsNarrow() []string {
+- return bem.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -134,7 +121,7 @@ func (bem *bem_ZM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (bem *bem_ZM) MonthsWide() []string {
+- return bem.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -194,56 +181,7 @@ func (bem *bem_ZM) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bem.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bem.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bem.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, bem.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bem.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'bem_ZM'
+@@ -252,68 +190,7 @@ func (bem *bem_ZM) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bem.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bem.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bem.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, bem.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bem.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, bem.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'bem_ZM'
+@@ -321,27 +198,6 @@ func (bem *bem_ZM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -350,17 +206,6 @@ func (bem *bem_ZM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bem.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -369,17 +214,6 @@ func (bem *bem_ZM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bem.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -388,19 +222,6 @@ func (bem *bem_ZM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, bem.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bem.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -409,28 +230,6 @@ func (bem *bem_ZM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bem.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bem.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bem.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -439,35 +238,6 @@ func (bem *bem_ZM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bem.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bem.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bem.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bem.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -476,40 +246,6 @@ func (bem *bem_ZM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bem.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bem.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bem.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bem.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -518,44 +254,5 @@ func (bem *bem_ZM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bem.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bem.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bem.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bem.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := bem.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/bez/bez.go b/bez/bez.go
+index 7cceeea..d41abad 100644
+--- a/bez/bez.go
++++ b/bez/bez.go
+@@ -59,7 +59,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"KM", "BM"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kabla ya Mtwaa", "Baada ya Mtwaa"},
+- timezones: map[string]string{"MESZ": "MESZ", "JST": "JST", "SGT": "SGT", "SRT": "SRT", "WEZ": "WEZ", "ACWST": "ACWST", "AWDT": "AWDT", "LHDT": "LHDT", "BOT": "BOT", "ACST": "ACST", "WIB": "WIB", "AEST": "AEST", "WITA": "WITA", "COST": "COST", "HEPMX": "HEPMX", "CDT": "CDT", "PST": "PST", "HNOG": "HNOG", "ACDT": "ACDT", "OESZ": "OESZ", "GMT": "GMT", "LHST": "LHST", "∅∅∅": "∅∅∅", "HENOMX": "HENOMX", "AKST": "AKST", "CST": "CST", "VET": "VET", "HEOG": "HEOG", "GFT": "GFT", "GYT": "GYT", "ACWDT": "ACWDT", "CLT": "CLT", "ECT": "ECT", "HADT": "HADT", "WIT": "WIT", "HKST": "HKST", "TMT": "TMT", "WAST": "WAST", "OEZ": "OEZ", "UYST": "UYST", "IST": "IST", "HNEG": "HNEG", "CAT": "CAT", "HNCU": "HNCU", "HECU": "HECU", "EST": "EST", "MST": "MST", "HEEG": "HEEG", "WARST": "WARST", "HEPM": "HEPM", "TMST": "TMST", "AST": "AST", "UYT": "UYT", "ART": "ART", "AEDT": "AEDT", "CHAST": "CHAST", "WAT": "WAT", "WART": "WART", "MYT": "MYT", "HNPM": "HNPM", "NZST": "NZST", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "MDT": "MDT", "HNPMX": "HNPMX", "HAT": "HAT", "HKT": "HKT", "CLST": "CLST", "ChST": "ChST", "EAT": "EAT", "BT": "BT", "ARST": "ARST", "COT": "COT", "EDT": "EDT", "AKDT": "AKDT", "WESZ": "WESZ", "HNT": "HNT", "MEZ": "MEZ", "CHADT": "CHADT", "SAST": "SAST", "JDT": "JDT", "ADT": "ADT", "HAST": "HAST", "PDT": "PDT", "AWST": "AWST"},
++ timezones: map[string]string{"WESZ": "WESZ", "HECU": "HECU", "HNPMX": "HNPMX", "WIB": "WIB", "EAT": "EAT", "WAT": "WAT", "AKDT": "AKDT", "WAST": "WAST", "AKST": "AKST", "GFT": "GFT", "HNOG": "HNOG", "ARST": "ARST", "UYT": "UYT", "BT": "BT", "HNCU": "HNCU", "ChST": "ChST", "ACDT": "ACDT", "CHAST": "CHAST", "WEZ": "WEZ", "ECT": "ECT", "AST": "AST", "MEZ": "MEZ", "IST": "IST", "SGT": "SGT", "TMST": "TMST", "CAT": "CAT", "CDT": "CDT", "HEEG": "HEEG", "LHST": "LHST", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "MST": "MST", "MYT": "MYT", "WART": "WART", "WIT": "WIT", "SAST": "SAST", "MDT": "MDT", "AEST": "AEST", "OESZ": "OESZ", "EST": "EST", "EDT": "EDT", "ACST": "ACST", "AWDT": "AWDT", "PST": "PST", "VET": "VET", "HAT": "HAT", "HEOG": "HEOG", "HADT": "HADT", "MESZ": "MESZ", "PDT": "PDT", "ACWST": "ACWST", "COST": "COST", "OEZ": "OEZ", "HKT": "HKT", "CLST": "CLST", "GMT": "GMT", "HNEG": "HNEG", "HENOMX": "HENOMX", "JDT": "JDT", "UYST": "UYST", "WITA": "WITA", "BOT": "BOT", "WARST": "WARST", "HEPMX": "HEPMX", "HKST": "HKST", "CLT": "CLT", "NZDT": "NZDT", "ADT": "ADT", "SRT": "SRT", "HNPM": "HNPM", "ACWDT": "ACWDT", "JST": "JST", "AEDT": "AEDT", "COT": "COT", "NZST": "NZST", "ART": "ART", "HAST": "HAST", "HNNOMX": "HNNOMX", "AWST": "AWST", "TMT": "TMT", "CST": "CST", "LHDT": "LHDT", "HEPM": "HEPM", "HNT": "HNT", "GYT": "GYT"},
+ }
+ }
+ 
+diff --git a/bez_TZ/bez_TZ.go b/bez_TZ/bez_TZ.go
+index a09b119..d8c0abb 100644
+--- a/bez_TZ/bez_TZ.go
++++ b/bez_TZ/bez_TZ.go
+@@ -42,24 +42,13 @@ type bez_TZ struct {
+ // New returns a new instance of translator for the 'bez_TZ' locale
+ func New() locales.Translator {
+ return &bez_TZ{
+- locale: "bez_TZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Hut", "Vil", "Dat", "Tai", "Han", "Sit", "Sab", "Nan", "Tis", "Kum", "Kmj", "Kmb"},
+- monthsNarrow: []string{"", "H", "V", "D", "T", "H", "S", "S", "N", "T", "K", "K", "K"},
+- monthsWide: []string{"", "pa mwedzi gwa hutala", "pa mwedzi gwa wuvili", "pa mwedzi gwa wudatu", "pa mwedzi gwa wutai", "pa mwedzi gwa wuhanu", "pa mwedzi gwa sita", "pa mwedzi gwa saba", "pa mwedzi gwa nane", "pa mwedzi gwa tisa", "pa mwedzi gwa kumi", "pa mwedzi gwa kumi na moja", "pa mwedzi gwa kumi na mbili"},
+- daysAbbreviated: []string{"Mul", "Vil", "Hiv", "Hid", "Hit", "Hih", "Lem"},
+- daysNarrow: []string{"M", "J", "H", "H", "H", "W", "J"},
+- daysWide: []string{"pa mulungu", "pa shahuviluha", "pa hivili", "pa hidatu", "pa hitayi", "pa hihanu", "pa shahulembela"},
+- periodsAbbreviated: []string{"pamilau", "pamunyi"},
+- periodsWide: []string{"pamilau", "pamunyi"},
+- erasAbbreviated: []string{"KM", "BM"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kabla ya Mtwaa", "Baada ya Mtwaa"},
+- timezones: map[string]string{"WITA": "WITA", "CDT": "CDT", "GYT": "GYT", "WIB": "WIB", "WIT": "WIT", "ART": "ART", "HKST": "HKST", "HEPM": "HEPM", "SGT": "SGT", "PST": "PST", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "COST": "COST", "ADT": "ADT", "HADT": "HADT", "HKT": "HKT", "HNPM": "HNPM", "SAST": "SAST", "WARST": "WARST", "GMT": "GMT", "HNOG": "HNOG", "OESZ": "OESZ", "HENOMX": "HENOMX", "HAT": "HAT", "HNEG": "HNEG", "EAT": "EAT", "HNCU": "HNCU", "MDT": "MDT", "HNPMX": "HNPMX", "HNT": "HNT", "NZDT": "NZDT", "COT": "COT", "HECU": "HECU", "WESZ": "WESZ", "AEST": "AEST", "HAST": "HAST", "BT": "BT", "MESZ": "MESZ", "NZST": "NZST", "CLST": "CLST", "JDT": "JDT", "WART": "WART", "UYST": "UYST", "ARST": "ARST", "CHAST": "CHAST", "CHADT": "CHADT", "WAT": "WAT", "MYT": "MYT", "AEDT": "AEDT", "WEZ": "WEZ", "HEOG": "HEOG", "ChST": "ChST", "CAT": "CAT", "WAST": "WAST", "HNNOMX": "HNNOMX", "EST": "EST", "AST": "AST", "MEZ": "MEZ", "LHST": "LHST", "LHDT": "LHDT", "CLT": "CLT", "MST": "MST", "AWST": "AWST", "AWDT": "AWDT", "OEZ": "OEZ", "ECT": "ECT", "HEPMX": "HEPMX", "AKDT": "AKDT", "CST": "CST", "SRT": "SRT", "IST": "IST", "GFT": "GFT", "TMT": "TMT", "AKST": "AKST", "ACWST": "ACWST", "UYT": "UYT", "JST": "JST", "BOT": "BOT", "ACDT": "ACDT", "EDT": "EDT", "HEEG": "HEEG", "TMST": "TMST", "ACST": "ACST", "VET": "VET", "PDT": "PDT"},
++ locale: "bez_TZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"EST": "EST", "BOT": "BOT", "JST": "JST", "IST": "IST", "HNPMX": "HNPMX", "HECU": "HECU", "WAST": "WAST", "HAT": "HAT", "ARST": "ARST", "MESZ": "MESZ", "HENOMX": "HENOMX", "ChST": "ChST", "JDT": "JDT", "LHDT": "LHDT", "CHAST": "CHAST", "ACWST": "ACWST", "AKDT": "AKDT", "TMT": "TMT", "HNNOMX": "HNNOMX", "AWST": "AWST", "∅∅∅": "∅∅∅", "GFT": "GFT", "HNEG": "HNEG", "MYT": "MYT", "SGT": "SGT", "OESZ": "OESZ", "WART": "WART", "HADT": "HADT", "WAT": "WAT", "GYT": "GYT", "OEZ": "OEZ", "AST": "AST", "HAST": "HAST", "CHADT": "CHADT", "UYT": "UYT", "PST": "PST", "ACWDT": "ACWDT", "VET": "VET", "CAT": "CAT", "GMT": "GMT", "AEST": "AEST", "HKT": "HKT", "WIB": "WIB", "ECT": "ECT", "HEOG": "HEOG", "TMST": "TMST", "WITA": "WITA", "NZST": "NZST", "AWDT": "AWDT", "UYST": "UYST", "CDT": "CDT", "SRT": "SRT", "HEPMX": "HEPMX", "AKST": "AKST", "MST": "MST", "MDT": "MDT", "ACDT": "ACDT", "SAST": "SAST", "CST": "CST", "ACST": "ACST", "PDT": "PDT", "HNCU": "HNCU", "HKST": "HKST", "ART": "ART", "WEZ": "WEZ", "WARST": "WARST", "WIT": "WIT", "COT": "COT", "CLT": "CLT", "CLST": "CLST", "NZDT": "NZDT", "LHST": "LHST", "AEDT": "AEDT", "BT": "BT", "WESZ": "WESZ", "COST": "COST", "HNOG": "HNOG", "EDT": "EDT", "ADT": "ADT", "EAT": "EAT", "MEZ": "MEZ", "HEEG": "HEEG", "HNPM": "HNPM", "HEPM": "HEPM", "HNT": "HNT"},
+ }
+ }
+ 
+@@ -112,7 +101,7 @@ func (bez *bez_TZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (bez *bez_TZ) MonthsAbbreviated() []string {
+- return bez.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -122,7 +111,7 @@ func (bez *bez_TZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (bez *bez_TZ) MonthsNarrow() []string {
+- return bez.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -132,7 +121,7 @@ func (bez *bez_TZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (bez *bez_TZ) MonthsWide() []string {
+- return bez.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,54 +181,7 @@ func (bez *bez_TZ) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bez.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bez.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bez.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bez.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bez.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'bez_TZ'
+@@ -248,61 +190,7 @@ func (bez *bez_TZ) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bez.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bez.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bez.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, bez.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bez.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'bez_TZ'
+@@ -310,27 +198,6 @@ func (bez *bez_TZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -339,17 +206,6 @@ func (bez *bez_TZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bez.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -358,17 +214,6 @@ func (bez *bez_TZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bez.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -377,19 +222,6 @@ func (bez *bez_TZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, bez.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bez.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -398,19 +230,6 @@ func (bez *bez_TZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bez.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -419,26 +238,6 @@ func (bez *bez_TZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bez.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bez.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -447,30 +246,6 @@ func (bez *bez_TZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bez.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bez.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -479,34 +254,5 @@ func (bez *bez_TZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bez.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bez.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := bez.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/bg/bg.go b/bg/bg.go
+index 857e9a4..45193a9 100644
+--- a/bg/bg.go
++++ b/bg/bg.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"пр.Хр.", "сл.Хр."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"преди Христа", "след Христа"},
+- timezones: map[string]string{"CLST": "Чилийско лятно часово време", "ADT": "Северноамериканско атлантическо лятно часово време", "WEZ": "Западноевропейско стандартно време", "BT": "Бутанско време", "HEOG": "Западногренландско лятно часово време", "HKST": "Хонконгско лятно часово време", "OESZ": "Източноевропейско лятно часово време", "CAT": "Централноафриканско време", "AKDT": "Аляска – лятно часово време", "WIB": "Западноиндонезийско време", "ACWDT": "Австралия – западно централно лятно часово време", "NZST": "Новозеландско стандартно време", "OEZ": "Източноевропейско стандартно време", "SRT": "Суринамско време", "HKT": "Хонконгско стандартно време", "NZDT": "Новозеландско лятно часово време", "PST": "Северноамериканско тихоокеанско стандартно време", "WITA": "Централноиндонезийско време", "SAST": "Южноафриканско време", "ACDT": "Австралия – централно лятно часово време", "EAT": "Източноафриканско време", "WARST": "Западноаржентинско лятно часово време", "UYST": "Уругвайско лятно часово време", "HADT": "Хавайско-алеутско лятно часово време", "WAT": "Западноафриканско стандартно време", "HNOG": "Западногренландско стандартно време", "COST": "Колумбийско лятно часово време", "UYT": "Уругвайско стандартно време", "HEPM": "Сен Пиер и Микелон – лятно часово време", "AEDT": "Австралия – източно лятно часово време", "AWDT": "Австралия – западно лятно часово време", "ChST": "Чаморо – стандартно време", "BOT": "Боливийско време", "ECT": "Еквадорско време", "HEPMX": "Мексиканско тихоокеанско лятно часово време", "HAT": "Нюфаундлендско лятно часово време", "AEST": "Австралия – източно стандартно време", "TMT": "Туркменистанско стандартно време", "HEEG": "Източногренландско лятно часово време", "WAST": "Западноафриканско лятно часово време", "COT": "Колумбийско стандартно време", "EDT": "Северноамериканско източно лятно часово време", "CDT": "Северноамериканско централно лятно часово време", "MEZ": "Централноевропейско стандартно време", "HNEG": "Източногренландско стандартно време", "HNNOMX": "Мексико – северозападно стандартно време", "MYT": "Малайзийско време", "HAST": "Хавайско-алеутско стандартно време", "PDT": "Северноамериканско тихоокеанско лятно часово време", "WESZ": "Западноевропейско лятно време", "GMT": "Средно гринуичко време", "AKST": "Аляска – стандартно време", "CHAST": "Чатъм – стандартно време", "IST": "Индийско стандартно време", "∅∅∅": "Амазонско лятно часово време", "EST": "Северноамериканско източно стандартно време", "WIT": "Източноиндонезийско време", "ARST": "Аржентинско лятно часово време", "AWST": "Австралия – западно стандартно време", "LHST": "Лорд Хау – стандартно време", "WART": "Западноаржентинско стандартно време", "HNCU": "Кубинско стандартно време", "MDT": "MDT", "AST": "Северноамериканско атлантическо стандартно време", "VET": "Венецуелско време", "ACWST": "Австралия – западно централно стандартно време", "HNPM": "Сен Пиер и Микелон – стандартно време", "JST": "Японско стандартно време", "JDT": "Японско лятно часово време", "HENOMX": "Мексико – северозападно лятно часово време", "SGT": "Сингапурско време", "HNPMX": "Мексиканско тихоокеанско стандартно време", "HNT": "Нюфаундлендско стандартно време", "CLT": "Чилийско стандартно време", "ACST": "Австралия – централно стандартно време", "GYT": "Гаяна", "MESZ": "Централноевропейско лятно часово време", "CHADT": "Чатъм – лятно часово време", "LHDT": "Лорд Хау – лятно часово време", "GFT": "Френска Гвиана", "TMST": "Туркменистанско лятно часово време", "HECU": "Кубинско лятно часово време", "MST": "MST", "CST": "Северноамериканско централно стандартно време", "ART": "Аржентинско стандартно време"},
++ timezones: map[string]string{"∅∅∅": "Бразилско лятно часово време", "EST": "Северноамериканско източно стандартно време", "ART": "Аржентинско стандартно време", "MYT": "Малайзийско време", "HEPM": "Сен Пиер и Микелон – лятно часово време", "BT": "Бутанско време", "SGT": "Сингапурско време", "OEZ": "Източноевропейско стандартно време", "WARST": "Западноаржентинско лятно часово време", "HAST": "Хавайско-алеутско стандартно време", "HNPM": "Сен Пиер и Микелон – стандартно време", "PST": "Северноамериканско тихоокеанско стандартно време", "HNOG": "Западногренландско стандартно време", "TMT": "Туркменистанско стандартно време", "MST": "MST", "MEZ": "Централноевропейско стандартно време", "AWST": "Австралия – западно стандартно време", "AEST": "Австралия – източно стандартно време", "CHAST": "Чатъм – стандартно време", "WAT": "Западноафриканско стандартно време", "WIT": "Източноиндонезийско време", "TMST": "Туркменистанско лятно часово време", "CLT": "Чилийско стандартно време", "CDT": "Северноамериканско централно лятно часово време", "MDT": "MDT", "HENOMX": "Мексико – северозападно лятно часово време", "HNCU": "Кубинско стандартно време", "HEPMX": "Мексиканско тихоокеанско лятно часово време", "GFT": "Френска Гвиана", "EDT": "Северноамериканско източно лятно часово време", "ADT": "Северноамериканско атлантическо лятно часово време", "HNNOMX": "Мексико – северозападно стандартно време", "JDT": "Японско лятно часово време", "WESZ": "Западноевропейско лятно време", "HECU": "Кубинско лятно часово време", "AKDT": "Аляска – лятно часово време", "OESZ": "Източноевропейско лятно часово време", "CAT": "Централноафриканско време", "BOT": "Боливийско време", "SRT": "Суринамско време", "IST": "Индийско стандартно време", "ACWST": "Австралия – западно централно стандартно време", "CHADT": "Чатъм – лятно часово време", "HAT": "Нюфаундлендско лятно часово време", "HKT": "Хонконгско стандартно време", "WIB": "Западноиндонезийско време", "AST": "Северноамериканско атлантическо стандартно време", "AWDT": "Австралия – западно лятно часово време", "HEOG": "Западногренландско лятно часово време", "WITA": "Централноиндонезийско време", "NZDT": "Новозеландско лятно часово време", "PDT": "Северноамериканско тихоокеанско лятно часово време", "UYST": "Уругвайско лятно часово време", "WAST": "Западноафриканско лятно часово време", "HNT": "Нюфаундлендско стандартно време", "GYT": "Гаяна", "COST": "Колумбийско лятно часово време", "ACST": "Австралия – централно стандартно време", "HNEG": "Източногренландско стандартно време", "WEZ": "Западноевропейско стандартно време", "ECT": "Еквадорско време", "GMT": "Средно гринуичко време", "VET": "Венецуелско време", "CST": "Северноамериканско централно стандартно време", "JST": "Японско стандартно време", "WART": "Западноаржентинско стандартно време", "CLST": "Чилийско лятно часово време", "ACDT": "Австралия – централно лятно часово време", "LHST": "Лорд Хау – стандартно време", "SAST": "Южноафриканско време", "COT": "Колумбийско стандартно време", "HKST": "Хонконгско лятно часово време", "ChST": "Чаморо – стандартно време", "HEEG": "Източногренландско лятно часово време", "ACWDT": "Австралия – западно централно лятно часово време", "AKST": "Аляска – стандартно време", "NZST": "Новозеландско стандартно време", "MESZ": "Централноевропейско лятно часово време", "LHDT": "Лорд Хау – лятно часово време", "UYT": "Уругвайско стандартно време", "HNPMX": "Мексиканско тихоокеанско стандартно време", "ARST": "Аржентинско лятно часово време", "EAT": "Източноафриканско време", "HADT": "Хавайско-алеутско лятно часово време", "AEDT": "Австралия – източно лятно часово време"},
+ }
+ }
+ 
+diff --git a/bg_BG/bg_BG.go b/bg_BG/bg_BG.go
+index 07ac384..e74e5d5 100644
+--- a/bg_BG/bg_BG.go
++++ b/bg_BG/bg_BG.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type bg_BG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'bg_BG' locale
+ func New() locales.Translator {
+ return &bg_BG{
+- locale: "bg_BG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "яну", "фев", "март", "апр", "май", "юни", "юли", "авг", "сеп", "окт", "ное", "дек"},
+- monthsNarrow: []string{"", "я", "ф", "м", "а", "м", "ю", "ю", "а", "с", "о", "н", "д"},
+- monthsWide: []string{"", "януари", "февруари", "март", "април", "май", "юни", "юли", "август", "септември", "октомври", "ноември", "декември"},
+- daysAbbreviated: []string{"нд", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysNarrow: []string{"н", "п", "в", "с", "ч", "п", "с"},
+- daysShort: []string{"нд", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysWide: []string{"неделя", "понеделник", "вторник", "сряда", "четвъртък", "петък", "събота"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"am", "pm"},
+- periodsWide: []string{"пр.об.", "сл.об."},
+- erasAbbreviated: []string{"пр.Хр.", "сл.Хр."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"преди Христа", "след Христа"},
+- timezones: map[string]string{"UYST": "Уругвайско лятно часово време", "AWST": "Австралия – западно стандартно време", "HKST": "Хонконгско лятно часово време", "MESZ": "Централноевропейско лятно часово време", "SAST": "Южноафриканско време", "HNCU": "Кубинско стандартно време", "AKST": "Аляска – стандартно време", "ACWST": "Австралия – западно централно стандартно време", "COT": "Колумбийско стандартно време", "HNPMX": "Мексиканско тихоокеанско стандартно време", "MYT": "Малайзийско време", "PST": "Северноамериканско тихоокеанско стандартно време", "HEPM": "Сен Пиер и Микелон – лятно часово време", "JST": "Японско стандартно време", "TMST": "Туркменистанско лятно часово време", "ECT": "Еквадорско време", "WEZ": "Западноевропейско стандартно време", "HNOG": "Западногренландско стандартно време", "WITA": "Централноиндонезийско време", "CLST": "Чилийско лятно часово време", "WAT": "Западноафриканско стандартно време", "AEDT": "Австралия – източно лятно часово време", "CHAST": "Чатъм – стандартно време", "IST": "Индийско стандартно време", "CLT": "Чилийско стандартно време", "HNEG": "Източногренландско стандартно време", "GFT": "Френска Гвиана", "WAST": "Западноафриканско лятно часово време", "EDT": "Северноамериканско източно лятно часово време", "CDT": "Северноамериканско централно лятно часово време", "EST": "Северноамериканско източно стандартно време", "AST": "Северноамериканско атлантическо стандартно време", "SRT": "Суринамско време", "AEST": "Австралия – източно стандартно време", "AWDT": "Австралия – западно лятно часово време", "JDT": "Японско лятно часово време", "EAT": "Източноафриканско време", "BT": "Бутанско време", "HNPM": "Сен Пиер и Микелон – стандартно време", "CHADT": "Чатъм – лятно часово време", "ACDT": "Австралия – централно лятно часово време", "MST": "MST", "HEPMX": "Мексиканско тихоокеанско лятно часово време", "HAST": "Хавайско-алеутско стандартно време", "LHDT": "Лорд Хау – лятно часово време", "∅∅∅": "Амазонско лятно часово време", "ChST": "Чаморо – стандартно време", "ACST": "Австралия – централно стандартно време", "WART": "Западноаржентинско стандартно време", "GMT": "Средно гринуичко време", "GYT": "Гаяна", "VET": "Венецуелско време", "HNT": "Нюфаундлендско стандартно време", "HAT": "Нюфаундлендско лятно часово време", "ART": "Аржентинско стандартно време", "HEEG": "Източногренландско лятно часово време", "OEZ": "Източноевропейско стандартно време", "HENOMX": "Мексико – северозападно лятно часово време", "WIT": "Източноиндонезийско време", "WESZ": "Западноевропейско лятно време", "ACWDT": "Австралия – западно централно лятно часово време", "ARST": "Аржентинско лятно часово време", "TMT": "Туркменистанско стандартно време", "OESZ": "Източноевропейско лятно часово време", "HNNOMX": "Мексико – северозападно стандартно време", "SGT": "Сингапурско време", "MDT": "MDT", "HEOG": "Западногренландско лятно часово време", "CST": "Северноамериканско централно стандартно време", "UYT": "Уругвайско стандартно време", "HADT": "Хавайско-алеутско лятно часово време", "LHST": "Лорд Хау – стандартно време", "NZST": "Новозеландско стандартно време", "HECU": "Кубинско лятно часово време", "WIB": "Западноиндонезийско време", "NZDT": "Новозеландско лятно часово време", "BOT": "Боливийско време", "CAT": "Централноафриканско време", "AKDT": "Аляска – лятно часово време", "ADT": "Северноамериканско атлантическо лятно часово време", "PDT": "Северноамериканско тихоокеанско лятно часово време", "MEZ": "Централноевропейско стандартно време", "WARST": "Западноаржентинско лятно часово време", "COST": "Колумбийско лятно часово време", "HKT": "Хонконгско стандартно време"},
++ locale: "bg_BG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GMT": "GMT", "EAT": "EAT", "MESZ": "MESZ", "HEPMX": "HEPMX", "HKST": "HKST", "TMT": "TMT", "HNPM": "HNPM", "HEPM": "HEPM", "COST": "COST", "VET": "VET", "MDT": "MDT", "ART": "ART", "HAST": "HAST", "HNEG": "HNEG", "AWDT": "AWDT", "UYST": "UYST", "BT": "BT", "EST": "EST", "ARST": "ARST", "ACWST": "ACWST", "WEZ": "WEZ", "HNOG": "HNOG", "HKT": "HKT", "ChST": "ChST", "JDT": "JDT", "LHDT": "LHDT", "CHAST": "CHAST", "HNT": "HNT", "WIT": "WIT", "COT": "COT", "BOT": "BOT", "PST": "PST", "WAT": "WAT", "HEOG": "HEOG", "CST": "CST", "NZST": "NZST", "HNNOMX": "HNNOMX", "ACDT": "ACDT", "HEEG": "HEEG", "WAST": "WAST", "WART": "WART", "GYT": "GYT", "AWST": "AWST", "AEST": "AEST", "AKST": "AKST", "TMST": "TMST", "WIB": "WIB", "CHADT": "CHADT", "UYT": "UYT", "AKDT": "AKDT", "ECT": "ECT", "AST": "AST", "HENOMX": "HENOMX", "AEDT": "AEDT", "WESZ": "WESZ", "WARST": "WARST", "MYT": "MYT", "SAST": "SAST", "CDT": "CDT", "ADT": "ADT", "HADT": "HADT", "MEZ": "MEZ", "NZDT": "NZDT", "ACWDT": "ACWDT", "HNCU": "HNCU", "HECU": "HECU", "HNPMX": "HNPMX", "GFT": "GFT", "PDT": "PDT", "OEZ": "OEZ", "HAT": "HAT", "MST": "MST", "SRT": "SRT", "ACST": "ACST", "JST": "JST", "IST": "IST", "EDT": "EDT", "WITA": "WITA", "LHST": "LHST", "∅∅∅": "∅∅∅", "SGT": "SGT", "OESZ": "OESZ", "CAT": "CAT", "CLT": "CLT", "CLST": "CLST"},
+ }
+ }
+ 
+@@ -126,7 +101,7 @@ func (bg *bg_BG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (bg *bg_BG) MonthsAbbreviated() []string {
+- return bg.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +111,7 @@ func (bg *bg_BG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (bg *bg_BG) MonthsNarrow() []string {
+- return bg.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +121,7 @@ func (bg *bg_BG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (bg *bg_BG) MonthsWide() []string {
+- return bg.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,75 +167,13 @@ func (bg *bg_BG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'bg_BG' and handles both Whole and Real numbers based on 'v'
+ func (bg *bg_BG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bg.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(bg.group) - 1; j >= 0; j-- {
+- b = append(b, bg.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bg.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'bg_BG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (bg *bg_BG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bg.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bg.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, bg.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'bg_BG'
+@@ -268,45 +181,7 @@ func (bg *bg_BG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bg.currencies[currency]
+- l := len(s) + len(symbol) + 4
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bg.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bg.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bg.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, bg.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'bg_BG'
+@@ -315,52 +190,7 @@ func (bg *bg_BG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bg.currencies[currency]
+- l := len(s) + len(symbol) + 6
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bg.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, bg.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bg.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, bg.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, bg.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'bg_BG'
+@@ -368,26 +198,6 @@ func (bg *bg_BG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -396,26 +206,6 @@ func (bg *bg_BG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -424,20 +214,6 @@ func (bg *bg_BG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bg.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -446,22 +222,6 @@ func (bg *bg_BG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, bg.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bg.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -470,15 +230,6 @@ func (bg *bg_BG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -487,22 +238,6 @@ func (bg *bg_BG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -511,26 +246,6 @@ func (bg *bg_BG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -539,30 +254,5 @@ func (bg *bg_BG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := bg.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/bm/bm.go b/bm/bm.go
+index 49b16b5..3c25994 100644
+--- a/bm/bm.go
++++ b/bm/bm.go
+@@ -61,7 +61,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"J.-C. ɲɛ", "ni J.-C."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"jezu krisiti ɲɛ", "jezu krisiti minkɛ"},
+- timezones: map[string]string{"OEZ": "OEZ", "EDT": "EDT", "AST": "AST", "SRT": "SRT", "WEZ": "WEZ", "HNPMX": "HNPMX", "LHST": "LHST", "GFT": "GFT", "SGT": "SGT", "AKST": "AKST", "ARST": "ARST", "WESZ": "WESZ", "ACWST": "ACWST", "NZST": "NZST", "WIT": "WIT", "HEOG": "HEOG", "PDT": "PDT", "HNPM": "HNPM", "CLST": "CLST", "GYT": "GYT", "AKDT": "AKDT", "NZDT": "NZDT", "BOT": "BOT", "HNCU": "HNCU", "CST": "CST", "BT": "BT", "AEDT": "AEDT", "HEPM": "HEPM", "JDT": "JDT", "EAT": "EAT", "WAST": "WAST", "HNNOMX": "HNNOMX", "HADT": "HADT", "ART": "ART", "MEZ": "MEZ", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "WARST": "WARST", "COT": "COT", "GMT": "GMT", "HECU": "HECU", "HAT": "HAT", "TMT": "TMT", "WAT": "WAT", "ADT": "ADT", "MYT": "MYT", "UYT": "UYT", "HKST": "HKST", "COST": "COST", "EST": "EST", "ChST": "ChST", "HENOMX": "HENOMX", "UYST": "UYST", "HAST": "HAST", "HNT": "HNT", "ACWDT": "ACWDT", "ACST": "ACST", "CAT": "CAT", "WART": "WART", "VET": "VET", "IST": "IST", "CLT": "CLT", "CDT": "CDT", "WIB": "WIB", "AEST": "AEST", "AWST": "AWST", "AWDT": "AWDT", "HKT": "HKT", "JST": "JST", "ECT": "ECT", "HEPMX": "HEPMX", "HNOG": "HNOG", "WITA": "WITA", "CHADT": "CHADT", "TMST": "TMST", "HNEG": "HNEG", "MST": "MST", "MDT": "MDT", "PST": "PST", "LHDT": "LHDT", "ACDT": "ACDT", "OESZ": "OESZ", "CHAST": "CHAST", "SAST": "SAST"},
++ timezones: map[string]string{"HNOG": "HNOG", "HEOG": "HEOG", "EST": "EST", "ChST": "ChST", "ART": "ART", "UYT": "UYT", "WEZ": "WEZ", "WARST": "WARST", "ECT": "ECT", "ARST": "ARST", "JDT": "JDT", "WESZ": "WESZ", "CLST": "CLST", "MST": "MST", "MEZ": "MEZ", "MESZ": "MESZ", "ACWDT": "ACWDT", "CLT": "CLT", "SRT": "SRT", "AKDT": "AKDT", "CST": "CST", "CDT": "CDT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "GFT": "GFT", "EDT": "EDT", "CAT": "CAT", "IST": "IST", "HNT": "HNT", "GMT": "GMT", "EAT": "EAT", "LHST": "LHST", "JST": "JST", "UYST": "UYST", "LHDT": "LHDT", "HNCU": "HNCU", "WART": "WART", "TMST": "TMST", "HEPMX": "HEPMX", "AKST": "AKST", "WIT": "WIT", "HADT": "HADT", "HEPM": "HEPM", "AWST": "AWST", "CHAST": "CHAST", "HNPMX": "HNPMX", "GYT": "GYT", "AEDT": "AEDT", "OEZ": "OEZ", "WIB": "WIB", "HAST": "HAST", "HENOMX": "HENOMX", "AEST": "AEST", "CHADT": "CHADT", "HAT": "HAT", "AST": "AST", "SAST": "SAST", "WITA": "WITA", "NZST": "NZST", "BOT": "BOT", "AWDT": "AWDT", "BT": "BT", "SGT": "SGT", "COST": "COST", "HNPM": "HNPM", "ACWST": "ACWST", "TMT": "TMT", "NZDT": "NZDT", "WAST": "WAST", "OESZ": "OESZ", "HKST": "HKST", "ADT": "ADT", "MDT": "MDT", "ACST": "ACST", "HECU": "HECU", "WAT": "WAT", "COT": "COT", "HKT": "HKT", "ACDT": "ACDT", "MYT": "MYT", "PDT": "PDT", "∅∅∅": "∅∅∅", "VET": "VET", "HNEG": "HNEG", "PST": "PST"},
+ }
+ }
+ 
+diff --git a/bm_ML/bm_ML.go b/bm_ML/bm_ML.go
+index 632ba9a..8fd1a20 100644
+--- a/bm_ML/bm_ML.go
++++ b/bm_ML/bm_ML.go
+@@ -10,58 +10,45 @@ import (
+ )
+ 
+ type bm_ML struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'bm_ML' locale
+ func New() locales.Translator {
+ return &bm_ML{
+- locale: "bm_ML",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "zan", "feb", "mar", "awi", "mɛ", "zuw", "zul", "uti", "sɛt", "ɔku", "now", "des"},
+- monthsNarrow: []string{"", "Z", "F", "M", "A", "M", "Z", "Z", "U", "S", "Ɔ", "N", "D"},
+- monthsWide: []string{"", "zanwuye", "feburuye", "marisi", "awirili", "mɛ", "zuwɛn", "zuluye", "uti", "sɛtanburu", "ɔkutɔburu", "nowanburu", "desanburu"},
+- daysAbbreviated: []string{"kar", "ntɛ", "tar", "ara", "ala", "jum", "sib"},
+- daysNarrow: []string{"K", "N", "T", "A", "A", "J", "S"},
+- daysWide: []string{"kari", "ntɛnɛ", "tarata", "araba", "alamisa", "juma", "sibiri"},
+- erasAbbreviated: []string{"J.-C. ɲɛ", "ni J.-C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"jezu krisiti ɲɛ", "jezu krisiti minkɛ"},
+- timezones: map[string]string{"EAT": "EAT", "WIT": "WIT", "CLST": "CLST", "∅∅∅": "∅∅∅", "MDT": "MDT", "VET": "VET", "MESZ": "MESZ", "WAST": "WAST", "AEST": "AEST", "SAST": "SAST", "ECT": "ECT", "CAT": "CAT", "HAT": "HAT", "ART": "ART", "MST": "MST", "LHDT": "LHDT", "WAT": "WAT", "ChST": "ChST", "HNPMX": "HNPMX", "ACWST": "ACWST", "LHST": "LHST", "TMT": "TMT", "GMT": "GMT", "WESZ": "WESZ", "HNOG": "HNOG", "OESZ": "OESZ", "EDT": "EDT", "UYST": "UYST", "NZDT": "NZDT", "CHAST": "CHAST", "HECU": "HECU", "HAST": "HAST", "HKST": "HKST", "AEDT": "AEDT", "HEOG": "HEOG", "HKT": "HKT", "WITA": "WITA", "HEPM": "HEPM", "JST": "JST", "TMST": "TMST", "ACWDT": "ACWDT", "HNT": "HNT", "AKDT": "AKDT", "SRT": "SRT", "COST": "COST", "AKST": "AKST", "COT": "COT", "EST": "EST", "HADT": "HADT", "AWST": "AWST", "ACDT": "ACDT", "NZST": "NZST", "ACST": "ACST", "OEZ": "OEZ", "SGT": "SGT", "HEPMX": "HEPMX", "CDT": "CDT", "ARST": "ARST", "PDT": "PDT", "MYT": "MYT", "HEEG": "HEEG", "GFT": "GFT", "WART": "WART", "AST": "AST", "ADT": "ADT", "UYT": "UYT", "AWDT": "AWDT", "HNEG": "HNEG", "WARST": "WARST", "GYT": "GYT", "PST": "PST", "HNPM": "HNPM", "HENOMX": "HENOMX", "WEZ": "WEZ", "CHADT": "CHADT", "CLT": "CLT", "BOT": "BOT", "CST": "CST", "BT": "BT", "MEZ": "MEZ", "IST": "IST", "HNCU": "HNCU", "WIB": "WIB", "JDT": "JDT", "HNNOMX": "HNNOMX"},
++ locale: "bm_ML",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MST": "MST", "PDT": "PDT", "HECU": "HECU", "NZST": "NZST", "WIB": "WIB", "HADT": "HADT", "BT": "BT", "HEPMX": "HEPMX", "GYT": "GYT", "TMT": "TMT", "CDT": "CDT", "ARST": "ARST", "ART": "ART", "EAT": "EAT", "PST": "PST", "VET": "VET", "WAST": "WAST", "HEOG": "HEOG", "TMST": "TMST", "CLT": "CLT", "OESZ": "OESZ", "AST": "AST", "CHAST": "CHAST", "HENOMX": "HENOMX", "WESZ": "WESZ", "CLST": "CLST", "ChST": "ChST", "SRT": "SRT", "HNNOMX": "HNNOMX", "WIT": "WIT", "WART": "WART", "COT": "COT", "ACDT": "ACDT", "LHST": "LHST", "AEST": "AEST", "UYT": "UYT", "OEZ": "OEZ", "∅∅∅": "∅∅∅", "EDT": "EDT", "MYT": "MYT", "CHADT": "CHADT", "HNCU": "HNCU", "SGT": "SGT", "HNT": "HNT", "COST": "COST", "CAT": "CAT", "ECT": "ECT", "HEEG": "HEEG", "HEPM": "HEPM", "AWDT": "AWDT", "HNPMX": "HNPMX", "WARST": "WARST", "HKST": "HKST", "HAST": "HAST", "HNEG": "HNEG", "CST": "CST", "JDT": "JDT", "ACWDT": "ACWDT", "GFT": "GFT", "BOT": "BOT", "HNPM": "HNPM", "AWST": "AWST", "MDT": "MDT", "ACST": "ACST", "IST": "IST", "WEZ": "WEZ", "WAT": "WAT", "AKDT": "AKDT", "HAT": "HAT", "SAST": "SAST", "AKST": "AKST", "WITA": "WITA", "JST": "JST", "MEZ": "MEZ", "LHDT": "LHDT", "UYST": "UYST", "EST": "EST", "NZDT": "NZDT", "ADT": "ADT", "GMT": "GMT", "AEDT": "AEDT", "HNOG": "HNOG", "HKT": "HKT", "MESZ": "MESZ", "ACWST": "ACWST"},
+ }
+ }
+ 
+@@ -107,7 +94,7 @@ func (bm *bm_ML) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (bm *bm_ML) MonthsAbbreviated() []string {
+- return bm.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -117,7 +104,7 @@ func (bm *bm_ML) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (bm *bm_ML) MonthsNarrow() []string {
+- return bm.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -127,7 +114,7 @@ func (bm *bm_ML) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (bm *bm_ML) MonthsWide() []string {
+- return bm.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -187,56 +174,7 @@ func (bm *bm_ML) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bm.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bm.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bm.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, bm.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bm.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'bm_ML'
+@@ -245,68 +183,7 @@ func (bm *bm_ML) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bm.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bm.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bm.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, bm.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bm.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, bm.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'bm_ML'
+@@ -314,17 +191,6 @@ func (bm *bm_ML) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -333,17 +199,6 @@ func (bm *bm_ML) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bm.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -352,17 +207,6 @@ func (bm *bm_ML) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bm.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -371,19 +215,6 @@ func (bm *bm_ML) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, bm.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bm.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -392,19 +223,6 @@ func (bm *bm_ML) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bm.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -413,26 +231,6 @@ func (bm *bm_ML) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bm.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bm.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -441,30 +239,6 @@ func (bm *bm_ML) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bm.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bm.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -473,34 +247,5 @@ func (bm *bm_ML) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bm.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bm.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := bm.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/bn/bn.go b/bn/bn.go
+index 430d642..79f9b82 100644
+--- a/bn/bn.go
++++ b/bn/bn.go
+@@ -65,7 +65,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"খ্রিস্টপূর্ব", "খৃষ্টাব্দ"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"খ্রিস্টপূর্ব", "খৃষ্টাব্দ"},
+- timezones: map[string]string{"MYT": "মালয়েশিয়া সময়", "ART": "আর্জেনটিনা মানক সময়", "AEDT": "অস্ট্রেলীয় পূর্ব দিবালোক সময়", "CLT": "চিলি মানক সময়", "ECT": "ইকুয়েডর সময়", "AST": "অতলান্তিক মানক সময়", "HKT": "হং কং মানক সময়", "MEZ": "মধ্য ইউরোপের মানক সময়", "GFT": "ফরাসি গায়ানা সময়", "CAT": "মধ্য আফ্রিকা সময়", "ADT": "অতলান্তিক দিবালোক সময়", "AKST": "আলাস্কা মানক সময়", "MESZ": "মধ্য ইউরোপের গ্রীষ্মকালীন সময়", "TMST": "তুর্কমেনিস্তান গ্রীষ্মকালীন সময়", "BOT": "বোলিভিয়া সময়", "MDT": "মাকাও গ্রীষ্মকাল সময়", "CDT": "কেন্দ্রীয় দিবালোক সময়", "UYT": "উরুগুয়ে মানক সময়", "HAT": "নিউফাউন্ডল্যান্ড দিবালোক সময়", "NZDT": "নিউজিল্যান্ড দিবালোক সময়", "JST": "জাপান মানক সময়", "COST": "কোলোম্বিয়া গ্রীষ্মকালীন সময়", "EST": "পূর্বাঞ্চলের প্রমাণ সময়", "WIB": "পশ্চিমী ইন্দোনেশিয়া সময়", "BT": "ভুটান সময়", "HEOG": "পশ্চিম গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "∅∅∅": "অ্যামাজন গ্রীষ্মকালীন সময়", "HNOG": "পশ্চিম গ্রীনল্যান্ড মানক সময়", "AWST": "অস্ট্রেলীয় পশ্চিমি মানক সময়", "HEPM": "সেন্ট পিয়ের ও মিকেলন দিবালোক সময়", "COT": "কোলোম্বিয়া মানক সময়", "HENOMX": "উত্তরপশ্চিম মেক্সিকোর দিনের সময়", "HECU": "কিউবা দিবালোক সময়", "WIT": "পূর্ব ইন্দোনেশিয়া সময়", "SRT": "সুরিনাম সময়", "NZST": "নিউজিল্যান্ড মানক সময়", "LHST": "লর্ড হাওয়ে মানক মসয়", "EAT": "পূর্ব আফ্রিকা সময়", "WARST": "পশ্চিমি আর্জেনটিনা গৃষ্মকালীন সময়", "EDT": "পূর্বাঞ্চলের দিবালোক সময়", "HNPMX": "মেক্সিকান প্রশান্ত মহসাগরীয় মানক সময়", "ARST": "আর্জেনটিনা গ্রীষ্মকালীন সময়", "CHAST": "চ্যাথাম মানক সময়", "IST": "ভারতীয় মানক সময়", "GMT": "গ্রীনিচ মিন টাইম", "HNCU": "কিউবা মানক সময়", "HADT": "হাওয়াই-আলেউত দিবালোক সময়", "PST": "প্রশান্ত মহাসাগরীয় অঞ্চলের মানক সময়", "ACWDT": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি দিবালোক সময়", "SAST": "দক্ষিণ আফ্রিকা মানক সময়", "JDT": "জাপান দিবালোক সময়", "TMT": "তুর্কমেনিস্তান মানক সময়", "ChST": "চামেরো মানক সময়", "ACST": "অস্ট্রেলীয় কেন্দ্রীয় মানক সময়", "UYST": "উরুগুয়ে গ্রীষ্মকালীন সময়", "AKDT": "আলাস্কা দিবালোক সময়", "HNEG": "পূর্ব গ্রীনল্যান্ড মানক সময়", "WAT": "পশ্চিম আফ্রিকা মানক সময়", "WESZ": "পশ্চিম ইউরোপের গ্রীষ্মকালীন সময়", "HNPM": "সেন্ট পিয়ের ও মিকেলন মানক সময়", "ACDT": "অস্ট্রেলীয় কেন্দ্রীয় দিবালোক সময়", "HEPMX": "মেক্সিকান প্রশান্ত মহাসাগরীয় দিবালোক সময়", "WEZ": "পশ্চিম ইউরোপের মানক সময়", "WITA": "কেন্দ্রীয় ইন্দোনেশিয়া সময়", "AWDT": "অস্ট্রেলীয় পশ্চিমি দিবালোক সময়", "CLST": "চিলি গ্রীষ্মকাল সময়", "OEZ": "পূর্ব ইউরোপের মানক সময়", "WART": "পশ্চিমি আর্জেনটিনার প্রমাণ সময়", "MST": "মাকাও মান সময়", "HAST": "হাওয়াই-আলেউত মানক সময়", "VET": "ভেনেজুয়েলা সময়", "HNNOMX": "উত্তরপশ্চিম মেক্সিকোর মানক সময়", "SGT": "সিঙ্গাপুর মানক সময়", "CST": "কেন্দ্রীয় মানক সময়", "PDT": "প্রশান্ত মহাসাগরীয় অঞ্চলের দিনের সময়", "ACWST": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি মানক সময়", "AEST": "অস্ট্রেলীয় পূর্ব মানক সময়", "OESZ": "পূর্ব ইউরোপের গ্রীষ্মকালীন সময়", "WAST": "পশ্চিম আফ্রিকা গ্রীষ্মকালীন সময়", "GYT": "গুয়ানা সময়", "HKST": "হং কং গ্রীষ্মকালীন সময়", "LHDT": "লর্ড হাওয়ে দিবালোক মসয়", "HEEG": "পূর্ব গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "HNT": "নিউফাউন্ডল্যান্ড মানক সময়", "CHADT": "চ্যাথাম দিবালোক সময়"},
++ timezones: map[string]string{"UYST": "উরুগুয়ে গ্রীষ্মকালীন সময়", "HEPMX": "মেক্সিকান প্রশান্ত মহাসাগরীয় দিবালোক সময়", "AKDT": "আলাস্কা দিবালোক সময়", "GFT": "ফরাসি গায়ানা সময়", "HNOG": "পশ্চিম গ্রীনল্যান্ড মানক সময়", "MST": "মাকাও মান সময়", "ART": "আর্জেনটিনা মানক সময়", "AST": "অতলান্তিক মানক সময়", "HNNOMX": "উত্তরপশ্চিম মেক্সিকোর মানক সময়", "HKST": "হং কং গ্রীষ্মকালীন সময়", "NZST": "নিউজিল্যান্ড মানক সময়", "ARST": "আর্জেনটিনা গ্রীষ্মকালীন সময়", "GMT": "গ্রীনিচ মিন টাইম", "LHDT": "লর্ড হাওয়ে দিবালোক মসয়", "AEST": "অস্ট্রেলীয় পূর্ব মানক সময়", "AEDT": "অস্ট্রেলীয় পূর্ব দিবালোক সময়", "COT": "কোলোম্বিয়া মানক সময়", "CLST": "চিলি গ্রীষ্মকাল সময়", "ChST": "চামেরো মানক সময়", "HENOMX": "উত্তরপশ্চিম মেক্সিকোর দিনের সময়", "JST": "জাপান মানক সময়", "AWDT": "অস্ট্রেলীয় পশ্চিমি দিবালোক সময়", "ACWST": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি মানক সময়", "UYT": "উরুগুয়ে মানক সময়", "WIT": "পূর্ব ইন্দোনেশিয়া সময়", "HAT": "নিউফাউন্ডল্যান্ড দিবালোক সময়", "HEOG": "পশ্চিম গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "HKT": "হং কং মানক সময়", "EST": "পূর্বাঞ্চলের প্রমাণ সময়", "EAT": "পূর্ব আফ্রিকা সময়", "JDT": "জাপান দিবালোক সময়", "PDT": "প্রশান্ত মহাসাগরীয় অঞ্চলের দিনের সময়", "OESZ": "পূর্ব ইউরোপের গ্রীষ্মকালীন সময়", "HAST": "হাওয়াই-আলেউত মানক সময়", "LHST": "লর্ড হাওয়ে মানক মসয়", "ACWDT": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি দিবালোক সময়", "HNCU": "কিউবা মানক সময়", "WART": "পশ্চিমি আর্জেনটিনার প্রমাণ সময়", "CHADT": "চ্যাথাম দিবালোক সময়", "VET": "ভেনেজুয়েলা সময়", "HECU": "কিউবা দিবালোক সময়", "MEZ": "মধ্য ইউরোপের মানক সময়", "HEPM": "সেন্ট পিয়ের ও মিকেলন দিবালোক সময়", "AWST": "অস্ট্রেলীয় পশ্চিমি মানক সময়", "OEZ": "পূর্ব ইউরোপের মানক সময়", "CLT": "চিলি মানক সময়", "NZDT": "নিউজিল্যান্ড দিবালোক সময়", "MYT": "মালয়েশিয়া সময়", "HNT": "নিউফাউন্ডল্যান্ড মানক সময়", "SAST": "দক্ষিণ আফ্রিকা মানক সময়", "GYT": "গুয়ানা সময়", "TMT": "তুর্কমেনিস্তান মানক সময়", "WESZ": "পশ্চিম ইউরোপের গ্রীষ্মকালীন সময়", "SGT": "সিঙ্গাপুর মানক সময়", "∅∅∅": "ব্রাসিলিয়া গ্রীষ্মকালীন সময়", "EDT": "পূর্বাঞ্চলের দিবালোক সময়", "CAT": "মধ্য আফ্রিকা সময়", "BT": "ভুটান সময়", "COST": "কোলোম্বিয়া গ্রীষ্মকালীন সময়", "WITA": "কেন্দ্রীয় ইন্দোনেশিয়া সময়", "ACST": "অস্ট্রেলীয় কেন্দ্রীয় মানক সময়", "ACDT": "অস্ট্রেলীয় কেন্দ্রীয় দিবালোক সময়", "HNPM": "সেন্ট পিয়ের ও মিকেলন মানক সময়", "WAT": "পশ্চিম আফ্রিকা মানক সময়", "WARST": "পশ্চিমি আর্জেনটিনা গৃষ্মকালীন সময়", "TMST": "তুর্কমেনিস্তান গ্রীষ্মকালীন সময়", "HNEG": "পূর্ব গ্রীনল্যান্ড মানক সময়", "HEEG": "পূর্ব গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "WAST": "পশ্চিম আফ্রিকা গ্রীষ্মকালীন সময়", "HNPMX": "মেক্সিকান প্রশান্ত মহসাগরীয় মানক সময়", "CST": "কেন্দ্রীয় মানক সময়", "MDT": "মাকাও গ্রীষ্মকাল সময়", "CHAST": "চ্যাথাম মানক সময়", "PST": "প্রশান্ত মহাসাগরীয় অঞ্চলের মানক সময়", "WIB": "পশ্চিমী ইন্দোনেশিয়া সময়", "ADT": "অতলান্তিক দিবালোক সময়", "WEZ": "পশ্চিম ইউরোপের মানক সময়", "ECT": "ইকুয়েডর সময়", "BOT": "বোলিভিয়া সময়", "AKST": "আলাস্কা মানক সময়", "IST": "ভারতীয় মানক সময়", "CDT": "কেন্দ্রীয় দিবালোক সময়", "SRT": "সুরিনাম সময়", "HADT": "হাওয়াই-আলেউত দিবালোক সময়", "MESZ": "মধ্য ইউরোপের গ্রীষ্মকালীন সময়"},
+ }
+ }
+ 
+diff --git a/bn_BD/bn_BD.go b/bn_BD/bn_BD.go
+index 9fb0d11..fdff302 100644
+--- a/bn_BD/bn_BD.go
++++ b/bn_BD/bn_BD.go
+@@ -42,30 +42,13 @@ type bn_BD struct {
+ // New returns a new instance of translator for the 'bn_BD' locale
+ func New() locales.Translator {
+ return &bn_BD{
+- locale: "bn_BD",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 5, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "জানু", "ফেব", "মার্চ", "এপ্রিল", "মে", "জুন", "জুলাই", "আগস্ট", "সেপ্টেম্বর", "অক্টোবর", "নভেম্বর", "ডিসেম্বর"},
+- monthsNarrow: []string{"", "জা", "ফে", "মা", "এ", "মে", "জুন", "জু", "আ", "সে", "অ", "ন", "ডি"},
+- monthsWide: []string{"", "জানুয়ারী", "ফেব্রুয়ারী", "মার্চ", "এপ্রিল", "মে", "জুন", "জুলাই", "আগস্ট", "সেপ্টেম্বর", "অক্টোবর", "নভেম্বর", "ডিসেম্বর"},
+- daysAbbreviated: []string{"রবি", "সোম", "মঙ্গল", "বুধ", "বৃহস্পতি", "শুক্র", "শনি"},
+- daysNarrow: []string{"র", "সো", "ম", "বু", "বৃ", "শু", "শ"},
+- daysShort: []string{"রঃ", "সোঃ", "মঃ", "বুঃ", "বৃঃ", "শুঃ", "শোঃ"},
+- daysWide: []string{"রবিবার", "সোমবার", "মঙ্গলবার", "বুধবার", "বৃহস্পতিবার", "শুক্রবার", "শনিবার"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"খ্রিস্টপূর্ব", "খৃষ্টাব্দ"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"খ্রিস্টপূর্ব", "খৃষ্টাব্দ"},
+- timezones: map[string]string{"PST": "প্রশান্ত মহাসাগরীয় অঞ্চলের মানক সময়", "AEDT": "অস্ট্রেলীয় পূর্ব দিবালোক সময়", "TMST": "তুর্কমেনিস্তান গ্রীষ্মকালীন সময়", "ECT": "ইকুয়েডর সময়", "HNPMX": "মেক্সিকান প্রশান্ত মহসাগরীয় মানক সময়", "AWDT": "অস্ট্রেলীয় পশ্চিমি দিবালোক সময়", "CLST": "চিলি গ্রীষ্মকাল সময়", "ChST": "চামেরো মানক সময়", "EST": "পূর্বাঞ্চলের প্রমাণ সময়", "EDT": "পূর্বাঞ্চলের দিবালোক সময়", "CDT": "কেন্দ্রীয় দিবালোক সময়", "WIB": "পশ্চিমী ইন্দোনেশিয়া সময়", "WEZ": "পশ্চিম ইউরোপের মানক সময়", "AEST": "অস্ট্রেলীয় পূর্ব মানক সময়", "WITA": "কেন্দ্রীয় ইন্দোনেশিয়া সময়", "HNPM": "সেন্ট পিয়ের ও মিকেলন মানক সময়", "LHST": "লর্ড হাওয়ে মানক মসয়", "HADT": "হাওয়াই-আলেউত দিবালোক সময়", "HEOG": "পশ্চিম গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "AKDT": "আলাস্কা দিবালোক সময়", "CLT": "চিলি মানক সময়", "WAT": "পশ্চিম আফ্রিকা মানক সময়", "MST": "মাকাও মান সময়", "ACWST": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি মানক সময়", "AWST": "অস্ট্রেলীয় পশ্চিমি মানক সময়", "NZDT": "নিউজিল্যান্ড দিবালোক সময়", "SAST": "দক্ষিণ আফ্রিকা মানক সময়", "GFT": "ফরাসি গায়ানা সময়", "TMT": "তুর্কমেনিস্তান মানক সময়", "OESZ": "পূর্ব ইউরোপের গ্রীষ্মকালীন সময়", "GMT": "গ্রীনিচ মিন টাইম", "VET": "ভেনেজুয়েলা সময়", "CST": "কেন্দ্রীয় মানক সময়", "ADT": "অতলান্তিক দিবালোক সময়", "HNT": "নিউফাউন্ডল্যান্ড মানক সময়", "HNOG": "পশ্চিম গ্রীনল্যান্ড মানক সময়", "CHAST": "চ্যাথাম মানক সময়", "IST": "ভারতীয় মানক সময়", "WART": "পশ্চিমি আর্জেনটিনার প্রমাণ সময়", "HNNOMX": "উত্তরপশ্চিম মেক্সিকোর মানক সময়", "HECU": "কিউবা দিবালোক সময়", "HEPMX": "মেক্সিকান প্রশান্ত মহাসাগরীয় দিবালোক সময়", "WIT": "পূর্ব ইন্দোনেশিয়া সময়", "ARST": "আর্জেনটিনা গ্রীষ্মকালীন সময়", "BOT": "বোলিভিয়া সময়", "ACST": "অস্ট্রেলীয় কেন্দ্রীয় মানক সময়", "WAST": "পশ্চিম আফ্রিকা গ্রীষ্মকালীন সময়", "UYT": "উরুগুয়ে মানক সময়", "AST": "অতলান্তিক মানক সময়", "JDT": "জাপান দিবালোক সময়", "HEEG": "পূর্ব গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "WARST": "পশ্চিমি আর্জেনটিনা গৃষ্মকালীন সময়", "HENOMX": "উত্তরপশ্চিম মেক্সিকোর দিনের সময়", "HNCU": "কিউবা মানক সময়", "HAST": "হাওয়াই-আলেউত মানক সময়", "SRT": "সুরিনাম সময়", "PDT": "প্রশান্ত মহাসাগরীয় অঞ্চলের দিনের সময়", "HEPM": "সেন্ট পিয়ের ও মিকেলন দিবালোক সময়", "CHADT": "চ্যাথাম দিবালোক সময়", "JST": "জাপান মানক সময়", "NZST": "নিউজিল্যান্ড মানক সময়", "MYT": "মালয়েশিয়া সময়", "BT": "ভুটান সময়", "WESZ": "পশ্চিম ইউরোপের গ্রীষ্মকালীন সময়", "HKST": "হং কং গ্রীষ্মকালীন সময়", "LHDT": "লর্ড হাওয়ে দিবালোক মসয়", "ACDT": "অস্ট্রেলীয় কেন্দ্রীয় দিবালোক সময়", "SGT": "সিঙ্গাপুর মানক সময়", "AKST": "আলাস্কা মানক সময়", "HAT": "নিউফাউন্ডল্যান্ড দিবালোক সময়", "HNEG": "পূর্ব গ্রীনল্যান্ড মানক সময়", "EAT": "পূর্ব আফ্রিকা সময়", "ACWDT": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি দিবালোক সময়", "ART": "আর্জেনটিনা মানক সময়", "∅∅∅": "অ্যামাজন গ্রীষ্মকালীন সময়", "OEZ": "পূর্ব ইউরোপের মানক সময়", "MDT": "মাকাও গ্রীষ্মকাল সময়", "GYT": "গুয়ানা সময়", "HKT": "হং কং মানক সময়", "MEZ": "মধ্য ইউরোপের মানক সময়", "MESZ": "মধ্য ইউরোপের গ্রীষ্মকালীন সময়", "CAT": "মধ্য আফ্রিকা সময়", "COT": "কোলোম্বিয়া মানক সময়", "COST": "কোলোম্বিয়া গ্রীষ্মকালীন সময়", "UYST": "উরুগুয়ে গ্রীষ্মকালীন সময়"},
++ locale: "bn_BD",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 5, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WESZ": "WESZ", "OEZ": "OEZ", "EDT": "EDT", "EAT": "EAT", "HAST": "HAST", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "AKST": "AKST", "COT": "COT", "SRT": "SRT", "ACST": "ACST", "MYT": "MYT", "UYST": "UYST", "WAT": "WAT", "MEZ": "MEZ", "ACDT": "ACDT", "AEDT": "AEDT", "GYT": "GYT", "CST": "CST", "CDT": "CDT", "ARST": "ARST", "BOT": "BOT", "SAST": "SAST", "PDT": "PDT", "BT": "BT", "SGT": "SGT", "HNCU": "HNCU", "WIT": "WIT", "IST": "IST", "CLT": "CLT", "NZST": "NZST", "ChST": "ChST", "HNEG": "HNEG", "HEPM": "HEPM", "WARST": "WARST", "HNOG": "HNOG", "AST": "AST", "HADT": "HADT", "LHST": "LHST", "JDT": "JDT", "UYT": "UYT", "EST": "EST", "MDT": "MDT", "JST": "JST", "AEST": "AEST", "OESZ": "OESZ", "HNT": "HNT", "CAT": "CAT", "HEPMX": "HEPMX", "TMST": "TMST", "MST": "MST", "WEZ": "WEZ", "AKDT": "AKDT", "HAT": "HAT", "HKST": "HKST", "CLST": "CLST", "GMT": "GMT", "HNPM": "HNPM", "PST": "PST", "∅∅∅": "∅∅∅", "WITA": "WITA", "CHAST": "CHAST", "HECU": "HECU", "TMT": "TMT", "VET": "VET", "WAST": "WAST", "GFT": "GFT", "ECT": "ECT", "WIB": "WIB", "ART": "ART", "HEEG": "HEEG", "AWDT": "AWDT", "NZDT": "NZDT", "HENOMX": "HENOMX", "COST": "COST", "HKT": "HKT", "ADT": "ADT", "CHADT": "CHADT", "ACWST": "ACWST", "ACWDT": "ACWDT", "WART": "WART", "AWST": "AWST", "HNPMX": "HNPMX", "HEOG": "HEOG"},
+ }
+ }
+ 
+@@ -143,7 +126,7 @@ func (bn *bn_BD) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (bn *bn_BD) MonthsAbbreviated() []string {
+- return bn.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -153,7 +136,7 @@ func (bn *bn_BD) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (bn *bn_BD) MonthsNarrow() []string {
+- return bn.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -163,7 +146,7 @@ func (bn *bn_BD) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (bn *bn_BD) MonthsWide() []string {
+- return bn.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -209,82 +192,13 @@ func (bn *bn_BD) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'bn_BD' and handles both Whole and Real numbers based on 'v'
+ func (bn *bn_BD) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, bn.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'bn_BD' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (bn *bn_BD) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bn.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, bn.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'bn_BD'
+@@ -292,63 +206,7 @@ func (bn *bn_BD) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bn.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, bn.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'bn_BD'
+@@ -357,70 +215,7 @@ func (bn *bn_BD) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bn.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, bn.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, bn.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'bn_BD'
+@@ -428,17 +223,6 @@ func (bn *bn_BD) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -447,17 +231,6 @@ func (bn *bn_BD) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bn.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -466,17 +239,6 @@ func (bn *bn_BD) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bn.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -485,19 +247,6 @@ func (bn *bn_BD) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, bn.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bn.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -506,28 +255,6 @@ func (bn *bn_BD) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bn.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bn.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -536,35 +263,6 @@ func (bn *bn_BD) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bn.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bn.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -573,40 +271,6 @@ func (bn *bn_BD) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bn.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bn.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -615,44 +279,5 @@ func (bn *bn_BD) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bn.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bn.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := bn.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/bn_IN/bn_IN.go b/bn_IN/bn_IN.go
+index 8c69d60..acc1f5c 100644
+--- a/bn_IN/bn_IN.go
++++ b/bn_IN/bn_IN.go
+@@ -42,30 +42,13 @@ type bn_IN struct {
+ // New returns a new instance of translator for the 'bn_IN' locale
+ func New() locales.Translator {
+ return &bn_IN{
+- locale: "bn_IN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 5, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "জানু", "ফেব", "মার্চ", "এপ্রিল", "মে", "জুন", "জুলাই", "আগস্ট", "সেপ্টেম্বর", "অক্টোবর", "নভেম্বর", "ডিসেম্বর"},
+- monthsNarrow: []string{"", "জা", "ফে", "মা", "এ", "মে", "জুন", "জু", "আ", "সে", "অ", "ন", "ডি"},
+- monthsWide: []string{"", "জানুয়ারী", "ফেব্রুয়ারী", "মার্চ", "এপ্রিল", "মে", "জুন", "জুলাই", "আগস্ট", "সেপ্টেম্বর", "অক্টোবর", "নভেম্বর", "ডিসেম্বর"},
+- daysAbbreviated: []string{"রবি", "সোম", "মঙ্গল", "বুধ", "বৃহস্পতি", "শুক্র", "শনি"},
+- daysNarrow: []string{"র", "সো", "ম", "বু", "বৃ", "শু", "শ"},
+- daysShort: []string{"রঃ", "সোঃ", "মঃ", "বুঃ", "বৃঃ", "শুঃ", "শোঃ"},
+- daysWide: []string{"রবিবার", "সোমবার", "মঙ্গলবার", "বুধবার", "বৃহস্পতিবার", "শুক্রবার", "শনিবার"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"খ্রিস্টপূর্ব", "খৃষ্টাব্দ"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"খ্রিস্টপূর্ব", "খৃষ্টাব্দ"},
+- timezones: map[string]string{"AWDT": "অস্ট্রেলীয় পশ্চিমি দিবালোক সময়", "HKST": "হং কং গ্রীষ্মকালীন সময়", "MESZ": "মধ্য ইউরোপের গ্রীষ্মকালীন সময়", "JDT": "জাপান দিবালোক সময়", "WAST": "পশ্চিম আফ্রিকা গ্রীষ্মকালীন সময়", "SGT": "সিঙ্গাপুর মানক সময়", "ART": "আর্জেনটিনা মানক সময়", "AWST": "অস্ট্রেলীয় পশ্চিমি মানক সময়", "CST": "কেন্দ্রীয় মানক সময়", "BT": "ভুটান সময়", "GMT": "গ্রীনিচ মিন টাইম", "HNCU": "কিউবা মানক সময়", "ACWST": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি মানক সময়", "HEOG": "পশ্চিম গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "TMST": "তুর্কমেনিস্তান গ্রীষ্মকালীন সময়", "CAT": "মধ্য আফ্রিকা সময়", "AST": "অতলান্তিক মানক সময়", "VET": "ভেনেজুয়েলা সময়", "WIT": "পূর্ব ইন্দোনেশিয়া সময়", "AEDT": "অস্ট্রেলীয় পূর্ব দিবালোক সময়", "HNEG": "পূর্ব গ্রীনল্যান্ড মানক সময়", "HECU": "কিউবা দিবালোক সময়", "UYST": "উরুগুয়ে গ্রীষ্মকালীন সময়", "WITA": "কেন্দ্রীয় ইন্দোনেশিয়া সময়", "HEPM": "সেন্ট পিয়ের ও মিকেলন দিবালোক সময়", "CHAST": "চ্যাথাম মানক সময়", "WAT": "পশ্চিম আফ্রিকা মানক সময়", "COST": "কোলোম্বিয়া গ্রীষ্মকালীন সময়", "EST": "পূর্বাঞ্চলের প্রমাণ সময়", "HNT": "নিউফাউন্ডল্যান্ড মানক সময়", "HKT": "হং কং মানক সময়", "HNPM": "সেন্ট পিয়ের ও মিকেলন মানক সময়", "WART": "পশ্চিমি আর্জেনটিনার প্রমাণ সময়", "ARST": "আর্জেনটিনা গ্রীষ্মকালীন সময়", "MEZ": "মধ্য ইউরোপের মানক সময়", "CLT": "চিলি মানক সময়", "COT": "কোলোম্বিয়া মানক সময়", "AKDT": "আলাস্কা দিবালোক সময়", "WESZ": "পশ্চিম ইউরোপের গ্রীষ্মকালীন সময়", "ACWDT": "অস্ট্রেলীয় কেন্দ্রীয় পশ্চিমি দিবালোক সময়", "NZDT": "নিউজিল্যান্ড দিবালোক সময়", "HEEG": "পূর্ব গ্রীনল্যান্ড গ্রীষ্মকালীন সময়", "LHDT": "লর্ড হাওয়ে দিবালোক মসয়", "ChST": "চামেরো মানক সময়", "TMT": "তুর্কমেনিস্তান মানক সময়", "ACDT": "অস্ট্রেলীয় কেন্দ্রীয় দিবালোক সময়", "OESZ": "পূর্ব ইউরোপের গ্রীষ্মকালীন সময়", "HNOG": "পশ্চিম গ্রীনল্যান্ড মানক সময়", "AEST": "অস্ট্রেলীয় পূর্ব মানক সময়", "EDT": "পূর্বাঞ্চলের দিবালোক সময়", "MYT": "মালয়েশিয়া সময়", "NZST": "নিউজিল্যান্ড মানক সময়", "OEZ": "পূর্ব ইউরোপের মানক সময়", "HNPMX": "মেক্সিকান প্রশান্ত মহসাগরীয় মানক সময়", "CDT": "কেন্দ্রীয় দিবালোক সময়", "HADT": "হাওয়াই-আলেউত দিবালোক সময়", "CLST": "চিলি গ্রীষ্মকাল সময়", "GFT": "ফরাসি গায়ানা সময়", "UYT": "উরুগুয়ে মানক সময়", "HAST": "হাওয়াই-আলেউত মানক সময়", "SRT": "সুরিনাম সময়", "PST": "প্রশান্ত মহাসাগরীয় অঞ্চলের মানক সময়", "HAT": "নিউফাউন্ডল্যান্ড দিবালোক সময়", "HNNOMX": "উত্তরপশ্চিম মেক্সিকোর মানক সময়", "MDT": "মাকাও গ্রীষ্মকাল সময়", "GYT": "গুয়ানা সময়", "JST": "জাপান মানক সময়", "BOT": "বোলিভিয়া সময়", "LHST": "লর্ড হাওয়ে মানক মসয়", "CHADT": "চ্যাথাম দিবালোক সময়", "IST": "ভারতীয় মানক সময়", "ACST": "অস্ট্রেলীয় কেন্দ্রীয় মানক সময়", "ECT": "ইকুয়েডর সময়", "MST": "মাকাও মান সময়", "PDT": "প্রশান্ত মহাসাগরীয় অঞ্চলের দিনের সময়", "WEZ": "পশ্চিম ইউরোপের মানক সময়", "HEPMX": "মেক্সিকান প্রশান্ত মহাসাগরীয় দিবালোক সময়", "WIB": "পশ্চিমী ইন্দোনেশিয়া সময়", "∅∅∅": "অ্যামাজন গ্রীষ্মকালীন সময়", "WARST": "পশ্চিমি আর্জেনটিনা গৃষ্মকালীন সময়", "HENOMX": "উত্তরপশ্চিম মেক্সিকোর দিনের সময়", "AKST": "আলাস্কা মানক সময়", "ADT": "অতলান্তিক দিবালোক সময়", "SAST": "দক্ষিণ আফ্রিকা মানক সময়", "EAT": "পূর্ব আফ্রিকা সময়"},
++ locale: "bn_IN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 5, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"NZDT": "NZDT", "ECT": "ECT", "ChST": "ChST", "MEZ": "MEZ", "ACWST": "ACWST", "WIT": "WIT", "HAT": "HAT", "HKST": "HKST", "MST": "MST", "AWDT": "AWDT", "AEDT": "AEDT", "UYST": "UYST", "EDT": "EDT", "HEEG": "HEEG", "VET": "VET", "WAT": "WAT", "HNEG": "HNEG", "ACDT": "ACDT", "WESZ": "WESZ", "AKST": "AKST", "COST": "COST", "WIB": "WIB", "BOT": "BOT", "ACWDT": "ACWDT", "UYT": "UYT", "HECU": "HECU", "HNOG": "HNOG", "CDT": "CDT", "MDT": "MDT", "EAT": "EAT", "JDT": "JDT", "CHAST": "CHAST", "AKDT": "AKDT", "WARST": "WARST", "GYT": "GYT", "SRT": "SRT", "MESZ": "MESZ", "HNPM": "HNPM", "HEPMX": "HEPMX", "JST": "JST", "LHDT": "LHDT", "WART": "WART", "WITA": "WITA", "BT": "BT", "HNT": "HNT", "COT": "COT", "∅∅∅": "∅∅∅", "IST": "IST", "PDT": "PDT", "OEZ": "OEZ", "HEOG": "HEOG", "ACST": "ACST", "MYT": "MYT", "AWST": "AWST", "SAST": "SAST", "HKT": "HKT", "ARST": "ARST", "TMST": "TMST", "CLST": "CLST", "HAST": "HAST", "HNPMX": "HNPMX", "WEZ": "WEZ", "GFT": "GFT", "HEPM": "HEPM", "SGT": "SGT", "OESZ": "OESZ", "AST": "AST", "GMT": "GMT", "HADT": "HADT", "CLT": "CLT", "ART": "ART", "LHST": "LHST", "CHADT": "CHADT", "WAST": "WAST", "CAT": "CAT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "TMT": "TMT", "EST": "EST", "NZST": "NZST", "CST": "CST", "ADT": "ADT", "AEST": "AEST", "PST": "PST", "HNCU": "HNCU"},
+ }
+ }
+ 
+@@ -143,7 +126,7 @@ func (bn *bn_IN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (bn *bn_IN) MonthsAbbreviated() []string {
+- return bn.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -153,7 +136,7 @@ func (bn *bn_IN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (bn *bn_IN) MonthsNarrow() []string {
+- return bn.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -163,7 +146,7 @@ func (bn *bn_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (bn *bn_IN) MonthsWide() []string {
+- return bn.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -209,82 +192,13 @@ func (bn *bn_IN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'bn_IN' and handles both Whole and Real numbers based on 'v'
+ func (bn *bn_IN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, bn.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'bn_IN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (bn *bn_IN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bn.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, bn.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'bn_IN'
+@@ -292,63 +206,7 @@ func (bn *bn_IN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bn.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, bn.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'bn_IN'
+@@ -357,70 +215,7 @@ func (bn *bn_IN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bn.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, bn.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, bn.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'bn_IN'
+@@ -428,17 +223,6 @@ func (bn *bn_IN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -447,17 +231,6 @@ func (bn *bn_IN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bn.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -466,17 +239,6 @@ func (bn *bn_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bn.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -485,19 +247,6 @@ func (bn *bn_IN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, bn.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, bn.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -506,28 +255,6 @@ func (bn *bn_IN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bn.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bn.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -536,35 +263,6 @@ func (bn *bn_IN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bn.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bn.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -573,40 +271,6 @@ func (bn *bn_IN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bn.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bn.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -615,44 +279,5 @@ func (bn *bn_IN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bn.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bn.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := bn.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/bo/bo.go b/bo/bo.go
+index 4d84656..9519dd5 100644
+--- a/bo/bo.go
++++ b/bo/bo.go
+@@ -64,7 +64,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"སྤྱི་ལོ་སྔོན་", "སྤྱི་ལོ་"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"WESZ": "WESZ", "MESZ": "MESZ", "CLT": "CLT", "GFT": "GFT", "IST": "IST", "JDT": "JDT", "TMST": "TMST", "HEPMX": "HEPMX", "WIB": "WIB", "ARST": "ARST", "PDT": "PDT", "MEZ": "MEZ", "ADT": "ADT", "AEST": "AEST", "LHST": "LHST", "CLST": "CLST", "TMT": "TMT", "GMT": "GMT", "HNT": "HNT", "WEZ": "WEZ", "HNPM": "HNPM", "NZST": "NZST", "WARST": "WARST", "WIT": "WIT", "ACWDT": "ACWDT", "OEZ": "OEZ", "OESZ": "OESZ", "ACST": "ACST", "HNNOMX": "HNNOMX", "COST": "COST", "HNCU": "HNCU", "HEOG": "HEOG", "JST": "JST", "EST": "EST", "AST": "AST", "WAT": "WAT", "MST": "MST", "AKST": "AKST", "CDT": "CDT", "UYT": "UYT", "ACDT": "ACDT", "HENOMX": "HENOMX", "VET": "VET", "HEEG": "HEEG", "NZDT": "NZDT", "LHDT": "LHDT", "ECT": "ECT", "AKDT": "AKDT", "HADT": "HADT", "ART": "ART", "HNOG": "HNOG", "AEDT": "AEDT", "MYT": "MYT", "UYST": "UYST", "HAST": "HAST", "CHAST": "CHAST", "BOT": "BOT", "∅∅∅": "∅∅∅", "EDT": "EDT", "AWST": "AWST", "ChST": "ChST", "CHADT": "CHADT", "COT": "COT", "HECU": "HECU", "MDT": "MDT", "GYT": "GYT", "HKT": "HKT", "WAST": "WAST", "BT": "BT", "ACWST": "ACWST", "HKST": "HKST", "HEPM": "HEPM", "SAST": "SAST", "AWDT": "AWDT", "CAT": "CAT", "WART": "WART", "SRT": "SRT", "HAT": "HAT", "PST": "PST", "WITA": "WITA", "SGT": "SGT", "HNPMX": "HNPMX", "CST": "CST", "HNEG": "HNEG", "EAT": "EAT"},
++ timezones: map[string]string{"AEDT": "AEDT", "CHAST": "CHAST", "HEPMX": "HEPMX", "OESZ": "OESZ", "NZDT": "NZDT", "MESZ": "MESZ", "MYT": "MYT", "WEZ": "WEZ", "VET": "VET", "WIT": "WIT", "HKT": "HKT", "ART": "ART", "BOT": "BOT", "WITA": "WITA", "JDT": "JDT", "WESZ": "WESZ", "CDT": "CDT", "HAST": "HAST", "HNPM": "HNPM", "UYST": "UYST", "ACWDT": "ACWDT", "EDT": "EDT", "HNEG": "HNEG", "HEPM": "HEPM", "CLST": "CLST", "GMT": "GMT", "SGT": "SGT", "AKST": "AKST", "GFT": "GFT", "HNT": "HNT", "COST": "COST", "HKST": "HKST", "ARST": "ARST", "AWST": "AWST", "LHDT": "LHDT", "HECU": "HECU", "HAT": "HAT", "MDT": "MDT", "ACWST": "ACWST", "SAST": "SAST", "GYT": "GYT", "AST": "AST", "ACST": "ACST", "HEOG": "HEOG", "HADT": "HADT", "WARST": "WARST", "EST": "EST", "CLT": "CLT", "WIB": "WIB", "NZST": "NZST", "ECT": "ECT", "IST": "IST", "HNCU": "HNCU", "MST": "MST", "ADT": "ADT", "ACDT": "ACDT", "PDT": "PDT", "BT": "BT", "WAST": "WAST", "COT": "COT", "TMT": "TMT", "CST": "CST", "AEST": "AEST", "PST": "PST", "WAT": "WAT", "WART": "WART", "EAT": "EAT", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "TMST": "TMST", "HNPMX": "HNPMX", "CAT": "CAT", "ChST": "ChST", "MEZ": "MEZ", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "CHADT": "CHADT", "UYT": "UYT", "OEZ": "OEZ", "HNOG": "HNOG", "SRT": "SRT", "HEEG": "HEEG", "JST": "JST", "LHST": "LHST"},
+ }
+ }
+ 
+diff --git a/bo_CN/bo_CN.go b/bo_CN/bo_CN.go
+index fd35971..c86c1fa 100644
+--- a/bo_CN/bo_CN.go
++++ b/bo_CN/bo_CN.go
+@@ -10,61 +10,45 @@ import (
+ )
+ 
+ type bo_CN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'bo_CN' locale
+ func New() locales.Translator {
+ return &bo_CN{
+- locale: "bo_CN",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "ཟླ་༡", "ཟླ་༢", "ཟླ་༣", "ཟླ་༤", "ཟླ་༥", "ཟླ་༦", "ཟླ་༧", "ཟླ་༨", "ཟླ་༩", "ཟླ་༡༠", "ཟླ་༡༡", "ཟླ་༡༢"},
+- monthsWide: []string{"", "ཟླ་བ་དང་པོ", "ཟླ་བ་གཉིས་པ", "ཟླ་བ་གསུམ་པ", "ཟླ་བ་བཞི་པ", "ཟླ་བ་ལྔ་པ", "ཟླ་བ་དྲུག་པ", "ཟླ་བ་བདུན་པ", "ཟླ་བ་བརྒྱད་པ", "ཟླ་བ་དགུ་པ", "ཟླ་བ་བཅུ་པ", "ཟླ་བ་བཅུ་གཅིག་པ", "ཟླ་བ་བཅུ་གཉིས་པ"},
+- daysAbbreviated: []string{"ཉི་མ་", "ཟླ་བ་", "མིག་དམར་", "ལྷག་པ་", "ཕུར་བུ་", "པ་སངས་", "སྤེན་པ་"},
+- daysNarrow: []string{"ཉི", "ཟླ", "མིག", "ལྷག", "ཕུར", "སངས", "སྤེན"},
+- daysWide: []string{"གཟའ་ཉི་མ་", "གཟའ་ཟླ་བ་", "གཟའ་མིག་དམར་", "གཟའ་ལྷག་པ་", "གཟའ་ཕུར་བུ་", "གཟའ་པ་སངས་", "གཟའ་སྤེན་པ་"},
+- periodsAbbreviated: []string{"སྔ་དྲོ་", "ཕྱི་དྲོ་"},
+- periodsWide: []string{"སྔ་དྲོ་", "ཕྱི་དྲོ་"},
+- erasAbbreviated: []string{"སྤྱི་ལོ་སྔོན་", "སྤྱི་ལོ་"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"MYT": "MYT", "VET": "VET", "SRT": "SRT", "HKST": "HKST", "CAT": "CAT", "HAST": "HAST", "HEPM": "HEPM", "CLT": "CLT", "ACDT": "ACDT", "OESZ": "OESZ", "GYT": "GYT", "UYST": "UYST", "ARST": "ARST", "AEST": "AEST", "TMST": "TMST", "ChST": "ChST", "WART": "WART", "HEOG": "HEOG", "NZST": "NZST", "MESZ": "MESZ", "COST": "COST", "HECU": "HECU", "NZDT": "NZDT", "CHADT": "CHADT", "AKST": "AKST", "HNCU": "HNCU", "ADT": "ADT", "UYT": "UYT", "HKT": "HKT", "BOT": "BOT", "ECT": "ECT", "JDT": "JDT", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "HADT": "HADT", "ACWDT": "ACWDT", "SAST": "SAST", "CHAST": "CHAST", "GFT": "GFT", "SGT": "SGT", "HAT": "HAT", "PST": "PST", "HNPM": "HNPM", "GMT": "GMT", "BT": "BT", "CLST": "CLST", "COT": "COT", "WAST": "WAST", "EAT": "EAT", "MST": "MST", "ACWST": "ACWST", "HNEG": "HNEG", "WAT": "WAT", "WIT": "WIT", "EST": "EST", "CDT": "CDT", "ACST": "ACST", "CST": "CST", "HNT": "HNT", "PDT": "PDT", "WESZ": "WESZ", "JST": "JST", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "EDT": "EDT", "MDT": "MDT", "ART": "ART", "AWST": "AWST", "IST": "IST", "AST": "AST", "MEZ": "MEZ", "LHST": "LHST", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "TMT": "TMT", "HNOG": "HNOG", "WITA": "WITA", "AEDT": "AEDT", "OEZ": "OEZ", "WARST": "WARST", "HNPMX": "HNPMX", "WIB": "WIB", "WEZ": "WEZ", "AWDT": "AWDT", "HEEG": "HEEG"},
++ locale: "bo_CN",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SRT": "SRT", "HNNOMX": "HNNOMX", "OEZ": "OEZ", "AEST": "AEST", "ACWST": "ACWST", "HNPMX": "HNPMX", "WEZ": "WEZ", "HAT": "HAT", "WARST": "WARST", "MESZ": "MESZ", "ACST": "ACST", "LHST": "LHST", "UYST": "UYST", "IST": "IST", "COST": "COST", "WITA": "WITA", "ACWDT": "ACWDT", "WAT": "WAT", "AKST": "AKST", "GFT": "GFT", "CAT": "CAT", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "VET": "VET", "OESZ": "OESZ", "HNT": "HNT", "GMT": "GMT", "JST": "JST", "HNPM": "HNPM", "CHADT": "CHADT", "HEPM": "HEPM", "PDT": "PDT", "HECU": "HECU", "GYT": "GYT", "EDT": "EDT", "CST": "CST", "MEZ": "MEZ", "HEEG": "HEEG", "UYT": "UYT", "SGT": "SGT", "WAST": "WAST", "TMST": "TMST", "CDT": "CDT", "MST": "MST", "EAT": "EAT", "JDT": "JDT", "COT": "COT", "TMT": "TMT", "CLST": "CLST", "ART": "ART", "ARST": "ARST", "AEDT": "AEDT", "HEOG": "HEOG", "ECT": "ECT", "HNEG": "HNEG", "HEPMX": "HEPMX", "HNOG": "HNOG", "AWDT": "AWDT", "LHDT": "LHDT", "MYT": "MYT", "AKDT": "AKDT", "WART": "WART", "NZST": "NZST", "HAST": "HAST", "CHAST": "CHAST", "WIT": "WIT", "MDT": "MDT", "BOT": "BOT", "HADT": "HADT", "EST": "EST", "NZDT": "NZDT", "ChST": "ChST", "ACDT": "ACDT", "PST": "PST", "BT": "BT", "HKT": "HKT", "WIB": "WIB", "AST": "AST", "ADT": "ADT", "AWST": "AWST", "HNCU": "HNCU", "SAST": "SAST", "HKST": "HKST", "CLT": "CLT"},
+ }
+ }
+ 
+@@ -110,7 +94,7 @@ func (bo *bo_CN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (bo *bo_CN) MonthsAbbreviated() []string {
+- return bo.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -130,7 +114,7 @@ func (bo *bo_CN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (bo *bo_CN) MonthsWide() []string {
+- return bo.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -176,73 +160,13 @@ func (bo *bo_CN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'bo_CN' and handles both Whole and Real numbers based on 'v'
+ func (bo *bo_CN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'bo_CN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (bo *bo_CN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bo.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, bo.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'bo_CN'
+@@ -250,60 +174,7 @@ func (bo *bo_CN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bo.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(bo.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, bo.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, bo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'bo_CN'
+@@ -312,72 +183,7 @@ func (bo *bo_CN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bo.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(bo.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, bo.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, bo.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(bo.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, bo.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'bo_CN'
+@@ -385,28 +191,6 @@ func (bo *bo_CN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -415,17 +199,6 @@ func (bo *bo_CN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xe0, 0xbd, 0xa3, 0xe0, 0xbd, 0xbc, 0xe0, 0xbd, 0xa0, 0xe0, 0xbd, 0xb2, 0xe0, 0xbc, 0x8b}...)
+- b = append(b, bo.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0xe0, 0xbd, 0x9a, 0xe0, 0xbd, 0xba, 0xe0, 0xbd, 0xa6, 0xe0, 0xbc, 0x8b}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -434,19 +207,6 @@ func (bo *bo_CN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0xe0, 0xbd, 0xa6, 0xe0, 0xbe, 0xa4, 0xe0, 0xbe, 0xb1, 0xe0, 0xbd, 0xb2, 0xe0, 0xbc, 0x8b, 0xe0, 0xbd, 0xa3, 0xe0, 0xbd, 0xbc, 0xe0, 0xbc, 0x8b}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, bo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xe0, 0xbd, 0xa0, 0xe0, 0xbd, 0xb2, 0xe0, 0xbc, 0x8b, 0xe0, 0xbd, 0x9a, 0xe0, 0xbd, 0xba, 0xe0, 0xbd, 0xa6, 0xe0, 0xbc, 0x8b}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -455,19 +215,6 @@ func (bo *bo_CN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, bo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xe0, 0xbd, 0xa0, 0xe0, 0xbd, 0xb2, 0xe0, 0xbc, 0x8b, 0xe0, 0xbd, 0x9a, 0xe0, 0xbd, 0xba, 0xe0, 0xbd, 0xa6, 0xe0, 0xbc, 0x8b}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, bo.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -476,28 +223,6 @@ func (bo *bo_CN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bo.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bo.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -506,35 +231,6 @@ func (bo *bo_CN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bo.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bo.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -543,40 +239,6 @@ func (bo *bo_CN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bo.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bo.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -585,44 +247,5 @@ func (bo *bo_CN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bo.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bo.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := bo.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/bo_IN/bo_IN.go b/bo_IN/bo_IN.go
+index a8fb1b4..e7d1202 100644
+--- a/bo_IN/bo_IN.go
++++ b/bo_IN/bo_IN.go
+@@ -10,61 +10,45 @@ import (
+ )
+ 
+ type bo_IN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'bo_IN' locale
+ func New() locales.Translator {
+ return &bo_IN{
+- locale: "bo_IN",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CN¥", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "ཟླ་༡", "ཟླ་༢", "ཟླ་༣", "ཟླ་༤", "ཟླ་༥", "ཟླ་༦", "ཟླ་༧", "ཟླ་༨", "ཟླ་༩", "ཟླ་༡༠", "ཟླ་༡༡", "ཟླ་༡༢"},
+- monthsWide: []string{"", "ཟླ་བ་དང་པོ", "ཟླ་བ་གཉིས་པ", "ཟླ་བ་གསུམ་པ", "ཟླ་བ་བཞི་པ", "ཟླ་བ་ལྔ་པ", "ཟླ་བ་དྲུག་པ", "ཟླ་བ་བདུན་པ", "ཟླ་བ་བརྒྱད་པ", "ཟླ་བ་དགུ་པ", "ཟླ་བ་བཅུ་པ", "ཟླ་བ་བཅུ་གཅིག་པ", "ཟླ་བ་བཅུ་གཉིས་པ"},
+- daysAbbreviated: []string{"ཉི་མ་", "ཟླ་བ་", "མིག་དམར་", "ལྷག་པ་", "ཕུར་བུ་", "པ་སངས་", "སྤེན་པ་"},
+- daysNarrow: []string{"ཉི", "ཟླ", "མིག", "ལྷག", "ཕུར", "སངས", "སྤེན"},
+- daysWide: []string{"གཟའ་ཉི་མ་", "གཟའ་ཟླ་བ་", "གཟའ་མིག་དམར་", "གཟའ་ལྷག་པ་", "གཟའ་ཕུར་བུ་", "གཟའ་པ་སངས་", "གཟའ་སྤེན་པ་"},
+- periodsAbbreviated: []string{"སྔ་དྲོ་", "ཕྱི་དྲོ་"},
+- periodsWide: []string{"སྔ་དྲོ་", "ཕྱི་དྲོ་"},
+- erasAbbreviated: []string{"སྤྱི་ལོ་སྔོན་", "སྤྱི་ལོ་"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"HEOG": "HEOG", "AWST": "AWST", "NZST": "NZST", "ACDT": "ACDT", "MST": "MST", "ADT": "ADT", "GYT": "GYT", "HADT": "HADT", "VET": "VET", "HNT": "HNT", "WESZ": "WESZ", "HEPM": "HEPM", "HENOMX": "HENOMX", "EDT": "EDT", "WIB": "WIB", "PDT": "PDT", "AEST": "AEST", "AWDT": "AWDT", "CLST": "CLST", "CAT": "CAT", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "HAT": "HAT", "LHST": "LHST", "LHDT": "LHDT", "OESZ": "OESZ", "GMT": "GMT", "BT": "BT", "HKST": "HKST", "ECT": "ECT", "HNEG": "HNEG", "HNCU": "HNCU", "WITA": "WITA", "CHAST": "CHAST", "EAT": "EAT", "COST": "COST", "CST": "CST", "TMT": "TMT", "EST": "EST", "ART": "ART", "MESZ": "MESZ", "GFT": "GFT", "ChST": "ChST", "WARST": "WARST", "COT": "COT", "HNPMX": "HNPMX", "WAST": "WAST", "ACWST": "ACWST", "HECU": "HECU", "UYST": "UYST", "HAST": "HAST", "SAST": "SAST", "JDT": "JDT", "MDT": "MDT", "AST": "AST", "NZDT": "NZDT", "HNPM": "HNPM", "IST": "IST", "CLT": "CLT", "HEEG": "HEEG", "ACST": "ACST", "∅∅∅": "∅∅∅", "SRT": "SRT", "HNOG": "HNOG", "CHADT": "CHADT", "OEZ": "OEZ", "AKST": "AKST", "WEZ": "WEZ", "AEDT": "AEDT", "TMST": "TMST", "MYT": "MYT", "WIT": "WIT", "JST": "JST", "HKT": "HKT", "MEZ": "MEZ", "BOT": "BOT", "WAT": "WAT", "WART": "WART", "SGT": "SGT", "ARST": "ARST", "CDT": "CDT", "ACWDT": "ACWDT", "PST": "PST", "AKDT": "AKDT", "UYT": "UYT"},
++ locale: "bo_IN",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CN¥", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"OEZ": "OEZ", "PST": "PST", "HECU": "HECU", "ADT": "ADT", "GMT": "GMT", "ACDT": "ACDT", "LHST": "LHST", "JDT": "JDT", "ACWDT": "ACWDT", "GYT": "GYT", "ECT": "ECT", "WIT": "WIT", "PDT": "PDT", "AEDT": "AEDT", "HNCU": "HNCU", "WARST": "WARST", "MEZ": "MEZ", "UYT": "UYT", "ChST": "ChST", "WEZ": "WEZ", "COST": "COST", "HKT": "HKT", "EST": "EST", "NZST": "NZST", "WIB": "WIB", "MYT": "MYT", "GFT": "GFT", "SAST": "SAST", "∅∅∅": "∅∅∅", "BOT": "BOT", "SRT": "SRT", "ACWST": "ACWST", "AEST": "AEST", "VET": "VET", "HEEG": "HEEG", "HEPM": "HEPM", "HNPM": "HNPM", "SGT": "SGT", "AKST": "AKST", "ACST": "ACST", "AWDT": "AWDT", "MDT": "MDT", "EAT": "EAT", "HNPMX": "HNPMX", "COT": "COT", "WITA": "WITA", "JST": "JST", "CHADT": "CHADT", "HEPMX": "HEPMX", "OESZ": "OESZ", "HNT": "HNT", "CAT": "CAT", "MESZ": "MESZ", "AWST": "AWST", "CST": "CST", "CDT": "CDT", "NZDT": "NZDT", "ARST": "ARST", "WART": "WART", "HNOG": "HNOG", "CLT": "CLT", "HAST": "HAST", "HENOMX": "HENOMX", "WESZ": "WESZ", "HKST": "HKST", "MST": "MST", "HNEG": "HNEG", "IST": "IST", "WAT": "WAT", "AKDT": "AKDT", "HAT": "HAT", "HEOG": "HEOG", "HADT": "HADT", "TMST": "TMST", "CLST": "CLST", "AST": "AST", "ART": "ART", "LHDT": "LHDT", "UYST": "UYST", "EDT": "EDT", "TMT": "TMT", "BT": "BT", "WAST": "WAST", "HNNOMX": "HNNOMX", "CHAST": "CHAST"},
+ }
+ }
+ 
+@@ -110,7 +94,7 @@ func (bo *bo_IN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (bo *bo_IN) MonthsAbbreviated() []string {
+- return bo.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -130,7 +114,7 @@ func (bo *bo_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (bo *bo_IN) MonthsWide() []string {
+- return bo.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -176,73 +160,13 @@ func (bo *bo_IN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'bo_IN' and handles both Whole and Real numbers based on 'v'
+ func (bo *bo_IN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'bo_IN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (bo *bo_IN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bo.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, bo.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'bo_IN'
+@@ -250,60 +174,7 @@ func (bo *bo_IN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bo.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(bo.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, bo.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, bo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'bo_IN'
+@@ -312,72 +183,7 @@ func (bo *bo_IN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bo.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(bo.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, bo.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, bo.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(bo.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, bo.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'bo_IN'
+@@ -385,28 +191,6 @@ func (bo *bo_IN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -415,17 +199,6 @@ func (bo *bo_IN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xe0, 0xbd, 0xa3, 0xe0, 0xbd, 0xbc, 0xe0, 0xbd, 0xa0, 0xe0, 0xbd, 0xb2, 0xe0, 0xbc, 0x8b}...)
+- b = append(b, bo.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0xe0, 0xbd, 0x9a, 0xe0, 0xbd, 0xba, 0xe0, 0xbd, 0xa6, 0xe0, 0xbc, 0x8b}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -434,19 +207,6 @@ func (bo *bo_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0xe0, 0xbd, 0xa6, 0xe0, 0xbe, 0xa4, 0xe0, 0xbe, 0xb1, 0xe0, 0xbd, 0xb2, 0xe0, 0xbc, 0x8b, 0xe0, 0xbd, 0xa3, 0xe0, 0xbd, 0xbc, 0xe0, 0xbc, 0x8b}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, bo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xe0, 0xbd, 0xa0, 0xe0, 0xbd, 0xb2, 0xe0, 0xbc, 0x8b, 0xe0, 0xbd, 0x9a, 0xe0, 0xbd, 0xba, 0xe0, 0xbd, 0xa6, 0xe0, 0xbc, 0x8b}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -455,19 +215,6 @@ func (bo *bo_IN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, bo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xe0, 0xbd, 0xa0, 0xe0, 0xbd, 0xb2, 0xe0, 0xbc, 0x8b, 0xe0, 0xbd, 0x9a, 0xe0, 0xbd, 0xba, 0xe0, 0xbd, 0xa6, 0xe0, 0xbc, 0x8b}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, bo.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -476,28 +223,6 @@ func (bo *bo_IN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bo.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bo.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -506,35 +231,6 @@ func (bo *bo_IN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bo.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bo.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -543,40 +239,6 @@ func (bo *bo_IN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bo.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bo.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -585,44 +247,5 @@ func (bo *bo_IN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, bo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, bo.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, bo.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := bo.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/br/br.go b/br/br.go
+index 53f9a68..b14012d 100644
+--- a/br/br.go
++++ b/br/br.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"a-raok J.K.", "goude J.K."},
+ erasNarrow: []string{"a-raok J.K.", "goude J.K."},
+ erasWide: []string{"a-raok Jezuz-Krist", "goude Jezuz-Krist"},
+- timezones: map[string]string{"JST": "eur cʼhoañv Japan", "WAT": "eur cʼhoañv Afrika ar Cʼhornôg", "HECU": "eur hañv Kuba", "EST": "eur cʼhoañv ar Reter", "CDT": "CDT", "WIT": "eur Indonezia ar Reter", "MEZ": "eur cʼhoañv Kreizeuropa", "CHADT": "eur hañv Chatham", "HNEG": "eur cʼhoañv Greunland ar Reter", "HEEG": "eur hañv Greunland ar Reter", "GFT": "eur Gwiana cʼhall", "ACST": "eur cʼhoañv Kreizaostralia", "ART": "eur cʼhoañv Arcʼhantina", "WITA": "WITA", "CHAST": "eur cʼhoañv Chatham", "IST": "eur cʼhoañv India", "CLST": "eur hañv Chile", "CAT": "eur Kreizafrika", "HNCU": "eur cʼhoañv Kuba", "ACWDT": "eur hañv Kreizaostralia ar Cʼhornôg", "AWST": "eur cʼhoañv Aostralia ar Cʼhornôg", "NZST": "eur cʼhoañv Zeland-Nevez", "TMT": "eur cʼhoañv Turkmenistan", "WART": "eur cʼhoañv Arcʼhantina ar Cʼhornôg", "CST": "CST", "SAST": "eur cʼhoañv Suafrika", "ECT": "eur Ecuador", "AEDT": "eur hañv Aostralia ar Reter", "MESZ": "eur hañv Kreizeuropa", "LHDT": "LHDT", "AWDT": "eur hañv Aostralia ar Cʼhornôg", "HNPM": "eur cʼhoañv Sant-Pêr-ha-Mikelon", "WIB": "eur Indonezia ar Cʼhornôg", "PST": "PST", "PDT": "PDT", "COT": "eur cʼhoañv Kolombia", "HADT": "HADT", "∅∅∅": "eur hañv an Amazon", "WARST": "eur hañv Arcʼhantina ar Cʼhornôg", "TMST": "eur hañv Turkmenistan", "COST": "eur hañv Kolombia", "EDT": "eur hañv ar Reter", "MYT": "eur Malaysia", "UYST": "eur hañv Uruguay", "ADT": "ADT", "ACWST": "eur cʼhoañv Kreizaostralia ar Cʼhornôg", "ARST": "eur hañv Arcʼhantina", "EAT": "eur Afrika ar Reter", "OESZ": "eur hañv Europa ar Reter", "HNPMX": "HNPMX", "AKDT": "eur hañv Alaska", "WEZ": "eur cʼhoañv Europa ar Cʼhornôg", "CLT": "eur cʼhoañv Chile", "ChST": "ChST", "JDT": "eur hañv Japan", "HEPMX": "HEPMX", "UYT": "eur cʼhoañv Uruguay", "HNNOMX": "eur cʼhoañv Gwalarn Mecʼhiko", "HENOMX": "eur hañv Gwalarn Mecʼhiko", "BT": "eur Bhoutan", "ACDT": "eur hañv Kreizaostralia", "WAST": "eur hañv Afrika ar Cʼhornôg", "GYT": "eur Guyana", "AKST": "eur cʼhoañv Alaska", "AEST": "eur cʼhoañv Aostralia ar Reter", "BOT": "eur Bolivia", "SGT": "eur cʼhoañv Singapour", "AST": "AST", "HAT": "eur hañv Newfoundland", "HKT": "eur cʼhoañv Hong Kong", "HEPM": "eur hañv Sant-Pêr-ha-Mikelon", "HNOG": "eur cʼhoañv Greunland ar Cʼhornôg", "HEOG": "eur hañv Greunland ar Cʼhornôg", "HNT": "eur cʼhoañv Newfoundland", "NZDT": "eur hañv Zeland-Nevez", "MST": "eur cʼhoañv ar Menezioù", "HAST": "HAST", "VET": "eur Venezuela", "HKST": "eur hañv Hong Kong", "LHST": "LHST", "OEZ": "eur cʼhoañv Europa ar Reter", "GMT": "Amzer keitat Greenwich (AKG)", "MDT": "eur hañv ar Menezioù", "SRT": "eur Surinam", "WESZ": "eur hañv Europa ar Cʼhornôg"},
++ timezones: map[string]string{"BOT": "eur Bolivia", "HEEG": "eur hañv Greunland ar Reter", "VET": "eur Venezuela", "MESZ": "eur hañv Kreizeuropa", "ACWDT": "eur hañv Kreizaostralia ar Cʼhornôg", "HNT": "eur cʼhoañv Newfoundland", "HEOG": "eur hañv Greunland ar Cʼhornôg", "HKT": "eur cʼhoañv Hong Kong", "NZDT": "eur hañv Zeland-Nevez", "IST": "eur cʼhoañv India", "ACWST": "eur cʼhoañv Kreizaostralia ar Cʼhornôg", "CHAST": "eur cʼhoañv Chatham", "UYST": "eur hañv Uruguay", "BT": "eur Bhoutan", "CLST": "eur hañv Chile", "ART": "eur cʼhoañv Arcʼhantina", "ACST": "eur cʼhoañv Kreizaostralia", "HEPM": "eur hañv Sant-Pêr-ha-Mikelon", "AWDT": "eur hañv Aostralia ar Cʼhornôg", "WARST": "eur hañv Arcʼhantina ar Cʼhornôg", "COST": "eur hañv Kolombia", "CDT": "CDT", "AST": "AST", "HNEG": "eur cʼhoañv Greunland ar Reter", "CHADT": "eur hañv Chatham", "PDT": "PDT", "WESZ": "eur hañv Europa ar Cʼhornôg", "EDT": "eur hañv ar Reter", "CST": "CST", "MDT": "eur hañv Macau", "ARST": "eur hañv Arcʼhantina", "MEZ": "eur cʼhoañv Kreizeuropa", "LHDT": "LHDT", "HAT": "eur hañv Newfoundland", "WIT": "eur Indonezia ar Reter", "GYT": "eur Guyana", "CAT": "eur Kreizafrika", "HENOMX": "eur hañv Gwalarn Mecʼhiko", "MYT": "eur Malaysia", "AEDT": "eur hañv Aostralia ar Reter", "AKST": "eur cʼhoañv Alaska", "GFT": "eur Gwiana cʼhall", "HKST": "eur hañv Hong Kong", "HAST": "HAST", "∅∅∅": "eur hañv an Amazon", "HECU": "eur hañv Kuba", "AWST": "eur cʼhoañv Aostralia ar Cʼhornôg", "AKDT": "eur hañv Alaska", "OEZ": "eur cʼhoañv Europa ar Reter", "ECT": "eur Ecuador", "ChST": "ChST", "EST": "eur cʼhoañv ar Reter", "CLT": "eur cʼhoañv Chile", "EAT": "eur Afrika ar Reter", "HNNOMX": "eur cʼhoañv Gwalarn Mecʼhiko", "HNPM": "eur cʼhoañv Sant-Pêr-ha-Mikelon", "JDT": "eur hañv Japan", "WAT": "eur cʼhoañv Afrika ar Cʼhornôg", "HNOG": "eur cʼhoañv Greunland ar Cʼhornôg", "WITA": "WITA", "SRT": "eur Surinam", "SGT": "eur cʼhoañv Singapour", "SAST": "eur cʼhoañv Suafrika", "WIB": "eur Indonezia ar Cʼhornôg", "GMT": "Amzer keitat Greenwich (AKG)", "ACDT": "eur hañv Kreizaostralia", "AEST": "eur cʼhoañv Aostralia ar Reter", "HEPMX": "HEPMX", "WART": "eur cʼhoañv Arcʼhantina ar Cʼhornôg", "MST": "eur cʼhoañv Macau", "HADT": "HADT", "UYT": "eur cʼhoañv Uruguay", "WAST": "eur hañv Afrika ar Cʼhornôg", "ADT": "ADT", "LHST": "LHST", "WEZ": "eur cʼhoañv Europa ar Cʼhornôg", "NZST": "eur cʼhoañv Zeland-Nevez", "JST": "eur cʼhoañv Japan", "PST": "PST", "HNCU": "eur cʼhoañv Kuba", "OESZ": "eur hañv Europa ar Reter", "COT": "eur cʼhoañv Kolombia", "TMT": "eur cʼhoañv Turkmenistan", "TMST": "eur hañv Turkmenistan", "HNPMX": "HNPMX"},
+ }
+ }
+ 
+@@ -101,9 +101,9 @@ func (br *br) PluralsRange() []locales.PluralRule {
+ func (br *br) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
++ nMod1000000 := math.Mod(n, 1000000)
+ nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
+- nMod1000000 := math.Mod(n, 1000000)
+ 
+ if nMod10 == 1 && (nMod100 != 11 && nMod100 != 71 && nMod100 != 91) {
+ return locales.PluralRuleOne
+diff --git a/br_FR/br_FR.go b/br_FR/br_FR.go
+index be061fe..4385f11 100644
+--- a/br_FR/br_FR.go
++++ b/br_FR/br_FR.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type br_FR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'br_FR' locale
+ func New() locales.Translator {
+ return &br_FR{
+- locale: "br_FR",
+- pluralsCardinal: []locales.PluralRule{2, 3, 4, 5, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Gen.", "Cʼhwe.", "Meur.", "Ebr.", "Mae", "Mezh.", "Goue.", "Eost", "Gwen.", "Here", "Du", "Kzu."},
+- monthsNarrow: []string{"", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"},
+- monthsWide: []string{"", "Genver", "Cʼhwevrer", "Meurzh", "Ebrel", "Mae", "Mezheven", "Gouere", "Eost", "Gwengolo", "Here", "Du", "Kerzu"},
+- daysAbbreviated: []string{"Sul", "Lun", "Meu.", "Mer.", "Yaou", "Gwe.", "Sad."},
+- daysNarrow: []string{"Su", "L", "Mz", "Mc", "Y", "G", "Sa"},
+- daysShort: []string{"Sul", "Lun", "Meu.", "Mer.", "Yaou", "Gwe.", "Sad."},
+- daysWide: []string{"Sul", "Lun", "Meurzh", "Mercʼher", "Yaou", "Gwener", "Sadorn"},
+- periodsAbbreviated: []string{"A.M.", "G.M."},
+- periodsNarrow: []string{"am", "gm"},
+- periodsWide: []string{"A.M.", "G.M."},
+- erasAbbreviated: []string{"a-raok J.K.", "goude J.K."},
+- erasNarrow: []string{"a-raok J.K.", "goude J.K."},
+- erasWide: []string{"a-raok Jezuz-Krist", "goude Jezuz-Krist"},
+- timezones: map[string]string{"HEPMX": "HEPMX", "JST": "eur cʼhoañv Japan", "HEEG": "eur hañv Greunland ar Reter", "SGT": "eur cʼhoañv Singapour", "AKDT": "eur hañv Alaska", "AST": "AST", "ADT": "ADT", "EST": "eur cʼhoañv ar Reter", "MDT": "eur hañv Macau", "HNCU": "eur cʼhoañv Kuba", "AKST": "eur cʼhoañv Alaska", "ARST": "eur hañv Arcʼhantina", "IST": "eur cʼhoañv India", "ACDT": "eur hañv Kreizaostralia", "PST": "PST", "HKT": "eur cʼhoañv Hong Kong", "WITA": "WITA", "WAST": "eur hañv Afrika ar Cʼhornôg", "WART": "eur cʼhoañv Arcʼhantina ar Cʼhornôg", "GMT": "Amzer keitat Greenwich (AKG)", "SRT": "eur Surinam", "HAT": "eur hañv Newfoundland", "TMST": "eur hañv Turkmenistan", "CLST": "eur hañv Chile", "GFT": "eur Gwiana cʼhall", "HAST": "HAST", "PDT": "PDT", "AWST": "eur cʼhoañv Aostralia ar Cʼhornôg", "LHDT": "LHDT", "JDT": "eur hañv Japan", "BOT": "eur Bolivia", "ACST": "eur cʼhoañv Kreizaostralia", "HECU": "eur hañv Kuba", "CDT": "CDT", "HNT": "eur cʼhoañv Newfoundland", "MEZ": "eur cʼhoañv Kreizeuropa", "HNEG": "eur cʼhoañv Greunland ar Reter", "ACWDT": "eur hañv Kreizaostralia ar Cʼhornôg", "AEST": "eur cʼhoañv Aostralia ar Reter", "AWDT": "eur hañv Aostralia ar Cʼhornôg", "HNPM": "eur cʼhoañv Sant-Pêr-ha-Mikelon", "CHADT": "eur hañv Chatham", "WEZ": "eur cʼhoañv Europa ar Cʼhornôg", "WESZ": "eur hañv Europa ar Cʼhornôg", "CLT": "eur cʼhoañv Chile", "OESZ": "eur hañv Europa ar Reter", "∅∅∅": "eur hañv Perou", "CST": "CST", "GYT": "eur Guyana", "HNOG": "eur cʼhoañv Greunland ar Cʼhornôg", "TMT": "eur cʼhoañv Turkmenistan", "ChST": "ChST", "WARST": "eur hañv Arcʼhantina ar Cʼhornôg", "UYT": "eur cʼhoañv Uruguay", "BT": "eur Bhoutan", "NZST": "eur cʼhoañv Zeland-Nevez", "COST": "eur hañv Kolombia", "HNPMX": "HNPMX", "HKST": "eur hañv Hong Kong", "AEDT": "eur hañv Aostralia ar Reter", "HEPM": "eur hañv Sant-Pêr-ha-Mikelon", "WAT": "eur cʼhoañv Afrika ar Cʼhornôg", "HENOMX": "eur hañv Gwalarn Mecʼhiko", "COT": "eur cʼhoañv Kolombia", "HADT": "HADT", "VET": "eur Venezuela", "LHST": "LHST", "ECT": "eur Ecuador", "CAT": "eur Kreizafrika", "HNNOMX": "eur cʼhoañv Gwalarn Mecʼhiko", "MST": "eur cʼhoañv Macau", "MYT": "eur Malaysia", "OEZ": "eur cʼhoañv Europa ar Reter", "ACWST": "eur cʼhoañv Kreizaostralia ar Cʼhornôg", "ART": "eur cʼhoañv Arcʼhantina", "HEOG": "eur hañv Greunland ar Cʼhornôg", "NZDT": "eur hañv Zeland-Nevez", "SAST": "eur cʼhoañv Suafrika", "EAT": "eur Afrika ar Reter", "EDT": "eur hañv ar Reter", "UYST": "eur hañv Uruguay", "CHAST": "eur cʼhoañv Chatham", "MESZ": "eur hañv Kreizeuropa", "WIB": "eur Indonezia ar Cʼhornôg", "WIT": "eur Indonezia ar Reter"},
++ locale: "br_FR",
++ pluralsCardinal: []locales.PluralRule{2, 3, 4, 5, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"LHDT": "LHDT", "MYT": "MYT", "IST": "IST", "UYT": "UYT", "ART": "ART", "MESZ": "MESZ", "ACWST": "ACWST", "OESZ": "OESZ", "NZDT": "NZDT", "AWDT": "AWDT", "AEST": "AEST", "OEZ": "OEZ", "WART": "WART", "GYT": "GYT", "ADT": "ADT", "AKST": "AKST", "WEZ": "WEZ", "HADT": "HADT", "ACDT": "ACDT", "HNPM": "HNPM", "PST": "PST", "HKT": "HKT", "HKST": "HKST", "EAT": "EAT", "JDT": "JDT", "VET": "VET", "HNOG": "HNOG", "TMT": "TMT", "HAST": "HAST", "MEZ": "MEZ", "AWST": "AWST", "WAST": "WAST", "WIT": "WIT", "TMST": "TMST", "NZST": "NZST", "AKDT": "AKDT", "GFT": "GFT", "HNT": "HNT", "COT": "COT", "EST": "EST", "MDT": "MDT", "CDT": "CDT", "HNNOMX": "HNNOMX", "BT": "BT", "CLT": "CLT", "CST": "CST", "BOT": "BOT", "ACST": "ACST", "LHST": "LHST", "CHADT": "CHADT", "ECT": "ECT", "SRT": "SRT", "HNEG": "HNEG", "∅∅∅": "∅∅∅", "SAST": "SAST", "HEOG": "HEOG", "ChST": "ChST", "PDT": "PDT", "ACWDT": "ACWDT", "UYST": "UYST", "WESZ": "WESZ", "WAT": "WAT", "HAT": "HAT", "EDT": "EDT", "ARST": "ARST", "HENOMX": "HENOMX", "CHAST": "CHAST", "SGT": "SGT", "HNPMX": "HNPMX", "GMT": "GMT", "HEPMX": "HEPMX", "HNCU": "HNCU", "HEPM": "HEPM", "AEDT": "AEDT", "HECU": "HECU", "WARST": "WARST", "WIB": "WIB", "AST": "AST", "HEEG": "HEEG", "JST": "JST", "COST": "COST", "CAT": "CAT", "CLST": "CLST", "WITA": "WITA", "MST": "MST"},
+ }
+ }
+ 
+@@ -135,7 +110,7 @@ func (br *br_FR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (br *br_FR) MonthsAbbreviated() []string {
+- return br.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -145,7 +120,7 @@ func (br *br_FR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (br *br_FR) MonthsNarrow() []string {
+- return br.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -155,7 +130,7 @@ func (br *br_FR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (br *br_FR) MonthsWide() []string {
+- return br.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -201,77 +176,13 @@ func (br *br_FR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'br_FR' and handles both Whole and Real numbers based on 'v'
+ func (br *br_FR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, br.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(br.group) - 1; j >= 0; j-- {
+- b = append(b, br.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, br.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'br_FR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (br *br_FR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, br.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, br.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, br.percentSuffix...)
+-
+- b = append(b, br.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'br_FR'
+@@ -279,58 +190,7 @@ func (br *br_FR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := br.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, br.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(br.group) - 1; j >= 0; j-- {
+- b = append(b, br.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, br.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, br.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, br.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'br_FR'
+@@ -339,65 +199,7 @@ func (br *br_FR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := br.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, br.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(br.group) - 1; j >= 0; j-- {
+- b = append(b, br.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, br.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, br.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, br.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, br.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'br_FR'
+@@ -405,28 +207,6 @@ func (br *br_FR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -435,17 +215,6 @@ func (br *br_FR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, br.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -454,17 +223,6 @@ func (br *br_FR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, br.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -473,19 +231,6 @@ func (br *br_FR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, br.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, br.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -494,19 +239,6 @@ func (br *br_FR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, br.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -515,26 +247,6 @@ func (br *br_FR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, br.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, br.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -543,30 +255,6 @@ func (br *br_FR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, br.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, br.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -575,34 +263,5 @@ func (br *br_FR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, br.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, br.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := br.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/brx/brx.go b/brx/brx.go
+index eba178a..b94ceb6 100644
+--- a/brx/brx.go
++++ b/brx/brx.go
+@@ -68,7 +68,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ईसा.पूर्व", "सन"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"HKT": "हाँगकॉंग स्टैंडर्ड टाईम", "CAT": "मध्य अफ्रीका स्टैंडर्ड टाईम", "GMT": "ग्रीनीच स्टैंडर्ड टाईम", "HECU": "क्युबा डेलाईट टाईम", "MDT": "माकाऊ समर टाईम", "MYT": "मलेशिया स्टैंडर्ड टाईम", "HADT": "हवाई आलटन डेलाईट टाईम", "HEOG": "ग्रीनलैण्ड वेस्टर्न समर टाईम", "WESZ": "वेस्टर्न यूरोप समर टाईम", "LHST": "लार्ड़ होव स्टैंडर्ड टाईम", "TMST": "तुर्कमेनीस्तान समर टाईम", "WART": "पश्चीम अर्जण्टिना स्टैंडर्ड टाईम", "COST": "कोलंबिया समर टाईम", "HNPMX": "HNPMX", "AKDT": "अलास्का डेलाईट टाईम", "VET": "वेनेज़ुएला स्टैंडर्ड टाईम", "HAT": "न्युफाऊंडलैण्ड डेलाईट टाईम", "PST": "पैसीफीक स्टैंडर्ड टाईम", "PDT": "पैसीफीक डेलाईट टाईम", "HEPM": "सेँ पीयॅर एवं मीकलों डेलाईट टाईम", "CHADT": "चैथम डेलाईट टाईम", "MEZ": "मध्य यूरोप स्टैंडर्ड टाईम", "HNNOMX": "HNNOMX", "GYT": "गुयाना स्टैंडर्ड टाईम", "HKST": "हाँगकॉंग समर टाईम", "JST": "जपान स्टैंडर्ड टाईम", "EAT": "पूर्वी अफ्रीका स्टैंडर्ड टाईम", "WARST": "पश्चीम अर्जण्टिना समर टाईम", "EST": "ईस्टर्न अमरिका स्टैंडर्ड टाईम", "EDT": "ईस्टर्न अमरिका डेलाईट टाईम", "HEPMX": "HEPMX", "CDT": "सैंट्रल अमरिका डेलाईट टाईम", "AEST": "पूर्वी ओस्ट्रेलिया स्टैंडर्ड टाईम", "MESZ": "मध्य यूरोप समर टाईम", "ACST": "मध्य ओस्ट्रेलिया स्टैंडर्ड टाईम", "ACDT": "मध्य ओस्ट्रेलिया डेलाईट टाईम", "COT": "कोलंबिया स्टैंडर्ड टाईम", "WEZ": "वेस्टर्न यूरोप स्टैंडर्ड टाईम", "NZDT": "न्युज़ीलैण्ड डेलाईट टाईम", "BOT": "बोलिविया स्टैंडर्ड टाईम", "CST": "सैंट्रल अमरिका स्टैंडर्ड टाईम", "UYT": "ऊरुगुए स्टैंडर्ड टाईम", "ARST": "अर्जण्टिना समर टाईम", "WITA": "ईंडोनीशिया स्टैंडर्ड टाईम", "AEDT": "पूर्वी ओस्ट्रेलिया डेलाईट टाईम", "CLT": "चीली स्टैंडर्ड टाईम", "CLST": "चीली समर टाईम", "BT": "भुटान स्टैंडर्ड टाईम", "ART": "अर्जनटिना स्टैंडर्ड टाईम", "JDT": "जपान डेलाईट टाईम", "HEEG": "ग्रीनलैण्ड ईस्टर्न समर टाईम", "OESZ": "ईस्टर्न यूरोप समर टाईम", "HNCU": "क्युबा स्टैंडर्ड टाईम", "SAST": "दक्षिण अफ्रीका स्टैंडर्ड टाईम", "ECT": "एक्वाडौर स्टैंडर्ड टाईम", "UYST": "ऊरुगुए समर टाईम", "ACWDT": "मध्य-पश्चीम ओस्ट्रेलिया डेलाईट टाईम", "LHDT": "लार्ड़ होव डेलाईट टाईम", "IST": "भारतीय स्टैंडर्ड टाईम", "∅∅∅": "अमाज़ोन समर टाईम", "HENOMX": "HENOMX", "ADT": "अटलांटीक डेलाईट टाईम", "NZST": "न्युज़ीलैण्ड स्टैंडर्ड टाईम", "TMT": "तुर्कमेनीस्तान स्टैंडर्ड टाईम", "MST": "माकाऊ स्टैंडर्ड टाईम", "AKST": "अलास्का स्टैंडर्ड टाईम", "WIT": "ईस्टर्न ईंडोनीशिया स्टैंडर्ड टाईम", "HNOG": "ग्रीनलैण्ड वेस्टर्न स्टैंडर्ड टाईम", "CHAST": "चैथम स्टैंडर्ड टाईम", "ChST": "चामरो स्टैंडर्ड टाईम", "ACWST": "मध्य-पश्चीम ओस्ट्रेलिया स्टैंडर्ड टाईम", "HNT": "न्युफाऊंडलैण्ड स्टैंडर्ड टाईम", "HNPM": "सेँ पीयॅर एवं मीकलों स्टैंडर्ड टाईम", "HNEG": "ग्रीनलैण्ड ईस्टर्न स्टैंडर्ड टाईम", "OEZ": "ईस्टर्न यूरोप स्टैंडर्ड टाईम", "WAT": "पश्चीम अफ्रीका स्टैंडर्ड टाईम", "SRT": "सुरीनाम स्टैंडर्ड टाईम", "AWDT": "दक्षिण ओस्ट्रेलिया डेलाईट टाईम", "GFT": "फ्रान्सीसी गुयाना स्टैंडर्ड टाईम", "WAST": "पश्चीम अफ्रीका समर टाईम", "WIB": "वेस्टर्न ईंडोनीशिया स्टैंडर्ड टाईम", "AWST": "दक्षिण ओस्ट्रेलिया स्टैंडर्ड टाईम", "SGT": "सींगापुर स्टैंडर्ड टाईम", "AST": "अटलांटीक स्टैंडर्ड टाईम", "HAST": "हवाई आलटन स्टैंडर्ड टाईम"},
++ timezones: map[string]string{"ACWDT": "मध्य-पश्चीम ओस्ट्रेलिया डेलाईट टाईम", "UYST": "ऊरुगुए समर टाईम", "HEPM": "सेँ पीयॅर एवं मीकलों डेलाईट टाईम", "AEST": "पूर्वी ओस्ट्रेलिया स्टैंडर्ड टाईम", "NZST": "न्युज़ीलैण्ड स्टैंडर्ड टाईम", "MESZ": "मध्य यूरोप समर टाईम", "HEEG": "ग्रीनलैण्ड ईस्टर्न समर टाईम", "WEZ": "वेस्टर्न यूरोप स्टैंडर्ड टाईम", "WESZ": "वेस्टर्न यूरोप समर टाईम", "WARST": "पश्चीम अर्जण्टिना समर टाईम", "EDT": "ईस्टर्न अमरिका डेलाईट टाईम", "HNEG": "ग्रीनलैण्ड ईस्टर्न स्टैंडर्ड टाईम", "MYT": "मलेशिया स्टैंडर्ड टाईम", "∅∅∅": "आकर समर टाईम", "HNPMX": "HNPMX", "HAT": "न्युफाऊंडलैण्ड डेलाईट टाईम", "AWST": "दक्षिण ओस्ट्रेलिया स्टैंडर्ड टाईम", "COST": "कोलंबिया समर टाईम", "CHADT": "चैथम डेलाईट टाईम", "TMT": "तुर्कमेनीस्तान स्टैंडर्ड टाईम", "CLST": "चीली समर टाईम", "CST": "सैंट्रल अमरिका स्टैंडर्ड टाईम", "ACST": "मध्य ओस्ट्रेलिया स्टैंडर्ड टाईम", "BT": "भुटान स्टैंडर्ड टाईम", "OEZ": "ईस्टर्न यूरोप स्टैंडर्ड टाईम", "GFT": "फ्रान्सीसी गुयाना स्टैंडर्ड टाईम", "ECT": "एक्वाडौर स्टैंडर्ड टाईम", "WIB": "वेस्टर्न ईंडोनीशिया स्टैंडर्ड टाईम", "ChST": "चामरो स्टैंडर्ड टाईम", "JST": "जपान स्टैंडर्ड टाईम", "HNNOMX": "HNNOMX", "AWDT": "दक्षिण ओस्ट्रेलिया डेलाईट टाईम", "AEDT": "पूर्वी ओस्ट्रेलिया डेलाईट टाईम", "VET": "वेनेज़ुएला स्टैंडर्ड टाईम", "HECU": "क्युबा डेलाईट टाईम", "HEPMX": "HEPMX", "SRT": "सुरीनाम स्टैंडर्ड टाईम", "ACDT": "मध्य ओस्ट्रेलिया डेलाईट टाईम", "HNPM": "सेँ पीयॅर एवं मीकलों स्टैंडर्ड टाईम", "JDT": "जपान डेलाईट टाईम", "ACWST": "मध्य-पश्चीम ओस्ट्रेलिया स्टैंडर्ड टाईम", "WIT": "ईस्टर्न ईंडोनीशिया स्टैंडर्ड टाईम", "GYT": "गुयाना स्टैंडर्ड टाईम", "EST": "ईस्टर्न अमरिका स्टैंडर्ड टाईम", "HKT": "हाँगकॉंग स्टैंडर्ड टाईम", "LHDT": "लार्ड़ होव डेलाईट टाईम", "PST": "पैसीफीक स्टैंडर्ड टाईम", "CHAST": "चैथम स्टैंडर्ड टाईम", "HNCU": "क्युबा स्टैंडर्ड टाईम", "WAST": "पश्चीम अफ्रीका समर टाईम", "AKST": "अलास्का स्टैंडर्ड टाईम", "AKDT": "अलास्का डेलाईट टाईम", "CLT": "चीली स्टैंडर्ड टाईम", "HADT": "हवाई आलटन डेलाईट टाईम", "WAT": "पश्चीम अफ्रीका स्टैंडर्ड टाईम", "OESZ": "ईस्टर्न यूरोप समर टाईम", "WART": "पश्चीम अर्जण्टिना स्टैंडर्ड टाईम", "HKST": "हाँगकॉंग समर टाईम", "WITA": "ईंडोनीशिया स्टैंडर्ड टाईम", "GMT": "ग्रीनीच स्टैंडर्ड टाईम", "EAT": "पूर्वी अफ्रीका स्टैंडर्ड टाईम", "ART": "अर्जनटिना स्टैंडर्ड टाईम", "HNT": "न्युफाऊंडलैण्ड स्टैंडर्ड टाईम", "ADT": "अटलांटीक डेलाईट टाईम", "IST": "भारतीय स्टैंडर्ड टाईम", "LHST": "लार्ड़ होव स्टैंडर्ड टाईम", "PDT": "पैसीफीक डेलाईट टाईम", "SGT": "सींगापुर स्टैंडर्ड टाईम", "HNOG": "ग्रीनलैण्ड वेस्टर्न स्टैंडर्ड टाईम", "AST": "अटलांटीक स्टैंडर्ड टाईम", "HENOMX": "HENOMX", "UYT": "ऊरुगुए स्टैंडर्ड टाईम", "HEOG": "ग्रीनलैण्ड वेस्टर्न समर टाईम", "TMST": "तुर्कमेनीस्तान समर टाईम", "CAT": "मध्य अफ्रीका स्टैंडर्ड टाईम", "CDT": "सैंट्रल अमरिका डेलाईट टाईम", "BOT": "बोलिविया स्टैंडर्ड टाईम", "HAST": "हवाई आलटन स्टैंडर्ड टाईम", "SAST": "दक्षिण अफ्रीका स्टैंडर्ड टाईम", "COT": "कोलंबिया स्टैंडर्ड टाईम", "MST": "माकाऊ स्टैंडर्ड टाईम", "MDT": "माकाऊ समर टाईम", "NZDT": "न्युज़ीलैण्ड डेलाईट टाईम", "ARST": "अर्जण्टिना समर टाईम", "MEZ": "मध्य यूरोप स्टैंडर्ड टाईम"},
+ }
+ }
+ 
+diff --git a/brx_IN/brx_IN.go b/brx_IN/brx_IN.go
+index e7119ff..e44fe6d 100644
+--- a/brx_IN/brx_IN.go
++++ b/brx_IN/brx_IN.go
+@@ -10,65 +10,45 @@ import (
+ )
+ 
+ type brx_IN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'brx_IN' locale
+ func New() locales.Translator {
+ return &brx_IN{
+- locale: "brx_IN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsNarrow: []string{"", "ज", "फे", "मा", "ए", "मे", "जु", "जु", "आ", "से", "अ", "न", "दि"},
+- monthsWide: []string{"", "जानुवारी", "फेब्रुवारी", "मार्स", "एफ्रिल", "मे", "जुन", "जुलाइ", "आगस्थ", "सेबथेज्ब़र", "अखथबर", "नबेज्ब़र", "दिसेज्ब़र"},
+- daysAbbreviated: []string{"रबि", "सम", "मंगल", "बुद", "बिसथि", "सुखुर", "सुनि"},
+- daysNarrow: []string{"र", "स", "मं", "बु", "बि", "सु", "सु"},
+- daysWide: []string{"रबिबार", "समबार", "मंगलबार", "बुदबार", "बिसथिबार", "सुखुरबार", "सुनिबार"},
+- periodsAbbreviated: []string{"फुं", "बेलासे"},
+- periodsWide: []string{"फुं", "बेलासे"},
+- erasAbbreviated: []string{"ईसा.पूर्व", "सन"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"OEZ": "ईस्टर्न यूरोप स्टैंडर्ड टाईम", "HNOG": "ग्रीनलैण्ड वेस्टर्न स्टैंडर्ड टाईम", "IST": "भारतीय स्टैंडर्ड टाईम", "TMST": "तुर्कमेनीस्तान समर टाईम", "∅∅∅": "पेरु समर टाईम", "WIT": "ईस्टर्न ईंडोनीशिया स्टैंडर्ड टाईम", "PST": "पैसीफीक स्टैंडर्ड टाईम", "ACWST": "मध्य-पश्चीम ओस्ट्रेलिया स्टैंडर्ड टाईम", "NZST": "न्युज़ीलैण्ड स्टैंडर्ड टाईम", "TMT": "तुर्कमेनीस्तान स्टैंडर्ड टाईम", "AKST": "अलास्का स्टैंडर्ड टाईम", "HEPMX": "HEPMX", "MEZ": "मध्य यूरोप स्टैंडर्ड टाईम", "JDT": "जपान डेलाईट टाईम", "COT": "कोलंबिया स्टैंडर्ड टाईम", "MDT": "माकाऊ समर टाईम", "HADT": "हवाई आलटन डेलाईट टाईम", "HKST": "हाँगकॉंग समर टाईम", "HNPM": "सेँ पीयॅर एवं मीकलों स्टैंडर्ड टाईम", "COST": "कोलंबिया समर टाईम", "HNNOMX": "HNNOMX", "HNCU": "क्युबा स्टैंडर्ड टाईम", "UYST": "ऊरुगुए समर टाईम", "AST": "अटलांटीक स्टैंडर्ड टाईम", "HNT": "न्युफाऊंडलैण्ड स्टैंडर्ड टाईम", "HEPM": "सेँ पीयॅर एवं मीकलों डेलाईट टाईम", "MESZ": "मध्य यूरोप समर टाईम", "HNEG": "ग्रीनलैण्ड ईस्टर्न स्टैंडर्ड टाईम", "OESZ": "ईस्टर्न यूरोप समर टाईम", "CST": "सैंट्रल अमरिका स्टैंडर्ड टाईम", "HEOG": "ग्रीनलैण्ड वेस्टर्न समर टाईम", "CLST": "चीली समर टाईम", "SGT": "सींगापुर स्टैंडर्ड टाईम", "UYT": "ऊरुगुए स्टैंडर्ड टाईम", "HAST": "हवाई आलटन स्टैंडर्ड टाईम", "WEZ": "वेस्टर्न यूरोप स्टैंडर्ड टाईम", "ACST": "मध्य ओस्ट्रेलिया स्टैंडर्ड टाईम", "EAT": "पूर्वी अफ्रीका स्टैंडर्ड टाईम", "HNPMX": "HNPMX", "CDT": "सैंट्रल अमरिका डेलाईट टाईम", "WESZ": "वेस्टर्न यूरोप समर टाईम", "CAT": "मध्य अफ्रीका स्टैंडर्ड टाईम", "WAST": "पश्चीम अफ्रीका समर टाईम", "JST": "जपान स्टैंडर्ड टाईम", "GFT": "फ्रान्सीसी गुयाना स्टैंडर्ड टाईम", "VET": "वेनेज़ुएला स्टैंडर्ड टाईम", "MYT": "मलेशिया स्टैंडर्ड टाईम", "AKDT": "अलास्का डेलाईट टाईम", "WIB": "वेस्टर्न ईंडोनीशिया स्टैंडर्ड टाईम", "WITA": "ईंडोनीशिया स्टैंडर्ड टाईम", "HEEG": "ग्रीनलैण्ड ईस्टर्न समर टाईम", "MST": "माकाऊ स्टैंडर्ड टाईम", "CHADT": "चैथम डेलाईट टाईम", "GYT": "गुयाना स्टैंडर्ड टाईम", "HAT": "न्युफाऊंडलैण्ड डेलाईट टाईम", "WARST": "पश्चीम अर्जण्टिना समर टाईम", "EST": "ईस्टर्न अमरिका स्टैंडर्ड टाईम", "ADT": "अटलांटीक डेलाईट टाईम", "BT": "भुटान स्टैंडर्ड टाईम", "AEST": "पूर्वी ओस्ट्रेलिया स्टैंडर्ड टाईम", "AEDT": "पूर्वी ओस्ट्रेलिया डेलाईट टाईम", "ChST": "चामरो स्टैंडर्ड टाईम", "ACDT": "मध्य ओस्ट्रेलिया डेलाईट टाईम", "LHST": "लार्ड़ होव स्टैंडर्ड टाईम", "CHAST": "चैथम स्टैंडर्ड टाईम", "ACWDT": "मध्य-पश्चीम ओस्ट्रेलिया डेलाईट टाईम", "AWST": "दक्षिण ओस्ट्रेलिया स्टैंडर्ड टाईम", "LHDT": "लार्ड़ होव डेलाईट टाईम", "GMT": "ग्रीनीच स्टैंडर्ड टाईम", "HECU": "क्युबा डेलाईट टाईम", "ART": "अर्जनटिना स्टैंडर्ड टाईम", "AWDT": "दक्षिण ओस्ट्रेलिया डेलाईट टाईम", "NZDT": "न्युज़ीलैण्ड डेलाईट टाईम", "CLT": "चीली स्टैंडर्ड टाईम", "WART": "पश्चीम अर्जण्टिना स्टैंडर्ड टाईम", "EDT": "ईस्टर्न अमरिका डेलाईट टाईम", "HENOMX": "HENOMX", "PDT": "पैसीफीक डेलाईट टाईम", "ARST": "अर्जण्टिना समर टाईम", "BOT": "बोलिविया स्टैंडर्ड टाईम", "WAT": "पश्चीम अफ्रीका स्टैंडर्ड टाईम", "HKT": "हाँगकॉंग स्टैंडर्ड टाईम", "SAST": "दक्षिण अफ्रीका स्टैंडर्ड टाईम", "ECT": "एक्वाडौर स्टैंडर्ड टाईम", "SRT": "सुरीनाम स्टैंडर्ड टाईम"},
++ locale: "brx_IN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"LHST": "LHST", "CHAST": "CHAST", "HNPMX": "HNPMX", "WAST": "WAST", "AKDT": "AKDT", "HNEG": "HNEG", "ACST": "ACST", "MYT": "MYT", "HAT": "HAT", "HNT": "HNT", "SAST": "SAST", "MEZ": "MEZ", "ACDT": "ACDT", "OESZ": "OESZ", "MESZ": "MESZ", "ACWST": "ACWST", "IST": "IST", "HNCU": "HNCU", "HECU": "HECU", "AST": "AST", "EAT": "EAT", "HEEG": "HEEG", "UYT": "UYT", "GYT": "GYT", "CLT": "CLT", "HAST": "HAST", "HNPM": "HNPM", "JST": "JST", "WARST": "WARST", "HEOG": "HEOG", "WIB": "WIB", "MDT": "MDT", "ChST": "ChST", "HKT": "HKT", "EDT": "EDT", "JDT": "JDT", "ACWDT": "ACWDT", "WIT": "WIT", "AEST": "AEST", "GFT": "GFT", "WART": "WART", "ARST": "ARST", "BOT": "BOT", "WITA": "WITA", "CHADT": "CHADT", "CLST": "CLST", "WESZ": "WESZ", "TMT": "TMT", "ECT": "ECT", "LHDT": "LHDT", "PST": "PST", "HEPMX": "HEPMX", "WAT": "WAT", "GMT": "GMT", "PDT": "PDT", "VET": "VET", "SGT": "SGT", "NZDT": "NZDT", "CST": "CST", "BT": "BT", "∅∅∅": "∅∅∅", "COST": "COST", "CAT": "CAT", "HENOMX": "HENOMX", "AWST": "AWST", "UYST": "UYST", "OEZ": "OEZ", "EST": "EST", "ADT": "ADT", "AWDT": "AWDT", "AKST": "AKST", "COT": "COT", "HNOG": "HNOG", "HKST": "HKST", "CDT": "CDT", "MST": "MST", "AEDT": "AEDT", "HADT": "HADT", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "WEZ": "WEZ", "TMST": "TMST", "NZST": "NZST", "ART": "ART", "SRT": "SRT"},
+ }
+ }
+ 
+@@ -131,7 +111,7 @@ func (brx *brx_IN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (brx *brx_IN) MonthsNarrow() []string {
+- return brx.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -141,7 +121,7 @@ func (brx *brx_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (brx *brx_IN) MonthsWide() []string {
+- return brx.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -187,82 +167,13 @@ func (brx *brx_IN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'brx_IN' and handles both Whole and Real numbers based on 'v'
+ func (brx *brx_IN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, brx.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, brx.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, brx.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'brx_IN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (brx *brx_IN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, brx.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, brx.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, brx.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'brx_IN'
+@@ -270,69 +181,7 @@ func (brx *brx_IN) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := brx.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, brx.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, brx.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(brx.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, brx.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, brx.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, brx.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'brx_IN'
+@@ -341,81 +190,7 @@ func (brx *brx_IN) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := brx.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, brx.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, brx.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(brx.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, brx.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, brx.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(brx.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, brx.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, brx.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'brx_IN'
+@@ -423,17 +198,6 @@ func (brx *brx_IN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -442,17 +206,6 @@ func (brx *brx_IN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, brx.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -461,17 +214,6 @@ func (brx *brx_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, brx.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -480,19 +222,6 @@ func (brx *brx_IN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, brx.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, brx.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -501,28 +230,6 @@ func (brx *brx_IN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, brx.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, brx.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, brx.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -531,35 +238,6 @@ func (brx *brx_IN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, brx.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, brx.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, brx.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, brx.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -568,40 +246,6 @@ func (brx *brx_IN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, brx.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, brx.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, brx.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, brx.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -610,44 +254,5 @@ func (brx *brx_IN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, brx.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, brx.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, brx.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, brx.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := brx.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/bs/bs.go b/bs/bs.go
+index 0c75b36..64e004c 100644
+--- a/bs/bs.go
++++ b/bs/bs.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"p. n. e.", "n. e."},
+ erasNarrow: []string{"pr.n.e.", "AD"},
+ erasWide: []string{"prije nove ere", "nove ere"},
+- timezones: map[string]string{"GYT": "Gvajansko vrijeme", "WIB": "Zapadnoindonezijsko vrijeme", "OESZ": "Istočnoevropsko ljetno vrijeme", "MST": "Makao standardno vreme", "HNPMX": "Meksičko pacifičko standardno vrijeme", "AST": "Sjevernoameričko atlantsko standardno vrijeme", "BOT": "Bolivijsko vrijeme", "OEZ": "Istočnoevropsko standardno vrijeme", "AWDT": "Zapadnoaustralijsko ljetno vrijeme", "CLT": "Čileansko standardno vrijeme", "TMST": "Turkmenistansko ljetno vrijeme", "ChST": "Čamorsko standardno vrijeme", "ACDT": "Centralnoaustralijsko ljetno vrijeme", "HNPM": "Standardno vrijeme na Ostrvima Sen Pjer i Mikelon", "MEZ": "Centralnoevropsko standardno vrijeme", "MESZ": "Centralnoevropsko ljetno vrijeme", "SAST": "Južnoafričko standardno vrijeme", "ADT": "Sjevernoameričko atlantsko ljetno vrijeme", "WEZ": "Zapadnoevropsko standardno vrijeme", "ARST": "Argentinsko ljetno vrijeme", "WAST": "Zapadnoafričko ljetno vrijeme", "CAT": "Centralnoafričko vrijeme", "HNNOMX": "Sjeverozapadno meksičko standardno vrijeme", "HENOMX": "Sjeverozapadno meksičko ljetno vrijeme", "GMT": "Griničko vrijeme", "LHDT": "Ljetno vrijeme na Ostrvu Lord Hau", "MYT": "Malezijsko vrijeme", "AEDT": "Istočnoaustralijsko ljetno vrijeme", "CDT": "Sjevernoameričko centralno ljetno vrijeme", "WESZ": "Zapadnoevropsko ljetno vrijeme", "PST": "Sjevernoameričko pacifičko standardno vrijeme", "PDT": "Sjevernoameričko pacifičko ljetno vrijeme", "AWST": "Zapadnoaustralijsko standardno vrijeme", "HKST": "Hongkonško ljetno vrijeme", "LHST": "Standardno vrijeme na Ostrvu Lord Hau", "IST": "Indijsko standardno vrijeme", "WAT": "Zapadnoafričko standardno vrijeme", "HADT": "Havajsko-aleućansko ljetno vrijeme", "AKST": "Aljaskansko standardno vrijeme", "CST": "Sjevernoameričko centralno standardno vrijeme", "HAST": "Havajsko-aleućansko standardno vrijeme", "ACWDT": "Australijsko centralnozapadno ljetno vrijeme", "CHAST": "Čatamsko standardno vrijeme", "∅∅∅": "Amazonsko ljetno vrijeme", "COT": "Kolumbijsko standardno vrijeme", "WART": "Zapadnoargentinsko standardno vrijeme", "HKT": "Hongkonško standardno vrijeme", "HNEG": "Istočnogrenlandsko standardno vrijeme", "GFT": "Francuskogvajansko vrijeme", "TMT": "Turkmenistansko standardno vrijeme", "AKDT": "Aljaskansko ljetno vrijeme", "ACST": "Centralnoaustralijsko standardno vrijeme", "VET": "Venecuelansko vrijeme", "ACWST": "Australijsko centralnozapadno standardno vrijeme", "ART": "Argentinsko standardno vrijeme", "NZDT": "Novozelandsko ljetno vrijeme", "JST": "Japansko standardno vrijeme", "JDT": "Japansko ljetno vrijeme", "HEEG": "Istočnogrenlandsko ljetno vrijeme", "HNOG": "Zapadnogrenlandsko standardno vrijeme", "WITA": "Centralnoindonezijsko vrijeme", "HEPM": "Ljetno vrijeme na Ostrvima Sen Pjer i Mikelon", "COST": "Kolumbijsko ljetno vrijeme", "AEST": "Istočnoaustralijsko standardno vrijeme", "SGT": "Singapursko standardno vrijeme", "EDT": "Sjevernoameričko istočno ljetno vrijeme", "WIT": "Istočnoindonezijsko vrijeme", "BT": "Butansko vrijeme", "CHADT": "Čatamsko ljetno vrijeme", "EAT": "Istočnoafričko vrijeme", "HNCU": "Kubansko standardno vrijeme", "UYST": "Urugvajsko ljetno vrijeme", "HEOG": "Zapadnogrenlandsko ljetno vrijeme", "CLST": "Čileansko ljetno vrijeme", "ECT": "Ekvadorsko vrijeme", "HEPMX": "Meksičko pacifičko ljetno vrijeme", "EST": "Sjevernoameričko istočno standardno vrijeme", "WARST": "Zapadnoargentinsko ljetno vrijeme", "HAT": "Njufaundlendsko ljetno vrijeme", "SRT": "Surinamsko vrijeme", "HNT": "Njufaundlendsko standardno vrijeme", "NZST": "Novozelandsko standardno vrijeme", "HECU": "Kubansko ljetno vrijeme", "MDT": "Makao letnje računanje vremena", "UYT": "Urugvajsko standardno vrijeme"},
++ timezones: map[string]string{"EST": "Sjevernoameričko istočno standardno vrijeme", "CLT": "Čileansko standardno vrijeme", "SRT": "Surinamsko vrijeme", "HNEG": "Istočnogrenlandsko standardno vrijeme", "UYST": "Urugvajsko ljetno vrijeme", "PST": "Sjevernoameričko pacifičko standardno vrijeme", "WART": "Zapadnoargentinsko standardno vrijeme", "TMT": "Turkmenistansko standardno vrijeme", "NZDT": "Novozelandsko ljetno vrijeme", "MDT": "Makao letnje računanje vremena", "ADT": "Sjevernoameričko atlantsko ljetno vrijeme", "HAST": "Havajsko-aleućansko standardno vrijeme", "LHDT": "Ljetno vrijeme na Ostrvu Lord Hau", "WARST": "Zapadnoargentinsko ljetno vrijeme", "∅∅∅": "Brazilijsko ljetno vrijeme", "HEPMX": "Meksičko pacifičko ljetno vrijeme", "CDT": "Sjevernoameričko centralno ljetno vrijeme", "ChST": "Čamorsko standardno vrijeme", "MYT": "Malezijsko vrijeme", "WAST": "Zapadnoafričko ljetno vrijeme", "TMST": "Turkmenistansko ljetno vrijeme", "WIB": "Zapadnoindonezijsko vrijeme", "GMT": "Griničko vrijeme", "LHST": "Standardno vrijeme na Ostrvu Lord Hau", "ACWST": "Australijsko centralnozapadno standardno vrijeme", "WIT": "Istočnoindonezijsko vrijeme", "NZST": "Novozelandsko standardno vrijeme", "EDT": "Sjevernoameričko istočno ljetno vrijeme", "CHAST": "Čatamsko standardno vrijeme", "HEOG": "Zapadnogrenlandsko ljetno vrijeme", "SAST": "Južnoafričko standardno vrijeme", "HKST": "Hongkonško ljetno vrijeme", "ACDT": "Centralnoaustralijsko ljetno vrijeme", "HECU": "Kubansko ljetno vrijeme", "COST": "Kolumbijsko ljetno vrijeme", "HKT": "Hongkonško standardno vrijeme", "WITA": "Centralnoindonezijsko vrijeme", "ARST": "Argentinsko ljetno vrijeme", "HNT": "Njufaundlendsko standardno vrijeme", "HNOG": "Zapadnogrenlandsko standardno vrijeme", "ACST": "Centralnoaustralijsko standardno vrijeme", "AWST": "Zapadnoaustralijsko standardno vrijeme", "AWDT": "Zapadnoaustralijsko ljetno vrijeme", "AEDT": "Istočnoaustralijsko ljetno vrijeme", "HAT": "Njufaundlendsko ljetno vrijeme", "COT": "Kolumbijsko standardno vrijeme", "HENOMX": "Sjeverozapadno meksičko ljetno vrijeme", "BT": "Butansko vrijeme", "ACWDT": "Australijsko centralnozapadno ljetno vrijeme", "CHADT": "Čatamsko ljetno vrijeme", "CLST": "Čileansko ljetno vrijeme", "HADT": "Havajsko-aleućansko ljetno vrijeme", "ART": "Argentinsko standardno vrijeme", "SGT": "Singapursko standardno vrijeme", "AKDT": "Aljaskansko ljetno vrijeme", "OEZ": "Istočnoevropsko standardno vrijeme", "OESZ": "Istočnoevropsko ljetno vrijeme", "BOT": "Bolivijsko vrijeme", "EAT": "Istočnoafričko vrijeme", "IST": "Indijsko standardno vrijeme", "CAT": "Centralnoafričko vrijeme", "CST": "Sjevernoameričko centralno standardno vrijeme", "JDT": "Japansko ljetno vrijeme", "AEST": "Istočnoaustralijsko standardno vrijeme", "UYT": "Urugvajsko standardno vrijeme", "HNNOMX": "Sjeverozapadno meksičko standardno vrijeme", "HEPM": "Ljetno vrijeme na Ostrvima Sen Pjer i Mikelon", "MESZ": "Centralnoevropsko ljetno vrijeme", "PDT": "Sjevernoameričko pacifičko ljetno vrijeme", "WESZ": "Zapadnoevropsko ljetno vrijeme", "AKST": "Aljaskansko standardno vrijeme", "ECT": "Ekvadorsko vrijeme", "AST": "Sjevernoameričko atlantsko standardno vrijeme", "HNCU": "Kubansko standardno vrijeme", "HNPMX": "Meksičko pacifičko standardno vrijeme", "WEZ": "Zapadnoevropsko standardno vrijeme", "HEEG": "Istočnogrenlandsko ljetno vrijeme", "JST": "Japansko standardno vrijeme", "MST": "Makao standardno vreme", "MEZ": "Centralnoevropsko standardno vrijeme", "HNPM": "Standardno vrijeme na Ostrvima Sen Pjer i Mikelon", "VET": "Venecuelansko vrijeme", "WAT": "Zapadnoafričko standardno vrijeme", "GFT": "Francuskogvajansko vrijeme", "GYT": "Gvajansko vrijeme"},
+ }
+ }
+ 
+diff --git a/bs_Cyrl/bs_Cyrl.go b/bs_Cyrl/bs_Cyrl.go
+index 8081969..ae8163b 100644
+--- a/bs_Cyrl/bs_Cyrl.go
++++ b/bs_Cyrl/bs_Cyrl.go
+@@ -63,15 +63,13 @@ func New() locales.Translator {
+ monthsWide: []string{"", "јануар", "фебруар", "март", "април", "мај", "јуни", "јули", "август", "септембар", "октобар", "новембар", "децембар"},
+ daysAbbreviated: []string{"нед", "пон", "уто", "сри", "чет", "пет", "суб"},
+ daysNarrow: []string{"н", "п", "у", "с", "ч", "п", "с"},
+- daysShort: []string{"ned", "pon", "uto", "sri", "čet", "pet", "sub"},
+ daysWide: []string{"недеља", "понедељак", "уторак", "сриједа", "четвртак", "петак", "субота"},
+ periodsAbbreviated: []string{"пре подне", "поподне"},
+- periodsNarrow: []string{"prijepodne", "popodne"},
+ periodsWide: []string{"пре подне", "поподне"},
+ erasAbbreviated: []string{"п. н. е.", "н. е."},
+ erasNarrow: []string{"п.н.е.", "н.е."},
+ erasWide: []string{"Пре нове ере", "Нове ере"},
+- timezones: map[string]string{"ACWDT": "Аустралијско централно западно летње рачунање времена", "LHST": "Лорд Хов стандардно време", "WART": "Западна Аргентина стандардно време", "WARST": "Западна Аргентина летње рачунање времена", "∅∅∅": "Азори летње рачунање времена", "HADT": "Хавајско-алеутско летње рачунање времена", "SRT": "Суринам време", "HNOG": "Западни Гренланд стандардно време", "HNPM": "Сен Пјер и Микелон стандардно време", "MST": "Макао стандардно време", "HAST": "Хавајско-алеутско стандардно време", "ACDT": "Аустралијско централно летње рачунање времена", "WAT": "Западно-афричко стандардно време", "HNNOMX": "Sjeverozapadno meksičko standardno vrijeme", "CST": "Централно стандардно време", "HKST": "Хонгконшко летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "NZST": "Нови Зеланд стандардно време", "SAST": "Јужно-афричко време", "AKDT": "Аљашко летње време", "CHADT": "Чатам летње рачунање времена", "ChST": "Чаморо време", "BT": "Бутан време", "MDT": "Макао летње рачунање вемена", "CHAST": "Чатам стандардно време", "MESZ": "Средњеевропско летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "HNCU": "Куба стандардно време", "PDT": "Пацифичко летње рачунање времена", "OESZ": "Источноевропско летње рачунање времена", "HEPMX": "Meksičko pacifičko ljetno vrijeme", "WEZ": "Западноевропско стандардно време", "CLST": "Чиле летње рачунање времена", "HENOMX": "Sjeverozapadno meksičko ljetno vrijeme", "WIT": "Источно-индонезијско време", "GYT": "Гвајана време", "CLT": "Чиле стандардно време", "GMT": "Гринвич средње време", "HNPMX": "Meksičko pacifičko standardno vrijeme", "ADT": "Атланско лтње рачунање времена", "VET": "Венецуела време", "NZDT": "Нови Зеланд летње рачунање времена", "JST": "Јапанско стандардно време", "SGT": "Сингапур стандардно време", "UYST": "Уругвај летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "AWST": "Аустралијско западно стандардно време", "HKT": "Хонг Конг стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање вемена", "JDT": "Јапанско летње рачунање времена", "TMT": "Туркменистан стандардно време", "UYT": "Уругвај стандардно време", "WAST": "Западно-афричко летње рачунање времена", "EDT": "Источно летње рачунање времена", "CDT": "Централно летње рачунање времена", "MYT": "Малезија време", "WIB": "Западно-индонезијско време", "PST": "Пацифичко стандардно време", "WITA": "Централно-индонезијско време", "BOT": "Боливија време", "EST": "Источно стандардно време", "HNT": "Њуфаундленд стандардно време", "ART": "Аргентина стандардно време", "ARST": "Аргентина летње рачунање времена", "HEOG": "Западни Гренланд летње рачунање времена", "WESZ": "Западноевропско летње рачунање времена", "GFT": "Француска Гвајана време", "COT": "Колумбија стандардно време", "HECU": "Куба летње рачунање времена", "AEDT": "Аустралијско источно летње рачунање времена", "LHDT": "Лорд Хов летње рачунање времена", "TMST": "Туркменистан летње рачунање времена", "OEZ": "Источноевропско стандардно време", "EAT": "Источно-афричко време", "AST": "Атланско стандардно време", "HAT": "Њуфаундленд летње рачунање времена", "AEST": "Аустралијско источно стандардно време", "ACST": "Аустралијско централно стандардно време", "CAT": "Централно-афричко време", "AKST": "Аљашко стандардно време", "IST": "Индијско стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "ECT": "Еквадор време", "COST": "Колумбија летње рачунање времена", "AWDT": "Аустралијско западно летње рачунање времена"},
++ timezones: map[string]string{"WARST": "Западна Аргентина летње рачунање времена", "CST": "Централно стандардно време", "NZDT": "Нови Зеланд летње рачунање времена", "JST": "Јапанско стандардно време", "MYT": "Малезија време", "WEZ": "Западноевропско стандардно време", "WESZ": "Западноевропско летње рачунање времена", "SAST": "Јужно-афричко време", "EDT": "Источно летње рачунање времена", "HKT": "Хонг Конг стандардно време", "MESZ": "Средњеевропско летње рачунање времена", "CHAST": "Чатам стандардно време", "HAT": "Њуфаундленд летње рачунање времена", "WIT": "Источно-индонезијско време", "HEOG": "Западни Гренланд летње рачунање времена", "LHDT": "Лорд Хов летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "UYT": "Уругвај стандардно време", "HNPMX": "HNPMX", "AEDT": "Аустралијско источно летње рачунање времена", "HNPM": "Сен Пјер и Микелон стандардно време", "AWST": "Аустралијско западно стандардно време", "MST": "Макао стандардно време", "BOT": "Боливија време", "SRT": "Суринам време", "MEZ": "Средњеевропско стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "LHST": "Лорд Хов стандардно време", "PST": "Пацифичко стандардно време", "HECU": "Куба летње рачунање времена", "SGT": "Сингапур стандардно време", "VET": "Венецуела време", "WITA": "Централно-индонезијско време", "HENOMX": "HENOMX", "IST": "Индијско стандардно време", "HEPMX": "HEPMX", "OEZ": "Источноевропско стандардно време", "EST": "Источно стандардно време", "ADT": "Атланско лтње рачунање времена", "CHADT": "Чатам летње рачунање времена", "UYST": "Уругвај летње рачунање времена", "AKST": "Аљашко стандардно време", "WART": "Западна Аргентина стандардно време", "COST": "Колумбија летње рачунање времена", "TMT": "Туркменистан стандардно време", "PDT": "Пацифичко летње рачунање времена", "HNT": "Њуфаундленд стандардно време", "ARST": "Аргентина летње рачунање времена", "HAST": "Хавајско-алеутско стандардно време", "AKDT": "Аљашко летње време", "GYT": "Гвајана време", "WIB": "Западно-индонезијско време", "ART": "Аргентина стандардно време", "ACST": "Аустралијско централно стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање вемена", "BT": "Бутан време", "COT": "Колумбија стандардно време", "AST": "Атланско стандардно време", "ChST": "Чаморо време", "EAT": "Источно-афричко време", "HADT": "Хавајско-алеутско летње рачунање времена", "ACWDT": "Аустралијско централно западно летње рачунање времена", "GFT": "Француска Гвајана време", "HNOG": "Западни Гренланд стандардно време", "HKST": "Хонгконшко летње рачунање времена", "ECT": "Еквадор време", "CDT": "Централно летње рачунање времена", "HNNOMX": "HNNOMX", "HNEG": "Источни Гренланд стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "AEST": "Аустралијско источно стандардно време", "WAT": "Западно-афричко стандардно време", "WAST": "Западно-афричко летње рачунање времена", "∅∅∅": "Бразилија летње рачунање времена", "CAT": "Централно-афричко време", "CLT": "Чиле стандардно време", "CLST": "Чиле летње рачунање времена", "GMT": "Гринвич средње време", "HNCU": "Куба стандардно време", "OESZ": "Источноевропско летње рачунање времена", "TMST": "Туркменистан летње рачунање времена", "MDT": "Макао летње рачунање вемена", "NZST": "Нови Зеланд стандардно време", "ACDT": "Аустралијско централно летње рачунање времена", "JDT": "Јапанско летње рачунање времена"},
+ }
+ }
+ 
+@@ -101,8 +99,8 @@ func (bs *bs_Cyrl) CardinalPluralRule(num float64, v uint64) locales.PluralRule
+ n := math.Abs(num)
+ i := int64(n)
+ f := locales.F(n, v)
+- iMod10 := i % 10
+ iMod100 := i % 100
++ iMod10 := i % 10
+ fMod10 := f % 10
+ fMod100 := f % 100
+ 
+diff --git a/bs_Cyrl_BA/bs_Cyrl_BA.go b/bs_Cyrl_BA/bs_Cyrl_BA.go
+index 6db31c2..37de0d3 100644
+--- a/bs_Cyrl_BA/bs_Cyrl_BA.go
++++ b/bs_Cyrl_BA/bs_Cyrl_BA.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type bs_Cyrl_BA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'bs_Cyrl_BA' locale
+ func New() locales.Translator {
+ return &bs_Cyrl_BA{
+- locale: "bs_Cyrl_BA",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan", "feb", "mar", "apr", "maj", "jun", "jul", "avg", "sep", "okt", "nov", "dec"},
+- monthsNarrow: []string{"", "j", "f", "m", "a", "m", "j", "j", "a", "s", "o", "n", "d"},
+- monthsWide: []string{"", "januar", "februar", "mart", "april", "maj", "juni", "juli", "avgust", "septembar", "oktobar", "novembar", "decembar"},
+- daysAbbreviated: []string{"ned", "pon", "uto", "sri", "čet", "pet", "sub"},
+- daysNarrow: []string{"N", "P", "U", "S", "Č", "P", "S"},
+- daysShort: []string{"ned", "pon", "uto", "sri", "čet", "pet", "sub"},
+- daysWide: []string{"nedjelja", "ponedjeljak", "utorak", "srijeda", "četvrtak", "petak", "subota"},
+- periodsAbbreviated: []string{"prijepodne", "popodne"},
+- periodsNarrow: []string{"prijepodne", "popodne"},
+- periodsWide: []string{"prijepodne", "popodne"},
+- erasAbbreviated: []string{"p. n. e.", "n. e."},
+- erasNarrow: []string{"pr.n.e.", "AD"},
+- erasWide: []string{"prije nove ere", "nove ere"},
+- timezones: map[string]string{"WEZ": "Zapadnoevropsko standardno vrijeme", "ARST": "Argentinsko ljetno vrijeme", "HEPMX": "Meksičko pacifičko ljetno vrijeme", "WIT": "Istočnoindonezijsko vrijeme", "AWST": "Zapadnoaustralijsko standardno vrijeme", "OESZ": "Istočnoevropsko ljetno vrijeme", "VET": "Venecuelansko vrijeme", "MDT": "Makao letnje računanje vremena", "ADT": "Sjevernoameričko atlantsko ljetno vrijeme", "GYT": "Gvajansko vrijeme", "HKST": "Hongkonško ljetno vrijeme", "NZDT": "Novozelandsko ljetno vrijeme", "SAST": "Južnoafričko standardno vrijeme", "OEZ": "Istočnoevropsko standardno vrijeme", "HECU": "Kubansko ljetno vrijeme", "MYT": "Malezijsko vrijeme", "BT": "Butansko vrijeme", "PST": "Sjevernoameričko pacifičko standardno vrijeme", "PDT": "Sjevernoameričko pacifičko ljetno vrijeme", "MESZ": "Centralnoevropsko ljetno vrijeme", "LHDT": "Ljetno vrijeme na Ostrvu Lord Hau", "BOT": "Bolivijsko vrijeme", "HNCU": "Kubansko standardno vrijeme", "HEEG": "Istočnogrenlandsko ljetno vrijeme", "WAT": "Zapadnoafričko standardno vrijeme", "WARST": "Zapadnoargentinsko ljetno vrijeme", "HNEG": "Istočnogrenlandsko standardno vrijeme", "AKST": "Aljaskansko standardno vrijeme", "HNOG": "Zapadnogrenlandsko standardno vrijeme", "HEPM": "Ljetno vrijeme na Ostrvima Sen Pjer i Mikelon", "MST": "Makao standardno vreme", "ChST": "Čamorsko standardno vrijeme", "ACWST": "Australijsko centralnozapadno standardno vrijeme", "ACWDT": "Australijsko centralnozapadno ljetno vrijeme", "JST": "Japansko standardno vrijeme", "ECT": "Ekvadorsko vrijeme", "HNNOMX": "Sjeverozapadno meksičko standardno vrijeme", "HAST": "Havajsko-aleućansko standardno vrijeme", "ART": "Argentinsko standardno vrijeme", "CHAST": "Čatamsko standardno vrijeme", "GFT": "Francuskogvajansko vrijeme", "COT": "Kolumbijsko standardno vrijeme", "UYST": "Urugvajsko ljetno vrijeme", "WESZ": "Zapadnoevropsko ljetno vrijeme", "AEDT": "Istočnoaustralijsko ljetno vrijeme", "AWDT": "Zapadnoaustralijsko ljetno vrijeme", "WITA": "Centralnoindonezijsko vrijeme", "HNPM": "Standardno vrijeme na Ostrvima Sen Pjer i Mikelon", "EAT": "Istočnoafričko vrijeme", "WART": "Zapadnoargentinsko standardno vrijeme", "WIB": "Zapadnoindonezijsko vrijeme", "CLST": "Čileansko ljetno vrijeme", "TMT": "Turkmenistansko standardno vrijeme", "CAT": "Centralnoafričko vrijeme", "GMT": "Griničko vrijeme", "JDT": "Japansko ljetno vrijeme", "HENOMX": "Sjeverozapadno meksičko ljetno vrijeme", "HEOG": "Zapadnogrenlandsko ljetno vrijeme", "EST": "Sjevernoameričko istočno standardno vrijeme", "IST": "Indijsko standardno vrijeme", "ACST": "Centralnoaustralijsko standardno vrijeme", "COST": "Kolumbijsko ljetno vrijeme", "∅∅∅": "Azorsko ljetno vrijeme", "AST": "Sjevernoameričko atlantsko standardno vrijeme", "HADT": "Havajsko-aleućansko ljetno vrijeme", "AEST": "Istočnoaustralijsko standardno vrijeme", "CHADT": "Čatamsko ljetno vrijeme", "TMST": "Turkmenistansko ljetno vrijeme", "CST": "Sjevernoameričko centralno standardno vrijeme", "HAT": "Njufaundlendsko ljetno vrijeme", "HKT": "Hongkonško standardno vrijeme", "NZST": "Novozelandsko standardno vrijeme", "CLT": "Čileansko standardno vrijeme", "UYT": "Urugvajsko standardno vrijeme", "ACDT": "Centralnoaustralijsko ljetno vrijeme", "WAST": "Zapadnoafričko ljetno vrijeme", "AKDT": "Aljaskansko ljetno vrijeme", "EDT": "Sjevernoameričko istočno ljetno vrijeme", "HNPMX": "Meksičko pacifičko standardno vrijeme", "CDT": "Sjevernoameričko centralno ljetno vrijeme", "SRT": "Surinamsko vrijeme", "HNT": "Njufaundlendsko standardno vrijeme", "MEZ": "Centralnoevropsko standardno vrijeme", "LHST": "Standardno vrijeme na Ostrvu Lord Hau", "SGT": "Singapursko standardno vrijeme"},
++ locale: "bs_Cyrl_BA",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"LHST": "LHST", "ACWDT": "ACWDT", "OESZ": "OESZ", "BOT": "BOT", "EAT": "EAT", "MEZ": "MEZ", "HEPM": "HEPM", "CHAST": "CHAST", "ACWST": "ACWST", "WEZ": "WEZ", "SGT": "SGT", "HNT": "HNT", "COST": "COST", "ADT": "ADT", "ARST": "ARST", "HNEG": "HNEG", "UYT": "UYT", "GFT": "GFT", "TMT": "TMT", "CDT": "CDT", "MDT": "MDT", "WAT": "WAT", "WARST": "WARST", "JDT": "JDT", "AEDT": "AEDT", "WESZ": "WESZ", "SRT": "SRT", "MYT": "MYT", "AWST": "AWST", "PST": "PST", "BT": "BT", "VET": "VET", "AKST": "AKST", "ACST": "ACST", "HEEG": "HEEG", "TMST": "TMST", "CLST": "CLST", "MST": "MST", "AST": "AST", "AWDT": "AWDT", "LHDT": "LHDT", "JST": "JST", "CHADT": "CHADT", "OEZ": "OEZ", "HNOG": "HNOG", "WIB": "WIB", "HAST": "HAST", "IST": "IST", "WART": "WART", "WIT": "WIT", "HEOG": "HEOG", "EST": "EST", "MESZ": "MESZ", "PDT": "PDT", "AEST": "AEST", "CST": "CST", "ART": "ART", "HADT": "HADT", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "SAST": "SAST", "COT": "COT", "CAT": "CAT", "HENOMX": "HENOMX", "UYST": "UYST", "∅∅∅": "∅∅∅", "GYT": "GYT", "HKST": "HKST", "GMT": "GMT", "ACDT": "ACDT", "HNPM": "HNPM", "EDT": "EDT", "CLT": "CLT", "NZDT": "NZDT", "ECT": "ECT", "NZST": "NZST", "ChST": "ChST", "HECU": "HECU", "WAST": "WAST", "AKDT": "AKDT", "HAT": "HAT", "WITA": "WITA", "HNCU": "HNCU", "HEPMX": "HEPMX", "HKT": "HKT"},
+ }
+ }
+ 
+@@ -157,7 +132,7 @@ func (bs *bs_Cyrl_BA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (bs *bs_Cyrl_BA) MonthsAbbreviated() []string {
+- return bs.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -167,7 +142,7 @@ func (bs *bs_Cyrl_BA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (bs *bs_Cyrl_BA) MonthsNarrow() []string {
+- return bs.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -177,7 +152,7 @@ func (bs *bs_Cyrl_BA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (bs *bs_Cyrl_BA) MonthsWide() []string {
+- return bs.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -223,75 +198,13 @@ func (bs *bs_Cyrl_BA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'bs_Cyrl_BA' and handles both Whole and Real numbers based on 'v'
+ func (bs *bs_Cyrl_BA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bs.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bs.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bs.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'bs_Cyrl_BA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (bs *bs_Cyrl_BA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bs.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bs.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, bs.percentSuffix...)
+-
+- b = append(b, bs.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'bs_Cyrl_BA'
+@@ -299,56 +212,7 @@ func (bs *bs_Cyrl_BA) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bs.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bs.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bs.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bs.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bs.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, bs.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'bs_Cyrl_BA'
+@@ -357,63 +221,7 @@ func (bs *bs_Cyrl_BA) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bs.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bs.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bs.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, bs.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bs.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, bs.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, bs.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'bs_Cyrl_BA'
+@@ -421,19 +229,6 @@ func (bs *bs_Cyrl_BA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -442,19 +237,6 @@ func (bs *bs_Cyrl_BA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, bs.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -463,19 +245,6 @@ func (bs *bs_Cyrl_BA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, bs.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -484,21 +253,6 @@ func (bs *bs_Cyrl_BA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, bs.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, bs.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -507,19 +261,6 @@ func (bs *bs_Cyrl_BA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -528,26 +269,6 @@ func (bs *bs_Cyrl_BA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -556,30 +277,6 @@ func (bs *bs_Cyrl_BA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -588,34 +285,5 @@ func (bs *bs_Cyrl_BA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := bs.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/bs_Latn/bs_Latn.go b/bs_Latn/bs_Latn.go
+index d60df14..f8de40e 100644
+--- a/bs_Latn/bs_Latn.go
++++ b/bs_Latn/bs_Latn.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type bs_Latn struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'bs_Latn' locale
+ func New() locales.Translator {
+ return &bs_Latn{
+- locale: "bs_Latn",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan", "feb", "mar", "apr", "maj", "jun", "jul", "avg", "sep", "okt", "nov", "dec"},
+- monthsNarrow: []string{"", "j", "f", "m", "a", "m", "j", "j", "a", "s", "o", "n", "d"},
+- monthsWide: []string{"", "januar", "februar", "mart", "april", "maj", "juni", "juli", "avgust", "septembar", "oktobar", "novembar", "decembar"},
+- daysAbbreviated: []string{"ned", "pon", "uto", "sri", "čet", "pet", "sub"},
+- daysNarrow: []string{"N", "P", "U", "S", "Č", "P", "S"},
+- daysShort: []string{"ned", "pon", "uto", "sri", "čet", "pet", "sub"},
+- daysWide: []string{"nedjelja", "ponedjeljak", "utorak", "srijeda", "četvrtak", "petak", "subota"},
+- periodsAbbreviated: []string{"prijepodne", "popodne"},
+- periodsNarrow: []string{"prijepodne", "popodne"},
+- periodsWide: []string{"prijepodne", "popodne"},
+- erasAbbreviated: []string{"p. n. e.", "n. e."},
+- erasNarrow: []string{"pr.n.e.", "AD"},
+- erasWide: []string{"prije nove ere", "nove ere"},
+- timezones: map[string]string{"VET": "Venecuelansko vrijeme", "HAT": "Njufaundlendsko ljetno vrijeme", "ADT": "Sjevernoameričko atlantsko ljetno vrijeme", "HNT": "Njufaundlendsko standardno vrijeme", "NZST": "Novozelandsko standardno vrijeme", "TMT": "Turkmenistansko standardno vrijeme", "OEZ": "Istočnoevropsko standardno vrijeme", "COST": "Kolumbijsko ljetno vrijeme", "WESZ": "Zapadnoevropsko ljetno vrijeme", "WEZ": "Zapadnoevropsko standardno vrijeme", "TMST": "Turkmenistansko ljetno vrijeme", "MYT": "Malezijsko vrijeme", "GMT": "Griničko vrijeme", "HEPMX": "Meksičko pacifičko ljetno vrijeme", "BOT": "Bolivijsko vrijeme", "SGT": "Singapursko standardno vrijeme", "GYT": "Gvajansko vrijeme", "ART": "Argentinsko standardno vrijeme", "AEDT": "Istočnoaustralijsko ljetno vrijeme", "CHADT": "Čatamsko ljetno vrijeme", "CLT": "Čileansko standardno vrijeme", "WAT": "Zapadnoafričko standardno vrijeme", "ECT": "Ekvadorsko vrijeme", "COT": "Kolumbijsko standardno vrijeme", "ACWDT": "Australijsko centralnozapadno ljetno vrijeme", "JST": "Japansko standardno vrijeme", "GFT": "Francuskogvajansko vrijeme", "ACDT": "Centralnoaustralijsko ljetno vrijeme", "EAT": "Istočnoafričko vrijeme", "AKDT": "Aljaskansko ljetno vrijeme", "HADT": "Havajsko-aleućansko ljetno vrijeme", "LHST": "Standardno vrijeme na Ostrvu Lord Hau", "CHAST": "Čatamsko standardno vrijeme", "CLST": "Čileansko ljetno vrijeme", "∅∅∅": "Amazonsko ljetno vrijeme", "HNPMX": "Meksičko pacifičko standardno vrijeme", "JDT": "Japansko ljetno vrijeme", "CST": "Sjevernoameričko centralno standardno vrijeme", "UYT": "Urugvajsko standardno vrijeme", "ACWST": "Australijsko centralnozapadno standardno vrijeme", "HEOG": "Zapadnogrenlandsko ljetno vrijeme", "AWST": "Zapadnoaustralijsko standardno vrijeme", "IST": "Indijsko standardno vrijeme", "ACST": "Centralnoaustralijsko standardno vrijeme", "MDT": "Makao letnje računanje vremena", "OESZ": "Istočnoevropsko ljetno vrijeme", "AST": "Sjevernoameričko atlantsko standardno vrijeme", "SRT": "Surinamsko vrijeme", "PST": "Sjevernoameričko pacifičko standardno vrijeme", "AWDT": "Zapadnoaustralijsko ljetno vrijeme", "HEPM": "Ljetno vrijeme na Ostrvima Sen Pjer i Mikelon", "MESZ": "Centralnoevropsko ljetno vrijeme", "SAST": "Južnoafričko standardno vrijeme", "EST": "Sjevernoameričko istočno standardno vrijeme", "WART": "Zapadnoargentinsko standardno vrijeme", "WARST": "Zapadnoargentinsko ljetno vrijeme", "ChST": "Čamorsko standardno vrijeme", "HKST": "Hongkonško ljetno vrijeme", "MEZ": "Centralnoevropsko standardno vrijeme", "HKT": "Hongkonško standardno vrijeme", "WIB": "Zapadnoindonezijsko vrijeme", "ARST": "Argentinsko ljetno vrijeme", "HNPM": "Standardno vrijeme na Ostrvima Sen Pjer i Mikelon", "LHDT": "Ljetno vrijeme na Ostrvu Lord Hau", "NZDT": "Novozelandsko ljetno vrijeme", "WAST": "Zapadnoafričko ljetno vrijeme", "HNNOMX": "Sjeverozapadno meksičko standardno vrijeme", "MST": "Makao standardno vreme", "HECU": "Kubansko ljetno vrijeme", "CDT": "Sjevernoameričko centralno ljetno vrijeme", "HAST": "Havajsko-aleućansko standardno vrijeme", "PDT": "Sjevernoameričko pacifičko ljetno vrijeme", "HENOMX": "Sjeverozapadno meksičko ljetno vrijeme", "EDT": "Sjevernoameričko istočno ljetno vrijeme", "HNOG": "Zapadnogrenlandsko standardno vrijeme", "WITA": "Centralnoindonezijsko vrijeme", "HNEG": "Istočnogrenlandsko standardno vrijeme", "HEEG": "Istočnogrenlandsko ljetno vrijeme", "WIT": "Istočnoindonezijsko vrijeme", "UYST": "Urugvajsko ljetno vrijeme", "BT": "Butansko vrijeme", "AEST": "Istočnoaustralijsko standardno vrijeme", "CAT": "Centralnoafričko vrijeme", "HNCU": "Kubansko standardno vrijeme", "AKST": "Aljaskansko standardno vrijeme"},
++ locale: "bs_Latn",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"LHDT": "LHDT", "HNPMX": "HNPMX", "WESZ": "WESZ", "WAST": "WAST", "HAT": "HAT", "ECT": "ECT", "HAST": "HAST", "CHADT": "CHADT", "GFT": "GFT", "HNT": "HNT", "GYT": "GYT", "NZDT": "NZDT", "WAT": "WAT", "MESZ": "MESZ", "IST": "IST", "PST": "PST", "HECU": "HECU", "SAST": "SAST", "ChST": "ChST", "SRT": "SRT", "ACWST": "ACWST", "AEST": "AEST", "CHAST": "CHAST", "WEZ": "WEZ", "COST": "COST", "∅∅∅": "∅∅∅", "HADT": "HADT", "GMT": "GMT", "BT": "BT", "UYT": "UYT", "PDT": "PDT", "VET": "VET", "WARST": "WARST", "CAT": "CAT", "CDT": "CDT", "OESZ": "OESZ", "HNOG": "HNOG", "AEDT": "AEDT", "SGT": "SGT", "BOT": "BOT", "JST": "JST", "UYST": "UYST", "HNCU": "HNCU", "WITA": "WITA", "CST": "CST", "AWDT": "AWDT", "HEPMX": "HEPMX", "HEPM": "HEPM", "CLT": "CLT", "ARST": "ARST", "HKT": "HKT", "HKST": "HKST", "MST": "MST", "ART": "ART", "HNEG": "HNEG", "WIT": "WIT", "TMST": "TMST", "NZST": "NZST", "MDT": "MDT", "AST": "AST", "MEZ": "MEZ", "ACDT": "ACDT", "HNPM": "HNPM", "AKDT": "AKDT", "CLST": "CLST", "WIB": "WIB", "COT": "COT", "EAT": "EAT", "AKST": "AKST", "TMT": "TMT", "ADT": "ADT", "WART": "WART", "HEEG": "HEEG", "ACST": "ACST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "MYT": "MYT", "JDT": "JDT", "AWST": "AWST", "LHST": "LHST", "EST": "EST", "EDT": "EDT", "HEOG": "HEOG", "ACWDT": "ACWDT", "OEZ": "OEZ"},
+ }
+ }
+ 
+@@ -103,8 +78,8 @@ func (bs *bs_Latn) CardinalPluralRule(num float64, v uint64) locales.PluralRule
+ n := math.Abs(num)
+ i := int64(n)
+ f := locales.F(n, v)
+- iMod100 := i % 100
+ iMod10 := i % 10
++ iMod100 := i % 100
+ fMod10 := f % 10
+ fMod100 := f % 100
+ 
+@@ -157,7 +132,7 @@ func (bs *bs_Latn) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (bs *bs_Latn) MonthsAbbreviated() []string {
+- return bs.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -167,7 +142,7 @@ func (bs *bs_Latn) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (bs *bs_Latn) MonthsNarrow() []string {
+- return bs.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -177,7 +152,7 @@ func (bs *bs_Latn) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (bs *bs_Latn) MonthsWide() []string {
+- return bs.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -223,75 +198,13 @@ func (bs *bs_Latn) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'bs_Latn' and handles both Whole and Real numbers based on 'v'
+ func (bs *bs_Latn) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bs.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bs.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bs.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'bs_Latn' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (bs *bs_Latn) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bs.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bs.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, bs.percentSuffix...)
+-
+- b = append(b, bs.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'bs_Latn'
+@@ -299,56 +212,7 @@ func (bs *bs_Latn) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bs.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bs.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bs.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bs.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bs.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, bs.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'bs_Latn'
+@@ -357,63 +221,7 @@ func (bs *bs_Latn) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bs.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bs.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bs.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, bs.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bs.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, bs.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, bs.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'bs_Latn'
+@@ -421,19 +229,6 @@ func (bs *bs_Latn) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -442,19 +237,6 @@ func (bs *bs_Latn) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, bs.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -463,19 +245,6 @@ func (bs *bs_Latn) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, bs.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -484,21 +253,6 @@ func (bs *bs_Latn) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, bs.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, bs.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -507,19 +261,6 @@ func (bs *bs_Latn) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -528,26 +269,6 @@ func (bs *bs_Latn) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -556,30 +277,6 @@ func (bs *bs_Latn) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -588,34 +285,5 @@ func (bs *bs_Latn) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := bs.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/bs_Latn_BA/bs_Latn_BA.go b/bs_Latn_BA/bs_Latn_BA.go
+index 0f64741..7c18b6a 100644
+--- a/bs_Latn_BA/bs_Latn_BA.go
++++ b/bs_Latn_BA/bs_Latn_BA.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type bs_Latn_BA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'bs_Latn_BA' locale
+ func New() locales.Translator {
+ return &bs_Latn_BA{
+- locale: "bs_Latn_BA",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan", "feb", "mar", "apr", "maj", "jun", "jul", "avg", "sep", "okt", "nov", "dec"},
+- monthsNarrow: []string{"", "j", "f", "m", "a", "m", "j", "j", "a", "s", "o", "n", "d"},
+- monthsWide: []string{"", "januar", "februar", "mart", "april", "maj", "juni", "juli", "avgust", "septembar", "oktobar", "novembar", "decembar"},
+- daysAbbreviated: []string{"ned", "pon", "uto", "sri", "čet", "pet", "sub"},
+- daysNarrow: []string{"N", "P", "U", "S", "Č", "P", "S"},
+- daysShort: []string{"ned", "pon", "uto", "sri", "čet", "pet", "sub"},
+- daysWide: []string{"nedjelja", "ponedjeljak", "utorak", "srijeda", "četvrtak", "petak", "subota"},
+- periodsAbbreviated: []string{"prijepodne", "popodne"},
+- periodsNarrow: []string{"prijepodne", "popodne"},
+- periodsWide: []string{"prijepodne", "popodne"},
+- erasAbbreviated: []string{"p. n. e.", "n. e."},
+- erasNarrow: []string{"pr.n.e.", "AD"},
+- erasWide: []string{"prije nove ere", "nove ere"},
+- timezones: map[string]string{"AKDT": "Aljaskansko ljetno vrijeme", "MEZ": "Centralnoevropsko standardno vrijeme", "CHAST": "Čatamsko standardno vrijeme", "UYST": "Urugvajsko ljetno vrijeme", "CHADT": "Čatamsko ljetno vrijeme", "HAST": "Havajsko-aleućansko standardno vrijeme", "CLT": "Čileansko standardno vrijeme", "JST": "Japansko standardno vrijeme", "GFT": "Francuskogvajansko vrijeme", "OEZ": "Istočnoevropsko standardno vrijeme", "SAST": "Južnoafričko standardno vrijeme", "HNEG": "Istočnogrenlandsko standardno vrijeme", "OESZ": "Istočnoevropsko ljetno vrijeme", "MESZ": "Centralnoevropsko ljetno vrijeme", "CDT": "Sjevernoameričko centralno ljetno vrijeme", "PDT": "Sjevernoameričko pacifičko ljetno vrijeme", "ACWST": "Australijsko centralnozapadno standardno vrijeme", "HNOG": "Zapadnogrenlandsko standardno vrijeme", "HKST": "Hongkonško ljetno vrijeme", "BOT": "Bolivijsko vrijeme", "ACDT": "Centralnoaustralijsko ljetno vrijeme", "UYT": "Urugvajsko standardno vrijeme", "EAT": "Istočnoafričko vrijeme", "ADT": "Sjevernoameričko atlantsko ljetno vrijeme", "AEST": "Istočnoaustralijsko standardno vrijeme", "AWDT": "Zapadnoaustralijsko ljetno vrijeme", "HNPM": "Standardno vrijeme na Ostrvima Sen Pjer i Mikelon", "NZST": "Novozelandsko standardno vrijeme", "HECU": "Kubansko ljetno vrijeme", "GMT": "Griničko vrijeme", "WIB": "Zapadnoindonezijsko vrijeme", "PST": "Sjevernoameričko pacifičko standardno vrijeme", "WEZ": "Zapadnoevropsko standardno vrijeme", "NZDT": "Novozelandsko ljetno vrijeme", "ACST": "Centralnoaustralijsko standardno vrijeme", "HENOMX": "Sjeverozapadno meksičko ljetno vrijeme", "HEPM": "Ljetno vrijeme na Ostrvima Sen Pjer i Mikelon", "IST": "Indijsko standardno vrijeme", "TMST": "Turkmenistansko ljetno vrijeme", "HNT": "Njufaundlendsko standardno vrijeme", "AST": "Sjevernoameričko atlantsko standardno vrijeme", "HADT": "Havajsko-aleućansko ljetno vrijeme", "WESZ": "Zapadnoevropsko ljetno vrijeme", "WAT": "Zapadnoafričko standardno vrijeme", "HNPMX": "Meksičko pacifičko standardno vrijeme", "HNCU": "Kubansko standardno vrijeme", "∅∅∅": "Brazilijsko ljetno vrijeme", "HEPMX": "Meksičko pacifičko ljetno vrijeme", "AKST": "Aljaskansko standardno vrijeme", "WITA": "Centralnoindonezijsko vrijeme", "COST": "Kolumbijsko ljetno vrijeme", "HNNOMX": "Sjeverozapadno meksičko standardno vrijeme", "EST": "Sjevernoameričko istočno standardno vrijeme", "MDT": "Makao letnje računanje vremena", "CST": "Sjevernoameričko centralno standardno vrijeme", "VET": "Venecuelansko vrijeme", "LHDT": "Ljetno vrijeme na Ostrvu Lord Hau", "WART": "Zapadnoargentinsko standardno vrijeme", "HEOG": "Zapadnogrenlandsko ljetno vrijeme", "AEDT": "Istočnoaustralijsko ljetno vrijeme", "TMT": "Turkmenistansko standardno vrijeme", "SGT": "Singapursko standardno vrijeme", "EDT": "Sjevernoameričko istočno ljetno vrijeme", "BT": "Butansko vrijeme", "JDT": "Japansko ljetno vrijeme", "WAST": "Zapadnoafričko ljetno vrijeme", "COT": "Kolumbijsko standardno vrijeme", "GYT": "Gvajansko vrijeme", "MYT": "Malezijsko vrijeme", "AWST": "Zapadnoaustralijsko standardno vrijeme", "MST": "Makao standardno vreme", "ACWDT": "Australijsko centralnozapadno ljetno vrijeme", "HAT": "Njufaundlendsko ljetno vrijeme", "ARST": "Argentinsko ljetno vrijeme", "HKT": "Hongkonško standardno vrijeme", "LHST": "Standardno vrijeme na Ostrvu Lord Hau", "CLST": "Čileansko ljetno vrijeme", "CAT": "Centralnoafričko vrijeme", "WIT": "Istočnoindonezijsko vrijeme", "ECT": "Ekvadorsko vrijeme", "SRT": "Surinamsko vrijeme", "ART": "Argentinsko standardno vrijeme", "ChST": "Čamorsko standardno vrijeme", "HEEG": "Istočnogrenlandsko ljetno vrijeme", "WARST": "Zapadnoargentinsko ljetno vrijeme"},
++ locale: "bs_Latn_BA",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"JDT": "JDT", "CHAST": "CHAST", "VET": "VET", "HNPMX": "HNPMX", "COST": "COST", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "JST": "JST", "ARST": "ARST", "HNEG": "HNEG", "PDT": "PDT", "AST": "AST", "HNPM": "HNPM", "SAST": "SAST", "∅∅∅": "∅∅∅", "MST": "MST", "NZST": "NZST", "GMT": "GMT", "BOT": "BOT", "CHADT": "CHADT", "AEDT": "AEDT", "CLST": "CLST", "CST": "CST", "NZDT": "NZDT", "ECT": "ECT", "WEZ": "WEZ", "SRT": "SRT", "HEPM": "HEPM", "UYT": "UYT", "WAST": "WAST", "WART": "WART", "HEOG": "HEOG", "CAT": "CAT", "ADT": "ADT", "ACWST": "ACWST", "HECU": "HECU", "HKST": "HKST", "MDT": "MDT", "LHST": "LHST", "MYT": "MYT", "HADT": "HADT", "AKST": "AKST", "OEZ": "OEZ", "TMST": "TMST", "WITA": "WITA", "HAST": "HAST", "ART": "ART", "AWST": "AWST", "BT": "BT", "GFT": "GFT", "WIT": "WIT", "COT": "COT", "WIB": "WIB", "ACST": "ACST", "HEEG": "HEEG", "PST": "PST", "AKDT": "AKDT", "HNT": "HNT", "HKT": "HKT", "CLT": "CLT", "MEZ": "MEZ", "HENOMX": "HENOMX", "AEST": "AEST", "WESZ": "WESZ", "HNCU": "HNCU", "OESZ": "OESZ", "GYT": "GYT", "HNOG": "HNOG", "TMT": "TMT", "EDT": "EDT", "AWDT": "AWDT", "SGT": "SGT", "HAT": "HAT", "EST": "EST", "EAT": "EAT", "MESZ": "MESZ", "WARST": "WARST", "ChST": "ChST", "ACWDT": "ACWDT", "HEPMX": "HEPMX", "CDT": "CDT", "IST": "IST", "WAT": "WAT", "LHDT": "LHDT", "UYST": "UYST"},
+ }
+ }
+ 
+@@ -157,7 +132,7 @@ func (bs *bs_Latn_BA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (bs *bs_Latn_BA) MonthsAbbreviated() []string {
+- return bs.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -167,7 +142,7 @@ func (bs *bs_Latn_BA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (bs *bs_Latn_BA) MonthsNarrow() []string {
+- return bs.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -177,7 +152,7 @@ func (bs *bs_Latn_BA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (bs *bs_Latn_BA) MonthsWide() []string {
+- return bs.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -223,75 +198,13 @@ func (bs *bs_Latn_BA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'bs_Latn_BA' and handles both Whole and Real numbers based on 'v'
+ func (bs *bs_Latn_BA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bs.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bs.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bs.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'bs_Latn_BA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (bs *bs_Latn_BA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bs.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bs.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, bs.percentSuffix...)
+-
+- b = append(b, bs.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'bs_Latn_BA'
+@@ -299,56 +212,7 @@ func (bs *bs_Latn_BA) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bs.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bs.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bs.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, bs.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bs.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, bs.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'bs_Latn_BA'
+@@ -357,63 +221,7 @@ func (bs *bs_Latn_BA) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := bs.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, bs.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, bs.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, bs.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, bs.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, bs.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, bs.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'bs_Latn_BA'
+@@ -421,19 +229,6 @@ func (bs *bs_Latn_BA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -442,19 +237,6 @@ func (bs *bs_Latn_BA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, bs.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -463,19 +245,6 @@ func (bs *bs_Latn_BA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, bs.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -484,21 +253,6 @@ func (bs *bs_Latn_BA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, bs.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, bs.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -507,19 +261,6 @@ func (bs *bs_Latn_BA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -528,26 +269,6 @@ func (bs *bs_Latn_BA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -556,30 +277,6 @@ func (bs *bs_Latn_BA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -588,34 +285,5 @@ func (bs *bs_Latn_BA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, bs.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := bs.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ca/ca.go b/ca/ca.go
+index 2d888f7..c3cd869 100644
+--- a/ca/ca.go
++++ b/ca/ca.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"aC", "dC"},
+ erasNarrow: []string{"aC", "dC"},
+ erasWide: []string{"abans de Crist", "després de Crist"},
+- timezones: map[string]string{"WIT": "Hora de l’est d’Indonèsia", "WESZ": "Hora d’estiu de l’Oest d’Europa", "CHADT": "Hora d’estiu de Chatham", "CLST": "Hora d’estiu de Xile", "ChST": "Hora de Chamorro", "ACST": "Hora estàndard d’Austràlia Central", "AWDT": "Hora d’estiu d’Austràlia Occidental", "IST": "Hora estàndard de l’Índia", "GFT": "Hora de la Guaiana Francesa", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "PDT": "Hora d’estiu del Pacífic", "PST": "Hora estàndard del Pacífic", "AEST": "Hora estàndard d’Austràlia Oriental", "TMT": "Hora estàndard del Turkmenistan", "OESZ": "Hora d’estiu de l’Est d’Europa", "AKDT": "Hora d’estiu d’Alaska", "WIB": "Hora de l’oest d’Indonèsia", "HAST": "Hora estàndard de Hawaii-Aleutianes", "ARST": "Hora d’estiu de l’Argentina", "JDT": "Hora d’estiu del Japó", "CLT": "Hora estàndard de Xile", "WART": "Hora estàndard de l’oest de l’Argentina", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "WEZ": "Hora estàndard de l’Oest d’Europa", "HAT": "Hora d’estiu de Terranova", "∅∅∅": "Hora d’estiu de l’Amazones", "BOT": "Hora de Bolívia", "ACDT": "Hora d’estiu d’Austràlia Central", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "SGT": "Hora de Singapur", "MYT": "Hora de Malàisia", "AKST": "Hora estàndard d’Alaska", "AEDT": "Hora d’estiu d’Austràlia Oriental", "AWST": "Hora estàndard d’Austràlia Occidental", "MESZ": "Hora d’estiu del Centre d’Europa", "SAST": "Hora estàndard del sud de l’Àfrica", "WAST": "Hora d’estiu de l’Àfrica Occidental", "SRT": "Hora de Surinam", "HKT": "Hora estàndard de Hong Kong", "LHST": "Hora estàndard de Lord Howe", "NZDT": "Hora d’estiu de Nova Zelanda", "EAT": "Hora de l’Àfrica Oriental", "AST": "Hora estàndard de l’Atlàntic", "UYST": "Hora d’estiu de l’Uruguai", "VET": "Hora de Veneçuela", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "HNCU": "Hora estàndard de Cuba", "HKST": "Hora d’estiu de Hong Kong", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "TMST": "Hora d’estiu del Turkmenistan", "OEZ": "Hora estàndard de l’Est d’Europa", "COT": "Hora estàndard de Colòmbia", "EST": "Hora estàndard oriental d’Amèrica del Nord", "ADT": "Hora d’estiu de l’Atlàntic", "ART": "Hora estàndard de l’Argentina", "HNT": "Hora estàndard de Terranova", "WITA": "Hora central d’Indonèsia", "LHDT": "Horari d’estiu de Lord Howe", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "WAT": "Hora estàndard de l’Àfrica Occidental", "GYT": "Hora de Guyana", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "MEZ": "Hora estàndard del Centre d’Europa", "GMT": "Hora del Meridià de Greenwich", "CST": "Hora estàndard central d’Amèrica del Nord", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "NZST": "Hora estàndard de Nova Zelanda", "CHAST": "Hora estàndard de Chatham", "WARST": "Hora d’estiu de l’oest de l’Argentina", "MST": "Hora estàndard de Macau", "UYT": "Hora estàndard de l’Uruguai", "CDT": "Hora d’estiu central d’Amèrica del Nord", "JST": "Hora estàndard del Japó", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "BT": "Hora de Bhutan", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "ECT": "Hora de l’Equador", "CAT": "Hora de l’Àfrica Central", "COST": "Hora d’estiu de Colòmbia", "HECU": "Hora d’estiu de Cuba", "MDT": "Hora d’estiu de Macau", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon"},
++ timezones: map[string]string{"CST": "Hora estàndard central d’Amèrica del Nord", "EAT": "Hora de l’Àfrica Oriental", "WAST": "Hora d’estiu de l’Àfrica Occidental", "WARST": "Hora d’estiu de l’oest de l’Argentina", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "WIB": "Hora de l’oest d’Indonèsia", "CHAST": "Hora estàndard de Chatham", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "TMT": "Hora estàndard del Turkmenistan", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "HNT": "Hora estàndard de Terranova", "HAT": "Hora d’estiu de Terranova", "AST": "Hora estàndard de l’Atlàntic", "ARST": "Hora d’estiu de l’Argentina", "ACST": "Hora estàndard d’Austràlia Central", "JDT": "Hora d’estiu del Japó", "HNCU": "Hora estàndard de Cuba", "COST": "Hora d’estiu de Colòmbia", "MESZ": "Hora d’estiu del Centre d’Europa", "UYST": "Hora d’estiu de l’Uruguai", "LHST": "Hora estàndard de Lord Howe", "PDT": "Hora d’estiu del Pacífic", "HKT": "Hora estàndard de Hong Kong", "CAT": "Hora de l’Àfrica Central", "ECT": "Hora de l’Equador", "ChST": "Hora de Chamorro", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "AWST": "Hora estàndard d’Austràlia Occidental", "TMST": "Hora d’estiu del Turkmenistan", "ADT": "Hora d’estiu de l’Atlàntic", "VET": "Hora de Veneçuela", "WAT": "Hora estàndard de l’Àfrica Occidental", "COT": "Hora estàndard de Colòmbia", "GYT": "Hora de Guyana", "CLST": "Hora d’estiu de Xile", "MST": "Hora estàndard de Macau", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "AKDT": "Hora d’estiu d’Alaska", "GFT": "Hora de la Guaiana Francesa", "CLT": "Hora estàndard de Xile", "MDT": "Hora d’estiu de Macau", "ART": "Hora estàndard de l’Argentina", "AWDT": "Hora d’estiu d’Austràlia Occidental", "IST": "Hora estàndard de l’Índia", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "EST": "Hora estàndard oriental d’Amèrica del Nord", "BOT": "Hora de Bolívia", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "LHDT": "Horari d’estiu de Lord Howe", "MYT": "Hora de Malàisia", "JST": "Hora estàndard del Japó", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "ACDT": "Hora d’estiu d’Austràlia Central", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "WEZ": "Hora estàndard de l’Oest d’Europa", "CDT": "Hora d’estiu central d’Amèrica del Nord", "SRT": "Hora de Surinam", "OEZ": "Hora estàndard de l’Est d’Europa", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "WITA": "Hora central d’Indonèsia", "GMT": "Hora del Meridià de Greenwich", "WIT": "Hora de l’est d’Indonèsia", "HKST": "Hora d’estiu de Hong Kong", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "AEST": "Hora estàndard d’Austràlia Oriental", "HAST": "Hora estàndard de Hawaii-Aleutianes", "MEZ": "Hora estàndard del Centre d’Europa", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "PST": "Hora estàndard del Pacífic", "NZST": "Hora estàndard de Nova Zelanda", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon", "HECU": "Hora d’estiu de Cuba", "∅∅∅": "Hora d’estiu de les Açores", "UYT": "Hora estàndard de l’Uruguai", "AEDT": "Hora d’estiu d’Austràlia Oriental", "AKST": "Hora estàndard d’Alaska", "WART": "Hora estàndard de l’oest de l’Argentina", "OESZ": "Hora d’estiu de l’Est d’Europa", "SAST": "Hora estàndard del sud de l’Àfrica", "NZDT": "Hora d’estiu de Nova Zelanda", "CHADT": "Hora d’estiu de Chatham", "BT": "Hora de Bhutan", "WESZ": "Hora d’estiu de l’Oest d’Europa", "SGT": "Hora de Singapur"},
+ }
+ }
+ 
+diff --git a/ca_AD/ca_AD.go b/ca_AD/ca_AD.go
+index c561a2e..00c10c4 100644
+--- a/ca_AD/ca_AD.go
++++ b/ca_AD/ca_AD.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ca_AD struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ca_AD' locale
+ func New() locales.Translator {
+ return &ca_AD{
+- locale: "ca_AD",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "de gen.", "de febr.", "de març", "d’abr.", "de maig", "de juny", "de jul.", "d’ag.", "de set.", "d’oct.", "de nov.", "de des."},
+- monthsNarrow: []string{"", "GN", "FB", "MÇ", "AB", "MG", "JN", "JL", "AG", "ST", "OC", "NV", "DS"},
+- monthsWide: []string{"", "de gener", "de febrer", "de març", "d’abril", "de maig", "de juny", "de juliol", "d’agost", "de setembre", "d’octubre", "de novembre", "de desembre"},
+- daysAbbreviated: []string{"dg.", "dl.", "dt.", "dc.", "dj.", "dv.", "ds."},
+- daysNarrow: []string{"dg", "dl", "dt", "dc", "dj", "dv", "ds"},
+- daysShort: []string{"dg.", "dl.", "dt.", "dc.", "dj.", "dv.", "ds."},
+- daysWide: []string{"diumenge", "dilluns", "dimarts", "dimecres", "dijous", "divendres", "dissabte"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"aC", "dC"},
+- erasNarrow: []string{"aC", "dC"},
+- erasWide: []string{"abans de Crist", "després de Crist"},
+- timezones: map[string]string{"AST": "Hora estàndard de l’Atlàntic", "CHADT": "Hora d’estiu de Chatham", "CLST": "Hora d’estiu de Xile", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "SRT": "Hora de Surinam", "PDT": "Hora d’estiu del Pacífic", "ART": "Hora estàndard de l’Argentina", "HKST": "Hora d’estiu de Hong Kong", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "GMT": "Hora del Meridià de Greenwich", "WIT": "Hora de l’est d’Indonèsia", "MEZ": "Hora estàndard del Centre d’Europa", "EAT": "Hora de l’Àfrica Oriental", "LHDT": "Horari d’estiu de Lord Howe", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "WAST": "Hora d’estiu de l’Àfrica Occidental", "HNCU": "Hora estàndard de Cuba", "UYT": "Hora estàndard de l’Uruguai", "AKDT": "Hora d’estiu d’Alaska", "CST": "Hora estàndard central d’Amèrica del Nord", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "TMST": "Hora d’estiu del Turkmenistan", "SGT": "Hora de Singapur", "GYT": "Hora de Guyana", "AEDT": "Hora d’estiu d’Austràlia Oriental", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon", "IST": "Hora estàndard de l’Índia", "COT": "Hora estàndard de Colòmbia", "EST": "Hora estàndard oriental d’Amèrica del Nord", "AKST": "Hora estàndard d’Alaska", "CLT": "Hora estàndard de Xile", "OESZ": "Hora d’estiu de l’Est d’Europa", "WARST": "Hora d’estiu de l’oest de l’Argentina", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "HNT": "Hora estàndard de Terranova", "MESZ": "Hora d’estiu del Centre d’Europa", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "MYT": "Hora de Malàisia", "VET": "Hora de Veneçuela", "PST": "Hora estàndard del Pacífic", "NZDT": "Hora d’estiu de Nova Zelanda", "WIB": "Hora de l’oest d’Indonèsia", "AWDT": "Hora d’estiu d’Austràlia Occidental", "CHAST": "Hora estàndard de Chatham", "GFT": "Hora de la Guaiana Francesa", "TMT": "Hora estàndard del Turkmenistan", "JST": "Hora estàndard del Japó", "ACST": "Hora estàndard d’Austràlia Central", "WAT": "Hora estàndard de l’Àfrica Occidental", "WART": "Hora estàndard de l’oest de l’Argentina", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "HECU": "Hora d’estiu de Cuba", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "AEST": "Hora estàndard d’Austràlia Oriental", "UYST": "Hora d’estiu de l’Uruguai", "CDT": "Hora d’estiu central d’Amèrica del Nord", "LHST": "Hora estàndard de Lord Howe", "NZST": "Hora estàndard de Nova Zelanda", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "SAST": "Hora estàndard del sud de l’Àfrica", "MST": "Hora estàndard de Macau", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "WESZ": "Hora d’estiu de l’Oest d’Europa", "ARST": "Hora d’estiu de l’Argentina", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "ACDT": "Hora d’estiu d’Austràlia Central", "CAT": "Hora de l’Àfrica Central", "OEZ": "Hora estàndard de l’Est d’Europa", "COST": "Hora d’estiu de Colòmbia", "WEZ": "Hora estàndard de l’Oest d’Europa", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "HKT": "Hora estàndard de Hong Kong", "WITA": "Hora central d’Indonèsia", "∅∅∅": "∅∅∅", "MDT": "Hora d’estiu de Macau", "HAT": "Hora d’estiu de Terranova", "BOT": "Hora de Bolívia", "ECT": "Hora de l’Equador", "ChST": "Hora de Chamorro", "ADT": "Hora d’estiu de l’Atlàntic", "HAST": "Hora estàndard de Hawaii-Aleutianes", "BT": "Hora de Bhutan", "AWST": "Hora estàndard d’Austràlia Occidental", "JDT": "Hora d’estiu del Japó"},
++ locale: "ca_AD",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ADT": "ADT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "ACDT": "ACDT", "HEPM": "HEPM", "HNOG": "HNOG", "HKT": "HKT", "HEPMX": "HEPMX", "OEZ": "OEZ", "HKST": "HKST", "MEZ": "MEZ", "MESZ": "MESZ", "AWDT": "AWDT", "CHADT": "CHADT", "HNPMX": "HNPMX", "WEZ": "WEZ", "WIT": "WIT", "ChST": "ChST", "ACWDT": "ACWDT", "IST": "IST", "TMT": "TMT", "NZDT": "NZDT", "AEDT": "AEDT", "GYT": "GYT", "EST": "EST", "MDT": "MDT", "ART": "ART", "HNCU": "HNCU", "WESZ": "WESZ", "AKST": "AKST", "SAST": "SAST", "CDT": "CDT", "GMT": "GMT", "AEST": "AEST", "VET": "VET", "JST": "JST", "AWST": "AWST", "EDT": "EDT", "HAST": "HAST", "CST": "CST", "SRT": "SRT", "ACST": "ACST", "MYT": "MYT", "SGT": "SGT", "WAT": "WAT", "TMST": "TMST", "ECT": "ECT", "BOT": "BOT", "HADT": "HADT", "ACWST": "ACWST", "PDT": "PDT", "GFT": "GFT", "HAT": "HAT", "WART": "WART", "CAT": "CAT", "HNPM": "HNPM", "LHDT": "LHDT", "BT": "BT", "HECU": "HECU", "EAT": "EAT", "WAST": "WAST", "WITA": "WITA", "MST": "MST", "HEEG": "HEEG", "JDT": "JDT", "OESZ": "OESZ", "WIB": "WIB", "CLST": "CLST", "NZST": "NZST", "CHAST": "CHAST", "COST": "COST", "CLT": "CLT", "HNT": "HNT", "WARST": "WARST", "PST": "PST", "AKDT": "AKDT", "COT": "COT", "HEOG": "HEOG", "ARST": "ARST", "LHST": "LHST", "UYST": "UYST", "∅∅∅": "∅∅∅", "HENOMX": "HENOMX", "UYT": "UYT", "AST": "AST"},
+ }
+ }
+ 
+@@ -138,7 +113,7 @@ func (ca *ca_AD) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ca *ca_AD) MonthsAbbreviated() []string {
+- return ca.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +123,7 @@ func (ca *ca_AD) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ca *ca_AD) MonthsNarrow() []string {
+- return ca.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +133,7 @@ func (ca *ca_AD) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ca *ca_AD) MonthsWide() []string {
+- return ca.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +179,13 @@ func (ca *ca_AD) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ca_AD' and handles both Whole and Real numbers based on 'v'
+ func (ca *ca_AD) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ca.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ca.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ca_AD' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ca *ca_AD) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ca.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ca.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ca_AD'
+@@ -278,56 +193,7 @@ func (ca *ca_AD) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ca.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ca.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ca.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ca.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ca.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ca_AD'
+@@ -336,63 +202,7 @@ func (ca *ca_AD) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ca.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ca.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ca.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ca.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ca.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ca.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ca_AD'
+@@ -400,17 +210,6 @@ func (ca *ca_AD) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -419,17 +218,6 @@ func (ca *ca_AD) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ca.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -438,18 +226,6 @@ func (ca *ca_AD) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ca.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -458,20 +234,6 @@ func (ca *ca_AD) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ca.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ca.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -480,15 +242,6 @@ func (ca *ca_AD) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -497,22 +250,6 @@ func (ca *ca_AD) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,26 +258,6 @@ func (ca *ca_AD) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -549,30 +266,5 @@ func (ca *ca_AD) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ca.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ca_ES/ca_ES.go b/ca_ES/ca_ES.go
+index 8e709c3..ae900cf 100644
+--- a/ca_ES/ca_ES.go
++++ b/ca_ES/ca_ES.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ca_ES struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ca_ES' locale
+ func New() locales.Translator {
+ return &ca_ES{
+- locale: "ca_ES",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "de gen.", "de febr.", "de març", "d’abr.", "de maig", "de juny", "de jul.", "d’ag.", "de set.", "d’oct.", "de nov.", "de des."},
+- monthsNarrow: []string{"", "GN", "FB", "MÇ", "AB", "MG", "JN", "JL", "AG", "ST", "OC", "NV", "DS"},
+- monthsWide: []string{"", "de gener", "de febrer", "de març", "d’abril", "de maig", "de juny", "de juliol", "d’agost", "de setembre", "d’octubre", "de novembre", "de desembre"},
+- daysAbbreviated: []string{"dg.", "dl.", "dt.", "dc.", "dj.", "dv.", "ds."},
+- daysNarrow: []string{"dg", "dl", "dt", "dc", "dj", "dv", "ds"},
+- daysShort: []string{"dg.", "dl.", "dt.", "dc.", "dj.", "dv.", "ds."},
+- daysWide: []string{"diumenge", "dilluns", "dimarts", "dimecres", "dijous", "divendres", "dissabte"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"aC", "dC"},
+- erasNarrow: []string{"aC", "dC"},
+- erasWide: []string{"abans de Crist", "després de Crist"},
+- timezones: map[string]string{"WITA": "Hora central d’Indonèsia", "CLT": "Hora estàndard de Xile", "MYT": "Hora de Malàisia", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "AWDT": "Hora d’estiu d’Austràlia Occidental", "NZDT": "Hora d’estiu de Nova Zelanda", "TMST": "Hora d’estiu del Turkmenistan", "ECT": "Hora de l’Equador", "AKST": "Hora estàndard d’Alaska", "HNT": "Hora estàndard de Terranova", "ACDT": "Hora d’estiu d’Austràlia Central", "WARST": "Hora d’estiu de l’oest de l’Argentina", "COT": "Hora estàndard de Colòmbia", "HNCU": "Hora estàndard de Cuba", "MDT": "Hora d’estiu de Macau", "HECU": "Hora d’estiu de Cuba", "AEDT": "Hora d’estiu d’Austràlia Oriental", "LHDT": "Horari d’estiu de Lord Howe", "SAST": "Hora estàndard del sud de l’Àfrica", "JST": "Hora estàndard del Japó", "WART": "Hora estàndard de l’oest de l’Argentina", "COST": "Hora d’estiu de Colòmbia", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "AST": "Hora estàndard de l’Atlàntic", "GYT": "Hora de Guyana", "HKT": "Hora estàndard de Hong Kong", "HKST": "Hora d’estiu de Hong Kong", "MEZ": "Hora estàndard del Centre d’Europa", "NZST": "Hora estàndard de Nova Zelanda", "CLST": "Hora d’estiu de Xile", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "EAT": "Hora de l’Àfrica Oriental", "GMT": "Hora del Meridià de Greenwich", "SGT": "Hora de Singapur", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "WESZ": "Hora d’estiu de l’Oest d’Europa", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "WAST": "Hora d’estiu de l’Àfrica Occidental", "AKDT": "Hora d’estiu d’Alaska", "PST": "Hora estàndard del Pacífic", "ART": "Hora estàndard de l’Argentina", "CHAST": "Hora estàndard de Chatham", "UYT": "Hora estàndard de l’Uruguai", "ADT": "Hora d’estiu de l’Atlàntic", "WIT": "Hora de l’est d’Indonèsia", "BT": "Hora de Bhutan", "BOT": "Hora de Bolívia", "WAT": "Hora estàndard de l’Àfrica Occidental", "OESZ": "Hora d’estiu de l’Est d’Europa", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "AEST": "Hora estàndard d’Austràlia Oriental", "∅∅∅": "Hora d’estiu de l’Amazones", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "CAT": "Hora de l’Àfrica Central", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "SRT": "Hora de Surinam", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "ARST": "Hora d’estiu de l’Argentina", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "GFT": "Hora de la Guaiana Francesa", "ACST": "Hora estàndard d’Austràlia Central", "CDT": "Hora d’estiu central d’Amèrica del Nord", "AWST": "Hora estàndard d’Austràlia Occidental", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "IST": "Hora estàndard de l’Índia", "OEZ": "Hora estàndard de l’Est d’Europa", "EST": "Hora estàndard oriental d’Amèrica del Nord", "UYST": "Hora d’estiu de l’Uruguai", "CST": "Hora estàndard central d’Amèrica del Nord", "WEZ": "Hora estàndard de l’Oest d’Europa", "LHST": "Hora estàndard de Lord Howe", "WIB": "Hora de l’oest d’Indonèsia", "VET": "Hora de Veneçuela", "PDT": "Hora d’estiu del Pacífic", "HAT": "Hora d’estiu de Terranova", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "MESZ": "Hora d’estiu del Centre d’Europa", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon", "CHADT": "Hora d’estiu de Chatham", "JDT": "Hora d’estiu del Japó", "ChST": "Hora de Chamorro", "HAST": "Hora estàndard de Hawaii-Aleutianes", "TMT": "Hora estàndard del Turkmenistan", "MST": "Hora estàndard de Macau"},
++ locale: "ca_ES",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WITA": "WITA", "ChST": "ChST", "HNOG": "HNOG", "AWDT": "AWDT", "HNCU": "HNCU", "WAT": "WAT", "OEZ": "OEZ", "TMST": "TMST", "WIB": "WIB", "AKDT": "AKDT", "WEZ": "WEZ", "HAT": "HAT", "EAT": "EAT", "HENOMX": "HENOMX", "PST": "PST", "ACWST": "ACWST", "HEPMX": "HEPMX", "∅∅∅": "∅∅∅", "COT": "COT", "EDT": "EDT", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "IST": "IST", "GYT": "GYT", "NZST": "NZST", "HAST": "HAST", "HNEG": "HNEG", "CHAST": "CHAST", "OESZ": "OESZ", "HNT": "HNT", "HECU": "HECU", "HEEG": "HEEG", "MYT": "MYT", "SAST": "SAST", "CDT": "CDT", "MST": "MST", "ECT": "ECT", "AST": "AST", "MEZ": "MEZ", "AEST": "AEST", "CLT": "CLT", "HADT": "HADT", "MESZ": "MESZ", "HNPM": "HNPM", "HNPMX": "HNPMX", "WESZ": "WESZ", "WIT": "WIT", "EST": "EST", "HKST": "HKST", "BOT": "BOT", "UYST": "UYST", "CLST": "CLST", "CST": "CST", "NZDT": "NZDT", "ART": "ART", "JST": "JST", "PDT": "PDT", "JDT": "JDT", "HEPM": "HEPM", "UYT": "UYT", "BT": "BT", "AKST": "AKST", "SRT": "SRT", "LHST": "LHST", "AEDT": "AEDT", "SGT": "SGT", "VET": "VET", "WAST": "WAST", "HEOG": "HEOG", "CAT": "CAT", "MDT": "MDT", "AWST": "AWST", "GFT": "GFT", "WARST": "WARST", "COST": "COST", "GMT": "GMT", "ACST": "ACST", "CHADT": "CHADT", "ACWDT": "ACWDT", "WART": "WART", "HKT": "HKT", "TMT": "TMT", "ADT": "ADT", "ARST": "ARST", "LHDT": "LHDT"},
+ }
+ }
+ 
+@@ -138,7 +113,7 @@ func (ca *ca_ES) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ca *ca_ES) MonthsAbbreviated() []string {
+- return ca.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +123,7 @@ func (ca *ca_ES) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ca *ca_ES) MonthsNarrow() []string {
+- return ca.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +133,7 @@ func (ca *ca_ES) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ca *ca_ES) MonthsWide() []string {
+- return ca.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +179,13 @@ func (ca *ca_ES) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ca_ES' and handles both Whole and Real numbers based on 'v'
+ func (ca *ca_ES) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ca.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ca.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ca_ES' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ca *ca_ES) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ca.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ca.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ca_ES'
+@@ -278,56 +193,7 @@ func (ca *ca_ES) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ca.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ca.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ca.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ca.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ca.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ca_ES'
+@@ -336,63 +202,7 @@ func (ca *ca_ES) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ca.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ca.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ca.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ca.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ca.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ca.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ca_ES'
+@@ -400,17 +210,6 @@ func (ca *ca_ES) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -419,17 +218,6 @@ func (ca *ca_ES) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ca.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -438,18 +226,6 @@ func (ca *ca_ES) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ca.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -458,20 +234,6 @@ func (ca *ca_ES) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ca.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ca.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -480,15 +242,6 @@ func (ca *ca_ES) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -497,22 +250,6 @@ func (ca *ca_ES) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,26 +258,6 @@ func (ca *ca_ES) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -549,30 +266,5 @@ func (ca *ca_ES) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ca.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ca_ES_VALENCIA/ca_ES_VALENCIA.go b/ca_ES_VALENCIA/ca_ES_VALENCIA.go
+index dfcbcac..73de3ef 100644
+--- a/ca_ES_VALENCIA/ca_ES_VALENCIA.go
++++ b/ca_ES_VALENCIA/ca_ES_VALENCIA.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ca_ES_VALENCIA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ca_ES_VALENCIA' locale
+ func New() locales.Translator {
+ return &ca_ES_VALENCIA{
+- locale: "ca_ES_VALENCIA",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "de gen.", "de febr.", "de març", "d’abr.", "de maig", "de juny", "de jul.", "d’ag.", "de set.", "d’oct.", "de nov.", "de des."},
+- monthsNarrow: []string{"", "GN", "FB", "MÇ", "AB", "MG", "JN", "JL", "AG", "ST", "OC", "NV", "DS"},
+- monthsWide: []string{"", "de gener", "de febrer", "de març", "d’abril", "de maig", "de juny", "de juliol", "d’agost", "de setembre", "d’octubre", "de novembre", "de desembre"},
+- daysAbbreviated: []string{"dg.", "dl.", "dt.", "dc.", "dj.", "dv.", "ds."},
+- daysNarrow: []string{"dg", "dl", "dt", "dc", "dj", "dv", "ds"},
+- daysShort: []string{"dg.", "dl.", "dt.", "dc.", "dj.", "dv.", "ds."},
+- daysWide: []string{"diumenge", "dilluns", "dimarts", "dimecres", "dijous", "divendres", "dissabte"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"aC", "dC"},
+- erasNarrow: []string{"aC", "dC"},
+- erasWide: []string{"abans de Crist", "després de Crist"},
+- timezones: map[string]string{"WIT": "Hora de l’est d’Indonèsia", "HECU": "Hora d’estiu de Cuba", "HAST": "Hora estàndard de Hawaii-Aleutianes", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "VET": "Hora de Veneçuela", "IST": "Hora estàndard de l’Índia", "ChST": "Hora de Chamorro", "CAT": "Hora de l’Àfrica Central", "EAT": "Hora de l’Àfrica Oriental", "EST": "Hora estàndard oriental d’Amèrica del Nord", "ARST": "Hora d’estiu de l’Argentina", "AWST": "Hora estàndard d’Austràlia Occidental", "LHDT": "Horari d’estiu de Lord Howe", "OEZ": "Hora estàndard de l’Est d’Europa", "ECT": "Hora de l’Equador", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "AKDT": "Hora d’estiu d’Alaska", "ADT": "Hora d’estiu de l’Atlàntic", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "JDT": "Hora d’estiu del Japó", "GFT": "Hora de la Guaiana Francesa", "CHAST": "Hora estàndard de Chatham", "COT": "Hora estàndard de Colòmbia", "MST": "Hora estàndard de Macau", "MDT": "Hora d’estiu de Macau", "MYT": "Hora de Malàisia", "SRT": "Hora de Surinam", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "WART": "Hora estàndard de l’oest de l’Argentina", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "CST": "Hora estàndard central d’Amèrica del Nord", "JST": "Hora estàndard del Japó", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "WAST": "Hora d’estiu de l’Àfrica Occidental", "OESZ": "Hora d’estiu de l’Est d’Europa", "UYT": "Hora estàndard de l’Uruguai", "GYT": "Hora de Guyana", "WESZ": "Hora d’estiu de l’Oest d’Europa", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "TMST": "Hora d’estiu del Turkmenistan", "TMT": "Hora estàndard del Turkmenistan", "GMT": "Hora del Meridià de Greenwich", "WEZ": "Hora estàndard de l’Oest d’Europa", "MESZ": "Hora d’estiu del Centre d’Europa", "NZST": "Hora estàndard de Nova Zelanda", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "MEZ": "Hora estàndard del Centre d’Europa", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "HNCU": "Hora estàndard de Cuba", "PDT": "Hora d’estiu del Pacífic", "HNT": "Hora estàndard de Terranova", "AEDT": "Hora d’estiu d’Austràlia Oriental", "UYST": "Hora d’estiu de l’Uruguai", "CDT": "Hora d’estiu central d’Amèrica del Nord", "ART": "Hora estàndard de l’Argentina", "NZDT": "Hora d’estiu de Nova Zelanda", "ACDT": "Hora d’estiu d’Austràlia Central", "HAT": "Hora d’estiu de Terranova", "AEST": "Hora estàndard d’Austràlia Oriental", "AST": "Hora estàndard de l’Atlàntic", "AKST": "Hora estàndard d’Alaska", "HKST": "Hora d’estiu de Hong Kong", "∅∅∅": "Hora d’estiu de l’Amazones", "SGT": "Hora de Singapur", "LHST": "Hora estàndard de Lord Howe", "SAST": "Hora estàndard del sud de l’Àfrica", "CLT": "Hora estàndard de Xile", "BOT": "Hora de Bolívia", "ACST": "Hora estàndard d’Austràlia Central", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "AWDT": "Hora d’estiu d’Austràlia Occidental", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "CHADT": "Hora d’estiu de Chatham", "CLST": "Hora d’estiu de Xile", "COST": "Hora d’estiu de Colòmbia", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "PST": "Hora estàndard del Pacífic", "HKT": "Hora estàndard de Hong Kong", "WITA": "Hora central d’Indonèsia", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "WIB": "Hora de l’oest d’Indonèsia", "BT": "Hora de Bhutan", "WAT": "Hora estàndard de l’Àfrica Occidental", "WARST": "Hora d’estiu de l’oest de l’Argentina"},
++ locale: "ca_ES_VALENCIA",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MEZ": "MEZ", "CLT": "CLT", "SRT": "SRT", "ACST": "ACST", "HEPM": "HEPM", "UYT": "UYT", "AEST": "AEST", "VET": "VET", "ECT": "ECT", "MESZ": "MESZ", "HNPMX": "HNPMX", "TMT": "TMT", "CAT": "CAT", "AST": "AST", "HNEG": "HNEG", "PDT": "PDT", "CHAST": "CHAST", "HNT": "HNT", "HKT": "HKT", "HKST": "HKST", "CHADT": "CHADT", "GFT": "GFT", "HEOG": "HEOG", "HNPM": "HNPM", "NZDT": "NZDT", "ChST": "ChST", "AWDT": "AWDT", "PST": "PST", "ACWDT": "ACWDT", "WAT": "WAT", "MST": "MST", "NZST": "NZST", "JST": "JST", "HEPMX": "HEPMX", "HNOG": "HNOG", "TMST": "TMST", "WEZ": "WEZ", "HAT": "HAT", "COT": "COT", "ACWST": "ACWST", "ADT": "ADT", "EAT": "EAT", "HNCU": "HNCU", "AKST": "AKST", "OEZ": "OEZ", "EDT": "EDT", "MDT": "MDT", "ARST": "ARST", "AWST": "AWST", "LHST": "LHST", "WART": "WART", "COST": "COST", "WIB": "WIB", "AEDT": "AEDT", "WESZ": "WESZ", "HECU": "HECU", "LHDT": "LHDT", "BT": "BT", "CST": "CST", "HAST": "HAST", "JDT": "JDT", "IST": "IST", "WARST": "WARST", "∅∅∅": "∅∅∅", "CLST": "CLST", "HADT": "HADT", "SGT": "SGT", "EST": "EST", "GMT": "GMT", "MYT": "MYT", "UYST": "UYST", "CDT": "CDT", "ART": "ART", "BOT": "BOT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "WIT": "WIT", "GYT": "GYT", "WITA": "WITA", "HENOMX": "HENOMX", "WAST": "WAST", "OESZ": "OESZ", "SAST": "SAST", "ACDT": "ACDT"},
+ }
+ }
+ 
+@@ -138,7 +113,7 @@ func (ca *ca_ES_VALENCIA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ca *ca_ES_VALENCIA) MonthsAbbreviated() []string {
+- return ca.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +123,7 @@ func (ca *ca_ES_VALENCIA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ca *ca_ES_VALENCIA) MonthsNarrow() []string {
+- return ca.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +133,7 @@ func (ca *ca_ES_VALENCIA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ca *ca_ES_VALENCIA) MonthsWide() []string {
+- return ca.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +179,13 @@ func (ca *ca_ES_VALENCIA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ca_ES_VALENCIA' and handles both Whole and Real numbers based on 'v'
+ func (ca *ca_ES_VALENCIA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ca.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ca.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ca_ES_VALENCIA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ca *ca_ES_VALENCIA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ca.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ca.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ca_ES_VALENCIA'
+@@ -278,56 +193,7 @@ func (ca *ca_ES_VALENCIA) FmtCurrency(num float64, v uint64, currency currency.T
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ca.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ca.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ca.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ca.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ca.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ca_ES_VALENCIA'
+@@ -336,63 +202,7 @@ func (ca *ca_ES_VALENCIA) FmtAccounting(num float64, v uint64, currency currency
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ca.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ca.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ca.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ca.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ca.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ca.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ca_ES_VALENCIA'
+@@ -400,17 +210,6 @@ func (ca *ca_ES_VALENCIA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -419,17 +218,6 @@ func (ca *ca_ES_VALENCIA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ca.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -438,18 +226,6 @@ func (ca *ca_ES_VALENCIA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ca.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -458,20 +234,6 @@ func (ca *ca_ES_VALENCIA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ca.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ca.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -480,15 +242,6 @@ func (ca *ca_ES_VALENCIA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -497,22 +250,6 @@ func (ca *ca_ES_VALENCIA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,26 +258,6 @@ func (ca *ca_ES_VALENCIA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -549,30 +266,5 @@ func (ca *ca_ES_VALENCIA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ca.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ca_FR/ca_FR.go b/ca_FR/ca_FR.go
+index cda1363..fa1d899 100644
+--- a/ca_FR/ca_FR.go
++++ b/ca_FR/ca_FR.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ca_FR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ca_FR' locale
+ func New() locales.Translator {
+ return &ca_FR{
+- locale: "ca_FR",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "F", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "de gen.", "de febr.", "de març", "d’abr.", "de maig", "de juny", "de jul.", "d’ag.", "de set.", "d’oct.", "de nov.", "de des."},
+- monthsNarrow: []string{"", "GN", "FB", "MÇ", "AB", "MG", "JN", "JL", "AG", "ST", "OC", "NV", "DS"},
+- monthsWide: []string{"", "de gener", "de febrer", "de març", "d’abril", "de maig", "de juny", "de juliol", "d’agost", "de setembre", "d’octubre", "de novembre", "de desembre"},
+- daysAbbreviated: []string{"dg.", "dl.", "dt.", "dc.", "dj.", "dv.", "ds."},
+- daysNarrow: []string{"dg", "dl", "dt", "dc", "dj", "dv", "ds"},
+- daysShort: []string{"dg.", "dl.", "dt.", "dc.", "dj.", "dv.", "ds."},
+- daysWide: []string{"diumenge", "dilluns", "dimarts", "dimecres", "dijous", "divendres", "dissabte"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"aC", "dC"},
+- erasNarrow: []string{"aC", "dC"},
+- erasWide: []string{"abans de Crist", "després de Crist"},
+- timezones: map[string]string{"AWDT": "Hora d’estiu d’Austràlia Occidental", "AEST": "Hora estàndard d’Austràlia Oriental", "WIT": "Hora de l’est d’Indonèsia", "CAT": "Hora de l’Àfrica Central", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "AST": "Hora estàndard de l’Atlàntic", "LHDT": "Horari d’estiu de Lord Howe", "CLST": "Hora d’estiu de Xile", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "TMT": "Hora estàndard del Turkmenistan", "GYT": "Hora de Guyana", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "WAST": "Hora d’estiu de l’Àfrica Occidental", "VET": "Hora de Veneçuela", "BT": "Hora de Bhutan", "WART": "Hora estàndard de l’oest de l’Argentina", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "HNCU": "Hora estàndard de Cuba", "EST": "Hora estàndard oriental d’Amèrica del Nord", "AKST": "Hora estàndard d’Alaska", "EAT": "Hora de l’Àfrica Oriental", "OEZ": "Hora estàndard de l’Est d’Europa", "OESZ": "Hora d’estiu de l’Est d’Europa", "WARST": "Hora d’estiu de l’oest de l’Argentina", "BOT": "Hora de Bolívia", "ACDT": "Hora d’estiu d’Austràlia Central", "COST": "Hora d’estiu de Colòmbia", "MST": "Hora estàndard de Macau", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "LHST": "Hora estàndard de Lord Howe", "SAST": "Hora estàndard del sud de l’Àfrica", "JST": "Hora estàndard del Japó", "CST": "Hora estàndard central d’Amèrica del Nord", "WIB": "Hora de l’oest d’Indonèsia", "SRT": "Hora de Surinam", "WESZ": "Hora d’estiu de l’Oest d’Europa", "HNT": "Hora estàndard de Terranova", "HKT": "Hora estàndard de Hong Kong", "MYT": "Hora de Malàisia", "IST": "Hora estàndard de l’Índia", "ChST": "Hora de Chamorro", "ACST": "Hora estàndard d’Austràlia Central", "GMT": "Hora del Meridià de Greenwich", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "AKDT": "Hora d’estiu d’Alaska", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "PDT": "Hora d’estiu del Pacífic", "WITA": "Hora central d’Indonèsia", "AEDT": "Hora d’estiu d’Austràlia Oriental", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "AWST": "Hora estàndard d’Austràlia Occidental", "JDT": "Hora d’estiu del Japó", "MDT": "Hora d’estiu de Macau", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "HKST": "Hora d’estiu de Hong Kong", "∅∅∅": "Hora d’estiu de l’Amazones", "ECT": "Hora de l’Equador", "MESZ": "Hora d’estiu del Centre d’Europa", "CLT": "Hora estàndard de Xile", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "CDT": "Hora d’estiu central d’Amèrica del Nord", "UYT": "Hora estàndard de l’Uruguai", "UYST": "Hora d’estiu de l’Uruguai", "HAST": "Hora estàndard de Hawaii-Aleutianes", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "NZST": "Hora estàndard de Nova Zelanda", "CHAST": "Hora estàndard de Chatham", "TMST": "Hora d’estiu del Turkmenistan", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "PST": "Hora estàndard del Pacífic", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon", "NZDT": "Hora d’estiu de Nova Zelanda", "WEZ": "Hora estàndard de l’Oest d’Europa", "HAT": "Hora d’estiu de Terranova", "ART": "Hora estàndard de l’Argentina", "ARST": "Hora d’estiu de l’Argentina", "CHADT": "Hora d’estiu de Chatham", "GFT": "Hora de la Guaiana Francesa", "HECU": "Hora d’estiu de Cuba", "ADT": "Hora d’estiu de l’Atlàntic", "MEZ": "Hora estàndard del Centre d’Europa", "WAT": "Hora estàndard de l’Àfrica Occidental", "COT": "Hora estàndard de Colòmbia", "SGT": "Hora de Singapur"},
++ locale: "ca_FR",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "F", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HAST": "HAST", "MYT": "MYT", "PDT": "PDT", "HNCU": "HNCU", "CLST": "CLST", "ChST": "ChST", "CDT": "CDT", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "BT": "BT", "ACWDT": "ACWDT", "AKST": "AKST", "WIT": "WIT", "WITA": "WITA", "ACST": "ACST", "JDT": "JDT", "HECU": "HECU", "WAST": "WAST", "OEZ": "OEZ", "CST": "CST", "MST": "MST", "HADT": "HADT", "MESZ": "MESZ", "LHST": "LHST", "WEZ": "WEZ", "WESZ": "WESZ", "HKT": "HKT", "WART": "WART", "CLT": "CLT", "ARST": "ARST", "HNEG": "HNEG", "EST": "EST", "NZDT": "NZDT", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "AEST": "AEST", "WAT": "WAT", "GFT": "GFT", "BOT": "BOT", "HEPM": "HEPM", "IST": "IST", "NZST": "NZST", "HENOMX": "HENOMX", "VET": "VET", "HAT": "HAT", "EDT": "EDT", "COT": "COT", "HNOG": "HNOG", "WIB": "WIB", "ADT": "ADT", "SRT": "SRT", "ACDT": "ACDT", "JST": "JST", "CHAST": "CHAST", "CHADT": "CHADT", "UYT": "UYT", "TMST": "TMST", "UYST": "UYST", "WARST": "WARST", "GMT": "GMT", "ART": "ART", "EAT": "EAT", "ACWST": "ACWST", "SAST": "SAST", "GYT": "GYT", "HEOG": "HEOG", "COST": "COST", "MEZ": "MEZ", "HEEG": "HEEG", "LHDT": "LHDT", "PST": "PST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "AKDT": "AKDT", "ECT": "ECT", "SGT": "SGT", "OESZ": "OESZ", "HNT": "HNT", "MDT": "MDT", "AWST": "AWST", "AEDT": "AEDT", "HKST": "HKST", "TMT": "TMT", "CAT": "CAT", "AST": "AST"},
+ }
+ }
+ 
+@@ -138,7 +113,7 @@ func (ca *ca_FR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ca *ca_FR) MonthsAbbreviated() []string {
+- return ca.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +123,7 @@ func (ca *ca_FR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ca *ca_FR) MonthsNarrow() []string {
+- return ca.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +133,7 @@ func (ca *ca_FR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ca *ca_FR) MonthsWide() []string {
+- return ca.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +179,13 @@ func (ca *ca_FR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ca_FR' and handles both Whole and Real numbers based on 'v'
+ func (ca *ca_FR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ca.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ca.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ca_FR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ca *ca_FR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ca.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ca.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ca_FR'
+@@ -278,56 +193,7 @@ func (ca *ca_FR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ca.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ca.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ca.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ca.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ca.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ca_FR'
+@@ -336,63 +202,7 @@ func (ca *ca_FR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ca.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ca.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ca.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ca.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ca.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ca.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ca_FR'
+@@ -400,17 +210,6 @@ func (ca *ca_FR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -419,17 +218,6 @@ func (ca *ca_FR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ca.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -438,18 +226,6 @@ func (ca *ca_FR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ca.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -458,20 +234,6 @@ func (ca *ca_FR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ca.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ca.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -480,15 +242,6 @@ func (ca *ca_FR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -497,22 +250,6 @@ func (ca *ca_FR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,26 +258,6 @@ func (ca *ca_FR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -549,30 +266,5 @@ func (ca *ca_FR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ca.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ca_IT/ca_IT.go b/ca_IT/ca_IT.go
+index b541664..48e1e1d 100644
+--- a/ca_IT/ca_IT.go
++++ b/ca_IT/ca_IT.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ca_IT struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ca_IT' locale
+ func New() locales.Translator {
+ return &ca_IT{
+- locale: "ca_IT",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "de gen.", "de febr.", "de març", "d’abr.", "de maig", "de juny", "de jul.", "d’ag.", "de set.", "d’oct.", "de nov.", "de des."},
+- monthsNarrow: []string{"", "GN", "FB", "MÇ", "AB", "MG", "JN", "JL", "AG", "ST", "OC", "NV", "DS"},
+- monthsWide: []string{"", "de gener", "de febrer", "de març", "d’abril", "de maig", "de juny", "de juliol", "d’agost", "de setembre", "d’octubre", "de novembre", "de desembre"},
+- daysAbbreviated: []string{"dg.", "dl.", "dt.", "dc.", "dj.", "dv.", "ds."},
+- daysNarrow: []string{"dg", "dl", "dt", "dc", "dj", "dv", "ds"},
+- daysShort: []string{"dg.", "dl.", "dt.", "dc.", "dj.", "dv.", "ds."},
+- daysWide: []string{"diumenge", "dilluns", "dimarts", "dimecres", "dijous", "divendres", "dissabte"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"aC", "dC"},
+- erasNarrow: []string{"aC", "dC"},
+- erasWide: []string{"abans de Crist", "després de Crist"},
+- timezones: map[string]string{"AEST": "Hora estàndard d’Austràlia Oriental", "HKT": "Hora estàndard de Hong Kong", "MESZ": "Hora d’estiu del Centre d’Europa", "GFT": "Hora de la Guaiana Francesa", "CAT": "Hora de l’Àfrica Central", "CST": "Hora estàndard central d’Amèrica del Nord", "COST": "Hora d’estiu de Colòmbia", "HNNOMX": "Hora estàndard del nord-oest de Mèxic", "SAST": "Hora estàndard del sud de l’Àfrica", "AWST": "Hora estàndard d’Austràlia Occidental", "IST": "Hora estàndard de l’Índia", "CLST": "Hora d’estiu de Xile", "HNEG": "Hora estàndard de l’Est de Grenlàndia", "HEEG": "Hora d’estiu de l’Est de Grenlàndia", "OEZ": "Hora estàndard de l’Est d’Europa", "WIT": "Hora de l’est d’Indonèsia", "AEDT": "Hora d’estiu d’Austràlia Oriental", "NZST": "Hora estàndard de Nova Zelanda", "SRT": "Hora de Surinam", "WIB": "Hora de l’oest d’Indonèsia", "BT": "Hora de Bhutan", "PST": "Hora estàndard del Pacífic", "ART": "Hora estàndard de l’Argentina", "CHAST": "Hora estàndard de Chatham", "ECT": "Hora de l’Equador", "CDT": "Hora d’estiu central d’Amèrica del Nord", "OESZ": "Hora d’estiu de l’Est d’Europa", "HENOMX": "Hora d’estiu del nord-oest de Mèxic", "HNCU": "Hora estàndard de Cuba", "AWDT": "Hora d’estiu d’Austràlia Occidental", "HEOG": "Hora d’estiu de l’Oest de Grenlàndia", "ChST": "Hora de Chamorro", "TMST": "Hora d’estiu del Turkmenistan", "WESZ": "Hora d’estiu de l’Oest d’Europa", "HEPM": "Hora d’estiu de Saint-Pierre i Miquelon", "LHST": "Hora estàndard de Lord Howe", "LHDT": "Horari d’estiu de Lord Howe", "CLT": "Hora estàndard de Xile", "∅∅∅": "Hora d’estiu de l’Amazones", "JST": "Hora estàndard del Japó", "WEZ": "Hora estàndard de l’Oest d’Europa", "HAST": "Hora estàndard de Hawaii-Aleutianes", "ACWDT": "Hora d’estiu d’Austràlia centre-occidental", "HNT": "Hora estàndard de Terranova", "MEZ": "Hora estàndard del Centre d’Europa", "UYST": "Hora d’estiu de l’Uruguai", "HAT": "Hora d’estiu de Terranova", "WITA": "Hora central d’Indonèsia", "JDT": "Hora d’estiu del Japó", "BOT": "Hora de Bolívia", "ACWST": "Hora estàndard d’Austràlia centre-occidental", "MYT": "Hora de Malàisia", "AKST": "Hora estàndard d’Alaska", "HNPMX": "Hora estàndard del Pacífic de Mèxic", "AKDT": "Hora d’estiu d’Alaska", "HADT": "Hora d’estiu de Hawaii-Aleutianes", "PDT": "Hora d’estiu del Pacífic", "HKST": "Hora d’estiu de Hong Kong", "CHADT": "Hora d’estiu de Chatham", "WAT": "Hora estàndard de l’Àfrica Occidental", "EDT": "Hora d’estiu oriental d’Amèrica del Nord", "HECU": "Hora d’estiu de Cuba", "COT": "Hora estàndard de Colòmbia", "MDT": "Hora d’estiu de Macau", "AST": "Hora estàndard de l’Atlàntic", "GYT": "Hora de Guyana", "HNPM": "Hora estàndard de Saint-Pierre i Miquelon", "WAST": "Hora d’estiu de l’Àfrica Occidental", "WART": "Hora estàndard de l’oest de l’Argentina", "EST": "Hora estàndard oriental d’Amèrica del Nord", "VET": "Hora de Veneçuela", "SGT": "Hora de Singapur", "HEPMX": "Hora d’estiu del Pacífic de Mèxic", "UYT": "Hora estàndard de l’Uruguai", "ARST": "Hora d’estiu de l’Argentina", "HNOG": "Hora estàndard de l’Oest de Grenlàndia", "NZDT": "Hora d’estiu de Nova Zelanda", "ACDT": "Hora d’estiu d’Austràlia Central", "GMT": "Hora del Meridià de Greenwich", "MST": "Hora estàndard de Macau", "TMT": "Hora estàndard del Turkmenistan", "ACST": "Hora estàndard d’Austràlia Central", "EAT": "Hora de l’Àfrica Oriental", "WARST": "Hora d’estiu de l’oest de l’Argentina", "ADT": "Hora d’estiu de l’Atlàntic"},
++ locale: "ca_IT",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEEG": "HEEG", "ARST": "ARST", "HADT": "HADT", "JDT": "JDT", "HECU": "HECU", "MEZ": "MEZ", "WAT": "WAT", "EST": "EST", "MST": "MST", "SGT": "SGT", "CAT": "CAT", "HNEG": "HNEG", "CHAST": "CHAST", "BT": "BT", "WEZ": "WEZ", "HNCU": "HNCU", "WARST": "WARST", "NZST": "NZST", "CST": "CST", "ACST": "ACST", "HENOMX": "HENOMX", "LHDT": "LHDT", "ACWST": "ACWST", "AKST": "AKST", "GFT": "GFT", "TMST": "TMST", "AEDT": "AEDT", "COT": "COT", "HEOG": "HEOG", "ECT": "ECT", "ADT": "ADT", "BOT": "BOT", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "MYT": "MYT", "HEPMX": "HEPMX", "EDT": "EDT", "ChST": "ChST", "CLT": "CLT", "HEPM": "HEPM", "OEZ": "OEZ", "HKT": "HKT", "NZDT": "NZDT", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "AWDT": "AWDT", "IST": "IST", "AKDT": "AKDT", "WIB": "WIB", "MDT": "MDT", "GMT": "GMT", "LHST": "LHST", "WESZ": "WESZ", "WIT": "WIT", "HKST": "HKST", "VET": "VET", "SAST": "SAST", "HNOG": "HNOG", "WITA": "WITA", "CDT": "CDT", "ART": "ART", "HAT": "HAT", "HAST": "HAST", "ACDT": "ACDT", "CHADT": "CHADT", "UYT": "UYT", "PST": "PST", "OESZ": "OESZ", "HNT": "HNT", "TMT": "TMT", "AST": "AST", "PDT": "PDT", "EAT": "EAT", "JST": "JST", "AWST": "AWST", "HNPM": "HNPM", "AEST": "AEST", "UYST": "UYST", "∅∅∅": "∅∅∅", "WAST": "WAST", "WART": "WART", "GYT": "GYT", "COST": "COST", "CLST": "CLST", "SRT": "SRT"},
+ }
+ }
+ 
+@@ -138,7 +113,7 @@ func (ca *ca_IT) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ca *ca_IT) MonthsAbbreviated() []string {
+- return ca.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +123,7 @@ func (ca *ca_IT) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ca *ca_IT) MonthsNarrow() []string {
+- return ca.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +133,7 @@ func (ca *ca_IT) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ca *ca_IT) MonthsWide() []string {
+- return ca.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +179,13 @@ func (ca *ca_IT) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ca_IT' and handles both Whole and Real numbers based on 'v'
+ func (ca *ca_IT) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ca.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ca.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ca_IT' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ca *ca_IT) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ca.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ca.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ca_IT'
+@@ -278,56 +193,7 @@ func (ca *ca_IT) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ca.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ca.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ca.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ca.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ca.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ca_IT'
+@@ -336,63 +202,7 @@ func (ca *ca_IT) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ca.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ca.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ca.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ca.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ca.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ca.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ca.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ca_IT'
+@@ -400,17 +210,6 @@ func (ca *ca_IT) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -419,17 +218,6 @@ func (ca *ca_IT) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ca.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -438,18 +226,6 @@ func (ca *ca_IT) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ca.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -458,20 +234,6 @@ func (ca *ca_IT) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ca.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ca.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -480,15 +242,6 @@ func (ca *ca_IT) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -497,22 +250,6 @@ func (ca *ca_IT) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,26 +258,6 @@ func (ca *ca_IT) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -549,30 +266,5 @@ func (ca *ca_IT) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ca.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ca.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ce/ce.go b/ce/ce.go
+index 2425227..8178fbe 100644
+--- a/ce/ce.go
++++ b/ce/ce.go
+@@ -62,7 +62,7 @@ func New() locales.Translator {
+ monthsAbbreviated: []string{"", "янв", "фев", "мар", "апр", "май", "июн", "июл", "авг", "сен", "окт", "ноя", "дек"},
+ monthsWide: []string{"", "январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"},
+ daysWide: []string{"кӀиранан де", "оршотан де", "шинарин де", "кхаарин де", "еарин де", "пӀераскан де", "шот де"},
+- timezones: map[string]string{"JDT": "Япони, аьхкенан хан", "COST": "Колумби, аьхкенан хан", "LHDT": "Лорд-Хау, аьхкенан хан", "ACWST": "Юккъера Австрали, малхбузен стандартан хан", "CHADT": "Чатем, аьхкенан хан", "TMT": "Туркменин стандартан хан", "COT": "Колумби, стандартан хан", "SGT": "Сингапур", "EAT": "Малхбален Африка", "BOT": "Боливи", "AEDT": "Малхбален Австрали, аьхкенан хан", "CST": "Юккъера Америка, стандартан хан", "AKDT": "Аляска, аьхкенан хан", "CLST": "Чили, аьхкенан хан", "TMST": "Туркменин аьхкенан хан", "ACST": "Юккъера Австрали, стандартан хан", "ACDT": "Юккъера Австрали, аьхкенан хан", "CAT": "Юккъера Африка", "GMT": "Гринвичица юкъара хан", "AKST": "Аляска, стандартан хан", "WESZ": "Малхбузен Европа, аьхкенан хан", "LHST": "Лорд-Хау, стандартан хан", "GYT": "Гайана", "EDT": "Малхбален Америка, аьхкенан хан", "HNPMX": "Тийна океанан Мексикан стандартан хан", "ADT": "Атлантикан аьхкенан хан", "BT": "Бутан", "SRT": "Суринам", "∅∅∅": "Азоран гӀайренаш, аьхкенан хан", "PDT": "Тийна океанан аьхкенан хан", "WITA": "Юккъера Индонези", "HNPM": "Сен-Пьер а, Микелон а, стандартан хан", "CHAST": "Чатем, стандартан хан", "ECT": "Эквадор", "CDT": "Юккъера Америка, аьхкенан хан", "AWDT": "Малхбузен Австрали, аьхкенан хан", "ACWDT": "Юккъера Австрали, малхбузен аьхкенан хан", "WEZ": "Малхбузен Европа, стандартан хан", "AWST": "Малхбузен Австрали, стандартан хан", "NZST": "Керла Зеланди, стандартан хан", "HNEG": "Малхбален Гренланди, стандартан хан", "HNNOMX": "Къилбаседа Американ Мексикан стандартан хан", "MST": "MST", "MEZ": "Юккъера Европа, стандартан хан", "NZDT": "Керла Зеланди, аьхкенан хан", "SAST": "Къилба Африка", "GFT": "Французийн Гвиана", "ChST": "Чаморро", "HEEG": "Малхбален Гренланди, аьхкенан хан", "OESZ": "Малхбален Европа, аьхкенан хан", "HKST": "Гонконг, аьхкенан хан", "MESZ": "Юккъера Европа, аьхкенан хан", "OEZ": "Малхбален Европа, стандартан хан", "WARST": "Малхбузен Аргентина, аьхкенан хан", "HAST": "Гавайн-алеутийн стандартан хан", "HECU": "Куба, аьхкенан хан", "EST": "Малхбален Америка, стандартан хан", "MDT": "MDT", "MYT": "Малайзи", "PST": "Тийна океанан стандартан хан", "JST": "Япони, стандартан хан", "HENOMX": "Къилбаседа Американ Мексикан аьхкенан хан", "HNCU": "Куба, стандартан хан", "WIT": "Малхбален Индонези", "HNT": "Ньюфаундленд, стандартан хан", "ART": "Аргентина, стандартан хан", "HEPM": "Сен-Пьер а, Микелон а, аьхкенан хан", "IST": "Инди", "WIB": "Малхбузен Индонези", "HAT": "Ньюфаундленд, аьхкенан хан", "CLT": "Чили, стандартан хан", "WAT": "Малхбузен Африка, стандартан хан", "WAST": "Малхбузен Африка, аьхкенан хан", "UYT": "Уругвай, стандартан хан", "AST": "Атлантикан стандартан хан", "UYST": "Уругвай, аьхкенан хан", "HADT": "Гавайн-алеутийн аьхкенан хан", "VET": "Венесуэла", "ARST": "Аргентина, аьхкенан хан", "HNOG": "Малхбузен Гренланди, стандартан хан", "HEOG": "Малхбузен Гренланди, аьхкенан хан", "HEPMX": "Тийна океанан Мексикан аьхкенан хан", "HKT": "Гонконг, стандартан хан", "WART": "Малхбузен Аргентина, стандартан хан", "AEST": "Малхбален Австрали, стандартан хан"},
++ timezones: map[string]string{"∅∅∅": "∅∅∅", "IST": "Инди", "BT": "Бутан", "OEZ": "Малхбален Европа, стандартан хан", "COST": "Колумби, аьхкенан хан", "NZDT": "Керла Зеланди, аьхкенан хан", "HADT": "Гавайн-алеутийн аьхкенан хан", "MYT": "Малайзи", "SAST": "Къилба Африка", "HKST": "Гонконг, аьхкенан хан", "ADT": "Атлантикан аьхкенан хан", "ART": "Аргентина, стандартан хан", "LHST": "Лорд-Хау, стандартан хан", "PST": "Тийна океанан стандартан хан", "HNCU": "Куба, стандартан хан", "HEPMX": "Тийна океанан Мексикан аьхкенан хан", "HNT": "Ньюфаундленд, стандартан хан", "WITA": "Юккъера Индонези", "HECU": "Куба, аьхкенан хан", "OESZ": "Малхбален Европа, аьхкенан хан", "GYT": "Гайана", "EDT": "Малхбален Америка, аьхкенан хан", "PDT": "Тийна океанан аьхкенан хан", "AEDT": "Малхбален Австрали, аьхкенан хан", "WAT": "Малхбузен Африка, стандартан хан", "AKDT": "Аляска, аьхкенан хан", "GFT": "Французийн Гвиана", "CDT": "Юккъера Америка, аьхкенан хан", "GMT": "Гринвичица юкъара хан", "MEZ": "Юккъера Европа, стандартан хан", "TMT": "Туркменин стандартан хан", "TMST": "Туркменин аьхкенан хан", "ARST": "Аргентина, аьхкенан хан", "HEPM": "Сен-Пьер а, Микелон а, аьхкенан хан", "WARST": "Малхбузен Аргентина, аьхкенан хан", "COT": "Колумби, стандартан хан", "EST": "Малхбален Америка, стандартан хан", "CLT": "Чили, стандартан хан", "MESZ": "Юккъера Европа, аьхкенан хан", "HNEG": "Малхбален Гренланди, стандартан хан", "HKT": "Гонконг, стандартан хан", "HENOMX": "Къилбаседа Американ Мексикан аьхкенан хан", "AWDT": "Малхбузен Австрали, аьхкенан хан", "ACWDT": "Юккъера Австрали, малхбузен аьхкенан хан", "HEEG": "Малхбален Гренланди, аьхкенан хан", "HNPM": "Сен-Пьер а, Микелон а, стандартан хан", "CAT": "Юккъера Африка", "MST": "MST", "ChST": "Чаморро", "SRT": "Суринам", "WIT": "Малхбален Индонези", "LHDT": "Лорд-Хау, аьхкенан хан", "JST": "Япони, стандартан хан", "AEST": "Малхбален Австрали, стандартан хан", "CHAST": "Чатем, стандартан хан", "CHADT": "Чатем, аьхкенан хан", "WEZ": "Малхбузен Европа, стандартан хан", "SGT": "Сингапур", "CLST": "Чили, аьхкенан хан", "EAT": "Малхбален Африка", "AWST": "Малхбузен Австрали, стандартан хан", "HNPMX": "Тийна океанан Мексикан стандартан хан", "WART": "Малхбузен Аргентина, стандартан хан", "NZST": "Керла Зеланди, стандартан хан", "VET": "Венесуэла", "MDT": "MDT", "AST": "Атлантикан стандартан хан", "HAST": "Гавайн-алеутийн стандартан хан", "HNNOMX": "Къилбаседа Американ Мексикан стандартан хан", "UYT": "Уругвай, стандартан хан", "WESZ": "Малхбузен Европа, аьхкенан хан", "HNOG": "Малхбузен Гренланди, стандартан хан", "ECT": "Эквадор", "WIB": "Малхбузен Индонези", "ACST": "Юккъера Австрали, стандартан хан", "ACWST": "Юккъера Австрали, малхбузен стандартан хан", "UYST": "Уругвай, аьхкенан хан", "WAST": "Малхбузен Африка, аьхкенан хан", "HAT": "Ньюфаундленд, аьхкенан хан", "ACDT": "Юккъера Австрали, аьхкенан хан", "JDT": "Япони, аьхкенан хан", "AKST": "Аляска, стандартан хан", "HEOG": "Малхбузен Гренланди, аьхкенан хан", "CST": "Юккъера Америка, стандартан хан", "BOT": "Боливи"},
+ }
+ }
+ 
+diff --git a/ce_RU/ce_RU.go b/ce_RU/ce_RU.go
+index fff8f53..df81547 100644
+--- a/ce_RU/ce_RU.go
++++ b/ce_RU/ce_RU.go
+@@ -10,59 +10,45 @@ import (
+ )
+ 
+ type ce_RU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ce_RU' locale
+ func New() locales.Translator {
+ return &ce_RU{
+- locale: "ce_RU",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "янв", "фев", "мар", "апр", "май", "июн", "июл", "авг", "сен", "окт", "ноя", "дек"},
+- monthsWide: []string{"", "январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"},
+- daysWide: []string{"кӀиранан де", "оршотан де", "шинарин де", "кхаарин де", "еарин де", "пӀераскан де", "шот де"},
+- timezones: map[string]string{"HKT": "Гонконг, стандартан хан", "MESZ": "Юккъера Европа, аьхкенан хан", "CHAST": "Чатем, стандартан хан", "CLST": "Чили, аьхкенан хан", "WARST": "Малхбузен Аргентина, аьхкенан хан", "HADT": "Гавайн-алеутийн аьхкенан хан", "HEOG": "Малхбузен Гренланди, аьхкенан хан", "SAST": "Къилба Африка", "JST": "Япони, стандартан хан", "COST": "Колумби, аьхкенан хан", "HECU": "Куба, аьхкенан хан", "HEPMX": "Тийна океанан Мексикан аьхкенан хан", "WIT": "Малхбален Индонези", "PDT": "Тийна океанан аьхкенан хан", "AWST": "Малхбузен Австрали, стандартан хан", "HNOG": "Малхбузен Гренланди, стандартан хан", "AEST": "Малхбален Австрали, стандартан хан", "HEPM": "Сен-Пьер а, Микелон а, аьхкенан хан", "CHADT": "Чатем, аьхкенан хан", "HNEG": "Малхбален Гренланди, стандартан хан", "CAT": "Юккъера Африка", "OEZ": "Малхбален Европа, стандартан хан", "COT": "Колумби, стандартан хан", "HNPMX": "Тийна океанан Мексикан стандартан хан", "AST": "Атлантикан стандартан хан", "AKDT": "Аляска, аьхкенан хан", "WIB": "Малхбузен Индонези", "VET": "Венесуэла", "SRT": "Суринам", "PST": "Тийна океанан стандартан хан", "HNCU": "Куба, стандартан хан", "MEZ": "Юккъера Европа, стандартан хан", "∅∅∅": "Амазонка, аьхкенан хан", "ChST": "Чаморро", "HAT": "Ньюфаундленд, аьхкенан хан", "LHST": "Лорд-Хау, стандартан хан", "HENOMX": "Къилбаседа Американ Мексикан аьхкенан хан", "UYT": "Уругвай, стандартан хан", "IST": "Инди", "HNT": "Ньюфаундленд, стандартан хан", "HKST": "Гонконг, аьхкенан хан", "WAST": "Малхбузен Африка, аьхкенан хан", "GMT": "Гринвичица юкъара хан", "UYST": "Уругвай, аьхкенан хан", "HAST": "Гавайн-алеутийн стандартан хан", "ARST": "Аргентина, аьхкенан хан", "WITA": "Юккъера Индонези", "JDT": "Япони, аьхкенан хан", "TMT": "Туркменин стандартан хан", "MST": "MST", "BT": "Бутан", "ACWDT": "Юккъера Австрали, малхбузен аьхкенан хан", "AEDT": "Малхбален Австрали, аьхкенан хан", "HNPM": "Сен-Пьер а, Микелон а, стандартан хан", "EDT": "Малхбален Америка, аьхкенан хан", "GYT": "Гайана", "AKST": "Аляска, стандартан хан", "ACWST": "Юккъера Австрали, малхбузен стандартан хан", "AWDT": "Малхбузен Австрали, аьхкенан хан", "LHDT": "Лорд-Хау, аьхкенан хан", "NZST": "Керла Зеланди, стандартан хан", "HEEG": "Малхбален Гренланди, аьхкенан хан", "GFT": "Французийн Гвиана", "MYT": "Малайзи", "ART": "Аргентина, стандартан хан", "HNNOMX": "Къилбаседа Американ Мексикан стандартан хан", "CLT": "Чили, стандартан хан", "ACDT": "Юккъера Австрали, аьхкенан хан", "EAT": "Малхбален Африка", "SGT": "Сингапур", "ADT": "Атлантикан аьхкенан хан", "TMST": "Туркменин аьхкенан хан", "BOT": "Боливи", "ECT": "Эквадор", "WAT": "Малхбузен Африка, стандартан хан", "OESZ": "Малхбален Европа, аьхкенан хан", "EST": "Малхбален Америка, стандартан хан", "WEZ": "Малхбузен Европа, стандартан хан", "WESZ": "Малхбузен Европа, аьхкенан хан", "NZDT": "Керла Зеланди, аьхкенан хан", "ACST": "Юккъера Австрали, стандартан хан", "WART": "Малхбузен Аргентина, стандартан хан", "MDT": "MDT", "CST": "Юккъера Америка, стандартан хан", "CDT": "Юккъера Америка, аьхкенан хан"},
++ locale: "ce_RU",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GMT": "GMT", "ADT": "ADT", "BOT": "BOT", "HENOMX": "HENOMX", "MYT": "MYT", "AEDT": "AEDT", "WITA": "WITA", "MST": "MST", "WEZ": "WEZ", "CHAST": "CHAST", "HEPMX": "HEPMX", "WIB": "WIB", "AWDT": "AWDT", "TMST": "TMST", "NZDT": "NZDT", "CST": "CST", "ACST": "ACST", "CHADT": "CHADT", "HNT": "HNT", "HNOG": "HNOG", "EST": "EST", "TMT": "TMT", "HEEG": "HEEG", "LHST": "LHST", "JST": "JST", "AEST": "AEST", "WESZ": "WESZ", "AKST": "AKST", "SAST": "SAST", "PST": "PST", "ACWST": "ACWST", "IST": "IST", "WAT": "WAT", "OESZ": "OESZ", "ARST": "ARST", "JDT": "JDT", "UYT": "UYT", "GFT": "GFT", "HAT": "HAT", "HKST": "HKST", "LHDT": "LHDT", "NZST": "NZST", "AST": "AST", "HAST": "HAST", "EAT": "EAT", "HNPMX": "HNPMX", "COST": "COST", "HKT": "HKT", "ChST": "ChST", "ART": "ART", "MEZ": "MEZ", "BT": "BT", "CLT": "CLT", "CDT": "CDT", "HEOG": "HEOG", "CAT": "CAT", "ECT": "ECT", "HEPM": "HEPM", "UYST": "UYST", "GYT": "GYT", "COT": "COT", "ACWDT": "ACWDT", "WIT": "WIT", "SRT": "SRT", "WARST": "WARST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "VET": "VET", "WAST": "WAST", "WART": "WART", "HNPM": "HNPM", "SGT": "SGT", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "CLST": "CLST", "MDT": "MDT", "HADT": "HADT", "ACDT": "ACDT", "MESZ": "MESZ", "PDT": "PDT", "AKDT": "AKDT", "EDT": "EDT", "HNCU": "HNCU", "AWST": "AWST", "HECU": "HECU"},
+ }
+ }
+ 
+@@ -115,7 +101,7 @@ func (ce *ce_RU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ce *ce_RU) MonthsAbbreviated() []string {
+- return ce.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -135,7 +121,7 @@ func (ce *ce_RU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ce *ce_RU) MonthsWide() []string {
+- return ce.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -181,75 +167,13 @@ func (ce *ce_RU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ce_RU' and handles both Whole and Real numbers based on 'v'
+ func (ce *ce_RU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ce.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ce.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ce.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ce_RU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ce *ce_RU) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ce.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ce.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ce.percentSuffix...)
+-
+- b = append(b, ce.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ce_RU'
+@@ -257,56 +181,7 @@ func (ce *ce_RU) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ce.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ce.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ce.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ce.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ce.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ce.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ce_RU'
+@@ -315,63 +190,7 @@ func (ce *ce_RU) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ce.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ce.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ce.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ce.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ce.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ce.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ce.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ce_RU'
+diff --git a/cgg/cgg.go b/cgg/cgg.go
+index 061c9d0..96ee614 100644
+--- a/cgg/cgg.go
++++ b/cgg/cgg.go
+@@ -57,7 +57,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kurisito Atakaijire", "Kurisito Yaijire"},
+- timezones: map[string]string{"HKST": "HKST", "LHDT": "LHDT", "JDT": "JDT", "COT": "COT", "ART": "ART", "ChST": "ChST", "TMT": "TMT", "WIB": "WIB", "MYT": "MYT", "ACWDT": "ACWDT", "WAT": "WAT", "COST": "COST", "HENOMX": "HENOMX", "HNCU": "HNCU", "GFT": "GFT", "CAT": "CAT", "HECU": "HECU", "HNT": "HNT", "HEOG": "HEOG", "AEDT": "AEDT", "HKT": "HKT", "WITA": "WITA", "BT": "BT", "HNOG": "HNOG", "CLST": "CLST", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "HAST": "HAST", "AEST": "AEST", "ACDT": "ACDT", "EAT": "EAT", "WAST": "WAST", "AKST": "AKST", "AKDT": "AKDT", "CST": "CST", "WEZ": "WEZ", "ACWST": "ACWST", "CHAST": "CHAST", "BOT": "BOT", "UYT": "UYT", "MESZ": "MESZ", "SAST": "SAST", "ACST": "ACST", "ECT": "ECT", "MDT": "MDT", "WIT": "WIT", "∅∅∅": "∅∅∅", "TMST": "TMST", "GMT": "GMT", "PDT": "PDT", "HAT": "HAT", "EDT": "EDT", "MST": "MST", "ADT": "ADT", "SRT": "SRT", "HNEG": "HNEG", "OEZ": "OEZ", "PST": "PST", "NZST": "NZST", "IST": "IST", "JST": "JST", "EST": "EST", "VET": "VET", "NZDT": "NZDT", "WART": "WART", "WARST": "WARST", "SGT": "SGT", "OESZ": "OESZ", "HEPMX": "HEPMX", "AST": "AST", "AWST": "AWST", "AWDT": "AWDT", "MEZ": "MEZ", "LHST": "LHST", "CLT": "CLT", "HADT": "HADT", "CDT": "CDT", "HNPMX": "HNPMX", "UYST": "UYST", "GYT": "GYT", "WESZ": "WESZ", "ARST": "ARST", "HNPM": "HNPM", "HEPM": "HEPM", "CHADT": "CHADT"},
++ timezones: map[string]string{"IST": "IST", "CHADT": "CHADT", "TMT": "TMT", "CLT": "CLT", "∅∅∅": "∅∅∅", "HAST": "HAST", "HNEG": "HNEG", "HEPM": "HEPM", "WESZ": "WESZ", "AKDT": "AKDT", "WIT": "WIT", "GYT": "GYT", "EDT": "EDT", "BOT": "BOT", "ACDT": "ACDT", "WAT": "WAT", "HNT": "HNT", "UYT": "UYT", "AKST": "AKST", "HKST": "HKST", "TMST": "TMST", "CAT": "CAT", "MDT": "MDT", "MYT": "MYT", "PST": "PST", "HNOG": "HNOG", "NZDT": "NZDT", "ECT": "ECT", "MESZ": "MESZ", "AEDT": "AEDT", "CLST": "CLST", "ACST": "ACST", "JDT": "JDT", "WEZ": "WEZ", "AEST": "AEST", "UYST": "UYST", "SGT": "SGT", "WAST": "WAST", "WART": "WART", "COT": "COT", "OESZ": "OESZ", "HKT": "HKT", "MST": "MST", "ART": "ART", "SRT": "SRT", "LHST": "LHST", "HNPMX": "HNPMX", "ARST": "ARST", "LHDT": "LHDT", "HNPM": "HNPM", "HECU": "HECU", "CST": "CST", "HENOMX": "HENOMX", "BT": "BT", "ACWDT": "ACWDT", "HEOG": "HEOG", "JST": "JST", "EST": "EST", "ChST": "ChST", "HADT": "HADT", "MEZ": "MEZ", "AWST": "AWST", "AWDT": "AWDT", "WITA": "WITA", "NZST": "NZST", "AST": "AST", "CDT": "CDT", "OEZ": "OEZ", "GFT": "GFT", "SAST": "SAST", "COST": "COST", "HEPMX": "HEPMX", "HAT": "HAT", "WIB": "WIB", "ADT": "ADT", "HEEG": "HEEG", "PDT": "PDT", "CHAST": "CHAST", "HNCU": "HNCU", "GMT": "GMT", "EAT": "EAT", "HNNOMX": "HNNOMX", "VET": "VET", "WARST": "WARST", "ACWST": "ACWST"},
+ }
+ }
+ 
+diff --git a/cgg_UG/cgg_UG.go b/cgg_UG/cgg_UG.go
+index 420d68a..75cac80 100644
+--- a/cgg_UG/cgg_UG.go
++++ b/cgg_UG/cgg_UG.go
+@@ -42,22 +42,13 @@ type cgg_UG struct {
+ // New returns a new instance of translator for the 'cgg_UG' locale
+ func New() locales.Translator {
+ return &cgg_UG{
+- locale: "cgg_UG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "KBZ", "KBR", "KST", "KKN", "KTN", "KMK", "KMS", "KMN", "KMW", "KKM", "KNK", "KNB"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Okwokubanza", "Okwakabiri", "Okwakashatu", "Okwakana", "Okwakataana", "Okwamukaaga", "Okwamushanju", "Okwamunaana", "Okwamwenda", "Okwaikumi", "Okwaikumi na kumwe", "Okwaikumi na ibiri"},
+- daysAbbreviated: []string{"SAN", "ORK", "OKB", "OKS", "OKN", "OKT", "OMK"},
+- daysNarrow: []string{"S", "K", "R", "S", "N", "T", "M"},
+- daysWide: []string{"Sande", "Orwokubanza", "Orwakabiri", "Orwakashatu", "Orwakana", "Orwakataano", "Orwamukaaga"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kurisito Atakaijire", "Kurisito Yaijire"},
+- timezones: map[string]string{"MST": "MST", "AKST": "AKST", "SRT": "SRT", "COT": "COT", "SGT": "SGT", "ACDT": "ACDT", "HNPMX": "HNPMX", "AEDT": "AEDT", "GFT": "GFT", "ART": "ART", "HEPMX": "HEPMX", "ACWDT": "ACWDT", "TMST": "TMST", "OESZ": "OESZ", "WART": "WART", "UYST": "UYST", "HNT": "HNT", "HEOG": "HEOG", "CHADT": "CHADT", "CLST": "CLST", "JDT": "JDT", "ACST": "ACST", "WAT": "WAT", "WARST": "WARST", "GMT": "GMT", "EST": "EST", "MESZ": "MESZ", "SAST": "SAST", "HEPM": "HEPM", "IST": "IST", "WAST": "WAST", "HNCU": "HNCU", "AST": "AST", "AWST": "AWST", "HNPM": "HNPM", "TMT": "TMT", "HKT": "HKT", "BOT": "BOT", "UYT": "UYT", "LHST": "LHST", "CLT": "CLT", "VET": "VET", "HAST": "HAST", "ECT": "ECT", "HENOMX": "HENOMX", "COST": "COST", "HECU": "HECU", "MDT": "MDT", "CDT": "CDT", "ADT": "ADT", "GYT": "GYT", "JST": "JST", "CAT": "CAT", "HNOG": "HNOG", "WEZ": "WEZ", "HAT": "HAT", "NZDT": "NZDT", "∅∅∅": "∅∅∅", "EAT": "EAT", "MYT": "MYT", "PDT": "PDT", "AEST": "AEST", "LHDT": "LHDT", "HEEG": "HEEG", "BT": "BT", "HKST": "HKST", "NZST": "NZST", "HNNOMX": "HNNOMX", "WESZ": "WESZ", "CHAST": "CHAST", "HNEG": "HNEG", "EDT": "EDT", "AKDT": "AKDT", "WIB": "WIB", "WIT": "WIT", "AWDT": "AWDT", "WITA": "WITA", "PST": "PST", "MEZ": "MEZ", "ChST": "ChST", "HADT": "HADT", "ACWST": "ACWST", "ARST": "ARST", "OEZ": "OEZ", "CST": "CST"},
++ locale: "cgg_UG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GMT": "GMT", "HADT": "HADT", "WIB": "WIB", "ART": "ART", "ADT": "ADT", "CHAST": "CHAST", "HEOG": "HEOG", "MST": "MST", "MEZ": "MEZ", "AEDT": "AEDT", "ACDT": "ACDT", "HNPM": "HNPM", "HEPM": "HEPM", "CHADT": "CHADT", "HECU": "HECU", "WITA": "WITA", "AST": "AST", "HAST": "HAST", "CAT": "CAT", "CLT": "CLT", "AKDT": "AKDT", "WART": "WART", "COT": "COT", "∅∅∅": "∅∅∅", "GYT": "GYT", "ECT": "ECT", "CDT": "CDT", "HEEG": "HEEG", "MDT": "MDT", "EDT": "EDT", "HKST": "HKST", "LHDT": "LHDT", "HNT": "HNT", "HAT": "HAT", "WAT": "WAT", "WARST": "WARST", "TMST": "TMST", "ARST": "ARST", "AWST": "AWST", "WEZ": "WEZ", "UYT": "UYT", "OESZ": "OESZ", "GFT": "GFT", "WIT": "WIT", "NZST": "NZST", "CST": "CST", "JDT": "JDT", "HEPMX": "HEPMX", "WAST": "WAST", "OEZ": "OEZ", "HNEG": "HNEG", "UYST": "UYST", "PST": "PST", "SGT": "SGT", "COST": "COST", "EAT": "EAT", "HENOMX": "HENOMX", "MESZ": "MESZ", "ACWST": "ACWST", "CLST": "CLST", "LHST": "LHST", "BT": "BT", "HNPMX": "HNPMX", "PDT": "PDT", "HNOG": "HNOG", "EST": "EST", "SRT": "SRT", "ACST": "ACST", "JST": "JST", "HKT": "HKT", "NZDT": "NZDT", "AEST": "AEST", "TMT": "TMT", "VET": "VET", "HNCU": "HNCU", "ChST": "ChST", "AWDT": "AWDT", "IST": "IST", "ACWDT": "ACWDT", "WESZ": "WESZ", "AKST": "AKST", "SAST": "SAST", "BOT": "BOT", "HNNOMX": "HNNOMX", "MYT": "MYT"},
+ }
+ }
+ 
+@@ -110,7 +101,7 @@ func (cgg *cgg_UG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (cgg *cgg_UG) MonthsAbbreviated() []string {
+- return cgg.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -120,7 +111,7 @@ func (cgg *cgg_UG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (cgg *cgg_UG) MonthsNarrow() []string {
+- return cgg.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -130,7 +121,7 @@ func (cgg *cgg_UG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (cgg *cgg_UG) MonthsWide() []string {
+- return cgg.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,56 +181,7 @@ func (cgg *cgg_UG) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := cgg.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, cgg.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, cgg.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, cgg.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, cgg.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'cgg_UG'
+@@ -248,64 +190,7 @@ func (cgg *cgg_UG) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := cgg.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, cgg.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, cgg.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, cgg.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, cgg.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'cgg_UG'
+@@ -313,27 +198,6 @@ func (cgg *cgg_UG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -342,17 +206,6 @@ func (cgg *cgg_UG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, cgg.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -361,17 +214,6 @@ func (cgg *cgg_UG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, cgg.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -380,19 +222,6 @@ func (cgg *cgg_UG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, cgg.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, cgg.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -401,19 +230,6 @@ func (cgg *cgg_UG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, cgg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -422,26 +238,6 @@ func (cgg *cgg_UG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, cgg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, cgg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -450,30 +246,6 @@ func (cgg *cgg_UG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, cgg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, cgg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -482,34 +254,5 @@ func (cgg *cgg_UG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, cgg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, cgg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := cgg.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/chr/chr.go b/chr/chr.go
+index ed3a3d6..8ac7ef7 100644
+--- a/chr/chr.go
++++ b/chr/chr.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"ᏧᏓᎷᎸ ᎤᎷᎯᏍᏗ ᎦᎶᏁᏛ", "ᎠᏃ ᏙᎻᏂ"},
+- timezones: map[string]string{"PDT": "ᏭᏕᎵᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "MEZ": "ᎠᏰᏟ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "MESZ": "ᎠᏰᏟ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "EAT": "ᏗᎧᎸᎬ ᎬᎿᎨᏍᏛ ᎠᏟᎢᎵᏒ", "CST": "ᎠᏰᏟ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "UYST": "ᏳᎷᏇ ᎪᎩ ᎠᏟᎢᎵᏒ", "WIB": "ᏭᏕᎵᎬ ᏗᏜ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "IST": "ᎢᏂᏗᎢᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HENOMX": "ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "UYT": "ᏳᎷᏇ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HKST": "ᎰᏂᎩ ᎪᏂᎩ ᎪᎩ ᎠᏟᎢᎵᏒ", "WEZ": "ᏭᏕᎵᎬ ᏗᏜ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ACWDT": "ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "NZST": "ᎢᏤ ᏏᎢᎴᏂᏗ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "MST": "ᎣᏓᎸ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HAT": "ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "HEOG": "ᏭᏕᎵᎬ ᎢᏤᏍᏛᏱ ᎪᎩ ᎠᏟᎢᎵᏒ", "NZDT": "ᎢᏤ ᏏᎢᎴᏂᏗ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "CLST": "ᏥᎵ ᎪᎩ ᎠᏟᎢᎵᏒ", "JDT": "ᏣᏩᏂᏏ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "CAT": "ᎠᏰᏟ ᎬᎿᎨᏍᏛ ᎠᏟᎢᎵᏒ", "WAST": "ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ ᎪᎩ ᎠᏟᎢᎵᏒ", "SRT": "ᏒᎵᎾᎻ ᎠᏟᎢᎵᏒ", "VET": "ᏪᏁᏑᏪᎳ ᎠᏟᎢᎵᏒ", "ChST": "ᏣᎼᎶ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HEEG": "ᏗᎧᎸᎬ ᎢᏤᏍᏛᏱ ᎪᎩ ᎠᏟᎢᎵᏒ", "TMT": "ᏛᎵᎩᎺᏂᏍᏔᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HAST": "ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HEPMX": "ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "HNOG": "ᏭᏕᎵᎬ ᎢᏤᏍᏛᏱ ᎠᏟᎶᏍᏗ ᎠᎵᎢᎵᏒ", "HNPM": "ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "SAST": "ᏧᎦᎾᏮ ᎬᎿᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CLT": "ᏥᎵ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "∅∅∅": "ᎠᎺᏌᏂ ᎪᎩ ᎠᏟᎢᎵᏒ", "HNEG": "ᏗᎧᎸᎬ ᎢᏤᏍᏛᏱ ᎠᏟᎶᏍᏗ ᎠᎵᎢᎵᏒ", "AST": "ᏗᎧᎸᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WIT": "ᏗᎧᎸᎬ ᏗᏜ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "WART": "ᏭᏕᎵᎬ ᏗᏜ ᎠᏥᏂᏘᏂᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "COST": "ᎪᎸᎻᏈᎢᎠ ᎪᎩ ᎠᏟᎢᎵᏒ", "GMT": "ᎢᏤ ᎢᏳᏍᏗ ᎠᏟᎢᎵᏒ", "ADT": "ᏗᎧᎸᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "WITA": "ᎠᏰᏟ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "AWDT": "ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "HEPM": "ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "CHADT": "ᏣᏝᎻ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "JST": "ᏣᏩᏂᏏ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "TMST": "ᏛᎵᎩᎺᏂᏍᏔᏂ ᎪᎩ ᎠᏟᎢᎵᏒ", "ACST": "ᎠᏰᏟ ᎡᎳᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CDT": "ᎠᏰᏟ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "HNT": "ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "GYT": "ᎦᏯᎾ ᎠᏟᎢᎵᏒ", "BOT": "ᏉᎵᏫᎠ ᎠᏟᎢᎵᏒ", "GFT": "ᎠᏂᎦᎸ ᏈᏯᎾ ᎠᏟᎢᎵᏒ", "OEZ": "ᏗᎧᎸᎬ ᏗᏜ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HECU": "ᎫᏆ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "HNPMX": "ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HADT": "ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "EST": "ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "PST": "ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CHAST": "ᏣᏝᎻ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ACDT": "ᎠᏰᏟ ᎡᎳᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "HNCU": "ᎫᏆ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WESZ": "ᏭᏕᎵᎬ ᏗᏜ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "LHST": "ᎤᎬᏫᏳᎯ ᎭᏫ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "SGT": "ᏏᏂᎦᏉᎵ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "EDT": "ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "AEDT": "ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "WAT": "ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "COT": "ᎪᎸᎻᏈᎢᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNNOMX": "ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "MYT": "ᎹᎴᏏᎢᎠ ᎠᏟᎢᎵᏒ", "MDT": "ᎣᏓᎸ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "AWST": "ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "LHDT": "ᎤᎬᏫᏳᎯ ᎭᏫ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "AKDT": "ᎠᎳᏍᎦ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "ARST": "ᎠᏥᏂᏘᏂᎠ ᎪᎩ ᎠᏟᎢᎵᏒ", "ACWST": "ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ART": "ᎠᏥᏂᏘᏂᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AEST": "ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HKT": "ᎰᏂᎩ ᎪᏂᎩ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "OESZ": "ᏗᎧᎸᎬ ᏗᏜ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "ECT": "ᎡᏆᏙᎵ ᎠᏟᎢᎵᏒ", "WARST": "ᏭᏕᎵᎬ ᏗᏜ ᎠᏥᏂᏘᏂᎠ ᎪᎩ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "BT": "ᏊᏔᏂ ᎠᏟᎢᎵᏒ", "AKST": "ᎠᎳᏍᎦ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"},
++ timezones: map[string]string{"COT": "ᎪᎸᎻᏈᎢᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "NZST": "ᎢᏤ ᏏᎢᎴᏂᏗ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "MYT": "ᎹᎴᏏᎢᎠ ᎠᏟᎢᎵᏒ", "HEPM": "ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "ACWDT": "ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "WESZ": "ᏭᏕᎵᎬ ᏗᏜ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "SGT": "ᏏᏂᎦᏉᎵ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ART": "ᎠᏥᏂᏘᏂᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "BOT": "ᏉᎵᏫᎠ ᎠᏟᎢᎵᏒ", "ACDT": "ᎠᏰᏟ ᎡᎳᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "SAST": "ᏧᎦᎾᏮ ᎬᎿᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "NZDT": "ᎢᏤ ᏏᎢᎴᏂᏗ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "ECT": "ᎡᏆᏙᎵ ᎠᏟᎢᎵᏒ", "EAT": "ᏗᎧᎸᎬ ᎬᎿᎨᏍᏛ ᎠᏟᎢᎵᏒ", "HNPM": "ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "JST": "ᏣᏩᏂᏏ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "JDT": "ᏣᏩᏂᏏ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "MESZ": "ᎠᏰᏟ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "HNNOMX": "ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "LHDT": "ᎤᎬᏫᏳᎯ ᎭᏫ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "HNT": "ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CDT": "ᎠᏰᏟ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "HADT": "ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "ACST": "ᎠᏰᏟ ᎡᎳᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNCU": "ᎫᏆ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "OESZ": "ᏗᎧᎸᎬ ᏗᏜ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "HEOG": "ᏭᏕᎵᎬ ᎢᏤᏍᏛᏱ ᎪᎩ ᎠᏟᎢᎵᏒ", "ADT": "ᏗᎧᎸᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "IST": "ᎢᏂᏗᎢᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "PDT": "ᏭᏕᎵᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "WART": "ᏭᏕᎵᎬ ᏗᏜ ᎠᏥᏂᏘᏂᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HKT": "ᎰᏂᎩ ᎪᏂᎩ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CLST": "ᏥᎵ ᎪᎩ ᎠᏟᎢᎵᏒ", "PST": "ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WAST": "ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ ᎪᎩ ᎠᏟᎢᎵᏒ", "OEZ": "ᏗᎧᎸᎬ ᏗᏜ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WEZ": "ᏭᏕᎵᎬ ᏗᏜ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ARST": "ᎠᏥᏂᏘᏂᎠ ᎪᎩ ᎠᏟᎢᎵᏒ", "HAST": "ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HENOMX": "ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "AST": "ᏗᎧᎸᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HEEG": "ᏗᎧᎸᎬ ᎢᏤᏍᏛᏱ ᎪᎩ ᎠᏟᎢᎵᏒ", "∅∅∅": "∅∅∅", "HECU": "ᎫᏆ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "WAT": "ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AKDT": "ᎠᎳᏍᎦ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "GFT": "ᎠᏂᎦᎸ ᏈᏯᎾ ᎠᏟᎢᎵᏒ", "WARST": "ᏭᏕᎵᎬ ᏗᏜ ᎠᏥᏂᏘᏂᎠ ᎪᎩ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "MDT": "MDT", "LHST": "ᎤᎬᏫᏳᎯ ᎭᏫ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CHAST": "ᏣᏝᎻ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNOG": "ᏭᏕᎵᎬ ᎢᏤᏍᏛᏱ ᎠᏟᎶᏍᏗ ᎠᎵᎢᎵᏒ", "EST": "ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "TMST": "ᏛᎵᎩᎺᏂᏍᏔᏂ ᎪᎩ ᎠᏟᎢᎵᏒ", "UYST": "ᏳᎷᏇ ᎪᎩ ᎠᏟᎢᎵᏒ", "ACWST": "ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HAT": "ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "GYT": "ᎦᏯᎾ ᎠᏟᎢᎵᏒ", "EDT": "ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "GMT": "ᎢᏤ ᎢᏳᏍᏗ ᎠᏟᎢᎵᏒ", "AWDT": "ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "CHADT": "ᏣᏝᎻ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "CAT": "ᎠᏰᏟ ᎬᎿᎨᏍᏛ ᎠᏟᎢᎵᏒ", "HKST": "ᎰᏂᎩ ᎪᏂᎩ ᎪᎩ ᎠᏟᎢᎵᏒ", "CLT": "ᏥᎵ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "SRT": "ᏒᎵᎾᎻ ᎠᏟᎢᎵᏒ", "AEST": "ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AKST": "ᎠᎳᏍᎦ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNPMX": "ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CST": "ᎠᏰᏟ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WIB": "ᏭᏕᎵᎬ ᏗᏜ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "HNEG": "ᏗᎧᎸᎬ ᎢᏤᏍᏛᏱ ᎠᏟᎶᏍᏗ ᎠᎵᎢᎵᏒ", "AEDT": "ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "HEPMX": "ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "WIT": "ᏗᎧᎸᎬ ᏗᏜ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "COST": "ᎪᎸᎻᏈᎢᎠ ᎪᎩ ᎠᏟᎢᎵᏒ", "TMT": "ᏛᎵᎩᎺᏂᏍᏔᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ChST": "ᏣᎼᎶ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AWST": "ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "BT": "ᏊᏔᏂ ᎠᏟᎢᎵᏒ", "WITA": "ᎠᏰᏟ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "MST": "MST", "UYT": "ᏳᎷᏇ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "VET": "ᏪᏁᏑᏪᎳ ᎠᏟᎢᎵᏒ", "MEZ": "ᎠᏰᏟ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"},
+ }
+ }
+ 
+diff --git a/chr_US/chr_US.go b/chr_US/chr_US.go
+index 9540719..1ceefac 100644
+--- a/chr_US/chr_US.go
++++ b/chr_US/chr_US.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type chr_US struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'chr_US' locale
+ func New() locales.Translator {
+ return &chr_US{
+- locale: "chr_US",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "ᎤᏃ", "ᎧᎦ", "ᎠᏅ", "ᎧᏬ", "ᎠᏂ", "ᏕᎭ", "ᎫᏰ", "ᎦᎶ", "ᏚᎵ", "ᏚᏂ", "ᏅᏓ", "ᎥᏍ"},
+- monthsNarrow: []string{"", "Ꭴ", "Ꭷ", "Ꭰ", "Ꭷ", "Ꭰ", "Ꮥ", "Ꭻ", "Ꭶ", "Ꮪ", "Ꮪ", "Ꮕ", "Ꭵ"},
+- monthsWide: []string{"", "ᎤᏃᎸᏔᏅ", "ᎧᎦᎵ", "ᎠᏅᏱ", "ᎧᏬᏂ", "ᎠᏂᏍᎬᏘ", "ᏕᎭᎷᏱ", "ᎫᏰᏉᏂ", "ᎦᎶᏂ", "ᏚᎵᏍᏗ", "ᏚᏂᏅᏗ", "ᏅᏓᏕᏆ", "ᎥᏍᎩᏱ"},
+- daysAbbreviated: []string{"ᏆᏍᎬ", "ᏉᏅᎯ", "ᏔᎵᏁ", "ᏦᎢᏁ", "ᏅᎩᏁ", "ᏧᎾᎩ", "ᏈᏕᎾ"},
+- daysNarrow: []string{"Ꮖ", "Ꮙ", "Ꮤ", "Ꮶ", "Ꮕ", "Ꮷ", "Ꭴ"},
+- daysShort: []string{"ᏍᎬ", "ᏅᎯ", "ᏔᎵ", "ᏦᎢ", "ᏅᎩ", "ᏧᎾ", "ᏕᎾ"},
+- daysWide: []string{"ᎤᎾᏙᏓᏆᏍᎬ", "ᎤᎾᏙᏓᏉᏅᎯ", "ᏔᎵᏁᎢᎦ", "ᏦᎢᏁᎢᎦ", "ᏅᎩᏁᎢᎦ", "ᏧᎾᎩᎶᏍᏗ", "ᎤᎾᏙᏓᏈᏕᎾ"},
+- periodsAbbreviated: []string{"ᏌᎾᎴ", "ᏒᎯᏱᎢᏗᏢ"},
+- periodsNarrow: []string{"Ꮜ", "Ꮢ"},
+- periodsWide: []string{"ᏌᎾᎴ", "ᏒᎯᏱᎢᏗᏢ"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ᏧᏓᎷᎸ ᎤᎷᎯᏍᏗ ᎦᎶᏁᏛ", "ᎠᏃ ᏙᎻᏂ"},
+- timezones: map[string]string{"PST": "ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "PDT": "ᏭᏕᎵᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "AWDT": "ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "LHST": "ᎤᎬᏫᏳᎯ ᎭᏫ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "OESZ": "ᏗᎧᎸᎬ ᏗᏜ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "COST": "ᎪᎸᎻᏈᎢᎠ ᎪᎩ ᎠᏟᎢᎵᏒ", "GYT": "ᎦᏯᎾ ᎠᏟᎢᎵᏒ", "HEOG": "ᏭᏕᎵᎬ ᎢᏤᏍᏛᏱ ᎪᎩ ᎠᏟᎢᎵᏒ", "CHADT": "ᏣᏝᎻ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "WART": "ᏭᏕᎵᎬ ᏗᏜ ᎠᏥᏂᏘᏂᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNPMX": "ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HEPMX": "ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "UYST": "ᏳᎷᏇ ᎪᎩ ᎠᏟᎢᎵᏒ", "JDT": "ᏣᏩᏂᏏ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "ECT": "ᎡᏆᏙᎵ ᎠᏟᎢᎵᏒ", "CDT": "ᎠᏰᏟ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "MEZ": "ᎠᏰᏟ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HEPM": "ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "HNOG": "ᏭᏕᎵᎬ ᎢᏤᏍᏛᏱ ᎠᏟᎶᏍᏗ ᎠᎵᎢᎵᏒ", "WEZ": "ᏭᏕᎵᎬ ᏗᏜ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ARST": "ᎠᏥᏂᏘᏂᎠ ᎪᎩ ᎠᏟᎢᎵᏒ", "AEDT": "ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "NZST": "ᎢᏤ ᏏᎢᎴᏂᏗ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "GFT": "ᎠᏂᎦᎸ ᏈᏯᎾ ᎠᏟᎢᎵᏒ", "WAT": "ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNNOMX": "ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WESZ": "ᏭᏕᎵᎬ ᏗᏜ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "HEEG": "ᏗᎧᎸᎬ ᎢᏤᏍᏛᏱ ᎪᎩ ᎠᏟᎢᎵᏒ", "COT": "ᎪᎸᎻᏈᎢᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WIT": "ᏗᎧᎸᎬ ᏗᏜ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "MDT": "MDT", "MYT": "ᎹᎴᏏᎢᎠ ᎠᏟᎢᎵᏒ", "HADT": "ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "TMST": "ᏛᎵᎩᎺᏂᏍᏔᏂ ᎪᎩ ᎠᏟᎢᎵᏒ", "SGT": "ᏏᏂᎦᏉᎵ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "VET": "ᏪᏁᏑᏪᎳ ᎠᏟᎢᎵᏒ", "HKST": "ᎰᏂᎩ ᎪᏂᎩ ᎪᎩ ᎠᏟᎢᎵᏒ", "HAT": "ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "ACST": "ᎠᏰᏟ ᎡᎳᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ACDT": "ᎠᏰᏟ ᎡᎳᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "EDT": "ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "ADT": "ᏗᎧᎸᎬ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "HAST": "ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HKT": "ᎰᏂᎩ ᎪᏂᎩ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CHAST": "ᏣᏝᎻ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "SAST": "ᏧᎦᎾᏮ ᎬᎿᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CAT": "ᎠᏰᏟ ᎬᎿᎨᏍᏛ ᎠᏟᎢᎵᏒ", "WARST": "ᏭᏕᎵᎬ ᏗᏜ ᎠᏥᏂᏘᏂᎠ ᎪᎩ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "MST": "MST", "UYT": "ᏳᎷᏇ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ACWDT": "ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "∅∅∅": "ᎠᎺᏌᏂ ᎪᎩ ᎠᏟᎢᎵᏒ", "ChST": "ᏣᎼᎶ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AKST": "ᎠᎳᏍᎦ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AST": "ᏗᎧᎸᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "NZDT": "ᎢᏤ ᏏᎢᎴᏂᏗ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "IST": "ᎢᏂᏗᎢᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "JST": "ᏣᏩᏂᏏ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "WAST": "ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ ᎪᎩ ᎠᏟᎢᎵᏒ", "HECU": "ᎫᏆ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "WITA": "ᎠᏰᏟ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "LHDT": "ᎤᎬᏫᏳᎯ ᎭᏫ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ", "EAT": "ᏗᎧᎸᎬ ᎬᎿᎨᏍᏛ ᎠᏟᎢᎵᏒ", "EST": "ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "ACWST": "ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNT": "ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CST": "ᎠᏰᏟ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CLT": "ᏥᎵ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "OEZ": "ᏗᎧᎸᎬ ᏗᏜ ᏳᎳᏈ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HENOMX": "ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "AKDT": "ᎠᎳᏍᎦ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏍᏒᎩ", "WIB": "ᏭᏕᎵᎬ ᏗᏜ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ", "SRT": "ᏒᎵᎾᎻ ᎠᏟᎢᎵᏒ", "ART": "ᎠᏥᏂᏘᏂᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "AEST": "ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "CLST": "ᏥᎵ ᎪᎩ ᎠᏟᎢᎵᏒ", "HNEG": "ᏗᎧᎸᎬ ᎢᏤᏍᏛᏱ ᎠᏟᎶᏍᏗ ᎠᎵᎢᎵᏒ", "TMT": "ᏛᎵᎩᎺᏂᏍᏔᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNCU": "ᎫᏆ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "HNPM": "ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ", "MESZ": "ᎠᏰᏟ ᏳᎳᏈ ᎪᎩ ᎠᏟᎢᎵᏒ", "BOT": "ᏉᎵᏫᎠ ᎠᏟᎢᎵᏒ", "GMT": "ᎢᏤ ᎢᏳᏍᏗ ᎠᏟᎢᎵᏒ", "BT": "ᏊᏔᏂ ᎠᏟᎢᎵᏒ", "AWST": "ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"},
++ locale: "chr_US",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"BT": "BT", "ECT": "ECT", "MYT": "MYT", "HAT": "HAT", "COT": "COT", "TMST": "TMST", "NZST": "NZST", "BOT": "BOT", "AKST": "AKST", "OESZ": "OESZ", "HNT": "HNT", "JST": "JST", "AWDT": "AWDT", "HEPMX": "HEPMX", "WESZ": "WESZ", "CDT": "CDT", "HEPM": "HEPM", "HNPMX": "HNPMX", "CAT": "CAT", "SRT": "SRT", "LHST": "LHST", "CHAST": "CHAST", "VET": "VET", "HNCU": "HNCU", "HKT": "HKT", "ADT": "ADT", "LHDT": "LHDT", "UYST": "UYST", "CLST": "CLST", "MEZ": "MEZ", "EAT": "EAT", "AWST": "AWST", "EST": "EST", "ARST": "ARST", "JDT": "JDT", "PST": "PST", "GFT": "GFT", "COST": "COST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "HEEG": "HEEG", "ACDT": "ACDT", "AEDT": "AEDT", "AKDT": "AKDT", "WIT": "WIT", "HNOG": "HNOG", "MST": "MST", "HADT": "HADT", "HNPM": "HNPM", "ACWDT": "ACWDT", "WARST": "WARST", "ChST": "ChST", "WIB": "WIB", "ART": "ART", "GMT": "GMT", "HAST": "HAST", "HENOMX": "HENOMX", "ACST": "ACST", "TMT": "TMT", "NZDT": "NZDT", "WAT": "WAT", "ACWST": "ACWST", "PDT": "PDT", "CST": "CST", "AST": "AST", "CHADT": "CHADT", "UYT": "UYT", "SGT": "SGT", "EDT": "EDT", "WITA": "WITA", "HKST": "HKST", "CLT": "CLT", "MDT": "MDT", "HNNOMX": "HNNOMX", "MESZ": "MESZ", "WEZ": "WEZ", "WART": "WART", "SAST": "SAST", "GYT": "GYT", "AEST": "AEST", "IST": "IST", "OEZ": "OEZ", "HEOG": "HEOG", "HECU": "HECU", "WAST": "WAST"},
+ }
+ }
+ 
+@@ -124,7 +101,7 @@ func (chr *chr_US) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (chr *chr_US) MonthsAbbreviated() []string {
+- return chr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -134,7 +111,7 @@ func (chr *chr_US) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (chr *chr_US) MonthsNarrow() []string {
+- return chr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -144,7 +121,7 @@ func (chr *chr_US) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (chr *chr_US) MonthsWide() []string {
+- return chr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,73 +167,13 @@ func (chr *chr_US) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'chr_US' and handles both Whole and Real numbers based on 'v'
+ func (chr *chr_US) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, chr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, chr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, chr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'chr_US' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (chr *chr_US) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, chr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, chr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, chr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'chr_US'
+@@ -264,56 +181,7 @@ func (chr *chr_US) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := chr.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, chr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, chr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, chr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, chr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'chr_US'
+@@ -322,68 +190,7 @@ func (chr *chr_US) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := chr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, chr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, chr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, chr.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, chr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, chr.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'chr_US'
+@@ -391,17 +198,6 @@ func (chr *chr_US) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -410,17 +206,6 @@ func (chr *chr_US) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, chr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -429,17 +214,6 @@ func (chr *chr_US) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, chr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -448,19 +222,6 @@ func (chr *chr_US) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, chr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, chr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -469,28 +230,6 @@ func (chr *chr_US) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, chr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, chr.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, chr.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -499,35 +238,6 @@ func (chr *chr_US) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, chr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, chr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, chr.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, chr.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -536,40 +246,6 @@ func (chr *chr_US) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, chr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, chr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, chr.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, chr.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -578,44 +254,5 @@ func (chr *chr_US) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, chr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, chr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, chr.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, chr.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := chr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ckb/ckb.go b/ckb/ckb.go
+index 179cd93..a318455 100644
+--- a/ckb/ckb.go
++++ b/ckb/ckb.go
+@@ -72,7 +72,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"پێش زایین", "زایینی"},
+ erasNarrow: []string{"پ.ن", "ز"},
+ erasWide: []string{"پێش زایین", "زایینی"},
+- timezones: map[string]string{"JST": "JST", "TMT": "TMT", "VET": "VET", "HEPM": "HEPM", "NZDT": "NZDT", "HNPMX": "HNPMX", "HAT": "HAT", "IST": "IST", "OEZ": "OEZ", "GFT": "GFT", "ACST": "ACST", "CAT": "CAT", "EST": "EST", "BT": "BT", "HNT": "HNT", "HEOG": "HEOG", "MEZ": "MEZ", "BOT": "BOT", "GMT": "GMT", "GYT": "GYT", "HAST": "HAST", "ART": "ART", "CHAST": "CHAST", "CHADT": "CHADT", "MESZ": "MESZ", "CLST": "CLST", "EDT": "EDT", "JDT": "JDT", "WAST": "WAST", "SGT": "SGT", "HNCU": "HNCU", "HECU": "HECU", "AST": "AST", "PDT": "PDT", "NZST": "NZST", "COT": "COT", "HNPM": "HNPM", "EAT": "EAT", "PST": "PST", "AEST": "AEST", "AEDT": "AEDT", "HNOG": "HNOG", "HENOMX": "HENOMX", "CST": "CST", "MYT": "MYT", "SRT": "SRT", "ACWST": "ACWST", "ARST": "ARST", "SAST": "SAST", "CLT": "CLT", "AKST": "AKST", "UYST": "UYST", "MST": "MST", "WITA": "WITA", "LHDT": "LHDT", "WAT": "WAT", "COST": "COST", "AKDT": "AKDT", "HKT": "HKT", "HKST": "HKST", "HEEG": "HEEG", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "WIB": "WIB", "WIT": "WIT", "AWST": "AWST", "UYT": "UYT", "ADT": "ADT", "MDT": "MDT", "TMST": "TMST", "WART": "WART", "WARST": "WARST", "WEZ": "WEZ", "WESZ": "WESZ", "LHST": "LHST", "ChST": "ChST", "ACDT": "ACDT", "ECT": "ECT", "CDT": "CDT", "HADT": "HADT", "ACWDT": "ACWDT", "HNEG": "HNEG"},
++ timezones: map[string]string{"GMT": "GMT", "BOT": "BOT", "JDT": "JDT", "OESZ": "OESZ", "GYT": "GYT", "HNOG": "HNOG", "ART": "ART", "ARST": "ARST", "UYT": "UYT", "ACWST": "ACWST", "AWDT": "AWDT", "IST": "IST", "AEST": "AEST", "AKST": "AKST", "TMST": "TMST", "CST": "CST", "ACST": "ACST", "HNNOMX": "HNNOMX", "COST": "COST", "HADT": "HADT", "HENOMX": "HENOMX", "SGT": "SGT", "HNPMX": "HNPMX", "BT": "BT", "HKT": "HKT", "∅∅∅": "∅∅∅", "ACDT": "ACDT", "HEEG": "HEEG", "OEZ": "OEZ", "HKST": "HKST", "MEZ": "MEZ", "MESZ": "MESZ", "AWST": "AWST", "HAT": "HAT", "TMT": "TMT", "CDT": "CDT", "ECT": "ECT", "WIB": "WIB", "HNT": "HNT", "CAT": "CAT", "VET": "VET", "HNCU": "HNCU", "AKDT": "AKDT", "WIT": "WIT", "ADT": "ADT", "HNPM": "HNPM", "HEPM": "HEPM", "WEZ": "WEZ", "AEDT": "AEDT", "WAT": "WAT", "WARST": "WARST", "MST": "MST", "NZDT": "NZDT", "ChST": "ChST", "HAST": "HAST", "WESZ": "WESZ", "WAST": "WAST", "UYST": "UYST", "PST": "PST", "ACWDT": "ACWDT", "EDT": "EDT", "CLT": "CLT", "MDT": "MDT", "LHST": "LHST", "PDT": "PDT", "HEPMX": "HEPMX", "WART": "WART", "SAST": "SAST", "CLST": "CLST", "AST": "AST", "EAT": "EAT", "JST": "JST", "COT": "COT", "HEOG": "HEOG", "NZST": "NZST", "SRT": "SRT", "LHDT": "LHDT", "HECU": "HECU", "MYT": "MYT", "GFT": "GFT", "CHADT": "CHADT", "EST": "EST", "WITA": "WITA", "HNEG": "HNEG", "CHAST": "CHAST"},
+ }
+ }
+ 
+diff --git a/ckb_IQ/ckb_IQ.go b/ckb_IQ/ckb_IQ.go
+index 493e0b6..1351f22 100644
+--- a/ckb_IQ/ckb_IQ.go
++++ b/ckb_IQ/ckb_IQ.go
+@@ -10,69 +10,45 @@ import (
+ )
+ 
+ type ckb_IQ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ckb_IQ' locale
+ func New() locales.Translator {
+ return &ckb_IQ{
+- locale: "ckb_IQ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: "٫",
+- group: "٬",
+- percent: "٪",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "کانوونی دووەم", "شوبات", "ئازار", "نیسان", "ئایار", "حوزەیران", "تەمووز", "ئاب", "ئەیلوول", "تشرینی یەکەم", "تشرینی دووەم", "کانونی یەکەم"},
+- monthsNarrow: []string{"", "ک", "ش", "ئ", "ن", "ئ", "ح", "ت", "ئ", "ئ", "ت", "ت", "ک"},
+- monthsWide: []string{"", "کانوونی دووەم", "شوبات", "ئازار", "نیسان", "ئایار", "حوزەیران", "تەمووز", "ئاب", "ئەیلوول", "تشرینی یەکەم", "تشرینی دووەم", "کانونی یەکەم"},
+- daysAbbreviated: []string{"یەکشەممە", "دووشەممە", "سێشەممە", "چوارشەممە", "پێنجشەممە", "ھەینی", "شەممە"},
+- daysNarrow: []string{"ی", "د", "س", "چ", "پ", "ھ", "ش"},
+- daysShort: []string{"١ش", "٢ش", "٣ش", "٤ش", "٥ش", "ھ", "ش"},
+- daysWide: []string{"یەکشەممە", "دووشەممە", "سێشەممە", "چوارشەممە", "پێنجشەممە", "ھەینی", "شەممە"},
+- periodsAbbreviated: []string{"ب.ن", "د.ن"},
+- periodsNarrow: []string{"ب.ن", "د.ن"},
+- periodsWide: []string{"ب.ن", "د.ن"},
+- erasAbbreviated: []string{"پێش زایین", "زایینی"},
+- erasNarrow: []string{"پ.ن", "ز"},
+- erasWide: []string{"پێش زایین", "زایینی"},
+- timezones: map[string]string{"NZST": "NZST", "OEZ": "OEZ", "EST": "EST", "EDT": "EDT", "HEPMX": "HEPMX", "MEZ": "MEZ", "ARST": "ARST", "HNOG": "HNOG", "CHADT": "CHADT", "EAT": "EAT", "GYT": "GYT", "HNT": "HNT", "LHDT": "LHDT", "MDT": "MDT", "CDT": "CDT", "UYST": "UYST", "HKT": "HKT", "NZDT": "NZDT", "WARST": "WARST", "HNPM": "HNPM", "TMT": "TMT", "WAT": "WAT", "WART": "WART", "AKST": "AKST", "HEOG": "HEOG", "CHAST": "CHAST", "BOT": "BOT", "ACST": "ACST", "CAT": "CAT", "COT": "COT", "COST": "COST", "AWST": "AWST", "CLST": "CLST", "ACDT": "ACDT", "IST": "IST", "BT": "BT", "SRT": "SRT", "CLT": "CLT", "JDT": "JDT", "WAST": "WAST", "ECT": "ECT", "VET": "VET", "AEDT": "AEDT", "MESZ": "MESZ", "GMT": "GMT", "SGT": "SGT", "AKDT": "AKDT", "AST": "AST", "WEZ": "WEZ", "HEPM": "HEPM", "LHST": "LHST", "HECU": "HECU", "CST": "CST", "PST": "PST", "HAT": "HAT", "AEST": "AEST", "AWDT": "AWDT", "HKST": "HKST", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "HNCU": "HNCU", "WIT": "WIT", "ADT": "ADT", "ART": "ART", "ChST": "ChST", "TMST": "TMST", "WIB": "WIB", "HADT": "HADT", "WITA": "WITA", "HNNOMX": "HNNOMX", "PDT": "PDT", "ACWST": "ACWST", "JST": "JST", "OESZ": "OESZ", "MST": "MST", "HAST": "HAST", "HENOMX": "HENOMX", "MYT": "MYT", "UYT": "UYT", "ACWDT": "ACWDT", "SAST": "SAST", "HNEG": "HNEG", "GFT": "GFT", "HNPMX": "HNPMX", "WESZ": "WESZ"},
++ locale: "ckb_IQ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AWST": "AWST", "LHST": "LHST", "ACWDT": "ACWDT", "CHAST": "CHAST", "HNCU": "HNCU", "HNOG": "HNOG", "NZST": "NZST", "HAST": "HAST", "ACST": "ACST", "HNT": "HNT", "WART": "WART", "AKDT": "AKDT", "OEZ": "OEZ", "MDT": "MDT", "ART": "ART", "HNPM": "HNPM", "JDT": "JDT", "UYT": "UYT", "AKST": "AKST", "OESZ": "OESZ", "WITA": "WITA", "AEST": "AEST", "IST": "IST", "WAST": "WAST", "WARST": "WARST", "GYT": "GYT", "CLST": "CLST", "HNNOMX": "HNNOMX", "JST": "JST", "VET": "VET", "TMST": "TMST", "CAT": "CAT", "CDT": "CDT", "ADT": "ADT", "HEPM": "HEPM", "COST": "COST", "EST": "EST", "∅∅∅": "∅∅∅", "ACWST": "ACWST", "AEDT": "AEDT", "CHADT": "CHADT", "WAT": "WAT", "WIB": "WIB", "HENOMX": "HENOMX", "MEZ": "MEZ", "PDT": "PDT", "BT": "BT", "WIT": "WIT", "HKT": "HKT", "MST": "MST", "BOT": "BOT", "MESZ": "MESZ", "HEEG": "HEEG", "TMT": "TMT", "ARST": "ARST", "WESZ": "WESZ", "ChST": "ChST", "ACDT": "ACDT", "UYST": "UYST", "WEZ": "WEZ", "GFT": "GFT", "HNPMX": "HNPMX", "EDT": "EDT", "CLT": "CLT", "NZDT": "NZDT", "GMT": "GMT", "EAT": "EAT", "AWDT": "AWDT", "HKST": "HKST", "AST": "AST", "SRT": "SRT", "HADT": "HADT", "SGT": "SGT", "HEOG": "HEOG", "ECT": "ECT", "CST": "CST", "HNEG": "HNEG", "LHDT": "LHDT", "HEPMX": "HEPMX", "HAT": "HAT", "MYT": "MYT", "PST": "PST", "HECU": "HECU", "SAST": "SAST", "COT": "COT"},
+ }
+ }
+ 
+@@ -125,7 +101,7 @@ func (ckb *ckb_IQ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ckb *ckb_IQ) MonthsAbbreviated() []string {
+- return ckb.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -135,7 +111,7 @@ func (ckb *ckb_IQ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ckb *ckb_IQ) MonthsNarrow() []string {
+- return ckb.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -145,7 +121,7 @@ func (ckb *ckb_IQ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ckb *ckb_IQ) MonthsWide() []string {
+- return ckb.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -191,81 +167,13 @@ func (ckb *ckb_IQ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ckb_IQ' and handles both Whole and Real numbers based on 'v'
+ func (ckb *ckb_IQ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ckb.decimal) - 1; j >= 0; j-- {
+- b = append(b, ckb.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ckb.group) - 1; j >= 0; j-- {
+- b = append(b, ckb.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ckb.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ckb_IQ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ckb *ckb_IQ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 6
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ckb.decimal) - 1; j >= 0; j-- {
+- b = append(b, ckb.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ckb.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ckb.percentSuffix...)
+-
+- b = append(b, ckb.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ckb_IQ'
+@@ -273,60 +181,7 @@ func (ckb *ckb_IQ) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ckb.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ckb.decimal) - 1; j >= 0; j-- {
+- b = append(b, ckb.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ckb.group) - 1; j >= 0; j-- {
+- b = append(b, ckb.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ckb.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ckb.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ckb.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ckb_IQ'
+@@ -335,67 +190,7 @@ func (ckb *ckb_IQ) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ckb.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ckb.decimal) - 1; j >= 0; j-- {
+- b = append(b, ckb.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ckb.group) - 1; j >= 0; j-- {
+- b = append(b, ckb.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ckb.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ckb.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ckb.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ckb.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ckb_IQ'
+@@ -403,28 +198,6 @@ func (ckb *ckb_IQ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -433,17 +206,6 @@ func (ckb *ckb_IQ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ckb.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -452,17 +214,6 @@ func (ckb *ckb_IQ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xdb, 0x8c, 0x20}...)
+- b = append(b, ckb.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xdb, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -471,19 +222,6 @@ func (ckb *ckb_IQ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ckb.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, ckb.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -492,28 +230,6 @@ func (ckb *ckb_IQ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ckb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ckb.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ckb.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -522,35 +238,6 @@ func (ckb *ckb_IQ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ckb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ckb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ckb.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ckb.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -559,40 +246,6 @@ func (ckb *ckb_IQ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ckb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ckb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ckb.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ckb.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -601,44 +254,5 @@ func (ckb *ckb_IQ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ckb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ckb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ckb.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ckb.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ckb.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ckb_IR/ckb_IR.go b/ckb_IR/ckb_IR.go
+index f05ebfd..7bce9d1 100644
+--- a/ckb_IR/ckb_IR.go
++++ b/ckb_IR/ckb_IR.go
+@@ -10,69 +10,45 @@ import (
+ )
+ 
+ type ckb_IR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ckb_IR' locale
+ func New() locales.Translator {
+ return &ckb_IR{
+- locale: "ckb_IR",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: "٫",
+- group: "٬",
+- percent: "٪",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "کانوونی دووەم", "شوبات", "ئازار", "نیسان", "ئایار", "حوزەیران", "تەمووز", "ئاب", "ئەیلوول", "تشرینی یەکەم", "تشرینی دووەم", "کانونی یەکەم"},
+- monthsNarrow: []string{"", "ک", "ش", "ئ", "ن", "ئ", "ح", "ت", "ئ", "ئ", "ت", "ت", "ک"},
+- monthsWide: []string{"", "کانوونی دووەم", "شوبات", "ئازار", "نیسان", "ئایار", "حوزەیران", "تەمووز", "ئاب", "ئەیلوول", "تشرینی یەکەم", "تشرینی دووەم", "کانونی یەکەم"},
+- daysAbbreviated: []string{"یەکشەممە", "دووشەممە", "سێشەممە", "چوارشەممە", "پێنجشەممە", "ھەینی", "شەممە"},
+- daysNarrow: []string{"ی", "د", "س", "چ", "پ", "ھ", "ش"},
+- daysShort: []string{"١ش", "٢ش", "٣ش", "٤ش", "٥ش", "ھ", "ش"},
+- daysWide: []string{"یەکشەممە", "دووشەممە", "سێشەممە", "چوارشەممە", "پێنجشەممە", "ھەینی", "شەممە"},
+- periodsAbbreviated: []string{"ب.ن", "د.ن"},
+- periodsNarrow: []string{"ب.ن", "د.ن"},
+- periodsWide: []string{"ب.ن", "د.ن"},
+- erasAbbreviated: []string{"پێش زایین", "زایینی"},
+- erasNarrow: []string{"پ.ن", "ز"},
+- erasWide: []string{"پێش زایین", "زایینی"},
+- timezones: map[string]string{"LHDT": "LHDT", "OESZ": "OESZ", "UYT": "UYT", "HNT": "HNT", "PST": "PST", "ART": "ART", "HEPM": "HEPM", "TMST": "TMST", "CAT": "CAT", "ECT": "ECT", "SGT": "SGT", "MDT": "MDT", "AWST": "AWST", "WEZ": "WEZ", "HEOG": "HEOG", "JST": "JST", "HNEG": "HNEG", "WARST": "WARST", "HECU": "HECU", "CST": "CST", "PDT": "PDT", "HNNOMX": "HNNOMX", "GMT": "GMT", "EST": "EST", "SRT": "SRT", "WESZ": "WESZ", "ChST": "ChST", "TMT": "TMT", "WART": "WART", "COT": "COT", "EDT": "EDT", "WIT": "WIT", "ACWST": "ACWST", "AEDT": "AEDT", "HNPMX": "HNPMX", "CDT": "CDT", "VET": "VET", "HNOG": "HNOG", "HKT": "HKT", "LHST": "LHST", "SAST": "SAST", "ACST": "ACST", "WAT": "WAT", "HKST": "HKST", "HNPM": "HNPM", "GFT": "GFT", "AKDT": "AKDT", "ADT": "ADT", "CLT": "CLT", "AWDT": "AWDT", "NZST": "NZST", "∅∅∅": "∅∅∅", "EAT": "EAT", "UYST": "UYST", "BT": "BT", "MEZ": "MEZ", "NZDT": "NZDT", "CLST": "CLST", "ACDT": "ACDT", "GYT": "GYT", "WIB": "WIB", "IST": "IST", "BOT": "BOT", "WAST": "WAST", "OEZ": "OEZ", "HNCU": "HNCU", "MST": "MST", "HAT": "HAT", "HEEG": "HEEG", "HENOMX": "HENOMX", "AKST": "AKST", "ACWDT": "ACWDT", "ARST": "ARST", "HAST": "HAST", "HADT": "HADT", "MESZ": "MESZ", "CHAST": "CHAST", "HEPMX": "HEPMX", "MYT": "MYT", "AEST": "AEST", "WITA": "WITA", "CHADT": "CHADT", "JDT": "JDT", "COST": "COST", "AST": "AST"},
++ locale: "ckb_IR",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNNOMX": "HNNOMX", "BT": "BT", "WEZ": "WEZ", "WAST": "WAST", "CAT": "CAT", "MDT": "MDT", "ACST": "ACST", "HNEG": "HNEG", "AEDT": "AEDT", "EST": "EST", "LHDT": "LHDT", "IST": "IST", "WITA": "WITA", "MST": "MST", "ARST": "ARST", "MESZ": "MESZ", "PDT": "PDT", "COT": "COT", "HEOG": "HEOG", "NZDT": "NZDT", "HNPM": "HNPM", "JDT": "JDT", "UYST": "UYST", "OEZ": "OEZ", "WARST": "WARST", "TMST": "TMST", "NZST": "NZST", "WIB": "WIB", "BOT": "BOT", "AWST": "AWST", "AWDT": "AWDT", "VET": "VET", "HEPMX": "HEPMX", "ADT": "ADT", "ChST": "ChST", "SRT": "SRT", "HEEG": "HEEG", "JST": "JST", "ACWDT": "ACWDT", "WIT": "WIT", "HKST": "HKST", "CLT": "CLT", "CST": "CST", "HEPM": "HEPM", "WESZ": "WESZ", "HNCU": "HNCU", "HENOMX": "HENOMX", "COST": "COST", "HNOG": "HNOG", "CLST": "CLST", "ECT": "ECT", "HAST": "HAST", "MEZ": "MEZ", "ACDT": "ACDT", "LHST": "LHST", "SGT": "SGT", "HNT": "HNT", "HAT": "HAT", "EDT": "EDT", "AST": "AST", "HADT": "HADT", "UYT": "UYT", "AEST": "AEST", "AKDT": "AKDT", "GYT": "GYT", "∅∅∅": "∅∅∅", "ACWST": "ACWST", "HNPMX": "HNPMX", "WAT": "WAT", "AKST": "AKST", "SAST": "SAST", "CDT": "CDT", "ART": "ART", "CHADT": "CHADT", "GMT": "GMT", "PST": "PST", "OESZ": "OESZ", "TMT": "TMT", "EAT": "EAT", "MYT": "MYT", "CHAST": "CHAST", "HECU": "HECU", "GFT": "GFT", "WART": "WART", "HKT": "HKT"},
+ }
+ }
+ 
+@@ -125,7 +101,7 @@ func (ckb *ckb_IR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ckb *ckb_IR) MonthsAbbreviated() []string {
+- return ckb.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -135,7 +111,7 @@ func (ckb *ckb_IR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ckb *ckb_IR) MonthsNarrow() []string {
+- return ckb.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -145,7 +121,7 @@ func (ckb *ckb_IR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ckb *ckb_IR) MonthsWide() []string {
+- return ckb.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -191,81 +167,13 @@ func (ckb *ckb_IR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ckb_IR' and handles both Whole and Real numbers based on 'v'
+ func (ckb *ckb_IR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ckb.decimal) - 1; j >= 0; j-- {
+- b = append(b, ckb.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ckb.group) - 1; j >= 0; j-- {
+- b = append(b, ckb.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ckb.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ckb_IR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ckb *ckb_IR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 6
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ckb.decimal) - 1; j >= 0; j-- {
+- b = append(b, ckb.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ckb.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ckb.percentSuffix...)
+-
+- b = append(b, ckb.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ckb_IR'
+@@ -273,60 +181,7 @@ func (ckb *ckb_IR) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ckb.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ckb.decimal) - 1; j >= 0; j-- {
+- b = append(b, ckb.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ckb.group) - 1; j >= 0; j-- {
+- b = append(b, ckb.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ckb.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ckb.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ckb.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ckb_IR'
+@@ -335,67 +190,7 @@ func (ckb *ckb_IR) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ckb.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ckb.decimal) - 1; j >= 0; j-- {
+- b = append(b, ckb.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ckb.group) - 1; j >= 0; j-- {
+- b = append(b, ckb.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ckb.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ckb.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ckb.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ckb.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ckb_IR'
+@@ -403,28 +198,6 @@ func (ckb *ckb_IR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -433,17 +206,6 @@ func (ckb *ckb_IR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ckb.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -452,17 +214,6 @@ func (ckb *ckb_IR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xdb, 0x8c, 0x20}...)
+- b = append(b, ckb.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xdb, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -471,19 +222,6 @@ func (ckb *ckb_IR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ckb.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, ckb.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+diff --git a/cmd/generate_resources.go b/cmd/generate_resources.go
+index 34e58ca..116df26 100644
+--- a/cmd/generate_resources.go
++++ b/cmd/generate_resources.go
+@@ -71,11 +71,16 @@ var (
+ secondaryGroupLenRegex = regexp.MustCompile(",([0-9#]+),")
+ requiredNumRegex = regexp.MustCompile("([0-9]+)\\.")
+ requiredDecimalRegex = regexp.MustCompile("\\.([0-9]+)")
++
++ enInheritance = map[string]string{
++ "en_AG": "en_001", "en_AI": "en_001", "en_AS": "en", "en_AU": "en_GB", "en_BB": "en_001", "en_BE": "en_GB", "en_BM": "en_001", "en_BS": "en_001", "en_BW": "en_001", "en_BZ": "en_001", "en_CA": "en", "en_CC": "en_001", "en_CK": "en_001", "en_CM": "en_001", "en_CX": "en_001", "en_DG": "en_GB", "en_DM": "en_001", "en_ER": "en_001", "en_FJ": "en_001", "en_FK": "en_GB", "en_FM": "en_001", "en_GB": "en_001", "en_GD": "en_001", "en_GG": "en_GB", "en_GH": "en_001", "en_GI": "en_GB", "en_GM": "en_001", "en_GU": "en", "en_GY": "en_001", "en_HK": "en_GB", "en_IE": "en_GB", "en_IM": "en_GB", "en_IN": "en_GB", "en_IO": "en_GB", "en_JE": "en_GB", "en_JM": "en_001", "en_KE": "en_001", "en_KI": "en_001", "en_KN": "en_001", "en_KY": "en_001", "en_LC": "en_001", "en_LR": "en_001", "en_LS": "en_001", "en_MG": "en_001", "en_MH": "en", "en_MO": "en_GB", "en_MP": "en", "en_MS": "en_001", "en_MT": "en_GB", "en_MU": "en_001", "en_MW": "en_001", "en_MY": "en_001", "en_NA": "en_001", "en_NF": "en_001", "en_NG": "en_001", "en_NR": "en_001", "en_NU": "en_001", "en_NZ": "en_GB", "en_PG": "en_001", "en_PH": "en_001", "en_PK": "en_GB", "en_PN": "en_001", "en_PR": "en", "en_PW": "en_001", "en_RW": "en_001", "en_SB": "en_001", "en_SC": "en_001", "en_SD": "en_001", "en_SG": "en_GB", "en_SH": "en_GB", "en_SL": "en_001", "en_SS": "en_001", "en_SX": "en_001", "en_SZ": "en_001", "en_TC": "en_001", "en_TK": "en_001", "en_TO": "en_001", "en_TT": "en_001", "en_TV": "en_001", "en_TZ": "en_001", "en_UG": "en_001", "en_UM": "en", "en_US": "en", "en_VC": "en_001", "en_VG": "en_GB", "en_VI": "en", "en_VU": "en_001", "en_WS": "en_001", "en_ZA": "en_001", "en_ZM": "en_001", "en_ZW": "en_001",
++ }
+ )
+ 
+ type translator struct {
+- Locale string
+- BaseLocale string
++ Locale string
++ BaseLocale string
++ // InheritedLocale string
+ Plurals string
+ CardinalFunc string
+ PluralsOrdinal string
+@@ -325,7 +330,7 @@ func postProcess(cldr *cldr.CLDR) {
+ }
+ }
+ 
+- var base *translator
++ var inherited *translator
+ var found bool
+ 
+ for _, trans := range translators {
+@@ -333,7 +338,7 @@ func postProcess(cldr *cldr.CLDR) {
+ fmt.Println("Post Processing:", trans.Locale)
+ 
+ // cardinal plural rules
+- trans.CardinalFunc, trans.Plurals = parseCardinalPluralRuleFunc(cldr, trans.BaseLocale)
++ trans.CardinalFunc, trans.Plurals = parseCardinalPluralRuleFunc(cldr, trans.Locale, trans.BaseLocale)
+ 
+ //ordinal plural rules
+ trans.OrdinalFunc, trans.PluralsOrdinal = parseOrdinalPluralRuleFunc(cldr, trans.BaseLocale)
+@@ -346,7 +351,18 @@ func postProcess(cldr *cldr.CLDR) {
+ found = false
+ } else {
+ 
+- base, found = baseTranslators[trans.BaseLocale]
++ iloc := trans.Locale
++
++ if trans.BaseLocale == "en" {
++ if inherit, found := enInheritance[trans.Locale]; found {
++ iloc = inherit
++ }
++ }
++
++ inherited, found = baseTranslators[iloc]
++ if !found {
++ inherited, found = baseTranslators[trans.BaseLocale] // last ditch effort for unofficial fallback
++ }
+ }
+ 
+ // Numbers
+@@ -354,7 +370,7 @@ func postProcess(cldr *cldr.CLDR) {
+ if len(trans.Decimal) == 0 {
+ 
+ if found {
+- trans.Decimal = base.Decimal
++ trans.Decimal = inherited.Decimal
+ }
+ 
+ if len(trans.Decimal) == 0 {
+@@ -365,7 +381,7 @@ func postProcess(cldr *cldr.CLDR) {
+ if len(trans.Group) == 0 {
+ 
+ if found {
+- trans.Group = base.Group
++ trans.Group = inherited.Group
+ }
+ 
+ if len(trans.Group) == 0 {
+@@ -376,7 +392,7 @@ func postProcess(cldr *cldr.CLDR) {
+ if len(trans.Minus) == 0 {
+ 
+ if found {
+- trans.Minus = base.Minus
++ trans.Minus = inherited.Minus
+ }
+ 
+ if len(trans.Minus) == 0 {
+@@ -387,7 +403,7 @@ func postProcess(cldr *cldr.CLDR) {
+ if len(trans.Percent) == 0 {
+ 
+ if found {
+- trans.Percent = base.Percent
++ trans.Percent = inherited.Percent
+ }
+ 
+ if len(trans.Percent) == 0 {
+@@ -398,7 +414,7 @@ func postProcess(cldr *cldr.CLDR) {
+ if len(trans.PerMille) == 0 {
+ 
+ if found {
+- trans.PerMille = base.PerMille
++ trans.PerMille = inherited.PerMille
+ }
+ 
+ if len(trans.PerMille) == 0 {
+@@ -407,11 +423,11 @@ func postProcess(cldr *cldr.CLDR) {
+ }
+ 
+ if len(trans.TimeSeparator) == 0 && found {
+- trans.TimeSeparator = base.TimeSeparator
++ trans.TimeSeparator = inherited.TimeSeparator
+ }
+ 
+ if len(trans.Infinity) == 0 && found {
+- trans.Infinity = base.Infinity
++ trans.Infinity = inherited.Infinity
+ }
+ 
+ // Currency
+@@ -419,119 +435,119 @@ func postProcess(cldr *cldr.CLDR) {
+ // number values
+ 
+ if len(trans.DecimalNumberFormat) == 0 && found {
+- trans.DecimalNumberFormat = base.DecimalNumberFormat
++ trans.DecimalNumberFormat = inherited.DecimalNumberFormat
+ }
+ 
+ if len(trans.PercentNumberFormat) == 0 && found {
+- trans.PercentNumberFormat = base.PercentNumberFormat
++ trans.PercentNumberFormat = inherited.PercentNumberFormat
+ }
+ 
+ if len(trans.CurrencyNumberFormat) == 0 && found {
+- trans.CurrencyNumberFormat = base.CurrencyNumberFormat
++ trans.CurrencyNumberFormat = inherited.CurrencyNumberFormat
+ }
+ 
+ if len(trans.NegativeCurrencyNumberFormat) == 0 && found {
+- trans.NegativeCurrencyNumberFormat = base.NegativeCurrencyNumberFormat
++ trans.NegativeCurrencyNumberFormat = inherited.NegativeCurrencyNumberFormat
+ }
+ 
+ // date values
+ 
+ if len(trans.FmtDateFull) == 0 && found {
+- trans.FmtDateFull = base.FmtDateFull
++ trans.FmtDateFull = inherited.FmtDateFull
+ }
+ 
+ if len(trans.FmtDateLong) == 0 && found {
+- trans.FmtDateLong = base.FmtDateLong
++ trans.FmtDateLong = inherited.FmtDateLong
+ }
+ 
+ if len(trans.FmtDateMedium) == 0 && found {
+- trans.FmtDateMedium = base.FmtDateMedium
++ trans.FmtDateMedium = inherited.FmtDateMedium
+ }
+ 
+ if len(trans.FmtDateShort) == 0 && found {
+- trans.FmtDateShort = base.FmtDateShort
++ trans.FmtDateShort = inherited.FmtDateShort
+ }
+ 
+ // time values
+ 
+ if len(trans.FmtTimeFull) == 0 && found {
+- trans.FmtTimeFull = base.FmtTimeFull
++ trans.FmtTimeFull = inherited.FmtTimeFull
+ }
+ 
+ if len(trans.FmtTimeLong) == 0 && found {
+- trans.FmtTimeLong = base.FmtTimeLong
++ trans.FmtTimeLong = inherited.FmtTimeLong
+ }
+ 
+ if len(trans.FmtTimeMedium) == 0 && found {
+- trans.FmtTimeMedium = base.FmtTimeMedium
++ trans.FmtTimeMedium = inherited.FmtTimeMedium
+ }
+ 
+ if len(trans.FmtTimeShort) == 0 && found {
+- trans.FmtTimeShort = base.FmtTimeShort
++ trans.FmtTimeShort = inherited.FmtTimeShort
+ }
+ 
+ // month values
+ 
+ if len(trans.FmtMonthsAbbreviated) == 0 && found {
+- trans.FmtMonthsAbbreviated = base.FmtMonthsAbbreviated
++ trans.FmtMonthsAbbreviated = inherited.FmtMonthsAbbreviated
+ }
+ 
+ if len(trans.FmtMonthsNarrow) == 0 && found {
+- trans.FmtMonthsNarrow = base.FmtMonthsNarrow
++ trans.FmtMonthsNarrow = inherited.FmtMonthsNarrow
+ }
+ 
+ if len(trans.FmtMonthsWide) == 0 && found {
+- trans.FmtMonthsWide = base.FmtMonthsWide
++ trans.FmtMonthsWide = inherited.FmtMonthsWide
+ }
+ 
+ // day values
+ 
+ if len(trans.FmtDaysAbbreviated) == 0 && found {
+- trans.FmtDaysAbbreviated = base.FmtDaysAbbreviated
++ trans.FmtDaysAbbreviated = inherited.FmtDaysAbbreviated
+ }
+ 
+ if len(trans.FmtDaysNarrow) == 0 && found {
+- trans.FmtDaysNarrow = base.FmtDaysNarrow
++ trans.FmtDaysNarrow = inherited.FmtDaysNarrow
+ }
+ 
+ if len(trans.FmtDaysShort) == 0 && found {
+- trans.FmtDaysShort = base.FmtDaysShort
++ trans.FmtDaysShort = inherited.FmtDaysShort
+ }
+ 
+ if len(trans.FmtDaysWide) == 0 && found {
+- trans.FmtDaysWide = base.FmtDaysWide
++ trans.FmtDaysWide = inherited.FmtDaysWide
+ }
+ 
+ // period values
+ 
+ if len(trans.FmtPeriodsAbbreviated) == 0 && found {
+- trans.FmtPeriodsAbbreviated = base.FmtPeriodsAbbreviated
++ trans.FmtPeriodsAbbreviated = inherited.FmtPeriodsAbbreviated
+ }
+ 
+ if len(trans.FmtPeriodsNarrow) == 0 && found {
+- trans.FmtPeriodsNarrow = base.FmtPeriodsNarrow
++ trans.FmtPeriodsNarrow = inherited.FmtPeriodsNarrow
+ }
+ 
+ if len(trans.FmtPeriodsShort) == 0 && found {
+- trans.FmtPeriodsShort = base.FmtPeriodsShort
++ trans.FmtPeriodsShort = inherited.FmtPeriodsShort
+ }
+ 
+ if len(trans.FmtPeriodsWide) == 0 && found {
+- trans.FmtPeriodsWide = base.FmtPeriodsWide
++ trans.FmtPeriodsWide = inherited.FmtPeriodsWide
+ }
+ 
+ // era values
+ 
+ if len(trans.FmtErasAbbreviated) == 0 && found {
+- trans.FmtErasAbbreviated = base.FmtErasAbbreviated
++ trans.FmtErasAbbreviated = inherited.FmtErasAbbreviated
+ }
+ 
+ if len(trans.FmtErasNarrow) == 0 && found {
+- trans.FmtErasNarrow = base.FmtErasNarrow
++ trans.FmtErasNarrow = inherited.FmtErasNarrow
+ }
+ 
+ if len(trans.FmtErasWide) == 0 && found {
+- trans.FmtErasWide = base.FmtErasWide
++ trans.FmtErasWide = inherited.FmtErasWide
+ }
+ 
+ ldml := cldr.RawLDML(trans.Locale)
+@@ -578,7 +594,7 @@ func postProcess(cldr *cldr.CLDR) {
+ // timezones
+ 
+ if (trans.timezones == nil || len(trans.timezones) == 0) && found {
+- trans.timezones = base.timezones
++ trans.timezones = inherited.timezones
+ }
+ 
+ // make sure all base timezones are part of sub locale timezones
+@@ -586,7 +602,7 @@ func postProcess(cldr *cldr.CLDR) {
+ 
+ var ok bool
+ 
+- for k, v := range base.timezones {
++ for k, v := range inherited.timezones {
+ 
+ if _, ok = trans.timezones[k]; ok {
+ continue
+@@ -646,17 +662,28 @@ func preProcess(cldrVar *cldr.CLDR) {
+ 
+ split := strings.SplitN(l, "_", 2)
+ baseLocale := split[0]
++ // inheritedLocale := baseLocale
++
++ // // one of the inherited english locales
++ // // http://cldr.unicode.org/development/development-process/design-proposals/english-inheritance
++ // if l == "en_001" || l == "en_GB" {
++ // inheritedLocale = l
++ // }
+ 
+ trans := &translator{
+ Locale: l,
+ BaseLocale: baseLocale,
++ // InheritedLocale: inheritedLocale,
+ }
+ 
+- // if is a base locale
+- if len(split) == 1 {
+- baseTranslators[baseLocale] = trans
+- }
++ // // if is a base locale or one of the inherited english locales
++ // // http://cldr.unicode.org/development/development-process/design-proposals/english-inheritance
++ // if len(split) == 1 || l == "en_001" || l == "en_GB" {
++ // baseTranslators[inheritedLocale] = trans
++ // }
+ 
++ baseTranslators[l] = trans
++ baseTranslators[split[0]] = trans // allowing for unofficial fallback if none exists
+ translators[l] = trans
+ 
+ // get number, currency and datetime symbols
+@@ -2268,7 +2295,9 @@ func parseOrdinalPluralRuleFunc(current *cldr.CLDR, baseLocale string) (results
+ 
+ // 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, plurals string) {
++//
++// updated to also accept actual locale as 'pt_PT' exists in cardinal rules different from 'pt'
++func parseCardinalPluralRuleFunc(current *cldr.CLDR, locale, baseLocale string) (results string, plurals string) {
+ 
+ var prCardinal *struct {
+ cldr.Common
+@@ -2280,7 +2309,10 @@ func parseCardinalPluralRuleFunc(current *cldr.CLDR, baseLocale string) (results
+ }
+ 
+ var pluralArr []locales.PluralRule
++ var inBaseLocale bool
++ l := locale
+ 
++FIND:
+ // idx 2 is cardinal rules
+ for _, pr := range current.Supplemental().Plurals[2].PluralRules {
+ 
+@@ -2288,7 +2320,7 @@ func parseCardinalPluralRuleFunc(current *cldr.CLDR, baseLocale string) (results
+ 
+ for _, loc := range locs {
+ 
+- if loc == baseLocale {
++ if loc == l {
+ prCardinal = pr
+ }
+ }
+@@ -2296,6 +2328,13 @@ func parseCardinalPluralRuleFunc(current *cldr.CLDR, baseLocale string) (results
+ 
+ // no plural rules for locale
+ if prCardinal == nil {
++
++ if !inBaseLocale {
++ inBaseLocale = true
++ l = baseLocale
++ goto FIND
++ }
++
+ plurals = "nil"
+ results = "return locales.PluralRuleUnknown"
+ return
+diff --git a/cs/cs.go b/cs/cs.go
+index 2c3c95f..e1dda32 100644
+--- a/cs/cs.go
++++ b/cs/cs.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"př. n. l.", "n. l."},
+ erasNarrow: []string{"př.n.l.", "n.l."},
+ erasWide: []string{"př. n. l.", "n. l."},
+- timezones: map[string]string{"WART": "Západoargentinský standardní čas", "AKDT": "Aljašský letní čas", "HNOG": "Západogrónský standardní čas", "MEZ": "Středoevropský standardní čas", "CLT": "Chilský standardní čas", "GFT": "Francouzskoguyanský čas", "WIB": "Západoindonéský čas", "HEOG": "Západogrónský letní čas", "COST": "Kolumbijský letní čas", "HNCU": "Kubánský standardní čas", "GMT": "Greenwichský střední čas", "CDT": "Severoamerický centrální letní čas", "HNPM": "Pierre-miquelonský standardní čas", "CLST": "Chilský letní čas", "BOT": "Bolivijský čas", "WARST": "Západoargentinský letní čas", "HNT": "Newfoundlandský standardní čas", "HKST": "Hongkongský letní čas", "CAT": "Středoafrický čas", "EAT": "Východoafrický čas", "MDT": "Macajský letní čas", "HAST": "Havajsko-aleutský standardní čas", "WESZ": "Západoevropský letní čas", "AEST": "Východoaustralský standardní čas", "NZDT": "Novozélandský letní čas", "HNEG": "Východogrónský standardní čas", "ADT": "Atlantický letní čas", "GYT": "Guyanský čas", "WIT": "Východoindonéský čas", "HADT": "Havajsko-aleutský letní čas", "ACWDT": "Středozápadní australský letní čas", "WAST": "Západoafrický letní čas", "HECU": "Kubánský letní čas", "HEPMX": "Mexický pacifický letní čas", "MST": "Macajský standardní čas", "CST": "Severoamerický centrální standardní čas", "UYT": "Uruguayský standardní čas", "AWST": "Západoaustralský standardní čas", "IST": "Indický čas", "JST": "Japonský standardní čas", "HENOMX": "Severozápadní mexický letní čas", "HNPMX": "Mexický pacifický standardní čas", "EDT": "Severoamerický východní letní čas", "HAT": "Newfoundlandský letní čas", "CHAST": "Chathamský standardní čas", "MESZ": "Středoevropský letní čas", "JDT": "Japonský letní čas", "SRT": "Surinamský čas", "HEPM": "Pierre-miquelonský letní čas", "ECT": "Ekvádorský čas", "MYT": "Malajský čas", "LHDT": "Letní čas ostrova lorda Howa", "SGT": "Singapurský čas", "OEZ": "Východoevropský standardní čas", "HNNOMX": "Severozápadní mexický standardní čas", "VET": "Venezuelský čas", "HKT": "Hongkongský standardní čas", "HEEG": "Východogrónský letní čas", "TMT": "Turkmenský standardní čas", "ACDT": "Středoaustralský letní čas", "OESZ": "Východoevropský letní čas", "AKST": "Aljašský standardní čas", "AST": "Atlantický standardní čas", "ACWST": "Středozápadní australský standardní čas", "LHST": "Standardní čas ostrova lorda Howa", "ChST": "Chamorrský čas", "ARST": "Argentinský letní čas", "AEDT": "Východoaustralský letní čas", "AWDT": "Západoaustralský letní čas", "SAST": "Jihoafrický čas", "ACST": "Středoaustralský standardní čas", "COT": "Kolumbijský standardní čas", "BT": "Bhútánský čas", "ART": "Argentinský standardní čas", "PDT": "Severoamerický pacifický letní čas", "WEZ": "Západoevropský standardní čas", "WITA": "Středoindonéský čas", "∅∅∅": "Amazonský letní čas", "TMST": "Turkmenský letní čas", "WAT": "Západoafrický standardní čas", "EST": "Severoamerický východní standardní čas", "UYST": "Uruguayský letní čas", "PST": "Severoamerický pacifický standardní čas", "NZST": "Novozélandský standardní čas", "CHADT": "Chathamský letní čas"},
++ timezones: map[string]string{"EAT": "Východoafrický čas", "HEEG": "Východogrónský letní čas", "AKDT": "Aljašský letní čas", "HNOG": "Západogrónský standardní čas", "WITA": "Středoindonéský čas", "AST": "Atlantický standardní čas", "SRT": "Surinamský čas", "HADT": "Havajsko-aleutský letní čas", "∅∅∅": "Peruánský letní čas", "PST": "Severoamerický pacifický standardní čas", "WAT": "Západoafrický standardní čas", "HKT": "Hongkongský standardní čas", "CAT": "Středoafrický čas", "ART": "Argentinský standardní čas", "UYT": "Uruguayský standardní čas", "EST": "Severoamerický východní standardní čas", "LHST": "Standardní čas ostrova lorda Howa", "SAST": "Jihoafrický čas", "COST": "Kolumbijský letní čas", "WIB": "Západoindonéský čas", "HNPM": "Pierre-miquelonský standardní čas", "AEDT": "Východoaustralský letní čas", "HNPMX": "Mexický pacifický standardní čas", "HNT": "Newfoundlandský standardní čas", "WART": "Západoargentinský standardní čas", "CDT": "Severoamerický centrální letní čas", "ARST": "Argentinský letní čas", "HEPM": "Pierre-miquelonský letní čas", "ACWDT": "Středozápadní australský letní čas", "BOT": "Bolivijský čas", "ACDT": "Středoaustralský letní čas", "LHDT": "Letní čas ostrova lorda Howa", "GFT": "Francouzskoguyanský čas", "COT": "Kolumbijský standardní čas", "EDT": "Severoamerický východní letní čas", "TMST": "Turkmenský letní čas", "GMT": "Greenwichský střední čas", "HAST": "Havajsko-aleutský standardní čas", "CHAST": "Chathamský standardní čas", "CHADT": "Chathamský letní čas", "HEPMX": "Mexický pacifický letní čas", "WEZ": "Západoevropský standardní čas", "NZST": "Novozélandský standardní čas", "NZDT": "Novozélandský letní čas", "JDT": "Japonský letní čas", "AWST": "Západoaustralský standardní čas", "MYT": "Malajský čas", "IST": "Indický čas", "HENOMX": "Severozápadní mexický letní čas", "MESZ": "Středoevropský letní čas", "OEZ": "Východoevropský standardní čas", "ECT": "Ekvádorský čas", "ADT": "Atlantický letní čas", "HECU": "Kubánský letní čas", "WESZ": "Západoevropský letní čas", "OESZ": "Východoevropský letní čas", "HKST": "Hongkongský letní čas", "CST": "Severoamerický centrální standardní čas", "HNEG": "Východogrónský standardní čas", "BT": "Bhútánský čas", "WAST": "Západoafrický letní čas", "ChST": "Chamorrský čas", "MEZ": "Středoevropský standardní čas", "JST": "Japonský standardní čas", "ACWST": "Středozápadní australský standardní čas", "UYST": "Uruguayský letní čas", "HAT": "Newfoundlandský letní čas", "WARST": "Západoargentinský letní čas", "ACST": "Středoaustralský standardní čas", "PDT": "Severoamerický pacifický letní čas", "VET": "Venezuelský čas", "WIT": "Východoindonéský čas", "HEOG": "Západogrónský letní čas", "GYT": "Guyanský čas", "CLT": "Chilský standardní čas", "HNNOMX": "Severozápadní mexický standardní čas", "AWDT": "Západoaustralský letní čas", "AEST": "Východoaustralský standardní čas", "MST": "Macajský standardní čas", "MDT": "Macajský letní čas", "HNCU": "Kubánský standardní čas", "SGT": "Singapurský čas", "AKST": "Aljašský standardní čas", "TMT": "Turkmenský standardní čas", "CLST": "Chilský letní čas"},
+ }
+ }
+ 
+diff --git a/cs_CZ/cs_CZ.go b/cs_CZ/cs_CZ.go
+index 7c8d8b0..a2ae11d 100644
+--- a/cs_CZ/cs_CZ.go
++++ b/cs_CZ/cs_CZ.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type cs_CZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'cs_CZ' locale
+ func New() locales.Translator {
+ return &cs_CZ{
+- locale: "cs_CZ",
+- pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 5, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "led", "úno", "bře", "dub", "kvě", "čvn", "čvc", "srp", "zář", "říj", "lis", "pro"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "ledna", "února", "března", "dubna", "května", "června", "července", "srpna", "září", "října", "listopadu", "prosince"},
+- daysAbbreviated: []string{"ne", "po", "út", "st", "čt", "pá", "so"},
+- daysNarrow: []string{"N", "P", "Ú", "S", "Č", "P", "S"},
+- daysShort: []string{"ne", "po", "út", "st", "čt", "pá", "so"},
+- daysWide: []string{"neděle", "pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota"},
+- periodsAbbreviated: []string{"dop.", "odp."},
+- periodsNarrow: []string{"dop.", "odp."},
+- periodsWide: []string{"dop.", "odp."},
+- erasAbbreviated: []string{"př. n. l.", "n. l."},
+- erasNarrow: []string{"př.n.l.", "n.l."},
+- erasWide: []string{"př. n. l.", "n. l."},
+- timezones: map[string]string{"AKST": "Aljašský standardní čas", "PDT": "Severoamerický pacifický letní čas", "ACST": "Středoaustralský standardní čas", "ACWST": "Středozápadní australský standardní čas", "HNOG": "Západogrónský standardní čas", "NZDT": "Novozélandský letní čas", "TMST": "Turkmenský letní čas", "ChST": "Chamorrský čas", "MDT": "Macajský letní čas", "AKDT": "Aljašský letní čas", "WIT": "Východoindonéský čas", "WARST": "Západoargentinský letní čas", "CHAST": "Chathamský standardní čas", "JST": "Japonský standardní čas", "ECT": "Ekvádorský čas", "HNCU": "Kubánský standardní čas", "ADT": "Atlantický letní čas", "MYT": "Malajský čas", "HAST": "Havajsko-aleutský standardní čas", "HECU": "Kubánský letní čas", "WIB": "Západoindonéský čas", "AEDT": "Východoaustralský letní čas", "WAST": "Západoafrický letní čas", "IST": "Indický čas", "HNEG": "Východogrónský standardní čas", "BOT": "Bolivijský čas", "COST": "Kolumbijský letní čas", "HEPMX": "Mexický pacifický letní čas", "CDT": "Severoamerický centrální letní čas", "LHST": "Standardní čas ostrova lorda Howa", "OESZ": "Východoevropský letní čas", "VET": "Venezuelský čas", "ACWDT": "Středozápadní australský letní čas", "HNT": "Newfoundlandský standardní čas", "HEPM": "Pierre-miquelonský letní čas", "TMT": "Turkmenský standardní čas", "CAT": "Středoafrický čas", "UYST": "Uruguayský letní čas", "BT": "Bhútánský čas", "HKT": "Hongkongský standardní čas", "AWST": "Západoaustralský standardní čas", "CLST": "Chilský letní čas", "OEZ": "Východoevropský standardní čas", "WART": "Západoargentinský standardní čas", "GMT": "Greenwichský střední čas", "GYT": "Guyanský čas", "UYT": "Uruguayský standardní čas", "ARST": "Argentinský letní čas", "WEZ": "Západoevropský standardní čas", "HKST": "Hongkongský letní čas", "HNPMX": "Mexický pacifický standardní čas", "MST": "Macajský standardní čas", "HEOG": "Západogrónský letní čas", "ART": "Argentinský standardní čas", "SGT": "Singapurský čas", "CST": "Severoamerický centrální standardní čas", "HADT": "Havajsko-aleutský letní čas", "HAT": "Newfoundlandský letní čas", "ACDT": "Středoaustralský letní čas", "WESZ": "Západoevropský letní čas", "LHDT": "Letní čas ostrova lorda Howa", "CLT": "Chilský standardní čas", "MESZ": "Středoevropský letní čas", "EDT": "Severoamerický východní letní čas", "PST": "Severoamerický pacifický standardní čas", "WITA": "Středoindonéský čas", "GFT": "Francouzskoguyanský čas", "HNNOMX": "Severozápadní mexický standardní čas", "HENOMX": "Severozápadní mexický letní čas", "EST": "Severoamerický východní standardní čas", "AWDT": "Západoaustralský letní čas", "HEEG": "Východogrónský letní čas", "MEZ": "Středoevropský standardní čas", "SAST": "Jihoafrický čas", "∅∅∅": "Amazonský letní čas", "NZST": "Novozélandský standardní čas", "CHADT": "Chathamský letní čas", "COT": "Kolumbijský standardní čas", "HNPM": "Pierre-miquelonský standardní čas", "JDT": "Japonský letní čas", "WAT": "Západoafrický standardní čas", "EAT": "Východoafrický čas", "AST": "Atlantický standardní čas", "SRT": "Surinamský čas", "AEST": "Východoaustralský standardní čas"},
++ locale: "cs_CZ",
++ pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CLST": "CLST", "MST": "MST", "ADT": "ADT", "ART": "ART", "HEPMX": "HEPMX", "WAST": "WAST", "WART": "WART", "TMT": "TMT", "EAT": "EAT", "HNPM": "HNPM", "AEDT": "AEDT", "CLT": "CLT", "NZDT": "NZDT", "HAST": "HAST", "WESZ": "WESZ", "HECU": "HECU", "ACST": "ACST", "∅∅∅": "∅∅∅", "GFT": "GFT", "GYT": "GYT", "NZST": "NZST", "CHAST": "CHAST", "HKST": "HKST", "LHDT": "LHDT", "JST": "JST", "PDT": "PDT", "SGT": "SGT", "MDT": "MDT", "ECT": "ECT", "AST": "AST", "HNNOMX": "HNNOMX", "VET": "VET", "HNPMX": "HNPMX", "HAT": "HAT", "EST": "EST", "GMT": "GMT", "HNOG": "HNOG", "WIB": "WIB", "LHST": "LHST", "HEPM": "HEPM", "AWST": "AWST", "COST": "COST", "ChST": "ChST", "BOT": "BOT", "HNEG": "HNEG", "UYST": "UYST", "AWDT": "AWDT", "JDT": "JDT", "CST": "CST", "ARST": "ARST", "ACDT": "ACDT", "HEEG": "HEEG", "BT": "BT", "CHADT": "CHADT", "AKST": "AKST", "OESZ": "OESZ", "EDT": "EDT", "HKT": "HKT", "WITA": "WITA", "PST": "PST", "AKDT": "AKDT", "HNT": "HNT", "HEOG": "HEOG", "WAT": "WAT", "OEZ": "OEZ", "WARST": "WARST", "WIT": "WIT", "UYT": "UYT", "IST": "IST", "ACWST": "ACWST", "HNCU": "HNCU", "CAT": "CAT", "HADT": "HADT", "MESZ": "MESZ", "HENOMX": "HENOMX", "MYT": "MYT", "ACWDT": "ACWDT", "WEZ": "WEZ", "SAST": "SAST", "CDT": "CDT", "MEZ": "MEZ", "AEST": "AEST", "COT": "COT", "TMST": "TMST", "SRT": "SRT"},
+ }
+ }
+ 
+@@ -164,7 +139,7 @@ func (cs *cs_CZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (cs *cs_CZ) MonthsAbbreviated() []string {
+- return cs.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -174,7 +149,7 @@ func (cs *cs_CZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (cs *cs_CZ) MonthsNarrow() []string {
+- return cs.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -184,7 +159,7 @@ func (cs *cs_CZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (cs *cs_CZ) MonthsWide() []string {
+- return cs.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -230,77 +205,13 @@ func (cs *cs_CZ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'cs_CZ' and handles both Whole and Real numbers based on 'v'
+ func (cs *cs_CZ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, cs.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(cs.group) - 1; j >= 0; j-- {
+- b = append(b, cs.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, cs.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'cs_CZ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (cs *cs_CZ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, cs.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, cs.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, cs.percentSuffix...)
+-
+- b = append(b, cs.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'cs_CZ'
+@@ -308,58 +219,7 @@ func (cs *cs_CZ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := cs.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, cs.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(cs.group) - 1; j >= 0; j-- {
+- b = append(b, cs.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, cs.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, cs.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, cs.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'cs_CZ'
+@@ -368,65 +228,7 @@ func (cs *cs_CZ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := cs.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, cs.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(cs.group) - 1; j >= 0; j-- {
+- b = append(b, cs.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, cs.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, cs.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, cs.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, cs.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'cs_CZ'
+@@ -434,27 +236,6 @@ func (cs *cs_CZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -463,17 +244,6 @@ func (cs *cs_CZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -482,17 +252,6 @@ func (cs *cs_CZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, cs.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -501,19 +260,6 @@ func (cs *cs_CZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, cs.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, cs.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -522,15 +268,6 @@ func (cs *cs_CZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, cs.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -539,22 +276,6 @@ func (cs *cs_CZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, cs.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, cs.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -563,26 +284,6 @@ func (cs *cs_CZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, cs.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, cs.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -591,30 +292,5 @@ func (cs *cs_CZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, cs.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, cs.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := cs.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/cu/cu.go b/cu/cu.go
+index 76e4103..62645eb 100644
+--- a/cu/cu.go
++++ b/cu/cu.go
+@@ -72,7 +72,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"", ""},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"пре́дъ р.\u00a0х.", "по р.\u00a0х."},
+- timezones: map[string]string{"SAST": "SAST", "UYST": "UYST", "ACWST": "ACWST", "HEOG": "HEOG", "AWST": "AWST", "WITA": "WITA", "ACWDT": "ACWDT", "HAT": "HAT", "GMT": "сре́днее вре́мѧ по грі́нꙋичꙋ", "MST": "MST", "HNT": "HNT", "ART": "ART", "AEST": "AEST", "NZDT": "NZDT", "TMST": "TMST", "CST": "среднеамерїка́нское зи́мнее вре́мѧ", "ADT": "а҆тланті́ческое лѣ́тнее вре́мѧ", "WEZ": "западноєѵрѡпе́йское зи́мнее вре́мѧ", "CHAST": "CHAST", "IST": "IST", "AKDT": "AKDT", "WIB": "WIB", "JDT": "JDT", "TMT": "TMT", "WIT": "WIT", "PST": "тихоѻкеа́нское зи́мнее вре́мѧ", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "ACST": "ACST", "ACDT": "ACDT", "WARST": "WARST", "HENOMX": "HENOMX", "HAST": "HAST", "MESZ": "среднеєѵрѡпе́йское лѣ́тнее вре́мѧ", "CLT": "CLT", "HEEG": "HEEG", "MDT": "MDT", "AST": "а҆тланті́ческое зи́мнее вре́мѧ", "GFT": "GFT", "ECT": "ECT", "HEPMX": "HEPMX", "WESZ": "западноєѵрѡпе́йское лѣ́тнее вре́мѧ", "AEDT": "AEDT", "HKST": "HKST", "HEPM": "HEPM", "LHST": "LHST", "OEZ": "восточноєѵрѡпе́йское зи́мнее вре́мѧ", "WART": "WART", "BT": "BT", "HNPM": "HNPM", "HNEG": "HNEG", "OESZ": "восточноєѵрѡпе́йское лѣ́тнее вре́мѧ", "HNNOMX": "HNNOMX", "SGT": "SGT", "EST": "восточноамерїка́нское зи́мнее вре́мѧ", "HNPMX": "HNPMX", "PDT": "тихоѻкеа́нское лѣ́тнее вре́мѧ", "HKT": "HKT", "LHDT": "LHDT", "CHADT": "CHADT", "COT": "COT", "EDT": "восточноамерїка́нское лѣ́тнее вре́мѧ", "EAT": "EAT", "HECU": "HECU", "AKST": "AKST", "MYT": "MYT", "UYT": "UYT", "CLST": "CLST", "JST": "JST", "ChST": "ChST", "COST": "COST", "GYT": "GYT", "ARST": "ARST", "NZST": "NZST", "WAT": "WAT", "CDT": "среднеамерїка́нское лѣ́тнее вре́мѧ", "MEZ": "среднеєѵрѡпе́йское зи́мнее вре́мѧ", "BOT": "BOT", "CAT": "CAT", "WAST": "WAST", "HNCU": "HNCU", "HADT": "HADT", "VET": "VET", "SRT": "SRT", "HNOG": "HNOG"},
++ timezones: map[string]string{"HNNOMX": "HNNOMX", "PST": "тихоѻкеа́нское зи́мнее вре́мѧ", "PDT": "тихоѻкеа́нское лѣ́тнее вре́мѧ", "WEZ": "западноєѵрѡпе́йское зи́мнее вре́мѧ", "SGT": "SGT", "OESZ": "восточноєѵрѡпе́йское лѣ́тнее вре́мѧ", "SAST": "SAST", "WITA": "WITA", "AST": "а҆тланті́ческое зи́мнее вре́мѧ", "SRT": "SRT", "HEPMX": "HEPMX", "HEOG": "HEOG", "WIB": "WIB", "AWST": "AWST", "LHST": "LHST", "IST": "IST", "∅∅∅": "∅∅∅", "HNOG": "HNOG", "NZST": "NZST", "GMT": "сре́днее вре́мѧ по грі́нꙋичꙋ", "MYT": "MYT", "BT": "BT", "ACDT": "ACDT", "LHDT": "LHDT", "OEZ": "восточноєѵрѡпе́йское зи́мнее вре́мѧ", "HAT": "HAT", "EDT": "восточноамерїка́нское лѣ́тнее вре́мѧ", "ADT": "а҆тланті́ческое лѣ́тнее вре́мѧ", "BOT": "BOT", "ACST": "ACST", "CHAST": "CHAST", "HNCU": "HNCU", "WART": "WART", "EST": "восточноамерїка́нское зи́мнее вре́мѧ", "CLST": "CLST", "MST": "MST", "HECU": "HECU", "WIT": "WIT", "TMT": "TMT", "ARST": "ARST", "UYST": "UYST", "HNPMX": "HNPMX", "AKDT": "AKDT", "COT": "COT", "HKT": "HKT", "CLT": "CLT", "AWDT": "AWDT", "HEPM": "HEPM", "AEDT": "AEDT", "AKST": "AKST", "CDT": "среднеамерїка́нское лѣ́тнее вре́мѧ", "ECT": "ECT", "HENOMX": "HENOMX", "UYT": "UYT", "WAST": "WAST", "GFT": "GFT", "NZDT": "NZDT", "ART": "ART", "MEZ": "среднеєѵрѡпе́йское зи́мнее вре́мѧ", "HNEG": "HNEG", "HNPM": "HNPM", "WAT": "WAT", "COST": "COST", "CAT": "CAT", "CST": "среднеамерїка́нское зи́мнее вре́мѧ", "ChST": "ChST", "HAST": "HAST", "JST": "JST", "TMST": "TMST", "MESZ": "среднеєѵрѡпе́йское лѣ́тнее вре́мѧ", "AEST": "AEST", "HKST": "HKST", "MDT": "MDT", "JDT": "JDT", "WESZ": "западноєѵрѡпе́йское лѣ́тнее вре́мѧ", "ACWST": "ACWST", "ACWDT": "ACWDT", "HNT": "HNT", "WARST": "WARST", "GYT": "GYT", "EAT": "EAT", "HADT": "HADT", "HEEG": "HEEG", "CHADT": "CHADT", "VET": "VET"},
+ }
+ }
+ 
+diff --git a/cu_RU/cu_RU.go b/cu_RU/cu_RU.go
+index e74ec10..3a3d723 100644
+--- a/cu_RU/cu_RU.go
++++ b/cu_RU/cu_RU.go
+@@ -10,69 +10,45 @@ import (
+ )
+ 
+ type cu_RU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'cu_RU' locale
+ func New() locales.Translator {
+ return &cu_RU{
+- locale: "cu_RU",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "і҆аⷩ҇", "феⷡ҇", "маⷬ҇", "а҆пⷬ҇", "маꙵ", "і҆ꙋⷩ҇", "і҆ꙋⷧ҇", "а҆́ѵⷢ҇", "сеⷫ҇", "ѻ҆кⷮ", "ноеⷨ", "деⷦ҇"},
+- monthsNarrow: []string{"", "І҆", "Ф", "М", "А҆", "М", "І҆", "І҆", "А҆", "С", "Ѻ҆", "Н", "Д"},
+- monthsWide: []string{"", "і҆аннꙋа́рїа", "феврꙋа́рїа", "ма́рта", "а҆прі́ллїа", "ма́їа", "і҆ꙋ́нїа", "і҆ꙋ́лїа", "а҆́ѵгꙋста", "септе́мврїа", "ѻ҆ктѡ́врїа", "ное́мврїа", "деке́мврїа"},
+- daysAbbreviated: []string{"ндⷧ҇ѧ", "пнⷣе", "втоⷬ҇", "срⷣе", "чеⷦ҇", "пѧⷦ҇", "сꙋⷠ҇"},
+- daysNarrow: []string{"Н", "П", "В", "С", "Ч", "П", "С"},
+- daysShort: []string{"ндⷧ҇ѧ", "пнⷣе", "втоⷬ҇", "срⷣе", "чеⷦ҇", "пѧⷦ҇", "сꙋⷠ҇"},
+- daysWide: []string{"недѣ́лѧ", "понедѣ́льникъ", "вто́рникъ", "среда̀", "четверто́къ", "пѧто́къ", "сꙋббѡ́та"},
+- periodsAbbreviated: []string{"ДП", "ПП"},
+- periodsNarrow: []string{"ДП", "ПП"},
+- periodsWide: []string{"ДП", "ПП"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"пре́дъ р.\u00a0х.", "по р.\u00a0х."},
+- timezones: map[string]string{"LHST": "LHST", "CST": "среднеамерїка́нское зи́мнее вре́мѧ", "ADT": "а҆тланті́ческое лѣ́тнее вре́мѧ", "AWDT": "AWDT", "WAST": "WAST", "SGT": "SGT", "ART": "ART", "PDT": "тихоѻкеа́нское лѣ́тнее вре́мѧ", "HKST": "HKST", "AWST": "AWST", "HEPM": "HEPM", "EST": "восточноамерїка́нское зи́мнее вре́мѧ", "LHDT": "LHDT", "HNEG": "HNEG", "OEZ": "восточноєѵрѡпе́йское зи́мнее вре́мѧ", "COST": "COST", "WARST": "WARST", "SAST": "SAST", "JDT": "JDT", "ChST": "ChST", "CLT": "CLT", "TMT": "TMT", "WAT": "WAT", "HECU": "HECU", "UYST": "UYST", "PST": "тихоѻкеа́нское зи́мнее вре́мѧ", "CHAST": "CHAST", "AEST": "AEST", "HNPM": "HNPM", "HAST": "HAST", "SRT": "SRT", "ACWDT": "ACWDT", "GFT": "GFT", "TMST": "TMST", "ACDT": "ACDT", "EAT": "EAT", "ECT": "ECT", "GYT": "GYT", "WIT": "WIT", "∅∅∅": "∅∅∅", "WART": "WART", "NZST": "NZST", "NZDT": "NZDT", "OESZ": "восточноєѵрѡпе́йское лѣ́тнее вре́мѧ", "CAT": "CAT", "HNCU": "HNCU", "HEPMX": "HEPMX", "WESZ": "западноєѵрѡпе́йское лѣ́тнее вре́мѧ", "ARST": "ARST", "CLST": "CLST", "HEEG": "HEEG", "HNPMX": "HNPMX", "HADT": "HADT", "HEOG": "HEOG", "WITA": "WITA", "IST": "IST", "ACST": "ACST", "COT": "COT", "HNNOMX": "HNNOMX", "VET": "VET", "BT": "BT", "WEZ": "западноєѵрѡпе́йское зи́мнее вре́мѧ", "HENOMX": "HENOMX", "UYT": "UYT", "HAT": "HAT", "HNOG": "HNOG", "MDT": "MDT", "AKST": "AKST", "CHADT": "CHADT", "MYT": "MYT", "WIB": "WIB", "MESZ": "среднеєѵрѡпе́йское лѣ́тнее вре́мѧ", "GMT": "сре́днее вре́мѧ по грі́нꙋичꙋ", "MST": "MST", "EDT": "восточноамерїка́нское лѣ́тнее вре́мѧ", "AKDT": "AKDT", "MEZ": "среднеєѵрѡпе́йское зи́мнее вре́мѧ", "JST": "JST", "CDT": "среднеамерїка́нское лѣ́тнее вре́мѧ", "AST": "а҆тланті́ческое зи́мнее вре́мѧ", "AEDT": "AEDT", "BOT": "BOT", "ACWST": "ACWST", "HNT": "HNT", "HKT": "HKT"},
++ locale: "cu_RU",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HADT": "HADT", "ACDT": "ACDT", "JDT": "JDT", "AWDT": "AWDT", "SGT": "SGT", "EDT": "EDT", "HKT": "HKT", "HEPMX": "HEPMX", "WESZ": "WESZ", "WAT": "WAT", "HNOG": "HNOG", "BT": "BT", "HNPMX": "HNPMX", "HECU": "HECU", "WARST": "WARST", "WITA": "WITA", "HNEG": "HNEG", "OESZ": "OESZ", "GFT": "GFT", "HKST": "HKST", "MST": "MST", "SRT": "SRT", "EAT": "EAT", "MEZ": "MEZ", "AWST": "AWST", "WAST": "WAST", "AKST": "AKST", "CLT": "CLT", "AST": "AST", "ChST": "ChST", "MESZ": "MESZ", "WEZ": "WEZ", "OEZ": "OEZ", "CDT": "CDT", "BOT": "BOT", "HAST": "HAST", "LHDT": "LHDT", "CHAST": "CHAST", "AKDT": "AKDT", "HAT": "HAT", "HEOG": "HEOG", "WIB": "WIB", "HEEG": "HEEG", "UYST": "UYST", "TMST": "TMST", "CLST": "CLST", "NZDT": "NZDT", "JST": "JST", "CHADT": "CHADT", "UYT": "UYT", "ACWST": "ACWST", "HNCU": "HNCU", "WART": "WART", "WIT": "WIT", "GYT": "GYT", "ECT": "ECT", "GMT": "GMT", "AEST": "AEST", "ACWDT": "ACWDT", "VET": "VET", "∅∅∅": "∅∅∅", "HNT": "HNT", "SAST": "SAST", "TMT": "TMT", "ACST": "ACST", "HENOMX": "HENOMX", "HEPM": "HEPM", "CST": "CST", "NZST": "NZST", "ARST": "ARST", "PDT": "PDT", "COT": "COT", "COST": "COST", "CAT": "CAT", "MDT": "MDT", "HNNOMX": "HNNOMX", "MYT": "MYT", "HNPM": "HNPM", "AEDT": "AEDT", "IST": "IST", "PST": "PST", "EST": "EST", "ADT": "ADT", "ART": "ART", "LHST": "LHST"},
+ }
+ }
+ 
+@@ -118,7 +94,7 @@ func (cu *cu_RU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (cu *cu_RU) MonthsAbbreviated() []string {
+- return cu.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -128,7 +104,7 @@ func (cu *cu_RU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (cu *cu_RU) MonthsNarrow() []string {
+- return cu.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -138,7 +114,7 @@ func (cu *cu_RU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (cu *cu_RU) MonthsWide() []string {
+- return cu.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -184,77 +160,13 @@ func (cu *cu_RU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'cu_RU' and handles both Whole and Real numbers based on 'v'
+ func (cu *cu_RU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, cu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(cu.group) - 1; j >= 0; j-- {
+- b = append(b, cu.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, cu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'cu_RU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (cu *cu_RU) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, cu.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, cu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, cu.percentSuffix...)
+-
+- b = append(b, cu.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'cu_RU'
+@@ -262,58 +174,7 @@ func (cu *cu_RU) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := cu.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, cu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(cu.group) - 1; j >= 0; j-- {
+- b = append(b, cu.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, cu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, cu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, cu.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'cu_RU'
+@@ -322,65 +183,7 @@ func (cu *cu_RU) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := cu.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, cu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(cu.group) - 1; j >= 0; j-- {
+- b = append(b, cu.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, cu.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, cu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, cu.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, cu.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'cu_RU'
+@@ -388,28 +191,6 @@ func (cu *cu_RU) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -418,17 +199,6 @@ func (cu *cu_RU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, cu.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -437,17 +207,6 @@ func (cu *cu_RU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, cu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -456,22 +215,6 @@ func (cu *cu_RU) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, cu.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, cu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0xd0, 0xbb}...)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -480,19 +223,6 @@ func (cu *cu_RU) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, cu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -501,26 +231,6 @@ func (cu *cu_RU) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, cu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, cu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -529,30 +239,6 @@ func (cu *cu_RU) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, cu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, cu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -561,34 +247,5 @@ func (cu *cu_RU) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, cu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, cu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := cu.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/cy/cy.go b/cy/cy.go
+index 0db534d..7ebeeef 100644
+--- a/cy/cy.go
++++ b/cy/cy.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"CC", "OC"},
+ erasNarrow: []string{"C", "O"},
+ erasWide: []string{"Cyn Crist", "Oed Crist"},
+- timezones: map[string]string{"WESZ": "Amser Haf Gorllewin Ewrop", "WITA": "Amser Canolbarth Indonesia", "AEDT": "Amser Haf Dwyrain Awstralia", "CHADT": "Amser Haf Chatham", "SAST": "Amser Safonol De Affrica", "ChST": "Amser Chamorro", "EST": "Amser Safonol Dwyrain Gogledd America", "IST": "Amser India", "WAT": "Amser Safonol Gorllewin Affrica", "HNT": "Amser Safonol Newfoundland", "ARST": "Amser Haf Ariannin", "UYST": "Amser Haf Uruguay", "NZDT": "Amser Haf Seland Newydd", "HEEG": "Amser Haf Dwyrain yr Ynys Las", "OESZ": "Amser Haf Dwyrain Ewrop", "CST": "Amser Safonol Canolbarth Gogledd America", "ACWDT": "Amser Haf Canolbarth Gorllewin Awstralia", "HKT": "Amser Safonol Hong Kong", "COST": "Amser Haf Colombia", "SGT": "Amser Singapore", "CDT": "Amser Haf Canolbarth Gogledd America", "GYT": "Amser Guyana", "MESZ": "Amser Haf Canolbarth Ewrop", "HNEG": "Amser Safonol Dwyrain yr Ynys Las", "HENOMX": "Amser Haf Gogledd Orllewin Mecsico", "WIB": "Amser Gorllewin Indonesia", "CHAST": "Amser Safonol Chatham", "TMST": "Amser Haf Tyrcmenistan", "HNCU": "Amser Safonol Cuba", "HADT": "Amser Haf Hawaii-Aleutian", "AEST": "Amser Safonol Dwyrain Awstralia", "HEPM": "Amser Haf Saint-Pierre-et-Miquelon", "∅∅∅": "Amser Haf Amazonas", "COT": "Amser Safonol Colombia", "GMT": "Amser Safonol Greenwich", "HEOG": "Amser Haf Gorllewin yr Ynys Las", "WART": "Amser Safonol Gorllewin Ariannin", "AST": "Amser Safonol Cefnfor yr Iwerydd", "HAST": "Amser Safonol Hawaii-Aleutian", "LHST": "Amser Safonol yr Arglwydd Howe", "JST": "Amser Safonol Siapan", "WAST": "Amser Haf Gorllewin Affrica", "OEZ": "Amser Safonol Dwyrain Ewrop", "HEPMX": "Amser Haf Pasiffig Mecsico", "VET": "Amser Venezuela", "SRT": "Amser Suriname", "PST": "Amser Safonol Cefnfor Tawel Gogledd America", "ACST": "Amser Safonol Canolbarth Awstralia", "ACDT": "Amser Haf Canolbarth Awstralia", "EAT": "Amser Dwyrain Affrica", "HNPMX": "Amser Safonol Pasiffig Mecsico", "PDT": "Amser Haf Cefnfor Tawel Gogledd America", "AKDT": "Amser Haf Alaska", "WIT": "Amser Dwyrain Indonesia", "AWDT": "Amser Haf Gorllewin Awstralia", "GFT": "Amser Guyane Ffrengig", "MDT": "MDT", "EDT": "Amser Haf Dwyrain Gogledd America", "AKST": "Amser Safonol Alaska", "HNPM": "Amser Safonol Saint-Pierre-et-Miquelon", "CLT": "Amser Safonol Chile", "CAT": "Amser Canolbarth Affrica", "UYT": "Amser Safonol Uruguay", "HKST": "Amser Haf Hong Kong", "LHDT": "Amser Haf yr Arglwydd Howe", "WEZ": "Amser Safonol Gorllewin Ewrop", "ART": "Amser Safonol Ariannin", "HNOG": "Amser Safonol Gorllewin yr Ynys Las", "WARST": "Amser Haf Gorllewin Ariannin", "HECU": "Amser Haf Cuba", "MYT": "Amser Malaysia", "BT": "Amser Bhutan", "MEZ": "Amser Safonol Canolbarth Ewrop", "BOT": "Amser Bolivia", "TMT": "Amser Safonol Tyrcmenistan", "ECT": "Amser Ecuador", "AWST": "Amser Safonol Gorllewin Awstralia", "CLST": "Amser Haf Chile", "JDT": "Amser Haf Siapan", "MST": "MST", "ACWST": "Amser Safonol Canolbarth Gorllewin Awstralia", "NZST": "Amser Safonol Seland Newydd", "HNNOMX": "Amser Safonol Gogledd Orllewin Mecsico", "ADT": "Amser Haf Cefnfor yr Iwerydd", "HAT": "Amser Haf Newfoundland"},
++ timezones: map[string]string{"∅∅∅": "Amser Haf Brasília", "CAT": "Amser Canolbarth Affrica", "MDT": "MDT", "HAST": "Amser Safonol Hawaii-Aleutian", "UYST": "Amser Haf Uruguay", "OEZ": "Amser Safonol Dwyrain Ewrop", "EST": "Amser Safonol Dwyrain Gogledd America", "MST": "MST", "HNPM": "Amser Safonol Saint-Pierre-et-Miquelon", "MYT": "Amser Malaysia", "HECU": "Amser Haf Cuba", "WART": "Amser Safonol Gorllewin Ariannin", "COT": "Amser Safonol Colombia", "TMST": "Amser Haf Tyrcmenistan", "ARST": "Amser Haf Ariannin", "AST": "Amser Safonol Cefnfor yr Iwerydd", "PST": "Amser Safonol Cefnfor Tawel Gogledd America", "HNPMX": "Amser Safonol Pasiffig Mecsico", "WIT": "Amser Dwyrain Indonesia", "TMT": "Amser Safonol Tyrcmenistan", "WIB": "Amser Gorllewin Indonesia", "BOT": "Amser Bolivia", "AWDT": "Amser Haf Gorllewin Awstralia", "HNCU": "Amser Safonol Cuba", "WAT": "Amser Safonol Gorllewin Affrica", "AKDT": "Amser Haf Alaska", "HEOG": "Amser Haf Gorllewin yr Ynys Las", "NZST": "Amser Safonol Seland Newydd", "JST": "Amser Safonol Siapan", "HNOG": "Amser Safonol Gorllewin yr Ynys Las", "ChST": "Amser Chamorro", "AWST": "Amser Safonol Gorllewin Awstralia", "HNT": "Amser Safonol Newfoundland", "HKT": "Amser Safonol Hong Kong", "HKST": "Amser Haf Hong Kong", "ART": "Amser Safonol Ariannin", "MEZ": "Amser Safonol Canolbarth Ewrop", "ACDT": "Amser Haf Canolbarth Awstralia", "HNEG": "Amser Safonol Dwyrain yr Ynys Las", "CHAST": "Amser Safonol Chatham", "PDT": "Amser Haf Cefnfor Tawel Gogledd America", "GYT": "Amser Guyana", "COST": "Amser Haf Colombia", "CLST": "Amser Haf Chile", "ADT": "Amser Haf Cefnfor yr Iwerydd", "EAT": "Amser Dwyrain Affrica", "OESZ": "Amser Haf Dwyrain Ewrop", "LHST": "Amser Safonol yr Arglwydd Howe", "AKST": "Amser Safonol Alaska", "WARST": "Amser Haf Gorllewin Ariannin", "ACWST": "Amser Safonol Canolbarth Gorllewin Awstralia", "WEZ": "Amser Safonol Gorllewin Ewrop", "MESZ": "Amser Haf Canolbarth Ewrop", "HEEG": "Amser Haf Dwyrain yr Ynys Las", "CHADT": "Amser Haf Chatham", "SGT": "Amser Singapore", "WITA": "Amser Canolbarth Indonesia", "ECT": "Amser Ecuador", "CST": "Amser Safonol Canolbarth Gogledd America", "HNNOMX": "Amser Safonol Gogledd Orllewin Mecsico", "AEDT": "Amser Haf Dwyrain Awstralia", "VET": "Amser Venezuela", "WAST": "Amser Haf Gorllewin Affrica", "GFT": "Amser Guyane Ffrengig", "CDT": "Amser Haf Canolbarth Gogledd America", "NZDT": "Amser Haf Seland Newydd", "GMT": "Amser Safonol Greenwich", "HEPM": "Amser Haf Saint-Pierre-et-Miquelon", "HEPMX": "Amser Haf Pasiffig Mecsico", "HAT": "Amser Haf Newfoundland", "EDT": "Amser Haf Dwyrain Gogledd America", "HADT": "Amser Haf Hawaii-Aleutian", "ACWDT": "Amser Haf Canolbarth Gorllewin Awstralia", "AEST": "Amser Safonol Dwyrain Awstralia", "WESZ": "Amser Haf Gorllewin Ewrop", "CLT": "Amser Safonol Chile", "JDT": "Amser Haf Siapan", "LHDT": "Amser Haf yr Arglwydd Howe", "IST": "Amser India", "BT": "Amser Bhutan", "SAST": "Amser Safonol De Affrica", "SRT": "Amser Suriname", "HENOMX": "Amser Haf Gogledd Orllewin Mecsico", "ACST": "Amser Safonol Canolbarth Awstralia", "UYT": "Amser Safonol Uruguay"},
+ }
+ }
+ 
+diff --git a/cy_GB/cy_GB.go b/cy_GB/cy_GB.go
+index 3a8051f..d96409b 100644
+--- a/cy_GB/cy_GB.go
++++ b/cy_GB/cy_GB.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type cy_GB struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'cy_GB' locale
+ func New() locales.Translator {
+ return &cy_GB{
+- locale: "cy_GB",
+- pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
+- pluralsRange: []locales.PluralRule{2, 3, 4, 5, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Ion", "Chwef", "Maw", "Ebrill", "Mai", "Meh", "Gorff", "Awst", "Medi", "Hyd", "Tach", "Rhag"},
+- monthsNarrow: []string{"", "I", "Ch", "M", "E", "M", "M", "G", "A", "M", "H", "T", "Rh"},
+- monthsWide: []string{"", "Ionawr", "Chwefror", "Mawrth", "Ebrill", "Mai", "Mehefin", "Gorffennaf", "Awst", "Medi", "Hydref", "Tachwedd", "Rhagfyr"},
+- daysAbbreviated: []string{"Sul", "Llun", "Maw", "Mer", "Iau", "Gwen", "Sad"},
+- daysNarrow: []string{"S", "Ll", "M", "M", "I", "G", "S"},
+- daysShort: []string{"Su", "Ll", "Ma", "Me", "Ia", "Gw", "Sa"},
+- daysWide: []string{"Dydd Sul", "Dydd Llun", "Dydd Mawrth", "Dydd Mercher", "Dydd Iau", "Dydd Gwener", "Dydd Sadwrn"},
+- periodsAbbreviated: []string{"yb", "yh"},
+- periodsNarrow: []string{"b", "h"},
+- periodsWide: []string{"yb", "yh"},
+- erasAbbreviated: []string{"CC", "OC"},
+- erasNarrow: []string{"C", "O"},
+- erasWide: []string{"Cyn Crist", "Oed Crist"},
+- timezones: map[string]string{"EAT": "Amser Dwyrain Affrica", "WIB": "Amser Gorllewin Indonesia", "HAST": "Amser Safonol Hawaii-Aleutian", "CHAST": "Amser Safonol Chatham", "CLT": "Amser Safonol Chile", "GFT": "Amser Guyane Ffrengig", "BOT": "Amser Bolivia", "HNEG": "Amser Safonol Dwyrain yr Ynys Las", "HENOMX": "Amser Haf Gogledd Orllewin Mecsico", "HADT": "Amser Haf Hawaii-Aleutian", "MEZ": "Amser Safonol Canolbarth Ewrop", "LHST": "Amser Safonol yr Arglwydd Howe", "IST": "Amser India", "CDT": "Amser Haf Canolbarth Gogledd America", "AKST": "Amser Safonol Alaska", "BT": "Amser Bhutan", "ART": "Amser Safonol Ariannin", "HNOG": "Amser Safonol Gorllewin yr Ynys Las", "JST": "Amser Safonol Siapan", "TMT": "Amser Safonol Tyrcmenistan", "TMST": "Amser Haf Tyrcmenistan", "UYST": "Amser Haf Uruguay", "PDT": "Amser Haf Cefnfor Tawel Gogledd America", "CLST": "Amser Haf Chile", "ACDT": "Amser Haf Canolbarth Awstralia", "PST": "Amser Safonol Cefnfor Tawel Gogledd America", "AEDT": "Amser Haf Dwyrain Awstralia", "HKST": "Amser Haf Hong Kong", "WARST": "Amser Haf Gorllewin Ariannin", "AST": "Amser Safonol Cefnfor yr Iwerydd", "MDT": "Amser Haf Mynyddoedd Gogledd America", "WITA": "Amser Canolbarth Indonesia", "HNPM": "Amser Safonol Saint-Pierre-et-Miquelon", "CHADT": "Amser Haf Chatham", "NZST": "Amser Safonol Seland Newydd", "HEEG": "Amser Haf Dwyrain yr Ynys Las", "UYT": "Amser Safonol Uruguay", "MST": "Amser Safonol Mynyddoedd Gogledd America", "ARST": "Amser Haf Ariannin", "OESZ": "Amser Haf Dwyrain Ewrop", "WAST": "Amser Haf Gorllewin Affrica", "AEST": "Amser Safonol Dwyrain Awstralia", "AWDT": "Amser Haf Gorllewin Awstralia", "WAT": "Amser Safonol Gorllewin Affrica", "HNNOMX": "Amser Safonol Gogledd Orllewin Mecsico", "WART": "Amser Safonol Gorllewin Ariannin", "ADT": "Amser Haf Cefnfor yr Iwerydd", "HEPM": "Amser Haf Saint-Pierre-et-Miquelon", "ChST": "Amser Chamorro", "ECT": "Amser Ecuador", "COT": "Amser Safonol Colombia", "HECU": "Amser Haf Cuba", "EST": "Amser Safonol Dwyrain Gogledd America", "HEPMX": "Amser Haf Pasiffig Mecsico", "HAT": "Amser Haf Newfoundland", "WESZ": "Amser Haf Gorllewin Ewrop", "LHDT": "Amser Haf yr Arglwydd Howe", "SGT": "Amser Singapore", "MYT": "Amser Malaysia", "WIT": "Amser Dwyrain Indonesia", "HNT": "Amser Safonol Newfoundland", "ACWDT": "Amser Haf Canolbarth Gorllewin Awstralia", "MESZ": "Amser Haf Canolbarth Ewrop", "JDT": "Amser Haf Siapan", "EDT": "Amser Haf Dwyrain Gogledd America", "CST": "Amser Safonol Canolbarth Gogledd America", "VET": "Amser Venezuela", "SRT": "Amser Suriname", "ACWST": "Amser Safonol Canolbarth Gorllewin Awstralia", "OEZ": "Amser Safonol Dwyrain Ewrop", "GYT": "Amser Guyana", "HKT": "Amser Safonol Hong Kong", "∅∅∅": "Amser Haf Amazonas", "ACST": "Amser Safonol Canolbarth Awstralia", "CAT": "Amser Canolbarth Affrica", "GMT": "Amser Safonol Greenwich", "HEOG": "Amser Haf Gorllewin yr Ynys Las", "WEZ": "Amser Safonol Gorllewin Ewrop", "HNPMX": "Amser Safonol Pasiffig Mecsico", "AKDT": "Amser Haf Alaska", "AWST": "Amser Safonol Gorllewin Awstralia", "NZDT": "Amser Haf Seland Newydd", "SAST": "Amser Safonol De Affrica", "COST": "Amser Haf Colombia", "HNCU": "Amser Safonol Cuba"},
++ locale: "cy_GB",
++ pluralsCardinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{1, 2, 3, 4, 5, 6},
++ pluralsRange: []locales.PluralRule{2, 3, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MDT": "MDT", "ART": "ART", "ADT": "ADT", "HNPM": "HNPM", "NZST": "NZST", "NZDT": "NZDT", "CST": "CST", "HNT": "HNT", "HNNOMX": "HNNOMX", "WESZ": "WESZ", "WAT": "WAT", "HECU": "HECU", "WEZ": "WEZ", "HNOG": "HNOG", "TMT": "TMT", "CDT": "CDT", "LHST": "LHST", "AEDT": "AEDT", "AKDT": "AKDT", "CLT": "CLT", "EAT": "EAT", "MEZ": "MEZ", "HEPMX": "HEPMX", "SGT": "SGT", "AKST": "AKST", "COT": "COT", "MST": "MST", "HEPM": "HEPM", "CHAST": "CHAST", "UYST": "UYST", "PST": "PST", "WARST": "WARST", "EDT": "EDT", "ChST": "ChST", "ARST": "ARST", "UYT": "UYT", "SAST": "SAST", "TMST": "TMST", "HKST": "HKST", "AST": "AST", "HEEG": "HEEG", "COST": "COST", "GYT": "GYT", "HENOMX": "HENOMX", "JST": "JST", "IST": "IST", "WITA": "WITA", "MESZ": "MESZ", "GFT": "GFT", "CHADT": "CHADT", "OEZ": "OEZ", "HAT": "HAT", "ECT": "ECT", "ACST": "ACST", "AEST": "AEST", "HNCU": "HNCU", "HNPMX": "HNPMX", "OESZ": "OESZ", "WIT": "WIT", "HEOG": "HEOG", "CLST": "CLST", "HAST": "HAST", "HADT": "HADT", "EST": "EST", "BT": "BT", "VET": "VET", "WAST": "WAST", "HKT": "HKT", "CAT": "CAT", "BOT": "BOT", "ACDT": "ACDT", "LHDT": "LHDT", "ACWDT": "ACWDT", "PDT": "PDT", "∅∅∅": "∅∅∅", "WIB": "WIB", "SRT": "SRT", "GMT": "GMT", "JDT": "JDT", "WART": "WART", "AWDT": "AWDT", "ACWST": "ACWST", "HNEG": "HNEG", "MYT": "MYT", "AWST": "AWST"},
+ }
+ }
+ 
+@@ -192,7 +169,7 @@ func (cy *cy_GB) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (cy *cy_GB) MonthsAbbreviated() []string {
+- return cy.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -202,7 +179,7 @@ func (cy *cy_GB) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (cy *cy_GB) MonthsNarrow() []string {
+- return cy.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -212,7 +189,7 @@ func (cy *cy_GB) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (cy *cy_GB) MonthsWide() []string {
+- return cy.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -258,73 +235,13 @@ func (cy *cy_GB) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'cy_GB' and handles both Whole and Real numbers based on 'v'
+ func (cy *cy_GB) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, cy.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, cy.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, cy.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'cy_GB' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (cy *cy_GB) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, cy.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, cy.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, cy.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'cy_GB'
+@@ -332,56 +249,7 @@ func (cy *cy_GB) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := cy.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, cy.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, cy.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, cy.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, cy.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'cy_GB'
+@@ -390,68 +258,7 @@ func (cy *cy_GB) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := cy.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, cy.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, cy.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, cy.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, cy.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, cy.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'cy_GB'
+@@ -459,27 +266,6 @@ func (cy *cy_GB) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -488,17 +274,6 @@ func (cy *cy_GB) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, cy.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -507,17 +282,6 @@ func (cy *cy_GB) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, cy.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -526,19 +290,6 @@ func (cy *cy_GB) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, cy.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, cy.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -547,19 +298,6 @@ func (cy *cy_GB) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, cy.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -568,26 +306,6 @@ func (cy *cy_GB) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, cy.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, cy.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -596,30 +314,6 @@ func (cy *cy_GB) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, cy.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, cy.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -628,34 +322,5 @@ func (cy *cy_GB) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, cy.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, cy.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := cy.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/da/da.go b/da/da.go
+index 4e5b9a7..a3314f2 100644
+--- a/da/da.go
++++ b/da/da.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"f.Kr.", "e.Kr."},
+ erasNarrow: []string{"fKr", "eKr"},
+ erasWide: []string{"f.Kr.", "e.Kr."},
+- timezones: map[string]string{"HNPM": "Saint Pierre- og Miquelon-normaltid", "CAT": "Centralafrikansk tid", "EST": "Eastern-normaltid", "MYT": "Malaysisk tid", "ACWST": "Vestlig centralaustralsk normaltid", "NZST": "Newzealandsk normaltid", "AST": "Atlantic-normaltid", "UYT": "Uruguayansk normaltid", "WEZ": "Vesteuropæisk normaltid", "COST": "Colombiansk sommertid", "GMT": "GMT", "EDT": "Eastern-sommertid", "PDT": "Pacific-sommertid", "HKT": "Hongkong-normaltid", "CLT": "Chilensk normaltid", "∅∅∅": "Amazonas-sommertid", "SRT": "Surinam-tid", "HKST": "Hongkong-sommertid", "CLST": "Chilensk sommertid", "HEEG": "Østgrønlandsk sommertid", "WAT": "Vestafrikansk normaltid", "SGT": "Singaporeansk normaltid", "AEST": "Østaustralsk normaltid", "AKST": "Alaska-normaltid", "ACWDT": "Vestlig centralaustralsk sommertid", "SAST": "Sydafrikansk tid", "TMT": "Turkmensk normaltid", "WARST": "Vestargentinsk sommertid", "AKDT": "Alaska-sommertid", "WIB": "Vestindonesisk tid", "COT": "Colombiansk normaltid", "HNNOMX": "Nordvestmexicansk normaltid", "UYST": "Uruguayansk sommertid", "WESZ": "Vesteuropæisk sommertid", "ART": "Argentinsk normaltid", "AEDT": "Østaustralsk sommertid", "HAT": "Newfoundlandsk sommertid", "MEZ": "Centraleuropæisk normaltid", "CHAST": "Chatham-normaltid", "BOT": "Boliviansk tid", "HENOMX": "Nordvestmexicansk sommertid", "HEPMX": "Mexicansk Pacific-sommertid", "PST": "Pacific-normaltid", "ChST": "Chamorro-tid", "HNEG": "Østgrønlandsk normaltid", "GFT": "Fransk Guyana-tid", "ACDT": "Centralaustralsk sommertid", "CST": "Central-normaltid", "ARST": "Argentinsk sommertid", "OEZ": "Østeuropæisk normaltid", "HNPMX": "Mexicansk Pacific-normaltid", "CDT": "Central-sommertid", "ADT": "Atlantic-sommertid", "GYT": "Guyana-tid", "HNT": "Newfoundlandsk normaltid", "HEPM": "Saint Pierre- og Miquelon-sommertid", "EAT": "Østafrikansk tid", "HNCU": "Cubansk normaltid", "HECU": "Cubansk sommertid", "MESZ": "Centraleuropæisk sommertid", "IST": "Indisk normaltid", "JDT": "Japansk sommertid", "TMST": "Turkmensk sommertid", "MST": "Macao-normaltid", "HAST": "Hawaii-Aleutian-normaltid", "AWDT": "Vestaustralsk sommertid", "JST": "Japansk normaltid", "ACST": "Centralaustralsk normaltid", "OESZ": "Østeuropæisk sommertid", "MDT": "Macao-sommertid", "HADT": "Hawaii-Aleutian-sommertid", "BT": "Bhutanesisk tid", "WIT": "Østindonesisk tid", "HNOG": "Vestgrønlandsk normaltid", "LHST": "Lord Howe-normaltid", "NZDT": "Newzealandsk sommertid", "CHADT": "Chatham-sommertid", "ECT": "Ecuadoriansk tid", "WART": "Vestargentinsk normaltid", "VET": "Venezuelansk tid", "HEOG": "Vestgrønlandsk sommertid", "WITA": "Centralindonesisk tid", "LHDT": "Lord Howe-sommertid", "WAST": "Vestafrikansk sommertid", "AWST": "Vestaustralsk normaltid"},
++ timezones: map[string]string{"OEZ": "Østeuropæisk normaltid", "WITA": "Centralindonesisk tid", "LHST": "Lord Howe-normaltid", "CDT": "Central-sommertid", "ADT": "Atlantic-sommertid", "HNEG": "Østgrønlandsk normaltid", "ACWDT": "Vestlig centralaustralsk sommertid", "CHADT": "Chatham-sommertid", "HNCU": "Cubansk normaltid", "COT": "Colombiansk normaltid", "SRT": "Surinam-tid", "HENOMX": "Nordvestmexicansk sommertid", "AEST": "Østaustralsk normaltid", "UYT": "Uruguayansk normaltid", "WESZ": "Vesteuropæisk sommertid", "HAT": "Newfoundlandsk sommertid", "WART": "Vestargentinsk normaltid", "EDT": "Eastern-sommertid", "HKST": "Hongkong-sommertid", "HADT": "Hawaii-Aleutian-sommertid", "ACDT": "Centralaustralsk sommertid", "BT": "Bhutanesisk tid", "HNOG": "Vestgrønlandsk normaltid", "HEOG": "Vestgrønlandsk sommertid", "CAT": "Centralafrikansk tid", "MST": "Macao-normaltid", "NZST": "Newzealandsk normaltid", "ECT": "Ecuadoriansk tid", "LHDT": "Lord Howe-sommertid", "∅∅∅": "Brasiliansk sommertid", "TMST": "Turkmensk sommertid", "ARST": "Argentinsk sommertid", "AWST": "Vestaustralsk normaltid", "MYT": "Malaysisk tid", "PST": "Pacific-normaltid", "ACWST": "Vestlig centralaustralsk normaltid", "VET": "Venezuelansk tid", "HEPMX": "Mexicansk Pacific-sommertid", "WAST": "Vestafrikansk sommertid", "COST": "Colombiansk sommertid", "HKT": "Hongkong-normaltid", "HEEG": "Østgrønlandsk sommertid", "HECU": "Cubansk sommertid", "TMT": "Turkmensk normaltid", "BOT": "Boliviansk tid", "ACST": "Centralaustralsk normaltid", "HNPM": "Saint Pierre- og Miquelon-normaltid", "HEPM": "Saint Pierre- og Miquelon-sommertid", "IST": "Indisk normaltid", "GYT": "Guyana-tid", "CLST": "Chilensk sommertid", "GMT": "GMT", "ART": "Argentinsk normaltid", "HAST": "Hawaii-Aleutian-normaltid", "JDT": "Japansk sommertid", "AKDT": "Alaska-sommertid", "ChST": "Chamorro-tid", "WEZ": "Vesteuropæisk normaltid", "WARST": "Vestargentinsk sommertid", "WIB": "Vestindonesisk tid", "AWDT": "Vestaustralsk sommertid", "SAST": "Sydafrikansk tid", "MESZ": "Centraleuropæisk sommertid", "PDT": "Pacific-sommertid", "CHAST": "Chatham-normaltid", "CLT": "Chilensk normaltid", "CST": "Central-normaltid", "MDT": "Macao-sommertid", "JST": "Japansk normaltid", "AEDT": "Østaustralsk sommertid", "HNPMX": "Mexicansk Pacific-normaltid", "HNT": "Newfoundlandsk normaltid", "WIT": "Østindonesisk tid", "NZDT": "Newzealandsk sommertid", "MEZ": "Centraleuropæisk normaltid", "HNNOMX": "Nordvestmexicansk normaltid", "UYST": "Uruguayansk sommertid", "SGT": "Singaporeansk normaltid", "OESZ": "Østeuropæisk sommertid", "GFT": "Fransk Guyana-tid", "EST": "Eastern-normaltid", "AST": "Atlantic-normaltid", "EAT": "Østafrikansk tid", "WAT": "Vestafrikansk normaltid", "AKST": "Alaska-normaltid"},
+ }
+ }
+ 
+diff --git a/da_DK/da_DK.go b/da_DK/da_DK.go
+index 9a945fa..d0d0f24 100644
+--- a/da_DK/da_DK.go
++++ b/da_DK/da_DK.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type da_DK struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'da_DK' locale
+ func New() locales.Translator {
+ return &da_DK{
+- locale: "da_DK",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ".",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mar.", "apr.", "maj", "jun.", "jul.", "aug.", "sep.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januar", "februar", "marts", "april", "maj", "juni", "juli", "august", "september", "oktober", "november", "december"},
+- daysAbbreviated: []string{"søn.", "man.", "tir.", "ons.", "tor.", "fre.", "lør."},
+- daysNarrow: []string{"S", "M", "T", "O", "T", "F", "L"},
+- daysShort: []string{"sø", "ma", "ti", "on", "to", "fr", "lø"},
+- daysWide: []string{"søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"f.Kr.", "e.Kr."},
+- erasNarrow: []string{"fKr", "eKr"},
+- erasWide: []string{"f.Kr.", "e.Kr."},
+- timezones: map[string]string{"JDT": "Japansk sommertid", "VET": "Venezuelansk tid", "ARST": "Argentinsk sommertid", "HNPM": "Saint Pierre- og Miquelon-normaltid", "AWST": "Vestaustralsk normaltid", "GFT": "Fransk Guyana-tid", "AST": "Atlantic-normaltid", "HADT": "Hawaii-Aleutian-sommertid", "AEDT": "Østaustralsk sommertid", "HEEG": "Østgrønlandsk sommertid", "PST": "Pacific-normaltid", "AEST": "Østaustralsk normaltid", "CLT": "Chilensk normaltid", "TMST": "Turkmensk sommertid", "ACWST": "Vestlig centralaustralsk normaltid", "MESZ": "Centraleuropæisk sommertid", "WAT": "Vestafrikansk normaltid", "MST": "Macao-normaltid", "SRT": "Surinam-tid", "LHDT": "Lord Howe-sommertid", "HKT": "Hongkong-normaltid", "HKST": "Hongkong-sommertid", "ACDT": "Centralaustralsk sommertid", "WARST": "Vestargentinsk sommertid", "UYST": "Uruguayansk sommertid", "WIT": "Østindonesisk tid", "ACWDT": "Vestlig centralaustralsk sommertid", "HAT": "Newfoundlandsk sommertid", "AWDT": "Vestaustralsk sommertid", "SAST": "Sydafrikansk tid", "WART": "Vestargentinsk normaltid", "SGT": "Singaporeansk normaltid", "HAST": "Hawaii-Aleutian-normaltid", "ECT": "Ecuadoriansk tid", "COT": "Colombiansk normaltid", "EDT": "Eastern-sommertid", "UYT": "Uruguayansk normaltid", "IST": "Indisk normaltid", "CLST": "Chilensk sommertid", "ChST": "Chamorro-tid", "ACST": "Centralaustralsk normaltid", "CHAST": "Chatham-normaltid", "MEZ": "Centraleuropæisk normaltid", "WIB": "Vestindonesisk tid", "BOT": "Boliviansk tid", "OESZ": "Østeuropæisk sommertid", "CDT": "Central-sommertid", "ADT": "Atlantic-sommertid", "MDT": "Macao-sommertid", "HNPMX": "Mexicansk Pacific-normaltid", "HEPM": "Saint Pierre- og Miquelon-sommertid", "LHST": "Lord Howe-normaltid", "WAST": "Vestafrikansk sommertid", "HNNOMX": "Nordvestmexicansk normaltid", "HNCU": "Cubansk normaltid", "GMT": "GMT", "WITA": "Centralindonesisk tid", "HECU": "Cubansk sommertid", "BT": "Bhutanesisk tid", "ART": "Argentinsk normaltid", "PDT": "Pacific-sommertid", "HNEG": "Østgrønlandsk normaltid", "OEZ": "Østeuropæisk normaltid", "AKST": "Alaska-normaltid", "WESZ": "Vesteuropæisk sommertid", "CST": "Central-normaltid", "MYT": "Malaysisk tid", "HNT": "Newfoundlandsk normaltid", "HNOG": "Vestgrønlandsk normaltid", "∅∅∅": "Amazonas-sommertid", "EAT": "Østafrikansk tid", "CAT": "Centralafrikansk tid", "AKDT": "Alaska-sommertid", "TMT": "Turkmensk normaltid", "HENOMX": "Nordvestmexicansk sommertid", "EST": "Eastern-normaltid", "WEZ": "Vesteuropæisk normaltid", "HEOG": "Vestgrønlandsk sommertid", "NZST": "Newzealandsk normaltid", "NZDT": "Newzealandsk sommertid", "CHADT": "Chatham-sommertid", "JST": "Japansk normaltid", "COST": "Colombiansk sommertid", "HEPMX": "Mexicansk Pacific-sommertid", "GYT": "Guyana-tid"},
++ locale: "da_DK",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNT": "HNT", "HAST": "HAST", "HNNOMX": "HNNOMX", "AEDT": "AEDT", "CLT": "CLT", "NZST": "NZST", "VET": "VET", "EDT": "EDT", "AST": "AST", "ART": "ART", "EAT": "EAT", "HADT": "HADT", "ACDT": "ACDT", "HNPM": "HNPM", "CHADT": "CHADT", "WAST": "WAST", "WART": "WART", "TMST": "TMST", "CST": "CST", "AWST": "AWST", "WESZ": "WESZ", "GFT": "GFT", "COST": "COST", "UYST": "UYST", "HEPMX": "HEPMX", "OESZ": "OESZ", "HAT": "HAT", "GYT": "GYT", "NZDT": "NZDT", "HEEG": "HEEG", "HNPMX": "HNPMX", "HNOG": "HNOG", "WITA": "WITA", "WIB": "WIB", "HENOMX": "HENOMX", "MYT": "MYT", "EST": "EST", "CAT": "CAT", "ECT": "ECT", "MEZ": "MEZ", "HECU": "HECU", "OEZ": "OEZ", "CLST": "CLST", "MDT": "MDT", "ADT": "ADT", "IST": "IST", "SGT": "SGT", "COT": "COT", "∅∅∅": "∅∅∅", "GMT": "GMT", "HEPM": "HEPM", "JDT": "JDT", "PST": "PST", "WEZ": "WEZ", "HKST": "HKST", "CDT": "CDT", "AEST": "AEST", "CHAST": "CHAST", "UYT": "UYT", "WARST": "WARST", "HEOG": "HEOG", "MST": "MST", "BT": "BT", "AKDT": "AKDT", "SAST": "SAST", "ARST": "ARST", "BOT": "BOT", "HNEG": "HNEG", "ACWST": "ACWST", "WIT": "WIT", "ChST": "ChST", "SRT": "SRT", "HNCU": "HNCU", "WAT": "WAT", "HKT": "HKT", "ACST": "ACST", "LHDT": "LHDT", "JST": "JST", "PDT": "PDT", "ACWDT": "ACWDT", "TMT": "TMT", "MESZ": "MESZ", "AWDT": "AWDT", "LHST": "LHST", "AKST": "AKST"},
+ }
+ }
+ 
+@@ -141,7 +116,7 @@ func (da *da_DK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (da *da_DK) MonthsAbbreviated() []string {
+- return da.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -151,7 +126,7 @@ func (da *da_DK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (da *da_DK) MonthsNarrow() []string {
+- return da.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -161,7 +136,7 @@ func (da *da_DK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (da *da_DK) MonthsWide() []string {
+- return da.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -207,75 +182,13 @@ func (da *da_DK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'da_DK' and handles both Whole and Real numbers based on 'v'
+ func (da *da_DK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, da.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, da.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, da.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'da_DK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (da *da_DK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, da.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, da.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, da.percentSuffix...)
+-
+- b = append(b, da.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'da_DK'
+@@ -283,56 +196,7 @@ func (da *da_DK) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := da.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, da.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, da.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, da.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, da.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, da.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'da_DK'
+@@ -341,63 +205,7 @@ func (da *da_DK) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := da.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, da.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, da.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, da.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, da.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, da.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, da.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'da_DK'
+@@ -405,27 +213,6 @@ func (da *da_DK) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -434,17 +221,6 @@ func (da *da_DK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, da.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -453,17 +229,6 @@ func (da *da_DK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, da.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -472,20 +237,6 @@ func (da *da_DK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, da.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65, 0x6e}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, da.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -494,19 +245,6 @@ func (da *da_DK) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -515,26 +253,6 @@ func (da *da_DK) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -543,30 +261,6 @@ func (da *da_DK) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -575,34 +269,5 @@ func (da *da_DK) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := da.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/da_GL/da_GL.go b/da_GL/da_GL.go
+index 5aa46bb..1d1e937 100644
+--- a/da_GL/da_GL.go
++++ b/da_GL/da_GL.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type da_GL struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'da_GL' locale
+ func New() locales.Translator {
+ return &da_GL{
+- locale: "da_GL",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ".",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mar.", "apr.", "maj", "jun.", "jul.", "aug.", "sep.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januar", "februar", "marts", "april", "maj", "juni", "juli", "august", "september", "oktober", "november", "december"},
+- daysAbbreviated: []string{"søn.", "man.", "tir.", "ons.", "tor.", "fre.", "lør."},
+- daysNarrow: []string{"S", "M", "T", "O", "T", "F", "L"},
+- daysShort: []string{"sø", "ma", "ti", "on", "to", "fr", "lø"},
+- daysWide: []string{"søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"f.Kr.", "e.Kr."},
+- erasNarrow: []string{"fKr", "eKr"},
+- erasWide: []string{"f.Kr.", "e.Kr."},
+- timezones: map[string]string{"HNNOMX": "Nordvestmexicansk normaltid", "COST": "Colombiansk sommertid", "WEZ": "Vesteuropæisk normaltid", "MEZ": "Centraleuropæisk normaltid", "TMT": "Turkmensk normaltid", "SAST": "Sydafrikansk tid", "∅∅∅": "Amazonas-sommertid", "CDT": "Central-sommertid", "JDT": "Japansk sommertid", "WART": "Vestargentinsk normaltid", "HNPMX": "Mexicansk Pacific-normaltid", "HEPMX": "Mexicansk Pacific-sommertid", "GYT": "Guyana-tid", "SRT": "Surinam-tid", "ART": "Argentinsk normaltid", "AWDT": "Vestaustralsk sommertid", "IST": "Indisk normaltid", "COT": "Colombiansk normaltid", "ARST": "Argentinsk sommertid", "HNOG": "Vestgrønlandsk normaltid", "CHAST": "Chatham-normaltid", "SGT": "Singaporeansk normaltid", "AEDT": "Østaustralsk sommertid", "NZST": "Newzealandsk normaltid", "EAT": "Østafrikansk tid", "ACWST": "Vestlig centralaustralsk normaltid", "PDT": "Pacific-sommertid", "HKST": "Hongkong-sommertid", "JST": "Japansk normaltid", "MST": "Mountain-normaltid", "MDT": "Mountain-sommertid", "WIT": "Østindonesisk tid", "LHST": "Lord Howe-normaltid", "LHDT": "Lord Howe-sommertid", "GFT": "Fransk Guyana-tid", "OESZ": "Østeuropæisk sommertid", "CAT": "Centralafrikansk tid", "WIB": "Vestindonesisk tid", "HADT": "Hawaii-Aleutian-sommertid", "WITA": "Centralindonesisk tid", "CLST": "Chilensk sommertid", "HNEG": "Østgrønlandsk normaltid", "HNCU": "Cubansk normaltid", "MYT": "Malaysisk tid", "HAT": "Newfoundlandsk sommertid", "NZDT": "Newzealandsk sommertid", "MESZ": "Centraleuropæisk sommertid", "AKST": "Alaska-normaltid", "CST": "Central-normaltid", "WESZ": "Vesteuropæisk sommertid", "HEPM": "Saint Pierre- og Miquelon-sommertid", "TMST": "Turkmensk sommertid", "AKDT": "Alaska-sommertid", "AWST": "Vestaustralsk normaltid", "ECT": "Ecuadoriansk tid", "GMT": "GMT", "VET": "Venezuelansk tid", "PST": "Pacific-normaltid", "HENOMX": "Nordvestmexicansk sommertid", "WARST": "Vestargentinsk sommertid", "EDT": "Eastern-sommertid", "HKT": "Hongkong-normaltid", "AEST": "Østaustralsk normaltid", "HNPM": "Saint Pierre- og Miquelon-normaltid", "OEZ": "Østeuropæisk normaltid", "AST": "Atlantic-normaltid", "ADT": "Atlantic-sommertid", "ACWDT": "Vestlig centralaustralsk sommertid", "HEEG": "Østgrønlandsk sommertid", "ACST": "Centralaustralsk normaltid", "UYT": "Uruguayansk normaltid", "CHADT": "Chatham-sommertid", "WAST": "Vestafrikansk sommertid", "EST": "Eastern-normaltid", "ChST": "Chamorro-tid", "WAT": "Vestafrikansk normaltid", "HAST": "Hawaii-Aleutian-normaltid", "HEOG": "Vestgrønlandsk sommertid", "CLT": "Chilensk normaltid", "ACDT": "Centralaustralsk sommertid", "HECU": "Cubansk sommertid", "UYST": "Uruguayansk sommertid", "BT": "Bhutanesisk tid", "HNT": "Newfoundlandsk normaltid", "BOT": "Boliviansk tid"},
++ locale: "da_GL",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEPMX": "HEPMX", "WAT": "WAT", "COT": "COT", "HEOG": "HEOG", "TMST": "TMST", "NZST": "NZST", "HEPM": "HEPM", "CHAST": "CHAST", "AEDT": "AEDT", "WESZ": "WESZ", "VET": "VET", "MST": "MST", "BOT": "BOT", "HEEG": "HEEG", "PDT": "PDT", "UYST": "UYST", "ACWST": "ACWST", "MDT": "MDT", "ECT": "ECT", "MEZ": "MEZ", "LHST": "LHST", "HNPMX": "HNPMX", "HKT": "HKT", "TMT": "TMT", "AWDT": "AWDT", "UYT": "UYT", "ACDT": "ACDT", "ACWDT": "ACWDT", "HNT": "HNT", "HKST": "HKST", "WIB": "WIB", "ChST": "ChST", "SAST": "SAST", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "JST": "JST", "PST": "PST", "SGT": "SGT", "OEZ": "OEZ", "HAT": "HAT", "CLT": "CLT", "CST": "CST", "AWST": "AWST", "ACST": "ACST", "MYT": "MYT", "BT": "BT", "OESZ": "OESZ", "COST": "COST", "ART": "ART", "HNEG": "HNEG", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "WITA": "WITA", "HAST": "HAST", "IST": "IST", "HNPM": "HNPM", "HNCU": "HNCU", "AKST": "AKST", "GFT": "GFT", "WARST": "WARST", "CLST": "CLST", "NZDT": "NZDT", "MESZ": "MESZ", "JDT": "JDT", "WART": "WART", "WIT": "WIT", "GYT": "GYT", "HADT": "HADT", "EAT": "EAT", "HENOMX": "HENOMX", "LHDT": "LHDT", "HECU": "HECU", "CAT": "CAT", "ADT": "ADT", "GMT": "GMT", "SRT": "SRT", "EDT": "EDT", "ARST": "ARST", "AEST": "AEST", "WAST": "WAST", "AKDT": "AKDT", "HNOG": "HNOG", "EST": "EST", "CDT": "CDT", "AST": "AST"},
+ }
+ }
+ 
+@@ -141,7 +116,7 @@ func (da *da_GL) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (da *da_GL) MonthsAbbreviated() []string {
+- return da.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -151,7 +126,7 @@ func (da *da_GL) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (da *da_GL) MonthsNarrow() []string {
+- return da.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -161,7 +136,7 @@ func (da *da_GL) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (da *da_GL) MonthsWide() []string {
+- return da.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -207,75 +182,13 @@ func (da *da_GL) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'da_GL' and handles both Whole and Real numbers based on 'v'
+ func (da *da_GL) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, da.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, da.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, da.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'da_GL' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (da *da_GL) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, da.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, da.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, da.percentSuffix...)
+-
+- b = append(b, da.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'da_GL'
+@@ -283,56 +196,7 @@ func (da *da_GL) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := da.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, da.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, da.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, da.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, da.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, da.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'da_GL'
+@@ -341,63 +205,7 @@ func (da *da_GL) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := da.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, da.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, da.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, da.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, da.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, da.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, da.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'da_GL'
+@@ -405,27 +213,6 @@ func (da *da_GL) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -434,17 +221,6 @@ func (da *da_GL) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, da.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -453,17 +229,6 @@ func (da *da_GL) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, da.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -472,20 +237,6 @@ func (da *da_GL) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, da.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65, 0x6e}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, da.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/dav/dav.go b/dav/dav.go
+index 8db3743..0b18008 100644
+--- a/dav/dav.go
++++ b/dav/dav.go
+@@ -63,7 +63,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"KK", "BK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kabla ya Kristo", "Baada ya Kristo"},
+- timezones: map[string]string{"ACST": "ACST", "HNT": "HNT", "HNPM": "HNPM", "LHDT": "LHDT", "CHAST": "CHAST", "GFT": "GFT", "CDT": "CDT", "AST": "AST", "WIB": "WIB", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "ECT": "ECT", "WARST": "WARST", "JST": "JST", "SRT": "SRT", "PST": "PST", "MEZ": "MEZ", "NZDT": "NZDT", "CLST": "CLST", "ChST": "ChST", "BOT": "BOT", "EAT": "EAT", "BT": "BT", "HNOG": "HNOG", "HEOG": "HEOG", "HKST": "HKST", "NZST": "NZST", "COST": "COST", "HENOMX": "HENOMX", "GMT": "GMT", "EST": "EST", "HEPMX": "HEPMX", "HNEG": "HNEG", "ACDT": "ACDT", "EDT": "EDT", "MYT": "MYT", "AKST": "AKST", "MESZ": "MESZ", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "SGT": "SGT", "HECU": "HECU", "HKT": "HKT", "OESZ": "OESZ", "HNPMX": "HNPMX", "MDT": "MDT", "WEZ": "WEZ", "HEPM": "HEPM", "UYT": "UYT", "AKDT": "AKDT", "WIT": "WIT", "CHADT": "CHADT", "JDT": "JDT", "TMST": "TMST", "HAST": "HAST", "MST": "MST", "AWST": "AWST", "TMT": "TMT", "WAT": "WAT", "COT": "COT", "CST": "CST", "VET": "VET", "ACWST": "ACWST", "ART": "ART", "OEZ": "OEZ", "WART": "WART", "ACWDT": "ACWDT", "CLT": "CLT", "WAST": "WAST", "UYST": "UYST", "AEST": "AEST", "AEDT": "AEDT", "IST": "IST", "GYT": "GYT", "ARST": "ARST", "WITA": "WITA", "LHST": "LHST", "SAST": "SAST", "ADT": "ADT", "HNCU": "HNCU", "HADT": "HADT", "PDT": "PDT", "WESZ": "WESZ", "HAT": "HAT", "CAT": "CAT"},
++ timezones: map[string]string{"HNOG": "HNOG", "NZST": "NZST", "NZDT": "NZDT", "GMT": "GMT", "BOT": "BOT", "AWST": "AWST", "UYT": "UYT", "VET": "VET", "IST": "IST", "ACWDT": "ACWDT", "OEZ": "OEZ", "EST": "EST", "EAT": "EAT", "HEPM": "HEPM", "JDT": "JDT", "AKDT": "AKDT", "HAT": "HAT", "HEOG": "HEOG", "CLT": "CLT", "WIB": "WIB", "AWDT": "AWDT", "AKST": "AKST", "WART": "WART", "COST": "COST", "HEEG": "HEEG", "BT": "BT", "SGT": "SGT", "HECU": "HECU", "∅∅∅": "∅∅∅", "WITA": "WITA", "ARST": "ARST", "HNEG": "HNEG", "HENOMX": "HENOMX", "EDT": "EDT", "CHADT": "CHADT", "WARST": "WARST", "MEZ": "MEZ", "MYT": "MYT", "PDT": "PDT", "CDT": "CDT", "MST": "MST", "PST": "PST", "HEPMX": "HEPMX", "ChST": "ChST", "ACWST": "ACWST", "AEST": "AEST", "AEDT": "AEDT", "WIT": "WIT", "HKT": "HKT", "HKST": "HKST", "TMST": "TMST", "HADT": "HADT", "LHDT": "LHDT", "JST": "JST", "SAST": "SAST", "ART": "ART", "SRT": "SRT", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "UYST": "UYST", "HNCU": "HNCU", "WAST": "WAST", "COT": "COT", "CST": "CST", "ECT": "ECT", "LHST": "LHST", "HNPMX": "HNPMX", "HNT": "HNT", "CAT": "CAT", "HAST": "HAST", "ACST": "ACST", "WESZ": "WESZ", "GFT": "GFT", "GYT": "GYT", "CLST": "CLST", "MDT": "MDT", "ADT": "ADT", "ACDT": "ACDT", "CHAST": "CHAST", "WEZ": "WEZ", "WAT": "WAT", "OESZ": "OESZ", "TMT": "TMT", "AST": "AST", "HNPM": "HNPM"},
+ }
+ }
+ 
+diff --git a/dav_KE/dav_KE.go b/dav_KE/dav_KE.go
+index ff70678..ca1274b 100644
+--- a/dav_KE/dav_KE.go
++++ b/dav_KE/dav_KE.go
+@@ -10,60 +10,45 @@ import (
+ )
+ 
+ type dav_KE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'dav_KE' locale
+ func New() locales.Translator {
+ return &dav_KE{
+- locale: "dav_KE",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Imb", "Kaw", "Kad", "Kan", "Kas", "Kar", "Mfu", "Wun", "Ike", "Iku", "Imw", "Iwi"},
+- monthsNarrow: []string{"", "I", "K", "K", "K", "K", "K", "M", "W", "I", "I", "I", "I"},
+- monthsWide: []string{"", "Mori ghwa imbiri", "Mori ghwa kawi", "Mori ghwa kadadu", "Mori ghwa kana", "Mori ghwa kasanu", "Mori ghwa karandadu", "Mori ghwa mfungade", "Mori ghwa wunyanya", "Mori ghwa ikenda", "Mori ghwa ikumi", "Mori ghwa ikumi na imweri", "Mori ghwa ikumi na iwi"},
+- daysAbbreviated: []string{"Jum", "Jim", "Kaw", "Kad", "Kan", "Kas", "Ngu"},
+- daysNarrow: []string{"J", "J", "K", "K", "K", "K", "N"},
+- daysWide: []string{"Ituku ja jumwa", "Kuramuka jimweri", "Kuramuka kawi", "Kuramuka kadadu", "Kuramuka kana", "Kuramuka kasanu", "Kifula nguwo"},
+- periodsAbbreviated: []string{"Luma lwa K", "luma lwa p"},
+- periodsWide: []string{"Luma lwa K", "luma lwa p"},
+- erasAbbreviated: []string{"KK", "BK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kabla ya Kristo", "Baada ya Kristo"},
+- timezones: map[string]string{"EAT": "EAT", "HECU": "HECU", "MST": "MST", "AWDT": "AWDT", "NZDT": "NZDT", "AKST": "AKST", "PDT": "PDT", "HAT": "HAT", "HKT": "HKT", "IST": "IST", "HENOMX": "HENOMX", "WIB": "WIB", "WEZ": "WEZ", "ACWST": "ACWST", "LHDT": "LHDT", "NZST": "NZST", "OEZ": "OEZ", "UYT": "UYT", "SRT": "SRT", "HNT": "HNT", "EDT": "EDT", "MYT": "MYT", "HKST": "HKST", "SGT": "SGT", "VET": "VET", "ART": "ART", "ECT": "ECT", "COT": "COT", "COST": "COST", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "AKDT": "AKDT", "CST": "CST", "CHADT": "CHADT", "WARST": "WARST", "JDT": "JDT", "BOT": "BOT", "GMT": "GMT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "ADT": "ADT", "AEST": "AEST", "CLT": "CLT", "MESZ": "MESZ", "OESZ": "OESZ", "HAST": "HAST", "AEDT": "AEDT", "WITA": "WITA", "ChST": "ChST", "TMST": "TMST", "MDT": "MDT", "ARST": "ARST", "JST": "JST", "ACDT": "ACDT", "EST": "EST", "GYT": "GYT", "WIT": "WIT", "HNOG": "HNOG", "AWST": "AWST", "GFT": "GFT", "TMT": "TMT", "CAT": "CAT", "HADT": "HADT", "HEPM": "HEPM", "CLST": "CLST", "WAST": "WAST", "UYST": "UYST", "MEZ": "MEZ", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "HEEG": "HEEG", "WAT": "WAT", "AST": "AST", "PST": "PST", "WESZ": "WESZ", "ACWDT": "ACWDT", "HNPM": "HNPM", "ACST": "ACST", "WART": "WART", "CDT": "CDT", "BT": "BT", "HEOG": "HEOG", "SAST": "SAST", "LHST": "LHST", "CHAST": "CHAST"},
++ locale: "dav_KE",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CLT": "CLT", "JDT": "JDT", "UYST": "UYST", "∅∅∅": "∅∅∅", "PDT": "PDT", "WEZ": "WEZ", "SGT": "SGT", "WAT": "WAT", "WIB": "WIB", "EAT": "EAT", "HNNOMX": "HNNOMX", "MEZ": "MEZ", "HAT": "HAT", "COST": "COST", "TMST": "TMST", "BT": "BT", "HNCU": "HNCU", "OEZ": "OEZ", "HNOG": "HNOG", "NZST": "NZST", "ACST": "ACST", "HNEG": "HNEG", "LHDT": "LHDT", "AKST": "AKST", "CLST": "CLST", "CST": "CST", "ART": "ART", "ADT": "ADT", "HEEG": "HEEG", "AST": "AST", "JST": "JST", "AEST": "AEST", "CHAST": "CHAST", "UYT": "UYT", "HKT": "HKT", "HKST": "HKST", "CDT": "CDT", "MESZ": "MESZ", "HNPM": "HNPM", "AEDT": "AEDT", "WART": "WART", "SAST": "SAST", "EDT": "EDT", "MST": "MST", "HAST": "HAST", "MYT": "MYT", "HNPMX": "HNPMX", "WARST": "WARST", "MDT": "MDT", "AWST": "AWST", "LHST": "LHST", "CHADT": "CHADT", "AKDT": "AKDT", "GFT": "GFT", "WIT": "WIT", "WITA": "WITA", "SRT": "SRT", "ACDT": "ACDT", "HEPM": "HEPM", "GYT": "GYT", "BOT": "BOT", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "ACWST": "ACWST", "VET": "VET", "TMT": "TMT", "IST": "IST", "HEOG": "HEOG", "WAST": "WAST", "HNT": "HNT", "ARST": "ARST", "GMT": "GMT", "HADT": "HADT", "HECU": "HECU", "OESZ": "OESZ", "COT": "COT", "EST": "EST", "CAT": "CAT", "ECT": "ECT", "ChST": "ChST", "AWDT": "AWDT", "PST": "PST", "HEPMX": "HEPMX", "WESZ": "WESZ", "NZDT": "NZDT"},
+ }
+ }
+ 
+@@ -109,7 +94,7 @@ func (dav *dav_KE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (dav *dav_KE) MonthsAbbreviated() []string {
+- return dav.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -119,7 +104,7 @@ func (dav *dav_KE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (dav *dav_KE) MonthsNarrow() []string {
+- return dav.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -129,7 +114,7 @@ func (dav *dav_KE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (dav *dav_KE) MonthsWide() []string {
+- return dav.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -189,56 +174,7 @@ func (dav *dav_KE) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := dav.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dav.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, dav.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, dav.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, dav.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'dav_KE'
+@@ -247,68 +183,7 @@ func (dav *dav_KE) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := dav.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dav.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, dav.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, dav.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, dav.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, dav.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'dav_KE'
+@@ -316,27 +191,6 @@ func (dav *dav_KE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -345,17 +199,6 @@ func (dav *dav_KE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, dav.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -364,17 +207,6 @@ func (dav *dav_KE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, dav.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -383,19 +215,6 @@ func (dav *dav_KE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, dav.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, dav.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -404,19 +223,6 @@ func (dav *dav_KE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dav.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -425,26 +231,6 @@ func (dav *dav_KE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dav.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dav.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -453,30 +239,6 @@ func (dav *dav_KE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dav.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dav.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -485,34 +247,5 @@ func (dav *dav_KE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dav.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dav.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := dav.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/de/de.go b/de/de.go
+index eb0b105..f3eea31 100644
+--- a/de/de.go
++++ b/de/de.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"v. Chr.", "n. Chr."},
+ erasNarrow: []string{"v. Chr.", "n. Chr."},
+ erasWide: []string{"v. Chr.", "n. Chr."},
+- timezones: map[string]string{"PDT": "Nordamerikanische Westküsten-Sommerzeit", "LHST": "Lord-Howe-Normalzeit", "ACDT": "Zentralaustralische Sommerzeit", "COST": "Kolumbianische Sommerzeit", "HKT": "Hongkong-Normalzeit", "CLT": "Chilenische Normalzeit", "JDT": "Japanische Sommerzeit", "OESZ": "Osteuropäische Sommerzeit", "MST": "Macau-Normalzeit", "AKST": "Alaska-Normalzeit", "GYT": "Guyana-Zeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "HNOG": "Westgrönland-Normalzeit", "WAT": "Westafrikanische Normalzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "MYT": "Malaysische Zeit", "HEOG": "Westgrönland-Sommerzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "NZST": "Neuseeland-Normalzeit", "VET": "Venezuela-Zeit", "SRT": "Suriname-Zeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "JST": "Japanische Normalzeit", "WARST": "Westargentinische Sommerzeit", "UYT": "Uruguyanische Normalzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "MDT": "Macau-Sommerzeit", "HAT": "Neufundland-Sommerzeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "LHDT": "Lord-Howe-Sommerzeit", "IST": "Indische Zeit", "HECU": "Kubanische Sommerzeit", "UYST": "Uruguayanische Sommerzeit", "HNT": "Neufundland-Normalzeit", "ARST": "Argentinische Sommerzeit", "MEZ": "Mitteleuropäische Normalzeit", "WAST": "Westafrikanische Sommerzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "GFT": "Französisch-Guayana-Zeit", "TMT": "Turkmenistan-Normalzeit", "OEZ": "Osteuropäische Normalzeit", "WART": "Westargentinische Normalzeit", "SGT": "Singapur-Zeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "ADT": "Atlantik-Sommerzeit", "WIB": "Westindonesische Zeit", "HKST": "Hongkong-Sommerzeit", "WITA": "Zentralindonesische Zeit", "∅∅∅": "Amazonas-Sommerzeit", "BOT": "Bolivianische Zeit", "TMST": "Turkmenistan-Sommerzeit", "CAT": "Zentralafrikanische Zeit", "COT": "Kolumbianische Normalzeit", "GMT": "Mittlere Greenwich-Zeit", "AWST": "Westaustralische Normalzeit", "ChST": "Chamorro-Zeit", "HEEG": "Ostgrönland-Sommerzeit", "EAT": "Ostafrikanische Zeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "AEST": "Ostaustralische Normalzeit", "ECT": "Ecuadorianische Zeit", "CST": "Nordamerikanische Inland-Normalzeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "AST": "Atlantik-Normalzeit", "HAST": "Hawaii-Aleuten-Normalzeit", "BT": "Bhutan-Zeit", "WEZ": "Westeuropäische Normalzeit", "AWDT": "Westaustralische Sommerzeit", "NZDT": "Neuseeland-Sommerzeit", "SAST": "Südafrikanische Zeit", "CLST": "Chilenische Sommerzeit", "HNEG": "Ostgrönland-Normalzeit", "ACST": "Zentralaustralische Normalzeit", "WIT": "Ostindonesische Zeit", "WESZ": "Westeuropäische Sommerzeit", "MESZ": "Mitteleuropäische Sommerzeit", "CHADT": "Chatham-Sommerzeit", "HNCU": "Kubanische Normalzeit", "AKDT": "Alaska-Sommerzeit", "ART": "Argentinische Normalzeit", "AEDT": "Ostaustralische Sommerzeit", "CHAST": "Chatham-Normalzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit"},
++ timezones: map[string]string{"HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "WIT": "Ostindonesische Zeit", "GYT": "Guyana-Zeit", "HAST": "Hawaii-Aleuten-Normalzeit", "HEEG": "Ostgrönland-Sommerzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "HNCU": "Kubanische Normalzeit", "WITA": "Zentralindonesische Zeit", "JDT": "Japanische Sommerzeit", "WARST": "Westargentinische Sommerzeit", "WART": "Westargentinische Normalzeit", "LHST": "Lord-Howe-Normalzeit", "AEST": "Ostaustralische Normalzeit", "HNT": "Neufundland-Normalzeit", "SAST": "Südafrikanische Zeit", "HNOG": "Westgrönland-Normalzeit", "HKT": "Hongkong-Normalzeit", "MST": "Macau-Normalzeit", "AWST": "Westaustralische Normalzeit", "NZDT": "Neuseeland-Sommerzeit", "NZST": "Neuseeland-Normalzeit", "CHAST": "Chatham-Normalzeit", "∅∅∅": "Acre-Sommerzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "WAT": "Westafrikanische Normalzeit", "CAT": "Zentralafrikanische Zeit", "ECT": "Ecuadorianische Zeit", "BOT": "Bolivianische Zeit", "AEDT": "Ostaustralische Sommerzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "ADT": "Atlantik-Sommerzeit", "WAST": "Westafrikanische Sommerzeit", "OEZ": "Osteuropäische Normalzeit", "CLST": "Chilenische Sommerzeit", "ChST": "Chamorro-Zeit", "SRT": "Suriname-Zeit", "CHADT": "Chatham-Sommerzeit", "GFT": "Französisch-Guayana-Zeit", "HEOG": "Westgrönland-Sommerzeit", "GMT": "Mittlere Greenwich-Zeit", "ARST": "Argentinische Sommerzeit", "HECU": "Kubanische Sommerzeit", "VET": "Venezuela-Zeit", "EAT": "Ostafrikanische Zeit", "MYT": "Malaysische Zeit", "HAT": "Neufundland-Sommerzeit", "TMT": "Turkmenistan-Normalzeit", "ACST": "Zentralaustralische Normalzeit", "JST": "Japanische Normalzeit", "AKST": "Alaska-Normalzeit", "MESZ": "Mitteleuropäische Sommerzeit", "AWDT": "Westaustralische Sommerzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "AST": "Atlantik-Normalzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "ACDT": "Zentralaustralische Sommerzeit", "UYT": "Uruguyanische Normalzeit", "UYST": "Uruguayanische Sommerzeit", "COT": "Kolumbianische Normalzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "WIB": "Westindonesische Zeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "AKDT": "Alaska-Sommerzeit", "OESZ": "Osteuropäische Sommerzeit", "HKST": "Hongkong-Sommerzeit", "IST": "Indische Zeit", "BT": "Bhutan-Zeit", "WEZ": "Westeuropäische Normalzeit", "COST": "Kolumbianische Sommerzeit", "TMST": "Turkmenistan-Sommerzeit", "CST": "Nordamerikanische Inland-Normalzeit", "MDT": "Macau-Sommerzeit", "HNEG": "Ostgrönland-Normalzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "LHDT": "Lord-Howe-Sommerzeit", "WESZ": "Westeuropäische Sommerzeit", "SGT": "Singapur-Zeit", "CLT": "Chilenische Normalzeit", "ART": "Argentinische Normalzeit", "MEZ": "Mitteleuropäische Normalzeit"},
+ }
+ }
+ 
+diff --git a/de_AT/de_AT.go b/de_AT/de_AT.go
+index 7d02b54..445b956 100644
+--- a/de_AT/de_AT.go
++++ b/de_AT/de_AT.go
+@@ -18,7 +18,6 @@ type de_AT struct {
+ group string
+ minus string
+ percent string
+- percentSuffix string
+ perMille string
+ timeSeparator string
+ inifinity string
+@@ -49,31 +48,15 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{2, 6},
+ pluralsOrdinal: []locales.PluralRule{6},
+ pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+ group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: " ",
+ monthsAbbreviated: []string{"", "Jän.", "Feb.", "März", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+ monthsWide: []string{"", "Jänner", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"},
+- daysAbbreviated: []string{"So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."},
+- daysNarrow: []string{"S", "M", "D", "M", "D", "F", "S"},
+- daysShort: []string{"So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."},
+- daysWide: []string{"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"},
+- periodsAbbreviated: []string{"vorm.", "nachm."},
+ periodsNarrow: []string{"vm.", "nm."},
+- periodsWide: []string{"vorm.", "nachm."},
+- erasAbbreviated: []string{"v. Chr.", "n. Chr."},
+- erasNarrow: []string{"v. Chr.", "n. Chr."},
+- erasWide: []string{"v. Chr.", "n. Chr."},
+- timezones: map[string]string{"SRT": "Suriname-Zeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "HEOG": "Westgrönland-Sommerzeit", "WITA": "Zentralindonesische Zeit", "WAT": "Westafrikanische Normalzeit", "HNCU": "Kubanische Normalzeit", "SGT": "Singapur-Zeit", "MYT": "Malaysische Zeit", "HAT": "Neufundland-Sommerzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "AWDT": "Westaustralische Sommerzeit", "GMT": "Mittlere Greenwich-Zeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "AEDT": "Ostaustralische Sommerzeit", "CLT": "Chilenische Normalzeit", "CAT": "Zentralafrikanische Zeit", "MST": "Rocky Mountain-Normalzeit", "HKST": "Hongkong-Sommerzeit", "NZDT": "Neuseeland-Sommerzeit", "∅∅∅": "Amazonas-Sommerzeit", "ECT": "Ecuadorianische Zeit", "ChST": "Chamorro-Zeit", "HECU": "Kubanische Sommerzeit", "WIB": "Westindonesische Zeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "AEST": "Ostaustralische Normalzeit", "MESZ": "Mitteleuropäische Sommerzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "WIT": "Ostindonesische Zeit", "HAST": "Hawaii-Aleuten-Normalzeit", "HNT": "Neufundland-Normalzeit", "CHAST": "Chatham-Normalzeit", "CHADT": "Chatham-Sommerzeit", "ADT": "Atlantik-Sommerzeit", "UYST": "Uruguayanische Sommerzeit", "AWST": "Westaustralische Normalzeit", "LHST": "Lord-Howe-Normalzeit", "HNEG": "Ostgrönland-Normalzeit", "GYT": "Guyana-Zeit", "BOT": "Bolivianische Zeit", "WAST": "Westafrikanische Sommerzeit", "BT": "Bhutan-Zeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "HEEG": "Ostgrönland-Sommerzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "IST": "Indische Zeit", "EAT": "Ostafrikanische Zeit", "AST": "Atlantik-Normalzeit", "UYT": "Uruguyanische Normalzeit", "VET": "Venezuela-Zeit", "HNOG": "Westgrönland-Normalzeit", "MEZ": "Mitteleuropäische Normalzeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "LHDT": "Lord-Howe-Sommerzeit", "SAST": "Südafrikanische Zeit", "JDT": "Japanische Sommerzeit", "WARST": "Westargentinische Sommerzeit", "COST": "Kolumbianische Sommerzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "AKDT": "Alaska-Sommerzeit", "WEZ": "Westeuropäische Normalzeit", "WESZ": "Westeuropäische Sommerzeit", "TMT": "Turkmenistan-Normalzeit", "COT": "Kolumbianische Normalzeit", "OEZ": "Osteuropäische Normalzeit", "OESZ": "Osteuropäische Sommerzeit", "WART": "Westargentinische Normalzeit", "AKST": "Alaska-Normalzeit", "CST": "Nordamerikanische Inland-Normalzeit", "MDT": "Rocky-Mountain-Sommerzeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "HKT": "Hongkong-Normalzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "NZST": "Neuseeland-Normalzeit", "CLST": "Chilenische Sommerzeit", "TMST": "Turkmenistan-Sommerzeit", "ACST": "Zentralaustralische Normalzeit", "ACDT": "Zentralaustralische Sommerzeit", "ART": "Argentinische Normalzeit", "ARST": "Argentinische Sommerzeit", "JST": "Japanische Normalzeit", "GFT": "Französisch-Guayana-Zeit"},
++ timezones: map[string]string{"UYST": "UYST", "WART": "WART", "PST": "PST", "ARST": "ARST", "CHAST": "CHAST", "CHADT": "CHADT", "UYT": "UYT", "COT": "COT", "COST": "COST", "TMST": "TMST", "HADT": "HADT", "MYT": "MYT", "LHST": "LHST", "WEZ": "WEZ", "HNCU": "HNCU", "HECU": "HECU", "WIT": "WIT", "GYT": "GYT", "EDT": "EDT", "JST": "JST", "AEST": "AEST", "∅∅∅": "∅∅∅", "HKT": "HKT", "CDT": "CDT", "NZDT": "NZDT", "HEPM": "HEPM", "HEOG": "HEOG", "NZST": "NZST", "WESZ": "WESZ", "AKST": "AKST", "CLT": "CLT", "JDT": "JDT", "PDT": "PDT", "HNPMX": "HNPMX", "OESZ": "OESZ", "HAT": "HAT", "EST": "EST", "WITA": "WITA", "ECT": "ECT", "HNPM": "HNPM", "VET": "VET", "OEZ": "OEZ", "ACDT": "ACDT", "ChST": "ChST", "ADT": "ADT", "MESZ": "MESZ", "SAST": "SAST", "AST": "AST", "HENOMX": "HENOMX", "AWDT": "AWDT", "ACWST": "ACWST", "IST": "IST", "SRT": "SRT", "HAST": "HAST", "AKDT": "AKDT", "HNT": "HNT", "MST": "MST", "AWST": "AWST", "HNNOMX": "HNNOMX", "ACST": "ACST", "WAST": "WAST", "GFT": "GFT", "CST": "CST", "MDT": "MDT", "BOT": "BOT", "ACWDT": "ACWDT", "HKST": "HKST", "CAT": "CAT", "EAT": "EAT", "WIB": "WIB", "ART": "ART", "GMT": "GMT", "WAT": "WAT", "WARST": "WARST", "TMT": "TMT", "CLST": "CLST", "HNEG": "HNEG", "AEDT": "AEDT", "HEPMX": "HEPMX", "SGT": "SGT", "HEEG": "HEEG", "MEZ": "MEZ", "LHDT": "LHDT", "BT": "BT", "HNOG": "HNOG"},
+ }
+ }
+ 
+@@ -148,7 +131,7 @@ func (de *de_AT) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (de *de_AT) MonthsNarrow() []string {
+- return de.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -204,77 +187,13 @@ func (de *de_AT) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'de_AT' and handles both Whole and Real numbers based on 'v'
+ func (de *de_AT) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(de.group) - 1; j >= 0; j-- {
+- b = append(b, de.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, de.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'de_AT' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (de *de_AT) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, de.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, de.percentSuffix...)
+-
+- b = append(b, de.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'de_AT'
+@@ -282,7 +201,7 @@ func (de *de_AT) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := de.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -346,7 +265,7 @@ func (de *de_AT) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := de.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -421,27 +340,6 @@ func (de *de_AT) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -450,27 +348,6 @@ func (de *de_AT) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -479,17 +356,6 @@ func (de *de_AT) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, de.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -498,19 +364,6 @@ func (de *de_AT) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, de.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, de.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -519,19 +372,6 @@ func (de *de_AT) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -540,26 +380,6 @@ func (de *de_AT) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -568,30 +388,6 @@ func (de *de_AT) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -600,34 +396,5 @@ func (de *de_AT) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := de.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/de_BE/de_BE.go b/de_BE/de_BE.go
+index 3e5f91e..e833bf8 100644
+--- a/de_BE/de_BE.go
++++ b/de_BE/de_BE.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type de_BE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'de_BE' locale
+ func New() locales.Translator {
+ return &de_BE{
+- locale: "de_BE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Jan.", "Feb.", "März", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"},
+- daysAbbreviated: []string{"So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."},
+- daysNarrow: []string{"S", "M", "D", "M", "D", "F", "S"},
+- daysShort: []string{"So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."},
+- daysWide: []string{"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"},
+- periodsAbbreviated: []string{"vorm.", "nachm."},
+- periodsNarrow: []string{"vm.", "nm."},
+- periodsWide: []string{"vorm.", "nachm."},
+- erasAbbreviated: []string{"v. Chr.", "n. Chr."},
+- erasNarrow: []string{"v. Chr.", "n. Chr."},
+- erasWide: []string{"v. Chr.", "n. Chr."},
+- timezones: map[string]string{"ART": "Argentinische Normalzeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "HKST": "Hongkong-Sommerzeit", "WAT": "Westafrikanische Normalzeit", "ECT": "Ecuadorianische Zeit", "TMST": "Turkmenistan-Sommerzeit", "COT": "Kolumbianische Normalzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "WIB": "Westindonesische Zeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "MYT": "Malaysische Zeit", "UYST": "Uruguayanische Sommerzeit", "WIT": "Ostindonesische Zeit", "HEOG": "Westgrönland-Sommerzeit", "NZDT": "Neuseeland-Sommerzeit", "MEZ": "Mitteleuropäische Normalzeit", "TMT": "Turkmenistan-Normalzeit", "AEDT": "Ostaustralische Sommerzeit", "COST": "Kolumbianische Sommerzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "MST": "Macau-Normalzeit", "AWST": "Westaustralische Normalzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "LHST": "Lord-Howe-Normalzeit", "LHDT": "Lord-Howe-Sommerzeit", "EAT": "Ostafrikanische Zeit", "CLST": "Chilenische Sommerzeit", "JST": "Japanische Normalzeit", "JDT": "Japanische Sommerzeit", "GMT": "Mittlere Greenwich-Zeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "HKT": "Hongkong-Normalzeit", "AEST": "Ostaustralische Normalzeit", "NZST": "Neuseeland-Normalzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "AKDT": "Alaska-Sommerzeit", "CST": "Nordamerikanische Inland-Normalzeit", "CHADT": "Chatham-Sommerzeit", "CAT": "Zentralafrikanische Zeit", "WARST": "Westargentinische Sommerzeit", "MDT": "Macau-Sommerzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "ACST": "Zentralaustralische Normalzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "HAT": "Neufundland-Sommerzeit", "AWDT": "Westaustralische Sommerzeit", "HEEG": "Ostgrönland-Sommerzeit", "AST": "Atlantik-Normalzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "CLT": "Chilenische Normalzeit", "∅∅∅": "Amazonas-Sommerzeit", "OEZ": "Osteuropäische Normalzeit", "AKST": "Alaska-Normalzeit", "HAST": "Hawaii-Aleuten-Normalzeit", "ARST": "Argentinische Sommerzeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "ACDT": "Zentralaustralische Sommerzeit", "HECU": "Kubanische Sommerzeit", "GYT": "Guyana-Zeit", "UYT": "Uruguyanische Normalzeit", "VET": "Venezuela-Zeit", "BT": "Bhutan-Zeit", "WESZ": "Westeuropäische Sommerzeit", "SAST": "Südafrikanische Zeit", "WAST": "Westafrikanische Sommerzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "IST": "Indische Zeit", "BOT": "Bolivianische Zeit", "HNEG": "Ostgrönland-Normalzeit", "OESZ": "Osteuropäische Sommerzeit", "WART": "Westargentinische Normalzeit", "HNCU": "Kubanische Normalzeit", "SRT": "Suriname-Zeit", "HNT": "Neufundland-Normalzeit", "CHAST": "Chatham-Normalzeit", "GFT": "Französisch-Guayana-Zeit", "ChST": "Chamorro-Zeit", "ADT": "Atlantik-Sommerzeit", "WEZ": "Westeuropäische Normalzeit", "HNOG": "Westgrönland-Normalzeit", "WITA": "Zentralindonesische Zeit", "MESZ": "Mitteleuropäische Sommerzeit", "SGT": "Singapur-Zeit"},
++ locale: "de_BE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACWDT": "ACWDT", "PST": "PST", "WESZ": "WESZ", "SGT": "SGT", "HAST": "HAST", "AWDT": "AWDT", "LHDT": "LHDT", "WARST": "WARST", "ECT": "ECT", "CDT": "CDT", "MDT": "MDT", "MESZ": "MESZ", "CHADT": "CHADT", "EDT": "EDT", "CLT": "CLT", "ACST": "ACST", "HECU": "HECU", "WAST": "WAST", "OEZ": "OEZ", "CAT": "CAT", "ChST": "ChST", "UYT": "UYT", "PDT": "PDT", "HNPMX": "HNPMX", "AKST": "AKST", "COST": "COST", "HEOG": "HEOG", "HNNOMX": "HNNOMX", "AWST": "AWST", "ACWST": "ACWST", "AKDT": "AKDT", "AST": "AST", "HADT": "HADT", "AEDT": "AEDT", "VET": "VET", "HKST": "HKST", "NZDT": "NZDT", "ARST": "ARST", "JDT": "JDT", "GFT": "GFT", "EST": "EST", "ADT": "ADT", "BOT": "BOT", "EAT": "EAT", "ACDT": "ACDT", "GMT": "GMT", "UYST": "UYST", "WIB": "WIB", "ART": "ART", "COT": "COT", "SAST": "SAST", "WITA": "WITA", "CST": "CST", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "WEZ": "WEZ", "HNOG": "HNOG", "HKT": "HKT", "HNEG": "HNEG", "HEEG": "HEEG", "WART": "WART", "HEPMX": "HEPMX", "OESZ": "OESZ", "HNT": "HNT", "HAT": "HAT", "TMST": "TMST", "MEZ": "MEZ", "MYT": "MYT", "JST": "JST", "NZST": "NZST", "HNCU": "HNCU", "CLST": "CLST", "LHST": "LHST", "BT": "BT", "CHAST": "CHAST", "MST": "MST", "WAT": "WAT", "AEST": "AEST", "IST": "IST", "WIT": "WIT", "GYT": "GYT", "TMT": "TMT", "SRT": "SRT", "HNPM": "HNPM", "HEPM": "HEPM"},
+ }
+ }
+ 
+@@ -138,7 +113,7 @@ func (de *de_BE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (de *de_BE) MonthsAbbreviated() []string {
+- return de.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +123,7 @@ func (de *de_BE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (de *de_BE) MonthsNarrow() []string {
+- return de.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +133,7 @@ func (de *de_BE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (de *de_BE) MonthsWide() []string {
+- return de.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,75 +179,13 @@ func (de *de_BE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'de_BE' and handles both Whole and Real numbers based on 'v'
+ func (de *de_BE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, de.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, de.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'de_BE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (de *de_BE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, de.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, de.percentSuffix...)
+-
+- b = append(b, de.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'de_BE'
+@@ -280,56 +193,7 @@ func (de *de_BE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := de.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, de.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, de.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, de.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, de.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'de_BE'
+@@ -338,63 +202,7 @@ func (de *de_BE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := de.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, de.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, de.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, de.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, de.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, de.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'de_BE'
+@@ -402,27 +210,6 @@ func (de *de_BE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,27 +218,6 @@ func (de *de_BE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -460,17 +226,6 @@ func (de *de_BE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, de.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -479,19 +234,6 @@ func (de *de_BE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, de.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, de.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -500,19 +242,6 @@ func (de *de_BE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,26 +250,6 @@ func (de *de_BE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -549,30 +258,6 @@ func (de *de_BE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -581,34 +266,5 @@ func (de *de_BE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := de.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/de_CH/de_CH.go b/de_CH/de_CH.go
+index a055b02..a9fd5a3 100644
+--- a/de_CH/de_CH.go
++++ b/de_CH/de_CH.go
+@@ -50,28 +50,11 @@ func New() locales.Translator {
+ pluralsRange: []locales.PluralRule{2, 6},
+ decimal: ".",
+ group: "'",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "Jan.", "Feb.", "März", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"},
+- daysAbbreviated: []string{"So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."},
+- daysNarrow: []string{"S", "M", "D", "M", "D", "F", "S"},
+- daysShort: []string{"So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."},
+- daysWide: []string{"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"},
+- periodsAbbreviated: []string{"vorm.", "nachm."},
+- periodsNarrow: []string{"vm.", "nm."},
+- periodsWide: []string{"vorm.", "nachm."},
+- erasAbbreviated: []string{"v. Chr.", "n. Chr."},
+- erasNarrow: []string{"v. Chr.", "n. Chr."},
+- erasWide: []string{"v. Chr.", "n. Chr."},
+- timezones: map[string]string{"HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "WART": "Westargentinische Normalzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "MESZ": "Mitteleuropäische Sommerzeit", "JST": "Japanische Normalzeit", "HEEG": "Ostgrönland-Sommerzeit", "WAT": "Westafrikanische Normalzeit", "CLST": "Chilenische Sommerzeit", "WAST": "Westafrikanische Sommerzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "WIT": "Ostindonesische Zeit", "HEOG": "Westgrönland-Sommerzeit", "AWDT": "Westaustralische Sommerzeit", "COST": "Kolumbianische Sommerzeit", "MDT": "Macau-Sommerzeit", "CST": "Nordamerikanische Inland-Normalzeit", "AEST": "Ostaustralische Normalzeit", "LHST": "Lord-Howe-Normalzeit", "WARST": "Westargentinische Sommerzeit", "EAT": "Ostafrikanische Zeit", "AST": "Atlantik-Normalzeit", "VET": "Venezuela-Zeit", "BT": "Bhutan-Zeit", "ART": "Argentinische Normalzeit", "NZST": "Neuseeland-Normalzeit", "HNCU": "Kubanische Normalzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "WESZ": "Westeuropäische Sommerzeit", "ACST": "Zentralaustralische Normalzeit", "MEZ": "Mitteleuropäische Normalzeit", "OESZ": "Osteuropäische Sommerzeit", "CAT": "Zentralafrikanische Zeit", "IST": "Indische Zeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "MST": "Macau-Normalzeit", "AKST": "Alaska-Normalzeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "WITA": "Zentralindonesische Zeit", "CHAST": "Chatham-Normalzeit", "CLT": "Chilenische Normalzeit", "AKDT": "Alaska-Sommerzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "HKST": "Hongkong-Sommerzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "TMT": "Turkmenistan-Normalzeit", "SGT": "Singapur-Zeit", "GYT": "Guyana-Zeit", "HAST": "Hawaii-Aleuten-Normalzeit", "HAT": "Neufundland-Sommerzeit", "WEZ": "Westeuropäische Normalzeit", "UYT": "Uruguyanische Normalzeit", "WIB": "Westindonesische Zeit", "ACDT": "Zentralaustralische Sommerzeit", "ChST": "Chamorro-Zeit", "MYT": "Malaysische Zeit", "HNT": "Neufundland-Normalzeit", "HNOG": "Westgrönland-Normalzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "LHDT": "Lord-Howe-Sommerzeit", "ARST": "Argentinische Sommerzeit", "AWST": "Westaustralische Normalzeit", "SAST": "Südafrikanische Zeit", "OEZ": "Osteuropäische Normalzeit", "COT": "Kolumbianische Normalzeit", "GFT": "Französisch-Guayana-Zeit", "HECU": "Kubanische Sommerzeit", "ADT": "Atlantik-Sommerzeit", "HKT": "Hongkong-Normalzeit", "NZDT": "Neuseeland-Sommerzeit", "JDT": "Japanische Sommerzeit", "AEDT": "Ostaustralische Sommerzeit", "BOT": "Bolivianische Zeit", "ECT": "Ecuadorianische Zeit", "SRT": "Suriname-Zeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "CHADT": "Chatham-Sommerzeit", "∅∅∅": "Azoren-Sommerzeit", "GMT": "Mittlere Greenwich-Zeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "UYST": "Uruguayanische Sommerzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "HNEG": "Ostgrönland-Normalzeit", "TMST": "Turkmenistan-Sommerzeit"},
++ timezones: map[string]string{"EDT": "EDT", "HENOMX": "HENOMX", "AEDT": "AEDT", "CHADT": "CHADT", "PDT": "PDT", "AKST": "AKST", "GFT": "GFT", "WART": "WART", "HKT": "HKT", "NZST": "NZST", "JDT": "JDT", "AWST": "AWST", "BT": "BT", "∅∅∅": "∅∅∅", "CLT": "CLT", "ART": "ART", "AWDT": "AWDT", "SGT": "SGT", "SRT": "SRT", "MEZ": "MEZ", "SAST": "SAST", "CAT": "CAT", "CDT": "CDT", "ACWDT": "ACWDT", "UYST": "UYST", "ADT": "ADT", "AEST": "AEST", "PST": "PST", "HNOG": "HNOG", "GYT": "GYT", "COT": "COT", "ECT": "ECT", "HNPM": "HNPM", "WAST": "WAST", "HKST": "HKST", "CST": "CST", "NZDT": "NZDT", "ChST": "ChST", "HADT": "HADT", "WAT": "WAT", "WARST": "WARST", "HEOG": "HEOG", "WITA": "WITA", "MST": "MST", "HNNOMX": "HNNOMX", "UYT": "UYT", "TMT": "TMT", "CLST": "CLST", "ARST": "ARST", "GMT": "GMT", "ACST": "ACST", "OEZ": "OEZ", "HAT": "HAT", "EST": "EST", "AST": "AST", "HECU": "HECU", "VET": "VET", "AKDT": "AKDT", "HNT": "HNT", "WIT": "WIT", "WIB": "WIB", "MESZ": "MESZ", "ACDT": "ACDT", "HEEG": "HEEG", "JST": "JST", "WESZ": "WESZ", "TMST": "TMST", "MDT": "MDT", "HNEG": "HNEG", "LHST": "LHST", "MYT": "MYT", "ACWST": "ACWST", "CHAST": "CHAST", "WEZ": "WEZ", "BOT": "BOT", "IST": "IST", "OESZ": "OESZ", "COST": "COST", "EAT": "EAT", "HAST": "HAST", "HEPM": "HEPM", "LHDT": "LHDT", "HNCU": "HNCU", "HNPMX": "HNPMX", "HEPMX": "HEPMX"},
+ }
+ }
+ 
+@@ -136,7 +119,7 @@ func (de *de_CH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (de *de_CH) MonthsAbbreviated() []string {
+- return de.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -146,7 +129,7 @@ func (de *de_CH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (de *de_CH) MonthsNarrow() []string {
+- return de.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -156,7 +139,7 @@ func (de *de_CH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (de *de_CH) MonthsWide() []string {
+- return de.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -202,49 +185,14 @@ func (de *de_CH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'de_CH' and handles both Whole and Real numbers based on 'v'
+ func (de *de_CH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, de.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, de.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'de_CH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (de *de_CH) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
++ l := len(s) + 1
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -276,7 +224,7 @@ func (de *de_CH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := de.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -338,7 +286,7 @@ func (de *de_CH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := de.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -411,27 +359,6 @@ func (de *de_CH) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -440,27 +367,6 @@ func (de *de_CH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -469,17 +375,6 @@ func (de *de_CH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, de.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -488,19 +383,6 @@ func (de *de_CH) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, de.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, de.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -509,19 +391,6 @@ func (de *de_CH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -530,26 +399,6 @@ func (de *de_CH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -558,30 +407,6 @@ func (de *de_CH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -590,34 +415,5 @@ func (de *de_CH) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := de.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/de_DE/de_DE.go b/de_DE/de_DE.go
+index 3886a94..b3dafc1 100644
+--- a/de_DE/de_DE.go
++++ b/de_DE/de_DE.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type de_DE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'de_DE' locale
+ func New() locales.Translator {
+ return &de_DE{
+- locale: "de_DE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Jan.", "Feb.", "März", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"},
+- daysAbbreviated: []string{"So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."},
+- daysNarrow: []string{"S", "M", "D", "M", "D", "F", "S"},
+- daysShort: []string{"So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."},
+- daysWide: []string{"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"},
+- periodsAbbreviated: []string{"vorm.", "nachm."},
+- periodsNarrow: []string{"vm.", "nm."},
+- periodsWide: []string{"vorm.", "nachm."},
+- erasAbbreviated: []string{"v. Chr.", "n. Chr."},
+- erasNarrow: []string{"v. Chr.", "n. Chr."},
+- erasWide: []string{"v. Chr.", "n. Chr."},
+- timezones: map[string]string{"ART": "Argentinische Normalzeit", "LHDT": "Lord-Howe-Sommerzeit", "CLST": "Chilenische Sommerzeit", "EAT": "Ostafrikanische Zeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "HNT": "Neufundland-Normalzeit", "HKST": "Hongkong-Sommerzeit", "CHAST": "Chatham-Normalzeit", "HNCU": "Kubanische Normalzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "WEZ": "Westeuropäische Normalzeit", "HNOG": "Westgrönland-Normalzeit", "CHADT": "Chatham-Sommerzeit", "UYT": "Uruguyanische Normalzeit", "AEDT": "Ostaustralische Sommerzeit", "MEZ": "Mitteleuropäische Normalzeit", "ADT": "Atlantik-Sommerzeit", "JST": "Japanische Normalzeit", "OESZ": "Osteuropäische Sommerzeit", "GMT": "Mittlere Greenwich-Zeit", "BT": "Bhutan-Zeit", "ACST": "Zentralaustralische Normalzeit", "OEZ": "Osteuropäische Normalzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "GFT": "Französisch-Guayana-Zeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "HKT": "Hongkong-Normalzeit", "CAT": "Zentralafrikanische Zeit", "COT": "Kolumbianische Normalzeit", "COST": "Kolumbianische Sommerzeit", "GYT": "Guyana-Zeit", "WIB": "Westindonesische Zeit", "SRT": "Suriname-Zeit", "WESZ": "Westeuropäische Sommerzeit", "HEOG": "Westgrönland-Sommerzeit", "TMT": "Turkmenistan-Normalzeit", "SGT": "Singapur-Zeit", "MYT": "Malaysische Zeit", "AWDT": "Westaustralische Sommerzeit", "NZST": "Neuseeland-Normalzeit", "ChST": "Chamorro-Zeit", "BOT": "Bolivianische Zeit", "ECT": "Ecuadorianische Zeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "CLT": "Chilenische Normalzeit", "SAST": "Südafrikanische Zeit", "JDT": "Japanische Sommerzeit", "HNEG": "Ostgrönland-Normalzeit", "HEEG": "Ostgrönland-Sommerzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "AEST": "Ostaustralische Normalzeit", "AWST": "Westaustralische Normalzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "AKDT": "Alaska-Sommerzeit", "HAST": "Hawaii-Aleuten-Normalzeit", "WITA": "Zentralindonesische Zeit", "∅∅∅": "Amazonas-Sommerzeit", "WARST": "Westargentinische Sommerzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "HECU": "Kubanische Sommerzeit", "MDT": "Macau-Sommerzeit", "CST": "Nordamerikanische Inland-Normalzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "MESZ": "Mitteleuropäische Sommerzeit", "WART": "Westargentinische Normalzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "HAT": "Neufundland-Sommerzeit", "WAST": "Westafrikanische Sommerzeit", "VET": "Venezuela-Zeit", "LHST": "Lord-Howe-Normalzeit", "WAT": "Westafrikanische Normalzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "WIT": "Ostindonesische Zeit", "TMST": "Turkmenistan-Sommerzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "IST": "Indische Zeit", "ACDT": "Zentralaustralische Sommerzeit", "MST": "Macau-Normalzeit", "UYST": "Uruguayanische Sommerzeit", "AKST": "Alaska-Normalzeit", "AST": "Atlantik-Normalzeit", "ARST": "Argentinische Sommerzeit", "NZDT": "Neuseeland-Sommerzeit"},
++ locale: "de_DE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACDT": "ACDT", "WARST": "WARST", "AST": "AST", "GMT": "GMT", "HEEG": "HEEG", "BT": "BT", "TMST": "TMST", "EST": "EST", "HKT": "HKT", "MYT": "MYT", "HEPM": "HEPM", "UYST": "UYST", "SGT": "SGT", "MDT": "MDT", "SRT": "SRT", "HKST": "HKST", "AWDT": "AWDT", "LHST": "LHST", "AEST": "AEST", "CHADT": "CHADT", "HECU": "HECU", "AKDT": "AKDT", "COT": "COT", "CLT": "CLT", "ADT": "ADT", "HNOG": "HNOG", "ChST": "ChST", "HENOMX": "HENOMX", "HNPM": "HNPM", "MST": "MST", "MESZ": "MESZ", "JST": "JST", "UYT": "UYT", "HNCU": "HNCU", "WAT": "WAT", "COST": "COST", "CDT": "CDT", "ARST": "ARST", "BOT": "BOT", "HAST": "HAST", "PST": "PST", "OESZ": "OESZ", "HAT": "HAT", "CST": "CST", "HADT": "HADT", "MEZ": "MEZ", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "WEZ": "WEZ", "ECT": "ECT", "IST": "IST", "HNT": "HNT", "JDT": "JDT", "NZDT": "NZDT", "WIB": "WIB", "ART": "ART", "AWST": "AWST", "VET": "VET", "GFT": "GFT", "WIT": "WIT", "CAT": "CAT", "AKST": "AKST", "HEOG": "HEOG", "WITA": "WITA", "AEDT": "AEDT", "WAST": "WAST", "OEZ": "OEZ", "TMT": "TMT", "EAT": "EAT", "ACST": "ACST", "HEPMX": "HEPMX", "WART": "WART", "GYT": "GYT", "NZST": "NZST", "HNNOMX": "HNNOMX", "ACWST": "ACWST", "CHAST": "CHAST", "PDT": "PDT", "HNEG": "HNEG", "CLST": "CLST", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "SAST": "SAST", "EDT": "EDT"},
+ }
+ }
+ 
+@@ -138,7 +113,7 @@ func (de *de_DE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (de *de_DE) MonthsAbbreviated() []string {
+- return de.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +123,7 @@ func (de *de_DE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (de *de_DE) MonthsNarrow() []string {
+- return de.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +133,7 @@ func (de *de_DE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (de *de_DE) MonthsWide() []string {
+- return de.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,75 +179,13 @@ func (de *de_DE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'de_DE' and handles both Whole and Real numbers based on 'v'
+ func (de *de_DE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, de.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, de.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'de_DE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (de *de_DE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, de.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, de.percentSuffix...)
+-
+- b = append(b, de.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'de_DE'
+@@ -280,56 +193,7 @@ func (de *de_DE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := de.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, de.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, de.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, de.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, de.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'de_DE'
+@@ -338,63 +202,7 @@ func (de *de_DE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := de.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, de.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, de.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, de.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, de.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, de.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'de_DE'
+@@ -402,27 +210,6 @@ func (de *de_DE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,27 +218,6 @@ func (de *de_DE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -460,17 +226,6 @@ func (de *de_DE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, de.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -479,19 +234,6 @@ func (de *de_DE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, de.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, de.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -500,19 +242,6 @@ func (de *de_DE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,26 +250,6 @@ func (de *de_DE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -549,30 +258,6 @@ func (de *de_DE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -581,34 +266,5 @@ func (de *de_DE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := de.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/de_IT/de_IT.go b/de_IT/de_IT.go
+index 6ae3f83..b0021fb 100644
+--- a/de_IT/de_IT.go
++++ b/de_IT/de_IT.go
+@@ -10,70 +10,47 @@ import (
+ )
+ 
+ type de_IT struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'de_IT' locale
+ func New() locales.Translator {
+ return &de_IT{
+- locale: "de_IT",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Jän.", "Feb.", "März", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Jänner", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"},
+- daysAbbreviated: []string{"So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."},
+- daysNarrow: []string{"S", "M", "D", "M", "D", "F", "S"},
+- daysShort: []string{"So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."},
+- daysWide: []string{"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"},
+- periodsAbbreviated: []string{"vorm.", "nachm."},
+- periodsNarrow: []string{"vm.", "nm."},
+- periodsWide: []string{"vorm.", "nachm."},
+- erasAbbreviated: []string{"v. Chr.", "n. Chr."},
+- erasNarrow: []string{"v. Chr.", "n. Chr."},
+- erasWide: []string{"v. Chr.", "n. Chr."},
+- timezones: map[string]string{"HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "HNCU": "Kubanische Normalzeit", "HECU": "Kubanische Sommerzeit", "MST": "Macau-Normalzeit", "CLT": "Chilenische Normalzeit", "JST": "Japanische Normalzeit", "WART": "Westargentinische Normalzeit", "COST": "Kolumbianische Sommerzeit", "AKST": "Alaska-Normalzeit", "CST": "Nordamerikanische Inland-Normalzeit", "HNOG": "Westgrönland-Normalzeit", "AWST": "Westaustralische Normalzeit", "SAST": "Südafrikanische Zeit", "HNEG": "Ostgrönland-Normalzeit", "ACST": "Zentralaustralische Normalzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "CHAST": "Chatham-Normalzeit", "CAT": "Zentralafrikanische Zeit", "WARST": "Westargentinische Sommerzeit", "HNT": "Neufundland-Normalzeit", "HAT": "Neufundland-Sommerzeit", "OESZ": "Osteuropäische Sommerzeit", "GYT": "Guyana-Zeit", "AKDT": "Alaska-Sommerzeit", "HEOG": "Westgrönland-Sommerzeit", "AEST": "Ostaustralische Normalzeit", "HKT": "Hongkong-Normalzeit", "WITA": "Zentralindonesische Zeit", "LHST": "Lord-Howe-Normalzeit", "ARST": "Argentinische Sommerzeit", "NZST": "Neuseeland-Normalzeit", "WIT": "Ostindonesische Zeit", "VET": "Venezuela-Zeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "NZDT": "Neuseeland-Sommerzeit", "CHADT": "Chatham-Sommerzeit", "JDT": "Japanische Sommerzeit", "OEZ": "Osteuropäische Normalzeit", "AWDT": "Westaustralische Sommerzeit", "MEZ": "Mitteleuropäische Normalzeit", "BOT": "Bolivianische Zeit", "BT": "Bhutan-Zeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "HKST": "Hongkong-Sommerzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "ADT": "Atlantik-Sommerzeit", "HAST": "Hawaii-Aleuten-Normalzeit", "EAT": "Ostafrikanische Zeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "UYT": "Uruguyanische Normalzeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "CLST": "Chilenische Sommerzeit", "TMT": "Turkmenistan-Normalzeit", "TMST": "Turkmenistan-Sommerzeit", "LHDT": "Lord-Howe-Sommerzeit", "ECT": "Ecuadorianische Zeit", "COT": "Kolumbianische Normalzeit", "ART": "Argentinische Normalzeit", "MESZ": "Mitteleuropäische Sommerzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "GMT": "Mittlere Greenwich-Zeit", "SRT": "Suriname-Zeit", "ChST": "Chamorro-Zeit", "HEEG": "Ostgrönland-Sommerzeit", "GFT": "Französisch-Guayana-Zeit", "WAT": "Westafrikanische Normalzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "AST": "Atlantik-Normalzeit", "WESZ": "Westeuropäische Sommerzeit", "AEDT": "Ostaustralische Sommerzeit", "IST": "Indische Zeit", "ACDT": "Zentralaustralische Sommerzeit", "WAST": "Westafrikanische Sommerzeit", "SGT": "Singapur-Zeit", "MDT": "Macau-Sommerzeit", "UYST": "Uruguayanische Sommerzeit", "WIB": "Westindonesische Zeit", "∅∅∅": "Amazonas-Sommerzeit", "MYT": "Malaysische Zeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "WEZ": "Westeuropäische Normalzeit"},
++ locale: "de_IT",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "Jän.", "Feb.", "März", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."},
++ monthsWide: []string{"", "Jänner", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"},
++ timezones: map[string]string{"CAT": "CAT", "ADT": "ADT", "ARST": "ARST", "HADT": "HADT", "MEZ": "MEZ", "JST": "JST", "HKT": "HKT", "HKST": "HKST", "COT": "COT", "IST": "IST", "OESZ": "OESZ", "UYT": "UYT", "BT": "BT", "WAT": "WAT", "EAT": "EAT", "ACST": "ACST", "ACWST": "ACWST", "WART": "WART", "TMST": "TMST", "NZST": "NZST", "HAST": "HAST", "AEDT": "AEDT", "GFT": "GFT", "EDT": "EDT", "TMT": "TMT", "NZDT": "NZDT", "AWST": "AWST", "ChST": "ChST", "SGT": "SGT", "AKST": "AKST", "AST": "AST", "GMT": "GMT", "HNPM": "HNPM", "HNCU": "HNCU", "HECU": "HECU", "AKDT": "AKDT", "SAST": "SAST", "HEOG": "HEOG", "MDT": "MDT", "ACDT": "ACDT", "HAT": "HAT", "WIT": "WIT", "CST": "CST", "HNEG": "HNEG", "AWDT": "AWDT", "JDT": "JDT", "HNPMX": "HNPMX", "ART": "ART", "HEEG": "HEEG", "PST": "PST", "PDT": "PDT", "CHAST": "CHAST", "WIB": "WIB", "LHDT": "LHDT", "ACWDT": "ACWDT", "AEST": "AEST", "HNT": "HNT", "GYT": "GYT", "HNOG": "HNOG", "EST": "EST", "HENOMX": "HENOMX", "WESZ": "WESZ", "HEPMX": "HEPMX", "∅∅∅": "∅∅∅", "UYST": "UYST", "WEZ": "WEZ", "OEZ": "OEZ", "CLST": "CLST", "MESZ": "MESZ", "SRT": "SRT", "VET": "VET", "WARST": "WARST", "COST": "COST", "WITA": "WITA", "ECT": "ECT", "MST": "MST", "BOT": "BOT", "MYT": "MYT", "CHADT": "CHADT", "WAST": "WAST", "CLT": "CLT", "CDT": "CDT", "HEPM": "HEPM", "HNNOMX": "HNNOMX", "LHST": "LHST"},
+ }
+ }
+ 
+@@ -148,7 +125,7 @@ func (de *de_IT) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (de *de_IT) MonthsNarrow() []string {
+- return de.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -204,75 +181,13 @@ func (de *de_IT) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'de_IT' and handles both Whole and Real numbers based on 'v'
+ func (de *de_IT) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, de.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, de.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'de_IT' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (de *de_IT) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, de.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, de.percentSuffix...)
+-
+- b = append(b, de.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'de_IT'
+@@ -280,56 +195,7 @@ func (de *de_IT) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := de.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, de.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, de.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, de.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, de.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'de_IT'
+@@ -338,63 +204,7 @@ func (de *de_IT) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := de.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, de.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, de.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, de.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, de.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, de.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'de_IT'
+@@ -402,27 +212,6 @@ func (de *de_IT) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,27 +220,6 @@ func (de *de_IT) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -460,17 +228,6 @@ func (de *de_IT) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, de.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -479,19 +236,6 @@ func (de *de_IT) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, de.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, de.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -500,19 +244,6 @@ func (de *de_IT) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,26 +252,6 @@ func (de *de_IT) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -549,30 +260,6 @@ func (de *de_IT) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -581,34 +268,5 @@ func (de *de_IT) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := de.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/de_LI/de_LI.go b/de_LI/de_LI.go
+index e55b641..dca03bd 100644
+--- a/de_LI/de_LI.go
++++ b/de_LI/de_LI.go
+@@ -50,28 +50,12 @@ func New() locales.Translator {
+ pluralsRange: []locales.PluralRule{2, 6},
+ decimal: ".",
+ group: "'",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "Jan.", "Feb.", "März", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"},
+- daysAbbreviated: []string{"So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."},
+- daysNarrow: []string{"S", "M", "D", "M", "D", "F", "S"},
+- daysShort: []string{"So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."},
+- daysWide: []string{"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"},
+- periodsAbbreviated: []string{"vorm.", "nachm."},
+ periodsNarrow: []string{"vm.", "nm."},
+- periodsWide: []string{"vorm.", "nachm."},
+- erasAbbreviated: []string{"v. Chr.", "n. Chr."},
+- erasNarrow: []string{"v. Chr.", "n. Chr."},
+- erasWide: []string{"v. Chr.", "n. Chr."},
+- timezones: map[string]string{"HKST": "Hongkong-Sommerzeit", "∅∅∅": "Amazonas-Sommerzeit", "TMST": "Turkmenistan-Sommerzeit", "VET": "Venezuela-Zeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "CHAST": "Chatham-Normalzeit", "WIB": "Westindonesische Zeit", "ART": "Argentinische Normalzeit", "NZST": "Neuseeland-Normalzeit", "HAST": "Hawaii-Aleuten-Normalzeit", "ARST": "Argentinische Sommerzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "JST": "Japanische Normalzeit", "AST": "Atlantik-Normalzeit", "AKST": "Alaska-Normalzeit", "HNT": "Neufundland-Normalzeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "WARST": "Westargentinische Sommerzeit", "MST": "Macau-Normalzeit", "MYT": "Malaysische Zeit", "HEOG": "Westgrönland-Sommerzeit", "TMT": "Turkmenistan-Normalzeit", "ACDT": "Zentralaustralische Sommerzeit", "WART": "Westargentinische Normalzeit", "MDT": "Macau-Sommerzeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "HNOG": "Westgrönland-Normalzeit", "LHST": "Lord-Howe-Normalzeit", "LHDT": "Lord-Howe-Sommerzeit", "SAST": "Südafrikanische Zeit", "BOT": "Bolivianische Zeit", "WAT": "Westafrikanische Normalzeit", "HECU": "Kubanische Sommerzeit", "BT": "Bhutan-Zeit", "CLST": "Chilenische Sommerzeit", "GFT": "Französisch-Guayana-Zeit", "HNEG": "Ostgrönland-Normalzeit", "SGT": "Singapur-Zeit", "UYT": "Uruguyanische Normalzeit", "CHADT": "Chatham-Sommerzeit", "WEZ": "Westeuropäische Normalzeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "WIT": "Ostindonesische Zeit", "AEDT": "Ostaustralische Sommerzeit", "CLT": "Chilenische Normalzeit", "OEZ": "Osteuropäische Normalzeit", "ECT": "Ecuadorianische Zeit", "CAT": "Zentralafrikanische Zeit", "WAST": "Westafrikanische Sommerzeit", "HNCU": "Kubanische Normalzeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "CST": "Nordamerikanische Inland-Normalzeit", "MEZ": "Mitteleuropäische Normalzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "AKDT": "Alaska-Sommerzeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "ChST": "Chamorro-Zeit", "EAT": "Ostafrikanische Zeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "ADT": "Atlantik-Sommerzeit", "GYT": "Guyana-Zeit", "AWST": "Westaustralische Normalzeit", "OESZ": "Osteuropäische Sommerzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "UYST": "Uruguayanische Sommerzeit", "WITA": "Zentralindonesische Zeit", "SRT": "Suriname-Zeit", "AWDT": "Westaustralische Sommerzeit", "NZDT": "Neuseeland-Sommerzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "HKT": "Hongkong-Normalzeit", "HEEG": "Ostgrönland-Sommerzeit", "ACST": "Zentralaustralische Normalzeit", "COT": "Kolumbianische Normalzeit", "COST": "Kolumbianische Sommerzeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "AEST": "Ostaustralische Normalzeit", "WESZ": "Westeuropäische Sommerzeit", "MESZ": "Mitteleuropäische Sommerzeit", "IST": "Indische Zeit", "JDT": "Japanische Sommerzeit", "GMT": "Mittlere Greenwich-Zeit", "HAT": "Neufundland-Sommerzeit"},
++ timezones: map[string]string{"EAT": "EAT", "ACDT": "ACDT", "OEZ": "OEZ", "LHST": "LHST", "HEPM": "HEPM", "IST": "IST", "AST": "AST", "ECT": "ECT", "HNCU": "HNCU", "WAT": "WAT", "AKDT": "AKDT", "GYT": "GYT", "HNOG": "HNOG", "CST": "CST", "MDT": "MDT", "GMT": "GMT", "SGT": "SGT", "HECU": "HECU", "AKST": "AKST", "WART": "WART", "COST": "COST", "TMST": "TMST", "ADT": "ADT", "BOT": "BOT", "AWDT": "AWDT", "PDT": "PDT", "OESZ": "OESZ", "HEOG": "HEOG", "MEZ": "MEZ", "HNEG": "HNEG", "ACWST": "ACWST", "MYT": "MYT", "HNPM": "HNPM", "ACWDT": "ACWDT", "UYT": "UYT", "NZST": "NZST", "ChST": "ChST", "ART": "ART", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "BT": "BT", "COT": "COT", "WITA": "WITA", "EDT": "EDT", "HADT": "HADT", "AWST": "AWST", "LHDT": "LHDT", "AEDT": "AEDT", "WEZ": "WEZ", "HAT": "HAT", "WARST": "WARST", "NZDT": "NZDT", "WIB": "WIB", "ARST": "ARST", "SRT": "SRT", "HEEG": "HEEG", "CHAST": "CHAST", "WAST": "WAST", "HNT": "HNT", "CDT": "CDT", "UYST": "UYST", "EST": "EST", "CAT": "CAT", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "HEPMX": "HEPMX", "WIT": "WIT", "CLT": "CLT", "MST": "MST", "HAST": "HAST", "JDT": "JDT", "WESZ": "WESZ", "GFT": "GFT", "SAST": "SAST", "HKST": "HKST", "ACST": "ACST", "JST": "JST", "PST": "PST", "CHADT": "CHADT", "VET": "VET", "CLST": "CLST", "AEST": "AEST", "HNPMX": "HNPMX", "HKT": "HKT", "TMT": "TMT"},
+ }
+ }
+ 
+@@ -136,7 +120,7 @@ func (de *de_LI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (de *de_LI) MonthsAbbreviated() []string {
+- return de.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -146,7 +130,7 @@ func (de *de_LI) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (de *de_LI) MonthsNarrow() []string {
+- return de.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -156,7 +140,7 @@ func (de *de_LI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (de *de_LI) MonthsWide() []string {
+- return de.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -202,49 +186,14 @@ func (de *de_LI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'de_LI' and handles both Whole and Real numbers based on 'v'
+ func (de *de_LI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, de.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, de.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'de_LI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (de *de_LI) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
++ l := len(s) + 1
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -276,7 +225,7 @@ func (de *de_LI) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := de.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -338,7 +287,7 @@ func (de *de_LI) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := de.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -411,27 +360,6 @@ func (de *de_LI) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -440,27 +368,6 @@ func (de *de_LI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -469,17 +376,6 @@ func (de *de_LI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, de.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -488,19 +384,6 @@ func (de *de_LI) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, de.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, de.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -509,19 +392,6 @@ func (de *de_LI) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -530,26 +400,6 @@ func (de *de_LI) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -558,30 +408,6 @@ func (de *de_LI) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -590,34 +416,5 @@ func (de *de_LI) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := de.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/de_LU/de_LU.go b/de_LU/de_LU.go
+index 4e05dc8..67ef8cf 100644
+--- a/de_LU/de_LU.go
++++ b/de_LU/de_LU.go
+@@ -10,70 +10,46 @@ import (
+ )
+ 
+ type de_LU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'de_LU' locale
+ func New() locales.Translator {
+ return &de_LU{
+- locale: "de_LU",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "F", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Jan.", "Feb.", "März", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"},
+- daysAbbreviated: []string{"So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."},
+- daysNarrow: []string{"S", "M", "D", "M", "D", "F", "S"},
+- daysShort: []string{"So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."},
+- daysWide: []string{"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"},
+- periodsAbbreviated: []string{"vorm.", "nachm."},
+- periodsNarrow: []string{"vorm.", "nachm."},
+- periodsWide: []string{"vorm.", "nachm."},
+- erasAbbreviated: []string{"v. Chr.", "n. Chr."},
+- erasNarrow: []string{"v. Chr.", "n. Chr."},
+- erasWide: []string{"v. Chr.", "n. Chr."},
+- timezones: map[string]string{"AKDT": "Alaska-Sommerzeit", "BT": "Bhutan-Zeit", "OEZ": "Osteuropäische Normalzeit", "COT": "Kolumbianische Normalzeit", "HEPMX": "Mexiko Pazifikzone-Sommerzeit", "HADT": "Hawaii-Aleuten-Sommerzeit", "ACWST": "Zentral-/Westaustralische Normalzeit", "HAT": "Neufundland-Sommerzeit", "AEDT": "Ostaustralische Sommerzeit", "HEPM": "Saint-Pierre-und-Miquelon-Sommerzeit", "GMT": "Mittlere Greenwich-Zeit", "HNPMX": "Mexiko Pazifikzone-Normalzeit", "MEZ": "Mitteleuropäische Normalzeit", "HENOMX": "Mexiko Nordwestliche Zone-Sommerzeit", "HNT": "Neufundland-Normalzeit", "WITA": "Zentralindonesische Zeit", "LHDT": "Lord-Howe-Sommerzeit", "WAST": "Westafrikanische Sommerzeit", "OESZ": "Osteuropäische Sommerzeit", "NZST": "Neuseeland-Normalzeit", "CHAST": "Chatham-Normalzeit", "CLT": "Chilenische Normalzeit", "HEEG": "Ostgrönland-Sommerzeit", "COST": "Kolumbianische Sommerzeit", "ADT": "Atlantik-Sommerzeit", "UYT": "Uruguyanische Normalzeit", "HKT": "Hongkong-Normalzeit", "MESZ": "Mitteleuropäische Sommerzeit", "IST": "Indische Zeit", "HECU": "Kubanische Sommerzeit", "ARST": "Argentinische Sommerzeit", "HKST": "Hongkong-Sommerzeit", "WAT": "Westafrikanische Normalzeit", "UYST": "Uruguayanische Sommerzeit", "VET": "Venezuela-Zeit", "NZDT": "Neuseeland-Sommerzeit", "CLST": "Chilenische Sommerzeit", "ACST": "Zentralaustralische Normalzeit", "WIT": "Ostindonesische Zeit", "PDT": "Nordamerikanische Westküsten-Sommerzeit", "TMT": "Turkmenistan-Normalzeit", "ACDT": "Zentralaustralische Sommerzeit", "ART": "Argentinische Normalzeit", "WARST": "Westargentinische Sommerzeit", "HNNOMX": "Mexiko Nordwestliche Zone-Normalzeit", "AST": "Atlantik-Normalzeit", "GYT": "Guyana-Zeit", "AKST": "Alaska-Normalzeit", "HAST": "Hawaii-Aleuten-Normalzeit", "SRT": "Suriname-Zeit", "CAT": "Zentralafrikanische Zeit", "∅∅∅": "Azoren-Sommerzeit", "AWST": "Westaustralische Normalzeit", "AWDT": "Westaustralische Sommerzeit", "HNEG": "Ostgrönland-Normalzeit", "GFT": "Französisch-Guayana-Zeit", "WIB": "Westindonesische Zeit", "PST": "Nordamerikanische Westküsten-Normalzeit", "HNPM": "Saint-Pierre-und-Miquelon-Normalzeit", "CHADT": "Chatham-Sommerzeit", "SAST": "Südafrikanische Zeit", "JST": "Japanische Normalzeit", "TMST": "Turkmenistan-Sommerzeit", "SGT": "Singapur-Zeit", "MST": "Macau-Normalzeit", "MDT": "Macau-Sommerzeit", "BOT": "Bolivianische Zeit", "EDT": "Nordamerikanische Ostküsten-Sommerzeit", "CDT": "Nordamerikanische Inland-Sommerzeit", "WESZ": "Westeuropäische Sommerzeit", "AEST": "Ostaustralische Normalzeit", "ChST": "Chamorro-Zeit", "EAT": "Ostafrikanische Zeit", "HNCU": "Kubanische Normalzeit", "EST": "Nordamerikanische Ostküsten-Normalzeit", "MYT": "Malaysische Zeit", "HNOG": "Westgrönland-Normalzeit", "HEOG": "Westgrönland-Sommerzeit", "WART": "Westargentinische Normalzeit", "CST": "Nordamerikanische Inland-Normalzeit", "WEZ": "Westeuropäische Normalzeit", "ACWDT": "Zentral-/Westaustralische Sommerzeit", "LHST": "Lord-Howe-Normalzeit", "JDT": "Japanische Sommerzeit", "ECT": "Ecuadorianische Zeit"},
++ locale: "de_LU",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "F", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsNarrow: []string{"vorm.", "nachm."},
++ timezones: map[string]string{"WAT": "WAT", "GFT": "GFT", "COT": "COT", "NZST": "NZST", "GMT": "GMT", "PDT": "PDT", "ACWDT": "ACWDT", "EDT": "EDT", "WITA": "WITA", "ADT": "ADT", "HADT": "HADT", "IST": "IST", "BT": "BT", "AEDT": "AEDT", "NZDT": "NZDT", "ChST": "ChST", "EAT": "EAT", "ACST": "ACST", "HEPM": "HEPM", "WEZ": "WEZ", "BOT": "BOT", "HEEG": "HEEG", "JST": "JST", "WART": "WART", "MDT": "MDT", "SRT": "SRT", "LHDT": "LHDT", "OEZ": "OEZ", "HEOG": "HEOG", "EST": "EST", "UYT": "UYT", "UYST": "UYST", "HECU": "HECU", "HAT": "HAT", "HNEG": "HNEG", "HENOMX": "HENOMX", "SGT": "SGT", "HNT": "HNT", "TMST": "TMST", "ARST": "ARST", "MESZ": "MESZ", "CHADT": "CHADT", "CAT": "CAT", "CST": "CST", "AWST": "AWST", "MYT": "MYT", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "PST": "PST", "WAST": "WAST", "WARST": "WARST", "HKT": "HKT", "AST": "AST", "AWDT": "AWDT", "HNCU": "HNCU", "HEPMX": "HEPMX", "OESZ": "OESZ", "SAST": "SAST", "HNPM": "HNPM", "JDT": "JDT", "VET": "VET", "HNOG": "HNOG", "CLT": "CLT", "MST": "MST", "ECT": "ECT", "WIB": "WIB", "ART": "ART", "WESZ": "WESZ", "AKDT": "AKDT", "WIT": "WIT", "GYT": "GYT", "ACWST": "ACWST", "HNPMX": "HNPMX", "CLST": "CLST", "CDT": "CDT", "HAST": "HAST", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "AEST": "AEST", "AKST": "AKST", "COST": "COST", "HKST": "HKST", "TMT": "TMT", "MEZ": "MEZ", "LHST": "LHST"},
+ }
+ }
+ 
+@@ -138,7 +114,7 @@ func (de *de_LU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (de *de_LU) MonthsAbbreviated() []string {
+- return de.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +124,7 @@ func (de *de_LU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (de *de_LU) MonthsNarrow() []string {
+- return de.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +134,7 @@ func (de *de_LU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (de *de_LU) MonthsWide() []string {
+- return de.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,75 +180,13 @@ func (de *de_LU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'de_LU' and handles both Whole and Real numbers based on 'v'
+ func (de *de_LU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, de.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, de.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'de_LU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (de *de_LU) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, de.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, de.percentSuffix...)
+-
+- b = append(b, de.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'de_LU'
+@@ -280,56 +194,7 @@ func (de *de_LU) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := de.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, de.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, de.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, de.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, de.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'de_LU'
+@@ -338,63 +203,7 @@ func (de *de_LU) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := de.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, de.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, de.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, de.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, de.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, de.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, de.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'de_LU'
+@@ -402,27 +211,6 @@ func (de *de_LU) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,27 +219,6 @@ func (de *de_LU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -460,17 +227,6 @@ func (de *de_LU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, de.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -479,19 +235,6 @@ func (de *de_LU) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, de.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, de.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -500,19 +243,6 @@ func (de *de_LU) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,26 +251,6 @@ func (de *de_LU) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -549,30 +259,6 @@ func (de *de_LU) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -581,34 +267,5 @@ func (de *de_LU) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, de.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := de.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/dje/dje.go b/dje/dje.go
+index a1d0b50..cf57515 100644
+--- a/dje/dje.go
++++ b/dje/dje.go
+@@ -61,7 +61,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"IJ", "IZ"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Isaa jine", "Isaa zamanoo"},
+- timezones: map[string]string{"SAST": "SAST", "ChST": "ChST", "MST": "MST", "AEST": "AEST", "NZST": "NZST", "HNOG": "HNOG", "AWDT": "AWDT", "HKST": "HKST", "NZDT": "NZDT", "WARST": "WARST", "UYST": "UYST", "BT": "BT", "WEZ": "WEZ", "CHADT": "CHADT", "JDT": "JDT", "ACST": "ACST", "EAT": "EAT", "HENOMX": "HENOMX", "CHAST": "CHAST", "MESZ": "MESZ", "HNCU": "HNCU", "EST": "EST", "WIB": "WIB", "HNT": "HNT", "ACDT": "ACDT", "AKDT": "AKDT", "WITA": "WITA", "CLT": "CLT", "HECU": "HECU", "MDT": "MDT", "PDT": "PDT", "CAT": "CAT", "GMT": "GMT", "UYT": "UYT", "PST": "PST", "GFT": "GFT", "COT": "COT", "SGT": "SGT", "HNPMX": "HNPMX", "CDT": "CDT", "HAST": "HAST", "SRT": "SRT", "HAT": "HAT", "IST": "IST", "BOT": "BOT", "HEEG": "HEEG", "WART": "WART", "ART": "ART", "CLST": "CLST", "JST": "JST", "ECT": "ECT", "ADT": "ADT", "ACWST": "ACWST", "HEPM": "HEPM", "AEDT": "AEDT", "HNEG": "HNEG", "AKST": "AKST", "CST": "CST", "GYT": "GYT", "VET": "VET", "WESZ": "WESZ", "ARST": "ARST", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "WAT": "WAT", "HEPMX": "HEPMX", "AST": "AST", "AWST": "AWST", "HKT": "HKT", "MEZ": "MEZ", "LHST": "LHST", "HADT": "HADT", "WAST": "WAST", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "EDT": "EDT", "MYT": "MYT", "WIT": "WIT", "TMT": "TMT", "TMST": "TMST", "OEZ": "OEZ", "COST": "COST", "ACWDT": "ACWDT", "HNPM": "HNPM", "LHDT": "LHDT"},
++ timezones: map[string]string{"MDT": "MDT", "ART": "ART", "WAST": "WAST", "WARST": "WARST", "∅∅∅": "∅∅∅", "HKST": "HKST", "CLT": "CLT", "CAT": "CAT", "HNEG": "HNEG", "AKST": "AKST", "WIT": "WIT", "NZST": "NZST", "JST": "JST", "AWST": "AWST", "AWDT": "AWDT", "GFT": "GFT", "EST": "EST", "HEPM": "HEPM", "ACDT": "ACDT", "LHST": "LHST", "AEST": "AEST", "AEDT": "AEDT", "CHADT": "CHADT", "HEOG": "HEOG", "WIB": "WIB", "LHDT": "LHDT", "HNPM": "HNPM", "BT": "BT", "VET": "VET", "HNT": "HNT", "MEZ": "MEZ", "EAT": "EAT", "MESZ": "MESZ", "UYST": "UYST", "SGT": "SGT", "OESZ": "OESZ", "CLST": "CLST", "CDT": "CDT", "ADT": "ADT", "ACST": "ACST", "JDT": "JDT", "WEZ": "WEZ", "OEZ": "OEZ", "GYT": "GYT", "COST": "COST", "TMST": "TMST", "CST": "CST", "ARST": "ARST", "BOT": "BOT", "HNCU": "HNCU", "AKDT": "AKDT", "WART": "WART", "TMT": "TMT", "ECT": "ECT", "ChST": "ChST", "AST": "AST", "ACWDT": "ACWDT", "HECU": "HECU", "SAST": "SAST", "HKT": "HKT", "WESZ": "WESZ", "HAT": "HAT", "ACWST": "ACWST", "NZDT": "NZDT", "HADT": "HADT", "HEEG": "HEEG", "PDT": "PDT", "CHAST": "CHAST", "UYT": "UYT", "EDT": "EDT", "MST": "MST", "PST": "PST", "HNPMX": "HNPMX", "WITA": "WITA", "SRT": "SRT", "HNNOMX": "HNNOMX", "WAT": "WAT", "GMT": "GMT", "COT": "COT", "HENOMX": "HENOMX", "MYT": "MYT", "IST": "IST", "HEPMX": "HEPMX", "HNOG": "HNOG", "HAST": "HAST"},
+ }
+ }
+ 
+diff --git a/dje_NE/dje_NE.go b/dje_NE/dje_NE.go
+index a133bd5..8dd1d97 100644
+--- a/dje_NE/dje_NE.go
++++ b/dje_NE/dje_NE.go
+@@ -42,26 +42,13 @@ type dje_NE struct {
+ // New returns a new instance of translator for the 'dje_NE' locale
+ func New() locales.Translator {
+ return &dje_NE{
+- locale: "dje_NE",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Žan", "Fee", "Mar", "Awi", "Me", "Žuw", "Žuy", "Ut", "Sek", "Okt", "Noo", "Dee"},
+- monthsNarrow: []string{"", "Ž", "F", "M", "A", "M", "Ž", "Ž", "U", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Žanwiye", "Feewiriye", "Marsi", "Awiril", "Me", "Žuweŋ", "Žuyye", "Ut", "Sektanbur", "Oktoobur", "Noowanbur", "Deesanbur"},
+- daysAbbreviated: []string{"Alh", "Ati", "Ata", "Ala", "Alm", "Alz", "Asi"},
+- daysNarrow: []string{"H", "T", "T", "L", "M", "Z", "S"},
+- daysWide: []string{"Alhadi", "Atinni", "Atalaata", "Alarba", "Alhamisi", "Alzuma", "Asibti"},
+- periodsAbbreviated: []string{"Subbaahi", "Zaarikay b"},
+- periodsWide: []string{"Subbaahi", "Zaarikay b"},
+- erasAbbreviated: []string{"IJ", "IZ"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Isaa jine", "Isaa zamanoo"},
+- timezones: map[string]string{"GYT": "GYT", "MEZ": "MEZ", "LHST": "LHST", "ChST": "ChST", "HNEG": "HNEG", "HNPMX": "HNPMX", "NZST": "NZST", "CHADT": "CHADT", "SAST": "SAST", "OEZ": "OEZ", "WART": "WART", "MESZ": "MESZ", "HKT": "HKT", "NZDT": "NZDT", "HEOG": "HEOG", "ACWST": "ACWST", "HNT": "HNT", "AEST": "AEST", "COT": "COT", "UYT": "UYT", "AEDT": "AEDT", "CHAST": "CHAST", "HNOG": "HNOG", "MST": "MST", "CDT": "CDT", "AWDT": "AWDT", "BOT": "BOT", "HEEG": "HEEG", "HENOMX": "HENOMX", "GMT": "GMT", "MYT": "MYT", "AKDT": "AKDT", "VET": "VET", "HNPM": "HNPM", "CAT": "CAT", "AST": "AST", "UYST": "UYST", "WIB": "WIB", "PST": "PST", "ACWDT": "ACWDT", "IST": "IST", "ACST": "ACST", "ACDT": "ACDT", "ADT": "ADT", "OESZ": "OESZ", "HAT": "HAT", "TMST": "TMST", "EAT": "EAT", "WAT": "WAT", "HNNOMX": "HNNOMX", "EST": "EST", "WIT": "WIT", "ART": "ART", "AWST": "AWST", "JST": "JST", "JDT": "JDT", "AKST": "AKST", "WEZ": "WEZ", "HKST": "HKST", "WITA": "WITA", "HEPM": "HEPM", "TMT": "TMT", "PDT": "PDT", "LHDT": "LHDT", "CLT": "CLT", "WARST": "WARST", "SGT": "SGT", "EDT": "EDT", "MDT": "MDT", "HAST": "HAST", "HADT": "HADT", "SRT": "SRT", "WESZ": "WESZ", "ECT": "ECT", "∅∅∅": "∅∅∅", "CST": "CST", "CLST": "CLST", "HNCU": "HNCU", "BT": "BT", "GFT": "GFT", "WAST": "WAST", "HECU": "HECU", "ARST": "ARST", "COST": "COST", "HEPMX": "HEPMX"},
++ locale: "dje_NE",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GFT": "GFT", "TMST": "TMST", "ChST": "ChST", "CLT": "CLT", "MYT": "MYT", "OESZ": "OESZ", "HAT": "HAT", "∅∅∅": "∅∅∅", "GYT": "GYT", "EST": "EST", "WIB": "WIB", "CST": "CST", "MDT": "MDT", "ART": "ART", "HNEG": "HNEG", "AEDT": "AEDT", "ACWDT": "ACWDT", "SGT": "SGT", "HKT": "HKT", "CLST": "CLST", "ACWST": "ACWST", "HNT": "HNT", "CAT": "CAT", "NZST": "NZST", "AWST": "AWST", "OEZ": "OEZ", "WART": "WART", "COT": "COT", "AST": "AST", "GMT": "GMT", "HEPM": "HEPM", "WAT": "WAT", "WAST": "WAST", "WARST": "WARST", "EDT": "EDT", "HKST": "HKST", "SRT": "SRT", "HEEG": "HEEG", "HEPMX": "HEPMX", "AKST": "AKST", "ECT": "ECT", "HNPM": "HNPM", "HNPMX": "HNPMX", "HNCU": "HNCU", "TMT": "TMT", "WITA": "WITA", "HADT": "HADT", "HNNOMX": "HNNOMX", "IST": "IST", "SAST": "SAST", "COST": "COST", "ARST": "ARST", "MEZ": "MEZ", "PDT": "PDT", "BT": "BT", "WEZ": "WEZ", "BOT": "BOT", "ACST": "ACST", "LHDT": "LHDT", "CHAST": "CHAST", "EAT": "EAT", "JDT": "JDT", "AWDT": "AWDT", "LHST": "LHST", "UYST": "UYST", "WESZ": "WESZ", "ACDT": "ACDT", "CHADT": "CHADT", "UYT": "UYT", "WIT": "WIT", "NZDT": "NZDT", "PST": "PST", "AKDT": "AKDT", "HNOG": "HNOG", "HEOG": "HEOG", "MST": "MST", "MESZ": "MESZ", "HENOMX": "HENOMX", "HECU": "HECU", "CDT": "CDT", "ADT": "ADT", "HAST": "HAST", "JST": "JST", "AEST": "AEST", "VET": "VET"},
+ }
+ }
+ 
+@@ -107,7 +94,7 @@ func (dje *dje_NE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (dje *dje_NE) MonthsAbbreviated() []string {
+- return dje.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -117,7 +104,7 @@ func (dje *dje_NE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (dje *dje_NE) MonthsNarrow() []string {
+- return dje.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -127,7 +114,7 @@ func (dje *dje_NE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (dje *dje_NE) MonthsWide() []string {
+- return dje.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -173,75 +160,13 @@ func (dje *dje_NE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'dje_NE' and handles both Whole and Real numbers based on 'v'
+ func (dje *dje_NE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dje.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(dje.group) - 1; j >= 0; j-- {
+- b = append(b, dje.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, dje.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'dje_NE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (dje *dje_NE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dje.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, dje.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, dje.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'dje_NE'
+@@ -249,56 +174,7 @@ func (dje *dje_NE) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := dje.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dje.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(dje.group) - 1; j >= 0; j-- {
+- b = append(b, dje.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, dje.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, dje.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'dje_NE'
+@@ -307,63 +183,7 @@ func (dje *dje_NE) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := dje.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dje.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(dje.group) - 1; j >= 0; j-- {
+- b = append(b, dje.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, dje.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, dje.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'dje_NE'
+@@ -371,17 +191,6 @@ func (dje *dje_NE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -390,17 +199,6 @@ func (dje *dje_NE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, dje.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -409,17 +207,6 @@ func (dje *dje_NE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, dje.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -428,19 +215,6 @@ func (dje *dje_NE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, dje.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, dje.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,19 +223,6 @@ func (dje *dje_NE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dje.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -470,26 +231,6 @@ func (dje *dje_NE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dje.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dje.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -498,30 +239,6 @@ func (dje *dje_NE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dje.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dje.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -530,34 +247,5 @@ func (dje *dje_NE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dje.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dje.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := dje.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/dsb/dsb.go b/dsb/dsb.go
+index 27bfc19..9d3f0a2 100644
+--- a/dsb/dsb.go
++++ b/dsb/dsb.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"pś.Chr.n.", "pó Chr.n."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"pśed Kristusowym naroźenim", "pó Kristusowem naroźenju"},
+- timezones: map[string]string{"HKT": "Hongkongski standardny cas", "HENOMX": "Mexiski dłujkowjacorny lěśojski cas", "NZST": "Nowoseelandski standardny cas", "CHAST": "Chathamski standardny cas", "OEZ": "Pódzajtšnoeuropski standardny cas", "OESZ": "Pódzajtšnoeuropski lěśojski cas", "COST": "Kolumbiski lěśojski cas", "AKST": "Alaskojski standardny cas", "HADT": "Hawaiisko-aleutski lěśojski cas", "WITA": "Srjejźoindoneski cas", "AWDT": "Pódwjacornoawstralski lěśojski cas", "ACDT": "Srjejźoawstralski lěśojski cas", "EST": "Pódpołnocnoameriski pódzajtšny standardny cas", "HAST": "Hawaiisko-aleutski standardny cas", "AEST": "Pódzajtšnoawstralski standardny cas", "AEDT": "Pódzajtšnoawstralski lěśojski cas", "NZDT": "Nowoseelandski lěśojski cas", "CLT": "Chilski standardny cas", "GFT": "Francojskoguyański cas", "WAST": "Pódwjacornoafriski lěśojski cas", "HNNOMX": "Mexiski dłujkowjacorny standardny cas", "MDT": "MDT", "SRT": "Surinamski cas", "ACWDT": "Srjejźopódwjacorny awstralski lěśojski cas", "TMST": "Turkmeniski lěśojski cas", "CDT": "Pódpołnocnoameriski centralny lěśojski cas", "UYT": "Uruguayski standardny cas", "MESZ": "Srjejźoeuropski lěśojski cas", "HNOG": "Pódwjacornogrönlandski standardny cas", "CHADT": "Chathamski lěśojski cas", "CLST": "Chilski lěśojski cas", "TMT": "Turkmeniski standardny cas", "ChST": "Chamorrski cas", "GMT": "Greenwichski cas", "ADT": "Atlantiski lěśojski cas", "MYT": "Malajziski cas", "WAT": "Pódwjacornoafriski standardny cas", "ECT": "Ekuadorski cas", "WART": "Pódwjacornoargentinski standardny cas", "AWST": "Pódwjacornoawstralski standardny cas", "IST": "Indiski cas", "HNEG": "Pódzajtšnogrönlandski standardny cas", "HNCU": "Kubański standardny cas", "∅∅∅": "Acorski lěśojski cas", "GYT": "Guyański cas", "HECU": "Kubański lěśojski cas", "WIB": "Pódwjacornoindoneski cas", "JDT": "Japański lěśojski cas", "ART": "Argentinski standardny cas", "HEPM": "St.-Pierre-a-Miqueloński lěśojski cas", "LHST": "Standardny cas kupy Lord-Howe", "SAST": "Pódpołdnjowoafriski cas", "JST": "Japański standardny cas", "SGT": "Singapurski cas", "WIT": "Pódzajtšnoindoneski", "ACWST": "Srjejźopódwjacorny awstralski standardny cas", "LHDT": "lěśojski cas kupy Lord-Howe", "CAT": "Srjejźoafriski cas", "HEPMX": "Mexiski pacifiski lěśojski cas", "BT": "Bhutański cas", "PDT": "Pódpołnocnoameriski pacifiski lěśojski cas", "ARST": "Argentinski lěśojski cas", "WESZ": "Pódwjacornoeuropski lěśojski cas", "HNPM": "St.-Pierre-a-Miqueloński standardny cas", "PST": "Pódpołnocnoameriski pacifiski standardny cas", "ACST": "Srjejźoawstralski standardny cas", "HNPMX": "Mexiski pacifiski standardny cas", "AKDT": "Alaskojski lěśojski cas", "HAT": "Nowofundlandski lěśojski cas", "MEZ": "Srjejźoeuropski standardny cas", "AST": "Atlantiski standardny cas", "VET": "Venezuelski cas", "HEOG": "Pódwjacornogrönlandski lěśojski cas", "EAT": "Pódzajtšnoafriski cas", "CST": "Pódpołnocnoameriski centralny standardny cas", "UYST": "Uruguayski lěśojski cas", "WEZ": "Pódwjacornoeuropski standardny cas", "HKST": "Hongkongski lěśojski cas", "HEEG": "Pódzajtšnogrönlandski lěśojski cas", "BOT": "Boliwiski cas", "WARST": "Pódwjacornoargentinski lěśojski cas", "COT": "Kolumbiski standardny cas", "EDT": "Pódpołnocnoameriski pódzajtšny lěśojski cas", "MST": "MST", "HNT": "Nowofundlandski standardny cas"},
++ timezones: map[string]string{"LHST": "Standardny cas kupy Lord-Howe", "CHAST": "Chathamski standardny cas", "TMST": "Turkmeniski lěśojski cas", "GMT": "Greenwichski cas", "AWST": "Pódwjacornoawstralski standardny cas", "JST": "Japański standardny cas", "CHADT": "Chathamski lěśojski cas", "IST": "Indiski cas", "AEDT": "Pódzajtšnoawstralski lěśojski cas", "WART": "Pódwjacornoargentinski standardny cas", "NZDT": "Nowoseelandski lěśojski cas", "ADT": "Atlantiski lěśojski cas", "NZST": "Nowoseelandski standardny cas", "UYT": "Uruguayski standardny cas", "AEST": "Pódzajtšnoawstralski standardny cas", "WAST": "Pódwjacornoafriski lěśojski cas", "GFT": "Francojskoguyański cas", "HEOG": "Pódwjacornogrönlandski lěśojski cas", "CLT": "Chilski standardny cas", "CST": "Pódpołnocnoameriski centralny standardny cas", "WESZ": "Pódwjacornoeuropski lěśojski cas", "WAT": "Pódwjacornoafriski standardny cas", "HNT": "Nowofundlandski standardny cas", "HKT": "Hongkongski standardny cas", "ARST": "Argentinski lěśojski cas", "ACST": "Srjejźoawstralski standardny cas", "HNEG": "Pódzajtšnogrönlandski standardny cas", "HENOMX": "Mexiski dłujkowjacorny lěśojski cas", "LHDT": "lěśojski cas kupy Lord-Howe", "HEPM": "St.-Pierre-a-Miqueloński lěśojski cas", "JDT": "Japański lěśojski cas", "EDT": "Pódpołnocnoameriski pódzajtšny lěśojski cas", "WIB": "Pódwjacornoindoneski cas", "HAT": "Nowofundlandski lěśojski cas", "MDT": "MDT", "ECT": "Ekuadorski cas", "AWDT": "Pódwjacornoawstralski lěśojski cas", "UYST": "Uruguayski lěśojski cas", "ACWST": "Srjejźopódwjacorny awstralski standardny cas", "OEZ": "Pódzajtšnoeuropski standardny cas", "EST": "Pódpołnocnoameriski pódzajtšny standardny cas", "WITA": "Srjejźoindoneski cas", "SAST": "Pódpołdnjowoafriski cas", "COST": "Kolumbiski lěśojski cas", "HNPM": "St.-Pierre-a-Miqueloński standardny cas", "AKST": "Alaskojski standardny cas", "COT": "Kolumbiski standardny cas", "VET": "Venezuelski cas", "HEPMX": "Mexiski pacifiski lěśojski cas", "MST": "MST", "HKST": "Hongkongski lěśojski cas", "CLST": "Chilski lěśojski cas", "SGT": "Singapurski cas", "GYT": "Guyański cas", "HNOG": "Pódwjacornogrönlandski standardny cas", "CAT": "Srjejźoafriski cas", "HADT": "Hawaiisko-aleutski lěśojski cas", "EAT": "Pódzajtšnoafriski cas", "HEEG": "Pódzajtšnogrönlandski lěśojski cas", "PDT": "Pódpołnocnoameriski pacifiski lěśojski cas", "WEZ": "Pódwjacornoeuropski standardny cas", "TMT": "Turkmeniski standardny cas", "SRT": "Surinamski cas", "HAST": "Hawaiisko-aleutski standardny cas", "ACDT": "Srjejźoawstralski lěśojski cas", "HNNOMX": "Mexiski dłujkowjacorny standardny cas", "PST": "Pódpołnocnoameriski pacifiski standardny cas", "HECU": "Kubański lěśojski cas", "∅∅∅": "Acorski lěśojski cas", "ART": "Argentinski standardny cas", "BOT": "Boliwiski cas", "BT": "Bhutański cas", "ACWDT": "Srjejźopódwjacorny awstralski lěśojski cas", "AKDT": "Alaskojski lěśojski cas", "AST": "Atlantiski standardny cas", "ChST": "Chamorrski cas", "HNCU": "Kubański standardny cas", "WIT": "Pódzajtšnoindoneski", "CDT": "Pódpołnocnoameriski centralny lěśojski cas", "MEZ": "Srjejźoeuropski standardny cas", "WARST": "Pódwjacornoargentinski lěśojski cas", "MESZ": "Srjejźoeuropski lěśojski cas", "OESZ": "Pódzajtšnoeuropski lěśojski cas", "MYT": "Malajziski cas", "HNPMX": "Mexiski pacifiski standardny cas"},
+ }
+ }
+ 
+diff --git a/dsb_DE/dsb_DE.go b/dsb_DE/dsb_DE.go
+index 802e034..89facfe 100644
+--- a/dsb_DE/dsb_DE.go
++++ b/dsb_DE/dsb_DE.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type dsb_DE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'dsb_DE' locale
+ func New() locales.Translator {
+ return &dsb_DE{
+- locale: "dsb_DE",
+- pluralsCardinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "měr.", "apr.", "maj.", "jun.", "jul.", "awg.", "sep.", "okt.", "now.", "dec."},
+- monthsNarrow: []string{"", "j", "f", "m", "a", "m", "j", "j", "a", "s", "o", "n", "d"},
+- monthsWide: []string{"", "januara", "februara", "měrca", "apryla", "maja", "junija", "julija", "awgusta", "septembra", "oktobra", "nowembra", "decembra"},
+- daysAbbreviated: []string{"nje", "pón", "wał", "srj", "stw", "pět", "sob"},
+- daysNarrow: []string{"n", "p", "w", "s", "s", "p", "s"},
+- daysShort: []string{"nj", "pó", "wa", "sr", "st", "pě", "so"},
+- daysWide: []string{"njeźela", "pónjeźele", "wałtora", "srjoda", "stwórtk", "pětk", "sobota"},
+- periodsAbbreviated: []string{"dopołdnja", "wótpołdnja"},
+- periodsNarrow: []string{"dop.", "wótp."},
+- periodsWide: []string{"dopołdnja", "wótpołdnja"},
+- erasAbbreviated: []string{"pś.Chr.n.", "pó Chr.n."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"pśed Kristusowym naroźenim", "pó Kristusowem naroźenju"},
+- timezones: map[string]string{"BT": "Bhutański cas", "TMST": "Turkmeniski lěśojski cas", "AST": "Atlantiski standardny cas", "WIB": "Pódwjacornoindoneski cas", "HADT": "Hawaiisko-aleutski lěśojski cas", "HNNOMX": "Mexiski dłujkowjacorny standardny cas", "HNT": "Nowofundlandski standardny cas", "MST": "MST", "EST": "Pódpołnocnoameriski pódzajtšny standardny cas", "CST": "Pódpołnocnoameriski centralny standardny cas", "HAT": "Nowofundlandski lěśojski cas", "MEZ": "Srjejźoeuropski standardny cas", "WAT": "Pódwjacornoafriski standardny cas", "HNCU": "Kubański standardny cas", "GMT": "Greenwichski cas", "JDT": "Japański lěśojski cas", "ACST": "Srjejźoawstralski standardny cas", "CHADT": "Chathamski lěśojski cas", "HEEG": "Pódzajtšnogrönlandski lěśojski cas", "ChST": "Chamorrski cas", "EDT": "Pódpołnocnoameriski pódzajtšny lěśojski cas", "AKST": "Alaskojski standardny cas", "WITA": "Srjejźoindoneski cas", "LHST": "Standardny cas kupy Lord-Howe", "HECU": "Kubański lěśojski cas", "HNOG": "Pódwjacornogrönlandski standardny cas", "AWDT": "Pódwjacornoawstralski lěśojski cas", "SGT": "Singapurski cas", "SRT": "Surinamski cas", "HNEG": "Pódzajtšnogrönlandski standardny cas", "WAST": "Pódwjacornoafriski lěśojski cas", "CAT": "Srjejźoafriski cas", "COST": "Kolumbiski lěśojski cas", "ACWDT": "Srjejźopódwjacorny awstralski lěśojski cas", "∅∅∅": "Peruski lěśojski cas", "CDT": "Pódpołnocnoameriski centralny lěśojski cas", "WIT": "Pódzajtšnoindoneski", "SAST": "Pódpołdnjowoafriski cas", "WEZ": "Pódwjacornoeuropski standardny cas", "ARST": "Argentinski lěśojski cas", "PST": "Pódpołnocnoameriski pacifiski standardny cas", "CHAST": "Chathamski standardny cas", "CLT": "Chilski standardny cas", "TMT": "Turkmeniski standardny cas", "HEPMX": "Mexiski pacifiski lěśojski cas", "GYT": "Guyański cas", "ART": "Argentinski standardny cas", "VET": "Venezuelski cas", "NZDT": "Nowoseelandski lěśojski cas", "GFT": "Francojskoguyański cas", "COT": "Kolumbiski standardny cas", "HENOMX": "Mexiski dłujkowjacorny lěśojski cas", "ADT": "Atlantiski lěśojski cas", "HEOG": "Pódwjacornogrönlandski lěśojski cas", "PDT": "Pódpołnocnoameriski pacifiski lěśojski cas", "BOT": "Boliwiski cas", "ACDT": "Srjejźoawstralski lěśojski cas", "EAT": "Pódzajtšnoafriski cas", "UYST": "Uruguayski lěśojski cas", "HAST": "Hawaiisko-aleutski standardny cas", "AWST": "Pódwjacornoawstralski standardny cas", "HKT": "Hongkongski standardny cas", "HEPM": "St.-Pierre-a-Miqueloński lěśojski cas", "OESZ": "Pódzajtšnoeuropski lěśojski cas", "WART": "Pódwjacornoargentinski standardny cas", "WESZ": "Pódwjacornoeuropski lěśojski cas", "MYT": "Malajziski cas", "UYT": "Uruguayski standardny cas", "MESZ": "Srjejźoeuropski lěśojski cas", "HNPM": "St.-Pierre-a-Miqueloński standardny cas", "CLST": "Chilski lěśojski cas", "OEZ": "Pódzajtšnoeuropski standardny cas", "ACWST": "Srjejźopódwjacorny awstralski standardny cas", "AEST": "Pódzajtšnoawstralski standardny cas", "LHDT": "lěśojski cas kupy Lord-Howe", "NZST": "Nowoseelandski standardny cas", "WARST": "Pódwjacornoargentinski lěśojski cas", "AKDT": "Alaskojski lěśojski cas", "AEDT": "Pódzajtšnoawstralski lěśojski cas", "HKST": "Hongkongski lěśojski cas", "IST": "Indiski cas", "JST": "Japański standardny cas", "ECT": "Ekuadorski cas", "MDT": "MDT", "HNPMX": "Mexiski pacifiski standardny cas"},
++ locale: "dsb_DE",
++ pluralsCardinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AKDT": "AKDT", "HNOG": "HNOG", "TMST": "TMST", "NZST": "NZST", "ARST": "ARST", "MESZ": "MESZ", "PDT": "PDT", "UYT": "UYT", "CAT": "CAT", "GMT": "GMT", "MEZ": "MEZ", "AWST": "AWST", "WESZ": "WESZ", "HEOG": "HEOG", "CHADT": "CHADT", "NZDT": "NZDT", "CST": "CST", "ART": "ART", "JDT": "JDT", "CHAST": "CHAST", "ACDT": "ACDT", "∅∅∅": "∅∅∅", "HAT": "HAT", "SAST": "SAST", "CLT": "CLT", "ECT": "ECT", "AWDT": "AWDT", "ACWDT": "ACWDT", "HNCU": "HNCU", "HNT": "HNT", "WIB": "WIB", "BOT": "BOT", "JST": "JST", "ADT": "ADT", "SRT": "SRT", "COT": "COT", "WEZ": "WEZ", "OEZ": "OEZ", "COST": "COST", "MST": "MST", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "UYST": "UYST", "CLST": "CLST", "AEDT": "AEDT", "WITA": "WITA", "HEEG": "HEEG", "HENOMX": "HENOMX", "LHST": "LHST", "HNPM": "HNPM", "PST": "PST", "CDT": "CDT", "BT": "BT", "AEST": "AEST", "HKT": "HKT", "TMT": "TMT", "GYT": "GYT", "MDT": "MDT", "LHDT": "LHDT", "HNPMX": "HNPMX", "GFT": "GFT", "OESZ": "OESZ", "HAST": "HAST", "WAT": "WAT", "AST": "AST", "MYT": "MYT", "VET": "VET", "WIT": "WIT", "HKST": "HKST", "ACST": "ACST", "ACWST": "ACWST", "IST": "IST", "WAST": "WAST", "ChST": "ChST", "EST": "EST", "AKST": "AKST", "WART": "WART", "WARST": "WARST", "HADT": "HADT", "EAT": "EAT", "SGT": "SGT", "HECU": "HECU", "HEPMX": "HEPMX", "EDT": "EDT"},
+ }
+ }
+ 
+@@ -134,7 +109,7 @@ func (dsb *dsb_DE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (dsb *dsb_DE) MonthsAbbreviated() []string {
+- return dsb.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -144,7 +119,7 @@ func (dsb *dsb_DE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (dsb *dsb_DE) MonthsNarrow() []string {
+- return dsb.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -154,7 +129,7 @@ func (dsb *dsb_DE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (dsb *dsb_DE) MonthsWide() []string {
+- return dsb.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -200,75 +175,13 @@ func (dsb *dsb_DE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'dsb_DE' and handles both Whole and Real numbers based on 'v'
+ func (dsb *dsb_DE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dsb.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, dsb.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, dsb.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'dsb_DE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (dsb *dsb_DE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dsb.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, dsb.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, dsb.percentSuffix...)
+-
+- b = append(b, dsb.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'dsb_DE'
+@@ -276,56 +189,7 @@ func (dsb *dsb_DE) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := dsb.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dsb.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, dsb.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, dsb.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, dsb.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, dsb.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'dsb_DE'
+@@ -334,63 +198,7 @@ func (dsb *dsb_DE) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := dsb.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dsb.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, dsb.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, dsb.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, dsb.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, dsb.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, dsb.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'dsb_DE'
+@@ -398,17 +206,6 @@ func (dsb *dsb_DE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -417,17 +214,6 @@ func (dsb *dsb_DE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -436,17 +222,6 @@ func (dsb *dsb_DE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, dsb.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -455,19 +230,6 @@ func (dsb *dsb_DE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, dsb.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, dsb.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -476,15 +238,6 @@ func (dsb *dsb_DE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dsb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -493,22 +246,6 @@ func (dsb *dsb_DE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dsb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dsb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -517,26 +254,6 @@ func (dsb *dsb_DE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dsb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dsb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -545,30 +262,5 @@ func (dsb *dsb_DE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dsb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dsb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := dsb.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/dua/dua.go b/dua/dua.go
+index 3805d8e..95c0dc3 100644
+--- a/dua/dua.go
++++ b/dua/dua.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ɓ.Ys", "mb.Ys"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"ɓoso ɓwá yáɓe lá", "mbúsa kwédi a Yés"},
+- timezones: map[string]string{"GMT": "GMT", "AKDT": "AKDT", "CAT": "CAT", "JDT": "JDT", "ACDT": "ACDT", "WAT": "WAT", "HNNOMX": "HNNOMX", "AKST": "AKST", "AST": "AST", "WEZ": "WEZ", "CHAST": "CHAST", "ECT": "ECT", "COT": "COT", "HEPM": "HEPM", "ChST": "ChST", "EAT": "EAT", "MDT": "MDT", "HNEG": "HNEG", "∅∅∅": "∅∅∅", "SGT": "SGT", "HNPMX": "HNPMX", "HAT": "HAT", "CLST": "CLST", "MYT": "MYT", "HKST": "HKST", "MEZ": "MEZ", "LHDT": "LHDT", "GFT": "GFT", "MESZ": "MESZ", "EST": "EST", "WIB": "WIB", "PDT": "PDT", "AWST": "AWST", "NZDT": "NZDT", "TMST": "TMST", "HNOG": "HNOG", "WITA": "WITA", "NZST": "NZST", "LHST": "LHST", "SAST": "SAST", "UYST": "UYST", "HEEG": "HEEG", "OESZ": "OESZ", "HEPMX": "HEPMX", "SRT": "SRT", "PST": "PST", "AEDT": "AEDT", "TMT": "TMT", "HADT": "HADT", "ACWST": "ACWST", "ACWDT": "ACWDT", "HENOMX": "HENOMX", "COST": "COST", "GYT": "GYT", "UYT": "UYT", "WIT": "WIT", "HNT": "HNT", "ARST": "ARST", "BOT": "BOT", "HNCU": "HNCU", "ART": "ART", "AWDT": "AWDT", "JST": "JST", "CLT": "CLT", "MST": "MST", "BT": "BT", "HKT": "HKT", "OEZ": "OEZ", "HAST": "HAST", "HEOG": "HEOG", "HNPM": "HNPM", "ACST": "ACST", "WAST": "WAST", "WARST": "WARST", "EDT": "EDT", "CDT": "CDT", "VET": "VET", "WESZ": "WESZ", "CHADT": "CHADT", "IST": "IST", "WART": "WART", "HECU": "HECU", "CST": "CST", "ADT": "ADT", "AEST": "AEST"},
++ timezones: map[string]string{"SGT": "SGT", "VET": "VET", "SAST": "SAST", "TMT": "TMT", "CAT": "CAT", "ARST": "ARST", "MESZ": "MESZ", "UYST": "UYST", "HNPMX": "HNPMX", "HNPM": "HNPM", "COT": "COT", "EST": "EST", "ECT": "ECT", "AST": "AST", "HENOMX": "HENOMX", "AWDT": "AWDT", "WIB": "WIB", "HAST": "HAST", "AEST": "AEST", "WIT": "WIT", "GYT": "GYT", "HEOG": "HEOG", "NZST": "NZST", "∅∅∅": "∅∅∅", "ADT": "ADT", "HNNOMX": "HNNOMX", "JDT": "JDT", "AKDT": "AKDT", "CST": "CST", "LHST": "LHST", "PDT": "PDT", "CHAST": "CHAST", "UYT": "UYT", "COST": "COST", "CDT": "CDT", "MDT": "MDT", "SRT": "SRT", "HNEG": "HNEG", "ACWST": "ACWST", "HEPMX": "HEPMX", "LHDT": "LHDT", "HNCU": "HNCU", "WAT": "WAT", "WARST": "WARST", "GMT": "GMT", "ChST": "ChST", "HADT": "HADT", "ACDT": "ACDT", "CHADT": "CHADT", "HECU": "HECU", "HNT": "HNT", "HKT": "HKT", "MST": "MST", "EAT": "EAT", "AWST": "AWST", "MYT": "MYT", "EDT": "EDT", "CLST": "CLST", "BOT": "BOT", "ACST": "ACST", "HEEG": "HEEG", "HEPM": "HEPM", "OESZ": "OESZ", "GFT": "GFT", "WART": "WART", "HKST": "HKST", "MEZ": "MEZ", "ACWDT": "ACWDT", "OEZ": "OEZ", "CLT": "CLT", "AEDT": "AEDT", "WESZ": "WESZ", "WAST": "WAST", "HAT": "HAT", "ART": "ART", "NZDT": "NZDT", "IST": "IST", "WEZ": "WEZ", "BT": "BT", "AKST": "AKST", "HNOG": "HNOG", "TMST": "TMST", "WITA": "WITA", "JST": "JST", "PST": "PST"},
+ }
+ }
+ 
+diff --git a/dua_CM/dua_CM.go b/dua_CM/dua_CM.go
+index 128a4a7..1343c34 100644
+--- a/dua_CM/dua_CM.go
++++ b/dua_CM/dua_CM.go
+@@ -10,64 +10,45 @@ import (
+ )
+ 
+ type dua_CM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'dua_CM' locale
+ func New() locales.Translator {
+ return &dua_CM{
+- locale: "dua_CM",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "di", "ŋgɔn", "sɔŋ", "diɓ", "emi", "esɔ", "mad", "diŋ", "nyɛt", "may", "tin", "elá"},
+- monthsNarrow: []string{"", "d", "ŋ", "s", "d", "e", "e", "m", "d", "n", "m", "t", "e"},
+- monthsWide: []string{"", "dimɔ́di", "ŋgɔndɛ", "sɔŋɛ", "diɓáɓá", "emiasele", "esɔpɛsɔpɛ", "madiɓɛ́díɓɛ́", "diŋgindi", "nyɛtɛki", "mayésɛ́", "tiníní", "eláŋgɛ́"},
+- daysAbbreviated: []string{"ét", "mɔ́s", "kwa", "muk", "ŋgi", "ɗón", "esa"},
+- daysNarrow: []string{"e", "m", "k", "m", "ŋ", "ɗ", "e"},
+- daysWide: []string{"éti", "mɔ́sú", "kwasú", "mukɔ́sú", "ŋgisú", "ɗónɛsú", "esaɓasú"},
+- periodsAbbreviated: []string{"idiɓa", "ebyámu"},
+- periodsWide: []string{"idiɓa", "ebyámu"},
+- erasAbbreviated: []string{"ɓ.Ys", "mb.Ys"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ɓoso ɓwá yáɓe lá", "mbúsa kwédi a Yés"},
+- timezones: map[string]string{"VET": "VET", "HAT": "HAT", "EAT": "EAT", "COT": "COT", "ARST": "ARST", "HKST": "HKST", "EST": "EST", "AEST": "AEST", "HEPM": "HEPM", "GFT": "GFT", "TMST": "TMST", "ECT": "ECT", "WART": "WART", "ACWDT": "ACWDT", "AEDT": "AEDT", "HNPM": "HNPM", "CHADT": "CHADT", "ChST": "ChST", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "UYT": "UYT", "IST": "IST", "SAST": "SAST", "JST": "JST", "AST": "AST", "SRT": "SRT", "NZDT": "NZDT", "CHAST": "CHAST", "HEEG": "HEEG", "OEZ": "OEZ", "HENOMX": "HENOMX", "AKST": "AKST", "MEZ": "MEZ", "AKDT": "AKDT", "HEOG": "HEOG", "PDT": "PDT", "JDT": "JDT", "ACST": "ACST", "ACDT": "ACDT", "CAT": "CAT", "COST": "COST", "BOT": "BOT", "GYT": "GYT", "AWDT": "AWDT", "WEZ": "WEZ", "PST": "PST", "LHST": "LHST", "CLT": "CLT", "EDT": "EDT", "WESZ": "WESZ", "ACWST": "ACWST", "HKT": "HKT", "HNOG": "HNOG", "OESZ": "OESZ", "HNCU": "HNCU", "HECU": "HECU", "HNT": "HNT", "ART": "ART", "AWST": "AWST", "TMT": "TMT", "HEPMX": "HEPMX", "WIT": "WIT", "HAST": "HAST", "WAT": "WAT", "MST": "MST", "MDT": "MDT", "BT": "BT", "MESZ": "MESZ", "WAST": "WAST", "SGT": "SGT", "HADT": "HADT", "WITA": "WITA", "CLST": "CLST", "HNNOMX": "HNNOMX", "ADT": "ADT", "MYT": "MYT", "UYST": "UYST", "HNEG": "HNEG", "GMT": "GMT", "CDT": "CDT", "WIB": "WIB", "WARST": "WARST", "CST": "CST", "LHDT": "LHDT", "NZST": "NZST"},
++ locale: "dua_CM",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEPM": "HEPM", "UYST": "UYST", "IST": "IST", "ACWDT": "ACWDT", "HNCU": "HNCU", "HNEG": "HNEG", "HENOMX": "HENOMX", "LHST": "LHST", "OEZ": "OEZ", "WARST": "WARST", "WITA": "WITA", "PST": "PST", "WEZ": "WEZ", "HKST": "HKST", "PDT": "PDT", "HKT": "HKT", "TMT": "TMT", "LHDT": "LHDT", "MDT": "MDT", "SRT": "SRT", "ACST": "ACST", "CST": "CST", "AEST": "AEST", "WART": "WART", "NZST": "NZST", "WIB": "WIB", "ACWST": "ACWST", "AEDT": "AEDT", "CHADT": "CHADT", "HEPMX": "HEPMX", "SAST": "SAST", "TMST": "TMST", "ADT": "ADT", "HAST": "HAST", "HADT": "HADT", "CHAST": "CHAST", "HEOG": "HEOG", "EDT": "EDT", "WESZ": "WESZ", "VET": "VET", "HNT": "HNT", "HAT": "HAT", "ChST": "ChST", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "JST": "JST", "HNPMX": "HNPMX", "MST": "MST", "ARST": "ARST", "AWDT": "AWDT", "WAST": "WAST", "HNOG": "HNOG", "CLT": "CLT", "ECT": "ECT", "HECU": "HECU", "WAT": "WAT", "CAT": "CAT", "GMT": "GMT", "ACDT": "ACDT", "HEEG": "HEEG", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "COST": "COST", "EST": "EST", "CDT": "CDT", "AWST": "AWST", "JDT": "JDT", "MEZ": "MEZ", "MYT": "MYT", "UYT": "UYT", "GYT": "GYT", "CLST": "CLST", "AST": "AST", "BOT": "BOT", "EAT": "EAT", "SGT": "SGT", "AKST": "AKST", "WIT": "WIT", "COT": "COT", "NZDT": "NZDT", "ART": "ART", "BT": "BT", "MESZ": "MESZ", "AKDT": "AKDT", "GFT": "GFT"},
+ }
+ }
+ 
+@@ -113,7 +94,7 @@ func (dua *dua_CM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (dua *dua_CM) MonthsAbbreviated() []string {
+- return dua.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -123,7 +104,7 @@ func (dua *dua_CM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (dua *dua_CM) MonthsNarrow() []string {
+- return dua.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -133,7 +114,7 @@ func (dua *dua_CM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (dua *dua_CM) MonthsWide() []string {
+- return dua.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -179,77 +160,13 @@ func (dua *dua_CM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'dua_CM' and handles both Whole and Real numbers based on 'v'
+ func (dua *dua_CM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dua.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(dua.group) - 1; j >= 0; j-- {
+- b = append(b, dua.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, dua.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'dua_CM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (dua *dua_CM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dua.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, dua.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, dua.percentSuffix...)
+-
+- b = append(b, dua.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'dua_CM'
+@@ -257,58 +174,7 @@ func (dua *dua_CM) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := dua.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dua.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(dua.group) - 1; j >= 0; j-- {
+- b = append(b, dua.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, dua.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, dua.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, dua.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'dua_CM'
+@@ -317,65 +183,7 @@ func (dua *dua_CM) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := dua.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dua.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(dua.group) - 1; j >= 0; j-- {
+- b = append(b, dua.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, dua.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, dua.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, dua.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, dua.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'dua_CM'
+@@ -383,17 +191,6 @@ func (dua *dua_CM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -402,17 +199,6 @@ func (dua *dua_CM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, dua.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -421,17 +207,6 @@ func (dua *dua_CM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, dua.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -440,19 +215,6 @@ func (dua *dua_CM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, dua.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, dua.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -461,19 +223,6 @@ func (dua *dua_CM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dua.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -482,26 +231,6 @@ func (dua *dua_CM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dua.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dua.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -510,30 +239,6 @@ func (dua *dua_CM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dua.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dua.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -542,34 +247,5 @@ func (dua *dua_CM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dua.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dua.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := dua.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/dyo/dyo.go b/dyo/dyo.go
+index a9a86ae..ec8074f 100644
+--- a/dyo/dyo.go
++++ b/dyo/dyo.go
+@@ -63,7 +63,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ArY", "AtY"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Ariŋuu Yeesu", "Atooŋe Yeesu"},
+- timezones: map[string]string{"HKT": "HKT", "HEPMX": "HEPMX", "CDT": "CDT", "HNOG": "HNOG", "TMT": "TMT", "MDT": "MDT", "HNPMX": "HNPMX", "ADT": "ADT", "JDT": "JDT", "EST": "EST", "MESZ": "MESZ", "SAST": "SAST", "HNEG": "HNEG", "ACDT": "ACDT", "MST": "MST", "AKST": "AKST", "AEDT": "AEDT", "HEPM": "HEPM", "PST": "PST", "WESZ": "WESZ", "EAT": "EAT", "UYST": "UYST", "HAST": "HAST", "WIT": "WIT", "BT": "BT", "LHDT": "LHDT", "CHADT": "CHADT", "CLT": "CLT", "ChST": "ChST", "COST": "COST", "HNNOMX": "HNNOMX", "SRT": "SRT", "HKST": "HKST", "WITA": "WITA", "WART": "WART", "WARST": "WARST", "GMT": "GMT", "SGT": "SGT", "GYT": "GYT", "WAST": "WAST", "OEZ": "OEZ", "UYT": "UYT", "CST": "CST", "HEOG": "HEOG", "ART": "ART", "IST": "IST", "HECU": "HECU", "CAT": "CAT", "WAT": "WAT", "ECT": "ECT", "MYT": "MYT", "WEZ": "WEZ", "ARST": "ARST", "CHAST": "CHAST", "TMST": "TMST", "HNCU": "HNCU", "HADT": "HADT", "AWDT": "AWDT", "LHST": "LHST", "MEZ": "MEZ", "OESZ": "OESZ", "AST": "AST", "AEST": "AEST", "AWST": "AWST", "GFT": "GFT", "HNT": "HNT", "ACWDT": "ACWDT", "HAT": "HAT", "NZDT": "NZDT", "∅∅∅": "∅∅∅", "WIB": "WIB", "VET": "VET", "CLST": "CLST", "COT": "COT", "BOT": "BOT", "HEEG": "HEEG", "ACST": "ACST", "EDT": "EDT", "PDT": "PDT", "ACWST": "ACWST", "HNPM": "HNPM", "JST": "JST", "AKDT": "AKDT", "NZST": "NZST", "HENOMX": "HENOMX"},
++ timezones: map[string]string{"ChST": "ChST", "HAST": "HAST", "HNOG": "HNOG", "LHDT": "LHDT", "AKST": "AKST", "WITA": "WITA", "MDT": "MDT", "HNEG": "HNEG", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "WAST": "WAST", "HKT": "HKT", "GMT": "GMT", "HNPM": "HNPM", "CHAST": "CHAST", "UYST": "UYST", "SGT": "SGT", "NZDT": "NZDT", "MYT": "MYT", "ACWST": "ACWST", "CHADT": "CHADT", "HEOG": "HEOG", "NZST": "NZST", "WIB": "WIB", "SRT": "SRT", "HNCU": "HNCU", "AKDT": "AKDT", "LHST": "LHST", "HNT": "HNT", "CLST": "CLST", "TMST": "TMST", "HNNOMX": "HNNOMX", "WESZ": "WESZ", "HKST": "HKST", "PDT": "PDT", "COT": "COT", "SAST": "SAST", "EST": "EST", "ECT": "ECT", "ARST": "ARST", "JDT": "JDT", "AWST": "AWST", "WARST": "WARST", "EDT": "EDT", "AWDT": "AWDT", "ACWDT": "ACWDT", "VET": "VET", "WIT": "WIT", "BOT": "BOT", "HEPM": "HEPM", "OEZ": "OEZ", "COST": "COST", "CAT": "CAT", "AST": "AST", "HEPMX": "HEPMX", "WAT": "WAT", "MST": "MST", "BT": "BT", "CST": "CST", "HNPMX": "HNPMX", "WART": "WART", "HEEG": "HEEG", "MEZ": "MEZ", "JST": "JST", "UYT": "UYT", "GFT": "GFT", "OESZ": "OESZ", "CLT": "CLT", "ART": "ART", "HENOMX": "HENOMX", "PST": "PST", "IST": "IST", "WEZ": "WEZ", "CDT": "CDT", "ADT": "ADT", "HADT": "HADT", "ACST": "ACST", "AEDT": "AEDT", "HECU": "HECU", "HAT": "HAT", "GYT": "GYT", "TMT": "TMT", "EAT": "EAT", "ACDT": "ACDT", "AEST": "AEST"},
+ }
+ }
+ 
+diff --git a/dyo_SN/dyo_SN.go b/dyo_SN/dyo_SN.go
+index 5e2b0bd..1fbaa72 100644
+--- a/dyo_SN/dyo_SN.go
++++ b/dyo_SN/dyo_SN.go
+@@ -10,60 +10,45 @@ import (
+ )
+ 
+ type dyo_SN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'dyo_SN' locale
+ func New() locales.Translator {
+ return &dyo_SN{
+- locale: "dyo_SN",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Sa", "Fe", "Ma", "Ab", "Me", "Su", "Sú", "Ut", "Se", "Ok", "No", "De"},
+- monthsNarrow: []string{"", "S", "F", "M", "A", "M", "S", "S", "U", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Sanvie", "Fébirie", "Mars", "Aburil", "Mee", "Sueŋ", "Súuyee", "Ut", "Settembar", "Oktobar", "Novembar", "Disambar"},
+- daysAbbreviated: []string{"Dim", "Ten", "Tal", "Ala", "Ara", "Arj", "Sib"},
+- daysNarrow: []string{"D", "T", "T", "A", "A", "A", "S"},
+- daysWide: []string{"Dimas", "Teneŋ", "Talata", "Alarbay", "Aramisay", "Arjuma", "Sibiti"},
+- erasAbbreviated: []string{"ArY", "AtY"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Ariŋuu Yeesu", "Atooŋe Yeesu"},
+- timezones: map[string]string{"MEZ": "MEZ", "SAST": "SAST", "JST": "JST", "GFT": "GFT", "WAST": "WAST", "HECU": "HECU", "HEPMX": "HEPMX", "AEST": "AEST", "OEZ": "OEZ", "AWDT": "AWDT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "HNPMX": "HNPMX", "HAST": "HAST", "WAT": "WAT", "ECT": "ECT", "WESZ": "WESZ", "HNT": "HNT", "CLT": "CLT", "CST": "CST", "HNPM": "HNPM", "NZST": "NZST", "ACWDT": "ACWDT", "LHST": "LHST", "TMT": "TMT", "OESZ": "OESZ", "ADT": "ADT", "UYST": "UYST", "HADT": "HADT", "HEPM": "HEPM", "EAT": "EAT", "COT": "COT", "WARST": "WARST", "VET": "VET", "BT": "BT", "HEOG": "HEOG", "ART": "ART", "AEDT": "AEDT", "ChST": "ChST", "EDT": "EDT", "GYT": "GYT", "UYT": "UYT", "BOT": "BOT", "NZDT": "NZDT", "MESZ": "MESZ", "JDT": "JDT", "HKST": "HKST", "ACST": "ACST", "AWST": "AWST", "CHAST": "CHAST", "COST": "COST", "SGT": "SGT", "AKDT": "AKDT", "WIB": "WIB", "CLST": "CLST", "MST": "MST", "ACWST": "ACWST", "PST": "PST", "ACDT": "ACDT", "CAT": "CAT", "MYT": "MYT", "HAT": "HAT", "WITA": "WITA", "AKST": "AKST", "HENOMX": "HENOMX", "WART": "WART", "WEZ": "WEZ", "HKT": "HKT", "LHDT": "LHDT", "AST": "AST", "WIT": "WIT", "SRT": "SRT", "PDT": "PDT", "HEEG": "HEEG", "∅∅∅": "∅∅∅", "GMT": "GMT", "MDT": "MDT", "HNOG": "HNOG", "CHADT": "CHADT", "IST": "IST", "TMST": "TMST", "EST": "EST", "CDT": "CDT", "ARST": "ARST"},
++ locale: "dyo_SN",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AKST": "AKST", "CLT": "CLT", "CLST": "CLST", "GFT": "GFT", "PST": "PST", "ACWDT": "ACWDT", "BOT": "BOT", "BT": "BT", "AEST": "AEST", "WESZ": "WESZ", "CHADT": "CHADT", "HNOG": "HNOG", "ECT": "ECT", "EAT": "EAT", "CHAST": "CHAST", "HNPMX": "HNPMX", "WAST": "WAST", "HAT": "HAT", "NZDT": "NZDT", "CDT": "CDT", "HNT": "HNT", "WITA": "WITA", "HAST": "HAST", "JST": "JST", "CST": "CST", "SRT": "SRT", "HNEG": "HNEG", "HEPM": "HEPM", "WART": "WART", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "SAST": "SAST", "IST": "IST", "GYT": "GYT", "HKST": "HKST", "CAT": "CAT", "ARST": "ARST", "HKT": "HKT", "MDT": "MDT", "NZST": "NZST", "ChST": "ChST", "HENOMX": "HENOMX", "MEZ": "MEZ", "OEZ": "OEZ", "TMST": "TMST", "EST": "EST", "EDT": "EDT", "AWST": "AWST", "ACWST": "ACWST", "SGT": "SGT", "HEPMX": "HEPMX", "TMT": "TMT", "AST": "AST", "HEEG": "HEEG", "UYT": "UYT", "ACDT": "ACDT", "VET": "VET", "HECU": "HECU", "AKDT": "AKDT", "WIT": "WIT", "GMT": "GMT", "ADT": "ADT", "WARST": "WARST", "COT": "COT", "PDT": "PDT", "WEZ": "WEZ", "AWDT": "AWDT", "HNNOMX": "HNNOMX", "MYT": "MYT", "HNPM": "HNPM", "JDT": "JDT", "WIB": "WIB", "ART": "ART", "HADT": "HADT", "LHST": "LHST", "WAT": "WAT", "OESZ": "OESZ", "COST": "COST", "MST": "MST", "LHDT": "LHDT", "AEDT": "AEDT", "UYST": "UYST", "ACST": "ACST", "MESZ": "MESZ", "HNCU": "HNCU"},
+ }
+ }
+ 
+@@ -109,7 +94,7 @@ func (dyo *dyo_SN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (dyo *dyo_SN) MonthsAbbreviated() []string {
+- return dyo.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -119,7 +104,7 @@ func (dyo *dyo_SN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (dyo *dyo_SN) MonthsNarrow() []string {
+- return dyo.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -129,7 +114,7 @@ func (dyo *dyo_SN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (dyo *dyo_SN) MonthsWide() []string {
+- return dyo.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -175,75 +160,13 @@ func (dyo *dyo_SN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'dyo_SN' and handles both Whole and Real numbers based on 'v'
+ func (dyo *dyo_SN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dyo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(dyo.group) - 1; j >= 0; j-- {
+- b = append(b, dyo.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, dyo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'dyo_SN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (dyo *dyo_SN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dyo.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, dyo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, dyo.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'dyo_SN'
+@@ -251,58 +174,7 @@ func (dyo *dyo_SN) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := dyo.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dyo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(dyo.group) - 1; j >= 0; j-- {
+- b = append(b, dyo.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, dyo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, dyo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, dyo.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'dyo_SN'
+@@ -311,65 +183,7 @@ func (dyo *dyo_SN) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := dyo.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dyo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(dyo.group) - 1; j >= 0; j-- {
+- b = append(b, dyo.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, dyo.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, dyo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, dyo.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, dyo.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'dyo_SN'
+@@ -377,17 +191,6 @@ func (dyo *dyo_SN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -396,17 +199,6 @@ func (dyo *dyo_SN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, dyo.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -415,17 +207,6 @@ func (dyo *dyo_SN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, dyo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -434,19 +215,6 @@ func (dyo *dyo_SN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, dyo.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, dyo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -455,19 +223,6 @@ func (dyo *dyo_SN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dyo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -476,26 +231,6 @@ func (dyo *dyo_SN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dyo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dyo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -504,30 +239,6 @@ func (dyo *dyo_SN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dyo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dyo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -536,34 +247,5 @@ func (dyo *dyo_SN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, dyo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dyo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := dyo.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/dz/dz.go b/dz/dz.go
+index 821e32c..32bbcff 100644
+--- a/dz/dz.go
++++ b/dz/dz.go
+@@ -69,7 +69,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BCE", "CE"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"WESZ": "ནུབ་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "HEPM": "པའི་རི་དང་མི་ཀི་ལཱོན་ཉིན་སྲུང་ཆུ་ཚོད", "AST": "ཨེཊ་ལེན་ཊིཀ་ཚད་ལྡན་ཆུ་ཚོད", "WARST": "ནུབ་ཕྱོགས་ཨར་ཇེན་ཊི་ན་བྱཱར་དུས་ཆུ་ཚོད", "UYST": "ཡུ་རུ་གུ་ཝཱའི་བྱཱར་དུས་ཆུ་ཚོད", "CDT": "བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཉིན་སྲུང་ཆུ་ཚོད", "HAST": "ཧ་ཝའི་-ཨེ་ལིའུ་ཤེན་ཚད་ལྡན་ཆུ་ཚོད", "TMT": "TMT", "ACDT": "དབུས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "ECT": "ཨེ་ཀུ་ཌཽ་ཆུ་ཚོད", "EAT": "ཤར་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "HNNOMX": "HNNOMX", "SRT": "སུ་རི་ནཱམ་ཆུ་ཚོད", "∅∅∅": "པ་རུ་བྱཱར་དུས་ཆུ་ཚོད", "MST": "MST", "ADT": "ཨེཊ་ལེན་ཊིཀ་ཉིན་སྲུང་ཆུ་ཚོད", "AEDT": "ཤར་ཕྱོགས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "CHAST": "CHAST", "OEZ": "ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "PST": "བྱང་ཨ་མི་རི་ཀ་པེ་སི་ཕིག་ཚད་ལྡན་ཆུ་ཚོད", "HNT": "ནིའུ་ཕའུནཌ་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "TMST": "TMST", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "GYT": "གུ་ཡ་ན་ཆུ་ཚོད", "MYT": "MYT", "VET": "བེ་ནི་ཛུ་ཝེ་ལ་ཆུ་ཚོད", "ACWDT": "དབུས་ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "OESZ": "ཤར་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "COT": "ཀོ་ལོམ་བྷི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "SGT": "SGT", "HNCU": "ཀིའུ་བྷ་ཚད་ལྡན་ཆུ་ཚོད", "EST": "བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཚད་ལྡན་ཆུ་ཚོད", "PDT": "བྱང་ཨ་མི་རི་ཀ་པེ་སི་ཕིག་ཉིན་སྲུང་ཆུ་ཚོད", "MESZ": "དབུས་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "NZST": "ནིའུ་ཛི་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "WAT": "ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཚད་ལྡན་ཆུ་ཚོད", "BOT": "བྷོ་ལི་བི་ཡ་ཆུ་ཚོད", "AKST": "ཨ་ལསི་ཀ་ཚད་ལྡན་ཆུ་ཚོད", "HADT": "ཧ་ཝའི་-ཨེ་ལིའུ་ཤེན་ཉིན་སྲུང་ཆུ་ཚོད", "WIT": "ཤར་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "ACWST": "དབུས་ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "HKT": "HKT", "CLST": "ཅི་ལི་བྱཱར་དུས་ཆུ་ཚོད", "GMT": "གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད", "WITA": "དབུས་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "NZDT": "ནིའུ་ཛི་ལེནཌ་ཉིན་སྲུང་ཆུ་ཚོད", "HEEG": "ཤར་ཕྱོགས་གིརིན་ལེནཌ་བྱཱར་དུས་ཆུ་ཚོད", "WAST": "ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་བྱཱར་དུས་ཆུ་ཚོད", "ARST": "ཨར་ཇེན་ཊི་ན་བྱཱར་དུས་ཆུ་ཚོད", "HEOG": "ནུབ་ཕྱོགས་གིརིན་ལེནཌ་བྱཱར་དུས་ཆུ་ཚོད", "AWST": "ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "SAST": "ལྷོ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "JDT": "ཇ་པཱན་ཉིན་སྲུང་ཆུ་ཚོད", "GFT": "ཕིརེནཅ་གི་ཡ་ན་ཆུ་ཚོད", "WART": "ནུབ་ཕྱོགས་ཨར་ཇེན་ཊི་ན་ཚད་ལྡན་ཆུ་ཚོད", "HNPMX": "HNPMX", "CST": "བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཚད་ལྡན་ཆུ་ཚོད", "CLT": "ཅི་ལི་ཚད་ལྡན་ཆུ་ཚོད", "HNEG": "ཤར་ཕྱོགས་གིརིན་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "MDT": "MDT", "COST": "ཀོ་ལོམ་བྷི་ཡ་བྱཱར་དུས་ཆུ་ཚོད", "AKDT": "ཨ་ལསི་ཀ་ཉིན་སྲུང་ཆུ་ཚོད", "AEST": "ཤར་ཕྱོགས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "AWDT": "ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "HNPM": "པའི་རི་དང་མི་ཀི་ལཱོན་ཚད་ལྡན་ཆུ་ཚོད", "MEZ": "དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "CAT": "དབུས་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "LHST": "LHST", "JST": "ཇ་པཱན་ཚད་ལྡན་ཆུ་ཚོད", "HAT": "ནིའུ་ཕའུནཌ་ལེནཌ་ཉིན་སྲུང་ཆུ་ཚོད", "BT": "འབྲུག་ཡུལ་ཆུ་ཚོད", "WEZ": "ནུབ་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "HKST": "HKST", "CHADT": "CHADT", "IST": "རྒྱ་གར་ཆུ་ཚོད", "ACST": "དབུས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "UYT": "ཡུ་རུ་གུ་ཝཱའི་ཚད་ལྡན་ཆུ་ཚོད", "LHDT": "LHDT", "HNOG": "ནུབ་ཕྱོགས་གིརིན་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "EDT": "བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཉིན་སྲུང་ཆུ་ཚོད", "WIB": "ནུབ་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "ART": "ཨར་ཇེན་ཊི་ན་ཚད་ལྡན་ཆུ་ཚོད", "ChST": "ChST", "HECU": "ཀིའུ་བྷ་ཉིན་སྲུང་ཆུ་ཚོད"},
++ timezones: map[string]string{"EST": "བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཚད་ལྡན་ཆུ་ཚོད", "HKST": "HKST", "MDT": "MDT", "ARST": "ཨར་ཇེན་ཊི་ན་བྱཱར་དུས་ཆུ་ཚོད", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "OESZ": "ཤར་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "HNCU": "ཀིའུ་བྷ་ཚད་ལྡན་ཆུ་ཚོད", "GFT": "ཕིརེནཅ་གི་ཡ་ན་ཆུ་ཚོད", "HNT": "ནིའུ་ཕའུནཌ་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "ADT": "ཨེཊ་ལེན་ཊིཀ་ཉིན་སྲུང་ཆུ་ཚོད", "HADT": "ཧ་ཝའི་-ཨེ་ལིའུ་ཤེན་ཉིན་སྲུང་ཆུ་ཚོད", "ACST": "དབུས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "HNNOMX": "HNNOMX", "JST": "ཇ་པཱན་ཚད་ལྡན་ཆུ་ཚོད", "WAST": "ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་བྱཱར་དུས་ཆུ་ཚོད", "EDT": "བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཉིན་སྲུང་ཆུ་ཚོད", "ECT": "ཨེ་ཀུ་ཌཽ་ཆུ་ཚོད", "HNPM": "པའི་རི་དང་མི་ཀི་ལཱོན་ཚད་ལྡན་ཆུ་ཚོད", "PDT": "བྱང་ཨ་མི་རི་ཀ་པེ་སི་ཕིག་ཉིན་སྲུང་ཆུ་ཚོད", "BT": "འབྲུག་ཡུལ་ཆུ་ཚོད", "AEST": "ཤར་ཕྱོགས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "MST": "MST", "UYST": "ཡུ་རུ་གུ་ཝཱའི་བྱཱར་དུས་ཆུ་ཚོད", "OEZ": "ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "CLT": "ཅི་ལི་ཚད་ལྡན་ཆུ་ཚོད", "HNOG": "ནུབ་ཕྱོགས་གིརིན་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "EAT": "ཤར་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "WESZ": "ནུབ་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "HECU": "ཀིའུ་བྷ་ཉིན་སྲུང་ཆུ་ཚོད", "HAT": "ནིའུ་ཕའུནཌ་ལེནཌ་ཉིན་སྲུང་ཆུ་ཚོད", "WARST": "ནུབ་ཕྱོགས་ཨར་ཇེན་ཊི་ན་བྱཱར་དུས་ཆུ་ཚོད", "MEZ": "དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "HENOMX": "HENOMX", "HEOG": "ནུབ་ཕྱོགས་གིརིན་ལེནཌ་བྱཱར་དུས་ཆུ་ཚོད", "TMT": "TMT", "ACWDT": "དབུས་ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "WIT": "ཤར་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "GYT": "གུ་ཡ་ན་ཆུ་ཚོད", "WITA": "དབུས་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "GMT": "གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད", "ART": "ཨར་ཇེན་ཊི་ན་ཚད་ལྡན་ཆུ་ཚོད", "JDT": "ཇ་པཱན་ཉིན་སྲུང་ཆུ་ཚོད", "PST": "བྱང་ཨ་མི་རི་ཀ་པེ་སི་ཕིག་ཚད་ལྡན་ཆུ་ཚོད", "CLST": "ཅི་ལི་བྱཱར་དུས་ཆུ་ཚོད", "CST": "བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཚད་ལྡན་ཆུ་ཚོད", "ChST": "ChST", "LHST": "LHST", "MYT": "MYT", "CAT": "དབུས་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "COT": "ཀོ་ལོམ་བྷི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "WIB": "ནུབ་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "HEEG": "ཤར་ཕྱོགས་གིརིན་ལེནཌ་བྱཱར་དུས་ཆུ་ཚོད", "VET": "བེ་ནི་ཛུ་ཝེ་ལ་ཆུ་ཚོད", "WAT": "ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཚད་ལྡན་ཆུ་ཚོད", "AKST": "ཨ་ལསི་ཀ་ཚད་ལྡན་ཆུ་ཚོད", "CDT": "བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཉིན་སྲུང་ཆུ་ཚོད", "AWDT": "ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "LHDT": "LHDT", "WEZ": "ནུབ་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "SGT": "SGT", "NZDT": "ནིའུ་ཛི་ལེནཌ་ཉིན་སྲུང་ཆུ་ཚོད", "HAST": "ཧ་ཝའི་-ཨེ་ལིའུ་ཤེན་ཚད་ལྡན་ཆུ་ཚོད", "AWST": "ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "HKT": "HKT", "TMST": "TMST", "HEPM": "པའི་རི་དང་མི་ཀི་ལཱོན་ཉིན་སྲུང་ཆུ་ཚོད", "CHADT": "CHADT", "COST": "ཀོ་ལོམ་བྷི་ཡ་བྱཱར་དུས་ཆུ་ཚོད", "AST": "ཨེཊ་ལེན་ཊིཀ་ཚད་ལྡན་ཆུ་ཚོད", "SRT": "སུ་རི་ནཱམ་ཆུ་ཚོད", "IST": "རྒྱ་གར་ཆུ་ཚོད", "SAST": "ལྷོ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "HNEG": "ཤར་ཕྱོགས་གིརིན་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "AKDT": "ཨ་ལསི་ཀ་ཉིན་སྲུང་ཆུ་ཚོད", "HEPMX": "HEPMX", "WART": "ནུབ་ཕྱོགས་ཨར་ཇེན་ཊི་ན་ཚད་ལྡན་ཆུ་ཚོད", "NZST": "ནིའུ་ཛི་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "BOT": "བྷོ་ལི་བི་ཡ་ཆུ་ཚོད", "UYT": "ཡུ་རུ་གུ་ཝཱའི་ཚད་ལྡན་ཆུ་ཚོད", "ACWST": "དབུས་ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "AEDT": "ཤར་ཕྱོགས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "MESZ": "དབུས་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "ACDT": "དབུས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "CHAST": "CHAST"},
+ }
+ }
+ 
+diff --git a/dz_BT/dz_BT.go b/dz_BT/dz_BT.go
+index 7f34c55..cdd7dc2 100644
+--- a/dz_BT/dz_BT.go
++++ b/dz_BT/dz_BT.go
+@@ -18,7 +18,6 @@ type dz_BT struct {
+ group string
+ minus string
+ percent string
+- percentSuffix string
+ perMille string
+ timeSeparator string
+ inifinity string
+@@ -43,33 +42,13 @@ type dz_BT struct {
+ // New returns a new instance of translator for the 'dz_BT' locale
+ func New() locales.Translator {
+ return &dz_BT{
+- locale: "dz_BT",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "གྲངས་མེད",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- monthsAbbreviated: []string{"", "༡", "༢", "༣", "༤", "༥", "༦", "༧", "༨", "༩", "༡༠", "༡༡", "12"},
+- monthsNarrow: []string{"", "༡", "༢", "༣", "4", "༥", "༦", "༧", "༨", "9", "༡༠", "༡༡", "༡༢"},
+- monthsWide: []string{"", "ཟླ་དངཔ་", "ཟླ་གཉིས་པ་", "ཟླ་གསུམ་པ་", "ཟླ་བཞི་པ་", "ཟླ་ལྔ་པ་", "ཟླ་དྲུག་པ", "ཟླ་བདུན་པ་", "ཟླ་བརྒྱད་པ་", "ཟླ་དགུ་པ་", "ཟླ་བཅུ་པ་", "ཟླ་བཅུ་གཅིག་པ་", "ཟླ་བཅུ་གཉིས་པ་"},
+- daysAbbreviated: []string{"ཟླ་", "མིར་", "ལྷག་", "ཕུར་", "སངས་", "སྤེན་", "ཉི་"},
+- daysNarrow: []string{"ཟླ", "མིར", "ལྷག", "ཕུར", "སངྶ", "སྤེན", "ཉི"},
+- daysShort: []string{"ཟླ་", "མིར་", "ལྷག་", "ཕུར་", "སངས་", "སྤེན་", "ཉི་"},
+- daysWide: []string{"གཟའ་ཟླ་བ་", "གཟའ་མིག་དམར་", "གཟའ་ལྷག་པ་", "གཟའ་ཕུར་བུ་", "གཟའ་པ་སངས་", "གཟའ་སྤེན་པ་", "གཟའ་ཉི་མ་"},
+- periodsAbbreviated: []string{"སྔ་ཆ་", "ཕྱི་ཆ་"},
+- periodsNarrow: []string{"སྔ་ཆ་", "ཕྱི་ཆ་"},
+- periodsWide: []string{"སྔ་ཆ་", "ཕྱི་ཆ་"},
+- erasAbbreviated: []string{"BCE", "CE"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"UYT": "ཡུ་རུ་གུ་ཝཱའི་ཚད་ལྡན་ཆུ་ཚོད", "WIT": "ཤར་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "SRT": "སུ་རི་ནཱམ་ཆུ་ཚོད", "HEOG": "ནུབ་ཕྱོགས་གིརིན་ལེནཌ་བྱཱར་དུས་ཆུ་ཚོད", "WITA": "དབུས་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "HNNOMX": "HNNOMX", "AKST": "ཨ་ལསི་ཀ་ཚད་ལྡན་ཆུ་ཚོད", "SGT": "SGT", "AWDT": "ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "WEZ": "ནུབ་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "ARST": "ཨར་ཇེན་ཊི་ན་བྱཱར་དུས་ཆུ་ཚོད", "MEZ": "དབུས་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "HNCU": "ཀིའུ་བྷ་ཚད་ལྡན་ཆུ་ཚོད", "CDT": "བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཉིན་སྲུང་ཆུ་ཚོད", "AWST": "ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "EAT": "ཤར་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "MST": "MST", "COST": "ཀོ་ལོམ་བྷི་ཡ་བྱཱར་དུས་ཆུ་ཚོད", "EST": "བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཚད་ལྡན་ཆུ་ཚོད", "AST": "ཨེཊ་ལེན་ཊིཀ་ཚད་ལྡན་ཆུ་ཚོད", "BT": "འབྲུག་ཡུལ་ཆུ་ཚོད", "ACWDT": "དབུས་ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "HAT": "ནིའུ་ཕའུནཌ་ལེནཌ་ཉིན་སྲུང་ཆུ་ཚོད", "TMST": "TMST", "ChST": "ChST", "NZST": "ནིའུ་ཛི་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "WAT": "ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཚད་ལྡན་ཆུ་ཚོད", "HNEG": "ཤར་ཕྱོགས་གིརིན་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "ACST": "དབུས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "GMT": "གིརིན་ཝིཆ་ལུ་ཡོད་པའི་ཆུ་ཚོད", "HEPMX": "HEPMX", "GYT": "གུ་ཡ་ན་ཆུ་ཚོད", "HNOG": "ནུབ་ཕྱོགས་གིརིན་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "CLST": "ཅི་ལི་བྱཱར་དུས་ཆུ་ཚོད", "JST": "ཇ་པཱན་ཚད་ལྡན་ཆུ་ཚོད", "HKT": "HKT", "AEST": "ཤར་ཕྱོགས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "LHDT": "LHDT", "JDT": "ཇ་པཱན་ཉིན་སྲུང་ཆུ་ཚོད", "HECU": "ཀིའུ་བྷ་ཉིན་སྲུང་ཆུ་ཚོད", "CHADT": "CHADT", "UYST": "ཡུ་རུ་གུ་ཝཱའི་བྱཱར་དུས་ཆུ་ཚོད", "ACWST": "དབུས་ནུབ་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "HENOMX": "HENOMX", "MDT": "MDT", "AKDT": "ཨ་ལསི་ཀ་ཉིན་སྲུང་ཆུ་ཚོད", "SAST": "ལྷོ་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "OEZ": "ཤར་ཕྱོགས་ཡུ་རོ་པེན་ཚད་ལྡན་ཆུ་ཚོད", "HNPMX": "HNPMX", "ART": "ཨར་ཇེན་ཊི་ན་ཚད་ལྡན་ཆུ་ཚོད", "∅∅∅": "ཨེ་མ་ཛཱོན་བྱཱར་དུས་ཆུ་ཚོད", "OESZ": "ཤར་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "HKST": "HKST", "IST": "རྒྱ་གར་ཆུ་ཚོད", "BOT": "བྷོ་ལི་བི་ཡ་ཆུ་ཚོད", "ADT": "ཨེཊ་ལེན་ཊིཀ་ཉིན་སྲུང་ཆུ་ཚོད", "HAST": "ཧ་ཝའི་-ཨེ་ལིའུ་ཤེན་ཚད་ལྡན་ཆུ་ཚོད", "PST": "བྱང་ཨ་མི་རི་ཀ་པེ་སི་ཕིག་ཚད་ལྡན་ཆུ་ཚོད", "HEPM": "པའི་རི་དང་མི་ཀི་ལཱོན་ཉིན་སྲུང་ཆུ་ཚོད", "LHST": "LHST", "CHAST": "CHAST", "WAST": "ནུབ་ཕྱོགས་ཨཕ་རི་ཀཱ་བྱཱར་དུས་ཆུ་ཚོད", "WART": "ནུབ་ཕྱོགས་ཨར་ཇེན་ཊི་ན་ཚད་ལྡན་ཆུ་ཚོད", "MESZ": "དབུས་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "HADT": "ཧ་ཝའི་-ཨེ་ལིའུ་ཤེན་ཉིན་སྲུང་ཆུ་ཚོད", "HNT": "ནིའུ་ཕའུནཌ་ལེནཌ་ཚད་ལྡན་ཆུ་ཚོད", "CLT": "ཅི་ལི་ཚད་ལྡན་ཆུ་ཚོད", "WIB": "ནུབ་ཕྱོགས་ཨིན་ཌོ་ནེ་ཤི་ཡ་ཆུ་ཚོད", "CAT": "དབུས་ཕྱོགས་ཨཕ་རི་ཀཱ་ཆུ་ཚོད", "COT": "ཀོ་ལོམ་བྷི་ཡ་ཚད་ལྡན་ཆུ་ཚོད", "WARST": "ནུབ་ཕྱོགས་ཨར་ཇེན་ཊི་ན་བྱཱར་དུས་ཆུ་ཚོད", "EDT": "བྱང་ཨ་མི་རི་ཀ་ཤར་ཕྱོགས་ཉིན་སྲུང་ཆུ་ཚོད", "CST": "བྱང་ཨ་མི་རི་ཀ་དབུས་ཕྱོགས་ཚད་ལྡན་ཆུ་ཚོད", "MYT": "MYT", "ACDT": "དབུས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "ECT": "ཨེ་ཀུ་ཌཽ་ཆུ་ཚོད", "AEDT": "ཤར་ཕྱོགས་ཕྱོགས་ཨཱོས་ཊྲེལ་ལི་ཡ་ཉིན་སྲུང་ཆུ་ཚོད", "HNPM": "པའི་རི་དང་མི་ཀི་ལཱོན་ཚད་ལྡན་ཆུ་ཚོད", "WESZ": "ནུབ་ཕྱོགས་ཡུ་རོ་པེན་བྱཱར་དུས་ཆུ་ཚོད", "PDT": "བྱང་ཨ་མི་རི་ཀ་པེ་སི་ཕིག་ཉིན་སྲུང་ཆུ་ཚོད", "TMT": "TMT", "VET": "བེ་ནི་ཛུ་ཝེ་ལ་ཆུ་ཚོད", "NZDT": "ནིའུ་ཛི་ལེནཌ་ཉིན་སྲུང་ཆུ་ཚོད", "HEEG": "ཤར་ཕྱོགས་གིརིན་ལེནཌ་བྱཱར་དུས་ཆུ་ཚོད", "GFT": "ཕིརེནཅ་གི་ཡ་ན་ཆུ་ཚོད"},
++ locale: "dz_BT",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNPMX": "HNPMX", "CLT": "CLT", "ART": "ART", "WIT": "WIT", "HEOG": "HEOG", "GYT": "GYT", "COST": "COST", "JDT": "JDT", "∅∅∅": "∅∅∅", "SGT": "SGT", "HAT": "HAT", "MST": "MST", "MEZ": "MEZ", "BT": "BT", "SRT": "SRT", "HENOMX": "HENOMX", "JST": "JST", "AWST": "AWST", "ACWST": "ACWST", "HKST": "HKST", "ACDT": "ACDT", "ACWDT": "ACWDT", "PDT": "PDT", "EST": "EST", "ChST": "ChST", "HEPMX": "HEPMX", "OESZ": "OESZ", "GFT": "GFT", "TMT": "TMT", "HNPM": "HNPM", "AWDT": "AWDT", "LHDT": "LHDT", "CHAST": "CHAST", "HNNOMX": "HNNOMX", "TMST": "TMST", "CLST": "CLST", "WITA": "WITA", "MDT": "MDT", "HADT": "HADT", "HEEG": "HEEG", "LHST": "LHST", "AKDT": "AKDT", "SAST": "SAST", "COT": "COT", "HNT": "HNT", "NZST": "NZST", "ARST": "ARST", "ADT": "ADT", "AST": "AST", "HNEG": "HNEG", "HECU": "HECU", "VET": "VET", "WAST": "WAST", "AKST": "AKST", "WART": "WART", "CST": "CST", "GMT": "GMT", "HEPM": "HEPM", "AEDT": "AEDT", "CHADT": "CHADT", "OEZ": "OEZ", "AEST": "AEST", "PST": "PST", "WEZ": "WEZ", "MESZ": "MESZ", "EDT": "EDT", "HKT": "HKT", "BOT": "BOT", "ACST": "ACST", "HNCU": "HNCU", "WAT": "WAT", "WARST": "WARST", "ECT": "ECT", "NZDT": "NZDT", "HAST": "HAST", "CAT": "CAT", "WIB": "WIB", "MYT": "MYT", "UYT": "UYT", "UYST": "UYST", "WESZ": "WESZ", "IST": "IST", "HNOG": "HNOG", "CDT": "CDT", "EAT": "EAT"},
+ }
+ }
+ 
+@@ -115,7 +94,7 @@ func (dz *dz_BT) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (dz *dz_BT) MonthsAbbreviated() []string {
+- return dz.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -125,7 +104,7 @@ func (dz *dz_BT) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (dz *dz_BT) MonthsNarrow() []string {
+- return dz.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -135,7 +114,7 @@ func (dz *dz_BT) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (dz *dz_BT) MonthsWide() []string {
+- return dz.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -181,84 +160,13 @@ func (dz *dz_BT) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'dz_BT' and handles both Whole and Real numbers based on 'v'
+ func (dz *dz_BT) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dz.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, dz.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, dz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'dz_BT' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (dz *dz_BT) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dz.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, dz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, dz.percentSuffix...)
+-
+- b = append(b, dz.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'dz_BT'
+@@ -266,65 +174,7 @@ func (dz *dz_BT) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := dz.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dz.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, dz.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, dz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, dz.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'dz_BT'
+@@ -333,73 +183,7 @@ func (dz *dz_BT) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := dz.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, dz.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, dz.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, dz.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, dz.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'dz_BT'
+@@ -407,28 +191,6 @@ func (dz *dz_BT) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -437,24 +199,6 @@ func (dz *dz_BT) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0xe0, 0xbd, 0xa6, 0xe0, 0xbe, 0xa4, 0xe0, 0xbe, 0xb1, 0xe0, 0xbd, 0xb2, 0xe0, 0xbc, 0x8b, 0xe0, 0xbd, 0xa3, 0xe0, 0xbd, 0xbc, 0xe0, 0xbc, 0x8b}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xe0, 0xbd, 0x9f, 0xe0, 0xbe, 0xb3, 0xe0, 0xbc, 0x8b}...)
+- b = append(b, dz.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20, 0xe0, 0xbd, 0x9a, 0xe0, 0xbd, 0xba, 0xe0, 0xbd, 0xa6, 0xe0, 0xbc, 0x8b}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -463,24 +207,6 @@ func (dz *dz_BT) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0xe0, 0xbd, 0xa6, 0xe0, 0xbe, 0xa4, 0xe0, 0xbe, 0xb1, 0xe0, 0xbd, 0xb2, 0xe0, 0xbc, 0x8b, 0xe0, 0xbd, 0xa3, 0xe0, 0xbd, 0xbc, 0xe0, 0xbc, 0x8b}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, dz.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0xe0, 0xbd, 0x9a, 0xe0, 0xbd, 0xba, 0xe0, 0xbd, 0xa6, 0xe0, 0xbc, 0x8b, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -489,25 +215,6 @@ func (dz *dz_BT) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, dz.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20, 0xe0, 0xbd, 0xa6, 0xe0, 0xbe, 0xa4, 0xe0, 0xbe, 0xb1, 0xe0, 0xbd, 0xb2, 0xe0, 0xbc, 0x8b, 0xe0, 0xbd, 0xa3, 0xe0, 0xbd, 0xbc, 0xe0, 0xbc, 0x8b}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, dz.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0xe0, 0xbd, 0x9a, 0xe0, 0xbd, 0xba, 0xe0, 0xbd, 0xa6, 0xe0, 0xbc, 0x8b}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -516,30 +223,6 @@ func (dz *dz_BT) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0xe0, 0xbd, 0x86, 0xe0, 0xbd, 0xb4, 0xe0, 0xbc, 0x8b, 0xe0, 0xbd, 0x9a, 0xe0, 0xbd, 0xbc, 0xe0, 0xbd, 0x91, 0xe0, 0xbc, 0x8b, 0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, []byte{0x20, 0xe0, 0xbd, 0xa6, 0xe0, 0xbe, 0x90, 0xe0, 0xbd, 0xa2, 0xe0, 0xbc, 0x8b, 0xe0, 0xbd, 0x98, 0xe0, 0xbc, 0x8b, 0x20}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, dz.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, dz.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -548,37 +231,6 @@ func (dz *dz_BT) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0xe0, 0xbd, 0x86, 0xe0, 0xbd, 0xb4, 0xe0, 0xbc, 0x8b, 0xe0, 0xbd, 0x9a, 0xe0, 0xbd, 0xbc, 0xe0, 0xbd, 0x91, 0xe0, 0xbc, 0x8b}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, dz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, dz.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, dz.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -587,42 +239,6 @@ func (dz *dz_BT) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0xe0, 0xbd, 0x86, 0xe0, 0xbd, 0xb4, 0xe0, 0xbc, 0x8b, 0xe0, 0xbd, 0x9a, 0xe0, 0xbd, 0xbc, 0xe0, 0xbd, 0x91, 0xe0, 0xbc, 0x8b, 0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, []byte{0x20, 0xe0, 0xbd, 0xa6, 0xe0, 0xbe, 0x90, 0xe0, 0xbd, 0xa2, 0xe0, 0xbc, 0x8b, 0xe0, 0xbd, 0x98, 0xe0, 0xbc, 0x8b, 0x20}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, dz.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, dz.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -631,46 +247,5 @@ func (dz *dz_BT) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0xe0, 0xbd, 0x86, 0xe0, 0xbd, 0xb4, 0xe0, 0xbc, 0x8b, 0xe0, 0xbd, 0x9a, 0xe0, 0xbd, 0xbc, 0xe0, 0xbd, 0x91, 0xe0, 0xbc, 0x8b, 0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, []byte{0x20, 0xe0, 0xbd, 0xa6, 0xe0, 0xbe, 0x90, 0xe0, 0xbd, 0xa2, 0xe0, 0xbc, 0x8b, 0xe0, 0xbd, 0x98, 0xe0, 0xbc, 0x8b, 0x20}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, dz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, dz.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, dz.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := dz.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ebu/ebu.go b/ebu/ebu.go
+index 238740a..fa455ec 100644
+--- a/ebu/ebu.go
++++ b/ebu/ebu.go
+@@ -63,7 +63,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"MK", "TK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Mbere ya Kristo", "Thutha wa Kristo"},
+- timezones: map[string]string{"GFT": "GFT", "GMT": "GMT", "WIT": "WIT", "VET": "VET", "HNOG": "HNOG", "TMST": "TMST", "OESZ": "OESZ", "AKST": "AKST", "HECU": "HECU", "WEZ": "WEZ", "HAT": "HAT", "NZST": "NZST", "CLT": "CLT", "SRT": "SRT", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "COST": "COST", "HNNOMX": "HNNOMX", "GYT": "GYT", "HKT": "HKT", "WITA": "WITA", "MEZ": "MEZ", "HEEG": "HEEG", "PST": "PST", "HNEG": "HNEG", "HNCU": "HNCU", "EST": "EST", "HENOMX": "HENOMX", "AKDT": "AKDT", "WIB": "WIB", "HKST": "HKST", "SAST": "SAST", "JDT": "JDT", "OEZ": "OEZ", "ACST": "ACST", "ACDT": "ACDT", "WAST": "WAST", "ECT": "ECT", "ACWDT": "ACWDT", "AEST": "AEST", "CLST": "CLST", "BOT": "BOT", "COT": "COT", "ADT": "ADT", "HEPMX": "HEPMX", "UYST": "UYST", "PDT": "PDT", "WESZ": "WESZ", "AWDT": "AWDT", "MESZ": "MESZ", "MST": "MST", "MDT": "MDT", "CST": "CST", "HADT": "HADT", "HEOG": "HEOG", "AWST": "AWST", "SGT": "SGT", "EDT": "EDT", "WART": "WART", "HNPMX": "HNPMX", "AST": "AST", "ACWST": "ACWST", "AEDT": "AEDT", "HEPM": "HEPM", "EAT": "EAT", "ARST": "ARST", "CAT": "CAT", "NZDT": "NZDT", "JST": "JST", "UYT": "UYT", "BT": "BT", "HNT": "HNT", "LHST": "LHST", "LHDT": "LHDT", "CHADT": "CHADT", "TMT": "TMT", "ART": "ART", "IST": "IST", "ChST": "ChST", "CDT": "CDT", "HAST": "HAST", "HNPM": "HNPM", "WAT": "WAT", "WARST": "WARST", "MYT": "MYT"},
++ timezones: map[string]string{"HNPMX": "HNPMX", "WAT": "WAT", "OESZ": "OESZ", "WEZ": "WEZ", "WESZ": "WESZ", "AKDT": "AKDT", "EAT": "EAT", "JDT": "JDT", "HEPMX": "HEPMX", "LHDT": "LHDT", "AWDT": "AWDT", "PST": "PST", "ECT": "ECT", "WIB": "WIB", "LHST": "LHST", "MESZ": "MESZ", "AWST": "AWST", "ACWDT": "ACWDT", "HNOG": "HNOG", "EDT": "EDT", "MDT": "MDT", "JST": "JST", "ACWST": "ACWST", "CHADT": "CHADT", "IST": "IST", "HECU": "HECU", "COT": "COT", "HEOG": "HEOG", "MST": "MST", "ARST": "ARST", "AEST": "AEST", "TMT": "TMT", "TMST": "TMST", "GYT": "GYT", "SAST": "SAST", "CST": "CST", "BOT": "BOT", "ACDT": "ACDT", "GFT": "GFT", "OEZ": "OEZ", "WIT": "WIT", "HAT": "HAT", "GMT": "GMT", "AST": "AST", "HNNOMX": "HNNOMX", "ACST": "ACST", "WAST": "WAST", "COST": "COST", "EST": "EST", "CDT": "CDT", "ART": "ART", "HADT": "HADT", "VET": "VET", "WARST": "WARST", "HKT": "HKT", "PDT": "PDT", "∅∅∅": "∅∅∅", "WART": "WART", "NZST": "NZST", "SRT": "SRT", "HEEG": "HEEG", "AKST": "AKST", "HNT": "HNT", "HKST": "HKST", "WITA": "WITA", "HENOMX": "HENOMX", "HNPM": "HNPM", "HEPM": "HEPM", "ADT": "ADT", "MEZ": "MEZ", "MYT": "MYT", "BT": "BT", "AEDT": "AEDT", "CHAST": "CHAST", "UYT": "UYT", "SGT": "SGT", "NZDT": "NZDT", "HAST": "HAST", "HNEG": "HNEG", "HNCU": "HNCU", "CLT": "CLT", "CAT": "CAT", "ChST": "ChST", "UYST": "UYST", "CLST": "CLST"},
+ }
+ }
+ 
+diff --git a/ebu_KE/ebu_KE.go b/ebu_KE/ebu_KE.go
+index 057858d..ad86092 100644
+--- a/ebu_KE/ebu_KE.go
++++ b/ebu_KE/ebu_KE.go
+@@ -10,60 +10,45 @@ import (
+ )
+ 
+ type ebu_KE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ebu_KE' locale
+ func New() locales.Translator {
+ return &ebu_KE{
+- locale: "ebu_KE",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Mbe", "Kai", "Kat", "Kan", "Gat", "Gan", "Mug", "Knn", "Ken", "Iku", "Imw", "Igi"},
+- monthsNarrow: []string{"", "M", "K", "K", "K", "G", "G", "M", "K", "K", "I", "I", "I"},
+- monthsWide: []string{"", "Mweri wa mbere", "Mweri wa kaĩri", "Mweri wa kathatũ", "Mweri wa kana", "Mweri wa gatano", "Mweri wa gatantatũ", "Mweri wa mũgwanja", "Mweri wa kanana", "Mweri wa kenda", "Mweri wa ikũmi", "Mweri wa ikũmi na ũmwe", "Mweri wa ikũmi na Kaĩrĩ"},
+- daysAbbreviated: []string{"Kma", "Tat", "Ine", "Tan", "Arm", "Maa", "NMM"},
+- daysNarrow: []string{"K", "N", "N", "N", "A", "M", "N"},
+- daysWide: []string{"Kiumia", "Njumatatu", "Njumaine", "Njumatano", "Aramithi", "Njumaa", "NJumamothii"},
+- periodsAbbreviated: []string{"KI", "UT"},
+- periodsWide: []string{"KI", "UT"},
+- erasAbbreviated: []string{"MK", "TK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Mbere ya Kristo", "Thutha wa Kristo"},
+- timezones: map[string]string{"HEEG": "HEEG", "TMST": "TMST", "HECU": "HECU", "MDT": "MDT", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "UYST": "UYST", "AEST": "AEST", "WAST": "WAST", "WESZ": "WESZ", "HEPMX": "HEPMX", "AKDT": "AKDT", "GFT": "GFT", "HAST": "HAST", "HEOG": "HEOG", "AEDT": "AEDT", "IST": "IST", "AST": "AST", "BT": "BT", "EST": "EST", "HNPMX": "HNPMX", "OEZ": "OEZ", "ADT": "ADT", "ACWST": "ACWST", "SAST": "SAST", "ACDT": "ACDT", "AKST": "AKST", "SRT": "SRT", "PDT": "PDT", "HNEG": "HNEG", "MST": "MST", "LHDT": "LHDT", "JST": "JST", "TMT": "TMT", "ECT": "ECT", "HNCU": "HNCU", "UYT": "UYT", "HKT": "HKT", "WITA": "WITA", "VET": "VET", "HNT": "HNT", "MEZ": "MEZ", "GYT": "GYT", "ACST": "ACST", "HADT": "HADT", "NZDT": "NZDT", "CHAST": "CHAST", "CLST": "CLST", "WART": "WART", "EDT": "EDT", "PST": "PST", "WEZ": "WEZ", "LHST": "LHST", "NZST": "NZST", "BOT": "BOT", "OESZ": "OESZ", "WARST": "WARST", "COST": "COST", "CST": "CST", "HNOG": "HNOG", "HKST": "HKST", "HEPM": "HEPM", "ACWDT": "ACWDT", "HAT": "HAT", "MYT": "MYT", "WIT": "WIT", "ART": "ART", "ARST": "ARST", "AWST": "AWST", "CAT": "CAT", "EAT": "EAT", "HENOMX": "HENOMX", "SGT": "SGT", "MESZ": "MESZ", "ChST": "ChST", "JDT": "JDT", "COT": "COT", "CHADT": "CHADT", "CLT": "CLT", "HNNOMX": "HNNOMX", "GMT": "GMT", "CDT": "CDT", "WIB": "WIB", "HNPM": "HNPM", "WAT": "WAT"},
++ locale: "ebu_KE",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"UYST": "UYST", "ACWDT": "ACWDT", "CAT": "CAT", "CLST": "CLST", "CST": "CST", "AST": "AST", "GMT": "GMT", "HEEG": "HEEG", "WIB": "WIB", "AEDT": "AEDT", "CHADT": "CHADT", "WART": "WART", "MDT": "MDT", "HNPM": "HNPM", "IST": "IST", "VET": "VET", "ACDT": "ACDT", "UYT": "UYT", "WEZ": "WEZ", "EST": "EST", "HKT": "HKT", "AWST": "AWST", "AKST": "AKST", "WIT": "WIT", "LHST": "LHST", "HAT": "HAT", "HEPM": "HEPM", "JST": "JST", "HECU": "HECU", "HKST": "HKST", "ARST": "ARST", "MESZ": "MESZ", "ACST": "ACST", "GYT": "GYT", "EDT": "EDT", "PST": "PST", "ACWST": "ACWST", "HNPMX": "HNPMX", "WITA": "WITA", "AEST": "AEST", "OEZ": "OEZ", "OESZ": "OESZ", "WARST": "WARST", "SAST": "SAST", "HEOG": "HEOG", "BT": "BT", "SGT": "SGT", "AKDT": "AKDT", "NZDT": "NZDT", "BOT": "BOT", "AWDT": "AWDT", "LHDT": "LHDT", "TMT": "TMT", "ADT": "ADT", "HNT": "HNT", "COST": "COST", "∅∅∅": "∅∅∅", "GFT": "GFT", "HNOG": "HNOG", "CDT": "CDT", "HAST": "HAST", "MEZ": "MEZ", "MYT": "MYT", "HEPMX": "HEPMX", "WAST": "WAST", "COT": "COT", "TMST": "TMST", "NZST": "NZST", "MST": "MST", "HADT": "HADT", "HNCU": "HNCU", "ECT": "ECT", "HENOMX": "HENOMX", "JDT": "JDT", "PDT": "PDT", "CHAST": "CHAST", "WESZ": "WESZ", "ChST": "ChST", "ART": "ART", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "CLT": "CLT", "SRT": "SRT", "EAT": "EAT", "WAT": "WAT"},
+ }
+ }
+ 
+@@ -109,7 +94,7 @@ func (ebu *ebu_KE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ebu *ebu_KE) MonthsAbbreviated() []string {
+- return ebu.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -119,7 +104,7 @@ func (ebu *ebu_KE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ebu *ebu_KE) MonthsNarrow() []string {
+- return ebu.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -129,7 +114,7 @@ func (ebu *ebu_KE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ebu *ebu_KE) MonthsWide() []string {
+- return ebu.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -189,56 +174,7 @@ func (ebu *ebu_KE) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ebu.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ebu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ebu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ebu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ebu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ebu_KE'
+@@ -247,68 +183,7 @@ func (ebu *ebu_KE) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ebu.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ebu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ebu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ebu.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ebu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ebu.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ebu_KE'
+@@ -316,27 +191,6 @@ func (ebu *ebu_KE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -345,17 +199,6 @@ func (ebu *ebu_KE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ebu.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -364,17 +207,6 @@ func (ebu *ebu_KE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ebu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -383,19 +215,6 @@ func (ebu *ebu_KE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ebu.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ebu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -404,19 +223,6 @@ func (ebu *ebu_KE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ebu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -425,26 +231,6 @@ func (ebu *ebu_KE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ebu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ebu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -453,30 +239,6 @@ func (ebu *ebu_KE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ebu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ebu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -485,34 +247,5 @@ func (ebu *ebu_KE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ebu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ebu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ebu.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ee/ee.go b/ee/ee.go
+index d2713a6..4708ddc 100644
+--- a/ee/ee.go
++++ b/ee/ee.go
+@@ -65,7 +65,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"hY", "Yŋ"},
+ erasNarrow: []string{"hY", "Yŋ"},
+ erasWide: []string{"Hafi Yesu Va Do ŋgɔ", "Yesu Ŋɔli"},
+- timezones: map[string]string{"HNOG": "Ɣetoɖoƒe Grinlanɖ gaƒoƒoɖoanyime", "HEOG": "Ɣetoɖoƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "SAST": "Anyiehe Africa gaƒoƒome", "TMT": "Tɛkmenistan gaƒoƒoɖoanyime", "EST": "Ɣedzeƒe America gaƒoƒoɖoanyime", "CST": "Titina America gaƒoƒoɖoanyime", "HAT": "Niufaunɖlanɖ ŋkekeme gaƒoƒome", "MST": "America Todzidukɔwo ƒe gaƒoƒoɖoanyime", "BT": "BT", "AWDT": "Ɣetoɖoƒe Australia ŋkekeme gaƒoƒome", "TMST": "Tɛkmenistan dzomeŋɔli gaƒoƒome", "WAT": "Ɣetoɖoƒe Afrika gaƒoƒoɖoanyime", "HNPMX": "HNPMX", "WIB": "WIB", "CHAST": "CHAST", "CAT": "Titina Afrika gaƒoƒome", "WAST": "Ɣetoɖoƒe Africa ŋkekeme gaƒoƒome", "ADT": "Atlantic ŋkekeme gaƒoƒome", "WIT": "WIT", "ChST": "ChST", "EDT": "Ɣedzeƒe America ŋkekeme gaƒoƒome", "MDT": "America Todzidukɔwo ƒe ŋkekme gaƒoƒome", "HKST": "Hɔng Kɔng dzomeŋɔli gaƒoƒome", "MEZ": "Titina Europe gaƒoƒoɖoanyime", "JST": "Japan gaƒoƒoɖanyime", "HECU": "Kuba ŋkekeme gaƒoƒome", "GYT": "Gayana gaƒoƒome", "AWST": "Ɣetoɖoƒe Australia gaƒoƒoɖoanyime", "WESZ": "Ɣetoɖoƒe Europe ŋkekeme gaƒoƒome", "IST": "IST", "EAT": "Ɣedzeƒe Africa gaƒoƒome", "HNNOMX": "HNNOMX", "AST": "Atlantic gaƒoƒoɖoanyime", "ARST": "Argentina dzomeŋɔli gaƒoƒome", "ACWST": "Australia ɣetoɖofe gaƒoƒoɖoanyime", "ACWDT": "Australia ɣetoɖofe ŋkekeme gaƒoƒome", "SGT": "SGT", "HEPMX": "HEPMX", "AKST": "Alaska gaƒoƒoɖoanyime", "HAST": "Hawaii-Aleutia gaƒoƒoɖoanyime", "ACDT": "Titina Australia ŋkekeme gaƒoƒome", "OESZ": "Ɣedzeƒe Europe ŋkekeme gaƒoƒome", "WART": "Ɣetoɖoƒe Argentina gaƒoƒoɖoanyime", "GMT": "Greenwich gaƒoƒome", "MYT": "MYT", "SRT": "Suriname gaƒoƒome", "CHADT": "CHADT", "NZDT": "NZDT", "JDT": "Japan ŋkekeme gaƒoƒome", "AEST": "Ɣedzeƒe Australia gaƒoƒoɖoanyime", "ART": "Argentina gaƒoƒoɖoanyime", "PST": "Pacific gaƒoƒoɖoanyime", "WITA": "WITA", "GFT": "Frentsi Guiana gaƒoƒome", "UYST": "Uruguai dzomeŋɔli gaƒoƒome", "HNT": "Niufaunɖlanɖ gaƒoƒoɖoanyime", "LHDT": "LHDT", "NZST": "NZST", "CDT": "Titina America ŋkekeme gaƒoƒome", "VET": "Venezuela gaƒoƒome", "HNEG": "Ɣedzeƒe Grinlanɖ gaƒoƒoɖoanyime", "COT": "Kolombia gaƒoƒoɖoanyime", "HENOMX": "HENOMX", "BOT": "Bolivia gaƒoƒome", "MESZ": "Titina Europe ŋkekeme gaƒoƒome", "CLT": "Tsile gaƒoƒoɖoanyime", "CLST": "Tsile dzomeŋɔli gaƒoƒome", "ACST": "Titina Australia gaƒoƒoɖoanyime", "HKT": "Hɔng Kɔng gaƒoƒoɖoanyi me", "WEZ": "Ɣetoɖoƒe Europe gaƒoƒoɖoanyime", "∅∅∅": "Amazon dzomeŋɔli gaƒoƒome", "ECT": "Ikuedɔ dzomeŋɔli gaƒoƒome", "WARST": "Ɣetoɖoƒe Argentina dzomeŋɔli gaƒoƒome", "HNCU": "Kuba gaƒoƒoɖoanyime", "PDT": "Pacific ŋkekme gaƒoƒome", "LHST": "LHST", "COST": "Kolombia dzomeŋɔli gaƒoƒome", "AKDT": "Alaska ŋkekeme gaƒoƒome", "AEDT": "Ɣedzeƒe Australia ŋkekeme gaƒoƒome", "HNPM": "Saint Pierre kple Mikuelon gaƒoƒoɖoanyime", "HEPM": "Saint Pierre kple Mikuelon ŋkekeme gaƒoƒome", "HEEG": "Ɣedzeƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "OEZ": "Ɣedzeƒe Europe gaƒoƒoɖoanyime", "UYT": "Uruguai gaƒoƒoɖoanyime", "HADT": "Hawaii-Aleutia ŋkekeme gaƒoƒome"},
++ timezones: map[string]string{"COT": "Kolombia gaƒoƒoɖoanyime", "HKT": "Hɔng Kɔng gaƒoƒoɖoanyi me", "BOT": "Bolivia gaƒoƒome", "MEZ": "Titina Europe gaƒoƒoɖoanyime", "UYT": "Uruguai gaƒoƒoɖoanyime", "WART": "Ɣetoɖoƒe Argentina gaƒoƒoɖoanyime", "WARST": "Ɣetoɖoƒe Argentina dzomeŋɔli gaƒoƒome", "EST": "Ɣedzeƒe America gaƒoƒoɖoanyime", "WIB": "WIB", "SRT": "Suriname gaƒoƒome", "HAST": "Hawaii-Aleutia gaƒoƒoɖoanyime", "SGT": "SGT", "HNNOMX": "HNNOMX", "CHAST": "CHAST", "HNT": "Niufaunɖlanɖ gaƒoƒoɖoanyime", "SAST": "Anyiehe Africa gaƒoƒome", "ECT": "Ikuedɔ dzomeŋɔli gaƒoƒome", "ADT": "Atlantic ŋkekeme gaƒoƒome", "MESZ": "Titina Europe ŋkekeme gaƒoƒome", "ACST": "Titina Australia gaƒoƒoɖoanyime", "ARST": "Argentina dzomeŋɔli gaƒoƒome", "ACDT": "Titina Australia ŋkekeme gaƒoƒome", "OEZ": "Ɣedzeƒe Europe gaƒoƒoɖoanyime", "HNOG": "Ɣetoɖoƒe Grinlanɖ gaƒoƒoɖoanyime", "TMT": "Tɛkmenistan gaƒoƒoɖoanyime", "CAT": "Titina Afrika gaƒoƒome", "NZST": "NZST", "NZDT": "NZDT", "GYT": "Gayana gaƒoƒome", "CDT": "Titina America ŋkekeme gaƒoƒome", "ACWDT": "Australia ɣetoɖofe ŋkekeme gaƒoƒome", "HNEG": "Ɣedzeƒe Grinlanɖ gaƒoƒoɖoanyime", "LHST": "LHST", "IST": "IST", "AKDT": "Alaska ŋkekeme gaƒoƒome", "AWDT": "Ɣetoɖoƒe Australia ŋkekeme gaƒoƒome", "CHADT": "CHADT", "VET": "Venezuela gaƒoƒome", "HNCU": "Kuba gaƒoƒoɖoanyime", "HKST": "Hɔng Kɔng dzomeŋɔli gaƒoƒome", "WITA": "WITA", "ART": "Argentina gaƒoƒoɖoanyime", "EAT": "Ɣedzeƒe Africa gaƒoƒome", "AEDT": "Ɣedzeƒe Australia ŋkekeme gaƒoƒome", "UYST": "Uruguai dzomeŋɔli gaƒoƒome", "WIT": "WIT", "EDT": "Ɣedzeƒe America ŋkekeme gaƒoƒome", "JST": "Japan gaƒoƒoɖanyime", "PDT": "Pacific ŋkekme gaƒoƒome", "BT": "BT", "HNPMX": "HNPMX", "HEPM": "Saint Pierre kple Mikuelon ŋkekeme gaƒoƒome", "HEPMX": "HEPMX", "WAT": "Ɣetoɖoƒe Afrika gaƒoƒoɖoanyime", "HAT": "Niufaunɖlanɖ ŋkekeme gaƒoƒome", "HEOG": "Ɣetoɖoƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "ChST": "ChST", "MYT": "MYT", "HNPM": "Saint Pierre kple Mikuelon gaƒoƒoɖoanyime", "CST": "Titina America gaƒoƒoɖoanyime", "GMT": "Greenwich gaƒoƒome", "HEEG": "Ɣedzeƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "WAST": "Ɣetoɖoƒe Africa ŋkekeme gaƒoƒome", "CLST": "Tsile dzomeŋɔli gaƒoƒome", "HENOMX": "HENOMX", "∅∅∅": "Amazon dzomeŋɔli gaƒoƒome", "OESZ": "Ɣedzeƒe Europe ŋkekeme gaƒoƒome", "TMST": "Tɛkmenistan dzomeŋɔli gaƒoƒome", "MDT": "Makau ŋkekeme gaƒoƒome", "AST": "Atlantic gaƒoƒoɖoanyime", "WESZ": "Ɣetoɖoƒe Europe ŋkekeme gaƒoƒome", "HECU": "Kuba ŋkekeme gaƒoƒome", "AKST": "Alaska gaƒoƒoɖoanyime", "GFT": "Frentsi Guiana gaƒoƒome", "COST": "Kolombia dzomeŋɔli gaƒoƒome", "LHDT": "LHDT", "AEST": "Ɣedzeƒe Australia gaƒoƒoɖoanyime", "WEZ": "Ɣetoɖoƒe Europe gaƒoƒoɖoanyime", "ACWST": "Australia ɣetoɖofe gaƒoƒoɖoanyime", "CLT": "Tsile gaƒoƒoɖoanyime", "MST": "Makau gaƒoƒoɖoanyime", "HADT": "Hawaii-Aleutia ŋkekeme gaƒoƒome", "AWST": "Ɣetoɖoƒe Australia gaƒoƒoɖoanyime", "JDT": "Japan ŋkekeme gaƒoƒome", "PST": "Pacific gaƒoƒoɖoanyime"},
+ }
+ }
+ 
+diff --git a/ee_GH/ee_GH.go b/ee_GH/ee_GH.go
+index af2a53b..8f890c9 100644
+--- a/ee_GH/ee_GH.go
++++ b/ee_GH/ee_GH.go
+@@ -10,62 +10,45 @@ import (
+ )
+ 
+ type ee_GH struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ee_GH' locale
+ func New() locales.Translator {
+ return &ee_GH{
+- locale: "ee_GH",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "dzv", "dzd", "ted", "afɔ", "dam", "mas", "sia", "dea", "any", "kel", "ade", "dzm"},
+- monthsNarrow: []string{"", "d", "d", "t", "a", "d", "m", "s", "d", "a", "k", "a", "d"},
+- monthsWide: []string{"", "dzove", "dzodze", "tedoxe", "afɔfĩe", "dama", "masa", "siamlɔm", "deasiamime", "anyɔnyɔ", "kele", "adeɛmekpɔxe", "dzome"},
+- daysAbbreviated: []string{"kɔs", "dzo", "bla", "kuɖ", "yaw", "fiɖ", "mem"},
+- daysNarrow: []string{"k", "d", "b", "k", "y", "f", "m"},
+- daysShort: []string{"kɔs", "dzo", "bla", "kuɖ", "yaw", "fiɖ", "mem"},
+- daysWide: []string{"kɔsiɖa", "dzoɖa", "blaɖa", "kuɖa", "yawoɖa", "fiɖa", "memleɖa"},
+- periodsAbbreviated: []string{"ŋdi", "ɣetrɔ"},
+- periodsNarrow: []string{"ŋ", "ɣ"},
+- periodsWide: []string{"ŋdi", "ɣetrɔ"},
+- erasAbbreviated: []string{"hY", "Yŋ"},
+- erasNarrow: []string{"hY", "Yŋ"},
+- erasWide: []string{"Hafi Yesu Va Do ŋgɔ", "Yesu Ŋɔli"},
+- timezones: map[string]string{"AKDT": "Alaska ŋkekeme gaƒoƒome", "CST": "Titina America gaƒoƒoɖoanyime", "MDT": "Makau ŋkekeme gaƒoƒome", "HEOG": "Ɣetoɖoƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "ACWDT": "Australia ɣetoɖofe ŋkekeme gaƒoƒome", "ART": "Argentina gaƒoƒoɖoanyime", "MEZ": "Titina Europe gaƒoƒoɖoanyime", "MST": "Makau gaƒoƒoɖoanyime", "AWDT": "Ɣetoɖoƒe Australia ŋkekeme gaƒoƒome", "JST": "Japan gaƒoƒoɖanyime", "OESZ": "Ɣedzeƒe Europe ŋkekeme gaƒoƒome", "HNNOMX": "HNNOMX", "∅∅∅": "Azores dzomeŋɔli gaƒoƒome", "HAST": "Hawaii-Aleutia gaƒoƒoɖoanyime", "BT": "BT", "SAST": "Anyiehe Africa gaƒoƒome", "AWST": "Ɣetoɖoƒe Australia gaƒoƒoɖoanyime", "HEPM": "Saint Pierre kple Mikuelon ŋkekeme gaƒoƒome", "CLT": "Tsile gaƒoƒoɖoanyime", "WART": "Ɣetoɖoƒe Argentina gaƒoƒoɖoanyime", "EST": "Ɣedzeƒe America gaƒoƒoɖoanyime", "GYT": "Gayana gaƒoƒome", "UYT": "Uruguai gaƒoƒoɖoanyime", "HNOG": "Ɣetoɖoƒe Grinlanɖ gaƒoƒoɖoanyime", "EAT": "Ɣedzeƒe Africa gaƒoƒome", "WAST": "Ɣetoɖoƒe Africa ŋkekeme gaƒoƒome", "AEST": "Ɣedzeƒe Australia gaƒoƒoɖoanyime", "CHAST": "CHAST", "CAT": "Titina Afrika gaƒoƒome", "OEZ": "Ɣedzeƒe Europe gaƒoƒoɖoanyime", "BOT": "Bolivia gaƒoƒome", "TMST": "Tɛkmenistan dzomeŋɔli gaƒoƒome", "AST": "Atlantic gaƒoƒoɖoanyime", "AEDT": "Ɣedzeƒe Australia ŋkekeme gaƒoƒome", "NZDT": "NZDT", "CHADT": "CHADT", "IST": "IST", "CDT": "Titina America ŋkekeme gaƒoƒome", "HAT": "Niufaunɖlanɖ ŋkekeme gaƒoƒome", "COT": "Kolombia gaƒoƒoɖoanyime", "COST": "Kolombia dzomeŋɔli gaƒoƒome", "GMT": "Greenwich gaƒoƒome", "EDT": "Ɣedzeƒe America ŋkekeme gaƒoƒome", "ADT": "Atlantic ŋkekeme gaƒoƒome", "WAT": "Ɣetoɖoƒe Afrika gaƒoƒoɖoanyime", "ECT": "Ikuedɔ dzomeŋɔli gaƒoƒome", "WIT": "WIT", "HNT": "Niufaunɖlanɖ gaƒoƒoɖoanyime", "HNPM": "Saint Pierre kple Mikuelon gaƒoƒoɖoanyime", "LHDT": "LHDT", "CLST": "Tsile dzomeŋɔli gaƒoƒome", "HNCU": "Kuba gaƒoƒoɖoanyime", "AKST": "Alaska gaƒoƒoɖoanyime", "LHST": "LHST", "NZST": "NZST", "HNEG": "Ɣedzeƒe Grinlanɖ gaƒoƒoɖoanyime", "JDT": "Japan ŋkekeme gaƒoƒome", "HEEG": "Ɣedzeƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "ACST": "Titina Australia gaƒoƒoɖoanyime", "HENOMX": "HENOMX", "VET": "Venezuela gaƒoƒome", "SRT": "Suriname gaƒoƒome", "ARST": "Argentina dzomeŋɔli gaƒoƒome", "HKST": "Hɔng Kɔng dzomeŋɔli gaƒoƒome", "WITA": "WITA", "HECU": "Kuba ŋkekeme gaƒoƒome", "HEPMX": "HEPMX", "HADT": "Hawaii-Aleutia ŋkekeme gaƒoƒome", "PST": "Pacific gaƒoƒoɖoanyime", "ACWST": "Australia ɣetoɖofe gaƒoƒoɖoanyime", "WEZ": "Ɣetoɖoƒe Europe gaƒoƒoɖoanyime", "WESZ": "Ɣetoɖoƒe Europe ŋkekeme gaƒoƒome", "HKT": "Hɔng Kɔng gaƒoƒoɖoanyi me", "SGT": "SGT", "HNPMX": "HNPMX", "UYST": "Uruguai dzomeŋɔli gaƒoƒome", "WIB": "WIB", "PDT": "Pacific ŋkekme gaƒoƒome", "MESZ": "Titina Europe ŋkekeme gaƒoƒome", "ChST": "ChST", "ACDT": "Titina Australia ŋkekeme gaƒoƒome", "WARST": "Ɣetoɖoƒe Argentina dzomeŋɔli gaƒoƒome", "MYT": "MYT", "GFT": "Frentsi Guiana gaƒoƒome", "TMT": "Tɛkmenistan gaƒoƒoɖoanyime"},
++ locale: "ee_GH",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WESZ": "WESZ", "VET": "VET", "HECU": "HECU", "GFT": "GFT", "COT": "COT", "HNOG": "HNOG", "HEOG": "HEOG", "ChST": "ChST", "MEZ": "MEZ", "HEPM": "HEPM", "IST": "IST", "AEDT": "AEDT", "ECT": "ECT", "EAT": "EAT", "CHADT": "CHADT", "WART": "WART", "NZST": "NZST", "BOT": "BOT", "HADT": "HADT", "HNNOMX": "HNNOMX", "MYT": "MYT", "HNCU": "HNCU", "OESZ": "OESZ", "ACST": "ACST", "HNEG": "HNEG", "LHDT": "LHDT", "CHAST": "CHAST", "ACWDT": "ACWDT", "TMT": "TMT", "WIB": "WIB", "LHST": "LHST", "UYST": "UYST", "WAT": "WAT", "ADT": "ADT", "ARST": "ARST", "MESZ": "MESZ", "SGT": "SGT", "AKST": "AKST", "TMST": "TMST", "MDT": "MDT", "HEEG": "HEEG", "AWST": "AWST", "AEST": "AEST", "GYT": "GYT", "COST": "COST", "WITA": "WITA", "CST": "CST", "CDT": "CDT", "NZDT": "NZDT", "EDT": "EDT", "HKST": "HKST", "CLST": "CLST", "AST": "AST", "HAST": "HAST", "HNPM": "HNPM", "WEZ": "WEZ", "∅∅∅": "∅∅∅", "HNT": "HNT", "WIT": "WIT", "CAT": "CAT", "SRT": "SRT", "ACDT": "ACDT", "BT": "BT", "AKDT": "AKDT", "CLT": "CLT", "AWDT": "AWDT", "SAST": "SAST", "JST": "JST", "JDT": "JDT", "ACWST": "ACWST", "HNPMX": "HNPMX", "WARST": "WARST", "HENOMX": "HENOMX", "UYT": "UYT", "PDT": "PDT", "HEPMX": "HEPMX", "OEZ": "OEZ", "MST": "MST", "GMT": "GMT", "WAST": "WAST", "HAT": "HAT", "EST": "EST", "HKT": "HKT", "ART": "ART", "PST": "PST"},
+ }
+ }
+ 
+@@ -118,7 +101,7 @@ func (ee *ee_GH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ee *ee_GH) MonthsAbbreviated() []string {
+- return ee.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -128,7 +111,7 @@ func (ee *ee_GH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ee *ee_GH) MonthsNarrow() []string {
+- return ee.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -138,7 +121,7 @@ func (ee *ee_GH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ee *ee_GH) MonthsWide() []string {
+- return ee.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -198,56 +181,7 @@ func (ee *ee_GH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ee.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ee.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ee.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ee.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ee.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ee_GH'
+@@ -256,68 +190,7 @@ func (ee *ee_GH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ee.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ee.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ee.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ee.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ee.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ee.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ee_GH'
+@@ -325,17 +198,6 @@ func (ee *ee_GH) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -344,18 +206,6 @@ func (ee *ee_GH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ee.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x6c, 0x69, 0x61}...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -364,18 +214,6 @@ func (ee *ee_GH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ee.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x6c, 0x69, 0x61}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -384,20 +222,6 @@ func (ee *ee_GH) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ee.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, ee.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x6c, 0x69, 0x61}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -406,30 +230,6 @@ func (ee *ee_GH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ee.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ee.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20, 0x67, 0x61}...)
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ee.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -438,37 +238,6 @@ func (ee *ee_GH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ee.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ee.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20, 0x67, 0x61}...)
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ee.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ee.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -477,41 +246,6 @@ func (ee *ee_GH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ee.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ee.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20, 0x67, 0x61}...)
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ee.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ee.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -520,45 +254,5 @@ func (ee *ee_GH) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ee.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ee.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20, 0x67, 0x61}...)
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ee.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ee.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ee.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ee_TG/ee_TG.go b/ee_TG/ee_TG.go
+index f459781..e8fba72 100644
+--- a/ee_TG/ee_TG.go
++++ b/ee_TG/ee_TG.go
+@@ -10,62 +10,45 @@ import (
+ )
+ 
+ type ee_TG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ee_TG' locale
+ func New() locales.Translator {
+ return &ee_TG{
+- locale: "ee_TG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "dzv", "dzd", "ted", "afɔ", "dam", "mas", "sia", "dea", "any", "kel", "ade", "dzm"},
+- monthsNarrow: []string{"", "d", "d", "t", "a", "d", "m", "s", "d", "a", "k", "a", "d"},
+- monthsWide: []string{"", "dzove", "dzodze", "tedoxe", "afɔfĩe", "dama", "masa", "siamlɔm", "deasiamime", "anyɔnyɔ", "kele", "adeɛmekpɔxe", "dzome"},
+- daysAbbreviated: []string{"kɔs", "dzo", "bla", "kuɖ", "yaw", "fiɖ", "mem"},
+- daysNarrow: []string{"k", "d", "b", "k", "y", "f", "m"},
+- daysShort: []string{"kɔs", "dzo", "bla", "kuɖ", "yaw", "fiɖ", "mem"},
+- daysWide: []string{"kɔsiɖa", "dzoɖa", "blaɖa", "kuɖa", "yawoɖa", "fiɖa", "memleɖa"},
+- periodsAbbreviated: []string{"ŋdi", "ɣetrɔ"},
+- periodsNarrow: []string{"ŋ", "ɣ"},
+- periodsWide: []string{"ŋdi", "ɣetrɔ"},
+- erasAbbreviated: []string{"hY", "Yŋ"},
+- erasNarrow: []string{"hY", "Yŋ"},
+- erasWide: []string{"Hafi Yesu Va Do ŋgɔ", "Yesu Ŋɔli"},
+- timezones: map[string]string{"UYST": "Uruguai dzomeŋɔli gaƒoƒome", "MESZ": "Titina Europe ŋkekeme gaƒoƒome", "WART": "Ɣetoɖoƒe Argentina gaƒoƒoɖoanyime", "HECU": "Kuba ŋkekeme gaƒoƒome", "MDT": "Makau ŋkekeme gaƒoƒome", "ADT": "Atlantic ŋkekeme gaƒoƒome", "LHDT": "LHDT", "HEEG": "Ɣedzeƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "SAST": "Anyiehe Africa gaƒoƒome", "WAST": "Ɣetoɖoƒe Africa ŋkekeme gaƒoƒome", "COT": "Kolombia gaƒoƒoɖoanyime", "AST": "Atlantic gaƒoƒoɖoanyime", "UYT": "Uruguai gaƒoƒoɖoanyime", "BT": "BT", "ART": "Argentina gaƒoƒoɖoanyime", "AWST": "Ɣetoɖoƒe Australia gaƒoƒoɖoanyime", "OEZ": "Ɣedzeƒe Europe gaƒoƒoɖoanyime", "WARST": "Ɣetoɖoƒe Argentina dzomeŋɔli gaƒoƒome", "WESZ": "Ɣetoɖoƒe Europe ŋkekeme gaƒoƒome", "ACWST": "Australia ɣetoɖofe gaƒoƒoɖoanyime", "NZST": "NZST", "IST": "IST", "AKDT": "Alaska ŋkekeme gaƒoƒome", "MYT": "MYT", "HNT": "Niufaunɖlanɖ gaƒoƒoɖoanyime", "AEDT": "Ɣedzeƒe Australia ŋkekeme gaƒoƒome", "MEZ": "Titina Europe gaƒoƒoɖoanyime", "EAT": "Ɣedzeƒe Africa gaƒoƒome", "GMT": "Greenwich gaƒoƒome", "CST": "Titina America gaƒoƒoɖoanyime", "ARST": "Argentina dzomeŋɔli gaƒoƒome", "HKT": "Hɔng Kɔng gaƒoƒoɖoanyi me", "HNPM": "Saint Pierre kple Mikuelon gaƒoƒoɖoanyime", "VET": "Venezuela gaƒoƒome", "HAT": "Niufaunɖlanɖ ŋkekeme gaƒoƒome", "HNOG": "Ɣetoɖoƒe Grinlanɖ gaƒoƒoɖoanyime", "BOT": "Bolivia gaƒoƒome", "TMST": "Tɛkmenistan dzomeŋɔli gaƒoƒome", "WAT": "Ɣetoɖoƒe Afrika gaƒoƒoɖoanyime", "HENOMX": "HENOMX", "PST": "Pacific gaƒoƒoɖoanyime", "AEST": "Ɣedzeƒe Australia gaƒoƒoɖoanyime", "GFT": "Frentsi Guiana gaƒoƒome", "CAT": "Titina Afrika gaƒoƒome", "COST": "Kolombia dzomeŋɔli gaƒoƒome", "HNNOMX": "HNNOMX", "CDT": "Titina America ŋkekeme gaƒoƒome", "WIB": "WIB", "CLT": "Tsile gaƒoƒoɖoanyime", "ECT": "Ikuedɔ dzomeŋɔli gaƒoƒome", "SRT": "Suriname gaƒoƒome", "WEZ": "Ɣetoɖoƒe Europe gaƒoƒoɖoanyime", "HEOG": "Ɣetoɖoƒe Grinlanɖ dzomeŋɔli gaƒoƒome", "CLST": "Tsile dzomeŋɔli gaƒoƒome", "TMT": "Tɛkmenistan gaƒoƒoɖoanyime", "HNCU": "Kuba gaƒoƒoɖoanyime", "WIT": "WIT", "ACWDT": "Australia ɣetoɖofe ŋkekeme gaƒoƒome", "CHADT": "CHADT", "NZDT": "NZDT", "ChST": "ChST", "ACST": "Titina Australia gaƒoƒoɖoanyime", "EDT": "Ɣedzeƒe America ŋkekeme gaƒoƒome", "MST": "Makau gaƒoƒoɖoanyime", "WITA": "WITA", "JDT": "Japan ŋkekeme gaƒoƒome", "HNEG": "Ɣedzeƒe Grinlanɖ gaƒoƒoɖoanyime", "SGT": "SGT", "AKST": "Alaska gaƒoƒoɖoanyime", "GYT": "Gayana gaƒoƒome", "HADT": "Hawaii-Aleutia ŋkekeme gaƒoƒome", "PDT": "Pacific ŋkekme gaƒoƒome", "HKST": "Hɔng Kɔng dzomeŋɔli gaƒoƒome", "CHAST": "CHAST", "OESZ": "Ɣedzeƒe Europe ŋkekeme gaƒoƒome", "EST": "Ɣedzeƒe America gaƒoƒoɖoanyime", "HNPMX": "HNPMX", "LHST": "LHST", "JST": "Japan gaƒoƒoɖanyime", "ACDT": "Titina Australia ŋkekeme gaƒoƒome", "∅∅∅": "Peru dzomeŋɔli gaƒoƒome", "HEPMX": "HEPMX", "HAST": "Hawaii-Aleutia gaƒoƒoɖoanyime", "AWDT": "Ɣetoɖoƒe Australia ŋkekeme gaƒoƒome", "HEPM": "Saint Pierre kple Mikuelon ŋkekeme gaƒoƒome"},
++ locale: "ee_TG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AWST": "AWST", "HNCU": "HNCU", "ARST": "ARST", "HADT": "HADT", "JST": "JST", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "GYT": "GYT", "CDT": "CDT", "MYT": "MYT", "CHADT": "CHADT", "UYT": "UYT", "WEZ": "WEZ", "WAT": "WAT", "SAST": "SAST", "WIB": "WIB", "HENOMX": "HENOMX", "VET": "VET", "WAST": "WAST", "HKT": "HKT", "CAT": "CAT", "AST": "AST", "ACWDT": "ACWDT", "PST": "PST", "AKDT": "AKDT", "HNT": "HNT", "WART": "WART", "HNPM": "HNPM", "LHST": "LHST", "AEDT": "AEDT", "CLT": "CLT", "ECT": "ECT", "BOT": "BOT", "JDT": "JDT", "LHDT": "LHDT", "ACWST": "ACWST", "AKST": "AKST", "GFT": "GFT", "MDT": "MDT", "COT": "COT", "MEZ": "MEZ", "SGT": "SGT", "WIT": "WIT", "EST": "EST", "TMT": "TMT", "ADT": "ADT", "NZDT": "NZDT", "ACDT": "ACDT", "HEPM": "HEPM", "CHAST": "CHAST", "UYST": "UYST", "HEPMX": "HEPMX", "HEOG": "HEOG", "MST": "MST", "HNEG": "HNEG", "AWDT": "AWDT", "BT": "BT", "EDT": "EDT", "WITA": "WITA", "HNNOMX": "HNNOMX", "HECU": "HECU", "CLST": "CLST", "CST": "CST", "EAT": "EAT", "MESZ": "MESZ", "OEZ": "OEZ", "HNOG": "HNOG", "HKST": "HKST", "SRT": "SRT", "ACST": "ACST", "HEEG": "HEEG", "PDT": "PDT", "HNPMX": "HNPMX", "COST": "COST", "TMST": "TMST", "ChST": "ChST", "HAST": "HAST", "AEST": "AEST", "IST": "IST", "OESZ": "OESZ", "GMT": "GMT", "HAT": "HAT", "WARST": "WARST", "NZST": "NZST", "ART": "ART"},
+ }
+ }
+ 
+@@ -118,7 +101,7 @@ func (ee *ee_TG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ee *ee_TG) MonthsAbbreviated() []string {
+- return ee.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -128,7 +111,7 @@ func (ee *ee_TG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ee *ee_TG) MonthsNarrow() []string {
+- return ee.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -138,7 +121,7 @@ func (ee *ee_TG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ee *ee_TG) MonthsWide() []string {
+- return ee.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -198,56 +181,7 @@ func (ee *ee_TG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ee.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ee.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ee.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ee.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ee.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ee_TG'
+@@ -256,68 +190,7 @@ func (ee *ee_TG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ee.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ee.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ee.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ee.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ee.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ee.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ee_TG'
+@@ -325,17 +198,6 @@ func (ee *ee_TG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -344,18 +206,6 @@ func (ee *ee_TG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ee.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x6c, 0x69, 0x61}...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -364,18 +214,6 @@ func (ee *ee_TG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ee.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x6c, 0x69, 0x61}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -384,20 +222,6 @@ func (ee *ee_TG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ee.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, ee.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x6c, 0x69, 0x61}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/el/el.go b/el/el.go
+index 09ac4f6..407d4c2 100644
+--- a/el/el.go
++++ b/el/el.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"π.Χ.", "μ.Χ."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"προ Χριστού", "μετά Χριστόν"},
+- timezones: map[string]string{"PDT": "Θερινή ώρα Βόρειας Αμερικής", "HEPM": "Θερινή ώρα Σαιντ Πιερ και Μικελόν", "PST": "Χειμερινή ώρα Βόρειας Αμερικής", "ChST": "Ώρα Τσαμόρο", "AEDT": "Θερινή ώρα Ανατολικής Αυστραλίας", "GFT": "Ώρα Γαλλικής Γουιάνας", "TMST": "Θερινή ώρα Τουρκμενιστάν", "COST": "Θερινή ώρα Κολομβίας", "WARST": "Θερινή ώρα Δυτικής Αργεντινής", "GMT": "Μέση ώρα Γκρίνουιτς", "HKST": "Θερινή ώρα Χονγκ Κονγκ", "AEST": "Χειμερινή ώρα Ανατολικής Αυστραλίας", "∅∅∅": "Θερινή ώρα Περού", "AST": "Χειμερινή ώρα Ατλαντικού", "WIT": "Ώρα Ανατολικής Ινδονησίας", "NZDT": "Θερινή ώρα Νέας Ζηλανδίας", "CAT": "Ώρα Κεντρικής Αφρικής", "AWDT": "Θερινή ώρα Δυτικής Αυστραλίας", "CLT": "Χειμερινή ώρα Χιλής", "HKT": "Χειμερινή ώρα Χονγκ Κονγκ", "HECU": "Θερινή ώρα Κούβας", "UYST": "Θερινή ώρα Ουρουγουάης", "HAT": "Θερινή ώρα Νέας Γης", "ARST": "Θερινή ώρα Αργεντινής", "HNOG": "Χειμερινή ώρα Δυτικής Γροιλανδίας", "TMT": "Χειμερινή ώρα Τουρκμενιστάν", "WART": "Χειμερινή ώρα Δυτικής Αργεντινής", "SGT": "Ώρα Σιγκαπούρης", "AKDT": "Θερινή ώρα Αλάσκας", "WIB": "Ώρα Δυτικής Ινδονησίας", "VET": "Ώρα Βενεζουέλας", "LHST": "Χειμερινή ώρα Λορντ Χάου", "CLST": "Θερινή ώρα Χιλής", "HENOMX": "Θερινή ώρα Βορειοδυτικού Μεξικού", "MST": "Χειμερινή ώρα Μακάο", "EST": "Ανατολική χειμερινή ώρα Βόρειας Αμερικής", "EDT": "Ανατολική θερινή ώρα Βόρειας Αμερικής", "GYT": "Ώρα Γουιάνας", "HNT": "Χειμερινή ώρα Νέας Γης", "EAT": "Ώρα Ανατολικής Αφρικής", "WAT": "Χειμερινή ώρα Δυτικής Αφρικής", "HNNOMX": "Χειμερινή ώρα Βορειοδυτικού Μεξικού", "MDT": "Θερινή ώρα Μακάο", "HNPMX": "Χειμερινή ώρα Ειρηνικού Μεξικού", "HNCU": "Χειμερινή ώρα Κούβας", "CDT": "Κεντρική θερινή ώρα Βόρειας Αμερικής", "UYT": "Χειμερινή ώρα Ουρουγουάης", "HAST": "Χειμερινή ώρα Χαβάης-Αλεούτιων νήσων", "HADT": "Θερινή ώρα Χαβάης-Αλεούτιων νήσων", "ACST": "Χειμερινή ώρα Κεντρικής Αυστραλίας", "CST": "Κεντρική χειμερινή ώρα Βόρειας Αμερικής", "WESZ": "Θερινή ώρα Δυτικής Ευρώπης", "MEZ": "Χειμερινή ώρα Κεντρικής Ευρώπης", "SAST": "Χειμερινή ώρα Νότιας Αφρικής", "AKST": "Χειμερινή ώρα Αλάσκας", "BT": "Ώρα Μπουτάν", "ACWDT": "Θερινή ώρα Κεντροδυτικής Αυστραλίας", "ACDT": "Θερινή ώρα Κεντρικής Αυστραλίας", "WAST": "Θερινή ώρα Δυτικής Αφρικής", "OESZ": "Θερινή ώρα Ανατολικής Ευρώπης", "COT": "Χειμερινή ώρα Κολομβίας", "HEPMX": "Θερινή ώρα Ειρηνικού Μεξικού", "CHADT": "Θερινή ώρα Τσάθαμ", "HNEG": "Χειμερινή ώρα Ανατολικής Γροιλανδίας", "ECT": "Ώρα Εκουαδόρ", "MYT": "Ώρα Μαλαισίας", "AWST": "Χειμερινή ώρα Δυτικής Αυστραλίας", "IST": "Ώρα Ινδίας", "LHDT": "Θερινή ώρα Λορντ Χάου", "CHAST": "Χειμερινή ώρα Τσάθαμ", "JST": "Χειμερινή ώρα Ιαπωνίας", "SRT": "Ώρα Σουρινάμ", "WEZ": "Χειμερινή ώρα Δυτικής Ευρώπης", "ACWST": "Χειμερινή ώρα Κεντροδυτικής Αυστραλίας", "HEOG": "Θερινή ώρα Δυτικής Γροιλανδίας", "WITA": "Ώρα Κεντρικής Ινδονησίας", "BOT": "Ώρα Βολιβίας", "HEEG": "Θερινή ώρα Ανατολικής Γροιλανδίας", "ADT": "Θερινή ώρα Ατλαντικού", "ART": "Χειμερινή ώρα Αργεντινής", "HNPM": "Χειμερινή ώρα Σαιντ Πιερ και Μικελόν", "MESZ": "Θερινή ώρα Κεντρικής Ευρώπης", "OEZ": "Χειμερινή ώρα Ανατολικής Ευρώπης", "NZST": "Χειμερινή ώρα Νέας Ζηλανδίας", "JDT": "Θερινή ώρα Ιαπωνίας"},
++ timezones: map[string]string{"COST": "Θερινή ώρα Κολομβίας", "CLT": "Χειμερινή ώρα Χιλής", "MST": "Χειμερινή ώρα Μακάο", "BOT": "Ώρα Βολιβίας", "ACWST": "Χειμερινή ώρα Κεντροδυτικής Αυστραλίας", "COT": "Χειμερινή ώρα Κολομβίας", "WEZ": "Χειμερινή ώρα Δυτικής Ευρώπης", "WAT": "Χειμερινή ώρα Δυτικής Αφρικής", "OESZ": "Θερινή ώρα Ανατολικής Ευρώπης", "HNOG": "Χειμερινή ώρα Δυτικής Γροιλανδίας", "HKST": "Θερινή ώρα Χονγκ Κονγκ", "CLST": "Θερινή ώρα Χιλής", "PDT": "Θερινή ώρα Βόρειας Αμερικής", "ACWDT": "Θερινή ώρα Κεντροδυτικής Αυστραλίας", "MESZ": "Θερινή ώρα Κεντρικής Ευρώπης", "CST": "Κεντρική χειμερινή ώρα Βόρειας Αμερικής", "EAT": "Ώρα Ανατολικής Αφρικής", "HNPM": "Χειμερινή ώρα Σαιντ Πιερ και Μικελόν", "HECU": "Θερινή ώρα Κούβας", "ART": "Χειμερινή ώρα Αργεντινής", "HAT": "Θερινή ώρα Νέας Γης", "ACST": "Χειμερινή ώρα Κεντρικής Αυστραλίας", "LHDT": "Θερινή ώρα Λορντ Χάου", "CHADT": "Θερινή ώρα Τσάθαμ", "WART": "Χειμερινή ώρα Δυτικής Αργεντινής", "TMT": "Χειμερινή ώρα Τουρκμενιστάν", "EST": "Ανατολική χειμερινή ώρα Βόρειας Αμερικής", "NZDT": "Θερινή ώρα Νέας Ζηλανδίας", "ChST": "Ώρα Τσαμόρο", "MEZ": "Χειμερινή ώρα Κεντρικής Ευρώπης", "AKDT": "Θερινή ώρα Αλάσκας", "HNT": "Χειμερινή ώρα Νέας Γης", "AST": "Χειμερινή ώρα Ατλαντικού", "LHST": "Χειμερινή ώρα Λορντ Χάου", "VET": "Ώρα Βενεζουέλας", "HNCU": "Χειμερινή ώρα Κούβας", "WIT": "Ώρα Ανατολικής Ινδονησίας", "GMT": "Μέση ώρα Γκρίνουιτς", "AEST": "Χειμερινή ώρα Ανατολικής Αυστραλίας", "∅∅∅": "∅∅∅", "CAT": "Ώρα Κεντρικής Αφρικής", "UYT": "Χειμερινή ώρα Ουρουγουάης", "HEOG": "Θερινή ώρα Δυτικής Γροιλανδίας", "EDT": "Ανατολική θερινή ώρα Βόρειας Αμερικής", "ECT": "Ώρα Εκουαδόρ", "ARST": "Θερινή ώρα Αργεντινής", "BT": "Ώρα Μπουτάν", "IST": "Ώρα Ινδίας", "HEPMX": "Θερινή ώρα Ειρηνικού Μεξικού", "AKST": "Χειμερινή ώρα Αλάσκας", "HKT": "Χειμερινή ώρα Χονγκ Κονγκ", "TMST": "Θερινή ώρα Τουρκμενιστάν", "CDT": "Κεντρική θερινή ώρα Βόρειας Αμερικής", "ADT": "Θερινή ώρα Ατλαντικού", "UYST": "Θερινή ώρα Ουρουγουάης", "HNPMX": "Χειμερινή ώρα Ειρηνικού Μεξικού", "HADT": "Θερινή ώρα Χαβάης-Αλεούτιων νήσων", "CHAST": "Χειμερινή ώρα Τσάθαμ", "MDT": "Θερινή ώρα Μακάο", "WAST": "Θερινή ώρα Δυτικής Αφρικής", "ACDT": "Θερινή ώρα Κεντρικής Αυστραλίας", "SAST": "Χειμερινή ώρα Νότιας Αφρικής", "SRT": "Ώρα Σουρινάμ", "HEPM": "Θερινή ώρα Σαιντ Πιερ και Μικελόν", "GFT": "Ώρα Γαλλικής Γουιάνας", "GYT": "Ώρα Γουιάνας", "WITA": "Ώρα Κεντρικής Ινδονησίας", "HEEG": "Θερινή ώρα Ανατολικής Γροιλανδίας", "HENOMX": "Θερινή ώρα Βορειοδυτικού Μεξικού", "MYT": "Ώρα Μαλαισίας", "JDT": "Θερινή ώρα Ιαπωνίας", "AWDT": "Θερινή ώρα Δυτικής Αυστραλίας", "WESZ": "Θερινή ώρα Δυτικής Ευρώπης", "WARST": "Θερινή ώρα Δυτικής Αργεντινής", "OEZ": "Χειμερινή ώρα Ανατολικής Ευρώπης", "NZST": "Χειμερινή ώρα Νέας Ζηλανδίας", "HNNOMX": "Χειμερινή ώρα Βορειοδυτικού Μεξικού", "JST": "Χειμερινή ώρα Ιαπωνίας", "AEDT": "Θερινή ώρα Ανατολικής Αυστραλίας", "SGT": "Ώρα Σιγκαπούρης", "HAST": "Χειμερινή ώρα Χαβάης-Αλεούτιων νήσων", "HNEG": "Χειμερινή ώρα Ανατολικής Γροιλανδίας", "AWST": "Χειμερινή ώρα Δυτικής Αυστραλίας", "PST": "Χειμερινή ώρα Βόρειας Αμερικής", "WIB": "Ώρα Δυτικής Ινδονησίας"},
+ }
+ }
+ 
+diff --git a/el_CY/el_CY.go b/el_CY/el_CY.go
+index 88ce682..3022b5b 100644
+--- a/el_CY/el_CY.go
++++ b/el_CY/el_CY.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type el_CY struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'el_CY' locale
+ func New() locales.Translator {
+ return &el_CY{
+- locale: "el_CY",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "Ιαν", "Φεβ", "Μαρ", "Απρ", "Μαΐ", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ"},
+- monthsNarrow: []string{"", "Ι", "Φ", "Μ", "Α", "Μ", "Ι", "Ι", "Α", "Σ", "Ο", "Ν", "Δ"},
+- monthsWide: []string{"", "Ιανουαρίου", "Φεβρουαρίου", "Μαρτίου", "Απριλίου", "Μαΐου", "Ιουνίου", "Ιουλίου", "Αυγούστου", "Σεπτεμβρίου", "Οκτωβρίου", "Νοεμβρίου", "Δεκεμβρίου"},
+- daysAbbreviated: []string{"Κυρ", "Δευ", "Τρί", "Τετ", "Πέμ", "Παρ", "Σάβ"},
+- daysNarrow: []string{"Κ", "Δ", "Τ", "Τ", "Π", "Π", "Σ"},
+- daysShort: []string{"Κυ", "Δε", "Τρ", "Τε", "Πέ", "Πα", "Σά"},
+- daysWide: []string{"Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"},
+- periodsAbbreviated: []string{"π.μ.", "μ.μ."},
+- periodsNarrow: []string{"πμ", "μμ"},
+- periodsWide: []string{"π.μ.", "μ.μ."},
+- erasAbbreviated: []string{"π.Χ.", "μ.Χ."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"προ Χριστού", "μετά Χριστόν"},
+- timezones: map[string]string{"WAT": "Χειμερινή ώρα Δυτικής Αφρικής", "CDT": "Κεντρική θερινή ώρα Βόρειας Αμερικής", "HEOG": "Θερινή ώρα Δυτικής Γροιλανδίας", "AEST": "Χειμερινή ώρα Ανατολικής Αυστραλίας", "NZST": "Χειμερινή ώρα Νέας Ζηλανδίας", "NZDT": "Θερινή ώρα Νέας Ζηλανδίας", "WARST": "Θερινή ώρα Δυτικής Αργεντινής", "PDT": "Θερινή ώρα Βόρειας Αμερικής", "ACWDT": "Θερινή ώρα Κεντροδυτικής Αυστραλίας", "HNPM": "Χειμερινή ώρα Σαιντ Πιερ και Μικελόν", "ChST": "Ώρα Τσαμόρο", "MEZ": "Χειμερινή ώρα Κεντρικής Ευρώπης", "WART": "Χειμερινή ώρα Δυτικής Αργεντινής", "UYST": "Θερινή ώρα Ουρουγουάης", "CST": "Κεντρική χειμερινή ώρα Βόρειας Αμερικής", "WIB": "Ώρα Δυτικής Ινδονησίας", "AEDT": "Θερινή ώρα Ανατολικής Αυστραλίας", "HNPMX": "Χειμερινή ώρα Ειρηνικού Μεξικού", "HAST": "Χειμερινή ώρα Χαβάης-Αλεούτιων νήσων", "BT": "Ώρα Μπουτάν", "AWDT": "Θερινή ώρα Δυτικής Αυστραλίας", "HKST": "Θερινή ώρα Χονγκ Κονγκ", "HADT": "Θερινή ώρα Χαβάης-Αλεούτιων νήσων", "SRT": "Ώρα Σουρινάμ", "HNOG": "Χειμερινή ώρα Δυτικής Γροιλανδίας", "ARST": "Θερινή ώρα Αργεντινής", "AWST": "Χειμερινή ώρα Δυτικής Αυστραλίας", "CLT": "Χειμερινή ώρα Χιλής", "HNEG": "Χειμερινή ώρα Ανατολικής Γροιλανδίας", "WAST": "Θερινή ώρα Δυτικής Αφρικής", "∅∅∅": "Θερινή ώρα Αζορών", "MYT": "Ώρα Μαλαισίας", "ADT": "Θερινή ώρα Ατλαντικού", "HNT": "Χειμερινή ώρα Νέας Γης", "HKT": "Χειμερινή ώρα Χονγκ Κονγκ", "COT": "Χειμερινή ώρα Κολομβίας", "SGT": "Ώρα Σιγκαπούρης", "EDT": "Ανατολική θερινή ώρα Βόρειας Αμερικής", "BOT": "Ώρα Βολιβίας", "GYT": "Ώρα Γουιάνας", "WESZ": "Θερινή ώρα Δυτικής Ευρώπης", "GFT": "Ώρα Γαλλικής Γουιάνας", "MST": "Χειμερινή ώρα Μακάο", "AST": "Χειμερινή ώρα Ατλαντικού", "LHST": "Χειμερινή ώρα Λορντ Χάου", "IST": "Ώρα Ινδίας", "LHDT": "Θερινή ώρα Λορντ Χάου", "TMT": "Χειμερινή ώρα Τουρκμενιστάν", "EAT": "Ώρα Ανατολικής Αφρικής", "UYT": "Χειμερινή ώρα Ουρουγουάης", "AKDT": "Θερινή ώρα Αλάσκας", "ACWST": "Χειμερινή ώρα Κεντροδυτικής Αυστραλίας", "ART": "Χειμερινή ώρα Αργεντινής", "HEPM": "Θερινή ώρα Σαιντ Πιερ και Μικελόν", "COST": "Θερινή ώρα Κολομβίας", "VET": "Ώρα Βενεζουέλας", "HEEG": "Θερινή ώρα Ανατολικής Γροιλανδίας", "TMST": "Θερινή ώρα Τουρκμενιστάν", "HEPMX": "Θερινή ώρα Ειρηνικού Μεξικού", "CLST": "Θερινή ώρα Χιλής", "ACDT": "Θερινή ώρα Κεντρικής Αυστραλίας", "HENOMX": "Θερινή ώρα Βορειοδυτικού Μεξικού", "GMT": "Μέση ώρα Γκρίνουιτς", "WEZ": "Χειμερινή ώρα Δυτικής Ευρώπης", "CHAST": "Χειμερινή ώρα Τσάθαμ", "JDT": "Θερινή ώρα Ιαπωνίας", "CAT": "Ώρα Κεντρικής Αφρικής", "OEZ": "Χειμερινή ώρα Ανατολικής Ευρώπης", "ECT": "Ώρα Εκουαδόρ", "MDT": "Θερινή ώρα Μακάο", "WIT": "Ώρα Ανατολικής Ινδονησίας", "PST": "Χειμερινή ώρα Βόρειας Αμερικής", "CHADT": "Θερινή ώρα Τσάθαμ", "JST": "Χειμερινή ώρα Ιαπωνίας", "AKST": "Χειμερινή ώρα Αλάσκας", "MESZ": "Θερινή ώρα Κεντρικής Ευρώπης", "SAST": "Χειμερινή ώρα Νότιας Αφρικής", "ACST": "Χειμερινή ώρα Κεντρικής Αυστραλίας", "WITA": "Ώρα Κεντρικής Ινδονησίας", "OESZ": "Θερινή ώρα Ανατολικής Ευρώπης", "HNNOMX": "Χειμερινή ώρα Βορειοδυτικού Μεξικού", "HNCU": "Χειμερινή ώρα Κούβας", "HECU": "Θερινή ώρα Κούβας", "EST": "Ανατολική χειμερινή ώρα Βόρειας Αμερικής", "HAT": "Θερινή ώρα Νέας Γης"},
++ locale: "el_CY",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CLST": "CLST", "HADT": "HADT", "IST": "IST", "WESZ": "WESZ", "MST": "MST", "AEDT": "AEDT", "AKDT": "AKDT", "HAT": "HAT", "HKT": "HKT", "MESZ": "MESZ", "AKST": "AKST", "HNT": "HNT", "COT": "COT", "WITA": "WITA", "ECT": "ECT", "BOT": "BOT", "HENOMX": "HENOMX", "WART": "WART", "CDT": "CDT", "MYT": "MYT", "LHST": "LHST", "HNPMX": "HNPMX", "WAT": "WAT", "HAST": "HAST", "HNEG": "HNEG", "AWST": "AWST", "WEZ": "WEZ", "WARST": "WARST", "ART": "ART", "HNPM": "HNPM", "OEZ": "OEZ", "AEST": "AEST", "CHAST": "CHAST", "CHADT": "CHADT", "WIB": "WIB", "AST": "AST", "ADT": "ADT", "HNNOMX": "HNNOMX", "ACWST": "ACWST", "HEPMX": "HEPMX", "ACDT": "ACDT", "VET": "VET", "HNCU": "HNCU", "WIT": "WIT", "SAST": "SAST", "CAT": "CAT", "NZDT": "NZDT", "CST": "CST", "ChST": "ChST", "JDT": "JDT", "EDT": "EDT", "MEZ": "MEZ", "AWDT": "AWDT", "HECU": "HECU", "HNOG": "HNOG", "EST": "EST", "TMST": "TMST", "SRT": "SRT", "ACWDT": "ACWDT", "UYT": "UYT", "GFT": "GFT", "COST": "COST", "OESZ": "OESZ", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "ARST": "ARST", "GMT": "GMT", "LHDT": "LHDT", "WAST": "WAST", "HKST": "HKST", "MDT": "MDT", "HEEG": "HEEG", "HEPM": "HEPM", "BT": "BT", "GYT": "GYT", "PDT": "PDT", "TMT": "TMT", "NZST": "NZST", "EAT": "EAT", "ACST": "ACST", "UYST": "UYST", "PST": "PST", "CLT": "CLT", "JST": "JST", "SGT": "SGT"},
+ }
+ }
+ 
+@@ -137,7 +112,7 @@ func (el *el_CY) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (el *el_CY) MonthsAbbreviated() []string {
+- return el.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -147,7 +122,7 @@ func (el *el_CY) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (el *el_CY) MonthsNarrow() []string {
+- return el.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -157,7 +132,7 @@ func (el *el_CY) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (el *el_CY) MonthsWide() []string {
+- return el.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -203,73 +178,13 @@ func (el *el_CY) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'el_CY' and handles both Whole and Real numbers based on 'v'
+ func (el *el_CY) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, el.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, el.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, el.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'el_CY' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (el *el_CY) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, el.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, el.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, el.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'el_CY'
+@@ -277,56 +192,7 @@ func (el *el_CY) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := el.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, el.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, el.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, el.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, el.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, el.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'el_CY'
+@@ -335,63 +201,7 @@ func (el *el_CY) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := el.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, el.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, el.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, el.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, el.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, el.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, el.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'el_CY'
+@@ -399,17 +209,6 @@ func (el *el_CY) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -418,17 +217,6 @@ func (el *el_CY) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, el.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -437,17 +225,6 @@ func (el *el_CY) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, el.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -456,19 +233,6 @@ func (el *el_CY) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, el.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, el.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -477,28 +241,6 @@ func (el *el_CY) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, el.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, el.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, el.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -507,35 +249,6 @@ func (el *el_CY) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, el.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, el.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, el.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, el.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -544,40 +257,6 @@ func (el *el_CY) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, el.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, el.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, el.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, el.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,44 +265,5 @@ func (el *el_CY) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, el.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, el.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, el.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, el.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := el.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/el_GR/el_GR.go b/el_GR/el_GR.go
+index 6a26471..8aeef9d 100644
+--- a/el_GR/el_GR.go
++++ b/el_GR/el_GR.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type el_GR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'el_GR' locale
+ func New() locales.Translator {
+ return &el_GR{
+- locale: "el_GR",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "Ιαν", "Φεβ", "Μαρ", "Απρ", "Μαΐ", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ"},
+- monthsNarrow: []string{"", "Ι", "Φ", "Μ", "Α", "Μ", "Ι", "Ι", "Α", "Σ", "Ο", "Ν", "Δ"},
+- monthsWide: []string{"", "Ιανουαρίου", "Φεβρουαρίου", "Μαρτίου", "Απριλίου", "Μαΐου", "Ιουνίου", "Ιουλίου", "Αυγούστου", "Σεπτεμβρίου", "Οκτωβρίου", "Νοεμβρίου", "Δεκεμβρίου"},
+- daysAbbreviated: []string{"Κυρ", "Δευ", "Τρί", "Τετ", "Πέμ", "Παρ", "Σάβ"},
+- daysNarrow: []string{"Κ", "Δ", "Τ", "Τ", "Π", "Π", "Σ"},
+- daysShort: []string{"Κυ", "Δε", "Τρ", "Τε", "Πέ", "Πα", "Σά"},
+- daysWide: []string{"Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"},
+- periodsAbbreviated: []string{"π.μ.", "μ.μ."},
+- periodsNarrow: []string{"πμ", "μμ"},
+- periodsWide: []string{"π.μ.", "μ.μ."},
+- erasAbbreviated: []string{"π.Χ.", "μ.Χ."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"προ Χριστού", "μετά Χριστόν"},
+- timezones: map[string]string{"WARST": "Θερινή ώρα Δυτικής Αργεντινής", "HKST": "Θερινή ώρα Χονγκ Κονγκ", "OESZ": "Θερινή ώρα Ανατολικής Ευρώπης", "SGT": "Ώρα Σιγκαπούρης", "JST": "Χειμερινή ώρα Ιαπωνίας", "BOT": "Ώρα Βολιβίας", "COT": "Χειμερινή ώρα Κολομβίας", "GYT": "Ώρα Γουιάνας", "UYT": "Χειμερινή ώρα Ουρουγουάης", "MESZ": "Θερινή ώρα Κεντρικής Ευρώπης", "NZDT": "Θερινή ώρα Νέας Ζηλανδίας", "WART": "Χειμερινή ώρα Δυτικής Αργεντινής", "COST": "Θερινή ώρα Κολομβίας", "ARST": "Θερινή ώρα Αργεντινής", "PST": "Χειμερινή ώρα Βόρειας Αμερικής", "AEST": "Χειμερινή ώρα Ανατολικής Αυστραλίας", "HKT": "Χειμερινή ώρα Χονγκ Κονγκ", "HEPM": "Θερινή ώρα Σαιντ Πιερ και Μικελόν", "MEZ": "Χειμερινή ώρα Κεντρικής Ευρώπης", "∅∅∅": "Θερινή ώρα Περού", "HEEG": "Θερινή ώρα Ανατολικής Γροιλανδίας", "AKDT": "Θερινή ώρα Αλάσκας", "CDT": "Κεντρική θερινή ώρα Βόρειας Αμερικής", "ART": "Χειμερινή ώρα Αργεντινής", "AWDT": "Θερινή ώρα Δυτικής Αυστραλίας", "HNPMX": "Χειμερινή ώρα Ειρηνικού Μεξικού", "WIT": "Ώρα Ανατολικής Ινδονησίας", "HNPM": "Χειμερινή ώρα Σαιντ Πιερ και Μικελόν", "CLST": "Θερινή ώρα Χιλής", "VET": "Ώρα Βενεζουέλας", "WIB": "Ώρα Δυτικής Ινδονησίας", "HADT": "Θερινή ώρα Χαβάης-Αλεούτιων νήσων", "BT": "Ώρα Μπουτάν", "HNT": "Χειμερινή ώρα Νέας Γης", "GFT": "Ώρα Γαλλικής Γουιάνας", "CAT": "Ώρα Κεντρικής Αφρικής", "SRT": "Ώρα Σουρινάμ", "HEOG": "Θερινή ώρα Δυτικής Γροιλανδίας", "NZST": "Χειμερινή ώρα Νέας Ζηλανδίας", "HNEG": "Χειμερινή ώρα Ανατολικής Γροιλανδίας", "ACDT": "Θερινή ώρα Κεντρικής Αυστραλίας", "HNNOMX": "Χειμερινή ώρα Βορειοδυτικού Μεξικού", "OEZ": "Χειμερινή ώρα Ανατολικής Ευρώπης", "UYST": "Θερινή ώρα Ουρουγουάης", "WESZ": "Θερινή ώρα Δυτικής Ευρώπης", "SAST": "Χειμερινή ώρα Νότιας Αφρικής", "IST": "Ώρα Ινδίας", "EAT": "Ώρα Ανατολικής Αφρικής", "HAST": "Χειμερινή ώρα Χαβάης-Αλεούτιων νήσων", "PDT": "Θερινή ώρα Βόρειας Αμερικής", "AWST": "Χειμερινή ώρα Δυτικής Αυστραλίας", "CHADT": "Θερινή ώρα Τσάθαμ", "TMT": "Χειμερινή ώρα Τουρκμενιστάν", "AST": "Χειμερινή ώρα Ατλαντικού", "HNCU": "Χειμερινή ώρα Κούβας", "ADT": "Θερινή ώρα Ατλαντικού", "AKST": "Χειμερινή ώρα Αλάσκας", "LHST": "Χειμερινή ώρα Λορντ Χάου", "WAST": "Θερινή ώρα Δυτικής Αφρικής", "EST": "Ανατολική χειμερινή ώρα Βόρειας Αμερικής", "EDT": "Ανατολική θερινή ώρα Βόρειας Αμερικής", "HEPMX": "Θερινή ώρα Ειρηνικού Μεξικού", "CST": "Κεντρική χειμερινή ώρα Βόρειας Αμερικής", "ACWDT": "Θερινή ώρα Κεντροδυτικής Αυστραλίας", "TMST": "Θερινή ώρα Τουρκμενιστάν", "ChST": "Ώρα Τσαμόρο", "WAT": "Χειμερινή ώρα Δυτικής Αφρικής", "MYT": "Ώρα Μαλαισίας", "CHAST": "Χειμερινή ώρα Τσάθαμ", "JDT": "Θερινή ώρα Ιαπωνίας", "ACST": "Χειμερινή ώρα Κεντρικής Αυστραλίας", "HENOMX": "Θερινή ώρα Βορειοδυτικού Μεξικού", "GMT": "Μέση ώρα Γκρίνουιτς", "MDT": "Θερινή ώρα Μακάο", "AEDT": "Θερινή ώρα Ανατολικής Αυστραλίας", "WITA": "Ώρα Κεντρικής Ινδονησίας", "CLT": "Χειμερινή ώρα Χιλής", "ECT": "Ώρα Εκουαδόρ", "WEZ": "Χειμερινή ώρα Δυτικής Ευρώπης", "HAT": "Θερινή ώρα Νέας Γης", "LHDT": "Θερινή ώρα Λορντ Χάου", "MST": "Χειμερινή ώρα Μακάο", "HNOG": "Χειμερινή ώρα Δυτικής Γροιλανδίας", "ACWST": "Χειμερινή ώρα Κεντροδυτικής Αυστραλίας", "HECU": "Θερινή ώρα Κούβας"},
++ locale: "el_GR",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AKST": "AKST", "HAT": "HAT", "GYT": "GYT", "TMT": "TMT", "BOT": "BOT", "UYST": "UYST", "WAT": "WAT", "MST": "MST", "WIB": "WIB", "HADT": "HADT", "HEEG": "HEEG", "MYT": "MYT", "AEDT": "AEDT", "WART": "WART", "HEOG": "HEOG", "LHST": "LHST", "HEPM": "HEPM", "SGT": "SGT", "HEPMX": "HEPMX", "HNT": "HNT", "AKDT": "AKDT", "CDT": "CDT", "NZST": "NZST", "ECT": "ECT", "AWST": "AWST", "IST": "IST", "ACWDT": "ACWDT", "WESZ": "WESZ", "EDT": "EDT", "CLST": "CLST", "MDT": "MDT", "GMT": "GMT", "ACDT": "ACDT", "HNCU": "HNCU", "COST": "COST", "WITA": "WITA", "HNEG": "HNEG", "HECU": "HECU", "WARST": "WARST", "HNOG": "HNOG", "WIT": "WIT", "COT": "COT", "CLT": "CLT", "LHDT": "LHDT", "WAST": "WAST", "GFT": "GFT", "ART": "ART", "PST": "PST", "PDT": "PDT", "BT": "BT", "CHAST": "CHAST", "VET": "VET", "OEZ": "OEZ", "ChST": "ChST", "HNNOMX": "HNNOMX", "JST": "JST", "UYT": "UYT", "HNPMX": "HNPMX", "MEZ": "MEZ", "MESZ": "MESZ", "AEST": "AEST", "WEZ": "WEZ", "OESZ": "OESZ", "SAST": "SAST", "ADT": "ADT", "ARST": "ARST", "EAT": "EAT", "HENOMX": "HENOMX", "HNPM": "HNPM", "CHADT": "CHADT", "HKST": "HKST", "AST": "AST", "ACST": "ACST", "AWDT": "AWDT", "ACWST": "ACWST", "∅∅∅": "∅∅∅", "HKT": "HKT", "TMST": "TMST", "CST": "CST", "NZDT": "NZDT", "SRT": "SRT", "HAST": "HAST", "JDT": "JDT", "EST": "EST", "CAT": "CAT"},
+ }
+ }
+ 
+@@ -137,7 +112,7 @@ func (el *el_GR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (el *el_GR) MonthsAbbreviated() []string {
+- return el.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -147,7 +122,7 @@ func (el *el_GR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (el *el_GR) MonthsNarrow() []string {
+- return el.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -157,7 +132,7 @@ func (el *el_GR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (el *el_GR) MonthsWide() []string {
+- return el.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -203,73 +178,13 @@ func (el *el_GR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'el_GR' and handles both Whole and Real numbers based on 'v'
+ func (el *el_GR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, el.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, el.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, el.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'el_GR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (el *el_GR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, el.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, el.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, el.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'el_GR'
+@@ -277,56 +192,7 @@ func (el *el_GR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := el.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, el.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, el.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, el.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, el.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, el.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'el_GR'
+@@ -335,63 +201,7 @@ func (el *el_GR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := el.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, el.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, el.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, el.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, el.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, el.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, el.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'el_GR'
+@@ -399,17 +209,6 @@ func (el *el_GR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -418,17 +217,6 @@ func (el *el_GR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, el.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -437,17 +225,6 @@ func (el *el_GR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, el.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -456,19 +233,6 @@ func (el *el_GR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, el.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, el.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -477,28 +241,6 @@ func (el *el_GR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, el.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, el.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, el.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -507,35 +249,6 @@ func (el *el_GR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, el.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, el.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, el.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, el.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -544,40 +257,6 @@ func (el *el_GR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, el.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, el.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, el.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, el.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,44 +265,5 @@ func (el *el_GR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, el.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, el.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, el.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, el.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := el.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en/en.go b/en/en.go
+index 035677a..aec40b9 100644
+--- a/en/en.go
++++ b/en/en.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BC", "AD"},
+ erasNarrow: []string{"B", "A"},
+ erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"SRT": "Suriname Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "WAST": "West Africa Summer Time", "WART": "Western Argentina Standard Time", "BT": "Bhutan Time", "HEOG": "West Greenland Summer Time", "ACWST": "Australian Central Western Standard Time", "JDT": "Japan Daylight Time", "TMST": "Turkmenistan Summer Time", "HEEG": "East Greenland Summer Time", "MYT": "Malaysia Time", "HAST": "Hawaii-Aleutian Standard Time", "PST": "Pacific Standard Time", "HNT": "Newfoundland Standard Time", "AWST": "Australian Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "JST": "Japan Standard Time", "CLST": "Chile Summer Time", "HNEG": "East Greenland Standard Time", "MST": "Mountain Standard Time", "OESZ": "Eastern European Summer Time", "SGT": "Singapore Standard Time", "ACDT": "Australian Central Daylight Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "EDT": "Eastern Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "HKT": "Hong Kong Standard Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "UYST": "Uruguay Summer Time", "MDT": "Mountain Daylight Time", "ACST": "Australian Central Standard Time", "GMT": "Greenwich Mean Time", "AKDT": "Alaska Daylight Time", "VET": "Venezuela Time", "AWDT": "Australian Western Daylight Time", "CLT": "Chile Standard Time", "BOT": "Bolivia Time", "EAT": "East Africa Time", "WAT": "West Africa Standard Time", "HAT": "Newfoundland Daylight Time", "ChST": "Chamorro Standard Time", "ADT": "Atlantic Daylight Time", "CDT": "Central Daylight Time", "LHST": "Lord Howe Standard Time", "MEZ": "Central European Standard Time", "WEZ": "Western European Standard Time", "CHAST": "Chatham Standard Time", "∅∅∅": "Amazon Summer Time", "GFT": "French Guiana Time", "EST": "Eastern Standard Time", "UYT": "Uruguay Standard Time", "AKST": "Alaska Standard Time", "WIB": "Western Indonesia Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "WITA": "Central Indonesia Time", "ARST": "Argentina Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "WIT": "Eastern Indonesia Time", "AEDT": "Australian Eastern Daylight Time", "OEZ": "Eastern European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "AST": "Atlantic Standard Time", "WESZ": "Western European Summer Time", "HKST": "Hong Kong Summer Time", "MESZ": "Central European Summer Time", "HNPMX": "Mexican Pacific Standard Time", "HNOG": "West Greenland Standard Time", "PDT": "Pacific Daylight Time", "GYT": "Guyana Time", "HADT": "Hawaii-Aleutian Daylight Time", "NZST": "New Zealand Standard Time", "CHADT": "Chatham Daylight Time", "TMT": "Turkmenistan Standard Time", "ECT": "Ecuador Time", "LHDT": "Lord Howe Daylight Time"},
++ timezones: map[string]string{"ACST": "Australian Central Standard Time", "AWST": "Australian Western Standard Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "HNT": "Newfoundland Standard Time", "MDT": "Macau Summer Time", "ChST": "Chamorro Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "BT": "Bhutan Time", "ACWDT": "Australian Central Western Daylight Time", "MST": "Macau Standard Time", "ECT": "Ecuador Time", "WIB": "Western Indonesia Time", "MEZ": "Central European Standard Time", "HNEG": "East Greenland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "PST": "Pacific Standard Time", "ACWST": "Australian Central Western Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "SAST": "South Africa Standard Time", "CAT": "Central Africa Time", "LHST": "Lord Howe Standard Time", "HNPMX": "Mexican Pacific Standard Time", "WIT": "Eastern Indonesia Time", "GYT": "Guyana Time", "HKT": "Hong Kong Standard Time", "CDT": "Central Daylight Time", "PDT": "Pacific Daylight Time", "GFT": "French Guiana Time", "HEOG": "West Greenland Summer Time", "∅∅∅": "Brasilia Summer Time", "EST": "Eastern Standard Time", "CLT": "Chile Standard Time", "GMT": "Greenwich Mean Time", "SRT": "Suriname Time", "HEEG": "East Greenland Summer Time", "UYT": "Uruguay Standard Time", "HKST": "Hong Kong Summer Time", "MYT": "Malaysia Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "HNOG": "West Greenland Standard Time", "ARST": "Argentina Summer Time", "UYST": "Uruguay Summer Time", "AKDT": "Alaska Daylight Time", "WART": "Western Argentina Standard Time", "COST": "Colombia Summer Time", "EDT": "Eastern Daylight Time", "ADT": "Atlantic Daylight Time", "VET": "Venezuela Time", "CLST": "Chile Summer Time", "JDT": "Japan Daylight Time", "WESZ": "Western European Summer Time", "HAT": "Newfoundland Daylight Time", "TMT": "Turkmenistan Standard Time", "EAT": "East Africa Time", "LHDT": "Lord Howe Daylight Time", "JST": "Japan Standard Time", "IST": "India Standard Time", "AEST": "Australian Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "HECU": "Cuba Daylight Time", "AKST": "Alaska Standard Time", "AWDT": "Australian Western Daylight Time", "WAT": "West Africa Standard Time", "TMST": "Turkmenistan Summer Time", "CST": "Central Standard Time", "CHADT": "Chatham Daylight Time", "WEZ": "Western European Standard Time", "WAST": "West Africa Summer Time", "WARST": "Western Argentina Summer Time", "NZST": "New Zealand Standard Time", "AST": "Atlantic Standard Time", "BOT": "Bolivia Time", "MESZ": "Central European Summer Time", "WITA": "Central Indonesia Time", "NZDT": "New Zealand Daylight Time", "ART": "Argentina Standard Time", "ACDT": "Australian Central Daylight Time", "CHAST": "Chatham Standard Time", "SGT": "Singapore Standard Time"},
+ }
+ }
+ 
+diff --git a/en_001/en_001.go b/en_001/en_001.go
+index 27884a8..5419bbf 100644
+--- a/en_001/en_001.go
++++ b/en_001/en_001.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_001 struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_001' locale
+ func New() locales.Translator {
+ return &en_001{
+- locale: "en_001",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JP¥", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "US$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"GFT": "French Guiana Time", "MST": "Macau Standard Time", "ADT": "Atlantic Daylight Time", "UYST": "Uruguay Summer Time", "WIB": "Western Indonesia Time", "SAST": "South Africa Standard Time", "UYT": "Uruguay Standard Time", "AKST": "Alaska Standard Time", "IST": "India Standard Time", "CDT": "Central Daylight Time", "SRT": "Suriname Time", "MEZ": "Central European Standard Time", "MESZ": "Central European Summer Time", "JDT": "Japan Daylight Time", "ACDT": "Australian Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "HEEG": "East Greenland Summer Time", "ACST": "Australian Central Standard Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "HEOG": "West Greenland Summer Time", "ACWST": "Australian Central Western Standard Time", "AEST": "Australian Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "AWST": "Australian Western Standard Time", "CHADT": "Chatham Daylight Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "ARST": "Argentina Summer Time", "ACWDT": "Australian Central Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "JST": "Japan Standard Time", "WAT": "West Africa Standard Time", "EDT": "Eastern Daylight Time", "VET": "Venezuela Time", "HNEG": "East Greenland Standard Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "SGT": "Singapore Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "BT": "Bhutan Time", "HKT": "Hong Kong Standard Time", "WART": "Western Argentina Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "WEZ": "Western European Standard Time", "GYT": "Guyana Time", "WIT": "Eastern Indonesia Time", "HKST": "Hong Kong Summer Time", "CHAST": "Chatham Standard Time", "ChST": "Chamorro Standard Time", "BOT": "Bolivia Time", "WAST": "West Africa Summer Time", "HAT": "Newfoundland Daylight Time", "ART": "Argentina Standard Time", "CLST": "Chile Summer Time", "TMST": "Turkmenistan Summer Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "GMT": "Greenwich Mean Time", "MDT": "Macau Summer Time", "CST": "Central Standard Time", "AST": "Atlantic Standard Time", "MYT": "Malaysia Time", "PDT": "Pacific Daylight Time", "TMT": "Turkmenistan Standard Time", "NZST": "New Zealand Standard Time", "∅∅∅": "Peru Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "PST": "Pacific Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CLT": "Chile Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "LHST": "Lord Howe Standard Time", "ECT": "Ecuador Time", "EAT": "East Africa Time", "EST": "Eastern Standard Time", "HNT": "Newfoundland Standard Time", "HNOG": "West Greenland Standard Time", "WESZ": "Western European Summer Time", "WITA": "Central Indonesia Time", "AWDT": "Australian Western Daylight Time"},
++ locale: "en_001",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JP¥", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "US$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WITA": "WITA", "UYT": "UYT", "HAT": "HAT", "JST": "JST", "AWDT": "AWDT", "PST": "PST", "ACWDT": "ACWDT", "CAT": "CAT", "WIB": "WIB", "ACST": "ACST", "LHST": "LHST", "BT": "BT", "HEEG": "HEEG", "WART": "WART", "GYT": "GYT", "TMT": "TMT", "PDT": "PDT", "UYST": "UYST", "HKT": "HKT", "EST": "EST", "ARST": "ARST", "EAT": "EAT", "IST": "IST", "HEPMX": "HEPMX", "MST": "MST", "HNEG": "HNEG", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "TMST": "TMST", "CLT": "CLT", "CHAST": "CHAST", "CHADT": "CHADT", "HECU": "HECU", "GFT": "GFT", "OEZ": "OEZ", "GMT": "GMT", "HAST": "HAST", "HEPM": "HEPM", "AWST": "AWST", "AEST": "AEST", "OESZ": "OESZ", "∅∅∅": "∅∅∅", "HNPM": "HNPM", "ACWST": "ACWST", "AKDT": "AKDT", "COT": "COT", "HNT": "HNT", "COST": "COST", "HKST": "HKST", "CST": "CST", "ChST": "ChST", "LHDT": "LHDT", "WAT": "WAT", "WAST": "WAST", "EDT": "EDT", "HNOG": "HNOG", "AST": "AST", "SGT": "SGT", "AKST": "AKST", "HEOG": "HEOG", "MYT": "MYT", "VET": "VET", "WIT": "WIT", "CLST": "CLST", "ECT": "ECT", "SRT": "SRT", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "MEZ": "MEZ", "JDT": "JDT", "AEDT": "AEDT", "NZST": "NZST", "NZDT": "NZDT", "CDT": "CDT", "ART": "ART", "HADT": "HADT", "HNCU": "HNCU", "WARST": "WARST", "SAST": "SAST", "WESZ": "WESZ", "MDT": "MDT", "ADT": "ADT", "BOT": "BOT", "MESZ": "MESZ", "WEZ": "WEZ"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_001) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_001) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_001) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_001) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_001) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_001) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_001) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_001' and handles both Whole and Real numbers based on 'v'
+ func (en *en_001) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_001' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_001) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_001'
+@@ -278,56 +195,7 @@ func (en *en_001) FmtCurrency(num float64, v uint64, currency currency.Type) str
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_001'
+@@ -336,68 +204,7 @@ func (en *en_001) FmtAccounting(num float64, v uint64, currency currency.Type) s
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_001'
+@@ -493,28 +300,6 @@ func (en *en_001) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -523,35 +308,6 @@ func (en *en_001) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,40 +316,6 @@ func (en *en_001) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -602,44 +324,5 @@ func (en *en_001) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_150/en_150.go b/en_150/en_150.go
+index 2035504..53b1f06 100644
+--- a/en_150/en_150.go
++++ b/en_150/en_150.go
+@@ -50,28 +50,11 @@ func New() locales.Translator {
+ pluralsRange: []locales.PluralRule{6},
+ decimal: ",",
+ group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositiveSuffix: " ",
+ currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HEEG": "East Greenland Summer Time", "WAT": "West Africa Standard Time", "AKDT": "Alaska Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "WEZ": "Western European Standard Time", "ACWST": "Australian Central Western Standard Time", "AWST": "Australian Western Standard Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "WART": "Western Argentina Standard Time", "COT": "Colombia Standard Time", "SGT": "Singapore Standard Time", "EDT": "Eastern Daylight Time", "MDT": "Macau Summer Time", "WIB": "Western Indonesia Time", "AEST": "Australian Eastern Standard Time", "NZST": "New Zealand Standard Time", "EAT": "East Africa Time", "HECU": "Cuba Daylight Time", "CHADT": "Chatham Daylight Time", "JDT": "Japan Daylight Time", "HNEG": "East Greenland Standard Time", "MYT": "Malaysia Time", "CDT": "Central Daylight Time", "HKT": "Hong Kong Standard Time", "HKST": "Hong Kong Summer Time", "IST": "India Standard Time", "CLST": "Chile Summer Time", "TMST": "Turkmenistan Summer Time", "OESZ": "Eastern European Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "ADT": "Atlantic Daylight Time", "UYT": "Uruguay Standard Time", "AKST": "Alaska Standard Time", "VET": "Venezuela Time", "HEPMX": "Mexican Pacific Daylight Time", "SRT": "Suriname Time", "HNPM": "St. Pierre & Miquelon Standard Time", "WAST": "West Africa Summer Time", "COST": "Colombia Summer Time", "UYST": "Uruguay Summer Time", "MEZ": "Central European Standard Time", "BT": "Bhutan Time", "CHAST": "Chatham Standard Time", "LHDT": "Lord Howe Daylight Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "ARST": "Argentina Summer Time", "WESZ": "Western European Summer Time", "AEDT": "Australian Eastern Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MESZ": "Central European Summer Time", "WARST": "Western Argentina Summer Time", "CST": "Central Standard Time", "PST": "Pacific Standard Time", "HAT": "Newfoundland Daylight Time", "TMT": "Turkmenistan Standard Time", "ACDT": "Australian Central Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "PDT": "Pacific Daylight Time", "HNT": "Newfoundland Standard Time", "WIT": "Eastern Indonesia Time", "WITA": "Central Indonesia Time", "NZDT": "New Zealand Daylight Time", "GFT": "French Guiana Time", "∅∅∅": "Peru Summer Time", "AST": "Atlantic Standard Time", "CLT": "Chile Standard Time", "ChST": "Chamorro Standard Time", "BOT": "Bolivia Time", "MST": "Macau Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "ACST": "Australian Central Standard Time", "ECT": "Ecuador Time", "ART": "Argentina Standard Time", "JST": "Japan Standard Time", "CAT": "Central Africa Time", "EST": "Eastern Standard Time", "HNPMX": "Mexican Pacific Standard Time", "GYT": "Guyana Time", "ACWDT": "Australian Central Western Daylight Time", "SAST": "South Africa Standard Time"},
++ timezones: map[string]string{"MEZ": "MEZ", "PST": "PST", "ACWST": "ACWST", "CHAST": "CHAST", "WAT": "WAT", "WIT": "WIT", "CLST": "CLST", "ECT": "ECT", "JST": "JST", "IST": "IST", "VET": "VET", "WAST": "WAST", "GFT": "GFT", "EDT": "EDT", "HNEG": "HNEG", "HENOMX": "HENOMX", "OEZ": "OEZ", "HEOG": "HEOG", "EST": "EST", "HNNOMX": "HNNOMX", "MESZ": "MESZ", "HEPMX": "HEPMX", "OESZ": "OESZ", "AST": "AST", "EAT": "EAT", "HAST": "HAST", "BOT": "BOT", "LHDT": "LHDT", "MYT": "MYT", "ACST": "ACST", "JDT": "JDT", "PDT": "PDT", "TMST": "TMST", "WITA": "WITA", "CST": "CST", "ChST": "ChST", "ART": "ART", "HNPM": "HNPM", "AEDT": "AEDT", "WART": "WART", "WARST": "WARST", "COT": "COT", "ADT": "ADT", "SGT": "SGT", "HNT": "HNT", "CDT": "CDT", "MDT": "MDT", "AWDT": "AWDT", "NZDT": "NZDT", "WIB": "WIB", "UYST": "UYST", "∅∅∅": "∅∅∅", "HAT": "HAT", "HNOG": "HNOG", "CLT": "CLT", "COST": "COST", "HKST": "HKST", "NZST": "NZST", "UYT": "UYT", "AWST": "AWST", "WEZ": "WEZ", "HNPMX": "HNPMX", "TMT": "TMT", "GMT": "GMT", "ARST": "ARST", "SRT": "SRT", "CHADT": "CHADT", "GYT": "GYT", "CAT": "CAT", "ACDT": "ACDT", "AEST": "AEST", "SAST": "SAST", "HKT": "HKT", "LHST": "LHST", "AKST": "AKST", "AKDT": "AKDT", "HADT": "HADT", "HEEG": "HEEG", "WESZ": "WESZ", "HNCU": "HNCU", "HECU": "HECU", "MST": "MST", "HEPM": "HEPM", "BT": "BT", "ACWDT": "ACWDT"},
+ }
+ }
+ 
+@@ -138,7 +121,7 @@ func (en *en_150) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_150) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +131,7 @@ func (en *en_150) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_150) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +141,7 @@ func (en *en_150) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_150) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +187,13 @@ func (en *en_150) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_150' and handles both Whole and Real numbers based on 'v'
+ func (en *en_150) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_150' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_150) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_150'
+@@ -278,7 +201,7 @@ func (en *en_150) FmtCurrency(num float64, v uint64, currency currency.Type) str
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -336,7 +259,7 @@ func (en *en_150) FmtAccounting(num float64, v uint64, currency currency.Type) s
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -400,17 +323,6 @@ func (en *en_150) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -419,17 +331,6 @@ func (en *en_150) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -438,17 +339,6 @@ func (en *en_150) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -457,19 +347,6 @@ func (en *en_150) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/en_AG/en_AG.go b/en_AG/en_AG.go
+index 5b14913..29ba0c5 100644
+--- a/en_AG/en_AG.go
++++ b/en_AG/en_AG.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_AG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_AG' locale
+ func New() locales.Translator {
+ return &en_AG{
+- locale: "en_AG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "$", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"IST": "India Standard Time", "MDT": "Macau Summer Time", "ADT": "Atlantic Daylight Time", "AEST": "Australian Eastern Standard Time", "WAT": "West Africa Standard Time", "WARST": "Western Argentina Summer Time", "MST": "Macau Standard Time", "HNPMX": "Mexican Pacific Standard Time", "SRT": "Suriname Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HECU": "Cuba Daylight Time", "HKST": "Hong Kong Summer Time", "MEZ": "Central European Standard Time", "CHAST": "Chatham Standard Time", "CLST": "Chile Summer Time", "ACST": "Australian Central Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "MYT": "Malaysia Time", "WIB": "Western Indonesia Time", "PST": "Pacific Standard Time", "AEDT": "Australian Eastern Daylight Time", "CAT": "Central Africa Time", "EAT": "East Africa Time", "HENOMX": "Northwest Mexico Daylight Time", "GMT": "Greenwich Mean Time", "ARST": "Argentina Summer Time", "ECT": "Ecuador Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CHADT": "Chatham Daylight Time", "∅∅∅": "Amazon Summer Time", "JST": "Japan Standard Time", "EST": "Eastern Standard Time", "BT": "Bhutan Time", "HEEG": "East Greenland Summer Time", "WITA": "Central Indonesia Time", "NZDT": "New Zealand Daylight Time", "WAST": "West Africa Summer Time", "COT": "Colombia Standard Time", "AWST": "Australian Western Standard Time", "HKT": "Hong Kong Standard Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "OESZ": "Eastern European Summer Time", "COST": "Colombia Summer Time", "UYST": "Uruguay Summer Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "AST": "Atlantic Standard Time", "ART": "Argentina Standard Time", "SAST": "South Africa Standard Time", "OEZ": "Eastern European Standard Time", "AKST": "Alaska Standard Time", "VET": "Venezuela Time", "WIT": "Eastern Indonesia Time", "WEZ": "Western European Standard Time", "ACWST": "Australian Central Western Standard Time", "HNEG": "East Greenland Standard Time", "ACWDT": "Australian Central Western Daylight Time", "ChST": "Chamorro Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "EDT": "Eastern Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HAT": "Newfoundland Daylight Time", "LHDT": "Lord Howe Daylight Time", "NZST": "New Zealand Standard Time", "BOT": "Bolivia Time", "GYT": "Guyana Time", "PDT": "Pacific Daylight Time", "WESZ": "Western European Summer Time", "HNOG": "West Greenland Standard Time", "LHST": "Lord Howe Standard Time", "CLT": "Chile Standard Time", "JDT": "Japan Daylight Time", "ACDT": "Australian Central Daylight Time", "WART": "Western Argentina Standard Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "UYT": "Uruguay Standard Time", "HNT": "Newfoundland Standard Time", "HEOG": "West Greenland Summer Time", "AWDT": "Australian Western Daylight Time", "MESZ": "Central European Summer Time", "GFT": "French Guiana Time", "AKDT": "Alaska Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time"},
++ locale: "en_AG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "$", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"∅∅∅": "∅∅∅", "VET": "VET", "CAT": "CAT", "ART": "ART", "HNPM": "HNPM", "ChST": "ChST", "HEPM": "HEPM", "PST": "PST", "AKDT": "AKDT", "OESZ": "OESZ", "HNT": "HNT", "WART": "WART", "NZDT": "NZDT", "HEPMX": "HEPMX", "TMST": "TMST", "WITA": "WITA", "AWDT": "AWDT", "LHDT": "LHDT", "HEEG": "HEEG", "JDT": "JDT", "AEDT": "AEDT", "CHADT": "CHADT", "WEZ": "WEZ", "WAT": "WAT", "HAT": "HAT", "ARST": "ARST", "CHAST": "CHAST", "HNPMX": "HNPMX", "BOT": "BOT", "CDT": "CDT", "SRT": "SRT", "UYT": "UYT", "WIT": "WIT", "HKT": "HKT", "ECT": "ECT", "ADT": "ADT", "MYT": "MYT", "OEZ": "OEZ", "HADT": "HADT", "MESZ": "MESZ", "ACDT": "ACDT", "MEZ": "MEZ", "UYST": "UYST", "AKST": "AKST", "GFT": "GFT", "HNOG": "HNOG", "EDT": "EDT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "BT": "BT", "WAST": "WAST", "GYT": "GYT", "EST": "EST", "TMT": "TMT", "MDT": "MDT", "AEST": "AEST", "CLST": "CLST", "IST": "IST", "HNCU": "HNCU", "HECU": "HECU", "COST": "COST", "CLT": "CLT", "MST": "MST", "NZST": "NZST", "HNEG": "HNEG", "ACWDT": "ACWDT", "PDT": "PDT", "WESZ": "WESZ", "SGT": "SGT", "COT": "COT", "HKST": "HKST", "LHST": "LHST", "WARST": "WARST", "WIB": "WIB", "CST": "CST", "EAT": "EAT", "AWST": "AWST", "ACWST": "ACWST", "SAST": "SAST", "AST": "AST", "ACST": "ACST", "HEOG": "HEOG", "GMT": "GMT", "HAST": "HAST", "JST": "JST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_AG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_AG) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_AG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_AG) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_AG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_AG) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_AG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_AG' and handles both Whole and Real numbers based on 'v'
+ func (en *en_AG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_AG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_AG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_AG'
+@@ -278,56 +195,7 @@ func (en *en_AG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_AG'
+@@ -336,84 +204,33 @@ func (en *en_AG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_AG'
++func (en *en_AG) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_AG'
+-func (en *en_AG) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_AG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_AG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_AG) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_AG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_AG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_AG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_AG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_AI/en_AI.go b/en_AI/en_AI.go
+index 3daf091..8793b1c 100644
+--- a/en_AI/en_AI.go
++++ b/en_AI/en_AI.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_AI struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_AI' locale
+ func New() locales.Translator {
+ return &en_AI{
+- locale: "en_AI",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "$", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"ECT": "Ecuador Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "UYST": "Uruguay Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "HAT": "Newfoundland Daylight Time", "NZST": "New Zealand Standard Time", "∅∅∅": "Amazon Summer Time", "GFT": "French Guiana Time", "GYT": "Guyana Time", "VET": "Venezuela Time", "BT": "Bhutan Time", "HEOG": "West Greenland Summer Time", "OESZ": "Eastern European Summer Time", "COST": "Colombia Summer Time", "MDT": "Macau Summer Time", "ADT": "Atlantic Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "WART": "Western Argentina Standard Time", "ACST": "Australian Central Standard Time", "WIT": "Eastern Indonesia Time", "AEST": "Australian Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "WITA": "Central Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "ACDT": "Australian Central Daylight Time", "EST": "Eastern Standard Time", "UYT": "Uruguay Standard Time", "WEZ": "Western European Standard Time", "AWST": "Australian Western Standard Time", "HKT": "Hong Kong Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MEZ": "Central European Standard Time", "PDT": "Pacific Daylight Time", "ACWST": "Australian Central Western Standard Time", "IST": "India Standard Time", "CLT": "Chile Standard Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "WARST": "Western Argentina Summer Time", "HECU": "Cuba Daylight Time", "HKST": "Hong Kong Summer Time", "MESZ": "Central European Summer Time", "SAST": "South Africa Standard Time", "PST": "Pacific Standard Time", "ACWDT": "Australian Central Western Daylight Time", "CHAST": "Chatham Standard Time", "COT": "Colombia Standard Time", "SGT": "Singapore Standard Time", "CST": "Central Standard Time", "HNOG": "West Greenland Standard Time", "MST": "Macau Standard Time", "HNPMX": "Mexican Pacific Standard Time", "JDT": "Japan Daylight Time", "TMST": "Turkmenistan Summer Time", "ChST": "Chamorro Standard Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HNCU": "Cuba Standard Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "CDT": "Central Daylight Time", "WIB": "Western Indonesia Time", "ARST": "Argentina Summer Time", "JST": "Japan Standard Time", "HNEG": "East Greenland Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "ART": "Argentina Standard Time", "HNT": "Newfoundland Standard Time", "AST": "Atlantic Standard Time", "MYT": "Malaysia Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "CHADT": "Chatham Daylight Time", "CLST": "Chile Summer Time", "TMT": "Turkmenistan Standard Time", "HEEG": "East Greenland Summer Time", "EAT": "East Africa Time", "WAST": "West Africa Summer Time", "AKST": "Alaska Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "EDT": "Eastern Daylight Time", "WESZ": "Western European Summer Time", "AKDT": "Alaska Daylight Time", "SRT": "Suriname Time"},
++ locale: "en_AI",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "$", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WESZ": "WESZ", "HNCU": "HNCU", "HNPMX": "HNPMX", "CLST": "CLST", "SRT": "SRT", "WEZ": "WEZ", "PDT": "PDT", "ACWDT": "ACWDT", "CHADT": "CHADT", "WAST": "WAST", "HNT": "HNT", "WARST": "WARST", "WIT": "WIT", "PST": "PST", "GYT": "GYT", "CLT": "CLT", "NZST": "NZST", "SAST": "SAST", "AEDT": "AEDT", "SGT": "SGT", "HECU": "HECU", "HNOG": "HNOG", "ART": "ART", "BOT": "BOT", "BT": "BT", "JDT": "JDT", "AEST": "AEST", "CHAST": "CHAST", "OESZ": "OESZ", "GFT": "GFT", "MDT": "MDT", "EAT": "EAT", "MESZ": "MESZ", "COST": "COST", "CAT": "CAT", "WITA": "WITA", "ADT": "ADT", "HNPM": "HNPM", "IST": "IST", "ACWST": "ACWST", "HEPM": "HEPM", "HNNOMX": "HNNOMX", "MYT": "MYT", "HEPMX": "HEPMX", "HKST": "HKST", "ECT": "ECT", "AST": "AST", "HAST": "HAST", "MEZ": "MEZ", "LHDT": "LHDT", "NZDT": "NZDT", "WIB": "WIB", "HNEG": "HNEG", "UYST": "UYST", "AKST": "AKST", "EST": "EST", "TMST": "TMST", "CST": "CST", "GMT": "GMT", "JST": "JST", "LHST": "LHST", "UYT": "UYT", "VET": "VET", "HAT": "HAT", "COT": "COT", "HKT": "HKT", "ChST": "ChST", "AWDT": "AWDT", "AWST": "AWST", "∅∅∅": "∅∅∅", "ACDT": "ACDT", "WAT": "WAT", "AKDT": "AKDT", "EDT": "EDT", "ARST": "ARST", "HENOMX": "HENOMX", "WART": "WART", "HEEG": "HEEG", "HEOG": "HEOG", "HADT": "HADT", "OEZ": "OEZ", "TMT": "TMT", "CDT": "CDT", "MST": "MST", "ACST": "ACST"},
+ }
+ }
+ 
+@@ -112,8 +89,8 @@ func (en *en_AI) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_AI) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
++ nMod10 := math.Mod(n, 10)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +115,7 @@ func (en *en_AI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_AI) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_AI) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_AI) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_AI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_AI) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_AI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_AI' and handles both Whole and Real numbers based on 'v'
+ func (en *en_AI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_AI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_AI) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_AI'
+@@ -278,56 +195,7 @@ func (en *en_AI) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_AI'
+@@ -336,84 +204,33 @@ func (en *en_AI) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_AI'
++func (en *en_AI) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_AI'
+-func (en *en_AI) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_AI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_AI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_AI) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_AS/en_AS.go b/en_AS/en_AS.go
+index 5d4af08..2ebecec 100644
+--- a/en_AS/en_AS.go
++++ b/en_AS/en_AS.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_AS struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_AS' locale
+ func New() locales.Translator {
+ return &en_AS{
+- locale: "en_AS",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"GMT": "Greenwich Mean Time", "UYT": "Uruguay Standard Time", "CDT": "Central Daylight Time", "CHAST": "Chatham Standard Time", "CLT": "Chile Standard Time", "OESZ": "Eastern European Summer Time", "HNCU": "Cuba Standard Time", "WEZ": "Western European Standard Time", "ARST": "Argentina Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SGT": "Singapore Standard Time", "AEST": "Australian Eastern Standard Time", "BT": "Bhutan Time", "AWDT": "Australian Western Daylight Time", "SAST": "South Africa Standard Time", "IST": "India Standard Time", "ACDT": "Australian Central Daylight Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "VET": "Venezuela Time", "HKST": "Hong Kong Summer Time", "WIT": "Eastern Indonesia Time", "HNOG": "West Greenland Standard Time", "NZDT": "New Zealand Daylight Time", "CAT": "Central Africa Time", "EAT": "East Africa Time", "EDT": "Eastern Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HAT": "Newfoundland Daylight Time", "LHDT": "Lord Howe Daylight Time", "MESZ": "Central European Summer Time", "CLST": "Chile Summer Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "COT": "Colombia Standard Time", "AKST": "Alaska Standard Time", "MEZ": "Central European Standard Time", "JST": "Japan Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "ADT": "Atlantic Daylight Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "AKDT": "Alaska Daylight Time", "∅∅∅": "Amazon Summer Time", "JDT": "Japan Daylight Time", "BOT": "Bolivia Time", "WAST": "West Africa Summer Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time", "SRT": "Suriname Time", "PDT": "Pacific Daylight Time", "WESZ": "Western European Summer Time", "ACWDT": "Australian Central Western Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "PST": "Pacific Standard Time", "ART": "Argentina Standard Time", "MST": "Macau Standard Time", "CST": "Central Standard Time", "HKT": "Hong Kong Standard Time", "GFT": "French Guiana Time", "HECU": "Cuba Daylight Time", "GYT": "Guyana Time", "HEOG": "West Greenland Summer Time", "ACWST": "Australian Central Western Standard Time", "HNT": "Newfoundland Standard Time", "ChST": "Chamorro Standard Time", "HNEG": "East Greenland Standard Time", "TMT": "Turkmenistan Standard Time", "ACST": "Australian Central Standard Time", "EST": "Eastern Standard Time", "MYT": "Malaysia Time", "HEEG": "East Greenland Summer Time", "TMST": "Turkmenistan Summer Time", "OEZ": "Eastern European Standard Time", "ECT": "Ecuador Time", "UYST": "Uruguay Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MDT": "Macau Summer Time", "AST": "Atlantic Standard Time", "WIB": "Western Indonesia Time", "AWST": "Australian Western Standard Time", "WITA": "Central Indonesia Time", "CHADT": "Chatham Daylight Time"},
++ locale: "en_AS",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AEST": "AEST", "AKST": "AKST", "CAT": "CAT", "MESZ": "MESZ", "AWST": "AWST", "PDT": "PDT", "CHADT": "CHADT", "OESZ": "OESZ", "WARST": "WARST", "BOT": "BOT", "ACDT": "ACDT", "BT": "BT", "HEPMX": "HEPMX", "TMT": "TMT", "HENOMX": "HENOMX", "ChST": "ChST", "HAST": "HAST", "AEDT": "AEDT", "HNCU": "HNCU", "HEOG": "HEOG", "TMST": "TMST", "GMT": "GMT", "HEPM": "HEPM", "ACWDT": "ACWDT", "WESZ": "WESZ", "GYT": "GYT", "WITA": "WITA", "NZST": "NZST", "HNNOMX": "HNNOMX", "UYST": "UYST", "WIT": "WIT", "∅∅∅": "∅∅∅", "AST": "AST", "MYT": "MYT", "JDT": "JDT", "IST": "IST", "EDT": "EDT", "LHDT": "LHDT", "WEZ": "WEZ", "AKDT": "AKDT", "WAST": "WAST", "HKT": "HKT", "PST": "PST", "ECT": "ECT", "COT": "COT", "MST": "MST", "ADT": "ADT", "MDT": "MDT", "HNEG": "HNEG", "HEEG": "HEEG", "ACWST": "ACWST", "VET": "VET", "HNOG": "HNOG", "HKST": "HKST", "EST": "EST", "EAT": "EAT", "HECU": "HECU", "WART": "WART", "NZDT": "NZDT", "ART": "ART", "HADT": "HADT", "CHAST": "CHAST", "HNPMX": "HNPMX", "OEZ": "OEZ", "HAT": "HAT", "CLST": "CLST", "SRT": "SRT", "SGT": "SGT", "GFT": "GFT", "HNT": "HNT", "SAST": "SAST", "HNPM": "HNPM", "JST": "JST", "MEZ": "MEZ", "LHST": "LHST", "WAT": "WAT", "COST": "COST", "CLT": "CLT", "CDT": "CDT", "ARST": "ARST", "ACST": "ACST", "AWDT": "AWDT", "UYT": "UYT", "WIB": "WIB", "CST": "CST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_AS) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_AS) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_AS) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_AS) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_AS) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_AS) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_AS) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_AS' and handles both Whole and Real numbers based on 'v'
+ func (en *en_AS) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_AS' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_AS) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_AS'
+@@ -278,56 +195,7 @@ func (en *en_AS) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_AS'
+@@ -336,68 +204,7 @@ func (en *en_AS) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_AS'
+@@ -405,15 +212,15 @@ func (en *en_AS) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x2f}...)
++ b = strconv.AppendInt(b, int64(t.Month()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +231,14 @@ func (en *en_AS) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
++ b = append(b, []byte{0x20}...)
++ b = append(b, en.monthsAbbreviated[t.Month()]...)
++ b = append(b, []byte{0x2c}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +254,14 @@ func (en *en_AS) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +279,15 @@ func (en *en_AS) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,13 +303,11 @@ func (en *en_AS) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -497,13 +315,6 @@ func (en *en_AS) FmtTimeShort(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -513,13 +324,11 @@ func (en *en_AS) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -534,13 +343,6 @@ func (en *en_AS) FmtTimeMedium(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -550,13 +352,11 @@ func (en *en_AS) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -573,14 +373,6 @@ func (en *en_AS) FmtTimeLong(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ b = append(b, tz...)
+ 
+@@ -592,13 +384,11 @@ func (en *en_AS) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -615,14 +405,6 @@ func (en *en_AS) FmtTimeFull(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ 
+ if btz, ok := en.timezones[tz]; ok {
+diff --git a/en_AT/en_AT.go b/en_AT/en_AT.go
+index fda344e..e512c84 100644
+--- a/en_AT/en_AT.go
++++ b/en_AT/en_AT.go
+@@ -49,31 +49,12 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{2, 6},
+ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+ pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ percentSuffix: " ",
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"WAST": "West Africa Summer Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "HKST": "Hong Kong Summer Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "HNT": "Newfoundland Standard Time", "MESZ": "Central European Summer Time", "TMST": "Turkmenistan Summer Time", "HEEG": "East Greenland Summer Time", "WARST": "Western Argentina Summer Time", "COT": "Colombia Standard Time", "ARST": "Argentina Summer Time", "ACWDT": "Australian Central Western Daylight Time", "NZDT": "New Zealand Daylight Time", "MDT": "Macau Summer Time", "UYT": "Uruguay Standard Time", "WESZ": "Western European Summer Time", "AEST": "Australian Eastern Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MEZ": "Central European Standard Time", "HNCU": "Cuba Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "GMT": "Greenwich Mean Time", "BT": "Bhutan Time", "HAT": "Newfoundland Daylight Time", "AWDT": "Australian Western Daylight Time", "ChST": "Chamorro Standard Time", "EAT": "East Africa Time", "HNPMX": "Mexican Pacific Standard Time", "PST": "Pacific Standard Time", "AEDT": "Australian Eastern Daylight Time", "BOT": "Bolivia Time", "HENOMX": "Northwest Mexico Daylight Time", "ART": "Argentina Standard Time", "WITA": "Central Indonesia Time", "ACST": "Australian Central Standard Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "EDT": "Eastern Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "AKST": "Alaska Standard Time", "JST": "Japan Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CLST": "Chile Summer Time", "ECT": "Ecuador Time", "SGT": "Singapore Standard Time", "MST": "Macau Standard Time", "GYT": "Guyana Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "∅∅∅": "Peru Summer Time", "WAT": "West Africa Standard Time", "NZST": "New Zealand Standard Time", "IST": "India Standard Time", "WART": "Western Argentina Standard Time", "AKDT": "Alaska Daylight Time", "HNOG": "West Greenland Standard Time", "LHST": "Lord Howe Standard Time", "CHAST": "Chatham Standard Time", "EST": "Eastern Standard Time", "ADT": "Atlantic Daylight Time", "WIB": "Western Indonesia Time", "SRT": "Suriname Time", "HEOG": "West Greenland Summer Time", "LHDT": "Lord Howe Daylight Time", "GFT": "French Guiana Time", "CAT": "Central Africa Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "JDT": "Japan Daylight Time", "CLT": "Chile Standard Time", "COST": "Colombia Summer Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "WIT": "Eastern Indonesia Time", "ACWST": "Australian Central Western Standard Time", "HKT": "Hong Kong Standard Time", "TMT": "Turkmenistan Standard Time", "ACDT": "Australian Central Daylight Time", "AST": "Atlantic Standard Time", "VET": "Venezuela Time", "AWST": "Australian Western Standard Time", "HNEG": "East Greenland Standard Time", "HECU": "Cuba Daylight Time"},
++ timezones: map[string]string{"UYST": "UYST", "HNPMX": "HNPMX", "AKDT": "AKDT", "SAST": "SAST", "HNPM": "HNPM", "ART": "ART", "AST": "AST", "HNEG": "HNEG", "JST": "JST", "LHDT": "LHDT", "ACWDT": "ACWDT", "AEDT": "AEDT", "CST": "CST", "COT": "COT", "HEEG": "HEEG", "AEST": "AEST", "VET": "VET", "WART": "WART", "WIT": "WIT", "EST": "EST", "TMT": "TMT", "MEZ": "MEZ", "IST": "IST", "MST": "MST", "AWDT": "AWDT", "ACDT": "ACDT", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "HECU": "HECU", "HNOG": "HNOG", "ChST": "ChST", "MDT": "MDT", "HAST": "HAST", "MESZ": "MESZ", "WAT": "WAT", "GFT": "GFT", "COST": "COST", "HKT": "HKT", "WIB": "WIB", "NZST": "NZST", "GMT": "GMT", "ACST": "ACST", "ACWST": "ACWST", "AKST": "AKST", "OEZ": "OEZ", "GYT": "GYT", "CDT": "CDT", "CLST": "CLST", "HENOMX": "HENOMX", "WEZ": "WEZ", "CLT": "CLT", "EAT": "EAT", "BOT": "BOT", "JDT": "JDT", "HAT": "HAT", "WARST": "WARST", "WITA": "WITA", "NZDT": "NZDT", "PDT": "PDT", "PST": "PST", "HEOG": "HEOG", "ADT": "ADT", "UYT": "UYT", "BT": "BT", "HNT": "HNT", "TMST": "TMST", "HEPM": "HEPM", "ARST": "ARST", "SRT": "SRT", "LHST": "LHST", "WAST": "WAST", "CAT": "CAT", "ECT": "ECT", "HNNOMX": "HNNOMX", "CHAST": "CHAST", "WESZ": "WESZ", "HKST": "HKST", "HADT": "HADT", "MYT": "MYT", "CHADT": "CHADT", "HEPMX": "HEPMX", "SGT": "SGT", "OESZ": "OESZ", "EDT": "EDT", "AWST": "AWST"},
+ }
+ }
+ 
+@@ -114,8 +95,8 @@ func (en *en_AT) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_AT) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
++ nMod10 := math.Mod(n, 10)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -140,7 +121,7 @@ func (en *en_AT) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_AT) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -150,7 +131,7 @@ func (en *en_AT) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_AT) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -160,7 +141,7 @@ func (en *en_AT) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_AT) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -206,49 +187,14 @@ func (en *en_AT) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_AT' and handles both Whole and Real numbers based on 'v'
+ func (en *en_AT) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_AT' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_AT) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
++ l := len(s) + 2
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -282,7 +228,7 @@ func (en *en_AT) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -344,7 +290,7 @@ func (en *en_AT) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -417,17 +363,6 @@ func (en *en_AT) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -436,17 +371,6 @@ func (en *en_AT) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -455,17 +379,6 @@ func (en *en_AT) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -474,19 +387,6 @@ func (en *en_AT) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -495,28 +395,6 @@ func (en *en_AT) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -525,35 +403,6 @@ func (en *en_AT) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -562,40 +411,6 @@ func (en *en_AT) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -604,44 +419,5 @@ func (en *en_AT) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_AU/en_AU.go b/en_AU/en_AU.go
+index 65c3426..3aff346 100644
+--- a/en_AU/en_AU.go
++++ b/en_AU/en_AU.go
+@@ -10,68 +10,52 @@ import (
+ )
+ 
+ type en_AU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_AU' locale
+ func New() locales.Translator {
+ return &en_AU{
+- locale: "en_AU",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "$", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "Tk", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "$b", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "₱", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "£", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "Kr", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "Gs", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "Rs", "SDD", "SDG", "SDP", "Kr", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "$U", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "CFP", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan.", "Feb.", "Mar.", "Apr.", "May", "Jun.", "Jul.", "Aug.", "Sep.", "Oct.", "Nov.", "Dec."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun.", "Mon.", "Tue.", "Wed.", "Thu.", "Fri.", "Sat."},
+- daysNarrow: []string{"Su.", "M.", "Tu.", "W.", "Th.", "F.", "Sa."},
+- daysShort: []string{"Su.", "Mon.", "Tu.", "Wed.", "Th.", "Fri.", "Sat."},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"am", "pm"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"ChST": "Chamorro Standard Time", "COT": "Colombia Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AST": "Atlantic Standard Time", "PST": "Pacific Standard Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "CDT": "Central Daylight Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "SAST": "South Africa Standard Time", "LHST": "Lord Howe Standard Time", "GMT": "Greenwich Mean Time", "HAST": "Hawaii-Aleutian Standard Time", "WEZ": "Western European Standard Time", "AEDT": "Australian Eastern Daylight Time", "AWST": "Australian Western Standard Time", "MEZ": "Central European Standard Time", "∅∅∅": "Amazon Summer Time", "OESZ": "Eastern European Summer Time", "HECU": "Cuba Daylight Time", "ADT": "Atlantic Daylight Time", "HNT": "Newfoundland Standard Time", "WITA": "Central Indonesia Time", "CHAST": "Chatham Standard Time", "ARST": "Argentina Summer Time", "MYT": "Malaysia Time", "WIB": "Western Indonesia Time", "HNOG": "West Greenland Standard Time", "CLST": "Chile Summer Time", "WAST": "West Africa Summer Time", "BOT": "Bolivia Time", "WARST": "Western Argentina Summer Time", "SRT": "Suriname Time", "ART": "Argentina Standard Time", "AWDT": "Australian Western Daylight Time", "CHADT": "Chatham Daylight Time", "CST": "Central Standard Time", "WAT": "West Africa Standard Time", "COST": "Colombia Summer Time", "EDT": "Eastern Daylight Time", "AKDT": "Alaska Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "JDT": "Japan Summer Time", "ACDT": "Australian Central Daylight Time", "JST": "Japan Standard Time", "CLT": "Chile Standard Time", "EAT": "Eastern Africa Time", "SGT": "Singapore Standard Time", "HKT": "Hong Kong Standard Time", "HKST": "Hong Kong Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "PDT": "Pacific Daylight Time", "MDT": "Macau Summer Time", "WIT": "Eastern Indonesia Time", "BT": "Bhutan Time", "HEOG": "West Greenland Summer Time", "ACST": "Australian Central Standard Time", "MST": "Macau Standard Time", "WESZ": "Western European Summer Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "TMST": "Turkmenistan Summer Time", "ECT": "Ecuador Time", "HEPMX": "Mexican Pacific Daylight Time", "AKST": "Alaska Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "MESZ": "Central European Summer Time", "ACWST": "Australian Central Western Standard Time", "HNCU": "Cuba Standard Time", "GYT": "Guyana Time", "NZST": "New Zealand Standard Time", "OEZ": "Eastern European Standard Time", "TMT": "Turkmenistan Standard Time", "CAT": "Central Africa Time", "HENOMX": "Northwest Mexico Daylight Time", "WART": "Western Argentina Standard Time", "EST": "Eastern Standard Time", "UYT": "Uruguay Standard Time", "LHDT": "Lord Howe Daylight Time", "HNEG": "East Greenland Standard Time", "UYST": "Uruguay Summer Time", "VET": "Venezuela Time"},
++ locale: "en_AU",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "$", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "Tk", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "$b", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "₱", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "£", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "Kr", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "Gs", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "Rs", "SDD", "SDG", "SDP", "Kr", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "$U", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "CFP", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "Jan.", "Feb.", "Mar.", "Apr.", "May", "Jun.", "Jul.", "Aug.", "Sep.", "Oct.", "Nov.", "Dec."},
++ daysAbbreviated: []string{"Sun.", "Mon.", "Tue.", "Wed.", "Thu.", "Fri.", "Sat."},
++ daysNarrow: []string{"Su.", "M.", "Tu.", "W.", "Th.", "F.", "Sa."},
++ daysShort: []string{"Su.", "Mon.", "Tu.", "Wed.", "Th.", "Fri.", "Sat."},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsNarrow: []string{"am", "pm"},
++ periodsWide: []string{"am", "pm"},
++ timezones: map[string]string{"AKST": "AKST", "ACDT": "Australian Central Daylight Time", "LHST": "LHST", "JDT": "Japan Summer Time", "SGT": "SGT", "WAT": "WAT", "OESZ": "OESZ", "SAST": "SAST", "HKT": "HKT", "CDT": "CDT", "ADT": "ADT", "ART": "ART", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "MST": "MST", "ChST": "ChST", "JST": "Japan Standard Time", "ACWST": "ACWST", "HEOG": "HEOG", "AST": "AST", "HNEG": "HNEG", "HEPMX": "HEPMX", "WAST": "WAST", "HAT": "HAT", "EST": "EST", "TMT": "TMT", "UYST": "UYST", "AEDT": "Australian Eastern Daylight Time", "HNPMX": "HNPMX", "AKDT": "AKDT", "WART": "WART", "HEEG": "HEEG", "PST": "PST", "AWDT": "Australian Western Daylight Time", "WESZ": "WESZ", "WARST": "WARST", "AEST": "Australian Eastern Standard Time", "CLT": "CLT", "WITA": "WITA", "MDT": "MDT", "LHDT": "LHDT", "PDT": "PDT", "MEZ": "MEZ", "MESZ": "MESZ", "HECU": "HECU", "GFT": "GFT", "MYT": "MYT", "BT": "BT", "COST": "COST", "TMST": "TMST", "GYT": "GYT", "HKST": "HKST", "CLST": "CLST", "NZDT": "NZDT", "ECT": "ECT", "WIB": "WIB", "AWST": "Australian Western Standard Time", "HNOG": "HNOG", "BOT": "BOT", "SRT": "SRT", "EAT": "Eastern Africa Time", "HNPM": "HNPM", "WIT": "WIT", "CHADT": "CHADT", "UYT": "UYT", "IST": "IST", "CAT": "CAT", "GMT": "GMT", "HAST": "HAST", "ACST": "Australian Central Standard Time", "CHAST": "CHAST", "WEZ": "WEZ", "HNCU": "HNCU", "COT": "COT", "HNT": "HNT", "CST": "CST", "NZST": "NZST", "ARST": "ARST", "HEPM": "HEPM", "VET": "VET", "∅∅∅": "∅∅∅", "HADT": "HADT", "HENOMX": "HENOMX", "OEZ": "OEZ", "EDT": "EDT"},
+ }
+ }
+ 
+@@ -112,8 +96,8 @@ func (en *en_AU) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_AU) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
++ nMod10 := math.Mod(n, 10)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -148,7 +132,7 @@ func (en *en_AU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_AU) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +142,7 @@ func (en *en_AU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_AU) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +188,13 @@ func (en *en_AU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_AU' and handles both Whole and Real numbers based on 'v'
+ func (en *en_AU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_AU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_AU) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_AU'
+@@ -278,56 +202,7 @@ func (en *en_AU) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_AU'
+@@ -336,68 +211,7 @@ func (en *en_AU) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_AU'
+@@ -424,17 +238,6 @@ func (en *en_AU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +246,6 @@ func (en *en_AU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,19 +254,6 @@ func (en *en_AU) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -483,13 +262,11 @@ func (en *en_AU) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -497,13 +274,6 @@ func (en *en_AU) FmtTimeShort(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -513,13 +283,11 @@ func (en *en_AU) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -534,13 +302,6 @@ func (en *en_AU) FmtTimeMedium(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -550,13 +311,11 @@ func (en *en_AU) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -573,14 +332,6 @@ func (en *en_AU) FmtTimeLong(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ b = append(b, tz...)
+ 
+@@ -592,13 +343,11 @@ func (en *en_AU) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -615,14 +364,6 @@ func (en *en_AU) FmtTimeFull(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ 
+ if btz, ok := en.timezones[tz]; ok {
+diff --git a/en_BB/en_BB.go b/en_BB/en_BB.go
+index 9cb4aaa..b461b43 100644
+--- a/en_BB/en_BB.go
++++ b/en_BB/en_BB.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_BB struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_BB' locale
+ func New() locales.Translator {
+ return &en_BB{
+- locale: "en_BB",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "$", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HADT": "Hawaii-Aleutian Daylight Time", "WEZ": "Western European Standard Time", "HEEG": "East Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "CAT": "Central Africa Time", "HEPMX": "Mexican Pacific Daylight Time", "WARST": "Western Argentina Summer Time", "WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time", "WITA": "Central Indonesia Time", "TMST": "Turkmenistan Summer Time", "WAST": "West Africa Summer Time", "OESZ": "Eastern European Summer Time", "ECT": "Ecuador Time", "HNCU": "Cuba Standard Time", "CDT": "Central Daylight Time", "HKST": "Hong Kong Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "AKDT": "Alaska Daylight Time", "AST": "Atlantic Standard Time", "MDT": "Mountain Daylight Time", "HKT": "Hong Kong Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CLST": "Chile Summer Time", "SGT": "Singapore Standard Time", "HECU": "Cuba Daylight Time", "CST": "Central Standard Time", "HAT": "Newfoundland Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "EST": "Eastern Standard Time", "OEZ": "Eastern European Standard Time", "MST": "Mountain Standard Time", "SRT": "Suriname Time", "ARST": "Argentina Summer Time", "MESZ": "Central European Summer Time", "JST": "Japan Standard Time", "HNEG": "East Greenland Standard Time", "EAT": "East Africa Time", "PDT": "Pacific Daylight Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "ChST": "Chamorro Standard Time", "UYT": "Uruguay Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HNT": "Newfoundland Standard Time", "HEOG": "West Greenland Summer Time", "SAST": "South Africa Standard Time", "ACST": "Australian Central Standard Time", "ACDT": "Australian Central Daylight Time", "VET": "Venezuela Time", "AEDT": "Australian Eastern Daylight Time", "AWST": "Australian Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "∅∅∅": "Amazon Summer Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "GYT": "Guyana Time", "AEST": "Australian Eastern Standard Time", "LHDT": "Lord Howe Daylight Time", "CHADT": "Chatham Daylight Time", "WART": "Western Argentina Standard Time", "COT": "Colombia Standard Time", "COST": "Colombia Summer Time", "AKST": "Alaska Standard Time", "ACWST": "Australian Central Western Standard Time", "HNOG": "West Greenland Standard Time", "IST": "India Standard Time", "JDT": "Japan Daylight Time", "MEZ": "Central European Standard Time", "GMT": "Greenwich Mean Time", "WIB": "Western Indonesia Time", "PST": "Pacific Standard Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "WAT": "West Africa Standard Time", "EDT": "Eastern Daylight Time", "ADT": "Atlantic Daylight Time", "BT": "Bhutan Time", "ART": "Argentina Standard Time", "CLT": "Chile Standard Time", "MYT": "Malaysia Time", "HNPMX": "Mexican Pacific Standard Time", "UYST": "Uruguay Summer Time"},
++ locale: "en_BB",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "$", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEEG": "HEEG", "AWDT": "AWDT", "CDT": "CDT", "ADT": "ADT", "GMT": "GMT", "ACDT": "ACDT", "BT": "BT", "CHAST": "CHAST", "WESZ": "WESZ", "WART": "WART", "NZST": "NZST", "NZDT": "NZDT", "ARST": "ARST", "UYT": "UYT", "SGT": "SGT", "AKDT": "AKDT", "HAT": "HAT", "TMT": "TMT", "PDT": "PDT", "WEZ": "WEZ", "TMST": "TMST", "ART": "ART", "MESZ": "MESZ", "HENOMX": "HENOMX", "HEOG": "HEOG", "LHDT": "LHDT", "HEPMX": "HEPMX", "OESZ": "OESZ", "EST": "EST", "WIB": "WIB", "ACST": "ACST", "AWST": "AWST", "ACWDT": "ACWDT", "HNNOMX": "HNNOMX", "JST": "JST", "VET": "VET", "HECU": "HECU", "GFT": "GFT", "WARST": "WARST", "HKT": "HKT", "ChST": "ChST", "BOT": "BOT", "EAT": "EAT", "HEPM": "HEPM", "JDT": "JDT", "WIT": "WIT", "HNOG": "HNOG", "∅∅∅": "∅∅∅", "MDT": "MDT", "IST": "IST", "HNEG": "HNEG", "ACWST": "ACWST", "COT": "COT", "COST": "COST", "MST": "MST", "LHST": "LHST", "CLST": "CLST", "HNCU": "HNCU", "CHADT": "CHADT", "HNPMX": "HNPMX", "HNT": "HNT", "EDT": "EDT", "ECT": "ECT", "HADT": "HADT", "MYT": "MYT", "UYST": "UYST", "WAT": "WAT", "CLT": "CLT", "WITA": "WITA", "AST": "AST", "AEDT": "AEDT", "GYT": "GYT", "HKST": "HKST", "CAT": "CAT", "CST": "CST", "SRT": "SRT", "HAST": "HAST", "MEZ": "MEZ", "HNPM": "HNPM", "WAST": "WAST", "AKST": "AKST", "OEZ": "OEZ", "SAST": "SAST", "PST": "PST", "AEST": "AEST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_BB) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_BB) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_BB) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_BB) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_BB) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_BB) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_BB) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_BB' and handles both Whole and Real numbers based on 'v'
+ func (en *en_BB) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_BB' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_BB) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_BB'
+@@ -278,56 +195,7 @@ func (en *en_BB) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_BB'
+@@ -336,84 +204,33 @@ func (en *en_BB) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_BB'
++func (en *en_BB) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_BB'
+-func (en *en_BB) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_BB) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_BB) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_BB) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_BB) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_BB) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_BB) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_BB) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_BE/en_BE.go b/en_BE/en_BE.go
+index 8cb9c23..2c04fbd 100644
+--- a/en_BE/en_BE.go
++++ b/en_BE/en_BE.go
+@@ -50,28 +50,13 @@ func New() locales.Translator {
+ pluralsRange: []locales.PluralRule{6},
+ decimal: ",",
+ group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositiveSuffix: " ",
+ currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+ periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+ periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HEEG": "East Greenland Summer Time", "ECT": "Ecuador Time", "GMT": "Greenwich Mean Time", "HAST": "Hawaii-Aleutian Standard Time", "ACDT": "Australian Central Daylight Time", "EDT": "Eastern Daylight Time", "MDT": "Macau Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "AEST": "Australian Eastern Standard Time", "WART": "Western Argentina Standard Time", "COST": "Colombia Summer Time", "HNCU": "Cuba Standard Time", "WIB": "Western Indonesia Time", "ART": "Argentina Standard Time", "CLST": "Chile Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HAT": "Newfoundland Daylight Time", "AWDT": "Australian Western Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "JST": "Japan Standard Time", "OESZ": "Eastern European Summer Time", "COT": "Colombia Standard Time", "MYT": "Malaysia Time", "HADT": "Hawaii-Aleutian Daylight Time", "MESZ": "Central European Summer Time", "NZDT": "New Zealand Daylight Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "HNPMX": "Mexican Pacific Standard Time", "AKST": "Alaska Standard Time", "HEOG": "West Greenland Summer Time", "GFT": "French Guiana Time", "ADT": "Atlantic Daylight Time", "HKT": "Hong Kong Standard Time", "LHDT": "Lord Howe Daylight Time", "WAT": "West Africa Standard Time", "MST": "Macau Standard Time", "CDT": "Central Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "CST": "Central Standard Time", "ARST": "Argentina Summer Time", "HNEG": "East Greenland Standard Time", "ACST": "Australian Central Standard Time", "WARST": "Western Argentina Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "HECU": "Cuba Daylight Time", "HNOG": "West Greenland Standard Time", "PDT": "Pacific Daylight Time", "WITA": "Central Indonesia Time", "AEDT": "Australian Eastern Daylight Time", "IST": "India Standard Time", "CHAST": "Chatham Standard Time", "MEZ": "Central European Standard Time", "OEZ": "Eastern European Standard Time", "WAST": "West Africa Summer Time", "UYT": "Uruguay Standard Time", "AKDT": "Alaska Daylight Time", "WIT": "Eastern Indonesia Time", "AWST": "Australian Western Standard Time", "GYT": "Guyana Time", "WEZ": "Western European Standard Time", "CHADT": "Chatham Daylight Time", "LHST": "Lord Howe Standard Time", "JDT": "Japan Daylight Time", "CLT": "Chile Standard Time", "BT": "Bhutan Time", "SRT": "Suriname Time", "PST": "Pacific Standard Time", "ACWST": "Australian Central Western Standard Time", "UYST": "Uruguay Summer Time", "VET": "Venezuela Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "ChST": "Chamorro Standard Time", "∅∅∅": "Peru Summer Time", "EAT": "East Africa Time", "EST": "Eastern Standard Time", "HNT": "Newfoundland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "AST": "Atlantic Standard Time", "WESZ": "Western European Summer Time", "HKST": "Hong Kong Summer Time", "NZST": "New Zealand Standard Time"},
++ timezones: map[string]string{"UYST": "UYST", "AKDT": "AKDT", "GYT": "GYT", "COT": "COT", "HKT": "HKT", "TMT": "TMT", "SRT": "SRT", "ACWDT": "ACWDT", "WESZ": "WESZ", "COST": "COST", "EST": "EST", "ECT": "ECT", "LHDT": "LHDT", "HADT": "HADT", "ACWST": "ACWST", "AEDT": "AEDT", "HECU": "HECU", "WART": "WART", "WARST": "WARST", "WIT": "WIT", "WITA": "WITA", "GMT": "GMT", "PST": "PST", "∅∅∅": "∅∅∅", "SGT": "SGT", "HNT": "HNT", "MEZ": "MEZ", "HENOMX": "HENOMX", "AWST": "AWST", "JDT": "JDT", "IST": "IST", "CHAST": "CHAST", "VET": "VET", "EDT": "EDT", "ART": "ART", "GFT": "GFT", "HNOG": "HNOG", "HNPMX": "HNPMX", "MESZ": "MESZ", "HNPM": "HNPM", "BT": "BT", "HEOG": "HEOG", "CST": "CST", "BOT": "BOT", "CAT": "CAT", "NZST": "NZST", "NZDT": "NZDT", "WAT": "WAT", "LHST": "LHST", "ARST": "ARST", "MYT": "MYT", "PDT": "PDT", "TMST": "TMST", "ChST": "ChST", "HAST": "HAST", "HNEG": "HNEG", "AWDT": "AWDT", "HEPM": "HEPM", "AKST": "AKST", "OESZ": "OESZ", "SAST": "SAST", "ADT": "ADT", "ACST": "ACST", "JST": "JST", "UYT": "UYT", "WEZ": "WEZ", "HEPMX": "HEPMX", "WAST": "WAST", "HAT": "HAT", "AST": "AST", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "OEZ": "OEZ", "HKST": "HKST", "WIB": "WIB", "MDT": "MDT", "ACDT": "ACDT", "CHADT": "CHADT", "CLST": "CLST", "EAT": "EAT", "AEST": "AEST", "CLT": "CLT", "CDT": "CDT", "MST": "MST"},
+ }
+ }
+ 
+@@ -138,7 +123,7 @@ func (en *en_BE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_BE) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +133,7 @@ func (en *en_BE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_BE) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +143,7 @@ func (en *en_BE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_BE) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +189,13 @@ func (en *en_BE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_BE' and handles both Whole and Real numbers based on 'v'
+ func (en *en_BE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_BE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_BE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_BE'
+@@ -278,7 +203,7 @@ func (en *en_BE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -336,7 +261,7 @@ func (en *en_BE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -452,17 +377,6 @@ func (en *en_BE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -471,19 +385,6 @@ func (en *en_BE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/en_BI/en_BI.go b/en_BI/en_BI.go
+index 225240b..cb8fa9e 100644
+--- a/en_BI/en_BI.go
++++ b/en_BI/en_BI.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_BI struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_BI' locale
+ func New() locales.Translator {
+ return &en_BI{
+- locale: "en_BI",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "FBu", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HECU": "Cuba Daylight Time", "MESZ": "Central European Summer Time", "OEZ": "Eastern European Standard Time", "WIB": "Western Indonesia Time", "NZST": "New Zealand Standard Time", "CAT": "Central Africa Time", "∅∅∅": "Peru Summer Time", "GMT": "Greenwich Mean Time", "HEPMX": "Mexican Pacific Daylight Time", "SRT": "Suriname Time", "WEZ": "Western European Standard Time", "ACDT": "Australian Central Daylight Time", "WARST": "Western Argentina Summer Time", "SGT": "Singapore Standard Time", "EDT": "Eastern Daylight Time", "CHAST": "Chatham Standard Time", "BOT": "Bolivia Time", "ACST": "Australian Central Standard Time", "UYST": "Uruguay Summer Time", "ART": "Argentina Standard Time", "MEZ": "Central European Standard Time", "ChST": "Chamorro Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "AKDT": "Alaska Daylight Time", "AST": "Atlantic Standard Time", "ACWST": "Australian Central Western Standard Time", "AEST": "Australian Eastern Standard Time", "SAST": "South Africa Standard Time", "CLT": "Chile Standard Time", "HEEG": "East Greenland Summer Time", "WAST": "West Africa Summer Time", "HEOG": "West Greenland Summer Time", "HKST": "Hong Kong Summer Time", "NZDT": "New Zealand Daylight Time", "TMST": "Turkmenistan Summer Time", "CDT": "Central Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HNOG": "West Greenland Standard Time", "WITA": "Central Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CLST": "Chile Summer Time", "GFT": "French Guiana Time", "ADT": "Atlantic Daylight Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "PST": "Pacific Standard Time", "HAT": "Newfoundland Daylight Time", "CHADT": "Chatham Daylight Time", "ECT": "Ecuador Time", "MST": "Macau Standard Time", "MYT": "Malaysia Time", "JDT": "Japan Daylight Time", "EST": "Eastern Standard Time", "AKST": "Alaska Standard Time", "AEDT": "Australian Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "OESZ": "Eastern European Summer Time", "ACWDT": "Australian Central Western Daylight Time", "HNT": "Newfoundland Standard Time", "HKT": "Hong Kong Standard Time", "LHDT": "Lord Howe Daylight Time", "WIT": "Eastern Indonesia Time", "WAT": "West Africa Standard Time", "UYT": "Uruguay Standard Time", "GYT": "Guyana Time", "BT": "Bhutan Time", "JST": "Japan Standard Time", "EAT": "East Africa Time", "CST": "Central Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "VET": "Venezuela Time", "HNCU": "Cuba Standard Time", "COST": "Colombia Summer Time", "MDT": "Macau Summer Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "WART": "Western Argentina Standard Time", "PDT": "Pacific Daylight Time", "WESZ": "Western European Summer Time", "AWST": "Australian Western Standard Time", "IST": "India Standard Time", "HNEG": "East Greenland Standard Time", "TMT": "Turkmenistan Standard Time", "HNPMX": "Mexican Pacific Standard Time"},
++ locale: "en_BI",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "FBu", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CDT": "CDT", "NZST": "NZST", "MEZ": "MEZ", "HEPM": "HEPM", "OEZ": "OEZ", "HKST": "HKST", "CST": "CST", "PDT": "PDT", "ACWST": "ACWST", "JST": "JST", "BOT": "BOT", "HADT": "HADT", "EAT": "EAT", "PST": "PST", "BT": "BT", "CAT": "CAT", "ECT": "ECT", "SRT": "SRT", "UYT": "UYT", "CHAST": "CHAST", "WIT": "WIT", "ART": "ART", "MYT": "MYT", "MESZ": "MESZ", "AWST": "AWST", "UYST": "UYST", "IST": "IST", "OESZ": "OESZ", "WART": "WART", "SAST": "SAST", "CLT": "CLT", "NZDT": "NZDT", "AEDT": "AEDT", "AKST": "AKST", "GYT": "GYT", "EST": "EST", "TMT": "TMT", "TMST": "TMST", "GMT": "GMT", "ChST": "ChST", "LHDT": "LHDT", "VET": "VET", "COST": "COST", "EDT": "EDT", "WARST": "WARST", "ACWDT": "ACWDT", "WEZ": "WEZ", "AWDT": "AWDT", "WESZ": "WESZ", "MST": "MST", "WIB": "WIB", "∅∅∅": "∅∅∅", "CLST": "CLST", "ADT": "ADT", "HNNOMX": "HNNOMX", "COT": "COT", "HNOG": "HNOG", "HNEG": "HNEG", "LHST": "LHST", "JDT": "JDT", "CHADT": "CHADT", "HEPMX": "HEPMX", "WITA": "WITA", "ARST": "ARST", "HECU": "HECU", "HNPMX": "HNPMX", "GFT": "GFT", "HNT": "HNT", "HNPM": "HNPM", "HNCU": "HNCU", "ACST": "ACST", "ACDT": "ACDT", "HENOMX": "HENOMX", "HAT": "HAT", "AST": "AST", "HAST": "HAST", "MDT": "MDT", "HEEG": "HEEG", "AEST": "AEST", "SGT": "SGT", "WAT": "WAT", "WAST": "WAST", "HEOG": "HEOG", "HKT": "HKT", "AKDT": "AKDT"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_BI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_BI) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_BI) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_BI) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_BI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_BI) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_BI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_BI' and handles both Whole and Real numbers based on 'v'
+ func (en *en_BI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_BI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_BI) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_BI'
+@@ -278,56 +195,7 @@ func (en *en_BI) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_BI'
+@@ -336,68 +204,7 @@ func (en *en_BI) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_BI'
+@@ -405,17 +212,6 @@ func (en *en_BI) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +220,6 @@ func (en *en_BI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +228,6 @@ func (en *en_BI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,19 +236,6 @@ func (en *en_BI) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -483,28 +244,6 @@ func (en *en_BI) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +252,6 @@ func (en *en_BI) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +260,6 @@ func (en *en_BI) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +268,5 @@ func (en *en_BI) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_BM/en_BM.go b/en_BM/en_BM.go
+index 5d8680f..47ce12f 100644
+--- a/en_BM/en_BM.go
++++ b/en_BM/en_BM.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_BM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_BM' locale
+ func New() locales.Translator {
+ return &en_BM{
+- locale: "en_BM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "$", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"AKDT": "Alaska Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "BT": "Bhutan Time", "ECT": "Ecuador Time", "EAT": "East Africa Time", "HNNOMX": "Northwest Mexico Standard Time", "AKST": "Alaska Standard Time", "WIB": "Western Indonesia Time", "HKT": "Hong Kong Standard Time", "HNEG": "East Greenland Standard Time", "WEZ": "Western European Standard Time", "ACWDT": "Australian Central Western Daylight Time", "IST": "India Standard Time", "CDT": "Central Daylight Time", "AEDT": "Australian Eastern Daylight Time", "CLT": "Chile Standard Time", "CAT": "Central Africa Time", "HEPMX": "Mexican Pacific Daylight Time", "UYT": "Uruguay Standard Time", "TMT": "Turkmenistan Standard Time", "ACWST": "Australian Central Western Standard Time", "LHDT": "Lord Howe Daylight Time", "ACST": "Australian Central Standard Time", "WART": "Western Argentina Standard Time", "HECU": "Cuba Daylight Time", "SGT": "Singapore Standard Time", "GYT": "Guyana Time", "ARST": "Argentina Summer Time", "PST": "Pacific Standard Time", "MESZ": "Central European Summer Time", "GFT": "French Guiana Time", "TMST": "Turkmenistan Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "WITA": "Central Indonesia Time", "GMT": "Greenwich Mean Time", "EDT": "Eastern Daylight Time", "ChST": "Chamorro Standard Time", "WAST": "West Africa Summer Time", "COT": "Colombia Standard Time", "ADT": "Atlantic Daylight Time", "PDT": "Pacific Daylight Time", "AEST": "Australian Eastern Standard Time", "AWDT": "Australian Western Daylight Time", "MEZ": "Central European Standard Time", "EST": "Eastern Standard Time", "UYST": "Uruguay Summer Time", "SRT": "Suriname Time", "HNOG": "West Greenland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "BOT": "Bolivia Time", "HNPMX": "Mexican Pacific Standard Time", "HNT": "Newfoundland Standard Time", "NZST": "New Zealand Standard Time", "ACDT": "Australian Central Daylight Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "HNCU": "Cuba Standard Time", "OESZ": "Eastern European Summer Time", "AST": "Atlantic Standard Time", "VET": "Venezuela Time", "WIT": "Eastern Indonesia Time", "HEOG": "West Greenland Summer Time", "LHST": "Lord Howe Standard Time", "JST": "Japan Standard Time", "JDT": "Japan Daylight Time", "WESZ": "Western European Summer Time", "HEEG": "East Greenland Summer Time", "OEZ": "Eastern European Standard Time", "CLST": "Chile Summer Time", "MDT": "Macau Summer Time", "CST": "Central Standard Time", "HAT": "Newfoundland Daylight Time", "ART": "Argentina Standard Time", "HKST": "Hong Kong Summer Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "WAT": "West Africa Standard Time", "MST": "Macau Standard Time", "MYT": "Malaysia Time", "AWST": "Australian Western Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHAST": "Chatham Standard Time", "NZDT": "New Zealand Daylight Time", "∅∅∅": "Amazon Summer Time"},
++ locale: "en_BM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "$", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"LHDT": "LHDT", "HNPM": "HNPM", "HNT": "HNT", "COST": "COST", "TMT": "TMT", "NZST": "NZST", "AST": "AST", "LHST": "LHST", "CHADT": "CHADT", "HECU": "HECU", "WARST": "WARST", "∅∅∅": "∅∅∅", "JST": "JST", "HEPM": "HEPM", "ACWST": "ACWST", "MDT": "MDT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "AEDT": "AEDT", "PDT": "PDT", "HEPMX": "HEPMX", "WART": "WART", "WESZ": "WESZ", "WIB": "WIB", "MYT": "MYT", "HNPMX": "HNPMX", "AKDT": "AKDT", "HKST": "HKST", "CAT": "CAT", "BT": "BT", "WAST": "WAST", "EST": "EST", "EDT": "EDT", "CST": "CST", "ART": "ART", "UYST": "UYST", "WITA": "WITA", "NZDT": "NZDT", "BOT": "BOT", "SRT": "SRT", "HAST": "HAST", "VET": "VET", "ACST": "ACST", "HNEG": "HNEG", "OEZ": "OEZ", "CLT": "CLT", "MST": "MST", "GMT": "GMT", "ARST": "ARST", "MEZ": "MEZ", "UYT": "UYT", "HAT": "HAT", "HKT": "HKT", "CLST": "CLST", "AWST": "AWST", "WEZ": "WEZ", "SGT": "SGT", "GFT": "GFT", "CDT": "CDT", "ECT": "ECT", "EAT": "EAT", "HADT": "HADT", "AEST": "AEST", "OESZ": "OESZ", "MESZ": "MESZ", "HENOMX": "HENOMX", "WAT": "WAT", "SAST": "SAST", "AWDT": "AWDT", "WIT": "WIT", "ACDT": "ACDT", "JDT": "JDT", "ACWDT": "ACWDT", "AKST": "AKST", "GYT": "GYT", "TMST": "TMST", "ADT": "ADT", "ChST": "ChST", "CHAST": "CHAST", "PST": "PST", "COT": "COT", "HNOG": "HNOG", "HEOG": "HEOG", "IST": "IST", "HNCU": "HNCU"},
+ }
+ }
+ 
+@@ -112,8 +89,8 @@ func (en *en_BM) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_BM) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
++ nMod10 := math.Mod(n, 10)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +115,7 @@ func (en *en_BM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_BM) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_BM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_BM) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_BM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_BM) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_BM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_BM' and handles both Whole and Real numbers based on 'v'
+ func (en *en_BM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_BM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_BM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_BM'
+@@ -278,56 +195,7 @@ func (en *en_BM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_BM'
+@@ -336,84 +204,33 @@ func (en *en_BM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_BM'
++func (en *en_BM) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_BM'
+-func (en *en_BM) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_BM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_BM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_BM) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_BM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_BM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_BM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_BM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_BS/en_BS.go b/en_BS/en_BS.go
+index 56b2ef0..14d822e 100644
+--- a/en_BS/en_BS.go
++++ b/en_BS/en_BS.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_BS struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_BS' locale
+ func New() locales.Translator {
+ return &en_BS{
+- locale: "en_BS",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "$", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"WART": "Western Argentina Standard Time", "HNPMX": "Mexican Pacific Standard Time", "MYT": "Malaysia Time", "ACWST": "Australian Central Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "ARST": "Argentina Summer Time", "BOT": "Bolivia Time", "WAT": "West Africa Standard Time", "AEDT": "Australian Eastern Daylight Time", "ChST": "Chamorro Standard Time", "UYST": "Uruguay Summer Time", "AKDT": "Alaska Daylight Time", "HEOG": "West Greenland Summer Time", "HKST": "Hong Kong Summer Time", "NZST": "New Zealand Standard Time", "GMT": "Greenwich Mean Time", "BT": "Bhutan Time", "HNOG": "West Greenland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "MEZ": "Central European Standard Time", "CHADT": "Chatham Daylight Time", "OEZ": "Eastern European Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "EDT": "Eastern Daylight Time", "AEST": "Australian Eastern Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "AST": "Atlantic Standard Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "EST": "Eastern Standard Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "PDT": "Pacific Daylight Time", "ADT": "Atlantic Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "UYT": "Uruguay Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "SRT": "Suriname Time", "JDT": "Japan Daylight Time", "HNCU": "Cuba Standard Time", "TMT": "Turkmenistan Standard Time", "AKST": "Alaska Standard Time", "WIT": "Eastern Indonesia Time", "∅∅∅": "Amazon Summer Time", "JST": "Japan Standard Time", "COT": "Colombia Standard Time", "CST": "Central Standard Time", "PST": "Pacific Standard Time", "CAT": "Central Africa Time", "WAST": "West Africa Summer Time", "HEEG": "East Greenland Summer Time", "HNT": "Newfoundland Standard Time", "AWDT": "Australian Western Daylight Time", "SAST": "South Africa Standard Time", "HNEG": "East Greenland Standard Time", "TMST": "Turkmenistan Summer Time", "CDT": "Central Daylight Time", "AWST": "Australian Western Standard Time", "NZDT": "New Zealand Daylight Time", "EAT": "East Africa Time", "OESZ": "Eastern European Summer Time", "ECT": "Ecuador Time", "HECU": "Cuba Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "ART": "Argentina Standard Time", "LHDT": "Lord Howe Daylight Time", "CHAST": "Chatham Standard Time", "GFT": "French Guiana Time", "ACDT": "Australian Central Daylight Time", "MST": "Macau Standard Time", "WESZ": "Western European Summer Time", "HAT": "Newfoundland Daylight Time", "HKT": "Hong Kong Standard Time", "MESZ": "Central European Summer Time", "COST": "Colombia Summer Time", "WIB": "Western Indonesia Time", "IST": "India Standard Time", "ACST": "Australian Central Standard Time", "WARST": "Western Argentina Summer Time", "VET": "Venezuela Time", "WEZ": "Western European Standard Time", "WITA": "Central Indonesia Time", "LHST": "Lord Howe Standard Time"},
++ locale: "en_BS",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "$", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"OESZ": "OESZ", "∅∅∅": "∅∅∅", "HKST": "HKST", "HEPM": "HEPM", "HEPMX": "HEPMX", "HNEG": "HNEG", "HEEG": "HEEG", "SGT": "SGT", "EAT": "EAT", "ACDT": "ACDT", "CST": "CST", "ECT": "ECT", "ADT": "ADT", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "WAST": "WAST", "COST": "COST", "TMT": "TMT", "GFT": "GFT", "WART": "WART", "CHAST": "CHAST", "ChST": "ChST", "JST": "JST", "EDT": "EDT", "TMST": "TMST", "ARST": "ARST", "BOT": "BOT", "BT": "BT", "SAST": "SAST", "GYT": "GYT", "WARST": "WARST", "WIT": "WIT", "AST": "AST", "GMT": "GMT", "ACST": "ACST", "JDT": "JDT", "LHST": "LHST", "LHDT": "LHDT", "MYT": "MYT", "AKST": "AKST", "HKT": "HKT", "CLST": "CLST", "NZDT": "NZDT", "ACWST": "ACWST", "VET": "VET", "HNCU": "HNCU", "AKDT": "AKDT", "HNT": "HNT", "CLT": "CLT", "NZST": "NZST", "AWDT": "AWDT", "WEZ": "WEZ", "EST": "EST", "CAT": "CAT", "AWST": "AWST", "PST": "PST", "HECU": "HECU", "WAT": "WAT", "MDT": "MDT", "MEZ": "MEZ", "UYT": "UYT", "UYST": "UYST", "IST": "IST", "MESZ": "MESZ", "CHADT": "CHADT", "MST": "MST", "HAST": "HAST", "HNPM": "HNPM", "AEST": "AEST", "AEDT": "AEDT", "WESZ": "WESZ", "COT": "COT", "HNOG": "HNOG", "HNPMX": "HNPMX", "OEZ": "OEZ", "HADT": "HADT", "HNNOMX": "HNNOMX", "PDT": "PDT", "CDT": "CDT", "ART": "ART", "WIB": "WIB", "SRT": "SRT", "HAT": "HAT", "HEOG": "HEOG", "WITA": "WITA"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_BS) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_BS) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_BS) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_BS) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_BS) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_BS) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_BS) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_BS' and handles both Whole and Real numbers based on 'v'
+ func (en *en_BS) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_BS' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_BS) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_BS'
+@@ -278,56 +195,7 @@ func (en *en_BS) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_BS'
+@@ -336,84 +204,33 @@ func (en *en_BS) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_BS'
++func (en *en_BS) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_BS'
+-func (en *en_BS) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_BS) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_BS) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_BS) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_BS) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_BS) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_BS) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_BS) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_BW/en_BW.go b/en_BW/en_BW.go
+index 5e9d051..195e341 100644
+--- a/en_BW/en_BW.go
++++ b/en_BW/en_BW.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_BW struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_BW' locale
+ func New() locales.Translator {
+ return &en_BW{
+- locale: "en_BW",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "P", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HEPMX": "Mexican Pacific Daylight Time", "UYT": "Uruguay Standard Time", "PDT": "Pacific Daylight Time", "WAT": "West Africa Standard Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "SGT": "Singapore Standard Time", "ADT": "Atlantic Daylight Time", "AWST": "Australian Western Standard Time", "∅∅∅": "Amazon Summer Time", "HEEG": "East Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "OESZ": "Eastern European Summer Time", "EAT": "East Africa Time", "WART": "Western Argentina Standard Time", "CDT": "Central Daylight Time", "VET": "Venezuela Time", "MESZ": "Central European Summer Time", "IST": "India Standard Time", "JST": "Japan Standard Time", "GFT": "French Guiana Time", "AST": "Atlantic Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "BOT": "Bolivia Time", "HECU": "Cuba Daylight Time", "WIB": "Western Indonesia Time", "JDT": "Japan Daylight Time", "ChST": "Chamorro Standard Time", "CAT": "Central Africa Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "EST": "Eastern Standard Time", "HAT": "Newfoundland Daylight Time", "CHADT": "Chatham Daylight Time", "MST": "Macau Standard Time", "ACWST": "Australian Central Western Standard Time", "AEDT": "Australian Eastern Daylight Time", "ACST": "Australian Central Standard Time", "OEZ": "Eastern European Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "WEZ": "Western European Standard Time", "MYT": "Malaysia Time", "CST": "Central Standard Time", "HNEG": "East Greenland Standard Time", "ACDT": "Australian Central Daylight Time", "ECT": "Ecuador Time", "WESZ": "Western European Summer Time", "ARST": "Argentina Summer Time", "WITA": "Central Indonesia Time", "MEZ": "Central European Standard Time", "CLST": "Chile Summer Time", "BT": "Bhutan Time", "CHAST": "Chatham Standard Time", "SAST": "South Africa Standard Time", "AKDT": "Alaska Daylight Time", "WIT": "Eastern Indonesia Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "NZST": "New Zealand Standard Time", "MDT": "Macau Summer Time", "PST": "Pacific Standard Time", "HNT": "Newfoundland Standard Time", "HKT": "Hong Kong Standard Time", "CLT": "Chile Standard Time", "HNPMX": "Mexican Pacific Standard Time", "SRT": "Suriname Time", "HKST": "Hong Kong Summer Time", "HNCU": "Cuba Standard Time", "EDT": "Eastern Daylight Time", "UYST": "Uruguay Summer Time", "AWDT": "Australian Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "TMST": "Turkmenistan Summer Time", "GMT": "Greenwich Mean Time", "GYT": "Guyana Time", "ART": "Argentina Standard Time", "WAST": "West Africa Summer Time", "COT": "Colombia Standard Time", "AKST": "Alaska Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "AEST": "Australian Eastern Standard Time", "HENOMX": "Northwest Mexico Daylight Time"},
++ locale: "en_BW",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "P", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HNPM": "HNPM", "HNPMX": "HNPMX", "OESZ": "OESZ", "WIT": "WIT", "ADT": "ADT", "WIB": "WIB", "HEEG": "HEEG", "MYT": "MYT", "IST": "IST", "PDT": "PDT", "ACWDT": "ACWDT", "AKDT": "AKDT", "HNOG": "HNOG", "BT": "BT", "SRT": "SRT", "ACDT": "ACDT", "HEPM": "HEPM", "JST": "JST", "WAT": "WAT", "NZST": "NZST", "EAT": "EAT", "HAST": "HAST", "CHAST": "CHAST", "GYT": "GYT", "HADT": "HADT", "HNEG": "HNEG", "PST": "PST", "HAT": "HAT", "CLST": "CLST", "WITA": "WITA", "MST": "MST", "GMT": "GMT", "ACWST": "ACWST", "WEZ": "WEZ", "OEZ": "OEZ", "EST": "EST", "HKT": "HKT", "CLT": "CLT", "CST": "CST", "LHST": "LHST", "CHADT": "CHADT", "SGT": "SGT", "COT": "COT", "BOT": "BOT", "MESZ": "MESZ", "JDT": "JDT", "CDT": "CDT", "UYST": "UYST", "VET": "VET", "MDT": "MDT", "ARST": "ARST", "∅∅∅": "∅∅∅", "HEPMX": "HEPMX", "HNT": "HNT", "TMT": "TMT", "CAT": "CAT", "NZDT": "NZDT", "ChST": "ChST", "LHDT": "LHDT", "AEST": "AEST", "SAST": "SAST", "TMST": "TMST", "AST": "AST", "ACST": "ACST", "WAST": "WAST", "AKST": "AKST", "GFT": "GFT", "WART": "WART", "EDT": "EDT", "HEOG": "HEOG", "MEZ": "MEZ", "AWST": "AWST", "AWDT": "AWDT", "UYT": "UYT", "WESZ": "WESZ", "HNCU": "HNCU", "HECU": "HECU", "AEDT": "AEDT", "WARST": "WARST", "COST": "COST", "ECT": "ECT", "HKST": "HKST", "ART": "ART"},
+ }
+ }
+ 
+@@ -112,8 +89,8 @@ func (en *en_BW) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_BW) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
++ nMod10 := math.Mod(n, 10)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +115,7 @@ func (en *en_BW) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_BW) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_BW) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_BW) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_BW) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_BW) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_BW) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_BW' and handles both Whole and Real numbers based on 'v'
+ func (en *en_BW) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_BW' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_BW) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_BW'
+@@ -278,56 +195,7 @@ func (en *en_BW) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_BW'
+@@ -336,68 +204,7 @@ func (en *en_BW) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_BW'
+diff --git a/en_BZ/en_BZ.go b/en_BZ/en_BZ.go
+index 474d45c..36b9325 100644
+--- a/en_BZ/en_BZ.go
++++ b/en_BZ/en_BZ.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_BZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_BZ' locale
+ func New() locales.Translator {
+ return &en_BZ{
+- locale: "en_BZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "$", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"PDT": "Pacific Daylight Time", "SAST": "South Africa Standard Time", "HKST": "Hong Kong Summer Time", "MESZ": "Central European Summer Time", "CAT": "Central Africa Time", "HECU": "Cuba Daylight Time", "WESZ": "Western European Summer Time", "ACWDT": "Australian Central Western Daylight Time", "HEOG": "West Greenland Summer Time", "MST": "Macau Standard Time", "AKST": "Alaska Standard Time", "AST": "Atlantic Standard Time", "HEEG": "East Greenland Summer Time", "OEZ": "Eastern European Standard Time", "HNCU": "Cuba Standard Time", "LHST": "Lord Howe Standard Time", "TMT": "Turkmenistan Standard Time", "ECT": "Ecuador Time", "EDT": "Eastern Daylight Time", "UYST": "Uruguay Summer Time", "WIT": "Eastern Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "WEZ": "Western European Standard Time", "∅∅∅": "Amazon Summer Time", "WIB": "Western Indonesia Time", "AEST": "Australian Eastern Standard Time", "OESZ": "Eastern European Summer Time", "UYT": "Uruguay Standard Time", "CLT": "Chile Standard Time", "MDT": "Macau Summer Time", "EST": "Eastern Standard Time", "HNT": "Newfoundland Standard Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "GYT": "Guyana Time", "ART": "Argentina Standard Time", "HKT": "Hong Kong Standard Time", "AKDT": "Alaska Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZST": "New Zealand Standard Time", "BOT": "Bolivia Time", "COT": "Colombia Standard Time", "SGT": "Singapore Standard Time", "BT": "Bhutan Time", "ACWST": "Australian Central Western Standard Time", "WITA": "Central Indonesia Time", "CST": "Central Standard Time", "ACST": "Australian Central Standard Time", "HAT": "Newfoundland Daylight Time", "AEDT": "Australian Eastern Daylight Time", "IST": "India Standard Time", "AWDT": "Australian Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "ChST": "Chamorro Standard Time", "VET": "Venezuela Time", "SRT": "Suriname Time", "ARST": "Argentina Summer Time", "ACDT": "Australian Central Daylight Time", "EAT": "East Africa Time", "COST": "Colombia Summer Time", "WART": "Western Argentina Standard Time", "HNPMX": "Mexican Pacific Standard Time", "PST": "Pacific Standard Time", "GFT": "French Guiana Time", "TMST": "Turkmenistan Summer Time", "CDT": "Central Daylight Time", "MYT": "Malaysia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CHADT": "Chatham Daylight Time", "JDT": "Japan Daylight Time", "HNEG": "East Greenland Standard Time", "WARST": "Western Argentina Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "ADT": "Atlantic Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "AWST": "Australian Western Standard Time", "MEZ": "Central European Standard Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HNOG": "West Greenland Standard Time", "CLST": "Chile Summer Time", "JST": "Japan Standard Time", "WAST": "West Africa Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "GMT": "Greenwich Mean Time"},
++ locale: "en_BZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "$", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACDT": "ACDT", "HNPM": "HNPM", "AKST": "AKST", "WARST": "WARST", "HKST": "HKST", "TMT": "TMT", "GMT": "GMT", "LHST": "LHST", "AEDT": "AEDT", "HNCU": "HNCU", "GFT": "GFT", "EAT": "EAT", "WESZ": "WESZ", "OEZ": "OEZ", "TMST": "TMST", "AST": "AST", "AWDT": "AWDT", "JDT": "JDT", "ACWDT": "ACWDT", "AEST": "AEST", "WIT": "WIT", "CLST": "CLST", "CST": "CST", "AWST": "AWST", "WAST": "WAST", "HKT": "HKT", "HENOMX": "HENOMX", "JST": "JST", "∅∅∅": "∅∅∅", "HNT": "HNT", "SRT": "SRT", "MESZ": "MESZ", "CHADT": "CHADT", "UYST": "UYST", "WAT": "WAT", "SAST": "SAST", "HNOG": "HNOG", "MST": "MST", "HEEG": "HEEG", "IST": "IST", "COST": "COST", "NZDT": "NZDT", "ECT": "ECT", "WIB": "WIB", "HNEG": "HNEG", "PST": "PST", "CHAST": "CHAST", "CDT": "CDT", "ART": "ART", "LHDT": "LHDT", "HEPM": "HEPM", "BT": "BT", "ACWST": "ACWST", "OESZ": "OESZ", "EST": "EST", "EDT": "EDT", "HADT": "HADT", "VET": "VET", "COT": "COT", "HEOG": "HEOG", "ChST": "ChST", "HNNOMX": "HNNOMX", "CLT": "CLT", "WITA": "WITA", "MEZ": "MEZ", "MYT": "MYT", "CAT": "CAT", "ADT": "ADT", "ACST": "ACST", "ARST": "ARST", "SGT": "SGT", "HECU": "HECU", "HEPMX": "HEPMX", "HAT": "HAT", "MDT": "MDT", "NZST": "NZST", "GYT": "GYT", "BOT": "BOT", "PDT": "PDT", "UYT": "UYT", "WEZ": "WEZ", "HNPMX": "HNPMX", "AKDT": "AKDT", "WART": "WART", "HAST": "HAST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_BZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_BZ) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_BZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_BZ) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_BZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_BZ) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_BZ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_BZ' and handles both Whole and Real numbers based on 'v'
+ func (en *en_BZ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_BZ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_BZ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_BZ'
+@@ -278,56 +195,7 @@ func (en *en_BZ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_BZ'
+@@ -336,68 +204,7 @@ func (en *en_BZ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_BZ'
+diff --git a/en_CA/en_CA.go b/en_CA/en_CA.go
+index 0815669..ad0203e 100644
+--- a/en_CA/en_CA.go
++++ b/en_CA/en_CA.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_CA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_CA' locale
+ func New() locales.Translator {
+ return &en_CA{
+- locale: "en_CA",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "$", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HNT": "Newfoundland Standard Time", "ChST": "Chamorro Standard Time", "ACDT": "Australian Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "VET": "Venezuela Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "UYST": "Uruguay Summer Time", "JST": "Japan Standard Time", "WIT": "Eastern Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "AEDT": "Australian Eastern Daylight Time", "AWDT": "Australian Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "∅∅∅": "Amazon Summer Time", "HECU": "Cuba Daylight Time", "MYT": "Malaysia Time", "SRT": "Suriname Time", "WITA": "Central Indonesia Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "COT": "Colombia Standard Time", "AKST": "Alaska Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "BT": "Bhutan Time", "CHAST": "Chatham Standard Time", "IST": "India Standard Time", "TMST": "Turkmenistan Summer Time", "ECT": "Ecuador Time", "WEZ": "Western European Standard Time", "HNEG": "East Greenland Standard Time", "COST": "Colombia Summer Time", "ADT": "Atlantic Daylight Time", "AKDT": "Alaska Daylight Time", "ACWST": "Australian Central Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SAST": "South Africa Standard Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "ACST": "Australian Central Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HKT": "Hong Kong Standard Time", "OESZ": "Eastern European Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "UYT": "Uruguay Standard Time", "CDT": "Central Daylight Time", "HNOG": "West Greenland Standard Time", "OEZ": "Eastern European Standard Time", "EDT": "Eastern Daylight Time", "AST": "Atlantic Standard Time", "LHDT": "Lord Howe Daylight Time", "GMT": "Greenwich Mean Time", "HNCU": "Cuba Standard Time", "CST": "Central Standard Time", "WAST": "West Africa Summer Time", "HNPMX": "Mexican Pacific Standard Time", "HKST": "Hong Kong Summer Time", "MESZ": "Central European Summer Time", "CAT": "Central Africa Time", "EAT": "East Africa Time", "SGT": "Singapore Standard Time", "EST": "Eastern Standard Time", "HEOG": "West Greenland Summer Time", "JDT": "Japan Daylight Time", "WIB": "Western Indonesia Time", "WESZ": "Western European Summer Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "AWST": "Australian Western Standard Time", "MEZ": "Central European Standard Time", "BOT": "Bolivia Time", "MST": "Macau Standard Time", "PST": "Pacific Standard Time", "PDT": "Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "CHADT": "Chatham Daylight Time"},
++ locale: "en_CA",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "$", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MYT": "MYT", "HNPMX": "HNPMX", "WITA": "WITA", "HENOMX": "HENOMX", "PST": "PST", "CHADT": "CHADT", "OEZ": "OEZ", "COT": "COT", "AST": "AST", "MESZ": "MESZ", "ACDT": "ACDT", "JDT": "JDT", "ACWDT": "ACWDT", "CHAST": "CHAST", "WIT": "WIT", "COST": "COST", "PDT": "PDT", "AKST": "AKST", "OESZ": "OESZ", "JST": "JST", "HNCU": "HNCU", "HECU": "HECU", "SRT": "SRT", "BT": "BT", "ACWST": "ACWST", "WEZ": "WEZ", "HNT": "HNT", "HKT": "HKT", "HKST": "HKST", "ARST": "ARST", "HAST": "HAST", "ACST": "ACST", "LHST": "LHST", "HEPM": "HEPM", "UYT": "UYT", "HEOG": "HEOG", "NZDT": "NZDT", "ChST": "ChST", "HNEG": "HNEG", "HAT": "HAT", "TMT": "TMT", "NZST": "NZST", "AWST": "AWST", "AWDT": "AWDT", "AKDT": "AKDT", "EDT": "EDT", "MDT": "MDT", "EAT": "EAT", "MEZ": "MEZ", "HNNOMX": "HNNOMX", "AEST": "AEST", "ECT": "ECT", "ART": "ART", "EST": "EST", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "VET": "VET", "WAST": "WAST", "GFT": "GFT", "WART": "WART", "WIB": "WIB", "BOT": "BOT", "LHDT": "LHDT", "HNOG": "HNOG", "CLT": "CLT", "IST": "IST", "WESZ": "WESZ", "TMST": "TMST", "HEEG": "HEEG", "ADT": "ADT", "UYST": "UYST", "WAT": "WAT", "WARST": "WARST", "SAST": "SAST", "CAT": "CAT", "CST": "CST", "CDT": "CDT", "SGT": "SGT", "HEPMX": "HEPMX", "GYT": "GYT", "CLST": "CLST", "MST": "MST", "GMT": "GMT", "HADT": "HADT"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_CA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_CA) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_CA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_CA) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_CA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_CA) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_CA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_CA' and handles both Whole and Real numbers based on 'v'
+ func (en *en_CA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_CA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_CA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_CA'
+@@ -278,56 +195,7 @@ func (en *en_CA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_CA'
+@@ -336,68 +204,7 @@ func (en *en_CA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_CA'
+@@ -494,13 +301,11 @@ func (en *en_CA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -508,13 +313,6 @@ func (en *en_CA) FmtTimeShort(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -524,13 +322,11 @@ func (en *en_CA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -545,13 +341,6 @@ func (en *en_CA) FmtTimeMedium(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -561,13 +350,11 @@ func (en *en_CA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -584,14 +371,6 @@ func (en *en_CA) FmtTimeLong(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ b = append(b, tz...)
+ 
+@@ -603,13 +382,11 @@ func (en *en_CA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -626,14 +403,6 @@ func (en *en_CA) FmtTimeFull(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ 
+ if btz, ok := en.timezones[tz]; ok {
+diff --git a/en_CC/en_CC.go b/en_CC/en_CC.go
+index 2b72d55..fed0636 100644
+--- a/en_CC/en_CC.go
++++ b/en_CC/en_CC.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_CC struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_CC' locale
+ func New() locales.Translator {
+ return &en_CC{
+- locale: "en_CC",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "$", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HKT": "Hong Kong Standard Time", "HNEG": "East Greenland Standard Time", "ACDT": "Australian Central Daylight Time", "OEZ": "Eastern European Standard Time", "WAT": "West Africa Standard Time", "UYST": "Uruguay Summer Time", "WIT": "Eastern Indonesia Time", "WAST": "West Africa Summer Time", "SGT": "Singapore Standard Time", "ART": "Argentina Standard Time", "PDT": "Pacific Daylight Time", "ACWST": "Australian Central Western Standard Time", "JST": "Japan Standard Time", "TMST": "Turkmenistan Summer Time", "ACST": "Australian Central Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "AKDT": "Alaska Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "GYT": "Guyana Time", "HNOG": "West Greenland Standard Time", "WITA": "Central Indonesia Time", "AEDT": "Australian Eastern Daylight Time", "CHADT": "Chatham Daylight Time", "LHDT": "Lord Howe Daylight Time", "WART": "Western Argentina Standard Time", "ADT": "Atlantic Daylight Time", "EDT": "Eastern Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "HNT": "Newfoundland Standard Time", "HEOG": "West Greenland Summer Time", "PST": "Pacific Standard Time", "ACWDT": "Australian Central Western Daylight Time", "CLST": "Chile Summer Time", "HNCU": "Cuba Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HKST": "Hong Kong Summer Time", "ECT": "Ecuador Time", "WARST": "Western Argentina Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "GFT": "French Guiana Time", "BOT": "Bolivia Time", "HAT": "Newfoundland Daylight Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "COT": "Colombia Standard Time", "EST": "Eastern Standard Time", "ARST": "Argentina Summer Time", "CLT": "Chile Standard Time", "OESZ": "Eastern European Summer Time", "COST": "Colombia Summer Time", "BT": "Bhutan Time", "CHAST": "Chatham Standard Time", "TMT": "Turkmenistan Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HECU": "Cuba Daylight Time", "CST": "Central Standard Time", "SRT": "Suriname Time", "HEEG": "East Greenland Summer Time", "AST": "Atlantic Standard Time", "GMT": "Greenwich Mean Time", "WIB": "Western Indonesia Time", "AWDT": "Australian Western Daylight Time", "MEZ": "Central European Standard Time", "SAST": "South Africa Standard Time", "JDT": "Japan Daylight Time", "ChST": "Chamorro Standard Time", "EAT": "East Africa Time", "AEST": "Australian Eastern Standard Time", "∅∅∅": "Amazon Summer Time", "MYT": "Malaysia Time", "UYT": "Uruguay Standard Time", "AWST": "Australian Western Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHST": "Lord Howe Standard Time", "CAT": "Central Africa Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "WEZ": "Western European Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MESZ": "Central European Summer Time", "CDT": "Central Daylight Time", "AKST": "Alaska Standard Time"},
++ locale: "en_CC",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "$", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"EAT": "EAT", "ACDT": "ACDT", "AWDT": "AWDT", "GYT": "GYT", "HEOG": "HEOG", "MST": "MST", "ARST": "ARST", "∅∅∅": "∅∅∅", "EST": "EST", "HEEG": "HEEG", "LHST": "LHST", "HNT": "HNT", "WART": "WART", "COT": "COT", "HNOG": "HNOG", "CHADT": "CHADT", "ACWST": "ACWST", "VET": "VET", "WAST": "WAST", "MDT": "MDT", "NZDT": "NZDT", "ADT": "ADT", "CHAST": "CHAST", "WARST": "WARST", "COST": "COST", "HKST": "HKST", "ECT": "ECT", "MYT": "MYT", "HNCU": "HNCU", "AKDT": "AKDT", "OEZ": "OEZ", "HAT": "HAT", "TMT": "TMT", "JDT": "JDT", "ACWDT": "ACWDT", "WESZ": "WESZ", "HNPMX": "HNPMX", "HKT": "HKT", "WIB": "WIB", "UYST": "UYST", "PST": "PST", "WEZ": "WEZ", "WIT": "WIT", "ART": "ART", "IST": "IST", "BT": "BT", "ACST": "ACST", "JST": "JST", "HECU": "HECU", "WAT": "WAT", "SAST": "SAST", "HAST": "HAST", "HADT": "HADT", "TMST": "TMST", "CLT": "CLT", "AST": "AST", "HNNOMX": "HNNOMX", "PDT": "PDT", "CST": "CST", "NZST": "NZST", "AWST": "AWST", "UYT": "UYT", "AKST": "AKST", "HNEG": "HNEG", "LHDT": "LHDT", "HNPM": "HNPM", "ChST": "ChST", "BOT": "BOT", "MEZ": "MEZ", "HEPM": "HEPM", "GFT": "GFT", "EDT": "EDT", "CLST": "CLST", "AEST": "AEST", "AEDT": "AEDT", "SGT": "SGT", "HEPMX": "HEPMX", "CAT": "CAT", "GMT": "GMT", "SRT": "SRT", "HENOMX": "HENOMX", "OESZ": "OESZ", "WITA": "WITA", "CDT": "CDT", "MESZ": "MESZ"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_CC) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_CC) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_CC) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_CC) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_CC) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_CC) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_CC) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_CC' and handles both Whole and Real numbers based on 'v'
+ func (en *en_CC) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_CC' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_CC) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_CC'
+@@ -278,56 +195,7 @@ func (en *en_CC) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_CC'
+@@ -336,84 +204,33 @@ func (en *en_CC) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_CC'
++func (en *en_CC) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_CC'
+-func (en *en_CC) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_CC) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_CC) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_CC) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_CH/en_CH.go b/en_CH/en_CH.go
+index 48bbd6b..fd037e2 100644
+--- a/en_CH/en_CH.go
++++ b/en_CH/en_CH.go
+@@ -48,30 +48,11 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{2, 6},
+ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+ pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: "-",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"WITA": "Central Indonesia Time", "NZST": "New Zealand Standard Time", "BOT": "Bolivia Time", "HNEG": "East Greenland Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "JDT": "Japan Daylight Time", "MDT": "Macau Summer Time", "HEOG": "West Greenland Summer Time", "TMST": "Turkmenistan Summer Time", "HEEG": "East Greenland Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "HAT": "Newfoundland Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "JST": "Japan Standard Time", "HNCU": "Cuba Standard Time", "EST": "Eastern Standard Time", "AWST": "Australian Western Standard Time", "HKST": "Hong Kong Summer Time", "WIT": "Eastern Indonesia Time", "ACDT": "Australian Central Daylight Time", "OEZ": "Eastern European Standard Time", "UYT": "Uruguay Standard Time", "PST": "Pacific Standard Time", "NZDT": "New Zealand Daylight Time", "CLST": "Chile Summer Time", "GFT": "French Guiana Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "VET": "Venezuela Time", "HNOG": "West Greenland Standard Time", "AWDT": "Australian Western Daylight Time", "WARST": "Western Argentina Summer Time", "AST": "Atlantic Standard Time", "WESZ": "Western European Summer Time", "MEZ": "Central European Standard Time", "ChST": "Chamorro Standard Time", "MYT": "Malaysia Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "WART": "Western Argentina Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "MST": "Macau Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "WAT": "West Africa Standard Time", "UYST": "Uruguay Summer Time", "AKDT": "Alaska Daylight Time", "AEST": "Australian Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "WAST": "West Africa Summer Time", "GMT": "Greenwich Mean Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "ACWST": "Australian Central Western Standard Time", "MESZ": "Central European Summer Time", "LHST": "Lord Howe Standard Time", "TMT": "Turkmenistan Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SAST": "South Africa Standard Time", "CLT": "Chile Standard Time", "OESZ": "Eastern European Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "EDT": "Eastern Daylight Time", "SRT": "Suriname Time", "∅∅∅": "Amazon Summer Time", "CAT": "Central Africa Time", "EAT": "East Africa Time", "WIB": "Western Indonesia Time", "HKT": "Hong Kong Standard Time", "CHAST": "Chatham Standard Time", "CHADT": "Chatham Daylight Time", "ACST": "Australian Central Standard Time", "COST": "Colombia Summer Time", "HECU": "Cuba Daylight Time", "ADT": "Atlantic Daylight Time", "AKST": "Alaska Standard Time", "BT": "Bhutan Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "ACWDT": "Australian Central Western Daylight Time", "HNT": "Newfoundland Standard Time"},
++ timezones: map[string]string{"CHADT": "CHADT", "ACWDT": "ACWDT", "AEST": "AEST", "SGT": "SGT", "COT": "COT", "MDT": "MDT", "HADT": "HADT", "HNPM": "HNPM", "CDT": "CDT", "ARST": "ARST", "VET": "VET", "WAST": "WAST", "AST": "AST", "GMT": "GMT", "PDT": "PDT", "BT": "BT", "MYT": "MYT", "ACDT": "ACDT", "HENOMX": "HENOMX", "LHST": "LHST", "HNT": "HNT", "NZDT": "NZDT", "ADT": "ADT", "MEZ": "MEZ", "WITA": "WITA", "NZST": "NZST", "ChST": "ChST", "EAT": "EAT", "JDT": "JDT", "MST": "MST", "HAST": "HAST", "MESZ": "MESZ", "LHDT": "LHDT", "CHAST": "CHAST", "PST": "PST", "GYT": "GYT", "COST": "COST", "∅∅∅": "∅∅∅", "CST": "CST", "OESZ": "OESZ", "WIT": "WIT", "AEDT": "AEDT", "WAT": "WAT", "HECU": "HECU", "AKST": "AKST", "HKT": "HKT", "CLT": "CLT", "HEEG": "HEEG", "IST": "IST", "SRT": "SRT", "AWDT": "AWDT", "UYT": "UYT", "HNPMX": "HNPMX", "OEZ": "OEZ", "HNOG": "HNOG", "EDT": "EDT", "CLST": "CLST", "EST": "EST", "TMST": "TMST", "AWST": "AWST", "WEZ": "WEZ", "UYST": "UYST", "HNCU": "HNCU", "HEPMX": "HEPMX", "AKDT": "AKDT", "WARST": "WARST", "WIB": "WIB", "HNEG": "HNEG", "HEPM": "HEPM", "HKST": "HKST", "BOT": "BOT", "ACST": "ACST", "WESZ": "WESZ", "JST": "JST", "HAT": "HAT", "SAST": "SAST", "HEOG": "HEOG", "CAT": "CAT", "ART": "ART", "HNNOMX": "HNNOMX", "ACWST": "ACWST", "GFT": "GFT", "WART": "WART", "TMT": "TMT", "ECT": "ECT"},
+ }
+ }
+ 
+@@ -138,7 +119,7 @@ func (en *en_CH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_CH) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +129,7 @@ func (en *en_CH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_CH) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +139,7 @@ func (en *en_CH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_CH) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +185,13 @@ func (en *en_CH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_CH' and handles both Whole and Real numbers based on 'v'
+ func (en *en_CH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_CH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_CH) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_CH'
+@@ -278,7 +199,7 @@ func (en *en_CH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -340,7 +261,7 @@ func (en *en_CH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 1 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -409,17 +330,6 @@ func (en *en_CH) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -428,17 +338,6 @@ func (en *en_CH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -447,17 +346,6 @@ func (en *en_CH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -466,19 +354,6 @@ func (en *en_CH) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -487,28 +362,6 @@ func (en *en_CH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -517,35 +370,6 @@ func (en *en_CH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -554,40 +378,6 @@ func (en *en_CH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -596,44 +386,5 @@ func (en *en_CH) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_CK/en_CK.go b/en_CK/en_CK.go
+index 63557a2..ddc2184 100644
+--- a/en_CK/en_CK.go
++++ b/en_CK/en_CK.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_CK struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_CK' locale
+ func New() locales.Translator {
+ return &en_CK{
+- locale: "en_CK",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "$", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "WIB": "Western Indonesia Time", "PST": "Pacific Standard Time", "MESZ": "Central European Summer Time", "WAST": "West Africa Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HECU": "Cuba Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HNEG": "East Greenland Standard Time", "ECT": "Ecuador Time", "COST": "Colombia Summer Time", "HNCU": "Cuba Standard Time", "MDT": "Macau Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "ART": "Argentina Standard Time", "JDT": "Japan Daylight Time", "WAT": "West Africa Standard Time", "OESZ": "Eastern European Summer Time", "COT": "Colombia Standard Time", "EST": "Eastern Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HEOG": "West Greenland Summer Time", "AWDT": "Australian Western Daylight Time", "MEZ": "Central European Standard Time", "LHDT": "Lord Howe Daylight Time", "CHAST": "Chatham Standard Time", "IST": "India Standard Time", "CAT": "Central Africa Time", "WART": "Western Argentina Standard Time", "SGT": "Singapore Standard Time", "PDT": "Pacific Daylight Time", "ARST": "Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "NZDT": "New Zealand Daylight Time", "GFT": "French Guiana Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "ACDT": "Australian Central Daylight Time", "WIT": "Eastern Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "AEST": "Australian Eastern Standard Time", "HKST": "Hong Kong Summer Time", "CHADT": "Chatham Daylight Time", "EAT": "East Africa Time", "EDT": "Eastern Daylight Time", "MYT": "Malaysia Time", "BT": "Bhutan Time", "HEEG": "East Greenland Summer Time", "UYST": "Uruguay Summer Time", "CST": "Central Standard Time", "GYT": "Guyana Time", "AWST": "Australian Western Standard Time", "HKT": "Hong Kong Standard Time", "BOT": "Bolivia Time", "ACST": "Australian Central Standard Time", "CDT": "Central Daylight Time", "WEZ": "Western European Standard Time", "HNOG": "West Greenland Standard Time", "SAST": "South Africa Standard Time", "ChST": "Chamorro Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "GMT": "Greenwich Mean Time", "MST": "Macau Standard Time", "ADT": "Atlantic Daylight Time", "SRT": "Suriname Time", "HNT": "Newfoundland Standard Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "WARST": "Western Argentina Summer Time", "AKST": "Alaska Standard Time", "WITA": "Central Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "∅∅∅": "Amazon Summer Time", "JST": "Japan Standard Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "ACWST": "Australian Central Western Standard Time", "OEZ": "Eastern European Standard Time", "UYT": "Uruguay Standard Time", "AST": "Atlantic Standard Time", "HAT": "Newfoundland Daylight Time"},
++ locale: "en_CK",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "$", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"PDT": "PDT", "AKST": "AKST", "TMST": "TMST", "HAST": "HAST", "ACDT": "ACDT", "HEEG": "HEEG", "AWDT": "AWDT", "JDT": "JDT", "GYT": "GYT", "HKST": "HKST", "CLT": "CLT", "SAST": "SAST", "WIT": "WIT", "GMT": "GMT", "ChST": "ChST", "ART": "ART", "ARST": "ARST", "UYST": "UYST", "WART": "WART", "HKT": "HKT", "CAT": "CAT", "AST": "AST", "MESZ": "MESZ", "VET": "VET", "NZST": "NZST", "ECT": "ECT", "ADT": "ADT", "WAST": "WAST", "OESZ": "OESZ", "EST": "EST", "TMT": "TMT", "EAT": "EAT", "HNEG": "HNEG", "HENOMX": "HENOMX", "IST": "IST", "GFT": "GFT", "MST": "MST", "WIB": "WIB", "HNNOMX": "HNNOMX", "LHST": "LHST", "ACWDT": "ACWDT", "COST": "COST", "MDT": "MDT", "MEZ": "MEZ", "ACWST": "ACWST", "AKDT": "AKDT", "HEOG": "HEOG", "CLST": "CLST", "SGT": "SGT", "HNCU": "HNCU", "OEZ": "OEZ", "WARST": "WARST", "COT": "COT", "HAT": "HAT", "∅∅∅": "∅∅∅", "HEPM": "HEPM", "BT": "BT", "AEST": "AEST", "CHADT": "CHADT", "HNT": "HNT", "HADT": "HADT", "HNPM": "HNPM", "UYT": "UYT", "WESZ": "WESZ", "HEPMX": "HEPMX", "WAT": "WAT", "EDT": "EDT", "WITA": "WITA", "CST": "CST", "BOT": "BOT", "JST": "JST", "SRT": "SRT", "LHDT": "LHDT", "MYT": "MYT", "AEDT": "AEDT", "HNOG": "HNOG", "CDT": "CDT", "ACST": "ACST", "CHAST": "CHAST", "WEZ": "WEZ", "NZDT": "NZDT", "AWST": "AWST", "PST": "PST", "HECU": "HECU", "HNPMX": "HNPMX"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_CK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_CK) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_CK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_CK) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_CK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_CK) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_CK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_CK' and handles both Whole and Real numbers based on 'v'
+ func (en *en_CK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_CK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_CK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_CK'
+@@ -278,56 +195,7 @@ func (en *en_CK) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_CK'
+@@ -336,84 +204,33 @@ func (en *en_CK) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_CK'
++func (en *en_CK) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_CK'
+-func (en *en_CK) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_CK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_CK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_CK) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_CM/en_CM.go b/en_CM/en_CM.go
+index 6b0ddbb..343e48d 100644
+--- a/en_CM/en_CM.go
++++ b/en_CM/en_CM.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_CM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_CM' locale
+ func New() locales.Translator {
+ return &en_CM{
+- locale: "en_CM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"JST": "Japan Standard Time", "TMT": "Turkmenistan Standard Time", "BOT": "Bolivia Time", "HNCU": "Cuba Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "VET": "Venezuela Time", "ART": "Argentina Standard Time", "WESZ": "Western European Summer Time", "AEST": "Australian Eastern Standard Time", "MEZ": "Central European Standard Time", "ACDT": "Australian Central Daylight Time", "CAT": "Central Africa Time", "HENOMX": "Northwest Mexico Daylight Time", "SRT": "Suriname Time", "HEOG": "West Greenland Summer Time", "AKST": "Alaska Standard Time", "ACWDT": "Australian Central Western Daylight Time", "SAST": "South Africa Standard Time", "ChST": "Chamorro Standard Time", "ACST": "Australian Central Standard Time", "WARST": "Western Argentina Summer Time", "SGT": "Singapore Standard Time", "CDT": "Central Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "WAT": "West Africa Standard Time", "HNPMX": "Mexican Pacific Standard Time", "PST": "Pacific Standard Time", "WITA": "Central Indonesia Time", "CHAST": "Chatham Standard Time", "TMST": "Turkmenistan Summer Time", "OESZ": "Eastern European Summer Time", "UYST": "Uruguay Summer Time", "AKDT": "Alaska Daylight Time", "AWST": "Australian Western Standard Time", "NZST": "New Zealand Standard Time", "CLST": "Chile Summer Time", "AST": "Atlantic Standard Time", "MYT": "Malaysia Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "ACWST": "Australian Central Western Standard Time", "∅∅∅": "Amazon Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "MST": "Macau Standard Time", "GFT": "French Guiana Time", "MESZ": "Central European Summer Time", "HKT": "Hong Kong Standard Time", "JDT": "Japan Daylight Time", "CST": "Central Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HAT": "Newfoundland Daylight Time", "HNOG": "West Greenland Standard Time", "WEZ": "Western European Standard Time", "CLT": "Chile Standard Time", "GYT": "Guyana Time", "UYT": "Uruguay Standard Time", "WIT": "Eastern Indonesia Time", "CHADT": "Chatham Daylight Time", "HNEG": "East Greenland Standard Time", "WAST": "West Africa Summer Time", "COT": "Colombia Standard Time", "HECU": "Cuba Daylight Time", "HEEG": "East Greenland Summer Time", "OEZ": "Eastern European Standard Time", "MDT": "Macau Summer Time", "ARST": "Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "NZDT": "New Zealand Daylight Time", "EAT": "East Africa Time", "GMT": "Greenwich Mean Time", "EST": "Eastern Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ECT": "Ecuador Time", "WART": "Western Argentina Standard Time", "ADT": "Atlantic Daylight Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "COST": "Colombia Summer Time", "EDT": "Eastern Daylight Time", "HNT": "Newfoundland Standard Time", "PDT": "Pacific Daylight Time", "HKST": "Hong Kong Summer Time"},
++ locale: "en_CM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MST": "MST", "HENOMX": "HENOMX", "CHADT": "CHADT", "UYT": "UYT", "UYST": "UYST", "WAT": "WAT", "GFT": "GFT", "CDT": "CDT", "GMT": "GMT", "WIT": "WIT", "CST": "CST", "ECT": "ECT", "MESZ": "MESZ", "AWDT": "AWDT", "BT": "BT", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "COT": "COT", "ACWST": "ACWST", "HNT": "HNT", "GYT": "GYT", "HKT": "HKT", "MDT": "MDT", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "WESZ": "WESZ", "HNPMX": "HNPMX", "HAST": "HAST", "HEEG": "HEEG", "AWST": "AWST", "OESZ": "OESZ", "TMT": "TMT", "TMST": "TMST", "WIB": "WIB", "BOT": "BOT", "HKST": "HKST", "ACST": "ACST", "LHST": "LHST", "LHDT": "LHDT", "JST": "JST", "JDT": "JDT", "CHAST": "CHAST", "HNOG": "HNOG", "ART": "ART", "WARST": "WARST", "ACDT": "ACDT", "HNEG": "HNEG", "PST": "PST", "VET": "VET", "HEPMX": "HEPMX", "AKST": "AKST", "HAT": "HAT", "HADT": "HADT", "EDT": "EDT", "ADT": "ADT", "HNPM": "HNPM", "ACWDT": "ACWDT", "SAST": "SAST", "AEDT": "AEDT", "EST": "EST", "CLST": "CLST", "MEZ": "MEZ", "HEPM": "HEPM", "PDT": "PDT", "AEST": "AEST", "CLT": "CLT", "IST": "IST", "HNCU": "HNCU", "AKDT": "AKDT", "WART": "WART", "NZST": "NZST", "AST": "AST", "HECU": "HECU", "CAT": "CAT", "ChST": "ChST", "ARST": "ARST", "SRT": "SRT", "EAT": "EAT", "WAST": "WAST", "WITA": "WITA", "MYT": "MYT", "WEZ": "WEZ", "SGT": "SGT", "COST": "COST", "HEOG": "HEOG"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_CM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_CM) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_CM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_CM) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_CM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_CM) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_CM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_CM' and handles both Whole and Real numbers based on 'v'
+ func (en *en_CM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_CM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_CM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_CM'
+@@ -278,56 +195,7 @@ func (en *en_CM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_CM'
+@@ -336,84 +204,33 @@ func (en *en_CM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_CM'
++func (en *en_CM) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_CM'
+-func (en *en_CM) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_CM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_CM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_CM) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_CX/en_CX.go b/en_CX/en_CX.go
+index 5638e6e..0806da5 100644
+--- a/en_CX/en_CX.go
++++ b/en_CX/en_CX.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_CX struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_CX' locale
+ func New() locales.Translator {
+ return &en_CX{
+- locale: "en_CX",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "$", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"SRT": "Suriname Time", "ART": "Argentina Standard Time", "CHAST": "Chatham Standard Time", "HECU": "Cuba Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "ADT": "Atlantic Daylight Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "CHADT": "Chatham Daylight Time", "JST": "Japan Standard Time", "ECT": "Ecuador Time", "∅∅∅": "Peru Summer Time", "PDT": "Pacific Daylight Time", "MEZ": "Central European Standard Time", "LHDT": "Lord Howe Daylight Time", "AKDT": "Alaska Daylight Time", "VET": "Venezuela Time", "HEOG": "West Greenland Summer Time", "GFT": "French Guiana Time", "MESZ": "Central European Summer Time", "IST": "India Standard Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "OEZ": "Eastern European Standard Time", "WART": "Western Argentina Standard Time", "AKST": "Alaska Standard Time", "UYT": "Uruguay Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AWST": "Australian Western Standard Time", "ACST": "Australian Central Standard Time", "PST": "Pacific Standard Time", "AEDT": "Australian Eastern Daylight Time", "JDT": "Japan Daylight Time", "CLT": "Chile Standard Time", "HEEG": "East Greenland Summer Time", "CAT": "Central Africa Time", "HNNOMX": "Northwest Mexico Standard Time", "MDT": "Macau Summer Time", "WIT": "Eastern Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "GMT": "Greenwich Mean Time", "AEST": "Australian Eastern Standard Time", "CLST": "Chile Summer Time", "HNEG": "East Greenland Standard Time", "SAST": "South Africa Standard Time", "EST": "Eastern Standard Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HNT": "Newfoundland Standard Time", "COT": "Colombia Standard Time", "SGT": "Singapore Standard Time", "EDT": "Eastern Daylight Time", "GYT": "Guyana Time", "HAT": "Newfoundland Daylight Time", "AWDT": "Australian Western Daylight Time", "ChST": "Chamorro Standard Time", "ACDT": "Australian Central Daylight Time", "WAST": "West Africa Summer Time", "ACWST": "Australian Central Western Standard Time", "WITA": "Central Indonesia Time", "TMST": "Turkmenistan Summer Time", "EAT": "East Africa Time", "AST": "Atlantic Standard Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "HKST": "Hong Kong Summer Time", "NZDT": "New Zealand Daylight Time", "HNCU": "Cuba Standard Time", "ARST": "Argentina Summer Time", "WESZ": "Western European Summer Time", "HKT": "Hong Kong Standard Time", "NZST": "New Zealand Standard Time", "HNOG": "West Greenland Standard Time", "WEZ": "Western European Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "BOT": "Bolivia Time", "MST": "Macau Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "OESZ": "Eastern European Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time"},
++ locale: "en_CX",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "$", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"LHST": "LHST", "CHAST": "CHAST", "HEPMX": "HEPMX", "AKDT": "AKDT", "TMT": "TMT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "JST": "JST", "HNPMX": "HNPMX", "EDT": "EDT", "ART": "ART", "AWDT": "AWDT", "HNPM": "HNPM", "GMT": "GMT", "BOT": "BOT", "SGT": "SGT", "HECU": "HECU", "WAST": "WAST", "HNT": "HNT", "WART": "WART", "GYT": "GYT", "WEZ": "WEZ", "ECT": "ECT", "ACDT": "ACDT", "HEEG": "HEEG", "HENOMX": "HENOMX", "IST": "IST", "CLST": "CLST", "AWST": "AWST", "ACWST": "ACWST", "HKT": "HKT", "CDT": "CDT", "AEST": "AEST", "CHADT": "CHADT", "GFT": "GFT", "HEOG": "HEOG", "CAT": "CAT", "CLT": "CLT", "ChST": "ChST", "HAST": "HAST", "MESZ": "MESZ", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "SAST": "SAST", "CST": "CST", "HADT": "HADT", "PDT": "PDT", "BT": "BT", "UYT": "UYT", "WAT": "WAT", "OESZ": "OESZ", "WARST": "WARST", "WIT": "WIT", "COST": "COST", "ARST": "ARST", "EST": "EST", "MST": "MST", "ACST": "ACST", "HEPM": "HEPM", "HAT": "HAT", "NZST": "NZST", "AST": "AST", "ADT": "ADT", "JDT": "JDT", "PST": "PST", "VET": "VET", "COT": "COT", "HNOG": "HNOG", "WITA": "WITA", "NZDT": "NZDT", "MEZ": "MEZ", "WESZ": "WESZ", "HNCU": "HNCU", "OEZ": "OEZ", "LHDT": "LHDT", "MYT": "MYT", "HKST": "HKST", "WIB": "WIB", "MDT": "MDT", "SRT": "SRT", "EAT": "EAT", "AKST": "AKST", "TMST": "TMST", "AEDT": "AEDT", "UYST": "UYST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_CX) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_CX) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_CX) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_CX) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_CX) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_CX) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_CX) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_CX' and handles both Whole and Real numbers based on 'v'
+ func (en *en_CX) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_CX' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_CX) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_CX'
+@@ -278,56 +195,7 @@ func (en *en_CX) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_CX'
+@@ -336,84 +204,33 @@ func (en *en_CX) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_CX'
++func (en *en_CX) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_CX'
+-func (en *en_CX) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_CX) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_CX) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_CX) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_CY/en_CY.go b/en_CY/en_CY.go
+index d9af1b7..bdba781 100644
+--- a/en_CY/en_CY.go
++++ b/en_CY/en_CY.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_CY struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_CY' locale
+ func New() locales.Translator {
+ return &en_CY{
+- locale: "en_CY",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"ACWST": "Australian Central Western Standard Time", "HNT": "Newfoundland Standard Time", "HEEG": "East Greenland Summer Time", "EAT": "East Africa Time", "GMT": "Greenwich Mean Time", "HADT": "Hawaii-Aleutian Daylight Time", "WESZ": "Western European Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "IST": "India Standard Time", "WAT": "West Africa Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "UYST": "Uruguay Summer Time", "ARST": "Argentina Summer Time", "AEST": "Australian Eastern Standard Time", "CAT": "Central Africa Time", "HNCU": "Cuba Standard Time", "AST": "Atlantic Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "OEZ": "Eastern European Standard Time", "HEOG": "West Greenland Summer Time", "HKST": "Hong Kong Summer Time", "GYT": "Guyana Time", "WITA": "Central Indonesia Time", "JDT": "Japan Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "EDT": "Eastern Daylight Time", "AKST": "Alaska Standard Time", "HKT": "Hong Kong Standard Time", "WART": "Western Argentina Standard Time", "BT": "Bhutan Time", "HAT": "Newfoundland Daylight Time", "CLST": "Chile Summer Time", "WARST": "Western Argentina Summer Time", "HECU": "Cuba Daylight Time", "MDT": "Macau Summer Time", "PST": "Pacific Standard Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "NZST": "New Zealand Standard Time", "BOT": "Bolivia Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "CST": "Central Standard Time", "AKDT": "Alaska Daylight Time", "VET": "Venezuela Time", "ACWDT": "Australian Central Western Daylight Time", "AWST": "Australian Western Standard Time", "SAST": "South Africa Standard Time", "OESZ": "Eastern European Summer Time", "MST": "Macau Standard Time", "UYT": "Uruguay Standard Time", "TMST": "Turkmenistan Summer Time", "AEDT": "Australian Eastern Daylight Time", "AWDT": "Australian Western Daylight Time", "CHAST": "Chatham Standard Time", "TMT": "Turkmenistan Standard Time", "∅∅∅": "Peru Summer Time", "ADT": "Atlantic Daylight Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "LHDT": "Lord Howe Daylight Time", "CDT": "Central Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "MESZ": "Central European Summer Time", "JST": "Japan Standard Time", "GFT": "French Guiana Time", "WAST": "West Africa Summer Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "MEZ": "Central European Standard Time", "HNEG": "East Greenland Standard Time", "COT": "Colombia Standard Time", "MYT": "Malaysia Time", "HNOG": "West Greenland Standard Time", "LHST": "Lord Howe Standard Time", "CLT": "Chile Standard Time", "ChST": "Chamorro Standard Time", "ACDT": "Australian Central Daylight Time", "ECT": "Ecuador Time", "SRT": "Suriname Time", "ART": "Argentina Standard Time", "ACST": "Australian Central Standard Time", "HNPMX": "Mexican Pacific Standard Time", "NZDT": "New Zealand Daylight Time", "CHADT": "Chatham Daylight Time"},
++ locale: "en_CY",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"JST": "JST", "AEST": "AEST", "HEPMX": "HEPMX", "GFT": "GFT", "CLT": "CLT", "MDT": "MDT", "HNEG": "HNEG", "BT": "BT", "WIB": "WIB", "ACST": "ACST", "HEEG": "HEEG", "PDT": "PDT", "VET": "VET", "HNCU": "HNCU", "WITA": "WITA", "MESZ": "MESZ", "UYST": "UYST", "EST": "EST", "EDT": "EDT", "ECT": "ECT", "JDT": "JDT", "HKST": "HKST", "ADT": "ADT", "UYT": "UYT", "WESZ": "WESZ", "ART": "ART", "HAST": "HAST", "ACDT": "ACDT", "MYT": "MYT", "HECU": "HECU", "NZST": "NZST", "ARST": "ARST", "CLST": "CLST", "HEPM": "HEPM", "AWDT": "AWDT", "ACWDT": "ACWDT", "OEZ": "OEZ", "COST": "COST", "BOT": "BOT", "MEZ": "MEZ", "HENOMX": "HENOMX", "CHAST": "CHAST", "AKDT": "AKDT", "WART": "WART", "WIT": "WIT", "HKT": "HKT", "CDT": "CDT", "GMT": "GMT", "IST": "IST", "HNPMX": "HNPMX", "WAST": "WAST", "OESZ": "OESZ", "HAT": "HAT", "HEOG": "HEOG", "HNOG": "HNOG", "TMST": "TMST", "CHADT": "CHADT", "WEZ": "WEZ", "WAT": "WAT", "WARST": "WARST", "GYT": "GYT", "COT": "COT", "CAT": "CAT", "MST": "MST", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "AKST": "AKST", "SAST": "SAST", "EAT": "EAT", "HNNOMX": "HNNOMX", "LHST": "LHST", "AEDT": "AEDT", "HNT": "HNT", "HADT": "HADT", "PST": "PST", "SGT": "SGT", "TMT": "TMT", "CST": "CST", "ChST": "ChST", "SRT": "SRT", "ACWST": "ACWST", "NZDT": "NZDT", "AST": "AST", "AWST": "AWST", "LHDT": "LHDT"},
+ }
+ }
+ 
+@@ -112,8 +89,8 @@ func (en *en_CY) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_CY) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
++ nMod10 := math.Mod(n, 10)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +115,7 @@ func (en *en_CY) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_CY) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_CY) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_CY) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_CY) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_CY) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_CY) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_CY' and handles both Whole and Real numbers based on 'v'
+ func (en *en_CY) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_CY' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_CY) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_CY'
+@@ -278,56 +195,7 @@ func (en *en_CY) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_CY'
+@@ -336,68 +204,7 @@ func (en *en_CY) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_CY'
+@@ -405,17 +212,6 @@ func (en *en_CY) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +220,6 @@ func (en *en_CY) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +228,6 @@ func (en *en_CY) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,19 +236,6 @@ func (en *en_CY) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -483,28 +244,6 @@ func (en *en_CY) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +252,6 @@ func (en *en_CY) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +260,6 @@ func (en *en_CY) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +268,5 @@ func (en *en_CY) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_DE/en_DE.go b/en_DE/en_DE.go
+index dbdc89f..bc26bad 100644
+--- a/en_DE/en_DE.go
++++ b/en_DE/en_DE.go
+@@ -10,70 +10,47 @@ import (
+ )
+ 
+ type en_DE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ percentSuffix string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_DE' locale
+ func New() locales.Translator {
+ return &en_DE{
+- locale: "en_DE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HNEG": "East Greenland Standard Time", "HEEG": "East Greenland Summer Time", "VET": "Venezuela Time", "PDT": "Pacific Daylight Time", "AWDT": "Australian Western Daylight Time", "∅∅∅": "Amazon Summer Time", "CLST": "Chile Summer Time", "OESZ": "Eastern European Summer Time", "COT": "Colombia Standard Time", "HECU": "Cuba Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HEOG": "West Greenland Summer Time", "PST": "Pacific Standard Time", "JDT": "Japan Daylight Time", "CDT": "Central Daylight Time", "MYT": "Malaysia Time", "NZDT": "New Zealand Daylight Time", "GMT": "Greenwich Mean Time", "AKDT": "Alaska Daylight Time", "GYT": "Guyana Time", "MST": "Mountain Standard Time", "HNT": "Newfoundland Standard Time", "NZST": "New Zealand Standard Time", "BOT": "Bolivia Time", "ACST": "Australian Central Standard Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "AEDT": "Australian Eastern Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "WART": "Western Argentina Standard Time", "COST": "Colombia Summer Time", "HNCU": "Cuba Standard Time", "WIT": "Eastern Indonesia Time", "ACWST": "Australian Central Western Standard Time", "WESZ": "Western European Summer Time", "IST": "India Standard Time", "EAT": "East Africa Time", "AKST": "Alaska Standard Time", "MDT": "Mountain Daylight Time", "TMST": "Turkmenistan Summer Time", "WAST": "West Africa Summer Time", "CAT": "Central Africa Time", "HNPMX": "Mexican Pacific Standard Time", "AEST": "Australian Eastern Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "ChST": "Chamorro Standard Time", "HNOG": "West Greenland Standard Time", "CHADT": "Chatham Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "ADT": "Atlantic Daylight Time", "AST": "Atlantic Standard Time", "SRT": "Suriname Time", "MESZ": "Central European Summer Time", "SAST": "South Africa Standard Time", "EST": "Eastern Standard Time", "EDT": "Eastern Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "AWST": "Australian Western Standard Time", "CHAST": "Chatham Standard Time", "WAT": "West Africa Standard Time", "UYST": "Uruguay Summer Time", "HAT": "Newfoundland Daylight Time", "SGT": "Singapore Standard Time", "CST": "Central Standard Time", "OEZ": "Eastern European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "UYT": "Uruguay Standard Time", "ART": "Argentina Standard Time", "WITA": "Central Indonesia Time", "LHST": "Lord Howe Standard Time", "GFT": "French Guiana Time", "TMT": "Turkmenistan Standard Time", "JST": "Japan Standard Time", "CLT": "Chile Standard Time", "HKT": "Hong Kong Standard Time", "HKST": "Hong Kong Summer Time", "MEZ": "Central European Standard Time", "WARST": "Western Argentina Summer Time", "ARST": "Argentina Summer Time", "WEZ": "Western European Standard Time", "ACDT": "Australian Central Daylight Time", "ECT": "Ecuador Time", "HEPMX": "Mexican Pacific Daylight Time"},
++ locale: "en_DE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ percentSuffix: " ",
++ timezones: map[string]string{"HAT": "HAT", "HKST": "HKST", "ECT": "ECT", "ART": "ART", "PDT": "PDT", "UYST": "UYST", "OESZ": "OESZ", "GYT": "GYT", "ACST": "ACST", "HNEG": "HNEG", "PST": "PST", "VET": "VET", "WAST": "WAST", "AKDT": "AKDT", "CLST": "CLST", "NZDT": "NZDT", "HNPM": "HNPM", "HNPMX": "HNPMX", "HEOG": "HEOG", "JDT": "JDT", "WESZ": "WESZ", "HNCU": "HNCU", "NZST": "NZST", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "WARST": "WARST", "HENOMX": "HENOMX", "CHADT": "CHADT", "SGT": "SGT", "GFT": "GFT", "CLT": "CLT", "WITA": "WITA", "MST": "MST", "GMT": "GMT", "HEEG": "HEEG", "WAT": "WAT", "WIT": "WIT", "HKT": "HKT", "CST": "CST", "BOT": "BOT", "WEZ": "WEZ", "SAST": "SAST", "HADT": "HADT", "LHDT": "LHDT", "HNT": "HNT", "HNOG": "HNOG", "MDT": "MDT", "MESZ": "MESZ", "ACDT": "ACDT", "AWST": "AWST", "CHAST": "CHAST", "AKST": "AKST", "COST": "COST", "EDT": "EDT", "TMT": "TMT", "CDT": "CDT", "ARST": "ARST", "WART": "WART", "COT": "COT", "ADT": "ADT", "SRT": "SRT", "LHST": "LHST", "ACWST": "ACWST", "OEZ": "OEZ", "CAT": "CAT", "ChST": "ChST", "EAT": "EAT", "AEDT": "AEDT", "AWDT": "AWDT", "BT": "BT", "AEST": "AEST", "ACWDT": "ACWDT", "UYT": "UYT", "TMST": "TMST", "WIB": "WIB", "AST": "AST", "HAST": "HAST", "HEPM": "HEPM", "IST": "IST", "∅∅∅": "∅∅∅", "EST": "EST", "MEZ": "MEZ", "MYT": "MYT", "JST": "JST", "HECU": "HECU"},
+ }
+ }
+ 
+@@ -140,7 +117,7 @@ func (en *en_DE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_DE) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -150,7 +127,7 @@ func (en *en_DE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_DE) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -160,7 +137,7 @@ func (en *en_DE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_DE) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -206,49 +183,14 @@ func (en *en_DE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_DE' and handles both Whole and Real numbers based on 'v'
+ func (en *en_DE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_DE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_DE) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
++ l := len(s) + 2
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -282,56 +224,7 @@ func (en *en_DE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_DE'
+@@ -340,68 +233,7 @@ func (en *en_DE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_DE'
+@@ -409,17 +241,6 @@ func (en *en_DE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -428,17 +249,6 @@ func (en *en_DE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -447,17 +257,6 @@ func (en *en_DE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -466,19 +265,6 @@ func (en *en_DE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -487,28 +273,6 @@ func (en *en_DE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -517,35 +281,6 @@ func (en *en_DE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -554,40 +289,6 @@ func (en *en_DE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -596,44 +297,5 @@ func (en *en_DE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_DG/en_DG.go b/en_DG/en_DG.go
+index b2e75c3..938f7e0 100644
+--- a/en_DG/en_DG.go
++++ b/en_DG/en_DG.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_DG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_DG' locale
+ func New() locales.Translator {
+ return &en_DG{
+- locale: "en_DG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"MYT": "Malaysia Time", "ARST": "Argentina Summer Time", "WESZ": "Western European Summer Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "CAT": "Central Africa Time", "GMT": "Greenwich Mean Time", "SGT": "Singapore Standard Time", "HNT": "Newfoundland Standard Time", "AEDT": "Australian Eastern Daylight Time", "AWST": "Australian Western Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "WITA": "Central Indonesia Time", "COST": "Colombia Summer Time", "AKST": "Alaska Standard Time", "ART": "Argentina Standard Time", "SAST": "South Africa Standard Time", "ACDT": "Australian Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "PST": "Pacific Standard Time", "MESZ": "Central European Summer Time", "IST": "India Standard Time", "UYST": "Uruguay Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWST": "Australian Central Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HAT": "Newfoundland Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "TMT": "Turkmenistan Standard Time", "BOT": "Bolivia Time", "OESZ": "Eastern European Summer Time", "ChST": "Chamorro Standard Time", "WART": "Western Argentina Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HEOG": "West Greenland Summer Time", "AEST": "Australian Eastern Standard Time", "CHADT": "Chatham Daylight Time", "CLT": "Chile Standard Time", "BT": "Bhutan Time", "HNOG": "West Greenland Standard Time", "WEZ": "Western European Standard Time", "HECU": "Cuba Daylight Time", "MDT": "Macau Summer Time", "AST": "Atlantic Standard Time", "WIB": "Western Indonesia Time", "VET": "Venezuela Time", "ECT": "Ecuador Time", "CHAST": "Chatham Standard Time", "TMST": "Turkmenistan Summer Time", "EAT": "East Africa Time", "HNPMX": "Mexican Pacific Standard Time", "MST": "Macau Standard Time", "AKDT": "Alaska Daylight Time", "PDT": "Pacific Daylight Time", "NZDT": "New Zealand Daylight Time", "OEZ": "Eastern European Standard Time", "WARST": "Western Argentina Summer Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "ADT": "Atlantic Daylight Time", "HKST": "Hong Kong Summer Time", "AWDT": "Australian Western Daylight Time", "HNCU": "Cuba Standard Time", "LHDT": "Lord Howe Daylight Time", "CLST": "Chile Summer Time", "ACST": "Australian Central Standard Time", "EST": "Eastern Standard Time", "GYT": "Guyana Time", "UYT": "Uruguay Standard Time", "HKT": "Hong Kong Standard Time", "JDT": "Japan Daylight Time", "EDT": "Eastern Daylight Time", "WIT": "Eastern Indonesia Time", "SRT": "Suriname Time", "NZST": "New Zealand Standard Time", "GFT": "French Guiana Time", "JST": "Japan Standard Time", "HEEG": "East Greenland Summer Time", "∅∅∅": "Azores Summer Time", "COT": "Colombia Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "MEZ": "Central European Standard Time", "LHST": "Lord Howe Standard Time", "HNEG": "East Greenland Standard Time", "HNNOMX": "Northwest Mexico Standard Time"},
++ locale: "en_DG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsWide: []string{"am", "pm"},
++ timezones: map[string]string{"ACDT": "ACDT", "HNPM": "HNPM", "CHADT": "CHADT", "ACWST": "ACWST", "HNPMX": "HNPMX", "HNT": "HNT", "HKST": "HKST", "ADT": "ADT", "HAT": "HAT", "CST": "CST", "GMT": "GMT", "HADT": "HADT", "MYT": "MYT", "UYST": "UYST", "SGT": "SGT", "EST": "EST", "WITA": "WITA", "SRT": "SRT", "JST": "JST", "WESZ": "WESZ", "HEPMX": "HEPMX", "GYT": "GYT", "∅∅∅": "∅∅∅", "NZST": "NZST", "ART": "ART", "ARST": "ARST", "EAT": "EAT", "HAST": "HAST", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "TMST": "TMST", "CAT": "CAT", "AKDT": "AKDT", "HEOG": "HEOG", "HEPM": "HEPM", "WAST": "WAST", "PDT": "PDT", "LHDT": "LHDT", "IST": "IST", "AWST": "AWST", "UYT": "UYT", "COT": "COT", "COST": "COST", "CDT": "CDT", "MEZ": "MEZ", "MESZ": "MESZ", "ACWDT": "ACWDT", "WIB": "WIB", "BOT": "BOT", "HECU": "HECU", "WAT": "WAT", "SAST": "SAST", "ACST": "ACST", "HNCU": "HNCU", "ChST": "ChST", "HEEG": "HEEG", "LHST": "LHST", "AEDT": "AEDT", "VET": "VET", "AKST": "AKST", "WARST": "WARST", "WIT": "WIT", "MST": "MST", "AST": "AST", "BT": "BT", "GFT": "GFT", "OESZ": "OESZ", "HNOG": "HNOG", "ECT": "ECT", "OEZ": "OEZ", "PST": "PST", "WEZ": "WEZ", "WART": "WART", "EDT": "EDT", "NZDT": "NZDT", "MDT": "MDT", "HENOMX": "HENOMX", "TMT": "TMT", "CLST": "CLST", "HNEG": "HNEG", "JDT": "JDT", "CHAST": "CHAST", "AEST": "AEST", "HKT": "HKT", "CLT": "CLT"},
+ }
+ }
+ 
+@@ -138,7 +117,7 @@ func (en *en_DG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_DG) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_DG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_DG) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_DG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_DG) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +183,13 @@ func (en *en_DG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_DG' and handles both Whole and Real numbers based on 'v'
+ func (en *en_DG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_DG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_DG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_DG'
+@@ -278,56 +197,7 @@ func (en *en_DG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_DG'
+@@ -336,68 +206,7 @@ func (en *en_DG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_DG'
+@@ -405,17 +214,6 @@ func (en *en_DG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +222,6 @@ func (en *en_DG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +230,6 @@ func (en *en_DG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,19 +238,6 @@ func (en *en_DG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/en_DK/en_DK.go b/en_DK/en_DK.go
+index 3a2a4d9..c19ec7d 100644
+--- a/en_DK/en_DK.go
++++ b/en_DK/en_DK.go
+@@ -10,70 +10,47 @@ import (
+ )
+ 
+ type en_DK struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ percentSuffix string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_DK' locale
+ func New() locales.Translator {
+ return &en_DK{
+- locale: "en_DK",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ".",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "kr.", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HEOG": "West Greenland Summer Time", "ACWST": "Australian Central Western Standard Time", "CLT": "Chile Standard Time", "TMT": "Turkmenistan Standard Time", "HNCU": "Cuba Standard Time", "EDT": "Eastern Daylight Time", "MDT": "Macau Summer Time", "AST": "Atlantic Standard Time", "GYT": "Guyana Time", "ART": "Argentina Standard Time", "NZST": "New Zealand Standard Time", "ChST": "Chamorro Standard Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "EAT": "East Africa Time", "ADT": "Atlantic Daylight Time", "GFT": "French Guiana Time", "EST": "Eastern Standard Time", "HAT": "Newfoundland Daylight Time", "PDT": "Pacific Daylight Time", "AEST": "Australian Eastern Standard Time", "HEEG": "East Greenland Summer Time", "ECT": "Ecuador Time", "WARST": "Western Argentina Summer Time", "HNPMX": "Mexican Pacific Standard Time", "MYT": "Malaysia Time", "ACWDT": "Australian Central Western Daylight Time", "MEZ": "Central European Standard Time", "SGT": "Singapore Standard Time", "AKST": "Alaska Standard Time", "CHAST": "Chatham Standard Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "CAT": "Central Africa Time", "WEZ": "Western European Standard Time", "BT": "Bhutan Time", "SRT": "Suriname Time", "MESZ": "Central European Summer Time", "∅∅∅": "Amazon Summer Time", "WART": "Western Argentina Standard Time", "COT": "Colombia Standard Time", "AKDT": "Alaska Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "ARST": "Argentina Summer Time", "HNOG": "West Greenland Standard Time", "AEDT": "Australian Eastern Daylight Time", "TMST": "Turkmenistan Summer Time", "WAST": "West Africa Summer Time", "COST": "Colombia Summer Time", "CST": "Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "AWST": "Australian Western Standard Time", "ACST": "Australian Central Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AWDT": "Australian Western Daylight Time", "SAST": "South Africa Standard Time", "WAT": "West Africa Standard Time", "HECU": "Cuba Daylight Time", "WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time", "GMT": "Greenwich Mean Time", "WIB": "Western Indonesia Time", "PST": "Pacific Standard Time", "CHADT": "Chatham Daylight Time", "JST": "Japan Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "MST": "Macau Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "UYT": "Uruguay Standard Time", "CLST": "Chile Summer Time", "HNEG": "East Greenland Standard Time", "ACDT": "Australian Central Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "BOT": "Bolivia Time", "CDT": "Central Daylight Time", "UYST": "Uruguay Summer Time", "VET": "Venezuela Time", "HNT": "Newfoundland Standard Time", "HKT": "Hong Kong Standard Time", "JDT": "Japan Daylight Time", "HKST": "Hong Kong Summer Time", "WITA": "Central Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time"},
++ locale: "en_DK",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ".",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "kr.", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ percentSuffix: " ",
++ timezones: map[string]string{"CDT": "CDT", "MEZ": "MEZ", "HNPMX": "HNPMX", "HNT": "HNT", "ADT": "ADT", "HADT": "HADT", "IST": "IST", "HNEG": "HNEG", "GYT": "GYT", "CLST": "CLST", "HEEG": "HEEG", "AEST": "AEST", "HNCU": "HNCU", "GFT": "GFT", "UYT": "UYT", "OESZ": "OESZ", "ART": "ART", "SRT": "SRT", "ACDT": "ACDT", "HNPM": "HNPM", "JDT": "JDT", "HKST": "HKST", "WIB": "WIB", "MESZ": "MESZ", "PST": "PST", "CHAST": "CHAST", "WESZ": "WESZ", "HENOMX": "HENOMX", "UYST": "UYST", "HECU": "HECU", "OEZ": "OEZ", "HAT": "HAT", "AKDT": "AKDT", "WIT": "WIT", "HKT": "HKT", "EAT": "EAT", "JST": "JST", "CHADT": "CHADT", "SGT": "SGT", "WAST": "WAST", "WITA": "WITA", "MYT": "MYT", "∅∅∅": "∅∅∅", "CLT": "CLT", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "HEPM": "HEPM", "CAT": "CAT", "MST": "MST", "HAST": "HAST", "VET": "VET", "AKST": "AKST", "TMST": "TMST", "WARST": "WARST", "COT": "COT", "EST": "EST", "CST": "CST", "AWDT": "AWDT", "LHST": "LHST", "PDT": "PDT", "HEPMX": "HEPMX", "EDT": "EDT", "AST": "AST", "GMT": "GMT", "ChST": "ChST", "WART": "WART", "TMT": "TMT", "ACWDT": "ACWDT", "AEDT": "AEDT", "SAST": "SAST", "NZST": "NZST", "NZDT": "NZDT", "BOT": "BOT", "ACST": "ACST", "ACWST": "ACWST", "COST": "COST", "HEOG": "HEOG", "MDT": "MDT", "AWST": "AWST", "BT": "BT", "WEZ": "WEZ", "WAT": "WAT", "ECT": "ECT", "ARST": "ARST", "HNOG": "HNOG"},
+ }
+ }
+ 
+@@ -140,7 +117,7 @@ func (en *en_DK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_DK) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -150,7 +127,7 @@ func (en *en_DK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_DK) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -160,7 +137,7 @@ func (en *en_DK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_DK) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -206,49 +183,14 @@ func (en *en_DK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_DK' and handles both Whole and Real numbers based on 'v'
+ func (en *en_DK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_DK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_DK) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
++ l := len(s) + 2
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -282,56 +224,7 @@ func (en *en_DK) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_DK'
+@@ -340,68 +233,7 @@ func (en *en_DK) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_DK'
+@@ -409,17 +241,6 @@ func (en *en_DK) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -428,17 +249,6 @@ func (en *en_DK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -447,17 +257,6 @@ func (en *en_DK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -466,19 +265,6 @@ func (en *en_DK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/en_DM/en_DM.go b/en_DM/en_DM.go
+index b296117..efe33b0 100644
+--- a/en_DM/en_DM.go
++++ b/en_DM/en_DM.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_DM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_DM' locale
+ func New() locales.Translator {
+ return &en_DM{
+- locale: "en_DM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "$", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HNNOMX": "Northwest Mexico Standard Time", "EST": "Eastern Standard Time", "ADT": "Atlantic Daylight Time", "VET": "Venezuela Time", "MESZ": "Central European Summer Time", "SAST": "South Africa Standard Time", "ECT": "Ecuador Time", "∅∅∅": "Amazon Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "AWST": "Australian Western Standard Time", "AWDT": "Australian Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZST": "New Zealand Standard Time", "CLST": "Chile Summer Time", "HECU": "Cuba Daylight Time", "ACWST": "Australian Central Western Standard Time", "HNT": "Newfoundland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ChST": "Chamorro Standard Time", "CAT": "Central Africa Time", "WEZ": "Western European Standard Time", "IST": "India Standard Time", "JST": "Japan Standard Time", "ACST": "Australian Central Standard Time", "COST": "Colombia Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "WESZ": "Western European Summer Time", "PDT": "Pacific Daylight Time", "GFT": "French Guiana Time", "HNCU": "Cuba Standard Time", "CHADT": "Chatham Daylight Time", "WAST": "West Africa Summer Time", "OESZ": "Eastern European Summer Time", "CST": "Central Standard Time", "UYT": "Uruguay Standard Time", "AEST": "Australian Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "LHDT": "Lord Howe Daylight Time", "LHST": "Lord Howe Standard Time", "CLT": "Chile Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "GMT": "Greenwich Mean Time", "TMST": "Turkmenistan Summer Time", "WARST": "Western Argentina Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AKST": "Alaska Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "CHAST": "Chatham Standard Time", "JDT": "Japan Daylight Time", "HNEG": "East Greenland Standard Time", "ACDT": "Australian Central Daylight Time", "OEZ": "Eastern European Standard Time", "COT": "Colombia Standard Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "SRT": "Suriname Time", "HKT": "Hong Kong Standard Time", "WITA": "Central Indonesia Time", "MDT": "Mountain Daylight Time", "ART": "Argentina Standard Time", "NZDT": "New Zealand Daylight Time", "WAT": "West Africa Standard Time", "WART": "Western Argentina Standard Time", "AKDT": "Alaska Daylight Time", "HEOG": "West Greenland Summer Time", "BOT": "Bolivia Time", "TMT": "Turkmenistan Standard Time", "SGT": "Singapore Standard Time", "CDT": "Central Daylight Time", "GYT": "Guyana Time", "MST": "Mountain Standard Time", "ARST": "Argentina Summer Time", "HNOG": "West Greenland Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HKST": "Hong Kong Summer Time", "MEZ": "Central European Standard Time", "EDT": "Eastern Daylight Time", "HEEG": "East Greenland Summer Time", "EAT": "East Africa Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "BT": "Bhutan Time", "HAT": "Newfoundland Daylight Time", "PST": "Pacific Standard Time", "AST": "Atlantic Standard Time"},
++ locale: "en_DM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "$", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEPM": "HEPM", "NZST": "NZST", "AST": "AST", "SRT": "SRT", "HEEG": "HEEG", "BOT": "BOT", "AEST": "AEST", "VET": "VET", "MST": "MST", "EST": "EST", "CLT": "CLT", "HAST": "HAST", "HADT": "HADT", "WEZ": "WEZ", "WAT": "WAT", "HNT": "HNT", "WARST": "WARST", "HKT": "HKT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "GFT": "GFT", "WART": "WART", "IST": "IST", "PDT": "PDT", "CST": "CST", "EDT": "EDT", "HKST": "HKST", "CLST": "CLST", "WITA": "WITA", "NZDT": "NZDT", "WIB": "WIB", "ADT": "ADT", "JDT": "JDT", "OESZ": "OESZ", "SAST": "SAST", "TMT": "TMT", "MDT": "MDT", "AEDT": "AEDT", "PST": "PST", "COST": "COST", "HEOG": "HEOG", "ART": "ART", "MYT": "MYT", "CHADT": "CHADT", "COT": "COT", "HNOG": "HNOG", "HNPM": "HNPM", "UYST": "UYST", "WIT": "WIT", "GMT": "GMT", "ARST": "ARST", "AWDT": "AWDT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "LHDT": "LHDT", "OEZ": "OEZ", "HAT": "HAT", "CDT": "CDT", "MESZ": "MESZ", "JST": "JST", "ACWDT": "ACWDT", "SGT": "SGT", "MEZ": "MEZ", "ACDT": "ACDT", "ACWST": "ACWST", "HECU": "HECU", "WAST": "WAST", "AKST": "AKST", "GYT": "GYT", "CAT": "CAT", "BT": "BT", "HNCU": "HNCU", "AKDT": "AKDT", "∅∅∅": "∅∅∅", "TMST": "TMST", "ChST": "ChST", "WESZ": "WESZ", "EAT": "EAT", "AWST": "AWST", "LHST": "LHST", "UYT": "UYT", "ECT": "ECT", "ACST": "ACST", "CHAST": "CHAST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_DM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_DM) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_DM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_DM) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_DM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_DM) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_DM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_DM' and handles both Whole and Real numbers based on 'v'
+ func (en *en_DM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_DM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_DM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_DM'
+@@ -278,56 +195,7 @@ func (en *en_DM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_DM'
+@@ -336,84 +204,33 @@ func (en *en_DM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_DM'
++func (en *en_DM) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_DM'
+-func (en *en_DM) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_DM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_DM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_DM) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_DM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_DM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_DM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_DM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_ER/en_ER.go b/en_ER/en_ER.go
+index 05e4f22..a2090e9 100644
+--- a/en_ER/en_ER.go
++++ b/en_ER/en_ER.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_ER struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_ER' locale
+ func New() locales.Translator {
+ return &en_ER{
+- locale: "en_ER",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "Nfk", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"WEZ": "Western European Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "GMT": "Greenwich Mean Time", "PDT": "Pacific Daylight Time", "AWDT": "Australian Western Daylight Time", "CLST": "Chile Summer Time", "TMT": "Turkmenistan Standard Time", "OESZ": "Eastern European Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "CDT": "Central Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "CHADT": "Chatham Daylight Time", "ChST": "Chamorro Standard Time", "ADT": "Atlantic Daylight Time", "HAT": "Newfoundland Daylight Time", "BOT": "Bolivia Time", "AST": "Atlantic Standard Time", "ARST": "Argentina Summer Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "MST": "Mountain Standard Time", "HEOG": "West Greenland Summer Time", "WESZ": "Western European Summer Time", "UYT": "Uruguay Standard Time", "CAT": "Central Africa Time", "UYST": "Uruguay Summer Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "ACDT": "Australian Central Daylight Time", "EAT": "East Africa Time", "MYT": "Malaysia Time", "WIT": "Eastern Indonesia Time", "HKT": "Hong Kong Standard Time", "NZST": "New Zealand Standard Time", "HNT": "Newfoundland Standard Time", "ACST": "Australian Central Standard Time", "CST": "Central Standard Time", "HKST": "Hong Kong Summer Time", "NZDT": "New Zealand Daylight Time", "∅∅∅": "Amazon Summer Time", "HECU": "Cuba Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "GYT": "Guyana Time", "AKST": "Alaska Standard Time", "CLT": "Chile Standard Time", "TMST": "Turkmenistan Summer Time", "WARST": "Western Argentina Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MESZ": "Central European Summer Time", "IST": "India Standard Time", "WAT": "West Africa Standard Time", "ECT": "Ecuador Time", "BT": "Bhutan Time", "SRT": "Suriname Time", "ACWST": "Australian Central Western Standard Time", "EDT": "Eastern Daylight Time", "JST": "Japan Standard Time", "HNEG": "East Greenland Standard Time", "EST": "Eastern Standard Time", "LHST": "Lord Howe Standard Time", "CHAST": "Chatham Standard Time", "VET": "Venezuela Time", "ART": "Argentina Standard Time", "WITA": "Central Indonesia Time", "HNOG": "West Greenland Standard Time", "WAST": "West Africa Summer Time", "AWST": "Australian Western Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "AKDT": "Alaska Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "PST": "Pacific Standard Time", "AEDT": "Australian Eastern Daylight Time", "MEZ": "Central European Standard Time", "LHDT": "Lord Howe Daylight Time", "SAST": "South Africa Standard Time", "JDT": "Japan Daylight Time", "MDT": "Mountain Daylight Time", "WIB": "Western Indonesia Time", "AEST": "Australian Eastern Standard Time", "OEZ": "Eastern European Standard Time", "WART": "Western Argentina Standard Time", "COST": "Colombia Summer Time"},
++ locale: "en_ER",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "Nfk", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"PST": "PST", "WEZ": "WEZ", "HECU": "HECU", "WAT": "WAT", "AKST": "AKST", "TMST": "TMST", "ART": "ART", "GYT": "GYT", "HEOG": "HEOG", "EDT": "EDT", "AST": "AST", "AEST": "AEST", "ACWST": "ACWST", "HNT": "HNT", "HAT": "HAT", "CLT": "CLT", "CLST": "CLST", "HADT": "HADT", "LHDT": "LHDT", "WESZ": "WESZ", "HENOMX": "HENOMX", "AEDT": "AEDT", "HNCU": "HNCU", "HKT": "HKT", "MYT": "MYT", "AWST": "AWST", "HNPMX": "HNPMX", "CST": "CST", "SRT": "SRT", "ACST": "ACST", "AWDT": "AWDT", "CHADT": "CHADT", "OESZ": "OESZ", "GFT": "GFT", "COT": "COT", "MESZ": "MESZ", "MEZ": "MEZ", "HNPM": "HNPM", "UYT": "UYT", "ChST": "ChST", "HNEG": "HNEG", "IST": "IST", "OEZ": "OEZ", "WIT": "WIT", "COST": "COST", "WIB": "WIB", "CDT": "CDT", "MDT": "MDT", "∅∅∅": "∅∅∅", "WAST": "WAST", "NZDT": "NZDT", "LHST": "LHST", "WART": "WART", "HNOG": "HNOG", "BT": "BT", "HAST": "HAST", "HEPM": "HEPM", "SGT": "SGT", "EST": "EST", "BOT": "BOT", "HEEG": "HEEG", "ACDT": "ACDT", "EAT": "EAT", "JST": "JST", "JDT": "JDT", "UYST": "UYST", "PDT": "PDT", "HEPMX": "HEPMX", "TMT": "TMT", "GMT": "GMT", "ARST": "ARST", "MST": "MST", "HNNOMX": "HNNOMX", "VET": "VET", "AKDT": "AKDT", "WARST": "WARST", "HKST": "HKST", "ADT": "ADT", "NZST": "NZST", "ECT": "ECT", "CAT": "CAT", "ACWDT": "ACWDT", "SAST": "SAST", "WITA": "WITA", "CHAST": "CHAST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_ER) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_ER) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_ER) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_ER) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_ER) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_ER) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_ER) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_ER' and handles both Whole and Real numbers based on 'v'
+ func (en *en_ER) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_ER' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_ER) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_ER'
+@@ -278,56 +195,7 @@ func (en *en_ER) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_ER'
+@@ -336,84 +204,33 @@ func (en *en_ER) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_ER'
++func (en *en_ER) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_ER'
+-func (en *en_ER) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_ER) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_ER) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_ER) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_ER) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_ER) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_ER) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_ER) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_FI/en_FI.go b/en_FI/en_FI.go
+index 16cebc9..40022bd 100644
+--- a/en_FI/en_FI.go
++++ b/en_FI/en_FI.go
+@@ -10,70 +10,48 @@ import (
+ )
+ 
+ type en_FI struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ percentSuffix string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_FI' locale
+ func New() locales.Translator {
+ return &en_FI{
+- locale: "en_FI",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ".",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"WARST": "Western Argentina Summer Time", "GMT": "Greenwich Mean Time", "GYT": "Guyana Time", "HADT": "Hawaii-Aleutian Daylight Time", "BT": "Bhutan Time", "AEST": "Australian Eastern Standard Time", "WITA": "Central Indonesia Time", "WAST": "West Africa Summer Time", "WIT": "Eastern Indonesia Time", "ACWST": "Australian Central Western Standard Time", "ECT": "Ecuador Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "∅∅∅": "Amazon Summer Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "HNCU": "Cuba Standard Time", "WESZ": "Western European Summer Time", "ACWDT": "Australian Central Western Daylight Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "AST": "Atlantic Standard Time", "CDT": "Central Daylight Time", "AWDT": "Australian Western Daylight Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "HECU": "Cuba Daylight Time", "MYT": "Malaysia Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "CLST": "Chile Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AKST": "Alaska Standard Time", "CST": "Central Standard Time", "ADT": "Atlantic Daylight Time", "WIB": "Western Indonesia Time", "HAT": "Newfoundland Daylight Time", "SAST": "South Africa Standard Time", "JST": "Japan Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "SRT": "Suriname Time", "HEOG": "West Greenland Summer Time", "IST": "India Standard Time", "OESZ": "Eastern European Summer Time", "EST": "Eastern Standard Time", "EDT": "Eastern Daylight Time", "HNT": "Newfoundland Standard Time", "GFT": "French Guiana Time", "EAT": "East Africa Time", "OEZ": "Eastern European Standard Time", "MESZ": "Central European Summer Time", "HNEG": "East Greenland Standard Time", "UYST": "Uruguay Summer Time", "AEDT": "Australian Eastern Daylight Time", "HKT": "Hong Kong Standard Time", "CHADT": "Chatham Daylight Time", "UYT": "Uruguay Standard Time", "CHAST": "Chatham Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "JDT": "Japan Daylight Time", "ChST": "Chamorro Standard Time", "COST": "Colombia Summer Time", "AKDT": "Alaska Daylight Time", "HNOG": "West Greenland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZST": "New Zealand Standard Time", "CLT": "Chile Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "PDT": "Pacific Daylight Time", "MEZ": "Central European Standard Time", "ACST": "Australian Central Standard Time", "VET": "Venezuela Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "HEEG": "East Greenland Summer Time", "WAT": "West Africa Standard Time", "PST": "Pacific Standard Time", "WEZ": "Western European Standard Time", "AWST": "Australian Western Standard Time", "HKST": "Hong Kong Summer Time", "WART": "Western Argentina Standard Time"},
++ locale: "en_FI",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ group: " ",
++ timeSeparator: ".",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ percentSuffix: " ",
++ timezones: map[string]string{"NZST": "NZST", "SRT": "SRT", "UYT": "UYT", "VET": "VET", "COST": "COST", "HEPMX": "HEPMX", "WAT": "WAT", "WITA": "WITA", "AST": "AST", "BOT": "BOT", "HNEG": "HNEG", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "HKST": "HKST", "ADT": "ADT", "MEZ": "MEZ", "HECU": "HECU", "HNPMX": "HNPMX", "TMST": "TMST", "MST": "MST", "HAST": "HAST", "AWST": "AWST", "BT": "BT", "WIT": "WIT", "CDT": "CDT", "AEST": "AEST", "OEZ": "OEZ", "HEOG": "HEOG", "NZDT": "NZDT", "PDT": "PDT", "HAT": "HAT", "SAST": "SAST", "CST": "CST", "HADT": "HADT", "MYT": "MYT", "HEPM": "HEPM", "ECT": "ECT", "AKDT": "AKDT", "OESZ": "OESZ", "HNT": "HNT", "TMT": "TMT", "WIB": "WIB", "JDT": "JDT", "UYST": "UYST", "IST": "IST", "ART": "ART", "CHADT": "CHADT", "JST": "JST", "COT": "COT", "HKT": "HKT", "LHST": "LHST", "LHDT": "LHDT", "PST": "PST", "AKST": "AKST", "CLST": "CLST", "ACST": "ACST", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "MDT": "MDT", "EAT": "EAT", "ACWST": "ACWST", "WARST": "WARST", "CLT": "CLT", "AWDT": "AWDT", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "EDT": "EDT", "ChST": "ChST", "SGT": "SGT", "HNCU": "HNCU", "GFT": "GFT", "GYT": "GYT", "CAT": "CAT", "GMT": "GMT", "AEDT": "AEDT", "WEZ": "WEZ", "WAST": "WAST", "WESZ": "WESZ", "WART": "WART", "HNOG": "HNOG", "EST": "EST", "ARST": "ARST", "MESZ": "MESZ", "HEEG": "HEEG", "HNPM": "HNPM"},
+ }
+ }
+ 
+@@ -140,7 +118,7 @@ func (en *en_FI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_FI) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -150,7 +128,7 @@ func (en *en_FI) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_FI) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -160,7 +138,7 @@ func (en *en_FI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_FI) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -206,51 +184,14 @@ func (en *en_FI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_FI' and handles both Whole and Real numbers based on 'v'
+ func (en *en_FI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(en.group) - 1; j >= 0; j-- {
+- b = append(b, en.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_FI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_FI) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
++ l := len(s) + 2
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -284,58 +225,7 @@ func (en *en_FI) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(en.group) - 1; j >= 0; j-- {
+- b = append(b, en.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_FI'
+@@ -344,70 +234,7 @@ func (en *en_FI) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(en.group) - 1; j >= 0; j-- {
+- b = append(b, en.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_FI'
+@@ -415,17 +242,6 @@ func (en *en_FI) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -434,17 +250,6 @@ func (en *en_FI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -453,17 +258,6 @@ func (en *en_FI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -472,19 +266,6 @@ func (en *en_FI) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/en_FJ/en_FJ.go b/en_FJ/en_FJ.go
+index de314a9..d54580e 100644
+--- a/en_FJ/en_FJ.go
++++ b/en_FJ/en_FJ.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_FJ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_FJ' locale
+ func New() locales.Translator {
+ return &en_FJ{
+- locale: "en_FJ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "$", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"AKDT": "Alaska Daylight Time", "ChST": "Chamorro Standard Time", "TMST": "Turkmenistan Summer Time", "WAT": "West Africa Standard Time", "MYT": "Malaysia Time", "HKST": "Hong Kong Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "MST": "Macau Standard Time", "UYT": "Uruguay Standard Time", "CDT": "Central Daylight Time", "WESZ": "Western European Summer Time", "AEST": "Australian Eastern Standard Time", "WARST": "Western Argentina Summer Time", "COT": "Colombia Standard Time", "ADT": "Atlantic Daylight Time", "AWST": "Australian Western Standard Time", "IST": "India Standard Time", "EAT": "East Africa Time", "WART": "Western Argentina Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "WEZ": "Western European Standard Time", "ARST": "Argentina Summer Time", "CHAST": "Chatham Standard Time", "JST": "Japan Standard Time", "NZST": "New Zealand Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "WIT": "Eastern Indonesia Time", "HNT": "Newfoundland Standard Time", "ART": "Argentina Standard Time", "HEOG": "West Greenland Summer Time", "HECU": "Cuba Daylight Time", "CST": "Central Standard Time", "PST": "Pacific Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "BOT": "Bolivia Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "UYST": "Uruguay Summer Time", "VET": "Venezuela Time", "AEDT": "Australian Eastern Daylight Time", "COST": "Colombia Summer Time", "GYT": "Guyana Time", "WITA": "Central Indonesia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "∅∅∅": "Amazon Summer Time", "CAT": "Central Africa Time", "HNOG": "West Greenland Standard Time", "HKT": "Hong Kong Standard Time", "MESZ": "Central European Summer Time", "CLST": "Chile Summer Time", "OESZ": "Eastern European Summer Time", "ECT": "Ecuador Time", "MDT": "Macau Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "SRT": "Suriname Time", "CLT": "Chile Standard Time", "GFT": "French Guiana Time", "BT": "Bhutan Time", "CHADT": "Chatham Daylight Time", "HEEG": "East Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "OEZ": "Eastern European Standard Time", "SAST": "South Africa Standard Time", "WAST": "West Africa Summer Time", "EST": "Eastern Standard Time", "EDT": "Eastern Daylight Time", "PDT": "Pacific Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "ACDT": "Australian Central Daylight Time", "AST": "Atlantic Standard Time", "WIB": "Western Indonesia Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "NZDT": "New Zealand Daylight Time", "JDT": "Japan Daylight Time", "HNEG": "East Greenland Standard Time", "GMT": "Greenwich Mean Time", "AKST": "Alaska Standard Time", "ACWST": "Australian Central Western Standard Time", "HAT": "Newfoundland Daylight Time", "MEZ": "Central European Standard Time", "ACST": "Australian Central Standard Time"},
++ locale: "en_FJ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "$", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HADT": "HADT", "LHST": "LHST", "AEDT": "AEDT", "HECU": "HECU", "OESZ": "OESZ", "CST": "CST", "HEEG": "HEEG", "ARST": "ARST", "SRT": "SRT", "GYT": "GYT", "∅∅∅": "∅∅∅", "EDT": "EDT", "HKT": "HKT", "WIB": "WIB", "CLST": "CLST", "NZDT": "NZDT", "HENOMX": "HENOMX", "MYT": "MYT", "WEZ": "WEZ", "WESZ": "WESZ", "WAT": "WAT", "HNOG": "HNOG", "HKST": "HKST", "MST": "MST", "BOT": "BOT", "AWST": "AWST", "AEST": "AEST", "UYT": "UYT", "AKDT": "AKDT", "OEZ": "OEZ", "EST": "EST", "WITA": "WITA", "ADT": "ADT", "HNNOMX": "HNNOMX", "IST": "IST", "COST": "COST", "CAT": "CAT", "MDT": "MDT", "EAT": "EAT", "LHDT": "LHDT", "HNPM": "HNPM", "JST": "JST", "JDT": "JDT", "CHAST": "CHAST", "CHADT": "CHADT", "SAST": "SAST", "TMT": "TMT", "CLT": "CLT", "CDT": "CDT", "NZST": "NZST", "MEZ": "MEZ", "AKST": "AKST", "WARST": "WARST", "COT": "COT", "PST": "PST", "SGT": "SGT", "TMST": "TMST", "ECT": "ECT", "HAST": "HAST", "PDT": "PDT", "BT": "BT", "UYST": "UYST", "HEPMX": "HEPMX", "ChST": "ChST", "MESZ": "MESZ", "GFT": "GFT", "ART": "ART", "HEPM": "HEPM", "ACWDT": "ACWDT", "HNCU": "HNCU", "HNPMX": "HNPMX", "WART": "WART", "HEOG": "HEOG", "AST": "AST", "ACDT": "ACDT", "AWDT": "AWDT", "VET": "VET", "HNT": "HNT", "ACST": "ACST", "ACWST": "ACWST", "WAST": "WAST", "HAT": "HAT", "WIT": "WIT", "GMT": "GMT", "HNEG": "HNEG"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_FJ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_FJ) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_FJ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_FJ) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_FJ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_FJ) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_FJ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_FJ' and handles both Whole and Real numbers based on 'v'
+ func (en *en_FJ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_FJ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_FJ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_FJ'
+@@ -278,56 +195,7 @@ func (en *en_FJ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_FJ'
+@@ -336,84 +204,33 @@ func (en *en_FJ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_FJ'
++func (en *en_FJ) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_FJ'
+-func (en *en_FJ) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_FJ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_FJ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_FJ) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_FJ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_FJ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_FJ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_FJ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_FK/en_FK.go b/en_FK/en_FK.go
+index 23b049b..5c59834 100644
+--- a/en_FK/en_FK.go
++++ b/en_FK/en_FK.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_FK struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_FK' locale
+ func New() locales.Translator {
+ return &en_FK{
+- locale: "en_FK",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "£", "FRF", "GB£", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"SGT": "Singapore Standard Time", "UYT": "Uruguay Standard Time", "WESZ": "Western European Summer Time", "NZST": "New Zealand Standard Time", "CHADT": "Chatham Daylight Time", "JST": "Japan Standard Time", "BOT": "Bolivia Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "VET": "Venezuela Time", "ARST": "Argentina Summer Time", "MESZ": "Central European Summer Time", "HEEG": "East Greenland Summer Time", "CAT": "Central Africa Time", "OEZ": "Eastern European Standard Time", "COT": "Colombia Standard Time", "AEST": "Australian Eastern Standard Time", "AWST": "Australian Western Standard Time", "OESZ": "Eastern European Summer Time", "EDT": "Eastern Daylight Time", "AWDT": "Australian Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "WARST": "Western Argentina Summer Time", "GMT": "Greenwich Mean Time", "HECU": "Cuba Daylight Time", "MST": "Macau Standard Time", "WEZ": "Western European Standard Time", "WITA": "Central Indonesia Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "PST": "Pacific Standard Time", "HKST": "Hong Kong Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "AST": "Atlantic Standard Time", "HNT": "Newfoundland Standard Time", "IST": "India Standard Time", "ChST": "Chamorro Standard Time", "WIB": "Western Indonesia Time", "ART": "Argentina Standard Time", "HAT": "Newfoundland Daylight Time", "HKT": "Hong Kong Standard Time", "LHST": "Lord Howe Standard Time", "TMT": "Turkmenistan Standard Time", "ACST": "Australian Central Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "BT": "Bhutan Time", "SAST": "South Africa Standard Time", "CLST": "Chile Summer Time", "∅∅∅": "Peru Summer Time", "UYST": "Uruguay Summer Time", "CDT": "Central Daylight Time", "HEOG": "West Greenland Summer Time", "ACWDT": "Australian Central Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHAST": "Chatham Standard Time", "HNEG": "East Greenland Standard Time", "ACDT": "Australian Central Daylight Time", "EST": "Eastern Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HNOG": "West Greenland Standard Time", "MEZ": "Central European Standard Time", "WAST": "West Africa Summer Time", "COST": "Colombia Summer Time", "ADT": "Atlantic Daylight Time", "GYT": "Guyana Time", "ECT": "Ecuador Time", "AKST": "Alaska Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWST": "Australian Central Western Standard Time", "JDT": "Japan Daylight Time", "GFT": "French Guiana Time", "EAT": "East Africa Time", "WAT": "West Africa Standard Time", "WART": "Western Argentina Standard Time", "MYT": "Malaysia Time", "WIT": "Eastern Indonesia Time", "TMST": "Turkmenistan Summer Time", "MDT": "Macau Summer Time", "PDT": "Pacific Daylight Time", "AEDT": "Australian Eastern Daylight Time", "CLT": "Chile Standard Time", "AKDT": "Alaska Daylight Time", "CST": "Central Standard Time", "SRT": "Suriname Time"},
++ locale: "en_FK",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "£", "FRF", "GB£", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsWide: []string{"am", "pm"},
++ timezones: map[string]string{"AEDT": "AEDT", "GYT": "GYT", "HAST": "HAST", "COT": "COT", "EAT": "EAT", "HEOG": "HEOG", "ACST": "ACST", "JST": "JST", "∅∅∅": "∅∅∅", "ACWST": "ACWST", "CHADT": "CHADT", "HEPMX": "HEPMX", "HNT": "HNT", "HKT": "HKT", "HKST": "HKST", "TMST": "TMST", "CAT": "CAT", "NZST": "NZST", "HENOMX": "HENOMX", "VET": "VET", "WARST": "WARST", "HNOG": "HNOG", "CST": "CST", "ART": "ART", "IST": "IST", "AEST": "AEST", "HAT": "HAT", "WIT": "WIT", "COST": "COST", "NZDT": "NZDT", "HADT": "HADT", "ECT": "ECT", "MEZ": "MEZ", "ACDT": "ACDT", "LHDT": "LHDT", "HNPM": "HNPM", "WAT": "WAT", "WITA": "WITA", "MDT": "MDT", "HEEG": "HEEG", "AWDT": "AWDT", "CLT": "CLT", "ARST": "ARST", "SRT": "SRT", "ACWDT": "ACWDT", "SGT": "SGT", "WAST": "WAST", "GMT": "GMT", "PDT": "PDT", "EST": "EST", "CLST": "CLST", "BT": "BT", "HNCU": "HNCU", "OESZ": "OESZ", "EDT": "EDT", "AWST": "AWST", "UYT": "UYT", "WEZ": "WEZ", "HECU": "HECU", "HNNOMX": "HNNOMX", "GFT": "GFT", "WART": "WART", "MST": "MST", "ADT": "ADT", "MESZ": "MESZ", "MYT": "MYT", "JDT": "JDT", "AKST": "AKST", "TMT": "TMT", "ChST": "ChST", "HNEG": "HNEG", "CHAST": "CHAST", "WESZ": "WESZ", "OEZ": "OEZ", "CDT": "CDT", "WIB": "WIB", "LHST": "LHST", "PST": "PST", "UYST": "UYST", "SAST": "SAST", "AST": "AST", "HEPM": "HEPM", "HNPMX": "HNPMX", "AKDT": "AKDT", "BOT": "BOT"},
+ }
+ }
+ 
+@@ -112,8 +91,8 @@ func (en *en_FK) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_FK) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
++ nMod100 := math.Mod(n, 100)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +117,7 @@ func (en *en_FK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_FK) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_FK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_FK) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_FK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_FK) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +183,13 @@ func (en *en_FK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_FK' and handles both Whole and Real numbers based on 'v'
+ func (en *en_FK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_FK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_FK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_FK'
+@@ -278,56 +197,7 @@ func (en *en_FK) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_FK'
+@@ -336,68 +206,7 @@ func (en *en_FK) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_FK'
+@@ -405,17 +214,6 @@ func (en *en_FK) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +222,6 @@ func (en *en_FK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +230,6 @@ func (en *en_FK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,19 +238,6 @@ func (en *en_FK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/en_FM/en_FM.go b/en_FM/en_FM.go
+index 4e85ebb..5dee9d5 100644
+--- a/en_FM/en_FM.go
++++ b/en_FM/en_FM.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_FM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_FM' locale
+ func New() locales.Translator {
+ return &en_FM{
+- locale: "en_FM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"AEST": "Australian Eastern Standard Time", "AWDT": "Australian Western Daylight Time", "JST": "Japan Standard Time", "HNEG": "East Greenland Standard Time", "UYST": "Uruguay Summer Time", "ACWST": "Australian Central Western Standard Time", "WITA": "Central Indonesia Time", "ChST": "Chamorro Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "MYT": "Malaysia Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "ART": "Argentina Standard Time", "AWST": "Australian Western Standard Time", "ACST": "Australian Central Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AKST": "Alaska Standard Time", "NZST": "New Zealand Standard Time", "ECT": "Ecuador Time", "EAT": "East Africa Time", "GMT": "Greenwich Mean Time", "AKDT": "Alaska Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "HEOG": "West Greenland Summer Time", "SAST": "South Africa Standard Time", "HEEG": "East Greenland Summer Time", "BOT": "Bolivia Time", "OESZ": "Eastern European Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "SRT": "Suriname Time", "HKT": "Hong Kong Standard Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "IST": "India Standard Time", "EDT": "Eastern Daylight Time", "ADT": "Atlantic Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CLT": "Chile Standard Time", "WAST": "West Africa Summer Time", "OEZ": "Eastern European Standard Time", "AST": "Atlantic Standard Time", "ACDT": "Australian Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "COST": "Colombia Summer Time", "VET": "Venezuela Time", "BT": "Bhutan Time", "HKST": "Hong Kong Summer Time", "JDT": "Japan Daylight Time", "TMST": "Turkmenistan Summer Time", "HNCU": "Cuba Standard Time", "SGT": "Singapore Standard Time", "UYT": "Uruguay Standard Time", "ARST": "Argentina Summer Time", "HNOG": "West Greenland Standard Time", "PST": "Pacific Standard Time", "MEZ": "Central European Standard Time", "WARST": "Western Argentina Summer Time", "WIB": "Western Indonesia Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "∅∅∅": "Amazon Summer Time", "PDT": "Pacific Daylight Time", "WAT": "West Africa Standard Time", "TMT": "Turkmenistan Standard Time", "WART": "Western Argentina Standard Time", "MST": "Mountain Standard Time", "MDT": "Mountain Daylight Time", "CHADT": "Chatham Daylight Time", "CLST": "Chile Summer Time", "GFT": "French Guiana Time", "MESZ": "Central European Summer Time", "WEZ": "Western European Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "GYT": "Guyana Time", "HNT": "Newfoundland Standard Time", "AEDT": "Australian Eastern Daylight Time", "HECU": "Cuba Daylight Time", "COT": "Colombia Standard Time", "EST": "Eastern Standard Time", "WIT": "Eastern Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "HAT": "Newfoundland Daylight Time", "WESZ": "Western European Summer Time", "CAT": "Central Africa Time"},
++ locale: "en_FM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WEZ": "WEZ", "COT": "COT", "ECT": "ECT", "AST": "AST", "JST": "JST", "UYST": "UYST", "HNCU": "HNCU", "WART": "WART", "NZST": "NZST", "WIB": "WIB", "HADT": "HADT", "LHST": "LHST", "AWDT": "AWDT", "GFT": "GFT", "WARST": "WARST", "HNOG": "HNOG", "CAT": "CAT", "ACST": "ACST", "HNEG": "HNEG", "ACWST": "ACWST", "HAT": "HAT", "EDT": "EDT", "BOT": "BOT", "SRT": "SRT", "IST": "IST", "WITA": "WITA", "CST": "CST", "ART": "ART", "MDT": "MDT", "AWST": "AWST", "SGT": "SGT", "WESZ": "WESZ", "WAT": "WAT", "OEZ": "OEZ", "NZDT": "NZDT", "MST": "MST", "HNNOMX": "HNNOMX", "BT": "BT", "AKDT": "AKDT", "HKST": "HKST", "MEZ": "MEZ", "CHAST": "CHAST", "HECU": "HECU", "COST": "COST", "CDT": "CDT", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "HEOG": "HEOG", "TMT": "TMT", "GMT": "GMT", "HAST": "HAST", "ACWDT": "ACWDT", "AEDT": "AEDT", "HKT": "HKT", "HENOMX": "HENOMX", "PST": "PST", "WAST": "WAST", "AEST": "AEST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "AKST": "AKST", "SAST": "SAST", "ACDT": "ACDT", "HEEG": "HEEG", "MYT": "MYT", "HNPM": "HNPM", "UYT": "UYT", "HNT": "HNT", "TMST": "TMST", "CLT": "CLT", "ARST": "ARST", "HEPM": "HEPM", "JDT": "JDT", "WIT": "WIT", "ADT": "ADT", "PDT": "PDT", "VET": "VET", "EST": "EST", "ChST": "ChST", "EAT": "EAT", "CHADT": "CHADT", "GYT": "GYT", "LHDT": "LHDT", "CLST": "CLST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_FM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_FM) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_FM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_FM) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_FM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_FM) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_FM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_FM' and handles both Whole and Real numbers based on 'v'
+ func (en *en_FM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_FM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_FM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_FM'
+@@ -278,56 +195,7 @@ func (en *en_FM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_FM'
+@@ -336,84 +204,33 @@ func (en *en_FM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_FM'
++func (en *en_FM) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_FM'
+-func (en *en_FM) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_FM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_FM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_FM) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_FM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_FM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_FM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_FM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_GB/en_GB.go b/en_GB/en_GB.go
+index eccd49b..d5f526d 100644
+--- a/en_GB/en_GB.go
++++ b/en_GB/en_GB.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_GB struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_GB' locale
+ func New() locales.Translator {
+ return &en_GB{
+- locale: "en_GB",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "HNOG": "West Greenland Standard Time", "ChST": "Chamorro Standard Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "MDT": "Macau Summer Time", "WAST": "West Africa Summer Time", "AST": "Atlantic Standard Time", "CHAST": "Chatham Standard Time", "JDT": "Japan Daylight Time", "CST": "Central Standard Time", "PDT": "Pacific Daylight Time", "AEDT": "Australian Eastern Daylight Time", "IST": "India Standard Time", "AWDT": "Australian Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHADT": "Chatham Daylight Time", "HNEG": "East Greenland Standard Time", "ACST": "Australian Central Standard Time", "HNPMX": "Mexican Pacific Standard Time", "ACWST": "Australian Central Western Standard Time", "WAT": "West Africa Standard Time", "WARST": "Western Argentina Summer Time", "SGT": "Singapore Standard Time", "NZDT": "New Zealand Daylight Time", "MST": "Macau Standard Time", "CDT": "Central Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "WEZ": "Western European Standard Time", "VET": "Venezuela Time", "HAT": "Newfoundland Daylight Time", "AWST": "Australian Western Standard Time", "AEST": "Australian Eastern Standard Time", "WART": "Western Argentina Standard Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "MYT": "Malaysia Time", "CLT": "Chile Standard Time", "ART": "Argentina Standard Time", "PST": "Pacific Standard Time", "HKT": "Hong Kong Standard Time", "WITA": "Central Indonesia Time", "EAT": "East Africa Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "UYST": "Uruguay Summer Time", "MESZ": "Central European Summer Time", "HNT": "Newfoundland Standard Time", "NZST": "New Zealand Standard Time", "ECT": "Ecuador Time", "GMT": "Greenwich Mean Time", "UYT": "Uruguay Standard Time", "SRT": "Suriname Time", "∅∅∅": "Peru Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "CAT": "Central Africa Time", "ADT": "Atlantic Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HEOG": "West Greenland Summer Time", "WIB": "Western Indonesia Time", "WESZ": "Western European Summer Time", "JST": "Japan Standard Time", "HEEG": "East Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "WIT": "Eastern Indonesia Time", "ACDT": "Australian Central Daylight Time", "HKST": "Hong Kong Summer Time", "LHDT": "Lord Howe Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CLST": "Chile Summer Time", "BOT": "Bolivia Time", "TMST": "Turkmenistan Summer Time", "HNCU": "Cuba Standard Time", "ACWDT": "Australian Central Western Daylight Time", "EDT": "Eastern Daylight Time", "BT": "Bhutan Time", "ARST": "Argentina Summer Time", "LHST": "Lord Howe Standard Time", "GFT": "French Guiana Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "HECU": "Cuba Daylight Time", "MEZ": "Central European Standard Time", "SAST": "South Africa Standard Time"},
++ locale: "en_GB",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsWide: []string{"am", "pm"},
++ timezones: map[string]string{"HENOMX": "HENOMX", "MEZ": "MEZ", "PDT": "PDT", "CHADT": "CHADT", "OESZ": "OESZ", "NZDT": "NZDT", "CST": "CST", "EAT": "EAT", "IST": "IST", "VET": "VET", "BOT": "BOT", "HNPM": "HNPM", "AEST": "AEST", "HNCU": "HNCU", "COST": "COST", "EDT": "EDT", "CAT": "CAT", "AEDT": "AEDT", "WIB": "WIB", "MESZ": "MESZ", "LHDT": "LHDT", "ACWST": "ACWST", "COT": "COT", "HNOG": "HNOG", "EST": "EST", "MST": "MST", "WIT": "WIT", "MDT": "MDT", "HAST": "HAST", "MYT": "MYT", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "CDT": "CDT", "HNEG": "HNEG", "WARST": "WARST", "HAT": "HAT", "HKST": "HKST", "ADT": "ADT", "WAST": "WAST", "LHST": "LHST", "HEPM": "HEPM", "HNPMX": "HNPMX", "AKDT": "AKDT", "HECU": "HECU", "WESZ": "WESZ", "ACDT": "ACDT", "BT": "BT", "ACWDT": "ACWDT", "UYT": "UYT", "PST": "PST", "WEZ": "WEZ", "HEEG": "HEEG", "AWDT": "AWDT", "SGT": "SGT", "HKT": "HKT", "WITA": "WITA", "SRT": "SRT", "ACST": "ACST", "NZST": "NZST", "ART": "ART", "HNNOMX": "HNNOMX", "JDT": "JDT", "UYST": "UYST", "SAST": "SAST", "ChST": "ChST", "JST": "JST", "AWST": "AWST", "ECT": "ECT", "GMT": "GMT", "AST": "AST", "HADT": "HADT", "HNT": "HNT", "TMT": "TMT", "TMST": "TMST", "CLT": "CLT", "CHAST": "CHAST", "HEPMX": "HEPMX", "AKST": "AKST", "CLST": "CLST", "ARST": "ARST", "WAT": "WAT", "GFT": "GFT", "OEZ": "OEZ", "WART": "WART", "GYT": "GYT"},
+ }
+ }
+ 
+@@ -112,8 +91,8 @@ func (en *en_GB) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_GB) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
++ nMod100 := math.Mod(n, 100)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +117,7 @@ func (en *en_GB) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_GB) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_GB) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_GB) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_GB) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_GB) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +183,13 @@ func (en *en_GB) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_GB' and handles both Whole and Real numbers based on 'v'
+ func (en *en_GB) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_GB' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_GB) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_GB'
+@@ -278,56 +197,7 @@ func (en *en_GB) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_GB'
+@@ -336,84 +206,33 @@ func (en *en_GB) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_GB'
++func (en *en_GB) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_GB'
+-func (en *en_GB) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +243,10 @@ func (en *en_GB) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +262,10 @@ func (en *en_GB) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +283,10 @@ func (en *en_GB) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_GD/en_GD.go b/en_GD/en_GD.go
+index 4bfc5b6..41afe77 100644
+--- a/en_GD/en_GD.go
++++ b/en_GD/en_GD.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_GD struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_GD' locale
+ func New() locales.Translator {
+ return &en_GD{
+- locale: "en_GD",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "$", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"AWST": "Australian Western Standard Time", "CHAST": "Chatham Standard Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "EDT": "Eastern Daylight Time", "MYT": "Malaysia Time", "WESZ": "Western European Summer Time", "GMT": "Greenwich Mean Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "IST": "India Standard Time", "BOT": "Bolivia Time", "WIB": "Western Indonesia Time", "PST": "Pacific Standard Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "WITA": "Central Indonesia Time", "MESZ": "Central European Summer Time", "HEEG": "East Greenland Summer Time", "BT": "Bhutan Time", "HADT": "Hawaii-Aleutian Daylight Time", "HEOG": "West Greenland Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZST": "New Zealand Standard Time", "∅∅∅": "Amazon Summer Time", "HECU": "Cuba Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "MDT": "Mountain Daylight Time", "AEST": "Australian Eastern Standard Time", "CLT": "Chile Standard Time", "TMST": "Turkmenistan Summer Time", "EAT": "East Africa Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "JDT": "Japan Daylight Time", "ACDT": "Australian Central Daylight Time", "COT": "Colombia Standard Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time", "ADT": "Atlantic Daylight Time", "LHST": "Lord Howe Standard Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "ECT": "Ecuador Time", "EST": "Eastern Standard Time", "AST": "Atlantic Standard Time", "ChST": "Chamorro Standard Time", "NZDT": "New Zealand Daylight Time", "HNEG": "East Greenland Standard Time", "CAT": "Central Africa Time", "UYST": "Uruguay Summer Time", "HKT": "Hong Kong Standard Time", "MST": "Mountain Standard Time", "HNT": "Newfoundland Standard Time", "CST": "Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "JST": "Japan Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HAT": "Newfoundland Daylight Time", "HKST": "Hong Kong Summer Time", "TMT": "Turkmenistan Standard Time", "WARST": "Western Argentina Summer Time", "SGT": "Singapore Standard Time", "SRT": "Suriname Time", "HNOG": "West Greenland Standard Time", "MEZ": "Central European Standard Time", "GFT": "French Guiana Time", "ART": "Argentina Standard Time", "ACWST": "Australian Central Western Standard Time", "LHDT": "Lord Howe Daylight Time", "CLST": "Chile Summer Time", "WART": "Western Argentina Standard Time", "WIT": "Eastern Indonesia Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "AEDT": "Australian Eastern Daylight Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "ACST": "Australian Central Standard Time", "HNCU": "Cuba Standard Time", "VET": "Venezuela Time", "GYT": "Guyana Time", "UYT": "Uruguay Standard Time", "CDT": "Central Daylight Time"},
++ locale: "en_GD",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "$", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CLST": "CLST", "ARST": "ARST", "BOT": "BOT", "WAST": "WAST", "ACST": "ACST", "MYT": "MYT", "HNPMX": "HNPMX", "CST": "CST", "GMT": "GMT", "HEPM": "HEPM", "PST": "PST", "AEST": "AEST", "WEZ": "WEZ", "SGT": "SGT", "HECU": "HECU", "AKDT": "AKDT", "SRT": "SRT", "MESZ": "MESZ", "IST": "IST", "GYT": "GYT", "HKST": "HKST", "MDT": "MDT", "JST": "JST", "AKST": "AKST", "HEOG": "HEOG", "ART": "ART", "OESZ": "OESZ", "COST": "COST", "CLT": "CLT", "CDT": "CDT", "HADT": "HADT", "MEZ": "MEZ", "JDT": "JDT", "PDT": "PDT", "UYT": "UYT", "HNCU": "HNCU", "NZST": "NZST", "ChST": "ChST", "HNEG": "HNEG", "HEEG": "HEEG", "WAT": "WAT", "CAT": "CAT", "AWDT": "AWDT", "UYST": "UYST", "HNT": "HNT", "WARST": "WARST", "∅∅∅": "∅∅∅", "WART": "WART", "ECT": "ECT", "BT": "BT", "CHAST": "CHAST", "CHADT": "CHADT", "OEZ": "OEZ", "WITA": "WITA", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "LHST": "LHST", "LHDT": "LHDT", "ACWDT": "ACWDT", "AEDT": "AEDT", "HAT": "HAT", "HNOG": "HNOG", "EDT": "EDT", "TMT": "TMT", "SAST": "SAST", "EST": "EST", "TMST": "TMST", "EAT": "EAT", "ACWST": "ACWST", "HEPMX": "HEPMX", "COT": "COT", "HKT": "HKT", "NZDT": "NZDT", "WIB": "WIB", "ADT": "ADT", "ACDT": "ACDT", "HNPM": "HNPM", "WESZ": "WESZ", "GFT": "GFT", "WIT": "WIT", "MST": "MST", "AST": "AST", "HAST": "HAST", "AWST": "AWST", "VET": "VET"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_GD) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_GD) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_GD) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_GD) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_GD) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_GD) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_GD) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_GD' and handles both Whole and Real numbers based on 'v'
+ func (en *en_GD) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_GD' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_GD) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_GD'
+@@ -278,56 +195,7 @@ func (en *en_GD) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_GD'
+@@ -336,84 +204,33 @@ func (en *en_GD) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_GD'
++func (en *en_GD) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_GD'
+-func (en *en_GD) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_GD) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_GD) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_GD) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_GD) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_GD) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_GD) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_GD) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_GG/en_GG.go b/en_GG/en_GG.go
+index 05a4e9b..043d900 100644
+--- a/en_GG/en_GG.go
++++ b/en_GG/en_GG.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_GG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_GG' locale
+ func New() locales.Translator {
+ return &en_GG{
+- locale: "en_GG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"WAST": "West Africa Summer Time", "HAT": "Newfoundland Daylight Time", "SAST": "South Africa Standard Time", "HEEG": "East Greenland Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HKT": "Hong Kong Standard Time", "IST": "India Standard Time", "TMST": "Turkmenistan Summer Time", "ChST": "Chamorro Standard Time", "∅∅∅": "Peru Summer Time", "EDT": "Eastern Daylight Time", "VET": "Venezuela Time", "ART": "Argentina Standard Time", "NZST": "New Zealand Standard Time", "UYT": "Uruguay Standard Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "AEST": "Australian Eastern Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "GFT": "French Guiana Time", "PST": "Pacific Standard Time", "WAT": "West Africa Standard Time", "COST": "Colombia Summer Time", "HECU": "Cuba Daylight Time", "MDT": "Macau Summer Time", "ADT": "Atlantic Daylight Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "AEDT": "Australian Eastern Daylight Time", "AWST": "Australian Western Standard Time", "CHADT": "Chatham Daylight Time", "BOT": "Bolivia Time", "COT": "Colombia Standard Time", "ARST": "Argentina Summer Time", "WEZ": "Western European Standard Time", "WITA": "Central Indonesia Time", "JDT": "Japan Daylight Time", "OEZ": "Eastern European Standard Time", "WARST": "Western Argentina Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AST": "Atlantic Standard Time", "AWDT": "Australian Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNEG": "East Greenland Standard Time", "PDT": "Pacific Daylight Time", "WART": "Western Argentina Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "CLT": "Chile Standard Time", "ACST": "Australian Central Standard Time", "MST": "Macau Standard Time", "CDT": "Central Daylight Time", "ACWST": "Australian Central Western Standard Time", "MESZ": "Central European Summer Time", "CAT": "Central Africa Time", "HNCU": "Cuba Standard Time", "HNOG": "West Greenland Standard Time", "WESZ": "Western European Summer Time", "MEZ": "Central European Standard Time", "JST": "Japan Standard Time", "ACDT": "Australian Central Daylight Time", "CST": "Central Standard Time", "HNT": "Newfoundland Standard Time", "ACWDT": "Australian Central Western Daylight Time", "NZDT": "New Zealand Daylight Time", "CLST": "Chile Summer Time", "TMT": "Turkmenistan Standard Time", "HKST": "Hong Kong Summer Time", "CHAST": "Chatham Standard Time", "AKDT": "Alaska Daylight Time", "OESZ": "Eastern European Summer Time", "ECT": "Ecuador Time", "HNNOMX": "Northwest Mexico Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "GMT": "Greenwich Mean Time", "SGT": "Singapore Standard Time", "GYT": "Guyana Time", "HEOG": "West Greenland Summer Time", "EAT": "East Africa Time", "WIT": "Eastern Indonesia Time", "SRT": "Suriname Time", "EST": "Eastern Standard Time", "AKST": "Alaska Standard Time"},
++ locale: "en_GG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsWide: []string{"am", "pm"},
++ timezones: map[string]string{"WARST": "WARST", "HNOG": "HNOG", "COT": "COT", "HAST": "HAST", "AWST": "AWST", "CLT": "CLT", "WITA": "WITA", "GMT": "GMT", "BOT": "BOT", "EAT": "EAT", "HNPM": "HNPM", "JDT": "JDT", "PST": "PST", "WAST": "WAST", "HNT": "HNT", "WIB": "WIB", "HEOG": "HEOG", "HNCU": "HNCU", "VET": "VET", "GFT": "GFT", "COST": "COST", "TMST": "TMST", "CDT": "CDT", "ART": "ART", "ChST": "ChST", "HADT": "HADT", "ACDT": "ACDT", "UYST": "UYST", "WEZ": "WEZ", "AKST": "AKST", "MDT": "MDT", "WIT": "WIT", "MEZ": "MEZ", "HNEG": "HNEG", "JST": "JST", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "SGT": "SGT", "ARST": "ARST", "CLST": "CLST", "AST": "AST", "SAST": "SAST", "HKT": "HKT", "HKST": "HKST", "CAT": "CAT", "BT": "BT", "OESZ": "OESZ", "HENOMX": "HENOMX", "LHDT": "LHDT", "HECU": "HECU", "HEPM": "HEPM", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "IST": "IST", "HEPMX": "HEPMX", "EST": "EST", "ECT": "ECT", "SRT": "SRT", "MESZ": "MESZ", "AEST": "AEST", "HNPMX": "HNPMX", "TMT": "TMT", "NZST": "NZST", "ADT": "ADT", "HEEG": "HEEG", "AWDT": "AWDT", "MST": "MST", "MYT": "MYT", "WART": "WART", "CST": "CST", "AEDT": "AEDT", "CHAST": "CHAST", "CHADT": "CHADT", "PDT": "PDT", "AKDT": "AKDT", "HAT": "HAT", "GYT": "GYT", "ACST": "ACST", "EDT": "EDT", "ACWST": "ACWST", "UYT": "UYT", "WAT": "WAT", "OEZ": "OEZ", "LHST": "LHST"},
+ }
+ }
+ 
+@@ -138,7 +117,7 @@ func (en *en_GG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_GG) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_GG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_GG) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_GG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_GG) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +183,13 @@ func (en *en_GG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_GG' and handles both Whole and Real numbers based on 'v'
+ func (en *en_GG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_GG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_GG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_GG'
+@@ -278,56 +197,7 @@ func (en *en_GG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_GG'
+@@ -336,68 +206,7 @@ func (en *en_GG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_GG'
+@@ -405,17 +214,6 @@ func (en *en_GG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +222,6 @@ func (en *en_GG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +230,6 @@ func (en *en_GG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,19 +238,6 @@ func (en *en_GG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/en_GH/en_GH.go b/en_GH/en_GH.go
+index 9c45a5e..8730d71 100644
+--- a/en_GH/en_GH.go
++++ b/en_GH/en_GH.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_GH struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_GH' locale
+ func New() locales.Translator {
+ return &en_GH{
+- locale: "en_GH",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GH₵", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"UYT": "Uruguay Standard Time", "HAT": "Newfoundland Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "ADT": "Atlantic Daylight Time", "CDT": "Central Daylight Time", "HEEG": "East Greenland Summer Time", "WAST": "West Africa Summer Time", "ACDT": "Australian Central Daylight Time", "OESZ": "Eastern European Summer Time", "ECT": "Ecuador Time", "MEZ": "Central European Standard Time", "IST": "India Standard Time", "ACST": "Australian Central Standard Time", "AKDT": "Alaska Daylight Time", "WIB": "Western Indonesia Time", "VET": "Venezuela Time", "ART": "Argentina Standard Time", "NZST": "New Zealand Standard Time", "TMT": "Turkmenistan Standard Time", "EAT": "East Africa Time", "HEOG": "West Greenland Summer Time", "AEST": "Australian Eastern Standard Time", "COT": "Colombia Standard Time", "SGT": "Singapore Standard Time", "AWDT": "Australian Western Daylight Time", "CHAST": "Chatham Standard Time", "GYT": "Guyana Time", "ACWDT": "Australian Central Western Daylight Time", "AKST": "Alaska Standard Time", "AST": "Atlantic Standard Time", "PDT": "Pacific Daylight Time", "WESZ": "Western European Summer Time", "LHDT": "Lord Howe Daylight Time", "JST": "Japan Standard Time", "BOT": "Bolivia Time", "WITA": "Central Indonesia Time", "HENOMX": "Northwest Mexico Daylight Time", "HNOG": "West Greenland Standard Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "MST": "Macau Standard Time", "HNT": "Newfoundland Standard Time", "AEDT": "Australian Eastern Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "∅∅∅": "Amazon Summer Time", "JDT": "Japan Daylight Time", "NZDT": "New Zealand Daylight Time", "MESZ": "Central European Summer Time", "TMST": "Turkmenistan Summer Time", "WART": "Western Argentina Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HKST": "Hong Kong Summer Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "WAT": "West Africa Standard Time", "HECU": "Cuba Daylight Time", "GMT": "Greenwich Mean Time", "PST": "Pacific Standard Time", "HKT": "Hong Kong Standard Time", "CHADT": "Chatham Daylight Time", "HNEG": "East Greenland Standard Time", "GFT": "French Guiana Time", "ARST": "Argentina Summer Time", "LHST": "Lord Howe Standard Time", "ChST": "Chamorro Standard Time", "UYST": "Uruguay Summer Time", "CST": "Central Standard Time", "MYT": "Malaysia Time", "HADT": "Hawaii-Aleutian Daylight Time", "BT": "Bhutan Time", "AWST": "Australian Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HNCU": "Cuba Standard Time", "MDT": "Macau Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWST": "Australian Central Western Standard Time", "WEZ": "Western European Standard Time", "SAST": "South Africa Standard Time", "EDT": "Eastern Daylight Time", "SRT": "Suriname Time", "OEZ": "Eastern European Standard Time", "WARST": "Western Argentina Summer Time", "CAT": "Central Africa Time", "WIT": "Eastern Indonesia Time"},
++ locale: "en_GH",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GH₵", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"LHDT": "LHDT", "CLST": "CLST", "EDT": "EDT", "CAT": "CAT", "HENOMX": "HENOMX", "WESZ": "WESZ", "HNCU": "HNCU", "HECU": "HECU", "AKST": "AKST", "SAST": "SAST", "ACDT": "ACDT", "GYT": "GYT", "LHST": "LHST", "ACWDT": "ACWDT", "WIT": "WIT", "WITA": "WITA", "HNEG": "HNEG", "HNPM": "HNPM", "HEPM": "HEPM", "HAT": "HAT", "SGT": "SGT", "HEOG": "HEOG", "MST": "MST", "ChST": "ChST", "ARST": "ARST", "AWST": "AWST", "AWDT": "AWDT", "PST": "PST", "HAST": "HAST", "HEEG": "HEEG", "BOT": "BOT", "JDT": "JDT", "ECT": "ECT", "WIB": "WIB", "EAT": "EAT", "MYT": "MYT", "CST": "CST", "NZDT": "NZDT", "HNT": "HNT", "MDT": "MDT", "HADT": "HADT", "JST": "JST", "CHAST": "CHAST", "HEPMX": "HEPMX", "CLT": "CLT", "GMT": "GMT", "AEST": "AEST", "GFT": "GFT", "WART": "WART", "COST": "COST", "HNOG": "HNOG", "HKT": "HKT", "TMT": "TMT", "MESZ": "MESZ", "VET": "VET", "WAT": "WAT", "WARST": "WARST", "HKST": "HKST", "AST": "AST", "UYT": "UYT", "∅∅∅": "∅∅∅", "IST": "IST", "CHADT": "CHADT", "HNPMX": "HNPMX", "NZST": "NZST", "WEZ": "WEZ", "AKDT": "AKDT", "OEZ": "OEZ", "TMST": "TMST", "CDT": "CDT", "BT": "BT", "ACWST": "ACWST", "AEDT": "AEDT", "ADT": "ADT", "HNNOMX": "HNNOMX", "COT": "COT", "EST": "EST", "ART": "ART", "MEZ": "MEZ", "UYST": "UYST", "PDT": "PDT", "WAST": "WAST", "OESZ": "OESZ", "SRT": "SRT", "ACST": "ACST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_GH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_GH) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_GH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_GH) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_GH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_GH) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_GH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_GH' and handles both Whole and Real numbers based on 'v'
+ func (en *en_GH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_GH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_GH) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_GH'
+@@ -278,56 +195,7 @@ func (en *en_GH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_GH'
+@@ -336,84 +204,33 @@ func (en *en_GH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_GH'
++func (en *en_GH) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_GH'
+-func (en *en_GH) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_GH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_GH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_GH) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_GH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_GH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_GH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_GH) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_GI/en_GI.go b/en_GI/en_GI.go
+index 655f99f..4fa08c5 100644
+--- a/en_GI/en_GI.go
++++ b/en_GI/en_GI.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_GI struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_GI' locale
+ func New() locales.Translator {
+ return &en_GI{
+- locale: "en_GI",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GB£", "GEK", "GEL", "GHC", "GHS", "£", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"CLST": "Chile Summer Time", "HNEG": "East Greenland Standard Time", "ECT": "Ecuador Time", "ACWDT": "Australian Central Western Daylight Time", "WITA": "Central Indonesia Time", "WIT": "Eastern Indonesia Time", "CHADT": "Chatham Daylight Time", "GFT": "French Guiana Time", "WART": "Western Argentina Standard Time", "SRT": "Suriname Time", "WEZ": "Western European Standard Time", "WESZ": "Western European Summer Time", "MEZ": "Central European Standard Time", "JST": "Japan Standard Time", "ChST": "Chamorro Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AKDT": "Alaska Daylight Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "GMT": "Greenwich Mean Time", "CDT": "Central Daylight Time", "UYT": "Uruguay Standard Time", "NZDT": "New Zealand Daylight Time", "LHDT": "Lord Howe Daylight Time", "HEEG": "East Greenland Summer Time", "EAT": "East Africa Time", "MDT": "Macau Summer Time", "UYST": "Uruguay Summer Time", "ARST": "Argentina Summer Time", "CHAST": "Chatham Standard Time", "CAT": "Central Africa Time", "WAST": "West Africa Summer Time", "OEZ": "Eastern European Standard Time", "JDT": "Japan Daylight Time", "WARST": "Western Argentina Summer Time", "HECU": "Cuba Daylight Time", "ADT": "Atlantic Daylight Time", "BT": "Bhutan Time", "HNOG": "West Greenland Standard Time", "LHST": "Lord Howe Standard Time", "AEDT": "Australian Eastern Daylight Time", "IST": "India Standard Time", "∅∅∅": "Amazon Summer Time", "COT": "Colombia Standard Time", "CST": "Central Standard Time", "MYT": "Malaysia Time", "HEOG": "West Greenland Summer Time", "PDT": "Pacific Daylight Time", "VET": "Venezuela Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "TMT": "Turkmenistan Standard Time", "ACST": "Australian Central Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "HKT": "Hong Kong Standard Time", "AWDT": "Australian Western Daylight Time", "MST": "Macau Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "SAST": "South Africa Standard Time", "AST": "Atlantic Standard Time", "ACWST": "Australian Central Western Standard Time", "HKST": "Hong Kong Summer Time", "ACDT": "Australian Central Daylight Time", "HNCU": "Cuba Standard Time", "EST": "Eastern Standard Time", "AKST": "Alaska Standard Time", "PST": "Pacific Standard Time", "AWST": "Australian Western Standard Time", "OESZ": "Eastern European Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "EDT": "Eastern Daylight Time", "GYT": "Guyana Time", "WIB": "Western Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "NZST": "New Zealand Standard Time", "MESZ": "Central European Summer Time", "COST": "Colombia Summer Time", "HAT": "Newfoundland Daylight Time", "WAT": "West Africa Standard Time", "TMST": "Turkmenistan Summer Time", "BOT": "Bolivia Time", "HNPMX": "Mexican Pacific Standard Time", "HNT": "Newfoundland Standard Time", "CLT": "Chile Standard Time"},
++ locale: "en_GI",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GB£", "GEK", "GEL", "GHC", "GHS", "£", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsWide: []string{"am", "pm"},
++ timezones: map[string]string{"OESZ": "OESZ", "WARST": "WARST", "WIT": "WIT", "HENOMX": "HENOMX", "JST": "JST", "ACWST": "ACWST", "WEZ": "WEZ", "HNPMX": "HNPMX", "EDT": "EDT", "WIB": "WIB", "BT": "BT", "WAT": "WAT", "ARST": "ARST", "GYT": "GYT", "MESZ": "MESZ", "UYST": "UYST", "ACWDT": "ACWDT", "CHADT": "CHADT", "HECU": "HECU", "MST": "MST", "MYT": "MYT", "MEZ": "MEZ", "HNPM": "HNPM", "SAST": "SAST", "CLST": "CLST", "ECT": "ECT", "HAST": "HAST", "SGT": "SGT", "TMT": "TMT", "ART": "ART", "HNT": "HNT", "HKT": "HKT", "HKST": "HKST", "HEPM": "HEPM", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "ChST": "ChST", "HNEG": "HNEG", "AWDT": "AWDT", "COT": "COT", "AEST": "AEST", "HEOG": "HEOG", "CAT": "CAT", "BOT": "BOT", "SRT": "SRT", "HNNOMX": "HNNOMX", "AWST": "AWST", "UYT": "UYT", "CST": "CST", "GFT": "GFT", "HAT": "HAT", "EST": "EST", "EAT": "EAT", "ACST": "ACST", "ACDT": "ACDT", "CHAST": "CHAST", "OEZ": "OEZ", "CLT": "CLT", "GMT": "GMT", "HNCU": "HNCU", "WAST": "WAST", "ADT": "ADT", "MDT": "MDT", "HEEG": "HEEG", "LHST": "LHST", "IST": "IST", "PST": "PST", "AST": "AST", "PDT": "PDT", "AKST": "AKST", "HNOG": "HNOG", "WITA": "WITA", "CDT": "CDT", "HADT": "HADT", "AEDT": "AEDT", "VET": "VET", "WART": "WART", "NZST": "NZST", "NZDT": "NZDT", "TMST": "TMST", "LHDT": "LHDT", "JDT": "JDT", "WESZ": "WESZ", "HEPMX": "HEPMX", "COST": "COST"},
+ }
+ }
+ 
+@@ -112,8 +91,8 @@ func (en *en_GI) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_GI) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
++ nMod100 := math.Mod(n, 100)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +117,7 @@ func (en *en_GI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_GI) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_GI) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_GI) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_GI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_GI) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +183,13 @@ func (en *en_GI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_GI' and handles both Whole and Real numbers based on 'v'
+ func (en *en_GI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_GI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_GI) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_GI'
+@@ -278,56 +197,7 @@ func (en *en_GI) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_GI'
+@@ -336,68 +206,7 @@ func (en *en_GI) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_GI'
+@@ -405,17 +214,6 @@ func (en *en_GI) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +222,6 @@ func (en *en_GI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +230,6 @@ func (en *en_GI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,19 +238,6 @@ func (en *en_GI) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/en_GM/en_GM.go b/en_GM/en_GM.go
+index ccbb1d0..ae8736a 100644
+--- a/en_GM/en_GM.go
++++ b/en_GM/en_GM.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_GM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_GM' locale
+ func New() locales.Translator {
+ return &en_GM{
+- locale: "en_GM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "D", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"ACWST": "Australian Central Western Standard Time", "TMT": "Turkmenistan Standard Time", "ChST": "Chamorro Standard Time", "COT": "Colombia Standard Time", "HNPMX": "Mexican Pacific Standard Time", "GYT": "Guyana Time", "HKT": "Hong Kong Standard Time", "MEZ": "Central European Standard Time", "IST": "India Standard Time", "JST": "Japan Standard Time", "JDT": "Japan Daylight Time", "CLST": "Chile Summer Time", "BOT": "Bolivia Time", "GMT": "Greenwich Mean Time", "MST": "Macau Standard Time", "VET": "Venezuela Time", "WAST": "West Africa Summer Time", "WARST": "Western Argentina Summer Time", "AST": "Atlantic Standard Time", "UYT": "Uruguay Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "ARST": "Argentina Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CAT": "Central Africa Time", "EDT": "Eastern Daylight Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "AEDT": "Australian Eastern Daylight Time", "TMST": "Turkmenistan Summer Time", "HNCU": "Cuba Standard Time", "WIT": "Eastern Indonesia Time", "∅∅∅": "Amazon Summer Time", "ECT": "Ecuador Time", "HEOG": "West Greenland Summer Time", "HAT": "Newfoundland Daylight Time", "WITA": "Central Indonesia Time", "EAT": "East Africa Time", "COST": "Colombia Summer Time", "AKDT": "Alaska Daylight Time", "ART": "Argentina Standard Time", "HNOG": "West Greenland Standard Time", "AWST": "Australian Western Standard Time", "AWDT": "Australian Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "EST": "Eastern Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "SRT": "Suriname Time", "NZDT": "New Zealand Daylight Time", "CLT": "Chile Standard Time", "GFT": "French Guiana Time", "HNNOMX": "Northwest Mexico Standard Time", "MDT": "Macau Summer Time", "CDT": "Central Daylight Time", "HNT": "Newfoundland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHST": "Lord Howe Standard Time", "WAT": "West Africa Standard Time", "CST": "Central Standard Time", "WESZ": "Western European Summer Time", "CHADT": "Chatham Daylight Time", "PDT": "Pacific Daylight Time", "MESZ": "Central European Summer Time", "SAST": "South Africa Standard Time", "HEEG": "East Greenland Summer Time", "ACDT": "Australian Central Daylight Time", "OESZ": "Eastern European Summer Time", "AEST": "Australian Eastern Standard Time", "WART": "Western Argentina Standard Time", "SGT": "Singapore Standard Time", "HECU": "Cuba Daylight Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "AKST": "Alaska Standard Time", "WEZ": "Western European Standard Time", "HKST": "Hong Kong Summer Time", "CHAST": "Chatham Standard Time", "PST": "Pacific Standard Time", "ACWDT": "Australian Central Western Daylight Time", "NZST": "New Zealand Standard Time", "HNEG": "East Greenland Standard Time", "ACST": "Australian Central Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "ADT": "Atlantic Daylight Time", "OEZ": "Eastern European Standard Time", "HAST": "Hawaii-Aleutian Standard Time"},
++ locale: "en_GM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "D", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HKT": "HKT", "ART": "ART", "WESZ": "WESZ", "WAST": "WAST", "OESZ": "OESZ", "ChST": "ChST", "IST": "IST", "∅∅∅": "∅∅∅", "HAT": "HAT", "CLT": "CLT", "CST": "CST", "VET": "VET", "HNCU": "HNCU", "OEZ": "OEZ", "WARST": "WARST", "COST": "COST", "AWDT": "AWDT", "HNPM": "HNPM", "HEPMX": "HEPMX", "EST": "EST", "TMST": "TMST", "ADT": "ADT", "GMT": "GMT", "SRT": "SRT", "SGT": "SGT", "EAT": "EAT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AKDT": "AKDT", "HKST": "HKST", "CLST": "CLST", "WITA": "WITA", "ACST": "ACST", "HNEG": "HNEG", "AWST": "AWST", "CHAST": "CHAST", "CHADT": "CHADT", "UYST": "UYST", "PDT": "PDT", "BT": "BT", "GFT": "GFT", "SAST": "SAST", "EDT": "EDT", "WIB": "WIB", "LHDT": "LHDT", "MYT": "MYT", "ACWST": "ACWST", "WIT": "WIT", "COT": "COT", "CDT": "CDT", "MST": "MST", "MEZ": "MEZ", "UYT": "UYT", "GYT": "GYT", "BOT": "BOT", "MESZ": "MESZ", "WEZ": "WEZ", "HECU": "HECU", "NZDT": "NZDT", "ACDT": "ACDT", "HEEG": "HEEG", "LHST": "LHST", "HNPMX": "HNPMX", "CAT": "CAT", "MDT": "MDT", "ECT": "ECT", "HAST": "HAST", "JDT": "JDT", "PST": "PST", "NZST": "NZST", "AEDT": "AEDT", "WAT": "WAT", "HNT": "HNT", "TMT": "TMT", "AST": "AST", "JST": "JST", "HEPM": "HEPM", "AEST": "AEST", "ACWDT": "ACWDT", "AKST": "AKST", "WART": "WART", "HNOG": "HNOG", "HEOG": "HEOG", "ARST": "ARST", "HADT": "HADT"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_GM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_GM) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_GM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_GM) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_GM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_GM) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_GM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_GM' and handles both Whole and Real numbers based on 'v'
+ func (en *en_GM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_GM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_GM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_GM'
+@@ -278,56 +195,7 @@ func (en *en_GM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_GM'
+@@ -336,84 +204,33 @@ func (en *en_GM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_GM'
++func (en *en_GM) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_GM'
+-func (en *en_GM) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_GM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_GM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_GM) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_GM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_GM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_GM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_GM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_GU/en_GU.go b/en_GU/en_GU.go
+index 34fd7aa..198ee18 100644
+--- a/en_GU/en_GU.go
++++ b/en_GU/en_GU.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_GU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_GU' locale
+ func New() locales.Translator {
+ return &en_GU{
+- locale: "en_GU",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"CDT": "Central Daylight Time", "PDT": "Pacific Daylight Time", "HNT": "Newfoundland Standard Time", "IST": "India Standard Time", "JDT": "Japan Daylight Time", "UYT": "Uruguay Standard Time", "CST": "Central Standard Time", "WITA": "Central Indonesia Time", "LHST": "Lord Howe Standard Time", "BOT": "Bolivia Time", "HNCU": "Cuba Standard Time", "GYT": "Guyana Time", "AEST": "Australian Eastern Standard Time", "MESZ": "Central European Summer Time", "∅∅∅": "Amazon Summer Time", "WART": "Western Argentina Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AKST": "Alaska Standard Time", "WIB": "Western Indonesia Time", "WESZ": "Western European Summer Time", "MEZ": "Central European Standard Time", "HEOG": "West Greenland Summer Time", "HKT": "Hong Kong Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "JST": "Japan Standard Time", "HNEG": "East Greenland Standard Time", "GFT": "French Guiana Time", "HNNOMX": "Northwest Mexico Standard Time", "CHAST": "Chatham Standard Time", "SGT": "Singapore Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWDT": "Australian Central Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "AST": "Atlantic Standard Time", "CAT": "Central Africa Time", "MST": "Macau Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "UYST": "Uruguay Summer Time", "EST": "Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "AWST": "Australian Western Standard Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "MDT": "Macau Summer Time", "WIT": "Eastern Indonesia Time", "ChST": "Chamorro Standard Time", "SRT": "Suriname Time", "HNOG": "West Greenland Standard Time", "ART": "Argentina Standard Time", "AWDT": "Australian Western Daylight Time", "HEEG": "East Greenland Summer Time", "AKDT": "Alaska Daylight Time", "PST": "Pacific Standard Time", "ARST": "Argentina Summer Time", "HKST": "Hong Kong Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "CLST": "Chile Summer Time", "ACDT": "Australian Central Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "EDT": "Eastern Daylight Time", "VET": "Venezuela Time", "NZST": "New Zealand Standard Time", "WEZ": "Western European Standard Time", "ACWST": "Australian Central Western Standard Time", "HAT": "Newfoundland Daylight Time", "CLT": "Chile Standard Time", "ACST": "Australian Central Standard Time", "WARST": "Western Argentina Summer Time", "BT": "Bhutan Time", "COST": "Colombia Summer Time", "HECU": "Cuba Daylight Time", "TMT": "Turkmenistan Standard Time", "EAT": "East Africa Time", "WAST": "West Africa Summer Time", "COT": "Colombia Standard Time", "MYT": "Malaysia Time", "ADT": "Atlantic Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "NZDT": "New Zealand Daylight Time", "TMST": "Turkmenistan Summer Time", "WAT": "West Africa Standard Time", "OESZ": "Eastern European Summer Time", "ECT": "Ecuador Time"},
++ locale: "en_GU",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"EAT": "EAT", "HADT": "HADT", "AWST": "AWST", "HAT": "HAT", "AST": "AST", "SRT": "SRT", "ACDT": "ACDT", "WAT": "WAT", "GFT": "GFT", "GYT": "GYT", "HKST": "HKST", "ART": "ART", "HENOMX": "HENOMX", "HECU": "HECU", "VET": "VET", "HKT": "HKT", "JDT": "JDT", "BOT": "BOT", "CHADT": "CHADT", "UYST": "UYST", "EST": "EST", "MDT": "MDT", "HNPMX": "HNPMX", "COT": "COT", "COST": "COST", "HEPM": "HEPM", "MEZ": "MEZ", "CHAST": "CHAST", "OEZ": "OEZ", "ECT": "ECT", "GMT": "GMT", "HAST": "HAST", "PDT": "PDT", "OESZ": "OESZ", "CLT": "CLT", "ChST": "ChST", "ACWST": "ACWST", "IST": "IST", "UYT": "UYT", "JST": "JST", "∅∅∅": "∅∅∅", "TMST": "TMST", "WITA": "WITA", "ARST": "ARST", "HNEG": "HNEG", "ACWDT": "ACWDT", "WARST": "WARST", "SAST": "SAST", "CAT": "CAT", "CDT": "CDT", "AWDT": "AWDT", "HNNOMX": "HNNOMX", "MYT": "MYT", "WESZ": "WESZ", "WART": "WART", "CLST": "CLST", "WIB": "WIB", "MST": "MST", "AEST": "AEST", "HNT": "HNT", "HNOG": "HNOG", "NZST": "NZST", "MESZ": "MESZ", "BT": "BT", "WEZ": "WEZ", "SGT": "SGT", "NZDT": "NZDT", "PST": "PST", "HNCU": "HNCU", "AKST": "AKST", "LHST": "LHST", "AEDT": "AEDT", "EDT": "EDT", "TMT": "TMT", "ADT": "ADT", "HNPM": "HNPM", "HEEG": "HEEG", "LHDT": "LHDT", "HEPMX": "HEPMX", "WAST": "WAST", "AKDT": "AKDT", "WIT": "WIT", "HEOG": "HEOG", "ACST": "ACST", "CST": "CST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_GU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_GU) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_GU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_GU) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_GU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_GU) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_GU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_GU' and handles both Whole and Real numbers based on 'v'
+ func (en *en_GU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_GU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_GU) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_GU'
+@@ -278,56 +195,7 @@ func (en *en_GU) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_GU'
+@@ -336,68 +204,7 @@ func (en *en_GU) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_GU'
+@@ -405,15 +212,15 @@ func (en *en_GU) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x2f}...)
++ b = strconv.AppendInt(b, int64(t.Month()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +231,14 @@ func (en *en_GU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
++ b = append(b, []byte{0x20}...)
++ b = append(b, en.monthsAbbreviated[t.Month()]...)
++ b = append(b, []byte{0x2c}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +254,14 @@ func (en *en_GU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +279,15 @@ func (en *en_GU) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,13 +303,11 @@ func (en *en_GU) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -497,13 +315,6 @@ func (en *en_GU) FmtTimeShort(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -513,13 +324,11 @@ func (en *en_GU) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -534,13 +343,6 @@ func (en *en_GU) FmtTimeMedium(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -550,13 +352,11 @@ func (en *en_GU) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -573,14 +373,6 @@ func (en *en_GU) FmtTimeLong(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ b = append(b, tz...)
+ 
+@@ -592,13 +384,11 @@ func (en *en_GU) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -615,14 +405,6 @@ func (en *en_GU) FmtTimeFull(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ 
+ if btz, ok := en.timezones[tz]; ok {
+diff --git a/en_GY/en_GY.go b/en_GY/en_GY.go
+index cde7490..470e0fb 100644
+--- a/en_GY/en_GY.go
++++ b/en_GY/en_GY.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_GY struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_GY' locale
+ func New() locales.Translator {
+ return &en_GY{
+- locale: "en_GY",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "$", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"ECT": "Ecuador Time", "COST": "Colombia Summer Time", "WART": "Western Argentina Standard Time", "HNT": "Newfoundland Standard Time", "PDT": "Pacific Daylight Time", "MESZ": "Central European Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HKST": "Hong Kong Summer Time", "TMT": "Turkmenistan Standard Time", "GYT": "Guyana Time", "UYT": "Uruguay Standard Time", "MDT": "Mountain Daylight Time", "HKT": "Hong Kong Standard Time", "TMST": "Turkmenistan Summer Time", "OEZ": "Eastern European Standard Time", "HEOG": "West Greenland Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "BOT": "Bolivia Time", "HNEG": "East Greenland Standard Time", "WAST": "West Africa Summer Time", "WIB": "Western Indonesia Time", "WESZ": "Western European Summer Time", "ART": "Argentina Standard Time", "GFT": "French Guiana Time", "HNNOMX": "Northwest Mexico Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "MYT": "Malaysia Time", "WITA": "Central Indonesia Time", "IST": "India Standard Time", "HNCU": "Cuba Standard Time", "CDT": "Central Daylight Time", "SAST": "South Africa Standard Time", "CLT": "Chile Standard Time", "EDT": "Eastern Daylight Time", "ACWST": "Australian Central Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CHAST": "Chatham Standard Time", "BT": "Bhutan Time", "∅∅∅": "Amazon Summer Time", "ChST": "Chamorro Standard Time", "GMT": "Greenwich Mean Time", "AST": "Atlantic Standard Time", "ADT": "Atlantic Daylight Time", "MST": "Mountain Standard Time", "WAT": "West Africa Standard Time", "COT": "Colombia Standard Time", "AEST": "Australian Eastern Standard Time", "CHADT": "Chatham Daylight Time", "JDT": "Japan Daylight Time", "NZDT": "New Zealand Daylight Time", "HEEG": "East Greenland Summer Time", "SGT": "Singapore Standard Time", "HNPMX": "Mexican Pacific Standard Time", "UYST": "Uruguay Summer Time", "WIT": "Eastern Indonesia Time", "WEZ": "Western European Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HAT": "Newfoundland Daylight Time", "ACST": "Australian Central Standard Time", "CAT": "Central Africa Time", "OESZ": "Eastern European Summer Time", "WARST": "Western Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "CLST": "Chile Summer Time", "EST": "Eastern Standard Time", "CST": "Central Standard Time", "JST": "Japan Standard Time", "ACDT": "Australian Central Daylight Time", "MEZ": "Central European Standard Time", "HECU": "Cuba Daylight Time", "AKST": "Alaska Standard Time", "AWST": "Australian Western Standard Time", "AWDT": "Australian Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "NZST": "New Zealand Standard Time", "AKDT": "Alaska Daylight Time", "VET": "Venezuela Time", "HNOG": "West Greenland Standard Time", "PST": "Pacific Standard Time", "EAT": "East Africa Time", "SRT": "Suriname Time", "ACWDT": "Australian Central Western Daylight Time", "ARST": "Argentina Summer Time"},
++ locale: "en_GY",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "$", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HAT": "HAT", "WIT": "WIT", "EST": "EST", "SRT": "SRT", "IST": "IST", "WIB": "WIB", "MDT": "MDT", "ADT": "ADT", "PDT": "PDT", "WAST": "WAST", "COST": "COST", "EAT": "EAT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "ACWST": "ACWST", "HNOG": "HNOG", "HEOG": "HEOG", "NZDT": "NZDT", "HNPM": "HNPM", "AEST": "AEST", "HNPMX": "HNPMX", "GFT": "GFT", "TMT": "TMT", "ACWDT": "ACWDT", "AKDT": "AKDT", "WART": "WART", "TMST": "TMST", "CLT": "CLT", "CDT": "CDT", "ART": "ART", "CHAST": "CHAST", "UYT": "UYT", "CLST": "CLST", "HAST": "HAST", "BT": "BT", "HENOMX": "HENOMX", "AWDT": "AWDT", "GYT": "GYT", "CST": "CST", "BOT": "BOT", "HADT": "HADT", "MESZ": "MESZ", "ACDT": "ACDT", "WEZ": "WEZ", "EDT": "EDT", "HEEG": "HEEG", "JST": "JST", "LHST": "LHST", "PST": "PST", "HNCU": "HNCU", "HKT": "HKT", "CAT": "CAT", "WITA": "WITA", "NZST": "NZST", "ACST": "ACST", "SGT": "SGT", "HNT": "HNT", "JDT": "JDT", "CHADT": "CHADT", "AKST": "AKST", "SAST": "SAST", "GMT": "GMT", "OEZ": "OEZ", "WARST": "WARST", "COT": "COT", "AST": "AST", "ChST": "ChST", "WAT": "WAT", "UYST": "UYST", "HEPMX": "HEPMX", "MST": "MST", "ECT": "ECT", "MEZ": "MEZ", "AWST": "AWST", "LHDT": "LHDT", "MYT": "MYT", "VET": "VET", "HECU": "HECU", "OESZ": "OESZ", "∅∅∅": "∅∅∅", "HKST": "HKST", "ARST": "ARST", "AEDT": "AEDT", "WESZ": "WESZ"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_GY) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_GY) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_GY) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_GY) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_GY) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_GY) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_GY) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_GY' and handles both Whole and Real numbers based on 'v'
+ func (en *en_GY) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_GY' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_GY) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_GY'
+@@ -278,56 +195,7 @@ func (en *en_GY) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_GY'
+@@ -336,84 +204,33 @@ func (en *en_GY) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_GY'
++func (en *en_GY) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_GY'
+-func (en *en_GY) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_GY) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_GY) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_GY) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_GY) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_GY) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_GY) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_GY) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_HK/en_HK.go b/en_HK/en_HK.go
+index 64351fd..54f770e 100644
+--- a/en_HK/en_HK.go
++++ b/en_HK/en_HK.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_HK struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_HK' locale
+ func New() locales.Translator {
+ return &en_HK{
+- locale: "en_HK",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"LHDT": "Lord Howe Daylight Time", "MEZ": "Central European Standard Time", "MST": "Macau Standard Time", "HNPMX": "Mexican Pacific Standard Time", "ART": "Argentina Standard Time", "WIT": "Eastern Indonesia Time", "HKT": "Hong Kong Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "UYT": "Uruguay Standard Time", "COT": "Colombia Standard Time", "AKST": "Alaska Standard Time", "ARST": "Argentina Summer Time", "TMST": "Turkmenistan Summer Time", "WAST": "West Africa Summer Time", "EDT": "Eastern Daylight Time", "PST": "Pacific Standard Time", "ChST": "Chamorro Standard Time", "HNEG": "East Greenland Standard Time", "HECU": "Cuba Daylight Time", "CHAST": "Chatham Standard Time", "CLT": "Chile Standard Time", "ACWDT": "Australian Central Western Daylight Time", "NZDT": "New Zealand Daylight Time", "CAT": "Central Africa Time", "SGT": "Singapore Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "SRT": "Suriname Time", "JST": "Japan Standard Time", "WAT": "West Africa Standard Time", "WIB": "Western Indonesia Time", "HKST": "Hong Kong Summer Time", "AEST": "Australian Eastern Standard Time", "EAT": "East Africa Time", "CDT": "Central Daylight Time", "ADT": "Atlantic Daylight Time", "WEZ": "Western European Standard Time", "LHST": "Lord Howe Standard Time", "ACDT": "Australian Central Daylight Time", "ECT": "Ecuador Time", "MYT": "Malaysia Time", "BT": "Bhutan Time", "AWDT": "Australian Western Daylight Time", "HNT": "Newfoundland Standard Time", "HNOG": "West Greenland Standard Time", "AWST": "Australian Western Standard Time", "AEDT": "Australian Eastern Daylight Time", "MESZ": "Central European Summer Time", "HNCU": "Cuba Standard Time", "EST": "Eastern Standard Time", "AST": "Atlantic Standard Time", "WART": "Western Argentina Standard Time", "IST": "India Standard Time", "GFT": "French Guiana Time", "OESZ": "Eastern European Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "WITA": "Central Indonesia Time", "JDT": "Japan Daylight Time", "∅∅∅": "Azores Summer Time", "GMT": "Greenwich Mean Time", "AKDT": "Alaska Daylight Time", "NZST": "New Zealand Standard Time", "CHADT": "Chatham Daylight Time", "CLST": "Chile Summer Time", "ACST": "Australian Central Standard Time", "WESZ": "Western European Summer Time", "HEOG": "West Greenland Summer Time", "PDT": "Pacific Daylight Time", "WARST": "Western Argentina Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "BOT": "Bolivia Time", "COST": "Colombia Summer Time", "VET": "Venezuela Time", "OEZ": "Eastern European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "SAST": "South Africa Standard Time", "HEEG": "East Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "UYST": "Uruguay Summer Time", "ACWST": "Australian Central Western Standard Time", "HAT": "Newfoundland Daylight Time"},
++ locale: "en_HK",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsWide: []string{"am", "pm"},
++ timezones: map[string]string{"JST": "JST", "AEST": "AEST", "OESZ": "OESZ", "EAT": "EAT", "EST": "EST", "CST": "CST", "ECT": "ECT", "ART": "ART", "ACDT": "ACDT", "UYST": "UYST", "WAST": "WAST", "GFT": "GFT", "PST": "PST", "ARST": "ARST", "HNEG": "HNEG", "CLT": "CLT", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "TMT": "TMT", "HNOG": "HNOG", "HEOG": "HEOG", "GMT": "GMT", "LHST": "LHST", "ACWST": "ACWST", "OEZ": "OEZ", "HNT": "HNT", "MEZ": "MEZ", "MESZ": "MESZ", "PDT": "PDT", "WITA": "WITA", "HAST": "HAST", "HEEG": "HEEG", "HNPM": "HNPM", "IST": "IST", "HAT": "HAT", "ChST": "ChST", "TMST": "TMST", "HECU": "HECU", "WART": "WART", "HKST": "HKST", "CHADT": "CHADT", "WARST": "WARST", "COT": "COT", "WAT": "WAT", "MST": "MST", "HADT": "HADT", "JDT": "JDT", "SGT": "SGT", "HEPMX": "HEPMX", "AEDT": "AEDT", "HKT": "HKT", "SRT": "SRT", "COST": "COST", "EDT": "EDT", "CLST": "CLST", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "ACWDT": "ACWDT", "VET": "VET", "AKST": "AKST", "AKDT": "AKDT", "WIT": "WIT", "CAT": "CAT", "NZST": "NZST", "NZDT": "NZDT", "WIB": "WIB", "WEZ": "WEZ", "HNPMX": "HNPMX", "BT": "BT", "ADT": "ADT", "AWDT": "AWDT", "GYT": "GYT", "MDT": "MDT", "AWST": "AWST", "MYT": "MYT", "CHAST": "CHAST", "WESZ": "WESZ", "SAST": "SAST", "AST": "AST", "BOT": "BOT", "ACST": "ACST", "LHDT": "LHDT", "UYT": "UYT", "HNCU": "HNCU", "CDT": "CDT"},
+ }
+ }
+ 
+@@ -138,7 +117,7 @@ func (en *en_HK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_HK) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_HK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_HK) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_HK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_HK) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +183,13 @@ func (en *en_HK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_HK' and handles both Whole and Real numbers based on 'v'
+ func (en *en_HK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_HK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_HK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_HK'
+@@ -278,56 +197,7 @@ func (en *en_HK) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_HK'
+@@ -336,68 +206,7 @@ func (en *en_HK) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_HK'
+@@ -424,17 +233,6 @@ func (en *en_HK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +241,6 @@ func (en *en_HK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,19 +249,6 @@ func (en *en_HK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -483,13 +257,11 @@ func (en *en_HK) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -497,13 +269,6 @@ func (en *en_HK) FmtTimeShort(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -513,13 +278,11 @@ func (en *en_HK) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -534,13 +297,6 @@ func (en *en_HK) FmtTimeMedium(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -550,13 +306,11 @@ func (en *en_HK) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -573,14 +327,6 @@ func (en *en_HK) FmtTimeLong(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ b = append(b, tz...)
+ 
+@@ -592,13 +338,11 @@ func (en *en_HK) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -615,14 +359,6 @@ func (en *en_HK) FmtTimeFull(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ 
+ if btz, ok := en.timezones[tz]; ok {
+diff --git a/en_IE/en_IE.go b/en_IE/en_IE.go
+index f2f0d6e..dde5127 100644
+--- a/en_IE/en_IE.go
++++ b/en_IE/en_IE.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_IE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_IE' locale
+ func New() locales.Translator {
+ return &en_IE{
+- locale: "en_IE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"GYT": "Guyana Time", "PST": "Pacific Standard Time", "BOT": "Bolivia Time", "OESZ": "Eastern European Summer Time", "WART": "Western Argentina Standard Time", "HECU": "Cuba Daylight Time", "HNOG": "West Greenland Standard Time", "JST": "Japan Standard Time", "MYT": "Malaysia Time", "AKST": "Alaska Standard Time", "WIT": "Eastern Indonesia Time", "MESZ": "Central European Summer Time", "NZST": "New Zealand Standard Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CAT": "Central Africa Time", "HNCU": "Cuba Standard Time", "MDT": "Macau Summer Time", "WESZ": "Western European Summer Time", "JDT": "Japan Daylight Time", "ChST": "Chamorro Standard Time", "BT": "Bhutan Time", "WEZ": "Western European Standard Time", "WITA": "Central Indonesia Time", "HEOG": "West Greenland Summer Time", "ARST": "Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "GMT": "Greenwich Mean Time", "MST": "Macau Standard Time", "NZDT": "New Zealand Daylight Time", "PDT": "Pacific Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "TMST": "Turkmenistan Summer Time", "AKDT": "Alaska Daylight Time", "CDT": "Central Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "EST": "Eastern Standard Time", "CST": "Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "SRT": "Suriname Time", "SAST": "South Africa Standard Time", "OEZ": "Eastern European Standard Time", "COST": "Colombia Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "CHADT": "Chatham Daylight Time", "HEEG": "East Greenland Summer Time", "WARST": "Western Argentina Summer Time", "VET": "Venezuela Time", "HAT": "Newfoundland Daylight Time", "UYST": "Uruguay Summer Time", "WIB": "Western Indonesia Time", "ACWST": "Australian Central Western Standard Time", "AWDT": "Australian Western Daylight Time", "∅∅∅": "Amazon Summer Time", "GFT": "French Guiana Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "AST": "Atlantic Standard Time", "ADT": "Atlantic Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "IST": "India Standard Time", "HNEG": "East Greenland Standard Time", "ACST": "Australian Central Standard Time", "EAT": "East Africa Time", "EDT": "Eastern Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "MEZ": "Central European Standard Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "ACDT": "Australian Central Daylight Time", "ECT": "Ecuador Time", "HNT": "Newfoundland Standard Time", "AWST": "Australian Western Standard Time", "LHDT": "Lord Howe Daylight Time", "CHAST": "Chatham Standard Time", "WAST": "West Africa Summer Time", "UYT": "Uruguay Standard Time", "HKT": "Hong Kong Standard Time", "HKST": "Hong Kong Summer Time"},
++ locale: "en_IE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsWide: []string{"a.m.", "p.m."},
++ timezones: map[string]string{"TMT": "TMT", "CDT": "CDT", "NZDT": "NZDT", "ART": "ART", "LHDT": "LHDT", "AEST": "AEST", "MEZ": "MEZ", "HAST": "HAST", "ACDT": "ACDT", "HNPM": "HNPM", "LHST": "LHST", "HNCU": "HNCU", "EST": "EST", "MDT": "MDT", "ChST": "ChST", "BOT": "BOT", "HENOMX": "HENOMX", "AWST": "AWST", "TMST": "TMST", "GMT": "GMT", "HEOG": "HEOG", "EDT": "EDT", "HNPMX": "HNPMX", "IST": "IST", "HEPMX": "HEPMX", "OEZ": "OEZ", "CAT": "CAT", "∅∅∅": "∅∅∅", "MESZ": "MESZ", "HNEG": "HNEG", "HEPM": "HEPM", "AEDT": "AEDT", "WARST": "WARST", "GYT": "GYT", "HKST": "HKST", "AST": "AST", "ECT": "ECT", "CHADT": "CHADT", "SGT": "SGT", "AKDT": "AKDT", "SAST": "SAST", "JDT": "JDT", "MYT": "MYT", "WIT": "WIT", "ACST": "ACST", "WAT": "WAT", "CST": "CST", "BT": "BT", "AWDT": "AWDT", "ACWDT": "ACWDT", "WAST": "WAST", "AKST": "AKST", "HNNOMX": "HNNOMX", "UYT": "UYT", "UYST": "UYST", "HECU": "HECU", "OESZ": "OESZ", "HNOG": "HNOG", "HKT": "HKT", "WITA": "WITA", "MST": "MST", "PST": "PST", "WESZ": "WESZ", "HNT": "HNT", "WIB": "WIB", "JST": "JST", "ACWST": "ACWST", "PDT": "PDT", "WART": "WART", "COT": "COT", "CLT": "CLT", "ADT": "ADT", "HADT": "HADT", "HEEG": "HEEG", "WEZ": "WEZ", "VET": "VET", "HAT": "HAT", "CLST": "CLST", "NZST": "NZST", "SRT": "SRT", "EAT": "EAT", "CHAST": "CHAST", "GFT": "GFT", "COST": "COST", "ARST": "ARST"},
+ }
+ }
+ 
+@@ -112,8 +91,8 @@ func (en *en_IE) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_IE) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
++ nMod100 := math.Mod(n, 100)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +117,7 @@ func (en *en_IE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_IE) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_IE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_IE) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_IE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_IE) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +183,13 @@ func (en *en_IE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_IE' and handles both Whole and Real numbers based on 'v'
+ func (en *en_IE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_IE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_IE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_IE'
+@@ -278,56 +197,7 @@ func (en *en_IE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_IE'
+@@ -336,68 +206,7 @@ func (en *en_IE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_IE'
+@@ -405,17 +214,6 @@ func (en *en_IE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +222,6 @@ func (en *en_IE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +230,6 @@ func (en *en_IE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/en_IL/en_IL.go b/en_IL/en_IL.go
+index aab8e5b..d32268b 100644
+--- a/en_IL/en_IL.go
++++ b/en_IL/en_IL.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_IL struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_IL' locale
+ func New() locales.Translator {
+ return &en_IL{
+- locale: "en_IL",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"VET": "Venezuela Time", "PDT": "Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "BOT": "Bolivia Time", "WARST": "Western Argentina Summer Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "HEOG": "West Greenland Summer Time", "IST": "India Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ChST": "Chamorro Standard Time", "WAT": "West Africa Standard Time", "EST": "Eastern Standard Time", "AST": "Atlantic Standard Time", "PST": "Pacific Standard Time", "ACWST": "Australian Central Western Standard Time", "HAT": "Newfoundland Daylight Time", "AWST": "Australian Western Standard Time", "OEZ": "Eastern European Standard Time", "ADT": "Atlantic Daylight Time", "WIB": "Western Indonesia Time", "ART": "Argentina Standard Time", "HKST": "Hong Kong Summer Time", "MEZ": "Central European Standard Time", "JST": "Japan Standard Time", "ECT": "Ecuador Time", "GYT": "Guyana Time", "HKT": "Hong Kong Standard Time", "JDT": "Japan Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "AEDT": "Australian Eastern Daylight Time", "LHDT": "Lord Howe Daylight Time", "HNEG": "East Greenland Standard Time", "EAT": "East Africa Time", "WIT": "Eastern Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "TMT": "Turkmenistan Standard Time", "WAST": "West Africa Summer Time", "OESZ": "Eastern European Summer Time", "WART": "Western Argentina Standard Time", "SGT": "Singapore Standard Time", "AKDT": "Alaska Daylight Time", "SRT": "Suriname Time", "WESZ": "Western European Summer Time", "HNT": "Newfoundland Standard Time", "CHADT": "Chatham Daylight Time", "HECU": "Cuba Daylight Time", "AKST": "Alaska Standard Time", "BT": "Bhutan Time", "MESZ": "Central European Summer Time", "CHAST": "Chatham Standard Time", "CLST": "Chile Summer Time", "COST": "Colombia Summer Time", "CST": "Central Standard Time", "ACST": "Australian Central Standard Time", "HNCU": "Cuba Standard Time", "EDT": "Eastern Daylight Time", "UYST": "Uruguay Summer Time", "WEZ": "Western European Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "HNOG": "West Greenland Standard Time", "AEST": "Australian Eastern Standard Time", "AWDT": "Australian Western Daylight Time", "WITA": "Central Indonesia Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "GMT": "Greenwich Mean Time", "UYT": "Uruguay Standard Time", "CDT": "Central Daylight Time", "NZST": "New Zealand Standard Time", "MYT": "Malaysia Time", "NZDT": "New Zealand Daylight Time", "∅∅∅": "Amazon Summer Time", "TMST": "Turkmenistan Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "ARST": "Argentina Summer Time", "SAST": "South Africa Standard Time", "CLT": "Chile Standard Time", "ACDT": "Australian Central Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time"},
++ locale: "en_IL",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNPMX": "HNPMX", "OESZ": "OESZ", "SAST": "SAST", "WIB": "WIB", "AST": "AST", "ChST": "ChST", "SGT": "SGT", "ACST": "ACST", "MYT": "MYT", "UYT": "UYT", "COST": "COST", "HNOG": "HNOG", "NZDT": "NZDT", "LHDT": "LHDT", "ACWST": "ACWST", "∅∅∅": "∅∅∅", "HECU": "HECU", "AKST": "AKST", "TMT": "TMT", "CLT": "CLT", "MESZ": "MESZ", "AWST": "AWST", "UYST": "UYST", "CLST": "CLST", "WIT": "WIT", "ECT": "ECT", "BT": "BT", "VET": "VET", "OEZ": "OEZ", "COT": "COT", "MEZ": "MEZ", "JDT": "JDT", "AKDT": "AKDT", "WARST": "WARST", "GMT": "GMT", "BOT": "BOT", "EAT": "EAT", "HNT": "HNT", "AWDT": "AWDT", "PDT": "PDT", "WAT": "WAT", "NZST": "NZST", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "EST": "EST", "WITA": "WITA", "CST": "CST", "MST": "MST", "CHADT": "CHADT", "AEDT": "AEDT", "WESZ": "WESZ", "WART": "WART", "GYT": "GYT", "HEEG": "HEEG", "LHST": "LHST", "HNPM": "HNPM", "TMST": "TMST", "CAT": "CAT", "HNEG": "HNEG", "HEPM": "HEPM", "JST": "JST", "ACWDT": "ACWDT", "HNCU": "HNCU", "MDT": "MDT", "ART": "ART", "ARST": "ARST", "HEPMX": "HEPMX", "GFT": "GFT", "EDT": "EDT", "HKST": "HKST", "CDT": "CDT", "SRT": "SRT", "HAT": "HAT", "HENOMX": "HENOMX", "WEZ": "WEZ", "WAST": "WAST", "HEOG": "HEOG", "CHAST": "CHAST", "PST": "PST", "AEST": "AEST", "IST": "IST", "HKT": "HKT", "ADT": "ADT", "HAST": "HAST", "HADT": "HADT"},
+ }
+ }
+ 
+@@ -112,8 +89,8 @@ func (en *en_IL) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_IL) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
++ nMod100 := math.Mod(n, 100)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +115,7 @@ func (en *en_IL) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_IL) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_IL) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_IL) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_IL) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_IL) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_IL) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_IL' and handles both Whole and Real numbers based on 'v'
+ func (en *en_IL) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_IL' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_IL) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_IL'
+@@ -278,56 +195,7 @@ func (en *en_IL) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_IL'
+@@ -336,68 +204,7 @@ func (en *en_IL) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_IL'
+@@ -405,17 +212,6 @@ func (en *en_IL) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +220,6 @@ func (en *en_IL) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +228,6 @@ func (en *en_IL) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,19 +236,6 @@ func (en *en_IL) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/en_IM/en_IM.go b/en_IM/en_IM.go
+index ed00d31..33b3abe 100644
+--- a/en_IM/en_IM.go
++++ b/en_IM/en_IM.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_IM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_IM' locale
+ func New() locales.Translator {
+ return &en_IM{
+- locale: "en_IM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HKST": "Hong Kong Summer Time", "CLST": "Chile Summer Time", "WART": "Western Argentina Standard Time", "WEZ": "Western European Standard Time", "ACWST": "Australian Central Western Standard Time", "ChST": "Chamorro Standard Time", "BOT": "Bolivia Time", "WARST": "Western Argentina Summer Time", "CST": "Central Standard Time", "AEST": "Australian Eastern Standard Time", "CHAST": "Chatham Standard Time", "WITA": "Central Indonesia Time", "CAT": "Central Africa Time", "ECT": "Ecuador Time", "HENOMX": "Northwest Mexico Daylight Time", "GMT": "Greenwich Mean Time", "UYT": "Uruguay Standard Time", "AST": "Atlantic Standard Time", "PDT": "Pacific Daylight Time", "WESZ": "Western European Summer Time", "AWST": "Australian Western Standard Time", "LHST": "Lord Howe Standard Time", "JDT": "Japan Daylight Time", "HEEG": "East Greenland Summer Time", "WAT": "West Africa Standard Time", "MESZ": "Central European Summer Time", "CHADT": "Chatham Daylight Time", "JST": "Japan Standard Time", "MYT": "Malaysia Time", "SRT": "Suriname Time", "HNT": "Newfoundland Standard Time", "HKT": "Hong Kong Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HAT": "Newfoundland Daylight Time", "IST": "India Standard Time", "TMST": "Turkmenistan Summer Time", "∅∅∅": "Peru Summer Time", "OESZ": "Eastern European Summer Time", "HECU": "Cuba Daylight Time", "ADT": "Atlantic Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "COT": "Colombia Standard Time", "VET": "Venezuela Time", "ARST": "Argentina Summer Time", "NZDT": "New Zealand Daylight Time", "SAST": "South Africa Standard Time", "WAST": "West Africa Summer Time", "OEZ": "Eastern European Standard Time", "MST": "Macau Standard Time", "BT": "Bhutan Time", "ART": "Argentina Standard Time", "TMT": "Turkmenistan Standard Time", "ACST": "Australian Central Standard Time", "EDT": "Eastern Daylight Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "WIT": "Eastern Indonesia Time", "MEZ": "Central European Standard Time", "HNCU": "Cuba Standard Time", "EST": "Eastern Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZST": "New Zealand Standard Time", "LHDT": "Lord Howe Daylight Time", "COST": "Colombia Summer Time", "UYST": "Uruguay Summer Time", "GYT": "Guyana Time", "PST": "Pacific Standard Time", "HEOG": "West Greenland Summer Time", "AWDT": "Australian Western Daylight Time", "EAT": "East Africa Time", "MDT": "Macau Summer Time", "HNPMX": "Mexican Pacific Standard Time", "CDT": "Central Daylight Time", "WIB": "Western Indonesia Time", "CLT": "Chile Standard Time", "ACDT": "Australian Central Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HNEG": "East Greenland Standard Time", "GFT": "French Guiana Time", "HEPMX": "Mexican Pacific Daylight Time", "HNOG": "West Greenland Standard Time"},
++ locale: "en_IM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsWide: []string{"am", "pm"},
++ timezones: map[string]string{"EDT": "EDT", "BT": "BT", "ACWDT": "ACWDT", "HNCU": "HNCU", "OESZ": "OESZ", "GYT": "GYT", "SRT": "SRT", "PST": "PST", "CLST": "CLST", "NZDT": "NZDT", "ART": "ART", "JDT": "JDT", "UYST": "UYST", "HEPMX": "HEPMX", "TMST": "TMST", "CAT": "CAT", "HNT": "HNT", "COST": "COST", "∅∅∅": "∅∅∅", "ChST": "ChST", "HAT": "HAT", "WARST": "WARST", "EST": "EST", "HKST": "HKST", "AWST": "AWST", "MYT": "MYT", "PDT": "PDT", "WIB": "WIB", "MESZ": "MESZ", "CHAST": "CHAST", "GFT": "GFT", "SAST": "SAST", "COT": "COT", "GMT": "GMT", "HNEG": "HNEG", "EAT": "EAT", "ACWST": "ACWST", "HECU": "HECU", "AKST": "AKST", "WART": "WART", "HNOG": "HNOG", "CLT": "CLT", "MDT": "MDT", "BOT": "BOT", "AEDT": "AEDT", "ACST": "ACST", "HENOMX": "HENOMX", "JST": "JST", "WEZ": "WEZ", "AKDT": "AKDT", "WITA": "WITA", "ADT": "ADT", "SGT": "SGT", "ECT": "ECT", "HAST": "HAST", "HNPM": "HNPM", "UYT": "UYT", "IST": "IST", "HNPMX": "HNPMX", "TMT": "TMT", "CDT": "CDT", "AEST": "AEST", "VET": "VET", "MEZ": "MEZ", "LHDT": "LHDT", "HEPM": "HEPM", "WESZ": "WESZ", "WAST": "WAST", "WIT": "WIT", "HKT": "HKT", "CST": "CST", "ARST": "ARST", "OEZ": "OEZ", "HEOG": "HEOG", "MST": "MST", "NZST": "NZST", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "WAT": "WAT", "AST": "AST", "ACDT": "ACDT", "LHST": "LHST", "CHADT": "CHADT", "HADT": "HADT", "HEEG": "HEEG"},
+ }
+ }
+ 
+@@ -138,7 +117,7 @@ func (en *en_IM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_IM) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_IM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_IM) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_IM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_IM) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +183,13 @@ func (en *en_IM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_IM' and handles both Whole and Real numbers based on 'v'
+ func (en *en_IM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_IM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_IM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_IM'
+@@ -278,56 +197,7 @@ func (en *en_IM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_IM'
+@@ -336,68 +206,7 @@ func (en *en_IM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_IM'
+@@ -405,17 +214,6 @@ func (en *en_IM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +222,6 @@ func (en *en_IM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +230,6 @@ func (en *en_IM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,19 +238,6 @@ func (en *en_IM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/en_IN/en_IN.go b/en_IN/en_IN.go
+index 474fa91..5e98563 100644
+--- a/en_IN/en_IN.go
++++ b/en_IN/en_IN.go
+@@ -48,30 +48,13 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{2, 6},
+ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+ pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+ periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+ periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HADT": "Hawaii-Aleutian Daylight Time", "LHST": "Lord Howe Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "GYT": "Guyana Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNEG": "East Greenland Standard Time", "WAST": "West Africa Summer Time", "CAT": "Central Africa Time", "WARST": "Western Argentina Summer Time", "UYT": "Uruguay Standard Time", "PST": "Pacific Standard Time", "MESZ": "Central European Summer Time", "PDT": "Pacific Daylight Time", "HKST": "Hong Kong Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "NZST": "New Zealand Standard Time", "AKST": "Alaska Standard Time", "ADT": "Atlantic Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "AWST": "Australian Western Standard Time", "CHADT": "Chatham Daylight Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "SAST": "South Africa Standard Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "∅∅∅": "Peru Summer Time", "HNOG": "West Greenland Standard Time", "JST": "Japan Standard Time", "WITA": "Central Indonesia Time", "IST": "India Standard Time", "CLT": "Chile Standard Time", "JDT": "Japan Daylight Time", "OESZ": "Eastern European Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AEDT": "Australian Eastern Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "GMT": "Greenwich Mean Time", "HAST": "Hawaii-Aleutian Standard Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "CDT": "Central Daylight Time", "AST": "Atlantic Standard Time", "ACWST": "Australian Central Western Standard Time", "HNT": "Newfoundland Standard Time", "CLST": "Chile Summer Time", "OEZ": "Eastern European Standard Time", "COST": "Colombia Summer Time", "EDT": "Eastern Daylight Time", "ChST": "Chamorro Standard Time", "AKDT": "Alaska Daylight Time", "MYT": "Malaysia Time", "VET": "Venezuela Time", "WEZ": "Western European Standard Time", "HEOG": "West Greenland Summer Time", "ACST": "Australian Central Standard Time", "HNCU": "Cuba Standard Time", "MDT": "Macau Summer Time", "TMT": "Turkmenistan Standard Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "HKT": "Hong Kong Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "SGT": "Singapore Standard Time", "WIB": "Western Indonesia Time", "HAT": "Newfoundland Daylight Time", "MEZ": "Central European Standard Time", "HEEG": "East Greenland Summer Time", "TMST": "Turkmenistan Summer Time", "EAT": "East Africa Time", "WAT": "West Africa Standard Time", "UYST": "Uruguay Summer Time", "MST": "Macau Standard Time", "EST": "Eastern Standard Time", "SRT": "Suriname Time", "BT": "Bhutan Time", "GFT": "French Guiana Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "HECU": "Cuba Daylight Time", "WART": "Western Argentina Standard Time", "WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time"},
++ timezones: map[string]string{"GYT": "GYT", "HKT": "HKT", "BT": "BT", "AWST": "AWST", "PST": "PST", "PDT": "PDT", "HEPMX": "HEPMX", "CST": "CST", "ACDT": "ACDT", "WEZ": "WEZ", "GFT": "GFT", "HAT": "HAT", "WARST": "WARST", "HNEG": "HNEG", "HECU": "HECU", "HNT": "HNT", "CLT": "CLT", "IST": "IST", "OEZ": "OEZ", "MDT": "MDT", "ADT": "ADT", "AWDT": "AWDT", "MEZ": "MEZ", "ACST": "ACST", "UYST": "UYST", "HNPMX": "HNPMX", "HKST": "HKST", "WITA": "WITA", "SRT": "SRT", "HAST": "HAST", "WESZ": "WESZ", "AKDT": "AKDT", "WART": "WART", "WIT": "WIT", "COT": "COT", "NZDT": "NZDT", "BOT": "BOT", "HENOMX": "HENOMX", "JDT": "JDT", "LHDT": "LHDT", "AEDT": "AEDT", "CHAST": "CHAST", "CHADT": "CHADT", "ART": "ART", "HEPM": "HEPM", "GMT": "GMT", "WAT": "WAT", "WAST": "WAST", "NZST": "NZST", "ChST": "ChST", "VET": "VET", "AEST": "AEST", "HNCU": "HNCU", "OESZ": "OESZ", "SAST": "SAST", "CAT": "CAT", "ACWDT": "ACWDT", "HNPM": "HNPM", "HEOG": "HEOG", "MESZ": "MESZ", "LHST": "LHST", "AKST": "AKST", "EDT": "EDT", "TMT": "TMT", "ECT": "ECT", "MST": "MST", "AST": "AST", "EAT": "EAT", "HNOG": "HNOG", "COST": "COST", "TMST": "TMST", "WIB": "WIB", "ACWST": "ACWST", "JST": "JST", "UYT": "UYT", "∅∅∅": "∅∅∅", "EST": "EST", "CLST": "CLST", "HADT": "HADT", "HEEG": "HEEG", "MYT": "MYT", "SGT": "SGT", "CDT": "CDT", "ARST": "ARST", "HNNOMX": "HNNOMX"},
+ }
+ }
+ 
+@@ -138,7 +121,7 @@ func (en *en_IN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_IN) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +131,7 @@ func (en *en_IN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_IN) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +141,7 @@ func (en *en_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_IN) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -205,7 +188,7 @@ func (en *en_IN) WeekdaysWide() []string {
+ func (en *en_IN) FmtNumber(num float64, v uint64) string {
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ inSecondary := false
+@@ -255,7 +238,7 @@ func (en *en_IN) FmtNumber(num float64, v uint64) string {
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_IN) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
++ l := len(s) + 0
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -287,7 +270,7 @@ func (en *en_IN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ inSecondary := false
+@@ -358,7 +341,7 @@ func (en *en_IN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ inSecondary := false
+@@ -492,17 +475,6 @@ func (en *en_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -532,13 +504,11 @@ func (en *en_IN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -546,13 +516,6 @@ func (en *en_IN) FmtTimeShort(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -562,13 +525,11 @@ func (en *en_IN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -583,13 +544,6 @@ func (en *en_IN) FmtTimeMedium(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -599,13 +553,11 @@ func (en *en_IN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -622,14 +574,6 @@ func (en *en_IN) FmtTimeLong(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ b = append(b, tz...)
+ 
+@@ -641,13 +585,11 @@ func (en *en_IN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -664,14 +606,6 @@ func (en *en_IN) FmtTimeFull(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ 
+ if btz, ok := en.timezones[tz]; ok {
+diff --git a/en_IO/en_IO.go b/en_IO/en_IO.go
+index cb121eb..91eaaaa 100644
+--- a/en_IO/en_IO.go
++++ b/en_IO/en_IO.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_IO struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_IO' locale
+ func New() locales.Translator {
+ return &en_IO{
+- locale: "en_IO",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"SRT": "Suriname Time", "SAST": "South Africa Standard Time", "CLT": "Chile Standard Time", "HEEG": "East Greenland Summer Time", "WESZ": "Western European Summer Time", "HAT": "Newfoundland Daylight Time", "HKT": "Hong Kong Standard Time", "TMST": "Turkmenistan Summer Time", "EST": "Eastern Standard Time", "WEZ": "Western European Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AEST": "Australian Eastern Standard Time", "HNEG": "East Greenland Standard Time", "EAT": "East Africa Time", "OESZ": "Eastern European Summer Time", "VET": "Venezuela Time", "HNOG": "West Greenland Standard Time", "HKST": "Hong Kong Summer Time", "CLST": "Chile Summer Time", "JST": "Japan Standard Time", "ChST": "Chamorro Standard Time", "AKDT": "Alaska Daylight Time", "WIT": "Eastern Indonesia Time", "ART": "Argentina Standard Time", "AEDT": "Australian Eastern Daylight Time", "IST": "India Standard Time", "JDT": "Japan Daylight Time", "WART": "Western Argentina Standard Time", "UYT": "Uruguay Standard Time", "PST": "Pacific Standard Time", "ACWST": "Australian Central Western Standard Time", "HNT": "Newfoundland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "BT": "Bhutan Time", "WITA": "Central Indonesia Time", "HECU": "Cuba Daylight Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "NZDT": "New Zealand Daylight Time", "CHADT": "Chatham Daylight Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "MST": "Macau Standard Time", "NZST": "New Zealand Standard Time", "∅∅∅": "Amazon Summer Time", "ACST": "Australian Central Standard Time", "GMT": "Greenwich Mean Time", "EDT": "Eastern Daylight Time", "CDT": "Central Daylight Time", "WIB": "Western Indonesia Time", "ARST": "Argentina Summer Time", "GYT": "Guyana Time", "UYST": "Uruguay Summer Time", "OEZ": "Eastern European Standard Time", "SGT": "Singapore Standard Time", "TMT": "Turkmenistan Standard Time", "ECT": "Ecuador Time", "COST": "Colombia Summer Time", "ADT": "Atlantic Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "AWST": "Australian Western Standard Time", "MESZ": "Central European Summer Time", "PDT": "Pacific Daylight Time", "CHAST": "Chatham Standard Time", "GFT": "French Guiana Time", "ACDT": "Australian Central Daylight Time", "WAST": "West Africa Summer Time", "WARST": "Western Argentina Summer Time", "MDT": "Macau Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "MYT": "Malaysia Time", "HEOG": "West Greenland Summer Time", "MEZ": "Central European Standard Time", "WAT": "West Africa Standard Time", "CST": "Central Standard Time", "AST": "Atlantic Standard Time", "HNCU": "Cuba Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AKST": "Alaska Standard Time"},
++ locale: "en_IO",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsWide: []string{"am", "pm"},
++ timezones: map[string]string{"WART": "WART", "HKST": "HKST", "CST": "CST", "MEZ": "MEZ", "MYT": "MYT", "BT": "BT", "HEPMX": "HEPMX", "AKST": "AKST", "ChST": "ChST", "COT": "COT", "AST": "AST", "GMT": "GMT", "CHAST": "CHAST", "PDT": "PDT", "AEST": "AEST", "WESZ": "WESZ", "HNCU": "HNCU", "HKT": "HKT", "CLT": "CLT", "MST": "MST", "ACST": "ACST", "SAST": "SAST", "HEOG": "HEOG", "EST": "EST", "AWDT": "AWDT", "AKDT": "AKDT", "MESZ": "MESZ", "HEEG": "HEEG", "HNT": "HNT", "WIT": "WIT", "TMT": "TMT", "HAST": "HAST", "JDT": "JDT", "PST": "PST", "HNOG": "HNOG", "ARST": "ARST", "WIB": "WIB", "HNPM": "HNPM", "CHADT": "CHADT", "HNPMX": "HNPMX", "GYT": "GYT", "CDT": "CDT", "HADT": "HADT", "AEDT": "AEDT", "ECT": "ECT", "WITA": "WITA", "BOT": "BOT", "HENOMX": "HENOMX", "ACWST": "ACWST", "WAT": "WAT", "OEZ": "OEZ", "SRT": "SRT", "HNEG": "HNEG", "LHDT": "LHDT", "UYST": "UYST", "WEZ": "WEZ", "AWST": "AWST", "UYT": "UYT", "WAST": "WAST", "CLST": "CLST", "NZST": "NZST", "SGT": "SGT", "HAT": "HAT", "NZDT": "NZDT", "MDT": "MDT", "EAT": "EAT", "HNNOMX": "HNNOMX", "LHST": "LHST", "∅∅∅": "∅∅∅", "ADT": "ADT", "IST": "IST", "HECU": "HECU", "COST": "COST", "EDT": "EDT", "CAT": "CAT", "ACWDT": "ACWDT", "TMST": "TMST", "ART": "ART", "JST": "JST", "OESZ": "OESZ", "ACDT": "ACDT", "HEPM": "HEPM", "VET": "VET", "GFT": "GFT", "WARST": "WARST"},
+ }
+ }
+ 
+@@ -138,7 +117,7 @@ func (en *en_IO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_IO) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_IO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_IO) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_IO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_IO) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +183,13 @@ func (en *en_IO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_IO' and handles both Whole and Real numbers based on 'v'
+ func (en *en_IO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_IO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_IO) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_IO'
+@@ -278,56 +197,7 @@ func (en *en_IO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_IO'
+@@ -336,84 +206,33 @@ func (en *en_IO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_IO'
++func (en *en_IO) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_IO'
+-func (en *en_IO) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +243,10 @@ func (en *en_IO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +262,10 @@ func (en *en_IO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +283,10 @@ func (en *en_IO) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_JE/en_JE.go b/en_JE/en_JE.go
+index 59240a3..526d347 100644
+--- a/en_JE/en_JE.go
++++ b/en_JE/en_JE.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_JE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_JE' locale
+ func New() locales.Translator {
+ return &en_JE{
+- locale: "en_JE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"BOT": "Bolivia Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "SRT": "Suriname Time", "AEST": "Australian Eastern Standard Time", "LHST": "Lord Howe Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZST": "New Zealand Standard Time", "CHAST": "Chatham Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "WESZ": "Western European Summer Time", "AEDT": "Australian Eastern Daylight Time", "ART": "Argentina Standard Time", "ACST": "Australian Central Standard Time", "WAT": "West Africa Standard Time", "COST": "Colombia Summer Time", "GMT": "Greenwich Mean Time", "AKST": "Alaska Standard Time", "MYT": "Malaysia Time", "WITA": "Central Indonesia Time", "JDT": "Japan Daylight Time", "ACDT": "Australian Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "CDT": "Central Daylight Time", "VET": "Venezuela Time", "ACWDT": "Australian Central Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "BT": "Bhutan Time", "HEOG": "West Greenland Summer Time", "PST": "Pacific Standard Time", "HNPMX": "Mexican Pacific Standard Time", "ADT": "Atlantic Daylight Time", "PDT": "Pacific Daylight Time", "NZDT": "New Zealand Daylight Time", "HKST": "Hong Kong Summer Time", "AWST": "Australian Western Standard Time", "HEEG": "East Greenland Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "UYT": "Uruguay Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "WEZ": "Western European Standard Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "OEZ": "Eastern European Standard Time", "CHADT": "Chatham Daylight Time", "MEZ": "Central European Standard Time", "HNEG": "East Greenland Standard Time", "HKT": "Hong Kong Standard Time", "∅∅∅": "Amazon Summer Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "EST": "Eastern Standard Time", "GYT": "Guyana Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWST": "Australian Central Western Standard Time", "MST": "Mountain Standard Time", "HNOG": "West Greenland Standard Time", "OESZ": "Eastern European Summer Time", "HECU": "Cuba Daylight Time", "SGT": "Singapore Standard Time", "MDT": "Mountain Daylight Time", "SAST": "South Africa Standard Time", "GFT": "French Guiana Time", "ARST": "Argentina Summer Time", "MESZ": "Central European Summer Time", "JST": "Japan Standard Time", "CLT": "Chile Standard Time", "ChST": "Chamorro Standard Time", "EDT": "Eastern Daylight Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "AWDT": "Australian Western Daylight Time", "HAT": "Newfoundland Daylight Time", "ECT": "Ecuador Time", "HNCU": "Cuba Standard Time", "AST": "Atlantic Standard Time", "UYST": "Uruguay Summer Time", "HNT": "Newfoundland Standard Time", "WAST": "West Africa Summer Time", "EAT": "East Africa Time", "AKDT": "Alaska Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CLST": "Chile Summer Time"},
++ locale: "en_JE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsWide: []string{"am", "pm"},
++ timezones: map[string]string{"AST": "AST", "ART": "ART", "HECU": "HECU", "HEPMX": "HEPMX", "CST": "CST", "ChST": "ChST", "IST": "IST", "COST": "COST", "CLST": "CLST", "HKST": "HKST", "MYT": "MYT", "CHADT": "CHADT", "AEST": "AEST", "UYT": "UYT", "ACWDT": "ACWDT", "OESZ": "OESZ", "WIT": "WIT", "ARST": "ARST", "AWDT": "AWDT", "LHDT": "LHDT", "OEZ": "OEZ", "WIB": "WIB", "ADT": "ADT", "∅∅∅": "∅∅∅", "SAST": "SAST", "HEOG": "HEOG", "BOT": "BOT", "AEDT": "AEDT", "GFT": "GFT", "WART": "WART", "PST": "PST", "GYT": "GYT", "CLT": "CLT", "MST": "MST", "ECT": "ECT", "HADT": "HADT", "HNNOMX": "HNNOMX", "CHAST": "CHAST", "GMT": "GMT", "SRT": "SRT", "HKT": "HKT", "TMT": "TMT", "CDT": "CDT", "NZDT": "NZDT", "JDT": "JDT", "UYST": "UYST", "EST": "EST", "PDT": "PDT", "AKDT": "AKDT", "COT": "COT", "EAT": "EAT", "MESZ": "MESZ", "ACDT": "ACDT", "EDT": "EDT", "HNEG": "HNEG", "WAST": "WAST", "WARST": "WARST", "JST": "JST", "SGT": "SGT", "HNCU": "HNCU", "HAT": "HAT", "HNOG": "HNOG", "HEEG": "HEEG", "AWST": "AWST", "LHST": "LHST", "TMST": "TMST", "CAT": "CAT", "WESZ": "WESZ", "WAT": "WAT", "MDT": "MDT", "MEZ": "MEZ", "HNPM": "HNPM", "WEZ": "WEZ", "HNT": "HNT", "NZST": "NZST", "HAST": "HAST", "HEPM": "HEPM", "BT": "BT", "WITA": "WITA", "HENOMX": "HENOMX", "ACWST": "ACWST", "VET": "VET", "ACST": "ACST", "HNPMX": "HNPMX", "AKST": "AKST"},
+ }
+ }
+ 
+@@ -138,7 +117,7 @@ func (en *en_JE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_JE) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_JE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_JE) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_JE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_JE) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +183,13 @@ func (en *en_JE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_JE' and handles both Whole and Real numbers based on 'v'
+ func (en *en_JE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_JE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_JE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_JE'
+@@ -278,56 +197,7 @@ func (en *en_JE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_JE'
+@@ -336,68 +206,7 @@ func (en *en_JE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_JE'
+@@ -405,17 +214,6 @@ func (en *en_JE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +222,6 @@ func (en *en_JE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +230,6 @@ func (en *en_JE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,19 +238,6 @@ func (en *en_JE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/en_JM/en_JM.go b/en_JM/en_JM.go
+index 93cac37..4103e0d 100644
+--- a/en_JM/en_JM.go
++++ b/en_JM/en_JM.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_JM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_JM' locale
+ func New() locales.Translator {
+ return &en_JM{
+- locale: "en_JM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "$", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"BT": "Bhutan Time", "MEZ": "Central European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "WIT": "Eastern Indonesia Time", "PST": "Pacific Standard Time", "IST": "India Standard Time", "ACST": "Australian Central Standard Time", "HECU": "Cuba Daylight Time", "SRT": "Suriname Time", "ECT": "Ecuador Time", "EAT": "East Africa Time", "WART": "Western Argentina Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "PDT": "Pacific Daylight Time", "SAST": "South Africa Standard Time", "JST": "Japan Standard Time", "AKDT": "Alaska Daylight Time", "HKST": "Hong Kong Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHDT": "Lord Howe Daylight Time", "ChST": "Chamorro Standard Time", "WIB": "Western Indonesia Time", "ACWST": "Australian Central Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "ART": "Argentina Standard Time", "EDT": "Eastern Daylight Time", "AST": "Atlantic Standard Time", "VET": "Venezuela Time", "WAST": "West Africa Summer Time", "HNCU": "Cuba Standard Time", "CDT": "Central Daylight Time", "WEZ": "Western European Standard Time", "TMT": "Turkmenistan Standard Time", "SGT": "Singapore Standard Time", "MST": "Macau Standard Time", "HEOG": "West Greenland Summer Time", "WITA": "Central Indonesia Time", "CHAST": "Chatham Standard Time", "HEEG": "East Greenland Summer Time", "OEZ": "Eastern European Standard Time", "WARST": "Western Argentina Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "HNOG": "West Greenland Standard Time", "WESZ": "Western European Summer Time", "AEDT": "Australian Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "COT": "Colombia Standard Time", "AWST": "Australian Western Standard Time", "AWDT": "Australian Western Daylight Time", "CHADT": "Chatham Daylight Time", "CLST": "Chile Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "EST": "Eastern Standard Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "MYT": "Malaysia Time", "JDT": "Japan Daylight Time", "TMST": "Turkmenistan Summer Time", "COST": "Colombia Summer Time", "AKST": "Alaska Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "ARST": "Argentina Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZST": "New Zealand Standard Time", "CLT": "Chile Standard Time", "GFT": "French Guiana Time", "GMT": "Greenwich Mean Time", "OESZ": "Eastern European Summer Time", "ACDT": "Australian Central Daylight Time", "UYT": "Uruguay Standard Time", "HNT": "Newfoundland Standard Time", "AEST": "Australian Eastern Standard Time", "BOT": "Bolivia Time", "ADT": "Atlantic Daylight Time", "CAT": "Central Africa Time", "WAT": "West Africa Standard Time", "UYST": "Uruguay Summer Time", "CST": "Central Standard Time", "HAT": "Newfoundland Daylight Time", "HKT": "Hong Kong Standard Time", "MESZ": "Central European Summer Time", "NZDT": "New Zealand Daylight Time", "HNEG": "East Greenland Standard Time", "∅∅∅": "Azores Summer Time"},
++ locale: "en_JM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "$", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEEG": "HEEG", "HNPM": "HNPM", "BT": "BT", "HNPMX": "HNPMX", "COST": "COST", "HKT": "HKT", "IST": "IST", "WESZ": "WESZ", "HECU": "HECU", "HAST": "HAST", "JDT": "JDT", "NZST": "NZST", "AST": "AST", "EAT": "EAT", "LHDT": "LHDT", "PST": "PST", "EST": "EST", "TMST": "TMST", "ADT": "ADT", "GMT": "GMT", "SRT": "SRT", "SGT": "SGT", "EDT": "EDT", "HKST": "HKST", "CLST": "CLST", "WEZ": "WEZ", "HAT": "HAT", "CAT": "CAT", "MEZ": "MEZ", "ACWST": "ACWST", "HEPMX": "HEPMX", "MST": "MST", "HADT": "HADT", "∅∅∅": "∅∅∅", "CDT": "CDT", "HNEG": "HNEG", "LHST": "LHST", "ACWDT": "ACWDT", "WARST": "WARST", "COT": "COT", "ACST": "ACST", "HEPM": "HEPM", "AEDT": "AEDT", "OEZ": "OEZ", "BOT": "BOT", "JST": "JST", "GFT": "GFT", "GYT": "GYT", "MESZ": "MESZ", "HENOMX": "HENOMX", "CST": "CST", "ART": "ART", "HNCU": "HNCU", "AKDT": "AKDT", "UYT": "UYT", "PDT": "PDT", "WIB": "WIB", "HNNOMX": "HNNOMX", "UYST": "UYST", "OESZ": "OESZ", "HNT": "HNT", "CLT": "CLT", "NZDT": "NZDT", "CHAST": "CHAST", "WAST": "WAST", "HEOG": "HEOG", "TMT": "TMT", "MDT": "MDT", "ECT": "ECT", "ChST": "ChST", "ARST": "ARST", "ACDT": "ACDT", "AWDT": "AWDT", "WIT": "WIT", "WITA": "WITA", "MYT": "MYT", "VET": "VET", "HNOG": "HNOG", "CHADT": "CHADT", "AWST": "AWST", "AEST": "AEST", "WAT": "WAT", "AKST": "AKST", "WART": "WART", "SAST": "SAST"},
+ }
+ }
+ 
+@@ -112,8 +89,8 @@ func (en *en_JM) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_JM) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
++ nMod10 := math.Mod(n, 10)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +115,7 @@ func (en *en_JM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_JM) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_JM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_JM) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_JM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_JM) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_JM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_JM' and handles both Whole and Real numbers based on 'v'
+ func (en *en_JM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_JM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_JM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_JM'
+@@ -278,56 +195,7 @@ func (en *en_JM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_JM'
+@@ -336,68 +204,7 @@ func (en *en_JM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_JM'
+@@ -424,10 +231,10 @@ func (en *en_JM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +250,10 @@ func (en *en_JM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +271,10 @@ func (en *en_JM) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +290,6 @@ func (en *en_JM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +298,6 @@ func (en *en_JM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +306,6 @@ func (en *en_JM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +314,5 @@ func (en *en_JM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_KE/en_KE.go b/en_KE/en_KE.go
+index 527124c..edd721f 100644
+--- a/en_KE/en_KE.go
++++ b/en_KE/en_KE.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_KE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_KE' locale
+ func New() locales.Translator {
+ return &en_KE{
+- locale: "en_KE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "Ksh", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"GYT": "Guyana Time", "MYT": "Malaysia Time", "AKDT": "Alaska Daylight Time", "AST": "Atlantic Standard Time", "WESZ": "Western European Summer Time", "HNT": "Newfoundland Standard Time", "NZST": "New Zealand Standard Time", "HNEG": "East Greenland Standard Time", "HNPMX": "Mexican Pacific Standard Time", "ACST": "Australian Central Standard Time", "EAT": "East Africa Time", "OESZ": "Eastern European Summer Time", "ADT": "Atlantic Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "LHDT": "Lord Howe Daylight Time", "∅∅∅": "Amazon Summer Time", "GFT": "French Guiana Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "CLST": "Chile Summer Time", "TMST": "Turkmenistan Summer Time", "PST": "Pacific Standard Time", "CHADT": "Chatham Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "SRT": "Suriname Time", "TMT": "Turkmenistan Standard Time", "HNCU": "Cuba Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "AKST": "Alaska Standard Time", "CDT": "Central Daylight Time", "JST": "Japan Standard Time", "HEEG": "East Greenland Summer Time", "MEZ": "Central European Standard Time", "ACWST": "Australian Central Western Standard Time", "AEST": "Australian Eastern Standard Time", "HNOG": "West Greenland Standard Time", "AWST": "Australian Western Standard Time", "CST": "Central Standard Time", "ART": "Argentina Standard Time", "EDT": "Eastern Daylight Time", "HKT": "Hong Kong Standard Time", "MESZ": "Central European Summer Time", "BOT": "Bolivia Time", "WARST": "Western Argentina Summer Time", "UYST": "Uruguay Summer Time", "HAT": "Newfoundland Daylight Time", "IST": "India Standard Time", "SAST": "South Africa Standard Time", "CLT": "Chile Standard Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "PDT": "Pacific Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZDT": "New Zealand Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "HECU": "Cuba Daylight Time", "OEZ": "Eastern European Standard Time", "WIT": "Eastern Indonesia Time", "UYT": "Uruguay Standard Time", "WEZ": "Western European Standard Time", "ACWDT": "Australian Central Western Daylight Time", "ARST": "Argentina Summer Time", "JDT": "Japan Daylight Time", "COT": "Colombia Standard Time", "CAT": "Central Africa Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "HEOG": "West Greenland Summer Time", "ChST": "Chamorro Standard Time", "ACDT": "Australian Central Daylight Time", "VET": "Venezuela Time", "AEDT": "Australian Eastern Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "WART": "Western Argentina Standard Time", "SGT": "Singapore Standard Time", "GMT": "Greenwich Mean Time", "HKST": "Hong Kong Summer Time", "WITA": "Central Indonesia Time", "CHAST": "Chatham Standard Time", "ECT": "Ecuador Time", "HNNOMX": "Northwest Mexico Standard Time"},
++ locale: "en_KE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "Ksh", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEPM": "HEPM", "JDT": "JDT", "WEZ": "WEZ", "HNCU": "HNCU", "HECU": "HECU", "AKDT": "AKDT", "COST": "COST", "CDT": "CDT", "MEZ": "MEZ", "IST": "IST", "NZST": "NZST", "ART": "ART", "ChST": "ChST", "EAT": "EAT", "HADT": "HADT", "MYT": "MYT", "WAT": "WAT", "TMT": "TMT", "TMST": "TMST", "ACWST": "ACWST", "WAST": "WAST", "EDT": "EDT", "SRT": "SRT", "ACST": "ACST", "CHADT": "CHADT", "OEZ": "OEZ", "HNT": "HNT", "CST": "CST", "WIB": "WIB", "MESZ": "MESZ", "HNEG": "HNEG", "LHDT": "LHDT", "CHAST": "CHAST", "WART": "WART", "HEOG": "HEOG", "BOT": "BOT", "CAT": "CAT", "MST": "MST", "NZDT": "NZDT", "UYST": "UYST", "HKT": "HKT", "HKST": "HKST", "ECT": "ECT", "ADT": "ADT", "ARST": "ARST", "LHST": "LHST", "HNPM": "HNPM", "AEST": "AEST", "GYT": "GYT", "HNOG": "HNOG", "WIT": "WIT", "BT": "BT", "GFT": "GFT", "WARST": "WARST", "HNNOMX": "HNNOMX", "UYT": "UYT", "CLT": "CLT", "MDT": "MDT", "HAT": "HAT", "COT": "COT", "AWST": "AWST", "JST": "JST", "PDT": "PDT", "VET": "VET", "AST": "AST", "HAST": "HAST", "ACDT": "ACDT", "HEEG": "HEEG", "PST": "PST", "HNPMX": "HNPMX", "SAST": "SAST", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "WESZ": "WESZ", "OESZ": "OESZ", "CLST": "CLST", "AWDT": "AWDT", "AKST": "AKST", "ACWDT": "ACWDT", "HEPMX": "HEPMX", "GMT": "GMT", "HENOMX": "HENOMX", "SGT": "SGT", "EST": "EST", "WITA": "WITA"},
+ }
+ }
+ 
+@@ -112,8 +89,8 @@ func (en *en_KE) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_KE) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
++ nMod100 := math.Mod(n, 100)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +115,7 @@ func (en *en_KE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_KE) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_KE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_KE) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_KE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_KE) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_KE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_KE' and handles both Whole and Real numbers based on 'v'
+ func (en *en_KE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_KE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_KE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_KE'
+@@ -278,56 +195,7 @@ func (en *en_KE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_KE'
+@@ -336,84 +204,33 @@ func (en *en_KE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_KE'
++func (en *en_KE) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_KE'
+-func (en *en_KE) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_KE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_KE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_KE) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_KI/en_KI.go b/en_KI/en_KI.go
+index 92a724b..8b26337 100644
+--- a/en_KI/en_KI.go
++++ b/en_KI/en_KI.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_KI struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_KI' locale
+ func New() locales.Translator {
+ return &en_KI{
+- locale: "en_KI",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "$", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"GFT": "French Guiana Time", "CAT": "Central Africa Time", "AWDT": "Australian Western Daylight Time", "EDT": "Eastern Daylight Time", "SGT": "Singapore Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNT": "Newfoundland Standard Time", "WITA": "Central Indonesia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MEZ": "Central European Standard Time", "WAT": "West Africa Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "VET": "Venezuela Time", "HNOG": "West Greenland Standard Time", "UYT": "Uruguay Standard Time", "CDT": "Central Daylight Time", "SRT": "Suriname Time", "CHADT": "Chatham Daylight Time", "ART": "Argentina Standard Time", "CLST": "Chile Summer Time", "TMST": "Turkmenistan Summer Time", "ACDT": "Australian Central Daylight Time", "WAST": "West Africa Summer Time", "EST": "Eastern Standard Time", "WIB": "Western Indonesia Time", "HEOG": "West Greenland Summer Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "MDT": "Macau Summer Time", "AST": "Atlantic Standard Time", "AEDT": "Australian Eastern Daylight Time", "HKST": "Hong Kong Summer Time", "BT": "Bhutan Time", "CST": "Central Standard Time", "PDT": "Pacific Daylight Time", "HAT": "Newfoundland Daylight Time", "SAST": "South Africa Standard Time", "ACST": "Australian Central Standard Time", "HECU": "Cuba Daylight Time", "MST": "Macau Standard Time", "MYT": "Malaysia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "IST": "India Standard Time", "JST": "Japan Standard Time", "HNEG": "East Greenland Standard Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "HNCU": "Cuba Standard Time", "OESZ": "Eastern European Summer Time", "ACWST": "Australian Central Western Standard Time", "HKT": "Hong Kong Standard Time", "MESZ": "Central European Summer Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "AKST": "Alaska Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "PST": "Pacific Standard Time", "∅∅∅": "Amazon Summer Time", "TMT": "Turkmenistan Standard Time", "EAT": "East Africa Time", "WART": "Western Argentina Standard Time", "WESZ": "Western European Summer Time", "ACWDT": "Australian Central Western Daylight Time", "AWST": "Australian Western Standard Time", "LHDT": "Lord Howe Daylight Time", "ChST": "Chamorro Standard Time", "BOT": "Bolivia Time", "AKDT": "Alaska Daylight Time", "UYST": "Uruguay Summer Time", "WIT": "Eastern Indonesia Time", "ARST": "Argentina Summer Time", "JDT": "Japan Daylight Time", "CLT": "Chile Standard Time", "HEEG": "East Greenland Summer Time", "WARST": "Western Argentina Summer Time", "ADT": "Atlantic Daylight Time", "WEZ": "Western European Standard Time", "AEST": "Australian Eastern Standard Time", "COST": "Colombia Summer Time", "HNNOMX": "Northwest Mexico Standard Time"},
++ locale: "en_KI",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "$", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"JDT": "JDT", "AEST": "AEST", "∅∅∅": "∅∅∅", "HECU": "HECU", "WAST": "WAST", "HNOG": "HNOG", "NZST": "NZST", "ADT": "ADT", "MEZ": "MEZ", "HENOMX": "HENOMX", "AWST": "AWST", "HNPMX": "HNPMX", "OEZ": "OEZ", "LHDT": "LHDT", "HNPM": "HNPM", "PDT": "PDT", "ACWST": "ACWST", "BT": "BT", "WEZ": "WEZ", "AKDT": "AKDT", "WIT": "WIT", "EDT": "EDT", "GMT": "GMT", "ChST": "ChST", "LHST": "LHST", "WESZ": "WESZ", "SGT": "SGT", "EST": "EST", "PST": "PST", "WAT": "WAT", "GFT": "GFT", "WART": "WART", "COST": "COST", "CLT": "CLT", "NZDT": "NZDT", "BOT": "BOT", "MESZ": "MESZ", "CHADT": "CHADT", "GYT": "GYT", "COT": "COT", "CAT": "CAT", "CST": "CST", "ECT": "ECT", "HAST": "HAST", "TMST": "TMST", "HADT": "HADT", "HEPM": "HEPM", "AEDT": "AEDT", "IST": "IST", "HNCU": "HNCU", "AKST": "AKST", "HAT": "HAT", "TMT": "TMT", "ARST": "ARST", "UYT": "UYT", "HNT": "HNT", "SAST": "SAST", "EAT": "EAT", "ACST": "ACST", "ACDT": "ACDT", "VET": "VET", "WARST": "WARST", "CDT": "CDT", "MST": "MST", "MDT": "MDT", "HEEG": "HEEG", "UYST": "UYST", "ACWDT": "ACWDT", "HEOG": "HEOG", "WITA": "WITA", "AST": "AST", "ART": "ART", "MYT": "MYT", "HEPMX": "HEPMX", "OESZ": "OESZ", "HKST": "HKST", "WIB": "WIB", "SRT": "SRT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "JST": "JST", "CHAST": "CHAST", "HKT": "HKT", "AWDT": "AWDT", "CLST": "CLST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_KI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_KI) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_KI) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_KI) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_KI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_KI) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_KI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_KI' and handles both Whole and Real numbers based on 'v'
+ func (en *en_KI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_KI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_KI) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_KI'
+@@ -278,56 +195,7 @@ func (en *en_KI) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_KI'
+@@ -336,84 +204,33 @@ func (en *en_KI) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_KI'
++func (en *en_KI) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_KI'
+-func (en *en_KI) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_KI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_KI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_KI) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_KI) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_KI) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_KI) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_KI) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_KN/en_KN.go b/en_KN/en_KN.go
+index 1c40820..71216d9 100644
+--- a/en_KN/en_KN.go
++++ b/en_KN/en_KN.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_KN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_KN' locale
+ func New() locales.Translator {
+ return &en_KN{
+- locale: "en_KN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "$", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"CDT": "Central Daylight Time", "LHDT": "Lord Howe Daylight Time", "TMT": "Turkmenistan Standard Time", "AKST": "Alaska Standard Time", "CST": "Central Standard Time", "AEDT": "Australian Eastern Daylight Time", "CLST": "Chile Summer Time", "HNEG": "East Greenland Standard Time", "SGT": "Singapore Standard Time", "AKDT": "Alaska Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "HAT": "Newfoundland Daylight Time", "HEOG": "West Greenland Summer Time", "GYT": "Guyana Time", "HEEG": "East Greenland Summer Time", "ACDT": "Australian Central Daylight Time", "PDT": "Pacific Daylight Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "BOT": "Bolivia Time", "EST": "Eastern Standard Time", "ADT": "Atlantic Daylight Time", "MST": "Mountain Standard Time", "MDT": "Mountain Daylight Time", "LHST": "Lord Howe Standard Time", "AWDT": "Australian Western Daylight Time", "MEZ": "Central European Standard Time", "ACST": "Australian Central Standard Time", "HKT": "Hong Kong Standard Time", "AWST": "Australian Western Standard Time", "OEZ": "Eastern European Standard Time", "ECT": "Ecuador Time", "GMT": "Greenwich Mean Time", "HAST": "Hawaii-Aleutian Standard Time", "WITA": "Central Indonesia Time", "AEST": "Australian Eastern Standard Time", "EDT": "Eastern Daylight Time", "MYT": "Malaysia Time", "ART": "Argentina Standard Time", "CHADT": "Chatham Daylight Time", "MESZ": "Central European Summer Time", "HNOG": "West Greenland Standard Time", "JST": "Japan Standard Time", "WAST": "West Africa Summer Time", "OESZ": "Eastern European Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "WIB": "Western Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "BT": "Bhutan Time", "WESZ": "Western European Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CLT": "Chile Standard Time", "GFT": "French Guiana Time", "ChST": "Chamorro Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "WART": "Western Argentina Standard Time", "WIT": "Eastern Indonesia Time", "HKST": "Hong Kong Summer Time", "CHAST": "Chatham Standard Time", "WARST": "Western Argentina Summer Time", "COT": "Colombia Standard Time", "HNCU": "Cuba Standard Time", "NZST": "New Zealand Standard Time", "SAST": "South Africa Standard Time", "WAT": "West Africa Standard Time", "AST": "Atlantic Standard Time", "UYT": "Uruguay Standard Time", "SRT": "Suriname Time", "HNT": "Newfoundland Standard Time", "WEZ": "Western European Standard Time", "UYST": "Uruguay Summer Time", "∅∅∅": "Amazon Summer Time", "JDT": "Japan Daylight Time", "COST": "Colombia Summer Time", "VET": "Venezuela Time", "ACWST": "Australian Central Western Standard Time", "ARST": "Argentina Summer Time", "HNPMX": "Mexican Pacific Standard Time", "PST": "Pacific Standard Time", "CAT": "Central Africa Time", "HECU": "Cuba Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "TMST": "Turkmenistan Summer Time", "EAT": "East Africa Time"},
++ locale: "en_KN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "$", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GFT": "GFT", "EDT": "EDT", "CST": "CST", "MESZ": "MESZ", "HNEG": "HNEG", "JDT": "JDT", "UYST": "UYST", "HEPMX": "HEPMX", "ChST": "ChST", "ARST": "ARST", "AWDT": "AWDT", "JST": "JST", "ACWST": "ACWST", "OESZ": "OESZ", "HEOG": "HEOG", "ECT": "ECT", "LHST": "LHST", "IST": "IST", "HNCU": "HNCU", "CAT": "CAT", "CDT": "CDT", "AEST": "AEST", "AKST": "AKST", "OEZ": "OEZ", "COST": "COST", "AST": "AST", "GMT": "GMT", "ACDT": "ACDT", "BT": "BT", "COT": "COT", "EST": "EST", "WITA": "WITA", "SAST": "SAST", "HNOG": "HNOG", "MEZ": "MEZ", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "AKDT": "AKDT", "WART": "WART", "EAT": "EAT", "HENOMX": "HENOMX", "MYT": "MYT", "NZDT": "NZDT", "ADT": "ADT", "MDT": "MDT", "HAST": "HAST", "HNPMX": "HNPMX", "WIB": "WIB", "PST": "PST", "TMST": "TMST", "CLT": "CLT", "NZST": "NZST", "ACST": "ACST", "LHDT": "LHDT", "HEPM": "HEPM", "ACWDT": "ACWDT", "SGT": "SGT", "ART": "ART", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "WARST": "WARST", "HKT": "HKT", "HADT": "HADT", "HEEG": "HEEG", "PDT": "PDT", "TMT": "TMT", "CLST": "CLST", "MST": "MST", "AWST": "AWST", "CHADT": "CHADT", "WAST": "WAST", "GYT": "GYT", "HNT": "HNT", "SRT": "SRT", "CHAST": "CHAST", "UYT": "UYT", "HECU": "HECU", "WAT": "WAT", "BOT": "BOT", "WEZ": "WEZ", "HAT": "HAT", "WIT": "WIT", "WESZ": "WESZ", "VET": "VET", "HKST": "HKST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_KN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_KN) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_KN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_KN) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_KN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_KN) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_KN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_KN' and handles both Whole and Real numbers based on 'v'
+ func (en *en_KN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_KN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_KN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_KN'
+@@ -278,56 +195,7 @@ func (en *en_KN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_KN'
+@@ -336,84 +204,33 @@ func (en *en_KN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_KN'
++func (en *en_KN) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_KN'
+-func (en *en_KN) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_KN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_KN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_KN) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_KN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_KN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_KN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_KN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_KY/en_KY.go b/en_KY/en_KY.go
+index 929a7a1..df712ad 100644
+--- a/en_KY/en_KY.go
++++ b/en_KY/en_KY.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_KY struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_KY' locale
+ func New() locales.Translator {
+ return &en_KY{
+- locale: "en_KY",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "$", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"WESZ": "Western European Summer Time", "GFT": "French Guiana Time", "WART": "Western Argentina Standard Time", "SGT": "Singapore Standard Time", "HNPMX": "Mexican Pacific Standard Time", "PDT": "Pacific Daylight Time", "AEST": "Australian Eastern Standard Time", "CLST": "Chile Summer Time", "HKST": "Hong Kong Summer Time", "∅∅∅": "Amazon Summer Time", "EDT": "Eastern Daylight Time", "AKDT": "Alaska Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWST": "Australian Central Western Standard Time", "HNT": "Newfoundland Standard Time", "JDT": "Japan Daylight Time", "WAT": "West Africa Standard Time", "ACWDT": "Australian Central Western Daylight Time", "MESZ": "Central European Summer Time", "NZDT": "New Zealand Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "IST": "India Standard Time", "JST": "Japan Standard Time", "WAST": "West Africa Summer Time", "GMT": "Greenwich Mean Time", "MST": "Mountain Standard Time", "VET": "Venezuela Time", "HNPM": "St. Pierre & Miquelon Standard Time", "ADT": "Atlantic Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "AWDT": "Australian Western Daylight Time", "HKT": "Hong Kong Standard Time", "HNEG": "East Greenland Standard Time", "OESZ": "Eastern European Summer Time", "MYT": "Malaysia Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "HAT": "Newfoundland Daylight Time", "AST": "Atlantic Standard Time", "PST": "Pacific Standard Time", "ARST": "Argentina Summer Time", "EAT": "East Africa Time", "CHAST": "Chatham Standard Time", "ChST": "Chamorro Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "UYT": "Uruguay Standard Time", "SRT": "Suriname Time", "WITA": "Central Indonesia Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "UYST": "Uruguay Summer Time", "GYT": "Guyana Time", "MDT": "Mountain Daylight Time", "WIT": "Eastern Indonesia Time", "HEEG": "East Greenland Summer Time", "TMST": "Turkmenistan Summer Time", "HNCU": "Cuba Standard Time", "WEZ": "Western European Standard Time", "NZST": "New Zealand Standard Time", "CLT": "Chile Standard Time", "MEZ": "Central European Standard Time", "OEZ": "Eastern European Standard Time", "SAST": "South Africa Standard Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "CAT": "Central Africa Time", "HEOG": "West Greenland Summer Time", "AEDT": "Australian Eastern Daylight Time", "CHADT": "Chatham Daylight Time", "AKST": "Alaska Standard Time", "AWST": "Australian Western Standard Time", "WARST": "Western Argentina Summer Time", "HECU": "Cuba Daylight Time", "ACST": "Australian Central Standard Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "ART": "Argentina Standard Time", "HNOG": "West Greenland Standard Time", "TMT": "Turkmenistan Standard Time"},
++ locale: "en_KY",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "$", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MYT": "MYT", "IST": "IST", "HEOG": "HEOG", "TMT": "TMT", "ADT": "ADT", "HENOMX": "HENOMX", "HAT": "HAT", "WARST": "WARST", "SAST": "SAST", "ART": "ART", "BT": "BT", "AST": "AST", "HADT": "HADT", "CHADT": "CHADT", "ACWST": "ACWST", "AKDT": "AKDT", "COT": "COT", "HEEG": "HEEG", "MESZ": "MESZ", "PDT": "PDT", "ECT": "ECT", "WIB": "WIB", "WIT": "WIT", "HNT": "HNT", "COST": "COST", "HNPM": "HNPM", "JST": "JST", "LHST": "LHST", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "EST": "EST", "GMT": "GMT", "SRT": "SRT", "ACWDT": "ACWDT", "WEZ": "WEZ", "WAST": "WAST", "OEZ": "OEZ", "HNPMX": "HNPMX", "WAT": "WAT", "TMST": "TMST", "CLST": "CLST", "AKST": "AKST", "GFT": "GFT", "EDT": "EDT", "HAST": "HAST", "MEZ": "MEZ", "CHAST": "CHAST", "UYT": "UYT", "VET": "VET", "ChST": "ChST", "AWDT": "AWDT", "LHDT": "LHDT", "HNOG": "HNOG", "CLT": "CLT", "WITA": "WITA", "ACST": "ACST", "WESZ": "WESZ", "SGT": "SGT", "OESZ": "OESZ", "MDT": "MDT", "ACDT": "ACDT", "JDT": "JDT", "AWST": "AWST", "PST": "PST", "WART": "WART", "GYT": "GYT", "NZDT": "NZDT", "CST": "CST", "AEST": "AEST", "HKT": "HKT", "HKST": "HKST", "CAT": "CAT", "ARST": "ARST", "HNEG": "HNEG", "HEPM": "HEPM", "UYST": "UYST", "HNCU": "HNCU", "NZST": "NZST", "HEPMX": "HEPMX", "CDT": "CDT", "MST": "MST", "BOT": "BOT", "EAT": "EAT", "HNNOMX": "HNNOMX", "HECU": "HECU"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_KY) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_KY) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_KY) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_KY) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_KY) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_KY) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_KY) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_KY' and handles both Whole and Real numbers based on 'v'
+ func (en *en_KY) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_KY' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_KY) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_KY'
+@@ -278,56 +195,7 @@ func (en *en_KY) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_KY'
+@@ -336,84 +204,33 @@ func (en *en_KY) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_KY'
++func (en *en_KY) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_KY'
+-func (en *en_KY) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_KY) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_KY) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_KY) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_KY) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_KY) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_KY) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_KY) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_LC/en_LC.go b/en_LC/en_LC.go
+index 7c5a14c..572fcb4 100644
+--- a/en_LC/en_LC.go
++++ b/en_LC/en_LC.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_LC struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_LC' locale
+ func New() locales.Translator {
+ return &en_LC{
+- locale: "en_LC",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "$", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"GFT": "French Guiana Time", "EAT": "East Africa Time", "HECU": "Cuba Daylight Time", "EST": "Eastern Standard Time", "ADT": "Atlantic Daylight Time", "HKT": "Hong Kong Standard Time", "HKST": "Hong Kong Summer Time", "HNCU": "Cuba Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "BT": "Bhutan Time", "ACWST": "Australian Central Western Standard Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "PST": "Pacific Standard Time", "ARST": "Argentina Summer Time", "CLT": "Chile Standard Time", "JST": "Japan Standard Time", "ACDT": "Australian Central Daylight Time", "WAT": "West Africa Standard Time", "AKST": "Alaska Standard Time", "SRT": "Suriname Time", "CHADT": "Chatham Daylight Time", "ACST": "Australian Central Standard Time", "EDT": "Eastern Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "WITA": "Central Indonesia Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "COT": "Colombia Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "AEDT": "Australian Eastern Daylight Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "TMST": "Turkmenistan Summer Time", "MDT": "Macau Summer Time", "WEZ": "Western European Standard Time", "HEOG": "West Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AKDT": "Alaska Daylight Time", "VET": "Venezuela Time", "ART": "Argentina Standard Time", "AWST": "Australian Western Standard Time", "OEZ": "Eastern European Standard Time", "UYT": "Uruguay Standard Time", "UYST": "Uruguay Summer Time", "CLST": "Chile Summer Time", "HNEG": "East Greenland Standard Time", "CST": "Central Standard Time", "PDT": "Pacific Daylight Time", "HNT": "Newfoundland Standard Time", "HNOG": "West Greenland Standard Time", "WARST": "Western Argentina Summer Time", "SGT": "Singapore Standard Time", "MST": "Macau Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "MEZ": "Central European Standard Time", "AWDT": "Australian Western Daylight Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "ECT": "Ecuador Time", "WART": "Western Argentina Standard Time", "WIB": "Western Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "SAST": "South Africa Standard Time", "HEEG": "East Greenland Summer Time", "OESZ": "Eastern European Summer Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "∅∅∅": "Amazon Summer Time", "WAST": "West Africa Summer Time", "GMT": "Greenwich Mean Time", "AST": "Atlantic Standard Time", "MESZ": "Central European Summer Time", "WESZ": "Western European Summer Time", "JDT": "Japan Daylight Time", "ChST": "Chamorro Standard Time", "COST": "Colombia Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "GYT": "Guyana Time", "WIT": "Eastern Indonesia Time", "CDT": "Central Daylight Time", "MYT": "Malaysia Time", "HEPM": "St. Pierre & Miquelon Daylight Time"},
++ locale: "en_LC",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "$", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNT": "HNT", "COST": "COST", "CST": "CST", "AST": "AST", "LHST": "LHST", "ChST": "ChST", "HADT": "HADT", "OEZ": "OEZ", "EAT": "EAT", "ACDT": "ACDT", "ACWST": "ACWST", "AKDT": "AKDT", "TMST": "TMST", "LHDT": "LHDT", "BT": "BT", "HNCU": "HNCU", "WAT": "WAT", "HEOG": "HEOG", "TMT": "TMT", "MST": "MST", "HNEG": "HNEG", "HEEG": "HEEG", "HEPM": "HEPM", "UYST": "UYST", "HNPMX": "HNPMX", "SGT": "SGT", "VET": "VET", "NZST": "NZST", "SRT": "SRT", "MEZ": "MEZ", "ACST": "ACST", "JDT": "JDT", "MYT": "MYT", "ECT": "ECT", "BOT": "BOT", "CHADT": "CHADT", "PST": "PST", "GFT": "GFT", "∅∅∅": "∅∅∅", "AWST": "AWST", "WESZ": "WESZ", "WART": "WART", "EST": "EST", "CAT": "CAT", "ART": "ART", "AEST": "AEST", "HAT": "HAT", "HNOG": "HNOG", "WITA": "WITA", "ADT": "ADT", "MESZ": "MESZ", "JST": "JST", "ACWDT": "ACWDT", "WARST": "WARST", "SAST": "SAST", "WIB": "WIB", "MDT": "MDT", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "AEDT": "AEDT", "CHAST": "CHAST", "PDT": "PDT", "AKST": "AKST", "GMT": "GMT", "HAST": "HAST", "AWDT": "AWDT", "COT": "COT", "CLT": "CLT", "CDT": "CDT", "HNPM": "HNPM", "IST": "IST", "HECU": "HECU", "OESZ": "OESZ", "GYT": "GYT", "HKT": "HKT", "HKST": "HKST", "CLST": "CLST", "HENOMX": "HENOMX", "WAST": "WAST", "EDT": "EDT", "ARST": "ARST", "UYT": "UYT", "HEPMX": "HEPMX", "WEZ": "WEZ", "WIT": "WIT"},
+ }
+ }
+ 
+@@ -112,8 +89,8 @@ func (en *en_LC) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_LC) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
++ nMod10 := math.Mod(n, 10)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +115,7 @@ func (en *en_LC) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_LC) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_LC) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_LC) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_LC) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_LC) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_LC) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_LC' and handles both Whole and Real numbers based on 'v'
+ func (en *en_LC) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_LC' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_LC) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_LC'
+@@ -278,56 +195,7 @@ func (en *en_LC) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_LC'
+@@ -336,84 +204,33 @@ func (en *en_LC) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_LC'
++func (en *en_LC) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_LC'
+-func (en *en_LC) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_LC) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_LC) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_LC) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_LC) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_LC) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_LC) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_LC) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_LR/en_LR.go b/en_LR/en_LR.go
+index b8a9e6e..15b235d 100644
+--- a/en_LR/en_LR.go
++++ b/en_LR/en_LR.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_LR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_LR' locale
+ func New() locales.Translator {
+ return &en_LR{
+- locale: "en_LR",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "$", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"IST": "India Standard Time", "JDT": "Japan Daylight Time", "SAST": "South Africa Standard Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "WITA": "Central Indonesia Time", "ChST": "Chamorro Standard Time", "GYT": "Guyana Time", "HENOMX": "Northwest Mexico Daylight Time", "SGT": "Singapore Standard Time", "OESZ": "Eastern European Summer Time", "COST": "Colombia Summer Time", "BT": "Bhutan Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "HKT": "Hong Kong Standard Time", "LHST": "Lord Howe Standard Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "GMT": "Greenwich Mean Time", "UYST": "Uruguay Summer Time", "SRT": "Suriname Time", "CLT": "Chile Standard Time", "MYT": "Malaysia Time", "CST": "Central Standard Time", "TMST": "Turkmenistan Summer Time", "OEZ": "Eastern European Standard Time", "MST": "Macau Standard Time", "PDT": "Pacific Daylight Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "HECU": "Cuba Daylight Time", "AST": "Atlantic Standard Time", "AKDT": "Alaska Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZDT": "New Zealand Daylight Time", "ACST": "Australian Central Standard Time", "WARST": "Western Argentina Summer Time", "UYT": "Uruguay Standard Time", "WIT": "Eastern Indonesia Time", "HEOG": "West Greenland Summer Time", "CHADT": "Chatham Daylight Time", "HNEG": "East Greenland Standard Time", "ECT": "Ecuador Time", "∅∅∅": "Azores Summer Time", "ADT": "Atlantic Daylight Time", "ACWST": "Australian Central Western Standard Time", "CHAST": "Chatham Standard Time", "HEEG": "East Greenland Summer Time", "COT": "Colombia Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "JST": "Japan Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CDT": "Central Daylight Time", "WIB": "Western Indonesia Time", "WEZ": "Western European Standard Time", "MEZ": "Central European Standard Time", "NZST": "New Zealand Standard Time", "CLST": "Chile Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HNCU": "Cuba Standard Time", "AKST": "Alaska Standard Time", "HNOG": "West Greenland Standard Time", "AEST": "Australian Eastern Standard Time", "MESZ": "Central European Summer Time", "WART": "Western Argentina Standard Time", "EDT": "Eastern Daylight Time", "MDT": "Macau Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "PST": "Pacific Standard Time", "AEDT": "Australian Eastern Daylight Time", "GFT": "French Guiana Time", "EAT": "East Africa Time", "EST": "Eastern Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AWST": "Australian Western Standard Time", "HKST": "Hong Kong Summer Time", "LHDT": "Lord Howe Daylight Time", "TMT": "Turkmenistan Standard Time", "CAT": "Central Africa Time", "HADT": "Hawaii-Aleutian Daylight Time"},
++ locale: "en_LR",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "$", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"IST": "IST", "SGT": "SGT", "HADT": "HADT", "HENOMX": "HENOMX", "MYT": "MYT", "HNPM": "HNPM", "AEDT": "AEDT", "VET": "VET", "WITA": "WITA", "ACDT": "ACDT", "COST": "COST", "CDT": "CDT", "NZDT": "NZDT", "ChST": "ChST", "UYT": "UYT", "WESZ": "WESZ", "HNT": "HNT", "WART": "WART", "JST": "JST", "CAT": "CAT", "HAST": "HAST", "MESZ": "MESZ", "WAST": "WAST", "HAT": "HAT", "SAST": "SAST", "TMST": "TMST", "ART": "ART", "WIT": "WIT", "COT": "COT", "HEOG": "HEOG", "CLST": "CLST", "GMT": "GMT", "HNEG": "HNEG", "AWST": "AWST", "CHADT": "CHADT", "OESZ": "OESZ", "WARST": "WARST", "CST": "CST", "HEPM": "HEPM", "GYT": "GYT", "CLT": "CLT", "ACST": "ACST", "HNNOMX": "HNNOMX", "LHST": "LHST", "∅∅∅": "∅∅∅", "HECU": "HECU", "HEPMX": "HEPMX", "AST": "AST", "HKST": "HKST", "HEEG": "HEEG", "JDT": "JDT", "UYST": "UYST", "AEST": "AEST", "AKST": "AKST", "HKT": "HKT", "ARST": "ARST", "MEZ": "MEZ", "OEZ": "OEZ", "HNOG": "HNOG", "EST": "EST", "MST": "MST", "BT": "BT", "NZST": "NZST", "LHDT": "LHDT", "WAT": "WAT", "TMT": "TMT", "EAT": "EAT", "HNCU": "HNCU", "AKDT": "AKDT", "WIB": "WIB", "BOT": "BOT", "MDT": "MDT", "ECT": "ECT", "EDT": "EDT", "SRT": "SRT", "AWDT": "AWDT", "PST": "PST", "ACWST": "ACWST", "HNPMX": "HNPMX", "GFT": "GFT", "ADT": "ADT", "CHAST": "CHAST", "PDT": "PDT", "ACWDT": "ACWDT", "WEZ": "WEZ"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_LR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_LR) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_LR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_LR) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_LR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_LR) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_LR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_LR' and handles both Whole and Real numbers based on 'v'
+ func (en *en_LR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_LR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_LR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_LR'
+@@ -278,56 +195,7 @@ func (en *en_LR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_LR'
+@@ -336,84 +204,33 @@ func (en *en_LR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_LR'
++func (en *en_LR) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_LR'
+-func (en *en_LR) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_LR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_LR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_LR) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_LR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_LR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_LR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_LR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_LS/en_LS.go b/en_LS/en_LS.go
+index 946e2d9..72d8e6f 100644
+--- a/en_LS/en_LS.go
++++ b/en_LS/en_LS.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_LS struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_LS' locale
+ func New() locales.Translator {
+ return &en_LS{
+- locale: "en_LS",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "R", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HENOMX": "Northwest Mexico Daylight Time", "JST": "Japan Standard Time", "HNPMX": "Mexican Pacific Standard Time", "UYT": "Uruguay Standard Time", "TMST": "Turkmenistan Summer Time", "HEEG": "East Greenland Summer Time", "∅∅∅": "Peru Summer Time", "PST": "Pacific Standard Time", "WEZ": "Western European Standard Time", "COST": "Colombia Summer Time", "VET": "Venezuela Time", "MESZ": "Central European Summer Time", "UYST": "Uruguay Summer Time", "JDT": "Japan Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "PDT": "Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "EAT": "East Africa Time", "WARST": "Western Argentina Summer Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "WITA": "Central Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZST": "New Zealand Standard Time", "CAT": "Central Africa Time", "HEPMX": "Mexican Pacific Daylight Time", "ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "CHADT": "Chatham Daylight Time", "NZDT": "New Zealand Daylight Time", "SAST": "South Africa Standard Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "HEOG": "West Greenland Summer Time", "ACWDT": "Australian Central Western Daylight Time", "HNEG": "East Greenland Standard Time", "TMT": "Turkmenistan Standard Time", "CDT": "Central Daylight Time", "GYT": "Guyana Time", "WIB": "Western Indonesia Time", "HNT": "Newfoundland Standard Time", "ART": "Argentina Standard Time", "WESZ": "Western European Summer Time", "AEST": "Australian Eastern Standard Time", "ChST": "Chamorro Standard Time", "ACST": "Australian Central Standard Time", "WAST": "West Africa Summer Time", "EDT": "Eastern Daylight Time", "MST": "Macau Standard Time", "HAT": "Newfoundland Daylight Time", "AWST": "Australian Western Standard Time", "CHAST": "Chatham Standard Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "BT": "Bhutan Time", "ACWST": "Australian Central Western Standard Time", "AEDT": "Australian Eastern Daylight Time", "LHDT": "Lord Howe Daylight Time", "ACDT": "Australian Central Daylight Time", "OESZ": "Eastern European Summer Time", "WAT": "West Africa Standard Time", "WART": "Western Argentina Standard Time", "ADT": "Atlantic Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "SGT": "Singapore Standard Time", "EST": "Eastern Standard Time", "AST": "Atlantic Standard Time", "MYT": "Malaysia Time", "SRT": "Suriname Time", "MEZ": "Central European Standard Time", "IST": "India Standard Time", "GFT": "French Guiana Time", "MDT": "Macau Summer Time", "CST": "Central Standard Time", "WIT": "Eastern Indonesia Time", "HNOG": "West Greenland Standard Time", "AWDT": "Australian Western Daylight Time", "HKST": "Hong Kong Summer Time", "BOT": "Bolivia Time"},
++ locale: "en_LS",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "R", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ChST": "ChST", "HAST": "HAST", "LHST": "LHST", "AEST": "AEST", "HNOG": "HNOG", "WITA": "WITA", "ARST": "ARST", "GMT": "GMT", "WIB": "WIB", "ACDT": "ACDT", "HEPM": "HEPM", "AWDT": "AWDT", "CHADT": "CHADT", "SGT": "SGT", "SAST": "SAST", "HKT": "HKT", "HENOMX": "HENOMX", "AKST": "AKST", "WARST": "WARST", "ADT": "ADT", "MESZ": "MESZ", "HNPM": "HNPM", "CHAST": "CHAST", "HECU": "HECU", "SRT": "SRT", "HNNOMX": "HNNOMX", "ACWST": "ACWST", "GYT": "GYT", "ECT": "ECT", "BOT": "BOT", "AWST": "AWST", "TMST": "TMST", "CDT": "CDT", "HADT": "HADT", "IST": "IST", "PST": "PST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "WESZ": "WESZ", "COST": "COST", "AST": "AST", "MDT": "MDT", "JDT": "JDT", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "WEZ": "WEZ", "AKDT": "AKDT", "HNT": "HNT", "UYT": "UYT", "OEZ": "OEZ", "WART": "WART", "CST": "CST", "NZST": "NZST", "HNEG": "HNEG", "LHDT": "LHDT", "ACWDT": "ACWDT", "BT": "BT", "WIT": "WIT", "COT": "COT", "CLT": "CLT", "OESZ": "OESZ", "ART": "ART", "PDT": "PDT", "HNCU": "HNCU", "GFT": "GFT", "CAT": "CAT", "CLST": "CLST", "MST": "MST", "EAT": "EAT", "WAST": "WAST", "HKST": "HKST", "TMT": "TMT", "NZDT": "NZDT", "ACST": "ACST", "HEEG": "HEEG", "EST": "EST", "EDT": "EDT", "HEOG": "HEOG", "MEZ": "MEZ", "JST": "JST", "MYT": "MYT", "UYST": "UYST", "VET": "VET", "WAT": "WAT", "HAT": "HAT"},
+ }
+ }
+ 
+@@ -112,8 +89,8 @@ func (en *en_LS) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_LS) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
++ nMod10 := math.Mod(n, 10)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +115,7 @@ func (en *en_LS) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_LS) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_LS) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_LS) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_LS) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_LS) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_LS) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_LS' and handles both Whole and Real numbers based on 'v'
+ func (en *en_LS) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_LS' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_LS) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_LS'
+@@ -278,56 +195,7 @@ func (en *en_LS) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_LS'
+@@ -336,84 +204,33 @@ func (en *en_LS) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_LS'
++func (en *en_LS) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_LS'
+-func (en *en_LS) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_LS) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_LS) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_LS) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_LS) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_LS) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_LS) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_LS) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_MG/en_MG.go b/en_MG/en_MG.go
+index 3043095..b74f894 100644
+--- a/en_MG/en_MG.go
++++ b/en_MG/en_MG.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_MG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_MG' locale
+ func New() locales.Translator {
+ return &en_MG{
+- locale: "en_MG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "Ar", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"SGT": "Singapore Standard Time", "UYT": "Uruguay Standard Time", "BT": "Bhutan Time", "HEEG": "East Greenland Summer Time", "OESZ": "Eastern European Summer Time", "ADT": "Atlantic Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "EST": "Eastern Standard Time", "ART": "Argentina Standard Time", "HEOG": "West Greenland Summer Time", "HKT": "Hong Kong Standard Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "HECU": "Cuba Daylight Time", "MDT": "Macau Summer Time", "AWDT": "Australian Western Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time", "ACWST": "Australian Central Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "∅∅∅": "Peru Summer Time", "HNCU": "Cuba Standard Time", "HNPMX": "Mexican Pacific Standard Time", "LHST": "Lord Howe Standard Time", "CHAST": "Chatham Standard Time", "GFT": "French Guiana Time", "NZDT": "New Zealand Daylight Time", "AST": "Atlantic Standard Time", "UYST": "Uruguay Summer Time", "WIB": "Western Indonesia Time", "SRT": "Suriname Time", "HKST": "Hong Kong Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MEZ": "Central European Standard Time", "ACST": "Australian Central Standard Time", "GMT": "Greenwich Mean Time", "PDT": "Pacific Daylight Time", "CHADT": "Chatham Daylight Time", "IST": "India Standard Time", "JDT": "Japan Daylight Time", "HNEG": "East Greenland Standard Time", "CAT": "Central Africa Time", "WART": "Western Argentina Standard Time", "COST": "Colombia Summer Time", "MYT": "Malaysia Time", "HADT": "Hawaii-Aleutian Daylight Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "CDT": "Central Daylight Time", "PST": "Pacific Standard Time", "WEZ": "Western European Standard Time", "SAST": "South Africa Standard Time", "JST": "Japan Standard Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "OEZ": "Eastern European Standard Time", "EDT": "Eastern Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "AKST": "Alaska Standard Time", "BOT": "Bolivia Time", "WITA": "Central Indonesia Time", "WARST": "Western Argentina Summer Time", "GYT": "Guyana Time", "VET": "Venezuela Time", "ARST": "Argentina Summer Time", "HNOG": "West Greenland Standard Time", "HNT": "Newfoundland Standard Time", "AEST": "Australian Eastern Standard Time", "LHDT": "Lord Howe Daylight Time", "EAT": "East Africa Time", "WAST": "West Africa Summer Time", "MST": "Macau Standard Time", "AKDT": "Alaska Daylight Time", "AEDT": "Australian Eastern Daylight Time", "ChST": "Chamorro Standard Time", "ACDT": "Australian Central Daylight Time", "AWST": "Australian Western Standard Time", "NZST": "New Zealand Standard Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "CST": "Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HAT": "Newfoundland Daylight Time", "MESZ": "Central European Summer Time"},
++ locale: "en_MG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "Ar", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SRT": "SRT", "HAST": "HAST", "MEZ": "MEZ", "MESZ": "MESZ", "HEEG": "HEEG", "JDT": "JDT", "OEZ": "OEZ", "SAST": "SAST", "ARST": "ARST", "EAT": "EAT", "HNEG": "HNEG", "CHAST": "CHAST", "WAT": "WAT", "ACDT": "ACDT", "LHST": "LHST", "MYT": "MYT", "ACWST": "ACWST", "WESZ": "WESZ", "VET": "VET", "TMT": "TMT", "MDT": "MDT", "WIB": "WIB", "GMT": "GMT", "IST": "IST", "UYST": "UYST", "HKST": "HKST", "ART": "ART", "PDT": "PDT", "WEZ": "WEZ", "HNCU": "HNCU", "CLT": "CLT", "BOT": "BOT", "HADT": "HADT", "HEPM": "HEPM", "HECU": "HECU", "HEPMX": "HEPMX", "TMST": "TMST", "MST": "MST", "ACWDT": "ACWDT", "SGT": "SGT", "AKST": "AKST", "HAT": "HAT", "EDT": "EDT", "AWDT": "AWDT", "CAT": "CAT", "ChST": "ChST", "ACST": "ACST", "HNT": "HNT", "HEOG": "HEOG", "HKT": "HKT", "HENOMX": "HENOMX", "LHDT": "LHDT", "BT": "BT", "WIT": "WIT", "∅∅∅": "∅∅∅", "NZDT": "NZDT", "AWST": "AWST", "AEDT": "AEDT", "UYT": "UYT", "HNPMX": "HNPMX", "WART": "WART", "HNOG": "HNOG", "AKDT": "AKDT", "GYT": "GYT", "COT": "COT", "EST": "EST", "CLST": "CLST", "WITA": "WITA", "AST": "AST", "PST": "PST", "GFT": "GFT", "COST": "COST", "NZST": "NZST", "ADT": "ADT", "HNNOMX": "HNNOMX", "JST": "JST", "AEST": "AEST", "CHADT": "CHADT", "WAST": "WAST", "OESZ": "OESZ", "CST": "CST", "CDT": "CDT", "ECT": "ECT", "HNPM": "HNPM", "WARST": "WARST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_MG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_MG) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_MG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_MG) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_MG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_MG) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_MG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_MG' and handles both Whole and Real numbers based on 'v'
+ func (en *en_MG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_MG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_MG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_MG'
+@@ -278,56 +195,7 @@ func (en *en_MG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_MG'
+@@ -336,84 +204,33 @@ func (en *en_MG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_MG'
++func (en *en_MG) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_MG'
+-func (en *en_MG) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_MG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_MG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_MG) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_MH/en_MH.go b/en_MH/en_MH.go
+index 060969d..1c0015a 100644
+--- a/en_MH/en_MH.go
++++ b/en_MH/en_MH.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_MH struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_MH' locale
+ func New() locales.Translator {
+ return &en_MH{
+- locale: "en_MH",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "WAT": "West Africa Standard Time", "OEZ": "Eastern European Standard Time", "COST": "Colombia Summer Time", "BOT": "Bolivia Time", "HENOMX": "Northwest Mexico Daylight Time", "CHADT": "Chatham Daylight Time", "ECT": "Ecuador Time", "WART": "Western Argentina Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "BT": "Bhutan Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "MEZ": "Central European Standard Time", "CLST": "Chile Summer Time", "NZDT": "New Zealand Daylight Time", "HNCU": "Cuba Standard Time", "UYST": "Uruguay Summer Time", "AWDT": "Australian Western Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "ACDT": "Australian Central Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "ART": "Argentina Standard Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "JDT": "Japan Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "COT": "Colombia Standard Time", "GMT": "Greenwich Mean Time", "GYT": "Guyana Time", "VET": "Venezuela Time", "WIT": "Eastern Indonesia Time", "HAT": "Newfoundland Daylight Time", "TMST": "Turkmenistan Summer Time", "OESZ": "Eastern European Summer Time", "EDT": "Eastern Daylight Time", "AST": "Atlantic Standard Time", "MYT": "Malaysia Time", "HNT": "Newfoundland Standard Time", "ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "JST": "Japan Standard Time", "HNEG": "East Greenland Standard Time", "WAST": "West Africa Summer Time", "UYT": "Uruguay Standard Time", "AKST": "Alaska Standard Time", "WESZ": "Western European Summer Time", "NZST": "New Zealand Standard Time", "CHAST": "Chatham Standard Time", "AEDT": "Australian Eastern Daylight Time", "∅∅∅": "Amazon Summer Time", "TMT": "Turkmenistan Standard Time", "CAT": "Central Africa Time", "WARST": "Western Argentina Summer Time", "ADT": "Atlantic Daylight Time", "WITA": "Central Indonesia Time", "HEEG": "East Greenland Summer Time", "HECU": "Cuba Daylight Time", "AWST": "Australian Western Standard Time", "CLT": "Chile Standard Time", "EAT": "East Africa Time", "EST": "Eastern Standard Time", "SAST": "South Africa Standard Time", "ChST": "Chamorro Standard Time", "ACST": "Australian Central Standard Time", "MDT": "Mountain Daylight Time", "SRT": "Suriname Time", "PST": "Pacific Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AEST": "Australian Eastern Standard Time", "MESZ": "Central European Summer Time", "IST": "India Standard Time", "GFT": "French Guiana Time", "AKDT": "Alaska Daylight Time", "MST": "Mountain Standard Time", "WIB": "Western Indonesia Time", "ACWST": "Australian Central Western Standard Time", "HKST": "Hong Kong Summer Time", "SGT": "Singapore Standard Time"},
++ locale: "en_MH",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GFT": "GFT", "WIT": "WIT", "SAST": "SAST", "BOT": "BOT", "HENOMX": "HENOMX", "WAST": "WAST", "MESZ": "MESZ", "ACWST": "ACWST", "HNCU": "HNCU", "∅∅∅": "∅∅∅", "GMT": "GMT", "ChST": "ChST", "JST": "JST", "GYT": "GYT", "COT": "COT", "TMT": "TMT", "ARST": "ARST", "PST": "PST", "SGT": "SGT", "WAT": "WAT", "HAT": "HAT", "CLT": "CLT", "HAST": "HAST", "HEEG": "HEEG", "HEPMX": "HEPMX", "OESZ": "OESZ", "COST": "COST", "HNEG": "HNEG", "CHAST": "CHAST", "CAT": "CAT", "CDT": "CDT", "MST": "MST", "ACST": "ACST", "AEDT": "AEDT", "HNPMX": "HNPMX", "UYST": "UYST", "PDT": "PDT", "CLST": "CLST", "WIB": "WIB", "NZST": "NZST", "ECT": "ECT", "HNNOMX": "HNNOMX", "UYT": "UYT", "WESZ": "WESZ", "VET": "VET", "WEZ": "WEZ", "WART": "WART", "AST": "AST", "LHST": "LHST", "AEST": "AEST", "CHADT": "CHADT", "IST": "IST", "HNPM": "HNPM", "AKDT": "AKDT", "EST": "EST", "HKT": "HKT", "TMST": "TMST", "MDT": "MDT", "LHDT": "LHDT", "AWST": "AWST", "BT": "BT", "AKST": "AKST", "HNOG": "HNOG", "HEOG": "HEOG", "NZDT": "NZDT", "ART": "ART", "ACDT": "ACDT", "EDT": "EDT", "MEZ": "MEZ", "JDT": "JDT", "HEPM": "HEPM", "OEZ": "OEZ", "WARST": "WARST", "ADT": "ADT", "HADT": "HADT", "HKST": "HKST", "WITA": "WITA", "CST": "CST", "EAT": "EAT", "AWDT": "AWDT", "MYT": "MYT", "SRT": "SRT", "ACWDT": "ACWDT", "HNT": "HNT", "HECU": "HECU"},
+ }
+ }
+ 
+@@ -112,8 +89,8 @@ func (en *en_MH) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_MH) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
++ nMod10 := math.Mod(n, 10)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +115,7 @@ func (en *en_MH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_MH) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_MH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_MH) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_MH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_MH) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_MH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_MH' and handles both Whole and Real numbers based on 'v'
+ func (en *en_MH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_MH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_MH) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_MH'
+@@ -278,56 +195,7 @@ func (en *en_MH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_MH'
+@@ -336,68 +204,7 @@ func (en *en_MH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_MH'
+@@ -405,15 +212,15 @@ func (en *en_MH) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x2f}...)
++ b = strconv.AppendInt(b, int64(t.Month()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +231,14 @@ func (en *en_MH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
++ b = append(b, []byte{0x20}...)
++ b = append(b, en.monthsAbbreviated[t.Month()]...)
++ b = append(b, []byte{0x2c}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +254,14 @@ func (en *en_MH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +279,15 @@ func (en *en_MH) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,13 +303,11 @@ func (en *en_MH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -497,13 +315,6 @@ func (en *en_MH) FmtTimeShort(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -513,13 +324,11 @@ func (en *en_MH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -534,13 +343,6 @@ func (en *en_MH) FmtTimeMedium(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -550,13 +352,11 @@ func (en *en_MH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -573,14 +373,6 @@ func (en *en_MH) FmtTimeLong(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ b = append(b, tz...)
+ 
+@@ -592,13 +384,11 @@ func (en *en_MH) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -615,14 +405,6 @@ func (en *en_MH) FmtTimeFull(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ 
+ if btz, ok := en.timezones[tz]; ok {
+diff --git a/en_MO/en_MO.go b/en_MO/en_MO.go
+index a17dfb9..1ae097e 100644
+--- a/en_MO/en_MO.go
++++ b/en_MO/en_MO.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_MO struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_MO' locale
+ func New() locales.Translator {
+ return &en_MO{
+- locale: "en_MO",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP$", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"WITA": "Central Indonesia Time", "HNEG": "East Greenland Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CLST": "Chile Summer Time", "ACDT": "Australian Central Daylight Time", "CHAST": "Chatham Standard Time", "JDT": "Japan Daylight Time", "MDT": "Macau Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "GFT": "French Guiana Time", "OESZ": "Eastern European Summer Time", "COT": "Colombia Standard Time", "HNCU": "Cuba Standard Time", "UYT": "Uruguay Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "LHDT": "Lord Howe Daylight Time", "NZST": "New Zealand Standard Time", "ChST": "Chamorro Standard Time", "EDT": "Eastern Daylight Time", "ACST": "Australian Central Standard Time", "WART": "Western Argentina Standard Time", "EST": "Eastern Standard Time", "AKDT": "Alaska Daylight Time", "HNT": "Newfoundland Standard Time", "JST": "Japan Standard Time", "OEZ": "Eastern European Standard Time", "MST": "Macau Standard Time", "UYST": "Uruguay Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "SRT": "Suriname Time", "HEOG": "West Greenland Summer Time", "CDT": "Central Daylight Time", "WESZ": "Western European Summer Time", "AEDT": "Australian Eastern Daylight Time", "AWST": "Australian Western Standard Time", "MESZ": "Central European Summer Time", "IST": "India Standard Time", "WAST": "West Africa Summer Time", "SGT": "Singapore Standard Time", "HNOG": "West Greenland Standard Time", "AKST": "Alaska Standard Time", "PST": "Pacific Standard Time", "MEZ": "Central European Standard Time", "TMST": "Turkmenistan Summer Time", "CST": "Central Standard Time", "NZDT": "New Zealand Daylight Time", "TMT": "Turkmenistan Standard Time", "COST": "Colombia Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "MYT": "Malaysia Time", "HAST": "Hawaii-Aleutian Standard Time", "AWDT": "Australian Western Daylight Time", "∅∅∅": "Amazon Summer Time", "HEEG": "East Greenland Summer Time", "HECU": "Cuba Daylight Time", "ADT": "Atlantic Daylight Time", "HAT": "Newfoundland Daylight Time", "ARST": "Argentina Summer Time", "AEST": "Australian Eastern Standard Time", "HKST": "Hong Kong Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "BOT": "Bolivia Time", "WIB": "Western Indonesia Time", "WARST": "Western Argentina Summer Time", "WAT": "West Africa Standard Time", "VET": "Venezuela Time", "BT": "Bhutan Time", "ACWST": "Australian Central Western Standard Time", "GMT": "Greenwich Mean Time", "GYT": "Guyana Time", "WEZ": "Western European Standard Time", "ACWDT": "Australian Central Western Daylight Time", "CHADT": "Chatham Daylight Time", "WIT": "Eastern Indonesia Time", "ART": "Argentina Standard Time", "PDT": "Pacific Daylight Time", "HKT": "Hong Kong Standard Time", "CLT": "Chile Standard Time", "ECT": "Ecuador Time", "CAT": "Central Africa Time", "EAT": "East Africa Time", "AST": "Atlantic Standard Time"},
++ locale: "en_MO",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP$", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsWide: []string{"am", "pm"},
++ timezones: map[string]string{"CDT": "CDT", "ECT": "ECT", "ADT": "ADT", "AWST": "AWST", "VET": "VET", "WAST": "WAST", "EDT": "EDT", "TMST": "TMST", "AKDT": "AKDT", "BOT": "BOT", "ACST": "ACST", "JDT": "JDT", "CHADT": "CHADT", "PST": "PST", "WAT": "WAT", "HEOG": "HEOG", "WIB": "WIB", "NZDT": "NZDT", "HEEG": "HEEG", "ACWDT": "ACWDT", "WESZ": "WESZ", "AKST": "AKST", "WARST": "WARST", "CST": "CST", "GMT": "GMT", "MEZ": "MEZ", "AWDT": "AWDT", "UYT": "UYT", "SAST": "SAST", "COST": "COST", "EAT": "EAT", "HNEG": "HNEG", "AEDT": "AEDT", "WIT": "WIT", "CLT": "CLT", "CAT": "CAT", "SGT": "SGT", "COT": "COT", "HKT": "HKT", "NZST": "NZST", "ARST": "ARST", "SRT": "SRT", "MESZ": "MESZ", "ACDT": "ACDT", "MST": "MST", "MDT": "MDT", "AST": "AST", "ChST": "ChST", "JST": "JST", "WART": "WART", "CLST": "CLST", "TMT": "TMT", "WITA": "WITA", "HADT": "HADT", "LHST": "LHST", "LHDT": "LHDT", "UYST": "UYST", "GFT": "GFT", "HAT": "HAT", "MYT": "MYT", "CHAST": "CHAST", "HAST": "HAST", "HENOMX": "HENOMX", "ACWST": "ACWST", "HNPMX": "HNPMX", "HNPM": "HNPM", "IST": "IST", "PDT": "PDT", "BT": "BT", "AEST": "AEST", "HECU": "HECU", "OEZ": "OEZ", "HKST": "HKST", "HNT": "HNT", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "ART": "ART", "HEPM": "HEPM", "HNOG": "HNOG", "EST": "EST", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "HEPMX": "HEPMX", "OESZ": "OESZ", "GYT": "GYT"},
+ }
+ }
+ 
+@@ -138,7 +117,7 @@ func (en *en_MO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_MO) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_MO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_MO) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_MO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_MO) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +183,13 @@ func (en *en_MO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_MO' and handles both Whole and Real numbers based on 'v'
+ func (en *en_MO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_MO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_MO) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_MO'
+@@ -278,56 +197,7 @@ func (en *en_MO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_MO'
+@@ -336,68 +206,7 @@ func (en *en_MO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_MO'
+@@ -405,17 +214,6 @@ func (en *en_MO) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +222,6 @@ func (en *en_MO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +230,6 @@ func (en *en_MO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,19 +238,6 @@ func (en *en_MO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -483,13 +246,11 @@ func (en *en_MO) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -497,13 +258,6 @@ func (en *en_MO) FmtTimeShort(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -513,13 +267,11 @@ func (en *en_MO) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -534,13 +286,6 @@ func (en *en_MO) FmtTimeMedium(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -550,13 +295,11 @@ func (en *en_MO) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -573,14 +316,6 @@ func (en *en_MO) FmtTimeLong(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ b = append(b, tz...)
+ 
+@@ -592,13 +327,11 @@ func (en *en_MO) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -615,14 +348,6 @@ func (en *en_MO) FmtTimeFull(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ 
+ if btz, ok := en.timezones[tz]; ok {
+diff --git a/en_MP/en_MP.go b/en_MP/en_MP.go
+index 2a538fb..c2b8105 100644
+--- a/en_MP/en_MP.go
++++ b/en_MP/en_MP.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_MP struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_MP' locale
+ func New() locales.Translator {
+ return &en_MP{
+- locale: "en_MP",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HEPM": "St. Pierre & Miquelon Daylight Time", "SRT": "Suriname Time", "ACWST": "Australian Central Western Standard Time", "LHDT": "Lord Howe Daylight Time", "WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time", "COT": "Colombia Standard Time", "HNPMX": "Mexican Pacific Standard Time", "WIB": "Western Indonesia Time", "AEDT": "Australian Eastern Daylight Time", "ChST": "Chamorro Standard Time", "ART": "Argentina Standard Time", "WEZ": "Western European Standard Time", "JDT": "Japan Daylight Time", "BOT": "Bolivia Time", "HEEG": "East Greenland Summer Time", "OEZ": "Eastern European Standard Time", "EST": "Eastern Standard Time", "UYT": "Uruguay Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "VET": "Venezuela Time", "HNPM": "St. Pierre & Miquelon Standard Time", "JST": "Japan Standard Time", "WAST": "West Africa Summer Time", "GMT": "Greenwich Mean Time", "GYT": "Guyana Time", "UYST": "Uruguay Summer Time", "CAT": "Central Africa Time", "CLST": "Chile Summer Time", "ECT": "Ecuador Time", "CDT": "Central Daylight Time", "PST": "Pacific Standard Time", "MESZ": "Central European Summer Time", "GFT": "French Guiana Time", "ACDT": "Australian Central Daylight Time", "WART": "Western Argentina Standard Time", "COST": "Colombia Summer Time", "MST": "Macau Standard Time", "PDT": "Pacific Daylight Time", "AWDT": "Australian Western Daylight Time", "HKT": "Hong Kong Standard Time", "NZDT": "New Zealand Daylight Time", "EAT": "East Africa Time", "EDT": "Eastern Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "WAT": "West Africa Standard Time", "WARST": "Western Argentina Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "HECU": "Cuba Daylight Time", "AST": "Atlantic Standard Time", "ADT": "Atlantic Daylight Time", "LHST": "Lord Howe Standard Time", "ACST": "Australian Central Standard Time", "OESZ": "Eastern European Summer Time", "AKST": "Alaska Standard Time", "CST": "Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "MEZ": "Central European Standard Time", "CLT": "Chile Standard Time", "TMT": "Turkmenistan Standard Time", "MDT": "Macau Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "AKDT": "Alaska Daylight Time", "ARST": "Argentina Summer Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "HKST": "Hong Kong Summer Time", "NZST": "New Zealand Standard Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "IST": "India Standard Time", "∅∅∅": "Amazon Summer Time", "BT": "Bhutan Time", "AWST": "Australian Western Standard Time", "WITA": "Central Indonesia Time", "CHAST": "Chatham Standard Time", "TMST": "Turkmenistan Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HNEG": "East Greenland Standard Time", "HNCU": "Cuba Standard Time", "MYT": "Malaysia Time", "AEST": "Australian Eastern Standard Time"},
++ locale: "en_MP",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"VET": "VET", "HNCU": "HNCU", "WAT": "WAT", "ARST": "ARST", "AWST": "AWST", "WEZ": "WEZ", "COST": "COST", "NZDT": "NZDT", "ChST": "ChST", "ART": "ART", "EAT": "EAT", "ACWST": "ACWST", "OESZ": "OESZ", "TMST": "TMST", "WITA": "WITA", "GMT": "GMT", "BT": "BT", "WARST": "WARST", "GYT": "GYT", "CLST": "CLST", "MDT": "MDT", "CHADT": "CHADT", "OEZ": "OEZ", "COT": "COT", "HKT": "HKT", "WIB": "WIB", "HAST": "HAST", "MYT": "MYT", "AEDT": "AEDT", "GFT": "GFT", "HNT": "HNT", "TMT": "TMT", "MEZ": "MEZ", "ACST": "ACST", "IST": "IST", "SGT": "SGT", "AKST": "AKST", "ADT": "ADT", "UYT": "UYT", "HECU": "HECU", "CAT": "CAT", "ACDT": "ACDT", "HADT": "HADT", "LHST": "LHST", "LHDT": "LHDT", "HNPM": "HNPM", "HKST": "HKST", "AST": "AST", "∅∅∅": "∅∅∅", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "WIT": "WIT", "BOT": "BOT", "PST": "PST", "EST": "EST", "NZST": "NZST", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "HEPM": "HEPM", "AEST": "AEST", "UYST": "UYST", "WESZ": "WESZ", "MESZ": "MESZ", "CHAST": "CHAST", "HAT": "HAT", "WART": "WART", "SAST": "SAST", "HEOG": "HEOG", "ECT": "ECT", "PDT": "PDT", "HENOMX": "HENOMX", "WAST": "WAST", "SRT": "SRT", "JST": "JST", "HNOG": "HNOG", "CLT": "CLT", "CST": "CST", "CDT": "CDT", "HEEG": "HEEG", "HNEG": "HNEG", "JDT": "JDT", "HEPMX": "HEPMX", "AKDT": "AKDT", "EDT": "EDT", "MST": "MST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_MP) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_MP) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_MP) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_MP) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_MP) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_MP) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_MP) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_MP' and handles both Whole and Real numbers based on 'v'
+ func (en *en_MP) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_MP' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_MP) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_MP'
+@@ -278,56 +195,7 @@ func (en *en_MP) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_MP'
+@@ -336,68 +204,7 @@ func (en *en_MP) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_MP'
+@@ -405,15 +212,15 @@ func (en *en_MP) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x2f}...)
++ b = strconv.AppendInt(b, int64(t.Month()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +231,14 @@ func (en *en_MP) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
++ b = append(b, []byte{0x20}...)
++ b = append(b, en.monthsAbbreviated[t.Month()]...)
++ b = append(b, []byte{0x2c}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +254,14 @@ func (en *en_MP) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +279,15 @@ func (en *en_MP) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,13 +303,11 @@ func (en *en_MP) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -497,13 +315,6 @@ func (en *en_MP) FmtTimeShort(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -513,13 +324,11 @@ func (en *en_MP) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -534,13 +343,6 @@ func (en *en_MP) FmtTimeMedium(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -550,13 +352,11 @@ func (en *en_MP) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -573,14 +373,6 @@ func (en *en_MP) FmtTimeLong(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ b = append(b, tz...)
+ 
+@@ -592,13 +384,11 @@ func (en *en_MP) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -615,14 +405,6 @@ func (en *en_MP) FmtTimeFull(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ 
+ if btz, ok := en.timezones[tz]; ok {
+diff --git a/en_MS/en_MS.go b/en_MS/en_MS.go
+index 3b49006..279a2dc 100644
+--- a/en_MS/en_MS.go
++++ b/en_MS/en_MS.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_MS struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_MS' locale
+ func New() locales.Translator {
+ return &en_MS{
+- locale: "en_MS",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "$", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"AEST": "Australian Eastern Standard Time", "CLST": "Chile Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "AKST": "Alaska Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "MESZ": "Central European Summer Time", "HNEG": "East Greenland Standard Time", "COST": "Colombia Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "BT": "Bhutan Time", "HAT": "Newfoundland Daylight Time", "HKT": "Hong Kong Standard Time", "WITA": "Central Indonesia Time", "ECT": "Ecuador Time", "WARST": "Western Argentina Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "PST": "Pacific Standard Time", "HEOG": "West Greenland Summer Time", "CAT": "Central Africa Time", "EST": "Eastern Standard Time", "CST": "Central Standard Time", "WIT": "Eastern Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SAST": "South Africa Standard Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "GMT": "Greenwich Mean Time", "CDT": "Central Daylight Time", "NZDT": "New Zealand Daylight Time", "JST": "Japan Standard Time", "EAT": "East Africa Time", "WAT": "West Africa Standard Time", "OESZ": "Eastern European Summer Time", "PDT": "Pacific Daylight Time", "HNT": "Newfoundland Standard Time", "AWST": "Australian Western Standard Time", "CHAST": "Chatham Standard Time", "JDT": "Japan Daylight Time", "AWDT": "Australian Western Daylight Time", "TMT": "Turkmenistan Standard Time", "ACDT": "Australian Central Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "AST": "Atlantic Standard Time", "ADT": "Atlantic Daylight Time", "GYT": "Guyana Time", "ACWST": "Australian Central Western Standard Time", "ARST": "Argentina Summer Time", "CLT": "Chile Standard Time", "SRT": "Suriname Time", "ART": "Argentina Standard Time", "ACST": "Australian Central Standard Time", "WAST": "West Africa Summer Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "WIB": "Western Indonesia Time", "MEZ": "Central European Standard Time", "IST": "India Standard Time", "SGT": "Singapore Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AEDT": "Australian Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "TMST": "Turkmenistan Summer Time", "OEZ": "Eastern European Standard Time", "UYST": "Uruguay Summer Time", "HNOG": "West Greenland Standard Time", "NZST": "New Zealand Standard Time", "∅∅∅": "Amazon Summer Time", "EDT": "Eastern Daylight Time", "AKDT": "Alaska Daylight Time", "MYT": "Malaysia Time", "WESZ": "Western European Summer Time", "CHADT": "Chatham Daylight Time", "BOT": "Bolivia Time", "VET": "Venezuela Time", "WEZ": "Western European Standard Time", "ChST": "Chamorro Standard Time", "WART": "Western Argentina Standard Time", "COT": "Colombia Standard Time", "UYT": "Uruguay Standard Time", "HKST": "Hong Kong Summer Time"},
++ locale: "en_MS",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "$", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GMT": "GMT", "EAT": "EAT", "LHST": "LHST", "ACWDT": "ACWDT", "CAT": "CAT", "HEOG": "HEOG", "LHDT": "LHDT", "AWDT": "AWDT", "CHADT": "CHADT", "WAST": "WAST", "IST": "IST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "PST": "PST", "UYST": "UYST", "HKST": "HKST", "HAST": "HAST", "HADT": "HADT", "JDT": "JDT", "ACWST": "ACWST", "HNCU": "HNCU", "AKST": "AKST", "MST": "MST", "ARST": "ARST", "AST": "AST", "CHAST": "CHAST", "HECU": "HECU", "MEZ": "MEZ", "MESZ": "MESZ", "EST": "EST", "WITA": "WITA", "MDT": "MDT", "ChST": "ChST", "BOT": "BOT", "SRT": "SRT", "BT": "BT", "AEDT": "AEDT", "WEZ": "WEZ", "COST": "COST", "SAST": "SAST", "ACST": "ACST", "HNPM": "HNPM", "AWST": "AWST", "UYT": "UYT", "VET": "VET", "WART": "WART", "WIT": "WIT", "HNT": "HNT", "CST": "CST", "HEPM": "HEPM", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "ADT": "ADT", "ACDT": "ACDT", "HNOG": "HNOG", "NZST": "NZST", "HEPMX": "HEPMX", "HKT": "HKT", "TMT": "TMT", "TMST": "TMST", "NZDT": "NZDT", "WIB": "WIB", "AEST": "AEST", "HNPMX": "HNPMX", "HNEG": "HNEG", "HAT": "HAT", "COT": "COT", "EDT": "EDT", "HEEG": "HEEG", "PDT": "PDT", "WAT": "WAT", "OESZ": "OESZ", "WARST": "WARST", "ECT": "ECT", "CDT": "CDT", "GFT": "GFT", "OEZ": "OEZ", "GYT": "GYT", "CLT": "CLT", "CLST": "CLST", "ART": "ART", "MYT": "MYT", "JST": "JST", "SGT": "SGT", "AKDT": "AKDT"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_MS) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_MS) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_MS) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_MS) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_MS) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_MS) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_MS) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_MS' and handles both Whole and Real numbers based on 'v'
+ func (en *en_MS) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_MS' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_MS) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_MS'
+@@ -278,56 +195,7 @@ func (en *en_MS) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_MS'
+@@ -336,84 +204,33 @@ func (en *en_MS) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_MS'
++func (en *en_MS) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_MS'
+-func (en *en_MS) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_MS) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_MS) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_MS) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_MT/en_MT.go b/en_MT/en_MT.go
+index c62a259..770456f 100644
+--- a/en_MT/en_MT.go
++++ b/en_MT/en_MT.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_MT struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_MT' locale
+ func New() locales.Translator {
+ return &en_MT{
+- locale: "en_MT",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GB£", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"WEZ": "Western European Standard Time", "SAST": "South Africa Standard Time", "TMST": "Turkmenistan Summer Time", "CAT": "Central Africa Time", "PST": "Pacific Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "IST": "India Standard Time", "GFT": "French Guiana Time", "CDT": "Central Daylight Time", "WIB": "Western Indonesia Time", "HKST": "Hong Kong Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "BT": "Bhutan Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "MEZ": "Central European Standard Time", "CLST": "Chile Summer Time", "JST": "Japan Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "AEDT": "Australian Eastern Daylight Time", "WAT": "West Africa Standard Time", "OESZ": "Eastern European Summer Time", "ACWST": "Australian Central Western Standard Time", "LHDT": "Lord Howe Daylight Time", "NZST": "New Zealand Standard Time", "CHADT": "Chatham Daylight Time", "HNEG": "East Greenland Standard Time", "HEEG": "East Greenland Summer Time", "UYT": "Uruguay Standard Time", "MESZ": "Central European Summer Time", "BOT": "Bolivia Time", "WARST": "Western Argentina Summer Time", "HNCU": "Cuba Standard Time", "MST": "Macau Standard Time", "AST": "Atlantic Standard Time", "ADT": "Atlantic Daylight Time", "ChST": "Chamorro Standard Time", "SRT": "Suriname Time", "WESZ": "Western European Summer Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "CST": "Central Standard Time", "GYT": "Guyana Time", "UYST": "Uruguay Summer Time", "VET": "Venezuela Time", "AEST": "Australian Eastern Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "CLT": "Chile Standard Time", "ACST": "Australian Central Standard Time", "HECU": "Cuba Daylight Time", "EST": "Eastern Standard Time", "HNT": "Newfoundland Standard Time", "COST": "Colombia Summer Time", "MYT": "Malaysia Time", "WIT": "Eastern Indonesia Time", "EAT": "East Africa Time", "ACDT": "Australian Central Daylight Time", "HKT": "Hong Kong Standard Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HAT": "Newfoundland Daylight Time", "∅∅∅": "Amazon Summer Time", "JDT": "Japan Daylight Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "MDT": "Macau Summer Time", "PDT": "Pacific Daylight Time", "ART": "Argentina Standard Time", "AWST": "Australian Western Standard Time", "WITA": "Central Indonesia Time", "CHAST": "Chatham Standard Time", "TMT": "Turkmenistan Standard Time", "WART": "Western Argentina Standard Time", "SGT": "Singapore Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "EDT": "Eastern Daylight Time", "ECT": "Ecuador Time", "NZDT": "New Zealand Daylight Time", "WAST": "West Africa Summer Time", "AKST": "Alaska Standard Time", "HAST": "Hawaii-Aleutian Standard Time"},
++ locale: "en_MT",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GB£", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsWide: []string{"am", "pm"},
++ timezones: map[string]string{"HAST": "HAST", "AWST": "AWST", "MYT": "MYT", "WIT": "WIT", "LHDT": "LHDT", "HEPM": "HEPM", "OESZ": "OESZ", "WESZ": "WESZ", "SAST": "SAST", "HKT": "HKT", "CAT": "CAT", "ChST": "ChST", "ACST": "ACST", "EST": "EST", "IST": "IST", "GFT": "GFT", "HEOG": "HEOG", "PDT": "PDT", "GYT": "GYT", "CLT": "CLT", "HNNOMX": "HNNOMX", "PST": "PST", "CHAST": "CHAST", "CHADT": "CHADT", "WEZ": "WEZ", "SGT": "SGT", "NZDT": "NZDT", "ARST": "ARST", "HNPM": "HNPM", "BOT": "BOT", "JST": "JST", "OEZ": "OEZ", "TMT": "TMT", "MST": "MST", "ART": "ART", "HNCU": "HNCU", "VET": "VET", "HNT": "HNT", "WART": "WART", "COT": "COT", "WIB": "WIB", "AST": "AST", "HNEG": "HNEG", "MEZ": "MEZ", "ACWST": "ACWST", "ACWDT": "ACWDT", "AEST": "AEST", "WAST": "WAST", "NZST": "NZST", "ECT": "ECT", "GMT": "GMT", "AKST": "AKST", "SRT": "SRT", "ACDT": "ACDT", "LHST": "LHST", "JDT": "JDT", "UYST": "UYST", "∅∅∅": "∅∅∅", "WITA": "WITA", "ADT": "ADT", "HAT": "HAT", "HEEG": "HEEG", "HENOMX": "HENOMX", "BT": "BT", "WAT": "WAT", "MDT": "MDT", "EAT": "EAT", "HADT": "HADT", "MESZ": "MESZ", "WARST": "WARST", "CLST": "CLST", "CST": "CST", "CDT": "CDT", "HNPMX": "HNPMX", "AKDT": "AKDT", "HNOG": "HNOG", "EDT": "EDT", "HKST": "HKST", "UYT": "UYT", "AEDT": "AEDT", "HECU": "HECU", "TMST": "TMST", "AWDT": "AWDT", "HEPMX": "HEPMX", "COST": "COST"},
+ }
+ }
+ 
+@@ -138,7 +117,7 @@ func (en *en_MT) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_MT) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_MT) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_MT) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_MT) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_MT) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +183,13 @@ func (en *en_MT) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_MT' and handles both Whole and Real numbers based on 'v'
+ func (en *en_MT) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_MT' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_MT) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_MT'
+@@ -278,56 +197,7 @@ func (en *en_MT) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_MT'
+@@ -336,68 +206,7 @@ func (en *en_MT) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_MT'
+@@ -405,17 +214,6 @@ func (en *en_MT) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -470,19 +268,6 @@ func (en *en_MT) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/en_MU/en_MU.go b/en_MU/en_MU.go
+index 02d4c89..71ca877 100644
+--- a/en_MU/en_MU.go
++++ b/en_MU/en_MU.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_MU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_MU' locale
+ func New() locales.Translator {
+ return &en_MU{
+- locale: "en_MU",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "Rs", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"∅∅∅": "Azores Summer Time", "LHST": "Lord Howe Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "EDT": "Eastern Daylight Time", "AKDT": "Alaska Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HEEG": "East Greenland Summer Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "HKT": "Hong Kong Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "JST": "Japan Standard Time", "OEZ": "Eastern European Standard Time", "HNEG": "East Greenland Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "CDT": "Central Daylight Time", "WIB": "Western Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "ARST": "Argentina Summer Time", "AEST": "Australian Eastern Standard Time", "IST": "India Standard Time", "AKST": "Alaska Standard Time", "CST": "Central Standard Time", "AST": "Atlantic Standard Time", "UYT": "Uruguay Standard Time", "PST": "Pacific Standard Time", "HAT": "Newfoundland Daylight Time", "LHDT": "Lord Howe Daylight Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "GMT": "Greenwich Mean Time", "AEDT": "Australian Eastern Daylight Time", "MEZ": "Central European Standard Time", "TMT": "Turkmenistan Standard Time", "EAT": "East Africa Time", "SRT": "Suriname Time", "CLST": "Chile Summer Time", "WART": "Western Argentina Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "VET": "Venezuela Time", "HKST": "Hong Kong Summer Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "WAT": "West Africa Standard Time", "HNCU": "Cuba Standard Time", "CHADT": "Chatham Daylight Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "BT": "Bhutan Time", "NZDT": "New Zealand Daylight Time", "SAST": "South Africa Standard Time", "JDT": "Japan Daylight Time", "EST": "Eastern Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "MYT": "Malaysia Time", "ACWST": "Australian Central Western Standard Time", "ART": "Argentina Standard Time", "NZST": "New Zealand Standard Time", "CHAST": "Chatham Standard Time", "ACDT": "Australian Central Daylight Time", "WAST": "West Africa Summer Time", "OESZ": "Eastern European Summer Time", "HECU": "Cuba Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "HNT": "Newfoundland Standard Time", "AWDT": "Australian Western Daylight Time", "ChST": "Chamorro Standard Time", "WIT": "Eastern Indonesia Time", "CLT": "Chile Standard Time", "ACST": "Australian Central Standard Time", "ADT": "Atlantic Daylight Time", "GYT": "Guyana Time", "AWST": "Australian Western Standard Time", "CAT": "Central Africa Time", "UYST": "Uruguay Summer Time", "ACWDT": "Australian Central Western Daylight Time", "WITA": "Central Indonesia Time", "ECT": "Ecuador Time", "SGT": "Singapore Standard Time", "WESZ": "Western European Summer Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "MESZ": "Central European Summer Time", "TMST": "Turkmenistan Summer Time"},
++ locale: "en_MU",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "Rs", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AKDT": "AKDT", "ECT": "ECT", "MEZ": "MEZ", "AWST": "AWST", "MYT": "MYT", "CLT": "CLT", "WARST": "WARST", "WIT": "WIT", "COST": "COST", "MST": "MST", "ChST": "ChST", "BOT": "BOT", "HADT": "HADT", "JST": "JST", "OEZ": "OEZ", "HKT": "HKT", "HNOG": "HNOG", "HNEG": "HNEG", "PDT": "PDT", "HEPMX": "HEPMX", "HNCU": "HNCU", "WITA": "WITA", "ACDT": "ACDT", "BT": "BT", "SGT": "SGT", "AKST": "AKST", "HAT": "HAT", "COT": "COT", "UYST": "UYST", "IST": "IST", "HNPMX": "HNPMX", "TMT": "TMT", "EAT": "EAT", "ACST": "ACST", "LHDT": "LHDT", "SAST": "SAST", "AEST": "AEST", "ADT": "ADT", "NZDT": "NZDT", "SRT": "SRT", "HAST": "HAST", "HNPM": "HNPM", "GFT": "GFT", "EDT": "EDT", "EST": "EST", "CAT": "CAT", "MESZ": "MESZ", "HEPM": "HEPM", "WEZ": "WEZ", "OESZ": "OESZ", "HKST": "HKST", "HENOMX": "HENOMX", "ACWST": "ACWST", "AEDT": "AEDT", "CHAST": "CHAST", "WAT": "WAT", "GYT": "GYT", "CST": "CST", "NZST": "NZST", "HEEG": "HEEG", "PST": "PST", "ACWDT": "ACWDT", "VET": "VET", "TMST": "TMST", "AST": "AST", "ART": "ART", "JDT": "JDT", "UYT": "UYT", "∅∅∅": "∅∅∅", "WART": "WART", "CLST": "CLST", "MDT": "MDT", "WIB": "WIB", "GMT": "GMT", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "LHST": "LHST", "ARST": "ARST", "HECU": "HECU", "WAST": "WAST", "HEOG": "HEOG", "CDT": "CDT", "CHADT": "CHADT", "WESZ": "WESZ", "HNT": "HNT"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_MU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_MU) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_MU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_MU) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_MU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_MU) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_MU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_MU' and handles both Whole and Real numbers based on 'v'
+ func (en *en_MU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_MU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_MU) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_MU'
+@@ -278,56 +195,7 @@ func (en *en_MU) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_MU'
+@@ -336,84 +204,33 @@ func (en *en_MU) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_MU'
++func (en *en_MU) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_MU'
+-func (en *en_MU) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_MU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_MU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_MU) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_MW/en_MW.go b/en_MW/en_MW.go
+index add3b49..6641732 100644
+--- a/en_MW/en_MW.go
++++ b/en_MW/en_MW.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_MW struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_MW' locale
+ func New() locales.Translator {
+ return &en_MW{
+- locale: "en_MW",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"ChST": "Chamorro Standard Time", "COT": "Colombia Standard Time", "CDT": "Central Daylight Time", "ART": "Argentina Standard Time", "HKT": "Hong Kong Standard Time", "LHST": "Lord Howe Standard Time", "CLT": "Chile Standard Time", "CAT": "Central Africa Time", "WAST": "West Africa Summer Time", "AST": "Atlantic Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "VET": "Venezuela Time", "ACWDT": "Australian Central Western Daylight Time", "ARST": "Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "HAT": "Newfoundland Daylight Time", "HEOG": "West Greenland Summer Time", "HNT": "Newfoundland Standard Time", "JST": "Japan Standard Time", "ECT": "Ecuador Time", "MST": "Macau Standard Time", "CST": "Central Standard Time", "HNOG": "West Greenland Standard Time", "∅∅∅": "Azores Summer Time", "AKST": "Alaska Standard Time", "AWDT": "Australian Western Daylight Time", "ACST": "Australian Central Standard Time", "OESZ": "Eastern European Summer Time", "MYT": "Malaysia Time", "SRT": "Suriname Time", "SAST": "South Africa Standard Time", "JDT": "Japan Daylight Time", "COST": "Colombia Summer Time", "EDT": "Eastern Daylight Time", "ADT": "Atlantic Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MESZ": "Central European Summer Time", "GFT": "French Guiana Time", "HECU": "Cuba Daylight Time", "EST": "Eastern Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "HEEG": "East Greenland Summer Time", "AEST": "Australian Eastern Standard Time", "WITA": "Central Indonesia Time", "LHDT": "Lord Howe Daylight Time", "MDT": "Macau Summer Time", "WART": "Western Argentina Standard Time", "ACWST": "Australian Central Western Standard Time", "CHAST": "Chatham Standard Time", "UYT": "Uruguay Standard Time", "BT": "Bhutan Time", "PDT": "Pacific Daylight Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "WARST": "Western Argentina Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "UYST": "Uruguay Summer Time", "HKST": "Hong Kong Summer Time", "MEZ": "Central European Standard Time", "HNEG": "East Greenland Standard Time", "TMT": "Turkmenistan Standard Time", "GMT": "Greenwich Mean Time", "HNCU": "Cuba Standard Time", "CLST": "Chile Summer Time", "PST": "Pacific Standard Time", "WESZ": "Western European Summer Time", "AWST": "Australian Western Standard Time", "CHADT": "Chatham Daylight Time", "TMST": "Turkmenistan Summer Time", "GYT": "Guyana Time", "AKDT": "Alaska Daylight Time", "WIT": "Eastern Indonesia Time", "HNNOMX": "Northwest Mexico Standard Time", "EAT": "East Africa Time", "WAT": "West Africa Standard Time", "OEZ": "Eastern European Standard Time", "WEZ": "Western European Standard Time", "NZST": "New Zealand Standard Time", "SGT": "Singapore Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "WIB": "Western Indonesia Time"},
++ locale: "en_MW",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WESZ": "WESZ", "HNT": "HNT", "HEEG": "HEEG", "AEDT": "AEDT", "CHAST": "CHAST", "UYST": "UYST", "VET": "VET", "HNPMX": "HNPMX", "HAT": "HAT", "WART": "WART", "WAT": "WAT", "OESZ": "OESZ", "WIT": "WIT", "SAST": "SAST", "NZST": "NZST", "BOT": "BOT", "AEST": "AEST", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "HNOG": "HNOG", "CAT": "CAT", "ART": "ART", "MEZ": "MEZ", "UYT": "UYT", "PDT": "PDT", "HEPMX": "HEPMX", "CLT": "CLT", "CST": "CST", "ADT": "ADT", "HENOMX": "HENOMX", "AWST": "AWST", "BT": "BT", "ACWST": "ACWST", "HEOG": "HEOG", "HKT": "HKT", "CLST": "CLST", "HNEG": "HNEG", "JST": "JST", "NZDT": "NZDT", "MST": "MST", "EAT": "EAT", "LHST": "LHST", "IST": "IST", "HNCU": "HNCU", "OEZ": "OEZ", "GFT": "GFT", "HADT": "HADT", "ACDT": "ACDT", "JDT": "JDT", "ACWDT": "ACWDT", "COT": "COT", "WAST": "WAST", "CDT": "CDT", "MDT": "MDT", "SRT": "SRT", "MYT": "MYT", "AKST": "AKST", "WARST": "WARST", "ECT": "ECT", "ChST": "ChST", "ARST": "ARST", "AST": "AST", "HKST": "HKST", "MESZ": "MESZ", "HNPM": "HNPM", "HEPM": "HEPM", "HECU": "HECU", "COST": "COST", "TMST": "TMST", "WIB": "WIB", "GMT": "GMT", "HNNOMX": "HNNOMX", "SGT": "SGT", "GYT": "GYT", "WITA": "WITA", "AWDT": "AWDT", "LHDT": "LHDT", "PST": "PST", "ACST": "ACST", "WEZ": "WEZ", "AKDT": "AKDT", "TMT": "TMT", "EST": "EST", "EDT": "EDT", "HAST": "HAST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_MW) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_MW) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_MW) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_MW) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_MW) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_MW) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_MW) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_MW' and handles both Whole and Real numbers based on 'v'
+ func (en *en_MW) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_MW' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_MW) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_MW'
+@@ -278,56 +195,7 @@ func (en *en_MW) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_MW'
+@@ -336,84 +204,33 @@ func (en *en_MW) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_MW'
++func (en *en_MW) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_MW'
+-func (en *en_MW) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_MW) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_MW) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_MW) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_MW) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_MW) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_MW) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_MW) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_MY/en_MY.go b/en_MY/en_MY.go
+index e76fd47..bbecfe0 100644
+--- a/en_MY/en_MY.go
++++ b/en_MY/en_MY.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_MY struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_MY' locale
+ func New() locales.Translator {
+ return &en_MY{
+- locale: "en_MY",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "RM", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"CLT": "Chile Standard Time", "WAST": "West Africa Summer Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "HEEG": "East Greenland Summer Time", "ACST": "Australian Central Standard Time", "EAT": "East Africa Time", "EST": "Eastern Standard Time", "ART": "Argentina Standard Time", "HKST": "Hong Kong Summer Time", "IST": "India Standard Time", "COST": "Colombia Summer Time", "CST": "Central Standard Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "WITA": "Central Indonesia Time", "EDT": "Eastern Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "MYT": "Malaysia Time", "BT": "Bhutan Time", "WEZ": "Western European Standard Time", "ChST": "Chamorro Standard Time", "HNEG": "East Greenland Standard Time", "HNT": "Newfoundland Standard Time", "LHDT": "Lord Howe Daylight Time", "CHAST": "Chatham Standard Time", "OESZ": "Eastern European Summer Time", "HKT": "Hong Kong Standard Time", "MEZ": "Central European Standard Time", "LHST": "Lord Howe Standard Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "MST": "Macau Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZST": "New Zealand Standard Time", "JST": "Japan Standard Time", "OEZ": "Eastern European Standard Time", "ECT": "Ecuador Time", "GMT": "Greenwich Mean Time", "CLST": "Chile Summer Time", "JDT": "Japan Daylight Time", "TMT": "Turkmenistan Standard Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "GFT": "French Guiana Time", "GYT": "Guyana Time", "WIT": "Eastern Indonesia Time", "HEPMX": "Mexican Pacific Daylight Time", "AST": "Atlantic Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "ARST": "Argentina Summer Time", "NZDT": "New Zealand Daylight Time", "∅∅∅": "Amazon Summer Time", "TMST": "Turkmenistan Summer Time", "AKST": "Alaska Standard Time", "SRT": "Suriname Time", "PST": "Pacific Standard Time", "ACWST": "Australian Central Western Standard Time", "MESZ": "Central European Summer Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "AKDT": "Alaska Daylight Time", "CDT": "Central Daylight Time", "UYT": "Uruguay Standard Time", "UYST": "Uruguay Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "ACDT": "Australian Central Daylight Time", "WIB": "Western Indonesia Time", "PDT": "Pacific Daylight Time", "HEOG": "West Greenland Summer Time", "AWDT": "Australian Western Daylight Time", "CAT": "Central Africa Time", "HENOMX": "Northwest Mexico Daylight Time", "MDT": "Macau Summer Time", "ADT": "Atlantic Daylight Time", "HNOG": "West Greenland Standard Time", "AWST": "Australian Western Standard Time", "BOT": "Bolivia Time", "WAT": "West Africa Standard Time"},
++ locale: "en_MY",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "RM", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CDT": "CDT", "JST": "JST", "CAT": "CAT", "WITA": "WITA", "MYT": "MYT", "HNT": "HNT", "ECT": "ECT", "ART": "ART", "HADT": "HADT", "HEEG": "HEEG", "CHAST": "CHAST", "WEZ": "WEZ", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "EDT": "EDT", "MST": "MST", "MEZ": "MEZ", "HNCU": "HNCU", "WARST": "WARST", "AEDT": "AEDT", "OESZ": "OESZ", "WIT": "WIT", "HEOG": "HEOG", "CST": "CST", "LHST": "LHST", "UYST": "UYST", "ACWST": "ACWST", "HKST": "HKST", "ACST": "ACST", "PDT": "PDT", "COST": "COST", "GFT": "GFT", "WART": "WART", "NZDT": "NZDT", "BOT": "BOT", "MESZ": "MESZ", "VET": "VET", "OEZ": "OEZ", "HAST": "HAST", "UYT": "UYT", "TMT": "TMT", "WIB": "WIB", "WESZ": "WESZ", "WAT": "WAT", "HKT": "HKT", "MDT": "MDT", "ARST": "ARST", "AWST": "AWST", "∅∅∅": "∅∅∅", "PST": "PST", "EAT": "EAT", "WAST": "WAST", "AKST": "AKST", "AST": "AST", "ADT": "ADT", "ACDT": "ACDT", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "HNOG": "HNOG", "SGT": "SGT", "HECU": "HECU", "HAT": "HAT", "LHDT": "LHDT", "CLT": "CLT", "NZST": "NZST", "IST": "IST", "HEPMX": "HEPMX", "SAST": "SAST", "COT": "COT", "HNPM": "HNPM", "JDT": "JDT", "CHADT": "CHADT", "GYT": "GYT", "GMT": "GMT", "AEST": "AEST", "AKDT": "AKDT", "EST": "EST", "TMST": "TMST", "CLST": "CLST", "AWDT": "AWDT", "BT": "BT", "ACWDT": "ACWDT", "ChST": "ChST", "SRT": "SRT"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_MY) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_MY) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_MY) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_MY) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_MY) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_MY) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_MY) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_MY' and handles both Whole and Real numbers based on 'v'
+ func (en *en_MY) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_MY' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_MY) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_MY'
+@@ -278,56 +195,7 @@ func (en *en_MY) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_MY'
+@@ -336,84 +204,33 @@ func (en *en_MY) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_MY'
++func (en *en_MY) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_MY'
+-func (en *en_MY) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_MY) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_MY) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_MY) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_MY) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_MY) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_MY) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_MY) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_NA/en_NA.go b/en_NA/en_NA.go
+index bc987d6..84ee630 100644
+--- a/en_NA/en_NA.go
++++ b/en_NA/en_NA.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_NA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_NA' locale
+ func New() locales.Translator {
+ return &en_NA{
+- locale: "en_NA",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "$", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HADT": "Hawaii-Aleutian Daylight Time", "WAST": "West Africa Summer Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "WIB": "Western Indonesia Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "TMT": "Turkmenistan Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWDT": "Australian Central Western Daylight Time", "MEZ": "Central European Standard Time", "LHST": "Lord Howe Standard Time", "CLST": "Chile Summer Time", "∅∅∅": "Amazon Summer Time", "CST": "Central Standard Time", "EDT": "Eastern Daylight Time", "CDT": "Central Daylight Time", "ART": "Argentina Standard Time", "WART": "Western Argentina Standard Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "ACDT": "Australian Central Daylight Time", "CAT": "Central Africa Time", "SAST": "South Africa Standard Time", "CLT": "Chile Standard Time", "JST": "Japan Standard Time", "JDT": "Japan Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HKST": "Hong Kong Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HEEG": "East Greenland Summer Time", "COT": "Colombia Standard Time", "UYST": "Uruguay Summer Time", "AKST": "Alaska Standard Time", "AST": "Atlantic Standard Time", "BT": "Bhutan Time", "PST": "Pacific Standard Time", "HAT": "Newfoundland Daylight Time", "NZST": "New Zealand Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "AKDT": "Alaska Daylight Time", "ACWST": "Australian Central Western Standard Time", "AEST": "Australian Eastern Standard Time", "IST": "India Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "EAT": "East Africa Time", "GMT": "Greenwich Mean Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "HNT": "Newfoundland Standard Time", "HEOG": "West Greenland Summer Time", "MESZ": "Central European Summer Time", "ChST": "Chamorro Standard Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "TMST": "Turkmenistan Summer Time", "ACST": "Australian Central Standard Time", "HNPMX": "Mexican Pacific Standard Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "LHDT": "Lord Howe Daylight Time", "CHADT": "Chatham Daylight Time", "HNEG": "East Greenland Standard Time", "WIT": "Eastern Indonesia Time", "WEZ": "Western European Standard Time", "HNOG": "West Greenland Standard Time", "MST": "Macau Standard Time", "ADT": "Atlantic Daylight Time", "MDT": "Macau Summer Time", "MYT": "Malaysia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZDT": "New Zealand Daylight Time", "ECT": "Ecuador Time", "HECU": "Cuba Daylight Time", "PDT": "Pacific Daylight Time", "WARST": "Western Argentina Summer Time", "SRT": "Suriname Time", "AWST": "Australian Western Standard Time", "WAT": "West Africa Standard Time", "UYT": "Uruguay Standard Time", "HKT": "Hong Kong Standard Time", "WITA": "Central Indonesia Time", "CHAST": "Chatham Standard Time", "SGT": "Singapore Standard Time"},
++ locale: "en_NA",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "$", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HKST": "HKST", "ADT": "ADT", "HADT": "HADT", "HNPM": "HNPM", "VET": "VET", "WART": "WART", "MESZ": "MESZ", "HEEG": "HEEG", "AWST": "AWST", "GMT": "GMT", "ACDT": "ACDT", "HAT": "HAT", "WARST": "WARST", "GYT": "GYT", "COST": "COST", "HNOG": "HNOG", "TMST": "TMST", "LHDT": "LHDT", "CHADT": "CHADT", "UYST": "UYST", "PST": "PST", "HNPMX": "HNPMX", "HKT": "HKT", "ECT": "ECT", "UYT": "UYT", "AKDT": "AKDT", "ARST": "ARST", "HNT": "HNT", "WITA": "WITA", "NZST": "NZST", "EAT": "EAT", "HENOMX": "HENOMX", "GFT": "GFT", "∅∅∅": "∅∅∅", "WIB": "WIB", "MDT": "MDT", "AWDT": "AWDT", "WEZ": "WEZ", "WESZ": "WESZ", "CLT": "CLT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "WAT": "WAT", "OESZ": "OESZ", "HEOG": "HEOG", "TMT": "TMT", "CAT": "CAT", "ACWDT": "ACWDT", "HECU": "HECU", "AST": "AST", "JST": "JST", "JDT": "JDT", "BT": "BT", "WIT": "WIT", "BOT": "BOT", "MEZ": "MEZ", "SGT": "SGT", "ART": "ART", "HEPMX": "HEPMX", "SAST": "SAST", "COT": "COT", "EST": "EST", "EDT": "EDT", "NZDT": "NZDT", "ChST": "ChST", "HNCU": "HNCU", "CLST": "CLST", "CDT": "CDT", "MYT": "MYT", "HEPM": "HEPM", "IST": "IST", "PDT": "PDT", "AEST": "AEST", "ACWST": "ACWST", "WAST": "WAST", "AKST": "AKST", "SRT": "SRT", "HAST": "HAST", "AEDT": "AEDT", "CHAST": "CHAST", "CST": "CST", "MST": "MST", "ACST": "ACST", "LHST": "LHST", "OEZ": "OEZ"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_NA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_NA) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_NA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_NA) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_NA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_NA) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_NA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_NA' and handles both Whole and Real numbers based on 'v'
+ func (en *en_NA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_NA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_NA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_NA'
+@@ -278,56 +195,7 @@ func (en *en_NA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_NA'
+@@ -336,84 +204,33 @@ func (en *en_NA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_NA'
++func (en *en_NA) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_NA'
+-func (en *en_NA) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_NA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_NA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_NA) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_NA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_NA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_NA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_NA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_NF/en_NF.go b/en_NF/en_NF.go
+index bed6b5c..daa2abc 100644
+--- a/en_NF/en_NF.go
++++ b/en_NF/en_NF.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_NF struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_NF' locale
+ func New() locales.Translator {
+ return &en_NF{
+- locale: "en_NF",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "$", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"NZST": "New Zealand Standard Time", "CLST": "Chile Summer Time", "ChST": "Chamorro Standard Time", "AKST": "Alaska Standard Time", "WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "TMST": "Turkmenistan Summer Time", "UYT": "Uruguay Standard Time", "AEDT": "Australian Eastern Daylight Time", "MEZ": "Central European Standard Time", "SAST": "South Africa Standard Time", "TMT": "Turkmenistan Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "AWST": "Australian Western Standard Time", "HKT": "Hong Kong Standard Time", "HEEG": "East Greenland Summer Time", "EAT": "East Africa Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "HNCU": "Cuba Standard Time", "AWDT": "Australian Western Daylight Time", "HAT": "Newfoundland Daylight Time", "MESZ": "Central European Summer Time", "CLT": "Chile Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "EDT": "Eastern Daylight Time", "BT": "Bhutan Time", "WEZ": "Western European Standard Time", "ACWST": "Australian Central Western Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "BOT": "Bolivia Time", "LHST": "Lord Howe Standard Time", "JDT": "Japan Daylight Time", "CAT": "Central Africa Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "GMT": "Greenwich Mean Time", "MYT": "Malaysia Time", "PST": "Pacific Standard Time", "PDT": "Pacific Daylight Time", "HNOG": "West Greenland Standard Time", "HNEG": "East Greenland Standard Time", "NZDT": "New Zealand Daylight Time", "JST": "Japan Standard Time", "ACDT": "Australian Central Daylight Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "UYST": "Uruguay Summer Time", "AKDT": "Alaska Daylight Time", "WITA": "Central Indonesia Time", "ACST": "Australian Central Standard Time", "∅∅∅": "Peru Summer Time", "EST": "Eastern Standard Time", "HNT": "Newfoundland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHDT": "Lord Howe Daylight Time", "SRT": "Suriname Time", "AEST": "Australian Eastern Standard Time", "OESZ": "Eastern European Summer Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time", "CDT": "Central Daylight Time", "AST": "Atlantic Standard Time", "OEZ": "Eastern European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HECU": "Cuba Daylight Time", "GFT": "French Guiana Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "HEOG": "West Greenland Summer Time", "CHADT": "Chatham Daylight Time", "CST": "Central Standard Time", "ADT": "Atlantic Daylight Time", "VET": "Venezuela Time", "CHAST": "Chatham Standard Time", "WIB": "Western Indonesia Time", "IST": "India Standard Time", "SGT": "Singapore Standard Time", "HKST": "Hong Kong Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time"},
++ locale: "en_NF",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "$", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"IST": "IST", "HECU": "HECU", "ACWDT": "ACWDT", "WEZ": "WEZ", "WART": "WART", "HEOG": "HEOG", "MESZ": "MESZ", "HEPM": "HEPM", "JDT": "JDT", "AEST": "AEST", "CHAST": "CHAST", "CHADT": "CHADT", "CLST": "CLST", "NZDT": "NZDT", "WESZ": "WESZ", "AKDT": "AKDT", "UYT": "UYT", "UYST": "UYST", "HKST": "HKST", "EST": "EST", "SRT": "SRT", "AEDT": "AEDT", "VET": "VET", "OESZ": "OESZ", "WIT": "WIT", "BT": "BT", "HNOG": "HNOG", "HENOMX": "HENOMX", "ARST": "ARST", "EAT": "EAT", "LHDT": "LHDT", "MYT": "MYT", "PST": "PST", "∅∅∅": "∅∅∅", "TMT": "TMT", "MDT": "MDT", "ECT": "ECT", "JST": "JST", "COT": "COT", "TMST": "TMST", "COST": "COST", "MST": "MST", "ART": "ART", "AWST": "AWST", "OEZ": "OEZ", "GYT": "GYT", "ChST": "ChST", "AST": "AST", "ADT": "ADT", "HAST": "HAST", "ACST": "ACST", "HNEG": "HNEG", "SAST": "SAST", "CDT": "CDT", "HNPMX": "HNPMX", "HEEG": "HEEG", "PDT": "PDT", "WAT": "WAT", "CAT": "CAT", "CST": "CST", "ACWST": "ACWST", "SGT": "SGT", "AKST": "AKST", "WAST": "WAST", "WIB": "WIB", "HNPM": "HNPM", "AWDT": "AWDT", "CLT": "CLT", "NZST": "NZST", "GMT": "GMT", "BOT": "BOT", "WARST": "WARST", "HAT": "HAT", "HADT": "HADT", "ACDT": "ACDT", "HEPMX": "HEPMX", "LHST": "LHST", "HNCU": "HNCU", "HKT": "HKT", "EDT": "EDT", "WITA": "WITA", "HNNOMX": "HNNOMX", "MEZ": "MEZ", "GFT": "GFT", "HNT": "HNT"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_NF) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_NF) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_NF) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_NF) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_NF) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_NF) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_NF) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_NF' and handles both Whole and Real numbers based on 'v'
+ func (en *en_NF) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_NF' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_NF) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_NF'
+@@ -278,56 +195,7 @@ func (en *en_NF) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_NF'
+@@ -336,84 +204,33 @@ func (en *en_NF) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_NF'
++func (en *en_NF) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_NF'
+-func (en *en_NF) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_NF) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_NF) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_NF) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_NG/en_NG.go b/en_NG/en_NG.go
+index 1db9066..8223ad7 100644
+--- a/en_NG/en_NG.go
++++ b/en_NG/en_NG.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_NG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_NG' locale
+ func New() locales.Translator {
+ return &en_NG{
+- locale: "en_NG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "₦", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"MST": "Macau Standard Time", "AKST": "Alaska Standard Time", "AKDT": "Alaska Daylight Time", "UYST": "Uruguay Summer Time", "ART": "Argentina Standard Time", "AWDT": "Australian Western Daylight Time", "MEZ": "Central European Standard Time", "GFT": "French Guiana Time", "ACST": "Australian Central Standard Time", "HECU": "Cuba Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "MESZ": "Central European Summer Time", "VET": "Venezuela Time", "SRT": "Suriname Time", "AWST": "Australian Western Standard Time", "LHST": "Lord Howe Standard Time", "TMT": "Turkmenistan Standard Time", "COT": "Colombia Standard Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "CDT": "Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "BT": "Bhutan Time", "PST": "Pacific Standard Time", "HKST": "Hong Kong Summer Time", "LHDT": "Lord Howe Daylight Time", "GMT": "Greenwich Mean Time", "HEPMX": "Mexican Pacific Daylight Time", "ADT": "Atlantic Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "TMST": "Turkmenistan Summer Time", "WART": "Western Argentina Standard Time", "HNPMX": "Mexican Pacific Standard Time", "NZDT": "New Zealand Daylight Time", "∅∅∅": "Amazon Summer Time", "EAT": "East Africa Time", "OEZ": "Eastern European Standard Time", "WAST": "West Africa Summer Time", "WIT": "Eastern Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "AEST": "Australian Eastern Standard Time", "CHAST": "Chatham Standard Time", "HNEG": "East Greenland Standard Time", "SGT": "Singapore Standard Time", "WIB": "Western Indonesia Time", "WESZ": "Western European Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZST": "New Zealand Standard Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "HNNOMX": "Northwest Mexico Standard Time", "HNOG": "West Greenland Standard Time", "AEDT": "Australian Eastern Daylight Time", "IST": "India Standard Time", "CLST": "Chile Summer Time", "WARST": "Western Argentina Summer Time", "UYT": "Uruguay Standard Time", "HEEG": "East Greenland Summer Time", "OESZ": "Eastern European Summer Time", "AST": "Atlantic Standard Time", "MYT": "Malaysia Time", "HNT": "Newfoundland Standard Time", "EDT": "Eastern Daylight Time", "GYT": "Guyana Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "HAT": "Newfoundland Daylight Time", "HEOG": "West Greenland Summer Time", "WITA": "Central Indonesia Time", "JDT": "Japan Daylight Time", "ChST": "Chamorro Standard Time", "ACWST": "Australian Central Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CLT": "Chile Standard Time", "JST": "Japan Standard Time", "ACDT": "Australian Central Daylight Time", "WAT": "West Africa Standard Time", "ECT": "Ecuador Time", "MDT": "Macau Summer Time", "CST": "Central Standard Time"},
++ locale: "en_NG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "₦", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AEST": "AEST", "UYT": "UYT", "WAST": "WAST", "EDT": "EDT", "WITA": "WITA", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "IST": "IST", "AKDT": "AKDT", "COST": "COST", "HENOMX": "HENOMX", "CAT": "CAT", "HNCU": "HNCU", "MESZ": "MESZ", "ACWST": "ACWST", "HEPMX": "HEPMX", "HNOG": "HNOG", "HEOG": "HEOG", "HADT": "HADT", "BT": "BT", "CLT": "CLT", "NZST": "NZST", "JST": "JST", "VET": "VET", "HECU": "HECU", "ChST": "ChST", "HNPMX": "HNPMX", "AWST": "AWST", "LHDT": "LHDT", "PDT": "PDT", "WIB": "WIB", "MDT": "MDT", "AWDT": "AWDT", "SGT": "SGT", "ARST": "ARST", "ACDT": "ACDT", "MEZ": "MEZ", "HNT": "HNT", "CDT": "CDT", "GMT": "GMT", "MST": "MST", "LHST": "LHST", "CHADT": "CHADT", "UYST": "UYST", "ACWDT": "ACWDT", "SAST": "SAST", "TMST": "TMST", "ADT": "ADT", "EAT": "EAT", "AEDT": "AEDT", "WEZ": "WEZ", "AKST": "AKST", "WART": "WART", "EST": "EST", "HAST": "HAST", "ACST": "ACST", "HNEG": "HNEG", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "HAT": "HAT", "HKT": "HKT", "TMT": "TMT", "BOT": "BOT", "CHAST": "CHAST", "WARST": "WARST", "CLST": "CLST", "JDT": "JDT", "WESZ": "WESZ", "WAT": "WAT", "OEZ": "OEZ", "GYT": "GYT", "NZDT": "NZDT", "ECT": "ECT", "ART": "ART", "HEEG": "HEEG", "HNPM": "HNPM", "PST": "PST", "AST": "AST", "SRT": "SRT", "GFT": "GFT", "WIT": "WIT", "COT": "COT", "HKST": "HKST", "CST": "CST", "MYT": "MYT"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_NG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_NG) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_NG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_NG) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_NG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_NG) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_NG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_NG' and handles both Whole and Real numbers based on 'v'
+ func (en *en_NG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_NG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_NG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_NG'
+@@ -278,56 +195,7 @@ func (en *en_NG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_NG'
+@@ -336,84 +204,33 @@ func (en *en_NG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_NG'
++func (en *en_NG) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_NG'
+-func (en *en_NG) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_NG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_NG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_NG) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_NG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_NG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_NG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_NG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_NL/en_NL.go b/en_NL/en_NL.go
+index 641a953..a724f73 100644
+--- a/en_NL/en_NL.go
++++ b/en_NL/en_NL.go
+@@ -49,31 +49,12 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{2, 6},
+ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+ pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: "( ",
+ currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HAST": "Hawaii-Aleutian Standard Time", "HEOG": "West Greenland Summer Time", "AWST": "Australian Western Standard Time", "HKT": "Hong Kong Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "TMT": "Turkmenistan Standard Time", "UYST": "Uruguay Summer Time", "HAT": "Newfoundland Daylight Time", "ART": "Argentina Standard Time", "WESZ": "Western European Summer Time", "LHDT": "Lord Howe Daylight Time", "ACDT": "Australian Central Daylight Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "AWDT": "Australian Western Daylight Time", "HNT": "Newfoundland Standard Time", "AEST": "Australian Eastern Standard Time", "JDT": "Japan Daylight Time", "CLT": "Chile Standard Time", "WAT": "West Africa Standard Time", "AST": "Atlantic Standard Time", "VET": "Venezuela Time", "PST": "Pacific Standard Time", "HNCU": "Cuba Standard Time", "AKDT": "Alaska Daylight Time", "EAT": "East Africa Time", "SGT": "Singapore Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "AEDT": "Australian Eastern Daylight Time", "WIT": "Eastern Indonesia Time", "HNOG": "West Greenland Standard Time", "SAST": "South Africa Standard Time", "BOT": "Bolivia Time", "COT": "Colombia Standard Time", "EDT": "Eastern Daylight Time", "ADT": "Atlantic Daylight Time", "CDT": "Central Daylight Time", "NZST": "New Zealand Standard Time", "IST": "India Standard Time", "MEZ": "Central European Standard Time", "GMT": "Greenwich Mean Time", "HECU": "Cuba Daylight Time", "UYT": "Uruguay Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "LHST": "Lord Howe Standard Time", "HNEG": "East Greenland Standard Time", "OEZ": "Eastern European Standard Time", "WARST": "Western Argentina Summer Time", "SRT": "Suriname Time", "HKST": "Hong Kong Summer Time", "ChST": "Chamorro Standard Time", "GFT": "French Guiana Time", "HENOMX": "Northwest Mexico Daylight Time", "AKST": "Alaska Standard Time", "BT": "Bhutan Time", "WEZ": "Western European Standard Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "WAST": "West Africa Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "CST": "Central Standard Time", "CLST": "Chile Summer Time", "∅∅∅": "Amazon Summer Time", "ECT": "Ecuador Time", "CAT": "Central Africa Time", "OESZ": "Eastern European Summer Time", "PDT": "Pacific Daylight Time", "CHADT": "Chatham Daylight Time", "JST": "Japan Standard Time", "TMST": "Turkmenistan Summer Time", "WART": "Western Argentina Standard Time", "GYT": "Guyana Time", "MESZ": "Central European Summer Time", "HNPMX": "Mexican Pacific Standard Time", "MYT": "Malaysia Time", "WIB": "Western Indonesia Time", "ARST": "Argentina Summer Time", "WITA": "Central Indonesia Time", "HEEG": "East Greenland Summer Time", "ACST": "Australian Central Standard Time", "ACWST": "Australian Central Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time"},
++ timezones: map[string]string{"AST": "AST", "HEPM": "HEPM", "HNT": "HNT", "CLST": "CLST", "CST": "CST", "NZDT": "NZDT", "WIB": "WIB", "ChST": "ChST", "JDT": "JDT", "PST": "PST", "CHAST": "CHAST", "HNOG": "HNOG", "NZST": "NZST", "UYST": "UYST", "CLT": "CLT", "AEST": "AEST", "WARST": "WARST", "HKST": "HKST", "TMT": "TMT", "WITA": "WITA", "HNEG": "HNEG", "AWDT": "AWDT", "AEDT": "AEDT", "AKST": "AKST", "WIT": "WIT", "GMT": "GMT", "SRT": "SRT", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "AKDT": "AKDT", "GYT": "GYT", "MST": "MST", "EAT": "EAT", "ACST": "ACST", "AWST": "AWST", "UYT": "UYT", "COST": "COST", "CDT": "CDT", "MYT": "MYT", "JST": "JST", "WAST": "WAST", "GFT": "GFT", "HKT": "HKT", "TMST": "TMST", "ART": "ART", "ACDT": "ACDT", "HNPM": "HNPM", "IST": "IST", "CHADT": "CHADT", "HECU": "HECU", "EDT": "EDT", "MDT": "MDT", "HADT": "HADT", "LHST": "LHST", "LHDT": "LHDT", "ACWDT": "ACWDT", "SGT": "SGT", "HNCU": "HNCU", "HEPMX": "HEPMX", "ADT": "ADT", "SAST": "SAST", "WART": "WART", "WESZ": "WESZ", "VET": "VET", "OESZ": "OESZ", "COT": "COT", "HEOG": "HEOG", "CAT": "CAT", "BT": "BT", "BOT": "BOT", "MEZ": "MEZ", "HEEG": "HEEG", "ARST": "ARST", "PDT": "PDT", "ACWST": "ACWST", "HNNOMX": "HNNOMX", "HAT": "HAT", "WAT": "WAT", "HAST": "HAST", "WEZ": "WEZ", "OEZ": "OEZ", "ECT": "ECT", "EST": "EST", "MESZ": "MESZ"},
+ }
+ }
+ 
+@@ -140,7 +121,7 @@ func (en *en_NL) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_NL) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -150,7 +131,7 @@ func (en *en_NL) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_NL) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -160,7 +141,7 @@ func (en *en_NL) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_NL) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -206,73 +187,13 @@ func (en *en_NL) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_NL' and handles both Whole and Real numbers based on 'v'
+ func (en *en_NL) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_NL' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_NL) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_NL'
+@@ -280,7 +201,7 @@ func (en *en_NL) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -342,7 +263,7 @@ func (en *en_NL) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 4 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -417,17 +338,6 @@ func (en *en_NL) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -436,17 +346,6 @@ func (en *en_NL) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -455,17 +354,6 @@ func (en *en_NL) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -474,19 +362,6 @@ func (en *en_NL) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -495,28 +370,6 @@ func (en *en_NL) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -525,35 +378,6 @@ func (en *en_NL) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -562,40 +386,6 @@ func (en *en_NL) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -604,44 +394,5 @@ func (en *en_NL) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_NR/en_NR.go b/en_NR/en_NR.go
+index 2f6ff75..cd64478 100644
+--- a/en_NR/en_NR.go
++++ b/en_NR/en_NR.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_NR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_NR' locale
+ func New() locales.Translator {
+ return &en_NR{
+- locale: "en_NR",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "$", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HADT": "Hawaii-Aleutian Daylight Time", "VET": "Venezuela Time", "PST": "Pacific Standard Time", "AWDT": "Australian Western Daylight Time", "TMST": "Turkmenistan Summer Time", "ECT": "Ecuador Time", "HNPMX": "Mexican Pacific Standard Time", "ADT": "Atlantic Daylight Time", "MEZ": "Central European Standard Time", "LHST": "Lord Howe Standard Time", "IST": "India Standard Time", "AKST": "Alaska Standard Time", "GYT": "Guyana Time", "WIT": "Eastern Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHAST": "Chatham Standard Time", "WAT": "West Africa Standard Time", "EAT": "East Africa Time", "WEZ": "Western European Standard Time", "HKST": "Hong Kong Summer Time", "GFT": "French Guiana Time", "CAT": "Central Africa Time", "HNCU": "Cuba Standard Time", "ARST": "Argentina Summer Time", "MDT": "Macau Summer Time", "UYT": "Uruguay Standard Time", "HEOG": "West Greenland Summer Time", "WESZ": "Western European Summer Time", "JST": "Japan Standard Time", "BOT": "Bolivia Time", "WART": "Western Argentina Standard Time", "SGT": "Singapore Standard Time", "AEST": "Australian Eastern Standard Time", "JDT": "Japan Daylight Time", "GMT": "Greenwich Mean Time", "MYT": "Malaysia Time", "BT": "Bhutan Time", "HECU": "Cuba Daylight Time", "MST": "Macau Standard Time", "CST": "Central Standard Time", "HKT": "Hong Kong Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HNOG": "West Greenland Standard Time", "CHADT": "Chatham Daylight Time", "TMT": "Turkmenistan Standard Time", "OESZ": "Eastern European Summer Time", "COT": "Colombia Standard Time", "OEZ": "Eastern European Standard Time", "EST": "Eastern Standard Time", "AKDT": "Alaska Daylight Time", "CDT": "Central Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZST": "New Zealand Standard Time", "SAST": "South Africa Standard Time", "ChST": "Chamorro Standard Time", "WIB": "Western Indonesia Time", "HAT": "Newfoundland Daylight Time", "ART": "Argentina Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "CLT": "Chile Standard Time", "ACDT": "Australian Central Daylight Time", "HNT": "Newfoundland Standard Time", "AWST": "Australian Western Standard Time", "PDT": "Pacific Daylight Time", "NZDT": "New Zealand Daylight Time", "MESZ": "Central European Summer Time", "COST": "Colombia Summer Time", "SRT": "Suriname Time", "WARST": "Western Argentina Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "HEEG": "East Greenland Summer Time", "WAST": "West Africa Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "UYST": "Uruguay Summer Time", "LHDT": "Lord Howe Daylight Time", "CLST": "Chile Summer Time", "HNEG": "East Greenland Standard Time", "AST": "Atlantic Standard Time", "WITA": "Central Indonesia Time", "AEDT": "Australian Eastern Daylight Time", "∅∅∅": "Amazon Summer Time", "ACST": "Australian Central Standard Time", "EDT": "Eastern Daylight Time", "ACWST": "Australian Central Western Standard Time"},
++ locale: "en_NR",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "$", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNOG": "HNOG", "HAST": "HAST", "HENOMX": "HENOMX", "ACDT": "ACDT", "HNPM": "HNPM", "HEPM": "HEPM", "AWDT": "AWDT", "HNT": "HNT", "HKST": "HKST", "MEZ": "MEZ", "ACWST": "ACWST", "AEST": "AEST", "UYST": "UYST", "PDT": "PDT", "WESZ": "WESZ", "WIB": "WIB", "ARST": "ARST", "JDT": "JDT", "ACWDT": "ACWDT", "HNCU": "HNCU", "WARST": "WARST", "GMT": "GMT", "CST": "CST", "ChST": "ChST", "MESZ": "MESZ", "HNPMX": "HNPMX", "OESZ": "OESZ", "CLT": "CLT", "AWST": "AWST", "LHDT": "LHDT", "SGT": "SGT", "VET": "VET", "WART": "WART", "COST": "COST", "ACST": "ACST", "WAST": "WAST", "AKST": "AKST", "OEZ": "OEZ", "SAST": "SAST", "TMST": "TMST", "MDT": "MDT", "ART": "ART", "HADT": "HADT", "COT": "COT", "CLST": "CLST", "BOT": "BOT", "EAT": "EAT", "CHAST": "CHAST", "GYT": "GYT", "HNEG": "HNEG", "MYT": "MYT", "HKT": "HKT", "NZDT": "NZDT", "BT": "BT", "HECU": "HECU", "WEZ": "WEZ", "WIT": "WIT", "∅∅∅": "∅∅∅", "EDT": "EDT", "CAT": "CAT", "WITA": "WITA", "SRT": "SRT", "WAT": "WAT", "MST": "MST", "CDT": "CDT", "NZST": "NZST", "AST": "AST", "LHST": "LHST", "AEDT": "AEDT", "CHADT": "CHADT", "IST": "IST", "PST": "PST", "HEPMX": "HEPMX", "HAT": "HAT", "HEOG": "HEOG", "EST": "EST", "ECT": "ECT", "JST": "JST", "AKDT": "AKDT", "GFT": "GFT", "TMT": "TMT", "ADT": "ADT", "HNNOMX": "HNNOMX", "HEEG": "HEEG", "UYT": "UYT"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_NR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_NR) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_NR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_NR) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_NR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_NR) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_NR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_NR' and handles both Whole and Real numbers based on 'v'
+ func (en *en_NR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_NR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_NR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_NR'
+@@ -278,56 +195,7 @@ func (en *en_NR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_NR'
+@@ -336,84 +204,33 @@ func (en *en_NR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_NR'
++func (en *en_NR) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_NR'
+-func (en *en_NR) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_NR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_NR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_NR) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_NU/en_NU.go b/en_NU/en_NU.go
+index fa0e48b..b2a737f 100644
+--- a/en_NU/en_NU.go
++++ b/en_NU/en_NU.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_NU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_NU' locale
+ func New() locales.Translator {
+ return &en_NU{
+- locale: "en_NU",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "$", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HNEG": "East Greenland Standard Time", "HNPMX": "Mexican Pacific Standard Time", "SRT": "Suriname Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ACWST": "Australian Central Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HNT": "Newfoundland Standard Time", "ART": "Argentina Standard Time", "NZST": "New Zealand Standard Time", "WAST": "West Africa Summer Time", "EDT": "Eastern Daylight Time", "BT": "Bhutan Time", "IST": "India Standard Time", "ACST": "Australian Central Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "WITA": "Central Indonesia Time", "NZDT": "New Zealand Daylight Time", "WAT": "West Africa Standard Time", "ECT": "Ecuador Time", "GMT": "Greenwich Mean Time", "HENOMX": "Northwest Mexico Daylight Time", "AEST": "Australian Eastern Standard Time", "CHAST": "Chatham Standard Time", "WARST": "Western Argentina Summer Time", "AKDT": "Alaska Daylight Time", "AST": "Atlantic Standard Time", "EAT": "East Africa Time", "GYT": "Guyana Time", "MEZ": "Central European Standard Time", "EST": "Eastern Standard Time", "HKST": "Hong Kong Summer Time", "MESZ": "Central European Summer Time", "OEZ": "Eastern European Standard Time", "CAT": "Central Africa Time", "HNNOMX": "Northwest Mexico Standard Time", "MYT": "Malaysia Time", "HAT": "Newfoundland Daylight Time", "PDT": "Pacific Daylight Time", "CHADT": "Chatham Daylight Time", "COT": "Colombia Standard Time", "SGT": "Singapore Standard Time", "CDT": "Central Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHDT": "Lord Howe Daylight Time", "CST": "Central Standard Time", "ADT": "Atlantic Daylight Time", "WEZ": "Western European Standard Time", "TMST": "Turkmenistan Summer Time", "AKST": "Alaska Standard Time", "AWST": "Australian Western Standard Time", "TMT": "Turkmenistan Standard Time", "CLT": "Chile Standard Time", "HEEG": "East Greenland Summer Time", "AEDT": "Australian Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "JDT": "Japan Daylight Time", "UYST": "Uruguay Summer Time", "WIB": "Western Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "HNOG": "West Greenland Standard Time", "SAST": "South Africa Standard Time", "∅∅∅": "Peru Summer Time", "COST": "Colombia Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "CLST": "Chile Summer Time", "AWDT": "Australian Western Daylight Time", "ChST": "Chamorro Standard Time", "BOT": "Bolivia Time", "HEOG": "West Greenland Summer Time", "WESZ": "Western European Summer Time", "HKT": "Hong Kong Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "JST": "Japan Standard Time", "GFT": "French Guiana Time", "ACDT": "Australian Central Daylight Time", "OESZ": "Eastern European Summer Time", "HNCU": "Cuba Standard Time", "WIT": "Eastern Indonesia Time", "HECU": "Cuba Daylight Time", "UYT": "Uruguay Standard Time", "PST": "Pacific Standard Time", "WART": "Western Argentina Standard Time", "VET": "Venezuela Time", "ARST": "Argentina Summer Time"},
++ locale: "en_NU",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "$", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"UYST": "UYST", "SGT": "SGT", "COST": "COST", "WIB": "WIB", "ChST": "ChST", "ART": "ART", "MEZ": "MEZ", "WART": "WART", "CHADT": "CHADT", "HEEG": "HEEG", "WAT": "WAT", "HKST": "HKST", "CLT": "CLT", "HNEG": "HNEG", "GYT": "GYT", "EDT": "EDT", "NZST": "NZST", "ECT": "ECT", "SRT": "SRT", "ACDT": "ACDT", "LHST": "LHST", "HNOG": "HNOG", "MESZ": "MESZ", "WIT": "WIT", "HKT": "HKT", "CLST": "CLST", "AWDT": "AWDT", "AKST": "AKST", "OESZ": "OESZ", "COT": "COT", "TMT": "TMT", "TMST": "TMST", "BOT": "BOT", "EAT": "EAT", "CHAST": "CHAST", "ACWDT": "ACWDT", "WEZ": "WEZ", "AKDT": "AKDT", "HEOG": "HEOG", "AWST": "AWST", "∅∅∅": "∅∅∅", "BT": "BT", "HNPMX": "HNPMX", "OEZ": "OEZ", "CDT": "CDT", "NZDT": "NZDT", "AST": "AST", "HEPM": "HEPM", "ARST": "ARST", "IST": "IST", "PST": "PST", "PDT": "PDT", "ACWST": "ACWST", "ADT": "ADT", "UYT": "UYT", "CST": "CST", "MDT": "MDT", "JST": "JST", "VET": "VET", "GFT": "GFT", "HAT": "HAT", "SAST": "SAST", "HADT": "HADT", "MYT": "MYT", "HNCU": "HNCU", "HNT": "HNT", "WARST": "WARST", "WESZ": "WESZ", "HNPM": "HNPM", "AEST": "AEST", "CAT": "CAT", "ACST": "ACST", "HENOMX": "HENOMX", "JDT": "JDT", "AEDT": "AEDT", "HEPMX": "HEPMX", "WITA": "WITA", "MST": "MST", "HAST": "HAST", "HNNOMX": "HNNOMX", "HECU": "HECU", "WAST": "WAST", "EST": "EST", "GMT": "GMT", "LHDT": "LHDT"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_NU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_NU) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_NU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_NU) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_NU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_NU) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_NU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_NU' and handles both Whole and Real numbers based on 'v'
+ func (en *en_NU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_NU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_NU) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_NU'
+@@ -278,56 +195,7 @@ func (en *en_NU) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_NU'
+@@ -336,84 +204,33 @@ func (en *en_NU) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_NU'
++func (en *en_NU) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_NU'
+-func (en *en_NU) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_NU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_NU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_NU) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_NZ/en_NZ.go b/en_NZ/en_NZ.go
+index 96b604d..fe8de86 100644
+--- a/en_NZ/en_NZ.go
++++ b/en_NZ/en_NZ.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_NZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_NZ' locale
+ func New() locales.Translator {
+ return &en_NZ{
+- locale: "en_NZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "$", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"AST": "Atlantic Standard Time", "ACWDT": "Australian Central Western Daylight Time", "CHADT": "Chatham Daylight Time", "CLT": "Chile Standard Time", "COT": "Colombia Standard Time", "GYT": "Guyana Time", "HNT": "Newfoundland Standard Time", "MEZ": "Central European Standard Time", "EAT": "East Africa Time", "AKDT": "Alaska Daylight Time", "ARST": "Argentina Summer Time", "HNOG": "West Greenland Standard Time", "HEOG": "West Greenland Summer Time", "WITA": "Central Indonesia Time", "CLST": "Chile Summer Time", "ECT": "Ecuador Time", "HEPMX": "Mexican Pacific Daylight Time", "EST": "Eastern Standard Time", "UYT": "Uruguay Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "WESZ": "Western European Summer Time", "ACWST": "Australian Central Western Standard Time", "WART": "Western Argentina Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HNCU": "Cuba Standard Time", "NZDT": "New Zealand Daylight Time", "OEZ": "Eastern European Standard Time", "ACDT": "Australian Central Daylight Time", "OESZ": "Eastern European Summer Time", "CAT": "Central Africa Time", "WARST": "Western Argentina Summer Time", "GMT": "Greenwich Mean Time", "ART": "Argentina Standard Time", "JST": "Japan Standard Time", "TMST": "Turkmenistan Summer Time", "AEST": "Australian Eastern Standard Time", "HNEG": "East Greenland Standard Time", "COST": "Colombia Summer Time", "MST": "Macau Standard Time", "AKST": "Alaska Standard Time", "WIT": "Eastern Indonesia Time", "PST": "Pacific Standard Time", "NZST": "New Zealand Standard Time", "IST": "India Standard Time", "ChST": "Chamorro Standard Time", "WAT": "West Africa Standard Time", "SRT": "Suriname Time", "BT": "Bhutan Time", "HAT": "Newfoundland Daylight Time", "HEEG": "East Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "HECU": "Cuba Daylight Time", "AWST": "Australian Western Standard Time", "AEDT": "Australian Eastern Daylight Time", "CHAST": "Chatham Standard Time", "WAST": "West Africa Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "JDT": "Japan Daylight Time", "HKST": "Hong Kong Summer Time", "WIB": "Western Indonesia Time", "WEZ": "Western European Standard Time", "SGT": "Singapore Standard Time", "MYT": "Malaysia Time", "ADT": "Atlantic Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "HKT": "Hong Kong Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "CDT": "Central Daylight Time", "MDT": "Macau Summer Time", "VET": "Venezuela Time", "∅∅∅": "Amazon Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "CST": "Central Standard Time", "PDT": "Pacific Daylight Time", "LHDT": "Lord Howe Daylight Time", "ACST": "Australian Central Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "EDT": "Eastern Daylight Time", "UYST": "Uruguay Summer Time", "LHST": "Lord Howe Standard Time", "MESZ": "Central European Summer Time", "AWDT": "Australian Western Daylight Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time"},
++ locale: "en_NZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "$", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsWide: []string{"am", "pm"},
++ timezones: map[string]string{"HEPMX": "HEPMX", "CLST": "CLST", "AWST": "AWST", "NZST": "NZST", "AST": "AST", "MYT": "MYT", "WART": "WART", "WIB": "WIB", "CST": "CST", "ADT": "ADT", "OESZ": "OESZ", "TMST": "TMST", "UYST": "UYST", "HENOMX": "HENOMX", "AEST": "AEST", "ARST": "ARST", "PST": "PST", "SGT": "SGT", "SAST": "SAST", "MEZ": "MEZ", "AKDT": "AKDT", "COST": "COST", "AEDT": "AEDT", "ACST": "ACST", "HNEG": "HNEG", "AWDT": "AWDT", "CHAST": "CHAST", "ChST": "ChST", "HAST": "HAST", "HADT": "HADT", "JDT": "JDT", "CHADT": "CHADT", "WAST": "WAST", "HNT": "HNT", "WIT": "WIT", "MDT": "MDT", "HEOG": "HEOG", "BT": "BT", "HNCU": "HNCU", "HECU": "HECU", "AKST": "AKST", "HAT": "HAT", "HKST": "HKST", "CLT": "CLT", "JST": "JST", "NZDT": "NZDT", "LHST": "LHST", "HNPMX": "HNPMX", "WEZ": "WEZ", "EDT": "EDT", "HNNOMX": "HNNOMX", "MST": "MST", "SRT": "SRT", "HEPM": "HEPM", "TMT": "TMT", "GMT": "GMT", "EAT": "EAT", "MESZ": "MESZ", "HEEG": "HEEG", "UYT": "UYT", "GYT": "GYT", "COT": "COT", "HKT": "HKT", "BOT": "BOT", "ECT": "ECT", "WITA": "WITA", "∅∅∅": "∅∅∅", "PDT": "PDT", "ACWDT": "ACWDT", "WAT": "WAT", "HNOG": "HNOG", "EST": "EST", "ART": "ART", "HNPM": "HNPM", "IST": "IST", "ACWST": "ACWST", "VET": "VET", "OEZ": "OEZ", "GFT": "GFT", "WARST": "WARST", "ACDT": "ACDT", "WESZ": "WESZ", "CAT": "CAT", "CDT": "CDT", "LHDT": "LHDT"},
+ }
+ }
+ 
+@@ -138,7 +117,7 @@ func (en *en_NZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_NZ) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_NZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_NZ) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_NZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_NZ) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +183,13 @@ func (en *en_NZ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_NZ' and handles both Whole and Real numbers based on 'v'
+ func (en *en_NZ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_NZ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_NZ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_NZ'
+@@ -278,56 +197,7 @@ func (en *en_NZ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_NZ'
+@@ -336,68 +206,7 @@ func (en *en_NZ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_NZ'
+@@ -455,17 +264,6 @@ func (en *en_NZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -474,19 +272,6 @@ func (en *en_NZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -495,13 +280,11 @@ func (en *en_NZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -509,13 +292,6 @@ func (en *en_NZ) FmtTimeShort(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -525,13 +301,11 @@ func (en *en_NZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -546,13 +320,6 @@ func (en *en_NZ) FmtTimeMedium(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -562,13 +329,11 @@ func (en *en_NZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -585,14 +350,6 @@ func (en *en_NZ) FmtTimeLong(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ b = append(b, tz...)
+ 
+@@ -604,13 +361,11 @@ func (en *en_NZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -627,14 +382,6 @@ func (en *en_NZ) FmtTimeFull(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ 
+ if btz, ok := en.timezones[tz]; ok {
+diff --git a/en_PG/en_PG.go b/en_PG/en_PG.go
+index 87f39d4..fab731b 100644
+--- a/en_PG/en_PG.go
++++ b/en_PG/en_PG.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_PG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_PG' locale
+ func New() locales.Translator {
+ return &en_PG{
+- locale: "en_PG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "K", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"GFT": "French Guiana Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "WEZ": "Western European Standard Time", "AWDT": "Australian Western Daylight Time", "CHAST": "Chatham Standard Time", "CHADT": "Chatham Daylight Time", "NZST": "New Zealand Standard Time", "VET": "Venezuela Time", "HNOG": "West Greenland Standard Time", "MESZ": "Central European Summer Time", "ARST": "Argentina Summer Time", "JST": "Japan Standard Time", "ACST": "Australian Central Standard Time", "COST": "Colombia Summer Time", "EDT": "Eastern Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HKT": "Hong Kong Standard Time", "LHDT": "Lord Howe Daylight Time", "CAT": "Central Africa Time", "ADT": "Atlantic Daylight Time", "UYST": "Uruguay Summer Time", "ACWDT": "Australian Central Western Daylight Time", "WITA": "Central Indonesia Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "ECT": "Ecuador Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HECU": "Cuba Daylight Time", "CST": "Central Standard Time", "AST": "Atlantic Standard Time", "LHST": "Lord Howe Standard Time", "SRT": "Suriname Time", "HAT": "Newfoundland Daylight Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "MEZ": "Central European Standard Time", "JDT": "Japan Daylight Time", "ACDT": "Australian Central Daylight Time", "COT": "Colombia Standard Time", "UYT": "Uruguay Standard Time", "ACWST": "Australian Central Western Standard Time", "CLT": "Chile Standard Time", "TMT": "Turkmenistan Standard Time", "MDT": "Macau Summer Time", "PST": "Pacific Standard Time", "TMST": "Turkmenistan Summer Time", "EAT": "East Africa Time", "WAST": "West Africa Summer Time", "MST": "Macau Standard Time", "CDT": "Central Daylight Time", "GYT": "Guyana Time", "AKST": "Alaska Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "BOT": "Bolivia Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "SGT": "Singapore Standard Time", "WIT": "Eastern Indonesia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CLST": "Chile Summer Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "WESZ": "Western European Summer Time", "SAST": "South Africa Standard Time", "ChST": "Chamorro Standard Time", "OESZ": "Eastern European Summer Time", "GMT": "Greenwich Mean Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "HKST": "Hong Kong Summer Time", "OEZ": "Eastern European Standard Time", "∅∅∅": "Peru Summer Time", "EST": "Eastern Standard Time", "MYT": "Malaysia Time", "HNT": "Newfoundland Standard Time", "AWST": "Australian Western Standard Time", "HEEG": "East Greenland Summer Time", "AKDT": "Alaska Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "HEOG": "West Greenland Summer Time", "PDT": "Pacific Daylight Time", "HNEG": "East Greenland Standard Time"},
++ locale: "en_PG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "K", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ARST": "ARST", "HNNOMX": "HNNOMX", "JST": "JST", "HEOG": "HEOG", "EDT": "EDT", "CLT": "CLT", "CLST": "CLST", "CDT": "CDT", "NZST": "NZST", "CHADT": "CHADT", "HNCU": "HNCU", "GMT": "GMT", "HEPM": "HEPM", "CHAST": "CHAST", "WAT": "WAT", "HKST": "HKST", "EAT": "EAT", "IST": "IST", "WAST": "WAST", "CST": "CST", "ADT": "ADT", "MEZ": "MEZ", "HEEG": "HEEG", "WESZ": "WESZ", "HNOG": "HNOG", "MST": "MST", "ART": "ART", "ACDT": "ACDT", "LHDT": "LHDT", "MYT": "MYT", "HNT": "HNT", "WART": "WART", "BOT": "BOT", "SRT": "SRT", "AEST": "AEST", "UYT": "UYT", "PST": "PST", "OEZ": "OEZ", "HAT": "HAT", "SAST": "SAST", "COST": "COST", "WIB": "WIB", "AWST": "AWST", "HAST": "HAST", "ACST": "ACST", "LHST": "LHST", "PDT": "PDT", "TMST": "TMST", "MDT": "MDT", "UYST": "UYST", "BT": "BT", "∅∅∅": "∅∅∅", "WITA": "WITA", "AST": "AST", "HADT": "HADT", "MESZ": "MESZ", "HNPM": "HNPM", "JDT": "JDT", "ACWDT": "ACWDT", "AKST": "AKST", "HENOMX": "HENOMX", "ACWST": "ACWST", "HEPMX": "HEPMX", "COT": "COT", "GFT": "GFT", "TMT": "TMT", "ECT": "ECT", "NZDT": "NZDT", "WEZ": "WEZ", "VET": "VET", "WIT": "WIT", "EST": "EST", "HKT": "HKT", "HNEG": "HNEG", "AWDT": "AWDT", "AEDT": "AEDT", "SGT": "SGT", "WARST": "WARST", "CAT": "CAT", "ChST": "ChST", "HECU": "HECU", "HNPMX": "HNPMX", "AKDT": "AKDT", "OESZ": "OESZ", "GYT": "GYT"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_PG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_PG) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_PG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_PG) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_PG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_PG) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_PG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_PG' and handles both Whole and Real numbers based on 'v'
+ func (en *en_PG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_PG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_PG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_PG'
+@@ -278,56 +195,7 @@ func (en *en_PG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_PG'
+@@ -336,84 +204,33 @@ func (en *en_PG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_PG'
++func (en *en_PG) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_PG'
+-func (en *en_PG) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_PG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_PG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_PG) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_PG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_PG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_PG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_PG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_PH/en_PH.go b/en_PH/en_PH.go
+index c2ac99d..7e0a7cd 100644
+--- a/en_PH/en_PH.go
++++ b/en_PH/en_PH.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_PH struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_PH' locale
+ func New() locales.Translator {
+ return &en_PH{
+- locale: "en_PH",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "₱", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"CHADT": "Chatham Daylight Time", "WARST": "Western Argentina Summer Time", "AWST": "Australian Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "HKT": "Hong Kong Standard Time", "NZDT": "New Zealand Daylight Time", "HEEG": "East Greenland Summer Time", "ACST": "Australian Central Standard Time", "ADT": "Atlantic Daylight Time", "PDT": "Pacific Daylight Time", "HAT": "Newfoundland Daylight Time", "AEDT": "Australian Eastern Daylight Time", "GYT": "Guyana Time", "HEOG": "West Greenland Summer Time", "HKST": "Hong Kong Summer Time", "MEZ": "Central European Standard Time", "MESZ": "Central European Summer Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "CLT": "Chile Standard Time", "UYST": "Uruguay Summer Time", "LHDT": "Lord Howe Daylight Time", "JDT": "Japan Daylight Time", "OEZ": "Eastern European Standard Time", "AKDT": "Alaska Daylight Time", "CST": "Central Standard Time", "SRT": "Suriname Time", "WESZ": "Western European Summer Time", "AEST": "Australian Eastern Standard Time", "CDT": "Central Daylight Time", "ACDT": "Australian Central Daylight Time", "WART": "Western Argentina Standard Time", "ART": "Argentina Standard Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "WAST": "West Africa Summer Time", "OESZ": "Eastern European Summer Time", "ECT": "Ecuador Time", "MYT": "Malaysia Time", "AST": "Atlantic Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "WIT": "Eastern Indonesia Time", "HNEG": "East Greenland Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "WEZ": "Western European Standard Time", "ACWDT": "Australian Central Western Daylight Time", "IST": "India Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "∅∅∅": "Amazon Summer Time", "JST": "Japan Standard Time", "EAT": "East Africa Time", "EST": "Eastern Standard Time", "MDT": "Macau Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "VET": "Venezuela Time", "SAST": "South Africa Standard Time", "UYT": "Uruguay Standard Time", "HNOG": "West Greenland Standard Time", "ChST": "Chamorro Standard Time", "TMST": "Turkmenistan Summer Time", "HECU": "Cuba Daylight Time", "EDT": "Eastern Daylight Time", "AKST": "Alaska Standard Time", "WIB": "Western Indonesia Time", "PST": "Pacific Standard Time", "HNT": "Newfoundland Standard Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "BT": "Bhutan Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "CLST": "Chile Summer Time", "COST": "Colombia Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "GMT": "Greenwich Mean Time", "MST": "Macau Standard Time", "ACWST": "Australian Central Western Standard Time", "WITA": "Central Indonesia Time", "NZST": "New Zealand Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CHAST": "Chatham Standard Time"},
++ locale: "en_PH",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "₱", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACWST": "ACWST", "WEZ": "WEZ", "GYT": "GYT", "HNEG": "HNEG", "OEZ": "OEZ", "WIT": "WIT", "BT": "BT", "PST": "PST", "WAST": "WAST", "WART": "WART", "HKT": "HKT", "ART": "ART", "AST": "AST", "HECU": "HECU", "HEPMX": "HEPMX", "EST": "EST", "EDT": "EDT", "MDT": "MDT", "ACWDT": "ACWDT", "UYT": "UYT", "HNOG": "HNOG", "WITA": "WITA", "CDT": "CDT", "HNPM": "HNPM", "AWST": "AWST", "SGT": "SGT", "AKDT": "AKDT", "HKST": "HKST", "GMT": "GMT", "HAST": "HAST", "HEEG": "HEEG", "HENOMX": "HENOMX", "JDT": "JDT", "UYST": "UYST", "AKST": "AKST", "CHADT": "CHADT", "WESZ": "WESZ", "HNT": "HNT", "COT": "COT", "CLST": "CLST", "ChST": "ChST", "AEST": "AEST", "PDT": "PDT", "NZDT": "NZDT", "MST": "MST", "COST": "COST", "HEOG": "HEOG", "ECT": "ECT", "ACST": "ACST", "MYT": "MYT", "JST": "JST", "∅∅∅": "∅∅∅", "TMT": "TMT", "WARST": "WARST", "TMST": "TMST", "CAT": "CAT", "CLT": "CLT", "WIB": "WIB", "ARST": "ARST", "VET": "VET", "HAT": "HAT", "LHST": "LHST", "WAT": "WAT", "SAST": "SAST", "NZST": "NZST", "CST": "CST", "AWDT": "AWDT", "LHDT": "LHDT", "IST": "IST", "HNCU": "HNCU", "MESZ": "MESZ", "ACDT": "ACDT", "HADT": "HADT", "MEZ": "MEZ", "GFT": "GFT", "SRT": "SRT", "HNNOMX": "HNNOMX", "AEDT": "AEDT", "OESZ": "OESZ", "ADT": "ADT", "BOT": "BOT", "EAT": "EAT", "HEPM": "HEPM", "CHAST": "CHAST", "HNPMX": "HNPMX"},
+ }
+ }
+ 
+@@ -112,8 +89,8 @@ func (en *en_PH) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_PH) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
++ nMod100 := math.Mod(n, 100)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +115,7 @@ func (en *en_PH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_PH) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_PH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_PH) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_PH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_PH) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_PH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_PH' and handles both Whole and Real numbers based on 'v'
+ func (en *en_PH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_PH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_PH) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_PH'
+@@ -278,56 +195,7 @@ func (en *en_PH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_PH'
+@@ -336,84 +204,33 @@ func (en *en_PH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_PH'
++func (en *en_PH) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_PH'
+-func (en *en_PH) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_PH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_PH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_PH) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_PH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_PH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_PH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_PH) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_PK/en_PK.go b/en_PK/en_PK.go
+index 7b9c3d7..4907463 100644
+--- a/en_PK/en_PK.go
++++ b/en_PK/en_PK.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_PK struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_PK' locale
+ func New() locales.Translator {
+ return &en_PK{
+- locale: "en_PK",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "Rs", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HNT": "Newfoundland Standard Time", "ACST": "Australian Central Standard Time", "WAT": "West Africa Standard Time", "COST": "Colombia Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "PDT": "Pacific Daylight Time", "AKST": "Alaska Standard Time", "WIB": "Western Indonesia Time", "MEZ": "Central European Standard Time", "BT": "Bhutan Time", "HNEG": "East Greenland Standard Time", "HEEG": "East Greenland Summer Time", "WARST": "Western Argentina Summer Time", "WITA": "Central Indonesia Time", "CHADT": "Chatham Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "HEOG": "West Greenland Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "HECU": "Cuba Daylight Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "JDT": "Japan Daylight Time", "ChST": "Chamorro Standard Time", "CAT": "Central Africa Time", "AEDT": "Australian Eastern Daylight Time", "JST": "Japan Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "WIT": "Eastern Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "HKT": "Hong Kong Standard Time", "NZDT": "New Zealand Daylight Time", "COT": "Colombia Standard Time", "EST": "Eastern Standard Time", "AKDT": "Alaska Daylight Time", "CHAST": "Chatham Standard Time", "OEZ": "Eastern European Standard Time", "SRT": "Suriname Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CLST": "Chile Summer Time", "WAST": "West Africa Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "GMT": "Greenwich Mean Time", "AST": "Atlantic Standard Time", "EAT": "East Africa Time", "CST": "Central Standard Time", "WESZ": "Western European Summer Time", "MESZ": "Central European Summer Time", "AEST": "Australian Eastern Standard Time", "SGT": "Singapore Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CDT": "Central Daylight Time", "WART": "Western Argentina Standard Time", "PST": "Pacific Standard Time", "CLT": "Chile Standard Time", "WEZ": "Western European Standard Time", "ART": "Argentina Standard Time", "AWST": "Australian Western Standard Time", "IST": "India Standard Time", "BOT": "Bolivia Time", "HNCU": "Cuba Standard Time", "GYT": "Guyana Time", "ADT": "Atlantic Daylight Time", "OESZ": "Eastern European Summer Time", "VET": "Venezuela Time", "AWDT": "Australian Western Daylight Time", "TMST": "Turkmenistan Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "EDT": "Eastern Daylight Time", "MYT": "Malaysia Time", "HKST": "Hong Kong Summer Time", "GFT": "French Guiana Time", "ECT": "Ecuador Time", "ACWST": "Australian Central Western Standard Time", "HAT": "Newfoundland Daylight Time", "NZST": "New Zealand Standard Time", "SAST": "South Africa Standard Time", "UYT": "Uruguay Standard Time", "UYST": "Uruguay Summer Time", "HNOG": "West Greenland Standard Time", "ACDT": "Australian Central Daylight Time", "∅∅∅": "Azores Summer Time", "ARST": "Argentina Summer Time", "TMT": "Turkmenistan Standard Time"},
++ locale: "en_PK",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "Rs", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsWide: []string{"am", "pm"},
++ timezones: map[string]string{"JST": "JST", "ACWDT": "ACWDT", "ACDT": "ACDT", "HENOMX": "HENOMX", "AWST": "AWST", "LHDT": "LHDT", "VET": "VET", "AKST": "AKST", "AKDT": "AKDT", "GYT": "GYT", "HNEG": "HNEG", "NZDT": "NZDT", "AEDT": "AEDT", "WESZ": "WESZ", "HECU": "HECU", "WAST": "WAST", "HEOG": "HEOG", "CLT": "CLT", "MDT": "MDT", "BOT": "BOT", "AWDT": "AWDT", "MESZ": "MESZ", "MYT": "MYT", "AEST": "AEST", "EST": "EST", "ADT": "ADT", "GMT": "GMT", "HADT": "HADT", "COT": "COT", "MST": "MST", "ART": "ART", "HNNOMX": "HNNOMX", "NZST": "NZST", "ACWST": "ACWST", "UYST": "UYST", "SGT": "SGT", "HNPMX": "HNPMX", "HAT": "HAT", "WARST": "WARST", "CAT": "CAT", "LHST": "LHST", "ARST": "ARST", "JDT": "JDT", "PST": "PST", "HNCU": "HNCU", "WAT": "WAT", "OEZ": "OEZ", "TMT": "TMT", "HAST": "HAST", "MEZ": "MEZ", "CHAST": "CHAST", "OESZ": "OESZ", "HNOG": "HNOG", "WITA": "WITA", "AST": "AST", "EAT": "EAT", "WART": "WART", "CLST": "CLST", "WIB": "WIB", "GFT": "GFT", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "HEPMX": "HEPMX", "HKST": "HKST", "CDT": "CDT", "SRT": "SRT", "HEEG": "HEEG", "IST": "IST", "PDT": "PDT", "UYT": "UYT", "SAST": "SAST", "HKT": "HKT", "ChST": "ChST", "HEPM": "HEPM", "HNPM": "HNPM", "BT": "BT", "WIT": "WIT", "CST": "CST", "ACST": "ACST", "WEZ": "WEZ", "COST": "COST", "EDT": "EDT", "TMST": "TMST", "ECT": "ECT", "HNT": "HNT"},
+ }
+ }
+ 
+@@ -112,8 +91,8 @@ func (en *en_PK) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_PK) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
++ nMod100 := math.Mod(n, 100)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +117,7 @@ func (en *en_PK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_PK) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_PK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_PK) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_PK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_PK) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +183,13 @@ func (en *en_PK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_PK' and handles both Whole and Real numbers based on 'v'
+ func (en *en_PK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_PK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_PK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_PK'
+@@ -278,56 +197,7 @@ func (en *en_PK) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_PK'
+@@ -336,68 +206,7 @@ func (en *en_PK) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_PK'
+@@ -405,17 +214,6 @@ func (en *en_PK) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -447,17 +245,6 @@ func (en *en_PK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -466,19 +253,6 @@ func (en *en_PK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -487,13 +261,11 @@ func (en *en_PK) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -501,13 +273,6 @@ func (en *en_PK) FmtTimeShort(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -517,13 +282,11 @@ func (en *en_PK) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -538,13 +301,6 @@ func (en *en_PK) FmtTimeMedium(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -554,13 +310,11 @@ func (en *en_PK) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -577,14 +331,6 @@ func (en *en_PK) FmtTimeLong(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ b = append(b, tz...)
+ 
+@@ -596,13 +342,11 @@ func (en *en_PK) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -619,14 +363,6 @@ func (en *en_PK) FmtTimeFull(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ 
+ if btz, ok := en.timezones[tz]; ok {
+diff --git a/en_PN/en_PN.go b/en_PN/en_PN.go
+index 77645e6..f4d2e15 100644
+--- a/en_PN/en_PN.go
++++ b/en_PN/en_PN.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_PN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_PN' locale
+ func New() locales.Translator {
+ return &en_PN{
+- locale: "en_PN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "$", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"MST": "Macau Standard Time", "UYT": "Uruguay Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HEOG": "West Greenland Summer Time", "∅∅∅": "Amazon Summer Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "ACDT": "Australian Central Daylight Time", "ACWST": "Australian Central Western Standard Time", "CHADT": "Chatham Daylight Time", "ECT": "Ecuador Time", "WIB": "Western Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "PST": "Pacific Standard Time", "HNT": "Newfoundland Standard Time", "HNEG": "East Greenland Standard Time", "WAT": "West Africa Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HECU": "Cuba Daylight Time", "COT": "Colombia Standard Time", "AST": "Atlantic Standard Time", "SRT": "Suriname Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHAST": "Chatham Standard Time", "ACST": "Australian Central Standard Time", "EAT": "East Africa Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "BT": "Bhutan Time", "WITA": "Central Indonesia Time", "CAT": "Central Africa Time", "HNCU": "Cuba Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "SAST": "South Africa Standard Time", "JST": "Japan Standard Time", "TMST": "Turkmenistan Summer Time", "COST": "Colombia Summer Time", "WESZ": "Western European Summer Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "HEEG": "East Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "WEZ": "Western European Standard Time", "MESZ": "Central European Summer Time", "LHDT": "Lord Howe Daylight Time", "CST": "Central Standard Time", "AEST": "Australian Eastern Standard Time", "CDT": "Central Daylight Time", "HKST": "Hong Kong Summer Time", "OESZ": "Eastern European Summer Time", "WART": "Western Argentina Standard Time", "GMT": "Greenwich Mean Time", "HEPMX": "Mexican Pacific Daylight Time", "EDT": "Eastern Daylight Time", "AWST": "Australian Western Standard Time", "NZDT": "New Zealand Daylight Time", "CLT": "Chile Standard Time", "JDT": "Japan Daylight Time", "HAT": "Newfoundland Daylight Time", "ChST": "Chamorro Standard Time", "SGT": "Singapore Standard Time", "ADT": "Atlantic Daylight Time", "WIT": "Eastern Indonesia Time", "WARST": "Western Argentina Summer Time", "HNOG": "West Greenland Standard Time", "ACWDT": "Australian Central Western Daylight Time", "ART": "Argentina Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "ARST": "Argentina Summer Time", "MEZ": "Central European Standard Time", "IST": "India Standard Time", "CLST": "Chile Summer Time", "OEZ": "Eastern European Standard Time", "VET": "Venezuela Time", "PDT": "Pacific Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HKT": "Hong Kong Standard Time", "NZST": "New Zealand Standard Time", "WAST": "West Africa Summer Time", "EST": "Eastern Standard Time", "AKST": "Alaska Standard Time"},
++ locale: "en_PN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "$", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"IST": "IST", "HECU": "HECU", "ADT": "ADT", "HADT": "HADT", "WAT": "WAT", "AST": "AST", "ACWST": "ACWST", "CHADT": "CHADT", "PST": "PST", "HNOG": "HNOG", "MESZ": "MESZ", "PDT": "PDT", "ACWDT": "ACWDT", "AEDT": "AEDT", "HNPMX": "HNPMX", "TMST": "TMST", "HAST": "HAST", "ECT": "ECT", "WIB": "WIB", "HNPM": "HNPM", "WEZ": "WEZ", "SGT": "SGT", "AKDT": "AKDT", "SAST": "SAST", "HKST": "HKST", "WITA": "WITA", "MEZ": "MEZ", "CHAST": "CHAST", "UYST": "UYST", "WARST": "WARST", "GYT": "GYT", "HEOG": "HEOG", "HEPMX": "HEPMX", "AKST": "AKST", "OEZ": "OEZ", "COT": "COT", "NZST": "NZST", "ChST": "ChST", "LHST": "LHST", "HNCU": "HNCU", "CST": "CST", "MST": "MST", "MDT": "MDT", "ART": "ART", "ACST": "ACST", "WESZ": "WESZ", "OESZ": "OESZ", "GFT": "GFT", "AWST": "AWST", "UYT": "UYT", "EST": "EST", "BOT": "BOT", "EAT": "EAT", "ACDT": "ACDT", "LHDT": "LHDT", "VET": "VET", "HKT": "HKT", "NZDT": "NZDT", "WIT": "WIT", "∅∅∅": "∅∅∅", "HAT": "HAT", "WART": "WART", "GMT": "GMT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "MYT": "MYT", "BT": "BT", "WAST": "WAST", "HNT": "HNT", "CLT": "CLT", "HEEG": "HEEG", "CAT": "CAT", "CLST": "CLST", "CDT": "CDT", "HNEG": "HNEG", "AWDT": "AWDT", "HEPM": "HEPM", "EDT": "EDT", "TMT": "TMT", "JST": "JST", "JDT": "JDT", "SRT": "SRT", "AEST": "AEST", "COST": "COST", "ARST": "ARST"},
+ }
+ }
+ 
+@@ -112,8 +89,8 @@ func (en *en_PN) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_PN) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
++ nMod10 := math.Mod(n, 10)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +115,7 @@ func (en *en_PN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_PN) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_PN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_PN) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_PN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_PN) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_PN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_PN' and handles both Whole and Real numbers based on 'v'
+ func (en *en_PN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_PN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_PN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_PN'
+@@ -278,56 +195,7 @@ func (en *en_PN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_PN'
+@@ -336,84 +204,33 @@ func (en *en_PN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_PN'
++func (en *en_PN) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_PN'
+-func (en *en_PN) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_PN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_PN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_PN) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_PR/en_PR.go b/en_PR/en_PR.go
+index f871dc7..671dca2 100644
+--- a/en_PR/en_PR.go
++++ b/en_PR/en_PR.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_PR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_PR' locale
+ func New() locales.Translator {
+ return &en_PR{
+- locale: "en_PR",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"COT": "Colombia Standard Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "EDT": "Eastern Daylight Time", "HKST": "Hong Kong Summer Time", "WITA": "Central Indonesia Time", "CLST": "Chile Summer Time", "ChST": "Chamorro Standard Time", "HNOG": "West Greenland Standard Time", "TMST": "Turkmenistan Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "SRT": "Suriname Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "WEZ": "Western European Standard Time", "HNEG": "East Greenland Standard Time", "BOT": "Bolivia Time", "EAT": "East Africa Time", "SGT": "Singapore Standard Time", "NZST": "New Zealand Standard Time", "WAT": "West Africa Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "ACWST": "Australian Central Western Standard Time", "HKT": "Hong Kong Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HEEG": "East Greenland Summer Time", "WAST": "West Africa Summer Time", "ACWDT": "Australian Central Western Daylight Time", "AEST": "Australian Eastern Standard Time", "AEDT": "Australian Eastern Daylight Time", "ADT": "Atlantic Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "ARST": "Argentina Summer Time", "HEOG": "West Greenland Summer Time", "PST": "Pacific Standard Time", "IST": "India Standard Time", "WART": "Western Argentina Standard Time", "MYT": "Malaysia Time", "VET": "Venezuela Time", "AST": "Atlantic Standard Time", "PDT": "Pacific Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "ECT": "Ecuador Time", "AWST": "Australian Western Standard Time", "∅∅∅": "Amazon Summer Time", "GMT": "Greenwich Mean Time", "EST": "Eastern Standard Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "GYT": "Guyana Time", "AWDT": "Australian Western Daylight Time", "CHADT": "Chatham Daylight Time", "LHDT": "Lord Howe Daylight Time", "CLT": "Chile Standard Time", "UYST": "Uruguay Summer Time", "BT": "Bhutan Time", "SAST": "South Africa Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "MST": "Macau Standard Time", "ART": "Argentina Standard Time", "WARST": "Western Argentina Summer Time", "WIB": "Western Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "NZDT": "New Zealand Daylight Time", "ACST": "Australian Central Standard Time", "OEZ": "Eastern European Standard Time", "OESZ": "Eastern European Summer Time", "UYT": "Uruguay Standard Time", "MEZ": "Central European Standard Time", "GFT": "French Guiana Time", "AKST": "Alaska Standard Time", "CDT": "Central Daylight Time", "JDT": "Japan Daylight Time", "TMT": "Turkmenistan Standard Time", "ACDT": "Australian Central Daylight Time", "CAT": "Central Africa Time", "CHAST": "Chatham Standard Time", "MESZ": "Central European Summer Time", "LHST": "Lord Howe Standard Time", "JST": "Japan Standard Time", "MDT": "Macau Summer Time", "WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time"},
++ locale: "en_PR",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"UYT": "UYT", "ACWST": "ACWST", "WEZ": "WEZ", "WESZ": "WESZ", "OESZ": "OESZ", "GFT": "GFT", "HNT": "HNT", "ChST": "ChST", "MYT": "MYT", "PST": "PST", "BT": "BT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "COT": "COT", "HAST": "HAST", "MESZ": "MESZ", "HEEG": "HEEG", "HNPM": "HNPM", "TMT": "TMT", "EAT": "EAT", "LHST": "LHST", "CHAST": "CHAST", "WIB": "WIB", "NZST": "NZST", "AST": "AST", "HADT": "HADT", "JST": "JST", "AEDT": "AEDT", "MST": "MST", "ARST": "ARST", "AWDT": "AWDT", "HEPM": "HEPM", "JDT": "JDT", "CHADT": "CHADT", "AKST": "AKST", "HAT": "HAT", "ART": "ART", "HNOG": "HNOG", "TMST": "TMST", "COST": "COST", "ADT": "ADT", "BOT": "BOT", "ACST": "ACST", "LHDT": "LHDT", "ACWDT": "ACWDT", "VET": "VET", "HKT": "HKT", "MDT": "MDT", "CAT": "CAT", "UYST": "UYST", "EST": "EST", "WITA": "WITA", "GMT": "GMT", "∅∅∅": "∅∅∅", "SGT": "SGT", "WAST": "WAST", "MEZ": "MEZ", "HNNOMX": "HNNOMX", "AWST": "AWST", "IST": "IST", "WIT": "WIT", "EDT": "EDT", "HKST": "HKST", "SRT": "SRT", "HECU": "HECU", "OEZ": "OEZ", "ACDT": "ACDT", "WAT": "WAT", "WART": "WART", "SAST": "SAST", "CLT": "CLT", "NZDT": "NZDT", "HNEG": "HNEG", "PDT": "PDT", "AEST": "AEST", "WARST": "WARST", "CLST": "CLST", "CDT": "CDT", "HENOMX": "HENOMX", "AKDT": "AKDT", "ECT": "ECT", "HNCU": "HNCU", "GYT": "GYT", "HEOG": "HEOG", "CST": "CST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_PR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_PR) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_PR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_PR) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_PR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_PR) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_PR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_PR' and handles both Whole and Real numbers based on 'v'
+ func (en *en_PR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_PR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_PR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_PR'
+@@ -278,56 +195,7 @@ func (en *en_PR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_PR'
+@@ -336,68 +204,7 @@ func (en *en_PR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_PR'
+@@ -405,15 +212,15 @@ func (en *en_PR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x2f}...)
++ b = strconv.AppendInt(b, int64(t.Month()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +231,14 @@ func (en *en_PR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
++ b = append(b, []byte{0x20}...)
++ b = append(b, en.monthsAbbreviated[t.Month()]...)
++ b = append(b, []byte{0x2c}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +254,14 @@ func (en *en_PR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +279,15 @@ func (en *en_PR) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,13 +303,11 @@ func (en *en_PR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -497,13 +315,6 @@ func (en *en_PR) FmtTimeShort(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -513,13 +324,11 @@ func (en *en_PR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -534,13 +343,6 @@ func (en *en_PR) FmtTimeMedium(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -550,13 +352,11 @@ func (en *en_PR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -573,14 +373,6 @@ func (en *en_PR) FmtTimeLong(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ b = append(b, tz...)
+ 
+@@ -592,13 +384,11 @@ func (en *en_PR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -615,14 +405,6 @@ func (en *en_PR) FmtTimeFull(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ 
+ if btz, ok := en.timezones[tz]; ok {
+diff --git a/en_PW/en_PW.go b/en_PW/en_PW.go
+index ef217cb..c9b5b4e 100644
+--- a/en_PW/en_PW.go
++++ b/en_PW/en_PW.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_PW struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_PW' locale
+ func New() locales.Translator {
+ return &en_PW{
+- locale: "en_PW",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"TMST": "Turkmenistan Summer Time", "EAT": "East Africa Time", "WAST": "West Africa Summer Time", "AKST": "Alaska Standard Time", "HAT": "Newfoundland Daylight Time", "PDT": "Pacific Daylight Time", "GFT": "French Guiana Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "WEZ": "Western European Standard Time", "HKST": "Hong Kong Summer Time", "SAST": "South Africa Standard Time", "UYST": "Uruguay Summer Time", "SRT": "Suriname Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MESZ": "Central European Summer Time", "OESZ": "Eastern European Summer Time", "CST": "Central Standard Time", "MYT": "Malaysia Time", "UYT": "Uruguay Standard Time", "HNT": "Newfoundland Standard Time", "ART": "Argentina Standard Time", "WARST": "Western Argentina Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "HEOG": "West Greenland Summer Time", "AEST": "Australian Eastern Standard Time", "CHAST": "Chatham Standard Time", "MEZ": "Central European Standard Time", "IST": "India Standard Time", "CLST": "Chile Summer Time", "HEEG": "East Greenland Summer Time", "AST": "Atlantic Standard Time", "ACWST": "Australian Central Western Standard Time", "CHADT": "Chatham Daylight Time", "BT": "Bhutan Time", "CLT": "Chile Standard Time", "∅∅∅": "Amazon Summer Time", "WAT": "West Africa Standard Time", "MST": "Macau Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "WIT": "Eastern Indonesia Time", "ChST": "Chamorro Standard Time", "HNEG": "East Greenland Standard Time", "EST": "Eastern Standard Time", "AKDT": "Alaska Daylight Time", "COST": "Colombia Summer Time", "CDT": "Central Daylight Time", "WIB": "Western Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHDT": "Lord Howe Daylight Time", "ACST": "Australian Central Standard Time", "MDT": "Macau Summer Time", "LHST": "Lord Howe Standard Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "OEZ": "Eastern European Standard Time", "ECT": "Ecuador Time", "GMT": "Greenwich Mean Time", "HECU": "Cuba Daylight Time", "NZDT": "New Zealand Daylight Time", "HNCU": "Cuba Standard Time", "GYT": "Guyana Time", "PST": "Pacific Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AEDT": "Australian Eastern Daylight Time", "NZST": "New Zealand Standard Time", "TMT": "Turkmenistan Standard Time", "CAT": "Central Africa Time", "HNPMX": "Mexican Pacific Standard Time", "ADT": "Atlantic Daylight Time", "ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "JST": "Japan Standard Time", "SGT": "Singapore Standard Time", "EDT": "Eastern Daylight Time", "WITA": "Central Indonesia Time", "AWDT": "Australian Western Daylight Time", "JDT": "Japan Daylight Time", "WART": "Western Argentina Standard Time", "HNOG": "West Greenland Standard Time", "AWST": "Australian Western Standard Time"},
++ locale: "en_PW",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HKT": "HKT", "MDT": "MDT", "SRT": "SRT", "ACWDT": "ACWDT", "WESZ": "WESZ", "HEOG": "HEOG", "HNNOMX": "HNNOMX", "CHAST": "CHAST", "PST": "PST", "COST": "COST", "AST": "AST", "ARST": "ARST", "ACST": "ACST", "UYT": "UYT", "UYST": "UYST", "WAT": "WAT", "WAST": "WAST", "AKDT": "AKDT", "CST": "CST", "WIB": "WIB", "ART": "ART", "ACDT": "ACDT", "LHST": "LHST", "HNPM": "HNPM", "JST": "JST", "AKST": "AKST", "OESZ": "OESZ", "GFT": "GFT", "ADT": "ADT", "HAST": "HAST", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "WIT": "WIT", "ECT": "ECT", "MYT": "MYT", "SAST": "SAST", "GYT": "GYT", "EST": "EST", "CAT": "CAT", "CLST": "CLST", "HADT": "HADT", "HENOMX": "HENOMX", "SGT": "SGT", "HEPMX": "HEPMX", "WART": "WART", "NZST": "NZST", "COT": "COT", "TMT": "TMT", "NZDT": "NZDT", "ChST": "ChST", "JDT": "JDT", "CHADT": "CHADT", "VET": "VET", "HAT": "HAT", "CLT": "CLT", "MST": "MST", "AWDT": "AWDT", "IST": "IST", "HECU": "HECU", "EDT": "EDT", "CDT": "CDT", "HNEG": "HNEG", "HEEG": "HEEG", "LHDT": "LHDT", "HEPM": "HEPM", "HNCU": "HNCU", "BT": "BT", "HNPMX": "HNPMX", "WARST": "WARST", "HKST": "HKST", "ACWST": "ACWST", "BOT": "BOT", "PDT": "PDT", "WEZ": "WEZ", "HNT": "HNT", "TMST": "TMST", "WITA": "WITA", "OEZ": "OEZ", "HNOG": "HNOG", "GMT": "GMT", "EAT": "EAT", "MEZ": "MEZ", "AWST": "AWST", "AEST": "AEST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_PW) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_PW) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_PW) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_PW) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_PW) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_PW) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_PW) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_PW' and handles both Whole and Real numbers based on 'v'
+ func (en *en_PW) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_PW' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_PW) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_PW'
+@@ -278,56 +195,7 @@ func (en *en_PW) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_PW'
+@@ -336,84 +204,33 @@ func (en *en_PW) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_PW'
++func (en *en_PW) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_PW'
+-func (en *en_PW) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_PW) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_PW) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_PW) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_PW) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_PW) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_PW) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_PW) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_RW/en_RW.go b/en_RW/en_RW.go
+index 8dc9746..8aeaf25 100644
+--- a/en_RW/en_RW.go
++++ b/en_RW/en_RW.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_RW struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_RW' locale
+ func New() locales.Translator {
+ return &en_RW{
+- locale: "en_RW",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"JDT": "Japan Daylight Time", "OEZ": "Eastern European Standard Time", "ECT": "Ecuador Time", "MDT": "Macau Summer Time", "VET": "Venezuela Time", "HECU": "Cuba Daylight Time", "ACWST": "Australian Central Western Standard Time", "HNOG": "West Greenland Standard Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "ACDT": "Australian Central Daylight Time", "PST": "Pacific Standard Time", "HNT": "Newfoundland Standard Time", "ARST": "Argentina Summer Time", "WITA": "Central Indonesia Time", "UYT": "Uruguay Standard Time", "AKST": "Alaska Standard Time", "AST": "Atlantic Standard Time", "GYT": "Guyana Time", "HADT": "Hawaii-Aleutian Daylight Time", "SRT": "Suriname Time", "OESZ": "Eastern European Summer Time", "WESZ": "Western European Summer Time", "CHADT": "Chatham Daylight Time", "WARST": "Western Argentina Summer Time", "SGT": "Singapore Standard Time", "AKDT": "Alaska Daylight Time", "HKT": "Hong Kong Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZST": "New Zealand Standard Time", "HEOG": "West Greenland Summer Time", "MESZ": "Central European Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HNCU": "Cuba Standard Time", "BT": "Bhutan Time", "AWDT": "Australian Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "ChST": "Chamorro Standard Time", "COT": "Colombia Standard Time", "CST": "Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "JST": "Japan Standard Time", "WAST": "West Africa Summer Time", "GMT": "Greenwich Mean Time", "EST": "Eastern Standard Time", "EDT": "Eastern Daylight Time", "MST": "Macau Standard Time", "TMST": "Turkmenistan Summer Time", "ACST": "Australian Central Standard Time", "CAT": "Central Africa Time", "WIB": "Western Indonesia Time", "HKST": "Hong Kong Summer Time", "LHST": "Lord Howe Standard Time", "ACWDT": "Australian Central Western Daylight Time", "ART": "Argentina Standard Time", "∅∅∅": "Amazon Summer Time", "HNEG": "East Greenland Standard Time", "GFT": "French Guiana Time", "WART": "Western Argentina Standard Time", "UYST": "Uruguay Summer Time", "CDT": "Central Daylight Time", "AWST": "Australian Western Standard Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "IST": "India Standard Time", "HEEG": "East Greenland Summer Time", "EAT": "East Africa Time", "PDT": "Pacific Daylight Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "MEZ": "Central European Standard Time", "LHDT": "Lord Howe Daylight Time", "BOT": "Bolivia Time", "WAT": "West Africa Standard Time", "COST": "Colombia Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "WIT": "Eastern Indonesia Time", "AEDT": "Australian Eastern Daylight Time", "TMT": "Turkmenistan Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "ADT": "Atlantic Daylight Time", "MYT": "Malaysia Time", "WEZ": "Western European Standard Time"},
++ locale: "en_RW",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AST": "AST", "BOT": "BOT", "SRT": "SRT", "AWST": "AWST", "MYT": "MYT", "AEDT": "AEDT", "HAT": "HAT", "COT": "COT", "EST": "EST", "EAT": "EAT", "HEPM": "HEPM", "ACWST": "ACWST", "PST": "PST", "CAT": "CAT", "ART": "ART", "JST": "JST", "SGT": "SGT", "WAT": "WAT", "WAST": "WAST", "GFT": "GFT", "CDT": "CDT", "MST": "MST", "HENOMX": "HENOMX", "ACDT": "ACDT", "HKST": "HKST", "CST": "CST", "AKDT": "AKDT", "NZST": "NZST", "HADT": "HADT", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "OESZ": "OESZ", "TMT": "TMT", "WITA": "WITA", "ACST": "ACST", "HEPMX": "HEPMX", "AKST": "AKST", "COST": "COST", "ECT": "ECT", "NZDT": "NZDT", "ARST": "ARST", "HAST": "HAST", "AWDT": "AWDT", "LHDT": "LHDT", "HNCU": "HNCU", "WESZ": "WESZ", "WART": "WART", "TMST": "TMST", "ADT": "ADT", "LHST": "LHST", "CHAST": "CHAST", "WIT": "WIT", "CLST": "CLST", "GMT": "GMT", "MESZ": "MESZ", "HNEG": "HNEG", "IST": "IST", "BT": "BT", "GYT": "GYT", "HEEG": "HEEG", "AEST": "AEST", "UYT": "UYT", "∅∅∅": "∅∅∅", "VET": "VET", "HNOG": "HNOG", "HEOG": "HEOG", "MEZ": "MEZ", "HNT": "HNT", "WIB": "WIB", "JDT": "JDT", "CHADT": "CHADT", "UYST": "UYST", "HNPMX": "HNPMX", "WARST": "WARST", "MDT": "MDT", "PDT": "PDT", "HECU": "HECU", "WEZ": "WEZ", "OEZ": "OEZ", "SAST": "SAST", "ACWDT": "ACWDT", "EDT": "EDT", "HKT": "HKT", "CLT": "CLT", "ChST": "ChST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_RW) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_RW) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_RW) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_RW) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_RW) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_RW) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_RW) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_RW' and handles both Whole and Real numbers based on 'v'
+ func (en *en_RW) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_RW' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_RW) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_RW'
+@@ -278,56 +195,7 @@ func (en *en_RW) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_RW'
+@@ -336,84 +204,33 @@ func (en *en_RW) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_RW'
++func (en *en_RW) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_RW'
+-func (en *en_RW) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_RW) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_RW) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_RW) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_SB/en_SB.go b/en_SB/en_SB.go
+index c962097..2e24b97 100644
+--- a/en_SB/en_SB.go
++++ b/en_SB/en_SB.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_SB struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_SB' locale
+ func New() locales.Translator {
+ return &en_SB{
+- locale: "en_SB",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "$", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"WART": "Western Argentina Standard Time", "GMT": "Greenwich Mean Time", "MST": "Macau Standard Time", "ADT": "Atlantic Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "CLT": "Chile Standard Time", "ACDT": "Australian Central Daylight Time", "OESZ": "Eastern European Summer Time", "MESZ": "Central European Summer Time", "HNEG": "East Greenland Standard Time", "ChST": "Chamorro Standard Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "SRT": "Suriname Time", "HKT": "Hong Kong Standard Time", "WAT": "West Africa Standard Time", "IST": "India Standard Time", "OEZ": "Eastern European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "PST": "Pacific Standard Time", "PDT": "Pacific Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "AST": "Atlantic Standard Time", "GYT": "Guyana Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "HKST": "Hong Kong Summer Time", "TMST": "Turkmenistan Summer Time", "MDT": "Macau Summer Time", "HEEG": "East Greenland Summer Time", "CDT": "Central Daylight Time", "HNOG": "West Greenland Standard Time", "AWDT": "Australian Western Daylight Time", "NZST": "New Zealand Standard Time", "HEOG": "West Greenland Summer Time", "CST": "Central Standard Time", "JST": "Japan Standard Time", "GFT": "French Guiana Time", "TMT": "Turkmenistan Standard Time", "ARST": "Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "∅∅∅": "Amazon Summer Time", "WARST": "Western Argentina Summer Time", "UYT": "Uruguay Standard Time", "SAST": "South Africa Standard Time", "EAT": "East Africa Time", "WAST": "West Africa Summer Time", "HAT": "Newfoundland Daylight Time", "LHST": "Lord Howe Standard Time", "MEZ": "Central European Standard Time", "ART": "Argentina Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "EST": "Eastern Standard Time", "EDT": "Eastern Daylight Time", "WIB": "Western Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "BT": "Bhutan Time", "COT": "Colombia Standard Time", "ACST": "Australian Central Standard Time", "CAT": "Central Africa Time", "HECU": "Cuba Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CHAST": "Chatham Standard Time", "BOT": "Bolivia Time", "CHADT": "Chatham Daylight Time", "CLST": "Chile Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "ACWST": "Australian Central Western Standard Time", "NZDT": "New Zealand Daylight Time", "JDT": "Japan Daylight Time", "AKST": "Alaska Standard Time", "HNT": "Newfoundland Standard Time", "AWST": "Australian Western Standard Time", "LHDT": "Lord Howe Daylight Time", "WITA": "Central Indonesia Time", "AEST": "Australian Eastern Standard Time", "ECT": "Ecuador Time", "COST": "Colombia Summer Time", "WIT": "Eastern Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "WEZ": "Western European Standard Time"},
++ locale: "en_SB",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "$", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CAT": "CAT", "WITA": "WITA", "WEZ": "WEZ", "HECU": "HECU", "HNOG": "HNOG", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "CHAST": "CHAST", "MST": "MST", "ACST": "ACST", "HNPM": "HNPM", "JDT": "JDT", "COST": "COST", "HNEG": "HNEG", "BT": "BT", "HNPMX": "HNPMX", "SGT": "SGT", "WAST": "WAST", "ARST": "ARST", "SRT": "SRT", "EAT": "EAT", "AWST": "AWST", "IST": "IST", "HEPMX": "HEPMX", "ADT": "ADT", "AEDT": "AEDT", "HAT": "HAT", "SAST": "SAST", "HKT": "HKT", "CDT": "CDT", "MYT": "MYT", "AEST": "AEST", "UYST": "UYST", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "GYT": "GYT", "ECT": "ECT", "NZDT": "NZDT", "MEZ": "MEZ", "GMT": "GMT", "JST": "JST", "PST": "PST", "AKST": "AKST", "AKDT": "AKDT", "TMT": "TMT", "TMST": "TMST", "WIB": "WIB", "HEPM": "HEPM", "BOT": "BOT", "CST": "CST", "WESZ": "WESZ", "GFT": "GFT", "HNT": "HNT", "COT": "COT", "HAST": "HAST", "ACWST": "ACWST", "MDT": "MDT", "ART": "ART", "EDT": "EDT", "ACWDT": "ACWDT", "PDT": "PDT", "HKST": "HKST", "AST": "AST", "HENOMX": "HENOMX", "LHDT": "LHDT", "WART": "WART", "NZST": "NZST", "HEEG": "HEEG", "CHADT": "CHADT", "UYT": "UYT", "VET": "VET", "WAT": "WAT", "HEOG": "HEOG", "HADT": "HADT", "LHST": "LHST", "OESZ": "OESZ", "WIT": "WIT", "EST": "EST", "CLT": "CLT", "ACDT": "ACDT", "OEZ": "OEZ", "WARST": "WARST", "CLST": "CLST", "ChST": "ChST", "MESZ": "MESZ"},
+ }
+ }
+ 
+@@ -112,8 +89,8 @@ func (en *en_SB) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_SB) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
++ nMod10 := math.Mod(n, 10)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +115,7 @@ func (en *en_SB) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_SB) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_SB) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_SB) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_SB) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_SB) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_SB) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_SB' and handles both Whole and Real numbers based on 'v'
+ func (en *en_SB) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_SB' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_SB) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_SB'
+@@ -278,56 +195,7 @@ func (en *en_SB) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_SB'
+@@ -336,84 +204,33 @@ func (en *en_SB) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_SB'
++func (en *en_SB) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_SB'
+-func (en *en_SB) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_SB) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_SB) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_SB) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_SB) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_SB) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_SB) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_SB) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_SC/en_SC.go b/en_SC/en_SC.go
+index ffe570a..9c67882 100644
+--- a/en_SC/en_SC.go
++++ b/en_SC/en_SC.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_SC struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_SC' locale
+ func New() locales.Translator {
+ return &en_SC{
+- locale: "en_SC",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"JST": "Japan Standard Time", "GFT": "French Guiana Time", "WAT": "West Africa Standard Time", "GMT": "Greenwich Mean Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HNCU": "Cuba Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "PST": "Pacific Standard Time", "CHADT": "Chatham Daylight Time", "OEZ": "Eastern European Standard Time", "∅∅∅": "Peru Summer Time", "CAT": "Central Africa Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "AWST": "Australian Western Standard Time", "CLST": "Chile Summer Time", "MDT": "Macau Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "AST": "Atlantic Standard Time", "CDT": "Central Daylight Time", "WIT": "Eastern Indonesia Time", "ACWST": "Australian Central Western Standard Time", "TMT": "Turkmenistan Standard Time", "WAST": "West Africa Summer Time", "WARST": "Western Argentina Summer Time", "HNPMX": "Mexican Pacific Standard Time", "EDT": "Eastern Daylight Time", "UYST": "Uruguay Summer Time", "BT": "Bhutan Time", "PDT": "Pacific Daylight Time", "HKST": "Hong Kong Summer Time", "ECT": "Ecuador Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "COT": "Colombia Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "WEZ": "Western European Standard Time", "NZST": "New Zealand Standard Time", "IST": "India Standard Time", "ACDT": "Australian Central Daylight Time", "AKDT": "Alaska Daylight Time", "ADT": "Atlantic Daylight Time", "HNOG": "West Greenland Standard Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "MESZ": "Central European Summer Time", "HEEG": "East Greenland Summer Time", "AKST": "Alaska Standard Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "BOT": "Bolivia Time", "SRT": "Suriname Time", "HKT": "Hong Kong Standard Time", "AEDT": "Australian Eastern Daylight Time", "GYT": "Guyana Time", "ACWDT": "Australian Central Western Daylight Time", "LHST": "Lord Howe Standard Time", "NZDT": "New Zealand Daylight Time", "CLT": "Chile Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "WART": "Western Argentina Standard Time", "HECU": "Cuba Daylight Time", "ChST": "Chamorro Standard Time", "CST": "Central Standard Time", "WIB": "Western Indonesia Time", "JDT": "Japan Daylight Time", "LHDT": "Lord Howe Daylight Time", "SAST": "South Africa Standard Time", "OESZ": "Eastern European Summer Time", "MST": "Macau Standard Time", "ART": "Argentina Standard Time", "TMST": "Turkmenistan Summer Time", "COST": "Colombia Summer Time", "AEST": "Australian Eastern Standard Time", "HNEG": "East Greenland Standard Time", "HEOG": "West Greenland Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "ACST": "Australian Central Standard Time", "EST": "Eastern Standard Time", "MYT": "Malaysia Time", "UYT": "Uruguay Standard Time", "CHAST": "Chatham Standard Time", "MEZ": "Central European Standard Time", "EAT": "East Africa Time", "WITA": "Central Indonesia Time"},
++ locale: "en_SC",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HAT": "HAT", "∅∅∅": "∅∅∅", "ARST": "ARST", "HNEG": "HNEG", "HEPMX": "HEPMX", "HECU": "HECU", "OESZ": "OESZ", "ADT": "ADT", "LHST": "LHST", "IST": "IST", "BT": "BT", "COT": "COT", "COST": "COST", "NZDT": "NZDT", "HENOMX": "HENOMX", "AEDT": "AEDT", "CLT": "CLT", "MDT": "MDT", "LHDT": "LHDT", "HEPM": "HEPM", "WEZ": "WEZ", "PDT": "PDT", "HNPMX": "HNPMX", "EDT": "EDT", "NZST": "NZST", "ART": "ART", "HNNOMX": "HNNOMX", "MYT": "MYT", "UYST": "UYST", "SGT": "SGT", "HKST": "HKST", "CAT": "CAT", "WIB": "WIB", "MST": "MST", "MESZ": "MESZ", "JST": "JST", "HKT": "HKT", "WITA": "WITA", "ChST": "ChST", "HEOG": "HEOG", "ACST": "ACST", "HEEG": "HEEG", "PST": "PST", "MEZ": "MEZ", "VET": "VET", "GFT": "GFT", "SAST": "SAST", "EST": "EST", "TMT": "TMT", "AST": "AST", "BOT": "BOT", "HNCU": "HNCU", "AKDT": "AKDT", "JDT": "JDT", "AEST": "AEST", "HNT": "HNT", "GYT": "GYT", "CLST": "CLST", "GMT": "GMT", "SRT": "SRT", "ACDT": "ACDT", "CHAST": "CHAST", "CHADT": "CHADT", "ACWDT": "ACWDT", "WAST": "WAST", "WIT": "WIT", "HADT": "HADT", "WART": "WART", "CDT": "CDT", "EAT": "EAT", "WESZ": "WESZ", "OEZ": "OEZ", "CST": "CST", "AWST": "AWST", "HNOG": "HNOG", "ACWST": "ACWST", "HAST": "HAST", "UYT": "UYT", "WAT": "WAT", "AKST": "AKST", "WARST": "WARST", "TMST": "TMST", "ECT": "ECT", "AWDT": "AWDT", "HNPM": "HNPM"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_SC) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_SC) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_SC) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_SC) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_SC) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_SC) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_SC) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_SC' and handles both Whole and Real numbers based on 'v'
+ func (en *en_SC) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_SC' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_SC) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_SC'
+@@ -278,56 +195,7 @@ func (en *en_SC) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_SC'
+@@ -336,84 +204,33 @@ func (en *en_SC) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_SC'
++func (en *en_SC) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_SC'
+-func (en *en_SC) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_SC) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_SC) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_SC) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_SD/en_SD.go b/en_SD/en_SD.go
+index d90deea..5f92139 100644
+--- a/en_SD/en_SD.go
++++ b/en_SD/en_SD.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_SD struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_SD' locale
+ func New() locales.Translator {
+ return &en_SD{
+- locale: "en_SD",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "MEZ": "Central European Standard Time", "GFT": "French Guiana Time", "HECU": "Cuba Daylight Time", "EST": "Eastern Standard Time", "GMT": "Greenwich Mean Time", "UYST": "Uruguay Summer Time", "AEDT": "Australian Eastern Daylight Time", "NZST": "New Zealand Standard Time", "JST": "Japan Standard Time", "TMT": "Turkmenistan Standard Time", "TMST": "Turkmenistan Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "AKDT": "Alaska Daylight Time", "HNOG": "West Greenland Standard Time", "AWDT": "Australian Western Daylight Time", "MYT": "Malaysia Time", "AKST": "Alaska Standard Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "ADT": "Atlantic Daylight Time", "UYT": "Uruguay Standard Time", "EDT": "Eastern Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "HNT": "Newfoundland Standard Time", "PDT": "Pacific Daylight Time", "ACWST": "Australian Central Western Standard Time", "AEST": "Australian Eastern Standard Time", "CHADT": "Chatham Daylight Time", "OEZ": "Eastern European Standard Time", "CHAST": "Chatham Standard Time", "NZDT": "New Zealand Daylight Time", "EAT": "East Africa Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "HNEG": "East Greenland Standard Time", "ART": "Argentina Standard Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time", "CDT": "Central Daylight Time", "VET": "Venezuela Time", "WEZ": "Western European Standard Time", "WESZ": "Western European Summer Time", "WITA": "Central Indonesia Time", "BOT": "Bolivia Time", "AST": "Atlantic Standard Time", "CLST": "Chile Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "SRT": "Suriname Time", "WIT": "Eastern Indonesia Time", "AWST": "Australian Western Standard Time", "MESZ": "Central European Summer Time", "SAST": "South Africa Standard Time", "ChST": "Chamorro Standard Time", "CAT": "Central Africa Time", "WAT": "West Africa Standard Time", "HAT": "Newfoundland Daylight Time", "WART": "Western Argentina Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "CST": "Central Standard Time", "GYT": "Guyana Time", "HEOG": "West Greenland Summer Time", "PST": "Pacific Standard Time", "HKST": "Hong Kong Summer Time", "CLT": "Chile Standard Time", "ACDT": "Australian Central Daylight Time", "ECT": "Ecuador Time", "BT": "Bhutan Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEEG": "East Greenland Summer Time", "OESZ": "Eastern European Summer Time", "WAST": "West Africa Summer Time", "ACWDT": "Australian Central Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "JDT": "Japan Daylight Time", "∅∅∅": "Amazon Summer Time", "ACST": "Australian Central Standard Time", "COT": "Colombia Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "WIB": "Western Indonesia Time"},
++ locale: "en_SD",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WAT": "WAT", "GFT": "GFT", "EST": "EST", "MST": "MST", "HADT": "HADT", "WEZ": "WEZ", "LHST": "LHST", "HNCU": "HNCU", "HKT": "HKT", "SRT": "SRT", "SGT": "SGT", "AKST": "AKST", "SAST": "SAST", "COST": "COST", "CLST": "CLST", "WITA": "WITA", "HNT": "HNT", "ECT": "ECT", "HAST": "HAST", "HNEG": "HNEG", "HENOMX": "HENOMX", "CHAST": "CHAST", "UYST": "UYST", "OEZ": "OEZ", "GYT": "GYT", "CLT": "CLT", "BOT": "BOT", "HEEG": "HEEG", "HEOG": "HEOG", "HNPMX": "HNPMX", "HAT": "HAT", "HNOG": "HNOG", "EAT": "EAT", "MYT": "MYT", "WESZ": "WESZ", "ADT": "ADT", "VET": "VET", "WAST": "WAST", "AKDT": "AKDT", "OESZ": "OESZ", "EDT": "EDT", "ART": "ART", "PST": "PST", "ACWDT": "ACWDT", "TMT": "TMT", "ACDT": "ACDT", "CDT": "CDT", "NZDT": "NZDT", "AST": "AST", "IST": "IST", "WARST": "WARST", "CAT": "CAT", "ARST": "ARST", "UYT": "UYT", "CHADT": "CHADT", "BT": "BT", "WART": "WART", "∅∅∅": "∅∅∅", "MEZ": "MEZ", "LHDT": "LHDT", "AWDT": "AWDT", "HEPM": "HEPM", "JDT": "JDT", "AEST": "AEST", "CST": "CST", "GMT": "GMT", "ACST": "ACST", "WIT": "WIT", "MDT": "MDT", "WIB": "WIB", "JST": "JST", "HNPM": "HNPM", "ACWST": "ACWST", "AEDT": "AEDT", "HEPMX": "HEPMX", "COT": "COT", "NZST": "NZST", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "HECU": "HECU", "HKST": "HKST", "TMST": "TMST", "ChST": "ChST", "AWST": "AWST", "PDT": "PDT"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_SD) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_SD) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_SD) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_SD) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_SD) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_SD) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_SD) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_SD' and handles both Whole and Real numbers based on 'v'
+ func (en *en_SD) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_SD' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_SD) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_SD'
+@@ -278,56 +195,7 @@ func (en *en_SD) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_SD'
+@@ -336,84 +204,33 @@ func (en *en_SD) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_SD'
++func (en *en_SD) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_SD'
+-func (en *en_SD) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_SD) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_SD) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_SD) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_SD) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_SD) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_SD) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_SD) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_SE/en_SE.go b/en_SE/en_SE.go
+index 1e82d59..401dec4 100644
+--- a/en_SE/en_SE.go
++++ b/en_SE/en_SE.go
+@@ -10,70 +10,48 @@ import (
+ )
+ 
+ type en_SE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ percentSuffix string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_SE' locale
+ func New() locales.Translator {
+ return &en_SE{
+- locale: "en_SE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "kr", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"UYT": "Uruguay Standard Time", "AWST": "Australian Western Standard Time", "CLT": "Chile Standard Time", "JST": "Japan Standard Time", "SRT": "Suriname Time", "AEDT": "Australian Eastern Daylight Time", "CAT": "Central Africa Time", "HNNOMX": "Northwest Mexico Standard Time", "MYT": "Malaysia Time", "CLST": "Chile Summer Time", "JDT": "Japan Daylight Time", "GMT": "Greenwich Mean Time", "EST": "Eastern Standard Time", "CST": "Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "HEOG": "West Greenland Summer Time", "HNEG": "East Greenland Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "AKDT": "Alaska Daylight Time", "HKST": "Hong Kong Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "SAST": "South Africa Standard Time", "WARST": "Western Argentina Summer Time", "MST": "Macau Standard Time", "AKST": "Alaska Standard Time", "ADT": "Atlantic Daylight Time", "WITA": "Central Indonesia Time", "WART": "Western Argentina Standard Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "HNOG": "West Greenland Standard Time", "AEST": "Australian Eastern Standard Time", "LHST": "Lord Howe Standard Time", "GFT": "French Guiana Time", "TMT": "Turkmenistan Standard Time", "WAST": "West Africa Summer Time", "ECT": "Ecuador Time", "NZST": "New Zealand Standard Time", "∅∅∅": "Amazon Summer Time", "HEEG": "East Greenland Summer Time", "MDT": "Macau Summer Time", "BT": "Bhutan Time", "HAT": "Newfoundland Daylight Time", "IST": "India Standard Time", "UYST": "Uruguay Summer Time", "GYT": "Guyana Time", "WIT": "Eastern Indonesia Time", "WEZ": "Western European Standard Time", "ACDT": "Australian Central Daylight Time", "OEZ": "Eastern European Standard Time", "HNCU": "Cuba Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNT": "Newfoundland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "HECU": "Cuba Daylight Time", "PST": "Pacific Standard Time", "HKT": "Hong Kong Standard Time", "MEZ": "Central European Standard Time", "ChST": "Chamorro Standard Time", "TMST": "Turkmenistan Summer Time", "SGT": "Singapore Standard Time", "ART": "Argentina Standard Time", "AWDT": "Australian Western Daylight Time", "LHDT": "Lord Howe Daylight Time", "EDT": "Eastern Daylight Time", "CDT": "Central Daylight Time", "CHADT": "Chatham Daylight Time", "WAT": "West Africa Standard Time", "OESZ": "Eastern European Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AST": "Atlantic Standard Time", "PDT": "Pacific Daylight Time", "ACWST": "Australian Central Western Standard Time", "ARST": "Argentina Summer Time", "MESZ": "Central European Summer Time", "BOT": "Bolivia Time", "COST": "Colombia Summer Time", "WIB": "Western Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "ACST": "Australian Central Standard Time", "EAT": "East Africa Time"},
++ locale: "en_SE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ group: " ",
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "kr", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ percentSuffix: " ",
++ timezones: map[string]string{"WARST": "WARST", "COT": "COT", "HNNOMX": "HNNOMX", "MEZ": "MEZ", "LHDT": "LHDT", "OEZ": "OEZ", "GFT": "GFT", "MDT": "MDT", "ChST": "ChST", "ACDT": "ACDT", "SGT": "SGT", "AKDT": "AKDT", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "WITA": "WITA", "MST": "MST", "CHADT": "CHADT", "HEOG": "HEOG", "TMT": "TMT", "WAST": "WAST", "SAST": "SAST", "EDT": "EDT", "MYT": "MYT", "LHST": "LHST", "AEST": "AEST", "PST": "PST", "WAT": "WAT", "HADT": "HADT", "MESZ": "MESZ", "ACST": "ACST", "WART": "WART", "HKST": "HKST", "HECU": "HECU", "HNOG": "HNOG", "TMST": "TMST", "ART": "ART", "HEEG": "HEEG", "HENOMX": "HENOMX", "ACWST": "ACWST", "VET": "VET", "ARST": "ARST", "GMT": "GMT", "JST": "JST", "WIT": "WIT", "HNT": "HNT", "CHAST": "CHAST", "UYST": "UYST", "WESZ": "WESZ", "NZST": "NZST", "ECT": "ECT", "CDT": "CDT", "HAST": "HAST", "AWDT": "AWDT", "CST": "CST", "AWST": "AWST", "AKST": "AKST", "GYT": "GYT", "HKT": "HKT", "BT": "BT", "HNCU": "HNCU", "HNPMX": "HNPMX", "CAT": "CAT", "SRT": "SRT", "BOT": "BOT", "EAT": "EAT", "JDT": "JDT", "WEZ": "WEZ", "HAT": "HAT", "AST": "AST", "HNPM": "HNPM", "ACWDT": "ACWDT", "HEPMX": "HEPMX", "OESZ": "OESZ", "CLT": "CLT", "COST": "COST", "EST": "EST", "CLST": "CLST", "NZDT": "NZDT", "WIB": "WIB", "ADT": "ADT", "UYT": "UYT", "HEPM": "HEPM", "AEDT": "AEDT", "IST": "IST", "PDT": "PDT"},
+ }
+ }
+ 
+@@ -140,7 +118,7 @@ func (en *en_SE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_SE) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -150,7 +128,7 @@ func (en *en_SE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_SE) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -160,7 +138,7 @@ func (en *en_SE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_SE) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -206,51 +184,14 @@ func (en *en_SE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_SE' and handles both Whole and Real numbers based on 'v'
+ func (en *en_SE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(en.group) - 1; j >= 0; j-- {
+- b = append(b, en.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_SE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_SE) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
++ l := len(s) + 2
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -284,58 +225,7 @@ func (en *en_SE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(en.group) - 1; j >= 0; j-- {
+- b = append(b, en.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_SE'
+@@ -344,70 +234,7 @@ func (en *en_SE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(en.group) - 1; j >= 0; j-- {
+- b = append(b, en.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_SE'
+@@ -445,17 +272,6 @@ func (en *en_SE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -464,17 +280,6 @@ func (en *en_SE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -483,19 +288,6 @@ func (en *en_SE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -504,28 +296,6 @@ func (en *en_SE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -534,35 +304,6 @@ func (en *en_SE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -571,40 +312,6 @@ func (en *en_SE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -613,44 +320,5 @@ func (en *en_SE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_SG/en_SG.go b/en_SG/en_SG.go
+index 71a72f1..aa1ac43 100644
+--- a/en_SG/en_SG.go
++++ b/en_SG/en_SG.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_SG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_SG' locale
+ func New() locales.Translator {
+ return &en_SG{
+- locale: "en_SG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "$", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"CLST": "Chile Summer Time", "OESZ": "Eastern European Summer Time", "HAT": "Newfoundland Daylight Time", "LHST": "Lord Howe Standard Time", "ADT": "Atlantic Daylight Time", "ART": "Argentina Standard Time", "TMST": "Turkmenistan Summer Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "COT": "Colombia Standard Time", "PDT": "Pacific Daylight Time", "CLT": "Chile Standard Time", "WAST": "West Africa Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "AWDT": "Australian Western Daylight Time", "AST": "Atlantic Standard Time", "UYT": "Uruguay Standard Time", "HKST": "Hong Kong Summer Time", "AWST": "Australian Western Standard Time", "WAT": "West Africa Standard Time", "HECU": "Cuba Daylight Time", "SAST": "South Africa Standard Time", "ACST": "Australian Central Standard Time", "VET": "Venezuela Time", "PST": "Pacific Standard Time", "NZDT": "New Zealand Daylight Time", "UYST": "Uruguay Summer Time", "AEDT": "Australian Eastern Daylight Time", "∅∅∅": "Amazon Summer Time", "EAT": "East Africa Time", "EST": "Eastern Standard Time", "EDT": "Eastern Daylight Time", "BOT": "Bolivia Time", "ACWST": "Australian Central Western Standard Time", "NZST": "New Zealand Standard Time", "HNCU": "Cuba Standard Time", "AKDT": "Alaska Daylight Time", "AEST": "Australian Eastern Standard Time", "CHAST": "Chatham Standard Time", "HNEG": "East Greenland Standard Time", "ChST": "Chamorro Standard Time", "CAT": "Central Africa Time", "COST": "Colombia Summer Time", "SGT": "Singapore Standard Time", "ACWDT": "Australian Central Western Daylight Time", "WESZ": "Western European Summer Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "MDT": "Macau Summer Time", "AKST": "Alaska Standard Time", "CDT": "Central Daylight Time", "ARST": "Argentina Summer Time", "GFT": "French Guiana Time", "ECT": "Ecuador Time", "HNPMX": "Mexican Pacific Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "JST": "Japan Standard Time", "JDT": "Japan Daylight Time", "HEEG": "East Greenland Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNT": "Newfoundland Standard Time", "WEZ": "Western European Standard Time", "TMT": "Turkmenistan Standard Time", "ACDT": "Australian Central Daylight Time", "MST": "Macau Standard Time", "MYT": "Malaysia Time", "CHADT": "Chatham Daylight Time", "MEZ": "Central European Standard Time", "MESZ": "Central European Summer Time", "HEOG": "West Greenland Summer Time", "HKT": "Hong Kong Standard Time", "WITA": "Central Indonesia Time", "OEZ": "Eastern European Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "GMT": "Greenwich Mean Time", "SRT": "Suriname Time", "HNOG": "West Greenland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CST": "Central Standard Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "BT": "Bhutan Time"},
++ locale: "en_SG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "$", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsWide: []string{"am", "pm"},
++ timezones: map[string]string{"JDT": "JDT", "PDT": "PDT", "SAST": "SAST", "BOT": "BOT", "HEEG": "HEEG", "HENOMX": "HENOMX", "AKDT": "AKDT", "HNPMX": "HNPMX", "COT": "COT", "GYT": "GYT", "EDT": "EDT", "HKT": "HKT", "HNEG": "HNEG", "LHST": "LHST", "IST": "IST", "VET": "VET", "WITA": "WITA", "NZDT": "NZDT", "ARST": "ARST", "HADT": "HADT", "ACWDT": "ACWDT", "HNCU": "HNCU", "WAST": "WAST", "WIT": "WIT", "NZST": "NZST", "WIB": "WIB", "ADT": "ADT", "CLST": "CLST", "HAT": "HAT", "EST": "EST", "CLT": "CLT", "AST": "AST", "SRT": "SRT", "HEPM": "HEPM", "MYT": "MYT", "HNNOMX": "HNNOMX", "MESZ": "MESZ", "TMST": "TMST", "HNPM": "HNPM", "ACWST": "ACWST", "WEZ": "WEZ", "OESZ": "OESZ", "GFT": "GFT", "ECT": "ECT", "MST": "MST", "ACST": "ACST", "ART": "ART", "MEZ": "MEZ", "HEOG": "HEOG", "HEPMX": "HEPMX", "HNT": "HNT", "WART": "WART", "HKST": "HKST", "ACDT": "ACDT", "AEDT": "AEDT", "HECU": "HECU", "LHDT": "LHDT", "UYST": "UYST", "WARST": "WARST", "TMT": "TMT", "GMT": "GMT", "AWST": "AWST", "∅∅∅": "∅∅∅", "UYT": "UYT", "PST": "PST", "SGT": "SGT", "AKST": "AKST", "HNOG": "HNOG", "CDT": "CDT", "MDT": "MDT", "AEST": "AEST", "JST": "JST", "CHADT": "CHADT", "WESZ": "WESZ", "COST": "COST", "CAT": "CAT", "ChST": "ChST", "EAT": "EAT", "HAST": "HAST", "CHAST": "CHAST", "WAT": "WAT", "OEZ": "OEZ", "CST": "CST", "AWDT": "AWDT", "BT": "BT"},
+ }
+ }
+ 
+@@ -138,7 +117,7 @@ func (en *en_SG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_SG) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_SG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_SG) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_SG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_SG) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +183,13 @@ func (en *en_SG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_SG' and handles both Whole and Real numbers based on 'v'
+ func (en *en_SG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_SG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_SG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_SG'
+@@ -278,56 +197,7 @@ func (en *en_SG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_SG'
+@@ -336,68 +206,7 @@ func (en *en_SG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_SG'
+@@ -424,17 +233,6 @@ func (en *en_SG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +241,6 @@ func (en *en_SG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,19 +249,6 @@ func (en *en_SG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -483,13 +257,11 @@ func (en *en_SG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -497,13 +269,6 @@ func (en *en_SG) FmtTimeShort(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -513,13 +278,11 @@ func (en *en_SG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -534,13 +297,6 @@ func (en *en_SG) FmtTimeMedium(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -550,13 +306,11 @@ func (en *en_SG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -573,14 +327,6 @@ func (en *en_SG) FmtTimeLong(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ b = append(b, tz...)
+ 
+@@ -592,13 +338,11 @@ func (en *en_SG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -615,14 +359,6 @@ func (en *en_SG) FmtTimeFull(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ 
+ if btz, ok := en.timezones[tz]; ok {
+diff --git a/en_SH/en_SH.go b/en_SH/en_SH.go
+index 1ba9bd1..49011b0 100644
+--- a/en_SH/en_SH.go
++++ b/en_SH/en_SH.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_SH struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_SH' locale
+ func New() locales.Translator {
+ return &en_SH{
+- locale: "en_SH",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GB£", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "£", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"VET": "Venezuela Time", "OEZ": "Eastern European Standard Time", "∅∅∅": "Peru Summer Time", "COT": "Colombia Standard Time", "GMT": "Greenwich Mean Time", "ADT": "Atlantic Daylight Time", "WIB": "Western Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HNT": "Newfoundland Standard Time", "WARST": "Western Argentina Summer Time", "WIT": "Eastern Indonesia Time", "BT": "Bhutan Time", "NZST": "New Zealand Standard Time", "TMT": "Turkmenistan Standard Time", "WAST": "West Africa Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "PST": "Pacific Standard Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "OESZ": "Eastern European Summer Time", "AKDT": "Alaska Daylight Time", "CST": "Central Standard Time", "UYT": "Uruguay Standard Time", "ACWST": "Australian Central Western Standard Time", "NZDT": "New Zealand Daylight Time", "COST": "Colombia Summer Time", "AKST": "Alaska Standard Time", "HNOG": "West Greenland Standard Time", "SGT": "Singapore Standard Time", "CDT": "Central Daylight Time", "AEST": "Australian Eastern Standard Time", "CHAST": "Chatham Standard Time", "IST": "India Standard Time", "CAT": "Central Africa Time", "ACST": "Australian Central Standard Time", "ACDT": "Australian Central Daylight Time", "HNCU": "Cuba Standard Time", "AWST": "Australian Western Standard Time", "CLT": "Chile Standard Time", "ChST": "Chamorro Standard Time", "BOT": "Bolivia Time", "MESZ": "Central European Summer Time", "EAT": "East Africa Time", "WART": "Western Argentina Standard Time", "HECU": "Cuba Daylight Time", "UYST": "Uruguay Summer Time", "WEZ": "Western European Standard Time", "WESZ": "Western European Summer Time", "HEOG": "West Greenland Summer Time", "LHST": "Lord Howe Standard Time", "AST": "Atlantic Standard Time", "ART": "Argentina Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "LHDT": "Lord Howe Daylight Time", "TMST": "Turkmenistan Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HKST": "Hong Kong Summer Time", "GFT": "French Guiana Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "EDT": "Eastern Daylight Time", "MYT": "Malaysia Time", "PDT": "Pacific Daylight Time", "AEDT": "Australian Eastern Daylight Time", "EST": "Eastern Standard Time", "HAT": "Newfoundland Daylight Time", "WITA": "Central Indonesia Time", "MEZ": "Central European Standard Time", "JDT": "Japan Daylight Time", "HNEG": "East Greenland Standard Time", "HEEG": "East Greenland Summer Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "SRT": "Suriname Time", "ARST": "Argentina Summer Time", "JST": "Japan Standard Time", "WAT": "West Africa Standard Time", "ECT": "Ecuador Time", "MST": "Macau Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "AWDT": "Australian Western Daylight Time", "HKT": "Hong Kong Standard Time", "CLST": "Chile Summer Time"},
++ locale: "en_SH",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GB£", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "£", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsWide: []string{"am", "pm"},
++ timezones: map[string]string{"HEPM": "HEPM", "HEPMX": "HEPMX", "WARST": "WARST", "HKST": "HKST", "TMST": "TMST", "CDT": "CDT", "AWDT": "AWDT", "HAST": "HAST", "AEST": "AEST", "CHADT": "CHADT", "BT": "BT", "WIT": "WIT", "TMT": "TMT", "EAT": "EAT", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "VET": "VET", "HNOG": "HNOG", "EDT": "EDT", "CLT": "CLT", "ECT": "ECT", "MEZ": "MEZ", "ChST": "ChST", "JDT": "JDT", "HNCU": "HNCU", "ADT": "ADT", "HNNOMX": "HNNOMX", "PST": "PST", "GFT": "GFT", "HAT": "HAT", "COT": "COT", "CLST": "CLST", "CST": "CST", "GMT": "GMT", "HENOMX": "HENOMX", "MDT": "MDT", "HECU": "HECU", "HEOG": "HEOG", "HNPM": "HNPM", "MYT": "MYT", "UYT": "UYT", "ARST": "ARST", "BOT": "BOT", "IST": "IST", "HNPMX": "HNPMX", "SAST": "SAST", "ACST": "ACST", "CHAST": "CHAST", "SGT": "SGT", "WITA": "WITA", "WIB": "WIB", "JST": "JST", "HEEG": "HEEG", "UYST": "UYST", "WEZ": "WEZ", "OESZ": "OESZ", "HNT": "HNT", "GYT": "GYT", "NZST": "NZST", "HADT": "HADT", "NZDT": "NZDT", "ART": "ART", "MST": "MST", "ACWST": "ACWST", "LHDT": "LHDT", "AEDT": "AEDT", "ACWDT": "ACWDT", "WAST": "WAST", "AKDT": "AKDT", "OEZ": "OEZ", "HKT": "HKT", "CAT": "CAT", "SRT": "SRT", "HNEG": "HNEG", "PDT": "PDT", "WESZ": "WESZ", "AKST": "AKST", "COST": "COST", "ACDT": "ACDT", "LHST": "LHST", "WAT": "WAT", "WART": "WART", "EST": "EST", "AST": "AST", "AWST": "AWST"},
+ }
+ }
+ 
+@@ -138,7 +117,7 @@ func (en *en_SH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_SH) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_SH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_SH) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_SH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_SH) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +183,13 @@ func (en *en_SH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_SH' and handles both Whole and Real numbers based on 'v'
+ func (en *en_SH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_SH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_SH) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_SH'
+@@ -278,56 +197,7 @@ func (en *en_SH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_SH'
+@@ -336,68 +206,7 @@ func (en *en_SH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_SH'
+@@ -405,17 +214,6 @@ func (en *en_SH) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +222,6 @@ func (en *en_SH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +230,6 @@ func (en *en_SH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,19 +238,6 @@ func (en *en_SH) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/en_SI/en_SI.go b/en_SI/en_SI.go
+index 0289ce6..4fd0ee4 100644
+--- a/en_SI/en_SI.go
++++ b/en_SI/en_SI.go
+@@ -48,30 +48,11 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{2, 6},
+ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+ pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositiveSuffix: " )",
+ currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"CAT": "Central Africa Time", "WART": "Western Argentina Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "VET": "Venezuela Time", "HNT": "Newfoundland Standard Time", "CHADT": "Chatham Daylight Time", "HNEG": "East Greenland Standard Time", "ChST": "Chamorro Standard Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "ACWDT": "Australian Central Western Daylight Time", "NZST": "New Zealand Standard Time", "CHAST": "Chatham Standard Time", "LHDT": "Lord Howe Daylight Time", "SAST": "South Africa Standard Time", "IST": "India Standard Time", "EDT": "Eastern Daylight Time", "WIB": "Western Indonesia Time", "HEOG": "West Greenland Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "UYST": "Uruguay Summer Time", "ACWST": "Australian Central Western Standard Time", "MEZ": "Central European Standard Time", "TMT": "Turkmenistan Standard Time", "OESZ": "Eastern European Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "PDT": "Pacific Daylight Time", "COST": "Colombia Summer Time", "AKDT": "Alaska Daylight Time", "CDT": "Central Daylight Time", "HNOG": "West Greenland Standard Time", "TMST": "Turkmenistan Summer Time", "EST": "Eastern Standard Time", "CST": "Central Standard Time", "WAT": "West Africa Standard Time", "PST": "Pacific Standard Time", "JST": "Japan Standard Time", "GFT": "French Guiana Time", "ACST": "Australian Central Standard Time", "ACDT": "Australian Central Daylight Time", "AST": "Atlantic Standard Time", "AEST": "Australian Eastern Standard Time", "AWDT": "Australian Western Daylight Time", "LHST": "Lord Howe Standard Time", "JDT": "Japan Daylight Time", "EAT": "East Africa Time", "ARST": "Argentina Summer Time", "WEZ": "Western European Standard Time", "ECT": "Ecuador Time", "HNCU": "Cuba Standard Time", "BT": "Bhutan Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "ADT": "Atlantic Daylight Time", "GYT": "Guyana Time", "UYT": "Uruguay Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "SRT": "Suriname Time", "ART": "Argentina Standard Time", "HKT": "Hong Kong Standard Time", "CLT": "Chile Standard Time", "MYT": "Malaysia Time", "HAT": "Newfoundland Daylight Time", "WESZ": "Western European Summer Time", "AWST": "Australian Western Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HECU": "Cuba Daylight Time", "SGT": "Singapore Standard Time", "HKST": "Hong Kong Summer Time", "WITA": "Central Indonesia Time", "AEDT": "Australian Eastern Daylight Time", "∅∅∅": "Amazon Summer Time", "WAST": "West Africa Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AKST": "Alaska Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZDT": "New Zealand Daylight Time", "CLST": "Chile Summer Time", "HEEG": "East Greenland Summer Time", "COT": "Colombia Standard Time", "WIT": "Eastern Indonesia Time", "MESZ": "Central European Summer Time", "BOT": "Bolivia Time", "WARST": "Western Argentina Summer Time"},
++ timezones: map[string]string{"CST": "CST", "HENOMX": "HENOMX", "LHST": "LHST", "UYST": "UYST", "HNPM": "HNPM", "WEZ": "WEZ", "HECU": "HECU", "OEZ": "OEZ", "CAT": "CAT", "GMT": "GMT", "MYT": "MYT", "ACWST": "ACWST", "AEST": "AEST", "WART": "WART", "HEOG": "HEOG", "HEEG": "HEEG", "BT": "BT", "TMST": "TMST", "CDT": "CDT", "MESZ": "MESZ", "VET": "VET", "NZDT": "NZDT", "HADT": "HADT", "WESZ": "WESZ", "HNCU": "HNCU", "HKST": "HKST", "WITA": "WITA", "MST": "MST", "MDT": "MDT", "CHAST": "CHAST", "SGT": "SGT", "HEPMX": "HEPMX", "OESZ": "OESZ", "GFT": "GFT", "WARST": "WARST", "ECT": "ECT", "ChST": "ChST", "LHDT": "LHDT", "PDT": "PDT", "AKST": "AKST", "ACDT": "ACDT", "IST": "IST", "WAST": "WAST", "AKDT": "AKDT", "GYT": "GYT", "EST": "EST", "AST": "AST", "EAT": "EAT", "CLT": "CLT", "CLST": "CLST", "SRT": "SRT", "JST": "JST", "BOT": "BOT", "HAST": "HAST", "AWDT": "AWDT", "WAT": "WAT", "HNT": "HNT", "∅∅∅": "∅∅∅", "EDT": "EDT", "WIB": "WIB", "PST": "PST", "HNPMX": "HNPMX", "HNOG": "HNOG", "HKT": "HKT", "MEZ": "MEZ", "UYT": "UYT", "WIT": "WIT", "COST": "COST", "ADT": "ADT", "ARST": "ARST", "TMT": "TMT", "HNEG": "HNEG", "JDT": "JDT", "AEDT": "AEDT", "COT": "COT", "ACST": "ACST", "AWST": "AWST", "ACWDT": "ACWDT", "HAT": "HAT", "HEPM": "HEPM", "CHADT": "CHADT", "SAST": "SAST", "NZST": "NZST", "ART": "ART", "HNNOMX": "HNNOMX"},
+ }
+ }
+ 
+@@ -112,8 +93,8 @@ func (en *en_SI) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_SI) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
++ nMod10 := math.Mod(n, 10)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +119,7 @@ func (en *en_SI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_SI) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +129,7 @@ func (en *en_SI) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_SI) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +139,7 @@ func (en *en_SI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_SI) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +185,13 @@ func (en *en_SI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_SI' and handles both Whole and Real numbers based on 'v'
+ func (en *en_SI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_SI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_SI) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_SI'
+@@ -278,7 +199,7 @@ func (en *en_SI) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 5 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -336,7 +257,7 @@ func (en *en_SI) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 5 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -400,17 +321,6 @@ func (en *en_SI) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -419,17 +329,6 @@ func (en *en_SI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -438,17 +337,6 @@ func (en *en_SI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -457,19 +345,6 @@ func (en *en_SI) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -478,28 +353,6 @@ func (en *en_SI) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -508,35 +361,6 @@ func (en *en_SI) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -545,40 +369,6 @@ func (en *en_SI) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -587,44 +377,5 @@ func (en *en_SI) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_SL/en_SL.go b/en_SL/en_SL.go
+index 42c3e8c..414b86a 100644
+--- a/en_SL/en_SL.go
++++ b/en_SL/en_SL.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_SL struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_SL' locale
+ func New() locales.Translator {
+ return &en_SL{
+- locale: "en_SL",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "Le", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HNEG": "East Greenland Standard Time", "AWST": "Australian Western Standard Time", "ACWST": "Australian Central Western Standard Time", "AWDT": "Australian Western Daylight Time", "TMST": "Turkmenistan Summer Time", "ChST": "Chamorro Standard Time", "ACST": "Australian Central Standard Time", "OEZ": "Eastern European Standard Time", "HECU": "Cuba Daylight Time", "HNOG": "West Greenland Standard Time", "ECT": "Ecuador Time", "WART": "Western Argentina Standard Time", "SRT": "Suriname Time", "HKST": "Hong Kong Summer Time", "NZDT": "New Zealand Daylight Time", "SAST": "South Africa Standard Time", "CLST": "Chile Summer Time", "WAST": "West Africa Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "WEZ": "Western European Standard Time", "JST": "Japan Standard Time", "HNT": "Newfoundland Standard Time", "MEZ": "Central European Standard Time", "LHST": "Lord Howe Standard Time", "EAT": "East Africa Time", "WAT": "West Africa Standard Time", "COT": "Colombia Standard Time", "CST": "Central Standard Time", "ADT": "Atlantic Daylight Time", "UYST": "Uruguay Summer Time", "MYT": "Malaysia Time", "UYT": "Uruguay Standard Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "GYT": "Guyana Time", "PDT": "Pacific Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CHAST": "Chatham Standard Time", "HNCU": "Cuba Standard Time", "MST": "Macau Standard Time", "ARST": "Argentina Summer Time", "WESZ": "Western European Summer Time", "WITA": "Central Indonesia Time", "HNPM": "St. Pierre & Miquelon Standard Time", "ACWDT": "Australian Central Western Daylight Time", "∅∅∅": "Amazon Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "EST": "Eastern Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "AST": "Atlantic Standard Time", "WIT": "Eastern Indonesia Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "OESZ": "Eastern European Summer Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "HKT": "Hong Kong Standard Time", "TMT": "Turkmenistan Standard Time", "HEEG": "East Greenland Summer Time", "MDT": "Macau Summer Time", "AKST": "Alaska Standard Time", "AEDT": "Australian Eastern Daylight Time", "CLT": "Chile Standard Time", "CAT": "Central Africa Time", "CDT": "Central Daylight Time", "HAT": "Newfoundland Daylight Time", "HEOG": "West Greenland Summer Time", "JDT": "Japan Daylight Time", "GFT": "French Guiana Time", "GMT": "Greenwich Mean Time", "HADT": "Hawaii-Aleutian Daylight Time", "VET": "Venezuela Time", "MESZ": "Central European Summer Time", "COST": "Colombia Summer Time", "EDT": "Eastern Daylight Time", "PST": "Pacific Standard Time", "CHADT": "Chatham Daylight Time", "LHDT": "Lord Howe Daylight Time", "WARST": "Western Argentina Summer Time", "SGT": "Singapore Standard Time", "NZST": "New Zealand Standard Time", "IST": "India Standard Time"},
++ locale: "en_SL",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "Le", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AEST": "AEST", "UYST": "UYST", "HNT": "HNT", "WARST": "WARST", "HEOG": "HEOG", "EDT": "EDT", "TMST": "TMST", "JST": "JST", "WEZ": "WEZ", "AKST": "AKST", "GYT": "GYT", "HNNOMX": "HNNOMX", "AWST": "AWST", "AKDT": "AKDT", "CLST": "CLST", "WITA": "WITA", "CST": "CST", "MST": "MST", "WESZ": "WESZ", "HAT": "HAT", "HKT": "HKT", "ART": "ART", "GFT": "GFT", "COT": "COT", "MYT": "MYT", "ACWST": "ACWST", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "NZST": "NZST", "EAT": "EAT", "HADT": "HADT", "ACST": "ACST", "PST": "PST", "CHAST": "CHAST", "OEZ": "OEZ", "CLT": "CLT", "ADT": "ADT", "HAST": "HAST", "HNCU": "HNCU", "∅∅∅": "∅∅∅", "COST": "COST", "CAT": "CAT", "ARST": "ARST", "MEZ": "MEZ", "WIB": "WIB", "UYT": "UYT", "VET": "VET", "WAT": "WAT", "OESZ": "OESZ", "CDT": "CDT", "ChST": "ChST", "EST": "EST", "AWDT": "AWDT", "LHST": "LHST", "AEDT": "AEDT", "WAST": "WAST", "HKST": "HKST", "MDT": "MDT", "NZDT": "NZDT", "BOT": "BOT", "HEEG": "HEEG", "PDT": "PDT", "SAST": "SAST", "TMT": "TMT", "AST": "AST", "MESZ": "MESZ", "HNEG": "HNEG", "HEPM": "HEPM", "HECU": "HECU", "WART": "WART", "SRT": "SRT", "ACDT": "ACDT", "JDT": "JDT", "BT": "BT", "HEPMX": "HEPMX", "ECT": "ECT", "HENOMX": "HENOMX", "HNPM": "HNPM", "IST": "IST", "SGT": "SGT", "WIT": "WIT", "HNOG": "HNOG", "GMT": "GMT", "LHDT": "LHDT", "CHADT": "CHADT"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_SL) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_SL) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_SL) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_SL) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_SL) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_SL) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_SL) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_SL' and handles both Whole and Real numbers based on 'v'
+ func (en *en_SL) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_SL' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_SL) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_SL'
+@@ -278,56 +195,7 @@ func (en *en_SL) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_SL'
+@@ -336,84 +204,33 @@ func (en *en_SL) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_SL'
++func (en *en_SL) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_SL'
+-func (en *en_SL) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_SL) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_SL) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_SL) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_SL) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_SL) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_SL) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_SL) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_SS/en_SS.go b/en_SS/en_SS.go
+index 2a24850..0ef0c37 100644
+--- a/en_SS/en_SS.go
++++ b/en_SS/en_SS.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_SS struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_SS' locale
+ func New() locales.Translator {
+ return &en_SS{
+- locale: "en_SS",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GB£", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "£", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HNNOMX": "Northwest Mexico Standard Time", "HECU": "Cuba Daylight Time", "CDT": "Central Daylight Time", "MEZ": "Central European Standard Time", "TMT": "Turkmenistan Standard Time", "ACWST": "Australian Central Western Standard Time", "HNOG": "West Greenland Standard Time", "ACDT": "Australian Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "EST": "Eastern Standard Time", "AKDT": "Alaska Daylight Time", "HAT": "Newfoundland Daylight Time", "ARST": "Argentina Summer Time", "HNT": "Newfoundland Standard Time", "HEOG": "West Greenland Summer Time", "LHDT": "Lord Howe Daylight Time", "ChST": "Chamorro Standard Time", "AST": "Atlantic Standard Time", "UYST": "Uruguay Summer Time", "AKST": "Alaska Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "PST": "Pacific Standard Time", "JST": "Japan Standard Time", "WAST": "West Africa Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time", "NZST": "New Zealand Standard Time", "HNEG": "East Greenland Standard Time", "OESZ": "Eastern European Summer Time", "GMT": "Greenwich Mean Time", "HNCU": "Cuba Standard Time", "WIB": "Western Indonesia Time", "HKT": "Hong Kong Standard Time", "CHAST": "Chatham Standard Time", "EDT": "Eastern Daylight Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "MYT": "Malaysia Time", "VET": "Venezuela Time", "∅∅∅": "Amazon Summer Time", "ACWDT": "Australian Central Western Daylight Time", "MESZ": "Central European Summer Time", "CLST": "Chile Summer Time", "WART": "Western Argentina Standard Time", "PDT": "Pacific Daylight Time", "CHADT": "Chatham Daylight Time", "NZDT": "New Zealand Daylight Time", "CLT": "Chile Standard Time", "OEZ": "Eastern European Standard Time", "MST": "Macau Standard Time", "BT": "Bhutan Time", "GFT": "French Guiana Time", "CST": "Central Standard Time", "AEST": "Australian Eastern Standard Time", "HKST": "Hong Kong Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "AWST": "Australian Western Standard Time", "SAST": "South Africa Standard Time", "ECT": "Ecuador Time", "EAT": "East Africa Time", "COST": "Colombia Summer Time", "SGT": "Singapore Standard Time", "WITA": "Central Indonesia Time", "WEZ": "Western European Standard Time", "AEDT": "Australian Eastern Daylight Time", "LHST": "Lord Howe Standard Time", "IST": "India Standard Time", "ACST": "Australian Central Standard Time", "WAT": "West Africa Standard Time", "WARST": "Western Argentina Summer Time", "UYT": "Uruguay Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "TMST": "Turkmenistan Summer Time", "BOT": "Bolivia Time", "CAT": "Central Africa Time", "ADT": "Atlantic Daylight Time", "JDT": "Japan Daylight Time", "HEEG": "East Greenland Summer Time", "COT": "Colombia Standard Time", "HNPMX": "Mexican Pacific Standard Time", "SRT": "Suriname Time", "ART": "Argentina Standard Time", "AWDT": "Australian Western Daylight Time"},
++ locale: "en_SS",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GB£", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "£", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HAT": "HAT", "MDT": "MDT", "HENOMX": "HENOMX", "JST": "JST", "AEST": "AEST", "COST": "COST", "ACST": "ACST", "HECU": "HECU", "HEPMX": "HEPMX", "CAT": "CAT", "HADT": "HADT", "ACDT": "ACDT", "AEDT": "AEDT", "WESZ": "WESZ", "AKST": "AKST", "HNCU": "HNCU", "GYT": "GYT", "HNOG": "HNOG", "CDT": "CDT", "ChST": "ChST", "ART": "ART", "WEZ": "WEZ", "GFT": "GFT", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "ADT": "ADT", "LHST": "LHST", "WARST": "WARST", "MST": "MST", "ARST": "ARST", "WART": "WART", "HNEG": "HNEG", "AWDT": "AWDT", "HNPMX": "HNPMX", "WAT": "WAT", "EST": "EST", "EDT": "EDT", "AST": "AST", "BOT": "BOT", "AWST": "AWST", "TMST": "TMST", "NZST": "NZST", "GMT": "GMT", "HEEG": "HEEG", "JDT": "JDT", "CHADT": "CHADT", "COT": "COT", "HEPM": "HEPM", "SGT": "SGT", "HAST": "HAST", "MEZ": "MEZ", "WIT": "WIT", "HKST": "HKST", "CLST": "CLST", "WITA": "WITA", "NZDT": "NZDT", "SRT": "SRT", "LHDT": "LHDT", "CST": "CST", "IST": "IST", "UYST": "UYST", "WAST": "WAST", "AKDT": "AKDT", "EAT": "EAT", "MESZ": "MESZ", "BT": "BT", "CLT": "CLT", "HNNOMX": "HNNOMX", "PDT": "PDT", "CHAST": "CHAST", "UYT": "UYT", "OEZ": "OEZ", "SAST": "SAST", "ECT": "ECT", "VET": "VET", "HNPM": "HNPM", "PST": "PST", "OESZ": "OESZ", "HNT": "HNT", "HKT": "HKT", "TMT": "TMT", "WIB": "WIB", "MYT": "MYT", "ACWST": "ACWST", "ACWDT": "ACWDT"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_SS) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_SS) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_SS) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_SS) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_SS) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_SS) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_SS) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_SS' and handles both Whole and Real numbers based on 'v'
+ func (en *en_SS) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_SS' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_SS) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_SS'
+@@ -278,56 +195,7 @@ func (en *en_SS) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_SS'
+@@ -336,84 +204,33 @@ func (en *en_SS) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_SS'
++func (en *en_SS) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_SS'
+-func (en *en_SS) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_SS) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_SS) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_SS) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_SS) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_SS) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_SS) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_SS) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_SX/en_SX.go b/en_SX/en_SX.go
+index 60491a5..635d87b 100644
+--- a/en_SX/en_SX.go
++++ b/en_SX/en_SX.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_SX struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_SX' locale
+ func New() locales.Translator {
+ return &en_SX{
+- locale: "en_SX",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "NAf.", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"GFT": "French Guiana Time", "MST": "Macau Standard Time", "ADT": "Atlantic Daylight Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "OESZ": "Eastern European Summer Time", "SRT": "Suriname Time", "HNOG": "West Greenland Standard Time", "CHADT": "Chatham Daylight Time", "WAT": "West Africa Standard Time", "EAT": "East Africa Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "JDT": "Japan Daylight Time", "CAT": "Central Africa Time", "LHDT": "Lord Howe Daylight Time", "HNEG": "East Greenland Standard Time", "HNCU": "Cuba Standard Time", "HKT": "Hong Kong Standard Time", "MESZ": "Central European Summer Time", "GYT": "Guyana Time", "PST": "Pacific Standard Time", "WESZ": "Western European Summer Time", "HKST": "Hong Kong Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "COT": "Colombia Standard Time", "WAST": "West Africa Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "VET": "Venezuela Time", "OEZ": "Eastern European Standard Time", "ECT": "Ecuador Time", "ACST": "Australian Central Standard Time", "HECU": "Cuba Daylight Time", "SGT": "Singapore Standard Time", "AKDT": "Alaska Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "NZDT": "New Zealand Daylight Time", "WART": "Western Argentina Standard Time", "ACWST": "Australian Central Western Standard Time", "HEOG": "West Greenland Summer Time", "TMST": "Turkmenistan Summer Time", "ACDT": "Australian Central Daylight Time", "TMT": "Turkmenistan Standard Time", "ChST": "Chamorro Standard Time", "COST": "Colombia Summer Time", "EDT": "Eastern Daylight Time", "MDT": "Macau Summer Time", "UYST": "Uruguay Summer Time", "WITA": "Central Indonesia Time", "AWST": "Australian Western Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HAT": "Newfoundland Daylight Time", "HEEG": "East Greenland Summer Time", "WARST": "Western Argentina Summer Time", "GMT": "Greenwich Mean Time", "HADT": "Hawaii-Aleutian Daylight Time", "AEDT": "Australian Eastern Daylight Time", "SAST": "South Africa Standard Time", "BOT": "Bolivia Time", "AKST": "Alaska Standard Time", "AST": "Atlantic Standard Time", "BT": "Bhutan Time", "ART": "Argentina Standard Time", "AWDT": "Australian Western Daylight Time", "CHAST": "Chatham Standard Time", "CST": "Central Standard Time", "NZST": "New Zealand Standard Time", "LHST": "Lord Howe Standard Time", "WIT": "Eastern Indonesia Time", "ARST": "Argentina Summer Time", "IST": "India Standard Time", "MYT": "Malaysia Time", "∅∅∅": "Amazon Summer Time", "JST": "Japan Standard Time", "EST": "Eastern Standard Time", "CDT": "Central Daylight Time", "HNT": "Newfoundland Standard Time", "AEST": "Australian Eastern Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "UYT": "Uruguay Standard Time", "WIB": "Western Indonesia Time", "MEZ": "Central European Standard Time", "HNPMX": "Mexican Pacific Standard Time"},
++ locale: "en_SX",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "NAf.", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"TMT": "TMT", "WIB": "WIB", "WAST": "WAST", "WARST": "WARST", "HNOG": "HNOG", "ECT": "ECT", "CHAST": "CHAST", "WESZ": "WESZ", "GYT": "GYT", "SAST": "SAST", "EDT": "EDT", "CST": "CST", "CDT": "CDT", "MESZ": "MESZ", "UYST": "UYST", "WEZ": "WEZ", "AWST": "AWST", "AWDT": "AWDT", "COT": "COT", "ARST": "ARST", "ACDT": "ACDT", "MYT": "MYT", "AEDT": "AEDT", "WART": "WART", "HEOG": "HEOG", "AKDT": "AKDT", "AST": "AST", "GMT": "GMT", "SRT": "SRT", "HEPM": "HEPM", "HEPMX": "HEPMX", "WAT": "WAT", "CAT": "CAT", "HECU": "HECU", "PDT": "PDT", "OEZ": "OEZ", "HKST": "HKST", "∅∅∅": "∅∅∅", "ChST": "ChST", "HNNOMX": "HNNOMX", "JDT": "JDT", "PST": "PST", "HNT": "HNT", "WIT": "WIT", "AEST": "AEST", "HNCU": "HNCU", "HKT": "HKT", "NZDT": "NZDT", "MEZ": "MEZ", "HEEG": "HEEG", "HNPM": "HNPM", "LHDT": "LHDT", "SGT": "SGT", "GFT": "GFT", "VET": "VET", "COST": "COST", "EST": "EST", "WITA": "WITA", "MDT": "MDT", "ACST": "ACST", "JST": "JST", "CHADT": "CHADT", "TMST": "TMST", "HADT": "HADT", "HNPMX": "HNPMX", "HAT": "HAT", "MST": "MST", "BOT": "BOT", "OESZ": "OESZ", "CLT": "CLT", "NZST": "NZST", "LHST": "LHST", "ACWDT": "ACWDT", "UYT": "UYT", "IST": "IST", "CLST": "CLST", "ADT": "ADT", "HAST": "HAST", "HNEG": "HNEG", "ACWST": "ACWST", "BT": "BT", "ART": "ART", "EAT": "EAT", "HENOMX": "HENOMX", "AKST": "AKST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_SX) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_SX) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_SX) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_SX) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_SX) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_SX) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_SX) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_SX' and handles both Whole and Real numbers based on 'v'
+ func (en *en_SX) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_SX' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_SX) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_SX'
+@@ -278,56 +195,7 @@ func (en *en_SX) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_SX'
+@@ -336,84 +204,33 @@ func (en *en_SX) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_SX'
++func (en *en_SX) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_SX'
+-func (en *en_SX) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_SX) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_SX) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_SX) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_SZ/en_SZ.go b/en_SZ/en_SZ.go
+index acb1b84..a61f347 100644
+--- a/en_SZ/en_SZ.go
++++ b/en_SZ/en_SZ.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_SZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_SZ' locale
+ func New() locales.Translator {
+ return &en_SZ{
+- locale: "en_SZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "E", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"AWST": "Australian Western Standard Time", "JDT": "Japan Daylight Time", "HNT": "Newfoundland Standard Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "MST": "Macau Standard Time", "HEOG": "West Greenland Summer Time", "PDT": "Pacific Daylight Time", "ACST": "Australian Central Standard Time", "ACDT": "Australian Central Daylight Time", "CLST": "Chile Summer Time", "ACWST": "Australian Central Western Standard Time", "CHAST": "Chatham Standard Time", "IST": "India Standard Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "HAT": "Newfoundland Daylight Time", "CLT": "Chile Standard Time", "TMST": "Turkmenistan Summer Time", "UYT": "Uruguay Standard Time", "AEDT": "Australian Eastern Daylight Time", "WAT": "West Africa Standard Time", "MDT": "Macau Summer Time", "MYT": "Malaysia Time", "HAST": "Hawaii-Aleutian Standard Time", "HNOG": "West Greenland Standard Time", "WESZ": "Western European Summer Time", "ARST": "Argentina Summer Time", "TMT": "Turkmenistan Standard Time", "EDT": "Eastern Daylight Time", "CHADT": "Chatham Daylight Time", "CST": "Central Standard Time", "HKST": "Hong Kong Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "MESZ": "Central European Summer Time", "NZDT": "New Zealand Daylight Time", "WART": "Western Argentina Standard Time", "AKST": "Alaska Standard Time", "VET": "Venezuela Time", "WIT": "Eastern Indonesia Time", "HEEG": "East Greenland Summer Time", "WAST": "West Africa Summer Time", "ACWDT": "Australian Central Western Daylight Time", "SAST": "South Africa Standard Time", "SRT": "Suriname Time", "CAT": "Central Africa Time", "UYST": "Uruguay Summer Time", "AST": "Atlantic Standard Time", "PST": "Pacific Standard Time", "WEZ": "Western European Standard Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "OESZ": "Eastern European Summer Time", "ADT": "Atlantic Daylight Time", "ChST": "Chamorro Standard Time", "EAT": "East Africa Time", "HEPMX": "Mexican Pacific Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "HKT": "Hong Kong Standard Time", "HNEG": "East Greenland Standard Time", "WARST": "Western Argentina Summer Time", "ECT": "Ecuador Time", "HNNOMX": "Northwest Mexico Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "CDT": "Central Daylight Time", "ART": "Argentina Standard Time", "MEZ": "Central European Standard Time", "∅∅∅": "Amazon Summer Time", "AEST": "Australian Eastern Standard Time", "GYT": "Guyana Time", "WIB": "Western Indonesia Time", "BT": "Bhutan Time", "AWDT": "Australian Western Daylight Time", "WITA": "Central Indonesia Time", "NZST": "New Zealand Standard Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "SGT": "Singapore Standard Time", "EST": "Eastern Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "LHST": "Lord Howe Standard Time", "LHDT": "Lord Howe Daylight Time", "JST": "Japan Standard Time", "COST": "Colombia Summer Time"},
++ locale: "en_SZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "E", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACWST": "ACWST", "UYST": "UYST", "HECU": "HECU", "AKDT": "AKDT", "HNT": "HNT", "AST": "AST", "ChST": "ChST", "HNEG": "HNEG", "ART": "ART", "IST": "IST", "AEST": "AEST", "VET": "VET", "HEPMX": "HEPMX", "EST": "EST", "TMT": "TMT", "JST": "JST", "WARST": "WARST", "ECT": "ECT", "ACWDT": "ACWDT", "COT": "COT", "CLST": "CLST", "CST": "CST", "GFT": "GFT", "MESZ": "MESZ", "LHDT": "LHDT", "CLT": "CLT", "SRT": "SRT", "HNNOMX": "HNNOMX", "PDT": "PDT", "∅∅∅": "∅∅∅", "WEZ": "WEZ", "ADT": "ADT", "ACST": "ACST", "WITA": "WITA", "WIB": "WIB", "GMT": "GMT", "HEOG": "HEOG", "HAST": "HAST", "MYT": "MYT", "HNCU": "HNCU", "AKST": "AKST", "HKST": "HKST", "MDT": "MDT", "HNPM": "HNPM", "AEDT": "AEDT", "CHADT": "CHADT", "HNPMX": "HNPMX", "WAT": "WAT", "HAT": "HAT", "HENOMX": "HENOMX", "HEPM": "HEPM", "GYT": "GYT", "EAT": "EAT", "WAST": "WAST", "COST": "COST", "CDT": "CDT", "ARST": "ARST", "HADT": "HADT", "UYT": "UYT", "SGT": "SGT", "NZDT": "NZDT", "CHAST": "CHAST", "JDT": "JDT", "HNOG": "HNOG", "EDT": "EDT", "NZST": "NZST", "MST": "MST", "LHST": "LHST", "BT": "BT", "WESZ": "WESZ", "OESZ": "OESZ", "MEZ": "MEZ", "HEEG": "HEEG", "AWDT": "AWDT", "HKT": "HKT", "CAT": "CAT", "BOT": "BOT", "AWST": "AWST", "PST": "PST", "OEZ": "OEZ", "WART": "WART", "WIT": "WIT", "SAST": "SAST", "TMST": "TMST", "ACDT": "ACDT"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_SZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_SZ) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_SZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_SZ) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_SZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_SZ) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_SZ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_SZ' and handles both Whole and Real numbers based on 'v'
+ func (en *en_SZ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_SZ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_SZ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_SZ'
+@@ -278,56 +195,7 @@ func (en *en_SZ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_SZ'
+@@ -336,84 +204,33 @@ func (en *en_SZ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_SZ'
++func (en *en_SZ) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_SZ'
+-func (en *en_SZ) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_SZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_SZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_SZ) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_SZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_SZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_SZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_SZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_TC/en_TC.go b/en_TC/en_TC.go
+index 95d4300..9e9e258 100644
+--- a/en_TC/en_TC.go
++++ b/en_TC/en_TC.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_TC struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_TC' locale
+ func New() locales.Translator {
+ return &en_TC{
+- locale: "en_TC",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"AWDT": "Australian Western Daylight Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "EDT": "Eastern Daylight Time", "GYT": "Guyana Time", "BT": "Bhutan Time", "ART": "Argentina Standard Time", "MEZ": "Central European Standard Time", "OESZ": "Eastern European Summer Time", "UYT": "Uruguay Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "PST": "Pacific Standard Time", "HKST": "Hong Kong Summer Time", "WITA": "Central Indonesia Time", "NZDT": "New Zealand Daylight Time", "∅∅∅": "Amazon Summer Time", "GFT": "French Guiana Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "HNOG": "West Greenland Standard Time", "TMT": "Turkmenistan Standard Time", "ACST": "Australian Central Standard Time", "EAT": "East Africa Time", "GMT": "Greenwich Mean Time", "UYST": "Uruguay Summer Time", "WIB": "Western Indonesia Time", "NZST": "New Zealand Standard Time", "HNEG": "East Greenland Standard Time", "OEZ": "Eastern European Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "AWST": "Australian Western Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "TMST": "Turkmenistan Summer Time", "HNCU": "Cuba Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AST": "Atlantic Standard Time", "MESZ": "Central European Summer Time", "CHADT": "Chatham Daylight Time", "IST": "India Standard Time", "ECT": "Ecuador Time", "WART": "Western Argentina Standard Time", "WARST": "Western Argentina Summer Time", "EST": "Eastern Standard Time", "AKDT": "Alaska Daylight Time", "AEDT": "Australian Eastern Daylight Time", "HECU": "Cuba Daylight Time", "ACWDT": "Australian Central Western Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "JST": "Japan Standard Time", "VET": "Venezuela Time", "HKT": "Hong Kong Standard Time", "CLT": "Chile Standard Time", "ACDT": "Australian Central Daylight Time", "MDT": "Macau Summer Time", "MYT": "Malaysia Time", "HADT": "Hawaii-Aleutian Daylight Time", "ARST": "Argentina Summer Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "COST": "Colombia Summer Time", "SGT": "Singapore Standard Time", "ADT": "Atlantic Daylight Time", "SRT": "Suriname Time", "SAST": "South Africa Standard Time", "CLST": "Chile Summer Time", "ACWST": "Australian Central Western Standard Time", "HEOG": "West Greenland Summer Time", "LHST": "Lord Howe Standard Time", "ChST": "Chamorro Standard Time", "AKST": "Alaska Standard Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "WIT": "Eastern Indonesia Time", "JDT": "Japan Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "MST": "Macau Standard Time", "CHAST": "Chatham Standard Time", "BOT": "Bolivia Time", "AEST": "Australian Eastern Standard Time", "LHDT": "Lord Howe Daylight Time", "HEEG": "East Greenland Summer Time", "WAST": "West Africa Summer Time", "PDT": "Pacific Daylight Time", "WEZ": "Western European Standard Time", "WESZ": "Western European Summer Time"},
++ locale: "en_TC",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"EDT": "EDT", "CDT": "CDT", "HADT": "HADT", "AEDT": "AEDT", "OEZ": "OEZ", "IST": "IST", "BT": "BT", "VET": "VET", "COST": "COST", "TMT": "TMT", "MEZ": "MEZ", "ACST": "ACST", "HNPM": "HNPM", "ChST": "ChST", "SRT": "SRT", "AEST": "AEST", "HEPMX": "HEPMX", "TMST": "TMST", "MDT": "MDT", "ECT": "ECT", "EAT": "EAT", "HAST": "HAST", "∅∅∅": "∅∅∅", "BOT": "BOT", "AWST": "AWST", "UYST": "UYST", "EST": "EST", "GMT": "GMT", "HEPM": "HEPM", "ACWDT": "ACWDT", "AKDT": "AKDT", "ARST": "ARST", "WAST": "WAST", "CLST": "CLST", "CST": "CST", "GFT": "GFT", "HKST": "HKST", "MST": "MST", "NZST": "NZST", "WIB": "WIB", "HNEG": "HNEG", "OESZ": "OESZ", "HAT": "HAT", "HNPMX": "HNPMX", "WIT": "WIT", "COT": "COT", "ART": "ART", "HENOMX": "HENOMX", "MYT": "MYT", "WESZ": "WESZ", "AST": "AST", "PDT": "PDT", "HECU": "HECU", "WART": "WART", "PST": "PST", "SGT": "SGT", "CAT": "CAT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "UYT": "UYT", "HNCU": "HNCU", "AKST": "AKST", "GYT": "GYT", "HEOG": "HEOG", "ADT": "ADT", "LHDT": "LHDT", "ACWST": "ACWST", "WEZ": "WEZ", "HKT": "HKT", "LHST": "LHST", "JST": "JST", "HNT": "HNT", "WITA": "WITA", "MESZ": "MESZ", "JDT": "JDT", "WARST": "WARST", "AWDT": "AWDT", "CHAST": "CHAST", "NZDT": "NZDT", "SAST": "SAST", "HNOG": "HNOG", "CLT": "CLT", "ACDT": "ACDT", "CHADT": "CHADT", "WAT": "WAT"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_TC) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_TC) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_TC) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_TC) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_TC) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_TC) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_TC) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_TC' and handles both Whole and Real numbers based on 'v'
+ func (en *en_TC) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_TC' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_TC) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_TC'
+@@ -278,56 +195,7 @@ func (en *en_TC) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_TC'
+@@ -336,84 +204,33 @@ func (en *en_TC) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_TC'
++func (en *en_TC) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_TC'
+-func (en *en_TC) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_TC) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_TC) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_TC) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_TC) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_TC) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_TC) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_TC) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_TK/en_TK.go b/en_TK/en_TK.go
+index 7b7dd44..2a26d80 100644
+--- a/en_TK/en_TK.go
++++ b/en_TK/en_TK.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_TK struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_TK' locale
+ func New() locales.Translator {
+ return &en_TK{
+- locale: "en_TK",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "$", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"EAT": "East Africa Time", "WAT": "West Africa Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "MYT": "Malaysia Time", "UYT": "Uruguay Standard Time", "BT": "Bhutan Time", "ECT": "Ecuador Time", "HECU": "Cuba Daylight Time", "ACWST": "Australian Central Western Standard Time", "AWDT": "Australian Western Daylight Time", "SAST": "South Africa Standard Time", "JST": "Japan Standard Time", "HEEG": "East Greenland Summer Time", "EDT": "Eastern Daylight Time", "PST": "Pacific Standard Time", "WITA": "Central Indonesia Time", "NZST": "New Zealand Standard Time", "CAT": "Central Africa Time", "WAST": "West Africa Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "MESZ": "Central European Summer Time", "HNEG": "East Greenland Standard Time", "ADT": "Atlantic Daylight Time", "WEZ": "Western European Standard Time", "AEDT": "Australian Eastern Daylight Time", "WARST": "Western Argentina Summer Time", "EST": "Eastern Standard Time", "AKDT": "Alaska Daylight Time", "AWST": "Australian Western Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HKT": "Hong Kong Standard Time", "CLT": "Chile Standard Time", "OEZ": "Eastern European Standard Time", "GMT": "Greenwich Mean Time", "CDT": "Central Daylight Time", "WIB": "Western Indonesia Time", "HADT": "Hawaii-Aleutian Daylight Time", "TMT": "Turkmenistan Standard Time", "GYT": "Guyana Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CHAST": "Chatham Standard Time", "WART": "Western Argentina Standard Time", "COT": "Colombia Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "PDT": "Pacific Daylight Time", "ARST": "Argentina Summer Time", "HKST": "Hong Kong Summer Time", "CHADT": "Chatham Daylight Time", "HNOG": "West Greenland Standard Time", "LHST": "Lord Howe Standard Time", "JDT": "Japan Daylight Time", "HNCU": "Cuba Standard Time", "MDT": "Macau Summer Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "ART": "Argentina Standard Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "∅∅∅": "Amazon Summer Time", "BOT": "Bolivia Time", "TMST": "Turkmenistan Summer Time", "OESZ": "Eastern European Summer Time", "COST": "Colombia Summer Time", "HNPMX": "Mexican Pacific Standard Time", "HEOG": "West Greenland Summer Time", "MEZ": "Central European Standard Time", "ACDT": "Australian Central Daylight Time", "MST": "Macau Standard Time", "AKST": "Alaska Standard Time", "UYST": "Uruguay Summer Time", "SRT": "Suriname Time", "AEST": "Australian Eastern Standard Time", "CLST": "Chile Summer Time", "ChST": "Chamorro Standard Time", "GFT": "French Guiana Time", "ACST": "Australian Central Standard Time", "CST": "Central Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AST": "Atlantic Standard Time", "WIT": "Eastern Indonesia Time", "NZDT": "New Zealand Daylight Time"},
++ locale: "en_TK",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "$", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HAT": "HAT", "WART": "WART", "GYT": "GYT", "EST": "EST", "HKT": "HKT", "CDT": "CDT", "SGT": "SGT", "VET": "VET", "LHDT": "LHDT", "JST": "JST", "ACWST": "ACWST", "ADT": "ADT", "ACDT": "ACDT", "AKDT": "AKDT", "OEZ": "OEZ", "AST": "AST", "WEZ": "WEZ", "WESZ": "WESZ", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "MYT": "MYT", "NZST": "NZST", "MEZ": "MEZ", "AWDT": "AWDT", "CHADT": "CHADT", "COST": "COST", "HADT": "HADT", "NZDT": "NZDT", "EAT": "EAT", "ACWDT": "ACWDT", "WARST": "WARST", "MDT": "MDT", "ART": "ART", "HENOMX": "HENOMX", "JDT": "JDT", "TMT": "TMT", "CST": "CST", "BT": "BT", "AEST": "AEST", "TMST": "TMST", "CAT": "CAT", "ACST": "ACST", "HNPM": "HNPM", "PDT": "PDT", "WAST": "WAST", "AKST": "AKST", "HEEG": "HEEG", "HNT": "HNT", "HAST": "HAST", "SRT": "SRT", "AWST": "AWST", "HECU": "HECU", "OESZ": "OESZ", "COT": "COT", "MST": "MST", "ECT": "ECT", "UYST": "UYST", "HNCU": "HNCU", "WIT": "WIT", "CHAST": "CHAST", "AEDT": "AEDT", "SAST": "SAST", "CLT": "CLT", "GFT": "GFT", "HKST": "HKST", "WIB": "WIB", "ChST": "ChST", "HNEG": "HNEG", "HNPMX": "HNPMX", "∅∅∅": "∅∅∅", "HEPM": "HEPM", "WAT": "WAT", "EDT": "EDT", "GMT": "GMT", "ARST": "ARST", "UYT": "UYT", "IST": "IST", "HEPMX": "HEPMX", "HEOG": "HEOG", "WITA": "WITA", "BOT": "BOT", "LHST": "LHST", "PST": "PST", "HNOG": "HNOG", "CLST": "CLST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_TK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_TK) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_TK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_TK) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_TK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_TK) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_TK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_TK' and handles both Whole and Real numbers based on 'v'
+ func (en *en_TK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_TK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_TK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_TK'
+@@ -278,56 +195,7 @@ func (en *en_TK) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_TK'
+@@ -336,84 +204,33 @@ func (en *en_TK) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_TK'
++func (en *en_TK) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_TK'
+-func (en *en_TK) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_TK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_TK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_TK) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_TO/en_TO.go b/en_TO/en_TO.go
+index e06d9e2..3f18534 100644
+--- a/en_TO/en_TO.go
++++ b/en_TO/en_TO.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_TO struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_TO' locale
+ func New() locales.Translator {
+ return &en_TO{
+- locale: "en_TO",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "T$", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"AKDT": "Alaska Daylight Time", "MDT": "Mountain Daylight Time", "WIB": "Western Indonesia Time", "ACWST": "Australian Central Western Standard Time", "HNT": "Newfoundland Standard Time", "AEST": "Australian Eastern Standard Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "HEOG": "West Greenland Summer Time", "AWST": "Australian Western Standard Time", "HKST": "Hong Kong Summer Time", "BOT": "Bolivia Time", "EDT": "Eastern Daylight Time", "WAT": "West Africa Standard Time", "SRT": "Suriname Time", "WESZ": "Western European Summer Time", "MEZ": "Central European Standard Time", "LHST": "Lord Howe Standard Time", "IST": "India Standard Time", "∅∅∅": "Amazon Summer Time", "JDT": "Japan Daylight Time", "OEZ": "Eastern European Standard Time", "CHAST": "Chatham Standard Time", "ChST": "Chamorro Standard Time", "EST": "Eastern Standard Time", "ACWDT": "Australian Central Western Daylight Time", "PST": "Pacific Standard Time", "NZDT": "New Zealand Daylight Time", "TMT": "Turkmenistan Standard Time", "CAT": "Central Africa Time", "MYT": "Malaysia Time", "HECU": "Cuba Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "BT": "Bhutan Time", "WEZ": "Western European Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "MESZ": "Central European Summer Time", "CLT": "Chile Standard Time", "HNEG": "East Greenland Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "ART": "Argentina Standard Time", "COST": "Colombia Summer Time", "HEEG": "East Greenland Summer Time", "VET": "Venezuela Time", "PDT": "Pacific Daylight Time", "HAT": "Newfoundland Daylight Time", "ARST": "Argentina Summer Time", "WITA": "Central Indonesia Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "ACST": "Australian Central Standard Time", "ACDT": "Australian Central Daylight Time", "CDT": "Central Daylight Time", "CLST": "Chile Summer Time", "JST": "Japan Standard Time", "GFT": "French Guiana Time", "WART": "Western Argentina Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "AKST": "Alaska Standard Time", "ADT": "Atlantic Daylight Time", "HNOG": "West Greenland Standard Time", "AWDT": "Australian Western Daylight Time", "WAST": "West Africa Summer Time", "ECT": "Ecuador Time", "WARST": "Western Argentina Summer Time", "COT": "Colombia Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "MST": "Mountain Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "UYT": "Uruguay Standard Time", "HKT": "Hong Kong Standard Time", "LHDT": "Lord Howe Daylight Time", "NZST": "New Zealand Standard Time", "UYST": "Uruguay Summer Time", "GYT": "Guyana Time", "AEDT": "Australian Eastern Daylight Time", "EAT": "East Africa Time", "OESZ": "Eastern European Summer Time", "GMT": "Greenwich Mean Time", "HNPMX": "Mexican Pacific Standard Time", "CST": "Central Standard Time", "WIT": "Eastern Indonesia Time", "TMST": "Turkmenistan Summer Time", "AST": "Atlantic Standard Time"},
++ locale: "en_TO",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "T$", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNT": "HNT", "CLT": "CLT", "BOT": "BOT", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "AKST": "AKST", "HAST": "HAST", "EDT": "EDT", "CDT": "CDT", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "MST": "MST", "IST": "IST", "WITA": "WITA", "ADT": "ADT", "ACST": "ACST", "HNEG": "HNEG", "LHDT": "LHDT", "GFT": "GFT", "HADT": "HADT", "ACWST": "ACWST", "VET": "VET", "UYT": "UYT", "WAST": "WAST", "OEZ": "OEZ", "WART": "WART", "WIT": "WIT", "HENOMX": "HENOMX", "MESZ": "MESZ", "PST": "PST", "HAT": "HAT", "AEDT": "AEDT", "SGT": "SGT", "OESZ": "OESZ", "COT": "COT", "MDT": "MDT", "LHST": "LHST", "HEPM": "HEPM", "JST": "JST", "CHAST": "CHAST", "AKDT": "AKDT", "MYT": "MYT", "AWDT": "AWDT", "AEST": "AEST", "GYT": "GYT", "SAST": "SAST", "GMT": "GMT", "ART": "ART", "EAT": "EAT", "HNCU": "HNCU", "WAT": "WAT", "HNPMX": "HNPMX", "WEZ": "WEZ", "WARST": "WARST", "HKT": "HKT", "CLST": "CLST", "ACDT": "ACDT", "HEEG": "HEEG", "JDT": "JDT", "WIB": "WIB", "CST": "CST", "HEOG": "HEOG", "NZST": "NZST", "UYST": "UYST", "TMT": "TMT", "HNOG": "HNOG", "TMST": "TMST", "CAT": "CAT", "ECT": "ECT", "ChST": "ChST", "AWST": "AWST", "HECU": "HECU", "COST": "COST", "SRT": "SRT", "ARST": "ARST", "HKST": "HKST", "AST": "AST", "MEZ": "MEZ", "BT": "BT", "CHADT": "CHADT", "EST": "EST", "NZDT": "NZDT", "PDT": "PDT", "HEPMX": "HEPMX", "WESZ": "WESZ"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_TO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_TO) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_TO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_TO) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_TO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_TO) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_TO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_TO' and handles both Whole and Real numbers based on 'v'
+ func (en *en_TO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_TO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_TO) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_TO'
+@@ -278,56 +195,7 @@ func (en *en_TO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_TO'
+@@ -336,84 +204,33 @@ func (en *en_TO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_TO'
++func (en *en_TO) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_TO'
+-func (en *en_TO) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_TO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_TO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_TO) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_TO) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_TO) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_TO) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_TO) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_TT/en_TT.go b/en_TT/en_TT.go
+index 267c50b..88522f3 100644
+--- a/en_TT/en_TT.go
++++ b/en_TT/en_TT.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_TT struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_TT' locale
+ func New() locales.Translator {
+ return &en_TT{
+- locale: "en_TT",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "$", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HEPMX": "Mexican Pacific Daylight Time", "PDT": "Pacific Daylight Time", "WESZ": "Western European Summer Time", "ACWDT": "Australian Central Western Daylight Time", "TMT": "Turkmenistan Standard Time", "HEEG": "East Greenland Summer Time", "NZST": "New Zealand Standard Time", "CLT": "Chile Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AST": "Atlantic Standard Time", "AKDT": "Alaska Daylight Time", "ACWST": "Australian Central Western Standard Time", "LHST": "Lord Howe Standard Time", "EDT": "Eastern Daylight Time", "MDT": "Macau Summer Time", "VET": "Venezuela Time", "AWST": "Australian Western Standard Time", "WITA": "Central Indonesia Time", "SAST": "South Africa Standard Time", "EAT": "East Africa Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "COST": "Colombia Summer Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "CST": "Central Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "IST": "India Standard Time", "WAST": "West Africa Summer Time", "AKST": "Alaska Standard Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "BOT": "Bolivia Time", "OESZ": "Eastern European Summer Time", "WART": "Western Argentina Standard Time", "GMT": "Greenwich Mean Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "CLST": "Chile Summer Time", "GFT": "French Guiana Time", "AWDT": "Australian Western Daylight Time", "CHADT": "Chatham Daylight Time", "HNCU": "Cuba Standard Time", "HKST": "Hong Kong Summer Time", "∅∅∅": "Azores Summer Time", "PST": "Pacific Standard Time", "MEZ": "Central European Standard Time", "ACST": "Australian Central Standard Time", "HECU": "Cuba Daylight Time", "WIB": "Western Indonesia Time", "HAT": "Newfoundland Daylight Time", "AEST": "Australian Eastern Standard Time", "NZDT": "New Zealand Daylight Time", "JDT": "Japan Daylight Time", "TMST": "Turkmenistan Summer Time", "CAT": "Central Africa Time", "SGT": "Singapore Standard Time", "GYT": "Guyana Time", "CDT": "Central Daylight Time", "WEZ": "Western European Standard Time", "HNT": "Newfoundland Standard Time", "CHAST": "Chatham Standard Time", "WAT": "West Africa Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "WIT": "Eastern Indonesia Time", "HKT": "Hong Kong Standard Time", "MESZ": "Central European Summer Time", "JST": "Japan Standard Time", "ChST": "Chamorro Standard Time", "HNEG": "East Greenland Standard Time", "HNOG": "West Greenland Standard Time", "WARST": "Western Argentina Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "MST": "Macau Standard Time", "ADT": "Atlantic Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "BT": "Bhutan Time", "SRT": "Suriname Time", "LHDT": "Lord Howe Daylight Time", "EST": "Eastern Standard Time", "OEZ": "Eastern European Standard Time", "UYT": "Uruguay Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HEOG": "West Greenland Summer Time", "ACDT": "Australian Central Daylight Time"},
++ locale: "en_TT",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "$", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WART": "WART", "COST": "COST", "NZDT": "NZDT", "UYT": "UYT", "PDT": "PDT", "AEST": "AEST", "EDT": "EDT", "CST": "CST", "ECT": "ECT", "WIB": "WIB", "BOT": "BOT", "ACDT": "ACDT", "LHDT": "LHDT", "HEPM": "HEPM", "SRT": "SRT", "TMT": "TMT", "HNPM": "HNPM", "JDT": "JDT", "HNT": "HNT", "ARST": "ARST", "MEZ": "MEZ", "AWST": "AWST", "AST": "AST", "WIT": "WIT", "SAST": "SAST", "CLST": "CLST", "ACWST": "ACWST", "VET": "VET", "HEPMX": "HEPMX", "OESZ": "OESZ", "EST": "EST", "HKT": "HKT", "MDT": "MDT", "∅∅∅": "∅∅∅", "CHAST": "CHAST", "HNCU": "HNCU", "ACST": "ACST", "HNEG": "HNEG", "BT": "BT", "HADT": "HADT", "MYT": "MYT", "OEZ": "OEZ", "WARST": "WARST", "GYT": "GYT", "HKST": "HKST", "HNNOMX": "HNNOMX", "WESZ": "WESZ", "GFT": "GFT", "CLT": "CLT", "CDT": "CDT", "MST": "MST", "EAT": "EAT", "UYST": "UYST", "IST": "IST", "HAT": "HAT", "CAT": "CAT", "JST": "JST", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "AKST": "AKST", "TMST": "TMST", "ADT": "ADT", "ART": "ART", "MESZ": "MESZ", "AEDT": "AEDT", "WEZ": "WEZ", "HNOG": "HNOG", "ChST": "ChST", "HEEG": "HEEG", "HECU": "HECU", "WAST": "WAST", "AWDT": "AWDT", "SGT": "SGT", "PST": "PST", "CHADT": "CHADT", "AKDT": "AKDT", "WITA": "WITA", "NZST": "NZST", "HAST": "HAST", "HENOMX": "HENOMX", "LHST": "LHST", "GMT": "GMT", "WAT": "WAT", "COT": "COT", "HEOG": "HEOG"},
+ }
+ }
+ 
+@@ -112,8 +89,8 @@ func (en *en_TT) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_TT) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
++ nMod10 := math.Mod(n, 10)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +115,7 @@ func (en *en_TT) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_TT) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_TT) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_TT) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_TT) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_TT) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_TT) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_TT' and handles both Whole and Real numbers based on 'v'
+ func (en *en_TT) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_TT' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_TT) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_TT'
+@@ -278,56 +195,7 @@ func (en *en_TT) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_TT'
+@@ -336,84 +204,33 @@ func (en *en_TT) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_TT'
++func (en *en_TT) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_TT'
+-func (en *en_TT) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_TT) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_TT) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_TT) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_TT) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_TT) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_TT) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_TT) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_TV/en_TV.go b/en_TV/en_TV.go
+index f1e869d..4f0f9b1 100644
+--- a/en_TV/en_TV.go
++++ b/en_TV/en_TV.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_TV struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_TV' locale
+ func New() locales.Translator {
+ return &en_TV{
+- locale: "en_TV",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "$", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"COST": "Colombia Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "ADT": "Atlantic Daylight Time", "WIB": "Western Indonesia Time", "JST": "Japan Standard Time", "HNEG": "East Greenland Standard Time", "ECT": "Ecuador Time", "WART": "Western Argentina Standard Time", "WIT": "Eastern Indonesia Time", "ARST": "Argentina Summer Time", "AEST": "Australian Eastern Standard Time", "VET": "Venezuela Time", "LHDT": "Lord Howe Daylight Time", "SAST": "South Africa Standard Time", "EAT": "East Africa Time", "COT": "Colombia Standard Time", "AST": "Atlantic Standard Time", "AKDT": "Alaska Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "WESZ": "Western European Summer Time", "AWDT": "Australian Western Daylight Time", "WAT": "West Africa Standard Time", "MDT": "Macau Summer Time", "GYT": "Guyana Time", "CDT": "Central Daylight Time", "PDT": "Pacific Daylight Time", "HECU": "Cuba Daylight Time", "AKST": "Alaska Standard Time", "WEZ": "Western European Standard Time", "CHADT": "Chatham Daylight Time", "ACST": "Australian Central Standard Time", "CAT": "Central Africa Time", "SGT": "Singapore Standard Time", "JDT": "Japan Daylight Time", "HNOG": "West Greenland Standard Time", "HNT": "Newfoundland Standard Time", "ART": "Argentina Standard Time", "MESZ": "Central European Summer Time", "TMT": "Turkmenistan Standard Time", "WAST": "West Africa Summer Time", "ACWDT": "Australian Central Western Daylight Time", "SRT": "Suriname Time", "WITA": "Central Indonesia Time", "CLST": "Chile Summer Time", "TMST": "Turkmenistan Summer Time", "OEZ": "Eastern European Standard Time", "MST": "Macau Standard Time", "HEEG": "East Greenland Summer Time", "ACDT": "Australian Central Daylight Time", "MYT": "Malaysia Time", "HAT": "Newfoundland Daylight Time", "MEZ": "Central European Standard Time", "NZST": "New Zealand Standard Time", "CHAST": "Chatham Standard Time", "IST": "India Standard Time", "UYT": "Uruguay Standard Time", "UYST": "Uruguay Summer Time", "CST": "Central Standard Time", "HKT": "Hong Kong Standard Time", "NZDT": "New Zealand Daylight Time", "BOT": "Bolivia Time", "OESZ": "Eastern European Summer Time", "HNCU": "Cuba Standard Time", "GFT": "French Guiana Time", "HNPMX": "Mexican Pacific Standard Time", "BT": "Bhutan Time", "AEDT": "Australian Eastern Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "∅∅∅": "Amazon Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "PST": "Pacific Standard Time", "ChST": "Chamorro Standard Time", "ACWST": "Australian Central Western Standard Time", "AWST": "Australian Western Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "GMT": "Greenwich Mean Time", "EST": "Eastern Standard Time", "EDT": "Eastern Daylight Time", "HEOG": "West Greenland Summer Time", "LHST": "Lord Howe Standard Time", "CLT": "Chile Standard Time", "WARST": "Western Argentina Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HKST": "Hong Kong Summer Time"},
++ locale: "en_TV",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "$", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CLST": "CLST", "NZST": "NZST", "HAST": "HAST", "MYT": "MYT", "JST": "JST", "HAT": "HAT", "TMST": "TMST", "ChST": "ChST", "PDT": "PDT", "AEST": "AEST", "WARST": "WARST", "EST": "EST", "MST": "MST", "OESZ": "OESZ", "WART": "WART", "HKT": "HKT", "HECU": "HECU", "GFT": "GFT", "COST": "COST", "EAT": "EAT", "LHDT": "LHDT", "BT": "BT", "ACWST": "ACWST", "AEDT": "AEDT", "HKST": "HKST", "HADT": "HADT", "PST": "PST", "WEZ": "WEZ", "SRT": "SRT", "ACST": "ACST", "WESZ": "WESZ", "WIT": "WIT", "AST": "AST", "BOT": "BOT", "EDT": "EDT", "HENOMX": "HENOMX", "UYT": "UYT", "WAT": "WAT", "GYT": "GYT", "SAST": "SAST", "HEOG": "HEOG", "CLT": "CLT", "CAT": "CAT", "HEPM": "HEPM", "AWST": "AWST", "SGT": "SGT", "OEZ": "OEZ", "HNOG": "HNOG", "GMT": "GMT", "ADT": "ADT", "MEZ": "MEZ", "HNPM": "HNPM", "JDT": "JDT", "ACWDT": "ACWDT", "MESZ": "MESZ", "WAST": "WAST", "TMT": "TMT", "ART": "ART", "HEEG": "HEEG", "WIB": "WIB", "VET": "VET", "WITA": "WITA", "MDT": "MDT", "HNNOMX": "HNNOMX", "LHST": "LHST", "CHADT": "CHADT", "UYST": "UYST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "AWDT": "AWDT", "HNPMX": "HNPMX", "HNT": "HNT", "ECT": "ECT", "NZDT": "NZDT", "CST": "CST", "CDT": "CDT", "CHAST": "CHAST", "HNCU": "HNCU", "HEPMX": "HEPMX", "AKDT": "AKDT", "COT": "COT", "ACDT": "ACDT", "IST": "IST", "AKST": "AKST", "ARST": "ARST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_TV) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_TV) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_TV) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_TV) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_TV) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_TV) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_TV) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_TV' and handles both Whole and Real numbers based on 'v'
+ func (en *en_TV) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_TV' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_TV) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_TV'
+@@ -278,56 +195,7 @@ func (en *en_TV) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_TV'
+@@ -336,84 +204,33 @@ func (en *en_TV) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_TV'
++func (en *en_TV) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_TV'
+-func (en *en_TV) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_TV) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_TV) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_TV) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_TZ/en_TZ.go b/en_TZ/en_TZ.go
+index f7a0726..e18d2f6 100644
+--- a/en_TZ/en_TZ.go
++++ b/en_TZ/en_TZ.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_TZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_TZ' locale
+ func New() locales.Translator {
+ return &en_TZ{
+- locale: "en_TZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TSh", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"UYST": "Uruguay Summer Time", "HNOG": "West Greenland Standard Time", "IST": "India Standard Time", "OEZ": "Eastern European Standard Time", "ACST": "Australian Central Standard Time", "AEST": "Australian Eastern Standard Time", "HNPMX": "Mexican Pacific Standard Time", "AST": "Atlantic Standard Time", "VET": "Venezuela Time", "HAST": "Hawaii-Aleutian Standard Time", "NZDT": "New Zealand Daylight Time", "BOT": "Bolivia Time", "OESZ": "Eastern European Summer Time", "AWDT": "Australian Western Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "MYT": "Malaysia Time", "UYT": "Uruguay Standard Time", "HKST": "Hong Kong Summer Time", "AEDT": "Australian Eastern Daylight Time", "CHAST": "Chatham Standard Time", "JST": "Japan Standard Time", "ChST": "Chamorro Standard Time", "AKDT": "Alaska Daylight Time", "CHADT": "Chatham Daylight Time", "HEEG": "East Greenland Summer Time", "MDT": "Macau Summer Time", "ADT": "Atlantic Daylight Time", "ACWST": "Australian Central Western Standard Time", "ARST": "Argentina Summer Time", "PDT": "Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "WART": "Western Argentina Standard Time", "EAT": "East Africa Time", "WARST": "Western Argentina Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "GYT": "Guyana Time", "HNEG": "East Greenland Standard Time", "TMT": "Turkmenistan Standard Time", "ACWDT": "Australian Central Western Daylight Time", "HNT": "Newfoundland Standard Time", "WAT": "West Africa Standard Time", "HNCU": "Cuba Standard Time", "AKST": "Alaska Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "MESZ": "Central European Summer Time", "CLT": "Chile Standard Time", "COST": "Colombia Summer Time", "WEZ": "Western European Standard Time", "HAT": "Newfoundland Daylight Time", "CAT": "Central Africa Time", "BT": "Bhutan Time", "PST": "Pacific Standard Time", "WITA": "Central Indonesia Time", "ACDT": "Australian Central Daylight Time", "ECT": "Ecuador Time", "WIB": "Western Indonesia Time", "LHDT": "Lord Howe Daylight Time", "SAST": "South Africa Standard Time", "JDT": "Japan Daylight Time", "SGT": "Singapore Standard Time", "GMT": "Greenwich Mean Time", "MST": "Macau Standard Time", "EST": "Eastern Standard Time", "WIT": "Eastern Indonesia Time", "MEZ": "Central European Standard Time", "CLST": "Chile Summer Time", "TMST": "Turkmenistan Summer Time", "HECU": "Cuba Daylight Time", "WESZ": "Western European Summer Time", "ART": "Argentina Standard Time", "AWST": "Australian Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "GFT": "French Guiana Time", "WAST": "West Africa Summer Time", "EDT": "Eastern Daylight Time", "SRT": "Suriname Time", "HEOG": "West Greenland Summer Time", "HKT": "Hong Kong Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "∅∅∅": "Amazon Summer Time", "COT": "Colombia Standard Time"},
++ locale: "en_TZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TSh", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"EST": "EST", "ACST": "ACST", "HNPM": "HNPM", "PST": "PST", "HNCU": "HNCU", "WESZ": "WESZ", "HAT": "HAT", "WARST": "WARST", "ECT": "ECT", "∅∅∅": "∅∅∅", "TMST": "TMST", "GMT": "GMT", "JST": "JST", "JDT": "JDT", "HECU": "HECU", "HNPMX": "HNPMX", "WART": "WART", "HKT": "HKT", "CST": "CST", "OESZ": "OESZ", "GYT": "GYT", "HNEG": "HNEG", "HENOMX": "HENOMX", "AEDT": "AEDT", "IST": "IST", "OEZ": "OEZ", "CDT": "CDT", "CLT": "CLT", "NZST": "NZST", "NZDT": "NZDT", "MST": "MST", "MEZ": "MEZ", "ACWDT": "ACWDT", "EDT": "EDT", "HKST": "HKST", "EAT": "EAT", "WEZ": "WEZ", "COST": "COST", "HEOG": "HEOG", "SRT": "SRT", "WIT": "WIT", "TMT": "TMT", "MDT": "MDT", "UYT": "UYT", "AKDT": "AKDT", "WITA": "WITA", "WIB": "WIB", "CAT": "CAT", "ChST": "ChST", "HEPMX": "HEPMX", "HNOG": "HNOG", "SAST": "SAST", "ADT": "ADT", "HADT": "HADT", "ACDT": "ACDT", "MYT": "MYT", "HNT": "HNT", "ART": "ART", "LHDT": "LHDT", "CHADT": "CHADT", "COT": "COT", "ARST": "ARST", "PDT": "PDT", "WAST": "WAST", "HNNOMX": "HNNOMX", "AEST": "AEST", "UYST": "UYST", "AKST": "AKST", "HEEG": "HEEG", "LHST": "LHST", "HAST": "HAST", "HEPM": "HEPM", "AWST": "AWST", "BT": "BT", "CHAST": "CHAST", "AST": "AST", "BOT": "BOT", "MESZ": "MESZ", "AWDT": "AWDT", "ACWST": "ACWST", "VET": "VET", "SGT": "SGT", "WAT": "WAT", "GFT": "GFT", "CLST": "CLST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_TZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_TZ) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_TZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_TZ) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_TZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_TZ) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_TZ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_TZ' and handles both Whole and Real numbers based on 'v'
+ func (en *en_TZ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_TZ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_TZ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_TZ'
+@@ -278,56 +195,7 @@ func (en *en_TZ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_TZ'
+@@ -336,84 +204,33 @@ func (en *en_TZ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_TZ'
++func (en *en_TZ) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_TZ'
+-func (en *en_TZ) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_TZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_TZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_TZ) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_UG/en_UG.go b/en_UG/en_UG.go
+index 91afed6..91f1887 100644
+--- a/en_UG/en_UG.go
++++ b/en_UG/en_UG.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_UG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_UG' locale
+ func New() locales.Translator {
+ return &en_UG{
+- locale: "en_UG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "USh", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"LHDT": "Lord Howe Daylight Time", "OEZ": "Eastern European Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HAT": "Newfoundland Daylight Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "HKST": "Hong Kong Summer Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "MEZ": "Central European Standard Time", "AKST": "Alaska Standard Time", "WIT": "Eastern Indonesia Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "NZDT": "New Zealand Daylight Time", "HECU": "Cuba Daylight Time", "EST": "Eastern Standard Time", "HNT": "Newfoundland Standard Time", "MESZ": "Central European Summer Time", "CLT": "Chile Standard Time", "SGT": "Singapore Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "VET": "Venezuela Time", "JST": "Japan Standard Time", "CLST": "Chile Summer Time", "GFT": "French Guiana Time", "OESZ": "Eastern European Summer Time", "BT": "Bhutan Time", "CHAST": "Chatham Standard Time", "EAT": "East Africa Time", "GMT": "Greenwich Mean Time", "UYST": "Uruguay Summer Time", "LHST": "Lord Howe Standard Time", "ACST": "Australian Central Standard Time", "MYT": "Malaysia Time", "AWDT": "Australian Western Daylight Time", "SAST": "South Africa Standard Time", "WART": "Western Argentina Standard Time", "ChST": "Chamorro Standard Time", "GYT": "Guyana Time", "SRT": "Suriname Time", "ACWST": "Australian Central Western Standard Time", "HNOG": "West Greenland Standard Time", "WEZ": "Western European Standard Time", "TMT": "Turkmenistan Standard Time", "WESZ": "Western European Summer Time", "WITA": "Central Indonesia Time", "HNEG": "East Greenland Standard Time", "WAST": "West Africa Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "HNCU": "Cuba Standard Time", "PST": "Pacific Standard Time", "∅∅∅": "Amazon Summer Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "WAT": "West Africa Standard Time", "HEOG": "West Greenland Summer Time", "PDT": "Pacific Daylight Time", "EDT": "Eastern Daylight Time", "CST": "Central Standard Time", "CDT": "Central Daylight Time", "MST": "Mountain Standard Time", "NZST": "New Zealand Standard Time", "UYT": "Uruguay Standard Time", "ACWDT": "Australian Central Western Daylight Time", "CHADT": "Chatham Daylight Time", "HEEG": "East Greenland Summer Time", "ECT": "Ecuador Time", "AST": "Atlantic Standard Time", "TMST": "Turkmenistan Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "AKDT": "Alaska Daylight Time", "WIB": "Western Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "AEDT": "Australian Eastern Daylight Time", "IST": "India Standard Time", "JDT": "Japan Daylight Time", "ADT": "Atlantic Daylight Time", "MDT": "Mountain Daylight Time", "HKT": "Hong Kong Standard Time", "AEST": "Australian Eastern Standard Time", "AWST": "Australian Western Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time"},
++ locale: "en_UG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "USh", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SGT": "SGT", "WAT": "WAT", "HNOG": "HNOG", "TMST": "TMST", "CAT": "CAT", "CLT": "CLT", "HNEG": "HNEG", "PST": "PST", "HKST": "HKST", "SRT": "SRT", "∅∅∅": "∅∅∅", "VET": "VET", "AKST": "AKST", "WART": "WART", "WIT": "WIT", "HKT": "HKT", "LHST": "LHST", "ACWDT": "ACWDT", "HADT": "HADT", "BT": "BT", "UYT": "UYT", "WEZ": "WEZ", "HNCU": "HNCU", "HEPMX": "HEPMX", "BOT": "BOT", "CHADT": "CHADT", "WAST": "WAST", "ACWST": "ACWST", "OEZ": "OEZ", "GYT": "GYT", "MST": "MST", "AST": "AST", "GMT": "GMT", "MESZ": "MESZ", "LHDT": "LHDT", "IST": "IST", "OESZ": "OESZ", "CLST": "CLST", "ECT": "ECT", "ChST": "ChST", "HENOMX": "HENOMX", "AWDT": "AWDT", "UYST": "UYST", "ARST": "ARST", "AKDT": "AKDT", "HAT": "HAT", "EAT": "EAT", "ACST": "ACST", "JDT": "JDT", "EDT": "EDT", "CDT": "CDT", "ACDT": "ACDT", "HEEG": "HEEG", "AEST": "AEST", "HNPMX": "HNPMX", "CHAST": "CHAST", "HECU": "HECU", "WIB": "WIB", "HAST": "HAST", "MEZ": "MEZ", "HNNOMX": "HNNOMX", "AWST": "AWST", "PDT": "PDT", "WARST": "WARST", "COST": "COST", "HEOG": "HEOG", "CST": "CST", "HNPM": "HNPM", "EST": "EST", "TMT": "TMT", "WITA": "WITA", "JST": "JST", "AEDT": "AEDT", "GFT": "GFT", "SAST": "SAST", "COT": "COT", "MDT": "MDT", "NZDT": "NZDT", "HEPM": "HEPM", "HNT": "HNT", "NZST": "NZST", "ADT": "ADT", "ART": "ART", "MYT": "MYT", "WESZ": "WESZ"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_UG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_UG) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_UG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_UG) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_UG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_UG) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_UG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_UG' and handles both Whole and Real numbers based on 'v'
+ func (en *en_UG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_UG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_UG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_UG'
+@@ -278,56 +195,7 @@ func (en *en_UG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_UG'
+@@ -336,84 +204,33 @@ func (en *en_UG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_UG'
++func (en *en_UG) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_UG'
+-func (en *en_UG) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_UG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_UG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_UG) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+diff --git a/en_UM/en_UM.go b/en_UM/en_UM.go
+index 5403639..2efaeac 100644
+--- a/en_UM/en_UM.go
++++ b/en_UM/en_UM.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_UM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_UM' locale
+ func New() locales.Translator {
+ return &en_UM{
+- locale: "en_UM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HNPMX": "Mexican Pacific Standard Time", "ADT": "Atlantic Daylight Time", "ACWST": "Australian Central Western Standard Time", "AWDT": "Australian Western Daylight Time", "HECU": "Cuba Daylight Time", "OEZ": "Eastern European Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "UYST": "Uruguay Summer Time", "AST": "Atlantic Standard Time", "JST": "Japan Standard Time", "HEEG": "East Greenland Summer Time", "GFT": "French Guiana Time", "WAT": "West Africa Standard Time", "OESZ": "Eastern European Summer Time", "HAT": "Newfoundland Daylight Time", "NZDT": "New Zealand Daylight Time", "SAST": "South Africa Standard Time", "MESZ": "Central European Summer Time", "LHDT": "Lord Howe Daylight Time", "IST": "India Standard Time", "WART": "Western Argentina Standard Time", "EDT": "Eastern Daylight Time", "BT": "Bhutan Time", "PST": "Pacific Standard Time", "HEOG": "West Greenland Summer Time", "MST": "Macau Standard Time", "UYT": "Uruguay Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "TMST": "Turkmenistan Summer Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "HNEG": "East Greenland Standard Time", "EST": "Eastern Standard Time", "WESZ": "Western European Summer Time", "HKST": "Hong Kong Summer Time", "CHADT": "Chatham Daylight Time", "MEZ": "Central European Standard Time", "ChST": "Chamorro Standard Time", "EAT": "East Africa Time", "GYT": "Guyana Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "HKT": "Hong Kong Standard Time", "AKDT": "Alaska Daylight Time", "CLST": "Chile Summer Time", "∅∅∅": "Amazon Summer Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "AEDT": "Australian Eastern Daylight Time", "NZST": "New Zealand Standard Time", "CLT": "Chile Standard Time", "ACST": "Australian Central Standard Time", "CAT": "Central Africa Time", "COT": "Colombia Standard Time", "GMT": "Greenwich Mean Time", "MYT": "Malaysia Time", "WEZ": "Western European Standard Time", "ACWDT": "Australian Central Western Daylight Time", "CHAST": "Chatham Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNT": "Newfoundland Standard Time", "AWST": "Australian Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "TMT": "Turkmenistan Standard Time", "CDT": "Central Daylight Time", "WAST": "West Africa Summer Time", "MDT": "Macau Summer Time", "AKST": "Alaska Standard Time", "CST": "Central Standard Time", "WIB": "Western Indonesia Time", "HAST": "Hawaii-Aleutian Standard Time", "HNOG": "West Greenland Standard Time", "WITA": "Central Indonesia Time", "LHST": "Lord Howe Standard Time", "JDT": "Japan Daylight Time", "ECT": "Ecuador Time", "WIT": "Eastern Indonesia Time", "PDT": "Pacific Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "BOT": "Bolivia Time", "ACDT": "Australian Central Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "VET": "Venezuela Time", "SRT": "Suriname Time", "AEST": "Australian Eastern Standard Time"},
++ locale: "en_UM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AWDT": "AWDT", "LHST": "LHST", "LHDT": "LHDT", "AEDT": "AEDT", "CHAST": "CHAST", "CHADT": "CHADT", "HEOG": "HEOG", "MESZ": "MESZ", "GMT": "GMT", "COT": "COT", "ACST": "ACST", "HNPMX": "HNPMX", "AKST": "AKST", "GFT": "GFT", "HAT": "HAT", "WART": "WART", "HKST": "HKST", "BOT": "BOT", "NZST": "NZST", "ARST": "ARST", "WIB": "WIB", "SRT": "SRT", "HNPM": "HNPM", "HEPM": "HEPM", "ACWST": "ACWST", "∅∅∅": "∅∅∅", "IST": "IST", "WAST": "WAST", "MDT": "MDT", "EDT": "EDT", "AKDT": "AKDT", "WITA": "WITA", "PDT": "PDT", "HEPMX": "HEPMX", "HNOG": "HNOG", "HKT": "HKT", "MEZ": "MEZ", "HENOMX": "HENOMX", "WAT": "WAT", "ECT": "ECT", "ADT": "ADT", "HAST": "HAST", "JST": "JST", "UYST": "UYST", "COST": "COST", "HADT": "HADT", "HNEG": "HNEG", "WESZ": "WESZ", "OEZ": "OEZ", "WIT": "WIT", "EAT": "EAT", "WEZ": "WEZ", "GYT": "GYT", "CDT": "CDT", "AST": "AST", "BT": "BT", "MYT": "MYT", "ACWDT": "ACWDT", "OESZ": "OESZ", "WARST": "WARST", "EST": "EST", "CLT": "CLT", "HNNOMX": "HNNOMX", "AEST": "AEST", "HNCU": "HNCU", "SGT": "SGT", "TMT": "TMT", "TMST": "TMST", "ART": "ART", "HEEG": "HEEG", "CAT": "CAT", "CLST": "CLST", "ChST": "ChST", "HECU": "HECU", "VET": "VET", "SAST": "SAST", "CST": "CST", "JDT": "JDT", "AWST": "AWST", "UYT": "UYT", "NZDT": "NZDT", "ACDT": "ACDT", "PST": "PST", "HNT": "HNT", "MST": "MST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_UM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_UM) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_UM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_UM) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_UM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_UM) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_UM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_UM' and handles both Whole and Real numbers based on 'v'
+ func (en *en_UM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_UM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_UM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_UM'
+@@ -278,56 +195,7 @@ func (en *en_UM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_UM'
+@@ -336,68 +204,7 @@ func (en *en_UM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_UM'
+@@ -405,15 +212,15 @@ func (en *en_UM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x2f}...)
++ b = strconv.AppendInt(b, int64(t.Month()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +231,14 @@ func (en *en_UM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
++ b = append(b, []byte{0x20}...)
++ b = append(b, en.monthsAbbreviated[t.Month()]...)
++ b = append(b, []byte{0x2c}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +254,14 @@ func (en *en_UM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +279,15 @@ func (en *en_UM) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,13 +303,11 @@ func (en *en_UM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -497,13 +315,6 @@ func (en *en_UM) FmtTimeShort(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -513,13 +324,11 @@ func (en *en_UM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -534,13 +343,6 @@ func (en *en_UM) FmtTimeMedium(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -550,13 +352,11 @@ func (en *en_UM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -573,14 +373,6 @@ func (en *en_UM) FmtTimeLong(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ b = append(b, tz...)
+ 
+@@ -592,13 +384,11 @@ func (en *en_UM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -615,14 +405,6 @@ func (en *en_UM) FmtTimeFull(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ 
+ if btz, ok := en.timezones[tz]; ok {
+diff --git a/en_US/en_US.go b/en_US/en_US.go
+index 923a618..ee19fcc 100644
+--- a/en_US/en_US.go
++++ b/en_US/en_US.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_US struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_US' locale
+ func New() locales.Translator {
+ return &en_US{
+- locale: "en_US",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"MESZ": "Central European Summer Time", "JDT": "Japan Daylight Time", "HNEG": "East Greenland Standard Time", "GMT": "Greenwich Mean Time", "CST": "Central Standard Time", "WEZ": "Western European Standard Time", "PDT": "Pacific Daylight Time", "WIB": "Western Indonesia Time", "ART": "Argentina Standard Time", "SAST": "South Africa Standard Time", "ACDT": "Australian Central Daylight Time", "WAT": "West Africa Standard Time", "MST": "Macau Standard Time", "CDT": "Central Daylight Time", "ADT": "Atlantic Daylight Time", "HEEG": "East Greenland Summer Time", "COST": "Colombia Summer Time", "SGT": "Singapore Standard Time", "HNPMX": "Mexican Pacific Standard Time", "GYT": "Guyana Time", "VET": "Venezuela Time", "AST": "Atlantic Standard Time", "HNOG": "West Greenland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNT": "Newfoundland Standard Time", "AWDT": "Australian Western Daylight Time", "WESZ": "Western European Summer Time", "IST": "India Standard Time", "TMT": "Turkmenistan Standard Time", "BOT": "Bolivia Time", "ACST": "Australian Central Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "PST": "Pacific Standard Time", "LHDT": "Lord Howe Daylight Time", "CLT": "Chile Standard Time", "CHAST": "Chatham Standard Time", "∅∅∅": "Amazon Summer Time", "TMST": "Turkmenistan Summer Time", "COT": "Colombia Standard Time", "WIT": "Eastern Indonesia Time", "AWST": "Australian Western Standard Time", "AEST": "Australian Eastern Standard Time", "OESZ": "Eastern European Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "HKT": "Hong Kong Standard Time", "LHST": "Lord Howe Standard Time", "EDT": "Eastern Daylight Time", "AEDT": "Australian Eastern Daylight Time", "GFT": "French Guiana Time", "NZDT": "New Zealand Daylight Time", "CHADT": "Chatham Daylight Time", "MEZ": "Central European Standard Time", "WAST": "West Africa Summer Time", "HNCU": "Cuba Standard Time", "AKDT": "Alaska Daylight Time", "BT": "Bhutan Time", "ACWST": "Australian Central Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MDT": "Macau Summer Time", "HAT": "Newfoundland Daylight Time", "WITA": "Central Indonesia Time", "ChST": "Chamorro Standard Time", "CAT": "Central Africa Time", "ACWDT": "Australian Central Western Daylight Time", "HEOG": "West Greenland Summer Time", "CLST": "Chile Summer Time", "EAT": "East Africa Time", "OEZ": "Eastern European Standard Time", "UYT": "Uruguay Standard Time", "UYST": "Uruguay Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "WART": "Western Argentina Standard Time", "HECU": "Cuba Daylight Time", "MYT": "Malaysia Time", "ARST": "Argentina Summer Time", "NZST": "New Zealand Standard Time", "HKST": "Hong Kong Summer Time", "JST": "Japan Standard Time", "ECT": "Ecuador Time", "HNNOMX": "Northwest Mexico Standard Time", "WARST": "Western Argentina Summer Time", "EST": "Eastern Standard Time", "AKST": "Alaska Standard Time", "SRT": "Suriname Time"},
++ locale: "en_US",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HKT": "HKT", "CLT": "CLT", "CHADT": "CHADT", "UYT": "UYT", "UYST": "UYST", "HNPMX": "HNPMX", "GYT": "GYT", "EDT": "EDT", "MST": "MST", "ART": "ART", "HNT": "HNT", "COST": "COST", "TMT": "TMT", "SRT": "SRT", "ACWST": "ACWST", "VET": "VET", "OESZ": "OESZ", "WIB": "WIB", "CDT": "CDT", "ChST": "ChST", "LHST": "LHST", "AEST": "AEST", "CHAST": "CHAST", "AKDT": "AKDT", "OEZ": "OEZ", "WIT": "WIT", "AST": "AST", "IST": "IST", "WAT": "WAT", "CST": "CST", "NZDT": "NZDT", "HEPM": "HEPM", "ACST": "ACST", "HNEG": "HNEG", "AEDT": "AEDT", "SGT": "SGT", "AKST": "AKST", "GFT": "GFT", "HAT": "HAT", "BOT": "BOT", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "MYT": "MYT", "BT": "BT", "CLST": "CLST", "HENOMX": "HENOMX", "HNPM": "HNPM", "JST": "JST", "WAST": "WAST", "COT": "COT", "JDT": "JDT", "AWDT": "AWDT", "WESZ": "WESZ", "CAT": "CAT", "ECT": "ECT", "ADT": "ADT", "MESZ": "MESZ", "HEEG": "HEEG", "∅∅∅": "∅∅∅", "WEZ": "WEZ", "SAST": "SAST", "MDT": "MDT", "NZST": "NZST", "HAST": "HAST", "PST": "PST", "WARST": "WARST", "EST": "EST", "GMT": "GMT", "EAT": "EAT", "HADT": "HADT", "ACDT": "ACDT", "AWST": "AWST", "HNOG": "HNOG", "HKST": "HKST", "WITA": "WITA", "MEZ": "MEZ", "PDT": "PDT", "HEPMX": "HEPMX", "HEOG": "HEOG", "TMST": "TMST", "ACWDT": "ACWDT", "HNCU": "HNCU", "HECU": "HECU", "WART": "WART", "ARST": "ARST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_US) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_US) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_US) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_US) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_US) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_US) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_US) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_US' and handles both Whole and Real numbers based on 'v'
+ func (en *en_US) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_US' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_US) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_US'
+@@ -278,56 +195,7 @@ func (en *en_US) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_US'
+@@ -336,68 +204,7 @@ func (en *en_US) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_US'
+@@ -405,15 +212,15 @@ func (en *en_US) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x2f}...)
++ b = strconv.AppendInt(b, int64(t.Month()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +231,14 @@ func (en *en_US) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
++ b = append(b, []byte{0x20}...)
++ b = append(b, en.monthsAbbreviated[t.Month()]...)
++ b = append(b, []byte{0x2c}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +254,14 @@ func (en *en_US) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +279,15 @@ func (en *en_US) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,13 +303,11 @@ func (en *en_US) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -497,13 +315,6 @@ func (en *en_US) FmtTimeShort(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -513,13 +324,11 @@ func (en *en_US) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -534,13 +343,6 @@ func (en *en_US) FmtTimeMedium(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -550,13 +352,11 @@ func (en *en_US) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -573,14 +373,6 @@ func (en *en_US) FmtTimeLong(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ b = append(b, tz...)
+ 
+@@ -592,13 +384,11 @@ func (en *en_US) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -615,14 +405,6 @@ func (en *en_US) FmtTimeFull(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ 
+ if btz, ok := en.timezones[tz]; ok {
+diff --git a/en_US_POSIX/en_US_POSIX.go b/en_US_POSIX/en_US_POSIX.go
+index 61f8489..982865c 100644
+--- a/en_US_POSIX/en_US_POSIX.go
++++ b/en_US_POSIX/en_US_POSIX.go
+@@ -48,30 +48,13 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{2, 6},
+ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+ pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+ perMille: "0/00",
+ timeSeparator: ":",
+ inifinity: "INF",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"CHADT": "Chatham Daylight Time", "COST": "Colombia Summer Time", "UYT": "Uruguay Standard Time", "AKDT": "Alaska Daylight Time", "MST": "Mountain Standard Time", "AEST": "Australian Eastern Standard Time", "AWST": "Australian Western Standard Time", "WITA": "Central Indonesia Time", "UYST": "Uruguay Summer Time", "ACWST": "Australian Central Western Standard Time", "ECT": "Ecuador Time", "OESZ": "Eastern European Summer Time", "WART": "Western Argentina Standard Time", "HECU": "Cuba Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "NZDT": "New Zealand Daylight Time", "HNEG": "East Greenland Standard Time", "COT": "Colombia Standard Time", "EST": "Eastern Standard Time", "HNPMX": "Mexican Pacific Standard Time", "CST": "Central Standard Time", "HNOG": "West Greenland Standard Time", "ACDT": "Australian Central Daylight Time", "AST": "Atlantic Standard Time", "HKST": "Hong Kong Summer Time", "HNT": "Newfoundland Standard Time", "WESZ": "Western European Summer Time", "LHDT": "Lord Howe Daylight Time", "EAT": "East Africa Time", "GMT": "Greenwich Mean Time", "AEDT": "Australian Eastern Daylight Time", "VET": "Venezuela Time", "NZST": "New Zealand Standard Time", "BOT": "Bolivia Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "WIB": "Western Indonesia Time", "WEZ": "Western European Standard Time", "MESZ": "Central European Summer Time", "CLT": "Chile Standard Time", "CLST": "Chile Summer Time", "WAST": "West Africa Summer Time", "GYT": "Guyana Time", "HADT": "Hawaii-Aleutian Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SAST": "South Africa Standard Time", "JST": "Japan Standard Time", "TMST": "Turkmenistan Summer Time", "CDT": "Central Daylight Time", "ARST": "Argentina Summer Time", "SRT": "Suriname Time", "AWDT": "Australian Western Daylight Time", "ACST": "Australian Central Standard Time", "MDT": "Mountain Daylight Time", "CHAST": "Chatham Standard Time", "TMT": "Turkmenistan Standard Time", "CAT": "Central Africa Time", "WAT": "West Africa Standard Time", "HNCU": "Cuba Standard Time", "WIT": "Eastern Indonesia Time", "HEOG": "West Greenland Summer Time", "LHST": "Lord Howe Standard Time", "IST": "India Standard Time", "WARST": "Western Argentina Summer Time", "AKST": "Alaska Standard Time", "BT": "Bhutan Time", "ACWDT": "Australian Central Western Daylight Time", "EDT": "Eastern Daylight Time", "ADT": "Atlantic Daylight Time", "MYT": "Malaysia Time", "PST": "Pacific Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "ChST": "Chamorro Standard Time", "HEEG": "East Greenland Summer Time", "OEZ": "Eastern European Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "ART": "Argentina Standard Time", "HAT": "Newfoundland Daylight Time", "HKT": "Hong Kong Standard Time", "MEZ": "Central European Standard Time", "JDT": "Japan Daylight Time", "∅∅∅": "Amazon Summer Time", "GFT": "French Guiana Time", "HENOMX": "Northwest Mexico Daylight Time", "PDT": "Pacific Daylight Time"},
++ timezones: map[string]string{"VET": "VET", "HECU": "HECU", "WIT": "WIT", "SAST": "SAST", "GYT": "GYT", "EAT": "EAT", "ACDT": "ACDT", "AEST": "AEST", "EDT": "EDT", "MDT": "MDT", "ARST": "ARST", "AWDT": "AWDT", "EST": "EST", "HAT": "HAT", "ChST": "ChST", "HAST": "HAST", "JST": "JST", "ACWST": "ACWST", "WESZ": "WESZ", "AKDT": "AKDT", "WARST": "WARST", "HKST": "HKST", "CAT": "CAT", "ACST": "ACST", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "CLST": "CLST", "NZDT": "NZDT", "HNPMX": "HNPMX", "WAT": "WAT", "AKST": "AKST", "WITA": "WITA", "LHST": "LHST", "PDT": "PDT", "WEZ": "WEZ", "OESZ": "OESZ", "TMST": "TMST", "SRT": "SRT", "CLT": "CLT", "MESZ": "MESZ", "HNCU": "HNCU", "WAST": "WAST", "HADT": "HADT", "MST": "MST", "OEZ": "OEZ", "CDT": "CDT", "GMT": "GMT", "HEPM": "HEPM", "CHADT": "CHADT", "BT": "BT", "CHAST": "CHAST", "WART": "WART", "TMT": "TMT", "HNOG": "HNOG", "AST": "AST", "HNT": "HNT", "HEOG": "HEOG", "ART": "ART", "HNEG": "HNEG", "HEEG": "HEEG", "LHDT": "LHDT", "HKT": "HKT", "WIB": "WIB", "MYT": "MYT", "UYST": "UYST", "GFT": "GFT", "COT": "COT", "ADT": "ADT", "HENOMX": "HENOMX", "PST": "PST", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "SGT": "SGT", "COST": "COST", "NZST": "NZST", "ECT": "ECT", "MEZ": "MEZ", "HNPM": "HNPM", "UYT": "UYT", "BOT": "BOT", "HEPMX": "HEPMX", "CST": "CST", "AWST": "AWST", "JDT": "JDT", "IST": "IST"},
+ }
+ }
+ 
+@@ -138,7 +121,7 @@ func (en *en_US_POSIX) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_US_POSIX) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +131,7 @@ func (en *en_US_POSIX) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_US_POSIX) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +141,7 @@ func (en *en_US_POSIX) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_US_POSIX) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -205,7 +188,7 @@ func (en *en_US_POSIX) WeekdaysWide() []string {
+ func (en *en_US_POSIX) FmtNumber(num float64, v uint64) string {
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2
++ l := len(s) + 0
+ 
+ b := make([]byte, 0, l)
+ 
+@@ -235,7 +218,7 @@ func (en *en_US_POSIX) FmtNumber(num float64, v uint64) string {
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_US_POSIX) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
++ l := len(s) + 0
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -267,7 +250,7 @@ func (en *en_US_POSIX) FmtCurrency(num float64, v uint64, currency currency.Type
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4
++ l := len(s) + len(symbol) + 2
+ 
+ b := make([]byte, 0, l)
+ 
+@@ -318,7 +301,7 @@ func (en *en_US_POSIX) FmtAccounting(num float64, v uint64, currency currency.Ty
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4
++ l := len(s) + len(symbol) + 2
+ 
+ b := make([]byte, 0, l)
+ 
+@@ -380,17 +363,6 @@ func (en *en_US_POSIX) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -399,17 +371,6 @@ func (en *en_US_POSIX) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -418,17 +379,6 @@ func (en *en_US_POSIX) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -437,19 +387,6 @@ func (en *en_US_POSIX) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -458,28 +395,6 @@ func (en *en_US_POSIX) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -488,35 +403,6 @@ func (en *en_US_POSIX) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -525,40 +411,6 @@ func (en *en_US_POSIX) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -567,44 +419,5 @@ func (en *en_US_POSIX) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_VC/en_VC.go b/en_VC/en_VC.go
+index 2fa6c50..69b11b0 100644
+--- a/en_VC/en_VC.go
++++ b/en_VC/en_VC.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_VC struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_VC' locale
+ func New() locales.Translator {
+ return &en_VC{
+- locale: "en_VC",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "$", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"HNT": "Newfoundland Standard Time", "AEDT": "Australian Eastern Daylight Time", "WITA": "Central Indonesia Time", "∅∅∅": "Peru Summer Time", "WART": "Western Argentina Standard Time", "MST": "Macau Standard Time", "AST": "Atlantic Standard Time", "ACWDT": "Australian Central Western Daylight Time", "IST": "India Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "CHAST": "Chatham Standard Time", "ChST": "Chamorro Standard Time", "HNCU": "Cuba Standard Time", "AKST": "Alaska Standard Time", "PST": "Pacific Standard Time", "ACWST": "Australian Central Western Standard Time", "HEOG": "West Greenland Summer Time", "HAST": "Hawaii-Aleutian Standard Time", "WEZ": "Western European Standard Time", "JST": "Japan Standard Time", "EAT": "East Africa Time", "GMT": "Greenwich Mean Time", "MDT": "Macau Summer Time", "UYT": "Uruguay Standard Time", "WIB": "Western Indonesia Time", "VET": "Venezuela Time", "WESZ": "Western European Summer Time", "CHADT": "Chatham Daylight Time", "HNEG": "East Greenland Standard Time", "TMST": "Turkmenistan Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "AWST": "Australian Western Standard Time", "HKST": "Hong Kong Summer Time", "NZST": "New Zealand Standard Time", "HEEG": "East Greenland Summer Time", "COT": "Colombia Standard Time", "EDT": "Eastern Daylight Time", "AKDT": "Alaska Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HNPMX": "Mexican Pacific Standard Time", "UYST": "Uruguay Summer Time", "ARST": "Argentina Summer Time", "ACDT": "Australian Central Daylight Time", "CST": "Central Standard Time", "PDT": "Pacific Daylight Time", "AWDT": "Australian Western Daylight Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "BT": "Bhutan Time", "MYT": "Malaysia Time", "CDT": "Central Daylight Time", "ADT": "Atlantic Daylight Time", "GYT": "Guyana Time", "WIT": "Eastern Indonesia Time", "SGT": "Singapore Standard Time", "HECU": "Cuba Daylight Time", "EST": "Eastern Standard Time", "MESZ": "Central European Summer Time", "CLT": "Chile Standard Time", "ECT": "Ecuador Time", "HNOG": "West Greenland Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SAST": "South Africa Standard Time", "HKT": "Hong Kong Standard Time", "JDT": "Japan Daylight Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "OEZ": "Eastern European Standard Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "ACST": "Australian Central Standard Time", "NZDT": "New Zealand Daylight Time", "CLST": "Chile Summer Time", "CAT": "Central Africa Time", "OESZ": "Eastern European Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "SRT": "Suriname Time", "HAT": "Newfoundland Daylight Time", "WARST": "Western Argentina Summer Time", "COST": "Colombia Summer Time", "MEZ": "Central European Standard Time", "LHDT": "Lord Howe Daylight Time"},
++ locale: "en_VC",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "$", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CHADT": "CHADT", "GFT": "GFT", "COST": "COST", "HKST": "HKST", "CLT": "CLT", "MST": "MST", "HEEG": "HEEG", "JDT": "JDT", "ECT": "ECT", "NZST": "NZST", "ACST": "ACST", "BT": "BT", "EST": "EST", "AEST": "AEST", "MESZ": "MESZ", "PDT": "PDT", "HNPMX": "HNPMX", "AKDT": "AKDT", "HAT": "HAT", "BOT": "BOT", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "AST": "AST", "WITA": "WITA", "ART": "ART", "HEPMX": "HEPMX", "WEZ": "WEZ", "AKST": "AKST", "HECU": "HECU", "WART": "WART", "CAT": "CAT", "CST": "CST", "ARST": "ARST", "MDT": "MDT", "JST": "JST", "AWST": "AWST", "MEZ": "MEZ", "AEDT": "AEDT", "WESZ": "WESZ", "AWDT": "AWDT", "HNOG": "HNOG", "NZDT": "NZDT", "WARST": "WARST", "COT": "COT", "CLST": "CLST", "GMT": "GMT", "LHST": "LHST", "OESZ": "OESZ", "WIT": "WIT", "HAST": "HAST", "HNEG": "HNEG", "∅∅∅": "∅∅∅", "IST": "IST", "VET": "VET", "HEOG": "HEOG", "EAT": "EAT", "LHDT": "LHDT", "CHAST": "CHAST", "GYT": "GYT", "TMT": "TMT", "TMST": "TMST", "EDT": "EDT", "HENOMX": "HENOMX", "HEPM": "HEPM", "ACWDT": "ACWDT", "HNCU": "HNCU", "HNT": "HNT", "HKT": "HKT", "WIB": "WIB", "HADT": "HADT", "PST": "PST", "UYST": "UYST", "MYT": "MYT", "UYT": "UYT", "SAST": "SAST", "SGT": "SGT", "WAT": "WAT", "WAST": "WAST", "OEZ": "OEZ", "CDT": "CDT", "SRT": "SRT", "HNPM": "HNPM", "ACWST": "ACWST", "ChST": "ChST", "ADT": "ADT"},
+ }
+ }
+ 
+@@ -112,8 +89,8 @@ func (en *en_VC) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_VC) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
++ nMod10 := math.Mod(n, 10)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +115,7 @@ func (en *en_VC) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_VC) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_VC) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_VC) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_VC) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_VC) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_VC) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_VC' and handles both Whole and Real numbers based on 'v'
+ func (en *en_VC) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_VC' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_VC) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_VC'
+@@ -278,56 +195,7 @@ func (en *en_VC) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_VC'
+@@ -336,84 +204,33 @@ func (en *en_VC) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_VC'
++func (en *en_VC) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_VC'
+-func (en *en_VC) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_VC) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_VC) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_VC) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_VC) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_VC) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_VC) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_VC) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_VG/en_VG.go b/en_VG/en_VG.go
+index 0f5541a..06b9f27 100644
+--- a/en_VG/en_VG.go
++++ b/en_VG/en_VG.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_VG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_VG' locale
+ func New() locales.Translator {
+ return &en_VG{
+- locale: "en_VG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"WIB": "Western Indonesia Time", "ACWDT": "Australian Central Western Daylight Time", "ART": "Argentina Standard Time", "WITA": "Central Indonesia Time", "MESZ": "Central European Summer Time", "LHDT": "Lord Howe Daylight Time", "CLST": "Chile Summer Time", "GYT": "Guyana Time", "BOT": "Bolivia Time", "AST": "Atlantic Standard Time", "VET": "Venezuela Time", "JST": "Japan Standard Time", "HEEG": "East Greenland Summer Time", "ACDT": "Australian Central Daylight Time", "∅∅∅": "Peru Summer Time", "WARST": "Western Argentina Summer Time", "HNT": "Newfoundland Standard Time", "HKST": "Hong Kong Summer Time", "NZDT": "New Zealand Daylight Time", "CHADT": "Chatham Daylight Time", "TMST": "Turkmenistan Summer Time", "CAT": "Central Africa Time", "PDT": "Pacific Daylight Time", "AEDT": "Australian Eastern Daylight Time", "ACST": "Australian Central Standard Time", "SGT": "Singapore Standard Time", "CDT": "Central Daylight Time", "EDT": "Eastern Daylight Time", "AKST": "Alaska Standard Time", "HNOG": "West Greenland Standard Time", "HKT": "Hong Kong Standard Time", "CHAST": "Chatham Standard Time", "UYT": "Uruguay Standard Time", "EST": "Eastern Standard Time", "MDT": "Macau Summer Time", "HNPMX": "Mexican Pacific Standard Time", "CST": "Central Standard Time", "HAT": "Newfoundland Daylight Time", "AWDT": "Australian Western Daylight Time", "HENOMX": "Northwest Mexico Daylight Time", "PST": "Pacific Standard Time", "CLT": "Chile Standard Time", "ADT": "Atlantic Daylight Time", "COT": "Colombia Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "BT": "Bhutan Time", "AWST": "Australian Western Standard Time", "GFT": "French Guiana Time", "TMT": "Turkmenistan Standard Time", "WAT": "West Africa Standard Time", "SAST": "South Africa Standard Time", "JDT": "Japan Daylight Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HNNOMX": "Northwest Mexico Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "OEZ": "Eastern European Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "MYT": "Malaysia Time", "WIT": "Eastern Indonesia Time", "ECT": "Ecuador Time", "LHST": "Lord Howe Standard Time", "ChST": "Chamorro Standard Time", "HNEG": "East Greenland Standard Time", "MEZ": "Central European Standard Time", "HNCU": "Cuba Standard Time", "HECU": "Cuba Daylight Time", "UYST": "Uruguay Summer Time", "AKDT": "Alaska Daylight Time", "WESZ": "Western European Summer Time", "HEOG": "West Greenland Summer Time", "IST": "India Standard Time", "EAT": "East Africa Time", "COST": "Colombia Summer Time", "GMT": "Greenwich Mean Time", "SRT": "Suriname Time", "AEST": "Australian Eastern Standard Time", "NZST": "New Zealand Standard Time", "WART": "Western Argentina Standard Time", "OESZ": "Eastern European Summer Time", "MST": "Macau Standard Time", "WEZ": "Western European Standard Time", "ACWST": "Australian Central Western Standard Time", "ARST": "Argentina Summer Time", "WAST": "West Africa Summer Time"},
++ locale: "en_VG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"am", "pm"},
++ periodsWide: []string{"am", "pm"},
++ timezones: map[string]string{"ACST": "ACST", "ACDT": "ACDT", "UYST": "UYST", "WIT": "WIT", "WIB": "WIB", "AST": "AST", "WARST": "WARST", "COST": "COST", "TMT": "TMT", "EAT": "EAT", "IST": "IST", "CLST": "CLST", "LHDT": "LHDT", "PST": "PST", "SGT": "SGT", "ChST": "ChST", "MYT": "MYT", "EST": "EST", "HNPM": "HNPM", "HEPM": "HEPM", "JST": "JST", "HECU": "HECU", "WEZ": "WEZ", "HAT": "HAT", "HKST": "HKST", "WITA": "WITA", "GMT": "GMT", "MDT": "MDT", "JDT": "JDT", "VET": "VET", "COT": "COT", "CST": "CST", "ART": "ART", "HEEG": "HEEG", "AWST": "AWST", "∅∅∅": "∅∅∅", "PDT": "PDT", "HEPMX": "HEPMX", "OESZ": "OESZ", "HEOG": "HEOG", "HADT": "HADT", "NZST": "NZST", "WAST": "WAST", "AKST": "AKST", "ACWDT": "ACWDT", "HAST": "HAST", "MEZ": "MEZ", "BT": "BT", "SRT": "SRT", "OEZ": "OEZ", "ECT": "ECT", "HNPMX": "HNPMX", "LHST": "LHST", "ACWST": "ACWST", "AEST": "AEST", "CHAST": "CHAST", "CHADT": "CHADT", "WAT": "WAT", "AKDT": "AKDT", "ARST": "ARST", "CLT": "CLT", "NZDT": "NZDT", "HNT": "HNT", "HNCU": "HNCU", "GYT": "GYT", "HKT": "HKT", "ADT": "ADT", "BOT": "BOT", "AWDT": "AWDT", "WESZ": "WESZ", "GFT": "GFT", "SAST": "SAST", "EDT": "EDT", "TMST": "TMST", "MST": "MST", "AEDT": "AEDT", "WART": "WART", "HNOG": "HNOG", "HNEG": "HNEG", "HENOMX": "HENOMX", "MESZ": "MESZ", "UYT": "UYT", "CAT": "CAT", "CDT": "CDT", "HNNOMX": "HNNOMX"},
+ }
+ }
+ 
+@@ -138,7 +117,7 @@ func (en *en_VG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_VG) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_VG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_VG) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_VG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_VG) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +183,13 @@ func (en *en_VG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_VG' and handles both Whole and Real numbers based on 'v'
+ func (en *en_VG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_VG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_VG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_VG'
+@@ -278,56 +197,7 @@ func (en *en_VG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_VG'
+@@ -336,68 +206,7 @@ func (en *en_VG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_VG'
+@@ -405,17 +214,6 @@ func (en *en_VG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +222,6 @@ func (en *en_VG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +230,6 @@ func (en *en_VG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,19 +238,6 @@ func (en *en_VG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, en.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -483,13 +246,11 @@ func (en *en_VG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -497,13 +258,6 @@ func (en *en_VG) FmtTimeShort(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -513,13 +267,11 @@ func (en *en_VG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -534,13 +286,6 @@ func (en *en_VG) FmtTimeMedium(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -550,13 +295,11 @@ func (en *en_VG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -573,14 +316,6 @@ func (en *en_VG) FmtTimeLong(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ b = append(b, tz...)
+ 
+@@ -592,13 +327,11 @@ func (en *en_VG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -615,14 +348,6 @@ func (en *en_VG) FmtTimeFull(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ 
+ if btz, ok := en.timezones[tz]; ok {
+diff --git a/en_VI/en_VI.go b/en_VI/en_VI.go
+index 8bc331f..301a857 100644
+--- a/en_VI/en_VI.go
++++ b/en_VI/en_VI.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_VI struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_VI' locale
+ func New() locales.Translator {
+ return &en_VI{
+- locale: "en_VI",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"WIT": "Eastern Indonesia Time", "WESZ": "Western European Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "ECT": "Ecuador Time", "AST": "Atlantic Standard Time", "ACST": "Australian Central Standard Time", "WAT": "West Africa Standard Time", "IST": "India Standard Time", "ACDT": "Australian Central Daylight Time", "OESZ": "Eastern European Summer Time", "WART": "Western Argentina Standard Time", "EST": "Eastern Standard Time", "UYT": "Uruguay Standard Time", "HAT": "Newfoundland Daylight Time", "LHST": "Lord Howe Standard Time", "CAT": "Central Africa Time", "HNPMX": "Mexican Pacific Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "TMT": "Turkmenistan Standard Time", "COT": "Colombia Standard Time", "WARST": "Western Argentina Summer Time", "EDT": "Eastern Daylight Time", "MST": "Macau Standard Time", "CHAST": "Chatham Standard Time", "CLT": "Chile Standard Time", "JDT": "Japan Daylight Time", "HNEG": "East Greenland Standard Time", "WAST": "West Africa Summer Time", "WIB": "Western Indonesia Time", "ACWST": "Australian Central Western Standard Time", "CHADT": "Chatham Daylight Time", "SGT": "Singapore Standard Time", "HNCU": "Cuba Standard Time", "HEOG": "West Greenland Summer Time", "CLST": "Chile Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "SAST": "South Africa Standard Time", "JST": "Japan Standard Time", "EAT": "East Africa Time", "HECU": "Cuba Daylight Time", "HEPMX": "Mexican Pacific Daylight Time", "PST": "Pacific Standard Time", "HKT": "Hong Kong Standard Time", "UYST": "Uruguay Summer Time", "AKDT": "Alaska Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "BT": "Bhutan Time", "HKST": "Hong Kong Summer Time", "HEEG": "East Greenland Summer Time", "ART": "Argentina Standard Time", "ARST": "Argentina Summer Time", "AWDT": "Australian Western Daylight Time", "WITA": "Central Indonesia Time", "OEZ": "Eastern European Standard Time", "COST": "Colombia Summer Time", "PDT": "Pacific Daylight Time", "HNT": "Newfoundland Standard Time", "MYT": "Malaysia Time", "VET": "Venezuela Time", "AEDT": "Australian Eastern Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "MEZ": "Central European Standard Time", "∅∅∅": "Amazon Summer Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "ACWDT": "Australian Central Western Daylight Time", "HNOG": "West Greenland Standard Time", "CST": "Central Standard Time", "GMT": "Greenwich Mean Time", "MDT": "Macau Summer Time", "AKST": "Alaska Standard Time", "CDT": "Central Daylight Time", "ADT": "Atlantic Daylight Time", "NZST": "New Zealand Standard Time", "HNNOMX": "Northwest Mexico Standard Time", "LHDT": "Lord Howe Daylight Time", "NZDT": "New Zealand Daylight Time", "ChST": "Chamorro Standard Time", "GYT": "Guyana Time", "WEZ": "Western European Standard Time", "AEST": "Australian Eastern Standard Time", "TMST": "Turkmenistan Summer Time", "SRT": "Suriname Time", "AWST": "Australian Western Standard Time", "MESZ": "Central European Summer Time"},
++ locale: "en_VI",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WAT": "WAT", "ECT": "ECT", "SRT": "SRT", "HAST": "HAST", "CHADT": "CHADT", "HNCU": "HNCU", "MEZ": "MEZ", "IST": "IST", "WAST": "WAST", "CLST": "CLST", "GFT": "GFT", "COT": "COT", "EDT": "EDT", "WIB": "WIB", "HADT": "HADT", "UYT": "UYT", "AEST": "AEST", "CHAST": "CHAST", "AEDT": "AEDT", "WESZ": "WESZ", "AKDT": "AKDT", "CDT": "CDT", "MESZ": "MESZ", "HNEG": "HNEG", "LHDT": "LHDT", "JDT": "JDT", "TMT": "TMT", "AKST": "AKST", "WARST": "WARST", "CLT": "CLT", "HECU": "HECU", "SAST": "SAST", "HKST": "HKST", "MST": "MST", "ADT": "ADT", "EAT": "EAT", "HENOMX": "HENOMX", "MYT": "MYT", "BOT": "BOT", "∅∅∅": "∅∅∅", "PDT": "PDT", "COST": "COST", "WEZ": "WEZ", "SGT": "SGT", "WITA": "WITA", "ChST": "ChST", "ART": "ART", "ARST": "ARST", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "LHST": "LHST", "CAT": "CAT", "HNOG": "HNOG", "NZST": "NZST", "AST": "AST", "ACST": "ACST", "AWDT": "AWDT", "UYST": "UYST", "BT": "BT", "OEZ": "OEZ", "OESZ": "OESZ", "EST": "EST", "JST": "JST", "ACWST": "ACWST", "WIT": "WIT", "CST": "CST", "ACDT": "ACDT", "HEPM": "HEPM", "HAT": "HAT", "HNPMX": "HNPMX", "HNT": "HNT", "WART": "WART", "GYT": "GYT", "MDT": "MDT", "GMT": "GMT", "AWST": "AWST", "VET": "VET", "HEPMX": "HEPMX", "HKT": "HKT", "TMST": "TMST", "NZDT": "NZDT", "HNPM": "HNPM", "PST": "PST", "ACWDT": "ACWDT", "HEOG": "HEOG"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_VI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_VI) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_VI) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_VI) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_VI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_VI) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_VI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_VI' and handles both Whole and Real numbers based on 'v'
+ func (en *en_VI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_VI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_VI) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_VI'
+@@ -278,56 +195,7 @@ func (en *en_VI) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_VI'
+@@ -336,68 +204,7 @@ func (en *en_VI) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_VI'
+@@ -405,15 +212,15 @@ func (en *en_VI) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+ b = append(b, []byte{0x2f}...)
++ b = strconv.AppendInt(b, int64(t.Month()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +231,14 @@ func (en *en_VI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, en.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
+ b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
++ b = append(b, []byte{0x20}...)
++ b = append(b, en.monthsAbbreviated[t.Month()]...)
++ b = append(b, []byte{0x2c}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +254,14 @@ func (en *en_VI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +279,15 @@ func (en *en_VI) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++
++ if t.Day() < 10 {
++ b = append(b, '0')
++ }
++
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,13 +303,11 @@ func (en *en_VI) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -497,13 +315,6 @@ func (en *en_VI) FmtTimeShort(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -513,13 +324,11 @@ func (en *en_VI) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -534,13 +343,6 @@ func (en *en_VI) FmtTimeMedium(t time.Time) string {
+ }
+ 
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+ 
+ return string(b)
+ }
+@@ -550,13 +352,11 @@ func (en *en_VI) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -573,14 +373,6 @@ func (en *en_VI) FmtTimeLong(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ b = append(b, tz...)
+ 
+@@ -592,13 +384,11 @@ func (en *en_VI) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
++ if t.Hour() < 10 {
++ b = append(b, '0')
+ }
+ 
+- b = strconv.AppendInt(b, int64(h), 10)
++ b = strconv.AppendInt(b, int64(t.Hour()), 10)
+ b = append(b, en.timeSeparator...)
+ 
+ if t.Minute() < 10 {
+@@ -615,14 +405,6 @@ func (en *en_VI) FmtTimeFull(t time.Time) string {
+ b = strconv.AppendInt(b, int64(t.Second()), 10)
+ b = append(b, []byte{0x20}...)
+ 
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+ tz, _ := t.Zone()
+ 
+ if btz, ok := en.timezones[tz]; ok {
+diff --git a/en_VU/en_VU.go b/en_VU/en_VU.go
+index 5d3a779..0a365bd 100644
+--- a/en_VU/en_VU.go
++++ b/en_VU/en_VU.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_VU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_VU' locale
+ func New() locales.Translator {
+ return &en_VU{
+- locale: "en_VU",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VT", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"ACDT": "Australian Central Daylight Time", "COT": "Colombia Standard Time", "LHST": "Lord Howe Standard Time", "CHAST": "Chatham Standard Time", "MESZ": "Central European Summer Time", "SAST": "South Africa Standard Time", "JDT": "Japan Daylight Time", "WIT": "Eastern Indonesia Time", "HKT": "Hong Kong Standard Time", "LHDT": "Lord Howe Daylight Time", "NZST": "New Zealand Standard Time", "HECU": "Cuba Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "AKDT": "Alaska Daylight Time", "BOT": "Bolivia Time", "GFT": "French Guiana Time", "WARST": "Western Argentina Summer Time", "CAT": "Central Africa Time", "HNNOMX": "Northwest Mexico Standard Time", "SGT": "Singapore Standard Time", "UYST": "Uruguay Summer Time", "WEZ": "Western European Standard Time", "HNT": "Newfoundland Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "WAT": "West Africa Standard Time", "CLST": "Chile Summer Time", "ACWDT": "Australian Central Western Daylight Time", "PST": "Pacific Standard Time", "AWST": "Australian Western Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "MEZ": "Central European Standard Time", "HEPMX": "Mexican Pacific Daylight Time", "WIB": "Western Indonesia Time", "PDT": "Pacific Daylight Time", "ChST": "Chamorro Standard Time", "GYT": "Guyana Time", "ACWST": "Australian Central Western Standard Time", "WITA": "Central Indonesia Time", "HNEG": "East Greenland Standard Time", "TMST": "Turkmenistan Summer Time", "IST": "India Standard Time", "HEOG": "West Greenland Summer Time", "CHADT": "Chatham Daylight Time", "JST": "Japan Standard Time", "ECT": "Ecuador Time", "HENOMX": "Northwest Mexico Daylight Time", "MDT": "Macau Summer Time", "HADT": "Hawaii-Aleutian Daylight Time", "WESZ": "Western European Summer Time", "∅∅∅": "Amazon Summer Time", "HEEG": "East Greenland Summer Time", "TMT": "Turkmenistan Standard Time", "OESZ": "Eastern European Summer Time", "HNOG": "West Greenland Standard Time", "EAT": "East Africa Time", "COST": "Colombia Summer Time", "EST": "Eastern Standard Time", "CDT": "Central Daylight Time", "UYT": "Uruguay Standard Time", "VET": "Venezuela Time", "SRT": "Suriname Time", "GMT": "Greenwich Mean Time", "HNCU": "Cuba Standard Time", "AST": "Atlantic Standard Time", "ADT": "Atlantic Daylight Time", "AEDT": "Australian Eastern Daylight Time", "OEZ": "Eastern European Standard Time", "WART": "Western Argentina Standard Time", "NZDT": "New Zealand Daylight Time", "WAST": "West Africa Summer Time", "MST": "Macau Standard Time", "AKST": "Alaska Standard Time", "MYT": "Malaysia Time", "ARST": "Argentina Summer Time", "HKST": "Hong Kong Summer Time", "CLT": "Chile Standard Time", "EDT": "Eastern Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "BT": "Bhutan Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "CST": "Central Standard Time", "HAT": "Newfoundland Daylight Time", "AWDT": "Australian Western Daylight Time", "ACST": "Australian Central Standard Time"},
++ locale: "en_VU",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VT", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"UYST": "UYST", "AKDT": "AKDT", "LHST": "LHST", "HAST": "HAST", "BT": "BT", "AEDT": "AEDT", "CHAST": "CHAST", "WART": "WART", "ECT": "ECT", "ART": "ART", "JDT": "JDT", "CHADT": "CHADT", "VET": "VET", "HNPMX": "HNPMX", "EST": "EST", "WITA": "WITA", "MDT": "MDT", "NZST": "NZST", "HNCU": "HNCU", "OESZ": "OESZ", "WARST": "WARST", "EAT": "EAT", "HEEG": "HEEG", "MEZ": "MEZ", "JST": "JST", "ACWDT": "ACWDT", "HECU": "HECU", "WIB": "WIB", "GMT": "GMT", "HADT": "HADT", "MESZ": "MESZ", "MYT": "MYT", "AWST": "AWST", "AEST": "AEST", "COST": "COST", "SAST": "SAST", "SRT": "SRT", "ACDT": "ACDT", "HEPM": "HEPM", "PST": "PST", "ACWST": "ACWST", "CLST": "CLST", "CST": "CST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "IST": "IST", "∅∅∅": "∅∅∅", "ACST": "ACST", "TMST": "TMST", "AWDT": "AWDT", "WAT": "WAT", "WAST": "WAST", "HEOG": "HEOG", "TMT": "TMT", "NZDT": "NZDT", "ChST": "ChST", "ARST": "ARST", "WIT": "WIT", "COT": "COT", "GYT": "GYT", "AST": "AST", "HKT": "HKT", "UYT": "UYT", "HAT": "HAT", "HNOG": "HNOG", "HNT": "HNT", "HKST": "HKST", "HNEG": "HNEG", "AKST": "AKST", "GFT": "GFT", "HNPM": "HNPM", "WEZ": "WEZ", "OEZ": "OEZ", "MST": "MST", "ADT": "ADT", "SGT": "SGT", "HEPMX": "HEPMX", "WESZ": "WESZ", "EDT": "EDT", "CDT": "CDT", "BOT": "BOT", "LHDT": "LHDT", "PDT": "PDT", "CLT": "CLT", "CAT": "CAT"},
+ }
+ }
+ 
+@@ -112,8 +89,8 @@ func (en *en_VU) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_VU) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
++ nMod100 := math.Mod(n, 100)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +115,7 @@ func (en *en_VU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_VU) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_VU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_VU) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_VU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_VU) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_VU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_VU' and handles both Whole and Real numbers based on 'v'
+ func (en *en_VU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_VU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_VU) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_VU'
+@@ -278,56 +195,7 @@ func (en *en_VU) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_VU'
+@@ -336,84 +204,33 @@ func (en *en_VU) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_VU'
++func (en *en_VU) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_VU'
+-func (en *en_VU) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_VU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_VU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_VU) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_VU) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_VU) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_VU) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_VU) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_WS/en_WS.go b/en_WS/en_WS.go
+index e441bcc..e05bb3d 100644
+--- a/en_WS/en_WS.go
++++ b/en_WS/en_WS.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_WS struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_WS' locale
+ func New() locales.Translator {
+ return &en_WS{
+- locale: "en_WS",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WS$", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"WESZ": "Western European Summer Time", "HEOG": "West Greenland Summer Time", "CHADT": "Chatham Daylight Time", "TMT": "Turkmenistan Standard Time", "OEZ": "Eastern European Standard Time", "WIB": "Western Indonesia Time", "WIT": "Eastern Indonesia Time", "LHDT": "Lord Howe Daylight Time", "SAST": "South Africa Standard Time", "OESZ": "Eastern European Summer Time", "HNPMX": "Mexican Pacific Standard Time", "MESZ": "Central European Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "HEEG": "East Greenland Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "WITA": "Central Indonesia Time", "WEZ": "Western European Standard Time", "WAT": "West Africa Standard Time", "MST": "Macau Standard Time", "AKST": "Alaska Standard Time", "UYT": "Uruguay Standard Time", "BT": "Bhutan Time", "AEST": "Australian Eastern Standard Time", "AWDT": "Australian Western Daylight Time", "HNPM": "St. Pierre & Miquelon Standard Time", "CAT": "Central Africa Time", "WARST": "Western Argentina Summer Time", "CST": "Central Standard Time", "ARST": "Argentina Summer Time", "MEZ": "Central European Standard Time", "ECT": "Ecuador Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "AST": "Atlantic Standard Time", "ACWDT": "Australian Central Western Daylight Time", "NZST": "New Zealand Standard Time", "CHAST": "Chatham Standard Time", "JST": "Japan Standard Time", "SGT": "Singapore Standard Time", "ACWST": "Australian Central Western Standard Time", "HNEG": "East Greenland Standard Time", "EAT": "East Africa Time", "WAST": "West Africa Summer Time", "MDT": "Macau Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "GYT": "Guyana Time", "VET": "Venezuela Time", "WART": "Western Argentina Standard Time", "EDT": "Eastern Daylight Time", "PST": "Pacific Standard Time", "GMT": "Greenwich Mean Time", "MYT": "Malaysia Time", "UYST": "Uruguay Summer Time", "COT": "Colombia Standard Time", "CLST": "Chile Summer Time", "GFT": "French Guiana Time", "ART": "Argentina Standard Time", "IST": "India Standard Time", "EST": "Eastern Standard Time", "HKT": "Hong Kong Standard Time", "HNT": "Newfoundland Standard Time", "HAT": "Newfoundland Daylight Time", "HKST": "Hong Kong Summer Time", "ADT": "Atlantic Daylight Time", "HADT": "Hawaii-Aleutian Daylight Time", "SRT": "Suriname Time", "PDT": "Pacific Daylight Time", "LHST": "Lord Howe Standard Time", "NZDT": "New Zealand Daylight Time", "CLT": "Chile Standard Time", "TMST": "Turkmenistan Summer Time", "ACST": "Australian Central Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "HECU": "Cuba Daylight Time", "ACDT": "Australian Central Daylight Time", "AEDT": "Australian Eastern Daylight Time", "AWST": "Australian Western Standard Time", "ChST": "Chamorro Standard Time", "AKDT": "Alaska Daylight Time", "CDT": "Central Daylight Time", "HNOG": "West Greenland Standard Time", "JDT": "Japan Daylight Time", "BOT": "Bolivia Time", "COST": "Colombia Summer Time", "∅∅∅": "Amazon Summer Time"},
++ locale: "en_WS",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WS$", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CHADT": "CHADT", "OESZ": "OESZ", "SRT": "SRT", "MYT": "MYT", "HNPM": "HNPM", "ACWST": "ACWST", "HECU": "HECU", "NZDT": "NZDT", "WARST": "WARST", "HNOG": "HNOG", "TMT": "TMT", "EAT": "EAT", "LHST": "LHST", "∅∅∅": "∅∅∅", "HAT": "HAT", "WAST": "WAST", "AKST": "AKST", "MDT": "MDT", "HAST": "HAST", "HEEG": "HEEG", "UYT": "UYT", "ACWDT": "ACWDT", "CDT": "CDT", "AWST": "AWST", "WAT": "WAT", "HKST": "HKST", "BT": "BT", "PDT": "PDT", "WEZ": "WEZ", "COST": "COST", "GMT": "GMT", "HNPMX": "HNPMX", "WITA": "WITA", "AST": "AST", "CST": "CST", "MST": "MST", "MEZ": "MEZ", "AEDT": "AEDT", "HKT": "HKT", "HEPMX": "HEPMX", "HEOG": "HEOG", "EST": "EST", "NZST": "NZST", "LHDT": "LHDT", "JDT": "JDT", "WESZ": "WESZ", "HEPM": "HEPM", "IST": "IST", "CHAST": "CHAST", "AKDT": "AKDT", "GFT": "GFT", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "ARST": "ARST", "BOT": "BOT", "WART": "WART", "GYT": "GYT", "ART": "ART", "TMST": "TMST", "WIB": "WIB", "UYST": "UYST", "VET": "VET", "HNT": "HNT", "PST": "PST", "AEST": "AEST", "OEZ": "OEZ", "CLST": "CLST", "ChST": "ChST", "ACST": "ACST", "HNEG": "HNEG", "JST": "JST", "HADT": "HADT", "SAST": "SAST", "EDT": "EDT", "CAT": "CAT", "ECT": "ECT", "ADT": "ADT", "AWDT": "AWDT", "HNCU": "HNCU", "WIT": "WIT", "CLT": "CLT", "MESZ": "MESZ", "SGT": "SGT", "COT": "COT"},
+ }
+ }
+ 
+@@ -112,8 +89,8 @@ func (en *en_WS) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (en *en_WS) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod100 := math.Mod(n, 100)
+ nMod10 := math.Mod(n, 10)
++ nMod100 := math.Mod(n, 100)
+ 
+ if nMod10 == 1 && nMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -138,7 +115,7 @@ func (en *en_WS) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_WS) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_WS) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_WS) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_WS) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_WS) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_WS) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_WS' and handles both Whole and Real numbers based on 'v'
+ func (en *en_WS) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_WS' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_WS) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_WS'
+@@ -278,56 +195,7 @@ func (en *en_WS) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_WS'
+@@ -336,84 +204,33 @@ func (en *en_WS) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_WS'
++func (en *en_WS) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_WS'
+-func (en *en_WS) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_WS) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_WS) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_WS) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_WS) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_WS) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_WS) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_WS) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_ZA/en_ZA.go b/en_ZA/en_ZA.go
+index 70c0e18..5c68faf 100644
+--- a/en_ZA/en_ZA.go
++++ b/en_ZA/en_ZA.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type en_ZA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_ZA' locale
+ func New() locales.Translator {
+ return &en_ZA{
+- locale: "en_ZA",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "R", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"SGT": "Singapore Standard Time", "UYT": "Uruguay Standard Time", "WIT": "Eastern Indonesia Time", "HKST": "Hong Kong Summer Time", "HNPM": "St. Pierre & Miquelon Standard Time", "EDT": "Eastern Daylight Time", "SAST": "South Africa Standard Time", "OEZ": "Eastern European Standard Time", "AKST": "Alaska Standard Time", "ACWDT": "Australian Central Western Daylight Time", "AEST": "Australian Eastern Standard Time", "LHST": "Lord Howe Standard Time", "CAT": "Central Africa Time", "MST": "Macau Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "HNT": "Newfoundland Standard Time", "ART": "Argentina Standard Time", "MEZ": "Central European Standard Time", "HECU": "Cuba Daylight Time", "PST": "Pacific Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "JDT": "Japan Daylight Time", "NZST": "New Zealand Standard Time", "TMT": "Turkmenistan Standard Time", "HENOMX": "Northwest Mexico Daylight Time", "WIB": "Western Indonesia Time", "VET": "Venezuela Time", "SRT": "Suriname Time", "WITA": "Central Indonesia Time", "GYT": "Guyana Time", "MESZ": "Central European Summer Time", "GFT": "French Guiana Time", "CHADT": "Chatham Daylight Time", "EAT": "East Africa Time", "WARST": "Western Argentina Summer Time", "HNPMX": "Mexican Pacific Standard Time", "HAST": "Hawaii-Aleutian Standard Time", "ACWST": "Australian Central Western Standard Time", "ARST": "Argentina Summer Time", "GMT": "Greenwich Mean Time", "LHDT": "Lord Howe Daylight Time", "JST": "Japan Standard Time", "ACDT": "Australian Central Daylight Time", "WART": "Western Argentina Standard Time", "CLST": "Chile Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "CST": "Central Standard Time", "NZDT": "New Zealand Daylight Time", "IST": "India Standard Time", "HEEG": "East Greenland Summer Time", "PDT": "Pacific Daylight Time", "CLT": "Chile Standard Time", "COST": "Colombia Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HNCU": "Cuba Standard Time", "MDT": "Macau Summer Time", "AKDT": "Alaska Daylight Time", "BOT": "Bolivia Time", "TMST": "Turkmenistan Summer Time", "ACST": "Australian Central Standard Time", "UYST": "Uruguay Summer Time", "ADT": "Atlantic Daylight Time", "WESZ": "Western European Summer Time", "HAT": "Newfoundland Daylight Time", "CHAST": "Chatham Standard Time", "WAT": "West Africa Standard Time", "ChST": "Chamorro Standard Time", "ECT": "Ecuador Time", "COT": "Colombia Standard Time", "MYT": "Malaysia Time", "AST": "Atlantic Standard Time", "HEOG": "West Greenland Summer Time", "AWST": "Australian Western Standard Time", "WAST": "West Africa Summer Time", "EST": "Eastern Standard Time", "WEZ": "Western European Standard Time", "HNOG": "West Greenland Standard Time", "AEDT": "Australian Eastern Daylight Time", "AWDT": "Australian Western Daylight Time", "OESZ": "Eastern European Summer Time", "∅∅∅": "Acre Summer Time", "CDT": "Central Daylight Time", "BT": "Bhutan Time", "HKT": "Hong Kong Standard Time", "HNEG": "East Greenland Standard Time"},
++ locale: "en_ZA",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ decimal: ",",
++ group: " ",
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "R", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"TMST": "TMST", "MDT": "MDT", "BOT": "BOT", "JST": "JST", "HEPM": "HEPM", "HKT": "HKT", "LHST": "LHST", "UYST": "UYST", "AKST": "AKST", "HNOG": "HNOG", "TMT": "TMT", "NZDT": "NZDT", "AST": "AST", "MESZ": "MESZ", "AEST": "AEST", "NZST": "NZST", "GMT": "GMT", "UYT": "UYT", "VET": "VET", "WAT": "WAT", "WARST": "WARST", "COT": "COT", "CDT": "CDT", "HNNOMX": "HNNOMX", "JDT": "JDT", "WAST": "WAST", "PST": "PST", "BT": "BT", "COST": "COST", "CLST": "CLST", "ART": "ART", "SRT": "SRT", "HAST": "HAST", "HADT": "HADT", "HAT": "HAT", "HKST": "HKST", "MEZ": "MEZ", "ACDT": "ACDT", "SGT": "SGT", "HECU": "HECU", "HNT": "HNT", "SAST": "SAST", "MYT": "MYT", "CHADT": "CHADT", "ACWDT": "ACWDT", "WEZ": "WEZ", "WART": "WART", "WIT": "WIT", "EDT": "EDT", "ECT": "ECT", "IST": "IST", "ACWST": "ACWST", "HEPMX": "HEPMX", "WESZ": "WESZ", "CLT": "CLT", "CST": "CST", "ARST": "ARST", "HNEG": "HNEG", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "HEOG": "HEOG", "MST": "MST", "HNCU": "HNCU", "CAT": "CAT", "EAT": "EAT", "AKDT": "AKDT", "WITA": "WITA", "AEDT": "AEDT", "PDT": "PDT", "OESZ": "OESZ", "GYT": "GYT", "WIB": "WIB", "ADT": "ADT", "ChST": "ChST", "LHDT": "LHDT", "HNPMX": "HNPMX", "AWST": "AWST", "OEZ": "OEZ", "GFT": "GFT", "EST": "EST", "ACST": "ACST", "HEEG": "HEEG", "HENOMX": "HENOMX", "AWDT": "AWDT", "HNPM": "HNPM"},
+ }
+ }
+ 
+@@ -138,7 +117,7 @@ func (en *en_ZA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_ZA) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (en *en_ZA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_ZA) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (en *en_ZA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_ZA) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,75 +183,13 @@ func (en *en_ZA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_ZA' and handles both Whole and Real numbers based on 'v'
+ func (en *en_ZA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(en.group) - 1; j >= 0; j-- {
+- b = append(b, en.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_ZA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_ZA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_ZA'
+@@ -280,58 +197,7 @@ func (en *en_ZA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(en.group) - 1; j >= 0; j-- {
+- b = append(b, en.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_ZA'
+@@ -340,70 +206,7 @@ func (en *en_ZA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(en.group) - 1; j >= 0; j-- {
+- b = append(b, en.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_ZA'
+diff --git a/en_ZM/en_ZM.go b/en_ZM/en_ZM.go
+index 8e6745c..6b59334 100644
+--- a/en_ZM/en_ZM.go
++++ b/en_ZM/en_ZM.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_ZM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_ZM' locale
+ func New() locales.Translator {
+ return &en_ZM{
+- locale: "en_ZM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "K", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"WIB": "Western Indonesia Time", "TMST": "Turkmenistan Summer Time", "CAT": "Central Africa Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "HNOG": "West Greenland Standard Time", "PDT": "Pacific Daylight Time", "HKST": "Hong Kong Summer Time", "NZST": "New Zealand Standard Time", "ChST": "Chamorro Standard Time", "∅∅∅": "Peru Summer Time", "HEPMX": "Mexican Pacific Daylight Time", "EST": "Eastern Standard Time", "NZDT": "New Zealand Daylight Time", "CHAST": "Chatham Standard Time", "CHADT": "Chatham Daylight Time", "SAST": "South Africa Standard Time", "TMT": "Turkmenistan Standard Time", "WARST": "Western Argentina Summer Time", "BT": "Bhutan Time", "WITA": "Central Indonesia Time", "COT": "Colombia Standard Time", "CDT": "Central Daylight Time", "MYT": "Malaysia Time", "HADT": "Hawaii-Aleutian Daylight Time", "LHDT": "Lord Howe Daylight Time", "WAT": "West Africa Standard Time", "WAST": "West Africa Summer Time", "ECT": "Ecuador Time", "JDT": "Japan Daylight Time", "ACWST": "Australian Central Western Standard Time", "BOT": "Bolivia Time", "HECU": "Cuba Daylight Time", "VET": "Venezuela Time", "WIT": "Eastern Indonesia Time", "LHST": "Lord Howe Standard Time", "HAT": "Newfoundland Daylight Time", "HEEG": "East Greenland Summer Time", "ACST": "Australian Central Standard Time", "SGT": "Singapore Standard Time", "UYST": "Uruguay Summer Time", "HNT": "Newfoundland Standard Time", "EDT": "Eastern Daylight Time", "AST": "Atlantic Standard Time", "AEDT": "Australian Eastern Daylight Time", "CLST": "Chile Summer Time", "EAT": "East Africa Time", "MDT": "Macau Summer Time", "ACWDT": "Australian Central Western Daylight Time", "HKT": "Hong Kong Standard Time", "MEZ": "Central European Standard Time", "COST": "Colombia Summer Time", "CST": "Central Standard Time", "AWDT": "Australian Western Daylight Time", "OEZ": "Eastern European Standard Time", "ART": "Argentina Standard Time", "AEST": "Australian Eastern Standard Time", "MESZ": "Central European Summer Time", "JST": "Japan Standard Time", "ACDT": "Australian Central Daylight Time", "WART": "Western Argentina Standard Time", "GMT": "Greenwich Mean Time", "HAST": "Hawaii-Aleutian Standard Time", "AKST": "Alaska Standard Time", "PST": "Pacific Standard Time", "IST": "India Standard Time", "OESZ": "Eastern European Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "HNPMX": "Mexican Pacific Standard Time", "HNEG": "East Greenland Standard Time", "GYT": "Guyana Time", "HEOG": "West Greenland Summer Time", "CLT": "Chile Standard Time", "GFT": "French Guiana Time", "MST": "Macau Standard Time", "UYT": "Uruguay Standard Time", "WEZ": "Western European Standard Time", "WESZ": "Western European Summer Time", "ARST": "Argentina Summer Time", "AWST": "Australian Western Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "AKDT": "Alaska Daylight Time", "ADT": "Atlantic Daylight Time", "SRT": "Suriname Time"},
++ locale: "en_ZM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "K", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNEG": "HNEG", "UYST": "UYST", "WEZ": "WEZ", "OEZ": "OEZ", "COST": "COST", "WIB": "WIB", "CLST": "CLST", "HNNOMX": "HNNOMX", "AEST": "AEST", "AKDT": "AKDT", "HNT": "HNT", "SAST": "SAST", "HNOG": "HNOG", "CLT": "CLT", "CST": "CST", "HENOMX": "HENOMX", "HNPM": "HNPM", "ART": "ART", "HADT": "HADT", "LHST": "LHST", "∅∅∅": "∅∅∅", "WART": "WART", "COT": "COT", "TMST": "TMST", "EAT": "EAT", "HEPM": "HEPM", "NZDT": "NZDT", "ECT": "ECT", "ARST": "ARST", "ADT": "ADT", "MESZ": "MESZ", "MYT": "MYT", "IST": "IST", "ACWDT": "ACWDT", "SGT": "SGT", "GYT": "GYT", "TMT": "TMT", "ACST": "ACST", "JDT": "JDT", "AEDT": "AEDT", "CAT": "CAT", "UYT": "UYT", "EDT": "EDT", "MDT": "MDT", "ACDT": "ACDT", "HEEG": "HEEG", "HNCU": "HNCU", "WIT": "WIT", "WITA": "WITA", "CDT": "CDT", "VET": "VET", "HNPMX": "HNPMX", "HKT": "HKT", "MST": "MST", "NZST": "NZST", "BOT": "BOT", "HAST": "HAST", "PDT": "PDT", "ACWST": "ACWST", "WAST": "WAST", "GFT": "GFT", "EST": "EST", "AWST": "AWST", "HAT": "HAT", "SRT": "SRT", "LHDT": "LHDT", "PST": "PST", "WAT": "WAT", "AKST": "AKST", "GMT": "GMT", "JST": "JST", "BT": "BT", "HEOG": "HEOG", "AWDT": "AWDT", "CHAST": "CHAST", "CHADT": "CHADT", "WESZ": "WESZ", "HECU": "HECU", "HEPMX": "HEPMX", "HKST": "HKST", "MEZ": "MEZ", "OESZ": "OESZ", "WARST": "WARST", "AST": "AST", "ChST": "ChST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_ZM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_ZM) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_ZM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_ZM) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_ZM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_ZM) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_ZM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_ZM' and handles both Whole and Real numbers based on 'v'
+ func (en *en_ZM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_ZM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_ZM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_ZM'
+@@ -278,56 +195,7 @@ func (en *en_ZM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_ZM'
+@@ -336,84 +204,33 @@ func (en *en_ZM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
++ return string(append(append([]byte{}, symbol...), s...))
++}
+ 
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
++// FmtDateShort returns the short date representation of 't' for 'en_ZM'
++func (en *en_ZM) FmtDateShort(t time.Time) string {
+ 
+- }
++ b := make([]byte, 0, 32)
+ 
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
++ if t.Day() < 10 {
++ b = append(b, '0')
+ }
+ 
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x2f}...)
+ 
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
++ if t.Month() < 10 {
++ b = append(b, '0')
+ }
+ 
+- return string(b)
+-}
+-
+-// FmtDateShort returns the short date representation of 't' for 'en_ZM'
+-func (en *en_ZM) FmtDateShort(t time.Time) string {
+-
+- b := make([]byte, 0, 32)
+-
+ b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
++
+ b = append(b, []byte{0x2f}...)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
++ if t.Year() > 0 {
++ b = strconv.AppendInt(b, int64(t.Year()), 10)
+ } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
++ b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+ }
+ 
+ return string(b)
+@@ -424,10 +241,10 @@ func (en *en_ZM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsAbbreviated[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -443,10 +260,10 @@ func (en *en_ZM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -464,10 +281,10 @@ func (en *en_ZM) FmtDateFull(t time.Time) string {
+ 
+ b = append(b, en.daysWide[t.Weekday()]...)
+ b = append(b, []byte{0x2c, 0x20}...)
++ b = strconv.AppendInt(b, int64(t.Day()), 10)
++ b = append(b, []byte{0x20}...)
+ b = append(b, en.monthsWide[t.Month()]...)
+ b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+ 
+ if t.Year() > 0 {
+ b = strconv.AppendInt(b, int64(t.Year()), 10)
+@@ -483,28 +300,6 @@ func (en *en_ZM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -513,35 +308,6 @@ func (en *en_ZM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -550,40 +316,6 @@ func (en *en_ZM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,44 +324,5 @@ func (en *en_ZM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, en.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, en.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, en.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := en.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/en_ZW/en_ZW.go b/en_ZW/en_ZW.go
+index d913e2a..259c186 100644
+--- a/en_ZW/en_ZW.go
++++ b/en_ZW/en_ZW.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type en_ZW struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'en_ZW' locale
+ func New() locales.Translator {
+ return &en_ZW{
+- locale: "en_ZW",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"},
+- daysAbbreviated: []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"},
+- daysWide: []string{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"B", "A"},
+- erasWide: []string{"Before Christ", "Anno Domini"},
+- timezones: map[string]string{"WAST": "West Africa Summer Time", "MST": "Macau Standard Time", "MDT": "Macau Summer Time", "WITA": "Central Indonesia Time", "MYT": "Malaysia Time", "WIT": "Eastern Indonesia Time", "CHAST": "Chatham Standard Time", "SAST": "South Africa Standard Time", "HEEG": "East Greenland Summer Time", "OESZ": "Eastern European Summer Time", "ECT": "Ecuador Time", "ADT": "Atlantic Daylight Time", "BT": "Bhutan Time", "ART": "Argentina Standard Time", "LHST": "Lord Howe Standard Time", "NZST": "New Zealand Standard Time", "TMST": "Turkmenistan Summer Time", "WAT": "West Africa Standard Time", "SGT": "Singapore Standard Time", "HKT": "Hong Kong Standard Time", "EST": "Eastern Standard Time", "CST": "Central Standard Time", "CLT": "Chile Standard Time", "WART": "Western Argentina Standard Time", "COT": "Colombia Standard Time", "COST": "Colombia Summer Time", "HENOMX": "Northwest Mexico Daylight Time", "HNCU": "Cuba Standard Time", "UYST": "Uruguay Summer Time", "WESZ": "Western European Summer Time", "HEPM": "St. Pierre & Miquelon Daylight Time", "ChST": "Chamorro Standard Time", "GFT": "French Guiana Time", "UYT": "Uruguay Standard Time", "VET": "Venezuela Time", "PDT": "Pacific Daylight Time", "AWST": "Australian Western Standard Time", "HKST": "Hong Kong Summer Time", "IST": "India Standard Time", "CLST": "Chile Summer Time", "TMT": "Turkmenistan Standard Time", "GMT": "Greenwich Mean Time", "HEPMX": "Mexican Pacific Daylight Time", "HNOG": "West Greenland Standard Time", "CAT": "Central Africa Time", "AKDT": "Alaska Daylight Time", "ACWST": "Australian Central Western Standard Time", "WARST": "Western Argentina Summer Time", "AEDT": "Australian Eastern Daylight Time", "BOT": "Bolivia Time", "HNEG": "East Greenland Standard Time", "ACST": "Australian Central Standard Time", "HADT": "Hawaii-Aleutian Daylight Time", "ARST": "Argentina Summer Time", "HEOG": "West Greenland Summer Time", "AEST": "Australian Eastern Standard Time", "HNPM": "St. Pierre & Miquelon Standard Time", "HECU": "Cuba Daylight Time", "HAST": "Hawaii-Aleutian Standard Time", "SRT": "Suriname Time", "ACWDT": "Australian Central Western Daylight Time", "NZDT": "New Zealand Daylight Time", "JST": "Japan Standard Time", "ACDT": "Australian Central Daylight Time", "PST": "Pacific Standard Time", "EAT": "East Africa Time", "OEZ": "Eastern European Standard Time", "EDT": "Eastern Daylight Time", "AKST": "Alaska Standard Time", "GYT": "Guyana Time", "HAT": "Newfoundland Daylight Time", "HNT": "Newfoundland Standard Time", "MESZ": "Central European Summer Time", "LHDT": "Lord Howe Daylight Time", "∅∅∅": "Amazon Summer Time", "HNNOMX": "Northwest Mexico Standard Time", "CDT": "Central Daylight Time", "WEZ": "Western European Standard Time", "MEZ": "Central European Standard Time", "CHADT": "Chatham Daylight Time", "JDT": "Japan Daylight Time", "HNPMX": "Mexican Pacific Standard Time", "AST": "Atlantic Standard Time", "WIB": "Western Indonesia Time", "AWDT": "Australian Western Daylight Time"},
++ locale: "en_ZW",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACDT": "ACDT", "JDT": "JDT", "LHST": "LHST", "MYT": "MYT", "ACWDT": "ACWDT", "SGT": "SGT", "OESZ": "OESZ", "HNT": "HNT", "GYT": "GYT", "AWDT": "AWDT", "HNPM": "HNPM", "CHAST": "CHAST", "ACWST": "ACWST", "OEZ": "OEZ", "WITA": "WITA", "MST": "MST", "NZDT": "NZDT", "EAT": "EAT", "GFT": "GFT", "HKT": "HKT", "CAT": "CAT", "BOT": "BOT", "UYST": "UYST", "IST": "IST", "PST": "PST", "WEZ": "WEZ", "JST": "JST", "COST": "COST", "HKST": "HKST", "CLT": "CLT", "CST": "CST", "NZST": "NZST", "ART": "ART", "HAST": "HAST", "HADT": "HADT", "WAT": "WAT", "WAST": "WAST", "AKDT": "AKDT", "TMT": "TMT", "SRT": "SRT", "HNEG": "HNEG", "∅∅∅": "∅∅∅", "HEPM": "HEPM", "WESZ": "WESZ", "SAST": "SAST", "EDT": "EDT", "CLST": "CLST", "GMT": "GMT", "ARST": "ARST", "BT": "BT", "HEPMX": "HEPMX", "MDT": "MDT", "ECT": "ECT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "PDT": "PDT", "HNPMX": "HNPMX", "HNOG": "HNOG", "EST": "EST", "MEZ": "MEZ", "HENOMX": "HENOMX", "AWST": "AWST", "LHDT": "LHDT", "ADT": "ADT", "ACST": "ACST", "HAT": "HAT", "HEOG": "HEOG", "TMST": "TMST", "WIB": "WIB", "CDT": "CDT", "ChST": "ChST", "VET": "VET", "WIT": "WIT", "AEDT": "AEDT", "CHADT": "CHADT", "UYT": "UYT", "HECU": "HECU", "WART": "WART", "WARST": "WARST", "COT": "COT", "AST": "AST", "MESZ": "MESZ", "AEST": "AEST", "HNCU": "HNCU", "AKST": "AKST"},
+ }
+ }
+ 
+@@ -138,7 +115,7 @@ func (en *en_ZW) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (en *en_ZW) MonthsAbbreviated() []string {
+- return en.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +125,7 @@ func (en *en_ZW) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (en *en_ZW) MonthsNarrow() []string {
+- return en.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +135,7 @@ func (en *en_ZW) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (en *en_ZW) MonthsWide() []string {
+- return en.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,73 +181,13 @@ func (en *en_ZW) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'en_ZW' and handles both Whole and Real numbers based on 'v'
+ func (en *en_ZW) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'en_ZW' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (en *en_ZW) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, en.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'en_ZW'
+@@ -278,56 +195,7 @@ func (en *en_ZW) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, en.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'en_ZW'
+@@ -336,68 +204,7 @@ func (en *en_ZW) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := en.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, en.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, en.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, en.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, en.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, en.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'en_ZW'
+diff --git a/eo/eo.go b/eo/eo.go
+index 8c7888c..90f8d9e 100644
+--- a/eo/eo.go
++++ b/eo/eo.go
+@@ -74,7 +74,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"aK", "pK"},
+ erasNarrow: []string{"aK", "pK"},
+ erasWide: []string{"aK", "pK"},
+- timezones: map[string]string{"HEOG": "HEOG", "HEPM": "HEPM", "HEEG": "HEEG", "WAST": "okcidenta afrika somera tempo", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "HNOG": "HNOG", "JDT": "japana somera tempo", "COST": "COST", "SGT": "SGT", "WIT": "orienta indonezia tempo", "ACWDT": "centrokcidenta aŭstralia somera tempo", "ARST": "ARST", "JST": "japana norma tempo", "WAT": "okcidenta afrika norma tempo", "EST": "orienta nord-amerika norma tempo", "AWST": "okcidenta aŭstralia norma tempo", "LHDT": "LHDT", "IST": "barata tempo", "CDT": "centra nord-amerika somera tempo", "GYT": "GYT", "PST": "pacifika nord-amerika norma tempo", "PDT": "pacifika nord-amerika somera tempo", "MEZ": "centra eŭropa norma tempo", "CST": "centra nord-amerika norma tempo", "HADT": "HADT", "HNPM": "HNPM", "CLT": "CLT", "HENOMX": "HENOMX", "HAST": "HAST", "ACWST": "centrokcidenta aŭstralia norma tempo", "ART": "ART", "CLST": "CLST", "OEZ": "orienta eŭropa norma tempo", "MESZ": "centra eŭropa somera tempo", "SAST": "suda afrika tempo", "AKST": "AKST", "HKT": "HKT", "LHST": "LHST", "NZST": "NZST", "SRT": "SRT", "HKST": "HKST", "VET": "VET", "CHAST": "CHAST", "ACST": "centra aŭstralia norma tempo", "WARST": "WARST", "HECU": "HECU", "GMT": "universala tempo kunordigita", "AKDT": "AKDT", "UYT": "UYT", "HNCU": "HNCU", "MST": "MST", "AST": "atlantika nord-amerika norma tempo", "NZDT": "NZDT", "HNEG": "HNEG", "CAT": "centra afrika tempo", "WART": "WART", "WESZ": "okcidenta eŭropa somera tempo", "GFT": "GFT", "ACDT": "centra aŭstralia somera tempo", "AEST": "orienta aŭstralia norma tempo", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "UYST": "UYST", "BT": "BT", "HNT": "HNT", "HAT": "HAT", "TMST": "TMST", "EAT": "orienta afrika tempo", "OESZ": "orienta eŭropa somera tempo", "COT": "COT", "ADT": "atlantika nord-amerika somera tempo", "WITA": "centra indonezia tempo", "ChST": "ChST", "ECT": "ECT", "MDT": "MDT", "EDT": "orienta nord-amerika somera tempo", "AEDT": "orienta aŭstralia somera tempo", "TMT": "TMT", "MYT": "MYT", "WIB": "okcidenta indonezia tempo", "WEZ": "okcidenta eŭropa norma tempo", "AWDT": "okcidenta aŭstralia somera tempo", "BOT": "BOT"},
++ timezones: map[string]string{"LHDT": "LHDT", "CHAST": "CHAST", "WESZ": "okcidenta eŭropa somera tempo", "HNCU": "HNCU", "ARST": "ARST", "HEPM": "HEPM", "OEZ": "orienta eŭropa norma tempo", "EDT": "orienta nord-amerika somera tempo", "BOT": "BOT", "SRT": "SRT", "HADT": "HADT", "HECU": "HECU", "CLT": "CLT", "MDT": "MDT", "IST": "barata tempo", "UYT": "UYT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "WART": "WART", "SAST": "suda afrika tempo", "GMT": "universala tempo kunordigita", "HENOMX": "HENOMX", "MYT": "MYT", "AEDT": "orienta aŭstralia somera tempo", "WEZ": "okcidenta eŭropa norma tempo", "OESZ": "orienta eŭropa somera tempo", "HKT": "HKT", "ACDT": "centra aŭstralia somera tempo", "HNEG": "HNEG", "PDT": "pacifika nord-amerika somera tempo", "CHADT": "CHADT", "WAT": "okcidenta afrika norma tempo", "GYT": "GYT", "EST": "orienta nord-amerika norma tempo", "CLST": "CLST", "NZST": "NZST", "∅∅∅": "∅∅∅", "HNT": "HNT", "WIT": "orienta indonezia tempo", "HAST": "HAST", "LHST": "LHST", "ACWDT": "centrokcidenta aŭstralia somera tempo", "WAST": "okcidenta afrika somera tempo", "GFT": "GFT", "ART": "ART", "JDT": "japana somera tempo", "UYST": "UYST", "SGT": "SGT", "HEOG": "HEOG", "ECT": "ECT", "MESZ": "centra eŭropa somera tempo", "JST": "japana norma tempo", "AKST": "AKST", "TMT": "TMT", "WITA": "centra indonezia tempo", "CST": "centra nord-amerika norma tempo", "CDT": "centra nord-amerika somera tempo", "MEZ": "centra eŭropa norma tempo", "TMST": "TMST", "MST": "MST", "AWST": "okcidenta aŭstralia norma tempo", "AEST": "orienta aŭstralia norma tempo", "AKDT": "AKDT", "HNOG": "HNOG", "NZDT": "NZDT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "BT": "BT", "ACST": "centra aŭstralia norma tempo", "PST": "pacifika nord-amerika norma tempo", "WARST": "WARST", "CAT": "centra afrika tempo", "WIB": "okcidenta indonezia tempo", "AST": "atlantika nord-amerika norma tempo", "ADT": "atlantika nord-amerika somera tempo", "ChST": "ChST", "ACWST": "centrokcidenta aŭstralia norma tempo", "HAT": "HAT", "COT": "COT", "EAT": "orienta afrika tempo", "COST": "COST", "HKST": "HKST", "AWDT": "okcidenta aŭstralia somera tempo", "HNPM": "HNPM", "VET": "VET"},
+ }
+ }
+ 
+diff --git a/eo_001/eo_001.go b/eo_001/eo_001.go
+index 359aeb6..a4254fb 100644
+--- a/eo_001/eo_001.go
++++ b/eo_001/eo_001.go
+@@ -10,71 +10,45 @@ import (
+ )
+ 
+ type eo_001 struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'eo_001' locale
+ func New() locales.Translator {
+ return &eo_001{
+- locale: "eo_001",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyPositiveSuffix: "K",
+- currencyNegativePrefix: " ",
+- currencyNegativeSuffix: "K",
+- monthsAbbreviated: []string{"", "jan", "feb", "mar", "apr", "maj", "jun", "jul", "aŭg", "sep", "okt", "nov", "dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januaro", "februaro", "marto", "aprilo", "majo", "junio", "julio", "aŭgusto", "septembro", "oktobro", "novembro", "decembro"},
+- daysAbbreviated: []string{"di", "lu", "ma", "me", "ĵa", "ve", "sa"},
+- daysNarrow: []string{"D", "L", "M", "M", "Ĵ", "V", "S"},
+- daysWide: []string{"dimanĉo", "lundo", "mardo", "merkredo", "ĵaŭdo", "vendredo", "sabato"},
+- periodsAbbreviated: []string{"atm", "ptm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"atm", "ptm"},
+- erasAbbreviated: []string{"aK", "pK"},
+- erasNarrow: []string{"aK", "pK"},
+- erasWide: []string{"aK", "pK"},
+- timezones: map[string]string{"HEPMX": "HEPMX", "ADT": "atlantika nord-amerika somera tempo", "HEEG": "HEEG", "ACST": "centra aŭstralia norma tempo", "COT": "COT", "HEOG": "HEOG", "ACWDT": "centrokcidenta aŭstralia somera tempo", "AEST": "orienta aŭstralia norma tempo", "MESZ": "centra eŭropa somera tempo", "ChST": "ChST", "HAT": "HAT", "HEPM": "HEPM", "JDT": "japana somera tempo", "ECT": "ECT", "HNPMX": "HNPMX", "AST": "atlantika nord-amerika norma tempo", "AKST": "AKST", "VET": "VET", "WEZ": "okcidenta eŭropa norma tempo", "NZST": "NZST", "HNEG": "HNEG", "SGT": "SGT", "WART": "WART", "MDT": "MDT", "UYST": "UYST", "AKDT": "AKDT", "HNOG": "HNOG", "WESZ": "okcidenta eŭropa somera tempo", "∅∅∅": "∅∅∅", "GFT": "GFT", "WARST": "WARST", "HAST": "HAST", "ACWST": "centrokcidenta aŭstralia norma tempo", "HNT": "HNT", "SAST": "suda afrika tempo", "HNNOMX": "HNNOMX", "EST": "orienta nord-amerika norma tempo", "CDT": "centra nord-amerika somera tempo", "AWDT": "okcidenta aŭstralia somera tempo", "CHAST": "CHAST", "WAST": "okcidenta afrika somera tempo", "OESZ": "orienta eŭropa somera tempo", "COST": "COST", "GYT": "GYT", "HKT": "HKT", "HKST": "HKST", "TMT": "TMT", "ACDT": "centra aŭstralia somera tempo", "CAT": "centra afrika tempo", "GMT": "universala tempo kunordigita", "MST": "MST", "CHADT": "CHADT", "EDT": "orienta nord-amerika somera tempo", "CST": "centra nord-amerika norma tempo", "WIT": "orienta indonezia tempo", "ART": "ART", "PDT": "pacifika nord-amerika somera tempo", "CLT": "CLT", "BT": "BT", "PST": "pacifika nord-amerika norma tempo", "WITA": "centra indonezia tempo", "BOT": "BOT", "OEZ": "orienta eŭropa norma tempo", "MYT": "MYT", "LHDT": "LHDT", "CLST": "CLST", "HENOMX": "HENOMX", "HNCU": "HNCU", "SRT": "SRT", "EAT": "orienta afrika tempo", "WAT": "okcidenta afrika norma tempo", "AWST": "okcidenta aŭstralia norma tempo", "HNPM": "HNPM", "TMST": "TMST", "UYT": "UYT", "HADT": "HADT", "MEZ": "centra eŭropa norma tempo", "LHST": "LHST", "JST": "japana norma tempo", "HECU": "HECU", "WIB": "okcidenta indonezia tempo", "ARST": "ARST", "AEDT": "orienta aŭstralia somera tempo", "NZDT": "NZDT", "IST": "barata tempo"},
++ locale: "eo_001",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WESZ": "WESZ", "HAT": "HAT", "MST": "MST", "MESZ": "MESZ", "AWST": "AWST", "PDT": "PDT", "OEZ": "OEZ", "WITA": "WITA", "CST": "CST", "JDT": "JDT", "HNCU": "HNCU", "HEOG": "HEOG", "WIB": "WIB", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "WAST": "WAST", "OESZ": "OESZ", "AST": "AST", "BT": "BT", "WART": "WART", "HNOG": "HNOG", "CLT": "CLT", "MEZ": "MEZ", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "∅∅∅": "∅∅∅", "HKT": "HKT", "GMT": "GMT", "ART": "ART", "LHST": "LHST", "CHADT": "CHADT", "UYT": "UYT", "PST": "PST", "TMT": "TMT", "CAT": "CAT", "EAT": "EAT", "ACWST": "ACWST", "ACWDT": "ACWDT", "AKST": "AKST", "GYT": "GYT", "ARST": "ARST", "HAST": "HAST", "JST": "JST", "IST": "IST", "SAST": "SAST", "COST": "COST", "HEEG": "HEEG", "HENOMX": "HENOMX", "HADT": "HADT", "HKST": "HKST", "ECT": "ECT", "ADT": "ADT", "SRT": "SRT", "HNEG": "HNEG", "HEPM": "HEPM", "AEST": "AEST", "UYST": "UYST", "HECU": "HECU", "WIT": "WIT", "CDT": "CDT", "NZDT": "NZDT", "AWDT": "AWDT", "WARST": "WARST", "EST": "EST", "EDT": "EDT", "NZST": "NZST", "LHDT": "LHDT", "AKDT": "AKDT", "HNT": "HNT", "MDT": "MDT", "ChST": "ChST", "MYT": "MYT", "CHAST": "CHAST", "WAT": "WAT", "GFT": "GFT", "COT": "COT", "CLST": "CLST", "AEDT": "AEDT", "SGT": "SGT", "VET": "VET", "TMST": "TMST", "BOT": "BOT", "ACST": "ACST", "HNPM": "HNPM"},
+ }
+ }
+ 
+@@ -127,7 +101,7 @@ func (eo *eo_001) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (eo *eo_001) MonthsAbbreviated() []string {
+- return eo.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -137,7 +111,7 @@ func (eo *eo_001) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (eo *eo_001) MonthsNarrow() []string {
+- return eo.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -147,7 +121,7 @@ func (eo *eo_001) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (eo *eo_001) MonthsWide() []string {
+- return eo.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -193,79 +167,13 @@ func (eo *eo_001) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'eo_001' and handles both Whole and Real numbers based on 'v'
+ func (eo *eo_001) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, eo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(eo.group) - 1; j >= 0; j-- {
+- b = append(b, eo.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(eo.minus) - 1; j >= 0; j-- {
+- b = append(b, eo.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'eo_001' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (eo *eo_001) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, eo.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(eo.minus) - 1; j >= 0; j-- {
+- b = append(b, eo.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, eo.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'eo_001'
+@@ -273,42 +181,7 @@ func (eo *eo_001) FmtCurrency(num float64, v uint64, currency currency.Type) str
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := eo.currencies[currency]
+- l := len(s) + len(symbol) + 7
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, eo.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(eo.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, eo.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- for j := len(eo.minus) - 1; j >= 0; j-- {
+- b = append(b, eo.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, eo.currencyPositiveSuffix...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'eo_001'
+@@ -317,59 +190,7 @@ func (eo *eo_001) FmtAccounting(num float64, v uint64, currency currency.Type) s
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := eo.currencies[currency]
+- l := len(s) + len(symbol) + 7
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, eo.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(eo.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, eo.currencyNegativePrefix[j])
+- }
+-
+- for j := len(eo.minus) - 1; j >= 0; j-- {
+- b = append(b, eo.minus[j])
+- }
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(eo.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, eo.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if num < 0 {
+- b = append(b, eo.currencyNegativeSuffix...)
+- } else {
+-
+- b = append(b, eo.currencyPositiveSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'eo_001'
+@@ -377,28 +198,6 @@ func (eo *eo_001) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -407,22 +206,6 @@ func (eo *eo_001) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+- b = append(b, eo.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -431,22 +214,6 @@ func (eo *eo_001) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+- b = append(b, eo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -455,21 +222,6 @@ func (eo *eo_001) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, eo.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d, 0x61}...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, eo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -478,19 +230,6 @@ func (eo *eo_001) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, eo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -499,26 +238,6 @@ func (eo *eo_001) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, eo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, eo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -527,30 +246,6 @@ func (eo *eo_001) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, eo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, eo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -559,28 +254,5 @@ func (eo *eo_001) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2d, 0x61}...)
+- b = append(b, []byte{0x20, 0x68, 0x6f, 0x72, 0x6f}...)
+- b = append(b, []byte{0x20, 0x6b, 0x61, 0x6a}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, eo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := eo.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/es/es.go b/es/es.go
+index 8fbcf26..0b862a1 100644
+--- a/es/es.go
++++ b/es/es.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"a. C.", "d. C."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"BT": "hora de Bután", "AEDT": "hora de verano de Australia oriental", "TMT": "hora estándar de Turkmenistán", "COT": "hora estándar de Colombia", "GMT": "hora del meridiano de Greenwich", "SAST": "hora de Sudáfrica", "CLST": "hora de verano de Chile", "ACDT": "hora de verano de Australia central", "OESZ": "hora de verano de Europa oriental", "∅∅∅": "hora de verano de Perú", "PDT": "hora de verano del Pacífico", "ART": "hora estándar de Argentina", "WITA": "hora de Indonesia central", "HEPMX": "hora de verano del Pacífico de México", "AKST": "hora estándar de Alaska", "MYT": "hora de Malasia", "WEZ": "hora estándar de Europa occidental", "ARST": "hora de verano de Argentina", "HEOG": "hora de verano de Groenlandia occidental", "EAT": "hora de África oriental", "OEZ": "hora estándar de Europa oriental", "MST": "Hora estándar de Macao", "WIB": "hora de Indonesia occidental", "WESZ": "hora de verano de Europa occidental", "AWDT": "hora de verano de Australia occidental", "SGT": "hora de Singapur", "PST": "hora estándar del Pacífico", "HKT": "hora estándar de Hong Kong", "HNPM": "hora estándar de San Pedro y Miquelón", "AEST": "hora estándar de Australia oriental", "HKST": "hora de verano de Hong Kong", "ACST": "hora estándar de Australia central", "COST": "hora de verano de Colombia", "HNNOMX": "hora estándar del noroeste de México", "ADT": "hora de verano del Atlántico", "VET": "hora de Venezuela", "HNT": "hora estándar de Terranova", "LHDT": "hora de verano de Lord Howe", "CLT": "hora estándar de Chile", "ECT": "hora de Ecuador", "EDT": "hora de verano oriental", "IST": "hora estándar de la India", "HEEG": "hora de verano de Groenlandia oriental", "GFT": "hora de la Guayana Francesa", "UYT": "hora estándar de Uruguay", "UYST": "hora de verano de Uruguay", "SRT": "hora de Surinam", "NZDT": "hora de verano de Nueva Zelanda", "HAST": "hora estándar de Hawái-Aleutiano", "WIT": "hora de Indonesia oriental", "HNCU": "hora estándar de Cuba", "GYT": "hora de Guyana", "CST": "hora estándar central", "AWST": "hora estándar de Australia occidental", "ChST": "hora estándar de Chamorro", "BOT": "hora de Bolivia", "HNEG": "hora estándar de Groenlandia oriental", "WAST": "hora de verano de África occidental", "MDT": "Hora de verano de Macao", "AKDT": "hora de verano de Alaska", "HEPM": "hora de verano de San Pedro y Miquelón", "JDT": "hora de verano de Japón", "TMST": "hora de verano de Turkmenistán", "CAT": "hora de África central", "WARST": "hora de verano de Argentina occidental", "AST": "hora estándar del Atlántico", "ACWST": "hora estándar de Australia centroccidental", "JST": "hora estándar de Japón", "NZST": "hora estándar de Nueva Zelanda", "CHAST": "hora estándar de Chatham", "HECU": "hora de verano de Cuba", "HNPMX": "hora estándar del Pacífico de México", "CDT": "hora de verano central", "ACWDT": "hora de verano de Australia centroccidental", "MEZ": "hora estándar de Europa central", "LHST": "hora estándar de Lord Howe", "HENOMX": "hora de verano del noroeste de México", "MESZ": "hora de verano de Europa central", "CHADT": "hora de verano de Chatham", "WAT": "hora estándar de África occidental", "WART": "hora estándar de Argentina occidental", "EST": "hora estándar oriental", "HADT": "hora de verano de Hawái-Aleutiano", "HAT": "hora de verano de Terranova", "HNOG": "hora estándar de Groenlandia occidental"},
++ timezones: map[string]string{"MDT": "Hora de verano de Macao", "HAST": "hora estándar de Hawái-Aleutiano", "MYT": "hora de Malasia", "PDT": "hora de verano del Pacífico", "WAST": "hora de verano de África occidental", "TMST": "hora de verano de Turkmenistán", "AKST": "hora estándar de Alaska", "OESZ": "hora de verano de Europa oriental", "TMT": "hora estándar de Turkmenistán", "CAT": "hora de África central", "HAT": "hora de verano de Terranova", "COT": "hora estándar de Colombia", "COST": "hora de verano de Colombia", "JDT": "hora de verano de Japón", "BT": "hora de Bután", "ACWDT": "hora de verano de Australia centroccidental", "SGT": "hora de Singapur", "AKDT": "hora de verano de Alaska", "NZST": "hora estándar de Nueva Zelanda", "AST": "hora estándar del Atlántico", "WIB": "hora de Indonesia occidental", "AWDT": "hora de verano de Australia occidental", "UYT": "hora estándar de Uruguay", "AEDT": "hora de verano de Australia oriental", "WEZ": "hora estándar de Europa occidental", "CLT": "hora estándar de Chile", "WAT": "hora estándar de África occidental", "HNT": "hora estándar de Terranova", "ARST": "hora de verano de Argentina", "AWST": "hora estándar de Australia occidental", "HEPM": "hora de verano de San Pedro y Miquelón", "PST": "hora estándar del Pacífico", "CHAST": "hora estándar de Chatham", "HECU": "hora de verano de Cuba", "BOT": "hora de Bolivia", "CST": "hora estándar central", "MST": "Hora estándar de Macao", "MEZ": "hora estándar de Europa central", "ACST": "hora estándar de Australia central", "CHADT": "hora de verano de Chatham", "WESZ": "hora de verano de Europa occidental", "CLST": "hora de verano de Chile", "HEEG": "hora de verano de Groenlandia oriental", "WARST": "hora de verano de Argentina occidental", "WITA": "hora de Indonesia central", "ART": "hora estándar de Argentina", "ACDT": "hora de verano de Australia central", "HNPM": "hora estándar de San Pedro y Miquelón", "IST": "hora estándar de la India", "HEPMX": "hora de verano del Pacífico de México", "GMT": "hora del meridiano de Greenwich", "HNPMX": "hora estándar del Pacífico de México", "HKST": "hora de verano de Hong Kong", "ADT": "hora de verano del Atlántico", "HNEG": "hora estándar de Groenlandia oriental", "∅∅∅": "Hora de verano de Acre", "OEZ": "hora estándar de Europa oriental", "ECT": "hora de Ecuador", "GYT": "hora de Guyana", "SRT": "hora de Surinam", "MESZ": "hora de verano de Europa central", "HNNOMX": "hora estándar del noroeste de México", "UYST": "hora de verano de Uruguay", "AEST": "hora estándar de Australia oriental", "HNCU": "hora estándar de Cuba", "VET": "hora de Venezuela", "WIT": "hora de Indonesia oriental", "HKT": "hora estándar de Hong Kong", "ChST": "hora estándar de Chamorro", "HADT": "hora de verano de Hawái-Aleutiano", "LHST": "hora estándar de Lord Howe", "LHDT": "hora de verano de Lord Howe", "WART": "hora estándar de Argentina occidental", "HNOG": "hora estándar de Groenlandia occidental", "NZDT": "hora de verano de Nueva Zelanda", "HENOMX": "hora de verano del noroeste de México", "JST": "hora estándar de Japón", "GFT": "hora de la Guayana Francesa", "HEOG": "hora de verano de Groenlandia occidental", "CDT": "hora de verano central", "SAST": "hora de Sudáfrica", "EST": "hora estándar oriental", "EDT": "hora de verano oriental", "EAT": "hora de África oriental", "ACWST": "hora estándar de Australia centroccidental"},
+ }
+ }
+ 
+diff --git a/es_419/es_419.go b/es_419/es_419.go
+index fee14d3..38dc7a7 100644
+--- a/es_419/es_419.go
++++ b/es_419/es_419.go
+@@ -18,7 +18,6 @@ type es_419 struct {
+ group string
+ minus string
+ percent string
+- percentSuffix string
+ perMille string
+ timeSeparator string
+ inifinity string
+@@ -49,27 +48,15 @@ func New() locales.Translator {
+ pluralsRange: []locales.PluralRule{6},
+ decimal: ".",
+ group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "E£", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "BsF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+ monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sep.", "oct.", "nov.", "dic."},
+ monthsNarrow: []string{"", "e", "f", "m", "a", "m", "j", "j", "a", "s", "o", "n", "d"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+ daysNarrow: []string{"d", "l", "m", "m", "j", "v", "s"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+ periodsAbbreviated: []string{"a.m.", "p.m."},
+ periodsNarrow: []string{"a.m.", "p.m."},
+ periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"WIT": "hora de Indonesia oriental", "ART": "hora estándar de Argentina", "HADT": "hora de verano de Hawái-Aleutianas", "VET": "hora de Venezuela", "WESZ": "hora de verano de Europa occidental", "NZST": "hora estándar de Nueva Zelanda", "IST": "hora de India", "GYT": "hora de Guyana", "UYST": "hora de verano de Uruguay", "AKST": "hora estándar de Alaska", "MESZ": "hora de verano de Europa central", "HEEG": "hora de verano de Groenlandia oriental", "TMST": "hora de verano de Turkmenistán", "EST": "hora estándar oriental", "HAST": "hora estándar de Hawái-Aleutianas", "HEOG": "hora de verano de Groenlandia occidental", "NZDT": "hora de verano de Nueva Zelanda", "HNEG": "hora estándar de Groenlandia oriental", "CAT": "hora de África central", "COT": "hora estándar de Colombia", "WEZ": "hora estándar de Europa occidental", "HKT": "hora estándar de Hong Kong", "HEPM": "hora de verano de San Pedro y Miquelón", "CDT": "hora de verano central", "AST": "hora estándar del Atlántico", "WIB": "hora de Indonesia occidental", "HNOG": "hora estándar de Groenlandia occidental", "PST": "hora estándar del Pacífico", "ACWDT": "hora de verano de Australia centroccidental", "EAT": "hora de África oriental", "COST": "hora de verano de Colombia", "HNCU": "hora estándar de Cuba", "∅∅∅": "hora de verano de las Azores", "ADT": "hora de verano del Atlántico", "BOT": "hora de Bolivia", "TMT": "hora estándar de Turkmenistán", "ACST": "hora estándar de Australia central", "WART": "hora estándar de Argentina occidental", "HNNOMX": "hora estándar del noroeste de México", "HNPMX": "hora estándar del Pacífico de México", "CLST": "hora de verano de Chile", "JST": "hora estándar de Japón", "AEST": "hora estándar de Australia oriental", "CHAST": "hora estándar de Chatham", "WAST": "hora de verano de África occidental", "ECT": "hora de Ecuador", "WARST": "hora de verano de Argentina occidental", "MST": "Hora estándar de Macao", "BT": "hora de Bután", "ARST": "hora de verano de Argentina", "HENOMX": "hora de verano del noroeste de México", "MEZ": "hora estándar de Europa central", "CLT": "hora estándar de Chile", "UYT": "hora estándar de Uruguay", "AWST": "hora estándar de Australia occidental", "WITA": "hora de Indonesia central", "HEPMX": "hora de verano del Pacífico de México", "CST": "hora estándar central", "AEDT": "hora de verano de Australia oriental", "AKDT": "hora de verano de Alaska", "HAT": "hora de verano de Terranova", "HNPM": "hora estándar de San Pedro y Miquelón", "JDT": "hora de verano de Japón", "HECU": "hora de verano de Cuba", "EDT": "hora de verano oriental", "MYT": "hora de Malasia", "CHADT": "hora de verano de Chatham", "WAT": "hora estándar de África occidental", "OESZ": "hora de verano de Europa oriental", "LHST": "hora estándar de Lord Howe", "SGT": "hora de Singapur", "MDT": "Hora de verano de Macao", "HNT": "hora estándar de Terranova", "HKST": "hora de verano de Hong Kong", "ACDT": "hora de verano de Australia central", "OEZ": "hora estándar de Europa oriental", "GMT": "hora del meridiano de Greenwich", "PDT": "hora de verano del Pacífico", "ACWST": "hora estándar de Australia centroccidental", "SRT": "hora de Surinam", "AWDT": "hora de verano de Australia occidental", "GFT": "hora de la Guayana Francesa", "LHDT": "hora de verano de Lord Howe", "SAST": "hora de Sudáfrica", "ChST": "hora estándar de Chamorro"},
++ timezones: map[string]string{"WAST": "WAST", "EST": "EST", "CLT": "CLT", "AST": "AST", "WESZ": "WESZ", "ARST": "ARST", "JST": "JST", "ACDT": "ACDT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "GFT": "GFT", "EDT": "EDT", "CDT": "CDT", "SRT": "SRT", "ACWDT": "ACWDT", "HAT": "HAT", "HKT": "HKT", "GMT": "GMT", "MESZ": "MESZ", "PST": "PST", "WAT": "WAT", "HKST": "HKST", "NZDT": "NZDT", "IST": "hora de India", "HNPM": "HNPM", "AKST": "AKST", "WART": "WART", "ART": "ART", "ChST": "ChST", "MEZ": "MEZ", "HEPM": "HEPM", "MYT": "MYT", "TMST": "TMST", "ADT": "ADT", "HNEG": "HNEG", "LHST": "LHST", "UYT": "UYT", "PDT": "PDT", "WEZ": "WEZ", "VET": "VET", "EAT": "EAT", "HEEG": "HEEG", "∅∅∅": "∅∅∅", "WIB": "WIB", "HADT": "hora de verano de Hawái-Aleutianas", "AWDT": "AWDT", "LHDT": "LHDT", "HNCU": "HNCU", "SAST": "SAST", "NZST": "NZST", "HAST": "hora estándar de Hawái-Aleutianas", "HNT": "HNT", "WIT": "WIT", "CHAST": "CHAST", "UYST": "UYST", "HECU": "HECU", "HNOG": "HNOG", "AEDT": "AEDT", "HNNOMX": "HNNOMX", "ACST": "ACST", "AEST": "AEST", "HEOG": "HEOG", "ECT": "ECT", "BOT": "BOT", "JDT": "JDT", "SGT": "SGT", "WARST": "WARST", "TMT": "TMT", "CST": "CST", "MDT": "MDT", "HENOMX": "HENOMX", "AKDT": "AKDT", "OESZ": "OESZ", "CAT": "CAT", "WITA": "WITA", "MST": "MST", "ACWST": "ACWST", "CHADT": "CHADT", "BT": "BT", "OEZ": "OEZ", "GYT": "GYT", "COT": "COT", "COST": "COST", "AWST": "AWST", "CLST": "CLST"},
+ }
+ }
+ 
+@@ -142,7 +129,7 @@ func (es *es_419) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_419) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -188,75 +175,13 @@ func (es *es_419) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_419' and handles both Whole and Real numbers based on 'v'
+ func (es *es_419) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_419' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_419) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_419'
+@@ -264,7 +189,7 @@ func (es *es_419) FmtCurrency(num float64, v uint64, currency currency.Type) str
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -322,7 +247,7 @@ func (es *es_419) FmtAccounting(num float64, v uint64, currency currency.Type) s
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -387,17 +312,6 @@ func (es *es_419) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -406,17 +320,6 @@ func (es *es_419) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -425,19 +328,6 @@ func (es *es_419) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,21 +336,6 @@ func (es *es_419) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/es_AR/es_AR.go b/es_AR/es_AR.go
+index 70ae0b5..455bd64 100644
+--- a/es_AR/es_AR.go
++++ b/es_AR/es_AR.go
+@@ -18,7 +18,6 @@ type es_AR struct {
+ group string
+ minus string
+ percent string
+- percentSuffix string
+ perMille string
+ timeSeparator string
+ inifinity string
+@@ -52,30 +51,16 @@ func New() locales.Translator {
+ pluralsRange: []locales.PluralRule{6},
+ decimal: ",",
+ group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "$", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "US$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: "( ",
+ currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+ daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+ periodsAbbreviated: []string{"a. m.", "p. m."},
+ periodsNarrow: []string{"a. m.", "p. m."},
+ periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"PDT": "hora de verano del Pacífico", "HEPM": "hora de verano de San Pedro y Miquelón", "GFT": "hora de la Guayana Francesa", "OEZ": "hora estándar de Europa oriental", "AKST": "hora estándar de Alaska", "CDT": "hora de verano central", "HEOG": "hora de verano de Groenlandia occidental", "SAST": "hora de Sudáfrica", "HNEG": "hora estándar de Groenlandia oriental", "HNNOMX": "hora estándar del noroeste de México", "AST": "hora estándar del Atlántico", "HAST": "hora estándar de Hawái-Aleutiano", "WIT": "hora de Indonesia oriental", "HNOG": "hora estándar de Groenlandia occidental", "HKT": "hora estándar de Hong Kong", "WITA": "hora de Indonesia central", "HNPMX": "hora estándar del Pacífico de México", "VET": "hora de Venezuela", "CHADT": "hora de verano de Chatham", "EDT": "hora de verano oriental", "UYST": "hora de verano de Uruguay", "ART": "hora estándar de Argentina", "LHDT": "hora de verano de Lord Howe", "ACST": "hora estándar de Australia central", "OESZ": "hora de verano de Europa oriental", "WARST": "hora de verano de Argentina occidental", "HEPMX": "hora de verano del Pacífico de México", "WIB": "hora de Indonesia occidental", "ARST": "hora de verano de Argentina", "ACWST": "hora estándar de Australia centroccidental", "LHST": "hora estándar de Lord Howe", "JST": "hora estándar de Japón", "BOT": "hora de Bolivia", "ECT": "hora de Ecuador", "CAT": "hora de África central", "MDT": "hora de verano de las Montañas", "COT": "hora estándar de Colombia", "GMT": "hora del meridiano de Greenwich", "AKDT": "hora de verano de Alaska", "CST": "hora estándar central", "WAST": "hora de verano de África occidental", "ACWDT": "hora de verano de Australia centroccidental", "TMT": "hora estándar de Turkmenistán", "BT": "hora de Bután", "HEEG": "hora de verano de Groenlandia oriental", "EST": "hora estándar oriental", "ADT": "hora de verano del Atlántico", "AEDT": "hora de verano de Australia oriental", "WESZ": "hora de verano de Europa occidental", "HNT": "hora estándar de Terranova", "AWDT": "hora de verano de Australia occidental", "SRT": "hora de Surinam", "CHAST": "hora estándar de Chatham", "GYT": "hora de Guyana", "NZDT": "hora de verano de Nueva Zelanda", "AEST": "hora estándar de Australia oriental", "EAT": "hora de África oriental", "HNCU": "hora estándar de Cuba", "HADT": "hora de verano de Hawái-Aleutiano", "JDT": "hora de verano de Japón", "CLST": "hora de verano de Chile", "WAT": "hora estándar de África occidental", "HENOMX": "hora de verano del noroeste de México", "UYT": "hora estándar de Uruguay", "MST": "hora estándar de las Montañas", "HAT": "hora de verano de Terranova", "HNPM": "hora estándar de San Pedro y Miquelón", "∅∅∅": "hora de verano del Amazonas", "ACDT": "hora de verano de Australia central", "COST": "hora de verano de Colombia", "SGT": "hora de Singapur", "HECU": "hora de verano de Cuba", "PST": "hora estándar del Pacífico", "MYT": "hora de Malasia", "HKST": "hora de verano de Hong Kong", "NZST": "hora estándar de Nueva Zelanda", "CLT": "hora estándar de Chile", "ChST": "hora estándar de Chamorro", "WART": "hora estándar de Argentina occidental", "AWST": "hora estándar de Australia occidental", "MEZ": "hora estándar de Europa central", "MESZ": "hora de verano de Europa central", "IST": "hora estándar de la India", "TMST": "hora de verano de Turkmenistán", "WEZ": "hora estándar de Europa occidental"},
++ timezones: map[string]string{"HEEG": "HEEG", "HENOMX": "HENOMX", "LHDT": "LHDT", "ACWDT": "ACWDT", "WESZ": "WESZ", "WIT": "WIT", "ART": "ART", "AWDT": "AWDT", "IST": "IST", "UYT": "UYT", "WAT": "WAT", "HNNOMX": "HNNOMX", "WIB": "WIB", "MESZ": "MESZ", "AEDT": "AEDT", "CHADT": "CHADT", "SGT": "SGT", "WART": "WART", "CDT": "CDT", "HEPM": "HEPM", "CLT": "CLT", "ACST": "ACST", "PDT": "PDT", "HECU": "HECU", "HEPMX": "HEPMX", "SAST": "SAST", "HNEG": "HNEG", "ARST": "ARST", "PST": "PST", "HNT": "HNT", "HAT": "HAT", "COT": "COT", "CAT": "CAT", "AST": "AST", "MDT": "MDT", "ACDT": "ACDT", "HNCU": "HNCU", "CST": "CST", "ECT": "ECT", "BT": "BT", "AEST": "AEST", "HKST": "HKST", "NZST": "NZST", "BOT": "BOT", "AWST": "AWST", "ACWST": "ACWST", "AKDT": "AKDT", "HNOG": "HNOG", "HKT": "HKT", "GMT": "GMT", "MEZ": "MEZ", "AKST": "AKST", "OEZ": "OEZ", "COST": "COST", "EDT": "EDT", "TMT": "TMT", "MST": "MST", "ChST": "ChST", "LHST": "LHST", "MYT": "MYT", "WEZ": "WEZ", "WAST": "WAST", "WITA": "WITA", "HADT": "HADT", "JDT": "JDT", "∅∅∅": "∅∅∅", "UYST": "UYST", "OESZ": "OESZ", "GFT": "GFT", "HEOG": "HEOG", "HAST": "HAST", "EST": "EST", "VET": "VET", "HNPM": "HNPM", "WARST": "WARST", "TMST": "TMST", "SRT": "SRT", "HNPMX": "HNPMX", "CLST": "CLST", "NZDT": "NZDT", "EAT": "EAT", "JST": "JST", "CHAST": "CHAST", "GYT": "GYT", "ADT": "ADT"},
+ }
+ }
+ 
+@@ -128,7 +113,7 @@ func (es *es_AR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_AR) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -138,7 +123,7 @@ func (es *es_AR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_AR) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -148,7 +133,7 @@ func (es *es_AR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_AR) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -194,75 +179,13 @@ func (es *es_AR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_AR' and handles both Whole and Real numbers based on 'v'
+ func (es *es_AR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_AR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_AR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_AR'
+@@ -270,7 +193,7 @@ func (es *es_AR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -332,7 +255,7 @@ func (es *es_AR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 5 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -407,17 +330,6 @@ func (es *es_AR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -426,17 +338,6 @@ func (es *es_AR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -445,19 +346,6 @@ func (es *es_AR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -466,21 +354,6 @@ func (es *es_AR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -489,15 +362,6 @@ func (es *es_AR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -506,22 +370,6 @@ func (es *es_AR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -530,26 +378,6 @@ func (es *es_AR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -558,32 +386,5 @@ func (es *es_AR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_BO/es_BO.go b/es_BO/es_BO.go
+index 91a01da..b29529b 100644
+--- a/es_BO/es_BO.go
++++ b/es_BO/es_BO.go
+@@ -10,70 +10,51 @@ import (
+ )
+ 
+ type es_BO struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'es_BO' locale
+ func New() locales.Translator {
+ return &es_BO{
+- locale: "es_BO",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "Bs", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"HEPMX": "hora de verano del Pacífico de México", "WEZ": "hora estándar de Europa occidental", "HEPM": "hora de verano de San Pedro y Miquelón", "GYT": "hora de Guyana", "HAST": "hora estándar de Hawái-Aleutiano", "BT": "hora de Bután", "ACST": "hora estándar de Australia central", "WAT": "hora estándar de África occidental", "SGT": "hora de Singapur", "MDT": "Hora de verano de Macao", "HNPM": "hora estándar de San Pedro y Miquelón", "HNT": "hora estándar de Terranova", "JDT": "hora de verano de Japón", "HNEG": "hora estándar de Groenlandia oriental", "TMT": "hora estándar de Turkmenistán", "ECT": "hora de Ecuador", "COST": "hora de verano de Colombia", "UYST": "hora de verano de Uruguay", "VET": "hora de Venezuela", "SAST": "hora de Sudáfrica", "GFT": "hora de la Guayana Francesa", "ACDT": "hora de verano de Australia central", "HNNOMX": "hora estándar del noroeste de México", "HENOMX": "hora de verano del noroeste de México", "MESZ": "hora de verano de Europa central", "CLT": "hora estándar de Chile", "CLST": "hora de verano de Chile", "NZST": "hora estándar de Nueva Zelanda", "CHAST": "hora estándar de Chatham", "ChST": "hora estándar de Chamorro", "EST": "hora estándar oriental", "AWDT": "hora de verano de Australia occidental", "WIB": "hora de Indonesia occidental", "HADT": "hora de verano de Hawái-Aleutiano", "SRT": "hora de Surinam", "WESZ": "hora de verano de Europa occidental", "TMST": "hora de verano de Turkmenistán", "WAST": "hora de verano de África occidental", "HNCU": "hora estándar de Cuba", "CDT": "hora de verano central", "LHST": "hora estándar de Lord Howe", "CST": "hora estándar central", "UYT": "hora estándar de Uruguay", "WIT": "hora de Indonesia oriental", "ART": "hora estándar de Argentina", "OESZ": "hora de verano de Europa oriental", "WART": "hora estándar de Argentina occidental", "HNPMX": "hora estándar del Pacífico de México", "MST": "Hora estándar de Macao", "MEZ": "hora estándar de Europa central", "HKST": "hora de verano de Hong Kong", "CHADT": "hora de verano de Chatham", "JST": "hora estándar de Japón", "AKST": "hora estándar de Alaska", "ADT": "hora de verano del Atlántico", "HAT": "hora de verano de Terranova", "ACWST": "hora estándar de Australia centroccidental", "WITA": "hora de Indonesia central", "COT": "hora estándar de Colombia", "GMT": "hora del meridiano de Greenwich", "EDT": "hora de verano oriental", "AST": "hora estándar del Atlántico", "AEST": "hora estándar de Australia oriental", "OEZ": "hora estándar de Europa oriental", "HNOG": "hora estándar de Groenlandia occidental", "PST": "hora estándar del Pacífico", "PDT": "hora de verano del Pacífico", "HEEG": "hora de verano de Groenlandia oriental", "AKDT": "hora de verano de Alaska", "MYT": "hora de Malasia", "HKT": "hora estándar de Hong Kong", "AEDT": "hora de verano de Australia oriental", "AWST": "hora estándar de Australia occidental", "NZDT": "hora de verano de Nueva Zelanda", "CAT": "hora de África central", "EAT": "hora de África oriental", "ACWDT": "hora de verano de Australia centroccidental", "HEOG": "hora de verano de Groenlandia occidental", "LHDT": "hora de verano de Lord Howe", "ARST": "hora de verano de Argentina", "IST": "hora estándar de la India", "∅∅∅": "hora de verano del Amazonas", "BOT": "hora de Bolivia", "WARST": "hora de verano de Argentina occidental", "HECU": "hora de verano de Cuba"},
++ locale: "es_BO",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ decimal: ",",
++ group: ".",
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "Bs", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
++ periodsAbbreviated: []string{"a. m.", "p. m."},
++ periodsNarrow: []string{"a. m.", "p. m."},
++ periodsWide: []string{"a. m.", "p. m."},
++ timezones: map[string]string{"∅∅∅": "∅∅∅", "HECU": "HECU", "HNT": "HNT", "SAST": "SAST", "TMST": "TMST", "CST": "CST", "HENOMX": "HENOMX", "MEZ": "MEZ", "ACDT": "ACDT", "WEZ": "WEZ", "SGT": "SGT", "BOT": "BOT", "HADT": "HADT", "OESZ": "OESZ", "TMT": "TMT", "AEDT": "AEDT", "JST": "JST", "VET": "VET", "HAT": "HAT", "WART": "WART", "CLT": "CLT", "ARST": "ARST", "AWST": "AWST", "PDT": "PDT", "CHADT": "CHADT", "WAT": "WAT", "HEPM": "HEPM", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "UYT": "UYT", "COST": "COST", "EDT": "EDT", "HKT": "HKT", "MDT": "MDT", "EAT": "EAT", "WARST": "WARST", "CAT": "CAT", "PST": "PST", "WIT": "WIT", "WITA": "WITA", "ACST": "ACST", "AEST": "AEST", "HNCU": "HNCU", "HEPMX": "HEPMX", "GYT": "GYT", "COT": "COT", "HKST": "HKST", "CDT": "CDT", "ACWST": "ACWST", "NZDT": "NZDT", "MST": "MST", "HNEG": "HNEG", "MYT": "MYT", "AKST": "AKST", "AKDT": "AKDT", "WIB": "WIB", "ADT": "ADT", "SRT": "SRT", "MESZ": "MESZ", "LHST": "LHST", "HNPMX": "HNPMX", "OEZ": "OEZ", "HNOG": "HNOG", "CHAST": "CHAST", "BT": "BT", "ACWDT": "ACWDT", "UYST": "UYST", "WAST": "WAST", "EST": "EST", "NZST": "NZST", "AST": "AST", "JDT": "JDT", "LHDT": "LHDT", "WESZ": "WESZ", "AWDT": "AWDT", "HEEG": "HEEG", "IST": "IST", "GFT": "GFT", "HEOG": "HEOG", "GMT": "GMT", "ART": "ART", "HAST": "HAST", "ECT": "ECT", "ChST": "ChST", "CLST": "CLST"},
+ }
+ }
+ 
+@@ -126,7 +107,7 @@ func (es *es_BO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_BO) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -146,7 +127,7 @@ func (es *es_BO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_BO) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,75 +173,13 @@ func (es *es_BO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_BO' and handles both Whole and Real numbers based on 'v'
+ func (es *es_BO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_BO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_BO) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_BO'
+@@ -268,56 +187,7 @@ func (es *es_BO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, es.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'es_BO'
+@@ -326,63 +196,7 @@ func (es *es_BO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, es.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, es.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, es.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'es_BO'
+@@ -390,17 +204,6 @@ func (es *es_BO) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -429,19 +232,6 @@ func (es *es_BO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -450,21 +240,6 @@ func (es *es_BO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -473,15 +248,6 @@ func (es *es_BO) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -490,22 +256,6 @@ func (es *es_BO) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -514,26 +264,6 @@ func (es *es_BO) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -542,32 +272,5 @@ func (es *es_BO) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_BR/es_BR.go b/es_BR/es_BR.go
+index 8d0ea33..1a69164 100644
+--- a/es_BR/es_BR.go
++++ b/es_BR/es_BR.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type es_BR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'es_BR' locale
+ func New() locales.Translator {
+ return &es_BR{
+- locale: "es_BR",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "R$", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"AEDT": "hora de verano de Australia oriental", "WART": "hora estándar de Argentina occidental", "HNPMX": "hora estándar del Pacífico de México", "ACWDT": "hora de verano de Australia centroccidental", "HKT": "hora estándar de Hong Kong", "CHAST": "hora estándar de Chatham", "ChST": "hora estándar de Chamorro", "GFT": "hora de la Guayana Francesa", "OESZ": "hora de verano de Europa oriental", "HNNOMX": "hora estándar del noroeste de México", "AKST": "hora estándar de Alaska", "WEZ": "hora estándar de Europa occidental", "HNT": "hora estándar de Terranova", "CLT": "hora estándar de Chile", "JST": "hora estándar de Japón", "EDT": "hora de verano oriental", "GMT": "hora del meridiano de Greenwich", "UYST": "hora de verano de Uruguay", "MESZ": "hora de verano de Europa central", "BOT": "hora de Bolivia", "WAT": "hora estándar de África occidental", "COT": "hora estándar de Colombia", "HEPMX": "hora de verano del Pacífico de México", "GYT": "hora de Guyana", "HNOG": "hora estándar de Groenlandia occidental", "HEOG": "hora de verano de Groenlandia occidental", "∅∅∅": "hora de verano del Amazonas", "HENOMX": "hora de verano del noroeste de México", "AWST": "hora estándar de Australia occidental", "LHDT": "hora de verano de Lord Howe", "ACST": "hora estándar de Australia central", "AKDT": "hora de verano de Alaska", "CST": "hora estándar central", "AST": "hora estándar del Atlántico", "SRT": "hora de Surinam", "HAT": "hora de verano de Terranova", "OEZ": "hora estándar de Europa oriental", "COST": "hora de verano de Colombia", "WIT": "hora de Indonesia oriental", "WESZ": "hora de verano de Europa occidental", "NZST": "hora estándar de Nueva Zelanda", "PDT": "hora de verano del Pacífico", "AWDT": "hora de verano de Australia occidental", "HKST": "hora de verano de Hong Kong", "HECU": "hora de verano de Cuba", "MYT": "hora de Malasia", "ACWST": "hora estándar de Australia centroccidental", "HEPM": "hora de verano de San Pedro y Miquelón", "ACDT": "hora de verano de Australia central", "HNCU": "hora estándar de Cuba", "MST": "hora estándar de las Montañas", "MEZ": "hora estándar de Europa central", "ECT": "hora de Ecuador", "CAT": "hora de África central", "EST": "hora estándar oriental", "VET": "hora de Venezuela", "HADT": "hora de verano de Hawái-Aleutiano", "HNPM": "hora estándar de San Pedro y Miquelón", "SAST": "hora de Sudáfrica", "HNEG": "hora estándar de Groenlandia oriental", "CDT": "hora de verano central", "ADT": "hora de verano del Atlántico", "AEST": "hora estándar de Australia oriental", "TMT": "hora estándar de Turkmenistán", "ARST": "hora de verano de Argentina", "PST": "hora estándar del Pacífico", "WITA": "hora de Indonesia central", "MDT": "hora de verano de las Montañas", "BT": "hora de Bután", "JDT": "hora de verano de Japón", "SGT": "hora de Singapur", "CLST": "hora de verano de Chile", "HEEG": "hora de verano de Groenlandia oriental", "WARST": "hora de verano de Argentina occidental", "HAST": "hora estándar de Hawái-Aleutiano", "LHST": "hora estándar de Lord Howe", "NZDT": "hora de verano de Nueva Zelanda", "CHADT": "hora de verano de Chatham", "IST": "hora estándar de la India", "WAST": "hora de verano de África occidental", "UYT": "hora estándar de Uruguay", "WIB": "hora de Indonesia occidental", "ART": "hora estándar de Argentina", "TMST": "hora de verano de Turkmenistán", "EAT": "hora de África oriental"},
++ locale: "es_BR",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "R$", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AST": "AST", "ACDT": "ACDT", "LHDT": "LHDT", "HEPMX": "HEPMX", "GYT": "GYT", "MST": "MST", "EAT": "EAT", "CHAST": "CHAST", "WEZ": "WEZ", "WART": "WART", "HKT": "HKT", "HKST": "HKST", "CLST": "CLST", "ADT": "ADT", "ACWST": "ACWST", "AEDT": "AEDT", "ChST": "ChST", "HAST": "HAST", "AKDT": "AKDT", "WARST": "WARST", "COST": "COST", "TMST": "TMST", "BOT": "BOT", "SRT": "SRT", "MEZ": "MEZ", "HEPM": "HEPM", "AWDT": "AWDT", "CDT": "CDT", "MDT": "MDT", "UYST": "UYST", "WAT": "WAT", "HNT": "HNT", "CLT": "CLT", "WIB": "WIB", "PST": "PST", "HNOG": "HNOG", "TMT": "TMT", "ARST": "ARST", "MESZ": "MESZ", "ACST": "ACST", "HNPM": "HNPM", "AWST": "AWST", "HNCU": "HNCU", "COT": "COT", "HADT": "HADT", "JST": "JST", "IST": "IST", "HEOG": "HEOG", "HNEG": "HNEG", "ART": "ART", "ACWDT": "ACWDT", "OEZ": "OEZ", "GFT": "GFT", "CST": "CST", "NZDT": "NZDT", "GMT": "GMT", "HEEG": "HEEG", "CHADT": "CHADT", "WESZ": "WESZ", "SAST": "SAST", "EST": "EST", "WITA": "WITA", "HECU": "HECU", "MYT": "MYT", "UYT": "UYT", "BT": "BT", "SGT": "SGT", "VET": "VET", "LHST": "LHST", "AEST": "AEST", "PDT": "PDT", "HNPMX": "HNPMX", "CAT": "CAT", "JDT": "JDT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AKST": "AKST", "OESZ": "OESZ", "HAT": "HAT", "NZST": "NZST", "∅∅∅": "∅∅∅", "WAST": "WAST", "WIT": "WIT", "EDT": "EDT", "ECT": "ECT"},
+ }
+ }
+ 
+@@ -126,7 +101,7 @@ func (es *es_BR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_BR) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +111,7 @@ func (es *es_BR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_BR) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +121,7 @@ func (es *es_BR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_BR) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,75 +167,13 @@ func (es *es_BR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_BR' and handles both Whole and Real numbers based on 'v'
+ func (es *es_BR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_BR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_BR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_BR'
+@@ -268,56 +181,7 @@ func (es *es_BR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, es.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'es_BR'
+@@ -326,63 +190,7 @@ func (es *es_BR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, es.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, es.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, es.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'es_BR'
+@@ -390,17 +198,6 @@ func (es *es_BR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -409,17 +206,6 @@ func (es *es_BR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -428,19 +214,6 @@ func (es *es_BR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,21 +222,6 @@ func (es *es_BR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -472,15 +230,6 @@ func (es *es_BR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -489,22 +238,6 @@ func (es *es_BR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -513,26 +246,6 @@ func (es *es_BR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -541,32 +254,5 @@ func (es *es_BR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_CL/es_CL.go b/es_CL/es_CL.go
+index 959a044..6e8e208 100644
+--- a/es_CL/es_CL.go
++++ b/es_CL/es_CL.go
+@@ -18,7 +18,6 @@ type es_CL struct {
+ group string
+ minus string
+ percent string
+- percentSuffix string
+ perMille string
+ timeSeparator string
+ inifinity string
+@@ -49,27 +48,14 @@ func New() locales.Translator {
+ pluralsRange: []locales.PluralRule{6},
+ decimal: ",",
+ group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "$", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "US$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+ monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+ daysShort: []string{"do", "lu", "ma", "mi", "ju", "vi", "sá"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+ periodsAbbreviated: []string{"a. m.", "p. m."},
+ periodsNarrow: []string{"a. m.", "p. m."},
+ periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"NZDT": "hora de verano de Nueva Zelanda", "HEEG": "hora de verano de Groenlandia oriental", "OESZ": "hora de verano de Europa oriental", "MDT": "Hora de verano de Macao", "SRT": "hora de Surinam", "MESZ": "hora de verano de Europa central", "LHDT": "hora de verano de Lord Howe", "JST": "hora estándar de Japón", "ACST": "hora estándar de Australia central", "EAT": "hora de África oriental", "SGT": "hora de Singapur", "AKST": "hora estándar de Alaska", "CHAST": "hora estándar de Chatham", "HNT": "hora estándar de Terranova", "HKT": "hora estándar de Hong Kong", "ECT": "hora de Ecuador", "OEZ": "hora estándar de Europa oriental", "GMT": "hora del meridiano de Greenwich", "ADT": "hora de verano del Atlántico", "HADT": "hora de verano de Hawái-Aleutiano", "HNOG": "hora estándar de Groenlandia occidental", "LHST": "hora estándar de Lord Howe", "TMST": "hora de verano de Turkmenistán", "ACDT": "hora de verano de Australia central", "BT": "hora de Bután", "ARST": "hora de verano de Argentina", "AWDT": "hora de verano de Australia occidental", "NZST": "hora estándar de Nueva Zelanda", "TMT": "hora estándar de Turkmenistán", "WARST": "hora de verano de Argentina occidental", "EDT": "hora de verano oriental", "MST": "Hora estándar de Macao", "UYT": "hora estándar de Uruguay", "ART": "hora estándar de Argentina", "HEPMX": "hora de verano del Pacífico de México", "CDT": "hora de verano central", "PDT": "hora de verano del Pacífico", "WESZ": "hora de verano de Europa occidental", "ACWDT": "hora de verano de Australia centroccidental", "HENOMX": "hora de verano del noroeste de México", "GYT": "hora de Guyana", "UYST": "hora de verano de Uruguay", "WEZ": "hora estándar de Europa occidental", "ACWST": "hora estándar de Australia centroccidental", "SAST": "hora de Sudáfrica", "CLST": "hora de verano de Chile", "GFT": "hora de la Guayana Francesa", "WIT": "hora de Indonesia oriental", "JDT": "hora de verano de Japón", "WAT": "hora estándar de África occidental", "AWST": "hora estándar de Australia occidental", "CLT": "hora estándar de Chile", "COT": "hora estándar de Colombia", "MYT": "hora de Malasia", "WIB": "hora de Indonesia occidental", "HEPM": "hora de verano de San Pedro y Miquelón", "HNCU": "hora estándar de Cuba", "HNPMX": "hora estándar del Pacífico de México", "HAST": "hora estándar de Hawái-Aleutiano", "WITA": "hora de Indonesia central", "WAST": "hora de verano de África occidental", "AKDT": "hora de verano de Alaska", "CST": "hora estándar central", "HNNOMX": "hora estándar del noroeste de México", "HECU": "hora de verano de Cuba", "EST": "hora estándar oriental", "VET": "hora de Venezuela", "HAT": "hora de verano de Terranova", "AEDT": "hora de verano de Australia oriental", "HNEG": "hora estándar de Groenlandia oriental", "HEOG": "hora de verano de Groenlandia occidental", "CHADT": "hora de verano de Chatham", "BOT": "hora de Bolivia", "CAT": "hora de África central", "WART": "hora estándar de Argentina occidental", "COST": "hora de verano de Colombia", "AEST": "hora estándar de Australia oriental", "IST": "hora estándar de la India", "MEZ": "hora estándar de Europa central", "∅∅∅": "hora de verano del Amazonas", "ChST": "hora estándar de Chamorro", "AST": "hora estándar del Atlántico", "PST": "hora estándar del Pacífico", "HKST": "hora de verano de Hong Kong", "HNPM": "hora estándar de San Pedro y Miquelón"},
++ timezones: map[string]string{"CLT": "CLT", "CST": "CST", "MST": "MST", "ECT": "ECT", "SRT": "SRT", "HEEG": "HEEG", "CHADT": "CHADT", "OEZ": "OEZ", "GFT": "GFT", "COST": "COST", "CAT": "CAT", "CDT": "CDT", "HNOG": "HNOG", "ACST": "ACST", "AWST": "AWST", "LHDT": "LHDT", "ACWDT": "ACWDT", "WAST": "WAST", "AKDT": "AKDT", "WARST": "WARST", "NZST": "NZST", "HNPM": "HNPM", "HKST": "HKST", "WITA": "WITA", "WIB": "WIB", "ChST": "ChST", "BOT": "BOT", "NZDT": "NZDT", "ACDT": "ACDT", "JDT": "JDT", "∅∅∅": "∅∅∅", "IST": "IST", "AEST": "AEST", "CHAST": "CHAST", "WAT": "WAT", "ACWST": "ACWST", "WEZ": "WEZ", "MESZ": "MESZ", "HNPMX": "HNPMX", "HNT": "HNT", "MDT": "MDT", "ADT": "ADT", "GYT": "GYT", "GMT": "GMT", "ART": "ART", "LHST": "LHST", "JST": "JST", "SAST": "SAST", "HNNOMX": "HNNOMX", "PST": "PST", "HNCU": "HNCU", "HECU": "HECU", "HKT": "HKT", "EAT": "EAT", "HAST": "HAST", "HENOMX": "HENOMX", "AWDT": "AWDT", "VET": "VET", "HAT": "HAT", "AST": "AST", "HADT": "HADT", "MEZ": "MEZ", "PDT": "PDT", "WESZ": "WESZ", "EDT": "EDT", "HEPM": "HEPM", "OESZ": "OESZ", "COT": "COT", "EST": "EST", "HNEG": "HNEG", "SGT": "SGT", "WIT": "WIT", "TMT": "TMT", "TMST": "TMST", "ARST": "ARST", "MYT": "MYT", "BT": "BT", "AEDT": "AEDT", "AKST": "AKST", "WART": "WART", "HEOG": "HEOG", "CLST": "CLST", "UYT": "UYT", "UYST": "UYST", "HEPMX": "HEPMX"},
+ }
+ }
+ 
+@@ -132,7 +118,7 @@ func (es *es_CL) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_CL) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -142,7 +128,7 @@ func (es *es_CL) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_CL) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -188,75 +174,13 @@ func (es *es_CL) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_CL' and handles both Whole and Real numbers based on 'v'
+ func (es *es_CL) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_CL' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_CL) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_CL'
+@@ -264,7 +188,7 @@ func (es *es_CL) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -322,7 +246,7 @@ func (es *es_CL) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -445,19 +369,6 @@ func (es *es_CL) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -466,21 +377,6 @@ func (es *es_CL) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -489,15 +385,6 @@ func (es *es_CL) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -506,22 +393,6 @@ func (es *es_CL) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -530,26 +401,6 @@ func (es *es_CL) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -558,32 +409,5 @@ func (es *es_CL) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_CO/es_CO.go b/es_CO/es_CO.go
+index 920fadf..bc03847 100644
+--- a/es_CO/es_CO.go
++++ b/es_CO/es_CO.go
+@@ -50,28 +50,16 @@ func New() locales.Translator {
+ pluralsRange: []locales.PluralRule{6},
+ decimal: ",",
+ group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "$", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "US$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: " ",
+ monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+ daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+ periodsAbbreviated: []string{"a. m.", "p. m."},
+ periodsNarrow: []string{"a. m.", "p. m."},
+ periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"ADT": "hora de verano del Atlántico", "AKDT": "hora de verano de Alaska", "JDT": "hora de verano de Japón", "EST": "hora estándar oriental", "LHDT": "hora de verano de Lord Howe", "HNEG": "hora estándar de Groenlandia oriental", "ACDT": "hora de verano de Australia central", "MST": "Hora estándar de Macao", "HAST": "hora estándar de Hawái-Aleutiano", "ACWDT": "hora de verano de Australia centroccidental", "AWST": "hora estándar de Australia occidental", "AWDT": "hora de verano de Australia occidental", "WAST": "hora de verano de África occidental", "CST": "hora estándar central", "GMT": "hora del meridiano de Greenwich", "HECU": "hora de verano de Cuba", "HEPMX": "hora de verano del Pacífico de México", "PDT": "hora de verano del Pacífico", "COST": "hora de verano de Colombia", "AEST": "hora estándar de Australia oriental", "WARST": "hora de verano de Argentina occidental", "AKST": "hora estándar de Alaska", "SRT": "hora de Surinam", "ACWST": "hora estándar de Australia centroccidental", "HNT": "hora estándar de Terranova", "CLST": "hora de verano de Chile", "WART": "hora estándar de Argentina occidental", "CHADT": "hora de verano de Chatham", "CLT": "hora estándar de Chile", "HEEG": "hora de verano de Groenlandia oriental", "HEOG": "hora de verano de Groenlandia occidental", "WIB": "hora de Indonesia occidental", "ART": "hora estándar de Argentina", "HKST": "hora de verano de Hong Kong", "ECT": "hora de Ecuador", "EDT": "hora de verano oriental", "HENOMX": "hora de verano del noroeste de México", "HNCU": "hora estándar de Cuba", "HNPMX": "hora estándar del Pacífico de México", "GYT": "hora de Guyana", "UYST": "hora de verano de Uruguay", "VET": "hora de Venezuela", "HNPM": "hora estándar de San Pedro y Miquelón", "COT": "hora estándar de Colombia", "TMST": "hora de verano de Turkmenistán", "WAT": "hora estándar de África occidental", "JST": "hora estándar de Japón", "MESZ": "hora de verano de Europa central", "NZST": "hora estándar de Nueva Zelanda", "NZDT": "hora de verano de Nueva Zelanda", "IST": "hora estándar de la India", "GFT": "hora de la Guayana Francesa", "SGT": "hora de Singapur", "AST": "hora estándar del Atlántico", "PST": "hora estándar del Pacífico", "EAT": "hora de África oriental", "MDT": "Hora de verano de Macao", "WIT": "hora de Indonesia oriental", "AEDT": "hora de verano de Australia oriental", "LHST": "hora estándar de Lord Howe", "CAT": "hora de África central", "OESZ": "hora de verano de Europa oriental", "UYT": "hora estándar de Uruguay", "CHAST": "hora estándar de Chatham", "BOT": "hora de Bolivia", "MYT": "hora de Malasia", "WESZ": "hora de verano de Europa occidental", "HAT": "hora de verano de Terranova", "SAST": "hora de Sudáfrica", "ChST": "hora estándar de Chamorro", "ACST": "hora estándar de Australia central", "HADT": "hora de verano de Hawái-Aleutiano", "BT": "hora de Bután", "HNOG": "hora estándar de Groenlandia occidental", "WEZ": "hora estándar de Europa occidental", "HKT": "hora estándar de Hong Kong", "HEPM": "hora de verano de San Pedro y Miquelón", "TMT": "hora estándar de Turkmenistán", "HNNOMX": "hora estándar del noroeste de México", "CDT": "hora de verano central", "ARST": "hora de verano de Argentina", "WITA": "hora de Indonesia central", "MEZ": "hora estándar de Europa central", "OEZ": "hora estándar de Europa oriental", "∅∅∅": "hora de verano de las Azores"},
++ timezones: map[string]string{"UYST": "UYST", "HEPMX": "HEPMX", "ADT": "ADT", "CHADT": "CHADT", "ECT": "ECT", "CST": "CST", "AEDT": "AEDT", "WAST": "WAST", "OESZ": "OESZ", "WITA": "WITA", "HENOMX": "HENOMX", "SRT": "SRT", "BOT": "BOT", "HEEG": "HEEG", "HEPM": "HEPM", "LHST": "LHST", "SGT": "SGT", "CDT": "CDT", "AST": "AST", "NZST": "NZST", "MDT": "MDT", "MEZ": "MEZ", "MYT": "MYT", "AEST": "AEST", "HNT": "HNT", "TMT": "TMT", "CAT": "CAT", "NZDT": "NZDT", "ChST": "ChST", "ACWST": "ACWST", "HNCU": "HNCU", "WIT": "WIT", "SAST": "SAST", "HAST": "HAST", "MESZ": "MESZ", "HNPM": "HNPM", "BT": "BT", "WAT": "WAT", "OEZ": "OEZ", "ART": "ART", "ARST": "ARST", "HADT": "HADT", "JST": "JST", "JDT": "JDT", "AWDT": "AWDT", "IST": "IST", "HAT": "HAT", "WART": "WART", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "WESZ": "WESZ", "AKST": "AKST", "AKDT": "AKDT", "GFT": "GFT", "COT": "COT", "CLT": "CLT", "GMT": "GMT", "ACWDT": "ACWDT", "UYT": "UYT", "∅∅∅": "∅∅∅", "TMST": "TMST", "VET": "VET", "WARST": "WARST", "EAT": "EAT", "PDT": "PDT", "HECU": "HECU", "EDT": "EDT", "CHAST": "CHAST", "AWST": "AWST", "LHDT": "LHDT", "HNPMX": "HNPMX", "HEOG": "HEOG", "HKT": "HKT", "HKST": "HKST", "ACST": "ACST", "WEZ": "WEZ", "COST": "COST", "HNOG": "HNOG", "MST": "MST", "PST": "PST", "EST": "EST", "CLST": "CLST", "ACDT": "ACDT", "GYT": "GYT", "WIB": "WIB"},
+ }
+ }
+ 
+@@ -134,7 +122,7 @@ func (es *es_CO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_CO) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -144,7 +132,7 @@ func (es *es_CO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_CO) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,49 +178,14 @@ func (es *es_CO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_CO' and handles both Whole and Real numbers based on 'v'
+ func (es *es_CO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_CO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_CO) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
++ l := len(s) + 1
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -264,7 +217,7 @@ func (es *es_CO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -326,7 +279,7 @@ func (es *es_CO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -449,19 +402,6 @@ func (es *es_CO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -470,21 +410,6 @@ func (es *es_CO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/es_CR/es_CR.go b/es_CR/es_CR.go
+index 93042e4..de6c397 100644
+--- a/es_CR/es_CR.go
++++ b/es_CR/es_CR.go
+@@ -10,70 +10,50 @@ import (
+ )
+ 
+ type es_CR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'es_CR' locale
+ func New() locales.Translator {
+ return &es_CR{
+- locale: "es_CR",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "₡", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"CHADT": "hora de verano de Chatham", "ACST": "hora estándar de Australia central", "MST": "hora estándar de las Montañas", "HNPM": "hora estándar de San Pedro y Miquelón", "NZDT": "hora de verano de Nueva Zelanda", "CST": "hora estándar central", "ART": "hora estándar de Argentina", "WAT": "hora estándar de África occidental", "HNCU": "hora estándar de Cuba", "LHDT": "hora de verano de Lord Howe", "CLT": "hora estándar de Chile", "COST": "hora de verano de Colombia", "GYT": "hora de Guyana", "WESZ": "hora de verano de Europa occidental", "ACWST": "hora estándar de Australia centroccidental", "ACWDT": "hora de verano de Australia centroccidental", "EST": "hora estándar oriental", "EDT": "hora de verano oriental", "BT": "hora de Bután", "ARST": "hora de verano de Argentina", "JST": "hora estándar de Japón", "∅∅∅": "hora de verano del Amazonas", "MDT": "hora de verano de las Montañas", "PDT": "hora de verano del Pacífico", "SAST": "hora de Sudáfrica", "AEST": "hora estándar de Australia oriental", "ECT": "hora de Ecuador", "ADT": "hora de verano del Atlántico", "SGT": "hora de Singapur", "PST": "hora estándar del Pacífico", "LHST": "hora estándar de Lord Howe", "GFT": "hora de la Guayana Francesa", "CAT": "hora de África central", "COT": "hora estándar de Colombia", "HADT": "hora de verano de Hawái-Aleutiano", "AEDT": "hora de verano de Australia oriental", "BOT": "hora de Bolivia", "AKDT": "hora de verano de Alaska", "HEEG": "hora de verano de Groenlandia oriental", "TMT": "hora estándar de Turkmenistán", "OESZ": "hora de verano de Europa oriental", "ACDT": "hora de verano de Australia central", "WAST": "hora de verano de África occidental", "HNPMX": "hora estándar del Pacífico de México", "MYT": "hora de Malasia", "AKST": "hora estándar de Alaska", "HAST": "hora estándar de Hawái-Aleutiano", "SRT": "hora de Surinam", "ChST": "hora estándar de Chamorro", "OEZ": "hora estándar de Europa oriental", "WEZ": "hora estándar de Europa occidental", "NZST": "hora estándar de Nueva Zelanda", "JDT": "hora de verano de Japón", "HEPM": "hora de verano de San Pedro y Miquelón", "MEZ": "hora estándar de Europa central", "IST": "hora estándar de la India", "WARST": "hora de verano de Argentina occidental", "HEOG": "hora de verano de Groenlandia occidental", "AWDT": "hora de verano de Australia occidental", "WITA": "hora de Indonesia central", "AST": "hora estándar del Atlántico", "WIB": "hora de Indonesia occidental", "HNT": "hora estándar de Terranova", "WART": "hora estándar de Argentina occidental", "MESZ": "hora de verano de Europa central", "TMST": "hora de verano de Turkmenistán", "GMT": "hora del meridiano de Greenwich", "UYST": "hora de verano de Uruguay", "HNOG": "hora estándar de Groenlandia occidental", "HKT": "hora estándar de Hong Kong", "HKST": "hora de verano de Hong Kong", "CHAST": "hora estándar de Chatham", "EAT": "hora de África oriental", "UYT": "hora estándar de Uruguay", "WIT": "hora de Indonesia oriental", "HAT": "hora de verano de Terranova", "AWST": "hora estándar de Australia occidental", "HNNOMX": "hora estándar del noroeste de México", "HENOMX": "hora de verano del noroeste de México", "HECU": "hora de verano de Cuba", "HEPMX": "hora de verano del Pacífico de México", "CDT": "hora de verano central", "VET": "hora de Venezuela", "CLST": "hora de verano de Chile", "HNEG": "hora estándar de Groenlandia oriental"},
++ locale: "es_CR",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ decimal: ",",
++ group: " ",
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "₡", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"a. m.", "p. m."},
++ periodsNarrow: []string{"a. m.", "p. m."},
++ periodsWide: []string{"a. m.", "p. m."},
++ timezones: map[string]string{"MYT": "MYT", "WIT": "WIT", "HECU": "HECU", "HNOG": "HNOG", "TMT": "TMT", "MST": "MST", "WIB": "WIB", "UYT": "UYT", "ACWDT": "ACWDT", "HNCU": "HNCU", "AKST": "AKST", "GFT": "GFT", "CLT": "CLT", "ChST": "ChST", "PST": "PST", "HEPM": "HEPM", "HNPM": "HNPM", "AEDT": "AEDT", "VET": "VET", "WAT": "WAT", "WART": "WART", "WITA": "WITA", "AST": "AST", "MESZ": "MESZ", "EST": "EST", "HKST": "HKST", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "HENOMX": "HENOMX", "JDT": "JDT", "COT": "COT", "ADT": "ADT", "HAST": "HAST", "HEEG": "HEEG", "LHDT": "LHDT", "AKDT": "AKDT", "ARST": "ARST", "SRT": "SRT", "HNEG": "HNEG", "SGT": "SGT", "WAST": "WAST", "OEZ": "OEZ", "EDT": "EDT", "HKT": "HKT", "CST": "CST", "ART": "ART", "IST": "IST", "MDT": "MDT", "AWDT": "AWDT", "OESZ": "OESZ", "COST": "COST", "CDT": "CDT", "BT": "BT", "AEST": "AEST", "ACST": "ACST", "LHST": "LHST", "GYT": "GYT", "CAT": "CAT", "∅∅∅": "∅∅∅", "HADT": "HADT", "ACDT": "ACDT", "AWST": "AWST", "JST": "JST", "UYST": "UYST", "PDT": "PDT", "NZST": "NZST", "ECT": "ECT", "GMT": "GMT", "WARST": "WARST", "SAST": "SAST", "WEZ": "WEZ", "HNT": "HNT", "HAT": "HAT", "CHAST": "CHAST", "CHADT": "CHADT", "ACWST": "ACWST", "WESZ": "WESZ", "HEPMX": "HEPMX", "CLST": "CLST", "BOT": "BOT", "MEZ": "MEZ", "EAT": "EAT", "HEOG": "HEOG", "TMST": "TMST"},
+ }
+ }
+ 
+@@ -126,7 +106,7 @@ func (es *es_CR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_CR) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +116,7 @@ func (es *es_CR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_CR) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +126,7 @@ func (es *es_CR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_CR) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,77 +172,13 @@ func (es *es_CR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_CR' and handles both Whole and Real numbers based on 'v'
+ func (es *es_CR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(es.group) - 1; j >= 0; j-- {
+- b = append(b, es.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_CR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_CR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_CR'
+@@ -270,58 +186,7 @@ func (es *es_CR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(es.group) - 1; j >= 0; j-- {
+- b = append(b, es.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, es.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'es_CR'
+@@ -330,65 +195,7 @@ func (es *es_CR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(es.group) - 1; j >= 0; j-- {
+- b = append(b, es.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, es.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, es.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, es.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'es_CR'
+@@ -396,17 +203,6 @@ func (es *es_CR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -415,17 +211,6 @@ func (es *es_CR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -434,19 +219,6 @@ func (es *es_CR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -455,21 +227,6 @@ func (es *es_CR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -478,15 +235,6 @@ func (es *es_CR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -495,22 +243,6 @@ func (es *es_CR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -519,26 +251,6 @@ func (es *es_CR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -547,32 +259,5 @@ func (es *es_CR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_CU/es_CU.go b/es_CU/es_CU.go
+index 5c74cda..8d8c676 100644
+--- a/es_CU/es_CU.go
++++ b/es_CU/es_CU.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type es_CU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'es_CU' locale
+ func New() locales.Translator {
+ return &es_CU{
+- locale: "es_CU",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "$", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "US$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"MST": "Hora estándar de Macao", "AST": "hora estándar del Atlántico", "ART": "hora estándar de Argentina", "AEDT": "hora de verano de Australia oriental", "ACST": "hora estándar de Australia central", "WARST": "hora de verano de Argentina occidental", "HNNOMX": "hora estándar del noroeste de México", "VET": "hora de Venezuela", "PDT": "hora de verano del Pacífico", "JDT": "hora de verano de Japón", "COT": "hora estándar de Colombia", "HEPMX": "hora de verano del Pacífico de México", "PST": "hora estándar del Pacífico", "LHDT": "hora de verano de Lord Howe", "ACDT": "hora de verano de Australia central", "OEZ": "hora estándar de Europa oriental", "OESZ": "hora de verano de Europa oriental", "WAST": "hora de verano de África occidental", "EDT": "hora de verano oriental", "UYT": "hora estándar de Uruguay", "HEPM": "hora de verano de San Pedro y Miquelón", "COST": "hora de verano de Colombia", "MDT": "Hora de verano de Macao", "WITA": "hora de Indonesia central", "LHST": "hora estándar de Lord Howe", "NZDT": "hora de verano de Nueva Zelanda", "EAT": "hora de África oriental", "ADT": "hora de verano del Atlántico", "HNOG": "hora estándar de Groenlandia occidental", "AWDT": "hora de verano de Australia occidental", "NZST": "hora estándar de Nueva Zelanda", "HEEG": "hora de verano de Groenlandia oriental", "WAT": "hora estándar de África occidental", "SRT": "hora de Surinam", "BOT": "hora de Bolivia", "ACWST": "hora estándar de Australia centroccidental", "HNPM": "hora estándar de San Pedro y Miquelón", "CHAST": "hora estándar de Chatham", "EST": "hora estándar oriental", "HNPMX": "hora estándar del Pacífico de México", "UYST": "hora de verano de Uruguay", "ARST": "hora de verano de Argentina", "HKST": "hora de verano de Hong Kong", "GYT": "hora de Guyana", "TMST": "hora de verano de Turkmenistán", "GMT": "hora del meridiano de Greenwich", "MYT": "hora de Malasia", "HADT": "hora de verano de Hawái-Aleutiano", "HNT": "hora estándar de Terranova", "AWST": "hora estándar de Australia occidental", "MEZ": "hora estándar de Europa central", "TMT": "hora estándar de Turkmenistán", "CST": "hora estándar central", "WIT": "hora de Indonesia oriental", "HEOG": "hora de verano de Groenlandia occidental", "MESZ": "hora de verano de Europa central", "IST": "hora estándar de la India", "CLT": "hora estándar de Chile", "CLST": "hora de verano de Chile", "GFT": "hora de la Guayana Francesa", "ChST": "hora estándar de Chamorro", "HNEG": "hora estándar de Groenlandia oriental", "CAT": "hora de África central", "HENOMX": "hora de verano del noroeste de México", "HECU": "hora de verano de Cuba", "AKST": "hora estándar de Alaska", "WIB": "hora de Indonesia occidental", "HAT": "hora de verano de Terranova", "WEZ": "hora estándar de Europa occidental", "WESZ": "hora de verano de Europa occidental", "ACWDT": "hora de verano de Australia centroccidental", "CHADT": "hora de verano de Chatham", "SAST": "hora de Sudáfrica", "WART": "hora estándar de Argentina occidental", "HNCU": "hora estándar de Cuba", "CDT": "hora de verano central", "AKDT": "hora de verano de Alaska", "BT": "hora de Bután", "HKT": "hora estándar de Hong Kong", "JST": "hora estándar de Japón", "∅∅∅": "hora de verano del Amazonas", "ECT": "hora de Ecuador", "SGT": "hora de Singapur", "HAST": "hora estándar de Hawái-Aleutiano", "AEST": "hora estándar de Australia oriental"},
++ locale: "es_CU",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "$", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "US$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"EDT": "EDT", "CAT": "CAT", "WIB": "WIB", "ACST": "ACST", "JDT": "JDT", "UYT": "UYT", "HNT": "HNT", "HNOG": "HNOG", "UYST": "UYST", "WAST": "WAST", "AKST": "AKST", "CLST": "CLST", "CST": "CST", "AST": "AST", "SGT": "SGT", "CLT": "CLT", "EAT": "EAT", "MEZ": "MEZ", "HNEG": "HNEG", "JST": "JST", "WESZ": "WESZ", "WITA": "WITA", "CDT": "CDT", "SRT": "SRT", "HNCU": "HNCU", "HAT": "HAT", "LHST": "LHST", "BT": "BT", "CHAST": "CHAST", "CHADT": "CHADT", "COST": "COST", "MDT": "MDT", "ECT": "ECT", "HENOMX": "HENOMX", "AWST": "AWST", "LHDT": "LHDT", "HEOG": "HEOG", "BOT": "BOT", "AWDT": "AWDT", "ACWDT": "ACWDT", "VET": "VET", "WARST": "WARST", "∅∅∅": "∅∅∅", "COT": "COT", "TMST": "TMST", "PDT": "PDT", "MYT": "MYT", "AEDT": "AEDT", "OESZ": "OESZ", "WART": "WART", "NZDT": "NZDT", "ChST": "ChST", "HAST": "HAST", "HEEG": "HEEG", "WAT": "WAT", "TMT": "TMT", "ADT": "ADT", "HNPM": "HNPM", "PST": "PST", "AKDT": "AKDT", "MST": "MST", "IST": "IST", "ACWST": "ACWST", "HNPMX": "HNPMX", "GYT": "GYT", "EST": "EST", "HKST": "HKST", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "OEZ": "OEZ", "HKT": "HKT", "GMT": "GMT", "ARST": "ARST", "HEPM": "HEPM", "AEST": "AEST", "GFT": "GFT", "SAST": "SAST", "HADT": "HADT", "MESZ": "MESZ", "HEPMX": "HEPMX", "WIT": "WIT", "NZST": "NZST", "ART": "ART", "HECU": "HECU"},
+ }
+ }
+ 
+@@ -126,7 +101,7 @@ func (es *es_CU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_CU) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +111,7 @@ func (es *es_CU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_CU) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +121,7 @@ func (es *es_CU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_CU) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,75 +167,13 @@ func (es *es_CU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_CU' and handles both Whole and Real numbers based on 'v'
+ func (es *es_CU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_CU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_CU) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_CU'
+@@ -268,56 +181,7 @@ func (es *es_CU) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, es.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'es_CU'
+@@ -326,63 +190,7 @@ func (es *es_CU) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, es.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, es.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, es.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'es_CU'
+@@ -390,17 +198,6 @@ func (es *es_CU) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -409,17 +206,6 @@ func (es *es_CU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -428,19 +214,6 @@ func (es *es_CU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,21 +222,6 @@ func (es *es_CU) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -472,15 +230,6 @@ func (es *es_CU) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -489,22 +238,6 @@ func (es *es_CU) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -513,26 +246,6 @@ func (es *es_CU) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -541,32 +254,5 @@ func (es *es_CU) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_DO/es_DO.go b/es_DO/es_DO.go
+index 1cad34d..def193d 100644
+--- a/es_DO/es_DO.go
++++ b/es_DO/es_DO.go
+@@ -48,30 +48,18 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{2, 6},
+ pluralsOrdinal: []locales.PluralRule{6},
+ pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "RD$", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "US$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositiveSuffix: ")",
+ currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+ daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+ periodsAbbreviated: []string{"a. m.", "p. m."},
+ periodsNarrow: []string{"", ""},
+ periodsWide: []string{"a. m.", "p. m."},
+ erasAbbreviated: []string{"", ""},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"antes de la Era Común", "Era Común"},
+- timezones: map[string]string{"CLST": "hora de verano de Chile", "∅∅∅": "hora de verano del Amazonas", "HNNOMX": "hora estándar del noroeste de México", "EDT": "hora de verano oriental", "AKST": "hora estándar de Alaska", "WITA": "hora de Indonesia central", "AWST": "hora estándar de Australia occidental", "HEPM": "hora de verano de San Pedro y Miquelón", "WAT": "hora estándar de África occidental", "CDT": "hora de verano central", "ADT": "hora de verano del Atlántico", "WESZ": "hora de verano de Europa occidental", "HNOG": "hora estándar de Groenlandia occidental", "CAT": "hora de África central", "WAST": "hora de verano de África occidental", "GMT": "hora del meridiano de Greenwich", "HNPMX": "hora estándar del Pacífico de México", "UYST": "hora de verano de Uruguay", "AKDT": "hora de verano de Alaska", "HAT": "hora de verano de Terranova", "PDT": "hora de verano del Pacífico", "HNPM": "hora estándar de San Pedro y Miquelón", "HNCU": "hora estándar de Cuba", "EST": "hora estándar oriental", "MST": "Hora estándar de Macao", "MDT": "Hora de verano de Macao", "BT": "hora de Bután", "HNT": "hora estándar de Terranova", "WEZ": "hora estándar de Europa occidental", "JDT": "hora de verano de Japón", "WART": "hora estándar de Argentina occidental", "UYT": "hora estándar de Uruguay", "HAST": "hora estándar de Hawái-Aleutiano", "HKST": "hora de verano de Hong Kong", "NZST": "hora estándar de Nueva Zelanda", "SAST": "hora de Sudáfrica", "CLT": "hora estándar de Chile", "EAT": "hora de África oriental", "HEOG": "hora de verano de Groenlandia occidental", "HNEG": "hora estándar de Groenlandia oriental", "ACDT": "hora de verano de Australia central", "GYT": "hora de Guyana", "ChST": "hora estándar de Chamorro", "AEST": "hora estándar de Australia oriental", "CHADT": "hora de verano de Chatham", "HEEG": "hora de verano de Groenlandia oriental", "ECT": "hora de Ecuador", "VET": "hora de Venezuela", "HKT": "hora estándar de Hong Kong", "JST": "hora estándar de Japón", "HEPMX": "hora de verano del Pacífico de México", "HADT": "hora de verano de Hawái-Aleutiano", "LHST": "hora estándar de Lord Howe", "TMST": "hora de verano de Turkmenistán", "OESZ": "hora de verano de Europa oriental", "WARST": "hora de verano de Argentina occidental", "ART": "hora estándar de Argentina", "MEZ": "hora estándar de Europa central", "GFT": "hora de la Guayana Francesa", "COT": "hora estándar de Colombia", "COST": "hora de verano de Colombia", "ACWST": "hora estándar de Australia centroccidental", "MESZ": "hora de verano de Europa central", "LHDT": "hora de verano de Lord Howe", "NZDT": "hora de verano de Nueva Zelanda", "IST": "hora estándar de la India", "ACST": "hora estándar de Australia central", "HENOMX": "hora de verano del noroeste de México", "ARST": "hora de verano de Argentina", "WIB": "hora de Indonesia occidental", "AWDT": "hora de verano de Australia occidental", "PST": "hora estándar del Pacífico", "AEDT": "hora de verano de Australia oriental", "TMT": "hora estándar de Turkmenistán", "BOT": "hora de Bolivia", "OEZ": "hora estándar de Europa oriental", "CST": "hora estándar central", "MYT": "hora de Malasia", "WIT": "hora de Indonesia oriental", "AST": "hora estándar del Atlántico", "ACWDT": "hora de verano de Australia centroccidental", "CHAST": "hora estándar de Chatham", "SGT": "hora de Singapur", "HECU": "hora de verano de Cuba", "SRT": "hora de Surinam"},
++ timezones: map[string]string{"CDT": "CDT", "AEST": "AEST", "HEPMX": "HEPMX", "SGT": "SGT", "TMST": "TMST", "CLT": "CLT", "ART": "ART", "ACDT": "ACDT", "CHADT": "CHADT", "UYT": "UYT", "TMT": "TMT", "HENOMX": "HENOMX", "WESZ": "WESZ", "AKST": "AKST", "MEZ": "MEZ", "MYT": "MYT", "WARST": "WARST", "WIT": "WIT", "GYT": "GYT", "CLST": "CLST", "ChST": "ChST", "HAST": "HAST", "HNPMX": "HNPMX", "EST": "EST", "WIB": "WIB", "MESZ": "MESZ", "HNEG": "HNEG", "CAT": "CAT", "MST": "MST", "HNOG": "HNOG", "HEOG": "HEOG", "HADT": "HADT", "AWDT": "AWDT", "HNT": "HNT", "WART": "WART", "COST": "COST", "ADT": "ADT", "GMT": "GMT", "BOT": "BOT", "HAT": "HAT", "EDT": "EDT", "ECT": "ECT", "JST": "JST", "LHDT": "LHDT", "AEDT": "AEDT", "NZDT": "NZDT", "ACST": "ACST", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "BT": "BT", "HECU": "HECU", "OESZ": "OESZ", "HKT": "HKT", "JDT": "JDT", "HNPM": "HNPM", "HEPM": "HEPM", "UYST": "UYST", "OEZ": "OEZ", "EAT": "EAT", "WEZ": "WEZ", "WITA": "WITA", "AWST": "AWST", "IST": "IST", "VET": "VET", "LHST": "LHST", "PST": "PST", "∅∅∅": "∅∅∅", "HKST": "HKST", "MDT": "MDT", "NZST": "NZST", "AST": "AST", "HEEG": "HEEG", "WAST": "WAST", "WAT": "WAT", "GFT": "GFT", "CST": "CST", "ARST": "ARST", "PDT": "PDT", "ACWDT": "ACWDT", "HNCU": "HNCU", "SAST": "SAST", "COT": "COT", "SRT": "SRT", "CHAST": "CHAST", "ACWST": "ACWST"},
+ }
+ }
+ 
+@@ -124,7 +112,7 @@ func (es *es_DO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_DO) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -134,7 +122,7 @@ func (es *es_DO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_DO) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -144,7 +132,7 @@ func (es *es_DO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_DO) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,49 +178,14 @@ func (es *es_DO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_DO' and handles both Whole and Real numbers based on 'v'
+ func (es *es_DO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_DO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_DO) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
++ l := len(s) + 0
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -264,7 +217,7 @@ func (es *es_DO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 1 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -324,7 +277,7 @@ func (es *es_DO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 1 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -396,17 +349,6 @@ func (es *es_DO) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -415,17 +357,6 @@ func (es *es_DO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -434,19 +365,6 @@ func (es *es_DO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -455,21 +373,6 @@ func (es *es_DO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/es_EA/es_EA.go b/es_EA/es_EA.go
+index 5a9eca8..ac30dfa 100644
+--- a/es_EA/es_EA.go
++++ b/es_EA/es_EA.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type es_EA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'es_EA' locale
+ func New() locales.Translator {
+ return &es_EA{
+- locale: "es_EA",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"ACWDT": "hora de verano de Australia centroccidental", "PDT": "hora de verano del Pacífico", "COT": "hora estándar de Colombia", "AEST": "hora estándar de Australia oriental", "HNPM": "hora estándar de San Pedro y Miquelón", "CHAST": "hora estándar de Chatham", "EAT": "hora de África oriental", "OEZ": "hora estándar de Europa oriental", "WEZ": "hora estándar de Europa occidental", "AWST": "hora estándar de Australia occidental", "AWDT": "hora de verano de Australia occidental", "COST": "hora de verano de Colombia", "WART": "hora estándar de Argentina occidental", "HAST": "hora estándar de Hawái-Aleutiano", "∅∅∅": "hora de verano del Amazonas", "SGT": "hora de Singapur", "BOT": "hora de Bolivia", "HNPMX": "hora estándar del Pacífico de México", "MYT": "hora de Malasia", "WESZ": "hora de verano de Europa occidental", "HKT": "hora estándar de Hong Kong", "NZST": "hora estándar de Nueva Zelanda", "HNEG": "hora estándar de Groenlandia oriental", "HNCU": "hora estándar de Cuba", "HADT": "hora de verano de Hawái-Aleutiano", "HEOG": "hora de verano de Groenlandia occidental", "IST": "hora estándar de la India", "CLT": "hora estándar de Chile", "CLST": "hora de verano de Chile", "TMT": "hora estándar de Turkmenistán", "CAT": "hora de África central", "WIT": "hora de Indonesia oriental", "SRT": "hora de Surinam", "HAT": "hora de verano de Terranova", "HNOG": "hora estándar de Groenlandia occidental", "HKST": "hora de verano de Hong Kong", "EST": "hora estándar oriental", "GMT": "hora del meridiano de Greenwich", "HEPMX": "hora de verano del Pacífico de México", "BT": "hora de Bután", "MEZ": "hora estándar de Europa central", "ChST": "hora estándar de Chamorro", "GFT": "hora de la Guayana Francesa", "MDT": "Hora de verano de Macao", "CDT": "hora de verano central", "ADT": "hora de verano del Atlántico", "WIB": "hora de Indonesia occidental", "ART": "hora estándar de Argentina", "ARST": "hora de verano de Argentina", "JDT": "hora de verano de Japón", "ACST": "hora estándar de Australia central", "UYT": "hora estándar de Uruguay", "PST": "hora estándar del Pacífico", "WITA": "hora de Indonesia central", "NZDT": "hora de verano de Nueva Zelanda", "CHADT": "hora de verano de Chatham", "HECU": "hora de verano de Cuba", "EDT": "hora de verano oriental", "WAST": "hora de verano de África occidental", "MST": "Hora estándar de Macao", "AST": "hora estándar del Atlántico", "ACWST": "hora estándar de Australia centroccidental", "HEEG": "hora de verano de Groenlandia oriental", "WAT": "hora estándar de África occidental", "HENOMX": "hora de verano del noroeste de México", "GYT": "hora de Guyana", "VET": "hora de Venezuela", "LHST": "hora estándar de Lord Howe", "ECT": "hora de Ecuador", "AKDT": "hora de verano de Alaska", "AEDT": "hora de verano de Australia oriental", "SAST": "hora de Sudáfrica", "ACDT": "hora de verano de Australia central", "HEPM": "hora de verano de San Pedro y Miquelón", "MESZ": "hora de verano de Europa central", "JST": "hora estándar de Japón", "OESZ": "hora de verano de Europa oriental", "HNNOMX": "hora estándar del noroeste de México", "WARST": "hora de verano de Argentina occidental", "AKST": "hora estándar de Alaska", "CST": "hora estándar central", "HNT": "hora estándar de Terranova", "LHDT": "hora de verano de Lord Howe", "TMST": "hora de verano de Turkmenistán", "UYST": "hora de verano de Uruguay"},
++ locale: "es_EA",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WAST": "WAST", "GYT": "GYT", "HKT": "HKT", "TMT": "TMT", "ACDT": "ACDT", "JDT": "JDT", "PST": "PST", "SGT": "SGT", "HNCU": "HNCU", "ECT": "ECT", "HECU": "HECU", "HNOG": "HNOG", "ARST": "ARST", "HADT": "HADT", "CHADT": "CHADT", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "TMST": "TMST", "CAT": "CAT", "WITA": "WITA", "MDT": "MDT", "HNEG": "HNEG", "AWST": "AWST", "AWDT": "AWDT", "IST": "IST", "WEZ": "WEZ", "VET": "VET", "AKST": "AKST", "MST": "MST", "WIB": "WIB", "LHST": "LHST", "HEPM": "HEPM", "WARST": "WARST", "HEOG": "HEOG", "EST": "EST", "NZDT": "NZDT", "MEZ": "MEZ", "HNPM": "HNPM", "AEST": "AEST", "WESZ": "WESZ", "WAT": "WAT", "AKDT": "AKDT", "GFT": "GFT", "EDT": "EDT", "NZST": "NZST", "GMT": "GMT", "UYT": "UYT", "UYST": "UYST", "HAT": "HAT", "WIT": "WIT", "BOT": "BOT", "CST": "CST", "ART": "ART", "HAST": "HAST", "HENOMX": "HENOMX", "COT": "COT", "CLST": "CLST", "JST": "JST", "ACWDT": "ACWDT", "AEDT": "AEDT", "HEPMX": "HEPMX", "OESZ": "OESZ", "HNT": "HNT", "ChST": "ChST", "MYT": "MYT", "ACWST": "ACWST", "SAST": "SAST", "COST": "COST", "CDT": "CDT", "AST": "AST", "BT": "BT", "HNPMX": "HNPMX", "WART": "WART", "ADT": "ADT", "EAT": "EAT", "PDT": "PDT", "OEZ": "OEZ", "SRT": "SRT", "HEEG": "HEEG", "HKST": "HKST", "CLT": "CLT", "ACST": "ACST", "LHDT": "LHDT"},
+ }
+ }
+ 
+@@ -126,7 +101,7 @@ func (es *es_EA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_EA) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +111,7 @@ func (es *es_EA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_EA) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +121,7 @@ func (es *es_EA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_EA) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,75 +167,13 @@ func (es *es_EA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_EA' and handles both Whole and Real numbers based on 'v'
+ func (es *es_EA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_EA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_EA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_EA'
+@@ -268,56 +181,7 @@ func (es *es_EA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, es.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'es_EA'
+@@ -326,63 +190,7 @@ func (es *es_EA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, es.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, es.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, es.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'es_EA'
+@@ -390,17 +198,6 @@ func (es *es_EA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -409,17 +206,6 @@ func (es *es_EA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -428,19 +214,6 @@ func (es *es_EA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,21 +222,6 @@ func (es *es_EA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -472,15 +230,6 @@ func (es *es_EA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -489,22 +238,6 @@ func (es *es_EA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -513,26 +246,6 @@ func (es *es_EA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -541,32 +254,5 @@ func (es *es_EA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_EC/es_EC.go b/es_EC/es_EC.go
+index c021d3e..7dc6290 100644
+--- a/es_EC/es_EC.go
++++ b/es_EC/es_EC.go
+@@ -18,7 +18,6 @@ type es_EC struct {
+ group string
+ minus string
+ percent string
+- percentSuffix string
+ perMille string
+ timeSeparator string
+ inifinity string
+@@ -49,27 +48,12 @@ func New() locales.Translator {
+ pluralsRange: []locales.PluralRule{6},
+ decimal: ",",
+ group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+ periodsAbbreviated: []string{"a. m.", "p. m."},
+ periodsNarrow: []string{"a. m.", "p. m."},
+ periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"LHST": "hora estándar de Lord Howe", "UYT": "hora estándar de Uruguay", "HADT": "hora de verano de Hawái-Aleutiano", "ARST": "hora de verano de Argentina", "CLT": "hora estándar de Chile", "OESZ": "hora de verano de Europa oriental", "MYT": "hora de Malasia", "TMST": "hora de verano de Turkmenistán", "EAT": "hora de África oriental", "ART": "hora estándar de Argentina", "AWST": "hora estándar de Australia occidental", "NZDT": "hora de verano de Nueva Zelanda", "BOT": "hora de Bolivia", "CAT": "hora de África central", "MDT": "Hora de verano de Macao", "ACWST": "hora estándar de Australia centroccidental", "HAT": "hora de verano de Terranova", "WIB": "hora de Indonesia occidental", "HEOG": "hora de verano de Groenlandia occidental", "MEZ": "hora estándar de Europa central", "SAST": "hora de Sudáfrica", "JDT": "hora de verano de Japón", "WART": "hora estándar de Argentina occidental", "COST": "hora de verano de Colombia", "PST": "hora estándar del Pacífico", "WESZ": "hora de verano de Europa occidental", "VET": "hora de Venezuela", "HNNOMX": "hora estándar del noroeste de México", "ACWDT": "hora de verano de Australia centroccidental", "IST": "hora estándar de la India", "ChST": "hora estándar de Chamorro", "HENOMX": "hora de verano del noroeste de México", "AKST": "hora estándar de Alaska", "AKDT": "hora de verano de Alaska", "WIT": "hora de Indonesia oriental", "AEST": "hora estándar de Australia oriental", "JST": "hora estándar de Japón", "HNEG": "hora estándar de Groenlandia oriental", "WAT": "hora estándar de África occidental", "CHAST": "hora estándar de Chatham", "CLST": "hora de verano de Chile", "ADT": "hora de verano del Atlántico", "GYT": "hora de Guyana", "WITA": "hora de Indonesia central", "CDT": "hora de verano central", "HNT": "hora estándar de Terranova", "GMT": "hora del meridiano de Greenwich", "PDT": "hora de verano del Pacífico", "AEDT": "hora de verano de Australia oriental", "MESZ": "hora de verano de Europa central", "CHADT": "hora de verano de Chatham", "∅∅∅": "hora de verano del Amazonas", "OEZ": "hora estándar de Europa oriental", "WARST": "hora de verano de Argentina occidental", "CST": "hora estándar central", "HNPM": "hora estándar de San Pedro y Miquelón", "HEPM": "hora de verano de San Pedro y Miquelón", "AST": "hora estándar del Atlántico", "EST": "hora estándar oriental", "EDT": "hora de verano oriental", "MST": "Hora estándar de Macao", "HAST": "hora estándar de Hawái-Aleutiano", "BT": "hora de Bután", "SRT": "hora de Surinam", "LHDT": "hora de verano de Lord Howe", "HNCU": "hora estándar de Cuba", "HEEG": "hora de verano de Groenlandia oriental", "GFT": "hora de la Guayana Francesa", "TMT": "hora estándar de Turkmenistán", "WAST": "hora de verano de África occidental", "SGT": "hora de Singapur", "UYST": "hora de verano de Uruguay", "HNOG": "hora estándar de Groenlandia occidental", "NZST": "hora estándar de Nueva Zelanda", "ACST": "hora estándar de Australia central", "ACDT": "hora de verano de Australia central", "HECU": "hora de verano de Cuba", "HNPMX": "hora estándar del Pacífico de México", "WEZ": "hora estándar de Europa occidental", "HKST": "hora de verano de Hong Kong", "ECT": "hora de Ecuador", "COT": "hora estándar de Colombia", "HEPMX": "hora de verano del Pacífico de México", "AWDT": "hora de verano de Australia occidental", "HKT": "hora estándar de Hong Kong"},
++ timezones: map[string]string{"WARST": "WARST", "EDT": "EDT", "GMT": "GMT", "PDT": "PDT", "AEDT": "AEDT", "HNNOMX": "HNNOMX", "UYST": "UYST", "HEPMX": "HEPMX", "HEOG": "HEOG", "EST": "EST", "HKT": "HKT", "CST": "CST", "MYT": "MYT", "JST": "JST", "PST": "PST", "HNOG": "HNOG", "TMT": "TMT", "CLST": "CLST", "CDT": "CDT", "BOT": "BOT", "MESZ": "MESZ", "ACDT": "ACDT", "LHST": "LHST", "LHDT": "LHDT", "WEZ": "WEZ", "CAT": "CAT", "WITA": "WITA", "MST": "MST", "NZST": "NZST", "EAT": "EAT", "HEEG": "HEEG", "CHADT": "CHADT", "WIT": "WIT", "ARST": "ARST", "WART": "WART", "GYT": "GYT", "ECT": "ECT", "SRT": "SRT", "MEZ": "MEZ", "HNPM": "HNPM", "JDT": "JDT", "HNCU": "HNCU", "SAST": "SAST", "ADT": "ADT", "IST": "IST", "WESZ": "WESZ", "SGT": "SGT", "AKDT": "AKDT", "GFT": "GFT", "HKST": "HKST", "MDT": "MDT", "WIB": "WIB", "ART": "ART", "ACST": "ACST", "AWDT": "AWDT", "ACWDT": "ACWDT", "HECU": "HECU", "WAT": "WAT", "OESZ": "OESZ", "∅∅∅": "∅∅∅", "ChST": "ChST", "HEPM": "HEPM", "UYT": "UYT", "WAST": "WAST", "HNT": "HNT", "HAT": "HAT", "COT": "COT", "TMST": "TMST", "CLT": "CLT", "VET": "VET", "OEZ": "OEZ", "NZDT": "NZDT", "AST": "AST", "BT": "BT", "AKST": "AKST", "ACWST": "ACWST", "AEST": "AEST", "CHAST": "CHAST", "HNPMX": "HNPMX", "COST": "COST", "HAST": "HAST", "HADT": "HADT", "HNEG": "HNEG", "HENOMX": "HENOMX", "AWST": "AWST"},
+ }
+ }
+ 
+@@ -122,7 +106,7 @@ func (es *es_EC) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_EC) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -132,7 +116,7 @@ func (es *es_EC) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_EC) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -142,7 +126,7 @@ func (es *es_EC) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_EC) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -188,75 +172,13 @@ func (es *es_EC) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_EC' and handles both Whole and Real numbers based on 'v'
+ func (es *es_EC) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_EC' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_EC) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_EC'
+@@ -264,7 +186,7 @@ func (es *es_EC) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -322,7 +244,7 @@ func (es *es_EC) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -387,17 +309,6 @@ func (es *es_EC) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -406,17 +317,6 @@ func (es *es_EC) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -425,19 +325,6 @@ func (es *es_EC) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,21 +333,6 @@ func (es *es_EC) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -469,15 +341,6 @@ func (es *es_EC) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -486,22 +349,6 @@ func (es *es_EC) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -510,26 +357,6 @@ func (es *es_EC) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -538,32 +365,5 @@ func (es *es_EC) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_ES/es_ES.go b/es_ES/es_ES.go
+index 905732c..4e53c10 100644
+--- a/es_ES/es_ES.go
++++ b/es_ES/es_ES.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type es_ES struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'es_ES' locale
+ func New() locales.Translator {
+ return &es_ES{
+- locale: "es_ES",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"HNPMX": "hora estándar del Pacífico de México", "ARST": "hora de verano de Argentina", "WESZ": "hora de verano de Europa occidental", "HEOG": "hora de verano de Groenlandia occidental", "CLT": "hora estándar de Chile", "ACDT": "hora de verano de Australia central", "WAST": "hora de verano de África occidental", "OESZ": "hora de verano de Europa oriental", "COST": "hora de verano de Colombia", "MDT": "Hora de verano de Macao", "AEDT": "hora de verano de Australia oriental", "HKST": "hora de verano de Hong Kong", "WITA": "hora de Indonesia central", "HNPM": "hora estándar de San Pedro y Miquelón", "HNEG": "hora estándar de Groenlandia oriental", "GYT": "hora de Guyana", "AWDT": "hora de verano de Australia occidental", "HKT": "hora estándar de Hong Kong", "MEZ": "hora estándar de Europa central", "BT": "hora de Bután", "TMST": "hora de verano de Turkmenistán", "CAT": "hora de África central", "WARST": "hora de verano de Argentina occidental", "EDT": "hora de verano oriental", "CDT": "hora de verano central", "MYT": "hora de Malasia", "JDT": "hora de verano de Japón", "UYT": "hora estándar de Uruguay", "WEZ": "hora estándar de Europa occidental", "HNOG": "hora estándar de Groenlandia occidental", "IST": "hora estándar de la India", "ACST": "hora estándar de Australia central", "UYST": "hora de verano de Uruguay", "SRT": "hora de Surinam", "ACWST": "hora estándar de Australia centroccidental", "CST": "hora estándar central", "LHDT": "hora de verano de Lord Howe", "∅∅∅": "hora de verano del Amazonas", "ChST": "hora estándar de Chamorro", "OEZ": "hora estándar de Europa oriental", "ECT": "hora de Ecuador", "HNNOMX": "hora estándar del noroeste de México", "HECU": "hora de verano de Cuba", "NZST": "hora estándar de Nueva Zelanda", "NZDT": "hora de verano de Nueva Zelanda", "GFT": "hora de la Guayana Francesa", "VET": "hora de Venezuela", "PST": "hora estándar del Pacífico", "CHADT": "hora de verano de Chatham", "WAT": "hora estándar de África occidental", "AKST": "hora estándar de Alaska", "PDT": "hora de verano del Pacífico", "MESZ": "hora de verano de Europa central", "LHST": "hora estándar de Lord Howe", "HNCU": "hora estándar de Cuba", "MST": "Hora estándar de Macao", "ACWDT": "hora de verano de Australia centroccidental", "JST": "hora estándar de Japón", "GMT": "hora del meridiano de Greenwich", "EST": "hora estándar oriental", "ADT": "hora de verano del Atlántico", "HAT": "hora de verano de Terranova", "SAST": "hora de Sudáfrica", "WART": "hora estándar de Argentina occidental", "HEPMX": "hora de verano del Pacífico de México", "HEPM": "hora de verano de San Pedro y Miquelón", "TMT": "hora estándar de Turkmenistán", "COT": "hora estándar de Colombia", "HAST": "hora estándar de Hawái-Aleutiano", "ART": "hora estándar de Argentina", "AEST": "hora estándar de Australia oriental", "CLST": "hora de verano de Chile", "HEEG": "hora de verano de Groenlandia oriental", "EAT": "hora de África oriental", "HADT": "hora de verano de Hawái-Aleutiano", "WIT": "hora de Indonesia oriental", "CHAST": "hora estándar de Chatham", "AKDT": "hora de verano de Alaska", "AST": "hora estándar del Atlántico", "HNT": "hora estándar de Terranova", "AWST": "hora estándar de Australia occidental", "BOT": "hora de Bolivia", "HENOMX": "hora de verano del noroeste de México", "SGT": "hora de Singapur", "WIB": "hora de Indonesia occidental"},
++ locale: "es_ES",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WIT": "WIT", "WITA": "WITA", "ACWDT": "ACWDT", "PST": "PST", "UYST": "UYST", "HAT": "HAT", "∅∅∅": "∅∅∅", "EDT": "EDT", "TMT": "TMT", "NZST": "NZST", "MEZ": "MEZ", "COT": "COT", "EAT": "EAT", "HENOMX": "HENOMX", "MYT": "MYT", "CHAST": "CHAST", "OEZ": "OEZ", "HKT": "HKT", "SRT": "SRT", "MESZ": "MESZ", "ACST": "ACST", "BT": "BT", "SGT": "SGT", "AWST": "AWST", "JST": "JST", "WAT": "WAT", "JDT": "JDT", "GFT": "GFT", "HNT": "HNT", "CLT": "CLT", "CLST": "CLST", "MST": "MST", "GMT": "GMT", "HEEG": "HEEG", "AEST": "AEST", "WEZ": "WEZ", "HNCU": "HNCU", "HECU": "HECU", "EST": "EST", "ART": "ART", "BOT": "BOT", "HEPM": "HEPM", "PDT": "PDT", "OESZ": "OESZ", "HNOG": "HNOG", "HEOG": "HEOG", "CST": "CST", "NZDT": "NZDT", "ECT": "ECT", "ADT": "ADT", "COST": "COST", "ChST": "ChST", "HAST": "HAST", "WESZ": "WESZ", "VET": "VET", "HEPMX": "HEPMX", "WARST": "WARST", "SAST": "SAST", "LHST": "LHST", "ACWST": "ACWST", "UYT": "UYT", "CDT": "CDT", "MDT": "MDT", "LHDT": "LHDT", "CHADT": "CHADT", "WART": "WART", "AST": "AST", "AWDT": "AWDT", "HNPM": "HNPM", "IST": "IST", "AKDT": "AKDT", "GYT": "GYT", "CAT": "CAT", "WIB": "WIB", "ACDT": "ACDT", "AKST": "AKST", "HKST": "HKST", "TMST": "TMST", "HADT": "HADT", "HNNOMX": "HNNOMX", "AEDT": "AEDT", "HNPMX": "HNPMX", "ARST": "ARST", "HNEG": "HNEG", "WAST": "WAST"},
+ }
+ }
+ 
+@@ -126,7 +101,7 @@ func (es *es_ES) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_ES) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +111,7 @@ func (es *es_ES) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_ES) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +121,7 @@ func (es *es_ES) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_ES) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,75 +167,13 @@ func (es *es_ES) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_ES' and handles both Whole and Real numbers based on 'v'
+ func (es *es_ES) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_ES' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_ES) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_ES'
+@@ -268,56 +181,7 @@ func (es *es_ES) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, es.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'es_ES'
+@@ -326,63 +190,7 @@ func (es *es_ES) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, es.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, es.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, es.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'es_ES'
+@@ -390,17 +198,6 @@ func (es *es_ES) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -409,17 +206,6 @@ func (es *es_ES) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -428,19 +214,6 @@ func (es *es_ES) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,21 +222,6 @@ func (es *es_ES) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -472,15 +230,6 @@ func (es *es_ES) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -489,22 +238,6 @@ func (es *es_ES) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -513,26 +246,6 @@ func (es *es_ES) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -541,32 +254,5 @@ func (es *es_ES) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_GQ/es_GQ.go b/es_GQ/es_GQ.go
+index 041399b..66e1098 100644
+--- a/es_GQ/es_GQ.go
++++ b/es_GQ/es_GQ.go
+@@ -18,7 +18,6 @@ type es_GQ struct {
+ group string
+ minus string
+ percent string
+- percentSuffix string
+ perMille string
+ timeSeparator string
+ inifinity string
+@@ -43,33 +42,13 @@ type es_GQ struct {
+ // New returns a new instance of translator for the 'es_GQ' locale
+ func New() locales.Translator {
+ return &es_GQ{
+- locale: "es_GQ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "FCFA", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"PDT": "hora de verano del Pacífico", "ART": "hora estándar de Argentina", "HEPM": "hora de verano de San Pedro y Miquelón", "IST": "hora estándar de la India", "HAST": "hora estándar de Hawái-Aleutiano", "PST": "hora estándar del Pacífico", "HADT": "hora de verano de Hawái-Aleutiano", "HEOG": "hora de verano de Groenlandia occidental", "WITA": "hora de Indonesia central", "LHST": "hora estándar de Lord Howe", "EDT": "hora de verano oriental", "HNPMX": "hora estándar del Pacífico de México", "ACWST": "hora estándar de Australia centroccidental", "ACWDT": "hora de verano de Australia centroccidental", "AWST": "hora estándar de Australia occidental", "HKST": "hora de verano de Hong Kong", "HNPM": "hora estándar de San Pedro y Miquelón", "SRT": "hora de Surinam", "WEZ": "hora estándar de Europa occidental", "MDT": "Hora de verano de Macao", "AEDT": "hora de verano de Australia oriental", "HKT": "hora estándar de Hong Kong", "SAST": "hora de Sudáfrica", "SGT": "hora de Singapur", "HNCU": "hora estándar de Cuba", "ECT": "hora de Ecuador", "HNNOMX": "hora estándar del noroeste de México", "UYST": "hora de verano de Uruguay", "ADT": "hora de verano del Atlántico", "GFT": "hora de la Guayana Francesa", "TMT": "hora estándar de Turkmenistán", "EAT": "hora de África oriental", "OESZ": "hora de verano de Europa oriental", "AKST": "hora estándar de Alaska", "ChST": "hora estándar de Chamorro", "ACST": "hora estándar de Australia central", "CHADT": "hora de verano de Chatham", "AKDT": "hora de verano de Alaska", "NZST": "hora estándar de Nueva Zelanda", "OEZ": "hora estándar de Europa oriental", "WART": "hora estándar de Argentina occidental", "MST": "Hora estándar de Macao", "UYT": "hora estándar de Uruguay", "VET": "hora de Venezuela", "WIT": "hora de Indonesia oriental", "ACDT": "hora de verano de Australia central", "CAT": "hora de África central", "LHDT": "hora de verano de Lord Howe", "BT": "hora de Bután", "HNOG": "hora estándar de Groenlandia occidental", "HENOMX": "hora de verano del noroeste de México", "HEPMX": "hora de verano del Pacífico de México", "AWDT": "hora de verano de Australia occidental", "∅∅∅": "hora de verano del Amazonas", "HEEG": "hora de verano de Groenlandia oriental", "GMT": "hora del meridiano de Greenwich", "WESZ": "hora de verano de Europa occidental", "JST": "hora estándar de Japón", "BOT": "hora de Bolivia", "WAST": "hora de verano de África occidental", "WARST": "hora de verano de Argentina occidental", "HECU": "hora de verano de Cuba", "GYT": "hora de Guyana", "CDT": "hora de verano central", "AST": "hora estándar del Atlántico", "JDT": "hora de verano de Japón", "HNEG": "hora estándar de Groenlandia oriental", "NZDT": "hora de verano de Nueva Zelanda", "WIB": "hora de Indonesia occidental", "MESZ": "hora de verano de Europa central", "MEZ": "hora estándar de Europa central", "COT": "hora estándar de Colombia", "EST": "hora estándar oriental", "WAT": "hora estándar de África occidental", "CST": "hora estándar central", "HNT": "hora estándar de Terranova", "HAT": "hora de verano de Terranova", "CHAST": "hora estándar de Chatham", "CLT": "hora estándar de Chile", "CLST": "hora de verano de Chile", "TMST": "hora de verano de Turkmenistán", "AEST": "hora estándar de Australia oriental", "ARST": "hora de verano de Argentina", "COST": "hora de verano de Colombia", "MYT": "hora de Malasia"},
++ locale: "es_GQ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "FCFA", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GFT": "GFT", "HAT": "HAT", "COST": "COST", "CLT": "CLT", "HNEG": "HNEG", "CHAST": "CHAST", "UYST": "UYST", "HKT": "HKT", "OEZ": "OEZ", "WARST": "WARST", "HADT": "HADT", "HECU": "HECU", "AST": "AST", "HEPMX": "HEPMX", "WAT": "WAT", "WAST": "WAST", "HNT": "HNT", "HNOG": "HNOG", "LHDT": "LHDT", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "EDT": "EDT", "MDT": "MDT", "BOT": "BOT", "AKDT": "AKDT", "COT": "COT", "TMST": "TMST", "CLST": "CLST", "CST": "CST", "WIB": "WIB", "MESZ": "MESZ", "AEDT": "AEDT", "SAST": "SAST", "AKST": "AKST", "WART": "WART", "WIT": "WIT", "MST": "MST", "ACDT": "ACDT", "ACWST": "ACWST", "SGT": "SGT", "HAST": "HAST", "CDT": "CDT", "SRT": "SRT", "ChST": "ChST", "MEZ": "MEZ", "PDT": "PDT", "VET": "VET", "JDT": "JDT", "ARST": "ARST", "HEPM": "HEPM", "BT": "BT", "HNNOMX": "HNNOMX", "OESZ": "OESZ", "GYT": "GYT", "NZST": "NZST", "ADT": "ADT", "ART": "ART", "ACST": "ACST", "UYT": "UYT", "ACWDT": "ACWDT", "AWDT": "AWDT", "WITA": "WITA", "NZDT": "NZDT", "HEEG": "HEEG", "JST": "JST", "PST": "PST", "EST": "EST", "HNPMX": "HNPMX", "TMT": "TMT", "CAT": "CAT", "ECT": "ECT", "HENOMX": "HENOMX", "AWST": "AWST", "AEST": "AEST", "HNCU": "HNCU", "HNPM": "HNPM", "LHST": "LHST", "MYT": "MYT", "WESZ": "WESZ", "HEOG": "HEOG", "HKST": "HKST", "GMT": "GMT", "EAT": "EAT", "IST": "IST", "WEZ": "WEZ"},
+ }
+ }
+ 
+@@ -122,7 +101,7 @@ func (es *es_GQ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_GQ) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -132,7 +111,7 @@ func (es *es_GQ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_GQ) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -142,7 +121,7 @@ func (es *es_GQ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_GQ) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -188,75 +167,13 @@ func (es *es_GQ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_GQ' and handles both Whole and Real numbers based on 'v'
+ func (es *es_GQ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_GQ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_GQ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_GQ'
+@@ -264,7 +181,7 @@ func (es *es_GQ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -322,7 +239,7 @@ func (es *es_GQ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -387,17 +304,6 @@ func (es *es_GQ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -406,17 +312,6 @@ func (es *es_GQ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -425,19 +320,6 @@ func (es *es_GQ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,21 +328,6 @@ func (es *es_GQ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -469,15 +336,6 @@ func (es *es_GQ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -486,22 +344,6 @@ func (es *es_GQ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -510,26 +352,6 @@ func (es *es_GQ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -538,32 +360,5 @@ func (es *es_GQ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_GT/es_GT.go b/es_GT/es_GT.go
+index c1a25eb..e5dc245 100644
+--- a/es_GT/es_GT.go
++++ b/es_GT/es_GT.go
+@@ -18,7 +18,6 @@ type es_GT struct {
+ group string
+ minus string
+ percent string
+- percentSuffix string
+ perMille string
+ timeSeparator string
+ inifinity string
+@@ -49,31 +48,14 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{2, 6},
+ pluralsOrdinal: []locales.PluralRule{6},
+ pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "Q", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+ currencyPositiveSuffix: "K",
+ currencyNegativeSuffix: "K",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+ periodsAbbreviated: []string{"a. m.", "p. m."},
+ periodsNarrow: []string{"a. m.", "p. m."},
+ periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"JDT": "hora de verano de Japón", "COST": "hora de verano de Colombia", "GYT": "hora de Guyana", "SRT": "hora de Surinam", "HNT": "hora estándar de Terranova", "IST": "hora estándar de la India", "HEPM": "hora de verano de San Pedro y Miquelón", "SAST": "hora de Sudáfrica", "ChST": "hora estándar de Chamorro", "BOT": "hora de Bolivia", "CAT": "hora de África central", "MST": "hora estándar de las Montañas", "VET": "hora de Venezuela", "HAT": "hora de verano de Terranova", "HNPMX": "hora estándar del Pacífico de México", "ECT": "hora de Ecuador", "HADT": "hora de verano de Hawái-Aleutiano", "∅∅∅": "hora de verano del Amazonas", "OESZ": "hora de verano de Europa oriental", "TMST": "hora de verano de Turkmenistán", "ACST": "hora estándar de Australia central", "CST": "hora estándar central", "MDT": "hora de verano de las Montañas", "WESZ": "hora de verano de Europa occidental", "LHST": "hora estándar de Lord Howe", "WIB": "hora de Indonesia occidental", "AEST": "hora estándar de Australia oriental", "GFT": "hora de la Guayana Francesa", "TMT": "hora estándar de Turkmenistán", "HECU": "hora de verano de Cuba", "MYT": "hora de Malasia", "PST": "hora estándar del Pacífico", "HKST": "hora de verano de Hong Kong", "CLT": "hora estándar de Chile", "HEEG": "hora de verano de Groenlandia oriental", "AKST": "hora estándar de Alaska", "AWST": "hora estándar de Australia occidental", "CHAST": "hora estándar de Chatham", "JST": "hora estándar de Japón", "WARST": "hora de verano de Argentina occidental", "GMT": "hora del meridiano de Greenwich", "HNOG": "hora estándar de Groenlandia occidental", "MEZ": "hora estándar de Europa central", "ACDT": "hora de verano de Australia central", "LHDT": "hora de verano de Lord Howe", "HENOMX": "hora de verano del noroeste de México", "WART": "hora estándar de Argentina occidental", "SGT": "hora de Singapur", "AEDT": "hora de verano de Australia oriental", "NZST": "hora estándar de Nueva Zelanda", "MESZ": "hora de verano de Europa central", "ADT": "hora de verano del Atlántico", "UYST": "hora de verano de Uruguay", "AWDT": "hora de verano de Australia occidental", "WAST": "hora de verano de África occidental", "AST": "hora estándar del Atlántico", "NZDT": "hora de verano de Nueva Zelanda", "CHADT": "hora de verano de Chatham", "OEZ": "hora estándar de Europa oriental", "HNCU": "hora estándar de Cuba", "EST": "hora estándar oriental", "WIT": "hora de Indonesia oriental", "ACWST": "hora estándar de Australia centroccidental", "PDT": "hora de verano del Pacífico", "HAST": "hora estándar de Hawái-Aleutiano", "BT": "hora de Bután", "CDT": "hora de verano central", "COT": "hora estándar de Colombia", "HEPMX": "hora de verano del Pacífico de México", "HEOG": "hora de verano de Groenlandia occidental", "WAT": "hora estándar de África occidental", "HNNOMX": "hora estándar del noroeste de México", "HNEG": "hora estándar de Groenlandia oriental", "EAT": "hora de África oriental", "UYT": "hora estándar de Uruguay", "ARST": "hora de verano de Argentina", "HKT": "hora estándar de Hong Kong", "WITA": "hora de Indonesia central", "EDT": "hora de verano oriental", "AKDT": "hora de verano de Alaska", "ACWDT": "hora de verano de Australia centroccidental", "ART": "hora estándar de Argentina", "HNPM": "hora estándar de San Pedro y Miquelón", "WEZ": "hora estándar de Europa occidental", "CLST": "hora de verano de Chile"},
++ timezones: map[string]string{"TMT": "TMT", "CLST": "CLST", "ADT": "ADT", "SRT": "SRT", "WAT": "WAT", "AKDT": "AKDT", "HAT": "HAT", "HEOG": "HEOG", "LHST": "LHST", "PDT": "PDT", "WARST": "WARST", "HEEG": "HEEG", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "NZDT": "NZDT", "EAT": "EAT", "UYST": "UYST", "HKT": "HKT", "AEST": "AEST", "AEDT": "AEDT", "UYT": "UYT", "HAST": "HAST", "MESZ": "MESZ", "JST": "JST", "HNOG": "HNOG", "TMST": "TMST", "CST": "CST", "MST": "MST", "NZST": "NZST", "MEZ": "MEZ", "AWDT": "AWDT", "LHDT": "LHDT", "OESZ": "OESZ", "COT": "COT", "SAST": "SAST", "EDT": "EDT", "HNCU": "HNCU", "WEZ": "WEZ", "CAT": "CAT", "CLT": "CLT", "CHADT": "CHADT", "PST": "PST", "BT": "BT", "WART": "WART", "ChST": "ChST", "ARST": "ARST", "HADT": "HADT", "AKST": "AKST", "HNT": "HNT", "MYT": "MYT", "VET": "VET", "WESZ": "WESZ", "∅∅∅": "∅∅∅", "BOT": "BOT", "ACDT": "ACDT", "AWST": "AWST", "HNNOMX": "HNNOMX", "ACST": "ACST", "ACWDT": "ACWDT", "GFT": "GFT", "ECT": "ECT", "MDT": "MDT", "HNEG": "HNEG", "WIT": "WIT", "HNPM": "HNPM", "IST": "IST", "HECU": "HECU", "COST": "COST", "WITA": "WITA", "GMT": "GMT", "CHAST": "CHAST", "WAST": "WAST", "CDT": "CDT", "HENOMX": "HENOMX", "ACWST": "ACWST", "GYT": "GYT", "HKST": "HKST", "WIB": "WIB", "HEPM": "HEPM", "JDT": "JDT", "SGT": "SGT", "OEZ": "OEZ", "EST": "EST", "ART": "ART", "AST": "AST"},
+ }
+ }
+ 
+@@ -126,7 +108,7 @@ func (es *es_GT) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_GT) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +118,7 @@ func (es *es_GT) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_GT) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +128,7 @@ func (es *es_GT) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_GT) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,75 +174,13 @@ func (es *es_GT) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_GT' and handles both Whole and Real numbers based on 'v'
+ func (es *es_GT) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_GT' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_GT) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_GT'
+@@ -268,7 +188,7 @@ func (es *es_GT) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 3
++ l := len(s) + len(symbol) + 1
+ 
+ b := make([]byte, 0, l)
+ 
+@@ -306,7 +226,7 @@ func (es *es_GT) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 3
++ l := len(s) + len(symbol) + 1
+ 
+ b := make([]byte, 0, l)
+ 
+@@ -406,19 +326,6 @@ func (es *es_GT) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -427,21 +334,6 @@ func (es *es_GT) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -450,15 +342,6 @@ func (es *es_GT) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -467,22 +350,6 @@ func (es *es_GT) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -491,26 +358,6 @@ func (es *es_GT) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -519,32 +366,5 @@ func (es *es_GT) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_HN/es_HN.go b/es_HN/es_HN.go
+index a82fbc2..5c40370 100644
+--- a/es_HN/es_HN.go
++++ b/es_HN/es_HN.go
+@@ -10,70 +10,48 @@ import (
+ )
+ 
+ type es_HN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'es_HN' locale
+ func New() locales.Translator {
+ return &es_HN{
+- locale: "es_HN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "L", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"SAST": "hora de Sudáfrica", "TMT": "hora estándar de Turkmenistán", "SGT": "hora de Singapur", "ADT": "hora de verano del Atlántico", "HNOG": "hora estándar de Groenlandia occidental", "HEOG": "hora de verano de Groenlandia occidental", "ACWDT": "hora de verano de Australia centroccidental", "ARST": "hora de verano de Argentina", "AWST": "hora estándar de Australia occidental", "AWDT": "hora de verano de Australia occidental", "HNNOMX": "hora estándar del noroeste de México", "AKDT": "hora de verano de Alaska", "UYST": "hora de verano de Uruguay", "CDT": "hora de verano central", "AST": "hora estándar del Atlántico", "VET": "hora de Venezuela", "HNPM": "hora estándar de San Pedro y Miquelón", "CHAST": "hora estándar de Chatham", "EAT": "hora de África oriental", "OEZ": "hora estándar de Europa oriental", "WESZ": "hora de verano de Europa occidental", "AEST": "hora estándar de Australia oriental", "TMST": "hora de verano de Turkmenistán", "GYT": "hora de Guyana", "EST": "hora estándar oriental", "LHDT": "hora de verano de Lord Howe", "CHADT": "hora de verano de Chatham", "HNEG": "hora estándar de Groenlandia oriental", "COST": "hora de verano de Colombia", "HNT": "hora estándar de Terranova", "ART": "hora estándar de Argentina", "HEPM": "hora de verano de San Pedro y Miquelón", "ACST": "hora estándar de Australia central", "COT": "hora estándar de Colombia", "HECU": "hora de verano de Cuba", "HAST": "hora estándar de Hawái-Aleutiano", "ACWST": "hora estándar de Australia centroccidental", "IST": "hora estándar de la India", "ACDT": "hora de verano de Australia central", "WARST": "hora de verano de Argentina occidental", "UYT": "hora estándar de Uruguay", "MDT": "Hora de verano de Macao", "HNPMX": "hora estándar del Pacífico de México", "WIB": "hora de Indonesia occidental", "WIT": "hora de Indonesia oriental", "NZST": "hora estándar de Nueva Zelanda", "WART": "hora estándar de Argentina occidental", "HENOMX": "hora de verano del noroeste de México", "HNCU": "hora estándar de Cuba", "PDT": "hora de verano del Pacífico", "WEZ": "hora estándar de Europa occidental", "HKST": "hora de verano de Hong Kong", "ECT": "hora de Ecuador", "MYT": "hora de Malasia", "SRT": "hora de Surinam", "GMT": "hora del meridiano de Greenwich", "PST": "hora estándar del Pacífico", "AEDT": "hora de verano de Australia oriental", "MEZ": "hora estándar de Europa central", "GFT": "hora de la Guayana Francesa", "CAT": "hora de África central", "ChST": "hora estándar de Chamorro", "OESZ": "hora de verano de Europa oriental", "MST": "Hora estándar de Macao", "HAT": "hora de verano de Terranova", "CLST": "hora de verano de Chile", "HEPMX": "hora de verano del Pacífico de México", "BT": "hora de Bután", "HKT": "hora estándar de Hong Kong", "WITA": "hora de Indonesia central", "JDT": "hora de verano de Japón", "HADT": "hora de verano de Hawái-Aleutiano", "MESZ": "hora de verano de Europa central", "LHST": "hora estándar de Lord Howe", "WAT": "hora estándar de África occidental", "AKST": "hora estándar de Alaska", "CST": "hora estándar central", "NZDT": "hora de verano de Nueva Zelanda", "∅∅∅": "hora de verano del Amazonas", "BOT": "hora de Bolivia", "EDT": "hora de verano oriental", "CLT": "hora estándar de Chile", "JST": "hora estándar de Japón", "HEEG": "hora de verano de Groenlandia oriental", "WAST": "hora de verano de África occidental"},
++ locale: "es_HN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "L", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"a. m.", "p. m."},
++ periodsNarrow: []string{"a. m.", "p. m."},
++ periodsWide: []string{"a. m.", "p. m."},
++ timezones: map[string]string{"∅∅∅": "∅∅∅", "OEZ": "OEZ", "WART": "WART", "CHADT": "CHADT", "AKST": "AKST", "WARST": "WARST", "LHST": "LHST", "HNPM": "HNPM", "IST": "IST", "GYT": "GYT", "EST": "EST", "CAT": "CAT", "CST": "CST", "ACDT": "ACDT", "HEEG": "HEEG", "HNPMX": "HNPMX", "AKDT": "AKDT", "HEOG": "HEOG", "HKT": "HKT", "ChST": "ChST", "HAST": "HAST", "MYT": "MYT", "HNT": "HNT", "COST": "COST", "HNOG": "HNOG", "EDT": "EDT", "CLT": "CLT", "MST": "MST", "HNEG": "HNEG", "AWDT": "AWDT", "CLST": "CLST", "JST": "JST", "BT": "BT", "AEST": "AEST", "WAT": "WAT", "WAST": "WAST", "SAST": "SAST", "AWST": "AWST", "JDT": "JDT", "UYST": "UYST", "HNCU": "HNCU", "HECU": "HECU", "NZST": "NZST", "ART": "ART", "PDT": "PDT", "GMT": "GMT", "ACST": "ACST", "PST": "PST", "OESZ": "OESZ", "CDT": "CDT", "ECT": "ECT", "HADT": "HADT", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "WESZ": "WESZ", "SGT": "SGT", "GFT": "GFT", "HKST": "HKST", "BOT": "BOT", "MEZ": "MEZ", "MESZ": "MESZ", "AEDT": "AEDT", "WEZ": "WEZ", "HAT": "HAT", "COT": "COT", "ARST": "ARST", "EAT": "EAT", "ACWST": "ACWST", "TMT": "TMT", "WIB": "WIB", "HENOMX": "HENOMX", "NZDT": "NZDT", "AST": "AST", "SRT": "SRT", "HEPM": "HEPM", "UYT": "UYT", "VET": "VET", "WIT": "WIT", "WITA": "WITA", "ADT": "ADT", "MDT": "MDT", "LHDT": "LHDT", "CHAST": "CHAST", "HEPMX": "HEPMX", "TMST": "TMST"},
+ }
+ }
+ 
+@@ -126,7 +104,7 @@ func (es *es_HN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_HN) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +114,7 @@ func (es *es_HN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_HN) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +124,7 @@ func (es *es_HN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_HN) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,75 +170,13 @@ func (es *es_HN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_HN' and handles both Whole and Real numbers based on 'v'
+ func (es *es_HN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_HN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_HN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_HN'
+@@ -268,56 +184,7 @@ func (es *es_HN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, es.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'es_HN'
+@@ -326,63 +193,7 @@ func (es *es_HN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, es.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, es.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, es.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'es_HN'
+@@ -390,17 +201,6 @@ func (es *es_HN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -409,17 +209,6 @@ func (es *es_HN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -481,15 +270,6 @@ func (es *es_HN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -498,22 +278,6 @@ func (es *es_HN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -522,26 +286,6 @@ func (es *es_HN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -550,32 +294,5 @@ func (es *es_HN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_IC/es_IC.go b/es_IC/es_IC.go
+index cbaa58d..59e065c 100644
+--- a/es_IC/es_IC.go
++++ b/es_IC/es_IC.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type es_IC struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'es_IC' locale
+ func New() locales.Translator {
+ return &es_IC{
+- locale: "es_IC",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"WIT": "hora de Indonesia oriental", "HEPM": "hora de verano de San Pedro y Miquelón", "COST": "hora de verano de Colombia", "HENOMX": "hora de verano del noroeste de México", "SGT": "hora de Singapur", "AKST": "hora estándar de Alaska", "WEZ": "hora estándar de Europa occidental", "AWST": "hora estándar de Australia occidental", "HNPM": "hora estándar de San Pedro y Miquelón", "LHST": "hora estándar de Lord Howe", "TMT": "hora estándar de Turkmenistán", "ACST": "hora estándar de Australia central", "HEPMX": "hora de verano del Pacífico de México", "UYST": "hora de verano de Uruguay", "HEOG": "hora de verano de Groenlandia occidental", "ACWDT": "hora de verano de Australia centroccidental", "TMST": "hora de verano de Turkmenistán", "CAT": "hora de África central", "WAT": "hora estándar de África occidental", "WART": "hora estándar de Argentina occidental", "ADT": "hora de verano del Atlántico", "HKT": "hora estándar de Hong Kong", "MEZ": "hora estándar de Europa central", "LHDT": "hora de verano de Lord Howe", "JDT": "hora de verano de Japón", "EST": "hora estándar oriental", "CST": "hora estándar central", "CDT": "hora de verano central", "WESZ": "hora de verano de Europa occidental", "ECT": "hora de Ecuador", "MDT": "Hora de verano de Macao", "AKDT": "hora de verano de Alaska", "SRT": "hora de Surinam", "AWDT": "hora de verano de Australia occidental", "CHAST": "hora estándar de Chatham", "GFT": "hora de la Guayana Francesa", "HNNOMX": "hora estándar del noroeste de México", "GYT": "hora de Guyana", "HADT": "hora de verano de Hawái-Aleutiano", "ACWST": "hora estándar de Australia centroccidental", "HAT": "hora de verano de Terranova", "JST": "hora estándar de Japón", "MYT": "hora de Malasia", "VET": "hora de Venezuela", "∅∅∅": "hora de verano del Amazonas", "HNCU": "hora estándar de Cuba", "WIB": "hora de Indonesia occidental", "HNOG": "hora estándar de Groenlandia occidental", "ART": "hora estándar de Argentina", "WAST": "hora de verano de África occidental", "COT": "hora estándar de Colombia", "WITA": "hora de Indonesia central", "BOT": "hora de Bolivia", "EAT": "hora de África oriental", "MST": "Hora estándar de Macao", "AST": "hora estándar del Atlántico", "HNT": "hora estándar de Terranova", "AEST": "hora estándar de Australia oriental", "HKST": "hora de verano de Hong Kong", "HECU": "hora de verano de Cuba", "EDT": "hora de verano oriental", "CHADT": "hora de verano de Chatham", "SAST": "hora de Sudáfrica", "CLT": "hora estándar de Chile", "HEEG": "hora de verano de Groenlandia oriental", "CLST": "hora de verano de Chile", "OEZ": "hora estándar de Europa oriental", "WARST": "hora de verano de Argentina occidental", "UYT": "hora estándar de Uruguay", "HAST": "hora estándar de Hawái-Aleutiano", "BT": "hora de Bután", "ARST": "hora de verano de Argentina", "MESZ": "hora de verano de Europa central", "PST": "hora estándar del Pacífico", "NZDT": "hora de verano de Nueva Zelanda", "IST": "hora estándar de la India", "OESZ": "hora de verano de Europa oriental", "GMT": "hora del meridiano de Greenwich", "NZST": "hora estándar de Nueva Zelanda", "HNEG": "hora estándar de Groenlandia oriental", "HNPMX": "hora estándar del Pacífico de México", "PDT": "hora de verano del Pacífico", "AEDT": "hora de verano de Australia oriental", "ChST": "hora estándar de Chamorro", "ACDT": "hora de verano de Australia central"},
++ locale: "es_IC",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"EDT": "EDT", "CLST": "CLST", "ADT": "ADT", "ART": "ART", "JDT": "JDT", "HNCU": "HNCU", "HNT": "HNT", "ECT": "ECT", "AEDT": "AEDT", "UYST": "UYST", "WAT": "WAT", "WARST": "WARST", "WIT": "WIT", "HNPM": "HNPM", "BT": "BT", "AEST": "AEST", "HNPMX": "HNPMX", "TMT": "TMT", "HADT": "HADT", "ACDT": "ACDT", "CHADT": "CHADT", "WESZ": "WESZ", "MDT": "MDT", "WIB": "WIB", "GMT": "GMT", "AWST": "AWST", "CHAST": "CHAST", "HAT": "HAT", "SAST": "SAST", "PST": "PST", "ACWST": "ACWST", "WEZ": "WEZ", "JST": "JST", "GYT": "GYT", "COT": "COT", "HEOG": "HEOG", "WITA": "WITA", "AST": "AST", "HENOMX": "HENOMX", "CDT": "CDT", "IST": "IST", "TMST": "TMST", "CAT": "CAT", "CST": "CST", "MST": "MST", "ChST": "ChST", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "HKT": "HKT", "SRT": "SRT", "ACST": "ACST", "SGT": "SGT", "AKDT": "AKDT", "MEZ": "MEZ", "MESZ": "MESZ", "LHST": "LHST", "HECU": "HECU", "BOT": "BOT", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "UYT": "UYT", "HEPMX": "HEPMX", "PDT": "PDT", "OESZ": "OESZ", "EST": "EST", "CLT": "CLT", "HNEG": "HNEG", "AWDT": "AWDT", "HEPM": "HEPM", "GFT": "GFT", "WART": "WART", "COST": "COST", "HNOG": "HNOG", "ARST": "ARST", "HEEG": "HEEG", "NZST": "NZST", "NZDT": "NZDT", "EAT": "EAT", "HAST": "HAST", "AKST": "AKST", "OEZ": "OEZ", "HKST": "HKST", "MYT": "MYT", "VET": "VET", "WAST": "WAST"},
+ }
+ }
+ 
+@@ -126,7 +101,7 @@ func (es *es_IC) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_IC) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +111,7 @@ func (es *es_IC) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_IC) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +121,7 @@ func (es *es_IC) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_IC) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,75 +167,13 @@ func (es *es_IC) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_IC' and handles both Whole and Real numbers based on 'v'
+ func (es *es_IC) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_IC' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_IC) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_IC'
+@@ -268,56 +181,7 @@ func (es *es_IC) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, es.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'es_IC'
+@@ -326,63 +190,7 @@ func (es *es_IC) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, es.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, es.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, es.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'es_IC'
+@@ -390,17 +198,6 @@ func (es *es_IC) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -409,17 +206,6 @@ func (es *es_IC) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -428,19 +214,6 @@ func (es *es_IC) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,21 +222,6 @@ func (es *es_IC) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -472,15 +230,6 @@ func (es *es_IC) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -489,22 +238,6 @@ func (es *es_IC) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -513,26 +246,6 @@ func (es *es_IC) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -541,32 +254,5 @@ func (es *es_IC) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_MX/es_MX.go b/es_MX/es_MX.go
+index 412c44a..92017b8 100644
+--- a/es_MX/es_MX.go
++++ b/es_MX/es_MX.go
+@@ -10,68 +10,51 @@ import (
+ )
+ 
+ type es_MX struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'es_MX' locale
+ func New() locales.Translator {
+ return &es_MX{
+- locale: "es_MX",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "Af", "ALK", "ALL", "AMD", "Naf", "Kz", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "$a", "ATS", "AU$", "Afl.", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "Br", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CN¥", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "RD$", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "$", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "lei", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TL", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ene", "feb", "mar", "abr", "may", "jun", "jul", "ago", "sep", "oct", "nov", "dic"},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"do", "lu", "ma", "mi", "ju", "vi", "sá"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"", ""},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"EDT": "hora de verano oriental", "MDT": "Hora de verano de Macao", "HAT": "hora de verano de Terranova", "LHST": "Hora estándar de Lord Howe", "GFT": "Hora de la Guayana Francesa", "TMT": "Hora estándar de Turkmenistán", "ECT": "Hora de Ecuador", "HNNOMX": "hora estándar del noroeste de México", "ACWDT": "Hora de verano de Australia Centroccidental", "HEPM": "hora de verano de San Pedro y Miquelón", "HNEG": "hora estándar de Groenlandia oriental", "HKT": "hora estándar de Hong Kong", "SAST": "Hora de Sudáfrica", "CLT": "hora estándar de Chile", "JDT": "hora de verano de Japón", "EAT": "Hora de África Oriental", "HENOMX": "hora de verano del noroeste de México", "HEPMX": "hora de verano del Pacífico de México", "WEZ": "Hora estándar de Europa Occidental", "CHAST": "Hora estándar de Chatham", "CHADT": "Hora de verano de Chatham", "IST": "hora estándar de la India", "CLST": "hora de verano de Chile", "JST": "hora estándar de Japón", "ChST": "Hora estándar de Chamorro", "MYT": "hora de Malasia", "HNOG": "hora estándar de Groenlandia occidental", "HKST": "hora de verano de Hong Kong", "BOT": "hora de Bolivia", "WIB": "hora de Indonesia occidental", "VET": "Hora de Venezuela", "WESZ": "Hora de verano de Europa Occidental", "ACWST": "Hora estándar de Australia Centroccidental", "SGT": "hora de Singapur", "BT": "hora de Bután", "AEDT": "Hora de verano de Australia Oriental", "TMST": "Hora de verano de Turkmenistán", "CAT": "Hora de África Central", "WAT": "Hora estándar de África Occidental", "OESZ": "Hora de verano de Europa del Este", "HNCU": "hora estándar de Cuba", "ADT": "hora de verano del Atlántico", "PDT": "hora de verano del Pacífico", "HNT": "hora estándar de Terranova", "ART": "hora estándar de Argentina", "ARST": "hora de verano de Argentina", "AWST": "Hora estándar de Australia Occidental", "LHDT": "Hora de verano de Lord Howe", "NZDT": "Hora de verano de Nueva Zelanda", "EST": "hora estándar oriental", "CDT": "hora de verano central", "WIT": "hora de Indonesia oriental", "AWDT": "Hora de verano de Australia Occidental", "NZST": "Hora estándar de Nueva Zelanda", "GMT": "Hora del meridiano de Greenwich", "MST": "Hora estándar de Macao", "HNPMX": "hora estándar del Pacífico de México", "SRT": "Hora de Surinam", "HEEG": "hora de verano de Groenlandia oriental", "OEZ": "Hora estándar de Europa del Este", "UYT": "Hora estándar de Uruguay", "UYST": "Hora de verano de Uruguay", "PST": "hora estándar del Pacífico", "MEZ": "Hora estándar de Europa Central", "MESZ": "Hora de verano de Europa Central", "ACST": "Hora estándar de Australia Central", "CST": "hora estándar central", "COT": "Hora estándar de Colombia", "HEOG": "hora de verano de Groenlandia occidental", "ACDT": "Hora de verano de Australia Central", "WARST": "hora de verano de Argentina occidental", "HNPM": "hora estándar de San Pedro y Miquelón", "WAST": "Hora de verano de África Occidental", "WART": "hora estándar de Argentina occidental", "AKST": "hora estándar de Alaska", "AST": "hora estándar del Atlántico", "HADT": "hora de verano de Hawái-Aleutiano", "∅∅∅": "hora de verano del Amazonas", "COST": "Hora de verano de Colombia", "HECU": "hora de verano de Cuba", "AKDT": "hora de verano de Alaska", "GYT": "Hora de Guyana", "HAST": "hora estándar de Hawái-Aleutiano", "AEST": "Hora estándar de Australia Oriental", "WITA": "hora de Indonesia central"},
++ locale: "es_MX",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "Af", "ALK", "ALL", "AMD", "Naf", "Kz", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "$a", "ATS", "AU$", "Afl.", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "Br", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CN¥", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "RD$", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "$", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "lei", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TL", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "ene", "feb", "mar", "abr", "may", "jun", "jul", "ago", "sep", "oct", "nov", "dic"},
++ daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
++ daysShort: []string{"do", "lu", "ma", "mi", "ju", "vi", "sá"},
++ periodsAbbreviated: []string{"a. m.", "p. m."},
++ periodsNarrow: []string{"", ""},
++ periodsWide: []string{"a. m.", "p. m."},
++ timezones: map[string]string{"CAT": "Hora de África Central", "ECT": "Hora de Ecuador", "ACST": "Hora estándar de Australia Central", "LHST": "Hora estándar de Lord Howe", "WAT": "Hora estándar de África Occidental", "HNT": "HNT", "EST": "EST", "MDT": "MDT", "HECU": "HECU", "CLT": "CLT", "SRT": "Hora de Surinam", "ACWST": "Hora estándar de Australia Centroccidental", "WAST": "Hora de verano de África Occidental", "HEOG": "HEOG", "MST": "MST", "UYST": "Hora de verano de Uruguay", "HNOG": "HNOG", "CLST": "CLST", "HADT": "HADT", "MEZ": "Hora estándar de Europa Central", "HEEG": "HEEG", "HENOMX": "HENOMX", "MYT": "MYT", "UYT": "Hora estándar de Uruguay", "HAT": "HAT", "SAST": "Hora de Sudáfrica", "GYT": "Hora de Guyana", "COST": "Hora de verano de Colombia", "EDT": "EDT", "WITA": "WITA", "HEPMX": "HEPMX", "WIT": "WIT", "∅∅∅": "Hora de verano de las Azores", "ChST": "Hora estándar de Chamorro", "ACDT": "Hora de verano de Australia Central", "WESZ": "Hora de verano de Europa Occidental", "TMST": "Hora de verano de Turkmenistán", "NZDT": "Hora de verano de Nueva Zelanda", "EAT": "Hora de África Oriental", "HNEG": "HNEG", "IST": "IST", "SGT": "SGT", "WARST": "WARST", "WEZ": "Hora estándar de Europa Occidental", "WART": "WART", "HKT": "HKT", "HKST": "HKST", "ART": "ART", "BOT": "BOT", "HAST": "HAST", "NZST": "Hora estándar de Nueva Zelanda", "AWDT": "Hora de verano de Australia Occidental", "ACWDT": "Hora de verano de Australia Centroccidental", "CHAST": "Hora estándar de Chatham", "OESZ": "Hora de verano de Europa del Este", "CDT": "CDT", "MESZ": "Hora de verano de Europa Central", "HNNOMX": "HNNOMX", "PST": "PST", "BT": "BT", "AEST": "Hora estándar de Australia Oriental", "HNPMX": "HNPMX", "AKST": "AKST", "AKDT": "AKDT", "GFT": "Hora de la Guayana Francesa", "TMT": "Hora estándar de Turkmenistán", "WIB": "WIB", "AWST": "Hora estándar de Australia Occidental", "LHDT": "Hora de verano de Lord Howe", "JST": "JST", "JDT": "JDT", "CHADT": "Hora de verano de Chatham", "CST": "CST", "PDT": "PDT", "HNCU": "HNCU", "OEZ": "Hora estándar de Europa del Este", "COT": "Hora estándar de Colombia", "GMT": "Hora del meridiano de Greenwich", "ARST": "ARST", "AST": "AST", "ADT": "ADT", "HNPM": "HNPM", "HEPM": "HEPM", "AEDT": "Hora de verano de Australia Oriental", "VET": "Hora de Venezuela"},
+ }
+ }
+ 
+@@ -134,7 +117,7 @@ func (es *es_MX) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_MX) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -144,7 +127,7 @@ func (es *es_MX) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_MX) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,49 +173,14 @@ func (es *es_MX) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_MX' and handles both Whole and Real numbers based on 'v'
+ func (es *es_MX) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_MX' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_MX) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
++ l := len(s) + 0
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -264,56 +212,7 @@ func (es *es_MX) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, es.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'es_MX'
+@@ -322,63 +221,7 @@ func (es *es_MX) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, es.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, es.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, es.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'es_MX'
+@@ -444,19 +287,6 @@ func (es *es_MX) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,21 +295,6 @@ func (es *es_MX) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -488,15 +303,6 @@ func (es *es_MX) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -505,22 +311,6 @@ func (es *es_MX) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -529,26 +319,6 @@ func (es *es_MX) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -557,32 +327,5 @@ func (es *es_MX) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_NI/es_NI.go b/es_NI/es_NI.go
+index 015a84f..1d60688 100644
+--- a/es_NI/es_NI.go
++++ b/es_NI/es_NI.go
+@@ -10,70 +10,48 @@ import (
+ )
+ 
+ type es_NI struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'es_NI' locale
+ func New() locales.Translator {
+ return &es_NI{
+- locale: "es_NI",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "C$", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"BT": "hora de Bután", "SRT": "hora de Surinam", "HNOG": "hora estándar de Groenlandia occidental", "ACWDT": "hora de verano de Australia centroccidental", "MEZ": "hora estándar de Europa central", "NZDT": "hora de verano de Nueva Zelanda", "CHAST": "hora estándar de Chatham", "TMST": "hora de verano de Turkmenistán", "GFT": "hora de la Guayana Francesa", "GYT": "hora de Guyana", "UYT": "hora estándar de Uruguay", "HKST": "hora de verano de Hong Kong", "BOT": "hora de Bolivia", "OESZ": "hora de verano de Europa oriental", "COST": "hora de verano de Colombia", "HECU": "hora de verano de Cuba", "PST": "hora estándar del Pacífico", "∅∅∅": "hora de verano del Amazonas", "TMT": "hora estándar de Turkmenistán", "WIB": "hora de Indonesia occidental", "HNT": "hora estándar de Terranova", "HKT": "hora estándar de Hong Kong", "MST": "Hora estándar de Macao", "AKDT": "hora de verano de Alaska", "VET": "hora de Venezuela", "HNPM": "hora estándar de San Pedro y Miquelón", "HAST": "hora estándar de Hawái-Aleutiano", "HEOG": "hora de verano de Groenlandia occidental", "WESZ": "hora de verano de Europa occidental", "ACWST": "hora estándar de Australia centroccidental", "AEST": "hora estándar de Australia oriental", "ACDT": "hora de verano de Australia central", "ECT": "hora de Ecuador", "HENOMX": "hora de verano del noroeste de México", "GMT": "hora del meridiano de Greenwich", "AKST": "hora estándar de Alaska", "CST": "hora estándar central", "CDT": "hora de verano central", "HADT": "hora de verano de Hawái-Aleutiano", "WIT": "hora de Indonesia oriental", "JST": "hora estándar de Japón", "ChST": "hora estándar de Chamorro", "HEEG": "hora de verano de Groenlandia oriental", "HNPMX": "hora estándar del Pacífico de México", "LHDT": "hora de verano de Lord Howe", "JDT": "hora de verano de Japón", "ACST": "hora estándar de Australia central", "WAST": "hora de verano de África occidental", "ADT": "hora de verano del Atlántico", "ARST": "hora de verano de Argentina", "LHST": "hora estándar de Lord Howe", "IST": "hora estándar de la India", "CLT": "hora estándar de Chile", "PDT": "hora de verano del Pacífico", "WAT": "hora estándar de África occidental", "SGT": "hora de Singapur", "AST": "hora estándar del Atlántico", "WEZ": "hora estándar de Europa occidental", "MDT": "Hora de verano de Macao", "HEPMX": "hora de verano del Pacífico de México", "UYST": "hora de verano de Uruguay", "HEPM": "hora de verano de San Pedro y Miquelón", "MESZ": "hora de verano de Europa central", "CHADT": "hora de verano de Chatham", "SAST": "hora de Sudáfrica", "CLST": "hora de verano de Chile", "AWST": "hora estándar de Australia occidental", "AWDT": "hora de verano de Australia occidental", "NZST": "hora estándar de Nueva Zelanda", "OEZ": "hora estándar de Europa oriental", "COT": "hora estándar de Colombia", "EST": "hora estándar oriental", "MYT": "hora de Malasia", "WITA": "hora de Indonesia central", "HNEG": "hora estándar de Groenlandia oriental", "EAT": "hora de África oriental", "ART": "hora estándar de Argentina", "HAT": "hora de verano de Terranova", "AEDT": "hora de verano de Australia oriental", "CAT": "hora de África central", "HNNOMX": "hora estándar del noroeste de México", "HNCU": "hora estándar de Cuba", "WART": "hora estándar de Argentina occidental", "WARST": "hora de verano de Argentina occidental", "EDT": "hora de verano oriental"},
++ locale: "es_NI",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "C$", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"a. m.", "p. m."},
++ periodsNarrow: []string{"a. m.", "p. m."},
++ periodsWide: []string{"a. m.", "p. m."},
++ timezones: map[string]string{"EAT": "EAT", "WESZ": "WESZ", "COT": "COT", "COST": "COST", "CDT": "CDT", "WIT": "WIT", "WITA": "WITA", "OESZ": "OESZ", "HEEG": "HEEG", "AWDT": "AWDT", "OEZ": "OEZ", "HAT": "HAT", "EDT": "EDT", "CAT": "CAT", "SRT": "SRT", "ACST": "ACST", "ACDT": "ACDT", "AEDT": "AEDT", "CHADT": "CHADT", "GMT": "GMT", "IST": "IST", "AEST": "AEST", "WAST": "WAST", "∅∅∅": "∅∅∅", "JDT": "JDT", "GFT": "GFT", "HNT": "HNT", "CLST": "CLST", "HENOMX": "HENOMX", "AST": "AST", "HAST": "HAST", "AWST": "AWST", "CHAST": "CHAST", "MST": "MST", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "HNCU": "HNCU", "AKST": "AKST", "SAST": "SAST", "CLT": "CLT", "MDT": "MDT", "ECT": "ECT", "BOT": "BOT", "HADT": "HADT", "LHST": "LHST", "MYT": "MYT", "PDT": "PDT", "ACWDT": "ACWDT", "CST": "CST", "HKST": "HKST", "AKDT": "AKDT", "HECU": "HECU", "WAT": "WAT", "WARST": "WARST", "UYST": "UYST", "WIB": "WIB", "ARST": "ARST", "MEZ": "MEZ", "HNPM": "HNPM", "HNOG": "HNOG", "HEOG": "HEOG", "HKT": "HKT", "NZDT": "NZDT", "TMT": "TMT", "HNEG": "HNEG", "HNPMX": "HNPMX", "ADT": "ADT", "LHDT": "LHDT", "JST": "JST", "WART": "WART", "EST": "EST", "TMST": "TMST", "ChST": "ChST", "ART": "ART", "PST": "PST", "BT": "BT", "VET": "VET", "HEPMX": "HEPMX", "NZST": "NZST", "ACWST": "ACWST", "UYT": "UYT", "WEZ": "WEZ", "SGT": "SGT", "GYT": "GYT", "MESZ": "MESZ"},
+ }
+ }
+ 
+@@ -126,7 +104,7 @@ func (es *es_NI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_NI) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +114,7 @@ func (es *es_NI) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_NI) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +124,7 @@ func (es *es_NI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_NI) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,75 +170,13 @@ func (es *es_NI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_NI' and handles both Whole and Real numbers based on 'v'
+ func (es *es_NI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_NI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_NI) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_NI'
+@@ -268,56 +184,7 @@ func (es *es_NI) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, es.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'es_NI'
+@@ -326,63 +193,7 @@ func (es *es_NI) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, es.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, es.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, es.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'es_NI'
+@@ -390,17 +201,6 @@ func (es *es_NI) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -409,17 +209,6 @@ func (es *es_NI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -428,19 +217,6 @@ func (es *es_NI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,21 +225,6 @@ func (es *es_NI) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -472,15 +233,6 @@ func (es *es_NI) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -489,22 +241,6 @@ func (es *es_NI) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -513,26 +249,6 @@ func (es *es_NI) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -541,32 +257,5 @@ func (es *es_NI) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_PA/es_PA.go b/es_PA/es_PA.go
+index 93cda0c..6ec67ee 100644
+--- a/es_PA/es_PA.go
++++ b/es_PA/es_PA.go
+@@ -10,70 +10,49 @@ import (
+ )
+ 
+ type es_PA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'es_PA' locale
+ func New() locales.Translator {
+ return &es_PA{
+- locale: "es_PA",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "B/.", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"LHDT": "hora de verano de Lord Howe", "NZST": "hora estándar de Nueva Zelanda", "SAST": "hora de Sudáfrica", "HNNOMX": "hora estándar del noroeste de México", "HNPMX": "hora estándar del Pacífico de México", "WIB": "hora de Indonesia occidental", "WITA": "hora de Indonesia central", "MDT": "Hora de verano de Macao", "CST": "hora estándar central", "HNOG": "hora estándar de Groenlandia occidental", "CHAST": "hora estándar de Chatham", "TMST": "hora de verano de Turkmenistán", "ACDT": "hora de verano de Australia central", "EAT": "hora de África oriental", "AKST": "hora estándar de Alaska", "ACWDT": "hora de verano de Australia centroccidental", "HNT": "hora estándar de Terranova", "COT": "hora estándar de Colombia", "LHST": "hora estándar de Lord Howe", "MESZ": "hora de verano de Europa central", "WAST": "hora de verano de África occidental", "ADT": "hora de verano del Atlántico", "ACWST": "hora estándar de Australia centroccidental", "PST": "hora estándar del Pacífico", "ARST": "hora de verano de Argentina", "CLT": "hora estándar de Chile", "GYT": "hora de Guyana", "UYT": "hora estándar de Uruguay", "HADT": "hora de verano de Hawái-Aleutiano", "WARST": "hora de verano de Argentina occidental", "WESZ": "hora de verano de Europa occidental", "HAT": "hora de verano de Terranova", "HEEG": "hora de verano de Groenlandia oriental", "AEST": "hora estándar de Australia oriental", "WAT": "hora estándar de África occidental", "CAT": "hora de África central", "EST": "hora estándar oriental", "AST": "hora estándar del Atlántico", "BT": "hora de Bután", "BOT": "hora de Bolivia", "EDT": "hora de verano oriental", "AKDT": "hora de verano de Alaska", "CLST": "hora de verano de Chile", "OEZ": "hora estándar de Europa oriental", "GMT": "hora del meridiano de Greenwich", "UYST": "hora de verano de Uruguay", "CHADT": "hora de verano de Chatham", "TMT": "hora estándar de Turkmenistán", "HNEG": "hora estándar de Groenlandia oriental", "GFT": "hora de la Guayana Francesa", "ECT": "hora de Ecuador", "MST": "Hora estándar de Macao", "ART": "hora estándar de Argentina", "HNPM": "hora estándar de San Pedro y Miquelón", "HEPM": "hora de verano de San Pedro y Miquelón", "SRT": "hora de Surinam", "PDT": "hora de verano del Pacífico", "AWST": "hora estándar de Australia occidental", "AWDT": "hora de verano de Australia occidental", "HKST": "hora de verano de Hong Kong", "JST": "hora estándar de Japón", "ChST": "hora estándar de Chamorro", "HEPMX": "hora de verano del Pacífico de México", "VET": "hora de Venezuela", "WEZ": "hora estándar de Europa occidental", "ACST": "hora estándar de Australia central", "COST": "hora de verano de Colombia", "HNCU": "hora estándar de Cuba", "CDT": "hora de verano central", "MYT": "hora de Malasia", "HEOG": "hora de verano de Groenlandia occidental", "NZDT": "hora de verano de Nueva Zelanda", "IST": "hora estándar de la India", "∅∅∅": "hora de verano del Amazonas", "HENOMX": "hora de verano del noroeste de México", "WART": "hora estándar de Argentina occidental", "WIT": "hora de Indonesia oriental", "HAST": "hora estándar de Hawái-Aleutiano", "HKT": "hora estándar de Hong Kong", "AEDT": "hora de verano de Australia oriental", "SGT": "hora de Singapur", "HECU": "hora de verano de Cuba", "MEZ": "hora estándar de Europa central", "JDT": "hora de verano de Japón", "OESZ": "hora de verano de Europa oriental"},
++ locale: "es_PA",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "B/.", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
++ periodsAbbreviated: []string{"a. m.", "p. m."},
++ periodsNarrow: []string{"a. m.", "p. m."},
++ periodsWide: []string{"a. m.", "p. m."},
++ timezones: map[string]string{"IST": "IST", "PST": "PST", "WARST": "WARST", "NZST": "NZST", "ADT": "ADT", "JST": "JST", "HECU": "HECU", "SGT": "SGT", "OESZ": "OESZ", "ACST": "ACST", "BT": "BT", "AEST": "AEST", "HKST": "HKST", "WEZ": "WEZ", "TMT": "TMT", "TMST": "TMST", "CHAST": "CHAST", "UYT": "UYT", "HNCU": "HNCU", "AKST": "AKST", "GFT": "GFT", "AST": "AST", "HAST": "HAST", "LHST": "LHST", "GYT": "GYT", "EST": "EST", "AWST": "AWST", "ACWDT": "ACWDT", "VET": "VET", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "WIB": "WIB", "MEZ": "MEZ", "JDT": "JDT", "HNT": "HNT", "NZDT": "NZDT", "AWDT": "AWDT", "HEOG": "HEOG", "EDT": "EDT", "HNPM": "HNPM", "WAT": "WAT", "COT": "COT", "∅∅∅": "∅∅∅", "WITA": "WITA", "ART": "ART", "HEPM": "HEPM", "OEZ": "OEZ", "WIT": "WIT", "ECT": "ECT", "CDT": "CDT", "MYT": "MYT", "ACWST": "ACWST", "HAT": "HAT", "CLT": "CLT", "MST": "MST", "ACDT": "ACDT", "AEDT": "AEDT", "WAST": "WAST", "COST": "COST", "HKT": "HKT", "SRT": "SRT", "HENOMX": "HENOMX", "LHDT": "LHDT", "MESZ": "MESZ", "HNOG": "HNOG", "SAST": "SAST", "UYST": "UYST", "WESZ": "WESZ", "CST": "CST", "HNEG": "HNEG", "HEEG": "HEEG", "GMT": "GMT", "EAT": "EAT", "HNNOMX": "HNNOMX", "WART": "WART", "CAT": "CAT", "CLST": "CLST", "MDT": "MDT", "HADT": "HADT", "CHADT": "CHADT", "PDT": "PDT", "AKDT": "AKDT", "ChST": "ChST", "ARST": "ARST", "BOT": "BOT"},
+ }
+ }
+ 
+@@ -126,7 +105,7 @@ func (es *es_PA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_PA) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -146,7 +125,7 @@ func (es *es_PA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_PA) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,75 +171,13 @@ func (es *es_PA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_PA' and handles both Whole and Real numbers based on 'v'
+ func (es *es_PA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_PA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_PA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_PA'
+@@ -268,56 +185,7 @@ func (es *es_PA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, es.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'es_PA'
+@@ -326,63 +194,7 @@ func (es *es_PA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, es.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, es.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, es.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'es_PA'
+@@ -448,19 +260,6 @@ func (es *es_PA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -469,21 +268,6 @@ func (es *es_PA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/es_PE/es_PE.go b/es_PE/es_PE.go
+index 39e33fd..77501ff 100644
+--- a/es_PE/es_PE.go
++++ b/es_PE/es_PE.go
+@@ -10,70 +10,50 @@ import (
+ )
+ 
+ type es_PE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'es_PE' locale
+ func New() locales.Translator {
+ return &es_PE{
+- locale: "es_PE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "S/", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "set.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "setiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"AST": "hora estándar del Atlántico", "SRT": "hora de Surinam", "ART": "hora estándar de Argentina", "CLST": "hora de verano de Chile", "COST": "hora de verano de Colombia", "HNNOMX": "hora estándar del noroeste de México", "WARST": "hora de verano de Argentina occidental", "MYT": "hora de Malasia", "UYST": "hora de verano de Uruguay", "HNOG": "hora estándar de Groenlandia occidental", "CHADT": "hora de verano de Chatham", "ChST": "hora estándar de Chamorro", "EAT": "hora de África oriental", "ECT": "hora de Ecuador", "SGT": "hora de Singapur", "JST": "hora estándar de Japón", "HEEG": "hora de verano de Groenlandia oriental", "WESZ": "hora de verano de Europa occidental", "AWST": "hora estándar de Australia occidental", "WITA": "hora de Indonesia central", "CAT": "hora de África central", "HENOMX": "hora de verano del noroeste de México", "CHAST": "hora estándar de Chatham", "MEZ": "hora estándar de Europa central", "WART": "hora estándar de Argentina occidental", "WEZ": "hora estándar de Europa occidental", "NZDT": "hora de verano de Nueva Zelanda", "HNCU": "hora estándar de Cuba", "CLT": "hora estándar de Chile", "ACST": "hora estándar de Australia central", "CST": "hora estándar central", "LHDT": "hora de verano de Lord Howe", "ARST": "hora de verano de Argentina", "IST": "hora estándar de la India", "CDT": "hora de verano central", "UYT": "hora estándar de Uruguay", "BT": "hora de Bután", "HNT": "hora estándar de Terranova", "AEST": "hora estándar de Australia oriental", "MESZ": "hora de verano de Europa central", "JDT": "hora de verano de Japón", "TMST": "hora de verano de Turkmenistán", "OESZ": "hora de verano de Europa oriental", "AKST": "hora estándar de Alaska", "WIT": "hora de Indonesia oriental", "PST": "hora estándar del Pacífico", "AEDT": "hora de verano de Australia oriental", "LHST": "hora estándar de Lord Howe", "GMT": "hora del meridiano de Greenwich", "HNPMX": "hora estándar del Pacífico de México", "HAST": "hora estándar de Hawái-Aleutiano", "VET": "hora de Venezuela", "ACWST": "hora estándar de Australia centroccidental", "HAT": "hora de verano de Terranova", "AWDT": "hora de verano de Australia occidental", "HNPM": "hora estándar de San Pedro y Miquelón", "WAT": "hora estándar de África occidental", "HECU": "hora de verano de Cuba", "WIB": "hora de Indonesia occidental", "HEPM": "hora de verano de San Pedro y Miquelón", "NZST": "hora estándar de Nueva Zelanda", "HNEG": "hora estándar de Groenlandia oriental", "ACDT": "hora de verano de Australia central", "AKDT": "hora de verano de Alaska", "HADT": "hora de verano de Hawái-Aleutiano", "ADT": "hora de verano del Atlántico", "PDT": "hora de verano del Pacífico", "TMT": "hora estándar de Turkmenistán", "HKST": "hora de verano de Hong Kong", "SAST": "hora de Sudáfrica", "MDT": "Hora de verano de Macao", "EST": "hora estándar oriental", "ACWDT": "hora de verano de Australia centroccidental", "GFT": "hora de la Guayana Francesa", "∅∅∅": "hora de verano de Perú", "MST": "Hora estándar de Macao", "HEOG": "hora de verano de Groenlandia occidental", "HEPMX": "hora de verano del Pacífico de México", "EDT": "hora de verano oriental", "GYT": "hora de Guyana", "HKT": "hora estándar de Hong Kong", "BOT": "hora de Bolivia", "WAST": "hora de verano de África occidental", "OEZ": "hora estándar de Europa oriental", "COT": "hora estándar de Colombia"},
++ locale: "es_PE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "S/", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "set.", "oct.", "nov.", "dic."},
++ monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "setiembre", "octubre", "noviembre", "diciembre"},
++ periodsAbbreviated: []string{"a. m.", "p. m."},
++ periodsNarrow: []string{"a. m.", "p. m."},
++ periodsWide: []string{"a. m.", "p. m."},
++ timezones: map[string]string{"NZDT": "NZDT", "HENOMX": "HENOMX", "HNEG": "HNEG", "JDT": "JDT", "AWST": "AWST", "SGT": "SGT", "LHDT": "LHDT", "COT": "COT", "COST": "COST", "CLT": "CLT", "IST": "IST", "PDT": "PDT", "HEPMX": "HEPMX", "HNOG": "HNOG", "GYT": "GYT", "NZST": "NZST", "HECU": "HECU", "EDT": "EDT", "TMST": "TMST", "WAT": "WAT", "CLST": "CLST", "CST": "CST", "MDT": "MDT", "ChST": "ChST", "HNPM": "HNPM", "LHST": "LHST", "AEDT": "AEDT", "WART": "WART", "∅∅∅": "∅∅∅", "WITA": "WITA", "ECT": "ECT", "ACST": "ACST", "BT": "BT", "HNT": "HNT", "SAST": "SAST", "AEST": "AEST", "CHAST": "CHAST", "ARST": "ARST", "GMT": "GMT", "MEZ": "MEZ", "WEZ": "WEZ", "WARST": "WARST", "ART": "ART", "SRT": "SRT", "HADT": "HADT", "ACWST": "ACWST", "UYT": "UYT", "HNPMX": "HNPMX", "CDT": "CDT", "MST": "MST", "EAT": "EAT", "ACDT": "ACDT", "MYT": "MYT", "ACWDT": "ACWDT", "UYST": "UYST", "WAST": "WAST", "CAT": "CAT", "WIB": "WIB", "AST": "AST", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "OEZ": "OEZ", "GFT": "GFT", "CHADT": "CHADT", "VET": "VET", "WIT": "WIT", "HEOG": "HEOG", "ADT": "ADT", "JST": "JST", "OESZ": "OESZ", "BOT": "BOT", "HEEG": "HEEG", "HNCU": "HNCU", "AKST": "AKST", "EST": "EST", "HKST": "HKST", "HEPM": "HEPM", "HAT": "HAT", "TMT": "TMT", "HAST": "HAST", "MESZ": "MESZ", "AWDT": "AWDT", "PST": "PST", "WESZ": "WESZ", "HKT": "HKT"},
+ }
+ }
+ 
+@@ -136,7 +116,7 @@ func (es *es_PE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_PE) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -192,75 +172,13 @@ func (es *es_PE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_PE' and handles both Whole and Real numbers based on 'v'
+ func (es *es_PE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_PE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_PE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_PE'
+@@ -268,56 +186,7 @@ func (es *es_PE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, es.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'es_PE'
+@@ -326,63 +195,7 @@ func (es *es_PE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, es.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, es.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, es.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'es_PE'
+@@ -415,17 +228,6 @@ func (es *es_PE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -434,19 +236,6 @@ func (es *es_PE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -455,21 +244,6 @@ func (es *es_PE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -478,15 +252,6 @@ func (es *es_PE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -495,22 +260,6 @@ func (es *es_PE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -519,26 +268,6 @@ func (es *es_PE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -547,32 +276,5 @@ func (es *es_PE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_PH/es_PH.go b/es_PH/es_PH.go
+index 4dba982..fa41ad0 100644
+--- a/es_PH/es_PH.go
++++ b/es_PH/es_PH.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type es_PH struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'es_PH' locale
+ func New() locales.Translator {
+ return &es_PH{
+- locale: "es_PH",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "₱", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"ChST": "hora estándar de Chamorro", "GFT": "hora de la Guayana Francesa", "HENOMX": "hora de verano del noroeste de México", "EDT": "hora de verano oriental", "UYT": "hora estándar de Uruguay", "HADT": "hora de verano de Hawái-Aleutiano", "HAT": "hora de verano de Terranova", "CHAST": "hora estándar de Chatham", "HNPMX": "hora estándar del Pacífico de México", "WIT": "hora de Indonesia oriental", "OEZ": "hora estándar de Europa oriental", "WART": "hora estándar de Argentina occidental", "HNOG": "hora estándar de Groenlandia occidental", "MESZ": "hora de verano de Europa central", "LHST": "hora estándar de Lord Howe", "NZST": "hora estándar de Nueva Zelanda", "CHADT": "hora de verano de Chatham", "CLST": "hora de verano de Chile", "TMT": "hora estándar de Turkmenistán", "HEPMX": "hora de verano del Pacífico de México", "HAST": "hora estándar de Hawái-Aleutiano", "HNT": "hora estándar de Terranova", "ART": "hora estándar de Argentina", "AEDT": "hora de verano de Australia oriental", "CDT": "hora de verano central", "SRT": "hora de Surinam", "ACST": "hora estándar de Australia central", "ADT": "hora de verano del Atlántico", "HNEG": "hora estándar de Groenlandia oriental", "EAT": "hora de África oriental", "COST": "hora de verano de Colombia", "NZDT": "hora de verano de Nueva Zelanda", "ACDT": "hora de verano de Australia central", "WAST": "hora de verano de África occidental", "HNCU": "hora estándar de Cuba", "HKT": "hora estándar de Hong Kong", "HECU": "hora de verano de Cuba", "AKST": "hora estándar de Alaska", "CST": "hora estándar central", "VET": "hora de Venezuela", "ACWST": "hora estándar de Australia centroccidental", "ARST": "hora de verano de Argentina", "PST": "hora estándar del Pacífico", "WEZ": "hora estándar de Europa occidental", "ACWDT": "hora de verano de Australia centroccidental", "HKST": "hora de verano de Hong Kong", "PDT": "hora de verano del Pacífico", "AWST": "hora estándar de Australia occidental", "OESZ": "hora de verano de Europa oriental", "EST": "hora estándar oriental", "MST": "Hora estándar de Macao", "MYT": "hora de Malasia", "UYST": "hora de verano de Uruguay", "AKDT": "hora de verano de Alaska", "MEZ": "hora estándar de Europa central", "JDT": "hora de verano de Japón", "HEEG": "hora de verano de Groenlandia oriental", "TMST": "hora de verano de Turkmenistán", "ECT": "hora de Ecuador", "SGT": "hora de Singapur", "AST": "hora estándar del Atlántico", "WIB": "hora de Indonesia occidental", "WESZ": "hora de verano de Europa occidental", "AEST": "hora estándar de Australia oriental", "WARST": "hora de verano de Argentina occidental", "BT": "hora de Bután", "HEPM": "hora de verano de San Pedro y Miquelón", "LHDT": "hora de verano de Lord Howe", "HNNOMX": "hora estándar del noroeste de México", "MDT": "Hora de verano de Macao", "HEOG": "hora de verano de Groenlandia occidental", "WITA": "hora de Indonesia central", "WAT": "hora estándar de África occidental", "CAT": "hora de África central", "AWDT": "hora de verano de Australia occidental", "HNPM": "hora estándar de San Pedro y Miquelón", "SAST": "hora de Sudáfrica", "∅∅∅": "hora de verano del Amazonas", "BOT": "hora de Bolivia", "GMT": "hora del meridiano de Greenwich", "GYT": "hora de Guyana", "IST": "hora estándar de la India", "CLT": "hora estándar de Chile", "JST": "hora estándar de Japón", "COT": "hora estándar de Colombia"},
++ locale: "es_PH",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "₱", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"NZST": "NZST", "OESZ": "OESZ", "WIT": "WIT", "HNT": "HNT", "HNOG": "HNOG", "EDT": "EDT", "ART": "ART", "BT": "BT", "PDT": "PDT", "GFT": "GFT", "HAT": "HAT", "ACWDT": "ACWDT", "HECU": "HECU", "CAT": "CAT", "MDT": "MDT", "HENOMX": "HENOMX", "UYST": "UYST", "WARST": "WARST", "COST": "COST", "VET": "VET", "AKDT": "AKDT", "HEOG": "HEOG", "HNNOMX": "HNNOMX", "AWST": "AWST", "AWDT": "AWDT", "CHADT": "CHADT", "PST": "PST", "WITA": "WITA", "WESZ": "WESZ", "OEZ": "OEZ", "TMST": "TMST", "CLST": "CLST", "CST": "CST", "CHAST": "CHAST", "UYT": "UYT", "HNCU": "HNCU", "WART": "WART", "CLT": "CLT", "ADT": "ADT", "HADT": "HADT", "AKST": "AKST", "SAST": "SAST", "ECT": "ECT", "AEDT": "AEDT", "HNPMX": "HNPMX", "EST": "EST", "HKST": "HKST", "AST": "AST", "GYT": "GYT", "TMT": "TMT", "MESZ": "MESZ", "HNPM": "HNPM", "JST": "JST", "ChST": "ChST", "MST": "MST", "HAST": "HAST", "HNEG": "HNEG", "HEEG": "HEEG", "LHDT": "LHDT", "AEST": "AEST", "∅∅∅": "∅∅∅", "COT": "COT", "CDT": "CDT", "MEZ": "MEZ", "ACDT": "ACDT", "HEPM": "HEPM", "NZDT": "NZDT", "GMT": "GMT", "SRT": "SRT", "MYT": "MYT", "LHST": "LHST", "HKT": "HKT", "BOT": "BOT", "WAST": "WAST", "WEZ": "WEZ", "ACST": "ACST", "JDT": "JDT", "ACWST": "ACWST", "IST": "IST", "HEPMX": "HEPMX", "ARST": "ARST", "EAT": "EAT", "SGT": "SGT", "WAT": "WAT", "WIB": "WIB"},
+ }
+ }
+ 
+@@ -126,7 +101,7 @@ func (es *es_PH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_PH) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +111,7 @@ func (es *es_PH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_PH) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +121,7 @@ func (es *es_PH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_PH) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,75 +167,13 @@ func (es *es_PH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_PH' and handles both Whole and Real numbers based on 'v'
+ func (es *es_PH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_PH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_PH) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_PH'
+@@ -268,56 +181,7 @@ func (es *es_PH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, es.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'es_PH'
+@@ -326,63 +190,7 @@ func (es *es_PH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, es.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, es.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, es.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'es_PH'
+@@ -390,17 +198,6 @@ func (es *es_PH) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -409,17 +206,6 @@ func (es *es_PH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -428,19 +214,6 @@ func (es *es_PH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,21 +222,6 @@ func (es *es_PH) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/es_PR/es_PR.go b/es_PR/es_PR.go
+index 2a7b9e7..2e7c1bb 100644
+--- a/es_PR/es_PR.go
++++ b/es_PR/es_PR.go
+@@ -10,70 +10,48 @@ import (
+ )
+ 
+ type es_PR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'es_PR' locale
+ func New() locales.Translator {
+ return &es_PR{
+- locale: "es_PR",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"BT": "hora de Bután", "AWST": "hora estándar de Australia occidental", "AEST": "hora estándar de Australia oriental", "HNPM": "hora estándar de San Pedro y Miquelón", "CLT": "hora estándar de Chile", "HEEG": "hora de verano de Groenlandia oriental", "WART": "hora estándar de Argentina occidental", "HNCU": "hora estándar de Cuba", "LHDT": "hora de verano de Lord Howe", "MST": "Hora estándar de Macao", "HEPMX": "hora de verano del Pacífico de México", "AEDT": "hora de verano de Australia oriental", "HEPM": "hora de verano de San Pedro y Miquelón", "SAST": "hora de Sudáfrica", "ChST": "hora estándar de Chamorro", "CAT": "hora de África central", "WARST": "hora de verano de Argentina occidental", "LHST": "hora estándar de Lord Howe", "NZST": "hora estándar de Nueva Zelanda", "CDT": "hora de verano central", "GYT": "hora de Guyana", "UYT": "hora estándar de Uruguay", "AWDT": "hora de verano de Australia occidental", "BOT": "hora de Bolivia", "WAST": "hora de verano de África occidental", "OEZ": "hora estándar de Europa oriental", "COT": "hora estándar de Colombia", "HKST": "hora de verano de Hong Kong", "WITA": "hora de Indonesia central", "ACWDT": "hora de verano de Australia centroccidental", "GFT": "hora de la Guayana Francesa", "ACDT": "hora de verano de Australia central", "MDT": "Hora de verano de Macao", "AKDT": "hora de verano de Alaska", "HNNOMX": "hora estándar del noroeste de México", "UYST": "hora de verano de Uruguay", "WIT": "hora de Indonesia oriental", "ADT": "hora de verano del Atlántico", "WESZ": "hora de verano de Europa occidental", "ACWST": "hora estándar de Australia centroccidental", "HNT": "hora estándar de Terranova", "∅∅∅": "hora de verano del Amazonas", "OESZ": "hora de verano de Europa oriental", "GMT": "hora del meridiano de Greenwich", "AKST": "hora estándar de Alaska", "PST": "hora estándar del Pacífico", "MEZ": "hora estándar de Europa central", "EST": "hora estándar oriental", "CHADT": "hora de verano de Chatham", "SRT": "hora de Surinam", "HNOG": "hora estándar de Groenlandia occidental", "CHAST": "hora estándar de Chatham", "JDT": "hora de verano de Japón", "COST": "hora de verano de Colombia", "HNPMX": "hora estándar del Pacífico de México", "HAST": "hora estándar de Hawái-Aleutiano", "WEZ": "hora estándar de Europa occidental", "PDT": "hora de verano del Pacífico", "IST": "hora estándar de la India", "EDT": "hora de verano oriental", "VET": "hora de Venezuela", "HADT": "hora de verano de Hawái-Aleutiano", "EAT": "hora de África oriental", "HENOMX": "hora de verano del noroeste de México", "NZDT": "hora de verano de Nueva Zelanda", "HEOG": "hora de verano de Groenlandia occidental", "ARST": "hora de verano de Argentina", "JST": "hora estándar de Japón", "CST": "hora estándar central", "AST": "hora estándar del Atlántico", "WIB": "hora de Indonesia occidental", "ACST": "hora estándar de Australia central", "SGT": "hora de Singapur", "ART": "hora estándar de Argentina", "CLST": "hora de verano de Chile", "HNEG": "hora estándar de Groenlandia oriental", "TMT": "hora estándar de Turkmenistán", "MYT": "hora de Malasia", "HAT": "hora de verano de Terranova", "HKT": "hora estándar de Hong Kong", "MESZ": "hora de verano de Europa central", "TMST": "hora de verano de Turkmenistán", "WAT": "hora estándar de África occidental", "ECT": "hora de Ecuador", "HECU": "hora de verano de Cuba"},
++ locale: "es_PR",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"a. m.", "p. m."},
++ periodsNarrow: []string{"a. m.", "p. m."},
++ periodsWide: []string{"a. m.", "p. m."},
++ timezones: map[string]string{"ARST": "ARST", "EAT": "EAT", "WART": "WART", "WITA": "WITA", "NZDT": "NZDT", "SRT": "SRT", "LHST": "LHST", "PDT": "PDT", "HKT": "HKT", "ADT": "ADT", "ART": "ART", "ACWDT": "ACWDT", "HNT": "HNT", "HEOG": "HEOG", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "VET": "VET", "SAST": "SAST", "MST": "MST", "ACST": "ACST", "JDT": "JDT", "HECU": "HECU", "CST": "CST", "HENOMX": "HENOMX", "AEST": "AEST", "WESZ": "WESZ", "WAT": "WAT", "HNOG": "HNOG", "CAT": "CAT", "HADT": "HADT", "MEZ": "MEZ", "WEZ": "WEZ", "PST": "PST", "AKDT": "AKDT", "CLST": "CLST", "HAST": "HAST", "ACDT": "ACDT", "HEEG": "HEEG", "CDT": "CDT", "UYST": "UYST", "HEPMX": "HEPMX", "GFT": "GFT", "GMT": "GMT", "MYT": "MYT", "WARST": "WARST", "EDT": "EDT", "CHAST": "CHAST", "OESZ": "OESZ", "HAT": "HAT", "AWST": "AWST", "IST": "IST", "ACWST": "ACWST", "AST": "AST", "ChST": "ChST", "HNEG": "HNEG", "HNPMX": "HNPMX", "GYT": "GYT", "SGT": "SGT", "AWDT": "AWDT", "HNPM": "HNPM", "HEPM": "HEPM", "UYT": "UYT", "WAST": "WAST", "WIT": "WIT", "WIB": "WIB", "MESZ": "MESZ", "LHDT": "LHDT", "JST": "JST", "AKST": "AKST", "OEZ": "OEZ", "COT": "COT", "COST": "COST", "HKST": "HKST", "MDT": "MDT", "HNNOMX": "HNNOMX", "BT": "BT", "NZST": "NZST", "ECT": "ECT", "TMT": "TMT", "TMST": "TMST", "CLT": "CLT", "EST": "EST", "BOT": "BOT", "AEDT": "AEDT", "HNCU": "HNCU"},
+ }
+ }
+ 
+@@ -126,7 +104,7 @@ func (es *es_PR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_PR) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +114,7 @@ func (es *es_PR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_PR) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +124,7 @@ func (es *es_PR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_PR) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,75 +170,13 @@ func (es *es_PR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_PR' and handles both Whole and Real numbers based on 'v'
+ func (es *es_PR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_PR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_PR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_PR'
+@@ -268,56 +184,7 @@ func (es *es_PR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, es.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'es_PR'
+@@ -326,63 +193,7 @@ func (es *es_PR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, es.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, es.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, es.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'es_PR'
+@@ -448,19 +259,6 @@ func (es *es_PR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -469,21 +267,6 @@ func (es *es_PR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/es_PY/es_PY.go b/es_PY/es_PY.go
+index 6bde1fd..e4ed453 100644
+--- a/es_PY/es_PY.go
++++ b/es_PY/es_PY.go
+@@ -18,7 +18,6 @@ type es_PY struct {
+ group string
+ minus string
+ percent string
+- percentSuffix string
+ perMille string
+ timeSeparator string
+ inifinity string
+@@ -51,29 +50,16 @@ func New() locales.Translator {
+ pluralsRange: []locales.PluralRule{6},
+ decimal: ",",
+ group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "Gs.", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: " ",
+ monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+ daysShort: []string{"do", "lu", "ma", "mi", "ju", "vi", "sa"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+ periodsAbbreviated: []string{"a. m.", "p. m."},
+ periodsNarrow: []string{"a. m.", "p. m."},
+ periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"LHDT": "hora de verano de Lord Howe", "CLT": "hora estándar de Chile", "HEEG": "hora de verano de Groenlandia oriental", "WAST": "hora de verano de África occidental", "WART": "hora estándar de Argentina occidental", "HNCU": "hora estándar de Cuba", "EST": "hora estándar oriental", "SAST": "hora de Sudáfrica", "TMST": "hora de verano de Turkmenistán", "WAT": "hora estándar de África occidental", "HENOMX": "hora de verano del noroeste de México", "AKST": "hora estándar de Alaska", "AWDT": "hora de verano de Australia occidental", "IST": "hora estándar de la India", "ECT": "hora de Ecuador", "HADT": "hora de verano de Hawái-Aleutiano", "GFT": "hora de la Guayana Francesa", "HNEG": "hora estándar de Groenlandia oriental", "CHADT": "hora de verano de Chatham", "PDT": "hora de verano del Pacífico", "HEPM": "hora de verano de San Pedro y Miquelón", "JDT": "hora de verano de Japón", "ChST": "hora estándar de Chamorro", "BT": "hora de Bután", "CDT": "hora de verano central", "HAST": "hora estándar de Hawái-Aleutiano", "ACWST": "hora estándar de Australia centroccidental", "MST": "Hora estándar de Macao", "HEPMX": "hora de verano del Pacífico de México", "MYT": "hora de Malasia", "WEZ": "hora estándar de Europa occidental", "EAT": "hora de África oriental", "COT": "hora estándar de Colombia", "HNPMX": "hora estándar del Pacífico de México", "WESZ": "hora de verano de Europa occidental", "ACWDT": "hora de verano de Australia centroccidental", "HKST": "hora de verano de Hong Kong", "HNPM": "hora estándar de San Pedro y Miquelón", "JST": "hora estándar de Japón", "BOT": "hora de Bolivia", "ACST": "hora estándar de Australia central", "HNT": "hora estándar de Terranova", "ACDT": "hora de verano de Australia central", "WITA": "hora de Indonesia central", "AWST": "hora estándar de Australia occidental", "NZDT": "hora de verano de Nueva Zelanda", "COST": "hora de verano de Colombia", "GMT": "hora del meridiano de Greenwich", "UYST": "hora de verano de Uruguay", "AEST": "hora estándar de Australia oriental", "LHST": "hora estándar de Lord Howe", "CAT": "hora de África central", "SGT": "hora de Singapur", "PST": "hora estándar del Pacífico", "MDT": "Hora de verano de Macao", "WIB": "hora de Indonesia occidental", "HNNOMX": "hora estándar del noroeste de México", "EDT": "hora de verano oriental", "ART": "hora estándar de Argentina", "HKT": "hora estándar de Hong Kong", "MEZ": "hora estándar de Europa central", "MESZ": "hora de verano de Europa central", "CLST": "hora de verano de Chile", "∅∅∅": "hora de verano del Amazonas", "TMT": "hora estándar de Turkmenistán", "ADT": "hora de verano del Atlántico", "OEZ": "hora estándar de Europa oriental", "SRT": "hora de Surinam", "CHAST": "hora estándar de Chatham", "NZST": "hora estándar de Nueva Zelanda", "WARST": "hora de verano de Argentina occidental", "HECU": "hora de verano de Cuba", "VET": "hora de Venezuela", "UYT": "hora estándar de Uruguay", "AKDT": "hora de verano de Alaska", "HAT": "hora de verano de Terranova", "HNOG": "hora estándar de Groenlandia occidental", "HEOG": "hora de verano de Groenlandia occidental", "AEDT": "hora de verano de Australia oriental", "OESZ": "hora de verano de Europa oriental", "GYT": "hora de Guyana", "AST": "hora estándar del Atlántico", "WIT": "hora de Indonesia oriental", "ARST": "hora de verano de Argentina", "CST": "hora estándar central"},
++ timezones: map[string]string{"GFT": "GFT", "MST": "MST", "ART": "ART", "BOT": "BOT", "MEZ": "MEZ", "ACDT": "ACDT", "HEPM": "HEPM", "AKDT": "AKDT", "TMT": "TMT", "NZDT": "NZDT", "HEPMX": "HEPMX", "HNOG": "HNOG", "SRT": "SRT", "ACST": "ACST", "LHST": "LHST", "AEST": "AEST", "CHADT": "CHADT", "WAT": "WAT", "COT": "COT", "HNPM": "HNPM", "AWST": "AWST", "HAT": "HAT", "MDT": "MDT", "∅∅∅": "∅∅∅", "TMST": "TMST", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "HNCU": "HNCU", "OESZ": "OESZ", "HNT": "HNT", "CAT": "CAT", "CLST": "CLST", "ADT": "ADT", "UYST": "UYST", "WEZ": "WEZ", "VET": "VET", "EDT": "EDT", "CST": "CST", "ACWST": "ACWST", "PDT": "PDT", "WAST": "WAST", "WART": "WART", "EST": "EST", "WIB": "WIB", "EAT": "EAT", "GYT": "GYT", "ECT": "ECT", "NZST": "NZST", "MYT": "MYT", "WESZ": "WESZ", "AKST": "AKST", "HADT": "HADT", "AWDT": "AWDT", "HNPMX": "HNPMX", "AST": "AST", "HENOMX": "HENOMX", "PST": "PST", "HKST": "HKST", "CDT": "CDT", "JDT": "JDT", "AEDT": "AEDT", "SGT": "SGT", "SAST": "SAST", "HKT": "HKT", "ChST": "ChST", "HNEG": "HNEG", "HEEG": "HEEG", "UYT": "UYT", "HECU": "HECU", "WARST": "WARST", "COST": "COST", "BT": "BT", "ARST": "ARST", "GMT": "GMT", "HAST": "HAST", "MESZ": "MESZ", "JST": "JST", "LHDT": "LHDT", "IST": "IST", "OEZ": "OEZ", "CLT": "CLT", "WITA": "WITA", "CHAST": "CHAST", "WIT": "WIT", "HEOG": "HEOG"},
+ }
+ }
+ 
+@@ -136,7 +122,7 @@ func (es *es_PY) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_PY) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +132,7 @@ func (es *es_PY) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_PY) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,75 +178,13 @@ func (es *es_PY) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_PY' and handles both Whole and Real numbers based on 'v'
+ func (es *es_PY) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_PY' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_PY) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_PY'
+@@ -268,7 +192,7 @@ func (es *es_PY) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -330,7 +254,7 @@ func (es *es_PY) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -403,17 +327,6 @@ func (es *es_PY) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -422,17 +335,6 @@ func (es *es_PY) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -441,19 +343,6 @@ func (es *es_PY) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,21 +351,6 @@ func (es *es_PY) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -485,15 +359,6 @@ func (es *es_PY) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -502,22 +367,6 @@ func (es *es_PY) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +375,6 @@ func (es *es_PY) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -554,32 +383,5 @@ func (es *es_PY) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_SV/es_SV.go b/es_SV/es_SV.go
+index 30aa0bb..3ffabe8 100644
+--- a/es_SV/es_SV.go
++++ b/es_SV/es_SV.go
+@@ -10,70 +10,48 @@ import (
+ )
+ 
+ type es_SV struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'es_SV' locale
+ func New() locales.Translator {
+ return &es_SV{
+- locale: "es_SV",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"a. m.", "p. m."},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"SRT": "hora de Surinam", "EAT": "hora de África oriental", "WARST": "hora de verano de Argentina occidental", "ACDT": "hora de verano de Australia central", "MYT": "hora de Malasia", "ECT": "hora de Ecuador", "AKST": "hora estándar de Alaska", "HNOG": "hora estándar de Groenlandia occidental", "HKST": "hora de verano de Hong Kong", "JDT": "hora de verano de Japón", "ACST": "hora estándar de Australia central", "WAT": "hora estándar de África occidental", "HEEG": "hora de verano de Groenlandia oriental", "UYT": "hora estándar de Uruguay", "WIB": "hora de Indonesia occidental", "BT": "hora de Bután", "ACWST": "hora estándar de Australia centroccidental", "HNPM": "hora estándar de San Pedro y Miquelón", "HNEG": "hora estándar de Groenlandia oriental", "WESZ": "hora de verano de Europa occidental", "AEDT": "hora de verano de Australia oriental", "MEZ": "hora estándar de Europa central", "JST": "hora estándar de Japón", "AST": "hora estándar del Atlántico", "CST": "hora estándar central", "HEOG": "hora de verano de Groenlandia occidental", "HKT": "hora estándar de Hong Kong", "CHADT": "hora de verano de Chatham", "OESZ": "hora de verano de Europa oriental", "HNNOMX": "hora estándar del noroeste de México", "MST": "hora estándar de las Montañas", "MDT": "hora de verano de las Montañas", "CHAST": "hora estándar de Chatham", "TMT": "hora estándar de Turkmenistán", "WEZ": "hora estándar de Europa occidental", "SAST": "hora de Sudáfrica", "GFT": "hora de la Guayana Francesa", "CAT": "hora de África central", "SGT": "hora de Singapur", "GYT": "hora de Guyana", "AWDT": "hora de verano de Australia occidental", "NZST": "hora estándar de Nueva Zelanda", "TMST": "hora de verano de Turkmenistán", "WART": "hora estándar de Argentina occidental", "GMT": "hora del meridiano de Greenwich", "HAST": "hora estándar de Hawái-Aleutiano", "ART": "hora estándar de Argentina", "HEPM": "hora de verano de San Pedro y Miquelón", "BOT": "hora de Bolivia", "HNPMX": "hora estándar del Pacífico de México", "MESZ": "hora de verano de Europa central", "NZDT": "hora de verano de Nueva Zelanda", "ChST": "hora estándar de Chamorro", "HNCU": "hora estándar de Cuba", "HECU": "hora de verano de Cuba", "EST": "hora estándar oriental", "EDT": "hora de verano oriental", "HNT": "hora estándar de Terranova", "AEST": "hora estándar de Australia oriental", "LHDT": "hora de verano de Lord Howe", "∅∅∅": "hora de verano del Amazonas", "COT": "hora estándar de Colombia", "OEZ": "hora estándar de Europa oriental", "UYST": "hora de verano de Uruguay", "VET": "hora de Venezuela", "WIT": "hora de Indonesia oriental", "PST": "hora estándar del Pacífico", "HAT": "hora de verano de Terranova", "WITA": "hora de Indonesia central", "CDT": "hora de verano central", "PDT": "hora de verano del Pacífico", "IST": "hora estándar de la India", "CLT": "hora estándar de Chile", "HEPMX": "hora de verano del Pacífico de México", "AKDT": "hora de verano de Alaska", "COST": "hora de verano de Colombia", "HENOMX": "hora de verano del noroeste de México", "ADT": "hora de verano del Atlántico", "HADT": "hora de verano de Hawái-Aleutiano", "ACWDT": "hora de verano de Australia centroccidental", "AWST": "hora estándar de Australia occidental", "LHST": "hora estándar de Lord Howe", "CLST": "hora de verano de Chile", "ARST": "hora de verano de Argentina", "WAST": "hora de verano de África occidental"},
++ locale: "es_SV",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"a. m.", "p. m."},
++ periodsNarrow: []string{"a. m.", "p. m."},
++ periodsWide: []string{"a. m.", "p. m."},
++ timezones: map[string]string{"ART": "ART", "HADT": "HADT", "CDT": "CDT", "WAT": "WAT", "HAT": "HAT", "COT": "COT", "HNOG": "HNOG", "HAST": "HAST", "BT": "BT", "HECU": "HECU", "OESZ": "OESZ", "HKST": "HKST", "ECT": "ECT", "BOT": "BOT", "AEST": "AEST", "WESZ": "WESZ", "HEEG": "HEEG", "LHST": "LHST", "IST": "IST", "HEPMX": "HEPMX", "WIT": "WIT", "TMT": "TMT", "CLT": "CLT", "EAT": "EAT", "WITA": "WITA", "MST": "MST", "SRT": "SRT", "ACST": "ACST", "WAST": "WAST", "HNT": "HNT", "COST": "COST", "CAT": "CAT", "JST": "JST", "AWDT": "AWDT", "CHAST": "CHAST", "VET": "VET", "AKST": "AKST", "TMST": "TMST", "EDT": "EDT", "MESZ": "MESZ", "CHADT": "CHADT", "HNCU": "HNCU", "OEZ": "OEZ", "WIB": "WIB", "CST": "CST", "LHDT": "LHDT", "HNEG": "HNEG", "UYT": "UYT", "EST": "EST", "HKT": "HKT", "MDT": "MDT", "ARST": "ARST", "HENOMX": "HENOMX", "MYT": "MYT", "JDT": "JDT", "AWST": "AWST", "∅∅∅": "∅∅∅", "CLST": "CLST", "NZST": "NZST", "ChST": "ChST", "UYST": "UYST", "SAST": "SAST", "GMT": "GMT", "PST": "PST", "GFT": "GFT", "ACWST": "ACWST", "PDT": "PDT", "AST": "AST", "HEPM": "HEPM", "ACWDT": "ACWDT", "HNPM": "HNPM", "HNPMX": "HNPMX", "WARST": "WARST", "HEOG": "HEOG", "GYT": "GYT", "NZDT": "NZDT", "MEZ": "MEZ", "ACDT": "ACDT", "AEDT": "AEDT", "SGT": "SGT", "WEZ": "WEZ", "AKDT": "AKDT", "WART": "WART", "ADT": "ADT", "HNNOMX": "HNNOMX"},
+ }
+ }
+ 
+@@ -126,7 +104,7 @@ func (es *es_SV) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_SV) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +114,7 @@ func (es *es_SV) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_SV) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +124,7 @@ func (es *es_SV) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_SV) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,75 +170,13 @@ func (es *es_SV) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_SV' and handles both Whole and Real numbers based on 'v'
+ func (es *es_SV) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_SV' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_SV) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_SV'
+@@ -268,56 +184,7 @@ func (es *es_SV) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, es.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'es_SV'
+@@ -326,63 +193,7 @@ func (es *es_SV) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, es.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, es.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, es.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'es_SV'
+@@ -390,17 +201,6 @@ func (es *es_SV) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -409,17 +209,6 @@ func (es *es_SV) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -428,19 +217,6 @@ func (es *es_SV) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,21 +225,6 @@ func (es *es_SV) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -472,15 +233,6 @@ func (es *es_SV) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -489,22 +241,6 @@ func (es *es_SV) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -513,26 +249,6 @@ func (es *es_SV) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -541,32 +257,5 @@ func (es *es_SV) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_US/es_US.go b/es_US/es_US.go
+index c04dc0b..e3209f7 100644
+--- a/es_US/es_US.go
++++ b/es_US/es_US.go
+@@ -10,70 +10,48 @@ import (
+ )
+ 
+ type es_US struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'es_US' locale
+ func New() locales.Translator {
+ return &es_US{
+- locale: "es_US",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "¥", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "lei", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+- periodsAbbreviated: []string{"a. m.", "p. m."},
+- periodsNarrow: []string{"", ""},
+- periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"WART": "hora estándar de Argentina occidental", "GMT": "hora del meridiano de Greenwich", "EDT": "hora de verano oriental", "UYT": "hora estándar de Uruguay", "HEPM": "hora de verano de San Pedro y Miquelón", "CHADT": "hora de verano de Chatham", "JDT": "hora de verano de Japón", "HNEG": "hora estándar de Groenlandia oriental", "HADT": "hora de verano de Hawái-Aleutiano", "ACWDT": "hora de verano de Australia centroccidental", "MESZ": "hora de verano de Europa central", "EAT": "hora de África oriental", "EST": "hora estándar oriental", "GYT": "hora de Guyana", "HNT": "hora estándar de Terranova", "AWDT": "hora de verano de Australia occidental", "TMT": "hora estándar de Turkmenistán", "WAST": "hora de verano de África occidental", "ACWST": "hora estándar de Australia centroccidental", "MEZ": "hora estándar de Europa central", "WEZ": "hora estándar de Europa occidental", "AST": "hora estándar del Atlántico", "HNPM": "hora estándar de San Pedro y Miquelón", "ACDT": "hora de verano de Australia central", "HECU": "hora de verano de Cuba", "HEPMX": "hora de verano del Pacífico de México", "WARST": "hora de verano de Argentina occidental", "HAST": "hora estándar de Hawái-Aleutiano", "PST": "hora estándar del Pacífico", "LHST": "hora estándar de Lord Howe", "NZDT": "hora de verano de Nueva Zelanda", "CHAST": "hora estándar de Chatham", "WAT": "hora estándar de África occidental", "JST": "hora estándar de Japón", "AWST": "hora estándar de Australia occidental", "NZST": "hora estándar de Nueva Zelanda", "IST": "hora estándar de la India", "CLST": "hora de verano de Chile", "AEDT": "hora de verano de Australia oriental", "BOT": "hora de Bolivia", "AKDT": "hora de verano de Alaska", "HNOG": "hora estándar de Groenlandia occidental", "WITA": "hora de Indonesia central", "WIB": "hora de Indonesia occidental", "HAT": "hora de verano de Terranova", "ARST": "hora de verano de Argentina", "AEST": "hora estándar de Australia oriental", "LHDT": "hora de verano de Lord Howe", "HEEG": "hora de verano de Groenlandia oriental", "HENOMX": "hora de verano del noroeste de México", "UYST": "hora de verano de Uruguay", "ART": "hora estándar de Argentina", "HEOG": "hora de verano de Groenlandia occidental", "PDT": "hora de verano del Pacífico", "HKT": "hora estándar de Hong Kong", "TMST": "hora de verano de Turkmenistán", "CAT": "hora de África central", "MDT": "Hora de verano de Macao", "CLT": "hora estándar de Chile", "MYT": "hora de Malasia", "OEZ": "hora estándar de Europa oriental", "HNNOMX": "hora estándar del noroeste de México", "HNCU": "hora estándar de Cuba", "CDT": "hora de verano central", "MST": "Hora estándar de Macao", "HNPMX": "hora estándar del Pacífico de México", "AKST": "hora estándar de Alaska", "WESZ": "hora de verano de Europa occidental", "HKST": "hora de verano de Hong Kong", "SAST": "hora de Sudáfrica", "ECT": "hora de Ecuador", "SGT": "hora de Singapur", "WIT": "hora de Indonesia oriental", "SRT": "hora de Surinam", "BT": "hora de Bután", "∅∅∅": "hora de verano del Amazonas", "GFT": "hora de la Guayana Francesa", "COT": "hora estándar de Colombia", "ADT": "hora de verano del Atlántico", "CST": "hora estándar central", "VET": "hora de Venezuela", "ChST": "hora de Chamorro", "ACST": "hora estándar de Australia central", "OESZ": "hora de verano de Europa oriental", "COST": "hora de verano de Colombia"},
++ locale: "es_US",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "¥", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "lei", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"a. m.", "p. m."},
++ periodsNarrow: []string{"", ""},
++ periodsWide: []string{"a. m.", "p. m."},
++ timezones: map[string]string{"EDT": "EDT", "WIB": "WIB", "ADT": "ADT", "HNEG": "HNEG", "ACWST": "ACWST", "HECU": "HECU", "HEPMX": "HEPMX", "AKST": "AKST", "OESZ": "OESZ", "WARST": "WARST", "HKST": "HKST", "HNNOMX": "HNNOMX", "MESZ": "MESZ", "UYST": "UYST", "BT": "BT", "SRT": "SRT", "VET": "VET", "BOT": "BOT", "ACDT": "ACDT", "CHADT": "CHADT", "WEZ": "WEZ", "SGT": "SGT", "HAT": "HAT", "AST": "AST", "JST": "JST", "JDT": "JDT", "∅∅∅": "∅∅∅", "GYT": "GYT", "COST": "COST", "MST": "MST", "UYT": "UYT", "HNCU": "HNCU", "CLT": "CLT", "ECT": "ECT", "CDT": "CDT", "MDT": "MDT", "HAST": "HAST", "LHST": "LHST", "CHAST": "CHAST", "GFT": "GFT", "HNOG": "HNOG", "SAST": "SAST", "HEEG": "HEEG", "AWST": "AWST", "AKDT": "AKDT", "WITA": "WITA", "NZST": "NZST", "ChST": "hora de Chamorro", "HADT": "HADT", "HEPM": "HEPM", "PDT": "PDT", "OEZ": "OEZ", "WART": "WART", "TMT": "TMT", "CST": "CST", "ARST": "ARST", "MEZ": "MEZ", "HNT": "HNT", "CAT": "CAT", "HENOMX": "HENOMX", "IST": "IST", "HEOG": "HEOG", "MYT": "MYT", "ACWDT": "ACWDT", "AEST": "AEST", "AEDT": "AEDT", "HKT": "HKT", "NZDT": "NZDT", "EAT": "EAT", "ACST": "ACST", "PST": "PST", "HNPMX": "HNPMX", "WAT": "WAT", "COT": "COT", "EST": "EST", "ART": "ART", "GMT": "GMT", "AWDT": "AWDT", "LHDT": "LHDT", "WAST": "WAST", "WESZ": "WESZ", "WIT": "WIT", "TMST": "TMST", "CLST": "CLST", "HNPM": "HNPM"},
+ }
+ }
+ 
+@@ -126,7 +104,7 @@ func (es *es_US) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (es *es_US) MonthsAbbreviated() []string {
+- return es.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +114,7 @@ func (es *es_US) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_US) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +124,7 @@ func (es *es_US) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_US) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,75 +170,13 @@ func (es *es_US) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_US' and handles both Whole and Real numbers based on 'v'
+ func (es *es_US) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_US' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_US) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_US'
+@@ -268,56 +184,7 @@ func (es *es_US) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, es.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'es_US'
+@@ -326,63 +193,7 @@ func (es *es_US) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, es.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, es.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, es.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, es.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'es_US'
+@@ -390,17 +201,6 @@ func (es *es_US) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -409,17 +209,6 @@ func (es *es_US) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -428,19 +217,6 @@ func (es *es_US) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,21 +225,6 @@ func (es *es_US) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/es_UY/es_UY.go b/es_UY/es_UY.go
+index 0062cc0..be7564b 100644
+--- a/es_UY/es_UY.go
++++ b/es_UY/es_UY.go
+@@ -18,7 +18,6 @@ type es_UY struct {
+ group string
+ minus string
+ percent string
+- percentSuffix string
+ perMille string
+ timeSeparator string
+ inifinity string
+@@ -52,30 +51,17 @@ func New() locales.Translator {
+ pluralsRange: []locales.PluralRule{6},
+ decimal: ",",
+ group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "US$", "USN", "USS", "UYI", "UYP", "$", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: "( ",
+ currencyNegativeSuffix: ")",
+ monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "set.", "oct.", "nov.", "dic."},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+ monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "setiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"DO", "LU", "MA", "MI", "JU", "VI", "SA"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+ periodsAbbreviated: []string{"a. m.", "p. m."},
+ periodsNarrow: []string{"a. m.", "p. m."},
+ periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"ART": "hora estándar de Argentina", "HEOG": "hora de verano de Groenlandia occidental", "AWST": "hora estándar de Australia occidental", "MEZ": "hora estándar de Europa central", "COST": "hora de verano de Colombia", "UYST": "hora de verano de Uruguay", "COT": "hora estándar de Colombia", "MYT": "hora de Malasia", "AKDT": "hora de verano de Alaska", "AWDT": "hora de verano de Australia occidental", "HNPM": "hora estándar de San Pedro y Miquelón", "HNNOMX": "hora estándar del noroeste de México", "EDT": "hora de verano oriental", "AEDT": "hora de verano de Australia oriental", "HKT": "hora estándar de Hong Kong", "MESZ": "hora de verano de Europa central", "HEEG": "hora de verano de Groenlandia oriental", "GFT": "hora de la Guayana Francesa", "EAT": "hora de África oriental", "OEZ": "hora estándar de Europa oriental", "WART": "hora estándar de Argentina occidental", "EST": "hora estándar oriental", "AST": "hora estándar del Atlántico", "ADT": "hora de verano del Atlántico", "HNEG": "hora estándar de Groenlandia oriental", "WAST": "hora de verano de África occidental", "SGT": "hora de Singapur", "WEZ": "hora estándar de Europa occidental", "WESZ": "hora de verano de Europa occidental", "ACWST": "hora estándar de Australia centroccidental", "TMT": "hora estándar de Turkmenistán", "ACDT": "hora de verano de Australia central", "ECT": "hora de Ecuador", "HECU": "hora de verano de Cuba", "CDT": "hora de verano central", "HKST": "hora de verano de Hong Kong", "JST": "hora estándar de Japón", "WARST": "hora de verano de Argentina occidental", "HNCU": "hora estándar de Cuba", "HEPMX": "hora de verano del Pacífico de México", "CST": "hora estándar central", "SRT": "hora de Surinam", "CLST": "hora de verano de Chile", "CAT": "hora de África central", "WIB": "hora de Indonesia occidental", "PST": "hora estándar del Pacífico", "ACWDT": "hora de verano de Australia centroccidental", "HAT": "hora de verano de Terranova", "LHST": "hora estándar de Lord Howe", "CHAST": "hora estándar de Chatham", "CHADT": "hora de verano de Chatham", "JDT": "hora de verano de Japón", "CLT": "hora estándar de Chile", "ACST": "hora estándar de Australia central", "HNPMX": "hora estándar del Pacífico de México", "AKST": "hora estándar de Alaska", "HAST": "hora estándar de Hawái-Aleutiano", "NZDT": "hora de verano de Nueva Zelanda", "BOT": "hora de Bolivia", "NZST": "hora estándar de Nueva Zelanda", "WAT": "hora estándar de África occidental", "GMT": "hora del meridiano de Greenwich", "GYT": "hora de Guyana", "WIT": "hora de Indonesia oriental", "AEST": "hora estándar de Australia oriental", "WITA": "hora de Indonesia central", "LHDT": "hora de verano de Lord Howe", "∅∅∅": "hora de verano del Amazonas", "MST": "Hora estándar de Macao", "HEPM": "hora de verano de San Pedro y Miquelón", "TMST": "hora de verano de Turkmenistán", "OESZ": "hora de verano de Europa oriental", "ARST": "hora de verano de Argentina", "HNOG": "hora estándar de Groenlandia occidental", "HNT": "hora estándar de Terranova", "SAST": "hora de Sudáfrica", "HENOMX": "hora de verano del noroeste de México", "UYT": "hora estándar de Uruguay", "VET": "hora de Venezuela", "BT": "hora de Bután", "PDT": "hora de verano del Pacífico", "IST": "hora estándar de la India", "ChST": "hora estándar de Chamorro", "MDT": "Hora de verano de Macao", "HADT": "hora de verano de Hawái-Aleutiano"},
++ timezones: map[string]string{"VET": "VET", "CST": "CST", "MDT": "MDT", "WIB": "WIB", "PST": "PST", "HENOMX": "HENOMX", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "EDT": "EDT", "ARST": "ARST", "HAST": "HAST", "MST": "MST", "NZDT": "NZDT", "SRT": "SRT", "ACST": "ACST", "WAT": "WAT", "OESZ": "OESZ", "HNT": "HNT", "GYT": "GYT", "AWST": "AWST", "HNPM": "HNPM", "HEPM": "HEPM", "IST": "IST", "SAST": "SAST", "COST": "COST", "HEPMX": "HEPMX", "HAT": "HAT", "TMST": "TMST", "CLT": "CLT", "NZST": "NZST", "AST": "AST", "SGT": "SGT", "AKDT": "AKDT", "OEZ": "OEZ", "HEOG": "HEOG", "ECT": "ECT", "COT": "COT", "ADT": "ADT", "JDT": "JDT", "MYT": "MYT", "BT": "BT", "AEDT": "AEDT", "ACDT": "ACDT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "LHST": "LHST", "WEZ": "WEZ", "WITA": "WITA", "HADT": "HADT", "MEZ": "MEZ", "ACWST": "ACWST", "AKST": "AKST", "EAT": "EAT", "AWDT": "AWDT", "UYST": "UYST", "HEEG": "HEEG", "JST": "JST", "HECU": "HECU", "GFT": "GFT", "WARST": "WARST", "WIT": "WIT", "ChST": "ChST", "WAST": "WAST", "TMT": "TMT", "ACWDT": "ACWDT", "WESZ": "WESZ", "HNPMX": "HNPMX", "HKT": "HKT", "HKST": "HKST", "CHAST": "CHAST", "PDT": "PDT", "BOT": "BOT", "HNOG": "HNOG", "EST": "EST", "CLST": "CLST", "CDT": "CDT", "AEST": "AEST", "WART": "WART", "CAT": "CAT", "MESZ": "MESZ", "UYT": "UYT", "GMT": "GMT", "ART": "ART", "CHADT": "CHADT", "HNCU": "HNCU"},
+ }
+ }
+ 
+@@ -138,7 +124,7 @@ func (es *es_UY) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (es *es_UY) MonthsNarrow() []string {
+- return es.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -194,75 +180,13 @@ func (es *es_UY) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_UY' and handles both Whole and Real numbers based on 'v'
+ func (es *es_UY) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_UY' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_UY) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_UY'
+@@ -270,7 +194,7 @@ func (es *es_UY) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -332,7 +256,7 @@ func (es *es_UY) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 5 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -407,17 +331,6 @@ func (es *es_UY) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -426,17 +339,6 @@ func (es *es_UY) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -445,19 +347,6 @@ func (es *es_UY) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -466,21 +355,6 @@ func (es *es_UY) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -489,15 +363,6 @@ func (es *es_UY) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -506,22 +371,6 @@ func (es *es_UY) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -530,26 +379,6 @@ func (es *es_UY) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -558,32 +387,5 @@ func (es *es_UY) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, es.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := es.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/es_VE/es_VE.go b/es_VE/es_VE.go
+index 4a01d09..1254a18 100644
+--- a/es_VE/es_VE.go
++++ b/es_VE/es_VE.go
+@@ -18,7 +18,6 @@ type es_VE struct {
+ group string
+ minus string
+ percent string
+- percentSuffix string
+ perMille string
+ timeSeparator string
+ inifinity string
+@@ -49,27 +48,15 @@ func New() locales.Translator {
+ pluralsRange: []locales.PluralRule{6},
+ decimal: ",",
+ group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "Bs.", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+ monthsAbbreviated: []string{"", "ene.", "feb.", "mar.", "abr.", "may.", "jun.", "jul.", "ago.", "sept.", "oct.", "nov.", "dic."},
+ monthsNarrow: []string{"", "E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"},
+- daysAbbreviated: []string{"dom.", "lun.", "mar.", "mié.", "jue.", "vie.", "sáb."},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+ daysShort: []string{"Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"},
+- daysWide: []string{"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"},
+ periodsAbbreviated: []string{"a. m.", "p. m."},
+ periodsNarrow: []string{"a. m.", "p. m."},
+ periodsWide: []string{"a. m.", "p. m."},
+- erasAbbreviated: []string{"a. C.", "d. C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "después de Cristo"},
+- timezones: map[string]string{"WESZ": "hora de verano de Europa occidental", "TMST": "hora de verano de Turkmenistán", "ECT": "hora de Ecuador", "HNNOMX": "hora estándar del noroeste de México", "HNCU": "hora estándar de Cuba", "HNT": "hora estándar de Terranova", "AEST": "hora estándar de Australia oriental", "AEDT": "hora de verano de Australia oriental", "WAT": "hora estándar de África occidental", "COT": "hora estándar de Colombia", "HAST": "hora estándar de Hawái-Aleutiano", "ACWST": "hora estándar de Australia centroccidental", "ACWDT": "hora de verano de Australia centroccidental", "UYT": "hora estándar de Uruguay", "ARST": "hora de verano de Argentina", "HNOG": "hora estándar de Groenlandia occidental", "JDT": "hora de verano de Japón", "WART": "hora estándar de Argentina occidental", "COST": "hora de verano de Colombia", "CDT": "hora de verano central", "AWDT": "hora de verano de Australia occidental", "HNPM": "hora estándar de San Pedro y Miquelón", "∅∅∅": "hora de verano del Amazonas", "HECU": "hora de verano de Cuba", "GYT": "hora de Guyana", "CST": "hora estándar central", "HEOG": "hora de verano de Groenlandia occidental", "OESZ": "hora de verano de Europa oriental", "EDT": "hora de verano oriental", "HNPMX": "hora estándar del Pacífico de México", "ADT": "hora de verano del Atlántico", "AKDT": "hora de verano de Alaska", "HAT": "hora de verano de Terranova", "WITA": "hora de Indonesia central", "MESZ": "hora de verano de Europa central", "JST": "hora estándar de Japón", "GMT": "hora del meridiano de Greenwich", "AST": "hora estándar del Atlántico", "PST": "hora estándar del Pacífico", "HEPM": "hora de verano de San Pedro y Miquelón", "LHDT": "hora de verano de Lord Howe", "NZST": "hora estándar de Nueva Zelanda", "CHAST": "hora estándar de Chatham", "EST": "hora estándar oriental", "WIB": "hora de Indonesia occidental", "HADT": "hora de verano de Hawái-Aleutiano", "WIT": "hora de Indonesia oriental", "WEZ": "hora estándar de Europa occidental", "BOT": "hora de Bolivia", "HNEG": "hora estándar de Groenlandia oriental", "CAT": "hora de África central", "HENOMX": "hora de verano del noroeste de México", "MYT": "hora de Malasia", "UYST": "hora de verano de Uruguay", "LHST": "hora estándar de Lord Howe", "CLT": "hora estándar de Chile", "CLST": "hora de verano de Chile", "TMT": "hora estándar de Turkmenistán", "ACST": "hora estándar de Australia central", "ACDT": "hora de verano de Australia central", "AKST": "hora estándar de Alaska", "VET": "hora de Venezuela", "HKT": "hora estándar de Hong Kong", "NZDT": "hora de verano de Nueva Zelanda", "CHADT": "hora de verano de Chatham", "IST": "hora estándar de la India", "BT": "hora de Bután", "HEEG": "hora de verano de Groenlandia oriental", "WAST": "hora de verano de África occidental", "WARST": "hora de verano de Argentina occidental", "SGT": "hora de Singapur", "MDT": "Hora de verano de Macao", "PDT": "hora de verano del Pacífico", "AWST": "hora estándar de Australia occidental", "SAST": "hora de Sudáfrica", "ChST": "hora estándar de Chamorro", "GFT": "hora de la Guayana Francesa", "EAT": "hora de África oriental", "ART": "hora estándar de Argentina", "MEZ": "hora estándar de Europa central", "OEZ": "hora estándar de Europa oriental", "HKST": "hora de verano de Hong Kong", "MST": "Hora estándar de Macao", "HEPMX": "hora de verano del Pacífico de México", "SRT": "hora de Surinam"},
++ timezones: map[string]string{"JST": "JST", "HNOG": "HNOG", "SAST": "SAST", "HADT": "HADT", "HNEG": "HNEG", "VET": "VET", "AKST": "AKST", "WIB": "WIB", "ACWDT": "ACWDT", "PDT": "PDT", "CDT": "CDT", "MDT": "MDT", "HNPM": "HNPM", "AWST": "AWST", "WAT": "WAT", "WART": "WART", "CLT": "CLT", "CST": "CST", "MESZ": "MESZ", "HECU": "HECU", "∅∅∅": "∅∅∅", "GFT": "GFT", "NZST": "NZST", "ARST": "ARST", "SGT": "SGT", "HKT": "HKT", "ECT": "ECT", "AST": "AST", "HEPM": "HEPM", "MST": "MST", "ART": "ART", "HAST": "HAST", "HEEG": "HEEG", "AKDT": "AKDT", "OESZ": "OESZ", "WIT": "WIT", "NZDT": "NZDT", "MYT": "MYT", "HNPMX": "HNPMX", "CHADT": "CHADT", "BT": "BT", "IST": "IST", "CAT": "CAT", "WITA": "WITA", "HENOMX": "HENOMX", "LHDT": "LHDT", "EST": "EST", "MEZ": "MEZ", "WESZ": "WESZ", "GYT": "GYT", "EDT": "EDT", "BOT": "BOT", "AWDT": "AWDT", "WAST": "WAST", "OEZ": "OEZ", "HAT": "HAT", "COT": "COT", "HEPMX": "HEPMX", "AEST": "AEST", "WEZ": "WEZ", "TMT": "TMT", "ADT": "ADT", "HNNOMX": "HNNOMX", "LHST": "LHST", "HNCU": "HNCU", "COST": "COST", "ACWST": "ACWST", "AEDT": "AEDT", "CHAST": "CHAST", "HKST": "HKST", "EAT": "EAT", "UYT": "UYT", "HNT": "HNT", "TMST": "TMST", "JDT": "JDT", "UYST": "UYST", "PST": "PST", "CLST": "CLST", "ChST": "ChST", "GMT": "GMT", "SRT": "SRT", "WARST": "WARST", "HEOG": "HEOG", "ACST": "ACST", "ACDT": "ACDT"},
+ }
+ }
+ 
+@@ -142,7 +129,7 @@ func (es *es_VE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (es *es_VE) MonthsWide() []string {
+- return es.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -188,75 +175,13 @@ func (es *es_VE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'es_VE' and handles both Whole and Real numbers based on 'v'
+ func (es *es_VE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, es.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'es_VE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (es *es_VE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, es.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, es.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, es.percentSuffix...)
+-
+- b = append(b, es.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'es_VE'
+@@ -264,7 +189,7 @@ func (es *es_VE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -322,7 +247,7 @@ func (es *es_VE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := es.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -387,17 +312,6 @@ func (es *es_VE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -406,17 +320,6 @@ func (es *es_VE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -425,19 +328,6 @@ func (es *es_VE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,21 +336,6 @@ func (es *es_VE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, es.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, es.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/et/et.go b/et/et.go
+index d183b7d..09e3abb 100644
+--- a/et/et.go
++++ b/et/et.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"eKr", "pKr"},
+ erasNarrow: []string{"eKr", "pKr"},
+ erasWide: []string{"enne Kristust", "pärast Kristust"},
+- timezones: map[string]string{"TMST": "Türkmenistani suveaeg", "COT": "Colombia standardaeg", "HENOMX": "Loode-Mehhiko suveaeg", "WITA": "Kesk-Indoneesia aeg", "JDT": "Jaapani suveaeg", "EAT": "Ida-Aafrika aeg", "WART": "Lääne-Argentina standardaeg", "WARST": "Lääne-Argentina suveaeg", "NZST": "Uus-Meremaa standardaeg", "∅∅∅": "Amazonase suveaeg", "ACDT": "Kesk-Austraalia suveaeg", "ECT": "Ecuadori aeg", "CHADT": "Chathami suveaeg", "VET": "Venezuela aeg", "ART": "Argentina standardaeg", "AWST": "Lääne-Austraalia standardaeg", "AWDT": "Lääne-Austraalia suveaeg", "MEZ": "Kesk-Euroopa standardaeg", "EDT": "Idaranniku suveaeg", "UYST": "Uruguay suveaeg", "WESZ": "Lääne-Euroopa suveaeg", "MESZ": "Kesk-Euroopa suveaeg", "COST": "Colombia suveaeg", "MST": "Mäestikuvööndi standardaeg", "ACWST": "Kesk-Lääne Austraalia standardaeg", "CLT": "Tšiili standardaeg", "HEEG": "Ida-Gröönimaa suveaeg", "UYT": "Uruguay standardaeg", "ACWDT": "Kesk-Lääne Austraalia suveaeg", "CHAST": "Chathami standardaeg", "SGT": "Singapuri standardaeg", "HADT": "Hawaii-Aleuudi suveaeg", "WIB": "Lääne-Indoneesia aeg", "HAST": "Hawaii-Aleuudi standardaeg", "HEOG": "Lääne-Gröönimaa suveaeg", "PST": "Vaikse ookeani standardaeg", "IST": "India aeg", "GMT": "Greenwichi aeg", "AKDT": "Alaska suveaeg", "LHDT": "Lord Howe’i suveaeg", "JST": "Jaapani standardaeg", "BOT": "Boliivia aeg", "WAT": "Lääne-Aafrika standardaeg", "OESZ": "Ida-Euroopa suveaeg", "HNCU": "Kuuba standardaeg", "CST": "Kesk-Ameerika standardaeg", "AKST": "Alaska standardaeg", "CDT": "Kesk-Ameerika suveaeg", "HNOG": "Lääne-Gröönimaa standardaeg", "LHST": "Lord Howe’i standardaeg", "SAST": "Lõuna-Aafrika standardaeg", "AST": "Atlandi standardaeg", "MYT": "Malaisia \u200b\u200baeg", "WIT": "Ida-Indoneesia aeg", "HAT": "Newfoundlandi suveaeg", "HKST": "Hongkongi suveaeg", "CLST": "Tšiili suveaeg", "TMT": "Türkmenistani standardaeg", "CAT": "Kesk-Aafrika aeg", "GYT": "Guyana aeg", "HECU": "Kuuba suveaeg", "EST": "Idaranniku standardaeg", "WAST": "Lääne-Aafrika suveaeg", "SRT": "Suriname aeg", "PDT": "Vaikse ookeani suveaeg", "WEZ": "Lääne-Euroopa standardaeg", "GFT": "Prantsuse Guajaana aeg", "HNPMX": "Mehhiko Vaikse ookeani standardaeg", "ADT": "Atlandi suveaeg", "HNNOMX": "Loode-Mehhiko standardaeg", "HNT": "Newfoundlandi standardaeg", "HNPM": "Saint-Pierre’i ja Miqueloni standardaeg", "NZDT": "Uus-Meremaa suveaeg", "ARST": "Argentina suveaeg", "AEST": "Ida-Austraalia standardaeg", "AEDT": "Ida-Austraalia suveaeg", "HKT": "Hongkongi standardaeg", "HEPM": "Saint-Pierre’i ja Miqueloni suveaeg", "BT": "Bhutani aeg", "ChST": "Tšamorro standardaeg", "HNEG": "Ida-Gröönimaa standardaeg", "ACST": "Kesk-Austraalia standardaeg", "OEZ": "Ida-Euroopa standardaeg", "HEPMX": "Mehhiko Vaikse ookeani suveaeg", "MDT": "Mäestikuvööndi suveaeg"},
++ timezones: map[string]string{"SRT": "Suriname aeg", "MESZ": "Kesk-Euroopa suveaeg", "CDT": "Kesk-Ameerika suveaeg", "AEDT": "Ida-Austraalia suveaeg", "ART": "Argentina standardaeg", "HNEG": "Ida-Gröönimaa standardaeg", "HEEG": "Ida-Gröönimaa suveaeg", "JST": "Jaapani standardaeg", "∅∅∅": "Acre suveaeg", "HNPMX": "Mehhiko Vaikse ookeani standardaeg", "HAT": "Newfoundlandi suveaeg", "ARST": "Argentina suveaeg", "NZDT": "Uus-Meremaa suveaeg", "HNNOMX": "Loode-Mehhiko standardaeg", "CHAST": "Chathami standardaeg", "AEST": "Ida-Austraalia standardaeg", "WIB": "Lääne-Indoneesia aeg", "AWST": "Lääne-Austraalia standardaeg", "AWDT": "Lääne-Austraalia suveaeg", "LHDT": "Lord Howe’i suveaeg", "COST": "Colombia suveaeg", "WITA": "Kesk-Indoneesia aeg", "ECT": "Ecuadori aeg", "BOT": "Boliivia aeg", "ACWST": "Kesk-Lääne Austraalia standardaeg", "HECU": "Kuuba suveaeg", "HEPMX": "Mehhiko Vaikse ookeani suveaeg", "HNT": "Newfoundlandi standardaeg", "SAST": "Lõuna-Aafrika standardaeg", "HEOG": "Lääne-Gröönimaa suveaeg", "HKST": "Hongkongi suveaeg", "HAST": "Hawaii-Aleuudi standardaeg", "MEZ": "Kesk-Euroopa standardaeg", "HENOMX": "Loode-Mehhiko suveaeg", "PDT": "Vaikse ookeani suveaeg", "WAT": "Lääne-Aafrika standardaeg", "CLST": "Tšiili suveaeg", "HKT": "Hongkongi standardaeg", "CAT": "Kesk-Aafrika aeg", "ACDT": "Kesk-Austraalia suveaeg", "VET": "Venezuela aeg", "OESZ": "Ida-Euroopa suveaeg", "GFT": "Prantsuse Guajaana aeg", "EDT": "Idaranniku suveaeg", "MYT": "Malaisia \u200b\u200baeg", "GYT": "Guyana aeg", "CST": "Kesk-Ameerika standardaeg", "NZST": "Uus-Meremaa standardaeg", "ACWDT": "Kesk-Lääne Austraalia suveaeg", "WEZ": "Lääne-Euroopa standardaeg", "WART": "Lääne-Argentina standardaeg", "WIT": "Ida-Indoneesia aeg", "CLT": "Tšiili standardaeg", "HADT": "Hawaii-Aleuudi suveaeg", "LHST": "Lord Howe’i standardaeg", "UYT": "Uruguay standardaeg", "UYST": "Uruguay suveaeg", "HNCU": "Kuuba standardaeg", "ACST": "Kesk-Austraalia standardaeg", "CHADT": "Chathami suveaeg", "IST": "India aeg", "AST": "Atlandi standardaeg", "ADT": "Atlandi suveaeg", "GMT": "Greenwichi aeg", "MST": "Mäestikuvööndi standardaeg", "MDT": "Mäestikuvööndi suveaeg", "TMST": "Türkmenistani suveaeg", "EST": "Idaranniku standardaeg", "HNPM": "Saint-Pierre’i ja Miqueloni standardaeg", "AKST": "Alaska standardaeg", "WARST": "Lääne-Argentina suveaeg", "COT": "Colombia standardaeg", "HNOG": "Lääne-Gröönimaa standardaeg", "ChST": "Tšamorro standardaeg", "EAT": "Ida-Aafrika aeg", "JDT": "Jaapani suveaeg", "AKDT": "Alaska suveaeg", "OEZ": "Ida-Euroopa standardaeg", "WAST": "Lääne-Aafrika suveaeg", "TMT": "Türkmenistani standardaeg", "HEPM": "Saint-Pierre’i ja Miqueloni suveaeg", "PST": "Vaikse ookeani standardaeg", "BT": "Bhutani aeg", "WESZ": "Lääne-Euroopa suveaeg", "SGT": "Singapuri standardaeg"},
+ }
+ }
+ 
+diff --git a/et_EE/et_EE.go b/et_EE/et_EE.go
+index 40ae0a8..a4f6594 100644
+--- a/et_EE/et_EE.go
++++ b/et_EE/et_EE.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type et_EE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'et_EE' locale
+ func New() locales.Translator {
+ return &et_EE{
+- locale: "et_EE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: " ",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "jaan", "veebr", "märts", "apr", "mai", "juuni", "juuli", "aug", "sept", "okt", "nov", "dets"},
+- monthsNarrow: []string{"", "J", "V", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "jaanuar", "veebruar", "märts", "aprill", "mai", "juuni", "juuli", "august", "september", "oktoober", "november", "detsember"},
+- daysAbbreviated: []string{"P", "E", "T", "K", "N", "R", "L"},
+- daysNarrow: []string{"P", "E", "T", "K", "N", "R", "L"},
+- daysShort: []string{"P", "E", "T", "K", "N", "R", "L"},
+- daysWide: []string{"pühapäev", "esmaspäev", "teisipäev", "kolmapäev", "neljapäev", "reede", "laupäev"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"eKr", "pKr"},
+- erasNarrow: []string{"eKr", "pKr"},
+- erasWide: []string{"enne Kristust", "pärast Kristust"},
+- timezones: map[string]string{"MYT": "Malaisia \u200b\u200baeg", "AWST": "Lääne-Austraalia standardaeg", "TMST": "Türkmenistani suveaeg", "ADT": "Atlandi suveaeg", "ACST": "Kesk-Austraalia standardaeg", "ACDT": "Kesk-Austraalia suveaeg", "WAT": "Lääne-Aafrika standardaeg", "ECT": "Ecuadori aeg", "HENOMX": "Loode-Mehhiko suveaeg", "HNOG": "Lääne-Gröönimaa standardaeg", "HKT": "Hongkongi standardaeg", "JDT": "Jaapani suveaeg", "SGT": "Singapuri standardaeg", "HECU": "Kuuba suveaeg", "GYT": "Guyana aeg", "MEZ": "Kesk-Euroopa standardaeg", "∅∅∅": "Amazonase suveaeg", "OEZ": "Ida-Euroopa standardaeg", "WIT": "Ida-Indoneesia aeg", "BT": "Bhutani aeg", "CHADT": "Chathami suveaeg", "GFT": "Prantsuse Guajaana aeg", "EDT": "Idaranniku suveaeg", "ARST": "Argentina suveaeg", "WITA": "Kesk-Indoneesia aeg", "LHDT": "Lord Howe’i suveaeg", "CLST": "Tšiili suveaeg", "HNNOMX": "Loode-Mehhiko standardaeg", "UYT": "Uruguay standardaeg", "SRT": "Suriname aeg", "ACWDT": "Kesk-Lääne Austraalia suveaeg", "AEST": "Ida-Austraalia standardaeg", "HEPMX": "Mehhiko Vaikse ookeani suveaeg", "WESZ": "Lääne-Euroopa suveaeg", "HAT": "Newfoundlandi suveaeg", "HEEG": "Ida-Gröönimaa suveaeg", "HEPM": "Saint-Pierre’i ja Miqueloni suveaeg", "ChST": "Tšamorro standardaeg", "GMT": "Greenwichi aeg", "MDT": "MDT", "UYST": "Uruguay suveaeg", "WIB": "Lääne-Indoneesia aeg", "IST": "India aeg", "EAT": "Ida-Aafrika aeg", "COST": "Colombia suveaeg", "AKDT": "Alaska suveaeg", "CDT": "Kesk-Ameerika suveaeg", "HNPM": "Saint-Pierre’i ja Miqueloni standardaeg", "WAST": "Lääne-Aafrika suveaeg", "EST": "Idaranniku standardaeg", "PST": "Vaikse ookeani standardaeg", "AKST": "Alaska standardaeg", "CST": "Kesk-Ameerika standardaeg", "PDT": "Vaikse ookeani suveaeg", "HKST": "Hongkongi suveaeg", "CHAST": "Chathami standardaeg", "MESZ": "Kesk-Euroopa suveaeg", "WART": "Lääne-Argentina standardaeg", "HADT": "Hawaii-Aleuudi suveaeg", "HNT": "Newfoundlandi standardaeg", "ART": "Argentina standardaeg", "HNCU": "Kuuba standardaeg", "VET": "Venezuela aeg", "HEOG": "Lääne-Gröönimaa suveaeg", "AWDT": "Lääne-Austraalia suveaeg", "HNPMX": "Mehhiko Vaikse ookeani standardaeg", "NZST": "Uus-Meremaa standardaeg", "SAST": "Lõuna-Aafrika standardaeg", "TMT": "Türkmenistani standardaeg", "COT": "Colombia standardaeg", "MST": "MST", "AST": "Atlandi standardaeg", "WEZ": "Lääne-Euroopa standardaeg", "LHST": "Lord Howe’i standardaeg", "CAT": "Kesk-Aafrika aeg", "HNEG": "Ida-Gröönimaa standardaeg", "OESZ": "Ida-Euroopa suveaeg", "HAST": "Hawaii-Aleuudi standardaeg", "AEDT": "Ida-Austraalia suveaeg", "JST": "Jaapani standardaeg", "BOT": "Boliivia aeg", "WARST": "Lääne-Argentina suveaeg", "ACWST": "Kesk-Lääne Austraalia standardaeg", "NZDT": "Uus-Meremaa suveaeg", "CLT": "Tšiili standardaeg"},
++ locale: "et_EE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WAST": "WAST", "HAT": "HAT", "HEOG": "HEOG", "ECT": "ECT", "ACWST": "ACWST", "OESZ": "OESZ", "HNT": "HNT", "HKT": "HKT", "TMST": "TMST", "CAT": "CAT", "WIB": "WIB", "WARST": "WARST", "CHADT": "CHADT", "JST": "JST", "AEDT": "AEDT", "SGT": "SGT", "EST": "EST", "EDT": "EDT", "WITA": "WITA", "SRT": "SRT", "MEZ": "MEZ", "JDT": "JDT", "LHDT": "LHDT", "PDT": "PDT", "GFT": "GFT", "CST": "CST", "AWDT": "AWDT", "HEPMX": "HEPMX", "SAST": "SAST", "HNOG": "HNOG", "ARST": "ARST", "ACST": "ACST", "COT": "COT", "TMT": "TMT", "MST": "MST", "AWST": "AWST", "LHST": "LHST", "CHAST": "CHAST", "CLST": "CLST", "ChST": "ChST", "BOT": "BOT", "EAT": "EAT", "MESZ": "MESZ", "MYT": "MYT", "IST": "IST", "HNCU": "HNCU", "HECU": "HECU", "CDT": "CDT", "GMT": "GMT", "HNPM": "HNPM", "AEST": "AEST", "PST": "PST", "AKST": "AKST", "ADT": "ADT", "HNPMX": "HNPMX", "WAT": "WAT", "WART": "WART", "GYT": "GYT", "HKST": "HKST", "HENOMX": "HENOMX", "NZDT": "NZDT", "AST": "AST", "UYST": "UYST", "NZST": "NZST", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "WIT": "WIT", "COST": "COST", "CLT": "CLT", "HADT": "HADT", "HEEG": "HEEG", "HEPM": "HEPM", "ACWDT": "ACWDT", "WEZ": "WEZ", "WESZ": "WESZ", "VET": "VET", "ART": "ART", "HAST": "HAST", "ACDT": "ACDT", "UYT": "UYT", "BT": "BT", "AKDT": "AKDT", "MDT": "MDT"},
+ }
+ }
+ 
+@@ -127,7 +102,7 @@ func (et *et_EE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (et *et_EE) MonthsAbbreviated() []string {
+- return et.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -137,7 +112,7 @@ func (et *et_EE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (et *et_EE) MonthsNarrow() []string {
+- return et.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -147,7 +122,7 @@ func (et *et_EE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (et *et_EE) MonthsWide() []string {
+- return et.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -193,79 +168,13 @@ func (et *et_EE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'et_EE' and handles both Whole and Real numbers based on 'v'
+ func (et *et_EE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, et.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(et.group) - 1; j >= 0; j-- {
+- b = append(b, et.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(et.minus) - 1; j >= 0; j-- {
+- b = append(b, et.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'et_EE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (et *et_EE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, et.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(et.minus) - 1; j >= 0; j-- {
+- b = append(b, et.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, et.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'et_EE'
+@@ -273,60 +182,7 @@ func (et *et_EE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := et.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, et.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(et.group) - 1; j >= 0; j-- {
+- b = append(b, et.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(et.minus) - 1; j >= 0; j-- {
+- b = append(b, et.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, et.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, et.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'et_EE'
+@@ -335,65 +191,7 @@ func (et *et_EE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := et.currencies[currency]
+- l := len(s) + len(symbol) + 8 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, et.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(et.group) - 1; j >= 0; j-- {
+- b = append(b, et.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, et.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, et.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, et.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, et.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'et_EE'
+@@ -401,27 +199,6 @@ func (et *et_EE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -430,17 +207,6 @@ func (et *et_EE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, et.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,17 +215,6 @@ func (et *et_EE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, et.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -468,19 +223,6 @@ func (et *et_EE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, et.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, et.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -489,19 +231,6 @@ func (et *et_EE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, et.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -510,26 +239,6 @@ func (et *et_EE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, et.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, et.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -538,30 +247,6 @@ func (et *et_EE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, et.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, et.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -570,34 +255,5 @@ func (et *et_EE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, et.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, et.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := et.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/eu/eu.go b/eu/eu.go
+index 558a824..53de889 100644
+--- a/eu/eu.go
++++ b/eu/eu.go
+@@ -75,7 +75,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"K.a.", "K.o."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"K.a.", "Kristo ondoren"},
+- timezones: map[string]string{"HADT": "Hawaii-Aleutiar uharteetako udako ordutegia", "TMST": "Turkmenistango udako ordua", "OESZ": "Europa ekialdeko udako ordua", "HENOMX": "Mexikoko ipar-ekialdeko udako ordutegia", "AKDT": "Alaskako udako ordutegia", "ChST": "Chamorroko ordu estandarra", "HNEG": "Groenlandia ekialdeko ordutegi estandarra", "GYT": "Guyanako ordua", "TMT": "Turkmenistango ordu estandarra", "UYT": "Uruguayko ordu estandarra", "PST": "Ipar Amerikako Pazifikoko ordutegi estandarra", "UYST": "Uruguayko udako ordua", "LHDT": "Lord Howeko udako ordua", "CHADT": "Chathamgo udako ordua", "ECT": "Ekuadorreko ordua", "WARST": "Argentina mendebaldeko udako ordutegia", "ACWDT": "Australia erdi-mendebaldeko udako ordua", "HNT": "Ternuako ordutegi estandarra", "CLT": "Txileko ordu estandarra", "WIB": "Indonesia mendebaldeko ordua", "WIT": "Indonesia ekialdeko ordua", "PDT": "Ipar Amerikako Pazifikoko udako ordutegia", "MDT": "MDT", "ADT": "Atlantikoko udako ordutegia", "HAST": "Hawaii-Aleutiar uharteetako ordutegi estandarra", "BT": "Bhutango ordua", "LHST": "Lord Howeko ordu estandarra", "NZDT": "Zeelanda Berriko udako ordua", "CLST": "Txileko udako ordua", "WART": "Argentina mendebaldeko ordutegia estandarra", "HECU": "Kubako udako ordutegia", "AST": "Atlantikoko ordutegi estandarra", "HEOG": "Groenlandia mendebaldeko udako ordutegia", "MESZ": "Europa erdialdeko udako ordua", "CAT": "Afrika erdialdeko ordua", "WAT": "Afrika mendebaldeko ordu estandarra", "WAST": "Afrika mendebaldeko udako ordua", "EST": "Ipar Amerikako ekialdeko ordutegi estandarra", "CDT": "Ipar Amerikako erdialdeko udako ordutegia", "AEDT": "Australia ekialdeko udako ordua", "HEPMX": "Mexikoko Pazifikoko udako ordutegia", "HAT": "Ternuako udako ordutegia", "CHAST": "Chathamgo ordu estandarra", "JDT": "Japoniako udako ordua", "OEZ": "Europa ekialdeko ordu estandarra", "MST": "MST", "COT": "Kolonbiako ordu estandarra", "EDT": "Ipar Amerikako ekialdeko udako ordutegia", "ARST": "Argentinako udako ordutegia", "GMT": "Greenwich meridianoko ordua", "AWST": "Australia mendebaldeko ordu estandarra", "HNPM": "Saint-Pierre eta Mikeluneko ordutegi estandarra", "NZST": "Zeelanda Berriko ordu estandarra", "ACST": "Australia erdialdeko ordu estandarra", "EAT": "Afrika ekialdeko ordua", "MYT": "Malaysiako ordua", "VET": "Venezuelako ordua", "WEZ": "Europa mendebaldeko ordu estandarra", "HKT": "Hong Kongo ordu estandarra", "SRT": "Surinamgo ordua", "WESZ": "Europa mendebaldeko udako ordua", "HNOG": "Groenlandia mendebaldeko ordutegi estandarra", "AWDT": "Australia mendebaldeko udako ordua", "MEZ": "Europa erdialdeko ordu estandarra", "IST": "Indiako ordua", "∅∅∅": "Amazoniako udako ordutegia", "AKST": "Alaskako ordutegi estandarra", "ACWST": "Australia erdi-mendebaldeko ordu estandarra", "ART": "Argentinako ordutegi estandarra", "AEST": "Australia ekialdeko ordu estandarra", "HKST": "Hong Kongo udako ordua", "SAST": "Afrika hegoaldeko ordua", "SGT": "Singapurreko ordu estandarra", "HNPMX": "Mexikoko Pazifikoko ordutegi estandarra", "CST": "Ipar Amerikako erdialdeko ordu estandarra", "WITA": "Indonesia erdialdeko ordua", "COST": "Kolonbiako udako ordua", "HEPM": "Saint-Pierre eta Mikeluneko udako ordutegia", "BOT": "Boliviako ordutegia", "HEEG": "Groenlandia ekialdeko udako ordutegia", "ACDT": "Australia erdialdeko udako ordua", "JST": "Japoniako ordu estandarra", "GFT": "Guyana Frantseseko ordua", "HNNOMX": "Mexikoko ipar-ekialdeko ordutegi estandarra", "HNCU": "Kubako ordutegi estandarra"},
++ timezones: map[string]string{"GMT": "Greenwich meridianoko ordua", "ARST": "Argentinako udako ordutegia", "HADT": "Hawaii-Aleutiar uharteetako udako ordutegia", "JDT": "Japoniako udako ordua", "UYT": "Uruguayko ordu estandarra", "WAST": "Afrika mendebaldeko udako ordua", "ADT": "Atlantikoko udako ordutegia", "NZDT": "Zeelanda Berriko udako ordua", "ACST": "Australia erdialdeko ordu estandarra", "AKDT": "Alaskako udako ordutegia", "WITA": "Indonesia erdialdeko ordua", "CLST": "Txileko udako ordua", "WESZ": "Europa mendebaldeko udako ordua", "HNCU": "Kubako ordutegi estandarra", "WIB": "Indonesia mendebaldeko ordua", "ChST": "Chamorroko ordu estandarra", "AWDT": "Australia mendebaldeko udako ordua", "PST": "Ipar Amerikako Pazifikoko ordutegi estandarra", "BT": "Bhutango ordua", "CST": "Ipar Amerikako erdialdeko ordu estandarra", "ECT": "Ekuadorreko ordua", "AWST": "Australia mendebaldeko ordu estandarra", "LHST": "Lord Howeko ordu estandarra", "EDT": "Ipar Amerikako ekialdeko udako ordutegia", "TMT": "Turkmenistango ordu estandarra", "AEST": "Australia ekialdeko ordu estandarra", "MYT": "Malaysiako ordua", "HEPM": "Saint-Pierre eta Mikeluneko udako ordutegia", "ACDT": "Australia erdialdeko udako ordua", "WARST": "Argentina mendebaldeko udako ordutegia", "CLT": "Txileko ordu estandarra", "HEOG": "Groenlandia mendebaldeko udako ordutegia", "HKST": "Hong Kongo udako ordua", "CDT": "Ipar Amerikako erdialdeko udako ordutegia", "BOT": "Boliviako ordutegia", "JST": "Japoniako ordu estandarra", "PDT": "Ipar Amerikako Pazifikoko udako ordutegia", "GFT": "Guyana Frantseseko ordua", "GYT": "Guyanako ordua", "ACWST": "Australia erdi-mendebaldeko ordu estandarra", "NZST": "Zeelanda Berriko ordu estandarra", "SGT": "Singapurreko ordu estandarra", "SAST": "Afrika hegoaldeko ordua", "WIT": "Indonesia ekialdeko ordua", "COT": "Kolonbiako ordu estandarra", "AST": "Atlantikoko ordutegi estandarra", "ART": "Argentinako ordutegi estandarra", "SRT": "Surinamgo ordua", "EAT": "Afrika ekialdeko ordua", "VET": "Venezuelako ordua", "HECU": "Kubako udako ordutegia", "HENOMX": "Mexikoko ipar-ekialdeko udako ordutegia", "CHAST": "Chathamgo ordu estandarra", "UYST": "Uruguayko udako ordua", "HNEG": "Groenlandia ekialdeko ordutegi estandarra", "HNNOMX": "Mexikoko ipar-ekialdeko ordutegi estandarra", "HAST": "Hawaii-Aleutiar uharteetako ordutegi estandarra", "LHDT": "Lord Howeko udako ordua", "ACWDT": "Australia erdi-mendebaldeko udako ordua", "HAT": "Ternuako udako ordutegia", "MST": "MST", "OESZ": "Europa ekialdeko udako ordua", "WART": "Argentina mendebaldeko ordutegia estandarra", "MESZ": "Europa erdialdeko udako ordua", "WEZ": "Europa mendebaldeko ordu estandarra", "WAT": "Afrika mendebaldeko ordu estandarra", "COST": "Kolonbiako udako ordua", "AEDT": "Australia ekialdeko udako ordua", "EST": "Ipar Amerikako ekialdeko ordutegi estandarra", "HKT": "Hong Kongo ordu estandarra", "TMST": "Turkmenistango udako ordua", "MDT": "MDT", "HNPM": "Saint-Pierre eta Mikeluneko ordutegi estandarra", "IST": "Indiako ordua", "HNPMX": "Mexikoko Pazifikoko ordutegi estandarra", "HNOG": "Groenlandia mendebaldeko ordutegi estandarra", "HEEG": "Groenlandia ekialdeko udako ordutegia", "CHADT": "Chathamgo udako ordua", "∅∅∅": "Amazoniako udako ordutegia", "MEZ": "Europa erdialdeko ordu estandarra", "OEZ": "Europa ekialdeko ordu estandarra", "HNT": "Ternuako ordutegi estandarra", "CAT": "Afrika erdialdeko ordua", "HEPMX": "Mexikoko Pazifikoko udako ordutegia", "AKST": "Alaskako ordutegi estandarra"},
+ }
+ }
+ 
+diff --git a/eu_ES/eu_ES.go b/eu_ES/eu_ES.go
+index 94cd950..3e1105b 100644
+--- a/eu_ES/eu_ES.go
++++ b/eu_ES/eu_ES.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type eu_ES struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentPrefix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'eu_ES' locale
+ func New() locales.Translator {
+ return &eu_ES{
+- locale: "eu_ES",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentPrefix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "urt.", "ots.", "mar.", "api.", "mai.", "eka.", "uzt.", "abu.", "ira.", "urr.", "aza.", "abe."},
+- monthsNarrow: []string{"", "U", "O", "M", "A", "M", "E", "U", "A", "I", "U", "A", "A"},
+- monthsWide: []string{"", "urtarrila", "otsaila", "martxoa", "apirila", "maiatza", "ekaina", "uztaila", "abuztua", "iraila", "urria", "azaroa", "abendua"},
+- daysAbbreviated: []string{"ig.", "al.", "ar.", "az.", "og.", "or.", "lr."},
+- daysNarrow: []string{"I", "A", "A", "A", "O", "O", "L"},
+- daysShort: []string{"ig.", "al.", "ar.", "az.", "og.", "or.", "lr."},
+- daysWide: []string{"igandea", "astelehena", "asteartea", "asteazkena", "osteguna", "ostirala", "larunbata"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"g", "a"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"K.a.", "K.o."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"K.a.", "Kristo ondoren"},
+- timezones: map[string]string{"CAT": "Afrika erdialdeko ordua", "WIB": "Indonesia mendebaldeko ordua", "BT": "Bhutango ordua", "HEPM": "Saint-Pierre eta Mikeluneko udako ordutegia", "LHST": "Lord Howeko ordu estandarra", "LHDT": "Lord Howeko udako ordua", "ECT": "Ekuadorreko ordua", "WAST": "Afrika mendebaldeko udako ordua", "WEZ": "Europa mendebaldeko ordu estandarra", "CHAST": "Chathamgo ordu estandarra", "MEZ": "Europa erdialdeko ordu estandarra", "JST": "Japoniako ordu estandarra", "WAT": "Afrika mendebaldeko ordu estandarra", "PST": "Ipar Amerikako Pazifikoko ordutegi estandarra", "PDT": "Ipar Amerikako Pazifikoko udako ordutegia", "AKDT": "Alaskako udako ordutegia", "UYST": "Uruguayko udako ordua", "WESZ": "Europa mendebaldeko udako ordua", "ACWDT": "Australia erdi-mendebaldeko udako ordua", "AKST": "Alaskako ordutegi estandarra", "MESZ": "Europa erdialdeko udako ordua", "TMST": "Turkmenistango udako ordua", "HEPMX": "Mexikoko Pazifikoko udako ordutegia", "EDT": "Ipar Amerikako ekialdeko udako ordutegia", "OESZ": "Europa ekialdeko udako ordua", "CST": "Ipar Amerikako erdialdeko ordu estandarra", "HKT": "Hong Kongo ordu estandarra", "HNPM": "Saint-Pierre eta Mikeluneko ordutegi estandarra", "NZDT": "Zeelanda Berriko udako ordua", "SAST": "Afrika hegoaldeko ordua", "ACST": "Australia erdialdeko ordu estandarra", "HKST": "Hong Kongo udako ordua", "EAT": "Afrika ekialdeko ordua", "WARST": "Argentina mendebaldeko udako ordutegia", "AST": "Atlantikoko ordutegi estandarra", "HNT": "Ternuako ordutegi estandarra", "WIT": "Indonesia ekialdeko ordua", "AWDT": "Australia mendebaldeko udako ordua", "COT": "Kolonbiako ordu estandarra", "ACWST": "Australia erdi-mendebaldeko ordu estandarra", "AEDT": "Australia ekialdeko udako ordua", "ChST": "Chamorroko ordu estandarra", "CDT": "Ipar Amerikako erdialdeko udako ordutegia", "HNOG": "Groenlandia mendebaldeko ordutegi estandarra", "CLST": "Txileko udako ordua", "AEST": "Australia ekialdeko ordu estandarra", "HADT": "Hawaii-Aleutiar uharteetako udako ordutegia", "WITA": "Indonesia erdialdeko ordua", "GMT": "Greenwich meridianoko ordua", "MST": "MST", "HNPMX": "Mexikoko Pazifikoko ordutegi estandarra", "UYT": "Uruguayko ordu estandarra", "HAST": "Hawaii-Aleutiar uharteetako ordutegi estandarra", "HAT": "Ternuako udako ordutegia", "IST": "Indiako ordua", "GFT": "Guyana Frantseseko ordua", "HENOMX": "Mexikoko ipar-ekialdeko udako ordutegia", "VET": "Venezuelako ordua", "MYT": "Malaysiako ordua", "HEOG": "Groenlandia mendebaldeko udako ordutegia", "NZST": "Zeelanda Berriko ordu estandarra", "CLT": "Txileko ordu estandarra", "EST": "Ipar Amerikako ekialdeko ordutegi estandarra", "GYT": "Guyanako ordua", "SRT": "Surinamgo ordua", "ARST": "Argentinako udako ordutegia", "BOT": "Boliviako ordutegia", "COST": "Kolonbiako udako ordua", "HECU": "Kubako udako ordutegia", "ADT": "Atlantikoko udako ordutegia", "SGT": "Singapurreko ordu estandarra", "HNCU": "Kubako ordutegi estandarra", "MDT": "MDT", "ART": "Argentinako ordutegi estandarra", "TMT": "Turkmenistango ordu estandarra", "ACDT": "Australia erdialdeko udako ordua", "OEZ": "Europa ekialdeko ordu estandarra", "HNNOMX": "Mexikoko ipar-ekialdeko ordutegi estandarra", "HEEG": "Groenlandia ekialdeko udako ordutegia", "WART": "Argentina mendebaldeko ordutegia estandarra", "AWST": "Australia mendebaldeko ordu estandarra", "CHADT": "Chathamgo udako ordua", "∅∅∅": "Amazoniako udako ordutegia", "JDT": "Japoniako udako ordua", "HNEG": "Groenlandia ekialdeko ordutegi estandarra"},
++ locale: "eu_ES",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ECT": "ECT", "MEZ": "MEZ", "WART": "WART", "WIT": "WIT", "WITA": "WITA", "WIB": "WIB", "HNPM": "HNPM", "CST": "CST", "NZDT": "NZDT", "HEEG": "HEEG", "JDT": "JDT", "HNCU": "HNCU", "TMST": "TMST", "CAT": "CAT", "HENOMX": "HENOMX", "AEST": "AEST", "MYT": "MYT", "IST": "IST", "WEZ": "WEZ", "WAT": "WAT", "AWDT": "AWDT", "LHST": "LHST", "LHDT": "LHDT", "UYT": "UYT", "HAT": "HAT", "NZST": "NZST", "ADT": "ADT", "ACDT": "ACDT", "SGT": "SGT", "COST": "COST", "HEPM": "HEPM", "AEDT": "AEDT", "BT": "BT", "ACWST": "ACWST", "CDT": "CDT", "AST": "AST", "CHAST": "CHAST", "PST": "PST", "GMT": "GMT", "HADT": "HADT", "HNEG": "HNEG", "OESZ": "OESZ", "GFT": "GFT", "HNT": "HNT", "EST": "EST", "∅∅∅": "∅∅∅", "AKST": "AKST", "MST": "MST", "HNNOMX": "HNNOMX", "VET": "VET", "SAST": "SAST", "CLST": "CLST", "ChST": "ChST", "MESZ": "MESZ", "AWST": "AWST", "WAST": "WAST", "HEOG": "HEOG", "HKT": "HKT", "ARST": "ARST", "ART": "ART", "JST": "JST", "HEPMX": "HEPMX", "HECU": "HECU", "WARST": "WARST", "HNOG": "HNOG", "HKST": "HKST", "MDT": "MDT", "GYT": "GYT", "SRT": "SRT", "EAT": "EAT", "WESZ": "WESZ", "HNPMX": "HNPMX", "TMT": "TMT", "CHADT": "CHADT", "UYST": "UYST", "PDT": "PDT", "COT": "COT", "EDT": "EDT", "BOT": "BOT", "HAST": "HAST", "ACWDT": "ACWDT", "AKDT": "AKDT", "OEZ": "OEZ", "CLT": "CLT", "ACST": "ACST"},
+ }
+ }
+ 
+@@ -128,7 +101,7 @@ func (eu *eu_ES) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (eu *eu_ES) MonthsAbbreviated() []string {
+- return eu.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -138,7 +111,7 @@ func (eu *eu_ES) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (eu *eu_ES) MonthsNarrow() []string {
+- return eu.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -148,7 +121,7 @@ func (eu *eu_ES) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (eu *eu_ES) MonthsWide() []string {
+- return eu.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -194,90 +167,13 @@ func (eu *eu_ES) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'eu_ES' and handles both Whole and Real numbers based on 'v'
+ func (eu *eu_ES) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, eu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, eu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, eu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'eu_ES' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (eu *eu_ES) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, eu.decimal[0])
+- inWhole = true
+-
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, eu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, eu.minus[0])
+- }
+-
+- for j := len(eu.percentPrefix) - 1; j >= 0; j-- {
+- b = append(b, eu.percentPrefix[j])
+- }
+-
+- b = append(b, eu.percent[0])
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'eu_ES'
+@@ -285,56 +181,7 @@ func (eu *eu_ES) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := eu.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, eu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, eu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, eu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, eu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, eu.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'eu_ES'
+@@ -343,63 +190,7 @@ func (eu *eu_ES) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := eu.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, eu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, eu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, eu.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, eu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, eu.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, eu.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'eu_ES'
+@@ -407,17 +198,6 @@ func (eu *eu_ES) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -426,17 +206,6 @@ func (eu *eu_ES) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, eu.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -445,19 +214,6 @@ func (eu *eu_ES) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x28, 0x65}...)
+- b = append(b, []byte{0x29, 0x6b, 0x6f}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, eu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -466,21 +222,6 @@ func (eu *eu_ES) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x28, 0x65}...)
+- b = append(b, []byte{0x29, 0x6b, 0x6f}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, eu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, eu.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -489,19 +230,6 @@ func (eu *eu_ES) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, eu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -510,26 +238,6 @@ func (eu *eu_ES) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, eu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, eu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -538,32 +246,6 @@ func (eu *eu_ES) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, eu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, eu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+ 
+@@ -572,36 +254,5 @@ func (eu *eu_ES) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, eu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, eu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := eu.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/ewo/ewo.go b/ewo/ewo.go
+index 66bec8f..6c0dd44 100644
+--- a/ewo/ewo.go
++++ b/ewo/ewo.go
+@@ -65,7 +65,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"oyk", "ayk"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"osúsúa Yésus kiri", "ámvus Yésus Kirís"},
+- timezones: map[string]string{"AKST": "AKST", "HNOG": "HNOG", "WITA": "WITA", "CAT": "CAT", "HNPMX": "HNPMX", "ACWST": "ACWST", "CHADT": "CHADT", "HEPM": "HEPM", "MEZ": "MEZ", "MESZ": "MESZ", "HEEG": "HEEG", "TMST": "TMST", "MDT": "MDT", "UYT": "UYT", "PST": "PST", "WAST": "WAST", "EDT": "EDT", "HKT": "HKT", "HNEG": "HNEG", "NZST": "NZST", "CHAST": "CHAST", "WART": "WART", "ADT": "ADT", "HADT": "HADT", "VET": "VET", "WAT": "WAT", "ACWDT": "ACWDT", "HAT": "HAT", "CLT": "CLT", "LHDT": "LHDT", "JST": "JST", "ACDT": "ACDT", "EAT": "EAT", "COST": "COST", "MST": "MST", "AKDT": "AKDT", "WIT": "WIT", "WARST": "WARST", "EST": "EST", "WEZ": "WEZ", "JDT": "JDT", "LHST": "LHST", "BOT": "BOT", "GFT": "GFT", "TMT": "TMT", "OEZ": "OEZ", "HNCU": "HNCU", "AEST": "AEST", "AWDT": "AWDT", "COT": "COT", "HNNOMX": "HNNOMX", "GYT": "GYT", "WESZ": "WESZ", "ChST": "ChST", "WIB": "WIB", "CLST": "CLST", "HENOMX": "HENOMX", "IST": "IST", "HAST": "HAST", "PDT": "PDT", "HKST": "HKST", "HEOG": "HEOG", "HNT": "HNT", "ARST": "ARST", "AEDT": "AEDT", "HNPM": "HNPM", "HECU": "HECU", "BT": "BT", "SRT": "SRT", "NZDT": "NZDT", "SAST": "SAST", "ACST": "ACST", "OESZ": "OESZ", "ECT": "ECT", "GMT": "GMT", "HEPMX": "HEPMX", "AST": "AST", "SGT": "SGT", "∅∅∅": "∅∅∅", "MYT": "MYT", "ART": "ART", "AWST": "AWST", "UYST": "UYST", "CST": "CST", "CDT": "CDT"},
++ timezones: map[string]string{"HNPMX": "HNPMX", "GFT": "GFT", "EDT": "EDT", "NZDT": "NZDT", "JDT": "JDT", "MYT": "MYT", "ADT": "ADT", "HEPMX": "HEPMX", "AKDT": "AKDT", "HEOG": "HEOG", "GYT": "GYT", "HKST": "HKST", "WITA": "WITA", "UYST": "UYST", "WAST": "WAST", "WIB": "WIB", "ChST": "ChST", "CLST": "CLST", "GMT": "GMT", "JST": "JST", "CHADT": "CHADT", "OESZ": "OESZ", "ARST": "ARST", "AST": "AST", "HADT": "HADT", "MEZ": "MEZ", "ACWDT": "ACWDT", "PDT": "PDT", "CST": "CST", "NZST": "NZST", "PST": "PST", "SGT": "SGT", "SAST": "SAST", "HKT": "HKT", "ACDT": "ACDT", "HNPM": "HNPM", "HEPM": "HEPM", "AEDT": "AEDT", "UYT": "UYT", "WARST": "WARST", "MST": "MST", "ART": "ART", "BOT": "BOT", "ACST": "ACST", "LHST": "LHST", "IST": "IST", "WIT": "WIT", "EST": "EST", "SRT": "SRT", "HAST": "HAST", "HNNOMX": "HNNOMX", "AEST": "AEST", "VET": "VET", "WAT": "WAT", "MDT": "MDT", "HENOMX": "HENOMX", "HNEG": "HNEG", "CAT": "CAT", "CDT": "CDT", "HEEG": "HEEG", "LHDT": "LHDT", "EAT": "EAT", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "HNT": "HNT", "WART": "WART", "TMT": "TMT", "TMST": "TMST", "CHAST": "CHAST", "BT": "BT", "WESZ": "WESZ", "COST": "COST", "CLT": "CLT", "MESZ": "MESZ", "AWDT": "AWDT", "ACWST": "ACWST", "WEZ": "WEZ", "AKST": "AKST", "HAT": "HAT", "ECT": "ECT", "AWST": "AWST", "HNCU": "HNCU", "HECU": "HECU", "HNOG": "HNOG", "COT": "COT"},
+ }
+ }
+ 
+diff --git a/ewo_CM/ewo_CM.go b/ewo_CM/ewo_CM.go
+index 2213149..c1c7225 100644
+--- a/ewo_CM/ewo_CM.go
++++ b/ewo_CM/ewo_CM.go
+@@ -10,62 +10,45 @@ import (
+ )
+ 
+ type ewo_CM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ewo_CM' locale
+ func New() locales.Translator {
+ return &ewo_CM{
+- locale: "ewo_CM",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ngo", "ngb", "ngl", "ngn", "ngt", "ngs", "ngz", "ngm", "nge", "nga", "ngad", "ngab"},
+- monthsNarrow: []string{"", "o", "b", "l", "n", "t", "s", "z", "m", "e", "a", "d", "b"},
+- monthsWide: []string{"", "ngɔn osú", "ngɔn bɛ̌", "ngɔn lála", "ngɔn nyina", "ngɔn tána", "ngɔn saməna", "ngɔn zamgbála", "ngɔn mwom", "ngɔn ebulú", "ngɔn awóm", "ngɔn awóm ai dziá", "ngɔn awóm ai bɛ̌"},
+- daysAbbreviated: []string{"sɔ́n", "mɔ́n", "smb", "sml", "smn", "fúl", "sér"},
+- daysNarrow: []string{"s", "m", "s", "s", "s", "f", "s"},
+- daysWide: []string{"sɔ́ndɔ", "mɔ́ndi", "sɔ́ndɔ məlú mə́bɛ̌", "sɔ́ndɔ məlú mə́lɛ́", "sɔ́ndɔ məlú mə́nyi", "fúladé", "séradé"},
+- periodsAbbreviated: []string{"kíkíríg", "ngəgógəle"},
+- periodsWide: []string{"kíkíríg", "ngəgógəle"},
+- erasAbbreviated: []string{"oyk", "ayk"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"osúsúa Yésus kiri", "ámvus Yésus Kirís"},
+- timezones: map[string]string{"WARST": "WARST", "WESZ": "WESZ", "AWST": "AWST", "HKT": "HKT", "HEPM": "HEPM", "NZST": "NZST", "CLT": "CLT", "TMST": "TMST", "CHAST": "CHAST", "WART": "WART", "UYT": "UYT", "UYST": "UYST", "ACWDT": "ACWDT", "ACST": "ACST", "HENOMX": "HENOMX", "HAT": "HAT", "MEZ": "MEZ", "HEEG": "HEEG", "SRT": "SRT", "WAT": "WAT", "AKDT": "AKDT", "HAST": "HAST", "PST": "PST", "TMT": "TMT", "EAT": "EAT", "AKST": "AKST", "ADT": "ADT", "AWDT": "AWDT", "WITA": "WITA", "HNCU": "HNCU", "HECU": "HECU", "WIB": "WIB", "ART": "ART", "IST": "IST", "SAST": "SAST", "EST": "EST", "GYT": "GYT", "HNT": "HNT", "LHST": "LHST", "OEZ": "OEZ", "HNPMX": "HNPMX", "∅∅∅": "∅∅∅", "CHADT": "CHADT", "BOT": "BOT", "AST": "AST", "BT": "BT", "WEZ": "WEZ", "HNOG": "HNOG", "HEOG": "HEOG", "PDT": "PDT", "HKST": "HKST", "CLST": "CLST", "HADT": "HADT", "HNPM": "HNPM", "MESZ": "MESZ", "MYT": "MYT", "AEST": "AEST", "JST": "JST", "CDT": "CDT", "MST": "MST", "ARST": "ARST", "LHDT": "LHDT", "GFT": "GFT", "WAST": "WAST", "CAT": "CAT", "COST": "COST", "HEPMX": "HEPMX", "EDT": "EDT", "VET": "VET", "ChST": "ChST", "ACDT": "ACDT", "SGT": "SGT", "GMT": "GMT", "CST": "CST", "WIT": "WIT", "AEDT": "AEDT", "OESZ": "OESZ", "COT": "COT", "HNNOMX": "HNNOMX", "ACWST": "ACWST", "JDT": "JDT", "ECT": "ECT", "NZDT": "NZDT", "HNEG": "HNEG", "MDT": "MDT"},
++ locale: "ewo_CM",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"UYST": "UYST", "SGT": "SGT", "WAST": "WAST", "OESZ": "OESZ", "HKST": "HKST", "BT": "BT", "OEZ": "OEZ", "MST": "MST", "ChST": "ChST", "MEZ": "MEZ", "UYT": "UYT", "COST": "COST", "GYT": "GYT", "CDT": "CDT", "EAT": "EAT", "HEEG": "HEEG", "MYT": "MYT", "CHADT": "CHADT", "PST": "PST", "NZDT": "NZDT", "WIB": "WIB", "AST": "AST", "SRT": "SRT", "HAST": "HAST", "AEST": "AEST", "AEDT": "AEDT", "VET": "VET", "HNT": "HNT", "HKT": "HKT", "HADT": "HADT", "HNEG": "HNEG", "NZST": "NZST", "ADT": "ADT", "MESZ": "MESZ", "HEPM": "HEPM", "JST": "JST", "AWDT": "AWDT", "ACWDT": "ACWDT", "HNCU": "HNCU", "LHDT": "LHDT", "HECU": "HECU", "EST": "EST", "ART": "ART", "HNNOMX": "HNNOMX", "LHST": "LHST", "WARST": "WARST", "TMT": "TMT", "CAT": "CAT", "ECT": "ECT", "IST": "IST", "PDT": "PDT", "HNPMX": "HNPMX", "WIT": "WIT", "ACDT": "ACDT", "HNPM": "HNPM", "WEZ": "WEZ", "WESZ": "WESZ", "CLT": "CLT", "WITA": "WITA", "TMST": "TMST", "BOT": "BOT", "HENOMX": "HENOMX", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "HEPMX": "HEPMX", "WART": "WART", "SAST": "SAST", "AKDT": "AKDT", "GFT": "GFT", "HEOG": "HEOG", "EDT": "EDT", "ACST": "ACST", "JDT": "JDT", "AWST": "AWST", "ARST": "ARST", "GMT": "GMT", "HNOG": "HNOG", "CST": "CST", "ACWST": "ACWST", "AKST": "AKST", "CLST": "CLST", "WAT": "WAT", "HAT": "HAT", "COT": "COT", "MDT": "MDT"},
+ }
+ }
+ 
+@@ -111,7 +94,7 @@ func (ewo *ewo_CM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ewo *ewo_CM) MonthsAbbreviated() []string {
+- return ewo.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -121,7 +104,7 @@ func (ewo *ewo_CM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ewo *ewo_CM) MonthsNarrow() []string {
+- return ewo.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -131,7 +114,7 @@ func (ewo *ewo_CM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ewo *ewo_CM) MonthsWide() []string {
+- return ewo.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -177,75 +160,13 @@ func (ewo *ewo_CM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ewo_CM' and handles both Whole and Real numbers based on 'v'
+ func (ewo *ewo_CM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ewo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ewo.group) - 1; j >= 0; j-- {
+- b = append(b, ewo.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ewo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ewo_CM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ewo *ewo_CM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ewo.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ewo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ewo.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ewo_CM'
+@@ -253,58 +174,7 @@ func (ewo *ewo_CM) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ewo.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ewo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ewo.group) - 1; j >= 0; j-- {
+- b = append(b, ewo.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ewo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ewo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ewo.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ewo_CM'
+@@ -313,65 +183,7 @@ func (ewo *ewo_CM) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ewo.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ewo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ewo.group) - 1; j >= 0; j-- {
+- b = append(b, ewo.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ewo.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ewo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ewo.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ewo.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ewo_CM'
+@@ -379,17 +191,6 @@ func (ewo *ewo_CM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -398,17 +199,6 @@ func (ewo *ewo_CM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ewo.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -417,17 +207,6 @@ func (ewo *ewo_CM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ewo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -436,19 +215,6 @@ func (ewo *ewo_CM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ewo.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ewo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -457,19 +223,6 @@ func (ewo *ewo_CM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ewo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -478,26 +231,6 @@ func (ewo *ewo_CM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ewo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ewo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -506,30 +239,6 @@ func (ewo *ewo_CM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ewo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ewo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -538,34 +247,5 @@ func (ewo *ewo_CM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ewo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ewo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ewo.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fa/fa.go b/fa/fa.go
+index 951a3b1..8ece098 100644
+--- a/fa/fa.go
++++ b/fa/fa.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ق.م.", "م."},
+ erasNarrow: []string{"ق", "م"},
+ erasWide: []string{"قبل از میلاد", "میلادی"},
+- timezones: map[string]string{"HADT": "وقت تابستانی هاوایی‐الوشن", "OESZ": "وقت تابستانی شرق اروپا", "ECT": "وقت اکوادور", "HNNOMX": "وقت عادی شمال غرب مکزیک", "HENOMX": "وقت تابستانی شمال غرب مکزیک", "HNPMX": "وقت عادی شرق مکزیک", "MDT": "وقت تابستانی کوهستانی امریکا", "ACWST": "وقت عادی مرکز-غرب استرالیا", "HNOG": "وقت عادی غرب گرینلند", "WITA": "وقت مرکز اندونزی", "NZDT": "وقت تابستانی زلاند نو", "IST": "وقت هند", "WARST": "وقت تابستانی غرب آرژانتین", "BT": "وقت بوتان", "PDT": "وقت تابستانی غرب امریکا", "HEOG": "وقت تابستانی غرب گرینلند", "MESZ": "وقت تابستانی مرکز اروپا", "HEEG": "وقت تابستانی شرق گرینلند", "ACST": "وقت عادی مرکز استرالیا", "PST": "وقت عادی غرب امریکا", "AWDT": "وقت تابستانی غرب استرالیا", "JST": "وقت عادی ژاپن", "WAST": "وقت تابستانی غرب افریقا", "COT": "وقت عادی کلمبیا", "EDT": "وقت تابستانی شرق امریکا", "GFT": "وقت گویان فرانسه", "EAT": "وقت شرق افریقا", "OEZ": "وقت عادی شرق اروپا", "AKST": "وقت عادی آلاسکا", "SRT": "وقت سورینام", "SGT": "وقت سنگاپور", "UYST": "وقت تابستانی اروگوئه", "HAST": "وقت عادی هاوایی‐الوشن", "HNPM": "وقت عادی سنت\u200cپیر و میکلون", "JDT": "وقت تابستانی ژاپن", "TMT": "وقت عادی ترکمنستان", "MYT": "وقت مالزی", "CLST": "وقت تابستانی شیلی", "∅∅∅": "وقت تابستانی آمازون", "HAT": "وقت تابستانی نیوفاندلند", "EST": "وقت عادی شرق امریکا", "UYT": "وقت عادی اروگوئه", "CDT": "وقت تابستانی مرکز امریکا", "AST": "وقت عادی آتلانتیک", "CST": "وقت عادی مرکز امریکا", "WIB": "وقت غرب اندونزی", "HNT": "وقت عادی نیوفاندلند", "ARST": "وقت تابستانی آرژانتین", "HKT": "وقت عادی هنگ\u200cکنگ", "SAST": "وقت عادی جنوب افریقا", "ChST": "وقت عادی چامورو", "HNCU": "وقت عادی کوبا", "LHDT": "وقت تابستانی لردهو", "ADT": "وقت تابستانی آتلانتیک", "WEZ": "وقت عادی غرب اروپا", "MEZ": "وقت عادی مرکز اروپا", "TMST": "وقت تابستانی ترکمنستان", "GMT": "وقت گرینویچ", "ACWDT": "وقت تابستانی مرکز-غرب استرالیا", "CAT": "وقت مرکز افریقا", "WAT": "وقت عادی غرب افریقا", "WART": "وقت عادی غرب آرژانتین", "COST": "وقت تابستانی کلمبیا", "HEPMX": "وقت تابستانی شرق مکزیک", "MST": "وقت عادی کوهستانی امریکا", "VET": "وقت ونزوئلا", "ART": "وقت عادی آرژانتین", "HEPM": "وقت تابستانی سنت\u200cپیر و میکلون", "LHST": "وقت عادی لردهو", "NZST": "وقت عادی زلاند نو", "HECU": "وقت تابستانی کوبا", "AKDT": "وقت تابستانی آلاسکا", "ACDT": "وقت تابستانی مرکز استرالیا", "WESZ": "وقت تابستانی غرب اروپا", "AEDT": "وقت تابستانی شرق استرالیا", "CHAST": "وقت عادی چت\u200cهام", "CHADT": "وقت تابستانی چت\u200cهام", "CLT": "وقت عادی شیلی", "BOT": "وقت بولیوی", "HNEG": "وقت عادی شرق گرینلند", "WIT": "وقت شرق اندونزی", "AEST": "وقت عادی شرق استرالیا", "AWST": "وقت عادی غرب استرالیا", "HKST": "وقت تابستانی هنگ\u200cکنگ", "GYT": "وقت گویان"},
++ timezones: map[string]string{"WESZ": "وقت تابستانی غرب اروپا", "WIT": "وقت شرق اندونزی", "HEOG": "وقت تابستانی غرب گرینلند", "MYT": "وقت مالزی", "JST": "وقت عادی ژاپن", "HNNOMX": "وقت عادی شمال غرب مکزیک", "SRT": "وقت سورینام", "EAT": "وقت شرق افریقا", "ACST": "وقت عادی مرکز استرالیا", "ACDT": "وقت تابستانی مرکز استرالیا", "GYT": "وقت گویان", "HNOG": "وقت عادی غرب گرینلند", "HKST": "وقت تابستانی هنگ\u200cکنگ", "NZDT": "وقت تابستانی زلاند نو", "HNT": "وقت عادی نیوفاندلند", "WAST": "وقت تابستانی غرب افریقا", "∅∅∅": "وقت تابستانی برازیلیا", "WITA": "وقت مرکز اندونزی", "CST": "وقت عادی مرکز امریکا", "AST": "وقت عادی آتلانتیک", "CLST": "وقت تابستانی شیلی", "MEZ": "وقت عادی مرکز اروپا", "JDT": "وقت تابستانی ژاپن", "PST": "وقت عادی غرب امریکا", "HEEG": "وقت تابستانی شرق گرینلند", "HNPM": "وقت عادی سنت\u200cپیر و میکلون", "UYST": "وقت تابستانی اروگوئه", "IST": "وقت هند", "HKT": "وقت عادی هنگ\u200cکنگ", "MDT": "وقت تابستانی ماکائو", "ADT": "وقت تابستانی آتلانتیک", "ChST": "وقت عادی چامورو", "WEZ": "وقت عادی غرب اروپا", "AKST": "وقت عادی آلاسکا", "OESZ": "وقت تابستانی شرق اروپا", "LHST": "وقت عادی لردهو", "GFT": "وقت گویان فرانسه", "CLT": "وقت عادی شیلی", "WIB": "وقت غرب اندونزی", "BOT": "وقت بولیوی", "HENOMX": "وقت تابستانی شمال غرب مکزیک", "EST": "وقت عادی شرق امریکا", "CAT": "وقت مرکز افریقا", "HADT": "وقت تابستانی هاوایی‐الوشن", "PDT": "وقت تابستانی غرب امریکا", "HNEG": "وقت عادی شرق گرینلند", "AWDT": "وقت تابستانی غرب استرالیا", "LHDT": "وقت تابستانی لردهو", "BT": "وقت بوتان", "GMT": "وقت گرینویچ", "ART": "وقت عادی آرژانتین", "ARST": "وقت تابستانی آرژانتین", "HAST": "وقت عادی هاوایی‐الوشن", "ACWST": "وقت عادی مرکز-غرب استرالیا", "ACWDT": "وقت تابستانی مرکز-غرب استرالیا", "WAT": "وقت عادی غرب افریقا", "WARST": "وقت تابستانی غرب آرژانتین", "CDT": "وقت تابستانی مرکز امریکا", "MST": "وقت عادی ماکائو", "NZST": "وقت عادی زلاند نو", "SGT": "وقت سنگاپور", "HNCU": "وقت عادی کوبا", "AKDT": "وقت تابستانی آلاسکا", "HAT": "وقت تابستانی نیوفاندلند", "OEZ": "وقت عادی شرق اروپا", "WART": "وقت عادی غرب آرژانتین", "MESZ": "وقت تابستانی مرکز اروپا", "UYT": "وقت عادی اروگوئه", "AEST": "وقت عادی شرق استرالیا", "VET": "وقت ونزوئلا", "SAST": "وقت عادی جنوب افریقا", "CHAST": "وقت عادی چت\u200cهام", "HEPMX": "وقت تابستانی شرق مکزیک", "TMST": "وقت تابستانی ترکمنستان", "AWST": "وقت عادی غرب استرالیا", "HEPM": "وقت تابستانی سنت\u200cپیر و میکلون", "AEDT": "وقت تابستانی شرق استرالیا", "COT": "وقت عادی کلمبیا", "COST": "وقت تابستانی کلمبیا", "EDT": "وقت تابستانی شرق امریکا", "TMT": "وقت عادی ترکمنستان", "HNPMX": "وقت عادی شرق مکزیک", "ECT": "وقت اکوادور", "CHADT": "وقت تابستانی چت\u200cهام", "HECU": "وقت تابستانی کوبا"},
+ }
+ }
+ 
+diff --git a/fa_AF/fa_AF.go b/fa_AF/fa_AF.go
+index b76b3f0..5672523 100644
+--- a/fa_AF/fa_AF.go
++++ b/fa_AF/fa_AF.go
+@@ -48,30 +48,17 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{2, 6},
+ pluralsOrdinal: []locales.PluralRule{6},
+ pluralsRange: []locales.PluralRule{6},
+- decimal: "٫",
+- group: "٬",
+- minus: "‎−",
+- percent: "‎٪",
+- perMille: "؉",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: " ",
+ monthsAbbreviated: []string{"", "جنو", "فبروری", "مارچ", "اپریل", "می", "جون", "جول", "اگست", "سپتمبر", "اکتوبر", "نومبر", "دسم"},
+ monthsNarrow: []string{"", "ج", "ف", "م", "ا", "م", "ج", "ج", "ا", "س", "ا", "ن", "د"},
+ monthsWide: []string{"", "جنوری", "فبروری", "مارچ", "اپریل", "می", "جون", "جولای", "اگست", "سپتمبر", "اکتوبر", "نومبر", "دسمبر"},
+- daysAbbreviated: []string{"یکشنبه", "دوشنبه", "سه\u200cشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"},
+- daysNarrow: []string{"ی", "د", "س", "چ", "پ", "ج", "ش"},
+- daysShort: []string{"۱ش", "۲ش", "۳ش", "۴ش", "۵ش", "ج", "ش"},
+- daysWide: []string{"یکشنبه", "دوشنبه", "سه\u200cشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"},
+ periodsAbbreviated: []string{"", ""},
+ periodsNarrow: []string{"", ""},
+ periodsWide: []string{"", ""},
+- erasAbbreviated: []string{"ق.م.", "م."},
+- erasNarrow: []string{"ق", "م"},
+- erasWide: []string{"قبل از میلاد", "میلادی"},
+- timezones: map[string]string{"ARST": "وقت تابستانی آرژانتین", "LHST": "وقت عادی لردهو", "CHADT": "وقت تابستانی چت\u200cهام", "SGT": "وقت سنگاپور", "∅∅∅": "وقت تابستانی آمازون", "ACDT": "وقت تابستانی مرکز استرالیا", "AWDT": "وقت تابستانی غرب استرالیا", "HKST": "وقت تابستانی هنگ\u200cکنگ", "AST": "وقت عادی آتلانتیک", "GYT": "وقت گویان", "ACWDT": "وقت تابستانی مرکز-غرب استرالیا", "WITA": "وقت مرکز اندونزی", "MST": "وقت عادی ماکائو", "HADT": "وقت تابستانی هاوایی‐الوشن", "ACWST": "وقت عادی مرکز-غرب استرالیا", "ART": "وقت عادی آرژانتین", "CLST": "وقت تابستانی شیلی", "OESZ": "وقت تابستانی شرق اروپا", "CST": "وقت عادی مرکز امریکا", "WIB": "وقت غرب اندونزی", "PDT": "وقت تابستانی غرب امریکا", "HECU": "وقت تابستانی کوبا", "NZST": "وقت عادی زلاند نو", "VET": "وقت ونزوئلا", "IST": "وقت هند", "JDT": "وقت تابستانی ژاپن", "BT": "وقت بوتان", "SRT": "وقت سورینام", "WEZ": "وقت عادی غرب اروپا", "AWST": "وقت عادی غرب استرالیا", "HEPM": "وقت تابستانی سنت\u200cپیر و میکلون", "MEZ": "وقت عادی مرکز اروپا", "TMST": "وقت تابستانی ترکمنستان", "HNNOMX": "وقت عادی شمال غرب مکزیک", "HENOMX": "وقت تابستانی شمال غرب مکزیک", "EDT": "وقت تابستانی شرق امریکا", "LHDT": "وقت تابستانی لردهو", "WAT": "وقت عادی غرب افریقا", "MDT": "وقت تابستانی ماکائو", "ADT": "وقت تابستانی آتلانتیک", "HAST": "وقت عادی هاوایی‐الوشن", "MESZ": "وقت تابستانی مرکز اروپا", "GFT": "وقت گویان فرانسه", "ACST": "وقت عادی مرکز استرالیا", "ECT": "وقت اکوادور", "WESZ": "وقت تابستانی غرب اروپا", "HAT": "وقت تابستانی نیوفاندلند", "HEOG": "وقت تابستانی غرب گرینلند", "AEDT": "وقت تابستانی شرق استرالیا", "JST": "وقت عادی ژاپن", "ChST": "وقت عادی چامورو", "CAT": "وقت مرکز افریقا", "COT": "وقت عادی کلمبیا", "HNPMX": "وقت عادی شرق مکزیک", "HEPMX": "وقت تابستانی شرق مکزیک", "MYT": "وقت مالزی", "NZDT": "وقت تابستانی زلاند نو", "HEEG": "وقت تابستانی شرق گرینلند", "WARST": "وقت تابستانی غرب آرژانتین", "COST": "وقت تابستانی کلمبیا", "HNCU": "وقت عادی کوبا", "EST": "وقت عادی شرق امریکا", "UYT": "وقت عادی اروگوئه", "UYST": "وقت تابستانی اروگوئه", "CDT": "وقت تابستانی مرکز امریکا", "WIT": "وقت شرق اندونزی", "PST": "وقت عادی غرب امریکا", "HKT": "وقت عادی هنگ\u200cکنگ", "CLT": "وقت عادی شیلی", "HNEG": "وقت عادی شرق گرینلند", "TMT": "وقت عادی ترکمنستان", "AKST": "وقت عادی آلاسکا", "HNT": "وقت عادی نیوفاندلند", "HNOG": "وقت عادی غرب گرینلند", "CHAST": "وقت عادی چت\u200cهام", "SAST": "وقت عادی جنوب افریقا", "WART": "وقت عادی غرب آرژانتین", "AKDT": "وقت تابستانی آلاسکا", "GMT": "وقت گرینویچ", "AEST": "وقت عادی شرق استرالیا", "HNPM": "وقت عادی سنت\u200cپیر و میکلون", "BOT": "وقت بولیوی", "EAT": "وقت شرق افریقا", "WAST": "وقت تابستانی غرب افریقا", "OEZ": "وقت عادی شرق اروپا"},
++ timezones: map[string]string{"PDT": "PDT", "AEST": "AEST", "WESZ": "WESZ", "WIT": "WIT", "CLST": "CLST", "HNPM": "HNPM", "WEZ": "WEZ", "MDT": "MDT", "WIB": "WIB", "ChST": "ChST", "WITA": "WITA", "EAT": "EAT", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "AEDT": "AEDT", "HNPMX": "HNPMX", "HKT": "HKT", "BT": "BT", "ACWDT": "ACWDT", "VET": "VET", "WAT": "WAT", "WART": "WART", "EST": "EST", "EDT": "EDT", "CDT": "CDT", "HNEG": "HNEG", "HEEG": "HEEG", "HECU": "HECU", "COT": "COT", "HNOG": "HNOG", "MST": "MST", "ART": "ART", "MEZ": "MEZ", "PST": "PST", "CAT": "CAT", "UYT": "UYT", "HNCU": "HNCU", "HEPMX": "HEPMX", "NZST": "NZST", "SAST": "SAST", "SRT": "SRT", "HAST": "HAST", "ACST": "ACST", "HENOMX": "HENOMX", "MYT": "MYT", "IST": "IST", "AKST": "AKST", "BOT": "BOT", "HADT": "HADT", "CHADT": "CHADT", "WAST": "WAST", "HAT": "HAT", "COST": "COST", "ADT": "ADT", "SGT": "SGT", "OEZ": "OEZ", "GFT": "GFT", "CLT": "CLT", "HNT": "HNT", "TMST": "TMST", "AST": "AST", "GMT": "GMT", "ACDT": "ACDT", "JST": "JST", "OESZ": "OESZ", "WARST": "WARST", "GYT": "GYT", "LHDT": "LHDT", "HEPM": "HEPM", "HEOG": "HEOG", "NZDT": "NZDT", "LHST": "LHST", "TMT": "TMT", "ACWST": "ACWST", "AKDT": "AKDT", "HKST": "HKST", "MESZ": "MESZ", "AWST": "AWST", "CHAST": "CHAST", "UYST": "UYST", "∅∅∅": "∅∅∅", "ECT": "ECT", "JDT": "JDT", "CST": "CST", "ARST": "ARST"},
+ }
+ }
+ 
+@@ -191,83 +178,13 @@ func (fa *fa_AF) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fa_AF' and handles both Whole and Real numbers based on 'v'
+ func (fa *fa_AF) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 8 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(fa.decimal) - 1; j >= 0; j-- {
+- b = append(b, fa.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fa.group) - 1; j >= 0; j-- {
+- b = append(b, fa.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(fa.minus) - 1; j >= 0; j-- {
+- b = append(b, fa.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fa_AF' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fa *fa_AF) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 13
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(fa.decimal) - 1; j >= 0; j-- {
+- b = append(b, fa.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(fa.minus) - 1; j >= 0; j-- {
+- b = append(b, fa.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fa.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fa_AF'
+@@ -275,7 +192,7 @@ func (fa *fa_AF) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fa.currencies[currency]
+- l := len(s) + len(symbol) + 10 + 2*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -283,18 +200,14 @@ func (fa *fa_AF) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ for i := len(s) - 1; i >= 0; i-- {
+ 
+ if s[i] == '.' {
+- for j := len(fa.decimal) - 1; j >= 0; j-- {
+- b = append(b, fa.decimal[j])
+- }
++ b = append(b, fa.decimal[0])
+ inWhole = true
+ continue
+ }
+ 
+ if inWhole {
+ if count == 3 {
+- for j := len(fa.group) - 1; j >= 0; j-- {
+- b = append(b, fa.group[j])
+- }
++ b = append(b, fa.group[0])
+ count = 1
+ } else {
+ count++
+@@ -313,9 +226,7 @@ func (fa *fa_AF) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ }
+ 
+ if num < 0 {
+- for j := len(fa.minus) - 1; j >= 0; j-- {
+- b = append(b, fa.minus[j])
+- }
++ b = append(b, fa.minus[0])
+ }
+ 
+ // reverse
+@@ -343,7 +254,7 @@ func (fa *fa_AF) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fa.currencies[currency]
+- l := len(s) + len(symbol) + 10 + 2*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -351,18 +262,14 @@ func (fa *fa_AF) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ for i := len(s) - 1; i >= 0; i-- {
+ 
+ if s[i] == '.' {
+- for j := len(fa.decimal) - 1; j >= 0; j-- {
+- b = append(b, fa.decimal[j])
+- }
++ b = append(b, fa.decimal[0])
+ inWhole = true
+ continue
+ }
+ 
+ if inWhole {
+ if count == 3 {
+- for j := len(fa.group) - 1; j >= 0; j-- {
+- b = append(b, fa.group[j])
+- }
++ b = append(b, fa.group[0])
+ count = 1
+ } else {
+ count++
+@@ -382,9 +289,7 @@ func (fa *fa_AF) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ b = append(b, fa.currencyNegativePrefix[j])
+ }
+ 
+- for j := len(fa.minus) - 1; j >= 0; j-- {
+- b = append(b, fa.minus[j])
+- }
++ b = append(b, fa.minus[0])
+ 
+ } else {
+ 
+@@ -422,17 +327,6 @@ func (fa *fa_AF) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -441,17 +335,6 @@ func (fa *fa_AF) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fa.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -460,17 +343,6 @@ func (fa *fa_AF) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fa.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -479,19 +351,6 @@ func (fa *fa_AF) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fa.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fa.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -500,15 +359,6 @@ func (fa *fa_AF) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -517,22 +367,6 @@ func (fa *fa_AF) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -541,28 +375,6 @@ func (fa *fa_AF) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+ 
+@@ -571,32 +383,5 @@ func (fa *fa_AF) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fa.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/fa_IR/fa_IR.go b/fa_IR/fa_IR.go
+index 5d1b1d8..d45b3ae 100644
+--- a/fa_IR/fa_IR.go
++++ b/fa_IR/fa_IR.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type fa_IR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fa_IR' locale
+ func New() locales.Translator {
+ return &fa_IR{
+- locale: "fa_IR",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: "٫",
+- group: "٬",
+- minus: "‎−",
+- percent: "‎٪",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: "‎",
+- currencyNegativePrefix: "‎",
+- monthsAbbreviated: []string{"", "ژانویهٔ", "فوریهٔ", "مارس", "آوریل", "مهٔ", "ژوئن", "ژوئیهٔ", "اوت", "سپتامبر", "اکتبر", "نوامبر", "دسامبر"},
+- monthsNarrow: []string{"", "ژ", "ف", "م", "آ", "م", "ژ", "ژ", "ا", "س", "ا", "ن", "د"},
+- monthsWide: []string{"", "ژانویهٔ", "فوریهٔ", "مارس", "آوریل", "مهٔ", "ژوئن", "ژوئیهٔ", "اوت", "سپتامبر", "اکتبر", "نوامبر", "دسامبر"},
+- daysAbbreviated: []string{"یکشنبه", "دوشنبه", "سه\u200cشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"},
+- daysNarrow: []string{"ی", "د", "س", "چ", "پ", "ج", "ش"},
+- daysShort: []string{"۱ش", "۲ش", "۳ش", "۴ش", "۵ش", "ج", "ش"},
+- daysWide: []string{"یکشنبه", "دوشنبه", "سه\u200cشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"},
+- periodsAbbreviated: []string{"ق.ظ.", "ب.ظ."},
+- periodsNarrow: []string{"ق", "ب"},
+- periodsWide: []string{"قبل\u200cازظهر", "بعدازظهر"},
+- erasAbbreviated: []string{"ق.م.", "م."},
+- erasNarrow: []string{"ق", "م"},
+- erasWide: []string{"قبل از میلاد", "میلادی"},
+- timezones: map[string]string{"HNPM": "وقت عادی سنت\u200cپیر و میکلون", "CHADT": "وقت تابستانی چت\u200cهام", "IST": "وقت هند", "TMT": "وقت عادی ترکمنستان", "EAT": "وقت شرق افریقا", "ART": "وقت عادی آرژانتین", "AWST": "وقت عادی غرب استرالیا", "WARST": "وقت تابستانی غرب آرژانتین", "MYT": "وقت مالزی", "HKST": "وقت تابستانی هنگ\u200cکنگ", "JST": "وقت عادی ژاپن", "HNNOMX": "وقت عادی شمال غرب مکزیک", "AKDT": "وقت تابستانی آلاسکا", "MESZ": "وقت تابستانی مرکز اروپا", "WIB": "وقت غرب اندونزی", "ACST": "وقت عادی مرکز استرالیا", "ACDT": "وقت تابستانی مرکز استرالیا", "OEZ": "وقت عادی شرق اروپا", "HNCU": "وقت عادی کوبا", "HAST": "وقت عادی هاوایی‐الوشن", "ARST": "وقت تابستانی آرژانتین", "AEST": "وقت عادی شرق استرالیا", "SRT": "وقت سورینام", "WITA": "وقت مرکز اندونزی", "HEPM": "وقت تابستانی سنت\u200cپیر و میکلون", "CHAST": "وقت عادی چت\u200cهام", "∅∅∅": "وقت تابستانی آمازون", "TMST": "وقت تابستانی ترکمنستان", "ECT": "وقت اکوادور", "HECU": "وقت تابستانی کوبا", "LHDT": "وقت تابستانی لردهو", "WAST": "وقت تابستانی غرب افریقا", "UYT": "وقت عادی اروگوئه", "CST": "وقت عادی مرکز امریکا", "CDT": "وقت تابستانی مرکز امریکا", "WESZ": "وقت تابستانی غرب اروپا", "ACWST": "وقت عادی مرکز-غرب استرالیا", "HAT": "وقت تابستانی نیوفاندلند", "NZDT": "وقت تابستانی زلاند نو", "CLT": "وقت عادی شیلی", "GFT": "وقت گویان فرانسه", "HNPMX": "وقت عادی شرق مکزیک", "ADT": "وقت تابستانی آتلانتیک", "HADT": "وقت تابستانی هاوایی‐الوشن", "VET": "وقت ونزوئلا", "PST": "وقت عادی غرب امریکا", "HNT": "وقت عادی نیوفاندلند", "AEDT": "وقت تابستانی شرق استرالیا", "HKT": "وقت عادی هنگ\u200cکنگ", "SAST": "وقت عادی جنوب افریقا", "CLST": "وقت تابستانی شیلی", "SGT": "وقت سنگاپور", "AST": "وقت عادی آتلانتیک", "GYT": "وقت گویان", "UYST": "وقت تابستانی اروگوئه", "AKST": "وقت عادی آلاسکا", "WIT": "وقت شرق اندونزی", "BOT": "وقت بولیوی", "WAT": "وقت عادی غرب افریقا", "OESZ": "وقت تابستانی شرق اروپا", "COT": "وقت عادی کلمبیا", "COST": "وقت تابستانی کلمبیا", "ACWDT": "وقت تابستانی مرکز-غرب استرالیا", "LHST": "وقت عادی لردهو", "HNEG": "وقت عادی شرق گرینلند", "WART": "وقت عادی غرب آرژانتین", "GMT": "وقت گرینویچ", "EST": "وقت عادی شرق امریکا", "HEPMX": "وقت تابستانی شرق مکزیک", "BT": "وقت بوتان", "MEZ": "وقت عادی مرکز اروپا", "NZST": "وقت عادی زلاند نو", "JDT": "وقت تابستانی ژاپن", "HENOMX": "وقت تابستانی شمال غرب مکزیک", "MDT": "وقت تابستانی ماکائو", "PDT": "وقت تابستانی غرب امریکا", "WEZ": "وقت عادی غرب اروپا", "AWDT": "وقت تابستانی غرب استرالیا", "HEEG": "وقت تابستانی شرق گرینلند", "CAT": "وقت مرکز افریقا", "EDT": "وقت تابستانی شرق امریکا", "HNOG": "وقت عادی غرب گرینلند", "ChST": "وقت عادی چامورو", "MST": "وقت عادی ماکائو", "HEOG": "وقت تابستانی غرب گرینلند"},
++ locale: "fa_IR",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SRT": "SRT", "BT": "BT", "UYT": "UYT", "∅∅∅": "∅∅∅", "EDT": "EDT", "AWST": "AWST", "LHST": "LHST", "LHDT": "LHDT", "HEPM": "HEPM", "PST": "PST", "ACWST": "ACWST", "CHADT": "CHADT", "HAT": "HAT", "COST": "COST", "MDT": "MDT", "ARST": "ARST", "BOT": "BOT", "MEZ": "MEZ", "ACDT": "ACDT", "JDT": "JDT", "IST": "IST", "ACWDT": "ACWDT", "AEST": "AEST", "HNT": "HNT", "NZDT": "NZDT", "MYT": "MYT", "HNPM": "HNPM", "OEZ": "OEZ", "CHAST": "CHAST", "VET": "VET", "OESZ": "OESZ", "CDT": "CDT", "WEZ": "WEZ", "AKST": "AKST", "HEOG": "HEOG", "HKST": "HKST", "CST": "CST", "PDT": "PDT", "AEDT": "AEDT", "WIT": "WIT", "SAST": "SAST", "HEPMX": "HEPMX", "WAST": "WAST", "GFT": "GFT", "GYT": "GYT", "EST": "EST", "TMT": "TMT", "GMT": "GMT", "ART": "ART", "JST": "JST", "COT": "COT", "HKT": "HKT", "TMST": "TMST", "WITA": "WITA", "ADT": "ADT", "HNEG": "HNEG", "HENOMX": "HENOMX", "SGT": "SGT", "NZST": "NZST", "WESZ": "WESZ", "HNCU": "HNCU", "HNPMX": "HNPMX", "EAT": "EAT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "CAT": "CAT", "ECT": "ECT", "HADT": "HADT", "MESZ": "MESZ", "AWDT": "AWDT", "WAT": "WAT", "HNOG": "HNOG", "WIB": "WIB", "HAST": "HAST", "ACST": "ACST", "UYST": "UYST", "WARST": "WARST", "CLT": "CLT", "ChST": "ChST", "CLST": "CLST", "MST": "MST", "AST": "AST", "HECU": "HECU", "AKDT": "AKDT", "WART": "WART"},
+ }
+ }
+ 
+@@ -125,7 +102,7 @@ func (fa *fa_IR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fa *fa_IR) MonthsAbbreviated() []string {
+- return fa.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -135,7 +112,7 @@ func (fa *fa_IR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fa *fa_IR) MonthsNarrow() []string {
+- return fa.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -145,7 +122,7 @@ func (fa *fa_IR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fa *fa_IR) MonthsWide() []string {
+- return fa.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -191,83 +168,13 @@ func (fa *fa_IR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fa_IR' and handles both Whole and Real numbers based on 'v'
+ func (fa *fa_IR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 8 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(fa.decimal) - 1; j >= 0; j-- {
+- b = append(b, fa.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fa.group) - 1; j >= 0; j-- {
+- b = append(b, fa.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(fa.minus) - 1; j >= 0; j-- {
+- b = append(b, fa.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fa_IR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fa *fa_IR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 13
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(fa.decimal) - 1; j >= 0; j-- {
+- b = append(b, fa.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(fa.minus) - 1; j >= 0; j-- {
+- b = append(b, fa.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fa.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fa_IR'
+@@ -275,66 +182,7 @@ func (fa *fa_IR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fa.currencies[currency]
+- l := len(s) + len(symbol) + 11 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(fa.decimal) - 1; j >= 0; j-- {
+- b = append(b, fa.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fa.group) - 1; j >= 0; j-- {
+- b = append(b, fa.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(fa.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, fa.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- for j := len(fa.minus) - 1; j >= 0; j-- {
+- b = append(b, fa.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fa.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fa_IR'
+@@ -343,78 +191,7 @@ func (fa *fa_IR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fa.currencies[currency]
+- l := len(s) + len(symbol) + 11 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(fa.decimal) - 1; j >= 0; j-- {
+- b = append(b, fa.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fa.group) - 1; j >= 0; j-- {
+- b = append(b, fa.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(fa.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, fa.currencyNegativePrefix[j])
+- }
+-
+- for j := len(fa.minus) - 1; j >= 0; j-- {
+- b = append(b, fa.minus[j])
+- }
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(fa.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, fa.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fa.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fa_IR'
+@@ -422,17 +199,6 @@ func (fa *fa_IR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -441,17 +207,6 @@ func (fa *fa_IR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fa.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -460,17 +215,6 @@ func (fa *fa_IR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fa.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -479,19 +223,6 @@ func (fa *fa_IR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fa.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fa.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -500,15 +231,6 @@ func (fa *fa_IR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -517,22 +239,6 @@ func (fa *fa_IR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -541,28 +247,6 @@ func (fa *fa_IR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+ 
+@@ -571,32 +255,5 @@ func (fa *fa_IR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fa.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/ff/ff.go b/ff/ff.go
+index 8af14a0..e52d449 100644
+--- a/ff/ff.go
++++ b/ff/ff.go
+@@ -65,7 +65,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"H-I", "C-I"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Hade Iisa", "Caggal Iisa"},
+- timezones: map[string]string{"TMT": "TMT", "WARST": "WARST", "HNT": "HNT", "CLT": "CLT", "CLST": "CLST", "AKDT": "AKDT", "MESZ": "MESZ", "HNPM": "HNPM", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "COST": "COST", "AEST": "AEST", "CAT": "CAT", "SRT": "SRT", "JDT": "JDT", "TMST": "TMST", "ChST": "ChST", "BOT": "BOT", "CST": "CST", "UYST": "UYST", "WIT": "WIT", "WESZ": "WESZ", "GMT": "GMT", "SGT": "SGT", "EST": "EST", "AKST": "AKST", "HEPM": "HEPM", "HEOG": "HEOG", "HKT": "HKT", "∅∅∅": "∅∅∅", "EDT": "EDT", "AST": "AST", "UYT": "UYT", "WAST": "WAST", "CHADT": "CHADT", "MEZ": "MEZ", "ACST": "ACST", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "HAT": "HAT", "WEZ": "WEZ", "NZST": "NZST", "HEEG": "HEEG", "EAT": "EAT", "HAST": "HAST", "ARST": "ARST", "WIB": "WIB", "ACWST": "ACWST", "WITA": "WITA", "AEDT": "AEDT", "GFT": "GFT", "ECT": "ECT", "HEPMX": "HEPMX", "ADT": "ADT", "LHST": "LHST", "GYT": "GYT", "VET": "VET", "HKST": "HKST", "LHDT": "LHDT", "HNCU": "HNCU", "MST": "MST", "MYT": "MYT", "AWST": "AWST", "HNOG": "HNOG", "NZDT": "NZDT", "JST": "JST", "HNEG": "HNEG", "OEZ": "OEZ", "HNPMX": "HNPMX", "ART": "ART", "PDT": "PDT", "CHAST": "CHAST", "SAST": "SAST", "IST": "IST", "WART": "WART", "BT": "BT", "AWDT": "AWDT", "WAT": "WAT", "COT": "COT", "CDT": "CDT", "PST": "PST", "OESZ": "OESZ", "HECU": "HECU", "MDT": "MDT", "HADT": "HADT"},
++ timezones: map[string]string{"ACWST": "ACWST", "OEZ": "OEZ", "HNPM": "HNPM", "JDT": "JDT", "CHADT": "CHADT", "HNOG": "HNOG", "HEEG": "HEEG", "AWDT": "AWDT", "SAST": "SAST", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "MDT": "MDT", "WIB": "WIB", "LHST": "LHST", "MESZ": "MESZ", "HNEG": "HNEG", "CHAST": "CHAST", "HEPMX": "HEPMX", "CST": "CST", "AST": "AST", "EAT": "EAT", "WEZ": "WEZ", "CAT": "CAT", "WITA": "WITA", "MEZ": "MEZ", "AWST": "AWST", "BT": "BT", "WART": "WART", "ARST": "ARST", "HADT": "HADT", "AEST": "AEST", "ACST": "ACST", "IST": "IST", "PST": "PST", "VET": "VET", "HECU": "HECU", "ART": "ART", "SRT": "SRT", "HAST": "HAST", "WIT": "WIT", "EDT": "EDT", "EST": "EST", "ECT": "ECT", "AKST": "AKST", "WARST": "WARST", "HNCU": "HNCU", "HEOG": "HEOG", "HKT": "HKT", "NZDT": "NZDT", "UYST": "UYST", "ACWDT": "ACWDT", "BOT": "BOT", "WAST": "WAST", "HAT": "HAT", "TMST": "TMST", "ADT": "ADT", "MYT": "MYT", "GFT": "GFT", "HNNOMX": "HNNOMX", "PDT": "PDT", "TMT": "TMT", "COST": "COST", "HKST": "HKST", "MST": "MST", "HNT": "HNT", "GYT": "GYT", "WAT": "WAT", "OESZ": "OESZ", "CLST": "CLST", "GMT": "GMT", "LHDT": "LHDT", "AEDT": "AEDT", "HNPMX": "HNPMX", "AKDT": "AKDT", "ACDT": "ACDT", "JST": "JST", "SGT": "SGT", "HENOMX": "HENOMX", "HEPM": "HEPM", "UYT": "UYT", "COT": "COT", "CLT": "CLT", "CDT": "CDT", "NZST": "NZST", "ChST": "ChST"},
+ }
+ }
+ 
+diff --git a/ff_CM/ff_CM.go b/ff_CM/ff_CM.go
+index 7252f14..4a7b95a 100644
+--- a/ff_CM/ff_CM.go
++++ b/ff_CM/ff_CM.go
+@@ -10,62 +10,45 @@ import (
+ )
+ 
+ type ff_CM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ff_CM' locale
+ func New() locales.Translator {
+ return &ff_CM{
+- locale: "ff_CM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "sii", "col", "mbo", "see", "duu", "kor", "mor", "juk", "slt", "yar", "jol", "bow"},
+- monthsNarrow: []string{"", "s", "c", "m", "s", "d", "k", "m", "j", "s", "y", "j", "b"},
+- monthsWide: []string{"", "siilo", "colte", "mbooy", "seeɗto", "duujal", "korse", "morso", "juko", "siilto", "yarkomaa", "jolal", "bowte"},
+- daysAbbreviated: []string{"dew", "aaɓ", "maw", "nje", "naa", "mwd", "hbi"},
+- daysNarrow: []string{"d", "a", "m", "n", "n", "m", "h"},
+- daysWide: []string{"dewo", "aaɓnde", "mawbaare", "njeslaare", "naasaande", "mawnde", "hoore-biir"},
+- periodsAbbreviated: []string{"subaka", "kikiiɗe"},
+- periodsWide: []string{"subaka", "kikiiɗe"},
+- erasAbbreviated: []string{"H-I", "C-I"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Hade Iisa", "Caggal Iisa"},
+- timezones: map[string]string{"GYT": "GYT", "HADT": "HADT", "PST": "PST", "ACWST": "ACWST", "EAT": "EAT", "HECU": "HECU", "HEPMX": "HEPMX", "HAST": "HAST", "ACWDT": "ACWDT", "JST": "JST", "CAT": "CAT", "WAT": "WAT", "BOT": "BOT", "GFT": "GFT", "WAST": "WAST", "MST": "MST", "WITA": "WITA", "NZST": "NZST", "CHADT": "CHADT", "CLST": "CLST", "UYT": "UYT", "SRT": "SRT", "WIT": "WIT", "HNOG": "HNOG", "AEST": "AEST", "AWDT": "AWDT", "EST": "EST", "ARST": "ARST", "∅∅∅": "∅∅∅", "SGT": "SGT", "MDT": "MDT", "COST": "COST", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "HEOG": "HEOG", "MEZ": "MEZ", "NZDT": "NZDT", "JDT": "JDT", "CHAST": "CHAST", "SAST": "SAST", "GMT": "GMT", "BT": "BT", "HNT": "HNT", "ART": "ART", "MESZ": "MESZ", "LHDT": "LHDT", "HKT": "HKT", "HKST": "HKST", "EDT": "EDT", "WART": "WART", "AWST": "AWST", "HEPM": "HEPM", "CLT": "CLT", "HNEG": "HNEG", "TMST": "TMST", "OESZ": "OESZ", "UYST": "UYST", "ADT": "ADT", "WESZ": "WESZ", "HAT": "HAT", "AEDT": "AEDT", "ChST": "ChST", "HNPM": "HNPM", "IST": "IST", "COT": "COT", "CST": "CST", "HNPMX": "HNPMX", "AKDT": "AKDT", "PDT": "PDT", "LHST": "LHST", "ACST": "ACST", "ACDT": "ACDT", "MYT": "MYT", "CDT": "CDT", "WIB": "WIB", "VET": "VET", "WEZ": "WEZ", "HEEG": "HEEG", "OEZ": "OEZ", "ECT": "ECT", "AST": "AST", "TMT": "TMT", "WARST": "WARST", "HENOMX": "HENOMX", "AKST": "AKST"},
++ locale: "ff_CM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNCU": "HNCU", "HECU": "HECU", "WAT": "WAT", "GYT": "GYT", "SRT": "SRT", "MEZ": "MEZ", "HEPM": "HEPM", "AKST": "AKST", "OEZ": "OEZ", "JST": "JST", "IST": "IST", "VET": "VET", "TMT": "TMT", "CLST": "CLST", "CST": "CST", "ACWST": "ACWST", "HNT": "HNT", "WART": "WART", "EAT": "EAT", "ACDT": "ACDT", "PDT": "PDT", "CLT": "CLT", "CDT": "CDT", "ChST": "ChST", "WEZ": "WEZ", "HKST": "HKST", "WITA": "WITA", "ADT": "ADT", "HAST": "HAST", "HNEG": "HNEG", "HNPM": "HNPM", "CHAST": "CHAST", "CHADT": "CHADT", "GFT": "GFT", "CAT": "CAT", "MESZ": "MESZ", "HEEG": "HEEG", "HAT": "HAT", "EDT": "EDT", "HKT": "HKT", "NZST": "NZST", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "WAST": "WAST", "WARST": "WARST", "HNOG": "HNOG", "EST": "EST", "NZDT": "NZDT", "AST": "AST", "HADT": "HADT", "ACST": "ACST", "BT": "BT", "UYST": "UYST", "TMST": "TMST", "MYT": "MYT", "COST": "COST", "HEOG": "HEOG", "BOT": "BOT", "PST": "PST", "AKDT": "AKDT", "AEST": "AEST", "COT": "COT", "MDT": "MDT", "WIB": "WIB", "ART": "ART", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "OESZ": "OESZ", "SAST": "SAST", "MST": "MST", "SGT": "SGT", "HEPMX": "HEPMX", "WIT": "WIT", "ECT": "ECT", "AWST": "AWST", "AWDT": "AWDT", "LHST": "LHST", "LHDT": "LHDT", "JDT": "JDT", "UYT": "UYT", "WESZ": "WESZ", "GMT": "GMT", "ARST": "ARST"},
+ }
+ }
+ 
+@@ -119,7 +102,7 @@ func (ff *ff_CM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ff *ff_CM) MonthsAbbreviated() []string {
+- return ff.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -129,7 +112,7 @@ func (ff *ff_CM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ff *ff_CM) MonthsNarrow() []string {
+- return ff.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -139,7 +122,7 @@ func (ff *ff_CM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ff *ff_CM) MonthsWide() []string {
+- return ff.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -199,58 +182,7 @@ func (ff *ff_CM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ff.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ff.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ff.group) - 1; j >= 0; j-- {
+- b = append(b, ff.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ff.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ff.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ff.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ff_CM'
+@@ -259,65 +191,7 @@ func (ff *ff_CM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ff.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ff.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ff.group) - 1; j >= 0; j-- {
+- b = append(b, ff.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ff.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ff.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ff.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ff.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ff_CM'
+@@ -325,17 +199,6 @@ func (ff *ff_CM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -344,17 +207,6 @@ func (ff *ff_CM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ff.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -363,17 +215,6 @@ func (ff *ff_CM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ff.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -382,19 +223,6 @@ func (ff *ff_CM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ff.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ff.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -403,19 +231,6 @@ func (ff *ff_CM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -424,26 +239,6 @@ func (ff *ff_CM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -452,30 +247,6 @@ func (ff *ff_CM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -484,34 +255,5 @@ func (ff *ff_CM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ff.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ff_GN/ff_GN.go b/ff_GN/ff_GN.go
+index 87b5ba0..3dd1f0f 100644
+--- a/ff_GN/ff_GN.go
++++ b/ff_GN/ff_GN.go
+@@ -10,62 +10,45 @@ import (
+ )
+ 
+ type ff_GN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ff_GN' locale
+ func New() locales.Translator {
+ return &ff_GN{
+- locale: "ff_GN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "FG", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "sii", "col", "mbo", "see", "duu", "kor", "mor", "juk", "slt", "yar", "jol", "bow"},
+- monthsNarrow: []string{"", "s", "c", "m", "s", "d", "k", "m", "j", "s", "y", "j", "b"},
+- monthsWide: []string{"", "siilo", "colte", "mbooy", "seeɗto", "duujal", "korse", "morso", "juko", "siilto", "yarkomaa", "jolal", "bowte"},
+- daysAbbreviated: []string{"dew", "aaɓ", "maw", "nje", "naa", "mwd", "hbi"},
+- daysNarrow: []string{"d", "a", "m", "n", "n", "m", "h"},
+- daysWide: []string{"dewo", "aaɓnde", "mawbaare", "njeslaare", "naasaande", "mawnde", "hoore-biir"},
+- periodsAbbreviated: []string{"subaka", "kikiiɗe"},
+- periodsWide: []string{"subaka", "kikiiɗe"},
+- erasAbbreviated: []string{"H-I", "C-I"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Hade Iisa", "Caggal Iisa"},
+- timezones: map[string]string{"EAT": "EAT", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "HNOG": "HNOG", "WITA": "WITA", "NZDT": "NZDT", "IST": "IST", "JST": "JST", "GYT": "GYT", "WEZ": "WEZ", "ACWST": "ACWST", "SAST": "SAST", "CST": "CST", "HNT": "HNT", "JDT": "JDT", "ACST": "ACST", "WART": "WART", "CDT": "CDT", "AST": "AST", "AEST": "AEST", "HEPM": "HEPM", "LHDT": "LHDT", "CLT": "CLT", "GFT": "GFT", "CAT": "CAT", "MDT": "MDT", "AKDT": "AKDT", "PST": "PST", "WESZ": "WESZ", "MEZ": "MEZ", "NZST": "NZST", "TMT": "TMT", "SGT": "SGT", "VET": "VET", "WIT": "WIT", "OESZ": "OESZ", "HENOMX": "HENOMX", "HNCU": "HNCU", "EDT": "EDT", "MST": "MST", "SRT": "SRT", "AEDT": "AEDT", "CHADT": "CHADT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "HNPM": "HNPM", "LHST": "LHST", "ECT": "ECT", "WARST": "WARST", "COST": "COST", "GMT": "GMT", "ChST": "ChST", "HNEG": "HNEG", "HAST": "HAST", "ART": "ART", "EST": "EST", "AWDT": "AWDT", "HKST": "HKST", "∅∅∅": "∅∅∅", "UYT": "UYT", "HADT": "HADT", "HEOG": "HEOG", "AWST": "AWST", "HKT": "HKT", "WAT": "WAT", "HECU": "HECU", "AKST": "AKST", "PDT": "PDT", "ARST": "ARST", "BOT": "BOT", "TMST": "TMST", "WAST": "WAST", "OEZ": "OEZ", "CHAST": "CHAST", "HEEG": "HEEG", "MYT": "MYT", "UYST": "UYST", "ADT": "ADT", "BT": "BT", "HAT": "HAT", "MESZ": "MESZ", "CLST": "CLST", "ACDT": "ACDT", "COT": "COT", "WIB": "WIB"},
++ locale: "ff_GN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "FG", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WAST": "WAST", "WART": "WART", "HEOG": "HEOG", "CST": "CST", "GMT": "GMT", "OESZ": "OESZ", "MDT": "MDT", "HADT": "HADT", "ACST": "ACST", "AWDT": "AWDT", "IST": "IST", "ACWST": "ACWST", "VET": "VET", "WARST": "WARST", "COST": "COST", "CAT": "CAT", "WIB": "WIB", "NZST": "NZST", "AST": "AST", "PST": "PST", "HECU": "HECU", "HNT": "HNT", "NZDT": "NZDT", "ARST": "ARST", "HAT": "HAT", "SAST": "SAST", "GYT": "GYT", "HKT": "HKT", "ART": "ART", "CDT": "CDT", "HAST": "HAST", "MYT": "MYT", "HNPM": "HNPM", "HNPMX": "HNPMX", "AKST": "AKST", "OEZ": "OEZ", "CLST": "CLST", "MEZ": "MEZ", "∅∅∅": "∅∅∅", "PDT": "PDT", "AKDT": "AKDT", "WIT": "WIT", "BOT": "BOT", "EAT": "EAT", "HKST": "HKST", "TMT": "TMT", "AWST": "AWST", "EST": "EST", "CLT": "CLT", "ADT": "ADT", "HEEG": "HEEG", "LHDT": "LHDT", "HEPMX": "HEPMX", "SGT": "SGT", "TMST": "TMST", "ACDT": "ACDT", "JST": "JST", "AEST": "AEST", "UYT": "UYT", "WEZ": "WEZ", "HNCU": "HNCU", "SRT": "SRT", "HENOMX": "HENOMX", "CHADT": "CHADT", "UYST": "UYST", "EDT": "EDT", "ChST": "ChST", "WAT": "WAT", "GFT": "GFT", "HNNOMX": "HNNOMX", "JDT": "JDT", "HEPM": "HEPM", "CHAST": "CHAST", "BT": "BT", "HNEG": "HNEG", "AEDT": "AEDT", "ACWDT": "ACWDT", "HNOG": "HNOG", "WITA": "WITA", "MST": "MST", "MESZ": "MESZ", "LHST": "LHST", "ECT": "ECT", "WESZ": "WESZ", "COT": "COT"},
+ }
+ }
+ 
+@@ -119,7 +102,7 @@ func (ff *ff_GN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ff *ff_GN) MonthsAbbreviated() []string {
+- return ff.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -129,7 +112,7 @@ func (ff *ff_GN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ff *ff_GN) MonthsNarrow() []string {
+- return ff.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -139,7 +122,7 @@ func (ff *ff_GN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ff *ff_GN) MonthsWide() []string {
+- return ff.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -199,58 +182,7 @@ func (ff *ff_GN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ff.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ff.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ff.group) - 1; j >= 0; j-- {
+- b = append(b, ff.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ff.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ff.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ff.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ff_GN'
+@@ -259,65 +191,7 @@ func (ff *ff_GN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ff.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ff.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ff.group) - 1; j >= 0; j-- {
+- b = append(b, ff.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ff.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ff.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ff.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ff.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ff_GN'
+@@ -325,17 +199,6 @@ func (ff *ff_GN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -344,17 +207,6 @@ func (ff *ff_GN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ff.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -363,17 +215,6 @@ func (ff *ff_GN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ff.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -382,19 +223,6 @@ func (ff *ff_GN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ff.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ff.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -403,19 +231,6 @@ func (ff *ff_GN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -424,26 +239,6 @@ func (ff *ff_GN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -452,30 +247,6 @@ func (ff *ff_GN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -484,34 +255,5 @@ func (ff *ff_GN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ff.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ff_MR/ff_MR.go b/ff_MR/ff_MR.go
+index af3cb35..3e17a5c 100644
+--- a/ff_MR/ff_MR.go
++++ b/ff_MR/ff_MR.go
+@@ -10,62 +10,45 @@ import (
+ )
+ 
+ type ff_MR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ff_MR' locale
+ func New() locales.Translator {
+ return &ff_MR{
+- locale: "ff_MR",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "UM", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "sii", "col", "mbo", "see", "duu", "kor", "mor", "juk", "slt", "yar", "jol", "bow"},
+- monthsNarrow: []string{"", "s", "c", "m", "s", "d", "k", "m", "j", "s", "y", "j", "b"},
+- monthsWide: []string{"", "siilo", "colte", "mbooy", "seeɗto", "duujal", "korse", "morso", "juko", "siilto", "yarkomaa", "jolal", "bowte"},
+- daysAbbreviated: []string{"dew", "aaɓ", "maw", "nje", "naa", "mwd", "hbi"},
+- daysNarrow: []string{"d", "a", "m", "n", "n", "m", "h"},
+- daysWide: []string{"dewo", "aaɓnde", "mawbaare", "njeslaare", "naasaande", "mawnde", "hoore-biir"},
+- periodsAbbreviated: []string{"subaka", "kikiiɗe"},
+- periodsWide: []string{"subaka", "kikiiɗe"},
+- erasAbbreviated: []string{"H-I", "C-I"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Hade Iisa", "Caggal Iisa"},
+- timezones: map[string]string{"AST": "AST", "UYST": "UYST", "SAST": "SAST", "COST": "COST", "ACWST": "ACWST", "CLST": "CLST", "HENOMX": "HENOMX", "AEDT": "AEDT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "WESZ": "WESZ", "NZDT": "NZDT", "CHADT": "CHADT", "CLT": "CLT", "HNCU": "HNCU", "HECU": "HECU", "AKST": "AKST", "VET": "VET", "HEOG": "HEOG", "AWDT": "AWDT", "ECT": "ECT", "HAST": "HAST", "SRT": "SRT", "PST": "PST", "HNT": "HNT", "MEZ": "MEZ", "MESZ": "MESZ", "EST": "EST", "UYT": "UYT", "HADT": "HADT", "ART": "ART", "HNPM": "HNPM", "NZST": "NZST", "TMST": "TMST", "HNNOMX": "HNNOMX", "AWST": "AWST", "LHST": "LHST", "IST": "IST", "HEEG": "HEEG", "TMT": "TMT", "WAT": "WAT", "MST": "MST", "MDT": "MDT", "WIT": "WIT", "ACWDT": "ACWDT", "HAT": "HAT", "ARST": "ARST", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "AKDT": "AKDT", "CST": "CST", "MYT": "MYT", "BT": "BT", "ACST": "ACST", "CAT": "CAT", "WARST": "WARST", "AEST": "AEST", "HKST": "HKST", "LHDT": "LHDT", "JST": "JST", "JDT": "JDT", "ACDT": "ACDT", "GFT": "GFT", "WITA": "WITA", "HNEG": "HNEG", "WAST": "WAST", "ChST": "ChST", "HNOG": "HNOG", "CDT": "CDT", "WEZ": "WEZ", "HKT": "HKT", "BOT": "BOT", "EAT": "EAT", "WART": "WART", "COT": "COT", "GYT": "GYT", "WIB": "WIB", "OEZ": "OEZ", "SGT": "SGT", "EDT": "EDT", "ADT": "ADT", "PDT": "PDT", "HEPM": "HEPM", "CHAST": "CHAST", "GMT": "GMT"},
++ locale: "ff_MR",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "UM", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MESZ": "MESZ", "CAT": "CAT", "ECT": "ECT", "WIB": "WIB", "AWDT": "AWDT", "CHADT": "CHADT", "HAT": "HAT", "WIT": "WIT", "HNOG": "HNOG", "CLST": "CLST", "CDT": "CDT", "ACST": "ACST", "HECU": "HECU", "HNPMX": "HNPMX", "PST": "PST", "PDT": "PDT", "HNEG": "HNEG", "HEEG": "HEEG", "HEPM": "HEPM", "GMT": "GMT", "CHAST": "CHAST", "HEPMX": "HEPMX", "WITA": "WITA", "MST": "MST", "ACDT": "ACDT", "LHST": "LHST", "UYT": "UYT", "UYST": "UYST", "TMT": "TMT", "NZST": "NZST", "ADT": "ADT", "LHDT": "LHDT", "IST": "IST", "SGT": "SGT", "VET": "VET", "HNT": "HNT", "HEOG": "HEOG", "CST": "CST", "HKT": "HKT", "HNPM": "HNPM", "BT": "BT", "WESZ": "WESZ", "HNCU": "HNCU", "WAT": "WAT", "WARST": "WARST", "COT": "COT", "TMST": "TMST", "ARST": "ARST", "BOT": "BOT", "MEZ": "MEZ", "AEST": "AEST", "ACWST": "ACWST", "GFT": "GFT", "AST": "AST", "HNNOMX": "HNNOMX", "AWST": "AWST", "ACWDT": "ACWDT", "WEZ": "WEZ", "WART": "WART", "GYT": "GYT", "HADT": "HADT", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "AKST": "AKST", "ChST": "ChST", "NZDT": "NZDT", "JST": "JST", "WAST": "WAST", "SAST": "SAST", "COST": "COST", "EDT": "EDT", "HKST": "HKST", "CLT": "CLT", "EAT": "EAT", "JDT": "JDT", "AKDT": "AKDT", "OEZ": "OEZ", "SRT": "SRT", "HAST": "HAST", "HENOMX": "HENOMX", "MYT": "MYT", "OESZ": "OESZ", "EST": "EST", "MDT": "MDT", "ART": "ART"},
+ }
+ }
+ 
+@@ -119,7 +102,7 @@ func (ff *ff_MR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ff *ff_MR) MonthsAbbreviated() []string {
+- return ff.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -129,7 +112,7 @@ func (ff *ff_MR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ff *ff_MR) MonthsNarrow() []string {
+- return ff.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -139,7 +122,7 @@ func (ff *ff_MR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ff *ff_MR) MonthsWide() []string {
+- return ff.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -199,58 +182,7 @@ func (ff *ff_MR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ff.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ff.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ff.group) - 1; j >= 0; j-- {
+- b = append(b, ff.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ff.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ff.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ff.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ff_MR'
+@@ -259,65 +191,7 @@ func (ff *ff_MR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ff.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ff.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ff.group) - 1; j >= 0; j-- {
+- b = append(b, ff.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ff.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ff.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ff.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ff.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ff_MR'
+@@ -325,17 +199,6 @@ func (ff *ff_MR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -344,17 +207,6 @@ func (ff *ff_MR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ff.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -363,17 +215,6 @@ func (ff *ff_MR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ff.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -382,19 +223,6 @@ func (ff *ff_MR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ff.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ff.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/ff_SN/ff_SN.go b/ff_SN/ff_SN.go
+index 48ade0d..ad53ec1 100644
+--- a/ff_SN/ff_SN.go
++++ b/ff_SN/ff_SN.go
+@@ -10,62 +10,45 @@ import (
+ )
+ 
+ type ff_SN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ff_SN' locale
+ func New() locales.Translator {
+ return &ff_SN{
+- locale: "ff_SN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "sii", "col", "mbo", "see", "duu", "kor", "mor", "juk", "slt", "yar", "jol", "bow"},
+- monthsNarrow: []string{"", "s", "c", "m", "s", "d", "k", "m", "j", "s", "y", "j", "b"},
+- monthsWide: []string{"", "siilo", "colte", "mbooy", "seeɗto", "duujal", "korse", "morso", "juko", "siilto", "yarkomaa", "jolal", "bowte"},
+- daysAbbreviated: []string{"dew", "aaɓ", "maw", "nje", "naa", "mwd", "hbi"},
+- daysNarrow: []string{"d", "a", "m", "n", "n", "m", "h"},
+- daysWide: []string{"dewo", "aaɓnde", "mawbaare", "njeslaare", "naasaande", "mawnde", "hoore-biir"},
+- periodsAbbreviated: []string{"subaka", "kikiiɗe"},
+- periodsWide: []string{"subaka", "kikiiɗe"},
+- erasAbbreviated: []string{"H-I", "C-I"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Hade Iisa", "Caggal Iisa"},
+- timezones: map[string]string{"CDT": "CDT", "HEOG": "HEOG", "JDT": "JDT", "ADT": "ADT", "CHAST": "CHAST", "HAST": "HAST", "BT": "BT", "ART": "ART", "WESZ": "WESZ", "ACWST": "ACWST", "CHADT": "CHADT", "CLST": "CLST", "GFT": "GFT", "EAT": "EAT", "AST": "AST", "AWDT": "AWDT", "SAST": "SAST", "COT": "COT", "MYT": "MYT", "LHDT": "LHDT", "JST": "JST", "CLT": "CLT", "WAT": "WAT", "OESZ": "OESZ", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "MST": "MST", "PDT": "PDT", "ACWDT": "ACWDT", "TMST": "TMST", "ChST": "ChST", "AKST": "AKST", "LHST": "LHST", "MEZ": "MEZ", "IST": "IST", "HNEG": "HNEG", "HEEG": "HEEG", "EDT": "EDT", "WIB": "WIB", "AEST": "AEST", "WITA": "WITA", "HNOG": "HNOG", "HNT": "HNT", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "MDT": "MDT", "UYST": "UYST", "WIT": "WIT", "SRT": "SRT", "AWST": "AWST", "HEPM": "HEPM", "CAT": "CAT", "SGT": "SGT", "HNCU": "HNCU", "HECU": "HECU", "GYT": "GYT", "VET": "VET", "BOT": "BOT", "ECT": "ECT", "PST": "PST", "MESZ": "MESZ", "NZST": "NZST", "COST": "COST", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "AKDT": "AKDT", "HKT": "HKT", "HNPM": "HNPM", "ACST": "ACST", "WART": "WART", "EST": "EST", "ARST": "ARST", "AEDT": "AEDT", "HKST": "HKST", "WAST": "WAST", "HEPMX": "HEPMX", "UYT": "UYT", "HADT": "HADT", "WEZ": "WEZ", "TMT": "TMT", "WARST": "WARST", "GMT": "GMT", "CST": "CST", "HAT": "HAT", "NZDT": "NZDT"},
++ locale: "ff_SN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"JST": "JST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "HAT": "HAT", "NZDT": "NZDT", "CST": "CST", "HAST": "HAST", "CHADT": "CHADT", "HEOG": "HEOG", "HKST": "HKST", "SRT": "SRT", "HEEG": "HEEG", "ACWDT": "ACWDT", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "WAT": "WAT", "HNT": "HNT", "GYT": "GYT", "AWDT": "AWDT", "WESZ": "WESZ", "CLT": "CLT", "HNPM": "HNPM", "JDT": "JDT", "IST": "IST", "COT": "COT", "EST": "EST", "EDT": "EDT", "ADT": "ADT", "ART": "ART", "HNEG": "HNEG", "AKDT": "AKDT", "OESZ": "OESZ", "TMST": "TMST", "WITA": "WITA", "HKT": "HKT", "CLST": "CLST", "AST": "AST", "HENOMX": "HENOMX", "MYT": "MYT", "AWST": "AWST", "TMT": "TMT", "WIB": "WIB", "HADT": "HADT", "MESZ": "MESZ", "ECT": "ECT", "ChST": "ChST", "LHST": "LHST", "UYST": "UYST", "VET": "VET", "WARST": "WARST", "COST": "COST", "SAST": "SAST", "HEPM": "HEPM", "AEST": "AEST", "AKST": "AKST", "WART": "WART", "MDT": "MDT", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "GFT": "GFT", "EAT": "EAT", "ACDT": "ACDT", "LHDT": "LHDT", "CHAST": "CHAST", "SGT": "SGT", "HECU": "HECU", "CAT": "CAT", "ARST": "ARST", "GMT": "GMT", "PDT": "PDT", "BT": "BT", "WAST": "WAST", "WIT": "WIT", "MST": "MST", "NZST": "NZST", "BOT": "BOT", "ACST": "ACST", "PST": "PST", "WEZ": "WEZ", "OEZ": "OEZ", "HNOG": "HNOG", "CDT": "CDT", "MEZ": "MEZ", "ACWST": "ACWST", "UYT": "UYT"},
+ }
+ }
+ 
+@@ -119,7 +102,7 @@ func (ff *ff_SN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ff *ff_SN) MonthsAbbreviated() []string {
+- return ff.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -129,7 +112,7 @@ func (ff *ff_SN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ff *ff_SN) MonthsNarrow() []string {
+- return ff.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -139,7 +122,7 @@ func (ff *ff_SN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ff *ff_SN) MonthsWide() []string {
+- return ff.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -199,58 +182,7 @@ func (ff *ff_SN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ff.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ff.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ff.group) - 1; j >= 0; j-- {
+- b = append(b, ff.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ff.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ff.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ff.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ff_SN'
+@@ -259,65 +191,7 @@ func (ff *ff_SN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ff.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ff.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ff.group) - 1; j >= 0; j-- {
+- b = append(b, ff.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ff.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ff.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ff.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ff.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ff_SN'
+@@ -325,17 +199,6 @@ func (ff *ff_SN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -344,17 +207,6 @@ func (ff *ff_SN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ff.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -363,17 +215,6 @@ func (ff *ff_SN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ff.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -382,19 +223,6 @@ func (ff *ff_SN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ff.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ff.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -403,19 +231,6 @@ func (ff *ff_SN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -424,26 +239,6 @@ func (ff *ff_SN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -452,30 +247,6 @@ func (ff *ff_SN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -484,34 +255,5 @@ func (ff *ff_SN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ff.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ff.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fi/fi.go b/fi/fi.go
+index 99ebf4d..4ad55c8 100644
+--- a/fi/fi.go
++++ b/fi/fi.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"eKr.", "jKr."},
+ erasNarrow: []string{"eKr", "jKr"},
+ erasWide: []string{"ennen Kristuksen syntymää", "jälkeen Kristuksen syntymän"},
+- timezones: map[string]string{"AWST": "Länsi-Australian normaaliaika", "NZDT": "Uuden-Seelannin kesäaika", "TMT": "Turkmenistanin normaaliaika", "WART": "Länsi-Argentiinan normaaliaika", "HENOMX": "Luoteis-Meksikon kesäaika", "UYT": "Uruguayn normaaliaika", "AEST": "Itä-Australian normaaliaika", "HKT": "Hongkongin normaaliaika", "CLST": "Chilen kesäaika", "OEZ": "Itä-Euroopan normaaliaika", "WAST": "Länsi-Afrikan kesäaika", "ART": "Argentiinan normaaliaika", "ACWDT": "Läntisen Keski-Australian kesäaika", "HKST": "Hongkongin kesäaika", "HNEG": "Itä-Grönlannin normaaliaika", "MST": "Macaon normaaliaika", "MDT": "Macaon kesäaika", "HEPMX": "Meksikon Tyynenmeren kesäaika", "HAST": "Havaijin-Aleuttien normaaliaika", "HEOG": "Länsi-Grönlannin kesäaika", "PST": "Yhdysvaltain Tyynenmeren normaaliaika", "MESZ": "Keski-Euroopan kesäaika", "SAST": "Etelä-Afrikan aika", "WAT": "Länsi-Afrikan normaaliaika", "WARST": "Länsi-Argentiinan kesäaika", "COT": "Kolumbian normaaliaika", "BT": "Bhutanin aika", "GMT": "Greenwichin normaaliaika", "CHADT": "Chathamin kesäaika", "EST": "Yhdysvaltain itäinen normaaliaika", "CHAST": "Chathamin normaaliaika", "WITA": "Keski-Indonesian aika", "GFT": "Ranskan Guayanan aika", "ChST": "Tšamorron aika", "BOT": "Bolivian aika", "HEEG": "Itä-Grönlannin kesäaika", "ACDT": "Keski-Australian kesäaika", "HNCU": "Kuuban normaaliaika", "WESZ": "Länsi-Euroopan kesäaika", "HNPMX": "Meksikon Tyynenmeren normaaliaika", "CST": "Yhdysvaltain keskinen normaaliaika", "HECU": "Kuuban kesäaika", "SRT": "Surinamen aika", "HNOG": "Länsi-Grönlannin normaaliaika", "NZST": "Uuden-Seelannin normaaliaika", "EDT": "Yhdysvaltain itäinen kesäaika", "CDT": "Yhdysvaltain keskinen kesäaika", "VET": "Venezuelan aika", "ACST": "Keski-Australian normaaliaika", "ECT": "Ecuadorin aika", "ADT": "Kanadan Atlantin kesäaika", "WIB": "Länsi-Indonesian aika", "AWDT": "Länsi-Australian kesäaika", "AEDT": "Itä-Australian kesäaika", "∅∅∅": "Amazonin kesäaika", "EAT": "Itä-Afrikan aika", "COST": "Kolumbian kesäaika", "SGT": "Singaporen aika", "UYST": "Uruguayn kesäaika", "HADT": "Havaijin-Aleuttien kesäaika", "JST": "Japanin normaaliaika", "GYT": "Guyanan aika", "AKST": "Alaskan normaaliaika", "ARST": "Argentiinan kesäaika", "MEZ": "Keski-Euroopan normaaliaika", "HNT": "Newfoundlandin normaaliaika", "LHDT": "Lord Howen kesäaika", "IST": "Intian aika", "CAT": "Keski-Afrikan aika", "HNPM": "Saint-Pierren ja Miquelonin normaaliaika", "HNNOMX": "Luoteis-Meksikon normaaliaika", "AKDT": "Alaskan kesäaika", "CLT": "Chilen normaaliaika", "MYT": "Malesian aika", "OESZ": "Itä-Euroopan kesäaika", "PDT": "Yhdysvaltain Tyynenmeren kesäaika", "WEZ": "Länsi-Euroopan normaaliaika", "WIT": "Itä-Indonesian aika", "ACWST": "Läntisen Keski-Australian normaaliaika", "HEPM": "Saint-Pierren ja Miquelonin kesäaika", "LHST": "Lord Howen normaaliaika", "JDT": "Japanin kesäaika", "TMST": "Turkmenistanin kesäaika", "AST": "Kanadan Atlantin normaaliaika", "HAT": "Newfoundlandin kesäaika"},
++ timezones: map[string]string{"HEOG": "Länsi-Grönlannin kesäaika", "WITA": "Keski-Indonesian aika", "JST": "Japanin normaaliaika", "AEDT": "Itä-Australian kesäaika", "UYT": "Uruguayn normaaliaika", "HAT": "Newfoundlandin kesäaika", "HNOG": "Länsi-Grönlannin normaaliaika", "EDT": "Yhdysvaltain itäinen kesäaika", "HNNOMX": "Luoteis-Meksikon normaaliaika", "UYST": "Uruguayn kesäaika", "HECU": "Kuuban kesäaika", "NZST": "Uuden-Seelannin normaaliaika", "WIB": "Länsi-Indonesian aika", "CST": "Yhdysvaltain keskinen normaaliaika", "ARST": "Argentiinan kesäaika", "HNEG": "Itä-Grönlannin normaaliaika", "MESZ": "Keski-Euroopan kesäaika", "ACWDT": "Läntisen Keski-Australian kesäaika", "VET": "Venezuelan aika", "HEPMX": "Meksikon Tyynenmeren kesäaika", "WAST": "Länsi-Afrikan kesäaika", "EST": "Yhdysvaltain itäinen normaaliaika", "COST": "Kolumbian kesäaika", "SAST": "Etelä-Afrikan aika", "BOT": "Bolivian aika", "JDT": "Japanin kesäaika", "LHST": "Lord Howen normaaliaika", "PDT": "Yhdysvaltain Tyynenmeren kesäaika", "SGT": "Singaporen aika", "WIT": "Itä-Indonesian aika", "CLST": "Chilen kesäaika", "ART": "Argentiinan normaaliaika", "HEEG": "Itä-Grönlannin kesäaika", "HNCU": "Kuuban normaaliaika", "WEZ": "Länsi-Euroopan normaaliaika", "∅∅∅": "Amazonin kesäaika", "OESZ": "Itä-Euroopan kesäaika", "AKDT": "Alaskan kesäaika", "HEPM": "Saint-Pierren ja Miquelonin kesäaika", "AEST": "Itä-Australian normaaliaika", "AWST": "Länsi-Australian normaaliaika", "ACWST": "Läntisen Keski-Australian normaaliaika", "OEZ": "Itä-Euroopan normaaliaika", "GFT": "Ranskan Guayanan aika", "SRT": "Surinamen aika", "HNPM": "Saint-Pierren ja Miquelonin normaaliaika", "BT": "Bhutanin aika", "CHADT": "Chathamin kesäaika", "IST": "Intian aika", "HNPMX": "Meksikon Tyynenmeren normaaliaika", "HKST": "Hongkongin kesäaika", "EAT": "Itä-Afrikan aika", "AWDT": "Länsi-Australian kesäaika", "AKST": "Alaskan normaaliaika", "HKT": "Hongkongin normaaliaika", "HADT": "Havaijin-Aleuttien kesäaika", "HENOMX": "Luoteis-Meksikon kesäaika", "MYT": "Malesian aika", "GYT": "Guyanan aika", "CAT": "Keski-Afrikan aika", "ADT": "Kanadan Atlantin kesäaika", "GMT": "Greenwichin normaaliaika", "ECT": "Ecuadorin aika", "MDT": "Macaon kesäaika", "LHDT": "Lord Howen kesäaika", "HNT": "Newfoundlandin normaaliaika", "WARST": "Länsi-Argentiinan kesäaika", "TMT": "Turkmenistanin normaaliaika", "NZDT": "Uuden-Seelannin kesäaika", "WESZ": "Länsi-Euroopan kesäaika", "CLT": "Chilen normaaliaika", "CDT": "Yhdysvaltain keskinen kesäaika", "HAST": "Havaijin-Aleuttien normaaliaika", "ACDT": "Keski-Australian kesäaika", "CHAST": "Chathamin normaaliaika", "WART": "Länsi-Argentiinan normaaliaika", "COT": "Kolumbian normaaliaika", "ChST": "Tšamorron aika", "AST": "Kanadan Atlantin normaaliaika", "ACST": "Keski-Australian normaaliaika", "PST": "Yhdysvaltain Tyynenmeren normaaliaika", "WAT": "Länsi-Afrikan normaaliaika", "TMST": "Turkmenistanin kesäaika", "MST": "Macaon normaaliaika", "MEZ": "Keski-Euroopan normaaliaika"},
+ }
+ }
+ 
+diff --git a/fi_FI/fi_FI.go b/fi_FI/fi_FI.go
+index 9c6a707..033f84d 100644
+--- a/fi_FI/fi_FI.go
++++ b/fi_FI/fi_FI.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type fi_FI struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fi_FI' locale
+ func New() locales.Translator {
+ return &fi_FI{
+- locale: "fi_FI",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: " ",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ".",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "tammik.", "helmik.", "maalisk.", "huhtik.", "toukok.", "kesäk.", "heinäk.", "elok.", "syysk.", "lokak.", "marrask.", "jouluk."},
+- monthsNarrow: []string{"", "T", "H", "M", "H", "T", "K", "H", "E", "S", "L", "M", "J"},
+- monthsWide: []string{"", "tammikuuta", "helmikuuta", "maaliskuuta", "huhtikuuta", "toukokuuta", "kesäkuuta", "heinäkuuta", "elokuuta", "syyskuuta", "lokakuuta", "marraskuuta", "joulukuuta"},
+- daysAbbreviated: []string{"su", "ma", "ti", "ke", "to", "pe", "la"},
+- daysNarrow: []string{"S", "M", "T", "K", "T", "P", "L"},
+- daysShort: []string{"su", "ma", "ti", "ke", "to", "pe", "la"},
+- daysWide: []string{"sunnuntaina", "maanantaina", "tiistaina", "keskiviikkona", "torstaina", "perjantaina", "lauantaina"},
+- periodsAbbreviated: []string{"ap.", "ip."},
+- periodsNarrow: []string{"ap.", "ip."},
+- periodsWide: []string{"ap.", "ip."},
+- erasAbbreviated: []string{"eKr.", "jKr."},
+- erasNarrow: []string{"eKr", "jKr"},
+- erasWide: []string{"ennen Kristuksen syntymää", "jälkeen Kristuksen syntymän"},
+- timezones: map[string]string{"JDT": "Japanin kesäaika", "UYT": "Uruguayn normaaliaika", "UYST": "Uruguayn kesäaika", "HNT": "Newfoundlandin normaaliaika", "ACWDT": "Läntisen Keski-Australian kesäaika", "HNPM": "Saint-Pierren ja Miquelonin normaaliaika", "HENOMX": "Luoteis-Meksikon kesäaika", "PDT": "Yhdysvaltain Tyynenmeren kesäaika", "AEST": "Itä-Australian normaaliaika", "WAT": "Länsi-Afrikan normaaliaika", "AKST": "Alaskan normaaliaika", "ACWST": "Läntisen Keski-Australian normaaliaika", "NZST": "Uuden-Seelannin normaaliaika", "ECT": "Ecuadorin aika", "ART": "Argentiinan normaaliaika", "WEZ": "Länsi-Euroopan normaaliaika", "WARST": "Länsi-Argentiinan kesäaika", "COT": "Kolumbian normaaliaika", "GMT": "Greenwichin normaaliaika", "WIB": "Länsi-Indonesian aika", "LHST": "Lord Howen normaaliaika", "HEEG": "Itä-Grönlannin kesäaika", "SGT": "Singaporen aika", "HAT": "Newfoundlandin kesäaika", "HNOG": "Länsi-Grönlannin normaaliaika", "MEZ": "Keski-Euroopan normaaliaika", "HNCU": "Kuuban normaaliaika", "EDT": "Yhdysvaltain itäinen kesäaika", "MDT": "Macaon kesäaika", "CST": "Yhdysvaltain keskinen normaaliaika", "GYT": "Guyanan aika", "HADT": "Havaijin-Aleuttien kesäaika", "AWDT": "Länsi-Australian kesäaika", "HEPM": "Saint-Pierren ja Miquelonin kesäaika", "SAST": "Etelä-Afrikan aika", "JST": "Japanin normaaliaika", "CLT": "Chilen normaaliaika", "OEZ": "Itä-Euroopan normaaliaika", "HNPMX": "Meksikon Tyynenmeren normaaliaika", "HKST": "Hongkongin kesäaika", "AKDT": "Alaskan kesäaika", "WITA": "Keski-Indonesian aika", "CHADT": "Chathamin kesäaika", "NZDT": "Uuden-Seelannin kesäaika", "∅∅∅": "Amazonin kesäaika", "ACDT": "Keski-Australian kesäaika", "WAST": "Länsi-Afrikan kesäaika", "WART": "Länsi-Argentiinan normaaliaika", "SRT": "Surinamen aika", "HEOG": "Länsi-Grönlannin kesäaika", "GFT": "Ranskan Guayanan aika", "TMT": "Turkmenistanin normaaliaika", "ChST": "Tšamorron aika", "OESZ": "Itä-Euroopan kesäaika", "EST": "Yhdysvaltain itäinen normaaliaika", "ADT": "Kanadan Atlantin kesäaika", "PST": "Yhdysvaltain Tyynenmeren normaaliaika", "AWST": "Länsi-Australian normaaliaika", "HEPMX": "Meksikon Tyynenmeren kesäaika", "WESZ": "Länsi-Euroopan kesäaika", "IST": "Intian aika", "CLST": "Chilen kesäaika", "BOT": "Bolivian aika", "HNEG": "Itä-Grönlannin normaaliaika", "CAT": "Keski-Afrikan aika", "BT": "Bhutanin aika", "HKT": "Hongkongin normaaliaika", "CHAST": "Chathamin normaaliaika", "MESZ": "Keski-Euroopan kesäaika", "HNNOMX": "Luoteis-Meksikon normaaliaika", "HECU": "Kuuban kesäaika", "AST": "Kanadan Atlantin normaaliaika", "WIT": "Itä-Indonesian aika", "COST": "Kolumbian kesäaika", "VET": "Venezuelan aika", "TMST": "Turkmenistanin kesäaika", "HAST": "Havaijin-Aleuttien normaaliaika", "ARST": "Argentiinan kesäaika", "AEDT": "Itä-Australian kesäaika", "LHDT": "Lord Howen kesäaika", "ACST": "Keski-Australian normaaliaika", "EAT": "Itä-Afrikan aika", "MST": "Macaon normaaliaika", "CDT": "Yhdysvaltain keskinen kesäaika", "MYT": "Malesian aika"},
++ locale: "fi_FI",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ChST": "ChST", "EAT": "EAT", "MYT": "MYT", "JDT": "JDT", "ACWST": "ACWST", "AEDT": "AEDT", "GFT": "GFT", "CAT": "CAT", "SGT": "SGT", "VET": "VET", "EDT": "EDT", "AWDT": "AWDT", "LHDT": "LHDT", "WARST": "WARST", "GYT": "GYT", "HADT": "HADT", "HNEG": "HNEG", "CLT": "CLT", "CST": "CST", "HKST": "HKST", "CLST": "CLST", "HNCU": "HNCU", "WAST": "WAST", "HNOG": "HNOG", "HEOG": "HEOG", "ECT": "ECT", "AST": "AST", "HNT": "HNT", "COST": "COST", "∅∅∅": "∅∅∅", "NZDT": "NZDT", "MST": "MST", "HAST": "HAST", "UYT": "UYT", "WESZ": "WESZ", "OEZ": "OEZ", "TMT": "TMT", "WIT": "WIT", "HKT": "HKT", "ADT": "ADT", "GMT": "GMT", "BT": "BT", "HEPMX": "HEPMX", "OESZ": "OESZ", "HAT": "HAT", "IST": "IST", "TMST": "TMST", "HNPM": "HNPM", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "CHADT": "CHADT", "ACWDT": "ACWDT", "EST": "EST", "WIB": "WIB", "SAST": "SAST", "MDT": "MDT", "ART": "ART", "BOT": "BOT", "MEZ": "MEZ", "MESZ": "MESZ", "AKST": "AKST", "WART": "WART", "PST": "PST", "AEST": "AEST", "HNPMX": "HNPMX", "NZST": "NZST", "SRT": "SRT", "COT": "COT", "WITA": "WITA", "HEEG": "HEEG", "AWST": "AWST", "JST": "JST", "PDT": "PDT", "WAT": "WAT", "AKDT": "AKDT", "WEZ": "WEZ", "HENOMX": "HENOMX", "CDT": "CDT", "ACST": "ACST", "CHAST": "CHAST", "UYST": "UYST", "HECU": "HECU", "ARST": "ARST", "LHST": "LHST"},
+ }
+ }
+ 
+@@ -127,7 +102,7 @@ func (fi *fi_FI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fi *fi_FI) MonthsAbbreviated() []string {
+- return fi.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -137,7 +112,7 @@ func (fi *fi_FI) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fi *fi_FI) MonthsNarrow() []string {
+- return fi.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -147,7 +122,7 @@ func (fi *fi_FI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fi *fi_FI) MonthsWide() []string {
+- return fi.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -193,81 +168,13 @@ func (fi *fi_FI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fi_FI' and handles both Whole and Real numbers based on 'v'
+ func (fi *fi_FI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fi.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fi.group) - 1; j >= 0; j-- {
+- b = append(b, fi.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(fi.minus) - 1; j >= 0; j-- {
+- b = append(b, fi.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fi_FI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fi *fi_FI) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fi.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(fi.minus) - 1; j >= 0; j-- {
+- b = append(b, fi.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fi.percentSuffix...)
+-
+- b = append(b, fi.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fi_FI'
+@@ -275,60 +182,7 @@ func (fi *fi_FI) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fi.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fi.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fi.group) - 1; j >= 0; j-- {
+- b = append(b, fi.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(fi.minus) - 1; j >= 0; j-- {
+- b = append(b, fi.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fi.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fi.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fi_FI'
+@@ -337,67 +191,7 @@ func (fi *fi_FI) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fi.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fi.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fi.group) - 1; j >= 0; j-- {
+- b = append(b, fi.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(fi.minus) - 1; j >= 0; j-- {
+- b = append(b, fi.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fi.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fi.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fi.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fi_FI'
+@@ -405,17 +199,6 @@ func (fi *fi_FI) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +207,6 @@ func (fi *fi_FI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +215,6 @@ func (fi *fi_FI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, fi.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,18 +223,6 @@ func (fi *fi_FI) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0x63, 0x63, 0x63, 0x63, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, fi.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -482,15 +231,6 @@ func (fi *fi_FI) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -499,22 +239,6 @@ func (fi *fi_FI) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -523,26 +247,6 @@ func (fi *fi_FI) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -551,30 +255,5 @@ func (fi *fi_FI) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fi.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fil/fil.go b/fil/fil.go
+index 1c20afa..00852fb 100644
+--- a/fil/fil.go
++++ b/fil/fil.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"BC", "AD"},
+- timezones: map[string]string{"MDT": "MDT", "HEOG": "Oras sa Tag-init ng Kanlurang Greenland", "HKT": "Standard na Oras sa Hong Kong", "MESZ": "Oras sa Tag-init ng Gitnang Europe", "CLST": "Oras sa Tag-init ng Chile", "WART": "Standard na Oras sa Kanlurang Argentina", "COT": "Standard na Oras sa Colombia", "EST": "Eastern na Standard na Oras", "ACWST": "Standard Time ng Gitnang Kanluran ng Australya", "HAT": "Daylight Time sa Newfoundland", "AEST": "Standard Time ng Silangang Australya", "ChST": "Standard na Oras sa Chamorro", "HECU": "Daylight Time sa Cuba", "AKDT": "Daylight Time sa Alaska", "AST": "Standard na Oras sa Atlantiko", "WESZ": "Oras sa Tag-init ng Kanlurang Europe", "OEZ": "Standard na Oras sa Silangang Europe", "HNNOMX": "Standard na Oras sa Hilagang-kanlurang Mexico", "AKST": "Standard na Oras sa Alaska", "MYT": "Oras ng Malaysia", "UYT": "Standard na Oras sa Uruguay", "WIB": "Oras ng Kanlurang Indonesiya", "BT": "Oras sa Bhutan", "ART": "Standard na Oras sa Argentina", "CAT": "Oras sa Gitnang Africa", "SGT": "Standard na Oras sa Singapore", "CDT": "Sentral na Daylight Time", "SAST": "Oras sa Timog Africa", "HEEG": "Oras sa Tag-init ng Silangang Greenland", "HEPM": "Daylight Time sa Saint Pierre and Miquelon", "CHAST": "Standard na Oras sa Chatham", "IST": "Standard na Oras sa Bhutan", "CLT": "Standard na Oras sa Chile", "HNEG": "Standard na Oras sa Silangang Greenland", "WIT": "Oras ng Silangang Indonesiya", "VET": "Oras sa Venezuela", "AWDT": "Daylight Time sa Kanlurang Australya", "∅∅∅": "Oras sa Tag-init ng Peru", "NZDT": "Daylight Time sa New Zealand", "HAST": "Standard na Oras sa Hawaii-Aleutian", "PDT": "Daylight Time sa Pasipiko", "ACDT": "Daylight Time ng Gitnang Australya", "CST": "Sentral na Karaniwang Oras", "GYT": "Oras sa Guyana", "TMT": "Standard na Oras sa Turkmenistan", "AEDT": "Daylight Time ng Silangang Australya", "NZST": "Standard na Oras sa New Zealand", "BOT": "Oras sa Bolivia", "EDT": "Eastern Daylight Time", "HADT": "Oras sa Tag-init ng Hawaii-Aleutian", "HKST": "Oras sa Tag-init ng Hong Kong", "COST": "Oras sa Tag-init ng Colombia", "HNPMX": "Standard na Oras sa Pasipiko ng Mexico", "HNT": "Standard na Oras sa Newfoundland", "HENOMX": "Daylight Time sa Hilagang-kanlurang Mexico", "WEZ": "Standard na Oras sa Kanlurang Europe", "ARST": "Oras sa Tag-init ng Argentina", "HNPM": "Standard na Oras sa Saint Pierre and Miquelon", "LHDT": "Daylight Time sa Lorde Howe", "ECT": "Oras sa Ecuador", "GMT": "Greenwich Mean Time", "UYST": "Oras sa Tag-init ng Uruguay", "AWST": "Standard Time ng Kanlurang Australya", "JST": "Standard na Oras sa Japan", "GFT": "Oras sa French Guiana", "OESZ": "Oras sa Tag-init ng Silangang Europe", "EAT": "Oras sa Silangang Africa", "WITA": "Oras ng Gitnang Indonesiya", "WARST": "Oras sa Tag-init ng Kanlurang Argentina", "ACWDT": "Daylight Time ng Gitnang Kanluran ng Australya", "ACST": "Standard Time ng Gitnang Australya", "SRT": "Oras sa Suriname", "HNOG": "Standard na Oras sa Kanlurang Greenland", "PST": "Standard na Oras sa Pasipiko", "CHADT": "Daylight Time sa Chatham", "MEZ": "Standard na Oras sa Gitnang Europe", "WAST": "Oras sa Tag-init ng Kanlurang Africa", "HNCU": "Standard na Oras sa Cuba", "ADT": "Daylight Time sa Atlantiko", "LHST": "Standard na Oras sa Lord Howe", "JDT": "Daylight Time sa Japan", "TMST": "Oras sa Tag-init ng Turkmenistan", "WAT": "Standard na Oras sa Kanlurang Africa", "HEPMX": "Daylight Time sa Pasipiko ng Mexico", "MST": "MST"},
++ timezones: map[string]string{"WARST": "Oras sa Tag-init ng Kanlurang Argentina", "COST": "Oras sa Tag-init ng Colombia", "ChST": "Standard na Oras sa Chamorro", "UYST": "Oras sa Tag-init ng Uruguay", "HNT": "Standard na Oras sa Newfoundland", "CLST": "Oras sa Tag-init ng Chile", "CST": "Sentral na Karaniwang Oras", "HNPM": "Standard na Oras sa Saint Pierre and Miquelon", "AEDT": "Daylight Time ng Silangang Australya", "OESZ": "Oras sa Tag-init ng Silangang Europe", "WIB": "Oras ng Kanlurang Indonesiya", "HADT": "Oras sa Tag-init ng Hawaii-Aleutian", "LHST": "Standard na Oras sa Lord Howe", "PDT": "Daylight Time sa Pasipiko", "CHAST": "Standard na Oras sa Chatham", "SAST": "Oras sa Timog Africa", "GYT": "Oras sa Guyana", "COT": "Standard na Oras sa Colombia", "∅∅∅": "Oras sa Tag-init ng Brasilia", "GMT": "Greenwich Mean Time", "ART": "Standard na Oras sa Argentina", "CHADT": "Daylight Time sa Chatham", "BT": "Oras sa Bhutan", "ACWST": "Standard Time ng Gitnang Kanluran ng Australya", "HECU": "Daylight Time sa Cuba", "WAT": "Standard na Oras sa Kanlurang Africa", "WAST": "Oras sa Tag-init ng Kanlurang Africa", "CAT": "Oras sa Gitnang Africa", "ECT": "Oras sa Ecuador", "MEZ": "Standard na Oras sa Gitnang Europe", "TMST": "Oras sa Tag-init ng Turkmenistan", "ARST": "Oras sa Tag-init ng Argentina", "ACDT": "Daylight Time ng Gitnang Australya", "HEPMX": "Daylight Time sa Pasipiko ng Mexico", "HAT": "Daylight Time sa Newfoundland", "WITA": "Oras ng Gitnang Indonesiya", "NZDT": "Daylight Time sa New Zealand", "HEEG": "Oras sa Tag-init ng Silangang Greenland", "JDT": "Daylight Time sa Japan", "AKST": "Standard na Oras sa Alaska", "HNOG": "Standard na Oras sa Kanlurang Greenland", "EST": "Eastern na Standard na Oras", "HKT": "Standard na Oras sa Hong Kong", "CDT": "Sentral na Daylight Time", "HAST": "Standard na Oras sa Hawaii-Aleutian", "ACST": "Standard Time ng Gitnang Australya", "HNNOMX": "Standard na Oras sa Hilagang-kanlurang Mexico", "HENOMX": "Daylight Time sa Hilagang-kanlurang Mexico", "AEST": "Standard Time ng Silangang Australya", "WESZ": "Oras sa Tag-init ng Kanlurang Europe", "OEZ": "Standard na Oras sa Silangang Europe", "MDT": "MDT", "ADT": "Daylight Time sa Atlantiko", "AWDT": "Daylight Time sa Kanlurang Australya", "SRT": "Oras sa Suriname", "EAT": "Oras sa Silangang Africa", "AWST": "Standard Time ng Kanlurang Australya", "LHDT": "Daylight Time sa Lorde Howe", "HEPM": "Daylight Time sa Saint Pierre and Miquelon", "JST": "Standard na Oras sa Japan", "IST": "Standard na Oras sa Bhutan", "SGT": "Standard na Oras sa Singapore", "HNCU": "Standard na Oras sa Cuba", "WIT": "Oras ng Silangang Indonesiya", "AST": "Standard na Oras sa Atlantiko", "GFT": "Oras sa French Guiana", "CLT": "Standard na Oras sa Chile", "HNEG": "Standard na Oras sa Silangang Greenland", "PST": "Standard na Oras sa Pasipiko", "ACWDT": "Daylight Time ng Gitnang Kanluran ng Australya", "HNPMX": "Standard na Oras sa Pasipiko ng Mexico", "EDT": "Eastern Daylight Time", "TMT": "Standard na Oras sa Turkmenistan", "BOT": "Oras sa Bolivia", "MESZ": "Oras sa Tag-init ng Gitnang Europe", "AKDT": "Daylight Time sa Alaska", "HKST": "Oras sa Tag-init ng Hong Kong", "MST": "MST", "NZST": "Standard na Oras sa New Zealand", "WEZ": "Standard na Oras sa Kanlurang Europe", "VET": "Oras sa Venezuela", "WART": "Standard na Oras sa Kanlurang Argentina", "HEOG": "Oras sa Tag-init ng Kanlurang Greenland", "MYT": "Oras ng Malaysia", "UYT": "Standard na Oras sa Uruguay"},
+ }
+ }
+ 
+diff --git a/fil_PH/fil_PH.go b/fil_PH/fil_PH.go
+index 9d90635..788a7aa 100644
+--- a/fil_PH/fil_PH.go
++++ b/fil_PH/fil_PH.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type fil_PH struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fil_PH' locale
+ func New() locales.Translator {
+ return &fil_PH{
+- locale: "fil_PH",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Ene", "Peb", "Mar", "Abr", "May", "Hun", "Hul", "Ago", "Set", "Okt", "Nob", "Dis"},
+- monthsNarrow: []string{"", "Ene", "Peb", "Mar", "Abr", "May", "Hun", "Hul", "Ago", "Set", "Okt", "Nob", "Dis"},
+- monthsWide: []string{"", "Enero", "Pebrero", "Marso", "Abril", "Mayo", "Hunyo", "Hulyo", "Agosto", "Setyembre", "Oktubre", "Nobyembre", "Disyembre"},
+- daysAbbreviated: []string{"Lin", "Lun", "Mar", "Miy", "Huw", "Biy", "Sab"},
+- daysNarrow: []string{"Lin", "Lun", "Mar", "Miy", "Huw", "Biy", "Sab"},
+- daysShort: []string{"Li", "Lu", "Ma", "Mi", "Hu", "Bi", "Sa"},
+- daysWide: []string{"Linggo", "Lunes", "Martes", "Miyerkules", "Huwebes", "Biyernes", "Sabado"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"am", "pm"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"BC", "AD"},
+- timezones: map[string]string{"AEDT": "Daylight Time ng Silangang Australya", "NZDT": "Daylight Time sa New Zealand", "ACDT": "Daylight Time ng Gitnang Australya", "HENOMX": "Daylight Time sa Hilagang-kanlurang Mexico", "VET": "Oras sa Venezuela", "OESZ": "Oras sa Tag-init ng Silangang Europe", "WARST": "Oras sa Tag-init ng Kanlurang Argentina", "ARST": "Oras sa Tag-init ng Argentina", "HAT": "Daylight Time sa Newfoundland", "JST": "Standard na Oras sa Japan", "HECU": "Daylight Time sa Cuba", "GMT": "Greenwich Mean Time", "ACWST": "Standard Time ng Gitnang Kanluran ng Australya", "ADT": "Daylight Time sa Atlantiko", "UYT": "Standard na Oras sa Uruguay", "WIB": "Oras ng Kanlurang Indonesiya", "SRT": "Oras sa Suriname", "LHDT": "Daylight Time sa Lorde Howe", "IST": "Standard na Oras sa Bhutan", "GFT": "Oras sa French Guiana", "EST": "Eastern na Standard na Oras", "HNOG": "Standard na Oras sa Kanlurang Greenland", "WAT": "Standard na Oras sa Kanlurang Africa", "ECT": "Oras sa Ecuador", "HKST": "Oras sa Tag-init ng Hong Kong", "BT": "Oras sa Bhutan", "HNPM": "Standard na Oras sa Saint Pierre and Miquelon", "EDT": "Eastern Daylight Time", "AKST": "Standard na Oras sa Alaska", "WIT": "Oras ng Silangang Indonesiya", "MDT": "MDT", "AWDT": "Daylight Time sa Kanlurang Australya", "WART": "Standard na Oras sa Kanlurang Argentina", "WESZ": "Oras sa Tag-init ng Kanlurang Europe", "HKT": "Standard na Oras sa Hong Kong", "WITA": "Oras ng Gitnang Indonesiya", "CHAST": "Standard na Oras sa Chatham", "JDT": "Daylight Time sa Japan", "TMST": "Oras sa Tag-init ng Turkmenistan", "HNNOMX": "Standard na Oras sa Hilagang-kanlurang Mexico", "AEST": "Standard Time ng Silangang Australya", "LHST": "Standard na Oras sa Lord Howe", "HNEG": "Standard na Oras sa Silangang Greenland", "HNPMX": "Standard na Oras sa Pasipiko ng Mexico", "ART": "Standard na Oras sa Argentina", "AST": "Standard na Oras sa Atlantiko", "MYT": "Oras ng Malaysia", "PST": "Standard na Oras sa Pasipiko", "HEPM": "Daylight Time sa Saint Pierre and Miquelon", "CLST": "Oras sa Tag-init ng Chile", "COT": "Standard na Oras sa Colombia", "HNCU": "Standard na Oras sa Cuba", "HADT": "Oras sa Tag-init ng Hawaii-Aleutian", "NZST": "Standard na Oras sa New Zealand", "MESZ": "Oras sa Tag-init ng Gitnang Europe", "∅∅∅": "Oras sa Tag-init ng Amazon", "COST": "Oras sa Tag-init ng Colombia", "CST": "Sentral na Karaniwang Oras", "HAST": "Standard na Oras sa Hawaii-Aleutian", "MEZ": "Standard na Oras sa Gitnang Europe", "SAST": "Oras sa Timog Africa", "OEZ": "Standard na Oras sa Silangang Europe", "CAT": "Oras sa Gitnang Africa", "GYT": "Oras sa Guyana", "ACWDT": "Daylight Time ng Gitnang Kanluran ng Australya", "HNT": "Standard na Oras sa Newfoundland", "PDT": "Daylight Time sa Pasipiko", "HEEG": "Oras sa Tag-init ng Silangang Greenland", "ACST": "Standard Time ng Gitnang Australya", "WAST": "Oras sa Tag-init ng Kanlurang Africa", "MST": "MST", "AWST": "Standard Time ng Kanlurang Australya", "CHADT": "Daylight Time sa Chatham", "CDT": "Sentral na Daylight Time", "HEPMX": "Daylight Time sa Pasipiko ng Mexico", "HEOG": "Oras sa Tag-init ng Kanlurang Greenland", "WEZ": "Standard na Oras sa Kanlurang Europe", "TMT": "Standard na Oras sa Turkmenistan", "ChST": "Standard na Oras sa Chamorro", "BOT": "Oras sa Bolivia", "EAT": "Oras sa Silangang Africa", "CLT": "Standard na Oras sa Chile", "SGT": "Standard na Oras sa Singapore", "AKDT": "Daylight Time sa Alaska", "UYST": "Oras sa Tag-init ng Uruguay"},
++ locale: "fil_PH",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"COST": "COST", "HKT": "HKT", "TMST": "TMST", "CAT": "CAT", "CLT": "CLT", "HAST": "HAST", "JST": "JST", "HAT": "HAT", "ADT": "ADT", "OESZ": "OESZ", "ARST": "ARST", "UYT": "UYT", "AEDT": "AEDT", "HECU": "HECU", "WESZ": "WESZ", "COT": "COT", "MDT": "MDT", "GMT": "GMT", "MYT": "MYT", "∅∅∅": "∅∅∅", "CHAST": "CHAST", "CST": "CST", "ChST": "ChST", "AWDT": "AWDT", "HEPM": "HEPM", "ACWST": "ACWST", "AKST": "AKST", "GYT": "GYT", "HEOG": "HEOG", "ACST": "ACST", "ACDT": "ACDT", "WAT": "WAT", "WITA": "WITA", "MST": "MST", "NZDT": "NZDT", "BOT": "BOT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "EST": "EST", "CLST": "CLST", "NZST": "NZST", "SRT": "SRT", "EDT": "EDT", "WIB": "WIB", "JDT": "JDT", "PDT": "PDT", "HNCU": "HNCU", "OEZ": "OEZ", "ECT": "ECT", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "HKST": "HKST", "EAT": "EAT", "LHST": "LHST", "WARST": "WARST", "AKDT": "AKDT", "HNOG": "HNOG", "LHDT": "LHDT", "HNPM": "HNPM", "ACWDT": "ACWDT", "AWST": "AWST", "SGT": "SGT", "GFT": "GFT", "ART": "ART", "HADT": "HADT", "HNEG": "HNEG", "HEEG": "HEEG", "UYST": "UYST", "AEST": "AEST", "WAST": "WAST", "WART": "WART", "AST": "AST", "HENOMX": "HENOMX", "IST": "IST", "VET": "VET", "CHADT": "CHADT", "SAST": "SAST", "HNT": "HNT", "WIT": "WIT", "TMT": "TMT", "CDT": "CDT", "MEZ": "MEZ", "PST": "PST", "BT": "BT"},
+ }
+ }
+ 
+@@ -148,7 +125,7 @@ func (fil *fil_PH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fil *fil_PH) MonthsAbbreviated() []string {
+- return fil.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -158,7 +135,7 @@ func (fil *fil_PH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fil *fil_PH) MonthsNarrow() []string {
+- return fil.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -168,7 +145,7 @@ func (fil *fil_PH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fil *fil_PH) MonthsWide() []string {
+- return fil.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -214,73 +191,13 @@ func (fil *fil_PH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fil_PH' and handles both Whole and Real numbers based on 'v'
+ func (fil *fil_PH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fil.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fil.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fil.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fil_PH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fil *fil_PH) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fil.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fil.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fil.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fil_PH'
+@@ -288,56 +205,7 @@ func (fil *fil_PH) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fil.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fil.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fil.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, fil.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fil.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fil_PH'
+@@ -346,68 +214,7 @@ func (fil *fil_PH) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fil.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fil.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fil.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, fil.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fil.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fil.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fil_PH'
+@@ -415,17 +222,6 @@ func (fil *fil_PH) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -434,17 +230,6 @@ func (fil *fil_PH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fil.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -453,17 +238,6 @@ func (fil *fil_PH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fil.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -472,19 +246,6 @@ func (fil *fil_PH) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fil.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, fil.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -493,28 +254,6 @@ func (fil *fil_PH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, fil.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, fil.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, fil.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -523,35 +262,6 @@ func (fil *fil_PH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, fil.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fil.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, fil.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, fil.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,40 +270,6 @@ func (fil *fil_PH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, fil.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fil.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, fil.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, fil.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -602,44 +278,5 @@ func (fil *fil_PH) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, fil.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fil.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, fil.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, fil.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fil.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fo/fo.go b/fo/fo.go
+index 88bfff8..90f3350 100644
+--- a/fo/fo.go
++++ b/fo/fo.go
+@@ -75,7 +75,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"f.Kr.", "e.Kr."},
+ erasNarrow: []string{"fKr", "eKr"},
+ erasWide: []string{"fyri Krist", "eftir Krist"},
+- timezones: map[string]string{"WIB": "Vestur Indonesia tíð", "HKST": "Hong Kong summartíð", "HNPM": "St. Pierre & Miquelon vanlig tíð", "LHDT": "Lord Howe summartíð", "AKDT": "Alaska summartíð", "COST": "Kolombia summartíð", "CST": "Central vanlig tíð", "BT": "Butan tíð", "HAT": "Newfoundland summartíð", "MESZ": "Miðevropa summartíð", "JDT": "Japan summartíð", "OESZ": "Eysturevropa summartíð", "HAST": "Hawaii-Aleutian vanlig tíð", "SRT": "Surinam tíð", "HEPM": "St. Pierre & Miquelon summartíð", "AST": "Atlantic vanlig tíð", "UYST": "Uruguai summartíð", "HNOG": "Vestur grønlendsk vanlig tíð", "NZDT": "Nýsæland summartíð", "TMT": "Turkmenistan vanlig tíð", "OEZ": "Eysturevropa vanlig tíð", "HNPMX": "Mexican Pacific vanlig tíð", "MDT": "Mountain summartíð", "WESZ": "Vesturevropa summartíð", "AWDT": "vestur Avstralia summartíð", "IST": "India tíð", "WAT": "Vesturafrika vanlig tíð", "HNEG": "Eystur grønlendsk vanlig tíð", "HNCU": "Cuba vanlig tíð", "ADT": "Atlantic summartíð", "MST": "Mountain vanlig tíð", "ARST": "Argentina summartíð", "PST": "Pacific vanlig tíð", "AEST": "eystur Avstralia vanlig tíð", "JST": "Japan vanlig tíð", "PDT": "Pacific summartíð", "HNNOMX": "Northwest Mexico vanlig tíð", "ECT": "Ekvador tíð", "MYT": "Malaisia tíð", "UYT": "Uruguai vanlig tíð", "VET": "Venesuela tíð", "CHADT": "Chatham summartíð", "SAST": "Suðurafrika vanlig tíð", "CLT": "Kili vanlig tíð", "CLST": "Kili summartíð", "ACWDT": "miðvestur Avstralia summartíð", "CHAST": "Chatham vanlig tíð", "BOT": "Bolivia tíð", "HENOMX": "Northwest Mexico summartíð", "CDT": "Central summartíð", "ACWST": "miðvestur Avstralia vanlig tíð", "ART": "Argentina vanlig tíð", "HKT": "Hong Kong vanlig tíð", "AEDT": "eystur Avstralia summartíð", "COT": "Kolombia vanlig tíð", "WIT": "Eystur Indonesia tíð", "WITA": "Mið Indonesia tíð", "∅∅∅": "Amasona summartíð", "EAT": "Eysturafrika tíð", "EST": "Eastern vanlig tíð", "HADT": "Hawaii-Aleutian summartíð", "WEZ": "Vesturevropa vanlig tíð", "LHST": "Lord Howe vanlig tíð", "WART": "Vestur Argentina vanlig tíð", "HECU": "Cuba summartíð", "HEPMX": "Mexican Pacific summartíð", "GYT": "Gujana tíð", "HEOG": "Vestur grønlendsk summartíð", "AWST": "vestur Avstralia vanlig tíð", "GFT": "Franska Gujana tíð", "ChST": "Chamorro vanlig tíð", "SGT": "Singapor tíð", "NZST": "Nýsæland vanlig tíð", "WAST": "Vesturafrika summartíð", "EDT": "Eastern summartíð", "HNT": "Newfoundland vanlig tíð", "TMST": "Turkmenistan summartíð", "ACST": "mið Avstralia vanlig tíð", "CAT": "Miðafrika tíð", "AKST": "Alaska vanlig tíð", "MEZ": "Miðevropa vanlig tíð", "HEEG": "Eystur grønlendsk summartíð", "ACDT": "mið Avstralia summartíð", "WARST": "Vestur Argentina summartíð", "GMT": "Greenwich Mean tíð"},
++ timezones: map[string]string{"MST": "MST", "ChST": "Chamorro vanlig tíð", "BOT": "Bolivia tíð", "HAST": "Hawaii-Aleutian vanlig tíð", "HNEG": "Eystur grønlendsk vanlig tíð", "HNNOMX": "Northwest Mexico vanlig tíð", "∅∅∅": "Brasilia summartíð", "HKST": "Hong Kong summartíð", "AKDT": "Alaska summartíð", "HNT": "Newfoundland vanlig tíð", "HAT": "Newfoundland summartíð", "HENOMX": "Northwest Mexico summartíð", "AEST": "eystur Avstralia vanlig tíð", "GYT": "Gujana tíð", "WAT": "Vesturafrika vanlig tíð", "LHST": "Lord Howe vanlig tíð", "LHDT": "Lord Howe summartíð", "CHADT": "Chatham summartíð", "ACWDT": "miðvestur Avstralia summartíð", "WESZ": "Vesturevropa summartíð", "HEOG": "Vestur grønlendsk summartíð", "EST": "Eastern vanlig tíð", "AST": "Atlantic vanlig tíð", "JST": "Japan vanlig tíð", "OESZ": "Eysturevropa summartíð", "HNOG": "Vestur grønlendsk vanlig tíð", "MDT": "MDT", "CHAST": "Chatham vanlig tíð", "WARST": "Vestur Argentina summartíð", "CLT": "Kili vanlig tíð", "WITA": "Mið Indonesia tíð", "HNPM": "St. Pierre & Miquelon vanlig tíð", "CLST": "Kili summartíð", "MESZ": "Miðevropa summartíð", "HEPM": "St. Pierre & Miquelon summartíð", "WEZ": "Vesturevropa vanlig tíð", "VET": "Venesuela tíð", "HEPMX": "Mexican Pacific summartíð", "HADT": "Hawaii-Aleutian summartíð", "HEEG": "Eystur grønlendsk summartíð", "WAST": "Vesturafrika summartíð", "SRT": "Surinam tíð", "HNPMX": "Mexican Pacific vanlig tíð", "NZST": "Nýsæland vanlig tíð", "NZDT": "Nýsæland summartíð", "ART": "Argentina vanlig tíð", "AWST": "vestur Avstralia vanlig tíð", "AWDT": "vestur Avstralia summartíð", "ACWST": "miðvestur Avstralia vanlig tíð", "COST": "Kolombia summartíð", "HKT": "Hong Kong vanlig tíð", "AEDT": "eystur Avstralia summartíð", "MEZ": "Miðevropa vanlig tíð", "UYST": "Uruguai summartíð", "PDT": "Pacific summartíð", "EDT": "Eastern summartíð", "GMT": "Greenwich Mean tíð", "HNCU": "Cuba vanlig tíð", "WIB": "Vestur Indonesia tíð", "IST": "India tíð", "TMST": "Turkmenistan summartíð", "CDT": "Central summartíð", "GFT": "Franska Gujana tíð", "SAST": "Suðurafrika vanlig tíð", "COT": "Kolombia vanlig tíð", "PST": "Pacific vanlig tíð", "WIT": "Eystur Indonesia tíð", "TMT": "Turkmenistan vanlig tíð", "JDT": "Japan summartíð", "ARST": "Argentina summartíð", "ACDT": "mið Avstralia summartíð", "UYT": "Uruguai vanlig tíð", "BT": "Butan tíð", "SGT": "Singapor tíð", "WART": "Vestur Argentina vanlig tíð", "CST": "Central vanlig tíð", "ADT": "Atlantic summartíð", "AKST": "Alaska vanlig tíð", "OEZ": "Eysturevropa vanlig tíð", "ECT": "Ekvador tíð", "ACST": "mið Avstralia vanlig tíð", "MYT": "Malaisia tíð", "HECU": "Cuba summartíð", "CAT": "Miðafrika tíð", "EAT": "Eysturafrika tíð"},
+ }
+ }
+ 
+diff --git a/fo_DK/fo_DK.go b/fo_DK/fo_DK.go
+index 84d2454..61b5f54 100644
+--- a/fo_DK/fo_DK.go
++++ b/fo_DK/fo_DK.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fo_DK struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fo_DK' locale
+ func New() locales.Translator {
+ return &fo_DK{
+- locale: "fo_DK",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "kr.", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mar.", "apr.", "mai", "jun.", "jul.", "aug.", "sep.", "okt.", "nov.", "des."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januar", "februar", "mars", "apríl", "mai", "juni", "juli", "august", "september", "oktober", "november", "desember"},
+- daysAbbreviated: []string{"sun.", "mán.", "týs.", "mik.", "hós.", "frí.", "ley."},
+- daysNarrow: []string{"S", "M", "T", "M", "H", "F", "L"},
+- daysShort: []string{"su.", "má.", "tý.", "mi.", "hó.", "fr.", "le."},
+- daysWide: []string{"sunnudagur", "mánadagur", "týsdagur", "mikudagur", "hósdagur", "fríggjadagur", "leygardagur"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"f.Kr.", "e.Kr."},
+- erasNarrow: []string{"fKr", "eKr"},
+- erasWide: []string{"fyri Krist", "eftir Krist"},
+- timezones: map[string]string{"∅∅∅": "Amasona summartíð", "HNPMX": "Mexican Pacific vanlig tíð", "WEZ": "Vesturevropa vanlig tíð", "LHST": "Lord Howe vanlig tíð", "CHAST": "Chatham vanlig tíð", "CHADT": "Chatham summartíð", "CAT": "Miðafrika tíð", "MDT": "MDT", "UYT": "Uruguai vanlig tíð", "ARST": "Argentina summartíð", "TMT": "Turkmenistan vanlig tíð", "TMST": "Turkmenistan summartíð", "WART": "Vestur Argentina vanlig tíð", "WARST": "Vestur Argentina summartíð", "VET": "Venesuela tíð", "BT": "Butan tíð", "SRT": "Surinam tíð", "IST": "India tíð", "OEZ": "Eysturevropa vanlig tíð", "GFT": "Franska Gujana tíð", "EAT": "Eysturafrika tíð", "COST": "Kolombia summartíð", "EDT": "Eastern summartíð", "MST": "MST", "MESZ": "Miðevropa summartíð", "NZST": "Nýsæland vanlig tíð", "CLT": "Kili vanlig tíð", "SGT": "Singapor tíð", "CLST": "Kili summartíð", "ACST": "mið Avstralia vanlig tíð", "ACDT": "mið Avstralia summartíð", "HNNOMX": "Northwest Mexico vanlig tíð", "CST": "Central vanlig tíð", "WIB": "Vestur Indonesia tíð", "ART": "Argentina vanlig tíð", "HEPM": "St. Pierre & Miquelon summartíð", "OESZ": "Eysturevropa summartíð", "HEPMX": "Mexican Pacific summartíð", "HADT": "Hawaii-Aleutian summartíð", "AWST": "vestur Avstralia vanlig tíð", "NZDT": "Nýsæland summartíð", "HEEG": "Eystur grønlendsk summartíð", "WAST": "Vesturafrika summartíð", "AKDT": "Alaska summartíð", "HAST": "Hawaii-Aleutian vanlig tíð", "HNEG": "Eystur grønlendsk vanlig tíð", "HENOMX": "Northwest Mexico summartíð", "HEOG": "Vestur grønlendsk summartíð", "WITA": "Mið Indonesia tíð", "ChST": "Chamorro vanlig tíð", "WIT": "Eystur Indonesia tíð", "HNOG": "Vestur grønlendsk vanlig tíð", "AEDT": "eystur Avstralia summartíð", "HKST": "Hong Kong summartíð", "ECT": "Ekvador tíð", "GMT": "Greenwich Mean tíð", "HNCU": "Cuba vanlig tíð", "AST": "Atlantic vanlig tíð", "PDT": "Pacific summartíð", "LHDT": "Lord Howe summartíð", "WAT": "Vesturafrika vanlig tíð", "AKST": "Alaska vanlig tíð", "ADT": "Atlantic summartíð", "GYT": "Gujana tíð", "BOT": "Bolivia tíð", "HECU": "Cuba summartíð", "EST": "Eastern vanlig tíð", "UYST": "Uruguai summartíð", "AEST": "eystur Avstralia vanlig tíð", "MEZ": "Miðevropa vanlig tíð", "SAST": "Suðurafrika vanlig tíð", "JDT": "Japan summartíð", "PST": "Pacific vanlig tíð", "WESZ": "Vesturevropa summartíð", "ACWDT": "miðvestur Avstralia summartíð", "HNT": "Newfoundland vanlig tíð", "HAT": "Newfoundland summartíð", "HKT": "Hong Kong vanlig tíð", "JST": "Japan vanlig tíð", "COT": "Kolombia vanlig tíð", "CDT": "Central summartíð", "MYT": "Malaisia tíð", "ACWST": "miðvestur Avstralia vanlig tíð", "AWDT": "vestur Avstralia summartíð", "HNPM": "St. Pierre & Miquelon vanlig tíð"},
++ locale: "fo_DK",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "kr.", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"TMT": "TMT", "MST": "MST", "MESZ": "MESZ", "ACWST": "ACWST", "NZDT": "NZDT", "ChST": "ChST", "MYT": "MYT", "PDT": "PDT", "LHST": "LHST", "HEPM": "HEPM", "JST": "JST", "WIT": "WIT", "WIB": "WIB", "GMT": "GMT", "HNNOMX": "HNNOMX", "WESZ": "WESZ", "ARST": "ARST", "HAST": "HAST", "CHADT": "CHADT", "WEZ": "WEZ", "HEEG": "HEEG", "LHDT": "LHDT", "ACWDT": "ACWDT", "WAT": "WAT", "WARST": "WARST", "SAST": "SAST", "MDT": "MDT", "ACDT": "ACDT", "ACST": "ACST", "HENOMX": "HENOMX", "IST": "IST", "VET": "VET", "HAT": "HAT", "HKST": "HKST", "CLT": "CLT", "SRT": "SRT", "GFT": "GFT", "HNT": "HNT", "TMST": "TMST", "CST": "CST", "SGT": "SGT", "AST": "AST", "MEZ": "MEZ", "AWST": "AWST", "GYT": "GYT", "HNOG": "HNOG", "EDT": "EDT", "CDT": "CDT", "HEPMX": "HEPMX", "AKST": "AKST", "COT": "COT", "EST": "EST", "NZST": "NZST", "AWDT": "AWDT", "UYT": "UYT", "BT": "BT", "HNCU": "HNCU", "HNPMX": "HNPMX", "∅∅∅": "∅∅∅", "BOT": "BOT", "EAT": "EAT", "JDT": "JDT", "WAST": "WAST", "COST": "COST", "UYST": "UYST", "AEDT": "AEDT", "HECU": "HECU", "HNPM": "HNPM", "AEST": "AEST", "OESZ": "OESZ", "HEOG": "HEOG", "ECT": "ECT", "ADT": "ADT", "AKDT": "AKDT", "CLST": "CLST", "WITA": "WITA", "HNEG": "HNEG", "PST": "PST", "HKT": "HKT", "CAT": "CAT", "ART": "ART", "OEZ": "OEZ", "WART": "WART", "HADT": "HADT", "CHAST": "CHAST"},
+ }
+ }
+ 
+@@ -128,7 +101,7 @@ func (fo *fo_DK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fo *fo_DK) MonthsAbbreviated() []string {
+- return fo.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -138,7 +111,7 @@ func (fo *fo_DK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fo *fo_DK) MonthsNarrow() []string {
+- return fo.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -148,7 +121,7 @@ func (fo *fo_DK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fo *fo_DK) MonthsWide() []string {
+- return fo.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -194,79 +167,13 @@ func (fo *fo_DK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fo_DK' and handles both Whole and Real numbers based on 'v'
+ func (fo *fo_DK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(fo.minus) - 1; j >= 0; j-- {
+- b = append(b, fo.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fo_DK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fo *fo_DK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fo.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(fo.minus) - 1; j >= 0; j-- {
+- b = append(b, fo.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fo.percentSuffix...)
+-
+- b = append(b, fo.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fo_DK'
+@@ -274,58 +181,7 @@ func (fo *fo_DK) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fo.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(fo.minus) - 1; j >= 0; j-- {
+- b = append(b, fo.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fo.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fo_DK'
+@@ -334,63 +190,7 @@ func (fo *fo_DK) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fo.currencies[currency]
+- l := len(s) + len(symbol) + 8 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fo.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fo.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fo.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fo_DK'
+@@ -398,27 +198,6 @@ func (fo *fo_DK) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -427,27 +206,6 @@ func (fo *fo_DK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -456,17 +214,6 @@ func (fo *fo_DK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, fo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,19 +222,6 @@ func (fo *fo_DK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fo.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, fo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -496,19 +230,6 @@ func (fo *fo_DK) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -517,26 +238,6 @@ func (fo *fo_DK) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -545,30 +246,6 @@ func (fo *fo_DK) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -577,34 +254,5 @@ func (fo *fo_DK) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fo.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fo_FO/fo_FO.go b/fo_FO/fo_FO.go
+index 4967bd9..ccb77e5 100644
+--- a/fo_FO/fo_FO.go
++++ b/fo_FO/fo_FO.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fo_FO struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fo_FO' locale
+ func New() locales.Translator {
+ return &fo_FO{
+- locale: "fo_FO",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mar.", "apr.", "mai", "jun.", "jul.", "aug.", "sep.", "okt.", "nov.", "des."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januar", "februar", "mars", "apríl", "mai", "juni", "juli", "august", "september", "oktober", "november", "desember"},
+- daysAbbreviated: []string{"sun.", "mán.", "týs.", "mik.", "hós.", "frí.", "ley."},
+- daysNarrow: []string{"S", "M", "T", "M", "H", "F", "L"},
+- daysShort: []string{"su.", "má.", "tý.", "mi.", "hó.", "fr.", "le."},
+- daysWide: []string{"sunnudagur", "mánadagur", "týsdagur", "mikudagur", "hósdagur", "fríggjadagur", "leygardagur"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"f.Kr.", "e.Kr."},
+- erasNarrow: []string{"fKr", "eKr"},
+- erasWide: []string{"fyri Krist", "eftir Krist"},
+- timezones: map[string]string{"TMT": "Turkmenistan vanlig tíð", "GYT": "Gujana tíð", "COT": "Kolombia vanlig tíð", "HAT": "Newfoundland summartíð", "WAST": "Vesturafrika summartíð", "HEPM": "St. Pierre & Miquelon summartíð", "HNOG": "Vestur grønlendsk vanlig tíð", "EAT": "Eysturafrika tíð", "WART": "Vestur Argentina vanlig tíð", "HECU": "Cuba summartíð", "HNT": "Newfoundland vanlig tíð", "CHAST": "Chatham vanlig tíð", "JDT": "Japan summartíð", "ACST": "mið Avstralia vanlig tíð", "WIB": "Vestur Indonesia tíð", "GFT": "Franska Gujana tíð", "CAT": "Miðafrika tíð", "HADT": "Hawaii-Aleutian summartíð", "AEST": "eystur Avstralia vanlig tíð", "HNPM": "St. Pierre & Miquelon vanlig tíð", "MESZ": "Miðevropa summartíð", "IST": "India tíð", "HEPMX": "Mexican Pacific summartíð", "HENOMX": "Northwest Mexico summartíð", "CDT": "Central summartíð", "AKDT": "Alaska summartíð", "WIT": "Eystur Indonesia tíð", "ACWDT": "miðvestur Avstralia summartíð", "HNEG": "Eystur grønlendsk vanlig tíð", "COST": "Kolombia summartíð", "MYT": "Malaisia tíð", "WEZ": "Vesturevropa vanlig tíð", "HKT": "Hong Kong vanlig tíð", "ACDT": "mið Avstralia summartíð", "SGT": "Singapor tíð", "MST": "MST", "UYT": "Uruguai vanlig tíð", "HEOG": "Vestur grønlendsk summartíð", "HNNOMX": "Northwest Mexico vanlig tíð", "ART": "Argentina vanlig tíð", "WESZ": "Vesturevropa summartíð", "ACWST": "miðvestur Avstralia vanlig tíð", "AWDT": "vestur Avstralia summartíð", "HKST": "Hong Kong summartíð", "CHADT": "Chatham summartíð", "MEZ": "Miðevropa vanlig tíð", "BT": "Butan tíð", "TMST": "Turkmenistan summartíð", "CLST": "Kili summartíð", "BOT": "Bolivia tíð", "JST": "Japan vanlig tíð", "∅∅∅": "Peru summartíð", "EDT": "Eastern summartíð", "AST": "Atlantic vanlig tíð", "UYST": "Uruguai summartíð", "AEDT": "eystur Avstralia summartíð", "LHST": "Lord Howe vanlig tíð", "NZST": "Nýsæland vanlig tíð", "ECT": "Ekvador tíð", "SAST": "Suðurafrika vanlig tíð", "NZDT": "Nýsæland summartíð", "HNCU": "Cuba vanlig tíð", "CST": "Central vanlig tíð", "HAST": "Hawaii-Aleutian vanlig tíð", "ChST": "Chamorro vanlig tíð", "WAT": "Vesturafrika vanlig tíð", "EST": "Eastern vanlig tíð", "AKST": "Alaska vanlig tíð", "SRT": "Surinam tíð", "PDT": "Pacific summartíð", "HEEG": "Eystur grønlendsk summartíð", "OESZ": "Eysturevropa summartíð", "WARST": "Vestur Argentina summartíð", "MDT": "MDT", "HNPMX": "Mexican Pacific vanlig tíð", "PST": "Pacific vanlig tíð", "AWST": "vestur Avstralia vanlig tíð", "LHDT": "Lord Howe summartíð", "CLT": "Kili vanlig tíð", "OEZ": "Eysturevropa vanlig tíð", "ADT": "Atlantic summartíð", "VET": "Venesuela tíð", "ARST": "Argentina summartíð", "WITA": "Mið Indonesia tíð", "GMT": "Greenwich Mean tíð"},
++ locale: "fo_FO",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"EST": "EST", "CLT": "CLT", "CLST": "CLST", "HADT": "HADT", "AWST": "AWST", "SRT": "SRT", "HENOMX": "HENOMX", "HNCU": "HNCU", "ART": "ART", "ACDT": "ACDT", "JDT": "JDT", "WEZ": "WEZ", "AKST": "AKST", "CAT": "CAT", "NZDT": "NZDT", "CHADT": "CHADT", "OESZ": "OESZ", "WITA": "WITA", "VET": "VET", "AKDT": "AKDT", "WARST": "WARST", "GYT": "GYT", "HKST": "HKST", "TMT": "TMT", "CDT": "CDT", "HEEG": "HEEG", "HAT": "HAT", "COST": "COST", "SGT": "SGT", "WAST": "WAST", "TMST": "TMST", "AST": "AST", "HNEG": "HNEG", "LHST": "LHST", "AEST": "AEST", "AEDT": "AEDT", "WIT": "WIT", "ChST": "ChST", "ARST": "ARST", "MEZ": "MEZ", "ACST": "ACST", "MYT": "MYT", "ACWDT": "ACWDT", "MST": "MST", "ADT": "ADT", "HNPM": "HNPM", "CHAST": "CHAST", "PST": "PST", "WIB": "WIB", "MDT": "MDT", "IST": "IST", "BT": "BT", "HNOG": "HNOG", "JST": "JST", "LHDT": "LHDT", "CST": "CST", "GMT": "GMT", "UYST": "UYST", "SAST": "SAST", "HECU": "HECU", "OEZ": "OEZ", "HKT": "HKT", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "UYT": "UYT", "HNPMX": "HNPMX", "HEOG": "HEOG", "EDT": "EDT", "∅∅∅": "∅∅∅", "HAST": "HAST", "HEPM": "HEPM", "ACWST": "ACWST", "HNT": "HNT", "NZST": "NZST", "EAT": "EAT", "HEPMX": "HEPMX", "WESZ": "WESZ", "WART": "WART", "COT": "COT", "ECT": "ECT", "BOT": "BOT", "PDT": "PDT", "WAT": "WAT", "GFT": "GFT"},
+ }
+ }
+ 
+@@ -128,7 +101,7 @@ func (fo *fo_FO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fo *fo_FO) MonthsAbbreviated() []string {
+- return fo.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -138,7 +111,7 @@ func (fo *fo_FO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fo *fo_FO) MonthsNarrow() []string {
+- return fo.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -148,7 +121,7 @@ func (fo *fo_FO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fo *fo_FO) MonthsWide() []string {
+- return fo.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -194,79 +167,13 @@ func (fo *fo_FO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fo_FO' and handles both Whole and Real numbers based on 'v'
+ func (fo *fo_FO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(fo.minus) - 1; j >= 0; j-- {
+- b = append(b, fo.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fo_FO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fo *fo_FO) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fo.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(fo.minus) - 1; j >= 0; j-- {
+- b = append(b, fo.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fo.percentSuffix...)
+-
+- b = append(b, fo.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fo_FO'
+@@ -274,58 +181,7 @@ func (fo *fo_FO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fo.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(fo.minus) - 1; j >= 0; j-- {
+- b = append(b, fo.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fo.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fo_FO'
+@@ -334,63 +190,7 @@ func (fo *fo_FO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fo.currencies[currency]
+- l := len(s) + len(symbol) + 8 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fo.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fo.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fo.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fo_FO'
+@@ -398,27 +198,6 @@ func (fo *fo_FO) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -427,27 +206,6 @@ func (fo *fo_FO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -456,17 +214,6 @@ func (fo *fo_FO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, fo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,19 +222,6 @@ func (fo *fo_FO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fo.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, fo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -496,19 +230,6 @@ func (fo *fo_FO) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -517,26 +238,6 @@ func (fo *fo_FO) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -545,30 +246,6 @@ func (fo *fo_FO) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -577,34 +254,5 @@ func (fo *fo_FO) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fo.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr/fr.go b/fr/fr.go
+index f4fa648..0753971 100644
+--- a/fr/fr.go
++++ b/fr/fr.go
+@@ -75,7 +75,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+ erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+ erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"SGT": "heure de Singapour", "MST": "heure normale de Macao", "UYT": "heure normale de l’Uruguay", "GFT": "heure de la Guyane française", "ACST": "heure normale du centre de l’Australie", "SAST": "heure normale d’Afrique méridionale", "IST": "heure de l’Inde", "JDT": "heure d’été du Japon", "WARST": "heure d’été de l’Ouest argentin", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "AST": "heure normale de l’Atlantique", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "SRT": "heure du Suriname", "ACWST": "heure normale du centre-ouest de l’Australie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EDT": "heure d’été de l’Est", "AKDT": "heure d’été de l’Alaska", "HNOG": "heure normale de l’Ouest du Groenland", "CLST": "heure d’été du Chili", "TMST": "heure d’été du Turkménistan", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "HNEG": "heure normale de l’Est du Groenland", "WAT": "heure normale d’Afrique de l’Ouest", "ECT": "heure de l’Équateur", "GMT": "heure moyenne de Greenwich", "BT": "heure du Bhoutan", "HEOG": "heure d’été de l’Ouest du Groenland", "HNT": "heure normale de Terre-Neuve", "MDT": "heure d’été de Macao", "UYST": "heure d’été de l’Uruguay", "HNCU": "heure normale de Cuba", "CST": "heure normale du centre nord-américain", "AEDT": "heure d’été de l’Est de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "COT": "heure normale de Colombie", "ART": "heure normale d’Argentine", "CAT": "heure normale d’Afrique centrale", "WIB": "heure de l’Ouest indonésien", "LHST": "heure normale de Lord Howe", "CHAST": "heure normale des îles Chatham", "CLT": "heure normale du Chili", "∅∅∅": "heure d’été de l’Amazonie", "OEZ": "heure normale d’Europe de l’Est", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AWST": "heure normale de l’Ouest de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "WART": "heure normale de l’Ouest argentin", "MYT": "heure de la Malaisie", "MEZ": "heure normale d’Europe centrale", "MESZ": "heure d’été d’Europe centrale", "NZDT": "heure d’été de la Nouvelle-Zélande", "JST": "heure normale du Japon", "EST": "heure normale de l’Est nord-américain", "PDT": "heure d’été du Pacifique", "WESZ": "heure d’été d’Europe de l’Ouest", "ARST": "heure d’été de l’Argentine", "HEPMX": "heure d’été du Pacifique mexicain", "LHDT": "heure d’été de Lord Howe", "WAST": "heure d’été d’Afrique de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "HKT": "heure normale de Hong Kong", "CHADT": "heure d’été des îles Chatham", "HEEG": "heure d’été de l’Est du Groenland", "TMT": "heure normale du Turkménistan", "COST": "heure d’été de Colombie", "PST": "heure normale du Pacifique nord-américain", "AEST": "heure normale de l’Est de l’Australie", "HKST": "heure d’été de Hong Kong", "AKST": "heure normale de l’Alaska", "WEZ": "heure normale d’Europe de l’Ouest", "EAT": "heure normale d’Afrique de l’Est", "GYT": "heure du Guyana", "BOT": "heure de Bolivie", "OESZ": "heure d’été d’Europe de l’Est", "CDT": "heure d’été du Centre", "ADT": "heure d’été de l’Atlantique", "WIT": "heure de l’Est indonésien", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "ChST": "heure des Chamorro", "HNPMX": "heure normale du Pacifique mexicain", "VET": "heure du Venezuela", "WITA": "heure du Centre indonésien", "ACDT": "heure d’été du centre de l’Australie", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HECU": "heure d’été de Cuba"},
++ timezones: map[string]string{"JST": "heure normale du Japon", "HNPMX": "heure normale du Pacifique mexicain", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HAST": "heure normale d’Hawaii - Aléoutiennes", "WESZ": "heure d’été d’Europe de l’Ouest", "HEPMX": "heure d’été du Pacifique mexicain", "TMST": "heure d’été du Turkménistan", "SRT": "heure du Suriname", "UYT": "heure normale de l’Uruguay", "GYT": "heure du Guyana", "EST": "heure normale de l’Est nord-américain", "CHADT": "heure d’été des îles Chatham", "HECU": "heure d’été de Cuba", "HNOG": "heure normale de l’Ouest du Groenland", "AEDT": "heure d’été de l’Est de l’Australie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "PDT": "heure d’été du Pacifique", "WEZ": "heure normale d’Europe de l’Ouest", "HNCU": "heure normale de Cuba", "HKST": "heure d’été de Hong Kong", "ARST": "heure d’été de l’Argentine", "CDT": "heure d’été du Centre", "NZST": "heure normale de la Nouvelle-Zélande", "GMT": "heure moyenne de Greenwich", "BOT": "heure de Bolivie", "ACWST": "heure normale du centre-ouest de l’Australie", "OESZ": "heure d’été d’Europe de l’Est", "WITA": "heure du Centre indonésien", "ADT": "heure d’été de l’Atlantique", "AWDT": "heure d’été de l’Ouest de l’Australie", "VET": "heure du Venezuela", "AST": "heure normale de l’Atlantique", "EAT": "heure normale d’Afrique de l’Est", "MEZ": "heure normale d’Europe centrale", "∅∅∅": "heure d’été de l’Acre", "CHAST": "heure normale des îles Chatham", "SAST": "heure normale d’Afrique méridionale", "CAT": "heure normale d’Afrique centrale", "CLT": "heure normale du Chili", "MST": "heure normale de Macao", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "IST": "heure de l’Inde", "OEZ": "heure normale d’Europe de l’Est", "MDT": "heure d’été de Macao", "ART": "heure normale d’Argentine", "HEEG": "heure d’été de l’Est du Groenland", "BT": "heure du Bhoutan", "GFT": "heure de la Guyane française", "HNT": "heure normale de Terre-Neuve", "WIT": "heure de l’Est indonésien", "TMT": "heure normale du Turkménistan", "ECT": "heure de l’Équateur", "AKDT": "heure d’été de l’Alaska", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACDT": "heure d’été du centre de l’Australie", "MYT": "heure de la Malaisie", "SGT": "heure de Singapour", "WAT": "heure normale d’Afrique de l’Ouest", "AKST": "heure normale de l’Alaska", "WARST": "heure d’été de l’Ouest argentin", "CST": "heure normale du centre nord-américain", "AWST": "heure normale de l’Ouest de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "PST": "heure normale du Pacifique nord-américain", "ACWDT": "heure d’été du centre-ouest de l’Australie", "WART": "heure normale de l’Ouest argentin", "CLST": "heure d’été du Chili", "MESZ": "heure d’été d’Europe centrale", "ACST": "heure normale du centre de l’Australie", "JDT": "heure d’été du Japon", "HAT": "heure d’été de Terre-Neuve", "COST": "heure d’été de Colombie", "HEOG": "heure d’été de l’Ouest du Groenland", "HKT": "heure normale de Hong Kong", "ChST": "heure des Chamorro", "HNEG": "heure normale de l’Est du Groenland", "LHST": "heure normale de Lord Howe", "LHDT": "heure d’été de Lord Howe", "AEST": "heure normale de l’Est de l’Australie", "UYST": "heure d’été de l’Uruguay", "EDT": "heure d’été de l’Est", "WIB": "heure de l’Ouest indonésien", "WAST": "heure d’été d’Afrique de l’Ouest", "COT": "heure normale de Colombie", "NZDT": "heure d’été de la Nouvelle-Zélande"},
+ }
+ }
+ 
+diff --git a/fr_BE/fr_BE.go b/fr_BE/fr_BE.go
+index 646a1f5..d38acac 100644
+--- a/fr_BE/fr_BE.go
++++ b/fr_BE/fr_BE.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_BE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_BE' locale
+ func New() locales.Translator {
+ return &fr_BE{
+- locale: "fr_BE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"AWDT": "heure d’été de l’Ouest de l’Australie", "HEEG": "heure d’été de l’Est du Groenland", "OESZ": "heure d’été d’Europe de l’Est", "HEPMX": "heure d’été du Pacifique mexicain", "UYST": "heure d’été de l’Uruguay", "SRT": "heure du Suriname", "ACWST": "heure normale du centre-ouest de l’Australie", "ChST": "heure des Chamorro", "WIB": "heure de l’Ouest indonésien", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "WARST": "heure d’été de l’Ouest argentin", "AKST": "heure normale de l’Alaska", "ADT": "heure d’été de l’Atlantique", "MYT": "heure de la Malaisie", "HKST": "heure d’été de Hong Kong", "AWST": "heure normale de l’Ouest de l’Australie", "CHAST": "heure normale des îles Chatham", "JST": "heure normale du Japon", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HNOG": "heure normale de l’Ouest du Groenland", "NZST": "heure normale de la Nouvelle-Zélande", "CAT": "heure normale d’Afrique centrale", "MEZ": "heure normale d’Europe centrale", "LHST": "heure normale de Lord Howe", "LHDT": "heure d’été de Lord Howe", "HNT": "heure normale de Terre-Neuve", "PST": "heure normale du Pacifique nord-américain", "MESZ": "heure d’été d’Europe centrale", "SAST": "heure normale d’Afrique méridionale", "IST": "heure de l’Inde", "CLST": "heure d’été du Chili", "CST": "heure normale du centre nord-américain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HAT": "heure d’été de Terre-Neuve", "AEST": "heure normale de l’Est de l’Australie", "HKT": "heure normale de Hong Kong", "WITA": "heure du Centre indonésien", "ACST": "heure normale du centre de l’Australie", "WAT": "heure normale d’Afrique de l’Ouest", "WEZ": "heure normale d’Europe de l’Ouest", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "CDT": "heure d’été du Centre", "UYT": "heure normale de l’Uruguay", "COST": "heure d’été de Colombie", "ARST": "heure d’été de l’Argentine", "BOT": "heure de Bolivie", "HNEG": "heure normale de l’Est du Groenland", "SGT": "heure de Singapour", "GYT": "heure du Guyana", "WIT": "heure de l’Est indonésien", "∅∅∅": "heure d’été de l’Amazonie", "HAST": "heure normale d’Hawaii - Aléoutiennes", "BT": "heure du Bhoutan", "HEOG": "heure d’été de l’Ouest du Groenland", "TMST": "heure d’été du Turkménistan", "WART": "heure normale de l’Ouest argentin", "HECU": "heure d’été de Cuba", "MST": "heure normale des Rocheuses", "EAT": "heure normale d’Afrique de l’Est", "OEZ": "heure normale d’Europe de l’Est", "HNPMX": "heure normale du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "VET": "heure du Venezuela", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "GFT": "heure de la Guyane française", "WAST": "heure d’été d’Afrique de l’Ouest", "GMT": "heure moyenne de Greenwich", "AEDT": "heure d’été de l’Est de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "HNCU": "heure normale de Cuba", "EST": "heure normale de l’Est nord-américain", "EDT": "heure d’été de l’Est", "AKDT": "heure d’été de l’Alaska", "PDT": "heure d’été du Pacifique", "NZDT": "heure d’été de la Nouvelle-Zélande", "CHADT": "heure d’été des îles Chatham", "JDT": "heure d’été du Japon", "ART": "heure normale d’Argentine", "WESZ": "heure d’été d’Europe de l’Ouest", "CLT": "heure normale du Chili", "TMT": "heure normale du Turkménistan", "ECT": "heure de l’Équateur", "COT": "heure normale de Colombie", "MDT": "heure d’été des Rocheuses"},
++ locale: "fr_BE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"∅∅∅": "∅∅∅", "PDT": "PDT", "CHADT": "CHADT", "ARST": "ARST", "AWDT": "AWDT", "LHDT": "LHDT", "OESZ": "OESZ", "HNOG": "HNOG", "WITA": "WITA", "GMT": "GMT", "MEZ": "MEZ", "HEEG": "HEEG", "HNT": "HNT", "EDT": "EDT", "CLST": "CLST", "WAST": "WAST", "COST": "COST", "CAT": "CAT", "NZST": "NZST", "HAST": "HAST", "SGT": "SGT", "WAT": "WAT", "ACWDT": "ACWDT", "EST": "EST", "CLT": "CLT", "ECT": "ECT", "MST": "MST", "HNPM": "HNPM", "JST": "JST", "TMT": "TMT", "TMST": "TMST", "WIB": "WIB", "AST": "AST", "BOT": "BOT", "OEZ": "OEZ", "AKST": "AKST", "WART": "WART", "HKT": "HKT", "ChST": "ChST", "UYT": "UYT", "BT": "BT", "MDT": "MDT", "WEZ": "WEZ", "NZDT": "NZDT", "CHAST": "CHAST", "HECU": "HECU", "WIT": "WIT", "WESZ": "WESZ", "WARST": "WARST", "GYT": "GYT", "HADT": "HADT", "HNNOMX": "HNNOMX", "AEST": "AEST", "HEOG": "HEOG", "CST": "CST", "CDT": "CDT", "ART": "ART", "VET": "VET", "AKDT": "AKDT", "HNEG": "HNEG", "PST": "PST", "GFT": "GFT", "AEDT": "AEDT", "HEPMX": "HEPMX", "HKST": "HKST", "SRT": "SRT", "MYT": "MYT", "UYST": "UYST", "IST": "IST", "ACWST": "ACWST", "HNPMX": "HNPMX", "HAT": "HAT", "COT": "COT", "EAT": "EAT", "ACST": "ACST", "ACDT": "ACDT", "HNCU": "HNCU", "MESZ": "MESZ", "HEPM": "HEPM", "JDT": "JDT", "LHST": "LHST", "SAST": "SAST", "ADT": "ADT", "HENOMX": "HENOMX", "AWST": "AWST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_BE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_BE) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_BE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_BE) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_BE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_BE) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_BE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_BE' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_BE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_BE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_BE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_BE'
+@@ -291,58 +200,7 @@ func (fr *fr_BE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_BE'
+@@ -351,65 +209,7 @@ func (fr *fr_BE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_BE'
+@@ -442,17 +242,6 @@ func (fr *fr_BE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -461,17 +250,6 @@ func (fr *fr_BE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -480,19 +258,6 @@ func (fr *fr_BE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -501,19 +266,6 @@ func (fr *fr_BE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -522,26 +274,6 @@ func (fr *fr_BE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -550,30 +282,6 @@ func (fr *fr_BE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+diff --git a/fr_BF/fr_BF.go b/fr_BF/fr_BF.go
+index 4ab90b7..648f743 100644
+--- a/fr_BF/fr_BF.go
++++ b/fr_BF/fr_BF.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_BF struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_BF' locale
+ func New() locales.Translator {
+ return &fr_BF{
+- locale: "fr_BF",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"SAST": "heure normale d’Afrique méridionale", "JST": "heure normale du Japon", "ACDT": "heure d’été du centre de l’Australie", "AST": "heure normale de l’Atlantique", "ADT": "heure d’été de l’Atlantique", "BT": "heure du Bhoutan", "WEZ": "heure normale d’Europe de l’Ouest", "CHADT": "heure d’été des îles Chatham", "GYT": "heure du Guyana", "PDT": "heure d’été du Pacifique", "MEZ": "heure normale d’Europe centrale", "JDT": "heure d’été du Japon", "ACST": "heure normale du centre de l’Australie", "HEEG": "heure d’été de l’Est du Groenland", "TMST": "heure d’été du Turkménistan", "HECU": "heure d’été de Cuba", "HNPMX": "heure normale du Pacifique mexicain", "WIB": "heure de l’Ouest indonésien", "WIT": "heure de l’Est indonésien", "ART": "heure normale d’Argentine", "CLT": "heure normale du Chili", "WESZ": "heure d’été d’Europe de l’Ouest", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "OEZ": "heure normale d’Europe de l’Est", "ECT": "heure de l’Équateur", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "UYST": "heure d’été de l’Uruguay", "WITA": "heure du Centre indonésien", "NZDT": "heure d’été de la Nouvelle-Zélande", "TMT": "heure normale du Turkménistan", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "EDT": "heure d’été de l’Est", "SRT": "heure du Suriname", "HNOG": "heure normale de l’Ouest du Groenland", "AEST": "heure normale de l’Est de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "WARST": "heure d’été de l’Ouest argentin", "MYT": "heure de la Malaisie", "CST": "heure normale du centre nord-américain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HNT": "heure normale de Terre-Neuve", "IST": "heure de l’Inde", "ARST": "heure d’été de l’Argentine", "LHST": "heure normale de Lord Howe", "BOT": "heure de Bolivie", "AWDT": "heure d’été de l’Ouest de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "EAT": "heure normale d’Afrique de l’Est", "EST": "heure normale de l’Est nord-américain", "MDT": "heure d’été de Macao", "HEPMX": "heure d’été du Pacifique mexicain", "UYT": "heure normale de l’Uruguay", "VET": "heure du Venezuela", "GMT": "heure moyenne de Greenwich", "HNCU": "heure normale de Cuba", "MST": "heure normale de Macao", "CHAST": "heure normale des îles Chatham", "∅∅∅": "heure d’été de l’Amazonie", "GFT": "heure de la Guyane française", "MESZ": "heure d’été d’Europe centrale", "SGT": "heure de Singapour", "WART": "heure normale de l’Ouest argentin", "COST": "heure d’été de Colombie", "CDT": "heure d’été du Centre", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HAT": "heure d’été de Terre-Neuve", "HEOG": "heure d’été de l’Ouest du Groenland", "HNEG": "heure normale de l’Est du Groenland", "ChST": "heure des Chamorro", "CAT": "heure normale d’Afrique centrale", "WAST": "heure d’été d’Afrique de l’Ouest", "AKDT": "heure d’été de l’Alaska", "AWST": "heure normale de l’Ouest de l’Australie", "HKST": "heure d’été de Hong Kong", "LHDT": "heure d’été de Lord Howe", "CLST": "heure d’été du Chili", "PST": "heure normale du Pacifique nord-américain", "HKT": "heure normale de Hong Kong", "WAT": "heure normale d’Afrique de l’Ouest", "OESZ": "heure d’été d’Europe de l’Est", "COT": "heure normale de Colombie", "AKST": "heure normale de l’Alaska", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACWST": "heure normale du centre-ouest de l’Australie"},
++ locale: "fr_BF",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"LHST": "LHST", "IST": "IST", "ACWST": "ACWST", "CHADT": "CHADT", "HKT": "HKT", "CLST": "CLST", "HNPM": "HNPM", "AKST": "AKST", "ECT": "ECT", "GMT": "GMT", "SRT": "SRT", "WITA": "WITA", "BT": "BT", "OEZ": "OEZ", "WIT": "WIT", "SAST": "SAST", "COST": "COST", "HNOG": "HNOG", "EST": "EST", "NZDT": "NZDT", "EAT": "EAT", "AWDT": "AWDT", "JST": "JST", "HECU": "HECU", "AKDT": "AKDT", "MDT": "MDT", "ARST": "ARST", "HADT": "HADT", "GFT": "GFT", "CDT": "CDT", "ChST": "ChST", "HNEG": "HNEG", "HEEG": "HEEG", "∅∅∅": "∅∅∅", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "HNT": "HNT", "COT": "COT", "HEPM": "HEPM", "PST": "PST", "AEST": "AEST", "CST": "CST", "AWST": "AWST", "MYT": "MYT", "WAST": "WAST", "HAT": "HAT", "WARST": "WARST", "JDT": "JDT", "PDT": "PDT", "WEZ": "WEZ", "WART": "WART", "HEOG": "HEOG", "HAST": "HAST", "UYT": "UYT", "WESZ": "WESZ", "HKST": "HKST", "CAT": "CAT", "BOT": "BOT", "MESZ": "MESZ", "LHDT": "LHDT", "CHAST": "CHAST", "UYST": "UYST", "VET": "VET", "MST": "MST", "HENOMX": "HENOMX", "SGT": "SGT", "HEPMX": "HEPMX", "OESZ": "OESZ", "GYT": "GYT", "AST": "AST", "MEZ": "MEZ", "AEDT": "AEDT", "TMST": "TMST", "CLT": "CLT", "NZST": "NZST", "ACDT": "ACDT", "WIB": "WIB", "ADT": "ADT", "ACST": "ACST", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "WAT": "WAT", "EDT": "EDT", "TMT": "TMT", "ART": "ART"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_BF) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_BF) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_BF) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_BF) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_BF) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_BF) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_BF) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_BF' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_BF) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_BF' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_BF) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_BF'
+@@ -291,58 +200,7 @@ func (fr *fr_BF) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_BF'
+@@ -351,65 +209,7 @@ func (fr *fr_BF) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_BF'
+@@ -417,27 +217,6 @@ func (fr *fr_BF) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_BF) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_BF) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_BF) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_BF) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_BF) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_BF) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_BF) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_BI/fr_BI.go b/fr_BI/fr_BI.go
+index 07aeda5..e1477b6 100644
+--- a/fr_BI/fr_BI.go
++++ b/fr_BI/fr_BI.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_BI struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_BI' locale
+ func New() locales.Translator {
+ return &fr_BI{
+- locale: "fr_BI",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "FBu", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"HNPM": "heure normale de Saint-Pierre-et-Miquelon", "COT": "heure normale de Colombie", "SGT": "heure de Singapour", "CST": "heure normale du centre nord-américain", "HKST": "heure d’été de Hong Kong", "LHST": "heure normale de Lord Howe", "IST": "heure de l’Inde", "∅∅∅": "heure d’été de l’Amazonie", "WIB": "heure de l’Ouest indonésien", "ChST": "heure des Chamorro", "AKST": "heure normale de l’Alaska", "WEZ": "heure normale d’Europe de l’Ouest", "HNOG": "heure normale de l’Ouest du Groenland", "CHADT": "heure d’été des îles Chatham", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AKDT": "heure d’été de l’Alaska", "PST": "heure normale du Pacifique nord-américain", "AEDT": "heure d’été de l’Est de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "EDT": "heure d’été de l’Est", "MESZ": "heure d’été d’Europe centrale", "NZDT": "heure d’été de la Nouvelle-Zélande", "ADT": "heure d’été de l’Atlantique", "ACWST": "heure normale du centre-ouest de l’Australie", "ECT": "heure de l’Équateur", "HNCU": "heure normale de Cuba", "EST": "heure normale de l’Est nord-américain", "UYST": "heure d’été de l’Uruguay", "CDT": "heure d’été du Centre", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "OESZ": "heure d’été d’Europe de l’Est", "HNPMX": "heure normale du Pacifique mexicain", "GYT": "heure du Guyana", "BT": "heure du Bhoutan", "HNEG": "heure normale de l’Est du Groenland", "TMST": "heure d’été du Turkménistan", "PDT": "heure d’été du Pacifique", "WESZ": "heure d’été d’Europe de l’Ouest", "WITA": "heure du Centre indonésien", "CLST": "heure d’été du Chili", "JDT": "heure d’été du Japon", "GFT": "heure de la Guyane française", "COST": "heure d’été de Colombie", "MST": "heure normale de Macao", "VET": "heure du Venezuela", "CLT": "heure normale du Chili", "CAT": "heure normale d’Afrique centrale", "HEPMX": "heure d’été du Pacifique mexicain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HEOG": "heure d’été de l’Ouest du Groenland", "UYT": "heure normale de l’Uruguay", "WIT": "heure de l’Est indonésien", "MEZ": "heure normale d’Europe centrale", "TMT": "heure normale du Turkménistan", "ACST": "heure normale du centre de l’Australie", "WARST": "heure d’été de l’Ouest argentin", "HECU": "heure d’été de Cuba", "MDT": "heure d’été de Macao", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HNT": "heure normale de Terre-Neuve", "ART": "heure normale d’Argentine", "AWST": "heure normale de l’Ouest de l’Australie", "HAT": "heure d’été de Terre-Neuve", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "CHAST": "heure normale des îles Chatham", "SAST": "heure normale d’Afrique méridionale", "EAT": "heure normale d’Afrique de l’Est", "WAT": "heure normale d’Afrique de l’Ouest", "WART": "heure normale de l’Ouest argentin", "GMT": "heure moyenne de Greenwich", "SRT": "heure du Suriname", "ARST": "heure d’été de l’Argentine", "AEST": "heure normale de l’Est de l’Australie", "LHDT": "heure d’été de Lord Howe", "HEEG": "heure d’été de l’Est du Groenland", "WAST": "heure d’été d’Afrique de l’Ouest", "HKT": "heure normale de Hong Kong", "AWDT": "heure d’été de l’Ouest de l’Australie", "JST": "heure normale du Japon", "BOT": "heure de Bolivie", "OEZ": "heure normale d’Europe de l’Est", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "AST": "heure normale de l’Atlantique", "MYT": "heure de la Malaisie"},
++ locale: "fr_BI",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "FBu", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ChST": "ChST", "ART": "ART", "BOT": "BOT", "LHST": "LHST", "HAT": "HAT", "∅∅∅": "∅∅∅", "SAST": "SAST", "GYT": "GYT", "VET": "VET", "CLT": "CLT", "HENOMX": "HENOMX", "MYT": "MYT", "HEPMX": "HEPMX", "HNNOMX": "HNNOMX", "JST": "JST", "CHADT": "CHADT", "GFT": "GFT", "HKST": "HKST", "CLST": "CLST", "ECT": "ECT", "HNOG": "HNOG", "HNEG": "HNEG", "AWST": "AWST", "HECU": "HECU", "EST": "EST", "CST": "CST", "WAST": "WAST", "EAT": "EAT", "MESZ": "MESZ", "JDT": "JDT", "IST": "IST", "WIT": "WIT", "HKT": "HKT", "WITA": "WITA", "ADT": "ADT", "AKDT": "AKDT", "HNT": "HNT", "HEEG": "HEEG", "HEPM": "HEPM", "ACWDT": "ACWDT", "UYT": "UYT", "WAT": "WAT", "OEZ": "OEZ", "GMT": "GMT", "LHDT": "LHDT", "BT": "BT", "HEOG": "HEOG", "ACST": "ACST", "ACDT": "ACDT", "WEZ": "WEZ", "OESZ": "OESZ", "EDT": "EDT", "MEZ": "MEZ", "HNCU": "HNCU", "HAST": "HAST", "CHAST": "CHAST", "COT": "COT", "COST": "COST", "TMST": "TMST", "WIB": "WIB", "SGT": "SGT", "NZST": "NZST", "AST": "AST", "AWDT": "AWDT", "PDT": "PDT", "HNPMX": "HNPMX", "CDT": "CDT", "MDT": "MDT", "ARST": "ARST", "AEST": "AEST", "HADT": "HADT", "AEDT": "AEDT", "PST": "PST", "WART": "WART", "WARST": "WARST", "NZDT": "NZDT", "MST": "MST", "TMT": "TMT", "ACWST": "ACWST", "WESZ": "WESZ", "AKST": "AKST", "CAT": "CAT", "SRT": "SRT", "HNPM": "HNPM", "UYST": "UYST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_BI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_BI) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_BI) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_BI) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_BI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_BI) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_BI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_BI' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_BI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_BI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_BI) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_BI'
+@@ -291,58 +200,7 @@ func (fr *fr_BI) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_BI'
+@@ -351,65 +209,7 @@ func (fr *fr_BI) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_BI'
+@@ -417,27 +217,6 @@ func (fr *fr_BI) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_BI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_BI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_BI) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_BI) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_BI) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_BI) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_BI) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_BJ/fr_BJ.go b/fr_BJ/fr_BJ.go
+index 66c9075..e3de1ce 100644
+--- a/fr_BJ/fr_BJ.go
++++ b/fr_BJ/fr_BJ.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_BJ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_BJ' locale
+ func New() locales.Translator {
+ return &fr_BJ{
+- locale: "fr_BJ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"UYST": "heure d’été de l’Uruguay", "WEZ": "heure normale d’Europe de l’Ouest", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CLT": "heure normale du Chili", "HECU": "heure d’été de Cuba", "MYT": "heure de la Malaisie", "GYT": "heure du Guyana", "HNOG": "heure normale de l’Ouest du Groenland", "PST": "heure normale du Pacifique nord-américain", "HKST": "heure d’été de Hong Kong", "ACDT": "heure d’été du centre de l’Australie", "WAST": "heure d’été d’Afrique de l’Ouest", "SGT": "heure de Singapour", "EST": "heure normale de l’Est nord-américain", "HAT": "heure d’été de Terre-Neuve", "AEST": "heure normale de l’Est de l’Australie", "TMST": "heure d’été du Turkménistan", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "ART": "heure normale d’Argentine", "ACWST": "heure normale du centre-ouest de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "BOT": "heure de Bolivie", "WAT": "heure normale d’Afrique de l’Ouest", "HNPMX": "heure normale du Pacifique mexicain", "AKST": "heure normale de l’Alaska", "ARST": "heure d’été de l’Argentine", "MEZ": "heure normale d’Europe centrale", "OESZ": "heure d’été d’Europe de l’Est", "UYT": "heure normale de l’Uruguay", "HKT": "heure normale de Hong Kong", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "LHDT": "heure d’été de Lord Howe", "IST": "heure de l’Inde", "HNEG": "heure normale de l’Est du Groenland", "HEPMX": "heure d’été du Pacifique mexicain", "HNT": "heure normale de Terre-Neuve", "AWDT": "heure d’été de l’Ouest de l’Australie", "∅∅∅": "heure d’été de l’Amazonie", "COST": "heure d’été de Colombie", "WIB": "heure de l’Ouest indonésien", "TMT": "heure normale du Turkménistan", "HEEG": "heure d’été de l’Est du Groenland", "CDT": "heure d’été du Centre", "WIT": "heure de l’Est indonésien", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "HNCU": "heure normale de Cuba", "HAST": "heure normale d’Hawaii - Aléoutiennes", "AWST": "heure normale de l’Ouest de l’Australie", "JST": "heure normale du Japon", "OEZ": "heure normale d’Europe de l’Est", "AST": "heure normale de l’Atlantique", "VET": "heure du Venezuela", "SRT": "heure du Suriname", "HEOG": "heure d’été de l’Ouest du Groenland", "AKDT": "heure d’été de l’Alaska", "WITA": "heure du Centre indonésien", "LHST": "heure normale de Lord Howe", "ChST": "heure des Chamorro", "ACST": "heure normale du centre de l’Australie", "PDT": "heure d’été du Pacifique", "CST": "heure normale du centre nord-américain", "AEDT": "heure d’été de l’Est de l’Australie", "SAST": "heure normale d’Afrique méridionale", "JDT": "heure d’été du Japon", "CLST": "heure d’été du Chili", "ECT": "heure de l’Équateur", "WARST": "heure d’été de l’Ouest argentin", "EDT": "heure d’été de l’Est", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "WESZ": "heure d’été d’Europe de l’Ouest", "MESZ": "heure d’été d’Europe centrale", "CHAST": "heure normale des îles Chatham", "CHADT": "heure d’été des îles Chatham", "CAT": "heure normale d’Afrique centrale", "COT": "heure normale de Colombie", "GMT": "heure moyenne de Greenwich", "ADT": "heure d’été de l’Atlantique", "EAT": "heure normale d’Afrique de l’Est", "BT": "heure du Bhoutan", "MDT": "heure d’été de Macao", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "GFT": "heure de la Guyane française", "WART": "heure normale de l’Ouest argentin", "MST": "heure normale de Macao"},
++ locale: "fr_BJ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AWST": "AWST", "LHDT": "LHDT", "UYT": "UYT", "IST": "IST", "OESZ": "OESZ", "COT": "COT", "CAT": "CAT", "ACDT": "ACDT", "HNOG": "HNOG", "WIB": "WIB", "MESZ": "MESZ", "WAST": "WAST", "TMT": "TMT", "CDT": "CDT", "CHADT": "CHADT", "HNT": "HNT", "ECT": "ECT", "ADT": "ADT", "BT": "BT", "WESZ": "WESZ", "HAT": "HAT", "HKT": "HKT", "CLST": "CLST", "MDT": "MDT", "HNPM": "HNPM", "JDT": "JDT", "HECU": "HECU", "AKST": "AKST", "AKDT": "AKDT", "WITA": "WITA", "MST": "MST", "WIT": "WIT", "HENOMX": "HENOMX", "HAST": "HAST", "HADT": "HADT", "LHST": "LHST", "UYST": "UYST", "WARST": "WARST", "ARST": "ARST", "HEEG": "HEEG", "AST": "AST", "BOT": "BOT", "HNNOMX": "HNNOMX", "EDT": "EDT", "TMST": "TMST", "HEPM": "HEPM", "CHAST": "CHAST", "PST": "PST", "PDT": "PDT", "AEDT": "AEDT", "WEZ": "WEZ", "∅∅∅": "∅∅∅", "GMT": "GMT", "HEPMX": "HEPMX", "EAT": "EAT", "AWDT": "AWDT", "VET": "VET", "WART": "WART", "NZST": "NZST", "ART": "ART", "ACWDT": "ACWDT", "AEST": "AEST", "ACST": "ACST", "JST": "JST", "CLT": "CLT", "CST": "CST", "HNPMX": "HNPMX", "GFT": "GFT", "COST": "COST", "HEOG": "HEOG", "HKST": "HKST", "ChST": "ChST", "MYT": "MYT", "MEZ": "MEZ", "HNEG": "HNEG", "HNCU": "HNCU", "SAST": "SAST", "GYT": "GYT", "EST": "EST", "SRT": "SRT", "SGT": "SGT", "WAT": "WAT", "OEZ": "OEZ", "NZDT": "NZDT", "ACWST": "ACWST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_BJ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_BJ) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_BJ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_BJ) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_BJ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_BJ) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_BJ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_BJ' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_BJ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_BJ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_BJ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_BJ'
+@@ -291,58 +200,7 @@ func (fr *fr_BJ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_BJ'
+@@ -351,65 +209,7 @@ func (fr *fr_BJ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_BJ'
+@@ -417,27 +217,6 @@ func (fr *fr_BJ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_BJ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_BJ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_BJ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_BJ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_BJ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_BJ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_BJ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_BL/fr_BL.go b/fr_BL/fr_BL.go
+index 6c902f1..0acc5ff 100644
+--- a/fr_BL/fr_BL.go
++++ b/fr_BL/fr_BL.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_BL struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_BL' locale
+ func New() locales.Translator {
+ return &fr_BL{
+- locale: "fr_BL",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"LHST": "heure normale de Lord Howe", "COT": "heure normale de Colombie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HEEG": "heure d’été de l’Est du Groenland", "ECT": "heure de l’Équateur", "OEZ": "heure normale d’Europe de l’Est", "WART": "heure normale de l’Ouest argentin", "UYT": "heure normale de l’Uruguay", "JDT": "heure d’été du Japon", "EST": "heure normale de l’Est nord-américain", "WIT": "heure de l’Est indonésien", "AWST": "heure normale de l’Ouest de l’Australie", "CHAST": "heure normale des îles Chatham", "HNCU": "heure normale de Cuba", "MYT": "heure de la Malaisie", "WIB": "heure de l’Ouest indonésien", "MESZ": "heure d’été d’Europe centrale", "CHADT": "heure d’été des îles Chatham", "TMT": "heure normale du Turkménistan", "ChST": "heure des Chamorro", "COST": "heure d’été de Colombie", "MDT": "heure d’été de Macao", "ARST": "heure d’été de l’Argentine", "LHDT": "heure d’été de Lord Howe", "WAST": "heure d’été d’Afrique de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "AKST": "heure normale de l’Alaska", "HNT": "heure normale de Terre-Neuve", "SAST": "heure normale d’Afrique méridionale", "IST": "heure de l’Inde", "CAT": "heure normale d’Afrique centrale", "HECU": "heure d’été de Cuba", "HNPMX": "heure normale du Pacifique mexicain", "HKST": "heure d’été de Hong Kong", "MEZ": "heure normale d’Europe centrale", "∅∅∅": "heure d’été de l’Amazonie", "GFT": "heure de la Guyane française", "GMT": "heure moyenne de Greenwich", "AST": "heure normale de l’Atlantique", "UYST": "heure d’été de l’Uruguay", "BT": "heure du Bhoutan", "PDT": "heure d’été du Pacifique", "WEZ": "heure normale d’Europe de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "CLST": "heure d’été du Chili", "HNEG": "heure normale de l’Est du Groenland", "EAT": "heure normale d’Afrique de l’Est", "SGT": "heure de Singapour", "EDT": "heure d’été de l’Est", "MST": "heure normale de Macao", "HKT": "heure normale de Hong Kong", "GYT": "heure du Guyana", "HNOG": "heure normale de l’Ouest du Groenland", "ACWST": "heure normale du centre-ouest de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HEPMX": "heure d’été du Pacifique mexicain", "TMST": "heure d’été du Turkménistan", "ACDT": "heure d’été du centre de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "CST": "heure normale du centre nord-américain", "VET": "heure du Venezuela", "PST": "heure normale du Pacifique nord-américain", "WESZ": "heure d’été d’Europe de l’Ouest", "WITA": "heure du Centre indonésien", "NZDT": "heure d’été de la Nouvelle-Zélande", "ACST": "heure normale du centre de l’Australie", "WAT": "heure normale d’Afrique de l’Ouest", "WARST": "heure d’été de l’Ouest argentin", "AKDT": "heure d’été de l’Alaska", "ART": "heure normale d’Argentine", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "JST": "heure normale du Japon", "BOT": "heure de Bolivie", "OESZ": "heure d’été d’Europe de l’Est", "ADT": "heure d’été de l’Atlantique", "CDT": "heure d’été du Centre", "HAST": "heure normale d’Hawaii - Aléoutiennes", "CLT": "heure normale du Chili", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "SRT": "heure du Suriname", "HEOG": "heure d’été de l’Ouest du Groenland", "AEST": "heure normale de l’Est de l’Australie"},
++ locale: "fr_BL",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CHAST": "CHAST", "WEZ": "WEZ", "HKST": "HKST", "JDT": "JDT", "MEZ": "MEZ", "WAT": "WAT", "EST": "EST", "GMT": "GMT", "ART": "ART", "AWDT": "AWDT", "CHADT": "CHADT", "PST": "PST", "PDT": "PDT", "VET": "VET", "WARST": "WARST", "ECT": "ECT", "HNOG": "HNOG", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "AWST": "AWST", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "OESZ": "OESZ", "GYT": "GYT", "WITA": "WITA", "AST": "AST", "EAT": "EAT", "CDT": "CDT", "ADT": "ADT", "HADT": "HADT", "LHDT": "LHDT", "HNCU": "HNCU", "OEZ": "OEZ", "GFT": "GFT", "CAT": "CAT", "ARST": "ARST", "HENOMX": "HENOMX", "HNPM": "HNPM", "HEPM": "HEPM", "JST": "JST", "ACWST": "ACWST", "AEST": "AEST", "HNPMX": "HNPMX", "SRT": "SRT", "HEPMX": "HEPMX", "EDT": "EDT", "CLST": "CLST", "IST": "IST", "ACDT": "ACDT", "HNEG": "HNEG", "ACWDT": "ACWDT", "WAST": "WAST", "HEOG": "HEOG", "MST": "MST", "ACST": "ACST", "AEDT": "AEDT", "COT": "COT", "MESZ": "MESZ", "HKT": "HKT", "TMST": "TMST", "BOT": "BOT", "WIT": "WIT", "SAST": "SAST", "COST": "COST", "CLT": "CLT", "BT": "BT", "HAST": "HAST", "HEEG": "HEEG", "UYT": "UYT", "WESZ": "WESZ", "HNT": "HNT", "HAT": "HAT", "NZST": "NZST", "ChST": "ChST", "LHST": "LHST", "MYT": "MYT", "UYST": "UYST", "HECU": "HECU", "SGT": "SGT", "AKST": "AKST", "WIB": "WIB", "MDT": "MDT", "WART": "WART", "TMT": "TMT", "CST": "CST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_BL) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_BL) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_BL) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_BL) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_BL) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_BL) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_BL) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_BL' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_BL) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_BL' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_BL) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_BL'
+@@ -291,58 +200,7 @@ func (fr *fr_BL) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_BL'
+@@ -351,65 +209,7 @@ func (fr *fr_BL) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_BL'
+@@ -417,27 +217,6 @@ func (fr *fr_BL) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_BL) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_BL) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_BL) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_BL) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_BL) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_BL) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_BL) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_CA/fr_CA.go b/fr_CA/fr_CA.go
+index a039690..c4e19c4 100644
+--- a/fr_CA/fr_CA.go
++++ b/fr_CA/fr_CA.go
+@@ -18,7 +18,6 @@ type fr_CA struct {
+ group string
+ minus string
+ percent string
+- percentSuffix string
+ perMille string
+ timeSeparator string
+ inifinity string
+@@ -49,31 +48,18 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{2, 6},
+ pluralsOrdinal: []locales.PluralRule{2, 6},
+ pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "$\u00a0AU", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "$", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CN¥", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "£", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "$\u00a0HK", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "¥", "KES", "KGS", "KHR", "CF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "C$", "NLG", "NOK", "NPR", "$\u00a0NZ", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "$\u00a0SG", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TL", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "$\u00a0US", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZK", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+ currencyPositiveSuffix: " mn ",
+ currencyNegativeSuffix: " mn ",
+ monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juill.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+ periodsAbbreviated: []string{"a.m.", "p.m."},
+ periodsNarrow: []string{"a", "p"},
+ periodsWide: []string{"a.m.", "p.m."},
+ erasAbbreviated: []string{"", ""},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"avant l’ère chrétienne", "de l’ère chrétienne"},
+- timezones: map[string]string{"EAT": "Heure d’Afrique orientale", "HENOMX": "heure avancée du Nord-Ouest du Mexique", "GMT": "heure moyenne de Greenwich", "SRT": "heure du Suriname", "SAST": "heure normale d’Afrique du Sud", "ACST": "heure normale du centre de l’Australie", "PDT": "heure avancée du Pacifique", "CHAST": "heure normale des Îles Chatham", "WAT": "heure normale d’Afrique de l’Ouest", "WAST": "heure avancée d’Afrique de l’Ouest", "ECT": "heure de l’Équateur", "AEST": "heure normale de l’Est de l’Australie", "HKT": "heure normale de Hong Kong", "MEZ": "heure normale d’Europe centrale", "TMT": "heure normale du Turkménistan", "SGT": "heure de Singapour", "BT": "heure du Bhoutan", "WEZ": "heure normale d’Europe de l’Ouest", "HAT": "heure avancée de Terre-Neuve", "HNOG": "heure normale de l’Ouest du Groenland", "CST": "heure normale du Centre", "AST": "heure normale de l’Atlantique", "PST": "heure normale du Pacifique", "HKST": "heure avancée de Hong Kong", "HNCU": "heure normale de Cuba", "CDT": "heure avancée du Centre", "ART": "heure normale d’Argentine", "LHST": "heure normale de Lord Howe", "NZDT": "heure avancée de la Nouvelle-Zélande", "OEZ": "heure normale d’Europe de l’Est", "OESZ": "heure avancée d’Europe de l’Est", "HAST": "heure normale d’Hawaï-Aléoutiennes", "AEDT": "heure avancée de l’Est de l’Australie", "IST": "heure de l’Inde", "CLT": "heure normale du Chili", "GFT": "heure de Guyane française", "COT": "heure normale de Colombie", "AKST": "heure normale de l’Alaska", "UYST": "heure avancée de l’Uruguay", "LHDT": "heure avancée de Lord Howe", "WART": "heure normale de l’Ouest argentin", "EDT": "heure avancée de l’Est", "MYT": "heure de la Malaisie", "WESZ": "heure avancée d’Europe de l’Ouest", "AWST": "heure normale de l’Ouest de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CLST": "heure avancée du Chili", "BOT": "heure de Bolivie", "ACDT": "heure avancée du centre de l’Australie", "HEPMX": "heure avancée du Pacifique mexicain", "COST": "heure avancée de Colombie", "ADT": "heure avancée de l’Atlantique", "HADT": "heure avancée d’Hawaï-Aléoutiennes", "CHADT": "heure avancée des Îles Chatham", "TMST": "heure avancée du Turkménistan", "UYT": "heure normale de l’Uruguay", "WIT": "heure de l’Est indonésien", "ACWDT": "heure avancée du centre-ouest de l’Australie", "JDT": "heure avancée du Japon", "ChST": "heure des Chamorro", "HECU": "heure avancée de Cuba", "VET": "heure du Venezuela", "GYT": "heure du Guyana", "ACWST": "heure normale du centre-ouest de l’Australie", "HEOG": "heure avancée de l’Ouest du Groenland", "WARST": "heure avancée de l’Ouest argentin", "MDT": "heure avancée de Macao", "HNEG": "heure normale de l’Est du Groenland", "JST": "heure normale du Japon", "HNT": "heure normale de Terre-Neuve", "WITA": "heure du Centre indonésien", "MESZ": "heure avancée d’Europe centrale", "NZST": "heure normale de la Nouvelle-Zélande", "CAT": "heure d’Afrique centrale", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "MST": "heure normale de Macao", "HNPMX": "heure normale du Pacifique mexicain", "AKDT": "heure avancée de l’Alaska", "WIB": "heure de l’Ouest indonésien", "ARST": "heure avancée de l’Argentine", "AWDT": "heure avancée de l’Ouest de l’Australie", "HEPM": "heure avancée de Saint-Pierre-et-Miquelon", "∅∅∅": "heure avancée de l’Amazonie", "EST": "heure normale de l’Est", "HEEG": "heure avancée de l’Est du Groenland"},
++ timezones: map[string]string{"MDT": "heure avancée de Macao", "AST": "heure normale de l’Atlantique", "SRT": "SRT", "EAT": "Heure d’Afrique orientale", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "WART": "heure normale de l’Ouest argentin", "HEOG": "heure avancée de l’Ouest du Groenland", "CAT": "heure d’Afrique centrale", "IST": "IST", "ACST": "heure normale du centre de l’Australie", "HNOG": "heure normale de l’Ouest du Groenland", "EST": "heure normale de l’Est", "WIB": "WIB", "MEZ": "heure normale d’Europe centrale", "MYT": "MYT", "AKDT": "heure avancée de l’Alaska", "HAT": "heure avancée de Terre-Neuve", "COST": "heure avancée de Colombie", "JST": "heure normale du Japon", "WAT": "heure normale d’Afrique de l’Ouest", "HKST": "heure avancée de Hong Kong", "HNPMX": "heure normale du Pacifique mexicain", "HNCU": "heure normale de Cuba", "HNT": "heure normale de Terre-Neuve", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "CHAST": "heure normale des Îles Chatham", "PST": "heure normale du Pacifique", "ACWST": "heure normale du centre-ouest de l’Australie", "UYT": "heure normale de l’Uruguay", "WARST": "heure avancée de l’Ouest argentin", "TMT": "heure normale du Turkménistan", "EDT": "heure avancée de l’Est", "NZST": "heure normale de la Nouvelle-Zélande", "MESZ": "heure avancée d’Europe centrale", "LHST": "heure normale de Lord Howe", "PDT": "heure avancée du Pacifique", "BT": "BT", "∅∅∅": "heure avancée de l’Amazonie", "WAST": "heure avancée d’Afrique de l’Ouest", "HKT": "heure normale de Hong Kong", "WESZ": "heure avancée d’Europe de l’Ouest", "LHDT": "heure avancée de Lord Howe", "GFT": "heure de Guyane française", "WIT": "WIT", "HEEG": "heure avancée de l’Est du Groenland", "ARST": "heure avancée de l’Argentine", "AWDT": "heure avancée de l’Ouest de l’Australie", "WEZ": "heure normale d’Europe de l’Ouest", "ACWDT": "heure avancée du centre-ouest de l’Australie", "AEDT": "heure avancée de l’Est de l’Australie", "SGT": "SGT", "OESZ": "heure avancée d’Europe de l’Est", "ART": "heure normale d’Argentine", "JDT": "heure avancée du Japon", "HAST": "heure normale d’Hawaï-Aléoutiennes", "GYT": "GYT", "ECT": "ECT", "ChST": "ChST", "GMT": "GMT", "ACDT": "heure avancée du centre de l’Australie", "SAST": "heure normale d’Afrique du Sud", "CLT": "heure normale du Chili", "CDT": "heure avancée du Centre", "BOT": "BOT", "HNEG": "heure normale de l’Est du Groenland", "UYST": "heure avancée de l’Uruguay", "OEZ": "heure normale d’Europe de l’Est", "COT": "heure normale de Colombie", "TMST": "heure avancée du Turkménistan", "HADT": "heure avancée d’Hawaï-Aléoutiennes", "HENOMX": "heure avancée du Nord-Ouest du Mexique", "VET": "VET", "CLST": "heure avancée du Chili", "WITA": "WITA", "CST": "heure normale du Centre", "CHADT": "heure avancée des Îles Chatham", "HECU": "heure avancée de Cuba", "HEPMX": "heure avancée du Pacifique mexicain", "ADT": "heure avancée de l’Atlantique", "HEPM": "heure avancée de Saint-Pierre-et-Miquelon", "AWST": "heure normale de l’Ouest de l’Australie", "AEST": "heure normale de l’Est de l’Australie", "AKST": "heure normale de l’Alaska", "MST": "heure normale de Macao", "NZDT": "heure avancée de la Nouvelle-Zélande"},
+ }
+ }
+ 
+@@ -155,7 +141,7 @@ func (fr *fr_CA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_CA) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -165,7 +151,7 @@ func (fr *fr_CA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_CA) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -211,77 +197,13 @@ func (fr *fr_CA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_CA' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_CA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_CA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_CA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_CA'
+@@ -289,7 +211,7 @@ func (fr *fr_CA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 8
++ l := len(s) + len(symbol) + 6
+ 
+ b := make([]byte, 0, l)
+ 
+@@ -325,7 +247,7 @@ func (fr *fr_CA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 8
++ l := len(s) + len(symbol) + 6
+ 
+ b := make([]byte, 0, l)
+ 
+@@ -397,17 +319,6 @@ func (fr *fr_CA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -416,17 +327,6 @@ func (fr *fr_CA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -435,19 +335,6 @@ func (fr *fr_CA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -478,26 +365,6 @@ func (fr *fr_CA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -506,30 +373,6 @@ func (fr *fr_CA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -538,34 +381,5 @@ func (fr *fr_CA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_CD/fr_CD.go b/fr_CD/fr_CD.go
+index 872c47c..ee4781f 100644
+--- a/fr_CD/fr_CD.go
++++ b/fr_CD/fr_CD.go
+@@ -10,72 +10,46 @@ import (
+ )
+ 
+ type fr_CD struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_CD' locale
+ func New() locales.Translator {
+ return &fr_CD{
+- locale: "fr_CD",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "FC", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"", ""},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"MDT": "heure d’été de Macao", "UYST": "heure d’été de l’Uruguay", "LHDT": "heure d’été de Lord Howe", "HNEG": "heure normale de l’Est du Groenland", "GMT": "heure moyenne de Greenwich", "UYT": "heure normale de l’Uruguay", "AWST": "heure normale de l’Ouest de l’Australie", "TMT": "heure normale du Turkménistan", "TMST": "heure d’été du Turkménistan", "WAT": "heure normale d’Afrique de l’Ouest", "HNCU": "heure normale de Cuba", "ADT": "heure d’été de l’Atlantique", "VET": "heure du Venezuela", "ART": "heure normale d’Argentine", "IST": "heure de l’Inde", "ACST": "heure normale du centre de l’Australie", "HEPMX": "heure d’été du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "HAST": "heure normale d’Hawaii - Aléoutiennes", "SRT": "heure du Suriname", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HNPMX": "heure normale du Pacifique mexicain", "ACWST": "heure normale du centre-ouest de l’Australie", "ACWDT": "heure d’été du centre-ouest de l’Australie", "PDT": "heure d’été du Pacifique", "JST": "heure normale du Japon", "CLT": "heure normale du Chili", "BOT": "heure de Bolivie", "HKST": "heure d’été de Hong Kong", "AEDT": "heure d’été de l’Est de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CHADT": "heure d’été des îles Chatham", "∅∅∅": "heure d’été de l’Amazonie", "EDT": "heure d’été de l’Est", "WEZ": "heure normale d’Europe de l’Ouest", "GFT": "heure de la Guyane française", "COST": "heure d’été de Colombie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "EST": "heure normale de l’Est nord-américain", "WITA": "heure du Centre indonésien", "AEST": "heure normale de l’Est de l’Australie", "CAT": "heure normale d’Afrique centrale", "EAT": "heure normale d’Afrique de l’Est", "HNT": "heure normale de Terre-Neuve", "HAT": "heure d’été de Terre-Neuve", "JDT": "heure d’été du Japon", "WIT": "heure de l’Est indonésien", "HECU": "heure d’été de Cuba", "MST": "heure normale de Macao", "AKDT": "heure d’été de l’Alaska", "GYT": "heure du Guyana", "CHAST": "heure normale des îles Chatham", "LHST": "heure normale de Lord Howe", "COT": "heure normale de Colombie", "AKST": "heure normale de l’Alaska", "CDT": "heure d’été du Centre", "HNOG": "heure normale de l’Ouest du Groenland", "NZST": "heure normale de la Nouvelle-Zélande", "ECT": "heure de l’Équateur", "MYT": "heure de la Malaisie", "OEZ": "heure normale d’Europe de l’Est", "SGT": "heure de Singapour", "WAST": "heure d’été d’Afrique de l’Ouest", "CST": "heure normale du centre nord-américain", "HEOG": "heure d’été de l’Ouest du Groenland", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "SAST": "heure normale d’Afrique méridionale", "HEEG": "heure d’été de l’Est du Groenland", "CLST": "heure d’été du Chili", "WIB": "heure de l’Ouest indonésien", "PST": "heure normale du Pacifique nord-américain", "WESZ": "heure d’été d’Europe de l’Ouest", "HKT": "heure normale de Hong Kong", "AWDT": "heure d’été de l’Ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "MESZ": "heure d’été d’Europe centrale", "ARST": "heure d’été de l’Argentine", "WARST": "heure d’été de l’Ouest argentin", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACDT": "heure d’été du centre de l’Australie", "OESZ": "heure d’été d’Europe de l’Est", "WART": "heure normale de l’Ouest argentin", "BT": "heure du Bhoutan", "NZDT": "heure d’été de la Nouvelle-Zélande", "ChST": "heure des Chamorro"},
++ locale: "fr_CD",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "FC", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsNarrow: []string{"", ""},
++ timezones: map[string]string{"VET": "VET", "WITA": "WITA", "WIB": "WIB", "HNNOMX": "HNNOMX", "MESZ": "MESZ", "AWST": "AWST", "EDT": "EDT", "ART": "ART", "HENOMX": "HENOMX", "WAT": "WAT", "GYT": "GYT", "HKST": "HKST", "CHAST": "CHAST", "UYST": "UYST", "AKST": "AKST", "TMT": "TMT", "WAST": "WAST", "EST": "EST", "ARST": "ARST", "ADT": "ADT", "PST": "PST", "CHADT": "CHADT", "COST": "COST", "CAT": "CAT", "EAT": "EAT", "ACST": "ACST", "LHST": "LHST", "JDT": "JDT", "TMST": "TMST", "MST": "MST", "ACDT": "ACDT", "HNOG": "HNOG", "HEOG": "HEOG", "NZDT": "NZDT", "HNEG": "HNEG", "SGT": "SGT", "HKT": "HKT", "OESZ": "OESZ", "HAT": "HAT", "BOT": "BOT", "IST": "IST", "HNPMX": "HNPMX", "AKDT": "AKDT", "GFT": "GFT", "BT": "BT", "AEST": "AEST", "WART": "WART", "ECT": "ECT", "CDT": "CDT", "SRT": "SRT", "HADT": "HADT", "HEEG": "HEEG", "MDT": "MDT", "JST": "JST", "HECU": "HECU", "CLST": "CLST", "CST": "CST", "AST": "AST", "MYT": "MYT", "PDT": "PDT", "COT": "COT", "HAST": "HAST", "AWDT": "AWDT", "WIT": "WIT", "NZST": "NZST", "GMT": "GMT", "MEZ": "MEZ", "ACWST": "ACWST", "OEZ": "OEZ", "WEZ": "WEZ", "WESZ": "WESZ", "ChST": "ChST", "HNPM": "HNPM", "ACWDT": "ACWDT", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "WARST": "WARST", "HNT": "HNT", "SAST": "SAST", "LHDT": "LHDT", "HEPM": "HEPM", "UYT": "UYT", "HNCU": "HNCU", "HEPMX": "HEPMX", "CLT": "CLT"},
+ }
+ }
+ 
+@@ -147,7 +121,7 @@ func (fr *fr_CD) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_CD) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +131,7 @@ func (fr *fr_CD) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_CD) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +141,7 @@ func (fr *fr_CD) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_CD) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +187,13 @@ func (fr *fr_CD) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_CD' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_CD) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_CD' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_CD) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_CD'
+@@ -291,58 +201,7 @@ func (fr *fr_CD) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_CD'
+@@ -351,65 +210,7 @@ func (fr *fr_CD) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_CD'
+@@ -417,27 +218,6 @@ func (fr *fr_CD) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +226,6 @@ func (fr *fr_CD) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +234,6 @@ func (fr *fr_CD) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +242,6 @@ func (fr *fr_CD) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +250,6 @@ func (fr *fr_CD) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +258,6 @@ func (fr *fr_CD) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +266,6 @@ func (fr *fr_CD) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +274,5 @@ func (fr *fr_CD) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_CF/fr_CF.go b/fr_CF/fr_CF.go
+index 99378b8..b88e8dd 100644
+--- a/fr_CF/fr_CF.go
++++ b/fr_CF/fr_CF.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_CF struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_CF' locale
+ func New() locales.Translator {
+ return &fr_CF{
+- locale: "fr_CF",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"SRT": "heure du Suriname", "MEZ": "heure normale d’Europe centrale", "CLST": "heure d’été du Chili", "WAST": "heure d’été d’Afrique de l’Ouest", "SGT": "heure de Singapour", "HECU": "heure d’été de Cuba", "AST": "heure normale de l’Atlantique", "ADT": "heure d’été de l’Atlantique", "HKT": "heure normale de Hong Kong", "WITA": "heure du Centre indonésien", "COST": "heure d’été de Colombie", "WARST": "heure d’été de l’Ouest argentin", "MST": "heure normale de Macao", "ARST": "heure d’été de l’Argentine", "HAT": "heure d’été de Terre-Neuve", "ACDT": "heure d’été du centre de l’Australie", "WAT": "heure normale d’Afrique de l’Ouest", "CST": "heure normale du centre nord-américain", "GMT": "heure moyenne de Greenwich", "HAST": "heure normale d’Hawaii - Aléoutiennes", "WEZ": "heure normale d’Europe de l’Ouest", "WESZ": "heure d’été d’Europe de l’Ouest", "ACWST": "heure normale du centre-ouest de l’Australie", "HKST": "heure d’été de Hong Kong", "OEZ": "heure normale d’Europe de l’Est", "LHST": "heure normale de Lord Howe", "LHDT": "heure d’été de Lord Howe", "JST": "heure normale du Japon", "GYT": "heure du Guyana", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HNPMX": "heure normale du Pacifique mexicain", "AEST": "heure normale de l’Est de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HNEG": "heure normale de l’Est du Groenland", "ACST": "heure normale du centre de l’Australie", "WART": "heure normale de l’Ouest argentin", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HEOG": "heure d’été de l’Ouest du Groenland", "PST": "heure normale du Pacifique nord-américain", "CHADT": "heure d’été des îles Chatham", "HEEG": "heure d’été de l’Est du Groenland", "∅∅∅": "heure d’été du Pérou", "TMT": "heure normale du Turkménistan", "TMST": "heure d’été du Turkménistan", "WIT": "heure de l’Est indonésien", "AKST": "heure normale de l’Alaska", "WIB": "heure de l’Ouest indonésien", "HNT": "heure normale de Terre-Neuve", "NZDT": "heure d’été de la Nouvelle-Zélande", "CHAST": "heure normale des îles Chatham", "SAST": "heure normale d’Afrique méridionale", "IST": "heure de l’Inde", "HNCU": "heure normale de Cuba", "GFT": "heure de la Guyane française", "BT": "heure du Bhoutan", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "MYT": "heure de la Malaisie", "ART": "heure normale d’Argentine", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "EDT": "heure d’été de l’Est", "MDT": "heure d’été de Macao", "AWDT": "heure d’été de l’Ouest de l’Australie", "MESZ": "heure d’été d’Europe centrale", "BOT": "heure de Bolivie", "ECT": "heure de l’Équateur", "EST": "heure normale de l’Est nord-américain", "HEPMX": "heure d’été du Pacifique mexicain", "VET": "heure du Venezuela", "AWST": "heure normale de l’Ouest de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "CAT": "heure normale d’Afrique centrale", "UYT": "heure normale de l’Uruguay", "UYST": "heure d’été de l’Uruguay", "AKDT": "heure d’été de l’Alaska", "CLT": "heure normale du Chili", "ChST": "heure des Chamorro", "OESZ": "heure d’été d’Europe de l’Est", "COT": "heure normale de Colombie", "CDT": "heure d’été du Centre", "HNOG": "heure normale de l’Ouest du Groenland", "PDT": "heure d’été du Pacifique", "JDT": "heure d’été du Japon", "EAT": "heure normale d’Afrique de l’Est"},
++ locale: "fr_CF",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CHADT": "CHADT", "PDT": "PDT", "AKST": "AKST", "WARST": "WARST", "EDT": "EDT", "CLT": "CLT", "GMT": "GMT", "HADT": "HADT", "ACST": "ACST", "WITA": "WITA", "WAST": "WAST", "AWDT": "AWDT", "LHDT": "LHDT", "BT": "BT", "ACWST": "ACWST", "WESZ": "WESZ", "NZST": "NZST", "ChST": "ChST", "BOT": "BOT", "COST": "COST", "CLST": "CLST", "HEOG": "HEOG", "HENOMX": "HENOMX", "UYT": "UYT", "GFT": "GFT", "JST": "JST", "JDT": "JDT", "MESZ": "MESZ", "AWST": "AWST", "HEPM": "HEPM", "ART": "ART", "HAST": "HAST", "MEZ": "MEZ", "ACWDT": "ACWDT", "HECU": "HECU", "MST": "MST", "MDT": "MDT", "WIB": "WIB", "HNPM": "HNPM", "AEDT": "AEDT", "HEPMX": "HEPMX", "HNT": "HNT", "WIT": "WIT", "ECT": "ECT", "ADT": "ADT", "HNEG": "HNEG", "HKT": "HKT", "CAT": "CAT", "EAT": "EAT", "HNNOMX": "HNNOMX", "OESZ": "OESZ", "SGT": "SGT", "SRT": "SRT", "MYT": "MYT", "∅∅∅": "∅∅∅", "ACDT": "ACDT", "OEZ": "OEZ", "HNOG": "HNOG", "NZDT": "NZDT", "AST": "AST", "AEST": "AEST", "GYT": "GYT", "COT": "COT", "HKST": "HKST", "UYST": "UYST", "IST": "IST", "WEZ": "WEZ", "WAT": "WAT", "WART": "WART", "TMT": "TMT", "CHAST": "CHAST", "VET": "VET", "HNCU": "HNCU", "PST": "PST", "HNPMX": "HNPMX", "TMST": "TMST", "CDT": "CDT", "ARST": "ARST", "LHST": "LHST", "HAT": "HAT", "SAST": "SAST", "EST": "EST", "CST": "CST", "HEEG": "HEEG", "AKDT": "AKDT"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_CF) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_CF) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_CF) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_CF) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_CF) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_CF) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_CF) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_CF' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_CF) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_CF' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_CF) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_CF'
+@@ -291,58 +200,7 @@ func (fr *fr_CF) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_CF'
+@@ -351,65 +209,7 @@ func (fr *fr_CF) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_CF'
+@@ -417,27 +217,6 @@ func (fr *fr_CF) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_CF) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_CF) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_CF) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_CF) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_CF) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_CF) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_CF) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_CG/fr_CG.go b/fr_CG/fr_CG.go
+index 86650e7..c43a800 100644
+--- a/fr_CG/fr_CG.go
++++ b/fr_CG/fr_CG.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_CG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_CG' locale
+ func New() locales.Translator {
+ return &fr_CG{
+- locale: "fr_CG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"HEOG": "heure d’été de l’Ouest du Groenland", "NZDT": "heure d’été de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "HNEG": "heure normale de l’Est du Groenland", "GMT": "heure moyenne de Greenwich", "GYT": "heure du Guyana", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "OEZ": "heure normale d’Europe de l’Est", "UYT": "heure normale de l’Uruguay", "WIB": "heure de l’Ouest indonésien", "TMT": "heure normale du Turkménistan", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "JST": "heure normale du Japon", "ADT": "heure d’été de l’Atlantique", "VET": "heure du Venezuela", "ART": "heure normale d’Argentine", "COST": "heure d’été de Colombie", "MDT": "heure d’été de Macao", "HNOG": "heure normale de l’Ouest du Groenland", "ECT": "heure de l’Équateur", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HNT": "heure normale de Terre-Neuve", "JDT": "heure d’été du Japon", "UYST": "heure d’été de l’Uruguay", "ACDT": "heure d’été du centre de l’Australie", "WAST": "heure d’été d’Afrique de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "WART": "heure normale de l’Ouest argentin", "WARST": "heure d’été de l’Ouest argentin", "AWST": "heure normale de l’Ouest de l’Australie", "LHST": "heure normale de Lord Howe", "CLST": "heure d’été du Chili", "ChST": "heure des Chamorro", "ACST": "heure normale du centre de l’Australie", "AKST": "heure normale de l’Alaska", "ARST": "heure d’été de l’Argentine", "HKT": "heure normale de Hong Kong", "SAST": "heure normale d’Afrique méridionale", "PDT": "heure d’été du Pacifique", "WITA": "heure du Centre indonésien", "AWDT": "heure d’été de l’Ouest de l’Australie", "EST": "heure normale de l’Est nord-américain", "MST": "heure normale de Macao", "WIT": "heure de l’Est indonésien", "CHADT": "heure d’été des îles Chatham", "HEEG": "heure d’été de l’Est du Groenland", "GFT": "heure de la Guyane française", "BOT": "heure de Bolivie", "WAT": "heure normale d’Afrique de l’Ouest", "COT": "heure normale de Colombie", "HECU": "heure d’été de Cuba", "SGT": "heure de Singapour", "AEST": "heure normale de l’Est de l’Australie", "MEZ": "heure normale d’Europe centrale", "TMST": "heure d’été du Turkménistan", "∅∅∅": "heure d’été des Açores", "HEPMX": "heure d’été du Pacifique mexicain", "AKDT": "heure d’été de l’Alaska", "ACWST": "heure normale du centre-ouest de l’Australie", "OESZ": "heure d’été d’Europe de l’Est", "EAT": "heure normale d’Afrique de l’Est", "BT": "heure du Bhoutan", "WEZ": "heure normale d’Europe de l’Ouest", "AEDT": "heure d’été de l’Est de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "HNPMX": "heure normale du Pacifique mexicain", "CST": "heure normale du centre nord-américain", "MYT": "heure de la Malaisie", "LHDT": "heure d’été de Lord Howe", "CAT": "heure normale d’Afrique centrale", "HAST": "heure normale d’Hawaii - Aléoutiennes", "SRT": "heure du Suriname", "HAT": "heure d’été de Terre-Neuve", "CHAST": "heure normale des îles Chatham", "IST": "heure de l’Inde", "HNCU": "heure normale de Cuba", "CDT": "heure d’été du Centre", "AST": "heure normale de l’Atlantique", "WESZ": "heure d’été d’Europe de l’Ouest", "HKST": "heure d’été de Hong Kong", "MESZ": "heure d’été d’Europe centrale", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EDT": "heure d’été de l’Est", "PST": "heure normale du Pacifique nord-américain"},
++ locale: "fr_CG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HKT": "HKT", "NZDT": "NZDT", "AST": "AST", "PDT": "PDT", "JST": "JST", "HAT": "HAT", "CAT": "CAT", "CST": "CST", "ECT": "ECT", "LHST": "LHST", "HEPM": "HEPM", "JDT": "JDT", "AEST": "AEST", "AEDT": "AEDT", "SAST": "SAST", "GMT": "GMT", "MST": "MST", "HNPMX": "HNPMX", "WARST": "WARST", "EDT": "EDT", "NZST": "NZST", "AWDT": "AWDT", "HENOMX": "HENOMX", "OESZ": "OESZ", "GYT": "GYT", "COST": "COST", "CLT": "CLT", "WITA": "WITA", "SRT": "SRT", "WAST": "WAST", "CDT": "CDT", "HNCU": "HNCU", "EST": "EST", "TMST": "TMST", "MEZ": "MEZ", "ACWDT": "ACWDT", "SGT": "SGT", "HNOG": "HNOG", "EAT": "EAT", "ACST": "ACST", "HEEG": "HEEG", "PST": "PST", "AKDT": "AKDT", "WART": "WART", "HEOG": "HEOG", "BOT": "BOT", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "MYT": "MYT", "CHADT": "CHADT", "UYT": "UYT", "WEZ": "WEZ", "OEZ": "OEZ", "HAST": "HAST", "HNT": "HNT", "ACDT": "ACDT", "WIT": "WIT", "ADT": "ADT", "MDT": "MDT", "HNPM": "HNPM", "ACWST": "ACWST", "CHAST": "CHAST", "CLST": "CLST", "ChST": "ChST", "ART": "ART", "HNEG": "HNEG", "ARST": "ARST", "AWST": "AWST", "LHDT": "LHDT", "UYST": "UYST", "WAT": "WAT", "TMT": "TMT", "WIB": "WIB", "HADT": "HADT", "HEPMX": "HEPMX", "AKST": "AKST", "COT": "COT", "BT": "BT", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "VET": "VET", "HECU": "HECU", "GFT": "GFT", "HKST": "HKST", "IST": "IST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_CG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_CG) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_CG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_CG) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_CG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_CG) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_CG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_CG' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_CG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_CG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_CG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_CG'
+@@ -291,58 +200,7 @@ func (fr *fr_CG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_CG'
+@@ -351,65 +209,7 @@ func (fr *fr_CG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_CG'
+@@ -417,27 +217,6 @@ func (fr *fr_CG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_CG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_CG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_CG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_CG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_CG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_CG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_CG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_CH/fr_CH.go b/fr_CH/fr_CH.go
+index 479cf68..155e88a 100644
+--- a/fr_CH/fr_CH.go
++++ b/fr_CH/fr_CH.go
+@@ -49,29 +49,14 @@ func New() locales.Translator {
+ pluralsOrdinal: []locales.PluralRule{2, 6},
+ pluralsRange: []locales.PluralRule{2, 6},
+ decimal: ".",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+ periodsAbbreviated: []string{"", ""},
+ periodsNarrow: []string{"", ""},
+ periodsWide: []string{"", ""},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"OESZ": "heure d’été d’Europe de l’Est", "WIT": "heure de l’Est indonésien", "ARST": "heure d’été de l’Argentine", "WESZ": "heure d’été d’Europe de l’Ouest", "EST": "heure normale de l’Est nord-américain", "AKDT": "heure d’été de l’Alaska", "PST": "heure normale du Pacifique nord-américain", "ACWDT": "heure d’été du centre-ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "LHDT": "heure d’été de Lord Howe", "CLST": "heure d’été du Chili", "HNEG": "heure normale de l’Est du Groenland", "GFT": "heure de la Guyane française", "BOT": "heure de Bolivie", "BT": "heure du Bhoutan", "AWDT": "heure d’été de l’Ouest de l’Australie", "GMT": "heure moyenne de Greenwich", "SGT": "heure de Singapour", "UYST": "heure d’été de l’Uruguay", "WEZ": "heure normale d’Europe de l’Ouest", "HNPMX": "heure normale du Pacifique mexicain", "VET": "heure du Venezuela", "HEOG": "heure d’été de l’Ouest du Groenland", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "SAST": "heure normale d’Afrique méridionale", "JDT": "heure d’été du Japon", "∅∅∅": "heure d’été du Pérou", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "CST": "heure normale du centre nord-américain", "ADT": "heure d’été de l’Atlantique", "HKT": "heure normale de Hong Kong", "ACST": "heure normale du centre de l’Australie", "MYT": "heure de la Malaisie", "ACWST": "heure normale du centre-ouest de l’Australie", "HAT": "heure d’été de Terre-Neuve", "AKST": "heure normale de l’Alaska", "HAST": "heure normale d’Hawaii - Aléoutiennes", "PDT": "heure d’été du Pacifique", "CHAST": "heure normale des îles Chatham", "ACDT": "heure d’été du centre de l’Australie", "WAST": "heure d’été d’Afrique de l’Ouest", "WART": "heure normale de l’Ouest argentin", "COST": "heure d’été de Colombie", "WAT": "heure normale d’Afrique de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HECU": "heure d’été de Cuba", "AEST": "heure normale de l’Est de l’Australie", "MST": "heure normale de Macao", "UYT": "heure normale de l’Uruguay", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "TMST": "heure d’été du Turkménistan", "EAT": "heure normale d’Afrique de l’Est", "COT": "heure normale de Colombie", "HNCU": "heure normale de Cuba", "LHST": "heure normale de Lord Howe", "JST": "heure normale du Japon", "HEEG": "heure d’été de l’Est du Groenland", "OEZ": "heure normale d’Europe de l’Est", "HEPMX": "heure d’été du Pacifique mexicain", "ART": "heure normale d’Argentine", "NZDT": "heure d’été de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "ChST": "heure des Chamorro", "WIB": "heure de l’Ouest indonésien", "SRT": "heure du Suriname", "HNOG": "heure normale de l’Ouest du Groenland", "CHADT": "heure d’été des îles Chatham", "IST": "heure de l’Inde", "ECT": "heure de l’Équateur", "WARST": "heure d’été de l’Ouest argentin", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "AEDT": "heure d’été de l’Est de l’Australie", "EDT": "heure d’été de l’Est", "MDT": "heure d’été de Macao", "HKST": "heure d’été de Hong Kong", "WITA": "heure du Centre indonésien", "AWST": "heure normale de l’Ouest de l’Australie", "MESZ": "heure d’été d’Europe centrale", "TMT": "heure normale du Turkménistan", "CDT": "heure d’été du Centre", "AST": "heure normale de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "CAT": "heure normale d’Afrique centrale", "GYT": "heure du Guyana"},
++ timezones: map[string]string{"UYT": "UYT", "ADT": "ADT", "HEPM": "HEPM", "AEDT": "AEDT", "WESZ": "WESZ", "SGT": "SGT", "HNPMX": "HNPMX", "GYT": "GYT", "COST": "COST", "MST": "MST", "ACWDT": "ACWDT", "SRT": "SRT", "MESZ": "MESZ", "HENOMX": "HENOMX", "WIB": "WIB", "CHADT": "CHADT", "UYST": "UYST", "∅∅∅": "∅∅∅", "WEZ": "WEZ", "WITA": "WITA", "ChST": "ChST", "LHDT": "LHDT", "AKDT": "AKDT", "COT": "COT", "HKST": "HKST", "CDT": "CDT", "NZST": "NZST", "IST": "IST", "BOT": "BOT", "HAST": "HAST", "HNT": "HNT", "WAST": "WAST", "CLT": "CLT", "CLST": "CLST", "HADT": "HADT", "HEPMX": "HEPMX", "HEOG": "HEOG", "TMT": "TMT", "ARST": "ARST", "EAT": "EAT", "MYT": "MYT", "WARST": "WARST", "AST": "AST", "AKST": "AKST", "BT": "BT", "CHAST": "CHAST", "HNCU": "HNCU", "ACST": "ACST", "PDT": "PDT", "WAT": "WAT", "EDT": "EDT", "NZDT": "NZDT", "HNEG": "HNEG", "HECU": "HECU", "JST": "JST", "VET": "VET", "OESZ": "OESZ", "HAT": "HAT", "AWST": "AWST", "GMT": "GMT", "HNNOMX": "HNNOMX", "GFT": "GFT", "ACWST": "ACWST", "SAST": "SAST", "HNOG": "HNOG", "EST": "EST", "HKT": "HKT", "CAT": "CAT", "MDT": "MDT", "LHST": "LHST", "JDT": "JDT", "AEST": "AEST", "MEZ": "MEZ", "HEEG": "HEEG", "HNPM": "HNPM", "PST": "PST", "OEZ": "OEZ", "WART": "WART", "WIT": "WIT", "TMST": "TMST", "CST": "CST", "ECT": "ECT", "AWDT": "AWDT", "ACDT": "ACDT", "ART": "ART"},
+ }
+ }
+ 
+@@ -143,7 +128,7 @@ func (fr *fr_CH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_CH) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -153,7 +138,7 @@ func (fr *fr_CH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_CH) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -163,7 +148,7 @@ func (fr *fr_CH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_CH) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -209,51 +194,14 @@ func (fr *fr_CH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_CH' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_CH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_CH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_CH) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
++ l := len(s) + 1
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -285,7 +233,7 @@ func (fr *fr_CH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -300,9 +248,7 @@ func (fr *fr_CH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ if inWhole {
+ if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
++ b = append(b, fr.group[0])
+ count = 1
+ } else {
+ count++
+@@ -349,7 +295,7 @@ func (fr *fr_CH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -364,9 +310,7 @@ func (fr *fr_CH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ if inWhole {
+ if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
++ b = append(b, fr.group[0])
+ count = 1
+ } else {
+ count++
+@@ -453,17 +397,6 @@ func (fr *fr_CH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -472,17 +405,6 @@ func (fr *fr_CH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -512,19 +434,6 @@ func (fr *fr_CH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -533,26 +442,6 @@ func (fr *fr_CH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -561,30 +450,6 @@ func (fr *fr_CH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+diff --git a/fr_CI/fr_CI.go b/fr_CI/fr_CI.go
+index 1a2b384..21fd0a7 100644
+--- a/fr_CI/fr_CI.go
++++ b/fr_CI/fr_CI.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_CI struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_CI' locale
+ func New() locales.Translator {
+ return &fr_CI{
+- locale: "fr_CI",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"JST": "heure normale du Japon", "HEEG": "heure d’été de l’Est du Groenland", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACWST": "heure normale du centre-ouest de l’Australie", "HKST": "heure d’été de Hong Kong", "CHADT": "heure d’été des îles Chatham", "WARST": "heure d’été de l’Ouest argentin", "UYT": "heure normale de l’Uruguay", "ART": "heure normale d’Argentine", "AWST": "heure normale de l’Ouest de l’Australie", "∅∅∅": "heure d’été de l’Amazonie", "ChST": "heure des Chamorro", "HKT": "heure normale de Hong Kong", "LHST": "heure normale de Lord Howe", "WAST": "heure d’été d’Afrique de l’Ouest", "WART": "heure normale de l’Ouest argentin", "HECU": "heure d’été de Cuba", "WIT": "heure de l’Est indonésien", "ACWDT": "heure d’été du centre-ouest de l’Australie", "TMST": "heure d’été du Turkménistan", "WIB": "heure de l’Ouest indonésien", "HAST": "heure normale d’Hawaii - Aléoutiennes", "CHAST": "heure normale des îles Chatham", "CST": "heure normale du centre nord-américain", "WITA": "heure du Centre indonésien", "LHDT": "heure d’été de Lord Howe", "SAST": "heure normale d’Afrique méridionale", "HNEG": "heure normale de l’Est du Groenland", "ACST": "heure normale du centre de l’Australie", "COT": "heure normale de Colombie", "AEST": "heure normale de l’Est de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "HEPMX": "heure d’été du Pacifique mexicain", "NZST": "heure normale de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "AKST": "heure normale de l’Alaska", "GYT": "heure du Guyana", "BT": "heure du Bhoutan", "SRT": "heure du Suriname", "WESZ": "heure d’été d’Europe de l’Ouest", "HNT": "heure normale de Terre-Neuve", "CAT": "heure normale d’Afrique centrale", "WAT": "heure normale d’Afrique de l’Ouest", "SGT": "heure de Singapour", "EDT": "heure d’été de l’Est", "MDT": "heure d’été de Macao", "MYT": "heure de la Malaisie", "WEZ": "heure normale d’Europe de l’Ouest", "ACDT": "heure d’été du centre de l’Australie", "VET": "heure du Venezuela", "HNPMX": "heure normale du Pacifique mexicain", "HAT": "heure d’été de Terre-Neuve", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "BOT": "heure de Bolivie", "GFT": "heure de la Guyane française", "HNCU": "heure normale de Cuba", "AWDT": "heure d’été de l’Ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "JDT": "heure d’été du Japon", "TMT": "heure normale du Turkménistan", "EAT": "heure normale d’Afrique de l’Est", "COST": "heure d’été de Colombie", "UYST": "heure d’été de l’Uruguay", "HEOG": "heure d’été de l’Ouest du Groenland", "NZDT": "heure d’été de la Nouvelle-Zélande", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "PDT": "heure d’été du Pacifique", "OESZ": "heure d’été d’Europe de l’Est", "AKDT": "heure d’été de l’Alaska", "PST": "heure normale du Pacifique nord-américain", "ECT": "heure de l’Équateur", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "GMT": "heure moyenne de Greenwich", "EST": "heure normale de l’Est nord-américain", "CDT": "heure d’été du Centre", "AST": "heure normale de l’Atlantique", "HNOG": "heure normale de l’Ouest du Groenland", "CLST": "heure d’été du Chili", "MESZ": "heure d’été d’Europe centrale", "IST": "heure de l’Inde", "OEZ": "heure normale d’Europe de l’Est", "MST": "heure normale de Macao", "ADT": "heure d’été de l’Atlantique", "ARST": "heure d’été de l’Argentine", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon"},
++ locale: "fr_CI",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WAST": "WAST", "HKT": "HKT", "HECU": "HECU", "WESZ": "WESZ", "AKST": "AKST", "AWDT": "AWDT", "WIT": "WIT", "HEOG": "HEOG", "CAT": "CAT", "MDT": "MDT", "ARST": "ARST", "EAT": "EAT", "HEPMX": "HEPMX", "WAT": "WAT", "CDT": "CDT", "HADT": "HADT", "HEEG": "HEEG", "JST": "JST", "CLT": "CLT", "AEDT": "AEDT", "CHAST": "CHAST", "HNPM": "HNPM", "CHADT": "CHADT", "UYST": "UYST", "HNPMX": "HNPMX", "NZDT": "NZDT", "CST": "CST", "SRT": "SRT", "HAST": "HAST", "BT": "BT", "WIB": "WIB", "ART": "ART", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "ECT": "ECT", "VET": "VET", "WEZ": "WEZ", "GMT": "GMT", "LHDT": "LHDT", "MYT": "MYT", "HNCU": "HNCU", "SAST": "SAST", "MST": "MST", "ACST": "ACST", "LHST": "LHST", "AEST": "AEST", "PDT": "PDT", "ACWDT": "ACWDT", "WARST": "WARST", "HAT": "HAT", "HKST": "HKST", "TMT": "TMT", "AST": "AST", "ADT": "ADT", "GFT": "GFT", "EDT": "EDT", "CLST": "CLST", "HNEG": "HNEG", "AWST": "AWST", "ChST": "ChST", "WART": "WART", "OESZ": "OESZ", "HNT": "HNT", "COT": "COT", "EST": "EST", "∅∅∅": "∅∅∅", "PST": "PST", "SGT": "SGT", "HNOG": "HNOG", "IST": "IST", "OEZ": "OEZ", "GYT": "GYT", "COST": "COST", "ACWST": "ACWST", "AKDT": "AKDT", "TMST": "TMST", "NZST": "NZST", "HENOMX": "HENOMX", "MESZ": "MESZ", "JDT": "JDT", "UYT": "UYT", "WITA": "WITA", "BOT": "BOT", "MEZ": "MEZ", "HEPM": "HEPM"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_CI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_CI) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_CI) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_CI) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_CI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_CI) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_CI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_CI' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_CI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_CI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_CI) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_CI'
+@@ -291,58 +200,7 @@ func (fr *fr_CI) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_CI'
+@@ -351,65 +209,7 @@ func (fr *fr_CI) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_CI'
+@@ -417,27 +217,6 @@ func (fr *fr_CI) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_CI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_CI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_CI) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_CI) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_CI) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_CI) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_CI) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_CM/fr_CM.go b/fr_CM/fr_CM.go
+index 32df8ef..d28f3e1 100644
+--- a/fr_CM/fr_CM.go
++++ b/fr_CM/fr_CM.go
+@@ -10,72 +10,48 @@ import (
+ )
+ 
+ type fr_CM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_CM' locale
+ func New() locales.Translator {
+ return &fr_CM{
+- locale: "fr_CM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"mat.", "soir"},
+- periodsNarrow: []string{"mat.", "soir"},
+- periodsWide: []string{"matin", "soir"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"VET": "heure du Venezuela", "ARST": "heure d’été de l’Argentine", "AWDT": "heure d’été de l’Ouest de l’Australie", "UYT": "heure normale de l’Uruguay", "EAT": "heure normale d’Afrique de l’Est", "WAST": "heure d’été d’Afrique de l’Ouest", "CDT": "heure d’été du Centre", "HAT": "heure d’été de Terre-Neuve", "AWST": "heure normale de l’Ouest de l’Australie", "WITA": "heure du Centre indonésien", "LHDT": "heure d’été de Lord Howe", "SAST": "heure normale d’Afrique méridionale", "HEEG": "heure d’été de l’Est du Groenland", "AKDT": "heure d’été de l’Alaska", "ChST": "heure des Chamorro", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "EST": "heure normale de l’Est nord-américain", "UYST": "heure d’été de l’Uruguay", "WIB": "heure de l’Ouest indonésien", "HNEG": "heure normale de l’Est du Groenland", "TMT": "heure normale du Turkménistan", "COT": "heure normale de Colombie", "BT": "heure du Bhoutan", "HNT": "heure normale de Terre-Neuve", "AEST": "heure normale de l’Est de l’Australie", "MESZ": "heure d’été d’Europe centrale", "NZDT": "heure d’été de la Nouvelle-Zélande", "MST": "heure normale de Macao", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "JDT": "heure d’été du Japon", "WART": "heure normale de l’Ouest argentin", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AKST": "heure normale de l’Alaska", "WIT": "heure de l’Est indonésien", "MEZ": "heure normale d’Europe centrale", "ADT": "heure d’été de l’Atlantique", "MDT": "heure d’été de Macao", "HNOG": "heure normale de l’Ouest du Groenland", "NZST": "heure normale de la Nouvelle-Zélande", "BOT": "heure de Bolivie", "GMT": "heure moyenne de Greenwich", "SGT": "heure de Singapour", "ART": "heure normale d’Argentine", "IST": "heure de l’Inde", "JST": "heure normale du Japon", "CST": "heure normale du centre nord-américain", "OEZ": "heure normale d’Europe de l’Est", "ECT": "heure de l’Équateur", "WARST": "heure d’été de l’Ouest argentin", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HKT": "heure normale de Hong Kong", "CHAST": "heure normale des îles Chatham", "GFT": "heure de la Guyane française", "WAT": "heure normale d’Afrique de l’Ouest", "WESZ": "heure d’été d’Europe de l’Ouest", "ACWST": "heure normale du centre-ouest de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "LHST": "heure normale de Lord Howe", "∅∅∅": "heure d’été de l’Amazonie", "ACST": "heure normale du centre de l’Australie", "COST": "heure d’été de Colombie", "SRT": "heure du Suriname", "PST": "heure normale du Pacifique nord-américain", "PDT": "heure d’été du Pacifique", "WEZ": "heure normale d’Europe de l’Ouest", "CHADT": "heure d’été des îles Chatham", "HNCU": "heure normale de Cuba", "HECU": "heure d’été de Cuba", "HEPMX": "heure d’été du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "CLT": "heure normale du Chili", "TMST": "heure d’été du Turkménistan", "OESZ": "heure d’été d’Europe de l’Est", "HNPMX": "heure normale du Pacifique mexicain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "CLST": "heure d’été du Chili", "ACDT": "heure d’été du centre de l’Australie", "EDT": "heure d’été de l’Est", "HEOG": "heure d’été de l’Ouest du Groenland", "HKST": "heure d’été de Hong Kong", "CAT": "heure normale d’Afrique centrale", "GYT": "heure du Guyana", "MYT": "heure de la Malaisie"},
++ locale: "fr_CM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"mat.", "soir"},
++ periodsNarrow: []string{"mat.", "soir"},
++ periodsWide: []string{"matin", "soir"},
++ timezones: map[string]string{"MST": "MST", "ChST": "ChST", "HNEG": "HNEG", "WESZ": "WESZ", "COST": "COST", "HNOG": "HNOG", "∅∅∅": "∅∅∅", "HKST": "HKST", "WAT": "WAT", "ECT": "ECT", "MEZ": "MEZ", "HEPMX": "HEPMX", "SGT": "SGT", "EDT": "EDT", "WIB": "WIB", "EAT": "EAT", "BT": "BT", "OEZ": "OEZ", "COT": "COT", "TMT": "TMT", "MDT": "MDT", "ADT": "ADT", "SRT": "SRT", "AKDT": "AKDT", "HNT": "HNT", "SAST": "SAST", "TMST": "TMST", "NZDT": "NZDT", "GFT": "GFT", "HEOG": "HEOG", "ARST": "ARST", "AWDT": "AWDT", "UYT": "UYT", "HAT": "HAT", "CLST": "CLST", "CAT": "CAT", "HEEG": "HEEG", "JDT": "JDT", "AEDT": "AEDT", "UYST": "UYST", "CLT": "CLT", "WITA": "WITA", "NZST": "NZST", "HADT": "HADT", "MYT": "MYT", "AKST": "AKST", "OESZ": "OESZ", "WIT": "WIT", "ACST": "ACST", "ACDT": "ACDT", "GMT": "GMT", "HENOMX": "HENOMX", "PST": "PST", "HNPM": "HNPM", "JST": "JST", "ACWDT": "ACWDT", "CHAST": "CHAST", "GYT": "GYT", "HKT": "HKT", "EST": "EST", "LHDT": "LHDT", "IST": "IST", "CHADT": "CHADT", "WARST": "WARST", "CDT": "CDT", "MESZ": "MESZ", "PDT": "PDT", "HNCU": "HNCU", "HECU": "HECU", "HNPMX": "HNPMX", "WAST": "WAST", "AST": "AST", "HNNOMX": "HNNOMX", "LHST": "LHST", "AEST": "AEST", "WART": "WART", "ART": "ART", "HAST": "HAST", "VET": "VET", "WEZ": "WEZ", "CST": "CST", "BOT": "BOT", "HEPM": "HEPM", "ACWST": "ACWST", "AWST": "AWST"},
+ }
+ }
+ 
+@@ -147,7 +123,7 @@ func (fr *fr_CM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_CM) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +133,7 @@ func (fr *fr_CM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_CM) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +143,7 @@ func (fr *fr_CM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_CM) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +189,13 @@ func (fr *fr_CM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_CM' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_CM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_CM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_CM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_CM'
+@@ -291,58 +203,7 @@ func (fr *fr_CM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_CM'
+@@ -351,65 +212,7 @@ func (fr *fr_CM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_CM'
+@@ -417,27 +220,6 @@ func (fr *fr_CM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +228,6 @@ func (fr *fr_CM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +236,6 @@ func (fr *fr_CM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +244,6 @@ func (fr *fr_CM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +252,6 @@ func (fr *fr_CM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +260,6 @@ func (fr *fr_CM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +268,6 @@ func (fr *fr_CM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +276,5 @@ func (fr *fr_CM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_DJ/fr_DJ.go b/fr_DJ/fr_DJ.go
+index 498a5ce..c8269ed 100644
+--- a/fr_DJ/fr_DJ.go
++++ b/fr_DJ/fr_DJ.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_DJ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_DJ' locale
+ func New() locales.Translator {
+ return &fr_DJ{
+- locale: "fr_DJ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "Fdj", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"ChST": "heure des Chamorro", "COT": "heure normale de Colombie", "AKST": "heure normale de l’Alaska", "HNT": "heure normale de Terre-Neuve", "HAT": "heure d’été de Terre-Neuve", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "MESZ": "heure d’été d’Europe centrale", "CAT": "heure normale d’Afrique centrale", "WAST": "heure d’été d’Afrique de l’Ouest", "OEZ": "heure normale d’Europe de l’Est", "OESZ": "heure d’été d’Europe de l’Est", "PDT": "heure d’été du Pacifique", "WEZ": "heure normale d’Europe de l’Ouest", "HEOG": "heure d’été de l’Ouest du Groenland", "HKT": "heure normale de Hong Kong", "WART": "heure normale de l’Ouest argentin", "COST": "heure d’été de Colombie", "SRT": "heure du Suriname", "LHDT": "heure d’été de Lord Howe", "BOT": "heure de Bolivie", "TMST": "heure d’été du Turkménistan", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HAST": "heure normale d’Hawaii - Aléoutiennes", "PST": "heure normale du Pacifique nord-américain", "MEZ": "heure normale d’Europe centrale", "ARST": "heure d’été de l’Argentine", "HNCU": "heure normale de Cuba", "MDT": "heure d’été de Macao", "HEPMX": "heure d’été du Pacifique mexicain", "ACWST": "heure normale du centre-ouest de l’Australie", "WITA": "heure du Centre indonésien", "JST": "heure normale du Japon", "GFT": "heure de la Guyane française", "SGT": "heure de Singapour", "HNPMX": "heure normale du Pacifique mexicain", "ART": "heure normale d’Argentine", "LHST": "heure normale de Lord Howe", "CHAST": "heure normale des îles Chatham", "CLST": "heure d’été du Chili", "HEEG": "heure d’été de l’Est du Groenland", "WARST": "heure d’été de l’Ouest argentin", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EST": "heure normale de l’Est nord-américain", "MST": "heure normale de Macao", "MYT": "heure de la Malaisie", "ACWDT": "heure d’été du centre-ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "NZDT": "heure d’été de la Nouvelle-Zélande", "EAT": "heure normale d’Afrique de l’Est", "VET": "heure du Venezuela", "BT": "heure du Bhoutan", "HNOG": "heure normale de l’Ouest du Groenland", "AEST": "heure normale de l’Est de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "HKST": "heure d’été de Hong Kong", "WAT": "heure normale d’Afrique de l’Ouest", "ADT": "heure d’été de l’Atlantique", "WIT": "heure de l’Est indonésien", "AWST": "heure normale de l’Ouest de l’Australie", "SAST": "heure normale d’Afrique méridionale", "ECT": "heure de l’Équateur", "EDT": "heure d’été de l’Est", "UYST": "heure d’été de l’Uruguay", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WESZ": "heure d’été d’Europe de l’Ouest", "CLT": "heure normale du Chili", "∅∅∅": "heure d’été de l’Amazonie", "JDT": "heure d’été du Japon", "TMT": "heure normale du Turkménistan", "ACST": "heure normale du centre de l’Australie", "HECU": "heure d’été de Cuba", "CST": "heure normale du centre nord-américain", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "CHADT": "heure d’été des îles Chatham", "GMT": "heure moyenne de Greenwich", "AKDT": "heure d’été de l’Alaska", "CDT": "heure d’été du Centre", "GYT": "heure du Guyana", "AWDT": "heure d’été de l’Ouest de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "WIB": "heure de l’Ouest indonésien", "IST": "heure de l’Inde", "HNEG": "heure normale de l’Est du Groenland", "UYT": "heure normale de l’Uruguay", "AST": "heure normale de l’Atlantique"},
++ locale: "fr_DJ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "Fdj", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HADT": "HADT", "MESZ": "MESZ", "JDT": "JDT", "HEPM": "HEPM", "TMT": "TMT", "WIB": "WIB", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "WIT": "WIT", "AWST": "AWST", "GFT": "GFT", "HKT": "HKT", "CAT": "CAT", "JST": "JST", "AWDT": "AWDT", "AEDT": "AEDT", "ACWDT": "ACWDT", "HNCU": "HNCU", "AKST": "AKST", "OEZ": "OEZ", "EDT": "EDT", "CLT": "CLT", "GMT": "GMT", "ARST": "ARST", "SRT": "SRT", "AKDT": "AKDT", "HNT": "HNT", "WARST": "WARST", "WITA": "WITA", "BOT": "BOT", "AEST": "AEST", "UYT": "UYT", "PST": "PST", "HECU": "HECU", "GYT": "GYT", "COST": "COST", "CDT": "CDT", "HAST": "HAST", "HEEG": "HEEG", "HNPMX": "HNPMX", "SAST": "SAST", "MEZ": "MEZ", "HENOMX": "HENOMX", "LHST": "LHST", "HNPM": "HNPM", "HKST": "HKST", "NZDT": "NZDT", "AST": "AST", "EAT": "EAT", "HNEG": "HNEG", "TMST": "TMST", "CST": "CST", "WART": "WART", "MDT": "MDT", "ACST": "ACST", "CHAST": "CHAST", "CHADT": "CHADT", "UYST": "UYST", "PDT": "PDT", "OESZ": "OESZ", "HNOG": "HNOG", "MST": "MST", "ACDT": "ACDT", "VET": "VET", "HAT": "HAT", "HEOG": "HEOG", "CLST": "CLST", "ART": "ART", "LHDT": "LHDT", "MYT": "MYT", "SGT": "SGT", "NZST": "NZST", "ChST": "ChST", "∅∅∅": "∅∅∅", "ACWST": "ACWST", "WEZ": "WEZ", "WAT": "WAT", "WAST": "WAST", "COT": "COT", "ADT": "ADT", "IST": "IST", "WESZ": "WESZ", "EST": "EST", "ECT": "ECT", "BT": "BT"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_DJ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_DJ) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_DJ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_DJ) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_DJ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_DJ) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_DJ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_DJ' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_DJ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_DJ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_DJ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_DJ'
+@@ -291,58 +200,7 @@ func (fr *fr_DJ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_DJ'
+@@ -351,65 +209,7 @@ func (fr *fr_DJ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_DJ'
+@@ -417,27 +217,6 @@ func (fr *fr_DJ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_DJ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_DJ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_DJ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/fr_DZ/fr_DZ.go b/fr_DZ/fr_DZ.go
+index 008eaf0..9c939f5 100644
+--- a/fr_DZ/fr_DZ.go
++++ b/fr_DZ/fr_DZ.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_DZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_DZ' locale
+ func New() locales.Translator {
+ return &fr_DZ{
+- locale: "fr_DZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DA", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"∅∅∅": "heure d’été de l’Amazonie", "AKST": "heure normale de l’Alaska", "CDT": "heure d’été du Centre", "WIB": "heure de l’Ouest indonésien", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HAST": "heure normale d’Hawaii - Aléoutiennes", "AWDT": "heure d’été de l’Ouest de l’Australie", "CAT": "heure normale d’Afrique centrale", "PDT": "heure d’été du Pacifique", "HKST": "heure d’été de Hong Kong", "WITA": "heure du Centre indonésien", "CHADT": "heure d’été des îles Chatham", "GFT": "heure de la Guyane française", "VET": "heure du Venezuela", "WIT": "heure de l’Est indonésien", "BT": "heure du Bhoutan", "AWST": "heure normale de l’Ouest de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "TMT": "heure normale du Turkménistan", "COST": "heure d’été de Colombie", "AST": "heure normale de l’Atlantique", "ADT": "heure d’été de l’Atlantique", "ART": "heure normale d’Argentine", "CHAST": "heure normale des îles Chatham", "COT": "heure normale de Colombie", "HNOG": "heure normale de l’Ouest du Groenland", "AEDT": "heure d’été de l’Est de l’Australie", "LHST": "heure normale de Lord Howe", "GMT": "heure moyenne de Greenwich", "HNPMX": "heure normale du Pacifique mexicain", "LHDT": "heure d’été de Lord Howe", "IST": "heure de l’Inde", "EAT": "heure normale d’Afrique de l’Est", "ChST": "heure des Chamorro", "TMST": "heure d’été du Turkménistan", "WAT": "heure normale d’Afrique de l’Ouest", "OESZ": "heure d’été d’Europe de l’Est", "EDT": "heure d’été de l’Est", "MDT": "heure d’été des Rocheuses", "AEST": "heure normale de l’Est de l’Australie", "CLST": "heure d’été du Chili", "AKDT": "heure d’été de l’Alaska", "HNEG": "heure normale de l’Est du Groenland", "WAST": "heure d’été d’Afrique de l’Ouest", "WARST": "heure d’été de l’Ouest argentin", "HECU": "heure d’été de Cuba", "MYT": "heure de la Malaisie", "ACWDT": "heure d’été du centre-ouest de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "HNT": "heure normale de Terre-Neuve", "HKT": "heure normale de Hong Kong", "BOT": "heure de Bolivie", "ACST": "heure normale du centre de l’Australie", "SRT": "heure du Suriname", "PST": "heure normale du Pacifique nord-américain", "WESZ": "heure d’été d’Europe de l’Ouest", "HEEG": "heure d’été de l’Est du Groenland", "OEZ": "heure normale d’Europe de l’Est", "HNCU": "heure normale de Cuba", "EST": "heure normale de l’Est nord-américain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "CLT": "heure normale du Chili", "JST": "heure normale du Japon", "HAT": "heure d’été de Terre-Neuve", "SAST": "heure normale d’Afrique méridionale", "ECT": "heure de l’Équateur", "SGT": "heure de Singapour", "GYT": "heure du Guyana", "UYST": "heure d’été de l’Uruguay", "ACWST": "heure normale du centre-ouest de l’Australie", "WEZ": "heure normale d’Europe de l’Ouest", "MESZ": "heure d’été d’Europe centrale", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "ACDT": "heure d’été du centre de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "JDT": "heure d’été du Japon", "UYT": "heure normale de l’Uruguay", "HEOG": "heure d’été de l’Ouest du Groenland", "MEZ": "heure normale d’Europe centrale", "WART": "heure normale de l’Ouest argentin", "HEPMX": "heure d’été du Pacifique mexicain", "CST": "heure normale du centre nord-américain", "MST": "heure normale des Rocheuses", "ARST": "heure d’été de l’Argentine"},
++ locale: "fr_DZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DA", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"OEZ": "OEZ", "GFT": "GFT", "HAT": "HAT", "WARST": "WARST", "SRT": "SRT", "HAST": "HAST", "WAST": "WAST", "AKDT": "AKDT", "VET": "VET", "PST": "PST", "WEZ": "WEZ", "HEOG": "HEOG", "HNPM": "HNPM", "JDT": "JDT", "ACWDT": "ACWDT", "ChST": "ChST", "LHST": "LHST", "ARST": "ARST", "ACST": "ACST", "HENOMX": "HENOMX", "WITA": "WITA", "NZST": "NZST", "JST": "JST", "HECU": "HECU", "HEPMX": "HEPMX", "CAT": "CAT", "CLT": "CLT", "MST": "MST", "HEPM": "HEPM", "HNPMX": "HNPMX", "OESZ": "OESZ", "CLST": "CLST", "TMST": "TMST", "EAT": "EAT", "HADT": "HADT", "HNEG": "HNEG", "WAT": "WAT", "EST": "EST", "MEZ": "MEZ", "AWDT": "AWDT", "MYT": "MYT", "AEST": "AEST", "GYT": "GYT", "CST": "CST", "ECT": "ECT", "ADT": "ADT", "MESZ": "MESZ", "LHDT": "LHDT", "CHAST": "CHAST", "UYST": "UYST", "∅∅∅": "∅∅∅", "EDT": "EDT", "BT": "BT", "ART": "ART", "CHADT": "CHADT", "HNCU": "HNCU", "AKST": "AKST", "COT": "COT", "PDT": "PDT", "WIT": "WIT", "WIB": "WIB", "NZDT": "NZDT", "AST": "AST", "AWST": "AWST", "ACWST": "ACWST", "SGT": "SGT", "WART": "WART", "SAST": "SAST", "TMT": "TMT", "CDT": "CDT", "MDT": "MDT", "GMT": "GMT", "BOT": "BOT", "HNNOMX": "HNNOMX", "HNT": "HNT", "HNOG": "HNOG", "AEDT": "AEDT", "HKST": "HKST", "ACDT": "ACDT", "UYT": "UYT", "WESZ": "WESZ", "COST": "COST", "HKT": "HKT", "HEEG": "HEEG", "IST": "IST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_DZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_DZ) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_DZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_DZ) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_DZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_DZ) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_DZ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_DZ' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_DZ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_DZ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_DZ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_DZ'
+@@ -291,58 +200,7 @@ func (fr *fr_DZ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_DZ'
+@@ -351,65 +209,7 @@ func (fr *fr_DZ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_DZ'
+@@ -417,27 +217,6 @@ func (fr *fr_DZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_DZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_DZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_DZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/fr_FR/fr_FR.go b/fr_FR/fr_FR.go
+index a33ad67..fd9d9ab 100644
+--- a/fr_FR/fr_FR.go
++++ b/fr_FR/fr_FR.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_FR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_FR' locale
+ func New() locales.Translator {
+ return &fr_FR{
+- locale: "fr_FR",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"BT": "heure du Bhoutan", "OESZ": "heure d’été d’Europe de l’Est", "ARST": "heure d’été de l’Argentine", "NZDT": "heure d’été de la Nouvelle-Zélande", "EDT": "heure d’été de l’Est", "WIB": "heure de l’Ouest indonésien", "WEZ": "heure normale d’Europe de l’Ouest", "ACWST": "heure normale du centre-ouest de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "TMST": "heure d’été du Turkménistan", "COT": "heure normale de Colombie", "HNCU": "heure normale de Cuba", "UYT": "heure normale de l’Uruguay", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ART": "heure normale d’Argentine", "HKT": "heure normale de Hong Kong", "CHADT": "heure d’été des îles Chatham", "ChST": "heure des Chamorro", "CAT": "heure normale d’Afrique centrale", "HEPMX": "heure d’été du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "PDT": "heure d’été du Pacifique", "AEDT": "heure d’été de l’Est de l’Australie", "BOT": "heure de Bolivie", "WART": "heure normale de l’Ouest argentin", "SGT": "heure de Singapour", "HKST": "heure d’été de Hong Kong", "IST": "heure de l’Inde", "ACST": "heure normale du centre de l’Australie", "EST": "heure normale de l’Est nord-américain", "VET": "heure du Venezuela", "HAST": "heure normale d’Hawaii - Aléoutiennes", "AWST": "heure normale de l’Ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "HNEG": "heure normale de l’Est du Groenland", "WAT": "heure normale d’Afrique de l’Ouest", "OEZ": "heure normale d’Europe de l’Est", "COST": "heure d’été de Colombie", "AKST": "heure normale de l’Alaska", "AEST": "heure normale de l’Est de l’Australie", "JDT": "heure d’été du Japon", "∅∅∅": "heure d’été de l’Amazonie", "ACDT": "heure d’été du centre de l’Australie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AKDT": "heure d’été de l’Alaska", "HNOG": "heure normale de l’Ouest du Groenland", "WITA": "heure du Centre indonésien", "CLST": "heure d’été du Chili", "TMT": "heure normale du Turkménistan", "WIT": "heure de l’Est indonésien", "HNT": "heure normale de Terre-Neuve", "CLT": "heure normale du Chili", "GMT": "heure moyenne de Greenwich", "SRT": "heure du Suriname", "JST": "heure normale du Japon", "WARST": "heure d’été de l’Ouest argentin", "MDT": "heure d’été de Macao", "HNPMX": "heure normale du Pacifique mexicain", "CDT": "heure d’été du Centre", "WAST": "heure d’été d’Afrique de l’Ouest", "ECT": "heure de l’Équateur", "CST": "heure normale du centre nord-américain", "PST": "heure normale du Pacifique nord-américain", "HEEG": "heure d’été de l’Est du Groenland", "LHDT": "heure d’été de Lord Howe", "MESZ": "heure d’été d’Europe centrale", "EAT": "heure normale d’Afrique de l’Est", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "LHST": "heure normale de Lord Howe", "GFT": "heure de la Guyane française", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "GYT": "heure du Guyana", "HAT": "heure d’été de Terre-Neuve", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MEZ": "heure normale d’Europe centrale", "MST": "heure normale de Macao", "WESZ": "heure d’été d’Europe de l’Ouest", "CHAST": "heure normale des îles Chatham", "HECU": "heure d’été de Cuba", "ADT": "heure d’été de l’Atlantique", "MYT": "heure de la Malaisie", "UYST": "heure d’été de l’Uruguay", "HEOG": "heure d’été de l’Ouest du Groenland", "SAST": "heure normale d’Afrique méridionale"},
++ locale: "fr_FR",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SAST": "SAST", "GMT": "GMT", "ARST": "ARST", "HAST": "HAST", "BT": "BT", "HEPMX": "HEPMX", "SGT": "SGT", "HECU": "HECU", "WART": "WART", "∅∅∅": "∅∅∅", "MEZ": "MEZ", "JST": "JST", "JDT": "JDT", "UYT": "UYT", "OEZ": "OEZ", "HNT": "HNT", "HAT": "HAT", "MDT": "MDT", "HNNOMX": "HNNOMX", "HKST": "HKST", "WIB": "WIB", "PDT": "PDT", "AKST": "AKST", "GYT": "GYT", "HEOG": "HEOG", "EST": "EST", "AST": "AST", "AEST": "AEST", "WEZ": "WEZ", "COT": "COT", "HKT": "HKT", "CDT": "CDT", "CHAST": "CHAST", "WESZ": "WESZ", "HEEG": "HEEG", "ACWDT": "ACWDT", "GFT": "GFT", "WIT": "WIT", "COST": "COST", "NZST": "NZST", "ART": "ART", "SRT": "SRT", "ChST": "ChST", "HNPM": "HNPM", "AWDT": "AWDT", "LHST": "LHST", "OESZ": "OESZ", "TMST": "TMST", "CLST": "CLST", "CST": "CST", "ADT": "ADT", "HENOMX": "HENOMX", "MYT": "MYT", "PST": "PST", "HNOG": "HNOG", "MESZ": "MESZ", "LHDT": "LHDT", "UYST": "UYST", "ACWST": "ACWST", "WARST": "WARST", "TMT": "TMT", "HNPMX": "HNPMX", "EDT": "EDT", "CLT": "CLT", "NZDT": "NZDT", "AWST": "AWST", "BOT": "BOT", "ACDT": "ACDT", "HEPM": "HEPM", "AEDT": "AEDT", "HNCU": "HNCU", "AKDT": "AKDT", "WITA": "WITA", "WAT": "WAT", "CHADT": "CHADT", "IST": "IST", "CAT": "CAT", "MST": "MST", "ECT": "ECT", "EAT": "EAT", "HADT": "HADT", "HNEG": "HNEG", "ACST": "ACST", "VET": "VET", "WAST": "WAST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_FR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_FR) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_FR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_FR) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_FR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_FR) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_FR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_FR' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_FR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_FR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_FR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_FR'
+@@ -291,58 +200,7 @@ func (fr *fr_FR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_FR'
+@@ -351,65 +209,7 @@ func (fr *fr_FR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_FR'
+@@ -417,27 +217,6 @@ func (fr *fr_FR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_FR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_FR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_FR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_FR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_FR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_FR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_FR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_GA/fr_GA.go b/fr_GA/fr_GA.go
+index 0753434..1211f9f 100644
+--- a/fr_GA/fr_GA.go
++++ b/fr_GA/fr_GA.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_GA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_GA' locale
+ func New() locales.Translator {
+ return &fr_GA{
+- locale: "fr_GA",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"OEZ": "heure normale d’Europe de l’Est", "WART": "heure normale de l’Ouest argentin", "∅∅∅": "heure d’été de l’Amazonie", "WAT": "heure normale d’Afrique de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "ART": "heure normale d’Argentine", "MEZ": "heure normale d’Europe centrale", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CLST": "heure d’été du Chili", "ECT": "heure de l’Équateur", "SGT": "heure de Singapour", "HNPMX": "heure normale du Pacifique mexicain", "UYST": "heure d’été de l’Uruguay", "SRT": "heure du Suriname", "HKT": "heure normale de Hong Kong", "WITA": "heure du Centre indonésien", "HNOG": "heure normale de l’Ouest du Groenland", "CHAST": "heure normale des îles Chatham", "WAST": "heure d’été d’Afrique de l’Ouest", "ADT": "heure d’été de l’Atlantique", "WIB": "heure de l’Ouest indonésien", "WIT": "heure de l’Est indonésien", "AEST": "heure normale de l’Est de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "HEEG": "heure d’été de l’Est du Groenland", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "CST": "heure normale du centre nord-américain", "MYT": "heure de la Malaisie", "AWDT": "heure d’été de l’Ouest de l’Australie", "JDT": "heure d’été du Japon", "HEOG": "heure d’été de l’Ouest du Groenland", "IST": "heure de l’Inde", "BT": "heure du Bhoutan", "WARST": "heure d’été de l’Ouest argentin", "HEPMX": "heure d’été du Pacifique mexicain", "MST": "heure normale de Macao", "CAT": "heure normale d’Afrique centrale", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "TMT": "heure normale du Turkménistan", "TMST": "heure d’été du Turkménistan", "COT": "heure normale de Colombie", "LHST": "heure normale de Lord Howe", "LHDT": "heure d’été de Lord Howe", "EDT": "heure d’été de l’Est", "AKST": "heure normale de l’Alaska", "CDT": "heure d’été du Centre", "ACWST": "heure normale du centre-ouest de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "JST": "heure normale du Japon", "SAST": "heure normale d’Afrique méridionale", "ACST": "heure normale du centre de l’Australie", "AST": "heure normale de l’Atlantique", "AWST": "heure normale de l’Ouest de l’Australie", "CHADT": "heure d’été des îles Chatham", "COST": "heure d’été de Colombie", "GYT": "heure du Guyana", "PST": "heure normale du Pacifique nord-américain", "HKST": "heure d’été de Hong Kong", "OESZ": "heure d’été d’Europe de l’Est", "EST": "heure normale de l’Est nord-américain", "ARST": "heure d’été de l’Argentine", "MESZ": "heure d’été d’Europe centrale", "EAT": "heure normale d’Afrique de l’Est", "ChST": "heure des Chamorro", "GMT": "heure moyenne de Greenwich", "AKDT": "heure d’été de l’Alaska", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WEZ": "heure normale d’Europe de l’Ouest", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "HNEG": "heure normale de l’Est du Groenland", "BOT": "heure de Bolivie", "HNCU": "heure normale de Cuba", "HECU": "heure d’été de Cuba", "PDT": "heure d’été du Pacifique", "WESZ": "heure d’été d’Europe de l’Ouest", "NZDT": "heure d’été de la Nouvelle-Zélande", "GFT": "heure de la Guyane française", "VET": "heure du Venezuela", "ACDT": "heure d’été du centre de l’Australie", "HAST": "heure normale d’Hawaii - Aléoutiennes", "MDT": "heure d’été de Macao", "UYT": "heure normale de l’Uruguay", "HNT": "heure normale de Terre-Neuve", "NZST": "heure normale de la Nouvelle-Zélande", "CLT": "heure normale du Chili"},
++ locale: "fr_GA",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AEDT": "AEDT", "VET": "VET", "HAT": "HAT", "ChST": "ChST", "JST": "JST", "PDT": "PDT", "HNOG": "HNOG", "IST": "IST", "GFT": "GFT", "OESZ": "OESZ", "HNPM": "HNPM", "SGT": "SGT", "WESZ": "WESZ", "OEZ": "OEZ", "WART": "WART", "NZST": "NZST", "NZDT": "NZDT", "ACDT": "ACDT", "ACST": "ACST", "HADT": "HADT", "LHST": "LHST", "MYT": "MYT", "BT": "BT", "UYT": "UYT", "ECT": "ECT", "ART": "ART", "BOT": "BOT", "SAST": "SAST", "HKST": "HKST", "CLT": "CLT", "HNPMX": "HNPMX", "WEZ": "WEZ", "HEOG": "HEOG", "JDT": "JDT", "WITA": "WITA", "ADT": "ADT", "HAST": "HAST", "EAT": "EAT", "HNNOMX": "HNNOMX", "MEZ": "MEZ", "ACWDT": "ACWDT", "CHADT": "CHADT", "UYST": "UYST", "MST": "MST", "MDT": "MDT", "CST": "CST", "HNT": "HNT", "COT": "COT", "EDT": "EDT", "GMT": "GMT", "HEPM": "HEPM", "AEST": "AEST", "COST": "COST", "TMT": "TMT", "HNEG": "HNEG", "AWDT": "AWDT", "WARST": "WARST", "HNCU": "HNCU", "GYT": "GYT", "WIB": "WIB", "ARST": "ARST", "WAST": "WAST", "AWST": "AWST", "PST": "PST", "CHAST": "CHAST", "HEPMX": "HEPMX", "HKT": "HKT", "HEEG": "HEEG", "HENOMX": "HENOMX", "LHDT": "LHDT", "CAT": "CAT", "SRT": "SRT", "MESZ": "MESZ", "HECU": "HECU", "AST": "AST", "AKST": "AKST", "TMST": "TMST", "CLST": "CLST", "ACWST": "ACWST", "AKDT": "AKDT", "WAT": "WAT", "EST": "EST", "CDT": "CDT", "∅∅∅": "∅∅∅", "WIT": "WIT"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_GA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_GA) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_GA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_GA) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_GA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_GA) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_GA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_GA' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_GA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_GA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_GA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_GA'
+@@ -291,58 +200,7 @@ func (fr *fr_GA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_GA'
+@@ -351,65 +209,7 @@ func (fr *fr_GA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_GA'
+@@ -417,27 +217,6 @@ func (fr *fr_GA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_GA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_GA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_GA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_GA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_GA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_GA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_GA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_GF/fr_GF.go b/fr_GF/fr_GF.go
+index 2ec45eb..352e914 100644
+--- a/fr_GF/fr_GF.go
++++ b/fr_GF/fr_GF.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_GF struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_GF' locale
+ func New() locales.Translator {
+ return &fr_GF{
+- locale: "fr_GF",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"WART": "heure normale de l’Ouest argentin", "HNCU": "heure normale de Cuba", "ART": "heure normale d’Argentine", "HKST": "heure d’été de Hong Kong", "AKDT": "heure d’été de l’Alaska", "WESZ": "heure d’été d’Europe de l’Ouest", "HKT": "heure normale de Hong Kong", "AWST": "heure normale de l’Ouest de l’Australie", "AST": "heure normale de l’Atlantique", "WIT": "heure de l’Est indonésien", "HNT": "heure normale de Terre-Neuve", "CST": "heure normale du centre nord-américain", "UYT": "heure normale de l’Uruguay", "WEZ": "heure normale d’Europe de l’Ouest", "SAST": "heure normale d’Afrique méridionale", "CLST": "heure d’été du Chili", "HEEG": "heure d’été de l’Est du Groenland", "WAST": "heure d’été d’Afrique de l’Ouest", "ACST": "heure normale du centre de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "HNPMX": "heure normale du Pacifique mexicain", "HNOG": "heure normale de l’Ouest du Groenland", "OEZ": "heure normale d’Europe de l’Est", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZDT": "heure d’été de la Nouvelle-Zélande", "CHAST": "heure normale des îles Chatham", "HNEG": "heure normale de l’Est du Groenland", "UYST": "heure d’été de l’Uruguay", "WIB": "heure de l’Ouest indonésien", "VET": "heure du Venezuela", "WITA": "heure du Centre indonésien", "GFT": "heure de la Guyane française", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "COT": "heure normale de Colombie", "GYT": "heure du Guyana", "AWDT": "heure d’été de l’Ouest de l’Australie", "LHST": "heure normale de Lord Howe", "JST": "heure normale du Japon", "CLT": "heure normale du Chili", "MYT": "heure de la Malaisie", "IST": "heure de l’Inde", "AKST": "heure normale de l’Alaska", "PDT": "heure d’été du Pacifique", "ACWDT": "heure d’été du centre-ouest de l’Australie", "∅∅∅": "heure d’été de l’Amazonie", "JDT": "heure d’été du Japon", "CAT": "heure normale d’Afrique centrale", "BT": "heure du Bhoutan", "BOT": "heure de Bolivie", "ACDT": "heure d’été du centre de l’Australie", "SRT": "heure du Suriname", "ACWST": "heure normale du centre-ouest de l’Australie", "EDT": "heure d’été de l’Est", "MST": "heure normale de Macao", "AEST": "heure normale de l’Est de l’Australie", "ECT": "heure de l’Équateur", "COST": "heure d’été de Colombie", "HECU": "heure d’été de Cuba", "HEPMX": "heure d’été du Pacifique mexicain", "PST": "heure normale du Pacifique nord-américain", "MEZ": "heure normale d’Europe centrale", "SGT": "heure de Singapour", "CDT": "heure d’été du Centre", "ADT": "heure d’été de l’Atlantique", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EST": "heure normale de l’Est nord-américain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "MESZ": "heure d’été d’Europe centrale", "TMST": "heure d’été du Turkménistan", "ChST": "heure des Chamorro", "WAT": "heure normale d’Afrique de l’Ouest", "HEOG": "heure d’été de l’Ouest du Groenland", "ARST": "heure d’été de l’Argentine", "AEDT": "heure d’été de l’Est de l’Australie", "CHADT": "heure d’été des îles Chatham", "LHDT": "heure d’été de Lord Howe", "WARST": "heure d’été de l’Ouest argentin", "HAT": "heure d’été de Terre-Neuve", "GMT": "heure moyenne de Greenwich", "MDT": "heure d’été de Macao", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "TMT": "heure normale du Turkménistan", "OESZ": "heure d’été d’Europe de l’Est"},
++ locale: "fr_GF",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SRT": "SRT", "MEZ": "MEZ", "TMT": "TMT", "CLST": "CLST", "CAT": "CAT", "NZDT": "NZDT", "WARST": "WARST", "WIT": "WIT", "∅∅∅": "∅∅∅", "HKT": "HKT", "AKDT": "AKDT", "WAST": "WAST", "ECT": "ECT", "HNPM": "HNPM", "IST": "IST", "AKST": "AKST", "PDT": "PDT", "UYST": "UYST", "WART": "WART", "SAST": "SAST", "TMST": "TMST", "MESZ": "MESZ", "JDT": "JDT", "ACWST": "ACWST", "AEST": "AEST", "CDT": "CDT", "ART": "ART", "ARST": "ARST", "ACST": "ACST", "WESZ": "WESZ", "COT": "COT", "MST": "MST", "ADT": "ADT", "LHST": "LHST", "HEOG": "HEOG", "HENOMX": "HENOMX", "AWST": "AWST", "SGT": "SGT", "JST": "JST", "UYT": "UYT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "HAT": "HAT", "COST": "COST", "HNOG": "HNOG", "CHAST": "CHAST", "HNNOMX": "HNNOMX", "PST": "PST", "VET": "VET", "HAST": "HAST", "EAT": "EAT", "ACWDT": "ACWDT", "EST": "EST", "WITA": "WITA", "MDT": "MDT", "NZST": "NZST", "OEZ": "OEZ", "BOT": "BOT", "HNEG": "HNEG", "CHADT": "CHADT", "HECU": "HECU", "HNT": "HNT", "ChST": "ChST", "LHDT": "LHDT", "HEPM": "HEPM", "EDT": "EDT", "CLT": "CLT", "HADT": "HADT", "BT": "BT", "ACDT": "ACDT", "MYT": "MYT", "AEDT": "AEDT", "HNCU": "HNCU", "GYT": "GYT", "HKST": "HKST", "WIB": "WIB", "AST": "AST", "WEZ": "WEZ", "WAT": "WAT", "OESZ": "OESZ", "GFT": "GFT", "CST": "CST", "GMT": "GMT", "HEEG": "HEEG", "AWDT": "AWDT"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_GF) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_GF) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_GF) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_GF) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_GF) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_GF) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_GF) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_GF' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_GF) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_GF' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_GF) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_GF'
+@@ -291,58 +200,7 @@ func (fr *fr_GF) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_GF'
+@@ -351,65 +209,7 @@ func (fr *fr_GF) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_GF'
+@@ -417,27 +217,6 @@ func (fr *fr_GF) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_GF) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_GF) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_GF) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_GF) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_GF) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_GF) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_GF) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_GN/fr_GN.go b/fr_GN/fr_GN.go
+index ebb8000..c272374 100644
+--- a/fr_GN/fr_GN.go
++++ b/fr_GN/fr_GN.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_GN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_GN' locale
+ func New() locales.Translator {
+ return &fr_GN{
+- locale: "fr_GN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "FG", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"UYST": "heure d’été de l’Uruguay", "PST": "heure normale du Pacifique nord-américain", "LHDT": "heure d’été de Lord Howe", "NZDT": "heure d’été de la Nouvelle-Zélande", "OEZ": "heure normale d’Europe de l’Est", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "SGT": "heure de Singapour", "MST": "heure normale de Macao", "ECT": "heure de l’Équateur", "SAST": "heure normale d’Afrique méridionale", "HECU": "heure d’été de Cuba", "MDT": "heure d’été de Macao", "UYT": "heure normale de l’Uruguay", "ARST": "heure d’été de l’Argentine", "HNOG": "heure normale de l’Ouest du Groenland", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "IST": "heure de l’Inde", "OESZ": "heure d’été d’Europe de l’Est", "WARST": "heure d’été de l’Ouest argentin", "HNT": "heure normale de Terre-Neuve", "ART": "heure normale d’Argentine", "HEPMX": "heure d’été du Pacifique mexicain", "AKDT": "heure d’été de l’Alaska", "CLST": "heure d’été du Chili", "WAT": "heure normale d’Afrique de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "WITA": "heure du Centre indonésien", "MESZ": "heure d’été d’Europe centrale", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ACWST": "heure normale du centre-ouest de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "AEST": "heure normale de l’Est de l’Australie", "JDT": "heure d’été du Japon", "HNCU": "heure normale de Cuba", "EDT": "heure d’été de l’Est", "ADT": "heure d’été de l’Atlantique", "HNEG": "heure normale de l’Est du Groenland", "GFT": "heure de la Guyane française", "TMST": "heure d’été du Turkménistan", "LHST": "heure normale de Lord Howe", "CHADT": "heure d’été des îles Chatham", "TMT": "heure normale du Turkménistan", "WAST": "heure d’été d’Afrique de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "SRT": "heure du Suriname", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "AEDT": "heure d’été de l’Est de l’Australie", "ACST": "heure normale du centre de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "CAT": "heure normale d’Afrique centrale", "WIB": "heure de l’Ouest indonésien", "VET": "heure du Venezuela", "HEOG": "heure d’été de l’Ouest du Groenland", "BT": "heure du Bhoutan", "WESZ": "heure d’été d’Europe de l’Ouest", "PDT": "heure d’été du Pacifique", "CLT": "heure normale du Chili", "ChST": "heure des Chamorro", "∅∅∅": "heure d’été des Açores", "CDT": "heure d’été du Centre", "MYT": "heure de la Malaisie", "ACDT": "heure d’été du centre de l’Australie", "CHAST": "heure normale des îles Chatham", "EST": "heure normale de l’Est nord-américain", "AKST": "heure normale de l’Alaska", "GYT": "heure du Guyana", "MEZ": "heure normale d’Europe centrale", "HEEG": "heure d’été de l’Est du Groenland", "COT": "heure normale de Colombie", "GMT": "heure moyenne de Greenwich", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AWST": "heure normale de l’Ouest de l’Australie", "HKT": "heure normale de Hong Kong", "HKST": "heure d’été de Hong Kong", "JST": "heure normale du Japon", "HNPMX": "heure normale du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WIT": "heure de l’Est indonésien", "WEZ": "heure normale d’Europe de l’Ouest", "NZST": "heure normale de la Nouvelle-Zélande", "BOT": "heure de Bolivie", "COST": "heure d’été de Colombie", "WART": "heure normale de l’Ouest argentin", "CST": "heure normale du centre nord-américain"},
++ locale: "fr_GN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "FG", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNT": "HNT", "ChST": "ChST", "HEPM": "HEPM", "WAT": "WAT", "WAST": "WAST", "EAT": "EAT", "HECU": "HECU", "UYST": "UYST", "WESZ": "WESZ", "SGT": "SGT", "OEZ": "OEZ", "HEEG": "HEEG", "HENOMX": "HENOMX", "ACWST": "ACWST", "WEZ": "WEZ", "WIT": "WIT", "CLT": "CLT", "PDT": "PDT", "HKST": "HKST", "NZDT": "NZDT", "BOT": "BOT", "AEST": "AEST", "HNPMX": "HNPMX", "COST": "COST", "HEOG": "HEOG", "HAST": "HAST", "AWDT": "AWDT", "JDT": "JDT", "HEPMX": "HEPMX", "EST": "EST", "CLST": "CLST", "TMT": "TMT", "CAT": "CAT", "HNPM": "HNPM", "AKST": "AKST", "∅∅∅": "∅∅∅", "TMST": "TMST", "GMT": "GMT", "MESZ": "MESZ", "LHST": "LHST", "IST": "IST", "BT": "BT", "MST": "MST", "ECT": "ECT", "WIB": "WIB", "HNNOMX": "HNNOMX", "UYT": "UYT", "CHAST": "CHAST", "EDT": "EDT", "MDT": "MDT", "HKT": "HKT", "WITA": "WITA", "CST": "CST", "MEZ": "MEZ", "GYT": "GYT", "HNOG": "HNOG", "JST": "JST", "HNEG": "HNEG", "AWST": "AWST", "ACWDT": "ACWDT", "HNCU": "HNCU", "WART": "WART", "COT": "COT", "HADT": "HADT", "ART": "ART", "ACDT": "ACDT", "MYT": "MYT", "AEDT": "AEDT", "AKDT": "AKDT", "OESZ": "OESZ", "CDT": "CDT", "AST": "AST", "GFT": "GFT", "LHDT": "LHDT", "PST": "PST", "CHADT": "CHADT", "SRT": "SRT", "ACST": "ACST", "ADT": "ADT", "ARST": "ARST", "VET": "VET", "HAT": "HAT", "WARST": "WARST", "SAST": "SAST", "NZST": "NZST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_GN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_GN) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_GN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_GN) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_GN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_GN) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_GN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_GN' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_GN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_GN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_GN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_GN'
+@@ -291,58 +200,7 @@ func (fr *fr_GN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_GN'
+@@ -351,65 +209,7 @@ func (fr *fr_GN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_GN'
+@@ -417,27 +217,6 @@ func (fr *fr_GN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_GN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_GN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_GN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_GN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_GN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_GN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_GN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_GP/fr_GP.go b/fr_GP/fr_GP.go
+index 59c8e5f..6d2e1d9 100644
+--- a/fr_GP/fr_GP.go
++++ b/fr_GP/fr_GP.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_GP struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_GP' locale
+ func New() locales.Translator {
+ return &fr_GP{
+- locale: "fr_GP",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"PST": "heure normale du Pacifique nord-américain", "OEZ": "heure normale d’Europe de l’Est", "CST": "heure normale du centre nord-américain", "CDT": "heure d’été du Centre", "MYT": "heure de la Malaisie", "WITA": "heure du Centre indonésien", "MESZ": "heure d’été d’Europe centrale", "CAT": "heure normale d’Afrique centrale", "BOT": "heure de Bolivie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AKST": "heure normale de l’Alaska", "AKDT": "heure d’été de l’Alaska", "GFT": "heure de la Guyane française", "TMT": "heure normale du Turkménistan", "ECT": "heure de l’Équateur", "COT": "heure normale de Colombie", "VET": "heure du Venezuela", "ART": "heure normale d’Argentine", "EAT": "heure normale d’Afrique de l’Est", "HEPMX": "heure d’été du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "ChST": "heure des Chamorro", "ACDT": "heure d’été du centre de l’Australie", "SGT": "heure de Singapour", "WIB": "heure de l’Ouest indonésien", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HAT": "heure d’été de Terre-Neuve", "ARST": "heure d’été de l’Argentine", "WEZ": "heure normale d’Europe de l’Ouest", "HNPMX": "heure normale du Pacifique mexicain", "HEEG": "heure d’été de l’Est du Groenland", "PDT": "heure d’été du Pacifique", "WESZ": "heure d’été d’Europe de l’Ouest", "AWST": "heure normale de l’Ouest de l’Australie", "CHADT": "heure d’été des îles Chatham", "SAST": "heure normale d’Afrique méridionale", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HKST": "heure d’été de Hong Kong", "AEDT": "heure d’été de l’Est de l’Australie", "MEZ": "heure normale d’Europe centrale", "CLT": "heure normale du Chili", "ACST": "heure normale du centre de l’Australie", "EST": "heure normale de l’Est nord-américain", "GYT": "heure du Guyana", "MST": "heure normale des Rocheuses", "JDT": "heure d’été du Japon", "HNEG": "heure normale de l’Est du Groenland", "WAST": "heure d’été d’Afrique de l’Ouest", "COST": "heure d’été de Colombie", "ACWST": "heure normale du centre-ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "LHST": "heure normale de Lord Howe", "ADT": "heure d’été de l’Atlantique", "WIT": "heure de l’Est indonésien", "HNOG": "heure normale de l’Ouest du Groenland", "HEOG": "heure d’été de l’Ouest du Groenland", "EDT": "heure d’été de l’Est", "AEST": "heure normale de l’Est de l’Australie", "CHAST": "heure normale des îles Chatham", "JST": "heure normale du Japon", "IST": "heure de l’Inde", "TMST": "heure d’été du Turkménistan", "WAT": "heure normale d’Afrique de l’Ouest", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HNT": "heure normale de Terre-Neuve", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZDT": "heure d’été de la Nouvelle-Zélande", "HECU": "heure d’été de Cuba", "MDT": "heure d’été des Rocheuses", "SRT": "heure du Suriname", "AWDT": "heure d’été de l’Ouest de l’Australie", "LHDT": "heure d’été de Lord Howe", "HNCU": "heure normale de Cuba", "UYT": "heure normale de l’Uruguay", "HAST": "heure normale d’Hawaii - Aléoutiennes", "∅∅∅": "heure d’été de l’Amazonie", "OESZ": "heure d’été d’Europe de l’Est", "WARST": "heure d’été de l’Ouest argentin", "GMT": "heure moyenne de Greenwich", "BT": "heure du Bhoutan", "HKT": "heure normale de Hong Kong", "CLST": "heure d’été du Chili", "WART": "heure normale de l’Ouest argentin", "UYST": "heure d’été de l’Uruguay"},
++ locale: "fr_GP",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WART": "WART", "OESZ": "OESZ", "HECU": "HECU", "WAST": "WAST", "HNT": "HNT", "ACST": "ACST", "HNNOMX": "HNNOMX", "CHAST": "CHAST", "AST": "AST", "MEZ": "MEZ", "AEST": "AEST", "ARST": "ARST", "COST": "COST", "AEDT": "AEDT", "SAST": "SAST", "GYT": "GYT", "HKST": "HKST", "HNPM": "HNPM", "VET": "VET", "WIT": "WIT", "MST": "MST", "GMT": "GMT", "JDT": "JDT", "UYST": "UYST", "WEZ": "WEZ", "OEZ": "OEZ", "HEOG": "HEOG", "CAT": "CAT", "ACDT": "ACDT", "PST": "PST", "ACWDT": "ACWDT", "SGT": "SGT", "AKDT": "AKDT", "HAT": "HAT", "EST": "EST", "ART": "ART", "EAT": "EAT", "∅∅∅": "∅∅∅", "HKT": "HKT", "CLT": "CLT", "MDT": "MDT", "NZST": "NZST", "HADT": "HADT", "HEPMX": "HEPMX", "AWDT": "AWDT", "EDT": "EDT", "CLST": "CLST", "NZDT": "NZDT", "AWST": "AWST", "HEPM": "HEPM", "IST": "IST", "PDT": "PDT", "WESZ": "WESZ", "WAT": "WAT", "AKST": "AKST", "GFT": "GFT", "MYT": "MYT", "WIB": "WIB", "SRT": "SRT", "WARST": "WARST", "ACWST": "ACWST", "COT": "COT", "WITA": "WITA", "ECT": "ECT", "JST": "JST", "HNOG": "HNOG", "TMST": "TMST", "CST": "CST", "CDT": "CDT", "MESZ": "MESZ", "HNEG": "HNEG", "HEEG": "HEEG", "HNPMX": "HNPMX", "LHDT": "LHDT", "TMT": "TMT", "BOT": "BOT", "LHST": "LHST", "CHADT": "CHADT", "UYT": "UYT", "HNCU": "HNCU", "HAST": "HAST", "BT": "BT", "ChST": "ChST", "HENOMX": "HENOMX", "ADT": "ADT"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_GP) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_GP) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_GP) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_GP) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_GP) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_GP) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_GP) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_GP' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_GP) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_GP' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_GP) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_GP'
+@@ -291,58 +200,7 @@ func (fr *fr_GP) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_GP'
+@@ -351,65 +209,7 @@ func (fr *fr_GP) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_GP'
+@@ -417,27 +217,6 @@ func (fr *fr_GP) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_GP) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_GP) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_GP) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_GP) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_GP) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_GP) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_GP) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_GQ/fr_GQ.go b/fr_GQ/fr_GQ.go
+index d7f1d0a..7fbef9c 100644
+--- a/fr_GQ/fr_GQ.go
++++ b/fr_GQ/fr_GQ.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_GQ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_GQ' locale
+ func New() locales.Translator {
+ return &fr_GQ{
+- locale: "fr_GQ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"HNPM": "heure normale de Saint-Pierre-et-Miquelon", "COST": "heure d’été de Colombie", "MDT": "heure d’été de Macao", "HNPMX": "heure normale du Pacifique mexicain", "WIT": "heure de l’Est indonésien", "PDT": "heure d’été du Pacifique", "HKT": "heure normale de Hong Kong", "WAST": "heure d’été d’Afrique de l’Ouest", "OESZ": "heure d’été d’Europe de l’Est", "EDT": "heure d’été de l’Est", "HEPMX": "heure d’été du Pacifique mexicain", "WIB": "heure de l’Ouest indonésien", "VET": "heure du Venezuela", "HEEG": "heure d’été de l’Est du Groenland", "MYT": "heure de la Malaisie", "HNOG": "heure normale de l’Ouest du Groenland", "ACDT": "heure d’été du centre de l’Australie", "WAT": "heure normale d’Afrique de l’Ouest", "HNT": "heure normale de Terre-Neuve", "SAST": "heure normale d’Afrique méridionale", "UYST": "heure d’été de l’Uruguay", "CHADT": "heure d’été des îles Chatham", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "UYT": "heure normale de l’Uruguay", "HAT": "heure d’été de Terre-Neuve", "JST": "heure normale du Japon", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "WART": "heure normale de l’Ouest argentin", "GYT": "heure du Guyana", "LHST": "heure normale de Lord Howe", "IST": "heure de l’Inde", "GFT": "heure de la Guyane française", "CAT": "heure normale d’Afrique centrale", "MESZ": "heure d’été d’Europe centrale", "EAT": "heure normale d’Afrique de l’Est", "AST": "heure normale de l’Atlantique", "SRT": "heure du Suriname", "WEZ": "heure normale d’Europe de l’Ouest", "AEDT": "heure d’été de l’Est de l’Australie", "MEZ": "heure normale d’Europe centrale", "OEZ": "heure normale d’Europe de l’Est", "HNCU": "heure normale de Cuba", "ACWST": "heure normale du centre-ouest de l’Australie", "ARST": "heure d’été de l’Argentine", "CLT": "heure normale du Chili", "TMST": "heure d’été du Turkménistan", "ACST": "heure normale du centre de l’Australie", "ADT": "heure d’été de l’Atlantique", "ART": "heure normale d’Argentine", "GMT": "heure moyenne de Greenwich", "HECU": "heure d’été de Cuba", "HEOG": "heure d’été de l’Ouest du Groenland", "AWST": "heure normale de l’Ouest de l’Australie", "ECT": "heure de l’Équateur", "SGT": "heure de Singapour", "MST": "heure normale de Macao", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ACWDT": "heure d’été du centre-ouest de l’Australie", "BOT": "heure de Bolivie", "WARST": "heure d’été de l’Ouest argentin", "WITA": "heure du Centre indonésien", "CLST": "heure d’été du Chili", "ChST": "heure des Chamorro", "EST": "heure normale de l’Est nord-américain", "AKST": "heure normale de l’Alaska", "AKDT": "heure d’été de l’Alaska", "WESZ": "heure d’été d’Europe de l’Ouest", "AEST": "heure normale de l’Est de l’Australie", "TMT": "heure normale du Turkménistan", "COT": "heure normale de Colombie", "CDT": "heure d’été du Centre", "BT": "heure du Bhoutan", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "∅∅∅": "heure d’été de l’Amazonie", "JDT": "heure d’été du Japon", "CST": "heure normale du centre nord-américain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "PST": "heure normale du Pacifique nord-américain", "HKST": "heure d’été de Hong Kong", "LHDT": "heure d’été de Lord Howe", "AWDT": "heure d’été de l’Ouest de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "CHAST": "heure normale des îles Chatham", "HNEG": "heure normale de l’Est du Groenland"},
++ locale: "fr_GQ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"BT": "BT", "WAT": "WAT", "NZDT": "NZDT", "GMT": "GMT", "AWDT": "AWDT", "PST": "PST", "HECU": "HECU", "TMT": "TMT", "CLST": "CLST", "MDT": "MDT", "JST": "JST", "CHADT": "CHADT", "HEPMX": "HEPMX", "OESZ": "OESZ", "HKST": "HKST", "ART": "ART", "HNNOMX": "HNNOMX", "ACST": "ACST", "WART": "WART", "WIB": "WIB", "CDT": "CDT", "HAST": "HAST", "HAT": "HAT", "SAST": "SAST", "HKT": "HKT", "HADT": "HADT", "GFT": "GFT", "HNCU": "HNCU", "HNPMX": "HNPMX", "WIT": "WIT", "∅∅∅": "∅∅∅", "ECT": "ECT", "MYT": "MYT", "VET": "VET", "AKDT": "AKDT", "CAT": "CAT", "HENOMX": "HENOMX", "AEDT": "AEDT", "COST": "COST", "EAT": "EAT", "WEZ": "WEZ", "HNT": "HNT", "WARST": "WARST", "CST": "CST", "HNEG": "HNEG", "JDT": "JDT", "ACDT": "ACDT", "HEPM": "HEPM", "LHDT": "LHDT", "EST": "EST", "ChST": "ChST", "SRT": "SRT", "PDT": "PDT", "MEZ": "MEZ", "LHST": "LHST", "AEST": "AEST", "MESZ": "MESZ", "IST": "IST", "OEZ": "OEZ", "ARST": "ARST", "BOT": "BOT", "WAST": "WAST", "COT": "COT", "HEOG": "HEOG", "TMST": "TMST", "CLT": "CLT", "WITA": "WITA", "GYT": "GYT", "WESZ": "WESZ", "AKST": "AKST", "NZST": "NZST", "AST": "AST", "ACWST": "ACWST", "CHAST": "CHAST", "UYT": "UYT", "HNOG": "HNOG", "EDT": "EDT", "ADT": "ADT", "AWST": "AWST", "ACWDT": "ACWDT", "UYST": "UYST", "SGT": "SGT", "MST": "MST", "HEEG": "HEEG", "HNPM": "HNPM"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_GQ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_GQ) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_GQ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_GQ) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_GQ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_GQ) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_GQ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_GQ' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_GQ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_GQ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_GQ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_GQ'
+@@ -291,58 +200,7 @@ func (fr *fr_GQ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_GQ'
+@@ -351,65 +209,7 @@ func (fr *fr_GQ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_GQ'
+@@ -417,27 +217,6 @@ func (fr *fr_GQ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_GQ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_GQ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_GQ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_GQ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_GQ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_GQ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_GQ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_HT/fr_HT.go b/fr_HT/fr_HT.go
+index 5984bec..77f711f 100644
+--- a/fr_HT/fr_HT.go
++++ b/fr_HT/fr_HT.go
+@@ -10,72 +10,46 @@ import (
+ )
+ 
+ type fr_HT struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_HT' locale
+ func New() locales.Translator {
+ return &fr_HT{
+- locale: "fr_HT",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "G", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"", ""},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"GMT": "heure moyenne de Greenwich", "VET": "heure du Venezuela", "HNOG": "heure normale de l’Ouest du Groenland", "WAST": "heure d’été d’Afrique de l’Ouest", "AKST": "heure normale de l’Alaska", "WIT": "heure de l’Est indonésien", "WESZ": "heure d’été d’Europe de l’Ouest", "ARST": "heure d’été de l’Argentine", "CHAST": "heure normale des îles Chatham", "WAT": "heure normale d’Afrique de l’Ouest", "COST": "heure d’été de Colombie", "EDT": "heure d’été de l’Est", "CDT": "heure d’été du Centre", "ADT": "heure d’été de l’Atlantique", "HAT": "heure d’été de Terre-Neuve", "PST": "heure normale du Pacifique nord-américain", "CLST": "heure d’été du Chili", "BOT": "heure de Bolivie", "EAT": "heure normale d’Afrique de l’Est", "SRT": "heure du Suriname", "HNT": "heure normale de Terre-Neuve", "LHST": "heure normale de Lord Howe", "CAT": "heure normale d’Afrique centrale", "MYT": "heure de la Malaisie", "HKT": "heure normale de Hong Kong", "ChST": "heure des Chamorro", "CST": "heure normale du centre nord-américain", "WIB": "heure de l’Ouest indonésien", "HAST": "heure normale d’Hawaii - Aléoutiennes", "PDT": "heure d’été du Pacifique", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "UYST": "heure d’été de l’Uruguay", "MESZ": "heure d’été d’Europe centrale", "ACST": "heure normale du centre de l’Australie", "WARST": "heure d’été de l’Ouest argentin", "HECU": "heure d’été de Cuba", "AKDT": "heure d’été de l’Alaska", "UYT": "heure normale de l’Uruguay", "ACWST": "heure normale du centre-ouest de l’Australie", "CLT": "heure normale du Chili", "WEZ": "heure normale d’Europe de l’Ouest", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "GFT": "heure de la Guyane française", "SGT": "heure de Singapour", "MST": "heure normale de Macao", "EST": "heure normale de l’Est nord-américain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "BT": "heure du Bhoutan", "OESZ": "heure d’été d’Europe de l’Est", "ECT": "heure de l’Équateur", "WART": "heure normale de l’Ouest argentin", "∅∅∅": "heure d’été des Açores", "HEEG": "heure d’été de l’Est du Groenland", "MEZ": "heure normale d’Europe centrale", "IST": "heure de l’Inde", "SAST": "heure normale d’Afrique méridionale", "MDT": "heure d’été de Macao", "HKST": "heure d’été de Hong Kong", "WITA": "heure du Centre indonésien", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZDT": "heure d’été de la Nouvelle-Zélande", "JDT": "heure d’été du Japon", "HNEG": "heure normale de l’Est du Groenland", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HNCU": "heure normale de Cuba", "GYT": "heure du Guyana", "ART": "heure normale d’Argentine", "AWST": "heure normale de l’Ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "TMST": "heure d’été du Turkménistan", "OEZ": "heure normale d’Europe de l’Est", "HNPMX": "heure normale du Pacifique mexicain", "HEPMX": "heure d’été du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "LHDT": "heure d’été de Lord Howe", "TMT": "heure normale du Turkménistan", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AEST": "heure normale de l’Est de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "CHADT": "heure d’été des îles Chatham", "JST": "heure normale du Japon", "HEOG": "heure d’été de l’Ouest du Groenland", "AWDT": "heure d’été de l’Ouest de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "COT": "heure normale de Colombie"},
++ locale: "fr_HT",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "G", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsWide: []string{"", ""},
++ timezones: map[string]string{"ChST": "ChST", "CLT": "CLT", "AWDT": "AWDT", "CHAST": "CHAST", "HEPMX": "HEPMX", "WIT": "WIT", "GYT": "GYT", "CAT": "CAT", "WIB": "WIB", "EAT": "EAT", "HENOMX": "HENOMX", "LHST": "LHST", "PDT": "PDT", "HNPMX": "HNPMX", "TMST": "TMST", "TMT": "TMT", "NZST": "NZST", "GMT": "GMT", "BOT": "BOT", "PST": "PST", "SAST": "SAST", "HKT": "HKT", "HKST": "HKST", "AST": "AST", "ARST": "ARST", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "JST": "JST", "UYT": "UYT", "MST": "MST", "MYT": "MYT", "CHADT": "CHADT", "HNOG": "HNOG", "MESZ": "MESZ", "COT": "COT", "EST": "EST", "ECT": "ECT", "BT": "BT", "ACWDT": "ACWDT", "HNCU": "HNCU", "HNT": "HNT", "HEOG": "HEOG", "CST": "CST", "SRT": "SRT", "HNEG": "HNEG", "HNPM": "HNPM", "HAST": "HAST", "AEST": "AEST", "AEDT": "AEDT", "OESZ": "OESZ", "AKST": "AKST", "WART": "WART", "ADT": "ADT", "HADT": "HADT", "AWST": "AWST", "WESZ": "WESZ", "VET": "VET", "WAT": "WAT", "WARST": "WARST", "COST": "COST", "WITA": "WITA", "ART": "ART", "HEEG": "HEEG", "IST": "IST", "WEZ": "WEZ", "HECU": "HECU", "NZDT": "NZDT", "OEZ": "OEZ", "HAT": "HAT", "MDT": "MDT", "MEZ": "MEZ", "ACST": "ACST", "JDT": "JDT", "UYST": "UYST", "WAST": "WAST", "CLST": "CLST", "CDT": "CDT", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "ACWST": "ACWST", "AKDT": "AKDT", "GFT": "GFT", "ACDT": "ACDT", "SGT": "SGT", "EDT": "EDT"},
+ }
+ }
+ 
+@@ -147,7 +121,7 @@ func (fr *fr_HT) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_HT) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +131,7 @@ func (fr *fr_HT) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_HT) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +141,7 @@ func (fr *fr_HT) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_HT) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +187,13 @@ func (fr *fr_HT) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_HT' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_HT) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_HT' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_HT) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_HT'
+@@ -291,58 +201,7 @@ func (fr *fr_HT) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_HT'
+@@ -351,65 +210,7 @@ func (fr *fr_HT) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_HT'
+@@ -417,27 +218,6 @@ func (fr *fr_HT) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +226,6 @@ func (fr *fr_HT) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +234,6 @@ func (fr *fr_HT) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +242,6 @@ func (fr *fr_HT) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +250,6 @@ func (fr *fr_HT) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +258,6 @@ func (fr *fr_HT) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +266,6 @@ func (fr *fr_HT) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +274,5 @@ func (fr *fr_HT) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_KM/fr_KM.go b/fr_KM/fr_KM.go
+index 2aa3aee..f9a9f54 100644
+--- a/fr_KM/fr_KM.go
++++ b/fr_KM/fr_KM.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_KM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_KM' locale
+ func New() locales.Translator {
+ return &fr_KM{
+- locale: "fr_KM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "CF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"MYT": "heure de la Malaisie", "ACWST": "heure normale du centre-ouest de l’Australie", "HEEG": "heure d’été de l’Est du Groenland", "OEZ": "heure normale d’Europe de l’Est", "COST": "heure d’été de Colombie", "ADT": "heure d’été de l’Atlantique", "WITA": "heure du Centre indonésien", "MESZ": "heure d’été d’Europe centrale", "IST": "heure de l’Inde", "EDT": "heure d’été de l’Est", "SRT": "heure du Suriname", "HNOG": "heure normale de l’Ouest du Groenland", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "BOT": "heure de Bolivie", "OESZ": "heure d’été d’Europe de l’Est", "PDT": "heure d’été du Pacifique", "WESZ": "heure d’été d’Europe de l’Ouest", "HNT": "heure normale de Terre-Neuve", "ACST": "heure normale du centre de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "TMST": "heure d’été du Turkménistan", "ACDT": "heure d’été du centre de l’Australie", "HNEG": "heure normale de l’Est du Groenland", "VET": "heure du Venezuela", "WIT": "heure de l’Est indonésien", "LHDT": "heure d’été de Lord Howe", "SAST": "heure normale d’Afrique méridionale", "TMT": "heure normale du Turkménistan", "WAST": "heure d’été d’Afrique de l’Ouest", "WART": "heure normale de l’Ouest argentin", "MST": "heure normale de Macao", "HEPMX": "heure d’été du Pacifique mexicain", "CDT": "heure d’été du Centre", "WEZ": "heure normale d’Europe de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "CLST": "heure d’été du Chili", "ChST": "heure des Chamorro", "WIB": "heure de l’Ouest indonésien", "UYST": "heure d’été de l’Uruguay", "AST": "heure normale de l’Atlantique", "PST": "heure normale du Pacifique nord-américain", "AWDT": "heure d’été de l’Ouest de l’Australie", "WAT": "heure normale d’Afrique de l’Ouest", "UYT": "heure normale de l’Uruguay", "HEOG": "heure d’été de l’Ouest du Groenland", "NZDT": "heure d’été de la Nouvelle-Zélande", "EST": "heure normale de l’Est nord-américain", "NZST": "heure normale de la Nouvelle-Zélande", "CAT": "heure normale d’Afrique centrale", "GMT": "heure moyenne de Greenwich", "AKST": "heure normale de l’Alaska", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "CHAST": "heure normale des îles Chatham", "JDT": "heure d’été du Japon", "WARST": "heure d’été de l’Ouest argentin", "COT": "heure normale de Colombie", "ECT": "heure de l’Équateur", "AKDT": "heure d’été de l’Alaska", "BT": "heure du Bhoutan", "ARST": "heure d’été de l’Argentine", "AWST": "heure normale de l’Ouest de l’Australie", "CLT": "heure normale du Chili", "CHADT": "heure d’été des îles Chatham", "∅∅∅": "heure d’été de l’Amazonie", "GFT": "heure de la Guyane française", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "ART": "heure normale d’Argentine", "HKST": "heure d’été de Hong Kong", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "MEZ": "heure normale d’Europe centrale", "SGT": "heure de Singapour", "HNPMX": "heure normale du Pacifique mexicain", "CST": "heure normale du centre nord-américain", "JST": "heure normale du Japon", "MDT": "heure d’été de Macao", "GYT": "heure du Guyana", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HECU": "heure d’été de Cuba", "AEST": "heure normale de l’Est de l’Australie", "HKT": "heure normale de Hong Kong", "LHST": "heure normale de Lord Howe", "HNCU": "heure normale de Cuba"},
++ locale: "fr_KM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "CF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SAST": "SAST", "SRT": "SRT", "HNPM": "HNPM", "OEZ": "OEZ", "WESZ": "WESZ", "AKST": "AKST", "HEOG": "HEOG", "ADT": "ADT", "UYT": "UYT", "PST": "PST", "AEST": "AEST", "HECU": "HECU", "HKST": "HKST", "HEEG": "HEEG", "AWST": "AWST", "WEZ": "WEZ", "AWDT": "AWDT", "PDT": "PDT", "CLST": "CLST", "NZDT": "NZDT", "AST": "AST", "EAT": "EAT", "HADT": "HADT", "HNEG": "HNEG", "ART": "ART", "HAT": "HAT", "GYT": "GYT", "VET": "VET", "WAT": "WAT", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "IST": "IST", "ACWDT": "ACWDT", "COT": "COT", "TMST": "TMST", "ChST": "ChST", "MYT": "MYT", "ACWST": "ACWST", "WIT": "WIT", "SGT": "SGT", "AKDT": "AKDT", "WARST": "WARST", "BOT": "BOT", "HAST": "HAST", "HEPM": "HEPM", "WIB": "WIB", "CHADT": "CHADT", "WART": "WART", "CST": "CST", "WITA": "WITA", "WAST": "WAST", "COST": "COST", "EDT": "EDT", "ECT": "ECT", "GMT": "GMT", "JST": "JST", "BT": "BT", "HNCU": "HNCU", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "MST": "MST", "HENOMX": "HENOMX", "UYST": "UYST", "LHST": "LHST", "CHAST": "CHAST", "HNOG": "HNOG", "MEZ": "MEZ", "ACST": "ACST", "ACDT": "ACDT", "EST": "EST", "NZST": "NZST", "ARST": "ARST", "MDT": "MDT", "LHDT": "LHDT", "HNT": "HNT", "CDT": "CDT", "JDT": "JDT", "GFT": "GFT", "TMT": "TMT", "HKT": "HKT", "CAT": "CAT", "CLT": "CLT", "MESZ": "MESZ", "HNPMX": "HNPMX", "HEPMX": "HEPMX"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_KM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_KM) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_KM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_KM) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_KM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_KM) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_KM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_KM' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_KM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_KM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_KM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_KM'
+@@ -291,58 +200,7 @@ func (fr *fr_KM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_KM'
+@@ -351,65 +209,7 @@ func (fr *fr_KM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_KM'
+@@ -417,27 +217,6 @@ func (fr *fr_KM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_KM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_KM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_KM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_KM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_KM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_KM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_KM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_LU/fr_LU.go b/fr_LU/fr_LU.go
+index 40c3deb..62ce12b 100644
+--- a/fr_LU/fr_LU.go
++++ b/fr_LU/fr_LU.go
+@@ -10,72 +10,46 @@ import (
+ )
+ 
+ type fr_LU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_LU' locale
+ func New() locales.Translator {
+ return &fr_LU{
+- locale: "fr_LU",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "F", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"BOT": "heure de Bolivie", "HEEG": "heure d’été de l’Est du Groenland", "OEZ": "heure normale d’Europe de l’Est", "OESZ": "heure d’été d’Europe de l’Est", "MST": "heure normale de Macao", "TMT": "heure normale du Turkménistan", "ECT": "heure de l’Équateur", "HEPMX": "heure d’été du Pacifique mexicain", "WIB": "heure de l’Ouest indonésien", "HAT": "heure d’été de Terre-Neuve", "HNOG": "heure normale de l’Ouest du Groenland", "PDT": "heure d’été du Pacifique", "WEZ": "heure normale d’Europe de l’Ouest", "WITA": "heure du Centre indonésien", "NZST": "heure normale de la Nouvelle-Zélande", "WART": "heure normale de l’Ouest argentin", "UYT": "heure normale de l’Uruguay", "WIT": "heure de l’Est indonésien", "AWDT": "heure d’été de l’Ouest de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "JST": "heure normale du Japon", "ACDT": "heure d’été du centre de l’Australie", "ADT": "heure d’été de l’Atlantique", "GYT": "heure du Guyana", "MESZ": "heure d’été d’Europe centrale", "HNEG": "heure normale de l’Est du Groenland", "VET": "heure du Venezuela", "ART": "heure normale d’Argentine", "MEZ": "heure normale d’Europe centrale", "LHDT": "heure d’été de Lord Howe", "∅∅∅": "heure d’été de l’Amazonie", "TMST": "heure d’été du Turkménistan", "ACST": "heure normale du centre de l’Australie", "AEST": "heure normale de l’Est de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CLST": "heure d’été du Chili", "SRT": "heure du Suriname", "GFT": "heure de la Guyane française", "WARST": "heure d’été de l’Ouest argentin", "CDT": "heure d’été du Centre", "PST": "heure normale du Pacifique nord-américain", "MYT": "heure de la Malaisie", "HNT": "heure normale de Terre-Neuve", "HKST": "heure d’été de Hong Kong", "CLT": "heure normale du Chili", "ChST": "heure des Chamorro", "GMT": "heure moyenne de Greenwich", "HNCU": "heure normale de Cuba", "AKST": "heure normale de l’Alaska", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "EAT": "heure normale d’Afrique de l’Est", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EST": "heure normale de l’Est nord-américain", "EDT": "heure d’été de l’Est", "MDT": "heure d’été de Macao", "CST": "heure normale du centre nord-américain", "AEDT": "heure d’été de l’Est de l’Australie", "IST": "heure de l’Inde", "WAST": "heure d’été d’Afrique de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "AST": "heure normale de l’Atlantique", "UYST": "heure d’été de l’Uruguay", "ARST": "heure d’été de l’Argentine", "ACWST": "heure normale du centre-ouest de l’Australie", "HKT": "heure normale de Hong Kong", "CHADT": "heure d’été des îles Chatham", "SAST": "heure normale d’Afrique méridionale", "WAT": "heure normale d’Afrique de l’Ouest", "COT": "heure normale de Colombie", "COST": "heure d’été de Colombie", "SGT": "heure de Singapour", "BT": "heure du Bhoutan", "HEOG": "heure d’été de l’Ouest du Groenland", "WESZ": "heure d’été d’Europe de l’Ouest", "CHAST": "heure normale des îles Chatham", "LHST": "heure normale de Lord Howe", "HECU": "heure d’été de Cuba", "HNPMX": "heure normale du Pacifique mexicain", "AKDT": "heure d’été de l’Alaska", "AWST": "heure normale de l’Ouest de l’Australie", "JDT": "heure d’été du Japon", "CAT": "heure normale d’Afrique centrale", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ACWDT": "heure d’été du centre-ouest de l’Australie"},
++ locale: "fr_LU",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ group: ".",
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "F", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEPMX": "HEPMX", "TMT": "TMT", "ChST": "ChST", "ECT": "ECT", "HNEG": "HNEG", "HENOMX": "HENOMX", "IST": "IST", "PDT": "PDT", "WAT": "WAT", "OEZ": "OEZ", "WARST": "WARST", "ART": "ART", "CDT": "CDT", "EAT": "EAT", "HNNOMX": "HNNOMX", "AWST": "AWST", "UYT": "UYT", "WESZ": "WESZ", "HNPMX": "HNPMX", "CAT": "CAT", "LHDT": "LHDT", "ACWDT": "ACWDT", "HAT": "HAT", "COT": "COT", "TMST": "TMST", "MST": "MST", "WEZ": "WEZ", "SGT": "SGT", "WAST": "WAST", "AKDT": "AKDT", "COST": "COST", "HKST": "HKST", "ARST": "ARST", "HEEG": "HEEG", "AWDT": "AWDT", "VET": "VET", "GYT": "GYT", "EST": "EST", "GMT": "GMT", "MYT": "MYT", "HEPM": "HEPM", "CHAST": "CHAST", "HECU": "HECU", "HNT": "HNT", "CLT": "CLT", "ADT": "ADT", "WIB": "WIB", "ACWST": "ACWST", "AEST": "AEST", "UYST": "UYST", "AKST": "AKST", "WIT": "WIT", "WITA": "WITA", "NZST": "NZST", "BOT": "BOT", "HADT": "HADT", "LHST": "LHST", "HNPM": "HNPM", "GFT": "GFT", "HNOG": "HNOG", "SRT": "SRT", "AEDT": "AEDT", "HNCU": "HNCU", "OESZ": "OESZ", "CLST": "CLST", "JDT": "JDT", "PST": "PST", "HKT": "HKT", "JST": "JST", "SAST": "SAST", "MDT": "MDT", "ACDT": "ACDT", "EDT": "EDT", "CST": "CST", "NZDT": "NZDT", "AST": "AST", "CHADT": "CHADT", "HEOG": "HEOG", "HAST": "HAST", "MEZ": "MEZ", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "ACST": "ACST", "BT": "BT", "WART": "WART"},
+ }
+ }
+ 
+@@ -147,7 +121,7 @@ func (fr *fr_LU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_LU) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +131,7 @@ func (fr *fr_LU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_LU) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +141,7 @@ func (fr *fr_LU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_LU) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,75 +187,13 @@ func (fr *fr_LU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_LU' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_LU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_LU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_LU) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_LU'
+@@ -289,56 +201,7 @@ func (fr *fr_LU) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_LU'
+@@ -347,63 +210,7 @@ func (fr *fr_LU) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_LU'
+@@ -411,27 +218,6 @@ func (fr *fr_LU) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -440,17 +226,6 @@ func (fr *fr_LU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -459,17 +234,6 @@ func (fr *fr_LU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -478,19 +242,6 @@ func (fr *fr_LU) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -499,19 +250,6 @@ func (fr *fr_LU) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -520,26 +258,6 @@ func (fr *fr_LU) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -548,30 +266,6 @@ func (fr *fr_LU) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -580,34 +274,5 @@ func (fr *fr_LU) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_MA/fr_MA.go b/fr_MA/fr_MA.go
+index 95bee04..2d65fea 100644
+--- a/fr_MA/fr_MA.go
++++ b/fr_MA/fr_MA.go
+@@ -10,72 +10,48 @@ import (
+ )
+ 
+ type fr_MA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_MA' locale
+ func New() locales.Translator {
+ return &fr_MA{
+- locale: "fr_MA",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "jan.", "fév.", "mar.", "avr.", "mai", "jui.", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"HEPMX": "heure d’été du Pacifique mexicain", "WIT": "heure de l’Est indonésien", "BT": "heure du Bhoutan", "PDT": "heure d’été du Pacifique", "WEZ": "heure normale d’Europe de l’Ouest", "AWST": "heure normale de l’Ouest de l’Australie", "SAST": "heure normale d’Afrique méridionale", "ChST": "heure des Chamorro", "WARST": "heure d’été de l’Ouest argentin", "COT": "heure normale de Colombie", "SRT": "heure du Suriname", "PST": "heure normale du Pacifique nord-américain", "LHDT": "heure d’été de Lord Howe", "∅∅∅": "heure d’été de l’Amazonie", "ECT": "heure de l’Équateur", "EST": "heure normale de l’Est nord-américain", "MYT": "heure de la Malaisie", "HAT": "heure d’été de Terre-Neuve", "LHST": "heure normale de Lord Howe", "TMST": "heure d’été du Turkménistan", "WAST": "heure d’été d’Afrique de l’Ouest", "AEDT": "heure d’été de l’Est de l’Australie", "IST": "heure de l’Inde", "JST": "heure normale du Japon", "EDT": "heure d’été de l’Est", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HKT": "heure normale de Hong Kong", "NZST": "heure normale de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "BOT": "heure de Bolivie", "COST": "heure d’été de Colombie", "HECU": "heure d’été de Cuba", "MST": "heure normale de Macao", "UYST": "heure d’été de l’Uruguay", "HEEG": "heure d’été de l’Est du Groenland", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "ACWST": "heure normale du centre-ouest de l’Australie", "AEST": "heure normale de l’Est de l’Australie", "MDT": "heure d’été de Macao", "WIB": "heure de l’Ouest indonésien", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MEZ": "heure normale d’Europe centrale", "NZDT": "heure d’été de la Nouvelle-Zélande", "EAT": "heure normale d’Afrique de l’Est", "OEZ": "heure normale d’Europe de l’Est", "HNCU": "heure normale de Cuba", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WESZ": "heure d’été d’Europe de l’Ouest", "HNOG": "heure normale de l’Ouest du Groenland", "HEOG": "heure d’été de l’Ouest du Groenland", "HKST": "heure d’été de Hong Kong", "AWDT": "heure d’été de l’Ouest de l’Australie", "CHADT": "heure d’été des îles Chatham", "HNEG": "heure normale de l’Est du Groenland", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HNPMX": "heure normale du Pacifique mexicain", "CDT": "heure d’été du Centre", "UYT": "heure normale de l’Uruguay", "GFT": "heure de la Guyane française", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "JDT": "heure d’été du Japon", "TMT": "heure normale du Turkménistan", "OESZ": "heure d’été d’Europe de l’Est", "WITA": "heure du Centre indonésien", "MESZ": "heure d’été d’Europe centrale", "AKST": "heure normale de l’Alaska", "CST": "heure normale du centre nord-américain", "VET": "heure du Venezuela", "CLST": "heure d’été du Chili", "WART": "heure normale de l’Ouest argentin", "AST": "heure normale de l’Atlantique", "ADT": "heure d’été de l’Atlantique", "ARST": "heure d’été de l’Argentine", "AKDT": "heure d’été de l’Alaska", "GYT": "heure du Guyana", "CHAST": "heure normale des îles Chatham", "ACST": "heure normale du centre de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "CAT": "heure normale d’Afrique centrale", "WAT": "heure normale d’Afrique de l’Ouest", "SGT": "heure de Singapour", "ACWDT": "heure d’été du centre-ouest de l’Australie", "ART": "heure normale d’Argentine", "GMT": "heure moyenne de Greenwich", "HNT": "heure normale de Terre-Neuve"},
++ locale: "fr_MA",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ group: ".",
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "jan.", "fév.", "mar.", "avr.", "mai", "jui.", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
++ periodsWide: []string{"a.m.", "p.m."},
++ timezones: map[string]string{"LHST": "LHST", "UYST": "UYST", "OEZ": "OEZ", "COST": "COST", "WIB": "WIB", "CDT": "CDT", "ChST": "ChST", "HAT": "HAT", "JDT": "JDT", "LHDT": "LHDT", "PDT": "PDT", "ACWDT": "ACWDT", "HNOG": "HNOG", "EST": "EST", "HNPM": "HNPM", "UYT": "UYT", "SGT": "SGT", "WAST": "WAST", "AKDT": "AKDT", "MST": "MST", "ARST": "ARST", "GMT": "GMT", "HKST": "HKST", "HECU": "HECU", "HNPMX": "HNPMX", "WESZ": "WESZ", "SRT": "SRT", "MESZ": "MESZ", "ACDT": "ACDT", "HENOMX": "HENOMX", "CHAST": "CHAST", "AKST": "AKST", "TMST": "TMST", "BOT": "BOT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "HADT": "HADT", "CHADT": "CHADT", "NZDT": "NZDT", "ADT": "ADT", "HAST": "HAST", "WEZ": "WEZ", "TMT": "TMT", "WARST": "WARST", "AST": "AST", "ACWST": "ACWST", "WART": "WART", "BT": "BT", "IST": "IST", "PST": "PST", "VET": "VET", "HNCU": "HNCU", "∅∅∅": "∅∅∅", "CLST": "CLST", "NZST": "NZST", "GFT": "GFT", "HNT": "HNT", "SAST": "SAST", "WAT": "WAT", "COT": "COT", "ECT": "ECT", "CST": "CST", "MYT": "MYT", "WITA": "WITA", "JST": "JST", "OESZ": "OESZ", "EDT": "EDT", "CLT": "CLT", "MDT": "MDT", "HEEG": "HEEG", "ACST": "ACST", "HEPM": "HEPM", "GYT": "GYT", "AEST": "AEST", "AEDT": "AEDT", "WIT": "WIT", "HEOG": "HEOG", "MEZ": "MEZ", "AWST": "AWST", "AWDT": "AWDT", "HEPMX": "HEPMX", "HKT": "HKT", "CAT": "CAT", "ART": "ART", "EAT": "EAT"},
+ }
+ }
+ 
+@@ -157,7 +133,7 @@ func (fr *fr_MA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_MA) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +143,7 @@ func (fr *fr_MA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_MA) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,75 +189,13 @@ func (fr *fr_MA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_MA' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_MA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_MA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_MA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_MA'
+@@ -289,56 +203,7 @@ func (fr *fr_MA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_MA'
+@@ -347,63 +212,7 @@ func (fr *fr_MA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_MA'
+@@ -411,27 +220,6 @@ func (fr *fr_MA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -440,17 +228,6 @@ func (fr *fr_MA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -459,17 +236,6 @@ func (fr *fr_MA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -478,19 +244,6 @@ func (fr *fr_MA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -499,19 +252,6 @@ func (fr *fr_MA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -520,26 +260,6 @@ func (fr *fr_MA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -548,30 +268,6 @@ func (fr *fr_MA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -580,34 +276,5 @@ func (fr *fr_MA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_MC/fr_MC.go b/fr_MC/fr_MC.go
+index 6467961..61c0488 100644
+--- a/fr_MC/fr_MC.go
++++ b/fr_MC/fr_MC.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_MC struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_MC' locale
+ func New() locales.Translator {
+ return &fr_MC{
+- locale: "fr_MC",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"JDT": "heure d’été du Japon", "BT": "heure du Bhoutan", "HNT": "heure normale de Terre-Neuve", "ART": "heure normale d’Argentine", "AEST": "heure normale de l’Est de l’Australie", "AWST": "heure normale de l’Ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "ECT": "heure de l’Équateur", "HNPMX": "heure normale du Pacifique mexicain", "AKDT": "heure d’été de l’Alaska", "HEOG": "heure d’été de l’Ouest du Groenland", "WAT": "heure normale d’Afrique de l’Ouest", "WAST": "heure d’été d’Afrique de l’Ouest", "OEZ": "heure normale d’Europe de l’Est", "AST": "heure normale de l’Atlantique", "WIB": "heure de l’Ouest indonésien", "WESZ": "heure d’été d’Europe de l’Ouest", "MESZ": "heure d’été d’Europe centrale", "LHDT": "heure d’été de Lord Howe", "ChST": "heure des Chamorro", "CST": "heure normale du centre nord-américain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HKT": "heure normale de Hong Kong", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "IST": "heure de l’Inde", "WARST": "heure d’été de l’Ouest argentin", "HNCU": "heure normale de Cuba", "HAT": "heure d’été de Terre-Neuve", "ARST": "heure d’été de l’Argentine", "JST": "heure normale du Japon", "GFT": "heure de la Guyane française", "TMST": "heure d’été du Turkménistan", "ACDT": "heure d’été du centre de l’Australie", "CDT": "heure d’été du Centre", "ADT": "heure d’été de l’Atlantique", "UYST": "heure d’été de l’Uruguay", "VET": "heure du Venezuela", "PST": "heure normale du Pacifique nord-américain", "BOT": "heure de Bolivie", "CAT": "heure normale d’Afrique centrale", "COST": "heure d’été de Colombie", "EST": "heure normale de l’Est nord-américain", "GYT": "heure du Guyana", "HNOG": "heure normale de l’Ouest du Groenland", "HEEG": "heure d’été de l’Est du Groenland", "LHST": "heure normale de Lord Howe", "SAST": "heure normale d’Afrique méridionale", "GMT": "heure moyenne de Greenwich", "SGT": "heure de Singapour", "MDT": "heure d’été de Macao", "HEPMX": "heure d’été du Pacifique mexicain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACWST": "heure normale du centre-ouest de l’Australie", "CLT": "heure normale du Chili", "∅∅∅": "heure d’été de l’Amazonie", "COT": "heure normale de Colombie", "AKST": "heure normale de l’Alaska", "UYT": "heure normale de l’Uruguay", "AWDT": "heure d’été de l’Ouest de l’Australie", "HKST": "heure d’été de Hong Kong", "HNEG": "heure normale de l’Est du Groenland", "TMT": "heure normale du Turkménistan", "EAT": "heure normale d’Afrique de l’Est", "NZST": "heure normale de la Nouvelle-Zélande", "NZDT": "heure d’été de la Nouvelle-Zélande", "OESZ": "heure d’été d’Europe de l’Est", "WART": "heure normale de l’Ouest argentin", "HECU": "heure d’été de Cuba", "CHADT": "heure d’été des îles Chatham", "MYT": "heure de la Malaisie", "SRT": "heure du Suriname", "PDT": "heure d’été du Pacifique", "CHAST": "heure normale des îles Chatham", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EDT": "heure d’été de l’Est", "MST": "heure normale de Macao", "WIT": "heure de l’Est indonésien", "WEZ": "heure normale d’Europe de l’Ouest", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "CLST": "heure d’été du Chili", "ACST": "heure normale du centre de l’Australie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "WITA": "heure du Centre indonésien", "HNPM": "heure normale de Saint-Pierre-et-Miquelon"},
++ locale: "fr_MC",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GYT": "GYT", "CLT": "CLT", "CDT": "CDT", "MST": "MST", "HEPM": "HEPM", "HNPMX": "HNPMX", "AKST": "AKST", "WESZ": "WESZ", "GFT": "GFT", "WITA": "WITA", "ECT": "ECT", "ADT": "ADT", "ACWST": "ACWST", "CHADT": "CHADT", "UYT": "UYT", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "LHST": "LHST", "HNCU": "HNCU", "HAT": "HAT", "CST": "CST", "ARST": "ARST", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "BT": "BT", "WEZ": "WEZ", "WARST": "WARST", "COT": "COT", "ChST": "ChST", "EAT": "EAT", "SGT": "SGT", "VET": "VET", "HNT": "HNT", "WIT": "WIT", "WIB": "WIB", "AST": "AST", "HENOMX": "HENOMX", "AEDT": "AEDT", "CHAST": "CHAST", "UYST": "UYST", "HKT": "HKT", "AWDT": "AWDT", "COST": "COST", "HECU": "HECU", "TMST": "TMST", "BOT": "BOT", "SRT": "SRT", "HADT": "HADT", "PDT": "PDT", "ACWDT": "ACWDT", "WART": "WART", "HNOG": "HNOG", "EST": "EST", "HKST": "HKST", "MEZ": "MEZ", "HNPM": "HNPM", "AEST": "AEST", "HEPMX": "HEPMX", "HAST": "HAST", "PST": "PST", "CLST": "CLST", "GMT": "GMT", "AWST": "AWST", "JST": "JST", "OESZ": "OESZ", "HEOG": "HEOG", "MDT": "MDT", "NZST": "NZST", "NZDT": "NZDT", "ART": "ART", "WAST": "WAST", "AKDT": "AKDT", "EDT": "EDT", "MESZ": "MESZ", "ACST": "ACST", "LHDT": "LHDT", "MYT": "MYT", "CAT": "CAT", "HNEG": "HNEG", "JDT": "JDT", "WAT": "WAT", "OEZ": "OEZ", "SAST": "SAST", "TMT": "TMT", "IST": "IST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_MC) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_MC) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_MC) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_MC) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_MC) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_MC) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_MC) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_MC' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_MC) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_MC' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_MC) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_MC'
+@@ -291,58 +200,7 @@ func (fr *fr_MC) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_MC'
+@@ -351,65 +209,7 @@ func (fr *fr_MC) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_MC'
+@@ -417,27 +217,6 @@ func (fr *fr_MC) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_MC) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_MC) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_MC) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_MC) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_MC) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_MC) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_MC) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_MF/fr_MF.go b/fr_MF/fr_MF.go
+index a5e5673..8e29fbd 100644
+--- a/fr_MF/fr_MF.go
++++ b/fr_MF/fr_MF.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_MF struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_MF' locale
+ func New() locales.Translator {
+ return &fr_MF{
+- locale: "fr_MF",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"HKT": "heure normale de Hong Kong", "ECT": "heure de l’Équateur", "AWST": "heure normale de l’Ouest de l’Australie", "WAT": "heure normale d’Afrique de l’Ouest", "OESZ": "heure d’été d’Europe de l’Est", "HECU": "heure d’été de Cuba", "WEZ": "heure normale d’Europe de l’Ouest", "LHST": "heure normale de Lord Howe", "LHDT": "heure d’été de Lord Howe", "CLST": "heure d’été du Chili", "HEEG": "heure d’été de l’Est du Groenland", "NZST": "heure normale de la Nouvelle-Zélande", "AKDT": "heure d’été de l’Alaska", "PST": "heure normale du Pacifique nord-américain", "PDT": "heure d’été du Pacifique", "MESZ": "heure d’été d’Europe centrale", "TMT": "heure normale du Turkménistan", "WARST": "heure d’été de l’Ouest argentin", "ART": "heure normale d’Argentine", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZDT": "heure d’été de la Nouvelle-Zélande", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HAT": "heure d’été de Terre-Neuve", "CAT": "heure normale d’Afrique centrale", "HNPMX": "heure normale du Pacifique mexicain", "EDT": "heure d’été de l’Est", "UYT": "heure normale de l’Uruguay", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "BT": "heure du Bhoutan", "SAST": "heure normale d’Afrique méridionale", "CLT": "heure normale du Chili", "ARST": "heure d’été de l’Argentine", "CST": "heure normale du centre nord-américain", "AST": "heure normale de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "HEOG": "heure d’été de l’Ouest du Groenland", "JDT": "heure d’été du Japon", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "WIB": "heure de l’Ouest indonésien", "ACST": "heure normale du centre de l’Australie", "OEZ": "heure normale d’Europe de l’Est", "MST": "heure normale de Macao", "HEPMX": "heure d’été du Pacifique mexicain", "VET": "heure du Venezuela", "WIT": "heure de l’Est indonésien", "SRT": "heure du Suriname", "ACWDT": "heure d’été du centre-ouest de l’Australie", "GFT": "heure de la Guyane française", "WART": "heure normale de l’Ouest argentin", "UYST": "heure d’été de l’Uruguay", "WITA": "heure du Centre indonésien", "HNEG": "heure normale de l’Est du Groenland", "HNCU": "heure normale de Cuba", "COT": "heure normale de Colombie", "WESZ": "heure d’été d’Europe de l’Ouest", "∅∅∅": "heure d’été de l’Amazonie", "ChST": "heure des Chamorro", "COST": "heure d’été de Colombie", "GMT": "heure moyenne de Greenwich", "HKST": "heure d’été de Hong Kong", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "ACDT": "heure d’été du centre de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "ADT": "heure d’été de l’Atlantique", "MYT": "heure de la Malaisie", "CHADT": "heure d’été des îles Chatham", "MEZ": "heure normale d’Europe centrale", "JST": "heure normale du Japon", "AKST": "heure normale de l’Alaska", "GYT": "heure du Guyana", "HNOG": "heure normale de l’Ouest du Groenland", "CHAST": "heure normale des îles Chatham", "SGT": "heure de Singapour", "EST": "heure normale de l’Est nord-américain", "WAST": "heure d’été d’Afrique de l’Ouest", "CDT": "heure d’été du Centre", "AWDT": "heure d’été de l’Ouest de l’Australie", "IST": "heure de l’Inde", "BOT": "heure de Bolivie", "AEST": "heure normale de l’Est de l’Australie", "TMST": "heure d’été du Turkménistan", "HAST": "heure normale d’Hawaii - Aléoutiennes", "AEDT": "heure d’été de l’Est de l’Australie", "MDT": "heure d’été de Macao", "ACWST": "heure normale du centre-ouest de l’Australie"},
++ locale: "fr_MF",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"UYT": "UYT", "HNT": "HNT", "∅∅∅": "∅∅∅", "LHDT": "LHDT", "MYT": "MYT", "HNCU": "HNCU", "WITA": "WITA", "ChST": "ChST", "ARST": "ARST", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "AKST": "AKST", "GFT": "GFT", "MEZ": "MEZ", "BOT": "BOT", "HADT": "HADT", "TMST": "TMST", "NZST": "NZST", "NZDT": "NZDT", "MDT": "MDT", "HNEG": "HNEG", "VET": "VET", "EST": "EST", "MST": "MST", "ACST": "ACST", "PST": "PST", "HAST": "HAST", "AWDT": "AWDT", "HNPM": "HNPM", "IST": "IST", "WEZ": "WEZ", "WESZ": "WESZ", "SGT": "SGT", "HNPMX": "HNPMX", "HENOMX": "HENOMX", "WART": "WART", "COST": "COST", "AKDT": "AKDT", "HKST": "HKST", "TMT": "TMT", "JDT": "JDT", "ECT": "ECT", "LHST": "LHST", "ACWDT": "ACWDT", "HECU": "HECU", "SAST": "SAST", "ART": "ART", "JST": "JST", "AEST": "AEST", "AEDT": "AEDT", "CHADT": "CHADT", "WAT": "WAT", "OEZ": "OEZ", "HAT": "HAT", "CST": "CST", "HEPM": "HEPM", "HEPMX": "HEPMX", "COT": "COT", "EDT": "EDT", "CLST": "CLST", "GMT": "GMT", "UYST": "UYST", "EAT": "EAT", "HEEG": "HEEG", "OESZ": "OESZ", "WIT": "WIT", "GYT": "GYT", "HKT": "HKT", "CLT": "CLT", "SRT": "SRT", "ADT": "ADT", "CDT": "CDT", "HEOG": "HEOG", "HNOG": "HNOG", "AWST": "AWST", "PDT": "PDT", "BT": "BT", "CHAST": "CHAST", "WARST": "WARST", "MESZ": "MESZ", "WAST": "WAST", "CAT": "CAT", "WIB": "WIB", "AST": "AST", "ACWST": "ACWST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_MF) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_MF) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_MF) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_MF) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_MF) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_MF) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_MF) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_MF' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_MF) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_MF' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_MF) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_MF'
+@@ -291,58 +200,7 @@ func (fr *fr_MF) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_MF'
+@@ -351,65 +209,7 @@ func (fr *fr_MF) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_MF'
+@@ -417,27 +217,6 @@ func (fr *fr_MF) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_MF) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_MF) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_MF) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_MF) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_MF) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_MF) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_MF) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_MG/fr_MG.go b/fr_MG/fr_MG.go
+index ab797d8..0fc6963 100644
+--- a/fr_MG/fr_MG.go
++++ b/fr_MG/fr_MG.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_MG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_MG' locale
+ func New() locales.Translator {
+ return &fr_MG{
+- locale: "fr_MG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "Ar", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"HAST": "heure normale d’Hawaii - Aléoutiennes", "WITA": "heure du Centre indonésien", "MESZ": "heure d’été d’Europe centrale", "LHDT": "heure d’été de Lord Howe", "EDT": "heure d’été de l’Est", "PST": "heure normale du Pacifique nord-américain", "AEST": "heure normale de l’Est de l’Australie", "HKT": "heure normale de Hong Kong", "COST": "heure d’été de Colombie", "HAT": "heure d’été de Terre-Neuve", "HNCU": "heure normale de Cuba", "CDT": "heure d’été du Centre", "TMST": "heure d’été du Turkménistan", "WAST": "heure d’été d’Afrique de l’Ouest", "MYT": "heure de la Malaisie", "WEZ": "heure normale d’Europe de l’Ouest", "CLT": "heure normale du Chili", "HNEG": "heure normale de l’Est du Groenland", "BOT": "heure de Bolivie", "EAT": "heure normale d’Afrique de l’Est", "UYST": "heure d’été de l’Uruguay", "HNT": "heure normale de Terre-Neuve", "CHAST": "heure normale des îles Chatham", "CHADT": "heure d’été des îles Chatham", "SAST": "heure normale d’Afrique méridionale", "ChST": "heure des Chamorro", "TMT": "heure normale du Turkménistan", "WARST": "heure d’été de l’Ouest argentin", "MST": "heure normale de Macao", "ART": "heure normale d’Argentine", "AWDT": "heure d’été de l’Ouest de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "OEZ": "heure normale d’Europe de l’Est", "SRT": "heure du Suriname", "PDT": "heure d’été du Pacifique", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CLST": "heure d’été du Chili", "GFT": "heure de la Guyane française", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "MDT": "heure d’été de Macao", "UYT": "heure normale de l’Uruguay", "AKDT": "heure d’été de l’Alaska", "ADT": "heure d’été de l’Atlantique", "WESZ": "heure d’été d’Europe de l’Ouest", "AWST": "heure normale de l’Ouest de l’Australie", "HKST": "heure d’été de Hong Kong", "ACST": "heure normale du centre de l’Australie", "HNPMX": "heure normale du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "VET": "heure du Venezuela", "BT": "heure du Bhoutan", "HEOG": "heure d’été de l’Ouest du Groenland", "LHST": "heure normale de Lord Howe", "NZST": "heure normale de la Nouvelle-Zélande", "∅∅∅": "heure d’été du Pérou", "CAT": "heure normale d’Afrique centrale", "WART": "heure normale de l’Ouest argentin", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "GMT": "heure moyenne de Greenwich", "WIB": "heure de l’Ouest indonésien", "HEPMX": "heure d’été du Pacifique mexicain", "CST": "heure normale du centre nord-américain", "WIT": "heure de l’Est indonésien", "ARST": "heure d’été de l’Argentine", "HNOG": "heure normale de l’Ouest du Groenland", "NZDT": "heure d’été de la Nouvelle-Zélande", "OESZ": "heure d’été d’Europe de l’Est", "COT": "heure normale de Colombie", "HECU": "heure d’été de Cuba", "EST": "heure normale de l’Est nord-américain", "HEEG": "heure d’été de l’Est du Groenland", "WAT": "heure normale d’Afrique de l’Ouest", "ECT": "heure de l’Équateur", "GYT": "heure du Guyana", "ACWST": "heure normale du centre-ouest de l’Australie", "IST": "heure de l’Inde", "ACDT": "heure d’été du centre de l’Australie", "SGT": "heure de Singapour", "AEDT": "heure d’été de l’Est de l’Australie", "MEZ": "heure normale d’Europe centrale", "JST": "heure normale du Japon", "JDT": "heure d’été du Japon", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "AKST": "heure normale de l’Alaska", "HADT": "heure d’été d’Hawaii - Aléoutiennes"},
++ locale: "fr_MG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "Ar", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GFT": "GFT", "TMT": "TMT", "CLST": "CLST", "ADT": "ADT", "AWDT": "AWDT", "ACWST": "ACWST", "HAT": "HAT", "WART": "WART", "AST": "AST", "PDT": "PDT", "HNPM": "HNPM", "ACWDT": "ACWDT", "SAST": "SAST", "HNEG": "HNEG", "LHDT": "LHDT", "JDT": "JDT", "VET": "VET", "HEEG": "HEEG", "WIT": "WIT", "ART": "ART", "SRT": "SRT", "COT": "COT", "HEOG": "HEOG", "GYT": "GYT", "LHST": "LHST", "CHADT": "CHADT", "HECU": "HECU", "HEPMX": "HEPMX", "WAST": "WAST", "HKT": "HKT", "CLT": "CLT", "MEZ": "MEZ", "MESZ": "MESZ", "ACST": "ACST", "WEZ": "WEZ", "EDT": "EDT", "ARST": "ARST", "EAT": "EAT", "MYT": "MYT", "BT": "BT", "HNOG": "HNOG", "HKST": "HKST", "WITA": "WITA", "MDT": "MDT", "AWST": "AWST", "∅∅∅": "∅∅∅", "IST": "IST", "CHAST": "CHAST", "CAT": "CAT", "BOT": "BOT", "WARST": "WARST", "NZST": "NZST", "PST": "PST", "UYT": "UYT", "UYST": "UYST", "WESZ": "WESZ", "WIB": "WIB", "HADT": "HADT", "ACDT": "ACDT", "HENOMX": "HENOMX", "HEPM": "HEPM", "JST": "JST", "COST": "COST", "TMST": "TMST", "GMT": "GMT", "MST": "MST", "ChST": "ChST", "AEDT": "AEDT", "SGT": "SGT", "HNCU": "HNCU", "HNPMX": "HNPMX", "OEZ": "OEZ", "HNT": "HNT", "CST": "CST", "HNNOMX": "HNNOMX", "AKST": "AKST", "AKDT": "AKDT", "OESZ": "OESZ", "CDT": "CDT", "NZDT": "NZDT", "ECT": "ECT", "WAT": "WAT", "AEST": "AEST", "EST": "EST", "HAST": "HAST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_MG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_MG) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_MG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_MG) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_MG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_MG) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_MG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_MG' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_MG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_MG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_MG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_MG'
+@@ -291,58 +200,7 @@ func (fr *fr_MG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_MG'
+@@ -351,65 +209,7 @@ func (fr *fr_MG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_MG'
+@@ -417,27 +217,6 @@ func (fr *fr_MG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_MG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_MG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_MG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_MG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_MG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_MG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_MG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_ML/fr_ML.go b/fr_ML/fr_ML.go
+index 54b0991..94a937c 100644
+--- a/fr_ML/fr_ML.go
++++ b/fr_ML/fr_ML.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_ML struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_ML' locale
+ func New() locales.Translator {
+ return &fr_ML{
+- locale: "fr_ML",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"TMST": "heure d’été du Turkménistan", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "SGT": "heure de Singapour", "UYT": "heure normale de l’Uruguay", "AKDT": "heure d’été de l’Alaska", "MST": "heure normale des Rocheuses", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HKST": "heure d’été de Hong Kong", "HEPMX": "heure d’été du Pacifique mexicain", "WEZ": "heure normale d’Europe de l’Ouest", "WAT": "heure normale d’Afrique de l’Ouest", "PDT": "heure d’été du Pacifique", "LHST": "heure normale de Lord Howe", "JST": "heure normale du Japon", "EST": "heure normale de l’Est nord-américain", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACWST": "heure normale du centre-ouest de l’Australie", "CLT": "heure normale du Chili", "WARST": "heure d’été de l’Ouest argentin", "AWST": "heure normale de l’Ouest de l’Australie", "HKT": "heure normale de Hong Kong", "LHDT": "heure d’été de Lord Howe", "EDT": "heure d’été de l’Est", "NZDT": "heure d’été de la Nouvelle-Zélande", "SAST": "heure normale d’Afrique méridionale", "BOT": "heure de Bolivie", "CST": "heure normale du centre nord-américain", "ADT": "heure d’été de l’Atlantique", "VET": "heure du Venezuela", "WIT": "heure de l’Est indonésien", "SRT": "heure du Suriname", "CAT": "heure normale d’Afrique centrale", "BT": "heure du Bhoutan", "ARST": "heure d’été de l’Argentine", "AEST": "heure normale de l’Est de l’Australie", "MESZ": "heure d’été d’Europe centrale", "∅∅∅": "heure d’été de l’Amazonie", "HEEG": "heure d’été de l’Est du Groenland", "OEZ": "heure normale d’Europe de l’Est", "HEOG": "heure d’été de l’Ouest du Groenland", "MEZ": "heure normale d’Europe centrale", "CHAST": "heure normale des îles Chatham", "CLST": "heure d’été du Chili", "HNEG": "heure normale de l’Est du Groenland", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "HECU": "heure d’été de Cuba", "EAT": "heure normale d’Afrique de l’Est", "WAST": "heure d’été d’Afrique de l’Ouest", "AST": "heure normale de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "HAT": "heure d’été de Terre-Neuve", "ART": "heure normale d’Argentine", "ACST": "heure normale du centre de l’Australie", "UYST": "heure d’été de l’Uruguay", "GYT": "heure du Guyana", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CHADT": "heure d’été des îles Chatham", "TMT": "heure normale du Turkménistan", "OESZ": "heure d’été d’Europe de l’Est", "HNCU": "heure normale de Cuba", "AKST": "heure normale de l’Alaska", "MDT": "heure d’été des Rocheuses", "AEDT": "heure d’été de l’Est de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "GFT": "heure de la Guyane française", "WESZ": "heure d’été d’Europe de l’Ouest", "WITA": "heure du Centre indonésien", "COT": "heure normale de Colombie", "GMT": "heure moyenne de Greenwich", "WART": "heure normale de l’Ouest argentin", "CDT": "heure d’été du Centre", "HNOG": "heure normale de l’Ouest du Groenland", "IST": "heure de l’Inde", "JDT": "heure d’été du Japon", "ECT": "heure de l’Équateur", "ACDT": "heure d’été du centre de l’Australie", "COST": "heure d’été de Colombie", "HNPMX": "heure normale du Pacifique mexicain", "MYT": "heure de la Malaisie", "WIB": "heure de l’Ouest indonésien", "PST": "heure normale du Pacifique nord-américain", "AWDT": "heure d’été de l’Ouest de l’Australie", "ChST": "heure des Chamorro"},
++ locale: "fr_ML",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"OESZ": "OESZ", "WARST": "WARST", "GYT": "GYT", "EST": "EST", "ChST": "ChST", "JST": "JST", "SGT": "SGT", "CAT": "CAT", "NZDT": "NZDT", "AWST": "AWST", "PST": "PST", "UYT": "UYT", "GFT": "GFT", "∅∅∅": "∅∅∅", "HAST": "HAST", "MEZ": "MEZ", "SAST": "SAST", "COT": "COT", "MYT": "MYT", "HEPMX": "HEPMX", "WITA": "WITA", "MST": "MST", "HECU": "HECU", "WAST": "WAST", "WART": "WART", "WIT": "WIT", "HEOG": "HEOG", "ADT": "ADT", "JDT": "JDT", "ACWST": "ACWST", "HNPMX": "HNPMX", "CLST": "CLST", "ART": "ART", "ARST": "ARST", "MESZ": "MESZ", "ACWDT": "ACWDT", "NZST": "NZST", "SRT": "SRT", "PDT": "PDT", "AKST": "AKST", "AKDT": "AKDT", "TMT": "TMT", "TMST": "TMST", "CST": "CST", "BOT": "BOT", "ACST": "ACST", "ACDT": "ACDT", "HEEG": "HEEG", "HKST": "HKST", "EAT": "EAT", "AWDT": "AWDT", "LHST": "LHST", "HNCU": "HNCU", "EDT": "EDT", "HADT": "HADT", "HNNOMX": "HNNOMX", "HAT": "HAT", "COST": "COST", "WIB": "WIB", "HENOMX": "HENOMX", "BT": "BT", "AEST": "AEST", "WESZ": "WESZ", "HNOG": "HNOG", "LHDT": "LHDT", "HNPM": "HNPM", "IST": "IST", "AEDT": "AEDT", "UYST": "UYST", "WEZ": "WEZ", "CLT": "CLT", "ECT": "ECT", "CHAST": "CHAST", "CHADT": "CHADT", "WAT": "WAT", "OEZ": "OEZ", "HNT": "HNT", "HKT": "HKT", "CDT": "CDT", "AST": "AST", "GMT": "GMT", "HNEG": "HNEG", "VET": "VET", "MDT": "MDT", "HEPM": "HEPM"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_ML) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_ML) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_ML) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_ML) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_ML) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_ML) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_ML) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_ML' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_ML) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_ML' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_ML) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_ML'
+@@ -291,58 +200,7 @@ func (fr *fr_ML) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_ML'
+@@ -351,65 +209,7 @@ func (fr *fr_ML) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_ML'
+@@ -417,27 +217,6 @@ func (fr *fr_ML) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_ML) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_ML) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_ML) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_ML) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_ML) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_ML) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_ML) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_MQ/fr_MQ.go b/fr_MQ/fr_MQ.go
+index 423db2c..3e9e269 100644
+--- a/fr_MQ/fr_MQ.go
++++ b/fr_MQ/fr_MQ.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_MQ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_MQ' locale
+ func New() locales.Translator {
+ return &fr_MQ{
+- locale: "fr_MQ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"ECT": "heure de l’Équateur", "HEPMX": "heure d’été du Pacifique mexicain", "MYT": "heure de la Malaisie", "AWDT": "heure d’été de l’Ouest de l’Australie", "LHDT": "heure d’été de Lord Howe", "CHADT": "heure d’été des îles Chatham", "CLT": "heure normale du Chili", "OEZ": "heure normale d’Europe de l’Est", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "WIT": "heure de l’Est indonésien", "WEZ": "heure normale d’Europe de l’Ouest", "CHAST": "heure normale des îles Chatham", "AST": "heure normale de l’Atlantique", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "SAST": "heure normale d’Afrique méridionale", "HNEG": "heure normale de l’Est du Groenland", "TMT": "heure normale du Turkménistan", "WAT": "heure normale d’Afrique de l’Ouest", "EST": "heure normale de l’Est nord-américain", "UYST": "heure d’été de l’Uruguay", "PST": "heure normale du Pacifique nord-américain", "HEEG": "heure d’été de l’Est du Groenland", "TMST": "heure d’été du Turkménistan", "ACDT": "heure d’été du centre de l’Australie", "ART": "heure normale d’Argentine", "ARST": "heure d’été de l’Argentine", "NZST": "heure normale de la Nouvelle-Zélande", "ChST": "heure des Chamorro", "GMT": "heure moyenne de Greenwich", "ACWST": "heure normale du centre-ouest de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "MESZ": "heure d’été d’Europe centrale", "∅∅∅": "heure d’été de l’Amazonie", "WAST": "heure d’été d’Afrique de l’Ouest", "MDT": "heure d’été de Macao", "UYT": "heure normale de l’Uruguay", "SRT": "heure du Suriname", "ADT": "heure d’été de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "HAT": "heure d’été de Terre-Neuve", "WITA": "heure du Centre indonésien", "OESZ": "heure d’été d’Europe de l’Est", "COT": "heure normale de Colombie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "MST": "heure normale de Macao", "HAST": "heure normale d’Hawaii - Aléoutiennes", "AKDT": "heure d’été de l’Alaska", "PDT": "heure d’été du Pacifique", "AEDT": "heure d’été de l’Est de l’Australie", "HKST": "heure d’été de Hong Kong", "LHST": "heure normale de Lord Howe", "HECU": "heure d’été de Cuba", "WIB": "heure de l’Ouest indonésien", "HNOG": "heure normale de l’Ouest du Groenland", "CDT": "heure d’été du Centre", "AWST": "heure normale de l’Ouest de l’Australie", "JST": "heure normale du Japon", "BOT": "heure de Bolivie", "GFT": "heure de la Guyane française", "WART": "heure normale de l’Ouest argentin", "HNPMX": "heure normale du Pacifique mexicain", "CST": "heure normale du centre nord-américain", "CLST": "heure d’été du Chili", "JDT": "heure d’été du Japon", "WARST": "heure d’été de l’Ouest argentin", "EDT": "heure d’été de l’Est", "VET": "heure du Venezuela", "HNCU": "heure normale de Cuba", "IST": "heure de l’Inde", "ACST": "heure normale du centre de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "BT": "heure du Bhoutan", "HEOG": "heure d’été de l’Ouest du Groenland", "NZDT": "heure d’été de la Nouvelle-Zélande", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "CAT": "heure normale d’Afrique centrale", "COST": "heure d’été de Colombie", "SGT": "heure de Singapour", "GYT": "heure du Guyana", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AEST": "heure normale de l’Est de l’Australie", "AKST": "heure normale de l’Alaska", "WESZ": "heure d’été d’Europe de l’Ouest", "HKT": "heure normale de Hong Kong", "MEZ": "heure normale d’Europe centrale"},
++ locale: "fr_MQ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"NZST": "NZST", "CHADT": "CHADT", "OEZ": "OEZ", "HAT": "HAT", "TMT": "TMT", "ARST": "ARST", "MESZ": "MESZ", "HNEG": "HNEG", "HNCU": "HNCU", "WITA": "WITA", "HENOMX": "HENOMX", "AEST": "AEST", "PST": "PST", "WAST": "WAST", "CLST": "CLST", "AST": "AST", "LHST": "LHST", "AEDT": "AEDT", "HEPMX": "HEPMX", "WARST": "WARST", "CST": "CST", "SRT": "SRT", "HADT": "HADT", "HEEG": "HEEG", "AWST": "AWST", "IST": "IST", "EDT": "EDT", "ChST": "ChST", "HECU": "HECU", "AKST": "AKST", "NZDT": "NZDT", "ADT": "ADT", "HNPM": "HNPM", "PDT": "PDT", "WEZ": "WEZ", "AKDT": "AKDT", "HNOG": "HNOG", "ART": "ART", "HNNOMX": "HNNOMX", "SGT": "SGT", "HKST": "HKST", "HAST": "HAST", "ACST": "ACST", "UYT": "UYT", "HNPMX": "HNPMX", "WESZ": "WESZ", "WIT": "WIT", "LHDT": "LHDT", "VET": "VET", "SAST": "SAST", "HKT": "HKT", "MST": "MST", "GMT": "GMT", "ACWDT": "ACWDT", "UYST": "UYST", "EST": "EST", "∅∅∅": "∅∅∅", "ECT": "ECT", "BOT": "BOT", "JST": "JST", "JDT": "JDT", "WAT": "WAT", "GFT": "GFT", "WART": "WART", "HEOG": "HEOG", "COT": "COT", "CAT": "CAT", "CLT": "CLT", "CDT": "CDT", "AWDT": "AWDT", "HNT": "HNT", "GYT": "GYT", "TMST": "TMST", "MEZ": "MEZ", "MYT": "MYT", "ACWST": "ACWST", "BT": "BT", "OESZ": "OESZ", "COST": "COST", "WIB": "WIB", "MDT": "MDT", "EAT": "EAT", "HEPM": "HEPM", "ACDT": "ACDT", "CHAST": "CHAST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_MQ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_MQ) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_MQ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_MQ) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_MQ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_MQ) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_MQ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_MQ' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_MQ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_MQ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_MQ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_MQ'
+@@ -291,58 +200,7 @@ func (fr *fr_MQ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_MQ'
+@@ -351,65 +209,7 @@ func (fr *fr_MQ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_MQ'
+@@ -417,27 +217,6 @@ func (fr *fr_MQ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_MQ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_MQ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_MQ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_MQ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_MQ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_MQ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_MQ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_MR/fr_MR.go b/fr_MR/fr_MR.go
+index c9d5fca..2592227 100644
+--- a/fr_MR/fr_MR.go
++++ b/fr_MR/fr_MR.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_MR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_MR' locale
+ func New() locales.Translator {
+ return &fr_MR{
+- locale: "fr_MR",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "UM", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"AEST": "heure normale de l’Est de l’Australie", "WITA": "heure du Centre indonésien", "CAT": "heure normale d’Afrique centrale", "COST": "heure d’été de Colombie", "ACWST": "heure normale du centre-ouest de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "SAST": "heure normale d’Afrique méridionale", "ChST": "heure des Chamorro", "WESZ": "heure d’été d’Europe de l’Ouest", "OEZ": "heure normale d’Europe de l’Est", "EDT": "heure d’été de l’Est", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HECU": "heure d’été de Cuba", "MST": "heure normale de Macao", "MYT": "heure de la Malaisie", "UYT": "heure normale de l’Uruguay", "AKST": "heure normale de l’Alaska", "WAST": "heure d’été d’Afrique de l’Ouest", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "MESZ": "heure d’été d’Europe centrale", "CLT": "heure normale du Chili", "NZST": "heure normale de la Nouvelle-Zélande", "TMST": "heure d’été du Turkménistan", "WART": "heure normale de l’Ouest argentin", "HNOG": "heure normale de l’Ouest du Groenland", "LHDT": "heure d’été de Lord Howe", "AWDT": "heure d’été de l’Ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "LHST": "heure normale de Lord Howe", "WARST": "heure d’été de l’Ouest argentin", "HEPMX": "heure d’été du Pacifique mexicain", "VET": "heure du Venezuela", "CST": "heure normale du centre nord-américain", "BT": "heure du Bhoutan", "WIB": "heure de l’Ouest indonésien", "HNT": "heure normale de Terre-Neuve", "HKT": "heure normale de Hong Kong", "BOT": "heure de Bolivie", "HNCU": "heure normale de Cuba", "EST": "heure normale de l’Est nord-américain", "AKDT": "heure d’été de l’Alaska", "CDT": "heure d’été du Centre", "ADT": "heure d’été de l’Atlantique", "SRT": "heure du Suriname", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "OESZ": "heure d’été d’Europe de l’Est", "MDT": "heure d’été de Macao", "GYT": "heure du Guyana", "NZDT": "heure d’été de la Nouvelle-Zélande", "CLST": "heure d’été du Chili", "HNEG": "heure normale de l’Est du Groenland", "WEZ": "heure normale d’Europe de l’Ouest", "TMT": "heure normale du Turkménistan", "ACST": "heure normale du centre de l’Australie", "SGT": "heure de Singapour", "UYST": "heure d’été de l’Uruguay", "WIT": "heure de l’Est indonésien", "HEOG": "heure d’été de l’Ouest du Groenland", "PDT": "heure d’été du Pacifique", "HAT": "heure d’été de Terre-Neuve", "AWST": "heure normale de l’Ouest de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "∅∅∅": "heure d’été du Pérou", "HNPMX": "heure normale du Pacifique mexicain", "AST": "heure normale de l’Atlantique", "GFT": "heure de la Guyane française", "ACDT": "heure d’été du centre de l’Australie", "CHADT": "heure d’été des îles Chatham", "JST": "heure normale du Japon", "JDT": "heure d’été du Japon", "COT": "heure normale de Colombie", "ART": "heure normale d’Argentine", "EAT": "heure normale d’Afrique de l’Est", "WAT": "heure normale d’Afrique de l’Ouest", "ECT": "heure de l’Équateur", "IST": "heure de l’Inde", "HEEG": "heure d’été de l’Est du Groenland", "GMT": "heure moyenne de Greenwich", "PST": "heure normale du Pacifique nord-américain", "HKST": "heure d’été de Hong Kong", "CHAST": "heure normale des îles Chatham", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ACWDT": "heure d’été du centre-ouest de l’Australie", "ARST": "heure d’été de l’Argentine"},
++ locale: "fr_MR",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "UM", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WAST": "WAST", "WART": "WART", "CLST": "CLST", "NZST": "NZST", "GMT": "GMT", "ChST": "ChST", "SRT": "SRT", "HAST": "HAST", "WARST": "WARST", "TMST": "TMST", "HNNOMX": "HNNOMX", "UYST": "UYST", "HEPMX": "HEPMX", "HAT": "HAT", "COT": "COT", "MDT": "MDT", "HNEG": "HNEG", "IST": "IST", "PDT": "PDT", "HECU": "HECU", "OEZ": "OEZ", "JST": "JST", "UYT": "UYT", "BT": "BT", "ACWDT": "ACWDT", "GYT": "GYT", "NZDT": "NZDT", "JDT": "JDT", "WEZ": "WEZ", "MESZ": "MESZ", "HEEG": "HEEG", "HNPM": "HNPM", "VET": "VET", "EST": "EST", "CLT": "CLT", "LHDT": "LHDT", "WIT": "WIT", "EDT": "EDT", "MST": "MST", "MEZ": "MEZ", "HENOMX": "HENOMX", "MYT": "MYT", "AKST": "AKST", "HNOG": "HNOG", "WIB": "WIB", "AST": "AST", "HEPM": "HEPM", "CHADT": "CHADT", "COST": "COST", "ADT": "ADT", "ART": "ART", "AEST": "AEST", "PST": "PST", "SGT": "SGT", "HNCU": "HNCU", "AKDT": "AKDT", "SAST": "SAST", "HKT": "HKT", "WITA": "WITA", "OESZ": "OESZ", "GFT": "GFT", "CAT": "CAT", "CDT": "CDT", "WESZ": "WESZ", "HNT": "HNT", "HKST": "HKST", "HADT": "HADT", "ACDT": "ACDT", "AEDT": "AEDT", "CHAST": "CHAST", "ACWST": "ACWST", "WAT": "WAT", "HEOG": "HEOG", "TMT": "TMT", "CST": "CST", "BOT": "BOT", "EAT": "EAT", "ACST": "ACST", "AWST": "AWST", "AWDT": "AWDT", "LHST": "LHST", "HNPMX": "HNPMX", "∅∅∅": "∅∅∅", "ECT": "ECT", "ARST": "ARST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_MR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_MR) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_MR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_MR) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_MR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_MR) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_MR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_MR' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_MR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_MR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_MR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_MR'
+@@ -291,58 +200,7 @@ func (fr *fr_MR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_MR'
+@@ -351,65 +209,7 @@ func (fr *fr_MR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_MR'
+@@ -417,27 +217,6 @@ func (fr *fr_MR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_MR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_MR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_MR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/fr_MU/fr_MU.go b/fr_MU/fr_MU.go
+index 09ac44a..5be904f 100644
+--- a/fr_MU/fr_MU.go
++++ b/fr_MU/fr_MU.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_MU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_MU' locale
+ func New() locales.Translator {
+ return &fr_MU{
+- locale: "fr_MU",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "Rs", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"CAT": "heure normale d’Afrique centrale", "WART": "heure normale de l’Ouest argentin", "GYT": "heure du Guyana", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MESZ": "heure d’été d’Europe centrale", "LHDT": "heure d’été de Lord Howe", "CLST": "heure d’été du Chili", "WAT": "heure normale d’Afrique de l’Ouest", "WAST": "heure d’été d’Afrique de l’Ouest", "WIT": "heure de l’Est indonésien", "WEZ": "heure normale d’Europe de l’Ouest", "AWDT": "heure d’été de l’Ouest de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "JDT": "heure d’été du Japon", "OESZ": "heure d’été d’Europe de l’Est", "HNPMX": "heure normale du Pacifique mexicain", "HEPMX": "heure d’été du Pacifique mexicain", "EST": "heure normale de l’Est nord-américain", "MYT": "heure de la Malaisie", "PST": "heure normale du Pacifique nord-américain", "HECU": "heure d’été de Cuba", "PDT": "heure d’été du Pacifique", "EAT": "heure normale d’Afrique de l’Est", "HAST": "heure normale d’Hawaii - Aléoutiennes", "AEDT": "heure d’été de l’Est de l’Australie", "TMT": "heure normale du Turkménistan", "UYST": "heure d’été de l’Uruguay", "ACWST": "heure normale du centre-ouest de l’Australie", "HEOG": "heure d’été de l’Ouest du Groenland", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "COST": "heure d’été de Colombie", "HNCU": "heure normale de Cuba", "∅∅∅": "heure d’été des Açores", "AKST": "heure normale de l’Alaska", "WESZ": "heure d’été d’Europe de l’Ouest", "HKT": "heure normale de Hong Kong", "ACST": "heure normale du centre de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "OEZ": "heure normale d’Europe de l’Est", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HNOG": "heure normale de l’Ouest du Groenland", "CHAST": "heure normale des îles Chatham", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EDT": "heure d’été de l’Est", "MST": "heure normale de Macao", "AKDT": "heure d’été de l’Alaska", "AST": "heure normale de l’Atlantique", "SAST": "heure normale d’Afrique méridionale", "BOT": "heure de Bolivie", "GMT": "heure moyenne de Greenwich", "ART": "heure normale d’Argentine", "JST": "heure normale du Japon", "HNEG": "heure normale de l’Est du Groenland", "ChST": "heure des Chamorro", "HNT": "heure normale de Terre-Neuve", "HEEG": "heure d’été de l’Est du Groenland", "BT": "heure du Bhoutan", "SRT": "heure du Suriname", "AWST": "heure normale de l’Ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "LHST": "heure normale de Lord Howe", "GFT": "heure de la Guyane française", "COT": "heure normale de Colombie", "UYT": "heure normale de l’Uruguay", "WIB": "heure de l’Ouest indonésien", "HAT": "heure d’été de Terre-Neuve", "ARST": "heure d’été de l’Argentine", "WITA": "heure du Centre indonésien", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CLT": "heure normale du Chili", "MDT": "heure d’été de Macao", "VET": "heure du Venezuela", "CHADT": "heure d’été des îles Chatham", "TMST": "heure d’été du Turkménistan", "SGT": "heure de Singapour", "CST": "heure normale du centre nord-américain", "CDT": "heure d’été du Centre", "ADT": "heure d’été de l’Atlantique", "IST": "heure de l’Inde", "ECT": "heure de l’Équateur", "WARST": "heure d’été de l’Ouest argentin", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HKST": "heure d’été de Hong Kong", "AEST": "heure normale de l’Est de l’Australie", "MEZ": "heure normale d’Europe centrale"},
++ locale: "fr_MU",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "Rs", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"PDT": "PDT", "AKST": "AKST", "HAT": "HAT", "ECT": "ECT", "MYT": "MYT", "ChST": "ChST", "JST": "JST", "HNPM": "HNPM", "WARST": "WARST", "CAT": "CAT", "MST": "MST", "AST": "AST", "NZST": "NZST", "EAT": "EAT", "HAST": "HAST", "LHST": "LHST", "LHDT": "LHDT", "EST": "EST", "HKST": "HKST", "WIB": "WIB", "SRT": "SRT", "HNOG": "HNOG", "HKT": "HKT", "TMT": "TMT", "TMST": "TMST", "WITA": "WITA", "AEDT": "AEDT", "UYST": "UYST", "AKDT": "AKDT", "COST": "COST", "HNNOMX": "HNNOMX", "CHADT": "CHADT", "IST": "IST", "WEZ": "WEZ", "WESZ": "WESZ", "CLST": "CLST", "HADT": "HADT", "OESZ": "OESZ", "EDT": "EDT", "CLT": "CLT", "WIT": "WIT", "HNEG": "HNEG", "AWST": "AWST", "AEST": "AEST", "CHAST": "CHAST", "HEPMX": "HEPMX", "SGT": "SGT", "HECU": "HECU", "MDT": "MDT", "NZDT": "NZDT", "MESZ": "MESZ", "ACDT": "ACDT", "UYT": "UYT", "∅∅∅": "∅∅∅", "ACWST": "ACWST", "SAST": "SAST", "CDT": "CDT", "ADT": "ADT", "BOT": "BOT", "HEEG": "HEEG", "HENOMX": "HENOMX", "AWDT": "AWDT", "PST": "PST", "WAT": "WAT", "GFT": "GFT", "HEPM": "HEPM", "HNT": "HNT", "GMT": "GMT", "MEZ": "MEZ", "ACST": "ACST", "ACWDT": "ACWDT", "HNCU": "HNCU", "CST": "CST", "HNPMX": "HNPMX", "VET": "VET", "OEZ": "OEZ", "WART": "WART", "HEOG": "HEOG", "ART": "ART", "ARST": "ARST", "JDT": "JDT", "BT": "BT", "WAST": "WAST", "GYT": "GYT", "COT": "COT"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_MU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_MU) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_MU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_MU) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_MU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_MU) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_MU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_MU' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_MU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_MU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_MU) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_MU'
+@@ -291,58 +200,7 @@ func (fr *fr_MU) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_MU'
+@@ -351,65 +209,7 @@ func (fr *fr_MU) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_MU'
+@@ -417,27 +217,6 @@ func (fr *fr_MU) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_MU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_MU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_MU) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_MU) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_MU) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_MU) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_MU) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_NC/fr_NC.go b/fr_NC/fr_NC.go
+index 66d4bdf..a7f35f7 100644
+--- a/fr_NC/fr_NC.go
++++ b/fr_NC/fr_NC.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_NC struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_NC' locale
+ func New() locales.Translator {
+ return &fr_NC{
+- locale: "fr_NC",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"EST": "heure normale de l’Est nord-américain", "WESZ": "heure d’été d’Europe de l’Ouest", "AWDT": "heure d’été de l’Ouest de l’Australie", "CLST": "heure d’été du Chili", "OEZ": "heure normale d’Europe de l’Est", "∅∅∅": "heure d’été de l’Amazonie", "NZDT": "heure d’été de la Nouvelle-Zélande", "UYST": "heure d’été de l’Uruguay", "ART": "heure normale d’Argentine", "HEOG": "heure d’été de l’Ouest du Groenland", "EAT": "heure normale d’Afrique de l’Est", "AKDT": "heure d’été de l’Alaska", "GMT": "heure moyenne de Greenwich", "EDT": "heure d’été de l’Est", "CDT": "heure d’été du Centre", "WITA": "heure du Centre indonésien", "AEDT": "heure d’été de l’Est de l’Australie", "CHADT": "heure d’été des îles Chatham", "BOT": "heure de Bolivie", "TMST": "heure d’été du Turkménistan", "ACWST": "heure normale du centre-ouest de l’Australie", "HAT": "heure d’été de Terre-Neuve", "SAST": "heure normale d’Afrique méridionale", "TMT": "heure normale du Turkménistan", "HAST": "heure normale d’Hawaii - Aléoutiennes", "SRT": "heure du Suriname", "BT": "heure du Bhoutan", "CLT": "heure normale du Chili", "GYT": "heure du Guyana", "HNPMX": "heure normale du Pacifique mexicain", "WIT": "heure de l’Est indonésien", "PST": "heure normale du Pacifique nord-américain", "NZST": "heure normale de la Nouvelle-Zélande", "ACST": "heure normale du centre de l’Australie", "WARST": "heure d’été de l’Ouest argentin", "WAST": "heure d’été d’Afrique de l’Ouest", "SGT": "heure de Singapour", "MYT": "heure de la Malaisie", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "AWST": "heure normale de l’Ouest de l’Australie", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "GFT": "heure de la Guyane française", "ACDT": "heure d’été du centre de l’Australie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "WART": "heure normale de l’Ouest argentin", "MST": "heure normale de Macao", "UYT": "heure normale de l’Uruguay", "ARST": "heure d’été de l’Argentine", "CHAST": "heure normale des îles Chatham", "JDT": "heure d’été du Japon", "HEEG": "heure d’été de l’Est du Groenland", "ADT": "heure d’été de l’Atlantique", "WIB": "heure de l’Ouest indonésien", "AEST": "heure normale de l’Est de l’Australie", "CAT": "heure normale d’Afrique centrale", "CST": "heure normale du centre nord-américain", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HNT": "heure normale de Terre-Neuve", "OESZ": "heure d’été d’Europe de l’Est", "HECU": "heure d’été de Cuba", "MDT": "heure d’été de Macao", "WEZ": "heure normale d’Europe de l’Ouest", "PDT": "heure d’été du Pacifique", "HNEG": "heure normale de l’Est du Groenland", "HNCU": "heure normale de Cuba", "VET": "heure du Venezuela", "LHDT": "heure d’été de Lord Howe", "MESZ": "heure d’été d’Europe centrale", "JST": "heure normale du Japon", "ECT": "heure de l’Équateur", "COST": "heure d’été de Colombie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "AST": "heure normale de l’Atlantique", "HKT": "heure normale de Hong Kong", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MEZ": "heure normale d’Europe centrale", "ChST": "heure des Chamorro", "COT": "heure normale de Colombie", "IST": "heure de l’Inde", "LHST": "heure normale de Lord Howe", "HEPMX": "heure d’été du Pacifique mexicain", "AKST": "heure normale de l’Alaska", "HKST": "heure d’été de Hong Kong", "WAT": "heure normale d’Afrique de l’Ouest", "HNOG": "heure normale de l’Ouest du Groenland"},
++ locale: "fr_NC",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"BOT": "BOT", "ACDT": "ACDT", "PDT": "PDT", "VET": "VET", "AKST": "AKST", "HNT": "HNT", "CLST": "CLST", "HEEG": "HEEG", "ACST": "ACST", "COT": "COT", "GYT": "GYT", "HKST": "HKST", "HAST": "HAST", "HEPM": "HEPM", "SGT": "SGT", "AKDT": "AKDT", "HNOG": "HNOG", "AWDT": "AWDT", "CHAST": "CHAST", "WART": "WART", "ART": "ART", "ACWST": "ACWST", "CLT": "CLT", "JDT": "JDT", "HECU": "HECU", "HNPMX": "HNPMX", "CAT": "CAT", "HNPM": "HNPM", "TMST": "TMST", "EDT": "EDT", "ADT": "ADT", "MESZ": "MESZ", "HNCU": "HNCU", "OESZ": "OESZ", "TMT": "TMT", "HAT": "HAT", "SAST": "SAST", "EST": "EST", "NZDT": "NZDT", "GMT": "GMT", "HNEG": "HNEG", "WAT": "WAT", "WAST": "WAST", "IST": "IST", "HEPMX": "HEPMX", "HENOMX": "HENOMX", "JST": "JST", "PST": "PST", "CDT": "CDT", "ARST": "ARST", "EAT": "EAT", "AWST": "AWST", "LHDT": "LHDT", "UYST": "UYST", "WEZ": "WEZ", "WIT": "WIT", "CST": "CST", "CHADT": "CHADT", "WARST": "WARST", "HEOG": "HEOG", "HKT": "HKT", "WITA": "WITA", "WIB": "WIB", "MST": "MST", "∅∅∅": "∅∅∅", "GFT": "GFT", "BT": "BT", "ECT": "ECT", "HNNOMX": "HNNOMX", "WESZ": "WESZ", "OEZ": "OEZ", "NZST": "NZST", "SRT": "SRT", "LHST": "LHST", "ChST": "ChST", "AST": "AST", "MEZ": "MEZ", "MYT": "MYT", "ACWDT": "ACWDT", "AEST": "AEST", "AEDT": "AEDT", "UYT": "UYT", "MDT": "MDT", "HADT": "HADT", "COST": "COST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_NC) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_NC) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_NC) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_NC) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_NC) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_NC) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_NC) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_NC' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_NC) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_NC' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_NC) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_NC'
+@@ -291,58 +200,7 @@ func (fr *fr_NC) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_NC'
+@@ -351,65 +209,7 @@ func (fr *fr_NC) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_NC'
+@@ -417,27 +217,6 @@ func (fr *fr_NC) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_NC) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_NC) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_NC) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_NC) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_NC) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_NC) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_NC) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_NE/fr_NE.go b/fr_NE/fr_NE.go
+index a6c6e33..45bbdf7 100644
+--- a/fr_NE/fr_NE.go
++++ b/fr_NE/fr_NE.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_NE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_NE' locale
+ func New() locales.Translator {
+ return &fr_NE{
+- locale: "fr_NE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"WARST": "heure d’été de l’Ouest argentin", "HECU": "heure d’été de Cuba", "MST": "heure normale de Macao", "UYT": "heure normale de l’Uruguay", "HKST": "heure d’été de Hong Kong", "MESZ": "heure d’été d’Europe centrale", "AWST": "heure normale de l’Ouest de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "WART": "heure normale de l’Ouest argentin", "ECT": "heure de l’Équateur", "AST": "heure normale de l’Atlantique", "GYT": "heure du Guyana", "HAT": "heure d’été de Terre-Neuve", "ACST": "heure normale du centre de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "CLT": "heure normale du Chili", "HEEG": "heure d’été de l’Est du Groenland", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "COST": "heure d’été de Colombie", "CST": "heure normale du centre nord-américain", "JST": "heure normale du Japon", "CLST": "heure d’été du Chili", "∅∅∅": "heure d’été des Açores", "WIT": "heure de l’Est indonésien", "ART": "heure normale d’Argentine", "AEST": "heure normale de l’Est de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "HNEG": "heure normale de l’Est du Groenland", "TMT": "heure normale du Turkménistan", "EST": "heure normale de l’Est nord-américain", "WIB": "heure de l’Ouest indonésien", "HAST": "heure normale d’Hawaii - Aléoutiennes", "SRT": "heure du Suriname", "PDT": "heure d’été du Pacifique", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "LHST": "heure normale de Lord Howe", "WAT": "heure normale d’Afrique de l’Ouest", "HEPMX": "heure d’été du Pacifique mexicain", "EDT": "heure d’été de l’Est", "MYT": "heure de la Malaisie", "ARST": "heure d’été de l’Argentine", "HKT": "heure normale de Hong Kong", "COT": "heure normale de Colombie", "GFT": "heure de la Guyane française", "OEZ": "heure normale d’Europe de l’Est", "UYST": "heure d’été de l’Uruguay", "AWDT": "heure d’été de l’Ouest de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MEZ": "heure normale d’Europe centrale", "JDT": "heure d’été du Japon", "MDT": "heure d’été de Macao", "VET": "heure du Venezuela", "HEOG": "heure d’été de l’Ouest du Groenland", "WEZ": "heure normale d’Europe de l’Ouest", "CAT": "heure normale d’Afrique centrale", "AKST": "heure normale de l’Alaska", "ADT": "heure d’été de l’Atlantique", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "SGT": "heure de Singapour", "BT": "heure du Bhoutan", "ACWDT": "heure d’été du centre-ouest de l’Australie", "WESZ": "heure d’été d’Europe de l’Ouest", "NZDT": "heure d’été de la Nouvelle-Zélande", "CHAST": "heure normale des îles Chatham", "WAST": "heure d’été d’Afrique de l’Ouest", "GMT": "heure moyenne de Greenwich", "CDT": "heure d’été du Centre", "ACWST": "heure normale du centre-ouest de l’Australie", "WITA": "heure du Centre indonésien", "AEDT": "heure d’été de l’Est de l’Australie", "HNCU": "heure normale de Cuba", "AKDT": "heure d’été de l’Alaska", "HNOG": "heure normale de l’Ouest du Groenland", "IST": "heure de l’Inde", "OESZ": "heure d’été d’Europe de l’Est", "HNT": "heure normale de Terre-Neuve", "PST": "heure normale du Pacifique nord-américain", "LHDT": "heure d’été de Lord Howe", "ChST": "heure des Chamorro", "BOT": "heure de Bolivie", "HNPMX": "heure normale du Pacifique mexicain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "CHADT": "heure d’été des îles Chatham", "SAST": "heure normale d’Afrique méridionale", "TMST": "heure d’été du Turkménistan"},
++ locale: "fr_NE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"COST": "COST", "WESZ": "WESZ", "HENOMX": "HENOMX", "HAT": "HAT", "HKST": "HKST", "GMT": "GMT", "EAT": "EAT", "MYT": "MYT", "PDT": "PDT", "ACWDT": "ACWDT", "EST": "EST", "WITA": "WITA", "ECT": "ECT", "BOT": "BOT", "HEPM": "HEPM", "UYT": "UYT", "WIT": "WIT", "CLT": "CLT", "CST": "CST", "HNEG": "HNEG", "AWST": "AWST", "CHAST": "CHAST", "WEZ": "WEZ", "HNCU": "HNCU", "MST": "MST", "ACDT": "ACDT", "AWDT": "AWDT", "CHADT": "CHADT", "UYST": "UYST", "AKST": "AKST", "WART": "WART", "EDT": "EDT", "HAST": "HAST", "MEZ": "MEZ", "BT": "BT", "ACWST": "ACWST", "HNOG": "HNOG", "HKT": "HKT", "TMT": "TMT", "CAT": "CAT", "NZST": "NZST", "AEST": "AEST", "OEZ": "OEZ", "WARST": "WARST", "TMST": "TMST", "CDT": "CDT", "MESZ": "MESZ", "PST": "PST", "AKDT": "AKDT", "CLST": "CLST", "ADT": "ADT", "ART": "ART", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "VET": "VET", "NZDT": "NZDT", "JST": "JST", "OESZ": "OESZ", "ACST": "ACST", "HEEG": "HEEG", "SGT": "SGT", "HNPMX": "HNPMX", "SAST": "SAST", "AST": "AST", "HNPM": "HNPM", "JDT": "JDT", "IST": "IST", "∅∅∅": "∅∅∅", "MDT": "MDT", "LHST": "LHST", "HNT": "HNT", "GYT": "GYT", "ARST": "ARST", "AEDT": "AEDT", "HEPMX": "HEPMX", "WAT": "WAT", "WAST": "WAST", "COT": "COT", "WIB": "WIB", "SRT": "SRT", "HADT": "HADT", "HECU": "HECU", "GFT": "GFT", "HEOG": "HEOG", "ChST": "ChST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_NE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_NE) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_NE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_NE) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_NE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_NE) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_NE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_NE' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_NE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_NE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_NE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_NE'
+@@ -291,58 +200,7 @@ func (fr *fr_NE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_NE'
+@@ -351,65 +209,7 @@ func (fr *fr_NE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_NE'
+@@ -417,27 +217,6 @@ func (fr *fr_NE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_NE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_NE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_NE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_NE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_NE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_NE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_NE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_PF/fr_PF.go b/fr_PF/fr_PF.go
+index c440d81..0d1645c 100644
+--- a/fr_PF/fr_PF.go
++++ b/fr_PF/fr_PF.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_PF struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_PF' locale
+ func New() locales.Translator {
+ return &fr_PF{
+- locale: "fr_PF",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"HENOMX": "heure d’été du Nord-Ouest du Mexique", "AST": "heure normale de l’Atlantique", "PST": "heure normale du Pacifique nord-américain", "PDT": "heure d’été du Pacifique", "CLST": "heure d’été du Chili", "ACST": "heure normale du centre de l’Australie", "EST": "heure normale de l’Est nord-américain", "GYT": "heure du Guyana", "MYT": "heure de la Malaisie", "UYT": "heure normale de l’Uruguay", "IST": "heure de l’Inde", "CLT": "heure normale du Chili", "COST": "heure d’été de Colombie", "EDT": "heure d’été de l’Est", "CDT": "heure d’été du Centre", "WEZ": "heure normale d’Europe de l’Ouest", "ACWST": "heure normale du centre-ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "OESZ": "heure d’été d’Europe de l’Est", "MST": "heure normale de Macao", "SGT": "heure de Singapour", "MDT": "heure d’été de Macao", "HNPMX": "heure normale du Pacifique mexicain", "AWST": "heure normale de l’Ouest de l’Australie", "TMT": "heure normale du Turkménistan", "ChST": "heure des Chamorro", "HEOG": "heure d’été de l’Ouest du Groenland", "LHDT": "heure d’été de Lord Howe", "CHAST": "heure normale des îles Chatham", "GMT": "heure moyenne de Greenwich", "SRT": "heure du Suriname", "HNT": "heure normale de Terre-Neuve", "HNOG": "heure normale de l’Ouest du Groenland", "HNEG": "heure normale de l’Est du Groenland", "BT": "heure du Bhoutan", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WESZ": "heure d’été d’Europe de l’Ouest", "ACWDT": "heure d’été du centre-ouest de l’Australie", "LHST": "heure normale de Lord Howe", "AKST": "heure normale de l’Alaska", "WIB": "heure de l’Ouest indonésien", "ART": "heure normale d’Argentine", "AEST": "heure normale de l’Est de l’Australie", "HNCU": "heure normale de Cuba", "WIT": "heure de l’Est indonésien", "ECT": "heure de l’Équateur", "CAT": "heure normale d’Afrique centrale", "CST": "heure normale du centre nord-américain", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MESZ": "heure d’été d’Europe centrale", "JST": "heure normale du Japon", "ACDT": "heure d’été du centre de l’Australie", "OEZ": "heure normale d’Europe de l’Est", "UYST": "heure d’été de l’Uruguay", "JDT": "heure d’été du Japon", "NZDT": "heure d’été de la Nouvelle-Zélande", "WITA": "heure du Centre indonésien", "MEZ": "heure normale d’Europe centrale", "SAST": "heure normale d’Afrique méridionale", "GFT": "heure de la Guyane française", "VET": "heure du Venezuela", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "WARST": "heure d’été de l’Ouest argentin", "ARST": "heure d’été de l’Argentine", "BOT": "heure de Bolivie", "HEEG": "heure d’été de l’Est du Groenland", "ADT": "heure d’été de l’Atlantique", "AWDT": "heure d’été de l’Ouest de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "HEPMX": "heure d’été du Pacifique mexicain", "AKDT": "heure d’été de l’Alaska", "HAT": "heure d’été de Terre-Neuve", "HKT": "heure normale de Hong Kong", "∅∅∅": "heure d’été de l’Amazonie", "WAST": "heure d’été d’Afrique de l’Ouest", "COT": "heure normale de Colombie", "WART": "heure normale de l’Ouest argentin", "HECU": "heure d’été de Cuba", "HKST": "heure d’été de Hong Kong", "AEDT": "heure d’été de l’Est de l’Australie", "CHADT": "heure d’été des îles Chatham", "TMST": "heure d’été du Turkménistan", "WAT": "heure normale d’Afrique de l’Ouest"},
++ locale: "fr_PF",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEPMX": "HEPMX", "HNT": "HNT", "TMST": "TMST", "CDT": "CDT", "HAST": "HAST", "AWST": "AWST", "AWDT": "AWDT", "AEST": "AEST", "EST": "EST", "LHST": "LHST", "BT": "BT", "WESZ": "WESZ", "WEZ": "WEZ", "SGT": "SGT", "NZST": "NZST", "ECT": "ECT", "SRT": "SRT", "ACDT": "ACDT", "IST": "IST", "UYST": "UYST", "WAST": "WAST", "HNEG": "HNEG", "AKDT": "AKDT", "AEDT": "AEDT", "UYT": "UYT", "TMT": "TMT", "ADT": "ADT", "ART": "ART", "BOT": "BOT", "ACWST": "ACWST", "ACWDT": "ACWDT", "SAST": "SAST", "MYT": "MYT", "HNPM": "HNPM", "OESZ": "OESZ", "GFT": "GFT", "GMT": "GMT", "ChST": "ChST", "PST": "PST", "HECU": "HECU", "CAT": "CAT", "CLT": "CLT", "CLST": "CLST", "WART": "WART", "WARST": "WARST", "WIT": "WIT", "EDT": "EDT", "EAT": "EAT", "HEPM": "HEPM", "OEZ": "OEZ", "COST": "COST", "CST": "CST", "MST": "MST", "WIB": "WIB", "MEZ": "MEZ", "HAT": "HAT", "AKST": "AKST", "HKT": "HKT", "MESZ": "MESZ", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "JST": "JST", "HNPMX": "HNPMX", "COT": "COT", "HNOG": "HNOG", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "AST": "AST", "HADT": "HADT", "WITA": "WITA", "NZDT": "NZDT", "HNCU": "HNCU", "HENOMX": "HENOMX", "CHAST": "CHAST", "VET": "VET", "WAT": "WAT", "MDT": "MDT", "ACST": "ACST", "JDT": "JDT", "CHADT": "CHADT", "GYT": "GYT", "HKST": "HKST", "ARST": "ARST", "PDT": "PDT"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_PF) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_PF) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_PF) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_PF) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_PF) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_PF) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_PF) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_PF' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_PF) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_PF' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_PF) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_PF'
+@@ -291,58 +200,7 @@ func (fr *fr_PF) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_PF'
+@@ -351,65 +209,7 @@ func (fr *fr_PF) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_PF'
+@@ -417,27 +217,6 @@ func (fr *fr_PF) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_PF) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_PF) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_PF) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_PF) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_PF) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_PF) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_PF) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_PM/fr_PM.go b/fr_PM/fr_PM.go
+index e218b12..a00024b 100644
+--- a/fr_PM/fr_PM.go
++++ b/fr_PM/fr_PM.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_PM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_PM' locale
+ func New() locales.Translator {
+ return &fr_PM{
+- locale: "fr_PM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"NZST": "heure normale de la Nouvelle-Zélande", "GFT": "heure de la Guyane française", "CAT": "heure normale d’Afrique centrale", "WAT": "heure normale d’Afrique de l’Ouest", "HNCU": "heure normale de Cuba", "EST": "heure normale de l’Est nord-américain", "MST": "heure normale de Macao", "WIB": "heure de l’Ouest indonésien", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "SRT": "heure du Suriname", "∅∅∅": "heure d’été de l’Amazonie", "TMT": "heure normale du Turkménistan", "OEZ": "heure normale d’Europe de l’Est", "PST": "heure normale du Pacifique nord-américain", "PDT": "heure d’été du Pacifique", "HKST": "heure d’été de Hong Kong", "MEZ": "heure normale d’Europe centrale", "BOT": "heure de Bolivie", "HNEG": "heure normale de l’Est du Groenland", "ACDT": "heure d’été du centre de l’Australie", "IST": "heure de l’Inde", "ChST": "heure des Chamorro", "OESZ": "heure d’été d’Europe de l’Est", "MDT": "heure d’été de Macao", "AWST": "heure normale de l’Ouest de l’Australie", "CLST": "heure d’été du Chili", "WAST": "heure d’été d’Afrique de l’Ouest", "COST": "heure d’été de Colombie", "CDT": "heure d’été du Centre", "CHAST": "heure normale des îles Chatham", "MYT": "heure de la Malaisie", "LHDT": "heure d’été de Lord Howe", "CLT": "heure normale du Chili", "WART": "heure normale de l’Ouest argentin", "WEZ": "heure normale d’Europe de l’Ouest", "HNT": "heure normale de Terre-Neuve", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "MESZ": "heure d’été d’Europe centrale", "EDT": "heure d’été de l’Est", "HEPMX": "heure d’été du Pacifique mexicain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HKT": "heure normale de Hong Kong", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "SGT": "heure de Singapour", "HECU": "heure d’été de Cuba", "AKDT": "heure d’été de l’Alaska", "WESZ": "heure d’été d’Europe de l’Ouest", "HNOG": "heure normale de l’Ouest du Groenland", "JDT": "heure d’été du Japon", "WARST": "heure d’été de l’Ouest argentin", "AST": "heure normale de l’Atlantique", "AWDT": "heure d’été de l’Ouest de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "SAST": "heure normale d’Afrique méridionale", "ECT": "heure de l’Équateur", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "BT": "heure du Bhoutan", "ART": "heure normale d’Argentine", "LHST": "heure normale de Lord Howe", "CHADT": "heure d’été des îles Chatham", "JST": "heure normale du Japon", "EAT": "heure normale d’Afrique de l’Est", "ACWST": "heure normale du centre-ouest de l’Australie", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HEOG": "heure d’été de l’Ouest du Groenland", "AEDT": "heure d’été de l’Est de l’Australie", "COT": "heure normale de Colombie", "UYT": "heure normale de l’Uruguay", "UYST": "heure d’été de l’Uruguay", "GYT": "heure du Guyana", "WIT": "heure de l’Est indonésien", "ARST": "heure d’été de l’Argentine", "WITA": "heure du Centre indonésien", "HEEG": "heure d’été de l’Est du Groenland", "TMST": "heure d’été du Turkménistan", "ACST": "heure normale du centre de l’Australie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AKST": "heure normale de l’Alaska", "ADT": "heure d’été de l’Atlantique", "AEST": "heure normale de l’Est de l’Australie", "GMT": "heure moyenne de Greenwich", "HNPMX": "heure normale du Pacifique mexicain", "CST": "heure normale du centre nord-américain", "VET": "heure du Venezuela", "HAT": "heure d’été de Terre-Neuve"},
++ locale: "fr_PM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MST": "MST", "HAT": "HAT", "CST": "CST", "OEZ": "OEZ", "EST": "EST", "ARST": "ARST", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HECU": "HECU", "NZST": "NZST", "GMT": "GMT", "AWST": "AWST", "HNCU": "HNCU", "HNPMX": "HNPMX", "TMST": "TMST", "AWDT": "AWDT", "IST": "IST", "AKST": "AKST", "HNOG": "HNOG", "HKT": "HKT", "ACST": "ACST", "JDT": "JDT", "CHAST": "CHAST", "CLT": "CLT", "CAT": "CAT", "NZDT": "NZDT", "ADT": "ADT", "HNEG": "HNEG", "MYT": "MYT", "JST": "JST", "ACWST": "ACWST", "WIB": "WIB", "ChST": "ChST", "UYT": "UYT", "EDT": "EDT", "WESZ": "WESZ", "CDT": "CDT", "GYT": "GYT", "COT": "COT", "LHDT": "LHDT", "HEPM": "HEPM", "AEDT": "AEDT", "VET": "VET", "WART": "WART", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "COST": "COST", "HAST": "HAST", "HNPM": "HNPM", "ACWDT": "ACWDT", "WEZ": "WEZ", "OESZ": "OESZ", "HEPMX": "HEPMX", "HNT": "HNT", "WITA": "WITA", "BOT": "BOT", "SRT": "SRT", "HADT": "HADT", "PST": "PST", "SGT": "SGT", "GFT": "GFT", "WARST": "WARST", "TMT": "TMT", "MDT": "MDT", "ACDT": "ACDT", "MESZ": "MESZ", "LHST": "LHST", "BT": "BT", "EAT": "EAT", "AEST": "AEST", "WAST": "WAST", "SAST": "SAST", "HKST": "HKST", "AST": "AST", "WIT": "WIT", "HEOG": "HEOG", "CLST": "CLST", "WAT": "WAT", "ECT": "ECT", "ART": "ART", "MEZ": "MEZ", "PDT": "PDT", "CHADT": "CHADT", "UYST": "UYST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_PM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_PM) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_PM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_PM) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_PM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_PM) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_PM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_PM' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_PM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_PM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_PM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_PM'
+@@ -291,58 +200,7 @@ func (fr *fr_PM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_PM'
+@@ -351,65 +209,7 @@ func (fr *fr_PM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_PM'
+@@ -417,27 +217,6 @@ func (fr *fr_PM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_PM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_PM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_PM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_PM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_PM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_PM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_PM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_RE/fr_RE.go b/fr_RE/fr_RE.go
+index d399f0f..9dc2bfc 100644
+--- a/fr_RE/fr_RE.go
++++ b/fr_RE/fr_RE.go
+@@ -10,72 +10,47 @@ import (
+ )
+ 
+ type fr_RE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_RE' locale
+ func New() locales.Translator {
+ return &fr_RE{
+- locale: "fr_RE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"", ""},
+- periodsNarrow: []string{"", ""},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"BOT": "heure de Bolivie", "EAT": "heure normale d’Afrique de l’Est", "UYT": "heure normale de l’Uruguay", "HAST": "heure normale d’Hawaii - Aléoutiennes", "WITA": "heure du Centre indonésien", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "WAST": "heure d’été d’Afrique de l’Ouest", "AST": "heure normale de l’Atlantique", "BT": "heure du Bhoutan", "WEZ": "heure normale d’Europe de l’Ouest", "ACWST": "heure normale du centre-ouest de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "COST": "heure d’été de Colombie", "∅∅∅": "heure d’été des Açores", "GYT": "heure du Guyana", "UYST": "heure d’été de l’Uruguay", "HNEG": "heure normale de l’Est du Groenland", "ECT": "heure de l’Équateur", "WARST": "heure d’été de l’Ouest argentin", "HAT": "heure d’été de Terre-Neuve", "CHAST": "heure normale des îles Chatham", "ChST": "heure des Chamorro", "VET": "heure du Venezuela", "HEOG": "heure d’été de l’Ouest du Groenland", "AEDT": "heure d’été de l’Est de l’Australie", "MEZ": "heure normale d’Europe centrale", "CLST": "heure d’été du Chili", "GMT": "heure moyenne de Greenwich", "WIB": "heure de l’Ouest indonésien", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "AEST": "heure normale de l’Est de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "HKST": "heure d’été de Hong Kong", "OESZ": "heure d’été d’Europe de l’Est", "WART": "heure normale de l’Ouest argentin", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "MYT": "heure de la Malaisie", "SRT": "heure du Suriname", "HKT": "heure normale de Hong Kong", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CLT": "heure normale du Chili", "JDT": "heure d’été du Japon", "HECU": "heure d’été de Cuba", "HNOG": "heure normale de l’Ouest du Groenland", "WESZ": "heure d’été d’Europe de l’Ouest", "ARST": "heure d’été de l’Argentine", "AWST": "heure normale de l’Ouest de l’Australie", "LHST": "heure normale de Lord Howe", "NZDT": "heure d’été de la Nouvelle-Zélande", "IST": "heure de l’Inde", "HNCU": "heure normale de Cuba", "CDT": "heure d’été du Centre", "PDT": "heure d’été du Pacifique", "TMT": "heure normale du Turkménistan", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "CHADT": "heure d’été des îles Chatham", "MESZ": "heure d’été d’Europe centrale", "NZST": "heure normale de la Nouvelle-Zélande", "GFT": "heure de la Guyane française", "TMST": "heure d’été du Turkménistan", "CAT": "heure normale d’Afrique centrale", "HNPMX": "heure normale du Pacifique mexicain", "WIT": "heure de l’Est indonésien", "HNT": "heure normale de Terre-Neuve", "AKDT": "heure d’été de l’Alaska", "ART": "heure normale d’Argentine", "ACST": "heure normale du centre de l’Australie", "EDT": "heure d’été de l’Est", "MDT": "heure d’été de Macao", "HEPMX": "heure d’été du Pacifique mexicain", "HEEG": "heure d’été de l’Est du Groenland", "WAT": "heure normale d’Afrique de l’Ouest", "OEZ": "heure normale d’Europe de l’Est", "SAST": "heure normale d’Afrique méridionale", "SGT": "heure de Singapour", "ADT": "heure d’été de l’Atlantique", "AWDT": "heure d’été de l’Ouest de l’Australie", "PST": "heure normale du Pacifique nord-américain", "COT": "heure normale de Colombie", "MST": "heure normale de Macao", "AKST": "heure normale de l’Alaska", "CST": "heure normale du centre nord-américain", "EST": "heure normale de l’Est nord-américain", "LHDT": "heure d’été de Lord Howe", "JST": "heure normale du Japon"},
++ locale: "fr_RE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"", ""},
++ periodsNarrow: []string{"", ""},
++ timezones: map[string]string{"OESZ": "OESZ", "HAT": "HAT", "WITA": "WITA", "HEPMX": "HEPMX", "EST": "EST", "HKT": "HKT", "HKST": "HKST", "TMST": "TMST", "CAT": "CAT", "CDT": "CDT", "AKDT": "AKDT", "LHDT": "LHDT", "HNPM": "HNPM", "COT": "COT", "CLST": "CLST", "EAT": "EAT", "HADT": "HADT", "MEZ": "MEZ", "HNCU": "HNCU", "WAST": "WAST", "WART": "WART", "ARST": "ARST", "MDT": "MDT", "AEDT": "AEDT", "NZST": "NZST", "AEST": "AEST", "JDT": "JDT", "PST": "PST", "HNPMX": "HNPMX", "HNEG": "HNEG", "HECU": "HECU", "GYT": "GYT", "CST": "CST", "∅∅∅": "∅∅∅", "HENOMX": "HENOMX", "HEPM": "HEPM", "CHAST": "CHAST", "AKST": "AKST", "COST": "COST", "NZDT": "NZDT", "HAST": "HAST", "CHADT": "CHADT", "UYT": "UYT", "UYST": "UYST", "WEZ": "WEZ", "OEZ": "OEZ", "AST": "AST", "GMT": "GMT", "HEEG": "HEEG", "SRT": "SRT", "ACDT": "ACDT", "AWDT": "AWDT", "MYT": "MYT", "IST": "IST", "SGT": "SGT", "WAT": "WAT", "MST": "MST", "ART": "ART", "HEOG": "HEOG", "ACWDT": "ACWDT", "HNT": "HNT", "LHST": "LHST", "AWST": "AWST", "ACWST": "ACWST", "VET": "VET", "HNOG": "HNOG", "WIB": "WIB", "ECT": "ECT", "ADT": "ADT", "ChST": "ChST", "JST": "JST", "ACST": "ACST", "WESZ": "WESZ", "SAST": "SAST", "CLT": "CLT", "MESZ": "MESZ", "BT": "BT", "WIT": "WIT", "TMT": "TMT", "HNNOMX": "HNNOMX", "PDT": "PDT", "GFT": "GFT", "WARST": "WARST", "EDT": "EDT", "BOT": "BOT"},
+ }
+ }
+ 
+@@ -147,7 +122,7 @@ func (fr *fr_RE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_RE) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +132,7 @@ func (fr *fr_RE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_RE) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +142,7 @@ func (fr *fr_RE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_RE) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +188,13 @@ func (fr *fr_RE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_RE' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_RE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_RE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_RE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_RE'
+@@ -291,58 +202,7 @@ func (fr *fr_RE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_RE'
+@@ -351,65 +211,7 @@ func (fr *fr_RE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_RE'
+@@ -417,27 +219,6 @@ func (fr *fr_RE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +227,6 @@ func (fr *fr_RE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +235,6 @@ func (fr *fr_RE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +243,6 @@ func (fr *fr_RE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +251,6 @@ func (fr *fr_RE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +259,6 @@ func (fr *fr_RE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +267,6 @@ func (fr *fr_RE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +275,5 @@ func (fr *fr_RE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_RW/fr_RW.go b/fr_RW/fr_RW.go
+index 69048d6..0e869ef 100644
+--- a/fr_RW/fr_RW.go
++++ b/fr_RW/fr_RW.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_RW struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_RW' locale
+ func New() locales.Translator {
+ return &fr_RW{
+- locale: "fr_RW",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"WEZ": "heure normale d’Europe de l’Ouest", "WESZ": "heure d’été d’Europe de l’Ouest", "LHDT": "heure d’été de Lord Howe", "MST": "heure normale de Macao", "HNT": "heure normale de Terre-Neuve", "EDT": "heure d’été de l’Est", "GYT": "heure du Guyana", "AEDT": "heure d’été de l’Est de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "NZST": "heure normale de la Nouvelle-Zélande", "NZDT": "heure d’été de la Nouvelle-Zélande", "JST": "heure normale du Japon", "OESZ": "heure d’été d’Europe de l’Est", "CHADT": "heure d’été des îles Chatham", "WARST": "heure d’été de l’Ouest argentin", "COST": "heure d’été de Colombie", "VET": "heure du Venezuela", "ACST": "heure normale du centre de l’Australie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "MDT": "heure d’été de Macao", "CST": "heure normale du centre nord-américain", "UYT": "heure normale de l’Uruguay", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "PST": "heure normale du Pacifique nord-américain", "HKT": "heure normale de Hong Kong", "∅∅∅": "heure d’été de l’Amazonie", "HEPMX": "heure d’été du Pacifique mexicain", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HNPMX": "heure normale du Pacifique mexicain", "WIT": "heure de l’Est indonésien", "HEEG": "heure d’été de l’Est du Groenland", "ECT": "heure de l’Équateur", "HEOG": "heure d’été de l’Ouest du Groenland", "MEZ": "heure normale d’Europe centrale", "ACWST": "heure normale du centre-ouest de l’Australie", "HAT": "heure d’été de Terre-Neuve", "GMT": "heure moyenne de Greenwich", "CAT": "heure normale d’Afrique centrale", "WART": "heure normale de l’Ouest argentin", "ChST": "heure des Chamorro", "HECU": "heure d’été de Cuba", "BT": "heure du Bhoutan", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "IST": "heure de l’Inde", "CLT": "heure normale du Chili", "WITA": "heure du Centre indonésien", "TMST": "heure d’été du Turkménistan", "EAT": "heure normale d’Afrique de l’Est", "PDT": "heure d’été du Pacifique", "OEZ": "heure normale d’Europe de l’Est", "SRT": "heure du Suriname", "WIB": "heure de l’Ouest indonésien", "AEST": "heure normale de l’Est de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MESZ": "heure d’été d’Europe centrale", "SAST": "heure normale d’Afrique méridionale", "WAST": "heure d’été d’Afrique de l’Ouest", "SGT": "heure de Singapour", "HNCU": "heure normale de Cuba", "CDT": "heure d’été du Centre", "ACWDT": "heure d’été du centre-ouest de l’Australie", "AWST": "heure normale de l’Ouest de l’Australie", "JDT": "heure d’été du Japon", "HNEG": "heure normale de l’Est du Groenland", "AKST": "heure normale de l’Alaska", "AKDT": "heure d’été de l’Alaska", "AST": "heure normale de l’Atlantique", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ART": "heure normale d’Argentine", "HKST": "heure d’été de Hong Kong", "CLST": "heure d’été du Chili", "EST": "heure normale de l’Est nord-américain", "CHAST": "heure normale des îles Chatham", "ACDT": "heure d’été du centre de l’Australie", "COT": "heure normale de Colombie", "BOT": "heure de Bolivie", "WAT": "heure normale d’Afrique de l’Ouest", "ADT": "heure d’été de l’Atlantique", "MYT": "heure de la Malaisie", "UYST": "heure d’été de l’Uruguay", "ARST": "heure d’été de l’Argentine", "GFT": "heure de la Guyane française", "TMT": "heure normale du Turkménistan", "HNOG": "heure normale de l’Ouest du Groenland", "LHST": "heure normale de Lord Howe"},
++ locale: "fr_RW",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"UYST": "UYST", "HEPMX": "HEPMX", "OEZ": "OEZ", "ChST": "ChST", "ACWST": "ACWST", "AEST": "AEST", "SGT": "SGT", "HADT": "HADT", "LHDT": "LHDT", "HEEG": "HEEG", "HNOG": "HNOG", "HKT": "HKT", "ACST": "ACST", "MYT": "MYT", "WESZ": "WESZ", "WAT": "WAT", "GFT": "GFT", "∅∅∅": "∅∅∅", "ACWDT": "ACWDT", "HAT": "HAT", "HNNOMX": "HNNOMX", "ECT": "ECT", "LHST": "LHST", "HNPM": "HNPM", "CHAST": "CHAST", "OESZ": "OESZ", "COT": "COT", "COST": "COST", "ART": "ART", "WARST": "WARST", "GYT": "GYT", "AKDT": "AKDT", "HEOG": "HEOG", "PST": "PST", "ADT": "ADT", "JST": "JST", "BT": "BT", "AEDT": "AEDT", "CLST": "CLST", "ARST": "ARST", "MST": "MST", "NZDT": "NZDT", "BOT": "BOT", "AWDT": "AWDT", "IST": "IST", "VET": "VET", "SAST": "SAST", "EDT": "EDT", "WEZ": "WEZ", "MEZ": "MEZ", "WAST": "WAST", "HKST": "HKST", "GMT": "GMT", "ACDT": "ACDT", "HNCU": "HNCU", "WART": "WART", "WIB": "WIB", "CLT": "CLT", "CAT": "CAT", "WITA": "WITA", "EAT": "EAT", "MESZ": "MESZ", "JDT": "JDT", "WIT": "WIT", "HNT": "HNT", "HECU": "HECU", "AKST": "AKST", "MDT": "MDT", "HENOMX": "HENOMX", "AWST": "AWST", "PDT": "PDT", "CHADT": "CHADT", "TMT": "TMT", "TMST": "TMST", "SRT": "SRT", "HNEG": "HNEG", "HEPM": "HEPM", "NZST": "NZST", "CST": "CST", "AST": "AST", "HAST": "HAST", "UYT": "UYT", "HNPMX": "HNPMX", "EST": "EST", "CDT": "CDT"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_RW) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_RW) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_RW) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_RW) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_RW) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_RW) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_RW) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_RW' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_RW) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_RW' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_RW) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_RW'
+@@ -291,58 +200,7 @@ func (fr *fr_RW) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_RW'
+@@ -351,65 +209,7 @@ func (fr *fr_RW) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_RW'
+@@ -417,27 +217,6 @@ func (fr *fr_RW) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_RW) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_RW) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_RW) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_RW) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_RW) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_RW) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_RW) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_SC/fr_SC.go b/fr_SC/fr_SC.go
+index 0b9d90b..ac95dd3 100644
+--- a/fr_SC/fr_SC.go
++++ b/fr_SC/fr_SC.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_SC struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_SC' locale
+ func New() locales.Translator {
+ return &fr_SC{
+- locale: "fr_SC",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"NZDT": "heure d’été de la Nouvelle-Zélande", "WIB": "heure de l’Ouest indonésien", "SGT": "heure de Singapour", "MDT": "heure d’été de Macao", "CST": "heure normale du centre nord-américain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HAT": "heure d’été de Terre-Neuve", "HEOG": "heure d’été de l’Ouest du Groenland", "HNEG": "heure normale de l’Est du Groenland", "HECU": "heure d’été de Cuba", "ChST": "heure des Chamorro", "EAT": "heure normale d’Afrique de l’Est", "EST": "heure normale de l’Est nord-américain", "BT": "heure du Bhoutan", "ACWST": "heure normale du centre-ouest de l’Australie", "AEST": "heure normale de l’Est de l’Australie", "JST": "heure normale du Japon", "TMST": "heure d’été du Turkménistan", "HNCU": "heure normale de Cuba", "CDT": "heure d’été du Centre", "ARST": "heure d’été de l’Argentine", "HKST": "heure d’été de Hong Kong", "AEDT": "heure d’été de l’Est de l’Australie", "LHST": "heure normale de Lord Howe", "JDT": "heure d’été du Japon", "ECT": "heure de l’Équateur", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EDT": "heure d’été de l’Est", "AST": "heure normale de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "PDT": "heure d’été du Pacifique", "GFT": "heure de la Guyane française", "WAST": "heure d’été d’Afrique de l’Ouest", "MESZ": "heure d’été d’Europe centrale", "ACST": "heure normale du centre de l’Australie", "ACDT": "heure d’été du centre de l’Australie", "GYT": "heure du Guyana", "SRT": "heure du Suriname", "HNOG": "heure normale de l’Ouest du Groenland", "CHAST": "heure normale des îles Chatham", "MEZ": "heure normale d’Europe centrale", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CHADT": "heure d’été des îles Chatham", "BOT": "heure de Bolivie", "MST": "heure normale de Macao", "AKDT": "heure d’été de l’Alaska", "ART": "heure normale d’Argentine", "LHDT": "heure d’été de Lord Howe", "TMT": "heure normale du Turkménistan", "OESZ": "heure d’été d’Europe de l’Est", "WART": "heure normale de l’Ouest argentin", "HNPMX": "heure normale du Pacifique mexicain", "HEPMX": "heure d’été du Pacifique mexicain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "VET": "heure du Venezuela", "∅∅∅": "heure d’été de l’Amazonie", "HEEG": "heure d’été de l’Est du Groenland", "WEZ": "heure normale d’Europe de l’Ouest", "WESZ": "heure d’été d’Europe de l’Ouest", "CAT": "heure normale d’Afrique centrale", "IST": "heure de l’Inde", "OEZ": "heure normale d’Europe de l’Est", "ADT": "heure d’été de l’Atlantique", "WITA": "heure du Centre indonésien", "WARST": "heure d’été de l’Ouest argentin", "GMT": "heure moyenne de Greenwich", "AKST": "heure normale de l’Alaska", "HKT": "heure normale de Hong Kong", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "COST": "heure d’été de Colombie", "AWDT": "heure d’été de l’Ouest de l’Australie", "UYT": "heure normale de l’Uruguay", "AWST": "heure normale de l’Ouest de l’Australie", "WIT": "heure de l’Est indonésien", "NZST": "heure normale de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "COT": "heure normale de Colombie", "UYST": "heure d’été de l’Uruguay", "PST": "heure normale du Pacifique nord-américain", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "WAT": "heure normale d’Afrique de l’Ouest", "MYT": "heure de la Malaisie", "SAST": "heure normale d’Afrique méridionale", "CLST": "heure d’été du Chili"},
++ locale: "fr_SC",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MYT": "MYT", "HNOG": "HNOG", "TMT": "TMT", "NZST": "NZST", "NZDT": "NZDT", "LHST": "LHST", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "WITA": "WITA", "MST": "MST", "WIB": "WIB", "UYT": "UYT", "HNPMX": "HNPMX", "WAST": "WAST", "OESZ": "OESZ", "∅∅∅": "∅∅∅", "CST": "CST", "MESZ": "MESZ", "CHAST": "CHAST", "PST": "PST", "GYT": "GYT", "ChST": "ChST", "ART": "ART", "EAT": "EAT", "WARST": "WARST", "TMST": "TMST", "HNPM": "HNPM", "JST": "JST", "BT": "BT", "MEZ": "MEZ", "HNEG": "HNEG", "WART": "WART", "WEZ": "WEZ", "VET": "VET", "GFT": "GFT", "HEOG": "HEOG", "HADT": "HADT", "AWST": "AWST", "UYST": "UYST", "AKST": "AKST", "EDT": "EDT", "BOT": "BOT", "ACWDT": "ACWDT", "HECU": "HECU", "MDT": "MDT", "AWDT": "AWDT", "HNCU": "HNCU", "ACST": "ACST", "PDT": "PDT", "SGT": "SGT", "IST": "IST", "AEST": "AEST", "CLST": "CLST", "ECT": "ECT", "ARST": "ARST", "SAST": "SAST", "COT": "COT", "HKT": "HKT", "CLT": "CLT", "HENOMX": "HENOMX", "WAT": "WAT", "HEPMX": "HEPMX", "HAT": "HAT", "HAST": "HAST", "HEEG": "HEEG", "CHADT": "CHADT", "AST": "AST", "SRT": "SRT", "OEZ": "OEZ", "LHDT": "LHDT", "AEDT": "AEDT", "WESZ": "WESZ", "HNT": "HNT", "WIT": "WIT", "CAT": "CAT", "CDT": "CDT", "GMT": "GMT", "EST": "EST", "HKST": "HKST", "AKDT": "AKDT", "COST": "COST", "ADT": "ADT", "JDT": "JDT", "ACWST": "ACWST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_SC) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_SC) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_SC) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_SC) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_SC) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_SC) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_SC) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_SC' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_SC) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_SC' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_SC) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_SC'
+@@ -291,58 +200,7 @@ func (fr *fr_SC) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_SC'
+@@ -351,65 +209,7 @@ func (fr *fr_SC) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_SC'
+@@ -417,27 +217,6 @@ func (fr *fr_SC) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_SC) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_SC) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_SC) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_SC) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_SC) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_SC) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_SC) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_SN/fr_SN.go b/fr_SN/fr_SN.go
+index 1b9cdf2..e1de6f4 100644
+--- a/fr_SN/fr_SN.go
++++ b/fr_SN/fr_SN.go
+@@ -10,72 +10,47 @@ import (
+ )
+ 
+ type fr_SN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_SN' locale
+ func New() locales.Translator {
+ return &fr_SN{
+- locale: "fr_SN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"", ""},
+- periodsNarrow: []string{"", ""},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"ECT": "heure de l’Équateur", "UYT": "heure normale de l’Uruguay", "UYST": "heure d’été de l’Uruguay", "WESZ": "heure d’été d’Europe de l’Ouest", "ACWDT": "heure d’été du centre-ouest de l’Australie", "∅∅∅": "heure d’été de l’Amazonie", "GFT": "heure de la Guyane française", "WAT": "heure normale d’Afrique de l’Ouest", "WIT": "heure de l’Est indonésien", "ARST": "heure d’été de l’Argentine", "MESZ": "heure d’été d’Europe centrale", "NZST": "heure normale de la Nouvelle-Zélande", "AKDT": "heure d’été de l’Alaska", "OESZ": "heure d’été d’Europe de l’Est", "GMT": "heure moyenne de Greenwich", "AWDT": "heure d’été de l’Ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "CLST": "heure d’été du Chili", "JST": "heure normale du Japon", "CAT": "heure normale d’Afrique centrale", "WIB": "heure de l’Ouest indonésien", "ART": "heure normale d’Argentine", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HAT": "heure d’été de Terre-Neuve", "ACST": "heure normale du centre de l’Australie", "HNCU": "heure normale de Cuba", "AST": "heure normale de l’Atlantique", "HNOG": "heure normale de l’Ouest du Groenland", "NZDT": "heure d’été de la Nouvelle-Zélande", "JDT": "heure d’été du Japon", "HEEG": "heure d’été de l’Est du Groenland", "OEZ": "heure normale d’Europe de l’Est", "MDT": "heure d’été des Rocheuses", "PDT": "heure d’été du Pacifique", "WITA": "heure du Centre indonésien", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "HEPMX": "heure d’été du Pacifique mexicain", "SGT": "heure de Singapour", "LHST": "heure normale de Lord Howe", "BOT": "heure de Bolivie", "EAT": "heure normale d’Afrique de l’Est", "MST": "heure normale des Rocheuses", "SRT": "heure du Suriname", "ACWST": "heure normale du centre-ouest de l’Australie", "HNT": "heure normale de Terre-Neuve", "AEST": "heure normale de l’Est de l’Australie", "WART": "heure normale de l’Ouest argentin", "COST": "heure d’été de Colombie", "HECU": "heure d’été de Cuba", "MYT": "heure de la Malaisie", "GYT": "heure du Guyana", "HEOG": "heure d’été de l’Ouest du Groenland", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CLT": "heure normale du Chili", "ACDT": "heure d’été du centre de l’Australie", "EST": "heure normale de l’Est nord-américain", "ChST": "heure des Chamorro", "CST": "heure normale du centre nord-américain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HNEG": "heure normale de l’Est du Groenland", "WARST": "heure d’été de l’Ouest argentin", "COT": "heure normale de Colombie", "AKST": "heure normale de l’Alaska", "HNPMX": "heure normale du Pacifique mexicain", "ADT": "heure d’été de l’Atlantique", "VET": "heure du Venezuela", "WEZ": "heure normale d’Europe de l’Ouest", "HKT": "heure normale de Hong Kong", "CHADT": "heure d’été des îles Chatham", "TMST": "heure d’été du Turkménistan", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "AEDT": "heure d’été de l’Est de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "CHAST": "heure normale des îles Chatham", "IST": "heure de l’Inde", "WAST": "heure d’été d’Afrique de l’Ouest", "BT": "heure du Bhoutan", "AWST": "heure normale de l’Ouest de l’Australie", "LHDT": "heure d’été de Lord Howe", "CDT": "heure d’été du Centre", "PST": "heure normale du Pacifique nord-américain", "HKST": "heure d’été de Hong Kong", "SAST": "heure normale d’Afrique méridionale", "TMT": "heure normale du Turkménistan", "EDT": "heure d’été de l’Est"},
++ locale: "fr_SN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"", ""},
++ periodsNarrow: []string{"", ""},
++ timezones: map[string]string{"MDT": "MDT", "MEZ": "MEZ", "HENOMX": "HENOMX", "UYT": "UYT", "AEDT": "AEDT", "AKST": "AKST", "HNOG": "HNOG", "HNCU": "HNCU", "WITA": "WITA", "NZST": "NZST", "NZDT": "NZDT", "AWDT": "AWDT", "HNPM": "HNPM", "JDT": "JDT", "AEST": "AEST", "WAST": "WAST", "HKST": "HKST", "PDT": "PDT", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "CAT": "CAT", "LHDT": "LHDT", "COST": "COST", "CLT": "CLT", "HNNOMX": "HNNOMX", "CST": "CST", "AST": "AST", "WIB": "WIB", "ADT": "ADT", "HAST": "HAST", "EST": "EST", "HKT": "HKT", "MST": "MST", "VET": "VET", "TMT": "TMT", "CDT": "CDT", "ACST": "ACST", "LHST": "LHST", "ACWST": "ACWST", "AKDT": "AKDT", "GFT": "GFT", "HEPM": "HEPM", "WEZ": "WEZ", "OESZ": "OESZ", "SAST": "SAST", "TMST": "TMST", "GMT": "GMT", "MYT": "MYT", "WESZ": "WESZ", "HNT": "HNT", "HEEG": "HEEG", "CHADT": "CHADT", "MESZ": "MESZ", "ACDT": "ACDT", "BT": "BT", "WARST": "WARST", "HNEG": "HNEG", "ECT": "ECT", "UYST": "UYST", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "WART": "WART", "GYT": "GYT", "EDT": "EDT", "ChST": "ChST", "ART": "ART", "BOT": "BOT", "SRT": "SRT", "SGT": "SGT", "WIT": "WIT", "HADT": "HADT", "PST": "PST", "WAT": "WAT", "OEZ": "OEZ", "HAT": "HAT", "COT": "COT", "HEOG": "HEOG", "CLST": "CLST", "HECU": "HECU", "HEPMX": "HEPMX", "AWST": "AWST", "JST": "JST", "IST": "IST", "ARST": "ARST", "EAT": "EAT"},
+ }
+ }
+ 
+@@ -147,7 +122,7 @@ func (fr *fr_SN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_SN) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +132,7 @@ func (fr *fr_SN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_SN) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +142,7 @@ func (fr *fr_SN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_SN) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +188,13 @@ func (fr *fr_SN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_SN' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_SN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_SN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_SN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_SN'
+@@ -291,58 +202,7 @@ func (fr *fr_SN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_SN'
+@@ -351,65 +211,7 @@ func (fr *fr_SN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_SN'
+@@ -417,27 +219,6 @@ func (fr *fr_SN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +227,6 @@ func (fr *fr_SN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +235,6 @@ func (fr *fr_SN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +243,6 @@ func (fr *fr_SN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +251,6 @@ func (fr *fr_SN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +259,6 @@ func (fr *fr_SN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +267,6 @@ func (fr *fr_SN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +275,5 @@ func (fr *fr_SN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_SY/fr_SY.go b/fr_SY/fr_SY.go
+index c4352ab..ed7a977 100644
+--- a/fr_SY/fr_SY.go
++++ b/fr_SY/fr_SY.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_SY struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_SY' locale
+ func New() locales.Translator {
+ return &fr_SY{
+- locale: "fr_SY",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "LS", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"WART": "heure normale de l’Ouest argentin", "UYT": "heure normale de l’Uruguay", "ARST": "heure d’été de l’Argentine", "AEST": "heure normale de l’Est de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "CLT": "heure normale du Chili", "TMST": "heure d’été du Turkménistan", "HNEG": "heure normale de l’Est du Groenland", "WAST": "heure d’été d’Afrique de l’Ouest", "AKDT": "heure d’été de l’Alaska", "WIB": "heure de l’Ouest indonésien", "SRT": "heure du Suriname", "HAT": "heure d’été de Terre-Neuve", "HKST": "heure d’été de Hong Kong", "LHDT": "heure d’été de Lord Howe", "HEEG": "heure d’été de l’Est du Groenland", "HNCU": "heure normale de Cuba", "EST": "heure normale de l’Est nord-américain", "MST": "heure normale de Macao", "HNOG": "heure normale de l’Ouest du Groenland", "PST": "heure normale du Pacifique nord-américain", "MEZ": "heure normale d’Europe centrale", "LHST": "heure normale de Lord Howe", "ECT": "heure de l’Équateur", "NZDT": "heure d’été de la Nouvelle-Zélande", "ACDT": "heure d’été du centre de l’Australie", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "ADT": "heure d’été de l’Atlantique", "AKST": "heure normale de l’Alaska", "GFT": "heure de la Guyane française", "SAST": "heure normale d’Afrique méridionale", "OESZ": "heure d’été d’Europe de l’Est", "∅∅∅": "heure d’été du Pérou", "SGT": "heure de Singapour", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WESZ": "heure d’été d’Europe de l’Ouest", "HKT": "heure normale de Hong Kong", "NZST": "heure normale de la Nouvelle-Zélande", "COST": "heure d’été de Colombie", "CHADT": "heure d’été des îles Chatham", "HAST": "heure normale d’Hawaii - Aléoutiennes", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "JDT": "heure d’été du Japon", "IST": "heure de l’Inde", "WARST": "heure d’été de l’Ouest argentin", "COT": "heure normale de Colombie", "HECU": "heure d’été de Cuba", "CDT": "heure d’été du Centre", "ACWST": "heure normale du centre-ouest de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "CHAST": "heure normale des îles Chatham", "WAT": "heure normale d’Afrique de l’Ouest", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EDT": "heure d’été de l’Est", "HNPMX": "heure normale du Pacifique mexicain", "WEZ": "heure normale d’Europe de l’Ouest", "ACWDT": "heure d’été du centre-ouest de l’Australie", "ACST": "heure normale du centre de l’Australie", "EAT": "heure normale d’Afrique de l’Est", "VET": "heure du Venezuela", "WITA": "heure du Centre indonésien", "CST": "heure normale du centre nord-américain", "GYT": "heure du Guyana", "BOT": "heure de Bolivie", "ART": "heure normale d’Argentine", "AWST": "heure normale de l’Ouest de l’Australie", "JST": "heure normale du Japon", "OEZ": "heure normale d’Europe de l’Est", "CAT": "heure normale d’Afrique centrale", "GMT": "heure moyenne de Greenwich", "MDT": "heure d’été de Macao", "MYT": "heure de la Malaisie", "WIT": "heure de l’Est indonésien", "HNT": "heure normale de Terre-Neuve", "TMT": "heure normale du Turkménistan", "ChST": "heure des Chamorro", "HEPMX": "heure d’été du Pacifique mexicain", "HEOG": "heure d’été de l’Ouest du Groenland", "MESZ": "heure d’été d’Europe centrale", "AST": "heure normale de l’Atlantique", "UYST": "heure d’été de l’Uruguay", "BT": "heure du Bhoutan", "PDT": "heure d’été du Pacifique", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CLST": "heure d’été du Chili"},
++ locale: "fr_SY",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "LS", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MYT": "MYT", "AKST": "AKST", "WARST": "WARST", "EST": "EST", "ART": "ART", "WITA": "WITA", "AST": "AST", "GMT": "GMT", "HEPMX": "HEPMX", "OEZ": "OEZ", "HNT": "HNT", "COST": "COST", "HKST": "HKST", "HENOMX": "HENOMX", "PDT": "PDT", "NZDT": "NZDT", "HEPM": "HEPM", "ACWST": "ACWST", "HNCU": "HNCU", "COT": "COT", "ACWDT": "ACWDT", "VET": "VET", "ADT": "ADT", "HNEG": "HNEG", "WAST": "WAST", "EAT": "EAT", "HEEG": "HEEG", "ACDT": "ACDT", "CHAST": "CHAST", "ARST": "ARST", "SRT": "SRT", "ChST": "ChST", "HAST": "HAST", "HADT": "HADT", "HNOG": "HNOG", "TMT": "TMT", "TMST": "TMST", "NZST": "NZST", "CST": "CST", "MEZ": "MEZ", "MESZ": "MESZ", "AWST": "AWST", "AEST": "AEST", "WESZ": "WESZ", "HAT": "HAT", "EDT": "EDT", "AWDT": "AWDT", "OESZ": "OESZ", "ECT": "ECT", "MST": "MST", "HNPM": "HNPM", "LHST": "LHST", "GFT": "GFT", "GYT": "GYT", "CLT": "CLT", "SAST": "SAST", "HKT": "HKT", "CLST": "CLST", "JST": "JST", "JDT": "JDT", "CHADT": "CHADT", "IST": "IST", "HNPMX": "HNPMX", "HNNOMX": "HNNOMX", "ACST": "ACST", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "HECU": "HECU", "CAT": "CAT", "MDT": "MDT", "BOT": "BOT", "UYT": "UYT", "WEZ": "WEZ", "SGT": "SGT", "WIT": "WIT", "HEOG": "HEOG", "BT": "BT", "AKDT": "AKDT", "WIB": "WIB", "CDT": "CDT", "AEDT": "AEDT", "UYST": "UYST", "PST": "PST", "WAT": "WAT", "WART": "WART"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_SY) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_SY) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_SY) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_SY) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_SY) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_SY) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_SY) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_SY' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_SY) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_SY' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_SY) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_SY'
+@@ -291,58 +200,7 @@ func (fr *fr_SY) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_SY'
+@@ -351,65 +209,7 @@ func (fr *fr_SY) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_SY'
+@@ -417,27 +217,6 @@ func (fr *fr_SY) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_SY) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_SY) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_SY) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/fr_TD/fr_TD.go b/fr_TD/fr_TD.go
+index 70a4684..ffc67b3 100644
+--- a/fr_TD/fr_TD.go
++++ b/fr_TD/fr_TD.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_TD struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_TD' locale
+ func New() locales.Translator {
+ return &fr_TD{
+- locale: "fr_TD",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"AST": "heure normale de l’Atlantique", "HKST": "heure d’été de Hong Kong", "LHST": "heure normale de Lord Howe", "IST": "heure de l’Inde", "WIB": "heure de l’Ouest indonésien", "WEZ": "heure normale d’Europe de l’Ouest", "HNOG": "heure normale de l’Ouest du Groenland", "AWST": "heure normale de l’Ouest de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "CHAST": "heure normale des îles Chatham", "JST": "heure normale du Japon", "CAT": "heure normale d’Afrique centrale", "SGT": "heure de Singapour", "UYT": "heure normale de l’Uruguay", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ART": "heure normale d’Argentine", "ACST": "heure normale du centre de l’Australie", "HEPMX": "heure d’été du Pacifique mexicain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "HKT": "heure normale de Hong Kong", "WAST": "heure d’été d’Afrique de l’Ouest", "OESZ": "heure d’été d’Europe de l’Est", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "EST": "heure normale de l’Est nord-américain", "HNPMX": "heure normale du Pacifique mexicain", "AKDT": "heure d’été de l’Alaska", "GYT": "heure du Guyana", "PDT": "heure d’été du Pacifique", "AWDT": "heure d’été de l’Ouest de l’Australie", "CHADT": "heure d’été des îles Chatham", "JDT": "heure d’été du Japon", "WAT": "heure normale d’Afrique de l’Ouest", "EDT": "heure d’été de l’Est", "ADT": "heure d’été de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "HAT": "heure d’été de Terre-Neuve", "HEOG": "heure d’été de l’Ouest du Groenland", "MESZ": "heure d’été d’Europe centrale", "HNEG": "heure normale de l’Est du Groenland", "EAT": "heure normale d’Afrique de l’Est", "ECT": "heure de l’Équateur", "WART": "heure normale de l’Ouest argentin", "WIT": "heure de l’Est indonésien", "BT": "heure du Bhoutan", "LHDT": "heure d’été de Lord Howe", "CLT": "heure normale du Chili", "TMST": "heure d’été du Turkménistan", "MYT": "heure de la Malaisie", "ChST": "heure des Chamorro", "TMT": "heure normale du Turkménistan", "HECU": "heure d’été de Cuba", "WESZ": "heure d’été d’Europe de l’Ouest", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "CLST": "heure d’été du Chili", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "CST": "heure normale du centre nord-américain", "SRT": "heure du Suriname", "AEST": "heure normale de l’Est de l’Australie", "MEZ": "heure normale d’Europe centrale", "NZDT": "heure d’été de la Nouvelle-Zélande", "ACWST": "heure normale du centre-ouest de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "GFT": "heure de la Guyane française", "HNCU": "heure normale de Cuba", "MST": "heure normale de Macao", "MDT": "heure d’été de Macao", "CDT": "heure d’été du Centre", "VET": "heure du Venezuela", "∅∅∅": "heure d’été de l’Amazonie", "OEZ": "heure normale d’Europe de l’Est", "GMT": "heure moyenne de Greenwich", "WITA": "heure du Centre indonésien", "HEEG": "heure d’été de l’Est du Groenland", "COT": "heure normale de Colombie", "UYST": "heure d’été de l’Uruguay", "AKST": "heure normale de l’Alaska", "ARST": "heure d’été de l’Argentine", "SAST": "heure normale d’Afrique méridionale", "BOT": "heure de Bolivie", "ACDT": "heure d’été du centre de l’Australie", "WARST": "heure d’été de l’Ouest argentin", "COST": "heure d’été de Colombie", "PST": "heure normale du Pacifique nord-américain", "ACWDT": "heure d’été du centre-ouest de l’Australie"},
++ locale: "fr_TD",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNCU": "HNCU", "∅∅∅": "∅∅∅", "IST": "IST", "HKT": "HKT", "JDT": "JDT", "WAST": "WAST", "HNOG": "HNOG", "CLST": "CLST", "GMT": "GMT", "HAST": "HAST", "HNT": "HNT", "WARST": "WARST", "EDT": "EDT", "HNNOMX": "HNNOMX", "LHST": "LHST", "OEZ": "OEZ", "AKST": "AKST", "OESZ": "OESZ", "CST": "CST", "ADT": "ADT", "HNPM": "HNPM", "CDT": "CDT", "HEPMX": "HEPMX", "HKST": "HKST", "ACST": "ACST", "CAT": "CAT", "ECT": "ECT", "ART": "ART", "ACDT": "ACDT", "PDT": "PDT", "GFT": "GFT", "CLT": "CLT", "WITA": "WITA", "NZDT": "NZDT", "PST": "PST", "VET": "VET", "SGT": "SGT", "TMT": "TMT", "EST": "EST", "ChST": "ChST", "HEPM": "HEPM", "UYST": "UYST", "UYT": "UYT", "HECU": "HECU", "AKDT": "AKDT", "SRT": "SRT", "JST": "JST", "AWDT": "AWDT", "LHDT": "LHDT", "WAT": "WAT", "WART": "WART", "COST": "COST", "SAST": "SAST", "NZST": "NZST", "ARST": "ARST", "MEZ": "MEZ", "ACWDT": "ACWDT", "EAT": "EAT", "HADT": "HADT", "HNEG": "HNEG", "AEST": "AEST", "CHAST": "CHAST", "HEOG": "HEOG", "TMST": "TMST", "MDT": "MDT", "HEEG": "HEEG", "BT": "BT", "AEDT": "AEDT", "WEZ": "WEZ", "GYT": "GYT", "WIB": "WIB", "MST": "MST", "AST": "AST", "ACWST": "ACWST", "CHADT": "CHADT", "WIT": "WIT", "MESZ": "MESZ", "MYT": "MYT", "AWST": "AWST", "WESZ": "WESZ", "HAT": "HAT", "COT": "COT", "BOT": "BOT", "HENOMX": "HENOMX", "HNPMX": "HNPMX"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_TD) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_TD) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_TD) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_TD) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_TD) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_TD) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_TD) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_TD' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_TD) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_TD' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_TD) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_TD'
+@@ -291,58 +200,7 @@ func (fr *fr_TD) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_TD'
+@@ -351,65 +209,7 @@ func (fr *fr_TD) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_TD'
+@@ -417,27 +217,6 @@ func (fr *fr_TD) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_TD) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_TD) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_TD) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/fr_TG/fr_TG.go b/fr_TG/fr_TG.go
+index 172f76c..cbd0b87 100644
+--- a/fr_TG/fr_TG.go
++++ b/fr_TG/fr_TG.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_TG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_TG' locale
+ func New() locales.Translator {
+ return &fr_TG{
+- locale: "fr_TG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"AEDT": "heure d’été de l’Est de l’Australie", "MESZ": "heure d’été d’Europe centrale", "JDT": "heure d’été du Japon", "BOT": "heure de Bolivie", "CAT": "heure normale d’Afrique centrale", "CST": "heure normale du centre nord-américain", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "CHAST": "heure normale des îles Chatham", "ChST": "heure des Chamorro", "OESZ": "heure d’été d’Europe de l’Est", "AST": "heure normale de l’Atlantique", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "CHADT": "heure d’été des îles Chatham", "COT": "heure normale de Colombie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "UYST": "heure d’été de l’Uruguay", "WIT": "heure de l’Est indonésien", "AWST": "heure normale de l’Ouest de l’Australie", "SAST": "heure normale d’Afrique méridionale", "HNCU": "heure normale de Cuba", "PDT": "heure d’été du Pacifique", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "LHDT": "heure d’été de Lord Howe", "NZST": "heure normale de la Nouvelle-Zélande", "ACDT": "heure d’été du centre de l’Australie", "GMT": "heure moyenne de Greenwich", "HNT": "heure normale de Terre-Neuve", "HKST": "heure d’été de Hong Kong", "EDT": "heure d’été de l’Est", "ADT": "heure d’été de l’Atlantique", "ART": "heure normale d’Argentine", "ARST": "heure d’été de l’Argentine", "LHST": "heure normale de Lord Howe", "NZDT": "heure d’été de la Nouvelle-Zélande", "WAT": "heure normale d’Afrique de l’Ouest", "HNPMX": "heure normale du Pacifique mexicain", "VET": "heure du Venezuela", "HNOG": "heure normale de l’Ouest du Groenland", "HEEG": "heure d’été de l’Est du Groenland", "BT": "heure du Bhoutan", "PST": "heure normale du Pacifique nord-américain", "WESZ": "heure d’été d’Europe de l’Ouest", "MEZ": "heure normale d’Europe centrale", "IST": "heure de l’Inde", "SRT": "heure du Suriname", "HEOG": "heure d’été de l’Ouest du Groenland", "AEST": "heure normale de l’Est de l’Australie", "JST": "heure normale du Japon", "SGT": "heure de Singapour", "MDT": "heure d’été de Macao", "WEZ": "heure normale d’Europe de l’Ouest", "HNEG": "heure normale de l’Est du Groenland", "WART": "heure normale de l’Ouest argentin", "MST": "heure normale de Macao", "CDT": "heure d’été du Centre", "ACST": "heure normale du centre de l’Australie", "OEZ": "heure normale d’Europe de l’Est", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "UYT": "heure normale de l’Uruguay", "HAT": "heure d’été de Terre-Neuve", "HKT": "heure normale de Hong Kong", "WITA": "heure du Centre indonésien", "GFT": "heure de la Guyane française", "ECT": "heure de l’Équateur", "WARST": "heure d’été de l’Ouest argentin", "COST": "heure d’été de Colombie", "EST": "heure normale de l’Est nord-américain", "HAST": "heure normale d’Hawaii - Aléoutiennes", "CLST": "heure d’été du Chili", "∅∅∅": "heure d’été de l’Amazonie", "AKDT": "heure d’été de l’Alaska", "MYT": "heure de la Malaisie", "TMST": "heure d’été du Turkménistan", "EAT": "heure normale d’Afrique de l’Est", "HECU": "heure d’été de Cuba", "WIB": "heure de l’Ouest indonésien", "ACWST": "heure normale du centre-ouest de l’Australie", "CLT": "heure normale du Chili", "TMT": "heure normale du Turkménistan", "WAST": "heure d’été d’Afrique de l’Ouest", "HEPMX": "heure d’été du Pacifique mexicain", "AKST": "heure normale de l’Alaska", "GYT": "heure du Guyana", "AWDT": "heure d’été de l’Ouest de l’Australie"},
++ locale: "fr_TG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AWST": "AWST", "MYT": "MYT", "SGT": "SGT", "GYT": "GYT", "ACDT": "ACDT", "HAST": "HAST", "ACWDT": "ACWDT", "WAST": "WAST", "SRT": "SRT", "EAT": "EAT", "ARST": "ARST", "CAT": "CAT", "ADT": "ADT", "CDT": "CDT", "NZST": "NZST", "BT": "BT", "CHAST": "CHAST", "VET": "VET", "TMT": "TMT", "CLT": "CLT", "HNEG": "HNEG", "HNCU": "HNCU", "CLST": "CLST", "MST": "MST", "HNNOMX": "HNNOMX", "JDT": "JDT", "UYT": "UYT", "WEZ": "WEZ", "WESZ": "WESZ", "HECU": "HECU", "SAST": "SAST", "COST": "COST", "GFT": "GFT", "HNPM": "HNPM", "HEPM": "HEPM", "JST": "JST", "MDT": "MDT", "NZDT": "NZDT", "HEEG": "HEEG", "AWDT": "AWDT", "UYST": "UYST", "HEOG": "HEOG", "WIB": "WIB", "CST": "CST", "LHST": "LHST", "IST": "IST", "PDT": "PDT", "HNPMX": "HNPMX", "WIT": "WIT", "∅∅∅": "∅∅∅", "GMT": "GMT", "PST": "PST", "OESZ": "OESZ", "WITA": "WITA", "AST": "AST", "HADT": "HADT", "HNT": "HNT", "HKST": "HKST", "HENOMX": "HENOMX", "LHDT": "LHDT", "AEST": "AEST", "CHADT": "CHADT", "HEPMX": "HEPMX", "AKDT": "AKDT", "COT": "COT", "ChST": "ChST", "WART": "WART", "ACST": "ACST", "TMST": "TMST", "ART": "ART", "ACWST": "ACWST", "AEDT": "AEDT", "WAT": "WAT", "HAT": "HAT", "EST": "EST", "EDT": "EDT", "HKT": "HKT", "ECT": "ECT", "BOT": "BOT", "MEZ": "MEZ", "OEZ": "OEZ", "WARST": "WARST", "HNOG": "HNOG", "MESZ": "MESZ", "AKST": "AKST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_TG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_TG) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_TG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_TG) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_TG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_TG) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_TG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_TG' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_TG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_TG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_TG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_TG'
+@@ -291,58 +200,7 @@ func (fr *fr_TG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_TG'
+@@ -351,65 +209,7 @@ func (fr *fr_TG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_TG'
+@@ -417,27 +217,6 @@ func (fr *fr_TG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_TG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_TG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_TG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_TG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_TG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_TG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_TG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_TN/fr_TN.go b/fr_TN/fr_TN.go
+index 16d0d9d..413f1a3 100644
+--- a/fr_TN/fr_TN.go
++++ b/fr_TN/fr_TN.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_TN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_TN' locale
+ func New() locales.Translator {
+ return &fr_TN{
+- locale: "fr_TN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "DT", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"MDT": "heure d’été des Rocheuses", "ART": "heure normale d’Argentine", "CHAST": "heure normale des îles Chatham", "IST": "heure de l’Inde", "WAT": "heure normale d’Afrique de l’Ouest", "WARST": "heure d’été de l’Ouest argentin", "HAST": "heure normale d’Hawaii - Aléoutiennes", "LHDT": "heure d’été de Lord Howe", "CHADT": "heure d’été des îles Chatham", "BOT": "heure de Bolivie", "ACST": "heure normale du centre de l’Australie", "HNEG": "heure normale de l’Est du Groenland", "EAT": "heure normale d’Afrique de l’Est", "CAT": "heure normale d’Afrique centrale", "CDT": "heure d’été du Centre", "UYT": "heure normale de l’Uruguay", "TMT": "heure normale du Turkménistan", "ChST": "heure des Chamorro", "HEPMX": "heure d’été du Pacifique mexicain", "WIB": "heure de l’Ouest indonésien", "PST": "heure normale du Pacifique nord-américain", "HKT": "heure normale de Hong Kong", "MEZ": "heure normale d’Europe centrale", "MESZ": "heure d’été d’Europe centrale", "AWDT": "heure d’été de l’Ouest de l’Australie", "HNCU": "heure normale de Cuba", "JST": "heure normale du Japon", "OEZ": "heure normale d’Europe de l’Est", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "GMT": "heure moyenne de Greenwich", "WEZ": "heure normale d’Europe de l’Ouest", "CLST": "heure d’été du Chili", "ECT": "heure de l’Équateur", "HECU": "heure d’été de Cuba", "HNPMX": "heure normale du Pacifique mexicain", "MST": "heure normale des Rocheuses", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "ARST": "heure d’été de l’Argentine", "PDT": "heure d’été du Pacifique", "AEST": "heure normale de l’Est de l’Australie", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "SGT": "heure de Singapour", "EST": "heure normale de l’Est nord-américain", "VET": "heure du Venezuela", "HNT": "heure normale de Terre-Neuve", "SAST": "heure normale d’Afrique méridionale", "TMST": "heure d’été du Turkménistan", "COST": "heure d’été de Colombie", "ADT": "heure d’été de l’Atlantique", "∅∅∅": "heure d’été de l’Amazonie", "AST": "heure normale de l’Atlantique", "MYT": "heure de la Malaisie", "WIT": "heure de l’Est indonésien", "ACWDT": "heure d’été du centre-ouest de l’Australie", "HAT": "heure d’été de Terre-Neuve", "HNOG": "heure normale de l’Ouest du Groenland", "AWST": "heure normale de l’Ouest de l’Australie", "ACWST": "heure normale du centre-ouest de l’Australie", "WITA": "heure du Centre indonésien", "NZDT": "heure d’été de la Nouvelle-Zélande", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "NZST": "heure normale de la Nouvelle-Zélande", "ACDT": "heure d’été du centre de l’Australie", "COT": "heure normale de Colombie", "HEOG": "heure d’été de l’Ouest du Groenland", "JDT": "heure d’été du Japon", "WART": "heure normale de l’Ouest argentin", "AKDT": "heure d’été de l’Alaska", "WAST": "heure d’été d’Afrique de l’Ouest", "OESZ": "heure d’été d’Europe de l’Est", "EDT": "heure d’été de l’Est", "SRT": "heure du Suriname", "BT": "heure du Bhoutan", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "LHST": "heure normale de Lord Howe", "HEEG": "heure d’été de l’Est du Groenland", "AKST": "heure normale de l’Alaska", "HKST": "heure d’été de Hong Kong", "CLT": "heure normale du Chili", "CST": "heure normale du centre nord-américain", "UYST": "heure d’été de l’Uruguay", "WESZ": "heure d’été d’Europe de l’Ouest", "AEDT": "heure d’été de l’Est de l’Australie", "GFT": "heure de la Guyane française", "GYT": "heure du Guyana"},
++ locale: "fr_TN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "DT", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACWST": "ACWST", "ACWDT": "ACWDT", "AEDT": "AEDT", "UYST": "UYST", "∅∅∅": "∅∅∅", "CST": "CST", "HADT": "HADT", "AWDT": "AWDT", "HEOG": "HEOG", "CLST": "CLST", "PDT": "PDT", "TMST": "TMST", "CLT": "CLT", "MDT": "MDT", "MYT": "MYT", "PST": "PST", "VET": "VET", "AKDT": "AKDT", "HAT": "HAT", "LHDT": "LHDT", "EDT": "EDT", "CDT": "CDT", "ADT": "ADT", "GMT": "GMT", "LHST": "LHST", "HECU": "HECU", "WEZ": "WEZ", "COST": "COST", "HNOG": "HNOG", "NZDT": "NZDT", "ARST": "ARST", "BOT": "BOT", "WAT": "WAT", "COT": "COT", "HKST": "HKST", "AWST": "AWST", "UYT": "UYT", "HEPMX": "HEPMX", "ChST": "ChST", "HNPMX": "HNPMX", "HNPM": "HNPM", "HEPM": "HEPM", "GFT": "GFT", "WARST": "WARST", "EAT": "EAT", "HNEG": "HNEG", "ACST": "ACST", "MST": "MST", "HNCU": "HNCU", "CHADT": "CHADT", "SGT": "SGT", "AKST": "AKST", "WIT": "WIT", "SAST": "SAST", "AST": "AST", "HEEG": "HEEG", "AEST": "AEST", "TMT": "TMT", "BT": "BT", "IST": "IST", "OESZ": "OESZ", "JST": "JST", "ECT": "ECT", "HAST": "HAST", "ACDT": "ACDT", "WESZ": "WESZ", "WITA": "WITA", "MEZ": "MEZ", "JDT": "JDT", "ART": "ART", "HENOMX": "HENOMX", "WAST": "WAST", "HNT": "HNT", "GYT": "GYT", "EST": "EST", "HKT": "HKT", "CAT": "CAT", "MESZ": "MESZ", "CHAST": "CHAST", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "WART": "WART", "NZST": "NZST", "WIB": "WIB", "SRT": "SRT"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_TN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_TN) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_TN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_TN) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_TN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_TN) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_TN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_TN' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_TN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_TN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_TN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_TN'
+@@ -291,58 +200,7 @@ func (fr *fr_TN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_TN'
+@@ -351,65 +209,7 @@ func (fr *fr_TN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_TN'
+@@ -417,27 +217,6 @@ func (fr *fr_TN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_TN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_TN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_TN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/fr_VU/fr_VU.go b/fr_VU/fr_VU.go
+index e22d390..87625d9 100644
+--- a/fr_VU/fr_VU.go
++++ b/fr_VU/fr_VU.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_VU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_VU' locale
+ func New() locales.Translator {
+ return &fr_VU{
+- locale: "fr_VU",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VT", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"WART": "heure normale de l’Ouest argentin", "WARST": "heure d’été de l’Ouest argentin", "CHADT": "heure d’été des îles Chatham", "HAT": "heure d’été de Terre-Neuve", "HKST": "heure d’été de Hong Kong", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "GMT": "heure moyenne de Greenwich", "MST": "heure normale de Macao", "SAST": "heure normale d’Afrique méridionale", "TMT": "heure normale du Turkménistan", "GYT": "heure du Guyana", "UYST": "heure d’été de l’Uruguay", "WESZ": "heure d’été d’Europe de l’Ouest", "ADT": "heure d’été de l’Atlantique", "HNOG": "heure normale de l’Ouest du Groenland", "AEST": "heure normale de l’Est de l’Australie", "NZDT": "heure d’été de la Nouvelle-Zélande", "CLT": "heure normale du Chili", "COT": "heure normale de Colombie", "HECU": "heure d’été de Cuba", "AKDT": "heure d’été de l’Alaska", "CHAST": "heure normale des îles Chatham", "CLST": "heure d’été du Chili", "HEPMX": "heure d’été du Pacifique mexicain", "WEZ": "heure normale d’Europe de l’Ouest", "MESZ": "heure d’été d’Europe centrale", "IST": "heure de l’Inde", "∅∅∅": "heure d’été du Pérou", "CST": "heure normale du centre nord-américain", "PST": "heure normale du Pacifique nord-américain", "ARST": "heure d’été de l’Argentine", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "MEZ": "heure normale d’Europe centrale", "WIT": "heure de l’Est indonésien", "ACWST": "heure normale du centre-ouest de l’Australie", "AWST": "heure normale de l’Ouest de l’Australie", "EST": "heure normale de l’Est nord-américain", "AST": "heure normale de l’Atlantique", "HEOG": "heure d’été de l’Ouest du Groenland", "JST": "heure normale du Japon", "ChST": "heure des Chamorro", "EAT": "heure normale d’Afrique de l’Est", "WAST": "heure d’été d’Afrique de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "LHDT": "heure d’été de Lord Howe", "BOT": "heure de Bolivie", "HEEG": "heure d’été de l’Est du Groenland", "TMST": "heure d’été du Turkménistan", "WAT": "heure normale d’Afrique de l’Ouest", "COST": "heure d’été de Colombie", "MYT": "heure de la Malaisie", "NZST": "heure normale de la Nouvelle-Zélande", "OESZ": "heure d’été d’Europe de l’Est", "MDT": "heure d’été de Macao", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "SRT": "heure du Suriname", "HNT": "heure normale de Terre-Neuve", "ECT": "heure de l’Équateur", "AKST": "heure normale de l’Alaska", "CDT": "heure d’été du Centre", "GFT": "heure de la Guyane française", "ACDT": "heure d’été du centre de l’Australie", "UYT": "heure normale de l’Uruguay", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "WITA": "heure du Centre indonésien", "JDT": "heure d’été du Japon", "SGT": "heure de Singapour", "HNCU": "heure normale de Cuba", "ART": "heure normale d’Argentine", "PDT": "heure d’été du Pacifique", "AEDT": "heure d’été de l’Est de l’Australie", "AWDT": "heure d’été de l’Ouest de l’Australie", "HKT": "heure normale de Hong Kong", "LHST": "heure normale de Lord Howe", "OEZ": "heure normale d’Europe de l’Est", "WIB": "heure de l’Ouest indonésien", "VET": "heure du Venezuela", "HNEG": "heure normale de l’Est du Groenland", "ACST": "heure normale du centre de l’Australie", "HAST": "heure normale d’Hawaii - Aléoutiennes", "BT": "heure du Bhoutan", "ACWDT": "heure d’été du centre-ouest de l’Australie", "CAT": "heure normale d’Afrique centrale", "EDT": "heure d’été de l’Est", "HNPMX": "heure normale du Pacifique mexicain"},
++ locale: "fr_VU",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VT", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HAT": "HAT", "WIT": "WIT", "HKT": "HKT", "WITA": "WITA", "MESZ": "MESZ", "GFT": "GFT", "MDT": "MDT", "NZDT": "NZDT", "AST": "AST", "HAST": "HAST", "HEPM": "HEPM", "HECU": "HECU", "WART": "WART", "TMST": "TMST", "∅∅∅": "∅∅∅", "EAT": "EAT", "HENOMX": "HENOMX", "CLST": "CLST", "JST": "JST", "HNT": "HNT", "GYT": "GYT", "EST": "EST", "OESZ": "OESZ", "SAST": "SAST", "WIB": "WIB", "HADT": "HADT", "AEST": "AEST", "UYT": "UYT", "COT": "COT", "HNPM": "HNPM", "JDT": "JDT", "AWST": "AWST", "ACWDT": "ACWDT", "BT": "BT", "WAT": "WAT", "AKDT": "AKDT", "CLT": "CLT", "GMT": "GMT", "MYT": "MYT", "WAST": "WAST", "TMT": "TMT", "CAT": "CAT", "MST": "MST", "PDT": "PDT", "AKST": "AKST", "CST": "CST", "HNNOMX": "HNNOMX", "HNEG": "HNEG", "ACWST": "ACWST", "UYST": "UYST", "WARST": "WARST", "COST": "COST", "HKST": "HKST", "CDT": "CDT", "ARST": "ARST", "MEZ": "MEZ", "ACST": "ACST", "LHST": "LHST", "HEOG": "HEOG", "EDT": "EDT", "ART": "ART", "LHDT": "LHDT", "CHAST": "CHAST", "WEZ": "WEZ", "ECT": "ECT", "BOT": "BOT", "AWDT": "AWDT", "CHADT": "CHADT", "IST": "IST", "HNCU": "HNCU", "WESZ": "WESZ", "SGT": "SGT", "VET": "VET", "HNOG": "HNOG", "NZST": "NZST", "ADT": "ADT", "ACDT": "ACDT", "HEEG": "HEEG", "AEDT": "AEDT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "OEZ": "OEZ", "ChST": "ChST", "SRT": "SRT", "PST": "PST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_VU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_VU) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_VU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_VU) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_VU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_VU) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_VU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_VU' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_VU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_VU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_VU) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_VU'
+@@ -291,58 +200,7 @@ func (fr *fr_VU) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_VU'
+@@ -351,65 +209,7 @@ func (fr *fr_VU) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_VU'
+@@ -417,27 +217,6 @@ func (fr *fr_VU) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_VU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_VU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_VU) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/fr_WF/fr_WF.go b/fr_WF/fr_WF.go
+index 3ce777e..477652a 100644
+--- a/fr_WF/fr_WF.go
++++ b/fr_WF/fr_WF.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_WF struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_WF' locale
+ func New() locales.Translator {
+ return &fr_WF{
+- locale: "fr_WF",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"CAT": "heure normale d’Afrique centrale", "WAT": "heure normale d’Afrique de l’Ouest", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "CDT": "heure d’été du Centre", "SGT": "heure de Singapour", "HECU": "heure d’été de Cuba", "MST": "heure normale de Macao", "HNPMX": "heure normale du Pacifique mexicain", "ART": "heure normale d’Argentine", "CHAST": "heure normale des îles Chatham", "WART": "heure normale de l’Ouest argentin", "HENOMX": "heure d’été du Nord-Ouest du Mexique", "GYT": "heure du Guyana", "HAST": "heure normale d’Hawaii - Aléoutiennes", "AKST": "heure normale de l’Alaska", "CST": "heure normale du centre nord-américain", "ADT": "heure d’été de l’Atlantique", "BT": "heure du Bhoutan", "OEZ": "heure normale d’Europe de l’Est", "COST": "heure d’été de Colombie", "EDT": "heure d’été de l’Est", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "VET": "heure du Venezuela", "ACWST": "heure normale du centre-ouest de l’Australie", "AEDT": "heure d’été de l’Est de l’Australie", "AWST": "heure normale de l’Ouest de l’Australie", "HNEG": "heure normale de l’Est du Groenland", "PDT": "heure d’été du Pacifique", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "WAST": "heure d’été d’Afrique de l’Ouest", "OESZ": "heure d’été d’Europe de l’Est", "WIT": "heure de l’Est indonésien", "PST": "heure normale du Pacifique nord-américain", "MEZ": "heure normale d’Europe centrale", "LHDT": "heure d’été de Lord Howe", "CHADT": "heure d’été des îles Chatham", "HNOG": "heure normale de l’Ouest du Groenland", "MESZ": "heure d’été d’Europe centrale", "LHST": "heure normale de Lord Howe", "AKDT": "heure d’été de l’Alaska", "SRT": "heure du Suriname", "HEOG": "heure d’été de l’Ouest du Groenland", "UYT": "heure normale de l’Uruguay", "UYST": "heure d’été de l’Uruguay", "BOT": "heure de Bolivie", "EAT": "heure normale d’Afrique de l’Est", "EST": "heure normale de l’Est nord-américain", "AST": "heure normale de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "WITA": "heure du Centre indonésien", "IST": "heure de l’Inde", "JDT": "heure d’été du Japon", "ChST": "heure des Chamorro", "WARST": "heure d’été de l’Ouest argentin", "MYT": "heure de la Malaisie", "WIB": "heure de l’Ouest indonésien", "WEZ": "heure normale d’Europe de l’Ouest", "SAST": "heure normale d’Afrique méridionale", "CLST": "heure d’été du Chili", "∅∅∅": "heure d’été de l’Amazonie", "CLT": "heure normale du Chili", "HEEG": "heure d’été de l’Est du Groenland", "HEPMX": "heure d’été du Pacifique mexicain", "HAT": "heure d’été de Terre-Neuve", "ARST": "heure d’été de l’Argentine", "AEST": "heure normale de l’Est de l’Australie", "HKST": "heure d’été de Hong Kong", "NZST": "heure normale de la Nouvelle-Zélande", "NZDT": "heure d’été de la Nouvelle-Zélande", "TMT": "heure normale du Turkménistan", "ACDT": "heure d’été du centre de l’Australie", "ACWDT": "heure d’été du centre-ouest de l’Australie", "MDT": "heure d’été de Macao", "HNCU": "heure normale de Cuba", "AWDT": "heure d’été de l’Ouest de l’Australie", "GFT": "heure de la Guyane française", "ECT": "heure de l’Équateur", "GMT": "heure moyenne de Greenwich", "TMST": "heure d’été du Turkménistan", "ACST": "heure normale du centre de l’Australie", "COT": "heure normale de Colombie", "WESZ": "heure d’été d’Europe de l’Ouest", "HKT": "heure normale de Hong Kong", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "JST": "heure normale du Japon"},
++ locale: "fr_WF",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MEZ": "MEZ", "WESZ": "WESZ", "HECU": "HECU", "AST": "AST", "BOT": "BOT", "CST": "CST", "LHST": "LHST", "∅∅∅": "∅∅∅", "CAT": "CAT", "EDT": "EDT", "HADT": "HADT", "BT": "BT", "AEDT": "AEDT", "AKDT": "AKDT", "HNT": "HNT", "MESZ": "MESZ", "CHADT": "CHADT", "UYST": "UYST", "ACWDT": "ACWDT", "WAST": "WAST", "WARST": "WARST", "HKT": "HKT", "ChST": "ChST", "HNCU": "HNCU", "WEZ": "WEZ", "SGT": "SGT", "MDT": "MDT", "NZST": "NZST", "WIB": "WIB", "LHDT": "LHDT", "SAST": "SAST", "HKST": "HKST", "CDT": "CDT", "EAT": "EAT", "HNNOMX": "HNNOMX", "AKST": "AKST", "WIT": "WIT", "MST": "MST", "AWST": "AWST", "COT": "COT", "CLST": "CLST", "HEEG": "HEEG", "VET": "VET", "TMST": "TMST", "ADT": "ADT", "HNOG": "HNOG", "NZDT": "NZDT", "ACST": "ACST", "HNEG": "HNEG", "HENOMX": "HENOMX", "HNPM": "HNPM", "OESZ": "OESZ", "GYT": "GYT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "CHAST": "CHAST", "PDT": "PDT", "WITA": "WITA", "ECT": "ECT", "ART": "ART", "ACDT": "ACDT", "WAT": "WAT", "WART": "WART", "ARST": "ARST", "JST": "JST", "PST": "PST", "EST": "EST", "CLT": "CLT", "SRT": "SRT", "ACWST": "ACWST", "OEZ": "OEZ", "TMT": "TMT", "GMT": "GMT", "JDT": "JDT", "HAT": "HAT", "HEOG": "HEOG", "HAST": "HAST", "AWDT": "AWDT", "MYT": "MYT", "HEPM": "HEPM", "UYT": "UYT", "IST": "IST", "GFT": "GFT", "COST": "COST", "AEST": "AEST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_WF) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_WF) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_WF) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_WF) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_WF) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_WF) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_WF) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_WF' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_WF) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_WF' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_WF) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_WF'
+@@ -291,58 +200,7 @@ func (fr *fr_WF) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_WF'
+@@ -351,65 +209,7 @@ func (fr *fr_WF) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_WF'
+@@ -417,27 +217,6 @@ func (fr *fr_WF) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_WF) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_WF) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_WF) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_WF) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_WF) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_WF) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_WF) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fr_YT/fr_YT.go b/fr_YT/fr_YT.go
+index 4adffa1..e3850c5 100644
+--- a/fr_YT/fr_YT.go
++++ b/fr_YT/fr_YT.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type fr_YT struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fr_YT' locale
+ func New() locales.Translator {
+ return &fr_YT{
+- locale: "fr_YT",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"},
+- daysAbbreviated: []string{"dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"di", "lu", "ma", "me", "je", "ve", "sa"},
+- daysWide: []string{"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. J.-C.", "ap. J.-C."},
+- erasNarrow: []string{"av. J.-C.", "ap. J.-C."},
+- erasWide: []string{"avant Jésus-Christ", "après Jésus-Christ"},
+- timezones: map[string]string{"HEPMX": "heure d’été du Pacifique mexicain", "UYT": "heure normale de l’Uruguay", "WEZ": "heure normale d’Europe de l’Ouest", "ChST": "heure des Chamorro", "GFT": "heure de la Guyane française", "WAT": "heure normale d’Afrique de l’Ouest", "∅∅∅": "heure d’été de Brasilia", "CDT": "heure d’été du Centre", "VET": "heure du Venezuela", "AEST": "heure normale de l’Est de l’Australie", "WITA": "heure du Centre indonésien", "HNPM": "heure normale de Saint-Pierre-et-Miquelon", "IST": "heure de l’Inde", "CLST": "heure d’été du Chili", "COST": "heure d’été de Colombie", "EDT": "heure d’été de l’Est", "SRT": "heure du Suriname", "HKT": "heure normale de Hong Kong", "OESZ": "heure d’été d’Europe de l’Est", "COT": "heure normale de Colombie", "AKST": "heure normale de l’Alaska", "HADT": "heure d’été d’Hawaii - Aléoutiennes", "PST": "heure normale du Pacifique nord-américain", "HEOG": "heure d’été de l’Ouest du Groenland", "HEPM": "heure d’été de Saint-Pierre-et-Miquelon", "ACDT": "heure d’été du centre de l’Australie", "GMT": "heure moyenne de Greenwich", "WESZ": "heure d’été d’Europe de l’Ouest", "HAT": "heure d’été de Terre-Neuve", "HEEG": "heure d’été de l’Est du Groenland", "OEZ": "heure normale d’Europe de l’Est", "WARST": "heure d’été de l’Ouest argentin", "SGT": "heure de Singapour", "AST": "heure normale de l’Atlantique", "HNT": "heure normale de Terre-Neuve", "HNEG": "heure normale de l’Est du Groenland", "HNNOMX": "heure normale du Nord-Ouest du Mexique", "HAST": "heure normale d’Hawaii - Aléoutiennes", "ACWDT": "heure d’été du centre-ouest de l’Australie", "LHDT": "heure d’été de Lord Howe", "JST": "heure normale du Japon", "TMST": "heure d’été du Turkménistan", "UYST": "heure d’été de l’Uruguay", "MYT": "heure de la Malaisie", "WIT": "heure de l’Est indonésien", "AWDT": "heure d’été de l’Ouest de l’Australie", "EST": "heure normale de l’Est nord-américain", "ACWST": "heure normale du centre-ouest de l’Australie", "ARST": "heure d’été de l’Argentine", "WIB": "heure de l’Ouest indonésien", "GYT": "heure du Guyana", "HKST": "heure d’été de Hong Kong", "CST": "heure normale du centre nord-américain", "HNCU": "heure normale de Cuba", "CHADT": "heure d’été des îles Chatham", "CLT": "heure normale du Chili", "TMT": "heure normale du Turkménistan", "ECT": "heure de l’Équateur", "WART": "heure normale de l’Ouest argentin", "HNPMX": "heure normale du Pacifique mexicain", "HNOG": "heure normale de l’Ouest du Groenland", "MESZ": "heure d’été d’Europe centrale", "SAST": "heure normale d’Afrique méridionale", "ACST": "heure normale du centre de l’Australie", "MST": "heure normale de Macao", "AKDT": "heure d’été de l’Alaska", "ADT": "heure d’été de l’Atlantique", "NZST": "heure normale de la Nouvelle-Zélande", "CAT": "heure normale d’Afrique centrale", "EAT": "heure normale d’Afrique de l’Est", "HECU": "heure d’été de Cuba", "BT": "heure du Bhoutan", "PDT": "heure d’été du Pacifique", "CHAST": "heure normale des îles Chatham", "JDT": "heure d’été du Japon", "BOT": "heure de Bolivie", "MDT": "heure d’été de Macao", "ART": "heure normale d’Argentine", "AEDT": "heure d’été de l’Est de l’Australie", "AWST": "heure normale de l’Ouest de l’Australie", "MEZ": "heure normale d’Europe centrale", "LHST": "heure normale de Lord Howe", "NZDT": "heure d’été de la Nouvelle-Zélande", "WAST": "heure d’été d’Afrique de l’Ouest", "HENOMX": "heure d’été du Nord-Ouest du Mexique"},
++ locale: "fr_YT",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MEZ": "MEZ", "AEDT": "AEDT", "EST": "EST", "CLST": "CLST", "ACST": "ACST", "ACDT": "ACDT", "MESZ": "MESZ", "CAT": "CAT", "GMT": "GMT", "HAST": "HAST", "HNNOMX": "HNNOMX", "PDT": "PDT", "GFT": "GFT", "TMT": "TMT", "UYST": "UYST", "AKST": "AKST", "WIT": "WIT", "HKST": "HKST", "MDT": "MDT", "LHDT": "LHDT", "ACWST": "ACWST", "CHAST": "CHAST", "ECT": "ECT", "COT": "COT", "HADT": "HADT", "AWST": "AWST", "WESZ": "WESZ", "HNT": "HNT", "IST": "IST", "WART": "WART", "HAT": "HAT", "MST": "MST", "SRT": "SRT", "LHST": "LHST", "AWDT": "AWDT", "UYT": "UYT", "HNOG": "HNOG", "NZST": "NZST", "HNEG": "HNEG", "HEOG": "HEOG", "HEEG": "HEEG", "SGT": "SGT", "HECU": "HECU", "HNPMX": "HNPMX", "CST": "CST", "EAT": "EAT", "BT": "BT", "HEPMX": "HEPMX", "NZDT": "NZDT", "ACWDT": "ACWDT", "AEST": "AEST", "COST": "COST", "WAST": "WAST", "HKT": "HKT", "WITA": "WITA", "ART": "ART", "ARST": "ARST", "HEPM": "HEPM", "AKDT": "AKDT", "WAT": "WAT", "GYT": "GYT", "TMST": "TMST", "EDT": "EDT", "ChST": "ChST", "HENOMX": "HENOMX", "HNCU": "HNCU", "OESZ": "OESZ", "CLT": "CLT", "PST": "PST", "OEZ": "OEZ", "SAST": "SAST", "WIB": "WIB", "CDT": "CDT", "MYT": "MYT", "JST": "JST", "JDT": "JDT", "AST": "AST", "ADT": "ADT", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "VET": "VET", "BOT": "BOT", "CHADT": "CHADT", "WEZ": "WEZ", "WARST": "WARST"},
+ }
+ }
+ 
+@@ -147,7 +120,7 @@ func (fr *fr_YT) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fr *fr_YT) MonthsAbbreviated() []string {
+- return fr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -157,7 +130,7 @@ func (fr *fr_YT) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fr *fr_YT) MonthsNarrow() []string {
+- return fr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -167,7 +140,7 @@ func (fr *fr_YT) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fr *fr_YT) MonthsWide() []string {
+- return fr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -213,77 +186,13 @@ func (fr *fr_YT) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fr_YT' and handles both Whole and Real numbers based on 'v'
+ func (fr *fr_YT) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fr_YT' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fr *fr_YT) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fr.percentSuffix...)
+-
+- b = append(b, fr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fr_YT'
+@@ -291,58 +200,7 @@ func (fr *fr_YT) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fr_YT'
+@@ -351,65 +209,7 @@ func (fr *fr_YT) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(fr.group) - 1; j >= 0; j-- {
+- b = append(b, fr.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, fr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, fr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fr_YT'
+@@ -417,27 +217,6 @@ func (fr *fr_YT) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +225,6 @@ func (fr *fr_YT) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +233,6 @@ func (fr *fr_YT) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (fr *fr_YT) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +249,6 @@ func (fr *fr_YT) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +257,6 @@ func (fr *fr_YT) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +265,6 @@ func (fr *fr_YT) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +273,5 @@ func (fr *fr_YT) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fur/fur.go b/fur/fur.go
+index 16be12d..a9528ab 100644
+--- a/fur/fur.go
++++ b/fur/fur.go
+@@ -69,7 +69,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"pdC", "ddC"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"JDT": "JDT", "HNEG": "HNEG", "WARST": "WARST", "UYST": "UYST", "WIT": "WIT", "SRT": "SRT", "HEOG": "HEOG", "PDT": "PDT", "ACWST": "ACWST", "HEPM": "HEPM", "NZDT": "NZDT", "AKST": "AKST", "ChST": "ChST", "CHADT": "CHADT", "CLT": "CLT", "BOT": "BOT", "ARST": "ARST", "HNPM": "HNPM", "GFT": "GFT", "ECT": "ECT", "AEST": "AEST", "PST": "PST", "HNCU": "HNCU", "EST": "EST", "ADT": "ADT", "CST": "CST", "AEDT": "AEDT", "OEZ": "Ore standard de Europe orientâl", "COT": "COT", "HNPMX": "HNPMX", "GYT": "GYT", "ACWDT": "ACWDT", "AWST": "AWST", "EAT": "EAT", "HECU": "HECU", "BT": "BT", "MST": "MST", "AWDT": "AWDT", "MEZ": "Ore standard de Europe centrâl", "HEEG": "HEEG", "WAST": "WAST", "UYT": "UYT", "WEZ": "Ore standard de Europe ocidentâl", "TMST": "TMST", "ACDT": "ACDT", "COST": "COST", "VET": "VET", "MYT": "MYT", "CDT": "CDT", "TMT": "TMT", "WAT": "WAT", "HEPMX": "HEPMX", "AKDT": "AKDT", "ART": "ART", "HNOG": "HNOG", "HAT": "HAT", "JST": "JST", "CAT": "CAT", "WART": "WART", "HENOMX": "HENOMX", "AST": "AST", "SGT": "SGT", "MESZ": "Ore estive de Europe centrâl", "HAST": "HAST", "LHST": "LHST", "CHAST": "CHAST", "IST": "IST", "∅∅∅": "∅∅∅", "ACST": "ACST", "HNNOMX": "HNNOMX", "MDT": "MDT", "HKST": "HKST", "CLST": "CLST", "OESZ": "Ore estive de Europe orientâl", "WESZ": "Ore estive de Europe ocidentâl", "HADT": "HADT", "HNT": "HNT", "HKT": "HKT", "WITA": "WITA", "LHDT": "LHDT", "NZST": "NZST", "SAST": "SAST", "WIB": "WIB", "EDT": "EDT", "GMT": "GMT"},
++ timezones: map[string]string{"TMT": "TMT", "EST": "EST", "GMT": "GMT", "BOT": "BOT", "LHST": "LHST", "AEST": "AEST", "UYST": "UYST", "HNOG": "HNOG", "CDT": "CDT", "AWST": "AWST", "GFT": "GFT", "WIT": "WIT", "CST": "CST", "EAT": "EAT", "HEEG": "HEEG", "WAT": "WAT", "MST": "MST", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "NZST": "NZST", "HNPM": "HNPM", "HEPM": "HEPM", "JDT": "JDT", "AEDT": "AEDT", "UYT": "UYT", "HEPMX": "HEPMX", "HAT": "HAT", "EDT": "EDT", "MDT": "MDT", "HADT": "HADT", "ACDT": "ACDT", "PST": "PST", "VET": "VET", "HAST": "HAST", "AKDT": "AKDT", "CAT": "CAT", "AWDT": "AWDT", "WIB": "WIB", "MEZ": "Ore standard de Europe centrâl", "COST": "COST", "HEOG": "HEOG", "CLT": "CLT", "ARST": "ARST", "HNEG": "HNEG", "MYT": "MYT", "OESZ": "Ore estive de Europe orientâl", "HNT": "HNT", "SAST": "SAST", "ACST": "ACST", "WEZ": "Ore standard de Europe ocidentâl", "GYT": "GYT", "HNPMX": "HNPMX", "TMST": "TMST", "ChST": "ChST", "HENOMX": "HENOMX", "PDT": "PDT", "SGT": "SGT", "CHADT": "CHADT", "IST": "IST", "HECU": "HECU", "OEZ": "Ore standard de Europe orientâl", "HKT": "HKT", "WITA": "WITA", "ACWST": "ACWST", "CHAST": "CHAST", "HNNOMX": "HNNOMX", "JST": "JST", "AST": "AST", "BT": "BT", "AKST": "AKST", "ADT": "ADT", "WESZ": "Ore estive de Europe ocidentâl", "CLST": "CLST", "MESZ": "Ore estive de Europe centrâl", "NZDT": "NZDT", "ART": "ART", "LHDT": "LHDT", "ECT": "ECT", "SRT": "SRT", "WART": "WART", "WARST": "WARST", "COT": "COT", "HKST": "HKST", "ACWDT": "ACWDT", "WAST": "WAST"},
+ }
+ }
+ 
+diff --git a/fur_IT/fur_IT.go b/fur_IT/fur_IT.go
+index 829034e..64b35ea 100644
+--- a/fur_IT/fur_IT.go
++++ b/fur_IT/fur_IT.go
+@@ -10,66 +10,45 @@ import (
+ )
+ 
+ type fur_IT struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fur_IT' locale
+ func New() locales.Translator {
+ return &fur_IT{
+- locale: "fur_IT",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "Zen", "Fev", "Mar", "Avr", "Mai", "Jug", "Lui", "Avo", "Set", "Otu", "Nov", "Dic"},
+- monthsNarrow: []string{"", "Z", "F", "M", "A", "M", "J", "L", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Zenâr", "Fevrâr", "Març", "Avrîl", "Mai", "Jugn", "Lui", "Avost", "Setembar", "Otubar", "Novembar", "Dicembar"},
+- daysAbbreviated: []string{"dom", "lun", "mar", "mie", "joi", "vin", "sab"},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysWide: []string{"domenie", "lunis", "martars", "miercus", "joibe", "vinars", "sabide"},
+- periodsAbbreviated: []string{"a.", "p."},
+- periodsWide: []string{"a.", "p."},
+- erasAbbreviated: []string{"pdC", "ddC"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"WAT": "WAT", "MEZ": "Ore standard de Europe centrâl", "CLT": "CLT", "BOT": "BOT", "AEDT": "AEDT", "NZDT": "NZDT", "HEPMX": "HEPMX", "CDT": "CDT", "HNOG": "HNOG", "WITA": "WITA", "EDT": "EDT", "HNEG": "HNEG", "OEZ": "Ore standard de Europe orientâl", "CAT": "CAT", "HENOMX": "HENOMX", "CST": "CST", "VET": "VET", "ACWDT": "ACWDT", "MDT": "MDT", "SRT": "SRT", "ACWST": "ACWST", "WIT": "WIT", "BT": "BT", "HAT": "HAT", "JDT": "JDT", "ECT": "ECT", "AKST": "AKST", "UYST": "UYST", "WIB": "WIB", "GMT": "GMT", "EST": "EST", "IST": "IST", "ACST": "ACST", "AST": "AST", "GYT": "GYT", "HEOG": "HEOG", "CHADT": "CHADT", "JST": "JST", "SGT": "SGT", "CLST": "CLST", "TMT": "TMT", "WART": "WART", "ART": "ART", "PDT": "PDT", "HKT": "HKT", "MYT": "MYT", "HNT": "HNT", "ACDT": "ACDT", "OESZ": "Ore estive de Europe orientâl", "COST": "COST", "HECU": "HECU", "HADT": "HADT", "WEZ": "Ore standard de Europe ocidentâl", "∅∅∅": "∅∅∅", "ChST": "ChST", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "HNPMX": "HNPMX", "ADT": "ADT", "UYT": "UYT", "HNPM": "HNPM", "LHST": "LHST", "LHDT": "LHDT", "EAT": "EAT", "WARST": "WARST", "AKDT": "AKDT", "AEST": "AEST", "AWDT": "AWDT", "SAST": "SAST", "GFT": "GFT", "MST": "MST", "PST": "PST", "HKST": "HKST", "HEPM": "HEPM", "NZST": "NZST", "WAST": "WAST", "COT": "COT", "HAST": "HAST", "ARST": "ARST", "WESZ": "Ore estive de Europe ocidentâl", "HEEG": "HEEG", "TMST": "TMST", "AWST": "AWST", "CHAST": "CHAST", "MESZ": "Ore estive de Europe centrâl"},
++ locale: "fur_IT",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AEST": "AEST", "HKT": "HKT", "TMT": "TMT", "CLST": "CLST", "ARST": "ARST", "SRT": "SRT", "LHDT": "LHDT", "AEDT": "AEDT", "ChST": "ChST", "HNPM": "HNPM", "BT": "BT", "HNCU": "HNCU", "SGT": "SGT", "WAT": "WAT", "AKDT": "AKDT", "HKST": "HKST", "ART": "ART", "AWDT": "AWDT", "LHST": "LHST", "MYT": "MYT", "ACWDT": "ACWDT", "WEZ": "WEZ", "WARST": "WARST", "WIB": "WIB", "UYST": "UYST", "HEOG": "HEOG", "HEPM": "HEPM", "IST": "IST", "PST": "PST", "PDT": "PDT", "SAST": "SAST", "COT": "COT", "HNNOMX": "HNNOMX", "CHADT": "CHADT", "HNPMX": "HNPMX", "GFT": "GFT", "WART": "WART", "HADT": "HADT", "ACST": "ACST", "ACWST": "ACWST", "CHAST": "CHAST", "WIT": "WIT", "MST": "MST", "MESZ": "MESZ", "HNEG": "HNEG", "AWST": "AWST", "HEPMX": "HEPMX", "WAST": "WAST", "MEZ": "MEZ", "VET": "VET", "HNOG": "HNOG", "WITA": "WITA", "CDT": "CDT", "NZST": "NZST", "NZDT": "NZDT", "ADT": "ADT", "EST": "EST", "TMST": "TMST", "CAT": "CAT", "CST": "CST", "AST": "AST", "COST": "COST", "JST": "JST", "UYT": "UYT", "∅∅∅": "∅∅∅", "HECU": "HECU", "AKST": "AKST", "OEZ": "OEZ", "HAT": "HAT", "EDT": "EDT", "GMT": "GMT", "EAT": "EAT", "HAST": "HAST", "JDT": "JDT", "GYT": "GYT", "ECT": "ECT", "MDT": "MDT", "ACDT": "ACDT", "OESZ": "OESZ", "HNT": "HNT", "HEEG": "HEEG", "WESZ": "WESZ", "HENOMX": "HENOMX", "CLT": "CLT", "BOT": "BOT"},
+ }
+ }
+ 
+@@ -122,7 +101,7 @@ func (fur *fur_IT) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fur *fur_IT) MonthsAbbreviated() []string {
+- return fur.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -132,7 +111,7 @@ func (fur *fur_IT) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fur *fur_IT) MonthsNarrow() []string {
+- return fur.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -142,7 +121,7 @@ func (fur *fur_IT) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fur *fur_IT) MonthsWide() []string {
+- return fur.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -188,73 +167,13 @@ func (fur *fur_IT) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fur_IT' and handles both Whole and Real numbers based on 'v'
+ func (fur *fur_IT) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fur.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fur.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fur.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fur_IT' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fur *fur_IT) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fur.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fur.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fur.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fur_IT'
+@@ -262,60 +181,7 @@ func (fur *fur_IT) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fur.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fur.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fur.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(fur.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, fur.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, fur.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fur.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fur_IT'
+@@ -324,72 +190,7 @@ func (fur *fur_IT) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fur.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fur.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fur.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(fur.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, fur.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, fur.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(fur.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, fur.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fur.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fur_IT'
+@@ -397,27 +198,6 @@ func (fur *fur_IT) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -426,27 +206,6 @@ func (fur *fur_IT) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -455,19 +214,6 @@ func (fur *fur_IT) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x69}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fur.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x61, 0x6c}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -476,21 +222,6 @@ func (fur *fur_IT) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fur.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x69}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fur.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x61, 0x6c}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -499,19 +230,6 @@ func (fur *fur_IT) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fur.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -520,26 +238,6 @@ func (fur *fur_IT) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fur.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fur.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -548,30 +246,6 @@ func (fur *fur_IT) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fur.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fur.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -580,34 +254,5 @@ func (fur *fur_IT) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fur.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fur.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fur.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/fy/fy.go b/fy/fy.go
+index 4a65510..d1b400f 100644
+--- a/fy/fy.go
++++ b/fy/fy.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"f.Kr.", "n.Kr."},
+ erasNarrow: []string{"f.K.", "n.K."},
+ erasWide: []string{"Foar Kristus", "nei Kristus"},
+- timezones: map[string]string{"EST": "Eastern-standerttiid", "EDT": "Eastern-simmertiid", "UYST": "Uruguayaanske simmertiid", "CAT": "Sintraal-Afrikaanske tiid", "HNCU": "Kubaanske standerttiid", "PDT": "Pasifik-simmertiid", "WESZ": "West-Europeeske simmertiid", "AWST": "West-Australyske standerttiid", "ACDT": "Midden-Australyske simmertiid", "∅∅∅": "Peruaanske simmertiid", "AST": "Atlantic-standerttiid", "WIB": "West-Yndonezyske tiid", "HADT": "Hawaii-Aleoetyske simmertiid", "WITA": "Sintraal-Yndonezyske tiid", "ECT": "Ecuadoraanske tiid", "OEZ": "East-Europeeske standerttiid", "HNPMX": "HNPMX", "PST": "Pasifik-standerttiid", "NZST": "Nij-Seelânske standerttiid", "CHAST": "Chatham standerttiid", "LHST": "Lord Howe-eilânske standerttiid", "HNNOMX": "HNNOMX", "ADT": "Atlantic-simmertiid", "UYT": "Uruguayaanske standerttiid", "AKDT": "Alaska-simmertiid", "BT": "Bhutaanske tiid", "HNOG": "West-Groenlânske standerttiid", "CST": "Central-standerttiid", "WEZ": "West-Europeeske standerttiid", "TMT": "Turkmeense standerttiid", "HEEG": "East-Groenlânske simmertiid", "OESZ": "East-Europeeske simmertiid", "COST": "Kolombiaanske simmertiid", "HEPMX": "HEPMX", "MYT": "Maleisyske tiid", "HKT": "Hongkongse standerttiid", "BOT": "Boliviaanske tiid", "AEDT": "East-Australyske simmertiid", "HKST": "Hongkongse simmertiid", "WAT": "West-Afrikaanske standerttiid", "MDT": "Macause simmertiid", "ART": "Argentynske standerttiid", "AEST": "East-Australyske standerttiid", "AWDT": "West-Australyske simmertiid", "EAT": "East-Afrikaanske tiid", "WARST": "West-Argentynske simmertiid", "HEOG": "West-Groenlânske simmertiid", "IST": "Yndiaaske tiid", "GYT": "Guyaanske tiid", "ACWST": "Midden-Australyske westelijke standerttiid", "HAT": "Newfoundlânske-simmertiid", "HNPM": "Saint Pierre en Miquelon-standerttiid", "AKST": "Alaska-standerttiid", "HAST": "Hawaii-Aleoetyske standerttiid", "ACWDT": "Midden-Australyske westelijke simmertiid", "HNT": "Newfoundlânske-standerttiid", "SAST": "Sûd-Afrikaanske tiid", "JDT": "Japanske simmertiid", "WAST": "West-Afrikaanske simmertiid", "WART": "West-Argentynske standerttiid", "VET": "Fenezolaanske tiid", "HEPM": "Saint Pierre en Miquelon-simmertiid", "MESZ": "Midden-Europeeske simmertiid", "WIT": "East-Yndonezyske tiid", "SRT": "Surinaamske tiid", "TMST": "Turkmeense simmertiid", "GFT": "Frâns-Guyaanske tiid", "COT": "Kolombiaanske standerttiid", "HENOMX": "HENOMX", "GMT": "Greenwich Mean Time", "SGT": "Singaporese standerttiid", "CLST": "Sileenske simmertiid", "ChST": "Chamorro-tiid", "MST": "Macause standerttiid", "ARST": "Argentynske simmertiid", "CLT": "Sileenske standerttiid", "CHADT": "Chatham simmertiid", "HNEG": "East-Groenlânske standerttiid", "ACST": "Midden-Australyske standerttiid", "HECU": "Kubaanske simmertiid", "CDT": "Central-simmertiid", "MEZ": "Midden-Europeeske standerttiid", "NZDT": "Nij-Seelânske simmertiid", "LHDT": "Lord Howe-eilânske simmertiid", "JST": "Japanske standerttiid"},
++ timezones: map[string]string{"HNOG": "West-Groenlânske standerttiid", "CLT": "Sileenske standerttiid", "WITA": "Sintraal-Yndonezyske tiid", "HADT": "Hawaii-Aleoetyske simmertiid", "CHAST": "Chatham standerttiid", "∅∅∅": "Acre-simmertiid", "WEZ": "West-Europeeske standerttiid", "WESZ": "West-Europeeske simmertiid", "EDT": "Eastern-simmertiid", "NZST": "Nij-Seelânske standerttiid", "ARST": "Argentynske simmertiid", "AWST": "West-Australyske standerttiid", "ACWDT": "Midden-Australyske westelijke simmertiid", "VET": "Fenezolaanske tiid", "HECU": "Kubaanske simmertiid", "OESZ": "East-Europeeske simmertiid", "MYT": "Maleisyske tiid", "LHST": "Lord Howe-eilânske standerttiid", "PST": "Pasifik-standerttiid", "GFT": "Frâns-Guyaanske tiid", "WART": "West-Argentynske standerttiid", "HKT": "Hongkongse standerttiid", "BT": "Bhutaanske tiid", "CAT": "Sintraal-Afrikaanske tiid", "AWDT": "West-Australyske simmertiid", "SAST": "Sûd-Afrikaanske tiid", "SRT": "Surinaamske tiid", "ECT": "Ecuadoraanske tiid", "GMT": "Greenwich Mean Time", "EAT": "East-Afrikaanske tiid", "HNNOMX": "HNNOMX", "AEST": "East-Australyske standerttiid", "GYT": "Guyaanske tiid", "COST": "Kolombiaanske simmertiid", "TMST": "Turkmeense simmertiid", "ART": "Argentynske standerttiid", "HAST": "Hawaii-Aleoetyske standerttiid", "UYST": "Uruguayaanske simmertiid", "IST": "Yndiaaske tiid", "HNPMX": "HNPMX", "EST": "Eastern-standerttiid", "PDT": "Pasifik-simmertiid", "COT": "Kolombiaanske standerttiid", "CST": "Central-standerttiid", "BOT": "Boliviaanske tiid", "WAT": "West-Afrikaanske standerttiid", "OEZ": "East-Europeeske standerttiid", "MESZ": "Midden-Europeeske simmertiid", "ACST": "Midden-Australyske standerttiid", "HNCU": "Kubaanske standerttiid", "WARST": "West-Argentynske simmertiid", "WIT": "East-Yndonezyske tiid", "HEOG": "West-Groenlânske simmertiid", "HEPM": "Saint Pierre en Miquelon-simmertiid", "AKST": "Alaska-standerttiid", "MDT": "Macause simmertiid", "WIB": "West-Yndonezyske tiid", "MEZ": "Midden-Europeeske standerttiid", "HNPM": "Saint Pierre en Miquelon-standerttiid", "CHADT": "Chatham simmertiid", "HAT": "Newfoundlânske-simmertiid", "AST": "Atlantic-standerttiid", "ChST": "Chamorro-tiid", "HENOMX": "HENOMX", "HKST": "Hongkongse simmertiid", "TMT": "Turkmeense standerttiid", "CLST": "Sileenske simmertiid", "ACDT": "Midden-Australyske simmertiid", "MST": "Macause standerttiid", "HEEG": "East-Groenlânske simmertiid", "UYT": "Uruguayaanske standerttiid", "AEDT": "East-Australyske simmertiid", "HEPMX": "HEPMX", "WAST": "West-Afrikaanske simmertiid", "HNEG": "East-Groenlânske standerttiid", "LHDT": "Lord Howe-eilânske simmertiid", "JST": "Japanske standerttiid", "SGT": "Singaporese standerttiid", "HNT": "Newfoundlânske-standerttiid", "NZDT": "Nij-Seelânske simmertiid", "ADT": "Atlantic-simmertiid", "ACWST": "Midden-Australyske westelijke standerttiid", "AKDT": "Alaska-simmertiid", "CDT": "Central-simmertiid", "JDT": "Japanske simmertiid"},
+ }
+ }
+ 
+diff --git a/fy_NL/fy_NL.go b/fy_NL/fy_NL.go
+index af27e39..10e60b5 100644
+--- a/fy_NL/fy_NL.go
++++ b/fy_NL/fy_NL.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type fy_NL struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'fy_NL' locale
+ func New() locales.Translator {
+ return &fy_NL{
+- locale: "fy_NL",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: "( ",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mrt", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Jannewaris", "Febrewaris", "Maart", "April", "Maaie", "Juny", "July", "Augustus", "Septimber", "Oktober", "Novimber", "Desimber"},
+- daysAbbreviated: []string{"si", "mo", "ti", "wo", "to", "fr", "so"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"si", "mo", "ti", "wo", "to", "fr", "so"},
+- daysWide: []string{"snein", "moandei", "tiisdei", "woansdei", "tongersdei", "freed", "sneon"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"f.Kr.", "n.Kr."},
+- erasNarrow: []string{"f.K.", "n.K."},
+- erasWide: []string{"Foar Kristus", "nei Kristus"},
+- timezones: map[string]string{"HNOG": "West-Groenlânske standerttiid", "HNCU": "Kubaanske standerttiid", "UYST": "Uruguayaanske simmertiid", "WIB": "West-Yndonezyske tiid", "MST": "Mountain-standerttiid", "WAST": "West-Afrikaanske simmertiid", "HENOMX": "HENOMX", "SGT": "Singaporese standerttiid", "HAST": "Hawaii-Aleoetyske standerttiid", "NZST": "Nij-Seelânske standerttiid", "ACDT": "Midden-Australyske simmertiid", "ACST": "Midden-Australyske standerttiid", "OEZ": "East-Europeeske standerttiid", "CAT": "Sintraal-Afrikaanske tiid", "HNNOMX": "HNNOMX", "COT": "Kolombiaanske standerttiid", "HNPM": "Saint Pierre en Miquelon-standerttiid", "HEPM": "Saint Pierre en Miquelon-simmertiid", "NZDT": "Nij-Seelânske simmertiid", "PDT": "Pasifik-simmertiid", "AEST": "East-Australyske standerttiid", "AWDT": "West-Australyske simmertiid", "MEZ": "Midden-Europeeske standerttiid", "GFT": "Frâns-Guyaanske tiid", "CST": "Central-standerttiid", "AST": "Atlantic-standerttiid", "BT": "Bhutaanske tiid", "HEPMX": "HEPMX", "AKDT": "Alaska-simmertiid", "ADT": "Atlantic-simmertiid", "IST": "Yndiaaske tiid", "TMST": "Turkmeense simmertiid", "HECU": "Kubaanske simmertiid", "UYT": "Uruguayaanske standerttiid", "ACWDT": "Midden-Australyske westelijke simmertiid", "LHST": "Lord Howe-eilânske standerttiid", "ARST": "Argentynske simmertiid", "EST": "Eastern-standerttiid", "CDT": "Central-simmertiid", "SRT": "Surinaamske tiid", "HNT": "Newfoundlânske-standerttiid", "ChST": "Chamorro-tiid", "HNPMX": "HNPMX", "AKST": "Alaska-standerttiid", "MDT": "Mountain-simmertiid", "WEZ": "West-Europeeske standerttiid", "COST": "Kolombiaanske simmertiid", "MYT": "Maleisyske tiid", "WESZ": "West-Europeeske simmertiid", "CHAST": "Chatham standerttiid", "ECT": "Ecuadoraanske tiid", "EDT": "Eastern-simmertiid", "WIT": "East-Yndonezyske tiid", "HEOG": "West-Groenlânske simmertiid", "HNEG": "East-Groenlânske standerttiid", "ART": "Argentynske standerttiid", "AWST": "West-Australyske standerttiid", "JST": "Japanske standerttiid", "JDT": "Japanske simmertiid", "WAT": "West-Afrikaanske standerttiid", "EAT": "East-Afrikaanske tiid", "GMT": "Greenwich Mean Time", "HKST": "Hongkongse simmertiid", "AEDT": "East-Australyske simmertiid", "CHADT": "Chatham simmertiid", "TMT": "Turkmeense standerttiid", "BOT": "Boliviaanske tiid", "WART": "West-Argentynske standerttiid", "HAT": "Newfoundlânske-simmertiid", "PST": "Pasifik-standerttiid", "HEEG": "East-Groenlânske simmertiid", "ACWST": "Midden-Australyske westelijke standerttiid", "CLST": "Sileenske simmertiid", "HKT": "Hongkongse standerttiid", "WITA": "Sintraal-Yndonezyske tiid", "MESZ": "Midden-Europeeske simmertiid", "LHDT": "Lord Howe-eilânske simmertiid", "SAST": "Sûd-Afrikaanske tiid", "GYT": "Guyaanske tiid", "HADT": "Hawaii-Aleoetyske simmertiid", "VET": "Fenezolaanske tiid", "WARST": "West-Argentynske simmertiid", "∅∅∅": "Amazone-simmertiid", "CLT": "Sileenske standerttiid", "OESZ": "East-Europeeske simmertiid"},
++ locale: "fy_NL",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WIB": "WIB", "HNPM": "HNPM", "JDT": "JDT", "HNCU": "HNCU", "HECU": "HECU", "EST": "EST", "HEPM": "HEPM", "WESZ": "WESZ", "CDT": "CDT", "AEST": "AEST", "AKDT": "AKDT", "HNOG": "HNOG", "MST": "MST", "NZST": "NZST", "HEEG": "HEEG", "LHDT": "LHDT", "VET": "VET", "EDT": "EDT", "ADT": "ADT", "AWDT": "AWDT", "OEZ": "OEZ", "ARST": "ARST", "HNNOMX": "HNNOMX", "SGT": "SGT", "HNPMX": "HNPMX", "ART": "ART", "ACST": "ACST", "HEOG": "HEOG", "CLST": "CLST", "MDT": "MDT", "HAST": "HAST", "HADT": "HADT", "MYT": "MYT", "BT": "BT", "CHAST": "CHAST", "HAT": "HAT", "WARST": "WARST", "WIT": "WIT", "COT": "COT", "CAT": "CAT", "GYT": "GYT", "MESZ": "MESZ", "LHST": "LHST", "ACWDT": "ACWDT", "AEDT": "AEDT", "WEZ": "WEZ", "WAST": "WAST", "OESZ": "OESZ", "CLT": "CLT", "ECT": "ECT", "GMT": "GMT", "PST": "PST", "WAT": "WAT", "SAST": "SAST", "IST": "IST", "ACWST": "ACWST", "HEPMX": "HEPMX", "COST": "COST", "TMST": "TMST", "MEZ": "MEZ", "HENOMX": "HENOMX", "PDT": "PDT", "HKST": "HKST", "HNT": "HNT", "BOT": "BOT", "ACDT": "ACDT", "HNEG": "HNEG", "AWST": "AWST", "JST": "JST", "UYST": "UYST", "AKST": "AKST", "WART": "WART", "TMT": "TMT", "WITA": "WITA", "GFT": "GFT", "CST": "CST", "NZDT": "NZDT", "ChST": "ChST", "SRT": "SRT", "EAT": "EAT", "CHADT": "CHADT", "UYT": "UYT", "AST": "AST", "∅∅∅": "∅∅∅", "HKT": "HKT"},
+ }
+ }
+ 
+@@ -127,7 +102,7 @@ func (fy *fy_NL) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (fy *fy_NL) MonthsAbbreviated() []string {
+- return fy.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -137,7 +112,7 @@ func (fy *fy_NL) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (fy *fy_NL) MonthsNarrow() []string {
+- return fy.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -147,7 +122,7 @@ func (fy *fy_NL) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (fy *fy_NL) MonthsWide() []string {
+- return fy.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -193,73 +168,13 @@ func (fy *fy_NL) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'fy_NL' and handles both Whole and Real numbers based on 'v'
+ func (fy *fy_NL) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fy.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fy.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fy.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'fy_NL' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (fy *fy_NL) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fy.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, fy.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, fy.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'fy_NL'
+@@ -267,60 +182,7 @@ func (fy *fy_NL) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fy.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fy.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fy.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(fy.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, fy.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, fy.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fy.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'fy_NL'
+@@ -329,74 +191,7 @@ func (fy *fy_NL) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := fy.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, fy.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, fy.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(fy.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, fy.currencyNegativePrefix[j])
+- }
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(fy.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, fy.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, fy.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, fy.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'fy_NL'
+@@ -404,27 +199,6 @@ func (fy *fy_NL) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,17 +207,6 @@ func (fy *fy_NL) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fy.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -452,17 +215,6 @@ func (fy *fy_NL) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fy.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -471,19 +223,6 @@ func (fy *fy_NL) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, fy.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, fy.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -492,19 +231,6 @@ func (fy *fy_NL) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fy.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -513,26 +239,6 @@ func (fy *fy_NL) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fy.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fy.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -541,30 +247,6 @@ func (fy *fy_NL) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fy.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fy.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -573,34 +255,5 @@ func (fy *fy_NL) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, fy.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, fy.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := fy.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ga/ga.go b/ga/ga.go
+index dd650a4..c408bcf 100644
+--- a/ga/ga.go
++++ b/ga/ga.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"RC", "AD"},
+ erasNarrow: []string{"RC", "AD"},
+ erasWide: []string{"Roimh Chríost", "Anno Domini"},
+- timezones: map[string]string{"HKST": "Am Samhraidh Hong Cong", "IST": "Am Caighdeánach na hIndia", "HECU": "Am Samhraidh Chúba", "EST": "Am Caighdeánach an Oirthir", "HNPMX": "Am Caighdeánach Meicsiceach an Aigéin Chiúin", "CDT": "Am Samhraidh Lárnach", "MST": "Am Caighdeánach na Sléibhte", "AEDT": "Am Samhraidh Oirthear na hAstráile", "ECT": "Am Eacuadór", "COT": "Am Caighdeánach na Colóime", "SGT": "Am Caighdeánach Shingeapór", "BT": "Am na Bútáine", "WEZ": "Am Caighdeánach Iarthar na hEorpa", "MEZ": "Am Caighdeánach Lár na hEorpa", "SRT": "Am Shuranam", "ACWST": "Am Caighdeánach Mheániarthar na hAstráile", "HNT": "Am Caighdeánach Thalamh an Éisc", "AWDT": "Am Samhraidh Iarthar na hAstráile", "LHDT": "Am Samhraidh Lord Howe", "CST": "Am Caighdeánach Lárnach", "VET": "Am Veiniséala", "WIT": "Am Oirthear na hIndinéise", "CAT": "Am Lár na hAfraice", "MESZ": "Am Samhraidh Lár na hEorpa", "JST": "Am Caighdeánach na Seapáine", "WAST": "Am Samhraidh Iarthar na hAfraice", "HNNOMX": "Am Caighdeánach Iarthuaisceart Mheicsiceo", "GFT": "Am Ghuáin na Fraince", "TMST": "Am Samhraidh na Tuircméanastáine", "WAT": "Am Caighdeánach Iarthar na hAfraice", "ACST": "Am Caighdeánach Lár na hAstráile", "AEST": "Am Caighdeánach Oirthear na hAstráile", "AWST": "Am Caighdeánach Iarthar na hAstráile", "CLST": "Am Samhraidh na Sile", "HNCU": "Am Caighdeánach Chúba", "MYT": "Am na Malaeisia", "ART": "Am Caighdeánach na hAirgintíne", "∅∅∅": "Am Samhraidh na hAmasóine", "UYST": "Am Samhraidh Uragua", "AKST": "Am Caighdeánach Alasca", "HADT": "Am Samhraidh Haváí-Ailiúit", "TMT": "Am Caighdeánach na Tuircméanastáine", "OEZ": "Am Caighdeánach Oirthear na hEorpa", "WART": "Am Caighdeánach Iarthar na hAirgintíne", "HENOMX": "Am Samhraidh Iarthuaisceart Mheicsiceo", "ADT": "Am Samhraidh an Atlantaigh", "PDT": "Am Samhraidh an Aigéin Chiúin", "HNOG": "Am Caighdeánach Iarthar na Graonlainne", "EAT": "Am Oirthear na hAfraice", "EDT": "Am Samhraidh an Oirthir", "NZDT": "Am Samhraidh na Nua-Shéalainne", "HEEG": "Am Samhraidh Oirthear na Graonlainne", "COST": "Am Samhraidh na Colóime", "LHST": "Am Caighdeánach Lord Howe", "JDT": "Am Samhraidh na Seapáine", "ChST": "Am Caighdeánach Seamórach", "MDT": "Am Samhraidh na Sléibhte", "HEOG": "Am Samhraidh Iarthar na Graonlainne", "HNPM": "Am Caighdeánach Saint-Pierre-et-Miquelon", "ARST": "Am Samhraidh na hAirgintíne", "HKT": "Am Caighdeánach Hong Cong", "OESZ": "Am Samhraidh Oirthear na hEorpa", "UYT": "Am Caighdeánach Uragua", "HAST": "Am Caighdeánach Haváí-Ailiúit", "WESZ": "Am Samhraidh Iarthar na hEorpa", "CHADT": "Am Samhraidh Chatham", "BOT": "Am na Bolaive", "HNEG": "Am Caighdeánach Oirthear na Graonlainne", "ACDT": "Am Samhraidh Lár na hAstráile", "WARST": "Am Samhraidh Iarthar na hAirgintíne", "GYT": "Am na Guáine", "ACWDT": "Am Samhraidh Mheániarthar na hAstráile", "HAT": "Am Samhraidh Thalamh an Éisc", "PST": "Am Caighdeánach an Aigéin Chiúin", "HEPM": "Am Samhraidh Saint-Pierre-et-Miquelon", "NZST": "Am Caighdeánach na Nua-Shéalainne", "CHAST": "Am Caighdeánach Chatham", "HEPMX": "Am Samhraidh Meicsiceach an Aigéin Chiúin", "AKDT": "Am Samhraidh Alasca", "AST": "Am Caighdeánach an Atlantaigh", "WIB": "Am Iarthar na hIndinéise", "GMT": "Meán-Am Greenwich", "WITA": "Am Lár na hIndinéise", "SAST": "Am Caighdeánach na hAfraice Theas", "CLT": "Am Caighdeánach na Sile"},
++ timezones: map[string]string{"ADT": "Am Samhraidh an Atlantaigh", "HENOMX": "Am Samhraidh Iarthuaisceart Mheicsiceo", "MEZ": "Am Caighdeánach Lár na hEorpa", "ACDT": "Am Samhraidh Lár na hAstráile", "HNEG": "Am Caighdeánach Oirthear na Graonlainne", "WESZ": "Am Samhraidh Iarthar na hEorpa", "HNCU": "Am Caighdeánach Chúba", "TMT": "Am Caighdeánach na Tuircméanastáine", "CLT": "Am Caighdeánach na Sile", "GFT": "Am Ghuáin na Fraince", "WITA": "Am Lár na hIndinéise", "BOT": "Am na Bolaive", "AEDT": "Am Samhraidh Oirthear na hAstráile", "AWST": "Am Caighdeánach Iarthar na hAstráile", "HNPMX": "Am Caighdeánach Meicsiceach an Aigéin Chiúin", "HNOG": "Am Caighdeánach Iarthar na Graonlainne", "ECT": "Am Eacuadór", "ChST": "Am Caighdeánach Seamórach", "CAT": "Am Lár na hAfraice", "MYT": "Am na Malaeisia", "ACWDT": "Am Samhraidh Mheániarthar na hAstráile", "HEEG": "Am Samhraidh Oirthear na Graonlainne", "ACWST": "Am Caighdeánach Mheániarthar na hAstráile", "AKST": "Am Caighdeánach Alasca", "HAT": "Am Samhraidh Thalamh an Éisc", "WIT": "Am Oirthear na hIndinéise", "ART": "Am Caighdeánach na hAirgintíne", "SGT": "Am Caighdeánach Shingeapór", "LHDT": "Am Samhraidh Lord Howe", "MDT": "Am Samhraidh Mhacao", "AST": "Am Caighdeánach an Atlantaigh", "UYST": "Am Samhraidh Uragua", "HECU": "Am Samhraidh Chúba", "∅∅∅": "Am Samhraidh na hAmasóine", "WAT": "Am Caighdeánach Iarthar na hAfraice", "OESZ": "Am Samhraidh Oirthear na hEorpa", "HEPM": "Am Samhraidh Saint-Pierre-et-Miquelon", "WARST": "Am Samhraidh Iarthar na hAirgintíne", "COST": "Am Samhraidh na Colóime", "NZDT": "Am Samhraidh na Nua-Shéalainne", "EAT": "Am Oirthear na hAfraice", "VET": "Am Veiniséala", "EDT": "Am Samhraidh an Oirthir", "CHAST": "Am Caighdeánach Chatham", "CHADT": "Am Samhraidh Chatham", "COT": "Am Caighdeánach na Colóime", "IST": "Am Caighdeánach na hIndia", "ARST": "Am Samhraidh na hAirgintíne", "JST": "Am Caighdeánach na Seapáine", "PDT": "Am Samhraidh an Aigéin Chiúin", "AEST": "Am Caighdeánach Oirthear na hAstráile", "WEZ": "Am Caighdeánach Iarthar na hEorpa", "WAST": "Am Samhraidh Iarthar na hAfraice", "HKST": "Am Samhraidh Hong Cong", "WIB": "Am Iarthar na hIndinéise", "GMT": "Meán-Am Greenwich", "HNPM": "Am Caighdeánach Saint-Pierre-et-Miquelon", "JDT": "Am Samhraidh na Seapáine", "AKDT": "Am Samhraidh Alasca", "WART": "Am Caighdeánach Iarthar na hAirgintíne", "HKT": "Am Caighdeánach Hong Cong", "TMST": "Am Samhraidh na Tuircméanastáine", "SRT": "Am Shuranam", "HADT": "Am Samhraidh Haváí-Ailiúit", "MESZ": "Am Samhraidh Lár na hEorpa", "HNNOMX": "Am Caighdeánach Iarthuaisceart Mheicsiceo", "SAST": "Am Caighdeánach na hAfraice Theas", "EST": "Am Caighdeánach an Oirthir", "CLST": "Am Samhraidh na Sile", "CST": "Am Caighdeánach Lárnach", "PST": "Am Caighdeánach an Aigéin Chiúin", "BT": "Am na Bútáine", "AWDT": "Am Samhraidh Iarthar na hAstráile", "LHST": "Am Caighdeánach Lord Howe", "HNT": "Am Caighdeánach Thalamh an Éisc", "MST": "Am Caighdeánach Mhacao", "NZST": "Am Caighdeánach na Nua-Shéalainne", "HAST": "Am Caighdeánach Haváí-Ailiúit", "CDT": "Am Samhraidh Lárnach", "ACST": "Am Caighdeánach Lár na hAstráile", "UYT": "Am Caighdeánach Uragua", "HEPMX": "Am Samhraidh Meicsiceach an Aigéin Chiúin", "OEZ": "Am Caighdeánach Oirthear na hEorpa", "GYT": "Am na Guáine", "HEOG": "Am Samhraidh Iarthar na Graonlainne"},
+ }
+ }
+ 
+diff --git a/ga_IE/ga_IE.go b/ga_IE/ga_IE.go
+index 8cc79fa..ea727ba 100644
+--- a/ga_IE/ga_IE.go
++++ b/ga_IE/ga_IE.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ga_IE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ga_IE' locale
+ func New() locales.Translator {
+ return &ga_IE{
+- locale: "ga_IE",
+- pluralsCardinal: []locales.PluralRule{2, 3, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 3, 4, 5, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Ean", "Feabh", "Márta", "Aib", "Beal", "Meith", "Iúil", "Lún", "MFómh", "DFómh", "Samh", "Noll"},
+- monthsNarrow: []string{"", "E", "F", "M", "A", "B", "M", "I", "L", "M", "D", "S", "N"},
+- monthsWide: []string{"", "Eanáir", "Feabhra", "Márta", "Aibreán", "Bealtaine", "Meitheamh", "Iúil", "Lúnasa", "Meán Fómhair", "Deireadh Fómhair", "Samhain", "Nollaig"},
+- daysAbbreviated: []string{"Domh", "Luan", "Máirt", "Céad", "Déar", "Aoine", "Sath"},
+- daysNarrow: []string{"D", "L", "M", "C", "D", "A", "S"},
+- daysShort: []string{"Do", "Lu", "Má", "Cé", "Dé", "Ao", "Sa"},
+- daysWide: []string{"Dé Domhnaigh", "Dé Luain", "Dé Máirt", "Dé Céadaoin", "Déardaoin", "Dé hAoine", "Dé Sathairn"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"RC", "AD"},
+- erasNarrow: []string{"RC", "AD"},
+- erasWide: []string{"Roimh Chríost", "Anno Domini"},
+- timezones: map[string]string{"GFT": "Am Ghuáin na Fraince", "EAT": "Am Oirthear na hAfraice", "ACWST": "Am Caighdeánach Mheániarthar na hAstráile", "GMT": "Meán-Am Greenwich", "SGT": "Am Caighdeánach Shingeapór", "AKST": "Am Caighdeánach Alasca", "MST": "Am Caighdeánach na Sléibhte", "BT": "Am na Bútáine", "WITA": "Am Lár na hIndinéise", "HEPM": "Am Samhraidh Saint-Pierre-et-Miquelon", "TMST": "Am Samhraidh na Tuircméanastáine", "HEPMX": "Am Samhraidh Meicsiceach an Aigéin Chiúin", "CST": "Am Caighdeánach Lárnach", "WIB": "Am Iarthar na hIndinéise", "ART": "Am Caighdeánach na hAirgintíne", "CLT": "Am Caighdeánach na Sile", "∅∅∅": "Am Samhraidh na hAmasóine", "EST": "Am Caighdeánach an Oirthir", "HKT": "Am Caighdeánach Hong Cong", "ChST": "Am Caighdeánach Seamórach", "HNEG": "Am Caighdeánach Oirthear na Graonlainne", "HEEG": "Am Samhraidh Oirthear na Graonlainne", "WAT": "Am Caighdeánach Iarthar na hAfraice", "AST": "Am Caighdeánach an Atlantaigh", "HAST": "Am Caighdeánach Haváí-Ailiúit", "HNOG": "Am Caighdeánach Iarthar na Graonlainne", "MESZ": "Am Samhraidh Lár na hEorpa", "TMT": "Am Caighdeánach na Tuircméanastáine", "AWST": "Am Caighdeánach Iarthar na hAstráile", "AWDT": "Am Samhraidh Iarthar na hAstráile", "NZST": "Am Caighdeánach na Nua-Shéalainne", "SAST": "Am Caighdeánach na hAfraice Theas", "IST": "Am Caighdeánach na hIndia", "MYT": "Am na Malaeisia", "UYT": "Am Caighdeánach Uragua", "UYST": "Am Samhraidh Uragua", "WAST": "Am Samhraidh Iarthar na hAfraice", "COST": "Am Samhraidh na Colóime", "HNNOMX": "Am Caighdeánach Iarthuaisceart Mheicsiceo", "ACST": "Am Caighdeánach Lár na hAstráile", "GYT": "Am na Guáine", "HADT": "Am Samhraidh Haváí-Ailiúit", "WEZ": "Am Caighdeánach Iarthar na hEorpa", "CHADT": "Am Samhraidh Chatham", "CLST": "Am Samhraidh na Sile", "WART": "Am Caighdeánach Iarthar na hAirgintíne", "AKDT": "Am Samhraidh Alasca", "ARST": "Am Samhraidh na hAirgintíne", "HNPM": "Am Caighdeánach Saint-Pierre-et-Miquelon", "HNT": "Am Caighdeánach Thalamh an Éisc", "AEDT": "Am Samhraidh Oirthear na hAstráile", "EDT": "Am Samhraidh an Oirthir", "ADT": "Am Samhraidh an Atlantaigh", "WIT": "Am Oirthear na hIndinéise", "HEOG": "Am Samhraidh Iarthar na Graonlainne", "WESZ": "Am Samhraidh Iarthar na hEorpa", "HAT": "Am Samhraidh Thalamh an Éisc", "NZDT": "Am Samhraidh na Nua-Shéalainne", "COT": "Am Caighdeánach na Colóime", "HNCU": "Am Caighdeánach Chúba", "PST": "Am Caighdeánach an Aigéin Chiúin", "AEST": "Am Caighdeánach Oirthear na hAstráile", "BOT": "Am na Bolaive", "HKST": "Am Samhraidh Hong Cong", "LHDT": "Am Samhraidh Lord Howe", "CHAST": "Am Caighdeánach Chatham", "JST": "Am Caighdeánach na Seapáine", "CAT": "Am Lár na hAfraice", "MDT": "Am Samhraidh na Sléibhte", "VET": "Am Veiniséala", "PDT": "Am Samhraidh an Aigéin Chiúin", "OEZ": "Am Caighdeánach Oirthear na hEorpa", "HNPMX": "Am Caighdeánach Meicsiceach an Aigéin Chiúin", "ECT": "Am Eacuadór", "WARST": "Am Samhraidh Iarthar na hAirgintíne", "SRT": "Am Shuranam", "ACDT": "Am Samhraidh Lár na hAstráile", "OESZ": "Am Samhraidh Oirthear na hEorpa", "JDT": "Am Samhraidh na Seapáine", "CDT": "Am Samhraidh Lárnach", "ACWDT": "Am Samhraidh Mheániarthar na hAstráile", "LHST": "Am Caighdeánach Lord Howe", "MEZ": "Am Caighdeánach Lár na hEorpa", "HENOMX": "Am Samhraidh Iarthuaisceart Mheicsiceo", "HECU": "Am Samhraidh Chúba"},
++ locale: "ga_IE",
++ pluralsCardinal: []locales.PluralRule{2, 3, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 3, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNEG": "HNEG", "HNNOMX": "HNNOMX", "LHST": "LHST", "IST": "IST", "BT": "BT", "UYST": "UYST", "HECU": "HECU", "CST": "CST", "GYT": "GYT", "HNPMX": "HNPMX", "ECT": "ECT", "JDT": "JDT", "PST": "PST", "ACWST": "ACWST", "HNT": "HNT", "WART": "WART", "WIT": "WIT", "MDT": "MDT", "HKST": "HKST", "AWST": "AWST", "WAST": "WAST", "HENOMX": "HENOMX", "MESZ": "MESZ", "HEPM": "HEPM", "VET": "VET", "HEPMX": "HEPMX", "MEZ": "MEZ", "CHADT": "CHADT", "EDT": "EDT", "EAT": "EAT", "HADT": "HADT", "MYT": "MYT", "∅∅∅": "∅∅∅", "SGT": "SGT", "COT": "COT", "CLST": "CLST", "CDT": "CDT", "HEOG": "HEOG", "ARST": "ARST", "BOT": "BOT", "HNCU": "HNCU", "COST": "COST", "HKT": "HKT", "TMST": "TMST", "AST": "AST", "JST": "JST", "WEZ": "WEZ", "AKDT": "AKDT", "OESZ": "OESZ", "EST": "EST", "WITA": "WITA", "ADT": "ADT", "HEEG": "HEEG", "UYT": "UYT", "GFT": "GFT", "CLT": "CLT", "ACDT": "ACDT", "HAST": "HAST", "PDT": "PDT", "CAT": "CAT", "NZST": "NZST", "HNOG": "HNOG", "TMT": "TMT", "CHAST": "CHAST", "HAT": "HAT", "LHDT": "LHDT", "HNPM": "HNPM", "AEDT": "AEDT", "WESZ": "WESZ", "WAT": "WAT", "AKST": "AKST", "OEZ": "OEZ", "AWDT": "AWDT", "ChST": "ChST", "SRT": "SRT", "SAST": "SAST", "MST": "MST", "WIB": "WIB", "GMT": "GMT", "ART": "ART", "ACST": "ACST", "ACWDT": "ACWDT", "AEST": "AEST", "WARST": "WARST", "NZDT": "NZDT"},
+ }
+ }
+ 
+@@ -176,7 +153,7 @@ func (ga *ga_IE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ga *ga_IE) MonthsAbbreviated() []string {
+- return ga.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -186,7 +163,7 @@ func (ga *ga_IE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ga *ga_IE) MonthsNarrow() []string {
+- return ga.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -196,7 +173,7 @@ func (ga *ga_IE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ga *ga_IE) MonthsWide() []string {
+- return ga.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -242,73 +219,13 @@ func (ga *ga_IE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ga_IE' and handles both Whole and Real numbers based on 'v'
+ func (ga *ga_IE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ga.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ga.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ga.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ga_IE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ga *ga_IE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ga.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ga.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ga.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ga_IE'
+@@ -316,56 +233,7 @@ func (ga *ga_IE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ga.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ga.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ga.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ga.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ga.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ga_IE'
+@@ -374,68 +242,7 @@ func (ga *ga_IE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ga.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ga.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ga.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ga.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ga.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ga.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ga_IE'
+@@ -443,27 +250,6 @@ func (ga *ga_IE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -472,17 +258,6 @@ func (ga *ga_IE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ga.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,17 +266,6 @@ func (ga *ga_IE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ga.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -510,19 +274,6 @@ func (ga *ga_IE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ga.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ga.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -531,19 +282,6 @@ func (ga *ga_IE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ga.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -552,26 +290,6 @@ func (ga *ga_IE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ga.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ga.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -580,30 +298,6 @@ func (ga *ga_IE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ga.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ga.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -612,34 +306,5 @@ func (ga *ga_IE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ga.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ga.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ga.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/gd/gd.go b/gd/gd.go
+index 113ed6b..1925bcb 100644
+--- a/gd/gd.go
++++ b/gd/gd.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"RC", "AD"},
+ erasNarrow: []string{"R", "A"},
+ erasWide: []string{"Ro Chrìosta", "An dèidh Chrìosta"},
+- timezones: map[string]string{"BT": "Àm Butàin", "∅∅∅": "Tìde samhraidh Amasoin", "EAT": "Àm Afraga an Ear", "ADT": "Tìde samhraidh a’ Chuain Siar", "VET": "Àm na Bheiniseala", "SGT": "Àm Singeapòr", "UYST": "Tìde samhraidh Uruguaidh", "HEPM": "Tìde Samhraidh Saint Pierre agus Miquelon", "CHAST": "Bun-àm Chatham", "WAT": "Bun-àm Afraga an Iar", "COT": "Bun-àm Coloimbia", "GMT": "Greenwich Mean Time", "MDT": "Tìde samhraidh Macàthu", "EDT": "Tìde samhraidh Aimeireaga a Tuath an Ear", "AKST": "Bun-àm Alaska", "IST": "Àm nan Innseachan", "GFT": "Àm Guidheàna na Frainge", "HAT": "Tìde samhraidh Talamh an Èisg", "MEZ": "Bun-àm Meadhan na Roinn-Eòrpa", "TMT": "Bun-àm Turcmanastàin", "TMST": "Tìde samhraidh Turcmanastàin", "WEZ": "Bun-àm na Roinn-Eòrpa an Iar", "HNPMX": "Bun-àm a’ Chuain Sèimh Mheagsago", "ART": "Bun-àm na h-Argantaine", "AWDT": "Tìde samhraidh Astràilia an Iar", "HNNOMX": "Bun-àm Mheagsago an Iar-thuath", "HEPMX": "Tìde samhraidh a’ Chuain Sèimh Mheagsago", "AKDT": "Tìde samhraidh Alaska", "CDT": "Tìde samhraidh Meadhan Aimeireaga a Tuath", "NZST": "Bun-àm Shealainn Nuaidh", "SAST": "Àm Afraga a Deas", "JST": "Bun-àm na Seapaine", "WAST": "Tìde Samhraidh Afraga an Iar", "HADT": "Tìde Samhraidh nan Eileanan Hawai’i ’s Aleutach", "AWST": "Bun-àm Astràilia an Iar", "AST": "Bun-àm a’ Chuain Siar", "HAST": "Bun-àm nan Eileanan Hawai’i ’s Aleutach", "ACWST": "Bun-àm Meadhan Astràilia an Iar", "PDT": "Tìde samhraidh a’ Chuain Sèimh", "CLT": "Bun-àm na Sile", "ACST": "Bun-àm Meadhan Astràilia", "ECT": "Àm Eacuadoir", "COST": "Tìde samhraidh Coloimbia", "HKT": "Bun-àm Hong Kong", "EST": "Bun-àm Aimeireaga a Tuath an Ear", "UYT": "Bun-àm Uruguaidh", "WIB": "Àm nan Innd-Innse an Iar", "HNT": "Bun-àm Talamh an Èisg", "CLST": "Tìde samhraidh na Sile", "BOT": "Àm Boilibhia", "HENOMX": "Tìde samhraidh Mheagsago an Iar-thuath", "HNCU": "Bun-àm Cùba", "HEOG": "Tìde samhraidh na Graonlainn an Iar", "AEST": "Bun-àm Astràilia an Ear", "ACDT": "Tìde samhraidh Meadhan Astràilia", "HECU": "Tìde samhraidh Cùba", "WART": "Bun-àm na h-Argantaine Siaraich", "WITA": "Àm Meadhan nan Innd-Innse", "HNPM": "Bun-àm Saint Pierre agus Miquelon", "LHST": "Bun-àm Lord Howe", "HEEG": "Tìde samhraidh na Graonlainn an Ear", "HKST": "Tìde samhraidh Hong Kong", "WARST": "Tìde samhraidh na h-Argantaine Siaraich", "ARST": "Tìde samhraidh na h-Argantaine", "AEDT": "Tìde samhraidh Astràilia an Ear", "NZDT": "Tìde samhraidh Shealainn Nuaidh", "MESZ": "Tìde samhraidh Meadhan na Roinn-Eòrpa", "HNEG": "Bun-àm na Graonlainn an Ear", "OEZ": "Bun-àm na Roinn-Eòrpa an Ear", "ACWDT": "Tìde samhraidh Meadhan Astràilia an Iar", "CST": "Bun-àm Meadhan Aimeireaga a Tuath", "WIT": "Àm nan Innd-Innse an Ear", "SRT": "Àm Suranaim", "WESZ": "Tìde samhraidh na Roinn-Eòrpa an Iar", "LHDT": "Tìde samhraidh Lord Howe", "MST": "Bun-àm Macàthu", "CAT": "Àm Meadhan Afraga", "GYT": "Àm Guidheàna", "MYT": "Àm Mhalaidhsea", "HNOG": "Bun-àm na Graonlainn an Iar", "CHADT": "Tìde samhraidh Chatham", "JDT": "Tìde samhraidh na Seapaine", "ChST": "Àm Chamorro", "OESZ": "Tìde samhraidh na Roinn-Eòrpa an Ear", "PST": "Bun-àm a’ Chuain Sèimh"},
++ timezones: map[string]string{"AKST": "Bun-àm Alaska", "WITA": "Àm Meadhan nan Innd-Innse", "MDT": "Tìde samhraidh Macàthu", "ECT": "Àm Eacuadoir", "SRT": "Àm Suranaim", "IST": "Àm nan Innseachan", "HADT": "Tìde Samhraidh nan Eileanan Hawai’i ’s Aleutach", "ACST": "Bun-àm Meadhan Astràilia", "LHST": "Bun-àm Lord Howe", "AEST": "Bun-àm Astràilia an Ear", "CHAST": "Bun-àm Chatham", "PST": "Bun-àm a’ Chuain Sèimh", "JDT": "Tìde samhraidh na Seapaine", "UYST": "Tìde samhraidh Uruguaidh", "GFT": "Àm Guidheàna na Frainge", "HKST": "Tìde samhraidh Hong Kong", "NZST": "Bun-àm Shealainn Nuaidh", "ADT": "Tìde samhraidh a’ Chuain Siar", "ARST": "Tìde samhraidh na h-Argantaine", "HNNOMX": "Bun-àm Mheagsago an Iar-thuath", "WAT": "Bun-àm Afraga an Iar", "MST": "Bun-àm Macàthu", "GMT": "Greenwich Mean Time", "TMT": "Bun-àm Turcmanastàin", "NZDT": "Tìde samhraidh Shealainn Nuaidh", "AST": "Bun-àm a’ Chuain Siar", "AWDT": "Tìde samhraidh Astràilia an Iar", "WAST": "Tìde Samhraidh Afraga an Iar", "HNT": "Bun-àm Talamh an Èisg", "TMST": "Tìde samhraidh Turcmanastàin", "CLST": "Tìde samhraidh na Sile", "EAT": "Àm Afraga an Ear", "MESZ": "Tìde samhraidh Meadhan na Roinn-Eòrpa", "MEZ": "Bun-àm Meadhan na Roinn-Eòrpa", "LHDT": "Tìde samhraidh Lord Howe", "OESZ": "Tìde samhraidh na Roinn-Eòrpa an Ear", "WART": "Bun-àm na h-Argantaine Siaraich", "∅∅∅": "Tìde samhraidh Bhrasilia", "CST": "Bun-àm Meadhan Aimeireaga a Tuath", "CDT": "Tìde samhraidh Meadhan Aimeireaga a Tuath", "ART": "Bun-àm na h-Argantaine", "HNPM": "Bun-àm Saint Pierre agus Miquelon", "HENOMX": "Tìde samhraidh Mheagsago an Iar-thuath", "MYT": "Àm Mhalaidhsea", "VET": "Àm na Bheiniseala", "SAST": "Àm Afraga a Deas", "HEEG": "Tìde samhraidh na Graonlainn an Ear", "WARST": "Tìde samhraidh na h-Argantaine Siaraich", "ACDT": "Tìde samhraidh Meadhan Astràilia", "JST": "Bun-àm na Seapaine", "HEPM": "Tìde Samhraidh Saint Pierre agus Miquelon", "UYT": "Bun-àm Uruguaidh", "AKDT": "Tìde samhraidh Alaska", "GYT": "Àm Guidheàna", "COT": "Bun-àm Coloimbia", "HEPMX": "Tìde samhraidh a’ Chuain Sèimh Mheagsago", "PDT": "Tìde samhraidh a’ Chuain Sèimh", "WIT": "Àm nan Innd-Innse an Ear", "COST": "Tìde samhraidh Coloimbia", "HKT": "Bun-àm Hong Kong", "CAT": "Àm Meadhan Afraga", "CLT": "Bun-àm na Sile", "HAST": "Bun-àm nan Eileanan Hawai’i ’s Aleutach", "HNOG": "Bun-àm na Graonlainn an Iar", "EDT": "Tìde samhraidh Aimeireaga a Tuath an Ear", "CHADT": "Tìde samhraidh Chatham", "HECU": "Tìde samhraidh Cùba", "OEZ": "Bun-àm na Roinn-Eòrpa an Ear", "WIB": "Àm nan Innd-Innse an Iar", "ChST": "Àm Chamorro", "ACWDT": "Tìde samhraidh Meadhan Astràilia an Iar", "HNPMX": "Bun-àm a’ Chuain Sèimh Mheagsago", "WEZ": "Bun-àm na Roinn-Eòrpa an Iar", "HEOG": "Tìde samhraidh na Graonlainn an Iar", "HNEG": "Bun-àm na Graonlainn an Ear", "AEDT": "Tìde samhraidh Astràilia an Ear", "BT": "Àm Butàin", "ACWST": "Bun-àm Meadhan Astràilia an Iar", "HNCU": "Bun-àm Cùba", "HAT": "Tìde samhraidh Talamh an Èisg", "EST": "Bun-àm Aimeireaga a Tuath an Ear", "BOT": "Àm Boilibhia", "AWST": "Bun-àm Astràilia an Iar", "WESZ": "Tìde samhraidh na Roinn-Eòrpa an Iar", "SGT": "Àm Singeapòr"},
+ }
+ }
+ 
+diff --git a/gd_GB/gd_GB.go b/gd_GB/gd_GB.go
+index 489f164..484d0cc 100644
+--- a/gd_GB/gd_GB.go
++++ b/gd_GB/gd_GB.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type gd_GB struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'gd_GB' locale
+ func New() locales.Translator {
+ return &gd_GB{
+- locale: "gd_GB",
+- pluralsCardinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Faoi", "Gearr", "Màrt", "Gibl", "Cèit", "Ògmh", "Iuch", "Lùna", "Sult", "Dàmh", "Samh", "Dùbh"},
+- monthsNarrow: []string{"", "F", "G", "M", "G", "C", "Ò", "I", "L", "S", "D", "S", "D"},
+- monthsWide: []string{"", "dhen Fhaoilleach", "dhen Ghearran", "dhen Mhàrt", "dhen Ghiblean", "dhen Chèitean", "dhen Ògmhios", "dhen Iuchar", "dhen Lùnastal", "dhen t-Sultain", "dhen Dàmhair", "dhen t-Samhain", "dhen Dùbhlachd"},
+- daysAbbreviated: []string{"DiD", "DiL", "DiM", "DiC", "Dia", "Dih", "DiS"},
+- daysNarrow: []string{"D", "L", "M", "C", "A", "H", "S"},
+- daysShort: []string{"Dò", "Lu", "Mà", "Ci", "Da", "hA", "Sa"},
+- daysWide: []string{"DiDòmhnaich", "DiLuain", "DiMàirt", "DiCiadain", "DiarDaoin", "DihAoine", "DiSathairne"},
+- periodsAbbreviated: []string{"m", "f"},
+- periodsNarrow: []string{"m", "f"},
+- periodsWide: []string{"m", "f"},
+- erasAbbreviated: []string{"RC", "AD"},
+- erasNarrow: []string{"R", "A"},
+- erasWide: []string{"Ro Chrìosta", "An dèidh Chrìosta"},
+- timezones: map[string]string{"MST": "Bun-àm Macàthu", "WIT": "Àm nan Innd-Innse an Ear", "HEOG": "Tìde samhraidh na Graonlainn an Iar", "HEPM": "Tìde Samhraidh Saint Pierre agus Miquelon", "GFT": "Àm Guidheàna na Frainge", "WART": "Bun-àm na h-Argantaine Siaraich", "∅∅∅": "Tìde samhraidh Pearù", "UYT": "Bun-àm Uruguaidh", "WITA": "Àm Meadhan nan Innd-Innse", "AEST": "Bun-àm Astràilia an Ear", "HNPM": "Bun-àm Saint Pierre agus Miquelon", "HNEG": "Bun-àm na Graonlainn an Ear", "OESZ": "Tìde samhraidh na Roinn-Eòrpa an Ear", "BOT": "Àm Boilibhia", "HNNOMX": "Bun-àm Mheagsago an Iar-thuath", "HNT": "Bun-àm Talamh an Èisg", "PST": "Bun-àm a’ Chuain Sèimh", "HADT": "Tìde Samhraidh nan Eileanan Hawai’i ’s Aleutach", "ACWDT": "Tìde samhraidh Meadhan Astràilia an Iar", "MYT": "Àm Mhalaidhsea", "ARST": "Tìde samhraidh na h-Argantaine", "LHST": "Bun-àm Lord Howe", "MESZ": "Tìde samhraidh Meadhan na Roinn-Eòrpa", "TMST": "Tìde samhraidh Turcmanastàin", "HNPMX": "Bun-àm a’ Chuain Sèimh Mheagsago", "HENOMX": "Tìde samhraidh Mheagsago an Iar-thuath", "AWDT": "Tìde samhraidh Astràilia an Iar", "ChST": "Àm Chamorro", "COST": "Tìde samhraidh Coloimbia", "VET": "Àm na Bheiniseala", "NZDT": "Tìde samhraidh Shealainn Nuaidh", "CST": "Bun-àm Meadhan Aimeireaga a Tuath", "WIB": "Àm nan Innd-Innse an Iar", "WESZ": "Tìde samhraidh na Roinn-Eòrpa an Iar", "PDT": "Tìde samhraidh a’ Chuain Sèimh", "LHDT": "Tìde samhraidh Lord Howe", "NZST": "Bun-àm Shealainn Nuaidh", "CLT": "Bun-àm na Sile", "CLST": "Tìde samhraidh na Sile", "ACDT": "Tìde samhraidh Meadhan Astràilia", "AKDT": "Tìde samhraidh Alaska", "COT": "Bun-àm Coloimbia", "WARST": "Tìde samhraidh na h-Argantaine Siaraich", "GYT": "Àm Guidheàna", "HAST": "Bun-àm nan Eileanan Hawai’i ’s Aleutach", "ACST": "Bun-àm Meadhan Astràilia", "OEZ": "Bun-àm na Roinn-Eòrpa an Ear", "BT": "Àm Butàin", "ACWST": "Bun-àm Meadhan Astràilia an Iar", "JDT": "Tìde samhraidh na Seapaine", "WAST": "Tìde Samhraidh Afraga an Iar", "MDT": "Tìde samhraidh Macàthu", "AEDT": "Tìde samhraidh Astràilia an Ear", "IST": "Àm nan Innseachan", "CDT": "Tìde samhraidh Meadhan Aimeireaga a Tuath", "HKT": "Bun-àm Hong Kong", "EST": "Bun-àm Aimeireaga a Tuath an Ear", "AKST": "Bun-àm Alaska", "AST": "Bun-àm a’ Chuain Siar", "SRT": "Àm Suranaim", "AWST": "Bun-àm Astràilia an Iar", "MEZ": "Bun-àm Meadhan na Roinn-Eòrpa", "GMT": "Greenwich Mean Time", "HEPMX": "Tìde samhraidh a’ Chuain Sèimh Mheagsago", "ECT": "Àm Eacuadoir", "HECU": "Tìde samhraidh Cùba", "UYST": "Tìde samhraidh Uruguaidh", "HAT": "Tìde samhraidh Talamh an Èisg", "ART": "Bun-àm na h-Argantaine", "HKST": "Tìde samhraidh Hong Kong", "TMT": "Bun-àm Turcmanastàin", "WAT": "Bun-àm Afraga an Iar", "JST": "Bun-àm na Seapaine", "SGT": "Àm Singeapòr", "EDT": "Tìde samhraidh Aimeireaga a Tuath an Ear", "ADT": "Tìde samhraidh a’ Chuain Siar", "HNOG": "Bun-àm na Graonlainn an Iar", "CHAST": "Bun-àm Chatham", "CHADT": "Tìde samhraidh Chatham", "HEEG": "Tìde samhraidh na Graonlainn an Ear", "CAT": "Àm Meadhan Afraga", "WEZ": "Bun-àm na Roinn-Eòrpa an Iar", "SAST": "Àm Afraga a Deas", "EAT": "Àm Afraga an Ear", "HNCU": "Bun-àm Cùba"},
++ locale: "gd_GB",
++ pluralsCardinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNEG": "HNEG", "CDT": "CDT", "MEZ": "MEZ", "SGT": "SGT", "GFT": "GFT", "WITA": "WITA", "NZDT": "NZDT", "ADT": "ADT", "WART": "WART", "HADT": "HADT", "HEEG": "HEEG", "BT": "BT", "AKST": "AKST", "OEZ": "OEZ", "HNT": "HNT", "HAT": "HAT", "WARST": "WARST", "SRT": "SRT", "WAT": "WAT", "EST": "EST", "HKT": "HKT", "TMT": "TMT", "AST": "AST", "GMT": "GMT", "ACDT": "ACDT", "JST": "JST", "MYT": "MYT", "ACWST": "ACWST", "WEZ": "WEZ", "OESZ": "OESZ", "ECT": "ECT", "HENOMX": "HENOMX", "HNPM": "HNPM", "HEPMX": "HEPMX", "CAT": "CAT", "CLT": "CLT", "MDT": "MDT", "NZST": "NZST", "BOT": "BOT", "UYT": "UYT", "COT": "COT", "HNOG": "HNOG", "EDT": "EDT", "WIB": "WIB", "MESZ": "MESZ", "ACWDT": "ACWDT", "HECU": "HECU", "AKDT": "AKDT", "MST": "MST", "AEST": "AEST", "UYST": "UYST", "TMST": "TMST", "EAT": "EAT", "HNNOMX": "HNNOMX", "IST": "IST", "HEOG": "HEOG", "ART": "ART", "ARST": "ARST", "LHST": "LHST", "HNCU": "HNCU", "ChST": "ChST", "JDT": "JDT", "AWST": "AWST", "HEPM": "HEPM", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "ACST": "ACST", "LHDT": "LHDT", "PST": "PST", "VET": "VET", "WAST": "WAST", "WIT": "WIT", "CST": "CST", "AEDT": "AEDT", "CHADT": "CHADT", "HNPMX": "HNPMX", "COST": "COST", "AWDT": "AWDT", "WESZ": "WESZ", "SAST": "SAST", "CLST": "CLST", "HAST": "HAST", "PDT": "PDT", "GYT": "GYT", "HKST": "HKST"},
+ }
+ }
+ 
+@@ -128,7 +105,7 @@ func (gd *gd_GB) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (gd *gd_GB) MonthsAbbreviated() []string {
+- return gd.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -138,7 +115,7 @@ func (gd *gd_GB) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (gd *gd_GB) MonthsNarrow() []string {
+- return gd.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -148,7 +125,7 @@ func (gd *gd_GB) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (gd *gd_GB) MonthsWide() []string {
+- return gd.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -194,73 +171,13 @@ func (gd *gd_GB) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'gd_GB' and handles both Whole and Real numbers based on 'v'
+ func (gd *gd_GB) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gd.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, gd.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, gd.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'gd_GB' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (gd *gd_GB) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gd.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, gd.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, gd.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'gd_GB'
+@@ -268,56 +185,7 @@ func (gd *gd_GB) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := gd.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gd.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, gd.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, gd.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, gd.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'gd_GB'
+@@ -326,68 +194,7 @@ func (gd *gd_GB) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := gd.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gd.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, gd.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, gd.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, gd.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, gd.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'gd_GB'
+@@ -395,27 +202,6 @@ func (gd *gd_GB) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +210,6 @@ func (gd *gd_GB) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, gd.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,18 +218,6 @@ func (gd *gd_GB) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x6d, 0x68}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, gd.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -463,20 +226,6 @@ func (gd *gd_GB) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, gd.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x6d, 0x68}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, gd.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -485,19 +234,6 @@ func (gd *gd_GB) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gd.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -506,26 +242,6 @@ func (gd *gd_GB) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gd.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gd.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -534,30 +250,6 @@ func (gd *gd_GB) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gd.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gd.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -566,34 +258,5 @@ func (gd *gd_GB) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gd.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gd.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := gd.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/gl/gl.go b/gl/gl.go
+index 54dbf53..4067de9 100644
+--- a/gl/gl.go
++++ b/gl/gl.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"a.C.", "d.C."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"antes de Cristo", "despois de Cristo"},
+- timezones: map[string]string{"CAT": "Horario de África Central", "WAST": "Horario de verán de África Occidental", "WIB": "Horario de Indonesia Occidental", "PST": "Horario estándar do Pacífico, Norteamérica", "ACWDT": "Horario de verán de Australia Occidental Central", "AEDT": "Horario de verán de Australia Oriental", "AWST": "Horario estándar de Australia Occidental", "CLT": "Horario estándar de Chile", "HNNOMX": "Horario estándar de México Noroeste", "UYST": "Horario de verán de Uruguai", "AWDT": "Horario de verán de Australia Occidental", "HNPM": "Horario estándar de Saint Pierre e Miquelon", "HEPM": "Horario de verán de Saint Pierre e Miquelon", "NZST": "Horario estándar de Nova Zelandia", "SAST": "Horario estándar de África do Sur", "CLST": "Horario de verán de Chile", "OESZ": "Horario de verán de Europa Oriental", "HENOMX": "Horario de verán de México Noroeste", "GMT": "Horario do meridiano de Greenwich", "GYT": "Horario da Güiana", "HADT": "Horario de verán de Hawai-Aleutiano", "COT": "Horario estándar de Colombia", "HAST": "Horario estándar de Hawai-Aleutiano", "CHAST": "Horario estándar de Chatham", "IST": "Horario estándar da India", "BOT": "Horario de Bolivia", "OEZ": "Horario estándar de Europa Oriental", "ADT": "Horario de verán do Atlántico", "BT": "Horario de Bután", "HNT": "Horario estándar de Terranova", "WIT": "Horario de Indonesia Oriental", "ACWST": "Horario estándar de Australia Occidental Central", "AEST": "Horario estándar de Australia Oriental", "MEZ": "Horario estándar de Europa Central", "LHST": "Horario estándar de Lord Howe", "ACST": "Horario estándar de Australia Central", "HECU": "Horario de verán de Cuba", "EAT": "Horario de África Oriental", "EST": "Horario estándar do leste, Norteamérica", "MYT": "Horario de Malaisia", "CST": "Horario estándar central, Norteamérica", "HNOG": "Horario estándar de Groenlandia Occidental", "MESZ": "Horario de verán de Europa Central", "∅∅∅": "Horario de verán do Amazonas", "TMST": "Horario de verán de Turcomenistán", "VET": "Horario de Venezuela", "CHADT": "Horario de verán de Chatham", "CDT": "Horario de verán central, Norteamérica", "JDT": "Horario de verán do Xapón", "WAT": "Horario estándar de África Occidental", "SGT": "Horario estándar de Singapur", "HNCU": "Horario estándar de Cuba", "HNPMX": "Horario estándar do Pacífico mexicano", "AST": "Horario estándar do Atlántico", "WESZ": "Horario de verán de Europa Occidental", "HKT": "Horario estándar de Hong Kong", "WITA": "Horario de Indonesia Central", "GFT": "Horario da Güiana Francesa", "ECT": "Horario de Ecuador", "WARST": "Horario de verán de Arxentina Occidental", "MST": "MST", "NZDT": "Horario de verán de Nova Zelandia", "HEEG": "Horario de verán de Groenlandia Oriental", "ACDT": "Horario de verán de Australia Central", "ART": "Horario estándar de Arxentina", "HEOG": "Horario de verán de Groenlandia Occidental", "PDT": "Horario de verán do Pacífico, Norteamérica", "JST": "Horario estándar do Xapón", "HNEG": "Horario estándar de Groenlandia Oriental", "UYT": "Horario estándar de Uruguai", "AKST": "Horario estándar de Alasca", "ARST": "Horario de verán de Arxentina", "WEZ": "Horario estándar de Europa Occidental", "TMT": "Horario estándar de Turcomenistán", "COST": "Horario de verán de Colombia", "MDT": "MDT", "HEPMX": "Horario de verán do Pacífico mexicano", "AKDT": "Horario de verán de Alasca", "SRT": "Horario de Suriname", "HKST": "Horario de verán de Hong Kong", "LHDT": "Horario de verán de Lord Howe", "ChST": "Horario estándar chamorro", "WART": "Horario estándar de Arxentina Occidental", "EDT": "Horario de verán do leste, Norteamérica", "HAT": "Horario de verán de Terranova"},
++ timezones: map[string]string{"LHDT": "Horario de verán de Lord Howe", "HEPM": "Horario de verán de Saint Pierre e Miquelon", "JDT": "Horario de verán do Xapón", "BT": "Horario de Bután", "NZST": "Horario estándar de Nova Zelandia", "BOT": "Horario de Bolivia", "HAST": "Horario estándar de Hawai-Aleutiano", "HEEG": "Horario de verán de Groenlandia Oriental", "HECU": "Horario de verán de Cuba", "WAST": "Horario de verán de África Occidental", "CDT": "Horario de verán central, Norteamérica", "AEDT": "Horario de verán de Australia Oriental", "HNCU": "Horario estándar de Cuba", "WAT": "Horario estándar de África Occidental", "WESZ": "Horario de verán de Europa Occidental", "OESZ": "Horario de verán de Europa Oriental", "HEOG": "Horario de verán de Groenlandia Occidental", "HKST": "Horario de verán de Hong Kong", "ACDT": "Horario de verán de Australia Central", "AWDT": "Horario de verán de Australia Occidental", "LHST": "Horario estándar de Lord Howe", "SAST": "Horario estándar de África do Sur", "COST": "Horario de verán de Colombia", "EST": "Horario estándar do leste, Norteamérica", "HKT": "Horario estándar de Hong Kong", "MDT": "MDT", "ACST": "Horario estándar de Australia Central", "MYT": "Horario de Malaisia", "ACWST": "Horario estándar de Australia Occidental Central", "WARST": "Horario de verán de Arxentina Occidental", "GYT": "Horario da Güiana", "TMST": "Horario de verán de Turcomenistán", "WITA": "Horario de Indonesia Central", "CST": "Horario estándar central, Norteamérica", "NZDT": "Horario de verán de Nova Zelandia", "HNPMX": "Horario estándar do Pacífico mexicano", "AKST": "Horario estándar de Alasca", "GMT": "Horario do meridiano de Greenwich", "HNEG": "Horario estándar de Groenlandia Oriental", "UYT": "Horario estándar de Uruguai", "IST": "Horario estándar da India", "ART": "Horario estándar de Arxentina", "EAT": "Horario de África Oriental", "HENOMX": "Horario de verán de México Noroeste", "COT": "Horario estándar de Colombia", "HNPM": "Horario estándar de Saint Pierre e Miquelon", "PST": "Horario estándar do Pacífico, Norteamérica", "ACWDT": "Horario de verán de Australia Occidental Central", "OEZ": "Horario estándar de Europa Oriental", "CAT": "Horario de África Central", "MST": "MST", "ADT": "Horario de verán do Atlántico", "ARST": "Horario de verán de Arxentina", "HNT": "Horario estándar de Terranova", "CLST": "Horario de verán de Chile", "∅∅∅": "Horario de verán das Azores", "PDT": "Horario de verán do Pacífico, Norteamérica", "HEPMX": "Horario de verán do Pacífico mexicano", "CLT": "Horario estándar de Chile", "WIB": "Horario de Indonesia Occidental", "SRT": "Horario de Suriname", "AWST": "Horario estándar de Australia Occidental", "ECT": "Horario de Ecuador", "CHAST": "Horario estándar de Chatham", "WEZ": "Horario estándar de Europa Occidental", "VET": "Horario de Venezuela", "HAT": "Horario de verán de Terranova", "WART": "Horario estándar de Arxentina Occidental", "HNOG": "Horario estándar de Groenlandia Occidental", "AST": "Horario estándar do Atlántico", "JST": "Horario estándar do Xapón", "UYST": "Horario de verán de Uruguai", "AEST": "Horario estándar de Australia Oriental", "HNNOMX": "Horario estándar de México Noroeste", "CHADT": "Horario de verán de Chatham", "WIT": "Horario de Indonesia Oriental", "GFT": "Horario da Güiana Francesa", "EDT": "Horario de verán do leste, Norteamérica", "MEZ": "Horario estándar de Europa Central", "SGT": "Horario estándar de Singapur", "AKDT": "Horario de verán de Alasca", "TMT": "Horario estándar de Turcomenistán", "ChST": "Horario estándar chamorro", "HADT": "Horario de verán de Hawai-Aleutiano", "MESZ": "Horario de verán de Europa Central"},
+ }
+ }
+ 
+diff --git a/gl_ES/gl_ES.go b/gl_ES/gl_ES.go
+index 7d3c49b..53c114e 100644
+--- a/gl_ES/gl_ES.go
++++ b/gl_ES/gl_ES.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type gl_ES struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'gl_ES' locale
+ func New() locales.Translator {
+ return &gl_ES{
+- locale: "gl_ES",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "xan.", "feb.", "mar.", "abr.", "maio", "xuño", "xul.", "ago.", "set.", "out.", "nov.", "dec."},
+- monthsNarrow: []string{"", "x.", "f.", "m.", "a.", "m.", "x.", "x.", "a.", "s.", "o.", "n.", "d."},
+- monthsWide: []string{"", "xaneiro", "febreiro", "marzo", "abril", "maio", "xuño", "xullo", "agosto", "setembro", "outubro", "novembro", "decembro"},
+- daysAbbreviated: []string{"dom.", "luns", "mar.", "mér.", "xov.", "ven.", "sáb."},
+- daysNarrow: []string{"d.", "l.", "m.", "m.", "x.", "v.", "s."},
+- daysShort: []string{"dom.", "luns", "mar.", "mér.", "xov.", "ven.", "sáb."},
+- daysWide: []string{"domingo", "luns", "martes", "mércores", "xoves", "venres", "sábado"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsNarrow: []string{"a.m.", "p.m."},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"a.C.", "d.C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "despois de Cristo"},
+- timezones: map[string]string{"TMT": "Horario estándar de Turcomenistán", "ACST": "Horario estándar de Australia Central", "AEST": "Horario estándar de Australia Oriental", "MST": "MST", "VET": "Horario de Venezuela", "ARST": "Horario de verán de Arxentina", "HNCU": "Horario estándar de Cuba", "BT": "Horario de Bután", "PST": "Horario estándar do Pacífico, Norteamérica", "ACWDT": "Horario de verán de Australia Occidental Central", "HNT": "Horario estándar de Terranova", "ChST": "Horario estándar chamorro", "WART": "Horario estándar de Arxentina Occidental", "ART": "Horario estándar de Arxentina", "HEOG": "Horario de verán de Groenlandia Occidental", "AWST": "Horario estándar de Australia Occidental", "HADT": "Horario de verán de Hawai-Aleutiano", "SRT": "Horario de Suriname", "AEDT": "Horario de verán de Australia Oriental", "HKT": "Horario estándar de Hong Kong", "LHST": "Horario estándar de Lord Howe", "BOT": "Horario de Bolivia", "HEEG": "Horario de verán de Groenlandia Oriental", "TMST": "Horario de verán de Turcomenistán", "UYT": "Horario estándar de Uruguai", "EDT": "Horario de verán do leste, Norteamérica", "AST": "Horario estándar do Atlántico", "WESZ": "Horario de verán de Europa Occidental", "CHADT": "Horario de verán de Chatham", "WARST": "Horario de verán de Arxentina Occidental", "GMT": "Horario do meridiano de Greenwich", "HECU": "Horario de verán de Cuba", "∅∅∅": "Horario de verán das Azores", "HNPMX": "Horario estándar do Pacífico mexicano", "ADT": "Horario de verán do Atlántico", "HKST": "Horario de verán de Hong Kong", "JST": "Horario estándar do Xapón", "HENOMX": "Horario de verán de México Noroeste", "WAT": "Horario estándar de África Occidental", "HEPM": "Horario de verán de Saint Pierre e Miquelon", "CDT": "Horario de verán central, Norteamérica", "MDT": "MDT", "UYST": "Horario de verán de Uruguai", "HAST": "Horario estándar de Hawai-Aleutiano", "WIT": "Horario de Indonesia Oriental", "PDT": "Horario de verán do Pacífico, Norteamérica", "MESZ": "Horario de verán de Europa Central", "NZST": "Horario estándar de Nova Zelandia", "SGT": "Horario estándar de Singapur", "CHAST": "Horario estándar de Chatham", "OESZ": "Horario de verán de Europa Oriental", "NZDT": "Horario de verán de Nova Zelandia", "WIB": "Horario de Indonesia Occidental", "HEPMX": "Horario de verán do Pacífico mexicano", "MYT": "Horario de Malaisia", "GFT": "Horario da Güiana Francesa", "EAT": "Horario de África Oriental", "AKST": "Horario estándar de Alasca", "IST": "Horario estándar da India", "HNEG": "Horario estándar de Groenlandia Oriental", "CAT": "Horario de África Central", "HNNOMX": "Horario estándar de México Noroeste", "GYT": "Horario da Güiana", "WEZ": "Horario estándar de Europa Occidental", "HAT": "Horario de verán de Terranova", "AWDT": "Horario de verán de Australia Occidental", "SAST": "Horario estándar de África do Sur", "CST": "Horario estándar central, Norteamérica", "ACWST": "Horario estándar de Australia Occidental Central", "LHDT": "Horario de verán de Lord Howe", "CLST": "Horario de verán de Chile", "ACDT": "Horario de verán de Australia Central", "COST": "Horario de verán de Colombia", "HNOG": "Horario estándar de Groenlandia Occidental", "HNPM": "Horario estándar de Saint Pierre e Miquelon", "MEZ": "Horario estándar de Europa Central", "CLT": "Horario estándar de Chile", "WAST": "Horario de verán de África Occidental", "OEZ": "Horario estándar de Europa Oriental", "COT": "Horario estándar de Colombia", "AKDT": "Horario de verán de Alasca", "WITA": "Horario de Indonesia Central", "JDT": "Horario de verán do Xapón", "ECT": "Horario de Ecuador", "EST": "Horario estándar do leste, Norteamérica"},
++ locale: "gl_ES",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GFT": "GFT", "WITA": "WITA", "ECT": "ECT", "HAST": "HAST", "AEDT": "AEDT", "CHADT": "CHADT", "SGT": "SGT", "WAT": "WAT", "EDT": "EDT", "JDT": "JDT", "ACWST": "ACWST", "ChST": "ChST", "WEZ": "WEZ", "AKST": "AKST", "OESZ": "OESZ", "NZDT": "NZDT", "EAT": "EAT", "ACDT": "ACDT", "BT": "BT", "SAST": "SAST", "ACST": "ACST", "AWDT": "AWDT", "HEPMX": "HEPMX", "WESZ": "WESZ", "HNOG": "HNOG", "WIB": "WIB", "GMT": "GMT", "BOT": "BOT", "MYT": "MYT", "AEST": "AEST", "CLST": "CLST", "CST": "CST", "JST": "JST", "HEPM": "HEPM", "HECU": "HECU", "AST": "AST", "SRT": "SRT", "PDT": "PDT", "HAT": "HAT", "WARST": "WARST", "CDT": "CDT", "HADT": "HADT", "WART": "WART", "COT": "COT", "HEOG": "HEOG", "TMT": "TMT", "MDT": "MDT", "UYST": "UYST", "CAT": "CAT", "HEEG": "HEEG", "CHAST": "CHAST", "UYT": "UYT", "HNT": "HNT", "∅∅∅": "∅∅∅", "NZST": "NZST", "AWST": "AWST", "HNPM": "HNPM", "HNCU": "HNCU", "GYT": "GYT", "ART": "ART", "HNNOMX": "HNNOMX", "WAST": "WAST", "AKDT": "AKDT", "VET": "VET", "WIT": "WIT", "COST": "COST", "HKST": "HKST", "TMST": "TMST", "MEZ": "MEZ", "LHST": "LHST", "HNPMX": "HNPMX", "EST": "EST", "ADT": "ADT", "ARST": "ARST", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "OEZ": "OEZ", "PST": "PST", "HKT": "HKT", "CLT": "CLT", "MST": "MST", "MESZ": "MESZ", "HNEG": "HNEG", "LHDT": "LHDT", "IST": "IST"},
+ }
+ }
+ 
+@@ -138,7 +113,7 @@ func (gl *gl_ES) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (gl *gl_ES) MonthsAbbreviated() []string {
+- return gl.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +123,7 @@ func (gl *gl_ES) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (gl *gl_ES) MonthsNarrow() []string {
+- return gl.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +133,7 @@ func (gl *gl_ES) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (gl *gl_ES) MonthsWide() []string {
+- return gl.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,75 +179,13 @@ func (gl *gl_ES) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'gl_ES' and handles both Whole and Real numbers based on 'v'
+ func (gl *gl_ES) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, gl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, gl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'gl_ES' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (gl *gl_ES) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gl.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, gl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, gl.percentSuffix...)
+-
+- b = append(b, gl.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'gl_ES'
+@@ -280,56 +193,7 @@ func (gl *gl_ES) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := gl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, gl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, gl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, gl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, gl.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'gl_ES'
+@@ -338,63 +202,7 @@ func (gl *gl_ES) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := gl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, gl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, gl.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, gl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, gl.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, gl.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'gl_ES'
+@@ -402,27 +210,6 @@ func (gl *gl_ES) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,19 +218,6 @@ func (gl *gl_ES) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, gl.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -452,19 +226,6 @@ func (gl *gl_ES) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, gl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -473,21 +234,6 @@ func (gl *gl_ES) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, gl.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, gl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -496,19 +242,6 @@ func (gl *gl_ES) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -517,26 +250,6 @@ func (gl *gl_ES) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -545,30 +258,6 @@ func (gl *gl_ES) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -577,34 +266,5 @@ func (gl *gl_ES) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := gl.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/gsw/gsw.go b/gsw/gsw.go
+index 17ecf4f..9b00a82 100644
+--- a/gsw/gsw.go
++++ b/gsw/gsw.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"v. Chr.", "n. Chr."},
+ erasNarrow: []string{"v. Chr.", "n. Chr."},
+ erasWide: []string{"v. Chr.", "n. Chr."},
+- timezones: map[string]string{"HNOG": "HNOG", "HNPM": "HNPM", "COT": "COT", "EDT": "EDT", "HNT": "HNT", "ARST": "ARST", "LHST": "LHST", "ACST": "ACST", "EAT": "Oschtafrikanischi Ziit", "WAST": "Weschtafrikanischi Summerziit", "UYST": "UYST", "ACWDT": "ACWDT", "HAST": "HAST", "MESZ": "Mitteleuropäischi Summerziit", "∅∅∅": "Amazonas-Summerziit", "CST": "Amerika-Zentraal Schtandardziit", "MDT": "MDT", "HEEG": "HEEG", "OESZ": "Oschteuropäischi Summerziit", "WART": "WART", "HEPMX": "HEPMX", "WESZ": "Weschteuropäischi Summerziit", "HKT": "HKT", "CAT": "Zentralafrikanischi Ziit", "GYT": "GYT", "WIT": "WIT", "PDT": "PDT", "AEST": "AEST", "CHADT": "CHADT", "WAT": "Weschtafrikanischi Schtandardziit", "AKST": "Alaska-Schtandardziit", "AKDT": "Alaska-Summerziit", "SRT": "SRT", "HENOMX": "HENOMX", "MYT": "MYT", "ACWST": "ACWST", "ADT": "ADT", "EST": "EST", "BT": "BT", "PST": "PST", "AWDT": "AWDT", "HKST": "HKST", "IST": "IST", "JST": "JST", "UYT": "UYT", "HADT": "HADT", "AWST": "AWST", "HEPM": "HEPM", "MEZ": "Mitteleuropäischi Schtandardziit", "LHDT": "LHDT", "SAST": "Süüdafrikanischi ziit", "GFT": "GFT", "TMT": "TMT", "AEDT": "AEDT", "GMT": "GMT", "HNPMX": "HNPMX", "CHAST": "CHAST", "CLST": "CLST", "ChST": "ChST", "WIB": "WIB", "WEZ": "Weschteuropäischi Schtandardziit", "ECT": "ECT", "COST": "COST", "HNCU": "HNCU", "MST": "MST", "HNNOMX": "HNNOMX", "HAT": "HAT", "HEOG": "HEOG", "WITA": "WITA", "NZDT": "NZDT", "HNEG": "HNEG", "TMST": "TMST", "OEZ": "Oschteuropäischi Schtandardziit", "WARST": "WARST", "VET": "VET", "AST": "AST", "SGT": "SGT", "NZST": "NZST", "CLT": "CLT", "JDT": "JDT", "BOT": "BOT", "ACDT": "ACDT", "HECU": "HECU", "CDT": "Amerika-Zentraal Summerziit", "ART": "ART"},
++ timezones: map[string]string{"WEZ": "Weschteuropäischi Schtandardziit", "AKST": "Alaska-Schtandardziit", "HKT": "HKT", "ART": "ART", "HNNOMX": "HNNOMX", "HEEG": "HEEG", "BT": "BT", "SGT": "SGT", "WAST": "Weschtafrikanischi Summerziit", "GFT": "GFT", "WART": "WART", "CLST": "CLST", "LHDT": "LHDT", "GYT": "GYT", "EST": "EST", "WIB": "WIB", "HADT": "HADT", "∅∅∅": "∅∅∅", "HEPM": "HEPM", "IST": "IST", "ACWDT": "ACWDT", "PDT": "PDT", "ACWST": "ACWST", "HNCU": "HNCU", "HEPMX": "HEPMX", "HEOG": "HEOG", "EDT": "EDT", "EAT": "Oschtafrikanischi Ziit", "JST": "JST", "CST": "Amerika-Zentraal Schtandardziit", "ADT": "ADT", "ChST": "ChST", "HNPM": "HNPM", "MST": "MST", "BOT": "BOT", "LHST": "LHST", "AEST": "AEST", "SAST": "Süüdafrikanischi ziit", "COT": "COT", "HKST": "HKST", "CDT": "Amerika-Zentraal Summerziit", "AEDT": "AEDT", "WESZ": "Weschteuropäischi Summerziit", "NZDT": "NZDT", "VET": "VET", "HNPMX": "HNPMX", "AWST": "AWST", "AWDT": "AWDT", "WITA": "WITA", "NZST": "NZST", "GMT": "GMT", "MYT": "MYT", "MESZ": "Mitteleuropäischi Summerziit", "UYST": "UYST", "HAT": "HAT", "WIT": "WIT", "CLT": "CLT", "ARST": "ARST", "OEZ": "Oschteuropäischi Schtandardziit", "WARST": "WARST", "HNEG": "HNEG", "HAST": "HAST", "CHAST": "CHAST", "OESZ": "Oschteuropäischi Summerziit", "HNOG": "HNOG", "TMST": "TMST", "AST": "AST", "HENOMX": "HENOMX", "JDT": "JDT", "UYT": "UYT", "HECU": "HECU", "CAT": "Zentralafrikanischi Ziit", "MEZ": "Mitteleuropäischi Schtandardziit", "ACST": "ACST", "ACDT": "ACDT", "CHADT": "CHADT", "WAT": "Weschtafrikanischi Schtandardziit", "MDT": "MDT", "ECT": "ECT", "SRT": "SRT", "PST": "PST", "AKDT": "Alaska-Summerziit", "HNT": "HNT", "COST": "COST", "TMT": "TMT"},
+ }
+ }
+ 
+diff --git a/gsw_CH/gsw_CH.go b/gsw_CH/gsw_CH.go
+index 17fc5dc..87b764c 100644
+--- a/gsw_CH/gsw_CH.go
++++ b/gsw_CH/gsw_CH.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type gsw_CH struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'gsw_CH' locale
+ func New() locales.Translator {
+ return &gsw_CH{
+- locale: "gsw_CH",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: "’",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "Auguscht", "Septämber", "Oktoober", "Novämber", "Dezämber"},
+- daysAbbreviated: []string{"Su.", "Mä.", "Zi.", "Mi.", "Du.", "Fr.", "Sa."},
+- daysNarrow: []string{"S", "M", "D", "M", "D", "F", "S"},
+- daysWide: []string{"Sunntig", "Määntig", "Ziischtig", "Mittwuch", "Dunschtig", "Friitig", "Samschtig"},
+- periodsAbbreviated: []string{"v.m.", "n.m."},
+- periodsWide: []string{"vorm.", "nam."},
+- erasAbbreviated: []string{"v. Chr.", "n. Chr."},
+- erasNarrow: []string{"v. Chr.", "n. Chr."},
+- erasWide: []string{"v. Chr.", "n. Chr."},
+- timezones: map[string]string{"WAST": "Weschtafrikanischi Summerziit", "OESZ": "Oschteuropäischi Summerziit", "WARST": "WARST", "GMT": "GMT", "UYST": "UYST", "HNOG": "HNOG", "HADT": "HADT", "HENOMX": "HENOMX", "EST": "EST", "CST": "Amerika-Zentraal Schtandardziit", "WIB": "WIB", "LHDT": "LHDT", "TMT": "TMT", "CAT": "Zentralafrikanischi Ziit", "AKDT": "Alaska-Summerziit", "SRT": "SRT", "HNPM": "HNPM", "AWST": "AWST", "HNEG": "HNEG", "GFT": "GFT", "COST": "COST", "HECU": "HECU", "MST": "MST", "HNT": "HNT", "ADT": "ADT", "IST": "IST", "JDT": "JDT", "ACDT": "ACDT", "COT": "COT", "ART": "ART", "MEZ": "Mitteleuropäischi Schtandardziit", "CHAST": "CHAST", "ChST": "ChST", "BOT": "BOT", "VET": "VET", "PDT": "PDT", "ACWDT": "ACWDT", "SGT": "SGT", "AEST": "AEST", "CHADT": "CHADT", "ARST": "ARST", "AWDT": "AWDT", "HKST": "HKST", "NZST": "NZST", "TMST": "TMST", "HEPMX": "HEPMX", "MYT": "MYT", "CDT": "Amerika-Zentraal Summerziit", "OEZ": "Oschteuropäischi Schtandardziit", "GYT": "GYT", "WESZ": "Weschteuropäischi Summerziit", "HEEG": "HEEG", "WEZ": "Weschteuropäischi Schtandardziit", "HAT": "HAT", "AEDT": "AEDT", "EDT": "EDT", "MDT": "MDT", "HAST": "HAST", "WAT": "Weschtafrikanischi Schtandardziit", "HNCU": "HNCU", "HEOG": "HEOG", "HEPM": "HEPM", "WART": "WART", "MESZ": "Mitteleuropäischi Summerziit", "LHST": "LHST", "CLST": "CLST", "WIT": "WIT", "HKT": "HKT", "SAST": "Süüdafrikanischi ziit", "JST": "JST", "ECT": "ECT", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "UYT": "UYT", "HNNOMX": "HNNOMX", "EAT": "Oschtafrikanischi Ziit", "PST": "PST", "WITA": "WITA", "NZDT": "NZDT", "ACWST": "ACWST", "CLT": "CLT", "ACST": "ACST", "AKST": "Alaska-Schtandardziit", "AST": "AST", "BT": "BT"},
++ locale: "gsw_CH",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MST": "MST", "ART": "ART", "CLT": "CLT", "ARST": "ARST", "HNPM": "HNPM", "AWDT": "AWDT", "HNEG": "HNEG", "HEPM": "HEPM", "AKST": "AKST", "EST": "EST", "CHADT": "CHADT", "UYST": "UYST", "WART": "WART", "ACWDT": "ACWDT", "AEST": "AEST", "∅∅∅": "∅∅∅", "WAST": "WAST", "SRT": "SRT", "HNNOMX": "HNNOMX", "AWST": "AWST", "VET": "VET", "OESZ": "OESZ", "GFT": "GFT", "ECT": "ECT", "HAST": "HAST", "PDT": "PDT", "WEZ": "WEZ", "EDT": "EDT", "MESZ": "MESZ", "LHDT": "LHDT", "AEDT": "AEDT", "HEEG": "HEEG", "HNPMX": "HNPMX", "MDT": "MDT", "GMT": "GMT", "BOT": "BOT", "HADT": "HADT", "WIT": "WIT", "UYT": "UYT", "HNCU": "HNCU", "WESZ": "WESZ", "WITA": "WITA", "NZST": "NZST", "JST": "JST", "ACWST": "ACWST", "HNT": "HNT", "WARST": "WARST", "HNOG": "HNOG", "HKT": "HKT", "CAT": "CAT", "ChST": "ChST", "SGT": "SGT", "OEZ": "OEZ", "CLST": "CLST", "IST": "IST", "ADT": "ADT", "MEZ": "MEZ", "CHAST": "CHAST", "HENOMX": "HENOMX", "ACST": "ACST", "PST": "PST", "HECU": "HECU", "WAT": "WAT", "WIB": "WIB", "CST": "CST", "AST": "AST", "AKDT": "AKDT", "HEOG": "HEOG", "TMT": "TMT", "HEPMX": "HEPMX", "NZDT": "NZDT", "ACDT": "ACDT", "BT": "BT", "GYT": "GYT", "HKST": "HKST", "CDT": "CDT", "MYT": "MYT", "COST": "COST", "HAT": "HAT", "COT": "COT", "SAST": "SAST", "TMST": "TMST", "EAT": "EAT", "JDT": "JDT", "LHST": "LHST"},
+ }
+ }
+ 
+@@ -124,7 +101,7 @@ func (gsw *gsw_CH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (gsw *gsw_CH) MonthsAbbreviated() []string {
+- return gsw.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -134,7 +111,7 @@ func (gsw *gsw_CH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (gsw *gsw_CH) MonthsNarrow() []string {
+- return gsw.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -144,7 +121,7 @@ func (gsw *gsw_CH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (gsw *gsw_CH) MonthsWide() []string {
+- return gsw.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,81 +167,13 @@ func (gsw *gsw_CH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'gsw_CH' and handles both Whole and Real numbers based on 'v'
+ func (gsw *gsw_CH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 3*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gsw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(gsw.group) - 1; j >= 0; j-- {
+- b = append(b, gsw.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(gsw.minus) - 1; j >= 0; j-- {
+- b = append(b, gsw.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'gsw_CH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (gsw *gsw_CH) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gsw.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(gsw.minus) - 1; j >= 0; j-- {
+- b = append(b, gsw.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, gsw.percentSuffix...)
+-
+- b = append(b, gsw.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'gsw_CH'
+@@ -272,60 +181,7 @@ func (gsw *gsw_CH) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := gsw.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 3*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gsw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(gsw.group) - 1; j >= 0; j-- {
+- b = append(b, gsw.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(gsw.minus) - 1; j >= 0; j-- {
+- b = append(b, gsw.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, gsw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, gsw.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'gsw_CH'
+@@ -334,67 +190,7 @@ func (gsw *gsw_CH) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := gsw.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 3*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gsw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(gsw.group) - 1; j >= 0; j-- {
+- b = append(b, gsw.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(gsw.minus) - 1; j >= 0; j-- {
+- b = append(b, gsw.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, gsw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, gsw.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, gsw.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'gsw_CH'
+@@ -402,27 +198,6 @@ func (gsw *gsw_CH) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,27 +206,6 @@ func (gsw *gsw_CH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -460,17 +214,6 @@ func (gsw *gsw_CH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, gsw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -479,19 +222,6 @@ func (gsw *gsw_CH) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, gsw.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, gsw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -500,19 +230,6 @@ func (gsw *gsw_CH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,26 +238,6 @@ func (gsw *gsw_CH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -549,30 +246,6 @@ func (gsw *gsw_CH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -581,34 +254,5 @@ func (gsw *gsw_CH) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := gsw.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/gsw_FR/gsw_FR.go b/gsw_FR/gsw_FR.go
+index 16f4440..ce1fbcf 100644
+--- a/gsw_FR/gsw_FR.go
++++ b/gsw_FR/gsw_FR.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type gsw_FR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'gsw_FR' locale
+ func New() locales.Translator {
+ return &gsw_FR{
+- locale: "gsw_FR",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: "’",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "Auguscht", "Septämber", "Oktoober", "Novämber", "Dezämber"},
+- daysAbbreviated: []string{"Su.", "Mä.", "Zi.", "Mi.", "Du.", "Fr.", "Sa."},
+- daysNarrow: []string{"S", "M", "D", "M", "D", "F", "S"},
+- daysWide: []string{"Sunntig", "Määntig", "Ziischtig", "Mittwuch", "Dunschtig", "Friitig", "Samschtig"},
+- periodsAbbreviated: []string{"v.m.", "n.m."},
+- periodsWide: []string{"vorm.", "nam."},
+- erasAbbreviated: []string{"v. Chr.", "n. Chr."},
+- erasNarrow: []string{"v. Chr.", "n. Chr."},
+- erasWide: []string{"v. Chr.", "n. Chr."},
+- timezones: map[string]string{"PST": "PST", "ACWST": "ACWST", "AEDT": "AEDT", "TMST": "TMST", "AKDT": "Alaska-Summerziit", "VET": "VET", "NZDT": "NZDT", "ACST": "ACST", "HEPMX": "HEPMX", "ADT": "ADT", "UYT": "UYT", "AWST": "AWST", "OEZ": "Oschteuropäischi Schtandardziit", "HNPMX": "HNPMX", "AST": "AST", "LHDT": "LHDT", "JST": "JST", "COT": "COT", "MST": "MST", "UYST": "UYST", "BT": "BT", "CAT": "Zentralafrikanischi Ziit", "COST": "COST", "HKT": "HKT", "MESZ": "Mitteleuropäischi Summerziit", "LHST": "LHST", "WIT": "WIT", "ARST": "ARST", "JDT": "JDT", "ACDT": "ACDT", "HAST": "HAST", "AEST": "AEST", "NZST": "NZST", "BOT": "BOT", "HEEG": "HEEG", "WAT": "Weschtafrikanischi Schtandardziit", "WIB": "WIB", "GYT": "GYT", "PDT": "PDT", "ACWDT": "ACWDT", "MEZ": "Mitteleuropäischi Schtandardziit", "CLT": "CLT", "EAT": "Oschtafrikanischi Ziit", "SGT": "SGT", "CST": "Amerika-Zentraal Schtandardziit", "HNOG": "HNOG", "WEZ": "Weschteuropäischi Schtandardziit", "HEPM": "HEPM", "∅∅∅": "Amazonas-Summerziit", "WAST": "Weschtafrikanischi Summerziit", "WARST": "WARST", "MYT": "MYT", "SRT": "SRT", "HAT": "HAT", "GFT": "GFT", "ChST": "ChST", "HENOMX": "HENOMX", "HNCU": "HNCU", "HECU": "HECU", "WESZ": "Weschteuropäischi Summerziit", "CHAST": "CHAST", "IST": "IST", "TMT": "TMT", "OESZ": "Oschteuropäischi Summerziit", "HADT": "HADT", "WITA": "WITA", "WART": "WART", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "ECT": "ECT", "EST": "EST", "EDT": "EDT", "CDT": "Amerika-Zentraal Summerziit", "AKST": "Alaska-Schtandardziit", "HEOG": "HEOG", "HKST": "HKST", "MDT": "MDT", "GMT": "GMT", "HNT": "HNT", "ART": "ART", "HNPM": "HNPM", "CHADT": "CHADT", "SAST": "Süüdafrikanischi ziit", "CLST": "CLST", "HNEG": "HNEG"},
++ locale: "gsw_FR",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"COST": "COST", "HNOG": "HNOG", "HKT": "HKT", "SGT": "SGT", "OEZ": "OEZ", "WART": "WART", "CDT": "CDT", "AST": "AST", "GMT": "GMT", "HEEG": "HEEG", "HEPM": "HEPM", "EDT": "EDT", "PST": "PST", "AKDT": "AKDT", "WITA": "WITA", "HADT": "HADT", "ACST": "ACST", "HNNOMX": "HNNOMX", "HEOG": "HEOG", "ARST": "ARST", "HNEG": "HNEG", "BOT": "BOT", "JDT": "JDT", "UYST": "UYST", "HKST": "HKST", "WIB": "WIB", "ECT": "ECT", "OESZ": "OESZ", "WIT": "WIT", "∅∅∅": "∅∅∅", "TMT": "TMT", "MESZ": "MESZ", "ACDT": "ACDT", "EST": "EST", "CST": "CST", "CHADT": "CHADT", "HEPMX": "HEPMX", "HNT": "HNT", "TMST": "TMST", "NZST": "NZST", "ART": "ART", "JST": "JST", "LHST": "LHST", "CHAST": "CHAST", "VET": "VET", "MST": "MST", "ADT": "ADT", "AEDT": "AEDT", "ACWST": "ACWST", "WESZ": "WESZ", "HNCU": "HNCU", "CLST": "CLST", "MEZ": "MEZ", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "HAT": "HAT", "CAT": "CAT", "NZDT": "NZDT", "HAST": "HAST", "AWDT": "AWDT", "HNPM": "HNPM", "AEST": "AEST", "UYT": "UYT", "WAST": "WAST", "SAST": "SAST", "GYT": "GYT", "COT": "COT", "MDT": "MDT", "ChST": "ChST", "SRT": "SRT", "EAT": "EAT", "LHDT": "LHDT", "HECU": "HECU", "WAT": "WAT", "AKST": "AKST", "GFT": "GFT", "CLT": "CLT", "AWST": "AWST", "IST": "IST", "PDT": "PDT", "HNPMX": "HNPMX", "WARST": "WARST", "MYT": "MYT", "BT": "BT", "WEZ": "WEZ"},
+ }
+ }
+ 
+@@ -124,7 +101,7 @@ func (gsw *gsw_FR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (gsw *gsw_FR) MonthsAbbreviated() []string {
+- return gsw.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -134,7 +111,7 @@ func (gsw *gsw_FR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (gsw *gsw_FR) MonthsNarrow() []string {
+- return gsw.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -144,7 +121,7 @@ func (gsw *gsw_FR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (gsw *gsw_FR) MonthsWide() []string {
+- return gsw.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,81 +167,13 @@ func (gsw *gsw_FR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'gsw_FR' and handles both Whole and Real numbers based on 'v'
+ func (gsw *gsw_FR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 3*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gsw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(gsw.group) - 1; j >= 0; j-- {
+- b = append(b, gsw.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(gsw.minus) - 1; j >= 0; j-- {
+- b = append(b, gsw.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'gsw_FR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (gsw *gsw_FR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gsw.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(gsw.minus) - 1; j >= 0; j-- {
+- b = append(b, gsw.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, gsw.percentSuffix...)
+-
+- b = append(b, gsw.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'gsw_FR'
+@@ -272,60 +181,7 @@ func (gsw *gsw_FR) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := gsw.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 3*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gsw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(gsw.group) - 1; j >= 0; j-- {
+- b = append(b, gsw.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(gsw.minus) - 1; j >= 0; j-- {
+- b = append(b, gsw.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, gsw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, gsw.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'gsw_FR'
+@@ -334,67 +190,7 @@ func (gsw *gsw_FR) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := gsw.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 3*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gsw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(gsw.group) - 1; j >= 0; j-- {
+- b = append(b, gsw.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(gsw.minus) - 1; j >= 0; j-- {
+- b = append(b, gsw.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, gsw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, gsw.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, gsw.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'gsw_FR'
+@@ -402,27 +198,6 @@ func (gsw *gsw_FR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,27 +206,6 @@ func (gsw *gsw_FR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -460,17 +214,6 @@ func (gsw *gsw_FR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, gsw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -479,19 +222,6 @@ func (gsw *gsw_FR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, gsw.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, gsw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -500,19 +230,6 @@ func (gsw *gsw_FR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,26 +238,6 @@ func (gsw *gsw_FR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -549,30 +246,6 @@ func (gsw *gsw_FR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -581,34 +254,5 @@ func (gsw *gsw_FR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := gsw.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/gsw_LI/gsw_LI.go b/gsw_LI/gsw_LI.go
+index 2a13738..c5e8e36 100644
+--- a/gsw_LI/gsw_LI.go
++++ b/gsw_LI/gsw_LI.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type gsw_LI struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'gsw_LI' locale
+ func New() locales.Translator {
+ return &gsw_LI{
+- locale: "gsw_LI",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: "’",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "Auguscht", "Septämber", "Oktoober", "Novämber", "Dezämber"},
+- daysAbbreviated: []string{"Su.", "Mä.", "Zi.", "Mi.", "Du.", "Fr.", "Sa."},
+- daysNarrow: []string{"S", "M", "D", "M", "D", "F", "S"},
+- daysWide: []string{"Sunntig", "Määntig", "Ziischtig", "Mittwuch", "Dunschtig", "Friitig", "Samschtig"},
+- periodsAbbreviated: []string{"v.m.", "n.m."},
+- periodsWide: []string{"vorm.", "nam."},
+- erasAbbreviated: []string{"v. Chr.", "n. Chr."},
+- erasNarrow: []string{"v. Chr.", "n. Chr."},
+- erasWide: []string{"v. Chr.", "n. Chr."},
+- timezones: map[string]string{"WESZ": "Weschteuropäischi Summerziit", "ART": "ART", "NZDT": "NZDT", "CLST": "CLST", "EAT": "Oschtafrikanischi Ziit", "ECT": "ECT", "COST": "COST", "CDT": "Amerika-Zentraal Summerziit", "SRT": "SRT", "JDT": "JDT", "TMT": "TMT", "ACWST": "ACWST", "HAT": "HAT", "CHADT": "CHADT", "ACDT": "ACDT", "ADT": "ADT", "GYT": "GYT", "WIT": "WIT", "HADT": "HADT", "HKT": "HKT", "HNPM": "HNPM", "CHAST": "CHAST", "TMST": "TMST", "COT": "COT", "MESZ": "Mitteleuropäischi Summerziit", "PST": "PST", "HNCU": "HNCU", "CST": "Amerika-Zentraal Schtandardziit", "GFT": "GFT", "CAT": "Zentralafrikanischi Ziit", "BT": "BT", "NZST": "NZST", "BOT": "BOT", "AKDT": "Alaska-Summerziit", "ChST": "ChST", "OEZ": "Oschteuropäischi Schtandardziit", "OESZ": "Oschteuropäischi Summerziit", "HEOG": "HEOG", "JST": "JST", "HNEG": "HNEG", "HNPMX": "HNPMX", "EDT": "EDT", "WIB": "WIB", "VET": "VET", "ARST": "ARST", "AWST": "AWST", "SAST": "Süüdafrikanischi ziit", "MST": "MST", "AEST": "AEST", "MEZ": "Mitteleuropäischi Schtandardziit", "UYST": "UYST", "WEZ": "Weschteuropäischi Schtandardziit", "AKST": "Alaska-Schtandardziit", "HAST": "HAST", "ACWDT": "ACWDT", "LHST": "LHST", "WAT": "Weschtafrikanischi Schtandardziit", "EST": "EST", "WAST": "Weschtafrikanischi Summerziit", "HECU": "HECU", "GMT": "GMT", "MDT": "MDT", "HNT": "HNT", "HNOG": "HNOG", "IST": "IST", "ACST": "ACST", "WITA": "WITA", "WART": "WART", "PDT": "PDT", "AEDT": "AEDT", "HNNOMX": "HNNOMX", "AST": "AST", "SGT": "SGT", "AWDT": "AWDT", "HEPM": "HEPM", "LHDT": "LHDT", "HEEG": "HEEG", "WARST": "WARST", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "MYT": "MYT", "UYT": "UYT", "HKST": "HKST", "CLT": "CLT", "∅∅∅": "Amazonas-Summerziit"},
++ locale: "gsw_LI",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"OESZ": "OESZ", "MDT": "MDT", "HAST": "HAST", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "COT": "COT", "HEOG": "HEOG", "EDT": "EDT", "AWST": "AWST", "WARST": "WARST", "TMST": "TMST", "CST": "CST", "ECT": "ECT", "ADT": "ADT", "GMT": "GMT", "ARST": "ARST", "HNPM": "HNPM", "HENOMX": "HENOMX", "AEST": "AEST", "UYT": "UYT", "WEZ": "WEZ", "WITA": "WITA", "MYT": "MYT", "TMT": "TMT", "HEPM": "HEPM", "BT": "BT", "UYST": "UYST", "JST": "JST", "NZST": "NZST", "ART": "ART", "HNPMX": "HNPMX", "HNCU": "HNCU", "AKDT": "AKDT", "HKST": "HKST", "NZDT": "NZDT", "ChST": "ChST", "SRT": "SRT", "HEEG": "HEEG", "LHST": "LHST", "WAT": "WAT", "HAT": "HAT", "COST": "COST", "CDT": "CDT", "IST": "IST", "WART": "WART", "GYT": "GYT", "EST": "EST", "HKT": "HKT", "CLST": "CLST", "HADT": "HADT", "ACST": "ACST", "PDT": "PDT", "SGT": "SGT", "HNT": "HNT", "BOT": "BOT", "CHADT": "CHADT", "ACWST": "ACWST", "CHAST": "CHAST", "VET": "VET", "GFT": "GFT", "MEZ": "MEZ", "HNNOMX": "HNNOMX", "JDT": "JDT", "HEPMX": "HEPMX", "HNOG": "HNOG", "CLT": "CLT", "WIB": "WIB", "AST": "AST", "EAT": "EAT", "WESZ": "WESZ", "PST": "PST", "OEZ": "OEZ", "SAST": "SAST", "CAT": "CAT", "MESZ": "MESZ", "HNEG": "HNEG", "AWDT": "AWDT", "WIT": "WIT", "MST": "MST", "WAST": "WAST", "ACWDT": "ACWDT", "HECU": "HECU", "AKST": "AKST", "ACDT": "ACDT", "LHDT": "LHDT"},
+ }
+ }
+ 
+@@ -124,7 +101,7 @@ func (gsw *gsw_LI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (gsw *gsw_LI) MonthsAbbreviated() []string {
+- return gsw.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -134,7 +111,7 @@ func (gsw *gsw_LI) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (gsw *gsw_LI) MonthsNarrow() []string {
+- return gsw.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -144,7 +121,7 @@ func (gsw *gsw_LI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (gsw *gsw_LI) MonthsWide() []string {
+- return gsw.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,81 +167,13 @@ func (gsw *gsw_LI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'gsw_LI' and handles both Whole and Real numbers based on 'v'
+ func (gsw *gsw_LI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 3*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gsw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(gsw.group) - 1; j >= 0; j-- {
+- b = append(b, gsw.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(gsw.minus) - 1; j >= 0; j-- {
+- b = append(b, gsw.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'gsw_LI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (gsw *gsw_LI) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gsw.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(gsw.minus) - 1; j >= 0; j-- {
+- b = append(b, gsw.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, gsw.percentSuffix...)
+-
+- b = append(b, gsw.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'gsw_LI'
+@@ -272,60 +181,7 @@ func (gsw *gsw_LI) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := gsw.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 3*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gsw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(gsw.group) - 1; j >= 0; j-- {
+- b = append(b, gsw.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(gsw.minus) - 1; j >= 0; j-- {
+- b = append(b, gsw.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, gsw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, gsw.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'gsw_LI'
+@@ -334,67 +190,7 @@ func (gsw *gsw_LI) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := gsw.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 3*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gsw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(gsw.group) - 1; j >= 0; j-- {
+- b = append(b, gsw.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(gsw.minus) - 1; j >= 0; j-- {
+- b = append(b, gsw.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, gsw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, gsw.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, gsw.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'gsw_LI'
+@@ -402,27 +198,6 @@ func (gsw *gsw_LI) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,27 +206,6 @@ func (gsw *gsw_LI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -460,17 +214,6 @@ func (gsw *gsw_LI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, gsw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -479,19 +222,6 @@ func (gsw *gsw_LI) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, gsw.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, gsw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -500,19 +230,6 @@ func (gsw *gsw_LI) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,26 +238,6 @@ func (gsw *gsw_LI) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -549,30 +246,6 @@ func (gsw *gsw_LI) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -581,34 +254,5 @@ func (gsw *gsw_LI) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gsw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := gsw.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/gu/gu.go b/gu/gu.go
+index 128fa0e..b2dfd1a 100644
+--- a/gu/gu.go
++++ b/gu/gu.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ઈ.સ.પૂર્વે", "ઈ.સ."},
+ erasNarrow: []string{"ઇ સ પુ", "ઇસ"},
+ erasWide: []string{"ઈસવીસન પૂર્વે", "ઇસવીસન"},
+- timezones: map[string]string{"HKT": "હોંગ કોંગ માનક સમય", "BOT": "બોલિવિયા સમય", "WAT": "પશ્ચિમ આફ્રિકા માનક સમય", "AWST": "ઓસ્ટ્રેલિયન પશ્ચિમી પ્રમાણભૂત સમય", "ACST": "ઓસ્ટ્રેલિયન મધ્ય પ્રમાણભૂત સમય", "COT": "કોલંબિયા માનક સમય", "HNNOMX": "ઉત્તરપશ્ચિમ મેક્સિકો માનક સમય", "AKDT": "અલાસ્કા દિવસ સમય", "ACWDT": "ઓસ્ટ્રેલિયન મધ્ય પશ્ચિમી દિવસ સમય", "PST": "ઉત્તર અમેરિકન પેસિફિક પ્રમાણભૂત સમય", "PDT": "ઉત્તર અમેરિકન પેસિફિક દિવસ સમય", "HEPM": "સેંટ પીએરે એન્ડ મિકીલોન દિવસ સમય", "WAST": "પશ્ચિમ આફ્રિકા ગ્રીષ્મ સમય", "OEZ": "પૂર્વી યુરોપિયન માનક સમય", "WIB": "પશ્ચિમી ઇન્ડોનેશિયા સમય", "WITA": "મધ્ય ઇન્ડોનેશિયા સમય", "CLT": "ચિલી માનક સમય", "ACDT": "ઓસ્ટ્રેલિયન મધ્ય દિવસ સમય", "HENOMX": "ઉત્તરપશ્ચિમ મેક્સિકો દિવસ સમય", "TMT": "તુર્કમેનિસ્તાન માનક સમય", "TMST": "તુર્કમેનિસ્તાન ગ્રીષ્મ સમય", "WART": "પશ્ચિમી અર્જેન્ટીના માનક સમય", "CDT": "ઉત્તર અમેરિકન મધ્ય દિવસ સમય", "WESZ": "પશ્ચિમી યુરોપિયન ગ્રીષ્મ સમય", "CHADT": "ચેતહામ દિવસ સમય", "HNEG": "પૂર્વ ગ્રીનલેન્ડ માનક સમય", "HEEG": "પૂર્વ ગ્રીનલેન્ડ ગ્રીષ્મ સમય", "MEZ": "મધ્ય યુરોપિયન માનક સમય", "CLST": "ચિલી ગ્રીષ્મ સમય", "HNT": "ન્યૂફાઉન્ડલેન્ડ પ્રમાણભૂત સમય", "HNPM": "સેંટ પીએરે એન્ડ મિકીલોન માનક સમય", "HNPMX": "મેક્સીકન પેસિફિક માનક સમય", "BT": "ભૂટાન સમય", "EDT": "ઉત્તર અમેરિકન પૂર્વી દિવસ સમય", "ADT": "અટલાન્ટિક દિવસ સમય", "HNOG": "પશ્ચિમ ગ્રીનલેન્ડ માનક સમય", "JDT": "જાપાન દિવસ સમય", "EAT": "પૂર્વ આફ્રિકા સમય", "COST": "કોલંબિયા ગ્રીષ્મ સમય", "NZDT": "ન્યુઝીલેન્ડ દિવસ સમય", "CHAST": "ચેતહામ માનક સમય", "IST": "ભારતીય માનક સમય", "GFT": "ફ્રેન્ચ ગયાના સમય", "∅∅∅": "પેરુ ગ્રીષ્મ સમય", "VET": "વેનેઝુએલા સમય", "HAT": "ન્યૂફાઉન્ડલેન્ડ દિવસ સમય", "ChST": "કેમોરો માનક સમય", "UYST": "ઉરૂગ્વે ગ્રીષ્મ સમય", "WARST": "પશ્ચિમી અર્જેન્ટીના ગ્રીષ્મ સમય", "GYT": "ગયાના સમય", "MYT": "મલેશિયા સમય", "HAST": "હવાઇ-એલ્યુશિઅન માનક સમય", "HEOG": "પશ્ચિમ ગ્રીનલેન્ડ ગ્રીષ્મ સમય", "LHST": "લોર્ડ હોવ પ્રમાણભૂત સમય", "HEPMX": "મેક્સીકન પેસિફિક દિવસ સમય", "AKST": "અલાસ્કા પ્રમાણભૂત સમય", "WEZ": "પશ્ચિમી યુરોપિયન માનક સમય", "AWDT": "ઓસ્ટ્રેલિયન પશ્ચિમી દિવસ સમય", "MESZ": "મધ્ય યુરોપિયન ગ્રીષ્મ સમય", "OESZ": "પૂર્વી યુરોપીયન ગ્રીષ્મ સમય", "ACWST": "ઓસ્ટ્રેલિયન મધ્ય પશ્ચિમી પ્રમાણભૂત સમય", "SAST": "દક્ષિણ આફ્રિકા માનક સમય", "JST": "જાપાન માનક સમય", "AST": "અટલાન્ટિક પ્રમાણભૂત સમય", "ART": "અર્જેન્ટીના માનક સમય", "MDT": "મકાઉ ગ્રીષ્મ સમય", "CAT": "મધ્ય આફ્રિકા સમય", "HECU": "ક્યૂબા દિવસ સમય", "EST": "ઉત્તર અમેરિકન પૂર્વી પ્રમાણભૂત સમય", "MST": "મકાઉ પ્રમાણભૂત સમય", "UYT": "ઉરૂગ્વે માનક સમય", "WIT": "પૂર્વીય ઇન્ડોનેશિયા સમય", "HADT": "હવાઇ-એલ્યુશિઅન દિવસ સમય", "ARST": "આર્જેન્ટીના ગ્રીષ્મ સમય", "ECT": "એક્વાડોર સમય", "HNCU": "ક્યૂબા માનક સમય", "AEST": "ઓસ્ટ્રેલિયન પૂર્વીય પ્રમાણભૂત સમય", "LHDT": "લોર્ડ હોવ દિવસ સમય", "CST": "ઉત્તર અમેરિકન કેન્દ્રિય પ્રમાણભૂત સમય", "SRT": "સૂરીનામ સમય", "HKST": "હોંગ કોંગ ગ્રીષ્મ સમય", "AEDT": "ઓસ્ટ્રેલિયન પૂર્વીય દિવસ સમય", "NZST": "ન્યુઝીલેન્ડ માનક સમય", "GMT": "ગ્રીનવિચ મધ્યમ સમય", "SGT": "સિંગાપુર માનક સમય"},
++ timezones: map[string]string{"AEST": "ઓસ્ટ્રેલિયન પૂર્વીય પ્રમાણભૂત સમય", "MYT": "મલેશિયા સમય", "HEPM": "સેંટ પીએરે એન્ડ મિકીલોન દિવસ સમય", "AWST": "ઓસ્ટ્રેલિયન પશ્ચિમી પ્રમાણભૂત સમય", "AWDT": "ઓસ્ટ્રેલિયન પશ્ચિમી દિવસ સમય", "WART": "પશ્ચિમી અર્જેન્ટીના માનક સમય", "BOT": "બોલિવિયા સમય", "HENOMX": "ઉત્તરપશ્ચિમ મેક્સિકો દિવસ સમય", "MESZ": "મધ્ય યુરોપિયન ગ્રીષ્મ સમય", "COT": "કોલંબિયા માનક સમય", "SAST": "દક્ષિણ આફ્રિકા માનક સમય", "TMT": "તુર્કમેનિસ્તાન માનક સમય", "CAT": "મધ્ય આફ્રિકા સમય", "EAT": "પૂર્વ આફ્રિકા સમય", "HNNOMX": "ઉત્તરપશ્ચિમ મેક્સિકો માનક સમય", "VET": "વેનેઝુએલા સમય", "HNCU": "ક્યૂબા માનક સમય", "OEZ": "પૂર્વી યુરોપિયન માનક સમય", "CST": "ઉત્તર અમેરિકન કેન્દ્રિય પ્રમાણભૂત સમય", "HNPM": "સેંટ પીએરે એન્ડ મિકીલોન માનક સમય", "UYT": "ઉરૂગ્વે માનક સમય", "SGT": "સિંગાપુર માનક સમય", "HNEG": "પૂર્વ ગ્રીનલેન્ડ માનક સમય", "GYT": "ગયાના સમય", "EST": "ઉત્તર અમેરિકન પૂર્વી પ્રમાણભૂત સમય", "AKST": "અલાસ્કા પ્રમાણભૂત સમય", "AKDT": "અલાસ્કા દિવસ સમય", "GFT": "ફ્રેન્ચ ગયાના સમય", "HNOG": "પશ્ચિમ ગ્રીનલેન્ડ માનક સમય", "JST": "જાપાન માનક સમય", "ACWST": "ઓસ્ટ્રેલિયન મધ્ય પશ્ચિમી પ્રમાણભૂત સમય", "UYST": "ઉરૂગ્વે ગ્રીષ્મ સમય", "HECU": "ક્યૂબા દિવસ સમય", "HAT": "ન્યૂફાઉન્ડલેન્ડ દિવસ સમય", "EDT": "ઉત્તર અમેરિકન પૂર્વી દિવસ સમય", "LHDT": "લોર્ડ હોવ દિવસ સમય", "CHAST": "ચેતહામ માનક સમય", "IST": "ભારતીય માનક સમય", "WAST": "પશ્ચિમ આફ્રિકા ગ્રીષ્મ સમય", "WITA": "મધ્ય ઇન્ડોનેશિયા સમય", "GMT": "ગ્રીનવિચ મધ્યમ સમય", "ChST": "કેમોરો માનક સમય", "AST": "અટલાન્ટિક પ્રમાણભૂત સમય", "MEZ": "મધ્ય યુરોપિયન માનક સમય", "LHST": "લોર્ડ હોવ પ્રમાણભૂત સમય", "BT": "ભૂટાન સમય", "WEZ": "પશ્ચિમી યુરોપિયન માનક સમય", "OESZ": "પૂર્વી યુરોપીયન ગ્રીષ્મ સમય", "WIT": "પૂર્વીય ઇન્ડોનેશિયા સમય", "HEOG": "પશ્ચિમ ગ્રીનલેન્ડ ગ્રીષ્મ સમય", "NZST": "ન્યુઝીલેન્ડ માનક સમય", "HADT": "હવાઇ-એલ્યુશિઅન દિવસ સમય", "∅∅∅": "એકર ગ્રીષ્મ સમય", "HNPMX": "મેક્સીકન પેસિફિક માનક સમય", "AEDT": "ઓસ્ટ્રેલિયન પૂર્વીય દિવસ સમય", "WARST": "પશ્ચિમી અર્જેન્ટીના ગ્રીષ્મ સમય", "HKST": "હોંગ કોંગ ગ્રીષ્મ સમય", "NZDT": "ન્યુઝીલેન્ડ દિવસ સમય", "WIB": "પશ્ચિમી ઇન્ડોનેશિયા સમય", "MDT": "ઉત્તર અમેરિકન માઉન્ટન દિવસ સમય", "JDT": "જાપાન દિવસ સમય", "ACWDT": "ઓસ્ટ્રેલિયન મધ્ય પશ્ચિમી દિવસ સમય", "ART": "અર્જેન્ટીના માનક સમય", "HAST": "હવાઇ-એલ્યુશિઅન માનક સમય", "CLST": "ચિલી ગ્રીષ્મ સમય", "ECT": "એક્વાડોર સમય", "HNT": "ન્યૂફાઉન્ડલેન્ડ પ્રમાણભૂત સમય", "CDT": "ઉત્તર અમેરિકન મધ્ય દિવસ સમય", "ARST": "આર્જેન્ટીના ગ્રીષ્મ સમય", "MST": "ઉત્તર અમેરિકન માઉન્ટન પ્રમાણભૂત સમય", "HEEG": "પૂર્વ ગ્રીનલેન્ડ ગ્રીષ્મ સમય", "WESZ": "પશ્ચિમી યુરોપિયન ગ્રીષ્મ સમય", "HKT": "હોંગ કોંગ માનક સમય", "TMST": "તુર્કમેનિસ્તાન ગ્રીષ્મ સમય", "CLT": "ચિલી માનક સમય", "ADT": "અટલાન્ટિક દિવસ સમય", "SRT": "સૂરીનામ સમય", "PDT": "ઉત્તર અમેરિકન પેસિફિક દિવસ સમય", "HEPMX": "મેક્સીકન પેસિફિક દિવસ સમય", "CHADT": "ચેતહામ દિવસ સમય", "WAT": "પશ્ચિમ આફ્રિકા માનક સમય", "COST": "કોલંબિયા ગ્રીષ્મ સમય", "ACST": "ઓસ્ટ્રેલિયન મધ્ય પ્રમાણભૂત સમય", "ACDT": "ઓસ્ટ્રેલિયન મધ્ય દિવસ સમય", "PST": "ઉત્તર અમેરિકન પેસિફિક પ્રમાણભૂત સમય"},
+ }
+ }
+ 
+diff --git a/gu_IN/gu_IN.go b/gu_IN/gu_IN.go
+index d5f014d..209b202 100644
+--- a/gu_IN/gu_IN.go
++++ b/gu_IN/gu_IN.go
+@@ -42,32 +42,13 @@ type gu_IN struct {
+ // New returns a new instance of translator for the 'gu_IN' locale
+ func New() locales.Translator {
+ return &gu_IN{
+- locale: "gu_IN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 5, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "જાન્યુ", "ફેબ્રુ", "માર્ચ", "એપ્રિલ", "મે", "જૂન", "જુલાઈ", "ઑગસ્ટ", "સપ્ટે", "ઑક્ટો", "નવે", "ડિસે"},
+- monthsNarrow: []string{"", "જા", "ફે", "મા", "એ", "મે", "જૂ", "જુ", "ઑ", "સ", "ઑ", "ન", "ડિ"},
+- monthsWide: []string{"", "જાન્યુઆરી", "ફેબ્રુઆરી", "માર્ચ", "એપ્રિલ", "મે", "જૂન", "જુલાઈ", "ઑગસ્ટ", "સપ્ટેમ્બર", "ઑક્ટોબર", "નવેમ્બર", "ડિસેમ્બર"},
+- daysAbbreviated: []string{"રવિ", "સોમ", "મંગળ", "બુધ", "ગુરુ", "શુક્ર", "શનિ"},
+- daysNarrow: []string{"ર", "સો", "મં", "બુ", "ગુ", "શુ", "શ"},
+- daysShort: []string{"ર", "સો", "મં", "બુ", "ગુ", "શુ", "શ"},
+- daysWide: []string{"રવિવાર", "સોમવાર", "મંગળવાર", "બુધવાર", "ગુરુવાર", "શુક્રવાર", "શનિવાર"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"ઈ.સ.પૂર્વે", "ઈ.સ."},
+- erasNarrow: []string{"ઇ સ પુ", "ઇસ"},
+- erasWide: []string{"ઈસવીસન પૂર્વે", "ઇસવીસન"},
+- timezones: map[string]string{"WIB": "પશ્ચિમી ઇન્ડોનેશિયા સમય", "HADT": "હવાઇ-એલ્યુશિઅન દિવસ સમય", "ARST": "આર્જેન્ટીના ગ્રીષ્મ સમય", "AWST": "ઓસ્ટ્રેલિયન પશ્ચિમી પ્રમાણભૂત સમય", "CLT": "ચિલી માનક સમય", "GFT": "ફ્રેન્ચ ગયાના સમય", "EST": "ઉત્તર અમેરિકન પૂર્વી પ્રમાણભૂત સમય", "MST": "મકાઉ પ્રમાણભૂત સમય", "JST": "જાપાન માનક સમય", "CDT": "ઉત્તર અમેરિકન મધ્ય દિવસ સમય", "HNT": "ન્યૂફાઉન્ડલેન્ડ પ્રમાણભૂત સમય", "HEPM": "સેંટ પીએરે એન્ડ મિકીલોન દિવસ સમય", "LHDT": "લોર્ડ હોવ દિવસ સમય", "ECT": "એક્વાડોર સમય", "BT": "ભૂટાન સમય", "WESZ": "પશ્ચિમી યુરોપિયન ગ્રીષ્મ સમય", "ACWDT": "ઓસ્ટ્રેલિયન મધ્ય પશ્ચિમી દિવસ સમય", "PST": "ઉત્તર અમેરિકન પેસિફિક પ્રમાણભૂત સમય", "IST": "ભારતીય માનક સમય", "CAT": "મધ્ય આફ્રિકા સમય", "COST": "કોલંબિયા ગ્રીષ્મ સમય", "ADT": "અટલાન્ટિક દિવસ સમય", "GYT": "ગયાના સમય", "HNPM": "સેંટ પીએરે એન્ડ મિકીલોન માનક સમય", "TMST": "તુર્કમેનિસ્તાન ગ્રીષ્મ સમય", "AKDT": "અલાસ્કા દિવસ સમય", "HAST": "હવાઇ-એલ્યુશિઅન માનક સમય", "WEZ": "પશ્ચિમી યુરોપિયન માનક સમય", "HECU": "ક્યૂબા દિવસ સમય", "MYT": "મલેશિયા સમય", "HAT": "ન્યૂફાઉન્ડલેન્ડ દિવસ સમય", "HKST": "હોંગ કોંગ ગ્રીષ્મ સમય", "CHAST": "ચેતહામ માનક સમય", "CHADT": "ચેતહામ દિવસ સમય", "SAST": "દક્ષિણ આફ્રિકા માનક સમય", "ACST": "ઓસ્ટ્રેલિયન મધ્ય પ્રમાણભૂત સમય", "AEDT": "ઓસ્ટ્રેલિયન પૂર્વીય દિવસ સમય", "LHST": "લોર્ડ હોવ પ્રમાણભૂત સમય", "JDT": "જાપાન દિવસ સમય", "WITA": "મધ્ય ઇન્ડોનેશિયા સમય", "NZST": "ન્યુઝીલેન્ડ માનક સમય", "NZDT": "ન્યુઝીલેન્ડ દિવસ સમય", "WAST": "પશ્ચિમ આફ્રિકા ગ્રીષ્મ સમય", "EAT": "પૂર્વ આફ્રિકા સમય", "WARST": "પશ્ચિમી અર્જેન્ટીના ગ્રીષ્મ સમય", "MDT": "મકાઉ ગ્રીષ્મ સમય", "∅∅∅": "એમેઝોન ગ્રીષ્મ સમય", "CLST": "ચિલી ગ્રીષ્મ સમય", "ChST": "કેમોરો માનક સમય", "WAT": "પશ્ચિમ આફ્રિકા માનક સમય", "HEPMX": "મેક્સીકન પેસિફિક દિવસ સમય", "HEOG": "પશ્ચિમ ગ્રીનલેન્ડ ગ્રીષ્મ સમય", "AWDT": "ઓસ્ટ્રેલિયન પશ્ચિમી દિવસ સમય", "MEZ": "મધ્ય યુરોપિયન માનક સમય", "MESZ": "મધ્ય યુરોપિયન ગ્રીષ્મ સમય", "OESZ": "પૂર્વી યુરોપીયન ગ્રીષ્મ સમય", "HNNOMX": "ઉત્તરપશ્ચિમ મેક્સિકો માનક સમય", "HEEG": "પૂર્વ ગ્રીનલેન્ડ ગ્રીષ્મ સમય", "SGT": "સિંગાપુર માનક સમય", "AKST": "અલાસ્કા પ્રમાણભૂત સમય", "UYST": "ઉરૂગ્વે ગ્રીષ્મ સમય", "UYT": "ઉરૂગ્વે માનક સમય", "ACWST": "ઓસ્ટ્રેલિયન મધ્ય પશ્ચિમી પ્રમાણભૂત સમય", "ART": "અર્જેન્ટીના માનક સમય", "BOT": "બોલિવિયા સમય", "OEZ": "પૂર્વી યુરોપિયન માનક સમય", "HNCU": "ક્યૂબા માનક સમય", "HNPMX": "મેક્સીકન પેસિફિક માનક સમય", "AST": "અટલાન્ટિક પ્રમાણભૂત સમય", "SRT": "સૂરીનામ સમય", "PDT": "ઉત્તર અમેરિકન પેસિફિક દિવસ સમય", "WART": "પશ્ચિમી અર્જેન્ટીના માનક સમય", "COT": "કોલંબિયા માનક સમય", "EDT": "ઉત્તર અમેરિકન પૂર્વી દિવસ સમય", "CST": "ઉત્તર અમેરિકન કેન્દ્રિય પ્રમાણભૂત સમય", "HNOG": "પશ્ચિમ ગ્રીનલેન્ડ માનક સમય", "AEST": "ઓસ્ટ્રેલિયન પૂર્વીય પ્રમાણભૂત સમય", "TMT": "તુર્કમેનિસ્તાન માનક સમય", "ACDT": "ઓસ્ટ્રેલિયન મધ્ય દિવસ સમય", "WIT": "પૂર્વીય ઇન્ડોનેશિયા સમય", "VET": "વેનેઝુએલા સમય", "HNEG": "પૂર્વ ગ્રીનલેન્ડ માનક સમય", "HENOMX": "ઉત્તરપશ્ચિમ મેક્સિકો દિવસ સમય", "GMT": "ગ્રીનવિચ મધ્યમ સમય", "HKT": "હોંગ કોંગ માનક સમય"},
++ locale: "gu_IN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 5, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ChST": "ChST", "HAST": "HAST", "MEZ": "MEZ", "AWST": "AWST", "HAT": "HAT", "HNNOMX": "HNNOMX", "AEDT": "AEDT", "BT": "BT", "HECU": "HECU", "GYT": "GYT", "CAT": "CAT", "NZDT": "NZDT", "AST": "AST", "GFT": "GFT", "WARST": "WARST", "COT": "COT", "TMST": "TMST", "ACST": "ACST", "LHDT": "LHDT", "HEPM": "HEPM", "AEST": "AEST", "PST": "PST", "VET": "VET", "AKDT": "AKDT", "ADT": "ADT", "MYT": "MYT", "HKT": "HKT", "WIB": "WIB", "NZST": "NZST", "HNEG": "HNEG", "JST": "JST", "ACWDT": "ACWDT", "ARST": "ARST", "JDT": "JDT", "HNPMX": "HNPMX", "WEZ": "WEZ", "WAST": "WAST", "OEZ": "OEZ", "EAT": "EAT", "AKST": "AKST", "EDT": "EDT", "CLT": "CLT", "ECT": "ECT", "GMT": "GMT", "ACDT": "ACDT", "CHAST": "CHAST", "IST": "IST", "HEPMX": "HEPMX", "CDT": "CDT", "UYST": "UYST", "PDT": "PDT", "HNCU": "HNCU", "OESZ": "OESZ", "WIT": "WIT", "SAST": "SAST", "MDT": "MDT", "HENOMX": "HENOMX", "WESZ": "WESZ", "HNT": "HNT", "COST": "COST", "HKST": "HKST", "CST": "CST", "HEEG": "HEEG", "LHST": "LHST", "UYT": "UYT", "ACWST": "ACWST", "WAT": "WAT", "HEOG": "HEOG", "WITA": "WITA", "CHADT": "CHADT", "SGT": "SGT", "WART": "WART", "HNOG": "HNOG", "CLST": "CLST", "ART": "ART", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "TMT": "TMT", "MST": "MST", "SRT": "SRT", "EST": "EST", "BOT": "BOT", "HADT": "HADT", "MESZ": "MESZ", "AWDT": "AWDT"},
+ }
+ }
+ 
+@@ -145,7 +126,7 @@ func (gu *gu_IN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (gu *gu_IN) MonthsAbbreviated() []string {
+- return gu.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -155,7 +136,7 @@ func (gu *gu_IN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (gu *gu_IN) MonthsNarrow() []string {
+- return gu.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -165,7 +146,7 @@ func (gu *gu_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (gu *gu_IN) MonthsWide() []string {
+- return gu.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -211,82 +192,13 @@ func (gu *gu_IN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'gu_IN' and handles both Whole and Real numbers based on 'v'
+ func (gu *gu_IN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, gu.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, gu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'gu_IN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (gu *gu_IN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gu.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, gu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, gu.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'gu_IN'
+@@ -294,56 +206,7 @@ func (gu *gu_IN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := gu.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, gu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, gu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, gu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'gu_IN'
+@@ -352,64 +215,7 @@ func (gu *gu_IN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := gu.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, gu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, gu.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, gu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'gu_IN'
+@@ -417,17 +223,6 @@ func (gu *gu_IN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -436,17 +231,6 @@ func (gu *gu_IN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, gu.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -455,17 +239,6 @@ func (gu *gu_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, gu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -474,19 +247,6 @@ func (gu *gu_IN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, gu.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, gu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -495,32 +255,6 @@ func (gu *gu_IN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- if h < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, gu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, gu.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, gu.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -529,39 +263,6 @@ func (gu *gu_IN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- if h < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, gu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, gu.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, gu.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -570,44 +271,6 @@ func (gu *gu_IN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- if h < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, gu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, gu.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, gu.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -616,48 +279,5 @@ func (gu *gu_IN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- if h < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, gu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, gu.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, gu.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := gu.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/guz/guz.go b/guz/guz.go
+index 8a4e34e..d34e282 100644
+--- a/guz/guz.go
++++ b/guz/guz.go
+@@ -63,7 +63,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"YA", "YK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Yeso ataiborwa", "Yeso kaiboirwe"},
+- timezones: map[string]string{"SRT": "SRT", "HAT": "HAT", "HEOG": "HEOG", "MESZ": "MESZ", "CLT": "CLT", "UYT": "UYT", "BT": "BT", "HNOG": "HNOG", "OESZ": "OESZ", "COT": "COT", "COST": "COST", "VET": "VET", "HNT": "HNT", "HEPM": "HEPM", "MEZ": "MEZ", "CLST": "CLST", "BOT": "BOT", "EAT": "EAT", "EST": "EST", "MDT": "MDT", "ACWST": "ACWST", "WITA": "WITA", "HNPM": "HNPM", "NZDT": "NZDT", "IST": "IST", "WARST": "WARST", "PDT": "PDT", "HADT": "HADT", "WESZ": "WESZ", "AWDT": "AWDT", "HKT": "HKT", "SAST": "SAST", "GFT": "GFT", "ACST": "ACST", "GYT": "GYT", "WAST": "WAST", "AKDT": "AKDT", "MYT": "MYT", "HNCU": "HNCU", "HECU": "HECU", "HENOMX": "HENOMX", "WIT": "WIT", "WEZ": "WEZ", "JST": "JST", "TMST": "TMST", "HEEG": "HEEG", "WART": "WART", "HNNOMX": "HNNOMX", "HAST": "HAST", "HEPMX": "HEPMX", "UYST": "UYST", "MST": "MST", "ARST": "ARST", "ACWDT": "ACWDT", "AWST": "AWST", "NZST": "NZST", "TMT": "TMT", "CST": "CST", "WAT": "WAT", "SGT": "SGT", "ACDT": "ACDT", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "AST": "AST", "LHST": "LHST", "CHAST": "CHAST", "EDT": "EDT", "HNPMX": "HNPMX", "AKST": "AKST", "AEST": "AEST", "AEDT": "AEDT", "HKST": "HKST", "CHADT": "CHADT", "OEZ": "OEZ", "PST": "PST", "ART": "ART", "JDT": "JDT", "ChST": "ChST", "HNEG": "HNEG", "WIB": "WIB", "ADT": "ADT", "CAT": "CAT", "GMT": "GMT", "CDT": "CDT", "ECT": "ECT"},
++ timezones: map[string]string{"PDT": "PDT", "WESZ": "WESZ", "WAT": "WAT", "ARST": "ARST", "HEEG": "HEEG", "ADT": "ADT", "LHDT": "LHDT", "UYT": "UYT", "HNCU": "HNCU", "TMST": "TMST", "CDT": "CDT", "GMT": "GMT", "HECU": "HECU", "AKST": "AKST", "PST": "PST", "ACWDT": "ACWDT", "HAT": "HAT", "EST": "EST", "HAST": "HAST", "JDT": "JDT", "EDT": "EDT", "MEZ": "MEZ", "HNPM": "HNPM", "AEDT": "AEDT", "WAST": "WAST", "GFT": "GFT", "HNT": "HNT", "MDT": "MDT", "HADT": "HADT", "MYT": "MYT", "HEPM": "HEPM", "UYST": "UYST", "WARST": "WARST", "TMT": "TMT", "WITA": "WITA", "ChST": "ChST", "ACWST": "ACWST", "HKT": "HKT", "ART": "ART", "BOT": "BOT", "HNEG": "HNEG", "OESZ": "OESZ", "SAST": "SAST", "AWDT": "AWDT", "IST": "IST", "CHAST": "CHAST", "GYT": "GYT", "HEOG": "HEOG", "HKST": "HKST", "NZDT": "NZDT", "CAT": "CAT", "MST": "MST", "AST": "AST", "EAT": "EAT", "BT": "BT", "SGT": "SGT", "AKDT": "AKDT", "HNOG": "HNOG", "CLT": "CLT", "CHADT": "CHADT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AWST": "AWST", "AEST": "AEST", "COST": "COST", "CST": "CST", "SRT": "SRT", "ACDT": "ACDT", "CLST": "CLST", "NZST": "NZST", "ACST": "ACST", "WEZ": "WEZ", "∅∅∅": "∅∅∅", "WIT": "WIT", "COT": "COT", "JST": "JST", "HNPMX": "HNPMX", "WART": "WART", "ECT": "ECT", "LHST": "LHST", "MESZ": "MESZ", "VET": "VET", "HEPMX": "HEPMX", "OEZ": "OEZ", "WIB": "WIB"},
+ }
+ }
+ 
+diff --git a/guz_KE/guz_KE.go b/guz_KE/guz_KE.go
+index a83a504..954d6d9 100644
+--- a/guz_KE/guz_KE.go
++++ b/guz_KE/guz_KE.go
+@@ -10,60 +10,45 @@ import (
+ )
+ 
+ type guz_KE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'guz_KE' locale
+ func New() locales.Translator {
+ return &guz_KE{
+- locale: "guz_KE",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Can", "Feb", "Mac", "Apr", "Mei", "Jun", "Cul", "Agt", "Sep", "Okt", "Nob", "Dis"},
+- monthsNarrow: []string{"", "C", "F", "M", "A", "M", "J", "C", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Chanuari", "Feburari", "Machi", "Apiriri", "Mei", "Juni", "Chulai", "Agosti", "Septemba", "Okitoba", "Nobemba", "Disemba"},
+- daysAbbreviated: []string{"Cpr", "Ctt", "Cmn", "Cmt", "Ars", "Icm", "Est"},
+- daysNarrow: []string{"C", "C", "C", "C", "A", "I", "E"},
+- daysWide: []string{"Chumapiri", "Chumatato", "Chumaine", "Chumatano", "Aramisi", "Ichuma", "Esabato"},
+- periodsAbbreviated: []string{"Ma", "Mo"},
+- periodsWide: []string{"Mambia", "Mog"},
+- erasAbbreviated: []string{"YA", "YK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Yeso ataiborwa", "Yeso kaiboirwe"},
+- timezones: map[string]string{"HEOG": "HEOG", "JDT": "JDT", "ChST": "ChST", "HECU": "HECU", "WIB": "WIB", "COT": "COT", "EDT": "EDT", "SAST": "SAST", "TMST": "TMST", "ACDT": "ACDT", "HNPMX": "HNPMX", "HADT": "HADT", "ARST": "ARST", "CLST": "CLST", "GFT": "GFT", "ACST": "ACST", "WAST": "WAST", "OEZ": "OEZ", "SGT": "SGT", "MST": "MST", "MESZ": "MESZ", "IST": "IST", "HEPMX": "HEPMX", "AST": "AST", "HNOG": "HNOG", "HKST": "HKST", "WART": "WART", "CDT": "CDT", "VET": "VET", "LHDT": "LHDT", "CHAST": "CHAST", "OESZ": "OESZ", "EST": "EST", "AKST": "AKST", "HEPM": "HEPM", "CLT": "CLT", "HEEG": "HEEG", "HNCU": "HNCU", "GYT": "GYT", "MYT": "MYT", "UYST": "UYST", "AKDT": "AKDT", "CST": "CST", "WIT": "WIT", "AWDT": "AWDT", "HNNOMX": "HNNOMX", "ADT": "ADT", "PDT": "PDT", "WEZ": "WEZ", "ACWDT": "ACWDT", "HAT": "HAT", "LHST": "LHST", "BOT": "BOT", "COST": "COST", "GMT": "GMT", "MDT": "MDT", "BT": "BT", "HNEG": "HNEG", "WAT": "WAT", "HNT": "HNT", "AEST": "AEST", "JST": "JST", "TMT": "TMT", "ECT": "ECT", "CAT": "CAT", "EAT": "EAT", "ART": "ART", "WESZ": "WESZ", "ACWST": "ACWST", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "HENOMX": "HENOMX", "HAST": "HAST", "AEDT": "AEDT", "UYT": "UYT", "SRT": "SRT", "PST": "PST", "MEZ": "MEZ", "NZST": "NZST", "CHADT": "CHADT", "AWST": "AWST", "HKT": "HKT", "WITA": "WITA", "NZDT": "NZDT", "WARST": "WARST"},
++ locale: "guz_KE",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ART": "ART", "AWST": "AWST", "HEPM": "HEPM", "OESZ": "OESZ", "SRT": "SRT", "ACDT": "ACDT", "SGT": "SGT", "HECU": "HECU", "GYT": "GYT", "TMT": "TMT", "ADT": "ADT", "ChST": "ChST", "IST": "IST", "PST": "PST", "GFT": "GFT", "CLT": "CLT", "HNEG": "HNEG", "JST": "JST", "AEST": "AEST", "CHAST": "CHAST", "AKST": "AKST", "SAST": "SAST", "HAST": "HAST", "HKST": "HKST", "CST": "CST", "EAT": "EAT", "BT": "BT", "EDT": "EDT", "ARST": "ARST", "HEEG": "HEEG", "∅∅∅": "∅∅∅", "WAST": "WAST", "AKDT": "AKDT", "WARST": "WARST", "HEOG": "HEOG", "NZDT": "NZDT", "WIB": "WIB", "BOT": "BOT", "ACST": "ACST", "AWDT": "AWDT", "EST": "EST", "GMT": "GMT", "COST": "COST", "MDT": "MDT", "WESZ": "WESZ", "CLST": "CLST", "CDT": "CDT", "LHST": "LHST", "LHDT": "LHDT", "JDT": "JDT", "CHADT": "CHADT", "HNCU": "HNCU", "HNT": "HNT", "HNOG": "HNOG", "ECT": "ECT", "AST": "AST", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "MYT": "MYT", "UYT": "UYT", "WEZ": "WEZ", "MST": "MST", "VET": "VET", "WAT": "WAT", "WART": "WART", "CAT": "CAT", "MEZ": "MEZ", "HNPM": "HNPM", "PDT": "PDT", "AEDT": "AEDT", "HNPMX": "HNPMX", "COT": "COT", "HKT": "HKT", "NZST": "NZST", "HENOMX": "HENOMX", "ACWST": "ACWST", "HEPMX": "HEPMX", "OEZ": "OEZ", "HAT": "HAT", "WIT": "WIT", "HADT": "HADT", "ACWDT": "ACWDT", "UYST": "UYST", "TMST": "TMST", "WITA": "WITA"},
+ }
+ }
+ 
+@@ -109,7 +94,7 @@ func (guz *guz_KE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (guz *guz_KE) MonthsAbbreviated() []string {
+- return guz.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -119,7 +104,7 @@ func (guz *guz_KE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (guz *guz_KE) MonthsNarrow() []string {
+- return guz.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -129,7 +114,7 @@ func (guz *guz_KE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (guz *guz_KE) MonthsWide() []string {
+- return guz.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -189,56 +174,7 @@ func (guz *guz_KE) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := guz.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, guz.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, guz.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, guz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, guz.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'guz_KE'
+@@ -247,68 +183,7 @@ func (guz *guz_KE) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := guz.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, guz.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, guz.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, guz.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, guz.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, guz.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'guz_KE'
+@@ -316,27 +191,6 @@ func (guz *guz_KE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -345,17 +199,6 @@ func (guz *guz_KE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, guz.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -364,17 +207,6 @@ func (guz *guz_KE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, guz.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -383,19 +215,6 @@ func (guz *guz_KE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, guz.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, guz.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -404,19 +223,6 @@ func (guz *guz_KE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, guz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -425,26 +231,6 @@ func (guz *guz_KE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, guz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, guz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -453,30 +239,6 @@ func (guz *guz_KE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, guz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, guz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -485,34 +247,5 @@ func (guz *guz_KE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, guz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, guz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := guz.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/gv/gv.go b/gv/gv.go
+index 79826f0..3fe39fa 100644
+--- a/gv/gv.go
++++ b/gv/gv.go
+@@ -57,7 +57,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"RC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"GFT": "GFT", "HNNOMX": "HNNOMX", "WART": "WART", "AKDT": "AKDT", "PST": "PST", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "CLT": "CLT", "OESZ": "OESZ", "ECT": "ECT", "HENOMX": "HENOMX", "HECU": "HECU", "AKST": "AKST", "ADT": "ADT", "MESZ": "MESZ", "BOT": "BOT", "HNT": "HNT", "PDT": "PDT", "WIB": "WIB", "HADT": "HADT", "EST": "EST", "ACWST": "ACWST", "WIT": "WIT", "ARST": "ARST", "WITA": "WITA", "JDT": "JDT", "WARST": "WARST", "SRT": "SRT", "MDT": "MDT", "UYT": "UYT", "WESZ": "WESZ", "HEEG": "HEEG", "OEZ": "OEZ", "HNEG": "HNEG", "SGT": "SGT", "BT": "BT", "CHADT": "CHADT", "CLST": "CLST", "MST": "MST", "AST": "AST", "CHAST": "CHAST", "COST": "COST", "ACST": "ACST", "COT": "COT", "CDT": "CDT", "UYST": "UYST", "VET": "VET", "HNPM": "HNPM", "NZST": "NZST", "HNCU": "HNCU", "HEOG": "HEOG", "AEDT": "AEDT", "ACDT": "ACDT", "WAT": "WAT", "WAST": "WAST", "CAT": "CAT", "CST": "CST", "ACWDT": "ACWDT", "HAT": "HAT", "HEPM": "HEPM", "LHST": "LHST", "JST": "JST", "EAT": "EAT", "GYT": "GYT", "HKST": "HKST", "AWST": "AWST", "NZDT": "NZDT", "IST": "IST", "GMT": "GMT", "HNPMX": "HNPMX", "HAST": "HAST", "HKT": "HKT", "AEST": "AEST", "SAST": "SAST", "ChST": "ChST", "MYT": "MYT", "ART": "ART", "WEZ": "WEZ", "MEZ": "MEZ", "TMST": "TMST", "HNOG": "HNOG", "TMT": "TMT", "EDT": "EDT", "LHDT": "LHDT", "HEPMX": "HEPMX"},
++ timezones: map[string]string{"MESZ": "MESZ", "VET": "VET", "COT": "COT", "HEOG": "HEOG", "MDT": "MDT", "JDT": "JDT", "MST": "MST", "ECT": "ECT", "ART": "ART", "SRT": "SRT", "HADT": "HADT", "LHDT": "LHDT", "AEDT": "AEDT", "HNCU": "HNCU", "CST": "CST", "CLT": "CLT", "CLST": "CLST", "EDT": "EDT", "HEPM": "HEPM", "UYST": "UYST", "ACWST": "ACWST", "TMST": "TMST", "CAT": "CAT", "NZDT": "NZDT", "ARST": "ARST", "CHADT": "CHADT", "IST": "IST", "PDT": "PDT", "HECU": "HECU", "HKT": "HKT", "ChST": "ChST", "SGT": "SGT", "∅∅∅": "∅∅∅", "COST": "COST", "HKST": "HKST", "HNPM": "HNPM", "HENOMX": "HENOMX", "AWST": "AWST", "HNPMX": "HNPMX", "BOT": "BOT", "HAST": "HAST", "UYT": "UYT", "WEZ": "WEZ", "WAST": "WAST", "AKDT": "AKDT", "OEZ": "OEZ", "EST": "EST", "AST": "AST", "AEST": "AEST", "PST": "PST", "WART": "WART", "WARST": "WARST", "NZST": "NZST", "HEEG": "HEEG", "ADT": "ADT", "EAT": "EAT", "AWDT": "AWDT", "LHST": "LHST", "HEPMX": "HEPMX", "AKST": "AKST", "GFT": "GFT", "WITA": "WITA", "HNOG": "HNOG", "SAST": "SAST", "HAT": "HAT", "HNNOMX": "HNNOMX", "GYT": "GYT", "ACWDT": "ACWDT", "CDT": "CDT", "MEZ": "MEZ", "HNEG": "HNEG", "MYT": "MYT", "CHAST": "CHAST", "BT": "BT", "WESZ": "WESZ", "WIB": "WIB", "WAT": "WAT", "ACST": "ACST", "ACDT": "ACDT", "JST": "JST", "OESZ": "OESZ", "HNT": "HNT", "WIT": "WIT", "TMT": "TMT", "GMT": "GMT"},
+ }
+ }
+ 
+diff --git a/gv_IM/gv_IM.go b/gv_IM/gv_IM.go
+index 92c6689..7c0bdff 100644
+--- a/gv_IM/gv_IM.go
++++ b/gv_IM/gv_IM.go
+@@ -42,22 +42,13 @@ type gv_IM struct {
+ // New returns a new instance of translator for the 'gv_IM' locale
+ func New() locales.Translator {
+ return &gv_IM{
+- locale: "gv_IM",
+- pluralsCardinal: []locales.PluralRule{2, 3, 4, 5, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "J-guer", "T-arree", "Mayrnt", "Avrril", "Boaldyn", "M-souree", "J-souree", "Luanistyn", "M-fouyir", "J-fouyir", "M-Houney", "M-Nollick"},
+- monthsWide: []string{"", "Jerrey-geuree", "Toshiaght-arree", "Mayrnt", "Averil", "Boaldyn", "Mean-souree", "Jerrey-souree", "Luanistyn", "Mean-fouyir", "Jerrey-fouyir", "Mee Houney", "Mee ny Nollick"},
+- daysAbbreviated: []string{"Jed", "Jel", "Jem", "Jerc", "Jerd", "Jeh", "Jes"},
+- daysWide: []string{"Jedoonee", "Jelhein", "Jemayrt", "Jercean", "Jerdein", "Jeheiney", "Jesarn"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"RC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"CHADT": "CHADT", "JDT": "JDT", "ACST": "ACST", "WAST": "WAST", "AWST": "AWST", "AEDT": "AEDT", "HEPM": "HEPM", "NZST": "NZST", "CAT": "CAT", "AKST": "AKST", "ADT": "ADT", "ACWDT": "ACWDT", "HEOG": "HEOG", "NZDT": "NZDT", "JST": "JST", "AKDT": "AKDT", "GYT": "GYT", "UYST": "UYST", "HKT": "HKT", "MESZ": "MESZ", "TMST": "TMST", "GMT": "GMT", "MDT": "MDT", "EDT": "EDT", "EST": "EST", "LHST": "LHST", "WARST": "WARST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "BOT": "BOT", "HNNOMX": "HNNOMX", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "EAT": "EAT", "CHAST": "CHAST", "CLT": "CLT", "CLST": "CLST", "ACDT": "ACDT", "SRT": "SRT", "BT": "BT", "ARST": "ARST", "AWDT": "AWDT", "ECT": "ECT", "COST": "COST", "MST": "MST", "HNCU": "HNCU", "WEZ": "WEZ", "ACWST": "ACWST", "AEST": "AEST", "WART": "WART", "OESZ": "OESZ", "CST": "CST", "AST": "AST", "WIT": "WIT", "HNOG": "HNOG", "HNPM": "HNPM", "MEZ": "MEZ", "TMT": "TMT", "UYT": "UYT", "IST": "IST", "HENOMX": "HENOMX", "HECU": "HECU", "CDT": "CDT", "PDT": "PDT", "ChST": "ChST", "OEZ": "OEZ", "WAT": "WAT", "COT": "COT", "SGT": "SGT", "WIB": "WIB", "PST": "PST", "WITA": "WITA", "LHDT": "LHDT", "SAST": "SAST", "ART": "ART", "GFT": "GFT", "VET": "VET", "HADT": "HADT", "HNEG": "HNEG", "MYT": "MYT", "HAST": "HAST", "WESZ": "WESZ", "HNT": "HNT", "HAT": "HAT", "HKST": "HKST"},
++ locale: "gv_IM",
++ pluralsCardinal: []locales.PluralRule{2, 3, 4, 5, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNEG": "HNEG", "AST": "AST", "MDT": "MDT", "HEPM": "HEPM", "ACWDT": "ACWDT", "CHADT": "CHADT", "IST": "IST", "WART": "WART", "COST": "COST", "ECT": "ECT", "CDT": "CDT", "SRT": "SRT", "HADT": "HADT", "HENOMX": "HENOMX", "WESZ": "WESZ", "HAT": "HAT", "TMT": "TMT", "WIB": "WIB", "ACDT": "ACDT", "UYT": "UYT", "BT": "BT", "GFT": "GFT", "HNT": "HNT", "MST": "MST", "EAT": "EAT", "JST": "JST", "ADT": "ADT", "CLT": "CLT", "JDT": "JDT", "MYT": "MYT", "HKST": "HKST", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "HNOG": "HNOG", "WITA": "WITA", "HNPMX": "HNPMX", "AKDT": "AKDT", "HAST": "HAST", "AEST": "AEST", "PST": "PST", "HKT": "HKT", "ACWST": "ACWST", "MEZ": "MEZ", "HNPM": "HNPM", "CHAST": "CHAST", "PDT": "PDT", "AKST": "AKST", "GYT": "GYT", "EST": "EST", "ARST": "ARST", "MESZ": "MESZ", "AWST": "AWST", "AWDT": "AWDT", "WAT": "WAT", "WARST": "WARST", "CAT": "CAT", "OESZ": "OESZ", "WIT": "WIT", "HEOG": "HEOG", "BOT": "BOT", "HNCU": "HNCU", "SGT": "SGT", "VET": "VET", "WAST": "WAST", "COT": "COT", "LHST": "LHST", "NZDT": "NZDT", "ART": "ART", "HECU": "HECU", "HEPMX": "HEPMX", "NZST": "NZST", "HEEG": "HEEG", "LHDT": "LHDT", "UYST": "UYST", "SAST": "SAST", "EDT": "EDT", "TMST": "TMST", "ACST": "ACST", "CST": "CST", "GMT": "GMT", "ChST": "ChST", "HNNOMX": "HNNOMX", "AEDT": "AEDT", "WEZ": "WEZ", "CLST": "CLST"},
+ }
+ }
+ 
+@@ -119,7 +110,7 @@ func (gv *gv_IM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (gv *gv_IM) MonthsAbbreviated() []string {
+- return gv.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -139,7 +130,7 @@ func (gv *gv_IM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (gv *gv_IM) MonthsWide() []string {
+- return gv.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -199,56 +190,7 @@ func (gv *gv_IM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := gv.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gv.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, gv.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, gv.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, gv.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'gv_IM'
+@@ -257,64 +199,7 @@ func (gv *gv_IM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := gv.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, gv.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, gv.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, gv.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, gv.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'gv_IM'
+@@ -322,27 +207,6 @@ func (gv *gv_IM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -351,22 +215,6 @@ func (gv *gv_IM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, gv.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -375,21 +223,6 @@ func (gv *gv_IM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, gv.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -398,24 +231,6 @@ func (gv *gv_IM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, gv.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, gv.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,19 +239,6 @@ func (gv *gv_IM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -445,26 +247,6 @@ func (gv *gv_IM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gv.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -473,30 +255,6 @@ func (gv *gv_IM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gv.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -505,34 +263,5 @@ func (gv *gv_IM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, gv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, gv.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := gv.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ha/ha.go b/ha/ha.go
+index 35922af..596a87c 100644
+--- a/ha/ha.go
++++ b/ha/ha.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"KHAI", "BHAI"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kafin haihuwar annab", "Bayan haihuwar annab"},
+- timezones: map[string]string{"HNPM": "HNPM", "HNNOMX": "HNNOMX", "SGT": "SGT", "HNPMX": "HNPMX", "HAST": "HAST", "HNOG": "HNOG", "AEDT": "AEDT", "CHAST": "CHAST", "ACDT": "ACDT", "CAT": "CAT", "HECU": "HECU", "EST": "EST", "EDT": "EDT", "MDT": "MDT", "AST": "AST", "CDT": "CDT", "ACWST": "ACWST", "SRT": "SRT", "∅∅∅": "∅∅∅", "BOT": "BOT", "HEOG": "HEOG", "PDT": "PDT", "ACWDT": "ACWDT", "HKST": "HKST", "SAST": "SAST", "GFT": "GFT", "COT": "COT", "MYT": "MYT", "ARST": "ARST", "NZST": "NZST", "TMT": "TMT", "HNEG": "HNEG", "HEPMX": "HEPMX", "HADT": "HADT", "VET": "VET", "BT": "BT", "LHDT": "LHDT", "CLT": "CLT", "ChST": "ChST", "MESZ": "MESZ", "CHADT": "CHADT", "OEZ": "OEZ", "COST": "COST", "WIB": "WIB", "WITA": "WITA", "IST": "IST", "AKST": "AKST", "AEST": "AEST", "AWDT": "AWDT", "HEPM": "HEPM", "MEZ": "MEZ", "OESZ": "OESZ", "AKDT": "AKDT", "WESZ": "WESZ", "JDT": "JDT", "CLST": "CLST", "ECT": "ECT", "UYT": "UYT", "UYST": "UYST", "CST": "CST", "ART": "ART", "WEZ": "WEZ", "ACST": "ACST", "AWST": "AWST", "LHST": "LHST", "EAT": "EAT", "HENOMX": "HENOMX", "GYT": "GYT", "HAT": "HAT", "HKT": "HKT", "NZDT": "NZDT", "JST": "JST", "TMST": "TMST", "WAT": "WAT", "WART": "WART", "HNCU": "HNCU", "PST": "PST", "HEEG": "HEEG", "GMT": "GMT", "HNT": "HNT", "WAST": "WAST", "WARST": "WARST", "MST": "MST", "ADT": "ADT", "WIT": "WIT"},
++ timezones: map[string]string{"ACST": "ACST", "AWDT": "AWDT", "UYST": "UYST", "ACWST": "ACWST", "WAST": "WAST", "GMT": "GMT", "BOT": "BOT", "HAST": "HAST", "CAT": "CAT", "MEZ": "MEZ", "∅∅∅": "∅∅∅", "WIB": "WIB", "EST": "EST", "ARST": "ARST", "AEDT": "AEDT", "COST": "COST", "HNPMX": "HNPMX", "OESZ": "OESZ", "HNT": "HNT", "HEEG": "HEEG", "JDT": "JDT", "WEZ": "WEZ", "ACWDT": "ACWDT", "AKST": "AKST", "HAT": "HAT", "HNNOMX": "HNNOMX", "VET": "VET", "GFT": "GFT", "WART": "WART", "WARST": "WARST", "ChST": "ChST", "SRT": "SRT", "MESZ": "MESZ", "CST": "CST", "HNOG": "HNOG", "HKT": "HKT", "HKST": "HKST", "CHADT": "CHADT", "AKDT": "AKDT", "GYT": "GYT", "CDT": "CDT", "NZDT": "NZDT", "MYT": "MYT", "PDT": "PDT", "WIT": "WIT", "UYT": "UYT", "BT": "BT", "SGT": "SGT", "SAST": "SAST", "COT": "COT", "ADT": "ADT", "HENOMX": "HENOMX", "LHST": "LHST", "TMT": "TMT", "OEZ": "OEZ", "NZST": "NZST", "HNPM": "HNPM", "WESZ": "WESZ", "WAT": "WAT", "HADT": "HADT", "WITA": "WITA", "ART": "ART", "JST": "JST", "LHDT": "LHDT", "HECU": "HECU", "EDT": "EDT", "TMST": "TMST", "CLT": "CLT", "CLST": "CLST", "HNEG": "HNEG", "IST": "IST", "HNCU": "HNCU", "AWST": "AWST", "AEST": "AEST", "HEPMX": "HEPMX", "HEOG": "HEOG", "AST": "AST", "MST": "MST", "MDT": "MDT", "PST": "PST", "CHAST": "CHAST", "ECT": "ECT", "EAT": "EAT", "ACDT": "ACDT", "HEPM": "HEPM"},
+ }
+ }
+ 
+diff --git a/ha_GH/ha_GH.go b/ha_GH/ha_GH.go
+index 3aec70a..8e6e558 100644
+--- a/ha_GH/ha_GH.go
++++ b/ha_GH/ha_GH.go
+@@ -10,64 +10,45 @@ import (
+ )
+ 
+ type ha_GH struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ha_GH' locale
+ func New() locales.Translator {
+ return &ha_GH{
+- locale: "ha_GH",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GH₵", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "Jan", "Fab", "Mar", "Afi", "May", "Yun", "Yul", "Agu", "Sat", "Okt", "Nuw", "Dis"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "Y", "Y", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Janairu", "Faburairu", "Maris", "Afirilu", "Mayu", "Yuni", "Yuli", "Agusta", "Satumba", "Oktoba", "Nuwamba", "Disamba"},
+- daysAbbreviated: []string{"Lah", "Lit", "Tal", "Lar", "Alh", "Jum", "Asa"},
+- daysNarrow: []string{"L", "L", "T", "L", "A", "J", "A"},
+- daysShort: []string{"Lh", "Li", "Ta", "Lr", "Al", "Ju", "As"},
+- daysWide: []string{"Lahadi", "Litinin", "Talata", "Laraba", "Alhamis", "Jummaʼa", "Asabar"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"KHAI", "BHAI"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kafin haihuwar annab", "Bayan haihuwar annab"},
+- timezones: map[string]string{"PST": "PST", "NZDT": "NZDT", "CST": "CST", "UYT": "UYT", "AKST": "AKST", "CLT": "CLT", "CLST": "CLST", "WART": "WART", "WARST": "WARST", "HECU": "HECU", "HAST": "HAST", "HEOG": "HEOG", "LHDT": "LHDT", "NZST": "NZST", "CAT": "CAT", "∅∅∅": "∅∅∅", "AST": "AST", "HENOMX": "HENOMX", "GMT": "GMT", "MYT": "MYT", "ACST": "ACST", "WAT": "WAT", "COT": "COT", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "SAST": "SAST", "ADT": "ADT", "EST": "EST", "MST": "MST", "AKDT": "AKDT", "HNOG": "HNOG", "MEZ": "MEZ", "ChST": "ChST", "ACDT": "ACDT", "WIB": "WIB", "HADT": "HADT", "WIT": "WIT", "AWST": "AWST", "EDT": "EDT", "HNPMX": "HNPMX", "CDT": "CDT", "TMST": "TMST", "OEZ": "OEZ", "OESZ": "OESZ", "BT": "BT", "ACWST": "ACWST", "ARST": "ARST", "GFT": "GFT", "HEPMX": "HEPMX", "VET": "VET", "HNT": "HNT", "HKST": "HKST", "JST": "JST", "TMT": "TMT", "IST": "IST", "BOT": "BOT", "EAT": "EAT", "WESZ": "WESZ", "AWDT": "AWDT", "HKT": "HKT", "LHST": "LHST", "COST": "COST", "SGT": "SGT", "MDT": "MDT", "PDT": "PDT", "HNPM": "HNPM", "CHADT": "CHADT", "JDT": "JDT", "WEZ": "WEZ", "ART": "ART", "HNEG": "HNEG", "WAST": "WAST", "ECT": "ECT", "UYST": "UYST", "SRT": "SRT", "HAT": "HAT", "AEST": "AEST", "HEPM": "HEPM", "GYT": "GYT", "AEDT": "AEDT", "WITA": "WITA", "MESZ": "MESZ", "HEEG": "HEEG", "CHAST": "CHAST", "HNCU": "HNCU"},
++ locale: "ha_GH",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GH₵", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"NZDT": "NZDT", "HNNOMX": "HNNOMX", "CHAST": "CHAST", "HECU": "HECU", "SGT": "SGT", "AKDT": "AKDT", "HAT": "HAT", "HENOMX": "HENOMX", "HEPM": "HEPM", "JDT": "JDT", "AEST": "AEST", "CHADT": "CHADT", "GYT": "GYT", "HKT": "HKT", "TMT": "TMT", "WITA": "WITA", "GMT": "GMT", "ACDT": "ACDT", "PST": "PST", "PDT": "PDT", "WAST": "WAST", "COST": "COST", "HEOG": "HEOG", "CST": "CST", "WAT": "WAT", "ARST": "ARST", "SRT": "SRT", "WEZ": "WEZ", "TMST": "TMST", "CAT": "CAT", "UYT": "UYT", "IST": "IST", "WART": "WART", "ADT": "ADT", "MESZ": "MESZ", "LHST": "LHST", "MEZ": "MEZ", "LHDT": "LHDT", "MYT": "MYT", "WARST": "WARST", "MST": "MST", "AST": "AST", "EAT": "EAT", "WIB": "WIB", "BOT": "BOT", "AWDT": "AWDT", "AEDT": "AEDT", "OEZ": "OEZ", "COT": "COT", "HKST": "HKST", "CLT": "CLT", "VET": "VET", "HEPMX": "HEPMX", "WIT": "WIT", "ChST": "ChST", "HAST": "HAST", "UYST": "UYST", "ACWST": "ACWST", "HNCU": "HNCU", "WESZ": "WESZ", "AKST": "AKST", "OESZ": "OESZ", "HADT": "HADT", "ACST": "ACST", "HNOG": "HNOG", "MDT": "MDT", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "JST": "JST", "AWST": "AWST", "BT": "BT", "ECT": "ECT", "CDT": "CDT", "GFT": "GFT", "HNT": "HNT", "EST": "EST", "EDT": "EDT", "NZST": "NZST", "HNEG": "HNEG", "HEEG": "HEEG", "HNPMX": "HNPMX", "SAST": "SAST", "CLST": "CLST", "ART": "ART", "HNPM": "HNPM"},
+ }
+ }
+ 
+@@ -120,7 +101,7 @@ func (ha *ha_GH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ha *ha_GH) MonthsAbbreviated() []string {
+- return ha.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -130,7 +111,7 @@ func (ha *ha_GH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ha *ha_GH) MonthsNarrow() []string {
+- return ha.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -140,7 +121,7 @@ func (ha *ha_GH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ha *ha_GH) MonthsWide() []string {
+- return ha.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -186,73 +167,13 @@ func (ha *ha_GH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ha_GH' and handles both Whole and Real numbers based on 'v'
+ func (ha *ha_GH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ha.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ha.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ha.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ha_GH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ha *ha_GH) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ha.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ha.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ha.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ha_GH'
+@@ -260,60 +181,7 @@ func (ha *ha_GH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ha.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ha.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ha.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ha.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, ha.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ha.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ha.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ha_GH'
+@@ -322,72 +190,7 @@ func (ha *ha_GH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ha.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ha.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ha.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ha.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, ha.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, ha.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ha.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, ha.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ha.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ha_GH'
+@@ -395,17 +198,6 @@ func (ha *ha_GH) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -414,17 +206,6 @@ func (ha *ha_GH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ha.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,17 +214,6 @@ func (ha *ha_GH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ha.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -452,19 +222,6 @@ func (ha *ha_GH) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ha.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ha.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -473,19 +230,6 @@ func (ha *ha_GH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -494,26 +238,6 @@ func (ha *ha_GH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -522,30 +246,6 @@ func (ha *ha_GH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -554,34 +254,5 @@ func (ha *ha_GH) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ha.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ha_NE/ha_NE.go b/ha_NE/ha_NE.go
+index 12734aa..703a616 100644
+--- a/ha_NE/ha_NE.go
++++ b/ha_NE/ha_NE.go
+@@ -10,64 +10,45 @@ import (
+ )
+ 
+ type ha_NE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ha_NE' locale
+ func New() locales.Translator {
+ return &ha_NE{
+- locale: "ha_NE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "Jan", "Fab", "Mar", "Afi", "May", "Yun", "Yul", "Agu", "Sat", "Okt", "Nuw", "Dis"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "Y", "Y", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Janairu", "Faburairu", "Maris", "Afirilu", "Mayu", "Yuni", "Yuli", "Agusta", "Satumba", "Oktoba", "Nuwamba", "Disamba"},
+- daysAbbreviated: []string{"Lah", "Lit", "Tal", "Lar", "Alh", "Jum", "Asa"},
+- daysNarrow: []string{"L", "L", "T", "L", "A", "J", "A"},
+- daysShort: []string{"Lh", "Li", "Ta", "Lr", "Al", "Ju", "As"},
+- daysWide: []string{"Lahadi", "Litinin", "Talata", "Laraba", "Alhamis", "Jummaʼa", "Asabar"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"KHAI", "BHAI"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kafin haihuwar annab", "Bayan haihuwar annab"},
+- timezones: map[string]string{"CHAST": "CHAST", "MEZ": "MEZ", "CLST": "CLST", "TMT": "TMT", "ECT": "ECT", "COST": "COST", "EST": "EST", "AWST": "AWST", "LHDT": "LHDT", "GFT": "GFT", "UYST": "UYST", "AWDT": "AWDT", "HEEG": "HEEG", "WART": "WART", "EDT": "EDT", "NZST": "NZST", "ACST": "ACST", "CAT": "CAT", "HENOMX": "HENOMX", "VET": "VET", "HAT": "HAT", "HNOG": "HNOG", "MESZ": "MESZ", "ACDT": "ACDT", "OEZ": "OEZ", "HNT": "HNT", "HNPM": "HNPM", "ADT": "ADT", "HNEG": "HNEG", "WAT": "WAT", "WAST": "WAST", "GYT": "GYT", "HADT": "HADT", "ART": "ART", "WEZ": "WEZ", "AEST": "AEST", "EAT": "EAT", "MST": "MST", "MDT": "MDT", "CST": "CST", "AKST": "AKST", "AKDT": "AKDT", "ARST": "ARST", "HNNOMX": "HNNOMX", "SGT": "SGT", "BT": "BT", "SRT": "SRT", "JST": "JST", "WARST": "WARST", "AST": "AST", "HAST": "HAST", "HEOG": "HEOG", "NZDT": "NZDT", "COT": "COT", "WIB": "WIB", "HKST": "HKST", "SAST": "SAST", "CLT": "CLT", "UYT": "UYT", "∅∅∅": "∅∅∅", "WIT": "WIT", "PDT": "PDT", "IST": "IST", "ChST": "ChST", "GMT": "GMT", "HNPMX": "HNPMX", "MYT": "MYT", "ACWDT": "ACWDT", "AEDT": "AEDT", "CHADT": "CHADT", "LHST": "LHST", "JDT": "JDT", "CDT": "CDT", "PST": "PST", "WESZ": "WESZ", "WITA": "WITA", "HKT": "HKT", "HEPM": "HEPM", "TMST": "TMST", "BOT": "BOT", "OESZ": "OESZ", "HNCU": "HNCU", "HECU": "HECU", "HEPMX": "HEPMX", "ACWST": "ACWST"},
++ locale: "ha_NE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MEZ": "MEZ", "HAT": "HAT", "GMT": "GMT", "SRT": "SRT", "PST": "PST", "HKST": "HKST", "WITA": "WITA", "HADT": "HADT", "VET": "VET", "ChST": "ChST", "HNPM": "HNPM", "IST": "IST", "WART": "WART", "CHADT": "CHADT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "JDT": "JDT", "LHST": "LHST", "AEST": "AEST", "HNPMX": "HNPMX", "WAT": "WAT", "MDT": "MDT", "NZDT": "NZDT", "HNT": "HNT", "HEPM": "HEPM", "WAST": "WAST", "COST": "COST", "ECT": "ECT", "AST": "AST", "MST": "MST", "HENOMX": "HENOMX", "TMT": "TMT", "HAST": "HAST", "LHDT": "LHDT", "CHAST": "CHAST", "TMST": "TMST", "CST": "CST", "JST": "JST", "AWST": "AWST", "HECU": "HECU", "HNOG": "HNOG", "EDT": "EDT", "HKT": "HKT", "WIB": "WIB", "ADT": "ADT", "ACDT": "ACDT", "UYT": "UYT", "AKDT": "AKDT", "WARST": "WARST", "WIT": "WIT", "HEOG": "HEOG", "CAT": "CAT", "HEEG": "HEEG", "BT": "BT", "WEZ": "WEZ", "WESZ": "WESZ", "SGT": "SGT", "SAST": "SAST", "CDT": "CDT", "PDT": "PDT", "AWDT": "AWDT", "UYST": "UYST", "ACWDT": "ACWDT", "OEZ": "OEZ", "COT": "COT", "EST": "EST", "ACST": "ACST", "NZST": "NZST", "ARST": "ARST", "∅∅∅": "∅∅∅", "ACWST": "ACWST", "GYT": "GYT", "CLT": "CLT", "ART": "ART", "BOT": "BOT", "AEDT": "AEDT", "HEPMX": "HEPMX", "HNCU": "HNCU", "OESZ": "OESZ", "GFT": "GFT", "MYT": "MYT", "MESZ": "MESZ", "AKST": "AKST", "CLST": "CLST", "EAT": "EAT"},
+ }
+ }
+ 
+@@ -120,7 +101,7 @@ func (ha *ha_NE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ha *ha_NE) MonthsAbbreviated() []string {
+- return ha.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -130,7 +111,7 @@ func (ha *ha_NE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ha *ha_NE) MonthsNarrow() []string {
+- return ha.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -140,7 +121,7 @@ func (ha *ha_NE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ha *ha_NE) MonthsWide() []string {
+- return ha.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -186,73 +167,13 @@ func (ha *ha_NE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ha_NE' and handles both Whole and Real numbers based on 'v'
+ func (ha *ha_NE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ha.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ha.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ha.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ha_NE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ha *ha_NE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ha.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ha.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ha.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ha_NE'
+@@ -260,60 +181,7 @@ func (ha *ha_NE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ha.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ha.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ha.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ha.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, ha.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ha.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ha.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ha_NE'
+@@ -322,72 +190,7 @@ func (ha *ha_NE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ha.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ha.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ha.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ha.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, ha.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, ha.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ha.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, ha.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ha.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ha_NE'
+@@ -395,17 +198,6 @@ func (ha *ha_NE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -414,17 +206,6 @@ func (ha *ha_NE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ha.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,17 +214,6 @@ func (ha *ha_NE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ha.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -452,19 +222,6 @@ func (ha *ha_NE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ha.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ha.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -473,19 +230,6 @@ func (ha *ha_NE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -494,26 +238,6 @@ func (ha *ha_NE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -522,30 +246,6 @@ func (ha *ha_NE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -554,34 +254,5 @@ func (ha *ha_NE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ha.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ha_NG/ha_NG.go b/ha_NG/ha_NG.go
+index ce29474..f90328c 100644
+--- a/ha_NG/ha_NG.go
++++ b/ha_NG/ha_NG.go
+@@ -10,64 +10,45 @@ import (
+ )
+ 
+ type ha_NG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ha_NG' locale
+ func New() locales.Translator {
+ return &ha_NG{
+- locale: "ha_NG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "Jan", "Fab", "Mar", "Afi", "May", "Yun", "Yul", "Agu", "Sat", "Okt", "Nuw", "Dis"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "Y", "Y", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Janairu", "Faburairu", "Maris", "Afirilu", "Mayu", "Yuni", "Yuli", "Agusta", "Satumba", "Oktoba", "Nuwamba", "Disamba"},
+- daysAbbreviated: []string{"Lah", "Lit", "Tal", "Lar", "Alh", "Jum", "Asa"},
+- daysNarrow: []string{"L", "L", "T", "L", "A", "J", "A"},
+- daysShort: []string{"Lh", "Li", "Ta", "Lr", "Al", "Ju", "As"},
+- daysWide: []string{"Lahadi", "Litinin", "Talata", "Laraba", "Alhamis", "Jummaʼa", "Asabar"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"KHAI", "BHAI"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kafin haihuwar annab", "Bayan haihuwar annab"},
+- timezones: map[string]string{"CHAST": "CHAST", "∅∅∅": "∅∅∅", "CAT": "CAT", "GYT": "GYT", "ACWST": "ACWST", "ACST": "ACST", "CHADT": "CHADT", "BT": "BT", "AWDT": "AWDT", "MESZ": "MESZ", "HNCU": "HNCU", "AKST": "AKST", "CDT": "CDT", "WIT": "WIT", "NZST": "NZST", "IST": "IST", "TMT": "TMT", "AST": "AST", "WIB": "WIB", "HEOG": "HEOG", "WESZ": "WESZ", "HKT": "HKT", "MEZ": "MEZ", "JDT": "JDT", "WAST": "WAST", "COST": "COST", "HENOMX": "HENOMX", "SRT": "SRT", "MDT": "MDT", "HNPMX": "HNPMX", "GMT": "GMT", "ARST": "ARST", "WITA": "WITA", "JST": "JST", "ChST": "ChST", "HNEG": "HNEG", "OEZ": "OEZ", "UYT": "UYT", "HNT": "HNT", "HKST": "HKST", "CLST": "CLST", "COT": "COT", "SGT": "SGT", "UYST": "UYST", "AWST": "AWST", "ACDT": "ACDT", "ECT": "ECT", "WART": "WART", "WARST": "WARST", "MYT": "MYT", "HADT": "HADT", "HNPM": "HNPM", "HEPM": "HEPM", "LHDT": "LHDT", "PDT": "PDT", "SAST": "SAST", "CLT": "CLT", "HEEG": "HEEG", "EST": "EST", "HAST": "HAST", "AEST": "AEST", "LHST": "LHST", "CST": "CST", "ACWDT": "ACWDT", "TMST": "TMST", "EDT": "EDT", "MST": "MST", "AEDT": "AEDT", "PST": "PST", "NZDT": "NZDT", "EAT": "EAT", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "VET": "VET", "ART": "ART", "HNOG": "HNOG", "BOT": "BOT", "WAT": "WAT", "ADT": "ADT", "WEZ": "WEZ", "GFT": "GFT", "OESZ": "OESZ", "HECU": "HECU", "HEPMX": "HEPMX", "HAT": "HAT"},
++ locale: "ha_NG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"NZDT": "NZDT", "HENOMX": "HENOMX", "AEST": "AEST", "MESZ": "MESZ", "ACWDT": "ACWDT", "HECU": "HECU", "OEZ": "OEZ", "HKT": "HKT", "CDT": "CDT", "MDT": "MDT", "HAST": "HAST", "HAT": "HAT", "COST": "COST", "ACDT": "ACDT", "AWST": "AWST", "UYT": "UYT", "WAT": "WAT", "TMT": "TMT", "TMST": "TMST", "CLT": "CLT", "HEEG": "HEEG", "JDT": "JDT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "OESZ": "OESZ", "MYT": "MYT", "LHST": "LHST", "VET": "VET", "AKST": "AKST", "PST": "PST", "COT": "COT", "NZST": "NZST", "CST": "CST", "HNEG": "HNEG", "JST": "JST", "WIB": "WIB", "ChST": "ChST", "ADT": "ADT", "IST": "IST", "AWDT": "AWDT", "AEDT": "AEDT", "WAST": "WAST", "SAST": "SAST", "WITA": "WITA", "ARST": "ARST", "BOT": "BOT", "ACST": "ACST", "HNCU": "HNCU", "WART": "WART", "EST": "EST", "HKST": "HKST", "SRT": "SRT", "PDT": "PDT", "HNOG": "HNOG", "AST": "AST", "EAT": "EAT", "ACWST": "ACWST", "SGT": "SGT", "WEZ": "WEZ", "WESZ": "WESZ", "ECT": "ECT", "BT": "BT", "CHAST": "CHAST", "CHADT": "CHADT", "UYST": "UYST", "HEOG": "HEOG", "CLST": "CLST", "HNNOMX": "HNNOMX", "MEZ": "MEZ", "HEPM": "HEPM", "GYT": "GYT", "CAT": "CAT", "MST": "MST", "HADT": "HADT", "GFT": "GFT", "WARST": "WARST", "EDT": "EDT", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "HNT": "HNT", "WIT": "WIT", "ART": "ART", "GMT": "GMT", "HNPM": "HNPM", "LHDT": "LHDT"},
+ }
+ }
+ 
+@@ -120,7 +101,7 @@ func (ha *ha_NG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ha *ha_NG) MonthsAbbreviated() []string {
+- return ha.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -130,7 +111,7 @@ func (ha *ha_NG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ha *ha_NG) MonthsNarrow() []string {
+- return ha.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -140,7 +121,7 @@ func (ha *ha_NG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ha *ha_NG) MonthsWide() []string {
+- return ha.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -186,73 +167,13 @@ func (ha *ha_NG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ha_NG' and handles both Whole and Real numbers based on 'v'
+ func (ha *ha_NG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ha.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ha.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ha.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ha_NG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ha *ha_NG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ha.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ha.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ha.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ha_NG'
+@@ -260,60 +181,7 @@ func (ha *ha_NG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ha.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ha.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ha.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ha.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, ha.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ha.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ha.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ha_NG'
+@@ -322,72 +190,7 @@ func (ha *ha_NG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ha.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ha.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ha.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ha.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, ha.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, ha.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ha.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, ha.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ha.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ha_NG'
+@@ -395,17 +198,6 @@ func (ha *ha_NG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -414,17 +206,6 @@ func (ha *ha_NG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ha.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,17 +214,6 @@ func (ha *ha_NG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ha.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -452,19 +222,6 @@ func (ha *ha_NG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ha.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ha.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -473,19 +230,6 @@ func (ha *ha_NG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -494,26 +238,6 @@ func (ha *ha_NG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -522,30 +246,6 @@ func (ha *ha_NG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -554,34 +254,5 @@ func (ha *ha_NG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ha.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ha.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/haw/haw.go b/haw/haw.go
+index ad90353..76333a0 100644
+--- a/haw/haw.go
++++ b/haw/haw.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BCE", "CE"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"BCE", "CE"},
+- timezones: map[string]string{"WESZ": "WESZ", "MEZ": "MEZ", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "EDT": "EDT", "LHDT": "LHDT", "WARST": "WARST", "AST": "AST", "UYST": "UYST", "WIT": "WIT", "PDT": "PDT", "HKST": "HKST", "AEST": "AEST", "MST": "MST", "CST": "CST", "UYT": "UYT", "WAT": "WAT", "HENOMX": "HENOMX", "HNOG": "HNOG", "AKDT": "AKDT", "CDT": "CDT", "GYT": "GYT", "ChST": "ChST", "HAST": "HAST", "WITA": "WITA", "SAST": "SAST", "SRT": "SRT", "HEEG": "HEEG", "CLT": "CLT", "OEZ": "OEZ", "WART": "WART", "EST": "EST", "ARST": "ARST", "∅∅∅": "∅∅∅", "EAT": "EAT", "COT": "COT", "HECU": "HECU", "HADT": "HADT", "HAT": "HAT", "CLST": "CLST", "WEZ": "WEZ", "JST": "JST", "ACST": "ACST", "CAT": "CAT", "COST": "COST", "WIB": "WIB", "HNT": "HNT", "ART": "ART", "BOT": "BOT", "ECT": "ECT", "HEOG": "HEOG", "HNPM": "HNPM", "GFT": "GFT", "AEDT": "AEDT", "JDT": "JDT", "SGT": "SGT", "HNPMX": "HNPMX", "ACWST": "ACWST", "ACWDT": "ACWDT", "NZDT": "NZDT", "CHADT": "CHADT", "TMST": "TMST", "MDT": "MDT", "BT": "BT", "HEPM": "HEPM", "AWST": "AWST", "MESZ": "MESZ", "LHST": "LHST", "HNEG": "HNEG", "AKST": "AKST", "ADT": "ADT", "MYT": "MYT", "ACDT": "ACDT", "WAST": "WAST", "GMT": "GMT", "HEPMX": "HEPMX", "PST": "PST", "AWDT": "AWDT", "CHAST": "CHAST", "IST": "IST", "TMT": "TMT", "OESZ": "OESZ", "VET": "VET", "HKT": "HKT", "NZST": "NZST"},
++ timezones: map[string]string{"VET": "VET", "CAT": "CAT", "ECT": "ECT", "WIB": "WIB", "MDT": "MDT", "HEPM": "HEPM", "PDT": "PDT", "WAT": "WAT", "HEOG": "HEOG", "EDT": "EDT", "HAST": "HAST", "MESZ": "MESZ", "AWDT": "AWDT", "PST": "PST", "HEPMX": "HEPMX", "CLT": "CLT", "WITA": "WITA", "MST": "MST", "HADT": "HADT", "HNPMX": "HNPMX", "GFT": "GFT", "HAT": "HAT", "ADT": "ADT", "CHAST": "CHAST", "WAST": "WAST", "HNPM": "HNPM", "AKST": "AKST", "HNOG": "HNOG", "TMST": "TMST", "HKT": "HKT", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "HNCU": "HNCU", "HECU": "HECU", "AKDT": "AKDT", "HNT": "HNT", "CDT": "CDT", "BOT": "BOT", "JDT": "JDT", "AEDT": "AEDT", "WEZ": "WEZ", "MEZ": "MEZ", "AEST": "AEST", "∅∅∅": "∅∅∅", "NZST": "NZST", "CST": "CST", "ChST": "ChST", "AST": "AST", "HENOMX": "HENOMX", "COST": "COST", "TMT": "TMT", "HKST": "HKST", "WIT": "WIT", "EST": "EST", "GMT": "GMT", "EAT": "EAT", "BT": "BT", "ACWDT": "ACWDT", "CHADT": "CHADT", "NZDT": "NZDT", "HNEG": "HNEG", "ACDT": "ACDT", "OEZ": "OEZ", "CLST": "CLST", "SGT": "SGT", "GYT": "GYT", "HEEG": "HEEG", "MYT": "MYT", "SAST": "SAST", "ART": "ART", "ARST": "ARST", "SRT": "SRT", "AWST": "AWST", "OESZ": "OESZ", "JST": "JST", "UYT": "UYT", "UYST": "UYST", "WARST": "WARST", "COT": "COT", "WART": "WART", "ACST": "ACST", "LHST": "LHST", "ACWST": "ACWST", "IST": "IST", "WESZ": "WESZ"},
+ }
+ }
+ 
+diff --git a/haw_US/haw_US.go b/haw_US/haw_US.go
+index 90ffa64..7414b39 100644
+--- a/haw_US/haw_US.go
++++ b/haw_US/haw_US.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type haw_US struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'haw_US' locale
+ func New() locales.Translator {
+ return &haw_US{
+- locale: "haw_US",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Ian.", "Pep.", "Mal.", "ʻAp.", "Mei", "Iun.", "Iul.", "ʻAu.", "Kep.", "ʻOk.", "Now.", "Kek."},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "Ianuali", "Pepeluali", "Malaki", "ʻApelila", "Mei", "Iune", "Iulai", "ʻAukake", "Kepakemapa", "ʻOkakopa", "Nowemapa", "Kekemapa"},
+- daysAbbreviated: []string{"LP", "P1", "P2", "P3", "P4", "P5", "P6"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"LP", "P1", "P2", "P3", "P4", "P5", "P6"},
+- daysWide: []string{"Lāpule", "Poʻakahi", "Poʻalua", "Poʻakolu", "Poʻahā", "Poʻalima", "Poʻaono"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"BCE", "CE"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"BCE", "CE"},
+- timezones: map[string]string{"ACWDT": "ACWDT", "AEST": "AEST", "MESZ": "MESZ", "HNCU": "HNCU", "WIB": "WIB", "PST": "PST", "AEDT": "AEDT", "CLT": "CLT", "OEZ": "OEZ", "AWST": "AWST", "CLST": "CLST", "ECT": "ECT", "CAT": "CAT", "HECU": "HECU", "MDT": "MDT", "HNPM": "HNPM", "LHST": "LHST", "CHADT": "CHADT", "SGT": "SGT", "AST": "AST", "CST": "CST", "MYT": "MYT", "AKDT": "AKDT", "ARST": "ARST", "WESZ": "WESZ", "HKST": "HKST", "LHDT": "LHDT", "CHAST": "CHAST", "GYT": "GYT", "AWDT": "AWDT", "WITA": "WITA", "MEZ": "MEZ", "WARST": "WARST", "COST": "COST", "HEPMX": "HEPMX", "HNOG": "HNOG", "HKT": "HKT", "JST": "JST", "ChST": "ChST", "HAST": "HAST", "WIT": "WIT", "COT": "COT", "EST": "EST", "HEOG": "HEOG", "WEZ": "WEZ", "HEPM": "HEPM", "TMST": "TMST", "HNEG": "HNEG", "GFT": "GFT", "HNT": "HNT", "SAST": "SAST", "EAT": "EAT", "HNPMX": "HNPMX", "SRT": "SRT", "ART": "ART", "TMT": "TMT", "EDT": "EDT", "UYT": "UYT", "HADT": "HADT", "HAT": "HAT", "ACST": "ACST", "OESZ": "OESZ", "WART": "WART", "ADT": "ADT", "UYST": "UYST", "WAT": "WAT", "WAST": "WAST", "VET": "VET", "BT": "BT", "NZDT": "NZDT", "JDT": "JDT", "ACDT": "ACDT", "HENOMX": "HENOMX", "GMT": "GMT", "MST": "MST", "PDT": "PDT", "ACWST": "ACWST", "NZST": "NZST", "∅∅∅": "∅∅∅", "BOT": "BOT", "HEEG": "HEEG", "IST": "IST", "HNNOMX": "HNNOMX", "AKST": "AKST", "CDT": "CDT"},
++ locale: "haw_US",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"BOT": "BOT", "BT": "BT", "HEPMX": "HEPMX", "GYT": "GYT", "NZST": "NZST", "NZDT": "NZDT", "GMT": "GMT", "HNNOMX": "HNNOMX", "JDT": "JDT", "ACWST": "ACWST", "AKDT": "AKDT", "CAT": "CAT", "WITA": "WITA", "AWST": "AWST", "∅∅∅": "∅∅∅", "WIT": "WIT", "HNOG": "HNOG", "HEOG": "HEOG", "ECT": "ECT", "CDT": "CDT", "AST": "AST", "SRT": "SRT", "WAT": "WAT", "WAST": "WAST", "AKST": "AKST", "HKT": "HKT", "MST": "MST", "MEZ": "MEZ", "SAST": "SAST", "HKST": "HKST", "CHAST": "CHAST", "PST": "PST", "COST": "COST", "TMST": "TMST", "ADT": "ADT", "MYT": "MYT", "JST": "JST", "HNCU": "HNCU", "WESZ": "WESZ", "CST": "CST", "UYT": "UYT", "HNPMX": "HNPMX", "EST": "EST", "WIB": "WIB", "ART": "ART", "OEZ": "OEZ", "ARST": "ARST", "MDT": "MDT", "HAST": "HAST", "ACST": "ACST", "VET": "VET", "HECU": "HECU", "EDT": "EDT", "CLST": "CLST", "HNEG": "HNEG", "HNPM": "HNPM", "LHDT": "LHDT", "AEST": "AEST", "AEDT": "AEDT", "HADT": "HADT", "HENOMX": "HENOMX", "AWDT": "AWDT", "WEZ": "WEZ", "ChST": "ChST", "MESZ": "MESZ", "SGT": "SGT", "HNT": "HNT", "WARST": "WARST", "TMT": "TMT", "EAT": "EAT", "CHADT": "CHADT", "LHST": "LHST", "WART": "WART", "CLT": "CLT", "HEPM": "HEPM", "PDT": "PDT", "OESZ": "OESZ", "GFT": "GFT", "HAT": "HAT", "HEEG": "HEEG", "ACDT": "ACDT", "ACWDT": "ACWDT", "UYST": "UYST", "IST": "IST", "COT": "COT"},
+ }
+ }
+ 
+@@ -124,7 +101,7 @@ func (haw *haw_US) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (haw *haw_US) MonthsAbbreviated() []string {
+- return haw.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -134,7 +111,7 @@ func (haw *haw_US) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (haw *haw_US) MonthsNarrow() []string {
+- return haw.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -144,7 +121,7 @@ func (haw *haw_US) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (haw *haw_US) MonthsWide() []string {
+- return haw.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,73 +167,13 @@ func (haw *haw_US) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'haw_US' and handles both Whole and Real numbers based on 'v'
+ func (haw *haw_US) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, haw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, haw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, haw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'haw_US' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (haw *haw_US) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, haw.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, haw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, haw.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'haw_US'
+@@ -264,56 +181,7 @@ func (haw *haw_US) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := haw.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, haw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, haw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, haw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, haw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'haw_US'
+@@ -322,68 +190,7 @@ func (haw *haw_US) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := haw.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, haw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, haw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, haw.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, haw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, haw.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'haw_US'
+@@ -391,17 +198,6 @@ func (haw *haw_US) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -410,17 +206,6 @@ func (haw *haw_US) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, haw.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -429,17 +214,6 @@ func (haw *haw_US) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, haw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -448,19 +222,6 @@ func (haw *haw_US) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, haw.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, haw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -469,28 +230,6 @@ func (haw *haw_US) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, haw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, haw.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, haw.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -499,35 +238,6 @@ func (haw *haw_US) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, haw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, haw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, haw.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, haw.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -536,40 +246,6 @@ func (haw *haw_US) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, haw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, haw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, haw.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, haw.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -578,44 +254,5 @@ func (haw *haw_US) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, haw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, haw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, haw.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, haw.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := haw.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/he/he.go b/he/he.go
+index da31c26..8371912 100644
+--- a/he/he.go
++++ b/he/he.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"לפנה״ס", "לספירה"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"JST": "שעון יפן (חורף)", "HNNOMX": "שעון צפון-מערב מקסיקו (חורף)", "MST": "שעון חורף מקאו", "SRT": "שעון סורינאם", "HAT": "שעון ניופאונדלנד (קיץ)", "IST": "שעון הודו", "EST": "שעון החוף המזרחי (חורף)", "ADT": "שעון האוקיינוס האטלנטי (קיץ)", "HNOG": "שעון מערב גרינלנד (חורף)", "MEZ": "שעון מרכז אירופה (חורף)", "HEEG": "שעון מזרח גרינלנד (קיץ)", "WAT": "שעון מערב אפריקה (חורף)", "MDT": "שעון קיץ מקאו", "WESZ": "שעון מערב אירופה (קיץ)", "NZDT": "שעון ניו זילנד (קיץ)", "GFT": "שעון גיאנה הצרפתית", "WART": "שעון מערב ארגנטינה (חורף)", "HNCU": "שעון קובה (חורף)", "HNPMX": "שעון מערב מקסיקו (חורף)", "WEZ": "שעון מערב אירופה (חורף)", "AEDT": "שעון מזרח אוסטרליה (קיץ)", "HKST": "שעון הונג קונג (קיץ)", "ChST": "שעון צ׳אמורו", "OEZ": "שעון מזרח אירופה (חורף)", "WARST": "שעון מערב ארגנטינה (קיץ)", "COST": "שעון קולומביה (קיץ)", "HECU": "שעון קובה (קיץ)", "VET": "שעון ונצואלה", "AWDT": "שעון מערב אוסטרליה (קיץ)", "SAST": "שעון דרום אפריקה", "CST": "שעון מרכז ארה״ב (חורף)", "TMST": "שעון טורקמניסטן (קיץ)", "ACWDT": "שעון מרכז-מערב אוסטרליה (קיץ)", "ARST": "שעון ארגנטינה (קיץ)", "AWST": "שעון מערב אוסטרליה (חורף)", "AKDT": "שעון אלסקה (קיץ)", "HADT": "שעון האיים האלאוטיים הוואי (קיץ)", "ACST": "שעון מרכז אוסטרליה (חורף)", "MYT": "שעון מלזיה", "UYT": "שעון אורוגוואי (חורף)", "CDT": "שעון מרכז ארה״ב (קיץ)", "AST": "שעון האוקיינוס האטלנטי (חורף)", "MESZ": "שעון מרכז אירופה (קיץ)", "CHADT": "שעון צ׳טהאם (קיץ)", "CAT": "שעון מרכז אפריקה", "ECT": "שעון אקוודור", "SGT": "שעון סינגפור", "BT": "שעון בהוטן", "WITA": "שעון מרכז אינדונזיה", "LHDT": "שעון אי הלורד האו (קיץ)", "HNPM": "שעון סנט פייר ומיקלון (חורף)", "HEPM": "שעון סנט פייר ומיקלון (קיץ)", "CLT": "שעון צ׳ילה (חורף)", "∅∅∅": "שעון אמזונס (קיץ)", "TMT": "שעון טורקמניסטן (חורף)", "HEOG": "שעון מערב גרינלנד (קיץ)", "ART": "שעון ארגנטינה (חורף)", "HKT": "שעון הונג קונג (חורף)", "WIB": "שעון מערב אינדונזיה", "ACDT": "שעון מרכז אוסטרליה (קיץ)", "OESZ": "שעון מזרח אירופה (קיץ)", "COT": "שעון קולומביה (חורף)", "HNEG": "שעון מזרח גרינלנד (חורף)", "GYT": "שעון גיאנה", "LHST": "שעון אי הלורד האו (חורף)", "CHAST": "שעון צ׳טהאם (חורף)", "JDT": "שעון יפן (קיץ)", "AKST": "שעון אלסקה (חורף)", "HAST": "שעון האיים האלאוטיים הוואי (חורף)", "CLST": "שעון צ׳ילה (קיץ)", "WAST": "שעון מערב אפריקה (קיץ)", "HEPMX": "שעון מערב מקסיקו (קיץ)", "ACWST": "שעון מרכז-מערב אוסטרליה (חורף)", "BOT": "שעון בוליביה", "EDT": "שעון החוף המזרחי (קיץ)", "HENOMX": "שעון צפון-מערב מקסיקו (קיץ)", "UYST": "שעון אורוגוואי (קיץ)", "PDT": "שעון מערב ארה״ב (קיץ)", "HNT": "שעון ניופאונדלנד (חורף)", "EAT": "שעון מזרח אפריקה", "GMT": "שעון גריניץ׳\u200f", "WIT": "שעון מזרח אינדונזיה", "PST": "שעון מערב ארה״ב (חורף)", "NZST": "שעון ניו זילנד (חורף)", "AEST": "שעון מזרח אוסטרליה (חורף)"},
++ timezones: map[string]string{"PDT": "שעון מערב ארה״ב (קיץ)", "HEPMX": "שעון מערב מקסיקו (קיץ)", "SAST": "שעון דרום אפריקה", "EST": "שעון החוף המזרחי (חורף)", "NZST": "שעון ניו זילנד (חורף)", "ADT": "שעון האוקיינוס האטלנטי (קיץ)", "HEPM": "שעון סנט פייר ומיקלון (קיץ)", "HKT": "שעון הונג קונג (חורף)", "HENOMX": "שעון צפון-מערב מקסיקו (קיץ)", "AWST": "שעון מערב אוסטרליה (חורף)", "UYST": "שעון אורוגוואי (קיץ)", "ACDT": "שעון מרכז אוסטרליה (קיץ)", "AWDT": "שעון מערב אוסטרליה (קיץ)", "WAST": "שעון מערב אפריקה (קיץ)", "GFT": "שעון גיאנה הצרפתית", "CDT": "שעון מרכז ארה״ב (קיץ)", "NZDT": "שעון ניו זילנד (קיץ)", "WIB": "שעון מערב אינדונזיה", "HAST": "שעון האיים האלאוטיים הוואי (חורף)", "ARST": "שעון ארגנטינה (קיץ)", "BOT": "שעון בוליביה", "VET": "שעון ונצואלה", "HNPMX": "שעון מערב מקסיקו (חורף)", "OESZ": "שעון מזרח אירופה (קיץ)", "COST": "שעון קולומביה (קיץ)", "HNOG": "שעון מערב גרינלנד (חורף)", "CLST": "שעון צ׳ילה (קיץ)", "UYT": "שעון אורוגוואי (חורף)", "HECU": "שעון קובה (קיץ)", "TMT": "שעון טורקמניסטן (חורף)", "CAT": "שעון מרכז אפריקה", "MST": "שעון חורף מקאו", "LHST": "שעון אי הלורד האו (חורף)", "CHADT": "שעון צ׳טהאם (קיץ)", "WIT": "שעון מזרח אינדונזיה", "HEOG": "שעון מערב גרינלנד (קיץ)", "MEZ": "שעון מרכז אירופה (חורף)", "LHDT": "שעון אי הלורד האו (קיץ)", "MYT": "שעון מלזיה", "JST": "שעון יפן (חורף)", "AKDT": "שעון אלסקה (קיץ)", "ChST": "שעון צ׳אמורו", "HADT": "שעון האיים האלאוטיים הוואי (קיץ)", "AEST": "שעון מזרח אוסטרליה (חורף)", "SGT": "שעון סינגפור", "WITA": "שעון מרכז אינדונזיה", "HNPM": "שעון סנט פייר ומיקלון (חורף)", "BT": "שעון בהוטן", "∅∅∅": "שעון אמזונס (קיץ)", "OEZ": "שעון מזרח אירופה (חורף)", "HAT": "שעון ניופאונדלנד (קיץ)", "GYT": "שעון גיאנה", "HEEG": "שעון מזרח גרינלנד (קיץ)", "HNCU": "שעון קובה (חורף)", "AKST": "שעון אלסקה (חורף)", "HNEG": "שעון מזרח גרינלנד (חורף)", "JDT": "שעון יפן (קיץ)", "IST": "שעון הודו", "AEDT": "שעון מזרח אוסטרליה (קיץ)", "WEZ": "שעון מערב אירופה (חורף)", "HKST": "שעון הונג קונג (קיץ)", "ECT": "שעון אקוודור", "AST": "שעון האוקיינוס האטלנטי (חורף)", "SRT": "שעון סורינאם", "ACWDT": "שעון מרכז-מערב אוסטרליה (קיץ)", "HNT": "שעון ניופאונדלנד (חורף)", "WART": "שעון מערב ארגנטינה (חורף)", "COT": "שעון קולומביה (חורף)", "TMST": "שעון טורקמניסטן (קיץ)", "CLT": "שעון צ׳ילה (חורף)", "MESZ": "שעון מרכז אירופה (קיץ)", "WESZ": "שעון מערב אירופה (קיץ)", "WAT": "שעון מערב אפריקה (חורף)", "WARST": "שעון מערב ארגנטינה (קיץ)", "CST": "שעון מרכז ארה״ב (חורף)", "MDT": "שעון קיץ מקאו", "ACST": "שעון מרכז אוסטרליה (חורף)", "ART": "שעון ארגנטינה (חורף)", "HNNOMX": "שעון צפון-מערב מקסיקו (חורף)", "PST": "שעון מערב ארה״ב (חורף)", "EDT": "שעון החוף המזרחי (קיץ)", "GMT": "שעון גריניץ׳\u200f", "EAT": "שעון מזרח אפריקה", "ACWST": "שעון מרכז-מערב אוסטרליה (חורף)", "CHAST": "שעון צ׳טהאם (חורף)"},
+ }
+ }
+ 
+diff --git a/he_IL/he_IL.go b/he_IL/he_IL.go
+index 6d5da2f..bfee389 100644
+--- a/he_IL/he_IL.go
++++ b/he_IL/he_IL.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type he_IL struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'he_IL' locale
+ func New() locales.Translator {
+ return &he_IL{
+- locale: "he_IL",
+- pluralsCardinal: []locales.PluralRule{2, 3, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{5, 6},
+- decimal: ".",
+- group: ",",
+- minus: "‎-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ינו׳", "פבר׳", "מרץ", "אפר׳", "מאי", "יוני", "יולי", "אוג׳", "ספט׳", "אוק׳", "נוב׳", "דצמ׳"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"},
+- daysAbbreviated: []string{"יום א׳", "יום ב׳", "יום ג׳", "יום ד׳", "יום ה׳", "יום ו׳", "שבת"},
+- daysNarrow: []string{"א׳", "ב׳", "ג׳", "ד׳", "ה׳", "ו׳", "ש׳"},
+- daysShort: []string{"א׳", "ב׳", "ג׳", "ד׳", "ה׳", "ו׳", "ש׳"},
+- daysWide: []string{"יום ראשון", "יום שני", "יום שלישי", "יום רביעי", "יום חמישי", "יום שישי", "יום שבת"},
+- periodsAbbreviated: []string{"לפנה״צ", "אחה״צ"},
+- periodsNarrow: []string{"", ""},
+- periodsWide: []string{"לפנה״צ", "אחה״צ"},
+- erasAbbreviated: []string{"לפנה״ס", "לספירה"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"AEDT": "שעון מזרח אוסטרליה (קיץ)", "LHDT": "שעון אי הלורד האו (קיץ)", "WAT": "שעון מערב אפריקה (חורף)", "HENOMX": "שעון צפון-מערב מקסיקו (קיץ)", "WESZ": "שעון מערב אירופה (קיץ)", "WITA": "שעון מרכז אינדונזיה", "AEST": "שעון מזרח אוסטרליה (חורף)", "WARST": "שעון מערב ארגנטינה (קיץ)", "GMT": "שעון גריניץ׳\u200f", "HADT": "שעון האיים האלאוטיים הוואי (קיץ)", "PDT": "שעון מערב ארה״ב (קיץ)", "NZDT": "שעון ניו זילנד (קיץ)", "ACDT": "שעון מרכז אוסטרליה (קיץ)", "COST": "שעון קולומביה (קיץ)", "HNCU": "שעון קובה (חורף)", "HNPMX": "שעון מערב מקסיקו (חורף)", "HAST": "שעון האיים האלאוטיים הוואי (חורף)", "OESZ": "שעון מזרח אירופה (קיץ)", "CDT": "שעון מרכז ארה״ב (קיץ)", "UYST": "שעון אורוגוואי (קיץ)", "CHAST": "שעון צ׳טהאם (חורף)", "NZST": "שעון ניו זילנד (חורף)", "ADT": "שעון האוקיינוס האטלנטי (קיץ)", "GYT": "שעון גיאנה", "WIT": "שעון מזרח אינדונזיה", "SRT": "שעון סורינאם", "CHADT": "שעון צ׳טהאם (קיץ)", "LHST": "שעון אי הלורד האו (חורף)", "WAST": "שעון מערב אפריקה (קיץ)", "COT": "שעון קולומביה (חורף)", "UYT": "שעון אורוגוואי (חורף)", "AKST": "שעון אלסקה (חורף)", "AWDT": "שעון מערב אוסטרליה (קיץ)", "BOT": "שעון בוליביה", "OEZ": "שעון מזרח אירופה (חורף)", "SGT": "שעון סינגפור", "MST": "שעון חורף מקאו", "AKDT": "שעון אלסקה (קיץ)", "HEOG": "שעון מערב גרינלנד (קיץ)", "MDT": "שעון קיץ מקאו", "ART": "שעון ארגנטינה (חורף)", "MEZ": "שעון מרכז אירופה (חורף)", "SAST": "שעון דרום אפריקה", "IST": "שעון הודו", "JST": "שעון יפן (חורף)", "EAT": "שעון מזרח אפריקה", "EDT": "שעון החוף המזרחי (קיץ)", "CLST": "שעון צ׳ילה (קיץ)", "TMT": "שעון טורקמניסטן (חורף)", "HEPMX": "שעון מערב מקסיקו (קיץ)", "HKT": "שעון הונג קונג (חורף)", "HEPM": "שעון סנט פייר ומיקלון (קיץ)", "TMST": "שעון טורקמניסטן (קיץ)", "ACST": "שעון מרכז אוסטרליה (חורף)", "CAT": "שעון מרכז אפריקה", "VET": "שעון ונצואלה", "ACWST": "שעון מרכז-מערב אוסטרליה (חורף)", "WEZ": "שעון מערב אירופה (חורף)", "ACWDT": "שעון מרכז-מערב אוסטרליה (קיץ)", "HNPM": "שעון סנט פייר ומיקלון (חורף)", "WART": "שעון מערב ארגנטינה (חורף)", "HNNOMX": "שעון צפון-מערב מקסיקו (חורף)", "EST": "שעון החוף המזרחי (חורף)", "HNT": "שעון ניופאונדלנד (חורף)", "ARST": "שעון ארגנטינה (קיץ)", "CLT": "שעון צ׳ילה (חורף)", "HEEG": "שעון מזרח גרינלנד (קיץ)", "HECU": "שעון קובה (קיץ)", "HAT": "שעון ניופאונדלנד (קיץ)", "AST": "שעון האוקיינוס האטלנטי (חורף)", "BT": "שעון בהוטן", "PST": "שעון מערב ארה״ב (חורף)", "AWST": "שעון מערב אוסטרליה (חורף)", "MESZ": "שעון מרכז אירופה (קיץ)", "JDT": "שעון יפן (קיץ)", "∅∅∅": "שעון אמזונס (קיץ)", "ChST": "שעון צ׳אמורו", "ECT": "שעון אקוודור", "HNOG": "שעון מערב גרינלנד (חורף)", "GFT": "שעון גיאנה הצרפתית", "HNEG": "שעון מזרח גרינלנד (חורף)", "CST": "שעון מרכז ארה״ב (חורף)", "MYT": "שעון מלזיה", "WIB": "שעון מערב אינדונזיה", "HKST": "שעון הונג קונג (קיץ)"},
++ locale: "he_IL",
++ pluralsCardinal: []locales.PluralRule{2, 3, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"JST": "JST", "AWDT": "AWDT", "BT": "BT", "PDT": "PDT", "WAST": "WAST", "OEZ": "OEZ", "SRT": "SRT", "MYT": "MYT", "WITA": "WITA", "AST": "AST", "HNPM": "HNPM", "CHAST": "CHAST", "AKDT": "AKDT", "TMST": "TMST", "EST": "EST", "CST": "CST", "GFT": "GFT", "NZST": "NZST", "WIB": "WIB", "HNNOMX": "HNNOMX", "JDT": "JDT", "AEDT": "AEDT", "AKST": "AKST", "WIT": "WIT", "MST": "MST", "WESZ": "WESZ", "EDT": "EDT", "HNEG": "HNEG", "WEZ": "WEZ", "COST": "COST", "ACWST": "ACWST", "EAT": "EAT", "HEPMX": "HEPMX", "SGT": "SGT", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "MDT": "MDT", "HENOMX": "HENOMX", "LHDT": "LHDT", "ACWDT": "ACWDT", "HNOG": "HNOG", "CDT": "CDT", "HAST": "HAST", "HADT": "HADT", "MESZ": "MESZ", "HEPM": "HEPM", "UYST": "UYST", "HECU": "HECU", "HKST": "HKST", "BOT": "BOT", "OESZ": "OESZ", "ACST": "ACST", "HNCU": "HNCU", "GMT": "GMT", "UYT": "UYT", "CLT": "CLT", "ARST": "ARST", "ChST": "ChST", "IST": "IST", "COT": "COT", "TMT": "TMT", "GYT": "GYT", "CAT": "CAT", "MEZ": "MEZ", "CHADT": "CHADT", "PST": "PST", "HNPMX": "HNPMX", "HNT": "HNT", "WART": "WART", "ECT": "ECT", "LHST": "LHST", "HAT": "HAT", "HKT": "HKT", "ACDT": "ACDT", "SAST": "SAST", "HEEG": "HEEG", "NZDT": "NZDT", "ART": "ART", "ADT": "ADT", "AWST": "AWST", "AEST": "AEST", "VET": "VET", "WARST": "WARST", "CLST": "CLST", "WAT": "WAT"},
+ }
+ }
+ 
+@@ -157,7 +134,7 @@ func (he *he_IL) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (he *he_IL) MonthsAbbreviated() []string {
+- return he.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -167,7 +144,7 @@ func (he *he_IL) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (he *he_IL) MonthsNarrow() []string {
+- return he.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -177,7 +154,7 @@ func (he *he_IL) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (he *he_IL) MonthsWide() []string {
+- return he.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -223,77 +200,13 @@ func (he *he_IL) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'he_IL' and handles both Whole and Real numbers based on 'v'
+ func (he *he_IL) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, he.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, he.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(he.minus) - 1; j >= 0; j-- {
+- b = append(b, he.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'he_IL' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (he *he_IL) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 6
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, he.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(he.minus) - 1; j >= 0; j-- {
+- b = append(b, he.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, he.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'he_IL'
+@@ -301,58 +214,7 @@ func (he *he_IL) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := he.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, he.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, he.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(he.minus) - 1; j >= 0; j-- {
+- b = append(b, he.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, he.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, he.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'he_IL'
+@@ -361,65 +223,7 @@ func (he *he_IL) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := he.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, he.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, he.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(he.minus) - 1; j >= 0; j-- {
+- b = append(b, he.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, he.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, he.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, he.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'he_IL'
+@@ -427,17 +231,6 @@ func (he *he_IL) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +239,6 @@ func (he *he_IL) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0xd7, 0x91}...)
+- b = append(b, he.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +247,6 @@ func (he *he_IL) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0xd7, 0x91}...)
+- b = append(b, he.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +255,6 @@ func (he *he_IL) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, he.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0xd7, 0x91}...)
+- b = append(b, he.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,15 +263,6 @@ func (he *he_IL) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, he.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -522,22 +271,6 @@ func (he *he_IL) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, he.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, he.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -546,26 +279,6 @@ func (he *he_IL) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, he.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, he.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -574,30 +287,5 @@ func (he *he_IL) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, he.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, he.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := he.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/hi/hi.go b/hi/hi.go
+index 78da528..7560e50 100644
+--- a/hi/hi.go
++++ b/hi/hi.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ईसा-पूर्व", "ईस्वी"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"ईसा-पूर्व", "ईसवी सन"},
+- timezones: map[string]string{"MST": "MST", "MDT": "MDT", "WIT": "पूर्वी इंडोनेशिया समय", "ART": "अर्जेंटीना मानक समय", "HNEG": "पूर्वी ग्रीनलैंड मानक समय", "TMT": "तुर्कमेनिस्तान मानक समय", "COT": "कोलंबिया मानक समय", "HAST": "हवाई–आल्यूशन मानक समय", "WESZ": "पश्चिमी यूरोपीय ग्रीष्\u200dमकालीन समय", "ACWST": "ऑस्\u200dट्रेलियाई केंद्रीय पश्चिमी मानक समय", "HEEG": "पूर्वी ग्रीनलैंड ग्रीष्मकालीन समय", "LHST": "लॉर्ड होवे मानक समय", "EST": "उत्तरी अमेरिकी पूर्वी मानक समय", "CST": "उत्तरी अमेरिकी केंद्रीय मानक समय", "GYT": "गुयाना समय", "WIB": "पश्चिमी इंडोनेशिया समय", "SRT": "सूरीनाम समय", "PST": "उत्तरी अमेरिकी प्रशांत मानक समय", "WEZ": "पश्चिमी यूरोपीय मानक समय", "NZST": "न्यूज़ीलैंड मानक समय", "ChST": "चामोरो मानक समय", "HEPMX": "मेक्सिकन प्रशांत डेलाइट समय", "CHAST": "चैथम मानक समय", "IST": "भारतीय मानक समय", "CLST": "चिली ग्रीष्मकालीन समय", "JDT": "जापान डेलाइट समय", "ECT": "इक्वाडोर समय", "UYT": "उरुग्वे मानक समय", "AEDT": "ऑस्\u200dट्रेलियाई पूर्वी डेलाइट समय", "CLT": "चिली मानक समय", "GFT": "फ़्रेंच गुयाना समय", "ACDT": "ऑस्\u200dट्रेलियाई केंद्रीय डेलाइट समय", "CDT": "उत्तरी अमेरिकी केंद्रीय डेलाइट समय", "AWDT": "ऑस्ट्रेलियाई पश्चिमी डेलाइट समय", "SAST": "दक्षिण अफ़्रीका समय", "JST": "जापान मानक समय", "TMST": "तुर्कमेनिस्तान ग्रीष्मकालीन समय", "HEPM": "सेंट पियरे और मिकेलान डेलाइट समय", "CAT": "मध्य अफ़्रीका समय", "WART": "पश्चिमी अर्जेंटीना मानक समय", "ARST": "अर्जेंटीना ग्रीष्मकालीन समय", "HKST": "हाँग काँग ग्रीष्मकालीन समय", "MESZ": "मध्\u200dय यूरोपीय ग्रीष्\u200dमकालीन समय", "LHDT": "लॉर्ड होवे डेलाइट समय", "WAT": "पश्चिम अफ़्रीका मानक समय", "HADT": "हवाई–आल्यूशन डेलाइट समय", "ACWDT": "ऑस्\u200dट्रेलियाई केंद्रीय पश्चिमी डेलाइट समय", "HNOG": "पश्चिमी ग्रीनलैंड मानक समय", "WITA": "मध्य इंडोनेशिया समय", "∅∅∅": "अमेज़न ग्रीष्मकालीन समय", "EAT": "पूर्वी अफ़्रीका समय", "HENOMX": "उत्तर पश्चिमी मेक्सिको डेलाइट समय", "AEST": "ऑस्\u200dट्रेलियाई पूर्वी मानक समय", "AKST": "अलास्\u200dका मानक समय", "MYT": "मलेशिया समय", "PDT": "उत्तरी अमेरिकी प्रशांत डेलाइट समय", "HAT": "न्यूफ़ाउंडलैंड डेलाइट समय", "EDT": "उत्तरी अमेरिकी पूर्वी डेलाइट समय", "HNPMX": "मेक्सिकन प्रशांत मानक समय", "HKT": "हाँग काँग मानक समय", "MEZ": "मध्य यूरोपीय मानक समय", "OEZ": "पूर्वी यूरोपीय मानक समय", "OESZ": "पूर्वी यूरोपीय ग्रीष्मकालीन समय", "SGT": "सिंगापुर समय", "AST": "अटलांटिक मानक समय", "CHADT": "चैथम डेलाइट समय", "BOT": "बोलीविया समय", "GMT": "ग्रीनविच मीन टाइम", "ADT": "अटलांटिक डेलाइट समय", "VET": "वेनेज़ुएला समय", "COST": "कोलंबिया ग्रीष्मकालीन समय", "HNNOMX": "उत्तर पश्चिमी मेक्सिको मानक समय", "UYST": "उरुग्वे ग्रीष्मकालीन समय", "BT": "भूटान समय", "HNT": "न्यूफ़ाउंडलैंड मानक समय", "NZDT": "न्यूज़ीलैंड डेलाइट समय", "WARST": "पश्चिमी अर्जेंटीना ग्रीष्मकालीन समय", "HNCU": "क्यूबा मानक समय", "HECU": "क्यूबा डेलाइट समय", "AKDT": "अलास्\u200dका डेलाइट समय", "HEOG": "पश्चिमी ग्रीनलैंड ग्रीष्मकालीन समय", "AWST": "ऑस्ट्रेलियाई पश्चिमी मानक समय", "HNPM": "सेंट पियरे और मिकेलान मानक समय", "ACST": "ऑस्\u200dट्रेलियाई केंद्रीय मानक समय", "WAST": "पश्चिम अफ़्रीका ग्रीष्मकालीन समय"},
++ timezones: map[string]string{"EDT": "उत्तरी अमेरिकी पूर्वी डेलाइट समय", "TMST": "तुर्कमेनिस्तान ग्रीष्मकालीन समय", "WITA": "मध्य इंडोनेशिया समय", "NZDT": "न्यूज़ीलैंड डेलाइट समय", "ADT": "अटलांटिक डेलाइट समय", "COST": "कोलंबिया ग्रीष्मकालीन समय", "HEOG": "पश्चिमी ग्रीनलैंड ग्रीष्मकालीन समय", "WIB": "पश्चिमी इंडोनेशिया समय", "HNEG": "पूर्वी ग्रीनलैंड मानक समय", "HNCU": "क्यूबा मानक समय", "SAST": "दक्षिण अफ़्रीका समय", "HADT": "हवाई–आल्यूशन डेलाइट समय", "HEPM": "सेंट पियरे और मिकेलान डेलाइट समय", "UYT": "उरुग्वे मानक समय", "AEDT": "ऑस्\u200dट्रेलियाई पूर्वी डेलाइट समय", "AKST": "अलास्\u200dका मानक समय", "WART": "पश्चिमी अर्जेंटीना मानक समय", "HNOG": "पश्चिमी ग्रीनलैंड मानक समय", "HKT": "हाँग काँग मानक समय", "TMT": "तुर्कमेनिस्तान मानक समय", "LHST": "लॉर्ड होवे मानक समय", "WARST": "पश्चिमी अर्जेंटीना ग्रीष्मकालीन समय", "CAT": "मध्य अफ़्रीका समय", "CLST": "चिली ग्रीष्मकालीन समय", "LHDT": "लॉर्ड होवे डेलाइट समय", "GFT": "फ़्रेंच गुयाना समय", "CDT": "उत्तरी अमेरिकी केंद्रीय डेलाइट समय", "ARST": "अर्जेंटीना ग्रीष्मकालीन समय", "HNPM": "सेंट पियरे और मिकेलान मानक समय", "PST": "उत्तरी अमेरिकी प्रशांत मानक समय", "AKDT": "अलास्\u200dका डेलाइट समय", "HAT": "न्यूफ़ाउंडलैंड डेलाइट समय", "EAT": "पूर्वी अफ़्रीका समय", "MESZ": "मध्\u200dय यूरोपीय ग्रीष्\u200dमकालीन समय", "AEST": "ऑस्\u200dट्रेलियाई पूर्वी मानक समय", "HEPMX": "मेक्सिकन प्रशांत डेलाइट समय", "ChST": "चामोरो मानक समय", "ACWST": "ऑस्\u200dट्रेलियाई केंद्रीय पश्चिमी मानक समय", "WIT": "पूर्वी इंडोनेशिया समय", "HKST": "हाँग काँग ग्रीष्मकालीन समय", "CLT": "चिली मानक समय", "CST": "उत्तरी अमेरिकी केंद्रीय मानक समय", "HAST": "हवाई–आल्यूशन मानक समय", "PDT": "उत्तरी अमेरिकी प्रशांत डेलाइट समय", "WAST": "पश्चिम अफ़्रीका ग्रीष्मकालीन समय", "COT": "कोलंबिया मानक समय", "IST": "भारतीय मानक समय", "SGT": "सिंगापुर समय", "HECU": "क्यूबा डेलाइट समय", "HNPMX": "मेक्सिकन प्रशांत मानक समय", "AWDT": "ऑस्ट्रेलियाई पश्चिमी डेलाइट समय", "HNT": "न्यूफ़ाउंडलैंड मानक समय", "GYT": "गुयाना समय", "MST": "MST", "NZST": "न्यूज़ीलैंड मानक समय", "ECT": "इक्वाडोर समय", "AST": "अटलांटिक मानक समय", "WESZ": "पश्चिमी यूरोपीय ग्रीष्\u200dमकालीन समय", "OEZ": "पूर्वी यूरोपीय मानक समय", "ART": "अर्जेंटीना मानक समय", "HEEG": "पूर्वी ग्रीनलैंड ग्रीष्मकालीन समय", "MYT": "मलेशिया समय", "CHAST": "चैथम मानक समय", "CHADT": "चैथम डेलाइट समय", "EST": "उत्तरी अमेरिकी पूर्वी मानक समय", "GMT": "ग्रीनविच मीन टाइम", "MEZ": "मध्य यूरोपीय मानक समय", "ACDT": "ऑस्\u200dट्रेलियाई केंद्रीय डेलाइट समय", "OESZ": "पूर्वी यूरोपीय ग्रीष्मकालीन समय", "SRT": "सूरीनाम समय", "AWST": "ऑस्ट्रेलियाई पश्चिमी मानक समय", "JDT": "जापान डेलाइट समय", "WEZ": "पश्चिमी यूरोपीय मानक समय", "WAT": "पश्चिम अफ़्रीका मानक समय", "∅∅∅": "ब्राजीलिया ग्रीष्मकालीन समय", "BOT": "बोलीविया समय", "ACST": "ऑस्\u200dट्रेलियाई केंद्रीय मानक समय", "HNNOMX": "उत्तर पश्चिमी मेक्सिको मानक समय", "BT": "भूटान समय", "MDT": "MDT", "HENOMX": "उत्तर पश्चिमी मेक्सिको डेलाइट समय", "JST": "जापान मानक समय", "ACWDT": "ऑस्\u200dट्रेलियाई केंद्रीय पश्चिमी डेलाइट समय", "UYST": "उरुग्वे ग्रीष्मकालीन समय", "VET": "वेनेज़ुएला समय"},
+ }
+ }
+ 
+diff --git a/hi_IN/hi_IN.go b/hi_IN/hi_IN.go
+index 2b68742..c92d974 100644
+--- a/hi_IN/hi_IN.go
++++ b/hi_IN/hi_IN.go
+@@ -42,32 +42,13 @@ type hi_IN struct {
+ // New returns a new instance of translator for the 'hi_IN' locale
+ func New() locales.Translator {
+ return &hi_IN{
+- locale: "hi_IN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 5, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "जन॰", "फ़र॰", "मार्च", "अप्रैल", "मई", "जून", "जुल॰", "अग॰", "सित॰", "अक्तू॰", "नव॰", "दिस॰"},
+- monthsNarrow: []string{"", "ज", "फ़", "मा", "अ", "म", "जू", "जु", "अ", "सि", "अ", "न", "दि"},
+- monthsWide: []string{"", "जनवरी", "फ़रवरी", "मार्च", "अप्रैल", "मई", "जून", "जुलाई", "अगस्त", "सितंबर", "अक्तूबर", "नवंबर", "दिसंबर"},
+- daysAbbreviated: []string{"रवि", "सोम", "मंगल", "बुध", "गुरु", "शुक्र", "शनि"},
+- daysNarrow: []string{"र", "सो", "मं", "बु", "गु", "शु", "श"},
+- daysShort: []string{"र", "सो", "मं", "बु", "गु", "शु", "श"},
+- daysWide: []string{"रविवार", "सोमवार", "मंगलवार", "बुधवार", "गुरुवार", "शुक्रवार", "शनिवार"},
+- periodsAbbreviated: []string{"पूर्वाह्न", "अपराह्न"},
+- periodsNarrow: []string{"पू", "अ"},
+- periodsWide: []string{"पूर्वाह्न", "अपराह्न"},
+- erasAbbreviated: []string{"ईसा-पूर्व", "ईस्वी"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ईसा-पूर्व", "ईसवी सन"},
+- timezones: map[string]string{"WAST": "पश्चिम अफ़्रीका ग्रीष्मकालीन समय", "COT": "कोलंबिया मानक समय", "AWST": "ऑस्ट्रेलियाई पश्चिमी मानक समय", "JDT": "जापान डेलाइट समय", "HNPMX": "मेक्सिकन प्रशांत मानक समय", "HNT": "न्यूफ़ाउंडलैंड मानक समय", "HKST": "हाँग काँग ग्रीष्मकालीन समय", "AEST": "ऑस्\u200dट्रेलियाई पूर्वी मानक समय", "MEZ": "मध्य यूरोपीय मानक समय", "MESZ": "मध्\u200dय यूरोपीय ग्रीष्\u200dमकालीन समय", "LHDT": "लॉर्ड होवे डेलाइट समय", "HNEG": "पूर्वी ग्रीनलैंड मानक समय", "CAT": "मध्य अफ़्रीका समय", "AST": "अटलांटिक मानक समय", "WIB": "पश्चिमी इंडोनेशिया समय", "HECU": "क्यूबा डेलाइट समय", "WIT": "पूर्वी इंडोनेशिया समय", "AEDT": "ऑस्\u200dट्रेलियाई पूर्वी डेलाइट समय", "AWDT": "ऑस्ट्रेलियाई पश्चिमी डेलाइट समय", "ARST": "अर्जेंटीना ग्रीष्मकालीन समय", "∅∅∅": "पेरू ग्रीष्मकालीन समय", "WART": "पश्चिमी अर्जेंटीना मानक समय", "CDT": "उत्तरी अमेरिकी केंद्रीय डेलाइट समय", "ART": "अर्जेंटीना मानक समय", "SRT": "सूरीनाम समय", "NZDT": "न्यूज़ीलैंड डेलाइट समय", "WARST": "पश्चिमी अर्जेंटीना ग्रीष्मकालीन समय", "MYT": "मलेशिया समय", "UYT": "उरुग्वे मानक समय", "HADT": "हवाई–आल्यूशन डेलाइट समय", "AKST": "अलास्\u200dका मानक समय", "AKDT": "अलास्\u200dका डेलाइट समय", "HNPM": "सेंट पियरे और मिकेलान मानक समय", "LHST": "लॉर्ड होवे मानक समय", "BOT": "बोलीविया समय", "UYST": "उरुग्वे ग्रीष्मकालीन समय", "HAT": "न्यूफ़ाउंडलैंड डेलाइट समय", "ACWDT": "ऑस्\u200dट्रेलियाई केंद्रीय पश्चिमी डेलाइट समय", "ACWST": "ऑस्\u200dट्रेलियाई केंद्रीय पश्चिमी मानक समय", "TMST": "तुर्कमेनिस्तान ग्रीष्मकालीन समय", "OESZ": "पूर्वी यूरोपीय ग्रीष्मकालीन समय", "SGT": "सिंगापुर समय", "ADT": "अटलांटिक डेलाइट समय", "WEZ": "पश्चिमी यूरोपीय मानक समय", "HEPM": "सेंट पियरे और मिकेलान डेलाइट समय", "IST": "भारतीय मानक समय", "CLST": "चिली ग्रीष्मकालीन समय", "GFT": "फ़्रेंच गुयाना समय", "ECT": "इक्वाडोर समय", "HNCU": "क्यूबा मानक समय", "BT": "भूटान समय", "EST": "उत्तरी अमेरिकी पूर्वी मानक समय", "MDT": "MDT", "CST": "उत्तरी अमेरिकी केंद्रीय मानक समय", "HNOG": "पश्चिमी ग्रीनलैंड मानक समय", "HEEG": "पूर्वी ग्रीनलैंड ग्रीष्मकालीन समय", "ACDT": "ऑस्\u200dट्रेलियाई केंद्रीय डेलाइट समय", "EAT": "पूर्वी अफ़्रीका समय", "HEPMX": "मेक्सिकन प्रशांत डेलाइट समय", "PDT": "उत्तरी अमेरिकी प्रशांत डेलाइट समय", "CHADT": "चैथम डेलाइट समय", "HKT": "हाँग काँग मानक समय", "ChST": "चामोरो मानक समय", "EDT": "उत्तरी अमेरिकी पूर्वी डेलाइट समय", "MST": "MST", "WESZ": "पश्चिमी यूरोपीय ग्रीष्\u200dमकालीन समय", "HNNOMX": "उत्तर पश्चिमी मेक्सिको मानक समय", "HAST": "हवाई–आल्यूशन मानक समय", "VET": "वेनेज़ुएला समय", "CLT": "चिली मानक समय", "GMT": "ग्रीनविच मीन टाइम", "GYT": "गुयाना समय", "HEOG": "पश्चिमी ग्रीनलैंड ग्रीष्मकालीन समय", "TMT": "तुर्कमेनिस्तान मानक समय", "OEZ": "पूर्वी यूरोपीय मानक समय", "HENOMX": "उत्तर पश्चिमी मेक्सिको डेलाइट समय", "COST": "कोलंबिया ग्रीष्मकालीन समय", "NZST": "न्यूज़ीलैंड मानक समय", "CHAST": "चैथम मानक समय", "SAST": "दक्षिण अफ़्रीका समय", "JST": "जापान मानक समय", "ACST": "ऑस्\u200dट्रेलियाई केंद्रीय मानक समय", "WAT": "पश्चिम अफ़्रीका मानक समय", "PST": "उत्तरी अमेरिकी प्रशांत मानक समय", "WITA": "मध्य इंडोनेशिया समय"},
++ locale: "hi_IN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 5, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"NZST": "NZST", "HNPM": "HNPM", "LHDT": "LHDT", "PST": "PST", "GFT": "GFT", "WARST": "WARST", "HNOG": "HNOG", "HKST": "HKST", "ACWDT": "ACWDT", "UYST": "UYST", "HECU": "HECU", "GYT": "GYT", "CST": "CST", "AWDT": "AWDT", "ACWST": "ACWST", "HNNOMX": "HNNOMX", "MEZ": "MEZ", "JDT": "JDT", "HNT": "HNT", "HEOG": "HEOG", "COST": "COST", "EST": "EST", "WIB": "WIB", "HADT": "HADT", "PDT": "PDT", "BT": "BT", "AKDT": "AKDT", "TMT": "TMT", "SRT": "SRT", "CHAST": "CHAST", "HENOMX": "HENOMX", "MYT": "MYT", "AEDT": "AEDT", "CHADT": "CHADT", "OEZ": "OEZ", "GMT": "GMT", "UYT": "UYT", "WEZ": "WEZ", "WAT": "WAT", "AST": "AST", "HNEG": "HNEG", "ACDT": "ACDT", "AWST": "AWST", "HNPMX": "HNPMX", "COT": "COT", "CAT": "CAT", "ART": "ART", "ChST": "ChST", "BOT": "BOT", "HNCU": "HNCU", "WESZ": "WESZ", "SGT": "SGT", "WART": "WART", "CLST": "CLST", "∅∅∅": "∅∅∅", "SAST": "SAST", "CLT": "CLT", "ECT": "ECT", "MST": "MST", "MDT": "MDT", "ADT": "ADT", "VET": "VET", "OESZ": "OESZ", "CDT": "CDT", "MESZ": "MESZ", "AKST": "AKST", "WIT": "WIT", "WITA": "WITA", "HEEG": "HEEG", "HEPMX": "HEPMX", "LHST": "LHST", "AEST": "AEST", "IST": "IST", "EDT": "EDT", "TMST": "TMST", "ARST": "ARST", "EAT": "EAT", "ACST": "ACST", "HEPM": "HEPM", "JST": "JST", "WAST": "WAST", "HAT": "HAT", "HKT": "HKT", "NZDT": "NZDT", "HAST": "HAST"},
+ }
+ }
+ 
+@@ -145,7 +126,7 @@ func (hi *hi_IN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (hi *hi_IN) MonthsAbbreviated() []string {
+- return hi.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -155,7 +136,7 @@ func (hi *hi_IN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (hi *hi_IN) MonthsNarrow() []string {
+- return hi.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -165,7 +146,7 @@ func (hi *hi_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (hi *hi_IN) MonthsWide() []string {
+- return hi.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -211,82 +192,13 @@ func (hi *hi_IN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'hi_IN' and handles both Whole and Real numbers based on 'v'
+ func (hi *hi_IN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hi.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, hi.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, hi.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'hi_IN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (hi *hi_IN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hi.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, hi.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, hi.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'hi_IN'
+@@ -294,65 +206,7 @@ func (hi *hi_IN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := hi.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hi.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, hi.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, hi.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, hi.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'hi_IN'
+@@ -361,73 +215,7 @@ func (hi *hi_IN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := hi.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hi.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, hi.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, hi.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, hi.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'hi_IN'
+@@ -435,17 +223,6 @@ func (hi *hi_IN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,27 +231,6 @@ func (hi *hi_IN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -483,17 +239,6 @@ func (hi *hi_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, hi.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -502,19 +247,6 @@ func (hi *hi_IN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, hi.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, hi.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -523,28 +255,6 @@ func (hi *hi_IN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, hi.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, hi.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, hi.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -553,35 +263,6 @@ func (hi *hi_IN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, hi.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hi.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, hi.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, hi.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -590,40 +271,6 @@ func (hi *hi_IN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, hi.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hi.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, hi.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, hi.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -632,44 +279,5 @@ func (hi *hi_IN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, hi.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hi.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, hi.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, hi.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := hi.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/hr/hr.go b/hr/hr.go
+index 5fa3fc0..5eecf26 100644
+--- a/hr/hr.go
++++ b/hr/hr.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"pr. Kr.", "po. Kr."},
+ erasNarrow: []string{"pr.n.e.", "AD"},
+ erasWide: []string{"prije Krista", "poslije Krista"},
+- timezones: map[string]string{"HADT": "havajsko-aleutsko ljetno vrijeme", "WESZ": "zapadnoeuropsko ljetno vrijeme", "SAST": "južnoafričko vrijeme", "IST": "indijsko vrijeme", "TMST": "turkmenistansko ljetno vrijeme", "EST": "istočno standardno vrijeme", "HEPMX": "meksičko pacifičko ljetno vrijeme", "SRT": "surinamsko vrijeme", "NZDT": "novozelandsko ljetno vrijeme", "UYST": "urugvajsko ljetno vrijeme", "COT": "kolumbijsko standardno vrijeme", "EDT": "istočno ljetno vrijeme", "GYT": "gvajansko vrijeme", "LHST": "standardno vrijeme otoka Lord Howe", "JDT": "japansko ljetno vrijeme", "GMT": "univerzalno vrijeme", "AKST": "aljaško standardno vrijeme", "CST": "središnje standardno vrijeme", "GFT": "vrijeme Francuske Gvajane", "WART": "zapadno-argentinsko standardno vrijeme", "WARST": "zapadno-argentinsko ljetno vrijeme", "WEZ": "zapadnoeuropsko standardno vrijeme", "ECT": "ekvadorsko vrijeme", "CDT": "središnje ljetno vrijeme", "HAT": "newfoundlandsko ljetno vrijeme", "∅∅∅": "amazonsko ljetno vrijeme", "SGT": "singapursko vrijeme", "AKDT": "aljaško ljetno vrijeme", "MYT": "malezijsko vrijeme", "ACWDT": "australsko središnje zapadno ljetno vrijeme", "WITA": "srednjoindonezijsko vrijeme", "MEZ": "srednjoeuropsko standardno vrijeme", "CHADT": "ljetno vrijeme Chathama", "JST": "japansko standardno vrijeme", "EAT": "istočnoafričko vrijeme", "HENOMX": "sjeverozapadno meksičko ljetno vrijeme", "UYT": "urugvajsko standardno vrijeme", "AST": "atlantsko standardno vrijeme", "ART": "argentinsko standardno vrijeme", "AEST": "istočnoaustralsko standardno vrijeme", "MESZ": "srednjoeuropsko ljetno vrijeme", "NZST": "novozelandsko standardno vrijeme", "CLST": "čileansko ljetno vrijeme", "TMT": "turkmenistansko standardno vrijeme", "CAT": "srednjoafričko vrijeme", "WIT": "istočnoindonezijsko vrijeme", "ARST": "argentinsko ljetno vrijeme", "AWST": "zapadnoaustralsko standardno vrijeme", "ACDT": "srednjoaustralsko ljetno vrijeme", "HNPM": "standardno vrijeme za Sveti Petar i Mikelon", "CHAST": "standardno vrijeme Chathama", "HNEG": "istočnogrenlandsko standardno vrijeme", "WAST": "zapadnoafričko ljetno vrijeme", "OESZ": "istočnoeuropsko ljetno vrijeme", "ADT": "atlantsko ljetno vrijeme", "WIB": "zapadnoindonezijsko vrijeme", "HNT": "newfoundlandsko standardno vrijeme", "HEOG": "zapadnogrenlandsko ljetno vrijeme", "LHDT": "ljetno vrijeme otoka Lord Howe", "ChST": "standardno vrijeme Chamorra", "HEEG": "istočnogrenlandsko ljetno vrijeme", "HNCU": "kubansko standardno vrijeme", "VET": "venezuelsko vrijeme", "BT": "butansko vrijeme", "HEPM": "ljetno vrijeme za Sveti Petar i Mikelon", "ACST": "srednjoaustralsko standardno vrijeme", "WAT": "zapadnoafričko standardno vrijeme", "COST": "kolumbijsko ljetno vrijeme", "HAST": "havajsko-aleutsko standardno vrijeme", "HKST": "hongkonško ljetno vrijeme", "CLT": "čileansko standardno vrijeme", "HNNOMX": "sjeverozapadno meksičko standardno vrijeme", "MST": "standardno makaosko vrijeme", "HECU": "kubansko ljetno vrijeme", "PDT": "pacifičko ljetno vrijeme", "ACWST": "australsko središnje zapadno standardno vrijeme", "HNOG": "zapadnogrenlandsko standardno vrijeme", "AEDT": "istočnoaustralsko ljetno vrijeme", "AWDT": "zapadnoaustralsko ljetno vrijeme", "BOT": "bolivijsko vrijeme", "OEZ": "istočnoeuropsko standardno vrijeme", "HNPMX": "meksičko pacifičko standardno vrijeme", "PST": "pacifičko standardno vrijeme", "HKT": "hongkonško standardno vrijeme", "MDT": "ljetno makaosko vrijeme"},
++ timezones: map[string]string{"WIB": "zapadnoindonezijsko vrijeme", "ARST": "argentinsko ljetno vrijeme", "IST": "indijsko vrijeme", "AEDT": "istočnoaustralsko ljetno vrijeme", "HNOG": "zapadnogrenlandsko standardno vrijeme", "MESZ": "srednjoeuropsko ljetno vrijeme", "TMST": "turkmenistansko ljetno vrijeme", "GMT": "univerzalno vrijeme", "HAT": "newfoundlandsko ljetno vrijeme", "WIT": "istočnoindonezijsko vrijeme", "WITA": "srednjoindonezijsko vrijeme", "JDT": "japansko ljetno vrijeme", "BT": "butansko vrijeme", "HECU": "kubansko ljetno vrijeme", "EST": "istočno standardno vrijeme", "EDT": "istočno ljetno vrijeme", "ART": "argentinsko standardno vrijeme", "HNT": "newfoundlandsko standardno vrijeme", "COT": "kolumbijsko standardno vrijeme", "PDT": "pacifičko ljetno vrijeme", "CHADT": "ljetno vrijeme Chathama", "AKDT": "aljaško ljetno vrijeme", "HKST": "hongkonško ljetno vrijeme", "CAT": "srednjoafričko vrijeme", "MEZ": "srednjoeuropsko standardno vrijeme", "AWDT": "zapadnoaustralsko ljetno vrijeme", "SAST": "južnoafričko vrijeme", "OEZ": "istočnoeuropsko standardno vrijeme", "HKT": "hongkonško standardno vrijeme", "SRT": "surinamsko vrijeme", "∅∅∅": "Acre ljetno vrijeme", "ACWDT": "australsko središnje zapadno ljetno vrijeme", "WESZ": "zapadnoeuropsko ljetno vrijeme", "HNCU": "kubansko standardno vrijeme", "TMT": "turkmenistansko standardno vrijeme", "NZST": "novozelandsko standardno vrijeme", "HAST": "havajsko-aleutsko standardno vrijeme", "ACDT": "srednjoaustralsko ljetno vrijeme", "CHAST": "standardno vrijeme Chathama", "HADT": "havajsko-aleutsko ljetno vrijeme", "AEST": "istočnoaustralsko standardno vrijeme", "AKST": "aljaško standardno vrijeme", "CST": "središnje standardno vrijeme", "ECT": "ekvadorsko vrijeme", "HEEG": "istočnogrenlandsko ljetno vrijeme", "WEZ": "zapadnoeuropsko standardno vrijeme", "GYT": "gvajansko vrijeme", "HNPMX": "meksičko pacifičko standardno vrijeme", "WAST": "zapadnoafričko ljetno vrijeme", "CDT": "središnje ljetno vrijeme", "AST": "atlantsko standardno vrijeme", "HENOMX": "sjeverozapadno meksičko ljetno vrijeme", "HEPM": "ljetno vrijeme za Sveti Petar i Mikelon", "UYT": "urugvajsko standardno vrijeme", "JST": "japansko standardno vrijeme", "PST": "pacifičko standardno vrijeme", "SGT": "singapursko vrijeme", "VET": "venezuelsko vrijeme", "WART": "zapadno-argentinsko standardno vrijeme", "MDT": "planinsko ljetno vrijeme", "ACST": "srednjoaustralsko standardno vrijeme", "AWST": "zapadnoaustralsko standardno vrijeme", "CLT": "čileansko standardno vrijeme", "NZDT": "novozelandsko ljetno vrijeme", "COST": "kolumbijsko ljetno vrijeme", "ADT": "atlantsko ljetno vrijeme", "BOT": "bolivijsko vrijeme", "EAT": "istočnoafričko vrijeme", "MYT": "malezijsko vrijeme", "MST": "planinsko standardno vrijeme", "GFT": "vrijeme Francuske Gvajane", "ChST": "standardno vrijeme Chamorra", "WAT": "zapadnoafričko standardno vrijeme", "OESZ": "istočnoeuropsko ljetno vrijeme", "WARST": "zapadno-argentinsko ljetno vrijeme", "HNNOMX": "sjeverozapadno meksičko standardno vrijeme", "HNPM": "standardno vrijeme za Sveti Petar i Mikelon", "ACWST": "australsko središnje zapadno standardno vrijeme", "UYST": "urugvajsko ljetno vrijeme", "HEPMX": "meksičko pacifičko ljetno vrijeme", "HEOG": "zapadnogrenlandsko ljetno vrijeme", "CLST": "čileansko ljetno vrijeme", "HNEG": "istočnogrenlandsko standardno vrijeme", "LHST": "standardno vrijeme otoka Lord Howe", "LHDT": "ljetno vrijeme otoka Lord Howe"},
+ }
+ }
+ 
+diff --git a/hr_BA/hr_BA.go b/hr_BA/hr_BA.go
+index 50ab93c..69ff52a 100644
+--- a/hr_BA/hr_BA.go
++++ b/hr_BA/hr_BA.go
+@@ -10,68 +10,46 @@ import (
+ )
+ 
+ type hr_BA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'hr_BA' locale
+ func New() locales.Translator {
+ return &hr_BA{
+- locale: "hr_BA",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "KM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "sij", "velj", "ožu", "tra", "svi", "lip", "srp", "kol", "ruj", "lis", "stu", "pro"},
+- monthsNarrow: []string{"", "1.", "2.", "3.", "4.", "5.", "6.", "7.", "8.", "9.", "10.", "11.", "12."},
+- monthsWide: []string{"", "siječnja", "veljače", "ožujka", "travnja", "svibnja", "lipnja", "srpnja", "kolovoza", "rujna", "listopada", "studenoga", "prosinca"},
+- daysAbbreviated: []string{"ned", "pon", "uto", "sri", "čet", "pet", "sub"},
+- daysNarrow: []string{"N", "P", "U", "S", "Č", "P", "S"},
+- daysShort: []string{"ned", "pon", "uto", "sri", "čet", "pet", "sub"},
+- daysWide: []string{"nedjelja", "ponedjeljak", "utorak", "srijeda", "četvrtak", "petak", "subota"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"pr. Kr.", "po. Kr."},
+- erasNarrow: []string{"pr.n.e.", "AD"},
+- erasWide: []string{"prije Krista", "poslije Krista"},
+- timezones: map[string]string{"MDT": "ljetno makaosko vrijeme", "SRT": "surinamsko vrijeme", "HNT": "newfoundlandsko standardno vrijeme", "AEDT": "istočnoaustralsko ljetno vrijeme", "WITA": "srednjoindonezijsko vrijeme", "MEZ": "srednjoeuropsko standardno vrijeme", "LHST": "standardno vrijeme otoka Lord Howe", "OESZ": "istočnoeuropsko ljetno vrijeme", "CLST": "čileansko ljetno vrijeme", "LHDT": "ljetno vrijeme otoka Lord Howe", "AWST": "zapadnoaustralsko standardno vrijeme", "ChST": "standardno vrijeme Chamorra", "PDT": "pacifičko ljetno vrijeme", "COST": "kolumbijsko ljetno vrijeme", "AKST": "aljaško standardno vrijeme", "WESZ": "zapadnoeuropsko ljetno vrijeme", "HEPM": "ljetno vrijeme za Sveti Petar i Mikelon", "NZDT": "novozelandsko ljetno vrijeme", "CHADT": "ljetno vrijeme Chathama", "WART": "zapadno-argentinsko standardno vrijeme", "MESZ": "srednjoeuropsko ljetno vrijeme", "JST": "japansko standardno vrijeme", "EST": "istočno standardno vrijeme", "COT": "kolumbijsko standardno vrijeme", "ARST": "argentinsko ljetno vrijeme", "CLT": "čileansko standardno vrijeme", "TMST": "turkmenistansko ljetno vrijeme", "WAST": "zapadnoafričko ljetno vrijeme", "WAT": "zapadnoafričko standardno vrijeme", "MST": "standardno makaosko vrijeme", "CDT": "središnje ljetno vrijeme", "HEEG": "istočnogrenlandsko ljetno vrijeme", "ACST": "srednjoaustralsko standardno vrijeme", "EDT": "istočno ljetno vrijeme", "UYT": "urugvajsko standardno vrijeme", "AKDT": "aljaško ljetno vrijeme", "PST": "pacifičko standardno vrijeme", "HAT": "newfoundlandsko ljetno vrijeme", "IST": "indijsko vrijeme", "∅∅∅": "peruansko ljetno vrijeme", "HKT": "hongkonško standardno vrijeme", "CHAST": "standardno vrijeme Chathama", "AEST": "istočnoaustralsko standardno vrijeme", "HEPMX": "meksičko pacifičko ljetno vrijeme", "UYST": "urugvajsko ljetno vrijeme", "HAST": "havajsko-aleutsko standardno vrijeme", "VET": "venezuelsko vrijeme", "WIT": "istočnoindonezijsko vrijeme", "SAST": "južnoafričko vrijeme", "HNCU": "kubansko standardno vrijeme", "HECU": "kubansko ljetno vrijeme", "WIB": "zapadnoindonezijsko vrijeme", "HNOG": "zapadnogrenlandsko standardno vrijeme", "HKST": "hongkonško ljetno vrijeme", "HNPM": "standardno vrijeme za Sveti Petar i Mikelon", "NZST": "novozelandsko standardno vrijeme", "ECT": "ekvadorsko vrijeme", "HNPMX": "meksičko pacifičko standardno vrijeme", "ART": "argentinsko standardno vrijeme", "JDT": "japansko ljetno vrijeme", "BOT": "bolivijsko vrijeme", "SGT": "singapursko vrijeme", "GMT": "univerzalno vrijeme", "BT": "butansko vrijeme", "AWDT": "zapadnoaustralsko ljetno vrijeme", "WARST": "zapadno-argentinsko ljetno vrijeme", "OEZ": "istočnoeuropsko standardno vrijeme", "HENOMX": "sjeverozapadno meksičko ljetno vrijeme", "CST": "središnje standardno vrijeme", "HADT": "havajsko-aleutsko ljetno vrijeme", "HEOG": "zapadnogrenlandsko ljetno vrijeme", "WEZ": "zapadnoeuropsko standardno vrijeme", "CAT": "srednjoafričko vrijeme", "AST": "atlantsko standardno vrijeme", "ADT": "atlantsko ljetno vrijeme", "TMT": "turkmenistansko standardno vrijeme", "ACDT": "srednjoaustralsko ljetno vrijeme", "HNNOMX": "sjeverozapadno meksičko standardno vrijeme", "GYT": "gvajansko vrijeme", "MYT": "malezijsko vrijeme", "ACWST": "australsko središnje zapadno standardno vrijeme", "ACWDT": "australsko središnje zapadno ljetno vrijeme", "HNEG": "istočnogrenlandsko standardno vrijeme", "GFT": "vrijeme Francuske Gvajane", "EAT": "istočnoafričko vrijeme"},
++ locale: "hr_BA",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "KM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ daysNarrow: []string{"N", "P", "U", "S", "Č", "P", "S"},
++ timezones: map[string]string{"COST": "COST", "JST": "JST", "AWDT": "AWDT", "WESZ": "WESZ", "BT": "BT", "AEST": "AEST", "UYT": "UYT", "COT": "COT", "ECT": "ECT", "ART": "ART", "HNPM": "HNPM", "EDT": "EDT", "HNPMX": "HNPMX", "AKDT": "AKDT", "WART": "WART", "CHAST": "CHAST", "PDT": "PDT", "WAT": "WAT", "HAT": "HAT", "NZDT": "NZDT", "AST": "AST", "ACWST": "ACWST", "AWST": "AWST", "AKST": "AKST", "OESZ": "OESZ", "GYT": "GYT", "BOT": "BOT", "MESZ": "MESZ", "HEPM": "HEPM", "ARST": "ARST", "CHADT": "CHADT", "PST": "PST", "∅∅∅": "∅∅∅", "CAT": "CAT", "CDT": "CDT", "ACWDT": "ACWDT", "UYST": "UYST", "SGT": "SGT", "WIT": "WIT", "HKST": "HKST", "MST": "MST", "EAT": "EAT", "HADT": "HADT", "JDT": "JDT", "TMST": "TMST", "WITA": "WITA", "WIB": "WIB", "MYT": "MYT", "HNOG": "HNOG", "HEOG": "HEOG", "HKT": "HKT", "CST": "CST", "MEZ": "MEZ", "WEZ": "WEZ", "EST": "EST", "CLST": "CLST", "HECU": "HECU", "TMT": "TMT", "HEEG": "HEEG", "LHDT": "LHDT", "OEZ": "OEZ", "WARST": "WARST", "CLT": "CLT", "NZST": "NZST", "ChST": "ChST", "VET": "VET", "GFT": "GFT", "ADT": "ADT", "ACST": "ACST", "LHST": "LHST", "HNNOMX": "HNNOMX", "ACDT": "ACDT", "HNT": "HNT", "SAST": "SAST", "MDT": "MDT", "HAST": "HAST", "HNEG": "HNEG", "WAST": "WAST", "SRT": "SRT", "HENOMX": "HENOMX", "AEDT": "AEDT", "HEPMX": "HEPMX", "GMT": "GMT", "IST": "IST", "HNCU": "HNCU"},
+ }
+ }
+ 
+@@ -101,8 +79,8 @@ func (hr *hr_BA) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ n := math.Abs(num)
+ i := int64(n)
+ f := locales.F(n, v)
+- iMod10 := i % 10
+ iMod100 := i % 100
++ iMod10 := i % 10
+ fMod10 := f % 10
+ fMod100 := f % 100
+ 
+@@ -155,7 +133,7 @@ func (hr *hr_BA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (hr *hr_BA) MonthsAbbreviated() []string {
+- return hr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -165,7 +143,7 @@ func (hr *hr_BA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (hr *hr_BA) MonthsNarrow() []string {
+- return hr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -175,7 +153,7 @@ func (hr *hr_BA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (hr *hr_BA) MonthsWide() []string {
+- return hr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -221,73 +199,13 @@ func (hr *hr_BA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'hr_BA' and handles both Whole and Real numbers based on 'v'
+ func (hr *hr_BA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, hr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, hr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'hr_BA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (hr *hr_BA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, hr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, hr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'hr_BA'
+@@ -295,56 +213,7 @@ func (hr *hr_BA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := hr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, hr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, hr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, hr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, hr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'hr_BA'
+@@ -353,63 +222,7 @@ func (hr *hr_BA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := hr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, hr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, hr.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, hr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, hr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, hr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'hr_BA'
+@@ -438,19 +251,6 @@ func (hr *hr_BA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, hr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -459,19 +259,6 @@ func (hr *hr_BA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, hr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -480,21 +267,6 @@ func (hr *hr_BA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, hr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, hr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -503,19 +275,6 @@ func (hr *hr_BA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -524,26 +283,6 @@ func (hr *hr_BA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -552,30 +291,6 @@ func (hr *hr_BA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -584,36 +299,5 @@ func (hr *hr_BA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := hr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/hr_HR/hr_HR.go b/hr_HR/hr_HR.go
+index e488be6..639c2a0 100644
+--- a/hr_HR/hr_HR.go
++++ b/hr_HR/hr_HR.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type hr_HR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'hr_HR' locale
+ func New() locales.Translator {
+ return &hr_HR{
+- locale: "hr_HR",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "sij", "velj", "ožu", "tra", "svi", "lip", "srp", "kol", "ruj", "lis", "stu", "pro"},
+- monthsNarrow: []string{"", "1.", "2.", "3.", "4.", "5.", "6.", "7.", "8.", "9.", "10.", "11.", "12."},
+- monthsWide: []string{"", "siječnja", "veljače", "ožujka", "travnja", "svibnja", "lipnja", "srpnja", "kolovoza", "rujna", "listopada", "studenoga", "prosinca"},
+- daysAbbreviated: []string{"ned", "pon", "uto", "sri", "čet", "pet", "sub"},
+- daysNarrow: []string{"N", "P", "U", "S", "Č", "P", "S"},
+- daysShort: []string{"ned", "pon", "uto", "sri", "čet", "pet", "sub"},
+- daysWide: []string{"nedjelja", "ponedjeljak", "utorak", "srijeda", "četvrtak", "petak", "subota"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"pr. Kr.", "po. Kr."},
+- erasNarrow: []string{"pr.n.e.", "AD"},
+- erasWide: []string{"prije Krista", "poslije Krista"},
+- timezones: map[string]string{"UYT": "urugvajsko standardno vrijeme", "VET": "venezuelsko vrijeme", "HAT": "newfoundlandsko ljetno vrijeme", "CHAST": "standardno vrijeme Chathama", "SGT": "singapursko vrijeme", "WART": "zapadno-argentinsko standardno vrijeme", "MST": "standardno makaosko vrijeme", "NZDT": "novozelandsko ljetno vrijeme", "ACST": "srednjoaustralsko standardno vrijeme", "ACDT": "srednjoaustralsko ljetno vrijeme", "∅∅∅": "peruansko ljetno vrijeme", "ChST": "standardno vrijeme Chamorra", "CLT": "čileansko standardno vrijeme", "HEPMX": "meksičko pacifičko ljetno vrijeme", "ADT": "atlantsko ljetno vrijeme", "WIB": "zapadnoindonezijsko vrijeme", "HEPM": "ljetno vrijeme za Sveti Petar i Mikelon", "CAT": "srednjoafričko vrijeme", "MYT": "malezijsko vrijeme", "WEZ": "zapadnoeuropsko standardno vrijeme", "HKST": "hongkonško ljetno vrijeme", "CDT": "središnje ljetno vrijeme", "ARST": "argentinsko ljetno vrijeme", "SAST": "južnoafričko vrijeme", "GFT": "vrijeme Francuske Gvajane", "MDT": "ljetno makaosko vrijeme", "COST": "kolumbijsko ljetno vrijeme", "HAST": "havajsko-aleutsko standardno vrijeme", "WIT": "istočnoindonezijsko vrijeme", "PST": "pacifičko standardno vrijeme", "ART": "argentinsko standardno vrijeme", "AWST": "zapadnoaustralsko standardno vrijeme", "WARST": "zapadno-argentinsko ljetno vrijeme", "PDT": "pacifičko ljetno vrijeme", "ACWST": "australsko središnje zapadno standardno vrijeme", "CHADT": "ljetno vrijeme Chathama", "IST": "indijsko vrijeme", "JST": "japansko standardno vrijeme", "HNPMX": "meksičko pacifičko standardno vrijeme", "HECU": "kubansko ljetno vrijeme", "AKST": "aljaško standardno vrijeme", "HADT": "havajsko-aleutsko ljetno vrijeme", "MEZ": "srednjoeuropsko standardno vrijeme", "LHST": "standardno vrijeme otoka Lord Howe", "CLST": "čileansko ljetno vrijeme", "TMST": "turkmenistansko ljetno vrijeme", "ECT": "ekvadorsko vrijeme", "NZST": "novozelandsko standardno vrijeme", "HEEG": "istočnogrenlandsko ljetno vrijeme", "HNPM": "standardno vrijeme za Sveti Petar i Mikelon", "HNCU": "kubansko standardno vrijeme", "EST": "istočno standardno vrijeme", "CST": "središnje standardno vrijeme", "BT": "butansko vrijeme", "SRT": "surinamsko vrijeme", "ACWDT": "australsko središnje zapadno ljetno vrijeme", "HNNOMX": "sjeverozapadno meksičko standardno vrijeme", "HENOMX": "sjeverozapadno meksičko ljetno vrijeme", "AWDT": "zapadnoaustralsko ljetno vrijeme", "BOT": "bolivijsko vrijeme", "HNEG": "istočnogrenlandsko standardno vrijeme", "TMT": "turkmenistansko standardno vrijeme", "OESZ": "istočnoeuropsko ljetno vrijeme", "EDT": "istočno ljetno vrijeme", "AST": "atlantsko standardno vrijeme", "WESZ": "zapadnoeuropsko ljetno vrijeme", "AEST": "istočnoaustralsko standardno vrijeme", "HKT": "hongkonško standardno vrijeme", "WITA": "srednjoindonezijsko vrijeme", "LHDT": "ljetno vrijeme otoka Lord Howe", "WAST": "zapadnoafričko ljetno vrijeme", "GMT": "univerzalno vrijeme", "AKDT": "aljaško ljetno vrijeme", "GYT": "gvajansko vrijeme", "JDT": "japansko ljetno vrijeme", "EAT": "istočnoafričko vrijeme", "AEDT": "istočnoaustralsko ljetno vrijeme", "WAT": "zapadnoafričko standardno vrijeme", "COT": "kolumbijsko standardno vrijeme", "UYST": "urugvajsko ljetno vrijeme", "HNT": "newfoundlandsko standardno vrijeme", "HNOG": "zapadnogrenlandsko standardno vrijeme", "HEOG": "zapadnogrenlandsko ljetno vrijeme", "MESZ": "srednjoeuropsko ljetno vrijeme", "OEZ": "istočnoeuropsko standardno vrijeme"},
++ locale: "hr_HR",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MST": "MST", "HNPM": "HNPM", "WEZ": "WEZ", "WAT": "WAT", "CLST": "CLST", "CST": "CST", "ART": "ART", "SRT": "SRT", "UYST": "UYST", "PST": "PST", "HNPMX": "HNPMX", "WIT": "WIT", "GYT": "GYT", "TMST": "TMST", "EAT": "EAT", "AWST": "AWST", "LHST": "LHST", "ACWST": "ACWST", "SGT": "SGT", "HKT": "HKT", "HEEG": "HEEG", "HEPMX": "HEPMX", "AKST": "AKST", "ADT": "ADT", "MEZ": "MEZ", "HAT": "HAT", "HNEG": "HNEG", "BT": "BT", "HNOG": "HNOG", "HKST": "HKST", "MDT": "MDT", "MYT": "MYT", "CHADT": "CHADT", "WIB": "WIB", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "AEDT": "AEDT", "UYT": "UYT", "VET": "VET", "GFT": "GFT", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "COT": "COT", "EST": "EST", "NZST": "NZST", "ACWDT": "ACWDT", "HNCU": "HNCU", "WAST": "WAST", "OESZ": "OESZ", "WITA": "WITA", "HENOMX": "HENOMX", "MESZ": "MESZ", "ACST": "ACST", "ACDT": "ACDT", "HEPM": "HEPM", "AWDT": "AWDT", "AKDT": "AKDT", "COST": "COST", "ECT": "ECT", "CDT": "CDT", "ARST": "ARST", "BOT": "BOT", "JST": "JST", "AEST": "AEST", "SAST": "SAST", "EDT": "EDT", "TMT": "TMT", "CAT": "CAT", "GMT": "GMT", "AST": "AST", "WESZ": "WESZ", "WART": "WART", "HAST": "HAST", "JDT": "JDT", "CHAST": "CHAST", "OEZ": "OEZ", "HNT": "HNT", "ChST": "ChST", "IST": "IST", "PDT": "PDT", "CLT": "CLT", "HADT": "HADT", "HECU": "HECU", "WARST": "WARST"},
+ }
+ }
+ 
+@@ -101,8 +78,8 @@ func (hr *hr_HR) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ n := math.Abs(num)
+ i := int64(n)
+ f := locales.F(n, v)
+- iMod10 := i % 10
+ iMod100 := i % 100
++ iMod10 := i % 10
+ fMod10 := f % 10
+ fMod100 := f % 100
+ 
+@@ -155,7 +132,7 @@ func (hr *hr_HR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (hr *hr_HR) MonthsAbbreviated() []string {
+- return hr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -165,7 +142,7 @@ func (hr *hr_HR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (hr *hr_HR) MonthsNarrow() []string {
+- return hr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -175,7 +152,7 @@ func (hr *hr_HR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (hr *hr_HR) MonthsWide() []string {
+- return hr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -221,73 +198,13 @@ func (hr *hr_HR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'hr_HR' and handles both Whole and Real numbers based on 'v'
+ func (hr *hr_HR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, hr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, hr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'hr_HR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (hr *hr_HR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, hr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, hr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'hr_HR'
+@@ -295,56 +212,7 @@ func (hr *hr_HR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := hr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, hr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, hr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, hr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, hr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'hr_HR'
+@@ -353,63 +221,7 @@ func (hr *hr_HR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := hr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, hr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, hr.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, hr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, hr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, hr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'hr_HR'
+@@ -417,29 +229,6 @@ func (hr *hr_HR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -448,19 +237,6 @@ func (hr *hr_HR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, hr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -469,19 +245,6 @@ func (hr *hr_HR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, hr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -490,21 +253,6 @@ func (hr *hr_HR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, hr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, hr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -513,19 +261,6 @@ func (hr *hr_HR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -534,26 +269,6 @@ func (hr *hr_HR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -562,30 +277,6 @@ func (hr *hr_HR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -594,36 +285,5 @@ func (hr *hr_HR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := hr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/hsb/hsb.go b/hsb/hsb.go
+index ed30a21..d8ad6f3 100644
+--- a/hsb/hsb.go
++++ b/hsb/hsb.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"př.Chr.n.", "po Chr.n."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"před Chrystowym narodźenjom", "po Chrystowym narodźenju"},
+- timezones: map[string]string{"HNCU": "kubaski standardny čas", "MST": "MST", "AST": "atlantiski standardny čas", "WIB": "zapadoindoneski čas", "ACWDT": "sjedźozapadny awstralski lětni čas", "NZDT": "nowoseelandski lětni čas", "CAT": "centralnoafriski čas", "GMT": "Greenwichski čas", "EST": "sewjeroameriski wuchodny standardny čas", "ADT": "atlantiski lětni čas", "AKDT": "alaskaski lětni čas", "VET": "venezuelski čas", "ART": "argentinski standardny čas", "OEZ": "wuchodoeuropski standardny čas", "HNNOMX": "mexiski sewjerozapadny standardny čas", "HADT": "hawaiisko-aleutski lětni čas", "HKST": "Hongkongski lětni čas", "JST": "japanski standardny čas", "BOT": "boliwiski čas", "ACDT": "srjedźoawstralski lětni čas", "LHST": "standardny čas kupy Lord-Howe", "LHDT": "lětni čas kupy Lord-Howe", "CHAST": "chathamski standardny čas", "COST": "kolumbiski lětni čas", "MDT": "MDT", "WEZ": "zapadoeuropski standardny čas", "WESZ": "zapadoeuropski lětni čas", "MEZ": "srjedźoeuropski standardny čas", "WARST": "zapadoargentinski lětni čas", "WITA": "srjedźoindoneski čas", "SAST": "južnoafriski čas", "SGT": "Singapurski čas", "GYT": "guyanski čas", "HNEG": "wuchodogrönlandski standardny čas", "MESZ": "srjedźoeuropski lětni čas", "MYT": "malajziski čas", "WIT": "wuchodoindoneski", "PDT": "sewjeroameriski pacifiski lětni čas", "ACWST": "srjedźozapadny awstralski standardny čas", "HNT": "nowofundlandski standardny čas", "AEDT": "wuchodoawstralski lětni čas", "HEPM": "lětni čas kupow St. Pierre a Miquelon", "CHADT": "chathamski lětni čas", "∅∅∅": "peruski lětni čas", "PST": "sewjeroameriski pacifiski standardny čas", "AWDT": "zapadoawstralski lětni čas", "ACST": "srjedźoawstralski standardny čas", "WAT": "zapadoafriski standardny čas", "OESZ": "wuchodoeuropski lětni čas", "UYT": "uruguayski standardny čas", "AKST": "alaskaski standardny čas", "CLST": "chilski lětni čas", "EAT": "wuchodoafriski čas", "BT": "bhutanski čas", "ARST": "argentinski lětni čas", "HEOG": "zapadogrönlandski lětni čas", "AWST": "zapadoawstralski standardny čas", "HNPM": "standardny čas kupow St. Pierre a Miquelon", "IST": "indiski čas", "WAST": "zapadoafriski lětni čas", "HECU": "kubaski lětni čas", "SRT": "surinamski čas", "HAT": "nowofundlandski lětni čas", "TMT": "turkmenski standardny čas", "HEPMX": "mexiski pacifiski lětni čas", "CDT": "sewjeroameriski centralny lětni čas", "HAST": "hawaiisko-aleutski standardny čas", "NZST": "nowoseelandski standardny čas", "ECT": "ekwadorski čas", "HNOG": "zapadogrönlandski standardny čas", "JDT": "japanski lětni čas", "CLT": "chilski standardny čas", "HEEG": "wuchodogrönlandski lětni čas", "GFT": "francoskoguyanski čas", "HENOMX": "mexiski sewjerozapadny lětni čas", "EDT": "sewjeroameriski wuchodny lětni čas", "HNPMX": "mexiski pacifiski standardny čas", "UYST": "uruguayski lětni čas", "CST": "sewjeroameriski centralny standardny čas", "TMST": "turkmenski lětni čas", "WART": "zapadoargentinski standardny čas", "COT": "kolumbiski standardny čas", "AEST": "wuchodoawstralski standardny čas", "HKT": "Hongkongski standardny čas", "ChST": "chamorroski čas"},
++ timezones: map[string]string{"CDT": "sewjeroameriski centralny lětni čas", "HADT": "hawaiisko-aleutski lětni čas", "BT": "bhutanski čas", "GYT": "guyanski čas", "AST": "atlantiski standardny čas", "SRT": "surinamski čas", "AWST": "zapadoawstralski standardny čas", "AWDT": "zapadoawstralski lětni čas", "HNPM": "standardny čas kupow St. Pierre a Miquelon", "JST": "japanski standardny čas", "WART": "zapadoargentinski standardny čas", "CLT": "chilski standardny čas", "PST": "sewjeroameriski pacifiski standardny čas", "OESZ": "wuchodoeuropski lětni čas", "SAST": "južnoafriski čas", "∅∅∅": "acorski lětni čas", "MDT": "MDT", "IST": "indiski čas", "HKT": "Hongkongski standardny čas", "NZST": "nowoseelandski standardny čas", "LHST": "standardny čas kupy Lord-Howe", "ACWDT": "sjedźozapadny awstralski lětni čas", "CHADT": "chathamski lětni čas", "AKST": "alaskaski standardny čas", "HNT": "nowofundlandski standardny čas", "EST": "sewjeroameriski wuchodny standardny čas", "BOT": "boliwiski čas", "HNNOMX": "mexiski sewjerozapadny standardny čas", "HEPM": "lětni čas kupow St. Pierre a Miquelon", "GFT": "francoskoguyanski čas", "COT": "kolumbiski standardny čas", "CAT": "centralnoafriski čas", "MESZ": "srjedźoeuropski lětni čas", "ACDT": "srjedźoawstralski lětni čas", "HEEG": "wuchodogrönlandski lětni čas", "JDT": "japanski lětni čas", "VET": "venezuelski čas", "HAT": "nowofundlandski lětni čas", "HNOG": "zapadogrönlandski standardny čas", "ChST": "chamorroski čas", "MYT": "malajziski čas", "WEZ": "zapadoeuropski standardny čas", "WAT": "zapadoafriski standardny čas", "TMST": "turkmenski lětni čas", "WITA": "srjedźoindoneski čas", "ARST": "argentinski lětni čas", "HNEG": "wuchodogrönlandski standardny čas", "CHAST": "chathamski standardny čas", "HNCU": "kubaski standardny čas", "WIT": "wuchodoindoneski", "WARST": "zapadoargentinski lětni čas", "MST": "MST", "ART": "argentinski standardny čas", "EAT": "wuchodoafriski čas", "AEST": "wuchodoawstralski standardny čas", "AEDT": "wuchodoawstralski lětni čas", "UYT": "uruguayski standardny čas", "HNPMX": "mexiski pacifiski standardny čas", "COST": "kolumbiski lětni čas", "HEPMX": "mexiski pacifiski lětni čas", "NZDT": "nowoseelandski lětni čas", "HAST": "hawaiisko-aleutski standardny čas", "ACST": "srjedźoawstralski standardny čas", "LHDT": "lětni čas kupy Lord-Howe", "ACWST": "srjedźozapadny awstralski standardny čas", "UYST": "uruguayski lětni čas", "SGT": "Singapurski čas", "AKDT": "alaskaski lětni čas", "CLST": "chilski lětni čas", "HECU": "kubaski lětni čas", "HKST": "Hongkongski lětni čas", "TMT": "turkmenski standardny čas", "CST": "sewjeroameriski centralny standardny čas", "WIB": "zapadoindoneski čas", "EDT": "sewjeroameriski wuchodny lětni čas", "ECT": "ekwadorski čas", "HENOMX": "mexiski sewjerozapadny lětni čas", "WESZ": "zapadoeuropski lětni čas", "WAST": "zapadoafriski lětni čas", "ADT": "atlantiski lětni čas", "GMT": "Greenwichski čas", "MEZ": "srjedźoeuropski standardny čas", "PDT": "sewjeroameriski pacifiski lětni čas", "OEZ": "wuchodoeuropski standardny čas", "HEOG": "zapadogrönlandski lětni čas"},
+ }
+ }
+ 
+diff --git a/hsb_DE/hsb_DE.go b/hsb_DE/hsb_DE.go
+index d6bdbd8..97e4b3f 100644
+--- a/hsb_DE/hsb_DE.go
++++ b/hsb_DE/hsb_DE.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type hsb_DE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'hsb_DE' locale
+ func New() locales.Translator {
+ return &hsb_DE{
+- locale: "hsb_DE",
+- pluralsCardinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "měr.", "apr.", "mej.", "jun.", "jul.", "awg.", "sep.", "okt.", "now.", "dec."},
+- monthsNarrow: []string{"", "j", "f", "m", "a", "m", "j", "j", "a", "s", "o", "n", "d"},
+- monthsWide: []string{"", "januara", "februara", "měrca", "apryla", "meje", "junija", "julija", "awgusta", "septembra", "oktobra", "nowembra", "decembra"},
+- daysAbbreviated: []string{"nje", "pón", "wut", "srj", "štw", "pja", "sob"},
+- daysNarrow: []string{"n", "p", "w", "s", "š", "p", "s"},
+- daysShort: []string{"nj", "pó", "wu", "sr", "št", "pj", "so"},
+- daysWide: []string{"njedźela", "póndźela", "wutora", "srjeda", "štwórtk", "pjatk", "sobota"},
+- periodsAbbreviated: []string{"dopołdnja", "popołdnju"},
+- periodsNarrow: []string{"dop.", "pop."},
+- periodsWide: []string{"dopołdnja", "popołdnju"},
+- erasAbbreviated: []string{"př.Chr.n.", "po Chr.n."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"před Chrystowym narodźenjom", "po Chrystowym narodźenju"},
+- timezones: map[string]string{"HAT": "nowofundlandski lětni čas", "ARST": "argentinski lětni čas", "HNPM": "standardny čas kupow St. Pierre a Miquelon", "NZDT": "nowoseelandski lětni čas", "JST": "japanski standardny čas", "BT": "bhutanski čas", "WEZ": "zapadoeuropski standardny čas", "WESZ": "zapadoeuropski lětni čas", "WIB": "zapadoindoneski čas", "TMST": "turkmenski lětni čas", "OESZ": "wuchodoeuropski lětni čas", "HNCU": "kubaski standardny čas", "AKDT": "alaskaski lětni čas", "HAST": "hawaiisko-aleutski standardny čas", "AWDT": "zapadoawstralski lětni čas", "MEZ": "srjedźoeuropski standardny čas", "TMT": "turkmenski standardny čas", "ACDT": "srjedźoawstralski lětni čas", "HNT": "nowofundlandski standardny čas", "BOT": "boliwiski čas", "HEEG": "wuchodogrönlandski lětni čas", "HKT": "Hongkongski standardny čas", "EST": "sewjeroameriski wuchodny standardny čas", "MYT": "malajziski čas", "CHAST": "chathamski standardny čas", "SGT": "Singapurski čas", "HECU": "kubaski lětni čas", "VET": "venezuelski čas", "AEDT": "wuchodoawstralski lětni čas", "HKST": "Hongkongski lětni čas", "∅∅∅": "Amaconaski lětni čas", "ACST": "srjedźoawstralski standardny čas", "OEZ": "wuchodoeuropski standardny čas", "SRT": "surinamski čas", "HEOG": "zapadogrönlandski lětni čas", "LHDT": "lětni čas kupy Lord-Howe", "AST": "atlantiski standardny čas", "ACWDT": "sjedźozapadny awstralski lětni čas", "CHADT": "chathamski lětni čas", "HNNOMX": "mexiski sewjerozapadny standardny čas", "EAT": "wuchodoafriski čas", "COST": "kolumbiski lětni čas", "UYT": "uruguayski standardny čas", "WITA": "srjedźoindoneski čas", "IST": "indiski čas", "CLST": "chilski lětni čas", "WART": "zapadoargentinski standardny čas", "EDT": "sewjeroameriski wuchodny lětni čas", "MST": "MST", "UYST": "uruguayski lětni čas", "AKST": "alaskaski standardny čas", "HADT": "hawaiisko-aleutski lětni čas", "JDT": "japanski lětni čas", "WAST": "zapadoafriski lětni čas", "CST": "sewjeroameriski centralny standardny čas", "ADT": "atlantiski lětni čas", "HNPMX": "mexiski pacifiski standardny čas", "AEST": "wuchodoawstralski standardny čas", "CAT": "centralnoafriski čas", "WAT": "zapadoafriski standardny čas", "GMT": "Greenwichski čas", "HEPMX": "mexiski pacifiski lětni čas", "CDT": "sewjeroameriski centralny lětni čas", "GYT": "guyanski čas", "HEPM": "lětni čas kupow St. Pierre a Miquelon", "SAST": "južnoafriski čas", "ChST": "chamorroski čas", "HENOMX": "mexiski sewjerozapadny lětni čas", "AWST": "zapadoawstralski standardny čas", "MESZ": "srjedźoeuropski lětni čas", "ECT": "ekwadorski čas", "WIT": "wuchodoindoneski", "ACWST": "srjedźozapadny awstralski standardny čas", "HNEG": "wuchodogrönlandski standardny čas", "CLT": "chilski standardny čas", "MDT": "MDT", "PST": "sewjeroameriski pacifiski standardny čas", "ART": "argentinski standardny čas", "HNOG": "zapadogrönlandski standardny čas", "GFT": "francoskoguyanski čas", "WARST": "zapadoargentinski lětni čas", "COT": "kolumbiski standardny čas", "PDT": "sewjeroameriski pacifiski lětni čas", "LHST": "standardny čas kupy Lord-Howe", "NZST": "nowoseelandski standardny čas"},
++ locale: "hsb_DE",
++ pluralsCardinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WITA": "WITA", "HADT": "HADT", "HEEG": "HEEG", "OEZ": "OEZ", "MST": "MST", "UYST": "UYST", "AKDT": "AKDT", "WAT": "WAT", "CST": "CST", "NZST": "NZST", "MESZ": "MESZ", "AWDT": "AWDT", "LHST": "LHST", "HEPM": "HEPM", "AEST": "AEST", "CAT": "CAT", "GYT": "GYT", "TMT": "TMT", "SGT": "SGT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "EDT": "EDT", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "CHADT": "CHADT", "GFT": "GFT", "HEOG": "HEOG", "EST": "EST", "ARST": "ARST", "ACST": "ACST", "VET": "VET", "HKST": "HKST", "CLST": "CLST", "AST": "AST", "PST": "PST", "ACWST": "ACWST", "AKST": "AKST", "COST": "COST", "CDT": "CDT", "MDT": "MDT", "HNEG": "HNEG", "HENOMX": "HENOMX", "HNCU": "HNCU", "ECT": "ECT", "BOT": "BOT", "AWST": "AWST", "CHAST": "CHAST", "WIT": "WIT", "WEZ": "WEZ", "HAT": "HAT", "TMST": "TMST", "MEZ": "MEZ", "MYT": "MYT", "JST": "JST", "JDT": "JDT", "UYT": "UYT", "WESZ": "WESZ", "SAST": "SAST", "CLT": "CLT", "WIB": "WIB", "ADT": "ADT", "ChST": "ChST", "SRT": "SRT", "EAT": "EAT", "HNNOMX": "HNNOMX", "HNT": "HNT", "ACWDT": "ACWDT", "OESZ": "OESZ", "WARST": "WARST", "WART": "WART", "NZDT": "NZDT", "GMT": "GMT", "HAST": "HAST", "IST": "IST", "PDT": "PDT", "BT": "BT", "WAST": "WAST", "COT": "COT", "ART": "ART", "ACDT": "ACDT", "LHDT": "LHDT", "HECU": "HECU", "HNOG": "HNOG", "HKT": "HKT"},
+ }
+ }
+ 
+@@ -134,7 +109,7 @@ func (hsb *hsb_DE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (hsb *hsb_DE) MonthsAbbreviated() []string {
+- return hsb.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -144,7 +119,7 @@ func (hsb *hsb_DE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (hsb *hsb_DE) MonthsNarrow() []string {
+- return hsb.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -154,7 +129,7 @@ func (hsb *hsb_DE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (hsb *hsb_DE) MonthsWide() []string {
+- return hsb.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -200,75 +175,13 @@ func (hsb *hsb_DE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'hsb_DE' and handles both Whole and Real numbers based on 'v'
+ func (hsb *hsb_DE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hsb.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, hsb.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, hsb.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'hsb_DE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (hsb *hsb_DE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hsb.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, hsb.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, hsb.percentSuffix...)
+-
+- b = append(b, hsb.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'hsb_DE'
+@@ -276,56 +189,7 @@ func (hsb *hsb_DE) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := hsb.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hsb.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, hsb.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, hsb.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, hsb.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, hsb.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'hsb_DE'
+@@ -334,63 +198,7 @@ func (hsb *hsb_DE) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := hsb.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hsb.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, hsb.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, hsb.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, hsb.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, hsb.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, hsb.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'hsb_DE'
+@@ -398,17 +206,6 @@ func (hsb *hsb_DE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -417,17 +214,6 @@ func (hsb *hsb_DE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -436,17 +222,6 @@ func (hsb *hsb_DE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, hsb.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -455,19 +230,6 @@ func (hsb *hsb_DE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, hsb.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, hsb.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -476,17 +238,6 @@ func (hsb *hsb_DE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hsb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20, 0x68, 0x6f, 0x64, 0xc5, 0xba}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -495,22 +246,6 @@ func (hsb *hsb_DE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hsb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hsb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -519,26 +254,6 @@ func (hsb *hsb_DE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hsb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hsb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -547,30 +262,5 @@ func (hsb *hsb_DE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hsb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hsb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := hsb.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/hu/hu.go b/hu/hu.go
+index 440e200..361ab0a 100644
+--- a/hu/hu.go
++++ b/hu/hu.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"i. e.", "i. sz."},
+ erasNarrow: []string{"ie.", "isz."},
+ erasWide: []string{"időszámításunk előtt", "időszámításunk szerint"},
+- timezones: map[string]string{"HNOG": "nyugat-grönlandi téli idő", "CDT": "középső államokbeli nyári idő", "UYST": "uruguayi nyári idő", "TMST": "türkmenisztáni nyári idő", "WAT": "nyugat-afrikai téli idő", "OEZ": "kelet-európai téli idő", "HENOMX": "északnyugat-mexikói nyári idő", "AKST": "alaszkai zónaidő", "AKDT": "alaszkai nyári idő", "WIT": "kelet-indonéziai idő", "ACWDT": "közép-nyugat-ausztráliai nyári idő", "WITA": "közép-indonéziai idő", "MEZ": "közép-európai téli idő", "IST": "indiai téli idő", "JDT": "japán nyári idő", "ACWST": "közép-nyugat-ausztráliai téli idő", "HNT": "új-fundlandi zónaidő", "NZST": "új-zélandi téli idő", "EAT": "kelet-afrikai téli idő", "ECT": "ecuadori téli idő", "MYT": "malajziai idő", "UYT": "uruguayi téli idő", "WEZ": "nyugat-európai téli idő", "HAT": "új-fundlandi nyári idő", "HNPM": "Saint Pierre és Miquelon-i zónaidő", "MESZ": "közép-európai nyári idő", "COT": "kolumbiai téli idő", "EDT": "keleti államokbeli nyári idő", "HAST": "hawaii-aleuti téli idő", "SRT": "szurinámi idő", "HNPMX": "mexikói csendes-óceáni zónaidő", "PDT": "csendes-óceáni nyári idő", "HKT": "hongkongi téli idő", "HKST": "hongkongi nyári idő", "CHADT": "chathami nyári idő", "CLST": "chilei nyári idő", "HNEG": "kelet-grönlandi téli idő", "WAST": "nyugat-afrikai nyári idő", "GMT": "greenwichi középidő, téli idő", "PST": "csendes-óceáni zónaidő", "ART": "argentínai téli idő", "OESZ": "kelet-európai nyári idő", "∅∅∅": "perui nyári idő", "HNNOMX": "északnyugat-mexikói zónaidő", "CST": "középső államokbeli zónaidő", "AWST": "nyugat-ausztráliai téli idő", "AWDT": "nyugat-ausztráliai nyári idő", "ChST": "chamorrói téli idő", "AST": "atlanti-óceáni zónaidő", "LHDT": "Lord Howe-szigeti nyári idő", "JST": "japán téli idő", "SGT": "szingapúri téli idő", "HADT": "hawaii-aleuti nyári idő", "AEST": "kelet-ausztráliai téli idő", "CLT": "chilei téli idő", "ACST": "közép-ausztráliai téli idő", "GYT": "guyanai téli idő", "VET": "venezuelai idő", "HEOG": "nyugat-grönlandi nyári idő", "LHST": "Lord Howe-szigeti téli idő", "SAST": "dél-afrikai téli idő", "BOT": "bolíviai téli idő", "HEEG": "kelet-grönlandi nyári idő", "WART": "nyugat-argentínai téli idő", "WARST": "nyugat-argentínai nyári idő", "HECU": "kubai nyári idő", "EST": "keleti államokbeli zónaidő", "MST": "Macaui zónaidő", "MDT": "Macaui nyári idő", "WIB": "nyugat-indonéziai téli idő", "BT": "butáni idő", "ARST": "Argentínai nyári idő", "ACDT": "közép-ausztráliai nyári idő", "HNCU": "kubai téli idő", "AEDT": "kelet-ausztráliai nyári idő", "CHAST": "chathami téli idő", "TMT": "türkmenisztáni téli idő", "CAT": "közép-afrikai téli idő", "COST": "kolumbiai nyári idő", "HEPMX": "mexikói csendes-óceáni nyári idő", "WESZ": "nyugat-európai nyári idő", "NZDT": "új-zélandi nyári idő", "GFT": "francia-guianai idő", "ADT": "atlanti-óceáni nyári idő", "HEPM": "Saint Pierre és Miquelon-i nyári idő"},
++ timezones: map[string]string{"GYT": "guyanai téli idő", "AST": "atlanti-óceáni zónaidő", "SAST": "dél-afrikai téli idő", "CLT": "chilei téli idő", "WESZ": "nyugat-európai nyári idő", "HNT": "új-fundlandi zónaidő", "HAT": "új-fundlandi nyári idő", "COST": "kolumbiai nyári idő", "HKT": "hongkongi téli idő", "CHAST": "chathami téli idő", "CHADT": "chathami nyári idő", "HEPMX": "mexikói csendes-óceáni nyári idő", "WIB": "nyugat-indonéziai téli idő", "NZDT": "új-zélandi nyári idő", "ARST": "Argentínai nyári idő", "SRT": "szurinámi idő", "HADT": "hawaii-aleuti nyári idő", "ACST": "közép-ausztráliai téli idő", "LHST": "Lord Howe-szigeti téli idő", "HNOG": "nyugat-grönlandi téli idő", "ACDT": "közép-ausztráliai nyári idő", "HNPM": "Saint Pierre és Miquelon-i zónaidő", "UYT": "uruguayi téli idő", "PDT": "csendes-óceáni nyári idő", "ACWST": "közép-nyugat-ausztráliai téli idő", "SGT": "szingapúri téli idő", "HNCU": "kubai téli idő", "WAST": "nyugat-afrikai nyári idő", "MST": "Macaui zónaidő", "ECT": "ecuadori téli idő", "GMT": "greenwichi középidő, téli idő", "BOT": "bolíviai téli idő", "JDT": "japán nyári idő", "LHDT": "Lord Howe-szigeti nyári idő", "MYT": "malajziai idő", "AKST": "alaszkai zónaidő", "GFT": "francia-guianai idő", "CLST": "chilei nyári idő", "CDT": "középső államokbeli nyári idő", "ADT": "atlanti-óceáni nyári idő", "HAST": "hawaii-aleuti téli idő", "BT": "butáni idő", "OESZ": "kelet-európai nyári idő", "HEOG": "nyugat-grönlandi nyári idő", "MDT": "Macaui nyári idő", "ChST": "chamorrói téli idő", "EAT": "kelet-afrikai téli idő", "MEZ": "közép-európai téli idő", "AEST": "kelet-ausztráliai téli idő", "AEDT": "kelet-ausztráliai nyári idő", "HNPMX": "mexikói csendes-óceáni zónaidő", "WEZ": "nyugat-európai téli idő", "WAT": "nyugat-afrikai téli idő", "EST": "keleti államokbeli zónaidő", "AWST": "nyugat-ausztráliai téli idő", "UYST": "uruguayi nyári idő", "ACWDT": "közép-nyugat-ausztráliai nyári idő", "AKDT": "alaszkai nyári idő", "CST": "középső államokbeli zónaidő", "MESZ": "közép-európai nyári idő", "AWDT": "nyugat-ausztráliai nyári idő", "OEZ": "kelet-európai téli idő", "WARST": "nyugat-argentínai nyári idő", "∅∅∅": "brazíliai nyári idő", "NZST": "új-zélandi téli idő", "ART": "argentínai téli idő", "HEEG": "kelet-grönlandi nyári idő", "HECU": "kubai nyári idő", "WIT": "kelet-indonéziai idő", "CAT": "közép-afrikai téli idő", "HNNOMX": "északnyugat-mexikói zónaidő", "IST": "indiai téli idő", "HKST": "hongkongi nyári idő", "HENOMX": "északnyugat-mexikói nyári idő", "JST": "japán téli idő", "WART": "nyugat-argentínai téli idő", "EDT": "keleti államokbeli nyári idő", "TMST": "türkmenisztáni nyári idő", "VET": "venezuelai idő", "COT": "kolumbiai téli idő", "TMT": "türkmenisztáni téli idő", "WITA": "közép-indonéziai idő", "HNEG": "kelet-grönlandi téli idő", "HEPM": "Saint Pierre és Miquelon-i nyári idő", "PST": "csendes-óceáni zónaidő"},
+ }
+ }
+ 
+diff --git a/hu_HU/hu_HU.go b/hu_HU/hu_HU.go
+index c1db47b..1783b4d 100644
+--- a/hu_HU/hu_HU.go
++++ b/hu_HU/hu_HU.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type hu_HU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'hu_HU' locale
+ func New() locales.Translator {
+ return &hu_HU{
+- locale: "hu_HU",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan.", "febr.", "márc.", "ápr.", "máj.", "jún.", "júl.", "aug.", "szept.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "J", "F", "M", "Á", "M", "J", "J", "A", "Sz", "O", "N", "D"},
+- monthsWide: []string{"", "január", "február", "március", "április", "május", "június", "július", "augusztus", "szeptember", "október", "november", "december"},
+- daysAbbreviated: []string{"V", "H", "K", "Sze", "Cs", "P", "Szo"},
+- daysNarrow: []string{"V", "H", "K", "Sz", "Cs", "P", "Sz"},
+- daysShort: []string{"V", "H", "K", "Sze", "Cs", "P", "Szo"},
+- daysWide: []string{"vasárnap", "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"},
+- periodsAbbreviated: []string{"de.", "du."},
+- periodsNarrow: []string{"de.", "du."},
+- periodsWide: []string{"de.", "du."},
+- erasAbbreviated: []string{"i. e.", "i. sz."},
+- erasNarrow: []string{"ie.", "isz."},
+- erasWide: []string{"időszámításunk előtt", "időszámításunk szerint"},
+- timezones: map[string]string{"HECU": "kubai nyári idő", "UYST": "uruguayi nyári idő", "HNNOMX": "északnyugat-mexikói zónaidő", "HNCU": "kubai téli idő", "AKST": "alaszkai zónaidő", "PDT": "csendes-óceáni nyári idő", "HKST": "hongkongi nyári idő", "ACDT": "közép-ausztráliai nyári idő", "CDT": "középső államokbeli nyári idő", "WIT": "kelet-indonéziai idő", "WEZ": "nyugat-európai téli idő", "ARST": "Argentínai nyári idő", "EAT": "kelet-afrikai téli idő", "GMT": "greenwichi középidő, téli idő", "ADT": "atlanti-óceáni nyári idő", "VET": "venezuelai idő", "ACST": "közép-ausztráliai téli idő", "MYT": "malajziai idő", "UYT": "uruguayi téli idő", "HAST": "hawaii-aleuti téli idő", "LHST": "Lord Howe-szigeti téli idő", "JDT": "japán nyári idő", "OESZ": "kelet-európai nyári idő", "HENOMX": "északnyugat-mexikói nyári idő", "AWST": "nyugat-ausztráliai téli idő", "MESZ": "közép-európai nyári idő", "WART": "nyugat-argentínai téli idő", "CST": "középső államokbeli zónaidő", "ACWST": "közép-nyugat-ausztráliai téli idő", "HAT": "új-fundlandi nyári idő", "AWDT": "nyugat-ausztráliai nyári idő", "HEPM": "Saint Pierre és Miquelon-i nyári idő", "∅∅∅": "amazóniai nyári idő", "WAST": "nyugat-afrikai nyári idő", "SGT": "szingapúri téli idő", "EST": "keleti államokbeli zónaidő", "HNT": "új-fundlandi zónaidő", "IST": "indiai téli idő", "CLT": "chilei téli idő", "CAT": "közép-afrikai téli idő", "EDT": "keleti államokbeli nyári idő", "WIB": "nyugat-indonéziai téli idő", "AEST": "kelet-ausztráliai téli idő", "MST": "Macaui zónaidő", "WESZ": "nyugat-európai nyári idő", "LHDT": "Lord Howe-szigeti nyári idő", "NZST": "új-zélandi téli idő", "CHAST": "chathami téli idő", "ChST": "chamorrói téli idő", "HEEG": "kelet-grönlandi nyári idő", "COT": "kolumbiai téli idő", "NZDT": "új-zélandi nyári idő", "WAT": "nyugat-afrikai téli idő", "BT": "butáni idő", "HEOG": "nyugat-grönlandi nyári idő", "HKT": "hongkongi téli idő", "TMST": "türkmenisztáni nyári idő", "OEZ": "kelet-európai téli idő", "ECT": "ecuadori téli idő", "SRT": "szurinámi idő", "ART": "argentínai téli idő", "AEDT": "kelet-ausztráliai nyári idő", "CHADT": "chathami nyári idő", "TMT": "türkmenisztáni téli idő", "MDT": "Macaui nyári idő", "HADT": "hawaii-aleuti nyári idő", "PST": "csendes-óceáni zónaidő", "SAST": "dél-afrikai téli idő", "HNEG": "kelet-grönlandi téli idő", "WARST": "nyugat-argentínai nyári idő", "AST": "atlanti-óceáni zónaidő", "ACWDT": "közép-nyugat-ausztráliai nyári idő", "HNPM": "Saint Pierre és Miquelon-i zónaidő", "MEZ": "közép-európai téli idő", "CLST": "chilei nyári idő", "COST": "kolumbiai nyári idő", "HEPMX": "mexikói csendes-óceáni nyári idő", "AKDT": "alaszkai nyári idő", "WITA": "közép-indonéziai idő", "JST": "japán téli idő", "BOT": "bolíviai téli idő", "GFT": "francia-guianai idő", "HNPMX": "mexikói csendes-óceáni zónaidő", "GYT": "guyanai téli idő", "HNOG": "nyugat-grönlandi téli idő"},
++ locale: "hu_HU",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CAT": "CAT", "NZST": "NZST", "AST": "AST", "GMT": "GMT", "HENOMX": "HENOMX", "AWDT": "AWDT", "WAT": "WAT", "WIT": "WIT", "LHST": "LHST", "BT": "BT", "VET": "VET", "HEPMX": "HEPMX", "AKST": "AKST", "HNOG": "HNOG", "PST": "PST", "HNPMX": "HNPMX", "SRT": "SRT", "HAST": "HAST", "HADT": "HADT", "AWST": "AWST", "JDT": "JDT", "CHADT": "CHADT", "GYT": "GYT", "HKST": "HKST", "ADT": "ADT", "AEDT": "AEDT", "AKDT": "AKDT", "CLST": "CLST", "ART": "ART", "HECU": "HECU", "SAST": "SAST", "TMST": "TMST", "CST": "CST", "MESZ": "MESZ", "UYT": "UYT", "WEZ": "WEZ", "HNT": "HNT", "HEOG": "HEOG", "WITA": "WITA", "MST": "MST", "NZDT": "NZDT", "ECT": "ECT", "HNCU": "HNCU", "GFT": "GFT", "ACDT": "ACDT", "MYT": "MYT", "WIB": "WIB", "BOT": "BOT", "SGT": "SGT", "ARST": "ARST", "HNPM": "HNPM", "PDT": "PDT", "CHAST": "CHAST", "HEPM": "HEPM", "COT": "COT", "MDT": "MDT", "WAST": "WAST", "WART": "WART", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "IST": "IST", "AEST": "AEST", "WESZ": "WESZ", "EST": "EST", "HKT": "HKT", "CLT": "CLT", "CDT": "CDT", "ChST": "ChST", "UYST": "UYST", "ACWST": "ACWST", "HEEG": "HEEG", "COST": "COST", "ACWDT": "ACWDT", "OEZ": "OEZ", "LHDT": "LHDT", "EDT": "EDT", "TMT": "TMT", "HAT": "HAT", "ACST": "ACST", "JST": "JST", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "MEZ": "MEZ", "WARST": "WARST", "EAT": "EAT"},
+ }
+ }
+ 
+@@ -142,7 +119,7 @@ func (hu *hu_HU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (hu *hu_HU) MonthsAbbreviated() []string {
+- return hu.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -152,7 +129,7 @@ func (hu *hu_HU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (hu *hu_HU) MonthsNarrow() []string {
+- return hu.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -162,7 +139,7 @@ func (hu *hu_HU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (hu *hu_HU) MonthsWide() []string {
+- return hu.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -208,75 +185,13 @@ func (hu *hu_HU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'hu_HU' and handles both Whole and Real numbers based on 'v'
+ func (hu *hu_HU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(hu.group) - 1; j >= 0; j-- {
+- b = append(b, hu.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, hu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'hu_HU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (hu *hu_HU) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hu.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, hu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, hu.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'hu_HU'
+@@ -284,58 +199,7 @@ func (hu *hu_HU) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := hu.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(hu.group) - 1; j >= 0; j-- {
+- b = append(b, hu.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, hu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, hu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, hu.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'hu_HU'
+@@ -344,65 +208,7 @@ func (hu *hu_HU) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := hu.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(hu.group) - 1; j >= 0; j-- {
+- b = append(b, hu.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, hu.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, hu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, hu.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, hu.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'hu_HU'
+@@ -410,29 +216,6 @@ func (hu *hu_HU) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -441,18 +224,6 @@ func (hu *hu_HU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, hu.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -461,18 +232,6 @@ func (hu *hu_HU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, hu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -481,19 +240,6 @@ func (hu *hu_HU) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, hu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x2c, 0x20}...)
+- b = append(b, hu.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -502,15 +248,6 @@ func (hu *hu_HU) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -519,22 +256,6 @@ func (hu *hu_HU) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -543,26 +264,6 @@ func (hu *hu_HU) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -571,30 +272,5 @@ func (hu *hu_HU) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := hu.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/hy/hy.go b/hy/hy.go
+index 58a2858..0377512 100644
+--- a/hy/hy.go
++++ b/hy/hy.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"", ""},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Քրիստոսից առաջ", "Քրիստոսից հետո"},
+- timezones: map[string]string{"GMT": "Գրինվիչի ժամանակ", "SGT": "Սինգապուրի ժամանակ", "HECU": "Կուբայի ամառային ժամանակ", "UYST": "Ուրուգվայի ամառային ժամանակ", "HNT": "Նյուֆաունդլենդի ստանդարտ ժամանակ", "HEPM": "Սեն Պիեռ և Միքելոնի ամառային ժամանակ", "CLT": "Չիլիի ստանդարտ ժամանակ", "HAT": "Նյուֆաունդլենդի ամառային ժամանակ", "AEDT": "Արևելյան Ավստրալիայի ամառային ժամանակ", "WITA": "Կենտրոնական Ինդոնեզիայի ժամանակ", "LHDT": "Լորդ Հաուի ամառային ժամանակ", "CHAST": "Չաթեմ կղզու ստանդարտ ժամանակ", "ChST": "Չամոռոյի ժամանակ", "EDT": "Արևելյան Ամերիկայի ամառային ժամանակ", "HEPMX": "Մեքսիկայի խաղաղօվկիանոսյան ամառային ժամանակ", "AKDT": "Ալյասկայի ամառային ժամանակ", "HADT": "Հավայան-ալեության ամառային ժամանակ", "AWST": "Արևմտյան Ավստրալիայի ստանդարտ ժամանակ", "ACST": "Կենտրոնական Ավստրալիայի ստանդարտ ժամանակ", "MST": "MST", "AKST": "Ալյասկայի ստանդարտ ժամանակ", "AST": "Ատլանտյան ստանդարտ ժամանակ", "HAST": "Հավայան-ալեության ստանդարտ ժամանակ", "HNPM": "Սեն Պիեռ և Միքելոնի ստանդարտ ժամանակ", "LHST": "Լորդ Հաուի ստանդարտ ժամանակ", "HNEG": "Արևելյան Գրենլանդիայի ստանդարտ ժամանակ", "WAST": "Արևմտյան Աֆրիկայի ամառային ժամանակ", "COST": "Կոլումբիայի ամառային ժամանակ", "ADT": "Ատլանտյան ամառային ժամանակ", "ARST": "Արգենտինայի ամառային ժամանակ", "NZST": "Նոր Զելանդիայի ստանդարտ ժամանակ", "IST": "Հնդկաստանի ստանդարտ ժամանակ", "JST": "Ճապոնիայի ստանդարտ ժամանակ", "GFT": "Ֆրանսիական Գվիանայի ժամանակ", "CAT": "Կենտրոնական Աֆրիկայի ժամանակ", "COT": "Կոլումբիայի ստանդարտ ժամանակ", "HNNOMX": "Հյուսիսարևմտյան Մեքսիկայի ստանդարտ ժամանակ", "HENOMX": "Հյուսիսարևմտյան Մեքսիկայի ամառային ժամանակ", "AEST": "Արևելյան Ավստրալիայի ստանդարտ ժամանակ", "AWDT": "Արևմտյան Ավստրալիայի ամառային ժամանակ", "CLST": "Չիլիի ամառային ժամանակ", "ACDT": "Կենտրոնական Ավստրալիայի ամառային ժամանակ", "WARST": "Արևմտյան Արգենտինայի ամառային ժամանակ", "WAT": "Արևմտյան Աֆրիկայի ստանդարտ ժամանակ", "OESZ": "Արևելյան Եվրոպայի ամառային ժամանակ", "CHADT": "Չաթեմ կղզու ամառային ժամանակ", "WART": "Արևմտյան Արգենտինայի ստնադարտ ժամանակ", "MYT": "Մալայզիայի ժամանակ", "PST": "Խաղաղօվկիանոսյան ստանդարտ ժամանակ", "PDT": "Խաղաղօվկիանոսյան ամառային ժամանակ", "EAT": "Արևելյան Աֆրիկայի ժամանակ", "VET": "Վենեսուելայի ժամանակ", "SRT": "Սուրինամի ժամանակ", "HKT": "Հոնկոնգի ստանդարտ ժամանակ", "BOT": "Բոլիվիայի ժամանակ", "TMT": "Թուրքմենստանի ստանդարտ ժամանակ", "HNPMX": "Մեքսիկայի խաղաղօվկիանոսյան ստանդարտ ժամանակ", "HEEG": "Արևելյան Գրենլանդիայի ամառային ժամանակ", "EST": "Արևելյան Ամերիկայի ստանդարտ ժամանակ", "WEZ": "Արևմտյան Եվրոպայի ստանդարտ ժամանակ", "ACWDT": "Կենտրոնական Ավստրալիայի արևմտյան ամառային ժամանակ", "∅∅∅": "Պերուի ամառային ժամանակ", "HNOG": "Արևմտյան Գրենլանդիայի ստանդարտ ժամանակ", "NZDT": "Նոր Զելանդիայի ամառային ժամանակ", "SAST": "Հարավային Աֆրիկայի ժամանակ", "MDT": "MDT", "ACWST": "Կենտրոնական Ավստրալիայի արևմտյան ստանդարտ ժամանակ", "MESZ": "Կենտրոնական Եվրոպայի ամառային ժամանակ", "JDT": "Ճապոնիայի ամառային ժամանակ", "MEZ": "Կենտրոնական Եվրոպայի ստանդարտ ժամանակ", "ECT": "Էկվադորի ժամանակ", "HNCU": "Կուբայի ստանդարտ ժամանակ", "UYT": "Ուրուգվայի ստանդարտ ժամանակ", "CST": "Կենտրոնական Ամերիկայի ստանդարտ ժամանակ", "CDT": "Կենտրոնական Ամերիկայի ամառային ժամանակ", "GYT": "Գայանայի ժամանակ", "BT": "Բութանի ժամանակ", "TMST": "Թուրքմենստանի ամառային ժամանակ", "OEZ": "Արևելյան Եվրոպայի ստանդարտ ժամանակ", "WIB": "Արևմտյան Ինդոնեզիայի ժամանակ", "WIT": "Արևելյան Ինդոնեզիայի ժամանակ", "WESZ": "Արևմտյան Եվրոպայի ամառային ժամանակ", "ART": "Արգենտինայի ստնադարտ ժամանակ", "HEOG": "Արևմտյան Գրենլանդիայի ամառային ժամանակ", "HKST": "Հոնկոնգի ամառային ժամանակ"},
++ timezones: map[string]string{"VET": "Վենեսուելայի ժամանակ", "EST": "Արևելյան Ամերիկայի ստանդարտ ժամանակ", "WITA": "Կենտրոնական Ինդոնեզիայի ժամանակ", "MEZ": "Կենտրոնական Եվրոպայի ստանդարտ ժամանակ", "HNEG": "Արևելյան Գրենլանդիայի ստանդարտ ժամանակ", "JST": "Ճապոնիայի ստանդարտ ժամանակ", "HNPMX": "Մեքսիկայի խաղաղօվկիանոսյան ստանդարտ ժամանակ", "HEPMX": "Մեքսիկայի խաղաղօվկիանոսյան ամառային ժամանակ", "WARST": "Արևմտյան Արգենտինայի ամառային ժամանակ", "HKST": "Հոնկոնգի ամառային ժամանակ", "ART": "Արգենտինայի ստնադարտ ժամանակ", "SRT": "Սուրինամի ժամանակ", "CHADT": "Չաթեմ կղզու ամառային ժամանակ", "PDT": "Խաղաղօվկիանոսյան ամառային ժամանակ", "HNCU": "Կուբայի ստանդարտ ժամանակ", "EDT": "Արևելյան Ամերիկայի ամառային ժամանակ", "EAT": "Արևելյան Աֆրիկայի ժամանակ", "HENOMX": "Հյուսիսարևմտյան Մեքսիկայի ամառային ժամանակ", "HEPM": "Սեն Պիեռ և Միքելոնի ամառային ժամանակ", "WEZ": "Արևմտյան Եվրոպայի ստանդարտ ժամանակ", "HNOG": "Արևմտյան Գրենլանդիայի ստանդարտ ժամանակ", "SAST": "Հարավային Աֆրիկայի ժամանակ", "COST": "Կոլումբիայի ամառային ժամանակ", "CLST": "Չիլիի ամառային ժամանակ", "NZST": "Նոր Զելանդիայի ստանդարտ ժամանակ", "SGT": "Սինգապուրի ժամանակ", "WART": "Արևմտյան Արգենտինայի ստնադարտ ժամանակ", "MYT": "Մալայզիայի ժամանակ", "AEDT": "Արևելյան Ավստրալիայի ամառային ժամանակ", "CHAST": "Չաթեմ կղզու ստանդարտ ժամանակ", "BT": "Բութանի ժամանակ", "HKT": "Հոնկոնգի ստանդարտ ժամանակ", "HNPM": "Սեն Պիեռ և Միքելոնի ստանդարտ ժամանակ", "HNT": "Նյուֆաունդլենդի ստանդարտ ժամանակ", "HADT": "Հավայան-ալեության ամառային ժամանակ", "ACST": "Կենտրոնական Ավստրալիայի ստանդարտ ժամանակ", "HEEG": "Արևելյան Գրենլանդիայի ամառային ժամանակ", "AWDT": "Արևմտյան Ավստրալիայի ամառային ժամանակ", "WESZ": "Արևմտյան Եվրոպայի ամառային ժամանակ", "AKST": "Ալյասկայի ստանդարտ ժամանակ", "OESZ": "Արևելյան Եվրոպայի ամառային ժամանակ", "MESZ": "Կենտրոնական Եվրոպայի ամառային ժամանակ", "∅∅∅": "Ամազոնյան ամառային ժամանակ", "WIT": "Արևելյան Ինդոնեզիայի ժամանակ", "CLT": "Չիլիի ստանդարտ ժամանակ", "AST": "Ատլանտյան ստանդարտ ժամանակ", "ADT": "Ատլանտյան ամառային ժամանակ", "LHDT": "Լորդ Հաուի ամառային ժամանակ", "PST": "Խաղաղօվկիանոսյան ստանդարտ ժամանակ", "WAST": "Արևմտյան Աֆրիկայի ամառային ժամանակ", "CAT": "Կենտրոնական Աֆրիկայի ժամանակ", "ChST": "Չամոռոյի ժամանակ", "HNNOMX": "Հյուսիսարևմտյան Մեքսիկայի ստանդարտ ժամանակ", "ACWST": "Կենտրոնական Ավստրալիայի արևմտյան ստանդարտ ժամանակ", "WAT": "Արևմտյան Աֆրիկայի ստանդարտ ժամանակ", "AKDT": "Ալյասկայի ամառային ժամանակ", "GFT": "Ֆրանսիական Գվիանայի ժամանակ", "TMST": "Թուրքմենստանի ամառային ժամանակ", "MDT": "MDT", "JDT": "Ճապոնիայի ամառային ժամանակ", "ECT": "Էկվադորի ժամանակ", "MST": "MST", "GYT": "Գայանայի ժամանակ", "TMT": "Թուրքմենստանի ստանդարտ ժամանակ", "GMT": "Գրինվիչի ժամանակ", "UYST": "Ուրուգվայի ամառային ժամանակ", "IST": "Հնդկաստանի ստանդարտ ժամանակ", "HAT": "Նյուֆաունդլենդի ամառային ժամանակ", "NZDT": "Նոր Զելանդիայի ամառային ժամանակ", "ARST": "Արգենտինայի ամառային ժամանակ", "HAST": "Հավայան-ալեության ստանդարտ ժամանակ", "AEST": "Արևելյան Ավստրալիայի ստանդարտ ժամանակ", "WIB": "Արևմտյան Ինդոնեզիայի ժամանակ", "CDT": "Կենտրոնական Ամերիկայի ամառային ժամանակ", "BOT": "Բոլիվիայի ժամանակ", "ACDT": "Կենտրոնական Ավստրալիայի ամառային ժամանակ", "AWST": "Արևմտյան Ավստրալիայի ստանդարտ ժամանակ", "LHST": "Լորդ Հաուի ստանդարտ ժամանակ", "HECU": "Կուբայի ամառային ժամանակ", "OEZ": "Արևելյան Եվրոպայի ստանդարտ ժամանակ", "HEOG": "Արևմտյան Գրենլանդիայի ամառային ժամանակ", "COT": "Կոլումբիայի ստանդարտ ժամանակ", "CST": "Կենտրոնական Ամերիկայի ստանդարտ ժամանակ", "ACWDT": "Կենտրոնական Ավստրալիայի արևմտյան ամառային ժամանակ", "UYT": "Ուրուգվայի ստանդարտ ժամանակ"},
+ }
+ }
+ 
+diff --git a/hy_AM/hy_AM.go b/hy_AM/hy_AM.go
+index da696d0..3b7ce81 100644
+--- a/hy_AM/hy_AM.go
++++ b/hy_AM/hy_AM.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type hy_AM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'hy_AM' locale
+ func New() locales.Translator {
+ return &hy_AM{
+- locale: "hy_AM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "հնվ", "փտվ", "մրտ", "ապր", "մյս", "հնս", "հլս", "օգս", "սեպ", "հոկ", "նոյ", "դեկ"},
+- monthsNarrow: []string{"", "Հ", "Փ", "Մ", "Ա", "Մ", "Հ", "Հ", "Օ", "Ս", "Հ", "Ն", "Դ"},
+- monthsWide: []string{"", "հունվարի", "փետրվարի", "մարտի", "ապրիլի", "մայիսի", "հունիսի", "հուլիսի", "օգոստոսի", "սեպտեմբերի", "հոկտեմբերի", "նոյեմբերի", "դեկտեմբերի"},
+- daysAbbreviated: []string{"կիր", "երկ", "երք", "չրք", "հնգ", "ուր", "շբթ"},
+- daysNarrow: []string{"Կ", "Ե", "Ե", "Չ", "Հ", "Ո", "Շ"},
+- daysShort: []string{"կր", "եկ", "եք", "չք", "հգ", "ու", "շբ"},
+- daysWide: []string{"կիրակի", "երկուշաբթի", "երեքշաբթի", "չորեքշաբթի", "հինգշաբթի", "ուրբաթ", "շաբաթ"},
+- periodsAbbreviated: []string{"ԿԱ", "ԿՀ"},
+- periodsNarrow: []string{"ա", "հ"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Քրիստոսից առաջ", "Քրիստոսից հետո"},
+- timezones: map[string]string{"AEST": "Արևելյան Ավստրալիայի ստանդարտ ժամանակ", "HNPM": "Սեն Պիեռ և Միքելոնի ստանդարտ ժամանակ", "HEPM": "Սեն Պիեռ և Միքելոնի ամառային ժամանակ", "CHAST": "Չաթեմ կղզու ստանդարտ ժամանակ", "CLST": "Չիլիի ամառային ժամանակ", "BOT": "Բոլիվիայի ժամանակ", "AKST": "Ալյասկայի ստանդարտ ժամանակ", "ACDT": "Կենտրոնական Ավստրալիայի ամառային ժամանակ", "WAST": "Արևմտյան Աֆրիկայի ամառային ժամանակ", "UYT": "Ուրուգվայի ստանդարտ ժամանակ", "GYT": "Գայանայի ժամանակ", "IST": "Հնդկաստանի ստանդարտ ժամանակ", "HNEG": "Արևելյան Գրենլանդիայի ստանդարտ ժամանակ", "ADT": "Ատլանտյան ամառային ժամանակ", "VET": "Վենեսուելայի ժամանակ", "WEZ": "Արևմտյան Եվրոպայի ստանդարտ ժամանակ", "LHST": "Լորդ Հաուի ստանդարտ ժամանակ", "TMT": "Թուրքմենստանի ստանդարտ ժամանակ", "OESZ": "Արևելյան Եվրոպայի ամառային ժամանակ", "MDT": "MDT", "AKDT": "Ալյասկայի ամառային ժամանակ", "WIB": "Արևմտյան Ինդոնեզիայի ժամանակ", "OEZ": "Արևելյան Եվրոպայի ստանդարտ ժամանակ", "CDT": "Կենտրոնական Ամերիկայի ամառային ժամանակ", "CAT": "Կենտրոնական Աֆրիկայի ժամանակ", "ECT": "Էկվադորի ժամանակ", "GMT": "Գրինվիչի ժամանակ", "ART": "Արգենտինայի ստնադարտ ժամանակ", "WAT": "Արևմտյան Աֆրիկայի ստանդարտ ժամանակ", "COST": "Կոլումբիայի ամառային ժամանակ", "HAT": "Նյուֆաունդլենդի ամառային ժամանակ", "HKT": "Հոնկոնգի ստանդարտ ժամանակ", "HNT": "Նյուֆաունդլենդի ստանդարտ ժամանակ", "ARST": "Արգենտինայի ամառային ժամանակ", "MESZ": "Կենտրոնական Եվրոպայի ամառային ժամանակ", "NZDT": "Նոր Զելանդիայի ամառային ժամանակ", "JDT": "Ճապոնիայի ամառային ժամանակ", "EAT": "Արևելյան Աֆրիկայի ժամանակ", "MYT": "Մալայզիայի ժամանակ", "ACWST": "Կենտրոնական Ավստրալիայի արևմտյան ստանդարտ ժամանակ", "COT": "Կոլումբիայի ստանդարտ ժամանակ", "HENOMX": "Հյուսիսարևմտյան Մեքսիկայի ամառային ժամանակ", "AST": "Ատլանտյան ստանդարտ ժամանակ", "ACWDT": "Կենտրոնական Ավստրալիայի արևմտյան ամառային ժամանակ", "HEOG": "Արևմտյան Գրենլանդիայի ամառային ժամանակ", "WIT": "Արևելյան Ինդոնեզիայի ժամանակ", "NZST": "Նոր Զելանդիայի ստանդարտ ժամանակ", "SAST": "Հարավային Աֆրիկայի ժամանակ", "∅∅∅": "Ամազոնյան ամառային ժամանակ", "WART": "Արևմտյան Արգենտինայի ստնադարտ ժամանակ", "HECU": "Կուբայի ամառային ժամանակ", "HADT": "Հավայան-ալեության ամառային ժամանակ", "CHADT": "Չաթեմ կղզու ամառային ժամանակ", "ACST": "Կենտրոնական Ավստրալիայի ստանդարտ ժամանակ", "HNNOMX": "Հյուսիսարևմտյան Մեքսիկայի ստանդարտ ժամանակ", "UYST": "Ուրուգվայի ամառային ժամանակ", "WESZ": "Արևմտյան Եվրոպայի ամառային ժամանակ", "PST": "Խաղաղօվկիանոսյան ստանդարտ ժամանակ", "PDT": "Խաղաղօվկիանոսյան ամառային ժամանակ", "GFT": "Ֆրանսիական Գվիանայի ժամանակ", "WARST": "Արևմտյան Արգենտինայի ամառային ժամանակ", "EDT": "Արևելյան Ամերիկայի ամառային ժամանակ", "MST": "MST", "HNPMX": "Մեքսիկայի խաղաղօվկիանոսյան ստանդարտ ժամանակ", "SRT": "Սուրինամի ժամանակ", "AEDT": "Արևելյան Ավստրալիայի ամառային ժամանակ", "AWST": "Արևմտյան Ավստրալիայի ստանդարտ ժամանակ", "AWDT": "Արևմտյան Ավստրալիայի ամառային ժամանակ", "HKST": "Հոնկոնգի ամառային ժամանակ", "WITA": "Կենտրոնական Ինդոնեզիայի ժամանակ", "EST": "Արևելյան Ամերիկայի ստանդարտ ժամանակ", "HEPMX": "Մեքսիկայի խաղաղօվկիանոսյան ամառային ժամանակ", "HNCU": "Կուբայի ստանդարտ ժամանակ", "BT": "Բութանի ժամանակ", "HNOG": "Արևմտյան Գրենլանդիայի ստանդարտ ժամանակ", "LHDT": "Լորդ Հաուի ամառային ժամանակ", "CLT": "Չիլիի ստանդարտ ժամանակ", "JST": "Ճապոնիայի ստանդարտ ժամանակ", "TMST": "Թուրքմենստանի ամառային ժամանակ", "SGT": "Սինգապուրի ժամանակ", "HAST": "Հավայան-ալեության ստանդարտ ժամանակ", "MEZ": "Կենտրոնական Եվրոպայի ստանդարտ ժամանակ", "ChST": "Չամոռոյի ժամանակ", "HEEG": "Արևելյան Գրենլանդիայի ամառային ժամանակ", "CST": "Կենտրոնական Ամերիկայի ստանդարտ ժամանակ"},
++ locale: "hy_AM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AWDT": "AWDT", "LHDT": "LHDT", "CHADT": "CHADT", "WITA": "WITA", "HNEG": "HNEG", "HNT": "HNT", "HEOG": "HEOG", "TMST": "TMST", "CAT": "CAT", "HEPMX": "HEPMX", "ACDT": "ACDT", "HEEG": "HEEG", "HEPM": "HEPM", "IST": "IST", "AKST": "AKST", "HKT": "HKT", "HAST": "HAST", "AEST": "AEST", "JDT": "JDT", "ChST": "ChST", "MST": "MST", "AWST": "AWST", "MYT": "MYT", "WART": "WART", "EST": "EST", "WIB": "WIB", "ARST": "ARST", "BOT": "BOT", "EAT": "EAT", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "WAST": "WAST", "HKST": "HKST", "TMT": "TMT", "GMT": "GMT", "SRT": "SRT", "HADT": "HADT", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "OESZ": "OESZ", "WARST": "WARST", "WIT": "WIT", "ART": "ART", "NZDT": "NZDT", "CST": "CST", "WEZ": "WEZ", "OEZ": "OEZ", "COST": "COST", "NZST": "NZST", "ADT": "ADT", "MEZ": "MEZ", "BT": "BT", "CDT": "CDT", "AST": "AST", "UYT": "UYT", "HECU": "HECU", "SGT": "SGT", "GFT": "GFT", "HAT": "HAT", "HNOG": "HNOG", "HNNOMX": "HNNOMX", "COT": "COT", "HENOMX": "HENOMX", "ACST": "ACST", "HNPM": "HNPM", "CHAST": "CHAST", "VET": "VET", "SAST": "SAST", "GYT": "GYT", "EDT": "EDT", "MDT": "MDT", "ECT": "ECT", "PST": "PST", "WAT": "WAT", "JST": "JST", "UYST": "UYST", "PDT": "PDT", "HNCU": "HNCU", "AKDT": "AKDT", "MESZ": "MESZ", "ACWST": "ACWST", "AEDT": "AEDT", "CLT": "CLT", "CLST": "CLST", "LHST": "LHST"},
+ }
+ }
+ 
+@@ -143,7 +120,7 @@ func (hy *hy_AM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (hy *hy_AM) MonthsAbbreviated() []string {
+- return hy.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -153,7 +130,7 @@ func (hy *hy_AM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (hy *hy_AM) MonthsNarrow() []string {
+- return hy.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -163,7 +140,7 @@ func (hy *hy_AM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (hy *hy_AM) MonthsWide() []string {
+- return hy.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -209,75 +186,13 @@ func (hy *hy_AM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'hy_AM' and handles both Whole and Real numbers based on 'v'
+ func (hy *hy_AM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hy.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(hy.group) - 1; j >= 0; j-- {
+- b = append(b, hy.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, hy.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'hy_AM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (hy *hy_AM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hy.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, hy.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, hy.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'hy_AM'
+@@ -285,62 +200,7 @@ func (hy *hy_AM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := hy.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hy.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(hy.group) - 1; j >= 0; j-- {
+- b = append(b, hy.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(hy.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, hy.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, hy.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, hy.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'hy_AM'
+@@ -349,74 +209,7 @@ func (hy *hy_AM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := hy.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, hy.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(hy.group) - 1; j >= 0; j-- {
+- b = append(b, hy.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(hy.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, hy.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, hy.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(hy.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, hy.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, hy.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'hy_AM'
+@@ -424,27 +217,6 @@ func (hy *hy_AM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -453,23 +225,6 @@ func (hy *hy_AM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, hy.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd5, 0xa9, 0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -478,23 +233,6 @@ func (hy *hy_AM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, hy.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd5, 0xa9, 0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -503,19 +241,6 @@ func (hy *hy_AM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd5, 0xa9, 0x2e, 0x20}...)
+- b = append(b, hy.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, hy.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -524,19 +249,6 @@ func (hy *hy_AM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hy.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -545,26 +257,6 @@ func (hy *hy_AM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hy.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hy.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -573,30 +265,6 @@ func (hy *hy_AM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hy.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hy.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -605,34 +273,5 @@ func (hy *hy_AM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, hy.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, hy.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := hy.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/id/id.go b/id/id.go
+index 4905a8a..4214171 100644
+--- a/id/id.go
++++ b/id/id.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"SM", "M"},
+ erasNarrow: []string{"SM", "M"},
+ erasWide: []string{"Sebelum Masehi", "Masehi"},
+- timezones: map[string]string{"JDT": "Waktu Musim Panas Jepang", "TMT": "Waktu Standar Turkmenistan", "ChST": "Waktu Standar Chamorro", "HECU": "Waktu Musim Panas Kuba", "EST": "Waktu Standar Timur", "AKDT": "Waktu Musim Panas Alaska", "SAST": "Waktu Standar Afrika Selatan", "JST": "Waktu Standar Jepang", "GYT": "Waktu Guyana", "WIT": "Waktu Indonesia Timur", "AEDT": "Waktu Musim Panas Timur Australia", "HEPM": "Waktu Musim Panas Saint Pierre dan Miquelon", "WARST": "Waktu Musim Panas Argentina Bagian Barat", "COT": "Waktu Standar Kolombia", "ACDT": "Waktu Musim Panas Tengah Australia", "HNCU": "Waktu Standar Kuba", "ARST": "Waktu Musim Panas Argentina", "AWST": "Waktu Standar Barat Australia", "CHAST": "Waktu Standar Chatham", "BOT": "Waktu Bolivia", "UYT": "Waktu Standar Uruguay", "HAST": "Waktu Standar Hawaii-Aleutian", "AWDT": "Waktu Musim Panas Barat Australia", "MESZ": "Waktu Musim Panas Eropa Tengah", "ECT": "Waktu Ekuador", "WART": "Waktu Standar Argentina Bagian Barat", "MST": "Waktu Standar Makau", "CDT": "Waktu Musim Panas Tengah", "SRT": "Waktu Suriname", "NZST": "Waktu Standar Selandia Baru", "HNEG": "Waktu Standar Greenland Timur", "HEEG": "Waktu Musim Panas Greenland Timur", "WAST": "Waktu Musim Panas Afrika Barat", "OESZ": "Waktu Musim Panas Eropa Timur", "ART": "Waktu Standar Argentina", "HEOG": "Waktu Musim Panas Greenland Barat", "LHST": "Waktu Standar Lord Howe", "CLST": "Waktu Musim Panas Cile", "EAT": "Waktu Afrika Timur", "ADT": "Waktu Musim Panas Atlantik", "BT": "Waktu Bhutan", "PDT": "Waktu Musim Panas Pasifik", "ACST": "Waktu Standar Tengah Australia", "CAT": "Waktu Afrika Tengah", "WIB": "Waktu Indonesia Barat", "WEZ": "Waktu Standar Eropa Barat", "HNNOMX": "Waktu Standar Meksiko Barat Laut", "CST": "Waktu Standar Tengah", "COST": "Waktu Musim Panas Kolombia", "MYT": "Waktu Malaysia", "PST": "Waktu Standar Pasifik", "HKT": "Waktu Standar Hong Kong", "LHDT": "Waktu Musim Panas Lord Howe", "IST": "Waktu India", "HAT": "Waktu Musim Panas Newfoundland", "HNOG": "Waktu Standar Greenland Barat", "MDT": "Waktu Musim Panas Makau", "UYST": "Waktu Musim Panas Uruguay", "HADT": "Waktu Musim Panas Hawaii-Aleutian", "CHADT": "Waktu Musim Panas Chatham", "EDT": "Waktu Musim Panas Timur", "HEPMX": "Waktu Musim Panas Pasifik Meksiko", "WITA": "Waktu Indonesia Tengah", "∅∅∅": "Waktu Musim Panas Amazon", "SGT": "Waktu Standar Singapura", "AST": "Waktu Standar Atlantik", "VET": "Waktu Venezuela", "HNT": "Waktu Standar Newfoundland", "HKST": "Waktu Musim Panas Hong Kong", "NZDT": "Waktu Musim Panas Selandia Baru", "WAT": "Waktu Standar Afrika Barat", "TMST": "Waktu Musim Panas Turkmenistan", "OEZ": "Waktu Standar Eropa Timur", "HENOMX": "Waktu Musim Panas Meksiko Barat Laut", "GMT": "Greenwich Mean Time", "HNPMX": "Waktu Standar Pasifik Meksiko", "ACWDT": "Waktu Musim Panas Barat Tengah Australia", "CLT": "Waktu Standar Cile", "GFT": "Waktu Guyana Prancis", "WESZ": "Waktu Musim Panas Eropa Barat", "HNPM": "Waktu Standar Saint Pierre dan Miquelon", "ACWST": "Waktu Standar Barat Tengah Australia", "AEST": "Waktu Standar Timur Australia", "MEZ": "Waktu Standar Eropa Tengah", "AKST": "Waktu Standar Alaska"},
++ timezones: map[string]string{"CLT": "Waktu Standar Cile", "MST": "Waktu Standar Pegunungan", "ACDT": "Waktu Musim Panas Tengah Australia", "JDT": "Waktu Musim Panas Jepang", "PDT": "Waktu Musim Panas Pasifik", "BT": "Waktu Bhutan", "HAT": "Waktu Musim Panas Newfoundland", "MDT": "Waktu Musim Panas Pegunungan", "MEZ": "Waktu Standar Eropa Tengah", "AWST": "Waktu Standar Barat Australia", "SGT": "Waktu Standar Singapura", "GFT": "Waktu Guyana Prancis", "CST": "Waktu Standar Tengah", "ChST": "Waktu Standar Chamorro", "HENOMX": "Waktu Musim Panas Meksiko Barat Laut", "MYT": "Waktu Malaysia", "WAST": "Waktu Musim Panas Afrika Barat", "CAT": "Waktu Afrika Tengah", "WITA": "Waktu Indonesia Tengah", "SRT": "Waktu Suriname", "WAT": "Waktu Standar Afrika Barat", "HNPMX": "Waktu Standar Pasifik Meksiko", "WIT": "Waktu Indonesia Timur", "COT": "Waktu Standar Kolombia", "HKST": "Waktu Musim Panas Hong Kong", "ADT": "Waktu Musim Panas Atlantik", "GMT": "Greenwich Mean Time", "LHST": "Waktu Standar Lord Howe", "CHADT": "Waktu Musim Panas Chatham", "AEDT": "Waktu Musim Panas Timur Australia", "WEZ": "Waktu Standar Eropa Barat", "AKST": "Waktu Standar Alaska", "UYST": "Waktu Musim Panas Uruguay", "CDT": "Waktu Musim Panas Tengah", "NZDT": "Waktu Musim Panas Selandia Baru", "ART": "Waktu Standar Argentina", "BOT": "Waktu Bolivia", "HEPM": "Waktu Musim Panas Saint Pierre dan Miquelon", "∅∅∅": "Waktu Musim Panas Acre", "IST": "Waktu India", "OEZ": "Waktu Standar Eropa Timur", "HNPM": "Waktu Standar Saint Pierre dan Miquelon", "HNCU": "Waktu Standar Kuba", "HEPMX": "Waktu Musim Panas Pasifik Meksiko", "HNOG": "Waktu Standar Greenland Barat", "ECT": "Waktu Ekuador", "ARST": "Waktu Musim Panas Argentina", "HEEG": "Waktu Musim Panas Greenland Timur", "ACWDT": "Waktu Musim Panas Barat Tengah Australia", "HNT": "Waktu Standar Newfoundland", "GYT": "Waktu Guyana", "NZST": "Waktu Standar Selandia Baru", "AKDT": "Waktu Musim Panas Alaska", "HEOG": "Waktu Musim Panas Greenland Barat", "TMT": "Waktu Standar Turkmenistan", "HADT": "Waktu Musim Panas Hawaii-Aleutian", "MESZ": "Waktu Musim Panas Eropa Tengah", "ACST": "Waktu Standar Tengah Australia", "ACWST": "Waktu Standar Barat Tengah Australia", "AEST": "Waktu Standar Timur Australia", "TMST": "Waktu Musim Panas Turkmenistan", "HNNOMX": "Waktu Standar Meksiko Barat Laut", "PST": "Waktu Standar Pasifik", "EST": "Waktu Standar Timur", "HKT": "Waktu Standar Hong Kong", "EAT": "Waktu Afrika Timur", "HNEG": "Waktu Standar Greenland Timur", "AWDT": "Waktu Musim Panas Barat Australia", "LHDT": "Waktu Musim Panas Lord Howe", "VET": "Waktu Venezuela", "WARST": "Waktu Musim Panas Argentina Bagian Barat", "SAST": "Waktu Standar Afrika Selatan", "CLST": "Waktu Musim Panas Cile", "JST": "Waktu Standar Jepang", "CHAST": "Waktu Standar Chatham", "UYT": "Waktu Standar Uruguay", "EDT": "Waktu Musim Panas Timur", "WIB": "Waktu Indonesia Barat", "COST": "Waktu Musim Panas Kolombia", "AST": "Waktu Standar Atlantik", "HAST": "Waktu Standar Hawaii-Aleutian", "WESZ": "Waktu Musim Panas Eropa Barat", "HECU": "Waktu Musim Panas Kuba", "OESZ": "Waktu Musim Panas Eropa Timur", "WART": "Waktu Standar Argentina Bagian Barat"},
+ }
+ }
+ 
+diff --git a/id_ID/id_ID.go b/id_ID/id_ID.go
+index 8d61937..866c7c7 100644
+--- a/id_ID/id_ID.go
++++ b/id_ID/id_ID.go
+@@ -42,32 +42,13 @@ type id_ID struct {
+ // New returns a new instance of translator for the 'id_ID' locale
+ func New() locales.Translator {
+ return &id_ID{
+- locale: "id_ID",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ".",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Agt", "Sep", "Okt", "Nov", "Des"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"},
+- daysAbbreviated: []string{"Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"},
+- daysNarrow: []string{"M", "S", "S", "R", "K", "J", "S"},
+- daysShort: []string{"Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"},
+- daysWide: []string{"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"SM", "M"},
+- erasNarrow: []string{"SM", "M"},
+- erasWide: []string{"Sebelum Masehi", "Masehi"},
+- timezones: map[string]string{"HNT": "Waktu Standar Newfoundland", "IST": "Waktu India", "∅∅∅": "Waktu Musim Panas Amazon", "HEEG": "Waktu Musim Panas Greenland Timur", "WARST": "Waktu Musim Panas Argentina Bagian Barat", "HEPMX": "Waktu Musim Panas Pasifik Meksiko", "ADT": "Waktu Musim Panas Atlantik", "OEZ": "Waktu Standar Eropa Timur", "GMT": "Greenwich Mean Time", "UYST": "Waktu Musim Panas Uruguay", "WEZ": "Waktu Standar Eropa Barat", "HEPM": "Waktu Musim Panas Saint Pierre dan Miquelon", "HADT": "Waktu Musim Panas Hawaii-Aleutian", "MEZ": "Waktu Standar Eropa Tengah", "ChST": "Waktu Standar Chamorro", "TMST": "Waktu Musim Panas Turkmenistan", "MST": "Waktu Standar Makau", "CDT": "Waktu Musim Panas Tengah", "MYT": "Waktu Malaysia", "MESZ": "Waktu Musim Panas Eropa Tengah", "SRT": "Waktu Suriname", "ARST": "Waktu Musim Panas Argentina", "CAT": "Waktu Afrika Tengah", "HECU": "Waktu Musim Panas Kuba", "HNPMX": "Waktu Standar Pasifik Meksiko", "BT": "Waktu Bhutan", "PDT": "Waktu Musim Panas Pasifik", "HNPM": "Waktu Standar Saint Pierre dan Miquelon", "NZDT": "Waktu Musim Panas Selandia Baru", "ACDT": "Waktu Musim Panas Tengah Australia", "UYT": "Waktu Standar Uruguay", "PST": "Waktu Standar Pasifik", "AWDT": "Waktu Musim Panas Barat Australia", "EAT": "Waktu Afrika Timur", "HAT": "Waktu Musim Panas Newfoundland", "AWST": "Waktu Standar Barat Australia", "LHST": "Waktu Standar Lord Howe", "AKST": "Waktu Standar Alaska", "CST": "Waktu Standar Tengah", "WAT": "Waktu Standar Afrika Barat", "ECT": "Waktu Ekuador", "HNOG": "Waktu Standar Greenland Barat", "TMT": "Waktu Standar Turkmenistan", "AKDT": "Waktu Musim Panas Alaska", "LHDT": "Waktu Musim Panas Lord Howe", "NZST": "Waktu Standar Selandia Baru", "CLT": "Waktu Standar Cile", "JDT": "Waktu Musim Panas Jepang", "BOT": "Waktu Bolivia", "GFT": "Waktu Guyana Prancis", "AEST": "Waktu Standar Timur Australia", "WITA": "Waktu Indonesia Tengah", "SAST": "Waktu Standar Afrika Selatan", "OESZ": "Waktu Musim Panas Eropa Timur", "WART": "Waktu Standar Argentina Bagian Barat", "EDT": "Waktu Musim Panas Timur", "ART": "Waktu Standar Argentina", "AEDT": "Waktu Musim Panas Timur Australia", "HKT": "Waktu Standar Hong Kong", "CLST": "Waktu Musim Panas Cile", "WAST": "Waktu Musim Panas Afrika Barat", "HENOMX": "Waktu Musim Panas Meksiko Barat Laut", "SGT": "Waktu Standar Singapura", "WIB": "Waktu Indonesia Barat", "HEOG": "Waktu Musim Panas Greenland Barat", "AST": "Waktu Standar Atlantik", "HAST": "Waktu Standar Hawaii-Aleutian", "CHAST": "Waktu Standar Chatham", "CHADT": "Waktu Musim Panas Chatham", "HNEG": "Waktu Standar Greenland Timur", "COT": "Waktu Standar Kolombia", "COST": "Waktu Musim Panas Kolombia", "HNNOMX": "Waktu Standar Meksiko Barat Laut", "WIT": "Waktu Indonesia Timur", "ACWST": "Waktu Standar Barat Tengah Australia", "JST": "Waktu Standar Jepang", "EST": "Waktu Standar Timur", "MDT": "Waktu Musim Panas Makau", "GYT": "Waktu Guyana", "VET": "Waktu Venezuela", "ACST": "Waktu Standar Tengah Australia", "HNCU": "Waktu Standar Kuba", "WESZ": "Waktu Musim Panas Eropa Barat", "ACWDT": "Waktu Musim Panas Barat Tengah Australia", "HKST": "Waktu Musim Panas Hong Kong"},
++ locale: "id_ID",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HENOMX": "HENOMX", "OESZ": "OESZ", "WIT": "WIT", "SAST": "SAST", "ECT": "ECT", "ARST": "ARST", "EAT": "EAT", "UYST": "UYST", "CLST": "CLST", "HNEG": "HNEG", "HEOG": "HEOG", "HEPM": "HEPM", "AEDT": "AEDT", "CHADT": "CHADT", "ACWDT": "ACWDT", "WAT": "WAT", "COT": "COT", "CAT": "CAT", "HNPM": "HNPM", "HAST": "HAST", "MESZ": "MESZ", "GMT": "GMT", "PST": "PST", "VET": "VET", "GFT": "GFT", "CST": "CST", "UYT": "UYT", "MYT": "MYT", "BT": "BT", "SGT": "SGT", "WART": "WART", "HKT": "HKT", "ACDT": "ACDT", "JDT": "JDT", "IST": "IST", "PDT": "PDT", "HAT": "HAT", "CLT": "CLT", "ADT": "ADT", "SRT": "SRT", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "GYT": "GYT", "COST": "COST", "TMST": "TMST", "WITA": "WITA", "WIB": "WIB", "AST": "AST", "WARST": "WARST", "WEZ": "WEZ", "HECU": "HECU", "AKDT": "AKDT", "EST": "EST", "MEZ": "MEZ", "ACST": "ACST", "AWDT": "AWDT", "HADT": "HADT", "ART": "ART", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "CDT": "CDT", "MDT": "MDT", "JST": "JST", "ACWST": "ACWST", "WESZ": "WESZ", "HNT": "HNT", "HEEG": "HEEG", "CHAST": "CHAST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "WAST": "WAST", "AKST": "AKST", "MST": "MST", "ChST": "ChST", "LHST": "LHST", "AEST": "AEST", "TMT": "TMT", "NZST": "NZST", "AWST": "AWST", "BOT": "BOT", "HNOG": "HNOG", "EDT": "EDT", "HKST": "HKST", "NZDT": "NZDT", "OEZ": "OEZ"},
+ }
+ }
+ 
+@@ -113,7 +94,7 @@ func (id *id_ID) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (id *id_ID) MonthsAbbreviated() []string {
+- return id.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -123,7 +104,7 @@ func (id *id_ID) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (id *id_ID) MonthsNarrow() []string {
+- return id.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -133,7 +114,7 @@ func (id *id_ID) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (id *id_ID) MonthsWide() []string {
+- return id.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -179,73 +160,13 @@ func (id *id_ID) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'id_ID' and handles both Whole and Real numbers based on 'v'
+ func (id *id_ID) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, id.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, id.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, id.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'id_ID' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (id *id_ID) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, id.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, id.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, id.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'id_ID'
+@@ -253,56 +174,7 @@ func (id *id_ID) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := id.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, id.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, id.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, id.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, id.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'id_ID'
+@@ -311,64 +183,7 @@ func (id *id_ID) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := id.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, id.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, id.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, id.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, id.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'id_ID'
+@@ -376,27 +191,6 @@ func (id *id_ID) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -405,17 +199,6 @@ func (id *id_ID) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, id.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +207,6 @@ func (id *id_ID) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, id.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,24 +215,6 @@ func (id *id_ID) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, id.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, id.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -469,19 +223,6 @@ func (id *id_ID) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -490,26 +231,6 @@ func (id *id_ID) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -518,30 +239,6 @@ func (id *id_ID) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -550,34 +247,5 @@ func (id *id_ID) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := id.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ig/ig.go b/ig/ig.go
+index cffc159..b69f29c 100644
+--- a/ig/ig.go
++++ b/ig/ig.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"T.K.", "A.K."},
+ erasNarrow: []string{"T.K.", "A.K."},
+ erasWide: []string{"Tupu Kristi", "Afọ Kristi"},
+- timezones: map[string]string{"HNPMX": "HNPMX", "ADT": "ADT", "MESZ": "MESZ", "NZST": "NZST", "EDT": "EDT", "UYST": "UYST", "SRT": "SRT", "EST": "EST", "HNOG": "HNOG", "CHADT": "CHADT", "JDT": "JDT", "HAST": "HAST", "BT": "BT", "WEZ": "WEZ", "WITA": "WITA", "SAST": "SAST", "GFT": "GFT", "TMT": "TMT", "PDT": "PDT", "AEST": "AEST", "EAT": "EAT", "TMST": "TMST", "HEPMX": "HEPMX", "CST": "CST", "GYT": "GYT", "AWDT": "AWDT", "MEZ": "MEZ", "HNEG": "HNEG", "HEEG": "HEEG", "WART": "WART", "AKDT": "AKDT", "PST": "PST", "ARST": "ARST", "HKT": "HKT", "HNNOMX": "HNNOMX", "UYT": "UYT", "VET": "VET", "ACWST": "ACWST", "ACWDT": "ACWDT", "HKST": "HKST", "HNPM": "HNPM", "ChST": "ChST", "MST": "MST", "CLT": "CLT", "JST": "JST", "WAT": "WAT", "OESZ": "OESZ", "ECT": "ECT", "SGT": "SGT", "WIT": "WIT", "IST": "IST", "CAT": "CAT", "COST": "COST", "HENOMX": "HENOMX", "HNCU": "HNCU", "AEDT": "AEDT", "ACDT": "ACDT", "GMT": "GMT", "HECU": "HECU", "MDT": "MDT", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "LHST": "LHST", "NZDT": "NZDT", "BOT": "BOT", "ACST": "ACST", "WAST": "WAST", "CDT": "CDT", "MYT": "MYT", "WIB": "WIB", "HAT": "HAT", "HEOG": "HEOG", "CHAST": "CHAST", "CLST": "CLST", "HADT": "HADT", "WESZ": "WESZ", "ART": "ART", "AWST": "AWST", "OEZ": "OEZ", "WARST": "WARST", "COT": "COT", "AKST": "AKST", "AST": "AST", "HNT": "HNT", "HEPM": "HEPM"},
++ timezones: map[string]string{"COST": "COST", "HKST": "HKST", "TMST": "TMST", "ARST": "ARST", "GMT": "GMT", "HADT": "HADT", "HNEG": "HNEG", "HEPM": "HEPM", "LHST": "LHST", "PDT": "PDT", "EDT": "EDT", "ECT": "ECT", "ACST": "ACST", "LHDT": "LHDT", "WIT": "WIT", "CLT": "CLT", "CST": "CST", "CDT": "CDT", "ACDT": "ACDT", "ACWST": "ACWST", "AEST": "AEST", "HEPMX": "HEPMX", "AKST": "AKST", "SAST": "SAST", "COT": "COT", "HNNOMX": "HNNOMX", "JDT": "JDT", "AKDT": "AKDT", "GFT": "GFT", "∅∅∅": "∅∅∅", "ART": "ART", "BOT": "BOT", "CHAST": "CHAST", "OESZ": "OESZ", "GYT": "GYT", "TMT": "TMT", "AWDT": "AWDT", "UYST": "UYST", "ChST": "ChST", "JST": "JST", "AWST": "AWST", "ACWDT": "ACWDT", "WEZ": "WEZ", "WAST": "WAST", "WART": "WART", "HNOG": "HNOG", "EST": "EST", "CAT": "CAT", "HEEG": "HEEG", "SGT": "SGT", "AST": "AST", "HENOMX": "HENOMX", "BT": "BT", "VET": "VET", "WAT": "WAT", "CLST": "CLST", "WITA": "WITA", "NZST": "NZST", "HNPM": "HNPM", "CHADT": "CHADT", "HAT": "HAT", "WARST": "WARST", "HKT": "HKT", "WIB": "WIB", "MST": "MST", "MEZ": "MEZ", "AEDT": "AEDT", "UYT": "UYT", "IST": "IST", "HNPMX": "HNPMX", "WESZ": "WESZ", "HNT": "HNT", "ADT": "ADT", "MYT": "MYT", "OEZ": "OEZ", "MDT": "MDT", "HAST": "HAST", "MESZ": "MESZ", "PST": "PST", "HEOG": "HEOG", "NZDT": "NZDT", "SRT": "SRT", "EAT": "EAT", "HNCU": "HNCU", "HECU": "HECU"},
+ }
+ }
+ 
+diff --git a/ig_NG/ig_NG.go b/ig_NG/ig_NG.go
+index a4fb976..aed10a6 100644
+--- a/ig_NG/ig_NG.go
++++ b/ig_NG/ig_NG.go
+@@ -18,7 +18,6 @@ type ig_NG struct {
+ group string
+ minus string
+ percent string
+- percentSuffix string
+ perMille string
+ timeSeparator string
+ inifinity string
+@@ -43,31 +42,13 @@ type ig_NG struct {
+ // New returns a new instance of translator for the 'ig_NG' locale
+ func New() locales.Translator {
+ return &ig_NG{
+- locale: "ig_NG",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: "٫",
+- group: "٬",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- monthsAbbreviated: []string{"", "Jen", "Feb", "Maa", "Epr", "Mee", "Juu", "Jul", "Ọgọ", "Sep", "Ọkt", "Nov", "Dis"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "Jenụwarị", "Febrụwarị", "Maachị", "Eprel", "Mee", "Juun", "Julaị", "Ọgọọst", "Septemba", "Ọktoba", "Novemba", "Disemba"},
+- daysAbbreviated: []string{"Ụka", "Mọn", "Tiu", "Wen", "Tọọ", "Fraị", "Sat"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Ụka", "Mọn", "Tiu", "Wen", "Tọọ", "Fraị", "Sat"},
+- daysWide: []string{"Mbọsị Ụka", "Mọnde", "Tiuzdee", "Wenezdee", "Tọọzdee", "Fraịdee", "Satọdee"},
+- periodsAbbreviated: []string{"A.M.", "P.M."},
+- periodsNarrow: []string{"A.M.", "P.M."},
+- periodsWide: []string{"A.M.", "P.M."},
+- erasAbbreviated: []string{"T.K.", "A.K."},
+- erasNarrow: []string{"T.K.", "A.K."},
+- erasWide: []string{"Tupu Kristi", "Afọ Kristi"},
+- timezones: map[string]string{"ACWST": "ACWST", "CHAST": "CHAST", "CHADT": "CHADT", "HENOMX": "HENOMX", "PDT": "PDT", "AEDT": "AEDT", "HKT": "HKT", "IST": "IST", "ECT": "ECT", "UYT": "UYT", "WIT": "WIT", "ART": "ART", "ACDT": "ACDT", "WARST": "WARST", "HADT": "HADT", "JDT": "JDT", "GMT": "GMT", "HEPMX": "HEPMX", "WITA": "WITA", "BT": "BT", "AWDT": "AWDT", "CLST": "CLST", "JST": "JST", "HEEG": "HEEG", "EAT": "EAT", "WART": "WART", "VET": "VET", "MYT": "MYT", "OESZ": "OESZ", "CDT": "CDT", "WAT": "WAT", "HNEG": "HNEG", "COST": "COST", "HNPMX": "HNPMX", "ADT": "ADT", "GYT": "GYT", "NZDT": "NZDT", "BOT": "BOT", "PST": "PST", "ACWDT": "ACWDT", "MEZ": "MEZ", "AST": "AST", "SRT": "SRT", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "TMT": "TMT", "TMST": "TMST", "ACST": "ACST", "CAT": "CAT", "SGT": "SGT", "HAST": "HAST", "AKDT": "AKDT", "UYST": "UYST", "AKST": "AKST", "HAT": "HAT", "EST": "EST", "EDT": "EDT", "MST": "MST", "CST": "CST", "HNT": "HNT", "MESZ": "MESZ", "NZST": "NZST", "ChST": "ChST", "COT": "COT", "WIB": "WIB", "WESZ": "WESZ", "ARST": "ARST", "AEST": "AEST", "HKST": "HKST", "HNPM": "HNPM", "SAST": "SAST", "OEZ": "OEZ", "MDT": "MDT", "WEZ": "WEZ", "CLT": "CLT", "GFT": "GFT", "WAST": "WAST", "HNCU": "HNCU", "HECU": "HECU", "AWST": "AWST", "LHST": "LHST", "HNOG": "HNOG", "LHDT": "LHDT", "HNNOMX": "HNNOMX", "HEPM": "HEPM"},
++ locale: "ig_NG",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GFT": "GFT", "EDT": "EDT", "NZDT": "NZDT", "HNPM": "HNPM", "VET": "VET", "WARST": "WARST", "CAT": "CAT", "ACWDT": "ACWDT", "HECU": "HECU", "HNPMX": "HNPMX", "TMST": "TMST", "NZST": "NZST", "MYT": "MYT", "OESZ": "OESZ", "WIB": "WIB", "HADT": "HADT", "SAST": "SAST", "OEZ": "OEZ", "ACST": "ACST", "ACDT": "ACDT", "HNEG": "HNEG", "SGT": "SGT", "ARST": "ARST", "GYT": "GYT", "LHST": "LHST", "CHADT": "CHADT", "WAST": "WAST", "AKDT": "AKDT", "CST": "CST", "ADT": "ADT", "GMT": "GMT", "ART": "ART", "HKT": "HKT", "ECT": "ECT", "WEZ": "WEZ", "WESZ": "WESZ", "CDT": "CDT", "AWDT": "AWDT", "IST": "IST", "AKST": "AKST", "HEPMX": "HEPMX", "∅∅∅": "∅∅∅", "WITA": "WITA", "MST": "MST", "HNCU": "HNCU", "JST": "JST", "UYT": "UYT", "BT": "BT", "COT": "COT", "CLST": "CLST", "EAT": "EAT", "MEZ": "MEZ", "LHDT": "LHDT", "MESZ": "MESZ", "WIT": "WIT", "HNOG": "HNOG", "EST": "EST", "HKST": "HKST", "HEEG": "HEEG", "HAT": "HAT", "AEST": "AEST", "CHAST": "CHAST", "WAT": "WAT", "WART": "WART", "AST": "AST", "SRT": "SRT", "HNNOMX": "HNNOMX", "AWST": "AWST", "COST": "COST", "BOT": "BOT", "HEPM": "HEPM", "JDT": "JDT", "PST": "PST", "TMT": "TMT", "CLT": "CLT", "MDT": "MDT", "ChST": "ChST", "ACWST": "ACWST", "AEDT": "AEDT", "HNT": "HNT", "HEOG": "HEOG", "HAST": "HAST", "HENOMX": "HENOMX", "UYST": "UYST", "PDT": "PDT"},
+ }
+ }
+ 
+@@ -113,7 +94,7 @@ func (ig *ig_NG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ig *ig_NG) MonthsAbbreviated() []string {
+- return ig.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -123,7 +104,7 @@ func (ig *ig_NG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ig *ig_NG) MonthsNarrow() []string {
+- return ig.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -133,7 +114,7 @@ func (ig *ig_NG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ig *ig_NG) MonthsWide() []string {
+- return ig.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -179,81 +160,13 @@ func (ig *ig_NG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ig_NG' and handles both Whole and Real numbers based on 'v'
+ func (ig *ig_NG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ig.decimal) - 1; j >= 0; j-- {
+- b = append(b, ig.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ig.group) - 1; j >= 0; j-- {
+- b = append(b, ig.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ig.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ig_NG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ig *ig_NG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ig.decimal) - 1; j >= 0; j-- {
+- b = append(b, ig.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ig.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ig.percentSuffix...)
+-
+- b = append(b, ig.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ig_NG'
+@@ -261,60 +174,7 @@ func (ig *ig_NG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ig.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ig.decimal) - 1; j >= 0; j-- {
+- b = append(b, ig.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ig.group) - 1; j >= 0; j-- {
+- b = append(b, ig.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ig.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ig.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ig_NG'
+@@ -323,68 +183,7 @@ func (ig *ig_NG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ig.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ig.decimal) - 1; j >= 0; j-- {
+- b = append(b, ig.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ig.group) - 1; j >= 0; j-- {
+- b = append(b, ig.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ig.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ig.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ig_NG'
+@@ -392,27 +191,6 @@ func (ig *ig_NG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -421,17 +199,6 @@ func (ig *ig_NG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ig.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -440,17 +207,6 @@ func (ig *ig_NG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ig.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -459,19 +215,6 @@ func (ig *ig_NG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ig.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ig.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -480,19 +223,6 @@ func (ig *ig_NG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ig.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -501,26 +231,6 @@ func (ig *ig_NG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ig.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ig.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -529,30 +239,6 @@ func (ig *ig_NG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ig.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ig.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -561,34 +247,5 @@ func (ig *ig_NG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ig.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ig.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ig.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ii/ii.go b/ii/ii.go
+index a30ad35..c55da5c 100644
+--- a/ii/ii.go
++++ b/ii/ii.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ꃅꋊꂿ", "ꃅꋊꊂ"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"NZDT": "NZDT", "OEZ": "OEZ", "MST": "MST", "GYT": "GYT", "ART": "ART", "WITA": "WITA", "HNPM": "HNPM", "MEZ": "MEZ", "LHST": "LHST", "AST": "AST", "HEOG": "HEOG", "AWDT": "AWDT", "CHAST": "CHAST", "WAST": "WAST", "HNOG": "HNOG", "HKT": "HKT", "CAT": "CAT", "HEPMX": "HEPMX", "VET": "VET", "BT": "BT", "HNT": "HNT", "AWST": "AWST", "HKST": "HKST", "ECT": "ECT", "HENOMX": "HENOMX", "SGT": "SGT", "ADT": "ADT", "WIB": "WIB", "HADT": "HADT", "ACST": "ACST", "CHADT": "CHADT", "WART": "WART", "WARST": "WARST", "COT": "COT", "AKST": "AKST", "MYT": "MYT", "HAT": "HAT", "HEPM": "HEPM", "SAST": "SAST", "LHDT": "LHDT", "EST": "EST", "EDT": "EDT", "MDT": "MDT", "WEZ": "WEZ", "ACWST": "ACWST", "ARST": "ARST", "MESZ": "MESZ", "BOT": "BOT", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "UYT": "UYT", "CLST": "CLST", "HNEG": "HNEG", "WAT": "WAT", "COST": "COST", "PDT": "PDT", "ChST": "ChST", "ACDT": "ACDT", "OESZ": "OESZ", "HNCU": "HNCU", "CST": "CST", "CDT": "CDT", "WIT": "WIT", "NZST": "NZST", "GMT": "GMT", "UYST": "UYST", "SRT": "SRT", "PST": "PST", "CLT": "CLT", "JST": "JST", "HNNOMX": "HNNOMX", "WESZ": "WESZ", "IST": "IST", "TMT": "TMT", "GFT": "GFT", "EAT": "EAT", "HECU": "HECU", "HAST": "HAST", "ACWDT": "ACWDT", "AEST": "AEST", "AEDT": "AEDT", "HEEG": "HEEG", "HNPMX": "HNPMX", "JDT": "JDT", "TMST": "TMST"},
++ timezones: map[string]string{"COST": "COST", "CLST": "CLST", "MESZ": "MESZ", "HNPM": "HNPM", "CHADT": "CHADT", "CDT": "CDT", "MEZ": "MEZ", "IST": "IST", "WART": "WART", "TMST": "TMST", "GMT": "GMT", "MYT": "MYT", "AEDT": "AEDT", "BT": "BT", "HNPMX": "HNPMX", "SGT": "SGT", "CAT": "CAT", "CLT": "CLT", "WIB": "WIB", "MDT": "MDT", "NZDT": "NZDT", "AST": "AST", "ACWST": "ACWST", "OESZ": "OESZ", "WIT": "WIT", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "AWDT": "AWDT", "VET": "VET", "OEZ": "OEZ", "CST": "CST", "ECT": "ECT", "JST": "JST", "JDT": "JDT", "LHDT": "LHDT", "AKDT": "AKDT", "HNOG": "HNOG", "HKT": "HKT", "HADT": "HADT", "ACDT": "ACDT", "AEST": "AEST", "PST": "PST", "HECU": "HECU", "WARST": "WARST", "EDT": "EDT", "HAST": "HAST", "CHAST": "CHAST", "WAT": "WAT", "WAST": "WAST", "NZST": "NZST", "BOT": "BOT", "SRT": "SRT", "EAT": "EAT", "HKST": "HKST", "UYT": "UYT", "HEPMX": "HEPMX", "WEZ": "WEZ", "ADT": "ADT", "HENOMX": "HENOMX", "UYST": "UYST", "AKST": "AKST", "GYT": "GYT", "MST": "MST", "ARST": "ARST", "HEOG": "HEOG", "EST": "EST", "WITA": "WITA", "HNEG": "HNEG", "AWST": "AWST", "COT": "COT", "ART": "ART", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "SAST": "SAST", "ACST": "ACST", "PDT": "PDT", "WESZ": "WESZ", "GFT": "GFT", "TMT": "TMT", "ChST": "ChST", "LHST": "LHST", "HEPM": "HEPM", "ACWDT": "ACWDT", "HNT": "HNT", "HAT": "HAT"},
+ }
+ }
+ 
+diff --git a/ii_CN/ii_CN.go b/ii_CN/ii_CN.go
+index 0fc819b..8adbfa8 100644
+--- a/ii_CN/ii_CN.go
++++ b/ii_CN/ii_CN.go
+@@ -10,64 +10,45 @@ import (
+ )
+ 
+ type ii_CN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ii_CN' locale
+ func New() locales.Translator {
+ return &ii_CN{
+- locale: "ii_CN",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "ꋍꆪ", "ꑍꆪ", "ꌕꆪ", "ꇖꆪ", "ꉬꆪ", "ꃘꆪ", "ꏃꆪ", "ꉆꆪ", "ꈬꆪ", "ꊰꆪ", "ꊰꊪꆪ", "ꊰꑋꆪ"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "ꋍꆪ", "ꑍꆪ", "ꌕꆪ", "ꇖꆪ", "ꉬꆪ", "ꃘꆪ", "ꏃꆪ", "ꉆꆪ", "ꈬꆪ", "ꊰꆪ", "ꊰꊪꆪ", "ꊰꑋꆪ"},
+- daysAbbreviated: []string{"ꑭꆏ", "ꆏꋍ", "ꆏꑍ", "ꆏꌕ", "ꆏꇖ", "ꆏꉬ", "ꆏꃘ"},
+- daysNarrow: []string{"ꆏ", "ꋍ", "ꑍ", "ꌕ", "ꇖ", "ꉬ", "ꃘ"},
+- daysWide: []string{"ꑭꆏꑍ", "ꆏꊂꋍ", "ꆏꊂꑍ", "ꆏꊂꌕ", "ꆏꊂꇖ", "ꆏꊂꉬ", "ꆏꊂꃘ"},
+- periodsAbbreviated: []string{"ꎸꄑ", "ꁯꋒ"},
+- periodsWide: []string{"ꎸꄑ", "ꁯꋒ"},
+- erasAbbreviated: []string{"ꃅꋊꂿ", "ꃅꋊꊂ"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"HNPM": "HNPM", "HEPMX": "HEPMX", "JDT": "JDT", "ChST": "ChST", "OESZ": "OESZ", "HECU": "HECU", "AKST": "AKST", "ADT": "ADT", "HENOMX": "HENOMX", "ACWST": "ACWST", "HEPM": "HEPM", "NZDT": "NZDT", "GFT": "GFT", "TMT": "TMT", "WARST": "WARST", "COST": "COST", "CHAST": "CHAST", "CAT": "CAT", "HNPMX": "HNPMX", "VET": "VET", "SAST": "SAST", "IST": "IST", "∅∅∅": "∅∅∅", "UYST": "UYST", "AEST": "AEST", "AEDT": "AEDT", "MESZ": "MESZ", "HEEG": "HEEG", "WAT": "WAT", "COT": "COT", "EST": "EST", "MEZ": "MEZ", "ACDT": "ACDT", "HAST": "HAST", "BT": "BT", "ART": "ART", "AWST": "AWST", "CST": "CST", "HNOG": "HNOG", "HEOG": "HEOG", "CLT": "CLT", "WAST": "WAST", "MYT": "MYT", "UYT": "UYT", "HAT": "HAT", "CLST": "CLST", "ACST": "ACST", "GMT": "GMT", "HNCU": "HNCU", "SRT": "SRT", "PST": "PST", "WEZ": "WEZ", "ACWDT": "ACWDT", "HKT": "HKT", "WITA": "WITA", "NZST": "NZST", "CDT": "CDT", "AST": "AST", "MST": "MST", "WESZ": "WESZ", "AWDT": "AWDT", "LHST": "LHST", "WART": "WART", "SGT": "SGT", "AKDT": "AKDT", "WIB": "WIB", "HADT": "HADT", "WIT": "WIT", "PDT": "PDT", "HKST": "HKST", "ECT": "ECT", "MDT": "MDT", "LHDT": "LHDT", "JST": "JST", "EAT": "EAT", "HNT": "HNT", "CHADT": "CHADT", "BOT": "BOT", "TMST": "TMST", "OEZ": "OEZ", "EDT": "EDT", "GYT": "GYT", "ARST": "ARST", "HNEG": "HNEG", "HNNOMX": "HNNOMX"},
++ locale: "ii_CN",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AST": "AST", "ADT": "ADT", "ChST": "ChST", "HEPM": "HEPM", "PST": "PST", "AEST": "AEST", "EDT": "EDT", "NZST": "NZST", "VET": "VET", "GFT": "GFT", "CHAST": "CHAST", "HNCU": "HNCU", "WIT": "WIT", "NZDT": "NZDT", "BT": "BT", "WAST": "WAST", "JDT": "JDT", "WESZ": "WESZ", "ACST": "ACST", "UYST": "UYST", "ACWST": "ACWST", "HEPMX": "HEPMX", "OESZ": "OESZ", "HAT": "HAT", "CAT": "CAT", "CLST": "CLST", "GYT": "GYT", "WEZ": "WEZ", "OEZ": "OEZ", "HAST": "HAST", "AEDT": "AEDT", "AWDT": "AWDT", "IST": "IST", "WART": "WART", "SAST": "SAST", "GMT": "GMT", "SRT": "SRT", "WITA": "WITA", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "HECU": "HECU", "AKDT": "AKDT", "HADT": "HADT", "HNEG": "HNEG", "HNPMX": "HNPMX", "WIB": "WIB", "JST": "JST", "MEZ": "MEZ", "LHST": "LHST", "AKST": "AKST", "EST": "EST", "CST": "CST", "HEEG": "HEEG", "UYT": "UYT", "WAT": "WAT", "COST": "COST", "HNOG": "HNOG", "ARST": "ARST", "ACDT": "ACDT", "ART": "ART", "BOT": "BOT", "AWST": "AWST", "SGT": "SGT", "WARST": "WARST", "COT": "COT", "TMT": "TMT", "TMST": "TMST", "MESZ": "MESZ", "HKT": "HKT", "CDT": "CDT", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "HNPM": "HNPM", "CLT": "CLT", "∅∅∅": "∅∅∅", "MDT": "MDT", "ECT": "ECT", "MYT": "MYT", "HKST": "HKST", "MST": "MST", "CHADT": "CHADT", "HNT": "HNT", "HEOG": "HEOG", "EAT": "EAT", "PDT": "PDT"},
+ }
+ }
+ 
+@@ -113,7 +94,7 @@ func (ii *ii_CN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ii *ii_CN) MonthsAbbreviated() []string {
+- return ii.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -123,7 +104,7 @@ func (ii *ii_CN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ii *ii_CN) MonthsNarrow() []string {
+- return ii.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -133,7 +114,7 @@ func (ii *ii_CN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ii *ii_CN) MonthsWide() []string {
+- return ii.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -179,73 +160,13 @@ func (ii *ii_CN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ii_CN' and handles both Whole and Real numbers based on 'v'
+ func (ii *ii_CN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ii.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ii.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ii.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ii_CN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ii *ii_CN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ii.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ii.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ii.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ii_CN'
+@@ -253,60 +174,7 @@ func (ii *ii_CN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ii.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ii.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ii.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ii.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, ii.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ii.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ii.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ii_CN'
+@@ -315,72 +183,7 @@ func (ii *ii_CN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ii.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ii.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ii.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ii.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, ii.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, ii.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ii.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, ii.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ii.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ii_CN'
+@@ -388,28 +191,6 @@ func (ii *ii_CN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -418,17 +199,6 @@ func (ii *ii_CN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ii.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -437,17 +207,6 @@ func (ii *ii_CN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ii.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -456,19 +215,6 @@ func (ii *ii_CN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ii.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, ii.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -477,28 +223,6 @@ func (ii *ii_CN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ii.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ii.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ii.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -507,35 +231,6 @@ func (ii *ii_CN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ii.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ii.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ii.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ii.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -544,40 +239,6 @@ func (ii *ii_CN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ii.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ii.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ii.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ii.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,44 +247,5 @@ func (ii *ii_CN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ii.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ii.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ii.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ii.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ii.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/is/is.go b/is/is.go
+index 594baad..7838dfa 100644
+--- a/is/is.go
++++ b/is/is.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"f.Kr.", "e.Kr."},
+ erasNarrow: []string{"f.k.", "e.k."},
+ erasWide: []string{"fyrir Krist", "eftir Krist"},
+- timezones: map[string]string{"VET": "Venesúelatími", "MESZ": "Sumartími í Mið-Evrópu", "GFT": "Tími í Frönsku Gvæjana", "EAT": "Austur-Afríkutími", "CST": "Staðaltími í miðhluta Bandaríkjanna og Kanada", "HEOG": "Sumartími á Vestur-Grænlandi", "PDT": "Sumartími á Kyrrahafssvæðinu", "ACWDT": "Sumartími í miðvesturhluta Ástralíu", "AWST": "Staðaltími í Vestur-Ástralíu", "CHAST": "Staðaltími í Chatham", "IST": "Indlandstími", "UYT": "Staðaltími í Úrúgvæ", "AEST": "Staðaltími í Austur-Ástralíu", "NZST": "Staðaltími á Nýja-Sjálandi", "NZDT": "Sumartími á Nýja-Sjálandi", "ACST": "Staðaltími í Mið-Ástralíu", "HNNOMX": "Staðaltími í Norðvestur-Mexíkó", "HNCU": "Staðaltími á Kúbu", "HEPMX": "Sumartími í Mexíkó á Kyrrahafssvæðinu", "BT": "Bútantími", "HNOG": "Staðaltími á Vestur-Grænlandi", "WEZ": "Staðaltími í Vestur-Evrópu", "ChST": "Chamorro-staðaltími", "SGT": "Singapúrtími", "EDT": "Sumartími í austurhluta Bandaríkjanna og Kanada", "WESZ": "Sumartími í Vestur-Evrópu", "SAST": "Suður-Afríkutími", "OESZ": "Sumartími í Austur-Evrópu", "AKST": "Staðaltími í Alaska", "HADT": "Sumartími á Havaí og Aleúta", "ACWST": "Staðaltími í miðvesturhluta Ástralíu", "∅∅∅": "Sumartími á Amasónsvæðinu", "WAT": "Staðaltími í Vestur-Afríku", "EST": "Staðaltími í austurhluta Bandaríkjanna og Kanada", "WIB": "Vestur-Indónesíutími", "ART": "Staðaltími í Argentínu", "JDT": "Sumartími í Japan", "TMST": "Sumartími í Túrkmenistan", "WAST": "Sumartími í Vestur-Afríku", "WARST": "Sumartími í Vestur-Argentínu", "WIT": "Austur-Indónesíutími", "AWDT": "Sumartími í Vestur-Ástralíu", "MEZ": "Staðaltími í Mið-Evrópu", "CLT": "Staðaltími í Síle", "TMT": "Staðaltími í Túrkmenistan", "ACDT": "Sumartími í Mið-Ástralíu", "OEZ": "Staðaltími í Austur-Evrópu", "UYST": "Sumartími í Úrúgvæ", "ADT": "Sumartími á Atlantshafssvæðinu", "SRT": "Súrinamtími", "HNT": "Staðaltími á Nýfundnalandi", "HEPM": "Sumartími á Sankti Pierre og Miquelon", "JST": "Staðaltími í Japan", "HEEG": "Sumartími á Austur-Grænlandi", "ECT": "Ekvadortími", "WART": "Staðaltími í Vestur-Argentínu", "CHADT": "Sumartími í Chatham", "HNPMX": "Staðaltími í Mexíkó á Kyrrahafssvæðinu", "HKT": "Staðaltími í Hong Kong", "HNEG": "Staðaltími á Austur-Grænlandi", "COST": "Sumartími í Kólumbíu", "CDT": "Sumartími í miðhluta Bandaríkjanna og Kanada", "AST": "Staðaltími á Atlantshafssvæðinu", "MYT": "Malasíutími", "WITA": "Mið-Indónesíutími", "HKST": "Sumartími í Hong Kong", "HNPM": "Staðaltími á Sankti Pierre og Miquelon", "CLST": "Sumartími í Síle", "AKDT": "Sumartími í Alaska", "ARST": "Sumartími í Argentínu", "LHDT": "Sumartími á Lord Howe-eyju", "GMT": "Greenwich-staðaltími", "HECU": "Sumartími á Kúbu", "MST": "MST", "MDT": "MDT", "HAT": "Sumartími á Nýfundnalandi", "AEDT": "Sumartími í Austur-Ástralíu", "LHST": "Staðaltími á Lord Howe-eyju", "CAT": "Mið-Afríkutími", "GYT": "Gvæjanatími", "HAST": "Staðaltími á Havaí og Aleúta", "PST": "Staðaltími á Kyrrahafssvæðinu", "BOT": "Bólivíutími", "COT": "Staðaltími í Kólumbíu", "HENOMX": "Sumartími í Norðvestur-Mexíkó"},
++ timezones: map[string]string{"BOT": "Bólivíutími", "HNEG": "Staðaltími á Austur-Grænlandi", "CAT": "Mið-Afríkutími", "WIB": "Vestur-Indónesíutími", "HEEG": "Sumartími á Austur-Grænlandi", "WARST": "Sumartími í Vestur-Argentínu", "CLT": "Staðaltími í Síle", "ACWDT": "Sumartími í miðvesturhluta Ástralíu", "HNT": "Staðaltími á Nýfundnalandi", "TMST": "Sumartími í Túrkmenistan", "MESZ": "Sumartími í Mið-Evrópu", "LHST": "Staðaltími á Lord Howe-eyju", "IST": "Indlandstími", "ACST": "Staðaltími í Mið-Ástralíu", "WESZ": "Sumartími í Vestur-Evrópu", "SGT": "Singapúrtími", "VET": "Venesúelatími", "COST": "Sumartími í Kólumbíu", "CLST": "Sumartími í Síle", "NZST": "Staðaltími á Nýja-Sjálandi", "HAST": "Staðaltími á Havaí og Aleúta", "HADT": "Sumartími á Havaí og Aleúta", "ACDT": "Sumartími í Mið-Ástralíu", "ADT": "Sumartími á Atlantshafssvæðinu", "WAT": "Staðaltími í Vestur-Afríku", "OESZ": "Sumartími í Austur-Evrópu", "WIT": "Austur-Indónesíutími", "MEZ": "Staðaltími í Mið-Evrópu", "AEDT": "Sumartími í Austur-Ástralíu", "WEZ": "Staðaltími í Vestur-Evrópu", "GFT": "Tími í Frönsku Gvæjana", "WART": "Staðaltími í Vestur-Argentínu", "EST": "Staðaltími í austurhluta Bandaríkjanna og Kanada", "ChST": "Chamorro-staðaltími", "HNPM": "Staðaltími á Sankti Pierre og Miquelon", "CHADT": "Sumartími í Chatham", "UYST": "Sumartími í Úrúgvæ", "∅∅∅": "∅∅∅", "HNCU": "Staðaltími á Kúbu", "CDT": "Sumartími í miðhluta Bandaríkjanna og Kanada", "HNPMX": "Staðaltími í Mexíkó á Kyrrahafssvæðinu", "AKDT": "Sumartími í Alaska", "HAT": "Sumartími á Nýfundnalandi", "HNOG": "Staðaltími á Vestur-Grænlandi", "HKT": "Staðaltími í Hong Kong", "NZDT": "Sumartími á Nýja-Sjálandi", "UYT": "Staðaltími í Úrúgvæ", "BT": "Bútantími", "HECU": "Sumartími á Kúbu", "OEZ": "Staðaltími í Austur-Evrópu", "TMT": "Staðaltími í Túrkmenistan", "ARST": "Sumartími í Argentínu", "HENOMX": "Sumartími í Norðvestur-Mexíkó", "CHAST": "Staðaltími í Chatham", "ACWST": "Staðaltími í miðvesturhluta Ástralíu", "SAST": "Suður-Afríkutími", "ECT": "Ekvadortími", "AST": "Staðaltími á Atlantshafssvæðinu", "ART": "Staðaltími í Argentínu", "AWDT": "Sumartími í Vestur-Ástralíu", "HEPM": "Sumartími á Sankti Pierre og Miquelon", "AEST": "Staðaltími í Austur-Ástralíu", "MDT": "Sumartími í Klettafjöllum", "MYT": "Malasíutími", "COT": "Staðaltími í Kólumbíu", "HEPMX": "Sumartími í Mexíkó á Kyrrahafssvæðinu", "WAST": "Sumartími í Vestur-Afríku", "WITA": "Mið-Indónesíutími", "GMT": "Greenwich-staðaltími", "EAT": "Austur-Afríkutími", "LHDT": "Sumartími á Lord Howe-eyju", "PST": "Staðaltími á Kyrrahafssvæðinu", "HEOG": "Sumartími á Vestur-Grænlandi", "HKST": "Sumartími í Hong Kong", "MST": "Staðaltími í Klettafjöllum", "JDT": "Sumartími í Japan", "AKST": "Staðaltími í Alaska", "JST": "Staðaltími í Japan", "PDT": "Sumartími á Kyrrahafssvæðinu", "GYT": "Gvæjanatími", "EDT": "Sumartími í austurhluta Bandaríkjanna og Kanada", "CST": "Staðaltími í miðhluta Bandaríkjanna og Kanada", "SRT": "Súrinamtími", "HNNOMX": "Staðaltími í Norðvestur-Mexíkó", "AWST": "Staðaltími í Vestur-Ástralíu"},
+ }
+ }
+ 
+diff --git a/is_IS/is_IS.go b/is_IS/is_IS.go
+index 2a2687e..8388131 100644
+--- a/is_IS/is_IS.go
++++ b/is_IS/is_IS.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type is_IS struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'is_IS' locale
+ func New() locales.Translator {
+ return &is_IS{
+- locale: "is_IS",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mar.", "apr.", "maí", "jún.", "júl.", "ágú.", "sep.", "okt.", "nóv.", "des."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "Á", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janúar", "febrúar", "mars", "apríl", "maí", "júní", "júlí", "ágúst", "september", "október", "nóvember", "desember"},
+- daysAbbreviated: []string{"sun.", "mán.", "þri.", "mið.", "fim.", "fös.", "lau."},
+- daysNarrow: []string{"S", "M", "Þ", "M", "F", "F", "L"},
+- daysShort: []string{"su.", "má.", "þr.", "mi.", "fi.", "fö.", "la."},
+- daysWide: []string{"sunnudagur", "mánudagur", "þriðjudagur", "miðvikudagur", "fimmtudagur", "föstudagur", "laugardagur"},
+- periodsAbbreviated: []string{"f.h.", "e.h."},
+- periodsNarrow: []string{"f.", "e."},
+- periodsWide: []string{"f.h.", "e.h."},
+- erasAbbreviated: []string{"f.Kr.", "e.Kr."},
+- erasNarrow: []string{"f.k.", "e.k."},
+- erasWide: []string{"fyrir Krist", "eftir Krist"},
+- timezones: map[string]string{"MST": "MST", "HKT": "Staðaltími í Hong Kong", "OESZ": "Sumartími í Austur-Evrópu", "OEZ": "Staðaltími í Austur-Evrópu", "ECT": "Ekvadortími", "EAT": "Austur-Afríkutími", "HECU": "Sumartími á Kúbu", "CST": "Staðaltími í miðhluta Bandaríkjanna og Kanada", "PDT": "Sumartími á Kyrrahafssvæðinu", "CHAST": "Staðaltími í Chatham", "LHDT": "Sumartími á Lord Howe-eyju", "HNNOMX": "Staðaltími í Norðvestur-Mexíkó", "JST": "Staðaltími í Japan", "JDT": "Sumartími í Japan", "HEEG": "Sumartími á Austur-Grænlandi", "∅∅∅": "Sumartími á Asóreyjum", "SGT": "Singapúrtími", "AEST": "Staðaltími í Austur-Ástralíu", "AEDT": "Sumartími í Austur-Ástralíu", "AWST": "Staðaltími í Vestur-Ástralíu", "ChST": "Chamorro-staðaltími", "GFT": "Tími í Frönsku Gvæjana", "HNCU": "Staðaltími á Kúbu", "EDT": "Sumartími í austurhluta Bandaríkjanna og Kanada", "HNPM": "Staðaltími á Sankti Pierre og Miquelon", "NZDT": "Sumartími á Nýja-Sjálandi", "MESZ": "Sumartími í Mið-Evrópu", "WARST": "Sumartími í Vestur-Argentínu", "ACWDT": "Sumartími í miðvesturhluta Ástralíu", "HAT": "Sumartími á Nýfundnalandi", "IST": "Indlandstími", "HNEG": "Staðaltími á Austur-Grænlandi", "CAT": "Mið-Afríkutími", "AKST": "Staðaltími í Alaska", "WIT": "Austur-Indónesíutími", "VET": "Venesúelatími", "WEZ": "Staðaltími í Vestur-Evrópu", "LHST": "Staðaltími á Lord Howe-eyju", "AKDT": "Sumartími í Alaska", "HAST": "Staðaltími á Havaí og Aleúta", "SRT": "Súrinamtími", "MEZ": "Staðaltími í Mið-Evrópu", "WAT": "Staðaltími í Vestur-Afríku", "WART": "Staðaltími í Vestur-Argentínu", "HEPMX": "Sumartími í Mexíkó á Kyrrahafssvæðinu", "HADT": "Sumartími á Havaí og Aleúta", "HEOG": "Sumartími á Vestur-Grænlandi", "AWDT": "Sumartími í Vestur-Ástralíu", "ACDT": "Sumartími í Mið-Ástralíu", "HEPM": "Sumartími á Sankti Pierre og Miquelon", "CLST": "Sumartími í Síle", "TMST": "Sumartími í Túrkmenistan", "GYT": "Gvæjanatími", "UYT": "Staðaltími í Úrúgvæ", "HNT": "Staðaltími á Nýfundnalandi", "HKST": "Sumartími í Hong Kong", "WITA": "Mið-Indónesíutími", "MYT": "Malasíutími", "CHADT": "Sumartími í Chatham", "ACST": "Staðaltími í Mið-Ástralíu", "COT": "Staðaltími í Kólumbíu", "HNPMX": "Staðaltími í Mexíkó á Kyrrahafssvæðinu", "EST": "Staðaltími í austurhluta Bandaríkjanna og Kanada", "WIB": "Vestur-Indónesíutími", "HNOG": "Staðaltími á Vestur-Grænlandi", "COST": "Sumartími í Kólumbíu", "AST": "Staðaltími á Atlantshafssvæðinu", "WESZ": "Sumartími í Vestur-Evrópu", "NZST": "Staðaltími á Nýja-Sjálandi", "HENOMX": "Sumartími í Norðvestur-Mexíkó", "ARST": "Sumartími í Argentínu", "CLT": "Staðaltími í Síle", "GMT": "Greenwich-staðaltími", "CDT": "Sumartími í miðhluta Bandaríkjanna og Kanada", "ADT": "Sumartími á Atlantshafssvæðinu", "ACWST": "Staðaltími í miðvesturhluta Ástralíu", "ART": "Staðaltími í Argentínu", "UYST": "Sumartími í Úrúgvæ", "PST": "Staðaltími á Kyrrahafssvæðinu", "SAST": "Suður-Afríkutími", "TMT": "Staðaltími í Túrkmenistan", "WAST": "Sumartími í Vestur-Afríku", "MDT": "MDT", "BT": "Bútantími", "BOT": "Bólivíutími"},
++ locale: "is_IS",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GYT": "GYT", "COST": "COST", "ARST": "ARST", "PDT": "PDT", "PST": "PST", "HAT": "HAT", "SAST": "SAST", "AWDT": "AWDT", "WIT": "WIT", "MESZ": "MESZ", "AEST": "AEST", "HEOG": "HEOG", "MST": "MST", "HNEG": "HNEG", "JST": "JST", "BT": "BT", "AKDT": "AKDT", "EDT": "EDT", "NZST": "NZST", "AST": "AST", "MYT": "MYT", "WITA": "WITA", "ADT": "ADT", "ChST": "ChST", "WAST": "WAST", "WART": "WART", "NZDT": "NZDT", "HENOMX": "HENOMX", "LHST": "LHST", "LHDT": "LHDT", "ACWST": "ACWST", "WESZ": "WESZ", "VET": "VET", "CLT": "CLT", "CST": "CST", "HAST": "HAST", "BOT": "BOT", "HEPM": "HEPM", "HNOG": "HNOG", "CAT": "CAT", "HADT": "HADT", "IST": "IST", "ACWDT": "ACWDT", "HNT": "HNT", "HKST": "HKST", "CLST": "CLST", "MDT": "MDT", "MEZ": "MEZ", "ACST": "ACST", "AEDT": "AEDT", "COT": "COT", "EAT": "EAT", "UYT": "UYT", "AKST": "AKST", "TMT": "TMT", "TMST": "TMST", "ART": "ART", "HEEG": "HEEG", "JDT": "JDT", "CHADT": "CHADT", "WEZ": "WEZ", "HNCU": "HNCU", "HEPMX": "HEPMX", "WAT": "WAT", "OEZ": "OEZ", "AWST": "AWST", "SRT": "SRT", "GMT": "GMT", "HNNOMX": "HNNOMX", "∅∅∅": "∅∅∅", "SGT": "SGT", "WARST": "WARST", "HKT": "HKT", "ECT": "ECT", "ACDT": "ACDT", "HECU": "HECU", "HNPMX": "HNPMX", "WIB": "WIB", "CHAST": "CHAST", "UYST": "UYST", "OESZ": "OESZ", "GFT": "GFT", "EST": "EST", "CDT": "CDT", "HNPM": "HNPM"},
+ }
+ }
+ 
+@@ -141,7 +118,7 @@ func (is *is_IS) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (is *is_IS) MonthsAbbreviated() []string {
+- return is.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -151,7 +128,7 @@ func (is *is_IS) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (is *is_IS) MonthsNarrow() []string {
+- return is.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -161,7 +138,7 @@ func (is *is_IS) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (is *is_IS) MonthsWide() []string {
+- return is.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -207,73 +184,13 @@ func (is *is_IS) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'is_IS' and handles both Whole and Real numbers based on 'v'
+ func (is *is_IS) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, is.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, is.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, is.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'is_IS' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (is *is_IS) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, is.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, is.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, is.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'is_IS'
+@@ -281,56 +198,7 @@ func (is *is_IS) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := is.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, is.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, is.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, is.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, is.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, is.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'is_IS'
+@@ -339,63 +207,7 @@ func (is *is_IS) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := is.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, is.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, is.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, is.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, is.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, is.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, is.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'is_IS'
+@@ -403,17 +215,6 @@ func (is *is_IS) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -422,17 +223,6 @@ func (is *is_IS) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, is.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -441,17 +231,6 @@ func (is *is_IS) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, is.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -460,19 +239,6 @@ func (is *is_IS) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, is.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, is.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -481,19 +247,6 @@ func (is *is_IS) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, is.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -502,26 +255,6 @@ func (is *is_IS) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, is.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, is.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -530,30 +263,6 @@ func (is *is_IS) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, is.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, is.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -562,34 +271,5 @@ func (is *is_IS) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, is.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, is.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := is.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/it/it.go b/it/it.go
+index c93d019..e5bad77 100644
+--- a/it/it.go
++++ b/it/it.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"a.C.", "d.C."},
+ erasNarrow: []string{"aC", "dC"},
+ erasWide: []string{"avanti Cristo", "dopo Cristo"},
+- timezones: map[string]string{"MST": "MST", "CDT": "Ora legale centrale USA", "HNOG": "Ora standard della Groenlandia occidentale", "HEOG": "Ora legale della Groenlandia occidentale", "OEZ": "Ora standard dell’Europa orientale", "SRT": "Ora del Suriname", "WESZ": "Ora legale dell’Europa occidentale", "ARST": "Ora legale dell’Argentina", "COST": "Ora legale della Colombia", "LHDT": "Ora legale di Lord Howe", "NZDT": "Ora legale della Nuova Zelanda", "BOT": "Ora della Bolivia", "GMT": "Ora del meridiano di Greenwich", "GYT": "Ora della Guyana", "HAST": "Ora standard delle Isole Hawaii-Aleutine", "VET": "Ora del Venezuela", "WITA": "Ora dell’Indonesia centrale", "EAT": "Ora dell’Africa orientale", "HNPMX": "Ora standard del Pacifico (Messico)", "MYT": "Ora della Malesia", "WIT": "Ora dell’Indonesia orientale", "HNNOMX": "Ora standard del Messico nord-occidentale", "HENOMX": "Ora legale del Messico nord-occidentale", "∅∅∅": "∅∅∅", "HEPMX": "Ora legale del Pacifico (Messico)", "WEZ": "Ora standard dell’Europa occidentale", "ART": "Ora standard dell’Argentina", "SAST": "Ora dell’Africa meridionale", "PST": "Ora standard del Pacifico USA", "AWST": "Ora standard dell’Australia occidentale", "WART": "Ora standard dell’Argentina occidentale", "CHAST": "Ora standard delle Chatham", "WARST": "Ora legale dell’Argentina occidentale", "EDT": "Ora legale orientale USA", "MDT": "MDT", "PDT": "Ora legale del Pacifico USA", "ACWDT": "Ora legale dell’Australia centroccidentale", "AWDT": "Ora legale dell’Australia occidentale", "ECT": "Ora dell’Ecuador", "HECU": "Ora legale di Cuba", "AST": "Ora standard dell’Atlantico", "ACWST": "Ora standard dell’Australia centroccidentale", "LHST": "Ora standard di Lord Howe", "ACST": "Ora standard dell’Australia centrale", "COT": "Ora standard della Colombia", "EST": "Ora standard orientale USA", "AKST": "Ora standard dell’Alaska", "WIB": "Ora dell’Indonesia occidentale", "CLST": "Ora legale del Cile", "JST": "Ora standard del Giappone", "HADT": "Ora legale delle Isole Hawaii-Aleutine", "HNT": "Ora standard di Terranova", "ACDT": "Ora legale dell’Australia centrale", "CAT": "Ora dell’Africa centrale", "HEEG": "Ora legale della Groenlandia orientale", "AKDT": "Ora legale dell’Alaska", "AEST": "Ora standard dell’Australia orientale", "HKT": "Ora standard di Hong Kong", "HEPM": "Ora legale di Saint-Pierre e Miquelon", "MEZ": "Ora standard dell’Europa centrale", "JDT": "Ora legale del Giappone", "SGT": "Ora di Singapore", "HNCU": "Ora standard di Cuba", "UYST": "Ora legale dell’Uruguay", "CHADT": "Ora legale delle Chatham", "IST": "Ora standard dell’India", "WAST": "Ora legale dell’Africa occidentale", "CST": "Ora standard centrale USA", "ADT": "Ora legale dell’Atlantico", "HNPM": "Ora standard di Saint-Pierre e Miquelon", "NZST": "Ora standard della Nuova Zelanda", "WAT": "Ora standard dell’Africa occidentale", "BT": "Ora del Bhutan", "AEDT": "Ora legale dell’Australia orientale", "HKST": "Ora legale di Hong Kong", "GFT": "Ora della Guiana francese", "OESZ": "Ora legale dell’Europa orientale", "TMST": "Ora legale del Turkmenistan", "UYT": "Ora standard dell’Uruguay", "HAT": "Ora legale di Terranova", "MESZ": "Ora legale dell’Europa centrale", "HNEG": "Ora standard della Groenlandia orientale", "TMT": "Ora standard del Turkmenistan", "CLT": "Ora standard del Cile", "ChST": "Ora di Chamorro"},
++ timezones: map[string]string{"HAST": "Ora standard delle Isole Hawaii-Aleutine", "ACWST": "Ora standard dell’Australia centroccidentale", "NZDT": "Ora legale della Nuova Zelanda", "ECT": "Ora dell’Ecuador", "ChST": "Ora di Chamorro", "WART": "Ora standard dell’Argentina occidentale", "GYT": "Ora della Guyana", "EST": "Ora standard orientale USA", "CAT": "Ora dell’Africa centrale", "CLT": "Ora standard del Cile", "HNOG": "Ora standard della Groenlandia occidentale", "CST": "Ora standard centrale USA", "MEZ": "Ora standard dell’Europa centrale", "JST": "Ora standard del Giappone", "SGT": "Ora di Singapore", "GFT": "Ora della Guiana francese", "SAST": "Ora dell’Africa meridionale", "TMST": "Ora legale del Turkmenistan", "CHAST": "Ora standard delle Chatham", "HNPMX": "Ora standard del Pacifico (Messico)", "EDT": "Ora legale orientale USA", "MST": "Ora standard Montagne Rocciose USA", "EAT": "Ora dell’Africa orientale", "HENOMX": "Ora legale del Messico nord-occidentale", "UYT": "Ora standard dell’Uruguay", "ACWDT": "Ora legale dell’Australia centroccidentale", "CLST": "Ora legale del Cile", "NZST": "Ora standard della Nuova Zelanda", "COT": "Ora standard della Colombia", "HEOG": "Ora legale della Groenlandia occidentale", "AWST": "Ora standard dell’Australia occidentale", "LHST": "Ora standard di Lord Howe", "CHADT": "Ora legale delle Chatham", "HECU": "Ora legale di Cuba", "WAT": "Ora standard dell’Africa occidentale", "AWDT": "Ora legale dell’Australia occidentale", "PST": "Ora standard del Pacifico USA", "HEPMX": "Ora legale del Pacifico (Messico)", "HAT": "Ora legale di Terranova", "ARST": "Ora legale dell’Argentina", "WARST": "Ora legale dell’Argentina occidentale", "SRT": "Ora del Suriname", "HADT": "Ora legale delle Isole Hawaii-Aleutine", "MYT": "Ora della Malesia", "UYST": "Ora legale dell’Uruguay", "AKST": "Ora standard dell’Alaska", "HEEG": "Ora legale della Groenlandia orientale", "OESZ": "Ora legale dell’Europa orientale", "HKST": "Ora legale di Hong Kong", "WITA": "Ora dell’Indonesia centrale", "AKDT": "Ora legale dell’Alaska", "HNT": "Ora standard di Terranova", "HKT": "Ora standard di Hong Kong", "MESZ": "Ora legale dell’Europa centrale", "ACST": "Ora standard dell’Australia centrale", "ACDT": "Ora legale dell’Australia centrale", "JDT": "Ora legale del Giappone", "WEZ": "Ora standard dell’Europa occidentale", "ART": "Ora standard dell’Argentina", "GMT": "Ora del meridiano di Greenwich", "BOT": "Ora della Bolivia", "HNEG": "Ora standard della Groenlandia orientale", "AEDT": "Ora legale dell’Australia orientale", "HNCU": "Ora standard di Cuba", "CDT": "Ora legale centrale USA", "IST": "Ora standard dell’India", "VET": "Ora del Venezuela", "WIT": "Ora dell’Indonesia orientale", "AST": "Ora standard dell’Atlantico", "PDT": "Ora legale del Pacifico USA", "WAST": "Ora legale dell’Africa occidentale", "WIB": "Ora dell’Indonesia occidentale", "HEPM": "Ora legale di Saint-Pierre e Miquelon", "BT": "Ora del Bhutan", "TMT": "Ora standard del Turkmenistan", "ADT": "Ora legale dell’Atlantico", "MDT": "Ora legale Montagne Rocciose USA", "LHDT": "Ora legale di Lord Howe", "HNPM": "Ora standard di Saint-Pierre e Miquelon", "AEST": "Ora standard dell’Australia orientale", "COST": "Ora legale della Colombia", "HNNOMX": "Ora standard del Messico nord-occidentale", "∅∅∅": "∅∅∅", "WESZ": "Ora legale dell’Europa occidentale", "OEZ": "Ora standard dell’Europa orientale"},
+ }
+ }
+ 
+diff --git a/it_CH/it_CH.go b/it_CH/it_CH.go
+index d03e89e..4611e47 100644
+--- a/it_CH/it_CH.go
++++ b/it_CH/it_CH.go
+@@ -50,28 +50,11 @@ func New() locales.Translator {
+ pluralsRange: []locales.PluralRule{2, 6},
+ decimal: ".",
+ group: "'",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "gen", "feb", "mar", "apr", "mag", "giu", "lug", "ago", "set", "ott", "nov", "dic"},
+- monthsNarrow: []string{"", "G", "F", "M", "A", "M", "G", "L", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre"},
+- daysAbbreviated: []string{"dom", "lun", "mar", "mer", "gio", "ven", "sab"},
+- daysNarrow: []string{"D", "L", "M", "M", "G", "V", "S"},
+- daysShort: []string{"dom", "lun", "mar", "mer", "gio", "ven", "sab"},
+- daysWide: []string{"domenica", "lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"m.", "p."},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"a.C.", "d.C."},
+- erasNarrow: []string{"aC", "dC"},
+- erasWide: []string{"avanti Cristo", "dopo Cristo"},
+- timezones: map[string]string{"HKST": "Ora legale di Hong Kong", "ADT": "Ora legale dell’Atlantico", "HNPM": "Ora standard di Saint-Pierre e Miquelon", "CHAST": "Ora standard delle Chatham", "CAT": "Ora dell’Africa centrale", "HECU": "Ora legale di Cuba", "WESZ": "Ora legale dell’Europa occidentale", "ACWDT": "Ora legale dell’Australia centroccidentale", "ACDT": "Ora legale dell’Australia centrale", "WIT": "Ora dell’Indonesia orientale", "WARST": "Ora legale dell’Argentina occidentale", "AKDT": "Ora legale dell’Alaska", "AEDT": "Ora legale dell’Australia orientale", "CLT": "Ora standard del Cile", "TMT": "Ora standard del Turkmenistan", "MYT": "Ora della Malesia", "UYST": "Ora legale dell’Uruguay", "AKST": "Ora standard dell’Alaska", "AEST": "Ora standard dell’Australia orientale", "JDT": "Ora legale del Giappone", "ChST": "Ora di Chamorro", "HNEG": "Ora standard della Groenlandia orientale", "HENOMX": "Ora legale del Messico nord-occidentale", "CST": "Ora standard centrale USA", "BT": "Ora del Bhutan", "HNOG": "Ora standard della Groenlandia occidentale", "PST": "Ora standard del Pacifico USA", "GFT": "Ora della Guiana francese", "TMST": "Ora legale del Turkmenistan", "UYT": "Ora standard dell’Uruguay", "HADT": "Ora legale delle Isole Hawaii-Aleutine", "CLST": "Ora legale del Cile", "BOT": "Ora della Bolivia", "∅∅∅": "Ora legale dell’Amazzonia", "OESZ": "Ora legale dell’Europa orientale", "GMT": "Ora del meridiano di Greenwich", "HNPMX": "Ora standard del Pacifico (Messico)", "HEOG": "Ora legale della Groenlandia occidentale", "AWDT": "Ora legale dell’Australia occidentale", "LHST": "Ora standard di Lord Howe", "IST": "Ora standard dell’India", "WAT": "Ora standard dell’Africa occidentale", "OEZ": "Ora standard dell’Europa orientale", "MDT": "MDT", "HAST": "Ora standard delle Isole Hawaii-Aleutine", "PDT": "Ora legale del Pacifico USA", "ARST": "Ora legale dell’Argentina", "COST": "Ora legale della Colombia", "HEPMX": "Ora legale del Pacifico (Messico)", "HEEG": "Ora legale della Groenlandia orientale", "CDT": "Ora legale centrale USA", "NZST": "Ora standard della Nuova Zelanda", "NZDT": "Ora legale della Nuova Zelanda", "WART": "Ora standard dell’Argentina occidentale", "COT": "Ora standard della Colombia", "WIB": "Ora dell’Indonesia occidentale", "ACWST": "Ora standard dell’Australia centroccidentale", "MESZ": "Ora legale dell’Europa centrale", "LHDT": "Ora legale di Lord Howe", "WAST": "Ora legale dell’Africa occidentale", "SGT": "Ora di Singapore", "HNCU": "Ora standard di Cuba", "GYT": "Ora della Guyana", "WEZ": "Ora standard dell’Europa occidentale", "HNT": "Ora standard di Terranova", "CHADT": "Ora legale delle Chatham", "ACST": "Ora standard dell’Australia centrale", "EST": "Ora standard orientale USA", "MST": "MST", "VET": "Ora del Venezuela", "ART": "Ora standard dell’Argentina", "MEZ": "Ora standard dell’Europa centrale", "HNNOMX": "Ora standard del Messico nord-occidentale", "EDT": "Ora legale orientale USA", "HAT": "Ora legale di Terranova", "AWST": "Ora standard dell’Australia occidentale", "HEPM": "Ora legale di Saint-Pierre e Miquelon", "SAST": "Ora dell’Africa meridionale", "JST": "Ora standard del Giappone", "EAT": "Ora dell’Africa orientale", "ECT": "Ora dell’Ecuador", "AST": "Ora standard dell’Atlantico", "HKT": "Ora standard di Hong Kong", "WITA": "Ora dell’Indonesia centrale", "SRT": "Ora del Suriname"},
++ timezones: map[string]string{"HKT": "HKT", "IST": "IST", "PST": "PST", "BT": "BT", "OEZ": "OEZ", "TMT": "TMT", "AWST": "AWST", "AWDT": "AWDT", "HNPM": "HNPM", "UYT": "UYT", "SGT": "SGT", "AST": "AST", "MESZ": "MESZ", "HEEG": "HEEG", "HNCU": "HNCU", "HECU": "HECU", "AKST": "AKST", "HEOG": "HEOG", "HAST": "HAST", "LHST": "LHST", "UYST": "UYST", "COT": "COT", "ACDT": "ACDT", "AEDT": "AEDT", "GYT": "GYT", "ARST": "ARST", "BOT": "BOT", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "WAT": "WAT", "CDT": "CDT", "NZDT": "NZDT", "ART": "ART", "CAT": "CAT", "AEST": "AEST", "CHADT": "CHADT", "COST": "COST", "WIB": "WIB", "ACST": "ACST", "JST": "JST", "OESZ": "OESZ", "HNT": "HNT", "WART": "WART", "WIT": "WIT", "HKST": "HKST", "CST": "CST", "ACWDT": "ACWDT", "VET": "VET", "HADT": "HADT", "MEZ": "MEZ", "MYT": "MYT", "WESZ": "WESZ", "MST": "MST", "ECT": "ECT", "GMT": "GMT", "ACWST": "ACWST", "CLT": "CLT", "MDT": "MDT", "EAT": "EAT", "HEPM": "HEPM", "GFT": "GFT", "HNOG": "HNOG", "TMST": "TMST", "ADT": "ADT", "LHDT": "LHDT", "PDT": "PDT", "NZST": "NZST", "WAST": "WAST", "AKDT": "AKDT", "HNEG": "HNEG", "JDT": "JDT", "HEPMX": "HEPMX", "WEZ": "WEZ", "WARST": "WARST", "WITA": "WITA", "HENOMX": "HENOMX", "CHAST": "CHAST", "SAST": "SAST", "EST": "EST", "EDT": "EDT", "ChST": "ChST", "SRT": "SRT", "HAT": "HAT", "HNNOMX": "HNNOMX", "CLST": "CLST"},
+ }
+ }
+ 
+@@ -143,7 +126,7 @@ func (it *it_CH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (it *it_CH) MonthsAbbreviated() []string {
+- return it.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -153,7 +136,7 @@ func (it *it_CH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (it *it_CH) MonthsNarrow() []string {
+- return it.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -163,7 +146,7 @@ func (it *it_CH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (it *it_CH) MonthsWide() []string {
+- return it.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -209,73 +192,13 @@ func (it *it_CH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'it_CH' and handles both Whole and Real numbers based on 'v'
+ func (it *it_CH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, it.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, it.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, it.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'it_CH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (it *it_CH) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, it.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, it.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, it.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'it_CH'
+@@ -283,7 +206,7 @@ func (it *it_CH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := it.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -345,7 +268,7 @@ func (it *it_CH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := it.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -466,17 +389,6 @@ func (it *it_CH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, it.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -506,19 +418,6 @@ func (it *it_CH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -527,26 +426,6 @@ func (it *it_CH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -555,30 +434,6 @@ func (it *it_CH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -587,34 +442,5 @@ func (it *it_CH) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := it.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/it_IT/it_IT.go b/it_IT/it_IT.go
+index d9f3ded..11470ca 100644
+--- a/it_IT/it_IT.go
++++ b/it_IT/it_IT.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type it_IT struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'it_IT' locale
+ func New() locales.Translator {
+ return &it_IT{
+- locale: "it_IT",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{5, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "gen", "feb", "mar", "apr", "mag", "giu", "lug", "ago", "set", "ott", "nov", "dic"},
+- monthsNarrow: []string{"", "G", "F", "M", "A", "M", "G", "L", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre"},
+- daysAbbreviated: []string{"dom", "lun", "mar", "mer", "gio", "ven", "sab"},
+- daysNarrow: []string{"D", "L", "M", "M", "G", "V", "S"},
+- daysShort: []string{"dom", "lun", "mar", "mer", "gio", "ven", "sab"},
+- daysWide: []string{"domenica", "lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"m.", "p."},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"a.C.", "d.C."},
+- erasNarrow: []string{"aC", "dC"},
+- erasWide: []string{"avanti Cristo", "dopo Cristo"},
+- timezones: map[string]string{"CHADT": "Ora legale delle Chatham", "∅∅∅": "Ora legale dell’Amazzonia", "GMT": "Ora del meridiano di Greenwich", "SGT": "Ora di Singapore", "EST": "Ora standard orientale USA", "ACWST": "Ora standard dell’Australia centroccidentale", "ARST": "Ora legale dell’Argentina", "NZST": "Ora standard della Nuova Zelanda", "COST": "Ora legale della Colombia", "HEPMX": "Ora legale del Pacifico (Messico)", "UYST": "Ora legale dell’Uruguay", "HADT": "Ora legale delle Isole Hawaii-Aleutine", "ACWDT": "Ora legale dell’Australia centroccidentale", "IST": "Ora standard dell’India", "UYT": "Ora standard dell’Uruguay", "BT": "Ora del Bhutan", "AEDT": "Ora legale dell’Australia orientale", "SAST": "Ora dell’Africa meridionale", "HECU": "Ora legale di Cuba", "ART": "Ora standard dell’Argentina", "HNPM": "Ora standard di Saint-Pierre e Miquelon", "WESZ": "Ora legale dell’Europa occidentale", "HNOG": "Ora standard della Groenlandia occidentale", "HEOG": "Ora legale della Groenlandia occidentale", "WITA": "Ora dell’Indonesia centrale", "HNT": "Ora standard di Terranova", "CHAST": "Ora standard delle Chatham", "ACDT": "Ora legale dell’Australia centrale", "OESZ": "Ora legale dell’Europa orientale", "AST": "Ora standard dell’Atlantico", "MYT": "Ora della Malesia", "WEZ": "Ora standard dell’Europa occidentale", "WIT": "Ora dell’Indonesia orientale", "HKST": "Ora legale di Hong Kong", "WART": "Ora standard dell’Argentina occidentale", "HNNOMX": "Ora standard del Messico nord-occidentale", "MST": "MST", "AKST": "Ora standard dell’Alaska", "AKDT": "Ora legale dell’Alaska", "ADT": "Ora legale dell’Atlantico", "CLT": "Ora standard del Cile", "JDT": "Ora legale del Giappone", "COT": "Ora standard della Colombia", "GYT": "Ora della Guyana", "MEZ": "Ora standard dell’Europa centrale", "LHST": "Ora standard di Lord Howe", "LHDT": "Ora legale di Lord Howe", "GFT": "Ora della Guiana francese", "HKT": "Ora standard di Hong Kong", "AWST": "Ora standard dell’Australia occidentale", "HEPM": "Ora legale di Saint-Pierre e Miquelon", "JST": "Ora standard del Giappone", "BOT": "Ora della Bolivia", "CDT": "Ora legale centrale USA", "HAST": "Ora standard delle Isole Hawaii-Aleutine", "HAT": "Ora legale di Terranova", "NZDT": "Ora legale della Nuova Zelanda", "ECT": "Ora dell’Ecuador", "HNCU": "Ora standard di Cuba", "MESZ": "Ora legale dell’Europa centrale", "ChST": "Ora di Chamorro", "HNEG": "Ora standard della Groenlandia orientale", "TMST": "Ora legale del Turkmenistan", "WAT": "Ora standard dell’Africa occidentale", "CLST": "Ora legale del Cile", "CAT": "Ora dell’Africa centrale", "HNPMX": "Ora standard del Pacifico (Messico)", "WIB": "Ora dell’Indonesia occidentale", "CST": "Ora standard centrale USA", "PDT": "Ora legale del Pacifico USA", "ACST": "Ora standard dell’Australia centrale", "OEZ": "Ora standard dell’Europa orientale", "WARST": "Ora legale dell’Argentina occidentale", "HENOMX": "Ora legale del Messico nord-occidentale", "EDT": "Ora legale orientale USA", "MDT": "MDT", "AEST": "Ora standard dell’Australia orientale", "AWDT": "Ora legale dell’Australia occidentale", "WAST": "Ora legale dell’Africa occidentale", "PST": "Ora standard del Pacifico USA", "HEEG": "Ora legale della Groenlandia orientale", "TMT": "Ora standard del Turkmenistan", "EAT": "Ora dell’Africa orientale", "VET": "Ora del Venezuela", "SRT": "Ora del Suriname"},
++ locale: "it_IT",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{5, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MDT": "MDT", "SRT": "SRT", "JST": "JST", "AEST": "AEST", "WEZ": "WEZ", "TMST": "TMST", "EDT": "EDT", "AWDT": "AWDT", "CHAST": "CHAST", "IST": "IST", "WART": "WART", "HENOMX": "HENOMX", "HNPM": "HNPM", "UYST": "UYST", "∅∅∅": "∅∅∅", "MESZ": "MESZ", "WITA": "WITA", "LHST": "LHST", "PST": "PST", "ACWDT": "ACWDT", "HAT": "HAT", "HNOG": "HNOG", "COST": "COST", "CLST": "CLST", "BOT": "BOT", "HAST": "HAST", "HEPM": "HEPM", "UYT": "UYT", "AKDT": "AKDT", "HNT": "HNT", "CHADT": "CHADT", "HNCU": "HNCU", "HEPMX": "HEPMX", "EAT": "EAT", "AEDT": "AEDT", "EST": "EST", "NZST": "NZST", "ART": "ART", "HNPMX": "HNPMX", "WAT": "WAT", "OEZ": "OEZ", "OESZ": "OESZ", "HKST": "HKST", "ADT": "ADT", "ACST": "ACST", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "AKST": "AKST", "GFT": "GFT", "ACDT": "ACDT", "SGT": "SGT", "WESZ": "WESZ", "WIT": "WIT", "COT": "COT", "AST": "AST", "MEZ": "MEZ", "PDT": "PDT", "CAT": "CAT", "GMT": "GMT", "BT": "BT", "WARST": "WARST", "NZDT": "NZDT", "ECT": "ECT", "CST": "CST", "ARST": "ARST", "MYT": "MYT", "HEOG": "HEOG", "HKT": "HKT", "JDT": "JDT", "ACWST": "ACWST", "VET": "VET", "WAST": "WAST", "LHDT": "LHDT", "WIB": "WIB", "HEEG": "HEEG", "SAST": "SAST", "CLT": "CLT", "TMT": "TMT", "HECU": "HECU", "CDT": "CDT", "ChST": "ChST", "HADT": "HADT", "AWST": "AWST", "GYT": "GYT", "MST": "MST"},
+ }
+ }
+ 
+@@ -143,7 +120,7 @@ func (it *it_IT) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (it *it_IT) MonthsAbbreviated() []string {
+- return it.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -153,7 +130,7 @@ func (it *it_IT) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (it *it_IT) MonthsNarrow() []string {
+- return it.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -163,7 +140,7 @@ func (it *it_IT) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (it *it_IT) MonthsWide() []string {
+- return it.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -209,73 +186,13 @@ func (it *it_IT) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'it_IT' and handles both Whole and Real numbers based on 'v'
+ func (it *it_IT) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, it.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, it.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, it.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'it_IT' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (it *it_IT) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, it.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, it.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, it.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'it_IT'
+@@ -283,56 +200,7 @@ func (it *it_IT) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := it.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, it.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, it.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, it.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, it.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, it.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'it_IT'
+@@ -341,63 +209,7 @@ func (it *it_IT) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := it.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, it.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, it.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, it.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, it.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, it.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, it.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'it_IT'
+@@ -405,27 +217,6 @@ func (it *it_IT) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -434,21 +225,6 @@ func (it *it_IT) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, it.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -457,17 +233,6 @@ func (it *it_IT) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, it.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -476,19 +241,6 @@ func (it *it_IT) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, it.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, it.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -497,19 +249,6 @@ func (it *it_IT) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -518,26 +257,6 @@ func (it *it_IT) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -546,30 +265,6 @@ func (it *it_IT) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -578,34 +273,5 @@ func (it *it_IT) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := it.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/it_SM/it_SM.go b/it_SM/it_SM.go
+index 1a04acc..2e1d8f4 100644
+--- a/it_SM/it_SM.go
++++ b/it_SM/it_SM.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type it_SM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'it_SM' locale
+ func New() locales.Translator {
+ return &it_SM{
+- locale: "it_SM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{5, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "gen", "feb", "mar", "apr", "mag", "giu", "lug", "ago", "set", "ott", "nov", "dic"},
+- monthsNarrow: []string{"", "G", "F", "M", "A", "M", "G", "L", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre"},
+- daysAbbreviated: []string{"dom", "lun", "mar", "mer", "gio", "ven", "sab"},
+- daysNarrow: []string{"D", "L", "M", "M", "G", "V", "S"},
+- daysShort: []string{"dom", "lun", "mar", "mer", "gio", "ven", "sab"},
+- daysWide: []string{"domenica", "lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"m.", "p."},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"a.C.", "d.C."},
+- erasNarrow: []string{"aC", "dC"},
+- erasWide: []string{"avanti Cristo", "dopo Cristo"},
+- timezones: map[string]string{"AEDT": "Ora legale dell’Australia orientale", "NZST": "Ora standard della Nuova Zelanda", "ACDT": "Ora legale dell’Australia centrale", "EDT": "Ora legale orientale USA", "AWST": "Ora standard dell’Australia occidentale", "EAT": "Ora dell’Africa orientale", "HAST": "Ora standard delle Isole Hawaii-Aleutine", "ARST": "Ora legale dell’Argentina", "HKT": "Ora standard di Hong Kong", "SGT": "Ora di Singapore", "MST": "MST", "AKDT": "Ora legale dell’Alaska", "ACWDT": "Ora legale dell’Australia centroccidentale", "WITA": "Ora dell’Indonesia centrale", "HNPM": "Ora standard di Saint-Pierre e Miquelon", "AKST": "Ora standard dell’Alaska", "AST": "Ora standard dell’Atlantico", "HADT": "Ora legale delle Isole Hawaii-Aleutine", "ACWST": "Ora standard dell’Australia centroccidentale", "ADT": "Ora legale dell’Atlantico", "HNOG": "Ora standard della Groenlandia occidentale", "HKST": "Ora legale di Hong Kong", "LHDT": "Ora legale di Lord Howe", "TMT": "Ora standard del Turkmenistan", "GMT": "Ora del meridiano di Greenwich", "CST": "Ora standard centrale USA", "HNCU": "Ora standard di Cuba", "HECU": "Ora legale di Cuba", "UYT": "Ora standard dell’Uruguay", "AWDT": "Ora legale dell’Australia occidentale", "CLT": "Ora standard del Cile", "CLST": "Ora legale del Cile", "ChST": "Ora di Chamorro", "WARST": "Ora legale dell’Argentina occidentale", "ECT": "Ora dell’Ecuador", "WART": "Ora standard dell’Argentina occidentale", "HNT": "Ora standard di Terranova", "PST": "Ora standard del Pacifico USA", "LHST": "Ora standard di Lord Howe", "SAST": "Ora dell’Africa meridionale", "WESZ": "Ora legale dell’Europa occidentale", "EST": "Ora standard orientale USA", "UYST": "Ora legale dell’Uruguay", "CHAST": "Ora standard delle Chatham", "WAST": "Ora legale dell’Africa occidentale", "OEZ": "Ora standard dell’Europa orientale", "HNNOMX": "Ora standard del Messico nord-occidentale", "HNEG": "Ora standard della Groenlandia orientale", "MDT": "MDT", "GYT": "Ora della Guyana", "HAT": "Ora legale di Terranova", "NZDT": "Ora legale della Nuova Zelanda", "IST": "Ora standard dell’India", "JST": "Ora standard del Giappone", "BOT": "Ora della Bolivia", "HEPM": "Ora legale di Saint-Pierre e Miquelon", "CAT": "Ora dell’Africa centrale", "HENOMX": "Ora legale del Messico nord-occidentale", "MYT": "Ora della Malesia", "WIB": "Ora dell’Indonesia occidentale", "COST": "Ora legale della Colombia", "HEPMX": "Ora legale del Pacifico (Messico)", "HEOG": "Ora legale della Groenlandia occidentale", "AEST": "Ora standard dell’Australia orientale", "COT": "Ora standard della Colombia", "VET": "Ora del Venezuela", "WIT": "Ora dell’Indonesia orientale", "SRT": "Ora del Suriname", "MEZ": "Ora standard dell’Europa centrale", "HEEG": "Ora legale della Groenlandia orientale", "TMST": "Ora legale del Turkmenistan", "ACST": "Ora standard dell’Australia centrale", "WEZ": "Ora standard dell’Europa occidentale", "PDT": "Ora legale del Pacifico USA", "ART": "Ora standard dell’Argentina", "CHADT": "Ora legale delle Chatham", "MESZ": "Ora legale dell’Europa centrale", "OESZ": "Ora legale dell’Europa orientale", "BT": "Ora del Bhutan", "JDT": "Ora legale del Giappone", "WAT": "Ora standard dell’Africa occidentale", "HNPMX": "Ora standard del Pacifico (Messico)", "∅∅∅": "Ora legale dell’Amazzonia", "GFT": "Ora della Guiana francese", "CDT": "Ora legale centrale USA"},
++ locale: "it_SM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{5, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WESZ": "WESZ", "WART": "WART", "WARST": "WARST", "NZDT": "NZDT", "CST": "CST", "HEPM": "HEPM", "COST": "COST", "NZST": "NZST", "LHST": "LHST", "AKDT": "AKDT", "AEST": "AEST", "WAT": "WAT", "AKST": "AKST", "HEOG": "HEOG", "MYT": "MYT", "AWST": "AWST", "AWDT": "AWDT", "SGT": "SGT", "EDT": "EDT", "MDT": "MDT", "CHAST": "CHAST", "PST": "PST", "HKT": "HKT", "ART": "ART", "HNPM": "HNPM", "HEPMX": "HEPMX", "AEDT": "AEDT", "GFT": "GFT", "WIT": "WIT", "HKST": "HKST", "WITA": "WITA", "MEZ": "MEZ", "JST": "JST", "TMST": "TMST", "CDT": "CDT", "HNCU": "HNCU", "TMT": "TMT", "UYST": "UYST", "SAST": "SAST", "HADT": "HADT", "MESZ": "MESZ", "BT": "BT", "WEZ": "WEZ", "HAT": "HAT", "WIB": "WIB", "ADT": "ADT", "VET": "VET", "UYT": "UYT", "PDT": "PDT", "HECU": "HECU", "ECT": "ECT", "ARST": "ARST", "HNEG": "HNEG", "HNPMX": "HNPMX", "COT": "COT", "HNOG": "HNOG", "ChST": "ChST", "ACST": "ACST", "∅∅∅": "∅∅∅", "EST": "EST", "ACWST": "ACWST", "ACWDT": "ACWDT", "WAST": "WAST", "BOT": "BOT", "CHADT": "CHADT", "HNT": "HNT", "CAT": "CAT", "CLST": "CLST", "MST": "MST", "GMT": "GMT", "SRT": "SRT", "EAT": "EAT", "ACDT": "ACDT", "CLT": "CLT", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "IST": "IST", "HENOMX": "HENOMX", "JDT": "JDT", "OEZ": "OEZ", "OESZ": "OESZ", "GYT": "GYT", "AST": "AST", "HAST": "HAST", "HEEG": "HEEG"},
+ }
+ }
+ 
+@@ -143,7 +120,7 @@ func (it *it_SM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (it *it_SM) MonthsAbbreviated() []string {
+- return it.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -153,7 +130,7 @@ func (it *it_SM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (it *it_SM) MonthsNarrow() []string {
+- return it.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -163,7 +140,7 @@ func (it *it_SM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (it *it_SM) MonthsWide() []string {
+- return it.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -209,73 +186,13 @@ func (it *it_SM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'it_SM' and handles both Whole and Real numbers based on 'v'
+ func (it *it_SM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, it.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, it.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, it.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'it_SM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (it *it_SM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, it.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, it.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, it.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'it_SM'
+@@ -283,56 +200,7 @@ func (it *it_SM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := it.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, it.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, it.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, it.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, it.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, it.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'it_SM'
+@@ -341,63 +209,7 @@ func (it *it_SM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := it.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, it.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, it.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, it.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, it.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, it.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, it.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'it_SM'
+@@ -405,27 +217,6 @@ func (it *it_SM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -434,21 +225,6 @@ func (it *it_SM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, it.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -457,17 +233,6 @@ func (it *it_SM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, it.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -476,19 +241,6 @@ func (it *it_SM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, it.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, it.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -497,19 +249,6 @@ func (it *it_SM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -518,26 +257,6 @@ func (it *it_SM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -546,30 +265,6 @@ func (it *it_SM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -578,34 +273,5 @@ func (it *it_SM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, it.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := it.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ja/ja.go b/ja/ja.go
+index 70dcdc0..24dd576 100644
+--- a/ja/ja.go
++++ b/ja/ja.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"紀元前", "西暦"},
+ erasNarrow: []string{"BC", "AD"},
+ erasWide: []string{"紀元前", "西暦"},
+- timezones: map[string]string{"CLT": "チリ標準時", "HAT": "ニューファンドランド夏時間", "AWST": "オーストラリア西部標準時", "WITA": "インドネシア中部時間", "GYT": "ガイアナ時間", "UYST": "ウルグアイ夏時間", "CDT": "アメリカ中部夏時間", "ADT": "大西洋夏時間", "HNNOMX": "メキシコ北西部標準時", "SGT": "シンガポール標準時", "MST": "マカオ標準時", "WART": "西部アルゼンチン標準時", "AKST": "アラスカ標準時", "AEST": "オーストラリア東部標準時", "AEDT": "オーストラリア東部夏時間", "IST": "インド標準時", "SRT": "スリナム時間", "BOT": "ボリビア時間", "HNEG": "グリーンランド東部標準時", "CLST": "チリ夏時間", "GFT": "仏領ギアナ時間", "AKDT": "アラスカ夏時間", "AST": "大西洋標準時", "HNT": "ニューファンドランド標準時", "NZST": "ニュージーランド標準時", "CHAST": "チャタム標準時", "EST": "アメリカ東部標準時", "UYT": "ウルグアイ標準時", "HKST": "香港夏時間", "WAST": "西アフリカ夏時間", "HNCU": "キューバ標準時", "GMT": "グリニッジ標準時", "EDT": "アメリカ東部夏時間", "MYT": "マレーシア時間", "MEZ": "中央ヨーロッパ標準時", "JDT": "日本夏時間", "WARST": "西部アルゼンチン夏時間", "WAT": "西アフリカ標準時", "∅∅∅": "アマゾン夏時間", "TMT": "トルクメニスタン標準時", "TMST": "トルクメニスタン夏時間", "MESZ": "中央ヨーロッパ夏時間", "NZDT": "ニュージーランド夏時間", "CHADT": "チャタム夏時間", "ACST": "オーストラリア中部標準時", "CAT": "中央アフリカ時間", "WIT": "インドネシア東部時間", "BT": "ブータン時間", "HNOG": "グリーンランド西部標準時", "EAT": "東アフリカ時間", "COT": "コロンビア標準時", "HENOMX": "メキシコ北西部夏時間", "MDT": "マカオ夏時間", "HNPMX": "メキシコ太平洋標準時", "PDT": "アメリカ太平洋夏時間", "WEZ": "西ヨーロッパ標準時", "OESZ": "東ヨーロッパ夏時間", "HKT": "香港標準時", "COST": "コロンビア夏時間", "ACWST": "オーストラリア中西部標準時", "AWDT": "オーストラリア西部夏時間", "HEPMX": "メキシコ太平洋夏時間", "CST": "アメリカ中部標準時", "HAST": "ハワイ・アリューシャン標準時", "ACWDT": "オーストラリア中西部夏時間", "OEZ": "東ヨーロッパ標準時", "PST": "アメリカ太平洋標準時", "JST": "日本標準時", "ChST": "チャモロ時間", "LHST": "ロードハウ標準時", "SAST": "南アフリカ標準時", "ACDT": "オーストラリア中部夏時間", "HECU": "キューバ夏時間", "WIB": "インドネシア西部時間", "VET": "ベネズエラ時間", "WESZ": "西ヨーロッパ夏時間", "HNPM": "サンピエール・ミクロン標準時", "ARST": "アルゼンチン夏時間", "HEPM": "サンピエール・ミクロン夏時間", "LHDT": "ロードハウ夏時間", "HEEG": "グリーンランド東部夏時間", "ECT": "エクアドル時間", "HADT": "ハワイ・アリューシャン夏時間", "HEOG": "グリーンランド西部夏時間", "ART": "アルゼンチン標準時"},
++ timezones: map[string]string{"LHST": "ロードハウ標準時", "WEZ": "西ヨーロッパ標準時", "WESZ": "西ヨーロッパ夏時間", "COT": "コロンビア標準時", "HEOG": "グリーンランド西部夏時間", "CLST": "チリ夏時間", "NZST": "ニュージーランド標準時", "ECT": "エクアドル時間", "CHAST": "チャタム標準時", "HECU": "キューバ夏時間", "OESZ": "東ヨーロッパ夏時間", "HNT": "ニューファンドランド標準時", "ART": "アルゼンチン標準時", "HENOMX": "メキシコ北西部夏時間", "OEZ": "東ヨーロッパ標準時", "HKST": "香港夏時間", "CST": "アメリカ中部標準時", "HNNOMX": "メキシコ北西部標準時", "JST": "日本標準時", "AWST": "オーストラリア西部標準時", "COST": "コロンビア夏時間", "TMT": "トルクメニスタン標準時", "WIB": "インドネシア西部時間", "MEZ": "中央ヨーロッパ標準時", "ACST": "オーストラリア中部標準時", "WIT": "インドネシア東部時間", "CLT": "チリ標準時", "ADT": "大西洋夏時間", "BOT": "ボリビア時間", "SRT": "スリナム時間", "AWDT": "オーストラリア西部夏時間", "UYST": "ウルグアイ夏時間", "SGT": "シンガポール標準時", "HNOG": "グリーンランド西部標準時", "HAST": "ハワイ・アリューシャン標準時", "MESZ": "中央ヨーロッパ夏時間", "HNEG": "グリーンランド東部標準時", "HEEG": "グリーンランド東部夏時間", "AEDT": "オーストラリア東部夏時間", "PST": "アメリカ太平洋標準時", "WAT": "西アフリカ標準時", "WITA": "インドネシア中部時間", "AST": "大西洋標準時", "UYT": "ウルグアイ標準時", "TMST": "トルクメニスタン夏時間", "VET": "ベネズエラ時間", "WAST": "西アフリカ夏時間", "AKDT": "アラスカ夏時間", "SAST": "南アフリカ標準時", "CAT": "中央アフリカ時間", "ACDT": "オーストラリア中部夏時間", "JDT": "日本夏時間", "IST": "インド標準時", "EDT": "アメリカ東部夏時間", "EAT": "東アフリカ時間", "HEPM": "サンピエール・ミクロン夏時間", "PDT": "アメリカ太平洋夏時間", "BT": "ブータン時間", "HKT": "香港標準時", "GMT": "グリニッジ標準時", "ChST": "チャモロ時間", "HADT": "ハワイ・アリューシャン夏時間", "HNPM": "サンピエール・ミクロン標準時", "NZDT": "ニュージーランド夏時間", "AEST": "オーストラリア東部標準時", "MYT": "マレーシア時間", "ACWST": "オーストラリア中西部標準時", "ARST": "アルゼンチン夏時間", "CHADT": "チャタム夏時間", "HEPMX": "メキシコ太平洋夏時間", "HNCU": "キューバ標準時", "HAT": "ニューファンドランド夏時間", "WARST": "西部アルゼンチン夏時間", "GYT": "ガイアナ時間", "AKST": "アラスカ標準時", "CDT": "アメリカ中部夏時間", "MST": "マカオ標準時", "MDT": "マカオ夏時間", "LHDT": "ロードハウ夏時間", "∅∅∅": "アクレ夏時間", "ACWDT": "オーストラリア中西部夏時間", "HNPMX": "メキシコ太平洋標準時", "GFT": "仏領ギアナ時間", "WART": "西部アルゼンチン標準時", "EST": "アメリカ東部標準時"},
+ }
+ }
+ 
+diff --git a/ja_JP/ja_JP.go b/ja_JP/ja_JP.go
+index b0bdd07..886c96e 100644
+--- a/ja_JP/ja_JP.go
++++ b/ja_JP/ja_JP.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ja_JP struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ja_JP' locale
+ func New() locales.Translator {
+ return &ja_JP{
+- locale: "ja_JP",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"},
+- daysAbbreviated: []string{"日", "月", "火", "水", "木", "金", "土"},
+- daysNarrow: []string{"日", "月", "火", "水", "木", "金", "土"},
+- daysShort: []string{"日", "月", "火", "水", "木", "金", "土"},
+- daysWide: []string{"日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"},
+- periodsAbbreviated: []string{"午前", "午後"},
+- periodsNarrow: []string{"午前", "午後"},
+- periodsWide: []string{"午前", "午後"},
+- erasAbbreviated: []string{"紀元前", "西暦"},
+- erasNarrow: []string{"BC", "AD"},
+- erasWide: []string{"紀元前", "西暦"},
+- timezones: map[string]string{"HEOG": "グリーンランド西部夏時間", "LHST": "ロードハウ標準時", "WART": "西部アルゼンチン標準時", "MYT": "マレーシア時間", "AWST": "オーストラリア西部標準時", "HNPM": "サンピエール・ミクロン標準時", "HEEG": "グリーンランド東部夏時間", "CST": "アメリカ中部標準時", "VET": "ベネズエラ時間", "OESZ": "東ヨーロッパ夏時間", "HADT": "ハワイ・アリューシャン夏時間", "ACDT": "オーストラリア中部夏時間", "OEZ": "東ヨーロッパ標準時", "COST": "コロンビア夏時間", "HEPMX": "メキシコ太平洋夏時間", "CHADT": "チャタム夏時間", "JST": "日本標準時", "GFT": "仏領ギアナ時間", "GMT": "グリニッジ標準時", "MDT": "マカオ夏時間", "WIT": "インドネシア東部時間", "HKT": "香港標準時", "CLST": "チリ夏時間", "∅∅∅": "アマゾン夏時間", "UYST": "ウルグアイ夏時間", "HENOMX": "メキシコ北西部夏時間", "AKST": "アラスカ標準時", "PST": "アメリカ太平洋標準時", "IST": "インド標準時", "JDT": "日本夏時間", "ChST": "チャモロ時間", "CAT": "中央アフリカ時間", "ECT": "エクアドル時間", "EDT": "アメリカ東部夏時間", "AEST": "オーストラリア東部標準時", "HKST": "香港夏時間", "MESZ": "中央ヨーロッパ夏時間", "CLT": "チリ標準時", "WAT": "西アフリカ標準時", "ACST": "オーストラリア中部標準時", "WARST": "西部アルゼンチン夏時間", "HNNOMX": "メキシコ北西部標準時", "HAST": "ハワイ・アリューシャン標準時", "SRT": "スリナム時間", "HNOG": "グリーンランド西部標準時", "ACWDT": "オーストラリア中西部夏時間", "ARST": "アルゼンチン夏時間", "CDT": "アメリカ中部夏時間", "ADT": "大西洋夏時間", "GYT": "ガイアナ時間", "BT": "ブータン時間", "WESZ": "西ヨーロッパ夏時間", "HAT": "ニューファンドランド夏時間", "ART": "アルゼンチン標準時", "MST": "マカオ標準時", "AKDT": "アラスカ夏時間", "AST": "大西洋標準時", "WEZ": "西ヨーロッパ標準時", "WITA": "インドネシア中部時間", "HNEG": "グリーンランド東部標準時", "TMT": "トルクメニスタン標準時", "WAST": "西アフリカ夏時間", "PDT": "アメリカ太平洋夏時間", "ACWST": "オーストラリア中西部標準時", "HNCU": "キューバ標準時", "HEPM": "サンピエール・ミクロン夏時間", "LHDT": "ロードハウ夏時間", "CHAST": "チャタム標準時", "EAT": "東アフリカ時間", "SGT": "シンガポール標準時", "NZDT": "ニュージーランド夏時間", "BOT": "ボリビア時間", "TMST": "トルクメニスタン夏時間", "HECU": "キューバ夏時間", "HNPMX": "メキシコ太平洋標準時", "MEZ": "中央ヨーロッパ標準時", "COT": "コロンビア標準時", "EST": "アメリカ東部標準時", "WIB": "インドネシア西部時間", "UYT": "ウルグアイ標準時", "HNT": "ニューファンドランド標準時", "AEDT": "オーストラリア東部夏時間", "AWDT": "オーストラリア西部夏時間", "NZST": "ニュージーランド標準時", "SAST": "南アフリカ標準時"},
++ locale: "ja_JP",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CLST": "CLST", "BT": "BT", "HNCU": "HNCU", "WEZ": "WEZ", "COST": "COST", "SAST": "SAST", "AKDT": "AKDT", "HKST": "HKST", "ART": "ART", "EDT": "EDT", "HEPM": "HEPM", "LHST": "LHST", "AKST": "AKST", "HNT": "HNT", "TMT": "TMT", "AEDT": "AEDT", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "NZDT": "NZDT", "MST": "MST", "JST": "JST", "HEOG": "HEOG", "ADT": "ADT", "EST": "EST", "CST": "CST", "ACDT": "ACDT", "UYST": "UYST", "IST": "IST", "HNPMX": "HNPMX", "GFT": "GFT", "SRT": "SRT", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "PDT": "PDT", "OESZ": "OESZ", "HKT": "HKT", "MYT": "MYT", "ACWST": "ACWST", "TMST": "TMST", "ARST": "ARST", "EAT": "EAT", "BOT": "BOT", "AWDT": "AWDT", "HECU": "HECU", "HEPMX": "HEPMX", "SGT": "SGT", "CAT": "CAT", "WAST": "WAST", "WIT": "WIT", "CLT": "CLT", "HENOMX": "HENOMX", "MESZ": "MESZ", "HNPM": "HNPM", "PST": "PST", "VET": "VET", "WIB": "WIB", "AST": "AST", "AEST": "AEST", "UYT": "UYT", "WAT": "WAT", "NZST": "NZST", "CDT": "CDT", "WART": "WART", "COT": "COT", "WITA": "WITA", "HNEG": "HNEG", "JDT": "JDT", "AWST": "AWST", "WESZ": "WESZ", "GYT": "GYT", "ACWDT": "ACWDT", "CHADT": "CHADT", "WARST": "WARST", "ECT": "ECT", "HADT": "HADT", "HEEG": "HEEG", "MEZ": "MEZ", "MDT": "MDT", "ChST": "ChST", "GMT": "GMT", "ACST": "ACST", "OEZ": "OEZ", "HAT": "HAT", "HNOG": "HNOG", "HAST": "HAST"},
+ }
+ }
+ 
+@@ -117,7 +94,7 @@ func (ja *ja_JP) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ja *ja_JP) MonthsAbbreviated() []string {
+- return ja.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -127,7 +104,7 @@ func (ja *ja_JP) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ja *ja_JP) MonthsNarrow() []string {
+- return ja.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -137,7 +114,7 @@ func (ja *ja_JP) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ja *ja_JP) MonthsWide() []string {
+- return ja.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -183,73 +160,13 @@ func (ja *ja_JP) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ja_JP' and handles both Whole and Real numbers based on 'v'
+ func (ja *ja_JP) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ja.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ja.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ja.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ja_JP' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ja *ja_JP) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ja.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ja.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ja.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ja_JP'
+@@ -257,56 +174,7 @@ func (ja *ja_JP) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ja.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ja.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ja.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ja.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ja.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ja_JP'
+@@ -315,68 +183,7 @@ func (ja *ja_JP) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ja.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ja.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ja.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ja.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ja.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ja.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ja_JP'
+@@ -384,28 +191,6 @@ func (ja *ja_JP) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -414,28 +199,6 @@ func (ja *ja_JP) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -444,18 +207,6 @@ func (ja *ja_JP) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -464,19 +215,6 @@ func (ja *ja_JP) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+- b = append(b, ja.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -485,15 +223,6 @@ func (ja *ja_JP) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ja.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -502,22 +231,6 @@ func (ja *ja_JP) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ja.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ja.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +239,6 @@ func (ja *ja_JP) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ja.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ja.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +247,5 @@ func (ja *ja_JP) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0xe6, 0x99, 0x82}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0xe5, 0x88, 0x86}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0xe7, 0xa7, 0x92, 0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ja.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/jgo/jgo.go b/jgo/jgo.go
+index b4d5475..5af327e 100644
+--- a/jgo/jgo.go
++++ b/jgo/jgo.go
+@@ -69,7 +69,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BCE", "CE"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"tsɛttsɛt mɛŋguꞌ mi ɛ́ lɛɛnɛ Kɛlísɛtɔ gɔ ńɔ́", "tsɛttsɛt mɛŋguꞌ mi ɛ́ fúnɛ Kɛlísɛtɔ tɔ́ mɔ́"},
+- timezones: map[string]string{"AEDT": "AEDT", "CHADT": "CHADT", "ACST": "ACST", "HENOMX": "HENOMX", "ChST": "ChST", "MYT": "MYT", "UYT": "UYT", "PDT": "PDT", "CHAST": "CHAST", "MESZ": "MESZ", "CLST": "CLST", "HNEG": "HNEG", "UYST": "UYST", "BOT": "BOT", "ECT": "ECT", "EAT": "EAT", "BT": "BT", "HKT": "HKT", "NZST": "NZST", "∅∅∅": "∅∅∅", "TMT": "TMT", "AKDT": "AKDT", "ACDT": "ACDT", "OESZ": "OESZ", "WARST": "WARST", "HNT": "HNT", "HEOG": "HEOG", "WEZ": "WEZ", "AWST": "AWST", "HNPM": "HNPM", "HNPMX": "HNPMX", "EDT": "EDT", "GYT": "GYT", "HADT": "HADT", "HKST": "HKST", "SAST": "SAST", "HEEG": "HEEG", "SRT": "SRT", "JDT": "JDT", "IST": "IST", "GFT": "GFT", "GMT": "GMT", "ADT": "ADT", "WIB": "WIB", "AWDT": "AWDT", "AST": "AST", "WIT": "WIT", "WITA": "WITA", "OEZ": "OEZ", "CAT": "CAT", "EST": "EST", "HAT": "HAT", "ART": "ART", "COT": "COT", "HECU": "HECU", "CDT": "CDT", "ACWST": "ACWST", "WESZ": "WESZ", "HEPM": "HEPM", "WAT": "WAT", "HNCU": "HNCU", "HEPMX": "HEPMX", "VET": "VET", "ACWDT": "ACWDT", "NZDT": "NZDT", "LHDT": "LHDT", "WAST": "WAST", "MDT": "MDT", "PST": "PST", "AEST": "AEST", "WART": "WART", "MEZ": "MEZ", "COST": "COST", "AKST": "AKST", "MST": "MST", "HAST": "HAST", "HNOG": "HNOG", "JST": "JST", "CLT": "CLT", "CST": "CST", "ARST": "ARST", "LHST": "LHST", "TMST": "TMST", "HNNOMX": "HNNOMX", "SGT": "SGT"},
++ timezones: map[string]string{"AWDT": "AWDT", "UYST": "UYST", "AKDT": "AKDT", "GFT": "GFT", "ECT": "ECT", "ART": "ART", "HNNOMX": "HNNOMX", "PST": "PST", "ACWST": "ACWST", "WAST": "WAST", "OESZ": "OESZ", "GYT": "GYT", "MDT": "MDT", "HEEG": "HEEG", "LHST": "LHST", "∅∅∅": "∅∅∅", "AEST": "AEST", "WARST": "WARST", "HNEG": "HNEG", "CHADT": "CHADT", "CLST": "CLST", "ARST": "ARST", "HECU": "HECU", "WAT": "WAT", "HNT": "HNT", "CDT": "CDT", "HADT": "HADT", "WART": "WART", "EST": "EST", "NZDT": "NZDT", "WIB": "WIB", "EAT": "EAT", "MST": "MST", "LHDT": "LHDT", "BT": "BT", "HAT": "HAT", "HNOG": "HNOG", "HKT": "HKT", "TMT": "TMT", "TMST": "TMST", "ACWDT": "ACWDT", "VET": "VET", "HEPMX": "HEPMX", "ACDT": "ACDT", "OEZ": "OEZ", "WIT": "WIT", "CST": "CST", "AST": "AST", "JDT": "JDT", "PDT": "PDT", "WEZ": "WEZ", "COT": "COT", "CAT": "CAT", "MYT": "MYT", "AKST": "AKST", "HEOG": "HEOG", "HENOMX": "HENOMX", "JST": "JST", "SGT": "SGT", "SAST": "SAST", "CLT": "CLT", "WITA": "WITA", "BOT": "BOT", "HAST": "HAST", "AEDT": "AEDT", "COST": "COST", "NZST": "NZST", "GMT": "GMT", "ChST": "ChST", "ACST": "ACST", "HNCU": "HNCU", "IST": "IST", "HNPMX": "HNPMX", "SRT": "SRT", "MESZ": "MESZ", "HKST": "HKST", "AWST": "AWST", "HNPM": "HNPM", "HEPM": "HEPM", "CHAST": "CHAST", "UYT": "UYT", "WESZ": "WESZ", "EDT": "EDT", "ADT": "ADT", "MEZ": "MEZ"},
+ }
+ }
+ 
+diff --git a/jgo_CM/jgo_CM.go b/jgo_CM/jgo_CM.go
+index ab9ff98..003b671 100644
+--- a/jgo_CM/jgo_CM.go
++++ b/jgo_CM/jgo_CM.go
+@@ -10,66 +10,45 @@ import (
+ )
+ 
+ type jgo_CM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'jgo_CM' locale
+ func New() locales.Translator {
+ return &jgo_CM{
+- locale: "jgo_CM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "Nduŋmbi Saŋ", "Pɛsaŋ Pɛ́pá", "Pɛsaŋ Pɛ́tát", "Pɛsaŋ Pɛ́nɛ́kwa", "Pɛsaŋ Pataa", "Pɛsaŋ Pɛ́nɛ́ntúkú", "Pɛsaŋ Saambá", "Pɛsaŋ Pɛ́nɛ́fɔm", "Pɛsaŋ Pɛ́nɛ́pfúꞋú", "Pɛsaŋ Nɛgɛ́m", "Pɛsaŋ Ntsɔ̌pmɔ́", "Pɛsaŋ Ntsɔ̌ppá"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "Nduŋmbi Saŋ", "Pɛsaŋ Pɛ́pá", "Pɛsaŋ Pɛ́tát", "Pɛsaŋ Pɛ́nɛ́kwa", "Pɛsaŋ Pataa", "Pɛsaŋ Pɛ́nɛ́ntúkú", "Pɛsaŋ Saambá", "Pɛsaŋ Pɛ́nɛ́fɔm", "Pɛsaŋ Pɛ́nɛ́pfúꞋú", "Pɛsaŋ Nɛgɛ́m", "Pɛsaŋ Ntsɔ̌pmɔ́", "Pɛsaŋ Ntsɔ̌ppá"},
+- daysAbbreviated: []string{"Sɔ́ndi", "Mɔ́ndi", "Ápta Mɔ́ndi", "Wɛ́nɛsɛdɛ", "Tɔ́sɛdɛ", "Fɛlâyɛdɛ", "Sásidɛ"},
+- daysNarrow: []string{"Sɔ́", "Mɔ́", "ÁM", "Wɛ́", "Tɔ́", "Fɛ", "Sá"},
+- daysWide: []string{"Sɔ́ndi", "Mɔ́ndi", "Ápta Mɔ́ndi", "Wɛ́nɛsɛdɛ", "Tɔ́sɛdɛ", "Fɛlâyɛdɛ", "Sásidɛ"},
+- periodsAbbreviated: []string{"mbaꞌmbaꞌ", "ŋka mbɔ́t nji"},
+- periodsWide: []string{"mbaꞌmbaꞌ", "ŋka mbɔ́t nji"},
+- erasAbbreviated: []string{"BCE", "CE"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"tsɛttsɛt mɛŋguꞌ mi ɛ́ lɛɛnɛ Kɛlísɛtɔ gɔ ńɔ́", "tsɛttsɛt mɛŋguꞌ mi ɛ́ fúnɛ Kɛlísɛtɔ tɔ́ mɔ́"},
+- timezones: map[string]string{"JST": "JST", "ACST": "ACST", "HNCU": "HNCU", "PDT": "PDT", "HEPM": "HEPM", "NZDT": "NZDT", "HAT": "HAT", "HKT": "HKT", "OESZ": "OESZ", "AKDT": "AKDT", "MYT": "MYT", "BT": "BT", "GFT": "GFT", "UYST": "UYST", "HNOG": "HNOG", "CLST": "CLST", "WAST": "WAST", "SRT": "SRT", "ACWST": "ACWST", "TMT": "TMT", "BOT": "BOT", "CAT": "CAT", "WITA": "WITA", "AWDT": "AWDT", "SAST": "SAST", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "EDT": "EDT", "GYT": "GYT", "WIT": "WIT", "HENOMX": "HENOMX", "SGT": "SGT", "PST": "PST", "HKST": "HKST", "HNPM": "HNPM", "CHAST": "CHAST", "CHADT": "CHADT", "HNPMX": "HNPMX", "EST": "EST", "HADT": "HADT", "MEZ": "MEZ", "ChST": "ChST", "ECT": "ECT", "CST": "CST", "ADT": "ADT", "WAT": "WAT", "MESZ": "MESZ", "WARST": "WARST", "AST": "AST", "ART": "ART", "HEOG": "HEOG", "EAT": "EAT", "MST": "MST", "TMST": "TMST", "ACDT": "ACDT", "HAST": "HAST", "AEST": "AEST", "LHST": "LHST", "IST": "IST", "CLT": "CLT", "HEPMX": "HEPMX", "AKST": "AKST", "CDT": "CDT", "OEZ": "OEZ", "WART": "WART", "HNT": "HNT", "AWST": "AWST", "HECU": "HECU", "COST": "COST", "GMT": "GMT", "ARST": "ARST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "WEZ": "WEZ", "COT": "COT", "MDT": "MDT", "UYT": "UYT", "WIB": "WIB", "AEDT": "AEDT", "NZST": "NZST", "LHDT": "LHDT", "JDT": "JDT", "VET": "VET", "ACWDT": "ACWDT", "WESZ": "WESZ"},
++ locale: "jgo_CM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACWST": "ACWST", "ACWDT": "ACWDT", "VET": "VET", "WART": "WART", "CAT": "CAT", "NZST": "NZST", "HEEG": "HEEG", "IST": "IST", "GYT": "GYT", "WITA": "WITA", "ChST": "ChST", "AEDT": "AEDT", "AEST": "AEST", "HECU": "HECU", "AKST": "AKST", "SAST": "SAST", "NZDT": "NZDT", "SRT": "SRT", "ACDT": "ACDT", "SGT": "SGT", "WAST": "WAST", "EDT": "EDT", "ART": "ART", "GMT": "GMT", "UYST": "UYST", "HNEG": "HNEG", "LHDT": "LHDT", "CHADT": "CHADT", "PDT": "PDT", "HAT": "HAT", "∅∅∅": "∅∅∅", "TMT": "TMT", "HAST": "HAST", "MESZ": "MESZ", "JST": "JST", "COT": "COT", "CLT": "CLT", "ECT": "ECT", "HADT": "HADT", "UYT": "UYT", "WEZ": "WEZ", "OEZ": "OEZ", "HKT": "HKT", "MYT": "MYT", "AWST": "AWST", "MEZ": "MEZ", "HNPM": "HNPM", "HEPM": "HEPM", "WIT": "WIT", "WIB": "WIB", "CDT": "CDT", "AST": "AST", "CST": "CST", "EAT": "EAT", "HEPMX": "HEPMX", "WESZ": "WESZ", "OESZ": "OESZ", "HNT": "HNT", "WARST": "WARST", "TMST": "TMST", "HENOMX": "HENOMX", "AWDT": "AWDT", "GFT": "GFT", "HEOG": "HEOG", "HKST": "HKST", "BOT": "BOT", "EST": "EST", "MST": "MST", "BT": "BT", "HNPMX": "HNPMX", "PST": "PST", "HNCU": "HNCU", "WAT": "WAT", "CLST": "CLST", "ADT": "ADT", "JDT": "JDT", "CHAST": "CHAST", "HNOG": "HNOG", "HNNOMX": "HNNOMX", "COST": "COST", "MDT": "MDT", "ARST": "ARST", "LHST": "LHST", "ACST": "ACST", "AKDT": "AKDT"},
+ }
+ }
+ 
+@@ -122,7 +101,7 @@ func (jgo *jgo_CM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (jgo *jgo_CM) MonthsAbbreviated() []string {
+- return jgo.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -132,7 +111,7 @@ func (jgo *jgo_CM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (jgo *jgo_CM) MonthsNarrow() []string {
+- return jgo.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -142,7 +121,7 @@ func (jgo *jgo_CM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (jgo *jgo_CM) MonthsWide() []string {
+- return jgo.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -188,73 +167,13 @@ func (jgo *jgo_CM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'jgo_CM' and handles both Whole and Real numbers based on 'v'
+ func (jgo *jgo_CM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, jgo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, jgo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, jgo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'jgo_CM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (jgo *jgo_CM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, jgo.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, jgo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, jgo.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'jgo_CM'
+@@ -262,60 +181,7 @@ func (jgo *jgo_CM) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := jgo.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, jgo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, jgo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(jgo.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, jgo.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, jgo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, jgo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'jgo_CM'
+@@ -324,72 +190,7 @@ func (jgo *jgo_CM) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := jgo.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, jgo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, jgo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(jgo.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, jgo.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, jgo.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(jgo.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, jgo.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, jgo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'jgo_CM'
+@@ -397,28 +198,6 @@ func (jgo *jgo_CM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -427,17 +206,6 @@ func (jgo *jgo_CM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, jgo.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +214,6 @@ func (jgo *jgo_CM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, jgo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -465,25 +222,6 @@ func (jgo *jgo_CM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, jgo.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, jgo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -492,19 +230,6 @@ func (jgo *jgo_CM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, jgo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -513,26 +238,6 @@ func (jgo *jgo_CM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, jgo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, jgo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -541,30 +246,6 @@ func (jgo *jgo_CM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, jgo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, jgo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -573,34 +254,5 @@ func (jgo *jgo_CM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, jgo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, jgo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := jgo.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/jmc/jmc.go b/jmc/jmc.go
+index bcb3eb4..e09c2a3 100644
+--- a/jmc/jmc.go
++++ b/jmc/jmc.go
+@@ -59,7 +59,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"KK", "BK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kabla ya Kristu", "Baada ya Kristu"},
+- timezones: map[string]string{"AKDT": "AKDT", "HAT": "HAT", "ART": "ART", "MESZ": "MESZ", "TMST": "TMST", "WARST": "WARST", "HECU": "HECU", "UYT": "UYT", "LHST": "LHST", "ACST": "ACST", "ACDT": "ACDT", "WIB": "WIB", "ARST": "ARST", "BT": "BT", "WEZ": "WEZ", "GFT": "GFT", "EAT": "EAT", "HNCU": "HNCU", "MYT": "MYT", "NZST": "NZST", "CAT": "CAT", "GMT": "GMT", "HAST": "HAST", "WIT": "WIT", "AEST": "AEST", "AEDT": "AEDT", "WAT": "WAT", "SGT": "SGT", "HEPMX": "HEPMX", "ACWDT": "ACWDT", "AWDT": "AWDT", "NZDT": "NZDT", "SAST": "SAST", "HNEG": "HNEG", "HEEG": "HEEG", "HNPMX": "HNPMX", "PST": "PST", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "GYT": "GYT", "CLST": "CLST", "CDT": "CDT", "ADT": "ADT", "VET": "VET", "CHAST": "CHAST", "BOT": "BOT", "WAST": "WAST", "EST": "EST", "MDT": "MDT", "AKST": "AKST", "IST": "IST", "HADT": "HADT", "HNOG": "HNOG", "WESZ": "WESZ", "AWST": "AWST", "∅∅∅": "∅∅∅", "HEOG": "HEOG", "HKT": "HKT", "ChST": "ChST", "HNT": "HNT", "WITA": "WITA", "MEZ": "MEZ", "AST": "AST", "SRT": "SRT", "ACWST": "ACWST", "HKST": "HKST", "WART": "WART", "COT": "COT", "COST": "COST", "UYST": "UYST", "HNPM": "HNPM", "CHADT": "CHADT", "HEPM": "HEPM", "LHDT": "LHDT", "JST": "JST", "JDT": "JDT", "TMT": "TMT", "ECT": "ECT", "EDT": "EDT", "CST": "CST", "HENOMX": "HENOMX", "MST": "MST", "OESZ": "OESZ", "PDT": "PDT", "CLT": "CLT"},
++ timezones: map[string]string{"CLT": "CLT", "NZDT": "NZDT", "ACDT": "ACDT", "MYT": "MYT", "AKDT": "AKDT", "COST": "COST", "SAST": "SAST", "COT": "COT", "CLST": "CLST", "GMT": "GMT", "MEZ": "MEZ", "IST": "IST", "HECU": "HECU", "WIT": "WIT", "GFT": "GFT", "WITA": "WITA", "MST": "MST", "WIB": "WIB", "UYT": "UYT", "UYST": "UYST", "PDT": "PDT", "ART": "ART", "AWDT": "AWDT", "LHDT": "LHDT", "CAT": "CAT", "GYT": "GYT", "SRT": "SRT", "MESZ": "MESZ", "JST": "JST", "BT": "BT", "OESZ": "OESZ", "WARST": "WARST", "HKT": "HKT", "ChST": "ChST", "CHAST": "CHAST", "PST": "PST", "ACWDT": "ACWDT", "AEST": "AEST", "HNOG": "HNOG", "TMT": "TMT", "CST": "CST", "ARST": "ARST", "HEPM": "HEPM", "WAST": "WAST", "HAT": "HAT", "CHADT": "CHADT", "WAT": "WAT", "HEOG": "HEOG", "MDT": "MDT", "ECT": "ECT", "BOT": "BOT", "EAT": "EAT", "HAST": "HAST", "HEEG": "HEEG", "LHST": "LHST", "JDT": "JDT", "EDT": "EDT", "HADT": "HADT", "HNPM": "HNPM", "WESZ": "WESZ", "AKST": "AKST", "CDT": "CDT", "HNT": "HNT", "AST": "AST", "HNNOMX": "HNNOMX", "AEDT": "AEDT", "EST": "EST", "TMST": "TMST", "HNEG": "HNEG", "AWST": "AWST", "WEZ": "WEZ", "SGT": "SGT", "HNCU": "HNCU", "ADT": "ADT", "ACST": "ACST", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "WART": "WART", "HKST": "HKST", "NZST": "NZST", "ACWST": "ACWST", "VET": "VET", "HNPMX": "HNPMX", "HEPMX": "HEPMX"},
+ }
+ }
+ 
+diff --git a/jmc_TZ/jmc_TZ.go b/jmc_TZ/jmc_TZ.go
+index 2630ba6..57c4893 100644
+--- a/jmc_TZ/jmc_TZ.go
++++ b/jmc_TZ/jmc_TZ.go
+@@ -42,24 +42,13 @@ type jmc_TZ struct {
+ // New returns a new instance of translator for the 'jmc_TZ' locale
+ func New() locales.Translator {
+ return &jmc_TZ{
+- locale: "jmc_TZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januari", "Februari", "Machi", "Aprilyi", "Mei", "Junyi", "Julyai", "Agusti", "Septemba", "Oktoba", "Novemba", "Desemba"},
+- daysAbbreviated: []string{"Jpi", "Jtt", "Jnn", "Jtn", "Alh", "Iju", "Jmo"},
+- daysNarrow: []string{"J", "J", "J", "J", "A", "I", "J"},
+- daysWide: []string{"Jumapilyi", "Jumatatuu", "Jumanne", "Jumatanu", "Alhamisi", "Ijumaa", "Jumamosi"},
+- periodsAbbreviated: []string{"utuko", "kyiukonyi"},
+- periodsWide: []string{"utuko", "kyiukonyi"},
+- erasAbbreviated: []string{"KK", "BK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kabla ya Kristu", "Baada ya Kristu"},
+- timezones: map[string]string{"OEZ": "OEZ", "LHDT": "LHDT", "MEZ": "MEZ", "TMT": "TMT", "AWST": "AWST", "HEPM": "HEPM", "CHAST": "CHAST", "WAT": "WAT", "HENOMX": "HENOMX", "MST": "MST", "HAST": "HAST", "WEZ": "WEZ", "COST": "COST", "SGT": "SGT", "HEPMX": "HEPMX", "TMST": "TMST", "ACST": "ACST", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "AST": "AST", "ARST": "ARST", "HKST": "HKST", "EDT": "EDT", "UYST": "UYST", "HAT": "HAT", "JST": "JST", "WAST": "WAST", "ECT": "ECT", "SAST": "SAST", "GFT": "GFT", "WIB": "WIB", "HADT": "HADT", "CLT": "CLT", "PDT": "PDT", "CLST": "CLST", "JDT": "JDT", "MDT": "MDT", "AKST": "AKST", "ADT": "ADT", "GYT": "GYT", "ACWST": "ACWST", "HEEG": "HEEG", "WART": "WART", "VET": "VET", "CHADT": "CHADT", "BOT": "BOT", "HNT": "HNT", "HNOG": "HNOG", "PST": "PST", "EAT": "EAT", "HNPMX": "HNPMX", "EST": "EST", "CST": "CST", "WESZ": "WESZ", "WITA": "WITA", "AEST": "AEST", "AKDT": "AKDT", "SRT": "SRT", "ACWDT": "ACWDT", "ART": "ART", "AWDT": "AWDT", "NZDT": "NZDT", "HECU": "HECU", "BT": "BT", "HKT": "HKT", "LHST": "LHST", "NZST": "NZST", "∅∅∅": "∅∅∅", "GMT": "GMT", "WIT": "WIT", "OESZ": "OESZ", "MYT": "MYT", "AEDT": "AEDT", "HNPM": "HNPM", "CAT": "CAT", "CDT": "CDT", "ChST": "ChST", "ACDT": "ACDT", "IST": "IST", "COT": "COT", "WARST": "WARST", "UYT": "UYT", "HEOG": "HEOG", "MESZ": "MESZ"},
++ locale: "jmc_TZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNCU": "HNCU", "OESZ": "OESZ", "NZDT": "NZDT", "HNEG": "HNEG", "HENOMX": "HENOMX", "MYT": "MYT", "LHDT": "LHDT", "HEPMX": "HEPMX", "CLST": "CLST", "WIB": "WIB", "ACST": "ACST", "HEPM": "HEPM", "AEST": "AEST", "IST": "IST", "HNPMX": "HNPMX", "WAST": "WAST", "OEZ": "OEZ", "GYT": "GYT", "HADT": "HADT", "BT": "BT", "ACWST": "ACWST", "NZST": "NZST", "CDT": "CDT", "MDT": "MDT", "GMT": "GMT", "ARST": "ARST", "SRT": "SRT", "CHADT": "CHADT", "WEZ": "WEZ", "AKST": "AKST", "GFT": "GFT", "WART": "WART", "HAT": "HAT", "COT": "COT", "COST": "COST", "HAST": "HAST", "HNPM": "HNPM", "UYT": "UYT", "HNOG": "HNOG", "HKT": "HKT", "ADT": "ADT", "HECU": "HECU", "AST": "AST", "EAT": "EAT", "AWDT": "AWDT", "UYST": "UYST", "JST": "JST", "AWST": "AWST", "ECT": "ECT", "ACDT": "ACDT", "HEEG": "HEEG", "LHST": "LHST", "WARST": "WARST", "TMST": "TMST", "WIT": "WIT", "HNT": "HNT", "CLT": "CLT", "CST": "CST", "BOT": "BOT", "MESZ": "MESZ", "AKDT": "AKDT", "EST": "EST", "VET": "VET", "HEOG": "HEOG", "TMT": "TMT", "PDT": "PDT", "∅∅∅": "∅∅∅", "SGT": "SGT", "ART": "ART", "HNNOMX": "HNNOMX", "AEDT": "AEDT", "WESZ": "WESZ", "ACWDT": "ACWDT", "WITA": "WITA", "MST": "MST", "WAT": "WAT", "SAST": "SAST", "CAT": "CAT", "CHAST": "CHAST", "HKST": "HKST", "EDT": "EDT", "ChST": "ChST", "MEZ": "MEZ", "JDT": "JDT", "PST": "PST"},
+ }
+ }
+ 
+@@ -112,7 +101,7 @@ func (jmc *jmc_TZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (jmc *jmc_TZ) MonthsAbbreviated() []string {
+- return jmc.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -122,7 +111,7 @@ func (jmc *jmc_TZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (jmc *jmc_TZ) MonthsNarrow() []string {
+- return jmc.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -132,7 +121,7 @@ func (jmc *jmc_TZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (jmc *jmc_TZ) MonthsWide() []string {
+- return jmc.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,56 +181,7 @@ func (jmc *jmc_TZ) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := jmc.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, jmc.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, jmc.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, jmc.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, jmc.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'jmc_TZ'
+@@ -250,64 +190,7 @@ func (jmc *jmc_TZ) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := jmc.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, jmc.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, jmc.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, jmc.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, jmc.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'jmc_TZ'
+@@ -315,27 +198,6 @@ func (jmc *jmc_TZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -344,17 +206,6 @@ func (jmc *jmc_TZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, jmc.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -363,17 +214,6 @@ func (jmc *jmc_TZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, jmc.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -382,19 +222,6 @@ func (jmc *jmc_TZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, jmc.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, jmc.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -403,19 +230,6 @@ func (jmc *jmc_TZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, jmc.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -424,26 +238,6 @@ func (jmc *jmc_TZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, jmc.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, jmc.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -452,30 +246,6 @@ func (jmc *jmc_TZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, jmc.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, jmc.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -484,34 +254,5 @@ func (jmc *jmc_TZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, jmc.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, jmc.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := jmc.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ka/ka.go b/ka/ka.go
+index 2b7116e..74434b7 100644
+--- a/ka/ka.go
++++ b/ka/ka.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ძვ. წ.", "ახ. წ."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"ძველი წელთაღრიცხვით", "ახალი წელთაღრიცხვით"},
+- timezones: map[string]string{"WEZ": "დასავლეთ ევროპის სტანდარტული დრო", "HNT": "ნიუფაუნდლენდის სტანდარტული დრო", "AEDT": "აღმოსავლეთ ავსტრალიის ზაფხულის დრო", "OEZ": "აღმოსავლეთ ევროპის სტანდარტული დრო", "WART": "დასავლეთ არგენტინის სტანდარტული დრო", "WARST": "დასავლეთ არგენტინის ზაფხულის დრო", "HEPMX": "მექსიკის წყნარი ოკეანის ზაფხულის დრო", "AST": "ატლანტიკის ოკეანის სტანდარტული დრო", "UYT": "ურუგვაის სტანდარტული დრო", "HNPM": "სენ-პიერის და მიკელონის სტანდარტული დრო", "SGT": "სინგაპურის დრო", "HNCU": "კუბის სტანდარტული დრო", "UYST": "ურუგვაის ზაფხულის დრო", "BT": "ბუტანის დრო", "HEOG": "დასავლეთ გრენლანდიის ზაფხულის დრო", "CLT": "ჩილეს სტანდარტული დრო", "CLST": "ჩილეს ზაფხულის დრო", "HNEG": "აღმოსავლეთ გრენლანდიის სტანდარტული დრო", "TMST": "თურქმენეთის ზაფხულის დრო", "SRT": "სურინამის დრო", "MESZ": "ცენტრალური ევროპის ზაფხულის დრო", "CHADT": "ჩატემის ზაფხულის დრო", "ACST": "ავსტრალიის ცენტრალური სტანდარტული დრო", "PDT": "ჩრდილოეთ ამერიკის წყნარი ოკეანის ზაფხულის დრო", "AWST": "დასავლეთ ავსტრალიის სტანდარტული დრო", "HKT": "ჰონკონგის სტანდარტული დრო", "EAT": "აღმოსავლეთ აფრიკის დრო", "WAT": "დასავლეთ აფრიკის სტანდარტული დრო", "HENOMX": "ჩრდილო-დასავლეთ მექსიკის ზაფხულის დრო", "MDT": "ჩრდილოეთ ამერიკის მაუნთინის ზაფხულის დრო", "ARST": "არგენტინის ზაფხულის დრო", "HEPM": "სენ-პიერის და მიკელონის ზაფხულის დრო", "MEZ": "ცენტრალური ევროპის სტანდარტული დრო", "BOT": "ბოლივიის დრო", "MST": "ჩრდილოეთ ამერიკის მაუნთინის სტანდარტული დრო", "WIT": "აღმოსავლეთ ინდონეზიის დრო", "IST": "ინდოეთის დრო", "JST": "იაპონიის სტანდარტული დრო", "ChST": "ჩამოროს დრო", "EST": "ჩრდილოეთ ამერიკის აღმოსავლეთის სტანდარტული დრო", "ECT": "ეკვადორის დრო", "AKST": "ალასკის სტანდარტული დრო", "CDT": "ჩრდილოეთ ამერიკის ცენტრალური ზაფხულის დრო", "GYT": "გაიანის დრო", "PST": "ჩრდილოეთ ამერიკის წყნარი ოკეანის სტანდარტული დრო", "ACWDT": "ცენტრალური და დასავლეთ ავსტრალიის ზაფხულის დრო", "LHDT": "ლორდ-ჰაუს ზაფხულის დრო", "TMT": "თურქმენეთის სტანდარტული დრო", "VET": "ვენესუელის დრო", "AWDT": "დასავლეთ ავსტრალიის ზაფხულის დრო", "WITA": "ცენტრალური ინდონეზიის დრო", "HNNOMX": "ჩრდილო-დასავლეთ მექსიკის დრო", "ADT": "ატლანტიკის ოკეანის ზაფხულის დრო", "NZST": "ახალი ზელანდიის სტანდარტული დრო", "SAST": "სამხრეთ აფრიკის დრო", "ACDT": "ავსტრალიის ცენტრალური ზაფხულის დრო", "CST": "ჩრდილოეთ ამერიკის ცენტრალური სტანდარტული დრო", "HAST": "ჰავაისა და ალეუტის სტანდარტული დრო", "HADT": "ჰავაისა და ალეუტის ზაფხულის დრო", "LHST": "ლორდ-ჰაუს სტანდარტული დრო", "HEEG": "აღმოსავლეთ გრენლანდიის ზაფხულის დრო", "GFT": "საფრანგეთის გვიანის დრო", "HECU": "კუბის ზაფხულის დრო", "COST": "კოლუმბიის ზაფხულის დრო", "MYT": "მალაიზიის დრო", "ART": "არგენტინის სტანდარტული დრო", "CHAST": "ჩატემის სტანდარტული დრო", "WAST": "დასავლეთ აფრიკის ზაფხულის დრო", "AKDT": "ალასკის ზაფხულის დრო", "WESZ": "დასავლეთ ევროპის ზაფხულის დრო", "ACWST": "ცენტრალური და დასავლეთ ავსტრალიის სტანდარტული დრო", "HAT": "ნიუფაუნდლენდის ზაფხულის დრო", "HKST": "ჰონკონგის ზაფხულის დრო", "JDT": "იაპონიის ზაფხულის დრო", "CAT": "ცენტრალური აფრიკის დრო", "OESZ": "აღმოსავლეთ ევროპის ზაფხულის დრო", "HNOG": "დასავლეთ გრენლანდიის სტანდარტული დრო", "AEST": "აღმოსავლეთ ავსტრალიის სტანდარტული დრო", "NZDT": "ახალი ზელანდიის ზაფხულის დრო", "∅∅∅": "ამაზონიის ზაფხულის დრო", "COT": "კოლუმბიის სტანდარტული დრო", "EDT": "ჩრდილოეთ ამერიკის აღმოსავლეთის ზაფხულის დრო", "HNPMX": "მექსიკის წყნარი ოკეანის სტანდარტული დრო", "WIB": "დასავლეთ ინდონეზიის დრო", "GMT": "გრინვიჩის საშუალო დრო"},
++ timezones: map[string]string{"HKT": "ჰონკონგის სტანდარტული დრო", "ARST": "არგენტინის ზაფხულის დრო", "MESZ": "ცენტრალური ევროპის ზაფხულის დრო", "ACST": "ავსტრალიის ცენტრალური სტანდარტული დრო", "AWST": "დასავლეთ ავსტრალიის სტანდარტული დრო", "HNCU": "კუბის სტანდარტული დრო", "HEOG": "დასავლეთ გრენლანდიის ზაფხულის დრო", "UYT": "ურუგვაის სტანდარტული დრო", "WESZ": "დასავლეთ ევროპის ზაფხულის დრო", "GFT": "საფრანგეთის გვიანის დრო", "COT": "კოლუმბიის სტანდარტული დრო", "ADT": "ატლანტიკის ოკეანის ზაფხულის დრო", "HENOMX": "ჩრდილო-დასავლეთ მექსიკის ზაფხულის დრო", "WARST": "დასავლეთ არგენტინის ზაფხულის დრო", "TMT": "თურქმენეთის სტანდარტული დრო", "WEZ": "დასავლეთ ევროპის სტანდარტული დრო", "SAST": "სამხრეთ აფრიკის დრო", "ChST": "ჩამოროს დრო", "HNEG": "აღმოსავლეთ გრენლანდიის სტანდარტული დრო", "MYT": "მალაიზიის დრო", "AWDT": "დასავლეთ ავსტრალიის ზაფხულის დრო", "UYST": "ურუგვაის ზაფხულის დრო", "WITA": "ცენტრალური ინდონეზიის დრო", "CDT": "ჩრდილოეთ ამერიკის ცენტრალური ზაფხულის დრო", "MDT": "MDT", "ACWDT": "ცენტრალური და დასავლეთ ავსტრალიის ზაფხულის დრო", "PST": "ჩრდილოეთ ამერიკის წყნარი ოკეანის სტანდარტული დრო", "WAST": "დასავლეთ აფრიკის ზაფხულის დრო", "HNOG": "დასავლეთ გრენლანდიის სტანდარტული დრო", "CAT": "ცენტრალური აფრიკის დრო", "HAST": "ჰავაისა და ალეუტის სტანდარტული დრო", "HNPMX": "მექსიკის წყნარი ოკეანის სტანდარტული დრო", "SGT": "სინგაპურის დრო", "OESZ": "აღმოსავლეთ ევროპის ზაფხულის დრო", "HKST": "ჰონკონგის ზაფხულის დრო", "CLT": "ჩილეს სტანდარტული დრო", "HNPM": "სენ-პიერის და მიკელონის სტანდარტული დრო", "ACWST": "ცენტრალური და დასავლეთ ავსტრალიის სტანდარტული დრო", "WART": "დასავლეთ არგენტინის სტანდარტული დრო", "EAT": "აღმოსავლეთ აფრიკის დრო", "AKST": "ალასკის სტანდარტული დრო", "TMST": "თურქმენეთის ზაფხულის დრო", "HNNOMX": "ჩრდილო-დასავლეთ მექსიკის დრო", "ACDT": "ავსტრალიის ცენტრალური ზაფხულის დრო", "AEDT": "აღმოსავლეთ ავსტრალიის ზაფხულის დრო", "CHAST": "ჩატემის სტანდარტული დრო", "PDT": "ჩრდილოეთ ამერიკის წყნარი ოკეანის ზაფხულის დრო", "EDT": "ჩრდილოეთ ამერიკის აღმოსავლეთის ზაფხულის დრო", "WIB": "დასავლეთ ინდონეზიის დრო", "SRT": "სურინამის დრო", "HEPM": "სენ-პიერის და მიკელონის ზაფხულის დრო", "∅∅∅": "∅∅∅", "HECU": "კუბის ზაფხულის დრო", "HNT": "ნიუფაუნდლენდის სტანდარტული დრო", "HAT": "ნიუფაუნდლენდის ზაფხულის დრო", "LHDT": "ლორდ-ჰაუს ზაფხულის დრო", "NZDT": "ახალი ზელანდიის ზაფხულის დრო", "GMT": "გრინვიჩის საშუალო დრო", "ART": "არგენტინის სტანდარტული დრო", "AST": "ატლანტიკის ოკეანის სტანდარტული დრო", "HADT": "ჰავაისა და ალეუტის ზაფხულის დრო", "HEEG": "აღმოსავლეთ გრენლანდიის ზაფხულის დრო", "CHADT": "ჩატემის ზაფხულის დრო", "GYT": "გაიანის დრო", "EST": "ჩრდილოეთ ამერიკის აღმოსავლეთის სტანდარტული დრო", "MST": "MST", "OEZ": "აღმოსავლეთ ევროპის სტანდარტული დრო", "MEZ": "ცენტრალური ევროპის სტანდარტული დრო", "JST": "იაპონიის სტანდარტული დრო", "LHST": "ლორდ-ჰაუს სტანდარტული დრო", "IST": "ინდოეთის დრო", "WAT": "დასავლეთ აფრიკის სტანდარტული დრო", "CST": "ჩრდილოეთ ამერიკის ცენტრალური სტანდარტული დრო", "BOT": "ბოლივიის დრო", "AEST": "აღმოსავლეთ ავსტრალიის სტანდარტული დრო", "AKDT": "ალასკის ზაფხულის დრო", "CLST": "ჩილეს ზაფხულის დრო", "NZST": "ახალი ზელანდიის სტანდარტული დრო", "ECT": "ეკვადორის დრო", "COST": "კოლუმბიის ზაფხულის დრო", "JDT": "იაპონიის ზაფხულის დრო", "BT": "ბუტანის დრო", "VET": "ვენესუელის დრო", "HEPMX": "მექსიკის წყნარი ოკეანის ზაფხულის დრო", "WIT": "აღმოსავლეთ ინდონეზიის დრო"},
+ }
+ }
+ 
+diff --git a/ka_GE/ka_GE.go b/ka_GE/ka_GE.go
+index 5a0f9d1..fd045bf 100644
+--- a/ka_GE/ka_GE.go
++++ b/ka_GE/ka_GE.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type ka_GE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ka_GE' locale
+ func New() locales.Translator {
+ return &ka_GE{
+- locale: "ka_GE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 5, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "იან", "თებ", "მარ", "აპრ", "მაი", "ივნ", "ივლ", "აგვ", "სექ", "ოქტ", "ნოე", "დეკ"},
+- monthsNarrow: []string{"", "ი", "თ", "მ", "ა", "მ", "ი", "ი", "ა", "ს", "ო", "ნ", "დ"},
+- monthsWide: []string{"", "იანვარი", "თებერვალი", "მარტი", "აპრილი", "მაისი", "ივნისი", "ივლისი", "აგვისტო", "სექტემბერი", "ოქტომბერი", "ნოემბერი", "დეკემბერი"},
+- daysAbbreviated: []string{"კვი", "ორშ", "სამ", "ოთხ", "ხუთ", "პარ", "შაბ"},
+- daysNarrow: []string{"კ", "ო", "ს", "ო", "ხ", "პ", "შ"},
+- daysShort: []string{"კვ", "ორ", "სმ", "ოთ", "ხთ", "პრ", "შბ"},
+- daysWide: []string{"კვირა", "ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"ძვ. წ.", "ახ. წ."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ძველი წელთაღრიცხვით", "ახალი წელთაღრიცხვით"},
+- timezones: map[string]string{"CHADT": "ჩატემის ზაფხულის დრო", "WAT": "დასავლეთ აფრიკის სტანდარტული დრო", "BT": "ბუტანის დრო", "HNOG": "დასავლეთ გრენლანდიის სტანდარტული დრო", "HECU": "კუბის ზაფხულის დრო", "CLT": "ჩილეს სტანდარტული დრო", "GFT": "საფრანგეთის გვიანის დრო", "ACWDT": "ცენტრალური და დასავლეთ ავსტრალიის ზაფხულის დრო", "ART": "არგენტინის სტანდარტული დრო", "SAST": "სამხრეთ აფრიკის დრო", "ACDT": "ავსტრალიის ცენტრალური ზაფხულის დრო", "COT": "კოლუმბიის სტანდარტული დრო", "CST": "ჩრდილოეთ ამერიკის ცენტრალური სტანდარტული დრო", "SRT": "სურინამის დრო", "PST": "ჩრდილოეთ ამერიკის წყნარი ოკეანის სტანდარტული დრო", "CDT": "ჩრდილოეთ ამერიკის ცენტრალური ზაფხულის დრო", "HAST": "ჰავაისა და ალეუტის სტანდარტული დრო", "HKST": "ჰონკონგის ზაფხულის დრო", "WITA": "ცენტრალური ინდონეზიის დრო", "NZST": "ახალი ზელანდიის სტანდარტული დრო", "IST": "ინდოეთის დრო", "EAT": "აღმოსავლეთ აფრიკის დრო", "HENOMX": "ჩრდილო-დასავლეთ მექსიკის ზაფხულის დრო", "MDT": "ჩრდილოეთ ამერიკის მაუნთინის ზაფხულის დრო", "HADT": "ჰავაისა და ალეუტის ზაფხულის დრო", "MEZ": "ცენტრალური ევროპის სტანდარტული დრო", "CHAST": "ჩატემის სტანდარტული დრო", "ECT": "ეკვადორის დრო", "HNPMX": "მექსიკის წყნარი ოკეანის სტანდარტული დრო", "AST": "ატლანტიკის ოკეანის სტანდარტული დრო", "MST": "ჩრდილოეთ ამერიკის მაუნთინის სტანდარტული დრო", "VET": "ვენესუელის დრო", "WAST": "დასავლეთ აფრიკის ზაფხულის დრო", "HNNOMX": "ჩრდილო-დასავლეთ მექსიკის დრო", "AKST": "ალასკის სტანდარტული დრო", "AKDT": "ალასკის ზაფხულის დრო", "WESZ": "დასავლეთ ევროპის ზაფხულის დრო", "MESZ": "ცენტრალური ევროპის ზაფხულის დრო", "WARST": "დასავლეთ არგენტინის ზაფხულის დრო", "HEPMX": "მექსიკის წყნარი ოკეანის ზაფხულის დრო", "UYT": "ურუგვაის სტანდარტული დრო", "WIT": "აღმოსავლეთ ინდონეზიის დრო", "HEEG": "აღმოსავლეთ გრენლანდიის ზაფხულის დრო", "ACST": "ავსტრალიის ცენტრალური სტანდარტული დრო", "ADT": "ატლანტიკის ოკეანის ზაფხულის დრო", "WEZ": "დასავლეთ ევროპის სტანდარტული დრო", "JDT": "იაპონიის ზაფხულის დრო", "AWST": "დასავლეთ ავსტრალიის სტანდარტული დრო", "LHDT": "ლორდ-ჰაუს ზაფხულის დრო", "∅∅∅": "ამაზონიის ზაფხულის დრო", "JST": "იაპონიის სტანდარტული დრო", "HNEG": "აღმოსავლეთ გრენლანდიის სტანდარტული დრო", "COST": "კოლუმბიის ზაფხულის დრო", "GMT": "გრინვიჩის საშუალო დრო", "HNPM": "სენ-პიერის და მიკელონის სტანდარტული დრო", "LHST": "ლორდ-ჰაუს სტანდარტული დრო", "UYST": "ურუგვაის ზაფხულის დრო", "HNCU": "კუბის სტანდარტული დრო", "EST": "ჩრდილოეთ ამერიკის აღმოსავლეთის სტანდარტული დრო", "ChST": "ჩამოროს დრო", "OEZ": "აღმოსავლეთ ევროპის სტანდარტული დრო", "OESZ": "აღმოსავლეთ ევროპის ზაფხულის დრო", "ACWST": "ცენტრალური და დასავლეთ ავსტრალიის სტანდარტული დრო", "CLST": "ჩილეს ზაფხულის დრო", "HKT": "ჰონკონგის სტანდარტული დრო", "HEPM": "სენ-პიერის და მიკელონის ზაფხულის დრო", "WART": "დასავლეთ არგენტინის სტანდარტული დრო", "GYT": "გაიანის დრო", "MYT": "მალაიზიის დრო", "WIB": "დასავლეთ ინდონეზიის დრო", "ARST": "არგენტინის ზაფხულის დრო", "HEOG": "დასავლეთ გრენლანდიის ზაფხულის დრო", "AEDT": "აღმოსავლეთ ავსტრალიის ზაფხულის დრო", "NZDT": "ახალი ზელანდიის ზაფხულის დრო", "BOT": "ბოლივიის დრო", "TMT": "თურქმენეთის სტანდარტული დრო", "PDT": "ჩრდილოეთ ამერიკის წყნარი ოკეანის ზაფხულის დრო", "HNT": "ნიუფაუნდლენდის სტანდარტული დრო", "AWDT": "დასავლეთ ავსტრალიის ზაფხულის დრო", "TMST": "თურქმენეთის ზაფხულის დრო", "CAT": "ცენტრალური აფრიკის დრო", "SGT": "სინგაპურის დრო", "EDT": "ჩრდილოეთ ამერიკის აღმოსავლეთის ზაფხულის დრო", "HAT": "ნიუფაუნდლენდის ზაფხულის დრო", "AEST": "აღმოსავლეთ ავსტრალიის სტანდარტული დრო"},
++ locale: "ka_GE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 5, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AWDT": "AWDT", "PDT": "PDT", "WAT": "WAT", "WART": "WART", "SRT": "SRT", "HEEG": "HEEG", "AWST": "AWST", "WESZ": "WESZ", "ChST": "ChST", "AKST": "AKST", "WITA": "WITA", "CST": "CST", "AEDT": "AEDT", "HECU": "HECU", "GMT": "GMT", "BT": "BT", "HNNOMX": "HNNOMX", "ACDT": "ACDT", "WIT": "WIT", "TMT": "TMT", "CLT": "CLT", "WEZ": "WEZ", "LHDT": "LHDT", "IST": "IST", "WARST": "WARST", "GYT": "GYT", "AST": "AST", "PST": "PST", "ARST": "ARST", "AEST": "AEST", "CLST": "CLST", "WIB": "WIB", "NZST": "NZST", "MDT": "MDT", "ART": "ART", "HNEG": "HNEG", "OESZ": "OESZ", "HEOG": "HEOG", "EDT": "EDT", "∅∅∅": "∅∅∅", "ECT": "ECT", "HENOMX": "HENOMX", "JDT": "JDT", "UYT": "UYT", "HNPMX": "HNPMX", "SGT": "SGT", "EST": "EST", "HKT": "HKT", "WAST": "WAST", "AKDT": "AKDT", "MYT": "MYT", "ACWDT": "ACWDT", "VET": "VET", "COT": "COT", "NZDT": "NZDT", "EAT": "EAT", "HADT": "HADT", "ACST": "ACST", "ACWST": "ACWST", "UYST": "UYST", "GFT": "GFT", "HAT": "HAT", "CAT": "CAT", "BOT": "BOT", "SAST": "SAST", "HEPM": "HEPM", "JST": "JST", "OEZ": "OEZ", "HNOG": "HNOG", "TMST": "TMST", "HKST": "HKST", "HAST": "HAST", "HNPM": "HNPM", "CHAST": "CHAST", "HNCU": "HNCU", "HEPMX": "HEPMX", "MST": "MST", "ADT": "ADT", "HNT": "HNT", "COST": "COST", "CDT": "CDT", "MEZ": "MEZ", "CHADT": "CHADT", "MESZ": "MESZ", "LHST": "LHST"},
+ }
+ }
+ 
+@@ -148,7 +123,7 @@ func (ka *ka_GE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ka *ka_GE) MonthsAbbreviated() []string {
+- return ka.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -158,7 +133,7 @@ func (ka *ka_GE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ka *ka_GE) MonthsNarrow() []string {
+- return ka.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -168,7 +143,7 @@ func (ka *ka_GE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ka *ka_GE) MonthsWide() []string {
+- return ka.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -214,77 +189,13 @@ func (ka *ka_GE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ka_GE' and handles both Whole and Real numbers based on 'v'
+ func (ka *ka_GE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ka.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ka.group) - 1; j >= 0; j-- {
+- b = append(b, ka.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ka.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ka_GE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ka *ka_GE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ka.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ka.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ka.percentSuffix...)
+-
+- b = append(b, ka.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ka_GE'
+@@ -292,58 +203,7 @@ func (ka *ka_GE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ka.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ka.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ka.group) - 1; j >= 0; j-- {
+- b = append(b, ka.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ka.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ka.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ka.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ka_GE'
+@@ -352,65 +212,7 @@ func (ka *ka_GE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ka.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ka.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ka.group) - 1; j >= 0; j-- {
+- b = append(b, ka.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ka.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ka.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ka.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ka.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ka_GE'
+@@ -418,27 +220,6 @@ func (ka *ka_GE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -447,17 +228,6 @@ func (ka *ka_GE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ka.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -466,17 +236,6 @@ func (ka *ka_GE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ka.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -485,24 +244,6 @@ func (ka *ka_GE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ka.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ka.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -511,19 +252,6 @@ func (ka *ka_GE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ka.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -532,26 +260,6 @@ func (ka *ka_GE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ka.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ka.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -560,30 +268,6 @@ func (ka *ka_GE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ka.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ka.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,34 +276,5 @@ func (ka *ka_GE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ka.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ka.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ka.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/kab/kab.go b/kab/kab.go
+index 0b6e9e2..290319e 100644
+--- a/kab/kab.go
++++ b/kab/kab.go
+@@ -61,7 +61,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"snd. T.Ɛ", "sld. T.Ɛ"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"send talalit n Ɛisa", "seld talalit n Ɛisa"},
+- timezones: map[string]string{"EAT": "EAT", "ECT": "ECT", "MYT": "MYT", "BT": "BT", "HNT": "HNT", "GFT": "GFT", "CAT": "CAT", "CHADT": "CHADT", "TMT": "TMT", "COST": "COST", "MST": "MST", "VET": "VET", "SRT": "SRT", "PDT": "PDT", "WITA": "WITA", "EDT": "EDT", "CDT": "CDT", "HADT": "HADT", "WESZ": "WESZ", "LHDT": "LHDT", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "BOT": "BOT", "ACDT": "ACDT", "OESZ": "OESZ", "WARST": "WARST", "COT": "COT", "ACST": "ACST", "UYT": "UYT", "UYST": "UYST", "HNOG": "HNOG", "ARST": "ARST", "JST": "JST", "AWDT": "AWDT", "HKST": "HKST", "WAT": "WAT", "EST": "EST", "AKDT": "AKDT", "ADT": "ADT", "HAST": "HAST", "AEST": "AEST", "WART": "WART", "CLT": "CLT", "WAST": "WAST", "GMT": "GMT", "∅∅∅": "∅∅∅", "WEZ": "WEZ", "AWST": "AWST", "MEZ": "MEZ", "GYT": "GYT", "NZDT": "NZDT", "HENOMX": "HENOMX", "HECU": "HECU", "AKST": "AKST", "LHST": "LHST", "SAST": "SAST", "TMST": "TMST", "SGT": "SGT", "HEPM": "HEPM", "MESZ": "MESZ", "HNCU": "HNCU", "PST": "PST", "ACWST": "ACWST", "IST": "IST", "CST": "CST", "HEOG": "HEOG", "ART": "ART", "CHAST": "CHAST", "AST": "AST", "WIT": "WIT", "NZST": "NZST", "CLST": "CLST", "HEEG": "HEEG", "HKT": "HKT", "JDT": "JDT", "HNEG": "HNEG", "MDT": "MDT", "HNPMX": "HNPMX", "WIB": "WIB", "HAT": "HAT", "AEDT": "AEDT", "HEPMX": "HEPMX", "ACWDT": "ACWDT", "HNPM": "HNPM", "ChST": "ChST"},
++ timezones: map[string]string{"MESZ": "MESZ", "ACWST": "ACWST", "GMT": "GMT", "MEZ": "MEZ", "TMT": "TMT", "ACDT": "ACDT", "LHDT": "LHDT", "UYST": "UYST", "HNT": "HNT", "GYT": "GYT", "LHST": "LHST", "HNCU": "HNCU", "HECU": "HECU", "OEZ": "OEZ", "NZDT": "NZDT", "HENOMX": "HENOMX", "UYT": "UYT", "WARST": "WARST", "COST": "COST", "PST": "PST", "PDT": "PDT", "HNPM": "HNPM", "HEPM": "HEPM", "HNEG": "HNEG", "JST": "JST", "IST": "IST", "AEST": "AEST", "CAT": "CAT", "CLT": "CLT", "CST": "CST", "AST": "AST", "AWST": "AWST", "AKST": "AKST", "EDT": "EDT", "GFT": "GFT", "WART": "WART", "MST": "MST", "ADT": "ADT", "VET": "VET", "HNPMX": "HNPMX", "WAST": "WAST", "AKDT": "AKDT", "HADT": "HADT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "OESZ": "OESZ", "HAST": "HAST", "TMST": "TMST", "MDT": "MDT", "CHADT": "CHADT", "HEPMX": "HEPMX", "WAT": "WAT", "EST": "EST", "AEDT": "AEDT", "CDT": "CDT", "ART": "ART", "BT": "BT", "HEOG": "HEOG", "HKT": "HKT", "ChST": "ChST", "ARST": "ARST", "AWDT": "AWDT", "JDT": "JDT", "WESZ": "WESZ", "∅∅∅": "∅∅∅", "WITA": "WITA", "CHAST": "CHAST", "EAT": "EAT", "MYT": "MYT", "COT": "COT", "HKST": "HKST", "ECT": "ECT", "BOT": "BOT", "SRT": "SRT", "ACST": "ACST", "WIT": "WIT", "SAST": "SAST", "ACWDT": "ACWDT", "WEZ": "WEZ", "CLST": "CLST", "NZST": "NZST", "WIB": "WIB", "SGT": "SGT", "HAT": "HAT", "HNOG": "HNOG"},
+ }
+ }
+ 
+diff --git a/kab_DZ/kab_DZ.go b/kab_DZ/kab_DZ.go
+index 64488f6..8e87971 100644
+--- a/kab_DZ/kab_DZ.go
++++ b/kab_DZ/kab_DZ.go
+@@ -42,26 +42,13 @@ type kab_DZ struct {
+ // New returns a new instance of translator for the 'kab_DZ' locale
+ func New() locales.Translator {
+ return &kab_DZ{
+- locale: "kab_DZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Yen", "Fur", "Meɣ", "Yeb", "May", "Yun", "Yul", "Ɣuc", "Cte", "Tub", "Nun", "Duǧ"},
+- monthsNarrow: []string{"", "Y", "F", "M", "Y", "M", "Y", "Y", "Ɣ", "C", "T", "N", "D"},
+- monthsWide: []string{"", "Yennayer", "Fuṛar", "Meɣres", "Yebrir", "Mayyu", "Yunyu", "Yulyu", "Ɣuct", "Ctembeṛ", "Tubeṛ", "Nunembeṛ", "Duǧembeṛ"},
+- daysAbbreviated: []string{"Yan", "San", "Kraḍ", "Kuẓ", "Sam", "Sḍis", "Say"},
+- daysNarrow: []string{"Y", "S", "K", "K", "S", "S", "S"},
+- daysWide: []string{"Yanass", "Sanass", "Kraḍass", "Kuẓass", "Samass", "Sḍisass", "Sayass"},
+- periodsAbbreviated: []string{"n tufat", "n tmeddit"},
+- periodsWide: []string{"n tufat", "n tmeddit"},
+- erasAbbreviated: []string{"snd. T.Ɛ", "sld. T.Ɛ"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"send talalit n Ɛisa", "seld talalit n Ɛisa"},
+- timezones: map[string]string{"WESZ": "WESZ", "OEZ": "OEZ", "AKST": "AKST", "HADT": "HADT", "HEPMX": "HEPMX", "ACST": "ACST", "HECU": "HECU", "HNPMX": "HNPMX", "TMT": "TMT", "SRT": "SRT", "AST": "AST", "JST": "JST", "JDT": "JDT", "TMST": "TMST", "HAST": "HAST", "SAST": "SAST", "HNCU": "HNCU", "MST": "MST", "EST": "EST", "MYT": "MYT", "PST": "PST", "COST": "COST", "MDT": "MDT", "WIB": "WIB", "WIT": "WIT", "ART": "ART", "ACDT": "ACDT", "HKST": "HKST", "WITA": "WITA", "IST": "IST", "BOT": "BOT", "EAT": "EAT", "COT": "COT", "WARST": "WARST", "HKT": "HKT", "CDT": "CDT", "MEZ": "MEZ", "GMT": "GMT", "HNT": "HNT", "AEST": "AEST", "HNEG": "HNEG", "HEEG": "HEEG", "ChST": "ChST", "GYT": "GYT", "UYT": "UYT", "HEPM": "HEPM", "LHST": "LHST", "NZDT": "NZDT", "WAST": "WAST", "ECT": "ECT", "CAT": "CAT", "AKDT": "AKDT", "HEOG": "HEOG", "AEDT": "AEDT", "WART": "WART", "SGT": "SGT", "ACWST": "ACWST", "GFT": "GFT", "CLT": "CLT", "WAT": "WAT", "HNNOMX": "HNNOMX", "VET": "VET", "BT": "BT", "HNOG": "HNOG", "PDT": "PDT", "NZST": "NZST", "LHDT": "LHDT", "CHADT": "CHADT", "HENOMX": "HENOMX", "EDT": "EDT", "UYST": "UYST", "ACWDT": "ACWDT", "AWDT": "AWDT", "HNPM": "HNPM", "CLST": "CLST", "ADT": "ADT", "HAT": "HAT", "ARST": "ARST", "AWST": "AWST", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "CST": "CST", "WEZ": "WEZ", "CHAST": "CHAST"},
++ locale: "kab_DZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNPMX": "HNPMX", "AKDT": "AKDT", "OESZ": "OESZ", "WARST": "WARST", "NZDT": "NZDT", "BOT": "BOT", "HENOMX": "HENOMX", "PDT": "PDT", "GYT": "GYT", "ADT": "ADT", "HAST": "HAST", "HADT": "HADT", "HNNOMX": "HNNOMX", "HEOG": "HEOG", "CHAST": "CHAST", "CHADT": "CHADT", "HNT": "HNT", "AST": "AST", "LHST": "LHST", "EDT": "EDT", "TMST": "TMST", "MST": "MST", "ART": "ART", "∅∅∅": "∅∅∅", "CDT": "CDT", "EAT": "EAT", "MESZ": "MESZ", "ACDT": "ACDT", "GFT": "GFT", "SAST": "SAST", "WEZ": "WEZ", "CAT": "CAT", "CLT": "CLT", "CLST": "CLST", "WIB": "WIB", "AWDT": "AWDT", "PST": "PST", "COT": "COT", "ChST": "ChST", "IST": "IST", "UYST": "UYST", "HNCU": "HNCU", "HECU": "HECU", "WAST": "WAST", "HNOG": "HNOG", "HKT": "HKT", "ECT": "ECT", "HNPM": "HNPM", "SRT": "SRT", "ACWDT": "ACWDT", "AEDT": "AEDT", "HEPMX": "HEPMX", "NZST": "NZST", "GMT": "GMT", "AWST": "AWST", "BT": "BT", "WESZ": "WESZ", "VET": "VET", "OEZ": "OEZ", "WIT": "WIT", "HKST": "HKST", "TMT": "TMT", "JST": "JST", "ACST": "ACST", "WITA": "WITA", "HAT": "HAT", "AEST": "AEST", "ACWST": "ACWST", "EST": "EST", "ARST": "ARST", "LHDT": "LHDT", "MDT": "MDT", "MYT": "MYT", "UYT": "UYT", "SGT": "SGT", "WAT": "WAT", "WART": "WART", "CST": "CST", "HEPM": "HEPM", "AKST": "AKST", "COST": "COST", "MEZ": "MEZ", "HNEG": "HNEG", "HEEG": "HEEG", "JDT": "JDT"},
+ }
+ }
+ 
+@@ -115,7 +102,7 @@ func (kab *kab_DZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (kab *kab_DZ) MonthsAbbreviated() []string {
+- return kab.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -125,7 +112,7 @@ func (kab *kab_DZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (kab *kab_DZ) MonthsNarrow() []string {
+- return kab.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -135,7 +122,7 @@ func (kab *kab_DZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (kab *kab_DZ) MonthsWide() []string {
+- return kab.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -195,56 +182,7 @@ func (kab *kab_DZ) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kab.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kab.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(kab.group) - 1; j >= 0; j-- {
+- b = append(b, kab.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, kab.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kab.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'kab_DZ'
+@@ -253,63 +191,7 @@ func (kab *kab_DZ) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kab.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kab.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(kab.group) - 1; j >= 0; j-- {
+- b = append(b, kab.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, kab.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kab.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'kab_DZ'
+@@ -317,17 +199,6 @@ func (kab *kab_DZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -336,17 +207,6 @@ func (kab *kab_DZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kab.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -355,17 +215,6 @@ func (kab *kab_DZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kab.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -374,19 +223,6 @@ func (kab *kab_DZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, kab.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kab.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -395,28 +231,6 @@ func (kab *kab_DZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, kab.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, kab.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, kab.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -425,35 +239,6 @@ func (kab *kab_DZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, kab.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kab.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, kab.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, kab.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,40 +247,6 @@ func (kab *kab_DZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, kab.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kab.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, kab.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, kab.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -504,44 +255,5 @@ func (kab *kab_DZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, kab.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kab.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, kab.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, kab.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := kab.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/kam/kam.go b/kam/kam.go
+index f4d4412..cf42af4 100644
+--- a/kam/kam.go
++++ b/kam/kam.go
+@@ -63,7 +63,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"MY", "IY"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Mbee wa Yesũ", "Ĩtina wa Yesũ"},
+- timezones: map[string]string{"∅∅∅": "∅∅∅", "ECT": "ECT", "WIB": "WIB", "HADT": "HADT", "MESZ": "MESZ", "SAST": "SAST", "JST": "JST", "HENOMX": "HENOMX", "IST": "IST", "CLT": "CLT", "HECU": "HECU", "GYT": "GYT", "WEZ": "WEZ", "HAT": "HAT", "ARST": "ARST", "AKST": "AKST", "AST": "AST", "HNEG": "HNEG", "TMT": "TMT", "WARST": "WARST", "HNPMX": "HNPMX", "UYT": "UYT", "HNNOMX": "HNNOMX", "VET": "VET", "AWST": "AWST", "NZST": "NZST", "PDT": "PDT", "WESZ": "WESZ", "WAST": "WAST", "OEZ": "OEZ", "COT": "COT", "COST": "COST", "CDT": "CDT", "SRT": "SRT", "TMST": "TMST", "EAT": "EAT", "WAT": "WAT", "WART": "WART", "HNPM": "HNPM", "AWDT": "AWDT", "HEPM": "HEPM", "ACST": "ACST", "ACDT": "ACDT", "MST": "MST", "MDT": "MDT", "BT": "BT", "AEDT": "AEDT", "LHST": "LHST", "GFT": "GFT", "SGT": "SGT", "HKST": "HKST", "BOT": "BOT", "CAT": "CAT", "HNCU": "HNCU", "EDT": "EDT", "HAST": "HAST", "UYST": "UYST", "MYT": "MYT", "WIT": "WIT", "ACWDT": "ACWDT", "HKT": "HKT", "ADT": "ADT", "PST": "PST", "ACWST": "ACWST", "ART": "ART", "HNOG": "HNOG", "LHDT": "LHDT", "CHADT": "CHADT", "CLST": "CLST", "ChST": "ChST", "HEEG": "HEEG", "AKDT": "AKDT", "CST": "CST", "CHAST": "CHAST", "HEPMX": "HEPMX", "HEOG": "HEOG", "AEST": "AEST", "WITA": "WITA", "NZDT": "NZDT", "JDT": "JDT", "OESZ": "OESZ", "GMT": "GMT", "EST": "EST", "HNT": "HNT", "MEZ": "MEZ"},
++ timezones: map[string]string{"AWDT": "AWDT", "UYST": "UYST", "WART": "WART", "WARST": "WARST", "HNOG": "HNOG", "MST": "MST", "HADT": "HADT", "WEZ": "WEZ", "SGT": "SGT", "WIB": "WIB", "MDT": "MDT", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "HEPM": "HEPM", "PDT": "PDT", "HEPMX": "HEPMX", "OEZ": "OEZ", "WITA": "WITA", "AST": "AST", "HNEG": "HNEG", "CHADT": "CHADT", "HNCU": "HNCU", "HEEG": "HEEG", "HENOMX": "HENOMX", "MYT": "MYT", "HNPM": "HNPM", "HNPMX": "HNPMX", "WAT": "WAT", "GMT": "GMT", "ACWST": "ACWST", "AEST": "AEST", "WESZ": "WESZ", "HECU": "HECU", "HNT": "HNT", "CLT": "CLT", "CST": "CST", "ARST": "ARST", "BOT": "BOT", "MEZ": "MEZ", "JST": "JST", "JDT": "JDT", "BT": "BT", "UYT": "UYT", "ECT": "ECT", "ChST": "ChST", "EAT": "EAT", "LHST": "LHST", "CHAST": "CHAST", "AKDT": "AKDT", "ART": "ART", "ACST": "ACST", "IST": "IST", "VET": "VET", "COT": "COT", "CLST": "CLST", "CDT": "CDT", "NZDT": "NZDT", "ACDT": "ACDT", "TMT": "TMT", "SRT": "SRT", "AWST": "AWST", "PST": "PST", "OESZ": "OESZ", "HAT": "HAT", "GYT": "GYT", "NZST": "NZST", "HAST": "HAST", "AEDT": "AEDT", "WAST": "WAST", "EST": "EST", "HKT": "HKT", "MESZ": "MESZ", "EDT": "EDT", "TMST": "TMST", "ADT": "ADT", "AKST": "AKST", "GFT": "GFT", "WIT": "WIT", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "ACWDT": "ACWDT", "SAST": "SAST", "COST": "COST", "HKST": "HKST", "CAT": "CAT"},
+ }
+ }
+ 
+diff --git a/kam_KE/kam_KE.go b/kam_KE/kam_KE.go
+index 9f74ba6..20fe782 100644
+--- a/kam_KE/kam_KE.go
++++ b/kam_KE/kam_KE.go
+@@ -10,60 +10,45 @@ import (
+ )
+ 
+ type kam_KE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'kam_KE' locale
+ func New() locales.Translator {
+ return &kam_KE{
+- locale: "kam_KE",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Mbe", "Kel", "Ktũ", "Kan", "Ktn", "Tha", "Moo", "Nya", "Knd", "Ĩku", "Ĩkm", "Ĩkl"},
+- monthsNarrow: []string{"", "M", "K", "K", "K", "K", "T", "M", "N", "K", "Ĩ", "Ĩ", "Ĩ"},
+- monthsWide: []string{"", "Mwai wa mbee", "Mwai wa kelĩ", "Mwai wa katatũ", "Mwai wa kana", "Mwai wa katano", "Mwai wa thanthatũ", "Mwai wa muonza", "Mwai wa nyaanya", "Mwai wa kenda", "Mwai wa ĩkumi", "Mwai wa ĩkumi na ĩmwe", "Mwai wa ĩkumi na ilĩ"},
+- daysAbbreviated: []string{"Wky", "Wkw", "Wkl", "Wtũ", "Wkn", "Wtn", "Wth"},
+- daysNarrow: []string{"Y", "W", "E", "A", "A", "A", "A"},
+- daysWide: []string{"Wa kyumwa", "Wa kwambĩlĩlya", "Wa kelĩ", "Wa katatũ", "Wa kana", "Wa katano", "Wa thanthatũ"},
+- periodsAbbreviated: []string{"Ĩyakwakya", "Ĩyawĩoo"},
+- periodsWide: []string{"Ĩyakwakya", "Ĩyawĩoo"},
+- erasAbbreviated: []string{"MY", "IY"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Mbee wa Yesũ", "Ĩtina wa Yesũ"},
+- timezones: map[string]string{"WITA": "WITA", "LHST": "LHST", "HNCU": "HNCU", "HNPMX": "HNPMX", "CDT": "CDT", "HAST": "HAST", "WIT": "WIT", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "HADT": "HADT", "HNT": "HNT", "ADT": "ADT", "HAT": "HAT", "HKST": "HKST", "LHDT": "LHDT", "CHADT": "CHADT", "GFT": "GFT", "EST": "EST", "MESZ": "MESZ", "CAT": "CAT", "GYT": "GYT", "PDT": "PDT", "HKT": "HKT", "CHAST": "CHAST", "ChST": "ChST", "TMST": "TMST", "EAT": "EAT", "COST": "COST", "UYT": "UYT", "HNOG": "HNOG", "HEPM": "HEPM", "HEEG": "HEEG", "ART": "ART", "ARST": "ARST", "AWST": "AWST", "NZST": "NZST", "HNEG": "HNEG", "ECT": "ECT", "WART": "WART", "WEZ": "WEZ", "IST": "IST", "CLT": "CLT", "ACDT": "ACDT", "WARST": "WARST", "AKST": "AKST", "PST": "PST", "AKDT": "AKDT", "AST": "AST", "ACWST": "ACWST", "WAT": "WAT", "COT": "COT", "SGT": "SGT", "HECU": "HECU", "MST": "MST", "CST": "CST", "VET": "VET", "ACWDT": "ACWDT", "AEST": "AEST", "AEDT": "AEDT", "MEZ": "MEZ", "BOT": "BOT", "WAST": "WAST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "BT": "BT", "AWDT": "AWDT", "CLST": "CLST", "JST": "JST", "TMT": "TMT", "OESZ": "OESZ", "EDT": "EDT", "WIB": "WIB", "SRT": "SRT", "WESZ": "WESZ", "HNPM": "HNPM", "NZDT": "NZDT", "SAST": "SAST", "ACST": "ACST", "OEZ": "OEZ", "UYST": "UYST", "JDT": "JDT", "GMT": "GMT", "MDT": "MDT", "HEPMX": "HEPMX", "MYT": "MYT"},
++ locale: "kam_KE",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"LHST": "LHST", "UYT": "UYT", "VET": "VET", "WESZ": "WESZ", "HNT": "HNT", "MDT": "MDT", "ART": "ART", "ARST": "ARST", "WIB": "WIB", "HEPM": "HEPM", "WIT": "WIT", "ChST": "ChST", "ACST": "ACST", "AEST": "AEST", "WAST": "WAST", "HAT": "HAT", "HEOG": "HEOG", "HAST": "HAST", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "CHAST": "CHAST", "HNCU": "HNCU", "WARST": "WARST", "AST": "AST", "HNNOMX": "HNNOMX", "PDT": "PDT", "OESZ": "OESZ", "CLT": "CLT", "WITA": "WITA", "JDT": "JDT", "OEZ": "OEZ", "SRT": "SRT", "AKST": "AKST", "CLST": "CLST", "CAT": "CAT", "ECT": "ECT", "CST": "CST", "CDT": "CDT", "GYT": "GYT", "TMST": "TMST", "EAT": "EAT", "MESZ": "MESZ", "PST": "PST", "AWST": "AWST", "COT": "COT", "HNOG": "HNOG", "CHADT": "CHADT", "WART": "WART", "HKST": "HKST", "TMT": "TMT", "NZST": "NZST", "HEEG": "HEEG", "BT": "BT", "GFT": "GFT", "HADT": "HADT", "JST": "JST", "HEPMX": "HEPMX", "ACDT": "ACDT", "MEZ": "MEZ", "ACWST": "ACWST", "BOT": "BOT", "HECU": "HECU", "WEZ": "WEZ", "AEDT": "AEDT", "SGT": "SGT", "WAT": "WAT", "HKT": "HKT", "EDT": "EDT", "NZDT": "NZDT", "ADT": "ADT", "HNPM": "HNPM", "ACWDT": "ACWDT", "UYST": "UYST", "IST": "IST", "SAST": "SAST", "MST": "MST", "HNEG": "HNEG", "LHDT": "LHDT", "HNPMX": "HNPMX", "AKDT": "AKDT", "COST": "COST", "EST": "EST", "GMT": "GMT", "MYT": "MYT", "AWDT": "AWDT"},
+ }
+ }
+ 
+@@ -109,7 +94,7 @@ func (kam *kam_KE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (kam *kam_KE) MonthsAbbreviated() []string {
+- return kam.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -119,7 +104,7 @@ func (kam *kam_KE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (kam *kam_KE) MonthsNarrow() []string {
+- return kam.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -129,7 +114,7 @@ func (kam *kam_KE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (kam *kam_KE) MonthsWide() []string {
+- return kam.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -189,56 +174,7 @@ func (kam *kam_KE) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kam.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kam.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, kam.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, kam.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kam.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'kam_KE'
+@@ -247,68 +183,7 @@ func (kam *kam_KE) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kam.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kam.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, kam.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, kam.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kam.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, kam.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'kam_KE'
+@@ -316,27 +191,6 @@ func (kam *kam_KE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -345,17 +199,6 @@ func (kam *kam_KE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kam.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -364,17 +207,6 @@ func (kam *kam_KE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kam.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -383,19 +215,6 @@ func (kam *kam_KE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, kam.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kam.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -404,19 +223,6 @@ func (kam *kam_KE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kam.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -425,26 +231,6 @@ func (kam *kam_KE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kam.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kam.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -453,30 +239,6 @@ func (kam *kam_KE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kam.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kam.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -485,34 +247,5 @@ func (kam *kam_KE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kam.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kam.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := kam.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/kde/kde.go b/kde/kde.go
+index 8f09636..531080e 100644
+--- a/kde/kde.go
++++ b/kde/kde.go
+@@ -63,7 +63,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"AY", "NY"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Akanapawa Yesu", "Nankuida Yesu"},
+- timezones: map[string]string{"IST": "IST", "JST": "JST", "TMT": "TMT", "WART": "WART", "HNNOMX": "HNNOMX", "WIT": "WIT", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "HNPMX": "HNPMX", "AST": "AST", "CST": "CST", "VET": "VET", "HENOMX": "HENOMX", "GYT": "GYT", "BT": "BT", "PST": "PST", "AEDT": "AEDT", "AWDT": "AWDT", "CLST": "CLST", "ECT": "ECT", "WIB": "WIB", "AWST": "AWST", "MYT": "MYT", "EAT": "EAT", "WAT": "WAT", "HEOG": "HEOG", "WEZ": "WEZ", "MESZ": "MESZ", "JDT": "JDT", "BOT": "BOT", "ACDT": "ACDT", "COST": "COST", "UYT": "UYT", "AEST": "AEST", "HEPM": "HEPM", "HEEG": "HEEG", "COT": "COT", "UYST": "UYST", "EDT": "EDT", "MDT": "MDT", "HNOG": "HNOG", "LHDT": "LHDT", "ChST": "ChST", "WAST": "WAST", "OESZ": "OESZ", "HNCU": "HNCU", "HKST": "HKST", "CHAST": "CHAST", "CLT": "CLT", "HADT": "HADT", "ART": "ART", "WESZ": "WESZ", "ACWDT": "ACWDT", "HECU": "HECU", "HEPMX": "HEPMX", "WITA": "WITA", "HNEG": "HNEG", "AKDT": "AKDT", "SRT": "SRT", "HNPM": "HNPM", "CHADT": "CHADT", "TMST": "TMST", "ACST": "ACST", "ADT": "ADT", "HNT": "HNT", "HAT": "HAT", "CDT": "CDT", "LHST": "LHST", "NZST": "NZST", "CAT": "CAT", "GMT": "GMT", "ARST": "ARST", "MEZ": "MEZ", "NZDT": "NZDT", "SAST": "SAST", "PDT": "PDT", "WARST": "WARST", "SGT": "SGT", "AKST": "AKST", "HAST": "HAST", "ACWST": "ACWST", "HKT": "HKT", "GFT": "GFT", "EST": "EST", "MST": "MST"},
++ timezones: map[string]string{"AEDT": "AEDT", "HECU": "HECU", "GFT": "GFT", "CDT": "CDT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "VET": "VET", "HNCU": "HNCU", "WAST": "WAST", "WART": "WART", "WITA": "WITA", "ARST": "ARST", "CHADT": "CHADT", "WEZ": "WEZ", "AEST": "AEST", "PDT": "PDT", "HEPMX": "HEPMX", "HKT": "HKT", "NZDT": "NZDT", "HEEG": "HEEG", "ACWST": "ACWST", "MEZ": "MEZ", "MYT": "MYT", "HAT": "HAT", "GYT": "GYT", "ADT": "ADT", "HNEG": "HNEG", "HNPMX": "HNPMX", "WESZ": "WESZ", "WAT": "WAT", "OEZ": "OEZ", "HNT": "HNT", "BOT": "BOT", "EDT": "EDT", "AWST": "AWST", "UYST": "UYST", "IST": "IST", "PST": "PST", "BT": "BT", "AKDT": "AKDT", "HNOG": "HNOG", "NZST": "NZST", "ChST": "ChST", "EAT": "EAT", "ACST": "ACST", "WARST": "WARST", "GMT": "GMT", "AWDT": "AWDT", "HNPM": "HNPM", "EST": "EST", "TMST": "TMST", "CLT": "CLT", "MST": "MST", "MDT": "MDT", "ACWDT": "ACWDT", "AKST": "AKST", "COST": "COST", "CAT": "CAT", "AST": "AST", "CHAST": "CHAST", "HEOG": "HEOG", "HKST": "HKST", "ECT": "ECT", "LHST": "LHST", "MESZ": "MESZ", "UYT": "UYT", "∅∅∅": "∅∅∅", "TMT": "TMT", "CST": "CST", "ART": "ART", "ACDT": "ACDT", "JDT": "JDT", "LHDT": "LHDT", "HEPM": "HEPM", "SGT": "SGT", "CLST": "CLST", "WIB": "WIB", "SRT": "SRT", "HAST": "HAST", "HADT": "HADT", "JST": "JST", "OESZ": "OESZ", "WIT": "WIT", "SAST": "SAST", "COT": "COT"},
+ }
+ }
+ 
+diff --git a/kde_TZ/kde_TZ.go b/kde_TZ/kde_TZ.go
+index 651593e..2a0e5b4 100644
+--- a/kde_TZ/kde_TZ.go
++++ b/kde_TZ/kde_TZ.go
+@@ -10,60 +10,45 @@ import (
+ )
+ 
+ type kde_TZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'kde_TZ' locale
+ func New() locales.Translator {
+ return &kde_TZ{
+- locale: "kde_TZ",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Mwedi Ntandi", "Mwedi wa Pili", "Mwedi wa Tatu", "Mwedi wa Nchechi", "Mwedi wa Nnyano", "Mwedi wa Nnyano na Umo", "Mwedi wa Nnyano na Mivili", "Mwedi wa Nnyano na Mitatu", "Mwedi wa Nnyano na Nchechi", "Mwedi wa Nnyano na Nnyano", "Mwedi wa Nnyano na Nnyano na U", "Mwedi wa Nnyano na Nnyano na M"},
+- daysAbbreviated: []string{"Ll2", "Ll3", "Ll4", "Ll5", "Ll6", "Ll7", "Ll1"},
+- daysNarrow: []string{"2", "3", "4", "5", "6", "7", "1"},
+- daysWide: []string{"Liduva lyapili", "Liduva lyatatu", "Liduva lyanchechi", "Liduva lyannyano", "Liduva lyannyano na linji", "Liduva lyannyano na mavili", "Liduva litandi"},
+- periodsAbbreviated: []string{"Muhi", "Chilo"},
+- periodsWide: []string{"Muhi", "Chilo"},
+- erasAbbreviated: []string{"AY", "NY"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Akanapawa Yesu", "Nankuida Yesu"},
+- timezones: map[string]string{"ACDT": "ACDT", "HECU": "HECU", "MYT": "MYT", "CDT": "CDT", "WIB": "WIB", "BT": "BT", "BOT": "BOT", "GFT": "GFT", "JST": "JST", "EDT": "EDT", "PST": "PST", "HAT": "HAT", "AWDT": "AWDT", "HKST": "HKST", "CHADT": "CHADT", "HNNOMX": "HNNOMX", "SRT": "SRT", "NZST": "NZST", "ART": "ART", "HKT": "HKT", "UYT": "UYT", "HNPM": "HNPM", "WART": "WART", "MDT": "MDT", "AWST": "AWST", "MEZ": "MEZ", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "GYT": "GYT", "ADT": "ADT", "WESZ": "WESZ", "NZDT": "NZDT", "OEZ": "OEZ", "EST": "EST", "HENOMX": "HENOMX", "SGT": "SGT", "HNCU": "HNCU", "UYST": "UYST", "HAST": "HAST", "ACWST": "ACWST", "HNEG": "HNEG", "COT": "COT", "HEPM": "HEPM", "MESZ": "MESZ", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "WEZ": "WEZ", "LHST": "LHST", "ChST": "ChST", "TMST": "TMST", "ACST": "ACST", "GMT": "GMT", "MST": "MST", "ACWDT": "ACWDT", "CLST": "CLST", "HEEG": "HEEG", "TMT": "TMT", "HEOG": "HEOG", "AEST": "AEST", "WITA": "WITA", "CST": "CST", "HNOG": "HNOG", "COST": "COST", "AKST": "AKST", "WIT": "WIT", "WAT": "WAT", "OESZ": "OESZ", "ARST": "ARST", "IST": "IST", "LHDT": "LHDT", "CHAST": "CHAST", "SAST": "SAST", "JDT": "JDT", "EAT": "EAT", "AST": "AST", "HADT": "HADT", "VET": "VET", "HNT": "HNT", "CAT": "CAT", "AKDT": "AKDT", "WARST": "WARST", "PDT": "PDT", "CLT": "CLT", "WAST": "WAST", "ECT": "ECT"},
++ locale: "kde_TZ",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CHADT": "CHADT", "IST": "IST", "HNCU": "HNCU", "HECU": "HECU", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "HEPM": "HEPM", "EST": "EST", "NZDT": "NZDT", "SRT": "SRT", "MEZ": "MEZ", "COT": "COT", "OESZ": "OESZ", "WARST": "WARST", "HEOG": "HEOG", "HKT": "HKT", "NZST": "NZST", "ChST": "ChST", "HAST": "HAST", "HAT": "HAT", "TMST": "TMST", "WIB": "WIB", "ART": "ART", "WEZ": "WEZ", "AWST": "AWST", "PST": "PST", "PDT": "PDT", "SGT": "SGT", "TMT": "TMT", "CAT": "CAT", "ADT": "ADT", "ACST": "ACST", "CLT": "CLT", "CST": "CST", "ECT": "ECT", "HEPMX": "HEPMX", "EDT": "EDT", "HKST": "HKST", "BT": "BT", "WESZ": "WESZ", "WAST": "WAST", "BOT": "BOT", "UYST": "UYST", "HNT": "HNT", "GYT": "GYT", "GFT": "GFT", "WITA": "WITA", "MDT": "MDT", "AST": "AST", "HEEG": "HEEG", "HNPMX": "HNPMX", "AKST": "AKST", "AKDT": "AKDT", "SAST": "SAST", "HNEG": "HNEG", "CHAST": "CHAST", "UYT": "UYT", "VET": "VET", "MESZ": "MESZ", "AWDT": "AWDT", "JST": "JST", "HNOG": "HNOG", "HENOMX": "HENOMX", "LHST": "LHST", "MYT": "MYT", "AEDT": "AEDT", "WIT": "WIT", "CLST": "CLST", "∅∅∅": "∅∅∅", "MST": "MST", "EAT": "EAT", "WART": "WART", "ARST": "ARST", "LHDT": "LHDT", "ACWST": "ACWST", "AEST": "AEST", "ACWDT": "ACWDT", "WAT": "WAT", "OEZ": "OEZ", "COST": "COST", "CDT": "CDT", "GMT": "GMT", "HADT": "HADT", "JDT": "JDT"},
+ }
+ }
+ 
+@@ -109,7 +94,7 @@ func (kde *kde_TZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (kde *kde_TZ) MonthsAbbreviated() []string {
+- return kde.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -119,7 +104,7 @@ func (kde *kde_TZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (kde *kde_TZ) MonthsNarrow() []string {
+- return kde.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -129,7 +114,7 @@ func (kde *kde_TZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (kde *kde_TZ) MonthsWide() []string {
+- return kde.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -189,56 +174,7 @@ func (kde *kde_TZ) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kde.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kde.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, kde.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, kde.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kde.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'kde_TZ'
+@@ -247,68 +183,7 @@ func (kde *kde_TZ) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kde.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kde.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, kde.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, kde.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kde.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, kde.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'kde_TZ'
+@@ -316,27 +191,6 @@ func (kde *kde_TZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -345,17 +199,6 @@ func (kde *kde_TZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kde.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -364,17 +207,6 @@ func (kde *kde_TZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kde.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -383,19 +215,6 @@ func (kde *kde_TZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, kde.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kde.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -404,19 +223,6 @@ func (kde *kde_TZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kde.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -425,26 +231,6 @@ func (kde *kde_TZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kde.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kde.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -453,30 +239,6 @@ func (kde *kde_TZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kde.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kde.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -485,34 +247,5 @@ func (kde *kde_TZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kde.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kde.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := kde.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/kea/kea.go b/kea/kea.go
+index 9ac927a..3c3cdcb 100644
+--- a/kea/kea.go
++++ b/kea/kea.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"AK", "DK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Antis di Kristu", "Dispos di Kristu"},
+- timezones: map[string]string{"WAST": "Ora di Verão di Afrika Osidental", "CHADT": "CHADT", "CDT": "Ora Sentral di Verãu", "HKT": "HKT", "AEDT": "Ora di Verãu di Australia Oriental", "JST": "JST", "LHDT": "LHDT", "ECT": "ECT", "SGT": "SGT", "EST": "Ora Oriental Padrãu", "WEZ": "Ora Padrãu di Europa Osidental", "NZDT": "NZDT", "ACDT": "Ora di Verãu di Australia Sentral", "AST": "Ora Padrãu di Atlantiku", "ARST": "ARST", "COST": "COST", "ACWST": "Ora Padrãu di Australia Sentru-Osidental", "JDT": "JDT", "TMT": "TMT", "ACWDT": "Ora di Verãu di Australia Sentru-Osidental", "ART": "ART", "MESZ": "Ora di Verãu di Europa Sentral", "OESZ": "Ora di Verãu di Europa Oriental", "WARST": "WARST", "EDT": "Ora Oriental di Verãu", "ADT": "Ora di Verãu di Atlantiku", "HADT": "HADT", "HNEG": "HNEG", "WAT": "Ora Padrãu di Afrika Osidental", "AKDT": "AKDT", "HKST": "HKST", "WITA": "WITA", "AWST": "Ora Padrãu di Australia Osidental", "CLT": "CLT", "HEEG": "HEEG", "HNPMX": "HNPMX", "UYT": "UYT", "PST": "Ora di Pasifiku Padrãu", "WESZ": "Ora di Verãu di Europa Osidental", "HEPM": "HEPM", "MDT": "MDT", "VET": "VET", "CHAST": "CHAST", "GFT": "GFT", "CLST": "CLST", "OEZ": "Ora Padrãu di Europa Oriental", "COT": "COT", "MYT": "MYT", "HNOG": "HNOG", "PDT": "Ora di Pasifiku di Verãu", "AWDT": "Ora di Verãu di Australia Osidental", "TMST": "TMST", "ChST": "ChST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AKST": "AKST", "CST": "Ora Sentral Padrãu", "UYST": "UYST", "HEOG": "HEOG", "AEST": "Ora Padrãu di Australia Oriental", "SAST": "Ora di Sul di Afrika", "HECU": "HECU", "GMT": "GMT", "WIT": "WIT", "SRT": "SRT", "HAT": "HAT", "BT": "BT", "LHST": "LHST", "ACST": "Ora Padrãu di Australia Sentral", "WART": "WART", "MST": "MST", "GYT": "GYT", "HAST": "HAST", "EAT": "Ora di Afrika Oriental", "HEPMX": "HEPMX", "HNPM": "HNPM", "NZST": "NZST", "CAT": "Ora di Afrika Sentral", "HNCU": "HNCU", "MEZ": "Ora Padrãu di Europa Sentral", "IST": "IST", "BOT": "BOT", "∅∅∅": "∅∅∅", "WIB": "WIB", "HNT": "HNT"},
++ timezones: map[string]string{"ACWDT": "Ora di Verãu di Australia Sentru-Osidental", "HEPMX": "HEPMX", "EDT": "Ora Oriental di Verãu", "HENOMX": "HENOMX", "AWST": "Ora Padrãu di Australia Osidental", "LHDT": "LHDT", "JST": "JST", "PST": "Ora di Pasifiku Padrãu", "ChST": "ChST", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "OEZ": "Ora Padrãu di Europa Oriental", "CLST": "CLST", "SRT": "SRT", "WEZ": "Ora Padrãu di Europa Osidental", "COT": "COT", "ECT": "ECT", "ART": "ART", "OESZ": "Ora di Verãu di Europa Oriental", "EST": "Ora Oriental Padrãu", "WIB": "WIB", "WAT": "Ora Padrãu di Afrika Osidental", "AKDT": "AKDT", "CAT": "Ora di Afrika Sentral", "CLT": "CLT", "WITA": "WITA", "ACST": "Ora Padrãu di Australia Sentral", "PDT": "Ora di Pasifiku di Verãu", "AKST": "AKST", "SAST": "Ora di Sul di Afrika", "COST": "COST", "CST": "Ora Sentral Padrãu", "MDT": "MDT", "ACDT": "Ora di Verãu di Australia Sentral", "MYT": "MYT", "HEPM": "HEPM", "BT": "BT", "GFT": "GFT", "MEZ": "Ora Padrãu di Europa Sentral", "LHST": "LHST", "HNT": "HNT", "WIT": "WIT", "ARST": "ARST", "HNOG": "HNOG", "HKST": "HKST", "CDT": "Ora Sentral di Verãu", "AST": "Ora Padrãu di Atlantiku", "NZST": "NZST", "ACWST": "Ora Padrãu di Australia Sentru-Osidental", "WESZ": "Ora di Verãu di Europa Osidental", "SGT": "SGT", "HECU": "HECU", "HNPMX": "HNPMX", "WARST": "WARST", "GYT": "GYT", "MST": "MST", "MESZ": "Ora di Verãu di Europa Sentral", "HEEG": "HEEG", "UYST": "UYST", "IST": "IST", "HNCU": "HNCU", "CHADT": "CHADT", "UYT": "UYT", "AEST": "Ora Padrãu di Australia Oriental", "TMT": "TMT", "ADT": "Ora di Verãu di Atlantiku", "NZDT": "NZDT", "GMT": "GMT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "CHAST": "CHAST", "AEDT": "Ora di Verãu di Australia Oriental", "TMST": "TMST", "HAT": "HAT", "BOT": "BOT", "EAT": "Ora di Afrika Oriental", "VET": "VET", "HAST": "HAST", "HADT": "HADT", "HKT": "HKT", "AWDT": "Ora di Verãu di Australia Osidental", "JDT": "JDT", "WAST": "Ora di Verão di Afrika Osidental", "WART": "WART", "HEOG": "HEOG"},
+ }
+ }
+ 
+diff --git a/kea_CV/kea_CV.go b/kea_CV/kea_CV.go
+index 7c4c9f1..5b4d78b 100644
+--- a/kea_CV/kea_CV.go
++++ b/kea_CV/kea_CV.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type kea_CV struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'kea_CV' locale
+ func New() locales.Translator {
+ return &kea_CV{
+- locale: "kea_CV",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Otu", "Nuv", "Diz"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Janeru", "Febreru", "Marsu", "Abril", "Maiu", "Junhu", "Julhu", "Agostu", "Setenbru", "Otubru", "Nuvenbru", "Dizenbru"},
+- daysAbbreviated: []string{"dum", "sig", "ter", "kua", "kin", "ses", "sab"},
+- daysNarrow: []string{"D", "S", "T", "K", "K", "S", "S"},
+- daysShort: []string{"du", "si", "te", "ku", "ki", "se", "sa"},
+- daysWide: []string{"dumingu", "sigunda-fera", "tersa-fera", "kuarta-fera", "kinta-fera", "sesta-fera", "sabadu"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"am", "pm"},
+- erasAbbreviated: []string{"AK", "DK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Antis di Kristu", "Dispos di Kristu"},
+- timezones: map[string]string{"PST": "Ora di Pasifiku Padrãu", "HADT": "HADT", "SRT": "SRT", "VET": "VET", "WIT": "WIT", "HNPM": "HNPM", "SAST": "Ora di Sul di Afrika", "COT": "COT", "HNPMX": "HNPMX", "WAT": "Ora Padrãu di Afrika Osidental", "WART": "WART", "HAST": "HAST", "ACWDT": "Ora di Verãu di Australia Sentru-Osidental", "AEDT": "Ora di Verãu di Australia Oriental", "IST": "IST", "TMT": "TMT", "∅∅∅": "∅∅∅", "MDT": "MDT", "AKST": "AKST", "AST": "Ora Padrãu di Atlantiku", "HNT": "HNT", "NZST": "NZST", "HNCU": "HNCU", "EDT": "Ora Oriental di Verãu", "MST": "MST", "HKT": "HKT", "GFT": "GFT", "ACST": "Ora Padrãu di Australia Sentral", "WITA": "WITA", "HEPM": "HEPM", "MESZ": "Ora di Verãu di Europa Sentral", "EAT": "Ora di Afrika Oriental", "WESZ": "Ora di Verãu di Europa Osidental", "WAST": "Ora di Verão di Afrika Osidental", "BT": "BT", "HNOG": "HNOG", "HAT": "HAT", "AEST": "Ora Padrãu di Australia Oriental", "JST": "JST", "ChST": "ChST", "TMST": "TMST", "OESZ": "Ora di Verãu di Europa Oriental", "ECT": "ECT", "GMT": "GMT", "GYT": "GYT", "WIB": "WIB", "PDT": "Ora di Pasifiku di Verãu", "ACDT": "Ora di Verãu di Australia Sentral", "CAT": "Ora di Afrika Sentral", "CHAST": "CHAST", "CHADT": "CHADT", "HENOMX": "HENOMX", "EST": "Ora Oriental Padrãu", "NZDT": "NZDT", "CLT": "CLT", "WARST": "WARST", "HNNOMX": "HNNOMX", "HECU": "HECU", "AKDT": "AKDT", "HEOG": "HEOG", "ART": "ART", "AWST": "Ora Padrãu di Australia Osidental", "AWDT": "Ora di Verãu di Australia Osidental", "HNEG": "HNEG", "COST": "COST", "LHST": "LHST", "HKST": "HKST", "CLST": "CLST", "HEPMX": "HEPMX", "ADT": "Ora di Verãu di Atlantiku", "JDT": "JDT", "SGT": "SGT", "WEZ": "Ora Padrãu di Europa Osidental", "CDT": "Ora Sentral di Verãu", "UYT": "UYT", "CST": "Ora Sentral Padrãu", "MYT": "MYT", "UYST": "UYST", "ACWST": "Ora Padrãu di Australia Sentru-Osidental", "ARST": "ARST", "BOT": "BOT", "HEEG": "HEEG", "OEZ": "Ora Padrãu di Europa Oriental", "MEZ": "Ora Padrãu di Europa Sentral", "LHDT": "LHDT"},
++ locale: "kea_CV",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"LHDT": "LHDT", "WIT": "WIT", "HAT": "HAT", "HNOG": "HNOG", "CLT": "CLT", "ChST": "ChST", "HEEG": "HEEG", "LHST": "LHST", "MST": "MST", "NZST": "NZST", "HECU": "HECU", "CLST": "CLST", "AST": "AST", "BT": "BT", "SGT": "SGT", "WART": "WART", "COT": "COT", "HEOG": "HEOG", "JDT": "JDT", "∅∅∅": "∅∅∅", "HEPMX": "HEPMX", "MESZ": "MESZ", "WAST": "WAST", "GMT": "GMT", "ACST": "ACST", "HNEG": "HNEG", "GFT": "GFT", "OEZ": "OEZ", "HADT": "HADT", "UYT": "UYT", "VET": "VET", "CHADT": "CHADT", "MDT": "MDT", "HENOMX": "HENOMX", "CHAST": "CHAST", "EST": "EST", "HEPM": "HEPM", "AEST": "AEST", "IST": "IST", "WITA": "WITA", "MYT": "MYT", "ACWDT": "ACWDT", "WESZ": "WESZ", "EAT": "EAT", "HNT": "HNT", "HKST": "HKST", "TMT": "TMT", "TMST": "TMST", "ECT": "ECT", "SRT": "SRT", "HAST": "HAST", "HNCU": "HNCU", "WEZ": "WEZ", "WAT": "WAT", "OESZ": "OESZ", "WARST": "WARST", "ACDT": "ACDT", "PDT": "PDT", "ACWST": "ACWST", "ADT": "ADT", "COST": "COST", "AKDT": "AKDT", "SAST": "SAST", "NZDT": "NZDT", "CDT": "CDT", "AKST": "AKST", "HNPM": "HNPM", "AEDT": "AEDT", "HKT": "HKT", "WIB": "WIB", "ARST": "ARST", "BOT": "BOT", "AWST": "AWST", "AWDT": "AWDT", "UYST": "UYST", "CAT": "CAT", "HNNOMX": "HNNOMX", "MEZ": "MEZ", "JST": "JST", "HNPMX": "HNPMX", "GYT": "GYT", "EDT": "EDT", "CST": "CST", "ART": "ART", "PST": "PST"},
+ }
+ }
+ 
+@@ -119,7 +94,7 @@ func (kea *kea_CV) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (kea *kea_CV) MonthsAbbreviated() []string {
+- return kea.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -129,7 +104,7 @@ func (kea *kea_CV) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (kea *kea_CV) MonthsNarrow() []string {
+- return kea.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -139,7 +114,7 @@ func (kea *kea_CV) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (kea *kea_CV) MonthsWide() []string {
+- return kea.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -185,75 +160,13 @@ func (kea *kea_CV) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'kea_CV' and handles both Whole and Real numbers based on 'v'
+ func (kea *kea_CV) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kea.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(kea.group) - 1; j >= 0; j-- {
+- b = append(b, kea.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, kea.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'kea_CV' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (kea *kea_CV) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kea.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, kea.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, kea.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'kea_CV'
+@@ -261,58 +174,7 @@ func (kea *kea_CV) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kea.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kea.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(kea.group) - 1; j >= 0; j-- {
+- b = append(b, kea.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, kea.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kea.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, kea.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'kea_CV'
+@@ -321,65 +183,7 @@ func (kea *kea_CV) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kea.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kea.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(kea.group) - 1; j >= 0; j-- {
+- b = append(b, kea.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, kea.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kea.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, kea.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, kea.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'kea_CV'
+@@ -387,17 +191,6 @@ func (kea *kea_CV) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -406,17 +199,6 @@ func (kea *kea_CV) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kea.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -425,19 +207,6 @@ func (kea *kea_CV) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x69}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kea.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x69}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,21 +215,6 @@ func (kea *kea_CV) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, kea.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x69}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kea.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x69}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -469,19 +223,6 @@ func (kea *kea_CV) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kea.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -490,26 +231,6 @@ func (kea *kea_CV) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kea.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kea.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -518,30 +239,6 @@ func (kea *kea_CV) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kea.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kea.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -550,34 +247,5 @@ func (kea *kea_CV) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kea.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kea.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := kea.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/khq/khq.go b/khq/khq.go
+index 81399b3..4d29dad 100644
+--- a/khq/khq.go
++++ b/khq/khq.go
+@@ -60,7 +60,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"IJ", "IZ"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Isaa jine", "Isaa jamanoo"},
+- timezones: map[string]string{"PDT": "PDT", "HEEG": "HEEG", "ECT": "ECT", "WAT": "WAT", "EST": "EST", "MDT": "MDT", "HEOG": "HEOG", "AST": "AST", "ACWDT": "ACWDT", "HKST": "HKST", "MESZ": "MESZ", "CHADT": "CHADT", "WAST": "WAST", "UYST": "UYST", "AKDT": "AKDT", "BT": "BT", "HNT": "HNT", "HAT": "HAT", "AWDT": "AWDT", "LHDT": "LHDT", "TMST": "TMST", "ACDT": "ACDT", "COT": "COT", "HNPMX": "HNPMX", "GYT": "GYT", "AEDT": "AEDT", "AWST": "AWST", "CHAST": "CHAST", "SGT": "SGT", "EDT": "EDT", "HAST": "HAST", "HKT": "HKT", "∅∅∅": "∅∅∅", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "HEPM": "HEPM", "MEZ": "MEZ", "NZDT": "NZDT", "IST": "IST", "CLT": "CLT", "EAT": "EAT", "TMT": "TMT", "CAT": "CAT", "UYT": "UYT", "ART": "ART", "PST": "PST", "WITA": "WITA", "NZST": "NZST", "GFT": "GFT", "WART": "WART", "CST": "CST", "VET": "VET", "ARST": "ARST", "WEZ": "WEZ", "WARST": "WARST", "WIT": "WIT", "SRT": "SRT", "WESZ": "WESZ", "HEPMX": "HEPMX", "CDT": "CDT", "ACWST": "ACWST", "AEST": "AEST", "LHST": "LHST", "CLST": "CLST", "BOT": "BOT", "MYT": "MYT", "HNOG": "HNOG", "JDT": "JDT", "HNEG": "HNEG", "OEZ": "OEZ", "OESZ": "OESZ", "COST": "COST", "HECU": "HECU", "WIB": "WIB", "HADT": "HADT", "JST": "JST", "HENOMX": "HENOMX", "GMT": "GMT", "MST": "MST", "ADT": "ADT", "AKST": "AKST", "HNPM": "HNPM", "SAST": "SAST", "ChST": "ChST", "ACST": "ACST"},
++ timezones: map[string]string{"CLST": "CLST", "NZDT": "NZDT", "LHDT": "LHDT", "PDT": "PDT", "BT": "BT", "SGT": "SGT", "OESZ": "OESZ", "CLT": "CLT", "HAST": "HAST", "MESZ": "MESZ", "HNEG": "HNEG", "PST": "PST", "HNPMX": "HNPMX", "MDT": "MDT", "AEST": "AEST", "IST": "IST", "ART": "ART", "HEOG": "HEOG", "EAT": "EAT", "LHST": "LHST", "HECU": "HECU", "GYT": "GYT", "HKT": "HKT", "WITA": "WITA", "WEZ": "WEZ", "WAT": "WAT", "HNOG": "HNOG", "EST": "EST", "HENOMX": "HENOMX", "GMT": "GMT", "BOT": "BOT", "ACDT": "ACDT", "HEEG": "HEEG", "HAT": "HAT", "WARST": "WARST", "WIT": "WIT", "WIB": "WIB", "CST": "CST", "AST": "AST", "ADT": "ADT", "ChST": "ChST", "HNNOMX": "HNNOMX", "AWST": "AWST", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "ACWST": "ACWST", "UYST": "UYST", "CHADT": "CHADT", "OEZ": "OEZ", "JDT": "JDT", "JST": "JST", "AEDT": "AEDT", "VET": "VET", "HNCU": "HNCU", "WAST": "WAST", "GFT": "GFT", "TMT": "TMT", "CAT": "CAT", "ARST": "ARST", "HNT": "HNT", "ECT": "ECT", "MEZ": "MEZ", "ACST": "ACST", "HNPM": "HNPM", "CHAST": "CHAST", "WESZ": "WESZ", "EDT": "EDT", "TMST": "TMST", "SRT": "SRT", "MST": "MST", "UYT": "UYT", "ACWDT": "ACWDT", "AKST": "AKST", "WART": "WART", "SAST": "SAST", "COT": "COT", "HEPM": "HEPM", "HEPMX": "HEPMX", "HADT": "HADT", "NZST": "NZST", "MYT": "MYT", "AKDT": "AKDT", "COST": "COST", "HKST": "HKST", "CDT": "CDT"},
+ }
+ }
+ 
+diff --git a/khq_ML/khq_ML.go b/khq_ML/khq_ML.go
+index 72b63c2..5551067 100644
+--- a/khq_ML/khq_ML.go
++++ b/khq_ML/khq_ML.go
+@@ -42,25 +42,13 @@ type khq_ML struct {
+ // New returns a new instance of translator for the 'khq_ML' locale
+ func New() locales.Translator {
+ return &khq_ML{
+- locale: "khq_ML",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Žan", "Fee", "Mar", "Awi", "Me", "Žuw", "Žuy", "Ut", "Sek", "Okt", "Noo", "Dee"},
+- monthsNarrow: []string{"", "Ž", "F", "M", "A", "M", "Ž", "Ž", "U", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Žanwiye", "Feewiriye", "Marsi", "Awiril", "Me", "Žuweŋ", "Žuyye", "Ut", "Sektanbur", "Oktoobur", "Noowanbur", "Deesanbur"},
+- daysAbbreviated: []string{"Alh", "Ati", "Ata", "Ala", "Alm", "Alj", "Ass"},
+- daysNarrow: []string{"H", "T", "T", "L", "L", "L", "S"},
+- daysWide: []string{"Alhadi", "Atini", "Atalata", "Alarba", "Alhamiisa", "Aljuma", "Assabdu"},
+- periodsAbbreviated: []string{"Adduha", "Aluula"},
+- periodsWide: []string{"Adduha", "Aluula"},
+- erasAbbreviated: []string{"IJ", "IZ"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Isaa jine", "Isaa jamanoo"},
+- timezones: map[string]string{"CDT": "CDT", "AEDT": "AEDT", "HKT": "HKT", "ChST": "ChST", "ACDT": "ACDT", "WARST": "WARST", "UYT": "UYT", "HNCU": "HNCU", "UYST": "UYST", "AWST": "AWST", "ACST": "ACST", "AST": "AST", "HEOG": "HEOG", "JST": "JST", "JDT": "JDT", "MST": "MST", "MDT": "MDT", "ADT": "ADT", "PDT": "PDT", "HKST": "HKST", "∅∅∅": "∅∅∅", "MYT": "MYT", "CLT": "CLT", "TMT": "TMT", "HNPMX": "HNPMX", "WESZ": "WESZ", "ART": "ART", "MEZ": "MEZ", "CLST": "CLST", "CAT": "CAT", "OESZ": "OESZ", "SRT": "SRT", "HNT": "HNT", "NZDT": "NZDT", "WAT": "WAT", "COT": "COT", "GMT": "GMT", "HECU": "HECU", "WIB": "WIB", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "IST": "IST", "BOT": "BOT", "WAST": "WAST", "WIT": "WIT", "PST": "PST", "HEPMX": "HEPMX", "AKDT": "AKDT", "AEST": "AEST", "AWDT": "AWDT", "LHST": "LHST", "SAST": "SAST", "TMST": "TMST", "HENOMX": "HENOMX", "HAT": "HAT", "ARST": "ARST", "CHADT": "CHADT", "EAT": "EAT", "ECT": "ECT", "HADT": "HADT", "ACWST": "ACWST", "HNPM": "HNPM", "NZST": "NZST", "COST": "COST", "EDT": "EDT", "GYT": "GYT", "HNOG": "HNOG", "CST": "CST", "MESZ": "MESZ", "LHDT": "LHDT", "HNEG": "HNEG", "HEEG": "HEEG", "GFT": "GFT", "AKST": "AKST", "WEZ": "WEZ", "WITA": "WITA", "OEZ": "OEZ", "WART": "WART", "EST": "EST", "VET": "VET", "BT": "BT", "CHAST": "CHAST", "SGT": "SGT", "HAST": "HAST", "ACWDT": "ACWDT"},
++ locale: "khq_ML",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"IST": "IST", "PDT": "PDT", "ACWST": "ACWST", "AEST": "AEST", "CST": "CST", "HNNOMX": "HNNOMX", "MYT": "MYT", "CHAST": "CHAST", "WAST": "WAST", "MST": "MST", "OEZ": "OEZ", "CLST": "CLST", "EAT": "EAT", "MEZ": "MEZ", "PST": "PST", "WARST": "WARST", "WITA": "WITA", "MDT": "MDT", "ChST": "ChST", "WESZ": "WESZ", "WART": "WART", "EST": "EST", "TMST": "TMST", "ECT": "ECT", "SRT": "SRT", "HNEG": "HNEG", "HEEG": "HEEG", "AEDT": "AEDT", "WAT": "WAT", "TMT": "TMT", "ARST": "ARST", "BOT": "BOT", "JST": "JST", "OESZ": "OESZ", "HEOG": "HEOG", "EDT": "EDT", "CLT": "CLT", "LHDT": "LHDT", "UYT": "UYT", "HAT": "HAT", "HADT": "HADT", "LHST": "LHST", "∅∅∅": "∅∅∅", "WEZ": "WEZ", "HNCU": "HNCU", "HNT": "HNT", "GMT": "GMT", "BT": "BT", "SGT": "SGT", "HEPMX": "HEPMX", "AKST": "AKST", "GFT": "GFT", "HNOG": "HNOG", "ACST": "ACST", "UYST": "UYST", "WIT": "WIT", "GYT": "GYT", "NZST": "NZST", "WIB": "WIB", "HNPM": "HNPM", "HEPM": "HEPM", "JDT": "JDT", "HKT": "HKT", "CAT": "CAT", "CDT": "CDT", "ART": "ART", "ACDT": "ACDT", "HENOMX": "HENOMX", "HECU": "HECU", "COST": "COST", "AWST": "AWST", "HNPMX": "HNPMX", "AKDT": "AKDT", "NZDT": "NZDT", "ADT": "ADT", "MESZ": "MESZ", "CHADT": "CHADT", "SAST": "SAST", "COT": "COT", "AST": "AST", "HAST": "HAST", "AWDT": "AWDT", "ACWDT": "ACWDT", "VET": "VET", "HKST": "HKST"},
+ }
+ }
+ 
+@@ -106,7 +94,7 @@ func (khq *khq_ML) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (khq *khq_ML) MonthsAbbreviated() []string {
+- return khq.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -116,7 +104,7 @@ func (khq *khq_ML) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (khq *khq_ML) MonthsNarrow() []string {
+- return khq.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -126,7 +114,7 @@ func (khq *khq_ML) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (khq *khq_ML) MonthsWide() []string {
+- return khq.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -186,56 +174,7 @@ func (khq *khq_ML) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := khq.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, khq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(khq.group) - 1; j >= 0; j-- {
+- b = append(b, khq.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, khq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, khq.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'khq_ML'
+@@ -244,63 +183,7 @@ func (khq *khq_ML) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := khq.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, khq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(khq.group) - 1; j >= 0; j-- {
+- b = append(b, khq.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, khq.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, khq.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'khq_ML'
+@@ -308,17 +191,6 @@ func (khq *khq_ML) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -327,17 +199,6 @@ func (khq *khq_ML) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, khq.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -346,17 +207,6 @@ func (khq *khq_ML) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, khq.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -365,19 +215,6 @@ func (khq *khq_ML) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, khq.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, khq.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -386,19 +223,6 @@ func (khq *khq_ML) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, khq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -407,26 +231,6 @@ func (khq *khq_ML) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, khq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, khq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -435,30 +239,6 @@ func (khq *khq_ML) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, khq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, khq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -467,34 +247,5 @@ func (khq *khq_ML) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, khq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, khq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := khq.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ki/ki.go b/ki/ki.go
+index 7160be6..7cfda1f 100644
+--- a/ki/ki.go
++++ b/ki/ki.go
+@@ -63,7 +63,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"MK", "TK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Mbere ya Kristo", "Thutha wa Kristo"},
+- timezones: map[string]string{"MDT": "MDT", "HEPM": "HEPM", "IST": "IST", "HEEG": "HEEG", "EAT": "EAT", "COST": "COST", "ADT": "ADT", "PST": "PST", "HEOG": "HEOG", "JST": "JST", "HENOMX": "HENOMX", "EDT": "EDT", "HEPMX": "HEPMX", "WEZ": "WEZ", "LHST": "LHST", "GFT": "GFT", "WAST": "WAST", "OEZ": "OEZ", "OESZ": "OESZ", "WARST": "WARST", "AST": "AST", "COT": "COT", "BT": "BT", "AEDT": "AEDT", "JDT": "JDT", "HNPMX": "HNPMX", "CAT": "CAT", "AKDT": "AKDT", "CST": "CST", "HADT": "HADT", "SRT": "SRT", "ACWDT": "ACWDT", "WITA": "WITA", "HNPM": "HNPM", "HAT": "HAT", "HECU": "HECU", "BOT": "BOT", "AKST": "AKST", "VET": "VET", "WESZ": "WESZ", "ARST": "ARST", "NZST": "NZST", "NZDT": "NZDT", "ChST": "ChST", "ECT": "ECT", "SGT": "SGT", "WIB": "WIB", "AWDT": "AWDT", "EST": "EST", "HNT": "HNT", "HNOG": "HNOG", "CHAST": "CHAST", "MYT": "MYT", "CLST": "CLST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "GMT": "GMT", "AEST": "AEST", "HKT": "HKT", "CHADT": "CHADT", "SAST": "SAST", "WAT": "WAT", "UYST": "UYST", "ART": "ART", "MESZ": "MESZ", "ACST": "ACST", "GYT": "GYT", "CLT": "CLT", "HNCU": "HNCU", "MST": "MST", "HAST": "HAST", "PDT": "PDT", "LHDT": "LHDT", "TMT": "TMT", "TMST": "TMST", "WART": "WART", "UYT": "UYT", "CDT": "CDT", "WIT": "WIT", "ACWST": "ACWST", "AWST": "AWST", "HKST": "HKST", "MEZ": "MEZ"},
++ timezones: map[string]string{"ART": "ART", "HEPMX": "HEPMX", "WAT": "WAT", "WARST": "WARST", "WIT": "WIT", "WIB": "WIB", "CHADT": "CHADT", "SGT": "SGT", "HKST": "HKST", "JDT": "JDT", "PST": "PST", "BT": "BT", "AEST": "AEST", "HAT": "HAT", "ACDT": "ACDT", "UYST": "UYST", "HECU": "HECU", "AKST": "AKST", "EDT": "EDT", "ChST": "ChST", "BOT": "BOT", "∅∅∅": "∅∅∅", "ACWST": "ACWST", "ACWDT": "ACWDT", "NZST": "NZST", "IST": "IST", "OEZ": "OEZ", "TMT": "TMT", "HEPM": "HEPM", "HNPMX": "HNPMX", "HNOG": "HNOG", "CDT": "CDT", "SRT": "SRT", "EAT": "EAT", "HAST": "HAST", "LHST": "LHST", "SAST": "SAST", "GYT": "GYT", "COT": "COT", "NZDT": "NZDT", "MESZ": "MESZ", "ACST": "ACST", "AKDT": "AKDT", "HNT": "HNT", "COST": "COST", "MYT": "MYT", "PDT": "PDT", "OESZ": "OESZ", "EST": "EST", "CAT": "CAT", "HNEG": "HNEG", "HNPM": "HNPM", "WESZ": "WESZ", "CLST": "CLST", "WITA": "WITA", "TMST": "TMST", "ARST": "ARST", "HNNOMX": "HNNOMX", "AEDT": "AEDT", "HNCU": "HNCU", "WAST": "WAST", "HENOMX": "HENOMX", "JST": "JST", "WART": "WART", "CST": "CST", "MST": "MST", "AST": "AST", "HADT": "HADT", "HEEG": "HEEG", "ADT": "ADT", "GMT": "GMT", "CHAST": "CHAST", "AWST": "AWST", "LHDT": "LHDT", "WEZ": "WEZ", "VET": "VET", "HEOG": "HEOG", "MDT": "MDT", "ECT": "ECT", "AWDT": "AWDT", "GFT": "GFT", "HKT": "HKT", "MEZ": "MEZ", "UYT": "UYT", "CLT": "CLT"},
+ }
+ }
+ 
+diff --git a/ki_KE/ki_KE.go b/ki_KE/ki_KE.go
+index f9ee453..74d127c 100644
+--- a/ki_KE/ki_KE.go
++++ b/ki_KE/ki_KE.go
+@@ -10,60 +10,45 @@ import (
+ )
+ 
+ type ki_KE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ki_KE' locale
+ func New() locales.Translator {
+ return &ki_KE{
+- locale: "ki_KE",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "JEN", "WKR", "WGT", "WKN", "WTN", "WTD", "WMJ", "WNN", "WKD", "WIK", "WMW", "DIT"},
+- monthsNarrow: []string{"", "J", "K", "G", "K", "G", "G", "M", "K", "K", "I", "I", "D"},
+- monthsWide: []string{"", "Njenuarĩ", "Mwere wa kerĩ", "Mwere wa gatatũ", "Mwere wa kana", "Mwere wa gatano", "Mwere wa gatandatũ", "Mwere wa mũgwanja", "Mwere wa kanana", "Mwere wa kenda", "Mwere wa ikũmi", "Mwere wa ikũmi na ũmwe", "Ndithemba"},
+- daysAbbreviated: []string{"KMA", "NTT", "NMN", "NMT", "ART", "NMA", "NMM"},
+- daysNarrow: []string{"K", "N", "N", "N", "A", "N", "N"},
+- daysWide: []string{"Kiumia", "Njumatatũ", "Njumaine", "Njumatana", "Aramithi", "Njumaa", "Njumamothi"},
+- periodsAbbreviated: []string{"Kiroko", "Hwaĩ-inĩ"},
+- periodsWide: []string{"Kiroko", "Hwaĩ-inĩ"},
+- erasAbbreviated: []string{"MK", "TK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Mbere ya Kristo", "Thutha wa Kristo"},
+- timezones: map[string]string{"PST": "PST", "HEPM": "HEPM", "HEPMX": "HEPMX", "WIT": "WIT", "HAST": "HAST", "HAT": "HAT", "CLT": "CLT", "∅∅∅": "∅∅∅", "COT": "COT", "GMT": "GMT", "PDT": "PDT", "HENOMX": "HENOMX", "HECU": "HECU", "HNPMX": "HNPMX", "ACWDT": "ACWDT", "IST": "IST", "HNEG": "HNEG", "WAT": "WAT", "COST": "COST", "HEOG": "HEOG", "WAST": "WAST", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "WART": "WART", "CDT": "CDT", "AST": "AST", "HADT": "HADT", "AKDT": "AKDT", "WIB": "WIB", "BT": "BT", "ART": "ART", "AEST": "AEST", "EAT": "EAT", "ECT": "ECT", "WARST": "WARST", "AKST": "AKST", "SAST": "SAST", "JST": "JST", "HEEG": "HEEG", "ACWST": "ACWST", "CHAST": "CHAST", "MEZ": "MEZ", "BOT": "BOT", "ACDT": "ACDT", "SGT": "SGT", "CST": "CST", "WEZ": "WEZ", "LHST": "LHST", "CHADT": "CHADT", "MESZ": "MESZ", "ChST": "ChST", "MST": "MST", "EST": "EST", "ADT": "ADT", "HKT": "HKT", "OEZ": "OEZ", "CAT": "CAT", "HNCU": "HNCU", "UYST": "UYST", "ARST": "ARST", "HNOG": "HNOG", "TMT": "TMT", "MYT": "MYT", "UYT": "UYT", "WESZ": "WESZ", "AWDT": "AWDT", "AEDT": "AEDT", "NZDT": "NZDT", "TMST": "TMST", "ACST": "ACST", "SRT": "SRT", "AWST": "AWST", "LHDT": "LHDT", "OESZ": "OESZ", "MDT": "MDT", "GYT": "GYT", "VET": "VET", "NZST": "NZST", "GFT": "GFT", "HNT": "HNT", "HKST": "HKST", "WITA": "WITA", "CLST": "CLST", "JDT": "JDT", "EDT": "EDT"},
++ locale: "ki_KE",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AST": "AST", "SRT": "SRT", "EAT": "EAT", "AKST": "AKST", "WAST": "WAST", "EDT": "EDT", "MST": "MST", "HNPM": "HNPM", "HNEG": "HNEG", "MEZ": "MEZ", "BT": "BT", "AEST": "AEST", "VET": "VET", "CAT": "CAT", "WIB": "WIB", "PDT": "PDT", "UYT": "UYT", "TMT": "TMT", "PST": "PST", "NZST": "NZST", "HAST": "HAST", "MESZ": "MESZ", "OEZ": "OEZ", "HNT": "HNT", "LHDT": "LHDT", "AWST": "AWST", "HEPMX": "HEPMX", "WESZ": "WESZ", "TMST": "TMST", "EST": "EST", "ECT": "ECT", "ACWST": "ACWST", "COT": "COT", "MDT": "MDT", "ACST": "ACST", "AEDT": "AEDT", "WAT": "WAT", "HNOG": "HNOG", "ARST": "ARST", "CST": "CST", "ADT": "ADT", "MYT": "MYT", "IST": "IST", "WEZ": "WEZ", "OESZ": "OESZ", "WARST": "WARST", "HENOMX": "HENOMX", "JST": "JST", "CHAST": "CHAST", "GYT": "GYT", "HKT": "HKT", "SAST": "SAST", "CDT": "CDT", "ART": "ART", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "WIT": "WIT", "HAT": "HAT", "CLT": "CLT", "WITA": "WITA", "CHADT": "CHADT", "SGT": "SGT", "GFT": "GFT", "HEOG": "HEOG", "LHST": "LHST", "AWDT": "AWDT", "UYST": "UYST", "HECU": "HECU", "HNPMX": "HNPMX", "AKDT": "AKDT", "∅∅∅": "∅∅∅", "HKST": "HKST", "JDT": "JDT", "ChST": "ChST", "HEEG": "HEEG", "CLST": "CLST", "HADT": "HADT", "HEPM": "HEPM", "WART": "WART", "COST": "COST", "BOT": "BOT", "ACDT": "ACDT", "HNCU": "HNCU", "NZDT": "NZDT", "GMT": "GMT"},
+ }
+ }
+ 
+@@ -109,7 +94,7 @@ func (ki *ki_KE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ki *ki_KE) MonthsAbbreviated() []string {
+- return ki.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -119,7 +104,7 @@ func (ki *ki_KE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ki *ki_KE) MonthsNarrow() []string {
+- return ki.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -129,7 +114,7 @@ func (ki *ki_KE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ki *ki_KE) MonthsWide() []string {
+- return ki.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -189,56 +174,7 @@ func (ki *ki_KE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ki.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ki.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ki.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ki.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ki.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ki_KE'
+@@ -247,68 +183,7 @@ func (ki *ki_KE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ki.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ki.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ki.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ki.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ki.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ki.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ki_KE'
+@@ -316,27 +191,6 @@ func (ki *ki_KE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -345,17 +199,6 @@ func (ki *ki_KE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ki.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -364,17 +207,6 @@ func (ki *ki_KE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ki.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -383,19 +215,6 @@ func (ki *ki_KE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ki.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ki.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -404,19 +223,6 @@ func (ki *ki_KE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ki.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -425,26 +231,6 @@ func (ki *ki_KE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ki.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ki.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -453,30 +239,6 @@ func (ki *ki_KE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ki.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ki.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -485,34 +247,5 @@ func (ki *ki_KE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ki.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ki.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ki.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/kk/kk.go b/kk/kk.go
+index c2579ad..d86e197 100644
+--- a/kk/kk.go
++++ b/kk/kk.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"б.з.д.", "б.з."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Біздің заманымызға дейін", "Біздің заманымыз"},
+- timezones: map[string]string{"GFT": "Француз Гвианасы уақыты", "OEZ": "Шығыс Еуропа стандартты уақыты", "SRT": "Суринам уақыты", "WEZ": "Батыс Еуропа стандартты уақыты", "NZST": "Жаңа Зеландия стандартты уақыты", "JDT": "Жапония жазғы уақыты", "TMT": "Түрікменстан стандартты уақыты", "HEPMX": "Мексика жазғы Тынық мұхит уақыты", "EDT": "Солтүстік Америка жазғы шығыс уақыты", "AKDT": "Аляска жазғы уақыты", "AEDT": "Австралия жазғы шығыс уақыты", "CHADT": "Чатем жазғы уақыты", "LHDT": "Лорд-Хау жазғы уақыты", "WIT": "Шығыс Индонезия уақыты", "HADT": "Гавай және Алеут аралдары жазғы уақыты", "WESZ": "Батыс Еуропа жазғы уақыты", "HECU": "Куба жазғы уақыты", "CST": "Солтүстік Америка стандартты орталық уақыты", "AST": "Атлантика стандартты уақыты", "GYT": "Гайана уақыты", "UYT": "Уругвай стандартты уақыты", "ACDT": "Австралия жазғы орталық уақыты", "HNPMX": "Мексика стандартты Тынық мұхит уақыты", "ECT": "Эквадор уақыты", "COT": "Колумбия стандартты уақыты", "WITA": "Орталық Индонезия уақыты", "∅∅∅": "Амазон жазғы уақыты", "HNEG": "Шығыс Гренландия стандартты уақыты", "WART": "Батыс Аргентина стандартты уақыты", "WIB": "Батыс Индонезия уақыты", "HAST": "Гавай және Алеут аралдары стандартты уақыты", "ARST": "Аргентина жазғы уақыты", "MESZ": "Орталық Еуропа жазғы уақыты", "HEEG": "Шығыс Гренландия жазғы уақыты", "HNNOMX": "Солтүстік-Батыс Мексика стандартты уақыты", "HENOMX": "Солтүстік-Батыс Мексика жазғы уақыты", "AKST": "Аляска стандартты уақыты", "VET": "Венесуэла уақыты", "IST": "Үндістан стандартты уақыты", "JST": "Жапония стандартты уақыты", "EST": "Солтүстік Америка стандартты шығыс уақыты", "HEOG": "Батыс Гренландия жазғы уақыты", "HNPM": "Сен-Пьер және Микелон стандартты уақыты", "CLT": "Чили стандартты уақыты", "TMST": "Түрікменстан жазғы уақыты", "LHST": "Лорд-Хау стандартты уақыты", "CLST": "Чили жазғы уақыты", "WAST": "Батыс Африка жазғы уақыты", "COST": "Колумбия жазғы уақыты", "HNCU": "Куба стандартты уақыты", "BT": "Бутан уақыты", "NZDT": "Жаңа Зеландия жазғы уақыты", "CHAST": "Чатем стандартты уақыты", "ACWDT": "Австралия жазғы орталық-батыс уақыты", "AWST": "Австралия стандартты батыс уақыты", "WARST": "Батыс Аргентина жазғы уақыты", "MST": "MST", "PDT": "Солтүстік Америка жазғы Тынық мұхиты уақыты", "AWDT": "Австралия жазғы батыс уақыты", "HEPM": "Сен-Пьер және Микелон жазғы уақыты", "SAST": "Оңтүстік Африка уақыты", "ACST": "Австралия стандартты орталық уақыты", "ADT": "Атлантика жазғы уақыты", "ACWST": "Австралия стандартты орталық-батыс уақыты", "WAT": "Батыс Африка стандартты уақыты", "CDT": "Солтүстік Америка жазғы орталық уақыты", "PST": "Солтүстік Америка стандартты Тынық мұхиты уақыты", "HKT": "Гонконг стандартты уақыты", "SGT": "Сингапур стандартты уақыты", "MYT": "Малайзия уақыты", "HNT": "Ньюфаундленд стандартты уақыты", "HNOG": "Батыс Гренландия стандартты уақыты", "AEST": "Австралия стандартты шығыс уақыты", "OESZ": "Шығыс Еуропа жазғы уақыты", "UYST": "Уругвай жазғы уақыты", "CAT": "Орталық Африка уақыты", "MDT": "MDT", "ART": "Аргентина стандартты уақыты", "MEZ": "Орталық Еуропа стандартты уақыты", "BOT": "Боливия уақыты", "GMT": "Гринвич уақыты", "HAT": "Ньюфаундленд жазғы уақыты", "HKST": "Гонконг жазғы уақыты", "ChST": "Чаморро стандартты уақыты", "EAT": "Шығыс Африка уақыты"},
++ timezones: map[string]string{"AWDT": "Австралия жазғы батыс уақыты", "AKST": "Аляска стандартты уақыты", "ACDT": "Австралия жазғы орталық уақыты", "ECT": "Эквадор уақыты", "BT": "Бутан уақыты", "HAT": "Ньюфаундленд жазғы уақыты", "WARST": "Батыс Аргентина жазғы уақыты", "SAST": "Оңтүстік Африка уақыты", "COST": "Колумбия жазғы уақыты", "HKST": "Гонконг жазғы уақыты", "NZDT": "Жаңа Зеландия жазғы уақыты", "CLST": "Чили жазғы уақыты", "HEPM": "Сен-Пьер және Микелон жазғы уақыты", "UYST": "Уругвай жазғы уақыты", "PDT": "Солтүстік Америка жазғы Тынық мұхиты уақыты", "HNCU": "Куба стандартты уақыты", "HECU": "Куба жазғы уақыты", "WAST": "Батыс Африка жазғы уақыты", "MDT": "MDT", "ChST": "Чаморро стандартты уақыты", "ARST": "Аргентина жазғы уақыты", "ACST": "Австралия стандартты орталық уақыты", "LHDT": "Лорд-Хау жазғы уақыты", "ACWST": "Австралия стандартты орталық-батыс уақыты", "OESZ": "Шығыс Еуропа жазғы уақыты", "COT": "Колумбия стандартты уақыты", "ADT": "Атлантика жазғы уақыты", "HEOG": "Батыс Гренландия жазғы уақыты", "AST": "Атлантика стандартты уақыты", "GMT": "Гринвич уақыты", "HENOMX": "Солтүстік-Батыс Мексика жазғы уақыты", "LHST": "Лорд-Хау стандартты уақыты", "PST": "Солтүстік Америка стандартты Тынық мұхиты уақыты", "HEPMX": "Мексика жазғы Тынық мұхит уақыты", "VET": "Венесуэла уақыты", "CDT": "Солтүстік Америка жазғы орталық уақыты", "EDT": "Солтүстік Америка жазғы шығыс уақыты", "WIT": "Шығыс Индонезия уақыты", "AWST": "Австралия стандартты батыс уақыты", "AEST": "Австралия стандартты шығыс уақыты", "AEDT": "Австралия жазғы шығыс уақыты", "∅∅∅": "∅∅∅", "TMT": "Түрікменстан стандартты уақыты", "CAT": "Орталық Африка уақыты", "HADT": "Гавай және Алеут аралдары жазғы уақыты", "MST": "MST", "BOT": "Боливия уақыты", "WESZ": "Батыс Еуропа жазғы уақыты", "GFT": "Француз Гвианасы уақыты", "HKT": "Гонконг стандартты уақыты", "CST": "Солтүстік Америка стандартты орталық уақыты", "OEZ": "Шығыс Еуропа стандартты уақыты", "HNT": "Ньюфаундленд стандартты уақыты", "WART": "Батыс Аргентина стандартты уақыты", "EST": "Солтүстік Америка стандартты шығыс уақыты", "JDT": "Жапония жазғы уақыты", "WEZ": "Батыс Еуропа стандартты уақыты", "JST": "Жапония стандартты уақыты", "MESZ": "Орталық Еуропа жазғы уақыты", "AKDT": "Аляска жазғы уақыты", "GYT": "Гайана уақыты", "EAT": "Шығыс Африка уақыты", "SRT": "Суринам уақыты", "HNNOMX": "Солтүстік-Батыс Мексика стандартты уақыты", "HNPM": "Сен-Пьер және Микелон стандартты уақыты", "CHADT": "Чатем жазғы уақыты", "ACWDT": "Австралия жазғы орталық-батыс уақыты", "SGT": "Сингапур стандартты уақыты", "WIB": "Батыс Индонезия уақыты", "CHAST": "Чатем стандартты уақыты", "WAT": "Батыс Африка стандартты уақыты", "HNEG": "Шығыс Гренландия стандартты уақыты", "HAST": "Гавай және Алеут аралдары стандартты уақыты", "MEZ": "Орталық Еуропа стандартты уақыты", "HEEG": "Шығыс Гренландия жазғы уақыты", "IST": "Үндістан стандартты уақыты", "HNPMX": "Мексика стандартты Тынық мұхит уақыты", "WITA": "Орталық Индонезия уақыты", "NZST": "Жаңа Зеландия стандартты уақыты", "MYT": "Малайзия уақыты", "TMST": "Түрікменстан жазғы уақыты", "CLT": "Чили стандартты уақыты", "ART": "Аргентина стандартты уақыты", "HNOG": "Батыс Гренландия стандартты уақыты", "UYT": "Уругвай стандартты уақыты"},
+ }
+ }
+ 
+diff --git a/kk_KZ/kk_KZ.go b/kk_KZ/kk_KZ.go
+index 4da0e89..516f5df 100644
+--- a/kk_KZ/kk_KZ.go
++++ b/kk_KZ/kk_KZ.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type kk_KZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'kk_KZ' locale
+ func New() locales.Translator {
+ return &kk_KZ{
+- locale: "kk_KZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{5, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "қаң.", "ақп.", "нау.", "сәу.", "мам.", "мау.", "шіл.", "там.", "қыр.", "қаз.", "қар.", "жел."},
+- monthsNarrow: []string{"", "Қ", "А", "Н", "С", "М", "М", "Ш", "Т", "Қ", "Қ", "Қ", "Ж"},
+- monthsWide: []string{"", "қаңтар", "ақпан", "наурыз", "сәуір", "мамыр", "маусым", "шілде", "тамыз", "қыркүйек", "қазан", "қараша", "желтоқсан"},
+- daysAbbreviated: []string{"Жс", "Дс", "Сс", "Ср", "Бс", "Жм", "Сб"},
+- daysNarrow: []string{"Ж", "Д", "С", "С", "Б", "Ж", "С"},
+- daysShort: []string{"Жс", "Дс", "Сс", "Ср", "Бс", "Жм", "Сб"},
+- daysWide: []string{"жексенбі", "дүйсенбі", "сейсенбі", "сәрсенбі", "бейсенбі", "жұма", "сенбі"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"б.з.д.", "б.з."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Біздің заманымызға дейін", "Біздің заманымыз"},
+- timezones: map[string]string{"MST": "MST", "GYT": "Гайана уақыты", "WESZ": "Батыс Еуропа жазғы уақыты", "ACWST": "Австралия стандартты орталық-батыс уақыты", "CHADT": "Чатем жазғы уақыты", "∅∅∅": "Перу жазғы уақыты", "SGT": "Сингапур стандартты уақыты", "CST": "Солтүстік Америка стандартты орталық уақыты", "AST": "Атлантика стандартты уақыты", "HENOMX": "Солтүстік-Батыс Мексика жазғы уақыты", "UYT": "Уругвай стандартты уақыты", "WIB": "Батыс Индонезия уақыты", "ACWDT": "Австралия жазғы орталық-батыс уақыты", "ARST": "Аргентина жазғы уақыты", "AWDT": "Австралия жазғы батыс уақыты", "WARST": "Батыс Аргентина жазғы уақыты", "EAT": "Шығыс Африка уақыты", "WAST": "Батыс Африка жазғы уақыты", "HAST": "Гавай және Алеут аралдары стандартты уақыты", "SRT": "Суринам уақыты", "HAT": "Ньюфаундленд жазғы уақыты", "CAT": "Орталық Африка уақыты", "OESZ": "Шығыс Еуропа жазғы уақыты", "ADT": "Атлантика жазғы уақыты", "VET": "Венесуэла уақыты", "MEZ": "Орталық Еуропа стандартты уақыты", "ChST": "Чаморро стандартты уақыты", "AKST": "Аляска стандартты уақыты", "UYST": "Уругвай жазғы уақыты", "PST": "Солтүстік Америка стандартты Тынық мұхиты уақыты", "WITA": "Орталық Индонезия уақыты", "HEPM": "Сен-Пьер және Микелон жазғы уақыты", "MESZ": "Орталық Еуропа жазғы уақыты", "WAT": "Батыс Африка стандартты уақыты", "AKDT": "Аляска жазғы уақыты", "HNT": "Ньюфаундленд стандартты уақыты", "ART": "Аргентина стандартты уақыты", "AWST": "Австралия стандартты батыс уақыты", "HNPM": "Сен-Пьер және Микелон стандартты уақыты", "JST": "Жапония стандартты уақыты", "JDT": "Жапония жазғы уақыты", "IST": "Үндістан стандартты уақыты", "ACDT": "Австралия жазғы орталық уақыты", "WART": "Батыс Аргентина стандартты уақыты", "EDT": "Солтүстік Америка жазғы шығыс уақыты", "MDT": "MDT", "HADT": "Гавай және Алеут аралдары жазғы уақыты", "LHST": "Лорд-Хау стандартты уақыты", "TMT": "Түрікменстан стандартты уақыты", "EST": "Солтүстік Америка стандартты шығыс уақыты", "WEZ": "Батыс Еуропа стандартты уақыты", "HNOG": "Батыс Гренландия стандартты уақыты", "CHAST": "Чатем стандартты уақыты", "LHDT": "Лорд-Хау жазғы уақыты", "NZST": "Жаңа Зеландия стандартты уақыты", "HNEG": "Шығыс Гренландия стандартты уақыты", "ACST": "Австралия стандартты орталық уақыты", "HEPMX": "Мексика жазғы Тынық мұхит уақыты", "BT": "Бутан уақыты", "HEOG": "Батыс Гренландия жазғы уақыты", "HKST": "Гонконг жазғы уақыты", "SAST": "Оңтүстік Африка уақыты", "CLT": "Чили стандартты уақыты", "TMST": "Түрікменстан жазғы уақыты", "COT": "Колумбия стандартты уақыты", "HNNOMX": "Солтүстік-Батыс Мексика стандартты уақыты", "MYT": "Малайзия уақыты", "AEST": "Австралия стандартты шығыс уақыты", "NZDT": "Жаңа Зеландия жазғы уақыты", "BOT": "Боливия уақыты", "GFT": "Француз Гвианасы уақыты", "PDT": "Солтүстік Америка жазғы Тынық мұхиты уақыты", "CLST": "Чили жазғы уақыты", "COST": "Колумбия жазғы уақыты", "HNCU": "Куба стандартты уақыты", "HECU": "Куба жазғы уақыты", "HNPMX": "Мексика стандартты Тынық мұхит уақыты", "CDT": "Солтүстік Америка жазғы орталық уақыты", "HKT": "Гонконг стандартты уақыты", "HEEG": "Шығыс Гренландия жазғы уақыты", "OEZ": "Шығыс Еуропа стандартты уақыты", "ECT": "Эквадор уақыты", "GMT": "Гринвич уақыты", "WIT": "Шығыс Индонезия уақыты", "AEDT": "Австралия жазғы шығыс уақыты"},
++ locale: "kk_KZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{5, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"UYST": "UYST", "GYT": "GYT", "CLT": "CLT", "NZST": "NZST", "PDT": "PDT", "HEPMX": "HEPMX", "SGT": "SGT", "WART": "WART", "HEOG": "HEOG", "TMT": "TMT", "HNEG": "HNEG", "OEZ": "OEZ", "WARST": "WARST", "CAT": "CAT", "EAT": "EAT", "LHDT": "LHDT", "HEPM": "HEPM", "CHADT": "CHADT", "IST": "IST", "PST": "PST", "ACWDT": "ACWDT", "OESZ": "OESZ", "HAT": "HAT", "CDT": "CDT", "NZDT": "NZDT", "GMT": "GMT", "MESZ": "MESZ", "UYT": "UYT", "∅∅∅": "∅∅∅", "WIT": "WIT", "HNOG": "HNOG", "TMST": "TMST", "WITA": "WITA", "BOT": "BOT", "WIB": "WIB", "ARST": "ARST", "JDT": "JDT", "CHAST": "CHAST", "BT": "BT", "ACWST": "ACWST", "HEEG": "HEEG", "AKDT": "AKDT", "HKST": "HKST", "ECT": "ECT", "HADT": "HADT", "WESZ": "WESZ", "EDT": "EDT", "AEDT": "AEDT", "HECU": "HECU", "WAT": "WAT", "COST": "COST", "EST": "EST", "HKT": "HKT", "JST": "JST", "AKST": "AKST", "HNT": "HNT", "LHST": "LHST", "COT": "COT", "ChST": "ChST", "SRT": "SRT", "ACDT": "ACDT", "WEZ": "WEZ", "VET": "VET", "CST": "CST", "MST": "MST", "ADT": "ADT", "AWST": "AWST", "AWDT": "AWDT", "HNPM": "HNPM", "HNCU": "HNCU", "MYT": "MYT", "AEST": "AEST", "HNPMX": "HNPMX", "WAST": "WAST", "SAST": "SAST", "CLST": "CLST", "MEZ": "MEZ", "HENOMX": "HENOMX", "GFT": "GFT", "MDT": "MDT", "AST": "AST", "ART": "ART", "HAST": "HAST", "ACST": "ACST", "HNNOMX": "HNNOMX"},
+ }
+ }
+ 
+@@ -143,7 +120,7 @@ func (kk *kk_KZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (kk *kk_KZ) MonthsAbbreviated() []string {
+- return kk.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -153,7 +130,7 @@ func (kk *kk_KZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (kk *kk_KZ) MonthsNarrow() []string {
+- return kk.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -163,7 +140,7 @@ func (kk *kk_KZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (kk *kk_KZ) MonthsWide() []string {
+- return kk.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -209,75 +186,13 @@ func (kk *kk_KZ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'kk_KZ' and handles both Whole and Real numbers based on 'v'
+ func (kk *kk_KZ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kk.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(kk.group) - 1; j >= 0; j-- {
+- b = append(b, kk.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, kk.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'kk_KZ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (kk *kk_KZ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kk.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, kk.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, kk.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'kk_KZ'
+@@ -285,58 +200,7 @@ func (kk *kk_KZ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kk.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kk.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(kk.group) - 1; j >= 0; j-- {
+- b = append(b, kk.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, kk.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kk.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, kk.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'kk_KZ'
+@@ -345,65 +209,7 @@ func (kk *kk_KZ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kk.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kk.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(kk.group) - 1; j >= 0; j-- {
+- b = append(b, kk.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, kk.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kk.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, kk.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, kk.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'kk_KZ'
+@@ -411,27 +217,6 @@ func (kk *kk_KZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -440,23 +225,6 @@ func (kk *kk_KZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb6}...)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kk.monthsAbbreviated[t.Month()]...)
+-
+ return string(b)
+ }
+ 
+@@ -465,18 +233,6 @@ func (kk *kk_KZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb6}...)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kk.monthsWide[t.Month()]...)
+-
+ return string(b)
+ }
+ 
+@@ -485,20 +241,6 @@ func (kk *kk_KZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb6}...)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kk.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, kk.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -507,19 +249,6 @@ func (kk *kk_KZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -528,26 +257,6 @@ func (kk *kk_KZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -556,30 +265,6 @@ func (kk *kk_KZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -588,34 +273,5 @@ func (kk *kk_KZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := kk.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/kkj/kkj.go b/kkj/kkj.go
+index fc090e9..a333600 100644
+--- a/kkj/kkj.go
++++ b/kkj/kkj.go
+@@ -63,7 +63,7 @@ func New() locales.Translator {
+ daysNarrow: []string{"so", "lu", "ma", "mɛ", "ye", "va", "ms"},
+ daysShort: []string{"sɔndi", "lundi", "mardi", "mɛrkɛrɛdi", "yedi", "vaŋdɛrɛdi", "mɔnɔ sɔndi"},
+ daysWide: []string{"sɔndi", "lundi", "mardi", "mɛrkɛrɛdi", "yedi", "vaŋdɛrɛdi", "mɔnɔ sɔndi"},
+- timezones: map[string]string{"EST": "EST", "HNPMX": "HNPMX", "GYT": "GYT", "BT": "BT", "MESZ": "MESZ", "ChST": "ChST", "HEEG": "HEEG", "WAST": "WAST", "ACWDT": "ACWDT", "HAT": "HAT", "UYT": "UYT", "AST": "AST", "ART": "ART", "AEST": "AEST", "LHDT": "LHDT", "WART": "WART", "MST": "MST", "HKT": "HKT", "ARST": "ARST", "AWST": "AWST", "MEZ": "MEZ", "LHST": "LHST", "HEPMX": "HEPMX", "HAST": "HAST", "HNEG": "HNEG", "EAT": "EAT", "UYST": "UYST", "AKST": "AKST", "WEZ": "WEZ", "NZST": "NZST", "CHAST": "CHAST", "SGT": "SGT", "MYT": "MYT", "GMT": "GMT", "HKST": "HKST", "WITA": "WITA", "GFT": "GFT", "WARST": "WARST", "AWDT": "AWDT", "HNPM": "HNPM", "ACST": "ACST", "SRT": "SRT", "HNOG": "HNOG", "WAT": "WAT", "HECU": "HECU", "MDT": "MDT", "HNT": "HNT", "AKDT": "AKDT", "VET": "VET", "WIT": "WIT", "PST": "PST", "SAST": "SAST", "CLT": "CLT", "COT": "COT", "HNCU": "HNCU", "WESZ": "WESZ", "IST": "IST", "PDT": "PDT", "TMST": "TMST", "OESZ": "OESZ", "CST": "CST", "ACWST": "ACWST", "∅∅∅": "∅∅∅", "JDT": "JDT", "ACDT": "ACDT", "HENOMX": "HENOMX", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "NZDT": "NZDT", "JST": "JST", "COST": "COST", "CLST": "CLST", "TMT": "TMT", "CDT": "CDT", "ADT": "ADT", "OEZ": "OEZ", "ECT": "ECT", "EDT": "EDT", "WIB": "WIB", "AEDT": "AEDT", "CHADT": "CHADT", "BOT": "BOT", "CAT": "CAT", "HADT": "HADT", "HEOG": "HEOG"},
++ timezones: map[string]string{"WESZ": "WESZ", "HEPMX": "HEPMX", "OEZ": "OEZ", "TMST": "TMST", "CAT": "CAT", "BOT": "BOT", "HKST": "HKST", "TMT": "TMT", "ChST": "ChST", "ART": "ART", "AEDT": "AEDT", "WITA": "WITA", "MESZ": "MESZ", "CHAST": "CHAST", "HEOG": "HEOG", "MST": "MST", "IST": "IST", "ACWST": "ACWST", "COT": "COT", "ECT": "ECT", "PST": "PST", "COST": "COST", "HKT": "HKT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "GFT": "GFT", "CLST": "CLST", "SRT": "SRT", "MEZ": "MEZ", "PDT": "PDT", "CHADT": "CHADT", "HECU": "HECU", "HNPMX": "HNPMX", "SAST": "SAST", "GYT": "GYT", "HNOG": "HNOG", "CST": "CST", "NZST": "NZST", "AWDT": "AWDT", "HEPM": "HEPM", "ACWDT": "ACWDT", "WARST": "WARST", "ADT": "ADT", "MYT": "MYT", "HNT": "HNT", "MDT": "MDT", "EAT": "EAT", "AWST": "AWST", "LHST": "LHST", "JST": "JST", "HNCU": "HNCU", "WAST": "WAST", "HAT": "HAT", "WART": "WART", "EST": "EST", "ACST": "ACST", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "VET": "VET", "WAT": "WAT", "OESZ": "OESZ", "ARST": "ARST", "HAST": "HAST", "HNPM": "HNPM", "AEST": "AEST", "UYT": "UYT", "AKDT": "AKDT", "EDT": "EDT", "CDT": "CDT", "GMT": "GMT", "ACDT": "ACDT", "JDT": "JDT", "SGT": "SGT", "WIT": "WIT", "BT": "BT", "UYST": "UYST", "WEZ": "WEZ", "CLT": "CLT", "WIB": "WIB", "AST": "AST", "HADT": "HADT", "AKST": "AKST", "NZDT": "NZDT", "HNEG": "HNEG"},
+ }
+ }
+ 
+diff --git a/kkj_CM/kkj_CM.go b/kkj_CM/kkj_CM.go
+index 3325041..2e3f9da 100644
+--- a/kkj_CM/kkj_CM.go
++++ b/kkj_CM/kkj_CM.go
+@@ -10,60 +10,45 @@ import (
+ )
+ 
+ type kkj_CM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'kkj_CM' locale
+ func New() locales.Translator {
+ return &kkj_CM{
+- locale: "kkj_CM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyPositiveSuffix: "K",
+- currencyNegativePrefix: " ",
+- currencyNegativeSuffix: "K",
+- monthsWide: []string{"", "pamba", "wanja", "mbiyɔ mɛndoŋgɔ", "Nyɔlɔmbɔŋgɔ", "Mɔnɔ ŋgbanja", "Nyaŋgwɛ ŋgbanja", "kuŋgwɛ", "fɛ", "njapi", "nyukul", "11", "ɓulɓusɛ"},
+- daysAbbreviated: []string{"sɔndi", "lundi", "mardi", "mɛrkɛrɛdi", "yedi", "vaŋdɛrɛdi", "mɔnɔ sɔndi"},
+- daysNarrow: []string{"so", "lu", "ma", "mɛ", "ye", "va", "ms"},
+- daysShort: []string{"sɔndi", "lundi", "mardi", "mɛrkɛrɛdi", "yedi", "vaŋdɛrɛdi", "mɔnɔ sɔndi"},
+- daysWide: []string{"sɔndi", "lundi", "mardi", "mɛrkɛrɛdi", "yedi", "vaŋdɛrɛdi", "mɔnɔ sɔndi"},
+- timezones: map[string]string{"AEDT": "AEDT", "TMT": "TMT", "CAT": "CAT", "COT": "COT", "MST": "MST", "PST": "PST", "WEZ": "WEZ", "HEPM": "HEPM", "GFT": "GFT", "WARST": "WARST", "WIT": "WIT", "HNT": "HNT", "WITA": "WITA", "CLT": "CLT", "JST": "JST", "WAST": "WAST", "WIB": "WIB", "VET": "VET", "IST": "IST", "HNCU": "HNCU", "WESZ": "WESZ", "ACST": "ACST", "GMT": "GMT", "JDT": "JDT", "ACDT": "ACDT", "HNPMX": "HNPMX", "HAST": "HAST", "AWST": "AWST", "SAST": "SAST", "EDT": "EDT", "UYST": "UYST", "OEZ": "OEZ", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "MEZ": "MEZ", "WAT": "WAT", "ECT": "ECT", "UYT": "UYT", "AST": "AST", "ACWST": "ACWST", "CLST": "CLST", "SGT": "SGT", "CST": "CST", "HNOG": "HNOG", "ART": "ART", "HECU": "HECU", "MYT": "MYT", "HADT": "HADT", "ARST": "ARST", "NZDT": "NZDT", "HEEG": "HEEG", "EAT": "EAT", "HKST": "HKST", "LHDT": "LHDT", "NZST": "NZST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "HEOG": "HEOG", "PDT": "PDT", "AWDT": "AWDT", "HKT": "HKT", "HNPM": "HNPM", "CHAST": "CHAST", "CHADT": "CHADT", "TMST": "TMST", "MDT": "MDT", "SRT": "SRT", "ACWDT": "ACWDT", "CDT": "CDT", "WART": "WART", "COST": "COST", "AKDT": "AKDT", "HENOMX": "HENOMX", "EST": "EST", "GYT": "GYT", "ADT": "ADT", "BT": "BT", "LHST": "LHST", "ChST": "ChST", "BOT": "BOT", "HEPMX": "HEPMX", "AKST": "AKST", "HAT": "HAT", "AEST": "AEST", "MESZ": "MESZ"},
++ locale: "kkj_CM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SAST": "SAST", "NZST": "NZST", "SGT": "SGT", "GYT": "GYT", "HEOG": "HEOG", "EST": "EST", "CLST": "CLST", "ART": "ART", "HADT": "HADT", "ACWDT": "ACWDT", "HEPMX": "HEPMX", "OESZ": "OESZ", "COT": "COT", "ARST": "ARST", "MDT": "MDT", "HNEG": "HNEG", "HNPM": "HNPM", "HEPM": "HEPM", "HNPMX": "HNPMX", "TMT": "TMT", "GMT": "GMT", "WIT": "WIT", "EDT": "EDT", "HKT": "HKT", "CAT": "CAT", "ChST": "ChST", "ACDT": "ACDT", "OEZ": "OEZ", "GFT": "GFT", "WITA": "WITA", "LHDT": "LHDT", "PDT": "PDT", "HNCU": "HNCU", "HECU": "HECU", "AKST": "AKST", "TMST": "TMST", "ACST": "ACST", "HEEG": "HEEG", "CHAST": "CHAST", "UYST": "UYST", "VET": "VET", "WAT": "WAT", "WARST": "WARST", "HNOG": "HNOG", "CDT": "CDT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "JST": "JST", "ACWST": "ACWST", "AEDT": "AEDT", "WEZ": "WEZ", "AKDT": "AKDT", "WART": "WART", "HKST": "HKST", "NZDT": "NZDT", "MESZ": "MESZ", "IST": "IST", "EAT": "EAT", "HAST": "HAST", "JDT": "JDT", "HAT": "HAT", "CLT": "CLT", "ECT": "ECT", "WAST": "WAST", "HNT": "HNT", "CST": "CST", "AST": "AST", "MEZ": "MEZ", "LHST": "LHST", "MYT": "MYT", "MST": "MST", "ADT": "ADT", "SRT": "SRT", "AWST": "AWST", "AWDT": "AWDT", "PST": "PST", "AEST": "AEST", "CHADT": "CHADT", "COST": "COST", "WIB": "WIB", "BOT": "BOT", "BT": "BT", "UYT": "UYT", "WESZ": "WESZ"},
+ }
+ }
+ 
+@@ -136,7 +121,7 @@ func (kkj *kkj_CM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (kkj *kkj_CM) MonthsWide() []string {
+- return kkj.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -196,40 +181,7 @@ func (kkj *kkj_CM) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kkj.currencies[currency]
+- l := len(s) + len(symbol) + 4
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kkj.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(kkj.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, kkj.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, kkj.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, kkj.currencyPositiveSuffix...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'kkj_CM'
+@@ -238,57 +190,7 @@ func (kkj *kkj_CM) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kkj.currencies[currency]
+- l := len(s) + len(symbol) + 4
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kkj.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(kkj.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, kkj.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, kkj.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(kkj.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, kkj.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if num < 0 {
+- b = append(b, kkj.currencyNegativeSuffix...)
+- } else {
+-
+- b = append(b, kkj.currencyPositiveSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'kkj_CM'
+@@ -296,27 +198,6 @@ func (kkj *kkj_CM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -325,17 +206,6 @@ func (kkj *kkj_CM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kkj.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -344,17 +214,6 @@ func (kkj *kkj_CM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kkj.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -363,24 +222,6 @@ func (kkj *kkj_CM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, kkj.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kkj.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -389,19 +230,6 @@ func (kkj *kkj_CM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kkj.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -410,26 +238,6 @@ func (kkj *kkj_CM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kkj.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kkj.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+diff --git a/kl/kl.go b/kl/kl.go
+index 53dd0a7..cacfc8f 100644
+--- a/kl/kl.go
++++ b/kl/kl.go
+@@ -68,7 +68,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"Kr.in.si.", "Kr.in.king."},
+ erasNarrow: []string{"Kr.s.", "Kr.k."},
+ erasWide: []string{"Kristusip inunngornerata siornagut", "Kristusip inunngornerata kingornagut"},
+- timezones: map[string]string{"NZST": "NZST", "BOT": "BOT", "EAT": "EAT", "COST": "COST", "HKT": "HKT", "WITA": "WITA", "AEDT": "AEDT", "HEPM": "HEPM", "WART": "WART", "SRT": "SRT", "ADT": "ADT", "UYST": "UYST", "HKST": "HKST", "ACST": "ACST", "EST": "EST", "CST": "CST", "LHST": "LHST", "OEZ": "OEZ", "MST": "MST", "AKDT": "AKDT", "WAST": "WAST", "CDT": "CDT", "ACWDT": "ACWDT", "MEZ": "MEZ", "JST": "JST", "GFT": "GFT", "ACDT": "ACDT", "OESZ": "OESZ", "HECU": "HECU", "HEPMX": "HEPMX", "EDT": "EDT", "AWDT": "AWDT", "MESZ": "MESZ", "CLT": "CLT", "WAT": "WAT", "MDT": "MDT", "GYT": "GYT", "ARST": "ARST", "HNEG": "HNEG", "ECT": "ECT", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "PDT": "PDT", "∅∅∅": "∅∅∅", "AKST": "AKST", "WIT": "WIT", "HAST": "HAST", "NZDT": "NZDT", "AST": "AST", "HADT": "HADT", "HNT": "HNT", "HNPM": "HNPM", "CHADT": "CHADT", "COT": "COT", "HEOG": "HEOG", "CHAST": "CHAST", "BT": "BT", "ART": "ART", "HENOMX": "HENOMX", "VET": "VET", "HAT": "HAT", "WEZ": "WEZ", "WESZ": "WESZ", "IST": "IST", "JDT": "JDT", "HEEG": "HEEG", "WARST": "WARST", "CAT": "CAT", "SGT": "SGT", "ACWST": "ACWST", "HNOG": "HNOG", "AWST": "AWST", "AEST": "AEST", "LHDT": "LHDT", "TMT": "TMT", "PST": "PST", "UYT": "UYT", "SAST": "SAST", "CLST": "CLST", "TMST": "TMST", "HNPMX": "HNPMX", "ChST": "ChST", "MYT": "MYT", "WIB": "WIB", "GMT": "GMT"},
++ timezones: map[string]string{"NZST": "NZST", "HEEG": "HEEG", "SGT": "SGT", "GFT": "GFT", "MDT": "MDT", "HEPM": "HEPM", "AWDT": "AWDT", "PST": "PST", "HNPMX": "HNPMX", "EST": "EST", "HKT": "HKT", "WIB": "WIB", "ChST": "ChST", "MESZ": "MESZ", "TMST": "TMST", "MST": "MST", "AWST": "AWST", "UYST": "UYST", "PDT": "PDT", "HEPMX": "HEPMX", "EDT": "EDT", "ARST": "ARST", "EAT": "EAT", "MEZ": "MEZ", "VET": "VET", "∅∅∅": "∅∅∅", "CAT": "CAT", "JDT": "JDT", "IST": "IST", "WAST": "WAST", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "HNEG": "HNEG", "LHDT": "LHDT", "CHADT": "CHADT", "AKDT": "AKDT", "OESZ": "OESZ", "HKST": "HKST", "CLST": "CLST", "SRT": "SRT", "UYT": "UYT", "BT": "BT", "HNCU": "HNCU", "AKST": "AKST", "HAT": "HAT", "WIT": "WIT", "CDT": "CDT", "LHST": "LHST", "AEST": "AEST", "WARST": "WARST", "ECT": "ECT", "CST": "CST", "ADT": "ADT", "BOT": "BOT", "HENOMX": "HENOMX", "ACST": "ACST", "ACWDT": "ACWDT", "OEZ": "OEZ", "HNT": "HNT", "GMT": "GMT", "WESZ": "WESZ", "WAT": "WAT", "HEOG": "HEOG", "GYT": "GYT", "HAST": "HAST", "HNPM": "HNPM", "MYT": "MYT", "AEDT": "AEDT", "HECU": "HECU", "WEZ": "WEZ", "WART": "WART", "HNOG": "HNOG", "HADT": "HADT", "ACDT": "ACDT", "ACWST": "ACWST", "CHAST": "CHAST", "COT": "COT", "COST": "COST", "ART": "ART", "AST": "AST", "JST": "JST", "SAST": "SAST", "TMT": "TMT", "CLT": "CLT", "WITA": "WITA"},
+ }
+ }
+ 
+diff --git a/kl_GL/kl_GL.go b/kl_GL/kl_GL.go
+index 52b8535..7945601 100644
+--- a/kl_GL/kl_GL.go
++++ b/kl_GL/kl_GL.go
+@@ -18,7 +18,6 @@ type kl_GL struct {
+ group string
+ minus string
+ percent string
+- percentSuffix string
+ perMille string
+ timeSeparator string
+ inifinity string
+@@ -43,32 +42,13 @@ type kl_GL struct {
+ // New returns a new instance of translator for the 'kl_GL' locale
+ func New() locales.Translator {
+ return &kl_GL{
+- locale: "kl_GL",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- monthsAbbreviated: []string{"", "jan", "feb", "mar", "apr", "maj", "jun", "jul", "aug", "sep", "okt", "nov", "dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januari", "februari", "martsi", "aprili", "maji", "juni", "juli", "augustusi", "septemberi", "oktoberi", "novemberi", "decemberi"},
+- daysAbbreviated: []string{"sab", "ata", "mar", "pin", "sis", "tal", "arf"},
+- daysNarrow: []string{"S", "A", "M", "P", "S", "T", "A"},
+- daysShort: []string{"sab", "ata", "mar", "pin", "sis", "tal", "arf"},
+- daysWide: []string{"sabaat", "ataasinngorneq", "marlunngorneq", "pingasunngorneq", "sisamanngorneq", "tallimanngorneq", "arfininngorneq"},
+- periodsAbbreviated: []string{"u.t.", "u.k."},
+- periodsWide: []string{"ulloqeqqata-tungaa", "ulloqeqqata-kingorna"},
+- erasAbbreviated: []string{"Kr.in.si.", "Kr.in.king."},
+- erasNarrow: []string{"Kr.s.", "Kr.k."},
+- erasWide: []string{"Kristusip inunngornerata siornagut", "Kristusip inunngornerata kingornagut"},
+- timezones: map[string]string{"TMT": "TMT", "ADT": "ADT", "HNOG": "HNOG", "AEDT": "AEDT", "MEZ": "MEZ", "CLT": "CLT", "OEZ": "OEZ", "HENOMX": "HENOMX", "HAST": "HAST", "AWDT": "AWDT", "HAT": "HAT", "WITA": "WITA", "SAST": "SAST", "CLST": "CLST", "WAT": "WAT", "OESZ": "OESZ", "AKDT": "AKDT", "BT": "BT", "UYT": "UYT", "AKST": "AKST", "ChST": "ChST", "HNEG": "HNEG", "ACDT": "ACDT", "CAT": "CAT", "WART": "WART", "HNPMX": "HNPMX", "AEST": "AEST", "HNPM": "HNPM", "HEPM": "HEPM", "IST": "IST", "ACST": "ACST", "WARST": "WARST", "GYT": "GYT", "∅∅∅": "∅∅∅", "EAT": "EAT", "HNCU": "HNCU", "WEZ": "WEZ", "AWST": "AWST", "NZST": "NZST", "ACWST": "ACWST", "HNT": "HNT", "HKT": "HKT", "MESZ": "MESZ", "ARST": "ARST", "JDT": "JDT", "HEEG": "HEEG", "EDT": "EDT", "CDT": "CDT", "WIT": "WIT", "PDT": "PDT", "CHAST": "CHAST", "WAST": "WAST", "MYT": "MYT", "WIB": "WIB", "WESZ": "WESZ", "ACWDT": "ACWDT", "HKST": "HKST", "TMST": "TMST", "ART": "ART", "LHST": "LHST", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "GFT": "GFT", "COST": "COST", "HEPMX": "HEPMX", "PST": "PST", "MST": "MST", "UYST": "UYST", "JST": "JST", "ECT": "ECT", "COT": "COT", "NZDT": "NZDT", "BOT": "BOT", "GMT": "GMT", "MDT": "MDT", "SRT": "SRT", "VET": "VET", "HEOG": "HEOG", "SGT": "SGT", "HECU": "HECU", "EST": "EST", "CST": "CST", "AST": "AST", "HADT": "HADT", "CHADT": "CHADT"},
++ locale: "kl_GL",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"TMST": "TMST", "ChST": "ChST", "EAT": "EAT", "MYT": "MYT", "IST": "IST", "EDT": "EDT", "TMT": "TMT", "AKST": "AKST", "HNOG": "HNOG", "CLST": "CLST", "CST": "CST", "WEZ": "WEZ", "WAST": "WAST", "GYT": "GYT", "UYT": "UYT", "CHADT": "CHADT", "AWST": "AWST", "PDT": "PDT", "WESZ": "WESZ", "OESZ": "OESZ", "CDT": "CDT", "AST": "AST", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "WITA": "WITA", "ECT": "ECT", "HEPM": "HEPM", "WARST": "WARST", "CAT": "CAT", "ADT": "ADT", "LHST": "LHST", "JDT": "JDT", "SGT": "SGT", "WAT": "WAT", "AKDT": "AKDT", "HAT": "HAT", "EST": "EST", "HADT": "HADT", "BT": "BT", "ACWST": "ACWST", "GFT": "GFT", "MDT": "MDT", "MESZ": "MESZ", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "NZDT": "NZDT", "WIB": "WIB", "MST": "MST", "GMT": "GMT", "BOT": "BOT", "HNEG": "HNEG", "HEEG": "HEEG", "VET": "VET", "HKT": "HKT", "∅∅∅": "∅∅∅", "AWDT": "AWDT", "OEZ": "OEZ", "WIT": "WIT", "ACDT": "ACDT", "HENOMX": "HENOMX", "PST": "PST", "AEST": "AEST", "WART": "WART", "SRT": "SRT", "LHDT": "LHDT", "HAST": "HAST", "JST": "JST", "UYST": "UYST", "CHAST": "CHAST", "SAST": "SAST", "HKST": "HKST", "ART": "ART", "AEDT": "AEDT", "HEOG": "HEOG", "ARST": "ARST", "MEZ": "MEZ", "COT": "COT", "ACST": "ACST", "HNT": "HNT", "HNPM": "HNPM", "ACWDT": "ACWDT", "HECU": "HECU", "COST": "COST", "CLT": "CLT", "NZST": "NZST"},
+ }
+ }
+ 
+@@ -121,7 +101,7 @@ func (kl *kl_GL) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (kl *kl_GL) MonthsAbbreviated() []string {
+- return kl.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -131,7 +111,7 @@ func (kl *kl_GL) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (kl *kl_GL) MonthsNarrow() []string {
+- return kl.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -141,7 +121,7 @@ func (kl *kl_GL) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (kl *kl_GL) MonthsWide() []string {
+- return kl.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -187,79 +167,13 @@ func (kl *kl_GL) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'kl_GL' and handles both Whole and Real numbers based on 'v'
+ func (kl *kl_GL) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, kl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(kl.minus) - 1; j >= 0; j-- {
+- b = append(b, kl.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'kl_GL' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (kl *kl_GL) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kl.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(kl.minus) - 1; j >= 0; j-- {
+- b = append(b, kl.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, kl.percentSuffix...)
+-
+- b = append(b, kl.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'kl_GL'
+@@ -267,58 +181,7 @@ func (kl *kl_GL) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, kl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- for j := len(kl.minus) - 1; j >= 0; j-- {
+- b = append(b, kl.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'kl_GL'
+@@ -327,66 +190,7 @@ func (kl *kl_GL) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, kl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(kl.minus) - 1; j >= 0; j-- {
+- b = append(b, kl.minus[j])
+- }
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'kl_GL'
+@@ -394,28 +198,6 @@ func (kl *kl_GL) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -424,22 +206,6 @@ func (kl *kl_GL) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, kl.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -448,21 +214,6 @@ func (kl *kl_GL) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -471,24 +222,6 @@ func (kl *kl_GL) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, kl.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -497,28 +230,6 @@ func (kl *kl_GL) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, kl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, kl.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, kl.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -527,35 +238,6 @@ func (kl *kl_GL) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, kl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, kl.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, kl.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -564,40 +246,6 @@ func (kl *kl_GL) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, kl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, kl.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, kl.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -606,44 +254,5 @@ func (kl *kl_GL) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, kl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, kl.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, kl.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := kl.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/kln/kln.go b/kln/kln.go
+index aa2d0d0..9e471fd 100644
+--- a/kln/kln.go
++++ b/kln/kln.go
+@@ -63,7 +63,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"AM", "KO"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Amait kesich Jesu", "Kokakesich Jesu"},
+- timezones: map[string]string{"HEPMX": "HEPMX", "LHST": "LHST", "HEEG": "HEEG", "WAT": "WAT", "WAST": "WAST", "SAST": "SAST", "IST": "IST", "CLST": "CLST", "UYST": "UYST", "PST": "PST", "AWST": "AWST", "AWDT": "AWDT", "CHADT": "CHADT", "SRT": "SRT", "AEDT": "AEDT", "WITA": "WITA", "HNPMX": "HNPMX", "GYT": "GYT", "WIT": "WIT", "WESZ": "WESZ", "ACWDT": "ACWDT", "TMST": "TMST", "EST": "EST", "WARST": "WARST", "HECU": "HECU", "EDT": "EDT", "CST": "CST", "PDT": "PDT", "HKT": "HKT", "OESZ": "OESZ", "ECT": "ECT", "VET": "VET", "WEZ": "WEZ", "ART": "ART", "BOT": "BOT", "WIB": "WIB", "HNPM": "HNPM", "JDT": "JDT", "HNCU": "HNCU", "HNEG": "HNEG", "MYT": "MYT", "HNNOMX": "HNNOMX", "ACWST": "ACWST", "HKST": "HKST", "∅∅∅": "∅∅∅", "WART": "WART", "NZDT": "NZDT", "AKST": "AKST", "ADT": "ADT", "MST": "MST", "AKDT": "AKDT", "HEPM": "HEPM", "ChST": "ChST", "COT": "COT", "COST": "COST", "UYT": "UYT", "CDT": "CDT", "HAST": "HAST", "NZST": "NZST", "JST": "JST", "CAT": "CAT", "SGT": "SGT", "MEZ": "MEZ", "MESZ": "MESZ", "LHDT": "LHDT", "CHAST": "CHAST", "HNT": "HNT", "HAT": "HAT", "ARST": "ARST", "HNOG": "HNOG", "ACST": "ACST", "ACDT": "ACDT", "GMT": "GMT", "HADT": "HADT", "MDT": "MDT", "BT": "BT", "GFT": "GFT", "TMT": "TMT", "HENOMX": "HENOMX", "OEZ": "OEZ", "AST": "AST", "HEOG": "HEOG", "AEST": "AEST", "CLT": "CLT", "EAT": "EAT"},
++ timezones: map[string]string{"ECT": "ECT", "AWST": "AWST", "HAT": "HAT", "WART": "WART", "WIT": "WIT", "EST": "EST", "CLT": "CLT", "HEPM": "HEPM", "MESZ": "MESZ", "AEDT": "AEDT", "SGT": "SGT", "ACST": "ACST", "SRT": "SRT", "MEZ": "MEZ", "HEEG": "HEEG", "LHDT": "LHDT", "JST": "JST", "ChST": "ChST", "NZST": "NZST", "ARST": "ARST", "UYT": "UYT", "WESZ": "WESZ", "CDT": "CDT", "CHAST": "CHAST", "WARST": "WARST", "TMST": "TMST", "HNNOMX": "HNNOMX", "CHADT": "CHADT", "WEZ": "WEZ", "HNOG": "HNOG", "WIB": "WIB", "ADT": "ADT", "ART": "ART", "BOT": "BOT", "MDT": "MDT", "PDT": "PDT", "WAT": "WAT", "WAST": "WAST", "GFT": "GFT", "ACDT": "ACDT", "LHST": "LHST", "IST": "IST", "HNPMX": "HNPMX", "OESZ": "OESZ", "EDT": "EDT", "CST": "CST", "HENOMX": "HENOMX", "BT": "BT", "ACWST": "ACWST", "HECU": "HECU", "AKDT": "AKDT", "OEZ": "OEZ", "∅∅∅": "∅∅∅", "EAT": "EAT", "HNPM": "HNPM", "AEST": "AEST", "TMT": "TMT", "GMT": "GMT", "NZDT": "NZDT", "MYT": "MYT", "VET": "VET", "HEPMX": "HEPMX", "AKST": "AKST", "HKST": "HKST", "CAT": "CAT", "HNT": "HNT", "SAST": "SAST", "HEOG": "HEOG", "HKT": "HKT", "CLST": "CLST", "HAST": "HAST", "HADT": "HADT", "AWDT": "AWDT", "UYST": "UYST", "COT": "COT", "COST": "COST", "WITA": "WITA", "AST": "AST", "HNEG": "HNEG", "JDT": "JDT", "PST": "PST", "ACWDT": "ACWDT", "HNCU": "HNCU", "GYT": "GYT", "MST": "MST"},
+ }
+ }
+ 
+diff --git a/kln_KE/kln_KE.go b/kln_KE/kln_KE.go
+index 4a54d35..dc671c0 100644
+--- a/kln_KE/kln_KE.go
++++ b/kln_KE/kln_KE.go
+@@ -10,60 +10,45 @@ import (
+ )
+ 
+ type kln_KE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'kln_KE' locale
+ func New() locales.Translator {
+ return &kln_KE{
+- locale: "kln_KE",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Mul", "Ngat", "Taa", "Iwo", "Mam", "Paa", "Nge", "Roo", "Bur", "Epe", "Kpt", "Kpa"},
+- monthsNarrow: []string{"", "M", "N", "T", "I", "M", "P", "N", "R", "B", "E", "K", "K"},
+- monthsWide: []string{"", "Mulgul", "Ng’atyaato", "Kiptaamo", "Iwootkuut", "Mamuut", "Paagi", "Ng’eiyeet", "Rooptui", "Bureet", "Epeeso", "Kipsuunde ne taai", "Kipsuunde nebo aeng’"},
+- daysAbbreviated: []string{"Kts", "Kot", "Koo", "Kos", "Koa", "Kom", "Kol"},
+- daysNarrow: []string{"T", "T", "O", "S", "A", "M", "L"},
+- daysWide: []string{"Kotisap", "Kotaai", "Koaeng’", "Kosomok", "Koang’wan", "Komuut", "Kolo"},
+- periodsAbbreviated: []string{"krn", "koosk"},
+- periodsWide: []string{"karoon", "kooskoliny"},
+- erasAbbreviated: []string{"AM", "KO"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Amait kesich Jesu", "Kokakesich Jesu"},
+- timezones: map[string]string{"WARST": "WARST", "MDT": "MDT", "CDT": "CDT", "MEZ": "MEZ", "JST": "JST", "JDT": "JDT", "HNEG": "HNEG", "WAT": "WAT", "ECT": "ECT", "PDT": "PDT", "NZDT": "NZDT", "LHDT": "LHDT", "TMT": "TMT", "AST": "AST", "HADT": "HADT", "WEZ": "WEZ", "NZST": "NZST", "∅∅∅": "∅∅∅", "VET": "VET", "IST": "IST", "EDT": "EDT", "EAT": "EAT", "GMT": "GMT", "ADT": "ADT", "MYT": "MYT", "AWDT": "AWDT", "BOT": "BOT", "WAST": "WAST", "COST": "COST", "AKST": "AKST", "UYST": "UYST", "HAT": "HAT", "WITA": "WITA", "HNPM": "HNPM", "CHAST": "CHAST", "OESZ": "OESZ", "OEZ": "OEZ", "CAT": "CAT", "HNPMX": "HNPMX", "AKDT": "AKDT", "ART": "ART", "CLT": "CLT", "HEEG": "HEEG", "ACDT": "ACDT", "ACWDT": "ACWDT", "HKST": "HKST", "HEPM": "HEPM", "CLST": "CLST", "ChST": "ChST", "EST": "EST", "UYT": "UYT", "HAST": "HAST", "BT": "BT", "ACWST": "ACWST", "HNOG": "HNOG", "MESZ": "MESZ", "TMST": "TMST", "HEOG": "HEOG", "HKT": "HKT", "AEDT": "AEDT", "LHST": "LHST", "ACST": "ACST", "AWST": "AWST", "CST": "CST", "GYT": "GYT", "WIB": "WIB", "SRT": "SRT", "CHADT": "CHADT", "HNCU": "HNCU", "SAST": "SAST", "COT": "COT", "SGT": "SGT", "WIT": "WIT", "HNT": "HNT", "PST": "PST", "WESZ": "WESZ", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "ARST": "ARST", "AEST": "AEST", "WART": "WART", "MST": "MST", "HEPMX": "HEPMX", "GFT": "GFT", "HECU": "HECU"},
++ locale: "kln_KE",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEEG": "HEEG", "WITA": "WITA", "BT": "BT", "SAST": "SAST", "EST": "EST", "HKT": "HKT", "WIB": "WIB", "SGT": "SGT", "HEPMX": "HEPMX", "OESZ": "OESZ", "HEOG": "HEOG", "CHAST": "CHAST", "CLT": "CLT", "MDT": "MDT", "NZDT": "NZDT", "ART": "ART", "ARST": "ARST", "MEZ": "MEZ", "LHDT": "LHDT", "WAST": "WAST", "WIT": "WIT", "ADT": "ADT", "HADT": "HADT", "PDT": "PDT", "OEZ": "OEZ", "WART": "WART", "HNOG": "HNOG", "CAT": "CAT", "CDT": "CDT", "MESZ": "MESZ", "AWST": "AWST", "SRT": "SRT", "ACDT": "ACDT", "GFT": "GFT", "COT": "COT", "WARST": "WARST", "HNNOMX": "HNNOMX", "LHST": "LHST", "JDT": "JDT", "ACWDT": "ACWDT", "VET": "VET", "HECU": "HECU", "WAT": "WAT", "GYT": "GYT", "COST": "COST", "EAT": "EAT", "HAST": "HAST", "HNEG": "HNEG", "WESZ": "WESZ", "HKST": "HKST", "AEST": "AEST", "AEDT": "AEDT", "CHADT": "CHADT", "HNCU": "HNCU", "HAT": "HAT", "CST": "CST", "ChST": "ChST", "JST": "JST", "EDT": "EDT", "TMT": "TMT", "AWDT": "AWDT", "MYT": "MYT", "PST": "PST", "ACWST": "ACWST", "UYT": "UYT", "AKDT": "AKDT", "HNT": "HNT", "TMST": "TMST", "∅∅∅": "∅∅∅", "MST": "MST", "NZST": "NZST", "GMT": "GMT", "HEPM": "HEPM", "AST": "AST", "BOT": "BOT", "IST": "IST", "UYST": "UYST", "HNPMX": "HNPMX", "HNPM": "HNPM", "CLST": "CLST", "ECT": "ECT", "ACST": "ACST", "HENOMX": "HENOMX", "WEZ": "WEZ", "AKST": "AKST"},
+ }
+ }
+ 
+@@ -109,7 +94,7 @@ func (kln *kln_KE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (kln *kln_KE) MonthsAbbreviated() []string {
+- return kln.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -119,7 +104,7 @@ func (kln *kln_KE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (kln *kln_KE) MonthsNarrow() []string {
+- return kln.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -129,7 +114,7 @@ func (kln *kln_KE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (kln *kln_KE) MonthsWide() []string {
+- return kln.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -189,56 +174,7 @@ func (kln *kln_KE) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kln.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kln.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, kln.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, kln.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kln.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'kln_KE'
+@@ -247,68 +183,7 @@ func (kln *kln_KE) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kln.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kln.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, kln.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, kln.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kln.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, kln.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'kln_KE'
+@@ -316,27 +191,6 @@ func (kln *kln_KE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -345,17 +199,6 @@ func (kln *kln_KE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kln.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -364,17 +207,6 @@ func (kln *kln_KE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kln.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -383,19 +215,6 @@ func (kln *kln_KE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, kln.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kln.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -404,19 +223,6 @@ func (kln *kln_KE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -425,26 +231,6 @@ func (kln *kln_KE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kln.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -453,30 +239,6 @@ func (kln *kln_KE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kln.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -485,34 +247,5 @@ func (kln *kln_KE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kln.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := kln.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/km/km.go b/km/km.go
+index a648698..6905387 100644
+--- a/km/km.go
++++ b/km/km.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"មុន គ.ស.", "គ.ស."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"មុន\u200bគ្រិស្តសករាជ", "គ្រិស្តសករាជ"},
+- timezones: map[string]string{"HAST": "ម៉ោង\u200bស្តង់ដារ\u200b\u200bនៅ\u200bហាវៃ-អាល់ដ្យូសិន", "ACWST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bភាគ\u200bខាង\u200bលិច\u200bនៃ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "HKT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bហុងកុង", "JDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅជប៉ុន", "HNPMX": "ម៉ោង\u200bស្តង់ដា\u200bនៅ\u200bប៉ាសីុហ្វិក\u200bម៉ិកស៊ិក", "HEPMX": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bប៉ាសីុហ្វិក\u200bម៉ិកស៊ិក", "HADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bហាវៃ-អាល់ដ្យូសិន", "NZDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bនូវែលសេឡង់", "CLST": "ម៉ោងរដូវក្តៅនៅឈីលី", "ACDT": "ម៉ោង\u200bពេលថ្ងៃ\u200b\u200b\u200b\u200bនៅ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "WIB": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200bខាង\u200bលិច", "HAT": "ម៉ោង\u200bពេលថ្ងៃ\u200bនៅ\u200bញូហ្វោនឡែន", "∅∅∅": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាម៉ាសូន", "HNCU": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bគុយបា", "EST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bខាង\u200bកើត\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "EDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bភាគខាង\u200bកើតនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "HKST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bហុងកុង", "AWDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bលិច", "NZST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bនូវែលសេឡង់", "SAST": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bត្បូង", "WIT": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200bខាង\u200bកើត", "BT": "ម៉ោងនៅប៊ូតាន", "WEZ": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអឺរ៉ុប\u200bខាង\u200bលិច", "BOT": "ម៉ោង\u200bនៅ\u200bបូលីវី", "WART": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាសង់ទីន\u200b\u200bខាង\u200bលិច", "MST": "MST", "ADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអាត្លង់ទិក", "COT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bកូឡុំប៊ី", "WITA": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200b\u200bកណ្ដាល", "CLT": "ម៉ោងស្តង់ដារនៅឈីលី", "WAT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bលិច", "OESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200b\u200bខាង\u200bកើត\u200b", "MDT": "MDT", "CST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bកណ្ដាល\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "CDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bភាគ\u200bកណ្ដាល\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "UYST": "ម៉ោង\u200b\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអ៊ុយរូហ្គាយ", "HNPM": "ម៉ោង\u200bស្តង់ដារ\u200bនៅសង់\u200bព្យែរ និង\u200bមីគុយឡុង", "MESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200bកណ្ដាល", "HENOMX": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bម៉ិកស៊ិកភាគពាយព្យ", "SGT": "ម៉ោង\u200bនៅ\u200bសិង្ហបូរី", "GMT": "ម៉ោងនៅគ្រីនវិច", "VET": "ម៉ោង\u200bនៅ\u200bវ៉េណេស៊ុយអេឡា", "PDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200b\u200bភាគ\u200bខាងលិច\u200bនៅ\u200bអាមេរិក\u200bភាគ\u200bខាង\u200bជើង", "CHAST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bចាថាំ", "IST": "ម៉ោង\u200bនៅ\u200bឥណ្ឌា", "ECT": "ម៉ោង\u200bនៅ\u200bអេក្វាទ័រ", "COST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bកូឡុំប៊ី", "AWST": "ម៉ោង\u200b\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bលិច", "GYT": "ម៉ោង\u200bនៅ\u200bឃ្វីយ៉ាន", "PST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bខាង\u200bលិច\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "MEZ": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអឺរ៉ុប\u200bកណ្ដាល", "LHST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bឡត\u200bហៅ", "ACST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "HNOG": "ម៉ោងស្តង់ដារនៅហ្គ្រីនលែនខាងលិច", "ACWDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200b\u200bភាគ\u200bខាង\u200bលិច\u200bនៃ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "ART": "ម៉ោង\u200b\u200bស្តង់ដារ\u200bនៅ\u200bអាសង់ទីន", "TMST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bតួកម៉េនីស្ថាន\u200b", "WAST": "ម៉ោង\u200b\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាហ្វ្រិក\u200b\u200b\u200bខាងលិច", "OEZ": "ម៉ោង\u200bស្តង់ដារ\u200b\u200bនៅ\u200bអឺរ៉ុប\u200b\u200bខាង\u200bកើត\u200b", "MYT": "ម៉ោង\u200bនៅ\u200bម៉ាឡេស៊ី", "HEPM": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅសង់\u200bព្យែរ និង\u200bមីគុយឡុង", "TMT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅតួកម៉េនីស្ថាន", "AKST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាឡាស្កា", "LHDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bឡតហៅ", "UYT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអ៊ុយរូហ្គាយ", "SRT": "ម៉ោង\u200bនៅ\u200bសូរីណាម", "HEOG": "ម៉ោងរដូវក្តៅនៅហ្គ្រីនលែនខាងលិច", "AEST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bកើត", "ChST": "ម៉ោង\u200bនៅ\u200bចាំម៉ូរ៉ូ", "HNNOMX": "ម៉ោង\u200bស្តង់ដា\u200bនៅ\u200bម៉ិកស៊ិកភាគពាយព្យ", "HNT": "ម៉ោង\u200b\u200bស្តង់ដារ\u200b\u200bនៅ\u200bញូហ្វោនឡែន", "CAT": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bកណ្ដាល", "EAT": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bកើត", "AKDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200b\u200bអាឡាស្កា", "CHADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bចាថាំ", "JST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bជប៉ុន", "HNEG": "ម៉ោង\u200b\u200b\u200bស្តង់ដារ\u200bនៅ\u200b\u200bហ្គ្រីនលែន\u200bខាង\u200bកើត", "GFT": "ម៉ោង\u200bនៅ\u200bឃ្វីយ៉ាន\u200bបារាំង", "AST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាត្លង់ទិក", "ARST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាសង់ទីន", "WESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200bខាង\u200bលិច", "AEDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bកើត", "HEEG": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bហ្គ្រីនលែនខាង\u200bកើត", "WARST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាសង់ទីន\u200b\u200bខាង\u200bលិច", "HECU": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bគុយបា"},
++ timezones: map[string]string{"∅∅∅": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាម៉ាសូន", "AKST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាឡាស្កា", "HNOG": "ម៉ោងស្តង់ដារនៅហ្គ្រីនលែនខាងលិច", "ART": "ម៉ោង\u200b\u200bស្តង់ដារ\u200bនៅ\u200bអាសង់ទីន", "UYT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអ៊ុយរូហ្គាយ", "EDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bភាគខាង\u200bកើតនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "TMT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅតួកម៉េនីស្ថាន", "ADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអាត្លង់ទិក", "ACST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "ACWST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bភាគ\u200bខាង\u200bលិច\u200bនៃ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "WEZ": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអឺរ៉ុប\u200bខាង\u200bលិច", "GYT": "ម៉ោង\u200bនៅ\u200bឃ្វីយ៉ាន", "HAST": "ម៉ោង\u200bស្តង់ដារ\u200b\u200bនៅ\u200bហាវៃ-អាល់ដ្យូសិន", "HNPM": "ម៉ោង\u200bស្តង់ដារ\u200bនៅសង់\u200bព្យែរ និង\u200bមីគុយឡុង", "AST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាត្លង់ទិក", "HNEG": "ម៉ោង\u200b\u200b\u200bស្តង់ដារ\u200bនៅ\u200b\u200bហ្គ្រីនលែន\u200bខាង\u200bកើត", "HEPM": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅសង់\u200bព្យែរ និង\u200bមីគុយឡុង", "JDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅជប៉ុន", "ACWDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200b\u200bភាគ\u200bខាង\u200bលិច\u200bនៃ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "HECU": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bគុយបា", "OESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200b\u200bខាង\u200bកើត\u200b", "HKST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bហុងកុង", "TMST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bតួកម៉េនីស្ថាន\u200b", "ChST": "ម៉ោង\u200bនៅ\u200bចាំម៉ូរ៉ូ", "CHAST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bចាថាំ", "HNPMX": "ម៉ោង\u200bស្តង់ដា\u200bនៅ\u200bប៉ាសីុហ្វិក\u200bម៉ិកស៊ិក", "SRT": "ម៉ោង\u200bនៅ\u200bសូរីណាម", "JST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bជប៉ុន", "IST": "ម៉ោង\u200bនៅ\u200bឥណ្ឌា", "CHADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bចាថាំ", "GFT": "ម៉ោង\u200bនៅ\u200bឃ្វីយ៉ាន\u200bបារាំង", "EST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bខាង\u200bកើត\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "MDT": "MDT", "NZST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bនូវែលសេឡង់", "WIB": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200bខាង\u200bលិច", "HENOMX": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bម៉ិកស៊ិកភាគពាយព្យ", "WAST": "ម៉ោង\u200b\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាហ្វ្រិក\u200b\u200b\u200bខាងលិច", "WIT": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200bខាង\u200bកើត", "CLST": "ម៉ោងរដូវក្តៅនៅឈីលី", "HADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bហាវៃ-អាល់ដ្យូសិន", "HAT": "ម៉ោង\u200bពេលថ្ងៃ\u200bនៅ\u200bញូហ្វោនឡែន", "COT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bកូឡុំប៊ី", "CAT": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bកណ្ដាល", "LHDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bឡតហៅ", "SAST": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bត្បូង", "HKT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bហុងកុង", "CST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bកណ្ដាល\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "GMT": "ម៉ោងនៅគ្រីនវិច", "EAT": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bកើត", "LHST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bឡត\u200bហៅ", "WAT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bលិច", "CLT": "ម៉ោងស្តង់ដារនៅឈីលី", "CDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bភាគ\u200bកណ្ដាល\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "MESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200bកណ្ដាល", "BOT": "ម៉ោង\u200bនៅ\u200bបូលីវី", "AWDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bលិច", "OEZ": "ម៉ោង\u200bស្តង់ដារ\u200b\u200bនៅ\u200bអឺរ៉ុប\u200b\u200bខាង\u200bកើត\u200b", "WART": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាសង់ទីន\u200b\u200bខាង\u200bលិច", "COST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bកូឡុំប៊ី", "WITA": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200b\u200bកណ្ដាល", "MST": "MST", "NZDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bនូវែលសេឡង់", "MYT": "ម៉ោង\u200bនៅ\u200bម៉ាឡេស៊ី", "PST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bខាង\u200bលិច\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "BT": "ម៉ោងនៅប៊ូតាន", "VET": "ម៉ោង\u200bនៅ\u200bវ៉េណេស៊ុយអេឡា", "AEDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bកើត", "HEOG": "ម៉ោងរដូវក្តៅនៅហ្គ្រីនលែនខាងលិច", "ECT": "ម៉ោង\u200bនៅ\u200bអេក្វាទ័រ", "HEEG": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bហ្គ្រីនលែនខាង\u200bកើត", "AWST": "ម៉ោង\u200b\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bលិច", "PDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200b\u200bភាគ\u200bខាងលិច\u200bនៅ\u200bអាមេរិក\u200bភាគ\u200bខាង\u200bជើង", "AEST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bកើត", "AKDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200b\u200bអាឡាស្កា", "WARST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាសង់ទីន\u200b\u200bខាង\u200bលិច", "ACDT": "ម៉ោង\u200bពេលថ្ងៃ\u200b\u200b\u200b\u200bនៅ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "WESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200bខាង\u200bលិច", "HNCU": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bគុយបា", "HEPMX": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bប៉ាសីុហ្វិក\u200bម៉ិកស៊ិក", "HNT": "ម៉ោង\u200b\u200bស្តង់ដារ\u200b\u200bនៅ\u200bញូហ្វោនឡែន", "ARST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាសង់ទីន", "MEZ": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអឺរ៉ុប\u200bកណ្ដាល", "HNNOMX": "ម៉ោង\u200bស្តង់ដា\u200bនៅ\u200bម៉ិកស៊ិកភាគពាយព្យ", "UYST": "ម៉ោង\u200b\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអ៊ុយរូហ្គាយ", "SGT": "ម៉ោង\u200bនៅ\u200bសិង្ហបូរី"},
+ }
+ }
+ 
+diff --git a/km_KH/km_KH.go b/km_KH/km_KH.go
+index b16312f..4ed8768 100644
+--- a/km_KH/km_KH.go
++++ b/km_KH/km_KH.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type km_KH struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'km_KH' locale
+ func New() locales.Translator {
+ return &km_KH{
+- locale: "km_KH",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "មករា", "កុម្ភៈ", "មីនា", "មេសា", "ឧសភា", "មិថុនា", "កក្កដា", "សីហា", "កញ្ញា", "តុលា", "វិច្ឆិកា", "ធ្នូ"},
+- monthsNarrow: []string{"", "ម", "ក", "ម", "ម", "ឧ", "ម", "ក", "ស", "ក", "ត", "វ", "ធ"},
+- monthsWide: []string{"", "មករា", "កុម្ភៈ", "មីនា", "មេសា", "ឧសភា", "មិថុនា", "កក្កដា", "សីហា", "កញ្ញា", "តុលា", "វិច្ឆិកា", "ធ្នូ"},
+- daysAbbreviated: []string{"អាទិត្យ", "ច័ន្ទ", "អង្គារ", "ពុធ", "ព្រហស្បតិ៍", "សុក្រ", "សៅរ៍"},
+- daysNarrow: []string{"អ", "ច", "អ", "ព", "ព", "ស", "ស"},
+- daysShort: []string{"អា", "ច", "អ", "ពុ", "ព្រ", "សុ", "ស"},
+- daysWide: []string{"អាទិត្យ", "ច័ន្ទ", "អង្គារ", "ពុធ", "ព្រហស្បតិ៍", "សុក្រ", "សៅរ៍"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"មុន គ.ស.", "គ.ស."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"មុន\u200bគ្រិស្តសករាជ", "គ្រិស្តសករាជ"},
+- timezones: map[string]string{"CHADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bចាថាំ", "SAST": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bត្បូង", "∅∅∅": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាម៉ាសូន", "WAT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bលិច", "WARST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាសង់ទីន\u200b\u200bខាង\u200bលិច", "AST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាត្លង់ទិក", "HEOG": "ម៉ោងរដូវក្តៅនៅហ្គ្រីនលែនខាងលិច", "COST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bកូឡុំប៊ី", "EST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bខាង\u200bកើត\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "UYT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអ៊ុយរូហ្គាយ", "WEZ": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអឺរ៉ុប\u200bខាង\u200bលិច", "HEPM": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅសង់\u200bព្យែរ និង\u200bមីគុយឡុង", "TMT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅតួកម៉េនីស្ថាន", "AKST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាឡាស្កា", "AKDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200b\u200bអាឡាស្កា", "WIB": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200bខាង\u200bលិច", "ACWDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200b\u200bភាគ\u200bខាង\u200bលិច\u200bនៃ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "CLT": "ម៉ោងស្តង់ដារនៅឈីលី", "HNCU": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bគុយបា", "EDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bភាគខាង\u200bកើតនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "HNOG": "ម៉ោងស្តង់ដារនៅហ្គ្រីនលែនខាងលិច", "HKT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bហុងកុង", "MEZ": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអឺរ៉ុប\u200bកណ្ដាល", "CHAST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bចាថាំ", "HEEG": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bហ្គ្រីនលែនខាង\u200bកើត", "GFT": "ម៉ោង\u200bនៅ\u200bឃ្វីយ៉ាន\u200bបារាំង", "HNNOMX": "ម៉ោង\u200bស្តង់ដា\u200bនៅ\u200bម៉ិកស៊ិកភាគពាយព្យ", "SGT": "ម៉ោង\u200bនៅ\u200bសិង្ហបូរី", "SRT": "ម៉ោង\u200bនៅ\u200bសូរីណាម", "MESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200bកណ្ដាល", "HADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bហាវៃ-អាល់ដ្យូសិន", "WIT": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200bខាង\u200bកើត", "WITA": "ម៉ោង\u200bនៅ\u200bឥណ្ឌូណេស៊ី\u200b\u200b\u200bកណ្ដាល", "JST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bជប៉ុន", "HENOMX": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bម៉ិកស៊ិកភាគពាយព្យ", "GMT": "ម៉ោងនៅគ្រីនវិច", "NZST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bនូវែលសេឡង់", "IST": "ម៉ោង\u200bនៅ\u200bឥណ្ឌា", "CLST": "ម៉ោងរដូវក្តៅនៅឈីលី", "BOT": "ម៉ោង\u200bនៅ\u200bបូលីវី", "HNT": "ម៉ោង\u200b\u200bស្តង់ដារ\u200b\u200bនៅ\u200bញូហ្វោនឡែន", "ARST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាសង់ទីន", "NZDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bនូវែលសេឡង់", "HEPMX": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bប៉ាសីុហ្វិក\u200bម៉ិកស៊ិក", "AWDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bលិច", "LHST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bឡត\u200bហៅ", "MST": "MST", "ChST": "ម៉ោង\u200bនៅ\u200bចាំម៉ូរ៉ូ", "ACDT": "ម៉ោង\u200bពេលថ្ងៃ\u200b\u200b\u200b\u200bនៅ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "PDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200b\u200bភាគ\u200bខាងលិច\u200bនៅ\u200bអាមេរិក\u200bភាគ\u200bខាង\u200bជើង", "AEST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bកើត", "HNEG": "ម៉ោង\u200b\u200b\u200bស្តង់ដារ\u200bនៅ\u200b\u200bហ្គ្រីនលែន\u200bខាង\u200bកើត", "OESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200b\u200bខាង\u200bកើត\u200b", "CDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bភាគ\u200bកណ្ដាល\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "AEDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bកើត", "TMST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bតួកម៉េនីស្ថាន\u200b", "WAST": "ម៉ោង\u200b\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអាហ្វ្រិក\u200b\u200b\u200bខាងលិច", "UYST": "ម៉ោង\u200b\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអ៊ុយរូហ្គាយ", "BT": "ម៉ោងនៅប៊ូតាន", "PST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bខាង\u200bលិច\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "AWST": "ម៉ោង\u200b\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bខាង\u200bលិច", "JDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅជប៉ុន", "HECU": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bគុយបា", "MDT": "MDT", "MYT": "ម៉ោង\u200bនៅ\u200bម៉ាឡេស៊ី", "VET": "ម៉ោង\u200bនៅ\u200bវ៉េណេស៊ុយអេឡា", "HNPM": "ម៉ោង\u200bស្តង់ដារ\u200bនៅសង់\u200bព្យែរ និង\u200bមីគុយឡុង", "LHDT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bឡតហៅ", "ACST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "EAT": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bខាង\u200bកើត", "OEZ": "ម៉ោង\u200bស្តង់ដារ\u200b\u200bនៅ\u200bអឺរ៉ុប\u200b\u200bខាង\u200bកើត\u200b", "ECT": "ម៉ោង\u200bនៅ\u200bអេក្វាទ័រ", "HNPMX": "ម៉ោង\u200bស្តង់ដា\u200bនៅ\u200bប៉ាសីុហ្វិក\u200bម៉ិកស៊ិក", "CST": "ម៉ោង\u200bស្តង់ដារ\u200bភាគ\u200bកណ្ដាល\u200bនៅ\u200bអាមេរិក\u200bខាង\u200bជើង", "ADT": "ម៉ោង\u200bពេល\u200bថ្ងៃ\u200bនៅ\u200bអាត្លង់ទិក", "GYT": "ម៉ោង\u200bនៅ\u200bឃ្វីយ៉ាន", "HAST": "ម៉ោង\u200bស្តង់ដារ\u200b\u200bនៅ\u200bហាវៃ-អាល់ដ្យូសិន", "HAT": "ម៉ោង\u200bពេលថ្ងៃ\u200bនៅ\u200bញូហ្វោនឡែន", "HKST": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bហុងកុង", "CAT": "ម៉ោង\u200bនៅ\u200bអាហ្វ្រិក\u200bកណ្ដាល", "WART": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bអាសង់ទីន\u200b\u200bខាង\u200bលិច", "COT": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bកូឡុំប៊ី", "WESZ": "ម៉ោង\u200bរដូវ\u200bក្ដៅ\u200bនៅ\u200bអឺរ៉ុប\u200bខាង\u200bលិច", "ACWST": "ម៉ោង\u200bស្តង់ដារ\u200bនៅ\u200bភាគ\u200bខាង\u200bលិច\u200bនៃ\u200bអូស្ត្រាលី\u200bកណ្ដាល", "ART": "ម៉ោង\u200b\u200bស្តង់ដារ\u200bនៅ\u200bអាសង់ទីន"},
++ locale: "km_KH",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACWDT": "ACWDT", "COT": "COT", "EST": "EST", "NZST": "NZST", "MESZ": "MESZ", "ACDT": "ACDT", "LHST": "LHST", "CDT": "CDT", "ACST": "ACST", "HECU": "HECU", "TMT": "TMT", "HKT": "HKT", "HNEG": "HNEG", "WAST": "WAST", "GFT": "GFT", "HENOMX": "HENOMX", "PST": "PST", "SAST": "SAST", "GYT": "GYT", "HEOG": "HEOG", "WITA": "WITA", "ARST": "ARST", "AWST": "AWST", "WART": "WART", "HNT": "HNT", "WIT": "WIT", "ECT": "ECT", "SRT": "SRT", "AEDT": "AEDT", "WAT": "WAT", "JST": "JST", "BT": "BT", "ACWST": "ACWST", "WARST": "WARST", "ART": "ART", "MST": "MST", "MYT": "MYT", "AWDT": "AWDT", "HNPMX": "HNPMX", "TMST": "TMST", "OESZ": "OESZ", "GMT": "GMT", "ChST": "ChST", "CHAST": "CHAST", "CLT": "CLT", "HEEG": "HEEG", "PDT": "PDT", "HEPMX": "HEPMX", "UYST": "UYST", "SGT": "SGT", "VET": "VET", "OEZ": "OEZ", "HAT": "HAT", "AST": "AST", "HNPM": "HNPM", "UYT": "UYT", "CST": "CST", "HNOG": "HNOG", "CAT": "CAT", "CLST": "CLST", "WIB": "WIB", "BOT": "BOT", "EAT": "EAT", "JDT": "JDT", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "IST": "IST", "WEZ": "WEZ", "COST": "COST", "ADT": "ADT", "HADT": "HADT", "HEPM": "HEPM", "EDT": "EDT", "HKST": "HKST", "NZDT": "NZDT", "HAST": "HAST", "MEZ": "MEZ", "AKST": "AKST", "AKDT": "AKDT", "HNNOMX": "HNNOMX", "AEST": "AEST", "WESZ": "WESZ", "MDT": "MDT", "LHDT": "LHDT", "HNCU": "HNCU"},
+ }
+ }
+ 
+@@ -117,7 +94,7 @@ func (km *km_KH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (km *km_KH) MonthsAbbreviated() []string {
+- return km.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -127,7 +104,7 @@ func (km *km_KH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (km *km_KH) MonthsNarrow() []string {
+- return km.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -137,7 +114,7 @@ func (km *km_KH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (km *km_KH) MonthsWide() []string {
+- return km.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -183,73 +160,13 @@ func (km *km_KH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'km_KH' and handles both Whole and Real numbers based on 'v'
+ func (km *km_KH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, km.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, km.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, km.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'km_KH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (km *km_KH) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, km.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, km.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, km.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'km_KH'
+@@ -257,54 +174,7 @@ func (km *km_KH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := km.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, km.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, km.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, km.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, km.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'km_KH'
+@@ -313,62 +183,7 @@ func (km *km_KH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := km.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, km.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, km.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, km.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, km.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, km.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'km_KH'
+@@ -376,17 +191,6 @@ func (km *km_KH) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -395,17 +199,6 @@ func (km *km_KH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, km.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -414,17 +207,6 @@ func (km *km_KH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, km.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,19 +215,6 @@ func (km *km_KH) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, km.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, km.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,28 +223,6 @@ func (km *km_KH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, km.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, km.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, km.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,35 +231,6 @@ func (km *km_KH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, km.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, km.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, km.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, km.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -521,40 +239,6 @@ func (km *km_KH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, km.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, km.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, km.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, km.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -563,44 +247,5 @@ func (km *km_KH) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, km.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, km.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, km.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, km.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := km.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/kn/kn.go b/kn/kn.go
+index 2b5ac07..1eb4271 100644
+--- a/kn/kn.go
++++ b/kn/kn.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ಕ್ರಿ.ಪೂ", "ಕ್ರಿ.ಶ"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"ಕ್ರಿಸ್ತ ಪೂರ್ವ", "ಕ್ರಿಸ್ತ ಶಕ"},
+- timezones: map[string]string{"MDT": "ಮಕಾವ್ ಬೇಸಿಗೆ ಸಮಯ", "AKST": "ಅಲಸ್ಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "NZST": "ನ್ಯೂಜಿಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "NZDT": "ನ್ಯೂಜಿಲ್ಯಾಂಡ್ ಹಗಲು ಸಮಯ", "EST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNNOMX": "ವಾಯವ್ಯ ಮೆಕ್ಸಿಕೊ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNT": "ನ್ಯೂಫೌಂಡ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNOG": "ಪಶ್ಚಿಮ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "AWDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪಶ್ಚಿಮ ಹಗಲು ಸಮಯ", "HNPM": "ಸೇಂಟ್ ಪಿಯರ್ ಮತ್ತು ಮಿಕ್ವೆಲನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "COT": "ಕೊಲಂಬಿಯಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "PDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೆಸಿಫಿಕ್ ದಿನದ ಸಮಯ", "WESZ": "ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "WITA": "ಮಧ್ಯ ಇಂಡೋನೇಷಿಯಾ ಸಮಯ", "WAST": "ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾ ಬೇಸಿಗೆ ಸಮಯ", "CAT": "ಮಧ್ಯ ಆಫ್ರಿಕಾ ಸಮಯ", "HNPMX": "ಮೆಕ್ಸಿಕನ್ ಪೆಸಿಫಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "CDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರೀಯ ದಿನದ ಸಮಯ", "HAT": "ನ್ಯೂಫೌಂಡ್\u200cಲ್ಯಾಂಡ್ ದಿನದ ಸಮಯ", "ART": "ಅರ್ಜೆಂಟೀನಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "AEST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪೂರ್ವ ಪ್ರಮಾಣಿತ ಸಮಯ", "OEZ": "ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "CST": "ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರ ಪ್ರಮಾಣಿತ ಸಮಯ", "UYT": "ಉರುಗ್ವೇ ಪ್ರಮಾಣಿತ ಸಮಯ", "UYST": "ಉರುಗ್ವೇ ಬೇಸಿಗೆ ಸಮಯ", "WEZ": "ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "AWST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪಶ್ಚಿಮ ಪ್ರಮಾಣಿತ ಸಮಯ", "GFT": "ಫ್ರೆಂಚ್ ಗಯಾನಾ ಸಮಯ", "OESZ": "ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "HAST": "ಹವಾಯಿ-ಅಲ್ಯುಟಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACWST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪಶ್ಚಿಮ ಪ್ರಮಾಣಿತ ಸಮಯ", "CHADT": "ಚಥಾಮ್ ಹಗಲು ಸಮಯ", "COST": "ಕೊಲಂಬಿಯಾ ಬೇಸಿಗೆ ಸಮಯ", "IST": "ಭಾರತೀಯ ಪ್ರಮಾಣಿತ ಸಮಯ", "CLT": "ಚಿಲಿ ಪ್ರಮಾಣಿತ ಸಮಯ", "CLST": "ಚಿಲಿ ಬೇಸಿಗೆ ಸಮಯ", "TMST": "ತುರ್ಕ್\u200cಮೇನಿಸ್ತಾನ್ ಬೇಸಿಗೆ ಸಮಯ", "ChST": "ಚಮೋರೋ ಪ್ರಮಾಣಿತ ಸಮಯ", "BOT": "ಬೊಲಿವಿಯಾ ಸಮಯ", "HNCU": "ಕ್ಯೂಬಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "HENOMX": "ವಾಯವ್ಯ ಮೆಕ್ಸಿಕೊ ಹಗಲು ಸಮಯ", "HEPMX": "ಮೆಕ್ಸಿಕನ್ ಪೆಸಿಫಿಕ್ ಹಗಲು ಸಮಯ", "GYT": "ಗಯಾನಾ ಸಮಯ", "HADT": "ಹವಾಯಿ-ಅಲ್ಯುಟಿಯನ್ ಹಗಲು ಸಮಯ", "ARST": "ಅರ್ಜೆಂಟಿನಾ ಬೇಸಿಗೆ ಸಮಯ", "∅∅∅": "ಪೆರು ಬೇಸಿಗೆ ಸಮಯ", "EDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ದಿನದ ಸಮಯ", "MYT": "ಮಲೇಷಿಯಾ ಸಮಯ", "SRT": "ಸುರಿನೇಮ್ ಸಮಯ", "LHDT": "ಲಾರ್ಡ್ ಹೋವ್ ಬೆಳಗಿನ ಸಮಯ", "HEEG": "ಪೂರ್ವ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಬೇಸಿಗೆ ಸಮಯ", "HECU": "ಕ್ಯೂಬಾ ದಿನದ ಸಮಯ", "WARST": "ಪಶ್ಚಿಮ ಅರ್ಜೆಂಟೀನಾ ಬೇಸಿಗೆ ಸಮಯ", "BT": "ಭೂತಾನ್ ಸಮಯ", "ECT": "ಈಕ್ವೆಡಾರ್ ಸಮಯ", "AST": "ಅಟ್ಲಾಂಟಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "AKDT": "\u200cಅಲಾಸ್ಕಾ ಹಗಲು ಸಮಯ", "WIT": "ಪೂರ್ವ ಇಂಡೋನೇಷಿಯಾ ಸಮಯ", "HEOG": "ಪಶ್ಚಿಮ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಬೇಸಿಗೆ ಸಮಯ", "JDT": "ಜಪಾನ್ ಹಗಲು ಸಮಯ", "TMT": "ತುರ್ಕ್\u200cಮೇನಿಸ್ತಾನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪ್ರಮಾಣಿತ ಸಮಯ", "MESZ": "ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "LHST": "ಲಾರ್ಡ್ ಹೋವ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACWDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪಶ್ಚಿಮ ಹಗಲು ಸಮಯ", "VET": "ವೆನಿಜುವೆಲಾ ಸಮಯ", "AEDT": "ಪೂರ್ವ ಆಸ್ಟ್ರೇಲಿಯಾದ ಹಗಲು ಸಮಯ", "WAT": "ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "MST": "ಮಕಾವ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "PST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೆಸಿಫಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "SAST": "ದಕ್ಷಿಣ ಆಫ್ರಿಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNEG": "ಪೂರ್ವ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "WART": "ಪಶ್ಚಿಮ ಅರ್ಜೆಂಟೀನಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "WIB": "ಪಶ್ಚಿಮ ಇಂಡೋನೇಷಿಯ ಸಮಯ", "HKST": "ಹಾಂಗ್ ಕಾಂಗ್ ಬೇಸಿಗೆ ಸಮಯ", "HEPM": "ಸೇಂಟ್ ಪಿಯರ್ ಮತ್ತು ಮಿಕ್ವೆಲನ್ ಹಗಲು ಸಮಯ", "MEZ": "ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "JST": "ಜಪಾನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "EAT": "ಪೂರ್ವ ಆಫ್ರಿಕಾ ಸಮಯ", "GMT": "ಗ್ರೀನ್\u200cವಿಚ್ ಸರಾಸರಿ ಕಾಲಮಾನ", "SGT": "ಸಿಂಗಾಪುರ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ADT": "ಅಟ್ಲಾಂಟಿಕ್ ದಿನದ ಸಮಯ", "HKT": "ಹಾಂಗ್ ಕಾಂಗ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "CHAST": "ಚಥಾಮ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಹಗಲು ಸಮಯ"},
++ timezones: map[string]string{"WART": "ಪಶ್ಚಿಮ ಅರ್ಜೆಂಟೀನಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "WIT": "ಪೂರ್ವ ಇಂಡೋನೇಷಿಯಾ ಸಮಯ", "TMT": "ತುರ್ಕ್\u200cಮೇನಿಸ್ತಾನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "PST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೆಸಿಫಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACWDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪಶ್ಚಿಮ ಹಗಲು ಸಮಯ", "∅∅∅": "ಏಕರ್ ಬೇಸಿಗೆ ಸಮಯ", "WESZ": "ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "AKST": "ಅಲಸ್ಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "GMT": "ಗ್ರೀನ್\u200cವಿಚ್ ಸರಾಸರಿ ಕಾಲಮಾನ", "CLST": "ಚಿಲಿ ಬೇಸಿಗೆ ಸಮಯ", "CAT": "ಮಧ್ಯ ಆಫ್ರಿಕಾ ಸಮಯ", "CDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರೀಯ ದಿನದ ಸಮಯ", "ACST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪ್ರಮಾಣಿತ ಸಮಯ", "LHST": "ಲಾರ್ಡ್ ಹೋವ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACWST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪಶ್ಚಿಮ ಪ್ರಮಾಣಿತ ಸಮಯ", "SAST": "ದಕ್ಷಿಣ ಆಫ್ರಿಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "TMST": "ತುರ್ಕ್\u200cಮೇನಿಸ್ತಾನ್ ಬೇಸಿಗೆ ಸಮಯ", "MDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪರ್ವತ ದಿನದ ಸಮಯ", "HEEG": "ಪೂರ್ವ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಬೇಸಿಗೆ ಸಮಯ", "HEPMX": "ಮೆಕ್ಸಿಕನ್ ಪೆಸಿಫಿಕ್ ಹಗಲು ಸಮಯ", "EST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಪ್ರಮಾಣಿತ ಸಮಯ", "WIB": "ಪಶ್ಚಿಮ ಇಂಡೋನೇಷಿಯ ಸಮಯ", "HADT": "ಹವಾಯಿ-ಅಲ್ಯುಟಿಯನ್ ಹಗಲು ಸಮಯ", "AEDT": "ಪೂರ್ವ ಆಸ್ಟ್ರೇಲಿಯಾದ ಹಗಲು ಸಮಯ", "HEOG": "ಪಶ್ಚಿಮ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಬೇಸಿಗೆ ಸಮಯ", "WITA": "ಮಧ್ಯ ಇಂಡೋನೇಷಿಯಾ ಸಮಯ", "EAT": "ಪೂರ್ವ ಆಫ್ರಿಕಾ ಸಮಯ", "BT": "ಭೂತಾನ್ ಸಮಯ", "OEZ": "ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "WARST": "ಪಶ್ಚಿಮ ಅರ್ಜೆಂಟೀನಾ ಬೇಸಿಗೆ ಸಮಯ", "CLT": "ಚಿಲಿ ಪ್ರಮಾಣಿತ ಸಮಯ", "ADT": "ಅಟ್ಲಾಂಟಿಕ್ ದಿನದ ಸಮಯ", "IST": "ಭಾರತೀಯ ಪ್ರಮಾಣಿತ ಸಮಯ", "WAST": "ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾ ಬೇಸಿಗೆ ಸಮಯ", "COST": "ಕೊಲಂಬಿಯಾ ಬೇಸಿಗೆ ಸಮಯ", "NZDT": "ನ್ಯೂಜಿಲ್ಯಾಂಡ್ ಹಗಲು ಸಮಯ", "ChST": "ಚಮೋರೋ ಪ್ರಮಾಣಿತ ಸಮಯ", "HKST": "ಹಾಂಗ್ ಕಾಂಗ್ ಬೇಸಿಗೆ ಸಮಯ", "NZST": "ನ್ಯೂಜಿಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "BOT": "ಬೊಲಿವಿಯಾ ಸಮಯ", "ACDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಹಗಲು ಸಮಯ", "JST": "ಜಪಾನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "VET": "ವೆನಿಜುವೆಲಾ ಸಮಯ", "AKDT": "\u200cಅಲಾಸ್ಕಾ ಹಗಲು ಸಮಯ", "MESZ": "ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "AWDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪಶ್ಚಿಮ ಹಗಲು ಸಮಯ", "AEST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪೂರ್ವ ಪ್ರಮಾಣಿತ ಸಮಯ", "CHADT": "ಚಥಾಮ್ ಹಗಲು ಸಮಯ", "HNCU": "ಕ್ಯೂಬಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "UYST": "ಉರುಗ್ವೇ ಬೇಸಿಗೆ ಸಮಯ", "HNT": "ನ್ಯೂಫೌಂಡ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HAT": "ನ್ಯೂಫೌಂಡ್\u200cಲ್ಯಾಂಡ್ ದಿನದ ಸಮಯ", "HKT": "ಹಾಂಗ್ ಕಾಂಗ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "AST": "ಅಟ್ಲಾಂಟಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "MST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪರ್ವತ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNEG": "ಪೂರ್ವ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "UYT": "ಉರುಗ್ವೇ ಪ್ರಮಾಣಿತ ಸಮಯ", "HECU": "ಕ್ಯೂಬಾ ದಿನದ ಸಮಯ", "COT": "ಕೊಲಂಬಿಯಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "WAT": "ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "SRT": "ಸುರಿನೇಮ್ ಸಮಯ", "HAST": "ಹವಾಯಿ-ಅಲ್ಯುಟಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "LHDT": "ಲಾರ್ಡ್ ಹೋವ್ ಬೆಳಗಿನ ಸಮಯ", "JDT": "ಜಪಾನ್ ಹಗಲು ಸಮಯ", "HNPMX": "ಮೆಕ್ಸಿಕನ್ ಪೆಸಿಫಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNPM": "ಸೇಂಟ್ ಪಿಯರ್ ಮತ್ತು ಮಿಕ್ವೆಲನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "GFT": "ಫ್ರೆಂಚ್ ಗಯಾನಾ ಸಮಯ", "GYT": "ಗಯಾನಾ ಸಮಯ", "ECT": "ಈಕ್ವೆಡಾರ್ ಸಮಯ", "HNNOMX": "ವಾಯವ್ಯ ಮೆಕ್ಸಿಕೊ ಪ್ರಮಾಣಿತ ಸಮಯ", "MEZ": "ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "MYT": "ಮಲೇಷಿಯಾ ಸಮಯ", "PDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೆಸಿಫಿಕ್ ದಿನದ ಸಮಯ", "CHAST": "ಚಥಾಮ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ART": "ಅರ್ಜೆಂಟೀನಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "ARST": "ಅರ್ಜೆಂಟಿನಾ ಬೇಸಿಗೆ ಸಮಯ", "HEPM": "ಸೇಂಟ್ ಪಿಯರ್ ಮತ್ತು ಮಿಕ್ವೆಲನ್ ಹಗಲು ಸಮಯ", "AWST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪಶ್ಚಿಮ ಪ್ರಮಾಣಿತ ಸಮಯ", "SGT": "ಸಿಂಗಾಪುರ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "WEZ": "ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "CST": "ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರ ಪ್ರಮಾಣಿತ ಸಮಯ", "HENOMX": "ವಾಯವ್ಯ ಮೆಕ್ಸಿಕೊ ಹಗಲು ಸಮಯ", "OESZ": "ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "HNOG": "ಪಶ್ಚಿಮ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "EDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ದಿನದ ಸಮಯ"},
+ }
+ }
+ 
+diff --git a/kn_IN/kn_IN.go b/kn_IN/kn_IN.go
+index 41dd4fa..c2d6589 100644
+--- a/kn_IN/kn_IN.go
++++ b/kn_IN/kn_IN.go
+@@ -42,32 +42,13 @@ type kn_IN struct {
+ // New returns a new instance of translator for the 'kn_IN' locale
+ func New() locales.Translator {
+ return &kn_IN{
+- locale: "kn_IN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "ಜನ", "ಫೆಬ್ರ", "ಮಾರ್ಚ್", "ಏಪ್ರಿ", "ಮೇ", "ಜೂನ್", "ಜುಲೈ", "ಆಗ", "ಸೆಪ್ಟೆಂ", "ಅಕ್ಟೋ", "ನವೆಂ", "ಡಿಸೆಂ"},
+- monthsNarrow: []string{"", "ಜ", "ಫೆ", "ಮಾ", "ಏ", "ಮೇ", "ಜೂ", "ಜು", "ಆ", "ಸೆ", "ಅ", "ನ", "ಡಿ"},
+- monthsWide: []string{"", "ಜನವರಿ", "ಫೆಬ್ರವರಿ", "ಮಾರ್ಚ್", "ಏಪ್ರಿಲ್", "ಮೇ", "ಜೂನ್", "ಜುಲೈ", "ಆಗಸ್ಟ್", "ಸೆಪ್ಟೆಂಬರ್", "ಅಕ್ಟೋಬರ್", "ನವೆಂಬರ್", "ಡಿಸೆಂಬರ್"},
+- daysAbbreviated: []string{"ಭಾನು", "ಸೋಮ", "ಮಂಗಳ", "ಬುಧ", "ಗುರು", "ಶುಕ್ರ", "ಶನಿ"},
+- daysNarrow: []string{"ಭಾ", "ಸೋ", "ಮಂ", "ಬು", "ಗು", "ಶು", "ಶ"},
+- daysShort: []string{"ಭಾನು", "ಸೋಮ", "ಮಂಗಳ", "ಬುಧ", "ಗುರು", "ಶುಕ್ರ", "ಶನಿ"},
+- daysWide: []string{"ಭಾನುವಾರ", "ಸೋಮವಾರ", "ಮಂಗಳವಾರ", "ಬುಧವಾರ", "ಗುರುವಾರ", "ಶುಕ್ರವಾರ", "ಶನಿವಾರ"},
+- periodsAbbreviated: []string{"ಪೂರ್ವಾಹ್ನ", "ಅಪರಾಹ್ನ"},
+- periodsNarrow: []string{"ಪೂ", "ಅ"},
+- periodsWide: []string{"ಪೂರ್ವಾಹ್ನ", "ಅಪರಾಹ್ನ"},
+- erasAbbreviated: []string{"ಕ್ರಿ.ಪೂ", "ಕ್ರಿ.ಶ"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ಕ್ರಿಸ್ತ ಪೂರ್ವ", "ಕ್ರಿಸ್ತ ಶಕ"},
+- timezones: map[string]string{"HNT": "ನ್ಯೂಫೌಂಡ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "MESZ": "ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "CLST": "ಚಿಲಿ ಬೇಸಿಗೆ ಸಮಯ", "HNEG": "ಪೂರ್ವ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "CAT": "ಮಧ್ಯ ಆಫ್ರಿಕಾ ಸಮಯ", "GMT": "ಗ್ರೀನ್\u200cವಿಚ್ ಸರಾಸರಿ ಕಾಲಮಾನ", "SGT": "ಸಿಂಗಾಪುರ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "WIB": "ಪಶ್ಚಿಮ ಇಂಡೋನೇಷಿಯ ಸಮಯ", "ADT": "ಅಟ್ಲಾಂಟಿಕ್ ದಿನದ ಸಮಯ", "UYST": "ಉರುಗ್ವೇ ಬೇಸಿಗೆ ಸಮಯ", "CDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರೀಯ ದಿನದ ಸಮಯ", "HADT": "ಹವಾಯಿ-ಅಲ್ಯುಟಿಯನ್ ಹಗಲು ಸಮಯ", "ARST": "ಅರ್ಜೆಂಟಿನಾ ಬೇಸಿಗೆ ಸಮಯ", "HKST": "ಹಾಂಗ್ ಕಾಂಗ್ ಬೇಸಿಗೆ ಸಮಯ", "HEEG": "ಪೂರ್ವ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಬೇಸಿಗೆ ಸಮಯ", "OESZ": "ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "HAST": "ಹವಾಯಿ-ಅಲ್ಯುಟಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNPM": "ಸೇಂಟ್ ಪಿಯರ್ ಮತ್ತು ಮಿಕ್ವೆಲನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNNOMX": "ವಾಯವ್ಯ ಮೆಕ್ಸಿಕೊ ಪ್ರಮಾಣಿತ ಸಮಯ", "EDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ದಿನದ ಸಮಯ", "HNPMX": "ಮೆಕ್ಸಿಕನ್ ಪೆಸಿಫಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "AKDT": "\u200cಅಲಾಸ್ಕಾ ಹಗಲು ಸಮಯ", "SRT": "ಸುರಿನೇಮ್ ಸಮಯ", "ECT": "ಈಕ್ವೆಡಾರ್ ಸಮಯ", "UYT": "ಉರುಗ್ವೇ ಪ್ರಮಾಣಿತ ಸಮಯ", "WIT": "ಪೂರ್ವ ಇಂಡೋನೇಷಿಯಾ ಸಮಯ", "AEST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪೂರ್ವ ಪ್ರಮಾಣಿತ ಸಮಯ", "BOT": "ಬೊಲಿವಿಯಾ ಸಮಯ", "EST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೂರ್ವದ ಪ್ರಮಾಣಿತ ಸಮಯ", "ART": "ಅರ್ಜೆಂಟೀನಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACWDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪಶ್ಚಿಮ ಹಗಲು ಸಮಯ", "HKT": "ಹಾಂಗ್ ಕಾಂಗ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪ್ರಮಾಣಿತ ಸಮಯ", "WAT": "ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "ACWST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಪಶ್ಚಿಮ ಪ್ರಮಾಣಿತ ಸಮಯ", "CHADT": "ಚಥಾಮ್ ಹಗಲು ಸಮಯ", "∅∅∅": "ಅಮೆಜಾನ್ ಬೇಸಿಗೆ ಸಮಯ", "TMT": "ತುರ್ಕ್\u200cಮೇನಿಸ್ತಾನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "OEZ": "ಪೂರ್ವ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "GYT": "ಗಯಾನಾ ಸಮಯ", "HEOG": "ಪಶ್ಚಿಮ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಬೇಸಿಗೆ ಸಮಯ", "LHDT": "ಲಾರ್ಡ್ ಹೋವ್ ಬೆಳಗಿನ ಸಮಯ", "JST": "ಜಪಾನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "AST": "ಅಟ್ಲಾಂಟಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HNOG": "ಪಶ್ಚಿಮ ಗ್ರೀನ್\u200cಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "HEPM": "ಸೇಂಟ್ ಪಿಯರ್ ಮತ್ತು ಮಿಕ್ವೆಲನ್ ಹಗಲು ಸಮಯ", "TMST": "ತುರ್ಕ್\u200cಮೇನಿಸ್ತಾನ್ ಬೇಸಿಗೆ ಸಮಯ", "BT": "ಭೂತಾನ್ ಸಮಯ", "PDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೆಸಿಫಿಕ್ ದಿನದ ಸಮಯ", "HAT": "ನ್ಯೂಫೌಂಡ್\u200cಲ್ಯಾಂಡ್ ದಿನದ ಸಮಯ", "AWDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪಶ್ಚಿಮ ಹಗಲು ಸಮಯ", "JDT": "ಜಪಾನ್ ಹಗಲು ಸಮಯ", "WAST": "ಪಶ್ಚಿಮ ಆಫ್ರಿಕಾ ಬೇಸಿಗೆ ಸಮಯ", "COST": "ಕೊಲಂಬಿಯಾ ಬೇಸಿಗೆ ಸಮಯ", "HENOMX": "ವಾಯವ್ಯ ಮೆಕ್ಸಿಕೊ ಹಗಲು ಸಮಯ", "MST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪರ್ವತ ಪ್ರಮಾಣಿತ ಸಮಯ", "MYT": "ಮಲೇಷಿಯಾ ಸಮಯ", "CST": "ಉತ್ತರ ಅಮೆರಿಕದ ಕೇಂದ್ರ ಪ್ರಮಾಣಿತ ಸಮಯ", "AEDT": "ಪೂರ್ವ ಆಸ್ಟ್ರೇಲಿಯಾದ ಹಗಲು ಸಮಯ", "NZDT": "ನ್ಯೂಜಿಲ್ಯಾಂಡ್ ಹಗಲು ಸಮಯ", "ACDT": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಕೇಂದ್ರ ಹಗಲು ಸಮಯ", "EAT": "ಪೂರ್ವ ಆಫ್ರಿಕಾ ಸಮಯ", "HEPMX": "ಮೆಕ್ಸಿಕನ್ ಪೆಸಿಫಿಕ್ ಹಗಲು ಸಮಯ", "VET": "ವೆನಿಜುವೆಲಾ ಸಮಯ", "LHST": "ಲಾರ್ಡ್ ಹೋವ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "IST": "ಭಾರತೀಯ ಪ್ರಮಾಣಿತ ಸಮಯ", "WARST": "ಪಶ್ಚಿಮ ಅರ್ಜೆಂಟೀನಾ ಬೇಸಿಗೆ ಸಮಯ", "AKST": "ಅಲಸ್ಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "WEZ": "ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "CHAST": "ಚಥಾಮ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "AWST": "ಆಸ್ಟ್ರೇಲಿಯಾದ ಪಶ್ಚಿಮ ಪ್ರಮಾಣಿತ ಸಮಯ", "PST": "ಉತ್ತರ ಅಮೆರಿಕದ ಪೆಸಿಫಿಕ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "NZST": "ನ್ಯೂಜಿಲ್ಯಾಂಡ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "CLT": "ಚಿಲಿ ಪ್ರಮಾಣಿತ ಸಮಯ", "ChST": "ಚಮೋರೋ ಪ್ರಮಾಣಿತ ಸಮಯ", "COT": "ಕೊಲಂಬಿಯಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "MDT": "ಉತ್ತರ ಅಮೆರಿಕದ ಪರ್ವತ ದಿನದ ಸಮಯ", "MEZ": "ಮಧ್ಯ ಯುರೋಪಿಯನ್ ಪ್ರಮಾಣಿತ ಸಮಯ", "GFT": "ಫ್ರೆಂಚ್ ಗಯಾನಾ ಸಮಯ", "HNCU": "ಕ್ಯೂಬಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "WESZ": "ಪಶ್ಚಿಮ ಯುರೋಪಿಯನ್ ಬೇಸಿಗೆ ಸಮಯ", "SAST": "ದಕ್ಷಿಣ ಆಫ್ರಿಕಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "WART": "ಪಶ್ಚಿಮ ಅರ್ಜೆಂಟೀನಾ ಪ್ರಮಾಣಿತ ಸಮಯ", "HECU": "ಕ್ಯೂಬಾ ದಿನದ ಸಮಯ", "WITA": "ಮಧ್ಯ ಇಂಡೋನೇಷಿಯಾ ಸಮಯ"},
++ locale: "kn_IN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNPM": "HNPM", "CHADT": "CHADT", "ChST": "ChST", "ACWST": "ACWST", "AEDT": "AEDT", "SGT": "SGT", "ACDT": "ACDT", "HNEG": "HNEG", "WAT": "WAT", "OESZ": "OESZ", "HNT": "HNT", "WIT": "WIT", "CST": "CST", "ACST": "ACST", "MYT": "MYT", "BT": "BT", "HEPMX": "HEPMX", "WESZ": "WESZ", "GFT": "GFT", "GYT": "GYT", "ADT": "ADT", "JST": "JST", "IST": "IST", "AKST": "AKST", "AKDT": "AKDT", "AST": "AST", "MESZ": "MESZ", "HEPM": "HEPM", "LHST": "LHST", "PDT": "PDT", "HNPMX": "HNPMX", "HNOG": "HNOG", "HKST": "HKST", "CAT": "CAT", "AWDT": "AWDT", "AEST": "AEST", "PST": "PST", "WAST": "WAST", "EDT": "EDT", "MDT": "MDT", "NZST": "NZST", "WART": "WART", "COT": "COT", "TMT": "TMT", "WITA": "WITA", "ARST": "ARST", "JDT": "JDT", "CHAST": "CHAST", "HECU": "HECU", "NZDT": "NZDT", "SRT": "SRT", "HEOG": "HEOG", "CDT": "CDT", "HENOMX": "HENOMX", "HADT": "HADT", "AWST": "AWST", "HNCU": "HNCU", "WARST": "WARST", "SAST": "SAST", "COST": "COST", "EST": "EST", "ECT": "ECT", "WEZ": "WEZ", "OEZ": "OEZ", "ART": "ART", "ACWDT": "ACWDT", "VET": "VET", "MST": "MST", "GMT": "GMT", "HEEG": "HEEG", "UYT": "UYT", "UYST": "UYST", "CLT": "CLT", "CLST": "CLST", "HAST": "HAST", "BOT": "BOT", "MEZ": "MEZ", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "HAT": "HAT", "HKT": "HKT", "TMST": "TMST", "WIB": "WIB", "EAT": "EAT"},
+ }
+ }
+ 
+@@ -132,7 +113,7 @@ func (kn *kn_IN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (kn *kn_IN) MonthsAbbreviated() []string {
+- return kn.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -142,7 +123,7 @@ func (kn *kn_IN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (kn *kn_IN) MonthsNarrow() []string {
+- return kn.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -152,7 +133,7 @@ func (kn *kn_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (kn *kn_IN) MonthsWide() []string {
+- return kn.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -198,73 +179,13 @@ func (kn *kn_IN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'kn_IN' and handles both Whole and Real numbers based on 'v'
+ func (kn *kn_IN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, kn.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, kn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'kn_IN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (kn *kn_IN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kn.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, kn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, kn.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'kn_IN'
+@@ -272,56 +193,7 @@ func (kn *kn_IN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kn.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, kn.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, kn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'kn_IN'
+@@ -330,64 +202,7 @@ func (kn *kn_IN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kn.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, kn.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, kn.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'kn_IN'
+@@ -395,17 +210,6 @@ func (kn *kn_IN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -414,17 +218,6 @@ func (kn *kn_IN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, kn.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,17 +226,6 @@ func (kn *kn_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, kn.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -452,19 +234,6 @@ func (kn *kn_IN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, kn.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, kn.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -473,32 +242,6 @@ func (kn *kn_IN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- if h < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, kn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, kn.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, kn.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -507,39 +250,6 @@ func (kn *kn_IN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- if h < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, kn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, kn.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, kn.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -548,44 +258,6 @@ func (kn *kn_IN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- if h < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, kn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, kn.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, kn.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -594,48 +266,5 @@ func (kn *kn_IN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- if h < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, kn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, kn.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, kn.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := kn.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ko/ko.go b/ko/ko.go
+index ff6969c..f6aa1a0 100644
+--- a/ko/ko.go
++++ b/ko/ko.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"기원전", "서기"},
+- timezones: map[string]string{"HADT": "하와이 알류샨 하계 표준시", "WEZ": "서유럽 표준시", "AWST": "오스트레일리아 서부 표준시", "LHDT": "로드 하우 하계 표준시", "NZDT": "뉴질랜드 하계 표준시", "WART": "아르헨티나 서부 표준시", "WARST": "아르헨티나 서부 하계 표준시", "UYST": "우루과이 하계 표준시", "AEST": "오스트레일리아 동부 표준시", "JST": "일본 표준시", "MYT": "말레이시아 시간", "VET": "베네수엘라 시간", "ARST": "아르헨티나 하계 표준시", "CLST": "칠레 하계 표준시", "HEEG": "그린란드 동부 하계 표준시", "TMT": "투르크메니스탄 표준시", "UYT": "우루과이 표준시", "AWDT": "오스트레일리아 서부 하계 표준시", "MESZ": "중부 유럽 하계 표준시", "BOT": "볼리비아 시간", "EAT": "동아프리카 시간", "WITA": "중부 인도네시아 시간", "IST": "인도 표준시", "HNT": "뉴펀들랜드 표준시", "LHST": "로드 하우 표준시", "CAT": "중앙아프리카 시간", "HECU": "쿠바 하계 표준시", "MST": "마카오 표준 시간", "CLT": "칠레 표준시", "HNEG": "그린란드 동부 표준시", "ChST": "차모로 시간", "∅∅∅": "페루 하계 표준시", "WESZ": "서유럽 하계 표준시", "PDT": "미 태평양 하계 표준시", "HKT": "홍콩 표준시", "ACDT": "오스트레일리아 중부 하계 표준시", "GMT": "그리니치 표준시", "HNOG": "그린란드 서부 표준시", "EDT": "미 동부 하계 표준시", "MEZ": "중부 유럽 표준시", "ACST": "오스트레일리아 중부 표준시", "COST": "콜롬비아 하계 표준시", "HENOMX": "멕시코 북서부 하계 표준시", "OEZ": "동유럽 표준시", "COT": "콜롬비아 표준시", "ART": "아르헨티나 표준시", "PST": "미 태평양 표준시", "SAST": "남아프리카 시간", "ECT": "에콰도르 시간", "HNNOMX": "멕시코 북서부 표준시", "WIT": "동부 인도네시아 시간", "CDT": "미 중부 하계 표준시", "GYT": "가이아나 시간", "GFT": "프랑스령 가이아나 시간", "TMST": "투르크메니스탄 하계 표준시", "MDT": "마카오 하계 표준시", "HNPMX": "멕시코 태평양 표준시", "AKDT": "알래스카 하계 표준시", "CHAST": "채텀 표준시", "JDT": "일본 하계 표준시", "HEPMX": "멕시코 태평양 하계 표준시", "AST": "대서양 표준시", "NZST": "뉴질랜드 표준시", "HKST": "홍콩 하계 표준시", "AEDT": "오스트레일리아 동부 하계 표준시", "HEPM": "세인트피에르 미클롱 하계 표준시", "WAST": "서아프리카 하계 표준시", "ACWST": "오스트레일리아 중서부 표준시", "HAT": "뉴펀들랜드 하계 표준시", "HEOG": "그린란드 서부 하계 표준시", "WAT": "서아프리카 표준시", "HNCU": "쿠바 표준시", "ADT": "미 대서양 하계 표준시", "CST": "미 중부 표준시", "BT": "부탄 시간", "ACWDT": "오스트레일리아 중서부 하계 표준시", "CHADT": "채텀 하계 표준시", "OESZ": "동유럽 하계 표준시", "SGT": "싱가포르 표준시", "AKST": "알래스카 표준시", "SRT": "수리남 시간", "HNPM": "세인트피에르 미클롱 표준시", "EST": "미 동부 표준시", "WIB": "서부 인도네시아 시간", "HAST": "하와이 알류샨 표준시"},
++ timezones: map[string]string{"HAST": "하와이 알류샨 표준시", "PST": "미 태평양 표준시", "GFT": "프랑스령 가이아나 시간", "HAT": "뉴펀들랜드 하계 표준시", "EDT": "미 동부 하계 표준시", "CLT": "칠레 표준시", "NZDT": "뉴질랜드 하계 표준시", "BOT": "볼리비아 시간", "AWDT": "오스트레일리아 서부 하계 표준시", "HEEG": "그린란드 동부 하계 표준시", "LHST": "로드 하우 표준시", "OEZ": "동유럽 표준시", "COST": "콜롬비아 하계 표준시", "AWST": "오스트레일리아 서부 표준시", "WESZ": "서유럽 하계 표준시", "WART": "아르헨티나 서부 표준시", "HNOG": "그린란드 서부 표준시", "ChST": "차모로 시간", "SRT": "수리남 시간", "LHDT": "로드 하우 하계 표준시", "ACWST": "오스트레일리아 중서부 표준시", "OESZ": "동유럽 하계 표준시", "WIB": "서부 인도네시아 시간", "NZST": "뉴질랜드 표준시", "ACST": "오스트레일리아 중부 표준시", "AEDT": "오스트레일리아 동부 하계 표준시", "HECU": "쿠바 하계 표준시", "COT": "콜롬비아 표준시", "ECT": "에콰도르 시간", "HNEG": "그린란드 동부 표준시", "JST": "일본 표준시", "HNT": "뉴펀들랜드 표준시", "WARST": "아르헨티나 서부 하계 표준시", "HEOG": "그린란드 서부 하계 표준시", "EST": "미 동부 표준시", "HKST": "홍콩 하계 표준시", "TMST": "투르크메니스탄 하계 표준시", "AST": "대서양 표준시", "UYST": "우루과이 하계 표준시", "HADT": "하와이 알류샨 하계 표준시", "GYT": "가이아나 시간", "GMT": "그리니치 표준시", "CHADT": "채텀 하계 표준시", "HEPMX": "멕시코 태평양 하계 표준시", "WIT": "동부 인도네시아 시간", "ADT": "미 대서양 하계 표준시", "EAT": "동아프리카 시간", "HNNOMX": "멕시코 북서부 표준시", "HENOMX": "멕시코 북서부 하계 표준시", "HNPM": "세인트피에르 미클롱 표준시", "HNPMX": "멕시코 태평양 표준시", "WEZ": "서유럽 표준시", "SGT": "싱가포르 표준시", "VET": "베네수엘라 시간", "AKDT": "알래스카 하계 표준시", "ART": "아르헨티나 표준시", "ACDT": "오스트레일리아 중부 하계 표준시", "MYT": "말레이시아 시간", "TMT": "투르크메니스탄 표준시", "CST": "미 중부 표준시", "CDT": "미 중부 하계 표준시", "MESZ": "중부 유럽 하계 표준시", "SAST": "남아프리카 시간", "HNCU": "쿠바 표준시", "AKST": "알래스카 표준시", "∅∅∅": "아크레 하계 표준시", "HKT": "홍콩 표준시", "CAT": "중앙아프리카 시간", "CLST": "칠레 하계 표준시", "BT": "부탄 시간", "PDT": "미 태평양 하계 표준시", "MEZ": "중부 유럽 표준시", "HEPM": "세인트피에르 미클롱 하계 표준시", "IST": "인도 표준시", "WAT": "서아프리카 표준시", "WAST": "서아프리카 하계 표준시", "MST": "마카오 표준 시간", "ARST": "아르헨티나 하계 표준시", "JDT": "일본 하계 표준시", "CHAST": "채텀 표준시", "UYT": "우루과이 표준시", "ACWDT": "오스트레일리아 중서부 하계 표준시", "WITA": "중부 인도네시아 시간", "MDT": "마카오 하계 표준시", "AEST": "오스트레일리아 동부 표준시"},
+ }
+ }
+ 
+diff --git a/ko_KP/ko_KP.go b/ko_KP/ko_KP.go
+index ca00900..37afaac 100644
+--- a/ko_KP/ko_KP.go
++++ b/ko_KP/ko_KP.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ko_KP struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ko_KP' locale
+ func New() locales.Translator {
+ return &ko_KP{
+- locale: "ko_KP",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"},
+- monthsNarrow: []string{"", "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"},
+- monthsWide: []string{"", "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"},
+- daysAbbreviated: []string{"일", "월", "화", "수", "목", "금", "토"},
+- daysNarrow: []string{"일", "월", "화", "수", "목", "금", "토"},
+- daysShort: []string{"일", "월", "화", "수", "목", "금", "토"},
+- daysWide: []string{"일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"오전", "오후"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"기원전", "서기"},
+- timezones: map[string]string{"AKST": "알래스카 표준시", "MYT": "말레이시아 시간", "GFT": "프랑스령 가이아나 시간", "ChST": "차모로 시간", "GMT": "그리니치 표준시", "EAT": "동아프리카 시간", "HKST": "홍콩 하계 표준시", "ART": "아르헨티나 표준시", "HNOG": "그린란드 서부 표준시", "AWDT": "오스트레일리아 서부 하계 표준시", "IST": "인도 표준시", "HEEG": "그린란드 동부 하계 표준시", "TMT": "투르크메니스탄 표준시", "ACDT": "오스트레일리아 중부 하계 표준시", "HAST": "하와이 알류샨 표준시", "MEZ": "중부 유럽 표준시", "SAST": "남아프리카 시간", "WAT": "서아프리카 표준시", "AST": "대서양 표준시", "ACWST": "오스트레일리아 중서부 표준시", "NZST": "뉴질랜드 표준시", "UYST": "우루과이 하계 표준시", "WESZ": "서유럽 하계 표준시", "HAT": "뉴펀들랜드 하계 표준시", "TMST": "투르크메니스탄 하계 표준시", "CAT": "중앙아프리카 시간", "HENOMX": "멕시코 북서부 하계 표준시", "CDT": "미 중부 하계 표준시", "OEZ": "동유럽 표준시", "∅∅∅": "페루 하계 표준시", "AEST": "오스트레일리아 동부 표준시", "SRT": "수리남 시간", "AEDT": "오스트레일리아 동부 하계 표준시", "HEPM": "세인트피에르 미클롱 하계 표준시", "CHADT": "채텀 하계 표준시", "JDT": "일본 하계 표준시", "WART": "아르헨티나 서부 표준시", "HECU": "쿠바 하계 표준시", "WIT": "동부 인도네시아 시간", "HADT": "하와이 알류샨 하계 표준시", "LHDT": "로드 하우 하계 표준시", "CHAST": "채텀 표준시", "CLST": "칠레 하계 표준시", "BOT": "볼리비아 시간", "SGT": "싱가포르 표준시", "MST": "마카오 표준 시간", "WIB": "서부 인도네시아 시간", "PST": "미 태평양 표준시", "CLT": "칠레 표준시", "HNPMX": "멕시코 태평양 표준시", "EST": "미 동부 표준시", "UYT": "우루과이 표준시", "ARST": "아르헨티나 하계 표준시", "WEZ": "서유럽 표준시", "ACWDT": "오스트레일리아 중서부 하계 표준시", "WITA": "중부 인도네시아 시간", "LHST": "로드 하우 표준시", "WAST": "서아프리카 하계 표준시", "MDT": "마카오 하계 표준시", "EDT": "미 동부 하계 표준시", "BT": "부탄 시간", "NZDT": "뉴질랜드 하계 표준시", "MESZ": "중부 유럽 하계 표준시", "JST": "일본 표준시", "AWST": "오스트레일리아 서부 표준시", "HNEG": "그린란드 동부 표준시", "ACST": "오스트레일리아 중부 표준시", "HNNOMX": "멕시코 북서부 표준시", "AKDT": "알래스카 하계 표준시", "HNT": "뉴펀들랜드 표준시", "PDT": "미 태평양 하계 표준시", "HNPM": "세인트피에르 미클롱 표준시", "WARST": "아르헨티나 서부 하계 표준시", "HEPMX": "멕시코 태평양 하계 표준시", "CST": "미 중부 표준시", "ADT": "미 대서양 하계 표준시", "HEOG": "그린란드 서부 하계 표준시", "OESZ": "동유럽 하계 표준시", "ECT": "에콰도르 시간", "COST": "콜롬비아 하계 표준시", "GYT": "가이아나 시간", "COT": "콜롬비아 표준시", "HNCU": "쿠바 표준시", "VET": "베네수엘라 시간", "HKT": "홍콩 표준시"},
++ locale: "ko_KP",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEOG": "HEOG", "GYT": "GYT", "CLT": "CLT", "JST": "JST", "WARST": "WARST", "COT": "COT", "NZST": "NZST", "CST": "CST", "AST": "AST", "GMT": "GMT", "JDT": "JDT", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "HKST": "HKST", "ACDT": "ACDT", "ACWST": "ACWST", "CHADT": "CHADT", "WAT": "WAT", "COST": "COST", "AKST": "AKST", "WIT": "WIT", "TMST": "TMST", "CAT": "CAT", "AEST": "AEST", "VET": "VET", "HNPMX": "HNPMX", "ARST": "ARST", "BOT": "BOT", "HEEG": "HEEG", "LHST": "LHST", "WEZ": "WEZ", "SGT": "SGT", "EAT": "EAT", "HEPM": "HEPM", "HNCU": "HNCU", "ART": "ART", "AWST": "AWST", "ACST": "ACST", "UYT": "UYT", "AKDT": "AKDT", "EST": "EST", "HECU": "HECU", "HADT": "HADT", "MESZ": "MESZ", "MYT": "MYT", "IST": "IST", "EDT": "EDT", "ADT": "ADT", "OESZ": "OESZ", "MST": "MST", "ChST": "ChST", "MEZ": "MEZ", "HNPM": "HNPM", "ACWDT": "ACWDT", "WESZ": "WESZ", "WAST": "WAST", "UYST": "UYST", "WITA": "WITA", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "AEDT": "AEDT", "PDT": "PDT", "HEPMX": "HEPMX", "HKT": "HKT", "HENOMX": "HENOMX", "CLST": "CLST", "MDT": "MDT", "HNOG": "HNOG", "SAST": "SAST", "TMT": "TMT", "ECT": "ECT", "WIB": "WIB", "CDT": "CDT", "HNT": "HNT", "WART": "WART", "HNEG": "HNEG", "PST": "PST", "HAST": "HAST", "BT": "BT", "GFT": "GFT", "HAT": "HAT", "AWDT": "AWDT", "CHAST": "CHAST", "NZDT": "NZDT", "SRT": "SRT"},
+ }
+ }
+ 
+@@ -117,7 +94,7 @@ func (ko *ko_KP) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ko *ko_KP) MonthsAbbreviated() []string {
+- return ko.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -127,7 +104,7 @@ func (ko *ko_KP) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ko *ko_KP) MonthsNarrow() []string {
+- return ko.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -137,7 +114,7 @@ func (ko *ko_KP) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ko *ko_KP) MonthsWide() []string {
+- return ko.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -183,73 +160,13 @@ func (ko *ko_KP) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ko_KP' and handles both Whole and Real numbers based on 'v'
+ func (ko *ko_KP) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ko.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ko.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ko.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ko_KP' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ko *ko_KP) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ko.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ko.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ko.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ko_KP'
+@@ -257,56 +174,7 @@ func (ko *ko_KP) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ko.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ko.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ko.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ko.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ko.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ko_KP'
+@@ -315,68 +183,7 @@ func (ko *ko_KP) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ko.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ko.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ko.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ko.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ko.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ko.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ko_KP'
+@@ -384,18 +191,6 @@ func (ko *ko_KP) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -404,18 +199,6 @@ func (ko *ko_KP) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -424,18 +207,6 @@ func (ko *ko_KP) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xeb, 0x85, 0x84, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xec, 0x9b, 0x94, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xec, 0x9d, 0xbc}...)
+-
+ return string(b)
+ }
+ 
+@@ -444,19 +215,6 @@ func (ko *ko_KP) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xeb, 0x85, 0x84, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xec, 0x9b, 0x94, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xec, 0x9d, 0xbc, 0x20}...)
+- b = append(b, ko.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -465,29 +223,6 @@ func (ko *ko_KP) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ko.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ko.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ko.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -496,36 +231,6 @@ func (ko *ko_KP) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ko.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ko.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ko.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ko.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -534,30 +239,6 @@ func (ko *ko_KP) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ko.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ko.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, []byte{0xec, 0x8b, 0x9c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0xeb, 0xb6, 0x84, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0xec, 0xb4, 0x88, 0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -566,34 +247,5 @@ func (ko *ko_KP) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ko.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ko.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, []byte{0xec, 0x8b, 0x9c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0xeb, 0xb6, 0x84, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0xec, 0xb4, 0x88, 0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ko.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ko_KR/ko_KR.go b/ko_KR/ko_KR.go
+index 124b0ea..96f1491 100644
+--- a/ko_KR/ko_KR.go
++++ b/ko_KR/ko_KR.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ko_KR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ko_KR' locale
+ func New() locales.Translator {
+ return &ko_KR{
+- locale: "ko_KR",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"},
+- monthsNarrow: []string{"", "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"},
+- monthsWide: []string{"", "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"},
+- daysAbbreviated: []string{"일", "월", "화", "수", "목", "금", "토"},
+- daysNarrow: []string{"일", "월", "화", "수", "목", "금", "토"},
+- daysShort: []string{"일", "월", "화", "수", "목", "금", "토"},
+- daysWide: []string{"일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"오전", "오후"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"기원전", "서기"},
+- timezones: map[string]string{"MDT": "미 산지 하계 표준시", "BT": "부탄 시간", "CLST": "칠레 하계 표준시", "AKDT": "알래스카 하계 표준시", "ART": "아르헨티나 표준시", "HNPM": "세인트피에르 미클롱 표준시", "CHADT": "채텀 하계 표준시", "HNEG": "그린란드 동부 표준시", "SGT": "싱가포르 표준시", "HNT": "뉴펀들랜드 표준시", "HAT": "뉴펀들랜드 하계 표준시", "ChST": "차모로 시간", "WAST": "서아프리카 하계 표준시", "OESZ": "동유럽 하계 표준시", "WART": "아르헨티나 서부 표준시", "COT": "콜롬비아 표준시", "MST": "미 산악 표준시", "MEZ": "중부 유럽 표준시", "BOT": "볼리비아 시간", "HADT": "하와이 알류샨 하계 표준시", "PST": "미 태평양 표준시", "OEZ": "동유럽 표준시", "CDT": "미 중부 하계 표준시", "EDT": "미 동부 하계 표준시", "HEPMX": "멕시코 태평양 하계 표준시", "AKST": "알래스카 표준시", "HECU": "쿠바 하계 표준시", "WIB": "서부 인도네시아 시간", "WEZ": "서유럽 표준시", "ACWDT": "오스트레일리아 중서부 하계 표준시", "AEDT": "오스트레일리아 동부 하계 표준시", "HEEG": "그린란드 동부 하계 표준시", "GFT": "프랑스령 가이아나 시간", "ACST": "오스트레일리아 중부 표준시", "WIT": "동부 인도네시아 시간", "SAST": "남아프리카 시간", "IST": "인도 표준시", "ACDT": "오스트레일리아 중부 하계 표준시", "WARST": "아르헨티나 서부 하계 표준시", "ADT": "미 대서양 하계 표준시", "HAST": "하와이 알류샨 표준시", "ACWST": "오스트레일리아 중서부 표준시", "MESZ": "중부 유럽 하계 표준시", "NZST": "뉴질랜드 표준시", "TMT": "투르크메니스탄 표준시", "EST": "미 동부 표준시", "HNPMX": "멕시코 태평양 표준시", "UYT": "우루과이 표준시", "HNOG": "그린란드 서부 표준시", "WESZ": "서유럽 하계 표준시", "AWST": "오스트레일리아 서부 표준시", "HKT": "홍콩 표준시", "JST": "일본 표준시", "∅∅∅": "아마존 하계 표준시", "CAT": "중앙아프리카 시간", "ARST": "아르헨티나 하계 표준시", "HEPM": "세인트피에르 미클롱 하계 표준시", "NZDT": "뉴질랜드 하계 표준시", "WAT": "서아프리카 표준시", "UYST": "우루과이 하계 표준시", "VET": "베네수엘라 시간", "PDT": "미 태평양 하계 표준시", "AEST": "오스트레일리아 동부 표준시", "AWDT": "오스트레일리아 서부 하계 표준시", "COST": "콜롬비아 하계 표준시", "GYT": "가이아나 시간", "WITA": "중부 인도네시아 시간", "LHST": "로드 하우 표준시", "CLT": "칠레 표준시", "AST": "대서양 표준시", "SRT": "수리남 시간", "TMST": "투르크메니스탄 하계 표준시", "ECT": "에콰도르 시간", "EAT": "동아프리카 시간", "HNNOMX": "멕시코 북서부 표준시", "HEOG": "그린란드 서부 하계 표준시", "LHDT": "로드 하우 하계 표준시", "JDT": "일본 하계 표준시", "HENOMX": "멕시코 북서부 하계 표준시", "CST": "미 중부 표준시", "HKST": "홍콩 하계 표준시", "CHAST": "채텀 표준시", "GMT": "그리니치 표준시", "HNCU": "쿠바 표준시", "MYT": "말레이시아 시간"},
++ locale: "ko_KR",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"NZST": "NZST", "GMT": "GMT", "AEST": "AEST", "BT": "BT", "ECT": "ECT", "OEZ": "OEZ", "TMT": "TMT", "SRT": "SRT", "HNPMX": "HNPMX", "BOT": "BOT", "EAT": "EAT", "HADT": "HADT", "LHST": "LHST", "HNCU": "HNCU", "WESZ": "WESZ", "SGT": "SGT", "WARST": "WARST", "CLST": "CLST", "HNEG": "HNEG", "AWST": "AWST", "LHDT": "LHDT", "WART": "WART", "WIT": "WIT", "GYT": "GYT", "ChST": "ChST", "WITA": "WITA", "ADT": "ADT", "AWDT": "AWDT", "ACWDT": "ACWDT", "VET": "VET", "EDT": "EDT", "HKT": "HKT", "∅∅∅": "∅∅∅", "TMST": "TMST", "HNPM": "HNPM", "ACWST": "ACWST", "CHAST": "CHAST", "AKDT": "AKDT", "ACDT": "ACDT", "OESZ": "OESZ", "HNT": "HNT", "MYT": "MYT", "HNNOMX": "HNNOMX", "JDT": "JDT", "PDT": "PDT", "WEZ": "WEZ", "HNOG": "HNOG", "COT": "COT", "MST": "MST", "ART": "ART", "HAST": "HAST", "MESZ": "MESZ", "HEEG": "HEEG", "CHADT": "CHADT", "GFT": "GFT", "HAT": "HAT", "WIB": "WIB", "HKST": "HKST", "HEOG": "HEOG", "NZDT": "NZDT", "ARST": "ARST", "UYT": "UYT", "CDT": "CDT", "AST": "AST", "HENOMX": "HENOMX", "MDT": "MDT", "HEPM": "HEPM", "JST": "JST", "IST": "IST", "WAT": "WAT", "AKST": "AKST", "CAT": "CAT", "ACST": "ACST", "PST": "PST", "HECU": "HECU", "SAST": "SAST", "MEZ": "MEZ", "HEPMX": "HEPMX", "EST": "EST", "CST": "CST", "AEDT": "AEDT", "UYST": "UYST", "WAST": "WAST", "COST": "COST", "CLT": "CLT"},
+ }
+ }
+ 
+@@ -117,7 +94,7 @@ func (ko *ko_KR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ko *ko_KR) MonthsAbbreviated() []string {
+- return ko.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -127,7 +104,7 @@ func (ko *ko_KR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ko *ko_KR) MonthsNarrow() []string {
+- return ko.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -137,7 +114,7 @@ func (ko *ko_KR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ko *ko_KR) MonthsWide() []string {
+- return ko.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -183,73 +160,13 @@ func (ko *ko_KR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ko_KR' and handles both Whole and Real numbers based on 'v'
+ func (ko *ko_KR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ko.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ko.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ko.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ko_KR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ko *ko_KR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ko.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ko.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ko.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ko_KR'
+@@ -257,56 +174,7 @@ func (ko *ko_KR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ko.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ko.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ko.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ko.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ko.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ko_KR'
+@@ -315,68 +183,7 @@ func (ko *ko_KR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ko.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ko.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ko.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ko.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ko.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ko.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ko_KR'
+@@ -384,18 +191,6 @@ func (ko *ko_KR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -404,18 +199,6 @@ func (ko *ko_KR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -424,18 +207,6 @@ func (ko *ko_KR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xeb, 0x85, 0x84, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xec, 0x9b, 0x94, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xec, 0x9d, 0xbc}...)
+-
+ return string(b)
+ }
+ 
+@@ -444,19 +215,6 @@ func (ko *ko_KR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xeb, 0x85, 0x84, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xec, 0x9b, 0x94, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xec, 0x9d, 0xbc, 0x20}...)
+- b = append(b, ko.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -465,29 +223,6 @@ func (ko *ko_KR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ko.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ko.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ko.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -496,36 +231,6 @@ func (ko *ko_KR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ko.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ko.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ko.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ko.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -534,30 +239,6 @@ func (ko *ko_KR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ko.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ko.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, []byte{0xec, 0x8b, 0x9c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0xeb, 0xb6, 0x84, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0xec, 0xb4, 0x88, 0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -566,34 +247,5 @@ func (ko *ko_KR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ko.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ko.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, []byte{0xec, 0x8b, 0x9c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0xeb, 0xb6, 0x84, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0xec, 0xb4, 0x88, 0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ko.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/kok/kok.go b/kok/kok.go
+index b0ee603..d45904d 100644
+--- a/kok/kok.go
++++ b/kok/kok.go
+@@ -60,7 +60,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"क्रिस्तपूर्व", "क्रिस्तशखा"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"ACWST": "ACWST", "GFT": "GFT", "MDT": "MDT", "HNPMX": "HNPMX", "AST": "AST", "MYT": "MYT", "WIT": "WIT", "BT": "BT", "HAST": "HAST", "HKT": "HKT", "MEZ": "MEZ", "CHAST": "CHAST", "OESZ": "OESZ", "HNCU": "HNCU", "SRT": "SRT", "ACWDT": "ACWDT", "ARST": "ARST", "AWST": "AWST", "WITA": "WITA", "SGT": "SGT", "AKST": "AKST", "HADT": "HADT", "HNT": "HNT", "HEPM": "HEPM", "LHST": "LHST", "CHADT": "CHADT", "BOT": "BOT", "GMT": "GMT", "ADT": "ADT", "HAT": "HAT", "ECT": "ECT", "UYT": "UYT", "WIB": "WIB", "HNOG": "HNOG", "CST": "CST", "WESZ": "WESZ", "CLT": "CLT", "CLST": "CLST", "OEZ": "OEZ", "CAT": "CAT", "NZDT": "NZDT", "SAST": "SAST", "∅∅∅": "∅∅∅", "EAT": "EAT", "COT": "COT", "EST": "EST", "AEST": "AEST", "JST": "JST", "COST": "COST", "UYST": "UYST", "WEZ": "WEZ", "HEEG": "HEEG", "TMST": "TMST", "WARST": "WARST", "MESZ": "MESZ", "WART": "WART", "HEPMX": "HEPMX", "VET": "VET", "AWDT": "AWDT", "GYT": "GYT", "ART": "ART", "HNPM": "HNPM", "NZST": "NZST", "HNEG": "HNEG", "ACDT": "ACDT", "WAT": "WAT", "CDT": "CDT", "PST": "PST", "HECU": "HECU", "MST": "MST", "AKDT": "AKDT", "HEOG": "HEOG", "EDT": "EDT", "PDT": "PDT", "LHDT": "LHDT", "IST": "भारतीय समय", "JDT": "JDT", "WAST": "WAST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AEDT": "AEDT", "TMT": "TMT", "ChST": "ChST", "ACST": "ACST", "HKST": "HKST"},
++ timezones: map[string]string{"∅∅∅": "∅∅∅", "WAT": "WAT", "WIT": "WIT", "AST": "AST", "ARST": "ARST", "MYT": "MYT", "GFT": "GFT", "ECT": "ECT", "GMT": "GMT", "JST": "JST", "AEST": "AEST", "HKT": "HKT", "HKST": "HKST", "WESZ": "WESZ", "HNCU": "HNCU", "HECU": "HECU", "HAT": "HAT", "CAT": "CAT", "CHADT": "CHADT", "BT": "BT", "WAST": "WAST", "CLST": "CLST", "LHST": "LHST", "LHDT": "LHDT", "PDT": "PDT", "HNPM": "HNPM", "AEDT": "AEDT", "ART": "ART", "MESZ": "MESZ", "HNEG": "HNEG", "GYT": "GYT", "CST": "CST", "MST": "MST", "ACDT": "ACDT", "ACWDT": "ACWDT", "EDT": "EDT", "WITA": "WITA", "ChST": "ChST", "BOT": "BOT", "SRT": "SRT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HEPM": "HEPM", "HAST": "HAST", "JDT": "JDT", "UYT": "UYT", "UYST": "UYST", "HEPMX": "HEPMX", "ADT": "ADT", "MDT": "MDT", "EAT": "EAT", "COT": "COT", "TMT": "TMT", "PST": "PST", "VET": "VET", "COST": "COST", "WART": "WART", "CLT": "CLT", "MEZ": "MEZ", "ACWST": "ACWST", "AKDT": "AKDT", "HNOG": "HNOG", "TMST": "TMST", "WEZ": "WEZ", "SGT": "SGT", "OESZ": "OESZ", "WARST": "WARST", "CDT": "CDT", "NZST": "NZST", "WIB": "WIB", "ACST": "ACST", "AWST": "AWST", "IST": "भारतीय समय", "OEZ": "OEZ", "HNT": "HNT", "SAST": "SAST", "HEOG": "HEOG", "NZDT": "NZDT", "HADT": "HADT", "CHAST": "CHAST", "HNPMX": "HNPMX", "EST": "EST", "HEEG": "HEEG", "AWDT": "AWDT", "AKST": "AKST"},
+ }
+ }
+ 
+diff --git a/kok_IN/kok_IN.go b/kok_IN/kok_IN.go
+index 98f6ba4..a60ed11 100644
+--- a/kok_IN/kok_IN.go
++++ b/kok_IN/kok_IN.go
+@@ -10,57 +10,45 @@ import (
+ )
+ 
+ type kok_IN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'kok_IN' locale
+ func New() locales.Translator {
+ return &kok_IN{
+- locale: "kok_IN",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsWide: []string{"", "जानेवारी", "फेब्रुवारी", "मार्च", "एप्रिल", "मे", "जून", "जुलै", "ओगस्ट", "सेप्टेंबर", "ओक्टोबर", "नोव्हेंबर", "डिसेंबर"},
+- daysAbbreviated: []string{"रवि", "सोम", "मंगळ", "बुध", "गुरु", "शुक्र", "शनि"},
+- daysWide: []string{"आदित्यवार", "सोमवार", "मंगळार", "बुधवार", "गुरुवार", "शुक्रवार", "शनिवार"},
+- periodsAbbreviated: []string{"म.पू.", "म.नं."},
+- periodsWide: []string{"म.पू.", "म.नं."},
+- erasAbbreviated: []string{"क्रिस्तपूर्व", "क्रिस्तशखा"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"HEPMX": "HEPMX", "AKST": "AKST", "IST": "भारतीय समय", "EDT": "EDT", "WEZ": "WEZ", "MEZ": "MEZ", "CHAST": "CHAST", "JDT": "JDT", "ACST": "ACST", "CST": "CST", "MDT": "MDT", "BT": "BT", "HECU": "HECU", "TMT": "TMT", "HENOMX": "HENOMX", "HNPM": "HNPM", "CLST": "CLST", "∅∅∅": "∅∅∅", "WAT": "WAT", "COT": "COT", "WIT": "WIT", "HKT": "HKT", "SAST": "SAST", "ACWDT": "ACWDT", "WITA": "WITA", "WART": "WART", "WARST": "WARST", "UYST": "UYST", "HAST": "HAST", "WESZ": "WESZ", "HEEG": "HEEG", "MESZ": "MESZ", "CHADT": "CHADT", "TMST": "TMST", "COST": "COST", "SGT": "SGT", "HNCU": "HNCU", "HEOG": "HEOG", "ACWST": "ACWST", "AWDT": "AWDT", "NZST": "NZST", "NZDT": "NZDT", "CLT": "CLT", "EAT": "EAT", "GMT": "GMT", "HNT": "HNT", "ARST": "ARST", "LHST": "LHST", "LHDT": "LHDT", "OEZ": "OEZ", "EST": "EST", "ADT": "ADT", "WIB": "WIB", "ART": "ART", "HNPMX": "HNPMX", "HADT": "HADT", "HEPM": "HEPM", "OESZ": "OESZ", "AEDT": "AEDT", "WAST": "WAST", "AKDT": "AKDT", "VET": "VET", "HNOG": "HNOG", "PST": "PST", "HAT": "HAT", "AWST": "AWST", "JST": "JST", "HNEG": "HNEG", "UYT": "UYT", "CDT": "CDT", "AST": "AST", "GFT": "GFT", "ACDT": "ACDT", "BOT": "BOT", "GYT": "GYT", "PDT": "PDT", "AEST": "AEST", "ChST": "ChST", "ECT": "ECT", "MYT": "MYT", "MST": "MST", "HKST": "HKST", "SRT": "SRT", "CAT": "CAT", "HNNOMX": "HNNOMX"},
++ locale: "kok_IN",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HENOMX": "HENOMX", "JDT": "JDT", "PDT": "PDT", "CDT": "CDT", "BOT": "BOT", "HADT": "HADT", "HEEG": "HEEG", "HNPM": "HNPM", "WEZ": "WEZ", "HNPMX": "HNPMX", "EDT": "EDT", "NZST": "NZST", "MYT": "MYT", "OESZ": "OESZ", "GFT": "GFT", "WART": "WART", "WITA": "WITA", "WIB": "WIB", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "WAT": "WAT", "WAST": "WAST", "SAST": "SAST", "TMT": "TMT", "MDT": "MDT", "LHDT": "LHDT", "UYST": "UYST", "AKST": "AKST", "AKDT": "AKDT", "CST": "CST", "MEZ": "MEZ", "BT": "BT", "AEDT": "AEDT", "HEOG": "HEOG", "CLST": "CLST", "EAT": "EAT", "HAST": "HAST", "COT": "COT", "CAT": "CAT", "COST": "COST", "JST": "JST", "AEST": "AEST", "CHADT": "CHADT", "UYT": "UYT", "WESZ": "WESZ", "WARST": "WARST", "GYT": "GYT", "HKT": "HKT", "ARST": "ARST", "SRT": "SRT", "∅∅∅": "∅∅∅", "HECU": "HECU", "HNT": "HNT", "CLT": "CLT", "ACST": "ACST", "PST": "PST", "CHAST": "CHAST", "OEZ": "OEZ", "AWDT": "AWDT", "ACWDT": "ACWDT", "HNOG": "HNOG", "EST": "EST", "LHST": "LHST", "IST": "IST", "ECT": "ECT", "AST": "AST", "ADT": "ADT", "MESZ": "MESZ", "HNCU": "HNCU", "WIT": "WIT", "MST": "MST", "SGT": "SGT", "HEPMX": "HEPMX", "HAT": "HAT", "TMST": "TMST", "NZDT": "NZDT", "GMT": "GMT", "ChST": "ChST", "ACDT": "ACDT", "AWST": "AWST", "HEPM": "HEPM", "ACWST": "ACWST", "VET": "VET", "HKST": "HKST", "ART": "ART"},
+ }
+ }
+ 
+@@ -126,7 +114,7 @@ func (kok *kok_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (kok *kok_IN) MonthsWide() []string {
+- return kok.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -172,82 +160,13 @@ func (kok *kok_IN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'kok_IN' and handles both Whole and Real numbers based on 'v'
+ func (kok *kok_IN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kok.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, kok.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, kok.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'kok_IN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (kok *kok_IN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kok.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, kok.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, kok.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'kok_IN'
+@@ -255,69 +174,7 @@ func (kok *kok_IN) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kok.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kok.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, kok.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(kok.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, kok.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, kok.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kok.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'kok_IN'
+@@ -326,81 +183,7 @@ func (kok *kok_IN) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kok.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kok.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, kok.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(kok.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, kok.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, kok.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(kok.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, kok.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kok.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'kok_IN'
+@@ -408,17 +191,6 @@ func (kok *kok_IN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -427,27 +199,6 @@ func (kok *kok_IN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -456,17 +207,6 @@ func (kok *kok_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kok.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,19 +215,6 @@ func (kok *kok_IN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, kok.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kok.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -496,28 +223,6 @@ func (kok *kok_IN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, kok.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, kok.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, kok.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -526,35 +231,6 @@ func (kok *kok_IN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, kok.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kok.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, kok.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, kok.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -563,40 +239,6 @@ func (kok *kok_IN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, kok.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kok.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, kok.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, kok.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -605,44 +247,5 @@ func (kok *kok_IN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, kok.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kok.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, kok.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, kok.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := kok.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ks/ks.go b/ks/ks.go
+index b3b4ea6..21fd4b4 100644
+--- a/ks/ks.go
++++ b/ks/ks.go
+@@ -66,7 +66,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"بی سی", "اے ڈی"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"قبٕل مسیٖح", "عیٖسوی سنہٕ"},
+- timezones: map[string]string{"HECU": "کیوٗبا ڈےلایِٔٹ ٹایِم", "MST": "مَکَعوٗ سٹینڑاڑ ٹایِم", "HNPMX": "HNPMX", "AST": "اٮ۪ٹلانٹِک سٹینڑاڑ ٹایِم", "HEEG": "مشرِقی گریٖن لینڑُک سَمَر ٹایِم", "WAST": "مغربی افریٖقا سَمَر ٹایِم", "COT": "کولومبِیا سٹینڑاڑ ٹایِم", "HENOMX": "HENOMX", "MYT": "مَلیشِیا ٹایِم", "UYT": "یوٗرٮ۪گوَے سٹینڑاڑ ٹایِم", "ART": "ارجٮ۪نٹیٖنا سٹینڑاڑ ٹایِم", "HKT": "حانگ کانٛگ سٹینڑاڑ ٹایِم", "IST": "ہِنٛدوستان", "WAT": "مغربی افریٖقا سٹینڑاڑ ٹایِم", "HEPMX": "HEPMX", "NZST": "نِوزِلینڑ سٹینڑاڑ ٹایِم", "CLT": "چِلی سٹینڑاڑ ٹایِم", "ChST": "کٮ۪مورو سٹینڑاڑ ٹایِم", "COST": "کولومبِیا سَمَر ٹایِم", "ADT": "اٮ۪ٹلانٹِک ڈےلایِٔٹ ٹایِم", "SRT": "سُرِنام ٹایِم", "AWDT": "آسٹریلِیَن مغرِبیٖ ڈےلایٔٹ ٹایِم", "TMST": "تُرکمٮ۪نِستان سَمَر ٹایِم", "OEZ": "مشرقی یوٗرپی سٹینڑاڑ ٹایِم", "UYST": "یوٗرٮ۪گوَے سَمَر ٹایِم", "WESZ": "مغرِبی یوٗرِپی سَمَر ٹایِم", "ACST": "آسٹریلِیَن مرکزی سٹینڑاڑ ٹایِم", "EAT": "مشرقی افریٖقا ٹایِم", "AKST": "اٮ۪لاسکا سٹینڑاڑ ٹایِم", "JDT": "جاپٲنۍ ڑےلایِٔٹ ٹایِم", "HNEG": "مشرِقی گریٖن لینڑُک سٹینڑاڑ ٹایِم", "SGT": "سِنٛگاپوٗر ٹایِم", "BT": "بوٗٹان ٹایِم", "HEPM": "سینٛٹ پَیری مِقیوٗلَن ڑےلایِٔٹ ٹایِم", "LHDT": "لعاڑ ڑےلایٔٹ ٹایِم", "MESZ": "مرکزی یوٗرپی سَمَر ٹایِم", "WIT": "مشرِقی اِنڑونیشِیا ٹایِم", "ACWST": "آسٹریلِیَن مرکزی مغربی سٹینڑاڑ ٹایِم", "HNT": "نیوٗ فاونڑلینڑ سٹینڑاڑ ٹایِم", "∅∅∅": "اٮ۪مَزَن سَمَر ٹایِم", "WARST": "مغربی ارجٮ۪نٹیٖنا سَمَر ٹایِم", "PST": "پیسِفِک سٹینڑاڑ ٹایِم", "PDT": "پیسِفِک ڈےلایِٔٹ ٹایِم", "CAT": "مرکزی افریٖقا ٹایِم", "OESZ": "مشرقی یوٗرپی سَمَر ٹایِم", "HADT": "حَواے اٮ۪لیوٗٹِیَن سَمَر ٹایِم", "HEOG": "مغرِبی گریٖن لینڑُک سَمَر ٹایِم", "HKST": "حانٛگ کانٛگ سَمَر ٹایِم", "AEDT": "آسٹریلِیَن مشرقی ڈےلایِٔٹ ٹایِم", "JST": "جاپٲنۍ سٹینڑاڑ ٹایِم", "ARST": "ارجٮ۪نٹیٖنا سَمَر ٹایِم", "HNNOMX": "HNNOMX", "MDT": "مَکَعوٗ سَمَر ٹایِم", "GYT": "گُیَنا ٹایِم", "EST": "مشرقی سٹینڑاڑ ٹایِم", "CDT": "مرکزی ڈےلایِٔٹ ٹایِم", "HNOG": "مغرِبی گریٖن لینڑُک سٹینڑاڑ ٹایِم", "SAST": "جنوٗبی افریقا ٹایِم", "ACDT": "آسٹریلِیَن مرکزی ڈےلایِٔٹ ٹایِم", "HNCU": "کیوٗبا سٹینڑاڑ ٹایِم", "HAST": "حَواے اٮ۪لیوٗٹِیَن سٹینڑاڑ ٹایِم", "ACWDT": "آسٹریلِیَن مرکزی مغربی ڈےلایِٔٹ ٹایِم", "HNPM": "سینٛٹ پَیری مِقیوٗلَن سٹینڑاڑ ٹایِم", "MEZ": "مرکزی یوٗرپی سٹینڑاڑ ٹایِم", "VET": "وٮ۪نٮ۪زیوٗلا ٹایِم", "NZDT": "نِوزِلینڑ ڑےلایٔٹ ٹایِم", "AKDT": "اٮ۪لاسکا ڈےلایِٔٹ ٹایِم", "WART": "مغربی ارجٮ۪نٹیٖنا سٹینڑاڑ ٹایِم", "EDT": "مشرقی ڈےلایِٔٹ ٹایِم", "AWST": "آسٹریلِیَن مغرِبی سٹینڑاڑ ٹایِم", "GFT": "فرٛٮ۪نٛچ گیوٗٮ۪نا ٹایِم", "TMT": "تُرکمٮ۪نِستان سٹینڑاڑ ٹایِم", "ECT": "اِکویڑَر ٹایِم", "CLST": "چِلی سَمَر ٹایِم", "GMT": "گرٛیٖن وِچ میٖن ٹایِم", "CST": "مرکزی سٹینڑاڑ ٹایِم", "WIB": "مغرِبی اِنڑونیشِیا ٹایِم", "WITA": "مرکزی اِنڑونیشِیا ٹایِم", "AEST": "آسٹریلِیَن مشرقی سٹینڑاڑ ٹایِم", "LHST": "لعاڑ حووے سٹینڑاڑ ٹایِم", "CHAST": "کٮ۪تھَم سٹینڑاڑ ٹایِم", "WEZ": "مغرِبی یوٗرپی سٹینڑاڑ ٹایِم", "HAT": "نیوٗ فاونڑ لینڑ ڑےلایِٔٹ ٹایِم", "CHADT": "چٮ۪تھَم سَمَر ٹایِم", "BOT": "بولِوِیا ٹایِم"},
++ timezones: map[string]string{"MDT": "مَکَعوٗ سَمَر ٹایِم", "NZST": "نِوزِلینڑ سٹینڑاڑ ٹایِم", "ARST": "ارجٮ۪نٹیٖنا سَمَر ٹایِم", "SRT": "سُرِنام ٹایِم", "MESZ": "مرکزی یوٗرپی سَمَر ٹایِم", "LHDT": "لعاڑ ڑےلایٔٹ ٹایِم", "TMT": "تُرکمٮ۪نِستان سٹینڑاڑ ٹایِم", "MST": "مَکَعوٗ سٹینڑاڑ ٹایِم", "WESZ": "مغرِبی یوٗرِپی سَمَر ٹایِم", "GFT": "فرٛٮ۪نٛچ گیوٗٮ۪نا ٹایِم", "HAT": "نیوٗ فاونڑ لینڑ ڑےلایِٔٹ ٹایِم", "COST": "کولومبِیا سَمَر ٹایِم", "AEDT": "آسٹریلِیَن مشرقی ڈےلایِٔٹ ٹایِم", "CHADT": "چٮ۪تھَم سَمَر ٹایِم", "GYT": "گُیَنا ٹایِم", "CHAST": "کٮ۪تھَم سٹینڑاڑ ٹایِم", "AKST": "اٮ۪لاسکا سٹینڑاڑ ٹایِم", "UYT": "یوٗرٮ۪گوَے سٹینڑاڑ ٹایِم", "HEPMX": "HEPMX", "TMST": "تُرکمٮ۪نِستان سَمَر ٹایِم", "BT": "بوٗٹان ٹایِم", "OESZ": "مشرقی یوٗرپی سَمَر ٹایِم", "WART": "مغربی ارجٮ۪نٹیٖنا سٹینڑاڑ ٹایِم", "HENOMX": "HENOMX", "AWDT": "آسٹریلِیَن مغرِبیٖ ڈےلایٔٹ ٹایِم", "ACDT": "آسٹریلِیَن مرکزی ڈےلایِٔٹ ٹایِم", "HNEG": "مشرِقی گریٖن لینڑُک سٹینڑاڑ ٹایِم", "HECU": "کیوٗبا ڈےلایِٔٹ ٹایِم", "WIT": "مشرِقی اِنڑونیشِیا ٹایِم", "EST": "مشرقی سٹینڑاڑ ٹایِم", "CAT": "مرکزی افریٖقا ٹایِم", "WIB": "مغرِبی اِنڑونیشِیا ٹایِم", "GMT": "گرٛیٖن وِچ میٖن ٹایِم", "JST": "جاپٲنۍ سٹینڑاڑ ٹایِم", "AWST": "آسٹریلِیَن مغرِبی سٹینڑاڑ ٹایِم", "IST": "ہِنٛدوستان", "VET": "وٮ۪نٮ۪زیوٗلا ٹایِم", "HKT": "حانگ کانٛگ سٹینڑاڑ ٹایِم", "EDT": "مشرقی ڈےلایِٔٹ ٹایِم", "PST": "پیسِفِک سٹینڑاڑ ٹایِم", "ACWST": "آسٹریلِیَن مرکزی مغربی سٹینڑاڑ ٹایِم", "ACWDT": "آسٹریلِیَن مرکزی مغربی ڈےلایِٔٹ ٹایِم", "SGT": "سِنٛگاپوٗر ٹایِم", "HEEG": "مشرِقی گریٖن لینڑُک سَمَر ٹایِم", "MYT": "مَلیشِیا ٹایِم", "HEPM": "سینٛٹ پَیری مِقیوٗلَن ڑےلایِٔٹ ٹایِم", "HNCU": "کیوٗبا سٹینڑاڑ ٹایِم", "SAST": "جنوٗبی افریقا ٹایِم", "CLST": "چِلی سَمَر ٹایِم", "MEZ": "مرکزی یوٗرپی سٹینڑاڑ ٹایِم", "HNT": "نیوٗ فاونڑلینڑ سٹینڑاڑ ٹایِم", "WITA": "مرکزی اِنڑونیشِیا ٹایِم", "HNPMX": "HNPMX", "AEST": "آسٹریلِیَن مشرقی سٹینڑاڑ ٹایِم", "WARST": "مغربی ارجٮ۪نٹیٖنا سَمَر ٹایِم", "CDT": "مرکزی ڈےلایِٔٹ ٹایِم", "HADT": "حَواے اٮ۪لیوٗٹِیَن سَمَر ٹایِم", "WAST": "مغربی افریٖقا سَمَر ٹایِم", "EAT": "مشرقی افریٖقا ٹایِم", "LHST": "لعاڑ حووے سٹینڑاڑ ٹایِم", "BOT": "بولِوِیا ٹایِم", "HNNOMX": "HNNOMX", "JDT": "جاپٲنۍ ڑےلایِٔٹ ٹایِم", "UYST": "یوٗرٮ۪گوَے سَمَر ٹایِم", "AKDT": "اٮ۪لاسکا ڈےلایِٔٹ ٹایِم", "CLT": "چِلی سٹینڑاڑ ٹایِم", "ECT": "اِکویڑَر ٹایِم", "CST": "مرکزی سٹینڑاڑ ٹایِم", "ChST": "کٮ۪مورو سٹینڑاڑ ٹایِم", "AST": "اٮ۪ٹلانٹِک سٹینڑاڑ ٹایِم", "ACST": "آسٹریلِیَن مرکزی سٹینڑاڑ ٹایِم", "PDT": "پیسِفِک ڈےلایِٔٹ ٹایِم", "WEZ": "مغرِبی یوٗرپی سٹینڑاڑ ٹایِم", "HKST": "حانٛگ کانٛگ سَمَر ٹایِم", "∅∅∅": "اٮ۪زورٕس سَمَر ٹ", "HNOG": "مغرِبی گریٖن لینڑُک سٹینڑاڑ ٹایِم", "WAT": "مغربی افریٖقا سٹینڑاڑ ٹایِم", "COT": "کولومبِیا سٹینڑاڑ ٹایِم", "NZDT": "نِوزِلینڑ ڑےلایٔٹ ٹایِم", "ADT": "اٮ۪ٹلانٹِک ڈےلایِٔٹ ٹایِم", "HAST": "حَواے اٮ۪لیوٗٹِیَن سٹینڑاڑ ٹایِم", "OEZ": "مشرقی یوٗرپی سٹینڑاڑ ٹایِم", "HEOG": "مغرِبی گریٖن لینڑُک سَمَر ٹایِم", "ART": "ارجٮ۪نٹیٖنا سٹینڑاڑ ٹایِم", "HNPM": "سینٛٹ پَیری مِقیوٗلَن سٹینڑاڑ ٹایِم"},
+ }
+ }
+ 
+diff --git a/ks_IN/ks_IN.go b/ks_IN/ks_IN.go
+index 8392ad3..7d4b8b5 100644
+--- a/ks_IN/ks_IN.go
++++ b/ks_IN/ks_IN.go
+@@ -10,63 +10,45 @@ import (
+ )
+ 
+ type ks_IN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ks_IN' locale
+ func New() locales.Translator {
+ return &ks_IN{
+- locale: "ks_IN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "‎-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsNarrow: []string{"", "ج", "ف", "م", "ا", "م", "ج", "ج", "ا", "س", "س", "ا", "ن"},
+- monthsWide: []string{"", "جنؤری", "فرؤری", "مارٕچ", "اپریل", "میٔ", "جوٗن", "جوٗلایی", "اگست", "ستمبر", "اکتوٗبر", "نومبر", "دسمبر"},
+- daysAbbreviated: []string{"آتھوار", "ژٔنٛدٕروار", "بوٚموار", "بودوار", "برٛٮ۪سوار", "جُمہ", "بٹوار"},
+- daysNarrow: []string{"ا", "ژ", "ب", "ب", "ب", "ج", "ب"},
+- daysWide: []string{"اَتھوار", "ژٔنٛدرٕروار", "بوٚموار", "بودوار", "برٛٮ۪سوار", "جُمہ", "بٹوار"},
+- erasAbbreviated: []string{"بی سی", "اے ڈی"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"قبٕل مسیٖح", "عیٖسوی سنہٕ"},
+- timezones: map[string]string{"ACDT": "آسٹریلِیَن مرکزی ڈےلایِٔٹ ٹایِم", "WART": "مغربی ارجٮ۪نٹیٖنا سٹینڑاڑ ٹایِم", "GMT": "گرٛیٖن وِچ میٖن ٹایِم", "HEOG": "مغرِبی گریٖن لینڑُک سَمَر ٹایِم", "AWST": "آسٹریلِیَن مغرِبی سٹینڑاڑ ٹایِم", "AWDT": "آسٹریلِیَن مغرِبیٖ ڈےلایٔٹ ٹایِم", "SAST": "جنوٗبی افریقا ٹایِم", "MDT": "مَکَعوٗ سَمَر ٹایِم", "HNPMX": "HNPMX", "AKST": "اٮ۪لاسکا سٹینڑاڑ ٹایِم", "ACWDT": "آسٹریلِیَن مرکزی مغربی ڈےلایِٔٹ ٹایِم", "HKT": "حانگ کانٛگ سٹینڑاڑ ٹایِم", "MEZ": "مرکزی یوٗرپی سٹینڑاڑ ٹایِم", "TMT": "تُرکمٮ۪نِستان سٹینڑاڑ ٹایِم", "HENOMX": "HENOMX", "HNCU": "کیوٗبا سٹینڑاڑ ٹایِم", "SRT": "سُرِنام ٹایِم", "HKST": "حانٛگ کانٛگ سَمَر ٹایِم", "MESZ": "مرکزی یوٗرپی سَمَر ٹایِم", "NZDT": "نِوزِلینڑ ڑےلایٔٹ ٹایِم", "BOT": "بولِوِیا ٹایِم", "MST": "مَکَعوٗ سٹینڑاڑ ٹایِم", "UYT": "یوٗرٮ۪گوَے سٹینڑاڑ ٹایِم", "CDT": "مرکزی ڈےلایِٔٹ ٹایِم", "WESZ": "مغرِبی یوٗرِپی سَمَر ٹایِم", "HAT": "نیوٗ فاونڑ لینڑ ڑےلایِٔٹ ٹایِم", "LHST": "لعاڑ حووے سٹینڑاڑ ٹایِم", "HECU": "کیوٗبا ڈےلایِٔٹ ٹایِم", "WIB": "مغرِبی اِنڑونیشِیا ٹایِم", "BT": "بوٗٹان ٹایِم", "PDT": "پیسِفِک ڈےلایِٔٹ ٹایِم", "LHDT": "لعاڑ ڑےلایٔٹ ٹایِم", "CHAST": "کٮ۪تھَم سٹینڑاڑ ٹایِم", "∅∅∅": "اٮ۪مَزَن سَمَر ٹایِم", "PST": "پیسِفِک سٹینڑاڑ ٹایِم", "CHADT": "چٮ۪تھَم سَمَر ٹایِم", "AST": "اٮ۪ٹلانٹِک سٹینڑاڑ ٹایِم", "HAST": "حَواے اٮ۪لیوٗٹِیَن سٹینڑاڑ ٹایِم", "HADT": "حَواے اٮ۪لیوٗٹِیَن سَمَر ٹایِم", "HNOG": "مغرِبی گریٖن لینڑُک سٹینڑاڑ ٹایِم", "HNNOMX": "HNNOMX", "ADT": "اٮ۪ٹلانٹِک ڈےلایِٔٹ ٹایِم", "GYT": "گُیَنا ٹایِم", "WITA": "مرکزی اِنڑونیشِیا ٹایِم", "ACST": "آسٹریلِیَن مرکزی سٹینڑاڑ ٹایِم", "EAT": "مشرقی افریٖقا ٹایِم", "HEPM": "سینٛٹ پَیری مِقیوٗلَن ڑےلایِٔٹ ٹایِم", "IST": "ہِنٛدوستان", "WAT": "مغربی افریٖقا سٹینڑاڑ ٹایِم", "UYST": "یوٗرٮ۪گوَے سَمَر ٹایِم", "CST": "مرکزی سٹینڑاڑ ٹایِم", "AEDT": "آسٹریلِیَن مشرقی ڈےلایِٔٹ ٹایِم", "MYT": "مَلیشِیا ٹایِم", "VET": "وٮ۪نٮ۪زیوٗلا ٹایِم", "HNT": "نیوٗ فاونڑلینڑ سٹینڑاڑ ٹایِم", "AEST": "آسٹریلِیَن مشرقی سٹینڑاڑ ٹایِم", "CLST": "چِلی سَمَر ٹایِم", "JDT": "جاپٲنۍ ڑےلایِٔٹ ٹایِم", "HEEG": "مشرِقی گریٖن لینڑُک سَمَر ٹایِم", "OESZ": "مشرقی یوٗرپی سَمَر ٹایِم", "SGT": "سِنٛگاپوٗر ٹایِم", "AKDT": "اٮ۪لاسکا ڈےلایِٔٹ ٹایِم", "WEZ": "مغرِبی یوٗرپی سٹینڑاڑ ٹایِم", "WAST": "مغربی افریٖقا سَمَر ٹایِم", "HEPMX": "HEPMX", "JST": "جاپٲنۍ سٹینڑاڑ ٹایِم", "HNEG": "مشرِقی گریٖن لینڑُک سٹینڑاڑ ٹایِم", "WARST": "مغربی ارجٮ۪نٹیٖنا سَمَر ٹایِم", "COT": "کولومبِیا سٹینڑاڑ ٹایِم", "WIT": "مشرِقی اِنڑونیشِیا ٹایِم", "ART": "ارجٮ۪نٹیٖنا سٹینڑاڑ ٹایِم", "ARST": "ارجٮ۪نٹیٖنا سَمَر ٹایِم", "HNPM": "سینٛٹ پَیری مِقیوٗلَن سٹینڑاڑ ٹایِم", "NZST": "نِوزِلینڑ سٹینڑاڑ ٹایِم", "CLT": "چِلی سٹینڑاڑ ٹایِم", "TMST": "تُرکمٮ۪نِستان سَمَر ٹایِم", "ECT": "اِکویڑَر ٹایِم", "EST": "مشرقی سٹینڑاڑ ٹایِم", "ACWST": "آسٹریلِیَن مرکزی مغربی سٹینڑاڑ ٹایِم", "ChST": "کٮ۪مورو سٹینڑاڑ ٹایِم", "GFT": "فرٛٮ۪نٛچ گیوٗٮ۪نا ٹایِم", "CAT": "مرکزی افریٖقا ٹایِم", "OEZ": "مشرقی یوٗرپی سٹینڑاڑ ٹایِم", "COST": "کولومبِیا سَمَر ٹایِم", "EDT": "مشرقی ڈےلایِٔٹ ٹایِم"},
++ locale: "ks_IN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"COT": "COT", "ECT": "ECT", "EAT": "EAT", "WEZ": "WEZ", "WAT": "WAT", "GFT": "GFT", "CST": "CST", "GMT": "GMT", "HNEG": "HNEG", "ACST": "ACST", "VET": "VET", "WIT": "WIT", "HKST": "HKST", "EST": "EST", "SGT": "SGT", "∅∅∅": "∅∅∅", "HNT": "HNT", "HAST": "HAST", "HEPM": "HEPM", "JST": "JST", "LHST": "LHST", "AEST": "AEST", "HNPMX": "HNPMX", "AKDT": "AKDT", "BOT": "BOT", "CLT": "CLT", "WART": "WART", "CAT": "CAT", "ACWDT": "ACWDT", "WESZ": "WESZ", "HNOG": "HNOG", "SAST": "SAST", "OESZ": "OESZ", "HKT": "HKT", "WITA": "WITA", "ART": "ART", "MYT": "MYT", "WAST": "WAST", "AKST": "AKST", "MST": "MST", "IST": "IST", "PST": "PST", "TMT": "TMT", "NZST": "NZST", "AST": "AST", "SRT": "SRT", "HADT": "HADT", "HEEG": "HEEG", "HNPM": "HNPM", "PDT": "PDT", "WARST": "WARST", "WIB": "WIB", "MDT": "MDT", "ChST": "ChST", "AWST": "AWST", "CHAST": "CHAST", "HAT": "HAT", "GYT": "GYT", "HEOG": "HEOG", "CLST": "CLST", "NZDT": "NZDT", "MESZ": "MESZ", "LHDT": "LHDT", "BT": "BT", "OEZ": "OEZ", "COST": "COST", "CHADT": "CHADT", "HECU": "HECU", "MEZ": "MEZ", "AEDT": "AEDT", "ADT": "ADT", "JDT": "JDT", "TMST": "TMST", "CDT": "CDT", "ACWST": "ACWST", "EDT": "EDT", "ARST": "ARST", "HNCU": "HNCU", "HEPMX": "HEPMX", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "UYT": "UYT", "UYST": "UYST", "HENOMX": "HENOMX", "ACDT": "ACDT"},
+ }
+ }
+ 
+@@ -129,7 +111,7 @@ func (ks *ks_IN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ks *ks_IN) MonthsNarrow() []string {
+- return ks.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -139,7 +121,7 @@ func (ks *ks_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ks *ks_IN) MonthsWide() []string {
+- return ks.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -185,86 +167,13 @@ func (ks *ks_IN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ks_IN' and handles both Whole and Real numbers based on 'v'
+ func (ks *ks_IN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ks.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, ks.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ks.minus) - 1; j >= 0; j-- {
+- b = append(b, ks.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ks_IN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ks *ks_IN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 6
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ks.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ks.minus) - 1; j >= 0; j-- {
+- b = append(b, ks.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ks.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ks_IN'
+@@ -272,71 +181,7 @@ func (ks *ks_IN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ks.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ks.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, ks.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ks.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, ks.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- for j := len(ks.minus) - 1; j >= 0; j-- {
+- b = append(b, ks.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ks.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ks_IN'
+@@ -345,83 +190,7 @@ func (ks *ks_IN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ks.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ks.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, ks.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ks.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, ks.currencyNegativePrefix[j])
+- }
+-
+- for j := len(ks.minus) - 1; j >= 0; j-- {
+- b = append(b, ks.minus[j])
+- }
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ks.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, ks.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ks.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ks_IN'
+@@ -429,17 +198,6 @@ func (ks *ks_IN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -448,17 +206,6 @@ func (ks *ks_IN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ks.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -467,17 +214,6 @@ func (ks *ks_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ks.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -486,19 +222,6 @@ func (ks *ks_IN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ks.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, ks.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -507,28 +230,6 @@ func (ks *ks_IN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ks.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ks.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ks.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -537,35 +238,6 @@ func (ks *ks_IN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ks.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ks.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ks.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ks.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -574,40 +246,6 @@ func (ks *ks_IN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ks.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ks.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ks.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ks.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -616,44 +254,5 @@ func (ks *ks_IN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ks.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ks.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ks.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ks.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ks.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ksb/ksb.go b/ksb/ksb.go
+index b79e6a6..6266859 100644
+--- a/ksb/ksb.go
++++ b/ksb/ksb.go
+@@ -59,7 +59,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"KK", "BK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kabla ya Klisto", "Baada ya Klisto"},
+- timezones: map[string]string{"MST": "MST", "ADT": "ADT", "GYT": "GYT", "VET": "VET", "AWDT": "AWDT", "CHAST": "CHAST", "WAST": "WAST", "ACST": "ACST", "WART": "WART", "SGT": "SGT", "AKST": "AKST", "HADT": "HADT", "AEDT": "AEDT", "NZDT": "NZDT", "HEEG": "HEEG", "AWST": "AWST", "COT": "COT", "LHST": "LHST", "LHDT": "LHDT", "UYT": "UYT", "CDT": "CDT", "AEST": "AEST", "HKST": "HKST", "JDT": "JDT", "ChST": "ChST", "ACWDT": "ACWDT", "HNT": "HNT", "HNNOMX": "HNNOMX", "WESZ": "WESZ", "TMT": "TMT", "HEPMX": "HEPMX", "CST": "CST", "HAST": "HAST", "NZST": "NZST", "CLST": "CLST", "MESZ": "MESZ", "AKDT": "AKDT", "EAT": "EAT", "OEZ": "OEZ", "MYT": "MYT", "SRT": "SRT", "PST": "PST", "WEZ": "WEZ", "HNPM": "HNPM", "HNEG": "HNEG", "ACWST": "ACWST", "SAST": "SAST", "HECU": "HECU", "HNCU": "HNCU", "PDT": "PDT", "HEOG": "HEOG", "BOT": "BOT", "TMST": "TMST", "UYST": "UYST", "HAT": "HAT", "HEPM": "HEPM", "GFT": "GFT", "MDT": "MDT", "WIT": "WIT", "BT": "BT", "ACDT": "ACDT", "OESZ": "OESZ", "AST": "AST", "ART": "ART", "WAT": "WAT", "HNPMX": "HNPMX", "ECT": "ECT", "GMT": "GMT", "EST": "EST", "EDT": "EDT", "MEZ": "MEZ", "CHADT": "CHADT", "WARST": "WARST", "HENOMX": "HENOMX", "HNOG": "HNOG", "IST": "IST", "CLT": "CLT", "CAT": "CAT", "COST": "COST", "WIB": "WIB", "ARST": "ARST", "HKT": "HKT", "WITA": "WITA", "∅∅∅": "∅∅∅", "JST": "JST"},
++ timezones: map[string]string{"VET": "VET", "CDT": "CDT", "AWDT": "AWDT", "HEPM": "HEPM", "AEST": "AEST", "HNCU": "HNCU", "OESZ": "OESZ", "GYT": "GYT", "HNPM": "HNPM", "WESZ": "WESZ", "CLT": "CLT", "CLST": "CLST", "AST": "AST", "AWST": "AWST", "WAST": "WAST", "NZST": "NZST", "ACST": "ACST", "LHDT": "LHDT", "SGT": "SGT", "AKST": "AKST", "OEZ": "OEZ", "ART": "ART", "WEZ": "WEZ", "MST": "MST", "WIB": "WIB", "SRT": "SRT", "HAST": "HAST", "TMST": "TMST", "JST": "JST", "CHADT": "CHADT", "HECU": "HECU", "GFT": "GFT", "HNT": "HNT", "WIT": "WIT", "HEOG": "HEOG", "MYT": "MYT", "BT": "BT", "ACWDT": "ACWDT", "CHAST": "CHAST", "HEPMX": "HEPMX", "MESZ": "MESZ", "WART": "WART", "COST": "COST", "EDT": "EDT", "ACWST": "ACWST", "CAT": "CAT", "ECT": "ECT", "ChST": "ChST", "PST": "PST", "AEDT": "AEDT", "HAT": "HAT", "WARST": "WARST", "EST": "EST", "HKT": "HKT", "ARST": "ARST", "MEZ": "MEZ", "HKST": "HKST", "CST": "CST", "GMT": "GMT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "JDT": "JDT", "UYT": "UYT", "HNPMX": "HNPMX", "∅∅∅": "∅∅∅", "NZDT": "NZDT", "HNEG": "HNEG", "PDT": "PDT", "UYST": "UYST", "WAT": "WAT", "HNOG": "HNOG", "BOT": "BOT", "EAT": "EAT", "HADT": "HADT", "IST": "IST", "AKDT": "AKDT", "SAST": "SAST", "COT": "COT", "TMT": "TMT", "WITA": "WITA", "MDT": "MDT", "ADT": "ADT", "ACDT": "ACDT", "HEEG": "HEEG", "LHST": "LHST"},
+ }
+ }
+ 
+diff --git a/ksb_TZ/ksb_TZ.go b/ksb_TZ/ksb_TZ.go
+index 896e80a..484f4f4 100644
+--- a/ksb_TZ/ksb_TZ.go
++++ b/ksb_TZ/ksb_TZ.go
+@@ -42,24 +42,13 @@ type ksb_TZ struct {
+ // New returns a new instance of translator for the 'ksb_TZ' locale
+ func New() locales.Translator {
+ return &ksb_TZ{
+- locale: "ksb_TZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januali", "Febluali", "Machi", "Aplili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"},
+- daysAbbreviated: []string{"Jpi", "Jtt", "Jmn", "Jtn", "Alh", "Iju", "Jmo"},
+- daysNarrow: []string{"2", "3", "4", "5", "A", "I", "1"},
+- daysWide: []string{"Jumaapii", "Jumaatatu", "Jumaane", "Jumaatano", "Alhamisi", "Ijumaa", "Jumaamosi"},
+- periodsAbbreviated: []string{"makeo", "nyiaghuo"},
+- periodsWide: []string{"makeo", "nyiaghuo"},
+- erasAbbreviated: []string{"KK", "BK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kabla ya Klisto", "Baada ya Klisto"},
+- timezones: map[string]string{"UYT": "UYT", "HAST": "HAST", "VET": "VET", "ACWST": "ACWST", "ECT": "ECT", "EAT": "EAT", "MYT": "MYT", "WIT": "WIT", "ART": "ART", "ACST": "ACST", "ADT": "ADT", "AKDT": "AKDT", "SRT": "SRT", "HNT": "HNT", "SAST": "SAST", "AKST": "AKST", "PDT": "PDT", "WESZ": "WESZ", "TMST": "TMST", "HEPMX": "HEPMX", "HADT": "HADT", "LHDT": "LHDT", "WART": "WART", "HNNOMX": "HNNOMX", "HNOG": "HNOG", "AEDT": "AEDT", "JST": "JST", "OESZ": "OESZ", "WAST": "WAST", "HNCU": "HNCU", "MST": "MST", "MESZ": "MESZ", "WEZ": "WEZ", "HNPMX": "HNPMX", "BOT": "BOT", "HKST": "HKST", "IST": "IST", "JDT": "JDT", "CAT": "CAT", "WARST": "WARST", "CST": "CST", "OEZ": "OEZ", "SGT": "SGT", "EDT": "EDT", "WITA": "WITA", "ACWDT": "ACWDT", "HKT": "HKT", "CHAST": "CHAST", "ChST": "ChST", "HEEG": "HEEG", "HECU": "HECU", "EST": "EST", "HEOG": "HEOG", "GYT": "GYT", "ARST": "ARST", "HEPM": "HEPM", "LHST": "LHST", "NZST": "NZST", "WAT": "WAT", "HENOMX": "HENOMX", "AST": "AST", "CLST": "CLST", "BT": "BT", "WIB": "WIB", "MDT": "MDT", "HNPM": "HNPM", "MEZ": "MEZ", "GFT": "GFT", "COT": "COT", "UYST": "UYST", "PST": "PST", "AWDT": "AWDT", "CHADT": "CHADT", "CLT": "CLT", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "ACDT": "ACDT", "HAT": "HAT", "COST": "COST", "AEST": "AEST", "AWST": "AWST", "NZDT": "NZDT", "TMT": "TMT", "GMT": "GMT", "CDT": "CDT"},
++ locale: "ksb_TZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CHAST": "CHAST", "HNCU": "HNCU", "OEZ": "OEZ", "HNT": "HNT", "ADT": "ADT", "HAST": "HAST", "ChST": "ChST", "HEPM": "HEPM", "PDT": "PDT", "WEZ": "WEZ", "WARST": "WARST", "CST": "CST", "NZDT": "NZDT", "GMT": "GMT", "VET": "VET", "JDT": "JDT", "AEST": "AEST", "GFT": "GFT", "ARST": "ARST", "AWST": "AWST", "MYT": "MYT", "MST": "MST", "MDT": "MDT", "LHDT": "LHDT", "UYT": "UYT", "COT": "COT", "HKT": "HKT", "HKST": "HKST", "CDT": "CDT", "IST": "IST", "PST": "PST", "HECU": "HECU", "HNPM": "HNPM", "WAST": "WAST", "GYT": "GYT", "∅∅∅": "∅∅∅", "WIB": "WIB", "WART": "WART", "HNOG": "HNOG", "HADT": "HADT", "HNPMX": "HNPMX", "ART": "ART", "BT": "BT", "NZST": "NZST", "AWDT": "AWDT", "JST": "JST", "CHADT": "CHADT", "ACDT": "ACDT", "HNEG": "HNEG", "AEDT": "AEDT", "HEPMX": "HEPMX", "AKST": "AKST", "COST": "COST", "EDT": "EDT", "MESZ": "MESZ", "AST": "AST", "WESZ": "WESZ", "WIT": "WIT", "TMT": "TMT", "SGT": "SGT", "LHST": "LHST", "HAT": "HAT", "CLT": "CLT", "ECT": "ECT", "BOT": "BOT", "OESZ": "OESZ", "TMST": "TMST", "CAT": "CAT", "HENOMX": "HENOMX", "ACWST": "ACWST", "AKDT": "AKDT", "SAST": "SAST", "CLST": "CLST", "ACST": "ACST", "HEEG": "HEEG", "UYST": "UYST", "WAT": "WAT", "HEOG": "HEOG", "SRT": "SRT", "EAT": "EAT", "ACWDT": "ACWDT", "EST": "EST", "WITA": "WITA", "MEZ": "MEZ", "HNNOMX": "HNNOMX"},
+ }
+ }
+ 
+@@ -112,7 +101,7 @@ func (ksb *ksb_TZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ksb *ksb_TZ) MonthsAbbreviated() []string {
+- return ksb.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -122,7 +111,7 @@ func (ksb *ksb_TZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ksb *ksb_TZ) MonthsNarrow() []string {
+- return ksb.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -132,7 +121,7 @@ func (ksb *ksb_TZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ksb *ksb_TZ) MonthsWide() []string {
+- return ksb.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,54 +181,7 @@ func (ksb *ksb_TZ) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ksb.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ksb.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ksb.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ksb.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ksb.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ksb_TZ'
+@@ -248,61 +190,7 @@ func (ksb *ksb_TZ) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ksb.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ksb.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ksb.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ksb.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ksb.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ksb_TZ'
+@@ -310,27 +198,6 @@ func (ksb *ksb_TZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -339,17 +206,6 @@ func (ksb *ksb_TZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ksb.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -358,17 +214,6 @@ func (ksb *ksb_TZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ksb.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -377,19 +222,6 @@ func (ksb *ksb_TZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ksb.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ksb.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -398,19 +230,6 @@ func (ksb *ksb_TZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ksb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -419,26 +238,6 @@ func (ksb *ksb_TZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ksb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ksb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -447,30 +246,6 @@ func (ksb *ksb_TZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ksb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ksb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -479,34 +254,5 @@ func (ksb *ksb_TZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ksb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ksb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ksb.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ksf/ksf.go b/ksf/ksf.go
+index 807c64e..d554842 100644
+--- a/ksf/ksf.go
++++ b/ksf/ksf.go
+@@ -64,7 +64,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"d.Y.", "k.Y."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"di Yɛ́sus aká yálɛ", "cámɛɛn kǝ kǝbɔpka Y"},
+- timezones: map[string]string{"∅∅∅": "∅∅∅", "CST": "CST", "HAST": "HAST", "ACWDT": "ACWDT", "ARST": "ARST", "PDT": "PDT", "HKT": "HKT", "GYT": "GYT", "ART": "ART", "ACWST": "ACWST", "AEST": "AEST", "HEPM": "HEPM", "JDT": "JDT", "OESZ": "OESZ", "COT": "COT", "VET": "VET", "HNT": "HNT", "LHDT": "LHDT", "HEEG": "HEEG", "HNPM": "HNPM", "EST": "EST", "EDT": "EDT", "HEOG": "HEOG", "PST": "PST", "AWDT": "AWDT", "HKST": "HKST", "WITA": "WITA", "CHADT": "CHADT", "CLST": "CLST", "HENOMX": "HENOMX", "AKST": "AKST", "WIB": "WIB", "IST": "IST", "WARST": "WARST", "SRT": "SRT", "NZST": "NZST", "HNNOMX": "HNNOMX", "GMT": "GMT", "MDT": "MDT", "ADT": "ADT", "MYT": "MYT", "WIT": "WIT", "AWST": "AWST", "NZDT": "NZDT", "CHAST": "CHAST", "CLT": "CLT", "GFT": "GFT", "ACDT": "ACDT", "HADT": "HADT", "WEZ": "WEZ", "ChST": "ChST", "AKDT": "AKDT", "WESZ": "WESZ", "MESZ": "MESZ", "CAT": "CAT", "HAT": "HAT", "TMT": "TMT", "TMST": "TMST", "UYST": "UYST", "ACST": "ACST", "UYT": "UYT", "HNOG": "HNOG", "COST": "COST", "MEZ": "MEZ", "SAST": "SAST", "BOT": "BOT", "HNEG": "HNEG", "ECT": "ECT", "WAST": "WAST", "WART": "WART", "HNCU": "HNCU", "HECU": "HECU", "HNPMX": "HNPMX", "AEDT": "AEDT", "LHST": "LHST", "JST": "JST", "WAT": "WAT", "SGT": "SGT", "MST": "MST", "HEPMX": "HEPMX", "AST": "AST", "CDT": "CDT", "BT": "BT", "EAT": "EAT", "OEZ": "OEZ"},
++ timezones: map[string]string{"NZST": "NZST", "MESZ": "MESZ", "HECU": "HECU", "OEZ": "OEZ", "WART": "WART", "WARST": "WARST", "WIT": "WIT", "SAST": "SAST", "MDT": "MDT", "ECT": "ECT", "LHDT": "LHDT", "ACWST": "ACWST", "AKST": "AKST", "COST": "COST", "HNOG": "HNOG", "WIB": "WIB", "CST": "CST", "ART": "ART", "AST": "AST", "BOT": "BOT", "MYT": "MYT", "BT": "BT", "∅∅∅": "∅∅∅", "GYT": "GYT", "JST": "JST", "UYT": "UYT", "HNPMX": "HNPMX", "WAT": "WAT", "HADT": "HADT", "HEPM": "HEPM", "ADT": "ADT", "ACST": "ACST", "HNEG": "HNEG", "CHADT": "CHADT", "CAT": "CAT", "NZDT": "NZDT", "ACDT": "ACDT", "AWDT": "AWDT", "PDT": "PDT", "AEDT": "AEDT", "VET": "VET", "HKT": "HKT", "AWST": "AWST", "HEPMX": "HEPMX", "GMT": "GMT", "EAT": "EAT", "MEZ": "MEZ", "HKST": "HKST", "CLST": "CLST", "ACWDT": "ACWDT", "WESZ": "WESZ", "AKDT": "AKDT", "HAT": "HAT", "HEOG": "HEOG", "EST": "EST", "WITA": "WITA", "HNNOMX": "HNNOMX", "LHST": "LHST", "AEST": "AEST", "CHAST": "CHAST", "SGT": "SGT", "HNCU": "HNCU", "HENOMX": "HENOMX", "UYST": "UYST", "GFT": "GFT", "OESZ": "OESZ", "MST": "MST", "IST": "IST", "ARST": "ARST", "HAST": "HAST", "HEEG": "HEEG", "SRT": "SRT", "PST": "PST", "EDT": "EDT", "CLT": "CLT", "CDT": "CDT", "ChST": "ChST", "HNPM": "HNPM", "HNT": "HNT", "TMST": "TMST", "WAST": "WAST", "COT": "COT", "TMT": "TMT", "JDT": "JDT", "WEZ": "WEZ"},
+ }
+ }
+ 
+diff --git a/ksf_CM/ksf_CM.go b/ksf_CM/ksf_CM.go
+index 5966c5b..d087a3e 100644
+--- a/ksf_CM/ksf_CM.go
++++ b/ksf_CM/ksf_CM.go
+@@ -10,61 +10,45 @@ import (
+ )
+ 
+ type ksf_CM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ksf_CM' locale
+ func New() locales.Translator {
+ return &ksf_CM{
+- locale: "ksf_CM",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ŋ1", "ŋ2", "ŋ3", "ŋ4", "ŋ5", "ŋ6", "ŋ7", "ŋ8", "ŋ9", "ŋ10", "ŋ11", "ŋ12"},
+- monthsWide: []string{"", "ŋwíí a ntɔ́ntɔ", "ŋwíí akǝ bɛ́ɛ", "ŋwíí akǝ ráá", "ŋwíí akǝ nin", "ŋwíí akǝ táan", "ŋwíí akǝ táafɔk", "ŋwíí akǝ táabɛɛ", "ŋwíí akǝ táaraa", "ŋwíí akǝ táanin", "ŋwíí akǝ ntɛk", "ŋwíí akǝ ntɛk di bɔ́k", "ŋwíí akǝ ntɛk di bɛ́ɛ"},
+- daysAbbreviated: []string{"sɔ́n", "lǝn", "maa", "mɛk", "jǝǝ", "júm", "sam"},
+- daysNarrow: []string{"s", "l", "m", "m", "j", "j", "s"},
+- daysWide: []string{"sɔ́ndǝ", "lǝndí", "maadí", "mɛkrɛdí", "jǝǝdí", "júmbá", "samdí"},
+- periodsAbbreviated: []string{"sárúwá", "cɛɛ́nko"},
+- periodsWide: []string{"sárúwá", "cɛɛ́nko"},
+- erasAbbreviated: []string{"d.Y.", "k.Y."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"di Yɛ́sus aká yálɛ", "cámɛɛn kǝ kǝbɔpka Y"},
+- timezones: map[string]string{"SAST": "SAST", "ACST": "ACST", "ECT": "ECT", "HECU": "HECU", "EDT": "EDT", "WIT": "WIT", "OEZ": "OEZ", "COT": "COT", "HNT": "HNT", "HNOG": "HNOG", "ACDT": "ACDT", "HEPMX": "HEPMX", "ADT": "ADT", "ART": "ART", "LHST": "LHST", "CLT": "CLT", "AKDT": "AKDT", "MYT": "MYT", "HKST": "HKST", "HNEG": "HNEG", "EAT": "EAT", "SRT": "SRT", "PDT": "PDT", "ACWST": "ACWST", "WIB": "WIB", "ACWDT": "ACWDT", "AWDT": "AWDT", "HNPM": "HNPM", "NZST": "NZST", "JDT": "JDT", "GMT": "GMT", "CST": "CST", "AST": "AST", "HAST": "HAST", "AEST": "AEST", "HEPM": "HEPM", "LHDT": "LHDT", "CHADT": "CHADT", "CAT": "CAT", "OESZ": "OESZ", "WEZ": "WEZ", "HEOG": "HEOG", "HKT": "HKT", "WITA": "WITA", "TMT": "TMT", "WAT": "WAT", "CDT": "CDT", "BT": "BT", "MEZ": "MEZ", "HEEG": "HEEG", "HENOMX": "HENOMX", "MST": "MST", "HADT": "HADT", "VET": "VET", "MESZ": "MESZ", "CLST": "CLST", "ChST": "ChST", "WAST": "WAST", "SGT": "SGT", "GFT": "GFT", "WESZ": "WESZ", "IST": "IST", "WART": "WART", "WARST": "WARST", "HNNOMX": "HNNOMX", "PST": "PST", "CHAST": "CHAST", "JST": "JST", "BOT": "BOT", "TMST": "TMST", "HNPMX": "HNPMX", "AEDT": "AEDT", "AWST": "AWST", "NZDT": "NZDT", "HNCU": "HNCU", "UYST": "UYST", "ARST": "ARST", "∅∅∅": "∅∅∅", "EST": "EST", "AKST": "AKST", "HAT": "HAT", "COST": "COST", "MDT": "MDT", "GYT": "GYT", "UYT": "UYT"},
++ locale: "ksf_CM",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WIT": "WIT", "GMT": "GMT", "LHST": "LHST", "PST": "PST", "OEZ": "OEZ", "WAST": "WAST", "MST": "MST", "SRT": "SRT", "HNPM": "HNPM", "ACWDT": "ACWDT", "UYT": "UYT", "CAT": "CAT", "MEZ": "MEZ", "LHDT": "LHDT", "HAT": "HAT", "COT": "COT", "HEPMX": "HEPMX", "HNOG": "HNOG", "ADT": "ADT", "HEPM": "HEPM", "ACWST": "ACWST", "IST": "IST", "HECU": "HECU", "WIB": "WIB", "BOT": "BOT", "HNNOMX": "HNNOMX", "CHAST": "CHAST", "CHADT": "CHADT", "VET": "VET", "UYST": "UYST", "GFT": "GFT", "ChST": "ChST", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "EAT": "EAT", "WEZ": "WEZ", "AKDT": "AKDT", "WAT": "WAT", "HEOG": "HEOG", "TMST": "TMST", "MYT": "MYT", "JST": "JST", "AWDT": "AWDT", "HADT": "HADT", "ACDT": "ACDT", "HNEG": "HNEG", "CLT": "CLT", "WITA": "WITA", "CST": "CST", "AWST": "AWST", "CDT": "CDT", "HAST": "HAST", "ACST": "ACST", "ART": "ART", "HEEG": "HEEG", "AKST": "AKST", "WART": "WART", "EST": "EST", "OESZ": "OESZ", "HNT": "HNT", "AEST": "AEST", "AEDT": "AEDT", "SGT": "SGT", "HKT": "HKT", "EDT": "EDT", "CLST": "CLST", "MDT": "MDT", "NZST": "NZST", "BT": "BT", "WARST": "WARST", "COST": "COST", "MESZ": "MESZ", "HKST": "HKST", "ARST": "ARST", "JDT": "JDT", "HNPMX": "HNPMX", "GYT": "GYT", "NZDT": "NZDT", "ECT": "ECT", "HENOMX": "HENOMX", "PDT": "PDT", "HNCU": "HNCU", "TMT": "TMT", "SAST": "SAST", "AST": "AST"},
+ }
+ }
+ 
+@@ -110,7 +94,7 @@ func (ksf *ksf_CM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ksf *ksf_CM) MonthsAbbreviated() []string {
+- return ksf.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -130,7 +114,7 @@ func (ksf *ksf_CM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ksf *ksf_CM) MonthsWide() []string {
+- return ksf.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -176,44 +160,7 @@ func (ksf *ksf_CM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ksf_CM' and handles both Whole and Real numbers based on 'v'
+ func (ksf *ksf_CM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ksf.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ksf.group) - 1; j >= 0; j-- {
+- b = append(b, ksf.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ksf.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ksf_CM' and handles both Whole and Real numbers based on 'v'
+@@ -227,58 +174,7 @@ func (ksf *ksf_CM) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ksf.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ksf.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ksf.group) - 1; j >= 0; j-- {
+- b = append(b, ksf.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ksf.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ksf.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ksf.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ksf_CM'
+@@ -287,65 +183,7 @@ func (ksf *ksf_CM) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ksf.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ksf.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ksf.group) - 1; j >= 0; j-- {
+- b = append(b, ksf.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ksf.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ksf.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ksf.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ksf.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ksf_CM'
+@@ -353,17 +191,6 @@ func (ksf *ksf_CM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -372,17 +199,6 @@ func (ksf *ksf_CM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ksf.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -391,17 +207,6 @@ func (ksf *ksf_CM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ksf.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -410,19 +215,6 @@ func (ksf *ksf_CM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ksf.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ksf.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,19 +223,6 @@ func (ksf *ksf_CM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ksf.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -452,26 +231,6 @@ func (ksf *ksf_CM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ksf.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ksf.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -480,30 +239,6 @@ func (ksf *ksf_CM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ksf.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ksf.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -512,34 +247,5 @@ func (ksf *ksf_CM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ksf.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ksf.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ksf.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ksh/ksh.go b/ksh/ksh.go
+index b3c3756..12feb15 100644
+--- a/ksh/ksh.go
++++ b/ksh/ksh.go
+@@ -72,7 +72,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"v. Chr.", "n. Chr."},
+ erasNarrow: []string{"vC", "nC"},
+ erasWide: []string{"vür Krestos", "noh Krestos"},
+- timezones: map[string]string{"HADT": "HADT", "HKT": "HKT", "JST": "JST", "ARST": "ARST", "PDT": "PDT", "UYST": "UYST", "WIB": "WIB", "ACWDT": "ACWDT", "AWDT": "AWDT", "MESZ": "Meddel-Europpa sing Summerzick", "OESZ": "Oß-Europpa sing Summerzick", "EAT": "Oß-Affrekaanesche Zigg", "HEPMX": "HEPMX", "MYT": "MYT", "BT": "BT", "HEOG": "HEOG", "HNT": "HNT", "CLST": "CLST", "HENOMX": "HENOMX", "COT": "COT", "HNPMX": "HNPMX", "AKST": "AKST", "ADT": "ADT", "MST": "MST", "AKDT": "AKDT", "HAST": "HAST", "HAT": "HAT", "HNOG": "HNOG", "∅∅∅": "∅∅∅", "HKST": "HKST", "HECU": "HECU", "HNEG": "HNEG", "GFT": "GFT", "ACST": "ACST", "WAT": "Jewöhnlijje Wäß-Affrekaanesche Zigg", "HNCU": "HNCU", "UYT": "UYT", "WEZ": "Weß-Europpa sing jewöhnlijje Zick", "AWST": "AWST", "TMT": "TMT", "CAT": "Zentraal-Affrekaanesche Zigg", "SGT": "SGT", "WIT": "WIT", "MEZ": "Meddel-Europpa sing jewöhnlijje Zick", "IST": "IST", "NZDT": "NZDT", "BOT": "BOT", "HNNOMX": "HNNOMX", "AST": "AST", "VET": "VET", "HEPM": "HEPM", "WARST": "WARST", "COST": "COST", "CST": "CST", "HNPM": "HNPM", "WAST": "Wäß-Affrekaanesche Sommerzigg", "CDT": "CDT", "MDT": "MDT", "JDT": "JDT", "LHDT": "LHDT", "GMT": "Greenwich sing Standat-Zick", "SRT": "SRT", "AEST": "AEST", "NZST": "NZST", "ACDT": "ACDT", "WART": "WART", "EST": "EST", "GYT": "GYT", "ART": "ART", "WITA": "WITA", "SAST": "Söd-Affrekaanesche Zigg", "CLT": "CLT", "TMST": "TMST", "ChST": "ChST", "OEZ": "Oß-Europpa sing jewöhnlijje Zick", "ACWST": "ACWST", "CHAST": "CHAST", "LHST": "LHST", "ECT": "ECT", "CHADT": "CHADT", "HEEG": "HEEG", "EDT": "EDT", "PST": "PST", "WESZ": "Weß-Europpa sing Summerzick", "AEDT": "AEDT"},
++ timezones: map[string]string{"WARST": "WARST", "UYT": "UYT", "WESZ": "Weß-Europpa sing Summerzick", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AWDT": "AWDT", "HEPM": "HEPM", "JST": "JST", "AKST": "AKST", "HEEG": "HEEG", "UYST": "UYST", "WART": "WART", "HKST": "HKST", "TMST": "TMST", "CLST": "CLST", "MEZ": "Meddel-Europpa sing jewöhnlijje Zick", "HNEG": "HNEG", "HNCU": "HNCU", "COST": "COST", "HEOG": "HEOG", "CDT": "CDT", "HAST": "HAST", "JDT": "JDT", "HNOG": "HNOG", "AST": "AST", "ADT": "ADT", "PST": "PST", "WAST": "Wäß-Affrekaanesche Sommerzigg", "TMT": "TMT", "CAT": "Zentraal-Affrekaanesche Zigg", "MST": "MST", "ECT": "ECT", "VET": "VET", "GYT": "GYT", "COT": "COT", "MDT": "MDT", "HECU": "HECU", "OESZ": "Oß-Europpa sing Summerzick", "EST": "EST", "EDT": "EDT", "MESZ": "Meddel-Europpa sing Summerzick", "LHST": "LHST", "IST": "IST", "CST": "CST", "ChST": "ChST", "ACDT": "ACDT", "ACWDT": "ACWDT", "AEDT": "AEDT", "HNT": "HNT", "HAT": "HAT", "GMT": "Greenwich sing Standat-Zick", "AWST": "AWST", "CHAST": "CHAST", "GFT": "GFT", "NZST": "NZST", "LHDT": "LHDT", "ACWST": "ACWST", "SGT": "SGT", "AKDT": "AKDT", "ART": "ART", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "WIT": "WIT", "HKT": "HKT", "WITA": "WITA", "ACST": "ACST", "PDT": "PDT", "HADT": "HADT", "BT": "BT", "OEZ": "Oß-Europpa sing jewöhnlijje Zick", "SAST": "Söd-Affrekaanesche Zigg", "∅∅∅": "∅∅∅", "CLT": "CLT", "WIB": "WIB", "BOT": "BOT", "AEST": "AEST", "ARST": "ARST", "EAT": "Oß-Affrekaanesche Zigg", "HNPM": "HNPM", "CHADT": "CHADT", "WEZ": "Weß-Europpa sing jewöhnlijje Zick", "WAT": "Jewöhnlijje Wäß-Affrekaanesche Zigg", "NZDT": "NZDT", "SRT": "SRT", "MYT": "MYT"},
+ }
+ }
+ 
+diff --git a/ksh_DE/ksh_DE.go b/ksh_DE/ksh_DE.go
+index b1c0d9a..42ccd86 100644
+--- a/ksh_DE/ksh_DE.go
++++ b/ksh_DE/ksh_DE.go
+@@ -10,69 +10,45 @@ import (
+ )
+ 
+ type ksh_DE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ksh_DE' locale
+ func New() locales.Translator {
+ return &ksh_DE{
+- locale: "ksh_DE",
+- pluralsCardinal: []locales.PluralRule{1, 2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Jan", "Fäb", "Mäz", "Apr", "Mai", "Jun", "Jul", "Ouj", "Säp", "Okt", "Nov", "Dez"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "O", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Jannewa", "Fäbrowa", "Määz", "Aprell", "Mai", "Juuni", "Juuli", "Oujoß", "Septämber", "Oktohber", "Novämber", "Dezämber"},
+- daysAbbreviated: []string{"Su.", "Mo.", "Di.", "Me.", "Du.", "Fr.", "Sa."},
+- daysNarrow: []string{"S", "M", "D", "M", "D", "F", "S"},
+- daysShort: []string{"Su", "Mo", "Di", "Me", "Du", "Fr", "Sa"},
+- daysWide: []string{"Sunndaach", "Mohndaach", "Dinnsdaach", "Metwoch", "Dunnersdaach", "Friidaach", "Samsdaach"},
+- periodsAbbreviated: []string{"v.M.", "n.M."},
+- periodsWide: []string{"Uhr vörmiddaachs", "Uhr nommendaachs"},
+- erasAbbreviated: []string{"v. Chr.", "n. Chr."},
+- erasNarrow: []string{"vC", "nC"},
+- erasWide: []string{"vür Krestos", "noh Krestos"},
+- timezones: map[string]string{"HAST": "HAST", "HADT": "HADT", "HEOG": "HEOG", "IST": "IST", "EDT": "EDT", "AKST": "AKST", "ACDT": "ACDT", "HENOMX": "HENOMX", "WART": "WART", "SGT": "SGT", "HEPMX": "HEPMX", "HEPM": "HEPM", "CHADT": "CHADT", "OESZ": "Oß-Europpa sing Summerzick", "COST": "COST", "GMT": "Greenwich sing Standat-Zick", "CLST": "CLST", "ChST": "ChST", "MST": "MST", "VET": "VET", "WIT": "WIT", "AWDT": "AWDT", "NZDT": "NZDT", "CST": "CST", "WIB": "WIB", "AWST": "AWST", "ACST": "ACST", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "GYT": "GYT", "HNOG": "HNOG", "TMST": "TMST", "CDT": "CDT", "MYT": "MYT", "SRT": "SRT", "LHDT": "LHDT", "HAT": "HAT", "ARST": "ARST", "HKST": "HKST", "WAST": "Wäß-Affrekaanesche Sommerzigg", "HNCU": "HNCU", "AST": "AST", "HKT": "HKT", "NZST": "NZST", "EAT": "Oß-Affrekaanesche Zigg", "OEZ": "Oß-Europpa sing jewöhnlijje Zick", "HNT": "HNT", "ART": "ART", "PDT": "PDT", "MDT": "MDT", "ADT": "ADT", "UYT": "UYT", "WESZ": "Weß-Europpa sing Summerzick", "ACWDT": "ACWDT", "MEZ": "Meddel-Europpa sing jewöhnlijje Zick", "∅∅∅": "∅∅∅", "JST": "JST", "HECU": "HECU", "EST": "EST", "WEZ": "Weß-Europpa sing jewöhnlijje Zick", "HNPM": "HNPM", "BOT": "BOT", "ECT": "ECT", "WARST": "WARST", "ACWST": "ACWST", "CHAST": "CHAST", "SAST": "Söd-Affrekaanesche Zigg", "TMT": "TMT", "CAT": "Zentraal-Affrekaanesche Zigg", "JDT": "JDT", "WAT": "Jewöhnlijje Wäß-Affrekaanesche Zigg", "AKDT": "AKDT", "WITA": "WITA", "AEDT": "AEDT", "LHST": "LHST", "CLT": "CLT", "UYST": "UYST", "PST": "PST", "HNEG": "HNEG", "GFT": "GFT", "COT": "COT", "BT": "BT", "AEST": "AEST", "MESZ": "Meddel-Europpa sing Summerzick", "HEEG": "HEEG"},
++ locale: "ksh_DE",
++ pluralsCardinal: []locales.PluralRule{1, 2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HKST": "HKST", "CDT": "CDT", "HENOMX": "HENOMX", "HEPM": "HEPM", "UYST": "UYST", "WAT": "WAT", "COT": "COT", "COST": "COST", "CLT": "CLT", "WITA": "WITA", "ART": "ART", "ACDT": "ACDT", "HEPMX": "HEPMX", "HNT": "HNT", "SAST": "SAST", "ADT": "ADT", "PST": "PST", "TMT": "TMT", "CST": "CST", "NZDT": "NZDT", "ACST": "ACST", "HEEG": "HEEG", "AWDT": "AWDT", "ACWDT": "ACWDT", "AKDT": "AKDT", "OESZ": "OESZ", "WART": "WART", "NZST": "NZST", "MESZ": "MESZ", "HNPM": "HNPM", "AEDT": "AEDT", "WEZ": "WEZ", "WESZ": "WESZ", "HAT": "HAT", "HNOG": "HNOG", "SRT": "SRT", "HAST": "HAST", "OEZ": "OEZ", "ChST": "ChST", "JDT": "JDT", "HNPMX": "HNPMX", "VET": "VET", "HEOG": "HEOG", "EDT": "EDT", "SGT": "SGT", "AST": "AST", "GMT": "GMT", "HNNOMX": "HNNOMX", "UYT": "UYT", "ACWST": "ACWST", "AKST": "AKST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "GFT": "GFT", "GYT": "GYT", "EST": "EST", "MST": "MST", "EAT": "EAT", "HECU": "HECU", "WIT": "WIT", "TMST": "TMST", "ARST": "ARST", "LHDT": "LHDT", "BT": "BT", "CAT": "CAT", "ECT": "ECT", "MYT": "MYT", "PDT": "PDT", "HNCU": "HNCU", "WAST": "WAST", "HKT": "HKT", "BOT": "BOT", "MEZ": "MEZ", "AWST": "AWST", "CHADT": "CHADT", "AEST": "AEST", "CHAST": "CHAST", "IST": "IST", "CLST": "CLST", "WIB": "WIB", "MDT": "MDT", "HADT": "HADT", "JST": "JST", "LHST": "LHST", "WARST": "WARST"},
+ }
+ }
+ 
+@@ -127,7 +103,7 @@ func (ksh *ksh_DE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ksh *ksh_DE) MonthsAbbreviated() []string {
+- return ksh.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -137,7 +113,7 @@ func (ksh *ksh_DE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ksh *ksh_DE) MonthsNarrow() []string {
+- return ksh.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -147,7 +123,7 @@ func (ksh *ksh_DE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ksh *ksh_DE) MonthsWide() []string {
+- return ksh.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -193,81 +169,13 @@ func (ksh *ksh_DE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ksh_DE' and handles both Whole and Real numbers based on 'v'
+ func (ksh *ksh_DE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ksh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ksh.group) - 1; j >= 0; j-- {
+- b = append(b, ksh.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ksh.minus) - 1; j >= 0; j-- {
+- b = append(b, ksh.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ksh_DE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ksh *ksh_DE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ksh.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ksh.minus) - 1; j >= 0; j-- {
+- b = append(b, ksh.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ksh.percentSuffix...)
+-
+- b = append(b, ksh.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ksh_DE'
+@@ -275,60 +183,7 @@ func (ksh *ksh_DE) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ksh.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ksh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ksh.group) - 1; j >= 0; j-- {
+- b = append(b, ksh.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ksh.minus) - 1; j >= 0; j-- {
+- b = append(b, ksh.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ksh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ksh.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ksh_DE'
+@@ -337,67 +192,7 @@ func (ksh *ksh_DE) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ksh.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ksh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ksh.group) - 1; j >= 0; j-- {
+- b = append(b, ksh.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ksh.minus) - 1; j >= 0; j-- {
+- b = append(b, ksh.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ksh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ksh.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ksh.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ksh_DE'
+@@ -405,17 +200,6 @@ func (ksh *ksh_DE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +208,6 @@ func (ksh *ksh_DE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, ksh.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +216,6 @@ func (ksh *ksh_DE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, ksh.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,20 +224,6 @@ func (ksh *ksh_DE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ksh.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20, 0x64, 0xc3, 0xa4}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, ksh.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +232,6 @@ func (ksh *ksh_DE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ksh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -505,26 +240,6 @@ func (ksh *ksh_DE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ksh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ksh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -533,30 +248,6 @@ func (ksh *ksh_DE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ksh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ksh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -565,34 +256,5 @@ func (ksh *ksh_DE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ksh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ksh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ksh.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/kw/kw.go b/kw/kw.go
+index d4b68e7..4b1677b 100644
+--- a/kw/kw.go
++++ b/kw/kw.go
+@@ -57,7 +57,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"RC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"ACST": "ACST", "HNCU": "HNCU", "AWDT": "AWDT", "LHDT": "LHDT", "HNEG": "HNEG", "GFT": "GFT", "AEDT": "AEDT", "CST": "CST", "AST": "AST", "HNPMX": "HNPMX", "ART": "ART", "HENOMX": "HENOMX", "EDT": "EDT", "CAT": "CAT", "UYST": "UYST", "AEST": "AEST", "ChST": "ChST", "ACDT": "ACDT", "WART": "WART", "CDT": "CDT", "CHAST": "CHAST", "JST": "JST", "ECT": "ECT", "HEPMX": "HEPMX", "VET": "VET", "WIT": "WIT", "AWST": "AWST", "WARST": "WARST", "EST": "EST", "HECU": "HECU", "AKDT": "AKDT", "HAST": "HAST", "WEZ": "WEZ", "ACWST": "ACWST", "CLT": "CLT", "WAST": "WAST", "MDT": "MDT", "SRT": "SRT", "HNOG": "HNOG", "MEZ": "MEZ", "NZST": "NZST", "BOT": "BOT", "SGT": "SGT", "GMT": "GMT", "MST": "MST", "HADT": "HADT", "WITA": "WITA", "∅∅∅": "∅∅∅", "TMST": "TMST", "EAT": "EAT", "OESZ": "OESZ", "AKST": "AKST", "ACWDT": "ACWDT", "CHADT": "CHADT", "JDT": "JDT", "HEEG": "HEEG", "UYT": "UYT", "PST": "PST", "PDT": "PDT", "WESZ": "WESZ", "HKT": "HKT", "LHST": "LHST", "WAT": "WAT", "COST": "COST", "HAT": "HAT", "ARST": "ARST", "HEOG": "HEOG", "MESZ": "MESZ", "NZDT": "NZDT", "MYT": "MYT", "BT": "BT", "OEZ": "OEZ", "COT": "COT", "ADT": "ADT", "HNT": "HNT", "IST": "IST", "CLST": "CLST", "TMT": "TMT", "HKST": "HKST", "HNNOMX": "HNNOMX", "GYT": "GYT", "HEPM": "HEPM", "SAST": "SAST", "WIB": "WIB", "HNPM": "HNPM"},
++ timezones: map[string]string{"MST": "MST", "EAT": "EAT", "HEEG": "HEEG", "MYT": "MYT", "PST": "PST", "ACWDT": "ACWDT", "BOT": "BOT", "HAST": "HAST", "HENOMX": "HENOMX", "BT": "BT", "TMST": "TMST", "CDT": "CDT", "AST": "AST", "AKDT": "AKDT", "COT": "COT", "CAT": "CAT", "WITA": "WITA", "MEZ": "MEZ", "ACST": "ACST", "GYT": "GYT", "COST": "COST", "EDT": "EDT", "NZDT": "NZDT", "ACWST": "ACWST", "HKT": "HKT", "ECT": "ECT", "ADT": "ADT", "MESZ": "MESZ", "PDT": "PDT", "HNCU": "HNCU", "HNPMX": "HNPMX", "WART": "WART", "CLT": "CLT", "CLST": "CLST", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "LHST": "LHST", "HEPM": "HEPM", "WARST": "WARST", "NZST": "NZST", "WIB": "WIB", "ACDT": "ACDT", "AWST": "AWST", "UYST": "UYST", "WEZ": "WEZ", "OEZ": "OEZ", "HKST": "HKST", "GMT": "GMT", "AWDT": "AWDT", "JDT": "JDT", "CHAST": "CHAST", "HEPMX": "HEPMX", "WAST": "WAST", "HAT": "HAT", "TMT": "TMT", "VET": "VET", "∅∅∅": "∅∅∅", "JST": "JST", "SGT": "SGT", "HECU": "HECU", "MDT": "MDT", "ChST": "ChST", "UYT": "UYT", "WESZ": "WESZ", "GFT": "GFT", "HNT": "HNT", "WIT": "WIT", "HNPM": "HNPM", "WAT": "WAT", "OESZ": "OESZ", "HEOG": "HEOG", "CST": "CST", "ARST": "ARST", "HADT": "HADT", "AEST": "AEST", "SAST": "SAST", "HNOG": "HNOG", "ART": "ART", "SRT": "SRT", "LHDT": "LHDT", "IST": "IST", "AEDT": "AEDT", "CHADT": "CHADT", "AKST": "AKST", "EST": "EST"},
+ }
+ }
+ 
+diff --git a/kw_GB/kw_GB.go b/kw_GB/kw_GB.go
+index 832df6a..b36842f 100644
+--- a/kw_GB/kw_GB.go
++++ b/kw_GB/kw_GB.go
+@@ -42,22 +42,13 @@ type kw_GB struct {
+ // New returns a new instance of translator for the 'kw_GB' locale
+ func New() locales.Translator {
+ return &kw_GB{
+- locale: "kw_GB",
+- pluralsCardinal: []locales.PluralRule{2, 3, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Gen", "Hwe", "Meu", "Ebr", "Me", "Met", "Gor", "Est", "Gwn", "Hed", "Du", "Kev"},
+- monthsWide: []string{"", "mis Genver", "mis Hwevrer", "mis Meurth", "mis Ebrel", "mis Me", "mis Metheven", "mis Gortheren", "mis Est", "mis Gwynngala", "mis Hedra", "mis Du", "mis Kevardhu"},
+- daysAbbreviated: []string{"Sul", "Lun", "Mth", "Mhr", "Yow", "Gwe", "Sad"},
+- daysWide: []string{"dy Sul", "dy Lun", "dy Meurth", "dy Merher", "dy Yow", "dy Gwener", "dy Sadorn"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"RC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"TMT": "TMT", "EST": "EST", "AST": "AST", "UYT": "UYT", "AWDT": "AWDT", "LHST": "LHST", "CHADT": "CHADT", "HEEG": "HEEG", "AKST": "AKST", "CDT": "CDT", "SRT": "SRT", "AEST": "AEST", "HNEG": "HNEG", "VET": "VET", "NZDT": "NZDT", "CHAST": "CHAST", "COT": "COT", "HNCU": "HNCU", "MDT": "MDT", "HKST": "HKST", "IST": "IST", "WARST": "WARST", "CST": "CST", "TMST": "TMST", "EAT": "EAT", "SGT": "SGT", "EDT": "EDT", "UYST": "UYST", "JDT": "JDT", "ChST": "ChST", "CAT": "CAT", "MST": "MST", "HAST": "HAST", "WITA": "WITA", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "GMT": "GMT", "ACWDT": "ACWDT", "ACWST": "ACWST", "ARST": "ARST", "AWST": "AWST", "CLST": "CLST", "WAST": "WAST", "ECT": "ECT", "HENOMX": "HENOMX", "GYT": "GYT", "WIB": "WIB", "ART": "ART", "HNPM": "HNPM", "MEZ": "MEZ", "HECU": "HECU", "MYT": "MYT", "HADT": "HADT", "BT": "BT", "HEPM": "HEPM", "SAST": "SAST", "ACDT": "ACDT", "HNT": "HNT", "HAT": "HAT", "LHDT": "LHDT", "NZST": "NZST", "WAT": "WAT", "WIT": "WIT", "PDT": "PDT", "HNOG": "HNOG", "HEOG": "HEOG", "HKT": "HKT", "ADT": "ADT", "OEZ": "OEZ", "WART": "WART", "AKDT": "AKDT", "AEDT": "AEDT", "CLT": "CLT", "∅∅∅": "∅∅∅", "JST": "JST", "BOT": "BOT", "ACST": "ACST", "COST": "COST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "PST": "PST", "WEZ": "WEZ", "WESZ": "WESZ", "GFT": "GFT", "OESZ": "OESZ"},
++ locale: "kw_GB",
++ pluralsCardinal: []locales.PluralRule{2, 3, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"OEZ": "OEZ", "EST": "EST", "HKT": "HKT", "ACST": "ACST", "GFT": "GFT", "HNT": "HNT", "ECT": "ECT", "LHDT": "LHDT", "HNPM": "HNPM", "CHADT": "CHADT", "HAT": "HAT", "WIB": "WIB", "HAST": "HAST", "LHST": "LHST", "ACWST": "ACWST", "WEZ": "WEZ", "WIT": "WIT", "HKST": "HKST", "ARST": "ARST", "AWST": "AWST", "AWDT": "AWDT", "PDT": "PDT", "SGT": "SGT", "CAT": "CAT", "CST": "CST", "∅∅∅": "∅∅∅", "UYT": "UYT", "AKST": "AKST", "HNEG": "HNEG", "GMT": "GMT", "EAT": "EAT", "MESZ": "MESZ", "HEPM": "HEPM", "AST": "AST", "MYT": "MYT", "AEDT": "AEDT", "GYT": "GYT", "HENOMX": "HENOMX", "ART": "ART", "JST": "JST", "WAST": "WAST", "OESZ": "OESZ", "HNOG": "HNOG", "CDT": "CDT", "ACWDT": "ACWDT", "CHAST": "CHAST", "HNCU": "HNCU", "HECU": "HECU", "IST": "IST", "SRT": "SRT", "HEEG": "HEEG", "AKDT": "AKDT", "COST": "COST", "HEOG": "HEOG", "TMST": "TMST", "CLT": "CLT", "MDT": "MDT", "MEZ": "MEZ", "JDT": "JDT", "WESZ": "WESZ", "VET": "VET", "WITA": "WITA", "MST": "MST", "ChST": "ChST", "PST": "PST", "EDT": "EDT", "NZDT": "NZDT", "WARST": "WARST", "ADT": "ADT", "HADT": "HADT", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "AEST": "AEST", "UYST": "UYST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "NZST": "NZST", "WART": "WART", "TMT": "TMT", "WAT": "WAT", "BT": "BT", "SAST": "SAST", "COT": "COT", "CLST": "CLST", "BOT": "BOT"},
+ }
+ }
+ 
+@@ -112,7 +103,7 @@ func (kw *kw_GB) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (kw *kw_GB) MonthsAbbreviated() []string {
+- return kw.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -132,7 +123,7 @@ func (kw *kw_GB) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (kw *kw_GB) MonthsWide() []string {
+- return kw.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,56 +183,7 @@ func (kw *kw_GB) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kw.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, kw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, kw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'kw_GB'
+@@ -250,64 +192,7 @@ func (kw *kw_GB) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := kw.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, kw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, kw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, kw.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, kw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'kw_GB'
+@@ -315,27 +200,6 @@ func (kw *kw_GB) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -344,17 +208,6 @@ func (kw *kw_GB) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kw.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -363,17 +216,6 @@ func (kw *kw_GB) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -382,19 +224,6 @@ func (kw *kw_GB) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, kw.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, kw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -403,19 +232,6 @@ func (kw *kw_GB) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -424,26 +240,6 @@ func (kw *kw_GB) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -452,30 +248,6 @@ func (kw *kw_GB) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -484,34 +256,5 @@ func (kw *kw_GB) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, kw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, kw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := kw.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ky/ky.go b/ky/ky.go
+index 68b0ba3..3abb732 100644
+--- a/ky/ky.go
++++ b/ky/ky.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"б.з.ч.", "б.з."},
+ erasNarrow: []string{"б.з.ч.", "б.з."},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"ECT": "Экуадор убактысы", "MST": "MST", "WIB": "Батыш Индонезия убактысы", "ACWST": "Австралия борбордук батыш кышкы убакыты", "JDT": "Жапон жайкы убактысы", "HEEG": "Чыгыш Гренландия жайкы убактысы", "GMT": "GMT, кышкы убакыты", "HECU": "Куба жайкы убактысы", "HKST": "Гонконг жайкы убактысы", "HNPM": "Сен Пьер жана Микелон кышкы убактысы", "CHAST": "Чатам кышкы убакыт", "GYT": "Гвиана убактысы", "SRT": "Суринаме убактысы", "PDT": "Түндүк Америка, Тынч океан жайкы убактысы", "LHDT": "Лорд Хау жайкы убактысы", "NZST": "Жаӊы Зеландия кышкы убакыты", "∅∅∅": "Амазон жайкы убактысы", "MYT": "Малайзия убактысы", "AKDT": "Аляска жайкы убактысы", "OEZ": "Чыгыш Европа кышкы убакыты", "WAST": "Батыш Африка жайкы убактысы", "AKST": "Аляска кышкы убактысы", "ART": "Аргентина кышкы убактысы", "AWDT": "Австралия батыш жайкы убактысы", "MESZ": "Борбордук Европа жайкы убактысы", "GFT": "Француз Гвиана убактысы", "BOT": "Боливия убактысы", "BT": "Бутан убактысы", "AEST": "Австралия чыгыш кышкы убакыты", "AWST": "Австралия батыш кышкы убакыты", "IST": "Индия убактысы", "HENOMX": "Түндүк-чыгыш Мексика жайкы убактысы", "HNPMX": "Мексика, Тынч океан кышкы убактысы", "HADT": "Гавайи-Алеут жайкы убактысы", "ARST": "Аргентина жайкы убактысы", "HAST": "Гавайи-Алеут кышкы убактысы", "HAT": "Нюфаундлэнд жайкы убактысы", "TMST": "Түркмөнстан жайкы убактысы", "HNEG": "Чыгыш Гренландия кышкы убактысы", "WART": "Батыш Аргентина кышкы убактысы", "WARST": "Батыш Аргентина жайкы убактысы", "COT": "Колумбия кышкы убактысы", "EDT": "Түндүк Америка, чыгыш жайкы убактысы", "ACDT": "Австралия борбордук жайкы убактысы", "EST": "Түндүк Америка, чыгыш кышкы убактысы", "UYT": "Уругвай кышкы убактысы", "VET": "Венесуэла убактысы", "WITA": "Борбордук Индонезия убактысы", "CLT": "Чили кышкы убактысы", "HEPMX": "Мексика, Тынч океан жайкы убактысы", "CDT": "Түндүк Америка, борбордук жайкы убакыт", "AST": "Атлантика кышкы убактысы", "WIT": "Чыгыш Индонезия убактысы", "OESZ": "Чыгыш Европа жайкы убактысы", "HNT": "Нюфаундлэнд кышкы убактысы", "ACST": "Австралия борбордук кышкы убакыты", "HNNOMX": "Түндүк-чыгыш Мексика кышкы убактысы", "CST": "Түндүк Америка, борбордук кышкы убактысы", "ADT": "Атлантика жайкы убактысы", "PST": "Түндүк Америка, Тынч океан кышкы убактысы", "HKT": "Гонконг кышкы убакыты", "MEZ": "Борбордук Европа кышкы убакыты", "LHST": "Лорд Хау кышкы убакыты", "ChST": "Чаморро убактысы", "CAT": "Борбордук Африка убактысы", "HNCU": "Куба кышкы убактысы", "HEOG": "Батыш Гренландия жайкы убактысы", "NZDT": "Жаңы Зеландия жайкы убакыты", "TMT": "Түркмөнстан кышкы убакыты", "AEDT": "Австралия чыгыш жайкы убактысы", "JST": "Жапон кышкы убакыты", "HNOG": "Батыш Гренландия кышкы убактысы", "WESZ": "Батыш Европа жайкы убактысы", "COST": "Колумбия жайкы убактысы", "SGT": "Сингапур убактысы", "HEPM": "Сен Пьер жана Микелон жайкы убактысы", "CHADT": "Чатам жайкы убактысы", "SAST": "Түштүк Африка убактысы", "CLST": "Чили жайкы убактысы", "EAT": "Чыгыш Африка убактысы", "WAT": "Батыш Африка кышкы убакыты", "MDT": "MDT", "UYST": "Уругвай жайкы убактысы", "WEZ": "Батыш Европа кышкы убакыты", "ACWDT": "Австралия борбордук чыгыш жайкы убактысы"},
++ timezones: map[string]string{"HNEG": "Чыгыш Гренландия кышкы убактысы", "PDT": "Түндүк Америка, Тынч океан жайкы убактысы", "∅∅∅": "∅∅∅", "HKST": "Гонконг жайкы убактысы", "AST": "Атлантика кышкы убактысы", "JST": "Жапон кышкы убакыты", "HNT": "Нюфаундлэнд кышкы убактысы", "WIT": "Чыгыш Индонезия убактысы", "ChST": "Чаморро убактысы", "HKT": "Гонконг кышкы убакыты", "TMT": "Түркмөнстан кышкы убакыты", "MDT": "MDT", "EAT": "Чыгыш Африка убактысы", "AWDT": "Австралия батыш жайкы убактысы", "HNPM": "Сен Пьер жана Микелон кышкы убактысы", "VET": "Венесуэла убактысы", "OEZ": "Чыгыш Европа кышкы убакыты", "COT": "Колумбия кышкы убактысы", "COST": "Колумбия жайкы убактысы", "MESZ": "Борбордук Европа жайкы убактысы", "LHDT": "Лорд Хау жайкы убактысы", "HNOG": "Батыш Гренландия кышкы убактысы", "CAT": "Борбордук Африка убактысы", "GMT": "GMT, кышкы убакыты", "HAST": "Гавайи-Алеут кышкы убактысы", "MST": "MST", "HENOMX": "Түндүк-чыгыш Мексика жайкы убактысы", "JDT": "Жапон жайкы убактысы", "PST": "Түндүк Америка, Тынч океан кышкы убактысы", "GYT": "Гвиана убактысы", "TMST": "Түркмөнстан жайкы убактысы", "CLST": "Чили жайкы убактысы", "WITA": "Борбордук Индонезия убактысы", "ECT": "Экуадор убактысы", "SRT": "Суринаме убактысы", "HEPM": "Сен Пьер жана Микелон жайкы убактысы", "ACWST": "Австралия борбордук батыш кышкы убакыты", "AEST": "Австралия чыгыш кышкы убакыты", "CHADT": "Чатам жайкы убактысы", "HEPMX": "Мексика, Тынч океан жайкы убактысы", "SAST": "Түштүк Африка убактысы", "BOT": "Боливия убактысы", "ACWDT": "Австралия борбордук чыгыш жайкы убактысы", "HECU": "Куба жайкы убактысы", "AKST": "Аляска кышкы убактысы", "WIB": "Батыш Индонезия убактысы", "CDT": "Түндүк Америка, борбордук жайкы убакыт", "HNNOMX": "Түндүк-чыгыш Мексика кышкы убактысы", "UYST": "Уругвай жайкы убактысы", "HNCU": "Куба кышкы убактысы", "HNPMX": "Мексика, Тынч океан кышкы убактысы", "OESZ": "Чыгыш Европа жайкы убактысы", "EDT": "Түндүк Америка, чыгыш жайкы убактысы", "CST": "Түндүк Америка, борбордук кышкы убактысы", "NZST": "Жаӊы Зеландия кышкы убакыты", "HEEG": "Чыгыш Гренландия жайкы убактысы", "AWST": "Австралия батыш кышкы убакыты", "AEDT": "Австралия чыгыш жайкы убактысы", "CHAST": "Чатам кышкы убакыт", "AKDT": "Аляска жайкы убактысы", "WART": "Батыш Аргентина кышкы убактысы", "EST": "Түндүк Америка, чыгыш кышкы убактысы", "ART": "Аргентина кышкы убактысы", "ARST": "Аргентина жайкы убактысы", "UYT": "Уругвай кышкы убактысы", "WAST": "Батыш Африка жайкы убактысы", "LHST": "Лорд Хау кышкы убакыты", "WAT": "Батыш Африка кышкы убакыты", "CLT": "Чили кышкы убактысы", "ADT": "Атлантика жайкы убактысы", "HADT": "Гавайи-Алеут жайкы убактысы", "ACST": "Австралия борбордук кышкы убакыты", "MYT": "Малайзия убактысы", "GFT": "Француз Гвиана убактысы", "NZDT": "Жаңы Зеландия жайкы убакыты", "MEZ": "Борбордук Европа кышкы убакыты", "IST": "Индия убактысы", "WESZ": "Батыш Европа жайкы убактысы", "SGT": "Сингапур убактысы", "WARST": "Батыш Аргентина жайкы убактысы", "ACDT": "Австралия борбордук жайкы убактысы", "BT": "Бутан убактысы", "WEZ": "Батыш Европа кышкы убакыты", "HAT": "Нюфаундлэнд жайкы убактысы", "HEOG": "Батыш Гренландия жайкы убактысы"},
+ }
+ }
+ 
+diff --git a/ky_KG/ky_KG.go b/ky_KG/ky_KG.go
+index 097b68d..154fef4 100644
+--- a/ky_KG/ky_KG.go
++++ b/ky_KG/ky_KG.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ky_KG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ky_KG' locale
+ func New() locales.Translator {
+ return &ky_KG{
+- locale: "ky_KG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "янв.", "фев.", "мар.", "апр.", "май", "июн.", "июл.", "авг.", "сен.", "окт.", "ноя.", "дек."},
+- monthsNarrow: []string{"", "Я", "Ф", "М", "А", "М", "И", "И", "А", "С", "О", "Н", "Д"},
+- monthsWide: []string{"", "январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"},
+- daysAbbreviated: []string{"жек.", "дүй.", "шейш.", "шарш.", "бейш.", "жума", "ишм."},
+- daysNarrow: []string{"Ж", "Д", "Ш", "Ш", "Б", "Ж", "И"},
+- daysShort: []string{"жек.", "дүй.", "шейш.", "шарш.", "бейш.", "жума", "ишм."},
+- daysWide: []string{"жекшемби", "дүйшөмбү", "шейшемби", "шаршемби", "бейшемби", "жума", "ишемби"},
+- periodsAbbreviated: []string{"тң", "тк"},
+- periodsNarrow: []string{"тң", "тк"},
+- periodsWide: []string{"таңкы", "түштөн кийинки"},
+- erasAbbreviated: []string{"б.з.ч.", "б.з."},
+- erasNarrow: []string{"б.з.ч.", "б.з."},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"JDT": "Жапон жайкы убактысы", "BOT": "Боливия убактысы", "HEOG": "Батыш Гренландия жайкы убактысы", "NZDT": "Жаңы Зеландия жайкы убакыты", "LHDT": "Лорд Хау жайкы убактысы", "CHAST": "Чатам кышкы убакыт", "HEEG": "Чыгыш Гренландия жайкы убактысы", "WARST": "Батыш Аргентина жайкы убактысы", "COT": "Колумбия кышкы убактысы", "AKDT": "Аляска жайкы убактысы", "ACWDT": "Австралия борбордук чыгыш жайкы убактысы", "HNPM": "Сен Пьер жана Микелон кышкы убактысы", "∅∅∅": "Амазон жайкы убактысы", "TMST": "Түркмөнстан жайкы убактысы", "HNNOMX": "Түндүк-чыгыш Мексика кышкы убактысы", "AEDT": "Австралия чыгыш жайкы убактысы", "WITA": "Борбордук Индонезия убактысы", "MEZ": "Борбордук Европа кышкы убакыты", "ARST": "Аргентина жайкы убактысы", "AWST": "Австралия батыш кышкы убакыты", "CLT": "Чили кышкы убактысы", "ECT": "Экуадор убактысы", "CST": "Түндүк Америка, борбордук кышкы убактысы", "GYT": "Гвиана убактысы", "WIB": "Батыш Индонезия убактысы", "ACWST": "Австралия борбордук батыш кышкы убакыты", "HEPM": "Сен Пьер жана Микелон жайкы убактысы", "HNCU": "Куба кышкы убактысы", "UYT": "Уругвай кышкы убактысы", "CDT": "Түндүк Америка, борбордук жайкы убакыт", "WIT": "Чыгыш Индонезия убактысы", "SRT": "Суринаме убактысы", "WAST": "Батыш Африка жайкы убактысы", "EDT": "Түндүк Америка, чыгыш жайкы убактысы", "AKST": "Аляска кышкы убактысы", "HADT": "Гавайи-Алеут жайкы убактысы", "VET": "Венесуэла убактысы", "MESZ": "Борбордук Европа жайкы убактысы", "OESZ": "Чыгыш Европа жайкы убактысы", "MST": "MST", "HNOG": "Батыш Гренландия кышкы убактысы", "AWDT": "Австралия батыш жайкы убактысы", "LHST": "Лорд Хау кышкы убакыты", "ChST": "Чаморро убактысы", "ACST": "Австралия борбордук кышкы убакыты", "WART": "Батыш Аргентина кышкы убактысы", "GMT": "GMT, кышкы убакыты", "PST": "Түндүк Америка, Тынч океан кышкы убактысы", "WEZ": "Батыш Европа кышкы убакыты", "HNEG": "Чыгыш Гренландия кышкы убактысы", "HNPMX": "Мексика, Тынч океан кышкы убактысы", "ART": "Аргентина кышкы убактысы", "HKST": "Гонконг жайкы убактысы", "CLST": "Чили жайкы убактысы", "COST": "Колумбия жайкы убактысы", "AST": "Атлантика кышкы убактысы", "BT": "Бутан убактысы", "NZST": "Жаӊы Зеландия кышкы убакыты", "HECU": "Куба жайкы убактысы", "UYST": "Уругвай жайкы убактысы", "HAST": "Гавайи-Алеут кышкы убактысы", "HKT": "Гонконг кышкы убакыты", "CHADT": "Чатам жайкы убактысы", "EAT": "Чыгыш Африка убактысы", "OEZ": "Чыгыш Европа кышкы убакыты", "SGT": "Сингапур убактысы", "EST": "Түндүк Америка, чыгыш кышкы убактысы", "HNT": "Нюфаундлэнд кышкы убактысы", "HAT": "Нюфаундлэнд жайкы убактысы", "GFT": "Француз Гвиана убактысы", "ACDT": "Австралия борбордук жайкы убактысы", "MDT": "MDT", "MYT": "Малайзия убактысы", "IST": "Индия убактысы", "CAT": "Борбордук Африка убактысы", "HENOMX": "Түндүк-чыгыш Мексика жайкы убактысы", "ADT": "Атлантика жайкы убактысы", "SAST": "Түштүк Африка убактысы", "HEPMX": "Мексика, Тынч океан жайкы убактысы", "PDT": "Түндүк Америка, Тынч океан жайкы убактысы", "AEST": "Австралия чыгыш кышкы убакыты", "JST": "Жапон кышкы убакыты", "TMT": "Түркмөнстан кышкы убакыты", "WAT": "Батыш Африка кышкы убакыты", "WESZ": "Батыш Европа жайкы убактысы"},
++ locale: "ky_KG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"TMT": "TMT", "NZST": "NZST", "MYT": "MYT", "WAT": "WAT", "MDT": "MDT", "ACDT": "ACDT", "VET": "VET", "ACWST": "ACWST", "∅∅∅": "∅∅∅", "WARST": "WARST", "GYT": "GYT", "EST": "EST", "WIB": "WIB", "ECT": "ECT", "UYST": "UYST", "AKST": "AKST", "COST": "COST", "HKT": "HKT", "TMST": "TMST", "CHAST": "CHAST", "UYT": "UYT", "AWDT": "AWDT", "PST": "PST", "WAST": "WAST", "GFT": "GFT", "COT": "COT", "AST": "AST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "ART": "ART", "BOT": "BOT", "JST": "JST", "AWST": "AWST", "SRT": "SRT", "HAST": "HAST", "OEZ": "OEZ", "WIT": "WIT", "SAST": "SAST", "CDT": "CDT", "MST": "MST", "ADT": "ADT", "HADT": "HADT", "HEEG": "HEEG", "ACWDT": "ACWDT", "BT": "BT", "HNOG": "HNOG", "MESZ": "MESZ", "ACST": "ACST", "JDT": "JDT", "HEPM": "HEPM", "IST": "IST", "HNPM": "HNPM", "AEST": "AEST", "CHADT": "CHADT", "CAT": "CAT", "PDT": "PDT", "HECU": "HECU", "AEDT": "AEDT", "HKST": "HKST", "CLST": "CLST", "CST": "CST", "EAT": "EAT", "HNEG": "HNEG", "LHST": "LHST", "HEOG": "HEOG", "CLT": "CLT", "ARST": "ARST", "WEZ": "WEZ", "OESZ": "OESZ", "HNT": "HNT", "NZDT": "NZDT", "LHDT": "LHDT", "HAT": "HAT", "MEZ": "MEZ", "HEPMX": "HEPMX", "WESZ": "WESZ", "EDT": "EDT", "WITA": "WITA", "HNPMX": "HNPMX", "SGT": "SGT", "HNCU": "HNCU", "AKDT": "AKDT", "WART": "WART", "GMT": "GMT", "ChST": "ChST"},
+ }
+ }
+ 
+@@ -135,7 +112,7 @@ func (ky *ky_KG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ky *ky_KG) MonthsAbbreviated() []string {
+- return ky.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -145,7 +122,7 @@ func (ky *ky_KG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ky *ky_KG) MonthsNarrow() []string {
+- return ky.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -155,7 +132,7 @@ func (ky *ky_KG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ky *ky_KG) MonthsWide() []string {
+- return ky.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -201,75 +178,13 @@ func (ky *ky_KG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ky_KG' and handles both Whole and Real numbers based on 'v'
+ func (ky *ky_KG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ky.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ky.group) - 1; j >= 0; j-- {
+- b = append(b, ky.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ky.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ky_KG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ky *ky_KG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ky.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ky.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ky.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ky_KG'
+@@ -277,58 +192,7 @@ func (ky *ky_KG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ky.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ky.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ky.group) - 1; j >= 0; j-- {
+- b = append(b, ky.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ky.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ky.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ky.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ky_KG'
+@@ -337,65 +201,7 @@ func (ky *ky_KG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ky.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ky.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ky.group) - 1; j >= 0; j-- {
+- b = append(b, ky.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ky.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ky.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ky.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ky.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ky_KG'
+@@ -403,17 +209,6 @@ func (ky *ky_KG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -422,18 +217,6 @@ func (ky *ky_KG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d, 0xd0, 0xb6}...)
+- b = append(b, []byte{0x2e, 0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, ky.monthsAbbreviated[t.Month()]...)
+-
+ return string(b)
+ }
+ 
+@@ -442,18 +225,6 @@ func (ky *ky_KG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d, 0xd0, 0xb6}...)
+- b = append(b, []byte{0x2e, 0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, ky.monthsWide[t.Month()]...)
+-
+ return string(b)
+ }
+ 
+@@ -462,20 +233,6 @@ func (ky *ky_KG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d, 0xd0, 0xb6}...)
+- b = append(b, []byte{0x2e, 0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, ky.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, ky.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +241,6 @@ func (ky *ky_KG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ky.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -505,26 +249,6 @@ func (ky *ky_KG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ky.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ky.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -533,30 +257,6 @@ func (ky *ky_KG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ky.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ky.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -565,34 +265,5 @@ func (ky *ky_KG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ky.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ky.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ky.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/lag/lag.go b/lag/lag.go
+index 7efcc6e..5de65d1 100644
+--- a/lag/lag.go
++++ b/lag/lag.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"KSA", "KA"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kɨrɨsitʉ sɨ anavyaal", "Kɨrɨsitʉ akavyaalwe"},
+- timezones: map[string]string{"NZDT": "NZDT", "∅∅∅": "∅∅∅", "SGT": "SGT", "HEPMX": "HEPMX", "MST": "MST", "PST": "PST", "WESZ": "WESZ", "AWDT": "AWDT", "IST": "IST", "WAT": "WAT", "CAT": "CAT", "HNNOMX": "HNNOMX", "HAT": "HAT", "HKT": "HKT", "AWST": "AWST", "ART": "ART", "AEST": "AEST", "LHST": "LHST", "HEPM": "HEPM", "CHADT": "CHADT", "CLST": "CLST", "TMST": "TMST", "OESZ": "OESZ", "AST": "AST", "WIB": "WIB", "ACWST": "ACWST", "WITA": "WITA", "SAST": "SAST", "HNEG": "HNEG", "TMT": "TMT", "BOT": "BOT", "CST": "CST", "WIT": "WIT", "VET": "VET", "EAT": "EAT", "COT": "COT", "MYT": "MYT", "COST": "COST", "ACST": "ACST", "BT": "BT", "AEDT": "AEDT", "LHDT": "LHDT", "CLT": "CLT", "ACDT": "ACDT", "ADT": "ADT", "HAST": "HAST", "HECU": "HECU", "CHAST": "CHAST", "ChST": "ChST", "EST": "EST", "AKST": "AKST", "WEZ": "WEZ", "NZST": "NZST", "GFT": "GFT", "HNCU": "HNCU", "AKDT": "AKDT", "CDT": "CDT", "GYT": "GYT", "JST": "JST", "GMT": "GMT", "UYST": "UYST", "HNOG": "HNOG", "MESZ": "MESZ", "MEZ": "MEZ", "ECT": "ECT", "HENOMX": "HENOMX", "MDT": "MDT", "ARST": "ARST", "HNPM": "HNPM", "JDT": "JDT", "OEZ": "OEZ", "WARST": "WARST", "HNPMX": "HNPMX", "EDT": "EDT", "SRT": "SRT", "PDT": "PDT", "HKST": "HKST", "HNT": "HNT", "HEOG": "HEOG", "HEEG": "HEEG", "WAST": "WAST", "WART": "WART", "UYT": "UYT", "HADT": "HADT", "ACWDT": "ACWDT"},
++ timezones: map[string]string{"PDT": "PDT", "ACWDT": "ACWDT", "GYT": "GYT", "∅∅∅": "∅∅∅", "HECU": "HECU", "TMST": "TMST", "UYST": "UYST", "HADT": "HADT", "HNNOMX": "HNNOMX", "MYT": "MYT", "PST": "PST", "UYT": "UYT", "COT": "COT", "ART": "ART", "HAST": "HAST", "MESZ": "MESZ", "HNEG": "HNEG", "WAT": "WAT", "COST": "COST", "CLT": "CLT", "ADT": "ADT", "HNPM": "HNPM", "AKDT": "AKDT", "SAST": "SAST", "HNOG": "HNOG", "ACST": "ACST", "EAT": "EAT", "AWST": "AWST", "TMT": "TMT", "CLST": "CLST", "BOT": "BOT", "AEDT": "AEDT", "HNCU": "HNCU", "OESZ": "OESZ", "WART": "WART", "HKT": "HKT", "WITA": "WITA", "CDT": "CDT", "HENOMX": "HENOMX", "ECT": "ECT", "OEZ": "OEZ", "HKST": "HKST", "NZDT": "NZDT", "LHDT": "LHDT", "WAST": "WAST", "WIT": "WIT", "ACDT": "ACDT", "LHST": "LHST", "IST": "IST", "WESZ": "WESZ", "SGT": "SGT", "AKST": "AKST", "EST": "EST", "CAT": "CAT", "ARST": "ARST", "ChST": "ChST", "HEEG": "HEEG", "CHAST": "CHAST", "HNT": "HNT", "WARST": "WARST", "AST": "AST", "WEZ": "WEZ", "VET": "VET", "CST": "CST", "SRT": "SRT", "ACWST": "ACWST", "AWDT": "AWDT", "MDT": "MDT", "JST": "JST", "CHADT": "CHADT", "HNPMX": "HNPMX", "HEOG": "HEOG", "EDT": "EDT", "GMT": "GMT", "HEPMX": "HEPMX", "HAT": "HAT", "NZST": "NZST", "HEPM": "HEPM", "MEZ": "MEZ", "JDT": "JDT", "BT": "BT", "AEST": "AEST", "GFT": "GFT", "WIB": "WIB", "MST": "MST"},
+ }
+ }
+ 
+diff --git a/lag_TZ/lag_TZ.go b/lag_TZ/lag_TZ.go
+index 9f0ec72..dd330bf 100644
+--- a/lag_TZ/lag_TZ.go
++++ b/lag_TZ/lag_TZ.go
+@@ -10,64 +10,45 @@ import (
+ )
+ 
+ type lag_TZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'lag_TZ' locale
+ func New() locales.Translator {
+ return &lag_TZ{
+- locale: "lag_TZ",
+- pluralsCardinal: []locales.PluralRule{1, 2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyPositiveSuffix: "K",
+- currencyNegativePrefix: " ",
+- currencyNegativeSuffix: "K",
+- monthsAbbreviated: []string{"", "Fúngatɨ", "Naanɨ", "Keenda", "Ikúmi", "Inyambala", "Idwaata", "Mʉʉnchɨ", "Vɨɨrɨ", "Saatʉ", "Inyi", "Saano", "Sasatʉ"},
+- monthsNarrow: []string{"", "F", "N", "K", "I", "I", "I", "M", "V", "S", "I", "S", "S"},
+- monthsWide: []string{"", "Kʉfúngatɨ", "Kʉnaanɨ", "Kʉkeenda", "Kwiikumi", "Kwiinyambála", "Kwiidwaata", "Kʉmʉʉnchɨ", "Kʉvɨɨrɨ", "Kʉsaatʉ", "Kwiinyi", "Kʉsaano", "Kʉsasatʉ"},
+- daysAbbreviated: []string{"Píili", "Táatu", "Íne", "Táano", "Alh", "Ijm", "Móosi"},
+- daysNarrow: []string{"P", "T", "E", "O", "A", "I", "M"},
+- daysWide: []string{"Jumapíiri", "Jumatátu", "Jumaíne", "Jumatáano", "Alamíisi", "Ijumáa", "Jumamóosi"},
+- periodsAbbreviated: []string{"TOO", "MUU"},
+- periodsWide: []string{"TOO", "MUU"},
+- erasAbbreviated: []string{"KSA", "KA"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kɨrɨsitʉ sɨ anavyaal", "Kɨrɨsitʉ akavyaalwe"},
+- timezones: map[string]string{"AEDT": "AEDT", "WARST": "WARST", "HNCU": "HNCU", "HNPMX": "HNPMX", "AKST": "AKST", "PDT": "PDT", "ACST": "ACST", "MYT": "MYT", "IST": "IST", "HNEG": "HNEG", "TMST": "TMST", "OESZ": "OESZ", "MST": "MST", "HEPMX": "HEPMX", "HNT": "HNT", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "HNNOMX": "HNNOMX", "MDT": "MDT", "VET": "VET", "MEZ": "MEZ", "LHST": "LHST", "BOT": "BOT", "CAT": "CAT", "EST": "EST", "ADT": "ADT", "PST": "PST", "HEOG": "HEOG", "HKT": "HKT", "NZDT": "NZDT", "CLT": "CLT", "GMT": "GMT", "CST": "CST", "GYT": "GYT", "CHADT": "CHADT", "COST": "COST", "EDT": "EDT", "AKDT": "AKDT", "CDT": "CDT", "WEZ": "WEZ", "MESZ": "MESZ", "ECT": "ECT", "SGT": "SGT", "ACWDT": "ACWDT", "AEST": "AEST", "WAT": "WAT", "UYST": "UYST", "WIT": "WIT", "BT": "BT", "HAT": "HAT", "CHAST": "CHAST", "OEZ": "OEZ", "HEPM": "HEPM", "WAST": "WAST", "COT": "COT", "UYT": "UYT", "HNOG": "HNOG", "AWST": "AWST", "HKST": "HKST", "JST": "JST", "EAT": "EAT", "SRT": "SRT", "ARST": "ARST", "ChST": "ChST", "HEEG": "HEEG", "HENOMX": "HENOMX", "HECU": "HECU", "HAST": "HAST", "AWDT": "AWDT", "JDT": "JDT", "ACDT": "ACDT", "AST": "AST", "HADT": "HADT", "ACWST": "ACWST", "ART": "ART", "LHDT": "LHDT", "NZST": "NZST", "SAST": "SAST", "WART": "WART", "GFT": "GFT", "WESZ": "WESZ", "WITA": "WITA", "CLST": "CLST", "TMT": "TMT", "WIB": "WIB"},
++ locale: "lag_TZ",
++ pluralsCardinal: []locales.PluralRule{1, 2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACWDT": "ACWDT", "UYST": "UYST", "OEZ": "OEZ", "WART": "WART", "∅∅∅": "∅∅∅", "WAT": "WAT", "AKDT": "AKDT", "GFT": "GFT", "CAT": "CAT", "CLST": "CLST", "CST": "CST", "HNNOMX": "HNNOMX", "GYT": "GYT", "TMT": "TMT", "ACDT": "ACDT", "HEEG": "HEEG", "JDT": "JDT", "ACWST": "ACWST", "COT": "COT", "AWST": "AWST", "WESZ": "WESZ", "CHADT": "CHADT", "BOT": "BOT", "HECU": "HECU", "MDT": "MDT", "GMT": "GMT", "JST": "JST", "CHAST": "CHAST", "UYT": "UYT", "HAT": "HAT", "WIT": "WIT", "HNOG": "HNOG", "HEOG": "HEOG", "EAT": "EAT", "ACST": "ACST", "AEST": "AEST", "NZST": "NZST", "TMST": "TMST", "HNEG": "HNEG", "LHDT": "LHDT", "PST": "PST", "PDT": "PDT", "AKST": "AKST", "WARST": "WARST", "HKT": "HKT", "CDT": "CDT", "ART": "ART", "HNPM": "HNPM", "HEPM": "HEPM", "WEZ": "WEZ", "WAST": "WAST", "EDT": "EDT", "WITA": "WITA", "MST": "MST", "ADT": "ADT", "AEDT": "AEDT", "HNCU": "HNCU", "ChST": "ChST", "HADT": "HADT", "MEZ": "MEZ", "IST": "IST", "BT": "BT", "HNPMX": "HNPMX", "SAST": "SAST", "ARST": "ARST", "HAST": "HAST", "LHST": "LHST", "HEPMX": "HEPMX", "EST": "EST", "HKST": "HKST", "ECT": "ECT", "NZDT": "NZDT", "AST": "AST", "HENOMX": "HENOMX", "MESZ": "MESZ", "HNT": "HNT", "CLT": "CLT", "SRT": "SRT", "AWDT": "AWDT", "MYT": "MYT", "SGT": "SGT", "VET": "VET", "OESZ": "OESZ", "COST": "COST", "WIB": "WIB"},
+ }
+ }
+ 
+@@ -123,7 +104,7 @@ func (lag *lag_TZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (lag *lag_TZ) MonthsAbbreviated() []string {
+- return lag.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -133,7 +114,7 @@ func (lag *lag_TZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (lag *lag_TZ) MonthsNarrow() []string {
+- return lag.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -143,7 +124,7 @@ func (lag *lag_TZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (lag *lag_TZ) MonthsWide() []string {
+- return lag.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -203,40 +184,7 @@ func (lag *lag_TZ) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lag.currencies[currency]
+- l := len(s) + len(symbol) + 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lag.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(lag.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, lag.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, lag.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, lag.currencyPositiveSuffix...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'lag_TZ'
+@@ -245,57 +193,7 @@ func (lag *lag_TZ) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lag.currencies[currency]
+- l := len(s) + len(symbol) + 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lag.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(lag.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, lag.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, lag.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(lag.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, lag.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if num < 0 {
+- b = append(b, lag.currencyNegativeSuffix...)
+- } else {
+-
+- b = append(b, lag.currencyPositiveSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'lag_TZ'
+@@ -303,27 +201,6 @@ func (lag *lag_TZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -332,17 +209,6 @@ func (lag *lag_TZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, lag.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -351,17 +217,6 @@ func (lag *lag_TZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, lag.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -370,19 +225,6 @@ func (lag *lag_TZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, lag.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, lag.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -391,19 +233,6 @@ func (lag *lag_TZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lag.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -412,26 +241,6 @@ func (lag *lag_TZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lag.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lag.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -440,30 +249,6 @@ func (lag *lag_TZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lag.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lag.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -472,34 +257,5 @@ func (lag *lag_TZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lag.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lag.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := lag.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/lb/lb.go b/lb/lb.go
+index 0c07ca5..7aea838 100644
+--- a/lb/lb.go
++++ b/lb/lb.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"v. Chr.", "n. Chr."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"v. Chr.", "n. Chr."},
+- timezones: map[string]string{"UYST": "Uruguayanesch Summerzäit", "AKST": "Alaska-Normalzäit", "AKDT": "Alaska-Summerzäit", "HAST": "Hawaii-Aleuten-Normalzäit", "MEZ": "Mëtteleuropäesch Normalzäit", "JST": "Japanesch Normalzäit", "∅∅∅": "Amazonas-Summerzäit", "WAST": "Westafrikanesch Summerzäit", "COST": "Kolumbianesch Summerzäit", "WIB": "Westindonesesch Zäit", "HNPM": "Saint-Pierre-a-Miquelon-Normalzäit", "JDT": "Japanesch Summerzäit", "ChST": "Chamorro-Zäit", "HENOMX": "Nordwest-Mexiko-Summerzäit", "CST": "Nordamerikanesch Inland-Normalzäit", "SRT": "Suriname-Zäit", "AEST": "Ostaustralesch Normalzäit", "NZST": "Neiséiland-Normalzäit", "ACDT": "Zentralaustralesch Summerzäit", "OEZ": "Osteuropäesch Normalzäit", "AST": "Atlantik-Normalzäit", "CDT": "Nordamerikanesch Inland-Summerzäit", "HADT": "Hawaii-Aleuten-Summerzäit", "WESZ": "Westeuropäesch Summerzäit", "OESZ": "Osteuropäesch Summerzäit", "HNNOMX": "Nordwest-Mexiko-Normalzäit", "GMT": "Mëttler Greenwich-Zäit", "EST": "Nordamerikanesch Ostküsten-Normalzäit", "ACST": "Zentralaustralesch Normalzäit", "ADT": "Atlantik-Summerzäit", "HEOG": "Westgrönland-Summerzäit", "SAST": "Südafrikanesch Zäit", "IST": "Indesch Zäit", "HEEG": "Ostgrönland-Summerzäit", "WARST": "Westargentinesch Summerzäit", "AWDT": "Westaustralesch Summerzäit", "HKT": "Hong-Kong-Normalzäit", "NZDT": "Neiséiland-Summerzäit", "BOT": "Bolivianesch Zäit", "AEDT": "Ostaustralesch Summerzäit", "AWST": "Westaustralesch Normalzäit", "MESZ": "Mëtteleuropäesch Summerzäit", "HNEG": "Ostgrönland-Normalzäit", "WART": "Westargentinesch Normalzäit", "MST": "MST", "MDT": "MDT", "WEZ": "Westeuropäesch Normalzäit", "HEPM": "Saint-Pierre-a-Miquelon-Summerzäit", "ACWST": "Zentral-/Westaustralesch Normalzäit", "HNT": "Neifundland-Normalzäit", "TMT": "Turkmenistan-Normalzäit", "TMST": "Turkmenistan-Summerzäit", "CAT": "Zentralafrikanesch Zäit", "UYT": "Uruguyanesch Normalzäit", "WIT": "Ostindonesesch Zäit", "PDT": "Nordamerikanesch Westküsten-Summerzäit", "WITA": "Zentralindonesesch Zäit", "LHDT": "Lord-Howe-Summerzäit", "EAT": "Ostafrikanesch Zäit", "HNCU": "Kubanesch Normalzäit", "GYT": "Guyana-Zäit", "HNOG": "Westgrönland-Normalzäit", "ACWDT": "Zentral-/Westaustralesch Summerzäit", "HKST": "Hong-Kong-Summerzäit", "VET": "Venezuela-Zäit", "BT": "Bhutan-Zäit", "CLT": "Chilenesch Normalzäit", "GFT": "Franséisch-Guayane-Zäit", "SGT": "Singapur-Standardzäit", "EDT": "Nordamerikanesch Ostküsten-Summerzäit", "HNPMX": "Mexikanesch Pazifik-Normalzäit", "HEPMX": "Mexikanesch Pazifik-Summerzäit", "ART": "Argentinesch Normalzäit", "CHAST": "Chatham-Normalzäit", "ECT": "Ecuadorianesch Zäit", "WAT": "Westafrikanesch Normalzäit", "MYT": "Malaysesch Zäit", "PST": "Nordamerikanesch Westküsten-Normalzäit", "CHADT": "Chatham-Summerzäit", "CLST": "Chilenesch Summerzäit", "HECU": "Kubanesch Summerzäit", "ARST": "Argentinesch Summerzäit", "COT": "Kolumbianesch Normalzäit", "HAT": "Neifundland-Summerzäit", "LHST": "Lord-Howe-Normalzäit"},
++ timezones: map[string]string{"NZDT": "Neiséiland-Summerzäit", "ADT": "Atlantik-Summerzäit", "VET": "Venezuela-Zäit", "SAST": "Südafrikanesch Zäit", "HEOG": "Westgrönland-Summerzäit", "ECT": "Ecuadorianesch Zäit", "HAST": "Hawaii-Aleuten-Normalzäit", "AEST": "Ostaustralesch Normalzäit", "AKST": "Alaska-Normalzäit", "OESZ": "Osteuropäesch Summerzäit", "HAT": "Neifundland-Summerzäit", "COST": "Kolumbianesch Summerzäit", "MDT": "MDT", "SRT": "Suriname-Zäit", "MESZ": "Mëtteleuropäesch Summerzäit", "HNNOMX": "Nordwest-Mexiko-Normalzäit", "LHDT": "Lord-Howe-Summerzäit", "MYT": "Malaysesch Zäit", "COT": "Kolumbianesch Normalzäit", "IST": "Indesch Zäit", "HEEG": "Ostgrönland-Summerzäit", "AKDT": "Alaska-Summerzäit", "CAT": "Zentralafrikanesch Zäit", "GMT": "Mëttler Greenwich-Zäit", "ARST": "Argentinesch Summerzäit", "JDT": "Japanesch Summerzäit", "HECU": "Kubanesch Summerzäit", "HNOG": "Westgrönland-Normalzäit", "TMST": "Turkmenistan-Summerzäit", "ACDT": "Zentralaustralesch Summerzäit", "LHST": "Lord-Howe-Normalzäit", "UYST": "Uruguayanesch Summerzäit", "WARST": "Westargentinesch Summerzäit", "ChST": "Chamorro-Zäit", "PDT": "Nordamerikanesch Westküsten-Summerzäit", "CHADT": "Chatham-Summerzäit", "WEZ": "Westeuropäesch Normalzäit", "WAST": "Westafrikanesch Summerzäit", "WITA": "Zentralindonesesch Zäit", "CLST": "Chilenesch Summerzäit", "EAT": "Ostafrikanesch Zäit", "HNPMX": "Mexikanesch Pazifik-Normalzäit", "WIT": "Ostindonesesch Zäit", "HADT": "Hawaii-Aleuten-Summerzäit", "AWDT": "Westaustralesch Summerzäit", "BOT": "Bolivianesch Zäit", "NZST": "Neiséiland-Normalzäit", "AST": "Atlantik-Normalzäit", "ART": "Argentinesch Normalzäit", "HNCU": "Kubanesch Normalzäit", "TMT": "Turkmenistan-Normalzäit", "ACWST": "Zentral-/Westaustralesch Normalzäit", "GFT": "Franséisch-Guayane-Zäit", "HNEG": "Ostgrönland-Normalzäit", "HKST": "Hong-Kong-Summerzäit", "MST": "MST", "HNPM": "Saint-Pierre-a-Miquelon-Normalzäit", "PST": "Nordamerikanesch Westküsten-Normalzäit", "ACWDT": "Zentral-/Westaustralesch Summerzäit", "GYT": "Guyana-Zäit", "CLT": "Chilenesch Normalzäit", "WIB": "Westindonesesch Zäit", "HENOMX": "Nordwest-Mexiko-Summerzäit", "SGT": "Singapur-Standardzäit", "WAT": "Westafrikanesch Normalzäit", "∅∅∅": "Brasília-Summerzäit", "WART": "Westargentinesch Normalzäit", "EST": "Nordamerikanesch Ostküsten-Normalzäit", "EDT": "Nordamerikanesch Ostküsten-Summerzäit", "CST": "Nordamerikanesch Inland-Normalzäit", "CDT": "Nordamerikanesch Inland-Summerzäit", "AWST": "Westaustralesch Normalzäit", "HEPM": "Saint-Pierre-a-Miquelon-Summerzäit", "HNT": "Neifundland-Normalzäit", "UYT": "Uruguyanesch Normalzäit", "WESZ": "Westeuropäesch Summerzäit", "HEPMX": "Mexikanesch Pazifik-Summerzäit", "AEDT": "Ostaustralesch Summerzäit", "ACST": "Zentralaustralesch Normalzäit", "BT": "Bhutan-Zäit", "HKT": "Hong-Kong-Normalzäit", "JST": "Japanesch Normalzäit", "CHAST": "Chatham-Normalzäit", "OEZ": "Osteuropäesch Normalzäit", "MEZ": "Mëtteleuropäesch Normalzäit"},
+ }
+ }
+ 
+diff --git a/lb_LU/lb_LU.go b/lb_LU/lb_LU.go
+index 9ac1446..8800737 100644
+--- a/lb_LU/lb_LU.go
++++ b/lb_LU/lb_LU.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type lb_LU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'lb_LU' locale
+ func New() locales.Translator {
+ return &lb_LU{
+- locale: "lb_LU",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Jan.", "Feb.", "Mäe.", "Abr.", "Mee", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januar", "Februar", "Mäerz", "Abrëll", "Mee", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"},
+- daysAbbreviated: []string{"Son.", "Méi.", "Dën.", "Mët.", "Don.", "Fre.", "Sam."},
+- daysNarrow: []string{"S", "M", "D", "M", "D", "F", "S"},
+- daysShort: []string{"So.", "Mé.", "Dë.", "Më.", "Do.", "Fr.", "Sa."},
+- daysWide: []string{"Sonndeg", "Méindeg", "Dënschdeg", "Mëttwoch", "Donneschdeg", "Freideg", "Samschdeg"},
+- periodsAbbreviated: []string{"moies", "nomëttes"},
+- periodsNarrow: []string{"mo.", "nomë."},
+- periodsWide: []string{"moies", "nomëttes"},
+- erasAbbreviated: []string{"v. Chr.", "n. Chr."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"v. Chr.", "n. Chr."},
+- timezones: map[string]string{"ECT": "Ecuadorianesch Zäit", "HKT": "Hong-Kong-Normalzäit", "NZST": "Neiséiland-Normalzäit", "BOT": "Bolivianesch Zäit", "CST": "Nordamerikanesch Inland-Normalzäit", "HNOG": "Westgrönland-Normalzäit", "TMT": "Turkmenistan-Normalzäit", "EAT": "Ostafrikanesch Zäit", "WAT": "Westafrikanesch Normalzäit", "WARST": "Westargentinesch Summerzäit", "GMT": "Mëttler Greenwich-Zäit", "GYT": "Guyana-Zäit", "WIT": "Ostindonesesch Zäit", "AWST": "Westaustralesch Normalzäit", "HNCU": "Kubanesch Normalzäit", "AST": "Atlantik-Normalzäit", "AKST": "Alaska-Normalzäit", "PDT": "Nordamerikanesch Westküsten-Summerzäit", "AWDT": "Westaustralesch Summerzäit", "LHST": "Lord-Howe-Normalzäit", "JDT": "Japanesch Summerzäit", "∅∅∅": "Amazonas-Summerzäit", "HECU": "Kubanesch Summerzäit", "ACWST": "Zentral-/Westaustralesch Normalzäit", "WITA": "Zentralindonesesch Zäit", "CAT": "Zentralafrikanesch Zäit", "HNNOMX": "Nordwest-Mexiko-Normalzäit", "HNPMX": "Mexikanesch Pazifik-Normalzäit", "HEOG": "Westgrönland-Summerzäit", "WEZ": "Westeuropäesch Normalzäit", "MEZ": "Mëtteleuropäesch Normalzäit", "CHADT": "Chatham-Summerzäit", "SAST": "Südafrikanesch Zäit", "SGT": "Singapur-Standardzäit", "ARST": "Argentinesch Summerzäit", "HNT": "Neifundland-Normalzäit", "WAST": "Westafrikanesch Summerzäit", "AKDT": "Alaska-Summerzäit", "ART": "Argentinesch Normalzäit", "NZDT": "Neiséiland-Summerzäit", "CHAST": "Chatham-Normalzäit", "WART": "Westargentinesch Normalzäit", "MYT": "Malaysesch Zäit", "SRT": "Suriname-Zäit", "ACWDT": "Zentral-/Westaustralesch Summerzäit", "CLST": "Chilenesch Summerzäit", "ChST": "Chamorro-Zäit", "COT": "Kolumbianesch Normalzäit", "MST": "MST", "HAST": "Hawaii-Aleuten-Normalzäit", "BT": "Bhutan-Zäit", "AEDT": "Ostaustralesch Summerzäit", "LHDT": "Lord-Howe-Summerzäit", "IST": "Indesch Zäit", "HNEG": "Ostgrönland-Normalzäit", "HEEG": "Ostgrönland-Summerzäit", "GFT": "Franséisch-Guayane-Zäit", "ACST": "Zentralaustralesch Normalzäit", "HKST": "Hong-Kong-Summerzäit", "HNPM": "Saint-Pierre-a-Miquelon-Normalzäit", "HEPM": "Saint-Pierre-a-Miquelon-Summerzäit", "EDT": "Nordamerikanesch Ostküsten-Summerzäit", "MDT": "MDT", "HEPMX": "Mexikanesch Pazifik-Summerzäit", "HAT": "Neifundland-Summerzäit", "ACDT": "Zentralaustralesch Summerzäit", "COST": "Kolumbianesch Summerzäit", "UYT": "Uruguyanesch Normalzäit", "UYST": "Uruguayanesch Summerzäit", "CDT": "Nordamerikanesch Inland-Summerzäit", "PST": "Nordamerikanesch Westküsten-Normalzäit", "JST": "Japanesch Normalzäit", "TMST": "Turkmenistan-Summerzäit", "WIB": "Westindonesesch Zäit", "HADT": "Hawaii-Aleuten-Summerzäit", "WESZ": "Westeuropäesch Summerzäit", "MESZ": "Mëtteleuropäesch Summerzäit", "CLT": "Chilenesch Normalzäit", "OEZ": "Osteuropäesch Normalzäit", "OESZ": "Osteuropäesch Summerzäit", "EST": "Nordamerikanesch Ostküsten-Normalzäit", "ADT": "Atlantik-Summerzäit", "VET": "Venezuela-Zäit", "HENOMX": "Nordwest-Mexiko-Summerzäit", "AEST": "Ostaustralesch Normalzäit"},
++ locale: "lb_LU",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"JDT": "JDT", "CHAST": "CHAST", "VET": "VET", "HNT": "HNT", "CDT": "CDT", "MYT": "MYT", "HNPMX": "HNPMX", "AKDT": "AKDT", "ACDT": "ACDT", "HENOMX": "HENOMX", "CLT": "CLT", "ADT": "ADT", "CAT": "CAT", "NZST": "NZST", "HAST": "HAST", "HNEG": "HNEG", "COST": "COST", "HNOG": "HNOG", "HKST": "HKST", "GMT": "GMT", "BOT": "BOT", "EAT": "EAT", "HNCU": "HNCU", "EDT": "EDT", "HKT": "HKT", "HEPM": "HEPM", "TMT": "TMT", "HADT": "HADT", "ARST": "ARST", "LHDT": "LHDT", "BT": "BT", "AEST": "AEST", "WEZ": "WEZ", "WAT": "WAT", "CLST": "CLST", "MDT": "MDT", "AST": "AST", "SRT": "SRT", "ACST": "ACST", "HEEG": "HEEG", "AEDT": "AEDT", "WARST": "WARST", "GYT": "GYT", "MST": "MST", "ChST": "ChST", "UYST": "UYST", "ACWST": "ACWST", "SAST": "SAST", "∅∅∅": "∅∅∅", "AKST": "AKST", "COT": "COT", "JST": "JST", "MESZ": "MESZ", "IST": "IST", "WIT": "WIT", "ECT": "ECT", "WIB": "WIB", "PST": "PST", "ACWDT": "ACWDT", "OESZ": "OESZ", "EST": "EST", "ART": "ART", "LHST": "LHST", "WESZ": "WESZ", "SGT": "SGT", "OEZ": "OEZ", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "CHADT": "CHADT", "HEPMX": "HEPMX", "WAST": "WAST", "TMST": "TMST", "MEZ": "MEZ", "CST": "CST", "AWST": "AWST", "HAT": "HAT", "HEOG": "HEOG", "WITA": "WITA", "PDT": "PDT", "HECU": "HECU", "GFT": "GFT", "WART": "WART", "AWDT": "AWDT", "UYT": "UYT"},
+ }
+ }
+ 
+@@ -126,7 +101,7 @@ func (lb *lb_LU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (lb *lb_LU) MonthsAbbreviated() []string {
+- return lb.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +111,7 @@ func (lb *lb_LU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (lb *lb_LU) MonthsNarrow() []string {
+- return lb.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +121,7 @@ func (lb *lb_LU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (lb *lb_LU) MonthsWide() []string {
+- return lb.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,75 +167,13 @@ func (lb *lb_LU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'lb_LU' and handles both Whole and Real numbers based on 'v'
+ func (lb *lb_LU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lb.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, lb.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, lb.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'lb_LU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (lb *lb_LU) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lb.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, lb.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, lb.percentSuffix...)
+-
+- b = append(b, lb.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'lb_LU'
+@@ -268,56 +181,7 @@ func (lb *lb_LU) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lb.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lb.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, lb.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, lb.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, lb.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, lb.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'lb_LU'
+@@ -326,63 +190,7 @@ func (lb *lb_LU) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lb.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lb.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, lb.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, lb.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, lb.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, lb.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, lb.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'lb_LU'
+@@ -390,27 +198,6 @@ func (lb *lb_LU) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -419,17 +206,6 @@ func (lb *lb_LU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, lb.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -438,17 +214,6 @@ func (lb *lb_LU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, lb.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -457,19 +222,6 @@ func (lb *lb_LU) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, lb.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, lb.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -478,19 +230,6 @@ func (lb *lb_LU) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -499,26 +238,6 @@ func (lb *lb_LU) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -527,30 +246,6 @@ func (lb *lb_LU) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -559,34 +254,5 @@ func (lb *lb_LU) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := lb.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/lg/lg.go b/lg/lg.go
+index 0236c2a..1eec4bd 100644
+--- a/lg/lg.go
++++ b/lg/lg.go
+@@ -57,7 +57,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kulisito nga tannaza", "Bukya Kulisito Azaal"},
+- timezones: map[string]string{"PST": "PST", "ACWST": "ACWST", "HKST": "HKST", "MEZ": "MEZ", "MESZ": "MESZ", "HAST": "HAST", "ART": "ART", "CHADT": "CHADT", "HNCU": "HNCU", "AST": "AST", "HADT": "HADT", "MST": "MST", "WEZ": "WEZ", "WESZ": "WESZ", "HAT": "HAT", "SAST": "SAST", "BOT": "BOT", "HENOMX": "HENOMX", "WAT": "WAT", "VET": "VET", "HNOG": "HNOG", "HEOG": "HEOG", "NZST": "NZST", "IST": "IST", "TMT": "TMT", "HEEG": "HEEG", "HNPMX": "HNPMX", "MYT": "MYT", "HEPM": "HEPM", "LHDT": "LHDT", "JST": "JST", "ACDT": "ACDT", "COT": "COT", "EDT": "EDT", "UYST": "UYST", "CST": "CST", "HNPM": "HNPM", "LHST": "LHST", "TMST": "TMST", "WAST": "WAST", "AKST": "AKST", "AKDT": "AKDT", "ACWDT": "ACWDT", "ECT": "ECT", "CAT": "CAT", "COST": "COST", "HEPMX": "HEPMX", "GYT": "GYT", "ARST": "ARST", "WARST": "WARST", "HECU": "HECU", "ChST": "ChST", "GFT": "GFT", "OESZ": "OESZ", "SGT": "SGT", "UYT": "UYT", "WIB": "WIB", "JDT": "JDT", "CLST": "CLST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "EST": "EST", "AEDT": "AEDT", "CLT": "CLT", "HNNOMX": "HNNOMX", "WART": "WART", "SRT": "SRT", "HNT": "HNT", "AWDT": "AWDT", "ACST": "ACST", "MDT": "MDT", "ADT": "ADT", "AEST": "AEST", "CHAST": "CHAST", "AWST": "AWST", "NZDT": "NZDT", "OEZ": "OEZ", "GMT": "GMT", "WIT": "WIT", "BT": "BT", "PDT": "PDT", "HKT": "HKT", "WITA": "WITA", "EAT": "EAT", "CDT": "CDT"},
++ timezones: map[string]string{"HADT": "HADT", "ECT": "ECT", "ARST": "ARST", "CLT": "CLT", "BT": "BT", "VET": "VET", "HNOG": "HNOG", "CAT": "CAT", "MEZ": "MEZ", "HEEG": "HEEG", "AWDT": "AWDT", "LHDT": "LHDT", "HNPM": "HNPM", "CHADT": "CHADT", "WAT": "WAT", "WIT": "WIT", "HECU": "HECU", "WARST": "WARST", "HEOG": "HEOG", "HKT": "HKT", "ADT": "ADT", "AWST": "AWST", "AEST": "AEST", "WAST": "WAST", "OESZ": "OESZ", "AEDT": "AEDT", "MDT": "MDT", "AST": "AST", "ACDT": "ACDT", "HNEG": "HNEG", "LHST": "LHST", "AKDT": "AKDT", "CLST": "CLST", "EAT": "EAT", "HAST": "HAST", "JST": "JST", "PST": "PST", "HNCU": "HNCU", "ChST": "ChST", "BOT": "BOT", "GYT": "GYT", "∅∅∅": "∅∅∅", "COT": "COT", "EDT": "EDT", "MST": "MST", "ACWDT": "ACWDT", "AKST": "AKST", "OEZ": "OEZ", "TMT": "TMT", "GMT": "GMT", "ART": "ART", "SRT": "SRT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "GFT": "GFT", "COST": "COST", "MESZ": "MESZ", "ACST": "ACST", "HEPM": "HEPM", "UYT": "UYT", "IST": "IST", "EST": "EST", "CST": "CST", "CDT": "CDT", "HNPMX": "HNPMX", "HNT": "HNT", "SAST": "SAST", "WIB": "WIB", "PDT": "PDT", "WEZ": "WEZ", "WESZ": "WESZ", "HEPMX": "HEPMX", "WART": "WART", "WITA": "WITA", "UYST": "UYST", "ACWST": "ACWST", "SGT": "SGT", "HKST": "HKST", "MYT": "MYT", "NZST": "NZST", "NZDT": "NZDT", "JDT": "JDT", "CHAST": "CHAST", "HAT": "HAT", "TMST": "TMST"},
+ }
+ }
+ 
+diff --git a/lg_UG/lg_UG.go b/lg_UG/lg_UG.go
+index 4f1577b..6fd1d81 100644
+--- a/lg_UG/lg_UG.go
++++ b/lg_UG/lg_UG.go
+@@ -42,22 +42,13 @@ type lg_UG struct {
+ // New returns a new instance of translator for the 'lg_UG' locale
+ func New() locales.Translator {
+ return &lg_UG{
+- locale: "lg_UG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apu", "Maa", "Juu", "Jul", "Agu", "Seb", "Oki", "Nov", "Des"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Janwaliyo", "Febwaliyo", "Marisi", "Apuli", "Maayi", "Juuni", "Julaayi", "Agusito", "Sebuttemba", "Okitobba", "Novemba", "Desemba"},
+- daysAbbreviated: []string{"Sab", "Bal", "Lw2", "Lw3", "Lw4", "Lw5", "Lw6"},
+- daysNarrow: []string{"S", "B", "L", "L", "L", "L", "L"},
+- daysWide: []string{"Sabbiiti", "Balaza", "Lwakubiri", "Lwakusatu", "Lwakuna", "Lwakutaano", "Lwamukaaga"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kulisito nga tannaza", "Bukya Kulisito Azaal"},
+- timezones: map[string]string{"CLST": "CLST", "CAT": "CAT", "GMT": "GMT", "GYT": "GYT", "WESZ": "WESZ", "EAT": "EAT", "WIT": "WIT", "ECT": "ECT", "COST": "COST", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "HNT": "HNT", "HKT": "HKT", "BOT": "BOT", "WAST": "WAST", "SGT": "SGT", "EDT": "EDT", "BT": "BT", "PST": "PST", "AKDT": "AKDT", "MESZ": "MESZ", "PDT": "PDT", "IST": "IST", "TMST": "TMST", "HECU": "HECU", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "UYT": "UYT", "HADT": "HADT", "JST": "JST", "∅∅∅": "∅∅∅", "ACDT": "ACDT", "OESZ": "OESZ", "ACWST": "ACWST", "HKST": "HKST", "HAST": "HAST", "VET": "VET", "ARST": "ARST", "LHDT": "LHDT", "NZST": "NZST", "TMT": "TMT", "COT": "COT", "CDT": "CDT", "ART": "ART", "HNPM": "HNPM", "MEZ": "MEZ", "NZDT": "NZDT", "AEST": "AEST", "LHST": "LHST", "CLT": "CLT", "ACST": "ACST", "EST": "EST", "AST": "AST", "AKST": "AKST", "HAT": "HAT", "CHADT": "CHADT", "WARST": "WARST", "HNCU": "HNCU", "MST": "MST", "MDT": "MDT", "AWST": "AWST", "ChST": "ChST", "HNNOMX": "HNNOMX", "SRT": "SRT", "HNOG": "HNOG", "AWDT": "AWDT", "CHAST": "CHAST", "OEZ": "OEZ", "CST": "CST", "HEOG": "HEOG", "AEDT": "AEDT", "WITA": "WITA", "WAT": "WAT", "WART": "WART", "MYT": "MYT", "UYST": "UYST", "WEZ": "WEZ", "HEPM": "HEPM", "HNEG": "HNEG", "SAST": "SAST", "JDT": "JDT", "HEEG": "HEEG", "GFT": "GFT", "ADT": "ADT", "WIB": "WIB"},
++ locale: "lg_UG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"UYT": "UYT", "IST": "IST", "HEPMX": "HEPMX", "HAT": "HAT", "LHST": "LHST", "PDT": "PDT", "ACWDT": "ACWDT", "CHAST": "CHAST", "HECU": "HECU", "WARST": "WARST", "WIT": "WIT", "COT": "COT", "HKST": "HKST", "ECT": "ECT", "NZST": "NZST", "ART": "ART", "GMT": "GMT", "JDT": "JDT", "UYST": "UYST", "VET": "VET", "MDT": "MDT", "AKST": "AKST", "GFT": "GFT", "HEOG": "HEOG", "TMST": "TMST", "CAT": "CAT", "HNT": "HNT", "GYT": "GYT", "COST": "COST", "CST": "CST", "MST": "MST", "NZDT": "NZDT", "BOT": "BOT", "AWST": "AWST", "EST": "EST", "EAT": "EAT", "MEZ": "MEZ", "HEEG": "HEEG", "HNPM": "HNPM", "HEPM": "HEPM", "OEZ": "OEZ", "WART": "WART", "HENOMX": "HENOMX", "JST": "JST", "LHDT": "LHDT", "HNCU": "HNCU", "OESZ": "OESZ", "SAST": "SAST", "AEST": "AEST", "AEDT": "AEDT", "SGT": "SGT", "HNOG": "HNOG", "WITA": "WITA", "ARST": "ARST", "HNNOMX": "HNNOMX", "∅∅∅": "∅∅∅", "CLT": "CLT", "CLST": "CLST", "WIB": "WIB", "CDT": "CDT", "ChST": "ChST", "ACWST": "ACWST", "WAST": "WAST", "AST": "AST", "SRT": "SRT", "HAST": "HAST", "HNEG": "HNEG", "PST": "PST", "HNPMX": "HNPMX", "WESZ": "WESZ", "EDT": "EDT", "HADT": "HADT", "ACST": "ACST", "ACDT": "ACDT", "MYT": "MYT", "BT": "BT", "WAT": "WAT", "AKDT": "AKDT", "ADT": "ADT", "MESZ": "MESZ", "HKT": "HKT", "TMT": "TMT", "AWDT": "AWDT", "CHADT": "CHADT", "WEZ": "WEZ"},
+ }
+ }
+ 
+@@ -110,7 +101,7 @@ func (lg *lg_UG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (lg *lg_UG) MonthsAbbreviated() []string {
+- return lg.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -120,7 +111,7 @@ func (lg *lg_UG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (lg *lg_UG) MonthsNarrow() []string {
+- return lg.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -130,7 +121,7 @@ func (lg *lg_UG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (lg *lg_UG) MonthsWide() []string {
+- return lg.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,54 +181,7 @@ func (lg *lg_UG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lg.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lg.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, lg.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, lg.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, lg.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'lg_UG'
+@@ -246,61 +190,7 @@ func (lg *lg_UG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lg.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lg.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, lg.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, lg.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, lg.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'lg_UG'
+@@ -308,27 +198,6 @@ func (lg *lg_UG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -337,17 +206,6 @@ func (lg *lg_UG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, lg.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -356,17 +214,6 @@ func (lg *lg_UG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, lg.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -375,19 +222,6 @@ func (lg *lg_UG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, lg.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, lg.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -396,19 +230,6 @@ func (lg *lg_UG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -417,26 +238,6 @@ func (lg *lg_UG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -445,30 +246,6 @@ func (lg *lg_UG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -477,34 +254,5 @@ func (lg *lg_UG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := lg.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/lkt/lkt.go b/lkt/lkt.go
+index 7611aab..d7cae50 100644
+--- a/lkt/lkt.go
++++ b/lkt/lkt.go
+@@ -65,7 +65,7 @@ func New() locales.Translator {
+ monthsWide: []string{"", "Wiótheȟika Wí", "Thiyóȟeyuŋka Wí", "Ištáwičhayazaŋ Wí", "Pȟežítȟo Wí", "Čhaŋwápetȟo Wí", "Wípazukȟa-wašté Wí", "Čhaŋpȟásapa Wí", "Wasútȟuŋ Wí", "Čhaŋwápeǧi Wí", "Čhaŋwápe-kasná Wí", "Waníyetu Wí", "Tȟahékapšuŋ Wí"},
+ daysNarrow: []string{"A", "W", "N", "Y", "T", "Z", "O"},
+ daysWide: []string{"Aŋpétuwakȟaŋ", "Aŋpétuwaŋži", "Aŋpétunuŋpa", "Aŋpétuyamni", "Aŋpétutopa", "Aŋpétuzaptaŋ", "Owáŋgyužažapi"},
+- timezones: map[string]string{"HADT": "HADT", "WEZ": "WEZ", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "PST": "PST", "ARST": "ARST", "HEPM": "HEPM", "HEEG": "HEEG", "AEDT": "AEDT", "MYT": "MYT", "WIB": "WIB", "WIT": "WIT", "HEOG": "HEOG", "AWDT": "AWDT", "GFT": "GFT", "WARST": "WARST", "MDT": "MDT", "LHST": "LHST", "ACST": "ACST", "BT": "BT", "ACWST": "ACWST", "CHADT": "CHADT", "COST": "COST", "HNCU": "HNCU", "HNPMX": "HNPMX", "PDT": "PDT", "JDT": "JDT", "COT": "COT", "HENOMX": "HENOMX", "EDT": "EDT", "HNT": "HNT", "BOT": "BOT", "TMT": "TMT", "HAST": "HAST", "SRT": "SRT", "HKT": "HKT", "HKST": "HKST", "HNPM": "HNPM", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "EAT": "EAT", "GMT": "GMT", "UYT": "UYT", "AST": "AST", "HNOG": "HNOG", "JST": "JST", "ChST": "ChST", "WAT": "WAT", "OEZ": "OEZ", "UYST": "UYST", "WITA": "WITA", "NZST": "NZST", "CLST": "CLST", "TMST": "TMST", "SAST": "SAST", "ART": "ART", "AEST": "AEST", "HNEG": "HNEG", "WAST": "WAST", "SGT": "SGT", "HECU": "HECU", "EST": "EST", "VET": "VET", "NZDT": "NZDT", "CST": "CST", "ADT": "ADT", "CAT": "CAT", "ECT": "ECT", "WART": "WART", "HEPMX": "HEPMX", "AKST": "AKST", "AKDT": "AKDT", "GYT": "GYT", "ACWDT": "ACWDT", "AWST": "AWST", "CHAST": "CHAST", "IST": "IST", "CLT": "CLT", "LHDT": "LHDT", "ACDT": "ACDT", "MST": "MST", "CDT": "CDT", "WESZ": "WESZ", "HAT": "HAT", "MEZ": "MEZ"},
++ timezones: map[string]string{"HNT": "HNT", "WART": "WART", "EST": "EST", "MST": "MST", "ART": "ART", "MYT": "MYT", "ACWDT": "ACWDT", "OEZ": "OEZ", "GMT": "GMT", "HAST": "HAST", "TMST": "TMST", "EAT": "EAT", "JST": "JST", "HNPMX": "HNPMX", "GYT": "GYT", "ACDT": "ACDT", "CHADT": "CHADT", "HECU": "HECU", "SGT": "SGT", "WAT": "WAT", "HNEG": "HNEG", "HENOMX": "HENOMX", "ACST": "ACST", "TMT": "TMT", "HADT": "HADT", "WARST": "WARST", "HKST": "HKST", "ChST": "ChST", "ADT": "ADT", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "WAST": "WAST", "HEPM": "HEPM", "AEST": "AEST", "WIB": "WIB", "CHAST": "CHAST", "PDT": "PDT", "ECT": "ECT", "AST": "AST", "BT": "BT", "GFT": "GFT", "CLT": "CLT", "WIT": "WIT", "HNOG": "HNOG", "MEZ": "MEZ", "HNPM": "HNPM", "ACWST": "ACWST", "EDT": "EDT", "HKT": "HKT", "WITA": "WITA", "CDT": "CDT", "AWST": "AWST", "PST": "PST", "COST": "COST", "WEZ": "WEZ", "AKST": "AKST", "NZST": "NZST", "ARST": "ARST", "AEDT": "AEDT", "IST": "IST", "HNCU": "HNCU", "CAT": "CAT", "BOT": "BOT", "VET": "VET", "HAT": "HAT", "SAST": "SAST", "JDT": "JDT", "WESZ": "WESZ", "AKDT": "AKDT", "CLST": "CLST", "HEOG": "HEOG", "CST": "CST", "UYST": "UYST", "HEPMX": "HEPMX", "COT": "COT", "UYT": "UYT", "OESZ": "OESZ", "HEEG": "HEEG", "AWDT": "AWDT", "LHST": "LHST", "MDT": "MDT", "SRT": "SRT", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "NZDT": "NZDT"},
+ }
+ }
+ 
+diff --git a/lkt_US/lkt_US.go b/lkt_US/lkt_US.go
+index 069715a..9a28bb1 100644
+--- a/lkt_US/lkt_US.go
++++ b/lkt_US/lkt_US.go
+@@ -10,62 +10,45 @@ import (
+ )
+ 
+ type lkt_US struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'lkt_US' locale
+ func New() locales.Translator {
+ return &lkt_US{
+- locale: "lkt_US",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyPositiveSuffix: "K",
+- currencyNegativePrefix: " ",
+- currencyNegativeSuffix: "K",
+- monthsWide: []string{"", "Wiótheȟika Wí", "Thiyóȟeyuŋka Wí", "Ištáwičhayazaŋ Wí", "Pȟežítȟo Wí", "Čhaŋwápetȟo Wí", "Wípazukȟa-wašté Wí", "Čhaŋpȟásapa Wí", "Wasútȟuŋ Wí", "Čhaŋwápeǧi Wí", "Čhaŋwápe-kasná Wí", "Waníyetu Wí", "Tȟahékapšuŋ Wí"},
+- daysNarrow: []string{"A", "W", "N", "Y", "T", "Z", "O"},
+- daysWide: []string{"Aŋpétuwakȟaŋ", "Aŋpétuwaŋži", "Aŋpétunuŋpa", "Aŋpétuyamni", "Aŋpétutopa", "Aŋpétuzaptaŋ", "Owáŋgyužažapi"},
+- timezones: map[string]string{"∅∅∅": "∅∅∅", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "HNT": "HNT", "VET": "VET", "MESZ": "MESZ", "ACWDT": "ACWDT", "AWDT": "AWDT", "JST": "JST", "ECT": "ECT", "CAT": "CAT", "WAT": "WAT", "COST": "COST", "SRT": "SRT", "NZDT": "NZDT", "CHAST": "CHAST", "LHST": "LHST", "IST": "IST", "CLT": "CLT", "GFT": "GFT", "ACST": "ACST", "EAT": "EAT", "AST": "AST", "HKST": "HKST", "HEOG": "HEOG", "NZST": "NZST", "CLST": "CLST", "TMT": "TMT", "HNEG": "HNEG", "GMT": "GMT", "HAST": "HAST", "BT": "BT", "JDT": "JDT", "WARST": "WARST", "WITA": "WITA", "ChST": "ChST", "HENOMX": "HENOMX", "ACWST": "ACWST", "COT": "COT", "AKST": "AKST", "AEST": "AEST", "AWST": "AWST", "EST": "EST", "HEPMX": "HEPMX", "HADT": "HADT", "ART": "ART", "HNOG": "HNOG", "WESZ": "WESZ", "LHDT": "LHDT", "HEEG": "HEEG", "HNCU": "HNCU", "MST": "MST", "PDT": "PDT", "HAT": "HAT", "TMST": "TMST", "HECU": "HECU", "GYT": "GYT", "MEZ": "MEZ", "SAST": "SAST", "SGT": "SGT", "AKDT": "AKDT", "AEDT": "AEDT", "HNPM": "HNPM", "MYT": "MYT", "UYT": "UYT", "HKT": "HKT", "CHADT": "CHADT", "BOT": "BOT", "OESZ": "OESZ", "UYST": "UYST", "CDT": "CDT", "ARST": "ARST", "PST": "PST", "HEPM": "HEPM", "ACDT": "ACDT", "WART": "WART", "EDT": "EDT", "ADT": "ADT", "CST": "CST", "WIT": "WIT", "WAST": "WAST", "OEZ": "OEZ", "MDT": "MDT", "HNPMX": "HNPMX", "WIB": "WIB"},
++ locale: "lkt_US",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"COST": "COST", "HNOG": "HNOG", "TMT": "TMT", "NZDT": "NZDT", "WIB": "WIB", "ARST": "ARST", "BT": "BT", "UYST": "UYST", "WAST": "WAST", "COT": "COT", "WITA": "WITA", "JDT": "JDT", "HNPMX": "HNPMX", "OEZ": "OEZ", "HEOG": "HEOG", "CLST": "CLST", "PST": "PST", "WEZ": "WEZ", "HKT": "HKT", "HAST": "HAST", "HENOMX": "HENOMX", "JST": "JST", "UYT": "UYT", "SAST": "SAST", "ChST": "ChST", "MESZ": "MESZ", "HNEG": "HNEG", "WAT": "WAT", "AKST": "AKST", "OESZ": "OESZ", "GFT": "GFT", "CLT": "CLT", "AEST": "AEST", "HEPMX": "HEPMX", "HAT": "HAT", "IST": "IST", "SGT": "SGT", "WIT": "WIT", "MEZ": "MEZ", "ACDT": "ACDT", "CHADT": "CHADT", "GYT": "GYT", "EST": "EST", "ACST": "ACST", "AWDT": "AWDT", "HEPM": "HEPM", "NZST": "NZST", "ECT": "ECT", "HNT": "HNT", "HKST": "HKST", "ADT": "ADT", "BOT": "BOT", "WESZ": "WESZ", "WART": "WART", "WARST": "WARST", "EDT": "EDT", "TMST": "TMST", "CAT": "CAT", "CST": "CST", "CDT": "CDT", "MST": "MST", "ART": "ART", "HADT": "HADT", "MYT": "MYT", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "GMT": "GMT", "SRT": "SRT", "EAT": "EAT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "PDT": "PDT", "ACWST": "ACWST", "CHAST": "CHAST", "LHST": "LHST", "LHDT": "LHDT", "HNPM": "HNPM", "VET": "VET", "AKDT": "AKDT", "MDT": "MDT", "AST": "AST", "AWST": "AWST", "ACWDT": "ACWDT", "HNCU": "HNCU", "HECU": "HECU"},
+ }
+ }
+ 
+@@ -131,7 +114,7 @@ func (lkt *lkt_US) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (lkt *lkt_US) MonthsWide() []string {
+- return lkt.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -191,40 +174,7 @@ func (lkt *lkt_US) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lkt.currencies[currency]
+- l := len(s) + len(symbol) + 5
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lkt.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(lkt.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, lkt.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, lkt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, lkt.currencyPositiveSuffix...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'lkt_US'
+@@ -233,57 +183,7 @@ func (lkt *lkt_US) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lkt.currencies[currency]
+- l := len(s) + len(symbol) + 5
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lkt.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(lkt.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, lkt.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, lkt.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(lkt.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, lkt.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if num < 0 {
+- b = append(b, lkt.currencyNegativeSuffix...)
+- } else {
+-
+- b = append(b, lkt.currencyPositiveSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'lkt_US'
+@@ -291,17 +191,6 @@ func (lkt *lkt_US) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -310,17 +199,6 @@ func (lkt *lkt_US) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, lkt.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -329,17 +207,6 @@ func (lkt *lkt_US) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, lkt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -348,19 +215,6 @@ func (lkt *lkt_US) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, lkt.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, lkt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -369,28 +223,6 @@ func (lkt *lkt_US) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, lkt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, lkt.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, lkt.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -399,35 +231,6 @@ func (lkt *lkt_US) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, lkt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lkt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, lkt.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, lkt.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -436,40 +239,6 @@ func (lkt *lkt_US) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, lkt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lkt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, lkt.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, lkt.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -478,44 +247,5 @@ func (lkt *lkt_US) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, lkt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lkt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, lkt.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, lkt.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := lkt.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ln/ln.go b/ln/ln.go
+index c86f7df..3d3118b 100644
+--- a/ln/ln.go
++++ b/ln/ln.go
+@@ -69,7 +69,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"libóso ya", "nsima ya Y"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Yambo ya Yézu Krís", "Nsima ya Yézu Krís"},
+- timezones: map[string]string{"WART": "WART", "SRT": "SRT", "AEDT": "AEDT", "IST": "IST", "CLST": "CLST", "HNEG": "HNEG", "COST": "COST", "CDT": "CDT", "ART": "ART", "PST": "PST", "AWDT": "AWDT", "MEZ": "MEZ", "CAT": "Ntángo ya Lubumbashi", "HNNOMX": "HNNOMX", "SGT": "SGT", "PDT": "PDT", "AWST": "AWST", "LHST": "LHST", "NZDT": "NZDT", "CHADT": "CHADT", "HNCU": "HNCU", "MYT": "MYT", "WIB": "WIB", "SAST": "Ntángo ya Afríka ya Sidi", "JDT": "JDT", "ECT": "ECT", "ACST": "ACST", "WARST": "WARST", "HECU": "HECU", "UYST": "UYST", "WITA": "WITA", "HNPM": "HNPM", "TMT": "TMT", "TMST": "TMST", "AKDT": "AKDT", "BT": "BT", "HEEG": "HEEG", "COT": "COT", "EST": "EST", "ACWST": "ACWST", "AEST": "AEST", "NZST": "NZST", "BOT": "BOT", "HENOMX": "HENOMX", "HAT": "HAT", "∅∅∅": "∅∅∅", "ACDT": "ACDT", "GMT": "Ntángo ya Londoni", "EDT": "EDT", "CHAST": "CHAST", "WAT": "WAT", "HEPMX": "HEPMX", "AKST": "AKST", "MDT": "MDT", "HADT": "HADT", "WESZ": "WESZ", "ARST": "ARST", "CLT": "CLT", "ChST": "ChST", "WAST": "WAST", "AST": "AST", "MST": "MST", "WEZ": "WEZ", "ACWDT": "ACWDT", "HNOG": "HNOG", "OEZ": "OEZ", "HEPM": "HEPM", "OESZ": "OESZ", "WIT": "WIT", "HNT": "HNT", "HNPMX": "HNPMX", "CST": "CST", "VET": "VET", "GFT": "GFT", "HKST": "HKST", "MESZ": "MESZ", "ADT": "ADT", "GYT": "GYT", "UYT": "UYT", "HAST": "HAST", "EAT": "Ntángo ya Afríka ya Ɛ́sita", "HEOG": "HEOG", "HKT": "HKT", "LHDT": "LHDT", "JST": "JST"},
++ timezones: map[string]string{"AKST": "AKST", "AST": "AST", "GMT": "Ntángo ya Londoni", "LHST": "LHST", "WITA": "WITA", "WAST": "WAST", "OEZ": "OEZ", "COT": "COT", "HEOG": "HEOG", "ART": "ART", "BT": "BT", "TMT": "TMT", "MDT": "MDT", "SRT": "SRT", "IST": "IST", "WART": "WART", "SAST": "Ntángo ya Afríka ya Sidi", "COST": "COST", "CLT": "CLT", "HAST": "HAST", "MYT": "MYT", "MST": "MST", "EAT": "Ntángo ya Afríka ya Ɛ́sita", "CHAST": "CHAST", "HNCU": "HNCU", "HKST": "HKST", "CDT": "CDT", "BOT": "BOT", "ACST": "ACST", "HEEG": "HEEG", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "GFT": "GFT", "HAT": "HAT", "EDT": "EDT", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "WIT": "WIT", "CAT": "Ntángo ya Lubumbashi", "HNEG": "HNEG", "HEPM": "HEPM", "TMST": "TMST", "CST": "CST", "ECT": "ECT", "ChST": "ChST", "PDT": "PDT", "UYST": "UYST", "WEZ": "WEZ", "HEPMX": "HEPMX", "EST": "EST", "ADT": "ADT", "ARST": "ARST", "WESZ": "WESZ", "OESZ": "OESZ", "WARST": "WARST", "NZST": "NZST", "WIB": "WIB", "MEZ": "MEZ", "MESZ": "MESZ", "AWDT": "AWDT", "HNPM": "HNPM", "JDT": "JDT", "PST": "PST", "ACWST": "ACWST", "HNPMX": "HNPMX", "HECU": "HECU", "HNT": "HNT", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "JST": "JST", "AEST": "AEST", "AEDT": "AEDT", "SGT": "SGT", "WAT": "WAT", "GYT": "GYT", "HNOG": "HNOG", "HKT": "HKT", "HADT": "HADT", "LHDT": "LHDT", "CHADT": "CHADT", "VET": "VET", "CLST": "CLST", "ACDT": "ACDT", "AWST": "AWST", "UYT": "UYT"},
+ }
+ }
+ 
+diff --git a/ln_AO/ln_AO.go b/ln_AO/ln_AO.go
+index ba6547d..f1af845 100644
+--- a/ln_AO/ln_AO.go
++++ b/ln_AO/ln_AO.go
+@@ -10,66 +10,45 @@ import (
+ )
+ 
+ type ln_AO struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ln_AO' locale
+ func New() locales.Translator {
+ return &ln_AO{
+- locale: "ln_AO",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "Kz", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "yan", "fbl", "msi", "apl", "mai", "yun", "yul", "agt", "stb", "ɔtb", "nvb", "dsb"},
+- monthsNarrow: []string{"", "y", "f", "m", "a", "m", "y", "y", "a", "s", "ɔ", "n", "d"},
+- monthsWide: []string{"", "sánzá ya yambo", "sánzá ya míbalé", "sánzá ya mísáto", "sánzá ya mínei", "sánzá ya mítáno", "sánzá ya motóbá", "sánzá ya nsambo", "sánzá ya mwambe", "sánzá ya libwa", "sánzá ya zómi", "sánzá ya zómi na mɔ̌kɔ́", "sánzá ya zómi na míbalé"},
+- daysAbbreviated: []string{"eye", "ybo", "mbl", "mst", "min", "mtn", "mps"},
+- daysNarrow: []string{"e", "y", "m", "m", "m", "m", "p"},
+- daysWide: []string{"eyenga", "mokɔlɔ mwa yambo", "mokɔlɔ mwa míbalé", "mokɔlɔ mwa mísáto", "mokɔlɔ ya mínéi", "mokɔlɔ ya mítáno", "mpɔ́sɔ"},
+- periodsAbbreviated: []string{"ntɔ́ngɔ́", "mpókwa"},
+- periodsWide: []string{"ntɔ́ngɔ́", "mpókwa"},
+- erasAbbreviated: []string{"libóso ya", "nsima ya Y"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Yambo ya Yézu Krís", "Nsima ya Yézu Krís"},
+- timezones: map[string]string{"ADT": "ADT", "AWST": "AWST", "JDT": "JDT", "GFT": "GFT", "CAT": "Ntángo ya Lubumbashi", "WART": "WART", "CDT": "CDT", "HADT": "HADT", "PDT": "PDT", "AEST": "AEST", "HKT": "HKT", "HEPM": "HEPM", "ECT": "ECT", "MESZ": "MESZ", "MST": "MST", "AST": "AST", "ACWST": "ACWST", "CLST": "CLST", "TMT": "TMT", "EST": "EST", "MDT": "MDT", "COT": "COT", "GMT": "Ntángo ya Londoni", "HECU": "HECU", "CHADT": "CHADT", "ACST": "ACST", "ACDT": "ACDT", "EAT": "Ntángo ya Afríka ya Ɛ́sita", "HKST": "HKST", "WIB": "WIB", "SGT": "SGT", "WITA": "WITA", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "MEZ": "MEZ", "WARST": "WARST", "WIT": "WIT", "ART": "ART", "CLT": "CLT", "HAST": "HAST", "EDT": "EDT", "HNPMX": "HNPMX", "UYST": "UYST", "ACWDT": "ACWDT", "HEOG": "HEOG", "HEEG": "HEEG", "OESZ": "OESZ", "PST": "PST", "HAT": "HAT", "AEDT": "AEDT", "TMST": "TMST", "HEPMX": "HEPMX", "HNCU": "HNCU", "AKDT": "AKDT", "CST": "CST", "HNPM": "HNPM", "LHDT": "LHDT", "NZST": "NZST", "NZDT": "NZDT", "OEZ": "OEZ", "AKST": "AKST", "GYT": "GYT", "MYT": "MYT", "ARST": "ARST", "AWDT": "AWDT", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "SRT": "SRT", "WESZ": "WESZ", "SAST": "Ntángo ya Afríka ya Sidi", "IST": "IST", "JST": "JST", "VET": "VET", "ChST": "ChST", "BOT": "BOT", "COST": "COST", "WAST": "WAST", "HENOMX": "HENOMX", "UYT": "UYT", "BT": "BT", "HNT": "HNT", "HNOG": "HNOG", "LHST": "LHST", "WAT": "WAT", "HNEG": "HNEG"},
++ locale: "ln_AO",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "Kz", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HECU": "HECU", "WAT": "WAT", "CLST": "CLST", "AWST": "AWST", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "NZDT": "NZDT", "MDT": "MDT", "MEZ": "MEZ", "LHDT": "LHDT", "IST": "IST", "HEPMX": "HEPMX", "WEZ": "WEZ", "HNOG": "HNOG", "SAST": "SAST", "ARST": "ARST", "HNPM": "HNPM", "AEDT": "AEDT", "CHADT": "CHADT", "UYST": "UYST", "HNPMX": "HNPMX", "GFT": "GFT", "HNNOMX": "HNNOMX", "HADT": "HADT", "ACST": "ACST", "HEPM": "HEPM", "JDT": "JDT", "ACWST": "ACWST", "CHAST": "CHAST", "VET": "VET", "BOT": "BOT", "COT": "COT", "PST": "PST", "PDT": "PDT", "CST": "CST", "AEST": "AEST", "HEEG": "HEEG", "OEZ": "OEZ", "OESZ": "OESZ", "HAT": "HAT", "EDT": "EDT", "WIB": "WIB", "MESZ": "MESZ", "ADT": "ADT", "UYT": "UYT", "HNCU": "HNCU", "AKST": "AKST", "HNT": "HNT", "GYT": "GYT", "CDT": "CDT", "AST": "AST", "EST": "EST", "TMT": "TMT", "CLT": "CLT", "HENOMX": "HENOMX", "WIT": "WIT", "HKST": "HKST", "NZST": "NZST", "ART": "ART", "LHST": "LHST", "WAST": "WAST", "AKDT": "AKDT", "WART": "WART", "WARST": "WARST", "COST": "COST", "CAT": "CAT", "GMT": "GMT", "JST": "JST", "HKT": "HKT", "EAT": "EAT", "HAST": "HAST", "HEOG": "HEOG", "WITA": "WITA", "MST": "MST", "ACWDT": "ACWDT", "SGT": "SGT", "TMST": "TMST", "ACDT": "ACDT", "SRT": "SRT", "ECT": "ECT", "ChST": "ChST", "AWDT": "AWDT", "MYT": "MYT", "BT": "BT", "HNEG": "HNEG"},
+ }
+ }
+ 
+@@ -122,7 +101,7 @@ func (ln *ln_AO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ln *ln_AO) MonthsAbbreviated() []string {
+- return ln.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -132,7 +111,7 @@ func (ln *ln_AO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ln *ln_AO) MonthsNarrow() []string {
+- return ln.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -142,7 +121,7 @@ func (ln *ln_AO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ln *ln_AO) MonthsWide() []string {
+- return ln.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -188,42 +167,7 @@ func (ln *ln_AO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ln_AO' and handles both Whole and Real numbers based on 'v'
+ func (ln *ln_AO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ln.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ln.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ln.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ln_AO' and handles both Whole and Real numbers based on 'v'
+@@ -237,56 +181,7 @@ func (ln *ln_AO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ln.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ln.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ln.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ln.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ln.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ln.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ln_AO'
+@@ -295,63 +190,7 @@ func (ln *ln_AO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ln.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ln.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ln.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ln.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ln.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ln.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ln.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ln_AO'
+@@ -359,17 +198,6 @@ func (ln *ln_AO) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -378,17 +206,6 @@ func (ln *ln_AO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ln.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -397,17 +214,6 @@ func (ln *ln_AO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ln.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -416,19 +222,6 @@ func (ln *ln_AO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ln.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ln.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -437,19 +230,6 @@ func (ln *ln_AO) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -458,26 +238,6 @@ func (ln *ln_AO) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -486,30 +246,6 @@ func (ln *ln_AO) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -518,34 +254,5 @@ func (ln *ln_AO) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ln.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ln_CD/ln_CD.go b/ln_CD/ln_CD.go
+index 11bdb8c..08b4c8d 100644
+--- a/ln_CD/ln_CD.go
++++ b/ln_CD/ln_CD.go
+@@ -10,66 +10,45 @@ import (
+ )
+ 
+ type ln_CD struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ln_CD' locale
+ func New() locales.Translator {
+ return &ln_CD{
+- locale: "ln_CD",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "yan", "fbl", "msi", "apl", "mai", "yun", "yul", "agt", "stb", "ɔtb", "nvb", "dsb"},
+- monthsNarrow: []string{"", "y", "f", "m", "a", "m", "y", "y", "a", "s", "ɔ", "n", "d"},
+- monthsWide: []string{"", "sánzá ya yambo", "sánzá ya míbalé", "sánzá ya mísáto", "sánzá ya mínei", "sánzá ya mítáno", "sánzá ya motóbá", "sánzá ya nsambo", "sánzá ya mwambe", "sánzá ya libwa", "sánzá ya zómi", "sánzá ya zómi na mɔ̌kɔ́", "sánzá ya zómi na míbalé"},
+- daysAbbreviated: []string{"eye", "ybo", "mbl", "mst", "min", "mtn", "mps"},
+- daysNarrow: []string{"e", "y", "m", "m", "m", "m", "p"},
+- daysWide: []string{"eyenga", "mokɔlɔ mwa yambo", "mokɔlɔ mwa míbalé", "mokɔlɔ mwa mísáto", "mokɔlɔ ya mínéi", "mokɔlɔ ya mítáno", "mpɔ́sɔ"},
+- periodsAbbreviated: []string{"ntɔ́ngɔ́", "mpókwa"},
+- periodsWide: []string{"ntɔ́ngɔ́", "mpókwa"},
+- erasAbbreviated: []string{"libóso ya", "nsima ya Y"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Yambo ya Yézu Krís", "Nsima ya Yézu Krís"},
+- timezones: map[string]string{"EDT": "EDT", "CDT": "CDT", "ACWDT": "ACWDT", "HEOG": "HEOG", "ACST": "ACST", "COST": "COST", "AST": "AST", "EAT": "Ntángo ya Afríka ya Ɛ́sita", "HNOG": "HNOG", "CHAST": "CHAST", "CAT": "Ntángo ya Lubumbashi", "EST": "EST", "CST": "CST", "HADT": "HADT", "WITA": "WITA", "MDT": "MDT", "WIB": "WIB", "MEZ": "MEZ", "IST": "IST", "WAT": "WAT", "OEZ": "OEZ", "WART": "WART", "GMT": "Ntángo ya Londoni", "GYT": "GYT", "SRT": "SRT", "CLST": "CLST", "JST": "JST", "HNEG": "HNEG", "SGT": "SGT", "ART": "ART", "AEST": "AEST", "SAST": "Ntángo ya Afríka ya Sidi", "∅∅∅": "∅∅∅", "AKST": "AKST", "PDT": "PDT", "WEZ": "WEZ", "HKST": "HKST", "NZDT": "NZDT", "ChST": "ChST", "GFT": "GFT", "WAST": "WAST", "OESZ": "OESZ", "HEPMX": "HEPMX", "MYT": "MYT", "HNT": "HNT", "ARST": "ARST", "AEDT": "AEDT", "HNPM": "HNPM", "LHDT": "LHDT", "HNCU": "HNCU", "HNPMX": "HNPMX", "WIT": "WIT", "HEPM": "HEPM", "NZST": "NZST", "CLT": "CLT", "ECT": "ECT", "WARST": "WARST", "HENOMX": "HENOMX", "HECU": "HECU", "MST": "MST", "WESZ": "WESZ", "AWDT": "AWDT", "TMST": "TMST", "HAST": "HAST", "LHST": "LHST", "BOT": "BOT", "TMT": "TMT", "ACDT": "ACDT", "AKDT": "AKDT", "ADT": "ADT", "VET": "VET", "BT": "BT", "AWST": "AWST", "HKT": "HKT", "MESZ": "MESZ", "HEEG": "HEEG", "COT": "COT", "UYST": "UYST", "ACWST": "ACWST", "JDT": "JDT", "HNNOMX": "HNNOMX", "UYT": "UYT", "PST": "PST", "HAT": "HAT", "CHADT": "CHADT"},
++ locale: "ln_CD",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"BT": "BT", "ACWDT": "ACWDT", "EST": "EST", "SGT": "SGT", "WART": "WART", "HKT": "HKT", "NZDT": "NZDT", "MST": "MST", "ART": "ART", "ADT": "ADT", "CHADT": "CHADT", "GYT": "GYT", "EDT": "EDT", "HENOMX": "HENOMX", "JST": "JST", "AKDT": "AKDT", "IST": "IST", "AKST": "AKST", "HNOG": "HNOG", "NZST": "NZST", "ACDT": "ACDT", "AEST": "AEST", "AEDT": "AEDT", "WARST": "WARST", "COST": "COST", "TMST": "TMST", "WIB": "WIB", "ACWST": "ACWST", "UYT": "UYT", "∅∅∅": "∅∅∅", "PDT": "PDT", "VET": "VET", "GFT": "GFT", "CDT": "CDT", "HNPM": "HNPM", "AWST": "AWST", "LHDT": "LHDT", "SAST": "SAST", "TMT": "TMT", "CST": "CST", "ChST": "ChST", "HEEG": "HEEG", "PST": "PST", "HECU": "HECU", "HEOG": "HEOG", "CLST": "CLST", "MYT": "MYT", "LHST": "LHST", "HNCU": "HNCU", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "MESZ": "MESZ", "HAT": "HAT", "COT": "COT", "GMT": "GMT", "BOT": "BOT", "ACST": "ACST", "UYST": "UYST", "OESZ": "OESZ", "OEZ": "OEZ", "WIT": "WIT", "CHAST": "CHAST", "WEZ": "WEZ", "WAST": "WAST", "SRT": "SRT", "HEPM": "HEPM", "AWDT": "AWDT", "ARST": "ARST", "MEZ": "MEZ", "CAT": "CAT", "ECT": "ECT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "WESZ": "WESZ", "JDT": "JDT", "WAT": "WAT", "HNT": "HNT", "HKST": "HKST", "CLT": "CLT", "EAT": "EAT", "HAST": "HAST", "HADT": "HADT", "WITA": "WITA", "MDT": "MDT", "AST": "AST"},
+ }
+ }
+ 
+@@ -122,7 +101,7 @@ func (ln *ln_CD) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ln *ln_CD) MonthsAbbreviated() []string {
+- return ln.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -132,7 +111,7 @@ func (ln *ln_CD) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ln *ln_CD) MonthsNarrow() []string {
+- return ln.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -142,7 +121,7 @@ func (ln *ln_CD) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ln *ln_CD) MonthsWide() []string {
+- return ln.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -188,42 +167,7 @@ func (ln *ln_CD) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ln_CD' and handles both Whole and Real numbers based on 'v'
+ func (ln *ln_CD) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ln.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ln.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ln.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ln_CD' and handles both Whole and Real numbers based on 'v'
+@@ -237,56 +181,7 @@ func (ln *ln_CD) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ln.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ln.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ln.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ln.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ln.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ln.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ln_CD'
+@@ -295,63 +190,7 @@ func (ln *ln_CD) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ln.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ln.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ln.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ln.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ln.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ln.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ln.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ln_CD'
+@@ -359,17 +198,6 @@ func (ln *ln_CD) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -378,17 +206,6 @@ func (ln *ln_CD) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ln.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -397,17 +214,6 @@ func (ln *ln_CD) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ln.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -416,19 +222,6 @@ func (ln *ln_CD) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ln.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ln.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -437,19 +230,6 @@ func (ln *ln_CD) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -458,26 +238,6 @@ func (ln *ln_CD) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -486,30 +246,6 @@ func (ln *ln_CD) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -518,34 +254,5 @@ func (ln *ln_CD) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ln.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ln_CF/ln_CF.go b/ln_CF/ln_CF.go
+index 7f8f5e6..d84b1be 100644
+--- a/ln_CF/ln_CF.go
++++ b/ln_CF/ln_CF.go
+@@ -10,66 +10,45 @@ import (
+ )
+ 
+ type ln_CF struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ln_CF' locale
+ func New() locales.Translator {
+ return &ln_CF{
+- locale: "ln_CF",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "yan", "fbl", "msi", "apl", "mai", "yun", "yul", "agt", "stb", "ɔtb", "nvb", "dsb"},
+- monthsNarrow: []string{"", "y", "f", "m", "a", "m", "y", "y", "a", "s", "ɔ", "n", "d"},
+- monthsWide: []string{"", "sánzá ya yambo", "sánzá ya míbalé", "sánzá ya mísáto", "sánzá ya mínei", "sánzá ya mítáno", "sánzá ya motóbá", "sánzá ya nsambo", "sánzá ya mwambe", "sánzá ya libwa", "sánzá ya zómi", "sánzá ya zómi na mɔ̌kɔ́", "sánzá ya zómi na míbalé"},
+- daysAbbreviated: []string{"eye", "ybo", "mbl", "mst", "min", "mtn", "mps"},
+- daysNarrow: []string{"e", "y", "m", "m", "m", "m", "p"},
+- daysWide: []string{"eyenga", "mokɔlɔ mwa yambo", "mokɔlɔ mwa míbalé", "mokɔlɔ mwa mísáto", "mokɔlɔ ya mínéi", "mokɔlɔ ya mítáno", "mpɔ́sɔ"},
+- periodsAbbreviated: []string{"ntɔ́ngɔ́", "mpókwa"},
+- periodsWide: []string{"ntɔ́ngɔ́", "mpókwa"},
+- erasAbbreviated: []string{"libóso ya", "nsima ya Y"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Yambo ya Yézu Krís", "Nsima ya Yézu Krís"},
+- timezones: map[string]string{"PST": "PST", "AEST": "AEST", "AWDT": "AWDT", "HEPM": "HEPM", "LHST": "LHST", "CHAST": "CHAST", "CLST": "CLST", "MDT": "MDT", "CHADT": "CHADT", "MYT": "MYT", "ADT": "ADT", "WITA": "WITA", "HNPM": "HNPM", "CAT": "Ntángo ya Lubumbashi", "COST": "COST", "ECT": "ECT", "UYST": "UYST", "CST": "CST", "GYT": "GYT", "HAST": "HAST", "WEZ": "WEZ", "EAT": "Ntángo ya Afríka ya Ɛ́sita", "OESZ": "OESZ", "AKST": "AKST", "AEDT": "AEDT", "HECU": "HECU", "HEPMX": "HEPMX", "ACDT": "ACDT", "WAST": "WAST", "CDT": "CDT", "HADT": "HADT", "SAST": "Ntángo ya Afríka ya Sidi", "CLT": "CLT", "ACST": "ACST", "HAT": "HAT", "TMT": "TMT", "BT": "BT", "ACWST": "ACWST", "HKT": "HKT", "GMT": "Ntángo ya Londoni", "PDT": "PDT", "AST": "AST", "HNOG": "HNOG", "AWST": "AWST", "NZDT": "NZDT", "HENOMX": "HENOMX", "EDT": "EDT", "VET": "VET", "MEZ": "MEZ", "WARST": "WARST", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "WIB": "WIB", "WIT": "WIT", "ChST": "ChST", "BOT": "BOT", "WESZ": "WESZ", "IST": "IST", "WAT": "WAT", "UYT": "UYT", "HNCU": "HNCU", "ACWDT": "ACWDT", "ART": "ART", "∅∅∅": "∅∅∅", "SGT": "SGT", "WART": "WART", "COT": "COT", "SRT": "SRT", "HNT": "HNT", "HKST": "HKST", "MESZ": "MESZ", "GFT": "GFT", "OEZ": "OEZ", "HEEG": "HEEG", "TMST": "TMST", "HEOG": "HEOG", "LHDT": "LHDT", "NZST": "NZST", "JST": "JST", "EST": "EST", "MST": "MST", "AKDT": "AKDT", "ARST": "ARST", "JDT": "JDT", "HNEG": "HNEG"},
++ locale: "ln_CF",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WARST": "WARST", "HEPM": "HEPM", "UYST": "UYST", "IST": "IST", "PST": "PST", "PDT": "PDT", "LHST": "LHST", "CST": "CST", "ADT": "ADT", "ART": "ART", "TMST": "TMST", "WITA": "WITA", "HNPM": "HNPM", "HECU": "HECU", "AKDT": "AKDT", "OESZ": "OESZ", "GFT": "GFT", "CAT": "CAT", "NZST": "NZST", "HAST": "HAST", "ACST": "ACST", "HEEG": "HEEG", "AKST": "AKST", "SAST": "SAST", "HKST": "HKST", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "HEPMX": "HEPMX", "CLST": "CLST", "BOT": "BOT", "HADT": "HADT", "MYT": "MYT", "BT": "BT", "HEOG": "HEOG", "EDT": "EDT", "MDT": "MDT", "WAT": "WAT", "WIT": "WIT", "COT": "COT", "MEZ": "MEZ", "AWST": "AWST", "JDT": "JDT", "WESZ": "WESZ", "SGT": "SGT", "HNOG": "HNOG", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "COST": "COST", "NZDT": "NZDT", "WIB": "WIB", "AST": "AST", "ACWDT": "ACWDT", "WEZ": "WEZ", "OEZ": "OEZ", "HKT": "HKT", "CDT": "CDT", "JST": "JST", "MST": "MST", "EAT": "EAT", "HENOMX": "HENOMX", "LHDT": "LHDT", "UYT": "UYT", "ACWST": "ACWST", "CLT": "CLT", "AEDT": "AEDT", "TMT": "TMT", "ECT": "ECT", "GMT": "GMT", "ChST": "ChST", "SRT": "SRT", "CHAST": "CHAST", "VET": "VET", "WAST": "WAST", "HNT": "HNT", "HAT": "HAT", "HNCU": "HNCU", "GYT": "GYT", "EST": "EST", "HNEG": "HNEG", "AWDT": "AWDT", "AEST": "AEST", "WART": "WART", "CHADT": "CHADT", "HNPMX": "HNPMX", "ARST": "ARST"},
+ }
+ }
+ 
+@@ -122,7 +101,7 @@ func (ln *ln_CF) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ln *ln_CF) MonthsAbbreviated() []string {
+- return ln.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -132,7 +111,7 @@ func (ln *ln_CF) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ln *ln_CF) MonthsNarrow() []string {
+- return ln.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -142,7 +121,7 @@ func (ln *ln_CF) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ln *ln_CF) MonthsWide() []string {
+- return ln.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -188,42 +167,7 @@ func (ln *ln_CF) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ln_CF' and handles both Whole and Real numbers based on 'v'
+ func (ln *ln_CF) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ln.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ln.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ln.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ln_CF' and handles both Whole and Real numbers based on 'v'
+@@ -237,56 +181,7 @@ func (ln *ln_CF) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ln.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ln.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ln.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ln.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ln.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ln.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ln_CF'
+@@ -295,63 +190,7 @@ func (ln *ln_CF) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ln.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ln.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ln.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ln.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ln.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ln.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ln.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ln_CF'
+@@ -359,17 +198,6 @@ func (ln *ln_CF) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -378,17 +206,6 @@ func (ln *ln_CF) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ln.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -397,17 +214,6 @@ func (ln *ln_CF) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ln.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -416,19 +222,6 @@ func (ln *ln_CF) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ln.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ln.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -437,19 +230,6 @@ func (ln *ln_CF) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -458,26 +238,6 @@ func (ln *ln_CF) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -486,30 +246,6 @@ func (ln *ln_CF) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -518,34 +254,5 @@ func (ln *ln_CF) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ln.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ln_CG/ln_CG.go b/ln_CG/ln_CG.go
+index 20e3aeb..5ee317a 100644
+--- a/ln_CG/ln_CG.go
++++ b/ln_CG/ln_CG.go
+@@ -10,66 +10,45 @@ import (
+ )
+ 
+ type ln_CG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ln_CG' locale
+ func New() locales.Translator {
+ return &ln_CG{
+- locale: "ln_CG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "yan", "fbl", "msi", "apl", "mai", "yun", "yul", "agt", "stb", "ɔtb", "nvb", "dsb"},
+- monthsNarrow: []string{"", "y", "f", "m", "a", "m", "y", "y", "a", "s", "ɔ", "n", "d"},
+- monthsWide: []string{"", "sánzá ya yambo", "sánzá ya míbalé", "sánzá ya mísáto", "sánzá ya mínei", "sánzá ya mítáno", "sánzá ya motóbá", "sánzá ya nsambo", "sánzá ya mwambe", "sánzá ya libwa", "sánzá ya zómi", "sánzá ya zómi na mɔ̌kɔ́", "sánzá ya zómi na míbalé"},
+- daysAbbreviated: []string{"eye", "ybo", "mbl", "mst", "min", "mtn", "mps"},
+- daysNarrow: []string{"e", "y", "m", "m", "m", "m", "p"},
+- daysWide: []string{"eyenga", "mokɔlɔ mwa yambo", "mokɔlɔ mwa míbalé", "mokɔlɔ mwa mísáto", "mokɔlɔ ya mínéi", "mokɔlɔ ya mítáno", "mpɔ́sɔ"},
+- periodsAbbreviated: []string{"ntɔ́ngɔ́", "mpókwa"},
+- periodsWide: []string{"ntɔ́ngɔ́", "mpókwa"},
+- erasAbbreviated: []string{"libóso ya", "nsima ya Y"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Yambo ya Yézu Krís", "Nsima ya Yézu Krís"},
+- timezones: map[string]string{"HNEG": "HNEG", "COST": "COST", "BT": "BT", "HNOG": "HNOG", "CHADT": "CHADT", "AEDT": "AEDT", "CLST": "CLST", "WARST": "WARST", "SGT": "SGT", "GMT": "Ntángo ya Londoni", "HADT": "HADT", "WIT": "WIT", "NZDT": "NZDT", "OESZ": "OESZ", "HECU": "HECU", "AKST": "AKST", "AST": "AST", "HEOG": "HEOG", "LHST": "LHST", "LHDT": "LHDT", "HNCU": "HNCU", "HEPMX": "HEPMX", "WEZ": "WEZ", "GYT": "GYT", "WITA": "WITA", "ChST": "ChST", "SAST": "Ntángo ya Afríka ya Sidi", "COT": "COT", "ADT": "ADT", "WIB": "WIB", "AWDT": "AWDT", "CHAST": "CHAST", "ACDT": "ACDT", "WART": "WART", "EDT": "EDT", "HNT": "HNT", "NZST": "NZST", "CLT": "CLT", "WAT": "WAT", "OEZ": "OEZ", "∅∅∅": "∅∅∅", "HAST": "HAST", "ARST": "ARST", "ACST": "ACST", "CAT": "Ntángo ya Lubumbashi", "WESZ": "WESZ", "ART": "ART", "HKST": "HKST", "UYST": "UYST", "SRT": "SRT", "HNPM": "HNPM", "HNNOMX": "HNNOMX", "MDT": "MDT", "AKDT": "AKDT", "CDT": "CDT", "JDT": "JDT", "CST": "CST", "UYT": "UYT", "PDT": "PDT", "HKT": "HKT", "GFT": "GFT", "JST": "JST", "BOT": "BOT", "EAT": "Ntángo ya Afríka ya Ɛ́sita", "ECT": "ECT", "HAT": "HAT", "MEZ": "MEZ", "IST": "IST", "ACWST": "ACWST", "AEST": "AEST", "TMT": "TMT", "ACWDT": "ACWDT", "HEEG": "HEEG", "WAST": "WAST", "HENOMX": "HENOMX", "MST": "MST", "HNPMX": "HNPMX", "VET": "VET", "AWST": "AWST", "HEPM": "HEPM", "MESZ": "MESZ", "TMST": "TMST", "EST": "EST", "MYT": "MYT", "PST": "PST"},
++ locale: "ln_CG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEOG": "HEOG", "CST": "CST", "NZDT": "NZDT", "ChST": "ChST", "PDT": "PDT", "HNCU": "HNCU", "AKDT": "AKDT", "WIT": "WIT", "MST": "MST", "BT": "BT", "OESZ": "OESZ", "TMST": "TMST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "HENOMX": "HENOMX", "WESZ": "WESZ", "COT": "COT", "COST": "COST", "CLT": "CLT", "HNNOMX": "HNNOMX", "UYT": "UYT", "WEZ": "WEZ", "WIB": "WIB", "SRT": "SRT", "HAST": "HAST", "LHDT": "LHDT", "AEDT": "AEDT", "HNPMX": "HNPMX", "TMT": "TMT", "CLST": "CLST", "PST": "PST", "ACWDT": "ACWDT", "GFT": "GFT", "HAT": "HAT", "WART": "WART", "SAST": "SAST", "HNT": "HNT", "AST": "AST", "ART": "ART", "MEZ": "MEZ", "HEEG": "HEEG", "JDT": "JDT", "IST": "IST", "EDT": "EDT", "ECT": "ECT", "ADT": "ADT", "EAT": "EAT", "HECU": "HECU", "WITA": "WITA", "CDT": "CDT", "LHST": "LHST", "AEST": "AEST", "CHADT": "CHADT", "HEPMX": "HEPMX", "HNOG": "HNOG", "GMT": "GMT", "ARST": "ARST", "VET": "VET", "MESZ": "MESZ", "ACDT": "ACDT", "HNPM": "HNPM", "SGT": "SGT", "WAT": "WAT", "NZST": "NZST", "BOT": "BOT", "AWDT": "AWDT", "ACWST": "ACWST", "GYT": "GYT", "HKST": "HKST", "CAT": "CAT", "HADT": "HADT", "ACST": "ACST", "JST": "JST", "WAST": "WAST", "AKST": "AKST", "HKT": "HKT", "MDT": "MDT", "MYT": "MYT", "HEPM": "HEPM", "WARST": "WARST", "EST": "EST", "AWST": "AWST", "CHAST": "CHAST", "UYST": "UYST", "OEZ": "OEZ"},
+ }
+ }
+ 
+@@ -122,7 +101,7 @@ func (ln *ln_CG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ln *ln_CG) MonthsAbbreviated() []string {
+- return ln.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -132,7 +111,7 @@ func (ln *ln_CG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ln *ln_CG) MonthsNarrow() []string {
+- return ln.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -142,7 +121,7 @@ func (ln *ln_CG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ln *ln_CG) MonthsWide() []string {
+- return ln.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -188,42 +167,7 @@ func (ln *ln_CG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ln_CG' and handles both Whole and Real numbers based on 'v'
+ func (ln *ln_CG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ln.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ln.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ln.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ln_CG' and handles both Whole and Real numbers based on 'v'
+@@ -237,56 +181,7 @@ func (ln *ln_CG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ln.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ln.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ln.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ln.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ln.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ln.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ln_CG'
+@@ -295,63 +190,7 @@ func (ln *ln_CG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ln.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ln.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ln.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ln.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ln.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ln.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ln.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ln_CG'
+@@ -359,17 +198,6 @@ func (ln *ln_CG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -378,17 +206,6 @@ func (ln *ln_CG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ln.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -397,17 +214,6 @@ func (ln *ln_CG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ln.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -416,19 +222,6 @@ func (ln *ln_CG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ln.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ln.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -437,19 +230,6 @@ func (ln *ln_CG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -458,26 +238,6 @@ func (ln *ln_CG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -486,30 +246,6 @@ func (ln *ln_CG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -518,34 +254,5 @@ func (ln *ln_CG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ln.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ln.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/lo/lo.go b/lo/lo.go
+index c5c0b64..f795b1b 100644
+--- a/lo/lo.go
++++ b/lo/lo.go
+@@ -69,7 +69,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ກ່ອນ ຄ.ສ.", "ຄ.ສ."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"ກ່ອນຄຣິດສັກກະລາດ", "ຄຣິດສັກກະລາດ"},
+- timezones: map[string]string{"ACWDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bກາງ\u200bຕາ\u200bເວັນ\u200bຕົກ", "HKT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຮອງ\u200bກົງ", "ChST": "ເວ\u200bລາ\u200bຈາ\u200bໂມ\u200bໂຣ", "COST": "ເວລາລະດູຮ້ອນໂຄລໍາເບຍ", "PST": "ເວລາມາດຕະຖານແປຊິຟິກ", "ACWST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານອອສ\u200bເຕຣ\u200bລຽນ\u200bກາງ\u200bຕາ\u200bເວັນ\u200bຕົກ", "CHADT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bຊາ\u200bທາມ", "BOT": "ເວ\u200bລາ\u200bໂບ\u200bລິ\u200bເວຍ", "GFT": "ເວ\u200bລາ\u200bເຟ\u200bຣນ\u200bຊ໌\u200bເກຍ\u200bນາ", "MST": "ເວລາມາດຕະຖານມາເກົາ", "HNOG": "ເວລາມາດຕະຖານກຣີນແລນຕາເວັນຕົກ", "NZDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bນິວ\u200bຊີ\u200bແລນ", "MYT": "ເວ\u200bລາ\u200bມາ\u200bເລ\u200bເຊຍ", "AKST": "ເວລາມາດຕະຖານອະແລສກາ", "SRT": "ເວ\u200bລາ\u200bຊຸ\u200bຣິ\u200bນາມ", "HAT": "ເວລາກາງເວັນນິວຟາວແລນ", "JDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bຍີ່\u200bປຸ່ນ", "HEEG": "ເວລາລະດູຮ້ອນກຣີນແລນຕາເວັນອອກ", "CDT": "ເວລາກາງເວັນກາງ", "HKST": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bຮອງ\u200bກົງ", "CLT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານຊິ\u200bລີ", "JST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຍີ່\u200bປຸ່ນ", "TMT": "ເວລາມາດຕະຖານຕວກເມນິສຖານ", "WIB": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bຕາ\u200bເວັນ\u200bຕົກ", "AWDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bຕົກ", "HNPM": "\u200bເວ\u200bລາມາດ\u200bຕະ\u200bຖານເຊນ\u200bປີ\u200bແອ ແລະ\u200bມິ\u200bກົວ\u200bລອນ", "HADT": "ເວລາຕອນທ່ຽງຮາວາຍ-ເອລູທຽນ", "AEST": "ເວ\u200bລາ\u200bມາດຕະຖານ\u200b\u200b\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bອອກ", "MEZ": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຢູ\u200bໂຣບກາງ", "ECT": "ເວ\u200bລາ\u200bເອ\u200bກົວ\u200bດໍ", "WARST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນເວ\u200bສ\u200bເທິນອາ\u200bເຈນ\u200bທິ\u200bນາ", "HECU": "ເວລາກາງເວັນຄິວບາ", "AKDT": "ເວລາກາງເວັນອະແລສກາ", "LHDT": "\u200bເວ\u200bລ\u200bສາ\u200bຕອນ\u200b\u200bທ່ຽງ\u200bລອດ\u200bເຮົາ\u200b", "ACDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bເລຍ\u200bກາງ", "HENOMX": "ເວລາກາງເວັນເມັກຊິກັນນອດເວສ", "HAST": "ເວລາມາດຕະຖານຮາວາຍ-ເອລູທຽນ", "BT": "ເວ\u200bລາ\u200bພູ\u200bຖານ", "HNEG": "ເວລາມາດຕະຖານຕາເວັນອອກກຣີນແລນ", "OEZ": "ເວ\u200bລາ\u200bມາ\u200bດ\u200bຕະ\u200bຖານ\u200bຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bອອກ", "HNCU": "ເວລາມາດຕະຖານຂອງຄິວບາ", "EDT": "ເວລາກາງເວັນຕາເວັນອອກ", "HNT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bນິວ\u200bຟາວ\u200bແລນ", "ART": "\u200bເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານອາ\u200bເຈນ\u200bທິ\u200bນາ", "WITA": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bກາງ", "ACST": "ເວ\u200bລາມາດ\u200bຕະ\u200bຖານອອ\u200bສ\u200bເຕຣ\u200bເລຍ\u200bກ\u200bາງ", "EST": "ເວລາມາດຕະຖານຕາເວັນອອກ", "HNPMX": "ເວລາມາດຕະຖານແປຊິຟິກເມັກຊິກັນ", "GYT": "ເວລາກາຍອານາ", "CHAST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຊາ\u200bທາມ", "UYT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bອູ\u200bຣູ\u200bກວຍ", "ADT": "ເວລາກາງເວັນຂອງອາແລນຕິກ", "AWST": "ເວ\u200bລາ\u200bມາ\u200bດ\u200bຕະ\u200bຖານອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bຕົກ", "MESZ": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bຢູ\u200bໂຣບ\u200bກາງ", "IST": "ເວລາ ອິນເດຍ", "CAT": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bກາງ", "WAST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bຕົກ", "HEOG": "ເວລາຕອນທ່ຽງກຣີນແລນຕາເວັນຕົກ", "AEDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bອອກ", "WESZ": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bຕົກ", "TMST": "ເວລາລະດູຮ້ອນຕວກເມນິສຖານ", "MDT": "ເວລາລະດູຮ້ອນມາເກົາ", "VET": "ເວ\u200bລາ\u200bເວ\u200bເນ\u200bຊູ\u200bເອ\u200bລາ", "WEZ": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bຕົກ", "EAT": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bອອກ", "COT": "ເວລາມາດຕະຖານໂຄລຳເບຍ", "PDT": "ເວລາກາງເວັນແປຊິຟິກ", "AST": "ເວລາມາດຕະຖານຂອງອາແລນຕິກ", "LHST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bລອດ\u200bເຮົາ", "∅∅∅": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bເປ\u200bຣູ", "WAT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bຕົກ", "WART": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານເວ\u200bສ\u200bເທິນອາ\u200bເຈນ\u200bທິ\u200bນາ", "SGT": "ເວ\u200bລາ\u200bສິງ\u200bກະ\u200bໂປ", "ARST": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອາ\u200bເຈນ\u200bທິ\u200bນາ", "GMT": "ເວ\u200bລາກຣີນ\u200bວິ\u200bຊ", "HEPMX": "ເວລາກາງເວັນແປຊິຟິກເມັກຊິກັນ", "UYST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອູ\u200bຣູ\u200bກວຍ", "CST": "ເວລາມາດຕະຖານກາງ", "NZST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານນິວ\u200bຊີ\u200bແລນ", "SAST": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bໃຕ້", "CLST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຊິ\u200bລີ", "OESZ": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bອອກ", "HNNOMX": "\u200bເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານນອດ\u200bເວ\u200bສ\u200bເມັກ\u200bຊິ\u200bໂກ", "WIT": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bຕາ\u200bເວັນ\u200bອອກ", "HEPM": "\u200bເວ\u200bລາຕອນ\u200bທ່ຽງເຊນ\u200bປີ\u200bແອ ແລະ\u200bມິ\u200bກົວ\u200bລອນ"},
++ timezones: map[string]string{"HKST": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bຮອງ\u200bກົງ", "MDT": "ເວລາລະດູຮ້ອນມາເກົາ", "ADT": "ເວລາກາງເວັນຂອງອາແລນຕິກ", "CHADT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bຊາ\u200bທາມ", "COT": "ເວລາມາດຕະຖານໂຄລຳເບຍ", "AEDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bອອກ", "MEZ": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຢູ\u200bໂຣບກາງ", "HEPM": "\u200bເວ\u200bລາຕອນ\u200bທ່ຽງເຊນ\u200bປີ\u200bແອ ແລະ\u200bມິ\u200bກົວ\u200bລອນ", "CHAST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຊາ\u200bທາມ", "SGT": "ເວ\u200bລາ\u200bສິງ\u200bກະ\u200bໂປ", "SAST": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bໃຕ້", "CLST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຊິ\u200bລີ", "NZDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bນິວ\u200bຊີ\u200bແລນ", "GMT": "ເວ\u200bລາກຣີນ\u200bວິ\u200bຊ", "UYST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອູ\u200bຣູ\u200bກວຍ", "TMT": "ເວລາມາດຕະຖານຕວກເມນິສຖານ", "CLT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານຊິ\u200bລີ", "WIB": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bຕາ\u200bເວັນ\u200bຕົກ", "HNEG": "ເວລາມາດຕະຖານຕາເວັນອອກກຣີນແລນ", "HNPM": "\u200bເວ\u200bລາມາດ\u200bຕະ\u200bຖານເຊນ\u200bປີ\u200bແອ ແລະ\u200bມິ\u200bກົວ\u200bລອນ", "JDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bຍີ່\u200bປຸ່ນ", "LHST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bລອດ\u200bເຮົາ", "PST": "ເວລາມາດຕະຖານແປຊິຟິກ", "EST": "ເວລາມາດຕະຖານຕາເວັນອອກ", "ChST": "ເວ\u200bລາ\u200bຈາ\u200bໂມ\u200bໂຣ", "HEEG": "ເວລາລະດູຮ້ອນກຣີນແລນຕາເວັນອອກ", "HNNOMX": "\u200bເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານນອດ\u200bເວ\u200bສ\u200bເມັກ\u200bຊິ\u200bໂກ", "VET": "ເວ\u200bລາ\u200bເວ\u200bເນ\u200bຊູ\u200bເອ\u200bລາ", "OESZ": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bອອກ", "HEOG": "ເວລາຕອນທ່ຽງກຣີນແລນຕາເວັນຕົກ", "GYT": "ເວລາກາຍອານາ", "TMST": "ເວລາລະດູຮ້ອນຕວກເມນິສຖານ", "CST": "ເວລາມາດຕະຖານກາງ", "ACWST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານອອສ\u200bເຕຣ\u200bລຽນ\u200bກາງ\u200bຕາ\u200bເວັນ\u200bຕົກ", "HNT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bນິວ\u200bຟາວ\u200bແລນ", "CDT": "ເວລາກາງເວັນກາງ", "SRT": "ເວ\u200bລາ\u200bຊຸ\u200bຣິ\u200bນາມ", "MESZ": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bຢູ\u200bໂຣບ\u200bກາງ", "AWDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bຕົກ", "COST": "ເວລາລະດູຮ້ອນໂຄລໍາເບຍ", "HNOG": "ເວລາມາດຕະຖານກຣີນແລນຕາເວັນຕົກ", "ARST": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອາ\u200bເຈນ\u200bທິ\u200bນາ", "HEPMX": "ເວລາກາງເວັນແປຊິຟິກເມັກຊິກັນ", "WITA": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bກາງ", "MST": "ເວລາມາດຕະຖານມາເກົາ", "MYT": "ເວ\u200bລາ\u200bມາ\u200bເລ\u200bເຊຍ", "BT": "ເວ\u200bລາ\u200bພູ\u200bຖານ", "HAT": "ເວລາກາງເວັນນິວຟາວແລນ", "CAT": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bກາງ", "WAT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bຕົກ", "AKDT": "ເວລາກາງເວັນອະແລສກາ", "GFT": "ເວ\u200bລາ\u200bເຟ\u200bຣນ\u200bຊ໌\u200bເກຍ\u200bນາ", "UYT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bອູ\u200bຣູ\u200bກວຍ", "IST": "ເວລາ ອິນເດຍ", "AKST": "ເວລາມາດຕະຖານອະແລສກາ", "EDT": "ເວລາກາງເວັນຕາເວັນອອກ", "HKT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຮອງ\u200bກົງ", "HAST": "ເວລາມາດຕະຖານຮາວາຍ-ເອລູທຽນ", "AEST": "ເວ\u200bລາ\u200bມາດຕະຖານ\u200b\u200b\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bອອກ", "NZST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານນິວ\u200bຊີ\u200bແລນ", "ART": "\u200bເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານອາ\u200bເຈນ\u200bທິ\u200bນາ", "JST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຍີ່\u200bປຸ່ນ", "WIT": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bຕາ\u200bເວັນ\u200bອອກ", "WART": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານເວ\u200bສ\u200bເທິນອາ\u200bເຈນ\u200bທິ\u200bນາ", "WARST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນເວ\u200bສ\u200bເທິນອາ\u200bເຈນ\u200bທິ\u200bນາ", "AST": "ເວລາມາດຕະຖານຂອງອາແລນຕິກ", "BOT": "ເວ\u200bລາ\u200bໂບ\u200bລິ\u200bເວຍ", "EAT": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bອອກ", "WAST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bຕົກ", "AWST": "ເວ\u200bລາ\u200bມາ\u200bດ\u200bຕະ\u200bຖານອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bຕົກ", "HNPMX": "ເວລາມາດຕະຖານແປຊິຟິກເມັກຊິກັນ", "WEZ": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bຕົກ", "WESZ": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bຕົກ", "HADT": "ເວລາຕອນທ່ຽງຮາວາຍ-ເອລູທຽນ", "HENOMX": "ເວລາກາງເວັນເມັກຊິກັນນອດເວສ", "ACST": "ເວ\u200bລາມາດ\u200bຕະ\u200bຖານອອ\u200bສ\u200bເຕຣ\u200bເລຍ\u200bກ\u200bາງ", "ACDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bເລຍ\u200bກາງ", "ECT": "ເວ\u200bລາ\u200bເອ\u200bກົວ\u200bດໍ", "LHDT": "\u200bເວ\u200bລ\u200bສາ\u200bຕອນ\u200b\u200bທ່ຽງ\u200bລອດ\u200bເຮົາ\u200b", "ACWDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bກາງ\u200bຕາ\u200bເວັນ\u200bຕົກ", "OEZ": "ເວ\u200bລາ\u200bມາ\u200bດ\u200bຕະ\u200bຖານ\u200bຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bອອກ", "∅∅∅": "ເວລາຕາມເຂດລະດູຮ້ອນຕາມເຂດບຣາຊີເລຍ", "PDT": "ເວລາກາງເວັນແປຊິຟິກ", "HNCU": "ເວລາມາດຕະຖານຂອງຄິວບາ", "HECU": "ເວລາກາງເວັນຄິວບາ"},
+ }
+ }
+ 
+diff --git a/lo_LA/lo_LA.go b/lo_LA/lo_LA.go
+index 4166b77..d66e86a 100644
+--- a/lo_LA/lo_LA.go
++++ b/lo_LA/lo_LA.go
+@@ -10,66 +10,45 @@ import (
+ )
+ 
+ type lo_LA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'lo_LA' locale
+ func New() locales.Translator {
+ return &lo_LA{
+- locale: "lo_LA",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "-",
+- monthsAbbreviated: []string{"", "ມ.ກ.", "ກ.ພ.", "ມ.ນ.", "ມ.ສ.", "ພ.ພ.", "ມິ.ຖ.", "ກ.ລ.", "ສ.ຫ.", "ກ.ຍ.", "ຕ.ລ.", "ພ.ຈ.", "ທ.ວ."},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "ມັງກອນ", "ກຸມພາ", "ມີນາ", "ເມສາ", "ພຶດສະພາ", "ມິຖຸນາ", "ກໍລະກົດ", "ສິງຫາ", "ກັນຍາ", "ຕຸລາ", "ພະຈິກ", "ທັນວາ"},
+- daysAbbreviated: []string{"ອາທິດ", "ຈັນ", "ອັງຄານ", "ພຸດ", "ພະຫັດ", "ສຸກ", "ເສົາ"},
+- daysNarrow: []string{"ອາ", "ຈ", "ອ", "ພ", "ພຫ", "ສຸ", "ສ"},
+- daysShort: []string{"ອາ.", "ຈ.", "ອ.", "ພ.", "ພຫ.", "ສຸ.", "ສ."},
+- daysWide: []string{"ວັນອາທິດ", "ວັນຈັນ", "ວັນອັງຄານ", "ວັນພຸດ", "ວັນພະຫັດ", "ວັນສຸກ", "ວັນເສົາ"},
+- periodsAbbreviated: []string{"ກ່ອນທ່ຽງ", "ຫຼັງທ່ຽງ"},
+- periodsNarrow: []string{"ກທ", "ຫຼທ"},
+- periodsWide: []string{"ກ່ອນທ່ຽງ", "ຫຼັງທ່ຽງ"},
+- erasAbbreviated: []string{"ກ່ອນ ຄ.ສ.", "ຄ.ສ."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ກ່ອນຄຣິດສັກກະລາດ", "ຄຣິດສັກກະລາດ"},
+- timezones: map[string]string{"IST": "ເວລາ ອິນເດຍ", "BOT": "ເວ\u200bລາ\u200bໂບ\u200bລິ\u200bເວຍ", "WAST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bຕົກ", "MYT": "ເວ\u200bລາ\u200bມາ\u200bເລ\u200bເຊຍ", "ART": "\u200bເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານອາ\u200bເຈນ\u200bທິ\u200bນາ", "PDT": "ເວລາກາງເວັນແປຊິຟິກ", "TMST": "ເວລາລະດູຮ້ອນຕວກເມນິສຖານ", "WAT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bຕົກ", "WARST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນເວ\u200bສ\u200bເທິນອາ\u200bເຈນ\u200bທິ\u200bນາ", "HAT": "ເວລາກາງເວັນນິວຟາວແລນ", "CLT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານຊິ\u200bລີ", "UYT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bອູ\u200bຣູ\u200bກວຍ", "AEDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bອອກ", "HKST": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bຮອງ\u200bກົງ", "MEZ": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຢູ\u200bໂຣບກາງ", "COT": "ເວລາມາດຕະຖານໂຄລຳເບຍ", "AKDT": "ເວລາກາງເວັນອະແລສກາ", "UYST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອູ\u200bຣູ\u200bກວຍ", "AKST": "ເວລາມາດຕະຖານອະແລສກາ", "SRT": "ເວ\u200bລາ\u200bຊຸ\u200bຣິ\u200bນາມ", "HNT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bນິວ\u200bຟາວ\u200bແລນ", "LHST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bລອດ\u200bເຮົາ", "SGT": "ເວ\u200bລາ\u200bສິງ\u200bກະ\u200bໂປ", "HNPMX": "ເວລາມາດຕະຖານແປຊິຟິກເມັກຊິກັນ", "AWDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bຕົກ", "CHADT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bຊາ\u200bທາມ", "NZST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານນິວ\u200bຊີ\u200bແລນ", "OEZ": "ເວ\u200bລາ\u200bມາ\u200bດ\u200bຕະ\u200bຖານ\u200bຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bອອກ", "WART": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານເວ\u200bສ\u200bເທິນອາ\u200bເຈນ\u200bທິ\u200bນາ", "CDT": "ເວລາກາງເວັນກາງ", "HNOG": "ເວລາມາດຕະຖານກຣີນແລນຕາເວັນຕົກ", "WEZ": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bຕົກ", "AEST": "ເວ\u200bລາ\u200bມາດຕະຖານ\u200b\u200b\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bອອກ", "HEPM": "\u200bເວ\u200bລາຕອນ\u200bທ່ຽງເຊນ\u200bປີ\u200bແອ ແລະ\u200bມິ\u200bກົວ\u200bລອນ", "JST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຍີ່\u200bປຸ່ນ", "∅∅∅": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນອາ\u200bເມ\u200bຊອນ", "COST": "ເວລາລະດູຮ້ອນໂຄລໍາເບຍ", "MST": "ເວລາມາດຕະຖານມາເກົາ", "HNCU": "ເວລາມາດຕະຖານຂອງຄິວບາ", "MESZ": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bຢູ\u200bໂຣບ\u200bກາງ", "JDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bຍີ່\u200bປຸ່ນ", "ACDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bເລຍ\u200bກາງ", "EAT": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bຕາ\u200bເວັນ\u200bອອກ", "GYT": "ເວລາກາຍອານາ", "EDT": "ເວລາກາງເວັນຕາເວັນອອກ", "ACWDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bອອສ\u200bເຕຣ\u200bລຽນ\u200bກາງ\u200bຕາ\u200bເວັນ\u200bຕົກ", "ECT": "ເວ\u200bລາ\u200bເອ\u200bກົວ\u200bດໍ", "GMT": "ເວ\u200bລາກຣີນ\u200bວິ\u200bຊ", "EST": "ເວລາມາດຕະຖານຕາເວັນອອກ", "PST": "ເວລາມາດຕະຖານແປຊິຟິກ", "WESZ": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bຕົກ", "CLST": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຊິ\u200bລີ", "HEOG": "ເວລາຕອນທ່ຽງກຣີນແລນຕາເວັນຕົກ", "AST": "ເວລາມາດຕະຖານຂອງອາແລນຕິກ", "HADT": "ເວລາຕອນທ່ຽງຮາວາຍ-ເອລູທຽນ", "SAST": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bໃຕ້", "CST": "ເວລາມາດຕະຖານກາງ", "HNEG": "ເວລາມາດຕະຖານຕາເວັນອອກກຣີນແລນ", "CAT": "ເວ\u200bລາ\u200bອາ\u200bຟຣິ\u200bກາ\u200bກາງ", "HECU": "ເວລາກາງເວັນຄິວບາ", "ACWST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານອອສ\u200bເຕຣ\u200bລຽນ\u200bກາງ\u200bຕາ\u200bເວັນ\u200bຕົກ", "WITA": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bກາງ", "HNPM": "\u200bເວ\u200bລາມາດ\u200bຕະ\u200bຖານເຊນ\u200bປີ\u200bແອ ແລະ\u200bມິ\u200bກົວ\u200bລອນ", "ChST": "ເວ\u200bລາ\u200bຈາ\u200bໂມ\u200bໂຣ", "HNNOMX": "\u200bເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານນອດ\u200bເວ\u200bສ\u200bເມັກ\u200bຊິ\u200bໂກ", "VET": "ເວ\u200bລາ\u200bເວ\u200bເນ\u200bຊູ\u200bເອ\u200bລາ", "WIB": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bຕາ\u200bເວັນ\u200bຕົກ", "HAST": "ເວລາມາດຕະຖານຮາວາຍ-ເອລູທຽນ", "HKT": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຮອງ\u200bກົງ", "HEEG": "ເວລາລະດູຮ້ອນກຣີນແລນຕາເວັນອອກ", "ACST": "ເວ\u200bລາມາດ\u200bຕະ\u200bຖານອອ\u200bສ\u200bເຕຣ\u200bເລຍ\u200bກ\u200bາງ", "ADT": "ເວລາກາງເວັນຂອງອາແລນຕິກ", "WIT": "ເວ\u200bລາ\u200bອິນ\u200bໂດ\u200bເນ\u200bເຊຍ\u200bຕາ\u200bເວັນ\u200bອອກ", "BT": "ເວ\u200bລາ\u200bພູ\u200bຖານ", "AWST": "ເວ\u200bລາ\u200bມາ\u200bດ\u200bຕະ\u200bຖານອອສ\u200bເຕຣ\u200bລຽນ\u200bຕາ\u200bເວັນ\u200bຕົກ", "NZDT": "ເວ\u200bລາ\u200bຕອນ\u200bທ່ຽງ\u200bນິວ\u200bຊີ\u200bແລນ", "TMT": "ເວລາມາດຕະຖານຕວກເມນິສຖານ", "OESZ": "ເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນຢູ\u200bໂຣບ\u200bຕາ\u200bເວັນ\u200bອອກ", "MDT": "ເວລາລະດູຮ້ອນມາເກົາ", "ARST": "\u200bເວ\u200bລາ\u200bລະ\u200bດູ\u200bຮ້ອນ\u200bອາ\u200bເຈນ\u200bທິ\u200bນາ", "CHAST": "ເວ\u200bລາ\u200bມາດ\u200bຕະ\u200bຖານ\u200bຊາ\u200bທາມ", "LHDT": "\u200bເວ\u200bລ\u200bສາ\u200bຕອນ\u200b\u200bທ່ຽງ\u200bລອດ\u200bເຮົາ\u200b", "GFT": "ເວ\u200bລາ\u200bເຟ\u200bຣນ\u200bຊ໌\u200bເກຍ\u200bນາ", "HENOMX": "ເວລາກາງເວັນເມັກຊິກັນນອດເວສ", "HEPMX": "ເວລາກາງເວັນແປຊິຟິກເມັກຊິກັນ"},
++ locale: "lo_LA",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"TMT": "TMT", "CAT": "CAT", "CLST": "CLST", "NZDT": "NZDT", "WEZ": "WEZ", "HECU": "HECU", "WAT": "WAT", "ChST": "ChST", "MEZ": "MEZ", "LHST": "LHST", "IST": "IST", "CHAST": "CHAST", "AEDT": "AEDT", "HNOG": "HNOG", "HEOG": "HEOG", "CLT": "CLT", "ECT": "ECT", "EAT": "EAT", "ACWDT": "ACWDT", "VET": "VET", "GFT": "GFT", "ART": "ART", "LHDT": "LHDT", "PDT": "PDT", "BT": "BT", "ACWST": "ACWST", "HEEG": "HEEG", "HEPM": "HEPM", "HAT": "HAT", "SAST": "SAST", "EDT": "EDT", "HKST": "HKST", "WITA": "WITA", "ARST": "ARST", "HENOMX": "HENOMX", "CHADT": "CHADT", "HEPMX": "HEPMX", "AWDT": "AWDT", "MYT": "MYT", "UYST": "UYST", "PST": "PST", "HNT": "HNT", "COST": "COST", "TMST": "TMST", "HAST": "HAST", "ACDT": "ACDT", "JST": "JST", "SGT": "SGT", "HNCU": "HNCU", "WAST": "WAST", "AKDT": "AKDT", "GYT": "GYT", "COT": "COT", "MDT": "MDT", "GMT": "GMT", "AKST": "AKST", "WART": "WART", "UYT": "UYT", "OESZ": "OESZ", "MST": "MST", "BOT": "BOT", "ACST": "ACST", "JDT": "JDT", "EST": "EST", "AEST": "AEST", "HNPMX": "HNPMX", "OEZ": "OEZ", "WIT": "WIT", "SRT": "SRT", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "WESZ": "WESZ", "∅∅∅": "∅∅∅", "HKT": "HKT", "AST": "AST", "HADT": "HADT", "HNPM": "HNPM", "CST": "CST", "WIB": "WIB", "WARST": "WARST", "CDT": "CDT", "NZST": "NZST", "ADT": "ADT", "HNEG": "HNEG", "AWST": "AWST"},
+ }
+ }
+ 
+@@ -122,7 +101,7 @@ func (lo *lo_LA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (lo *lo_LA) MonthsAbbreviated() []string {
+- return lo.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -132,7 +111,7 @@ func (lo *lo_LA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (lo *lo_LA) MonthsNarrow() []string {
+- return lo.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -142,7 +121,7 @@ func (lo *lo_LA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (lo *lo_LA) MonthsWide() []string {
+- return lo.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -194,32 +173,7 @@ func (lo *lo_LA) FmtNumber(num float64, v uint64) string {
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'lo_LA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (lo *lo_LA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lo.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, lo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, lo.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'lo_LA'
+@@ -227,56 +181,7 @@ func (lo *lo_LA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lo.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, lo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, lo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, lo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'lo_LA'
+@@ -285,64 +190,7 @@ func (lo *lo_LA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lo.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, lo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, lo.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, lo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'lo_LA'
+@@ -350,17 +198,6 @@ func (lo *lo_LA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -369,17 +206,6 @@ func (lo *lo_LA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, lo.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -388,17 +214,6 @@ func (lo *lo_LA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, lo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -407,27 +222,6 @@ func (lo *lo_LA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, lo.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20, 0xe0, 0xba, 0x97, 0xe0, 0xba, 0xb5, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, lo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() < 0 {
+- b = append(b, lo.erasWide[0]...)
+- } else {
+- b = append(b, lo.erasWide[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -436,15 +230,6 @@ func (lo *lo_LA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -453,22 +238,6 @@ func (lo *lo_LA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -477,21 +246,6 @@ func (lo *lo_LA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x20, 0xe0, 0xbb, 0x82, 0xe0, 0xba, 0xa1, 0xe0, 0xba, 0x87, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20, 0xe0, 0xba, 0x99, 0xe0, 0xba, 0xb2, 0xe0, 0xba, 0x97, 0xe0, 0xba, 0xb5, 0x20}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0xe0, 0xba, 0xa7, 0xe0, 0xba, 0xb4, 0xe0, 0xba, 0x99, 0xe0, 0xba, 0xb2, 0xe0, 0xba, 0x97, 0xe0, 0xba, 0xb5, 0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -500,25 +254,5 @@ func (lo *lo_LA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x20, 0xe0, 0xbb, 0x82, 0xe0, 0xba, 0xa1, 0xe0, 0xba, 0x87, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20, 0xe0, 0xba, 0x99, 0xe0, 0xba, 0xb2, 0xe0, 0xba, 0x97, 0xe0, 0xba, 0xb5, 0x20}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0xe0, 0xba, 0xa7, 0xe0, 0xba, 0xb4, 0xe0, 0xba, 0x99, 0xe0, 0xba, 0xb2, 0xe0, 0xba, 0x97, 0xe0, 0xba, 0xb5, 0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := lo.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/lrc/lrc.go b/lrc/lrc.go
+index 6d89c6e..2118852 100644
+--- a/lrc/lrc.go
++++ b/lrc/lrc.go
+@@ -64,7 +64,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BCE", "CE"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"HKST": "HKST", "GFT": "GFT", "HAT": "HAT", "HEOG": "HEOG", "AWDT": "AWDT", "WIB": "WIB", "WESZ": "WESZ", "AEST": "AEST", "TMST": "TMST", "ACST": "ACST", "EAT": "EAT", "SGT": "SGT", "WART": "WART", "HEPMX": "HEPMX", "HEEG": "HEEG", "CDT": "روٙشنایی نئهادار روٙز", "SAST": "SAST", "CLST": "CLST", "EST": "EST", "WEZ": "WEZ", "CHAST": "CHAST", "IST": "IST", "GYT": "GYT", "SRT": "SRT", "AWST": "AWST", "MEZ": "MEZ", "HNEG": "HNEG", "TMT": "TMT", "MST": "MST", "AKDT": "AKDT", "CST": "گاٛت مینجاٛیی ئستاٛنداٛرد", "HADT": "HADT", "HNT": "HNT", "NZST": "NZST", "ACDT": "ACDT", "CAT": "CAT", "COT": "COT", "UYT": "UYT", "ARST": "ARST", "AEDT": "AEDT", "NZDT": "NZDT", "BOT": "BOT", "WAST": "WAST", "OEZ": "OEZ", "ADT": "ADT", "WAT": "WAT", "ACWDT": "ACWDT", "LHDT": "LHDT", "HECU": "HECU", "UYST": "UYST", "ART": "ART", "MESZ": "MESZ", "HNPMX": "HNPMX", "HNOG": "HNOG", "JST": "JST", "JDT": "JDT", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "ECT": "ECT", "COST": "COST", "HNCU": "HNCU", "PST": "PST", "HKT": "HKT", "CHADT": "CHADT", "HEPM": "HEPM", "HENOMX": "HENOMX", "VET": "VET", "ACWST": "ACWST", "WITA": "WITA", "PDT": "PDT", "WARST": "WARST", "HNNOMX": "HNNOMX", "MDT": "MDT", "HAST": "HAST", "WIT": "WIT", "HNPM": "HNPM", "LHST": "LHST", "CLT": "CLT", "ChST": "ChST", "EDT": "EDT", "MYT": "MYT", "AKST": "AKST", "GMT": "GMT", "AST": "AST", "BT": "BT"},
++ timezones: map[string]string{"NZST": "NZST", "ChST": "ChST", "HEPM": "HEPM", "PDT": "PDT", "BT": "BT", "HNCU": "HNCU", "HNOG": "HNOG", "ART": "ART", "EAT": "EAT", "OEZ": "OEZ", "HNT": "HNT", "WARST": "WARST", "CAT": "CAT", "WIB": "WIB", "JDT": "JDT", "EDT": "EDT", "SRT": "SRT", "AEDT": "AEDT", "VET": "VET", "COST": "COST", "AST": "AST", "BOT": "BOT", "HENOMX": "HENOMX", "LHST": "LHST", "JST": "JST", "HAT": "HAT", "CDT": "روٙشنایی نئهادار روٙز", "HNNOMX": "HNNOMX", "UYST": "UYST", "WEZ": "WEZ", "HECU": "HECU", "TMT": "TMT", "CLST": "CLST", "MST": "MST", "ACWDT": "ACWDT", "UYT": "UYT", "COT": "COT", "EST": "EST", "TMST": "TMST", "HAST": "HAST", "MESZ": "MESZ", "IST": "IST", "HNPMX": "HNPMX", "WAST": "WAST", "AKST": "AKST", "WIT": "WIT", "ECT": "ECT", "MEZ": "MEZ", "AKDT": "AKDT", "SAST": "SAST", "GYT": "GYT", "AWST": "AWST", "MYT": "MYT", "PST": "PST", "AEST": "AEST", "CHAST": "CHAST", "SGT": "SGT", "CST": "گاٛت مینجاٛیی ئستاٛنداٛرد", "GMT": "GMT", "ARST": "ARST", "AWDT": "AWDT", "ADT": "ADT", "HADT": "HADT", "ACST": "ACST", "HNPM": "HNPM", "CHADT": "CHADT", "WART": "WART", "CLT": "CLT", "WITA": "WITA", "ACDT": "ACDT", "HNEG": "HNEG", "LHDT": "LHDT", "OESZ": "OESZ", "GFT": "GFT", "∅∅∅": "∅∅∅", "HKT": "HKT", "HKST": "HKST", "MDT": "MDT", "HEEG": "HEEG", "ACWST": "ACWST", "WESZ": "WESZ", "HEOG": "HEOG", "NZDT": "NZDT", "HEPMX": "HEPMX", "WAT": "WAT"},
+ }
+ }
+ 
+diff --git a/lrc_IQ/lrc_IQ.go b/lrc_IQ/lrc_IQ.go
+index ba74692..68e5a8e 100644
+--- a/lrc_IQ/lrc_IQ.go
++++ b/lrc_IQ/lrc_IQ.go
+@@ -10,61 +10,45 @@ import (
+ )
+ 
+ type lrc_IQ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'lrc_IQ' locale
+ func New() locales.Translator {
+ return &lrc_IQ{
+- locale: "lrc_IQ",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "جانڤیە", "فئڤریە", "مارس", "آڤریل", "مئی", "جوٙأن", "جوٙلا", "آگوست", "سئپتامر", "ئوکتوڤر", "نوڤامر", "دئسامر"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "جانڤیە", "فئڤریە", "مارس", "آڤریل", "مئی", "جوٙأن", "جوٙلا", "آگوست", "سئپتامر", "ئوکتوڤر", "نوڤامر", "دئسامر"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"BCE", "CE"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"TMT": "TMT", "HNCU": "HNCU", "HNT": "HNT", "PDT": "PDT", "NZST": "NZST", "HNEG": "HNEG", "VET": "VET", "HAT": "HAT", "HKT": "HKT", "ACDT": "ACDT", "COT": "COT", "GMT": "GMT", "AST": "AST", "ADT": "ADT", "AKST": "AKST", "ART": "ART", "WITA": "WITA", "AWST": "AWST", "MDT": "MDT", "HNPMX": "HNPMX", "UYST": "UYST", "AKDT": "AKDT", "HAST": "HAST", "ARST": "ARST", "AEST": "AEST", "CHADT": "CHADT", "ACST": "ACST", "COST": "COST", "EST": "EST", "BT": "BT", "SRT": "SRT", "MEZ": "MEZ", "IST": "IST", "CLT": "CLT", "GFT": "GFT", "WAST": "WAST", "WIB": "WIB", "WIT": "WIT", "HNPM": "HNPM", "HADT": "HADT", "ACWDT": "ACWDT", "LHDT": "LHDT", "JST": "JST", "∅∅∅": "∅∅∅", "BOT": "BOT", "ECT": "ECT", "WARST": "WARST", "SGT": "SGT", "HEPMX": "HEPMX", "NZDT": "NZDT", "TMST": "TMST", "ChST": "ChST", "OESZ": "OESZ", "PST": "PST", "ACWST": "ACWST", "CHAST": "CHAST", "OEZ": "OEZ", "CAT": "CAT", "HENOMX": "HENOMX", "AEDT": "AEDT", "SAST": "SAST", "EAT": "EAT", "HNNOMX": "HNNOMX", "CST": "گاٛت مینجاٛیی ئستاٛنداٛرد", "UYT": "UYT", "HEOG": "HEOG", "HEPM": "HEPM", "HECU": "HECU", "MYT": "MYT", "AWDT": "AWDT", "HKST": "HKST", "EDT": "EDT", "MST": "MST", "WESZ": "WESZ", "MESZ": "MESZ", "GYT": "GYT", "HNOG": "HNOG", "WEZ": "WEZ", "LHST": "LHST", "JDT": "JDT", "CLST": "CLST", "HEEG": "HEEG", "WAT": "WAT", "WART": "WART", "CDT": "روٙشنایی نئهادار روٙز"},
++ locale: "lrc_IQ",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"PDT": "PDT", "UYST": "UYST", "GYT": "GYT", "HNOG": "HNOG", "HEOG": "HEOG", "CDT": "CDT", "ARST": "ARST", "BT": "BT", "CHADT": "CHADT", "WESZ": "WESZ", "HEPMX": "HEPMX", "WAST": "WAST", "EST": "EST", "ACST": "ACST", "SGT": "SGT", "HNCU": "HNCU", "AWDT": "AWDT", "COT": "COT", "CLT": "CLT", "CLST": "CLST", "WARST": "WARST", "GMT": "GMT", "MYT": "MYT", "JST": "JST", "ACWDT": "ACWDT", "UYT": "UYT", "WAT": "WAT", "OESZ": "OESZ", "EDT": "EDT", "TMT": "TMT", "HNNOMX": "HNNOMX", "CHAST": "CHAST", "HECU": "HECU", "HNPMX": "HNPMX", "AKDT": "AKDT", "TMST": "TMST", "ART": "ART", "SRT": "SRT", "EAT": "EAT", "WEZ": "WEZ", "AKST": "AKST", "HKST": "HKST", "AEDT": "AEDT", "SAST": "SAST", "CAT": "CAT", "ECT": "ECT", "HADT": "HADT", "IST": "IST", "PST": "PST", "OEZ": "OEZ", "WIB": "WIB", "AST": "AST", "JDT": "JDT", "ACWST": "ACWST", "HNT": "HNT", "HEEG": "HEEG", "BOT": "BOT", "HAT": "HAT", "MST": "MST", "NZST": "NZST", "LHDT": "LHDT", "VET": "VET", "CST": "CST", "NZDT": "NZDT", "ADT": "ADT", "MESZ": "MESZ", "HNEG": "HNEG", "AWST": "AWST", "HNPM": "HNPM", "GFT": "GFT", "WART": "WART", "COST": "COST", "HKT": "HKT", "ChST": "ChST", "HAST": "HAST", "MEZ": "MEZ", "ACDT": "ACDT", "LHST": "LHST", "HEPM": "HEPM", "WIT": "WIT", "WITA": "WITA", "MDT": "MDT", "HENOMX": "HENOMX", "AEST": "AEST", "∅∅∅": "∅∅∅"},
+ }
+ }
+ 
+@@ -110,7 +94,7 @@ func (lrc *lrc_IQ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (lrc *lrc_IQ) MonthsAbbreviated() []string {
+- return lrc.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -120,7 +104,7 @@ func (lrc *lrc_IQ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (lrc *lrc_IQ) MonthsNarrow() []string {
+- return lrc.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -130,7 +114,7 @@ func (lrc *lrc_IQ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (lrc *lrc_IQ) MonthsWide() []string {
+- return lrc.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -176,73 +160,13 @@ func (lrc *lrc_IQ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'lrc_IQ' and handles both Whole and Real numbers based on 'v'
+ func (lrc *lrc_IQ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lrc.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, lrc.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, lrc.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'lrc_IQ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (lrc *lrc_IQ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lrc.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, lrc.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, lrc.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'lrc_IQ'
+@@ -250,60 +174,7 @@ func (lrc *lrc_IQ) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lrc.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lrc.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, lrc.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(lrc.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, lrc.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, lrc.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, lrc.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'lrc_IQ'
+@@ -312,72 +183,7 @@ func (lrc *lrc_IQ) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lrc.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lrc.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, lrc.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(lrc.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, lrc.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, lrc.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(lrc.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, lrc.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, lrc.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'lrc_IQ'
+@@ -385,28 +191,6 @@ func (lrc *lrc_IQ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -415,17 +199,6 @@ func (lrc *lrc_IQ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, lrc.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -434,17 +207,6 @@ func (lrc *lrc_IQ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, lrc.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -453,19 +215,6 @@ func (lrc *lrc_IQ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, lrc.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, lrc.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+diff --git a/lrc_IR/lrc_IR.go b/lrc_IR/lrc_IR.go
+index 23175ae..11adce4 100644
+--- a/lrc_IR/lrc_IR.go
++++ b/lrc_IR/lrc_IR.go
+@@ -10,61 +10,45 @@ import (
+ )
+ 
+ type lrc_IR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'lrc_IR' locale
+ func New() locales.Translator {
+ return &lrc_IR{
+- locale: "lrc_IR",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "جانڤیە", "فئڤریە", "مارس", "آڤریل", "مئی", "جوٙأن", "جوٙلا", "آگوست", "سئپتامر", "ئوکتوڤر", "نوڤامر", "دئسامر"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "جانڤیە", "فئڤریە", "مارس", "آڤریل", "مئی", "جوٙأن", "جوٙلا", "آگوست", "سئپتامر", "ئوکتوڤر", "نوڤامر", "دئسامر"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"BCE", "CE"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"CLST": "CLST", "ChST": "ChST", "OEZ": "OEZ", "SGT": "SGT", "CDT": "روٙشنایی نئهادار روٙز", "MEZ": "MEZ", "WAT": "WAT", "WARST": "WARST", "GMT": "GMT", "HNPMX": "HNPMX", "AKDT": "AKDT", "CHAST": "CHAST", "EAT": "EAT", "WAST": "WAST", "WESZ": "WESZ", "HEOG": "HEOG", "HKST": "HKST", "MESZ": "MESZ", "NZDT": "NZDT", "WART": "WART", "WEZ": "WEZ", "CLT": "CLT", "∅∅∅": "∅∅∅", "JST": "JST", "TMST": "TMST", "COT": "COT", "COST": "COST", "HNNOMX": "HNNOMX", "MDT": "MDT", "SAST": "SAST", "EST": "EST", "AWDT": "AWDT", "HNPM": "HNPM", "BOT": "BOT", "HEEG": "HEEG", "GFT": "GFT", "ACST": "ACST", "ECT": "ECT", "GYT": "GYT", "ART": "ART", "AKST": "AKST", "ACWST": "ACWST", "AWST": "AWST", "MST": "MST", "UYT": "UYT", "BT": "BT", "ACWDT": "ACWDT", "HNOG": "HNOG", "IST": "IST", "UYST": "UYST", "MYT": "MYT", "HADT": "HADT", "HKT": "HKT", "CHADT": "CHADT", "HNEG": "HNEG", "VET": "VET", "WITA": "WITA", "HENOMX": "HENOMX", "AST": "AST", "PST": "PST", "LHDT": "LHDT", "JDT": "JDT", "HECU": "HECU", "HAST": "HAST", "PDT": "PDT", "ARST": "ARST", "AEDT": "AEDT", "ACDT": "ACDT", "CAT": "CAT", "CST": "گاٛت مینجاٛیی ئستاٛنداٛرد", "WIT": "WIT", "HAT": "HAT", "AEST": "AEST", "NZST": "NZST", "TMT": "TMT", "OESZ": "OESZ", "EDT": "EDT", "HEPMX": "HEPMX", "WIB": "WIB", "SRT": "SRT", "HNT": "HNT", "LHST": "LHST", "HNCU": "HNCU", "ADT": "ADT", "HEPM": "HEPM"},
++ locale: "lrc_IR",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HADT": "HADT", "HNPM": "HNPM", "WEZ": "WEZ", "SAST": "SAST", "ARST": "ARST", "GMT": "GMT", "HENOMX": "HENOMX", "PDT": "PDT", "HNCU": "HNCU", "WESZ": "WESZ", "HAT": "HAT", "WARST": "WARST", "CLT": "CLT", "WIB": "WIB", "ART": "ART", "JST": "JST", "CST": "CST", "SRT": "SRT", "JDT": "JDT", "MYT": "MYT", "UYST": "UYST", "SGT": "SGT", "GYT": "GYT", "ACST": "ACST", "AWST": "AWST", "IST": "IST", "AST": "AST", "ADT": "ADT", "HAST": "HAST", "VET": "VET", "WAT": "WAT", "LHST": "LHST", "AEST": "AEST", "AEDT": "AEDT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "ECT": "ECT", "BOT": "BOT", "OESZ": "OESZ", "COT": "COT", "EST": "EST", "MDT": "MDT", "ACWDT": "ACWDT", "HNOG": "HNOG", "CLST": "CLST", "MST": "MST", "NZST": "NZST", "EAT": "EAT", "ACDT": "ACDT", "HECU": "HECU", "MESZ": "MESZ", "AWDT": "AWDT", "ACWST": "ACWST", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "WITA": "WITA", "NZDT": "NZDT", "ChST": "ChST", "HNNOMX": "HNNOMX", "HEEG": "HEEG", "WAST": "WAST", "AKST": "AKST", "GFT": "GFT", "BT": "BT", "HEOG": "HEOG", "HKT": "HKT", "MEZ": "MEZ", "LHDT": "LHDT", "CHADT": "CHADT", "HNT": "HNT", "WIT": "WIT", "EDT": "EDT", "TMT": "TMT", "CDT": "CDT", "UYT": "UYT", "WART": "WART", "TMST": "TMST", "HNEG": "HNEG", "HEPM": "HEPM", "PST": "PST", "AKDT": "AKDT", "OEZ": "OEZ", "COST": "COST", "HKST": "HKST", "CAT": "CAT"},
+ }
+ }
+ 
+@@ -110,7 +94,7 @@ func (lrc *lrc_IR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (lrc *lrc_IR) MonthsAbbreviated() []string {
+- return lrc.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -120,7 +104,7 @@ func (lrc *lrc_IR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (lrc *lrc_IR) MonthsNarrow() []string {
+- return lrc.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -130,7 +114,7 @@ func (lrc *lrc_IR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (lrc *lrc_IR) MonthsWide() []string {
+- return lrc.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -176,73 +160,13 @@ func (lrc *lrc_IR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'lrc_IR' and handles both Whole and Real numbers based on 'v'
+ func (lrc *lrc_IR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lrc.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, lrc.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, lrc.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'lrc_IR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (lrc *lrc_IR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lrc.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, lrc.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, lrc.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'lrc_IR'
+@@ -250,60 +174,7 @@ func (lrc *lrc_IR) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lrc.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lrc.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, lrc.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(lrc.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, lrc.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, lrc.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, lrc.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'lrc_IR'
+@@ -312,72 +183,7 @@ func (lrc *lrc_IR) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lrc.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lrc.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, lrc.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(lrc.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, lrc.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, lrc.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(lrc.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, lrc.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, lrc.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'lrc_IR'
+@@ -385,28 +191,6 @@ func (lrc *lrc_IR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -415,17 +199,6 @@ func (lrc *lrc_IR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, lrc.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -434,17 +207,6 @@ func (lrc *lrc_IR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, lrc.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -453,19 +215,6 @@ func (lrc *lrc_IR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, lrc.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, lrc.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -474,19 +223,6 @@ func (lrc *lrc_IR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lrc.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -495,26 +231,6 @@ func (lrc *lrc_IR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lrc.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lrc.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -523,30 +239,6 @@ func (lrc *lrc_IR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lrc.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lrc.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -555,34 +247,5 @@ func (lrc *lrc_IR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lrc.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lrc.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := lrc.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/lt/lt.go b/lt/lt.go
+index 10864ef..a84af21 100644
+--- a/lt/lt.go
++++ b/lt/lt.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"pr. Kr.", "po Kr."},
+ erasNarrow: []string{"pr. Kr.", "po Kr."},
+ erasWide: []string{"prieš Kristų", "po Kristaus"},
+- timezones: map[string]string{"MDT": "Makau vasaros laikas", "NZDT": "Naujosios Zelandijos vasaros laikas", "JST": "Japonijos žiemos laikas", "CAT": "Centrinės Afrikos laikas", "MYT": "Malaizijos laikas", "UYST": "Urugvajaus vasaros laikas", "HAST": "Havajų–Aleutų žiemos laikas", "WEZ": "Vakarų Europos žiemos laikas", "ACDT": "Centrinės Australijos vasaros laikas", "BT": "Butano laikas", "ACST": "Centrinės Australijos žiemos laikas", "GMT": "Grinvičo laikas", "EST": "Šiaurės Amerikos rytų žiemos laikas", "HEPMX": "Meksikos Ramiojo vandenyno vasaros laikas", "ADT": "Atlanto vasaros laikas", "WIB": "Vakarų Indonezijos laikas", "ACWST": "Centrinės vakarų Australijos žiemos laikas", "SAST": "Pietų Afrikos laikas", "OESZ": "Rytų Europos vasaros laikas", "HNCU": "Kubos žiemos laikas", "SRT": "Surinamo laikas", "CHADT": "Čatamo vasaros laikas", "ECT": "Ekvadoro laikas", "COT": "Kolumbijos žiemos laikas", "HENOMX": "Šiaurės Vakarų Meksikos vasaros laikas", "HNT": "Niufaundlendo žiemos laikas", "HKST": "Honkongo vasaros laikas", "CLT": "Čilės žiemos laikas", "TMST": "Turkmėnistano vasaros laikas", "ChST": "Čamoro laikas", "WART": "Vakarų Argentinos žiemos laikas", "WARST": "Vakarų Argentinos vasaros laikas", "EAT": "Rytų Afrikos laikas", "EDT": "Šiaurės Amerikos rytų vasaros laikas", "AST": "Atlanto žiemos laikas", "GYT": "Gajanos laikas", "WIT": "Rytų Indonezijos laikas", "ACWDT": "Centrinės vakarų Australijos vasaros laikas", "AEDT": "Rytų Australijos vasaros laikas", "HNPM": "Sen Pjero ir Mikelono žiemos laikas", "AKDT": "Aliaskos vasaros laikas", "HADT": "Havajų–Aleutų vasaros laikas", "ART": "Argentinos žiemos laikas", "PST": "Šiaurės Amerikos Ramiojo vandenyno žiemos laikas", "WITA": "Centrinės Indonezijos laikas", "MESZ": "Vidurio Europos vasaros laikas", "LHDT": "Lordo Hau vasaros laikas", "HKT": "Honkongo žiemos laikas", "WAST": "Vakarų Afrikos vasaros laikas", "HECU": "Kubos vasaros laikas", "VET": "Venesuelos laikas", "NZST": "Naujosios Zelandijos žiemos laikas", "∅∅∅": "Amazonės vasaros laikas", "BOT": "Bolivijos laikas", "HNEG": "Grenlandijos rytų žiemos laikas", "WAT": "Vakarų Afrikos žiemos laikas", "HNNOMX": "Šiaurės Vakarų Meksikos žiemos laikas", "GFT": "Prancūzijos Gvianos laikas", "UYT": "Urugvajaus žiemos laikas", "HEOG": "Grenlandijos vakarų vasaros laikas", "WESZ": "Vakarų Europos vasaros laikas", "AWDT": "Vakarų Australijos vasaros laikas", "HEPM": "Sen Pjero ir Mikelono vasaros laikas", "IST": "Indijos laikas", "TMT": "Turkmėnistano žiemos laikas", "MEZ": "Vidurio Europos žiemos laikas", "MST": "Makau žiemos laikas", "AKST": "Aliaskos žiemos laikas", "CST": "Šiaurės Amerikos centro žiemos laikas", "CDT": "Šiaurės Amerikos centro vasaros laikas", "HNOG": "Grenlandijos vakarų žiemos laikas", "PDT": "Šiaurės Amerikos Ramiojo vandenyno vasaros laikas", "AWST": "Vakarų Australijos žiemos laikas", "CLST": "Čilės vasaros laikas", "COST": "Kolumbijos vasaros laikas", "HNPMX": "Meksikos Ramiojo vandenyno žiemos laikas", "ARST": "Argentinos vasaros laikas", "HEEG": "Grenlandijos rytų vasaros laikas", "CHAST": "Čatamo žiemos laikas", "SGT": "Singapūro laikas", "HAT": "Niufaundlendo vasaros laikas", "AEST": "Rytų Australijos žiemos laikas", "JDT": "Japonijos vasaros laikas", "OEZ": "Rytų Europos žiemos laikas", "LHST": "Lordo Hau žiemos laikas"},
++ timezones: map[string]string{"LHDT": "Lordo Hau vasaros laikas", "BT": "Butano laikas", "HEPMX": "Meksikos Ramiojo vandenyno vasaros laikas", "COT": "Kolumbijos žiemos laikas", "COST": "Kolumbijos vasaros laikas", "CST": "Šiaurės Amerikos centro žiemos laikas", "HNEG": "Grenlandijos rytų žiemos laikas", "WITA": "Centrinės Indonezijos laikas", "ChST": "Čamoro laikas", "AEST": "Rytų Australijos žiemos laikas", "VET": "Venesuelos laikas", "AKST": "Aliaskos žiemos laikas", "GFT": "Prancūzijos Gvianos laikas", "SAST": "Pietų Afrikos laikas", "CLT": "Čilės žiemos laikas", "IST": "Indijos laikas", "UYST": "Urugvajaus vasaros laikas", "OEZ": "Rytų Europos žiemos laikas", "WIT": "Rytų Indonezijos laikas", "EST": "Šiaurės Amerikos rytų žiemos laikas", "HNOG": "Grenlandijos vakarų žiemos laikas", "ECT": "Ekvadoro laikas", "WIB": "Vakarų Indonezijos laikas", "GMT": "Grinvičo laikas", "HEPM": "Sen Pjero ir Mikelono vasaros laikas", "AEDT": "Rytų Australijos vasaros laikas", "CHADT": "Čatamo vasaros laikas", "EDT": "Šiaurės Amerikos rytų vasaros laikas", "HKST": "Honkongo vasaros laikas", "TMST": "Turkmėnistano vasaros laikas", "CDT": "Šiaurės Amerikos centro vasaros laikas", "AST": "Atlanto žiemos laikas", "HENOMX": "Šiaurės Vakarų Meksikos vasaros laikas", "ACWDT": "Centrinės vakarų Australijos vasaros laikas", "WESZ": "Vakarų Europos vasaros laikas", "SGT": "Singapūro laikas", "TMT": "Turkmėnistano žiemos laikas", "CLST": "Čilės vasaros laikas", "MDT": "Makau vasaros laikas", "PST": "Šiaurės Amerikos Ramiojo vandenyno žiemos laikas", "OESZ": "Rytų Europos vasaros laikas", "WART": "Vakarų Argentinos žiemos laikas", "CAT": "Centrinės Afrikos laikas", "HAST": "Havajų–Aleutų žiemos laikas", "PDT": "Šiaurės Amerikos Ramiojo vandenyno vasaros laikas", "ARST": "Argentinos vasaros laikas", "MEZ": "Vidurio Europos žiemos laikas", "MYT": "Malaizijos laikas", "HNPM": "Sen Pjero ir Mikelono žiemos laikas", "ACWST": "Centrinės vakarų Australijos žiemos laikas", "HEOG": "Grenlandijos vakarų vasaros laikas", "NZST": "Naujosios Zelandijos žiemos laikas", "AKDT": "Aliaskos vasaros laikas", "ART": "Argentinos žiemos laikas", "MESZ": "Vidurio Europos vasaros laikas", "LHST": "Lordo Hau žiemos laikas", "NZDT": "Naujosios Zelandijos vasaros laikas", "BOT": "Bolivijos laikas", "UYT": "Urugvajaus žiemos laikas", "ACDT": "Centrinės Australijos vasaros laikas", "AWDT": "Vakarų Australijos vasaros laikas", "∅∅∅": "Ako vasaros laikas", "CHAST": "Čatamo žiemos laikas", "WEZ": "Vakarų Europos žiemos laikas", "HECU": "Kubos vasaros laikas", "HNPMX": "Meksikos Ramiojo vandenyno žiemos laikas", "HADT": "Havajų–Aleutų vasaros laikas", "MST": "Makau žiemos laikas", "AWST": "Vakarų Australijos žiemos laikas", "JDT": "Japonijos vasaros laikas", "ACST": "Centrinės Australijos žiemos laikas", "HEEG": "Grenlandijos rytų vasaros laikas", "HNCU": "Kubos žiemos laikas", "WAT": "Vakarų Afrikos žiemos laikas", "WAST": "Vakarų Afrikos vasaros laikas", "HAT": "Niufaundlendo vasaros laikas", "GYT": "Gajanos laikas", "ADT": "Atlanto vasaros laikas", "HNNOMX": "Šiaurės Vakarų Meksikos žiemos laikas", "HNT": "Niufaundlendo žiemos laikas", "WARST": "Vakarų Argentinos vasaros laikas", "HKT": "Honkongo žiemos laikas", "SRT": "Surinamo laikas", "EAT": "Rytų Afrikos laikas", "JST": "Japonijos žiemos laikas"},
+ }
+ }
+ 
+diff --git a/lt_LT/lt_LT.go b/lt_LT/lt_LT.go
+index 725efb5..b3f9e2c 100644
+--- a/lt_LT/lt_LT.go
++++ b/lt_LT/lt_LT.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type lt_LT struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'lt_LT' locale
+ func New() locales.Translator {
+ return &lt_LT{
+- locale: "lt_LT",
+- pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 5, 6},
+- decimal: ",",
+- group: " ",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "saus.", "vas.", "kov.", "bal.", "geg.", "birž.", "liep.", "rugp.", "rugs.", "spal.", "lapkr.", "gruod."},
+- monthsNarrow: []string{"", "S", "V", "K", "B", "G", "B", "L", "R", "R", "S", "L", "G"},
+- monthsWide: []string{"", "sausio", "vasario", "kovo", "balandžio", "gegužės", "birželio", "liepos", "rugpjūčio", "rugsėjo", "spalio", "lapkričio", "gruodžio"},
+- daysAbbreviated: []string{"sk", "pr", "an", "tr", "kt", "pn", "št"},
+- daysNarrow: []string{"S", "P", "A", "T", "K", "P", "Š"},
+- daysShort: []string{"Sk", "Pr", "An", "Tr", "Kt", "Pn", "Št"},
+- daysWide: []string{"sekmadienis", "pirmadienis", "antradienis", "trečiadienis", "ketvirtadienis", "penktadienis", "šeštadienis"},
+- periodsAbbreviated: []string{"priešpiet", "popiet"},
+- periodsNarrow: []string{"pr. p.", "pop."},
+- periodsWide: []string{"priešpiet", "popiet"},
+- erasAbbreviated: []string{"pr. Kr.", "po Kr."},
+- erasNarrow: []string{"pr. Kr.", "po Kr."},
+- erasWide: []string{"prieš Kristų", "po Kristaus"},
+- timezones: map[string]string{"LHDT": "Lordo Hau vasaros laikas", "JST": "Japonijos žiemos laikas", "JDT": "Japonijos vasaros laikas", "TMT": "Turkmėnistano žiemos laikas", "∅∅∅": "Peru vasaros laikas", "EDT": "Šiaurės Amerikos rytų vasaros laikas", "CHADT": "Čatamo vasaros laikas", "CHAST": "Čatamo žiemos laikas", "WIB": "Vakarų Indonezijos laikas", "ACWDT": "Centrinės vakarų Australijos vasaros laikas", "ART": "Argentinos žiemos laikas", "AEST": "Rytų Australijos žiemos laikas", "AEDT": "Rytų Australijos vasaros laikas", "MESZ": "Vidurio Europos vasaros laikas", "LHST": "Lordo Hau žiemos laikas", "ECT": "Ekvadoro laikas", "PDT": "Šiaurės Amerikos Ramiojo vandenyno vasaros laikas", "WEZ": "Vakarų Europos žiemos laikas", "HNCU": "Kubos žiemos laikas", "WESZ": "Vakarų Europos vasaros laikas", "HEPMX": "Meksikos Ramiojo vandenyno vasaros laikas", "HNPM": "Sen Pjero ir Mikelono žiemos laikas", "GFT": "Prancūzijos Gvianos laikas", "EST": "Šiaurės Amerikos rytų žiemos laikas", "AST": "Atlanto žiemos laikas", "HEOG": "Grenlandijos vakarų vasaros laikas", "HKT": "Honkongo žiemos laikas", "AWST": "Vakarų Australijos žiemos laikas", "EAT": "Rytų Afrikos laikas", "WARST": "Vakarų Argentinos vasaros laikas", "COT": "Kolumbijos žiemos laikas", "MEZ": "Vidurio Europos žiemos laikas", "TMST": "Turkmėnistano vasaros laikas", "ACDT": "Centrinės Australijos vasaros laikas", "MDT": "Makau vasaros laikas", "HADT": "Havajų–Aleutų vasaros laikas", "BT": "Butano laikas", "AKDT": "Aliaskos vasaros laikas", "HAT": "Niufaundlendo vasaros laikas", "CLT": "Čilės žiemos laikas", "OEZ": "Rytų Europos žiemos laikas", "WART": "Vakarų Argentinos žiemos laikas", "SGT": "Singapūro laikas", "WAT": "Vakarų Afrikos žiemos laikas", "PST": "Šiaurės Amerikos Ramiojo vandenyno žiemos laikas", "NZDT": "Naujosios Zelandijos vasaros laikas", "HAST": "Havajų–Aleutų žiemos laikas", "AWDT": "Vakarų Australijos vasaros laikas", "HEEG": "Grenlandijos rytų vasaros laikas", "HECU": "Kubos vasaros laikas", "ADT": "Atlanto vasaros laikas", "UYST": "Urugvajaus vasaros laikas", "SRT": "Surinamo laikas", "ChST": "Čamoro laikas", "ACST": "Centrinės Australijos žiemos laikas", "OESZ": "Rytų Europos vasaros laikas", "COST": "Kolumbijos vasaros laikas", "WIT": "Rytų Indonezijos laikas", "WITA": "Centrinės Indonezijos laikas", "SAST": "Pietų Afrikos laikas", "HNEG": "Grenlandijos rytų žiemos laikas", "CAT": "Centrinės Afrikos laikas", "AKST": "Aliaskos žiemos laikas", "MYT": "Malaizijos laikas", "HEPM": "Sen Pjero ir Mikelono vasaros laikas", "CST": "Šiaurės Amerikos centro žiemos laikas", "CDT": "Šiaurės Amerikos centro vasaros laikas", "ACWST": "Centrinės vakarų Australijos žiemos laikas", "HNOG": "Grenlandijos vakarų žiemos laikas", "HKST": "Honkongo vasaros laikas", "CLST": "Čilės vasaros laikas", "BOT": "Bolivijos laikas", "GMT": "Grinvičo laikas", "HNPMX": "Meksikos Ramiojo vandenyno žiemos laikas", "VET": "Venesuelos laikas", "MST": "Makau žiemos laikas", "GYT": "Gajanos laikas", "UYT": "Urugvajaus žiemos laikas", "HNT": "Niufaundlendo žiemos laikas", "ARST": "Argentinos vasaros laikas", "WAST": "Vakarų Afrikos vasaros laikas", "HNNOMX": "Šiaurės Vakarų Meksikos žiemos laikas", "HENOMX": "Šiaurės Vakarų Meksikos vasaros laikas", "NZST": "Naujosios Zelandijos žiemos laikas", "IST": "Indijos laikas"},
++ locale: "lt_LT",
++ pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"BOT": "BOT", "HAST": "HAST", "HADT": "HADT", "CLST": "CLST", "CST": "CST", "NZDT": "NZDT", "HNPMX": "HNPMX", "TMT": "TMT", "CHAST": "CHAST", "WESZ": "WESZ", "HECU": "HECU", "HNNOMX": "HNNOMX", "MST": "MST", "ART": "ART", "HEEG": "HEEG", "GYT": "GYT", "HKT": "HKT", "WITA": "WITA", "NZST": "NZST", "ARST": "ARST", "MYT": "MYT", "ACWDT": "ACWDT", "WARST": "WARST", "MESZ": "MESZ", "PST": "PST", "HENOMX": "HENOMX", "HNPM": "HNPM", "HEPM": "HEPM", "JDT": "JDT", "WIT": "WIT", "CAT": "CAT", "AWST": "AWST", "LHDT": "LHDT", "WAT": "WAT", "WAST": "WAST", "OESZ": "OESZ", "SRT": "SRT", "ACST": "ACST", "HNEG": "HNEG", "LHST": "LHST", "JST": "JST", "ACWST": "ACWST", "PDT": "PDT", "COT": "COT", "HNOG": "HNOG", "CDT": "CDT", "WIB": "WIB", "UYT": "UYT", "BT": "BT", "WEZ": "WEZ", "HEOG": "HEOG", "IST": "IST", "AKDT": "AKDT", "SAST": "SAST", "VET": "VET", "MDT": "MDT", "HEPMX": "HEPMX", "OEZ": "OEZ", "EDT": "EDT", "CLT": "CLT", "AST": "AST", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "ADT": "ADT", "SGT": "SGT", "WART": "WART", "COST": "COST", "CHADT": "CHADT", "UYST": "UYST", "AEST": "AEST", "EAT": "EAT", "ACDT": "ACDT", "HNCU": "HNCU", "GFT": "GFT", "ChST": "ChST", "EST": "EST", "TMST": "TMST", "GMT": "GMT", "HKST": "HKST", "ECT": "ECT", "MEZ": "MEZ", "AKST": "AKST", "HNT": "HNT", "HAT": "HAT"},
+ }
+ }
+ 
+@@ -170,7 +145,7 @@ func (lt *lt_LT) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (lt *lt_LT) MonthsAbbreviated() []string {
+- return lt.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -180,7 +155,7 @@ func (lt *lt_LT) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (lt *lt_LT) MonthsNarrow() []string {
+- return lt.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -190,7 +165,7 @@ func (lt *lt_LT) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (lt *lt_LT) MonthsWide() []string {
+- return lt.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -236,81 +211,13 @@ func (lt *lt_LT) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'lt_LT' and handles both Whole and Real numbers based on 'v'
+ func (lt *lt_LT) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(lt.group) - 1; j >= 0; j-- {
+- b = append(b, lt.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(lt.minus) - 1; j >= 0; j-- {
+- b = append(b, lt.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'lt_LT' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (lt *lt_LT) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lt.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(lt.minus) - 1; j >= 0; j-- {
+- b = append(b, lt.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, lt.percentSuffix...)
+-
+- b = append(b, lt.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'lt_LT'
+@@ -318,60 +225,7 @@ func (lt *lt_LT) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lt.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(lt.group) - 1; j >= 0; j-- {
+- b = append(b, lt.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(lt.minus) - 1; j >= 0; j-- {
+- b = append(b, lt.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, lt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, lt.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'lt_LT'
+@@ -380,67 +234,7 @@ func (lt *lt_LT) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lt.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(lt.group) - 1; j >= 0; j-- {
+- b = append(b, lt.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(lt.minus) - 1; j >= 0; j-- {
+- b = append(b, lt.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, lt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, lt.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, lt.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'lt_LT'
+@@ -448,28 +242,6 @@ func (lt *lt_LT) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -478,28 +250,6 @@ func (lt *lt_LT) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -508,20 +258,6 @@ func (lt *lt_LT) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0x6d}...)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, lt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -530,21 +266,6 @@ func (lt *lt_LT) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0x6d}...)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, lt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64}...)
+- b = append(b, []byte{0x2e, 0x2c, 0x20}...)
+- b = append(b, lt.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -553,19 +274,6 @@ func (lt *lt_LT) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -574,26 +282,6 @@ func (lt *lt_LT) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -602,30 +290,6 @@ func (lt *lt_LT) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -634,34 +298,5 @@ func (lt *lt_LT) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := lt.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/lu/lu.go b/lu/lu.go
+index cb9c4a2..623f7cc 100644
+--- a/lu/lu.go
++++ b/lu/lu.go
+@@ -61,7 +61,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"kmp. Y.K.", "kny. Y. K."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kumpala kwa Yezu Kli", "Kunyima kwa Yezu Kli"},
+- timezones: map[string]string{"∅∅∅": "∅∅∅", "EST": "EST", "ACWDT": "ACWDT", "CLST": "CLST", "SGT": "SGT", "CDT": "CDT", "HNEG": "HNEG", "COST": "COST", "WESZ": "WESZ", "HNT": "HNT", "AWDT": "AWDT", "TMT": "TMT", "WAST": "WAST", "HNNOMX": "HNNOMX", "HAST": "HAST", "ARST": "ARST", "MEZ": "MEZ", "IST": "IST", "EDT": "EDT", "MDT": "MDT", "HEOG": "HEOG", "LHDT": "LHDT", "JDT": "JDT", "HEEG": "HEEG", "ACST": "ACST", "WAT": "WAT", "HADT": "HADT", "PST": "PST", "AEDT": "AEDT", "HKT": "HKT", "HNPM": "HNPM", "VET": "VET", "ACWST": "ACWST", "SAST": "SAST", "JST": "JST", "TMST": "TMST", "CAT": "CAT", "COT": "COT", "UYT": "UYT", "WIB": "WIB", "OEZ": "OEZ", "WART": "WART", "ADT": "ADT", "AKDT": "AKDT", "SRT": "SRT", "HNOG": "HNOG", "MESZ": "MESZ", "CHADT": "CHADT", "GFT": "GFT", "HNCU": "HNCU", "AST": "AST", "AEST": "AEST", "EAT": "EAT", "WARST": "WARST", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "CST": "CST", "BT": "BT", "HEPM": "HEPM", "ChST": "ChST", "ACDT": "ACDT", "PDT": "PDT", "HAT": "HAT", "AWST": "AWST", "HKST": "HKST", "CHAST": "CHAST", "BOT": "BOT", "OESZ": "OESZ", "HECU": "HECU", "HEPMX": "HEPMX", "MYT": "MYT", "AKST": "AKST", "ART": "ART", "CLT": "CLT", "MST": "MST", "NZDT": "NZDT", "ECT": "ECT", "GYT": "GYT", "UYST": "UYST", "WITA": "WITA", "NZST": "NZST", "GMT": "GMT", "WIT": "WIT", "WEZ": "WEZ", "LHST": "LHST"},
++ timezones: map[string]string{"HNT": "HNT", "GYT": "GYT", "AST": "AST", "ChST": "ChST", "HEEG": "HEEG", "BT": "BT", "VET": "VET", "HNCU": "HNCU", "CLT": "CLT", "HNEG": "HNEG", "WEZ": "WEZ", "GFT": "GFT", "HEOG": "HEOG", "ADT": "ADT", "AWDT": "AWDT", "HEPM": "HEPM", "AEST": "AEST", "WESZ": "WESZ", "WARST": "WARST", "TMT": "TMT", "ARST": "ARST", "MEZ": "MEZ", "HNPM": "HNPM", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "HKT": "HKT", "WIB": "WIB", "HADT": "HADT", "ACDT": "ACDT", "AEDT": "AEDT", "UYST": "UYST", "SGT": "SGT", "WART": "WART", "EST": "EST", "BOT": "BOT", "LHST": "LHST", "SAST": "SAST", "CAT": "CAT", "MST": "MST", "JDT": "JDT", "CHAST": "CHAST", "UYT": "UYT", "OEZ": "OEZ", "CLST": "CLST", "NZDT": "NZDT", "ACWDT": "ACWDT", "WITA": "WITA", "MESZ": "MESZ", "HEPMX": "HEPMX", "WAST": "WAST", "CST": "CST", "NZST": "NZST", "HNNOMX": "HNNOMX", "JST": "JST", "PST": "PST", "HECU": "HECU", "HKST": "HKST", "CDT": "CDT", "MDT": "MDT", "PDT": "PDT", "WAT": "WAT", "OESZ": "OESZ", "WIT": "WIT", "HAST": "HAST", "HNPMX": "HNPMX", "AKST": "AKST", "AKDT": "AKDT", "HAT": "HAT", "COT": "COT", "EDT": "EDT", "ECT": "ECT", "HENOMX": "HENOMX", "IST": "IST", "ACWST": "ACWST", "HNOG": "HNOG", "ART": "ART", "SRT": "SRT", "EAT": "EAT", "AWST": "AWST", "MYT": "MYT", "COST": "COST", "TMST": "TMST", "GMT": "GMT", "ACST": "ACST", "LHDT": "LHDT"},
+ }
+ }
+ 
+diff --git a/lu_CD/lu_CD.go b/lu_CD/lu_CD.go
+index 2bdf1b8..27e9ee3 100644
+--- a/lu_CD/lu_CD.go
++++ b/lu_CD/lu_CD.go
+@@ -42,26 +42,13 @@ type lu_CD struct {
+ // New returns a new instance of translator for the 'lu_CD' locale
+ func New() locales.Translator {
+ return &lu_CD{
+- locale: "lu_CD",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Cio", "Lui", "Lus", "Muu", "Lum", "Luf", "Kab", "Lush", "Lut", "Lun", "Kas", "Cis"},
+- monthsNarrow: []string{"", "C", "L", "L", "M", "L", "L", "K", "L", "L", "L", "K", "C"},
+- monthsWide: []string{"", "Ciongo", "Lùishi", "Lusòlo", "Mùuyà", "Lumùngùlù", "Lufuimi", "Kabàlàshìpù", "Lùshìkà", "Lutongolo", "Lungùdi", "Kaswèkèsè", "Ciswà"},
+- daysAbbreviated: []string{"Lum", "Nko", "Ndy", "Ndg", "Njw", "Ngv", "Lub"},
+- daysNarrow: []string{"L", "N", "N", "N", "N", "N", "L"},
+- daysWide: []string{"Lumingu", "Nkodya", "Ndàayà", "Ndangù", "Njòwa", "Ngòvya", "Lubingu"},
+- periodsAbbreviated: []string{"Dinda", "Dilolo"},
+- periodsWide: []string{"Dinda", "Dilolo"},
+- erasAbbreviated: []string{"kmp. Y.K.", "kny. Y. K."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kumpala kwa Yezu Kli", "Kunyima kwa Yezu Kli"},
+- timezones: map[string]string{"CAT": "CAT", "WAT": "WAT", "WIB": "WIB", "HAST": "HAST", "HKT": "HKT", "JDT": "JDT", "TMST": "TMST", "OESZ": "OESZ", "VET": "VET", "HNOG": "HNOG", "MEZ": "MEZ", "MESZ": "MESZ", "HEEG": "HEEG", "ACST": "ACST", "COST": "COST", "ADT": "ADT", "HKST": "HKST", "GYT": "GYT", "ART": "ART", "ARST": "ARST", "CLST": "CLST", "WESZ": "WESZ", "HNT": "HNT", "TMT": "TMT", "ECT": "ECT", "∅∅∅": "∅∅∅", "COT": "COT", "HEPMX": "HEPMX", "PDT": "PDT", "AWDT": "AWDT", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "MYT": "MYT", "HAT": "HAT", "WART": "WART", "MDT": "MDT", "AWST": "AWST", "EAT": "EAT", "WAST": "WAST", "OEZ": "OEZ", "HENOMX": "HENOMX", "AKST": "AKST", "AKDT": "AKDT", "PST": "PST", "NZDT": "NZDT", "EDT": "EDT", "CST": "CST", "HEOG": "HEOG", "WEZ": "WEZ", "HECU": "HECU", "UYT": "UYT", "AEST": "AEST", "HEPM": "HEPM", "LHST": "LHST", "CHAST": "CHAST", "BOT": "BOT", "AST": "AST", "ACWDT": "ACWDT", "WITA": "WITA", "IST": "IST", "ACDT": "ACDT", "WARST": "WARST", "HNCU": "HNCU", "EST": "EST", "MST": "MST", "CDT": "CDT", "JST": "JST", "GMT": "GMT", "HADT": "HADT", "BT": "BT", "SRT": "SRT", "CHADT": "CHADT", "AEDT": "AEDT", "NZST": "NZST", "ChST": "ChST", "GFT": "GFT", "SGT": "SGT", "UYST": "UYST", "WIT": "WIT", "ACWST": "ACWST", "CLT": "CLT", "HNEG": "HNEG", "HNPM": "HNPM", "LHDT": "LHDT", "SAST": "SAST"},
++ locale: "lu_CD",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SAST": "SAST", "ARST": "ARST", "HENOMX": "HENOMX", "BT": "BT", "WIB": "WIB", "GMT": "GMT", "WART": "WART", "GYT": "GYT", "ART": "ART", "EAT": "EAT", "AKDT": "AKDT", "HEEG": "HEEG", "CST": "CST", "MST": "MST", "NZDT": "NZDT", "ACWST": "ACWST", "WAST": "WAST", "COT": "COT", "CLST": "CLST", "SRT": "SRT", "AWDT": "AWDT", "PST": "PST", "COST": "COST", "EDT": "EDT", "HKT": "HKT", "SGT": "SGT", "TMT": "TMT", "HADT": "HADT", "LHST": "LHST", "ACWDT": "ACWDT", "HNT": "HNT", "TMST": "TMST", "WITA": "WITA", "HAST": "HAST", "∅∅∅": "∅∅∅", "HECU": "HECU", "AEST": "AEST", "HNCU": "HNCU", "WARST": "WARST", "HNEG": "HNEG", "MYT": "MYT", "JDT": "JDT", "MESZ": "MESZ", "AWST": "AWST", "JST": "JST", "IST": "IST", "WEZ": "WEZ", "CDT": "CDT", "MDT": "MDT", "NZST": "NZST", "HKST": "HKST", "CLT": "CLT", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "PDT": "PDT", "VET": "VET", "OESZ": "OESZ", "AST": "AST", "ACST": "ACST", "ACDT": "ACDT", "CAT": "CAT", "HAT": "HAT", "HEPM": "HEPM", "CHADT": "CHADT", "HNPMX": "HNPMX", "HNPM": "HNPM", "ECT": "ECT", "ADT": "ADT", "MEZ": "MEZ", "AKST": "AKST", "WIT": "WIT", "WAT": "WAT", "GFT": "GFT", "HEOG": "HEOG", "BOT": "BOT", "UYT": "UYT", "WESZ": "WESZ", "AEDT": "AEDT", "HEPMX": "HEPMX", "OEZ": "OEZ", "HNOG": "HNOG", "EST": "EST", "ChST": "ChST", "CHAST": "CHAST", "UYST": "UYST"},
+ }
+ }
+ 
+@@ -107,7 +94,7 @@ func (lu *lu_CD) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (lu *lu_CD) MonthsAbbreviated() []string {
+- return lu.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -117,7 +104,7 @@ func (lu *lu_CD) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (lu *lu_CD) MonthsNarrow() []string {
+- return lu.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -127,7 +114,7 @@ func (lu *lu_CD) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (lu *lu_CD) MonthsWide() []string {
+- return lu.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -173,42 +160,7 @@ func (lu *lu_CD) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'lu_CD' and handles both Whole and Real numbers based on 'v'
+ func (lu *lu_CD) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, lu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, lu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'lu_CD' and handles both Whole and Real numbers based on 'v'
+@@ -222,54 +174,7 @@ func (lu *lu_CD) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lu.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, lu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, lu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, lu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'lu_CD'
+@@ -278,61 +183,7 @@ func (lu *lu_CD) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lu.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, lu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, lu.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, lu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'lu_CD'
+@@ -340,17 +191,6 @@ func (lu *lu_CD) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -359,17 +199,6 @@ func (lu *lu_CD) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, lu.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -378,17 +207,6 @@ func (lu *lu_CD) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, lu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -397,19 +215,6 @@ func (lu *lu_CD) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, lu.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, lu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -418,19 +223,6 @@ func (lu *lu_CD) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -439,26 +231,6 @@ func (lu *lu_CD) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -467,30 +239,6 @@ func (lu *lu_CD) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -499,34 +247,5 @@ func (lu *lu_CD) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := lu.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/luo/luo.go b/luo/luo.go
+index 78ed7ca..2241a72 100644
+--- a/luo/luo.go
++++ b/luo/luo.go
+@@ -59,7 +59,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kapok Kristo obiro", "Ka Kristo osebiro"},
+- timezones: map[string]string{"CST": "CST", "PDT": "PDT", "ACDT": "ACDT", "EAT": "EAT", "HENOMX": "HENOMX", "AKST": "AKST", "PST": "PST", "HEPM": "HEPM", "TMT": "TMT", "CAT": "CAT", "HAT": "HAT", "AEDT": "AEDT", "ACWST": "ACWST", "WAST": "WAST", "CDT": "CDT", "WIT": "WIT", "WESZ": "WESZ", "HKT": "HKT", "AWDT": "AWDT", "GFT": "GFT", "WAT": "WAT", "CHAST": "CHAST", "CHADT": "CHADT", "EDT": "EDT", "SRT": "SRT", "ACWDT": "ACWDT", "CLT": "CLT", "HNNOMX": "HNNOMX", "GMT": "GMT", "∅∅∅": "∅∅∅", "SGT": "SGT", "ACST": "ACST", "ECT": "ECT", "ART": "ART", "CLST": "CLST", "HEEG": "HEEG", "MST": "MST", "HNOG": "HNOG", "AEST": "AEST", "LHST": "LHST", "TMST": "TMST", "UYT": "UYT", "LHDT": "LHDT", "HECU": "HECU", "WITA": "WITA", "AST": "AST", "ADT": "ADT", "HNPM": "HNPM", "IST": "IST", "JST": "JST", "OEZ": "OEZ", "COT": "COT", "HADT": "HADT", "VET": "VET", "BT": "BT", "HEOG": "HEOG", "WEZ": "WEZ", "NZDT": "NZDT", "EST": "EST", "MYT": "MYT", "MEZ": "MEZ", "JDT": "JDT", "HNT": "HNT", "AWST": "AWST", "HNEG": "HNEG", "OESZ": "OESZ", "AKDT": "AKDT", "WIB": "WIB", "HAST": "HAST", "ARST": "ARST", "NZST": "NZST", "HNCU": "HNCU", "HEPMX": "HEPMX", "WART": "WART", "WARST": "WARST", "COST": "COST", "HNPMX": "HNPMX", "MDT": "MDT", "GYT": "GYT", "ChST": "ChST", "BOT": "BOT", "MESZ": "MESZ", "SAST": "SAST", "UYST": "UYST", "HKST": "HKST"},
++ timezones: map[string]string{"HNEG": "HNEG", "LHDT": "LHDT", "IST": "IST", "HAT": "HAT", "HNOG": "HNOG", "EST": "EST", "ARST": "ARST", "ADT": "ADT", "NZDT": "NZDT", "HENOMX": "HENOMX", "AST": "AST", "JST": "JST", "UYT": "UYT", "WAT": "WAT", "WEZ": "WEZ", "WESZ": "WESZ", "WIT": "WIT", "HNT": "HNT", "CAT": "CAT", "CST": "CST", "HAST": "HAST", "HNPMX": "HNPMX", "WIB": "WIB", "BOT": "BOT", "CHADT": "CHADT", "WART": "WART", "∅∅∅": "∅∅∅", "EDT": "EDT", "BT": "BT", "HNCU": "HNCU", "NZST": "NZST", "ART": "ART", "PDT": "PDT", "VET": "VET", "MESZ": "MESZ", "HEPMX": "HEPMX", "GFT": "GFT", "OEZ": "OEZ", "UYST": "UYST", "OESZ": "OESZ", "TMST": "TMST", "MDT": "MDT", "ACWDT": "ACWDT", "AEDT": "AEDT", "AKST": "AKST", "WITA": "WITA", "MYT": "MYT", "JDT": "JDT", "HECU": "HECU", "WAST": "WAST", "MST": "MST", "ACST": "ACST", "ACDT": "ACDT", "SGT": "SGT", "ChST": "ChST", "EAT": "EAT", "PST": "PST", "GYT": "GYT", "HEOG": "HEOG", "TMT": "TMT", "CLT": "CLT", "SAST": "SAST", "ECT": "ECT", "AWST": "AWST", "HKT": "HKT", "CDT": "CDT", "HEEG": "HEEG", "LHST": "LHST", "HEPM": "HEPM", "AWDT": "AWDT", "AEST": "AEST", "CHAST": "CHAST", "COT": "COT", "CLST": "CLST", "SRT": "SRT", "MEZ": "MEZ", "AKDT": "AKDT", "WARST": "WARST", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "ACWST": "ACWST", "COST": "COST", "HKST": "HKST", "GMT": "GMT", "HADT": "HADT"},
+ }
+ }
+ 
+diff --git a/luo_KE/luo_KE.go b/luo_KE/luo_KE.go
+index bee3476..a6113ea 100644
+--- a/luo_KE/luo_KE.go
++++ b/luo_KE/luo_KE.go
+@@ -42,24 +42,13 @@ type luo_KE struct {
+ // New returns a new instance of translator for the 'luo_KE' locale
+ func New() locales.Translator {
+ return &luo_KE{
+- locale: "luo_KE",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "DAC", "DAR", "DAD", "DAN", "DAH", "DAU", "DAO", "DAB", "DOC", "DAP", "DGI", "DAG"},
+- monthsNarrow: []string{"", "C", "R", "D", "N", "B", "U", "B", "B", "C", "P", "C", "P"},
+- monthsWide: []string{"", "Dwe mar Achiel", "Dwe mar Ariyo", "Dwe mar Adek", "Dwe mar Ang’wen", "Dwe mar Abich", "Dwe mar Auchiel", "Dwe mar Abiriyo", "Dwe mar Aboro", "Dwe mar Ochiko", "Dwe mar Apar", "Dwe mar gi achiel", "Dwe mar Apar gi ariyo"},
+- daysAbbreviated: []string{"JMP", "WUT", "TAR", "TAD", "TAN", "TAB", "NGS"},
+- daysNarrow: []string{"J", "W", "T", "T", "T", "T", "N"},
+- daysWide: []string{"Jumapil", "Wuok Tich", "Tich Ariyo", "Tich Adek", "Tich Ang’wen", "Tich Abich", "Ngeso"},
+- periodsAbbreviated: []string{"OD", "OT"},
+- periodsWide: []string{"OD", "OT"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kapok Kristo obiro", "Ka Kristo osebiro"},
+- timezones: map[string]string{"LHST": "LHST", "NZDT": "NZDT", "TMST": "TMST", "MST": "MST", "UYST": "UYST", "PDT": "PDT", "HAT": "HAT", "AWDT": "AWDT", "IST": "IST", "TMT": "TMT", "WAST": "WAST", "SGT": "SGT", "MYT": "MYT", "ACWST": "ACWST", "HKT": "HKT", "HEPM": "HEPM", "WART": "WART", "AST": "AST", "GYT": "GYT", "VET": "VET", "WIT": "WIT", "BT": "BT", "WEZ": "WEZ", "MEZ": "MEZ", "SAST": "SAST", "JST": "JST", "WAT": "WAT", "AKST": "AKST", "HNOG": "HNOG", "HEOG": "HEOG", "ChST": "ChST", "EAT": "EAT", "EST": "EST", "WIB": "WIB", "SRT": "SRT", "MESZ": "MESZ", "NZST": "NZST", "CAT": "CAT", "OEZ": "OEZ", "ART": "ART", "HNPM": "HNPM", "AEDT": "AEDT", "WITA": "WITA", "GFT": "GFT", "WARST": "WARST", "HKST": "HKST", "CHADT": "CHADT", "JDT": "JDT", "ACDT": "ACDT", "HNPMX": "HNPMX", "CST": "CST", "PST": "PST", "LHDT": "LHDT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "HAST": "HAST", "AWST": "AWST", "ACST": "ACST", "MDT": "MDT", "ECT": "ECT", "CDT": "CDT", "CLST": "CLST", "BOT": "BOT", "HEEG": "HEEG", "GMT": "GMT", "HECU": "HECU", "AKDT": "AKDT", "HADT": "HADT", "ACWDT": "ACWDT", "AEST": "AEST", "CLT": "CLT", "OESZ": "OESZ", "HEPMX": "HEPMX", "ADT": "ADT", "WESZ": "WESZ", "HNT": "HNT", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "COT": "COT", "HENOMX": "HENOMX", "COST": "COST", "EDT": "EDT", "UYT": "UYT", "ARST": "ARST"},
++ locale: "luo_KE",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WITA": "WITA", "JST": "JST", "CHADT": "CHADT", "UYST": "UYST", "∅∅∅": "∅∅∅", "BT": "BT", "HNT": "HNT", "TMT": "TMT", "HADT": "HADT", "ACWST": "ACWST", "WARST": "WARST", "NZDT": "NZDT", "HEPMX": "HEPMX", "GFT": "GFT", "SAST": "SAST", "GMT": "GMT", "WESZ": "WESZ", "CST": "CST", "MST": "MST", "HNEG": "HNEG", "CHAST": "CHAST", "EDT": "EDT", "ART": "ART", "BOT": "BOT", "MESZ": "MESZ", "MYT": "MYT", "AEST": "AEST", "HKST": "HKST", "LHDT": "LHDT", "UYT": "UYT", "OEZ": "OEZ", "NZST": "NZST", "ACST": "ACST", "IST": "IST", "WAT": "WAT", "CLT": "CLT", "CLST": "CLST", "EAT": "EAT", "MEZ": "MEZ", "AWDT": "AWDT", "HNCU": "HNCU", "HNOG": "HNOG", "AST": "AST", "HNPM": "HNPM", "PST": "PST", "COT": "COT", "COST": "COST", "EST": "EST", "ChST": "ChST", "ARST": "ARST", "HEEG": "HEEG", "HENOMX": "HENOMX", "JDT": "JDT", "AWST": "AWST", "HECU": "HECU", "HKT": "HKT", "TMST": "TMST", "CAT": "CAT", "MDT": "MDT", "HAST": "HAST", "AEDT": "AEDT", "AKDT": "AKDT", "WART": "WART", "WIT": "WIT", "HEOG": "HEOG", "WIB": "WIB", "ECT": "ECT", "PDT": "PDT", "ACWDT": "ACWDT", "WAST": "WAST", "HAT": "HAT", "HNNOMX": "HNNOMX", "LHST": "LHST", "HEPM": "HEPM", "HNPMX": "HNPMX", "SGT": "SGT", "AKST": "AKST", "OESZ": "OESZ", "ACDT": "ACDT", "VET": "VET", "CDT": "CDT", "ADT": "ADT", "SRT": "SRT", "WEZ": "WEZ", "GYT": "GYT"},
+ }
+ }
+ 
+@@ -105,7 +94,7 @@ func (luo *luo_KE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (luo *luo_KE) MonthsAbbreviated() []string {
+- return luo.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -115,7 +104,7 @@ func (luo *luo_KE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (luo *luo_KE) MonthsNarrow() []string {
+- return luo.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -125,7 +114,7 @@ func (luo *luo_KE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (luo *luo_KE) MonthsWide() []string {
+- return luo.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -185,54 +174,7 @@ func (luo *luo_KE) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := luo.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, luo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, luo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, luo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, luo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'luo_KE'
+@@ -241,61 +183,7 @@ func (luo *luo_KE) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := luo.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, luo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, luo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, luo.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, luo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'luo_KE'
+@@ -303,27 +191,6 @@ func (luo *luo_KE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -332,17 +199,6 @@ func (luo *luo_KE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, luo.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -351,17 +207,6 @@ func (luo *luo_KE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, luo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -370,19 +215,6 @@ func (luo *luo_KE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, luo.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, luo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -391,19 +223,6 @@ func (luo *luo_KE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, luo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -412,26 +231,6 @@ func (luo *luo_KE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, luo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, luo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -440,30 +239,6 @@ func (luo *luo_KE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, luo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, luo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -472,34 +247,5 @@ func (luo *luo_KE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, luo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, luo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := luo.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/luy/luy.go b/luy/luy.go
+index c6dc6f0..8fa582f 100644
+--- a/luy/luy.go
++++ b/luy/luy.go
+@@ -59,7 +59,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Imberi ya Kuuza Kwa", "Muhiga Kuvita Kuuza"},
+- timezones: map[string]string{"SRT": "SRT", "IST": "IST", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "EST": "EST", "AKST": "AKST", "AST": "AST", "HNOG": "HNOG", "AWDT": "AWDT", "HKT": "HKT", "∅∅∅": "∅∅∅", "WARST": "WARST", "GMT": "GMT", "HECU": "HECU", "UYT": "UYT", "HAST": "HAST", "PST": "PST", "ACWDT": "ACWDT", "ARST": "ARST", "AEDT": "AEDT", "ADT": "ADT", "WIB": "WIB", "WITA": "WITA", "LHDT": "LHDT", "ChST": "ChST", "MYT": "MYT", "ACWST": "ACWST", "HNT": "HNT", "HEOG": "HEOG", "CAT": "CAT", "HENOMX": "HENOMX", "HEPM": "HEPM", "WAT": "WAT", "EDT": "EDT", "HADT": "HADT", "BT": "BT", "WESZ": "WESZ", "AEST": "AEST", "AWST": "AWST", "CDT": "CDT", "HNPMX": "HNPMX", "PDT": "PDT", "HNPM": "HNPM", "CHADT": "CHADT", "JST": "JST", "JDT": "JDT", "OEZ": "OEZ", "ART": "ART", "NZST": "NZST", "SAST": "SAST", "HEEG": "HEEG", "WAST": "WAST", "WIT": "WIT", "GFT": "GFT", "EAT": "EAT", "COT": "COT", "MDT": "MDT", "MESZ": "MESZ", "CLST": "CLST", "TMT": "TMT", "ACDT": "ACDT", "MST": "MST", "ACST": "ACST", "WART": "WART", "SGT": "SGT", "CLT": "CLT", "TMST": "TMST", "COST": "COST", "CST": "CST", "GYT": "GYT", "AKDT": "AKDT", "VET": "VET", "HAT": "HAT", "HKST": "HKST", "CHAST": "CHAST", "BOT": "BOT", "UYST": "UYST", "WEZ": "WEZ", "MEZ": "MEZ", "NZDT": "NZDT", "OESZ": "OESZ", "HEPMX": "HEPMX", "LHST": "LHST", "ECT": "ECT", "HNCU": "HNCU"},
++ timezones: map[string]string{"ACDT": "ACDT", "∅∅∅": "∅∅∅", "VET": "VET", "EST": "EST", "CLT": "CLT", "EAT": "EAT", "GFT": "GFT", "WARST": "WARST", "WAT": "WAT", "ARST": "ARST", "WESZ": "WESZ", "WIT": "WIT", "WITA": "WITA", "MST": "MST", "HEEG": "HEEG", "HEPM": "HEPM", "JDT": "JDT", "LHDT": "LHDT", "GYT": "GYT", "HNEG": "HNEG", "CST": "CST", "MDT": "MDT", "HAST": "HAST", "CHADT": "CHADT", "UYST": "UYST", "BT": "BT", "HEOG": "HEOG", "ECT": "ECT", "CLST": "CLST", "COT": "COT", "HNPM": "HNPM", "ACWDT": "ACWDT", "PDT": "PDT", "ChST": "ChST", "AKDT": "AKDT", "TMT": "TMT", "WIB": "WIB", "ART": "ART", "ADT": "ADT", "HNPMX": "HNPMX", "OEZ": "OEZ", "HAT": "HAT", "CDT": "CDT", "AWST": "AWST", "AWDT": "AWDT", "AKST": "AKST", "ACST": "ACST", "LHST": "LHST", "HNOG": "HNOG", "SAST": "SAST", "JST": "JST", "BOT": "BOT", "SRT": "SRT", "MESZ": "MESZ", "HECU": "HECU", "AST": "AST", "GMT": "GMT", "IST": "IST", "PST": "PST", "OESZ": "OESZ", "CAT": "CAT", "NZST": "NZST", "MEZ": "MEZ", "AEST": "AEST", "HNT": "HNT", "WART": "WART", "HKT": "HKT", "HENOMX": "HENOMX", "MYT": "MYT", "AEDT": "AEDT", "CHAST": "CHAST", "HEPMX": "HEPMX", "COST": "COST", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "ACWST": "ACWST", "WEZ": "WEZ", "HKST": "HKST", "TMST": "TMST", "HADT": "HADT", "HNCU": "HNCU", "SGT": "SGT", "WAST": "WAST", "EDT": "EDT", "UYT": "UYT"},
+ }
+ }
+ 
+diff --git a/luy_KE/luy_KE.go b/luy_KE/luy_KE.go
+index a509ae6..a39578e 100644
+--- a/luy_KE/luy_KE.go
++++ b/luy_KE/luy_KE.go
+@@ -42,24 +42,13 @@ type luy_KE struct {
+ // New returns a new instance of translator for the 'luy_KE' locale
+ func New() locales.Translator {
+ return &luy_KE{
+- locale: "luy_KE",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"},
+- daysAbbreviated: []string{"J2", "J3", "J4", "J5", "Al", "Ij", "J1"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysWide: []string{"Jumapiri", "Jumatatu", "Jumanne", "Jumatano", "Murwa wa Kanne", "Murwa wa Katano", "Jumamosi"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Imberi ya Kuuza Kwa", "Muhiga Kuvita Kuuza"},
+- timezones: map[string]string{"JST": "JST", "HEEG": "HEEG", "WARST": "WARST", "COT": "COT", "SGT": "SGT", "AST": "AST", "COST": "COST", "HNOG": "HNOG", "AEST": "AEST", "MESZ": "MESZ", "LHST": "LHST", "HENOMX": "HENOMX", "MYT": "MYT", "PST": "PST", "AEDT": "AEDT", "CHADT": "CHADT", "CLT": "CLT", "BOT": "BOT", "HEPMX": "HEPMX", "UYT": "UYT", "∅∅∅": "∅∅∅", "ACST": "ACST", "EAT": "EAT", "WAT": "WAT", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "WESZ": "WESZ", "HNPM": "HNPM", "WART": "WART", "HECU": "HECU", "AKST": "AKST", "HADT": "HADT", "CAT": "CAT", "EST": "EST", "CDT": "CDT", "UYST": "UYST", "SRT": "SRT", "ARST": "ARST", "AWDT": "AWDT", "CHAST": "CHAST", "HNCU": "HNCU", "ADT": "ADT", "HAST": "HAST", "WEZ": "WEZ", "ACWST": "ACWST", "WITA": "WITA", "HKST": "HKST", "CLST": "CLST", "MDT": "MDT", "HEPM": "HEPM", "MEZ": "MEZ", "ACDT": "ACDT", "VET": "VET", "PDT": "PDT", "IST": "IST", "TMST": "TMST", "GMT": "GMT", "GYT": "GYT", "ACWDT": "ACWDT", "HKT": "HKT", "LHDT": "LHDT", "NZST": "NZST", "SAST": "SAST", "CST": "CST", "ECT": "ECT", "WIT": "WIT", "ART": "ART", "HEOG": "HEOG", "GFT": "GFT", "ChST": "ChST", "OESZ": "OESZ", "BT": "BT", "EDT": "EDT", "MST": "MST", "AWST": "AWST", "NZDT": "NZDT", "TMT": "TMT", "HNEG": "HNEG", "OEZ": "OEZ", "WAST": "WAST", "WIB": "WIB", "HNT": "HNT", "HAT": "HAT", "JDT": "JDT", "AKDT": "AKDT"},
++ locale: "luy_KE",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"LHDT": "LHDT", "OESZ": "OESZ", "WART": "WART", "CLT": "CLT", "AST": "AST", "SRT": "SRT", "MESZ": "MESZ", "AWDT": "AWDT", "LHST": "LHST", "OEZ": "OEZ", "SAST": "SAST", "COT": "COT", "EDT": "EDT", "WITA": "WITA", "MST": "MST", "MYT": "MYT", "ACWST": "ACWST", "GFT": "GFT", "COST": "COST", "HKST": "HKST", "NZST": "NZST", "HENOMX": "HENOMX", "PST": "PST", "GYT": "GYT", "MDT": "MDT", "WARST": "WARST", "HAST": "HAST", "AEDT": "AEDT", "HECU": "HECU", "WAST": "WAST", "HAT": "HAT", "TMT": "TMT", "AWST": "AWST", "CHAST": "CHAST", "WEZ": "WEZ", "HADT": "HADT", "ACST": "ACST", "PDT": "PDT", "AEST": "AEST", "HNCU": "HNCU", "HEPMX": "HEPMX", "EST": "EST", "CAT": "CAT", "ARST": "ARST", "BOT": "BOT", "HKT": "HKT", "CST": "CST", "HEEG": "HEEG", "VET": "VET", "HEOG": "HEOG", "ChST": "ChST", "ART": "ART", "HNNOMX": "HNNOMX", "IST": "IST", "CDT": "CDT", "ECT": "ECT", "ACWDT": "ACWDT", "WAT": "WAT", "HNT": "HNT", "TMST": "TMST", "CHADT": "CHADT", "EAT": "EAT", "HNEG": "HNEG", "∅∅∅": "∅∅∅", "HNOG": "HNOG", "CLST": "CLST", "WIB": "WIB", "ADT": "ADT", "GMT": "GMT", "HNPM": "HNPM", "BT": "BT", "WESZ": "WESZ", "SGT": "SGT", "AKDT": "AKDT", "WIT": "WIT", "NZDT": "NZDT", "MEZ": "MEZ", "UYST": "UYST", "HNPMX": "HNPMX", "AKST": "AKST", "ACDT": "ACDT", "HEPM": "HEPM", "JST": "JST", "UYT": "UYT", "JDT": "JDT"},
+ }
+ }
+ 
+@@ -105,7 +94,7 @@ func (luy *luy_KE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (luy *luy_KE) MonthsAbbreviated() []string {
+- return luy.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -115,7 +104,7 @@ func (luy *luy_KE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (luy *luy_KE) MonthsNarrow() []string {
+- return luy.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -125,7 +114,7 @@ func (luy *luy_KE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (luy *luy_KE) MonthsWide() []string {
+- return luy.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -185,56 +174,7 @@ func (luy *luy_KE) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := luy.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, luy.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, luy.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, luy.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, luy.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'luy_KE'
+@@ -243,64 +183,7 @@ func (luy *luy_KE) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := luy.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, luy.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, luy.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, luy.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, luy.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'luy_KE'
+@@ -308,27 +191,6 @@ func (luy *luy_KE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -337,17 +199,6 @@ func (luy *luy_KE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, luy.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -356,17 +207,6 @@ func (luy *luy_KE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, luy.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -375,19 +215,6 @@ func (luy *luy_KE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, luy.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, luy.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -396,19 +223,6 @@ func (luy *luy_KE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, luy.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -417,26 +231,6 @@ func (luy *luy_KE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, luy.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, luy.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -445,30 +239,6 @@ func (luy *luy_KE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, luy.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, luy.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -477,34 +247,5 @@ func (luy *luy_KE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, luy.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, luy.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := luy.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/lv/lv.go b/lv/lv.go
+index 37d204b..0f48017 100644
+--- a/lv/lv.go
++++ b/lv/lv.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"p.m.ē.", "m.ē."},
+ erasNarrow: []string{"p.m.ē.", "m.ē."},
+ erasWide: []string{"pirms mūsu ēras", "mūsu ērā"},
+- timezones: map[string]string{"CLST": "Čīles vasaras laiks", "EAT": "Austrumāfrikas laiks", "BT": "Butānas laiks", "WITA": "Centrālindonēzijas laiks", "JST": "Japānas ziemas laiks", "JDT": "Japānas vasaras laiks", "WAT": "Rietumāfrikas ziemas laiks", "LHDT": "Lorda Hava salas vasaras laiks", "SAST": "Dienvidāfrikas ziemas laiks", "MST": "MST", "HNOG": "Rietumgrenlandes ziemas laiks", "HEOG": "Rietumgrenlandes vasaras laiks", "HEPM": "Senpjēras un Mikelonas vasaras laiks", "COST": "Kolumbijas vasaras laiks", "AKDT": "Aļaskas vasaras laiks", "ADT": "Atlantijas vasaras laiks", "HADT": "Havaju–Aleutu vasaras laiks", "ARST": "Argentīnas vasaras laiks", "PST": "Klusā okeāna ziemas laiks", "BOT": "Bolīvijas laiks", "OESZ": "Austrumeiropas vasaras laiks", "ECT": "Ekvadoras laiks", "GYT": "Gajānas laiks", "EDT": "Austrumu vasaras laiks", "MDT": "MDT", "UYT": "Urugvajas ziemas laiks", "UYST": "Urugvajas vasaras laiks", "ChST": "Čamorra ziemas laiks", "HNNOMX": "Ziemeļrietumu Meksikas ziemas laiks", "WART": "Rietumargentīnas ziemas laiks", "SGT": "Singapūras laiks", "SRT": "Surinamas laiks", "HEPMX": "Meksikas Klusā okeāna piekrastes vasaras laiks", "TMT": "Turkmenistānas ziemas laiks", "TMST": "Turkmenistānas vasaras laiks", "CST": "Centrālais ziemas laiks", "WESZ": "Rietumeiropas vasaras laiks", "AEST": "Austrālijas austrumu ziemas laiks", "HNPM": "Senpjēras un Mikelonas ziemas laiks", "NZST": "Jaunzēlandes ziemas laiks", "HNEG": "Austrumgrenlandes ziemas laiks", "WEZ": "Rietumeiropas ziemas laiks", "EST": "Austrumu ziemas laiks", "AST": "Atlantijas ziemas laiks", "MYT": "Malaizijas laiks", "HAST": "Havaju–Aleutu ziemas laiks", "PDT": "Klusā okeāna vasaras laiks", "CHAST": "Četemas ziemas laiks", "IST": "Indijas ziemas laiks", "WAST": "Rietumāfrikas vasaras laiks", "ART": "Argentīnas ziemas laiks", "WIT": "Austrumindonēzijas laiks", "ACWDT": "Austrālijas centrālais rietumu vasaras laiks", "CHADT": "Četemas vasaras laiks", "MEZ": "Centrāleiropas ziemas laiks", "HENOMX": "Ziemeļrietumu Meksikas vasaras laiks", "GMT": "Griničas laiks", "HNT": "Ņūfaundlendas ziemas laiks", "HAT": "Ņūfaundlendas vasaras laiks", "NZDT": "Jaunzēlandes vasaras laiks", "∅∅∅": "Amazones vasaras laiks", "HNCU": "Kubas ziemas laiks", "AKST": "Aļaskas ziemas laiks", "CAT": "Centrālāfrikas laiks", "HECU": "Kubas vasaras laiks", "HNPMX": "Meksikas Klusā okeāna piekrastes ziemas laiks", "CDT": "Centrālais vasaras laiks", "HKST": "Honkongas vasaras laiks", "MESZ": "Centrāleiropas vasaras laiks", "HEEG": "Austrumgrenlandes vasaras laiks", "ACST": "Austrālijas centrālais ziemas laiks", "HKT": "Honkongas ziemas laiks", "OEZ": "Austrumeiropas ziemas laiks", "COT": "Kolumbijas ziemas laiks", "ACWST": "Austrālijas centrālais rietumu ziemas laiks", "AEDT": "Austrālijas austrumu vasaras laiks", "GFT": "Franču Gviānas laiks", "WARST": "Rietumargentīnas vasaras laiks", "VET": "Venecuēlas laiks", "ACDT": "Austrālijas centrālais vasaras laiks", "WIB": "Rietumindonēzijas laiks", "AWST": "Austrālijas rietumu ziemas laiks", "AWDT": "Austrālijas rietumu vasaras laiks", "LHST": "Lorda Hava salas ziemas laiks", "CLT": "Čīles ziemas laiks"},
++ timezones: map[string]string{"NZST": "Jaunzēlandes ziemas laiks", "AWST": "Austrālijas rietumu ziemas laiks", "UYT": "Urugvajas ziemas laiks", "HAT": "Ņūfaundlendas vasaras laiks", "WART": "Rietumargentīnas ziemas laiks", "GYT": "Gajānas laiks", "WITA": "Centrālindonēzijas laiks", "ECT": "Ekvadoras laiks", "EAT": "Austrumāfrikas laiks", "HAST": "Havaju–Aleutu ziemas laiks", "HNPMX": "Meksikas Klusā okeāna piekrastes ziemas laiks", "WAST": "Rietumāfrikas vasaras laiks", "CLT": "Čīles ziemas laiks", "CDT": "Centrālais vasaras laiks", "VET": "Venecuēlas laiks", "HENOMX": "Ziemeļrietumu Meksikas vasaras laiks", "JST": "Japānas ziemas laiks", "AEST": "Austrālijas austrumu ziemas laiks", "HEEG": "Austrumgrenlandes vasaras laiks", "ACWST": "Austrālijas centrālais rietumu ziemas laiks", "COT": "Kolumbijas ziemas laiks", "TMST": "Turkmenistānas vasaras laiks", "CST": "Centrālais ziemas laiks", "HADT": "Havaju–Aleutu vasaras laiks", "WEZ": "Rietumeiropas ziemas laiks", "HNT": "Ņūfaundlendas ziemas laiks", "ACST": "Austrālijas centrālais ziemas laiks", "SAST": "Dienvidāfrikas ziemas laiks", "COST": "Kolumbijas vasaras laiks", "NZDT": "Jaunzēlandes vasaras laiks", "GMT": "Griničas laiks", "HNCU": "Kubas ziemas laiks", "AKDT": "Aļaskas vasaras laiks", "GFT": "Franču Gviānas laiks", "WIT": "Austrumindonēzijas laiks", "HNNOMX": "Ziemeļrietumu Meksikas ziemas laiks", "LHST": "Lorda Hava salas ziemas laiks", "HNPM": "Senpjēras un Mikelonas ziemas laiks", "AEDT": "Austrālijas austrumu vasaras laiks", "ARST": "Argentīnas vasaras laiks", "MESZ": "Centrāleiropas vasaras laiks", "HEPM": "Senpjēras un Mikelonas vasaras laiks", "WESZ": "Rietumeiropas vasaras laiks", "AKST": "Aļaskas ziemas laiks", "OESZ": "Austrumeiropas vasaras laiks", "HKST": "Honkongas vasaras laiks", "OEZ": "Austrumeiropas ziemas laiks", "MEZ": "Centrāleiropas ziemas laiks", "LHDT": "Lorda Hava salas vasaras laiks", "CHAST": "Četemas ziemas laiks", "MYT": "Malaizijas laiks", "JDT": "Japānas vasaras laiks", "CLST": "Čīles vasaras laiks", "WIB": "Rietumindonēzijas laiks", "SRT": "Surinamas laiks", "ACDT": "Austrālijas centrālais vasaras laiks", "WARST": "Rietumargentīnas vasaras laiks", "EDT": "Austrumu vasaras laiks", "PST": "Klusā okeāna ziemas laiks", "HECU": "Kubas vasaras laiks", "HNOG": "Rietumgrenlandes ziemas laiks", "MST": "MST", "ART": "Argentīnas ziemas laiks", "ChST": "Čamorra ziemas laiks", "PDT": "Klusā okeāna vasaras laiks", "CHADT": "Četemas vasaras laiks", "HEOG": "Rietumgrenlandes vasaras laiks", "HKT": "Honkongas ziemas laiks", "MDT": "MDT", "ADT": "Atlantijas vasaras laiks", "WAT": "Rietumāfrikas ziemas laiks", "EST": "Austrumu ziemas laiks", "UYST": "Urugvajas vasaras laiks", "IST": "Indijas ziemas laiks", "BT": "Butānas laiks", "ACWDT": "Austrālijas centrālais rietumu vasaras laiks", "SGT": "Singapūras laiks", "HEPMX": "Meksikas Klusā okeāna piekrastes vasaras laiks", "∅∅∅": "Amazones vasaras laiks", "BOT": "Bolīvijas laiks", "TMT": "Turkmenistānas ziemas laiks", "CAT": "Centrālāfrikas laiks", "HNEG": "Austrumgrenlandes ziemas laiks", "AST": "Atlantijas ziemas laiks", "AWDT": "Austrālijas rietumu vasaras laiks"},
+ }
+ }
+ 
+@@ -102,8 +102,8 @@ func (lv *lv) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ f := locales.F(n, v)
+ nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
+- fMod10 := f % 10
+ fMod100 := f % 100
++ fMod10 := f % 10
+ 
+ if (nMod10 == 0) || (nMod100 >= 11 && nMod100 <= 19) || (v == 2 && fMod100 >= 11 && fMod100 <= 19) {
+ return locales.PluralRuleZero
+diff --git a/lv_LV/lv_LV.go b/lv_LV/lv_LV.go
+index e650379..f0ba2a1 100644
+--- a/lv_LV/lv_LV.go
++++ b/lv_LV/lv_LV.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type lv_LV struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'lv_LV' locale
+ func New() locales.Translator {
+ return &lv_LV{
+- locale: "lv_LV",
+- pluralsCardinal: []locales.PluralRule{1, 2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "janv.", "febr.", "marts", "apr.", "maijs", "jūn.", "jūl.", "aug.", "sept.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janvāris", "februāris", "marts", "aprīlis", "maijs", "jūnijs", "jūlijs", "augusts", "septembris", "oktobris", "novembris", "decembris"},
+- daysAbbreviated: []string{"svētd.", "pirmd.", "otrd.", "trešd.", "ceturtd.", "piektd.", "sestd."},
+- daysNarrow: []string{"S", "P", "O", "T", "C", "P", "S"},
+- daysShort: []string{"Sv", "Pr", "Ot", "Tr", "Ce", "Pk", "Se"},
+- daysWide: []string{"svētdiena", "pirmdiena", "otrdiena", "trešdiena", "ceturtdiena", "piektdiena", "sestdiena"},
+- periodsAbbreviated: []string{"priekšp.", "pēcp."},
+- periodsNarrow: []string{"priekšp.", "pēcp."},
+- periodsWide: []string{"priekšpusdienā", "pēcpusdienā"},
+- erasAbbreviated: []string{"p.m.ē.", "m.ē."},
+- erasNarrow: []string{"p.m.ē.", "m.ē."},
+- erasWide: []string{"pirms mūsu ēras", "mūsu ērā"},
+- timezones: map[string]string{"HEOG": "Rietumgrenlandes vasaras laiks", "PST": "Klusā okeāna ziemas laiks", "WART": "Rietumargentīnas ziemas laiks", "ADT": "Atlantijas vasaras laiks", "HNT": "Ņūfaundlendas ziemas laiks", "JST": "Japānas ziemas laiks", "WAST": "Rietumāfrikas vasaras laiks", "OEZ": "Austrumeiropas ziemas laiks", "SGT": "Singapūras laiks", "AEDT": "Austrālijas austrumu vasaras laiks", "CHADT": "Četemas vasaras laiks", "BOT": "Bolīvijas laiks", "WARST": "Rietumargentīnas vasaras laiks", "AKST": "Aļaskas ziemas laiks", "GYT": "Gajānas laiks", "MYT": "Malaizijas laiks", "ART": "Argentīnas ziemas laiks", "HKT": "Honkongas ziemas laiks", "IST": "Indijas ziemas laiks", "TMT": "Turkmenistānas ziemas laiks", "AST": "Atlantijas ziemas laiks", "HNEG": "Austrumgrenlandes ziemas laiks", "TMST": "Turkmenistānas vasaras laiks", "EAT": "Austrumāfrikas laiks", "HADT": "Havaju–Aleutu vasaras laiks", "AWDT": "Austrālijas rietumu vasaras laiks", "CHAST": "Četemas ziemas laiks", "CLT": "Čīles ziemas laiks", "∅∅∅": "Amazones vasaras laiks", "OESZ": "Austrumeiropas vasaras laiks", "HENOMX": "Ziemeļrietumu Meksikas vasaras laiks", "HNPMX": "Meksikas Klusā okeāna piekrastes ziemas laiks", "WIB": "Rietumindonēzijas laiks", "PDT": "Klusā okeāna vasaras laiks", "WITA": "Centrālindonēzijas laiks", "NZDT": "Jaunzēlandes vasaras laiks", "MESZ": "Centrāleiropas vasaras laiks", "CAT": "Centrālāfrikas laiks", "EDT": "Austrumu vasaras laiks", "ACWDT": "Austrālijas centrālais rietumu vasaras laiks", "HKST": "Honkongas vasaras laiks", "MEZ": "Centrāleiropas ziemas laiks", "ACDT": "Austrālijas centrālais vasaras laiks", "COST": "Kolumbijas vasaras laiks", "HNOG": "Rietumgrenlandes ziemas laiks", "AEST": "Austrālijas austrumu ziemas laiks", "LHST": "Lorda Hava salas ziemas laiks", "HNNOMX": "Ziemeļrietumu Meksikas ziemas laiks", "HECU": "Kubas vasaras laiks", "WEZ": "Rietumeiropas ziemas laiks", "HNPM": "Senpjēras un Mikelonas ziemas laiks", "NZST": "Jaunzēlandes ziemas laiks", "HEPMX": "Meksikas Klusā okeāna piekrastes vasaras laiks", "UYST": "Urugvajas vasaras laiks", "AKDT": "Aļaskas vasaras laiks", "WIT": "Austrumindonēzijas laiks", "BT": "Butānas laiks", "HEPM": "Senpjēras un Mikelonas vasaras laiks", "ECT": "Ekvadoras laiks", "HNCU": "Kubas ziemas laiks", "ARST": "Argentīnas vasaras laiks", "CLST": "Čīles vasaras laiks", "CDT": "Centrālais vasaras laiks", "EST": "Austrumu ziemas laiks", "HAST": "Havaju–Aleutu ziemas laiks", "SRT": "Surinamas laiks", "JDT": "Japānas vasaras laiks", "GMT": "Griničas laiks", "MST": "MST", "SAST": "Dienvidāfrikas ziemas laiks", "ChST": "Čamorra ziemas laiks", "ACST": "Austrālijas centrālais ziemas laiks", "COT": "Kolumbijas ziemas laiks", "MDT": "MDT", "GFT": "Franču Gviānas laiks", "CST": "Centrālais ziemas laiks", "UYT": "Urugvajas ziemas laiks", "VET": "Venecuēlas laiks", "WESZ": "Rietumeiropas vasaras laiks", "AWST": "Austrālijas rietumu ziemas laiks", "LHDT": "Lorda Hava salas vasaras laiks", "HEEG": "Austrumgrenlandes vasaras laiks", "HAT": "Ņūfaundlendas vasaras laiks", "WAT": "Rietumāfrikas ziemas laiks", "ACWST": "Austrālijas centrālais rietumu ziemas laiks"},
++ locale: "lv_LV",
++ pluralsCardinal: []locales.PluralRule{1, 2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HENOMX": "HENOMX", "AEDT": "AEDT", "CHAST": "CHAST", "TMST": "TMST", "GMT": "GMT", "AWST": "AWST", "AWDT": "AWDT", "ACWST": "ACWST", "HNPMX": "HNPMX", "GFT": "GFT", "WART": "WART", "WIB": "WIB", "EAT": "EAT", "MYT": "MYT", "HNCU": "HNCU", "AKDT": "AKDT", "GYT": "GYT", "HKST": "HKST", "ACST": "ACST", "PDT": "PDT", "COST": "COST", "HNOG": "HNOG", "CAT": "CAT", "CST": "CST", "HAST": "HAST", "HNNOMX": "HNNOMX", "UYT": "UYT", "BT": "BT", "WEZ": "WEZ", "WESZ": "WESZ", "CLST": "CLST", "SRT": "SRT", "SGT": "SGT", "WAT": "WAT", "EST": "EST", "ChST": "ChST", "JST": "JST", "AEST": "AEST", "∅∅∅": "∅∅∅", "HNT": "HNT", "ART": "ART", "ARST": "ARST", "CLT": "CLT", "HEPM": "HEPM", "NZDT": "NZDT", "MESZ": "MESZ", "LHDT": "LHDT", "UYST": "UYST", "HECU": "HECU", "TMT": "TMT", "MEZ": "MEZ", "IST": "IST", "PST": "PST", "WARST": "WARST", "EDT": "EDT", "ECT": "ECT", "WIT": "WIT", "HNEG": "HNEG", "HEEG": "HEEG", "HNPM": "HNPM", "CHADT": "CHADT", "VET": "VET", "OEZ": "OEZ", "OESZ": "OESZ", "SAST": "SAST", "CDT": "CDT", "ADT": "ADT", "MDT": "MDT", "HADT": "HADT", "JDT": "JDT", "HEPMX": "HEPMX", "COT": "COT", "BOT": "BOT", "ACDT": "ACDT", "LHST": "LHST", "WAST": "WAST", "AKST": "AKST", "NZST": "NZST", "AST": "AST", "MST": "MST", "ACWDT": "ACWDT", "HAT": "HAT", "HEOG": "HEOG", "HKT": "HKT", "WITA": "WITA"},
+ }
+ }
+ 
+@@ -102,8 +79,8 @@ func (lv *lv_LV) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ f := locales.F(n, v)
+ nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
+- fMod100 := f % 100
+ fMod10 := f % 10
++ fMod100 := f % 100
+ 
+ if (nMod10 == 0) || (nMod100 >= 11 && nMod100 <= 19) || (v == 2 && fMod100 >= 11 && fMod100 <= 19) {
+ return locales.PluralRuleZero
+@@ -154,7 +131,7 @@ func (lv *lv_LV) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (lv *lv_LV) MonthsAbbreviated() []string {
+- return lv.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -164,7 +141,7 @@ func (lv *lv_LV) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (lv *lv_LV) MonthsNarrow() []string {
+- return lv.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -174,7 +151,7 @@ func (lv *lv_LV) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (lv *lv_LV) MonthsWide() []string {
+- return lv.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -220,75 +197,13 @@ func (lv *lv_LV) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'lv_LV' and handles both Whole and Real numbers based on 'v'
+ func (lv *lv_LV) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lv.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(lv.group) - 1; j >= 0; j-- {
+- b = append(b, lv.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, lv.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'lv_LV' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (lv *lv_LV) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lv.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, lv.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, lv.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'lv_LV'
+@@ -296,58 +211,7 @@ func (lv *lv_LV) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lv.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lv.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(lv.group) - 1; j >= 0; j-- {
+- b = append(b, lv.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, lv.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, lv.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, lv.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'lv_LV'
+@@ -356,65 +220,7 @@ func (lv *lv_LV) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := lv.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, lv.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(lv.group) - 1; j >= 0; j-- {
+- b = append(b, lv.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, lv.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, lv.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, lv.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, lv.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'lv_LV'
+@@ -422,27 +228,6 @@ func (lv *lv_LV) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -451,18 +236,6 @@ func (lv *lv_LV) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e, 0x20, 0x67, 0x61, 0x64, 0x61}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, lv.monthsAbbreviated[t.Month()]...)
+-
+ return string(b)
+ }
+ 
+@@ -471,18 +244,6 @@ func (lv *lv_LV) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e, 0x20, 0x67, 0x61, 0x64, 0x61}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, lv.monthsWide[t.Month()]...)
+-
+ return string(b)
+ }
+ 
+@@ -491,21 +252,6 @@ func (lv *lv_LV) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, lv.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e, 0x20, 0x67, 0x61, 0x64, 0x61}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, lv.monthsWide[t.Month()]...)
+-
+ return string(b)
+ }
+ 
+@@ -514,19 +260,6 @@ func (lv *lv_LV) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -535,26 +268,6 @@ func (lv *lv_LV) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lv.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -563,30 +276,6 @@ func (lv *lv_LV) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lv.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -595,34 +284,5 @@ func (lv *lv_LV) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, lv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, lv.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := lv.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/mas/mas.go b/mas/mas.go
+index 99de2b8..0018002 100644
+--- a/mas/mas.go
++++ b/mas/mas.go
+@@ -62,7 +62,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"MY", "EY"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Meínō Yɛ́sʉ", "Eínō Yɛ́sʉ"},
+- timezones: map[string]string{"LHST": "LHST", "HEEG": "HEEG", "CAT": "CAT", "ADT": "ADT", "MYT": "MYT", "ACWDT": "ACWDT", "MEZ": "MEZ", "IST": "IST", "OEZ": "OEZ", "HKT": "HKT", "HEPM": "HEPM", "HNEG": "HNEG", "TMST": "TMST", "WIB": "WIB", "MESZ": "MESZ", "HNCU": "HNCU", "WARST": "WARST", "PST": "PST", "AEDT": "AEDT", "SAST": "SAST", "ChST": "ChST", "COT": "COT", "AKDT": "AKDT", "CDT": "CDT", "WIT": "WIT", "HNOG": "HNOG", "CLT": "CLT", "WAST": "WAST", "COST": "COST", "NZST": "NZST", "ECT": "ECT", "WAT": "WAT", "HENOMX": "HENOMX", "WART": "WART", "MDT": "MDT", "SRT": "SRT", "ARST": "ARST", "LHDT": "LHDT", "CLST": "CLST", "EAT": "EAT", "GMT": "GMT", "MST": "MST", "EDT": "EDT", "UYST": "UYST", "HEOG": "HEOG", "TMT": "TMT", "ACDT": "ACDT", "AWST": "AWST", "PDT": "PDT", "AWDT": "AWDT", "WITA": "WITA", "AEST": "AEST", "GFT": "GFT", "HECU": "HECU", "HNNOMX": "HNNOMX", "UYT": "UYT", "WEZ": "WEZ", "ACWST": "ACWST", "HAT": "HAT", "BOT": "BOT", "ACST": "ACST", "JDT": "JDT", "OESZ": "OESZ", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "GYT": "GYT", "ART": "ART", "EST": "EST", "AKST": "AKST", "JST": "JST", "HNPM": "HNPM", "BT": "BT", "WESZ": "WESZ", "HNT": "HNT", "HKST": "HKST", "SGT": "SGT", "HAST": "HAST", "CST": "CST", "AST": "AST", "VET": "VET", "HADT": "HADT", "NZDT": "NZDT", "CHAST": "CHAST"},
++ timezones: map[string]string{"AEST": "AEST", "HNPMX": "HNPMX", "HEOG": "HEOG", "HADT": "HADT", "BT": "BT", "WIT": "WIT", "TMT": "TMT", "HKT": "HKT", "CLST": "CLST", "WIB": "WIB", "SRT": "SRT", "HAST": "HAST", "HECU": "HECU", "ACWST": "ACWST", "WEZ": "WEZ", "GFT": "GFT", "HNOG": "HNOG", "GYT": "GYT", "BOT": "BOT", "MESZ": "MESZ", "WART": "WART", "EDT": "EDT", "EAT": "EAT", "WAST": "WAST", "IST": "IST", "HNCU": "HNCU", "TMST": "TMST", "MST": "MST", "LHST": "LHST", "SGT": "SGT", "AKDT": "AKDT", "OEZ": "OEZ", "NZST": "NZST", "MYT": "MYT", "ECT": "ECT", "MDT": "MDT", "ART": "ART", "GMT": "GMT", "JST": "JST", "ACST": "ACST", "ACDT": "ACDT", "AWST": "AWST", "COST": "COST", "HEEG": "HEEG", "AEDT": "AEDT", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "HAT": "HAT", "COT": "COT", "ADT": "ADT", "HENOMX": "HENOMX", "PST": "PST", "SAST": "SAST", "LHDT": "LHDT", "MEZ": "MEZ", "AWDT": "AWDT", "EST": "EST", "CLT": "CLT", "HNNOMX": "HNNOMX", "WAT": "WAT", "OESZ": "OESZ", "WARST": "WARST", "HKST": "HKST", "CST": "CST", "CDT": "CDT", "ChST": "ChST", "HNPM": "HNPM", "ARST": "ARST", "HEPM": "HEPM", "ACWDT": "ACWDT", "HEPMX": "HEPMX", "AKST": "AKST", "HNT": "HNT", "CAT": "CAT", "NZDT": "NZDT", "HNEG": "HNEG", "CHADT": "CHADT", "UYST": "UYST", "PDT": "PDT", "WITA": "WITA", "JDT": "JDT", "VET": "VET", "WESZ": "WESZ", "AST": "AST", "UYT": "UYT"},
+ }
+ }
+ 
+diff --git a/mas_KE/mas_KE.go b/mas_KE/mas_KE.go
+index ea074a0..7f4b074 100644
+--- a/mas_KE/mas_KE.go
++++ b/mas_KE/mas_KE.go
+@@ -10,59 +10,45 @@ import (
+ )
+ 
+ type mas_KE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'mas_KE' locale
+ func New() locales.Translator {
+ return &mas_KE{
+- locale: "mas_KE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Dal", "Ará", "Ɔɛn", "Doy", "Lép", "Rok", "Sás", "Bɔ́r", "Kús", "Gís", "Shʉ́", "Ntʉ́"},
+- monthsWide: []string{"", "Oladalʉ́", "Arát", "Ɔɛnɨ́ɔɨŋɔk", "Olodoyíóríê inkókúâ", "Oloilépūnyīē inkókúâ", "Kújúɔrɔk", "Mórusásin", "Ɔlɔ́ɨ́bɔ́rárɛ", "Kúshîn", "Olgísan", "Pʉshʉ́ka", "Ntʉ́ŋʉ́s"},
+- daysAbbreviated: []string{"Jpi", "Jtt", "Jnn", "Jtn", "Alh", "Iju", "Jmo"},
+- daysNarrow: []string{"2", "3", "4", "5", "6", "7", "1"},
+- daysWide: []string{"Jumapílí", "Jumatátu", "Jumane", "Jumatánɔ", "Alaámisi", "Jumáa", "Jumamósi"},
+- periodsAbbreviated: []string{"Ɛnkakɛnyá", "Ɛndámâ"},
+- periodsWide: []string{"Ɛnkakɛnyá", "Ɛndámâ"},
+- erasAbbreviated: []string{"MY", "EY"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Meínō Yɛ́sʉ", "Eínō Yɛ́sʉ"},
+- timezones: map[string]string{"AWDT": "AWDT", "NZST": "NZST", "HNEG": "HNEG", "LHDT": "LHDT", "ChST": "ChST", "CAT": "CAT", "ECT": "ECT", "SGT": "SGT", "HNCU": "HNCU", "HECU": "HECU", "ADT": "ADT", "HAST": "HAST", "ACWST": "ACWST", "COST": "COST", "ACST": "ACST", "GMT": "GMT", "MST": "MST", "MDT": "MDT", "ART": "ART", "NZDT": "NZDT", "HEEG": "HEEG", "TMST": "TMST", "EAT": "EAT", "WAT": "WAT", "WAST": "WAST", "HNPMX": "HNPMX", "PDT": "PDT", "ACWDT": "ACWDT", "HAT": "HAT", "AST": "AST", "HNT": "HNT", "ARST": "ARST", "JDT": "JDT", "ACDT": "ACDT", "OEZ": "OEZ", "OESZ": "OESZ", "HENOMX": "HENOMX", "CHADT": "CHADT", "VET": "VET", "SRT": "SRT", "WEZ": "WEZ", "WESZ": "WESZ", "AWST": "AWST", "HEPM": "HEPM", "LHST": "LHST", "PST": "PST", "MESZ": "MESZ", "EST": "EST", "AKST": "AKST", "WIT": "WIT", "HEOG": "HEOG", "BOT": "BOT", "COT": "COT", "WARST": "WARST", "UYST": "UYST", "WIB": "WIB", "HNOG": "HNOG", "AEDT": "AEDT", "IST": "IST", "JST": "JST", "WART": "WART", "EDT": "EDT", "AKDT": "AKDT", "HADT": "HADT", "BT": "BT", "TMT": "TMT", "HEPMX": "HEPMX", "CDT": "CDT", "HKST": "HKST", "MEZ": "MEZ", "GFT": "GFT", "UYT": "UYT", "CST": "CST", "GYT": "GYT", "AEST": "AEST", "HKT": "HKT", "HNPM": "HNPM", "SAST": "SAST", "∅∅∅": "∅∅∅", "WITA": "WITA", "CHAST": "CHAST", "CLT": "CLT", "CLST": "CLST", "MYT": "MYT", "HNNOMX": "HNNOMX"},
++ locale: "mas_KE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MESZ": "MESZ", "ACST": "ACST", "UYT": "UYT", "PDT": "PDT", "HNCU": "HNCU", "WIT": "WIT", "NZDT": "NZDT", "NZST": "NZST", "HEPM": "HEPM", "AWDT": "AWDT", "WESZ": "WESZ", "WARST": "WARST", "CAT": "CAT", "CLT": "CLT", "CST": "CST", "HAST": "HAST", "HENOMX": "HENOMX", "AEDT": "AEDT", "CHAST": "CHAST", "HAT": "HAT", "EST": "EST", "ADT": "ADT", "LHDT": "LHDT", "PST": "PST", "WART": "WART", "CDT": "CDT", "ARST": "ARST", "ACWST": "ACWST", "IST": "IST", "BT": "BT", "COT": "COT", "COST": "COST", "TMT": "TMT", "WITA": "WITA", "AST": "AST", "BOT": "BOT", "EAT": "EAT", "HNPM": "HNPM", "HNOG": "HNOG", "WIB": "WIB", "MDT": "MDT", "HNNOMX": "HNNOMX", "MEZ": "MEZ", "HNPMX": "HNPMX", "GYT": "GYT", "HEEG": "HEEG", "ACWDT": "ACWDT", "AEST": "AEST", "SGT": "SGT", "AKST": "AKST", "EDT": "EDT", "JST": "JST", "AWST": "AWST", "HNT": "HNT", "CLST": "CLST", "CHADT": "CHADT", "VET": "VET", "MST": "MST", "SRT": "SRT", "HNEG": "HNEG", "MYT": "MYT", "ECT": "ECT", "LHST": "LHST", "∅∅∅": "∅∅∅", "HECU": "HECU", "HEPMX": "HEPMX", "WAST": "WAST", "ART": "ART", "HADT": "HADT", "UYST": "UYST", "HKT": "HKT", "HKST": "HKST", "GMT": "GMT", "ChST": "ChST", "ACDT": "ACDT", "JDT": "JDT", "WAT": "WAT", "AKDT": "AKDT", "OESZ": "OESZ", "HEOG": "HEOG", "SAST": "SAST", "WEZ": "WEZ", "OEZ": "OEZ", "GFT": "GFT", "TMST": "TMST"},
+ }
+ }
+ 
+@@ -115,7 +101,7 @@ func (mas *mas_KE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (mas *mas_KE) MonthsAbbreviated() []string {
+- return mas.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -135,7 +121,7 @@ func (mas *mas_KE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (mas *mas_KE) MonthsWide() []string {
+- return mas.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -195,56 +181,7 @@ func (mas *mas_KE) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mas.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mas.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mas.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, mas.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mas.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'mas_KE'
+@@ -253,68 +190,7 @@ func (mas *mas_KE) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mas.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mas.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mas.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, mas.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mas.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, mas.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'mas_KE'
+@@ -322,27 +198,6 @@ func (mas *mas_KE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -351,17 +206,6 @@ func (mas *mas_KE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mas.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -370,17 +214,6 @@ func (mas *mas_KE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mas.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -389,19 +222,6 @@ func (mas *mas_KE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, mas.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mas.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -410,19 +230,6 @@ func (mas *mas_KE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mas.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -431,26 +238,6 @@ func (mas *mas_KE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mas.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mas.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -459,30 +246,6 @@ func (mas *mas_KE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mas.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mas.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -491,34 +254,5 @@ func (mas *mas_KE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mas.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mas.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := mas.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/mas_TZ/mas_TZ.go b/mas_TZ/mas_TZ.go
+index c91af3a..2af96a9 100644
+--- a/mas_TZ/mas_TZ.go
++++ b/mas_TZ/mas_TZ.go
+@@ -10,59 +10,45 @@ import (
+ )
+ 
+ type mas_TZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'mas_TZ' locale
+ func New() locales.Translator {
+ return &mas_TZ{
+- locale: "mas_TZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TSh", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Dal", "Ará", "Ɔɛn", "Doy", "Lép", "Rok", "Sás", "Bɔ́r", "Kús", "Gís", "Shʉ́", "Ntʉ́"},
+- monthsWide: []string{"", "Oladalʉ́", "Arát", "Ɔɛnɨ́ɔɨŋɔk", "Olodoyíóríê inkókúâ", "Oloilépūnyīē inkókúâ", "Kújúɔrɔk", "Mórusásin", "Ɔlɔ́ɨ́bɔ́rárɛ", "Kúshîn", "Olgísan", "Pʉshʉ́ka", "Ntʉ́ŋʉ́s"},
+- daysAbbreviated: []string{"Jpi", "Jtt", "Jnn", "Jtn", "Alh", "Iju", "Jmo"},
+- daysNarrow: []string{"2", "3", "4", "5", "6", "7", "1"},
+- daysWide: []string{"Jumapílí", "Jumatátu", "Jumane", "Jumatánɔ", "Alaámisi", "Jumáa", "Jumamósi"},
+- periodsAbbreviated: []string{"Ɛnkakɛnyá", "Ɛndámâ"},
+- periodsWide: []string{"Ɛnkakɛnyá", "Ɛndámâ"},
+- erasAbbreviated: []string{"MY", "EY"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Meínō Yɛ́sʉ", "Eínō Yɛ́sʉ"},
+- timezones: map[string]string{"UYST": "UYST", "HEOG": "HEOG", "PST": "PST", "LHDT": "LHDT", "EAT": "EAT", "COST": "COST", "CST": "CST", "SRT": "SRT", "AWST": "AWST", "CLST": "CLST", "EST": "EST", "CDT": "CDT", "ADT": "ADT", "WEZ": "WEZ", "MEZ": "MEZ", "JDT": "JDT", "COT": "COT", "MDT": "MDT", "HNT": "HNT", "ACWDT": "ACWDT", "HEPM": "HEPM", "∅∅∅": "∅∅∅", "TMT": "TMT", "CAT": "CAT", "AKST": "AKST", "AKDT": "AKDT", "ARST": "ARST", "HKST": "HKST", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "AEDT": "AEDT", "CLT": "CLT", "TMST": "TMST", "WAT": "WAT", "WART": "WART", "HECU": "HECU", "CHADT": "CHADT", "SAST": "SAST", "GFT": "GFT", "ChST": "ChST", "HENOMX": "HENOMX", "GMT": "GMT", "HNPMX": "HNPMX", "MYT": "MYT", "VET": "VET", "BT": "BT", "HNOG": "HNOG", "LHST": "LHST", "OEZ": "OEZ", "WAST": "WAST", "GYT": "GYT", "HNPM": "HNPM", "BOT": "BOT", "ACST": "ACST", "MST": "MST", "MESZ": "MESZ", "IST": "IST", "ART": "ART", "NZST": "NZST", "ACDT": "ACDT", "WIB": "WIB", "WIT": "WIT", "HAT": "HAT", "CHAST": "CHAST", "NZDT": "NZDT", "WARST": "WARST", "EDT": "EDT", "HADT": "HADT", "WESZ": "WESZ", "ACWST": "ACWST", "HEEG": "HEEG", "SGT": "SGT", "AST": "AST", "AEST": "AEST", "HKT": "HKT", "OESZ": "OESZ", "ECT": "ECT", "HAST": "HAST", "JST": "JST", "HNEG": "HNEG", "UYT": "UYT", "PDT": "PDT", "WITA": "WITA", "AWDT": "AWDT", "HNCU": "HNCU"},
++ locale: "mas_TZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TSh", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"LHDT": "LHDT", "PST": "PST", "PDT": "PDT", "ACWDT": "ACWDT", "VET": "VET", "NZDT": "NZDT", "ADT": "ADT", "HNEG": "HNEG", "OEZ": "OEZ", "HAT": "HAT", "HEOG": "HEOG", "HEPM": "HEPM", "SGT": "SGT", "EDT": "EDT", "WITA": "WITA", "NZST": "NZST", "MYT": "MYT", "JST": "JST", "TMT": "TMT", "CST": "CST", "ChST": "ChST", "HENOMX": "HENOMX", "CLST": "CLST", "WAT": "WAT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "AKST": "AKST", "WART": "WART", "WARST": "WARST", "AST": "AST", "HADT": "HADT", "ACST": "ACST", "IST": "IST", "BT": "BT", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "LHST": "LHST", "SRT": "SRT", "MESZ": "MESZ", "CHADT": "CHADT", "UYT": "UYT", "HNCU": "HNCU", "MST": "MST", "ECT": "ECT", "ART": "ART", "MEZ": "MEZ", "HECU": "HECU", "HNOG": "HNOG", "MDT": "MDT", "WESZ": "WESZ", "GMT": "GMT", "EAT": "EAT", "HAST": "HAST", "HKT": "HKT", "WEZ": "WEZ", "EST": "EST", "CDT": "CDT", "CHAST": "CHAST", "AWDT": "AWDT", "HNPM": "HNPM", "UYST": "UYST", "GYT": "GYT", "HKST": "HKST", "AWST": "AWST", "JDT": "JDT", "ACWST": "ACWST", "AEDT": "AEDT", "HNT": "HNT", "WIT": "WIT", "CAT": "CAT", "CLT": "CLT", "ACDT": "ACDT", "ARST": "ARST", "HNNOMX": "HNNOMX", "AEST": "AEST", "WAST": "WAST", "GFT": "GFT", "SAST": "SAST", "COST": "COST", "BOT": "BOT", "HEEG": "HEEG", "COT": "COT", "TMST": "TMST", "WIB": "WIB", "AKDT": "AKDT"},
+ }
+ }
+ 
+@@ -115,7 +101,7 @@ func (mas *mas_TZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (mas *mas_TZ) MonthsAbbreviated() []string {
+- return mas.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -135,7 +121,7 @@ func (mas *mas_TZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (mas *mas_TZ) MonthsWide() []string {
+- return mas.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -195,56 +181,7 @@ func (mas *mas_TZ) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mas.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mas.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mas.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, mas.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mas.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'mas_TZ'
+@@ -253,68 +190,7 @@ func (mas *mas_TZ) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mas.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mas.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mas.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, mas.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mas.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, mas.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'mas_TZ'
+@@ -322,27 +198,6 @@ func (mas *mas_TZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -351,17 +206,6 @@ func (mas *mas_TZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mas.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -370,17 +214,6 @@ func (mas *mas_TZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mas.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -389,19 +222,6 @@ func (mas *mas_TZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, mas.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mas.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -410,19 +230,6 @@ func (mas *mas_TZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mas.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -431,26 +238,6 @@ func (mas *mas_TZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mas.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mas.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -459,30 +246,6 @@ func (mas *mas_TZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mas.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mas.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -491,34 +254,5 @@ func (mas *mas_TZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mas.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mas.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := mas.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/mer/mer.go b/mer/mer.go
+index 3e4f8b3..3f59b4e 100644
+--- a/mer/mer.go
++++ b/mer/mer.go
+@@ -63,7 +63,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"MK", "NK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Mbere ya Kristũ", "Nyuma ya Kristũ"},
+- timezones: map[string]string{"HEPM": "HEPM", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "HEPMX": "HEPMX", "CDT": "CDT", "WIT": "WIT", "LHST": "LHST", "COT": "COT", "HAST": "HAST", "HAT": "HAT", "PST": "PST", "TMST": "TMST", "HNEG": "HNEG", "HEEG": "HEEG", "EST": "EST", "AKST": "AKST", "HNOG": "HNOG", "PDT": "PDT", "WEZ": "WEZ", "ACWDT": "ACWDT", "WITA": "WITA", "AWDT": "AWDT", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "HECU": "HECU", "ARST": "ARST", "ACWST": "ACWST", "WART": "WART", "HADT": "HADT", "BT": "BT", "ART": "ART", "JST": "JST", "ChST": "ChST", "ACDT": "ACDT", "UYT": "UYT", "VET": "VET", "HEOG": "HEOG", "AEST": "AEST", "AEDT": "AEDT", "HNPM": "HNPM", "ACST": "ACST", "CAT": "CAT", "MDT": "MDT", "ADT": "ADT", "MEZ": "MEZ", "CLT": "CLT", "BOT": "BOT", "EAT": "EAT", "WARST": "WARST", "GMT": "GMT", "SRT": "SRT", "MESZ": "MESZ", "LHDT": "LHDT", "TMT": "TMT", "EDT": "EDT", "MYT": "MYT", "HKST": "HKST", "NZST": "NZST", "WAST": "WAST", "HNCU": "HNCU", "GYT": "GYT", "UYST": "UYST", "WESZ": "WESZ", "HKT": "HKT", "CHADT": "CHADT", "WAT": "WAT", "CLST": "CLST", "OEZ": "OEZ", "OESZ": "OESZ", "AWST": "AWST", "JDT": "JDT", "COST": "COST", "CST": "CST", "GFT": "GFT", "HNPMX": "HNPMX", "AKDT": "AKDT", "WIB": "WIB", "HNT": "HNT", "SAST": "SAST", "ECT": "ECT", "HENOMX": "HENOMX", "AST": "AST", "IST": "IST", "SGT": "SGT", "MST": "MST"},
++ timezones: map[string]string{"HNPMX": "HNPMX", "HNOG": "HNOG", "ACWST": "ACWST", "AEST": "AEST", "UYT": "UYT", "HECU": "HECU", "HEPMX": "HEPMX", "WIT": "WIT", "COST": "COST", "HAST": "HAST", "ACST": "ACST", "PST": "PST", "OEZ": "OEZ", "EAT": "EAT", "IST": "IST", "MYT": "MYT", "ACWDT": "ACWDT", "WITA": "WITA", "MDT": "MDT", "ARST": "ARST", "HNNOMX": "HNNOMX", "UYST": "UYST", "WEZ": "WEZ", "WART": "WART", "HEOG": "HEOG", "WIB": "WIB", "MESZ": "MESZ", "EST": "EST", "EDT": "EDT", "CST": "CST", "ECT": "ECT", "ChST": "ChST", "ART": "ART", "SAST": "SAST", "SGT": "SGT", "GYT": "GYT", "HKST": "HKST", "HNEG": "HNEG", "WAT": "WAT", "OESZ": "OESZ", "CDT": "CDT", "NZDT": "NZDT", "JDT": "JDT", "AKST": "AKST", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "CHAST": "CHAST", "WESZ": "WESZ", "GFT": "GFT", "TMT": "TMT", "MST": "MST", "NZST": "NZST", "AWDT": "AWDT", "BOT": "BOT", "ADT": "ADT", "HNPM": "HNPM", "PDT": "PDT", "HNT": "HNT", "TMST": "TMST", "CLST": "CLST", "HADT": "HADT", "LHST": "LHST", "CHADT": "CHADT", "VET": "VET", "HEEG": "HEEG", "BT": "BT", "WAST": "WAST", "WARST": "WARST", "HKT": "HKT", "CLT": "CLT", "SRT": "SRT", "JST": "JST", "HNCU": "HNCU", "HEPM": "HEPM", "HAT": "HAT", "COT": "COT", "AST": "AST", "ACDT": "ACDT", "HENOMX": "HENOMX", "AWST": "AWST", "AEDT": "AEDT", "AKDT": "AKDT", "CAT": "CAT", "GMT": "GMT", "MEZ": "MEZ"},
+ }
+ }
+ 
+diff --git a/mer_KE/mer_KE.go b/mer_KE/mer_KE.go
+index 4a398fe..a08f3ce 100644
+--- a/mer_KE/mer_KE.go
++++ b/mer_KE/mer_KE.go
+@@ -10,60 +10,45 @@ import (
+ )
+ 
+ type mer_KE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'mer_KE' locale
+ func New() locales.Translator {
+ return &mer_KE{
+- locale: "mer_KE",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "JAN", "FEB", "MAC", "ĨPU", "MĨĨ", "NJU", "NJR", "AGA", "SPT", "OKT", "NOV", "DEC"},
+- monthsNarrow: []string{"", "J", "F", "M", "Ĩ", "M", "N", "N", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januarĩ", "Feburuarĩ", "Machi", "Ĩpurũ", "Mĩĩ", "Njuni", "Njuraĩ", "Agasti", "Septemba", "Oktũba", "Novemba", "Dicemba"},
+- daysAbbreviated: []string{"KIU", "MRA", "WAI", "WET", "WEN", "WTN", "JUM"},
+- daysNarrow: []string{"K", "M", "W", "W", "W", "W", "J"},
+- daysWide: []string{"Kiumia", "Muramuko", "Wairi", "Wethatu", "Wena", "Wetano", "Jumamosi"},
+- periodsAbbreviated: []string{"RŨ", "ŨG"},
+- periodsWide: []string{"RŨ", "ŨG"},
+- erasAbbreviated: []string{"MK", "NK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Mbere ya Kristũ", "Nyuma ya Kristũ"},
+- timezones: map[string]string{"CDT": "CDT", "PDT": "PDT", "WEZ": "WEZ", "MESZ": "MESZ", "ACDT": "ACDT", "HENOMX": "HENOMX", "MYT": "MYT", "WITA": "WITA", "HEEG": "HEEG", "WARST": "WARST", "HNNOMX": "HNNOMX", "UYST": "UYST", "AKDT": "AKDT", "WIB": "WIB", "WART": "WART", "GMT": "GMT", "HADT": "HADT", "CLST": "CLST", "EAT": "EAT", "ART": "ART", "WAT": "WAT", "OESZ": "OESZ", "ECT": "ECT", "HEPMX": "HEPMX", "ADT": "ADT", "BT": "BT", "WESZ": "WESZ", "ACWDT": "ACWDT", "WAST": "WAST", "CHADT": "CHADT", "TMST": "TMST", "HNT": "HNT", "OEZ": "OEZ", "EDT": "EDT", "HNPMX": "HNPMX", "VET": "VET", "HKST": "HKST", "IST": "IST", "TMT": "TMT", "CAT": "CAT", "HAT": "HAT", "CHAST": "CHAST", "WIT": "WIT", "PST": "PST", "CLT": "CLT", "MST": "MST", "MDT": "MDT", "ACWST": "ACWST", "JDT": "JDT", "GFT": "GFT", "COST": "COST", "AKST": "AKST", "CST": "CST", "AST": "AST", "HKT": "HKT", "HNEG": "HNEG", "HECU": "HECU", "EST": "EST", "UYT": "UYT", "GYT": "GYT", "HEOG": "HEOG", "AWST": "AWST", "HNPM": "HNPM", "HEPM": "HEPM", "SGT": "SGT", "NZDT": "NZDT", "HNCU": "HNCU", "ARST": "ARST", "AEST": "AEST", "AWDT": "AWDT", "ACST": "ACST", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "SAST": "SAST", "BOT": "BOT", "HNOG": "HNOG", "SRT": "SRT", "NZST": "NZST", "ChST": "ChST", "HAST": "HAST", "MEZ": "MEZ", "LHST": "LHST", "LHDT": "LHDT", "JST": "JST", "COT": "COT"},
++ locale: "mer_KE",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WESZ": "WESZ", "HNOG": "HNOG", "UYT": "UYT", "UYST": "UYST", "IST": "IST", "WAT": "WAT", "OEZ": "OEZ", "WITA": "WITA", "WIB": "WIB", "LHDT": "LHDT", "AEST": "AEST", "AWST": "AWST", "HEOG": "HEOG", "HKT": "HKT", "HAST": "HAST", "HNEG": "HNEG", "MEZ": "MEZ", "MST": "MST", "EAT": "EAT", "JST": "JST", "AWDT": "AWDT", "HAT": "HAT", "TMT": "TMT", "CST": "CST", "∅∅∅": "∅∅∅", "COST": "COST", "VET": "VET", "HNPMX": "HNPMX", "SGT": "SGT", "OESZ": "OESZ", "COT": "COT", "ART": "ART", "HEPM": "HEPM", "CHADT": "CHADT", "SAST": "SAST", "CAT": "CAT", "BT": "BT", "HNCU": "HNCU", "HEPMX": "HEPMX", "GYT": "GYT", "CLST": "CLST", "NZST": "NZST", "NZDT": "NZDT", "SRT": "SRT", "WARST": "WARST", "MESZ": "MESZ", "LHST": "LHST", "ACWST": "ACWST", "EST": "EST", "HKST": "HKST", "ECT": "ECT", "HEEG": "HEEG", "ACWDT": "ACWDT", "WAST": "WAST", "GFT": "GFT", "TMST": "TMST", "HADT": "HADT", "HNPM": "HNPM", "PST": "PST", "JDT": "JDT", "WEZ": "WEZ", "WART": "WART", "ChST": "ChST", "ADT": "ADT", "GMT": "GMT", "ACDT": "ACDT", "MYT": "MYT", "CDT": "CDT", "BOT": "BOT", "HENOMX": "HENOMX", "HNT": "HNT", "AEDT": "AEDT", "CHAST": "CHAST", "PDT": "PDT", "AKST": "AKST", "EDT": "EDT", "ARST": "ARST", "HNNOMX": "HNNOMX", "HECU": "HECU", "AKDT": "AKDT", "WIT": "WIT", "CLT": "CLT", "MDT": "MDT", "AST": "AST", "ACST": "ACST"},
+ }
+ }
+ 
+@@ -109,7 +94,7 @@ func (mer *mer_KE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (mer *mer_KE) MonthsAbbreviated() []string {
+- return mer.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -119,7 +104,7 @@ func (mer *mer_KE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (mer *mer_KE) MonthsNarrow() []string {
+- return mer.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -129,7 +114,7 @@ func (mer *mer_KE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (mer *mer_KE) MonthsWide() []string {
+- return mer.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -189,56 +174,7 @@ func (mer *mer_KE) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mer.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mer.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mer.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, mer.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mer.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'mer_KE'
+@@ -247,68 +183,7 @@ func (mer *mer_KE) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mer.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mer.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mer.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, mer.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mer.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, mer.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'mer_KE'
+@@ -316,27 +191,6 @@ func (mer *mer_KE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -345,17 +199,6 @@ func (mer *mer_KE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mer.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -364,17 +207,6 @@ func (mer *mer_KE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mer.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -383,19 +215,6 @@ func (mer *mer_KE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, mer.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mer.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -404,19 +223,6 @@ func (mer *mer_KE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mer.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -425,26 +231,6 @@ func (mer *mer_KE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mer.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mer.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -453,30 +239,6 @@ func (mer *mer_KE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mer.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mer.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -485,34 +247,5 @@ func (mer *mer_KE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mer.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mer.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := mer.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/mfe/mfe.go b/mfe/mfe.go
+index 493cbf1..1f7ccf7 100644
+--- a/mfe/mfe.go
++++ b/mfe/mfe.go
+@@ -66,7 +66,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"av. Z-K", "ap. Z-K"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"avan Zezi-Krist", "apre Zezi-Krist"},
+- timezones: map[string]string{"TMT": "TMT", "ACST": "ACST", "ADT": "ADT", "WIT": "WIT", "SRT": "SRT", "HNPM": "HNPM", "MEZ": "MEZ", "LHDT": "LHDT", "WAT": "WAT", "GMT": "GMT", "ACWDT": "ACWDT", "GFT": "GFT", "PDT": "PDT", "BOT": "BOT", "SGT": "SGT", "ARST": "ARST", "LHST": "LHST", "CAT": "CAT", "ECT": "ECT", "AKDT": "AKDT", "CDT": "CDT", "WESZ": "WESZ", "HEOG": "HEOG", "WAST": "WAST", "HENOMX": "HENOMX", "AST": "AST", "HKT": "HKT", "SAST": "SAST", "EAT": "EAT", "MST": "MST", "HEPMX": "HEPMX", "MYT": "MYT", "HADT": "HADT", "∅∅∅": "∅∅∅", "WART": "WART", "COST": "COST", "CST": "CST", "WIB": "WIB", "CHAST": "CHAST", "CHADT": "CHADT", "HAT": "HAT", "CLT": "CLT", "TMST": "TMST", "WARST": "WARST", "MDT": "MDT", "UYST": "UYST", "HAST": "HAST", "ACWST": "ACWST", "ART": "ART", "AEST": "AEST", "JDT": "JDT", "HNCU": "HNCU", "HNPMX": "HNPMX", "VET": "VET", "BT": "BT", "IST": "IST", "HNEG": "HNEG", "HEEG": "HEEG", "HNOG": "HNOG", "ChST": "ChST", "ACDT": "ACDT", "OEZ": "OEZ", "OESZ": "OESZ", "COT": "COT", "HKST": "HKST", "NZST": "NZST", "HNNOMX": "HNNOMX", "EST": "EST", "AKST": "AKST", "PST": "PST", "WITA": "WITA", "HEPM": "HEPM", "JST": "JST", "EDT": "EDT", "UYT": "UYT", "GYT": "GYT", "WEZ": "WEZ", "HNT": "HNT", "AEDT": "AEDT", "AWST": "AWST", "AWDT": "AWDT", "MESZ": "MESZ", "NZDT": "NZDT", "CLST": "CLST", "HECU": "HECU"},
++ timezones: map[string]string{"WIB": "WIB", "ACDT": "ACDT", "MEZ": "MEZ", "MDT": "MDT", "HEEG": "HEEG", "JST": "JST", "JDT": "JDT", "HEOG": "HEOG", "HKST": "HKST", "EST": "EST", "CLT": "CLT", "HADT": "HADT", "AWST": "AWST", "PDT": "PDT", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "SAST": "SAST", "TMST": "TMST", "GMT": "GMT", "HNPMX": "HNPMX", "WEZ": "WEZ", "TMT": "TMT", "MST": "MST", "CDT": "CDT", "LHST": "LHST", "PST": "PST", "ACWST": "ACWST", "ACWDT": "ACWDT", "IST": "IST", "AKDT": "AKDT", "ARST": "ARST", "EAT": "EAT", "ACST": "ACST", "LHDT": "LHDT", "EDT": "EDT", "AEST": "AEST", "GFT": "GFT", "OEZ": "OEZ", "COST": "COST", "HNOG": "HNOG", "CLST": "CLST", "ART": "ART", "MYT": "MYT", "AWDT": "AWDT", "HNT": "HNT", "WITA": "WITA", "NZST": "NZST", "ADT": "ADT", "MESZ": "MESZ", "HNPM": "HNPM", "HEPM": "HEPM", "HECU": "HECU", "OESZ": "OESZ", "NZDT": "NZDT", "UYST": "UYST", "HNCU": "HNCU", "UYT": "UYT", "VET": "VET", "WESZ": "WESZ", "WAT": "WAT", "WARST": "WARST", "CAT": "CAT", "ECT": "ECT", "HENOMX": "HENOMX", "CST": "CST", "AST": "AST", "BOT": "BOT", "SRT": "SRT", "WART": "WART", "WIT": "WIT", "HAT": "HAT", "GYT": "GYT", "HNEG": "HNEG", "CHADT": "CHADT", "SGT": "SGT", "AKST": "AKST", "AEDT": "AEDT", "HEPMX": "HEPMX", "WAST": "WAST", "COT": "COT", "HKT": "HKT", "HAST": "HAST", "BT": "BT", "ChST": "ChST", "HNNOMX": "HNNOMX"},
+ }
+ }
+ 
+diff --git a/mfe_MU/mfe_MU.go b/mfe_MU/mfe_MU.go
+index 25440e5..a3940c1 100644
+--- a/mfe_MU/mfe_MU.go
++++ b/mfe_MU/mfe_MU.go
+@@ -10,63 +10,45 @@ import (
+ )
+ 
+ type mfe_MU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'mfe_MU' locale
+ func New() locales.Translator {
+ return &mfe_MU{
+- locale: "mfe_MU",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyPositiveSuffix: "K",
+- currencyNegativePrefix: " ",
+- currencyNegativeSuffix: "K",
+- monthsAbbreviated: []string{"", "zan", "fev", "mar", "avr", "me", "zin", "zil", "out", "sep", "okt", "nov", "des"},
+- monthsNarrow: []string{"", "z", "f", "m", "a", "m", "z", "z", "o", "s", "o", "n", "d"},
+- monthsWide: []string{"", "zanvie", "fevriye", "mars", "avril", "me", "zin", "zilye", "out", "septam", "oktob", "novam", "desam"},
+- daysAbbreviated: []string{"dim", "lin", "mar", "mer", "ze", "van", "sam"},
+- daysNarrow: []string{"d", "l", "m", "m", "z", "v", "s"},
+- daysWide: []string{"dimans", "lindi", "mardi", "merkredi", "zedi", "vandredi", "samdi"},
+- erasAbbreviated: []string{"av. Z-K", "ap. Z-K"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"avan Zezi-Krist", "apre Zezi-Krist"},
+- timezones: map[string]string{"AEDT": "AEDT", "CHAST": "CHAST", "CLT": "CLT", "HEEG": "HEEG", "ACDT": "ACDT", "OESZ": "OESZ", "HEOG": "HEOG", "HKT": "HKT", "VET": "VET", "AKDT": "AKDT", "HADT": "HADT", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "ADT": "ADT", "MEZ": "MEZ", "WAST": "WAST", "JST": "JST", "ChST": "ChST", "ACST": "ACST", "ECT": "ECT", "EAT": "EAT", "WART": "WART", "ACWDT": "ACWDT", "IST": "IST", "WARST": "WARST", "SGT": "SGT", "MST": "MST", "∅∅∅": "∅∅∅", "BOT": "BOT", "GMT": "GMT", "WIT": "WIT", "BT": "BT", "SRT": "SRT", "HNT": "HNT", "AWST": "AWST", "COST": "COST", "HECU": "HECU", "CDT": "CDT", "AST": "AST", "MYT": "MYT", "HEPM": "HEPM", "HNEG": "HNEG", "WITA": "WITA", "SAST": "SAST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "EDT": "EDT", "ARST": "ARST", "HKST": "HKST", "WAT": "WAT", "CAT": "CAT", "AKST": "AKST", "WIB": "WIB", "HAST": "HAST", "WEZ": "WEZ", "LHST": "LHST", "MESZ": "MESZ", "UYT": "UYT", "LHDT": "LHDT", "GYT": "GYT", "HAT": "HAT", "HNPM": "HNPM", "WESZ": "WESZ", "AWDT": "AWDT", "NZDT": "NZDT", "CLST": "CLST", "UYST": "UYST", "ART": "ART", "PST": "PST", "HNOG": "HNOG", "TMT": "TMT", "GFT": "GFT", "OEZ": "OEZ", "COT": "COT", "MDT": "MDT", "CST": "CST", "PDT": "PDT", "CHADT": "CHADT", "TMST": "TMST", "EST": "EST", "AEST": "AEST", "JDT": "JDT", "HENOMX": "HENOMX", "ACWST": "ACWST", "NZST": "NZST"},
++ locale: "mfe_MU",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ARST": "ARST", "HNEG": "HNEG", "LHST": "LHST", "PDT": "PDT", "WESZ": "WESZ", "WART": "WART", "HEPMX": "HEPMX", "CAT": "CAT", "CST": "CST", "MDT": "MDT", "ACWST": "ACWST", "CHADT": "CHADT", "UYT": "UYT", "IST": "IST", "ACDT": "ACDT", "AEST": "AEST", "AKDT": "AKDT", "ECT": "ECT", "SGT": "SGT", "COST": "COST", "EDT": "EDT", "ART": "ART", "ChST": "ChST", "BOT": "BOT", "HAST": "HAST", "EST": "EST", "EAT": "EAT", "MESZ": "MESZ", "HNT": "HNT", "COT": "COT", "MEZ": "MEZ", "HEPM": "HEPM", "HNCU": "HNCU", "SAST": "SAST", "AWST": "AWST", "ACWDT": "ACWDT", "HKST": "HKST", "HADT": "HADT", "HNPM": "HNPM", "PST": "PST", "HAT": "HAT", "GYT": "GYT", "HNOG": "HNOG", "WITA": "WITA", "WIB": "WIB", "CDT": "CDT", "ACST": "ACST", "MYT": "MYT", "VET": "VET", "WAST": "WAST", "NZST": "NZST", "JST": "JST", "LHDT": "LHDT", "AKST": "AKST", "CLST": "CLST", "MST": "MST", "HNNOMX": "HNNOMX", "OEZ": "OEZ", "HEOG": "HEOG", "TMT": "TMT", "CLT": "CLT", "NZDT": "NZDT", "ADT": "ADT", "UYST": "UYST", "GFT": "GFT", "WIT": "WIT", "TMST": "TMST", "∅∅∅": "∅∅∅", "GMT": "GMT", "CHAST": "CHAST", "WAT": "WAT", "OESZ": "OESZ", "AST": "AST", "SRT": "SRT", "AEDT": "AEDT", "BT": "BT", "WEZ": "WEZ", "HKT": "HKT", "HENOMX": "HENOMX", "HEEG": "HEEG", "JDT": "JDT", "AWDT": "AWDT", "HECU": "HECU", "HNPMX": "HNPMX", "WARST": "WARST"},
+ }
+ }
+ 
+@@ -112,7 +94,7 @@ func (mfe *mfe_MU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (mfe *mfe_MU) MonthsAbbreviated() []string {
+- return mfe.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -122,7 +104,7 @@ func (mfe *mfe_MU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (mfe *mfe_MU) MonthsNarrow() []string {
+- return mfe.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -132,7 +114,7 @@ func (mfe *mfe_MU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (mfe *mfe_MU) MonthsWide() []string {
+- return mfe.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,40 +174,7 @@ func (mfe *mfe_MU) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mfe.currencies[currency]
+- l := len(s) + len(symbol) + 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mfe.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(mfe.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, mfe.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, mfe.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, mfe.currencyPositiveSuffix...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'mfe_MU'
+@@ -234,57 +183,7 @@ func (mfe *mfe_MU) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mfe.currencies[currency]
+- l := len(s) + len(symbol) + 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mfe.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(mfe.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, mfe.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, mfe.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(mfe.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, mfe.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if num < 0 {
+- b = append(b, mfe.currencyNegativeSuffix...)
+- } else {
+-
+- b = append(b, mfe.currencyPositiveSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'mfe_MU'
+@@ -292,17 +191,6 @@ func (mfe *mfe_MU) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -311,17 +199,6 @@ func (mfe *mfe_MU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mfe.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -330,17 +207,6 @@ func (mfe *mfe_MU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mfe.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -349,19 +215,6 @@ func (mfe *mfe_MU) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, mfe.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mfe.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -370,19 +223,6 @@ func (mfe *mfe_MU) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mfe.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -391,26 +231,6 @@ func (mfe *mfe_MU) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mfe.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mfe.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -419,30 +239,6 @@ func (mfe *mfe_MU) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mfe.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mfe.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -451,34 +247,5 @@ func (mfe *mfe_MU) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mfe.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mfe.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := mfe.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/mg/mg.go b/mg/mg.go
+index 107076b..3b2e910 100644
+--- a/mg/mg.go
++++ b/mg/mg.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Alohan’i JK", "Aorian’i JK"},
+- timezones: map[string]string{"ChST": "ChST", "CAT": "CAT", "VET": "VET", "ART": "ART", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "UYST": "UYST", "HKT": "HKT", "CDT": "CDT", "MYT": "MYT", "WIT": "WIT", "SRT": "SRT", "ACWDT": "ACWDT", "HNT": "HNT", "HAT": "HAT", "HNOG": "HNOG", "CLST": "CLST", "COT": "COT", "HKST": "HKST", "ARST": "ARST", "NZST": "NZST", "WIB": "WIB", "HADT": "HADT", "OESZ": "OESZ", "WART": "WART", "GMT": "GMT", "EST": "EST", "EDT": "EDT", "HAST": "HAST", "LHST": "LHST", "SAST": "SAST", "ACDT": "ACDT", "WAST": "WAST", "MDT": "MDT", "AKDT": "AKDT", "GYT": "GYT", "BT": "BT", "JDT": "JDT", "ACST": "ACST", "ECT": "ECT", "AWST": "AWST", "MST": "MST", "HEPM": "HEPM", "CLT": "CLT", "TMT": "TMT", "ADT": "ADT", "UYT": "UYT", "WAT": "WAT", "CST": "CST", "EAT": "EAT", "HNCU": "HNCU", "AKST": "AKST", "AEDT": "AEDT", "HNPM": "HNPM", "CHAST": "CHAST", "MEZ": "MEZ", "BOT": "BOT", "HEEG": "HEEG", "COST": "COST", "HEPMX": "HEPMX", "HEOG": "HEOG", "PST": "PST", "PDT": "PDT", "NZDT": "NZDT", "MESZ": "MESZ", "WITA": "WITA", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AST": "AST", "AEST": "AEST", "LHDT": "LHDT", "IST": "IST", "WARST": "WARST", "HECU": "HECU", "SGT": "SGT", "WEZ": "WEZ", "WESZ": "WESZ", "CHADT": "CHADT", "GFT": "GFT", "HNPMX": "HNPMX", "ACWST": "ACWST", "JST": "JST", "TMST": "TMST"},
++ timezones: map[string]string{"ACDT": "ACDT", "AEST": "AEST", "HNT": "HNT", "CST": "CST", "ARST": "ARST", "LHDT": "LHDT", "WAT": "WAT", "HAT": "HAT", "GMT": "GMT", "MEZ": "MEZ", "CHAST": "CHAST", "IST": "IST", "HEPMX": "HEPMX", "ChST": "ChST", "MESZ": "MESZ", "ECT": "ECT", "HENOMX": "HENOMX", "VET": "VET", "GFT": "GFT", "TMST": "TMST", "HNNOMX": "HNNOMX", "JDT": "JDT", "ACWDT": "ACWDT", "HNCU": "HNCU", "GYT": "GYT", "ACST": "ACST", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "WAST": "WAST", "AKDT": "AKDT", "MST": "MST", "UYST": "UYST", "BT": "BT", "AKST": "AKST", "WIT": "WIT", "CAT": "CAT", "CLT": "CLT", "JST": "JST", "HAST": "HAST", "ACWST": "ACWST", "PST": "PST", "HECU": "HECU", "SAST": "SAST", "EDT": "EDT", "CDT": "CDT", "EAT": "EAT", "BOT": "BOT", "HEEG": "HEEG", "LHST": "LHST", "COT": "COT", "AST": "AST", "HNEG": "HNEG", "HEPM": "HEPM", "MYT": "MYT", "UYT": "UYT", "PDT": "PDT", "OESZ": "OESZ", "HEOG": "HEOG", "ADT": "ADT", "OEZ": "OEZ", "WART": "WART", "WARST": "WARST", "EST": "EST", "HKT": "HKT", "CLST": "CLST", "MDT": "MDT", "HNPM": "HNPM", "HNPMX": "HNPMX", "HNOG": "HNOG", "COST": "COST", "NZST": "NZST", "SRT": "SRT", "CHADT": "CHADT", "WEZ": "WEZ", "SGT": "SGT", "HKST": "HKST", "WITA": "WITA", "AWST": "AWST", "WESZ": "WESZ", "WIB": "WIB", "NZDT": "NZDT", "ART": "ART", "AEDT": "AEDT", "TMT": "TMT", "HADT": "HADT"},
+ }
+ }
+ 
+diff --git a/mg_MG/mg_MG.go b/mg_MG/mg_MG.go
+index c8378bf..753d5c2 100644
+--- a/mg_MG/mg_MG.go
++++ b/mg_MG/mg_MG.go
+@@ -42,32 +42,13 @@ type mg_MG struct {
+ // New returns a new instance of translator for the 'mg_MG' locale
+ func New() locales.Translator {
+ return &mg_MG{
+- locale: "mg_MG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "Mey", "Jon", "Jol", "Aog", "Sep", "Okt", "Nov", "Des"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Janoary", "Febroary", "Martsa", "Aprily", "Mey", "Jona", "Jolay", "Aogositra", "Septambra", "Oktobra", "Novambra", "Desambra"},
+- daysAbbreviated: []string{"Alah", "Alats", "Tal", "Alar", "Alak", "Zom", "Asab"},
+- daysNarrow: []string{"A", "A", "T", "A", "A", "Z", "A"},
+- daysShort: []string{"Alah", "Alats", "Tal", "Alar", "Alak", "Zom", "Asab"},
+- daysWide: []string{"Alahady", "Alatsinainy", "Talata", "Alarobia", "Alakamisy", "Zoma", "Asabotsy"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Alohan’i JK", "Aorian’i JK"},
+- timezones: map[string]string{"HEOG": "HEOG", "LHDT": "LHDT", "HAST": "HAST", "HADT": "HADT", "HEPM": "HEPM", "EST": "EST", "HNPMX": "HNPMX", "MDT": "MDT", "ACWST": "ACWST", "AEST": "AEST", "SAST": "SAST", "HEEG": "HEEG", "NZST": "NZST", "NZDT": "NZDT", "SGT": "SGT", "UYT": "UYT", "JDT": "JDT", "WIT": "WIT", "HNOG": "HNOG", "PST": "PST", "AEDT": "AEDT", "MEZ": "MEZ", "CST": "CST", "AKDT": "AKDT", "WITA": "WITA", "MESZ": "MESZ", "JST": "JST", "CAT": "CAT", "EAT": "EAT", "HAT": "HAT", "PDT": "PDT", "AWDT": "AWDT", "CLT": "CLT", "HNEG": "HNEG", "HENOMX": "HENOMX", "EDT": "EDT", "ADT": "ADT", "WIB": "WIB", "MST": "MST", "SRT": "SRT", "CHADT": "CHADT", "OEZ": "OEZ", "MYT": "MYT", "UYST": "UYST", "AST": "AST", "BT": "BT", "IST": "IST", "BOT": "BOT", "ACST": "ACST", "WART": "WART", "ECT": "ECT", "HNNOMX": "HNNOMX", "WARST": "WARST", "HNT": "HNT", "ART": "ART", "ARST": "ARST", "HKST": "HKST", "TMST": "TMST", "WESZ": "WESZ", "AWST": "AWST", "∅∅∅": "∅∅∅", "AKST": "AKST", "GYT": "GYT", "VET": "VET", "WEZ": "WEZ", "COST": "COST", "HNCU": "HNCU", "HECU": "HECU", "CDT": "CDT", "ACWDT": "ACWDT", "HKT": "HKT", "CHAST": "CHAST", "LHST": "LHST", "OESZ": "OESZ", "ChST": "ChST", "ACDT": "ACDT", "GMT": "GMT", "WAST": "WAST", "COT": "COT", "HEPMX": "HEPMX", "HNPM": "HNPM", "CLST": "CLST", "GFT": "GFT", "TMT": "TMT", "WAT": "WAT"},
++ locale: "mg_MG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WESZ": "WESZ", "GFT": "GFT", "GYT": "GYT", "HKT": "HKT", "ACDT": "ACDT", "AWST": "AWST", "VET": "VET", "SAST": "SAST", "TMT": "TMT", "CDT": "CDT", "HAST": "HAST", "MESZ": "MESZ", "HNT": "HNT", "COST": "COST", "HNOG": "HNOG", "WIB": "WIB", "HEPM": "HEPM", "∅∅∅": "∅∅∅", "AST": "AST", "LHST": "LHST", "IST": "IST", "CHAST": "CHAST", "UYT": "UYT", "OESZ": "OESZ", "WIT": "WIT", "ADT": "ADT", "EAT": "EAT", "JST": "JST", "AEST": "AEST", "WARST": "WARST", "COT": "COT", "ChST": "ChST", "ACST": "ACST", "CST": "CST", "NZST": "NZST", "SRT": "SRT", "ACWDT": "ACWDT", "AEDT": "AEDT", "CAT": "CAT", "BOT": "BOT", "HADT": "HADT", "HNEG": "HNEG", "CHADT": "CHADT", "HEPMX": "HEPMX", "WAT": "WAT", "WAST": "WAST", "EST": "EST", "NZDT": "NZDT", "BT": "BT", "AKST": "AKST", "OEZ": "OEZ", "HKST": "HKST", "MEZ": "MEZ", "WEZ": "WEZ", "HECU": "HECU", "WART": "WART", "AWDT": "AWDT", "HNPM": "HNPM", "UYST": "UYST", "HAT": "HAT", "HEOG": "HEOG", "HNNOMX": "HNNOMX", "MYT": "MYT", "PST": "PST", "ECT": "ECT", "GMT": "GMT", "LHDT": "LHDT", "PDT": "PDT", "ACWST": "ACWST", "TMST": "TMST", "CLST": "CLST", "WITA": "WITA", "ARST": "ARST", "HENOMX": "HENOMX", "JDT": "JDT", "HNCU": "HNCU", "EDT": "EDT", "CLT": "CLT", "MDT": "MDT", "ART": "ART", "HEEG": "HEEG", "SGT": "SGT", "HNPMX": "HNPMX", "AKDT": "AKDT", "MST": "MST"},
+ }
+ }
+ 
+@@ -120,7 +101,7 @@ func (mg *mg_MG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (mg *mg_MG) MonthsAbbreviated() []string {
+- return mg.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -130,7 +111,7 @@ func (mg *mg_MG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (mg *mg_MG) MonthsNarrow() []string {
+- return mg.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -140,7 +121,7 @@ func (mg *mg_MG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (mg *mg_MG) MonthsWide() []string {
+- return mg.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -186,73 +167,13 @@ func (mg *mg_MG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'mg_MG' and handles both Whole and Real numbers based on 'v'
+ func (mg *mg_MG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mg.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mg.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, mg.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'mg_MG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (mg *mg_MG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mg.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, mg.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, mg.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'mg_MG'
+@@ -260,56 +181,7 @@ func (mg *mg_MG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mg.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mg.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mg.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, mg.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mg.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'mg_MG'
+@@ -318,64 +190,7 @@ func (mg *mg_MG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mg.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mg.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mg.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, mg.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mg.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'mg_MG'
+@@ -383,28 +198,6 @@ func (mg *mg_MG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -413,17 +206,6 @@ func (mg *mg_MG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, mg.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -432,17 +214,6 @@ func (mg *mg_MG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mg.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -451,19 +222,6 @@ func (mg *mg_MG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, mg.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mg.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -472,19 +230,6 @@ func (mg *mg_MG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -493,26 +238,6 @@ func (mg *mg_MG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,30 +246,6 @@ func (mg *mg_MG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -553,34 +254,5 @@ func (mg *mg_MG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := mg.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/mgh/mgh.go b/mgh/mgh.go
+index 0df8e75..68e5e89 100644
+--- a/mgh/mgh.go
++++ b/mgh/mgh.go
+@@ -69,7 +69,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"HY", "YY"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Hinapiya yesu", "Yopia yesu"},
+- timezones: map[string]string{"TMT": "TMT", "MDT": "MDT", "ACWDT": "ACWDT", "AWST": "AWST", "HKT": "HKT", "CHADT": "CHADT", "CLT": "CLT", "WAT": "WAT", "OESZ": "OESZ", "WARST": "WARST", "HEPMX": "HEPMX", "∅∅∅": "∅∅∅", "EDT": "EDT", "MST": "MST", "HAST": "HAST", "LHST": "LHST", "NZST": "NZST", "HNPM": "HNPM", "HEPM": "HEPM", "ARST": "ARST", "IST": "IST", "JDT": "JDT", "ACDT": "ACDT", "AKST": "AKST", "CDT": "CDT", "MYT": "MYT", "HADT": "HADT", "ART": "ART", "MESZ": "MESZ", "ACST": "ACST", "EST": "EST", "AST": "AST", "COST": "COST", "BT": "BT", "AWDT": "AWDT", "JST": "JST", "TMST": "TMST", "EAT": "EAT", "GMT": "GMT", "HECU": "HECU", "PST": "PST", "GFT": "GFT", "COT": "COT", "HENOMX": "HENOMX", "HNT": "HNT", "HAT": "HAT", "AEST": "AEST", "OEZ": "OEZ", "HNCU": "HNCU", "AEDT": "AEDT", "HKST": "HKST", "WESZ": "WESZ", "ACWST": "ACWST", "SGT": "SGT", "HNPMX": "HNPMX", "AKDT": "AKDT", "GYT": "GYT", "WIB": "WIB", "PDT": "PDT", "HEOG": "HEOG", "HNOG": "HNOG", "CLST": "CLST", "HEEG": "HEEG", "UYST": "UYST", "CST": "CST", "ADT": "ADT", "SRT": "SRT", "SAST": "SAST", "HNEG": "HNEG", "WART": "WART", "VET": "VET", "WIT": "WIT", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "MEZ": "MEZ", "CHAST": "CHAST", "ChST": "ChST", "BOT": "BOT", "WAST": "WAST", "ECT": "ECT", "LHDT": "LHDT", "NZDT": "NZDT", "CAT": "CAT", "UYT": "UYT", "WITA": "WITA"},
++ timezones: map[string]string{"HKST": "HKST", "AWST": "AWST", "AEDT": "AEDT", "HNPMX": "HNPMX", "WESZ": "WESZ", "HECU": "HECU", "WART": "WART", "COT": "COT", "JST": "JST", "VET": "VET", "MYT": "MYT", "CHADT": "CHADT", "AKST": "AKST", "NZDT": "NZDT", "AEST": "AEST", "CAT": "CAT", "CLT": "CLT", "WIB": "WIB", "CDT": "CDT", "ECT": "ECT", "EAT": "EAT", "HEPMX": "HEPMX", "HNCU": "HNCU", "AKDT": "AKDT", "COST": "COST", "EST": "EST", "ADT": "ADT", "ACDT": "ACDT", "AWDT": "AWDT", "HEPM": "HEPM", "PDT": "PDT", "OEZ": "OEZ", "EDT": "EDT", "ACST": "ACST", "WAT": "WAT", "WITA": "WITA", "NZST": "NZST", "ART": "ART", "ARST": "ARST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "TMT": "TMT", "AST": "AST", "JDT": "JDT", "∅∅∅": "∅∅∅", "SGT": "SGT", "HNT": "HNT", "HAT": "HAT", "HKT": "HKT", "CLST": "CLST", "GYT": "GYT", "ChST": "ChST", "MEZ": "MEZ", "LHST": "LHST", "ACWDT": "ACWDT", "WAST": "WAST", "OESZ": "OESZ", "SAST": "SAST", "MST": "MST", "HNEG": "HNEG", "LHDT": "LHDT", "WARST": "WARST", "HEOG": "HEOG", "CST": "CST", "SRT": "SRT", "HNPM": "HNPM", "BOT": "BOT", "HADT": "HADT", "MESZ": "MESZ", "WIT": "WIT", "ACWST": "ACWST", "GMT": "GMT", "HAST": "HAST", "CHAST": "CHAST", "UYT": "UYT", "UYST": "UYST", "PST": "PST", "BT": "BT", "WEZ": "WEZ", "HNOG": "HNOG", "HEEG": "HEEG", "GFT": "GFT", "TMST": "TMST", "MDT": "MDT", "IST": "IST"},
+ }
+ }
+ 
+diff --git a/mgh_MZ/mgh_MZ.go b/mgh_MZ/mgh_MZ.go
+index 3e23de3..3943bc1 100644
+--- a/mgh_MZ/mgh_MZ.go
++++ b/mgh_MZ/mgh_MZ.go
+@@ -10,66 +10,45 @@ import (
+ )
+ 
+ type mgh_MZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'mgh_MZ' locale
+ func New() locales.Translator {
+ return &mgh_MZ{
+- locale: "mgh_MZ",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyPositiveSuffix: "K",
+- currencyNegativePrefix: " ",
+- currencyNegativeSuffix: "K",
+- monthsAbbreviated: []string{"", "Kwa", "Una", "Rar", "Che", "Tha", "Moc", "Sab", "Nan", "Tis", "Kum", "Moj", "Yel"},
+- monthsNarrow: []string{"", "K", "U", "R", "C", "T", "M", "S", "N", "T", "K", "M", "Y"},
+- monthsWide: []string{"", "Mweri wo kwanza", "Mweri wo unayeli", "Mweri wo uneraru", "Mweri wo unecheshe", "Mweri wo unethanu", "Mweri wo thanu na mocha", "Mweri wo saba", "Mweri wo nane", "Mweri wo tisa", "Mweri wo kumi", "Mweri wo kumi na moja", "Mweri wo kumi na yel’li"},
+- daysAbbreviated: []string{"Sab", "Jtt", "Jnn", "Jtn", "Ara", "Iju", "Jmo"},
+- daysNarrow: []string{"S", "J", "J", "J", "A", "I", "J"},
+- daysWide: []string{"Sabato", "Jumatatu", "Jumanne", "Jumatano", "Arahamisi", "Ijumaa", "Jumamosi"},
+- periodsAbbreviated: []string{"wichishu", "mchochil’l"},
+- periodsWide: []string{"wichishu", "mchochil’l"},
+- erasAbbreviated: []string{"HY", "YY"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Hinapiya yesu", "Yopia yesu"},
+- timezones: map[string]string{"WITA": "WITA", "HEPM": "HEPM", "GFT": "GFT", "WARST": "WARST", "ADT": "ADT", "HADT": "HADT", "HNOG": "HNOG", "OESZ": "OESZ", "CDT": "CDT", "HAST": "HAST", "HEPMX": "HEPMX", "EDT": "EDT", "GYT": "GYT", "ACWST": "ACWST", "LHDT": "LHDT", "HEEG": "HEEG", "SGT": "SGT", "BT": "BT", "HKST": "HKST", "HKT": "HKT", "EAT": "EAT", "WAST": "WAST", "HEOG": "HEOG", "NZDT": "NZDT", "CAT": "CAT", "AKST": "AKST", "ACWDT": "ACWDT", "AEST": "AEST", "OEZ": "OEZ", "HNPMX": "HNPMX", "AST": "AST", "LHST": "LHST", "WAT": "WAT", "WESZ": "WESZ", "MESZ": "MESZ", "WIT": "WIT", "AWDT": "AWDT", "IST": "IST", "CLT": "CLT", "JST": "JST", "MST": "MST", "UYT": "UYT", "VET": "VET", "JDT": "JDT", "HNT": "HNT", "AEDT": "AEDT", "ChST": "ChST", "MDT": "MDT", "CST": "CST", "PST": "PST", "EST": "EST", "MYT": "MYT", "SRT": "SRT", "ARST": "ARST", "MEZ": "MEZ", "ECT": "ECT", "COT": "COT", "HECU": "HECU", "CHAST": "CHAST", "SAST": "SAST", "HNEG": "HNEG", "WIB": "WIB", "HAT": "HAT", "BOT": "BOT", "TMT": "TMT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HNCU": "HNCU", "HNPM": "HNPM", "NZST": "NZST", "CHADT": "CHADT", "CLST": "CLST", "TMST": "TMST", "ACDT": "ACDT", "GMT": "GMT", "PDT": "PDT", "WEZ": "WEZ", "AWST": "AWST", "WART": "WART", "UYST": "UYST", "AKDT": "AKDT", "ART": "ART", "ACST": "ACST", "∅∅∅": "∅∅∅", "COST": "COST"},
++ locale: "mgh_MZ",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WIT": "WIT", "HKST": "HKST", "ECT": "ECT", "NZST": "NZST", "JST": "JST", "CHAST": "CHAST", "HNPM": "HNPM", "ACWDT": "ACWDT", "PST": "PST", "SGT": "SGT", "AKST": "AKST", "TMST": "TMST", "CLST": "CLST", "HADT": "HADT", "HEEG": "HEEG", "MYT": "MYT", "UYST": "UYST", "WARST": "WARST", "EST": "EST", "LHDT": "LHDT", "AEST": "AEST", "WEZ": "WEZ", "WAT": "WAT", "HAT": "HAT", "WART": "WART", "COT": "COT", "COST": "COST", "BOT": "BOT", "ACST": "ACST", "HEOG": "HEOG", "HNEG": "HNEG", "HECU": "HECU", "WIB": "WIB", "MDT": "MDT", "GMT": "GMT", "OESZ": "OESZ", "MEZ": "MEZ", "HEPM": "HEPM", "∅∅∅": "∅∅∅", "EDT": "EDT", "NZDT": "NZDT", "ARST": "ARST", "ADT": "ADT", "HNNOMX": "HNNOMX", "AWST": "AWST", "UYT": "UYT", "LHST": "LHST", "HNCU": "HNCU", "SAST": "SAST", "CAT": "CAT", "WITA": "WITA", "CST": "CST", "HAST": "HAST", "AWDT": "AWDT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "CLT": "CLT", "EAT": "EAT", "AEDT": "AEDT", "JDT": "JDT", "BT": "BT", "VET": "VET", "HNOG": "HNOG", "MST": "MST", "ART": "ART", "PDT": "PDT", "WESZ": "WESZ", "WAST": "WAST", "HKT": "HKT", "CHADT": "CHADT", "HNT": "HNT", "AST": "AST", "IST": "IST", "OEZ": "OEZ", "TMT": "TMT", "CDT": "CDT", "SRT": "SRT", "HENOMX": "HENOMX", "ACDT": "ACDT", "GYT": "GYT", "ChST": "ChST", "MESZ": "MESZ", "ACWST": "ACWST", "AKDT": "AKDT", "GFT": "GFT"},
+ }
+ }
+ 
+@@ -115,7 +94,7 @@ func (mgh *mgh_MZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (mgh *mgh_MZ) MonthsAbbreviated() []string {
+- return mgh.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -125,7 +104,7 @@ func (mgh *mgh_MZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (mgh *mgh_MZ) MonthsNarrow() []string {
+- return mgh.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -135,7 +114,7 @@ func (mgh *mgh_MZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (mgh *mgh_MZ) MonthsWide() []string {
+- return mgh.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -195,40 +174,7 @@ func (mgh *mgh_MZ) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mgh.currencies[currency]
+- l := len(s) + len(symbol) + 4
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mgh.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(mgh.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, mgh.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, mgh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, mgh.currencyPositiveSuffix...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'mgh_MZ'
+@@ -237,57 +183,7 @@ func (mgh *mgh_MZ) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mgh.currencies[currency]
+- l := len(s) + len(symbol) + 4
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mgh.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(mgh.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, mgh.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, mgh.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(mgh.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, mgh.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if num < 0 {
+- b = append(b, mgh.currencyNegativeSuffix...)
+- } else {
+-
+- b = append(b, mgh.currencyPositiveSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'mgh_MZ'
+@@ -295,27 +191,6 @@ func (mgh *mgh_MZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -324,17 +199,6 @@ func (mgh *mgh_MZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mgh.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -343,17 +207,6 @@ func (mgh *mgh_MZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mgh.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -362,19 +215,6 @@ func (mgh *mgh_MZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, mgh.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mgh.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -383,19 +223,6 @@ func (mgh *mgh_MZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mgh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -404,26 +231,6 @@ func (mgh *mgh_MZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mgh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mgh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -432,30 +239,6 @@ func (mgh *mgh_MZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mgh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mgh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -464,34 +247,5 @@ func (mgh *mgh_MZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mgh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mgh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := mgh.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/mgo/mgo.go b/mgo/mgo.go
+index 672c7c0..d1dca11 100644
+--- a/mgo/mgo.go
++++ b/mgo/mgo.go
+@@ -70,7 +70,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BCE", "CE"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"WART": "WART", "CDT": "CDT", "GYT": "GYT", "AEDT": "AEDT", "HNPM": "HNPM", "EAT": "EAT", "EST": "EST", "HNPMX": "HNPMX", "HNT": "HNT", "HAT": "HAT", "AWDT": "AWDT", "HEEG": "HEEG", "ACST": "ACST", "CHADT": "CHADT", "CST": "CST", "ADT": "ADT", "AEST": "AEST", "OESZ": "OESZ", "EDT": "EDT", "AST": "AST", "WEZ": "WEZ", "AWST": "AWST", "LHDT": "LHDT", "CLST": "CLST", "∅∅∅": "∅∅∅", "WAT": "WAT", "HNCU": "HNCU", "HNOG": "HNOG", "ChST": "ChST", "ACDT": "ACDT", "MST": "MST", "WIT": "WIT", "ACWST": "ACWST", "HKST": "HKST", "COT": "COT", "GMT": "GMT", "MYT": "MYT", "HAST": "HAST", "JDT": "JDT", "GFT": "GFT", "HNEG": "HNEG", "IST": "IST", "BOT": "BOT", "HNNOMX": "HNNOMX", "AKST": "AKST", "VET": "VET", "PDT": "PDT", "WESZ": "WESZ", "MEZ": "MEZ", "MESZ": "MESZ", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "HEPM": "HEPM", "NZST": "NZST", "CLT": "CLT", "CHAST": "CHAST", "OEZ": "OEZ", "CAT": "CAT", "WARST": "WARST", "SGT": "SGT", "ARST": "ARST", "WITA": "WITA", "HKT": "HKT", "JST": "JST", "TMT": "TMT", "COST": "COST", "MDT": "MDT", "HADT": "HADT", "HEOG": "HEOG", "PST": "PST", "SAST": "SAST", "WAST": "WAST", "HECU": "HECU", "UYST": "UYST", "AKDT": "AKDT", "ART": "ART", "LHST": "LHST", "NZDT": "NZDT", "ECT": "ECT", "HEPMX": "HEPMX", "WIB": "WIB", "TMST": "TMST", "UYT": "UYT", "BT": "BT", "SRT": "SRT"},
++ timezones: map[string]string{"JDT": "JDT", "LHST": "LHST", "EDT": "EDT", "CAT": "CAT", "CST": "CST", "NZDT": "NZDT", "AST": "AST", "HNNOMX": "HNNOMX", "CHAST": "CHAST", "TMST": "TMST", "SRT": "SRT", "ACST": "ACST", "PST": "PST", "AEDT": "AEDT", "HAT": "HAT", "WIT": "WIT", "HNOG": "HNOG", "ADT": "ADT", "EAT": "EAT", "HAST": "HAST", "HNPMX": "HNPMX", "WAT": "WAT", "COT": "COT", "CLST": "CLST", "GMT": "GMT", "BOT": "BOT", "AWST": "AWST", "AKDT": "AKDT", "ART": "ART", "HEEG": "HEEG", "WAST": "WAST", "CDT": "CDT", "MDT": "MDT", "JST": "JST", "HNCU": "HNCU", "ACDT": "ACDT", "AWDT": "AWDT", "OESZ": "OESZ", "GFT": "GFT", "WART": "WART", "HEOG": "HEOG", "TMT": "TMT", "ECT": "ECT", "LHDT": "LHDT", "ACWST": "ACWST", "ACWDT": "ACWDT", "SGT": "SGT", "HKT": "HKT", "HADT": "HADT", "PDT": "PDT", "WARST": "WARST", "MST": "MST", "UYT": "UYT", "BT": "BT", "HEPMX": "HEPMX", "HNPM": "HNPM", "UYST": "UYST", "GYT": "GYT", "CLT": "CLT", "WIB": "WIB", "NZST": "NZST", "MESZ": "MESZ", "HNEG": "HNEG", "HECU": "HECU", "HEPM": "HEPM", "HNT": "HNT", "ARST": "ARST", "CHADT": "CHADT", "WEZ": "WEZ", "∅∅∅": "∅∅∅", "WITA": "WITA", "MEZ": "MEZ", "AKST": "AKST", "SAST": "SAST", "EST": "EST", "ChST": "ChST", "AEST": "AEST", "IST": "IST", "COST": "COST", "HKST": "HKST", "HENOMX": "HENOMX", "MYT": "MYT", "OEZ": "OEZ", "WESZ": "WESZ", "VET": "VET"},
+ }
+ }
+ 
+diff --git a/mgo_CM/mgo_CM.go b/mgo_CM/mgo_CM.go
+index 9f82821..c1cb09a 100644
+--- a/mgo_CM/mgo_CM.go
++++ b/mgo_CM/mgo_CM.go
+@@ -10,67 +10,45 @@ import (
+ )
+ 
+ type mgo_CM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'mgo_CM' locale
+ func New() locales.Translator {
+ return &mgo_CM{
+- locale: "mgo_CM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "mbegtug", "imeg àbùbì", "imeg mbəŋchubi", "iməg ngwə̀t", "iməg fog", "iməg ichiibɔd", "iməg àdùmbə̀ŋ", "iməg ichika", "iməg kud", "iməg tèsiʼe", "iməg zò", "iməg krizmed"},
+- monthsNarrow: []string{"", "M1", "A2", "M3", "N4", "F5", "I6", "A7", "I8", "K9", "10", "11", "12"},
+- monthsWide: []string{"", "iməg mbegtug", "imeg àbùbì", "imeg mbəŋchubi", "iməg ngwə̀t", "iməg fog", "iməg ichiibɔd", "iməg àdùmbə̀ŋ", "iməg ichika", "iməg kud", "iməg tèsiʼe", "iməg zò", "iməg krizmed"},
+- daysAbbreviated: []string{"Aneg 1", "Aneg 2", "Aneg 3", "Aneg 4", "Aneg 5", "Aneg 6", "Aneg 7"},
+- daysNarrow: []string{"A1", "A2", "A3", "A4", "A5", "A6", "A7"},
+- daysShort: []string{"1", "2", "3", "4", "5", "6", "7"},
+- daysWide: []string{"Aneg 1", "Aneg 2", "Aneg 3", "Aneg 4", "Aneg 5", "Aneg 6", "Aneg 7"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"BCE", "CE"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"OEZ": "OEZ", "ACWST": "ACWST", "HAT": "HAT", "ARST": "ARST", "HKST": "HKST", "WITA": "WITA", "TMST": "TMST", "WAT": "WAT", "WART": "WART", "AWST": "AWST", "AST": "AST", "JST": "JST", "ChST": "ChST", "HEPMX": "HEPMX", "SGT": "SGT", "BT": "BT", "SRT": "SRT", "PDT": "PDT", "HNOG": "HNOG", "ACDT": "ACDT", "ECT": "ECT", "HENOMX": "HENOMX", "CST": "CST", "BOT": "BOT", "VET": "VET", "WIT": "WIT", "PST": "PST", "LHDT": "LHDT", "CHAST": "CHAST", "CHADT": "CHADT", "CLT": "CLT", "GFT": "GFT", "TMT": "TMT", "GMT": "GMT", "UYT": "UYT", "MYT": "MYT", "EAT": "EAT", "GYT": "GYT", "AKDT": "AKDT", "HADT": "HADT", "AEST": "AEST", "HKT": "HKT", "HEPM": "HEPM", "SAST": "SAST", "IST": "IST", "HNCU": "HNCU", "CDT": "CDT", "ACWDT": "ACWDT", "JDT": "JDT", "WAST": "WAST", "∅∅∅": "∅∅∅", "CAT": "CAT", "WARST": "WARST", "UYST": "UYST", "AEDT": "AEDT", "MEZ": "MEZ", "COST": "COST", "AWDT": "AWDT", "MESZ": "MESZ", "ACST": "ACST", "ADT": "ADT", "MDT": "MDT", "HAST": "HAST", "HNT": "HNT", "LHST": "LHST", "HECU": "HECU", "MST": "MST", "NZDT": "NZDT", "EDT": "EDT", "WEZ": "WEZ", "HNPM": "HNPM", "CLST": "CLST", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "WIB": "WIB", "WESZ": "WESZ", "HEOG": "HEOG", "HNEG": "HNEG", "EST": "EST", "AKST": "AKST", "ART": "ART", "NZST": "NZST", "OESZ": "OESZ", "COT": "COT"},
++ locale: "mgo_CM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ADT": "ADT", "BOT": "BOT", "MYT": "MYT", "ACWST": "ACWST", "OESZ": "OESZ", "ECT": "ECT", "CST": "CST", "ACWDT": "ACWDT", "HEPMX": "HEPMX", "TMST": "TMST", "MST": "MST", "NZST": "NZST", "LHDT": "LHDT", "SGT": "SGT", "WESZ": "WESZ", "HNOG": "HNOG", "SAST": "SAST", "MESZ": "MESZ", "JDT": "JDT", "HECU": "HECU", "HKST": "HKST", "MEZ": "MEZ", "AWST": "AWST", "HNT": "HNT", "HNEG": "HNEG", "WIT": "WIT", "CLST": "CLST", "IST": "IST", "HNPMX": "HNPMX", "COST": "COST", "EST": "EST", "WIB": "WIB", "HADT": "HADT", "PDT": "PDT", "CHADT": "CHADT", "HNCU": "HNCU", "WEZ": "WEZ", "COT": "COT", "MDT": "MDT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HNPM": "HNPM", "CLT": "CLT", "HAST": "HAST", "AWDT": "AWDT", "AKDT": "AKDT", "WAST": "WAST", "GYT": "GYT", "SRT": "SRT", "CAT": "CAT", "ACDT": "ACDT", "UYST": "UYST", "WART": "WART", "∅∅∅": "∅∅∅", "EDT": "EDT", "EAT": "EAT", "LHST": "LHST", "PST": "PST", "CHAST": "CHAST", "UYT": "UYT", "WAT": "WAT", "HKT": "HKT", "CDT": "CDT", "GFT": "GFT", "OEZ": "OEZ", "ChST": "ChST", "ART": "ART", "ACST": "ACST", "HEEG": "HEEG", "HEOG": "HEOG", "GMT": "GMT", "JST": "JST", "AKST": "AKST", "ARST": "ARST", "HEPM": "HEPM", "VET": "VET", "HAT": "HAT", "TMT": "TMT", "NZDT": "NZDT", "BT": "BT", "AEST": "AEST", "AEDT": "AEDT", "WARST": "WARST", "WITA": "WITA", "AST": "AST"},
+ }
+ }
+ 
+@@ -123,7 +101,7 @@ func (mgo *mgo_CM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (mgo *mgo_CM) MonthsAbbreviated() []string {
+- return mgo.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -133,7 +111,7 @@ func (mgo *mgo_CM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (mgo *mgo_CM) MonthsNarrow() []string {
+- return mgo.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -143,7 +121,7 @@ func (mgo *mgo_CM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (mgo *mgo_CM) MonthsWide() []string {
+- return mgo.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -189,73 +167,13 @@ func (mgo *mgo_CM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'mgo_CM' and handles both Whole and Real numbers based on 'v'
+ func (mgo *mgo_CM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mgo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mgo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, mgo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'mgo_CM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (mgo *mgo_CM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mgo.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, mgo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, mgo.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'mgo_CM'
+@@ -263,60 +181,7 @@ func (mgo *mgo_CM) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mgo.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mgo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mgo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(mgo.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, mgo.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, mgo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mgo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'mgo_CM'
+@@ -325,72 +190,7 @@ func (mgo *mgo_CM) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mgo.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mgo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mgo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(mgo.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, mgo.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, mgo.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(mgo.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, mgo.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mgo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'mgo_CM'
+@@ -398,28 +198,6 @@ func (mgo *mgo_CM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -428,17 +206,6 @@ func (mgo *mgo_CM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, mgo.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -447,17 +214,6 @@ func (mgo *mgo_CM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, mgo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -466,25 +222,6 @@ func (mgo *mgo_CM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, mgo.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, mgo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -493,19 +230,6 @@ func (mgo *mgo_CM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mgo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -514,26 +238,6 @@ func (mgo *mgo_CM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mgo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mgo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -542,30 +246,6 @@ func (mgo *mgo_CM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mgo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mgo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -574,34 +254,5 @@ func (mgo *mgo_CM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mgo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mgo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := mgo.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/mk/mk.go b/mk/mk.go
+index 7d2efd3..1b7d148 100644
+--- a/mk/mk.go
++++ b/mk/mk.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"", ""},
+ erasNarrow: []string{"пр.н.е.", "н.е."},
+ erasWide: []string{"пред нашата ера", "од нашата ера"},
+- timezones: map[string]string{"AST": "Атлантско стандардно време", "WIB": "Време во Западна Индонезија", "ART": "Стандардно време во Аргентина", "AWST": "Стандардно време во Западна Австралија", "WART": "Стандардно време во западна Аргентина", "GYT": "Време во Гвајана", "MDT": "MDT", "UYST": "Летно сметање на времето во Уругвај", "HAST": "Стандардно време во Хаваи - Алеутски острови", "HADT": "Летно сметање на времето во Хаваи - Алеутски острови", "WIT": "Време во Источна Индонезија", "HKT": "Стандардно време во Хонг Конг", "BOT": "Време во Боливија", "ACST": "Стандардно време во Централна Австралија", "JST": "Стандардно време во Јапонија", "ACDT": "Летно сметање на времето во Централна Австралија", "ECT": "Време во Еквадор", "AKDT": "Летно сметање на времето во Аљаска", "ACWST": "Стандардно време во Централна и Западна Австралија", "ACWDT": "Летно сметање на времето во Централна и Западна Австралија", "ARST": "Летно сметање на времето во Аргентина", "ChST": "Време во Чаморо", "HEEG": "Летно сметање на времето во Источен Гренланд", "CHADT": "Летно сметање на времето во Четем", "MESZ": "Средноевропско летно време", "LHDT": "Летно сметање на времето во Лорд Хау", "JDT": "Летно сметање на времето во Јапонија", "EST": "Источно стандардно време", "MYT": "Време во Малезија", "NZST": "Стандардно време во Нов Зеланд", "GFT": "Време во Француска Гвајана", "HNCU": "Стандардно време во Куба", "EAT": "Источноафриканско време", "COT": "Стандардно време во Колумбија", "EDT": "Источно летно сметање на времето", "SAST": "Време во Јужноафриканска Република", "CLT": "Стандардно време во Чиле", "HNEG": "Стандардно време во Источен Гренланд", "TMST": "Летно време во Туркменистан", "AEST": "Стандардно време во Источна Австралија", "AWDT": "Летно сметање на времето во Западна Австралија", "CAT": "Средноафриканско време", "HNPMX": "Стандардно тихоокеанско време во Мексико", "HNNOMX": "Стандардно време во северозападно Мексико", "HEPMX": "Летно тихоокеанско време во Мексико", "NZDT": "Летно сметање на времето во Нов Зеланд", "∅∅∅": "Летно сметање на времето во Перу", "OEZ": "Источноевропско стандардно време", "ADT": "Атлантско летно сметање на времето", "VET": "Време во Венецуела", "HEOG": "Летно сметање на времето во Западен Гренланд", "WAT": "Западноафриканско стандардно време", "AKST": "Стандардно време во Аљаска", "HNT": "Стандардно време на Њуфаундленд", "LHST": "Стандардно време во Лорд Хау", "IST": "Време во Индија", "TMT": "Стандардно време во Туркменистан", "SGT": "Време во Сингапур", "PDT": "Пацифичко летно сметање на времето", "WEZ": "Западноевропско стандардно време", "WESZ": "Западноевропско летно време", "CHAST": "Стандардно време во Четем", "SRT": "Време во Суринам", "HNOG": "Стандардно време во Западен Гренланд", "CST": "Централно стандардно време во Северна Америка", "CDT": "Централно летно сметање на времето", "WITA": "Време во Централна Индонезија", "WARST": "Летно сметање на времето во западна Аргентина", "COST": "Летно сметање на времето во Колумбија", "GMT": "Средно време по Гринич", "UYT": "Стандардно време во Уругвај", "HAT": "Летно сметање на времето на Њуфаундленд", "HNPM": "Стандардно време на Сент Пјер и Микелан", "CLST": "Летно сметање на времето во Чиле", "OESZ": "Источноевропско летно време", "HENOMX": "Летно сметање на времето во северозападно Мексико", "PST": "Пацифичко стандардно време", "AEDT": "Летно сметање на времето во Источна Австралија", "HECU": "Летно сметање на времето во Куба", "BT": "Време во Бутан", "HKST": "Летно време во Хонг Конг", "HEPM": "Летно сметање на времето на Сент Пјер и Микелан", "MEZ": "Средноевропско стандардно време", "WAST": "Западноафриканско летно сметање на времето", "MST": "MST"},
++ timezones: map[string]string{"MYT": "Време во Малезија", "HNPM": "Стандардно време на Сент Пјер и Микелан", "MDT": "MDT", "ChST": "Време во Чаморо", "HNEG": "Стандардно време во Источен Гренланд", "IST": "Време во Индија", "GFT": "Време во Француска Гвајана", "MESZ": "Средноевропско летно време", "HEPM": "Летно сметање на времето на Сент Пјер и Микелан", "PST": "Пацифичко стандардно време", "HNCU": "Стандардно време во Куба", "OESZ": "Источноевропско летно време", "MST": "MST", "AST": "Атлантско стандардно време", "HADT": "Летно сметање на времето во Хаваи - Алеутски острови", "AWDT": "Летно сметање на времето во Западна Австралија", "UYST": "Летно сметање на времето во Уругвај", "ACWST": "Стандардно време во Централна и Западна Австралија", "TMST": "Летно време во Туркменистан", "WIB": "Време во Западна Индонезија", "HKST": "Летно време во Хонг Конг", "CLST": "Летно сметање на времето во Чиле", "NZDT": "Летно сметање на времето во Нов Зеланд", "ART": "Стандардно време во Аргентина", "BT": "Време во Бутан", "AEDT": "Летно сметање на времето во Источна Австралија", "OEZ": "Источноевропско стандардно време", "HNOG": "Стандардно време во Западен Гренланд", "WAST": "Западноафриканско летно сметање на времето", "LHDT": "Летно сметање на времето во Лорд Хау", "WESZ": "Западноевропско летно време", "HNPMX": "Стандардно тихоокеанско време во Мексико", "AKST": "Стандардно време во Аљаска", "GYT": "Време во Гвајана", "HAST": "Стандардно време во Хаваи - Алеутски острови", "COST": "Летно сметање на времето во Колумбија", "ARST": "Летно сметање на времето во Аргентина", "HNNOMX": "Стандардно време во северозападно Мексико", "LHST": "Стандардно време во Лорд Хау", "PDT": "Пацифичко летно сметање на времето", "WAT": "Западноафриканско стандардно време", "HAT": "Летно сметање на времето на Њуфаундленд", "WARST": "Летно сметање на времето во западна Аргентина", "ACST": "Стандардно време во Централна Австралија", "ACDT": "Летно сметање на времето во Централна Австралија", "JDT": "Летно сметање на времето во Јапонија", "HNT": "Стандардно време на Њуфаундленд", "ECT": "Време во Еквадор", "EAT": "Источноафриканско време", "JST": "Стандардно време во Јапонија", "VET": "Време во Венецуела", "HEPMX": "Летно тихоокеанско време во Мексико", "WITA": "Време во Централна Индонезија", "CDT": "Централно летно сметање на времето", "HENOMX": "Летно сметање на времето во северозападно Мексико", "UYT": "Стандардно време во Уругвај", "AEST": "Стандардно време во Источна Австралија", "CHAST": "Стандардно време во Четем", "CHADT": "Летно сметање на времето во Четем", "HECU": "Летно сметање на времето во Куба", "SAST": "Време во Јужноафриканска Република", "MEZ": "Средноевропско стандардно време", "WIT": "Време во Источна Индонезија", "SGT": "Време во Сингапур", "CST": "Централно стандардно време во Северна Америка", "SRT": "Време во Суринам", "WEZ": "Западноевропско стандардно време", "HKT": "Стандардно време во Хонг Конг", "CLT": "Стандардно време во Чиле", "ADT": "Атлантско летно сметање на времето", "ACWDT": "Летно сметање на времето во Централна и Западна Австралија", "WART": "Стандардно време во западна Аргентина", "NZST": "Стандардно време во Нов Зеланд", "AKDT": "Летно сметање на времето во Аљаска", "COT": "Стандардно време во Колумбија", "EDT": "Источно летно сметање на времето", "∅∅∅": "Летно сметање на времето во Бразилија", "CAT": "Средноафриканско време", "TMT": "Стандардно време во Туркменистан", "GMT": "Средно време по Гринич", "BOT": "Време во Боливија", "HEEG": "Летно сметање на времето во Источен Гренланд", "AWST": "Стандардно време во Западна Австралија", "HEOG": "Летно сметање на времето во Западен Гренланд", "EST": "Источно стандардно време"},
+ }
+ }
+ 
+diff --git a/mk_MK/mk_MK.go b/mk_MK/mk_MK.go
+index 1f3cefc..822e1a7 100644
+--- a/mk_MK/mk_MK.go
++++ b/mk_MK/mk_MK.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type mk_MK struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'mk_MK' locale
+ func New() locales.Translator {
+ return &mk_MK{
+- locale: "mk_MK",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 5, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "јан.", "фев.", "мар.", "апр.", "мај", "јун.", "јул.", "авг.", "септ.", "окт.", "ноем.", "дек."},
+- monthsNarrow: []string{"", "ј", "ф", "м", "а", "м", "ј", "ј", "а", "с", "о", "н", "д"},
+- monthsWide: []string{"", "јануари", "февруари", "март", "април", "мај", "јуни", "јули", "август", "септември", "октомври", "ноември", "декември"},
+- daysAbbreviated: []string{"нед.", "пон.", "вт.", "сре.", "чет.", "пет.", "саб."},
+- daysNarrow: []string{"н", "п", "в", "с", "ч", "п", "с"},
+- daysShort: []string{"нед.", "пон.", "вто.", "сре.", "чет.", "пет.", "саб."},
+- daysWide: []string{"недела", "понеделник", "вторник", "среда", "четврток", "петок", "сабота"},
+- periodsAbbreviated: []string{"претпл.", "попл."},
+- periodsNarrow: []string{"претпл.", "попл."},
+- periodsWide: []string{"претпладне", "попладне"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"пр.н.е.", "н.е."},
+- erasWide: []string{"пред нашата ера", "од нашата ера"},
+- timezones: map[string]string{"HNNOMX": "Стандардно време во северозападно Мексико", "UYST": "Летно сметање на времето во Уругвај", "LHST": "Стандардно време во Лорд Хау", "SAST": "Време во Јужноафриканска Република", "AWST": "Стандардно време во Западна Австралија", "NZST": "Стандардно време во Нов Зеланд", "CHAST": "Стандардно време во Четем", "MDT": "MDT", "UYT": "Стандардно време во Уругвај", "CST": "Централно стандардно време во Северна Америка", "WEZ": "Западноевропско стандардно време", "ACWST": "Стандардно време во Централна и Западна Австралија", "AWDT": "Летно сметање на времето во Западна Австралија", "HNPM": "Стандардно време на Сент Пјер и Микелан", "MESZ": "Средноевропско летно време", "IST": "Време во Индија", "HEOG": "Летно сметање на времето во Западен Гренланд", "CAT": "Средноафриканско време", "HECU": "Летно сметање на времето во Куба", "AKST": "Стандардно време во Аљаска", "ADT": "Атлантско летно сметање на времето", "ART": "Стандардно време во Аргентина", "MEZ": "Средноевропско стандардно време", "WIT": "Време во Источна Индонезија", "HEEG": "Летно сметање на времето во Источен Гренланд", "WIB": "Време во Западна Индонезија", "JDT": "Летно сметање на времето во Јапонија", "TMST": "Летно време во Туркменистан", "ACDT": "Летно сметање на времето во Централна Австралија", "COST": "Летно сметање на времето во Колумбија", "HEPMX": "Летно тихоокеанско време во Мексико", "CDT": "Централно летно сметање на времето", "VET": "Време во Венецуела", "LHDT": "Летно сметање на времето во Лорд Хау", "HNOG": "Стандардно време во Западен Гренланд", "CLST": "Летно сметање на времето во Чиле", "WART": "Стандардно време во западна Аргентина", "COT": "Стандардно време во Колумбија", "HENOMX": "Летно сметање на времето во северозападно Мексико", "BT": "Време во Бутан", "WESZ": "Западноевропско летно време", "MST": "MST", "SRT": "Време во Суринам", "GFT": "Време во Француска Гвајана", "WAST": "Западноафриканско летно сметање на времето", "OEZ": "Источноевропско стандардно време", "HNPMX": "Стандардно тихоокеанско време во Мексико", "MYT": "Време во Малезија", "HADT": "Летно сметање на времето во Хаваи - Алеутски острови", "HKST": "Летно време во Хонг Конг", "NZDT": "Летно сметање на времето во Нов Зеланд", "HAST": "Стандардно време во Хаваи - Алеутски острови", "AEST": "Стандардно време во Источна Австралија", "HEPM": "Летно сметање на времето на Сент Пјер и Микелан", "CLT": "Стандардно време во Чиле", "PST": "Пацифичко стандардно време", "WITA": "Време во Централна Индонезија", "ChST": "Време во Чаморо", "TMT": "Стандардно време во Туркменистан", "HKT": "Стандардно време во Хонг Конг", "HNEG": "Стандардно време во Источен Гренланд", "ACST": "Стандардно време во Централна Австралија", "GMT": "Средно време по Гринич", "HNCU": "Стандардно време во Куба", "∅∅∅": "Акре летно сметање на времето", "HNT": "Стандардно време на Њуфаундленд", "HAT": "Летно сметање на времето на Њуфаундленд", "AEDT": "Летно сметање на времето во Источна Австралија", "JST": "Стандардно време во Јапонија", "WAT": "Западноафриканско стандардно време", "WARST": "Летно сметање на времето во западна Аргентина", "EDT": "Источно летно сметање на времето", "AST": "Атлантско стандардно време", "PDT": "Пацифичко летно сметање на времето", "ARST": "Летно сметање на времето во Аргентина", "OESZ": "Источноевропско летно време", "CHADT": "Летно сметање на времето во Четем", "BOT": "Време во Боливија", "EAT": "Источноафриканско време", "SGT": "Време во Сингапур", "EST": "Источно стандардно време", "AKDT": "Летно сметање на времето во Аљаска", "GYT": "Време во Гвајана", "ACWDT": "Летно сметање на времето во Централна и Западна Австралија", "ECT": "Време во Еквадор"},
++ locale: "mk_MK",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 5, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AWST": "AWST", "LHST": "LHST", "PDT": "PDT", "HNCU": "HNCU", "COT": "COT", "WITA": "WITA", "CST": "CST", "HNEG": "HNEG", "HAST": "HAST", "GFT": "GFT", "WIT": "WIT", "COST": "COST", "MYT": "MYT", "WEZ": "WEZ", "OESZ": "OESZ", "TMST": "TMST", "GMT": "GMT", "BT": "BT", "ChST": "ChST", "CAT": "CAT", "CHAST": "CHAST", "GYT": "GYT", "CLST": "CLST", "ECT": "ECT", "MDT": "MDT", "HNNOMX": "HNNOMX", "HKT": "HKT", "ACWST": "ACWST", "WARST": "WARST", "NZST": "NZST", "CHADT": "CHADT", "AWDT": "AWDT", "WAST": "WAST", "JDT": "JDT", "AEST": "AEST", "IST": "IST", "PST": "PST", "WAT": "WAT", "HKST": "HKST", "NZDT": "NZDT", "SRT": "SRT", "ACDT": "ACDT", "HADT": "HADT", "HEPM": "HEPM", "JST": "JST", "SGT": "SGT", "HNT": "HNT", "CLT": "CLT", "AST": "AST", "EAT": "EAT", "MEZ": "MEZ", "UYT": "UYT", "UYST": "UYST", "∅∅∅": "∅∅∅", "AKST": "AKST", "WART": "WART", "HEOG": "HEOG", "SAST": "SAST", "LHDT": "LHDT", "AKDT": "AKDT", "OEZ": "OEZ", "ART": "ART", "ADT": "ADT", "HENOMX": "HENOMX", "AEDT": "AEDT", "WESZ": "WESZ", "EDT": "EDT", "CDT": "CDT", "MESZ": "MESZ", "VET": "VET", "HNOG": "HNOG", "EST": "EST", "BOT": "BOT", "ACWDT": "ACWDT", "MST": "MST", "ARST": "ARST", "HEPMX": "HEPMX", "HEEG": "HEEG", "HNPM": "HNPM", "HECU": "HECU", "HNPMX": "HNPMX", "HAT": "HAT", "TMT": "TMT", "WIB": "WIB", "ACST": "ACST"},
+ }
+ }
+ 
+@@ -142,7 +119,7 @@ func (mk *mk_MK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (mk *mk_MK) MonthsAbbreviated() []string {
+- return mk.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -152,7 +129,7 @@ func (mk *mk_MK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (mk *mk_MK) MonthsNarrow() []string {
+- return mk.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -162,7 +139,7 @@ func (mk *mk_MK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (mk *mk_MK) MonthsWide() []string {
+- return mk.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -208,73 +185,13 @@ func (mk *mk_MK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'mk_MK' and handles both Whole and Real numbers based on 'v'
+ func (mk *mk_MK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mk.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mk.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, mk.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'mk_MK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (mk *mk_MK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mk.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, mk.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, mk.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'mk_MK'
+@@ -282,56 +199,7 @@ func (mk *mk_MK) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mk.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mk.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mk.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, mk.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mk.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, mk.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'mk_MK'
+@@ -340,63 +208,7 @@ func (mk *mk_MK) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mk.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mk.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mk.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, mk.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mk.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, mk.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, mk.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'mk_MK'
+@@ -404,21 +216,6 @@ func (mk *mk_MK) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -427,21 +224,6 @@ func (mk *mk_MK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -450,21 +232,6 @@ func (mk *mk_MK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mk.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -473,24 +240,6 @@ func (mk *mk_MK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, mk.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mk.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -499,19 +248,6 @@ func (mk *mk_MK) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -520,26 +256,6 @@ func (mk *mk_MK) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -548,30 +264,6 @@ func (mk *mk_MK) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -580,34 +272,5 @@ func (mk *mk_MK) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := mk.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ml/ml.go b/ml/ml.go
+index 2fc5d94..ae11619 100644
+--- a/ml/ml.go
++++ b/ml/ml.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ക്രി.മു.", "എഡി"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"ക്രിസ്\u200cതുവിന് മുമ്പ്", "ആന്നോ ഡൊമിനി"},
+- timezones: map[string]string{"ECT": "ഇക്വഡോർ സമയം", "WART": "പടിഞ്ഞാറൻ അർജന്റീന സ്റ്റാൻഡേർഡ് സമയം", "HNT": "ന്യൂഫൗണ്ട്\u200cലാന്റ് സ്റ്റാൻഡേർഡ് സമയം", "HAT": "ന്യൂഫൗണ്ട്\u200cലാന്റ് ഡേലൈറ്റ് സമയം", "AEDT": "ഓസ്\u200cട്രേലിയൻ കിഴക്കൻ ഡേലൈറ്റ് സമയം", "WITA": "മധ്യ ഇന്തോനേഷ്യ സമയം", "NZDT": "ന്യൂസിലാൻഡ് ഡേലൈറ്റ് സമയം", "∅∅∅": "ആമസോൺ ഗ്രീഷ്\u200cമകാല സമയം", "UYST": "ഉറുഗ്വേ ഗ്രീഷ്\u200cമകാല സമയം", "GYT": "ഗയാന സമയം", "AEST": "ഓസ്\u200cട്രേലിയൻ കിഴക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "IST": "ഇന്ത്യൻ സ്റ്റാൻഡേർഡ് സമയം", "CLST": "ചിലി ഗ്രീഷ്\u200cമകാല സമയം", "HECU": "ക്യൂബ ഡേലൈറ്റ് സമയം", "MYT": "മലേഷ്യ സമയം", "ADT": "അറ്റ്\u200cലാന്റിക് ഡേലൈറ്റ് സമയം", "HADT": "ഹവായ്-അലൂഷ്യൻ ഡേലൈറ്റ് സമയം", "CAT": "മധ്യ ആഫ്രിക്ക സമയം", "WAST": "പടിഞ്ഞാറൻ ആഫ്രിക്ക ഗ്രീഷ്\u200cമകാല സമയം", "HNCU": "ക്യൂബ സ്റ്റാൻഡേർഡ് സമയം", "MDT": "വടക്കെ അമേരിക്കൻ മൗണ്ടൻ ഡേലൈറ്റ് സമയം", "ACWST": "ഓസ്ട്രേലിയൻ സെൻട്രൽ പടിഞ്ഞാറൻ സ്റ്റാൻഡേർഡ് സമയം", "MEZ": "സെൻട്രൽ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "BOT": "ബൊളീവിയ സമയം", "OEZ": "കിഴക്കൻ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "SGT": "സിംഗപ്പൂർ സ്റ്റാൻഡേർഡ് സമയം", "EST": "വടക്കെ അമേരിക്കൻ കിഴക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "WIB": "പടിഞ്ഞാറൻ ഇന്തോനേഷ്യ സമയം", "WESZ": "പടിഞ്ഞാറൻ യൂറോപ്യൻ ഗ്രീഷ്\u200cമകാല സമയം", "TMT": "തുർക്ക്\u200cമെനിസ്ഥാൻ സ്റ്റാൻഡേർഡ് സമയം", "COST": "കൊളംബിയ ഗ്രീഷ്\u200cമകാല സമയം", "GMT": "ഗ്രീൻവിച്ച് മീൻ സമയം", "MST": "വടക്കെ അമേരിക്കൻ മൗണ്ടൻ സ്റ്റാൻഡേർഡ് സമയം", "ACST": "ഓസ്ട്രേലിയൻ സെൻട്രൽ സ്റ്റാൻഡേർഡ് സമയം", "COT": "കൊളംബിയ സ്റ്റാൻഡേർഡ് സമയം", "HAST": "ഹവായ്-അലൂഷ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "SAST": "ദക്ഷിണാഫ്രിക്ക സ്റ്റാൻഡേർഡ് സമയം", "ChST": "ചമോറോ സ്റ്റാൻഡേർഡ് സമയം", "HNPMX": "മെക്\u200cസിക്കൻ പസഫിക് സ്റ്റാൻഡേർഡ് സമയം", "PDT": "വടക്കെ അമേരിക്കൻ പസഫിക് ഡേലൈറ്റ് സമയം", "AWST": "ഓസ്\u200cട്രേലിയൻ പടിഞ്ഞാറൻ സ്റ്റാൻഡേർഡ് സമയം", "AWDT": "ഓസ്\u200cട്രേലിയൻ പടിഞ്ഞാറൻ ഡേലൈറ്റ് സമയം", "HEPM": "സെന്റ് പിയറി ആൻഡ് മിക്വലൻ ഡേലൈറ്റ് സമയം", "CLT": "ചിലി സ്റ്റാൻഡേർഡ് സമയം", "HEEG": "കിഴക്കൻ ഗ്രീൻലാൻഡ് ഗ്രീഷ്\u200cമകാല സമയം", "MESZ": "സെൻട്രൽ യൂറോപ്യൻ ഗ്രീഷ്മകാല സമയം", "CHADT": "ചാത്തം ഗ്രീഷ്\u200cമകാല സമയം", "HNEG": "കിഴക്കൻ ഗ്രീൻലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "WARST": "പടിഞ്ഞാറൻ അർജന്റീന ഗ്രീഷ്\u200cമകാല സമയം", "WEZ": "പടിഞ്ഞാറൻ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "ACWDT": "ഓസ്ട്രേലിയൻ സെൻട്രൽ പടിഞ്ഞാറൻ ഡേലൈറ്റ് സമയം", "HNOG": "പടിഞ്ഞാറൻ ഗ്രീൻലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "TMST": "തുർക്ക്\u200cമെനിസ്ഥാൻ ഗ്രീഷ്\u200cമകാല സമയം", "HENOMX": "വടക്കുപടിഞ്ഞാറൻ മെക്സിക്കൻ ഡേലൈറ്റ് സമയം", "AKST": "അലാസ്ക സ്റ്റാൻഡേർഡ് സമയം", "HKST": "ഹോങ്കോങ്ങ് ഗ്രീഷ്\u200cമകാല സമയം", "JST": "ജപ്പാൻ സ്റ്റാൻഡേർഡ് സമയം", "OESZ": "കിഴക്കൻ യൂറോപ്യൻ ഗ്രീഷ്മകാല സമയം", "EDT": "വടക്കെ അമേരിക്കൻ കിഴക്കൻ ഡേലൈറ്റ് സമയം", "LHST": "ലോർഡ് ഹോവ് സ്റ്റാൻഡേർഡ് സമയം", "LHDT": "ലോർഡ് ഹോവ് ഡേലൈറ്റ് സമയം", "WAT": "പടിഞ്ഞാറൻ ആഫ്രിക്ക സ്റ്റാൻഡേർഡ് സമയം", "UYT": "ഉറുഗ്വേ സ്റ്റാൻഡേർഡ് സമയം", "CST": "വടക്കെ അമേരിക്കൻ സെൻട്രൽ സ്റ്റാൻഡേർഡ് സമയം", "AST": "അറ്റ്\u200cലാന്റിക് സ്റ്റാൻഡേർഡ് സമയം", "ART": "അർജന്റീന സ്റ്റാൻഡേർഡ് സമയം", "HKT": "ഹോങ്കോങ്ങ് സ്റ്റാൻഡേർഡ് സമയം", "WIT": "കിഴക്കൻ ഇന്തോനേഷ്യ സമയം", "ARST": "അർജന്റീന ഗ്രീഷ്\u200cമകാല സമയം", "GFT": "ഫ്രഞ്ച് ഗയാന സമയം", "ACDT": "ഓസ്ട്രേലിയൻ സെൻട്രൽ ഡേലൈറ്റ് സമയം", "EAT": "കിഴക്കൻ ആഫ്രിക്ക സമയം", "JDT": "ജപ്പാൻ ഡേലൈറ്റ് സമയം", "HNNOMX": "വടക്കുപടിഞ്ഞാറൻ മെക്\u200cസിക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "AKDT": "അലാസ്\u200cക ഡേലൈറ്റ് സമയം", "CDT": "വടക്കെ അമേരിക്കൻ സെൻട്രൽ ഡേലൈറ്റ് സമയം", "BT": "ഭൂട്ടാൻ സമയം", "PST": "വടക്കെ അമേരിക്കൻ പസഫിക് സ്റ്റാൻഡേർഡ് സമയം", "NZST": "ന്യൂസിലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "HEPMX": "മെക്സിക്കൻ പസഫിക് ഡേലൈറ്റ് സമയം", "VET": "വെനിസ്വേല സമയം", "SRT": "സുരിനെയിം സമയം", "HEOG": "പടിഞ്ഞാറൻ ഗ്രീൻലാൻഡ് ഗ്രീഷ്\u200cമകാല സമയം", "HNPM": "സെന്റ് പിയറി ആൻഡ് മിക്വലൻ സ്റ്റാൻഡേർഡ് സമയം", "CHAST": "ചാത്തം സ്റ്റാൻഡേർഡ് സമയം"},
++ timezones: map[string]string{"IST": "ഇന്ത്യൻ സ്റ്റാൻഡേർഡ് സമയം", "HECU": "ക്യൂബ ഡേലൈറ്റ് സമയം", "GYT": "ഗയാന സമയം", "WITA": "മധ്യ ഇന്തോനേഷ്യ സമയം", "ChST": "ചമോറോ സ്റ്റാൻഡേർഡ് സമയം", "ARST": "അർജന്റീന ഗ്രീഷ്\u200cമകാല സമയം", "HADT": "ഹവായ്-അലൂഷ്യൻ ഡേലൈറ്റ് സമയം", "CHAST": "ചാത്തം സ്റ്റാൻഡേർഡ് സമയം", "AKDT": "അലാസ്\u200cക ഡേലൈറ്റ് സമയം", "AEST": "ഓസ്\u200cട്രേലിയൻ കിഴക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "VET": "വെനിസ്വേല സമയം", "EDT": "വടക്കെ അമേരിക്കൻ കിഴക്കൻ ഡേലൈറ്റ് സമയം", "TMT": "തുർക്ക്\u200cമെനിസ്ഥാൻ സ്റ്റാൻഡേർഡ് സമയം", "CDT": "വടക്കെ അമേരിക്കൻ സെൻട്രൽ ഡേലൈറ്റ് സമയം", "BOT": "ബൊളീവിയ സമയം", "HENOMX": "വടക്കുപടിഞ്ഞാറൻ മെക്സിക്കൻ ഡേലൈറ്റ് സമയം", "HNPM": "സെന്റ് പിയറി ആൻഡ് മിക്വലൻ സ്റ്റാൻഡേർഡ് സമയം", "HNT": "ന്യൂഫൗണ്ട്\u200cലാന്റ് സ്റ്റാൻഡേർഡ് സമയം", "WARST": "പടിഞ്ഞാറൻ അർജന്റീന ഗ്രീഷ്\u200cമകാല സമയം", "WIB": "പടിഞ്ഞാറൻ ഇന്തോനേഷ്യ സമയം", "WAST": "പടിഞ്ഞാറൻ ആഫ്രിക്ക ഗ്രീഷ്\u200cമകാല സമയം", "AKST": "അലാസ്ക സ്റ്റാൻഡേർഡ് സമയം", "ACST": "ഓസ്ട്രേലിയൻ സെൻട്രൽ സ്റ്റാൻഡേർഡ് സമയം", "HNEG": "കിഴക്കൻ ഗ്രീൻലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "MDT": "മകൌ വേനൽക്കാല സമയം", "NZDT": "ന്യൂസിലാൻഡ് ഡേലൈറ്റ് സമയം", "HAST": "ഹവായ്-അലൂഷ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "PST": "വടക്കെ അമേരിക്കൻ പസഫിക് സ്റ്റാൻഡേർഡ് സമയം", "OEZ": "കിഴക്കൻ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "WIT": "കിഴക്കൻ ഇന്തോനേഷ്യ സമയം", "HNOG": "പടിഞ്ഞാറൻ ഗ്രീൻലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "HKT": "ഹോങ്കോങ്ങ് സ്റ്റാൻഡേർഡ് സമയം", "ADT": "അറ്റ്\u200cലാന്റിക് ഡേലൈറ്റ് സമയം", "ACDT": "ഓസ്ട്രേലിയൻ സെൻട്രൽ ഡേലൈറ്റ് സമയം", "LHDT": "ലോർഡ് ഹോവ് ഡേലൈറ്റ് സമയം", "JDT": "ജപ്പാൻ ഡേലൈറ്റ് സമയം", "SGT": "സിംഗപ്പൂർ സ്റ്റാൻഡേർഡ് സമയം", "ACWST": "ഓസ്ട്രേലിയൻ സെൻട്രൽ പടിഞ്ഞാറൻ സ്റ്റാൻഡേർഡ് സമയം", "WAT": "പടിഞ്ഞാറൻ ആഫ്രിക്ക സ്റ്റാൻഡേർഡ് സമയം", "CLT": "ചിലി സ്റ്റാൻഡേർഡ് സമയം", "MST": "മകൌ സ്റ്റാൻഡേർഡ് സമയം", "GMT": "ഗ്രീൻവിച്ച് മീൻ സമയം", "ART": "അർജന്റീന സ്റ്റാൻഡേർഡ് സമയം", "SRT": "സുരിനെയിം സമയം", "AWST": "ഓസ്\u200cട്രേലിയൻ പടിഞ്ഞാറൻ സ്റ്റാൻഡേർഡ് സമയം", "∅∅∅": "അസോർസ് ഗ്രീഷ്\u200cമകാല സമയം", "AST": "അറ്റ്\u200cലാന്റിക് സ്റ്റാൻഡേർഡ് സമയം", "AEDT": "ഓസ്\u200cട്രേലിയൻ കിഴക്കൻ ഡേലൈറ്റ് സമയം", "HNPMX": "മെക്\u200cസിക്കൻ പസഫിക് സ്റ്റാൻഡേർഡ് സമയം", "GFT": "ഫ്രഞ്ച് ഗയാന സമയം", "COST": "കൊളംബിയ ഗ്രീഷ്\u200cമകാല സമയം", "UYT": "ഉറുഗ്വേ സ്റ്റാൻഡേർഡ് സമയം", "WEZ": "പടിഞ്ഞാറൻ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "TMST": "തുർക്ക്\u200cമെനിസ്ഥാൻ ഗ്രീഷ്\u200cമകാല സമയം", "ECT": "ഇക്വഡോർ സമയം", "MEZ": "സെൻട്രൽ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "LHST": "ലോർഡ് ഹോവ് സ്റ്റാൻഡേർഡ് സമയം", "MYT": "മലേഷ്യ സമയം", "CHADT": "ചാത്തം ഗ്രീഷ്\u200cമകാല സമയം", "WESZ": "പടിഞ്ഞാറൻ യൂറോപ്യൻ ഗ്രീഷ്\u200cമകാല സമയം", "OESZ": "കിഴക്കൻ യൂറോപ്യൻ ഗ്രീഷ്മകാല സമയം", "SAST": "ദക്ഷിണാഫ്രിക്ക സ്റ്റാൻഡേർഡ് സമയം", "CLST": "ചിലി ഗ്രീഷ്\u200cമകാല സമയം", "MESZ": "സെൻട്രൽ യൂറോപ്യൻ ഗ്രീഷ്മകാല സമയം", "HEPM": "സെന്റ് പിയറി ആൻഡ് മിക്വലൻ ഡേലൈറ്റ് സമയം", "ACWDT": "ഓസ്ട്രേലിയൻ സെൻട്രൽ പടിഞ്ഞാറൻ ഡേലൈറ്റ് സമയം", "HNCU": "ക്യൂബ സ്റ്റാൻഡേർഡ് സമയം", "HEPMX": "മെക്സിക്കൻ പസഫിക് ഡേലൈറ്റ് സമയം", "AWDT": "ഓസ്\u200cട്രേലിയൻ പടിഞ്ഞാറൻ ഡേലൈറ്റ് സമയം", "CAT": "മധ്യ ആഫ്രിക്ക സമയം", "JST": "ജപ്പാൻ സ്റ്റാൻഡേർഡ് സമയം", "UYST": "ഉറുഗ്വേ ഗ്രീഷ്\u200cമകാല സമയം", "EAT": "കിഴക്കൻ ആഫ്രിക്ക സമയം", "HAT": "ന്യൂഫൗണ്ട്\u200cലാന്റ് ഡേലൈറ്റ് സമയം", "PDT": "വടക്കെ അമേരിക്കൻ പസഫിക് ഡേലൈറ്റ് സമയം", "BT": "ഭൂട്ടാൻ സമയം", "WART": "പടിഞ്ഞാറൻ അർജന്റീന സ്റ്റാൻഡേർഡ് സമയം", "COT": "കൊളംബിയ സ്റ്റാൻഡേർഡ് സമയം", "HEOG": "പടിഞ്ഞാറൻ ഗ്രീൻലാൻഡ് ഗ്രീഷ്\u200cമകാല സമയം", "EST": "വടക്കെ അമേരിക്കൻ കിഴക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "HKST": "ഹോങ്കോങ്ങ് ഗ്രീഷ്\u200cമകാല സമയം", "CST": "വടക്കെ അമേരിക്കൻ സെൻട്രൽ സ്റ്റാൻഡേർഡ് സമയം", "NZST": "ന്യൂസിലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "HEEG": "കിഴക്കൻ ഗ്രീൻലാൻഡ് ഗ്രീഷ്\u200cമകാല സമയം", "HNNOMX": "വടക്കുപടിഞ്ഞാറൻ മെക്\u200cസിക്കൻ സ്റ്റാൻഡേർഡ് സമയം"},
+ }
+ }
+ 
+diff --git a/ml_IN/ml_IN.go b/ml_IN/ml_IN.go
+index 0d4f512..cf428d0 100644
+--- a/ml_IN/ml_IN.go
++++ b/ml_IN/ml_IN.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ml_IN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ml_IN' locale
+ func New() locales.Translator {
+ return &ml_IN{
+- locale: "ml_IN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "ജനു", "ഫെബ്രു", "മാർ", "ഏപ്രി", "മേയ്", "ജൂൺ", "ജൂലൈ", "ഓഗ", "സെപ്റ്റം", "ഒക്ടോ", "നവം", "ഡിസം"},
+- monthsNarrow: []string{"", "ജ", "ഫ", "മാ", "ഏ", "മെ", "ജൂൺ", "ജൂ", "ഓ", "സെ", "ഒ", "ന", "ഡി"},
+- monthsWide: []string{"", "ജനുവരി", "ഫെബ്രുവരി", "മാർച്ച്", "ഏപ്രിൽ", "മേയ്", "ജൂൺ", "ജൂലൈ", "ഓഗസ്റ്റ്", "സെപ്റ്റംബർ", "ഒക്\u200cടോബർ", "നവംബർ", "ഡിസംബർ"},
+- daysAbbreviated: []string{"ഞായർ", "തിങ്കൾ", "ചൊവ്വ", "ബുധൻ", "വ്യാഴം", "വെള്ളി", "ശനി"},
+- daysNarrow: []string{"ഞ", "തി", "ചൊ", "ബു", "വ്യാ", "വെ", "ശ"},
+- daysShort: []string{"ഞാ", "തി", "ചൊ", "ബു", "വ്യാ", "വെ", "ശ"},
+- daysWide: []string{"ഞായറാഴ്\u200cച", "തിങ്കളാഴ്\u200cച", "ചൊവ്വാഴ്ച", "ബുധനാഴ്\u200cച", "വ്യാഴാഴ്\u200cച", "വെള്ളിയാഴ്\u200cച", "ശനിയാഴ്\u200cച"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"ക്രി.മു.", "എഡി"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ക്രിസ്\u200cതുവിന് മുമ്പ്", "ആന്നോ ഡൊമിനി"},
+- timezones: map[string]string{"AWDT": "ഓസ്\u200cട്രേലിയൻ പടിഞ്ഞാറൻ ഡേലൈറ്റ് സമയം", "ECT": "ഇക്വഡോർ സമയം", "COT": "കൊളംബിയ സ്റ്റാൻഡേർഡ് സമയം", "UYT": "ഉറുഗ്വേ സ്റ്റാൻഡേർഡ് സമയം", "AKST": "അലാസ്ക സ്റ്റാൻഡേർഡ് സമയം", "LHST": "ലോർഡ് ഹോവ് സ്റ്റാൻഡേർഡ് സമയം", "HEEG": "കിഴക്കൻ ഗ്രീൻലാൻഡ് ഗ്രീഷ്\u200cമകാല സമയം", "ACDT": "ഓസ്ട്രേലിയൻ സെൻട്രൽ ഡേലൈറ്റ് സമയം", "HNPMX": "മെക്\u200cസിക്കൻ പസഫിക് സ്റ്റാൻഡേർഡ് സമയം", "UYST": "ഉറുഗ്വേ ഗ്രീഷ്\u200cമകാല സമയം", "HADT": "ഹവായ്-അലൂഷ്യൻ ഡേലൈറ്റ് സമയം", "BT": "ഭൂട്ടാൻ സമയം", "ACWDT": "ഓസ്ട്രേലിയൻ സെൻട്രൽ പടിഞ്ഞാറൻ ഡേലൈറ്റ് സമയം", "GFT": "ഫ്രഞ്ച് ഗയാന സമയം", "TMT": "തുർക്ക്\u200cമെനിസ്ഥാൻ സ്റ്റാൻഡേർഡ് സമയം", "BOT": "ബൊളീവിയ സമയം", "WAT": "പടിഞ്ഞാറൻ ആഫ്രിക്ക സ്റ്റാൻഡേർഡ് സമയം", "SRT": "സുരിനെയിം സമയം", "ARST": "അർജന്റീന ഗ്രീഷ്\u200cമകാല സമയം", "PDT": "വടക്കെ അമേരിക്കൻ പസഫിക് ഡേലൈറ്റ് സമയം", "CHADT": "ചാത്തം ഗ്രീഷ്\u200cമകാല സമയം", "SAST": "ദക്ഷിണാഫ്രിക്ക സ്റ്റാൻഡേർഡ് സമയം", "HNCU": "ക്യൂബ സ്റ്റാൻഡേർഡ് സമയം", "MST": "മകൌ സ്റ്റാൻഡേർഡ് സമയം", "MYT": "മലേഷ്യ സമയം", "HAST": "ഹവായ്-അലൂഷ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "WIT": "കിഴക്കൻ ഇന്തോനേഷ്യ സമയം", "LHDT": "ലോർഡ് ഹോവ് ഡേലൈറ്റ് സമയം", "∅∅∅": "ആമസോൺ ഗ്രീഷ്\u200cമകാല സമയം", "CAT": "മധ്യ ആഫ്രിക്ക സമയം", "ACWST": "ഓസ്ട്രേലിയൻ സെൻട്രൽ പടിഞ്ഞാറൻ സ്റ്റാൻഡേർഡ് സമയം", "HNPM": "സെന്റ് പിയറി ആൻഡ് മിക്വലൻ സ്റ്റാൻഡേർഡ് സമയം", "CHAST": "ചാത്തം സ്റ്റാൻഡേർഡ് സമയം", "COST": "കൊളംബിയ ഗ്രീഷ്\u200cമകാല സമയം", "CDT": "വടക്കെ അമേരിക്കൻ സെൻട്രൽ ഡേലൈറ്റ് സമയം", "MESZ": "സെൻട്രൽ യൂറോപ്യൻ ഗ്രീഷ്മകാല സമയം", "JST": "ജപ്പാൻ സ്റ്റാൻഡേർഡ് സമയം", "ChST": "ചമോറോ സ്റ്റാൻഡേർഡ് സമയം", "EAT": "കിഴക്കൻ ആഫ്രിക്ക സമയം", "MDT": "മകൌ വേനൽക്കാല സമയം", "AST": "അറ്റ്\u200cലാന്റിക് സ്റ്റാൻഡേർഡ് സമയം", "PST": "വടക്കെ അമേരിക്കൻ പസഫിക് സ്റ്റാൻഡേർഡ് സമയം", "EST": "വടക്കെ അമേരിക്കൻ കിഴക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "AKDT": "അലാസ്\u200cക ഡേലൈറ്റ് സമയം", "HNT": "ന്യൂഫൗണ്ട്\u200cലാന്റ് സ്റ്റാൻഡേർഡ് സമയം", "HNOG": "പടിഞ്ഞാറൻ ഗ്രീൻലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "WITA": "മധ്യ ഇന്തോനേഷ്യ സമയം", "IST": "ഇന്ത്യൻ സ്റ്റാൻഡേർഡ് സമയം", "WARST": "പടിഞ്ഞാറൻ അർജന്റീന ഗ്രീഷ്\u200cമകാല സമയം", "HECU": "ക്യൂബ ഡേലൈറ്റ് സമയം", "NZST": "ന്യൂസിലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "NZDT": "ന്യൂസിലാൻഡ് ഡേലൈറ്റ് സമയം", "TMST": "തുർക്ക്\u200cമെനിസ്ഥാൻ ഗ്രീഷ്\u200cമകാല സമയം", "HNEG": "കിഴക്കൻ ഗ്രീൻലാൻഡ് സ്റ്റാൻഡേർഡ് സമയം", "HENOMX": "വടക്കുപടിഞ്ഞാറൻ മെക്സിക്കൻ ഡേലൈറ്റ് സമയം", "EDT": "വടക്കെ അമേരിക്കൻ കിഴക്കൻ ഡേലൈറ്റ് സമയം", "VET": "വെനിസ്വേല സമയം", "HAT": "ന്യൂഫൗണ്ട്\u200cലാന്റ് ഡേലൈറ്റ് സമയം", "HEOG": "പടിഞ്ഞാറൻ ഗ്രീൻലാൻഡ് ഗ്രീഷ്\u200cമകാല സമയം", "HNNOMX": "വടക്കുപടിഞ്ഞാറൻ മെക്\u200cസിക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "ADT": "അറ്റ്\u200cലാന്റിക് ഡേലൈറ്റ് സമയം", "WESZ": "പടിഞ്ഞാറൻ യൂറോപ്യൻ ഗ്രീഷ്\u200cമകാല സമയം", "MEZ": "സെൻട്രൽ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "CLT": "ചിലി സ്റ്റാൻഡേർഡ് സമയം", "CLST": "ചിലി ഗ്രീഷ്\u200cമകാല സമയം", "OESZ": "കിഴക്കൻ യൂറോപ്യൻ ഗ്രീഷ്മകാല സമയം", "WART": "പടിഞ്ഞാറൻ അർജന്റീന സ്റ്റാൻഡേർഡ് സമയം", "WEZ": "പടിഞ്ഞാറൻ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "AEDT": "ഓസ്\u200cട്രേലിയൻ കിഴക്കൻ ഡേലൈറ്റ് സമയം", "HEPM": "സെന്റ് പിയറി ആൻഡ് മിക്വലൻ ഡേലൈറ്റ് സമയം", "JDT": "ജപ്പാൻ ഡേലൈറ്റ് സമയം", "ACST": "ഓസ്ട്രേലിയൻ സെൻട്രൽ സ്റ്റാൻഡേർഡ് സമയം", "GMT": "ഗ്രീൻവിച്ച് മീൻ സമയം", "ART": "അർജന്റീന സ്റ്റാൻഡേർഡ് സമയം", "HKT": "ഹോങ്കോങ്ങ് സ്റ്റാൻഡേർഡ് സമയം", "HKST": "ഹോങ്കോങ്ങ് ഗ്രീഷ്\u200cമകാല സമയം", "AEST": "ഓസ്\u200cട്രേലിയൻ കിഴക്കൻ സ്റ്റാൻഡേർഡ് സമയം", "OEZ": "കിഴക്കൻ യൂറോപ്യൻ സ്റ്റാൻഡേർഡ് സമയം", "GYT": "ഗയാന സമയം", "AWST": "ഓസ്\u200cട്രേലിയൻ പടിഞ്ഞാറൻ സ്റ്റാൻഡേർഡ് സമയം", "WAST": "പടിഞ്ഞാറൻ ആഫ്രിക്ക ഗ്രീഷ്\u200cമകാല സമയം", "SGT": "സിംഗപ്പൂർ സ്റ്റാൻഡേർഡ് സമയം", "HEPMX": "മെക്സിക്കൻ പസഫിക് ഡേലൈറ്റ് സമയം", "CST": "വടക്കെ അമേരിക്കൻ സെൻട്രൽ സ്റ്റാൻഡേർഡ് സമയം", "WIB": "പടിഞ്ഞാറൻ ഇന്തോനേഷ്യ സമയം"},
++ locale: "ml_IN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEOG": "HEOG", "NZST": "NZST", "ECT": "ECT", "ART": "ART", "ACST": "ACST", "HEPM": "HEPM", "HECU": "HECU", "HAT": "HAT", "BOT": "BOT", "JDT": "JDT", "OEZ": "OEZ", "HKST": "HKST", "CLT": "CLT", "EAT": "EAT", "AWST": "AWST", "UYT": "UYT", "AKDT": "AKDT", "HNT": "HNT", "WART": "WART", "COT": "COT", "CST": "CST", "HEEG": "HEEG", "JST": "JST", "AEDT": "AEDT", "WIT": "WIT", "EDT": "EDT", "AST": "AST", "LHDT": "LHDT", "MYT": "MYT", "ACDT": "ACDT", "HENOMX": "HENOMX", "BT": "BT", "TMT": "TMT", "WITA": "WITA", "HNPM": "HNPM", "HNPMX": "HNPMX", "WAT": "WAT", "OESZ": "OESZ", "GFT": "GFT", "HNOG": "HNOG", "MST": "MST", "ADT": "ADT", "LHST": "LHST", "CHADT": "CHADT", "WESZ": "WESZ", "TMST": "TMST", "SAST": "SAST", "CDT": "CDT", "WIB": "WIB", "ChST": "ChST", "ARST": "ARST", "PDT": "PDT", "WEZ": "WEZ", "WARST": "WARST", "SRT": "SRT", "MEZ": "MEZ", "ACWST": "ACWST", "ACWDT": "ACWDT", "GYT": "GYT", "NZDT": "NZDT", "HAST": "HAST", "VET": "VET", "HKT": "HKT", "∅∅∅": "∅∅∅", "IST": "IST", "COST": "COST", "MDT": "MDT", "HNCU": "HNCU", "HEPMX": "HEPMX", "CAT": "CAT", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "AEST": "AEST", "CHAST": "CHAST", "WAST": "WAST", "AKST": "AKST", "EST": "EST", "AWDT": "AWDT", "UYST": "UYST", "GMT": "GMT", "HADT": "HADT", "HNEG": "HNEG", "PST": "PST", "SGT": "SGT", "CLST": "CLST"},
+ }
+ }
+ 
+@@ -135,7 +112,7 @@ func (ml *ml_IN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ml *ml_IN) MonthsAbbreviated() []string {
+- return ml.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -145,7 +122,7 @@ func (ml *ml_IN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ml *ml_IN) MonthsNarrow() []string {
+- return ml.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -155,7 +132,7 @@ func (ml *ml_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ml *ml_IN) MonthsWide() []string {
+- return ml.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -201,82 +178,13 @@ func (ml *ml_IN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ml_IN' and handles both Whole and Real numbers based on 'v'
+ func (ml *ml_IN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ml.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, ml.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ml.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ml_IN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ml *ml_IN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ml.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ml.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ml.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ml_IN'
+@@ -284,56 +192,7 @@ func (ml *ml_IN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ml.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ml.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ml.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ml.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ml.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ml_IN'
+@@ -342,68 +201,7 @@ func (ml *ml_IN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ml.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ml.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ml.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ml.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ml.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ml.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ml_IN'
+@@ -411,17 +209,6 @@ func (ml *ml_IN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -430,17 +217,6 @@ func (ml *ml_IN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, ml.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -449,17 +225,6 @@ func (ml *ml_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, ml.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -468,19 +233,6 @@ func (ml *ml_IN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, ml.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, ml.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -489,28 +241,6 @@ func (ml *ml_IN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ml.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ml.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ml.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -519,35 +249,6 @@ func (ml *ml_IN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ml.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ml.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ml.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ml.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -556,40 +257,6 @@ func (ml *ml_IN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ml.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ml.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ml.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ml.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -598,44 +265,5 @@ func (ml *ml_IN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ml.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ml.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ml.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ml.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ml.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/mn/mn.go b/mn/mn.go
+index 9016241..11fbbc8 100644
+--- a/mn/mn.go
++++ b/mn/mn.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"м.э.ө", "м.э."},
+ erasNarrow: []string{"МЭӨ", "МЭ"},
+ erasWide: []string{"манай эриний өмнөх", "манай эриний"},
+- timezones: map[string]string{"HAT": "Нью-Фаундлендын зуны цаг", "HNCU": "Кубын стандарт цаг", "EDT": "Зүүн эргийн зуны цаг", "UYT": "Уругвайн стандарт цаг", "AKST": "Аляскийн стандарт цаг", "WIB": "Баруун Индонезийн цаг", "SRT": "Суринамын цаг", "HKST": "Хонг Конгийн зуны цаг", "CLT": "Чилийн стандарт цаг", "CLST": "Чилийн зуны цаг", "HEPMX": "Мексикийн номхон далайн зуны цаг", "AST": "Атлантын стандарт цаг", "HEOG": "Баруун Гринландын зуны цаг", "AEDT": "Австралийн зүүн эргийн зуны цаг", "ACDT": "Төв Австралийн зуны цаг", "OESZ": "Зүүн Европын зуны цаг", "WART": "Баруун Аргентины стандарт цаг", "HNPMX": "Мексикийн номхон далайн стандарт цаг", "MYT": "Малайзын цаг", "HEEG": "Зүүн Гринландын зуны цаг", "ART": "Аргентины стандарт цаг", "ACWST": "Австралийн төв баруун эргийн стандарт цаг", "HEPM": "Сент-Пьер ба Микелоны зуны цаг", "ADT": "Атлантын зуны цаг", "PST": "Номхон далайн стандарт цаг", "CHADT": "Чатемын зуны цаг", "LHDT": "Лорд Хоугийн зуны цаг", "IST": "Энэтхэгийн цаг", "HNEG": "Зүүн Гринландын стандарт цаг", "HNT": "Нью-Фаундлендын стандарт цаг", "NZST": "Шинэ Зеландын стандарт цаг", "GFT": "Францын Гияанагийн цаг", "BOT": "Боливийн цаг", "WAST": "Баруун Африкийн зуны цаг", "VET": "Венесуэлийн цаг", "BT": "Бутаны цаг", "NZDT": "Шинэ Зеландын зуны цаг", "∅∅∅": "Амазоны зуны цаг", "COST": "Колумбын зуны цаг", "MDT": "MDT", "JST": "Японы стандарт цаг", "ACST": "Төв Австралийн стандарт цаг", "OEZ": "Зүүн Европын стандарт цаг", "WAT": "Баруун Африкийн стандарт цаг", "CDT": "Төв зуны цаг", "HADT": "Хавай-Алеутын зуны цаг", "AWST": "Австралийн баруун эргийн стандарт цаг", "AWDT": "Австралийн баруун эргийн зуны цаг", "HECU": "Кубын зуны цаг", "GYT": "Гуяанагийн цаг", "CHAST": "Чатемын стандарт цаг", "JDT": "Японы зуны цаг", "ECT": "Эквадорын цаг", "WARST": "Баруун Аргентины зуны цаг", "HENOMX": "Баруун хойд Мексикийн зуны цаг", "SGT": "Сингапурын цаг", "ARST": "Аргентины зуны цаг", "ACWDT": "Австралийн төв баруун эргийн зуны цаг", "HAST": "Хавай-Алеутын стандарт цаг", "WIT": "Зүүн Индонезийн цаг", "PDT": "Номхон далайн зуны цаг", "WEZ": "Баруун Европын стандарт цаг", "AEST": "Австралийн зүүн эргийн стандарт цаг", "HNPM": "Сент-Пьерре ба Микелоны стандарт цаг", "MESZ": "Төв Европын зуны цаг", "ChST": "Чаморрогийн цаг", "EAT": "Зүүн Африкийн цаг", "GMT": "Гринвичийн үндсэн цаг", "MEZ": "Төв Европын стандарт цаг", "CAT": "Төв Африкийн цаг", "UYST": "Уругвайн зуны цаг", "HNOG": "Баруун Гринландын стандарт цаг", "WESZ": "Баруун Европын зуны цаг", "HKT": "Хонг Конгийн стандарт цаг", "LHST": "Лорд Хоугийн стандарт цаг", "SAST": "Өмнөд Африкийн стандарт цаг", "TMT": "Туркменистаны стандарт цаг", "TMST": "Туркменистаны зуны цаг", "EST": "Зүүн эргийн стандарт цаг", "AKDT": "Аляскийн зуны цаг", "COT": "Колумбын стандарт цаг", "HNNOMX": "Баруун хойд Мексикийн стандарт цаг", "MST": "MST", "CST": "Төв стандарт цаг", "WITA": "Төв Индонезийн цаг"},
++ timezones: map[string]string{"MESZ": "Төв Европын зуны цаг", "JST": "Японы стандарт цаг", "PST": "Номхон далайн стандарт цаг", "ACWDT": "Австралийн төв баруун эргийн зуны цаг", "OEZ": "Зүүн Европын стандарт цаг", "HKST": "Хонг Конгийн зуны цаг", "TMT": "Туркменистаны стандарт цаг", "EAT": "Зүүн Африкийн цаг", "HENOMX": "Баруун хойд Мексикийн зуны цаг", "LHDT": "Лорд Хоугийн зуны цаг", "BT": "Бутаны цаг", "HEPMX": "Мексикийн номхон далайн зуны цаг", "WARST": "Баруун Аргентины зуны цаг", "WITA": "Төв Индонезийн цаг", "MDT": "MDT", "GMT": "Гринвичийн үндсэн цаг", "ACWST": "Австралийн төв баруун эргийн стандарт цаг", "HECU": "Кубын зуны цаг", "WAT": "Баруун Африкийн стандарт цаг", "COST": "Колумбын зуны цаг", "HNNOMX": "Баруун хойд Мексикийн стандарт цаг", "CHAST": "Чатемын стандарт цаг", "HNCU": "Кубын стандарт цаг", "HEEG": "Зүүн Гринландын зуны цаг", "SGT": "Сингапурын цаг", "VET": "Венесуэлийн цаг", "HNT": "Нью-Фаундлендын стандарт цаг", "CST": "Төв стандарт цаг", "AST": "Атлантын стандарт цаг", "SRT": "Суринамын цаг", "ACST": "Төв Австралийн стандарт цаг", "HEPM": "Сент-Пьер ба Микелоны зуны цаг", "OESZ": "Зүүн Европын зуны цаг", "CLST": "Чилийн зуны цаг", "ARST": "Аргентины зуны цаг", "HADT": "Хавай-Алеутын зуны цаг", "LHST": "Лорд Хоугийн стандарт цаг", "GFT": "Францын Гияанагийн цаг", "CDT": "Төв зуны цаг", "ART": "Аргентины стандарт цаг", "MEZ": "Төв Европын стандарт цаг", "∅∅∅": "∅∅∅", "NZST": "Шинэ Зеландын стандарт цаг", "AWST": "Австралийн баруун эргийн стандарт цаг", "IST": "Энэтхэгийн цаг", "WEZ": "Баруун Европын стандарт цаг", "HNOG": "Баруун Гринландын стандарт цаг", "EST": "Зүүн эргийн стандарт цаг", "MST": "MST", "NZDT": "Шинэ Зеландын зуны цаг", "AWDT": "Австралийн баруун эргийн зуны цаг", "AEDT": "Австралийн зүүн эргийн зуны цаг", "UYST": "Уругвайн зуны цаг", "AKST": "Аляскийн стандарт цаг", "CAT": "Төв Африкийн цаг", "ADT": "Атлантын зуны цаг", "HAST": "Хавай-Алеутын стандарт цаг", "HNPM": "Сент-Пьерре ба Микелоны стандарт цаг", "AEST": "Австралийн зүүн эргийн стандарт цаг", "WAST": "Баруун Африкийн зуны цаг", "TMST": "Туркменистаны зуны цаг", "WIB": "Баруун Индонезийн цаг", "UYT": "Уругвайн стандарт цаг", "PDT": "Номхон далайн зуны цаг", "SAST": "Өмнөд Африкийн стандарт цаг", "COT": "Колумбын стандарт цаг", "HEOG": "Баруун Гринландын зуны цаг", "AKDT": "Аляскийн зуны цаг", "WART": "Баруун Аргентины стандарт цаг", "GYT": "Гуяанагийн цаг", "BOT": "Боливийн цаг", "CHADT": "Чатемын зуны цаг", "HNPMX": "Мексикийн номхон далайн стандарт цаг", "CLT": "Чилийн стандарт цаг", "ACDT": "Төв Австралийн зуны цаг", "HNEG": "Зүүн Гринландын стандарт цаг", "JDT": "Японы зуны цаг", "HAT": "Нью-Фаундлендын зуны цаг", "WIT": "Зүүн Индонезийн цаг", "HKT": "Хонг Конгийн стандарт цаг", "MYT": "Малайзын цаг", "WESZ": "Баруун Европын зуны цаг", "EDT": "Зүүн эргийн зуны цаг", "ECT": "Эквадорын цаг", "ChST": "Чаморрогийн цаг"},
+ }
+ }
+ 
+diff --git a/mn_MN/mn_MN.go b/mn_MN/mn_MN.go
+index 5f9cf17..85e823a 100644
+--- a/mn_MN/mn_MN.go
++++ b/mn_MN/mn_MN.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type mn_MN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'mn_MN' locale
+ func New() locales.Translator {
+ return &mn_MN{
+- locale: "mn_MN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "1-р сар", "2-р сар", "3-р сар", "4-р сар", "5-р сар", "6-р сар", "7-р сар", "8-р сар", "9-р сар", "10-р сар", "11-р сар", "12-р сар"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "Нэгдүгээр сар", "Хоёрдугаар сар", "Гуравдугаар сар", "Дөрөвдүгээр сар", "Тавдугаар сар", "Зургадугаар сар", "Долдугаар сар", "Наймдугаар сар", "Есдүгээр сар", "Аравдугаар сар", "Арван нэгдүгээр сар", "Арван хоёрдугаар сар"},
+- daysAbbreviated: []string{"Ня", "Да", "Мя", "Лх", "Пү", "Ба", "Бя"},
+- daysNarrow: []string{"Ня", "Да", "Мя", "Лх", "Пү", "Ба", "Бя"},
+- daysShort: []string{"Ня", "Да", "Мя", "Лх", "Пү", "Ба", "Бя"},
+- daysWide: []string{"ням", "даваа", "мягмар", "лхагва", "пүрэв", "баасан", "бямба"},
+- periodsAbbreviated: []string{"ҮӨ", "ҮХ"},
+- periodsNarrow: []string{"үө", "үх"},
+- periodsWide: []string{"ү.ө", "ү.х"},
+- erasAbbreviated: []string{"м.э.ө", "м.э."},
+- erasNarrow: []string{"МЭӨ", "МЭ"},
+- erasWide: []string{"манай эриний өмнөх", "манай эриний"},
+- timezones: map[string]string{"HNEG": "Зүүн Гринландын стандарт цаг", "TMST": "Туркменистаны зуны цаг", "MDT": "MDT", "ARST": "Аргентины зуны цаг", "HKT": "Хонг Конгийн стандарт цаг", "LHDT": "Лорд Хоугийн зуны цаг", "JST": "Японы стандарт цаг", "OESZ": "Зүүн Европын зуны цаг", "HECU": "Кубын зуны цаг", "UYST": "Уругвайн зуны цаг", "WEZ": "Баруун Европын стандарт цаг", "AWST": "Австралийн баруун эргийн стандарт цаг", "WART": "Баруун Аргентины стандарт цаг", "HEPMX": "Мексикийн номхон далайн зуны цаг", "AKDT": "Аляскийн зуны цаг", "ADT": "Атлантын зуны цаг", "MYT": "Малайзын цаг", "GFT": "Францын Гияанагийн цаг", "ECT": "Эквадорын цаг", "TMT": "Туркменистаны стандарт цаг", "ChST": "Чаморрогийн цаг", "HKST": "Хонг Конгийн зуны цаг", "WITA": "Төв Индонезийн цаг", "CHADT": "Чатемын зуны цаг", "MESZ": "Төв Европын зуны цаг", "IST": "Энэтхэгийн цаг", "BOT": "Боливийн цаг", "ACST": "Төв Австралийн стандарт цаг", "COST": "Колумбын зуны цаг", "GYT": "Гуяанагийн цаг", "HNPM": "Сент-Пьерре ба Микелоны стандарт цаг", "NZST": "Шинэ Зеландын стандарт цаг", "PDT": "Номхон далайн зуны цаг", "AWDT": "Австралийн баруун эргийн зуны цаг", "HEPM": "Сент-Пьер ба Микелоны зуны цаг", "OEZ": "Зүүн Европын стандарт цаг", "HNCU": "Кубын стандарт цаг", "EST": "Зүүн эргийн стандарт цаг", "HAST": "Хавай-Алеутын стандарт цаг", "ACWST": "Австралийн төв баруун эргийн стандарт цаг", "LHST": "Лорд Хоугийн стандарт цаг", "HNOG": "Баруун Гринландын стандарт цаг", "CHAST": "Чатемын стандарт цаг", "CLST": "Чилийн зуны цаг", "MST": "MST", "WIB": "Баруун Индонезийн цаг", "SRT": "Суринамын цаг", "BT": "Бутаны цаг", "WESZ": "Баруун Европын зуны цаг", "CAT": "Төв Африкийн цаг", "JDT": "Японы зуны цаг", "HEEG": "Зүүн Гринландын зуны цаг", "COT": "Колумбын стандарт цаг", "WARST": "Баруун Аргентины зуны цаг", "AKST": "Аляскийн стандарт цаг", "ART": "Аргентины стандарт цаг", "AEST": "Австралийн зүүн эргийн стандарт цаг", "SAST": "Өмнөд Африкийн стандарт цаг", "CLT": "Чилийн стандарт цаг", "VET": "Венесуэлийн цаг", "HAT": "Нью-Фаундлендын зуны цаг", "PST": "Номхон далайн стандарт цаг", "ACDT": "Төв Австралийн зуны цаг", "WAST": "Баруун Африкийн зуны цаг", "∅∅∅": "Перугийн зуны цаг", "CDT": "Төв зуны цаг", "UYT": "Уругвайн стандарт цаг", "AEDT": "Австралийн зүүн эргийн зуны цаг", "NZDT": "Шинэ Зеландын зуны цаг", "GMT": "Гринвичийн үндсэн цаг", "EDT": "Зүүн эргийн зуны цаг", "WIT": "Зүүн Индонезийн цаг", "SGT": "Сингапурын цаг", "MEZ": "Төв Европын стандарт цаг", "WAT": "Баруун Африкийн стандарт цаг", "HENOMX": "Баруун хойд Мексикийн зуны цаг", "AST": "Атлантын стандарт цаг", "ACWDT": "Австралийн төв баруун эргийн зуны цаг", "HEOG": "Баруун Гринландын зуны цаг", "HNT": "Нью-Фаундлендын стандарт цаг", "EAT": "Зүүн Африкийн цаг", "HNNOMX": "Баруун хойд Мексикийн стандарт цаг", "HNPMX": "Мексикийн номхон далайн стандарт цаг", "CST": "Төв стандарт цаг", "HADT": "Хавай-Алеутын зуны цаг"},
++ locale: "mn_MN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"BT": "BT", "HEPMX": "HEPMX", "HNOG": "HNOG", "ART": "ART", "GMT": "GMT", "ACWDT": "ACWDT", "CHADT": "CHADT", "AKDT": "AKDT", "WAST": "WAST", "HAT": "HAT", "COST": "COST", "WIB": "WIB", "SRT": "SRT", "HNEG": "HNEG", "SGT": "SGT", "HNPMX": "HNPMX", "ChST": "ChST", "BOT": "BOT", "JST": "JST", "TMST": "TMST", "ADT": "ADT", "VET": "VET", "HNT": "HNT", "MEZ": "MEZ", "UYST": "UYST", "CAT": "CAT", "HAST": "HAST", "HECU": "HECU", "TMT": "TMT", "CLT": "CLT", "ACST": "ACST", "ACDT": "ACDT", "HEPM": "HEPM", "WESZ": "WESZ", "EDT": "EDT", "CLST": "CLST", "WEZ": "WEZ", "AKST": "AKST", "WIT": "WIT", "EAT": "EAT", "LHDT": "LHDT", "HADT": "HADT", "HEEG": "HEEG", "WARST": "WARST", "NZST": "NZST", "AST": "AST", "HNNOMX": "HNNOMX", "PST": "PST", "CHAST": "CHAST", "WART": "WART", "COT": "COT", "NZDT": "NZDT", "HKST": "HKST", "HENOMX": "HENOMX", "AWDT": "AWDT", "PDT": "PDT", "GFT": "GFT", "∅∅∅": "∅∅∅", "HKT": "HKT", "AWST": "AWST", "GYT": "GYT", "ARST": "ARST", "ECT": "ECT", "MESZ": "MESZ", "JDT": "JDT", "WAT": "WAT", "OESZ": "OESZ", "HEOG": "HEOG", "EST": "EST", "LHST": "LHST", "HNPM": "HNPM", "WITA": "WITA", "MDT": "MDT", "CDT": "CDT", "ACWST": "ACWST", "AEST": "AEST", "UYT": "UYT", "HNCU": "HNCU", "OEZ": "OEZ", "MST": "MST", "CST": "CST", "AEDT": "AEDT", "IST": "IST", "SAST": "SAST", "MYT": "MYT"},
+ }
+ }
+ 
+@@ -135,7 +112,7 @@ func (mn *mn_MN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (mn *mn_MN) MonthsAbbreviated() []string {
+- return mn.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -145,7 +122,7 @@ func (mn *mn_MN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (mn *mn_MN) MonthsNarrow() []string {
+- return mn.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -155,7 +132,7 @@ func (mn *mn_MN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (mn *mn_MN) MonthsWide() []string {
+- return mn.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -201,73 +178,13 @@ func (mn *mn_MN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'mn_MN' and handles both Whole and Real numbers based on 'v'
+ func (mn *mn_MN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mn.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, mn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'mn_MN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (mn *mn_MN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mn.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, mn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, mn.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'mn_MN'
+@@ -275,60 +192,7 @@ func (mn *mn_MN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mn.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mn.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(mn.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, mn.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, mn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'mn_MN'
+@@ -337,72 +201,7 @@ func (mn *mn_MN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mn.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mn.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(mn.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, mn.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, mn.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(mn.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, mn.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'mn_MN'
+@@ -410,28 +209,6 @@ func (mn *mn_MN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -440,17 +217,6 @@ func (mn *mn_MN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, mn.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -459,20 +225,6 @@ func (mn *mn_MN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xd0, 0xbe, 0xd0, 0xbd, 0xd1, 0x8b}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mn.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd1, 0x81, 0xd0, 0xb0, 0xd1, 0x80, 0xd1, 0x8b, 0xd0, 0xbd}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xd3, 0xa9, 0xd0, 0xb4, 0xd3, 0xa9, 0xd1, 0x80}...)
+-
+ return string(b)
+ }
+ 
+@@ -481,28 +233,6 @@ func (mn *mn_MN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, mn.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xbe, 0xd0, 0xbd, 0xd1, 0x8b}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x20, 0xd1, 0x81, 0xd0, 0xb0, 0xd1, 0x80, 0xd1, 0x8b, 0xd0, 0xbd}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -511,19 +241,6 @@ func (mn *mn_MN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -532,26 +249,6 @@ func (mn *mn_MN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -560,30 +257,6 @@ func (mn *mn_MN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -592,34 +265,5 @@ func (mn *mn_MN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := mn.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/mr/mr.go b/mr/mr.go
+index cd4b138..25cfcd2 100644
+--- a/mr/mr.go
++++ b/mr/mr.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"इ. स. पू.", "इ. स."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"ईसवीसनपूर्व", "ईसवीसन"},
+- timezones: map[string]string{"EAT": "पूर्व आफ्रिका वेळ", "EST": "पौर्वात्य प्रमाण वेळ", "ART": "अर्जेंटिना प्रमाण वेळ", "AKST": "अलास्का प्रमाण वेळ", "WESZ": "पश्चिम युरोपियन उन्हाळी वेळ", "GFT": "फ्रेंच गयाना वेळ", "TMT": "तुर्कमेनिस्तान प्रमाण वेळ", "WAT": "पश्चिम आफ्रिका प्रमाण वेळ", "ECT": "इक्वेडोर वेळ", "COST": "कोलंबिया उन्हाळी वेळ", "EDT": "पौर्वात्य सूर्यप्रकाश वेळ", "HAT": "न्यू फाउंडलंड सूर्यप्रकाश वेळ", "WITA": "मध्\u200dय इंडोनेशिया वेळ", "LHDT": "लॉर्ड होवे सूर्यप्रकाश वेळ", "WARST": "पश्चिमी अर्जेंटिना उन्हाळी वेळ", "HNNOMX": "वायव्य मेक्सिको प्रमाण वेळ", "MESZ": "मध्\u200dय युरोपियन उन्हाळी वेळ", "WART": "पश्चिमी अर्जेंटिना प्रमाण वेळ", "ARST": "अर्जेंटिना उन्हाळी वेळ", "AEST": "ऑस्ट्रेलियन पूर्व प्रमाण वेळ", "JST": "जपान प्रमाण वेळ", "ChST": "चामोरो प्रमाण वेळ", "ACDT": "ऑस्ट्रेलियन मध्य सूर्यप्रकाश वेळ", "MST": "मकाऊ प्रमाणवेळ", "AKDT": "अलास्का सूर्यप्रकाश वेळ", "PDT": "पॅसिफिक सूर्यप्रकाश वेळ", "HEOG": "पश्चिम ग्रीनलँड उन्हाळी वेळ", "HNPM": "सेंट पियर आणि मिक्वेलोन प्रमाण वेळ", "MEZ": "मध्\u200dय युरोपियन प्रमाण वेळ", "HEEG": "पूर्व ग्रीनलँड उन्हाळी वेळ", "OEZ": "पूर्व युरोपियन प्रमाण वेळ", "COT": "कोलंबिया प्रमाण वेळ", "CDT": "केंद्रीय सूर्यप्रकाश वेळ", "ACWDT": "ऑस्ट्रेलियन मध्य-पश्चिम सूर्यप्रकाश वेळ", "CLST": "चिली उन्हाळी वेळ", "WAST": "पश्चिम आफ्रिका उन्हाळी वेळ", "HNPMX": "मेक्सिको पॅसिफिक प्रमाण वेळ", "BT": "भूतान वेळ", "HEPMX": "मेक्सिको पॅसिफिक सूर्यप्रकाश वेळ", "GYT": "गयाना वेळ", "SRT": "सुरिनाम वेळ", "PST": "पॅसिफिक प्रमाण वेळ", "CHADT": "चॅथम सूर्यप्रकाश वेळ", "∅∅∅": "अ\u200dॅमेझॉन उन्हाळी वेळ", "WEZ": "पश्चिम युरोपियन प्रमाण वेळ", "HEPM": "सेंट पियर आणि मिक्वेलोन सूर्यप्रकाश वेळ", "NZDT": "न्यूझीलंड सूर्यप्रकाश वेळ", "JDT": "जपान सूर्यप्रकाश वेळ", "MDT": "मकाऊ ग्रीष्मकालीन वेळ", "UYST": "उरुग्वे उन्हाळी वेळ", "HAST": "हवाई-अलूशन प्रमाण वेळ", "WIT": "पौर्वात्य इंडोनेशिया वेळ", "CAT": "मध्\u200dय आफ्रिका वेळ", "GMT": "ग्रीनिच प्रमाण वेळ", "CST": "केंद्रीय प्रमाण वेळ", "HADT": "हवाई-अलूशन सूर्यप्रकाश वेळ", "AWST": "ऑस्ट्रेलियन पश्चिम प्रमाण वेळ", "LHST": "लॉर्ड होवे प्रमाण वेळ", "TMST": "तुर्कमेनिस्तान उन्हाळी वेळ", "AST": "अटलांटिक प्रमाण वेळ", "ADT": "अटलांटिक सूर्यप्रकाश वेळ", "MYT": "मलेशिया वेळ", "UYT": "उरुग्वे प्रमाण वेळ", "SAST": "दक्षिण आफ्रिका प्रमाण वेळ", "WIB": "पश्चिमी इंडोनेशिया वेळ", "VET": "व्हेनेझुएला वेळ", "ACWST": "ऑस्ट्रेलियन मध्य-पश्चिम प्रमाण वेळ", "HNOG": "पश्चिम ग्रीनलँड प्रमाण वेळ", "HKT": "हाँग काँग प्रमाण वेळ", "SGT": "सिंगापूर प्रमाण वेळ", "HNCU": "क्यूबा प्रमाण वेळ", "NZST": "न्यूझीलंड प्रमाण वेळ", "CHAST": "चॅथम प्रमाण वेळ", "IST": "भारतीय प्रमाण वेळ", "BOT": "बोलिव्हिया वेळ", "HNEG": "पूर्व ग्रीनलँड प्रमाण वेळ", "ACST": "ऑस्ट्रेलियन मध्य प्रमाण वेळ", "AEDT": "ऑस्ट्रेलियन पूर्व सूर्यप्रकाश वेळ", "HENOMX": "वायव्य मेक्सिको सूर्यप्रकाश वेळ", "HECU": "क्यूबा सूर्यप्रकाश वेळ", "HNT": "न्यू फाउंडलंड प्रमाण वेळ", "AWDT": "ऑस्ट्रेलियन पश्चिम सूर्यप्रकाश वेळ", "HKST": "हाँग काँग उन्हाळी वेळ", "CLT": "चिली प्रमाण वेळ", "OESZ": "पूर्व युरोपियन उन्हाळी वेळ"},
++ timezones: map[string]string{"HNPM": "सेंट पियर आणि मिक्वेलोन प्रमाण वेळ", "CHAST": "चॅथम प्रमाण वेळ", "HNOG": "पश्चिम ग्रीनलँड प्रमाण वेळ", "HKST": "हाँग काँग उन्हाळी वेळ", "MDT": "मकाऊ ग्रीष्मकालीन वेळ", "WEZ": "पश्चिम युरोपियन प्रमाण वेळ", "SGT": "सिंगापूर प्रमाण वेळ", "WAST": "पश्चिम आफ्रिका उन्हाळी वेळ", "SAST": "दक्षिण आफ्रिका प्रमाण वेळ", "TMT": "तुर्कमेनिस्तान प्रमाण वेळ", "ACWDT": "ऑस्ट्रेलियन मध्य-पश्चिम सूर्यप्रकाश वेळ", "HNCU": "क्यूबा प्रमाण वेळ", "ADT": "अटलांटिक सूर्यप्रकाश वेळ", "IST": "भारतीय प्रमाण वेळ", "EST": "पौर्वात्य प्रमाण वेळ", "ECT": "इक्वेडोर वेळ", "GFT": "फ्रेंच गयाना वेळ", "CLT": "चिली प्रमाण वेळ", "ART": "अर्जेंटिना प्रमाण वेळ", "MEZ": "मध्\u200dय युरोपियन प्रमाण वेळ", "AWST": "ऑस्ट्रेलियन पश्चिम प्रमाण वेळ", "CAT": "मध्\u200dय आफ्रिका वेळ", "MST": "मकाऊ प्रमाणवेळ", "WESZ": "पश्चिम युरोपियन उन्हाळी वेळ", "HECU": "क्यूबा सूर्यप्रकाश वेळ", "ACDT": "ऑस्ट्रेलियन मध्य सूर्यप्रकाश वेळ", "AEST": "ऑस्ट्रेलियन पूर्व प्रमाण वेळ", "ACST": "ऑस्ट्रेलियन मध्य प्रमाण वेळ", "LHDT": "लॉर्ड होवे सूर्यप्रकाश वेळ", "WITA": "मध्\u200dय इंडोनेशिया वेळ", "ChST": "चामोरो प्रमाण वेळ", "GYT": "गयाना वेळ", "∅∅∅": "ब्राझिलिया उन्हाळी वेळ", "HKT": "हाँग काँग प्रमाण वेळ", "WIB": "पश्चिमी इंडोनेशिया वेळ", "GMT": "ग्रीनिच प्रमाण वेळ", "ARST": "अर्जेंटिना उन्हाळी वेळ", "WART": "पश्चिमी अर्जेंटिना प्रमाण वेळ", "WARST": "पश्चिमी अर्जेंटिना उन्हाळी वेळ", "AWDT": "ऑस्ट्रेलियन पश्चिम सूर्यप्रकाश वेळ", "MYT": "मलेशिया वेळ", "JDT": "जपान सूर्यप्रकाश वेळ", "PDT": "पॅसिफिक सूर्यप्रकाश वेळ", "CHADT": "चॅथम सूर्यप्रकाश वेळ", "AKDT": "अलास्का सूर्यप्रकाश वेळ", "HNEG": "पूर्व ग्रीनलँड प्रमाण वेळ", "HNNOMX": "वायव्य मेक्सिको प्रमाण वेळ", "CLST": "चिली उन्हाळी वेळ", "AST": "अटलांटिक प्रमाण वेळ", "HEEG": "पूर्व ग्रीनलँड उन्हाळी वेळ", "PST": "पॅसिफिक प्रमाण वेळ", "COST": "कोलंबिया उन्हाळी वेळ", "TMST": "तुर्कमेनिस्तान उन्हाळी वेळ", "BT": "भूतान वेळ", "NZDT": "न्यूझीलंड सूर्यप्रकाश वेळ", "EAT": "पूर्व आफ्रिका वेळ", "SRT": "सुरिनाम वेळ", "MESZ": "मध्\u200dय युरोपियन उन्हाळी वेळ", "JST": "जपान प्रमाण वेळ", "ACWST": "ऑस्ट्रेलियन मध्य-पश्चिम प्रमाण वेळ", "AEDT": "ऑस्ट्रेलियन पूर्व सूर्यप्रकाश वेळ", "OESZ": "पूर्व युरोपियन उन्हाळी वेळ", "WIT": "पौर्वात्य इंडोनेशिया वेळ", "EDT": "पौर्वात्य सूर्यप्रकाश वेळ", "HEPM": "सेंट पियर आणि मिक्वेलोन सूर्यप्रकाश वेळ", "WAT": "पश्चिम आफ्रिका प्रमाण वेळ", "OEZ": "पूर्व युरोपियन प्रमाण वेळ", "BOT": "बोलिव्हिया वेळ", "LHST": "लॉर्ड होवे प्रमाण वेळ", "AKST": "अलास्का प्रमाण वेळ", "HNT": "न्यू फाउंडलंड प्रमाण वेळ", "NZST": "न्यूझीलंड प्रमाण वेळ", "CST": "केंद्रीय प्रमाण वेळ", "HAST": "हवाई-अलूशन प्रमाण वेळ", "UYT": "उरुग्वे प्रमाण वेळ", "UYST": "उरुग्वे उन्हाळी वेळ", "HEPMX": "मेक्सिको पॅसिफिक सूर्यप्रकाश वेळ", "COT": "कोलंबिया प्रमाण वेळ", "HEOG": "पश्चिम ग्रीनलँड उन्हाळी वेळ", "HADT": "हवाई-अलूशन सूर्यप्रकाश वेळ", "HENOMX": "वायव्य मेक्सिको सूर्यप्रकाश वेळ", "VET": "व्हेनेझुएला वेळ", "HNPMX": "मेक्सिको पॅसिफिक प्रमाण वेळ", "HAT": "न्यू फाउंडलंड सूर्यप्रकाश वेळ", "CDT": "केंद्रीय सूर्यप्रकाश वेळ"},
+ }
+ }
+ 
+diff --git a/mr_IN/mr_IN.go b/mr_IN/mr_IN.go
+index fe47216..ec4c416 100644
+--- a/mr_IN/mr_IN.go
++++ b/mr_IN/mr_IN.go
+@@ -42,32 +42,13 @@ type mr_IN struct {
+ // New returns a new instance of translator for the 'mr_IN' locale
+ func New() locales.Translator {
+ return &mr_IN{
+- locale: "mr_IN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "जाने", "फेब्रु", "मार्च", "एप्रि", "मे", "जून", "जुलै", "ऑग", "सप्टें", "ऑक्टो", "नोव्हें", "डिसें"},
+- monthsNarrow: []string{"", "जा", "फे", "मा", "ए", "मे", "जू", "जु", "ऑ", "स", "ऑ", "नो", "डि"},
+- monthsWide: []string{"", "जानेवारी", "फेब्रुवारी", "मार्च", "एप्रिल", "मे", "जून", "जुलै", "ऑगस्ट", "सप्टेंबर", "ऑक्टोबर", "नोव्हेंबर", "डिसेंबर"},
+- daysAbbreviated: []string{"रवि", "सोम", "मंगळ", "बुध", "गुरु", "शुक्र", "शनि"},
+- daysNarrow: []string{"र", "सो", "मं", "बु", "गु", "शु", "श"},
+- daysShort: []string{"र", "सो", "मं", "बु", "गु", "शु", "श"},
+- daysWide: []string{"रविवार", "सोमवार", "मंगळवार", "बुधवार", "गुरुवार", "शुक्रवार", "शनिवार"},
+- periodsAbbreviated: []string{"म.पू.", "म.उ."},
+- periodsNarrow: []string{"स", "सं"},
+- periodsWide: []string{"म.पू.", "म.उ."},
+- erasAbbreviated: []string{"इ. स. पू.", "इ. स."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ईसवीसनपूर्व", "ईसवीसन"},
+- timezones: map[string]string{"AST": "अटलांटिक प्रमाण वेळ", "WIB": "पश्चिमी इंडोनेशिया वेळ", "SRT": "सुरिनाम वेळ", "ACDT": "ऑस्ट्रेलियन मध्य सूर्यप्रकाश वेळ", "COST": "कोलंबिया उन्हाळी वेळ", "HECU": "क्यूबा सूर्यप्रकाश वेळ", "MDT": "मकाऊ ग्रीष्मकालीन वेळ", "ARST": "अर्जेंटिना उन्हाळी वेळ", "JDT": "जपान सूर्यप्रकाश वेळ", "WAT": "पश्चिम आफ्रिका प्रमाण वेळ", "MST": "मकाऊ प्रमाणवेळ", "HAT": "न्यू फाउंडलंड सूर्यप्रकाश वेळ", "HEPMX": "मेक्सिको पॅसिफिक सूर्यप्रकाश वेळ", "GYT": "गयाना वेळ", "BT": "भूतान वेळ", "ACWST": "ऑस्ट्रेलियन मध्य-पश्चिम प्रमाण वेळ", "SAST": "दक्षिण आफ्रिका प्रमाण वेळ", "COT": "कोलंबिया प्रमाण वेळ", "SGT": "सिंगापूर प्रमाण वेळ", "HNPMX": "मेक्सिको पॅसिफिक प्रमाण वेळ", "WARST": "पश्चिमी अर्जेंटिना उन्हाळी वेळ", "NZDT": "न्यूझीलंड सूर्यप्रकाश वेळ", "ACWDT": "ऑस्ट्रेलियन मध्य-पश्चिम सूर्यप्रकाश वेळ", "HNT": "न्यू फाउंडलंड प्रमाण वेळ", "AEST": "ऑस्ट्रेलियन पूर्व प्रमाण वेळ", "JST": "जपान प्रमाण वेळ", "BOT": "बोलिव्हिया वेळ", "AKDT": "अलास्का सूर्यप्रकाश वेळ", "CDT": "केंद्रीय सूर्यप्रकाश वेळ", "LHST": "लॉर्ड होवे प्रमाण वेळ", "ECT": "इक्वेडोर वेळ", "EDT": "पौर्वात्य सूर्यप्रकाश वेळ", "MYT": "मलेशिया वेळ", "HEPM": "सेंट पियर आणि मिक्वेलोन सूर्यप्रकाश वेळ", "ADT": "अटलांटिक सूर्यप्रकाश वेळ", "AEDT": "ऑस्ट्रेलियन पूर्व सूर्यप्रकाश वेळ", "HKT": "हाँग काँग प्रमाण वेळ", "WESZ": "पश्चिम युरोपियन उन्हाळी वेळ", "HNOG": "पश्चिम ग्रीनलँड प्रमाण वेळ", "AWST": "ऑस्ट्रेलियन पश्चिम प्रमाण वेळ", "AWDT": "ऑस्ट्रेलियन पश्चिम सूर्यप्रकाश वेळ", "WAST": "पश्चिम आफ्रिका उन्हाळी वेळ", "HENOMX": "वायव्य मेक्सिको सूर्यप्रकाश वेळ", "AKST": "अलास्का प्रमाण वेळ", "PST": "पॅसिफिक प्रमाण वेळ", "TMT": "तुर्कमेनिस्तान प्रमाण वेळ", "ACST": "ऑस्ट्रेलियन मध्य प्रमाण वेळ", "UYT": "उरुग्वे प्रमाण वेळ", "PDT": "पॅसिफिक सूर्यप्रकाश वेळ", "MEZ": "मध्\u200dय युरोपियन प्रमाण वेळ", "IST": "भारतीय प्रमाण वेळ", "CLST": "चिली उन्हाळी वेळ", "∅∅∅": "अ\u200dॅमेझॉन उन्हाळी वेळ", "HNNOMX": "वायव्य मेक्सिको प्रमाण वेळ", "EAT": "पूर्व आफ्रिका वेळ", "GMT": "ग्रीनिच प्रमाण वेळ", "EST": "पौर्वात्य प्रमाण वेळ", "OEZ": "पूर्व युरोपियन प्रमाण वेळ", "HNCU": "क्यूबा प्रमाण वेळ", "UYST": "उरुग्वे उन्हाळी वेळ", "ART": "अर्जेंटिना प्रमाण वेळ", "HEOG": "पश्चिम ग्रीनलँड उन्हाळी वेळ", "CHAST": "चॅथम प्रमाण वेळ", "CHADT": "चॅथम सूर्यप्रकाश वेळ", "CLT": "चिली प्रमाण वेळ", "GFT": "फ्रेंच गयाना वेळ", "WART": "पश्चिमी अर्जेंटिना प्रमाण वेळ", "VET": "व्हेनेझुएला वेळ", "HNEG": "पूर्व ग्रीनलँड प्रमाण वेळ", "CST": "केंद्रीय प्रमाण वेळ", "HADT": "हवाई-अलूशन सूर्यप्रकाश वेळ", "HKST": "हाँग काँग उन्हाळी वेळ", "WEZ": "पश्चिम युरोपियन प्रमाण वेळ", "HNPM": "सेंट पियर आणि मिक्वेलोन प्रमाण वेळ", "MESZ": "मध्\u200dय युरोपियन उन्हाळी वेळ", "ChST": "चामोरो प्रमाण वेळ", "TMST": "तुर्कमेनिस्तान उन्हाळी वेळ", "CAT": "मध्\u200dय आफ्रिका वेळ", "OESZ": "पूर्व युरोपियन उन्हाळी वेळ", "LHDT": "लॉर्ड होवे सूर्यप्रकाश वेळ", "NZST": "न्यूझीलंड प्रमाण वेळ", "HEEG": "पूर्व ग्रीनलँड उन्हाळी वेळ", "HAST": "हवाई-अलूशन प्रमाण वेळ", "WIT": "पौर्वात्य इंडोनेशिया वेळ", "WITA": "मध्\u200dय इंडोनेशिया वेळ"},
++ locale: "mr_IN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CLST": "CLST", "AEDT": "AEDT", "HEPMX": "HEPMX", "WESZ": "WESZ", "CLT": "CLT", "CHAST": "CHAST", "EDT": "EDT", "HKST": "HKST", "HAST": "HAST", "ChST": "ChST", "PDT": "PDT", "ACWDT": "ACWDT", "HNOG": "HNOG", "EST": "EST", "NZST": "NZST", "IST": "IST", "SGT": "SGT", "WIT": "WIT", "JDT": "JDT", "BT": "BT", "HNCU": "HNCU", "GFT": "GFT", "NZDT": "NZDT", "CDT": "CDT", "ACST": "ACST", "WEZ": "WEZ", "WARST": "WARST", "TMT": "TMT", "WIB": "WIB", "UYST": "UYST", "WAST": "WAST", "SAST": "SAST", "GYT": "GYT", "JST": "JST", "BOT": "BOT", "SRT": "SRT", "HADT": "HADT", "LHDT": "LHDT", "ARST": "ARST", "LHST": "LHST", "PST": "PST", "AKST": "AKST", "OEZ": "OEZ", "MEZ": "MEZ", "CST": "CST", "MDT": "MDT", "ADT": "ADT", "HENOMX": "HENOMX", "HNPM": "HNPM", "AEST": "AEST", "UYT": "UYT", "WITA": "WITA", "AKDT": "AKDT", "VET": "VET", "AST": "AST", "CAT": "CAT", "WAT": "WAT", "OESZ": "OESZ", "HAT": "HAT", "HEOG": "HEOG", "HKT": "HKT", "ART": "ART", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "CHADT": "CHADT", "COST": "COST", "GMT": "GMT", "MYT": "MYT", "HNT": "HNT", "ECT": "ECT", "MESZ": "MESZ", "ACDT": "ACDT", "COT": "COT", "TMST": "TMST", "∅∅∅": "∅∅∅", "EAT": "EAT", "HNEG": "HNEG", "AWST": "AWST", "AWDT": "AWDT", "HEPM": "HEPM", "ACWST": "ACWST", "HNPMX": "HNPMX", "MST": "MST", "WART": "WART", "HECU": "HECU"},
+ }
+ }
+ 
+@@ -143,7 +124,7 @@ func (mr *mr_IN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (mr *mr_IN) MonthsAbbreviated() []string {
+- return mr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -153,7 +134,7 @@ func (mr *mr_IN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (mr *mr_IN) MonthsNarrow() []string {
+- return mr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -163,7 +144,7 @@ func (mr *mr_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (mr *mr_IN) MonthsWide() []string {
+- return mr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -209,82 +190,13 @@ func (mr *mr_IN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'mr_IN' and handles both Whole and Real numbers based on 'v'
+ func (mr *mr_IN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, mr.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, mr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'mr_IN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (mr *mr_IN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, mr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, mr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'mr_IN'
+@@ -292,56 +204,7 @@ func (mr *mr_IN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mr.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, mr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'mr_IN'
+@@ -350,64 +213,7 @@ func (mr *mr_IN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mr.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, mr.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'mr_IN'
+@@ -415,17 +221,6 @@ func (mr *mr_IN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -434,17 +229,6 @@ func (mr *mr_IN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -453,17 +237,6 @@ func (mr *mr_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -472,19 +245,6 @@ func (mr *mr_IN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, mr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -493,28 +253,6 @@ func (mr *mr_IN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, mr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, mr.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, mr.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -523,35 +261,6 @@ func (mr *mr_IN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, mr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, mr.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, mr.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -560,40 +269,6 @@ func (mr *mr_IN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, mr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, mr.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, mr.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -602,44 +277,5 @@ func (mr *mr_IN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, mr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, mr.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, mr.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := mr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ms/ms.go b/ms/ms.go
+index 6e591fd..e0f1529 100644
+--- a/ms/ms.go
++++ b/ms/ms.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"S.M.", "TM"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"S.M.", "TM"},
+- timezones: map[string]string{"ACWST": "Waktu Piawai Barat Tengah Australia", "WART": "Waktu Piawai Argentina Barat", "HNNOMX": "Waktu Piawai Barat Laut Mexico", "HNCU": "Waktu Piawai Cuba", "AEST": "Waktu Piawai Timur Australia", "LHST": "Waktu Piawai Lord Howe", "NZST": "Waktu Piawai New Zealand", "ChST": "Waktu Piawai Chamorro", "AKDT": "Waktu Siang Alaska", "CDT": "Waktu Siang Tengah", "UYT": "Waktu Piawai Uruguay", "AKST": "Waktu Piawai Alaska", "HEOG": "Waktu Musim Panas Greenland Barat", "WEZ": "Waktu Piawai Eropah Barat", "MESZ": "Waktu Musim Panas Eropah Tengah", "CLT": "Waktu Piawai Chile", "ACST": "Waktu Piawai Australia Tengah", "HECU": "Waktu Siang Cuba", "SRT": "Waktu Suriname", "GYT": "Waktu Guyana", "PDT": "Waktu Siang Pasifik", "WITA": "Waktu Indonesia Tengah", "MEZ": "Waktu Piawai Eropah Tengah", "JDT": "Waktu Siang Jepun", "TMST": "Waktu Musim Panas Turkmenistan", "COST": "Waktu Musim Panas Colombia", "HKT": "Waktu Piawai Hong Kong", "HKST": "Waktu Musim Panas Hong Kong", "HEEG": "Waktu Musim Panas Greenland Timur", "MDT": "MDT", "HNPMX": "Waktu Piawai Pasifik Mexico", "SAST": "Waktu Piawai Afrika Selatan", "PST": "Waktu Piawai Pasifik", "CHAST": "Waktu Piawai Chatham", "WAT": "Waktu Piawai Afrika Barat", "OEZ": "Waktu Piawai Eropah Timur", "EAT": "Waktu Afrika Timur", "HEPMX": "Waktu Siang Pasifik Mexico", "AEDT": "Waktu Siang Australia Timur", "JST": "Waktu Piawai Jepun", "∅∅∅": "Waktu Musim Panas Amazon", "WARST": "Waktu Musim Panas Argentina Barat", "HENOMX": "Waktu Siang Barat Laut Mexico", "EST": "Waktu Piawai Timur", "MST": "MST", "WIB": "Waktu Indonesia Barat", "BT": "Waktu Bhutan", "OESZ": "Waktu Musim Panas Eropah Timur", "ACWDT": "Waktu Siang Barat Tengah Australia", "LHDT": "Waktu Siang Lord Howe", "TMT": "Waktu Piawai Turkmenistan", "BOT": "Waktu Bolivia", "ACDT": "Waktu Siang Australia Tengah", "CAT": "Waktu Afrika Tengah", "HNOG": "Waktu Piawai Greenland Barat", "HAT": "Waktu Siang Newfoundland", "CLST": "Waktu Musim Panas Chile", "HNEG": "Waktu Piawai Greenland Timur", "WAST": "Waktu Musim Panas Afrika Barat", "COT": "Waktu Piawai Colombia", "ART": "Waktu Piawai Argentina", "WESZ": "Waktu Musim Panas Eropah Barat", "AWST": "Waktu Piawai Australia Barat", "GMT": "Waktu Min Greenwich", "SGT": "Waktu Piawai Singapura", "AWDT": "Waktu Siang Australia Barat", "NZDT": "Waktu Siang New Zealand", "ECT": "Waktu Ecuador", "UYST": "Waktu Musim Panas Uruguay", "WIT": "Waktu Indonesia Timur", "CST": "Waktu Piawai Pusat", "HAST": "Waktu Piawai Hawaii-Aleutian", "HNPM": "Waktu Piawai Saint Pierre dan Miquelon", "HEPM": "Waktu Siang Saint Pierre dan Miquelon", "CHADT": "Waktu Siang Chatham", "EDT": "Waktu Siang Timur", "AST": "Waktu Piawai Atlantik", "MYT": "Waktu Malaysia", "HADT": "Waktu Siang Hawaii-Aleutian", "ARST": "Waktu Musim Panas Argentina", "HNT": "Waktu Piawai Newfoundland", "IST": "Waktu Piawai India", "GFT": "Waktu Guyana Perancis", "ADT": "Waktu Siang Atlantik", "VET": "Waktu Venezuela"},
++ timezones: map[string]string{"ACST": "Waktu Piawai Australia Tengah", "ACDT": "Waktu Siang Australia Tengah", "CHADT": "Waktu Siang Chatham", "ACWST": "Waktu Piawai Barat Tengah Australia", "WEZ": "Waktu Piawai Eropah Barat", "HNOG": "Waktu Piawai Greenland Barat", "CAT": "Waktu Afrika Tengah", "VET": "Waktu Venezuela", "SRT": "Waktu Suriname", "BT": "Waktu Bhutan", "TMT": "Waktu Piawai Turkmenistan", "CLT": "Waktu Piawai Chile", "ChST": "Waktu Piawai Chamorro", "HAST": "Waktu Piawai Hawaii-Aleutian", "PST": "Waktu Piawai Pasifik", "WAST": "Waktu Musim Panas Afrika Barat", "WIT": "Waktu Indonesia Timur", "COT": "Waktu Piawai Colombia", "HENOMX": "Waktu Siang Barat Laut Mexico", "AEST": "Waktu Piawai Timur Australia", "WAT": "Waktu Piawai Afrika Barat", "OEZ": "Waktu Piawai Eropah Timur", "TMST": "Waktu Musim Panas Turkmenistan", "CLST": "Waktu Musim Panas Chile", "MEZ": "Waktu Piawai Eropah Tengah", "HEEG": "Waktu Musim Panas Greenland Timur", "WESZ": "Waktu Musim Panas Eropah Barat", "HEPMX": "Waktu Siang Pasifik Mexico", "WITA": "Waktu Indonesia Tengah", "ART": "Waktu Piawai Argentina", "UYT": "Waktu Piawai Uruguay", "ECT": "Waktu Ecuador", "HNPM": "Waktu Piawai Saint Pierre dan Miquelon", "HNEG": "Waktu Piawai Greenland Timur", "HNNOMX": "Waktu Piawai Barat Laut Mexico", "HEPM": "Waktu Siang Saint Pierre dan Miquelon", "IST": "Waktu Piawai India", "WART": "Waktu Piawai Argentina Barat", "ARST": "Waktu Musim Panas Argentina", "LHDT": "Waktu Siang Lord Howe", "UYST": "Waktu Musim Panas Uruguay", "OESZ": "Waktu Musim Panas Eropah Timur", "WIB": "Waktu Indonesia Barat", "LHST": "Waktu Piawai Lord Howe", "JST": "Waktu Piawai Jepun", "AKDT": "Waktu Siang Alaska", "HKST": "Waktu Musim Panas Hong Kong", "AWDT": "Waktu Siang Australia Barat", "BOT": "Waktu Bolivia", "HADT": "Waktu Siang Hawaii-Aleutian", "AWST": "Waktu Piawai Australia Barat", "JDT": "Waktu Siang Jepun", "PDT": "Waktu Siang Pasifik", "SGT": "Waktu Piawai Singapura", "EST": "Waktu Piawai Timur", "HKT": "Waktu Piawai Hong Kong", "AKST": "Waktu Piawai Alaska", "ADT": "Waktu Siang Atlantik", "CHAST": "Waktu Piawai Chatham", "WARST": "Waktu Musim Panas Argentina Barat", "CDT": "Waktu Siang Tengah", "COST": "Waktu Musim Panas Colombia", "HEOG": "Waktu Musim Panas Greenland Barat", "CST": "Waktu Piawai Pusat", "MST": "MST", "MDT": "MDT", "NZDT": "Waktu Siang New Zealand", "HNT": "Waktu Piawai Newfoundland", "SAST": "Waktu Piawai Afrika Selatan", "GMT": "Waktu Min Greenwich", "EAT": "Waktu Afrika Timur", "MESZ": "Waktu Musim Panas Eropah Tengah", "ACWDT": "Waktu Siang Barat Tengah Australia", "HNCU": "Waktu Piawai Cuba", "HECU": "Waktu Siang Cuba", "HAT": "Waktu Siang Newfoundland", "EDT": "Waktu Siang Timur", "MYT": "Waktu Malaysia", "AEDT": "Waktu Siang Australia Timur", "HNPMX": "Waktu Piawai Pasifik Mexico", "GYT": "Waktu Guyana", "AST": "Waktu Piawai Atlantik", "NZST": "Waktu Piawai New Zealand", "∅∅∅": "Waktu Musim Panas Brasilia", "GFT": "Waktu Guyana Perancis"},
+ }
+ }
+ 
+diff --git a/ms_BN/ms_BN.go b/ms_BN/ms_BN.go
+index 99d4e16..c3112c8 100644
+--- a/ms_BN/ms_BN.go
++++ b/ms_BN/ms_BN.go
+@@ -50,28 +50,11 @@ func New() locales.Translator {
+ pluralsRange: []locales.PluralRule{6},
+ decimal: ",",
+ group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "$", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ogo", "Sep", "Okt", "Nov", "Dis"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "O", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"},
+- daysAbbreviated: []string{"Ahd", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab"},
+- daysNarrow: []string{"A", "I", "S", "R", "K", "J", "S"},
+- daysShort: []string{"Ah", "Is", "Se", "Ra", "Kh", "Ju", "Sa"},
+- daysWide: []string{"Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu"},
+- periodsAbbreviated: []string{"PG", "PTG"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"PG", "PTG"},
+- erasAbbreviated: []string{"S.M.", "TM"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"S.M.", "TM"},
+- timezones: map[string]string{"WART": "Waktu Piawai Argentina Barat", "HKST": "Waktu Musim Panas Hong Kong", "AEST": "Waktu Piawai Timur Australia", "CLST": "Waktu Musim Panas Chile", "TMST": "Waktu Musim Panas Turkmenistan", "WIB": "Waktu Indonesia Barat", "HNOG": "Waktu Piawai Greenland Barat", "JDT": "Waktu Siang Jepun", "GFT": "Waktu Guyana Perancis", "ECT": "Waktu Ecuador", "GMT": "Waktu Min Greenwich", "WAT": "Waktu Piawai Afrika Barat", "WARST": "Waktu Musim Panas Argentina Barat", "CST": "Waktu Piawai Pusat", "HADT": "Waktu Siang Hawaii-Aleutian", "EST": "Waktu Piawai Timur", "GYT": "Waktu Guyana", "HAST": "Waktu Piawai Hawaii-Aleutian", "HNPM": "Waktu Piawai Saint Pierre dan Miquelon", "NZDT": "Waktu Siang New Zealand", "MESZ": "Waktu Musim Panas Eropah Tengah", "HNNOMX": "Waktu Piawai Barat Laut Mexico", "WIT": "Waktu Indonesia Timur", "ChST": "Waktu Piawai Chamorro", "BOT": "Waktu Bolivia", "OESZ": "Waktu Musim Panas Eropah Timur", "AST": "Waktu Piawai Atlantik", "ACWST": "Waktu Piawai Barat Tengah Australia", "HNT": "Waktu Piawai Newfoundland", "ART": "Waktu Piawai Argentina", "AWDT": "Waktu Siang Australia Barat", "JST": "Waktu Piawai Jepun", "CLT": "Waktu Piawai Chile", "HNPMX": "Waktu Piawai Pasifik Mexico", "CAT": "Waktu Afrika Tengah", "AKDT": "Waktu Siang Alaska", "VET": "Waktu Venezuela", "HKT": "Waktu Piawai Hong Kong", "SAST": "Waktu Piawai Afrika Selatan", "ACDT": "Waktu Siang Australia Tengah", "OEZ": "Waktu Piawai Eropah Timur", "COT": "Waktu Piawai Colombia", "COST": "Waktu Musim Panas Colombia", "MST": "MST", "HAT": "Waktu Siang Newfoundland", "WITA": "Waktu Indonesia Tengah", "CHAST": "Waktu Piawai Chatham", "HEEG": "Waktu Musim Panas Greenland Timur", "TMT": "Waktu Piawai Turkmenistan", "CHADT": "Waktu Siang Chatham", "MYT": "Waktu Malaysia", "ACWDT": "Waktu Siang Barat Tengah Australia", "AWST": "Waktu Piawai Australia Barat", "HNEG": "Waktu Piawai Greenland Timur", "EAT": "Waktu Afrika Timur", "CDT": "Waktu Siang Tengah", "UYST": "Waktu Musim Panas Uruguay", "PDT": "Waktu Siang Pasifik", "MEZ": "Waktu Piawai Eropah Tengah", "LHDT": "Waktu Siang Lord Howe", "EDT": "Waktu Siang Timur", "AKST": "Waktu Piawai Alaska", "HEPM": "Waktu Siang Saint Pierre dan Miquelon", "HNCU": "Waktu Piawai Cuba", "SRT": "Waktu Suriname", "WESZ": "Waktu Musim Panas Eropah Barat", "SGT": "Waktu Piawai Singapura", "ADT": "Waktu Siang Atlantik", "BT": "Waktu Bhutan", "NZST": "Waktu Piawai New Zealand", "WAST": "Waktu Musim Panas Afrika Barat", "HENOMX": "Waktu Siang Barat Laut Mexico", "HECU": "Waktu Siang Cuba", "IST": "Waktu Piawai India", "HEOG": "Waktu Musim Panas Greenland Barat", "PST": "Waktu Piawai Pasifik", "WEZ": "Waktu Piawai Eropah Barat", "HEPMX": "Waktu Siang Pasifik Mexico", "MDT": "MDT", "UYT": "Waktu Piawai Uruguay", "ARST": "Waktu Musim Panas Argentina", "AEDT": "Waktu Siang Australia Timur", "LHST": "Waktu Piawai Lord Howe", "∅∅∅": "Waktu Musim Panas Amazon", "ACST": "Waktu Piawai Australia Tengah"},
++ timezones: map[string]string{"HNPMX": "HNPMX", "COT": "COT", "ART": "ART", "LHST": "LHST", "MYT": "MYT", "CHAST": "CHAST", "PST": "PST", "WART": "WART", "GYT": "GYT", "WITA": "WITA", "EAT": "EAT", "HNEG": "HNEG", "ACWST": "ACWST", "AEDT": "AEDT", "WAST": "WAST", "AKST": "AKST", "CLST": "CLST", "MST": "MST", "ECT": "ECT", "HEEG": "HEEG", "JDT": "JDT", "UYST": "UYST", "ADT": "ADT", "HENOMX": "HENOMX", "VET": "VET", "HNCU": "HNCU", "HNT": "HNT", "EST": "EST", "ChST": "ChST", "SRT": "SRT", "HNNOMX": "HNNOMX", "UYT": "UYT", "ACWDT": "ACWDT", "AWST": "AWST", "LHDT": "LHDT", "WIT": "WIT", "HNOG": "HNOG", "TMST": "TMST", "CAT": "CAT", "CDT": "CDT", "HAST": "HAST", "WAT": "WAT", "HKST": "HKST", "TMT": "TMT", "MDT": "MDT", "NZDT": "NZDT", "MEZ": "MEZ", "ACDT": "ACDT", "AWDT": "AWDT", "PDT": "PDT", "COST": "COST", "EDT": "EDT", "HKT": "HKT", "NZST": "NZST", "BOT": "BOT", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "GFT": "GFT", "BT": "BT", "CLT": "CLT", "WIB": "WIB", "WEZ": "WEZ", "OESZ": "OESZ", "HAT": "HAT", "HEOG": "HEOG", "GMT": "GMT", "ARST": "ARST", "ACST": "ACST", "SGT": "SGT", "OEZ": "OEZ", "HEPMX": "HEPMX", "SAST": "SAST", "CST": "CST", "HADT": "HADT", "HNPM": "HNPM", "CHADT": "CHADT", "WESZ": "WESZ", "JST": "JST", "WARST": "WARST", "AKDT": "AKDT", "AST": "AST", "HEPM": "HEPM", "IST": "IST", "AEST": "AEST", "HECU": "HECU"},
+ }
+ }
+ 
+@@ -124,7 +107,7 @@ func (ms *ms_BN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ms *ms_BN) MonthsAbbreviated() []string {
+- return ms.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -134,7 +117,7 @@ func (ms *ms_BN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ms *ms_BN) MonthsNarrow() []string {
+- return ms.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -144,7 +127,7 @@ func (ms *ms_BN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ms *ms_BN) MonthsWide() []string {
+- return ms.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,73 +173,13 @@ func (ms *ms_BN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ms_BN' and handles both Whole and Real numbers based on 'v'
+ func (ms *ms_BN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ms.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ms.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ms.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ms_BN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ms *ms_BN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ms.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ms.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ms.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ms_BN'
+@@ -264,7 +187,7 @@ func (ms *ms_BN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ms.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -326,7 +249,7 @@ func (ms *ms_BN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ms.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -399,23 +322,6 @@ func (ms *ms_BN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,17 +330,6 @@ func (ms *ms_BN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ms.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -443,17 +338,6 @@ func (ms *ms_BN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ms.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -485,28 +369,6 @@ func (ms *ms_BN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ms.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ms.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -515,35 +377,6 @@ func (ms *ms_BN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ms.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ms.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -552,40 +385,6 @@ func (ms *ms_BN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ms.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ms.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -594,44 +393,5 @@ func (ms *ms_BN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ms.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ms.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ms.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ms_MY/ms_MY.go b/ms_MY/ms_MY.go
+index 2c154a1..db37bed 100644
+--- a/ms_MY/ms_MY.go
++++ b/ms_MY/ms_MY.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ms_MY struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ms_MY' locale
+ func New() locales.Translator {
+ return &ms_MY{
+- locale: "ms_MY",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ogo", "Sep", "Okt", "Nov", "Dis"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "O", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"},
+- daysAbbreviated: []string{"Ahd", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab"},
+- daysNarrow: []string{"A", "I", "S", "R", "K", "J", "S"},
+- daysShort: []string{"Ah", "Is", "Se", "Ra", "Kh", "Ju", "Sa"},
+- daysWide: []string{"Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu"},
+- periodsAbbreviated: []string{"PG", "PTG"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"PG", "PTG"},
+- erasAbbreviated: []string{"S.M.", "TM"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"S.M.", "TM"},
+- timezones: map[string]string{"WESZ": "Waktu Musim Panas Eropah Barat", "AWST": "Waktu Piawai Australia Barat", "HEPMX": "Waktu Siang Pasifik Mexico", "AKDT": "Waktu Siang Alaska", "WIB": "Waktu Indonesia Barat", "BT": "Waktu Bhutan", "∅∅∅": "Waktu Musim Panas Amazon", "WAT": "Waktu Piawai Afrika Barat", "ART": "Waktu Piawai Argentina", "ARST": "Waktu Musim Panas Argentina", "MEZ": "Waktu Piawai Eropah Tengah", "IST": "Waktu Piawai India", "WAST": "Waktu Musim Panas Afrika Barat", "SRT": "Waktu Suriname", "GFT": "Waktu Guyana Perancis", "EAT": "Waktu Afrika Timur", "WART": "Waktu Piawai Argentina Barat", "MYT": "Waktu Malaysia", "NZST": "Waktu Piawai New Zealand", "NZDT": "Waktu Siang New Zealand", "CLST": "Waktu Musim Panas Chile", "HNEG": "Waktu Piawai Greenland Timur", "PDT": "Waktu Siang Pasifik", "CHAST": "Waktu Piawai Chatham", "JDT": "Waktu Siang Jepun", "ECT": "Waktu Ecuador", "WIT": "Waktu Indonesia Timur", "HNOG": "Waktu Piawai Greenland Barat", "HKT": "Waktu Piawai Hong Kong", "WITA": "Waktu Indonesia Tengah", "AEST": "Waktu Piawai Timur Australia", "LHDT": "Waktu Siang Lord Howe", "HNPMX": "Waktu Piawai Pasifik Mexico", "HADT": "Waktu Siang Hawaii-Aleutian", "HAT": "Waktu Siang Newfoundland", "TMST": "Waktu Musim Panas Turkmenistan", "HNCU": "Waktu Piawai Cuba", "EDT": "Waktu Siang Timur", "HAST": "Waktu Piawai Hawaii-Aleutian", "COT": "Waktu Piawai Colombia", "EST": "Waktu Piawai Timur", "CST": "Waktu Piawai Pusat", "HNT": "Waktu Piawai Newfoundland", "HEEG": "Waktu Musim Panas Greenland Timur", "ACST": "Waktu Piawai Australia Tengah", "OEZ": "Waktu Piawai Eropah Timur", "OESZ": "Waktu Musim Panas Eropah Timur", "HEOG": "Waktu Musim Panas Greenland Barat", "UYST": "Waktu Musim Panas Uruguay", "TMT": "Waktu Piawai Turkmenistan", "ChST": "Waktu Piawai Chamorro", "HENOMX": "Waktu Siang Barat Laut Mexico", "GYT": "Waktu Guyana", "AEDT": "Waktu Siang Australia Timur", "AWDT": "Waktu Siang Australia Barat", "HEPM": "Waktu Siang Saint Pierre dan Miquelon", "CHADT": "Waktu Siang Chatham", "COST": "Waktu Musim Panas Colombia", "MST": "MST", "MDT": "MDT", "ACWDT": "Waktu Siang Barat Tengah Australia", "HNPM": "Waktu Piawai Saint Pierre dan Miquelon", "CAT": "Waktu Afrika Tengah", "CDT": "Waktu Siang Tengah", "ADT": "Waktu Siang Atlantik", "ACWST": "Waktu Piawai Barat Tengah Australia", "LHST": "Waktu Piawai Lord Howe", "BOT": "Waktu Bolivia", "WARST": "Waktu Musim Panas Argentina Barat", "VET": "Waktu Venezuela", "HNNOMX": "Waktu Piawai Barat Laut Mexico", "SGT": "Waktu Piawai Singapura", "WEZ": "Waktu Piawai Eropah Barat", "AST": "Waktu Piawai Atlantik", "UYT": "Waktu Piawai Uruguay", "HKST": "Waktu Musim Panas Hong Kong", "SAST": "Waktu Piawai Afrika Selatan", "JST": "Waktu Piawai Jepun", "CLT": "Waktu Piawai Chile", "ACDT": "Waktu Siang Australia Tengah", "PST": "Waktu Piawai Pasifik", "MESZ": "Waktu Musim Panas Eropah Tengah", "HECU": "Waktu Siang Cuba", "GMT": "Waktu Min Greenwich", "AKST": "Waktu Piawai Alaska"},
++ locale: "ms_MY",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNOG": "HNOG", "EST": "EST", "WIB": "WIB", "AWDT": "AWDT", "WEZ": "WEZ", "GFT": "GFT", "∅∅∅": "∅∅∅", "WITA": "WITA", "HEPM": "HEPM", "ACWST": "ACWST", "ACWDT": "ACWDT", "HNEG": "HNEG", "LHST": "LHST", "AKDT": "AKDT", "HAT": "HAT", "CST": "CST", "ECT": "ECT", "AST": "AST", "ACST": "ACST", "HNPM": "HNPM", "WESZ": "WESZ", "HEEG": "HEEG", "AEST": "AEST", "WAT": "WAT", "WAST": "WAST", "WIT": "WIT", "CAT": "CAT", "ART": "ART", "MESZ": "MESZ", "IST": "IST", "MST": "MST", "ARST": "ARST", "EAT": "EAT", "HADT": "HADT", "JDT": "JDT", "HEPMX": "HEPMX", "AKST": "AKST", "OEZ": "OEZ", "TMT": "TMT", "ADT": "ADT", "WART": "WART", "CLST": "CLST", "ACDT": "ACDT", "LHDT": "LHDT", "VET": "VET", "HKT": "HKT", "CDT": "CDT", "MDT": "MDT", "CHADT": "CHADT", "PDT": "PDT", "HAST": "HAST", "SGT": "SGT", "HNT": "HNT", "COST": "COST", "TMST": "TMST", "OESZ": "OESZ", "ChST": "ChST", "SRT": "SRT", "MYT": "MYT", "UYST": "UYST", "HNPMX": "HNPMX", "SAST": "SAST", "HEOG": "HEOG", "HKST": "HKST", "NZST": "NZST", "UYT": "UYT", "HNCU": "HNCU", "WARST": "WARST", "COT": "COT", "MEZ": "MEZ", "BT": "BT", "NZDT": "NZDT", "GMT": "GMT", "HNNOMX": "HNNOMX", "AWST": "AWST", "AEDT": "AEDT", "HECU": "HECU", "CHAST": "CHAST", "PST": "PST", "GYT": "GYT", "EDT": "EDT", "CLT": "CLT", "BOT": "BOT", "HENOMX": "HENOMX", "JST": "JST"},
+ }
+ }
+ 
+@@ -124,7 +101,7 @@ func (ms *ms_MY) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ms *ms_MY) MonthsAbbreviated() []string {
+- return ms.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -134,7 +111,7 @@ func (ms *ms_MY) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ms *ms_MY) MonthsNarrow() []string {
+- return ms.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -144,7 +121,7 @@ func (ms *ms_MY) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ms *ms_MY) MonthsWide() []string {
+- return ms.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,73 +167,13 @@ func (ms *ms_MY) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ms_MY' and handles both Whole and Real numbers based on 'v'
+ func (ms *ms_MY) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ms.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ms.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ms.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ms_MY' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ms *ms_MY) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ms.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ms.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ms.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ms_MY'
+@@ -264,56 +181,7 @@ func (ms *ms_MY) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ms.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ms.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ms.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ms.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ms.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ms_MY'
+@@ -322,68 +190,7 @@ func (ms *ms_MY) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ms.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ms.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ms.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ms.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ms.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ms.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ms_MY'
+@@ -391,23 +198,6 @@ func (ms *ms_MY) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -416,17 +206,6 @@ func (ms *ms_MY) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ms.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -435,17 +214,6 @@ func (ms *ms_MY) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ms.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,19 +222,6 @@ func (ms *ms_MY) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ms.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ms.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,28 +230,6 @@ func (ms *ms_MY) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ms.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ms.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,35 +238,6 @@ func (ms *ms_MY) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ms.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ms.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -542,40 +246,6 @@ func (ms *ms_MY) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ms.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ms.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -584,44 +254,5 @@ func (ms *ms_MY) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ms.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ms.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ms.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ms_SG/ms_SG.go b/ms_SG/ms_SG.go
+index 99b7014..9d77a9f 100644
+--- a/ms_SG/ms_SG.go
++++ b/ms_SG/ms_SG.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ms_SG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ms_SG' locale
+ func New() locales.Translator {
+ return &ms_SG{
+- locale: "ms_SG",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "$", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ogo", "Sep", "Okt", "Nov", "Dis"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "O", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"},
+- daysAbbreviated: []string{"Ahd", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab"},
+- daysNarrow: []string{"A", "I", "S", "R", "K", "J", "S"},
+- daysShort: []string{"Ah", "Is", "Se", "Ra", "Kh", "Ju", "Sa"},
+- daysWide: []string{"Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu"},
+- periodsAbbreviated: []string{"PG", "PTG"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"PG", "PTG"},
+- erasAbbreviated: []string{"S.M.", "TM"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"S.M.", "TM"},
+- timezones: map[string]string{"AKST": "Waktu Piawai Alaska", "PDT": "Waktu Siang Pasifik", "SAST": "Waktu Piawai Afrika Selatan", "ACDT": "Waktu Siang Australia Tengah", "TMST": "Waktu Musim Panas Turkmenistan", "WART": "Waktu Piawai Argentina Barat", "GMT": "Waktu Min Greenwich", "HEPMX": "Waktu Siang Pasifik Mexico", "HAST": "Waktu Piawai Hawaii-Aleutian", "AWDT": "Waktu Siang Australia Barat", "CLT": "Waktu Piawai Chile", "WARST": "Waktu Musim Panas Argentina Barat", "HNNOMX": "Waktu Piawai Barat Laut Mexico", "AST": "Waktu Piawai Atlantik", "ACWST": "Waktu Piawai Barat Tengah Australia", "HNT": "Waktu Piawai Newfoundland", "AEST": "Waktu Piawai Timur Australia", "OESZ": "Waktu Musim Panas Eropah Timur", "CLST": "Waktu Musim Panas Chile", "JDT": "Waktu Siang Jepun", "BT": "Waktu Bhutan", "ACST": "Waktu Piawai Australia Tengah", "EST": "Waktu Piawai Timur", "WESZ": "Waktu Musim Panas Eropah Barat", "HNPM": "Waktu Piawai Saint Pierre dan Miquelon", "SGT": "Waktu Piawai Singapura", "CHADT": "Waktu Siang Chatham", "HEEG": "Waktu Musim Panas Greenland Timur", "WIT": "Waktu Indonesia Timur", "SRT": "Waktu Suriname", "WITA": "Waktu Indonesia Tengah", "LHST": "Waktu Piawai Lord Howe", "WAST": "Waktu Musim Panas Afrika Barat", "HECU": "Waktu Siang Cuba", "CDT": "Waktu Siang Tengah", "GFT": "Waktu Guyana Perancis", "WAT": "Waktu Piawai Afrika Barat", "COT": "Waktu Piawai Colombia", "MYT": "Waktu Malaysia", "ART": "Waktu Piawai Argentina", "LHDT": "Waktu Siang Lord Howe", "ChST": "Waktu Piawai Chamorro", "MEZ": "Waktu Piawai Eropah Tengah", "HENOMX": "Waktu Siang Barat Laut Mexico", "MDT": "MDT", "WIB": "Waktu Indonesia Barat", "HKT": "Waktu Piawai Hong Kong", "HKST": "Waktu Musim Panas Hong Kong", "MST": "MST", "UYST": "Waktu Musim Panas Uruguay", "PST": "Waktu Piawai Pasifik", "NZST": "Waktu Piawai New Zealand", "EDT": "Waktu Siang Timur", "ECT": "Waktu Ecuador", "GYT": "Waktu Guyana", "UYT": "Waktu Piawai Uruguay", "ACWDT": "Waktu Siang Barat Tengah Australia", "ARST": "Waktu Musim Panas Argentina", "AEDT": "Waktu Siang Australia Timur", "IST": "Waktu Piawai India", "HNEG": "Waktu Piawai Greenland Timur", "COST": "Waktu Musim Panas Colombia", "HAT": "Waktu Siang Newfoundland", "HEPM": "Waktu Siang Saint Pierre dan Miquelon", "CHAST": "Waktu Piawai Chatham", "EAT": "Waktu Afrika Timur", "HNCU": "Waktu Piawai Cuba", "HNPMX": "Waktu Piawai Pasifik Mexico", "CST": "Waktu Piawai Pusat", "HADT": "Waktu Siang Hawaii-Aleutian", "HNOG": "Waktu Piawai Greenland Barat", "MESZ": "Waktu Musim Panas Eropah Tengah", "CAT": "Waktu Afrika Tengah", "WEZ": "Waktu Piawai Eropah Barat", "OEZ": "Waktu Piawai Eropah Timur", "AKDT": "Waktu Siang Alaska", "ADT": "Waktu Siang Atlantik", "HEOG": "Waktu Musim Panas Greenland Barat", "∅∅∅": "Waktu Musim Panas Amazon", "BOT": "Waktu Bolivia", "JST": "Waktu Piawai Jepun", "TMT": "Waktu Piawai Turkmenistan", "VET": "Waktu Venezuela", "AWST": "Waktu Piawai Australia Barat", "NZDT": "Waktu Siang New Zealand"},
++ locale: "ms_SG",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "$", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACDT": "ACDT", "CHADT": "CHADT", "IST": "IST", "SAST": "SAST", "ECT": "ECT", "ADT": "ADT", "GMT": "GMT", "ChST": "ChST", "LHDT": "LHDT", "WART": "WART", "HKT": "HKT", "WIB": "WIB", "CDT": "CDT", "HADT": "HADT", "LHST": "LHST", "HNPM": "HNPM", "HEPM": "HEPM", "SGT": "SGT", "HECU": "HECU", "HNNOMX": "HNNOMX", "WIT": "WIT", "EDT": "EDT", "CAT": "CAT", "ACST": "ACST", "HNEG": "HNEG", "JDT": "JDT", "PST": "PST", "PDT": "PDT", "∅∅∅": "∅∅∅", "MESZ": "MESZ", "UYST": "UYST", "HNPMX": "HNPMX", "AKST": "AKST", "EAT": "EAT", "VET": "VET", "HNCU": "HNCU", "HNT": "HNT", "MST": "MST", "ARST": "ARST", "HAST": "HAST", "ART": "ART", "AWDT": "AWDT", "WESZ": "WESZ", "WAT": "WAT", "GYT": "GYT", "WITA": "WITA", "CLST": "CLST", "NZDT": "NZDT", "AST": "AST", "AKDT": "AKDT", "OESZ": "OESZ", "WARST": "WARST", "HKST": "HKST", "TMT": "TMT", "MEZ": "MEZ", "NZST": "NZST", "BT": "BT", "AEST": "AEST", "COT": "COT", "COST": "COST", "MDT": "MDT", "HENOMX": "HENOMX", "ACWST": "ACWST", "UYT": "UYT", "WEZ": "WEZ", "HEOG": "HEOG", "CLT": "CLT", "CST": "CST", "JST": "JST", "AWST": "AWST", "CHAST": "CHAST", "GFT": "GFT", "TMST": "TMST", "HNOG": "HNOG", "BOT": "BOT", "AEDT": "AEDT", "HEPMX": "HEPMX", "WAST": "WAST", "OEZ": "OEZ", "HAT": "HAT", "MYT": "MYT", "ACWDT": "ACWDT", "EST": "EST", "SRT": "SRT", "HEEG": "HEEG"},
+ }
+ }
+ 
+@@ -124,7 +101,7 @@ func (ms *ms_SG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ms *ms_SG) MonthsAbbreviated() []string {
+- return ms.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -134,7 +111,7 @@ func (ms *ms_SG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ms *ms_SG) MonthsNarrow() []string {
+- return ms.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -144,7 +121,7 @@ func (ms *ms_SG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ms *ms_SG) MonthsWide() []string {
+- return ms.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,73 +167,13 @@ func (ms *ms_SG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ms_SG' and handles both Whole and Real numbers based on 'v'
+ func (ms *ms_SG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ms.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ms.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ms.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ms_SG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ms *ms_SG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ms.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ms.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ms.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ms_SG'
+@@ -264,56 +181,7 @@ func (ms *ms_SG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ms.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ms.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ms.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ms.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ms.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ms_SG'
+@@ -322,68 +190,7 @@ func (ms *ms_SG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ms.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ms.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ms.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ms.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ms.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ms.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ms_SG'
+@@ -391,23 +198,6 @@ func (ms *ms_SG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -416,17 +206,6 @@ func (ms *ms_SG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ms.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -435,17 +214,6 @@ func (ms *ms_SG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ms.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,19 +222,6 @@ func (ms *ms_SG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ms.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ms.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,28 +230,6 @@ func (ms *ms_SG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ms.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ms.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,35 +238,6 @@ func (ms *ms_SG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ms.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ms.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -542,40 +246,6 @@ func (ms *ms_SG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ms.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ms.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -584,44 +254,5 @@ func (ms *ms_SG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ms.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ms.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ms.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ms.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/mt/mt.go b/mt/mt.go
+index ae54b6c..440aa45 100644
+--- a/mt/mt.go
++++ b/mt/mt.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"QK", "WK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Qabel Kristu", "Wara Kristu"},
+- timezones: map[string]string{"ACWDT": "ACWDT", "NZDT": "NZDT", "MEZ": "Ħin Ċentrali Ewropew Standard", "BOT": "BOT", "MDT": "MDT", "GYT": "GYT", "WIB": "WIB", "HKST": "HKST", "GMT": "GMT", "GFT": "GFT", "HENOMX": "HENOMX", "COT": "COT", "PDT": "PDT", "WITA": "WITA", "HEPM": "HEPM", "IST": "IST", "WAST": "WAST", "HNPMX": "HNPMX", "UYT": "UYT", "VET": "VET", "HEOG": "HEOG", "AWST": "AWST", "CHAST": "CHAST", "HEPMX": "HEPMX", "AST": "AST", "WIT": "WIT", "AWDT": "AWDT", "CLST": "CLST", "TMST": "TMST", "OESZ": "OESZ", "CDT": "CDT", "ACWST": "ACWST", "PST": "PST", "HEEG": "HEEG", "MYT": "MYT", "BT": "BT", "JDT": "JDT", "HNCU": "HNCU", "UYST": "UYST", "HAT": "HAT", "CLT": "CLT", "TMT": "TMT", "AEDT": "AEDT", "MESZ": "Ħin Ċentrali Ewropew tas-Sajf", "LHDT": "LHDT", "ARST": "ARST", "SAST": "SAST", "JST": "JST", "HNEG": "HNEG", "WAT": "WAT", "EDT": "EDT", "HADT": "HADT", "ART": "ART", "OEZ": "OEZ", "ECT": "ECT", "HECU": "HECU", "EST": "EST", "AKDT": "AKDT", "ACDT": "ACDT", "HNOG": "HNOG", "EAT": "EAT", "COST": "COST", "SGT": "SGT", "HAST": "HAST", "SRT": "SRT", "HNT": "HNT", "HNNOMX": "HNNOMX", "WARST": "WARST", "WESZ": "WESZ", "HKT": "HKT", "CAT": "CAT", "ACST": "ACST", "AEST": "AEST", "CHADT": "CHADT", "ChST": "ChST", "HNPM": "HNPM", "NZST": "NZST", "LHST": "LHST", "∅∅∅": "∅∅∅", "WART": "WART", "MST": "MST", "ADT": "ADT", "WEZ": "WEZ", "AKST": "AKST", "CST": "CST"},
++ timezones: map[string]string{"EAT": "EAT", "WEZ": "WEZ", "HNCU": "HNCU", "HAT": "HAT", "HNOG": "HNOG", "HEOG": "HEOG", "WIB": "WIB", "AKST": "AKST", "WARST": "WARST", "ADT": "ADT", "PST": "PST", "WAST": "WAST", "SAST": "SAST", "HKST": "HKST", "AWST": "AWST", "ART": "ART", "HNEG": "HNEG", "HENOMX": "HENOMX", "AWDT": "AWDT", "COT": "COT", "MST": "MST", "HAST": "HAST", "MEZ": "Ħin Ċentrali Ewropew Standard", "ACST": "ACST", "UYT": "UYT", "SGT": "SGT", "VET": "VET", "TMST": "TMST", "SRT": "SRT", "CDT": "CDT", "NZST": "NZST", "MESZ": "Ħin Ċentrali Ewropew tas-Sajf", "MYT": "MYT", "AEST": "AEST", "EST": "EST", "CST": "CST", "IST": "IST", "OEZ": "OEZ", "GFT": "GFT", "CLT": "CLT", "ECT": "ECT", "ARST": "ARST", "UYST": "UYST", "WESZ": "WESZ", "TMT": "TMT", "MDT": "MDT", "GYT": "GYT", "CLST": "CLST", "AST": "AST", "JST": "JST", "BT": "BT", "HNT": "HNT", "EDT": "EDT", "ChST": "ChST", "∅∅∅": "∅∅∅", "PDT": "PDT", "WAT": "WAT", "WART": "WART", "COST": "COST", "AEDT": "AEDT", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "HEPMX": "HEPMX", "HKT": "HKT", "BOT": "BOT", "HADT": "HADT", "ACDT": "ACDT", "JDT": "JDT", "LHDT": "LHDT", "HEPM": "HEPM", "HECU": "HECU", "AKDT": "AKDT", "NZDT": "NZDT", "WITA": "WITA", "HEEG": "HEEG", "HNPM": "HNPM", "CHADT": "CHADT", "ACWST": "ACWST", "HNPMX": "HNPMX", "OESZ": "OESZ", "GMT": "GMT", "CHAST": "CHAST", "WIT": "WIT", "CAT": "CAT", "LHST": "LHST"},
+ }
+ }
+ 
+diff --git a/mt_MT/mt_MT.go b/mt_MT/mt_MT.go
+index 52f3200..ea3627d 100644
+--- a/mt_MT/mt_MT.go
++++ b/mt_MT/mt_MT.go
+@@ -42,32 +42,13 @@ type mt_MT struct {
+ // New returns a new instance of translator for the 'mt_MT' locale
+ func New() locales.Translator {
+ return &mt_MT{
+- locale: "mt_MT",
+- pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Jan", "Fra", "Mar", "Apr", "Mej", "Ġun", "Lul", "Aww", "Set", "Ott", "Nov", "Diċ"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "Ġ", "L", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Jannar", "Frar", "Marzu", "April", "Mejju", "Ġunju", "Lulju", "Awwissu", "Settembru", "Ottubru", "Novembru", "Diċembru"},
+- daysAbbreviated: []string{"Ħad", "Tne", "Tli", "Erb", "Ħam", "Ġim", "Sib"},
+- daysNarrow: []string{"Ħd", "T", "Tl", "Er", "Ħm", "Ġm", "Sb"},
+- daysShort: []string{"Ħad", "Tne", "Tli", "Erb", "Ħam", "Ġim", "Sib"},
+- daysWide: []string{"Il-Ħadd", "It-Tnejn", "It-Tlieta", "L-Erbgħa", "Il-Ħamis", "Il-Ġimgħa", "Is-Sibt"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"am", "pm"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"QK", "WK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Qabel Kristu", "Wara Kristu"},
+- timezones: map[string]string{"HEEG": "HEEG", "EDT": "EDT", "AWST": "AWST", "ARST": "ARST", "WITA": "WITA", "MEZ": "Ħin Ċentrali Ewropew Standard", "CLST": "CLST", "AST": "AST", "HADT": "HADT", "BT": "BT", "HNPM": "HNPM", "ChST": "ChST", "HENOMX": "HENOMX", "GMT": "GMT", "MDT": "MDT", "ART": "ART", "NZDT": "NZDT", "IST": "IST", "WAT": "WAT", "COST": "COST", "SRT": "SRT", "HAST": "HAST", "CHADT": "CHADT", "ACDT": "ACDT", "CAT": "CAT", "WAST": "WAST", "WARST": "WARST", "HECU": "HECU", "WIB": "WIB", "GYT": "GYT", "NZST": "NZST", "TMST": "TMST", "GFT": "GFT", "OEZ": "OEZ", "ADT": "ADT", "UYT": "UYT", "WESZ": "WESZ", "WIT": "WIT", "MESZ": "Ħin Ċentrali Ewropew tas-Sajf", "MST": "MST", "HNPMX": "HNPMX", "CHAST": "CHAST", "HEOG": "HEOG", "ACWDT": "ACWDT", "HNT": "HNT", "AWDT": "AWDT", "LHDT": "LHDT", "SGT": "SGT", "VET": "VET", "JST": "JST", "WART": "WART", "MYT": "MYT", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "ACST": "ACST", "PDT": "PDT", "AEST": "AEST", "HEPM": "HEPM", "JDT": "JDT", "AKST": "AKST", "HAT": "HAT", "CLT": "CLT", "TMT": "TMT", "EAT": "EAT", "COT": "COT", "CST": "CST", "LHST": "LHST", "HKT": "HKT", "SAST": "SAST", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "PST": "PST", "ACWST": "ACWST", "HKST": "HKST", "BOT": "BOT", "HNEG": "HNEG", "ECT": "ECT", "OESZ": "OESZ", "HNOG": "HNOG", "EST": "EST", "HEPMX": "HEPMX", "UYST": "UYST", "AKDT": "AKDT", "CDT": "CDT", "HNCU": "HNCU"},
++ locale: "mt_MT",
++ pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEPM": "HEPM", "JST": "JST", "IST": "IST", "CHADT": "CHADT", "WIT": "WIT", "EST": "EST", "WITA": "WITA", "WIB": "WIB", "SAST": "SAST", "MST": "MST", "HNEG": "HNEG", "TMST": "TMST", "CAT": "CAT", "ART": "ART", "ARST": "ARST", "AEST": "AEST", "WAT": "WAT", "COT": "COT", "HAST": "HAST", "WAST": "WAST", "HEOG": "HEOG", "ADT": "ADT", "CST": "CST", "ECT": "ECT", "UYT": "UYT", "UYST": "UYST", "HNCU": "HNCU", "WARST": "WARST", "HKST": "HKST", "TMT": "TMT", "ChST": "ChST", "SRT": "SRT", "MEZ": "MEZ", "MESZ": "MESZ", "ACDT": "ACDT", "LHST": "LHST", "WESZ": "WESZ", "GFT": "GFT", "COST": "COST", "HKT": "HKT", "HEEG": "HEEG", "CLST": "CLST", "GMT": "GMT", "NZST": "NZST", "NZDT": "NZDT", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "SGT": "SGT", "AKST": "AKST", "HNT": "HNT", "WART": "WART", "HADT": "HADT", "HNPM": "HNPM", "BT": "BT", "HNPMX": "HNPMX", "CDT": "CDT", "MDT": "MDT", "HNNOMX": "HNNOMX", "MYT": "MYT", "PDT": "PDT", "ACWST": "ACWST", "HECU": "HECU", "AKDT": "AKDT", "GYT": "GYT", "JDT": "JDT", "HEPMX": "HEPMX", "OEZ": "OEZ", "HAT": "HAT", "CLT": "CLT", "EAT": "EAT", "PST": "PST", "HNOG": "HNOG", "BOT": "BOT", "AWST": "AWST", "OESZ": "OESZ", "AST": "AST", "ACST": "ACST", "HENOMX": "HENOMX", "LHDT": "LHDT", "ACWDT": "ACWDT", "AEDT": "AEDT", "WEZ": "WEZ", "VET": "VET", "EDT": "EDT", "AWDT": "AWDT"},
+ }
+ }
+ 
+@@ -125,7 +106,7 @@ func (mt *mt_MT) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (mt *mt_MT) MonthsAbbreviated() []string {
+- return mt.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -135,7 +116,7 @@ func (mt *mt_MT) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (mt *mt_MT) MonthsNarrow() []string {
+- return mt.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -145,7 +126,7 @@ func (mt *mt_MT) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (mt *mt_MT) MonthsWide() []string {
+- return mt.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -191,73 +172,13 @@ func (mt *mt_MT) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'mt_MT' and handles both Whole and Real numbers based on 'v'
+ func (mt *mt_MT) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, mt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'mt_MT' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (mt *mt_MT) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mt.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, mt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, mt.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'mt_MT'
+@@ -265,56 +186,7 @@ func (mt *mt_MT) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mt.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, mt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'mt_MT'
+@@ -323,64 +195,7 @@ func (mt *mt_MT) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mt.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, mt.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'mt_MT'
+@@ -388,27 +203,6 @@ func (mt *mt_MT) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -417,21 +211,6 @@ func (mt *mt_MT) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mt.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -440,18 +219,6 @@ func (mt *mt_MT) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x74, 0x61}...)
+- b = append(b, []byte{0xe2, 0x80, 0x99, 0x20}...)
+- b = append(b, mt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -460,20 +227,6 @@ func (mt *mt_MT) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, mt.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x74, 0x61}...)
+- b = append(b, []byte{0xe2, 0x80, 0x99, 0x20}...)
+- b = append(b, mt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -482,19 +235,6 @@ func (mt *mt_MT) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -503,26 +243,6 @@ func (mt *mt_MT) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -531,30 +251,6 @@ func (mt *mt_MT) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -563,34 +259,5 @@ func (mt *mt_MT) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := mt.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/mua/mua.go b/mua/mua.go
+index 80367b9..15d3295 100644
+--- a/mua/mua.go
++++ b/mua/mua.go
+@@ -65,7 +65,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"KK", "PK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"KǝPel Kristu", "Pel Kristu"},
+- timezones: map[string]string{"ACST": "ACST", "PST": "PST", "HNPM": "HNPM", "LHDT": "LHDT", "SAST": "SAST", "CLST": "CLST", "JST": "JST", "TMT": "TMT", "TMST": "TMST", "WAT": "WAT", "HNNOMX": "HNNOMX", "HAST": "HAST", "HEOG": "HEOG", "MEZ": "MEZ", "HECU": "HECU", "EST": "EST", "AKDT": "AKDT", "ARST": "ARST", "HNCU": "HNCU", "HEPM": "HEPM", "MDT": "MDT", "CDT": "CDT", "AST": "AST", "WIB": "WIB", "CLT": "CLT", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "CAT": "CAT", "BT": "BT", "LHST": "LHST", "CHAST": "CHAST", "COST": "COST", "WART": "WART", "WEZ": "WEZ", "HKT": "HKT", "WITA": "WITA", "ChST": "ChST", "SGT": "SGT", "HNPMX": "HNPMX", "ART": "ART", "AWST": "AWST", "NZST": "NZST", "HEEG": "HEEG", "WAST": "WAST", "HENOMX": "HENOMX", "AKST": "AKST", "HNOG": "HNOG", "AEDT": "AEDT", "VET": "VET", "WESZ": "WESZ", "ACWST": "ACWST", "ACWDT": "ACWDT", "AEST": "AEST", "HNEG": "HNEG", "COT": "COT", "CST": "CST", "HADT": "HADT", "CHADT": "CHADT", "GMT": "GMT", "EDT": "EDT", "AWDT": "AWDT", "HKST": "HKST", "IST": "IST", "UYST": "UYST", "HNT": "HNT", "MESZ": "MESZ", "JDT": "JDT", "ACDT": "ACDT", "UYT": "UYT", "GYT": "GYT", "MYT": "MYT", "PDT": "PDT", "GFT": "GFT", "EAT": "EAT", "HEPMX": "HEPMX", "ADT": "ADT", "HAT": "HAT", "NZDT": "NZDT", "ECT": "ECT", "MST": "MST", "WIT": "WIT", "SRT": "SRT", "BOT": "BOT", "OESZ": "OESZ", "WARST": "WARST"},
++ timezones: map[string]string{"ChST": "ChST", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "MYT": "MYT", "HKST": "HKST", "CAT": "CAT", "ADT": "ADT", "AST": "AST", "AEDT": "AEDT", "AKDT": "AKDT", "HAT": "HAT", "MST": "MST", "NZST": "NZST", "WIB": "WIB", "HNOG": "HNOG", "TMT": "TMT", "AEST": "AEST", "ACDT": "ACDT", "HENOMX": "HENOMX", "UYST": "UYST", "VET": "VET", "HNCU": "HNCU", "CST": "CST", "CDT": "CDT", "BOT": "BOT", "WART": "WART", "TMST": "TMST", "EAT": "EAT", "ACST": "ACST", "AWST": "AWST", "HEPMX": "HEPMX", "GYT": "GYT", "∅∅∅": "∅∅∅", "EST": "EST", "CHAST": "CHAST", "EDT": "EDT", "MDT": "MDT", "MEZ": "MEZ", "ECT": "ECT", "WAST": "WAST", "NZDT": "NZDT", "OESZ": "OESZ", "WEZ": "WEZ", "HECU": "HECU", "HNPMX": "HNPMX", "WARST": "WARST", "SAST": "SAST", "HADT": "HADT", "IST": "IST", "JDT": "JDT", "HNT": "HNT", "COST": "COST", "ART": "ART", "HEPM": "HEPM", "ACWDT": "ACWDT", "GFT": "GFT", "CLST": "CLST", "SRT": "SRT", "UYT": "UYT", "BT": "BT", "SGT": "SGT", "OEZ": "OEZ", "WIT": "WIT", "COT": "COT", "HKT": "HKT", "LHST": "LHST", "ACWST": "ACWST", "GMT": "GMT", "CHADT": "CHADT", "PDT": "PDT", "AWDT": "AWDT", "LHDT": "LHDT", "HEOG": "HEOG", "ARST": "ARST", "MESZ": "MESZ", "WESZ": "WESZ", "WAT": "WAT", "WITA": "WITA", "HEEG": "HEEG", "JST": "JST", "PST": "PST", "AKST": "AKST", "CLT": "CLT", "HAST": "HAST", "HNPM": "HNPM"},
+ }
+ }
+ 
+diff --git a/mua_CM/mua_CM.go b/mua_CM/mua_CM.go
+index 2298af7..1a2c637 100644
+--- a/mua_CM/mua_CM.go
++++ b/mua_CM/mua_CM.go
+@@ -10,62 +10,45 @@ import (
+ )
+ 
+ type mua_CM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'mua_CM' locale
+ func New() locales.Translator {
+ return &mua_CM{
+- locale: "mua_CM",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "FLO", "CLA", "CKI", "FMF", "MAD", "MBI", "MLI", "MAM", "FDE", "FMU", "FGW", "FYU"},
+- monthsNarrow: []string{"", "O", "A", "I", "F", "D", "B", "L", "M", "E", "U", "W", "Y"},
+- monthsWide: []string{"", "Fĩi Loo", "Cokcwaklaŋne", "Cokcwaklii", "Fĩi Marfoo", "Madǝǝuutǝbijaŋ", "Mamǝŋgwãafahbii", "Mamǝŋgwãalii", "Madǝmbii", "Fĩi Dǝɓlii", "Fĩi Mundaŋ", "Fĩi Gwahlle", "Fĩi Yuru"},
+- daysAbbreviated: []string{"Cya", "Cla", "Czi", "Cko", "Cka", "Cga", "Cze"},
+- daysNarrow: []string{"Y", "L", "Z", "O", "A", "G", "E"},
+- daysWide: []string{"Com’yakke", "Comlaaɗii", "Comzyiiɗii", "Comkolle", "Comkaldǝɓlii", "Comgaisuu", "Comzyeɓsuu"},
+- periodsAbbreviated: []string{"comme", "lilli"},
+- periodsWide: []string{"comme", "lilli"},
+- erasAbbreviated: []string{"KK", "PK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"KǝPel Kristu", "Pel Kristu"},
+- timezones: map[string]string{"AEST": "AEST", "WITA": "WITA", "NZDT": "NZDT", "CHADT": "CHADT", "JST": "JST", "WIT": "WIT", "PDT": "PDT", "ARST": "ARST", "BOT": "BOT", "CAT": "CAT", "ACDT": "ACDT", "HECU": "HECU", "UYST": "UYST", "HADT": "HADT", "HNPM": "HNPM", "IST": "IST", "HEEG": "HEEG", "WAST": "WAST", "COST": "COST", "CDT": "CDT", "AWST": "AWST", "AWDT": "AWDT", "JDT": "JDT", "CLT": "CLT", "GFT": "GFT", "GMT": "GMT", "MYT": "MYT", "HEPM": "HEPM", "HNEG": "HNEG", "EDT": "EDT", "BT": "BT", "TMST": "TMST", "OESZ": "OESZ", "CLST": "CLST", "ACST": "ACST", "WART": "WART", "UYT": "UYT", "AKST": "AKST", "PST": "PST", "HNT": "HNT", "LHDT": "LHDT", "AKDT": "AKDT", "ADT": "ADT", "WEZ": "WEZ", "AEDT": "AEDT", "WARST": "WARST", "WESZ": "WESZ", "ACWST": "ACWST", "HNCU": "HNCU", "ART": "ART", "HKT": "HKT", "MEZ": "MEZ", "GYT": "GYT", "CST": "CST", "ECT": "ECT", "MDT": "MDT", "HEPMX": "HEPMX", "HENOMX": "HENOMX", "MST": "MST", "VET": "VET", "HEOG": "HEOG", "CHAST": "CHAST", "WAT": "WAT", "OEZ": "OEZ", "SGT": "SGT", "HNPMX": "HNPMX", "AST": "AST", "ACWDT": "ACWDT", "SAST": "SAST", "∅∅∅": "∅∅∅", "EAT": "EAT", "COT": "COT", "EST": "EST", "HNOG": "HNOG", "MESZ": "MESZ", "NZST": "NZST", "ChST": "ChST", "HNNOMX": "HNNOMX", "WIB": "WIB", "HAST": "HAST", "SRT": "SRT", "HAT": "HAT", "HKST": "HKST", "LHST": "LHST", "TMT": "TMT"},
++ locale: "mua_CM",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"PST": "PST", "HNPMX": "HNPMX", "WAST": "WAST", "EST": "EST", "CAT": "CAT", "ChST": "ChST", "HADT": "HADT", "AEST": "AEST", "ART": "ART", "LHDT": "LHDT", "AKST": "AKST", "MST": "MST", "ADT": "ADT", "WART": "WART", "WARST": "WARST", "COT": "COT", "HKST": "HKST", "WIB": "WIB", "ARST": "ARST", "HAST": "HAST", "MESZ": "MESZ", "AWDT": "AWDT", "MYT": "MYT", "ACWST": "ACWST", "HEOG": "HEOG", "HEPM": "HEPM", "AEDT": "AEDT", "ACWDT": "ACWDT", "ACDT": "ACDT", "AWST": "AWST", "WIT": "WIT", "TMT": "TMT", "TMST": "TMST", "NZST": "NZST", "BOT": "BOT", "ACST": "ACST", "BT": "BT", "VET": "VET", "GFT": "GFT", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "PDT": "PDT", "HEPMX": "HEPMX", "SGT": "SGT", "HENOMX": "HENOMX", "UYT": "UYT", "COST": "COST", "HKT": "HKT", "CLST": "CLST", "CST": "CST", "EAT": "EAT", "HEEG": "HEEG", "WESZ": "WESZ", "HECU": "HECU", "JDT": "JDT", "LHST": "LHST", "WAT": "WAT", "AKDT": "AKDT", "OEZ": "OEZ", "SAST": "SAST", "CLT": "CLT", "CDT": "CDT", "HAT": "HAT", "EDT": "EDT", "ECT": "ECT", "GMT": "GMT", "HNEG": "HNEG", "WEZ": "WEZ", "HNT": "HNT", "WITA": "WITA", "SRT": "SRT", "MEZ": "MEZ", "JST": "JST", "GYT": "GYT", "HNOG": "HNOG", "AST": "AST", "∅∅∅": "∅∅∅", "MDT": "MDT", "CHADT": "CHADT", "HNCU": "HNCU", "OESZ": "OESZ", "NZDT": "NZDT", "CHAST": "CHAST", "UYST": "UYST", "IST": "IST"},
+ }
+ }
+ 
+@@ -111,7 +94,7 @@ func (mua *mua_CM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (mua *mua_CM) MonthsAbbreviated() []string {
+- return mua.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -121,7 +104,7 @@ func (mua *mua_CM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (mua *mua_CM) MonthsNarrow() []string {
+- return mua.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -131,7 +114,7 @@ func (mua *mua_CM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (mua *mua_CM) MonthsWide() []string {
+- return mua.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -177,73 +160,13 @@ func (mua *mua_CM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'mua_CM' and handles both Whole and Real numbers based on 'v'
+ func (mua *mua_CM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mua.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mua.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, mua.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'mua_CM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (mua *mua_CM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mua.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, mua.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, mua.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'mua_CM'
+@@ -251,56 +174,7 @@ func (mua *mua_CM) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mua.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mua.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mua.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, mua.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mua.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'mua_CM'
+@@ -309,68 +183,7 @@ func (mua *mua_CM) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := mua.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, mua.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, mua.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, mua.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, mua.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, mua.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'mua_CM'
+@@ -378,17 +191,6 @@ func (mua *mua_CM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -397,17 +199,6 @@ func (mua *mua_CM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mua.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -416,17 +207,6 @@ func (mua *mua_CM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mua.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -435,19 +215,6 @@ func (mua *mua_CM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, mua.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, mua.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -456,19 +223,6 @@ func (mua *mua_CM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mua.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -477,26 +231,6 @@ func (mua *mua_CM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mua.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mua.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -505,30 +239,6 @@ func (mua *mua_CM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mua.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mua.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -537,34 +247,5 @@ func (mua *mua_CM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, mua.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, mua.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := mua.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/my/my.go b/my/my.go
+index e0d402a..8d33bd0 100644
+--- a/my/my.go
++++ b/my/my.go
+@@ -68,7 +68,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ဘီစီ", "အေဒီ"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"ခရစ်တော် မပေါ်မီနှစ်", "ခရစ်နှစ်"},
+- timezones: map[string]string{"HENOMX": "အနောက်တောင် မက္ကစီကို နွေရာသီ စံတော်ချိန်", "SRT": "စူးရီနာမ်အချိန်", "HNPM": "စိန့်ပီအဲနှင့်မီခွီလွန်စံတော်ချိန်", "CHAST": "ချားသမ်စံတော်ချိန်", "CAT": "အလယ်အာဖရိက အချိန်", "EAT": "အရှေ့အာဖရိက အချိန်", "MST": "မကာအို စံတော်ချိန်", "HADT": "ဟာဝိုင်ယီ အယ်လူးရှန်း နွေရာသီ စံတော်ချိန်", "ACWDT": "ဩစတြေးလျား အလယ်အနောက်ပိုင်း နွေရာသီ အချိန်", "HNOG": "အနောက် ဂရင်းလန်း စံတော်ချိန်", "HNCU": "ကျူးဘား စံတော်ချိန်", "AKST": "အလားစကားစံတော်ချိန်", "MYT": "မလေးရှား အချိန်", "UYST": "ဥရုဂွေး နွေရာသီ အချိန်", "VET": "ဗင်နီဇွဲလား အချိန်", "ACWST": "ဩစတြေးလျား အလယ်အနောက်ပိုင်း စံတော်ချိန်", "HEPM": "စိန့်ပီအဲနှင့် မီခွီလွန် နွေရာသီ စံတော်ချိန်", "MESZ": "ဥရောပ အလယ်ပိုင်း နွေရာသီ အချိန်", "ChST": "ချာမိုရိုအချိန်", "WAT": "အနောက်အာဖရိက စံတော်ချိန်", "WIB": "အနောက်ပိုင်း အင်ဒိုနီးရှား အချိန်", "HEOG": "အနောက် ဂရင်းလန် နွေရာသီ စံတော်ချိန်", "AEDT": "အရှေ့ဩစတြေးလျား နွေရာသီ အချိန်", "AWST": "အနောက်ဩစတြေးလျား စံတော်ချိန်", "LHST": "လော့ဒ်ဟောင်စံတော်ချိန်", "IST": "အိန္ဒိယ စံတော်ချိန်", "TMT": "တာ့ခ်မင်နစ္စတန် စံတော်ချိန်", "TMST": "တာ့ခ်မင်နစ္စတန် နွေရာသီ အချိန်", "HNT": "နယူးဖောင်လန် စံတော်ချိန်", "SAST": "တောင်အာဖရိက အချိန်", "ACST": "ဩစတြေးလျား အလယ်ပိုင်း စံတော်ချိန်", "ECT": "အီကွေဒေါ အချိန်", "EST": "မြောက်အမေရိက အရှေ့ပိုင်းစံတော်ချိန်", "EDT": "မြောက်အမေရိက အရှေ့ပိုင်း နွေရာသီစံတော်ချိန်", "AWDT": "ဩစတြေးလျား နွေရာသီ အချိန်", "HKST": "ဟောင်ကောင် နွေရာသီ အချိန်", "WAST": "အနောက်အာဖရိက နွေရာသီ အချိန်", "HECU": "ကျူးဘား နွေရာသီ စံတော်ချိန်", "AKDT": "အလားစကား နွေရာသီစံတော်ချိန်", "NZST": "နယူးဇီလန် စံတော်ချိန်", "BT": "ဘူတန် အချိန်", "WESZ": "အနောက်ဥရောပ နွေရာသီ အချိန်", "HNEG": "အရှေ့ဂရင်းလန်း စံတော်ချိန်", "OEZ": "အရှေ့ဥရောပ စံတော်ချိန်", "OESZ": "အရှေ့ဥရောပ နွေရာသီ အချိန်", "COT": "ကိုလံဘီယာ စံတော်ချိန်", "HAST": "ဟာဝိုင်ယီ အယ်လူးရှန်း စံတော်ချိန်", "WIT": "အရှေ့ပိုင်း အင်ဒိုနီးရှား အချိန်", "HKT": "ဟောင်ကောင် စံတော်ချိန်", "MEZ": "ဥရောပ အလယ်ပိုင်း စံတော်ချိန်", "BOT": "ဘိုလီးဘီးယား အချိန်", "HEEG": "အရှေ့ဂရင်းလန် နွေရာသီ စံတော်ချိန်", "GFT": "ပြင်သစ် ဂီအားနား အချိန်", "COST": "ကိုလံဘီယာ နွေရာသီ အချိန်", "CST": "မြောက်အမေရိက အလယ်ပိုင်းစံတော်ချိန်", "ARST": "အာဂျင်တီးနား နွေရာသီအချိန်", "LHDT": "လော့ဒ်ဟောင် နွေရာသီ အချိန်", "CLT": "ချီလီ စံတော်ချိန်", "JDT": "ဂျပန် နွေရာသီ အချိန်", "GMT": "ဂရင်းနစ် စံတော်ချိန်", "MDT": "မကာအို နွေရာသီ အချိန်", "UYT": "ဥရုဂွေး စံတော်ချိန်", "HAT": "နယူးဖောင်လန် နွေရာသီ စံတော်ချိန်", "WITA": "အလယ်ပိုင်း အင်ဒိုနီးရှား အချိန်", "HNPMX": "မက္ကဆီကန် ပစိဖိတ် စံတော်ချိန်", "HEPMX": "မက္ကစီကန် ပစိဖိတ် နွေရာသီ စံတော်ချိန်", "PST": "မြောက်အမေရိက ပစိဖိတ်စံတော်ချိန်", "WEZ": "အနောက်ဥရောပ စံတော်ချိန်", "HNNOMX": "အနောက်တောင် မက္ကဆီကို စံတော်ချိန်", "GYT": "ဂိုင်ယာနာ အချိန်", "ART": "အာဂျင်တီးနား စံတော်ချိန်", "ACDT": "ဩစတြေးလျား အလယ်ပိုင်း နွေရာသီ အချိန်", "WARST": "အနောက် အာဂျင်တီးနား နွေရာသီ အချိန်", "PDT": "မြောက်အမေရိက ပစိဖိတ် နွေရာသီစံတော်ချိန်", "CHADT": "ချာသမ် နွေရာသီ အချိန်", "CLST": "ချီလီ နွေရာသီ အချိန်", "JST": "ဂျပန် စံတော်ချိန်", "AEST": "အရှေ့ဩစတြေးလျား စံတော်ချိန်", "NZDT": "နယူးဇီလန် နွေရာသီ အချိန်", "∅∅∅": "ပီရူး နွေရာသီ အချိန်", "WART": "အနောက် အာဂျင်တီးနား စံတော်ချိန်", "SGT": "စင်္ကာပူ အချိန်", "CDT": "မြောက်အမေရိက အလယ်ပိုင်း နွေရာသီစံတော်ချိန်", "AST": "အတ္တလန်တစ် စံတော်ချိန်", "ADT": "အတ္တလန်တစ် နွေရာသီ စံတော်ချိန်"},
++ timezones: map[string]string{"ART": "အာဂျင်တီးနား စံတော်ချိန်", "LHDT": "လော့ဒ်ဟောင် နွေရာသီ အချိန်", "BT": "ဘူတန် အချိန်", "GYT": "ဂိုင်ယာနာ အချိန်", "TMST": "တာ့ခ်မင်နစ္စတန် နွေရာသီ အချိန်", "CLT": "ချီလီ စံတော်ချိန်", "EAT": "အရှေ့အာဖရိက အချိန်", "ACDT": "ဩစတြေးလျား အလယ်ပိုင်း နွေရာသီ အချိန်", "MEZ": "ဥရောပ အလယ်ပိုင်း စံတော်ချိန်", "MESZ": "ဥရောပ အလယ်ပိုင်း နွေရာသီ အချိန်", "AWST": "အနောက်ဩစတြေးလျား စံတော်ချိန်", "JDT": "ဂျပန် နွေရာသီ အချိန်", "CHAST": "ချားသမ်စံတော်ချိန်", "SGT": "စင်္ကာပူ အချိန်", "HECU": "ကျူးဘား နွေရာသီ စံတော်ချိန်", "VET": "ဗင်နီဇွဲလား အချိန်", "TMT": "တာ့ခ်မင်နစ္စတန် စံတော်ချိန်", "NZST": "နယူးဇီလန် စံတော်ချိန်", "NZDT": "နယူးဇီလန် နွေရာသီ အချိန်", "ECT": "အီကွေဒေါ အချိန်", "WITA": "အလယ်ပိုင်း အင်ဒိုနီးရှား အချိန်", "UYT": "ဥရုဂွေး စံတော်ချိန်", "AEDT": "အရှေ့ဩစတြေးလျား နွေရာသီ အချိန်", "WAST": "အနောက်အာဖရိက နွေရာသီ အချိန်", "OEZ": "အရှေ့ဥရောပ စံတော်ချိန်", "EDT": "မြောက်အမေရိက အရှေ့ပိုင်း နွေရာသီစံတော်ချိန်", "HAST": "ဟာဝိုင်ယီ အယ်လူးရှန်း စံတော်ချိန်", "JST": "ဂျပန် စံတော်ချိန်", "HEPMX": "မက္ကစီကန် ပစိဖိတ် နွေရာသီ စံတော်ချိန်", "AKDT": "အလားစကား နွေရာသီစံတော်ချိန်", "HEOG": "အနောက် ဂရင်းလန် နွေရာသီ စံတော်ချိန်", "AST": "အတ္တလန်တစ် စံတော်ချိန်", "CAT": "အလယ်အာဖရိက အချိန်", "CST": "မြောက်အမေရိက အလယ်ပိုင်းစံတော်ချိန်", "ChST": "ချာမိုရိုအချိန်", "AWDT": "ဩစတြေးလျား နွေရာသီ အချိန်", "∅∅∅": "∅∅∅", "PDT": "မြောက်အမေရိက ပစိဖိတ် နွေရာသီစံတော်ချိန်", "HAT": "နယူးဖောင်လန် နွေရာသီ စံတော်ချိန်", "EST": "မြောက်အမေရိက အရှေ့ပိုင်းစံတော်ချိန်", "BOT": "ဘိုလီးဘီးယား အချိန်", "CHADT": "ချာသမ် နွေရာသီ အချိန်", "HNCU": "ကျူးဘား စံတော်ချိန်", "HNPMX": "မက္ကဆီကန် ပစိဖိတ် စံတော်ချိန်", "ADT": "အတ္တလန်တစ် နွေရာသီ စံတော်ချိန်", "HNPM": "စိန့်ပီအဲနှင့်မီခွီလွန်စံတော်ချိန်", "UYST": "ဥရုဂွေး နွေရာသီ အချိန်", "WAT": "အနောက်အာဖရိက စံတော်ချိန်", "MST": "မကာအို စံတော်ချိန်", "HADT": "ဟာဝိုင်ယီ အယ်လူးရှန်း နွေရာသီ စံတော်ချိန်", "ARST": "အာဂျင်တီးနား နွေရာသီအချိန်", "SRT": "စူးရီနာမ်အချိန်", "HNEG": "အရှေ့ဂရင်းလန်း စံတော်ချိန်", "AEST": "အရှေ့ဩစတြေးလျား စံတော်ချိန်", "WIT": "အရှေ့ပိုင်း အင်ဒိုနီးရှား အချိန်", "SAST": "တောင်အာဖရိက အချိန်", "HNOG": "အနောက် ဂရင်းလန်း စံတော်ချိန်", "GMT": "ဂရင်းနစ် စံတော်ချိန်", "HENOMX": "အနောက်တောင် မက္ကစီကို နွေရာသီ စံတော်ချိန်", "MYT": "မလေးရှား အချိန်", "HEPM": "စိန့်ပီအဲနှင့် မီခွီလွန် နွေရာသီ စံတော်ချိန်", "CLST": "ချီလီ နွေရာသီ အချိန်", "HEEG": "အရှေ့ဂရင်းလန် နွေရာသီ စံတော်ချိန်", "HNNOMX": "အနောက်တောင် မက္ကဆီကို စံတော်ချိန်", "ACWDT": "ဩစတြေးလျား အလယ်အနောက်ပိုင်း နွေရာသီ အချိန်", "GFT": "ပြင်သစ် ဂီအားနား အချိန်", "WARST": "အနောက် အာဂျင်တီးနား နွေရာသီ အချိန်", "MDT": "မကာအို နွေရာသီ အချိန်", "IST": "အိန္ဒိယ စံတော်ချိန်", "ACWST": "ဩစတြေးလျား အလယ်အနောက်ပိုင်း စံတော်ချိန်", "HNT": "နယူးဖောင်လန် စံတော်ချိန်", "COT": "ကိုလံဘီယာ စံတော်ချိန်", "PST": "မြောက်အမေရိက ပစိဖိတ်စံတော်ချိန်", "WESZ": "အနောက်ဥရောပ နွေရာသီ အချိန်", "WART": "အနောက် အာဂျင်တီးနား စံတော်ချိန်", "COST": "ကိုလံဘီယာ နွေရာသီ အချိန်", "ACST": "ဩစတြေးလျား အလယ်ပိုင်း စံတော်ချိန်", "AKST": "အလားစကားစံတော်ချိန်", "OESZ": "အရှေ့ဥရောပ နွေရာသီ အချိန်", "WIB": "အနောက်ပိုင်း အင်ဒိုနီးရှား အချိန်", "LHST": "လော့ဒ်ဟောင်စံတော်ချိန်", "WEZ": "အနောက်ဥရောပ စံတော်ချိန်", "HKT": "ဟောင်ကောင် စံတော်ချိန်", "HKST": "ဟောင်ကောင် နွေရာသီ အချိန်", "CDT": "မြောက်အမေရိက အလယ်ပိုင်း နွေရာသီစံတော်ချိန်"},
+ }
+ }
+ 
+diff --git a/my_MM/my_MM.go b/my_MM/my_MM.go
+index 4526f03..2aebcb2 100644
+--- a/my_MM/my_MM.go
++++ b/my_MM/my_MM.go
+@@ -10,65 +10,45 @@ import (
+ )
+ 
+ type my_MM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'my_MM' locale
+ func New() locales.Translator {
+ return &my_MM{
+- locale: "my_MM",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "ဇန်", "ဖေ", "မတ်", "ဧ", "မေ", "ဇွန်", "ဇူ", "ဩ", "စက်", "အောက်", "နို", "ဒီ"},
+- monthsNarrow: []string{"", "ဇ", "ဖ", "မ", "ဧ", "မ", "ဇ", "ဇ", "ဩ", "စ", "အ", "န", "ဒ"},
+- monthsWide: []string{"", "ဇန်နဝါရီ", "ဖေဖော်ဝါရီ", "မတ်", "ဧပြီ", "မေ", "ဇွန်", "ဇူလိုင်", "ဩဂုတ်", "စက်တင်ဘာ", "အောက်တိုဘာ", "နိုဝင်ဘာ", "ဒီဇင်ဘာ"},
+- daysAbbreviated: []string{"တနင်္ဂနွေ", "တနင်္လာ", "အင်္ဂါ", "ဗုဒ္ဓဟူး", "ကြာသပတေး", "သောကြာ", "စနေ"},
+- daysNarrow: []string{"တ", "တ", "အ", "ဗ", "က", "သ", "စ"},
+- daysShort: []string{"တနင်္ဂနွေ", "တနင်္လာ", "အင်္ဂါ", "ဗုဒ္ဓဟူး", "ကြာသပတေး", "သောကြာ", "စနေ"},
+- daysWide: []string{"တနင်္ဂနွေ", "တနင်္လာ", "အင်္ဂါ", "ဗုဒ္ဓဟူး", "ကြာသပတေး", "သောကြာ", "စနေ"},
+- periodsAbbreviated: []string{"နံနက်", "ညနေ"},
+- periodsNarrow: []string{"နံနက်", "ညနေ"},
+- periodsWide: []string{"နံနက်", "ညနေ"},
+- erasAbbreviated: []string{"ဘီစီ", "အေဒီ"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ခရစ်တော် မပေါ်မီနှစ်", "ခရစ်နှစ်"},
+- timezones: map[string]string{"HECU": "ကျူးဘား နွေရာသီ စံတော်ချိန်", "GYT": "ဂိုင်ယာနာ အချိန်", "VET": "ဗင်နီဇွဲလား အချိန်", "ACWDT": "ဩစတြေးလျား အလယ်အနောက်ပိုင်း နွေရာသီ အချိန်", "ChST": "ချာမိုရိုအချိန်", "HNEG": "အရှေ့ဂရင်းလန်း စံတော်ချိန်", "ACDT": "ဩစတြေးလျား အလယ်ပိုင်း နွေရာသီ အချိန်", "WAST": "အနောက်အာဖရိက နွေရာသီ အချိန်", "HNPMX": "မက္ကဆီကန် ပစိဖိတ် စံတော်ချိန်", "BT": "ဘူတန် အချိန်", "ACWST": "ဩစတြေးလျား အလယ်အနောက်ပိုင်း စံတော်ချိန်", "HAT": "နယူးဖောင်လန် နွေရာသီ စံတော်ချိန်", "HEPM": "စိန့်ပီအဲနှင့် မီခွီလွန် နွေရာသီ စံတော်ချိန်", "JST": "ဂျပန် စံတော်ချိန်", "OEZ": "အရှေ့ဥရောပ စံတော်ချိန်", "HEPMX": "မက္ကစီကန် ပစိဖိတ် နွေရာသီ စံတော်ချိန်", "AST": "အတ္တလန်တစ် စံတော်ချိန်", "HAST": "ဟာဝိုင်ယီ အယ်လူးရှန်း စံတော်ချိန်", "HKT": "ဟောင်ကောင် စံတော်ချိန်", "MESZ": "ဥရောပ အလယ်ပိုင်း နွေရာသီ အချိန်", "HNNOMX": "အနောက်တောင် မက္ကဆီကို စံတော်ချိန်", "WIB": "အနောက်ပိုင်း အင်ဒိုနီးရှား အချိန်", "ARST": "အာဂျင်တီးနား နွေရာသီအချိန်", "HKST": "ဟောင်ကောင် နွေရာသီ အချိန်", "∅∅∅": "အာမေဇုံ နွေရာသီအချိန်", "OESZ": "အရှေ့ဥရောပ နွေရာသီ အချိန်", "WART": "အနောက် အာဂျင်တီးနား စံတော်ချိန်", "COST": "ကိုလံဘီယာ နွေရာသီ အချိန်", "UYST": "ဥရုဂွေး နွေရာသီ အချိန်", "ART": "အာဂျင်တီးနား စံတော်ချိန်", "LHDT": "လော့ဒ်ဟောင် နွေရာသီ အချိန်", "NZDT": "နယူးဇီလန် နွေရာသီ အချိန်", "CLST": "ချီလီ နွေရာသီ အချိန်", "CAT": "အလယ်အာဖရိက အချိန်", "ECT": "အီကွေဒေါ အချိန်", "SGT": "စင်္ကာပူ အချိန်", "WEZ": "အနောက်ဥရောပ စံတော်ချိန်", "HNOG": "အနောက် ဂရင်းလန်း စံတော်ချိန်", "WITA": "အလယ်ပိုင်း အင်ဒိုနီးရှား အချိန်", "HNCU": "ကျူးဘား စံတော်ချိန်", "UYT": "ဥရုဂွေး စံတော်ချိန်", "CHADT": "ချာသမ် နွေရာသီ အချိန်", "TMST": "တာ့ခ်မင်နစ္စတန် နွေရာသီ အချိန်", "ACST": "ဩစတြေးလျား အလယ်ပိုင်း စံတော်ချိန်", "AKST": "အလားစကားစံတော်ချိန်", "WESZ": "အနောက်ဥရောပ နွေရာသီ အချိန်", "AWST": "အနောက်ဩစတြေးလျား စံတော်ချိန်", "HNPM": "စိန့်ပီအဲနှင့်မီခွီလွန်စံတော်ချိန်", "BOT": "ဘိုလီးဘီးယား အချိန်", "COT": "ကိုလံဘီယာ စံတော်ချိန်", "EDT": "မြောက်အမေရိက အရှေ့ပိုင်း နွေရာသီစံတော်ချိန်", "CST": "မြောက်အမေရိက အလယ်ပိုင်းစံတော်ချိန်", "ADT": "အတ္တလန်တစ် နွေရာသီ စံတော်ချိန်", "PST": "မြောက်အမေရိက ပစိဖိတ်စံတော်ချိန်", "HEOG": "အနောက် ဂရင်းလန် နွေရာသီ စံတော်ချိန်", "AWDT": "ဩစတြေးလျား နွေရာသီ အချိန်", "WAT": "အနောက်အာဖရိက စံတော်ချိန်", "WARST": "အနောက် အာဂျင်တီးနား နွေရာသီ အချိန်", "MYT": "မလေးရှား အချိန်", "HADT": "ဟာဝိုင်ယီ အယ်လူးရှန်း နွေရာသီ စံတော်ချိန်", "HEEG": "အရှေ့ဂရင်းလန် နွေရာသီ စံတော်ချိန်", "GFT": "ပြင်သစ် ဂီအားနား အချိန်", "GMT": "ဂရင်းနစ် စံတော်ချိန်", "PDT": "မြောက်အမေရိက ပစိဖိတ် နွေရာသီစံတော်ချိန်", "HNT": "နယူးဖောင်လန် စံတော်ချိန်", "LHST": "လော့ဒ်ဟောင်စံတော်ချိန်", "SAST": "တောင်အာဖရိက အချိန်", "CLT": "ချီလီ စံတော်ချိန်", "EST": "မြောက်အမေရိက အရှေ့ပိုင်းစံတော်ချိန်", "NZST": "နယူးဇီလန် စံတော်ချိန်", "SRT": "စူးရီနာမ်အချိန်", "AEST": "အရှေ့ဩစတြေးလျား စံတော်ချိန်", "MEZ": "ဥရောပ အလယ်ပိုင်း စံတော်ချိန်", "JDT": "ဂျပန် နွေရာသီ အချိန်", "EAT": "အရှေ့အာဖရိက အချိန်", "MST": "မကာအို စံတော်ချိန်", "AEDT": "အရှေ့ဩစတြေးလျား နွေရာသီ အချိန်", "IST": "အိန္ဒိယ စံတော်ချိန်", "TMT": "တာ့ခ်မင်နစ္စတန် စံတော်ချိန်", "CDT": "မြောက်အမေရိက အလယ်ပိုင်း နွေရာသီစံတော်ချိန်", "WIT": "အရှေ့ပိုင်း အင်ဒိုနီးရှား အချိန်", "CHAST": "ချားသမ်စံတော်ချိန်", "HENOMX": "အနောက်တောင် မက္ကစီကို နွေရာသီ စံတော်ချိန်", "MDT": "မကာအို နွေရာသီ အချိန်", "AKDT": "အလားစကား နွေရာသီစံတော်ချိန်"},
++ locale: "my_MM",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNT": "HNT", "OESZ": "OESZ", "WARST": "WARST", "ECT": "ECT", "HNEG": "HNEG", "HEPMX": "HEPMX", "WESZ": "WESZ", "HEOG": "HEOG", "EST": "EST", "AKST": "AKST", "COST": "COST", "HNOG": "HNOG", "HADT": "HADT", "ACDT": "ACDT", "HEPM": "HEPM", "ACWST": "ACWST", "UYST": "UYST", "EDT": "EDT", "MEZ": "MEZ", "HNPMX": "HNPMX", "TMST": "TMST", "ChST": "ChST", "JDT": "JDT", "LHDT": "LHDT", "AEDT": "AEDT", "HECU": "HECU", "ART": "ART", "SRT": "SRT", "EAT": "EAT", "HKST": "HKST", "CAT": "CAT", "CST": "CST", "BT": "BT", "PDT": "PDT", "SAST": "SAST", "MDT": "MDT", "BOT": "BOT", "HEEG": "HEEG", "HENOMX": "HENOMX", "ACST": "ACST", "ADT": "ADT", "WITA": "WITA", "CDT": "CDT", "MYT": "MYT", "CHAST": "CHAST", "HNCU": "HNCU", "OEZ": "OEZ", "WIT": "WIT", "AEST": "AEST", "HKT": "HKT", "WIB": "WIB", "LHST": "LHST", "∅∅∅": "∅∅∅", "WAT": "WAT", "TMT": "TMT", "AST": "AST", "COT": "COT", "CLT": "CLT", "CLST": "CLST", "HAST": "HAST", "MESZ": "MESZ", "ACWDT": "ACWDT", "CHADT": "CHADT", "GFT": "GFT", "GMT": "GMT", "MST": "MST", "AWDT": "AWDT", "WART": "WART", "GYT": "GYT", "ARST": "ARST", "HNPM": "HNPM", "UYT": "UYT", "VET": "VET", "NZDT": "NZDT", "NZST": "NZST", "HNNOMX": "HNNOMX", "JST": "JST", "PST": "PST", "WEZ": "WEZ", "SGT": "SGT", "AWST": "AWST", "IST": "IST", "WAST": "WAST", "AKDT": "AKDT", "HAT": "HAT"},
+ }
+ }
+ 
+@@ -114,7 +94,7 @@ func (my *my_MM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (my *my_MM) MonthsAbbreviated() []string {
+- return my.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -124,7 +104,7 @@ func (my *my_MM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (my *my_MM) MonthsNarrow() []string {
+- return my.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -134,7 +114,7 @@ func (my *my_MM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (my *my_MM) MonthsWide() []string {
+- return my.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -180,73 +160,13 @@ func (my *my_MM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'my_MM' and handles both Whole and Real numbers based on 'v'
+ func (my *my_MM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, my.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, my.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, my.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'my_MM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (my *my_MM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, my.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, my.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, my.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'my_MM'
+@@ -254,60 +174,7 @@ func (my *my_MM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := my.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, my.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, my.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(my.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, my.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, my.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, my.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'my_MM'
+@@ -316,72 +183,7 @@ func (my *my_MM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := my.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, my.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, my.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(my.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, my.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, my.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(my.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, my.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, my.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'my_MM'
+@@ -389,27 +191,6 @@ func (my *my_MM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -418,17 +199,6 @@ func (my *my_MM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, my.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -437,17 +207,6 @@ func (my *my_MM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, my.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -456,19 +215,6 @@ func (my *my_MM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, my.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, my.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -477,19 +223,6 @@ func (my *my_MM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, my.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -498,26 +231,6 @@ func (my *my_MM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, my.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, my.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,31 +239,6 @@ func (my *my_MM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, my.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, my.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -559,35 +247,5 @@ func (my *my_MM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+-
+- if btz, ok := my.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, my.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, my.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+diff --git a/mzn/mzn.go b/mzn/mzn.go
+index 8d7a5d9..339064d 100644
+--- a/mzn/mzn.go
++++ b/mzn/mzn.go
+@@ -53,7 +53,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"پ.م", "م."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"قبل میلاد", "بعد میلاد"},
+- timezones: map[string]string{"AKST": "AKST", "ARST": "ARST", "CLST": "CLST", "EDT": "EDT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "GYT": "GYT", "MST": "MST", "HAT": "HAT", "AEDT": "AEDT", "IST": "IST", "WAT": "WAT", "ACWST": "ACWST", "ACWDT": "ACWDT", "HEPM": "HEPM", "CHADT": "CHADT", "ChST": "ChST", "ACST": "ACST", "ECT": "ECT", "CAT": "CAT", "ART": "ART", "EST": "EST", "OESZ": "OESZ", "AWDT": "AWDT", "JST": "JST", "EAT": "EAT", "PDT": "PDT", "HNOG": "HNOG", "AWST": "AWST", "BOT": "BOT", "AST": "AST", "ADT": "ADT", "VET": "VET", "HKST": "HKST", "CLT": "CLT", "HNEG": "HNEG", "GFT": "GFT", "HNT": "HNT", "UYT": "UYT", "CST": "CST", "MYT": "MYT", "HEOG": "HEOG", "MEZ": "MEZ", "MESZ": "MESZ", "HEEG": "HEEG", "ACDT": "ACDT", "WIB": "WIB", "HAST": "HAST", "WEZ": "WEZ", "HNPM": "HNPM", "WAST": "WAST", "HECU": "HECU", "CDT": "CDT", "MDT": "MDT", "HKT": "HKT", "NZDT": "NZDT", "CHAST": "CHAST", "COT": "COT", "COST": "COST", "HNCU": "HNCU", "AEST": "AEST", "WIT": "WIT", "SRT": "SRT", "WESZ": "WESZ", "WITA": "WITA", "NZST": "NZST", "JDT": "JDT", "∅∅∅": "∅∅∅", "HADT": "HADT", "OEZ": "OEZ", "SGT": "SGT", "UYST": "UYST", "AKDT": "AKDT", "TMT": "TMT", "SAST": "SAST", "HENOMX": "HENOMX", "BT": "BT", "TMST": "TMST", "WARST": "WARST", "GMT": "GMT", "PST": "PST", "LHDT": "LHDT", "WART": "WART", "LHST": "LHST", "HNNOMX": "HNNOMX"},
++ timezones: map[string]string{"MESZ": "MESZ", "WEZ": "WEZ", "VET": "VET", "HNPMX": "HNPMX", "OESZ": "OESZ", "TMST": "TMST", "CLST": "CLST", "MDT": "MDT", "ChST": "ChST", "HNPM": "HNPM", "HEPM": "HEPM", "HNCU": "HNCU", "WAST": "WAST", "COST": "COST", "AWDT": "AWDT", "EST": "EST", "CST": "CST", "SGT": "SGT", "∅∅∅": "∅∅∅", "HADT": "HADT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "AWST": "AWST", "WAT": "WAT", "COT": "COT", "TMT": "TMT", "CDT": "CDT", "ACST": "ACST", "JST": "JST", "GFT": "GFT", "WARST": "WARST", "ECT": "ECT", "BOT": "BOT", "HAST": "HAST", "PST": "PST", "AEDT": "AEDT", "CHADT": "CHADT", "SAST": "SAST", "NZST": "NZST", "SRT": "SRT", "CAT": "CAT", "ACDT": "ACDT", "BT": "BT", "WESZ": "WESZ", "HECU": "HECU", "AKST": "AKST", "HNT": "HNT", "WIT": "WIT", "WITA": "WITA", "HENOMX": "HENOMX", "ARST": "ARST", "HNOG": "HNOG", "HEOG": "HEOG", "EDT": "EDT", "LHDT": "LHDT", "AEST": "AEST", "AKDT": "AKDT", "HAT": "HAT", "HKT": "HKT", "CLT": "CLT", "NZDT": "NZDT", "HEEG": "HEEG", "UYST": "UYST", "MEZ": "MEZ", "JDT": "JDT", "PDT": "PDT", "ACWDT": "ACWDT", "UYT": "UYT", "OEZ": "OEZ", "WART": "WART", "HKST": "HKST", "MYT": "MYT", "GYT": "GYT", "GMT": "GMT", "ART": "ART", "HEPMX": "HEPMX", "EAT": "EAT", "IST": "IST", "ACWST": "ACWST", "WIB": "WIB", "ADT": "ADT", "MST": "MST", "CHAST": "CHAST", "AST": "AST", "LHST": "LHST"},
+ }
+ }
+ 
+diff --git a/mzn_IR/mzn_IR.go b/mzn_IR/mzn_IR.go
+index 67ff0bb..72a2a70 100644
+--- a/mzn_IR/mzn_IR.go
++++ b/mzn_IR/mzn_IR.go
+@@ -42,18 +42,13 @@ type mzn_IR struct {
+ // New returns a new instance of translator for the 'mzn_IR' locale
+ func New() locales.Translator {
+ return &mzn_IR{
+- locale: "mzn_IR",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "ژانویه", "فوریه", "مارس", "آوریل", "مه", "ژوئن", "ژوئیه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "دسامبر"},
+- monthsWide: []string{"", "ژانویه", "فوریه", "مارس", "آوریل", "مه", "ژوئن", "ژوئیه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "دسامبر"},
+- erasAbbreviated: []string{"پ.م", "م."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"قبل میلاد", "بعد میلاد"},
+- timezones: map[string]string{"HNCU": "HNCU", "HKT": "HKT", "CLT": "CLT", "COT": "COT", "EST": "EST", "HEOG": "HEOG", "BOT": "BOT", "COST": "COST", "SGT": "SGT", "ACWDT": "ACWDT", "WAT": "WAT", "WARST": "WARST", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "MYT": "MYT", "∅∅∅": "∅∅∅", "GMT": "GMT", "MST": "MST", "HNT": "HNT", "HKST": "HKST", "SAST": "SAST", "CAT": "CAT", "OESZ": "OESZ", "HADT": "HADT", "AWST": "AWST", "HEPM": "HEPM", "MESZ": "MESZ", "ACDT": "ACDT", "WART": "WART", "CST": "CST", "HNOG": "HNOG", "AEDT": "AEDT", "HNPM": "HNPM", "HEEG": "HEEG", "ACST": "ACST", "VET": "VET", "HAT": "HAT", "IST": "IST", "HNEG": "HNEG", "OEZ": "OEZ", "UYST": "UYST", "WIB": "WIB", "WITA": "WITA", "ECT": "ECT", "EAT": "EAT", "HENOMX": "HENOMX", "EDT": "EDT", "WEZ": "WEZ", "ART": "ART", "LHST": "LHST", "AKST": "AKST", "AKDT": "AKDT", "BT": "BT", "ARST": "ARST", "PDT": "PDT", "JDT": "JDT", "CLST": "CLST", "WAST": "WAST", "AST": "AST", "WIT": "WIT", "WESZ": "WESZ", "CHAST": "CHAST", "JST": "JST", "TMST": "TMST", "GYT": "GYT", "UYT": "UYT", "HAST": "HAST", "AEST": "AEST", "NZST": "NZST", "GFT": "GFT", "ADT": "ADT", "PST": "PST", "LHDT": "LHDT", "HECU": "HECU", "MDT": "MDT", "CDT": "CDT", "SRT": "SRT", "ACWST": "ACWST", "AWDT": "AWDT", "MEZ": "MEZ", "NZDT": "NZDT", "CHADT": "CHADT", "TMT": "TMT", "ChST": "ChST"},
++ locale: "mzn_IR",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"NZST": "NZST", "ADT": "ADT", "HENOMX": "HENOMX", "JST": "JST", "HNPMX": "HNPMX", "HNT": "HNT", "WARST": "WARST", "AWDT": "AWDT", "IST": "IST", "TMT": "TMT", "BOT": "BOT", "MYT": "MYT", "AEST": "AEST", "OEZ": "OEZ", "TMST": "TMST", "HKST": "HKST", "HADT": "HADT", "LHST": "LHST", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "VET": "VET", "SAST": "SAST", "CLST": "CLST", "AKDT": "AKDT", "MST": "MST", "ART": "ART", "EAT": "EAT", "HNPM": "HNPM", "HEPM": "HEPM", "HNCU": "HNCU", "WEZ": "WEZ", "CAT": "CAT", "CST": "CST", "AST": "AST", "HNNOMX": "HNNOMX", "UYT": "UYT", "PST": "PST", "HEPMX": "HEPMX", "OESZ": "OESZ", "ChST": "ChST", "ACWST": "ACWST", "AEDT": "AEDT", "HECU": "HECU", "COT": "COT", "EST": "EST", "ECT": "ECT", "ARST": "ARST", "ACST": "ACST", "LHDT": "LHDT", "WART": "WART", "WIB": "WIB", "HNEG": "HNEG", "GFT": "GFT", "GMT": "GMT", "MEZ": "MEZ", "WITA": "WITA", "NZDT": "NZDT", "HAT": "HAT", "WIT": "WIT", "HNOG": "HNOG", "CDT": "CDT", "ACDT": "ACDT", "JDT": "JDT", "CHADT": "CHADT", "COST": "COST", "HKT": "HKT", "BT": "BT", "WAST": "WAST", "MDT": "MDT", "AWST": "AWST", "UYST": "UYST", "SGT": "SGT", "WAT": "WAT", "HEOG": "HEOG", "GYT": "GYT", "HAST": "HAST", "MESZ": "MESZ", "HEEG": "HEEG", "ACWDT": "ACWDT", "PDT": "PDT", "SRT": "SRT", "AKST": "AKST", "EDT": "EDT", "CLT": "CLT"},
+ }
+ }
+ 
+@@ -99,7 +94,7 @@ func (mzn *mzn_IR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (mzn *mzn_IR) MonthsAbbreviated() []string {
+- return mzn.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -119,7 +114,7 @@ func (mzn *mzn_IR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (mzn *mzn_IR) MonthsWide() []string {
+- return mzn.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+diff --git a/naq/naq.go b/naq/naq.go
+index 21bf386..c416524 100644
+--- a/naq/naq.go
++++ b/naq/naq.go
+@@ -59,7 +59,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Xristub aiǃâ", "Xristub khaoǃgâ"},
+- timezones: map[string]string{"HENOMX": "HENOMX", "HNCU": "HNCU", "AKST": "AKST", "CDT": "CDT", "AWST": "AWST", "AST": "AST", "ADT": "ADT", "JST": "JST", "TMST": "TMST", "ECT": "ECT", "MDT": "MDT", "CST": "CST", "AEST": "AEST", "SAST": "SAST", "CLST": "CLST", "HEEG": "HEEG", "HEPM": "HEPM", "HNNOMX": "HNNOMX", "UYST": "UYST", "PST": "PST", "WESZ": "WESZ", "ACWST": "ACWST", "HAT": "HAT", "HEOG": "HEOG", "WIB": "WIB", "HADT": "HADT", "SRT": "SRT", "ACWDT": "ACWDT", "AEDT": "AEDT", "JDT": "JDT", "∅∅∅": "∅∅∅", "GMT": "GMT", "EST": "EST", "VET": "VET", "WITA": "WITA", "IST": "IST", "HNEG": "HNEG", "CAT": "CAT", "WAT": "WAT", "WIT": "WIT", "ART": "ART", "LHST": "LHST", "SGT": "SGT", "HECU": "HECU", "AKDT": "AKDT", "GYT": "GYT", "MEZ": "MEZ", "CHAST": "CHAST", "TMT": "TMT", "WART": "WART", "HNPMX": "HNPMX", "UYT": "UYT", "HKT": "HKT", "LHDT": "LHDT", "COST": "COST", "EDT": "EDT", "ACDT": "ACDT", "OEZ": "OEZ", "WEZ": "WEZ", "NZST": "NZST", "CHADT": "CHADT", "CLT": "CLT", "COT": "COT", "MST": "MST", "HAST": "HAST", "HNOG": "HNOG", "GFT": "GFT", "HKST": "HKST", "MESZ": "MESZ", "HNPM": "HNPM", "EAT": "EAT", "WARST": "WARST", "MYT": "MYT", "BT": "BT", "PDT": "PDT", "HNT": "HNT", "AWDT": "AWDT", "ARST": "ARST", "NZDT": "NZDT", "ChST": "ChST", "ACST": "ACST", "WAST": "WAST", "OESZ": "OESZ", "HEPMX": "HEPMX", "BOT": "BOT"},
++ timezones: map[string]string{"WIB": "WIB", "ARST": "ARST", "AWDT": "AWDT", "WEZ": "WEZ", "COT": "COT", "GYT": "GYT", "COST": "COST", "ACST": "ACST", "HNNOMX": "HNNOMX", "WARST": "WARST", "ACWST": "ACWST", "ACDT": "ACDT", "HENOMX": "HENOMX", "JST": "JST", "ChST": "ChST", "HNCU": "HNCU", "WAT": "WAT", "HNT": "HNT", "NZDT": "NZDT", "AST": "AST", "AKST": "AKST", "CLST": "CLST", "CDT": "CDT", "SAST": "SAST", "HNOG": "HNOG", "HKST": "HKST", "HAST": "HAST", "LHDT": "LHDT", "MYT": "MYT", "HEPMX": "HEPMX", "JDT": "JDT", "UYT": "UYT", "AKDT": "AKDT", "WART": "WART", "EDT": "EDT", "MEZ": "MEZ", "MESZ": "MESZ", "HEEG": "HEEG", "SRT": "SRT", "TMT": "TMT", "TMST": "TMST", "ADT": "ADT", "CLT": "CLT", "AWST": "AWST", "AEST": "AEST", "CHAST": "CHAST", "CAT": "CAT", "BOT": "BOT", "EAT": "EAT", "VET": "VET", "WAST": "WAST", "WITA": "WITA", "CST": "CST", "HEPM": "HEPM", "UYST": "UYST", "PDT": "PDT", "OESZ": "OESZ", "GFT": "GFT", "HEOG": "HEOG", "NZST": "NZST", "HNEG": "HNEG", "WESZ": "WESZ", "HECU": "HECU", "EST": "EST", "HADT": "HADT", "BT": "BT", "AEDT": "AEDT", "WIT": "WIT", "MDT": "MDT", "GMT": "GMT", "LHST": "LHST", "∅∅∅": "∅∅∅", "PST": "PST", "HAT": "HAT", "MST": "MST", "ART": "ART", "HNPM": "HNPM", "IST": "IST", "OEZ": "OEZ", "HNPMX": "HNPMX", "HKT": "HKT", "ECT": "ECT", "ACWDT": "ACWDT", "CHADT": "CHADT", "SGT": "SGT"},
+ }
+ }
+ 
+diff --git a/naq_NA/naq_NA.go b/naq_NA/naq_NA.go
+index cf8d9a7..2f14094 100644
+--- a/naq_NA/naq_NA.go
++++ b/naq_NA/naq_NA.go
+@@ -42,24 +42,13 @@ type naq_NA struct {
+ // New returns a new instance of translator for the 'naq_NA' locale
+ func New() locales.Translator {
+ return &naq_NA{
+- locale: "naq_NA",
+- pluralsCardinal: []locales.PluralRule{2, 3, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "ǃKhanni", "ǃKhanǀgôab", "ǀKhuuǁkhâb", "ǃHôaǂkhaib", "ǃKhaitsâb", "Gamaǀaeb", "ǂKhoesaob", "Aoǁkhuumûǁkhâb", "Taraǀkhuumûǁkhâb", "ǂNûǁnâiseb", "ǀHooǂgaeb", "Hôasoreǁkhâb"},
+- daysAbbreviated: []string{"Son", "Ma", "De", "Wu", "Do", "Fr", "Sat"},
+- daysNarrow: []string{"S", "M", "E", "W", "D", "F", "A"},
+- daysWide: []string{"Sontaxtsees", "Mantaxtsees", "Denstaxtsees", "Wunstaxtsees", "Dondertaxtsees", "Fraitaxtsees", "Satertaxtsees"},
+- periodsAbbreviated: []string{"ǁgoagas", "ǃuias"},
+- periodsWide: []string{"ǁgoagas", "ǃuias"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Xristub aiǃâ", "Xristub khaoǃgâ"},
+- timezones: map[string]string{"HEEG": "HEEG", "WART": "WART", "ART": "ART", "AWDT": "AWDT", "HEPM": "HEPM", "LHST": "LHST", "HEOG": "HEOG", "WEZ": "WEZ", "ACWST": "ACWST", "AWST": "AWST", "EST": "EST", "HAT": "HAT", "UYST": "UYST", "ADT": "ADT", "HNOG": "HNOG", "AEST": "AEST", "ACST": "ACST", "GMT": "GMT", "HNCU": "HNCU", "BT": "BT", "AEDT": "AEDT", "GYT": "GYT", "AKST": "AKST", "CLST": "CLST", "HNEG": "HNEG", "CDT": "CDT", "PST": "PST", "ARST": "ARST", "WARST": "WARST", "SGT": "SGT", "∅∅∅": "∅∅∅", "MDT": "MDT", "MYT": "MYT", "HNPM": "HNPM", "CLT": "CLT", "TMT": "TMT", "COST": "COST", "HENOMX": "HENOMX", "SRT": "SRT", "PDT": "PDT", "WESZ": "WESZ", "ChST": "ChST", "WAST": "WAST", "HADT": "HADT", "HKST": "HKST", "MESZ": "MESZ", "IST": "IST", "JDT": "JDT", "JST": "JST", "TMST": "TMST", "HECU": "HECU", "ACWDT": "ACWDT", "NZST": "NZST", "NZDT": "NZDT", "SAST": "SAST", "HNNOMX": "HNNOMX", "HAST": "HAST", "VET": "VET", "HNT": "HNT", "CHADT": "CHADT", "LHDT": "LHDT", "BOT": "BOT", "WAT": "WAT", "UYT": "UYT", "CST": "CST", "WIT": "WIT", "HKT": "HKT", "MEZ": "MEZ", "EAT": "EAT", "ECT": "ECT", "HEPMX": "HEPMX", "AST": "AST", "WITA": "WITA", "GFT": "GFT", "ACDT": "ACDT", "EDT": "EDT", "CHAST": "CHAST", "OESZ": "OESZ", "CAT": "CAT", "OEZ": "OEZ", "COT": "COT", "MST": "MST", "HNPMX": "HNPMX", "AKDT": "AKDT", "WIB": "WIB"},
++ locale: "naq_NA",
++ pluralsCardinal: []locales.PluralRule{2, 3, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"COST": "COST", "HEOG": "HEOG", "GMT": "GMT", "WAST": "WAST", "OESZ": "OESZ", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "WIT": "WIT", "ECT": "ECT", "MYT": "MYT", "JST": "JST", "VET": "VET", "HAT": "HAT", "COT": "COT", "NZST": "NZST", "HNNOMX": "HNNOMX", "BT": "BT", "ACDT": "ACDT", "HENOMX": "HENOMX", "CHAST": "CHAST", "ACWDT": "ACWDT", "HNCU": "HNCU", "NZDT": "NZDT", "BOT": "BOT", "MESZ": "MESZ", "AEDT": "AEDT", "HNOG": "HNOG", "HKST": "HKST", "ARST": "ARST", "HNPM": "HNPM", "UYST": "UYST", "ACWST": "ACWST", "WESZ": "WESZ", "WAT": "WAT", "GFT": "GFT", "WARST": "WARST", "HKT": "HKT", "AWDT": "AWDT", "OEZ": "OEZ", "ADT": "ADT", "SRT": "SRT", "MEZ": "MEZ", "AEST": "AEST", "HECU": "HECU", "AKST": "AKST", "ChST": "ChST", "LHST": "LHST", "UYT": "UYT", "SGT": "SGT", "TMT": "TMT", "CAT": "CAT", "WITA": "WITA", "MDT": "MDT", "AWST": "AWST", "LHDT": "LHDT", "JDT": "JDT", "HNT": "HNT", "CLT": "CLT", "EAT": "EAT", "HADT": "HADT", "HEEG": "HEEG", "PST": "PST", "WART": "WART", "CLST": "CLST", "CDT": "CDT", "MST": "MST", "ACST": "ACST", "TMST": "TMST", "IST": "IST", "PDT": "PDT", "AKDT": "AKDT", "HEPMX": "HEPMX", "SAST": "SAST", "GYT": "GYT", "ART": "ART", "HAST": "HAST", "HEPM": "HEPM", "AST": "AST", "CHADT": "CHADT", "WEZ": "WEZ", "EST": "EST", "EDT": "EDT", "CST": "CST", "WIB": "WIB", "HNEG": "HNEG"},
+ }
+ }
+ 
+@@ -114,7 +103,7 @@ func (naq *naq_NA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (naq *naq_NA) MonthsAbbreviated() []string {
+- return naq.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -124,7 +113,7 @@ func (naq *naq_NA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (naq *naq_NA) MonthsNarrow() []string {
+- return naq.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -134,7 +123,7 @@ func (naq *naq_NA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (naq *naq_NA) MonthsWide() []string {
+- return naq.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -194,56 +183,7 @@ func (naq *naq_NA) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := naq.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, naq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, naq.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, naq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, naq.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'naq_NA'
+@@ -252,64 +192,7 @@ func (naq *naq_NA) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := naq.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, naq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, naq.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, naq.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, naq.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'naq_NA'
+@@ -317,27 +200,6 @@ func (naq *naq_NA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -346,17 +208,6 @@ func (naq *naq_NA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, naq.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -365,17 +216,6 @@ func (naq *naq_NA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, naq.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -384,19 +224,6 @@ func (naq *naq_NA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, naq.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, naq.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -405,28 +232,6 @@ func (naq *naq_NA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, naq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, naq.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, naq.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -435,35 +240,6 @@ func (naq *naq_NA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, naq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, naq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, naq.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, naq.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -472,40 +248,6 @@ func (naq *naq_NA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, naq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, naq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, naq.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, naq.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -514,44 +256,5 @@ func (naq *naq_NA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, naq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, naq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, naq.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, naq.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := naq.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/nb/nb.go b/nb/nb.go
+index 31bbaa9..f451e38 100644
+--- a/nb/nb.go
++++ b/nb/nb.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"f.Kr.", "e.Kr."},
+ erasNarrow: []string{"f.Kr.", "e.Kr."},
+ erasWide: []string{"før Kristus", "etter Kristus"},
+- timezones: map[string]string{"LHST": "normaltid for Lord Howe-øya", "BOT": "boliviansk tid", "UYT": "uruguayansk normaltid", "UYST": "uruguayansk sommertid", "ACWST": "vest-sentralaustralsk normaltid", "CAT": "sentralafrikansk tid", "COT": "colombiansk normaltid", "CLST": "chilensk sommertid", "HNEG": "østgrønlandsk normaltid", "WAT": "vestafrikansk normaltid", "CLT": "chilensk normaltid", "GFT": "tidssone for Fransk Guyana", "ADT": "atlanterhavskystlig sommertid", "GYT": "guyansk tid", "HEPM": "sommertid for Saint-Pierre-et-Miquelon", "PDT": "sommertid for den nordamerikanske Stillehavskysten", "WEZ": "vesteuropeisk normaltid", "OESZ": "østeuropeisk sommertid", "ACWDT": "vest-sentralaustralsk sommertid", "AWST": "vestaustralsk normaltid", "MEZ": "sentraleuropeisk normaltid", "JST": "japansk normaltid", "EAT": "østafrikansk tid", "AKST": "alaskisk normaltid", "CDT": "sommertid for det sentrale Nord-Amerika", "AST": "atlanterhavskystlig standardtid", "HNNOMX": "normaltid for nordvestlige Mexico", "EST": "normaltid for den nordamerikanske østkysten", "MYT": "malaysisk tid", "∅∅∅": "sommertid for Amazonas", "HNCU": "cubansk normaltid", "PST": "normaltid for den nordamerikanske Stillehavskysten", "NZDT": "newzealandsk sommertid", "ChST": "tidssone for Chamorro", "ECT": "ecuadoriansk tid", "WART": "vestargentinsk normaltid", "VET": "venezuelansk tid", "SRT": "surinamsk tid", "HNT": "normaltid for Newfoundland", "HEPMX": "sommertid for den meksikanske Stillehavskysten", "EDT": "sommertid for den nordamerikanske østkysten", "WESZ": "vesteuropeisk sommertid", "ARST": "argentinsk sommertid", "AEDT": "østaustralsk sommertid", "ACDT": "sentralaustralsk sommertid", "MDT": "sommertid for Rocky Mountains (USA)", "WIT": "østindonesisk tid", "BT": "bhutansk tid", "HEEG": "østgrønlandsk sommertid", "COST": "colombiansk sommertid", "WIB": "vestindonesisk tid", "HADT": "sommertid for Hawaii og Aleutene", "AWDT": "vestaustralsk sommertid", "OEZ": "østeuropeisk normaltid", "HENOMX": "sommertid for nordvestlige Mexico", "AEST": "østaustralsk normaltid", "NZST": "newzealandsk normaltid", "MESZ": "sentraleuropeisk sommertid", "HNPM": "normaltid for Saint-Pierre-et-Miquelon", "CHADT": "sommertid for Chatham", "JDT": "japansk sommertid", "HAT": "sommertid for Newfoundland", "ART": "argentinsk normaltid", "HNOG": "vestgrønlandsk normaltid", "SGT": "singaporsk tid", "AKDT": "alaskisk sommertid", "MST": "normaltid for Rocky Mountains (USA)", "IST": "indisk tid", "CHAST": "normaltid for Chatham", "ACST": "sentralaustralsk normaltid", "CST": "normaltid for det sentrale Nord-Amerika", "HAST": "normaltid for Hawaii og Aleutene", "LHDT": "sommertid for Lord Howe-øya", "SAST": "sørafrikansk tid", "TMST": "turkmensk sommertid", "WAST": "vestafrikansk sommertid", "WARST": "vestargentinsk sommertid", "HEOG": "vestgrønlandsk sommertid", "HKT": "normaltid for Hongkong", "WITA": "sentralindonesisk tid", "GMT": "Greenwich middeltid", "HNPMX": "normaltid for den meksikanske Stillehavskysten", "HKST": "sommertid for Hongkong", "TMT": "turkmensk normaltid", "HECU": "cubansk sommertid"},
++ timezones: map[string]string{"MST": "Macau, standardtid", "AEDT": "østaustralsk sommertid", "HNPMX": "normaltid for den meksikanske Stillehavskysten", "HEPMX": "sommertid for den meksikanske Stillehavskysten", "CLT": "chilensk normaltid", "CST": "normaltid for det sentrale Nord-Amerika", "ACST": "sentralaustralsk normaltid", "LHDT": "sommertid for Lord Howe-øya", "HNPM": "normaltid for Saint-Pierre-et-Miquelon", "JDT": "japansk sommertid", "VET": "venezuelansk tid", "COST": "colombiansk sommertid", "EDT": "sommertid for den nordamerikanske østkysten", "ChST": "tidssone for Chamorro", "UYST": "uruguayansk sommertid", "PST": "normaltid for den nordamerikanske Stillehavskysten", "ACWDT": "vest-sentralaustralsk sommertid", "AEST": "østaustralsk normaltid", "WESZ": "vesteuropeisk sommertid", "HKST": "sommertid for Hongkong", "CLST": "chilensk sommertid", "CDT": "sommertid for det sentrale Nord-Amerika", "WAST": "vestafrikansk sommertid", "HNT": "normaltid for Newfoundland", "TMST": "turkmensk sommertid", "HNNOMX": "normaltid for nordvestlige Mexico", "ECT": "ecuadoriansk tid", "AST": "atlanterhavskystlig standardtid", "HECU": "cubansk sommertid", "AKST": "alaskisk normaltid", "TMT": "turkmensk normaltid", "WITA": "sentralindonesisk tid", "ACWST": "vest-sentralaustralsk normaltid", "CHADT": "sommertid for Chatham", "SGT": "singaporsk tid", "COT": "colombiansk normaltid", "ARST": "argentinsk sommertid", "MYT": "malaysisk tid", "BT": "bhutansk tid", "WAT": "vestafrikansk normaltid", "WART": "vestargentinsk normaltid", "HNEG": "østgrønlandsk normaltid", "LHST": "normaltid for Lord Howe-øya", "EAT": "østafrikansk tid", "HEEG": "østgrønlandsk sommertid", "IST": "indisk tid", "HNCU": "cubansk normaltid", "OESZ": "østeuropeisk sommertid", "HAT": "sommertid for Newfoundland", "NZDT": "newzealandsk sommertid", "AWDT": "vestaustralsk sommertid", "CHAST": "normaltid for Chatham", "OEZ": "østeuropeisk normaltid", "WARST": "vestargentinsk sommertid", "CAT": "sentralafrikansk tid", "JST": "japansk normaltid", "SRT": "surinamsk tid", "ACDT": "sentralaustralsk sommertid", "HEPM": "sommertid for Saint-Pierre-et-Miquelon", "UYT": "uruguayansk normaltid", "∅∅∅": "sommertid for Amazonas", "HNOG": "vestgrønlandsk normaltid", "HKT": "normaltid for Hongkong", "ART": "argentinsk normaltid", "WEZ": "vesteuropeisk normaltid", "NZST": "newzealandsk normaltid", "HENOMX": "sommertid for nordvestlige Mexico", "MESZ": "sentraleuropeisk sommertid", "GYT": "guyansk tid", "WIB": "vestindonesisk tid", "ADT": "atlanterhavskystlig sommertid", "AWST": "vestaustralsk normaltid", "BOT": "boliviansk tid", "HAST": "normaltid for Hawaii og Aleutene", "GFT": "tidssone for Fransk Guyana", "WIT": "østindonesisk tid", "SAST": "sørafrikansk tid", "EST": "normaltid for den nordamerikanske østkysten", "AKDT": "alaskisk sommertid", "HEOG": "vestgrønlandsk sommertid", "HADT": "sommertid for Hawaii og Aleutene", "MDT": "Macau, sommertid", "GMT": "Greenwich middeltid", "MEZ": "sentraleuropeisk normaltid", "PDT": "sommertid for den nordamerikanske Stillehavskysten"},
+ }
+ }
+ 
+diff --git a/nb_NO/nb_NO.go b/nb_NO/nb_NO.go
+index d372c45..0979239 100644
+--- a/nb_NO/nb_NO.go
++++ b/nb_NO/nb_NO.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type nb_NO struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'nb_NO' locale
+ func New() locales.Translator {
+ return &nb_NO{
+- locale: "nb_NO",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: " ",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mar.", "apr.", "mai", "jun.", "jul.", "aug.", "sep.", "okt.", "nov.", "des."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januar", "februar", "mars", "april", "mai", "juni", "juli", "august", "september", "oktober", "november", "desember"},
+- daysAbbreviated: []string{"søn.", "man.", "tir.", "ons.", "tor.", "fre.", "lør."},
+- daysNarrow: []string{"S", "M", "T", "O", "T", "F", "L"},
+- daysShort: []string{"sø.", "ma.", "ti.", "on.", "to.", "fr.", "lø."},
+- daysWide: []string{"søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"f.Kr.", "e.Kr."},
+- erasNarrow: []string{"f.Kr.", "e.Kr."},
+- erasWide: []string{"før Kristus", "etter Kristus"},
+- timezones: map[string]string{"EAT": "østafrikansk tid", "ECT": "ecuadoriansk tid", "GMT": "Greenwich middeltid", "BT": "bhutansk tid", "SAST": "sørafrikansk tid", "IST": "indisk tid", "∅∅∅": "sommertid for Amazonas", "BOT": "boliviansk tid", "ChST": "tidssone for Chamorro", "HNPMX": "normaltid for den meksikanske Stillehavskysten", "UYT": "uruguayansk normaltid", "HAST": "normaltid for Hawaii og Aleutene", "WEZ": "vesteuropeisk normaltid", "NZST": "newzealandsk normaltid", "NZDT": "newzealandsk sommertid", "CLT": "chilensk normaltid", "HNPM": "normaltid for Saint-Pierre-et-Miquelon", "AWST": "vestaustralsk normaltid", "GFT": "tidssone for Fransk Guyana", "PST": "normaltid for den nordamerikanske Stillehavskysten", "ARST": "argentinsk sommertid", "WITA": "sentralindonesisk tid", "HEPMX": "sommertid for den meksikanske Stillehavskysten", "SGT": "singaporsk tid", "ACWST": "vest-sentralaustralsk normaltid", "HAT": "sommertid for Newfoundland", "ACST": "sentralaustralsk normaltid", "WAST": "vestafrikansk sommertid", "WART": "vestargentinsk normaltid", "HKST": "sommertid for Hongkong", "HNEG": "østgrønlandsk normaltid", "HEEG": "østgrønlandsk sommertid", "TMST": "turkmensk sommertid", "CAT": "sentralafrikansk tid", "AKDT": "alaskisk sommertid", "CST": "normaltid for det sentrale Nord-Amerika", "AST": "atlanterhavskystlig standardtid", "HKT": "normaltid for Hongkong", "ACDT": "sentralaustralsk sommertid", "OESZ": "østeuropeisk sommertid", "EST": "normaltid for den nordamerikanske østkysten", "MST": "Macau, standardtid", "WIB": "vestindonesisk tid", "AEST": "østaustralsk normaltid", "LHST": "normaltid for Lord Howe-øya", "LHDT": "sommertid for Lord Howe-øya", "HNCU": "cubansk normaltid", "GYT": "guyansk tid", "HEOG": "vestgrønlandsk sommertid", "MEZ": "sentraleuropeisk normaltid", "JDT": "japansk sommertid", "TMT": "turkmensk normaltid", "COT": "colombiansk normaltid", "CHAST": "normaltid for Chatham", "OEZ": "østeuropeisk normaltid", "MDT": "Macau, sommertid", "VET": "venezuelansk tid", "WIT": "østindonesisk tid", "PDT": "sommertid for den nordamerikanske Stillehavskysten", "WESZ": "vesteuropeisk sommertid", "ACWDT": "vest-sentralaustralsk sommertid", "ADT": "atlanterhavskystlig sommertid", "CHADT": "sommertid for Chatham", "COST": "colombiansk sommertid", "HNNOMX": "normaltid for nordvestlige Mexico", "UYST": "uruguayansk sommertid", "ART": "argentinsk normaltid", "WARST": "vestargentinsk sommertid", "EDT": "sommertid for den nordamerikanske østkysten", "AKST": "alaskisk normaltid", "CDT": "sommertid for det sentrale Nord-Amerika", "MYT": "malaysisk tid", "SRT": "surinamsk tid", "HNT": "normaltid for Newfoundland", "AWDT": "vestaustralsk sommertid", "MESZ": "sentraleuropeisk sommertid", "WAT": "vestafrikansk normaltid", "HNOG": "vestgrønlandsk normaltid", "AEDT": "østaustralsk sommertid", "HEPM": "sommertid for Saint-Pierre-et-Miquelon", "JST": "japansk normaltid", "HENOMX": "sommertid for nordvestlige Mexico", "HADT": "sommertid for Hawaii og Aleutene", "CLST": "chilensk sommertid", "HECU": "cubansk sommertid"},
++ locale: "nb_NO",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEEG": "HEEG", "UYT": "UYT", "SGT": "SGT", "VET": "VET", "NZST": "NZST", "ChST": "ChST", "EAT": "EAT", "HNPM": "HNPM", "HEPM": "HEPM", "WEZ": "WEZ", "GFT": "GFT", "HEOG": "HEOG", "AST": "AST", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "WIB": "WIB", "MDT": "MDT", "HAST": "HAST", "GMT": "GMT", "UYST": "UYST", "PDT": "PDT", "HNT": "HNT", "WIT": "WIT", "GYT": "GYT", "EST": "EST", "ECT": "ECT", "BOT": "BOT", "MYT": "MYT", "HADT": "HADT", "AWDT": "AWDT", "SAST": "SAST", "ACDT": "ACDT", "HNEG": "HNEG", "BT": "BT", "HNCU": "HNCU", "EDT": "EDT", "HKST": "HKST", "CDT": "CDT", "ART": "ART", "MEZ": "MEZ", "LHST": "LHST", "AEDT": "AEDT", "HEPMX": "HEPMX", "WAT": "WAT", "WART": "WART", "COT": "COT", "ADT": "ADT", "ARST": "ARST", "AKST": "AKST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "PST": "PST", "COST": "COST", "CLT": "CLT", "HNOG": "HNOG", "TMT": "TMT", "AKDT": "AKDT", "OESZ": "OESZ", "HKT": "HKT", "NZDT": "NZDT", "HAT": "HAT", "AEST": "AEST", "∅∅∅": "∅∅∅", "IST": "IST", "ACWST": "ACWST", "WESZ": "WESZ", "WAST": "WAST", "OEZ": "OEZ", "TMST": "TMST", "WITA": "WITA", "CST": "CST", "SRT": "SRT", "MESZ": "MESZ", "ACST": "ACST", "JST": "JST", "JDT": "JDT", "LHDT": "LHDT", "CAT": "CAT", "MST": "MST", "AWST": "AWST", "CHAST": "CHAST", "CHADT": "CHADT", "HECU": "HECU", "WARST": "WARST", "CLST": "CLST"},
+ }
+ }
+ 
+@@ -126,7 +101,7 @@ func (nb *nb_NO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (nb *nb_NO) MonthsAbbreviated() []string {
+- return nb.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +111,7 @@ func (nb *nb_NO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (nb *nb_NO) MonthsNarrow() []string {
+- return nb.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +121,7 @@ func (nb *nb_NO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (nb *nb_NO) MonthsWide() []string {
+- return nb.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,81 +167,13 @@ func (nb *nb_NO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'nb_NO' and handles both Whole and Real numbers based on 'v'
+ func (nb *nb_NO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nb.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(nb.group) - 1; j >= 0; j-- {
+- b = append(b, nb.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(nb.minus) - 1; j >= 0; j-- {
+- b = append(b, nb.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'nb_NO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (nb *nb_NO) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nb.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(nb.minus) - 1; j >= 0; j-- {
+- b = append(b, nb.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, nb.percentSuffix...)
+-
+- b = append(b, nb.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'nb_NO'
+@@ -274,64 +181,7 @@ func (nb *nb_NO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nb.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nb.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(nb.group) - 1; j >= 0; j-- {
+- b = append(b, nb.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(nb.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, nb.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- for j := len(nb.minus) - 1; j >= 0; j-- {
+- b = append(b, nb.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nb.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'nb_NO'
+@@ -340,76 +190,7 @@ func (nb *nb_NO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nb.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nb.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(nb.group) - 1; j >= 0; j-- {
+- b = append(b, nb.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(nb.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, nb.currencyNegativePrefix[j])
+- }
+-
+- for j := len(nb.minus) - 1; j >= 0; j-- {
+- b = append(b, nb.minus[j])
+- }
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(nb.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, nb.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nb.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'nb_NO'
+@@ -417,27 +198,6 @@ func (nb *nb_NO) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +206,6 @@ func (nb *nb_NO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, nb.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +214,6 @@ func (nb *nb_NO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, nb.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +222,6 @@ func (nb *nb_NO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, nb.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, nb.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +230,6 @@ func (nb *nb_NO) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +238,6 @@ func (nb *nb_NO) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +246,6 @@ func (nb *nb_NO) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +254,5 @@ func (nb *nb_NO) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := nb.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/nb_SJ/nb_SJ.go b/nb_SJ/nb_SJ.go
+index f1b6e05..ee56e3c 100644
+--- a/nb_SJ/nb_SJ.go
++++ b/nb_SJ/nb_SJ.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type nb_SJ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'nb_SJ' locale
+ func New() locales.Translator {
+ return &nb_SJ{
+- locale: "nb_SJ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: " ",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mar.", "apr.", "mai", "jun.", "jul.", "aug.", "sep.", "okt.", "nov.", "des."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januar", "februar", "mars", "april", "mai", "juni", "juli", "august", "september", "oktober", "november", "desember"},
+- daysAbbreviated: []string{"søn.", "man.", "tir.", "ons.", "tor.", "fre.", "lør."},
+- daysNarrow: []string{"S", "M", "T", "O", "T", "F", "L"},
+- daysShort: []string{"sø.", "ma.", "ti.", "on.", "to.", "fr.", "lø."},
+- daysWide: []string{"søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"f.Kr.", "e.Kr."},
+- erasNarrow: []string{"f.Kr.", "e.Kr."},
+- erasWide: []string{"før Kristus", "etter Kristus"},
+- timezones: map[string]string{"MEZ": "sentraleuropeisk normaltid", "CHAST": "normaltid for Chatham", "∅∅∅": "sommertid for Amazonas", "HEEG": "østgrønlandsk sommertid", "CAT": "sentralafrikansk tid", "EAT": "østafrikansk tid", "HENOMX": "sommertid for nordvestlige Mexico", "SGT": "singaporsk tid", "WITA": "sentralindonesisk tid", "HEPMX": "sommertid for den meksikanske Stillehavskysten", "TMST": "turkmensk sommertid", "WARST": "vestargentinsk sommertid", "HNCU": "cubansk normaltid", "HKST": "sommertid for Hongkong", "LHST": "normaltid for Lord Howe-øya", "HNNOMX": "normaltid for nordvestlige Mexico", "PDT": "sommertid for den nordamerikanske Stillehavskysten", "HAT": "sommertid for Newfoundland", "HKT": "normaltid for Hongkong", "HNEG": "østgrønlandsk normaltid", "CDT": "sommertid for det sentrale Nord-Amerika", "AEST": "østaustralsk normaltid", "HNPM": "normaltid for Saint-Pierre-et-Miquelon", "ACDT": "sentralaustralsk sommertid", "HECU": "cubansk sommertid", "ACWDT": "vest-sentralaustralsk sommertid", "MDT": "sommertid for Rocky Mountains (USA)", "AWDT": "vestaustralsk sommertid", "HNPMX": "normaltid for den meksikanske Stillehavskysten", "UYST": "uruguayansk sommertid", "ARST": "argentinsk sommertid", "GFT": "tidssone for Fransk Guyana", "EST": "normaltid for den nordamerikanske østkysten", "ADT": "atlanterhavskystlig sommertid", "MYT": "malaysisk tid", "HAST": "normaltid for Hawaii og Aleutene", "NZDT": "newzealandsk sommertid", "CLT": "chilensk normaltid", "OEZ": "østeuropeisk normaltid", "GYT": "guyansk tid", "SRT": "surinamsk tid", "HNT": "normaltid for Newfoundland", "ART": "argentinsk normaltid", "HEOG": "vestgrønlandsk sommertid", "HEPM": "sommertid for Saint-Pierre-et-Miquelon", "ACST": "sentralaustralsk normaltid", "COST": "colombiansk sommertid", "AST": "atlanterhavskystlig standardtid", "GMT": "Greenwich middeltid", "WEZ": "vesteuropeisk normaltid", "HNOG": "vestgrønlandsk normaltid", "AEDT": "østaustralsk sommertid", "MESZ": "sentraleuropeisk sommertid", "NZST": "newzealandsk normaltid", "SAST": "sørafrikansk tid", "JST": "japansk normaltid", "WIT": "østindonesisk tid", "HADT": "sommertid for Hawaii og Aleutene", "BT": "bhutansk tid", "PST": "normaltid for den nordamerikanske Stillehavskysten", "ACWST": "vest-sentralaustralsk normaltid", "TMT": "turkmensk normaltid", "EDT": "sommertid for den nordamerikanske østkysten", "MST": "normaltid for Rocky Mountains (USA)", "CLST": "chilensk sommertid", "OESZ": "østeuropeisk sommertid", "AWST": "vestaustralsk normaltid", "WESZ": "vesteuropeisk sommertid", "CHADT": "sommertid for Chatham", "ChST": "tidssone for Chamorro", "BOT": "boliviansk tid", "WAT": "vestafrikansk normaltid", "AKDT": "alaskisk sommertid", "LHDT": "sommertid for Lord Howe-øya", "IST": "indisk tid", "WAST": "vestafrikansk sommertid", "VET": "venezuelansk tid", "CST": "normaltid for det sentrale Nord-Amerika", "UYT": "uruguayansk normaltid", "WIB": "vestindonesisk tid", "JDT": "japansk sommertid", "ECT": "ecuadoriansk tid", "WART": "vestargentinsk normaltid", "COT": "colombiansk normaltid", "AKST": "alaskisk normaltid"},
++ locale: "nb_SJ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CHADT": "CHADT", "∅∅∅": "∅∅∅", "SAST": "SAST", "ECT": "ECT", "GMT": "GMT", "ART": "ART", "HNNOMX": "HNNOMX", "MYT": "MYT", "MST": "MST", "SGT": "SGT", "WAST": "WAST", "OEZ": "OEZ", "CDT": "CDT", "ChST": "ChST", "HENOMX": "HENOMX", "CHAST": "CHAST", "AEDT": "AEDT", "GFT": "GFT", "HKST": "HKST", "MEZ": "MEZ", "GYT": "GYT", "HKT": "HKT", "MESZ": "MESZ", "AWST": "AWST", "HNPM": "HNPM", "UYT": "UYT", "COST": "COST", "WIT": "WIT", "WITA": "WITA", "AWDT": "AWDT", "LHDT": "LHDT", "IST": "IST", "WARST": "WARST", "ACDT": "ACDT", "LHST": "LHST", "PST": "PST", "WESZ": "WESZ", "TMT": "TMT", "NZST": "NZST", "WIB": "WIB", "WAT": "WAT", "OESZ": "OESZ", "HAT": "HAT", "HNOG": "HNOG", "MDT": "MDT", "HEEG": "HEEG", "PDT": "PDT", "HECU": "HECU", "WART": "WART", "AKDT": "AKDT", "AST": "AST", "ARST": "ARST", "UYST": "UYST", "VET": "VET", "HNPMX": "HNPMX", "HNCU": "HNCU", "EST": "EST", "CLST": "CLST", "HEPMX": "HEPMX", "AKST": "AKST", "CST": "CST", "NZDT": "NZDT", "HEPM": "HEPM", "BT": "BT", "WEZ": "WEZ", "EDT": "EDT", "TMST": "TMST", "ADT": "ADT", "JST": "JST", "ACWST": "ACWST", "COT": "COT", "HEOG": "HEOG", "HADT": "HADT", "AEST": "AEST", "HNT": "HNT", "CAT": "CAT", "EAT": "EAT", "HAST": "HAST", "ACST": "ACST", "JDT": "JDT", "ACWDT": "ACWDT", "CLT": "CLT", "BOT": "BOT", "SRT": "SRT", "HNEG": "HNEG"},
+ }
+ }
+ 
+@@ -126,7 +101,7 @@ func (nb *nb_SJ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (nb *nb_SJ) MonthsAbbreviated() []string {
+- return nb.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +111,7 @@ func (nb *nb_SJ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (nb *nb_SJ) MonthsNarrow() []string {
+- return nb.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +121,7 @@ func (nb *nb_SJ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (nb *nb_SJ) MonthsWide() []string {
+- return nb.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,81 +167,13 @@ func (nb *nb_SJ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'nb_SJ' and handles both Whole and Real numbers based on 'v'
+ func (nb *nb_SJ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nb.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(nb.group) - 1; j >= 0; j-- {
+- b = append(b, nb.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(nb.minus) - 1; j >= 0; j-- {
+- b = append(b, nb.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'nb_SJ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (nb *nb_SJ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nb.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(nb.minus) - 1; j >= 0; j-- {
+- b = append(b, nb.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, nb.percentSuffix...)
+-
+- b = append(b, nb.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'nb_SJ'
+@@ -274,64 +181,7 @@ func (nb *nb_SJ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nb.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nb.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(nb.group) - 1; j >= 0; j-- {
+- b = append(b, nb.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(nb.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, nb.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- for j := len(nb.minus) - 1; j >= 0; j-- {
+- b = append(b, nb.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nb.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'nb_SJ'
+@@ -340,76 +190,7 @@ func (nb *nb_SJ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nb.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nb.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(nb.group) - 1; j >= 0; j-- {
+- b = append(b, nb.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(nb.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, nb.currencyNegativePrefix[j])
+- }
+-
+- for j := len(nb.minus) - 1; j >= 0; j-- {
+- b = append(b, nb.minus[j])
+- }
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(nb.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, nb.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nb.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'nb_SJ'
+@@ -417,27 +198,6 @@ func (nb *nb_SJ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +206,6 @@ func (nb *nb_SJ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, nb.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,17 +214,6 @@ func (nb *nb_SJ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, nb.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +222,6 @@ func (nb *nb_SJ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, nb.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, nb.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +230,6 @@ func (nb *nb_SJ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +238,6 @@ func (nb *nb_SJ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +246,6 @@ func (nb *nb_SJ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +254,5 @@ func (nb *nb_SJ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nb.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nb.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := nb.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/nd/nd.go b/nd/nd.go
+index aa22614..ae4b9a8 100644
+--- a/nd/nd.go
++++ b/nd/nd.go
+@@ -61,7 +61,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"UKristo angakabuyi", "Ukristo ebuyile"},
+- timezones: map[string]string{"ChST": "ChST", "VET": "VET", "HNPM": "HNPM", "HKT": "HKT", "SGT": "SGT", "CDT": "CDT", "SRT": "SRT", "PST": "PST", "JST": "JST", "UYST": "UYST", "BT": "BT", "WEZ": "WEZ", "WART": "WART", "HAST": "HAST", "HNEG": "HNEG", "TMT": "TMT", "WAST": "WAST", "ECT": "ECT", "EDT": "EDT", "CST": "CST", "HNOG": "HNOG", "LHST": "LHST", "HNPMX": "HNPMX", "CHADT": "CHADT", "COT": "COT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "EST": "EST", "ACWST": "ACWST", "ARST": "ARST", "WITA": "WITA", "IST": "IST", "CAT": "CAT", "HNCU": "HNCU", "HEPMX": "HEPMX", "WIT": "WIT", "OEZ": "OEZ", "AKST": "AKST", "ACWDT": "ACWDT", "JDT": "JDT", "EAT": "EAT", "MST": "MST", "HADT": "HADT", "ACDT": "ACDT", "OESZ": "OESZ", "MDT": "MDT", "UYT": "UYT", "CLT": "CLT", "∅∅∅": "∅∅∅", "BOT": "BOT", "HEEG": "HEEG", "WESZ": "WESZ", "HNT": "HNT", "HAT": "HAT", "AWDT": "AWDT", "TMST": "TMST", "WAT": "WAT", "AEST": "AEST", "AEDT": "AEDT", "NZST": "NZST", "CHAST": "CHAST", "CLST": "CLST", "HECU": "HECU", "GYT": "GYT", "PDT": "PDT", "MESZ": "MESZ", "GFT": "GFT", "GMT": "GMT", "MYT": "MYT", "HEPM": "HEPM", "HEOG": "HEOG", "HKST": "HKST", "MEZ": "MEZ", "NZDT": "NZDT", "WARST": "WARST", "COST": "COST", "AKDT": "AKDT", "AST": "AST", "LHDT": "LHDT", "SAST": "SAST", "ADT": "ADT", "WIB": "WIB", "ART": "ART", "AWST": "AWST", "ACST": "ACST"},
++ timezones: map[string]string{"LHST": "LHST", "LHDT": "LHDT", "AEST": "AEST", "WARST": "WARST", "HNT": "HNT", "COT": "COT", "TMST": "TMST", "JST": "JST", "OESZ": "OESZ", "CLT": "CLT", "CST": "CST", "MEZ": "MEZ", "MESZ": "MESZ", "AWST": "AWST", "AWDT": "AWDT", "COST": "COST", "EST": "EST", "ECT": "ECT", "ACST": "ACST", "HAT": "HAT", "AST": "AST", "HENOMX": "HENOMX", "ADT": "ADT", "HNEG": "HNEG", "HNPM": "HNPM", "WEZ": "WEZ", "SAST": "SAST", "CAT": "CAT", "NZST": "NZST", "HAST": "HAST", "PDT": "PDT", "ACWDT": "ACWDT", "AKST": "AKST", "OEZ": "OEZ", "WART": "WART", "HKST": "HKST", "CHADT": "CHADT", "VET": "VET", "MDT": "MDT", "CDT": "CDT", "ACDT": "ACDT", "MYT": "MYT", "ACWST": "ACWST", "WIT": "WIT", "WITA": "WITA", "ChST": "ChST", "ARST": "ARST", "SGT": "SGT", "HNCU": "HNCU", "HEEG": "HEEG", "AEDT": "AEDT", "CHAST": "CHAST", "WESZ": "WESZ", "∅∅∅": "∅∅∅", "TMT": "TMT", "SRT": "SRT", "HEOG": "HEOG", "EDT": "EDT", "MST": "MST", "WIB": "WIB", "UYST": "UYST", "IST": "IST", "WAST": "WAST", "HNOG": "HNOG", "BOT": "BOT", "HADT": "HADT", "GYT": "GYT", "HKT": "HKT", "CLST": "CLST", "EAT": "EAT", "NZDT": "NZDT", "BT": "BT", "AKDT": "AKDT", "WAT": "WAT", "HEPM": "HEPM", "JDT": "JDT", "GMT": "GMT", "ART": "ART", "HNNOMX": "HNNOMX", "PST": "PST", "HECU": "HECU", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "GFT": "GFT", "UYT": "UYT"},
+ }
+ }
+ 
+diff --git a/nd_ZW/nd_ZW.go b/nd_ZW/nd_ZW.go
+index 51ea6e8..facad94 100644
+--- a/nd_ZW/nd_ZW.go
++++ b/nd_ZW/nd_ZW.go
+@@ -10,58 +10,45 @@ import (
+ )
+ 
+ type nd_ZW struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'nd_ZW' locale
+ func New() locales.Translator {
+ return &nd_ZW{
+- locale: "nd_ZW",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Zib", "Nhlo", "Mbi", "Mab", "Nkw", "Nhla", "Ntu", "Ncw", "Mpan", "Mfu", "Lwe", "Mpal"},
+- monthsNarrow: []string{"", "Z", "N", "M", "M", "N", "N", "N", "N", "M", "M", "L", "M"},
+- monthsWide: []string{"", "Zibandlela", "Nhlolanja", "Mbimbitho", "Mabasa", "Nkwenkwezi", "Nhlangula", "Ntulikazi", "Ncwabakazi", "Mpandula", "Mfumfu", "Lwezi", "Mpalakazi"},
+- daysAbbreviated: []string{"Son", "Mvu", "Sib", "Sit", "Sin", "Sih", "Mgq"},
+- daysNarrow: []string{"S", "M", "S", "S", "S", "S", "M"},
+- daysWide: []string{"Sonto", "Mvulo", "Sibili", "Sithathu", "Sine", "Sihlanu", "Mgqibelo"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"UKristo angakabuyi", "Ukristo ebuyile"},
+- timezones: map[string]string{"ACWST": "ACWST", "HEPM": "HEPM", "GMT": "GMT", "PDT": "PDT", "WIB": "WIB", "CLST": "CLST", "TMT": "TMT", "WARST": "WARST", "HEPMX": "HEPMX", "UYST": "UYST", "MEZ": "MEZ", "CHAST": "CHAST", "IST": "IST", "LHST": "LHST", "CHADT": "CHADT", "SAST": "SAST", "ChST": "ChST", "EST": "EST", "HADT": "HADT", "WIT": "WIT", "AWST": "AWST", "HNPMX": "HNPMX", "WITA": "WITA", "EAT": "EAT", "WAT": "WAT", "ADT": "ADT", "WESZ": "WESZ", "HEOG": "HEOG", "AEST": "AEST", "HEEG": "HEEG", "WART": "WART", "ART": "ART", "NZST": "NZST", "JDT": "JDT", "AKST": "AKST", "CST": "CST", "ACWDT": "ACWDT", "JST": "JST", "HNCU": "HNCU", "ECT": "ECT", "HENOMX": "HENOMX", "MYT": "MYT", "AKDT": "AKDT", "HNOG": "HNOG", "HKT": "HKT", "NZDT": "NZDT", "WAST": "WAST", "HNNOMX": "HNNOMX", "HAST": "HAST", "PST": "PST", "WEZ": "WEZ", "BOT": "BOT", "SGT": "SGT", "EDT": "EDT", "CDT": "CDT", "GYT": "GYT", "SRT": "SRT", "AEDT": "AEDT", "AWDT": "AWDT", "ACDT": "ACDT", "CAT": "CAT", "COT": "COT", "HECU": "HECU", "UYT": "UYT", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "ACST": "ACST", "AST": "AST", "MST": "MST", "MDT": "MDT", "HAT": "HAT", "HKST": "HKST", "COST": "COST", "CLT": "CLT", "BT": "BT", "GFT": "GFT", "TMST": "TMST", "HNPM": "HNPM", "MESZ": "MESZ", "HNEG": "HNEG", "OEZ": "OEZ", "OESZ": "OESZ", "VET": "VET", "HNT": "HNT", "ARST": "ARST"},
++ locale: "nd_ZW",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"PST": "PST", "UYT": "UYT", "IST": "IST", "HKT": "HKT", "HKST": "HKST", "EDT": "EDT", "HEPM": "HEPM", "LHST": "LHST", "AWDT": "AWDT", "BT": "BT", "HNPMX": "HNPMX", "GFT": "GFT", "HNT": "HNT", "MST": "MST", "BOT": "BOT", "WESZ": "WESZ", "HAST": "HAST", "EAT": "EAT", "ACWST": "ACWST", "WEZ": "WEZ", "MESZ": "MESZ", "MYT": "MYT", "AEST": "AEST", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "COST": "COST", "ChST": "ChST", "HNNOMX": "HNNOMX", "CAT": "CAT", "HNPM": "HNPM", "HNCU": "HNCU", "HEOG": "HEOG", "NZDT": "NZDT", "HNEG": "HNEG", "AWST": "AWST", "HADT": "HADT", "HEPMX": "HEPMX", "WAT": "WAT", "TMST": "TMST", "MDT": "MDT", "WIB": "WIB", "WIT": "WIT", "GYT": "GYT", "CDT": "CDT", "ARST": "ARST", "ACST": "ACST", "MEZ": "MEZ", "WITA": "WITA", "ACDT": "ACDT", "AEDT": "AEDT", "AKST": "AKST", "WAST": "WAST", "OEZ": "OEZ", "CLT": "CLT", "CHADT": "CHADT", "SGT": "SGT", "HAT": "HAT", "SAST": "SAST", "AST": "AST", "ACWDT": "ACWDT", "JST": "JST", "JDT": "JDT", "UYST": "UYST", "OESZ": "OESZ", "COT": "COT", "EST": "EST", "LHDT": "LHDT", "AKDT": "AKDT", "NZST": "NZST", "CST": "CST", "HEEG": "HEEG", "HNOG": "HNOG", "ADT": "ADT", "PDT": "PDT", "HECU": "HECU", "WARST": "WARST", "CLST": "CLST", "ART": "ART", "SRT": "SRT", "HENOMX": "HENOMX", "VET": "VET", "WART": "WART", "TMT": "TMT", "ECT": "ECT", "GMT": "GMT"},
+ }
+ }
+ 
+@@ -114,7 +101,7 @@ func (nd *nd_ZW) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (nd *nd_ZW) MonthsAbbreviated() []string {
+- return nd.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -124,7 +111,7 @@ func (nd *nd_ZW) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (nd *nd_ZW) MonthsNarrow() []string {
+- return nd.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -134,7 +121,7 @@ func (nd *nd_ZW) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (nd *nd_ZW) MonthsWide() []string {
+- return nd.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -194,56 +181,7 @@ func (nd *nd_ZW) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nd.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nd.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nd.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, nd.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nd.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'nd_ZW'
+@@ -252,68 +190,7 @@ func (nd *nd_ZW) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nd.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nd.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nd.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, nd.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nd.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, nd.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'nd_ZW'
+@@ -321,27 +198,6 @@ func (nd *nd_ZW) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -350,17 +206,6 @@ func (nd *nd_ZW) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nd.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -369,17 +214,6 @@ func (nd *nd_ZW) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nd.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -388,19 +222,6 @@ func (nd *nd_ZW) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, nd.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nd.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -409,19 +230,6 @@ func (nd *nd_ZW) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nd.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -430,26 +238,6 @@ func (nd *nd_ZW) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nd.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nd.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -458,30 +246,6 @@ func (nd *nd_ZW) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nd.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nd.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -490,34 +254,5 @@ func (nd *nd_ZW) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nd.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nd.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := nd.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/nds/nds.go b/nds/nds.go
+index 012c09e..e389a58 100644
+--- a/nds/nds.go
++++ b/nds/nds.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"v.Chr.", "n.Chr."},
+ erasNarrow: []string{"vC", "nC"},
+ erasWide: []string{"vör Christus", "na Christus"},
+- timezones: map[string]string{"NZST": "NZST", "SAST": "Söödafrikaansch Tiet", "HECU": "HECU", "AST": "Noordamerikaansch Atlantik-Standardtiet", "ADT": "Noordamerikaansch Atlantik-Summertiet", "HAST": "HAST", "CHAST": "CHAST", "TMST": "TMST", "ACDT": "Zentraalaustraalsch Summertiet", "SGT": "SGT", "SRT": "SRT", "AEST": "Oostaustraalsch Standardtiet", "HADT": "HADT", "HENOMX": "HENOMX", "GMT": "Gröönwisch-Welttiet", "UYST": "UYST", "AKST": "AKST", "HEPM": "HEPM", "MESZ": "Zentraaleuropääsch Summertiet", "EAT": "Oostafrikaansch Tiet", "WEZ": "Westeuropääsch Standardtiet", "MEZ": "Zentraaleuropääsch Standardtiet", "CLT": "CLT", "ACST": "Zentraalaustraalsch Standardtiet", "ECT": "ECT", "CDT": "Noordamerikaansch zentraal Summertiet", "ARST": "ARST", "LHDT": "LHDT", "NZDT": "NZDT", "GFT": "GFT", "CST": "Noordamerikaansch zentraal Standardtiet", "GYT": "GYT", "WIB": "Westindoneesch Tiet", "BT": "BT", "HEOG": "HEOG", "CHADT": "CHADT", "CLST": "CLST", "HEEG": "HEEG", "CAT": "Zentraalafrikaansch Tiet", "WESZ": "Westeuropääsch Summertiet", "HNT": "HNT", "ART": "ART", "UYT": "UYT", "∅∅∅": "∅∅∅", "BOT": "BOT", "COST": "COST", "HNNOMX": "HNNOMX", "MDT": "MDT", "AKDT": "AKDT", "ACWST": "Westzentraalaustraalsch Standardtiet", "AWST": "Westaustraalsch Standardtiet", "HKST": "HKST", "JST": "Japaansch Standardtiet", "TMT": "TMT", "MST": "MST", "HNPMX": "HNPMX", "WITA": "Indoneesch Zentraaltiet", "ChST": "ChST", "WAST": "Westafrikaansch Summertiet", "COT": "COT", "PDT": "Noordamerikaansch Pazifik-Summertiet", "OEZ": "Oosteuropääsch Standardtiet", "HEPMX": "HEPMX", "VET": "VET", "HAT": "HAT", "WIT": "Oostindoneesch Tiet", "PST": "Noordamerikaansch Pazifik-Standardtiet", "AEDT": "Oostaustraalsch Summertiet", "HNPM": "HNPM", "JDT": "Japaansch Summertiet", "HNCU": "HNCU", "MYT": "MYT", "LHST": "LHST", "HNEG": "HNEG", "WART": "WART", "EST": "Noordamerikaansch oosten Standardtiet", "EDT": "Noordamerikaansch oosten Summertiet", "HNOG": "HNOG", "ACWDT": "Westzentraalaustraalsch Summertiet", "AWDT": "Westaustraalsch Summertiet", "HKT": "HKT", "IST": "Indien-Tiet", "WAT": "Westafrikaansch Standardtiet", "OESZ": "Oosteuropääsch Summertiet", "WARST": "WARST"},
++ timezones: map[string]string{"CAT": "Zentraalafrikaansch Tiet", "ChST": "ChST", "BOT": "BOT", "SGT": "SGT", "OESZ": "Oosteuropääsch Summertiet", "COT": "COT", "HKT": "HKT", "ACST": "Zentraalaustraalsch Standardtiet", "UYST": "UYST", "HNCU": "HNCU", "HADT": "HADT", "ACWDT": "Westzentraalaustraalsch Summertiet", "AKST": "AKST", "EDT": "Noordamerikaansch oosten Summertiet", "MST": "MST", "NZDT": "NZDT", "ADT": "Noordamerikaansch Atlantik-Summertiet", "GMT": "Gröönwisch-Welttiet", "CHADT": "CHADT", "HEPMX": "HEPMX", "OEZ": "Oosteuropääsch Standardtiet", "HNT": "HNT", "CLT": "CLT", "WIB": "Westindoneesch Tiet", "TMT": "TMT", "CDT": "Noordamerikaansch zentraal Summertiet", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "VET": "VET", "∅∅∅": "∅∅∅", "GYT": "GYT", "WITA": "Indoneesch Zentraaltiet", "MDT": "MDT", "HENOMX": "HENOMX", "LHST": "LHST", "AEDT": "Oostaustraalsch Summertiet", "HECU": "HECU", "WAST": "Westafrikaansch Summertiet", "HKST": "HKST", "ART": "ART", "HNEG": "HNEG", "HNPM": "HNPM", "HEPM": "HEPM", "GFT": "GFT", "WIT": "Oostindoneesch Tiet", "BT": "BT", "CST": "Noordamerikaansch zentraal Standardtiet", "MYT": "MYT", "ACWST": "Westzentraalaustraalsch Standardtiet", "WESZ": "Westeuropääsch Summertiet", "EST": "Noordamerikaansch oosten Standardtiet", "ECT": "ECT", "EAT": "Oostafrikaansch Tiet", "MESZ": "Zentraaleuropääsch Summertiet", "AWDT": "Westaustraalsch Summertiet", "WART": "WART", "NZST": "NZST", "JDT": "Japaansch Summertiet", "PST": "Noordamerikaansch Pazifik-Standardtiet", "PDT": "Noordamerikaansch Pazifik-Summertiet", "WEZ": "Westeuropääsch Standardtiet", "WAT": "Westafrikaansch Standardtiet", "HEOG": "HEOG", "ARST": "ARST", "IST": "Indien-Tiet", "HNPMX": "HNPMX", "COST": "COST", "SRT": "SRT", "JST": "Japaansch Standardtiet", "AWST": "Westaustraalsch Standardtiet", "AKDT": "AKDT", "HAT": "HAT", "HNOG": "HNOG", "TMST": "TMST", "AST": "Noordamerikaansch Atlantik-Standardtiet", "ACDT": "Zentraalaustraalsch Summertiet", "CHAST": "CHAST", "WARST": "WARST", "CLST": "CLST", "MEZ": "Zentraaleuropääsch Standardtiet", "HEEG": "HEEG", "UYT": "UYT", "SAST": "Söödafrikaansch Tiet", "HAST": "HAST", "AEST": "Oostaustraalsch Standardtiet"},
+ }
+ }
+ 
+diff --git a/nds_DE/nds_DE.go b/nds_DE/nds_DE.go
+index 051b9c8..448c7d0 100644
+--- a/nds_DE/nds_DE.go
++++ b/nds_DE/nds_DE.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type nds_DE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'nds_DE' locale
+ func New() locales.Translator {
+ return &nds_DE{
+- locale: "nds_DE",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Jan.", "Feb.", "März", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januaar", "Februaar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktover", "November", "Dezember"},
+- daysAbbreviated: []string{"Sü.", "Ma.", "Di.", "Mi.", "Du.", "Fr.", "Sa."},
+- daysNarrow: []string{"S", "M", "D", "M", "D", "F", "S"},
+- daysWide: []string{"Sünndag", "Maandag", "Dingsdag", "Middeweken", "Dunnersdag", "Freedag", "Sünnavend"},
+- periodsAbbreviated: []string{"vm", "nm"},
+- periodsWide: []string{"vm", "nm"},
+- erasAbbreviated: []string{"v.Chr.", "n.Chr."},
+- erasNarrow: []string{"vC", "nC"},
+- erasWide: []string{"vör Christus", "na Christus"},
+- timezones: map[string]string{"NZDT": "NZDT", "CLST": "CLST", "EST": "Noordamerikaansch oosten Standardtiet", "HEPMX": "HEPMX", "HAST": "HAST", "ART": "ART", "HNPM": "HNPM", "HKT": "HKT", "SAST": "Söödafrikaansch Tiet", "CLT": "CLT", "WAST": "Westafrikaansch Summertiet", "MYT": "MYT", "UYT": "UYT", "UYST": "UYST", "AWDT": "Westaustraalsch Summertiet", "TMT": "TMT", "HAT": "HAT", "HEOG": "HEOG", "AKST": "AKST", "CST": "Noordamerikaansch zentraal Standardtiet", "GYT": "GYT", "SRT": "SRT", "JST": "Japaansch Standardtiet", "WAT": "Westafrikaansch Standardtiet", "WART": "WART", "HECU": "HECU", "MDT": "MDT", "AKDT": "AKDT", "ChST": "ChST", "OEZ": "Oosteuropääsch Standardtiet", "COST": "COST", "AEST": "Oostaustraalsch Standardtiet", "WITA": "Indoneesch Zentraaltiet", "LHDT": "LHDT", "ACST": "Zentraalaustraalsch Standardtiet", "GMT": "Gröönwisch-Welttiet", "HADT": "HADT", "VET": "VET", "ACWDT": "Westzentraalaustraalsch Summertiet", "AWST": "Westaustraalsch Standardtiet", "JDT": "Japaansch Summertiet", "HNEG": "HNEG", "GFT": "GFT", "EDT": "Noordamerikaansch oosten Summertiet", "CDT": "Noordamerikaansch zentraal Summertiet", "BT": "BT", "MEZ": "Zentraaleuropääsch Standardtiet", "BOT": "BOT", "COT": "COT", "HNNOMX": "HNNOMX", "ACWST": "Westzentraalaustraalsch Standardtiet", "HEPM": "HEPM", "WARST": "WARST", "WIB": "Westindoneesch Tiet", "CAT": "Zentraalafrikaansch Tiet", "WEZ": "Westeuropääsch Standardtiet", "ARST": "ARST", "HKST": "HKST", "NZST": "NZST", "IST": "Indien-Tiet", "EAT": "Oostafrikaansch Tiet", "HNPMX": "HNPMX", "HNT": "HNT", "HNOG": "HNOG", "CHAST": "CHAST", "CHADT": "CHADT", "TMST": "TMST", "SGT": "SGT", "AST": "Noordamerikaansch Atlantik-Standardtiet", "WESZ": "Westeuropääsch Summertiet", "ECT": "ECT", "HNCU": "HNCU", "WIT": "Oostindoneesch Tiet", "AEDT": "Oostaustraalsch Summertiet", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "OESZ": "Oosteuropääsch Summertiet", "MST": "MST", "PDT": "Noordamerikaansch Pazifik-Summertiet", "ACDT": "Zentraalaustraalsch Summertiet", "HENOMX": "HENOMX", "ADT": "Noordamerikaansch Atlantik-Summertiet", "PST": "Noordamerikaansch Pazifik-Standardtiet", "MESZ": "Zentraaleuropääsch Summertiet", "LHST": "LHST"},
++ locale: "nds_DE",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"NZST": "NZST", "MEZ": "MEZ", "ACDT": "ACDT", "AWDT": "AWDT", "UYT": "UYT", "AKDT": "AKDT", "HNOG": "HNOG", "HEOG": "HEOG", "ARST": "ARST", "HAT": "HAT", "HNEG": "HNEG", "HNPM": "HNPM", "CHAST": "CHAST", "PST": "PST", "HNCU": "HNCU", "HNPMX": "HNPMX", "AKST": "AKST", "WIT": "WIT", "COT": "COT", "COST": "COST", "CAT": "CAT", "MST": "MST", "GMT": "GMT", "HEPM": "HEPM", "AEST": "AEST", "BT": "BT", "WIB": "WIB", "AST": "AST", "HADT": "HADT", "JDT": "JDT", "AEDT": "AEDT", "SGT": "SGT", "HKST": "HKST", "TMT": "TMT", "CLST": "CLST", "BOT": "BOT", "LHST": "LHST", "ACWST": "ACWST", "∅∅∅": "∅∅∅", "VET": "VET", "WART": "WART", "HKT": "HKT", "ECT": "ECT", "HEEG": "HEEG", "WAT": "WAT", "EAT": "EAT", "MESZ": "MESZ", "LHDT": "LHDT", "UYST": "UYST", "SAST": "SAST", "SRT": "SRT", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "WAST": "WAST", "GFT": "GFT", "WARST": "WARST", "CDT": "CDT", "TMST": "TMST", "CST": "CST", "NZDT": "NZDT", "ChST": "ChST", "IST": "IST", "GYT": "GYT", "CLT": "CLT", "ART": "ART", "ADT": "ADT", "HAST": "HAST", "PDT": "PDT", "WEZ": "WEZ", "EDT": "EDT", "HECU": "HECU", "WESZ": "WESZ", "OESZ": "OESZ", "WITA": "WITA", "ACST": "ACST", "JST": "JST", "AWST": "AWST", "MYT": "MYT", "HEPMX": "HEPMX", "OEZ": "OEZ", "EST": "EST", "CHADT": "CHADT", "MDT": "MDT", "HENOMX": "HENOMX", "HNT": "HNT"},
+ }
+ }
+ 
+@@ -117,7 +94,7 @@ func (nds *nds_DE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (nds *nds_DE) MonthsAbbreviated() []string {
+- return nds.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -127,7 +104,7 @@ func (nds *nds_DE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (nds *nds_DE) MonthsNarrow() []string {
+- return nds.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -137,7 +114,7 @@ func (nds *nds_DE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (nds *nds_DE) MonthsWide() []string {
+- return nds.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -183,75 +160,13 @@ func (nds *nds_DE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'nds_DE' and handles both Whole and Real numbers based on 'v'
+ func (nds *nds_DE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nds.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nds.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nds.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'nds_DE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (nds *nds_DE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nds.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nds.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, nds.percentSuffix...)
+-
+- b = append(b, nds.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'nds_DE'
+@@ -259,56 +174,7 @@ func (nds *nds_DE) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nds.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nds.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nds.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nds.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nds.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, nds.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'nds_DE'
+@@ -317,63 +183,7 @@ func (nds *nds_DE) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nds.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nds.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nds.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, nds.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nds.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, nds.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, nds.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'nds_DE'
+@@ -381,23 +191,6 @@ func (nds *nds_DE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -406,17 +199,6 @@ func (nds *nds_DE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, nds.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -425,17 +207,6 @@ func (nds *nds_DE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, nds.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -444,20 +215,6 @@ func (nds *nds_DE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, nds.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, nds.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -466,17 +223,6 @@ func (nds *nds_DE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0x4b, 0x6c}...)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -485,24 +231,6 @@ func (nds *nds_DE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0x4b, 0x6c, 0x6f, 0x63, 0x6b}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nds.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -511,30 +239,6 @@ func (nds *nds_DE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0x4b, 0x6c, 0x6f, 0x63, 0x6b}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nds.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+ 
+@@ -543,34 +247,5 @@ func (nds *nds_DE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0x4b, 0x6c, 0x6f, 0x63, 0x6b}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nds.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := nds.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/nds_NL/nds_NL.go b/nds_NL/nds_NL.go
+index daf803b..5e737a4 100644
+--- a/nds_NL/nds_NL.go
++++ b/nds_NL/nds_NL.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type nds_NL struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'nds_NL' locale
+ func New() locales.Translator {
+ return &nds_NL{
+- locale: "nds_NL",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Jan.", "Feb.", "März", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januaar", "Februaar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktover", "November", "Dezember"},
+- daysAbbreviated: []string{"Sü.", "Ma.", "Di.", "Mi.", "Du.", "Fr.", "Sa."},
+- daysNarrow: []string{"S", "M", "D", "M", "D", "F", "S"},
+- daysWide: []string{"Sünndag", "Maandag", "Dingsdag", "Middeweken", "Dunnersdag", "Freedag", "Sünnavend"},
+- periodsAbbreviated: []string{"vm", "nm"},
+- periodsWide: []string{"vm", "nm"},
+- erasAbbreviated: []string{"v.Chr.", "n.Chr."},
+- erasNarrow: []string{"vC", "nC"},
+- erasWide: []string{"vör Christus", "na Christus"},
+- timezones: map[string]string{"ECT": "ECT", "GYT": "GYT", "HNOG": "HNOG", "WITA": "Indoneesch Zentraaltiet", "NZST": "NZST", "MESZ": "Zentraaleuropääsch Summertiet", "WAT": "Westafrikaansch Standardtiet", "GMT": "Gröönwisch-Welttiet", "ART": "ART", "HEOG": "HEOG", "HKST": "HKST", "CLST": "CLST", "AWDT": "Westaustraalsch Summertiet", "HEEG": "HEEG", "ACDT": "Zentraalaustraalsch Summertiet", "AKDT": "AKDT", "HADT": "HADT", "EAT": "Oostafrikaansch Tiet", "TMT": "TMT", "TMST": "TMST", "ChST": "ChST", "HNCU": "HNCU", "HECU": "HECU", "AST": "Noordamerikaansch Atlantik-Standardtiet", "ADT": "Noordamerikaansch Atlantik-Summertiet", "GFT": "GFT", "CAT": "Zentraalafrikaansch Tiet", "IST": "Indien-Tiet", "WAST": "Westafrikaansch Summertiet", "EDT": "Noordamerikaansch oosten Summertiet", "WIT": "Oostindoneesch Tiet", "AEST": "Oostaustraalsch Standardtiet", "CHADT": "CHADT", "LHDT": "LHDT", "CDT": "Noordamerikaansch zentraal Summertiet", "ACWST": "Westzentraalaustraalsch Standardtiet", "ARST": "ARST", "HAST": "HAST", "WEZ": "Westeuropääsch Standardtiet", "HEPM": "HEPM", "JST": "Japaansch Standardtiet", "LHST": "LHST", "COT": "COT", "AKST": "AKST", "BT": "BT", "SRT": "SRT", "PDT": "Noordamerikaansch Pazifik-Summertiet", "HKT": "HKT", "OESZ": "Oosteuropääsch Summertiet", "HEPMX": "HEPMX", "EST": "Noordamerikaansch oosten Standardtiet", "AEDT": "Oostaustraalsch Summertiet", "HNPM": "HNPM", "JDT": "Japaansch Summertiet", "MEZ": "Zentraaleuropääsch Standardtiet", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "UYT": "UYT", "ACWDT": "Westzentraalaustraalsch Summertiet", "HNNOMX": "HNNOMX", "WARST": "WARST", "HAT": "HAT", "CHAST": "CHAST", "CLT": "CLT", "HNEG": "HNEG", "ACST": "Zentraalaustraalsch Standardtiet", "CST": "Noordamerikaansch zentraal Standardtiet", "VET": "VET", "PST": "Noordamerikaansch Pazifik-Standardtiet", "WESZ": "Westeuropääsch Summertiet", "SAST": "Söödafrikaansch Tiet", "MYT": "MYT", "UYST": "UYST", "WIB": "Westindoneesch Tiet", "HNT": "HNT", "NZDT": "NZDT", "BOT": "BOT", "OEZ": "Oosteuropääsch Standardtiet", "WART": "WART", "∅∅∅": "∅∅∅", "SGT": "SGT", "MST": "MST", "MDT": "MDT", "AWST": "Westaustraalsch Standardtiet", "COST": "COST"},
++ locale: "nds_NL",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ARST": "ARST", "HADT": "HADT", "HENOMX": "HENOMX", "JDT": "JDT", "HNT": "HNT", "CST": "CST", "MDT": "MDT", "ChST": "ChST", "HECU": "HECU", "SAST": "SAST", "EDT": "EDT", "HKST": "HKST", "EAT": "EAT", "JST": "JST", "ACWDT": "ACWDT", "NZDT": "NZDT", "AEDT": "AEDT", "PST": "PST", "∅∅∅": "∅∅∅", "AST": "AST", "HEEG": "HEEG", "UYST": "UYST", "WAST": "WAST", "WIT": "WIT", "GMT": "GMT", "HEPM": "HEPM", "CHAST": "CHAST", "CHADT": "CHADT", "IST": "IST", "WESZ": "WESZ", "TMT": "TMT", "HKT": "HKT", "SRT": "SRT", "MESZ": "MESZ", "ACWST": "ACWST", "AEST": "AEST", "COT": "COT", "CLT": "CLT", "CDT": "CDT", "ACST": "ACST", "AWST": "AWST", "UYT": "UYT", "OEZ": "OEZ", "TMST": "TMST", "WIB": "WIB", "ACDT": "ACDT", "BT": "BT", "HAT": "HAT", "COST": "COST", "MST": "MST", "ART": "ART", "HNEG": "HNEG", "WAT": "WAT", "CAT": "CAT", "MEZ": "MEZ", "LHST": "LHST", "VET": "VET", "WARST": "WARST", "HEOG": "HEOG", "GYT": "GYT", "CLST": "CLST", "LHDT": "LHDT", "PDT": "PDT", "HNCU": "HNCU", "WITA": "WITA", "NZST": "NZST", "ECT": "ECT", "MYT": "MYT", "HNPM": "HNPM", "HNOG": "HNOG", "EST": "EST", "OESZ": "OESZ", "GFT": "GFT", "HAST": "HAST", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "ADT": "ADT", "WEZ": "WEZ", "SGT": "SGT", "AKST": "AKST", "AKDT": "AKDT", "WART": "WART", "BOT": "BOT", "HNPMX": "HNPMX", "HEPMX": "HEPMX"},
+ }
+ }
+ 
+@@ -117,7 +94,7 @@ func (nds *nds_NL) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (nds *nds_NL) MonthsAbbreviated() []string {
+- return nds.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -127,7 +104,7 @@ func (nds *nds_NL) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (nds *nds_NL) MonthsNarrow() []string {
+- return nds.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -137,7 +114,7 @@ func (nds *nds_NL) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (nds *nds_NL) MonthsWide() []string {
+- return nds.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -183,75 +160,13 @@ func (nds *nds_NL) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'nds_NL' and handles both Whole and Real numbers based on 'v'
+ func (nds *nds_NL) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nds.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nds.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nds.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'nds_NL' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (nds *nds_NL) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nds.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nds.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, nds.percentSuffix...)
+-
+- b = append(b, nds.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'nds_NL'
+@@ -259,56 +174,7 @@ func (nds *nds_NL) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nds.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nds.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nds.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nds.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nds.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, nds.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'nds_NL'
+@@ -317,63 +183,7 @@ func (nds *nds_NL) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nds.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nds.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nds.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, nds.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nds.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, nds.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, nds.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'nds_NL'
+@@ -381,23 +191,6 @@ func (nds *nds_NL) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -406,17 +199,6 @@ func (nds *nds_NL) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, nds.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -425,17 +207,6 @@ func (nds *nds_NL) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, nds.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -444,20 +215,6 @@ func (nds *nds_NL) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, nds.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, nds.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -466,17 +223,6 @@ func (nds *nds_NL) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0x4b, 0x6c}...)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -485,24 +231,6 @@ func (nds *nds_NL) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0x4b, 0x6c, 0x6f, 0x63, 0x6b}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nds.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -511,30 +239,6 @@ func (nds *nds_NL) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0x4b, 0x6c, 0x6f, 0x63, 0x6b}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nds.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+ 
+@@ -543,34 +247,5 @@ func (nds *nds_NL) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0x4b, 0x6c, 0x6f, 0x63, 0x6b}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nds.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := nds.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/ne/ne.go b/ne/ne.go
+index de8e5d4..f7f431f 100644
+--- a/ne/ne.go
++++ b/ne/ne.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ईसा पूर्व", "सन्"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"ईसा पूर्व", "सन्"},
+- timezones: map[string]string{"HEOG": "पश्चिमी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "AEST": "पूर्वी अस्ट्रेलिया मानक समय", "MEZ": "केन्द्रीय युरोपेली मानक समय", "TMT": "तुर्कमेनिस्तान मानक समय", "ECT": "ईक्वोडोर समय", "HENOMX": "उत्तर पश्चिम मेक्सिकोको दिवा समय", "HAST": "हवाई-एलुटियन मानक समय", "GMT": "ग्रीनविच मिन समय", "EST": "पूर्वी मानक समय", "AEDT": "पूर्वी अस्ट्रेलिया दिवा समय", "HKST": "हङकङ ग्रीष्मकालीन समय", "MST": "MST", "AST": "एट्लान्टिक मानक समय", "GYT": "गुयाना समय", "IST": "भारतीय मानक समय", "NZDT": "न्यूजिल्यान्ड दिवा समय", "HNPMX": "मेक्सिकन प्यासिफिक मानक समय", "HNT": "न्यूफाउनडल्यान्डको मानक समय", "HKT": "हङकङ मानक समय", "WITA": "केन्द्रीय इन्डोनेशिया समय", "WIB": "पश्चिमी इन्डोनेशिया समय", "WEZ": "पश्चिमी युरोपेली मानक समय", "CLST": "चिली ग्रीष्मकालीन समय", "BOT": "बोलिभिया समय", "ACST": "केन्द्रीय अस्ट्रेलिया मानक समय", "UYST": "उरुग्वे ग्रीष्मकालीन समय", "JDT": "जापान दिवा समय", "HNEG": "पूर्वी ग्रीनल्यान्डको मानक समय", "ART": "अर्जेनटिनी मानक समय", "ARST": "अर्जेनटिनी ग्रीष्मकालीन समय", "∅∅∅": "अमेजन ग्रीष्मकालीन समय", "EAT": "पूर्वी अफ्रिकी समय", "HADT": "हवाई-एलुटियन दिवा समय", "AWDT": "पश्चिमी अस्ट्रेलिया दिवा समय", "SAST": "दक्षिण अफ्रिकी समय", "WAST": "पश्चिम अफ्रिकी ग्रीष्मकालीन समय", "OESZ": "पूर्वी युरोपेली ग्रीष्मकालीन समय", "SRT": "सुरिनामा समय", "LHST": "लर्ड हावे मानक समय", "AKDT": "अलस्काको दिवा समय", "WIT": "पूर्वी इन्डोनेशिया समय", "LHDT": "लर्ड हावे दिवा समय", "CHADT": "चाथाम दिवा समय", "WAT": "पश्चिम अफ्रिकी मानक समय", "OEZ": "पूर्वी युरोपेली मानक समय", "WART": "पश्चिमी अर्जेनटिनी मानक समय", "UYT": "उरूग्वे मानक समय", "HNCU": "क्यूबाको मानक समय", "HEPMX": "मेक्सिकन प्यासिफिक दिवा समय", "ADT": "एट्लान्टिक दिवा समय", "PST": "प्यासिफिक मानक समय", "CLT": "चिली मानक समय", "JST": "जापान मानक समय", "HEEG": "पूर्वी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "COT": "कोलम्बियाली मानक समय", "PDT": "प्यासिफिक दिवा समय", "HEPM": "सेन्ट पियर्रे र मिक्युलोनको दिवा समय", "GFT": "फ्रेन्च ग्वाना समय", "CHAST": "चाथाम मानक समय", "CAT": "केन्द्रीय अफ्रिकी समय", "HNOG": "पश्चिमी ग्रीनल्यान्डको मानक समय", "MESZ": "केन्द्रीय युरोपेली ग्रीष्मकालीन समय", "SGT": "सिंगापुर मानक समय", "ACWDT": "केन्द्रीय पश्चिमी अस्ट्रेलिया दिवा समय", "HAT": "न्यूफाउनल्यान्डको दिवा समय", "AWST": "पश्चिमी अस्ट्रेलिया मानक समय", "HNPM": "सेन्ट पियर्रे र मिक्युलोनको मानक समय", "ChST": "चामोर्रो मानक समय", "TMST": "तुर्कमेनिस्तान ग्रीष्मकालीन मानक समय", "EDT": "पूर्वी दिवा समय", "CDT": "केन्द्रीय दिवा समय", "BT": "भुटानी समय", "WESZ": "युरोपेली ग्रीष्मकालीन समय", "ACWST": "केन्द्रीय पश्चिमी अस्ट्रेलिया मानक समय", "WARST": "पश्चिमी अर्जेनटिनी ग्रीष्मकालीन समय", "COST": "कोलम्बियाली ग्रीष्मकालीन समय", "AKST": "अलस्काको मानक समय", "CST": "केन्द्रीय मानक समय", "MYT": "मलेसिया समय", "VET": "भेनेज्युएला समय", "NZST": "न्यूजिल्यान्ड मानक समय", "ACDT": "केन्द्रीय अस्ट्रेलिया दिवा समय", "HNNOMX": "उत्तर पश्चिम मेक्सिकोको मानक समय", "HECU": "क्यूबाको दिवा समय", "MDT": "MDT"},
++ timezones: map[string]string{"AWST": "पश्चिमी अस्ट्रेलिया मानक समय", "CHAST": "चाथाम मानक समय", "VET": "भेनेज्युएला समय", "WART": "पश्चिमी अर्जेनटिनी मानक समय", "∅∅∅": "ब्राजिलीया ग्रीष्मकालीन समय", "TMT": "तुर्कमेनिस्तान मानक समय", "TMST": "तुर्कमेनिस्तान ग्रीष्मकालीन मानक समय", "WIB": "पश्चिमी इन्डोनेशिया समय", "COST": "कोलम्बियाली ग्रीष्मकालीन समय", "HEPM": "सेन्ट पियर्रे र मिक्युलोनको दिवा समय", "MST": "MST", "WESZ": "युरोपेली ग्रीष्मकालीन समय", "WARST": "पश्चिमी अर्जेनटिनी ग्रीष्मकालीन समय", "OESZ": "पूर्वी युरोपेली ग्रीष्मकालीन समय", "EST": "पूर्वी मानक समय", "ACST": "केन्द्रीय अस्ट्रेलिया मानक समय", "MYT": "मलेसिया समय", "PST": "प्यासिफिक मानक समय", "LHST": "लर्ड हावे मानक समय", "LHDT": "लर्ड हावे दिवा समय", "AKST": "अलस्काको मानक समय", "ECT": "ईक्वोडोर समय", "SRT": "सुरिनामा समय", "EAT": "पूर्वी अफ्रिकी समय", "HAST": "हवाई-एलुटियन मानक समय", "GMT": "ग्रीनविच मिन समय", "JST": "जापान मानक समय", "UYST": "उरुग्वे ग्रीष्मकालीन समय", "ACWST": "केन्द्रीय पश्चिमी अस्ट्रेलिया मानक समय", "CHADT": "चाथाम दिवा समय", "HEPMX": "मेक्सिकन प्यासिफिक दिवा समय", "WAT": "पश्चिम अफ्रिकी मानक समय", "HNOG": "पश्चिमी ग्रीनल्यान्डको मानक समय", "HKST": "हङकङ ग्रीष्मकालीन समय", "CLT": "चिली मानक समय", "AEST": "पूर्वी अस्ट्रेलिया मानक समय", "HECU": "क्यूबाको दिवा समय", "HNT": "न्यूफाउनडल्यान्डको मानक समय", "ART": "अर्जेनटिनी मानक समय", "ARST": "अर्जेनटिनी ग्रीष्मकालीन समय", "HNEG": "पूर्वी ग्रीनल्यान्डको मानक समय", "HENOMX": "उत्तर पश्चिम मेक्सिकोको दिवा समय", "EDT": "पूर्वी दिवा समय", "HEEG": "पूर्वी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "JDT": "जापान दिवा समय", "OEZ": "पूर्वी युरोपेली मानक समय", "AST": "एट्लान्टिक मानक समय", "ACWDT": "केन्द्रीय पश्चिमी अस्ट्रेलिया दिवा समय", "GFT": "फ्रेन्च ग्वाना समय", "HNPMX": "मेक्सिकन प्यासिफिक मानक समय", "WIT": "पूर्वी इन्डोनेशिया समय", "CDT": "केन्द्रीय दिवा समय", "ADT": "एट्लान्टिक दिवा समय", "HNPM": "सेन्ट पियर्रे र मिक्युलोनको मानक समय", "AEDT": "पूर्वी अस्ट्रेलिया दिवा समय", "WAST": "पश्चिम अफ्रिकी ग्रीष्मकालीन समय", "SAST": "दक्षिण अफ्रिकी समय", "HNNOMX": "उत्तर पश्चिम मेक्सिकोको मानक समय", "WEZ": "पश्चिमी युरोपेली मानक समय", "SGT": "सिंगापुर मानक समय", "MDT": "MDT", "NZDT": "न्यूजिल्यान्ड दिवा समय", "CST": "केन्द्रीय मानक समय", "NZST": "न्यूजिल्यान्ड मानक समय", "ChST": "चामोर्रो मानक समय", "PDT": "प्यासिफिक दिवा समय", "HEOG": "पश्चिमी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "HKT": "हङकङ मानक समय", "CAT": "केन्द्रीय अफ्रिकी समय", "WITA": "केन्द्रीय इन्डोनेशिया समय", "BT": "भुटानी समय", "UYT": "उरूग्वे मानक समय", "IST": "भारतीय मानक समय", "AKDT": "अलस्काको दिवा समय", "COT": "कोलम्बियाली मानक समय", "BOT": "बोलिभिया समय", "MEZ": "केन्द्रीय युरोपेली मानक समय", "MESZ": "केन्द्रीय युरोपेली ग्रीष्मकालीन समय", "AWDT": "पश्चिमी अस्ट्रेलिया दिवा समय", "HNCU": "क्यूबाको मानक समय", "HAT": "न्यूफाउनल्यान्डको दिवा समय", "GYT": "गुयाना समय", "CLST": "चिली ग्रीष्मकालीन समय", "HADT": "हवाई-एलुटियन दिवा समय", "ACDT": "केन्द्रीय अस्ट्रेलिया दिवा समय"},
+ }
+ }
+ 
+diff --git a/ne_IN/ne_IN.go b/ne_IN/ne_IN.go
+index 2a7220d..4097444 100644
+--- a/ne_IN/ne_IN.go
++++ b/ne_IN/ne_IN.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ne_IN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ne_IN' locale
+ func New() locales.Translator {
+ return &ne_IN{
+- locale: "ne_IN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "जनवरी", "फेब्रुअरी", "मार्च", "अप्रिल", "मे", "जुन", "जुलाई", "अगस्ट", "सेप्टेम्बर", "अक्टोबर", "नोभेम्बर", "डिसेम्बर"},
+- monthsNarrow: []string{"", "१", "२", "३", "४", "५", "६", "७", "८", "९", "१०", "११", "१२"},
+- monthsWide: []string{"", "जनवरी", "फेब्रुअरी", "मार्च", "अप्रिल", "मई", "जुन", "जुलाई", "अगस्ट", "सेप्टेम्बर", "अक्टोबर", "नोभेम्बर", "डिसेम्बर"},
+- daysAbbreviated: []string{"आइत", "सोम", "मङ्गल", "बुध", "बिहि", "शुक्र", "शनि"},
+- daysNarrow: []string{"आ", "सो", "म", "बु", "बि", "शु", "श"},
+- daysShort: []string{"आइत", "सोम", "मङ्गल", "बुध", "बिहि", "शुक्र", "शनि"},
+- daysWide: []string{"आइतबार", "सोमबार", "मङ्गलबार", "बुधबार", "बिहिबार", "शुक्रबार", "शनिबार"},
+- periodsAbbreviated: []string{"पूर्वाह्न", "अपराह्न"},
+- periodsNarrow: []string{"पूर्वाह्न", "अपराह्न"},
+- periodsWide: []string{"पूर्वाह्न", "अपराह्न"},
+- erasAbbreviated: []string{"ईसा पूर्व", "सन्"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ईसा पूर्व", "सन्"},
+- timezones: map[string]string{"HNPMX": "मेक्सिकन प्यासिफिक मानक समय", "ADT": "एट्लान्टिक दिवा समय", "WEZ": "पश्चिमी युरोपेली मानक समय", "IST": "भारतीय मानक समय", "ACDT": "केन्द्रीय अस्ट्रेलिया दिवा समय", "HEEG": "पूर्वी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "ECT": "ईक्वोडोर समय", "MST": "MST", "HNT": "न्यूफाउनडल्यान्डको मानक समय", "ART": "अर्जेनटिनी मानक समय", "AWDT": "पश्चिमी अस्ट्रेलिया दिवा समय", "HADT": "हवाई-एलुटियन दिवा समय", "MEZ": "केन्द्रीय युरोपेली मानक समय", "BOT": "बोलिभिया समय", "ACST": "केन्द्रीय अस्ट्रेलिया मानक समय", "COST": "कोलम्बियाली ग्रीष्मकालीन समय", "HENOMX": "उत्तर पश्चिम मेक्सिकोको दिवा समय", "EST": "पूर्वी मानक समय", "ACWDT": "केन्द्रीय पश्चिमी अस्ट्रेलिया दिवा समय", "JST": "जापान मानक समय", "HECU": "क्यूबाको दिवा समय", "VET": "भेनेज्युएला समय", "PST": "प्यासिफिक मानक समय", "CLT": "चिली मानक समय", "SRT": "सुरिनामा समय", "NZST": "न्यूजिल्यान्ड मानक समय", "CHADT": "चाथाम दिवा समय", "ChST": "चामोर्रो मानक समय", "GFT": "फ्रेन्च ग्वाना समय", "EDT": "पूर्वी दिवा समय", "HEOG": "पश्चिमी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "MESZ": "केन्द्रीय युरोपेली ग्रीष्मकालीन समय", "∅∅∅": "पेरु ग्रीष्मकालीन समय", "HNCU": "क्यूबाको मानक समय", "CST": "केन्द्रीय मानक समय", "HEPM": "सेन्ट पियर्रे र मिक्युलोनको दिवा समय", "LHST": "लर्ड हावे मानक समय", "NZDT": "न्यूजिल्यान्ड दिवा समय", "TMT": "तुर्कमेनिस्तान मानक समय", "GMT": "ग्रीनविच मिन समय", "PDT": "प्यासिफिक दिवा समय", "ARST": "अर्जेनटिनी ग्रीष्मकालीन समय", "AEST": "पूर्वी अस्ट्रेलिया मानक समय", "HKT": "हङकङ मानक समय", "WART": "पश्चिमी अर्जेनटिनी मानक समय", "HEPMX": "मेक्सिकन प्यासिफिक दिवा समय", "AST": "एट्लान्टिक मानक समय", "AWST": "पश्चिमी अस्ट्रेलिया मानक समय", "AEDT": "पूर्वी अस्ट्रेलिया दिवा समय", "CHAST": "चाथाम मानक समय", "WESZ": "युरोपेली ग्रीष्मकालीन समय", "LHDT": "लर्ड हावे दिवा समय", "HNEG": "पूर्वी ग्रीनल्यान्डको मानक समय", "CAT": "केन्द्रीय अफ्रिकी समय", "WAST": "पश्चिम अफ्रिकी ग्रीष्मकालीन समय", "OEZ": "पूर्वी युरोपेली मानक समय", "WARST": "पश्चिमी अर्जेनटिनी ग्रीष्मकालीन समय", "HNOG": "पश्चिमी ग्रीनल्यान्डको मानक समय", "BT": "भुटानी समय", "JDT": "जापान दिवा समय", "AKST": "अलस्काको मानक समय", "AKDT": "अलस्काको दिवा समय", "HAST": "हवाई-एलुटियन मानक समय", "EAT": "पूर्वी अफ्रिकी समय", "WAT": "पश्चिम अफ्रिकी मानक समय", "OESZ": "पूर्वी युरोपेली ग्रीष्मकालीन समय", "GYT": "गुयाना समय", "MYT": "मलेसिया समय", "WIT": "पूर्वी इन्डोनेशिया समय", "HKST": "हङकङ ग्रीष्मकालीन समय", "WITA": "केन्द्रीय इन्डोनेशिया समय", "HNPM": "सेन्ट पियर्रे र मिक्युलोनको मानक समय", "TMST": "तुर्कमेनिस्तान ग्रीष्मकालीन मानक समय", "UYST": "उरुग्वे ग्रीष्मकालीन समय", "CDT": "केन्द्रीय दिवा समय", "WIB": "पश्चिमी इन्डोनेशिया समय", "COT": "कोलम्बियाली मानक समय", "HNNOMX": "उत्तर पश्चिम मेक्सिकोको मानक समय", "SGT": "सिंगापुर मानक समय", "MDT": "MDT", "UYT": "उरूग्वे मानक समय", "ACWST": "केन्द्रीय पश्चिमी अस्ट्रेलिया मानक समय", "HAT": "न्यूफाउनल्यान्डको दिवा समय", "SAST": "दक्षिण अफ्रिकी समय", "CLST": "चिली ग्रीष्मकालीन समय"},
++ locale: "ne_IN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"∅∅∅": "∅∅∅", "ChST": "ChST", "MESZ": "MESZ", "ACDT": "ACDT", "HENOMX": "HENOMX", "EDT": "EDT", "HKST": "HKST", "ECT": "ECT", "HAST": "HAST", "GFT": "GFT", "HEOG": "HEOG", "TMT": "TMT", "CLST": "CLST", "CDT": "CDT", "HADT": "HADT", "CHADT": "CHADT", "HNPMX": "HNPMX", "WAT": "WAT", "WAST": "WAST", "AKST": "AKST", "MEZ": "MEZ", "AEST": "AEST", "AKDT": "AKDT", "OEZ": "OEZ", "SAST": "SAST", "WITA": "WITA", "HNEG": "HNEG", "HNPM": "HNPM", "AEDT": "AEDT", "WARST": "WARST", "CAT": "CAT", "CLT": "CLT", "LHST": "LHST", "VET": "VET", "HECU": "HECU", "NZDT": "NZDT", "ARST": "ARST", "BT": "BT", "UYT": "UYT", "COT": "COT", "EST": "EST", "CST": "CST", "MDT": "MDT", "NZST": "NZST", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "IST": "IST", "PDT": "PDT", "HAT": "HAT", "COST": "COST", "HNOG": "HNOG", "BOT": "BOT", "UYST": "UYST", "MST": "MST", "WIB": "WIB", "AST": "AST", "ADT": "ADT", "GMT": "GMT", "JST": "JST", "PST": "PST", "ACWDT": "ACWDT", "OESZ": "OESZ", "HKT": "HKT", "EAT": "EAT", "ACST": "ACST", "HEEG": "HEEG", "MYT": "MYT", "HEPM": "HEPM", "CHAST": "CHAST", "WESZ": "WESZ", "SGT": "SGT", "WIT": "WIT", "TMST": "TMST", "AWST": "AWST", "JDT": "JDT", "ACWST": "ACWST", "HNT": "HNT", "WART": "WART", "GYT": "GYT", "SRT": "SRT", "LHDT": "LHDT", "ART": "ART", "AWDT": "AWDT", "WEZ": "WEZ", "HEPMX": "HEPMX"},
+ }
+ }
+ 
+@@ -142,7 +119,7 @@ func (ne *ne_IN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ne *ne_IN) MonthsAbbreviated() []string {
+- return ne.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -152,7 +129,7 @@ func (ne *ne_IN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ne *ne_IN) MonthsNarrow() []string {
+- return ne.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -162,7 +139,7 @@ func (ne *ne_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ne *ne_IN) MonthsWide() []string {
+- return ne.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -208,73 +185,13 @@ func (ne *ne_IN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ne_IN' and handles both Whole and Real numbers based on 'v'
+ func (ne *ne_IN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ne.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ne.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ne.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ne_IN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ne *ne_IN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ne.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ne.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ne.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ne_IN'
+@@ -282,60 +199,7 @@ func (ne *ne_IN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ne.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ne.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ne.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ne.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, ne.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ne.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ne.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ne_IN'
+@@ -344,72 +208,7 @@ func (ne *ne_IN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ne.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ne.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ne.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ne.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, ne.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, ne.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ne.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, ne.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ne.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ne_IN'
+@@ -417,28 +216,6 @@ func (ne *ne_IN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -447,17 +224,6 @@ func (ne *ne_IN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ne.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -466,17 +232,6 @@ func (ne *ne_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ne.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -485,19 +240,6 @@ func (ne *ne_IN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ne.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, ne.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+diff --git a/ne_NP/ne_NP.go b/ne_NP/ne_NP.go
+index 6e3edd2..992d827 100644
+--- a/ne_NP/ne_NP.go
++++ b/ne_NP/ne_NP.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ne_NP struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ne_NP' locale
+ func New() locales.Translator {
+ return &ne_NP{
+- locale: "ne_NP",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "जनवरी", "फेब्रुअरी", "मार्च", "अप्रिल", "मे", "जुन", "जुलाई", "अगस्ट", "सेप्टेम्बर", "अक्टोबर", "नोभेम्बर", "डिसेम्बर"},
+- monthsNarrow: []string{"", "१", "२", "३", "४", "५", "६", "७", "८", "९", "१०", "११", "१२"},
+- monthsWide: []string{"", "जनवरी", "फेब्रुअरी", "मार्च", "अप्रिल", "मई", "जुन", "जुलाई", "अगस्ट", "सेप्टेम्बर", "अक्टोबर", "नोभेम्बर", "डिसेम्बर"},
+- daysAbbreviated: []string{"आइत", "सोम", "मङ्गल", "बुध", "बिहि", "शुक्र", "शनि"},
+- daysNarrow: []string{"आ", "सो", "म", "बु", "बि", "शु", "श"},
+- daysShort: []string{"आइत", "सोम", "मङ्गल", "बुध", "बिहि", "शुक्र", "शनि"},
+- daysWide: []string{"आइतबार", "सोमबार", "मङ्गलबार", "बुधबार", "बिहिबार", "शुक्रबार", "शनिबार"},
+- periodsAbbreviated: []string{"पूर्वाह्न", "अपराह्न"},
+- periodsNarrow: []string{"पूर्वाह्न", "अपराह्न"},
+- periodsWide: []string{"पूर्वाह्न", "अपराह्न"},
+- erasAbbreviated: []string{"ईसा पूर्व", "सन्"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ईसा पूर्व", "सन्"},
+- timezones: map[string]string{"LHDT": "लर्ड हावे दिवा समय", "HEPMX": "मेक्सिकन प्यासिफिक दिवा समय", "AWST": "पश्चिमी अस्ट्रेलिया मानक समय", "WART": "पश्चिमी अर्जेनटिनी मानक समय", "HNCU": "क्यूबाको मानक समय", "HECU": "क्यूबाको दिवा समय", "GMT": "ग्रीनविच मिन समय", "PST": "प्यासिफिक मानक समय", "HEPM": "सेन्ट पियर्रे र मिक्युलोनको दिवा समय", "OEZ": "पूर्वी युरोपेली मानक समय", "CAT": "केन्द्रीय अफ्रिकी समय", "MST": "MST", "ACWST": "केन्द्रीय पश्चिमी अस्ट्रेलिया मानक समय", "HNPM": "सेन्ट पियर्रे र मिक्युलोनको मानक समय", "NZST": "न्यूजिल्यान्ड मानक समय", "TMT": "तुर्कमेनिस्तान मानक समय", "EDT": "पूर्वी दिवा समय", "HEOG": "पश्चिमी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "SGT": "सिंगापुर मानक समय", "MYT": "मलेसिया समय", "WIB": "पश्चिमी इन्डोनेशिया समय", "CHADT": "चाथाम दिवा समय", "HNPMX": "मेक्सिकन प्यासिफिक मानक समय", "UYT": "उरूग्वे मानक समय", "CST": "केन्द्रीय मानक समय", "AST": "एट्लान्टिक मानक समय", "ARST": "अर्जेनटिनी ग्रीष्मकालीन समय", "MESZ": "केन्द्रीय युरोपेली ग्रीष्मकालीन समय", "CLT": "चिली मानक समय", "COT": "कोलम्बियाली मानक समय", "EST": "पूर्वी मानक समय", "HAST": "हवाई-एलुटियन मानक समय", "SRT": "सुरिनामा समय", "ART": "अर्जेनटिनी मानक समय", "PDT": "प्यासिफिक दिवा समय", "WEZ": "पश्चिमी युरोपेली मानक समय", "ACST": "केन्द्रीय अस्ट्रेलिया मानक समय", "WAT": "पश्चिम अफ्रिकी मानक समय", "ADT": "एट्लान्टिक दिवा समय", "GYT": "गुयाना समय", "IST": "भारतीय मानक समय", "GFT": "फ्रेन्च ग्वाना समय", "ChST": "चामोर्रो मानक समय", "COST": "कोलम्बियाली ग्रीष्मकालीन समय", "UYST": "उरुग्वे ग्रीष्मकालीन समय", "CLST": "चिली ग्रीष्मकालीन समय", "HNNOMX": "उत्तर पश्चिम मेक्सिकोको मानक समय", "WARST": "पश्चिमी अर्जेनटिनी ग्रीष्मकालीन समय", "LHST": "लर्ड हावे मानक समय", "EAT": "पूर्वी अफ्रिकी समय", "AKST": "अलस्काको मानक समय", "AKDT": "अलस्काको दिवा समय", "CDT": "केन्द्रीय दिवा समय", "HADT": "हवाई-एलुटियन दिवा समय", "WITA": "केन्द्रीय इन्डोनेशिया समय", "ACDT": "केन्द्रीय अस्ट्रेलिया दिवा समय", "OESZ": "पूर्वी युरोपेली ग्रीष्मकालीन समय", "AEST": "पूर्वी अस्ट्रेलिया मानक समय", "ECT": "ईक्वोडोर समय", "MDT": "MDT", "HAT": "न्यूफाउनल्यान्डको दिवा समय", "HKT": "हङकङ मानक समय", "AWDT": "पश्चिमी अस्ट्रेलिया दिवा समय", "CHAST": "चाथाम मानक समय", "HEEG": "पूर्वी ग्रीनल्यान्डको ग्रीष्मकालीन समय", "TMST": "तुर्कमेनिस्तान ग्रीष्मकालीन मानक समय", "MEZ": "केन्द्रीय युरोपेली मानक समय", "SAST": "दक्षिण अफ्रिकी समय", "HNOG": "पश्चिमी ग्रीनल्यान्डको मानक समय", "AEDT": "पूर्वी अस्ट्रेलिया दिवा समय", "WAST": "पश्चिम अफ्रिकी ग्रीष्मकालीन समय", "BT": "भुटानी समय", "BOT": "बोलिभिया समय", "HKST": "हङकङ ग्रीष्मकालीन समय", "∅∅∅": "अमेजन ग्रीष्मकालीन समय", "JST": "जापान मानक समय", "HNT": "न्यूफाउनडल्यान्डको मानक समय", "WESZ": "युरोपेली ग्रीष्मकालीन समय", "HENOMX": "उत्तर पश्चिम मेक्सिकोको दिवा समय", "WIT": "पूर्वी इन्डोनेशिया समय", "VET": "भेनेज्युएला समय", "ACWDT": "केन्द्रीय पश्चिमी अस्ट्रेलिया दिवा समय", "NZDT": "न्यूजिल्यान्ड दिवा समय", "JDT": "जापान दिवा समय", "HNEG": "पूर्वी ग्रीनल्यान्डको मानक समय"},
++ locale: "ne_NP",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CDT": "CDT", "MDT": "MDT", "WIB": "WIB", "AWDT": "AWDT", "OESZ": "OESZ", "HKT": "HKT", "WITA": "WITA", "ACWST": "ACWST", "WESZ": "WESZ", "WAT": "WAT", "CLT": "CLT", "ARST": "ARST", "CAT": "CAT", "NZST": "NZST", "NZDT": "NZDT", "ChST": "ChST", "BOT": "BOT", "HAST": "HAST", "EST": "EST", "TMT": "TMT", "UYST": "UYST", "PDT": "PDT", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "UYT": "UYT", "PST": "PST", "ART": "ART", "CHAST": "CHAST", "AWST": "AWST", "MYT": "MYT", "WEZ": "WEZ", "WAST": "WAST", "HAT": "HAT", "COT": "COT", "SRT": "SRT", "HENOMX": "HENOMX", "HNPM": "HNPM", "HNOG": "HNOG", "HEOG": "HEOG", "HEPM": "HEPM", "CHADT": "CHADT", "GMT": "GMT", "LHST": "LHST", "ADT": "ADT", "EAT": "EAT", "HNEG": "HNEG", "HEEG": "HEEG", "AKST": "AKST", "WART": "WART", "WIT": "WIT", "IST": "IST", "BT": "BT", "AEST": "AEST", "AKDT": "AKDT", "WARST": "WARST", "ACST": "ACST", "MST": "MST", "JDT": "JDT", "HNT": "HNT", "HKST": "HKST", "MEZ": "MEZ", "MESZ": "MESZ", "GFT": "GFT", "SAST": "SAST", "ECT": "ECT", "JST": "JST", "VET": "VET", "HNCU": "HNCU", "COST": "COST", "CST": "CST", "HADT": "HADT", "ACWDT": "ACWDT", "AEDT": "AEDT", "EDT": "EDT", "CLST": "CLST", "SGT": "SGT", "HNPMX": "HNPMX", "OEZ": "OEZ", "∅∅∅": "∅∅∅", "TMST": "TMST", "ACDT": "ACDT", "HECU": "HECU", "HEPMX": "HEPMX", "GYT": "GYT", "AST": "AST"},
+ }
+ }
+ 
+@@ -142,7 +119,7 @@ func (ne *ne_NP) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ne *ne_NP) MonthsAbbreviated() []string {
+- return ne.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -152,7 +129,7 @@ func (ne *ne_NP) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ne *ne_NP) MonthsNarrow() []string {
+- return ne.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -162,7 +139,7 @@ func (ne *ne_NP) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ne *ne_NP) MonthsWide() []string {
+- return ne.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -208,73 +185,13 @@ func (ne *ne_NP) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ne_NP' and handles both Whole and Real numbers based on 'v'
+ func (ne *ne_NP) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ne.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ne.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ne.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ne_NP' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ne *ne_NP) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ne.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ne.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ne.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ne_NP'
+@@ -282,60 +199,7 @@ func (ne *ne_NP) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ne.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ne.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ne.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ne.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, ne.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ne.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ne.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ne_NP'
+@@ -344,72 +208,7 @@ func (ne *ne_NP) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ne.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ne.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ne.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ne.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, ne.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, ne.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ne.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, ne.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ne.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ne_NP'
+@@ -417,28 +216,6 @@ func (ne *ne_NP) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -447,17 +224,6 @@ func (ne *ne_NP) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ne.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -466,17 +232,6 @@ func (ne *ne_NP) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ne.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -485,19 +240,6 @@ func (ne *ne_NP) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ne.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, ne.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -506,19 +248,6 @@ func (ne *ne_NP) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ne.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -527,26 +256,6 @@ func (ne *ne_NP) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ne.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ne.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -555,30 +264,6 @@ func (ne *ne_NP) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ne.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ne.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -587,34 +272,5 @@ func (ne *ne_NP) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ne.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ne.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ne.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/nl/nl.go b/nl/nl.go
+index 59b0a5b..512257e 100644
+--- a/nl/nl.go
++++ b/nl/nl.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"v.Chr.", "n.Chr."},
+ erasNarrow: []string{"v.C.", "n.C."},
+ erasWide: []string{"voor Christus", "na Christus"},
+- timezones: map[string]string{"HENOMX": "Noordwest-Mexicaanse zomertijd", "GMT": "Greenwich Mean Time", "SRT": "Surinaamse tijd", "WART": "West-Argentijnse standaardtijd", "EDT": "Eastern-zomertijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "AEST": "Oost-Australische standaardtijd", "HKT": "Hongkongse standaardtijd", "WAST": "West-Afrikaanse zomertijd", "WEZ": "West-Europese standaardtijd", "ART": "Argentijnse standaardtijd", "MEZ": "Midden-Europese standaardtijd", "NZDT": "Nieuw-Zeelandse zomertijd", "JDT": "Japanse zomertijd", "ECT": "Ecuadoraanse tijd", "∅∅∅": "Peruaanse zomertijd", "MDT": "Macause zomertijd", "AKDT": "Alaska-zomertijd", "WESZ": "West-Europese zomertijd", "CHAST": "Chatham-standaardtijd", "WAT": "West-Afrikaanse standaardtijd", "HECU": "Cubaanse zomertijd", "CST": "Central-standaardtijd", "HADT": "Hawaii-Aleoetische zomertijd", "WIT": "Oost-Indonesische tijd", "AWST": "West-Australische standaardtijd", "LHDT": "Lord Howe-eilandse zomertijd", "IST": "Indiase tijd", "CAT": "Centraal-Afrikaanse tijd", "WARST": "West-Argentijnse zomertijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "PDT": "Pacific-zomertijd", "HEOG": "West-Groenlandse zomertijd", "NZST": "Nieuw-Zeelandse standaardtijd", "ChST": "Chamorro-tijd", "EST": "Eastern-standaardtijd", "ARST": "Argentijnse zomertijd", "MESZ": "Midden-Europese zomertijd", "HNEG": "Oost-Groenlandse standaardtijd", "TMT": "Turkmeense standaardtijd", "TMST": "Turkmeense zomertijd", "COT": "Colombiaanse standaardtijd", "ADT": "Atlantic-zomertijd", "PST": "Pacific-standaardtijd", "WITA": "Centraal-Indonesische tijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "JST": "Japanse standaardtijd", "COST": "Colombiaanse zomertijd", "AKST": "Alaska-standaardtijd", "AWDT": "West-Australische zomertijd", "CHADT": "Chatham-zomertijd", "ACST": "Midden-Australische standaardtijd", "OESZ": "Oost-Europese zomertijd", "LHST": "Lord Howe-eilandse standaardtijd", "GFT": "Frans-Guyaanse tijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "MYT": "Maleisische tijd", "UYT": "Uruguayaanse standaardtijd", "HAST": "Hawaii-Aleoetische standaardtijd", "VET": "Venezolaanse tijd", "BT": "Bhutaanse tijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "OEZ": "Oost-Europese standaardtijd", "WIB": "West-Indonesische tijd", "ACWDT": "Midden-Australische westelijke zomertijd", "HNOG": "West-Groenlandse standaardtijd", "ACWST": "Midden-Australische westelijke standaardtijd", "HNT": "Newfoundland-standaardtijd", "CLT": "Chileense standaardtijd", "BOT": "Boliviaanse tijd", "HNCU": "Cubaanse standaardtijd", "MST": "Macause standaardtijd", "CDT": "Central-zomertijd", "AST": "Atlantic-standaardtijd", "HAT": "Newfoundland-zomertijd", "AEDT": "Oost-Australische zomertijd", "HKST": "Hongkongse zomertijd", "HEEG": "Oost-Groenlandse zomertijd", "ACDT": "Midden-Australische zomertijd", "EAT": "Oost-Afrikaanse tijd", "SGT": "Singaporese standaardtijd", "CLST": "Chileense zomertijd", "GYT": "Guyaanse tijd", "UYST": "Uruguayaanse zomertijd", "SAST": "Zuid-Afrikaanse tijd"},
++ timezones: map[string]string{"VET": "Venezolaanse tijd", "WARST": "West-Argentijnse zomertijd", "CDT": "Central-zomertijd", "HAST": "Hawaii-Aleoetische standaardtijd", "UYST": "Uruguayaanse zomertijd", "AEST": "Oost-Australische standaardtijd", "HNCU": "Cubaanse standaardtijd", "HEOG": "West-Groenlandse zomertijd", "ADT": "Atlantic-zomertijd", "HNEG": "Oost-Groenlandse standaardtijd", "∅∅∅": "Acre-zomertijd", "AEDT": "Oost-Australische zomertijd", "AKDT": "Alaska-zomertijd", "COST": "Colombiaanse zomertijd", "LHST": "Lord Howe-eilandse standaardtijd", "JDT": "Japanse zomertijd", "PST": "Pacific-standaardtijd", "OEZ": "Oost-Europese standaardtijd", "TMT": "Turkmeense standaardtijd", "CAT": "Centraal-Afrikaanse tijd", "AWDT": "West-Australische zomertijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "WESZ": "West-Europese zomertijd", "LHDT": "Lord Howe-eilandse zomertijd", "MYT": "Maleisische tijd", "UYT": "Uruguayaanse standaardtijd", "AKST": "Alaska-standaardtijd", "HAT": "Newfoundland-zomertijd", "NZDT": "Nieuw-Zeelandse zomertijd", "ACST": "Midden-Australische standaardtijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "HNOG": "West-Groenlandse standaardtijd", "HKT": "Hongkongse standaardtijd", "MST": "Macause standaardtijd", "SRT": "Surinaamse tijd", "MEZ": "Midden-Europese standaardtijd", "WAST": "West-Afrikaanse zomertijd", "GYT": "Guyaanse tijd", "IST": "Indiase tijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "ChST": "Chamorro-tijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "CHAST": "Chatham-standaardtijd", "GFT": "Frans-Guyaanse tijd", "WART": "West-Argentijnse standaardtijd", "WIT": "Oost-Indonesische tijd", "COT": "Colombiaanse standaardtijd", "ECT": "Ecuadoraanse tijd", "MESZ": "Midden-Europese zomertijd", "HECU": "Cubaanse zomertijd", "HNT": "Newfoundland-standaardtijd", "ACDT": "Midden-Australische zomertijd", "PDT": "Pacific-zomertijd", "OESZ": "Oost-Europese zomertijd", "NZST": "Nieuw-Zeelandse standaardtijd", "ARST": "Argentijnse zomertijd", "CLT": "Chileense standaardtijd", "CLST": "Chileense zomertijd", "CHADT": "Chatham-zomertijd", "BT": "Bhutaanse tijd", "TMST": "Turkmeense zomertijd", "HADT": "Hawaii-Aleoetische zomertijd", "ACWST": "Midden-Australische westelijke standaardtijd", "HKST": "Hongkongse zomertijd", "GMT": "Greenwich Mean Time", "AWST": "West-Australische standaardtijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "ACWDT": "Midden-Australische westelijke zomertijd", "SAST": "Zuid-Afrikaanse tijd", "CST": "Central-standaardtijd", "MDT": "Macause zomertijd", "WIB": "West-Indonesische tijd", "EST": "Eastern-standaardtijd", "EDT": "Eastern-zomertijd", "JST": "Japanse standaardtijd", "WEZ": "West-Europese standaardtijd", "WAT": "West-Afrikaanse standaardtijd", "AST": "Atlantic-standaardtijd", "BOT": "Boliviaanse tijd", "HEEG": "Oost-Groenlandse zomertijd", "SGT": "Singaporese standaardtijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "WITA": "Centraal-Indonesische tijd", "ART": "Argentijnse standaardtijd", "EAT": "Oost-Afrikaanse tijd"},
+ }
+ }
+ 
+diff --git a/nl_AW/nl_AW.go b/nl_AW/nl_AW.go
+index dfd7466..ac4e348 100644
+--- a/nl_AW/nl_AW.go
++++ b/nl_AW/nl_AW.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type nl_AW struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'nl_AW' locale
+ func New() locales.Translator {
+ return &nl_AW{
+- locale: "nl_AW",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "Afl.", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mrt.", "apr.", "mei", "jun.", "jul.", "aug.", "sep.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"},
+- daysAbbreviated: []string{"zo", "ma", "di", "wo", "do", "vr", "za"},
+- daysNarrow: []string{"Z", "M", "D", "W", "D", "V", "Z"},
+- daysShort: []string{"zo", "ma", "di", "wo", "do", "vr", "za"},
+- daysWide: []string{"zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsNarrow: []string{"a.m.", "p.m."},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"v.Chr.", "n.Chr."},
+- erasNarrow: []string{"v.C.", "n.C."},
+- erasWide: []string{"voor Christus", "na Christus"},
+- timezones: map[string]string{"AWDT": "West-Australische zomertijd", "MESZ": "Midden-Europese zomertijd", "BOT": "Boliviaanse tijd", "SGT": "Singaporese standaardtijd", "EST": "Eastern-standaardtijd", "CST": "Central-standaardtijd", "HEOG": "West-Groenlandse zomertijd", "ACST": "Midden-Australische standaardtijd", "OEZ": "Oost-Europese standaardtijd", "AKDT": "Alaska-zomertijd", "ADT": "Atlantic-zomertijd", "GYT": "Guyaanse tijd", "WIB": "West-Indonesische tijd", "PST": "Pacific-standaardtijd", "PDT": "Pacific-zomertijd", "AEST": "Oost-Australische standaardtijd", "JDT": "Japanse zomertijd", "ChST": "Chamorro-tijd", "GFT": "Frans-Guyaanse tijd", "TMST": "Turkmeense zomertijd", "CDT": "Central-zomertijd", "ART": "Argentijnse standaardtijd", "HKT": "Hongkongse standaardtijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "CLT": "Chileense standaardtijd", "ECT": "Ecuadoraanse tijd", "COT": "Colombiaanse standaardtijd", "HAST": "Hawaii-Aleoetische standaardtijd", "WEZ": "West-Europese standaardtijd", "HECU": "Cubaanse zomertijd", "EDT": "Eastern-zomertijd", "ACWDT": "Midden-Australische westelijke zomertijd", "ARST": "Argentijnse zomertijd", "CLST": "Chileense zomertijd", "SRT": "Surinaamse tijd", "AEDT": "Oost-Australische zomertijd", "∅∅∅": "Amazone-zomertijd", "WAT": "West-Afrikaanse standaardtijd", "OESZ": "Oost-Europese zomertijd", "GMT": "Greenwich Mean Time", "WART": "West-Argentijnse standaardtijd", "HAT": "Newfoundland-zomertijd", "IST": "Indiase tijd", "HEEG": "Oost-Groenlandse zomertijd", "ACDT": "Midden-Australische zomertijd", "MDT": "Macause zomertijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "WESZ": "West-Europese zomertijd", "HKST": "Hongkongse zomertijd", "LHDT": "Lord Howe-eilandse zomertijd", "MST": "Macause standaardtijd", "MYT": "Maleisische tijd", "HNOG": "West-Groenlandse standaardtijd", "CHADT": "Chatham-zomertijd", "BT": "Bhutaanse tijd", "CHAST": "Chatham-standaardtijd", "HNEG": "Oost-Groenlandse standaardtijd", "COST": "Colombiaanse zomertijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "HNCU": "Cubaanse standaardtijd", "UYT": "Uruguayaanse standaardtijd", "ACWST": "Midden-Australische westelijke standaardtijd", "MEZ": "Midden-Europese standaardtijd", "LHST": "Lord Howe-eilandse standaardtijd", "WAST": "West-Afrikaanse zomertijd", "WARST": "West-Argentijnse zomertijd", "HADT": "Hawaii-Aleoetische zomertijd", "AWST": "West-Australische standaardtijd", "TMT": "Turkmeense standaardtijd", "CAT": "Centraal-Afrikaanse tijd", "EAT": "Oost-Afrikaanse tijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "UYST": "Uruguayaanse zomertijd", "VET": "Venezolaanse tijd", "HNT": "Newfoundland-standaardtijd", "NZST": "Nieuw-Zeelandse standaardtijd", "NZDT": "Nieuw-Zeelandse zomertijd", "SAST": "Zuid-Afrikaanse tijd", "AKST": "Alaska-standaardtijd", "WITA": "Centraal-Indonesische tijd", "JST": "Japanse standaardtijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "AST": "Atlantic-standaardtijd", "WIT": "Oost-Indonesische tijd"},
++ locale: "nl_AW",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "Afl.", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEPMX": "HEPMX", "HEOG": "HEOG", "CDT": "CDT", "NZST": "NZST", "AST": "AST", "HENOMX": "HENOMX", "HNPM": "HNPM", "ACWST": "ACWST", "WESZ": "WESZ", "WAT": "WAT", "GYT": "GYT", "HNOG": "HNOG", "EAT": "EAT", "HEPM": "HEPM", "CHADT": "CHADT", "WIT": "WIT", "EDT": "EDT", "AKST": "AKST", "HAT": "HAT", "ChST": "ChST", "ART": "ART", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "GFT": "GFT", "COST": "COST", "LHST": "LHST", "JST": "JST", "HNCU": "HNCU", "GMT": "GMT", "MYT": "MYT", "ACWDT": "ACWDT", "VET": "VET", "TMST": "TMST", "MDT": "MDT", "BT": "BT", "UYT": "UYT", "HKT": "HKT", "HKST": "HKST", "ADT": "ADT", "MESZ": "MESZ", "ACST": "ACST", "IST": "IST", "CAT": "CAT", "HADT": "HADT", "WAST": "WAST", "ARST": "ARST", "HNEG": "HNEG", "LHDT": "LHDT", "PST": "PST", "UYST": "UYST", "TMT": "TMT", "MEZ": "MEZ", "ACDT": "ACDT", "AWST": "AWST", "JDT": "JDT", "AKDT": "AKDT", "HNT": "HNT", "WARST": "WARST", "WIB": "WIB", "BOT": "BOT", "PDT": "PDT", "SGT": "SGT", "OEZ": "OEZ", "SAST": "SAST", "CLT": "CLT", "HAST": "HAST", "AEDT": "AEDT", "CHAST": "CHAST", "WEZ": "WEZ", "HECU": "HECU", "EST": "EST", "SRT": "SRT", "HNPMX": "HNPMX", "∅∅∅": "∅∅∅", "CLST": "CLST", "WITA": "WITA", "NZDT": "NZDT", "ECT": "ECT", "AEST": "AEST", "OESZ": "OESZ", "WART": "WART", "COT": "COT", "CST": "CST", "MST": "MST"},
+ }
+ }
+ 
+@@ -138,7 +113,7 @@ func (nl *nl_AW) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (nl *nl_AW) MonthsAbbreviated() []string {
+- return nl.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +123,7 @@ func (nl *nl_AW) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (nl *nl_AW) MonthsNarrow() []string {
+- return nl.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +133,7 @@ func (nl *nl_AW) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (nl *nl_AW) MonthsWide() []string {
+- return nl.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,75 +179,13 @@ func (nl *nl_AW) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'nl_AW' and handles both Whole and Real numbers based on 'v'
+ func (nl *nl_AW) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'nl_AW' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (nl *nl_AW) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, nl.percentSuffix...)
+-
+- b = append(b, nl.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'nl_AW'
+@@ -280,56 +193,7 @@ func (nl *nl_AW) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, nl.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'nl_AW'
+@@ -338,63 +202,7 @@ func (nl *nl_AW) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, nl.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, nl.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, nl.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'nl_AW'
+@@ -402,27 +210,6 @@ func (nl *nl_AW) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,17 +218,6 @@ func (nl *nl_AW) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -450,17 +226,6 @@ func (nl *nl_AW) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -469,19 +234,6 @@ func (nl *nl_AW) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, nl.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -490,19 +242,6 @@ func (nl *nl_AW) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -511,26 +250,6 @@ func (nl *nl_AW) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -539,30 +258,6 @@ func (nl *nl_AW) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -571,34 +266,5 @@ func (nl *nl_AW) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := nl.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/nl_BE/nl_BE.go b/nl_BE/nl_BE.go
+index edb940a..45b153e 100644
+--- a/nl_BE/nl_BE.go
++++ b/nl_BE/nl_BE.go
+@@ -18,7 +18,6 @@ type nl_BE struct {
+ group string
+ minus string
+ percent string
+- percentSuffix string
+ perMille string
+ timeSeparator string
+ inifinity string
+@@ -49,31 +48,11 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{2, 6},
+ pluralsOrdinal: []locales.PluralRule{6},
+ pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+ currencyPositiveSuffix: " ",
+ currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mrt.", "apr.", "mei", "jun.", "jul.", "aug.", "sep.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"},
+- daysAbbreviated: []string{"zo", "ma", "di", "wo", "do", "vr", "za"},
+- daysNarrow: []string{"Z", "M", "D", "W", "D", "V", "Z"},
+- daysShort: []string{"zo", "ma", "di", "wo", "do", "vr", "za"},
+- daysWide: []string{"zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsNarrow: []string{"a.m.", "p.m."},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"v.Chr.", "n.Chr."},
+- erasNarrow: []string{"v.C.", "n.C."},
+- erasWide: []string{"voor Christus", "na Christus"},
+- timezones: map[string]string{"EST": "Eastern-standaardtijd", "CDT": "Central-zomertijd", "WESZ": "West-Europese zomertijd", "AWDT": "West-Australische zomertijd", "CAT": "Centraal-Afrikaanse tijd", "HECU": "Cubaanse zomertijd", "BT": "Bhutaanse tijd", "HEOG": "West-Groenlandse zomertijd", "HAT": "Newfoundland-zomertijd", "HNCU": "Cubaanse standaardtijd", "AKST": "Alaska-standaardtijd", "TMT": "Turkmeense standaardtijd", "WART": "West-Argentijnse standaardtijd", "SGT": "Singaporese standaardtijd", "GYT": "Guyaanse tijd", "ACWDT": "Midden-Australische westelijke zomertijd", "NZST": "Nieuw-Zeelandse standaardtijd", "JDT": "Japanse zomertijd", "BOT": "Boliviaanse tijd", "WAT": "West-Afrikaanse standaardtijd", "ECT": "Ecuadoraanse tijd", "UYT": "Uruguayaanse standaardtijd", "AST": "Atlantic-standaardtijd", "ACWST": "Midden-Australische westelijke standaardtijd", "HKT": "Hongkongse standaardtijd", "CLT": "Chileense standaardtijd", "GFT": "Frans-Guyaanse tijd", "HKST": "Hongkongse zomertijd", "WITA": "Centraal-Indonesische tijd", "ADT": "Atlantic-zomertijd", "HAST": "Hawaii-Aleoetische standaardtijd", "HNOG": "West-Groenlandse standaardtijd", "NZDT": "Nieuw-Zeelandse zomertijd", "TMST": "Turkmeense zomertijd", "EAT": "Oost-Afrikaanse tijd", "UYST": "Uruguayaanse zomertijd", "MEZ": "Midden-Europese standaardtijd", "∅∅∅": "Amazone-zomertijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "AEST": "Oost-Australische standaardtijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "EDT": "Eastern-zomertijd", "MST": "Macause standaardtijd", "MDT": "Macause zomertijd", "PST": "Pacific-standaardtijd", "AWST": "West-Australische standaardtijd", "MESZ": "Midden-Europese zomertijd", "SAST": "Zuid-Afrikaanse tijd", "JST": "Japanse standaardtijd", "OESZ": "Oost-Europese zomertijd", "CST": "Central-standaardtijd", "WIT": "Oost-Indonesische tijd", "WEZ": "West-Europese standaardtijd", "ACST": "Midden-Australische standaardtijd", "ACDT": "Midden-Australische zomertijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "CHADT": "Chatham-zomertijd", "IST": "Indiase tijd", "HNEG": "Oost-Groenlandse standaardtijd", "ART": "Argentijnse standaardtijd", "MYT": "Maleisische tijd", "HNT": "Newfoundland-standaardtijd", "SRT": "Surinaamse tijd", "ARST": "Argentijnse zomertijd", "COST": "Colombiaanse zomertijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "GMT": "Greenwich Mean Time", "HADT": "Hawaii-Aleoetische zomertijd", "CLST": "Chileense zomertijd", "OEZ": "Oost-Europese standaardtijd", "WAST": "West-Afrikaanse zomertijd", "AEDT": "Oost-Australische zomertijd", "PDT": "Pacific-zomertijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "LHST": "Lord Howe-eilandse standaardtijd", "LHDT": "Lord Howe-eilandse zomertijd", "CHAST": "Chatham-standaardtijd", "HEEG": "Oost-Groenlandse zomertijd", "COT": "Colombiaanse standaardtijd", "AKDT": "Alaska-zomertijd", "WIB": "West-Indonesische tijd", "VET": "Venezolaanse tijd", "ChST": "Chamorro-tijd", "WARST": "West-Argentijnse zomertijd"},
++ timezones: map[string]string{"ACWST": "ACWST", "UYST": "UYST", "∅∅∅": "∅∅∅", "CDT": "CDT", "HADT": "HADT", "VET": "VET", "AKDT": "AKDT", "WARST": "WARST", "CAT": "CAT", "HNPM": "HNPM", "AWDT": "AWDT", "PST": "PST", "WART": "WART", "HNOG": "HNOG", "MYT": "MYT", "CHAST": "CHAST", "ADT": "ADT", "PDT": "PDT", "WESZ": "WESZ", "COT": "COT", "MST": "MST", "MDT": "MDT", "ChST": "ChST", "AEST": "AEST", "AEDT": "AEDT", "NZDT": "NZDT", "SRT": "SRT", "JST": "JST", "HEEG": "HEEG", "HNCU": "HNCU", "HEPMX": "HEPMX", "OESZ": "OESZ", "GYT": "GYT", "WIB": "WIB", "ARST": "ARST", "ACWDT": "ACWDT", "EAT": "EAT", "HENOMX": "HENOMX", "HECU": "HECU", "WEZ": "WEZ", "HAT": "HAT", "EDT": "EDT", "TMT": "TMT", "AST": "AST", "AWST": "AWST", "LHST": "LHST", "HEOG": "HEOG", "TMST": "TMST", "WITA": "WITA", "HNNOMX": "HNNOMX", "MESZ": "MESZ", "HNEG": "HNEG", "CHADT": "CHADT", "WAST": "WAST", "AKST": "AKST", "JDT": "JDT", "LHDT": "LHDT", "GFT": "GFT", "WIT": "WIT", "COST": "COST", "EST": "EST", "MEZ": "MEZ", "ACDT": "ACDT", "BOT": "BOT", "ACST": "ACST", "IST": "IST", "HNPMX": "HNPMX", "HNT": "HNT", "CLST": "CLST", "CST": "CST", "GMT": "GMT", "HEPM": "HEPM", "UYT": "UYT", "BT": "BT", "HKST": "HKST", "CLT": "CLT", "NZST": "NZST", "HAST": "HAST", "SGT": "SGT", "SAST": "SAST", "HKT": "HKT", "ART": "ART", "WAT": "WAT", "OEZ": "OEZ", "ECT": "ECT"},
+ }
+ }
+ 
+@@ -138,7 +117,7 @@ func (nl *nl_BE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (nl *nl_BE) MonthsAbbreviated() []string {
+- return nl.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +127,7 @@ func (nl *nl_BE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (nl *nl_BE) MonthsNarrow() []string {
+- return nl.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +137,7 @@ func (nl *nl_BE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (nl *nl_BE) MonthsWide() []string {
+- return nl.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,75 +183,13 @@ func (nl *nl_BE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'nl_BE' and handles both Whole and Real numbers based on 'v'
+ func (nl *nl_BE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'nl_BE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (nl *nl_BE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, nl.percentSuffix...)
+-
+- b = append(b, nl.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'nl_BE'
+@@ -280,7 +197,7 @@ func (nl *nl_BE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -338,7 +255,7 @@ func (nl *nl_BE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -427,17 +344,6 @@ func (nl *nl_BE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -446,17 +352,6 @@ func (nl *nl_BE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,19 +360,6 @@ func (nl *nl_BE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, nl.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -486,19 +368,6 @@ func (nl *nl_BE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -507,26 +376,6 @@ func (nl *nl_BE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -535,30 +384,6 @@ func (nl *nl_BE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -567,34 +392,5 @@ func (nl *nl_BE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := nl.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/nl_BQ/nl_BQ.go b/nl_BQ/nl_BQ.go
+index 279027c..0a87e1c 100644
+--- a/nl_BQ/nl_BQ.go
++++ b/nl_BQ/nl_BQ.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type nl_BQ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'nl_BQ' locale
+ func New() locales.Translator {
+ return &nl_BQ{
+- locale: "nl_BQ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mrt.", "apr.", "mei", "jun.", "jul.", "aug.", "sep.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"},
+- daysAbbreviated: []string{"zo", "ma", "di", "wo", "do", "vr", "za"},
+- daysNarrow: []string{"Z", "M", "D", "W", "D", "V", "Z"},
+- daysShort: []string{"zo", "ma", "di", "wo", "do", "vr", "za"},
+- daysWide: []string{"zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsNarrow: []string{"a.m.", "p.m."},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"v.Chr.", "n.Chr."},
+- erasNarrow: []string{"v.C.", "n.C."},
+- erasWide: []string{"voor Christus", "na Christus"},
+- timezones: map[string]string{"UYT": "Uruguayaanse standaardtijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "SAST": "Zuid-Afrikaanse tijd", "IST": "Indiase tijd", "CLST": "Chileense zomertijd", "COST": "Colombiaanse zomertijd", "ADT": "Atlantic-zomertijd", "WEZ": "West-Europese standaardtijd", "ACST": "Midden-Australische standaardtijd", "CAT": "Centraal-Afrikaanse tijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "WESZ": "West-Europese zomertijd", "AEDT": "Oost-Australische zomertijd", "HKT": "Hongkongse standaardtijd", "HEEG": "Oost-Groenlandse zomertijd", "VET": "Venezolaanse tijd", "EST": "Eastern-standaardtijd", "AST": "Atlantic-standaardtijd", "GYT": "Guyaanse tijd", "ACWST": "Midden-Australische westelijke standaardtijd", "WAT": "West-Afrikaanse standaardtijd", "COT": "Colombiaanse standaardtijd", "AKDT": "Alaska-zomertijd", "WIB": "West-Indonesische tijd", "CHAST": "Chatham-standaardtijd", "CHADT": "Chatham-zomertijd", "JDT": "Japanse zomertijd", "CLT": "Chileense standaardtijd", "ChST": "Chamorro-tijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "HECU": "Cubaanse zomertijd", "EDT": "Eastern-zomertijd", "MYT": "Maleisische tijd", "UYST": "Uruguayaanse zomertijd", "WIT": "Oost-Indonesische tijd", "GFT": "Frans-Guyaanse tijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "HNCU": "Cubaanse standaardtijd", "HNT": "Newfoundland-standaardtijd", "NZST": "Nieuw-Zeelandse standaardtijd", "SGT": "Singaporese standaardtijd", "HAST": "Hawaii-Aleoetische standaardtijd", "HADT": "Hawaii-Aleoetische zomertijd", "ARST": "Argentijnse zomertijd", "AEST": "Oost-Australische standaardtijd", "WART": "West-Argentijnse standaardtijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "CDT": "Central-zomertijd", "SRT": "Surinaamse tijd", "HAT": "Newfoundland-zomertijd", "HKST": "Hongkongse zomertijd", "ACDT": "Midden-Australische zomertijd", "ECT": "Ecuadoraanse tijd", "MDT": "Macause zomertijd", "HEOG": "West-Groenlandse zomertijd", "PDT": "Pacific-zomertijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "TMT": "Turkmeense standaardtijd", "OEZ": "Oost-Europese standaardtijd", "GMT": "Greenwich Mean Time", "AKST": "Alaska-standaardtijd", "AWDT": "West-Australische zomertijd", "LHDT": "Lord Howe-eilandse zomertijd", "NZDT": "Nieuw-Zeelandse zomertijd", "OESZ": "Oost-Europese zomertijd", "∅∅∅": "Azoren-zomertijd", "WITA": "Centraal-Indonesische tijd", "MESZ": "Midden-Europese zomertijd", "JST": "Japanse standaardtijd", "TMST": "Turkmeense zomertijd", "BOT": "Boliviaanse tijd", "HNOG": "West-Groenlandse standaardtijd", "BT": "Bhutaanse tijd", "ACWDT": "Midden-Australische westelijke zomertijd", "MEZ": "Midden-Europese standaardtijd", "HNEG": "Oost-Groenlandse standaardtijd", "EAT": "Oost-Afrikaanse tijd", "WAST": "West-Afrikaanse zomertijd", "MST": "Macause standaardtijd", "CST": "Central-standaardtijd", "ART": "Argentijnse standaardtijd", "PST": "Pacific-standaardtijd", "AWST": "West-Australische standaardtijd", "LHST": "Lord Howe-eilandse standaardtijd", "WARST": "West-Argentijnse zomertijd"},
++ locale: "nl_BQ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WITA": "WITA", "MDT": "MDT", "JST": "JST", "CHADT": "CHADT", "OEZ": "OEZ", "WART": "WART", "COST": "COST", "HKT": "HKT", "PDT": "PDT", "AWDT": "AWDT", "UYST": "UYST", "GFT": "GFT", "ECT": "ECT", "AST": "AST", "AWST": "AWST", "NZDT": "NZDT", "EAT": "EAT", "MESZ": "MESZ", "WESZ": "WESZ", "HNT": "HNT", "SAST": "SAST", "CLT": "CLT", "SGT": "SGT", "GYT": "GYT", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "HEPMX": "HEPMX", "HEOG": "HEOG", "CST": "CST", "HEEG": "HEEG", "OESZ": "OESZ", "COT": "COT", "MEZ": "MEZ", "HNEG": "HNEG", "ACWST": "ACWST", "VET": "VET", "WIB": "WIB", "SRT": "SRT", "MYT": "MYT", "BT": "BT", "WEZ": "WEZ", "WAT": "WAT", "CHAST": "CHAST", "UYT": "UYT", "LHST": "LHST", "HEPM": "HEPM", "IST": "IST", "ADT": "ADT", "ACST": "ACST", "PST": "PST", "WAST": "WAST", "HNOG": "HNOG", "CDT": "CDT", "MST": "MST", "HECU": "HECU", "EDT": "EDT", "CAT": "CAT", "AEDT": "AEDT", "ACDT": "ACDT", "HNPM": "HNPM", "HNCU": "HNCU", "WIT": "WIT", "CLST": "CLST", "ChST": "ChST", "HNPMX": "HNPMX", "AKST": "AKST", "GMT": "GMT", "HADT": "HADT", "HENOMX": "HENOMX", "JDT": "JDT", "HAT": "HAT", "WARST": "WARST", "NZST": "NZST", "ARST": "ARST", "AKDT": "AKDT", "BOT": "BOT", "AEST": "AEST", "TMST": "TMST", "ART": "ART", "HAST": "HAST", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "EST": "EST", "HKST": "HKST", "TMT": "TMT"},
+ }
+ }
+ 
+@@ -138,7 +113,7 @@ func (nl *nl_BQ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (nl *nl_BQ) MonthsAbbreviated() []string {
+- return nl.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +123,7 @@ func (nl *nl_BQ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (nl *nl_BQ) MonthsNarrow() []string {
+- return nl.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +133,7 @@ func (nl *nl_BQ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (nl *nl_BQ) MonthsWide() []string {
+- return nl.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,75 +179,13 @@ func (nl *nl_BQ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'nl_BQ' and handles both Whole and Real numbers based on 'v'
+ func (nl *nl_BQ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'nl_BQ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (nl *nl_BQ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, nl.percentSuffix...)
+-
+- b = append(b, nl.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'nl_BQ'
+@@ -280,56 +193,7 @@ func (nl *nl_BQ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, nl.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'nl_BQ'
+@@ -338,63 +202,7 @@ func (nl *nl_BQ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, nl.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, nl.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, nl.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'nl_BQ'
+@@ -402,27 +210,6 @@ func (nl *nl_BQ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,17 +218,6 @@ func (nl *nl_BQ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -450,17 +226,6 @@ func (nl *nl_BQ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -469,19 +234,6 @@ func (nl *nl_BQ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, nl.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -490,19 +242,6 @@ func (nl *nl_BQ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -511,26 +250,6 @@ func (nl *nl_BQ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -539,30 +258,6 @@ func (nl *nl_BQ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -571,34 +266,5 @@ func (nl *nl_BQ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := nl.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/nl_CW/nl_CW.go b/nl_CW/nl_CW.go
+index e324f53..5aa7e8d 100644
+--- a/nl_CW/nl_CW.go
++++ b/nl_CW/nl_CW.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type nl_CW struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'nl_CW' locale
+ func New() locales.Translator {
+ return &nl_CW{
+- locale: "nl_CW",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "NAf.", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mrt.", "apr.", "mei", "jun.", "jul.", "aug.", "sep.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"},
+- daysAbbreviated: []string{"zo", "ma", "di", "wo", "do", "vr", "za"},
+- daysNarrow: []string{"Z", "M", "D", "W", "D", "V", "Z"},
+- daysShort: []string{"zo", "ma", "di", "wo", "do", "vr", "za"},
+- daysWide: []string{"zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsNarrow: []string{"a.m.", "p.m."},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"v.Chr.", "n.Chr."},
+- erasNarrow: []string{"v.C.", "n.C."},
+- erasWide: []string{"voor Christus", "na Christus"},
+- timezones: map[string]string{"MEZ": "Midden-Europese standaardtijd", "CLT": "Chileense standaardtijd", "CLST": "Chileense zomertijd", "ChST": "Chamorro-tijd", "EST": "Eastern-standaardtijd", "EDT": "Eastern-zomertijd", "HNOG": "West-Groenlandse standaardtijd", "ACDT": "Midden-Australische zomertijd", "COT": "Colombiaanse standaardtijd", "HEOG": "West-Groenlandse zomertijd", "ACST": "Midden-Australische standaardtijd", "AKDT": "Alaska-zomertijd", "WIB": "West-Indonesische tijd", "OEZ": "Oost-Europese standaardtijd", "SGT": "Singaporese standaardtijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "UYT": "Uruguayaanse standaardtijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "HADT": "Hawaii-Aleoetische zomertijd", "ARST": "Argentijnse zomertijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "HNCU": "Cubaanse standaardtijd", "UYST": "Uruguayaanse zomertijd", "OESZ": "Oost-Europese zomertijd", "WIT": "Oost-Indonesische tijd", "AEST": "Oost-Australische standaardtijd", "AWDT": "West-Australische zomertijd", "LHST": "Lord Howe-eilandse standaardtijd", "JST": "Japanse standaardtijd", "TMT": "Turkmeense standaardtijd", "WAST": "West-Afrikaanse zomertijd", "MST": "Macause standaardtijd", "MYT": "Maleisische tijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "IST": "Indiase tijd", "TMST": "Turkmeense zomertijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "WESZ": "West-Europese zomertijd", "WITA": "Centraal-Indonesische tijd", "HEEG": "Oost-Groenlandse zomertijd", "GFT": "Frans-Guyaanse tijd", "HNT": "Newfoundland-standaardtijd", "AWST": "West-Australische standaardtijd", "LHDT": "Lord Howe-eilandse zomertijd", "NZST": "Nieuw-Zeelandse standaardtijd", "SAST": "Zuid-Afrikaanse tijd", "CAT": "Centraal-Afrikaanse tijd", "HECU": "Cubaanse zomertijd", "SRT": "Surinaamse tijd", "BOT": "Boliviaanse tijd", "CDT": "Central-zomertijd", "PST": "Pacific-standaardtijd", "CHAST": "Chatham-standaardtijd", "CHADT": "Chatham-zomertijd", "∅∅∅": "Peruaanse zomertijd", "EAT": "Oost-Afrikaanse tijd", "MDT": "Macause zomertijd", "GYT": "Guyaanse tijd", "HAST": "Hawaii-Aleoetische standaardtijd", "ART": "Argentijnse standaardtijd", "HKT": "Hongkongse standaardtijd", "WART": "West-Argentijnse standaardtijd", "COST": "Colombiaanse zomertijd", "AST": "Atlantic-standaardtijd", "AEDT": "Oost-Australische zomertijd", "NZDT": "Nieuw-Zeelandse zomertijd", "JDT": "Japanse zomertijd", "AKST": "Alaska-standaardtijd", "ACWDT": "Midden-Australische westelijke zomertijd", "HAT": "Newfoundland-zomertijd", "PDT": "Pacific-zomertijd", "ACWST": "Midden-Australische westelijke standaardtijd", "MESZ": "Midden-Europese zomertijd", "HNEG": "Oost-Groenlandse standaardtijd", "GMT": "Greenwich Mean Time", "ADT": "Atlantic-zomertijd", "BT": "Bhutaanse tijd", "WEZ": "West-Europese standaardtijd", "WAT": "West-Afrikaanse standaardtijd", "WARST": "West-Argentijnse zomertijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "HKST": "Hongkongse zomertijd", "ECT": "Ecuadoraanse tijd", "CST": "Central-standaardtijd", "VET": "Venezolaanse tijd"},
++ locale: "nl_CW",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "NAf.", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SGT": "SGT", "AKST": "AKST", "OEZ": "OEZ", "HAT": "HAT", "ECT": "ECT", "HEPM": "HEPM", "AEST": "AEST", "HNT": "HNT", "TMST": "TMST", "WIB": "WIB", "HEEG": "HEEG", "HADT": "HADT", "∅∅∅": "∅∅∅", "PDT": "PDT", "CHADT": "CHADT", "WIT": "WIT", "GYT": "GYT", "TMT": "TMT", "SRT": "SRT", "ARST": "ARST", "LHST": "LHST", "MYT": "MYT", "HNPM": "HNPM", "PST": "PST", "HNCU": "HNCU", "WITA": "WITA", "GMT": "GMT", "HECU": "HECU", "EDT": "EDT", "AST": "AST", "EAT": "EAT", "SAST": "SAST", "AWST": "AWST", "JST": "JST", "IST": "IST", "ACWST": "ACWST", "WESZ": "WESZ", "GFT": "GFT", "WART": "WART", "HEOG": "HEOG", "CAT": "CAT", "BT": "BT", "AEDT": "AEDT", "UYT": "UYT", "WEZ": "WEZ", "CLST": "CLST", "NZDT": "NZDT", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "EST": "EST", "ADT": "ADT", "ART": "ART", "COST": "COST", "MESZ": "MESZ", "HNEG": "HNEG", "AWDT": "AWDT", "VET": "VET", "HKST": "HKST", "HNNOMX": "HNNOMX", "WAST": "WAST", "OESZ": "OESZ", "WARST": "WARST", "ACWDT": "ACWDT", "CHAST": "CHAST", "UYST": "UYST", "WAT": "WAT", "MDT": "MDT", "NZST": "NZST", "ChST": "ChST", "ACDT": "ACDT", "AKDT": "AKDT", "COT": "COT", "CST": "CST", "BOT": "BOT", "ACST": "ACST", "LHDT": "LHDT", "JDT": "JDT", "HEPMX": "HEPMX", "HNOG": "HNOG", "HAST": "HAST", "MEZ": "MEZ", "HKT": "HKT", "CLT": "CLT", "CDT": "CDT", "MST": "MST"},
+ }
+ }
+ 
+@@ -138,7 +113,7 @@ func (nl *nl_CW) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (nl *nl_CW) MonthsAbbreviated() []string {
+- return nl.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +123,7 @@ func (nl *nl_CW) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (nl *nl_CW) MonthsNarrow() []string {
+- return nl.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +133,7 @@ func (nl *nl_CW) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (nl *nl_CW) MonthsWide() []string {
+- return nl.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,75 +179,13 @@ func (nl *nl_CW) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'nl_CW' and handles both Whole and Real numbers based on 'v'
+ func (nl *nl_CW) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'nl_CW' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (nl *nl_CW) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, nl.percentSuffix...)
+-
+- b = append(b, nl.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'nl_CW'
+@@ -280,56 +193,7 @@ func (nl *nl_CW) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, nl.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'nl_CW'
+@@ -338,63 +202,7 @@ func (nl *nl_CW) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, nl.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, nl.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, nl.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'nl_CW'
+@@ -402,27 +210,6 @@ func (nl *nl_CW) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,17 +218,6 @@ func (nl *nl_CW) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -450,17 +226,6 @@ func (nl *nl_CW) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -469,19 +234,6 @@ func (nl *nl_CW) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, nl.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -490,19 +242,6 @@ func (nl *nl_CW) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -511,26 +250,6 @@ func (nl *nl_CW) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -539,30 +258,6 @@ func (nl *nl_CW) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -571,34 +266,5 @@ func (nl *nl_CW) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := nl.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/nl_NL/nl_NL.go b/nl_NL/nl_NL.go
+index afd9546..b2748ee 100644
+--- a/nl_NL/nl_NL.go
++++ b/nl_NL/nl_NL.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type nl_NL struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'nl_NL' locale
+ func New() locales.Translator {
+ return &nl_NL{
+- locale: "nl_NL",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mrt.", "apr.", "mei", "jun.", "jul.", "aug.", "sep.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"},
+- daysAbbreviated: []string{"zo", "ma", "di", "wo", "do", "vr", "za"},
+- daysNarrow: []string{"Z", "M", "D", "W", "D", "V", "Z"},
+- daysShort: []string{"zo", "ma", "di", "wo", "do", "vr", "za"},
+- daysWide: []string{"zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsNarrow: []string{"a.m.", "p.m."},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"v.Chr.", "n.Chr."},
+- erasNarrow: []string{"v.C.", "n.C."},
+- erasWide: []string{"voor Christus", "na Christus"},
+- timezones: map[string]string{"HAST": "Hawaii-Aleoetische standaardtijd", "ACWDT": "Midden-Australische westelijke zomertijd", "HNT": "Newfoundland-standaardtijd", "AWST": "West-Australische standaardtijd", "BOT": "Boliviaanse tijd", "TMST": "Turkmeense zomertijd", "ECT": "Ecuadoraanse tijd", "HECU": "Cubaanse zomertijd", "GFT": "Frans-Guyaanse tijd", "HNOG": "West-Groenlandse standaardtijd", "HKST": "Hongkongse zomertijd", "LHST": "Lord Howe-eilandse standaardtijd", "WITA": "Centraal-Indonesische tijd", "WAT": "West-Afrikaanse standaardtijd", "WARST": "West-Argentijnse zomertijd", "EDT": "Eastern-zomertijd", "AWDT": "West-Australische zomertijd", "VET": "Venezolaanse tijd", "CHAST": "Chatham-standaardtijd", "CLT": "Chileense standaardtijd", "WART": "West-Argentijnse standaardtijd", "MDT": "Macause zomertijd", "WIB": "West-Indonesische tijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "AKDT": "Alaska-zomertijd", "HADT": "Hawaii-Aleoetische zomertijd", "IST": "Indiase tijd", "HNEG": "Oost-Groenlandse standaardtijd", "ACST": "Midden-Australische standaardtijd", "WAST": "West-Afrikaanse zomertijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "JDT": "Japanse zomertijd", "HNCU": "Cubaanse standaardtijd", "ART": "Argentijnse standaardtijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "MEZ": "Midden-Europese standaardtijd", "AST": "Atlantic-standaardtijd", "BT": "Bhutaanse tijd", "PST": "Pacific-standaardtijd", "HAT": "Newfoundland-zomertijd", "CST": "Central-standaardtijd", "ARST": "Argentijnse zomertijd", "CHADT": "Chatham-zomertijd", "JST": "Japanse standaardtijd", "OESZ": "Oost-Europese zomertijd", "MST": "Macause standaardtijd", "UYT": "Uruguayaanse standaardtijd", "TMT": "Turkmeense standaardtijd", "ACDT": "Midden-Australische zomertijd", "AEST": "Oost-Australische standaardtijd", "LHDT": "Lord Howe-eilandse zomertijd", "CAT": "Centraal-Afrikaanse tijd", "EST": "Eastern-standaardtijd", "ACWST": "Midden-Australische westelijke standaardtijd", "HEOG": "West-Groenlandse zomertijd", "AKST": "Alaska-standaardtijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "MESZ": "Midden-Europese zomertijd", "CLST": "Chileense zomertijd", "ChST": "Chamorro-tijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "AEDT": "Oost-Australische zomertijd", "∅∅∅": "Amazone-zomertijd", "COT": "Colombiaanse standaardtijd", "SGT": "Singaporese standaardtijd", "GYT": "Guyaanse tijd", "ADT": "Atlantic-zomertijd", "PDT": "Pacific-zomertijd", "NZST": "Nieuw-Zeelandse standaardtijd", "NZDT": "Nieuw-Zeelandse zomertijd", "HEEG": "Oost-Groenlandse zomertijd", "MYT": "Maleisische tijd", "UYST": "Uruguayaanse zomertijd", "CDT": "Central-zomertijd", "WEZ": "West-Europese standaardtijd", "WESZ": "West-Europese zomertijd", "SAST": "Zuid-Afrikaanse tijd", "EAT": "Oost-Afrikaanse tijd", "OEZ": "Oost-Europese standaardtijd", "GMT": "Greenwich Mean Time", "WIT": "Oost-Indonesische tijd", "COST": "Colombiaanse zomertijd", "SRT": "Surinaamse tijd", "HKT": "Hongkongse standaardtijd"},
++ locale: "nl_NL",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SGT": "SGT", "GFT": "GFT", "TMT": "TMT", "HKT": "HKT", "MYT": "MYT", "ACWST": "ACWST", "HNCU": "HNCU", "WESZ": "WESZ", "AEDT": "AEDT", "CAT": "CAT", "PST": "PST", "CDT": "CDT", "SRT": "SRT", "PDT": "PDT", "∅∅∅": "∅∅∅", "HKST": "HKST", "NZST": "NZST", "MDT": "MDT", "IST": "IST", "WAT": "WAT", "COST": "COST", "EAT": "EAT", "JST": "JST", "AWST": "AWST", "CST": "CST", "AST": "AST", "EST": "EST", "HADT": "HADT", "CHAST": "CHAST", "UYT": "UYT", "OEZ": "OEZ", "OESZ": "OESZ", "WAST": "WAST", "ECT": "ECT", "AWDT": "AWDT", "UYST": "UYST", "WART": "WART", "WITA": "WITA", "CLT": "CLT", "ADT": "ADT", "GMT": "GMT", "HENOMX": "HENOMX", "ACDT": "ACDT", "HNPM": "HNPM", "HNPMX": "HNPMX", "COT": "COT", "CLST": "CLST", "WIB": "WIB", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "SAST": "SAST", "HEPMX": "HEPMX", "TMST": "TMST", "ART": "ART", "HEPM": "HEPM", "VET": "VET", "HECU": "HECU", "HNOG": "HNOG", "GYT": "GYT", "HAST": "HAST", "ACST": "ACST", "LHDT": "LHDT", "ACWDT": "ACWDT", "AKST": "AKST", "HNT": "HNT", "MEZ": "MEZ", "LHST": "LHST", "AEST": "AEST", "WIT": "WIT", "BOT": "BOT", "MST": "MST", "WARST": "WARST", "NZDT": "NZDT", "EDT": "EDT", "ChST": "ChST", "ARST": "ARST", "HEEG": "HEEG", "MESZ": "MESZ", "JDT": "JDT", "AKDT": "AKDT", "HAT": "HAT", "CHADT": "CHADT", "HEOG": "HEOG", "BT": "BT"},
+ }
+ }
+ 
+@@ -138,7 +113,7 @@ func (nl *nl_NL) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (nl *nl_NL) MonthsAbbreviated() []string {
+- return nl.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +123,7 @@ func (nl *nl_NL) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (nl *nl_NL) MonthsNarrow() []string {
+- return nl.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +133,7 @@ func (nl *nl_NL) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (nl *nl_NL) MonthsWide() []string {
+- return nl.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,75 +179,13 @@ func (nl *nl_NL) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'nl_NL' and handles both Whole and Real numbers based on 'v'
+ func (nl *nl_NL) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'nl_NL' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (nl *nl_NL) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, nl.percentSuffix...)
+-
+- b = append(b, nl.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'nl_NL'
+@@ -280,56 +193,7 @@ func (nl *nl_NL) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, nl.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'nl_NL'
+@@ -338,63 +202,7 @@ func (nl *nl_NL) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, nl.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, nl.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, nl.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'nl_NL'
+@@ -402,27 +210,6 @@ func (nl *nl_NL) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,17 +218,6 @@ func (nl *nl_NL) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -450,17 +226,6 @@ func (nl *nl_NL) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -469,19 +234,6 @@ func (nl *nl_NL) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, nl.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -490,19 +242,6 @@ func (nl *nl_NL) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -511,26 +250,6 @@ func (nl *nl_NL) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -539,30 +258,6 @@ func (nl *nl_NL) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -571,34 +266,5 @@ func (nl *nl_NL) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := nl.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/nl_SR/nl_SR.go b/nl_SR/nl_SR.go
+index 3ca7382..12eedb4 100644
+--- a/nl_SR/nl_SR.go
++++ b/nl_SR/nl_SR.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type nl_SR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'nl_SR' locale
+ func New() locales.Translator {
+ return &nl_SR{
+- locale: "nl_SR",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "$", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mrt.", "apr.", "mei", "jun.", "jul.", "aug.", "sep.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"},
+- daysAbbreviated: []string{"zo", "ma", "di", "wo", "do", "vr", "za"},
+- daysNarrow: []string{"Z", "M", "D", "W", "D", "V", "Z"},
+- daysShort: []string{"zo", "ma", "di", "wo", "do", "vr", "za"},
+- daysWide: []string{"zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsNarrow: []string{"a.m.", "p.m."},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"v.Chr.", "n.Chr."},
+- erasNarrow: []string{"v.C.", "n.C."},
+- erasWide: []string{"voor Christus", "na Christus"},
+- timezones: map[string]string{"NZST": "Nieuw-Zeelandse standaardtijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "WIT": "Oost-Indonesische tijd", "ACWST": "Midden-Australische westelijke standaardtijd", "UYST": "Uruguayaanse zomertijd", "WESZ": "West-Europese zomertijd", "MEZ": "Midden-Europese standaardtijd", "IST": "Indiase tijd", "CLST": "Chileense zomertijd", "GMT": "Greenwich Mean Time", "EDT": "Eastern-zomertijd", "GYT": "Guyaanse tijd", "TMST": "Turkmeense zomertijd", "ACWDT": "Midden-Australische westelijke zomertijd", "WEZ": "West-Europese standaardtijd", "HKT": "Hongkongse standaardtijd", "HNEG": "Oost-Groenlandse standaardtijd", "ACST": "Midden-Australische standaardtijd", "COST": "Colombiaanse zomertijd", "MYT": "Maleisische tijd", "UYT": "Uruguayaanse standaardtijd", "WAT": "West-Afrikaanse standaardtijd", "VET": "Venezolaanse tijd", "BT": "Bhutaanse tijd", "ARST": "Argentijnse zomertijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "GFT": "Frans-Guyaanse tijd", "TMT": "Turkmeense standaardtijd", "EAT": "Oost-Afrikaanse tijd", "WIB": "West-Indonesische tijd", "HAST": "Hawaii-Aleoetische standaardtijd", "AEDT": "Oost-Australische zomertijd", "HKST": "Hongkongse zomertijd", "ECT": "Ecuadoraanse tijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "PST": "Pacific-standaardtijd", "OESZ": "Oost-Europese zomertijd", "HADT": "Hawaii-Aleoetische zomertijd", "HEOG": "West-Groenlandse zomertijd", "AWST": "West-Australische standaardtijd", "CHADT": "Chatham-zomertijd", "LHST": "Lord Howe-eilandse standaardtijd", "∅∅∅": "Azoren-zomertijd", "AKDT": "Alaska-zomertijd", "AST": "Atlantic-standaardtijd", "CHAST": "Chatham-standaardtijd", "ChST": "Chamorro-tijd", "OEZ": "Oost-Europese standaardtijd", "SGT": "Singaporese standaardtijd", "AKST": "Alaska-standaardtijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "HNCU": "Cubaanse standaardtijd", "MST": "Macause standaardtijd", "HEEG": "Oost-Groenlandse zomertijd", "AWDT": "West-Australische zomertijd", "NZDT": "Nieuw-Zeelandse zomertijd", "MESZ": "Midden-Europese zomertijd", "LHDT": "Lord Howe-eilandse zomertijd", "JST": "Japanse standaardtijd", "MDT": "Macause zomertijd", "CDT": "Central-zomertijd", "SRT": "Surinaamse tijd", "JDT": "Japanse zomertijd", "ACDT": "Midden-Australische zomertijd", "CAT": "Centraal-Afrikaanse tijd", "WARST": "West-Argentijnse zomertijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "HNOG": "West-Groenlandse standaardtijd", "WAST": "West-Afrikaanse zomertijd", "HAT": "Newfoundland-zomertijd", "WITA": "Centraal-Indonesische tijd", "SAST": "Zuid-Afrikaanse tijd", "ADT": "Atlantic-zomertijd", "HNT": "Newfoundland-standaardtijd", "ART": "Argentijnse standaardtijd", "AEST": "Oost-Australische standaardtijd", "CLT": "Chileense standaardtijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "EST": "Eastern-standaardtijd", "CST": "Central-standaardtijd", "BOT": "Boliviaanse tijd", "PDT": "Pacific-zomertijd", "WART": "West-Argentijnse standaardtijd", "COT": "Colombiaanse standaardtijd", "HECU": "Cubaanse zomertijd"},
++ locale: "nl_SR",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "$", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ARST": "ARST", "ACDT": "ACDT", "ACWST": "ACWST", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "SGT": "SGT", "WAST": "WAST", "TMST": "TMST", "UYT": "UYT", "WEZ": "WEZ", "HNCU": "HNCU", "AKDT": "AKDT", "JST": "JST", "ACWDT": "ACWDT", "HEPMX": "HEPMX", "HAT": "HAT", "GYT": "GYT", "HAST": "HAST", "HNNOMX": "HNNOMX", "OEZ": "OEZ", "HNOG": "HNOG", "CLST": "CLST", "ChST": "ChST", "HNPM": "HNPM", "ADT": "ADT", "MYT": "MYT", "HEEG": "HEEG", "HENOMX": "HENOMX", "UYST": "UYST", "AKST": "AKST", "GFT": "GFT", "CLT": "CLT", "EAT": "EAT", "MESZ": "MESZ", "AWST": "AWST", "LHST": "LHST", "AEST": "AEST", "AEDT": "AEDT", "MST": "MST", "NZDT": "NZDT", "SRT": "SRT", "HADT": "HADT", "CST": "CST", "BOT": "BOT", "ACST": "ACST", "MEZ": "MEZ", "CHADT": "CHADT", "WARST": "WARST", "COT": "COT", "HEOG": "HEOG", "CAT": "CAT", "AST": "AST", "IST": "IST", "HKST": "HKST", "WITA": "WITA", "WIB": "WIB", "PDT": "PDT", "VET": "VET", "HECU": "HECU", "HNT": "HNT", "HKT": "HKT", "HNEG": "HNEG", "NZST": "NZST", "BT": "BT", "HNPMX": "HNPMX", "WART": "WART", "WIT": "WIT", "TMT": "TMT", "CDT": "CDT", "PST": "PST", "EST": "EST", "MDT": "MDT", "AWDT": "AWDT", "JDT": "JDT", "OESZ": "OESZ", "EDT": "EDT", "GMT": "GMT", "LHDT": "LHDT", "HEPM": "HEPM", "WESZ": "WESZ", "WAT": "WAT", "SAST": "SAST", "COST": "COST", "ECT": "ECT", "ART": "ART"},
+ }
+ }
+ 
+@@ -138,7 +113,7 @@ func (nl *nl_SR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (nl *nl_SR) MonthsAbbreviated() []string {
+- return nl.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +123,7 @@ func (nl *nl_SR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (nl *nl_SR) MonthsNarrow() []string {
+- return nl.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +133,7 @@ func (nl *nl_SR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (nl *nl_SR) MonthsWide() []string {
+- return nl.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,75 +179,13 @@ func (nl *nl_SR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'nl_SR' and handles both Whole and Real numbers based on 'v'
+ func (nl *nl_SR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'nl_SR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (nl *nl_SR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, nl.percentSuffix...)
+-
+- b = append(b, nl.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'nl_SR'
+@@ -280,56 +193,7 @@ func (nl *nl_SR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, nl.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'nl_SR'
+@@ -338,63 +202,7 @@ func (nl *nl_SR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, nl.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, nl.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, nl.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'nl_SR'
+@@ -402,27 +210,6 @@ func (nl *nl_SR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,17 +218,6 @@ func (nl *nl_SR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -450,17 +226,6 @@ func (nl *nl_SR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -469,19 +234,6 @@ func (nl *nl_SR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, nl.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -490,19 +242,6 @@ func (nl *nl_SR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -511,26 +250,6 @@ func (nl *nl_SR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -539,30 +258,6 @@ func (nl *nl_SR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -571,34 +266,5 @@ func (nl *nl_SR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := nl.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/nl_SX/nl_SX.go b/nl_SX/nl_SX.go
+index 0b06797..6c702d0 100644
+--- a/nl_SX/nl_SX.go
++++ b/nl_SX/nl_SX.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type nl_SX struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'nl_SX' locale
+ func New() locales.Translator {
+ return &nl_SX{
+- locale: "nl_SX",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "NAf.", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mrt.", "apr.", "mei", "jun.", "jul.", "aug.", "sep.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"},
+- daysAbbreviated: []string{"zo", "ma", "di", "wo", "do", "vr", "za"},
+- daysNarrow: []string{"Z", "M", "D", "W", "D", "V", "Z"},
+- daysShort: []string{"zo", "ma", "di", "wo", "do", "vr", "za"},
+- daysWide: []string{"zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsNarrow: []string{"a.m.", "p.m."},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"v.Chr.", "n.Chr."},
+- erasNarrow: []string{"v.C.", "n.C."},
+- erasWide: []string{"voor Christus", "na Christus"},
+- timezones: map[string]string{"MYT": "Maleisische tijd", "UYT": "Uruguayaanse standaardtijd", "AEDT": "Oost-Australische zomertijd", "HNNOMX": "Noordwest-Mexicaanse standaardtijd", "HNCU": "Cubaanse standaardtijd", "CDT": "Central-zomertijd", "UYST": "Uruguayaanse zomertijd", "NZST": "Nieuw-Zeelandse standaardtijd", "TMST": "Turkmeense zomertijd", "EAT": "Oost-Afrikaanse tijd", "MDT": "Macause zomertijd", "ACWDT": "Midden-Australische westelijke zomertijd", "HAT": "Newfoundland-zomertijd", "HNOG": "West-Groenlandse standaardtijd", "AEST": "Oost-Australische standaardtijd", "HNEG": "Oost-Groenlandse standaardtijd", "OEZ": "Oost-Europese standaardtijd", "TMT": "Turkmeense standaardtijd", "WAT": "West-Afrikaanse standaardtijd", "SGT": "Singaporese standaardtijd", "BT": "Bhutaanse tijd", "AWDT": "West-Australische zomertijd", "HNPM": "Saint Pierre en Miquelon-standaardtijd", "JDT": "Japanse zomertijd", "BOT": "Boliviaanse tijd", "WARST": "West-Argentijnse zomertijd", "HENOMX": "Noordwest-Mexicaanse zomertijd", "HECU": "Cubaanse zomertijd", "SRT": "Surinaamse tijd", "PDT": "Pacific-zomertijd", "HEOG": "West-Groenlandse zomertijd", "WART": "West-Argentijnse standaardtijd", "WIB": "West-Indonesische tijd", "WEZ": "West-Europese standaardtijd", "LHST": "Lord Howe-eilandse standaardtijd", "LHDT": "Lord Howe-eilandse zomertijd", "JST": "Japanse standaardtijd", "HEPMX": "Mexicaanse Pacific-zomertijd", "CST": "Central-standaardtijd", "HADT": "Hawaii-Aleoetische zomertijd", "WITA": "Centraal-Indonesische tijd", "CHADT": "Chatham-zomertijd", "VET": "Venezolaanse tijd", "WIT": "Oost-Indonesische tijd", "CHAST": "Chatham-standaardtijd", "ACDT": "Midden-Australische zomertijd", "∅∅∅": "Azoren-zomertijd", "EST": "Eastern-standaardtijd", "HKST": "Hongkongse zomertijd", "CAT": "Centraal-Afrikaanse tijd", "WAST": "West-Afrikaanse zomertijd", "COT": "Colombiaanse standaardtijd", "AKDT": "Alaska-zomertijd", "HKT": "Hongkongse standaardtijd", "ACST": "Midden-Australische standaardtijd", "ADT": "Atlantic-zomertijd", "WESZ": "West-Europese zomertijd", "HEPM": "Saint Pierre en Miquelon-zomertijd", "IST": "Indiase tijd", "OESZ": "Oost-Europese zomertijd", "ECT": "Ecuadoraanse tijd", "AKST": "Alaska-standaardtijd", "HNT": "Newfoundland-standaardtijd", "ART": "Argentijnse standaardtijd", "ARST": "Argentijnse zomertijd", "NZDT": "Nieuw-Zeelandse zomertijd", "SAST": "Zuid-Afrikaanse tijd", "ChST": "Chamorro-tijd", "HAST": "Hawaii-Aleoetische standaardtijd", "PST": "Pacific-standaardtijd", "ACWST": "Midden-Australische westelijke standaardtijd", "MESZ": "Midden-Europese zomertijd", "GFT": "Frans-Guyaanse tijd", "GMT": "Greenwich Mean Time", "EDT": "Eastern-zomertijd", "HNPMX": "Mexicaanse Pacific-standaardtijd", "GYT": "Guyaanse tijd", "AWST": "West-Australische standaardtijd", "CLT": "Chileense standaardtijd", "CLST": "Chileense zomertijd", "COST": "Colombiaanse zomertijd", "MST": "Macause standaardtijd", "AST": "Atlantic-standaardtijd", "MEZ": "Midden-Europese standaardtijd", "HEEG": "Oost-Groenlandse zomertijd"},
++ locale: "nl_SX",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "NAf.", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WIB": "WIB", "AEDT": "AEDT", "WAST": "WAST", "HEOG": "HEOG", "COT": "COT", "TMT": "TMT", "CST": "CST", "GMT": "GMT", "WAT": "WAT", "WART": "WART", "HKT": "HKT", "ACDT": "ACDT", "ACWDT": "ACWDT", "VET": "VET", "WIT": "WIT", "EST": "EST", "HKST": "HKST", "TMST": "TMST", "CAT": "CAT", "IST": "IST", "HECU": "HECU", "HNPMX": "HNPMX", "ART": "ART", "ADT": "ADT", "JDT": "JDT", "CHADT": "CHADT", "GFT": "GFT", "WITA": "WITA", "HADT": "HADT", "GYT": "GYT", "COST": "COST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "JST": "JST", "AWDT": "AWDT", "PST": "PST", "OEZ": "OEZ", "HAT": "HAT", "BOT": "BOT", "MEZ": "MEZ", "LHST": "LHST", "HNCU": "HNCU", "AKDT": "AKDT", "EDT": "EDT", "CLST": "CLST", "NZDT": "NZDT", "UYST": "UYST", "SGT": "SGT", "AKST": "AKST", "SAST": "SAST", "LHDT": "LHDT", "ECT": "ECT", "MST": "MST", "NZST": "NZST", "AST": "AST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HEEG": "HEEG", "ACWST": "ACWST", "WESZ": "WESZ", "SRT": "SRT", "HAST": "HAST", "CLT": "CLT", "ARST": "ARST", "MESZ": "MESZ", "BT": "BT", "HNT": "HNT", "HNOG": "HNOG", "MDT": "MDT", "HEPM": "HEPM", "WEZ": "WEZ", "EAT": "EAT", "AWST": "AWST", "MYT": "MYT", "AEST": "AEST", "OESZ": "OESZ", "CDT": "CDT", "ChST": "ChST", "PDT": "PDT", "WARST": "WARST", "ACST": "ACST", "HNPM": "HNPM", "CHAST": "CHAST", "UYT": "UYT", "HEPMX": "HEPMX"},
+ }
+ }
+ 
+@@ -138,7 +113,7 @@ func (nl *nl_SX) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (nl *nl_SX) MonthsAbbreviated() []string {
+- return nl.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -148,7 +123,7 @@ func (nl *nl_SX) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (nl *nl_SX) MonthsNarrow() []string {
+- return nl.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -158,7 +133,7 @@ func (nl *nl_SX) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (nl *nl_SX) MonthsWide() []string {
+- return nl.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -204,75 +179,13 @@ func (nl *nl_SX) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'nl_SX' and handles both Whole and Real numbers based on 'v'
+ func (nl *nl_SX) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'nl_SX' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (nl *nl_SX) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, nl.percentSuffix...)
+-
+- b = append(b, nl.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'nl_SX'
+@@ -280,56 +193,7 @@ func (nl *nl_SX) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, nl.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'nl_SX'
+@@ -338,63 +202,7 @@ func (nl *nl_SX) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, nl.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, nl.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, nl.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'nl_SX'
+@@ -402,27 +210,6 @@ func (nl *nl_SX) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,17 +218,6 @@ func (nl *nl_SX) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -450,17 +226,6 @@ func (nl *nl_SX) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -469,19 +234,6 @@ func (nl *nl_SX) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, nl.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -490,19 +242,6 @@ func (nl *nl_SX) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -511,26 +250,6 @@ func (nl *nl_SX) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -539,30 +258,6 @@ func (nl *nl_SX) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -571,34 +266,5 @@ func (nl *nl_SX) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := nl.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/nmg/nmg.go b/nmg/nmg.go
+index 6ad3bc8..ece615b 100644
+--- a/nmg/nmg.go
++++ b/nmg/nmg.go
+@@ -64,7 +64,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BL", "PB"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Bó Lahlɛ̄", "Pfiɛ Burī"},
+- timezones: map[string]string{"MEZ": "MEZ", "NZDT": "NZDT", "AKDT": "AKDT", "AWST": "AWST", "CHADT": "CHADT", "EAT": "EAT", "HEPMX": "HEPMX", "CDT": "CDT", "MDT": "MDT", "AEST": "AEST", "AEDT": "AEDT", "NZST": "NZST", "CLT": "CLT", "OEZ": "OEZ", "GYT": "GYT", "SRT": "SRT", "WESZ": "WESZ", "LHDT": "LHDT", "WARST": "WARST", "WIB": "WIB", "ARST": "ARST", "HNOG": "HNOG", "HEOG": "HEOG", "HEEG": "HEEG", "CAT": "CAT", "WAST": "WAST", "AST": "AST", "ADT": "ADT", "IST": "IST", "HECU": "HECU", "ACWST": "ACWST", "ACST": "ACST", "WAT": "WAT", "HNCU": "HNCU", "UYT": "UYT", "WIT": "WIT", "WEZ": "WEZ", "WITA": "WITA", "HNPM": "HNPM", "JST": "JST", "GMT": "GMT", "UYST": "UYST", "VET": "VET", "HKST": "HKST", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "COST": "COST", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "MESZ": "MESZ", "LHST": "LHST", "PST": "PST", "HNT": "HNT", "HAT": "HAT", "COT": "COT", "AKST": "AKST", "HADT": "HADT", "JDT": "JDT", "ECT": "ECT", "ART": "ART", "HEPM": "HEPM", "SAST": "SAST", "CLST": "CLST", "ACDT": "ACDT", "EDT": "EDT", "WART": "WART", "MYT": "MYT", "HAST": "HAST", "BT": "BT", "AWDT": "AWDT", "ChST": "ChST", "GFT": "GFT", "TMST": "TMST", "HNNOMX": "HNNOMX", "SGT": "SGT", "EST": "EST", "MST": "MST", "ACWDT": "ACWDT", "CST": "CST", "PDT": "PDT", "HKT": "HKT", "CHAST": "CHAST", "BOT": "BOT", "HNEG": "HNEG", "TMT": "TMT"},
++ timezones: map[string]string{"HKST": "HKST", "SRT": "SRT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "UYST": "UYST", "IST": "IST", "PST": "PST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "WAST": "WAST", "ADT": "ADT", "CHADT": "CHADT", "PDT": "PDT", "TMT": "TMT", "WITA": "WITA", "MDT": "MDT", "BOT": "BOT", "WEZ": "WEZ", "WARST": "WARST", "COT": "COT", "CLT": "CLT", "CLST": "CLST", "HNEG": "HNEG", "LHDT": "LHDT", "HNT": "HNT", "HEOG": "HEOG", "EST": "EST", "ChST": "ChST", "AWDT": "AWDT", "AEST": "AEST", "WESZ": "WESZ", "HAT": "HAT", "WIT": "WIT", "GYT": "GYT", "HADT": "HADT", "HNCU": "HNCU", "HECU": "HECU", "AKDT": "AKDT", "NZST": "NZST", "AST": "AST", "HAST": "HAST", "HNPM": "HNPM", "AEDT": "AEDT", "WART": "WART", "SAST": "SAST", "ART": "ART", "LHST": "LHST", "COST": "COST", "EDT": "EDT", "CAT": "CAT", "JDT": "JDT", "WAT": "WAT", "NZDT": "NZDT", "ARST": "ARST", "EAT": "EAT", "MESZ": "MESZ", "HEEG": "HEEG", "ACWST": "ACWST", "ECT": "ECT", "OEZ": "OEZ", "GFT": "GFT", "HNOG": "HNOG", "JST": "JST", "MYT": "MYT", "CHAST": "CHAST", "SGT": "SGT", "WIB": "WIB", "CST": "CST", "GMT": "GMT", "MEZ": "MEZ", "HEPM": "HEPM", "AKST": "AKST", "HKT": "HKT", "TMST": "TMST", "MST": "MST", "BT": "BT", "OESZ": "OESZ", "∅∅∅": "∅∅∅", "CDT": "CDT", "AWST": "AWST", "UYT": "UYT", "ACST": "ACST", "ACDT": "ACDT", "VET": "VET"},
+ }
+ }
+ 
+diff --git a/nmg_CM/nmg_CM.go b/nmg_CM/nmg_CM.go
+index ecb7d99..4f5c7b7 100644
+--- a/nmg_CM/nmg_CM.go
++++ b/nmg_CM/nmg_CM.go
+@@ -10,61 +10,45 @@ import (
+ )
+ 
+ type nmg_CM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'nmg_CM' locale
+ func New() locales.Translator {
+ return &nmg_CM{
+- locale: "nmg_CM",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ng1", "ng2", "ng3", "ng4", "ng5", "ng6", "ng7", "ng8", "ng9", "ng10", "ng11", "kris"},
+- monthsWide: []string{"", "ngwɛn matáhra", "ngwɛn ńmba", "ngwɛn ńlal", "ngwɛn ńna", "ngwɛn ńtan", "ngwɛn ńtuó", "ngwɛn hɛmbuɛrí", "ngwɛn lɔmbi", "ngwɛn rɛbvuâ", "ngwɛn wum", "ngwɛn wum navǔr", "krísimin"},
+- daysAbbreviated: []string{"sɔ́n", "mɔ́n", "smb", "sml", "smn", "mbs", "sas"},
+- daysNarrow: []string{"s", "m", "s", "s", "s", "m", "s"},
+- daysWide: []string{"sɔ́ndɔ", "mɔ́ndɔ", "sɔ́ndɔ mafú mába", "sɔ́ndɔ mafú málal", "sɔ́ndɔ mafú mána", "mabágá má sukul", "sásadi"},
+- periodsAbbreviated: []string{"maná", "kugú"},
+- periodsWide: []string{"maná", "kugú"},
+- erasAbbreviated: []string{"BL", "PB"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Bó Lahlɛ̄", "Pfiɛ Burī"},
+- timezones: map[string]string{"JST": "JST", "TMST": "TMST", "COT": "COT", "EDT": "EDT", "HNPMX": "HNPMX", "MYT": "MYT", "BT": "BT", "GFT": "GFT", "IST": "IST", "HEOG": "HEOG", "CLST": "CLST", "HEEG": "HEEG", "MDT": "MDT", "HNT": "HNT", "WAST": "WAST", "ECT": "ECT", "GMT": "GMT", "HKST": "HKST", "HAT": "HAT", "ART": "ART", "NZDT": "NZDT", "CHAST": "CHAST", "SAST": "SAST", "SGT": "SGT", "CDT": "CDT", "ACWST": "ACWST", "UYT": "UYT", "HENOMX": "HENOMX", "ChST": "ChST", "∅∅∅": "∅∅∅", "TMT": "TMT", "ACST": "ACST", "WIT": "WIT", "OESZ": "OESZ", "HNCU": "HNCU", "ADT": "ADT", "ACWDT": "ACWDT", "WITA": "WITA", "ACDT": "ACDT", "UYST": "UYST", "WIB": "WIB", "AEDT": "AEDT", "PST": "PST", "MEZ": "MEZ", "HNEG": "HNEG", "WAT": "WAT", "HNNOMX": "HNNOMX", "EST": "EST", "HADT": "HADT", "AWST": "AWST", "HKT": "HKT", "WART": "WART", "CST": "CST", "WESZ": "WESZ", "MESZ": "MESZ", "CLT": "CLT", "BOT": "BOT", "WARST": "WARST", "MST": "MST", "AKST": "AKST", "AST": "AST", "ARST": "ARST", "GYT": "GYT", "HNPM": "HNPM", "EAT": "EAT", "COST": "COST", "SRT": "SRT", "VET": "VET", "AEST": "AEST", "HEPM": "HEPM", "NZST": "NZST", "JDT": "JDT", "AKDT": "AKDT", "HAST": "HAST", "AWDT": "AWDT", "LHST": "LHST", "LHDT": "LHDT", "CHADT": "CHADT", "CAT": "CAT", "OEZ": "OEZ", "HNOG": "HNOG", "WEZ": "WEZ", "HECU": "HECU", "HEPMX": "HEPMX", "PDT": "PDT"},
++ locale: "nmg_CM",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GMT": "GMT", "WAST": "WAST", "EDT": "EDT", "TMT": "TMT", "AST": "AST", "ARST": "ARST", "BOT": "BOT", "AWST": "AWST", "LHST": "LHST", "TMST": "TMST", "NZST": "NZST", "CHADT": "CHADT", "BT": "BT", "WAT": "WAT", "HKST": "HKST", "ACWST": "ACWST", "WEZ": "WEZ", "COST": "COST", "HEOG": "HEOG", "HEPMX": "HEPMX", "OESZ": "OESZ", "WART": "WART", "∅∅∅": "∅∅∅", "PST": "PST", "AEDT": "AEDT", "HNCU": "HNCU", "HECU": "HECU", "GYT": "GYT", "CLST": "CLST", "CDT": "CDT", "HADT": "HADT", "HNEG": "HNEG", "PDT": "PDT", "HNPMX": "HNPMX", "GFT": "GFT", "NZDT": "NZDT", "ADT": "ADT", "ACWDT": "ACWDT", "WIT": "WIT", "MDT": "MDT", "UYST": "UYST", "AEST": "AEST", "HAT": "HAT", "WIB": "WIB", "UYT": "UYT", "VET": "VET", "OEZ": "OEZ", "SAST": "SAST", "HKT": "HKT", "WITA": "WITA", "EAT": "EAT", "MYT": "MYT", "JST": "JST", "JDT": "JDT", "HNOG": "HNOG", "MST": "MST", "MESZ": "MESZ", "AKDT": "AKDT", "WARST": "WARST", "COT": "COT", "MEZ": "MEZ", "ACST": "ACST", "CHAST": "CHAST", "IST": "IST", "EST": "EST", "SGT": "SGT", "CST": "CST", "ChST": "ChST", "HENOMX": "HENOMX", "LHDT": "LHDT", "HEPM": "HEPM", "CLT": "CLT", "ECT": "ECT", "HAST": "HAST", "ACDT": "ACDT", "HEEG": "HEEG", "HNPM": "HNPM", "AKST": "AKST", "HNT": "HNT", "CAT": "CAT", "ART": "ART", "SRT": "SRT", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "WESZ": "WESZ"},
+ }
+ }
+ 
+@@ -110,7 +94,7 @@ func (nmg *nmg_CM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (nmg *nmg_CM) MonthsAbbreviated() []string {
+- return nmg.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -130,7 +114,7 @@ func (nmg *nmg_CM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (nmg *nmg_CM) MonthsWide() []string {
+- return nmg.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -176,75 +160,13 @@ func (nmg *nmg_CM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'nmg_CM' and handles both Whole and Real numbers based on 'v'
+ func (nmg *nmg_CM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nmg.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(nmg.group) - 1; j >= 0; j-- {
+- b = append(b, nmg.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nmg.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'nmg_CM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (nmg *nmg_CM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nmg.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nmg.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, nmg.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'nmg_CM'
+@@ -252,58 +174,7 @@ func (nmg *nmg_CM) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nmg.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nmg.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(nmg.group) - 1; j >= 0; j-- {
+- b = append(b, nmg.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nmg.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nmg.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, nmg.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'nmg_CM'
+@@ -312,65 +183,7 @@ func (nmg *nmg_CM) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nmg.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nmg.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(nmg.group) - 1; j >= 0; j-- {
+- b = append(b, nmg.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, nmg.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nmg.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, nmg.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, nmg.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'nmg_CM'
+@@ -378,17 +191,6 @@ func (nmg *nmg_CM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -397,17 +199,6 @@ func (nmg *nmg_CM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nmg.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -416,17 +207,6 @@ func (nmg *nmg_CM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nmg.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -435,19 +215,6 @@ func (nmg *nmg_CM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, nmg.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nmg.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -456,19 +223,6 @@ func (nmg *nmg_CM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nmg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -477,26 +231,6 @@ func (nmg *nmg_CM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nmg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nmg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -505,30 +239,6 @@ func (nmg *nmg_CM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nmg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nmg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -537,34 +247,5 @@ func (nmg *nmg_CM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nmg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nmg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := nmg.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/nn/nn.go b/nn/nn.go
+index 247e70e..ea869ce 100644
+--- a/nn/nn.go
++++ b/nn/nn.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"f.Kr.", "e.Kr."},
+ erasNarrow: []string{"f.Kr.", "e.Kr."},
+ erasWide: []string{"f.Kr.", "e.Kr."},
+- timezones: map[string]string{"ACDT": "sentralaustralsk sommartid", "CST": "CST", "WIB": "WIB", "HAST": "HAST", "BOT": "BOT", "ChST": "ChST", "HKST": "HKST", "AEST": "austaustralsk standardtid", "HEEG": "HEEG", "WAT": "vestafrikansk standardtid", "CAT": "sentralafrikansk tid", "SGT": "SGT", "AKDT": "AKDT", "UYT": "UYT", "COT": "COT", "MST": "MST", "WITA": "WITA", "LHDT": "LHDT", "HNT": "HNT", "HNEG": "HNEG", "HEPM": "HEPM", "JDT": "JDT", "GYT": "GYT", "WIT": "WIT", "ACWST": "vest-sentralaustralsk standardtid", "ACWDT": "vest-sentralaustralsk sommartid", "HAT": "HAT", "ACST": "sentralaustralsk standardtid", "HEPMX": "HEPMX", "AST": "AST", "BT": "BT", "NZST": "NZST", "MEZ": "sentraleuropeisk standardtid", "WART": "WART", "WEZ": "vesteuropeisk standardtid", "PDT": "PDT", "LHST": "LHST", "NZDT": "NZDT", "JST": "JST", "TMT": "TMT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "ARST": "ARST", "AWDT": "vestaustralsk sommartid", "AEDT": "austaustralsk sommartid", "COST": "COST", "WARST": "WARST", "EST": "EST", "SRT": "SRT", "WESZ": "vesteuropeisk sommartid", "CDT": "CDT", "ART": "ART", "HNPM": "HNPM", "TMST": "TMST", "EAT": "austafrikansk tid", "WAST": "vestafrikansk sommartid", "∅∅∅": "∅∅∅", "GMT": "greenwich middeltid", "HKT": "HKT", "MDT": "MDT", "SAST": "sørafrikansk tid", "CLST": "CLST", "GFT": "GFT", "OEZ": "austeuropeisk standardtid", "HEOG": "HEOG", "CHADT": "CHADT", "MESZ": "sentraleuropeisk sommartid", "UYST": "UYST", "VET": "VET", "CHAST": "CHAST", "ECT": "ECT", "HNCU": "HNCU", "AKST": "AKST", "ADT": "ADT", "MYT": "MYT", "IST": "IST", "CLT": "CLT", "PST": "PST", "AWST": "vestaustralsk standardtid", "OESZ": "austeuropeisk sommartid", "HECU": "HECU", "EDT": "EDT", "HADT": "HADT", "HNOG": "HNOG"},
++ timezones: map[string]string{"WIB": "WIB", "HAST": "HAST", "OEZ": "austeuropeisk standardtid", "HNT": "HNT", "CLT": "CLT", "COT": "COT", "EDT": "EDT", "HKST": "HKST", "BOT": "BOT", "AWST": "vestaustralsk standardtid", "LHDT": "LHDT", "AEDT": "austaustralsk sommartid", "HEEG": "HEEG", "WEZ": "vesteuropeisk standardtid", "AKST": "AKST", "WITA": "WITA", "AKDT": "AKDT", "WART": "WART", "HKT": "HKT", "TMT": "TMT", "JST": "JST", "CHAST": "CHAST", "ACWST": "vest-sentralaustralsk standardtid", "WESZ": "vesteuropeisk sommartid", "NZDT": "NZDT", "SGT": "SGT", "WARST": "WARST", "CST": "CST", "CAT": "sentralafrikansk tid", "AST": "AST", "ChST": "ChST", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "WAST": "vestafrikansk sommartid", "EST": "EST", "TMST": "TMST", "MEZ": "sentraleuropeisk standardtid", "HNPM": "HNPM", "ACWDT": "vest-sentralaustralsk sommartid", "OESZ": "austeuropeisk sommartid", "HNCU": "HNCU", "HEPMX": "HEPMX", "ADT": "ADT", "SRT": "SRT", "MESZ": "sentraleuropeisk sommartid", "HNEG": "HNEG", "BT": "BT", "ACST": "sentralaustralsk standardtid", "LHST": "LHST", "ART": "ART", "HECU": "HECU", "HNPMX": "HNPMX", "NZST": "NZST", "ECT": "ECT", "CHADT": "CHADT", "PDT": "PDT", "AEST": "austaustralsk standardtid", "VET": "VET", "GYT": "GYT", "COST": "COST", "HNOG": "HNOG", "GMT": "greenwich middeltid", "MST": "MST", "AWDT": "vestaustralsk sommartid", "WIT": "WIT", "SAST": "sørafrikansk tid", "ARST": "ARST", "HADT": "HADT", "HNNOMX": "HNNOMX", "GFT": "GFT", "CLST": "CLST", "PST": "PST", "WAT": "vestafrikansk standardtid", "HAT": "HAT", "HEPM": "HEPM", "UYT": "UYT", "HEOG": "HEOG", "CDT": "CDT", "IST": "IST", "MDT": "MDT", "ACDT": "sentralaustralsk sommartid", "JDT": "JDT", "UYST": "UYST", "EAT": "austafrikansk tid", "MYT": "MYT"},
+ }
+ }
+ 
+diff --git a/nn_NO/nn_NO.go b/nn_NO/nn_NO.go
+index 825ec90..7bd7162 100644
+--- a/nn_NO/nn_NO.go
++++ b/nn_NO/nn_NO.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type nn_NO struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'nn_NO' locale
+ func New() locales.Translator {
+ return &nn_NO{
+- locale: "nn_NO",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mars", "apr.", "mai", "juni", "juli", "aug.", "sep.", "okt.", "nov.", "des."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januar", "februar", "mars", "april", "mai", "juni", "juli", "august", "september", "oktober", "november", "desember"},
+- daysAbbreviated: []string{"sø.", "må.", "ty.", "on.", "to.", "fr.", "la."},
+- daysNarrow: []string{"S", "M", "T", "O", "T", "F", "L"},
+- daysShort: []string{"sø.", "må.", "ty.", "on.", "to.", "fr.", "la."},
+- daysWide: []string{"søndag", "måndag", "tysdag", "onsdag", "torsdag", "fredag", "laurdag"},
+- periodsAbbreviated: []string{"f.m.", "e.m."},
+- periodsNarrow: []string{"f.m.", "e.m."},
+- periodsWide: []string{"formiddag", "ettermiddag"},
+- erasAbbreviated: []string{"f.Kr.", "e.Kr."},
+- erasNarrow: []string{"f.Kr.", "e.Kr."},
+- erasWide: []string{"f.Kr.", "e.Kr."},
+- timezones: map[string]string{"EDT": "EDT", "MST": "MST", "HEOG": "HEOG", "IST": "IST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "OESZ": "austeuropeisk sommartid", "CDT": "CDT", "HAST": "HAST", "ART": "ART", "HEPM": "HEPM", "LHDT": "LHDT", "HNNOMX": "HNNOMX", "WIB": "WIB", "BT": "BT", "HAT": "HAT", "HKT": "HKT", "MEZ": "sentraleuropeisk standardtid", "ACDT": "sentralaustralsk sommartid", "AWST": "vestaustralsk standardtid", "CHADT": "CHADT", "MESZ": "sentraleuropeisk sommartid", "WART": "WART", "COT": "COT", "HADT": "HADT", "VET": "VET", "PDT": "PDT", "GMT": "greenwich middeltid", "ACWDT": "vest-sentralaustralsk sommartid", "COST": "COST", "AKST": "AKST", "MYT": "MYT", "UYST": "UYST", "PST": "PST", "JDT": "JDT", "CLST": "CLST", "WAT": "vestafrikansk standardtid", "WARST": "WARST", "HNCU": "HNCU", "AKDT": "AKDT", "AEST": "austaustralsk standardtid", "TMT": "TMT", "TMST": "TMST", "UYT": "UYT", "WITA": "WITA", "LHST": "LHST", "WAST": "vestafrikansk sommartid", "HEEG": "HEEG", "OEZ": "austeuropeisk standardtid", "AST": "AST", "ARST": "ARST", "HKST": "HKST", "SAST": "sørafrikansk tid", "CHAST": "CHAST", "HEPMX": "HEPMX", "WIT": "WIT", "WEZ": "vesteuropeisk standardtid", "NZST": "NZST", "ACST": "sentralaustralsk standardtid", "HENOMX": "HENOMX", "EST": "EST", "SRT": "SRT", "CLT": "CLT", "GFT": "GFT", "NZDT": "NZDT", "JST": "JST", "CAT": "sentralafrikansk tid", "GYT": "GYT", "MDT": "MDT", "AEDT": "austaustralsk sommartid", "AWDT": "vestaustralsk sommartid", "ACWST": "vest-sentralaustralsk standardtid", "HNPM": "HNPM", "HNPMX": "HNPMX", "SGT": "SGT", "CST": "CST", "ECT": "ECT", "EAT": "austafrikansk tid", "HECU": "HECU", "ChST": "ChST", "BOT": "BOT", "ADT": "ADT", "HNT": "HNT", "HNOG": "HNOG", "WESZ": "vesteuropeisk sommartid"},
++ locale: "nn_NO",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNNOMX": "HNNOMX", "ACWST": "ACWST", "COST": "COST", "CLST": "CLST", "ECT": "ECT", "WARST": "WARST", "CAT": "CAT", "SRT": "SRT", "ACDT": "ACDT", "JDT": "JDT", "WAST": "WAST", "HNOG": "HNOG", "HENOMX": "HENOMX", "JST": "JST", "PDT": "PDT", "AKDT": "AKDT", "HAT": "HAT", "BT": "BT", "VET": "VET", "HECU": "HECU", "OEZ": "OEZ", "TMT": "TMT", "OESZ": "OESZ", "WART": "WART", "TMST": "TMST", "EAT": "EAT", "HNEG": "HNEG", "MEZ": "MEZ", "HEPM": "HEPM", "HEPMX": "HEPMX", "MST": "MST", "IST": "IST", "GFT": "GFT", "NZST": "NZST", "ARST": "ARST", "GMT": "GMT", "BOT": "BOT", "CLT": "CLT", "WIB": "WIB", "LHDT": "LHDT", "HNCU": "HNCU", "SGT": "SGT", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "WIT": "WIT", "WAT": "WAT", "COT": "COT", "SAST": "SAST", "ChST": "ChST", "HADT": "HADT", "CHAST": "CHAST", "PST": "PST", "WEZ": "WEZ", "CST": "CST", "CDT": "CDT", "AKST": "AKST", "HEOG": "HEOG", "WITA": "WITA", "AWST": "AWST", "AWDT": "AWDT", "AEST": "AEST", "CHADT": "CHADT", "UYST": "UYST", "NZDT": "NZDT", "ART": "ART", "MESZ": "MESZ", "ACST": "ACST", "HNPM": "HNPM", "HKT": "HKT", "HKST": "HKST", "LHST": "LHST", "ACWDT": "ACWDT", "UYT": "UYT", "HNPMX": "HNPMX", "GYT": "GYT", "EST": "EST", "EDT": "EDT", "ADT": "ADT", "MDT": "MDT", "HEEG": "HEEG", "MYT": "MYT", "WESZ": "WESZ", "AST": "AST", "HAST": "HAST", "HNT": "HNT"},
+ }
+ }
+ 
+@@ -126,7 +101,7 @@ func (nn *nn_NO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (nn *nn_NO) MonthsAbbreviated() []string {
+- return nn.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +111,7 @@ func (nn *nn_NO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (nn *nn_NO) MonthsNarrow() []string {
+- return nn.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +121,7 @@ func (nn *nn_NO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (nn *nn_NO) MonthsWide() []string {
+- return nn.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,81 +167,13 @@ func (nn *nn_NO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'nn_NO' and handles both Whole and Real numbers based on 'v'
+ func (nn *nn_NO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(nn.group) - 1; j >= 0; j-- {
+- b = append(b, nn.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(nn.minus) - 1; j >= 0; j-- {
+- b = append(b, nn.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'nn_NO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (nn *nn_NO) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nn.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(nn.minus) - 1; j >= 0; j-- {
+- b = append(b, nn.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, nn.percentSuffix...)
+-
+- b = append(b, nn.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'nn_NO'
+@@ -274,60 +181,7 @@ func (nn *nn_NO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nn.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(nn.group) - 1; j >= 0; j-- {
+- b = append(b, nn.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(nn.minus) - 1; j >= 0; j-- {
+- b = append(b, nn.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, nn.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'nn_NO'
+@@ -336,67 +190,7 @@ func (nn *nn_NO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nn.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(nn.group) - 1; j >= 0; j-- {
+- b = append(b, nn.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(nn.minus) - 1; j >= 0; j-- {
+- b = append(b, nn.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, nn.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, nn.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'nn_NO'
+@@ -404,27 +198,6 @@ func (nn *nn_NO) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,17 +206,6 @@ func (nn *nn_NO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, nn.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -452,17 +214,6 @@ func (nn *nn_NO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, nn.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -471,19 +222,6 @@ func (nn *nn_NO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, nn.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, nn.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -492,19 +230,6 @@ func (nn *nn_NO) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -513,26 +238,6 @@ func (nn *nn_NO) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -541,30 +246,6 @@ func (nn *nn_NO) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -573,37 +254,5 @@ func (nn *nn_NO) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0x6b, 0x6c}...)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := nn.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/nnh/nnh.go b/nnh/nnh.go
+index 3b62fed..1f2a7c8 100644
+--- a/nnh/nnh.go
++++ b/nnh/nnh.go
+@@ -65,7 +65,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"m.z.Y.", "m.g.n.Y."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"mé zyé Yěsô", "mé gÿo ńzyé Yěsô"},
+- timezones: map[string]string{"WIB": "WIB", "HADT": "HADT", "HKST": "HKST", "OEZ": "OEZ", "HENOMX": "HENOMX", "MST": "MST", "UYST": "UYST", "GYT": "GYT", "SRT": "SRT", "ACWST": "ACWST", "PST": "PST", "TMST": "TMST", "COST": "COST", "HNCU": "HNCU", "SGT": "SGT", "AEST": "AEST", "CST": "CST", "BT": "BT", "CDT": "CDT", "UYT": "UYT", "HNPM": "HNPM", "HEEG": "HEEG", "ChST": "ChST", "CAT": "CAT", "JST": "JST", "ACWDT": "ACWDT", "LHDT": "LHDT", "HECU": "HECU", "EDT": "EDT", "HAT": "HAT", "HAST": "HAST", "VET": "VET", "HNT": "HNT", "HNOG": "HNOG", "CHAST": "CHAST", "IST": "IST", "CLT": "CLT", "WIT": "WIT", "HKT": "HKT", "CLST": "CLST", "EAT": "EAT", "AEDT": "AEDT", "NZDT": "NZDT", "LHST": "LHST", "SAST": "SAST", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "AWST": "AWST", "JDT": "JDT", "TMT": "TMT", "ACST": "ACST", "ART": "ART", "BOT": "BOT", "GMT": "GMT", "HEOG": "HEOG", "WEZ": "WEZ", "WAT": "WAT", "COT": "COT", "EST": "EST", "MDT": "MDT", "ADT": "ADT", "CHADT": "CHADT", "MEZ": "MEZ", "HNEG": "HNEG", "GFT": "GFT", "AKST": "AKST", "MYT": "MYT", "WITA": "WITA", "ACDT": "ACDT", "ECT": "ECT", "WARST": "WARST", "HNPMX": "HNPMX", "PDT": "PDT", "AWDT": "AWDT", "WAST": "WAST", "HEPMX": "HEPMX", "AKDT": "AKDT", "ARST": "ARST", "HEPM": "HEPM", "NZST": "NZST", "OESZ": "OESZ", "AST": "AST", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "WART": "WART"},
++ timezones: map[string]string{"OEZ": "OEZ", "OESZ": "OESZ", "WIB": "WIB", "CDT": "CDT", "MDT": "MDT", "AST": "AST", "BOT": "BOT", "SRT": "SRT", "HADT": "HADT", "AWDT": "AWDT", "WAT": "WAT", "COST": "COST", "EDT": "EDT", "NZST": "NZST", "NZDT": "NZDT", "ARST": "ARST", "TMT": "TMT", "VET": "VET", "AKST": "AKST", "WART": "WART", "HEOG": "HEOG", "WITA": "WITA", "HENOMX": "HENOMX", "AWST": "AWST", "UYT": "UYT", "HNCU": "HNCU", "HNT": "HNT", "EST": "EST", "SGT": "SGT", "AKDT": "AKDT", "GFT": "GFT", "CAT": "CAT", "HEEG": "HEEG", "WESZ": "WESZ", "HNOG": "HNOG", "∅∅∅": "∅∅∅", "HKST": "HKST", "CST": "CST", "ADT": "ADT", "MESZ": "MESZ", "LHST": "LHST", "HEPMX": "HEPMX", "JST": "JST", "TMST": "TMST", "HNNOMX": "HNNOMX", "ACWST": "ACWST", "AEDT": "AEDT", "CHAST": "CHAST", "HNPMX": "HNPMX", "GMT": "GMT", "UYST": "UYST", "IST": "IST", "HAST": "HAST", "LHDT": "LHDT", "PST": "PST", "GYT": "GYT", "CLT": "CLT", "EAT": "EAT", "ACWDT": "ACWDT", "PDT": "PDT", "HECU": "HECU", "WARST": "WARST", "SAST": "SAST", "HKT": "HKT", "BT": "BT", "WAST": "WAST", "CLST": "CLST", "ChST": "ChST", "ACST": "ACST", "HNPM": "HNPM", "HEPM": "HEPM", "JDT": "JDT", "MYT": "MYT", "CHADT": "CHADT", "HAT": "HAT", "COT": "COT", "ECT": "ECT", "MST": "MST", "MEZ": "MEZ", "ACDT": "ACDT", "HNEG": "HNEG", "AEST": "AEST", "WIT": "WIT", "ART": "ART", "WEZ": "WEZ"},
+ }
+ }
+ 
+diff --git a/nnh_CM/nnh_CM.go b/nnh_CM/nnh_CM.go
+index 59e73c3..2fa33af 100644
+--- a/nnh_CM/nnh_CM.go
++++ b/nnh_CM/nnh_CM.go
+@@ -10,62 +10,45 @@ import (
+ )
+ 
+ type nnh_CM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'nnh_CM' locale
+ func New() locales.Translator {
+ return &nnh_CM{
+- locale: "nnh_CM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- percent: "%",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "saŋ tsetsɛ̀ɛ lùm", "saŋ kàg ngwóŋ", "saŋ lepyè shúm", "saŋ cÿó", "saŋ tsɛ̀ɛ cÿó", "saŋ njÿoláʼ", "saŋ tyɛ̀b tyɛ̀b mbʉ̀ŋ", "saŋ mbʉ̀ŋ", "saŋ ngwɔ̀ʼ mbÿɛ", "saŋ tàŋa tsetsáʼ", "saŋ mejwoŋó", "saŋ lùm"},
+- monthsWide: []string{"", "saŋ tsetsɛ̀ɛ lùm", "saŋ kàg ngwóŋ", "saŋ lepyè shúm", "saŋ cÿó", "saŋ tsɛ̀ɛ cÿó", "saŋ njÿoláʼ", "saŋ tyɛ̀b tyɛ̀b mbʉ̀ŋ", "saŋ mbʉ̀ŋ", "saŋ ngwɔ̀ʼ mbÿɛ", "saŋ tàŋa tsetsáʼ", "saŋ mejwoŋó", "saŋ lùm"},
+- daysAbbreviated: []string{"lyɛʼɛ́ sẅíŋtè", "mvfò lyɛ̌ʼ", "mbɔ́ɔntè mvfò lyɛ̌ʼ", "tsètsɛ̀ɛ lyɛ̌ʼ", "mbɔ́ɔntè tsetsɛ̀ɛ lyɛ̌ʼ", "mvfò màga lyɛ̌ʼ", "màga lyɛ̌ʼ"},
+- daysShort: []string{"lyɛʼɛ́ sẅíŋtè", "mvfò lyɛ̌ʼ", "mbɔ́ɔntè mvfò lyɛ̌ʼ", "tsètsɛ̀ɛ lyɛ̌ʼ", "mbɔ́ɔntè tsetsɛ̀ɛ lyɛ̌ʼ", "mvfò màga lyɛ̌ʼ", "màga lyɛ̌ʼ"},
+- daysWide: []string{"lyɛʼɛ́ sẅíŋtè", "mvfò lyɛ̌ʼ", "mbɔ́ɔntè mvfò lyɛ̌ʼ", "tsètsɛ̀ɛ lyɛ̌ʼ", "mbɔ́ɔntè tsetsɛ̀ɛ lyɛ̌ʼ", "mvfò màga lyɛ̌ʼ", "màga lyɛ̌ʼ"},
+- periodsAbbreviated: []string{"mbaʼámbaʼ", "ncwònzém"},
+- periodsWide: []string{"mbaʼámbaʼ", "ncwònzém"},
+- erasAbbreviated: []string{"m.z.Y.", "m.g.n.Y."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"mé zyé Yěsô", "mé gÿo ńzyé Yěsô"},
+- timezones: map[string]string{"HAT": "HAT", "CHADT": "CHADT", "IST": "IST", "HKST": "HKST", "HNEG": "HNEG", "EAT": "EAT", "SGT": "SGT", "HNPMX": "HNPMX", "UYT": "UYT", "SRT": "SRT", "SAST": "SAST", "HNNOMX": "HNNOMX", "HEOG": "HEOG", "HKT": "HKT", "WITA": "WITA", "EST": "EST", "AKDT": "AKDT", "WIB": "WIB", "WEZ": "WEZ", "ACWDT": "ACWDT", "CLST": "CLST", "BOT": "BOT", "ACDT": "ACDT", "WARST": "WARST", "HECU": "HECU", "PDT": "PDT", "ACST": "ACST", "OESZ": "OESZ", "COT": "COT", "WART": "WART", "AST": "AST", "HADT": "HADT", "WESZ": "WESZ", "HNT": "HNT", "TMT": "TMT", "MST": "MST", "HEPM": "HEPM", "GFT": "GFT", "TMST": "TMST", "JDT": "JDT", "HEEG": "HEEG", "WAT": "WAT", "EDT": "EDT", "HAST": "HAST", "HNOG": "HNOG", "PST": "PST", "LHDT": "LHDT", "COST": "COST", "HNCU": "HNCU", "CDT": "CDT", "ADT": "ADT", "MESZ": "MESZ", "ECT": "ECT", "ACWST": "ACWST", "AEST": "AEST", "MYT": "MYT", "AWST": "AWST", "HENOMX": "HENOMX", "ChST": "ChST", "MDT": "MDT", "CST": "CST", "BT": "BT", "NZDT": "NZDT", "JST": "JST", "AKST": "AKST", "WIT": "WIT", "NZST": "NZST", "CLT": "CLT", "CAT": "CAT", "UYST": "UYST", "AWDT": "AWDT", "HNPM": "HNPM", "MEZ": "MEZ", "WAST": "WAST", "ART": "ART", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "GMT": "GMT", "LHST": "LHST", "CHAST": "CHAST", "HEPMX": "HEPMX", "GYT": "GYT", "VET": "VET", "ARST": "ARST", "AEDT": "AEDT"},
++ locale: "nnh_CM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNEG": "HNEG", "PST": "PST", "HNCU": "HNCU", "COT": "COT", "HEOG": "HEOG", "HADT": "HADT", "HEEG": "HEEG", "∅∅∅": "∅∅∅", "WARST": "WARST", "MDT": "MDT", "ACDT": "ACDT", "OESZ": "OESZ", "NZDT": "NZDT", "UYT": "UYT", "UYST": "UYST", "PDT": "PDT", "NZST": "NZST", "AST": "AST", "ART": "ART", "AEST": "AEST", "WEZ": "WEZ", "WAT": "WAT", "GYT": "GYT", "CAT": "CAT", "MESZ": "MESZ", "LHST": "LHST", "WAST": "WAST", "HKT": "HKT", "HKST": "HKST", "CLST": "CLST", "HEPM": "HEPM", "ACWDT": "ACWDT", "SGT": "SGT", "AKDT": "AKDT", "ChST": "ChST", "VET": "VET", "WIB": "WIB", "MST": "MST", "BOT": "BOT", "OEZ": "OEZ", "ADT": "ADT", "EAT": "EAT", "WESZ": "WESZ", "AKST": "AKST", "EDT": "EDT", "ECT": "ECT", "IST": "IST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "TMST": "TMST", "CHADT": "CHADT", "HECU": "HECU", "WART": "WART", "SAST": "SAST", "WITA": "WITA", "HNPM": "HNPM", "GMT": "GMT", "SRT": "SRT", "ACST": "ACST", "HNNOMX": "HNNOMX", "JST": "JST", "JDT": "JDT", "LHDT": "LHDT", "CLT": "CLT", "AEDT": "AEDT", "CHAST": "CHAST", "GFT": "GFT", "HNT": "HNT", "WIT": "WIT", "HNOG": "HNOG", "EST": "EST", "HAST": "HAST", "MYT": "MYT", "COST": "COST", "CST": "CST", "HAT": "HAT", "TMT": "TMT", "CDT": "CDT", "ARST": "ARST", "MEZ": "MEZ", "HENOMX": "HENOMX", "AWST": "AWST", "AWDT": "AWDT", "BT": "BT", "ACWST": "ACWST"},
+ }
+ }
+ 
+@@ -118,7 +101,7 @@ func (nnh *nnh_CM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (nnh *nnh_CM) MonthsAbbreviated() []string {
+- return nnh.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -138,7 +121,7 @@ func (nnh *nnh_CM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (nnh *nnh_CM) MonthsWide() []string {
+- return nnh.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -184,42 +167,7 @@ func (nnh *nnh_CM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'nnh_CM' and handles both Whole and Real numbers based on 'v'
+ func (nnh *nnh_CM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nnh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nnh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nnh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'nnh_CM' and handles both Whole and Real numbers based on 'v'
+@@ -233,60 +181,7 @@ func (nnh *nnh_CM) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nnh.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nnh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nnh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(nnh.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, nnh.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, nnh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nnh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'nnh_CM'
+@@ -295,72 +190,7 @@ func (nnh *nnh_CM) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nnh.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nnh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nnh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(nnh.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, nnh.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, nnh.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(nnh.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, nnh.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nnh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'nnh_CM'
+@@ -368,27 +198,6 @@ func (nnh *nnh_CM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -397,17 +206,6 @@ func (nnh *nnh_CM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nnh.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -416,20 +214,6 @@ func (nnh *nnh_CM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0x6c, 0x79, 0xc9, 0x9b}...)
+- b = append(b, []byte{0xcc, 0x8c, 0xca, 0xbc, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x6e, 0x61}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nnh.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -438,21 +222,6 @@ func (nnh *nnh_CM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, nnh.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20, 0x2c, 0x20, 0x6c, 0x79, 0xc9, 0x9b}...)
+- b = append(b, []byte{0xcc, 0x8c, 0xca, 0xbc, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x6e, 0x61}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nnh.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/nus/nus.go b/nus/nus.go
+index 33a72af..4e6195a 100644
+--- a/nus/nus.go
++++ b/nus/nus.go
+@@ -65,7 +65,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"AY", "ƐY"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"A ka̱n Yecu ni dap", "Ɛ ca Yecu dap"},
+- timezones: map[string]string{"WIT": "WIT", "HNT": "HNT", "TMT": "TMT", "ECT": "ECT", "HNNOMX": "HNNOMX", "GMT": "GMT", "PDT": "PDT", "LHST": "LHST", "JST": "JST", "ACST": "ACST", "HENOMX": "HENOMX", "MDT": "MDT", "HNPMX": "HNPMX", "UYT": "UYT", "CDT": "CDT", "HAST": "HAST", "SRT": "SRT", "PST": "PST", "WEZ": "WEZ", "SGT": "SGT", "HNCU": "HNCU", "HEPMX": "HEPMX", "UYST": "UYST", "CST": "CST", "HAT": "HAT", "AEDT": "AEDT", "MST": "MST", "ART": "ART", "HEPM": "HEPM", "CHAST": "CHAST", "OEZ": "OEZ", "LHDT": "LHDT", "TMST": "TMST", "COST": "COST", "AST": "AST", "HADT": "HADT", "ACWST": "ACWST", "AWDT": "AWDT", "HKST": "HKST", "HECU": "HECU", "HEEG": "HEEG", "WART": "WART", "CAT": "CAT", "GYT": "GYT", "MYT": "MYT", "AKST": "AKST", "ARST": "ARST", "SAST": "SAST", "WAT": "WAT", "OESZ": "OESZ", "AKDT": "AKDT", "HEOG": "HEOG", "WITA": "WITA", "MEZ": "MEZ", "CHADT": "CHADT", "EST": "EST", "NZDT": "NZDT", "IST": "IST", "JDT": "JDT", "NZST": "NZST", "WARST": "WARST", "VET": "VET", "HNEG": "HNEG", "HNOG": "HNOG", "AWST": "AWST", "MESZ": "MESZ", "BOT": "BOT", "ACDT": "ACDT", "EAT": "EAT", "WIB": "WIB", "AEST": "AEST", "HKT": "HKT", "CLT": "CLT", "GFT": "GFT", "EDT": "EDT", "ADT": "ADT", "WESZ": "WESZ", "HNPM": "HNPM", "COT": "COT", "WAST": "WAST", "∅∅∅": "∅∅∅", "BT": "BT", "ACWDT": "ACWDT", "CLST": "CLST", "ChST": "ChST"},
++ timezones: map[string]string{"JST": "JST", "IST": "IST", "VET": "VET", "HECU": "HECU", "TMT": "TMT", "CST": "CST", "GFT": "GFT", "GYT": "GYT", "OEZ": "OEZ", "WIT": "WIT", "CLST": "CLST", "AST": "AST", "GMT": "GMT", "SRT": "SRT", "HNEG": "HNEG", "HNCU": "HNCU", "HEPMX": "HEPMX", "HKST": "HKST", "ECT": "ECT", "HEPM": "HEPM", "HNT": "HNT", "HAT": "HAT", "HADT": "HADT", "MEZ": "MEZ", "CAT": "CAT", "CLT": "CLT", "HEEG": "HEEG", "LHST": "LHST", "UYT": "UYT", "ACWST": "ACWST", "COST": "COST", "HNOG": "HNOG", "NZST": "NZST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "MYT": "MYT", "CHAST": "CHAST", "WITA": "WITA", "MDT": "MDT", "CDT": "CDT", "MESZ": "MESZ", "HNPM": "HNPM", "AEDT": "AEDT", "HEOG": "HEOG", "TMST": "TMST", "LHDT": "LHDT", "ACWDT": "ACWDT", "WART": "WART", "SAST": "SAST", "ACDT": "ACDT", "WAST": "WAST", "HKT": "HKT", "BOT": "BOT", "ADT": "ADT", "ARST": "ARST", "AWDT": "AWDT", "EDT": "EDT", "WIB": "WIB", "BT": "BT", "WEZ": "WEZ", "ACST": "ACST", "JDT": "JDT", "ChST": "ChST", "ART": "ART", "CHADT": "CHADT", "PDT": "PDT", "WESZ": "WESZ", "HNPMX": "HNPMX", "COT": "COT", "MST": "MST", "OESZ": "OESZ", "WARST": "WARST", "PST": "PST", "AEST": "AEST", "AKST": "AKST", "AKDT": "AKDT", "EST": "EST", "HAST": "HAST", "NZDT": "NZDT", "UYST": "UYST", "AWST": "AWST", "SGT": "SGT", "WAT": "WAT", "∅∅∅": "∅∅∅", "EAT": "EAT"},
+ }
+ }
+ 
+diff --git a/nus_SS/nus_SS.go b/nus_SS/nus_SS.go
+index 56fb90b..5f8c12e 100644
+--- a/nus_SS/nus_SS.go
++++ b/nus_SS/nus_SS.go
+@@ -10,62 +10,45 @@ import (
+ )
+ 
+ type nus_SS struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'nus_SS' locale
+ func New() locales.Translator {
+ return &nus_SS{
+- locale: "nus_SS",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Tiop", "Pɛt", "Duɔ̱ɔ̱", "Guak", "Duä", "Kor", "Pay", "Thoo", "Tɛɛ", "Laa", "Kur", "Tid"},
+- monthsNarrow: []string{"", "T", "P", "D", "G", "D", "K", "P", "T", "T", "L", "K", "T"},
+- monthsWide: []string{"", "Tiop thar pɛt", "Pɛt", "Duɔ̱ɔ̱ŋ", "Guak", "Duät", "Kornyoot", "Pay yie̱tni", "Tho̱o̱r", "Tɛɛr", "Laath", "Kur", "Tio̱p in di̱i̱t"},
+- daysAbbreviated: []string{"Cäŋ", "Jiec", "Rɛw", "Diɔ̱k", "Ŋuaan", "Dhieec", "Bäkɛl"},
+- daysNarrow: []string{"C", "J", "R", "D", "Ŋ", "D", "B"},
+- daysWide: []string{"Cäŋ kuɔth", "Jiec la̱t", "Rɛw lätni", "Diɔ̱k lätni", "Ŋuaan lätni", "Dhieec lätni", "Bäkɛl lätni"},
+- periodsAbbreviated: []string{"RW", "TŊ"},
+- periodsWide: []string{"RW", "TŊ"},
+- erasAbbreviated: []string{"AY", "ƐY"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"A ka̱n Yecu ni dap", "Ɛ ca Yecu dap"},
+- timezones: map[string]string{"AEDT": "AEDT", "WAST": "WAST", "MYT": "MYT", "HAST": "HAST", "WITA": "WITA", "OEZ": "OEZ", "ART": "ART", "IST": "IST", "PDT": "PDT", "HKT": "HKT", "JST": "JST", "JDT": "JDT", "ECT": "ECT", "∅∅∅": "∅∅∅", "GYT": "GYT", "AKDT": "AKDT", "TMST": "TMST", "HAT": "HAT", "PST": "PST", "HNPM": "HNPM", "WAT": "WAT", "WART": "WART", "HENOMX": "HENOMX", "VET": "VET", "ACWST": "ACWST", "CLT": "CLT", "CAT": "CAT", "HNPMX": "HNPMX", "CDT": "CDT", "WESZ": "WESZ", "TMT": "TMT", "SGT": "SGT", "MST": "MST", "UYT": "UYT", "CHADT": "CHADT", "SAST": "SAST", "HEEG": "HEEG", "EAT": "EAT", "WARST": "WARST", "COST": "COST", "SRT": "SRT", "UYST": "UYST", "WIT": "WIT", "ARST": "ARST", "HNOG": "HNOG", "HNCU": "HNCU", "HECU": "HECU", "HEPMX": "HEPMX", "ADT": "ADT", "ACWDT": "ACWDT", "CHAST": "CHAST", "LHDT": "LHDT", "WIB": "WIB", "NZST": "NZST", "GMT": "GMT", "BT": "BT", "HNT": "HNT", "AWDT": "AWDT", "AKST": "AKST", "MEZ": "MEZ", "ChST": "ChST", "HKST": "HKST", "MESZ": "MESZ", "CLST": "CLST", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "EST": "EST", "WEZ": "WEZ", "ACDT": "ACDT", "CST": "CST", "BOT": "BOT", "COT": "COT", "HEOG": "HEOG", "HEPM": "HEPM", "HNEG": "HNEG", "LHST": "LHST", "ACST": "ACST", "MDT": "MDT", "AST": "AST", "AEST": "AEST", "GFT": "GFT", "EDT": "EDT", "HADT": "HADT", "AWST": "AWST", "NZDT": "NZDT"},
++ locale: "nus_SS",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AWDT": "AWDT", "JDT": "JDT", "PDT": "PDT", "∅∅∅": "∅∅∅", "MST": "MST", "BOT": "BOT", "EAT": "EAT", "MEZ": "MEZ", "HNPMX": "HNPMX", "LHST": "LHST", "VET": "VET", "HNT": "HNT", "TMT": "TMT", "EST": "EST", "HKST": "HKST", "NZST": "NZST", "AST": "AST", "HEPM": "HEPM", "AKDT": "AKDT", "OEZ": "OEZ", "ACDT": "ACDT", "ACWDT": "ACWDT", "HECU": "HECU", "AKST": "AKST", "HKT": "HKT", "TMST": "TMST", "WITA": "WITA", "ARST": "ARST", "HNEG": "HNEG", "HEEG": "HEEG", "LHDT": "LHDT", "IST": "IST", "WAST": "WAST", "HEPMX": "HEPMX", "WARST": "WARST", "CLST": "CLST", "WIB": "WIB", "SRT": "SRT", "AEST": "AEST", "CHADT": "CHADT", "HNOG": "HNOG", "HEOG": "HEOG", "EDT": "EDT", "CST": "CST", "CDT": "CDT", "MESZ": "MESZ", "AEDT": "AEDT", "HAT": "HAT", "PST": "PST", "WEZ": "WEZ", "GFT": "GFT", "MDT": "MDT", "ACST": "ACST", "HNNOMX": "HNNOMX", "AWST": "AWST", "HNPM": "HNPM", "COT": "COT", "COST": "COST", "ART": "ART", "JST": "JST", "ACWST": "ACWST", "OESZ": "OESZ", "WIT": "WIT", "ADT": "ADT", "HAST": "HAST", "HENOMX": "HENOMX", "WART": "WART", "WESZ": "WESZ", "SGT": "SGT", "GYT": "GYT", "GMT": "GMT", "ChST": "ChST", "UYST": "UYST", "BT": "BT", "CHAST": "CHAST", "NZDT": "NZDT", "HADT": "HADT", "WAT": "WAT", "HNCU": "HNCU", "SAST": "SAST", "CAT": "CAT", "CLT": "CLT", "ECT": "ECT", "MYT": "MYT", "UYT": "UYT"},
+ }
+ }
+ 
+@@ -111,7 +94,7 @@ func (nus *nus_SS) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (nus *nus_SS) MonthsAbbreviated() []string {
+- return nus.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -121,7 +104,7 @@ func (nus *nus_SS) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (nus *nus_SS) MonthsNarrow() []string {
+- return nus.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -131,7 +114,7 @@ func (nus *nus_SS) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (nus *nus_SS) MonthsWide() []string {
+- return nus.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -177,73 +160,13 @@ func (nus *nus_SS) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'nus_SS' and handles both Whole and Real numbers based on 'v'
+ func (nus *nus_SS) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nus.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nus.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nus.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'nus_SS' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (nus *nus_SS) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nus.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, nus.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, nus.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'nus_SS'
+@@ -251,56 +174,7 @@ func (nus *nus_SS) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nus.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nus.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nus.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, nus.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nus.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'nus_SS'
+@@ -309,68 +183,7 @@ func (nus *nus_SS) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nus.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nus.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nus.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, nus.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nus.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, nus.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'nus_SS'
+@@ -378,23 +191,6 @@ func (nus *nus_SS) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -403,17 +199,6 @@ func (nus *nus_SS) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nus.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -422,17 +207,6 @@ func (nus *nus_SS) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nus.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -441,19 +215,6 @@ func (nus *nus_SS) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, nus.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nus.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,28 +223,6 @@ func (nus *nus_SS) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, nus.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, nus.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, nus.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -492,35 +231,6 @@ func (nus *nus_SS) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, nus.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nus.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, nus.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, nus.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -529,40 +239,6 @@ func (nus *nus_SS) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, nus.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nus.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, nus.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, nus.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -571,44 +247,5 @@ func (nus *nus_SS) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+-
+- if btz, ok := nus.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, nus.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nus.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, nus.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, nus.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+diff --git a/nyn/nyn.go b/nyn/nyn.go
+index 43be287..7fa6073 100644
+--- a/nyn/nyn.go
++++ b/nyn/nyn.go
+@@ -57,7 +57,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kurisito Atakaijire", "Kurisito Yaijire"},
+- timezones: map[string]string{"CHAST": "CHAST", "UYST": "UYST", "HADT": "HADT", "HKT": "HKT", "HNCU": "HNCU", "HECU": "HECU", "AST": "AST", "MESZ": "MESZ", "JST": "JST", "MYT": "MYT", "AKST": "AKST", "AKDT": "AKDT", "HNOG": "HNOG", "WEZ": "WEZ", "AWDT": "AWDT", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "MDT": "MDT", "PST": "PST", "HNT": "HNT", "AEST": "AEST", "LHST": "LHST", "OESZ": "OESZ", "WIB": "WIB", "WIT": "WIT", "ACWST": "ACWST", "IST": "IST", "TMT": "TMT", "CAT": "CAT", "CST": "CST", "AEDT": "AEDT", "ChST": "ChST", "ACDT": "ACDT", "COT": "COT", "ADT": "ADT", "GYT": "GYT", "HKST": "HKST", "NZST": "NZST", "CHADT": "CHADT", "JDT": "JDT", "EST": "EST", "BT": "BT", "ACST": "ACST", "OEZ": "OEZ", "WARST": "WARST", "GMT": "GMT", "ACWDT": "ACWDT", "SAST": "SAST", "CLT": "CLT", "TMST": "TMST", "VET": "VET", "AWST": "AWST", "HEEG": "HEEG", "COST": "COST", "SGT": "SGT", "HEOG": "HEOG", "HAT": "HAT", "HEPM": "HEPM", "GFT": "GFT", "PDT": "PDT", "WESZ": "WESZ", "WITA": "WITA", "HNPM": "HNPM", "MEZ": "MEZ", "∅∅∅": "∅∅∅", "ECT": "ECT", "WART": "WART", "HEPMX": "HEPMX", "HAST": "HAST", "LHDT": "LHDT", "BOT": "BOT", "WAT": "WAT", "WAST": "WAST", "UYT": "UYT", "CDT": "CDT", "MST": "MST", "HNPMX": "HNPMX", "SRT": "SRT", "ART": "ART", "ARST": "ARST", "CLST": "CLST", "HNEG": "HNEG", "EAT": "EAT", "EDT": "EDT"},
++ timezones: map[string]string{"TMT": "TMT", "∅∅∅": "∅∅∅", "NZST": "NZST", "UYST": "UYST", "WAST": "WAST", "CDT": "CDT", "ARST": "ARST", "SGT": "SGT", "OESZ": "OESZ", "WART": "WART", "CST": "CST", "JDT": "JDT", "HNOG": "HNOG", "EST": "EST", "HKST": "HKST", "AST": "AST", "HNEG": "HNEG", "HENOMX": "HENOMX", "PDT": "PDT", "HNCU": "HNCU", "HEOG": "HEOG", "CAT": "CAT", "BOT": "BOT", "MEZ": "MEZ", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "CHADT": "CHADT", "ART": "ART", "HADT": "HADT", "ACDT": "ACDT", "AWDT": "AWDT", "LHDT": "LHDT", "IST": "IST", "EDT": "EDT", "ACST": "ACST", "CHAST": "CHAST", "WEZ": "WEZ", "HEPMX": "HEPMX", "JST": "JST", "AKST": "AKST", "ChST": "ChST", "EAT": "EAT", "HAST": "HAST", "PST": "PST", "VET": "VET", "GMT": "GMT", "HNPM": "HNPM", "ACWDT": "ACWDT", "AKDT": "AKDT", "WIT": "WIT", "SAST": "SAST", "HKT": "HKT", "CLST": "CLST", "MDT": "MDT", "HNPMX": "HNPMX", "TMST": "TMST", "CLT": "CLT", "NZDT": "NZDT", "ADT": "ADT", "MYT": "MYT", "BT": "BT", "ECT": "ECT", "WIB": "WIB", "AWST": "AWST", "WESZ": "WESZ", "OEZ": "OEZ", "AEST": "AEST", "HECU": "HECU", "COST": "COST", "GFT": "GFT", "COT": "COT", "MST": "MST", "MESZ": "MESZ", "LHST": "LHST", "AEDT": "AEDT", "UYT": "UYT", "WAT": "WAT", "WARST": "WARST", "GYT": "GYT", "WITA": "WITA", "SRT": "SRT", "HEPM": "HEPM", "ACWST": "ACWST", "HNT": "HNT", "HAT": "HAT"},
+ }
+ }
+ 
+diff --git a/nyn_UG/nyn_UG.go b/nyn_UG/nyn_UG.go
+index d900ddc..2aa2fc3 100644
+--- a/nyn_UG/nyn_UG.go
++++ b/nyn_UG/nyn_UG.go
+@@ -42,22 +42,13 @@ type nyn_UG struct {
+ // New returns a new instance of translator for the 'nyn_UG' locale
+ func New() locales.Translator {
+ return &nyn_UG{
+- locale: "nyn_UG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "KBZ", "KBR", "KST", "KKN", "KTN", "KMK", "KMS", "KMN", "KMW", "KKM", "KNK", "KNB"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Okwokubanza", "Okwakabiri", "Okwakashatu", "Okwakana", "Okwakataana", "Okwamukaaga", "Okwamushanju", "Okwamunaana", "Okwamwenda", "Okwaikumi", "Okwaikumi na kumwe", "Okwaikumi na ibiri"},
+- daysAbbreviated: []string{"SAN", "ORK", "OKB", "OKS", "OKN", "OKT", "OMK"},
+- daysNarrow: []string{"S", "K", "R", "S", "N", "T", "M"},
+- daysWide: []string{"Sande", "Orwokubanza", "Orwakabiri", "Orwakashatu", "Orwakana", "Orwakataano", "Orwamukaaga"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kurisito Atakaijire", "Kurisito Yaijire"},
+- timezones: map[string]string{"EAT": "EAT", "CST": "CST", "ACWDT": "ACWDT", "HKT": "HKT", "CHADT": "CHADT", "JST": "JST", "TMT": "TMT", "OESZ": "OESZ", "HNCU": "HNCU", "UYT": "UYT", "SRT": "SRT", "AEDT": "AEDT", "ECT": "ECT", "WART": "WART", "HKST": "HKST", "CLT": "CLT", "MYT": "MYT", "AEST": "AEST", "HNPM": "HNPM", "BOT": "BOT", "ACDT": "ACDT", "WITA": "WITA", "MEZ": "MEZ", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "COT": "COT", "COST": "COST", "AKDT": "AKDT", "AWST": "AWST", "AST": "AST", "ADT": "ADT", "HNOG": "HNOG", "NZDT": "NZDT", "MST": "MST", "HNPMX": "HNPMX", "UYST": "UYST", "HADT": "HADT", "WIT": "WIT", "HNT": "HNT", "IST": "IST", "ARST": "ARST", "NZST": "NZST", "JDT": "JDT", "OEZ": "OEZ", "EDT": "EDT", "HEPMX": "HEPMX", "CDT": "CDT", "WESZ": "WESZ", "WAT": "WAT", "AKST": "AKST", "BT": "BT", "AWDT": "AWDT", "HNEG": "HNEG", "SAST": "SAST", "CLST": "CLST", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "EST": "EST", "VET": "VET", "HAT": "HAT", "GFT": "GFT", "GMT": "GMT", "WIB": "WIB", "WEZ": "WEZ", "LHDT": "LHDT", "WARST": "WARST", "HAST": "HAST", "HEOG": "HEOG", "PST": "PST", "PDT": "PDT", "WAST": "WAST", "SGT": "SGT", "MDT": "MDT", "ART": "ART", "CHAST": "CHAST", "CAT": "CAT", "HECU": "HECU", "GYT": "GYT", "HEPM": "HEPM", "ChST": "ChST", "ACWST": "ACWST", "LHST": "LHST", "TMST": "TMST", "ACST": "ACST"},
++ locale: "nyn_UG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"EST": "EST", "MDT": "MDT", "HAST": "HAST", "WARST": "WARST", "COT": "COT", "UYST": "UYST", "ACWDT": "ACWDT", "WAST": "WAST", "SAST": "SAST", "HEPM": "HEPM", "GMT": "GMT", "MESZ": "MESZ", "PDT": "PDT", "HNT": "HNT", "AST": "AST", "CLT": "CLT", "ARST": "ARST", "SGT": "SGT", "COST": "COST", "TMT": "TMT", "EAT": "EAT", "ACWST": "ACWST", "GFT": "GFT", "TMST": "TMST", "CLST": "CLST", "NZDT": "NZDT", "ACST": "ACST", "ACDT": "ACDT", "HKST": "HKST", "MST": "MST", "HNCU": "HNCU", "AKDT": "AKDT", "HEEG": "HEEG", "JST": "JST", "AWST": "AWST", "MYT": "MYT", "CHADT": "CHADT", "IST": "IST", "AEDT": "AEDT", "WAT": "WAT", "ECT": "ECT", "SRT": "SRT", "AEST": "AEST", "WEZ": "WEZ", "HEPMX": "HEPMX", "OEZ": "OEZ", "WITA": "WITA", "ART": "ART", "ChST": "ChST", "HNEG": "HNEG", "LHST": "LHST", "WESZ": "WESZ", "OESZ": "OESZ", "WIT": "WIT", "HKT": "HKT", "HEOG": "HEOG", "WIB": "WIB", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "GYT": "GYT", "HNOG": "HNOG", "CAT": "CAT", "HNPM": "HNPM", "WART": "WART", "∅∅∅": "∅∅∅", "HNNOMX": "HNNOMX", "CHAST": "CHAST", "NZST": "NZST", "MEZ": "MEZ", "AWDT": "AWDT", "UYT": "UYT", "PST": "PST", "VET": "VET", "EDT": "EDT", "CDT": "CDT", "AKST": "AKST", "LHDT": "LHDT", "JDT": "JDT", "CST": "CST", "BOT": "BOT", "HADT": "HADT", "BT": "BT", "HECU": "HECU", "HAT": "HAT", "ADT": "ADT"},
+ }
+ }
+ 
+@@ -110,7 +101,7 @@ func (nyn *nyn_UG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (nyn *nyn_UG) MonthsAbbreviated() []string {
+- return nyn.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -120,7 +111,7 @@ func (nyn *nyn_UG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (nyn *nyn_UG) MonthsNarrow() []string {
+- return nyn.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -130,7 +121,7 @@ func (nyn *nyn_UG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (nyn *nyn_UG) MonthsWide() []string {
+- return nyn.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,56 +181,7 @@ func (nyn *nyn_UG) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nyn.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nyn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nyn.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, nyn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nyn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'nyn_UG'
+@@ -248,64 +190,7 @@ func (nyn *nyn_UG) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := nyn.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, nyn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, nyn.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, nyn.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, nyn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'nyn_UG'
+@@ -313,27 +198,6 @@ func (nyn *nyn_UG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -342,17 +206,6 @@ func (nyn *nyn_UG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nyn.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -361,17 +214,6 @@ func (nyn *nyn_UG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nyn.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -380,19 +222,6 @@ func (nyn *nyn_UG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, nyn.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, nyn.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -401,19 +230,6 @@ func (nyn *nyn_UG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nyn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -422,26 +238,6 @@ func (nyn *nyn_UG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nyn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nyn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -450,30 +246,6 @@ func (nyn *nyn_UG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nyn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nyn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -482,34 +254,5 @@ func (nyn *nyn_UG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, nyn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, nyn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := nyn.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/om/om.go b/om/om.go
+index aac3370..fc20917 100644
+--- a/om/om.go
++++ b/om/om.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BCE", "CE"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"WIT": "WIT", "PST": "PST", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "ECT": "ECT", "CHADT": "CHADT", "LHST": "LHST", "CDT": "CDT", "HEPMX": "HEPMX", "CST": "CST", "BT": "BT", "AEDT": "AEDT", "HNPM": "HNPM", "MESZ": "MESZ", "WAST": "WAST", "HENOMX": "HENOMX", "SGT": "SGT", "AST": "AST", "AEST": "AEST", "SAST": "SAST", "GFT": "GFT", "WAT": "WAT", "HNCU": "HNCU", "GYT": "GYT", "UYST": "UYST", "AKDT": "AKDT", "SRT": "SRT", "HNT": "HNT", "HEPM": "HEPM", "COST": "COST", "HNNOMX": "HNNOMX", "HECU": "HECU", "JDT": "JDT", "ChST": "ChST", "WEZ": "WEZ", "WESZ": "WESZ", "VET": "VET", "HKT": "HKT", "CLT": "CLT", "HEEG": "HEEG", "HNPMX": "HNPMX", "BOT": "BOT", "WIB": "WIB", "AWST": "AWST", "CLST": "CLST", "TMST": "TMST", "AKST": "AKST", "ACST": "ACST", "OEZ": "OEZ", "HNOG": "HNOG", "PDT": "PDT", "CHAST": "CHAST", "MEZ": "MEZ", "NZDT": "NZDT", "JST": "JST", "UYT": "UYT", "NZST": "NZST", "EAT": "EAT", "WARST": "WARST", "EDT": "EDT", "ART": "ART", "IST": "IST", "ACDT": "ACDT", "HAST": "HAST", "HAT": "HAT", "LHDT": "LHDT", "GMT": "GMT", "EST": "EST", "ADT": "ADT", "HADT": "HADT", "ACWST": "ACWST", "HKST": "HKST", "TMT": "TMT", "OESZ": "OESZ", "MDT": "MDT", "MST": "MST", "MYT": "MYT", "ARST": "ARST", "HEOG": "HEOG", "WITA": "WITA", "CAT": "CAT", "WART": "WART", "COT": "COT", "ACWDT": "ACWDT"},
++ timezones: map[string]string{"CHADT": "CHADT", "WEZ": "WEZ", "HKT": "HKT", "ECT": "ECT", "HENOMX": "HENOMX", "MYT": "MYT", "PDT": "PDT", "HNCU": "HNCU", "HECU": "HECU", "EDT": "EDT", "TMT": "TMT", "PST": "PST", "GYT": "GYT", "CDT": "CDT", "AWST": "AWST", "OESZ": "OESZ", "CLT": "CLT", "MEZ": "MEZ", "ACWDT": "ACWDT", "OEZ": "OEZ", "NZDT": "NZDT", "∅∅∅": "∅∅∅", "BT": "BT", "CLST": "CLST", "ADT": "ADT", "COT": "COT", "COST": "COST", "NZST": "NZST", "CAT": "CAT", "GMT": "GMT", "ART": "ART", "ACDT": "ACDT", "LHST": "LHST", "HAT": "HAT", "WIT": "WIT", "HKST": "HKST", "EAT": "EAT", "MESZ": "MESZ", "TMST": "TMST", "WITA": "WITA", "WIB": "WIB", "UYST": "UYST", "AST": "AST", "MDT": "MDT", "HNEG": "HNEG", "LHDT": "LHDT", "JST": "JST", "ACWST": "ACWST", "AEST": "AEST", "HNT": "HNT", "HEEG": "HEEG", "AWDT": "AWDT", "HNPM": "HNPM", "AEDT": "AEDT", "HNPMX": "HNPMX", "WAST": "WAST", "WART": "WART", "GFT": "GFT", "HADT": "HADT", "ACST": "ACST", "HEPM": "HEPM", "IST": "IST", "UYT": "UYT", "WESZ": "WESZ", "VET": "VET", "EST": "EST", "ChST": "ChST", "CHAST": "CHAST", "SAST": "SAST", "MST": "MST", "HAST": "HAST", "JDT": "JDT", "SGT": "SGT", "WAT": "WAT", "AKDT": "AKDT", "HEOG": "HEOG", "ARST": "ARST", "SRT": "SRT", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "CST": "CST", "BOT": "BOT", "AKST": "AKST", "WARST": "WARST", "HNOG": "HNOG"},
+ }
+ }
+ 
+diff --git a/om_ET/om_ET.go b/om_ET/om_ET.go
+index 0c1bcb4..7a107c8 100644
+--- a/om_ET/om_ET.go
++++ b/om_ET/om_ET.go
+@@ -42,32 +42,13 @@ type om_ET struct {
+ // New returns a new instance of translator for the 'om_ET' locale
+ func New() locales.Translator {
+ return &om_ET{
+- locale: "om_ET",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Ama", "Gur", "Bit", "Elb", "Cam", "Wax", "Ado", "Hag", "Ful", "Onk", "Sad", "Mud"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Amajjii", "Guraandhala", "Bitooteessa", "Elba", "Caamsa", "Waxabajjii", "Adooleessa", "Hagayya", "Fuulbana", "Onkololeessa", "Sadaasa", "Muddee"},
+- daysAbbreviated: []string{"Dil", "Wix", "Qib", "Rob", "Kam", "Jim", "San"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Dil", "Wix", "Qib", "Rob", "Kam", "Jim", "San"},
+- daysWide: []string{"Dilbata", "Wiixata", "Qibxata", "Roobii", "Kamiisa", "Jimaata", "Sanbata"},
+- periodsAbbreviated: []string{"WD", "WB"},
+- periodsNarrow: []string{"WD", "WB"},
+- periodsWide: []string{"WD", "WB"},
+- erasAbbreviated: []string{"BCE", "CE"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"EST": "EST", "HEPMX": "HEPMX", "UYST": "UYST", "CST": "CST", "GYT": "GYT", "CAT": "CAT", "OESZ": "OESZ", "MDT": "MDT", "UYT": "UYT", "CHADT": "CHADT", "GFT": "GFT", "EAT": "EAT", "ECT": "ECT", "SGT": "SGT", "BOT": "BOT", "WAST": "WAST", "AKDT": "AKDT", "ACWDT": "ACWDT", "CLST": "CLST", "GMT": "GMT", "MYT": "MYT", "SAST": "SAST", "JST": "JST", "JDT": "JDT", "HNCU": "HNCU", "WITA": "WITA", "HNPM": "HNPM", "HEPM": "HEPM", "NZST": "NZST", "ACDT": "ACDT", "COST": "COST", "WARST": "WARST", "COT": "COT", "WIT": "WIT", "ACWST": "ACWST", "HNT": "HNT", "IST": "IST", "∅∅∅": "∅∅∅", "ACST": "ACST", "AKST": "AKST", "HEOG": "HEOG", "TMST": "TMST", "WART": "WART", "EDT": "EDT", "WIB": "WIB", "VET": "VET", "WESZ": "WESZ", "ARST": "ARST", "HNOG": "HNOG", "CLT": "CLT", "HNNOMX": "HNNOMX", "AWST": "AWST", "HEEG": "HEEG", "HADT": "HADT", "SRT": "SRT", "AEDT": "AEDT", "HKT": "HKT", "MST": "MST", "HNPMX": "HNPMX", "AST": "AST", "WEZ": "WEZ", "AEST": "AEST", "HKST": "HKST", "CHAST": "CHAST", "HNEG": "HNEG", "OEZ": "OEZ", "HAT": "HAT", "ChST": "ChST", "WAT": "WAT", "PDT": "PDT", "AWDT": "AWDT", "MESZ": "MESZ", "NZDT": "NZDT", "ADT": "ADT", "HAST": "HAST", "HECU": "HECU", "CDT": "CDT", "LHDT": "LHDT", "TMT": "TMT", "HENOMX": "HENOMX", "ART": "ART", "MEZ": "MEZ", "LHST": "LHST", "BT": "BT", "PST": "PST"},
++ locale: "om_ET",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNEG": "HNEG", "BT": "BT", "ACWST": "ACWST", "UYT": "UYT", "WEZ": "WEZ", "OEZ": "OEZ", "HAT": "HAT", "ACST": "ACST", "TMT": "TMT", "MST": "MST", "AST": "AST", "HNOG": "HNOG", "HNCU": "HNCU", "OESZ": "OESZ", "WIT": "WIT", "HKT": "HKT", "CAT": "CAT", "ChST": "ChST", "PDT": "PDT", "LHDT": "LHDT", "AEDT": "AEDT", "ECT": "ECT", "ARST": "ARST", "HENOMX": "HENOMX", "HEPM": "HEPM", "AEST": "AEST", "UYST": "UYST", "CLT": "CLT", "WITA": "WITA", "ACDT": "ACDT", "TMST": "TMST", "ACWDT": "ACWDT", "HNT": "HNT", "HADT": "HADT", "HEEG": "HEEG", "COST": "COST", "EST": "EST", "NZDT": "NZDT", "WIB": "WIB", "BOT": "BOT", "IST": "IST", "HNPMX": "HNPMX", "SAST": "SAST", "SRT": "SRT", "PST": "PST", "CHADT": "CHADT", "WAST": "WAST", "AKDT": "AKDT", "COT": "COT", "HEOG": "HEOG", "EDT": "EDT", "HKST": "HKST", "JDT": "JDT", "MDT": "MDT", "WESZ": "WESZ", "SGT": "SGT", "WAT": "WAT", "CST": "CST", "CDT": "CDT", "ART": "ART", "EAT": "EAT", "MESZ": "MESZ", "AKST": "AKST", "NZST": "NZST", "GMT": "GMT", "AWST": "AWST", "LHST": "LHST", "CHAST": "CHAST", "AWDT": "AWDT", "WARST": "WARST", "ADT": "ADT", "WART": "WART", "CLST": "CLST", "HNPM": "HNPM", "HNNOMX": "HNNOMX", "MYT": "MYT", "∅∅∅": "∅∅∅", "GFT": "GFT", "GYT": "GYT", "MEZ": "MEZ", "VET": "VET", "HECU": "HECU", "HEPMX": "HEPMX", "HAST": "HAST", "JST": "JST"},
+ }
+ }
+ 
+@@ -120,7 +101,7 @@ func (om *om_ET) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (om *om_ET) MonthsAbbreviated() []string {
+- return om.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -130,7 +111,7 @@ func (om *om_ET) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (om *om_ET) MonthsNarrow() []string {
+- return om.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -140,7 +121,7 @@ func (om *om_ET) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (om *om_ET) MonthsWide() []string {
+- return om.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -186,73 +167,13 @@ func (om *om_ET) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'om_ET' and handles both Whole and Real numbers based on 'v'
+ func (om *om_ET) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, om.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, om.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, om.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'om_ET' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (om *om_ET) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, om.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, om.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, om.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'om_ET'
+@@ -260,56 +181,7 @@ func (om *om_ET) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := om.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, om.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, om.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, om.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, om.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'om_ET'
+@@ -318,64 +190,7 @@ func (om *om_ET) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := om.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, om.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, om.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, om.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, om.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'om_ET'
+@@ -383,27 +198,6 @@ func (om *om_ET) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -412,21 +206,6 @@ func (om *om_ET) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, om.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -435,21 +214,6 @@ func (om *om_ET) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, om.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -458,19 +222,6 @@ func (om *om_ET) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, om.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, om.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -479,28 +230,6 @@ func (om *om_ET) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, om.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, om.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, om.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -509,35 +238,6 @@ func (om *om_ET) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, om.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, om.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, om.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, om.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -546,40 +246,6 @@ func (om *om_ET) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, om.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, om.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, om.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, om.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -588,44 +254,5 @@ func (om *om_ET) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, om.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, om.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, om.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, om.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := om.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/om_KE/om_KE.go b/om_KE/om_KE.go
+index 8c6d339..627e816 100644
+--- a/om_KE/om_KE.go
++++ b/om_KE/om_KE.go
+@@ -42,32 +42,18 @@ type om_KE struct {
+ // New returns a new instance of translator for the 'om_KE' locale
+ func New() locales.Translator {
+ return &om_KE{
+- locale: "om_KE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "Ksh", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Ama", "Gur", "Bit", "Elb", "Cam", "Wax", "Ado", "Hag", "Ful", "Onk", "Sad", "Mud"},
+- monthsNarrow: []string{"", "A", "G", "B", "E", "C", "W", "A", "H", "F", "O", "S", "M"},
+- monthsWide: []string{"", "Amajjii", "Guraandhala", "Bitooteessa", "Elba", "Caamsa", "Waxabajjii", "Adooleessa", "Hagayya", "Fuulbana", "Onkololeessa", "Sadaasa", "Muddee"},
+- daysAbbreviated: []string{"Dil", "Wix", "Qib", "Rob", "Kam", "Jim", "San"},
+- daysNarrow: []string{"D", "W", "Q", "R", "K", "J", "S"},
+- daysShort: []string{"Dil", "Wix", "Qib", "Rob", "Kam", "Jim", "San"},
+- daysWide: []string{"Dilbata", "Wiixata", "Qibxata", "Roobii", "Kamiisa", "Jimaata", "Sanbata"},
+- periodsAbbreviated: []string{"WD", "WB"},
+- periodsNarrow: []string{"WD", "WB"},
+- periodsWide: []string{"WD", "WB"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"HNOG": "HNOG", "AWST": "AWST", "HENOMX": "HENOMX", "WIB": "WIB", "HEPMX": "HEPMX", "PST": "PST", "WEZ": "WEZ", "HEPM": "HEPM", "HNEG": "HNEG", "WART": "WART", "GMT": "GMT", "ART": "ART", "GFT": "GFT", "WARST": "WARST", "HAST": "HAST", "MESZ": "MESZ", "EAT": "EAT", "COT": "COT", "PDT": "PDT", "UYST": "UYST", "CST": "CST", "WESZ": "WESZ", "ACWDT": "ACWDT", "LHST": "LHST", "EST": "EST", "AST": "AST", "MEZ": "MEZ", "SAST": "SAST", "JST": "JST", "CLST": "CLST", "BOT": "BOT", "∅∅∅": "∅∅∅", "HEOG": "HEOG", "HKT": "HKT", "WITA": "WITA", "ACST": "ACST", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "MST": "MST", "WIT": "WIT", "ARST": "ARST", "NZST": "NZST", "HNCU": "HNCU", "ACDT": "ACDT", "WAT": "WAT", "AKDT": "AKDT", "VET": "VET", "HNT": "HNT", "AWDT": "AWDT", "WAST": "WAST", "MYT": "MYT", "GYT": "GYT", "AKST": "AKST", "BT": "BT", "HKST": "HKST", "CHADT": "CHADT", "IST": "IST", "JDT": "JDT", "HNPMX": "HNPMX", "COST": "COST", "ChST": "ChST", "CDT": "CDT", "HAT": "HAT", "HECU": "HECU", "HNPM": "HNPM", "LHDT": "LHDT", "CHAST": "CHAST", "TMT": "TMT", "HEEG": "HEEG", "ECT": "ECT", "OEZ": "OEZ", "ACWST": "ACWST", "EDT": "EDT", "ADT": "ADT", "UYT": "UYT", "HADT": "HADT", "SRT": "SRT", "SGT": "SGT", "AEST": "AEST", "NZDT": "NZDT", "CAT": "CAT", "MDT": "MDT", "CLT": "CLT", "TMST": "TMST", "AEDT": "AEDT"},
++ locale: "om_KE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "Ksh", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsNarrow: []string{"", "A", "G", "B", "E", "C", "W", "A", "H", "F", "O", "S", "M"},
++ daysNarrow: []string{"D", "W", "Q", "R", "K", "J", "S"},
++ erasAbbreviated: []string{"", ""},
++ erasNarrow: []string{"", ""},
++ erasWide: []string{"", ""},
++ timezones: map[string]string{"WESZ": "WESZ", "WART": "WART", "EST": "EST", "BOT": "BOT", "UYST": "UYST", "ACWST": "ACWST", "CHAST": "CHAST", "VET": "VET", "HKST": "HKST", "MDT": "MDT", "NZDT": "NZDT", "HADT": "HADT", "AEDT": "AEDT", "WEZ": "WEZ", "HECU": "HECU", "HEPMX": "HEPMX", "AKST": "AKST", "CLST": "CLST", "WITA": "WITA", "ACDT": "ACDT", "MESZ": "MESZ", "HNPM": "HNPM", "JDT": "JDT", "CLT": "CLT", "CDT": "CDT", "ChST": "ChST", "UYT": "UYT", "TMT": "TMT", "GMT": "GMT", "HAST": "HAST", "ACST": "ACST", "PDT": "PDT", "OESZ": "OESZ", "WIB": "WIB", "MEZ": "MEZ", "PST": "PST", "EAT": "EAT", "LHDT": "LHDT", "MYT": "MYT", "IST": "IST", "ECT": "ECT", "ART": "ART", "ARST": "ARST", "WIT": "WIT", "SAST": "SAST", "GYT": "GYT", "TMST": "TMST", "NZST": "NZST", "CHADT": "CHADT", "AEST": "AEST", "HENOMX": "HENOMX", "HNCU": "HNCU", "WARST": "WARST", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "AST": "AST", "HEEG": "HEEG", "OEZ": "OEZ", "HNOG": "HNOG", "JST": "JST", "BT": "BT", "COST": "COST", "CAT": "CAT", "LHST": "LHST", "AKDT": "AKDT", "GFT": "GFT", "EDT": "EDT", "HKT": "HKT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "SGT": "SGT", "COT": "COT", "CST": "CST", "SRT": "SRT", "ACWDT": "ACWDT", "WAT": "WAT", "HNT": "HNT", "AWDT": "AWDT", "HEPM": "HEPM", "HNPMX": "HNPMX", "WAST": "WAST", "HAT": "HAT", "MST": "MST", "ADT": "ADT", "AWST": "AWST"},
+ }
+ }
+ 
+@@ -120,7 +106,7 @@ func (om *om_KE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (om *om_KE) MonthsAbbreviated() []string {
+- return om.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -140,7 +126,7 @@ func (om *om_KE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (om *om_KE) MonthsWide() []string {
+- return om.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -186,73 +172,13 @@ func (om *om_KE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'om_KE' and handles both Whole and Real numbers based on 'v'
+ func (om *om_KE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, om.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, om.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, om.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'om_KE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (om *om_KE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, om.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, om.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, om.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'om_KE'
+@@ -260,56 +186,7 @@ func (om *om_KE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := om.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, om.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, om.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, om.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, om.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'om_KE'
+@@ -318,64 +195,7 @@ func (om *om_KE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := om.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, om.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, om.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, om.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, om.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'om_KE'
+@@ -383,27 +203,6 @@ func (om *om_KE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -412,21 +211,6 @@ func (om *om_KE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, om.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -435,21 +219,6 @@ func (om *om_KE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, om.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -458,19 +227,6 @@ func (om *om_KE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, om.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, om.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/or/or.go b/or/or.go
+index 2a93a6a..632c9ec 100644
+--- a/or/or.go
++++ b/or/or.go
+@@ -63,7 +63,7 @@ func New() locales.Translator {
+ periodsAbbreviated: []string{"am", "pm"},
+ periodsNarrow: []string{"am", "pm"},
+ periodsWide: []string{"am", "pm"},
+- timezones: map[string]string{"COT": "COT", "EDT": "EDT", "PST": "PST", "CHAST": "CHAST", "HEEG": "HEEG", "BOT": "BOT", "OEZ": "OEZ", "WART": "WART", "GYT": "GYT", "NZST": "NZST", "NZDT": "NZDT", "MST": "MST", "HNT": "HNT", "HAT": "HAT", "CLT": "CLT", "MESZ": "MESZ", "MDT": "MDT", "MYT": "MYT", "BT": "BT", "WESZ": "WESZ", "HEPM": "HEPM", "HNPM": "HNPM", "AST": "AST", "HNOG": "HNOG", "WITA": "WITA", "AEST": "AEST", "AWDT": "AWDT", "GMT": "GMT", "PDT": "PDT", "JST": "JST", "TMT": "TMT", "ChST": "ChST", "HKST": "HKST", "JDT": "JDT", "WAST": "WAST", "ECT": "ECT", "HEPMX": "HEPMX", "WIT": "WIT", "HADT": "HADT", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "HECU": "HECU", "ACWDT": "ACWDT", "COST": "COST", "IST": "IST", "ACST": "ACST", "WAT": "WAT", "ART": "ART", "ARST": "ARST", "HEOG": "HEOG", "CHADT": "CHADT", "LHDT": "LHDT", "CLST": "CLST", "AKST": "AKST", "AKDT": "AKDT", "HAST": "HAST", "HKT": "HKT", "LHST": "LHST", "CST": "CST", "OESZ": "OESZ", "CAT": "CAT", "HENOMX": "HENOMX", "WARST": "WARST", "HNPMX": "HNPMX", "TMST": "TMST", "CDT": "CDT", "ADT": "ADT", "UYST": "UYST", "WIB": "WIB", "SRT": "SRT", "EAT": "EAT", "EST": "EST", "ACWST": "ACWST", "WEZ": "WEZ", "AWST": "AWST", "SAST": "SAST", "GFT": "GFT", "MEZ": "MEZ", "HNEG": "HNEG", "ACDT": "ACDT", "∅∅∅": "∅∅∅", "SGT": "SGT", "UYT": "UYT", "VET": "VET", "AEDT": "AEDT"},
++ timezones: map[string]string{"MESZ": "MESZ", "JST": "JST", "HNCU": "HNCU", "HNT": "HNT", "HNOG": "HNOG", "EDT": "EDT", "ADT": "ADT", "BOT": "BOT", "MYT": "MYT", "IST": "IST", "VET": "VET", "OEZ": "OEZ", "GFT": "GFT", "HAT": "HAT", "GMT": "GMT", "CAT": "CAT", "HNEG": "HNEG", "HNPM": "HNPM", "ACWDT": "ACWDT", "GYT": "GYT", "COST": "COST", "EST": "EST", "TMST": "TMST", "CDT": "CDT", "AST": "AST", "MEZ": "MEZ", "LHDT": "LHDT", "WIB": "WIB", "ACDT": "ACDT", "HEPM": "HEPM", "UYST": "UYST", "PST": "PST", "PDT": "PDT", "AKST": "AKST", "HKST": "HKST", "ECT": "ECT", "HADT": "HADT", "UYT": "UYT", "∅∅∅": "∅∅∅", "WAT": "WAT", "NZST": "NZST", "ARST": "ARST", "SRT": "SRT", "ACST": "ACST", "ACWST": "ACWST", "HECU": "HECU", "COT": "COT", "HKT": "HKT", "WITA": "WITA", "JDT": "JDT", "AWDT": "AWDT", "AEST": "AEST", "AEDT": "AEDT", "CHAST": "CHAST", "HNPMX": "HNPMX", "SGT": "SGT", "HENOMX": "HENOMX", "WEZ": "WEZ", "WESZ": "WESZ", "WARST": "WARST", "SAST": "SAST", "TMT": "TMT", "HEPMX": "HEPMX", "HEOG": "HEOG", "NZDT": "NZDT", "EAT": "EAT", "AWST": "AWST", "LHST": "LHST", "CLT": "CLT", "CLST": "CLST", "CHADT": "CHADT", "BT": "BT", "WART": "WART", "CST": "CST", "HAST": "HAST", "HEEG": "HEEG", "AKDT": "AKDT", "OESZ": "OESZ", "WIT": "WIT", "ART": "ART", "MDT": "MDT", "MST": "MST", "HNNOMX": "HNNOMX", "WAST": "WAST", "ChST": "ChST"},
+ }
+ }
+ 
+diff --git a/or_IN/or_IN.go b/or_IN/or_IN.go
+index de3cf52..c29a551 100644
+--- a/or_IN/or_IN.go
++++ b/or_IN/or_IN.go
+@@ -10,60 +10,45 @@ import (
+ )
+ 
+ type or_IN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'or_IN' locale
+ func New() locales.Translator {
+ return &or_IN{
+- locale: "or_IN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "ଜାନୁଆରୀ", "ଫେବୃଆରୀ", "ମାର୍ଚ୍ଚ", "ଅପ୍ରେଲ", "ମଇ", "ଜୁନ", "ଜୁଲାଇ", "ଅଗଷ୍ଟ", "ସେପ୍ଟେମ୍ବର", "ଅକ୍ଟୋବର", "ନଭେମ୍ବର", "ଡିସେମ୍ବର"},
+- monthsNarrow: []string{"", "ଜା", "ଫେ", "ମା", "ଅ", "ମଇ", "ଜୁ", "ଜୁ", "ଅ", "ସେ", "ଅ", "ନ", "ଡି"},
+- monthsWide: []string{"", "ଜାନୁଆରୀ", "ଫେବୃଆରୀ", "ମାର୍ଚ୍ଚ", "ଅପ୍ରେଲ", "ମଇ", "ଜୁନ", "ଜୁଲାଇ", "ଅଗଷ୍ଟ", "ସେପ୍ଟେମ୍ବର", "ଅକ୍ଟୋବର", "ନଭେମ୍ବର", "ଡିସେମ୍ବର"},
+- daysAbbreviated: []string{"ରବି", "ସୋମ", "ମଙ୍ଗଳ", "ବୁଧ", "ଗୁରୁ", "ଶୁକ୍ର", "ଶନି"},
+- daysNarrow: []string{"ର", "ସୋ", "ମ", "ବୁ", "ଗୁ", "ଶୁ", "ଶ"},
+- daysWide: []string{"ରବିବାର", "ସୋମବାର", "ମଙ୍ଗଳବାର", "ବୁଧବାର", "ଗୁରୁବାର", "ଶୁକ୍ରବାର", "ଶନିବାର"},
+- periodsAbbreviated: []string{"am", "pm"},
+- periodsNarrow: []string{"am", "pm"},
+- periodsWide: []string{"am", "pm"},
+- timezones: map[string]string{"EST": "EST", "CST": "CST", "MDT": "MDT", "BT": "BT", "MEZ": "MEZ", "CLT": "CLT", "HNPMX": "HNPMX", "ACST": "ACST", "HENOMX": "HENOMX", "HECU": "HECU", "MST": "MST", "SRT": "SRT", "HAT": "HAT", "CLST": "CLST", "UYT": "UYT", "HAST": "HAST", "HNOG": "HNOG", "HEEG": "HEEG", "ACDT": "ACDT", "WARST": "WARST", "ACWST": "ACWST", "AEST": "AEST", "NZST": "NZST", "SAST": "SAST", "EAT": "EAT", "ADT": "ADT", "VET": "VET", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "JST": "JST", "OEZ": "OEZ", "ChST": "ChST", "OESZ": "OESZ", "COST": "COST", "WESZ": "WESZ", "HKST": "HKST", "HEPM": "HEPM", "JDT": "JDT", "HNEG": "HNEG", "AKDT": "AKDT", "UYST": "UYST", "WIB": "WIB", "HNPM": "HNPM", "LHDT": "LHDT", "GFT": "GFT", "SGT": "SGT", "ART": "ART", "WAT": "WAT", "CAT": "CAT", "HEPMX": "HEPMX", "AKST": "AKST", "MYT": "MYT", "HKT": "HKT", "AWDT": "AWDT", "CHADT": "CHADT", "LHST": "LHST", "ECT": "ECT", "PST": "PST", "AEDT": "AEDT", "AWST": "AWST", "COT": "COT", "HNT": "HNT", "WART": "WART", "EDT": "EDT", "HADT": "HADT", "BOT": "BOT", "WAST": "WAST", "HNCU": "HNCU", "CDT": "CDT", "TMT": "TMT", "AST": "AST", "ACWDT": "ACWDT", "PDT": "PDT", "WEZ": "WEZ", "NZDT": "NZDT", "IST": "IST", "TMST": "TMST", "HNNOMX": "HNNOMX", "GMT": "GMT", "WIT": "WIT", "ARST": "ARST", "HEOG": "HEOG", "WITA": "WITA", "CHAST": "CHAST", "GYT": "GYT"},
++ locale: "or_IN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MEZ": "MEZ", "ACST": "ACST", "AWST": "AWST", "PDT": "PDT", "WAT": "WAT", "OEZ": "OEZ", "NZST": "NZST", "AWDT": "AWDT", "HEPM": "HEPM", "WEZ": "WEZ", "TMT": "TMT", "CAT": "CAT", "LHST": "LHST", "∅∅∅": "∅∅∅", "WITA": "WITA", "ECT": "ECT", "ACWDT": "ACWDT", "WESZ": "WESZ", "OESZ": "OESZ", "HEOG": "HEOG", "ChST": "ChST", "SRT": "SRT", "ACDT": "ACDT", "PST": "PST", "WAST": "WAST", "HKT": "HKT", "ART": "ART", "HENOMX": "HENOMX", "JDT": "JDT", "WIT": "WIT", "HKST": "HKST", "CLST": "CLST", "CST": "CST", "ACWST": "ACWST", "AEDT": "AEDT", "CHADT": "CHADT", "HECU": "HECU", "CLT": "CLT", "GMT": "GMT", "SGT": "SGT", "HNCU": "HNCU", "HNPMX": "HNPMX", "AKST": "AKST", "WARST": "WARST", "SAST": "SAST", "EDT": "EDT", "HADT": "HADT", "LHDT": "LHDT", "WART": "WART", "HNOG": "HNOG", "EST": "EST", "CDT": "CDT", "MST": "MST", "HEEG": "HEEG", "MYT": "MYT", "IST": "IST", "VET": "VET", "AKDT": "AKDT", "HNEG": "HNEG", "COT": "COT", "TMST": "TMST", "AST": "AST", "ARST": "ARST", "HAST": "HAST", "BT": "BT", "UYT": "UYT", "UYST": "UYST", "HAT": "HAT", "WIB": "WIB", "EAT": "EAT", "AEST": "AEST", "GFT": "GFT", "GYT": "GYT", "COST": "COST", "NZDT": "NZDT", "BOT": "BOT", "MESZ": "MESZ", "MDT": "MDT", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "JST": "JST", "CHAST": "CHAST", "HEPMX": "HEPMX", "HNT": "HNT", "ADT": "ADT"},
+ }
+ }
+ 
+@@ -116,7 +101,7 @@ func (or *or_IN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (or *or_IN) MonthsAbbreviated() []string {
+- return or.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -126,7 +111,7 @@ func (or *or_IN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (or *or_IN) MonthsNarrow() []string {
+- return or.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -136,7 +121,7 @@ func (or *or_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (or *or_IN) MonthsWide() []string {
+- return or.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -182,82 +167,13 @@ func (or *or_IN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'or_IN' and handles both Whole and Real numbers based on 'v'
+ func (or *or_IN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, or.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, or.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, or.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'or_IN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (or *or_IN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, or.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, or.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, or.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'or_IN'
+@@ -265,69 +181,7 @@ func (or *or_IN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := or.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, or.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, or.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(or.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, or.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, or.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, or.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'or_IN'
+@@ -336,81 +190,7 @@ func (or *or_IN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := or.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, or.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, or.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(or.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, or.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, or.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(or.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, or.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, or.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'or_IN'
+@@ -418,17 +198,6 @@ func (or *or_IN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -437,17 +206,6 @@ func (or *or_IN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, or.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -456,17 +214,6 @@ func (or *or_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, or.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,19 +222,6 @@ func (or *or_IN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, or.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, or.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -496,28 +230,6 @@ func (or *or_IN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, or.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, or.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, or.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -526,35 +238,6 @@ func (or *or_IN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, or.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, or.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, or.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, or.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -563,40 +246,6 @@ func (or *or_IN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, or.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, or.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, or.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, or.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -605,44 +254,5 @@ func (or *or_IN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, or.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, or.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, or.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, or.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := or.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/os/os.go b/os/os.go
+index 845b545..bbdc547 100644
+--- a/os/os.go
++++ b/os/os.go
+@@ -69,7 +69,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"н.д.а.", "н.д."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"EAT": "EAT", "WAST": "WAST", "HENOMX": "HENOMX", "MST": "MST", "ACWDT": "ACWDT", "CLST": "CLST", "HEEG": "HEEG", "HNPMX": "HNPMX", "PST": "PST", "HNOG": "HNOG", "AWDT": "AWDT", "MESZ": "Астӕуккаг Европӕйаг сӕрдыгон рӕстӕг", "CHADT": "CHADT", "CLT": "CLT", "JDT": "JDT", "WART": "WART", "EST": "EST", "EDT": "EDT", "AKDT": "AKDT", "ART": "ART", "WITA": "WITA", "COT": "COT", "NZST": "NZST", "WESZ": "Ныгъуылӕн Европӕйаг сӕрдыгон рӕстӕг", "LHDT": "LHDT", "CHAST": "CHAST", "AKST": "AKST", "CST": "CST", "UYT": "UYT", "JST": "JST", "BOT": "BOT", "OESZ": "Скӕсӕн Европӕйаг сӕрдыгон рӕстӕг", "GMT": "Гринвичы рӕстӕмбис рӕстӕг", "AST": "AST", "HAST": "HAST", "PDT": "PDT", "AEST": "AEST", "AEDT": "AEDT", "ACST": "ACST", "CAT": "CAT", "OEZ": "Скӕсӕн Европӕйаг стандартон рӕстӕг", "∅∅∅": "∅∅∅", "SRT": "SRT", "HKST": "HKST", "SAST": "SAST", "TMT": "TMT", "ECT": "ECT", "HEPMX": "HEPMX", "MYT": "MYT", "BT": "BT", "TMST": "TMST", "WARST": "WARST", "ADT": "ADT", "WIB": "WIB", "HNT": "HNT", "HAT": "HAT", "HEOG": "HEOG", "AWST": "AWST", "ChST": "ChST", "HNNOMX": "HNNOMX", "MDT": "MDT", "WEZ": "Ныгъуылӕн Европӕйаг стандартон рӕстӕг", "HNPM": "HNPM", "GFT": "GFT", "GYT": "GYT", "ACWST": "ACWST", "HKT": "HKT", "NZDT": "NZDT", "HNEG": "HNEG", "ACDT": "ACDT", "ARST": "ARST", "MEZ": "Астӕуккаг Европӕйаг стандартон рӕстӕг", "LHST": "LHST", "COST": "COST", "CDT": "CDT", "UYST": "UYST", "WIT": "WIT", "SGT": "SGT", "HECU": "HECU", "VET": "VET", "HEPM": "HEPM", "WAT": "WAT", "HNCU": "HNCU", "HADT": "HADT", "IST": "IST"},
++ timezones: map[string]string{"EST": "EST", "WITA": "WITA", "MEZ": "Астӕуккаг Европӕйаг стандартон рӕстӕг", "HEPMX": "HEPMX", "∅∅∅": "∅∅∅", "COST": "COST", "GFT": "GFT", "ADT": "ADT", "HADT": "HADT", "AWST": "AWST", "LHDT": "LHDT", "VET": "VET", "AKST": "AKST", "AKDT": "AKDT", "ChST": "ChST", "MYT": "MYT", "HEPM": "HEPM", "JDT": "JDT", "UYT": "UYT", "UYST": "UYST", "NZST": "NZST", "NZDT": "NZDT", "GYT": "GYT", "EAT": "EAT", "HENOMX": "HENOMX", "OESZ": "Скӕсӕн Европӕйаг сӕрдыгон рӕстӕг", "HNT": "HNT", "EDT": "EDT", "HNNOMX": "HNNOMX", "SRT": "SRT", "MESZ": "Астӕуккаг Европӕйаг сӕрдыгон рӕстӕг", "HEOG": "HEOG", "MST": "MST", "HNPMX": "HNPMX", "HNEG": "HNEG", "HNCU": "HNCU", "HNPM": "HNPM", "IST": "IST", "PDT": "PDT", "WIT": "WIT", "BOT": "BOT", "CAT": "CAT", "CST": "CST", "CDT": "CDT", "GMT": "Гринвичы рӕстӕмбис рӕстӕг", "AEST": "AEST", "AEDT": "AEDT", "TMT": "TMT", "TMST": "TMST", "WIB": "WIB", "ART": "ART", "ACST": "ACST", "ACDT": "ACDT", "HEEG": "HEEG", "MDT": "MDT", "ECT": "ECT", "HECU": "HECU", "OEZ": "Скӕсӕн Европӕйаг стандартон рӕстӕг", "WART": "WART", "ARST": "ARST", "AWDT": "AWDT", "JST": "JST", "BT": "BT", "ACWST": "ACWST", "WEZ": "Ныгъуылӕн Европӕйаг стандартон рӕстӕг", "HNOG": "HNOG", "HKT": "HKT", "WESZ": "Ныгъуылӕн Европӕйаг сӕрдыгон рӕстӕг", "COT": "COT", "CLST": "CLST", "LHST": "LHST", "PST": "PST", "WAT": "WAT", "WARST": "WARST", "CHADT": "CHADT", "SAST": "SAST", "CLT": "CLT", "HKST": "HKST", "AST": "AST", "HAST": "HAST", "ACWDT": "ACWDT", "CHAST": "CHAST", "SGT": "SGT", "WAST": "WAST", "HAT": "HAT"},
+ }
+ }
+ 
+diff --git a/os_GE/os_GE.go b/os_GE/os_GE.go
+index 558372d..36211d5 100644
+--- a/os_GE/os_GE.go
++++ b/os_GE/os_GE.go
+@@ -10,66 +10,45 @@ import (
+ )
+ 
+ type os_GE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'os_GE' locale
+ func New() locales.Translator {
+ return &os_GE{
+- locale: "os_GE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "янв.", "фев.", "мар.", "апр.", "майы", "июны", "июлы", "авг.", "сен.", "окт.", "ноя.", "дек."},
+- monthsNarrow: []string{"", "Я", "Ф", "М", "А", "М", "И", "И", "А", "С", "О", "Н", "Д"},
+- monthsWide: []string{"", "январы", "февралы", "мартъийы", "апрелы", "майы", "июны", "июлы", "августы", "сентябры", "октябры", "ноябры", "декабры"},
+- daysAbbreviated: []string{"хцб", "крс", "дцг", "ӕрт", "цпр", "мрб", "сбт"},
+- daysNarrow: []string{"Х", "К", "Д", "Ӕ", "Ц", "М", "С"},
+- daysWide: []string{"хуыцаубон", "къуырисӕр", "дыццӕг", "ӕртыццӕг", "цыппӕрӕм", "майрӕмбон", "сабат"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsWide: []string{"ӕмбисбоны размӕ", "ӕмбисбоны фӕстӕ"},
+- erasAbbreviated: []string{"н.д.а.", "н.д."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"HNOG": "HNOG", "WEZ": "Ныгъуылӕн Европӕйаг стандартон рӕстӕг", "TMT": "TMT", "OEZ": "Скӕсӕн Европӕйаг стандартон рӕстӕг", "WART": "WART", "HAST": "HAST", "BT": "BT", "ARST": "ARST", "NZST": "NZST", "ACST": "ACST", "ADT": "ADT", "GYT": "GYT", "MYT": "MYT", "UYST": "UYST", "WIB": "WIB", "SRT": "SRT", "JDT": "JDT", "GFT": "GFT", "ChST": "ChST", "WARST": "WARST", "COT": "COT", "EST": "EST", "JST": "JST", "HNEG": "HNEG", "OESZ": "Скӕсӕн Европӕйаг сӕрдыгон рӕстӕг", "AKST": "AKST", "PDT": "PDT", "MESZ": "Астӕуккаг Европӕйаг сӕрдыгон рӕстӕг", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "AST": "AST", "MEZ": "Астӕуккаг Европӕйаг стандартон рӕстӕг", "LHDT": "LHDT", "WAT": "WAT", "HKT": "HKT", "HKST": "HKST", "IST": "IST", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "HECU": "HECU", "EDT": "EDT", "CDT": "CDT", "PST": "PST", "WITA": "WITA", "HAT": "HAT", "ART": "ART", "SAST": "SAST", "CLST": "CLST", "HEEG": "HEEG", "COST": "COST", "VET": "VET", "WIT": "WIT", "HEPM": "HEPM", "UYT": "UYT", "AWDT": "AWDT", "CHADT": "CHADT", "LHST": "LHST", "WAST": "WAST", "SGT": "SGT", "HNPM": "HNPM", "ACWST": "ACWST", "AWST": "AWST", "TMST": "TMST", "BOT": "BOT", "CAT": "CAT", "HNNOMX": "HNNOMX", "MDT": "MDT", "AKDT": "AKDT", "ECT": "ECT", "EAT": "EAT", "MST": "MST", "HEOG": "HEOG", "ACWDT": "ACWDT", "CHAST": "CHAST", "HENOMX": "HENOMX", "GMT": "Гринвичы рӕстӕмбис рӕстӕг", "CST": "CST", "HNT": "HNT", "WESZ": "Ныгъуылӕн Европӕйаг сӕрдыгон рӕстӕг", "AEDT": "AEDT", "CLT": "CLT", "ACDT": "ACDT", "HADT": "HADT", "AEST": "AEST", "NZDT": "NZDT"},
++ locale: "os_GE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNPM": "HNPM", "∅∅∅": "∅∅∅", "SAST": "SAST", "MEZ": "MEZ", "AWST": "AWST", "MYT": "MYT", "JDT": "JDT", "COST": "COST", "HNOG": "HNOG", "GMT": "GMT", "SRT": "SRT", "HEEG": "HEEG", "PST": "PST", "AEDT": "AEDT", "HECU": "HECU", "HNPMX": "HNPMX", "WAST": "WAST", "AKST": "AKST", "HAST": "HAST", "HENOMX": "HENOMX", "AEST": "AEST", "OESZ": "OESZ", "BT": "BT", "VET": "VET", "AKDT": "AKDT", "HKST": "HKST", "NZST": "NZST", "BOT": "BOT", "GYT": "GYT", "EST": "EST", "UYT": "UYT", "OEZ": "OEZ", "HNT": "HNT", "HKT": "HKT", "ADT": "ADT", "ACST": "ACST", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "CDT": "CDT", "GFT": "GFT", "TMT": "TMT", "CAT": "CAT", "COT": "COT", "TMST": "TMST", "ECT": "ECT", "PDT": "PDT", "ACWST": "ACWST", "HNCU": "HNCU", "WAT": "WAT", "WITA": "WITA", "MST": "MST", "MESZ": "MESZ", "LHST": "LHST", "CST": "CST", "WIB": "WIB", "ART": "ART", "UYST": "UYST", "HAT": "HAT", "WIT": "WIT", "NZDT": "NZDT", "AST": "AST", "ChST": "ChST", "JST": "JST", "WESZ": "WESZ", "SGT": "SGT", "CHAST": "CHAST", "IST": "IST", "WEZ": "WEZ", "WART": "WART", "WARST": "WARST", "MDT": "MDT", "ACDT": "ACDT", "AWDT": "AWDT", "CLT": "CLT", "ARST": "ARST", "HADT": "HADT", "CHADT": "CHADT", "EDT": "EDT", "ACWDT": "ACWDT", "HEPMX": "HEPMX", "HEOG": "HEOG", "CLST": "CLST", "EAT": "EAT", "LHDT": "LHDT", "HEPM": "HEPM"},
+ }
+ }
+ 
+@@ -122,7 +101,7 @@ func (os *os_GE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (os *os_GE) MonthsAbbreviated() []string {
+- return os.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -132,7 +111,7 @@ func (os *os_GE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (os *os_GE) MonthsNarrow() []string {
+- return os.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -142,7 +121,7 @@ func (os *os_GE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (os *os_GE) MonthsWide() []string {
+- return os.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -188,75 +167,13 @@ func (os *os_GE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'os_GE' and handles both Whole and Real numbers based on 'v'
+ func (os *os_GE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, os.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(os.group) - 1; j >= 0; j-- {
+- b = append(b, os.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, os.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'os_GE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (os *os_GE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, os.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, os.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, os.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'os_GE'
+@@ -264,62 +181,7 @@ func (os *os_GE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := os.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, os.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(os.group) - 1; j >= 0; j-- {
+- b = append(b, os.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(os.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, os.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, os.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, os.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'os_GE'
+@@ -328,74 +190,7 @@ func (os *os_GE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := os.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, os.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(os.group) - 1; j >= 0; j-- {
+- b = append(b, os.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(os.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, os.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, os.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(os.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, os.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, os.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'os_GE'
+@@ -403,27 +198,6 @@ func (os *os_GE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -432,23 +206,6 @@ func (os *os_GE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, os.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb0, 0xd0, 0xb7}...)
+-
+ return string(b)
+ }
+ 
+@@ -457,19 +214,6 @@ func (os *os_GE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, os.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb0, 0xd0, 0xb7}...)
+-
+ return string(b)
+ }
+ 
+@@ -478,21 +222,6 @@ func (os *os_GE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, os.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, os.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb0, 0xd0, 0xb7}...)
+-
+ return string(b)
+ }
+ 
+@@ -501,19 +230,6 @@ func (os *os_GE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, os.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -522,26 +238,6 @@ func (os *os_GE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, os.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, os.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -550,30 +246,6 @@ func (os *os_GE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, os.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, os.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -582,34 +254,5 @@ func (os *os_GE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, os.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, os.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := os.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/os_RU/os_RU.go b/os_RU/os_RU.go
+index cb4a2a9..7906d34 100644
+--- a/os_RU/os_RU.go
++++ b/os_RU/os_RU.go
+@@ -10,66 +10,45 @@ import (
+ )
+ 
+ type os_RU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'os_RU' locale
+ func New() locales.Translator {
+ return &os_RU{
+- locale: "os_RU",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "₽", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "янв.", "фев.", "мар.", "апр.", "майы", "июны", "июлы", "авг.", "сен.", "окт.", "ноя.", "дек."},
+- monthsNarrow: []string{"", "Я", "Ф", "М", "А", "М", "И", "И", "А", "С", "О", "Н", "Д"},
+- monthsWide: []string{"", "январы", "февралы", "мартъийы", "апрелы", "майы", "июны", "июлы", "августы", "сентябры", "октябры", "ноябры", "декабры"},
+- daysAbbreviated: []string{"хцб", "крс", "дцг", "ӕрт", "цпр", "мрб", "сбт"},
+- daysNarrow: []string{"Х", "К", "Д", "Ӕ", "Ц", "М", "С"},
+- daysWide: []string{"хуыцаубон", "къуырисӕр", "дыццӕг", "ӕртыццӕг", "цыппӕрӕм", "майрӕмбон", "сабат"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsWide: []string{"ӕмбисбоны размӕ", "ӕмбисбоны фӕстӕ"},
+- erasAbbreviated: []string{"н.д.а.", "н.д."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"PST": "PST", "HNPM": "HNPM", "WARST": "WARST", "ACWDT": "ACWDT", "HAST": "HAST", "HEPMX": "HEPMX", "CDT": "CDT", "ECT": "ECT", "HADT": "HADT", "HAT": "HAT", "HEOG": "HEOG", "CHAST": "CHAST", "JST": "JST", "GFT": "GFT", "TMT": "TMT", "JDT": "JDT", "EDT": "EDT", "AST": "AST", "MYT": "MYT", "HKST": "HKST", "AEDT": "AEDT", "ACST": "ACST", "CAT": "CAT", "UYST": "UYST", "WITA": "WITA", "LHST": "LHST", "HNNOMX": "HNNOMX", "MST": "MST", "HNCU": "HNCU", "SRT": "SRT", "WESZ": "Ныгъуылӕн Европӕйаг сӕрдыгон рӕстӕг", "MEZ": "Астӕуккаг Европӕйаг стандартон рӕстӕг", "BOT": "BOT", "COT": "COT", "HECU": "HECU", "EST": "EST", "AEST": "AEST", "MESZ": "Астӕуккаг Европӕйаг сӕрдыгон рӕстӕг", "ChST": "ChST", "ACDT": "ACDT", "VET": "VET", "AWDT": "AWDT", "OEZ": "Скӕсӕн Европӕйаг стандартон рӕстӕг", "OESZ": "Скӕсӕн Европӕйаг сӕрдыгон рӕстӕг", "SAST": "SAST", "TMST": "TMST", "HENOMX": "HENOMX", "HNT": "HNT", "HEPM": "HEPM", "NZST": "NZST", "HNEG": "HNEG", "WAST": "WAST", "ADT": "ADT", "WIB": "WIB", "ART": "ART", "AWST": "AWST", "HEEG": "HEEG", "MDT": "MDT", "HNOG": "HNOG", "NZDT": "NZDT", "GYT": "GYT", "WEZ": "Ныгъуылӕн Европӕйаг стандартон рӕстӕг", "AKDT": "AKDT", "CST": "CST", "ARST": "ARST", "PDT": "PDT", "LHDT": "LHDT", "CLT": "CLT", "SGT": "SGT", "HNPMX": "HNPMX", "CLST": "CLST", "ACWST": "ACWST", "IST": "IST", "WART": "WART", "GMT": "Гринвичы рӕстӕмбис рӕстӕг", "AKST": "AKST", "UYT": "UYT", "WIT": "WIT", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "COST": "COST", "BT": "BT", "HKT": "HKT", "EAT": "EAT", "WAT": "WAT"},
++ locale: "os_RU",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "₽", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CDT": "CDT", "HNEG": "HNEG", "JST": "JST", "JDT": "JDT", "OESZ": "OESZ", "WART": "WART", "ECT": "ECT", "AST": "AST", "BOT": "BOT", "HAST": "HAST", "ACST": "ACST", "VET": "VET", "HECU": "HECU", "HAT": "HAT", "EST": "EST", "TMT": "TMT", "CLT": "CLT", "∅∅∅": "∅∅∅", "LHDT": "LHDT", "HNCU": "HNCU", "COT": "COT", "IST": "IST", "UYST": "UYST", "HNOG": "HNOG", "CAT": "CAT", "HADT": "HADT", "HEPM": "HEPM", "MST": "MST", "ART": "ART", "SGT": "SGT", "WIT": "WIT", "COST": "COST", "HNNOMX": "HNNOMX", "AEST": "AEST", "AEDT": "AEDT", "WAT": "WAT", "CLST": "CLST", "EAT": "EAT", "MEZ": "MEZ", "AWST": "AWST", "PST": "PST", "PDT": "PDT", "HENOMX": "HENOMX", "WESZ": "WESZ", "EDT": "EDT", "HKST": "HKST", "MDT": "MDT", "SRT": "SRT", "MESZ": "MESZ", "ACDT": "ACDT", "AKDT": "AKDT", "OEZ": "OEZ", "CST": "CST", "WARST": "WARST", "HKT": "HKT", "MYT": "MYT", "CHADT": "CHADT", "GFT": "GFT", "HEOG": "HEOG", "GMT": "GMT", "ACWST": "ACWST", "WEZ": "WEZ", "HNT": "HNT", "NZST": "NZST", "ADT": "ADT", "AWDT": "AWDT", "HNPM": "HNPM", "UYT": "UYT", "HEPMX": "HEPMX", "TMST": "TMST", "LHST": "LHST", "BT": "BT", "WAST": "WAST", "GYT": "GYT", "ARST": "ARST", "CHAST": "CHAST", "SAST": "SAST", "HNPMX": "HNPMX", "AKST": "AKST", "WITA": "WITA", "NZDT": "NZDT", "WIB": "WIB", "ChST": "ChST", "HEEG": "HEEG", "ACWDT": "ACWDT"},
+ }
+ }
+ 
+@@ -122,7 +101,7 @@ func (os *os_RU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (os *os_RU) MonthsAbbreviated() []string {
+- return os.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -132,7 +111,7 @@ func (os *os_RU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (os *os_RU) MonthsNarrow() []string {
+- return os.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -142,7 +121,7 @@ func (os *os_RU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (os *os_RU) MonthsWide() []string {
+- return os.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -188,75 +167,13 @@ func (os *os_RU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'os_RU' and handles both Whole and Real numbers based on 'v'
+ func (os *os_RU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, os.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(os.group) - 1; j >= 0; j-- {
+- b = append(b, os.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, os.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'os_RU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (os *os_RU) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, os.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, os.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, os.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'os_RU'
+@@ -264,62 +181,7 @@ func (os *os_RU) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := os.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, os.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(os.group) - 1; j >= 0; j-- {
+- b = append(b, os.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(os.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, os.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, os.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, os.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'os_RU'
+@@ -328,74 +190,7 @@ func (os *os_RU) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := os.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, os.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(os.group) - 1; j >= 0; j-- {
+- b = append(b, os.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(os.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, os.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, os.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(os.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, os.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, os.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'os_RU'
+@@ -403,27 +198,6 @@ func (os *os_RU) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -432,23 +206,6 @@ func (os *os_RU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, os.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb0, 0xd0, 0xb7}...)
+-
+ return string(b)
+ }
+ 
+@@ -457,19 +214,6 @@ func (os *os_RU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, os.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb0, 0xd0, 0xb7}...)
+-
+ return string(b)
+ }
+ 
+@@ -478,21 +222,6 @@ func (os *os_RU) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, os.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, os.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb0, 0xd0, 0xb7}...)
+-
+ return string(b)
+ }
+ 
+@@ -501,19 +230,6 @@ func (os *os_RU) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, os.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -522,26 +238,6 @@ func (os *os_RU) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, os.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, os.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -550,30 +246,6 @@ func (os *os_RU) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, os.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, os.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -582,34 +254,5 @@ func (os *os_RU) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, os.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, os.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := os.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/pa/pa.go b/pa/pa.go
+index 4fc1de4..7d4b3b6 100644
+--- a/pa/pa.go
++++ b/pa/pa.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ਈ. ਪੂ.", "ਸੰਨ"},
+ erasNarrow: []string{"ਈ.ਪੂ.", "ਸੰਨ"},
+ erasWide: []string{"ਈਸਵੀ ਪੂਰਵ", "ਈਸਵੀ ਸੰਨ"},
+- timezones: map[string]string{"PDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ACWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HKT": "ਹਾਂਗ ਕਾਂਗ ਮਿਆਰੀ ਵੇਲਾ", "JST": "ਜਪਾਨ ਮਿਆਰੀ ਵੇਲਾ", "WAST": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "CST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "ADT": "ਅਟਲਾਂਟਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "LHST": "ਲੌਰਡ ਹੋਵੇ ਮਿਆਰੀ ਵੇਲਾ", "CLST": "ਚਿਲੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "JDT": "ਜਪਾਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "SGT": "ਸਿੰਗਾਪੁਰ ਮਿਆਰੀ ਵੇਲਾ", "HNPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "HADT": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "HAT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CHADT": "ਚੈਥਮ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HECU": "ਕਿਊਬਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "UYT": "ਉਰੂਗਵੇ ਮਿਆਰੀ ਵੇਲਾ", "GYT": "ਗੁਯਾਨਾ ਵੇਲਾ", "ACDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "OESZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AKST": "ਅਲਾਸਕਾ ਮਿਆਰੀ ਵੇਲਾ", "ART": "ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "WAT": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "VET": "ਵੈਨੇਜ਼ੂਏਲਾ ਵੇਲਾ", "ChST": "ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ", "SRT": "ਸੂਰੀਨਾਮ ਵੇਲਾ", "HNOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "NZDT": "ਨਿਊਜ਼ੀਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "IST": "ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ", "AKDT": "ਅਲਾਸਕਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AST": "ਅਟਲਾਂਟਿਕ ਮਿਆਰੀ ਵੇਲਾ", "HNEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "HEEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HKST": "ਹਾਂਗ ਕਾਂਗ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HEPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MEZ": "ਮੱਧ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "GFT": "ਫ੍ਰੈਂਚ ਗੁਏਨਾ ਵੇਲਾ", "∅∅∅": "ਪੇਰੂ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WIB": "ਪੱਛਮੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "NZST": "ਨਿਊਜ਼ੀਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "MESZ": "ਮੱਧ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "CHAST": "ਚੈਥਮ ਮਿਆਰੀ ਵੇਲਾ", "CLT": "ਚਿਲੀ ਮਿਆਰੀ ਵੇਲਾ", "ACWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "AWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "AWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "BOT": "ਬੋਲੀਵੀਆ ਵੇਲਾ", "OEZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "HENOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MDT": "ਮਕਾਉ ਗਰਮੀ-ਰੁੱਤ ਸਮਾਂ", "HEOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਮਿਆਰੀ ਵੇਲਾ", "CAT": "ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ", "HNCU": "ਕਿਊਬਾ ਮਿਆਰੀ ਵੇਲਾ", "ARST": "ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AEST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "AEDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "EAT": "ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ", "HEPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HAST": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਮਿਆਰੀ ਵੇਲਾ", "EDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "PST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "WITA": "ਮੱਧ ਇੰਡੋਨੇਸ਼ੀਆਈ ਵੇਲਾ", "EST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "MYT": "ਮਲੇਸ਼ੀਆ ਵੇਲਾ", "WIT": "ਪੂਰਬੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "WEZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "WESZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "COT": "ਕੋਲੰਬੀਆ ਮਿਆਰੀ ਵੇਲਾ", "COST": "ਕੋਲੰਬੀਆ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "GMT": "ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ", "LHDT": "ਲੌਰਡ ਹੋਵੇ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "TMT": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਮਿਆਰੀ ਵੇਲਾ", "ACST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "MST": "ਮਕਾਉ ਮਿਆਰੀ ਸਮਾਂ", "SAST": "ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "TMST": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNNOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਮਿਆਰੀ ਵੇਲਾ", "UYST": "ਉਰੂਗਵੇ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "BT": "ਭੂਟਾਨ ਵੇਲਾ", "ECT": "ਇਕਵੇਡੋਰ ਵੇਲਾ", "WART": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "WARST": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ"},
++ timezones: map[string]string{"PDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WAT": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "ART": "ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "WIB": "ਪੱਛਮੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "EAT": "ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ", "HNEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "HNNOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਮਿਆਰੀ ਵੇਲਾ", "AEST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "WEZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "WIT": "ਪੂਰਬੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "GYT": "ਗੁਯਾਨਾ ਵੇਲਾ", "HKT": "ਹਾਂਗ ਕਾਂਗ ਮਿਆਰੀ ਵੇਲਾ", "CAT": "ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ", "MDT": "ਮਕਾਉ ਗਰਮੀ-ਰੁੱਤ ਸਮਾਂ", "AWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "HNCU": "ਕਿਊਬਾ ਮਿਆਰੀ ਵੇਲਾ", "OEZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "ACWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MEZ": "ਮੱਧ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "PST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "MESZ": "ਮੱਧ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HECU": "ਕਿਊਬਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "OESZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "AST": "ਅਟਲਾਂਟਿਕ ਮਿਆਰੀ ਵੇਲਾ", "LHST": "ਲੌਰਡ ਹੋਵੇ ਮਿਆਰੀ ਵੇਲਾ", "MYT": "ਮਲੇਸ਼ੀਆ ਵੇਲਾ", "JDT": "ਜਪਾਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "UYST": "ਉਰੂਗਵੇ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "SGT": "ਸਿੰਗਾਪੁਰ ਮਿਆਰੀ ਵੇਲਾ", "∅∅∅": "ਅਮੇਜ਼ਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "BT": "ਭੂਟਾਨ ਵੇਲਾ", "CDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "TMT": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਮਿਆਰੀ ਵੇਲਾ", "MST": "ਮਕਾਉ ਮਿਆਰੀ ਸਮਾਂ", "ADT": "ਅਟਲਾਂਟਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਮਿਆਰੀ ਵੇਲਾ", "COST": "ਕੋਲੰਬੀਆ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "EDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "GFT": "ਫ੍ਰੈਂਚ ਗੁਏਨਾ ਵੇਲਾ", "HNT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "HEOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "EST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "CST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "NZST": "ਨਿਊਜ਼ੀਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "ARST": "ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HADT": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HEPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AKDT": "ਅਲਾਸਕਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "UYT": "ਉਰੂਗਵੇ ਮਿਆਰੀ ਵੇਲਾ", "AEDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CHADT": "ਚੈਥਮ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HEEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HENOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "TMST": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "JST": "ਜਪਾਨ ਮਿਆਰੀ ਵੇਲਾ", "HNPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "WAST": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "CLST": "ਚਿਲੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ChST": "ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ", "LHDT": "ਲੌਰਡ ਹੋਵੇ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HEPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WESZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "SAST": "ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "WART": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "NZDT": "ਨਿਊਜ਼ੀਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "BOT": "ਬੋਲੀਵੀਆ ਵੇਲਾ", "ACST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "ACDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AKST": "ਅਲਾਸਕਾ ਮਿਆਰੀ ਵੇਲਾ", "HAT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WITA": "ਮੱਧ ਇੰਡੋਨੇਸ਼ੀਆਈ ਵੇਲਾ", "ECT": "ਇਕਵੇਡੋਰ ਵੇਲਾ", "GMT": "ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ", "COT": "ਕੋਲੰਬੀਆ ਮਿਆਰੀ ਵੇਲਾ", "HKST": "ਹਾਂਗ ਕਾਂਗ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "CHAST": "ਚੈਥਮ ਮਿਆਰੀ ਵੇਲਾ", "WARST": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ACWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "SRT": "ਸੂਰੀਨਾਮ ਵੇਲਾ", "HAST": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਮਿਆਰੀ ਵੇਲਾ", "IST": "ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ", "VET": "ਵੈਨੇਜ਼ੂਏਲਾ ਵੇਲਾ", "CLT": "ਚਿਲੀ ਮਿਆਰੀ ਵੇਲਾ"},
+ }
+ }
+ 
+diff --git a/pa_Arab/pa_Arab.go b/pa_Arab/pa_Arab.go
+index 2b13046..64ef5a2 100644
+--- a/pa_Arab/pa_Arab.go
++++ b/pa_Arab/pa_Arab.go
+@@ -50,32 +50,19 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{2, 6},
+ pluralsOrdinal: []locales.PluralRule{6},
+ pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+ minus: "‎-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "ر", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositivePrefix: " ",
+ currencyPositiveSuffix: "K",
+ currencyNegativePrefix: " ",
+ currencyNegativeSuffix: "K",
+- monthsAbbreviated: []string{"", "ਜਨ", "ਫ਼ਰ", "ਮਾਰਚ", "ਅਪ੍ਰੈ", "ਮਈ", "ਜੂਨ", "ਜੁਲਾ", "ਅਗ", "ਸਤੰ", "ਅਕਤੂ", "ਨਵੰ", "ਦਸੰ"},
+- monthsNarrow: []string{"", "ਜ", "ਫ਼", "ਮਾ", "ਅ", "ਮ", "ਜੂ", "ਜੁ", "ਅ", "ਸ", "ਅ", "ਨ", "ਦ"},
+ monthsWide: []string{"", "جنوری", "فروری", "مارچ", "اپریل", "مئ", "جون", "جولائی", "اگست", "ستمبر", "اکتوبر", "نومبر", "دسمبر"},
+- daysAbbreviated: []string{"ਐਤ", "ਸੋਮ", "ਮੰਗਲ", "ਬੁੱਧ", "ਵੀਰ", "ਸ਼ੁੱਕਰ", "ਸ਼ਨਿੱਚਰ"},
+- daysNarrow: []string{"ਐ", "ਸੋ", "ਮੰ", "ਬੁੱ", "ਵੀ", "ਸ਼ੁੱ", "ਸ਼"},
+- daysShort: []string{"ਐਤ", "ਸੋਮ", "ਮੰਗ", "ਬੁੱਧ", "ਵੀਰ", "ਸ਼ੁੱਕ", "ਸ਼ਨਿੱ"},
+ daysWide: []string{"اتوار", "پیر", "منگل", "بُدھ", "جمعرات", "جمعہ", "ہفتہ"},
+- periodsAbbreviated: []string{"ਪੂ.ਦੁ.", "ਬਾ.ਦੁ."},
+- periodsNarrow: []string{"ਸ.", "ਸ਼."},
+- periodsWide: []string{"ਪੂ.ਦੁ.", "ਬਾ.ਦੁ."},
+ erasAbbreviated: []string{"ايساپورو", "سں"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"ايساپورو", "سں"},
+- timezones: map[string]string{"HNEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "GFT": "ਫ੍ਰੈਂਚ ਗੁਏਨਾ ਵੇਲਾ", "VET": "ਵੈਨੇਜ਼ੂਏਲਾ ਵੇਲਾ", "SAST": "ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "∅∅∅": "ਅਮੇਜ਼ਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ART": "ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "CLT": "ਚਿਲੀ ਮਿਆਰੀ ਵੇਲਾ", "WAT": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "NZST": "ਨਿਊਜ਼ੀਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "IST": "ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ", "AKDT": "ਅਲਾਸਕਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "GYT": "ਗੁਯਾਨਾ ਵੇਲਾ", "WIB": "ਪੱਛਮੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "BT": "ਭੂਟਾਨ ਵੇਲਾ", "HNT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "PST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "CHADT": "ਚੈਥਮ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "GMT": "ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ", "AKST": "ਅਲਾਸਕਾ ਮਿਆਰੀ ਵੇਲਾ", "LHDT": "ਲੌਰਡ ਹੋਵੇ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "SGT": "ਸਿੰਗਾਪੁਰ ਮਿਆਰੀ ਵੇਲਾ", "UYT": "ਉਰੂਗਵੇ ਮਿਆਰੀ ਵੇਲਾ", "HADT": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ARST": "ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WESZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ACST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "COT": "ਕੋਲੰਬੀਆ ਮਿਆਰੀ ਵੇਲਾ", "MST": "ਮਕਾਉ ਮਿਆਰੀ ਸਮਾਂ", "CDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AST": "ਅਟਲਾਂਟਿਕ ਮਿਆਰੀ ਵੇਲਾ", "ADT": "ਅਟਲਾਂਟਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HAST": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਮਿਆਰੀ ਵੇਲਾ", "HKT": "ਹਾਂਗ ਕਾਂਗ ਮਿਆਰੀ ਵੇਲਾ", "HECU": "ਕਿਊਬਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "EST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "MEZ": "ਮੱਧ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "HNPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਮਿਆਰੀ ਵੇਲਾ", "NZDT": "ਨਿਊਜ਼ੀਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "COST": "ਕੋਲੰਬੀਆ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "HAT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "AEST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "OESZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HENOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNCU": "ਕਿਊਬਾ ਮਿਆਰੀ ਵੇਲਾ", "EDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HKST": "ਹਾਂਗ ਕਾਂਗ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "AWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CHAST": "ਚੈਥਮ ਮਿਆਰੀ ਵੇਲਾ", "TMST": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ChST": "ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ", "LHST": "ਲੌਰਡ ਹੋਵੇ ਮਿਆਰੀ ਵੇਲਾ", "WARST": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "MYT": "ਮਲੇਸ਼ੀਆ ਵੇਲਾ", "CLST": "ਚਿਲੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "EAT": "ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ", "ECT": "ਇਕਵੇਡੋਰ ਵੇਲਾ", "WART": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "WITA": "ਮੱਧ ਇੰਡੋਨੇਸ਼ੀਆਈ ਵੇਲਾ", "HEEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "BOT": "ਬੋਲੀਵੀਆ ਵੇਲਾ", "HNNOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਮਿਆਰੀ ਵੇਲਾ", "WIT": "ਪੂਰਬੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "SRT": "ਸੂਰੀਨਾਮ ਵੇਲਾ", "ACDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WAST": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "MDT": "ਮਕਾਉ ਗਰਮੀ-ਰੁੱਤ ਸਮਾਂ", "CST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "UYST": "ਉਰੂਗਵੇ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "MESZ": "ਮੱਧ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "JST": "ਜਪਾਨ ਮਿਆਰੀ ਵੇਲਾ", "HEPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ACWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "PDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AEDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HEPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "TMT": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਮਿਆਰੀ ਵੇਲਾ", "CAT": "ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ", "ACWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WEZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "JDT": "ਜਪਾਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "OEZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "HEOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ"},
++ timezones: map[string]string{"HAT": "HAT", "AWDT": "AWDT", "CHAST": "CHAST", "NZDT": "NZDT", "BOT": "BOT", "MEZ": "MEZ", "MYT": "MYT", "IST": "IST", "WAST": "WAST", "HNT": "HNT", "HKT": "HKT", "HNPM": "HNPM", "ACWDT": "ACWDT", "ACWST": "ACWST", "UYST": "UYST", "WARST": "WARST", "EST": "EST", "AST": "AST", "EAT": "EAT", "HEEG": "HEEG", "AWST": "AWST", "HECU": "HECU", "CLST": "CLST", "ARST": "ARST", "GFT": "GFT", "AEDT": "AEDT", "UYT": "UYT", "SAST": "SAST", "EDT": "EDT", "WIB": "WIB", "CDT": "CDT", "NZST": "NZST", "JDT": "JDT", "WEZ": "WEZ", "WIT": "WIT", "GYT": "GYT", "COST": "COST", "WITA": "WITA", "HADT": "HADT", "HENOMX": "HENOMX", "COT": "COT", "ECT": "ECT", "AEST": "AEST", "HNCU": "HNCU", "WART": "WART", "HEOG": "HEOG", "CLT": "CLT", "CST": "CST", "ADT": "ADT", "HKST": "HKST", "ChST": "ChST", "JST": "JST", "AKDT": "AKDT", "∅∅∅": "∅∅∅", "MDT": "MDT", "HNEG": "HNEG", "HEPM": "HEPM", "LHST": "LHST", "ACST": "ACST", "PST": "PST", "TMST": "TMST", "CAT": "CAT", "ART": "ART", "GMT": "GMT", "HNNOMX": "HNNOMX", "MESZ": "MESZ", "BT": "BT", "WESZ": "WESZ", "VET": "VET", "HEPMX": "HEPMX", "WAT": "WAT", "AKST": "AKST", "HNOG": "HNOG", "TMT": "TMT", "HAST": "HAST", "ACDT": "ACDT", "HNPMX": "HNPMX", "SGT": "SGT", "SRT": "SRT", "LHDT": "LHDT", "OEZ": "OEZ", "MST": "MST", "CHADT": "CHADT", "PDT": "PDT", "OESZ": "OESZ"},
+ }
+ }
+ 
+@@ -141,7 +128,7 @@ func (pa *pa_Arab) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (pa *pa_Arab) MonthsAbbreviated() []string {
+- return pa.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -151,7 +138,7 @@ func (pa *pa_Arab) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (pa *pa_Arab) MonthsNarrow() []string {
+- return pa.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -207,86 +194,13 @@ func (pa *pa_Arab) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'pa_Arab' and handles both Whole and Real numbers based on 'v'
+ func (pa *pa_Arab) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pa.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, pa.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(pa.minus) - 1; j >= 0; j-- {
+- b = append(b, pa.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'pa_Arab' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (pa *pa_Arab) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 6
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pa.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(pa.minus) - 1; j >= 0; j-- {
+- b = append(b, pa.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, pa.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'pa_Arab'
+@@ -294,7 +208,7 @@ func (pa *pa_Arab) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pa.currencies[currency]
+- l := len(s) + len(symbol) + 8
++ l := len(s) + len(symbol) + 7
+ 
+ b := make([]byte, 0, l)
+ 
+@@ -338,7 +252,7 @@ func (pa *pa_Arab) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pa.currencies[currency]
+- l := len(s) + len(symbol) + 8
++ l := len(s) + len(symbol) + 7
+ 
+ b := make([]byte, 0, l)
+ 
+diff --git a/pa_Arab_PK/pa_Arab_PK.go b/pa_Arab_PK/pa_Arab_PK.go
+index 5f314ce..487c009 100644
+--- a/pa_Arab_PK/pa_Arab_PK.go
++++ b/pa_Arab_PK/pa_Arab_PK.go
+@@ -42,32 +42,13 @@ type pa_Arab_PK struct {
+ // New returns a new instance of translator for the 'pa_Arab_PK' locale
+ func New() locales.Translator {
+ return &pa_Arab_PK{
+- locale: "pa_Arab_PK",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "ਜਨ", "ਫ਼ਰ", "ਮਾਰਚ", "ਅਪ੍ਰੈ", "ਮਈ", "ਜੂਨ", "ਜੁਲਾ", "ਅਗ", "ਸਤੰ", "ਅਕਤੂ", "ਨਵੰ", "ਦਸੰ"},
+- monthsNarrow: []string{"", "ਜ", "ਫ਼", "ਮਾ", "ਅ", "ਮ", "ਜੂ", "ਜੁ", "ਅ", "ਸ", "ਅ", "ਨ", "ਦ"},
+- monthsWide: []string{"", "ਜਨਵਰੀ", "ਫ਼ਰਵਰੀ", "ਮਾਰਚ", "ਅਪ੍ਰੈਲ", "ਮਈ", "ਜੂਨ", "ਜੁਲਾਈ", "ਅਗਸਤ", "ਸਤੰਬਰ", "ਅਕਤੂਬਰ", "ਨਵੰਬਰ", "ਦਸੰਬਰ"},
+- daysAbbreviated: []string{"ਐਤ", "ਸੋਮ", "ਮੰਗਲ", "ਬੁੱਧ", "ਵੀਰ", "ਸ਼ੁੱਕਰ", "ਸ਼ਨਿੱਚਰ"},
+- daysNarrow: []string{"ਐ", "ਸੋ", "ਮੰ", "ਬੁੱ", "ਵੀ", "ਸ਼ੁੱ", "ਸ਼"},
+- daysShort: []string{"ਐਤ", "ਸੋਮ", "ਮੰਗ", "ਬੁੱਧ", "ਵੀਰ", "ਸ਼ੁੱਕ", "ਸ਼ਨਿੱ"},
+- daysWide: []string{"ਐਤਵਾਰ", "ਸੋਮਵਾਰ", "ਮੰਗਲਵਾਰ", "ਬੁੱਧਵਾਰ", "ਵੀਰਵਾਰ", "ਸ਼ੁੱਕਰਵਾਰ", "ਸ਼ਨਿੱਚਰਵਾਰ"},
+- periodsAbbreviated: []string{"ਪੂ.ਦੁ.", "ਬਾ.ਦੁ."},
+- periodsNarrow: []string{"ਸ.", "ਸ਼."},
+- periodsWide: []string{"ਪੂ.ਦੁ.", "ਬਾ.ਦੁ."},
+- erasAbbreviated: []string{"ਈ. ਪੂ.", "ਸੰਨ"},
+- erasNarrow: []string{"ਈ.ਪੂ.", "ਸੰਨ"},
+- erasWide: []string{"ਈਸਵੀ ਪੂਰਵ", "ਈਸਵੀ ਸੰਨ"},
+- timezones: map[string]string{"BT": "ਭੂਟਾਨ ਵੇਲਾ", "HKST": "ਹਾਂਗ ਕਾਂਗ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਮਿਆਰੀ ਵੇਲਾ", "HEPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "JDT": "ਜਪਾਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "BOT": "ਬੋਲੀਵੀਆ ਵੇਲਾ", "HNEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "CAT": "ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ", "EAT": "ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ", "HNPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "UYST": "ਉਰੂਗਵੇ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "SRT": "ਸੂਰੀਨਾਮ ਵੇਲਾ", "ART": "ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "HNOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "AEDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HKT": "ਹਾਂਗ ਕਾਂਗ ਮਿਆਰੀ ਵੇਲਾ", "CLST": "ਚਿਲੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "PST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "MEZ": "ਮੱਧ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "CHADT": "ਚੈਥਮ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "JST": "ਜਪਾਨ ਮਿਆਰੀ ਵੇਲਾ", "MDT": "ਮਕਾਉ ਗਰਮੀ-ਰੁੱਤ ਸਮਾਂ", "WESZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ACWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "IST": "ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ", "WAT": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "OESZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNCU": "ਕਿਊਬਾ ਮਿਆਰੀ ਵੇਲਾ", "ADT": "ਅਟਲਾਂਟਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "GYT": "ਗੁਯਾਨਾ ਵੇਲਾ", "HAST": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਮਿਆਰੀ ਵੇਲਾ", "HNT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "AEST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "SAST": "ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "TMT": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਮਿਆਰੀ ਵੇਲਾ", "WARST": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "COST": "ਕੋਲੰਬੀਆ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "UYT": "ਉਰੂਗਵੇ ਮਿਆਰੀ ਵੇਲਾ", "CDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MYT": "ਮਲੇਸ਼ੀਆ ਵੇਲਾ", "WIB": "ਪੱਛਮੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "HEEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HEPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WART": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "WEZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "HEOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WAST": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HENOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "PDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ARST": "ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "GFT": "ਫ੍ਰੈਂਚ ਗੁਏਨਾ ਵੇਲਾ", "LHST": "ਲੌਰਡ ਹੋਵੇ ਮਿਆਰੀ ਵੇਲਾ", "LHDT": "ਲੌਰਡ ਹੋਵੇ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "OEZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "MST": "ਮਕਾਉ ਮਿਆਰੀ ਸਮਾਂ", "ACWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "AWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CLT": "ਚਿਲੀ ਮਿਆਰੀ ਵੇਲਾ", "∅∅∅": "ਅਮੇਜ਼ਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ChST": "ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ", "SGT": "ਸਿੰਗਾਪੁਰ ਮਿਆਰੀ ਵੇਲਾ", "HADT": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "EST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "ACDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ECT": "ਇਕਵੇਡੋਰ ਵੇਲਾ", "HECU": "ਕਿਊਬਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AST": "ਅਟਲਾਂਟਿਕ ਮਿਆਰੀ ਵੇਲਾ", "VET": "ਵੈਨੇਜ਼ੂਏਲਾ ਵੇਲਾ", "MESZ": "ਮੱਧ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "CHAST": "ਚੈਥਮ ਮਿਆਰੀ ਵੇਲਾ", "EDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "TMST": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNNOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਮਿਆਰੀ ਵੇਲਾ", "GMT": "ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ", "AKDT": "ਅਲਾਸਕਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HAT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WITA": "ਮੱਧ ਇੰਡੋਨੇਸ਼ੀਆਈ ਵੇਲਾ", "NZST": "ਨਿਊਜ਼ੀਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "NZDT": "ਨਿਊਜ਼ੀਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ACST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "COT": "ਕੋਲੰਬੀਆ ਮਿਆਰੀ ਵੇਲਾ", "AKST": "ਅਲਾਸਕਾ ਮਿਆਰੀ ਵੇਲਾ", "WIT": "ਪੂਰਬੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ"},
++ locale: "pa_Arab_PK",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ARST": "ARST", "IST": "IST", "PST": "PST", "TMT": "TMT", "HAST": "HAST", "UYST": "UYST", "HNPMX": "HNPMX", "HKST": "HKST", "HENOMX": "HENOMX", "BT": "BT", "SGT": "SGT", "WIT": "WIT", "HNOG": "HNOG", "TMST": "TMST", "∅∅∅": "∅∅∅", "CDT": "CDT", "ADT": "ADT", "HEPM": "HEPM", "CHADT": "CHADT", "WIB": "WIB", "HNNOMX": "HNNOMX", "COT": "COT", "CLT": "CLT", "MDT": "MDT", "ECT": "ECT", "HNEG": "HNEG", "AEDT": "AEDT", "WAT": "WAT", "SAST": "SAST", "CST": "CST", "ART": "ART", "HADT": "HADT", "MEZ": "MEZ", "ACST": "ACST", "JST": "JST", "OESZ": "OESZ", "GFT": "GFT", "GMT": "GMT", "ChST": "ChST", "AWDT": "AWDT", "LHDT": "LHDT", "AEST": "AEST", "AKDT": "AKDT", "HNT": "HNT", "GYT": "GYT", "HNCU": "HNCU", "HEPMX": "HEPMX", "CLST": "CLST", "AST": "AST", "BOT": "BOT", "LHST": "LHST", "PDT": "PDT", "WARST": "WARST", "HNPM": "HNPM", "ACWST": "ACWST", "WART": "WART", "NZST": "NZST", "NZDT": "NZDT", "ACDT": "ACDT", "HEEG": "HEEG", "AKST": "AKST", "OEZ": "OEZ", "WAST": "WAST", "EST": "EST", "EDT": "EDT", "SRT": "SRT", "AWST": "AWST", "MYT": "MYT", "ACWDT": "ACWDT", "HECU": "HECU", "HEOG": "HEOG", "WITA": "WITA", "MST": "MST", "CHAST": "CHAST", "UYT": "UYT", "WEZ": "WEZ", "VET": "VET", "CAT": "CAT", "MESZ": "MESZ", "HAT": "HAT", "COST": "COST", "HKT": "HKT", "EAT": "EAT", "JDT": "JDT", "WESZ": "WESZ"},
+ }
+ }
+ 
+@@ -133,7 +114,7 @@ func (pa *pa_Arab_PK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (pa *pa_Arab_PK) MonthsAbbreviated() []string {
+- return pa.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -143,7 +124,7 @@ func (pa *pa_Arab_PK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (pa *pa_Arab_PK) MonthsNarrow() []string {
+- return pa.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -153,7 +134,7 @@ func (pa *pa_Arab_PK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (pa *pa_Arab_PK) MonthsWide() []string {
+- return pa.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -199,82 +180,13 @@ func (pa *pa_Arab_PK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'pa_Arab_PK' and handles both Whole and Real numbers based on 'v'
+ func (pa *pa_Arab_PK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pa.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, pa.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pa.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'pa_Arab_PK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (pa *pa_Arab_PK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pa.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pa.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, pa.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'pa_Arab_PK'
+@@ -282,65 +194,7 @@ func (pa *pa_Arab_PK) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pa.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pa.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, pa.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, pa.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pa.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'pa_Arab_PK'
+@@ -349,73 +203,7 @@ func (pa *pa_Arab_PK) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pa.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pa.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, pa.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, pa.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pa.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'pa_Arab_PK'
+@@ -423,17 +211,6 @@ func (pa *pa_Arab_PK) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -442,17 +219,6 @@ func (pa *pa_Arab_PK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pa.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -461,17 +227,6 @@ func (pa *pa_Arab_PK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pa.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -480,19 +235,6 @@ func (pa *pa_Arab_PK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, pa.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pa.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -501,28 +243,6 @@ func (pa *pa_Arab_PK) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, pa.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, pa.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -531,35 +251,6 @@ func (pa *pa_Arab_PK) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, pa.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, pa.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -568,40 +259,6 @@ func (pa *pa_Arab_PK) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, pa.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, pa.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -610,44 +267,5 @@ func (pa *pa_Arab_PK) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, pa.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, pa.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := pa.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/pa_Guru/pa_Guru.go b/pa_Guru/pa_Guru.go
+index 6df4412..64fa16b 100644
+--- a/pa_Guru/pa_Guru.go
++++ b/pa_Guru/pa_Guru.go
+@@ -42,32 +42,13 @@ type pa_Guru struct {
+ // New returns a new instance of translator for the 'pa_Guru' locale
+ func New() locales.Translator {
+ return &pa_Guru{
+- locale: "pa_Guru",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "ਜਨ", "ਫ਼ਰ", "ਮਾਰਚ", "ਅਪ੍ਰੈ", "ਮਈ", "ਜੂਨ", "ਜੁਲਾ", "ਅਗ", "ਸਤੰ", "ਅਕਤੂ", "ਨਵੰ", "ਦਸੰ"},
+- monthsNarrow: []string{"", "ਜ", "ਫ਼", "ਮਾ", "ਅ", "ਮ", "ਜੂ", "ਜੁ", "ਅ", "ਸ", "ਅ", "ਨ", "ਦ"},
+- monthsWide: []string{"", "ਜਨਵਰੀ", "ਫ਼ਰਵਰੀ", "ਮਾਰਚ", "ਅਪ੍ਰੈਲ", "ਮਈ", "ਜੂਨ", "ਜੁਲਾਈ", "ਅਗਸਤ", "ਸਤੰਬਰ", "ਅਕਤੂਬਰ", "ਨਵੰਬਰ", "ਦਸੰਬਰ"},
+- daysAbbreviated: []string{"ਐਤ", "ਸੋਮ", "ਮੰਗਲ", "ਬੁੱਧ", "ਵੀਰ", "ਸ਼ੁੱਕਰ", "ਸ਼ਨਿੱਚਰ"},
+- daysNarrow: []string{"ਐ", "ਸੋ", "ਮੰ", "ਬੁੱ", "ਵੀ", "ਸ਼ੁੱ", "ਸ਼"},
+- daysShort: []string{"ਐਤ", "ਸੋਮ", "ਮੰਗ", "ਬੁੱਧ", "ਵੀਰ", "ਸ਼ੁੱਕ", "ਸ਼ਨਿੱ"},
+- daysWide: []string{"ਐਤਵਾਰ", "ਸੋਮਵਾਰ", "ਮੰਗਲਵਾਰ", "ਬੁੱਧਵਾਰ", "ਵੀਰਵਾਰ", "ਸ਼ੁੱਕਰਵਾਰ", "ਸ਼ਨਿੱਚਰਵਾਰ"},
+- periodsAbbreviated: []string{"ਪੂ.ਦੁ.", "ਬਾ.ਦੁ."},
+- periodsNarrow: []string{"ਸ.", "ਸ਼."},
+- periodsWide: []string{"ਪੂ.ਦੁ.", "ਬਾ.ਦੁ."},
+- erasAbbreviated: []string{"ਈ. ਪੂ.", "ਸੰਨ"},
+- erasNarrow: []string{"ਈ.ਪੂ.", "ਸੰਨ"},
+- erasWide: []string{"ਈਸਵੀ ਪੂਰਵ", "ਈਸਵੀ ਸੰਨ"},
+- timezones: map[string]string{"SRT": "ਸੂਰੀਨਾਮ ਵੇਲਾ", "HAT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WITA": "ਮੱਧ ਇੰਡੋਨੇਸ਼ੀਆਈ ਵੇਲਾ", "ChST": "ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ", "COT": "ਕੋਲੰਬੀਆ ਮਿਆਰੀ ਵੇਲਾ", "LHDT": "ਲੌਰਡ ਹੋਵੇ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "JDT": "ਜਪਾਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HENOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "EST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "CST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "ARST": "ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "AWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "HEPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WIB": "ਪੱਛਮੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "WEZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "HKST": "ਹਾਂਗ ਕਾਂਗ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ECT": "ਇਕਵੇਡੋਰ ਵੇਲਾ", "LHST": "ਲੌਰਡ ਹੋਵੇ ਮਿਆਰੀ ਵੇਲਾ", "HEEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNNOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਮਿਆਰੀ ਵੇਲਾ", "∅∅∅": "ਅਜੋਰੇਸ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HEOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਮਿਆਰੀ ਵੇਲਾ", "JST": "ਜਪਾਨ ਮਿਆਰੀ ਵੇਲਾ", "AST": "ਅਟਲਾਂਟਿਕ ਮਿਆਰੀ ਵੇਲਾ", "GYT": "ਗੁਯਾਨਾ ਵੇਲਾ", "IST": "ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ", "GFT": "ਫ੍ਰੈਂਚ ਗੁਏਨਾ ਵੇਲਾ", "OEZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "WAST": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "NZDT": "ਨਿਊਜ਼ੀਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MEZ": "ਮੱਧ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "SGT": "ਸਿੰਗਾਪੁਰ ਮਿਆਰੀ ਵੇਲਾ", "HECU": "ਕਿਊਬਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "GMT": "ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ", "ADT": "ਅਟਲਾਂਟਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "WIT": "ਪੂਰਬੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "ART": "ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "NZST": "ਨਿਊਜ਼ੀਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "TMT": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਮਿਆਰੀ ਵੇਲਾ", "WARST": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "BOT": "ਬੋਲੀਵੀਆ ਵੇਲਾ", "ACDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "EDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AKST": "ਅਲਾਸਕਾ ਮਿਆਰੀ ਵੇਲਾ", "AKDT": "ਅਲਾਸਕਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HADT": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AEDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "CHAST": "ਚੈਥਮ ਮਿਆਰੀ ਵੇਲਾ", "CHADT": "ਚੈਥਮ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MESZ": "ਮੱਧ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "MYT": "ਮਲੇਸ਼ੀਆ ਵੇਲਾ", "UYT": "ਉਰੂਗਵੇ ਮਿਆਰੀ ਵੇਲਾ", "VET": "ਵੈਨੇਜ਼ੂਏਲਾ ਵੇਲਾ", "PDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "HNOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "TMST": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ACST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "CAT": "ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ", "CDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "WAT": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "OESZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "EAT": "ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ", "COST": "ਕੋਲੰਬੀਆ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WART": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "HNCU": "ਕਿਊਬਾ ਮਿਆਰੀ ਵੇਲਾ", "WESZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ACWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HKT": "ਹਾਂਗ ਕਾਂਗ ਮਿਆਰੀ ਵੇਲਾ", "SAST": "ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "AWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AEST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "CLT": "ਚਿਲੀ ਮਿਆਰੀ ਵੇਲਾ", "MDT": "ਮਕਾਉ ਗਰਮੀ-ਰੁੱਤ ਸਮਾਂ", "HEPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HAST": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਮਿਆਰੀ ਵੇਲਾ", "BT": "ਭੂਟਾਨ ਵੇਲਾ", "ACWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "MST": "ਮਕਾਉ ਮਿਆਰੀ ਸਮਾਂ", "UYST": "ਉਰੂਗਵੇ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "PST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "CLST": "ਚਿਲੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ"},
++ locale: "pa_Guru",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ChST": "ChST", "BOT": "BOT", "ACDT": "ACDT", "WAST": "WAST", "CLST": "CLST", "NZDT": "NZDT", "ACWST": "ACWST", "EAT": "EAT", "PST": "PST", "PDT": "PDT", "HEOG": "HEOG", "JDT": "JDT", "HNPMX": "HNPMX", "WAT": "WAT", "TMT": "TMT", "AST": "AST", "∅∅∅": "∅∅∅", "WART": "WART", "COST": "COST", "CST": "CST", "CDT": "CDT", "BT": "BT", "CLT": "CLT", "NZST": "NZST", "MDT": "MDT", "MESZ": "MESZ", "LHDT": "LHDT", "MYT": "MYT", "HEPM": "HEPM", "WIB": "WIB", "TMST": "TMST", "CAT": "CAT", "HEEG": "HEEG", "CHAST": "CHAST", "WEZ": "WEZ", "VET": "VET", "HNT": "HNT", "SRT": "SRT", "ARST": "ARST", "EST": "EST", "EDT": "EDT", "MST": "MST", "HADT": "HADT", "HENOMX": "HENOMX", "HECU": "HECU", "WIT": "WIT", "ADT": "ADT", "AWDT": "AWDT", "JST": "JST", "GFT": "GFT", "HNOG": "HNOG", "WITA": "WITA", "HAST": "HAST", "HNNOMX": "HNNOMX", "WESZ": "WESZ", "OESZ": "OESZ", "HKT": "HKT", "UYST": "UYST", "ACWDT": "ACWDT", "HNCU": "HNCU", "ACST": "ACST", "AWST": "AWST", "LHST": "LHST", "HNPM": "HNPM", "CHADT": "CHADT", "HAT": "HAT", "GYT": "GYT", "COT": "COT", "OEZ": "OEZ", "SAST": "SAST", "ECT": "ECT", "HNEG": "HNEG", "IST": "IST", "AEST": "AEST", "AKST": "AKST", "AKDT": "AKDT", "ART": "ART", "MEZ": "MEZ", "HEPMX": "HEPMX", "WARST": "WARST", "HKST": "HKST", "GMT": "GMT", "UYT": "UYT", "AEDT": "AEDT", "SGT": "SGT"},
+ }
+ }
+ 
+@@ -133,7 +114,7 @@ func (pa *pa_Guru) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (pa *pa_Guru) MonthsAbbreviated() []string {
+- return pa.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -143,7 +124,7 @@ func (pa *pa_Guru) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (pa *pa_Guru) MonthsNarrow() []string {
+- return pa.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -153,7 +134,7 @@ func (pa *pa_Guru) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (pa *pa_Guru) MonthsWide() []string {
+- return pa.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -199,82 +180,13 @@ func (pa *pa_Guru) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'pa_Guru' and handles both Whole and Real numbers based on 'v'
+ func (pa *pa_Guru) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pa.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, pa.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pa.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'pa_Guru' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (pa *pa_Guru) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pa.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pa.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, pa.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'pa_Guru'
+@@ -282,65 +194,7 @@ func (pa *pa_Guru) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pa.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pa.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, pa.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, pa.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pa.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'pa_Guru'
+@@ -349,73 +203,7 @@ func (pa *pa_Guru) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pa.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pa.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, pa.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, pa.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pa.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'pa_Guru'
+@@ -423,17 +211,6 @@ func (pa *pa_Guru) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -442,17 +219,6 @@ func (pa *pa_Guru) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pa.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -461,17 +227,6 @@ func (pa *pa_Guru) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pa.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -480,19 +235,6 @@ func (pa *pa_Guru) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, pa.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pa.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -501,28 +243,6 @@ func (pa *pa_Guru) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, pa.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, pa.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -531,35 +251,6 @@ func (pa *pa_Guru) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, pa.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, pa.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -568,40 +259,6 @@ func (pa *pa_Guru) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, pa.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, pa.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -610,44 +267,5 @@ func (pa *pa_Guru) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, pa.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, pa.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := pa.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/pa_Guru_IN/pa_Guru_IN.go b/pa_Guru_IN/pa_Guru_IN.go
+index 7e362a0..e9d1887 100644
+--- a/pa_Guru_IN/pa_Guru_IN.go
++++ b/pa_Guru_IN/pa_Guru_IN.go
+@@ -42,32 +42,13 @@ type pa_Guru_IN struct {
+ // New returns a new instance of translator for the 'pa_Guru_IN' locale
+ func New() locales.Translator {
+ return &pa_Guru_IN{
+- locale: "pa_Guru_IN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "ਜਨ", "ਫ਼ਰ", "ਮਾਰਚ", "ਅਪ੍ਰੈ", "ਮਈ", "ਜੂਨ", "ਜੁਲਾ", "ਅਗ", "ਸਤੰ", "ਅਕਤੂ", "ਨਵੰ", "ਦਸੰ"},
+- monthsNarrow: []string{"", "ਜ", "ਫ਼", "ਮਾ", "ਅ", "ਮ", "ਜੂ", "ਜੁ", "ਅ", "ਸ", "ਅ", "ਨ", "ਦ"},
+- monthsWide: []string{"", "ਜਨਵਰੀ", "ਫ਼ਰਵਰੀ", "ਮਾਰਚ", "ਅਪ੍ਰੈਲ", "ਮਈ", "ਜੂਨ", "ਜੁਲਾਈ", "ਅਗਸਤ", "ਸਤੰਬਰ", "ਅਕਤੂਬਰ", "ਨਵੰਬਰ", "ਦਸੰਬਰ"},
+- daysAbbreviated: []string{"ਐਤ", "ਸੋਮ", "ਮੰਗਲ", "ਬੁੱਧ", "ਵੀਰ", "ਸ਼ੁੱਕਰ", "ਸ਼ਨਿੱਚਰ"},
+- daysNarrow: []string{"ਐ", "ਸੋ", "ਮੰ", "ਬੁੱ", "ਵੀ", "ਸ਼ੁੱ", "ਸ਼"},
+- daysShort: []string{"ਐਤ", "ਸੋਮ", "ਮੰਗ", "ਬੁੱਧ", "ਵੀਰ", "ਸ਼ੁੱਕ", "ਸ਼ਨਿੱ"},
+- daysWide: []string{"ਐਤਵਾਰ", "ਸੋਮਵਾਰ", "ਮੰਗਲਵਾਰ", "ਬੁੱਧਵਾਰ", "ਵੀਰਵਾਰ", "ਸ਼ੁੱਕਰਵਾਰ", "ਸ਼ਨਿੱਚਰਵਾਰ"},
+- periodsAbbreviated: []string{"ਪੂ.ਦੁ.", "ਬਾ.ਦੁ."},
+- periodsNarrow: []string{"ਸ.", "ਸ਼."},
+- periodsWide: []string{"ਪੂ.ਦੁ.", "ਬਾ.ਦੁ."},
+- erasAbbreviated: []string{"ਈ. ਪੂ.", "ਸੰਨ"},
+- erasNarrow: []string{"ਈ.ਪੂ.", "ਸੰਨ"},
+- erasWide: []string{"ਈਸਵੀ ਪੂਰਵ", "ਈਸਵੀ ਸੰਨ"},
+- timezones: map[string]string{"WESZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "CHAST": "ਚੈਥਮ ਮਿਆਰੀ ਵੇਲਾ", "WART": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "HNPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "VET": "ਵੈਨੇਜ਼ੂਏਲਾ ਵੇਲਾ", "PST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਮਿਆਰੀ ਵੇਲਾ", "MESZ": "ਮੱਧ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "JST": "ਜਪਾਨ ਮਿਆਰੀ ਵੇਲਾ", "WAST": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "EDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MYT": "ਮਲੇਸ਼ੀਆ ਵੇਲਾ", "PDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HEEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "GFT": "ਫ੍ਰੈਂਚ ਗੁਏਨਾ ਵੇਲਾ", "TMST": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WARST": "ਪੱਛਮੀ ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "UYST": "ਉਰੂਗਵੇ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "WEZ": "ਪੱਛਮੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "CHADT": "ਚੈਥਮ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ACDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "COST": "ਕੋਲੰਬੀਆ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "CDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "HEOG": "ਪੱਛਮੀ ਗ੍ਰੀਨਲੈਂਡ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HKT": "ਹਾਂਗ ਕਾਂਗ ਮਿਆਰੀ ਵੇਲਾ", "HEPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "SGT": "ਸਿੰਗਾਪੁਰ ਮਿਆਰੀ ਵੇਲਾ", "AWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "NZDT": "ਨਿਊਜ਼ੀਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "JDT": "ਜਪਾਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "TMT": "ਤੁਰਕਮੇਨਿਸਤਾਨ ਮਿਆਰੀ ਵੇਲਾ", "COT": "ਕੋਲੰਬੀਆ ਮਿਆਰੀ ਵੇਲਾ", "WIT": "ਪੂਰਬੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "HAT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "LHDT": "ਲੌਰਡ ਹੋਵੇ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "MEZ": "ਮੱਧ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "SAST": "ਦੱਖਣੀ ਅਫ਼ਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "WAT": "ਪੱਛਮੀ ਅਫਰੀਕਾ ਮਿਆਰੀ ਵੇਲਾ", "WIB": "ਪੱਛਮੀ ਇੰਡੋਨੇਸ਼ੀਆ ਵੇਲਾ", "AWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AEDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "LHST": "ਲੌਰਡ ਹੋਵੇ ਮਿਆਰੀ ਵੇਲਾ", "NZST": "ਨਿਊਜ਼ੀਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "GMT": "ਗ੍ਰੀਨਵਿਚ ਮੀਨ ਵੇਲਾ", "HEPMX": "ਮੈਕਸੀਕਨ ਪੈਸਿਫਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "AKDT": "ਅਲਾਸਕਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNT": "ਨਿਊਫਾਉਂਡਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "HKST": "ਹਾਂਗ ਕਾਂਗ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "BOT": "ਬੋਲੀਵੀਆ ਵੇਲਾ", "ChST": "ਚਾਮੋਰੋ ਮਿਆਰੀ ਵੇਲਾ", "ECT": "ਇਕਵੇਡੋਰ ਵੇਲਾ", "CST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "HNPM": "ਸੈਂਟ ਪੀਅਰੇ ਅਤੇ ਮਿਕੇਲਨ ਮਿਆਰੀ ਵੇਲਾ", "ACST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਮਿਆਰੀ ਵੇਲਾ", "AST": "ਅਟਲਾਂਟਿਕ ਮਿਆਰੀ ਵੇਲਾ", "UYT": "ਉਰੂਗਵੇ ਮਿਆਰੀ ਵੇਲਾ", "MST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਮਾਉਂਟੇਨ ਮਿਆਰੀ ਵੇਲਾ", "HENOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HADT": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HNNOMX": "ਉੱਤਰ ਪੱਛਮੀ ਮੈਕਸੀਕੋ ਮਿਆਰੀ ਵੇਲਾ", "HECU": "ਕਿਊਬਾ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ADT": "ਅਟਲਾਂਟਿਕ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "IST": "ਭਾਰਤੀ ਮਿਆਰੀ ਵੇਲਾ", "CLT": "ਚਿਲੀ ਮਿਆਰੀ ਵੇਲਾ", "CAT": "ਕੇਂਦਰੀ ਅਫਰੀਕਾ ਵੇਲਾ", "HNCU": "ਕਿਊਬਾ ਮਿਆਰੀ ਵੇਲਾ", "EST": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ", "OEZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਮਿਆਰੀ ਵੇਲਾ", "GYT": "ਗੁਯਾਨਾ ਵੇਲਾ", "MDT": "ਉੱਤਰੀ ਅਮਰੀਕੀ ਮਾਉਂਟੇਨ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "HAST": "ਹਵਾਈ-ਅਲੇਯੂਸ਼ਿਅਨ ਮਿਆਰੀ ਵੇਲਾ", "SRT": "ਸੂਰੀਨਾਮ ਵੇਲਾ", "ACWST": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਮਿਆਰੀ ਵੇਲਾ", "∅∅∅": "ਅਮੇਜ਼ਨ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "ARST": "ਅਰਜਨਟੀਨਾ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "HNEG": "ਪੂਰਬੀ ਗ੍ਰੀਨਲੈਂਡ ਮਿਆਰੀ ਵੇਲਾ", "EAT": "ਪੂਰਬੀ ਅਫਰੀਕਾ ਵੇਲਾ", "AKST": "ਅਲਾਸਕਾ ਮਿਆਰੀ ਵੇਲਾ", "CLST": "ਚਿਲੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "OESZ": "ਪੂਰਬੀ ਯੂਰਪੀ ਗਰਮੀਆਂ ਦਾ ਵੇਲਾ", "BT": "ਭੂਟਾਨ ਵੇਲਾ", "ACWDT": "ਆਸਟ੍ਰੇਲੀਆਈ ਕੇਂਦਰੀ ਪੱਛਮੀ ਪ੍ਰਕਾਸ਼ ਵੇਲਾ", "ART": "ਅਰਜਨਟੀਨਾ ਮਿਆਰੀ ਵੇਲਾ", "WITA": "ਮੱਧ ਇੰਡੋਨੇਸ਼ੀਆਈ ਵੇਲਾ", "AEST": "ਆਸਟ੍ਰੇਲੀਆਈ ਪੂਰਬੀ ਮਿਆਰੀ ਵੇਲਾ"},
++ locale: "pa_Guru_IN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SAST": "SAST", "EST": "EST", "ART": "ART", "HEPM": "HEPM", "AEDT": "AEDT", "WAT": "WAT", "GYT": "GYT", "HKST": "HKST", "BOT": "BOT", "CHADT": "CHADT", "WARST": "WARST", "HEOG": "HEOG", "SRT": "SRT", "EAT": "EAT", "WESZ": "WESZ", "GFT": "GFT", "COT": "COT", "HKT": "HKT", "HADT": "HADT", "AWST": "AWST", "AWDT": "AWDT", "ARST": "ARST", "CHAST": "CHAST", "PST": "PST", "WIT": "WIT", "MDT": "MDT", "NZST": "NZST", "MEZ": "MEZ", "HNPM": "HNPM", "UYT": "UYT", "WEZ": "WEZ", "WAST": "WAST", "OESZ": "OESZ", "WITA": "WITA", "ChST": "ChST", "HAST": "HAST", "JDT": "JDT", "MYT": "MYT", "PDT": "PDT", "AKST": "AKST", "WART": "WART", "WIB": "WIB", "MST": "MST", "LHST": "LHST", "BT": "BT", "HAT": "HAT", "HNOG": "HNOG", "CAT": "CAT", "NZDT": "NZDT", "AEST": "AEST", "CLT": "CLT", "CLST": "CLST", "AST": "AST", "ADT": "ADT", "HNNOMX": "HNNOMX", "ACDT": "ACDT", "JST": "JST", "ACWST": "ACWST", "∅∅∅": "∅∅∅", "EDT": "EDT", "CDT": "CDT", "HNEG": "HNEG", "HEEG": "HEEG", "ACWDT": "ACWDT", "HNCU": "HNCU", "VET": "VET", "OEZ": "OEZ", "TMT": "TMT", "HENOMX": "HENOMX", "LHDT": "LHDT", "AKDT": "AKDT", "TMST": "TMST", "ACST": "ACST", "UYST": "UYST", "IST": "IST", "HNPMX": "HNPMX", "SGT": "SGT", "HNT": "HNT", "COST": "COST", "ECT": "ECT", "HEPMX": "HEPMX", "CST": "CST", "GMT": "GMT", "MESZ": "MESZ", "HECU": "HECU"},
+ }
+ }
+ 
+@@ -133,7 +114,7 @@ func (pa *pa_Guru_IN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (pa *pa_Guru_IN) MonthsAbbreviated() []string {
+- return pa.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -143,7 +124,7 @@ func (pa *pa_Guru_IN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (pa *pa_Guru_IN) MonthsNarrow() []string {
+- return pa.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -153,7 +134,7 @@ func (pa *pa_Guru_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (pa *pa_Guru_IN) MonthsWide() []string {
+- return pa.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -199,82 +180,13 @@ func (pa *pa_Guru_IN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'pa_Guru_IN' and handles both Whole and Real numbers based on 'v'
+ func (pa *pa_Guru_IN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pa.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, pa.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pa.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'pa_Guru_IN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (pa *pa_Guru_IN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pa.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pa.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, pa.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'pa_Guru_IN'
+@@ -282,65 +194,7 @@ func (pa *pa_Guru_IN) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pa.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pa.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, pa.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, pa.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pa.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'pa_Guru_IN'
+@@ -349,73 +203,7 @@ func (pa *pa_Guru_IN) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pa.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pa.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, pa.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, pa.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pa.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'pa_Guru_IN'
+@@ -423,17 +211,6 @@ func (pa *pa_Guru_IN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -442,17 +219,6 @@ func (pa *pa_Guru_IN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pa.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -461,17 +227,6 @@ func (pa *pa_Guru_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pa.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -480,19 +235,6 @@ func (pa *pa_Guru_IN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, pa.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pa.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -501,28 +243,6 @@ func (pa *pa_Guru_IN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, pa.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, pa.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -531,35 +251,6 @@ func (pa *pa_Guru_IN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, pa.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, pa.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -568,40 +259,6 @@ func (pa *pa_Guru_IN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, pa.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, pa.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -610,44 +267,5 @@ func (pa *pa_Guru_IN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pa.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, pa.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, pa.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := pa.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/pl/pl.go b/pl/pl.go
+index 4030669..fd79e3b 100644
+--- a/pl/pl.go
++++ b/pl/pl.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"p.n.e.", "n.e."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"przed naszą erą", "naszej ery"},
+- timezones: map[string]string{"HNNOMX": "Meksyk Północno-Zachodni (czas standardowy)", "UYST": "Urugwaj (czas letni)", "HNT": "Nowa Fundlandia (czas standardowy)", "CAT": "Czas środkowoafrykański", "EAT": "Czas wschodnioafrykański", "WITA": "Indonezja Środkowa", "HNPM": "Saint-Pierre i Miquelon (czas standardowy)", "CHAST": "Chatham (czas standardowy)", "CHADT": "Chatham (czas letni)", "EST": "Czas wschodnioamerykański standardowy", "EDT": "Czas wschodnioamerykański letni", "HNPMX": "Meksyk (czas pacyficzny standardowy)", "UYT": "Urugwaj (czas standardowy)", "ACWDT": "Czas środkowo-zachodnioaustralijski letni", "MESZ": "Czas środkowoeuropejski letni", "TMST": "Turkmenistan (czas letni)", "LHDT": "Lord Howe (czas letni)", "AKST": "Alaska (czas standardowy)", "AKDT": "Alaska (czas letni)", "AST": "Czas atlantycki standardowy", "ADT": "Czas atlantycki letni", "ART": "Argentyna (czas standardowy)", "AWST": "Czas zachodnioaustralijski standardowy", "HEPM": "Saint-Pierre i Miquelon (czas letni)", "AEDT": "Czas wschodnioaustralijski letni", "BOT": "Boliwia", "ECT": "Ekwador", "SGT": "Singapur", "MST": "MST", "SRT": "Surinam", "PST": "Czas pacyficzny standardowy", "ACWST": "Czas środkowo-zachodnioaustralijski standardowy", "CLT": "Chile (czas standardowy)", "TMT": "Turkmenistan (czas standardowy)", "HEEG": "Grenlandia Wschodnia (czas letni)", "ACST": "Czas środkowoaustralijski standardowy", "∅∅∅": "Peru (czas letni)", "OEZ": "Czas wschodnioeuropejski standardowy", "WARST": "Argentyna Zachodnia (czas letni)", "WIB": "Indonezja Zachodnia", "BT": "Bhutan", "PDT": "Czas pacyficzny letni", "ACDT": "Czas środkowoaustralijski letni", "CDT": "Czas środkowoamerykański letni", "AEST": "Czas wschodnioaustralijski standardowy", "GFT": "Gujana Francuska", "GMT": "Czas uniwersalny", "MDT": "MDT", "HAST": "Hawaje-Aleuty (czas standardowy)", "VET": "Wenezuela", "HAT": "Nowa Fundlandia (czas letni)", "SAST": "Czas południowoafrykański", "JST": "Japonia (czas standardowy)", "WAST": "Czas zachodnioafrykański letni", "COT": "Kolumbia (czas standardowy)", "HECU": "Kuba (czas letni)", "JDT": "Japonia (czas letni)", "NZDT": "Nowa Zelandia (czas letni)", "WART": "Argentyna Zachodnia (czas standardowy)", "WEZ": "Czas zachodnioeuropejski standardowy", "WESZ": "Czas zachodnioeuropejski letni", "ARST": "Argentyna (czas letni)", "HNOG": "Grenlandia Zachodnia (czas standardowy)", "MEZ": "Czas środkowoeuropejski standardowy", "LHST": "Lord Howe (czas standardowy)", "HADT": "Hawaje-Aleuty (czas letni)", "IST": "Czas indyjski", "ChST": "Czamorro", "CLST": "Chile (czas letni)", "OESZ": "Czas wschodnioeuropejski letni", "HENOMX": "Meksyk Północno-Zachodni (czas letni)", "GYT": "Gujana", "WIT": "Indonezja Wschodnia", "HKT": "Hongkong (czas standardowy)", "HKST": "Hongkong (czas letni)", "NZST": "Nowa Zelandia (czas standardowy)", "COST": "Kolumbia (czas letni)", "HNCU": "Kuba (czas standardowy)", "HEPMX": "Meksyk (czas pacyficzny letni)", "HNEG": "Grenlandia Wschodnia (czas standardowy)", "WAT": "Czas zachodnioafrykański standardowy", "CST": "Czas środkowoamerykański standardowy", "MYT": "Malezja", "HEOG": "Grenlandia Zachodnia (czas letni)", "AWDT": "Czas zachodnioaustralijski letni"},
++ timezones: map[string]string{"UYST": "Urugwaj (czas letni)", "HECU": "Kuba (czas letni)", "CDT": "Czas środkowoamerykański letni", "WIB": "Indonezja Zachodnia", "MEZ": "Czas środkowoeuropejski standardowy", "GYT": "Gujana", "CHADT": "Chatham (czas letni)", "HNPMX": "Meksyk (czas pacyficzny standardowy)", "AKDT": "Alaska (czas letni)", "HENOMX": "Meksyk Północno-Zachodni (czas letni)", "WARST": "Argentyna Zachodnia (czas letni)", "CAT": "Czas środkowoafrykański", "WITA": "Indonezja Środkowa", "ACST": "Czas środkowoaustralijski standardowy", "HNT": "Nowa Fundlandia (czas standardowy)", "CHAST": "Chatham (czas standardowy)", "VET": "Wenezuela", "WAST": "Czas zachodnioafrykański letni", "GFT": "Gujana Francuska", "HAT": "Nowa Fundlandia (czas letni)", "NZDT": "Nowa Zelandia (czas letni)", "ACDT": "Czas środkowoaustralijski letni", "ACWST": "Czas środkowo-zachodnioaustralijski standardowy", "COT": "Kolumbia (czas standardowy)", "CLT": "Chile (czas standardowy)", "OEZ": "Czas wschodnioeuropejski standardowy", "PST": "Czas pacyficzny standardowy", "WEZ": "Czas zachodnioeuropejski standardowy", "SGT": "Singapur", "EST": "Czas wschodnioamerykański standardowy", "ADT": "Czas atlantycki letni", "BOT": "Boliwia", "MYT": "Malezja", "ART": "Argentyna (czas standardowy)", "LHDT": "Lord Howe (czas letni)", "HNCU": "Kuba (czas standardowy)", "MESZ": "Czas środkowoeuropejski letni", "AWDT": "Czas zachodnioaustralijski letni", "HNPM": "Saint-Pierre i Miquelon (czas standardowy)", "UYT": "Urugwaj (czas standardowy)", "HEOG": "Grenlandia Zachodnia (czas letni)", "CST": "Czas środkowoamerykański standardowy", "ECT": "Ekwador", "AST": "Czas atlantycki standardowy", "IST": "Czas indyjski", "AEDT": "Czas wschodnioaustralijski letni", "HEPMX": "Meksyk (czas pacyficzny letni)", "EAT": "Czas wschodnioafrykański", "HAST": "Hawaje-Aleuty (czas standardowy)", "AWST": "Czas zachodnioaustralijski standardowy", "WAT": "Czas zachodnioafrykański standardowy", "OESZ": "Czas wschodnioeuropejski letni", "HKT": "Hongkong (czas standardowy)", "HNEG": "Grenlandia Wschodnia (czas standardowy)", "HEPM": "Saint-Pierre i Miquelon (czas letni)", "JST": "Japonia (czas standardowy)", "ChST": "Czamorro", "HKST": "Hongkong (czas letni)", "PDT": "Czas pacyficzny letni", "TMT": "Turkmenistan (czas standardowy)", "TMST": "Turkmenistan (czas letni)", "CLST": "Chile (czas letni)", "SRT": "Surinam", "HADT": "Hawaje-Aleuty (czas letni)", "∅∅∅": "∅∅∅", "SAST": "Czas południowoafrykański", "EDT": "Czas wschodnioamerykański letni", "JDT": "Japonia (czas letni)", "WESZ": "Czas zachodnioeuropejski letni", "AKST": "Alaska (czas standardowy)", "HEEG": "Grenlandia Wschodnia (czas letni)", "AEST": "Czas wschodnioaustralijski standardowy", "WART": "Argentyna Zachodnia (czas standardowy)", "MST": "MST", "MDT": "MDT", "ARST": "Argentyna (czas letni)", "LHST": "Lord Howe (czas standardowy)", "BT": "Bhutan", "ACWDT": "Czas środkowo-zachodnioaustralijski letni", "WIT": "Indonezja Wschodnia", "COST": "Kolumbia (czas letni)", "NZST": "Nowa Zelandia (czas standardowy)", "GMT": "Czas uniwersalny", "HNNOMX": "Meksyk Północno-Zachodni (czas standardowy)", "HNOG": "Grenlandia Zachodnia (czas standardowy)"},
+ }
+ }
+ 
+diff --git a/pl_PL/pl_PL.go b/pl_PL/pl_PL.go
+index 8f18744..d737d00 100644
+--- a/pl_PL/pl_PL.go
++++ b/pl_PL/pl_PL.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type pl_PL struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'pl_PL' locale
+ func New() locales.Translator {
+ return &pl_PL{
+- locale: "pl_PL",
+- pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 5, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "sty", "lut", "mar", "kwi", "maj", "cze", "lip", "sie", "wrz", "paź", "lis", "gru"},
+- monthsNarrow: []string{"", "s", "l", "m", "k", "m", "c", "l", "s", "w", "p", "l", "g"},
+- monthsWide: []string{"", "stycznia", "lutego", "marca", "kwietnia", "maja", "czerwca", "lipca", "sierpnia", "września", "października", "listopada", "grudnia"},
+- daysAbbreviated: []string{"niedz.", "pon.", "wt.", "śr.", "czw.", "pt.", "sob."},
+- daysNarrow: []string{"n", "p", "w", "ś", "c", "p", "s"},
+- daysShort: []string{"nie", "pon", "wto", "śro", "czw", "pią", "sob"},
+- daysWide: []string{"niedziela", "poniedziałek", "wtorek", "środa", "czwartek", "piątek", "sobota"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"p.n.e.", "n.e."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"przed naszą erą", "naszej ery"},
+- timezones: map[string]string{"HKST": "Hongkong (czas letni)", "NZDT": "Nowa Zelandia (czas letni)", "∅∅∅": "Czas amazoński letni", "OESZ": "Czas wschodnioeuropejski letni", "ECT": "Ekwador", "COST": "Kolumbia (czas letni)", "BT": "Bhutan", "SRT": "Surinam", "CHADT": "Chatham (czas letni)", "JST": "Japonia (czas standardowy)", "UYT": "Urugwaj (czas standardowy)", "AKDT": "Alaska (czas letni)", "HAT": "Nowa Fundlandia (czas letni)", "HKT": "Hongkong (czas standardowy)", "SAST": "Czas południowoafrykański", "WAT": "Czas zachodnioafrykański standardowy", "HNCU": "Kuba (czas standardowy)", "MDT": "MDT", "HNPM": "Saint-Pierre i Miquelon (czas standardowy)", "BOT": "Boliwia", "AKST": "Alaska (czas standardowy)", "AWST": "Czas zachodnioaustralijski standardowy", "MEZ": "Czas środkowoeuropejski standardowy", "HNEG": "Grenlandia Wschodnia (czas standardowy)", "ACST": "Czas środkowoaustralijski standardowy", "UYST": "Urugwaj (czas letni)", "ARST": "Argentyna (czas letni)", "AEDT": "Czas wschodnioaustralijski letni", "CHAST": "Chatham (czas standardowy)", "EAT": "Czas wschodnioafrykański", "GMT": "Czas uniwersalny", "PST": "Czas pacyficzny standardowy", "IST": "Czas indyjski", "HEEG": "Grenlandia Wschodnia (czas letni)", "WART": "Argentyna Zachodnia (czas standardowy)", "SGT": "Singapur", "MST": "MST", "WESZ": "Czas zachodnioeuropejski letni", "HEOG": "Grenlandia Zachodnia (czas letni)", "WEZ": "Czas zachodnioeuropejski standardowy", "ACWST": "Czas środkowo-zachodnioaustralijski standardowy", "ChST": "Czamorro", "WAST": "Czas zachodnioafrykański letni", "COT": "Kolumbia (czas standardowy)", "HENOMX": "Meksyk Północno-Zachodni (czas letni)", "GYT": "Gujana", "WIT": "Indonezja Wschodnia", "MESZ": "Czas środkowoeuropejski letni", "HAST": "Hawaje-Aleuty (czas standardowy)", "PDT": "Czas pacyficzny letni", "CLT": "Chile (czas standardowy)", "JDT": "Japonia (czas letni)", "HNNOMX": "Meksyk Północno-Zachodni (czas standardowy)", "EST": "Czas wschodnioamerykański standardowy", "ADT": "Czas atlantycki letni", "MYT": "Malezja", "HNPMX": "Meksyk (czas pacyficzny standardowy)", "HADT": "Hawaje-Aleuty (czas letni)", "ART": "Argentyna (czas standardowy)", "CLST": "Chile (czas letni)", "CST": "Czas środkowoamerykański standardowy", "VET": "Wenezuela", "AST": "Czas atlantycki standardowy", "WIB": "Indonezja Zachodnia", "GFT": "Gujana Francuska", "TMT": "Turkmenistan (czas standardowy)", "AWDT": "Czas zachodnioaustralijski letni", "WITA": "Indonezja Środkowa", "NZST": "Nowa Zelandia (czas standardowy)", "CAT": "Czas środkowoafrykański", "OEZ": "Czas wschodnioeuropejski standardowy", "EDT": "Czas wschodnioamerykański letni", "HEPMX": "Meksyk (czas pacyficzny letni)", "ACWDT": "Czas środkowo-zachodnioaustralijski letni", "HNOG": "Grenlandia Zachodnia (czas standardowy)", "ACDT": "Czas środkowoaustralijski letni", "WARST": "Argentyna Zachodnia (czas letni)", "LHDT": "Lord Howe (czas letni)", "LHST": "Lord Howe (czas standardowy)", "TMST": "Turkmenistan (czas letni)", "HECU": "Kuba (czas letni)", "CDT": "Czas środkowoamerykański letni", "HNT": "Nowa Fundlandia (czas standardowy)", "AEST": "Czas wschodnioaustralijski standardowy", "HEPM": "Saint-Pierre i Miquelon (czas letni)"},
++ locale: "pl_PL",
++ pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AWST": "AWST", "BT": "BT", "HEPMX": "HEPMX", "ECT": "ECT", "SRT": "SRT", "WART": "WART", "WIT": "WIT", "∅∅∅": "∅∅∅", "COST": "COST", "MYT": "MYT", "UYST": "UYST", "OEZ": "OEZ", "TMT": "TMT", "MEZ": "MEZ", "EAT": "EAT", "AEDT": "AEDT", "CST": "CST", "ACDT": "ACDT", "CHADT": "CHADT", "SGT": "SGT", "HKT": "HKT", "CLST": "CLST", "HADT": "HADT", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "HNCU": "HNCU", "CAT": "CAT", "HAST": "HAST", "JDT": "JDT", "VET": "VET", "WAT": "WAT", "AKST": "AKST", "OESZ": "OESZ", "HAT": "HAT", "MST": "MST", "HEOG": "HEOG", "SAST": "SAST", "ADT": "ADT", "HEEG": "HEEG", "PST": "PST", "WESZ": "WESZ", "HECU": "HECU", "GFT": "GFT", "COT": "COT", "AST": "AST", "HKST": "HKST", "EST": "EST", "LHDT": "LHDT", "HEPM": "HEPM", "ACWST": "ACWST", "WEZ": "WEZ", "WARST": "WARST", "MESZ": "MESZ", "LHST": "LHST", "IST": "IST", "HNPMX": "HNPMX", "HENOMX": "HENOMX", "WIB": "WIB", "ACST": "ACST", "AWDT": "AWDT", "EDT": "EDT", "TMST": "TMST", "WITA": "WITA", "ChST": "ChST", "ARST": "ARST", "UYT": "UYT", "GYT": "GYT", "HNOG": "HNOG", "MDT": "MDT", "JST": "JST", "HNPM": "HNPM", "AEST": "AEST", "WAST": "WAST", "HNT": "HNT", "CLT": "CLT", "NZDT": "NZDT", "ART": "ART", "CHAST": "CHAST", "PDT": "PDT", "AKDT": "AKDT", "CDT": "CDT", "GMT": "GMT", "BOT": "BOT", "HNEG": "HNEG", "NZST": "NZST"},
+ }
+ }
+ 
+@@ -102,8 +77,8 @@ func (pl *pl_PL) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+ i := int64(n)
+- iMod100 := i % 100
+ iMod10 := i % 10
++ iMod100 := i % 100
+ 
+ if i == 1 && v == 0 {
+ return locales.PluralRuleOne
+@@ -166,7 +141,7 @@ func (pl *pl_PL) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (pl *pl_PL) MonthsAbbreviated() []string {
+- return pl.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -176,7 +151,7 @@ func (pl *pl_PL) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (pl *pl_PL) MonthsNarrow() []string {
+- return pl.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -186,7 +161,7 @@ func (pl *pl_PL) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (pl *pl_PL) MonthsWide() []string {
+- return pl.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -232,75 +207,13 @@ func (pl *pl_PL) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'pl_PL' and handles both Whole and Real numbers based on 'v'
+ func (pl *pl_PL) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(pl.group) - 1; j >= 0; j-- {
+- b = append(b, pl.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'pl_PL' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (pl *pl_PL) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pl.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, pl.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'pl_PL'
+@@ -308,58 +221,7 @@ func (pl *pl_PL) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pl.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(pl.group) - 1; j >= 0; j-- {
+- b = append(b, pl.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pl.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, pl.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'pl_PL'
+@@ -368,65 +230,7 @@ func (pl *pl_PL) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pl.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(pl.group) - 1; j >= 0; j-- {
+- b = append(b, pl.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, pl.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, pl.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, pl.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'pl_PL'
+@@ -434,27 +238,6 @@ func (pl *pl_PL) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -463,17 +246,6 @@ func (pl *pl_PL) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pl.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -482,17 +254,6 @@ func (pl *pl_PL) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -501,19 +262,6 @@ func (pl *pl_PL) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, pl.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -522,19 +270,6 @@ func (pl *pl_PL) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -543,26 +278,6 @@ func (pl *pl_PL) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -571,30 +286,6 @@ func (pl *pl_PL) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -603,34 +294,5 @@ func (pl *pl_PL) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := pl.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/prg/prg.go b/prg/prg.go
+index cba023c..55c6ffd 100644
+--- a/prg/prg.go
++++ b/prg/prg.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"LHDT": "LHDT", "ACDT": "ACDT", "COST": "COST", "MST": "MST", "WESZ": "Wakkariskas Eurōpas daggas kerdā", "HNT": "HNT", "TMT": "TMT", "UYST": "UYST", "AWDT": "AWDT", "HNPM": "HNPM", "NZST": "NZST", "SAST": "SAST", "AKDT": "AKDT", "HADT": "HADT", "HNOG": "HNOG", "JDT": "JDT", "HNEG": "HNEG", "BT": "BT", "PDT": "Pacīfiskas Amērikas daggas kerdā", "MEZ": "Centrālas Eurōpas zēimas kerdā", "GFT": "GFT", "WAT": "WAT", "AKST": "AKST", "ACWDT": "ACWDT", "IST": "IST", "NZDT": "NZDT", "TMST": "TMST", "WART": "WART", "WARST": "WARST", "EDT": "Dēiniskas Amērikas daggas kerdā", "CDT": "Centrālas Amērikas daggas kerdā", "ART": "ART", "ECT": "ECT", "CAT": "CAT", "HAST": "HAST", "CLST": "CLST", "ChST": "ChST", "WITA": "WITA", "CHAST": "CHAST", "BOT": "BOT", "HEEG": "HEEG", "OESZ": "Dēiniskas Eurōpas daggas kerdā", "HNCU": "HNCU", "UYT": "UYT", "ACWST": "ACWST", "HENOMX": "HENOMX", "CLT": "CLT", "HEPMX": "HEPMX", "ADT": "Atlāntiska daggas kerdā", "HEPM": "HEPM", "SRT": "SRT", "WEZ": "Wakkariskas Eurōpas zēimas kerdā", "AWST": "AWST", "CHADT": "CHADT", "WAST": "WAST", "CST": "Centrālas Amērikas zēimas kerdā", "WIB": "WIB", "VET": "VET", "GYT": "GYT", "HNNOMX": "HNNOMX", "HECU": "HECU", "∅∅∅": "∅∅∅", "MDT": "MDT", "HKST": "HKST", "SGT": "SGT", "HAT": "HAT", "PST": "Pacīfiskas Amērikas zēimas kerdā", "LHST": "LHST", "AST": "Atlāntiska zēimas kerdā", "ARST": "ARST", "HKT": "HKT", "JST": "JST", "EAT": "EAT", "MYT": "MYT", "HEOG": "HEOG", "AEST": "AEST", "WIT": "WIT", "AEDT": "AEDT", "MESZ": "Centrālas Eurōpas daggas kerdā", "ACST": "ACST", "OEZ": "Dēiniskas Eurōpas zēimas kerdā", "GMT": "Greenwich kerdā", "HNPMX": "HNPMX", "EST": "Dēiniskas Amērikas zēimas kerdā", "COT": "COT"},
++ timezones: map[string]string{"HNEG": "HNEG", "ECT": "ECT", "HEPMX": "HEPMX", "AKST": "AKST", "COST": "COST", "CST": "Centrālas Amērikas zēimas kerdā", "HAST": "HAST", "AWST": "AWST", "ACWST": "ACWST", "GFT": "GFT", "NZDT": "NZDT", "MEZ": "Centrālas Eurōpas zēimas kerdā", "HNNOMX": "HNNOMX", "∅∅∅": "∅∅∅", "MDT": "Amērikas gārban daggas kerdā", "WIT": "WIT", "WITA": "WITA", "WESZ": "Wakkariskas Eurōpas daggas kerdā", "HNT": "HNT", "HKST": "HKST", "NZST": "NZST", "SRT": "SRT", "PST": "Pacīfiskas Amērikas zēimas kerdā", "AEST": "AEST", "BOT": "BOT", "WART": "WART", "TMST": "TMST", "SAST": "SAST", "ADT": "Atlāntiska daggas kerdā", "ARST": "ARST", "HENOMX": "HENOMX", "MYT": "MYT", "HEPM": "HEPM", "OEZ": "Dēiniskas Eurōpas zēimas kerdā", "ACST": "ACST", "AEDT": "AEDT", "VET": "VET", "HNCU": "HNCU", "HECU": "HECU", "HNPMX": "HNPMX", "EDT": "Dēiniskas Amērikas daggas kerdā", "CAT": "CAT", "HADT": "HADT", "IST": "IST", "PDT": "Pacīfiskas Amērikas daggas kerdā", "HAT": "HAT", "TMT": "TMT", "CLT": "CLT", "CDT": "Centrālas Amērikas daggas kerdā", "WIB": "WIB", "MESZ": "Centrālas Eurōpas daggas kerdā", "AWDT": "AWDT", "LHST": "LHST", "UYT": "UYT", "CHAST": "CHAST", "WAST": "WAST", "WARST": "WARST", "GYT": "GYT", "EAT": "EAT", "HNPM": "HNPM", "JST": "JST", "EST": "Dēiniskas Amērikas zēimas kerdā", "ChST": "ChST", "OESZ": "Dēiniskas Eurōpas daggas kerdā", "LHDT": "LHDT", "UYST": "UYST", "WAT": "WAT", "HEOG": "HEOG", "ART": "ART", "HEEG": "HEEG", "BT": "BT", "COT": "COT", "CLST": "CLST", "GMT": "Greenwich kerdā", "ACDT": "ACDT", "CHADT": "CHADT", "AKDT": "AKDT", "ACWDT": "ACWDT", "SGT": "SGT", "HKT": "HKT", "HNOG": "HNOG", "AST": "Atlāntiska zēimas kerdā", "MST": "Amērikas gārban zēimas kerdā", "JDT": "JDT", "WEZ": "Wakkariskas Eurōpas zēimas kerdā"},
+ }
+ }
+ 
+diff --git a/prg_001/prg_001.go b/prg_001/prg_001.go
+index d902df9..83a32b4 100644
+--- a/prg_001/prg_001.go
++++ b/prg_001/prg_001.go
+@@ -10,64 +10,45 @@ import (
+ )
+ 
+ type prg_001 struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'prg_001' locale
+ func New() locales.Translator {
+ return &prg_001{
+- locale: "prg_001",
+- pluralsCardinal: []locales.PluralRule{1, 2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "rag", "was", "pūl", "sak", "zal", "sīm", "līp", "dag", "sil", "spa", "lap", "sal"},
+- monthsNarrow: []string{"", "R", "W", "P", "S", "Z", "S", "L", "D", "S", "S", "L", "S"},
+- monthsWide: []string{"", "rags", "wassarins", "pūlis", "sakkis", "zallaws", "sīmenis", "līpa", "daggis", "sillins", "spallins", "lapkrūtis", "sallaws"},
+- daysAbbreviated: []string{"nad", "pan", "wis", "pus", "ket", "pēn", "sab"},
+- daysNarrow: []string{"N", "P", "W", "P", "K", "P", "S"},
+- daysWide: []string{"nadīli", "panadīli", "wisasīdis", "pussisawaiti", "ketwirtiks", "pēntniks", "sabattika"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsWide: []string{"ankstāinan", "pa pussideinan"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"WART": "WART", "HAST": "HAST", "WEZ": "Wakkariskas Eurōpas zēimas kerdā", "HNT": "HNT", "HNOG": "HNOG", "NZST": "NZST", "CHADT": "CHADT", "OESZ": "Dēiniskas Eurōpas daggas kerdā", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HECU": "HECU", "UYST": "UYST", "ARST": "ARST", "NZDT": "NZDT", "CLST": "CLST", "AWST": "AWST", "MESZ": "Centrālas Eurōpas daggas kerdā", "JST": "JST", "JDT": "JDT", "MYT": "MYT", "HEOG": "HEOG", "CHAST": "CHAST", "EAT": "EAT", "WARST": "WARST", "AKDT": "AKDT", "HKT": "HKT", "GFT": "GFT", "ACST": "ACST", "COT": "COT", "MST": "Amērikas gārban zēimas kerdā", "VET": "VET", "WIT": "WIT", "CST": "Centrālas Amērikas zēimas kerdā", "AST": "Atlāntiska zēimas kerdā", "ADT": "Atlāntiska daggas kerdā", "ACWST": "ACWST", "HEPM": "HEPM", "CDT": "Centrālas Amērikas daggas kerdā", "ART": "ART", "HNPM": "HNPM", "MEZ": "Centrālas Eurōpas zēimas kerdā", "TMST": "TMST", "SRT": "SRT", "PST": "Pacīfiskas Amērikas zēimas kerdā", "SAST": "SAST", "WAT": "WAT", "BT": "BT", "WESZ": "Wakkariskas Eurōpas daggas kerdā", "HEEG": "HEEG", "EST": "Dēiniskas Amērikas zēimas kerdā", "EDT": "Dēiniskas Amērikas daggas kerdā", "WIB": "WIB", "PDT": "Pacīfiskas Amērikas daggas kerdā", "AEST": "AEST", "AEDT": "AEDT", "WAST": "WAST", "SGT": "SGT", "HEPMX": "HEPMX", "GMT": "Greenwich kerdā", "HADT": "HADT", "LHST": "LHST", "IST": "IST", "CLT": "CLT", "∅∅∅": "∅∅∅", "TMT": "TMT", "CAT": "CAT", "GYT": "GYT", "HAT": "HAT", "BOT": "BOT", "ECT": "ECT", "UYT": "UYT", "LHDT": "LHDT", "HNEG": "HNEG", "OEZ": "Dēiniskas Eurōpas zēimas kerdā", "COST": "COST", "MDT": "Amērikas gārban daggas kerdā", "WITA": "WITA", "ChST": "ChST", "ACDT": "ACDT", "HNPMX": "HNPMX", "AKST": "AKST", "ACWDT": "ACWDT", "AWDT": "AWDT", "HKST": "HKST", "HNCU": "HNCU"},
++ locale: "prg_001",
++ pluralsCardinal: []locales.PluralRule{1, 2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CST": "CST", "MYT": "MYT", "HNPM": "HNPM", "IST": "IST", "VET": "VET", "ART": "ART", "HAST": "HAST", "ACDT": "ACDT", "AWST": "AWST", "AEST": "AEST", "GFT": "GFT", "SAST": "SAST", "COT": "COT", "LHST": "LHST", "PST": "PST", "WAT": "WAT", "CLST": "CLST", "ECT": "ECT", "HADT": "HADT", "HNEG": "HNEG", "ACWDT": "ACWDT", "PDT": "PDT", "BT": "BT", "HNOG": "HNOG", "CLT": "CLT", "AST": "AST", "ChST": "ChST", "MESZ": "MESZ", "ACST": "ACST", "WESZ": "WESZ", "AKST": "AKST", "WITA": "WITA", "EAT": "EAT", "JST": "JST", "AWDT": "AWDT", "HECU": "HECU", "WAST": "WAST", "∅∅∅": "∅∅∅", "TMT": "TMT", "NZST": "NZST", "HEEG": "HEEG", "HEPM": "HEPM", "OEZ": "OEZ", "MST": "MST", "UYT": "UYT", "EDT": "EDT", "HNPMX": "HNPMX", "WIT": "WIT", "WIB": "WIB", "CDT": "CDT", "NZDT": "NZDT", "ADT": "ADT", "WART": "WART", "EST": "EST", "JDT": "JDT", "LHDT": "LHDT", "HNCU": "HNCU", "BOT": "BOT", "SRT": "SRT", "MEZ": "MEZ", "HNT": "HNT", "HAT": "HAT", "GYT": "GYT", "TMST": "TMST", "UYST": "UYST", "WEZ": "WEZ", "SGT": "SGT", "AKDT": "AKDT", "COST": "COST", "HEOG": "HEOG", "HKST": "HKST", "HENOMX": "HENOMX", "CHADT": "CHADT", "MDT": "MDT", "ARST": "ARST", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "OESZ": "OESZ", "WARST": "WARST", "HKT": "HKT", "CAT": "CAT", "GMT": "GMT", "AEDT": "AEDT", "CHAST": "CHAST", "ACWST": "ACWST"},
+ }
+ }
+ 
+@@ -127,7 +108,7 @@ func (prg *prg_001) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (prg *prg_001) MonthsAbbreviated() []string {
+- return prg.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -137,7 +118,7 @@ func (prg *prg_001) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (prg *prg_001) MonthsNarrow() []string {
+- return prg.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -147,7 +128,7 @@ func (prg *prg_001) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (prg *prg_001) MonthsWide() []string {
+- return prg.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -193,75 +174,13 @@ func (prg *prg_001) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'prg_001' and handles both Whole and Real numbers based on 'v'
+ func (prg *prg_001) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, prg.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(prg.group) - 1; j >= 0; j-- {
+- b = append(b, prg.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, prg.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'prg_001' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (prg *prg_001) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, prg.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, prg.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, prg.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'prg_001'
+@@ -269,58 +188,7 @@ func (prg *prg_001) FmtCurrency(num float64, v uint64, currency currency.Type) s
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := prg.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, prg.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(prg.group) - 1; j >= 0; j-- {
+- b = append(b, prg.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, prg.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, prg.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, prg.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'prg_001'
+@@ -329,65 +197,7 @@ func (prg *prg_001) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := prg.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, prg.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(prg.group) - 1; j >= 0; j-- {
+- b = append(b, prg.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, prg.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, prg.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, prg.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, prg.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'prg_001'
+@@ -395,27 +205,6 @@ func (prg *prg_001) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,28 +213,6 @@ func (prg *prg_001) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x20, 0x73, 0x74}...)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,18 +221,6 @@ func (prg *prg_001) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0x6d, 0x65, 0x74, 0x74, 0x61, 0x73}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, prg.monthsWide[t.Month()]...)
+-
+ return string(b)
+ }
+ 
+@@ -474,21 +229,6 @@ func (prg *prg_001) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, prg.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0x6d, 0x65, 0x74, 0x74, 0x61, 0x73}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, prg.monthsWide[t.Month()]...)
+-
+ return string(b)
+ }
+ 
+@@ -497,19 +237,6 @@ func (prg *prg_001) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, prg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -518,26 +245,6 @@ func (prg *prg_001) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, prg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, prg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -546,30 +253,6 @@ func (prg *prg_001) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, prg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, prg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -578,34 +261,5 @@ func (prg *prg_001) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, prg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, prg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := prg.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ps/ps.go b/ps/ps.go
+index 945febd..c90adf7 100644
+--- a/ps/ps.go
++++ b/ps/ps.go
+@@ -70,7 +70,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"له میلاد وړاندې", "م."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"له میلاد څخه وړاندې", "له میلاد څخه وروسته"},
+- timezones: map[string]string{"OEZ": "OEZ", "ART": "ART", "HNOG": "HNOG", "WITA": "WITA", "SAST": "SAST", "WAT": "WAT", "∅∅∅": "∅∅∅", "TMT": "TMT", "SGT": "SGT", "AST": "AST", "MDT": "MDT", "ACWST": "ACWST", "ACWDT": "ACWDT", "MESZ": "MESZ", "HNT": "HNT", "AWST": "AWST", "AWDT": "AWDT", "IST": "IST", "COT": "COT", "CHAST": "CHAST", "LHDT": "LHDT", "ACDT": "ACDT", "HADT": "HADT", "SRT": "SRT", "HAT": "HAT", "HEPM": "HEPM", "NZDT": "NZDT", "HNCU": "HNCU", "MYT": "MYT", "BOT": "BOT", "GMT": "گرينويچ وخت", "HENOMX": "HENOMX", "CDT": "CDT", "ADT": "ADT", "HAST": "HAST", "MEZ": "MEZ", "CLST": "CLST", "EDT": "EDT", "HEOG": "HEOG", "HNPM": "HNPM", "NZST": "NZST", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "VET": "VET", "LHST": "LHST", "JDT": "JDT", "GFT": "GFT", "WART": "WART", "AEST": "AEST", "ECT": "ECT", "WARST": "WARST", "ACST": "ACST", "HECU": "HECU", "COST": "COST", "WIB": "WIB", "MST": "MST", "WESZ": "د لودیځې اورپا د اوړي وخت", "HKT": "HKT", "JST": "JST", "WAST": "WAST", "EAT": "EAT", "CST": "CST", "UYT": "UYT", "WEZ": "د لودیځې اروپا معیاري وخت", "HKST": "HKST", "AEDT": "AEDT", "AKDT": "AKDT", "WIT": "WIT", "CAT": "CAT", "UYST": "UYST", "HEEG": "HEEG", "ChST": "ChST", "OESZ": "OESZ", "EST": "EST", "GYT": "GYT", "ARST": "ARST", "PST": "PST", "PDT": "PDT", "TMST": "TMST", "HEPMX": "HEPMX", "AKST": "AKST", "BT": "BT", "CHADT": "CHADT", "CLT": "CLT", "HNEG": "HNEG"},
++ timezones: map[string]string{"AEDT": "AEDT", "UYT": "UYT", "VET": "VET", "WAT": "WAT", "∅∅∅": "∅∅∅", "ARST": "ARST", "HNPM": "HNPM", "LHDT": "LHDT", "AST": "AST", "UYST": "UYST", "COT": "COT", "COST": "COST", "HKT": "HKT", "HEPM": "HEPM", "HAT": "HAT", "WART": "WART", "WAST": "WAST", "HNT": "HNT", "TMT": "TMT", "EST": "EST", "ECT": "ECT", "LHST": "LHST", "HNCU": "HNCU", "HEPMX": "HEPMX", "OEZ": "OEZ", "NZDT": "NZDT", "EAT": "EAT", "HNEG": "HNEG", "JDT": "JDT", "PDT": "PDT", "HKST": "HKST", "CST": "CST", "MDT": "MDT", "GMT": "گرينويچ وخت", "JST": "JST", "AWDT": "AWDT", "CHADT": "CHADT", "HECU": "HECU", "WITA": "WITA", "CDT": "CDT", "ADT": "ADT", "SRT": "SRT", "HEEG": "HEEG", "CHAST": "CHAST", "ACST": "ACST", "ACWST": "ACWST", "ACWDT": "ACWDT", "WESZ": "د لودیځې اورپا د اوړي وخت", "TMST": "TMST", "CLST": "CLST", "BOT": "BOT", "HENOMX": "HENOMX", "AKDT": "AKDT", "SAST": "SAST", "EDT": "EDT", "ChST": "ChST", "AEST": "AEST", "AKST": "AKST", "IST": "IST", "HEOG": "HEOG", "GYT": "GYT", "NZST": "NZST", "MST": "MST", "MESZ": "MESZ", "AWST": "AWST", "HNNOMX": "HNNOMX", "WARST": "WARST", "WEZ": "د لودیځې اروپا معیاري وخت", "SGT": "SGT", "OESZ": "OESZ", "CLT": "CLT", "ART": "ART", "HADT": "HADT", "BT": "BT", "WIT": "WIT", "CAT": "CAT", "WIB": "WIB", "MEZ": "MEZ", "HNPMX": "HNPMX", "GFT": "GFT", "HNOG": "HNOG", "HAST": "HAST", "ACDT": "ACDT", "MYT": "MYT", "PST": "PST"},
+ }
+ }
+ 
+diff --git a/ps_AF/ps_AF.go b/ps_AF/ps_AF.go
+index 30deab7..40e6274 100644
+--- a/ps_AF/ps_AF.go
++++ b/ps_AF/ps_AF.go
+@@ -10,67 +10,45 @@ import (
+ )
+ 
+ type ps_AF struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ps_AF' locale
+ func New() locales.Translator {
+ return &ps_AF{
+- locale: "ps_AF",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: "٫",
+- group: "٬",
+- minus: "‎-‎",
+- percent: "٪",
+- perMille: "؉",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "جنوري", "فبروري", "مارچ", "اپریل", "مۍ", "جون", "جولای", "اګست", "سپتمبر", "اکتوبر", "نومبر", "دسمبر"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "جنوري", "فبروري", "مارچ", "اپریل", "مۍ", "جون", "جولای", "اګست", "سپتمبر", "اکتوبر", "نومبر", "دسمبر"},
+- daysAbbreviated: []string{"یکشنبه", "دوشنبه", "سه\u200cشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"},
+- daysShort: []string{"یکشنبه", "دوشنبه", "سه\u200cشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"},
+- daysWide: []string{"یکشنبه", "دوشنبه", "سه\u200cشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"},
+- periodsAbbreviated: []string{"غ.م.", "غ.و."},
+- periodsNarrow: []string{"غ.م.", "غ.و."},
+- periodsWide: []string{"غ.م.", "غ.و."},
+- erasAbbreviated: []string{"له میلاد وړاندې", "م."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"له میلاد څخه وړاندې", "له میلاد څخه وروسته"},
+- timezones: map[string]string{"SAST": "SAST", "MYT": "MYT", "UYST": "UYST", "PDT": "PDT", "AWST": "AWST", "AWDT": "AWDT", "WAST": "WAST", "COST": "COST", "GMT": "گرينويچ وخت", "AEST": "AEST", "HKT": "HKT", "CST": "CST", "CDT": "CDT", "ADT": "ADT", "ACWDT": "ACWDT", "CLT": "CLT", "WART": "WART", "HADT": "HADT", "LHDT": "LHDT", "NZST": "NZST", "OESZ": "OESZ", "MDT": "MDT", "AKST": "AKST", "VET": "VET", "SRT": "SRT", "HAT": "HAT", "CLST": "CLST", "∅∅∅": "∅∅∅", "ACDT": "ACDT", "ECT": "ECT", "CAT": "CAT", "GYT": "GYT", "HEOG": "HEOG", "HNPM": "HNPM", "CHAST": "CHAST", "HEEG": "HEEG", "EST": "EST", "AST": "AST", "UYT": "UYT", "WIT": "WIT", "NZDT": "NZDT", "WAT": "WAT", "HNPMX": "HNPMX", "HNT": "HNT", "COT": "COT", "MST": "MST", "WEZ": "د لودیځې اروپا معیاري وخت", "ACWST": "ACWST", "WITA": "WITA", "CHADT": "CHADT", "TMST": "TMST", "HECU": "HECU", "ART": "ART", "AEDT": "AEDT", "HEPMX": "HEPMX", "WIB": "WIB", "MEZ": "MEZ", "LHST": "LHST", "IST": "IST", "BOT": "BOT", "ACST": "ACST", "HENOMX": "HENOMX", "WESZ": "د لودیځې اورپا د اوړي وخت", "MESZ": "MESZ", "GFT": "GFT", "EAT": "EAT", "HNOG": "HNOG", "PST": "PST", "TMT": "TMT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "HKST": "HKST", "BT": "BT", "ARST": "ARST", "JST": "JST", "JDT": "JDT", "ChST": "ChST", "OEZ": "OEZ", "EDT": "EDT", "HAST": "HAST", "WARST": "WARST", "HNCU": "HNCU", "AKDT": "AKDT", "SGT": "SGT", "HEPM": "HEPM"},
++ locale: "ps_AF",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"OESZ": "OESZ", "EST": "EST", "CST": "CST", "MDT": "MDT", "ARST": "ARST", "ADT": "ADT", "AWST": "AWST", "CHAST": "CHAST", "TMST": "TMST", "CLT": "CLT", "SRT": "SRT", "MESZ": "MESZ", "HEEG": "HEEG", "LHST": "LHST", "HNPMX": "HNPMX", "MST": "MST", "JST": "JST", "MYT": "MYT", "∅∅∅": "∅∅∅", "VET": "VET", "AKST": "AKST", "ECT": "ECT", "ACWDT": "ACWDT", "UYT": "UYT", "HNEG": "HNEG", "PST": "PST", "SGT": "SGT", "HAT": "HAT", "WART": "WART", "HKST": "HKST", "BOT": "BOT", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "WESZ": "WESZ", "OEZ": "OEZ", "WIT": "WIT", "HNOG": "HNOG", "ACDT": "ACDT", "HECU": "HECU", "GFT": "GFT", "HNT": "HNT", "COST": "COST", "EAT": "EAT", "HENOMX": "HENOMX", "UYST": "UYST", "GMT": "GMT", "ChST": "ChST", "HNPM": "HNPM", "WAT": "WAT", "AKDT": "AKDT", "HEPMX": "HEPMX", "ACST": "ACST", "LHDT": "LHDT", "CHADT": "CHADT", "IST": "IST", "TMT": "TMT", "HKT": "HKT", "JDT": "JDT", "AEST": "AEST", "BT": "BT", "HNCU": "HNCU", "WAST": "WAST", "WARST": "WARST", "COT": "COT", "ART": "ART", "MEZ": "MEZ", "HEPM": "HEPM", "AWDT": "AWDT", "CLST": "CLST", "CDT": "CDT", "NZST": "NZST", "HAST": "HAST", "PDT": "PDT", "GYT": "GYT", "AST": "AST", "WITA": "WITA", "HADT": "HADT", "ACWST": "ACWST", "AEDT": "AEDT", "HEOG": "HEOG", "SAST": "SAST", "EDT": "EDT", "CAT": "CAT", "WIB": "WIB", "NZDT": "NZDT"},
+ }
+ }
+ 
+@@ -123,7 +101,7 @@ func (ps *ps_AF) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ps *ps_AF) MonthsAbbreviated() []string {
+- return ps.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -133,7 +111,7 @@ func (ps *ps_AF) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ps *ps_AF) MonthsNarrow() []string {
+- return ps.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -143,7 +121,7 @@ func (ps *ps_AF) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ps *ps_AF) MonthsWide() []string {
+- return ps.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -189,83 +167,13 @@ func (ps *ps_AF) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ps_AF' and handles both Whole and Real numbers based on 'v'
+ func (ps *ps_AF) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 9 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ps.decimal) - 1; j >= 0; j-- {
+- b = append(b, ps.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ps.group) - 1; j >= 0; j-- {
+- b = append(b, ps.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ps.minus) - 1; j >= 0; j-- {
+- b = append(b, ps.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ps_AF' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ps *ps_AF) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 11
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ps.decimal) - 1; j >= 0; j-- {
+- b = append(b, ps.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ps.minus) - 1; j >= 0; j-- {
+- b = append(b, ps.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ps.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ps_AF'
+@@ -273,62 +181,7 @@ func (ps *ps_AF) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ps.currencies[currency]
+- l := len(s) + len(symbol) + 11 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ps.decimal) - 1; j >= 0; j-- {
+- b = append(b, ps.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ps.group) - 1; j >= 0; j-- {
+- b = append(b, ps.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ps.minus) - 1; j >= 0; j-- {
+- b = append(b, ps.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ps.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ps.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ps_AF'
+@@ -337,69 +190,7 @@ func (ps *ps_AF) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ps.currencies[currency]
+- l := len(s) + len(symbol) + 11 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(ps.decimal) - 1; j >= 0; j-- {
+- b = append(b, ps.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ps.group) - 1; j >= 0; j-- {
+- b = append(b, ps.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(ps.minus) - 1; j >= 0; j-- {
+- b = append(b, ps.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ps.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ps.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ps.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ps_AF'
+@@ -407,17 +198,6 @@ func (ps *ps_AF) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -426,17 +206,6 @@ func (ps *ps_AF) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ps.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -445,19 +214,6 @@ func (ps *ps_AF) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0xd8, 0xaf, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd8, 0xaf, 0x20}...)
+- b = append(b, ps.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -466,20 +222,6 @@ func (ps *ps_AF) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ps.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20, 0xd8, 0xaf, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd8, 0xaf, 0x20}...)
+- b = append(b, ps.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -488,15 +230,6 @@ func (ps *ps_AF) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ps.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -505,22 +238,6 @@ func (ps *ps_AF) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ps.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ps.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -529,28 +246,6 @@ func (ps *ps_AF) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ps.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ps.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+ 
+@@ -559,32 +254,5 @@ func (ps *ps_AF) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ps.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ps.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ps.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/pt/pt.go b/pt/pt.go
+index 29faf0c..cdf2877 100644
+--- a/pt/pt.go
++++ b/pt/pt.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"a.C.", "d.C."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"antes de Cristo", "depois de Cristo"},
+- timezones: map[string]string{"MYT": "Horário da Malásia", "HKT": "Horário Padrão de Hong Kong", "AWST": "Horário Padrão da Austrália Ocidental", "COST": "Horário de Verão da Colômbia", "CST": "Horário Padrão Central", "HKST": "Horário de Verão de Hong Kong", "HNEG": "Horário Padrão da Groelândia Oriental", "MST": "Horário Padrão de Macau", "OESZ": "Horário de Verão da Europa Oriental", "COT": "Horário Padrão da Colômbia", "MDT": "Horário de Verão de Macau", "WITA": "Horário da Indonésia Central", "CHAST": "Horário Padrão de Chatham", "CHADT": "Horário de Verão de Chatham", "EST": "Horário Padrão Oriental", "AKDT": "Horário de Verão do Alasca", "ADT": "Horário de Verão do Atlântico", "BT": "Horário do Butão", "SRT": "Horário do Suriname", "PST": "Horário Padrão do Pacífico", "MEZ": "Horário Padrão da Europa Central", "CLST": "Horário de Verão do Chile", "AEDT": "Horário de Verão da Austrália Oriental", "ACDT": "Horário de Verão da Austrália Central", "HNNOMX": "Horário Padrão do Noroeste do México", "HNT": "Horário Padrão de Terra Nova", "HAT": "Horário de Verão de Terra Nova", "ART": "Horário Padrão da Argentina", "ARST": "Horário de Verão da Argentina", "GFT": "Horário da Guiana Francesa", "TMST": "Horário de Verão do Turcomenistão", "HNOG": "Horário Padrão da Groenlândia Ocidental", "HNCU": "Horário Padrão de Cuba", "CDT": "Horário de Verão Central", "AWDT": "Horário de Verão da Austrália Ocidental", "WAT": "Horário Padrão da África Ocidental", "HENOMX": "Horário de Verão do Noroeste do México", "TMT": "Horário Padrão do Turcomenistão", "BOT": "Horário da Bolívia", "EDT": "Horário de Verão Oriental", "JDT": "Horário de Verão do Japão", "CLT": "Horário Padrão do Chile", "ECT": "Horário do Equador", "AST": "Horário Padrão do Atlântico", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "OEZ": "Horário Padrão da Europa Oriental", "CAT": "Horário da África Central", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "ChST": "Horário de Chamorro", "∅∅∅": "Horário de Verão do Amazonas", "ACST": "Horário Padrão da Austrália Central", "WAST": "Horário de Verão da África Ocidental", "AKST": "Horário Padrão do Alasca", "PDT": "Horário de Verão do Pacífico", "AEST": "Horário Padrão da Austrália Oriental", "NZST": "Horário Padrão da Nova Zelândia", "SAST": "Horário da África do Sul", "HEEG": "Horário de Verão da Groelândia Oriental", "HEPMX": "Horário de Verão do Pacífico do México", "WIT": "Horário da Indonésia Oriental", "LHDT": "Horário de Verão de Lord Howe", "JST": "Horário Padrão do Japão", "GYT": "Horário da Guiana", "WIB": "Horário da Indonésia Ocidental", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "WART": "Horário Padrão da Argentina Ocidental", "GMT": "Horário do Meridiano de Greenwich", "NZDT": "Horário de Verão da Nova Zelândia", "VET": "Horário da Venezuela", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "HEOG": "Horário de Verão da Groenlândia Ocidental", "WEZ": "Horário Padrão da Europa Ocidental", "IST": "Horário Padrão da Índia", "SGT": "Horário Padrão de Cingapura", "HNPMX": "Horário Padrão do Pacífico do México", "UYT": "Horário Padrão do Uruguai", "UYST": "Horário de Verão do Uruguai", "EAT": "Horário da África Oriental", "WARST": "Horário de Verão da Argentina Ocidental", "HECU": "Horário de Verão de Cuba", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "WESZ": "Horário de Verão da Europa Ocidental", "MESZ": "Horário de Verão da Europa Central", "LHST": "Horário Padrão de Lord Howe"},
++ timezones: map[string]string{"AEDT": "Horário de Verão da Austrália Oriental", "UYT": "Horário Padrão do Uruguai", "WARST": "Horário de Verão da Argentina Ocidental", "COT": "Horário Padrão da Colômbia", "HNT": "Horário Padrão de Terra Nova", "WIT": "Horário da Indonésia Oriental", "WART": "Horário Padrão da Argentina Ocidental", "HEOG": "Horário de Verão da Groenlândia Ocidental", "ChST": "Horário de Chamorro", "MDT": "Horário de Verão da Montanha", "JST": "Horário Padrão do Japão", "LHST": "Horário Padrão de Lord Howe", "WESZ": "Horário de Verão da Europa Ocidental", "TMT": "Horário Padrão do Turcomenistão", "ARST": "Horário de Verão da Argentina", "MESZ": "Horário de Verão da Europa Central", "WAST": "Horário de Verão da África Ocidental", "SRT": "Horário do Suriname", "HNCU": "Horário Padrão de Cuba", "OESZ": "Horário de Verão da Europa Oriental", "OEZ": "Horário Padrão da Europa Oriental", "CST": "Horário Padrão Central", "ADT": "Horário de Verão do Atlântico", "HNNOMX": "Horário Padrão do Noroeste do México", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "IST": "Horário Padrão da Índia", "PST": "Horário Padrão do Pacífico", "GMT": "Horário do Meridiano de Greenwich", "MEZ": "Horário Padrão da Europa Central", "AWDT": "Horário de Verão da Austrália Ocidental", "LHDT": "Horário de Verão de Lord Howe", "AKST": "Horário Padrão do Alasca", "HECU": "Horário de Verão de Cuba", "SGT": "Horário Padrão de Cingapura", "WAT": "Horário Padrão da África Ocidental", "HNEG": "Horário Padrão da Groelândia Oriental", "HEEG": "Horário de Verão da Groelândia Oriental", "HENOMX": "Horário de Verão do Noroeste do México", "CHADT": "Horário de Verão de Chatham", "PDT": "Horário de Verão do Pacífico", "ACST": "Horário Padrão da Austrália Central", "AWST": "Horário Padrão da Austrália Ocidental", "∅∅∅": "Horário de Verão do Acre", "HEPMX": "Horário de Verão do Pacífico do México", "ECT": "Horário do Equador", "CDT": "Horário de Verão Central", "MST": "Horário Padrão da Montanha", "AEST": "Horário Padrão da Austrália Oriental", "HNPMX": "Horário Padrão do Pacífico do México", "HNOG": "Horário Padrão da Groenlândia Ocidental", "EST": "Horário Padrão Oriental", "CLT": "Horário Padrão do Chile", "AST": "Horário Padrão do Atlântico", "MYT": "Horário da Malásia", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "UYST": "Horário de Verão do Uruguai", "CAT": "Horário da África Central", "TMST": "Horário de Verão do Turcomenistão", "NZST": "Horário Padrão da Nova Zelândia", "ART": "Horário Padrão da Argentina", "EAT": "Horário da África Oriental", "ACDT": "Horário de Verão da Austrália Central", "VET": "Horário da Venezuela", "AKDT": "Horário de Verão do Alasca", "SAST": "Horário da África do Sul", "BOT": "Horário da Bolívia", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "BT": "Horário do Butão", "GFT": "Horário da Guiana Francesa", "HAT": "Horário de Verão de Terra Nova", "CHAST": "Horário Padrão de Chatham", "WEZ": "Horário Padrão da Europa Ocidental", "GYT": "Horário da Guiana", "CLST": "Horário de Verão do Chile", "WITA": "Horário da Indonésia Central", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "JDT": "Horário de Verão do Japão", "EDT": "Horário de Verão Oriental", "NZDT": "Horário de Verão da Nova Zelândia", "WIB": "Horário da Indonésia Ocidental", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "COST": "Horário de Verão da Colômbia", "HKT": "Horário Padrão de Hong Kong", "HKST": "Horário de Verão de Hong Kong"},
+ }
+ }
+ 
+diff --git a/pt_AO/pt_AO.go b/pt_AO/pt_AO.go
+index ad7de26..381b30e 100644
+--- a/pt_AO/pt_AO.go
++++ b/pt_AO/pt_AO.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type pt_AO struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'pt_AO' locale
+ func New() locales.Translator {
+ return &pt_AO{
+- locale: "pt_AO",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "Kz", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"},
+- daysAbbreviated: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysNarrow: []string{"D", "S", "T", "Q", "Q", "S", "S"},
+- daysShort: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysWide: []string{"domingo", "segunda-feira", "terça-feira", "quarta-feira", "quinta-feira", "sexta-feira", "sábado"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"a.C.", "d.C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "depois de Cristo"},
+- timezones: map[string]string{"LHDT": "Horário de Verão de Lord Howe", "EST": "Horário Padrão Oriental", "HKST": "Horário de Verão de Hong Kong", "CLT": "Horário Padrão do Chile", "WARST": "Horário de Verão da Argentina Ocidental", "BT": "Horário do Butão", "PST": "Horário Padrão do Pacífico", "WITA": "Horário da Indonésia Central", "SRT": "Horário do Suriname", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "SAST": "Horário da África do Sul", "CLST": "Horário de Verão do Chile", "HNCU": "Horário Padrão de Cuba", "MDT": "Horário de Verão de Macau", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "NZDT": "Horário de Verão da Nova Zelândia", "MST": "Horário Padrão de Macau", "HEPMX": "Horário de Verão do Pacífico do México", "AEST": "Horário Padrão da Austrália Oriental", "COT": "Horário Padrão da Colômbia", "AKST": "Horário Padrão do Alasca", "UYST": "Horário de Verão do Uruguai", "TMST": "Horário de Verão do Turcomenistão", "HENOMX": "Horário de Verão do Noroeste do México", "HNT": "Horário Padrão de Terra Nova", "MEZ": "Horário Padrão da Europa Central", "LHST": "Horário Padrão de Lord Howe", "CHAST": "Horário Padrão de Chatham", "∅∅∅": "Horário de Verão do Amazonas", "GFT": "Horário da Guiana Francesa", "MYT": "Horário da Malásia", "AEDT": "Horário de Verão da Austrália Oriental", "AWST": "Horário Padrão da Austrália Ocidental", "BOT": "Horário da Bolívia", "OESZ": "Horário de Verão da Europa Oriental", "SGT": "Horário Padrão de Cingapura", "EDT": "Horário de Verão Oriental", "HAT": "Horário de Verão de Terra Nova", "ART": "Horário Padrão da Argentina", "NZST": "Horário Padrão da Nova Zelândia", "IST": "Horário Padrão da Índia", "JDT": "Horário de Verão do Japão", "WART": "Horário Padrão da Argentina Ocidental", "WESZ": "Horário de Verão da Europa Ocidental", "TMT": "Horário Padrão do Turcomenistão", "ACDT": "Horário de Verão da Austrália Central", "ADT": "Horário de Verão do Atlântico", "HEOG": "Horário de Verão da Groenlândia Ocidental", "HKT": "Horário Padrão de Hong Kong", "WAST": "Horário de Verão da África Ocidental", "OEZ": "Horário Padrão da Europa Oriental", "CDT": "Horário de Verão Central", "WIT": "Horário da Indonésia Oriental", "PDT": "Horário de Verão do Pacífico", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "HNOG": "Horário Padrão da Groenlândia Ocidental", "AWDT": "Horário de Verão da Austrália Ocidental", "JST": "Horário Padrão do Japão", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "CHADT": "Horário de Verão de Chatham", "ChST": "Horário de Chamorro", "HEEG": "Horário de Verão da Groelândia Oriental", "EAT": "Horário da África Oriental", "HNNOMX": "Horário Padrão do Noroeste do México", "WIB": "Horário da Indonésia Ocidental", "VET": "Horário da Venezuela", "COST": "Horário de Verão da Colômbia", "HNPMX": "Horário Padrão do Pacífico do México", "WEZ": "Horário Padrão da Europa Ocidental", "ARST": "Horário de Verão da Argentina", "HNEG": "Horário Padrão da Groelândia Oriental", "CAT": "Horário da África Central", "WAT": "Horário Padrão da África Ocidental", "ECT": "Horário do Equador", "AKDT": "Horário de Verão do Alasca", "AST": "Horário Padrão do Atlântico", "GYT": "Horário da Guiana", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "MESZ": "Horário de Verão da Europa Central", "ACST": "Horário Padrão da Austrália Central", "GMT": "Horário do Meridiano de Greenwich", "HECU": "Horário de Verão de Cuba", "CST": "Horário Padrão Central", "UYT": "Horário Padrão do Uruguai"},
++ locale: "pt_AO",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "Kz", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AWDT": "AWDT", "ACWDT": "ACWDT", "HNT": "HNT", "HKST": "HKST", "CAT": "CAT", "ACDT": "ACDT", "CHAST": "CHAST", "WAST": "WAST", "MEZ": "MEZ", "AKST": "AKST", "CLT": "CLT", "ARST": "ARST", "HNEG": "HNEG", "HADT": "HADT", "LHST": "LHST", "JST": "JST", "AEDT": "AEDT", "OEZ": "OEZ", "GFT": "GFT", "CST": "CST", "EAT": "EAT", "LHDT": "LHDT", "JDT": "JDT", "VET": "VET", "HNCU": "HNCU", "HEPMX": "HEPMX", "SAST": "SAST", "IST": "IST", "PST": "PST", "WEZ": "WEZ", "SGT": "SGT", "WART": "WART", "EDT": "EDT", "HKT": "HKT", "NZDT": "NZDT", "ChST": "ChST", "ART": "ART", "MESZ": "MESZ", "GYT": "GYT", "EST": "EST", "WIB": "WIB", "ADT": "ADT", "GMT": "GMT", "BT": "BT", "ACWST": "ACWST", "UYT": "UYT", "WESZ": "WESZ", "HECU": "HECU", "WITA": "WITA", "CDT": "CDT", "PDT": "PDT", "UYST": "UYST", "WARST": "WARST", "WIT": "WIT", "HEOG": "HEOG", "NZST": "NZST", "ACST": "ACST", "AEST": "AEST", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "ECT": "ECT", "HNPM": "HNPM", "HEPM": "HEPM", "WAT": "WAT", "COT": "COT", "HNNOMX": "HNNOMX", "HEEG": "HEEG", "CHADT": "CHADT", "AKDT": "AKDT", "HAT": "HAT", "HNOG": "HNOG", "TMST": "TMST", "BOT": "BOT", "HAST": "HAST", "AWST": "AWST", "HNPMX": "HNPMX", "COST": "COST", "MST": "MST", "MDT": "MDT", "HENOMX": "HENOMX", "MYT": "MYT", "TMT": "TMT", "CLST": "CLST", "AST": "AST", "SRT": "SRT"},
+ }
+ }
+ 
+@@ -137,7 +114,7 @@ func (pt *pt_AO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (pt *pt_AO) MonthsAbbreviated() []string {
+- return pt.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -147,7 +124,7 @@ func (pt *pt_AO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (pt *pt_AO) MonthsNarrow() []string {
+- return pt.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -157,7 +134,7 @@ func (pt *pt_AO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (pt *pt_AO) MonthsWide() []string {
+- return pt.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -203,73 +180,13 @@ func (pt *pt_AO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'pt_AO' and handles both Whole and Real numbers based on 'v'
+ func (pt *pt_AO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'pt_AO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (pt *pt_AO) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, pt.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'pt_AO'
+@@ -277,56 +194,7 @@ func (pt *pt_AO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'pt_AO'
+@@ -335,68 +203,7 @@ func (pt *pt_AO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, pt.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, pt.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'pt_AO'
+@@ -404,27 +211,6 @@ func (pt *pt_AO) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,19 +219,6 @@ func (pt *pt_AO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,19 +227,6 @@ func (pt *pt_AO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,21 +235,6 @@ func (pt *pt_AO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, pt.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -498,19 +243,6 @@ func (pt *pt_AO) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -519,26 +251,6 @@ func (pt *pt_AO) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -547,30 +259,6 @@ func (pt *pt_AO) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -579,34 +267,5 @@ func (pt *pt_AO) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := pt.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/pt_BR/pt_BR.go b/pt_BR/pt_BR.go
+index 35d5477..4a666f2 100644
+--- a/pt_BR/pt_BR.go
++++ b/pt_BR/pt_BR.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type pt_BR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'pt_BR' locale
+ func New() locales.Translator {
+ return &pt_BR{
+- locale: "pt_BR",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"},
+- daysAbbreviated: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysNarrow: []string{"D", "S", "T", "Q", "Q", "S", "S"},
+- daysShort: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysWide: []string{"domingo", "segunda-feira", "terça-feira", "quarta-feira", "quinta-feira", "sexta-feira", "sábado"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"a.C.", "d.C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "depois de Cristo"},
+- timezones: map[string]string{"LHST": "Horário Padrão de Lord Howe", "ACDT": "Horário de Verão da Austrália Central", "WAST": "Horário de Verão da África Ocidental", "PDT": "Horário de Verão do Pacífico", "WITA": "Horário da Indonésia Central", "WAT": "Horário Padrão da África Ocidental", "HNNOMX": "Horário Padrão do Noroeste do México", "ART": "Horário Padrão da Argentina", "AWDT": "Horário de Verão da Austrália Ocidental", "MESZ": "Horário de Verão da Europa Central", "HNCU": "Horário Padrão de Cuba", "AST": "Horário Padrão do Atlântico", "BT": "Horário do Butão", "HKST": "Horário de Verão de Hong Kong", "GMT": "Horário do Meridiano de Greenwich", "EST": "Horário Padrão Oriental", "UYST": "Horário de Verão do Uruguai", "HEOG": "Horário de Verão da Groenlândia Ocidental", "∅∅∅": "Horário de Verão do Amazonas", "TMT": "Horário Padrão do Turcomenistão", "WARST": "Horário de Verão da Argentina Ocidental", "COT": "Horário Padrão da Colômbia", "CHADT": "Horário de Verão de Chatham", "MDT": "Horário de Verão de Macau", "HNPMX": "Horário Padrão do Pacífico do México", "MYT": "Horário da Malásia", "UYT": "Horário Padrão do Uruguai", "CLST": "Horário de Verão do Chile", "ACST": "Horário Padrão da Austrália Central", "CAT": "Horário da África Central", "HECU": "Horário de Verão de Cuba", "CDT": "Horário de Verão Central", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "AEDT": "Horário de Verão da Austrália Oriental", "MEZ": "Horário Padrão da Europa Central", "NZST": "Horário Padrão da Nova Zelândia", "SAST": "Horário da África do Sul", "CLT": "Horário Padrão do Chile", "JST": "Horário Padrão do Japão", "HAT": "Horário de Verão de Terra Nova", "BOT": "Horário da Bolívia", "COST": "Horário de Verão da Colômbia", "HENOMX": "Horário de Verão do Noroeste do México", "AKDT": "Horário de Verão do Alasca", "TMST": "Horário de Verão do Turcomenistão", "NZDT": "Horário de Verão da Nova Zelândia", "WIT": "Horário da Indonésia Oriental", "WESZ": "Horário de Verão da Europa Ocidental", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "JDT": "Horário de Verão do Japão", "ChST": "Horário de Chamorro", "MST": "Horário Padrão de Macau", "GYT": "Horário da Guiana", "HEEG": "Horário de Verão da Groelândia Oriental", "ADT": "Horário de Verão do Atlântico", "ARST": "Horário de Verão da Argentina", "HNEG": "Horário Padrão da Groelândia Oriental", "ECT": "Horário do Equador", "SGT": "Horário Padrão de Cingapura", "VET": "Horário da Venezuela", "WART": "Horário Padrão da Argentina Ocidental", "CST": "Horário Padrão Central", "AWST": "Horário Padrão da Austrália Ocidental", "HNOG": "Horário Padrão da Groenlândia Ocidental", "AKST": "Horário Padrão do Alasca", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "WEZ": "Horário Padrão da Europa Ocidental", "HNT": "Horário Padrão de Terra Nova", "HKT": "Horário Padrão de Hong Kong", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "IST": "Horário Padrão da Índia", "EAT": "Horário da África Oriental", "OESZ": "Horário de Verão da Europa Oriental", "SRT": "Horário do Suriname", "CHAST": "Horário Padrão de Chatham", "WIB": "Horário da Indonésia Ocidental", "PST": "Horário Padrão do Pacífico", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "AEST": "Horário Padrão da Austrália Oriental", "GFT": "Horário da Guiana Francesa", "OEZ": "Horário Padrão da Europa Oriental", "EDT": "Horário de Verão Oriental", "HEPMX": "Horário de Verão do Pacífico do México", "LHDT": "Horário de Verão de Lord Howe"},
++ locale: "pt_BR",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SGT": "SGT", "COST": "COST", "TMST": "TMST", "HAST": "HAST", "LHDT": "LHDT", "BT": "BT", "CHAST": "CHAST", "OESZ": "OESZ", "HAT": "HAT", "EDT": "EDT", "ADT": "ADT", "MEZ": "MEZ", "UYST": "UYST", "HEPMX": "HEPMX", "WARST": "WARST", "WIT": "WIT", "NZDT": "NZDT", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "OEZ": "OEZ", "HNEG": "HNEG", "COT": "COT", "ACDT": "ACDT", "HKST": "HKST", "TMT": "TMT", "CLST": "CLST", "HEEG": "HEEG", "MYT": "MYT", "AEDT": "AEDT", "GYT": "GYT", "CDT": "CDT", "GMT": "GMT", "LHST": "LHST", "CHADT": "CHADT", "WESZ": "WESZ", "VET": "VET", "HNPMX": "HNPMX", "WART": "WART", "CLT": "CLT", "HENOMX": "HENOMX", "PST": "PST", "ACWST": "ACWST", "JST": "JST", "HECU": "HECU", "HEPM": "HEPM", "AKST": "AKST", "AKDT": "AKDT", "HNOG": "HNOG", "HKT": "HKT", "CAT": "CAT", "ChST": "ChST", "UYT": "UYT", "∅∅∅": "∅∅∅", "JDT": "JDT", "HADT": "HADT", "HNPM": "HNPM", "WIB": "WIB", "IST": "IST", "ACWDT": "ACWDT", "EAT": "EAT", "HEOG": "HEOG", "BOT": "BOT", "GFT": "GFT", "SAST": "SAST", "EST": "EST", "NZST": "NZST", "AWST": "AWST", "PDT": "PDT", "WAT": "WAT", "AST": "AST", "ARST": "ARST", "ACST": "ACST", "AWDT": "AWDT", "MDT": "MDT", "ECT": "ECT", "CST": "CST", "SRT": "SRT", "AEST": "AEST", "WAST": "WAST", "WITA": "WITA", "MST": "MST", "ART": "ART", "WEZ": "WEZ", "HNT": "HNT"},
+ }
+ }
+ 
+@@ -137,7 +114,7 @@ func (pt *pt_BR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (pt *pt_BR) MonthsAbbreviated() []string {
+- return pt.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -147,7 +124,7 @@ func (pt *pt_BR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (pt *pt_BR) MonthsNarrow() []string {
+- return pt.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -157,7 +134,7 @@ func (pt *pt_BR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (pt *pt_BR) MonthsWide() []string {
+- return pt.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -203,73 +180,13 @@ func (pt *pt_BR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'pt_BR' and handles both Whole and Real numbers based on 'v'
+ func (pt *pt_BR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'pt_BR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (pt *pt_BR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, pt.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'pt_BR'
+@@ -277,56 +194,7 @@ func (pt *pt_BR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'pt_BR'
+@@ -335,68 +203,7 @@ func (pt *pt_BR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, pt.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, pt.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'pt_BR'
+@@ -404,27 +211,6 @@ func (pt *pt_BR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,19 +219,6 @@ func (pt *pt_BR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,19 +227,6 @@ func (pt *pt_BR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,21 +235,6 @@ func (pt *pt_BR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, pt.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -498,19 +243,6 @@ func (pt *pt_BR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -519,26 +251,6 @@ func (pt *pt_BR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -547,30 +259,6 @@ func (pt *pt_BR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -579,34 +267,5 @@ func (pt *pt_BR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := pt.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/pt_CH/pt_CH.go b/pt_CH/pt_CH.go
+index 03fd76f..91b58ca 100644
+--- a/pt_CH/pt_CH.go
++++ b/pt_CH/pt_CH.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type pt_CH struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'pt_CH' locale
+ func New() locales.Translator {
+ return &pt_CH{
+- locale: "pt_CH",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"},
+- daysAbbreviated: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysNarrow: []string{"D", "S", "T", "Q", "Q", "S", "S"},
+- daysShort: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysWide: []string{"domingo", "segunda-feira", "terça-feira", "quarta-feira", "quinta-feira", "sexta-feira", "sábado"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"a.C.", "d.C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "depois de Cristo"},
+- timezones: map[string]string{"CLST": "Horário de Verão do Chile", "GFT": "Horário da Guiana Francesa", "GMT": "Horário do Meridiano de Greenwich", "ChST": "Horário de Chamorro", "ACST": "Horário Padrão da Austrália Central", "COST": "Horário de Verão da Colômbia", "HKST": "Horário de Verão de Hong Kong", "CLT": "Horário Padrão do Chile", "WAST": "Horário de Verão da África Ocidental", "EST": "Horário Padrão Oriental", "HNPMX": "Horário Padrão do Pacífico do México", "PDT": "Horário de Verão do Pacífico", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "MESZ": "Horário de Verão da Europa Central", "WAT": "Horário Padrão da África Ocidental", "WARST": "Horário de Verão da Argentina Ocidental", "HECU": "Horário de Verão de Cuba", "AKST": "Horário Padrão do Alasca", "AKDT": "Horário de Verão do Alasca", "VET": "Horário da Venezuela", "ARST": "Horário de Verão da Argentina", "CHAST": "Horário Padrão de Chatham", "CAT": "Horário da África Central", "EDT": "Horário de Verão Oriental", "MST": "Horário Padrão de Macau", "MYT": "Horário da Malásia", "BT": "Horário do Butão", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "LHDT": "Horário de Verão de Lord Howe", "COT": "Horário Padrão da Colômbia", "SGT": "Horário Padrão de Cingapura", "AST": "Horário Padrão do Atlântico", "UYST": "Horário de Verão do Uruguai", "SRT": "Horário do Suriname", "TMT": "Horário Padrão do Turcomenistão", "WART": "Horário Padrão da Argentina Ocidental", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "AWDT": "Horário de Verão da Austrália Ocidental", "IST": "Horário Padrão da Índia", "JST": "Horário Padrão do Japão", "TMST": "Horário de Verão do Turcomenistão", "ECT": "Horário do Equador", "WIB": "Horário da Indonésia Ocidental", "BOT": "Horário da Bolívia", "EAT": "Horário da África Oriental", "HENOMX": "Horário de Verão do Noroeste do México", "MDT": "Horário de Verão de Macau", "∅∅∅": "Horário de Verão do Amazonas", "HEEG": "Horário de Verão da Groelândia Oriental", "OEZ": "Horário Padrão da Europa Oriental", "HEPMX": "Horário de Verão do Pacífico do México", "ADT": "Horário de Verão do Atlântico", "HAT": "Horário de Verão de Terra Nova", "PST": "Horário Padrão do Pacífico", "WESZ": "Horário de Verão da Europa Ocidental", "JDT": "Horário de Verão do Japão", "ACDT": "Horário de Verão da Austrália Central", "HNNOMX": "Horário Padrão do Noroeste do México", "HNCU": "Horário Padrão de Cuba", "CDT": "Horário de Verão Central", "UYT": "Horário Padrão do Uruguai", "ART": "Horário Padrão da Argentina", "HNOG": "Horário Padrão da Groenlândia Ocidental", "CHADT": "Horário de Verão de Chatham", "LHST": "Horário Padrão de Lord Howe", "NZDT": "Horário de Verão da Nova Zelândia", "CST": "Horário Padrão Central", "GYT": "Horário da Guiana", "HNT": "Horário Padrão de Terra Nova", "HEOG": "Horário de Verão da Groenlândia Ocidental", "WEZ": "Horário Padrão da Europa Ocidental", "WITA": "Horário da Indonésia Central", "HNEG": "Horário Padrão da Groelândia Oriental", "OESZ": "Horário de Verão da Europa Oriental", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "HKT": "Horário Padrão de Hong Kong", "MEZ": "Horário Padrão da Europa Central", "NZST": "Horário Padrão da Nova Zelândia", "SAST": "Horário da África do Sul", "WIT": "Horário da Indonésia Oriental", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "AEST": "Horário Padrão da Austrália Oriental", "AEDT": "Horário de Verão da Austrália Oriental", "AWST": "Horário Padrão da Austrália Ocidental"},
++ locale: "pt_CH",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"OEZ": "OEZ", "GFT": "GFT", "HAT": "HAT", "AST": "AST", "ADT": "ADT", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "WESZ": "WESZ", "WART": "WART", "GMT": "GMT", "PDT": "PDT", "ACWST": "ACWST", "HEPMX": "HEPMX", "WIT": "WIT", "HENOMX": "HENOMX", "CHAST": "CHAST", "EAT": "EAT", "LHDT": "LHDT", "OESZ": "OESZ", "NZST": "NZST", "GYT": "GYT", "COT": "COT", "COST": "COST", "ChST": "ChST", "ACST": "ACST", "HNEG": "HNEG", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "CAT": "CAT", "WITA": "WITA", "NZDT": "NZDT", "WIB": "WIB", "SRT": "SRT", "LHST": "LHST", "HNPMX": "HNPMX", "WAT": "WAT", "SAST": "SAST", "AKDT": "AKDT", "HEOG": "HEOG", "HNT": "HNT", "TMST": "TMST", "ACDT": "ACDT", "AWST": "AWST", "IST": "IST", "WEZ": "WEZ", "SGT": "SGT", "HECU": "HECU", "WARST": "WARST", "ECT": "ECT", "ART": "ART", "ARST": "ARST", "MST": "MST", "BT": "BT", "HNCU": "HNCU", "CLT": "CLT", "CST": "CST", "HADT": "HADT", "HEEG": "HEEG", "JDT": "JDT", "PST": "PST", "ACWDT": "ACWDT", "JST": "JST", "UYST": "UYST", "BOT": "BOT", "HAST": "HAST", "MEZ": "MEZ", "MESZ": "MESZ", "MYT": "MYT", "VET": "VET", "HKT": "HKT", "CDT": "CDT", "UYT": "UYT", "AEST": "AEST", "WAST": "WAST", "EDT": "EDT", "HKST": "HKST", "AWDT": "AWDT", "CHADT": "CHADT", "CLST": "CLST", "AKST": "AKST", "EST": "EST", "MDT": "MDT", "AEDT": "AEDT", "HNOG": "HNOG", "TMT": "TMT"},
+ }
+ }
+ 
+@@ -137,7 +114,7 @@ func (pt *pt_CH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (pt *pt_CH) MonthsAbbreviated() []string {
+- return pt.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -147,7 +124,7 @@ func (pt *pt_CH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (pt *pt_CH) MonthsNarrow() []string {
+- return pt.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -157,7 +134,7 @@ func (pt *pt_CH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (pt *pt_CH) MonthsWide() []string {
+- return pt.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -203,73 +180,13 @@ func (pt *pt_CH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'pt_CH' and handles both Whole and Real numbers based on 'v'
+ func (pt *pt_CH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'pt_CH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (pt *pt_CH) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, pt.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'pt_CH'
+@@ -277,56 +194,7 @@ func (pt *pt_CH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'pt_CH'
+@@ -335,68 +203,7 @@ func (pt *pt_CH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, pt.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, pt.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'pt_CH'
+@@ -404,27 +211,6 @@ func (pt *pt_CH) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,19 +219,6 @@ func (pt *pt_CH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,19 +227,6 @@ func (pt *pt_CH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,21 +235,6 @@ func (pt *pt_CH) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, pt.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -498,19 +243,6 @@ func (pt *pt_CH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -519,26 +251,6 @@ func (pt *pt_CH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -547,30 +259,6 @@ func (pt *pt_CH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -579,34 +267,5 @@ func (pt *pt_CH) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := pt.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/pt_CV/pt_CV.go b/pt_CV/pt_CV.go
+index 9793116..1fb48be 100644
+--- a/pt_CV/pt_CV.go
++++ b/pt_CV/pt_CV.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type pt_CV struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'pt_CV' locale
+ func New() locales.Translator {
+ return &pt_CV{
+- locale: "pt_CV",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "\u200b", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "\u200bPTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"},
+- daysAbbreviated: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysNarrow: []string{"D", "S", "T", "Q", "Q", "S", "S"},
+- daysShort: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysWide: []string{"domingo", "segunda-feira", "terça-feira", "quarta-feira", "quinta-feira", "sexta-feira", "sábado"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"a.C.", "d.C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "depois de Cristo"},
+- timezones: map[string]string{"AWST": "Horário Padrão da Austrália Ocidental", "CHAST": "Horário Padrão de Chatham", "CLT": "Horário Padrão do Chile", "EAT": "Horário da África Oriental", "ECT": "Horário do Equador", "GMT": "Horário do Meridiano de Greenwich", "UYT": "Horário Padrão do Uruguai", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "GFT": "Horário da Guiana Francesa", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "ACST": "Horário Padrão da Austrália Central", "HECU": "Horário de Verão de Cuba", "WIT": "Horário da Indonésia Oriental", "ART": "Horário Padrão da Argentina", "PDT": "Horário de Verão do Pacífico", "NZDT": "Horário de Verão da Nova Zelândia", "CHADT": "Horário de Verão de Chatham", "CAT": "Horário da África Central", "HNNOMX": "Horário Padrão do Noroeste do México", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "WESZ": "Horário de Verão da Europa Ocidental", "HAT": "Horário de Verão de Terra Nova", "AKST": "Horário Padrão do Alasca", "ADT": "Horário de Verão do Atlântico", "WEZ": "Horário Padrão da Europa Ocidental", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "SAST": "Horário da África do Sul", "COST": "Horário de Verão da Colômbia", "AST": "Horário Padrão do Atlântico", "MYT": "Horário da Malásia", "HNT": "Horário Padrão de Terra Nova", "MEZ": "Horário Padrão da Europa Central", "HENOMX": "Horário de Verão do Noroeste do México", "UYST": "Horário de Verão do Uruguai", "BT": "Horário do Butão", "HKST": "Horário de Verão de Hong Kong", "AEST": "Horário Padrão da Austrália Oriental", "VET": "Horário da Venezuela", "MESZ": "Horário de Verão da Europa Central", "ChST": "Horário de Chamorro", "IST": "Horário Padrão da Índia", "TMST": "Horário de Verão do Turcomenistão", "WAT": "Horário Padrão da África Ocidental", "WART": "Horário Padrão da Argentina Ocidental", "AKDT": "Horário de Verão do Alasca", "SRT": "Horário do Suriname", "HEOG": "Horário de Verão da Groenlândia Ocidental", "TMT": "Horário Padrão do Turcomenistão", "ACDT": "Horário de Verão da Austrália Central", "WAST": "Horário de Verão da África Ocidental", "∅∅∅": "Horário de Verão do Peru", "SGT": "Horário Padrão de Cingapura", "CLST": "Horário de Verão do Chile", "MDT": "Horário de Verão de Macau", "GYT": "Horário da Guiana", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "HEEG": "Horário de Verão da Groelândia Oriental", "HEPMX": "Horário de Verão do Pacífico do México", "EST": "Horário Padrão Oriental", "WIB": "Horário da Indonésia Ocidental", "AEDT": "Horário de Verão da Austrália Oriental", "LHST": "Horário Padrão de Lord Howe", "BOT": "Horário da Bolívia", "OESZ": "Horário de Verão da Europa Oriental", "COT": "Horário Padrão da Colômbia", "WITA": "Horário da Indonésia Central", "LHDT": "Horário de Verão de Lord Howe", "JDT": "Horário de Verão do Japão", "HNCU": "Horário Padrão de Cuba", "ARST": "Horário de Verão da Argentina", "AWDT": "Horário de Verão da Austrália Ocidental", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "WARST": "Horário de Verão da Argentina Ocidental", "MST": "Horário Padrão de Macau", "HNOG": "Horário Padrão da Groenlândia Ocidental", "JST": "Horário Padrão do Japão", "EDT": "Horário de Verão Oriental", "HNEG": "Horário Padrão da Groelândia Oriental", "HKT": "Horário Padrão de Hong Kong", "NZST": "Horário Padrão da Nova Zelândia", "OEZ": "Horário Padrão da Europa Oriental", "HNPMX": "Horário Padrão do Pacífico do México", "CST": "Horário Padrão Central", "CDT": "Horário de Verão Central", "PST": "Horário Padrão do Pacífico"},
++ locale: "pt_CV",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "\u200b", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "\u200bPTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AWDT": "AWDT", "WESZ": "WESZ", "WART": "WART", "WIT": "WIT", "HAST": "HAST", "JST": "JST", "WEZ": "WEZ", "AWST": "AWST", "SRT": "SRT", "MEZ": "MEZ", "ACST": "ACST", "HEEG": "HEEG", "HENOMX": "HENOMX", "PDT": "PDT", "CHADT": "CHADT", "NZDT": "NZDT", "HKT": "HKT", "SGT": "SGT", "ECT": "ECT", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "HNT": "HNT", "MST": "MST", "ACDT": "ACDT", "GYT": "GYT", "CLST": "CLST", "WITA": "WITA", "ADT": "ADT", "HEPMX": "HEPMX", "SAST": "SAST", "TMT": "TMT", "TMST": "TMST", "LHDT": "LHDT", "ChST": "ChST", "HADT": "HADT", "HEPM": "HEPM", "PST": "PST", "UYT": "UYT", "VET": "VET", "WAST": "WAST", "AST": "AST", "AKDT": "AKDT", "WIB": "WIB", "LHST": "LHST", "AEST": "AEST", "HNPMX": "HNPMX", "WARST": "WARST", "COST": "COST", "CAT": "CAT", "CDT": "CDT", "CLT": "CLT", "HNEG": "HNEG", "IST": "IST", "BT": "BT", "ACWDT": "ACWDT", "AEDT": "AEDT", "HECU": "HECU", "EDT": "EDT", "NZST": "NZST", "OEZ": "OEZ", "COT": "COT", "ARST": "ARST", "EAT": "EAT", "UYST": "UYST", "GMT": "GMT", "MESZ": "MESZ", "MYT": "MYT", "CHAST": "CHAST", "GFT": "GFT", "HAT": "HAT", "ART": "ART", "MDT": "MDT", "WAT": "WAT", "HEOG": "HEOG", "CST": "CST", "JDT": "JDT", "HNOG": "HNOG", "EST": "EST", "HKST": "HKST", "BOT": "BOT", "AKST": "AKST", "OESZ": "OESZ", "ACWST": "ACWST", "HNPM": "HNPM", "HNNOMX": "HNNOMX"},
+ }
+ }
+ 
+@@ -137,7 +114,7 @@ func (pt *pt_CV) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (pt *pt_CV) MonthsAbbreviated() []string {
+- return pt.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -147,7 +124,7 @@ func (pt *pt_CV) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (pt *pt_CV) MonthsNarrow() []string {
+- return pt.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -157,7 +134,7 @@ func (pt *pt_CV) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (pt *pt_CV) MonthsWide() []string {
+- return pt.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -203,73 +180,13 @@ func (pt *pt_CV) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'pt_CV' and handles both Whole and Real numbers based on 'v'
+ func (pt *pt_CV) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'pt_CV' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (pt *pt_CV) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, pt.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'pt_CV'
+@@ -277,56 +194,7 @@ func (pt *pt_CV) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'pt_CV'
+@@ -335,68 +203,7 @@ func (pt *pt_CV) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, pt.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, pt.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'pt_CV'
+@@ -404,27 +211,6 @@ func (pt *pt_CV) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,19 +219,6 @@ func (pt *pt_CV) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,19 +227,6 @@ func (pt *pt_CV) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,21 +235,6 @@ func (pt *pt_CV) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, pt.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -498,19 +243,6 @@ func (pt *pt_CV) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -519,26 +251,6 @@ func (pt *pt_CV) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -547,30 +259,6 @@ func (pt *pt_CV) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -579,34 +267,5 @@ func (pt *pt_CV) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := pt.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/pt_GQ/pt_GQ.go b/pt_GQ/pt_GQ.go
+index eee3e0f..09d52d4 100644
+--- a/pt_GQ/pt_GQ.go
++++ b/pt_GQ/pt_GQ.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type pt_GQ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'pt_GQ' locale
+ func New() locales.Translator {
+ return &pt_GQ{
+- locale: "pt_GQ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"},
+- daysAbbreviated: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysNarrow: []string{"D", "S", "T", "Q", "Q", "S", "S"},
+- daysShort: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysWide: []string{"domingo", "segunda-feira", "terça-feira", "quarta-feira", "quinta-feira", "sexta-feira", "sábado"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"a.C.", "d.C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "depois de Cristo"},
+- timezones: map[string]string{"WARST": "Horário de Verão da Argentina Ocidental", "AEST": "Horário Padrão da Austrália Oriental", "IST": "Horário Padrão da Índia", "TMT": "Horário Padrão do Turcomenistão", "MESZ": "Horário de Verão da Europa Central", "EST": "Horário Padrão Oriental", "MDT": "Horário de Verão de Macau", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "HAT": "Horário de Verão de Terra Nova", "NZDT": "Horário de Verão da Nova Zelândia", "GMT": "Horário do Meridiano de Greenwich", "SGT": "Horário Padrão de Cingapura", "UYST": "Horário de Verão do Uruguai", "WEZ": "Horário Padrão da Europa Ocidental", "WART": "Horário Padrão da Argentina Ocidental", "COST": "Horário de Verão da Colômbia", "AST": "Horário Padrão do Atlântico", "HNT": "Horário Padrão de Terra Nova", "CHADT": "Horário de Verão de Chatham", "WAT": "Horário Padrão da África Ocidental", "ECT": "Horário do Equador", "PST": "Horário Padrão do Pacífico", "ChST": "Horário de Chamorro", "MYT": "Horário da Malásia", "UYT": "Horário Padrão do Uruguai", "ARST": "Horário de Verão da Argentina", "AEDT": "Horário de Verão da Austrália Oriental", "JDT": "Horário de Verão do Japão", "CST": "Horário Padrão Central", "ADT": "Horário de Verão do Atlântico", "WIB": "Horário da Indonésia Ocidental", "ACDT": "Horário de Verão da Austrália Central", "HNOG": "Horário Padrão da Groenlândia Ocidental", "SAST": "Horário da África do Sul", "TMST": "Horário de Verão do Turcomenistão", "AWDT": "Horário de Verão da Austrália Ocidental", "WAST": "Horário de Verão da África Ocidental", "HNNOMX": "Horário Padrão do Noroeste do México", "MST": "Horário Padrão de Macau", "VET": "Horário da Venezuela", "HKST": "Horário de Verão de Hong Kong", "HNEG": "Horário Padrão da Groelândia Oriental", "AWST": "Horário Padrão da Austrália Ocidental", "MEZ": "Horário Padrão da Europa Central", "JST": "Horário Padrão do Japão", "CLT": "Horário Padrão do Chile", "CLST": "Horário de Verão do Chile", "OEZ": "Horário Padrão da Europa Oriental", "HEPMX": "Horário de Verão do Pacífico do México", "AKDT": "Horário de Verão do Alasca", "GYT": "Horário da Guiana", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "HEOG": "Horário de Verão da Groenlândia Ocidental", "LHST": "Horário Padrão de Lord Howe", "HENOMX": "Horário de Verão do Noroeste do México", "HECU": "Horário de Verão de Cuba", "CDT": "Horário de Verão Central", "WIT": "Horário da Indonésia Oriental", "ART": "Horário Padrão da Argentina", "OESZ": "Horário de Verão da Europa Oriental", "EAT": "Horário da África Oriental", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "WITA": "Horário da Indonésia Central", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "ACST": "Horário Padrão da Austrália Central", "EDT": "Horário de Verão Oriental", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "HKT": "Horário Padrão de Hong Kong", "BOT": "Horário da Bolívia", "PDT": "Horário de Verão do Pacífico", "NZST": "Horário Padrão da Nova Zelândia", "CHAST": "Horário Padrão de Chatham", "∅∅∅": "Horário de Verão do Peru", "COT": "Horário Padrão da Colômbia", "AKST": "Horário Padrão do Alasca", "BT": "Horário do Butão", "SRT": "Horário do Suriname", "LHDT": "Horário de Verão de Lord Howe", "HEEG": "Horário de Verão da Groelândia Oriental", "GFT": "Horário da Guiana Francesa", "CAT": "Horário da África Central", "HNCU": "Horário Padrão de Cuba", "HNPMX": "Horário Padrão do Pacífico do México", "WESZ": "Horário de Verão da Europa Ocidental", "HEPM": "Horário de Verão de Saint Pierre e Miquelon"},
++ locale: "pt_GQ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"OEZ": "OEZ", "ARST": "ARST", "ACWST": "ACWST", "CHADT": "CHADT", "AEDT": "AEDT", "SGT": "SGT", "HKT": "HKT", "MST": "MST", "EAT": "EAT", "AEST": "AEST", "CST": "CST", "GMT": "GMT", "HADT": "HADT", "MESZ": "MESZ", "WESZ": "WESZ", "ACDT": "ACDT", "ART": "ART", "HAST": "HAST", "HEEG": "HEEG", "LHST": "LHST", "HNT": "HNT", "HAT": "HAT", "COT": "COT", "HKST": "HKST", "UYT": "UYT", "UYST": "UYST", "IST": "IST", "CHAST": "CHAST", "WAT": "WAT", "GFT": "GFT", "EST": "EST", "AWDT": "AWDT", "COST": "COST", "SRT": "SRT", "HEPM": "HEPM", "ACWDT": "ACWDT", "HEPMX": "HEPMX", "AKDT": "AKDT", "CAT": "CAT", "MDT": "MDT", "HENOMX": "HENOMX", "LHDT": "LHDT", "HNPM": "HNPM", "JST": "JST", "HECU": "HECU", "HEOG": "HEOG", "WITA": "WITA", "HNEG": "HNEG", "BT": "BT", "WAST": "WAST", "WARST": "WARST", "CLT": "CLT", "TMST": "TMST", "CDT": "CDT", "JDT": "JDT", "PST": "PST", "OESZ": "OESZ", "WART": "WART", "WIT": "WIT", "GYT": "GYT", "PDT": "PDT", "BOT": "BOT", "HNNOMX": "HNNOMX", "AWST": "AWST", "MYT": "MYT", "VET": "VET", "EDT": "EDT", "CLST": "CLST", "ACST": "ACST", "∅∅∅": "∅∅∅", "AKST": "AKST", "WIB": "WIB", "NZDT": "NZDT", "ECT": "ECT", "AST": "AST", "ADT": "ADT", "HNPMX": "HNPMX", "HNOG": "HNOG", "TMT": "TMT", "NZST": "NZST", "MEZ": "MEZ", "WEZ": "WEZ", "HNCU": "HNCU", "SAST": "SAST", "ChST": "ChST"},
+ }
+ }
+ 
+@@ -137,7 +114,7 @@ func (pt *pt_GQ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (pt *pt_GQ) MonthsAbbreviated() []string {
+- return pt.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -147,7 +124,7 @@ func (pt *pt_GQ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (pt *pt_GQ) MonthsNarrow() []string {
+- return pt.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -157,7 +134,7 @@ func (pt *pt_GQ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (pt *pt_GQ) MonthsWide() []string {
+- return pt.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -203,73 +180,13 @@ func (pt *pt_GQ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'pt_GQ' and handles both Whole and Real numbers based on 'v'
+ func (pt *pt_GQ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'pt_GQ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (pt *pt_GQ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, pt.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'pt_GQ'
+@@ -277,56 +194,7 @@ func (pt *pt_GQ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'pt_GQ'
+@@ -335,68 +203,7 @@ func (pt *pt_GQ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, pt.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, pt.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'pt_GQ'
+@@ -404,27 +211,6 @@ func (pt *pt_GQ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,19 +219,6 @@ func (pt *pt_GQ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,19 +227,6 @@ func (pt *pt_GQ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,21 +235,6 @@ func (pt *pt_GQ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, pt.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -498,19 +243,6 @@ func (pt *pt_GQ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -519,26 +251,6 @@ func (pt *pt_GQ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -547,30 +259,6 @@ func (pt *pt_GQ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -579,34 +267,5 @@ func (pt *pt_GQ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := pt.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/pt_GW/pt_GW.go b/pt_GW/pt_GW.go
+index fa991b6..85271a4 100644
+--- a/pt_GW/pt_GW.go
++++ b/pt_GW/pt_GW.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type pt_GW struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'pt_GW' locale
+ func New() locales.Translator {
+ return &pt_GW{
+- locale: "pt_GW",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"},
+- daysAbbreviated: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysNarrow: []string{"D", "S", "T", "Q", "Q", "S", "S"},
+- daysShort: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysWide: []string{"domingo", "segunda-feira", "terça-feira", "quarta-feira", "quinta-feira", "sexta-feira", "sábado"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"a.C.", "d.C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "depois de Cristo"},
+- timezones: map[string]string{"HEPMX": "Horário de Verão do Pacífico do México", "MDT": "Horário de Verão da Montanha", "LHDT": "Horário de Verão de Lord Howe", "NZST": "Horário Padrão da Nova Zelândia", "TMT": "Horário Padrão do Turcomenistão", "HNNOMX": "Horário Padrão do Noroeste do México", "HECU": "Horário de Verão de Cuba", "HNOG": "Horário Padrão da Groenlândia Ocidental", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "NZDT": "Horário de Verão da Nova Zelândia", "HNEG": "Horário Padrão da Groelândia Oriental", "UYT": "Horário Padrão do Uruguai", "MST": "Horário Padrão da Montanha", "CHADT": "Horário de Verão de Chatham", "BOT": "Horário da Bolívia", "WART": "Horário Padrão da Argentina Ocidental", "HNPMX": "Horário Padrão do Pacífico do México", "AST": "Horário Padrão do Atlântico", "ADT": "Horário de Verão do Atlântico", "BT": "Horário do Butão", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "CLT": "Horário Padrão do Chile", "SRT": "Horário do Suriname", "HKT": "Horário Padrão de Hong Kong", "OEZ": "Horário Padrão da Europa Oriental", "CST": "Horário Padrão Central", "WIB": "Horário da Indonésia Ocidental", "WIT": "Horário da Indonésia Oriental", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "HKST": "Horário de Verão de Hong Kong", "CHAST": "Horário Padrão de Chatham", "EAT": "Horário da África Oriental", "WARST": "Horário de Verão da Argentina Ocidental", "EDT": "Horário de Verão Oriental", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "WESZ": "Horário de Verão da Europa Ocidental", "ART": "Horário Padrão da Argentina", "MEZ": "Horário Padrão da Europa Central", "MESZ": "Horário de Verão da Europa Central", "GFT": "Horário da Guiana Francesa", "ACST": "Horário Padrão da Austrália Central", "ECT": "Horário do Equador", "AWST": "Horário Padrão da Austrália Ocidental", "WITA": "Horário da Indonésia Central", "AEDT": "Horário de Verão da Austrália Oriental", "AKDT": "Horário de Verão do Alasca", "SGT": "Horário Padrão de Cingapura", "MYT": "Horário da Malásia", "UYST": "Horário de Verão do Uruguai", "ARST": "Horário de Verão da Argentina", "JST": "Horário Padrão do Japão", "GYT": "Horário da Guiana", "HAT": "Horário de Verão de Terra Nova", "SAST": "Horário da África do Sul", "ChST": "Horário de Chamorro", "ACDT": "Horário de Verão da Austrália Central", "EST": "Horário Padrão Oriental", "AKST": "Horário Padrão do Alasca", "LHST": "Horário Padrão de Lord Howe", "IST": "Horário Padrão da Índia", "TMST": "Horário de Verão do Turcomenistão", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "PDT": "Horário de Verão do Pacífico", "∅∅∅": "Horário de Verão do Amazonas", "HEEG": "Horário de Verão da Groelândia Oriental", "WAT": "Horário Padrão da África Ocidental", "WAST": "Horário de Verão da África Ocidental", "AEST": "Horário Padrão da Austrália Oriental", "CLST": "Horário de Verão do Chile", "JDT": "Horário de Verão do Japão", "COST": "Horário de Verão da Colômbia", "HENOMX": "Horário de Verão do Noroeste do México", "CDT": "Horário de Verão Central", "HNT": "Horário Padrão de Terra Nova", "PST": "Horário Padrão do Pacífico", "AWDT": "Horário de Verão da Austrália Ocidental", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "CAT": "Horário da África Central", "COT": "Horário Padrão da Colômbia", "VET": "Horário da Venezuela", "WEZ": "Horário Padrão da Europa Ocidental", "HEOG": "Horário de Verão da Groenlândia Ocidental", "OESZ": "Horário de Verão da Europa Oriental", "HNCU": "Horário Padrão de Cuba", "GMT": "Horário do Meridiano de Greenwich"},
++ locale: "pt_GW",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"OEZ": "OEZ", "GFT": "GFT", "ARST": "ARST", "ACWST": "ACWST", "CHAST": "CHAST", "SGT": "SGT", "CDT": "CDT", "HNEG": "HNEG", "HNPM": "HNPM", "UYST": "UYST", "WAT": "WAT", "WART": "WART", "ADT": "ADT", "MEZ": "MEZ", "ACST": "ACST", "PST": "PST", "AKST": "AKST", "COT": "COT", "CAT": "CAT", "CLST": "CLST", "EST": "EST", "MST": "MST", "ART": "ART", "IST": "IST", "JDT": "JDT", "HNCU": "HNCU", "GYT": "GYT", "NZST": "NZST", "HEEG": "HEEG", "AWST": "AWST", "HEPM": "HEPM", "UYT": "UYT", "VET": "VET", "HEOG": "HEOG", "WIB": "WIB", "AST": "AST", "GMT": "GMT", "LHST": "LHST", "ACWDT": "ACWDT", "WARST": "WARST", "NZDT": "NZDT", "BOT": "BOT", "MYT": "MYT", "WESZ": "WESZ", "∅∅∅": "∅∅∅", "HKT": "HKT", "MDT": "MDT", "HENOMX": "HENOMX", "BT": "BT", "HEPMX": "HEPMX", "JST": "JST", "PDT": "PDT", "WIT": "WIT", "CST": "CST", "ECT": "ECT", "ChST": "ChST", "HADT": "HADT", "LHDT": "LHDT", "CHADT": "CHADT", "WEZ": "WEZ", "HECU": "HECU", "SAST": "SAST", "COST": "COST", "SRT": "SRT", "AEST": "AEST", "HNOG": "HNOG", "CLT": "CLT", "WITA": "WITA", "MESZ": "MESZ", "AWDT": "AWDT", "HNPMX": "HNPMX", "WAST": "WAST", "HNT": "HNT", "HKST": "HKST", "EAT": "EAT", "HAST": "HAST", "ACDT": "ACDT", "AKDT": "AKDT", "TMT": "TMT", "TMST": "TMST", "HNNOMX": "HNNOMX", "AEDT": "AEDT", "OESZ": "OESZ", "HAT": "HAT", "EDT": "EDT"},
+ }
+ }
+ 
+@@ -137,7 +114,7 @@ func (pt *pt_GW) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (pt *pt_GW) MonthsAbbreviated() []string {
+- return pt.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -147,7 +124,7 @@ func (pt *pt_GW) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (pt *pt_GW) MonthsNarrow() []string {
+- return pt.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -157,7 +134,7 @@ func (pt *pt_GW) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (pt *pt_GW) MonthsWide() []string {
+- return pt.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -203,73 +180,13 @@ func (pt *pt_GW) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'pt_GW' and handles both Whole and Real numbers based on 'v'
+ func (pt *pt_GW) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'pt_GW' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (pt *pt_GW) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, pt.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'pt_GW'
+@@ -277,56 +194,7 @@ func (pt *pt_GW) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'pt_GW'
+@@ -335,68 +203,7 @@ func (pt *pt_GW) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, pt.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, pt.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'pt_GW'
+@@ -404,27 +211,6 @@ func (pt *pt_GW) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,19 +219,6 @@ func (pt *pt_GW) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,19 +227,6 @@ func (pt *pt_GW) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,21 +235,6 @@ func (pt *pt_GW) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, pt.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -498,19 +243,6 @@ func (pt *pt_GW) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -519,26 +251,6 @@ func (pt *pt_GW) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -547,30 +259,6 @@ func (pt *pt_GW) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -579,34 +267,5 @@ func (pt *pt_GW) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := pt.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/pt_LU/pt_LU.go b/pt_LU/pt_LU.go
+index 14ce465..ea16dc7 100644
+--- a/pt_LU/pt_LU.go
++++ b/pt_LU/pt_LU.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type pt_LU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'pt_LU' locale
+ func New() locales.Translator {
+ return &pt_LU{
+- locale: "pt_LU",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "F", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"},
+- daysAbbreviated: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysNarrow: []string{"D", "S", "T", "Q", "Q", "S", "S"},
+- daysShort: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysWide: []string{"domingo", "segunda-feira", "terça-feira", "quarta-feira", "quinta-feira", "sexta-feira", "sábado"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"a.C.", "d.C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "depois de Cristo"},
+- timezones: map[string]string{"MST": "Horário Padrão de Macau", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "EAT": "Horário da África Oriental", "ADT": "Horário de Verão do Atlântico", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "MEZ": "Horário Padrão da Europa Central", "BOT": "Horário da Bolívia", "ART": "Horário Padrão da Argentina", "NZDT": "Horário de Verão da Nova Zelândia", "CHAST": "Horário Padrão de Chatham", "HECU": "Horário de Verão de Cuba", "HNPMX": "Horário Padrão do Pacífico do México", "MDT": "Horário de Verão de Macau", "AST": "Horário Padrão do Atlântico", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "LHDT": "Horário de Verão de Lord Howe", "SGT": "Horário Padrão de Cingapura", "HNT": "Horário Padrão de Terra Nova", "PST": "Horário Padrão do Pacífico", "CAT": "Horário da África Central", "HNCU": "Horário Padrão de Cuba", "HEPMX": "Horário de Verão do Pacífico do México", "BT": "Horário do Butão", "SRT": "Horário do Suriname", "AEST": "Horário Padrão da Austrália Oriental", "CHADT": "Horário de Verão de Chatham", "TMT": "Horário Padrão do Turcomenistão", "HENOMX": "Horário de Verão do Noroeste do México", "EDT": "Horário de Verão Oriental", "UYT": "Horário Padrão do Uruguai", "HKST": "Horário de Verão de Hong Kong", "AEDT": "Horário de Verão da Austrália Oriental", "COT": "Horário Padrão da Colômbia", "GMT": "Horário do Meridiano de Greenwich", "CST": "Horário Padrão Central", "UYST": "Horário de Verão do Uruguai", "WITA": "Horário da Indonésia Central", "VET": "Horário da Venezuela", "AKST": "Horário Padrão do Alasca", "HAT": "Horário de Verão de Terra Nova", "ECT": "Horário do Equador", "GYT": "Horário da Guiana", "LHST": "Horário Padrão de Lord Howe", "HNEG": "Horário Padrão da Groelândia Oriental", "HEEG": "Horário de Verão da Groelândia Oriental", "SAST": "Horário da África do Sul", "CLT": "Horário Padrão do Chile", "ACST": "Horário Padrão da Austrália Central", "∅∅∅": "Horário de Verão dos Açores", "EST": "Horário Padrão Oriental", "ARST": "Horário de Verão da Argentina", "PDT": "Horário de Verão do Pacífico", "AWST": "Horário Padrão da Austrália Ocidental", "ACDT": "Horário de Verão da Austrália Central", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "IST": "Horário Padrão da Índia", "JST": "Horário Padrão do Japão", "HNNOMX": "Horário Padrão do Noroeste do México", "WART": "Horário Padrão da Argentina Ocidental", "WARST": "Horário de Verão da Argentina Ocidental", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "HEOG": "Horário de Verão da Groenlândia Ocidental", "WAT": "Horário Padrão da África Ocidental", "CDT": "Horário de Verão Central", "WESZ": "Horário de Verão da Europa Ocidental", "OEZ": "Horário Padrão da Europa Oriental", "MESZ": "Horário de Verão da Europa Central", "WAST": "Horário de Verão da África Ocidental", "AKDT": "Horário de Verão do Alasca", "MYT": "Horário da Malásia", "WIB": "Horário da Indonésia Ocidental", "HNOG": "Horário Padrão da Groenlândia Ocidental", "WEZ": "Horário Padrão da Europa Ocidental", "CLST": "Horário de Verão do Chile", "GFT": "Horário da Guiana Francesa", "TMST": "Horário de Verão do Turcomenistão", "COST": "Horário de Verão da Colômbia", "WIT": "Horário da Indonésia Oriental", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "NZST": "Horário Padrão da Nova Zelândia", "JDT": "Horário de Verão do Japão", "OESZ": "Horário de Verão da Europa Oriental", "HKT": "Horário Padrão de Hong Kong", "AWDT": "Horário de Verão da Austrália Ocidental", "ChST": "Horário de Chamorro"},
++ locale: "pt_LU",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "F", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AKDT": "AKDT", "GFT": "GFT", "HEOG": "HEOG", "COT": "COT", "UYST": "UYST", "BT": "BT", "ADT": "ADT", "ACDT": "ACDT", "LHST": "LHST", "ACWDT": "ACWDT", "AKST": "AKST", "OEZ": "OEZ", "NZST": "NZST", "HEPM": "HEPM", "JST": "JST", "AEST": "AEST", "WAST": "WAST", "TMST": "TMST", "ARST": "ARST", "HAST": "HAST", "WEZ": "WEZ", "SGT": "SGT", "CLT": "CLT", "WIB": "WIB", "CDT": "CDT", "HEEG": "HEEG", "CHAST": "CHAST", "IST": "IST", "EST": "EST", "CLST": "CLST", "WITA": "WITA", "HNNOMX": "HNNOMX", "JDT": "JDT", "HNPMX": "HNPMX", "HNOG": "HNOG", "LHDT": "LHDT", "ACWST": "ACWST", "PST": "PST", "HEPMX": "HEPMX", "∅∅∅": "∅∅∅", "HKT": "HKT", "HNT": "HNT", "ChST": "ChST", "VET": "VET", "AEDT": "AEDT", "UYT": "UYT", "WART": "WART", "ECT": "ECT", "HENOMX": "HENOMX", "MEZ": "MEZ", "MESZ": "MESZ", "ACST": "ACST", "PDT": "PDT", "HECU": "HECU", "WAT": "WAT", "EDT": "EDT", "TMT": "TMT", "OESZ": "OESZ", "MDT": "MDT", "HNEG": "HNEG", "HNPM": "HNPM", "AWST": "AWST", "COST": "COST", "HKST": "HKST", "MST": "MST", "NZDT": "NZDT", "AST": "AST", "GMT": "GMT", "WIT": "WIT", "SAST": "SAST", "ART": "ART", "AWDT": "AWDT", "HNCU": "HNCU", "GYT": "GYT", "BOT": "BOT", "SRT": "SRT", "HADT": "HADT", "MYT": "MYT", "WESZ": "WESZ", "HAT": "HAT", "WARST": "WARST", "CAT": "CAT", "CST": "CST", "EAT": "EAT", "CHADT": "CHADT"},
+ }
+ }
+ 
+@@ -137,7 +114,7 @@ func (pt *pt_LU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (pt *pt_LU) MonthsAbbreviated() []string {
+- return pt.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -147,7 +124,7 @@ func (pt *pt_LU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (pt *pt_LU) MonthsNarrow() []string {
+- return pt.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -157,7 +134,7 @@ func (pt *pt_LU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (pt *pt_LU) MonthsWide() []string {
+- return pt.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -203,73 +180,13 @@ func (pt *pt_LU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'pt_LU' and handles both Whole and Real numbers based on 'v'
+ func (pt *pt_LU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'pt_LU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (pt *pt_LU) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, pt.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'pt_LU'
+@@ -277,56 +194,7 @@ func (pt *pt_LU) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'pt_LU'
+@@ -335,68 +203,7 @@ func (pt *pt_LU) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, pt.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, pt.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'pt_LU'
+@@ -404,27 +211,6 @@ func (pt *pt_LU) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,19 +219,6 @@ func (pt *pt_LU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,19 +227,6 @@ func (pt *pt_LU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,21 +235,6 @@ func (pt *pt_LU) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, pt.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -498,19 +243,6 @@ func (pt *pt_LU) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -519,26 +251,6 @@ func (pt *pt_LU) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -547,30 +259,6 @@ func (pt *pt_LU) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -579,34 +267,5 @@ func (pt *pt_LU) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := pt.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/pt_MO/pt_MO.go b/pt_MO/pt_MO.go
+index dc33ef1..291e8f9 100644
+--- a/pt_MO/pt_MO.go
++++ b/pt_MO/pt_MO.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type pt_MO struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'pt_MO' locale
+ func New() locales.Translator {
+ return &pt_MO{
+- locale: "pt_MO",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP$", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"},
+- daysAbbreviated: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysNarrow: []string{"D", "S", "T", "Q", "Q", "S", "S"},
+- daysShort: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysWide: []string{"domingo", "segunda-feira", "terça-feira", "quarta-feira", "quinta-feira", "sexta-feira", "sábado"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"a.C.", "d.C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "depois de Cristo"},
+- timezones: map[string]string{"HEOG": "Horário de Verão da Groenlândia Ocidental", "CLST": "Horário de Verão do Chile", "OEZ": "Horário Padrão da Europa Oriental", "AST": "Horário Padrão do Atlântico", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "WARST": "Horário de Verão da Argentina Ocidental", "AKST": "Horário Padrão do Alasca", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "MEZ": "Horário Padrão da Europa Central", "JST": "Horário Padrão do Japão", "ChST": "Horário de Chamorro", "WAT": "Horário Padrão da África Ocidental", "TMST": "Horário de Verão do Turcomenistão", "CAT": "Horário da África Central", "MDT": "Horário de Verão de Macau", "CST": "Horário Padrão Central", "HNT": "Horário Padrão de Terra Nova", "JDT": "Horário de Verão do Japão", "TMT": "Horário Padrão do Turcomenistão", "HEPMX": "Horário de Verão do Pacífico do México", "WEZ": "Horário Padrão da Europa Ocidental", "AKDT": "Horário de Verão do Alasca", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "BT": "Horário do Butão", "HKT": "Horário Padrão de Hong Kong", "GFT": "Horário da Guiana Francesa", "WART": "Horário Padrão da Argentina Ocidental", "COT": "Horário Padrão da Colômbia", "MYT": "Horário da Malásia", "SRT": "Horário do Suriname", "HNEG": "Horário Padrão da Groelândia Oriental", "HEEG": "Horário de Verão da Groelândia Oriental", "WAST": "Horário de Verão da África Ocidental", "ECT": "Horário do Equador", "ADT": "Horário de Verão do Atlântico", "PDT": "Horário de Verão do Pacífico", "HKST": "Horário de Verão de Hong Kong", "ACST": "Horário Padrão da Austrália Central", "ACDT": "Horário de Verão da Austrália Central", "HECU": "Horário de Verão de Cuba", "UYT": "Horário Padrão do Uruguai", "ARST": "Horário de Verão da Argentina", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "NZDT": "Horário de Verão da Nova Zelândia", "CHAST": "Horário Padrão de Chatham", "WIT": "Horário da Indonésia Oriental", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "HAT": "Horário de Verão de Terra Nova", "AEST": "Horário Padrão da Austrália Oriental", "WITA": "Horário da Indonésia Central", "CDT": "Horário de Verão Central", "GYT": "Horário da Guiana", "WIB": "Horário da Indonésia Ocidental", "VET": "Horário da Venezuela", "NZST": "Horário Padrão da Nova Zelândia", "IST": "Horário Padrão da Índia", "GMT": "Horário do Meridiano de Greenwich", "HNCU": "Horário Padrão de Cuba", "LHDT": "Horário de Verão de Lord Howe", "CHADT": "Horário de Verão de Chatham", "AWST": "Horário Padrão da Austrália Ocidental", "AWDT": "Horário de Verão da Austrália Ocidental", "∅∅∅": "Horário de Verão do Amazonas", "EST": "Horário Padrão Oriental", "HNPMX": "Horário Padrão do Pacífico do México", "UYST": "Horário de Verão do Uruguai", "HNOG": "Horário Padrão da Groenlândia Ocidental", "AEDT": "Horário de Verão da Austrália Oriental", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "LHST": "Horário Padrão de Lord Howe", "SAST": "Horário da África do Sul", "HNNOMX": "Horário Padrão do Noroeste do México", "MST": "Horário Padrão de Macau", "ART": "Horário Padrão da Argentina", "MESZ": "Horário de Verão da Europa Central", "CLT": "Horário Padrão do Chile", "COST": "Horário de Verão da Colômbia", "SGT": "Horário Padrão de Cingapura", "BOT": "Horário da Bolívia", "EDT": "Horário de Verão Oriental", "WESZ": "Horário de Verão da Europa Ocidental", "EAT": "Horário da África Oriental", "OESZ": "Horário de Verão da Europa Oriental", "HENOMX": "Horário de Verão do Noroeste do México", "PST": "Horário Padrão do Pacífico"},
++ locale: "pt_MO",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP$", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"EDT": "EDT", "MDT": "MDT", "SRT": "SRT", "ACDT": "ACDT", "JST": "JST", "LHST": "LHST", "ACWDT": "ACWDT", "WEZ": "WEZ", "SGT": "SGT", "WART": "WART", "EST": "EST", "CDT": "CDT", "NZDT": "NZDT", "AST": "AST", "HENOMX": "HENOMX", "UYST": "UYST", "IST": "IST", "VET": "VET", "OEZ": "OEZ", "SAST": "SAST", "WIB": "WIB", "BT": "BT", "HKST": "HKST", "NZST": "NZST", "ART": "ART", "AWST": "AWST", "AEST": "AEST", "CHADT": "CHADT", "HAT": "HAT", "GYT": "GYT", "ChST": "ChST", "HNEG": "HNEG", "HNPMX": "HNPMX", "CST": "CST", "GMT": "GMT", "MEZ": "MEZ", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "WIT": "WIT", "EAT": "EAT", "MYT": "MYT", "AEDT": "AEDT", "ECT": "ECT", "HADT": "HADT", "ACST": "ACST", "PDT": "PDT", "AKST": "AKST", "HEPM": "HEPM", "COT": "COT", "CLT": "CLT", "CLST": "CLST", "ARST": "ARST", "MESZ": "MESZ", "HEEG": "HEEG", "LHDT": "LHDT", "HNCU": "HNCU", "AKDT": "AKDT", "CAT": "CAT", "WITA": "WITA", "HEPMX": "HEPMX", "WAST": "WAST", "AWDT": "AWDT", "UYT": "UYT", "GFT": "GFT", "CHAST": "CHAST", "WAT": "WAT", "OESZ": "OESZ", "ACWST": "ACWST", "WESZ": "WESZ", "HECU": "HECU", "HNT": "HNT", "WARST": "WARST", "COST": "COST", "TMT": "TMT", "ADT": "ADT", "HAST": "HAST", "HNOG": "HNOG", "HKT": "HKT", "TMST": "TMST", "∅∅∅": "∅∅∅", "MST": "MST", "BOT": "BOT", "JDT": "JDT", "PST": "PST", "HEOG": "HEOG"},
+ }
+ }
+ 
+@@ -137,7 +114,7 @@ func (pt *pt_MO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (pt *pt_MO) MonthsAbbreviated() []string {
+- return pt.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -147,7 +124,7 @@ func (pt *pt_MO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (pt *pt_MO) MonthsNarrow() []string {
+- return pt.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -157,7 +134,7 @@ func (pt *pt_MO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (pt *pt_MO) MonthsWide() []string {
+- return pt.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -203,73 +180,13 @@ func (pt *pt_MO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'pt_MO' and handles both Whole and Real numbers based on 'v'
+ func (pt *pt_MO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'pt_MO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (pt *pt_MO) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, pt.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'pt_MO'
+@@ -277,56 +194,7 @@ func (pt *pt_MO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'pt_MO'
+@@ -335,68 +203,7 @@ func (pt *pt_MO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, pt.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, pt.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'pt_MO'
+@@ -404,27 +211,6 @@ func (pt *pt_MO) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,19 +219,6 @@ func (pt *pt_MO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,19 +227,6 @@ func (pt *pt_MO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,21 +235,6 @@ func (pt *pt_MO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, pt.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/pt_MZ/pt_MZ.go b/pt_MZ/pt_MZ.go
+index 5c42cf7..99731a9 100644
+--- a/pt_MZ/pt_MZ.go
++++ b/pt_MZ/pt_MZ.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type pt_MZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'pt_MZ' locale
+ func New() locales.Translator {
+ return &pt_MZ{
+- locale: "pt_MZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MTn", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"},
+- daysAbbreviated: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysNarrow: []string{"D", "S", "T", "Q", "Q", "S", "S"},
+- daysShort: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysWide: []string{"domingo", "segunda-feira", "terça-feira", "quarta-feira", "quinta-feira", "sexta-feira", "sábado"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"a.C.", "d.C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "depois de Cristo"},
+- timezones: map[string]string{"HNPMX": "Horário Padrão do Pacífico do México", "AKDT": "Horário de Verão do Alasca", "AEDT": "Horário de Verão da Austrália Oriental", "TMST": "Horário de Verão do Turcomenistão", "HEEG": "Horário de Verão da Groelândia Oriental", "OEZ": "Horário Padrão da Europa Oriental", "ECT": "Horário do Equador", "EST": "Horário Padrão Oriental", "COST": "Horário de Verão da Colômbia", "HNNOMX": "Horário Padrão do Noroeste do México", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "AWST": "Horário Padrão da Austrália Ocidental", "HKT": "Horário Padrão de Hong Kong", "NZDT": "Horário de Verão da Nova Zelândia", "JDT": "Horário de Verão do Japão", "COT": "Horário Padrão da Colômbia", "MDT": "Horário de Verão de Macau", "WIT": "Horário da Indonésia Oriental", "SRT": "Horário do Suriname", "OESZ": "Horário de Verão da Europa Oriental", "CAT": "Horário da África Central", "WAT": "Horário Padrão da África Ocidental", "GMT": "Horário do Meridiano de Greenwich", "CST": "Horário Padrão Central", "VET": "Horário da Venezuela", "HEOG": "Horário de Verão da Groenlândia Ocidental", "ACDT": "Horário de Verão da Austrália Central", "EAT": "Horário da África Oriental", "HECU": "Horário de Verão de Cuba", "MYT": "Horário da Malásia", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "IST": "Horário Padrão da Índia", "∅∅∅": "Horário de Verão do Amazonas", "GFT": "Horário da Guiana Francesa", "TMT": "Horário Padrão do Turcomenistão", "BOT": "Horário da Bolívia", "SGT": "Horário Padrão de Cingapura", "HAT": "Horário de Verão de Terra Nova", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "CHAST": "Horário Padrão de Chatham", "CHADT": "Horário de Verão de Chatham", "LHST": "Horário Padrão de Lord Howe", "ACST": "Horário Padrão da Austrália Central", "HNT": "Horário Padrão de Terra Nova", "AST": "Horário Padrão do Atlântico", "NZST": "Horário Padrão da Nova Zelândia", "CLT": "Horário Padrão do Chile", "WARST": "Horário de Verão da Argentina Ocidental", "MST": "Horário Padrão de Macau", "WIB": "Horário da Indonésia Ocidental", "ART": "Horário Padrão da Argentina", "MEZ": "Horário Padrão da Europa Central", "GYT": "Horário da Guiana", "ARST": "Horário de Verão da Argentina", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "SAST": "Horário da África do Sul", "ADT": "Horário de Verão do Atlântico", "PST": "Horário Padrão do Pacífico", "CLST": "Horário de Verão do Chile", "WART": "Horário Padrão da Argentina Ocidental", "AEST": "Horário Padrão da Austrália Oriental", "HNEG": "Horário Padrão da Groelândia Oriental", "HENOMX": "Horário de Verão do Noroeste do México", "UYT": "Horário Padrão do Uruguai", "HNCU": "Horário Padrão de Cuba", "EDT": "Horário de Verão Oriental", "BT": "Horário do Butão", "PDT": "Horário de Verão do Pacífico", "WEZ": "Horário Padrão da Europa Ocidental", "WESZ": "Horário de Verão da Europa Ocidental", "WITA": "Horário da Indonésia Central", "LHDT": "Horário de Verão de Lord Howe", "AKST": "Horário Padrão do Alasca", "HKST": "Horário de Verão de Hong Kong", "CDT": "Horário de Verão Central", "MESZ": "Horário de Verão da Europa Central", "JST": "Horário Padrão do Japão", "ChST": "Horário de Chamorro", "HEPMX": "Horário de Verão do Pacífico do México", "UYST": "Horário de Verão do Uruguai", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "HNOG": "Horário Padrão da Groenlândia Ocidental", "AWDT": "Horário de Verão da Austrália Ocidental", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "WAST": "Horário de Verão da África Ocidental"},
++ locale: "pt_MZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MTn", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEOG": "HEOG", "HKT": "HKT", "MEZ": "MEZ", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "AWST": "AWST", "HAT": "HAT", "SAST": "SAST", "IST": "IST", "AEST": "AEST", "WIB": "WIB", "HNEG": "HNEG", "HNPMX": "HNPMX", "WAT": "WAT", "MST": "MST", "WEZ": "WEZ", "ART": "ART", "HNPM": "HNPM", "CLT": "CLT", "ChST": "ChST", "HAST": "HAST", "MESZ": "MESZ", "AWDT": "AWDT", "OESZ": "OESZ", "TMST": "TMST", "GYT": "GYT", "ADT": "ADT", "JDT": "JDT", "MDT": "MDT", "BOT": "BOT", "WIT": "WIT", "COT": "COT", "HKST": "HKST", "ECT": "ECT", "LHDT": "LHDT", "ACWST": "ACWST", "GFT": "GFT", "WARST": "WARST", "CHAST": "CHAST", "HEPMX": "HEPMX", "WITA": "WITA", "CST": "CST", "HADT": "HADT", "ACDT": "ACDT", "PST": "PST", "SGT": "SGT", "OEZ": "OEZ", "COST": "COST", "CLST": "CLST", "NZST": "NZST", "SRT": "SRT", "TMT": "TMT", "CAT": "CAT", "CHADT": "CHADT", "AST": "AST", "ACWDT": "ACWDT", "HNT": "HNT", "EDT": "EDT", "NZDT": "NZDT", "GMT": "GMT", "EAT": "EAT", "LHST": "LHST", "∅∅∅": "∅∅∅", "AKST": "AKST", "VET": "VET", "UYST": "UYST", "PDT": "PDT", "ACST": "ACST", "WESZ": "WESZ", "ARST": "ARST", "JST": "JST", "HECU": "HECU", "AKDT": "AKDT", "WART": "WART", "AEDT": "AEDT", "EST": "EST", "HENOMX": "HENOMX", "HNOG": "HNOG", "BT": "BT", "MYT": "MYT", "HEPM": "HEPM", "UYT": "UYT", "HNCU": "HNCU", "WAST": "WAST", "CDT": "CDT"},
+ }
+ }
+ 
+@@ -137,7 +114,7 @@ func (pt *pt_MZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (pt *pt_MZ) MonthsAbbreviated() []string {
+- return pt.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -147,7 +124,7 @@ func (pt *pt_MZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (pt *pt_MZ) MonthsNarrow() []string {
+- return pt.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -157,7 +134,7 @@ func (pt *pt_MZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (pt *pt_MZ) MonthsWide() []string {
+- return pt.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -203,73 +180,13 @@ func (pt *pt_MZ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'pt_MZ' and handles both Whole and Real numbers based on 'v'
+ func (pt *pt_MZ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'pt_MZ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (pt *pt_MZ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, pt.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'pt_MZ'
+@@ -277,56 +194,7 @@ func (pt *pt_MZ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'pt_MZ'
+@@ -335,68 +203,7 @@ func (pt *pt_MZ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, pt.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, pt.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'pt_MZ'
+@@ -404,27 +211,6 @@ func (pt *pt_MZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,19 +219,6 @@ func (pt *pt_MZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,19 +227,6 @@ func (pt *pt_MZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,21 +235,6 @@ func (pt *pt_MZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, pt.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -498,19 +243,6 @@ func (pt *pt_MZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -519,26 +251,6 @@ func (pt *pt_MZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -547,30 +259,6 @@ func (pt *pt_MZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -579,34 +267,5 @@ func (pt *pt_MZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := pt.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/pt_PT/pt_PT.go b/pt_PT/pt_PT.go
+index 25aaba1..4beb265 100644
+--- a/pt_PT/pt_PT.go
++++ b/pt_PT/pt_PT.go
+@@ -49,31 +49,20 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{2, 6},
+ pluralsOrdinal: []locales.PluralRule{6},
+ pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+ group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "\u200b", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositiveSuffix: " ",
+ currencyNegativePrefix: "(",
+ currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"},
+ daysAbbreviated: []string{"domingo", "segunda", "terça", "quarta", "quinta", "sexta", "sábado"},
+- daysNarrow: []string{"D", "S", "T", "Q", "Q", "S", "S"},
+- daysShort: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysWide: []string{"domingo", "segunda-feira", "terça-feira", "quarta-feira", "quinta-feira", "sexta-feira", "sábado"},
+ periodsAbbreviated: []string{"a.m.", "p.m."},
+ periodsNarrow: []string{"a.m.", "p.m."},
+ periodsWide: []string{"da manhã", "da tarde"},
+ erasAbbreviated: []string{"a.E.C.", "E.C."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"ACDT": "Hora de verão da Austrália Central", "EDT": "Hora de verão Oriental", "LHDT": "Hora de verão de Lord Howe", "IST": "Hora padrão da Índia", "HEEG": "Hora de verão da Gronelândia Oriental", "ACWST": "Hora padrão da Austrália Central Ocidental", "AWST": "Hora padrão da Austrália Ocidental", "HKT": "Hora padrão de Hong Kong", "WITA": "Hora da Indonésia Central", "MEZ": "Hora padrão da Europa Central", "ACST": "Hora padrão da Austrália Central", "∅∅∅": "Hora de verão do Peru", "MDT": "Hora de verão de Macau", "AEST": "Hora padrão da Austrália Oriental", "JST": "Hora padrão do Japão", "HECU": "Hora de verão de Cuba", "HADT": "Hora de verão do Havai e Aleutas", "HEOG": "Hora de verão da Gronelândia Ocidental", "LHST": "Hora padrão de Lord Howe", "HNEG": "Hora padrão da Gronelândia Oriental", "WAT": "Hora padrão da África Ocidental", "OEZ": "Hora padrão da Europa Oriental", "SRT": "Hora do Suriname", "ART": "Hora padrão da Argentina", "CLT": "Hora padrão do Chile", "WAST": "Hora de verão da África Ocidental", "UYST": "Hora de verão do Uruguai", "PDT": "Hora de verão do Pacífico", "AWDT": "Hora de verão da Austrália Ocidental", "AEDT": "Hora de verão da Austrália Oriental", "HNPMX": "Hora padrão do Pacífico Mexicano", "MESZ": "Hora de verão da Europa Central", "JDT": "Hora de verão do Japão", "NZDT": "Hora de verão da Nova Zelândia", "WARST": "Hora de verão da Argentina Ocidental", "ADT": "Hora de verão do Atlântico", "VET": "Hora da Venezuela", "HKST": "Hora de verão de Hong Kong", "HNPM": "Hora padrão de São Pedro e Miquelão", "WIB": "Hora da Indonésia Ocidental", "HNOG": "Hora padrão da Gronelândia Ocidental", "OESZ": "Hora de verão da Europa Oriental", "ECT": "Hora do Equador", "HNNOMX": "Hora padrão do Noroeste do México", "HENOMX": "Hora de verão do Noroeste do México", "AST": "Hora padrão do Atlântico", "HNCU": "Hora padrão de Cuba", "WESZ": "Hora de verão da Europa Ocidental", "GFT": "Hora da Guiana Francesa", "EAT": "Hora da África Oriental", "CAT": "Hora da África Central", "AKDT": "Hora de verão do Alasca", "HNT": "Hora padrão da Terra Nova", "PST": "Hora padrão do Pacífico", "CHADT": "Hora de verão do Chatham", "CLST": "Hora de verão do Chile", "BOT": "Hora da Bolívia", "GMT": "Hora de Greenwich", "CST": "Hora padrão Central", "HAST": "Hora padrão do Havai e Aleutas", "ACWDT": "Hora de verão da Austrália Central Ocidental", "NZST": "Hora padrão da Nova Zelândia", "AKST": "Hora padrão do Alasca", "GYT": "Hora da Guiana", "HEPM": "Hora de verão de São Pedro e Miquelão", "ChST": "Hora padrão do Chamorro", "BT": "Hora do Butão", "WEZ": "Hora padrão da Europa Ocidental", "HAT": "Hora de verão da Terra Nova", "HEPMX": "Hora de verão do Pacífico Mexicano", "EST": "Hora padrão Oriental", "CDT": "Hora de verão Central", "MYT": "Hora da Malásia", "WIT": "Hora da Indonésia Oriental", "ARST": "Hora de verão da Argentina", "TMT": "Hora padrão do Turquemenistão", "TMST": "Hora de verão do Turquemenistão", "WART": "Hora padrão da Argentina Ocidental", "SGT": "Hora padrão de Singapura", "MST": "Hora padrão de Macau", "UYT": "Hora padrão do Uruguai", "SAST": "Hora da África do Sul", "COT": "Hora padrão da Colômbia", "COST": "Hora de verão da Colômbia", "CHAST": "Hora padrão do Chatham"},
++ timezones: map[string]string{"UYST": "Hora de verão do Uruguai", "SAST": "Hora da África do Sul", "ADT": "Hora de verão do Atlântico", "ART": "Hora padrão da Argentina", "BOT": "Hora da Bolívia", "MESZ": "Hora de verão da Europa Central", "ACDT": "Hora de verão da Austrália Central", "AEST": "Hora padrão da Austrália Oriental", "CST": "Hora padrão Central", "LHST": "Hora padrão de Lord Howe", "UYT": "Hora padrão do Uruguai", "HEOG": "Hora de verão da Gronelândia Ocidental", "HENOMX": "Hora de verão do Noroeste do México", "WESZ": "Hora de verão da Europa Ocidental", "WIT": "Hora da Indonésia Oriental", "GYT": "Hora da Guiana", "COST": "Hora de verão da Colômbia", "ARST": "Hora de verão da Argentina", "HNCU": "Hora padrão de Cuba", "GFT": "Hora da Guiana Francesa", "AWST": "Hora padrão da Austrália Ocidental", "HKT": "Hora padrão de Hong Kong", "COT": "Hora padrão da Colômbia", "HNOG": "Hora padrão da Gronelândia Ocidental", "JST": "Hora padrão do Japão", "IST": "Hora padrão da Índia", "HKST": "Hora de verão de Hong Kong", "WIB": "Hora da Indonésia Ocidental", "AST": "Hora padrão do Atlântico", "ChST": "Hora padrão do Chamorro", "ACST": "Hora padrão da Austrália Central", "HNEG": "Hora padrão da Gronelândia Oriental", "CHADT": "Hora de verão do Chatham", "HEPMX": "Hora de verão do Pacífico Mexicano", "WARST": "Hora de verão da Argentina Ocidental", "TMST": "Hora de verão do Turquemenistão", "NZST": "Hora padrão da Nova Zelândia", "MEZ": "Hora padrão da Europa Central", "LHDT": "Hora de verão de Lord Howe", "BT": "Hora do Butão", "CHAST": "Hora padrão do Chatham", "OEZ": "Hora padrão da Europa Oriental", "CLT": "Hora padrão do Chile", "WITA": "Hora da Indonésia Central", "MST": "Hora padrão de Macau", "NZDT": "Hora de verão da Nova Zelândia", "SRT": "Hora do Suriname", "JDT": "Hora de verão do Japão", "HAT": "Hora de verão da Terra Nova", "EDT": "Hora de verão Oriental", "CDT": "Hora de verão Central", "HECU": "Hora de verão de Cuba", "OESZ": "Hora de verão da Europa Oriental", "CLST": "Hora de verão do Chile", "ECT": "Hora do Equador", "GMT": "Hora de Greenwich", "HEEG": "Hora de verão da Gronelândia Oriental", "HEPM": "Hora de verão de São Pedro e Miquelão", "HNPMX": "Hora padrão do Pacífico Mexicano", "AKST": "Hora padrão do Alasca", "AKDT": "Hora de verão do Alasca", "CAT": "Hora da África Central", "HADT": "Hora de verão do Havai e Aleutas", "HNNOMX": "Hora padrão do Noroeste do México", "MYT": "Hora da Malásia", "ACWDT": "Hora de verão da Austrália Central Ocidental", "SGT": "Hora padrão de Singapura", "WART": "Hora padrão da Argentina Ocidental", "EST": "Hora padrão Oriental", "MDT": "Hora de verão de Macau", "AWDT": "Hora de verão da Austrália Ocidental", "EAT": "Hora da África Oriental", "HNPM": "Hora padrão de São Pedro e Miquelão", "PDT": "Hora de verão do Pacífico", "ACWST": "Hora padrão da Austrália Central Ocidental", "WAST": "Hora de verão da África Ocidental", "HNT": "Hora padrão da Terra Nova", "HAST": "Hora padrão do Havai e Aleutas", "PST": "Hora padrão do Pacífico", "WEZ": "Hora padrão da Europa Ocidental", "WAT": "Hora padrão da África Ocidental", "TMT": "Hora padrão do Turquemenistão", "∅∅∅": "Hora de verão dos Açores", "AEDT": "Hora de verão da Austrália Oriental", "VET": "Hora da Venezuela"},
+ }
+ }
+ 
+@@ -102,7 +91,7 @@ func (pt *pt_PT) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+ 
+- if n >= 0 && n <= 2 && n != 2 {
++ if n == 1 && v == 0 {
+ return locales.PluralRuleOne
+ }
+ 
+@@ -139,7 +128,7 @@ func (pt *pt_PT) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (pt *pt_PT) MonthsAbbreviated() []string {
+- return pt.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -149,7 +138,7 @@ func (pt *pt_PT) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (pt *pt_PT) MonthsNarrow() []string {
+- return pt.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -159,7 +148,7 @@ func (pt *pt_PT) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (pt *pt_PT) MonthsWide() []string {
+- return pt.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -205,75 +194,13 @@ func (pt *pt_PT) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'pt_PT' and handles both Whole and Real numbers based on 'v'
+ func (pt *pt_PT) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(pt.group) - 1; j >= 0; j-- {
+- b = append(b, pt.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'pt_PT' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (pt *pt_PT) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, pt.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'pt_PT'
+@@ -281,7 +208,7 @@ func (pt *pt_PT) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -341,7 +268,7 @@ func (pt *pt_PT) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -465,19 +392,6 @@ func (pt *pt_PT) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -486,21 +400,6 @@ func (pt *pt_PT) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, pt.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -509,19 +408,6 @@ func (pt *pt_PT) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -530,26 +416,6 @@ func (pt *pt_PT) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -558,30 +424,6 @@ func (pt *pt_PT) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -590,34 +432,5 @@ func (pt *pt_PT) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := pt.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/pt_ST/pt_ST.go b/pt_ST/pt_ST.go
+index e0ad2ea..6f127e1 100644
+--- a/pt_ST/pt_ST.go
++++ b/pt_ST/pt_ST.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type pt_ST struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'pt_ST' locale
+ func New() locales.Translator {
+ return &pt_ST{
+- locale: "pt_ST",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "Db", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"},
+- daysAbbreviated: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysNarrow: []string{"D", "S", "T", "Q", "Q", "S", "S"},
+- daysShort: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysWide: []string{"domingo", "segunda-feira", "terça-feira", "quarta-feira", "quinta-feira", "sexta-feira", "sábado"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"a.C.", "d.C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "depois de Cristo"},
+- timezones: map[string]string{"UYST": "Horário de Verão do Uruguai", "WEZ": "Horário Padrão da Europa Ocidental", "CHADT": "Horário de Verão de Chatham", "COT": "Horário Padrão da Colômbia", "HNNOMX": "Horário Padrão do Noroeste do México", "MDT": "Horário de Verão de Macau", "HNPMX": "Horário Padrão do Pacífico do México", "GYT": "Horário da Guiana", "ACST": "Horário Padrão da Austrália Central", "LHDT": "Horário de Verão de Lord Howe", "NZST": "Horário Padrão da Nova Zelândia", "GFT": "Horário da Guiana Francesa", "OESZ": "Horário de Verão da Europa Oriental", "MST": "Horário Padrão de Macau", "ADT": "Horário de Verão do Atlântico", "WIT": "Horário da Indonésia Oriental", "PST": "Horário Padrão do Pacífico", "OEZ": "Horário Padrão da Europa Oriental", "HEPMX": "Horário de Verão do Pacífico do México", "HKT": "Horário Padrão de Hong Kong", "MEZ": "Horário Padrão da Europa Central", "IST": "Horário Padrão da Índia", "WART": "Horário Padrão da Argentina Ocidental", "HECU": "Horário de Verão de Cuba", "AST": "Horário Padrão do Atlântico", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "CLST": "Horário de Verão do Chile", "AEDT": "Horário de Verão da Austrália Oriental", "BOT": "Horário da Bolívia", "ECT": "Horário do Equador", "WARST": "Horário de Verão da Argentina Ocidental", "EST": "Horário Padrão Oriental", "AWST": "Horário Padrão da Austrália Ocidental", "AWDT": "Horário de Verão da Austrália Ocidental", "HEEG": "Horário de Verão da Groelândia Oriental", "COST": "Horário de Verão da Colômbia", "EDT": "Horário de Verão Oriental", "HEOG": "Horário de Verão da Groenlândia Ocidental", "WESZ": "Horário de Verão da Europa Ocidental", "HAT": "Horário de Verão de Terra Nova", "TMST": "Horário de Verão do Turcomenistão", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "JDT": "Horário de Verão do Japão", "SGT": "Horário Padrão de Cingapura", "HNCU": "Horário Padrão de Cuba", "MYT": "Horário da Malásia", "CDT": "Horário de Verão Central", "HKST": "Horário de Verão de Hong Kong", "EAT": "Horário da África Oriental", "AKDT": "Horário de Verão do Alasca", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "MESZ": "Horário de Verão da Europa Central", "HNEG": "Horário Padrão da Groelândia Oriental", "JST": "Horário Padrão do Japão", "ACDT": "Horário de Verão da Austrália Central", "CAT": "Horário da África Central", "GMT": "Horário do Meridiano de Greenwich", "WIB": "Horário da Indonésia Ocidental", "HNT": "Horário Padrão de Terra Nova", "CHAST": "Horário Padrão de Chatham", "UYT": "Horário Padrão do Uruguai", "PDT": "Horário de Verão do Pacífico", "LHST": "Horário Padrão de Lord Howe", "TMT": "Horário Padrão do Turcomenistão", "AKST": "Horário Padrão do Alasca", "ARST": "Horário de Verão da Argentina", "NZDT": "Horário de Verão da Nova Zelândia", "SAST": "Horário da África do Sul", "∅∅∅": "Horário de Verão do Peru", "CST": "Horário Padrão Central", "SRT": "Horário do Suriname", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "WITA": "Horário da Indonésia Central", "WAST": "Horário de Verão da África Ocidental", "HENOMX": "Horário de Verão do Noroeste do México", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "CLT": "Horário Padrão do Chile", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "BT": "Horário do Butão", "HNOG": "Horário Padrão da Groenlândia Ocidental", "AEST": "Horário Padrão da Austrália Oriental", "WAT": "Horário Padrão da África Ocidental", "VET": "Horário da Venezuela", "ART": "Horário Padrão da Argentina", "ChST": "Horário de Chamorro"},
++ locale: "pt_ST",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "Db", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"LHST": "LHST", "JST": "JST", "WESZ": "WESZ", "WIT": "WIT", "HKT": "HKT", "TMST": "TMST", "MYT": "MYT", "AEST": "AEST", "WAST": "WAST", "OESZ": "OESZ", "EDT": "EDT", "GFT": "GFT", "HNT": "HNT", "GYT": "GYT", "COST": "COST", "PDT": "PDT", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "WARST": "WARST", "CLT": "CLT", "WIB": "WIB", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "CHADT": "CHADT", "WART": "WART", "HEOG": "HEOG", "GMT": "GMT", "MESZ": "MESZ", "HNPM": "HNPM", "UYST": "UYST", "∅∅∅": "∅∅∅", "ARST": "ARST", "EAT": "EAT", "HEEG": "HEEG", "AWST": "AWST", "SAST": "SAST", "CAT": "CAT", "ART": "ART", "SRT": "SRT", "HEPM": "HEPM", "BT": "BT", "COT": "COT", "MDT": "MDT", "MEZ": "MEZ", "LHDT": "LHDT", "OEZ": "OEZ", "TMT": "TMT", "AKST": "AKST", "AKDT": "AKDT", "EST": "EST", "MST": "MST", "BOT": "BOT", "HENOMX": "HENOMX", "AEDT": "AEDT", "CHAST": "CHAST", "ACWST": "ACWST", "SGT": "SGT", "CST": "CST", "HAST": "HAST", "HADT": "HADT", "UYT": "UYT", "IST": "IST", "AST": "AST", "AWDT": "AWDT", "HEPMX": "HEPMX", "CLST": "CLST", "ChST": "ChST", "WEZ": "WEZ", "VET": "VET", "WAT": "WAT", "NZDT": "NZDT", "ACST": "ACST", "JDT": "JDT", "HNOG": "HNOG", "HNCU": "HNCU", "HECU": "HECU", "HAT": "HAT", "CDT": "CDT", "NZST": "NZST", "ECT": "ECT", "ADT": "ADT", "HNEG": "HNEG", "PST": "PST", "HKST": "HKST", "WITA": "WITA"},
+ }
+ }
+ 
+@@ -137,7 +114,7 @@ func (pt *pt_ST) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (pt *pt_ST) MonthsAbbreviated() []string {
+- return pt.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -147,7 +124,7 @@ func (pt *pt_ST) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (pt *pt_ST) MonthsNarrow() []string {
+- return pt.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -157,7 +134,7 @@ func (pt *pt_ST) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (pt *pt_ST) MonthsWide() []string {
+- return pt.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -203,73 +180,13 @@ func (pt *pt_ST) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'pt_ST' and handles both Whole and Real numbers based on 'v'
+ func (pt *pt_ST) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'pt_ST' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (pt *pt_ST) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, pt.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'pt_ST'
+@@ -277,56 +194,7 @@ func (pt *pt_ST) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'pt_ST'
+@@ -335,68 +203,7 @@ func (pt *pt_ST) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, pt.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, pt.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'pt_ST'
+@@ -404,27 +211,6 @@ func (pt *pt_ST) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,19 +219,6 @@ func (pt *pt_ST) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,19 +227,6 @@ func (pt *pt_ST) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,21 +235,6 @@ func (pt *pt_ST) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, pt.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -498,19 +243,6 @@ func (pt *pt_ST) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -519,26 +251,6 @@ func (pt *pt_ST) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -547,30 +259,6 @@ func (pt *pt_ST) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -579,34 +267,5 @@ func (pt *pt_ST) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := pt.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/pt_TL/pt_TL.go b/pt_TL/pt_TL.go
+index 36bb131..e1fd6f1 100644
+--- a/pt_TL/pt_TL.go
++++ b/pt_TL/pt_TL.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type pt_TL struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'pt_TL' locale
+ func New() locales.Translator {
+ return &pt_TL{
+- locale: "pt_TL",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"},
+- daysAbbreviated: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysNarrow: []string{"D", "S", "T", "Q", "Q", "S", "S"},
+- daysShort: []string{"dom", "seg", "ter", "qua", "qui", "sex", "sáb"},
+- daysWide: []string{"domingo", "segunda-feira", "terça-feira", "quarta-feira", "quinta-feira", "sexta-feira", "sábado"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"a.C.", "d.C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"antes de Cristo", "depois de Cristo"},
+- timezones: map[string]string{"MST": "Horário Padrão de Macau", "HEEG": "Horário de Verão da Groelândia Oriental", "CAT": "Horário da África Central", "OESZ": "Horário de Verão da Europa Oriental", "HNNOMX": "Horário Padrão do Noroeste do México", "EST": "Horário Padrão Oriental", "JST": "Horário Padrão do Japão", "HAST": "Horário Padrão do Havaí e Ilhas Aleutas", "WESZ": "Horário de Verão da Europa Ocidental", "NZST": "Horário Padrão da Nova Zelândia", "ACST": "Horário Padrão da Austrália Central", "WAST": "Horário de Verão da África Ocidental", "HECU": "Horário de Verão de Cuba", "HNPMX": "Horário Padrão do Pacífico do México", "CST": "Horário Padrão Central", "HNCU": "Horário Padrão de Cuba", "HADT": "Horário de Verão do Havaí e Ilhas Aleutas", "EAT": "Horário da África Oriental", "OEZ": "Horário Padrão da Europa Oriental", "MDT": "Horário de Verão de Macau", "LHST": "Horário Padrão de Lord Howe", "WAT": "Horário Padrão da África Ocidental", "PDT": "Horário de Verão do Pacífico", "BOT": "Horário da Bolívia", "CLST": "Horário de Verão do Chile", "COT": "Horário Padrão da Colômbia", "GYT": "Horário da Guiana", "CHADT": "Horário de Verão de Chatham", "HKT": "Horário Padrão de Hong Kong", "MYT": "Horário da Malásia", "BT": "Horário do Butão", "PST": "Horário Padrão do Pacífico", "LHDT": "Horário de Verão de Lord Howe", "CHAST": "Horário Padrão de Chatham", "MESZ": "Horário de Verão da Europa Central", "JDT": "Horário de Verão do Japão", "COST": "Horário de Verão da Colômbia", "AKST": "Horário Padrão do Alasca", "ART": "Horário Padrão da Argentina", "HNPM": "Horário Padrão de Saint Pierre e Miquelon", "MEZ": "Horário Padrão da Europa Central", "CLT": "Horário Padrão do Chile", "ChST": "Horário de Chamorro", "WARST": "Horário de Verão da Argentina Ocidental", "VET": "Horário da Venezuela", "HNOG": "Horário Padrão da Groenlândia Ocidental", "WIT": "Horário da Indonésia Oriental", "ARST": "Horário de Verão da Argentina", "CDT": "Horário de Verão Central", "UYT": "Horário Padrão do Uruguai", "WIB": "Horário da Indonésia Ocidental", "AWST": "Horário Padrão da Austrália Ocidental", "IST": "Horário Padrão da Índia", "SAST": "Horário da África do Sul", "HNEG": "Horário Padrão da Groelândia Oriental", "TMT": "Horário Padrão do Turcomenistão", "WART": "Horário Padrão da Argentina Ocidental", "GMT": "Horário do Meridiano de Greenwich", "AST": "Horário Padrão do Atlântico", "ACWDT": "Horário de Verão da Austrália Centro-Ocidental", "ECT": "Horário do Equador", "EDT": "Horário de Verão Oriental", "UYST": "Horário de Verão do Uruguai", "WEZ": "Horário Padrão da Europa Ocidental", "AEST": "Horário Padrão da Austrália Oriental", "HEPM": "Horário de Verão de Saint Pierre e Miquelon", "TMST": "Horário de Verão do Turcomenistão", "SRT": "Horário do Suriname", "ACWST": "Horário Padrão da Austrália Centro-Ocidental", "HKST": "Horário de Verão de Hong Kong", "HEOG": "Horário de Verão da Groenlândia Ocidental", "AWDT": "Horário de Verão da Austrália Ocidental", "ACDT": "Horário de Verão da Austrália Central", "HENOMX": "Horário de Verão do Noroeste do México", "ADT": "Horário de Verão do Atlântico", "HNT": "Horário Padrão de Terra Nova", "AKDT": "Horário de Verão do Alasca", "HAT": "Horário de Verão de Terra Nova", "WITA": "Horário da Indonésia Central", "AEDT": "Horário de Verão da Austrália Oriental", "NZDT": "Horário de Verão da Nova Zelândia", "SGT": "Horário Padrão de Cingapura", "∅∅∅": "Horário de Verão dos Açores", "HEPMX": "Horário de Verão do Pacífico do México", "GFT": "Horário da Guiana Francesa"},
++ locale: "pt_TL",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "HAT": "HAT", "WARST": "WARST", "GYT": "GYT", "CAT": "CAT", "MYT": "MYT", "CHADT": "CHADT", "HEPMX": "HEPMX", "WITA": "WITA", "AWST": "AWST", "WAT": "WAT", "HNPM": "HNPM", "ACWST": "ACWST", "AEST": "AEST", "HNPMX": "HNPMX", "ECT": "ECT", "ADT": "ADT", "MEZ": "MEZ", "HNEG": "HNEG", "AWDT": "AWDT", "ACWDT": "ACWDT", "GFT": "GFT", "EDT": "EDT", "CLST": "CLST", "MESZ": "MESZ", "SAST": "SAST", "COST": "COST", "JDT": "JDT", "OEZ": "OEZ", "HADT": "HADT", "HKST": "HKST", "SRT": "SRT", "HEEG": "HEEG", "BT": "BT", "UYT": "UYT", "HKT": "HKT", "WIB": "WIB", "MST": "MST", "HEOG": "HEOG", "CDT": "CDT", "AST": "AST", "HAST": "HAST", "PDT": "PDT", "HNT": "HNT", "NZST": "NZST", "ART": "ART", "HEPM": "HEPM", "WEZ": "WEZ", "HNCU": "HNCU", "HECU": "HECU", "TMT": "TMT", "VET": "VET", "MDT": "MDT", "EAT": "EAT", "ACST": "ACST", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "LHST": "LHST", "LHDT": "LHDT", "HNOG": "HNOG", "CLT": "CLT", "ARST": "ARST", "AEDT": "AEDT", "CHAST": "CHAST", "UYST": "UYST", "WIT": "WIT", "EST": "EST", "CST": "CST", "NZDT": "NZDT", "ChST": "ChST", "BOT": "BOT", "IST": "IST", "PST": "PST", "WAST": "WAST", "AKST": "AKST", "COT": "COT", "TMST": "TMST", "JST": "JST", "SGT": "SGT", "AKDT": "AKDT", "OESZ": "OESZ", "WART": "WART", "GMT": "GMT"},
+ }
+ }
+ 
+@@ -137,7 +114,7 @@ func (pt *pt_TL) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (pt *pt_TL) MonthsAbbreviated() []string {
+- return pt.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -147,7 +124,7 @@ func (pt *pt_TL) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (pt *pt_TL) MonthsNarrow() []string {
+- return pt.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -157,7 +134,7 @@ func (pt *pt_TL) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (pt *pt_TL) MonthsWide() []string {
+- return pt.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -203,73 +180,13 @@ func (pt *pt_TL) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'pt_TL' and handles both Whole and Real numbers based on 'v'
+ func (pt *pt_TL) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'pt_TL' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (pt *pt_TL) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, pt.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'pt_TL'
+@@ -277,56 +194,7 @@ func (pt *pt_TL) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, pt.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'pt_TL'
+@@ -335,68 +203,7 @@ func (pt *pt_TL) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := pt.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, pt.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, pt.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, pt.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, pt.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, pt.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'pt_TL'
+@@ -404,27 +211,6 @@ func (pt *pt_TL) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,19 +219,6 @@ func (pt *pt_TL) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,19 +227,6 @@ func (pt *pt_TL) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,21 +235,6 @@ func (pt *pt_TL) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, pt.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, pt.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -498,19 +243,6 @@ func (pt *pt_TL) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -519,26 +251,6 @@ func (pt *pt_TL) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -547,30 +259,6 @@ func (pt *pt_TL) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -579,34 +267,5 @@ func (pt *pt_TL) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, pt.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := pt.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/qu/qu.go b/qu/qu.go
+index 9d1c84e..dea11ee 100644
+--- a/qu/qu.go
++++ b/qu/qu.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"", ""},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"HNPMX": "HNPMX", "AKDT": "AKDT", "SRT": "SRT", "WEZ": "WEZ", "LHDT": "LHDT", "WAST": "WAST", "OESZ": "OESZ", "WARST": "WARST", "HEPMX": "HEPMX", "HNT": "HNT", "GFT": "GFT", "ACST": "ACST", "HENOMX": "HENOMX", "WART": "WART", "SAST": "SAST", "HNEG": "HNEG", "WAT": "WAT", "CST": "CST", "ACWST": "ACWST", "ADT": "ADT", "ACDT": "ACDT", "ECT": "ECT", "ARST": "ARST", "MST": "MST", "HADT": "HADT", "HEPM": "HEPM", "BT": "BT", "CLST": "CLST", "COST": "COST", "EDT": "EDT", "WIB": "WIB", "∅∅∅": "∅∅∅", "WESZ": "WESZ", "HKT": "HKT", "LHST": "LHST", "CHADT": "CHADT", "MESZ": "MESZ", "IST": "IST", "CLT": "CLT", "HNCU": "HNCU", "UYST": "UYST", "AEST": "AEST", "HEEG": "HEEG", "TMT": "TMT", "TMST": "TMST", "VET": "VET", "HEOG": "HEOG", "AEDT": "AEDT", "NZST": "NZST", "ChST": "ChST", "EAT": "EAT", "SGT": "SGT", "MDT": "MDT", "GYT": "GYT", "MYT": "MYT", "AWDT": "AWDT", "JDT": "JDT", "BOT": "BOT", "CAT": "CAT", "EST": "EST", "AKST": "AKST", "WITA": "WITA", "OEZ": "OEZ", "ART": "ART", "PST": "PST", "GMT": "GMT", "ACWDT": "ACWDT", "WIT": "WIT", "HNPM": "HNPM", "NZDT": "NZDT", "HAST": "HAST", "HAT": "HAT", "HNOG": "HNOG", "AWST": "AWST", "HKST": "HKST", "COT": "COT", "HECU": "HECU", "UYT": "UYT", "MEZ": "MEZ", "JST": "JST", "PDT": "PDT", "CHAST": "CHAST", "HNNOMX": "HNNOMX", "CDT": "CDT", "AST": "AST"},
++ timezones: map[string]string{"HKT": "HKT", "HAST": "HAST", "MEZ": "MEZ", "JDT": "JDT", "WAST": "WAST", "HNOG": "HNOG", "LHDT": "LHDT", "HAT": "HAT", "COST": "COST", "EST": "EST", "CAT": "CAT", "IST": "IST", "BT": "BT", "AEST": "AEST", "CHAST": "CHAST", "HEPM": "HEPM", "UYT": "UYT", "OEZ": "OEZ", "SAST": "SAST", "HADT": "HADT", "UYST": "UYST", "HECU": "HECU", "OESZ": "OESZ", "COT": "COT", "WIB": "WIB", "ARST": "ARST", "SRT": "SRT", "HNEG": "HNEG", "AWST": "AWST", "LHST": "LHST", "WEZ": "WEZ", "TMT": "TMT", "CST": "CST", "MST": "MST", "ECT": "ECT", "MYT": "MYT", "HEPMX": "HEPMX", "ACWDT": "ACWDT", "TMST": "TMST", "CDT": "CDT", "ART": "ART", "ACDT": "ACDT", "HEEG": "HEEG", "AWDT": "AWDT", "PST": "PST", "AKDT": "AKDT", "MDT": "MDT", "AST": "AST", "HNNOMX": "HNNOMX", "AKST": "AKST", "HKST": "HKST", "HNPMX": "HNPMX", "HENOMX": "HENOMX", "AEDT": "AEDT", "CLT": "CLT", "NZST": "NZST", "BOT": "BOT", "EAT": "EAT", "MESZ": "MESZ", "HNT": "HNT", "GYT": "GYT", "∅∅∅": "∅∅∅", "ACST": "ACST", "WESZ": "WESZ", "GFT": "GFT", "WITA": "WITA", "NZDT": "NZDT", "HNPM": "HNPM", "ACWST": "ACWST", "HNCU": "HNCU", "WIT": "WIT", "HEOG": "HEOG", "WARST": "WARST", "EDT": "EDT", "CLST": "CLST", "ADT": "ADT", "JST": "JST", "VET": "VET", "WAT": "WAT", "WART": "WART", "GMT": "GMT", "ChST": "ChST", "PDT": "PDT", "CHADT": "CHADT", "SGT": "SGT"},
+ }
+ }
+ 
+diff --git a/qu_BO/qu_BO.go b/qu_BO/qu_BO.go
+index a0b2372..8f26b4a 100644
+--- a/qu_BO/qu_BO.go
++++ b/qu_BO/qu_BO.go
+@@ -10,70 +10,47 @@ import (
+ )
+ 
+ type qu_BO struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'qu_BO' locale
+ func New() locales.Translator {
+ return &qu_BO{
+- locale: "qu_BO",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "Bs", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "Qul", "Hat", "Pau", "Ayr", "Aym", "Int", "Ant", "Qha", "Uma", "Kan", "Aya", "Kap"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "Qulla puquy", "Hatun puquy", "Pauqar waray", "Ayriwa", "Aymuray", "Inti raymi", "Anta Sitwa", "Qhapaq Sitwa", "Uma raymi", "Kantaray", "Ayamarqʼa", "Kapaq Raymi"},
+- daysAbbreviated: []string{"Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sab"},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sab"},
+- daysWide: []string{"Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsNarrow: []string{"a.m.", "p.m."},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"HEPMX": "HEPMX", "WIT": "WIT", "WEZ": "WEZ", "HEOG": "HEOG", "CHADT": "CHADT", "ACST": "ACST", "BOT": "BOT", "EAT": "EAT", "EDT": "EDT", "WESZ": "WESZ", "HNT": "HNT", "CLST": "CLST", "JST": "JST", "ACDT": "ACDT", "CAT": "CAT", "COST": "COST", "MST": "MST", "AKST": "AKST", "HAT": "HAT", "NZDT": "NZDT", "TMST": "TMST", "SGT": "SGT", "MYT": "MYT", "CDT": "CDT", "GYT": "GYT", "WIB": "WIB", "PDT": "PDT", "MESZ": "MESZ", "ChST": "ChST", "HNOG": "HNOG", "HKT": "HKT", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "JDT": "JDT", "HNEG": "HNEG", "EST": "EST", "AEST": "AEST", "HNCU": "HNCU", "CST": "CST", "AWDT": "AWDT", "IST": "IST", "WAST": "WAST", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "MEZ": "MEZ", "LHST": "LHST", "TMT": "TMT", "OEZ": "OEZ", "COT": "COT", "UYT": "UYT", "HNPM": "HNPM", "CLT": "CLT", "BT": "BT", "ACWST": "ACWST", "HKST": "HKST", "CHAST": "CHAST", "GMT": "GMT", "VET": "VET", "ART": "ART", "WITA": "WITA", "SAST": "SAST", "AST": "AST", "ECT": "ECT", "WARST": "WARST", "UYST": "UYST", "ADT": "ADT", "AWST": "AWST", "HEPM": "HEPM", "NZST": "NZST", "ACWDT": "ACWDT", "ARST": "ARST", "AEDT": "AEDT", "HENOMX": "HENOMX", "MDT": "MDT", "HAST": "HAST", "HEEG": "HEEG", "WAT": "WAT", "HADT": "HADT", "SRT": "SRT", "HECU": "HECU", "HNPMX": "HNPMX", "WART": "WART", "PST": "PST", "LHDT": "LHDT", "GFT": "GFT"},
++ locale: "qu_BO",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ decimal: ",",
++ group: ".",
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "Bs", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"JST": "JST", "WIT": "WIT", "AST": "AST", "SRT": "SRT", "MEZ": "MEZ", "UYT": "UYT", "UYST": "UYST", "HNCU": "HNCU", "HAT": "HAT", "CLST": "CLST", "HAST": "HAST", "CST": "CST", "EAT": "EAT", "VET": "VET", "HEPMX": "HEPMX", "AKDT": "AKDT", "NZST": "NZST", "ECT": "ECT", "WAT": "WAT", "GFT": "GFT", "WART": "WART", "COST": "COST", "MYT": "MYT", "HNPM": "HNPM", "LHST": "LHST", "EDT": "EDT", "WITA": "WITA", "PDT": "PDT", "AEDT": "AEDT", "EST": "EST", "ARST": "ARST", "PST": "PST", "ChST": "ChST", "HEEG": "HEEG", "HECU": "HECU", "OESZ": "OESZ", "TMST": "TMST", "ART": "ART", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "JDT": "JDT", "AEST": "AEST", "WARST": "WARST", "TMT": "TMT", "MST": "MST", "ACST": "ACST", "HNEG": "HNEG", "BT": "BT", "ACWST": "ACWST", "HKT": "HKT", "MDT": "MDT", "LHDT": "LHDT", "AWDT": "AWDT", "ACWDT": "ACWDT", "CHAST": "CHAST", "HNPMX": "HNPMX", "WEZ": "WEZ", "CAT": "CAT", "CDT": "CDT", "AKST": "AKST", "HNOG": "HNOG", "ACDT": "ACDT", "CHADT": "CHADT", "WAST": "WAST", "HNT": "HNT", "COT": "COT", "CLT": "CLT", "WIB": "WIB", "HEOG": "HEOG", "SAST": "SAST", "HADT": "HADT", "HEPM": "HEPM", "AWST": "AWST", "OEZ": "OEZ", "GYT": "GYT", "∅∅∅": "∅∅∅", "ADT": "ADT", "MESZ": "MESZ", "IST": "IST", "WESZ": "WESZ", "HKST": "HKST", "BOT": "BOT", "SGT": "SGT", "NZDT": "NZDT", "GMT": "GMT"},
+ }
+ }
+ 
+@@ -119,7 +96,7 @@ func (qu *qu_BO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (qu *qu_BO) MonthsAbbreviated() []string {
+- return qu.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -129,7 +106,7 @@ func (qu *qu_BO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (qu *qu_BO) MonthsNarrow() []string {
+- return qu.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -139,7 +116,7 @@ func (qu *qu_BO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (qu *qu_BO) MonthsWide() []string {
+- return qu.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -185,75 +162,13 @@ func (qu *qu_BO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'qu_BO' and handles both Whole and Real numbers based on 'v'
+ func (qu *qu_BO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, qu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, qu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, qu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'qu_BO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (qu *qu_BO) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, qu.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, qu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, qu.percentSuffix...)
+-
+- b = append(b, qu.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'qu_BO'
+@@ -261,60 +176,7 @@ func (qu *qu_BO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := qu.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, qu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, qu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(qu.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, qu.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, qu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, qu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'qu_BO'
+@@ -323,72 +185,7 @@ func (qu *qu_BO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := qu.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, qu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, qu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(qu.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, qu.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, qu.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(qu.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, qu.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, qu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'qu_BO'
+@@ -396,27 +193,6 @@ func (qu *qu_BO) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -425,17 +201,6 @@ func (qu *qu_BO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, qu.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -444,17 +209,6 @@ func (qu *qu_BO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, qu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -463,19 +217,6 @@ func (qu *qu_BO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, qu.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, qu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +225,6 @@ func (qu *qu_BO) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -505,26 +233,6 @@ func (qu *qu_BO) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -533,30 +241,6 @@ func (qu *qu_BO) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -565,34 +249,5 @@ func (qu *qu_BO) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := qu.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/qu_EC/qu_EC.go b/qu_EC/qu_EC.go
+index 17651e4..c850120 100644
+--- a/qu_EC/qu_EC.go
++++ b/qu_EC/qu_EC.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type qu_EC struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'qu_EC' locale
+ func New() locales.Translator {
+ return &qu_EC{
+- locale: "qu_EC",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "Qul", "Hat", "Pau", "Ayr", "Aym", "Int", "Ant", "Qha", "Uma", "Kan", "Aya", "Kap"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "Qulla puquy", "Hatun puquy", "Pauqar waray", "Ayriwa", "Aymuray", "Inti raymi", "Anta Sitwa", "Qhapaq Sitwa", "Uma raymi", "Kantaray", "Ayamarqʼa", "Kapaq Raymi"},
+- daysAbbreviated: []string{"Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sab"},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sab"},
+- daysWide: []string{"Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsNarrow: []string{"a.m.", "p.m."},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"TMST": "TMST", "UYT": "UYT", "WEZ": "WEZ", "LHST": "LHST", "MDT": "MDT", "WESZ": "WESZ", "CHADT": "CHADT", "OEZ": "OEZ", "OESZ": "OESZ", "WIT": "WIT", "SRT": "SRT", "JDT": "JDT", "MEZ": "MEZ", "ACST": "ACST", "WARST": "WARST", "HECU": "HECU", "AKST": "AKST", "ACWDT": "ACWDT", "HNT": "HNT", "HNEG": "HNEG", "CAT": "CAT", "HENOMX": "HENOMX", "SGT": "SGT", "EST": "EST", "EAT": "EAT", "WAT": "WAT", "GMT": "GMT", "WITA": "WITA", "CLST": "CLST", "HNNOMX": "HNNOMX", "UYST": "UYST", "ECT": "ECT", "HEOG": "HEOG", "AEST": "AEST", "IST": "IST", "GFT": "GFT", "AST": "AST", "ACWST": "ACWST", "ARST": "ARST", "AWST": "AWST", "AEDT": "AEDT", "HAST": "HAST", "HADT": "HADT", "HAT": "HAT", "ART": "ART", "HNPM": "HNPM", "WART": "WART", "HEPMX": "HEPMX", "ADT": "ADT", "ChST": "ChST", "NZDT": "NZDT", "CHAST": "CHAST", "MESZ": "MESZ", "HNPMX": "HNPMX", "HNOG": "HNOG", "JST": "JST", "COT": "COT", "HKST": "HKST", "CLT": "CLT", "BOT": "BOT", "TMT": "TMT", "COST": "COST", "MST": "MST", "HKT": "HKT", "PST": "PST", "AWDT": "AWDT", "LHDT": "LHDT", "NZST": "NZST", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "WIB": "WIB", "GYT": "GYT", "MYT": "MYT", "VET": "VET", "PDT": "PDT", "HEPM": "HEPM", "HNCU": "HNCU", "EDT": "EDT", "CST": "CST", "SAST": "SAST", "HEEG": "HEEG", "ACDT": "ACDT", "CDT": "CDT", "BT": "BT", "WAST": "WAST"},
++ locale: "qu_EC",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GFT": "GFT", "HAT": "HAT", "WARST": "WARST", "COT": "COT", "WITA": "WITA", "CST": "CST", "LHDT": "LHDT", "AEST": "AEST", "ACWST": "ACWST", "EST": "EST", "HKT": "HKT", "MEZ": "MEZ", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "CHAST": "CHAST", "PDT": "PDT", "BT": "BT", "HEPMX": "HEPMX", "WESZ": "WESZ", "AKST": "AKST", "HNT": "HNT", "HKST": "HKST", "WIB": "WIB", "CDT": "CDT", "MDT": "MDT", "EAT": "EAT", "ACWDT": "ACWDT", "NZST": "NZST", "ECT": "ECT", "HEPM": "HEPM", "WEZ": "WEZ", "SGT": "SGT", "WAST": "WAST", "MST": "MST", "ACST": "ACST", "HNEG": "HNEG", "CHADT": "CHADT", "HNOG": "HNOG", "CLST": "CLST", "AWDT": "AWDT", "LHST": "LHST", "UYST": "UYST", "TMT": "TMT", "AST": "AST", "BOT": "BOT", "ACDT": "ACDT", "PST": "PST", "WIT": "WIT", "HEOG": "HEOG", "TMST": "TMST", "ARST": "ARST", "HNPMX": "HNPMX", "WART": "WART", "MESZ": "MESZ", "JDT": "JDT", "IST": "IST", "∅∅∅": "∅∅∅", "EDT": "EDT", "ART": "ART", "HAST": "HAST", "AWST": "AWST", "WAT": "WAT", "GMT": "GMT", "ChST": "ChST", "AEDT": "AEDT", "HECU": "HECU", "CAT": "CAT", "HEEG": "HEEG", "COST": "COST", "NZDT": "NZDT", "HENOMX": "HENOMX", "JST": "JST", "VET": "VET", "OEZ": "OEZ", "OESZ": "OESZ", "SRT": "SRT", "HADT": "HADT", "MYT": "MYT", "HNCU": "HNCU", "AKDT": "AKDT", "SAST": "SAST", "CLT": "CLT", "UYT": "UYT", "GYT": "GYT", "ADT": "ADT"},
+ }
+ }
+ 
+@@ -119,7 +94,7 @@ func (qu *qu_EC) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (qu *qu_EC) MonthsAbbreviated() []string {
+- return qu.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -129,7 +104,7 @@ func (qu *qu_EC) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (qu *qu_EC) MonthsNarrow() []string {
+- return qu.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -139,7 +114,7 @@ func (qu *qu_EC) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (qu *qu_EC) MonthsWide() []string {
+- return qu.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -185,75 +160,13 @@ func (qu *qu_EC) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'qu_EC' and handles both Whole and Real numbers based on 'v'
+ func (qu *qu_EC) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, qu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, qu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, qu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'qu_EC' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (qu *qu_EC) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, qu.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, qu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, qu.percentSuffix...)
+-
+- b = append(b, qu.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'qu_EC'
+@@ -261,60 +174,7 @@ func (qu *qu_EC) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := qu.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, qu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, qu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(qu.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, qu.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, qu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, qu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'qu_EC'
+@@ -323,72 +183,7 @@ func (qu *qu_EC) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := qu.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, qu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, qu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(qu.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, qu.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, qu.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(qu.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, qu.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, qu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'qu_EC'
+@@ -396,27 +191,6 @@ func (qu *qu_EC) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -425,17 +199,6 @@ func (qu *qu_EC) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, qu.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -444,17 +207,6 @@ func (qu *qu_EC) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, qu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -463,19 +215,6 @@ func (qu *qu_EC) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, qu.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, qu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +223,6 @@ func (qu *qu_EC) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -505,26 +231,6 @@ func (qu *qu_EC) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -533,30 +239,6 @@ func (qu *qu_EC) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -565,34 +247,5 @@ func (qu *qu_EC) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := qu.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/qu_PE/qu_PE.go b/qu_PE/qu_PE.go
+index 453c627..98c7b9d 100644
+--- a/qu_PE/qu_PE.go
++++ b/qu_PE/qu_PE.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type qu_PE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'qu_PE' locale
+ func New() locales.Translator {
+ return &qu_PE{
+- locale: "qu_PE",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "Qul", "Hat", "Pau", "Ayr", "Aym", "Int", "Ant", "Qha", "Uma", "Kan", "Aya", "Kap"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "Qulla puquy", "Hatun puquy", "Pauqar waray", "Ayriwa", "Aymuray", "Inti raymi", "Anta Sitwa", "Qhapaq Sitwa", "Uma raymi", "Kantaray", "Ayamarqʼa", "Kapaq Raymi"},
+- daysAbbreviated: []string{"Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sab"},
+- daysNarrow: []string{"D", "L", "M", "X", "J", "V", "S"},
+- daysShort: []string{"Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sab"},
+- daysWide: []string{"Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsNarrow: []string{"a.m.", "p.m."},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"HNEG": "HNEG", "HEOG": "HEOG", "AWST": "AWST", "WITA": "WITA", "ART": "ART", "MEZ": "MEZ", "SAST": "SAST", "HEEG": "HEEG", "TMT": "TMT", "GYT": "GYT", "NZST": "NZST", "WIT": "WIT", "ChST": "ChST", "HNNOMX": "HNNOMX", "GMT": "GMT", "MST": "MST", "UYST": "UYST", "MESZ": "MESZ", "BOT": "BOT", "WARST": "WARST", "COT": "COT", "MYT": "MYT", "JDT": "JDT", "ACDT": "ACDT", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "HNOG": "HNOG", "AEDT": "AEDT", "OESZ": "OESZ", "CST": "CST", "WESZ": "WESZ", "AEST": "AEST", "JST": "JST", "WAT": "WAT", "COST": "COST", "ACWDT": "ACWDT", "HAT": "HAT", "AWDT": "AWDT", "CHADT": "CHADT", "CLST": "CLST", "HEPMX": "HEPMX", "HAST": "HAST", "ACWST": "ACWST", "HNT": "HNT", "HEPM": "HEPM", "CHAST": "CHAST", "EDT": "EDT", "UYT": "UYT", "AKST": "AKST", "PST": "PST", "WAST": "WAST", "SGT": "SGT", "MDT": "MDT", "SRT": "SRT", "CDT": "CDT", "HKST": "HKST", "NZDT": "NZDT", "GFT": "GFT", "TMST": "TMST", "EAT": "EAT", "HECU": "HECU", "VET": "VET", "ARST": "ARST", "HKT": "HKT", "CLT": "CLT", "ACST": "ACST", "HNCU": "HNCU", "WIB": "WIB", "HADT": "HADT", "CAT": "CAT", "ECT": "ECT", "HENOMX": "HENOMX", "BT": "BT", "AST": "AST", "HNPM": "HNPM", "IST": "IST", "ADT": "ADT", "PDT": "PDT", "WEZ": "WEZ", "LHST": "LHST", "WART": "WART", "EST": "EST", "HNPMX": "HNPMX", "AKDT": "AKDT", "LHDT": "LHDT"},
++ locale: "qu_PE",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"EST": "EST", "HKST": "HKST", "CLT": "CLT", "MEZ": "MEZ", "LHDT": "LHDT", "HEPM": "HEPM", "∅∅∅": "∅∅∅", "COST": "COST", "CHAST": "CHAST", "WESZ": "WESZ", "UYT": "UYT", "UYST": "UYST", "IST": "IST", "NZDT": "NZDT", "ChST": "ChST", "WITA": "WITA", "NZST": "NZST", "ECT": "ECT", "HADT": "HADT", "AWST": "AWST", "HEPMX": "HEPMX", "HAT": "HAT", "HKT": "HKT", "MDT": "MDT", "AEST": "AEST", "SGT": "SGT", "WIT": "WIT", "CAT": "CAT", "HENOMX": "HENOMX", "HNT": "HNT", "SAST": "SAST", "CST": "CST", "ACWST": "ACWST", "ACWDT": "ACWDT", "AKST": "AKST", "GYT": "GYT", "EDT": "EDT", "SRT": "SRT", "HNCU": "HNCU", "WART": "WART", "HEOG": "HEOG", "ART": "ART", "EAT": "EAT", "ACST": "ACST", "BT": "BT", "HNOG": "HNOG", "CDT": "CDT", "MESZ": "MESZ", "ACDT": "ACDT", "AWDT": "AWDT", "WAST": "WAST", "ARST": "ARST", "GMT": "GMT", "WEZ": "WEZ", "WAT": "WAT", "OEZ": "OEZ", "CHADT": "CHADT", "PDT": "PDT", "HECU": "HECU", "CLST": "CLST", "AST": "AST", "WARST": "WARST", "ADT": "ADT", "HNNOMX": "HNNOMX", "AEDT": "AEDT", "HNPMX": "HNPMX", "OESZ": "OESZ", "BOT": "BOT", "WIB": "WIB", "JST": "JST", "PST": "PST", "VET": "VET", "COT": "COT", "MST": "MST", "HNEG": "HNEG", "HEEG": "HEEG", "MYT": "MYT", "AKDT": "AKDT", "TMST": "TMST", "HAST": "HAST", "LHST": "LHST", "HNPM": "HNPM", "JDT": "JDT", "GFT": "GFT", "TMT": "TMT"},
+ }
+ }
+ 
+@@ -119,7 +94,7 @@ func (qu *qu_PE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (qu *qu_PE) MonthsAbbreviated() []string {
+- return qu.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -129,7 +104,7 @@ func (qu *qu_PE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (qu *qu_PE) MonthsNarrow() []string {
+- return qu.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -139,7 +114,7 @@ func (qu *qu_PE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (qu *qu_PE) MonthsWide() []string {
+- return qu.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -185,75 +160,13 @@ func (qu *qu_PE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'qu_PE' and handles both Whole and Real numbers based on 'v'
+ func (qu *qu_PE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, qu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, qu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, qu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'qu_PE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (qu *qu_PE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, qu.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, qu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, qu.percentSuffix...)
+-
+- b = append(b, qu.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'qu_PE'
+@@ -261,60 +174,7 @@ func (qu *qu_PE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := qu.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, qu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, qu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(qu.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, qu.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, qu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, qu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'qu_PE'
+@@ -323,72 +183,7 @@ func (qu *qu_PE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := qu.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, qu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, qu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(qu.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, qu.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, qu.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(qu.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, qu.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, qu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'qu_PE'
+@@ -396,27 +191,6 @@ func (qu *qu_PE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -425,17 +199,6 @@ func (qu *qu_PE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, qu.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -444,17 +207,6 @@ func (qu *qu_PE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, qu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -463,19 +215,6 @@ func (qu *qu_PE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, qu.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, qu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -484,19 +223,6 @@ func (qu *qu_PE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -505,26 +231,6 @@ func (qu *qu_PE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -533,30 +239,6 @@ func (qu *qu_PE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -565,34 +247,5 @@ func (qu *qu_PE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, qu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := qu.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/rm/rm.go b/rm/rm.go
+index ed281d8..ba9b678 100644
+--- a/rm/rm.go
++++ b/rm/rm.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"av. Cr.", "s. Cr."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"avant Cristus", "suenter Cristus"},
+- timezones: map[string]string{"LHST": "LHST", "JST": "JST", "ChST": "ChST", "EDT": "EDT", "UYT": "UYT", "AWDT": "AWDT", "OEZ": "OEZ", "HNPMX": "HNPMX", "AKDT": "AKDT", "MYT": "MYT", "ART": "ART", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "ACST": "ACST", "OESZ": "OESZ", "PST": "PST", "PDT": "PDT", "NZDT": "NZDT", "CLT": "CLT", "GFT": "GFT", "WITA": "WITA", "HAST": "HAST", "WESZ": "WESZ", "HEPM": "HEPM", "CHAST": "CHAST", "CLST": "CLST", "ACDT": "ACDT", "UYST": "UYST", "GYT": "GYT", "HNT": "HNT", "WART": "WART", "WIT": "WIT", "SRT": "SRT", "HNOG": "HNOG", "ARST": "ARST", "NZST": "NZST", "JDT": "JDT", "WARST": "WARST", "COST": "COST", "GMT": "GMT", "WIB": "WIB", "CST": "CST", "HAT": "HAT", "SAST": "SAST", "MDT": "MDT", "CDT": "CDT", "AST": "AST", "WEZ": "WEZ", "AEDT": "AEDT", "ACWDT": "ACWDT", "AEST": "AEST", "HKT": "HKT", "HNPM": "HNPM", "IST": "IST", "TMST": "TMST", "EST": "EST", "HKST": "HKST", "HENOMX": "HENOMX", "ADT": "ADT", "HECU": "HECU", "HADT": "HADT", "MESZ": "MESZ", "LHDT": "LHDT", "BOT": "BOT", "CAT": "CAT", "ECT": "ECT", "COT": "COT", "VET": "VET", "ACWST": "ACWST", "MEZ": "MEZ", "HNEG": "HNEG", "WAT": "WAT", "SGT": "SGT", "HNCU": "HNCU", "HEPMX": "HEPMX", "HEOG": "HEOG", "EAT": "EAT", "WAST": "WAST", "AKST": "AKST", "AWST": "AWST", "CHADT": "CHADT", "TMT": "TMT", "HNNOMX": "HNNOMX", "MST": "MST", "BT": "BT"},
++ timezones: map[string]string{"CST": "CST", "ACDT": "ACDT", "JST": "JST", "WEZ": "WEZ", "ChST": "ChST", "SRT": "SRT", "HNEG": "HNEG", "AEDT": "AEDT", "WAST": "WAST", "HNNOMX": "HNNOMX", "IST": "IST", "AKDT": "AKDT", "HAT": "HAT", "WARST": "WARST", "TMST": "TMST", "MDT": "MDT", "GMT": "GMT", "PST": "PST", "HNPMX": "HNPMX", "OEZ": "OEZ", "HEOG": "HEOG", "EST": "EST", "ACST": "ACST", "HENOMX": "HENOMX", "AWST": "AWST", "ACWDT": "ACWDT", "SGT": "SGT", "HNCU": "HNCU", "WART": "WART", "COT": "COT", "WIB": "WIB", "MEZ": "MEZ", "JDT": "JDT", "UYST": "UYST", "MESZ": "MESZ", "CHAST": "CHAST", "HECU": "HECU", "AKST": "AKST", "GFT": "GFT", "CLT": "CLT", "ADT": "ADT", "LHDT": "LHDT", "MYT": "MYT", "UYT": "UYT", "WIT": "WIT", "SAST": "SAST", "HKST": "HKST", "OESZ": "OESZ", "HNT": "HNT", "HEEG": "HEEG", "BT": "BT", "ACWST": "ACWST", "GYT": "GYT", "CLST": "CLST", "AST": "AST", "EAT": "EAT", "CHADT": "CHADT", "WESZ": "WESZ", "∅∅∅": "∅∅∅", "WITA": "WITA", "ECT": "ECT", "HEPM": "HEPM", "CDT": "CDT", "ARST": "ARST", "BOT": "BOT", "PDT": "PDT", "HEPMX": "HEPMX", "EDT": "EDT", "NZST": "NZST", "NZDT": "NZDT", "HADT": "HADT", "VET": "VET", "COST": "COST", "TMT": "TMT", "MST": "MST", "ART": "ART", "AWDT": "AWDT", "HNOG": "HNOG", "HKT": "HKT", "CAT": "CAT", "HAST": "HAST", "LHST": "LHST", "HNPM": "HNPM", "AEST": "AEST", "WAT": "WAT"},
+ }
+ }
+ 
+diff --git a/rm_CH/rm_CH.go b/rm_CH/rm_CH.go
+index 23172b7..651d63f 100644
+--- a/rm_CH/rm_CH.go
++++ b/rm_CH/rm_CH.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type rm_CH struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'rm_CH' locale
+ func New() locales.Translator {
+ return &rm_CH{
+- locale: "rm_CH",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: "’",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "schan.", "favr.", "mars", "avr.", "matg", "zercl.", "fan.", "avust", "sett.", "oct.", "nov.", "dec."},
+- monthsNarrow: []string{"", "S", "F", "M", "A", "M", "Z", "F", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "schaner", "favrer", "mars", "avrigl", "matg", "zercladur", "fanadur", "avust", "settember", "october", "november", "december"},
+- daysAbbreviated: []string{"du", "gli", "ma", "me", "gie", "ve", "so"},
+- daysNarrow: []string{"D", "G", "M", "M", "G", "V", "S"},
+- daysShort: []string{"du", "gli", "ma", "me", "gie", "ve", "so"},
+- daysWide: []string{"dumengia", "glindesdi", "mardi", "mesemna", "gievgia", "venderdi", "sonda"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"av. Cr.", "s. Cr."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"avant Cristus", "suenter Cristus"},
+- timezones: map[string]string{"GYT": "GYT", "WIB": "WIB", "HNOG": "HNOG", "HNPM": "HNPM", "MESZ": "MESZ", "NZDT": "NZDT", "WAT": "WAT", "COT": "COT", "CDT": "CDT", "ARST": "ARST", "LHDT": "LHDT", "EAT": "EAT", "OESZ": "OESZ", "UYST": "UYST", "AKST": "AKST", "HEPM": "HEPM", "ACST": "ACST", "OEZ": "OEZ", "MDT": "MDT", "AWST": "AWST", "TMT": "TMT", "AWDT": "AWDT", "BOT": "BOT", "GFT": "GFT", "EST": "EST", "VET": "VET", "ACWST": "ACWST", "AEDT": "AEDT", "HKT": "HKT", "HNCU": "HNCU", "CST": "CST", "HADT": "HADT", "UYT": "UYT", "SAST": "SAST", "IST": "IST", "ChST": "ChST", "SGT": "SGT", "MST": "MST", "MYT": "MYT", "MEZ": "MEZ", "HECU": "HECU", "HNPMX": "HNPMX", "HAST": "HAST", "WEZ": "WEZ", "TMST": "TMST", "HNEG": "HNEG", "WAST": "WAST", "WARST": "WARST", "AKDT": "AKDT", "ART": "ART", "AEST": "AEST", "NZST": "NZST", "HEOG": "HEOG", "ACWDT": "ACWDT", "CHAST": "CHAST", "HEEG": "HEEG", "PDT": "PDT", "HNT": "HNT", "LHST": "LHST", "WIT": "WIT", "HEPMX": "HEPMX", "BT": "BT", "PST": "PST", "HAT": "HAT", "WART": "WART", "COST": "COST", "GMT": "GMT", "EDT": "EDT", "HKST": "HKST", "CHADT": "CHADT", "CAT": "CAT", "JST": "JST", "JDT": "JDT", "CLT": "CLT", "HENOMX": "HENOMX", "SRT": "SRT", "HNNOMX": "HNNOMX", "AST": "AST", "WESZ": "WESZ", "WITA": "WITA", "CLST": "CLST", "∅∅∅": "∅∅∅", "ACDT": "ACDT", "ECT": "ECT", "ADT": "ADT"},
++ locale: "rm_CH",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"UYST": "UYST", "VET": "VET", "OEZ": "OEZ", "HNT": "HNT", "HEOG": "HEOG", "ECT": "ECT", "MEZ": "MEZ", "BT": "BT", "CHAST": "CHAST", "CHADT": "CHADT", "SRT": "SRT", "CLT": "CLT", "AST": "AST", "MESZ": "MESZ", "ACWDT": "ACWDT", "WESZ": "WESZ", "AKST": "AKST", "OESZ": "OESZ", "CAT": "CAT", "AEDT": "AEDT", "SGT": "SGT", "COT": "COT", "ACDT": "ACDT", "CDT": "CDT", "NZDT": "NZDT", "HAST": "HAST", "HNEG": "HNEG", "HENOMX": "HENOMX", "LHST": "LHST", "JST": "JST", "CST": "CST", "WIB": "WIB", "GMT": "GMT", "ChST": "ChST", "ACST": "ACST", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "WAT": "WAT", "CLST": "CLST", "ART": "ART", "AWST": "AWST", "AEST": "AEST", "WEZ": "WEZ", "WARST": "WARST", "HNOG": "HNOG", "HKT": "HKT", "MDT": "MDT", "GYT": "GYT", "TMST": "TMST", "GFT": "GFT", "EAT": "EAT", "AWDT": "AWDT", "LHDT": "LHDT", "PST": "PST", "MST": "MST", "HNPMX": "HNPMX", "COST": "COST", "MYT": "MYT", "ADT": "ADT", "JDT": "JDT", "WART": "WART", "HKST": "HKST", "WITA": "WITA", "HEPM": "HEPM", "PDT": "PDT", "HECU": "HECU", "HAT": "HAT", "HEEG": "HEEG", "SAST": "SAST", "NZST": "NZST", "BOT": "BOT", "HADT": "HADT", "ACWST": "ACWST", "AKDT": "AKDT", "EST": "EST", "TMT": "TMT", "∅∅∅": "∅∅∅", "HNPM": "HNPM", "IST": "IST", "UYT": "UYT", "HEPMX": "HEPMX", "WAST": "WAST", "WIT": "WIT", "EDT": "EDT", "ARST": "ARST"},
+ }
+ }
+ 
+@@ -126,7 +101,7 @@ func (rm *rm_CH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (rm *rm_CH) MonthsAbbreviated() []string {
+- return rm.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -136,7 +111,7 @@ func (rm *rm_CH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (rm *rm_CH) MonthsNarrow() []string {
+- return rm.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -146,7 +121,7 @@ func (rm *rm_CH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (rm *rm_CH) MonthsWide() []string {
+- return rm.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,81 +167,13 @@ func (rm *rm_CH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'rm_CH' and handles both Whole and Real numbers based on 'v'
+ func (rm *rm_CH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 3*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, rm.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(rm.group) - 1; j >= 0; j-- {
+- b = append(b, rm.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(rm.minus) - 1; j >= 0; j-- {
+- b = append(b, rm.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'rm_CH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (rm *rm_CH) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, rm.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(rm.minus) - 1; j >= 0; j-- {
+- b = append(b, rm.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, rm.percentSuffix...)
+-
+- b = append(b, rm.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'rm_CH'
+@@ -274,60 +181,7 @@ func (rm *rm_CH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := rm.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 3*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, rm.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(rm.group) - 1; j >= 0; j-- {
+- b = append(b, rm.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(rm.minus) - 1; j >= 0; j-- {
+- b = append(b, rm.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, rm.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, rm.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'rm_CH'
+@@ -336,67 +190,7 @@ func (rm *rm_CH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := rm.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 3*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, rm.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(rm.group) - 1; j >= 0; j-- {
+- b = append(b, rm.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(rm.minus) - 1; j >= 0; j-- {
+- b = append(b, rm.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, rm.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, rm.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, rm.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'rm_CH'
+@@ -404,27 +198,6 @@ func (rm *rm_CH) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -433,27 +206,6 @@ func (rm *rm_CH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,18 +214,6 @@ func (rm *rm_CH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x61}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, rm.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -482,21 +222,6 @@ func (rm *rm_CH) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, rm.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20, 0x69, 0x6c, 0x73}...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x61}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, rm.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -505,19 +230,6 @@ func (rm *rm_CH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rm.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -526,26 +238,6 @@ func (rm *rm_CH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rm.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, rm.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -554,30 +246,6 @@ func (rm *rm_CH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rm.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, rm.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -586,34 +254,5 @@ func (rm *rm_CH) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rm.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, rm.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := rm.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/rn/rn.go b/rn/rn.go
+index aac81cb..b3164f0 100644
+--- a/rn/rn.go
++++ b/rn/rn.go
+@@ -61,7 +61,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"Mb.Y.", "Ny.Y"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Mbere ya Yezu", "Nyuma ya Yezu"},
+- timezones: map[string]string{"JST": "JST", "HECU": "HECU", "CDT": "CDT", "GYT": "GYT", "AKST": "AKST", "WESZ": "WESZ", "HKT": "HKT", "WAT": "WAT", "COST": "COST", "OEZ": "OEZ", "WIT": "WIT", "MDT": "MDT", "ECT": "ECT", "WAST": "WAST", "EST": "EST", "UYT": "UYT", "ARST": "ARST", "HNPM": "HNPM", "CHADT": "CHADT", "OESZ": "OESZ", "MEZ": "MEZ", "PDT": "PDT", "AEST": "AEST", "CHAST": "CHAST", "HNOG": "HNOG", "HAST": "HAST", "HADT": "HADT", "HEOG": "HEOG", "HNEG": "HNEG", "ADT": "ADT", "MYT": "MYT", "ART": "ART", "PST": "PST", "ACST": "ACST", "WARST": "WARST", "JDT": "JDT", "BOT": "BOT", "BT": "BT", "WEZ": "WEZ", "WITA": "WITA", "HKST": "HKST", "HEPM": "HEPM", "LHDT": "LHDT", "NZST": "NZST", "SRT": "SRT", "HAT": "HAT", "ACWST": "ACWST", "LHST": "LHST", "TMT": "TMT", "GMT": "GMT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HNCU": "HNCU", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "HNT": "HNT", "ACWDT": "ACWDT", "CAT": "CAT", "TMST": "TMST", "ChST": "ChST", "ACDT": "ACDT", "MESZ": "MESZ", "SGT": "SGT", "EDT": "EDT", "AST": "AST", "AKDT": "AKDT", "NZDT": "NZDT", "GFT": "GFT", "HEEG": "HEEG", "COT": "COT", "AWST": "AWST", "WART": "WART", "VET": "VET", "AEDT": "AEDT", "AWDT": "AWDT", "SAST": "SAST", "CLT": "CLT", "CLST": "CLST", "UYST": "UYST", "EAT": "EAT", "MST": "MST", "CST": "CST", "WIB": "WIB", "IST": "IST", "∅∅∅": "∅∅∅"},
++ timezones: map[string]string{"EAT": "EAT", "OESZ": "OESZ", "SRT": "SRT", "OEZ": "OEZ", "GMT": "GMT", "LHST": "LHST", "ACWST": "ACWST", "CHAST": "CHAST", "TMT": "TMT", "ECT": "ECT", "AST": "AST", "AEDT": "AEDT", "AKDT": "AKDT", "HKT": "HKT", "AKST": "AKST", "WART": "WART", "GYT": "GYT", "NZST": "NZST", "ChST": "ChST", "HENOMX": "HENOMX", "AEST": "AEST", "UYST": "UYST", "COT": "COT", "AWST": "AWST", "PST": "PST", "WESZ": "WESZ", "CST": "CST", "WIT": "WIT", "SAST": "SAST", "MST": "MST", "WIB": "WIB", "MYT": "MYT", "ACWDT": "ACWDT", "WARST": "WARST", "TMST": "TMST", "NZDT": "NZDT", "IST": "IST", "HAT": "HAT", "COST": "COST", "UYT": "UYT", "WAST": "WAST", "HNT": "HNT", "HEOG": "HEOG", "EST": "EST", "ACDT": "ACDT", "MESZ": "MESZ", "JST": "JST", "CDT": "CDT", "ARST": "ARST", "BOT": "BOT", "HNPM": "HNPM", "BT": "BT", "EDT": "EDT", "HNCU": "HNCU", "WAT": "WAT", "GFT": "GFT", "HNOG": "HNOG", "HAST": "HAST", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "HEPMX": "HEPMX", "ADT": "ADT", "ACST": "ACST", "CHADT": "CHADT", "HNPMX": "HNPMX", "HECU": "HECU", "CLST": "CLST", "MEZ": "MEZ", "PDT": "PDT", "SGT": "SGT", "HADT": "HADT", "HKST": "HKST", "CLT": "CLT", "WEZ": "WEZ", "CAT": "CAT", "WITA": "WITA", "ART": "ART", "HNEG": "HNEG", "HEEG": "HEEG", "JDT": "JDT", "VET": "VET", "MDT": "MDT", "LHDT": "LHDT", "HEPM": "HEPM", "∅∅∅": "∅∅∅"},
+ }
+ }
+ 
+diff --git a/rn_BI/rn_BI.go b/rn_BI/rn_BI.go
+index 1f5bf10..e89d620 100644
+--- a/rn_BI/rn_BI.go
++++ b/rn_BI/rn_BI.go
+@@ -18,7 +18,6 @@ type rn_BI struct {
+ group string
+ minus string
+ percent string
+- percentSuffix string
+ perMille string
+ timeSeparator string
+ inifinity string
+@@ -43,25 +42,13 @@ type rn_BI struct {
+ // New returns a new instance of translator for the 'rn_BI' locale
+ func New() locales.Translator {
+ return &rn_BI{
+- locale: "rn_BI",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- monthsAbbreviated: []string{"", "Mut.", "Gas.", "Wer.", "Mat.", "Gic.", "Kam.", "Nya.", "Kan.", "Nze.", "Ukw.", "Ugu.", "Uku."},
+- monthsWide: []string{"", "Nzero", "Ruhuhuma", "Ntwarante", "Ndamukiza", "Rusama", "Ruheshi", "Mukakaro", "Nyandagaro", "Nyakanga", "Gitugutu", "Munyonyo", "Kigarama"},
+- daysAbbreviated: []string{"cu.", "mbe.", "kab.", "gtu.", "kan.", "gnu.", "gnd."},
+- daysWide: []string{"Ku w’indwi", "Ku wa mbere", "Ku wa kabiri", "Ku wa gatatu", "Ku wa kane", "Ku wa gatanu", "Ku wa gatandatu"},
+- periodsAbbreviated: []string{"Z.MU.", "Z.MW."},
+- periodsWide: []string{"Z.MU.", "Z.MW."},
+- erasAbbreviated: []string{"Mb.Y.", "Ny.Y"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Mbere ya Yezu", "Nyuma ya Yezu"},
+- timezones: map[string]string{"HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AKST": "AKST", "AWDT": "AWDT", "CHADT": "CHADT", "JST": "JST", "∅∅∅": "∅∅∅", "BT": "BT", "HNT": "HNT", "AEST": "AEST", "HKT": "HKT", "NZST": "NZST", "HNEG": "HNEG", "MST": "MST", "HAT": "HAT", "HNPM": "HNPM", "HEPM": "HEPM", "WAST": "WAST", "HADT": "HADT", "WEZ": "WEZ", "WESZ": "WESZ", "AEDT": "AEDT", "ChST": "ChST", "BOT": "BOT", "ADT": "ADT", "CDT": "CDT", "HAST": "HAST", "PDT": "PDT", "ACWST": "ACWST", "ACWDT": "ACWDT", "HNOG": "HNOG", "ACDT": "ACDT", "MYT": "MYT", "PST": "PST", "LHST": "LHST", "SAST": "SAST", "EAT": "EAT", "EST": "EST", "UYST": "UYST", "CLST": "CLST", "TMST": "TMST", "OEZ": "OEZ", "CST": "CST", "VET": "VET", "WIT": "WIT", "ARST": "ARST", "HEOG": "HEOG", "AWST": "AWST", "LHDT": "LHDT", "SGT": "SGT", "JDT": "JDT", "NZDT": "NZDT", "OESZ": "OESZ", "ECT": "ECT", "GMT": "GMT", "CLT": "CLT", "TMT": "TMT", "CAT": "CAT", "AKDT": "AKDT", "HKST": "HKST", "MESZ": "MESZ", "WART": "WART", "EDT": "EDT", "HEPMX": "HEPMX", "WIB": "WIB", "COT": "COT", "COST": "COST", "MDT": "MDT", "AST": "AST", "CHAST": "CHAST", "IST": "IST", "HEEG": "HEEG", "GFT": "GFT", "WAT": "WAT", "HECU": "HECU", "HNPMX": "HNPMX", "WARST": "WARST", "MEZ": "MEZ", "HNCU": "HNCU", "GYT": "GYT", "ART": "ART", "WITA": "WITA", "ACST": "ACST", "SRT": "SRT", "UYT": "UYT"},
++ locale: "rn_BI",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"LHDT": "LHDT", "HEPM": "HEPM", "AST": "AST", "BOT": "BOT", "HNCU": "HNCU", "AKDT": "AKDT", "COT": "COT", "COST": "COST", "CDT": "CDT", "SGT": "SGT", "ACWDT": "ACWDT", "OESZ": "OESZ", "WART": "WART", "WARST": "WARST", "∅∅∅": "∅∅∅", "CHADT": "CHADT", "PST": "PST", "PDT": "PDT", "HNOG": "HNOG", "HKST": "HKST", "JDT": "JDT", "MYT": "MYT", "SAST": "SAST", "HENOMX": "HENOMX", "AWST": "AWST", "BT": "BT", "WEZ": "WEZ", "WIT": "WIT", "EST": "EST", "HNPM": "HNPM", "HNEG": "HNEG", "VET": "VET", "WIB": "WIB", "ChST": "ChST", "CST": "CST", "MDT": "MDT", "ACDT": "ACDT", "HECU": "HECU", "CAT": "CAT", "CLT": "CLT", "NZDT": "NZDT", "IST": "IST", "HAST": "HAST", "MESZ": "MESZ", "CHAST": "CHAST", "ACWST": "ACWST", "AEDT": "AEDT", "WAT": "WAT", "WITA": "WITA", "ADT": "ADT", "GFT": "GFT", "HAT": "HAT", "GMT": "GMT", "ARST": "ARST", "MST": "MST", "ART": "ART", "MEZ": "MEZ", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "JST": "JST", "HKT": "HKT", "TMT": "TMT", "WESZ": "WESZ", "GYT": "GYT", "LHST": "LHST", "UYT": "UYT", "UYST": "UYST", "AEST": "AEST", "HEPMX": "HEPMX", "WAST": "WAST", "HADT": "HADT", "ACST": "ACST", "EAT": "EAT", "HNPMX": "HNPMX", "ECT": "ECT", "SRT": "SRT", "HNT": "HNT", "HEOG": "HEOG", "TMST": "TMST", "AWDT": "AWDT", "NZST": "NZST", "AKST": "AKST", "OEZ": "OEZ", "EDT": "EDT", "CLST": "CLST"},
+ }
+ }
+ 
+@@ -107,7 +94,7 @@ func (rn *rn_BI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (rn *rn_BI) MonthsAbbreviated() []string {
+- return rn.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -127,7 +114,7 @@ func (rn *rn_BI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (rn *rn_BI) MonthsWide() []string {
+- return rn.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -173,75 +160,13 @@ func (rn *rn_BI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'rn_BI' and handles both Whole and Real numbers based on 'v'
+ func (rn *rn_BI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, rn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, rn.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, rn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'rn_BI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (rn *rn_BI) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, rn.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, rn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, rn.percentSuffix...)
+-
+- b = append(b, rn.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'rn_BI'
+@@ -249,54 +174,7 @@ func (rn *rn_BI) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := rn.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, rn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, rn.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, rn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, rn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'rn_BI'
+@@ -305,61 +183,7 @@ func (rn *rn_BI) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := rn.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, rn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, rn.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, rn.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, rn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'rn_BI'
+@@ -367,17 +191,6 @@ func (rn *rn_BI) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -386,17 +199,6 @@ func (rn *rn_BI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, rn.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -405,17 +207,6 @@ func (rn *rn_BI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, rn.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -424,19 +215,6 @@ func (rn *rn_BI) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, rn.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, rn.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -445,19 +223,6 @@ func (rn *rn_BI) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -466,26 +231,6 @@ func (rn *rn_BI) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, rn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -494,30 +239,6 @@ func (rn *rn_BI) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, rn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -526,34 +247,5 @@ func (rn *rn_BI) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, rn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := rn.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ro/ro.go b/ro/ro.go
+index ce4f17d..83d71a1 100644
+--- a/ro/ro.go
++++ b/ro/ro.go
+@@ -75,7 +75,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"î.Hr.", "d.Hr."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"înainte de Hristos", "după Hristos"},
+- timezones: map[string]string{"COST": "Ora de vară a Columbiei", "PST": "Ora standard în zona Pacific nord-americană", "AWDT": "Ora de vară a Australiei Occidentale", "LHDT": "Ora de vară din Lord Howe", "∅∅∅": "Ora de vară a Amazonului", "ChST": "Ora din Chamorro", "BOT": "Ora Boliviei", "HEEG": "Ora de vară a Groenlandei orientale", "EAT": "Ora Africii Orientale", "CST": "Ora standard centrală nord-americană", "AST": "Ora standard în zona Atlantic nord-americană", "SRT": "Ora Surinamului", "EST": "Ora standard orientală nord-americană", "GYT": "Ora din Guyana", "JST": "Ora standard a Japoniei", "HNNOMX": "Ora standard a Mexicului de nord-vest", "HKST": "Ora de vară din Hong Kong", "MESZ": "Ora de vară a Europei Centrale", "CLST": "Ora de vară din Chile", "OEZ": "Ora standard a Europei de Est", "UYT": "Ora standard a Uruguayului", "AKDT": "Ora de vară din Alaska", "ADT": "Ora de vară în zona Atlantic nord-americană", "HNEG": "Ora standard a Groenlandei orientale", "MDT": "Ora de vară în zona montană nord-americană", "MEZ": "Ora standard a Europei Centrale", "NZDT": "Ora de vară a Noii Zeelande", "CHAST": "Ora standard din Chatham", "CHADT": "Ora de vară din Chatham", "IST": "Ora Indiei", "WARST": "Ora de vară a Argentinei Occidentale", "HEPMX": "Ora de vară a zonei Pacific mexicane", "CDT": "Ora de vară centrală nord-americană", "WIT": "Ora Indoneziei de Est", "AEST": "Ora standard a Australiei Orientale", "ACDT": "Ora de vară a Australiei Centrale", "HNPMX": "Ora standard a zonei Pacific mexicane", "MST": "Ora standard în zona montană nord-americană", "HAST": "Ora standard din Hawaii-Aleutine", "TMT": "Ora standard din Turkmenistan", "WESZ": "Ora de vară a Europei de Vest", "ART": "Ora standard a Argentinei", "LHST": "Ora standard din Lord Howe", "WART": "Ora standard a Argentinei Occidentale", "HENOMX": "Ora de vară a Mexicului de nord-vest", "HEOG": "Ora de vară a Groenlandei occidentale", "PDT": "Ora de vară în zona Pacific nord-americană", "WEZ": "Ora standard a Europei de Vest", "WIB": "Ora Indoneziei de Vest", "WAT": "Ora standard a Africii Occidentale", "ACST": "Ora standard a Australiei Centrale", "WAST": "Ora de vară a Africii Occidentale", "VET": "Ora Venezuelei", "BT": "Ora Bhutanului", "ARST": "Ora de vară a Argentinei", "HEPM": "Ora de vară din Saint-Pierre și Miquelon", "GFT": "Ora din Guyana Franceză", "CAT": "Ora Africii Centrale", "GMT": "Ora de Greenwhich", "EDT": "Ora de vară orientală nord-americană", "HADT": "Ora de vară din Hawaii-Aleutine", "HNT": "Ora standard din Newfoundland", "HKT": "Ora standard din Hong Kong", "COT": "Ora standard a Columbiei", "HNCU": "Ora standard a Cubei", "HECU": "Ora de vară a Cubei", "HAT": "Ora de vară din Newfoundland", "NZST": "Ora standard a Noii Zeelande", "JDT": "Ora de vară a Japoniei", "AEDT": "Ora de vară a Australiei Orientale", "CLT": "Ora standard din Chile", "TMST": "Ora de vară din Turkmenistan", "HNPM": "Ora standard din Saint-Pierre și Miquelon", "MYT": "Ora din Malaysia", "ACWST": "Ora standard a Australiei Central Occidentale", "WITA": "Ora Indoneziei Centrale", "ACWDT": "Ora de vară a Australiei Central Occidentale", "SAST": "Ora Africii Meridionale", "ECT": "Ora Ecuadorului", "UYST": "Ora de vară a Uruguayului", "AKST": "Ora standard din Alaska", "HNOG": "Ora standard a Groenlandei occidentale", "AWST": "Ora standard a Australiei Occidentale", "OESZ": "Ora de vară a Europei de Est", "SGT": "Ora din Singapore"},
++ timezones: map[string]string{"MYT": "Ora din Malaysia", "AEDT": "Ora de vară a Australiei Orientale", "HECU": "Ora de vară a Cubei", "WITA": "Ora Indoneziei Centrale", "ARST": "Ora de vară a Argentinei", "HEEG": "Ora de vară a Groenlandei orientale", "HNNOMX": "Ora standard a Mexicului de nord-vest", "AKST": "Ora standard din Alaska", "CDT": "Ora de vară centrală nord-americană", "ACWDT": "Ora de vară a Australiei Central Occidentale", "WESZ": "Ora de vară a Europei de Vest", "SGT": "Ora din Singapore", "HNOG": "Ora standard a Groenlandei occidentale", "NZST": "Ora standard a Noii Zeelande", "ACWST": "Ora standard a Australiei Central Occidentale", "HNPMX": "Ora standard a zonei Pacific mexicane", "MST": "MST", "HNPM": "Ora standard din Saint-Pierre și Miquelon", "TMST": "Ora de vară din Turkmenistan", "CAT": "Ora Africii Centrale", "HENOMX": "Ora de vară a Mexicului de nord-vest", "ACDT": "Ora de vară a Australiei Centrale", "HADT": "Ora de vară din Hawaii-Aleutine", "UYST": "Ora de vară a Uruguayului", "OESZ": "Ora de vară a Europei de Est", "COT": "Ora standard a Columbiei", "HEOG": "Ora de vară a Groenlandei occidentale", "HKST": "Ora de vară din Hong Kong", "NZDT": "Ora de vară a Noii Zeelande", "EST": "Ora standard orientală nord-americană", "SRT": "Ora Surinamului", "HAST": "Ora standard din Hawaii-Aleutine", "ECT": "Ora Ecuadorului", "WIT": "Ora Indoneziei de Est", "WART": "Ora standard a Argentinei Occidentale", "AST": "Ora standard în zona Atlantic nord-americană", "BOT": "Ora Boliviei", "MESZ": "Ora de vară a Europei Centrale", "ACST": "Ora standard a Australiei Centrale", "COST": "Ora de vară a Columbiei", "SAST": "Ora Africii Meridionale", "CST": "Ora standard centrală nord-americană", "ChST": "Ora din Chamorro", "JDT": "Ora de vară a Japoniei", "CHADT": "Ora de vară din Chatham", "UYT": "Ora standard a Uruguayului", "HAT": "Ora de vară din Newfoundland", "∅∅∅": "Ora de vară a Brasiliei", "EDT": "Ora de vară orientală nord-americană", "CLST": "Ora de vară din Chile", "MEZ": "Ora standard a Europei Centrale", "LHST": "Ora standard din Lord Howe", "AEST": "Ora standard a Australiei Orientale", "PDT": "Ora de vară în zona Pacific nord-americană", "HNT": "Ora standard din Newfoundland", "ART": "Ora standard a Argentinei", "ADT": "Ora de vară în zona Atlantic nord-americană", "GMT": "Ora de Greenwhich", "JST": "Ora standard a Japoniei", "WARST": "Ora de vară a Argentinei Occidentale", "AWST": "Ora standard a Australiei Occidentale", "VET": "Ora Venezuelei", "WAST": "Ora de vară a Africii Occidentale", "AKDT": "Ora de vară din Alaska", "HKT": "Ora standard din Hong Kong", "LHDT": "Ora de vară din Lord Howe", "BT": "Ora Bhutanului", "WEZ": "Ora standard a Europei de Vest", "PST": "Ora standard în zona Pacific nord-americană", "HNCU": "Ora standard a Cubei", "WAT": "Ora standard a Africii Occidentale", "OEZ": "Ora standard a Europei de Est", "CLT": "Ora standard din Chile", "MDT": "MDT", "HEPM": "Ora de vară din Saint-Pierre și Miquelon", "IST": "Ora Indiei", "GYT": "Ora din Guyana", "AWDT": "Ora de vară a Australiei Occidentale", "CHAST": "Ora standard din Chatham", "HEPMX": "Ora de vară a zonei Pacific mexicane", "GFT": "Ora din Guyana Franceză", "TMT": "Ora standard din Turkmenistan", "WIB": "Ora Indoneziei de Vest", "EAT": "Ora Africii Orientale", "HNEG": "Ora standard a Groenlandei orientale"},
+ }
+ }
+ 
+diff --git a/ro_MD/ro_MD.go b/ro_MD/ro_MD.go
+index 1d1cbbc..8c102a7 100644
+--- a/ro_MD/ro_MD.go
++++ b/ro_MD/ro_MD.go
+@@ -10,72 +10,53 @@ import (
+ )
+ 
+ type ro_MD struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ro_MD' locale
+ func New() locales.Translator {
+ return &ro_MD{
+- locale: "ro_MD",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{4, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "L", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "ian.", "feb.", "mar.", "apr.", "mai", "iun.", "iul.", "aug.", "sept.", "oct.", "nov.", "dec."},
+- monthsNarrow: []string{"", "I", "F", "M", "A", "M", "I", "I", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "ianuarie", "februarie", "martie", "aprilie", "mai", "iunie", "iulie", "august", "septembrie", "octombrie", "noiembrie", "decembrie"},
+- daysAbbreviated: []string{"Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm"},
+- daysNarrow: []string{"D", "L", "Ma", "Mi", "J", "V", "S"},
+- daysShort: []string{"Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sâ"},
+- daysWide: []string{"duminică", "luni", "marți", "miercuri", "joi", "vineri", "sâmbătă"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsNarrow: []string{"", ""},
+- periodsWide: []string{"", ""},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"SGT": "Ora din Singapore", "MST": "MST", "WESZ": "Ora de vară a Europei de Vest", "HECU": "Ora de vară a Cubei", "AST": "Ora standard în zona Atlantic nord-americană", "MEZ": "Ora standard a Europei Centrale", "EST": "Ora standard orientală nord-americană", "HNPM": "Ora standard din Saint-Pierre și Miquelon", "NZDT": "Ora de vară a Noii Zeelande", "JDT": "Ora de vară a Japoniei", "WAT": "Ora standard a Africii Occidentale", "HADT": "Ora de vară din Hawaii-Aleutine", "SRT": "Ora Surinamului", "WEZ": "Ora standard a Europei de Vest", "HKST": "Ora de vară din Hong Kong", "BT": "Ora Bhutanului", "MDT": "MDT", "CDT": "Ora de vară centrală nord-americană", "WIB": "Ora Indoneziei de Vest", "VET": "Ora Venezuelei", "PDT": "Ora de vară în zona Pacific nord-americană", "AEST": "Ora standard a Australiei Orientale", "∅∅∅": "Ora de vară a Amazonului", "WARST": "Ora de vară a Argentinei Occidentale", "CST": "Ora standard centrală nord-americană", "HKT": "Ora standard din Hong Kong", "HEPM": "Ora de vară din Saint-Pierre și Miquelon", "LHDT": "Ora de vară din Lord Howe", "NZST": "Ora standard a Noii Zeelande", "TMST": "Ora de vară din Turkmenistan", "ACDT": "Ora de vară a Australiei Centrale", "AKDT": "Ora de vară din Alaska", "GYT": "Ora din Guyana", "ARST": "Ora de vară a Argentinei", "HNOG": "Ora standard a Groenlandei occidentale", "AWST": "Ora standard a Australiei Occidentale", "WITA": "Ora Indoneziei Centrale", "IST": "Ora Indiei", "HEEG": "Ora de vară a Groenlandei orientale", "HEPMX": "Ora de vară a zonei Pacific mexicane", "ACWST": "Ora standard a Australiei Central Occidentale", "HEOG": "Ora de vară a Groenlandei occidentale", "JST": "Ora standard a Japoniei", "AKST": "Ora standard din Alaska", "PST": "Ora standard în zona Pacific nord-americană", "CLST": "Ora de vară din Chile", "ECT": "Ora Ecuadorului", "CAT": "Ora Africii Centrale", "COT": "Ora standard a Columbiei", "WART": "Ora standard a Argentinei Occidentale", "UYST": "Ora de vară a Uruguayului", "ACWDT": "Ora de vară a Australiei Central Occidentale", "CLT": "Ora standard din Chile", "HNEG": "Ora standard a Groenlandei orientale", "TMT": "Ora standard din Turkmenistan", "WAST": "Ora de vară a Africii Occidentale", "CHAST": "Ora standard din Chatham", "SAST": "Ora Africii Meridionale", "ACST": "Ora standard a Australiei Centrale", "HAST": "Ora standard din Hawaii-Aleutine", "HNT": "Ora standard din Newfoundland", "AWDT": "Ora de vară a Australiei Occidentale", "OEZ": "Ora standard a Europei de Est", "COST": "Ora de vară a Columbiei", "GMT": "Ora de Greenwhich", "HNPMX": "Ora standard a zonei Pacific mexicane", "HAT": "Ora de vară din Newfoundland", "ChST": "Ora din Chamorro", "EAT": "Ora Africii Orientale", "OESZ": "Ora de vară a Europei de Est", "HNNOMX": "Ora standard a Mexicului de nord-vest", "HENOMX": "Ora de vară a Mexicului de nord-vest", "ADT": "Ora de vară în zona Atlantic nord-americană", "MYT": "Ora din Malaysia", "MESZ": "Ora de vară a Europei Centrale", "BOT": "Ora Boliviei", "EDT": "Ora de vară orientală nord-americană", "UYT": "Ora standard a Uruguayului", "WIT": "Ora Indoneziei de Est", "ART": "Ora standard a Argentinei", "AEDT": "Ora de vară a Australiei Orientale", "GFT": "Ora din Guyana Franceză", "HNCU": "Ora standard a Cubei", "LHST": "Ora standard din Lord Howe", "CHADT": "Ora de vară din Chatham"},
++ locale: "ro_MD",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{4, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "L", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ daysAbbreviated: []string{"Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm"},
++ daysNarrow: []string{"D", "L", "Ma", "Mi", "J", "V", "S"},
++ daysShort: []string{"Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sâ"},
++ periodsNarrow: []string{"", ""},
++ periodsWide: []string{"", ""},
++ erasAbbreviated: []string{"", ""},
++ erasNarrow: []string{"", ""},
++ erasWide: []string{"", ""},
++ timezones: map[string]string{"COT": "COT", "NZDT": "NZDT", "MDT": "MDT", "IST": "IST", "OESZ": "OESZ", "GYT": "GYT", "ACST": "ACST", "AWST": "AWST", "JST": "JST", "AWDT": "AWDT", "UYT": "UYT", "PDT": "PDT", "AKDT": "AKDT", "GFT": "GFT", "HNOG": "HNOG", "HEPM": "HEPM", "VET": "VET", "WAST": "WAST", "HAT": "HAT", "CST": "CST", "EST": "EST", "ChST": "ChST", "EAT": "EAT", "MEZ": "MEZ", "HNPM": "HNPM", "HNT": "HNT", "HEOG": "HEOG", "WITA": "WITA", "ARST": "ARST", "AEST": "AEST", "SGT": "SGT", "WIT": "WIT", "CLT": "CLT", "BOT": "BOT", "CAT": "CAT", "NZST": "NZST", "ECT": "ECT", "ART": "ART", "HNCU": "HNCU", "HEPMX": "HEPMX", "OEZ": "OEZ", "TMST": "TMST", "AEDT": "AEDT", "SAST": "SAST", "CDT": "CDT", "PST": "PST", "GMT": "GMT", "HENOMX": "HENOMX", "MYT": "MYT", "LHST": "LHST", "UYST": "UYST", "TMT": "TMT", "HKST": "HKST", "MST": "MST", "ACWDT": "ACWDT", "BT": "BT", "HECU": "HECU", "AST": "AST", "MESZ": "MESZ", "LHDT": "LHDT", "EDT": "EDT", "ADT": "ADT", "SRT": "SRT", "HNPMX": "HNPMX", "WESZ": "WESZ", "WARST": "WARST", "COST": "COST", "CHADT": "CHADT", "WEZ": "WEZ", "WART": "WART", "HKT": "HKT", "HNEG": "HNEG", "HADT": "HADT", "HNNOMX": "HNNOMX", "WAT": "WAT", "AKST": "AKST", "CLST": "CLST", "WIB": "WIB", "JDT": "JDT", "ACWST": "ACWST", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "HAST": "HAST", "HEEG": "HEEG", "ACDT": "ACDT"},
+ }
+ }
+ 
+@@ -158,7 +139,7 @@ func (ro *ro_MD) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ro *ro_MD) MonthsAbbreviated() []string {
+- return ro.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -168,7 +149,7 @@ func (ro *ro_MD) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ro *ro_MD) MonthsNarrow() []string {
+- return ro.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -178,7 +159,7 @@ func (ro *ro_MD) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ro *ro_MD) MonthsWide() []string {
+- return ro.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -224,75 +205,13 @@ func (ro *ro_MD) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ro_MD' and handles both Whole and Real numbers based on 'v'
+ func (ro *ro_MD) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ro.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ro.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ro.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ro_MD' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ro *ro_MD) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ro.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ro.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ro.percentSuffix...)
+-
+- b = append(b, ro.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ro_MD'
+@@ -300,56 +219,7 @@ func (ro *ro_MD) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ro.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ro.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ro.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ro.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ro.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ro.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ro_MD'
+@@ -358,63 +228,7 @@ func (ro *ro_MD) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ro.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ro.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ro.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ro.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ro.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ro.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ro.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ro_MD'
+@@ -422,27 +236,6 @@ func (ro *ro_MD) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -451,17 +244,6 @@ func (ro *ro_MD) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ro.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -470,17 +252,6 @@ func (ro *ro_MD) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ro.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -489,19 +260,6 @@ func (ro *ro_MD) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ro.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ro.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -510,19 +268,6 @@ func (ro *ro_MD) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ro.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -531,26 +276,6 @@ func (ro *ro_MD) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ro.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ro.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -559,30 +284,6 @@ func (ro *ro_MD) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ro.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ro.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -591,34 +292,5 @@ func (ro *ro_MD) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ro.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ro.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ro.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ro_RO/ro_RO.go b/ro_RO/ro_RO.go
+index f197e5c..9d60ea9 100644
+--- a/ro_RO/ro_RO.go
++++ b/ro_RO/ro_RO.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type ro_RO struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ro_RO' locale
+ func New() locales.Translator {
+ return &ro_RO{
+- locale: "ro_RO",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{4, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "ian.", "feb.", "mar.", "apr.", "mai", "iun.", "iul.", "aug.", "sept.", "oct.", "nov.", "dec."},
+- monthsNarrow: []string{"", "I", "F", "M", "A", "M", "I", "I", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "ianuarie", "februarie", "martie", "aprilie", "mai", "iunie", "iulie", "august", "septembrie", "octombrie", "noiembrie", "decembrie"},
+- daysAbbreviated: []string{"dum.", "lun.", "mar.", "mie.", "joi", "vin.", "sâm."},
+- daysNarrow: []string{"D", "L", "M", "M", "J", "V", "S"},
+- daysShort: []string{"du.", "lu.", "ma.", "mi.", "joi", "vi.", "sâ."},
+- daysWide: []string{"duminică", "luni", "marți", "miercuri", "joi", "vineri", "sâmbătă"},
+- periodsAbbreviated: []string{"a.m.", "p.m."},
+- periodsNarrow: []string{"a.m.", "p.m."},
+- periodsWide: []string{"a.m.", "p.m."},
+- erasAbbreviated: []string{"î.Hr.", "d.Hr."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"înainte de Hristos", "după Hristos"},
+- timezones: map[string]string{"HKST": "Ora de vară din Hong Kong", "HNPMX": "Ora standard a zonei Pacific mexicane", "ARST": "Ora de vară a Argentinei", "HNOG": "Ora standard a Groenlandei occidentale", "ACWDT": "Ora de vară a Australiei Central Occidentale", "CHADT": "Ora de vară din Chatham", "CST": "Ora standard centrală nord-americană", "JDT": "Ora de vară a Japoniei", "ChST": "Ora din Chamorro", "HNEG": "Ora standard a Groenlandei orientale", "WAST": "Ora de vară a Africii Occidentale", "HADT": "Ora de vară din Hawaii-Aleutine", "GYT": "Ora din Guyana", "MYT": "Ora din Malaysia", "TMT": "Ora standard din Turkmenistan", "OESZ": "Ora de vară a Europei de Est", "COST": "Ora de vară a Columbiei", "HEPMX": "Ora de vară a zonei Pacific mexicane", "ACWST": "Ora standard a Australiei Central Occidentale", "HEPM": "Ora de vară din Saint-Pierre și Miquelon", "JST": "Ora standard a Japoniei", "CLST": "Ora de vară din Chile", "BOT": "Ora Boliviei", "EDT": "Ora de vară orientală nord-americană", "UYT": "Ora standard a Uruguayului", "MEZ": "Ora standard a Europei Centrale", "MST": "MST", "∅∅∅": "Ora de vară din Azore", "ADT": "Ora de vară în zona Atlantic nord-americană", "UYST": "Ora de vară a Uruguayului", "CDT": "Ora de vară centrală nord-americană", "HNPM": "Ora standard din Saint-Pierre și Miquelon", "LHDT": "Ora de vară din Lord Howe", "WART": "Ora standard a Argentinei Occidentale", "AWST": "Ora standard a Australiei Occidentale", "AKDT": "Ora de vară din Alaska", "HAST": "Ora standard din Hawaii-Aleutine", "HEOG": "Ora de vară a Groenlandei occidentale", "HKT": "Ora standard din Hong Kong", "EAT": "Ora Africii Orientale", "GMT": "Ora de Greenwhich", "WIT": "Ora Indoneziei de Est", "BT": "Ora Bhutanului", "PST": "Ora standard în zona Pacific nord-americană", "WESZ": "Ora de vară a Europei de Vest", "NZST": "Ora standard a Noii Zeelande", "HEEG": "Ora de vară a Groenlandei orientale", "GFT": "Ora din Guyana Franceză", "WIB": "Ora Indoneziei de Vest", "ACDT": "Ora de vară a Australiei Centrale", "COT": "Ora standard a Columbiei", "HNNOMX": "Ora standard a Mexicului de nord-vest", "SGT": "Ora din Singapore", "SRT": "Ora Surinamului", "WEZ": "Ora standard a Europei de Vest", "HAT": "Ora de vară din Newfoundland", "AWDT": "Ora de vară a Australiei Occidentale", "WARST": "Ora de vară a Argentinei Occidentale", "ACST": "Ora standard a Australiei Centrale", "CAT": "Ora Africii Centrale", "OEZ": "Ora standard a Europei de Est", "MESZ": "Ora de vară a Europei Centrale", "LHST": "Ora standard din Lord Howe", "SAST": "Ora Africii Meridionale", "MDT": "MDT", "ART": "Ora standard a Argentinei", "AEST": "Ora standard a Australiei Orientale", "WITA": "Ora Indoneziei Centrale", "CHAST": "Ora standard din Chatham", "IST": "Ora Indiei", "AKST": "Ora standard din Alaska", "HECU": "Ora de vară a Cubei", "NZDT": "Ora de vară a Noii Zeelande", "CLT": "Ora standard din Chile", "ECT": "Ora Ecuadorului", "WAT": "Ora standard a Africii Occidentale", "HNCU": "Ora standard a Cubei", "AST": "Ora standard în zona Atlantic nord-americană", "VET": "Ora Venezuelei", "HENOMX": "Ora de vară a Mexicului de nord-vest", "PDT": "Ora de vară în zona Pacific nord-americană", "HNT": "Ora standard din Newfoundland", "AEDT": "Ora de vară a Australiei Orientale", "TMST": "Ora de vară din Turkmenistan", "EST": "Ora standard orientală nord-americană"},
++ locale: "ro_RO",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{4, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"JST": "JST", "AEDT": "AEDT", "WESZ": "WESZ", "HAT": "HAT", "WARST": "WARST", "ADT": "ADT", "ChST": "ChST", "ACST": "ACST", "GYT": "GYT", "COT": "COT", "CLST": "CLST", "CDT": "CDT", "MEZ": "MEZ", "HNEG": "HNEG", "AWDT": "AWDT", "MYT": "MYT", "WEZ": "WEZ", "EST": "EST", "MST": "MST", "ACWDT": "ACWDT", "SGT": "SGT", "VET": "VET", "HNT": "HNT", "ARST": "ARST", "ART": "ART", "EAT": "EAT", "MESZ": "MESZ", "AWST": "AWST", "ACWST": "ACWST", "BT": "BT", "AKDT": "AKDT", "NZST": "NZST", "LHDT": "LHDT", "AEST": "AEST", "WART": "WART", "HKST": "HKST", "HADT": "HADT", "HKT": "HKT", "HNPM": "HNPM", "TMST": "TMST", "CAT": "CAT", "WITA": "WITA", "HENOMX": "HENOMX", "NZDT": "NZDT", "JDT": "JDT", "PDT": "PDT", "HNCU": "HNCU", "WIT": "WIT", "WIB": "WIB", "GMT": "GMT", "SAST": "SAST", "CLT": "CLT", "CST": "CST", "HEEG": "HEEG", "∅∅∅": "∅∅∅", "HEPMX": "HEPMX", "ECT": "ECT", "CHAST": "CHAST", "HECU": "HECU", "ACDT": "ACDT", "LHST": "LHST", "UYT": "UYT", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "BOT": "BOT", "SRT": "SRT", "CHADT": "CHADT", "HNPMX": "HNPMX", "WAT": "WAT", "GFT": "GFT", "HNOG": "HNOG", "AST": "AST", "HEOG": "HEOG", "PST": "PST", "OESZ": "OESZ", "TMT": "TMT", "HAST": "HAST", "HEPM": "HEPM", "UYST": "UYST", "IST": "IST", "WAST": "WAST", "AKST": "AKST", "COST": "COST", "EDT": "EDT", "MDT": "MDT"},
+ }
+ }
+ 
+@@ -158,7 +131,7 @@ func (ro *ro_RO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ro *ro_RO) MonthsAbbreviated() []string {
+- return ro.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -168,7 +141,7 @@ func (ro *ro_RO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ro *ro_RO) MonthsNarrow() []string {
+- return ro.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -178,7 +151,7 @@ func (ro *ro_RO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ro *ro_RO) MonthsWide() []string {
+- return ro.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -224,75 +197,13 @@ func (ro *ro_RO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ro_RO' and handles both Whole and Real numbers based on 'v'
+ func (ro *ro_RO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ro.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ro.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ro.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ro_RO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ro *ro_RO) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ro.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ro.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ro.percentSuffix...)
+-
+- b = append(b, ro.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ro_RO'
+@@ -300,56 +211,7 @@ func (ro *ro_RO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ro.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ro.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ro.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ro.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ro.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ro.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ro_RO'
+@@ -358,63 +220,7 @@ func (ro *ro_RO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ro.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ro.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ro.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ro.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ro.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ro.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ro.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ro_RO'
+@@ -422,27 +228,6 @@ func (ro *ro_RO) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -451,17 +236,6 @@ func (ro *ro_RO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ro.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -470,17 +244,6 @@ func (ro *ro_RO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ro.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -489,19 +252,6 @@ func (ro *ro_RO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ro.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ro.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -510,19 +260,6 @@ func (ro *ro_RO) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ro.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -531,26 +268,6 @@ func (ro *ro_RO) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ro.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ro.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -559,30 +276,6 @@ func (ro *ro_RO) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ro.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ro.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -591,34 +284,5 @@ func (ro *ro_RO) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ro.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ro.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ro.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/rof/rof.go b/rof/rof.go
+index f9c5c2b..f410366 100644
+--- a/rof/rof.go
++++ b/rof/rof.go
+@@ -59,7 +59,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"KM", "BM"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kabla ya Mayesu", "Baada ya Mayesu"},
+- timezones: map[string]string{"HNPM": "HNPM", "HNEG": "HNEG", "IST": "IST", "ECT": "ECT", "AKDT": "AKDT", "ACDT": "ACDT", "SGT": "SGT", "ADT": "ADT", "WIB": "WIB", "WIT": "WIT", "WEZ": "WEZ", "SAST": "SAST", "TMST": "TMST", "EST": "EST", "HNPMX": "HNPMX", "HECU": "HECU", "ACWDT": "ACWDT", "CHADT": "CHADT", "HEEG": "HEEG", "GFT": "GFT", "ACST": "ACST", "WART": "WART", "HADT": "HADT", "HAT": "HAT", "AEDT": "AEDT", "ChST": "ChST", "WARST": "WARST", "HENOMX": "HENOMX", "CST": "CST", "WAT": "WAT", "ART": "ART", "ARST": "ARST", "WITA": "WITA", "MEZ": "MEZ", "CLT": "CLT", "∅∅∅": "∅∅∅", "UYT": "UYT", "PST": "PST", "HNT": "HNT", "HKST": "HKST", "NZST": "NZST", "COT": "COT", "COST": "COST", "OESZ": "OESZ", "MST": "MST", "HEPM": "HEPM", "CHAST": "CHAST", "JST": "JST", "JDT": "JDT", "BOT": "BOT", "CAT": "CAT", "HEPMX": "HEPMX", "UYST": "UYST", "CDT": "CDT", "GYT": "GYT", "BT": "BT", "LHDT": "LHDT", "EAT": "EAT", "AKST": "AKST", "AST": "AST", "WESZ": "WESZ", "HNOG": "HNOG", "AWST": "AWST", "MESZ": "MESZ", "CLST": "CLST", "OEZ": "OEZ", "LHST": "LHST", "GMT": "GMT", "AWDT": "AWDT", "HKT": "HKT", "AEST": "AEST", "HNNOMX": "HNNOMX", "HAST": "HAST", "PDT": "PDT", "ACWST": "ACWST", "HNCU": "HNCU", "EDT": "EDT", "VET": "VET", "SRT": "SRT", "HEOG": "HEOG", "NZDT": "NZDT", "TMT": "TMT", "WAST": "WAST", "MDT": "MDT", "MYT": "MYT"},
++ timezones: map[string]string{"AST": "AST", "MST": "MST", "SRT": "SRT", "HNNOMX": "HNNOMX", "ACST": "ACST", "HEPMX": "HEPMX", "WAST": "WAST", "WITA": "WITA", "ADT": "ADT", "GMT": "GMT", "AWST": "AWST", "PST": "PST", "HAT": "HAT", "TMT": "TMT", "WIB": "WIB", "CST": "CST", "ARST": "ARST", "EAT": "EAT", "AEST": "AEST", "UYT": "UYT", "HECU": "HECU", "WEZ": "WEZ", "WARST": "WARST", "ChST": "ChST", "WIT": "WIT", "HADT": "HADT", "HENOMX": "HENOMX", "HNEG": "HNEG", "HEPM": "HEPM", "JDT": "JDT", "LHST": "LHST", "∅∅∅": "∅∅∅", "GYT": "GYT", "COST": "COST", "CLT": "CLT", "JST": "JST", "OESZ": "OESZ", "UYST": "UYST", "AKDT": "AKDT", "GFT": "GFT", "MDT": "MDT", "HAST": "HAST", "AEDT": "AEDT", "HNCU": "HNCU", "VET": "VET", "HKST": "HKST", "ECT": "ECT", "HNT": "HNT", "CAT": "CAT", "IST": "IST", "HNOG": "HNOG", "EDT": "EDT", "MEZ": "MEZ", "OEZ": "OEZ", "HEOG": "HEOG", "COT": "COT", "EST": "EST", "NZDT": "NZDT", "CHAST": "CHAST", "NZST": "NZST", "ART": "ART", "HNPM": "HNPM", "HNPMX": "HNPMX", "WAT": "WAT", "CLST": "CLST", "WESZ": "WESZ", "AKST": "AKST", "TMST": "TMST", "MESZ": "MESZ", "HEEG": "HEEG", "ACWST": "ACWST", "ACWDT": "ACWDT", "BT": "BT", "SAST": "SAST", "HKT": "HKT", "CDT": "CDT", "LHDT": "LHDT", "MYT": "MYT", "PDT": "PDT", "WART": "WART", "BOT": "BOT", "ACDT": "ACDT", "AWDT": "AWDT", "CHADT": "CHADT", "SGT": "SGT"},
+ }
+ }
+ 
+diff --git a/rof_TZ/rof_TZ.go b/rof_TZ/rof_TZ.go
+index e15459f..bad813c 100644
+--- a/rof_TZ/rof_TZ.go
++++ b/rof_TZ/rof_TZ.go
+@@ -42,24 +42,13 @@ type rof_TZ struct {
+ // New returns a new instance of translator for the 'rof_TZ' locale
+ func New() locales.Translator {
+ return &rof_TZ{
+- locale: "rof_TZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12"},
+- monthsNarrow: []string{"", "K", "K", "K", "K", "T", "S", "S", "N", "T", "I", "I", "I"},
+- monthsWide: []string{"", "Mweri wa kwanza", "Mweri wa kaili", "Mweri wa katatu", "Mweri wa kaana", "Mweri wa tanu", "Mweri wa sita", "Mweri wa saba", "Mweri wa nane", "Mweri wa tisa", "Mweri wa ikumi", "Mweri wa ikumi na moja", "Mweri wa ikumi na mbili"},
+- daysAbbreviated: []string{"Ijp", "Ijt", "Ijn", "Ijtn", "Alh", "Iju", "Ijm"},
+- daysNarrow: []string{"2", "3", "4", "5", "6", "7", "1"},
+- daysWide: []string{"Ijumapili", "Ijumatatu", "Ijumanne", "Ijumatano", "Alhamisi", "Ijumaa", "Ijumamosi"},
+- periodsAbbreviated: []string{"kang’ama", "kingoto"},
+- periodsWide: []string{"kang’ama", "kingoto"},
+- erasAbbreviated: []string{"KM", "BM"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kabla ya Mayesu", "Baada ya Mayesu"},
+- timezones: map[string]string{"CST": "CST", "WIB": "WIB", "HEOG": "HEOG", "AKST": "AKST", "MYT": "MYT", "LHST": "LHST", "CHAST": "CHAST", "SAST": "SAST", "WAST": "WAST", "WART": "WART", "HEPMX": "HEPMX", "HNT": "HNT", "HNOG": "HNOG", "NZST": "NZST", "CAT": "CAT", "HNCU": "HNCU", "WIT": "WIT", "HKST": "HKST", "NZDT": "NZDT", "WARST": "WARST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "EST": "EST", "HADT": "HADT", "HNPM": "HNPM", "WAT": "WAT", "HECU": "HECU", "MEZ": "MEZ", "CHADT": "CHADT", "COT": "COT", "GMT": "GMT", "VET": "VET", "ACWST": "ACWST", "JST": "JST", "GYT": "GYT", "BOT": "BOT", "ART": "ART", "OESZ": "OESZ", "ECT": "ECT", "ACDT": "ACDT", "EDT": "EDT", "JDT": "JDT", "SGT": "SGT", "SRT": "SRT", "WESZ": "WESZ", "HAT": "HAT", "HKT": "HKT", "IST": "IST", "OEZ": "OEZ", "MDT": "MDT", "ADT": "ADT", "PST": "PST", "PDT": "PDT", "AEDT": "AEDT", "AWST": "AWST", "WITA": "WITA", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "CLST": "CLST", "ARST": "ARST", "LHDT": "LHDT", "ChST": "ChST", "GFT": "GFT", "CDT": "CDT", "BT": "BT", "AWDT": "AWDT", "TMT": "TMT", "TMST": "TMST", "ACST": "ACST", "EAT": "EAT", "COST": "COST", "AKDT": "AKDT", "UYT": "UYT", "UYST": "UYST", "AST": "AST", "HAST": "HAST", "WEZ": "WEZ", "HEPM": "HEPM", "HEEG": "HEEG", "MST": "MST", "ACWDT": "ACWDT", "AEST": "AEST", "CLT": "CLT", "HNPMX": "HNPMX"},
++ locale: "rof_TZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AKST": "AKST", "HKST": "HKST", "CDT": "CDT", "ACDT": "ACDT", "HENOMX": "HENOMX", "COT": "COT", "HKT": "HKT", "PST": "PST", "UYST": "UYST", "EDT": "EDT", "HAST": "HAST", "HNEG": "HNEG", "HEEG": "HEEG", "WIT": "WIT", "NZDT": "NZDT", "EAT": "EAT", "LHDT": "LHDT", "SGT": "SGT", "HECU": "HECU", "HEOG": "HEOG", "TMT": "TMT", "CLT": "CLT", "CLST": "CLST", "VET": "VET", "NZST": "NZST", "ChST": "ChST", "JDT": "JDT", "MEZ": "MEZ", "AWDT": "AWDT", "WAT": "WAT", "OEZ": "OEZ", "GFT": "GFT", "HAT": "HAT", "CAT": "CAT", "HADT": "HADT", "HNPM": "HNPM", "AEST": "AEST", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "MYT": "MYT", "AKDT": "AKDT", "WART": "WART", "SAST": "SAST", "ECT": "ECT", "BOT": "BOT", "WESZ": "WESZ", "HEPMX": "HEPMX", "HNT": "HNT", "ADT": "ADT", "GMT": "GMT", "ACWST": "ACWST", "CHAST": "CHAST", "WEZ": "WEZ", "WAST": "WAST", "OESZ": "OESZ", "AST": "AST", "UYT": "UYT", "HNCU": "HNCU", "GYT": "GYT", "HNNOMX": "HNNOMX", "LHST": "LHST", "HEPM": "HEPM", "PDT": "PDT", "HNPMX": "HNPMX", "CST": "CST", "MST": "MST", "WIB": "WIB", "WITA": "WITA", "ART": "ART", "AWST": "AWST", "BT": "BT", "ACWDT": "ACWDT", "COST": "COST", "HNOG": "HNOG", "TMST": "TMST", "ACST": "ACST", "JST": "JST", "IST": "IST", "WARST": "WARST", "EST": "EST", "MDT": "MDT", "ARST": "ARST", "SRT": "SRT", "MESZ": "MESZ", "AEDT": "AEDT"},
+ }
+ }
+ 
+@@ -112,7 +101,7 @@ func (rof *rof_TZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (rof *rof_TZ) MonthsAbbreviated() []string {
+- return rof.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -122,7 +111,7 @@ func (rof *rof_TZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (rof *rof_TZ) MonthsNarrow() []string {
+- return rof.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -132,7 +121,7 @@ func (rof *rof_TZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (rof *rof_TZ) MonthsWide() []string {
+- return rof.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,56 +181,7 @@ func (rof *rof_TZ) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := rof.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, rof.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, rof.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, rof.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, rof.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'rof_TZ'
+@@ -250,64 +190,7 @@ func (rof *rof_TZ) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := rof.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, rof.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, rof.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, rof.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, rof.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'rof_TZ'
+@@ -315,27 +198,6 @@ func (rof *rof_TZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -344,17 +206,6 @@ func (rof *rof_TZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, rof.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -363,17 +214,6 @@ func (rof *rof_TZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, rof.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -382,19 +222,6 @@ func (rof *rof_TZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, rof.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, rof.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -403,19 +230,6 @@ func (rof *rof_TZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rof.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -424,26 +238,6 @@ func (rof *rof_TZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rof.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, rof.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -452,30 +246,6 @@ func (rof *rof_TZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rof.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, rof.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -484,34 +254,5 @@ func (rof *rof_TZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rof.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, rof.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := rof.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/root/root.go b/root/root.go
+index 887a1db..ea336b8 100644
+--- a/root/root.go
++++ b/root/root.go
+@@ -64,7 +64,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BCE", "CE"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"HNT": "HNT", "SAST": "SAST", "BOT": "BOT", "WAST": "WAST", "UYT": "UYT", "AKST": "AKST", "PST": "PST", "HKT": "HKT", "HKST": "HKST", "MEZ": "MEZ", "MYT": "MYT", "WIB": "WIB", "HEOG": "HEOG", "HNNOMX": "HNNOMX", "LHST": "LHST", "CLT": "CLT", "WARST": "WARST", "PDT": "PDT", "AWDT": "AWDT", "HNEG": "HNEG", "ECT": "ECT", "ADT": "ADT", "MDT": "MDT", "VET": "VET", "EDT": "EDT", "BT": "BT", "CHAST": "CHAST", "HENOMX": "HENOMX", "WIT": "WIT", "ARST": "ARST", "CLST": "CLST", "JST": "JST", "HNPMX": "HNPMX", "AKDT": "AKDT", "AST": "AST", "MST": "MST", "HEPMX": "HEPMX", "HAT": "HAT", "ART": "ART", "NZDT": "NZDT", "HEEG": "HEEG", "TMST": "TMST", "COST": "COST", "HNCU": "HNCU", "HECU": "HECU", "CDT": "CDT", "HNPM": "HNPM", "JDT": "JDT", "HEPM": "HEPM", "OESZ": "OESZ", "COT": "COT", "GYT": "GYT", "CST": "CST", "AWST": "AWST", "ACWST": "ACWST", "MESZ": "MESZ", "GFT": "GFT", "TMT": "TMT", "EAT": "EAT", "UYST": "UYST", "HAST": "HAST", "WEZ": "WEZ", "WART": "WART", "AEDT": "AEDT", "CHADT": "CHADT", "HADT": "HADT", "HNOG": "HNOG", "WESZ": "WESZ", "AEST": "AEST", "WITA": "WITA", "EST": "EST", "IST": "IST", "∅∅∅": "∅∅∅", "ACDT": "ACDT", "SGT": "SGT", "SRT": "SRT", "LHDT": "LHDT", "NZST": "NZST", "ACST": "ACST", "WAT": "WAT", "OEZ": "OEZ", "GMT": "GMT", "ACWDT": "ACWDT", "ChST": "ChST", "CAT": "CAT"},
++ timezones: map[string]string{"ARST": "ARST", "HEPM": "HEPM", "UYT": "UYT", "SGT": "SGT", "EAT": "EAT", "WEZ": "WEZ", "OESZ": "OESZ", "HNT": "HNT", "HNOG": "HNOG", "ECT": "ECT", "HADT": "HADT", "MESZ": "MESZ", "ACST": "ACST", "JDT": "JDT", "PDT": "PDT", "BT": "BT", "WARST": "WARST", "MST": "MST", "WESZ": "WESZ", "WART": "WART", "TMT": "TMT", "VET": "VET", "WIT": "WIT", "HKT": "HKT", "AST": "AST", "ART": "ART", "PST": "PST", "ACWST": "ACWST", "ACWDT": "ACWDT", "AKDT": "AKDT", "CLT": "CLT", "MDT": "MDT", "SRT": "SRT", "GFT": "GFT", "HAT": "HAT", "CAT": "CAT", "GMT": "GMT", "AEST": "AEST", "GYT": "GYT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "LHDT": "LHDT", "IST": "IST", "UYST": "UYST", "HNPMX": "HNPMX", "WAT": "WAT", "CDT": "CDT", "MEZ": "MEZ", "AWST": "AWST", "AEDT": "AEDT", "HNCU": "HNCU", "EDT": "EDT", "WITA": "WITA", "NZDT": "NZDT", "HEEG": "HEEG", "AWDT": "AWDT", "WAST": "WAST", "COT": "COT", "TMST": "TMST", "WIB": "WIB", "ChST": "ChST", "ACDT": "ACDT", "CHADT": "CHADT", "NZST": "NZST", "HAST": "HAST", "LHST": "LHST", "AKST": "AKST", "COST": "COST", "EST": "EST", "CLST": "CLST", "CHAST": "CHAST", "OEZ": "OEZ", "SAST": "SAST", "HEOG": "HEOG", "HNEG": "HNEG", "MYT": "MYT", "HECU": "HECU", "HKST": "HKST", "ADT": "ADT", "BOT": "BOT", "HNPM": "HNPM", "JST": "JST", "∅∅∅": "∅∅∅", "HEPMX": "HEPMX", "CST": "CST"},
+ }
+ }
+ 
+diff --git a/ru/ru.go b/ru/ru.go
+index 1c5126c..cad4e14 100644
+--- a/ru/ru.go
++++ b/ru/ru.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"до н. э.", "н. э."},
+ erasNarrow: []string{"до н.э.", "н.э."},
+ erasWide: []string{"до Рождества Христова", "от Рождества Христова"},
+- timezones: map[string]string{"COST": "Колумбия, летнее время", "AKST": "Аляска, стандартное время", "AST": "Атлантическое стандартное время", "ARST": "Аргентина, летнее время", "WITA": "Центральная Индонезия", "EAT": "Восточная Африка", "WEZ": "Западная Европа, стандартное время", "WESZ": "Западная Европа, летнее время", "HEOG": "Западная Гренландия, летнее время", "NZST": "Новая Зеландия, стандартное время", "ChST": "Чаморро", "PST": "Тихоокеанское стандартное время", "UYST": "Уругвай, летнее время", "HEPMX": "Тихоокеанское мексиканское летнее время", "OESZ": "Восточная Европа, летнее время", "WART": "Западная Аргентина, стандартное время", "GMT": "Среднее время по Гринвичу", "AWST": "Западная Австралия, стандартное время", "JST": "Япония, стандартное время", "WAST": "Западная Африка, летнее время", "HAST": "Гавайско-алеутское стандартное время", "CLST": "Чили, летнее время", "HNEG": "Восточная Гренландия, стандарное время", "HECU": "Куба, летнее время", "SGT": "Сингапур", "VET": "Венесуэла", "HNOG": "Западная Гренландия, стандартное время", "HEPM": "Сен-Пьер и Микелон, летнее время", "HENOMX": "Северо-западное мексиканское летнее время", "HNT": "Ньюфаундленд, стандартное время", "AEST": "Восточная Австралия, стандартное время", "AEDT": "Восточная Австралия, летнее время", "CLT": "Чили, стандартное время", "WAT": "Западная Африка, стандартное время", "HNPM": "Сен-Пьер и Микелон, стандартное время", "TMT": "Туркмения, стандартное время", "SRT": "Суринам", "ACWST": "Центральная Австралия, западное стандартное время", "HKT": "Гонконг, стандартное время", "MEZ": "Центральная Европа, стандартное время", "HNCU": "Куба, стандартное время", "BT": "Бутан", "BOT": "Боливия", "ACDT": "Центральная Австралия, летнее время", "HNPMX": "Тихоокеанское мексиканское стандартное время", "COT": "Колумбия, стандартное время", "EST": "Восточная Америка, стандартное время", "WIB": "Западная Индонезия", "WIT": "Восточная Индонезия", "LHST": "Лорд-Хау, стандартное время", "LHDT": "Лорд-Хау, летнее время", "IST": "Индия", "∅∅∅": "Перу, летнее время", "ACST": "Центральная Австралия, стандартное время", "JDT": "Япония, летнее время", "WARST": "Западная Аргентина, летнее время", "CDT": "Центральная Америка, летнее время", "MYT": "Малайзия", "MESZ": "Центральная Европа, летнее время", "ECT": "Эквадор", "CST": "Центральная Америка, стандартное время", "UYT": "Уругвай, стандартное время", "PDT": "Тихоокеанское летнее время", "TMST": "Туркмения, летнее время", "AKDT": "Аляска, летнее время", "ADT": "Атлантическое летнее время", "HAT": "Ньюфаундленд, летнее время", "AWDT": "Западная Австралия, летнее время", "HKST": "Гонконг, летнее время", "HEEG": "Восточная Гренландия, летнее время", "MDT": "Макао, летнее время", "OEZ": "Восточная Европа, стандартное время", "HNNOMX": "Северо-западное мексиканское стандартное время", "EDT": "Восточная Америка, летнее время", "MST": "Макао, стандартное время", "GYT": "Гайана", "HADT": "Гавайско-алеутское летнее время", "ACWDT": "Центральная Австралия, западное летнее время", "CAT": "Центральная Африка", "NZDT": "Новая Зеландия, летнее время", "CHAST": "Чатем, стандартное время", "CHADT": "Чатем, летнее время", "SAST": "Южная Африка", "GFT": "Французская Гвиана", "ART": "Аргентина, стандартное время"},
++ timezones: map[string]string{"AEST": "Восточная Австралия, стандартное время", "HEOG": "Западная Гренландия, летнее время", "NZST": "Новая Зеландия, стандартное время", "BOT": "Боливия", "LHDT": "Лорд-Хау, летнее время", "ACWDT": "Центральная Австралия, западное летнее время", "WARST": "Западная Аргентина, летнее время", "WIT": "Восточная Индонезия", "TMT": "Туркмения, стандартное время", "AST": "Атлантическое стандартное время", "COST": "Колумбия, летнее время", "HEPM": "Сен-Пьер и Микелон, летнее время", "CST": "Центральная Америка, стандартное время", "GMT": "Среднее время по Гринвичу", "HNPM": "Сен-Пьер и Микелон, стандартное время", "WAST": "Западная Африка, летнее время", "COT": "Колумбия, стандартное время", "NZDT": "Новая Зеландия, летнее время", "HNEG": "Восточная Гренландия, стандарное время", "EDT": "Восточная Америка, летнее время", "CLT": "Чили, стандартное время", "JDT": "Япония, летнее время", "UYT": "Уругвай, стандартное время", "PDT": "Тихоокеанское летнее время", "HNPMX": "Тихоокеанское мексиканское стандартное время", "CAT": "Центральная Африка", "CLST": "Чили, летнее время", "WITA": "Центральная Индонезия", "ARST": "Аргентина, летнее время", "SRT": "Суринам", "HAST": "Гавайско-алеутское стандартное время", "UYST": "Уругвай, летнее время", "CHAST": "Чатем, стандартное время", "GYT": "Гайана", "AWST": "Западная Австралия, стандартное время", "LHST": "Лорд-Хау, стандартное время", "∅∅∅": "Акри летнее время", "ACWST": "Центральная Австралия, западное стандартное время", "CDT": "Центральная Америка, летнее время", "MEZ": "Центральная Европа, стандартное время", "IST": "Индия", "WESZ": "Западная Европа, летнее время", "HNCU": "Куба, стандартное время", "HECU": "Куба, летнее время", "HEPMX": "Тихоокеанское мексиканское летнее время", "HNT": "Ньюфаундленд, стандартное время", "HAT": "Ньюфаундленд, летнее время", "MYT": "Малайзия", "PST": "Тихоокеанское стандартное время", "AKST": "Аляска, стандартное время", "MDT": "Макао, летнее время", "WIB": "Западная Индонезия", "ART": "Аргентина, стандартное время", "HADT": "Гавайско-алеутское летнее время", "HENOMX": "Северо-западное мексиканское летнее время", "BT": "Бутан", "AEDT": "Восточная Австралия, летнее время", "OEZ": "Восточная Европа, стандартное время", "OESZ": "Восточная Европа, летнее время", "EST": "Восточная Америка, стандартное время", "MST": "Макао, стандартное время", "CHADT": "Чатем, летнее время", "WEZ": "Западная Европа, стандартное время", "VET": "Венесуэла", "AKDT": "Аляска, летнее время", "ECT": "Эквадор", "ADT": "Атлантическое летнее время", "HEEG": "Восточная Гренландия, летнее время", "AWDT": "Западная Австралия, летнее время", "JST": "Япония, стандартное время", "HNOG": "Западная Гренландия, стандартное время", "ACDT": "Центральная Австралия, летнее время", "WAT": "Западная Африка, стандартное время", "WART": "Западная Аргентина, стандартное время", "SAST": "Южная Африка", "HKT": "Гонконг, стандартное время", "HKST": "Гонконг, летнее время", "TMST": "Туркмения, летнее время", "ChST": "Чаморро", "EAT": "Восточная Африка", "MESZ": "Центральная Европа, летнее время", "HNNOMX": "Северо-западное мексиканское стандартное время", "SGT": "Сингапур", "GFT": "Французская Гвиана", "ACST": "Центральная Австралия, стандартное время"},
+ }
+ }
+ 
+diff --git a/ru_BY/ru_BY.go b/ru_BY/ru_BY.go
+index 11d4db0..9b48274 100644
+--- a/ru_BY/ru_BY.go
++++ b/ru_BY/ru_BY.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ru_BY struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ru_BY' locale
+ func New() locales.Translator {
+ return &ru_BY{
+- locale: "ru_BY",
+- pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 5, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "Br", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "янв.", "февр.", "мар.", "апр.", "мая", "июн.", "июл.", "авг.", "сент.", "окт.", "нояб.", "дек."},
+- monthsNarrow: []string{"", "Я", "Ф", "М", "А", "М", "И", "И", "А", "С", "О", "Н", "Д"},
+- monthsWide: []string{"", "января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"},
+- daysAbbreviated: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysNarrow: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysShort: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysWide: []string{"воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"},
+- periodsAbbreviated: []string{"ДП", "ПП"},
+- periodsNarrow: []string{"ДП", "ПП"},
+- periodsWide: []string{"ДП", "ПП"},
+- erasAbbreviated: []string{"до н. э.", "н. э."},
+- erasNarrow: []string{"до н.э.", "н.э."},
+- erasWide: []string{"до Рождества Христова", "от Рождества Христова"},
+- timezones: map[string]string{"HNCU": "Куба, стандартное время", "HEPMX": "Тихоокеанское мексиканское летнее время", "AKDT": "Аляска, летнее время", "HKST": "Гонконг, летнее время", "WIB": "Западная Индонезия", "JST": "Япония, стандартное время", "ChST": "Чаморро", "HENOMX": "Северо-западное мексиканское летнее время", "MYT": "Малайзия", "SRT": "Суринам", "HNOG": "Западная Гренландия, стандартное время", "PDT": "Тихоокеанское летнее время", "ACST": "Центральная Австралия, стандартное время", "OEZ": "Восточная Европа, стандартное время", "ECT": "Эквадор", "WARST": "Западная Аргентина, летнее время", "MEZ": "Центральная Европа, стандартное время", "GYT": "Гайана", "HNPM": "Сен-Пьер и Микелон, стандартное время", "HEPM": "Сен-Пьер и Микелон, летнее время", "MST": "Макао, стандартное время", "CST": "Центральная Америка, стандартное время", "HEOG": "Западная Гренландия, летнее время", "SAST": "Южная Африка", "CLT": "Чили, стандартное время", "COST": "Колумбия, летнее время", "EST": "Восточная Америка, стандартное время", "WIT": "Восточная Индонезия", "WESZ": "Западная Европа, летнее время", "IST": "Индия", "HEEG": "Восточная Гренландия, летнее время", "COT": "Колумбия, стандартное время", "CDT": "Центральная Америка, летнее время", "LHST": "Лорд-Хау, стандартное время", "EDT": "Восточная Америка, летнее время", "BT": "Бутан", "HAT": "Ньюфаундленд, летнее время", "ADT": "Атлантическое летнее время", "ACWST": "Центральная Австралия, западное стандартное время", "AEDT": "Восточная Австралия, летнее время", "BOT": "Боливия", "OESZ": "Восточная Европа, летнее время", "SGT": "Сингапур", "AKST": "Аляска, стандартное время", "∅∅∅": "Амазонка, летнее время", "WART": "Западная Аргентина, стандартное время", "AEST": "Восточная Австралия, стандартное время", "ACDT": "Центральная Австралия, летнее время", "HNPMX": "Тихоокеанское мексиканское стандартное время", "AWDT": "Западная Австралия, летнее время", "VET": "Венесуэла", "HNT": "Ньюфаундленд, стандартное время", "WITA": "Центральная Индонезия", "HNEG": "Восточная Гренландия, стандарное время", "TMT": "Туркмения, стандартное время", "MDT": "Макао, летнее время", "AST": "Атлантическое стандартное время", "HECU": "Куба, летнее время", "HAST": "Гавайско-алеутское стандартное время", "WEZ": "Западная Европа, стандартное время", "CHADT": "Чатем, летнее время", "EAT": "Восточная Африка", "WAT": "Западная Африка, стандартное время", "WAST": "Западная Африка, летнее время", "CAT": "Центральная Африка", "UYT": "Уругвай, стандартное время", "HADT": "Гавайско-алеутское летнее время", "NZST": "Новая Зеландия, стандартное время", "NZDT": "Новая Зеландия, летнее время", "CLST": "Чили, летнее время", "GFT": "Французская Гвиана", "AWST": "Западная Австралия, стандартное время", "HKT": "Гонконг, стандартное время", "MESZ": "Центральная Европа, летнее время", "CHAST": "Чатем, стандартное время", "HNNOMX": "Северо-западное мексиканское стандартное время", "ACWDT": "Центральная Австралия, западное летнее время", "UYST": "Уругвай, летнее время", "ART": "Аргентина, стандартное время", "ARST": "Аргентина, летнее время", "LHDT": "Лорд-Хау, летнее время", "JDT": "Япония, летнее время", "TMST": "Туркмения, летнее время", "GMT": "Среднее время по Гринвичу", "PST": "Тихоокеанское стандартное время"},
++ locale: "ru_BY",
++ pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "Br", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEPMX": "HEPMX", "WAT": "WAT", "CLT": "CLT", "HNNOMX": "HNNOMX", "UYST": "UYST", "IST": "IST", "PDT": "PDT", "WEZ": "WEZ", "AST": "AST", "HAST": "HAST", "HECU": "HECU", "WARST": "WARST", "ARST": "ARST", "HADT": "HADT", "SGT": "SGT", "HKST": "HKST", "TMT": "TMT", "AKST": "AKST", "AKDT": "AKDT", "WITA": "WITA", "MST": "MST", "ACDT": "ACDT", "JDT": "JDT", "HAT": "HAT", "EDT": "EDT", "TMST": "TMST", "WART": "WART", "HEOG": "HEOG", "MDT": "MDT", "LHDT": "LHDT", "JST": "JST", "CHAST": "CHAST", "VET": "VET", "WIT": "WIT", "ACWDT": "ACWDT", "HNOG": "HNOG", "CLST": "CLST", "GMT": "GMT", "ChST": "ChST", "CST": "CST", "CDT": "CDT", "NZDT": "NZDT", "ACWST": "ACWST", "AEST": "AEST", "SAST": "SAST", "GYT": "GYT", "CAT": "CAT", "EAT": "EAT", "ACST": "ACST", "HEEG": "HEEG", "AWST": "AWST", "BOT": "BOT", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "OEZ": "OEZ", "MESZ": "MESZ", "HNEG": "HNEG", "HENOMX": "HENOMX", "LHST": "LHST", "MYT": "MYT", "ECT": "ECT", "ART": "ART", "HNPM": "HNPM", "AEDT": "AEDT", "GFT": "GFT", "HNT": "HNT", "COST": "COST", "COT": "COT", "HKT": "HKT", "SRT": "SRT", "WIB": "WIB", "HEPM": "HEPM", "BT": "BT", "WESZ": "WESZ", "WAST": "WAST", "NZST": "NZST", "HNPMX": "HNPMX", "OESZ": "OESZ", "EST": "EST", "MEZ": "MEZ", "AWDT": "AWDT", "CHADT": "CHADT", "UYT": "UYT", "PST": "PST", "ADT": "ADT"},
+ }
+ }
+ 
+@@ -100,8 +77,8 @@ func (ru *ru_BY) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+ i := int64(n)
+- iMod10 := i % 10
+ iMod100 := i % 100
++ iMod10 := i % 10
+ 
+ if v == 0 && iMod10 == 1 && iMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -168,7 +145,7 @@ func (ru *ru_BY) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ru *ru_BY) MonthsAbbreviated() []string {
+- return ru.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -178,7 +155,7 @@ func (ru *ru_BY) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ru *ru_BY) MonthsNarrow() []string {
+- return ru.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -188,7 +165,7 @@ func (ru *ru_BY) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ru *ru_BY) MonthsWide() []string {
+- return ru.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -234,51 +211,14 @@ func (ru *ru_BY) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ru_BY' and handles both Whole and Real numbers based on 'v'
+ func (ru *ru_BY) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ru.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ru_BY' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ru *ru_BY) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
++ l := len(s) + 0
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -310,58 +250,7 @@ func (ru *ru_BY) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ru.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ru.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ru.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ru.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ru_BY'
+@@ -370,65 +259,7 @@ func (ru *ru_BY) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ru.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ru.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ru.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ru.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ru.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ru_BY'
+@@ -436,27 +267,6 @@ func (ru *ru_BY) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,20 +275,6 @@ func (ru *ru_BY) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -487,20 +283,6 @@ func (ru *ru_BY) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -509,22 +291,6 @@ func (ru *ru_BY) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ru.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -533,15 +299,6 @@ func (ru *ru_BY) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -550,22 +307,6 @@ func (ru *ru_BY) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -574,26 +315,6 @@ func (ru *ru_BY) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -602,30 +323,5 @@ func (ru *ru_BY) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ru.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ru_KG/ru_KG.go b/ru_KG/ru_KG.go
+index c56e104..b7dbdfb 100644
+--- a/ru_KG/ru_KG.go
++++ b/ru_KG/ru_KG.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ru_KG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ru_KG' locale
+ func New() locales.Translator {
+ return &ru_KG{
+- locale: "ru_KG",
+- pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 5, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "сом", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "янв.", "февр.", "мар.", "апр.", "мая", "июн.", "июл.", "авг.", "сент.", "окт.", "нояб.", "дек."},
+- monthsNarrow: []string{"", "Я", "Ф", "М", "А", "М", "И", "И", "А", "С", "О", "Н", "Д"},
+- monthsWide: []string{"", "января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"},
+- daysAbbreviated: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysNarrow: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysShort: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysWide: []string{"воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"},
+- periodsAbbreviated: []string{"ДП", "ПП"},
+- periodsNarrow: []string{"ДП", "ПП"},
+- periodsWide: []string{"ДП", "ПП"},
+- erasAbbreviated: []string{"до н. э.", "н. э."},
+- erasNarrow: []string{"до н.э.", "н.э."},
+- erasWide: []string{"до Рождества Христова", "от Рождества Христова"},
+- timezones: map[string]string{"CAT": "Центральная Африка", "COT": "Колумбия, стандартное время", "SGT": "Сингапур", "HNOG": "Западная Гренландия, стандартное время", "PST": "Тихоокеанское стандартное время", "ChST": "Чаморро", "WARST": "Западная Аргентина, летнее время", "HECU": "Куба, летнее время", "EST": "Восточная Америка, стандартное время", "AST": "Атлантическое стандартное время", "HAST": "Гавайско-алеутское стандартное время", "ART": "Аргентина, стандартное время", "ACWST": "Центральная Австралия, западное стандартное время", "WAT": "Западная Африка, стандартное время", "HNCU": "Куба, стандартное время", "MYT": "Малайзия", "UYST": "Уругвай, летнее время", "AKDT": "Аляска, летнее время", "WIT": "Восточная Индонезия", "MEZ": "Центральная Европа, стандартное время", "JST": "Япония, стандартное время", "OEZ": "Восточная Европа, стандартное время", "HNNOMX": "Северо-западное мексиканское стандартное время", "MDT": "Макао, летнее время", "BT": "Бутан", "TMT": "Туркмения, стандартное время", "CST": "Центральная Америка, стандартное время", "AEST": "Восточная Австралия, стандартное время", "CHADT": "Чатем, летнее время", "SAST": "Южная Африка", "TMST": "Туркмения, летнее время", "COST": "Колумбия, летнее время", "ADT": "Атлантическое летнее время", "HEOG": "Западная Гренландия, летнее время", "WESZ": "Западная Европа, летнее время", "MESZ": "Центральная Европа, летнее время", "ACST": "Центральная Австралия, стандартное время", "OESZ": "Восточная Европа, летнее время", "HNPMX": "Тихоокеанское мексиканское стандартное время", "WIB": "Западная Индонезия", "ARST": "Аргентина, летнее время", "AWDT": "Западная Австралия, летнее время", "WAST": "Западная Африка, летнее время", "WEZ": "Западная Европа, стандартное время", "LHDT": "Лорд-Хау, летнее время", "HAT": "Ньюфаундленд, летнее время", "JDT": "Япония, летнее время", "ACDT": "Центральная Австралия, летнее время", "EDT": "Восточная Америка, летнее время", "GYT": "Гайана", "AKST": "Аляска, стандартное время", "CDT": "Центральная Америка, летнее время", "ACWDT": "Центральная Австралия, западное летнее время", "HNEG": "Восточная Гренландия, стандарное время", "EAT": "Восточная Африка", "HNT": "Ньюфаундленд, стандартное время", "HKT": "Гонконг, стандартное время", "HNPM": "Сен-Пьер и Микелон, стандартное время", "NZDT": "Новая Зеландия, летнее время", "GFT": "Французская Гвиана", "∅∅∅": "Перу, летнее время", "VET": "Венесуэла", "AEDT": "Восточная Австралия, летнее время", "HEPM": "Сен-Пьер и Микелон, летнее время", "LHST": "Лорд-Хау, стандартное время", "CLST": "Чили, летнее время", "HEPMX": "Тихоокеанское мексиканское летнее время", "AWST": "Западная Австралия, стандартное время", "HKST": "Гонконг, летнее время", "WITA": "Центральная Индонезия", "NZST": "Новая Зеландия, стандартное время", "CHAST": "Чатем, стандартное время", "HEEG": "Восточная Гренландия, летнее время", "GMT": "Среднее время по Гринвичу", "SRT": "Суринам", "BOT": "Боливия", "IST": "Индия", "WART": "Западная Аргентина, стандартное время", "HADT": "Гавайско-алеутское летнее время", "ECT": "Эквадор", "HENOMX": "Северо-западное мексиканское летнее время", "MST": "Макао, стандартное время", "UYT": "Уругвай, стандартное время", "PDT": "Тихоокеанское летнее время", "CLT": "Чили, стандартное время"},
++ locale: "ru_KG",
++ pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "сом", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ECT": "ECT", "MEZ": "MEZ", "HEEG": "HEEG", "ACWDT": "ACWDT", "CAT": "CAT", "CLT": "CLT", "CHAST": "CHAST", "HNT": "HNT", "CDT": "CDT", "MDT": "MDT", "AKDT": "AKDT", "EST": "EST", "MST": "MST", "ACDT": "ACDT", "IST": "IST", "PDT": "PDT", "BT": "BT", "HEPMX": "HEPMX", "NZST": "NZST", "WIB": "WIB", "ChST": "ChST", "HAST": "HAST", "MESZ": "MESZ", "HNPM": "HNPM", "TMT": "TMT", "ARST": "ARST", "WAST": "WAST", "HAT": "HAT", "WIT": "WIT", "AST": "AST", "SRT": "SRT", "ACWST": "ACWST", "HKST": "HKST", "HADT": "HADT", "WITA": "WITA", "CHADT": "CHADT", "SGT": "SGT", "GFT": "GFT", "COT": "COT", "TMST": "TMST", "ART": "ART", "HNEG": "HNEG", "HEPM": "HEPM", "PST": "PST", "HECU": "HECU", "NZDT": "NZDT", "UYST": "UYST", "COST": "COST", "HKT": "HKT", "EAT": "EAT", "WESZ": "WESZ", "HNCU": "HNCU", "OESZ": "OESZ", "WARST": "WARST", "CST": "CST", "WART": "WART", "HENOMX": "HENOMX", "MYT": "MYT", "WAT": "WAT", "CLST": "CLST", "OEZ": "OEZ", "SAST": "SAST", "HEOG": "HEOG", "AWST": "AWST", "AWDT": "AWDT", "JST": "JST", "JDT": "JDT", "UYT": "UYT", "ADT": "ADT", "BOT": "BOT", "AKST": "AKST", "GYT": "GYT", "EDT": "EDT", "∅∅∅": "∅∅∅", "AEST": "AEST", "WEZ": "WEZ", "VET": "VET", "HNPMX": "HNPMX", "GMT": "GMT", "HNOG": "HNOG", "ACST": "ACST", "HNNOMX": "HNNOMX", "LHST": "LHST", "LHDT": "LHDT", "AEDT": "AEDT"},
+ }
+ }
+ 
+@@ -168,7 +145,7 @@ func (ru *ru_KG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ru *ru_KG) MonthsAbbreviated() []string {
+- return ru.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -178,7 +155,7 @@ func (ru *ru_KG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ru *ru_KG) MonthsNarrow() []string {
+- return ru.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -188,7 +165,7 @@ func (ru *ru_KG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ru *ru_KG) MonthsWide() []string {
+- return ru.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -234,51 +211,14 @@ func (ru *ru_KG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ru_KG' and handles both Whole and Real numbers based on 'v'
+ func (ru *ru_KG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ru.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ru_KG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ru *ru_KG) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
++ l := len(s) + 0
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -310,58 +250,7 @@ func (ru *ru_KG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ru.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ru.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ru.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ru.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ru_KG'
+@@ -370,65 +259,7 @@ func (ru *ru_KG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ru.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ru.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ru.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ru.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ru.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ru_KG'
+@@ -436,27 +267,6 @@ func (ru *ru_KG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,20 +275,6 @@ func (ru *ru_KG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -487,20 +283,6 @@ func (ru *ru_KG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -509,22 +291,6 @@ func (ru *ru_KG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ru.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -533,15 +299,6 @@ func (ru *ru_KG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -550,22 +307,6 @@ func (ru *ru_KG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -574,26 +315,6 @@ func (ru *ru_KG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -602,30 +323,5 @@ func (ru *ru_KG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ru.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ru_KZ/ru_KZ.go b/ru_KZ/ru_KZ.go
+index 482dd33..ba0112a 100644
+--- a/ru_KZ/ru_KZ.go
++++ b/ru_KZ/ru_KZ.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ru_KZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ru_KZ' locale
+ func New() locales.Translator {
+ return &ru_KZ{
+- locale: "ru_KZ",
+- pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 5, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "₸", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "янв.", "февр.", "мар.", "апр.", "мая", "июн.", "июл.", "авг.", "сент.", "окт.", "нояб.", "дек."},
+- monthsNarrow: []string{"", "Я", "Ф", "М", "А", "М", "И", "И", "А", "С", "О", "Н", "Д"},
+- monthsWide: []string{"", "января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"},
+- daysAbbreviated: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysNarrow: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysShort: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysWide: []string{"воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"},
+- periodsAbbreviated: []string{"ДП", "ПП"},
+- periodsNarrow: []string{"ДП", "ПП"},
+- periodsWide: []string{"ДП", "ПП"},
+- erasAbbreviated: []string{"до н. э.", "н. э."},
+- erasNarrow: []string{"до н.э.", "н.э."},
+- erasWide: []string{"до Рождества Христова", "от Рождества Христова"},
+- timezones: map[string]string{"WIT": "Восточная Индонезия", "IST": "Индия", "JST": "Япония, стандартное время", "ACDT": "Центральная Австралия, летнее время", "MYT": "Малайзия", "HAST": "Гавайско-алеутское стандартное время", "VET": "Венесуэла", "CLST": "Чили, летнее время", "GFT": "Французская Гвиана", "HENOMX": "Северо-западное мексиканское летнее время", "MST": "Макао, стандартное время", "LHDT": "Лорд-Хау, летнее время", "CLT": "Чили, стандартное время", "GMT": "Среднее время по Гринвичу", "SRT": "Суринам", "WESZ": "Западная Европа, летнее время", "WARST": "Западная Аргентина, летнее время", "CHADT": "Чатем, летнее время", "ChST": "Чаморро", "BOT": "Боливия", "EAT": "Восточная Африка", "WART": "Западная Аргентина, стандартное время", "MDT": "Макао, летнее время", "ART": "Аргентина, стандартное время", "AEDT": "Восточная Австралия, летнее время", "AWDT": "Западная Австралия, летнее время", "∅∅∅": "Амазонка, летнее время", "WAT": "Западная Африка, стандартное время", "OESZ": "Восточная Европа, летнее время", "SGT": "Сингапур", "SAST": "Южная Африка", "COT": "Колумбия, стандартное время", "HNT": "Ньюфаундленд, стандартное время", "HNPM": "Сен-Пьер и Микелон, стандартное время", "NZST": "Новая Зеландия, стандартное время", "NZDT": "Новая Зеландия, летнее время", "ECT": "Эквадор", "AST": "Атлантическое стандартное время", "HEOG": "Западная Гренландия, летнее время", "LHST": "Лорд-Хау, стандартное время", "HNEG": "Восточная Гренландия, стандарное время", "ADT": "Атлантическое летнее время", "HEPM": "Сен-Пьер и Микелон, летнее время", "MEZ": "Центральная Европа, стандартное время", "CHAST": "Чатем, стандартное время", "JDT": "Япония, летнее время", "TMST": "Туркмения, летнее время", "WEZ": "Западная Европа, стандартное время", "HAT": "Ньюфаундленд, летнее время", "HEPMX": "Тихоокеанское мексиканское летнее время", "UYT": "Уругвай, стандартное время", "PST": "Тихоокеанское стандартное время", "AKST": "Аляска, стандартное время", "PDT": "Тихоокеанское летнее время", "ACWDT": "Центральная Австралия, западное летнее время", "WITA": "Центральная Индонезия", "HEEG": "Восточная Гренландия, летнее время", "ACST": "Центральная Австралия, стандартное время", "WAST": "Западная Африка, летнее время", "EDT": "Восточная Америка, летнее время", "AEST": "Восточная Австралия, стандартное время", "MESZ": "Центральная Европа, летнее время", "HNPMX": "Тихоокеанское мексиканское стандартное время", "GYT": "Гайана", "UYST": "Уругвай, летнее время", "CDT": "Центральная Америка, летнее время", "ACWST": "Центральная Австралия, западное стандартное время", "HNNOMX": "Северо-западное мексиканское стандартное время", "HNCU": "Куба, стандартное время", "HECU": "Куба, летнее время", "CST": "Центральная Америка, стандартное время", "HKT": "Гонконг, стандартное время", "TMT": "Туркмения, стандартное время", "CAT": "Центральная Африка", "COST": "Колумбия, летнее время", "EST": "Восточная Америка, стандартное время", "AWST": "Западная Австралия, стандартное время", "HKST": "Гонконг, летнее время", "AKDT": "Аляска, летнее время", "HADT": "Гавайско-алеутское летнее время", "BT": "Бутан", "HNOG": "Западная Гренландия, стандартное время", "OEZ": "Восточная Европа, стандартное время", "WIB": "Западная Индонезия", "ARST": "Аргентина, летнее время"},
++ locale: "ru_KZ",
++ pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "₸", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"UYST": "UYST", "JST": "JST", "JDT": "JDT", "CHAST": "CHAST", "IST": "IST", "SRT": "SRT", "MEZ": "MEZ", "HNPM": "HNPM", "OESZ": "OESZ", "CLT": "CLT", "NZDT": "NZDT", "EAT": "EAT", "HEPM": "HEPM", "OEZ": "OEZ", "WARST": "WARST", "WITA": "WITA", "NZST": "NZST", "WESZ": "WESZ", "COT": "COT", "AKDT": "AKDT", "COST": "COST", "BOT": "BOT", "ACWDT": "ACWDT", "HNCU": "HNCU", "HAT": "HAT", "TMST": "TMST", "AWDT": "AWDT", "AEST": "AEST", "PDT": "PDT", "LHDT": "LHDT", "HNOG": "HNOG", "GYT": "GYT", "ART": "ART", "HAST": "HAST", "HADT": "HADT", "PST": "PST", "WART": "WART", "EDT": "EDT", "HKT": "HKT", "ChST": "ChST", "HNEG": "HNEG", "AWST": "AWST", "HECU": "HECU", "HNPMX": "HNPMX", "CAT": "CAT", "MST": "MST", "MESZ": "MESZ", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "GFT": "GFT", "WIT": "WIT", "HEOG": "HEOG", "CST": "CST", "ADT": "ADT", "BT": "BT", "ACDT": "ACDT", "LHST": "LHST", "ACWST": "ACWST", "HKST": "HKST", "ECT": "ECT", "CDT": "CDT", "MDT": "MDT", "SGT": "SGT", "WAT": "WAT", "AKST": "AKST", "MYT": "MYT", "UYT": "UYT", "WEZ": "WEZ", "GMT": "GMT", "HEEG": "HEEG", "WAST": "WAST", "ACST": "ACST", "VET": "VET", "HNT": "HNT", "SAST": "SAST", "EST": "EST", "WIB": "WIB", "AST": "AST", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "TMT": "TMT", "CLST": "CLST", "ARST": "ARST", "HNNOMX": "HNNOMX", "AEDT": "AEDT"},
+ }
+ }
+ 
+@@ -168,7 +145,7 @@ func (ru *ru_KZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ru *ru_KZ) MonthsAbbreviated() []string {
+- return ru.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -178,7 +155,7 @@ func (ru *ru_KZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ru *ru_KZ) MonthsNarrow() []string {
+- return ru.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -188,7 +165,7 @@ func (ru *ru_KZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ru *ru_KZ) MonthsWide() []string {
+- return ru.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -234,51 +211,14 @@ func (ru *ru_KZ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ru_KZ' and handles both Whole and Real numbers based on 'v'
+ func (ru *ru_KZ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ru.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ru_KZ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ru *ru_KZ) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
++ l := len(s) + 0
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -310,58 +250,7 @@ func (ru *ru_KZ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ru.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ru.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ru.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ru.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ru_KZ'
+@@ -370,65 +259,7 @@ func (ru *ru_KZ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ru.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ru.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ru.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ru.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ru.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ru_KZ'
+@@ -436,27 +267,6 @@ func (ru *ru_KZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,20 +275,6 @@ func (ru *ru_KZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -487,20 +283,6 @@ func (ru *ru_KZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -509,22 +291,6 @@ func (ru *ru_KZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ru.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -533,15 +299,6 @@ func (ru *ru_KZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -550,22 +307,6 @@ func (ru *ru_KZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -574,26 +315,6 @@ func (ru *ru_KZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -602,30 +323,5 @@ func (ru *ru_KZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ru.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ru_MD/ru_MD.go b/ru_MD/ru_MD.go
+index c23b4ec..386ecaa 100644
+--- a/ru_MD/ru_MD.go
++++ b/ru_MD/ru_MD.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ru_MD struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ru_MD' locale
+ func New() locales.Translator {
+ return &ru_MD{
+- locale: "ru_MD",
+- pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 5, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "L", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "янв.", "февр.", "мар.", "апр.", "мая", "июн.", "июл.", "авг.", "сент.", "окт.", "нояб.", "дек."},
+- monthsNarrow: []string{"", "Я", "Ф", "М", "А", "М", "И", "И", "А", "С", "О", "Н", "Д"},
+- monthsWide: []string{"", "января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"},
+- daysAbbreviated: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysNarrow: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysShort: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysWide: []string{"воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"},
+- periodsAbbreviated: []string{"ДП", "ПП"},
+- periodsNarrow: []string{"ДП", "ПП"},
+- periodsWide: []string{"ДП", "ПП"},
+- erasAbbreviated: []string{"до н. э.", "н. э."},
+- erasNarrow: []string{"до н.э.", "н.э."},
+- erasWide: []string{"до Рождества Христова", "от Рождества Христова"},
+- timezones: map[string]string{"ACDT": "Центральная Австралия, летнее время", "COT": "Колумбия, стандартное время", "WIB": "Западная Индонезия", "AEST": "Восточная Австралия, стандартное время", "AWST": "Западная Австралия, стандартное время", "AWDT": "Западная Австралия, летнее время", "MEZ": "Центральная Европа, стандартное время", "NZDT": "Новая Зеландия, летнее время", "CHADT": "Чатем, летнее время", "JST": "Япония, стандартное время", "WAST": "Западная Африка, летнее время", "VET": "Венесуэла", "∅∅∅": "Амазонка, летнее время", "CAT": "Центральная Африка", "WARST": "Западная Аргентина, летнее время", "HNPMX": "Тихоокеанское мексиканское стандартное время", "ARST": "Аргентина, летнее время", "HNPM": "Сен-Пьер и Микелон, стандартное время", "GMT": "Среднее время по Гринвичу", "MST": "Макао, стандартное время", "MDT": "Макао, летнее время", "ADT": "Атлантическое летнее время", "SRT": "Суринам", "WEZ": "Западная Европа, стандартное время", "CLT": "Чили, стандартное время", "SGT": "Сингапур", "HKT": "Гонконг, стандартное время", "BOT": "Боливия", "AST": "Атлантическое стандартное время", "MYT": "Малайзия", "WITA": "Центральная Индонезия", "WART": "Западная Аргентина, стандартное время", "HNCU": "Куба, стандартное время", "AKST": "Аляска, стандартное время", "LHDT": "Лорд-Хау, летнее время", "CLST": "Чили, летнее время", "OESZ": "Восточная Европа, летнее время", "HEPMX": "Тихоокеанское мексиканское летнее время", "HADT": "Гавайско-алеутское летнее время", "WIT": "Восточная Индонезия", "ART": "Аргентина, стандартное время", "WESZ": "Западная Европа, летнее время", "MESZ": "Центральная Европа, летнее время", "HEEG": "Восточная Гренландия, летнее время", "HNNOMX": "Северо-западное мексиканское стандартное время", "HNOG": "Западная Гренландия, стандартное время", "HAT": "Ньюфаундленд, летнее время", "EAT": "Восточная Африка", "GYT": "Гайана", "CST": "Центральная Америка, стандартное время", "BT": "Бутан", "PST": "Тихоокеанское стандартное время", "JDT": "Япония, летнее время", "GFT": "Французская Гвиана", "ACST": "Центральная Австралия, стандартное время", "COST": "Колумбия, летнее время", "UYT": "Уругвай, стандартное время", "AKDT": "Аляска, летнее время", "TMT": "Туркмения, стандартное время", "TMST": "Туркмения, летнее время", "HENOMX": "Северо-западное мексиканское летнее время", "ACWDT": "Центральная Австралия, западное летнее время", "HEOG": "Западная Гренландия, летнее время", "PDT": "Тихоокеанское летнее время", "AEDT": "Восточная Австралия, летнее время", "ChST": "Чаморро", "HNEG": "Восточная Гренландия, стандарное время", "HAST": "Гавайско-алеутское стандартное время", "NZST": "Новая Зеландия, стандартное время", "OEZ": "Восточная Европа, стандартное время", "EST": "Восточная Америка, стандартное время", "EDT": "Восточная Америка, летнее время", "UYST": "Уругвай, летнее время", "CDT": "Центральная Америка, летнее время", "ACWST": "Центральная Австралия, западное стандартное время", "HEPM": "Сен-Пьер и Микелон, летнее время", "CHAST": "Чатем, стандартное время", "SAST": "Южная Африка", "IST": "Индия", "ECT": "Эквадор", "WAT": "Западная Африка, стандартное время", "HECU": "Куба, летнее время", "HNT": "Ньюфаундленд, стандартное время", "HKST": "Гонконг, летнее время", "LHST": "Лорд-Хау, стандартное время"},
++ locale: "ru_MD",
++ pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "L", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNPM": "HNPM", "COT": "COT", "HKT": "HKT", "ACST": "ACST", "LHDT": "LHDT", "CHADT": "CHADT", "HECU": "HECU", "HNPMX": "HNPMX", "WARST": "WARST", "CLST": "CLST", "CDT": "CDT", "BOT": "BOT", "JST": "JST", "ADT": "ADT", "MEZ": "MEZ", "AST": "AST", "NZST": "NZST", "MESZ": "MESZ", "UYT": "UYT", "PST": "PST", "WESZ": "WESZ", "OEZ": "OEZ", "ChST": "ChST", "EAT": "EAT", "ACDT": "ACDT", "LHST": "LHST", "ACWST": "ACWST", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "COST": "COST", "HEOG": "HEOG", "EST": "EST", "AWST": "AWST", "HEPM": "HEPM", "WITA": "WITA", "MST": "MST", "MDT": "MDT", "AWDT": "AWDT", "WEZ": "WEZ", "GFT": "GFT", "WIT": "WIT", "TMT": "TMT", "ARST": "ARST", "HENOMX": "HENOMX", "PDT": "PDT", "HNCU": "HNCU", "HNOG": "HNOG", "CAT": "CAT", "CLT": "CLT", "AEST": "AEST", "VET": "VET", "HNT": "HNT", "NZDT": "NZDT", "ECT": "ECT", "JDT": "JDT", "AEDT": "AEDT", "CHAST": "CHAST", "AKDT": "AKDT", "WIB": "WIB", "HADT": "HADT", "HNNOMX": "HNNOMX", "BT": "BT", "UYST": "UYST", "WAST": "WAST", "SAST": "SAST", "MYT": "MYT", "WAT": "WAT", "HAT": "HAT", "CST": "CST", "HNEG": "HNEG", "ACWDT": "ACWDT", "HAST": "HAST", "SGT": "SGT", "HKST": "HKST", "GMT": "GMT", "HEEG": "HEEG", "WART": "WART", "HEPMX": "HEPMX", "AKST": "AKST", "GYT": "GYT", "EDT": "EDT", "TMST": "TMST", "ART": "ART", "SRT": "SRT", "IST": "IST"},
+ }
+ }
+ 
+@@ -100,8 +77,8 @@ func (ru *ru_MD) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+ i := int64(n)
+- iMod100 := i % 100
+ iMod10 := i % 10
++ iMod100 := i % 100
+ 
+ if v == 0 && iMod10 == 1 && iMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -168,7 +145,7 @@ func (ru *ru_MD) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ru *ru_MD) MonthsAbbreviated() []string {
+- return ru.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -178,7 +155,7 @@ func (ru *ru_MD) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ru *ru_MD) MonthsNarrow() []string {
+- return ru.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -188,7 +165,7 @@ func (ru *ru_MD) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ru *ru_MD) MonthsWide() []string {
+- return ru.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -234,51 +211,14 @@ func (ru *ru_MD) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ru_MD' and handles both Whole and Real numbers based on 'v'
+ func (ru *ru_MD) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ru.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ru_MD' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ru *ru_MD) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
++ l := len(s) + 0
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -310,58 +250,7 @@ func (ru *ru_MD) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ru.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ru.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ru.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ru.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ru_MD'
+@@ -370,65 +259,7 @@ func (ru *ru_MD) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ru.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ru.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ru.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ru.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ru.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ru_MD'
+@@ -436,27 +267,6 @@ func (ru *ru_MD) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,20 +275,6 @@ func (ru *ru_MD) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -487,20 +283,6 @@ func (ru *ru_MD) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -509,22 +291,6 @@ func (ru *ru_MD) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ru.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -533,15 +299,6 @@ func (ru *ru_MD) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -550,22 +307,6 @@ func (ru *ru_MD) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -574,26 +315,6 @@ func (ru *ru_MD) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -602,30 +323,5 @@ func (ru *ru_MD) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ru.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ru_RU/ru_RU.go b/ru_RU/ru_RU.go
+index 1410bd9..d1580c1 100644
+--- a/ru_RU/ru_RU.go
++++ b/ru_RU/ru_RU.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ru_RU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ru_RU' locale
+ func New() locales.Translator {
+ return &ru_RU{
+- locale: "ru_RU",
+- pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 5, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "янв.", "февр.", "мар.", "апр.", "мая", "июн.", "июл.", "авг.", "сент.", "окт.", "нояб.", "дек."},
+- monthsNarrow: []string{"", "Я", "Ф", "М", "А", "М", "И", "И", "А", "С", "О", "Н", "Д"},
+- monthsWide: []string{"", "января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"},
+- daysAbbreviated: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysNarrow: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysShort: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysWide: []string{"воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"},
+- periodsAbbreviated: []string{"ДП", "ПП"},
+- periodsNarrow: []string{"ДП", "ПП"},
+- periodsWide: []string{"ДП", "ПП"},
+- erasAbbreviated: []string{"до н. э.", "н. э."},
+- erasNarrow: []string{"до н.э.", "н.э."},
+- erasWide: []string{"до Рождества Христова", "от Рождества Христова"},
+- timezones: map[string]string{"HNPMX": "Тихоокеанское мексиканское стандартное время", "HEPMX": "Тихоокеанское мексиканское летнее время", "HAST": "Гавайско-алеутское стандартное время", "HADT": "Гавайско-алеутское летнее время", "BOT": "Боливия", "COST": "Колумбия, летнее время", "GMT": "Среднее время по Гринвичу", "WITA": "Центральная Индонезия", "AEDT": "Восточная Австралия, летнее время", "JDT": "Япония, летнее время", "HENOMX": "Северо-западное мексиканское летнее время", "WARST": "Западная Аргентина, летнее время", "MDT": "Макао, летнее время", "OEZ": "Восточная Европа, стандартное время", "ECT": "Эквадор", "UYT": "Уругвай, стандартное время", "BT": "Бутан", "HNT": "Ньюфаундленд, стандартное время", "HNNOMX": "Северо-западное мексиканское стандартное время", "WART": "Западная Аргентина, стандартное время", "COT": "Колумбия, стандартное время", "CST": "Центральная Америка, стандартное время", "MYT": "Малайзия", "ARST": "Аргентина, летнее время", "AEST": "Восточная Австралия, стандартное время", "ChST": "Чаморро", "EDT": "Восточная Америка, летнее время", "HNEG": "Восточная Гренландия, стандарное время", "TMT": "Туркмения, стандартное время", "WAST": "Западная Африка, летнее время", "HNCU": "Куба, стандартное время", "HECU": "Куба, летнее время", "AKST": "Аляска, стандартное время", "AWST": "Западная Австралия, стандартное время", "HEPM": "Сен-Пьер и Микелон, летнее время", "SRT": "Суринам", "AWDT": "Западная Австралия, летнее время", "GYT": "Гайана", "HNOG": "Западная Гренландия, стандартное время", "PDT": "Тихоокеанское летнее время", "CLST": "Чили, летнее время", "AST": "Атлантическое стандартное время", "TMST": "Туркмения, летнее время", "ACST": "Центральная Австралия, стандартное время", "MESZ": "Центральная Европа, летнее время", "LHST": "Лорд-Хау, стандартное время", "LHDT": "Лорд-Хау, летнее время", "CDT": "Центральная Америка, летнее время", "WIB": "Западная Индонезия", "ACWDT": "Центральная Австралия, западное летнее время", "ART": "Аргентина, стандартное время", "WEZ": "Западная Европа, стандартное время", "IST": "Индия", "CLT": "Чили, стандартное время", "CHADT": "Чатем, летнее время", "EST": "Восточная Америка, стандартное время", "MST": "Макао, стандартное время", "VET": "Венесуэла", "HAT": "Ньюфаундленд, летнее время", "WESZ": "Западная Европа, летнее время", "HNPM": "Сен-Пьер и Микелон, стандартное время", "NZDT": "Новая Зеландия, летнее время", "ACDT": "Центральная Австралия, летнее время", "SGT": "Сингапур", "SAST": "Южная Африка", "HEEG": "Восточная Гренландия, летнее время", "GFT": "Французская Гвиана", "WAT": "Западная Африка, стандартное время", "∅∅∅": "Азорские о-ва, летнее время", "ADT": "Атлантическое летнее время", "ACWST": "Центральная Австралия, западное стандартное время", "HKST": "Гонконг, летнее время", "MEZ": "Центральная Европа, стандартное время", "CHAST": "Чатем, стандартное время", "OESZ": "Восточная Европа, летнее время", "CAT": "Центральная Африка", "WIT": "Восточная Индонезия", "HEOG": "Западная Гренландия, летнее время", "PST": "Тихоокеанское стандартное время", "HKT": "Гонконг, стандартное время", "NZST": "Новая Зеландия, стандартное время", "AKDT": "Аляска, летнее время", "UYST": "Уругвай, летнее время", "JST": "Япония, стандартное время", "EAT": "Восточная Африка"},
++ locale: "ru_RU",
++ pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AEST": "AEST", "AKDT": "AKDT", "COST": "COST", "ECT": "ECT", "HAST": "HAST", "∅∅∅": "∅∅∅", "WIB": "WIB", "ACDT": "ACDT", "HEPM": "HEPM", "AWST": "AWST", "PDT": "PDT", "WIT": "WIT", "TMT": "TMT", "CST": "CST", "ARST": "ARST", "BOT": "BOT", "UYST": "UYST", "AKST": "AKST", "MESZ": "MESZ", "HEEG": "HEEG", "AWDT": "AWDT", "WAT": "WAT", "TMST": "TMST", "CAT": "CAT", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "HNEG": "HNEG", "AST": "AST", "ACWDT": "ACWDT", "GFT": "GFT", "HNOG": "HNOG", "COT": "COT", "CLT": "CLT", "CLST": "CLST", "WART": "WART", "CDT": "CDT", "ADT": "ADT", "UYT": "UYT", "IST": "IST", "OEZ": "OEZ", "WITA": "WITA", "ART": "ART", "WESZ": "WESZ", "HKT": "HKT", "EAT": "EAT", "ACST": "ACST", "HNPM": "HNPM", "HNPMX": "HNPMX", "WARST": "WARST", "GMT": "GMT", "MDT": "MDT", "HADT": "HADT", "CHAST": "CHAST", "BT": "BT", "HNCU": "HNCU", "HEPMX": "HEPMX", "SAST": "SAST", "EST": "EST", "LHST": "LHST", "CHADT": "CHADT", "SGT": "SGT", "OESZ": "OESZ", "HAT": "HAT", "NZST": "NZST", "JST": "JST", "JDT": "JDT", "ACWST": "ACWST", "AEDT": "AEDT", "WAST": "WAST", "MST": "MST", "ChST": "ChST", "HENOMX": "HENOMX", "PST": "PST", "HECU": "HECU", "HNT": "HNT", "HEOG": "HEOG", "SRT": "SRT", "MEZ": "MEZ", "VET": "VET", "LHDT": "LHDT", "MYT": "MYT", "WEZ": "WEZ", "GYT": "GYT", "EDT": "EDT", "HKST": "HKST"},
+ }
+ }
+ 
+@@ -100,8 +77,8 @@ func (ru *ru_RU) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+ i := int64(n)
+- iMod100 := i % 100
+ iMod10 := i % 10
++ iMod100 := i % 100
+ 
+ if v == 0 && iMod10 == 1 && iMod100 != 11 {
+ return locales.PluralRuleOne
+@@ -168,7 +145,7 @@ func (ru *ru_RU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ru *ru_RU) MonthsAbbreviated() []string {
+- return ru.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -178,7 +155,7 @@ func (ru *ru_RU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ru *ru_RU) MonthsNarrow() []string {
+- return ru.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -188,7 +165,7 @@ func (ru *ru_RU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ru *ru_RU) MonthsWide() []string {
+- return ru.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -234,51 +211,14 @@ func (ru *ru_RU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ru_RU' and handles both Whole and Real numbers based on 'v'
+ func (ru *ru_RU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ru.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ru_RU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ru *ru_RU) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
++ l := len(s) + 0
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -310,58 +250,7 @@ func (ru *ru_RU) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ru.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ru.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ru.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ru.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ru_RU'
+@@ -370,65 +259,7 @@ func (ru *ru_RU) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ru.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ru.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ru.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ru.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ru.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ru_RU'
+@@ -436,27 +267,6 @@ func (ru *ru_RU) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,20 +275,6 @@ func (ru *ru_RU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -487,20 +283,6 @@ func (ru *ru_RU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -509,22 +291,6 @@ func (ru *ru_RU) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ru.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -533,15 +299,6 @@ func (ru *ru_RU) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -550,22 +307,6 @@ func (ru *ru_RU) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -574,26 +315,6 @@ func (ru *ru_RU) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -602,30 +323,5 @@ func (ru *ru_RU) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ru.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ru.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ru_UA/ru_UA.go b/ru_UA/ru_UA.go
+index d8fff3d..1014633 100644
+--- a/ru_UA/ru_UA.go
++++ b/ru_UA/ru_UA.go
+@@ -10,68 +10,48 @@ import (
+ )
+ 
+ type ru_UA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ru_UA' locale
+ func New() locales.Translator {
+ return &ru_UA{
+- locale: "ru_UA",
+- pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 5, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "янв.", "февр.", "мар.", "апр.", "мая", "июн.", "июл.", "авг.", "сент.", "окт.", "нояб.", "дек."},
+- monthsNarrow: []string{"", "Я", "Ф", "М", "А", "М", "И", "И", "А", "С", "О", "Н", "Д"},
+- monthsWide: []string{"", "января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"},
+- daysAbbreviated: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysNarrow: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysShort: []string{"вс", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysWide: []string{"воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"до н. э.", "н. э."},
+- erasNarrow: []string{"до н.э.", "н.э."},
+- erasWide: []string{"до Рождества Христова", "от Рождества Христова"},
+- timezones: map[string]string{"IST": "Индия", "JST": "Япония, стандартное время", "ChST": "Чаморро", "SRT": "Суринам", "ART": "Аргентина, стандартное время", "HKT": "Гонконг, стандартное время", "AEDT": "Восточная Австралия, летнее время", "SAST": "Южная Африка", "COT": "Колумбия, стандартное время", "MYT": "Малайзия", "UYST": "Уругвай, летнее время", "AWDT": "Западная Австралия, летнее время", "NZDT": "Новая Зеландия, летнее время", "TMST": "Туркмения, летнее время", "HENOMX": "Северо-западное мексиканское летнее время", "GMT": "Среднее время по Гринвичу", "ACWST": "Центральная Австралия, западное стандартное время", "LHDT": "Лорд-Хау, летнее время", "∅∅∅": "Амазонка, летнее время", "OEZ": "Восточная Европа, стандартное время", "GYT": "Гайана", "ARST": "Аргентина, летнее время", "CAT": "Центральная Африка", "EAT": "Восточная Африка", "WIB": "Западная Индонезия", "VET": "Венесуэла", "HEPM": "Сен-Пьер и Микелон, летнее время", "HEEG": "Восточная Гренландия, летнее время", "CDT": "Центральная Америка, летнее время", "AEST": "Восточная Австралия, стандартное время", "NZST": "Новая Зеландия, стандартное время", "HEPMX": "Тихоокеанское мексиканское летнее время", "EDT": "Восточная Америка, летнее время", "MDT": "Макао, летнее время", "WESZ": "Западная Европа, летнее время", "AWST": "Западная Австралия, стандартное время", "GFT": "Французская Гвиана", "HNPMX": "Тихоокеанское мексиканское стандартное время", "EST": "Восточная Америка, стандартное время", "CLST": "Чили, летнее время", "BOT": "Боливия", "HNOG": "Западная Гренландия, стандартное время", "MEZ": "Центральная Европа, стандартное время", "WAST": "Западная Африка, летнее время", "SGT": "Сингапур", "ACWDT": "Центральная Австралия, западное летнее время", "HEOG": "Западная Гренландия, летнее время", "WITA": "Центральная Индонезия", "MST": "Макао, стандартное время", "ACST": "Центральная Австралия, стандартное время", "ECT": "Эквадор", "WART": "Западная Аргентина, стандартное время", "HAST": "Гавайско-алеутское стандартное время", "BT": "Бутан", "WEZ": "Западная Европа, стандартное время", "CHAST": "Чатем, стандартное время", "HNEG": "Восточная Гренландия, стандарное время", "WARST": "Западная Аргентина, летнее время", "COST": "Колумбия, летнее время", "HECU": "Куба, летнее время", "AST": "Атлантическое стандартное время", "AKDT": "Аляска, летнее время", "ADT": "Атлантическое летнее время", "UYT": "Уругвай, стандартное время", "PDT": "Тихоокеанское летнее время", "HKST": "Гонконг, летнее время", "WAT": "Западная Африка, стандартное время", "OESZ": "Восточная Европа, летнее время", "HNNOMX": "Северо-западное мексиканское стандартное время", "WIT": "Восточная Индонезия", "LHST": "Лорд-Хау, стандартное время", "TMT": "Туркмения, стандартное время", "HADT": "Гавайско-алеутское летнее время", "HNT": "Ньюфаундленд, стандартное время", "HNCU": "Куба, стандартное время", "AKST": "Аляска, стандартное время", "PST": "Тихоокеанское стандартное время", "HNPM": "Сен-Пьер и Микелон, стандартное время", "CLT": "Чили, стандартное время", "CST": "Центральная Америка, стандартное время", "HAT": "Ньюфаундленд, летнее время", "CHADT": "Чатем, летнее время", "MESZ": "Центральная Европа, летнее время", "JDT": "Япония, летнее время", "ACDT": "Центральная Австралия, летнее время"},
++ locale: "ru_UA",
++ pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsAbbreviated: []string{"AM", "PM"},
++ periodsNarrow: []string{"AM", "PM"},
++ periodsWide: []string{"AM", "PM"},
++ timezones: map[string]string{"HAT": "HAT", "NZDT": "NZDT", "MESZ": "MESZ", "AKDT": "AKDT", "OESZ": "OESZ", "HNOG": "HNOG", "CAT": "CAT", "HADT": "HADT", "MEZ": "MEZ", "LHST": "LHST", "HNT": "HNT", "WART": "WART", "ART": "ART", "ACST": "ACST", "ACWDT": "ACWDT", "UYT": "UYT", "AST": "AST", "SRT": "SRT", "AEST": "AEST", "HEPMX": "HEPMX", "WAT": "WAT", "NZST": "NZST", "VET": "VET", "GFT": "GFT", "WIB": "WIB", "ChST": "ChST", "ARST": "ARST", "EAT": "EAT", "AWDT": "AWDT", "WAST": "WAST", "EDT": "EDT", "TMT": "TMT", "CDT": "CDT", "MST": "MST", "HAST": "HAST", "HNPM": "HNPM", "AKST": "AKST", "OEZ": "OEZ", "GYT": "GYT", "CLT": "CLT", "TMST": "TMST", "HEEG": "HEEG", "AWST": "AWST", "IST": "IST", "CHADT": "CHADT", "WESZ": "WESZ", "HNPMX": "HNPMX", "COST": "COST", "WARST": "WARST", "ADT": "ADT", "BOT": "BOT", "MYT": "MYT", "HEPM": "HEPM", "PDT": "PDT", "AEDT": "AEDT", "UYST": "UYST", "WIT": "WIT", "SAST": "SAST", "CLST": "CLST", "HENOMX": "HENOMX", "LHDT": "LHDT", "BT": "BT", "∅∅∅": "∅∅∅", "SGT": "SGT", "HECU": "HECU", "EST": "EST", "ACDT": "ACDT", "JST": "JST", "ACWST": "ACWST", "HKT": "HKT", "GMT": "GMT", "HNNOMX": "HNNOMX", "HNEG": "HNEG", "JDT": "JDT", "PST": "PST", "HEOG": "HEOG", "WITA": "WITA", "HKST": "HKST", "CST": "CST", "MDT": "MDT", "ECT": "ECT", "CHAST": "CHAST", "WEZ": "WEZ", "HNCU": "HNCU", "COT": "COT"},
+ }
+ }
+ 
+@@ -168,7 +148,7 @@ func (ru *ru_UA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ru *ru_UA) MonthsAbbreviated() []string {
+- return ru.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -178,7 +158,7 @@ func (ru *ru_UA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ru *ru_UA) MonthsNarrow() []string {
+- return ru.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -188,7 +168,7 @@ func (ru *ru_UA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ru *ru_UA) MonthsWide() []string {
+- return ru.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -234,51 +214,14 @@ func (ru *ru_UA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ru_UA' and handles both Whole and Real numbers based on 'v'
+ func (ru *ru_UA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ru.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ru_UA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ru *ru_UA) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
++ l := len(s) + 0
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -310,58 +253,7 @@ func (ru *ru_UA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ru.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ru.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ru.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, ru.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ru_UA'
+@@ -370,65 +262,7 @@ func (ru *ru_UA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ru.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ru.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ru.group) - 1; j >= 0; j-- {
+- b = append(b, ru.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ru.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ru.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ru.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, ru.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ru_UA'
+@@ -436,27 +270,6 @@ func (ru *ru_UA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -465,20 +278,6 @@ func (ru *ru_UA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -487,20 +286,6 @@ func (ru *ru_UA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -509,22 +294,6 @@ func (ru *ru_UA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ru.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ru.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd0, 0xb3}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+diff --git a/rw/rw.go b/rw/rw.go
+index bd96459..21eb140 100644
+--- a/rw/rw.go
++++ b/rw/rw.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BCE", "CE"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"BCE", "CE"},
+- timezones: map[string]string{"∅∅∅": "∅∅∅", "GFT": "GFT", "WAT": "WAT", "AST": "AST", "HNOG": "HNOG", "NZDT": "NZDT", "SAST": "SAST", "TMST": "TMST", "ChST": "ChST", "SGT": "SGT", "ACWDT": "ACWDT", "HEEG": "HEEG", "HECU": "HECU", "JDT": "JDT", "EAT": "EAT", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "CDT": "CDT", "ADT": "ADT", "GYT": "GYT", "BT": "BT", "HAT": "HAT", "PST": "PST", "HKST": "HKST", "EDT": "EDT", "CST": "CST", "AWST": "AWST", "CHAST": "CHAST", "BOT": "BOT", "WART": "WART", "WIT": "WIT", "HEPM": "HEPM", "MEZ": "MEZ", "ACDT": "ACDT", "OEZ": "OEZ", "CAT": "CAT", "HENOMX": "HENOMX", "GMT": "GMT", "MDT": "MDT", "HEOG": "HEOG", "AEST": "AEST", "LHDT": "LHDT", "IST": "IST", "JST": "JST", "ECT": "ECT", "AKST": "AKST", "ARST": "ARST", "CLT": "CLT", "ACST": "ACST", "WARST": "WARST", "MYT": "MYT", "UYT": "UYT", "HAST": "HAST", "HADT": "HADT", "SRT": "SRT", "ART": "ART", "WEZ": "WEZ", "AEDT": "AEDT", "HNCU": "HNCU", "MST": "MST", "WIB": "WIB", "HNT": "HNT", "TMT": "TMT", "OESZ": "OESZ", "WITA": "WITA", "AWDT": "AWDT", "LHST": "LHST", "CLST": "CLST", "COT": "COT", "AKDT": "AKDT", "VET": "VET", "PDT": "PDT", "WESZ": "WESZ", "CHADT": "CHADT", "MESZ": "MESZ", "WAST": "WAST", "ACWST": "ACWST", "NZST": "NZST", "COST": "COST", "HKT": "HKT", "HNPM": "HNPM", "HNEG": "HNEG", "EST": "EST", "HEPMX": "HEPMX", "UYST": "UYST"},
++ timezones: map[string]string{"CST": "CST", "ART": "ART", "ACST": "ACST", "HENOMX": "HENOMX", "CHAST": "CHAST", "TMST": "TMST", "CLT": "CLT", "GMT": "GMT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "LHDT": "LHDT", "IST": "IST", "HNOG": "HNOG", "MST": "MST", "HNCU": "HNCU", "MDT": "MDT", "MEZ": "MEZ", "WESZ": "WESZ", "HNPMX": "HNPMX", "EDT": "EDT", "HKT": "HKT", "HNPM": "HNPM", "JST": "JST", "SGT": "SGT", "WAST": "WAST", "CDT": "CDT", "HADT": "HADT", "NZST": "NZST", "WAT": "WAT", "HNT": "HNT", "CAT": "CAT", "ECT": "ECT", "EAT": "EAT", "HAT": "HAT", "COST": "COST", "AEST": "AEST", "AKST": "AKST", "CLST": "CLST", "ADT": "ADT", "WIB": "WIB", "ARST": "ARST", "BOT": "BOT", "LHST": "LHST", "UYST": "UYST", "BT": "BT", "GYT": "GYT", "NZDT": "NZDT", "AEDT": "AEDT", "JDT": "JDT", "ACWDT": "ACWDT", "SAST": "SAST", "HKST": "HKST", "HECU": "HECU", "AKDT": "AKDT", "HEOG": "HEOG", "HAST": "HAST", "WARST": "WARST", "∅∅∅": "∅∅∅", "EST": "EST", "WITA": "WITA", "HNEG": "HNEG", "MYT": "MYT", "OESZ": "OESZ", "GFT": "GFT", "UYT": "UYT", "HEPMX": "HEPMX", "AWST": "AWST", "PST": "PST", "PDT": "PDT", "WIT": "WIT", "SRT": "SRT", "MESZ": "MESZ", "HEPM": "HEPM", "ACWST": "ACWST", "WEZ": "WEZ", "COT": "COT", "TMT": "TMT", "WART": "WART", "CHADT": "CHADT", "ChST": "ChST", "ACDT": "ACDT", "VET": "VET", "OEZ": "OEZ", "AST": "AST"},
+ }
+ }
+ 
+diff --git a/rw_RW/rw_RW.go b/rw_RW/rw_RW.go
+index a84804f..71f4d2b 100644
+--- a/rw_RW/rw_RW.go
++++ b/rw_RW/rw_RW.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type rw_RW struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'rw_RW' locale
+ func New() locales.Translator {
+ return &rw_RW{
+- locale: "rw_RW",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "mut.", "gas.", "wer.", "mat.", "gic.", "kam.", "nya.", "kan.", "nze.", "ukw.", "ugu.", "uku."},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "Mutarama", "Gashyantare", "Werurwe", "Mata", "Gicuransi", "Kamena", "Nyakanga", "Kanama", "Nzeli", "Ukwakira", "Ugushyingo", "Ukuboza"},
+- daysAbbreviated: []string{"cyu.", "mbe.", "kab.", "gtu.", "kan.", "gnu.", "gnd."},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"cyu.", "mbe.", "kab.", "gtu.", "kan.", "gnu.", "gnd."},
+- daysWide: []string{"Ku cyumweru", "Kuwa mbere", "Kuwa kabiri", "Kuwa gatatu", "Kuwa kane", "Kuwa gatanu", "Kuwa gatandatu"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"BCE", "CE"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"BCE", "CE"},
+- timezones: map[string]string{"WAT": "WAT", "EDT": "EDT", "UYT": "UYT", "WEZ": "WEZ", "HKT": "HKT", "NZST": "NZST", "CLST": "CLST", "ACST": "ACST", "HNCU": "HNCU", "HEPMX": "HEPMX", "CDT": "CDT", "ADT": "ADT", "HNPM": "HNPM", "LHST": "LHST", "OESZ": "OESZ", "AEST": "AEST", "LHDT": "LHDT", "MESZ": "MESZ", "WIB": "WIB", "HAST": "HAST", "SRT": "SRT", "HAT": "HAT", "PST": "PST", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "CAT": "CAT", "AST": "AST", "HEOG": "HEOG", "AWST": "AWST", "ChST": "ChST", "ACDT": "ACDT", "MYT": "MYT", "PDT": "PDT", "HEPM": "HEPM", "CHAST": "CHAST", "COT": "COT", "ACWST": "ACWST", "ART": "ART", "BOT": "BOT", "TMST": "TMST", "ECT": "ECT", "WIT": "WIT", "HNT": "HNT", "COST": "COST", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "GYT": "GYT", "WESZ": "WESZ", "MEZ": "MEZ", "SAST": "SAST", "GFT": "GFT", "HENOMX": "HENOMX", "SGT": "SGT", "AKST": "AKST", "MST": "MST", "HKST": "HKST", "HNEG": "HNEG", "EST": "EST", "EAT": "EAT", "GMT": "GMT", "CST": "CST", "MDT": "MDT", "VET": "VET", "CHADT": "CHADT", "CLT": "CLT", "WARST": "WARST", "HADT": "HADT", "ACWDT": "ACWDT", "ARST": "ARST", "IST": "IST", "JDT": "JDT", "BT": "BT", "AWDT": "AWDT", "WART": "WART", "HNPMX": "HNPMX", "HNOG": "HNOG", "NZDT": "NZDT", "HEEG": "HEEG", "HECU": "HECU", "WAST": "WAST", "UYST": "UYST", "WITA": "WITA", "AEDT": "AEDT", "JST": "JST", "TMT": "TMT"},
++ locale: "rw_RW",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CDT": "CDT", "ChST": "ChST", "HAST": "HAST", "OESZ": "OESZ", "HNT": "HNT", "HNOG": "HNOG", "HKT": "HKT", "WAST": "WAST", "WITA": "WITA", "ECT": "ECT", "ART": "ART", "BOT": "BOT", "HNPM": "HNPM", "BT": "BT", "WEZ": "WEZ", "WIT": "WIT", "TMT": "TMT", "MDT": "MDT", "GMT": "GMT", "HADT": "HADT", "MEZ": "MEZ", "JDT": "JDT", "CST": "CST", "NZDT": "NZDT", "MYT": "MYT", "WAT": "WAT", "GFT": "GFT", "WESZ": "WESZ", "EST": "EST", "CLST": "CLST", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "OEZ": "OEZ", "CLT": "CLT", "HNNOMX": "HNNOMX", "AEDT": "AEDT", "PST": "PST", "TMST": "TMST", "ACST": "ACST", "HEPMX": "HEPMX", "EDT": "EDT", "MST": "MST", "ARST": "ARST", "AST": "AST", "LHDT": "LHDT", "CHADT": "CHADT", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "NZST": "NZST", "MESZ": "MESZ", "HEPM": "HEPM", "AWST": "AWST", "UYT": "UYT", "GYT": "GYT", "ADT": "ADT", "HNEG": "HNEG", "PDT": "PDT", "HECU": "HECU", "VET": "VET", "HAT": "HAT", "WART": "WART", "WIB": "WIB", "IST": "IST", "AKST": "AKST", "EAT": "EAT", "JST": "JST", "AEST": "AEST", "WARST": "WARST", "SAST": "SAST", "CAT": "CAT", "LHST": "LHST", "AKDT": "AKDT", "COT": "COT", "HKST": "HKST", "ACWDT": "ACWDT", "UYST": "UYST", "HNCU": "HNCU", "COST": "COST", "SRT": "SRT", "ACDT": "ACDT", "HEEG": "HEEG", "AWDT": "AWDT", "ACWST": "ACWST", "CHAST": "CHAST", "SGT": "SGT"},
+ }
+ }
+ 
+@@ -117,7 +94,7 @@ func (rw *rw_RW) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (rw *rw_RW) MonthsAbbreviated() []string {
+- return rw.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -127,7 +104,7 @@ func (rw *rw_RW) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (rw *rw_RW) MonthsNarrow() []string {
+- return rw.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -137,7 +114,7 @@ func (rw *rw_RW) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (rw *rw_RW) MonthsWide() []string {
+- return rw.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -183,73 +160,13 @@ func (rw *rw_RW) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'rw_RW' and handles both Whole and Real numbers based on 'v'
+ func (rw *rw_RW) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, rw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, rw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, rw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'rw_RW' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (rw *rw_RW) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, rw.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, rw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, rw.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'rw_RW'
+@@ -257,60 +174,7 @@ func (rw *rw_RW) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := rw.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, rw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, rw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(rw.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, rw.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, rw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, rw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'rw_RW'
+@@ -319,72 +183,7 @@ func (rw *rw_RW) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := rw.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, rw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, rw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(rw.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, rw.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, rw.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(rw.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, rw.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, rw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'rw_RW'
+@@ -392,28 +191,6 @@ func (rw *rw_RW) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -422,17 +199,6 @@ func (rw *rw_RW) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, rw.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -441,17 +207,6 @@ func (rw *rw_RW) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, rw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -460,19 +215,6 @@ func (rw *rw_RW) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, rw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, rw.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -481,19 +223,6 @@ func (rw *rw_RW) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -502,26 +231,6 @@ func (rw *rw_RW) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, rw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -530,30 +239,6 @@ func (rw *rw_RW) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, rw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -562,34 +247,5 @@ func (rw *rw_RW) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, rw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := rw.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/rwk/rwk.go b/rwk/rwk.go
+index 9ccd0bd..880d94f 100644
+--- a/rwk/rwk.go
++++ b/rwk/rwk.go
+@@ -59,7 +59,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"KK", "BK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kabla ya Kristu", "Baada ya Kristu"},
+- timezones: map[string]string{"ChST": "ChST", "CAT": "CAT", "CDT": "CDT", "PST": "PST", "BOT": "BOT", "VET": "VET", "IST": "IST", "HENOMX": "HENOMX", "HADT": "HADT", "PDT": "PDT", "COST": "COST", "HECU": "HECU", "HNPMX": "HNPMX", "GYT": "GYT", "WESZ": "WESZ", "JDT": "JDT", "∅∅∅": "∅∅∅", "WIT": "WIT", "HKT": "HKT", "MEZ": "MEZ", "MESZ": "MESZ", "COT": "COT", "UYT": "UYT", "AKST": "AKST", "BT": "BT", "ARST": "ARST", "HAT": "HAT", "EAT": "EAT", "HNCU": "HNCU", "EST": "EST", "MDT": "MDT", "CST": "CST", "HNPM": "HNPM", "HNEG": "HNEG", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "HKST": "HKST", "CHADT": "CHADT", "CHAST": "CHAST", "TMST": "TMST", "ACST": "ACST", "ADT": "ADT", "HAST": "HAST", "HNOG": "HNOG", "ACWST": "ACWST", "JST": "JST", "TMT": "TMT", "WIB": "WIB", "ACWDT": "ACWDT", "CLT": "CLT", "WEZ": "WEZ", "HNT": "HNT", "AWDT": "AWDT", "UYST": "UYST", "ART": "ART", "AWST": "AWST", "HEPM": "HEPM", "NZDT": "NZDT", "NZST": "NZST", "SAST": "SAST", "GFT": "GFT", "OEZ": "OEZ", "AST": "AST", "AEDT": "AEDT", "LHST": "LHST", "ECT": "ECT", "SGT": "SGT", "HEOG": "HEOG", "LHDT": "LHDT", "HEEG": "HEEG", "ACDT": "ACDT", "WAT": "WAT", "WARST": "WARST", "EDT": "EDT", "SRT": "SRT", "AKDT": "AKDT", "AEST": "AEST", "CLST": "CLST", "WAST": "WAST", "WART": "WART", "GMT": "GMT", "MST": "MST", "MYT": "MYT", "WITA": "WITA"},
++ timezones: map[string]string{"HADT": "HADT", "HNEG": "HNEG", "HNPM": "HNPM", "JST": "JST", "HNCU": "HNCU", "OESZ": "OESZ", "CLT": "CLT", "HEOG": "HEOG", "EST": "EST", "MST": "MST", "ACST": "ACST", "AEDT": "AEDT", "CHAST": "CHAST", "WAT": "WAT", "HNT": "HNT", "VET": "VET", "∅∅∅": "∅∅∅", "EDT": "EDT", "HKT": "HKT", "TMT": "TMT", "HNPMX": "HNPMX", "WART": "WART", "GYT": "GYT", "GFT": "GFT", "NZST": "NZST", "ECT": "ECT", "ADT": "ADT", "LHDT": "LHDT", "PDT": "PDT", "AEST": "AEST", "AKST": "AKST", "TMST": "TMST", "ACDT": "ACDT", "ACWDT": "ACWDT", "CHADT": "CHADT", "COST": "COST", "WIB": "WIB", "BT": "BT", "HNOG": "HNOG", "UYST": "UYST", "ART": "ART", "PST": "PST", "EAT": "EAT", "MDT": "MDT", "GMT": "GMT", "ACWST": "ACWST", "SAST": "SAST", "AST": "AST", "LHST": "LHST", "IST": "IST", "OEZ": "OEZ", "MESZ": "MESZ", "WITA": "WITA", "NZDT": "NZDT", "AWDT": "AWDT", "UYT": "UYT", "SGT": "SGT", "AKDT": "AKDT", "CAT": "CAT", "BOT": "BOT", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "HAT": "HAT", "COT": "COT", "ARST": "ARST", "MEZ": "MEZ", "MYT": "MYT", "WAST": "WAST", "WARST": "WARST", "CDT": "CDT", "ChST": "ChST", "SRT": "SRT", "HAST": "HAST", "JDT": "JDT", "WIT": "WIT", "CST": "CST", "HEEG": "HEEG", "HENOMX": "HENOMX", "AWST": "AWST", "HEPM": "HEPM", "WESZ": "WESZ", "HECU": "HECU", "HKST": "HKST", "CLST": "CLST", "HEPMX": "HEPMX"},
+ }
+ }
+ 
+diff --git a/rwk_TZ/rwk_TZ.go b/rwk_TZ/rwk_TZ.go
+index 20ae000..7f3acc8 100644
+--- a/rwk_TZ/rwk_TZ.go
++++ b/rwk_TZ/rwk_TZ.go
+@@ -42,24 +42,13 @@ type rwk_TZ struct {
+ // New returns a new instance of translator for the 'rwk_TZ' locale
+ func New() locales.Translator {
+ return &rwk_TZ{
+- locale: "rwk_TZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januari", "Februari", "Machi", "Aprilyi", "Mei", "Junyi", "Julyai", "Agusti", "Septemba", "Oktoba", "Novemba", "Desemba"},
+- daysAbbreviated: []string{"Jpi", "Jtt", "Jnn", "Jtn", "Alh", "Iju", "Jmo"},
+- daysNarrow: []string{"J", "J", "J", "J", "A", "I", "J"},
+- daysWide: []string{"Jumapilyi", "Jumatatuu", "Jumanne", "Jumatanu", "Alhamisi", "Ijumaa", "Jumamosi"},
+- periodsAbbreviated: []string{"utuko", "kyiukonyi"},
+- periodsWide: []string{"utuko", "kyiukonyi"},
+- erasAbbreviated: []string{"KK", "BK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kabla ya Kristu", "Baada ya Kristu"},
+- timezones: map[string]string{"NZST": "NZST", "CLST": "CLST", "MDT": "MDT", "HAT": "HAT", "AEST": "AEST", "HNPM": "HNPM", "MESZ": "MESZ", "CLT": "CLT", "ChST": "ChST", "WARST": "WARST", "EDT": "EDT", "HNPMX": "HNPMX", "HEOG": "HEOG", "MEZ": "MEZ", "JST": "JST", "MST": "MST", "CST": "CST", "PDT": "PDT", "HNT": "HNT", "AWDT": "AWDT", "CDT": "CDT", "HNOG": "HNOG", "PST": "PST", "WEZ": "WEZ", "WESZ": "WESZ", "WIB": "WIB", "SRT": "SRT", "HEEG": "HEEG", "WAST": "WAST", "EST": "EST", "UYST": "UYST", "TMST": "TMST", "COST": "COST", "HENOMX": "HENOMX", "ADT": "ADT", "IST": "IST", "WIT": "WIT", "LHST": "LHST", "GMT": "GMT", "AST": "AST", "BOT": "BOT", "ACDT": "ACDT", "CAT": "CAT", "WAT": "WAT", "OEZ": "OEZ", "WART": "WART", "ACWDT": "ACWDT", "SGT": "SGT", "HEPMX": "HEPMX", "GYT": "GYT", "AKDT": "AKDT", "HAST": "HAST", "HECU": "HECU", "AWST": "AWST", "HKT": "HKT", "ART": "ART", "WITA": "WITA", "HNEG": "HNEG", "ACST": "ACST", "COT": "COT", "HADT": "HADT", "VET": "VET", "ACWST": "ACWST", "GFT": "GFT", "LHDT": "LHDT", "CHAST": "CHAST", "SAST": "SAST", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "MYT": "MYT", "BT": "BT", "HKST": "HKST", "NZDT": "NZDT", "CHADT": "CHADT", "JDT": "JDT", "TMT": "TMT", "EAT": "EAT", "ECT": "ECT", "HNCU": "HNCU", "UYT": "UYT", "AKST": "AKST", "ARST": "ARST", "AEDT": "AEDT", "HEPM": "HEPM"},
++ locale: "rwk_TZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WESZ": "WESZ", "ChST": "ChST", "ACST": "ACST", "LHST": "LHST", "HEPM": "HEPM", "PST": "PST", "UYT": "UYT", "SAST": "SAST", "CST": "CST", "HNT": "HNT", "HKT": "HKT", "BOT": "BOT", "ACDT": "ACDT", "GFT": "GFT", "WART": "WART", "WIT": "WIT", "WITA": "WITA", "CDT": "CDT", "ECT": "ECT", "UYST": "UYST", "COT": "COT", "HNEG": "HNEG", "MYT": "MYT", "JST": "JST", "CHADT": "CHADT", "SGT": "SGT", "AKDT": "AKDT", "OEZ": "OEZ", "CLT": "CLT", "AWST": "AWST", "PDT": "PDT", "AEDT": "AEDT", "ART": "ART", "BT": "BT", "WARST": "WARST", "COST": "COST", "EDT": "EDT", "TMST": "TMST", "ADT": "ADT", "GMT": "GMT", "CLST": "CLST", "LHDT": "LHDT", "ACWDT": "ACWDT", "WAST": "WAST", "GYT": "GYT", "AWDT": "AWDT", "WEZ": "WEZ", "HNCU": "HNCU", "EST": "EST", "SRT": "SRT", "HADT": "HADT", "MESZ": "MESZ", "IST": "IST", "ACWST": "ACWST", "AEST": "AEST", "HECU": "HECU", "WAT": "WAT", "OESZ": "OESZ", "NZST": "NZST", "NZDT": "NZDT", "WIB": "WIB", "AST": "AST", "HENOMX": "HENOMX", "JDT": "JDT", "AKST": "AKST", "HAT": "HAT", "HEOG": "HEOG", "CAT": "CAT", "MST": "MST", "MDT": "MDT", "HEPMX": "HEPMX", "HNOG": "HNOG", "HKST": "HKST", "MEZ": "MEZ", "CHAST": "CHAST", "VET": "VET", "TMT": "TMT", "HAST": "HAST", "ARST": "ARST", "EAT": "EAT", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX"},
+ }
+ }
+ 
+@@ -112,7 +101,7 @@ func (rwk *rwk_TZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (rwk *rwk_TZ) MonthsAbbreviated() []string {
+- return rwk.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -122,7 +111,7 @@ func (rwk *rwk_TZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (rwk *rwk_TZ) MonthsNarrow() []string {
+- return rwk.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -132,7 +121,7 @@ func (rwk *rwk_TZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (rwk *rwk_TZ) MonthsWide() []string {
+- return rwk.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,54 +181,7 @@ func (rwk *rwk_TZ) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := rwk.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, rwk.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, rwk.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, rwk.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, rwk.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'rwk_TZ'
+@@ -248,61 +190,7 @@ func (rwk *rwk_TZ) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := rwk.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, rwk.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, rwk.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, rwk.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, rwk.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'rwk_TZ'
+@@ -310,27 +198,6 @@ func (rwk *rwk_TZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -339,17 +206,6 @@ func (rwk *rwk_TZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, rwk.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -358,17 +214,6 @@ func (rwk *rwk_TZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, rwk.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -377,19 +222,6 @@ func (rwk *rwk_TZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, rwk.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, rwk.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -398,19 +230,6 @@ func (rwk *rwk_TZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rwk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -419,26 +238,6 @@ func (rwk *rwk_TZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rwk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, rwk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -447,30 +246,6 @@ func (rwk *rwk_TZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rwk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, rwk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -479,34 +254,5 @@ func (rwk *rwk_TZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, rwk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, rwk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := rwk.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sah/sah.go b/sah/sah.go
+index afdb336..f735bee 100644
+--- a/sah/sah.go
++++ b/sah/sah.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"б. э. и.", "б. э"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"б. э. и.", "б. э"},
+- timezones: map[string]string{"CLT": "CLT", "HEEG": "HEEG", "ACDT": "Киин Австралия сайыҥҥы кэмэ", "ADT": "ADT", "PDT": "PDT", "AWST": "Арҕаа Австралия сүрүн кэмэ", "HNT": "HNT", "HAT": "HAT", "JST": "Дьоппуон сүрүн кэмэ", "CLST": "CLST", "GMT": "GMT", "EST": "EST", "HEPMX": "HEPMX", "ACWST": "ACWST", "TMT": "TMT", "ACST": "Киин Австралия сүрүн кэмэ", "EAT": "EAT", "HNOG": "HNOG", "AEST": "Илин Австралия сүрүн кэмэ", "MEZ": "MEZ", "HAST": "HAST", "SRT": "SRT", "ECT": "ECT", "HADT": "HADT", "JDT": "Дьоппуон сайыҥҥы кэмэ", "COST": "COST", "TMST": "TMST", "HNEG": "HNEG", "HNPMX": "HNPMX", "HEOG": "HEOG", "AEDT": "Илин Австралия сайыҥҥы кэмэ", "WITA": "WITA", "MESZ": "MESZ", "CAT": "CAT", "HENOMX": "HENOMX", "SGT": "SGT", "HECU": "HECU", "AKST": "AKST", "WESZ": "WESZ", "LHST": "LHST", "NZST": "Саҥа Сэйлэнд сүрүн кэмэ", "ChST": "ChST", "WAST": "WAST", "AST": "AST", "HNPM": "HNPM", "HEPM": "HEPM", "CHAST": "CHAST", "GFT": "GFT", "COT": "COT", "VET": "VET", "WIT": "WIT", "NZDT": "Саҥа Сэйлэнд сайыҥҥы кэмэ", "SAST": "SAST", "GYT": "GYT", "UYST": "UYST", "AWDT": "Арҕаа Австралия сайыҥҥы кэмэ", "IST": "Ииндийэ сүрүн кэмэ", "WAT": "WAT", "OESZ": "OESZ", "MYT": "MYT", "ARST": "ARST", "PST": "PST", "CDT": "CDT", "ART": "ART", "ACWDT": "ACWDT", "LHDT": "LHDT", "HNCU": "HNCU", "MDT": "MDT", "UYT": "UYT", "WEZ": "WEZ", "HKT": "HKT", "BT": "BT", "∅∅∅": "∅∅∅", "BOT": "BOT", "WART": "WART", "MST": "MST", "CST": "CST", "WIB": "WIB", "CHADT": "CHADT", "OEZ": "OEZ", "WARST": "WARST", "HNNOMX": "HNNOMX", "EDT": "EDT", "AKDT": "AKDT", "HKST": "HKST"},
++ timezones: map[string]string{"ADT": "ADT", "MEZ": "MEZ", "MESZ": "MESZ", "HEPM": "HEPM", "JDT": "Дьоппуон сайыҥҥы кэмэ", "AKST": "AKST", "WARST": "WARST", "HEEG": "HEEG", "SGT": "SGT", "HNPMX": "HNPMX", "TMT": "TMT", "TMST": "TMST", "MDT": "MDT", "NZDT": "Саҥа Сэйлэнд сайыҥҥы кэмэ", "MYT": "MYT", "HEPMX": "HEPMX", "COST": "COST", "NZST": "Саҥа Сэйлэнд сүрүн кэмэ", "ARST": "ARST", "AEST": "Илин Австралия сүрүн кэмэ", "CAT": "CAT", "SRT": "SRT", "WAT": "WAT", "WART": "WART", "EST": "EST", "CLST": "CLST", "GMT": "GMT", "OESZ": "OESZ", "HAT": "HAT", "CLT": "CLT", "WIB": "WIB", "EAT": "EAT", "HADT": "HADT", "AEDT": "Илин Австралия сайыҥҥы кэмэ", "VET": "VET", "HECU": "HECU", "HEOG": "HEOG", "BOT": "BOT", "HNNOMX": "HNNOMX", "∅∅∅": "∅∅∅", "GFT": "GFT", "HKST": "HKST", "AST": "AST", "AWST": "Арҕаа Австралия сүрүн кэмэ", "UYT": "UYT", "HNCU": "HNCU", "COT": "COT", "AWDT": "Арҕаа Австралия сайыҥҥы кэмэ", "PST": "PST", "EDT": "EDT", "ACWDT": "ACWDT", "CHADT": "CHADT", "WIT": "WIT", "SAST": "SAST", "HNT": "HNT", "MST": "MST", "ECT": "ECT", "HENOMX": "HENOMX", "HNPM": "HNPM", "PDT": "PDT", "ACWST": "ACWST", "CHAST": "CHAST", "HNOG": "HNOG", "LHST": "LHST", "WEZ": "WEZ", "HKT": "HKT", "ChST": "ChST", "ACST": "Киин Австралия сүрүн кэмэ", "LHDT": "LHDT", "UYST": "UYST", "AKDT": "AKDT", "OEZ": "OEZ", "GYT": "GYT", "CST": "CST", "HAST": "HAST", "BT": "BT", "WESZ": "WESZ", "WAST": "WAST", "CDT": "CDT", "ART": "ART", "ACDT": "Киин Австралия сайыҥҥы кэмэ", "HNEG": "HNEG", "JST": "Дьоппуон сүрүн кэмэ", "IST": "Ииндийэ сүрүн кэмэ", "WITA": "WITA"},
+ }
+ }
+ 
+diff --git a/sah_RU/sah_RU.go b/sah_RU/sah_RU.go
+index 4eb3e7a..ee0dad6 100644
+--- a/sah_RU/sah_RU.go
++++ b/sah_RU/sah_RU.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type sah_RU struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sah_RU' locale
+ func New() locales.Translator {
+ return &sah_RU{
+- locale: "sah_RU",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Тохс", "Олун", "Клн", "Мсу", "Ыам", "Бэс", "Отй", "Атр", "Блҕ", "Алт", "Сэт", "Ахс"},
+- monthsNarrow: []string{"", "Т", "О", "К", "М", "Ы", "Б", "О", "А", "Б", "А", "С", "А"},
+- monthsWide: []string{"", "Тохсунньу", "Олунньу", "Кулун тутар", "Муус устар", "Ыам ыйын", "Бэс ыйын", "От ыйын", "Атырдьых ыйын", "Балаҕан ыйын", "Алтынньы", "Сэтинньи", "ахсынньы"},
+- daysAbbreviated: []string{"бс", "бн", "оп", "сэ", "чп", "бэ", "сб"},
+- daysNarrow: []string{"Б", "Б", "О", "С", "Ч", "Б", "С"},
+- daysShort: []string{"бс", "бн", "оп", "сэ", "чп", "бэ", "сб"},
+- daysWide: []string{"баскыһыанньа", "бэнидиэнньик", "оптуорунньук", "сэрэдэ", "чэппиэр", "Бээтиҥсэ", "субуота"},
+- periodsAbbreviated: []string{"ЭИ", "ЭК"},
+- periodsNarrow: []string{"ЭИ", "ЭК"},
+- periodsWide: []string{"ЭИ", "ЭК"},
+- erasAbbreviated: []string{"б. э. и.", "б. э"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"б. э. и.", "б. э"},
+- timezones: map[string]string{"ECT": "ECT", "UYT": "UYT", "WESZ": "WESZ", "HKT": "HKT", "GFT": "GFT", "WAT": "WAT", "HNCU": "HNCU", "MYT": "MYT", "PST": "PST", "HNPM": "HNPM", "ACDT": "Киин Австралия сайыҥҥы кэмэ", "WAST": "WAST", "WARST": "WARST", "HECU": "HECU", "HEPMX": "HEPMX", "GYT": "GYT", "HEEG": "HEEG", "ACST": "Киин Австралия сүрүн кэмэ", "EAT": "EAT", "MDT": "MDT", "WITA": "WITA", "AWDT": "Арҕаа Австралия сайыҥҥы кэмэ", "HAST": "HAST", "HAT": "HAT", "MESZ": "MESZ", "CLST": "CLST", "OEZ": "OEZ", "WART": "WART", "EDT": "EDT", "MST": "MST", "ART": "ART", "JST": "Дьоппуон сүрүн кэмэ", "CLT": "CLT", "∅∅∅": "∅∅∅", "UYST": "UYST", "AKDT": "AKDT", "SAST": "SAST", "WIB": "WIB", "HNOG": "HNOG", "ACWST": "ACWST", "MEZ": "MEZ", "ChST": "ChST", "COT": "COT", "HNT": "HNT", "ACWDT": "ACWDT", "NZST": "Саҥа Сэйлэнд сүрүн кэмэ", "NZDT": "Саҥа Сэйлэнд сайыҥҥы кэмэ", "TMST": "TMST", "VET": "VET", "BT": "BT", "PDT": "PDT", "CHAST": "CHAST", "HNNOMX": "HNNOMX", "EST": "EST", "CST": "CST", "SRT": "SRT", "HKST": "HKST", "LHDT": "LHDT", "IST": "Ииндийэ сүрүн кэмэ", "TMT": "TMT", "CAT": "CAT", "ADT": "ADT", "AWST": "Арҕаа Австралия сүрүн кэмэ", "HNPMX": "HNPMX", "AKST": "AKST", "LHST": "LHST", "BOT": "BOT", "HNEG": "HNEG", "COST": "COST", "GMT": "GMT", "SGT": "SGT", "AEDT": "Илин Австралия сайыҥҥы кэмэ", "HEPM": "HEPM", "JDT": "Дьоппуон сайыҥҥы кэмэ", "OESZ": "OESZ", "ARST": "ARST", "AEST": "Илин Австралия сүрүн кэмэ", "CHADT": "CHADT", "HENOMX": "HENOMX", "CDT": "CDT", "WIT": "WIT", "HEOG": "HEOG", "WEZ": "WEZ", "AST": "AST", "HADT": "HADT"},
++ locale: "sah_RU",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"UYT": "UYT", "VET": "VET", "AKST": "AKST", "HEOG": "HEOG", "BOT": "BOT", "HNEG": "HNEG", "HEEG": "HEEG", "ACWDT": "ACWDT", "CLT": "CLT", "ART": "ART", "MST": "MST", "MDT": "MDT", "EAT": "EAT", "MESZ": "MESZ", "JST": "JST", "PDT": "PDT", "SGT": "SGT", "CST": "CST", "HEPMX": "HEPMX", "WAST": "WAST", "WARST": "WARST", "EST": "EST", "CAT": "CAT", "HECU": "HECU", "HNPMX": "HNPMX", "WART": "WART", "EDT": "EDT", "CLST": "CLST", "JDT": "JDT", "UYST": "UYST", "SAST": "SAST", "HKT": "HKT", "MEZ": "MEZ", "AEDT": "AEDT", "WEZ": "WEZ", "HADT": "HADT", "HAST": "HAST", "BT": "BT", "HKST": "HKST", "TMT": "TMT", "ADT": "ADT", "LHDT": "LHDT", "ARST": "ARST", "SRT": "SRT", "OESZ": "OESZ", "COST": "COST", "TMST": "TMST", "AST": "AST", "HNT": "HNT", "HAT": "HAT", "COT": "COT", "WESZ": "WESZ", "ACST": "ACST", "HNNOMX": "HNNOMX", "MYT": "MYT", "CHAST": "CHAST", "CHADT": "CHADT", "AKDT": "AKDT", "GFT": "GFT", "WITA": "WITA", "WIB": "WIB", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "NZDT": "NZDT", "AWST": "AWST", "LHST": "LHST", "HEPM": "HEPM", "WIT": "WIT", "GYT": "GYT", "ACDT": "ACDT", "HNPM": "HNPM", "IST": "IST", "OEZ": "OEZ", "HNOG": "HNOG", "NZST": "NZST", "ECT": "ECT", "GMT": "GMT", "ChST": "ChST", "ACWST": "ACWST", "AEST": "AEST", "WAT": "WAT", "CDT": "CDT", "AWDT": "AWDT", "PST": "PST", "HENOMX": "HENOMX"},
+ }
+ }
+ 
+@@ -117,7 +94,7 @@ func (sah *sah_RU) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sah *sah_RU) MonthsAbbreviated() []string {
+- return sah.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -127,7 +104,7 @@ func (sah *sah_RU) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sah *sah_RU) MonthsNarrow() []string {
+- return sah.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -137,7 +114,7 @@ func (sah *sah_RU) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sah *sah_RU) MonthsWide() []string {
+- return sah.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -183,75 +160,13 @@ func (sah *sah_RU) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sah_RU' and handles both Whole and Real numbers based on 'v'
+ func (sah *sah_RU) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sah.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sah.group) - 1; j >= 0; j-- {
+- b = append(b, sah.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sah.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sah_RU' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sah *sah_RU) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sah.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sah.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sah.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sah_RU'
+@@ -259,58 +174,7 @@ func (sah *sah_RU) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sah.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sah.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sah.group) - 1; j >= 0; j-- {
+- b = append(b, sah.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sah.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sah.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sah.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sah_RU'
+@@ -319,65 +183,7 @@ func (sah *sah_RU) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sah.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sah.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sah.group) - 1; j >= 0; j-- {
+- b = append(b, sah.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, sah.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sah.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sah.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sah.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sah_RU'
+@@ -385,17 +191,6 @@ func (sah *sah_RU) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -404,17 +199,6 @@ func (sah *sah_RU) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, sah.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -423,17 +207,6 @@ func (sah *sah_RU) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, sah.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -442,21 +215,6 @@ func (sah *sah_RU) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd1, 0x81, 0xd1, 0x8b, 0xd0, 0xbb}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sah.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0xd0, 0xba, 0xd2, 0xaf, 0xd0, 0xbd, 0xd1, 0x8d}...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, sah.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -465,19 +223,6 @@ func (sah *sah_RU) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sah.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -486,26 +231,6 @@ func (sah *sah_RU) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sah.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sah.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -514,30 +239,6 @@ func (sah *sah_RU) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sah.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sah.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -546,34 +247,5 @@ func (sah *sah_RU) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sah.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sah.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sah.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/saq/saq.go b/saq/saq.go
+index 20f8837..ea911d8 100644
+--- a/saq/saq.go
++++ b/saq/saq.go
+@@ -63,7 +63,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"KK", "BK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kabla ya Christo", "Baada ya Christo"},
+- timezones: map[string]string{"WIB": "WIB", "CHADT": "CHADT", "CLST": "CLST", "HENOMX": "HENOMX", "EDT": "EDT", "EAT": "EAT", "HNCU": "HNCU", "HAST": "HAST", "LHST": "LHST", "IST": "IST", "BOT": "BOT", "CAT": "CAT", "GMT": "GMT", "MDT": "MDT", "HAT": "HAT", "HNOG": "HNOG", "OESZ": "OESZ", "COT": "COT", "MYT": "MYT", "ACWST": "ACWST", "HEOG": "HEOG", "HKST": "HKST", "SAST": "SAST", "MEZ": "MEZ", "NZDT": "NZDT", "ChST": "ChST", "AST": "AST", "MST": "MST", "WIT": "WIT", "AEDT": "AEDT", "AWDT": "AWDT", "GYT": "GYT", "ACWDT": "ACWDT", "AKST": "AKST", "ADT": "ADT", "BT": "BT", "WITA": "WITA", "VET": "VET", "TMT": "TMT", "ACDT": "ACDT", "HNPMX": "HNPMX", "HNNOMX": "HNNOMX", "SRT": "SRT", "WESZ": "WESZ", "JST": "JST", "HNEG": "HNEG", "ECT": "ECT", "GFT": "GFT", "AKDT": "AKDT", "WEZ": "WEZ", "HNT": "HNT", "LHDT": "LHDT", "HEEG": "HEEG", "AEST": "AEST", "WAST": "WAST", "EST": "EST", "HNPM": "HNPM", "WARST": "WARST", "COST": "COST", "UYT": "UYT", "CST": "CST", "PDT": "PDT", "AWST": "AWST", "HKT": "HKT", "HEPMX": "HEPMX", "PST": "PST", "ARST": "ARST", "OEZ": "OEZ", "HECU": "HECU", "WART": "WART", "HEPM": "HEPM", "NZST": "NZST", "CLT": "CLT", "∅∅∅": "∅∅∅", "JDT": "JDT", "UYST": "UYST", "CHAST": "CHAST", "SGT": "SGT", "ACST": "ACST", "WAT": "WAT", "CDT": "CDT", "HADT": "HADT", "ART": "ART", "MESZ": "MESZ", "TMST": "TMST"},
++ timezones: map[string]string{"HENOMX": "HENOMX", "HEPM": "HEPM", "PST": "PST", "HNPMX": "HNPMX", "TMST": "TMST", "NZDT": "NZDT", "HADT": "HADT", "LHST": "LHST", "AKDT": "AKDT", "COT": "COT", "TMT": "TMT", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "WARST": "WARST", "CLT": "CLT", "HEOG": "HEOG", "HKST": "HKST", "NZST": "NZST", "SRT": "SRT", "PDT": "PDT", "AEST": "AEST", "OEZ": "OEZ", "HAT": "HAT", "MST": "MST", "AWDT": "AWDT", "GFT": "GFT", "ECT": "ECT", "ARST": "ARST", "ACDT": "ACDT", "BT": "BT", "HECU": "HECU", "WAT": "WAT", "IST": "IST", "WAST": "WAST", "CAT": "CAT", "AST": "AST", "BOT": "BOT", "LHDT": "LHDT", "JST": "JST", "AEDT": "AEDT", "SAST": "SAST", "UYST": "UYST", "HEPMX": "HEPMX", "GYT": "GYT", "HKT": "HKT", "EDT": "EDT", "WITA": "WITA", "ChST": "ChST", "MEZ": "MEZ", "MYT": "MYT", "SGT": "SGT", "EST": "EST", "GMT": "GMT", "HAST": "HAST", "WIB": "WIB", "UYT": "UYT", "WART": "WART", "OESZ": "OESZ", "ART": "ART", "ADT": "ADT", "MESZ": "MESZ", "AWST": "AWST", "AKST": "AKST", "WEZ": "WEZ", "WESZ": "WESZ", "WIT": "WIT", "COST": "COST", "JDT": "JDT", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "EAT": "EAT", "ACST": "ACST", "HNEG": "HNEG", "HEEG": "HEEG", "HNPM": "HNPM", "VET": "VET", "HNT": "HNT", "CST": "CST", "CDT": "CDT", "CLST": "CLST", "MDT": "MDT", "ACWST": "ACWST", "ACWDT": "ACWDT", "CHADT": "CHADT", "HNOG": "HNOG"},
+ }
+ }
+ 
+diff --git a/saq_KE/saq_KE.go b/saq_KE/saq_KE.go
+index 2ece81a..4c2be91 100644
+--- a/saq_KE/saq_KE.go
++++ b/saq_KE/saq_KE.go
+@@ -10,60 +10,45 @@ import (
+ )
+ 
+ type saq_KE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'saq_KE' locale
+ func New() locales.Translator {
+ return &saq_KE{
+- locale: "saq_KE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Obo", "Waa", "Oku", "Ong", "Ime", "Ile", "Sap", "Isi", "Saa", "Tom", "Tob", "Tow"},
+- monthsNarrow: []string{"", "O", "W", "O", "O", "I", "I", "S", "I", "S", "T", "T", "T"},
+- monthsWide: []string{"", "Lapa le obo", "Lapa le waare", "Lapa le okuni", "Lapa le ong’wan", "Lapa le imet", "Lapa le ile", "Lapa le sapa", "Lapa le isiet", "Lapa le saal", "Lapa le tomon", "Lapa le tomon obo", "Lapa le tomon waare"},
+- daysAbbreviated: []string{"Are", "Kun", "Ong", "Ine", "Ile", "Sap", "Kwe"},
+- daysNarrow: []string{"A", "K", "O", "I", "I", "S", "K"},
+- daysWide: []string{"Mderot ee are", "Mderot ee kuni", "Mderot ee ong’wan", "Mderot ee inet", "Mderot ee ile", "Mderot ee sapa", "Mderot ee kwe"},
+- periodsAbbreviated: []string{"Tesiran", "Teipa"},
+- periodsWide: []string{"Tesiran", "Teipa"},
+- erasAbbreviated: []string{"KK", "BK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kabla ya Christo", "Baada ya Christo"},
+- timezones: map[string]string{"HEOG": "HEOG", "AWDT": "AWDT", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "BOT": "BOT", "COST": "COST", "HNEG": "HNEG", "MDT": "MDT", "MYT": "MYT", "WESZ": "WESZ", "HKST": "HKST", "IST": "IST", "CHAST": "CHAST", "ACST": "ACST", "ECT": "ECT", "VET": "VET", "WIT": "WIT", "BT": "BT", "HNT": "HNT", "MEZ": "MEZ", "WARST": "WARST", "WIB": "WIB", "CHADT": "CHADT", "HKT": "HKT", "TMT": "TMT", "WAT": "WAT", "HNCU": "HNCU", "EST": "EST", "MST": "MST", "AKST": "AKST", "AEST": "AEST", "COT": "COT", "OEZ": "OEZ", "HEPMX": "HEPMX", "HADT": "HADT", "AWST": "AWST", "CLST": "CLST", "GFT": "GFT", "JDT": "JDT", "TMST": "TMST", "WEZ": "WEZ", "ARST": "ARST", "LHST": "LHST", "LHDT": "LHDT", "NZST": "NZST", "SGT": "SGT", "JST": "JST", "CAT": "CAT", "WAST": "WAST", "HEPM": "HEPM", "SAST": "SAST", "OESZ": "OESZ", "EDT": "EDT", "CST": "CST", "AST": "AST", "PST": "PST", "WITA": "WITA", "HENOMX": "HENOMX", "HNPM": "HNPM", "CLT": "CLT", "UYST": "UYST", "ADT": "ADT", "HAST": "HAST", "HAT": "HAT", "AEDT": "AEDT", "GMT": "GMT", "HECU": "HECU", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "HEEG": "HEEG", "CDT": "CDT", "SRT": "SRT", "MESZ": "MESZ", "ChST": "ChST", "WART": "WART", "GYT": "GYT", "HNOG": "HNOG", "HNPMX": "HNPMX", "UYT": "UYT", "PDT": "PDT", "ACWST": "ACWST", "ART": "ART", "ACDT": "ACDT", "EAT": "EAT"},
++ locale: "saq_KE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GMT": "GMT", "BOT": "BOT", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "COT": "COT", "ADT": "ADT", "AEDT": "AEDT", "HNOG": "HNOG", "EDT": "EDT", "CAT": "CAT", "WITA": "WITA", "HNEG": "HNEG", "CHADT": "CHADT", "HECU": "HECU", "WAST": "WAST", "NZST": "NZST", "HKST": "HKST", "ARST": "ARST", "ACDT": "ACDT", "HEPM": "HEPM", "JST": "JST", "HAT": "HAT", "SAST": "SAST", "MDT": "MDT", "SRT": "SRT", "EAT": "EAT", "UYT": "UYT", "WEZ": "WEZ", "WESZ": "WESZ", "WART": "WART", "ACWST": "ACWST", "VET": "VET", "TMST": "TMST", "MEZ": "MEZ", "AWST": "AWST", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "PDT": "PDT", "CST": "CST", "OESZ": "OESZ", "WIT": "WIT", "COST": "COST", "HAST": "HAST", "HEEG": "HEEG", "LHST": "LHST", "CHAST": "CHAST", "HNCU": "HNCU", "EST": "EST", "WIB": "WIB", "ART": "ART", "GYT": "GYT", "HKT": "HKT", "NZDT": "NZDT", "AST": "AST", "IST": "IST", "AEST": "AEST", "HNT": "HNT", "HADT": "HADT", "ACST": "ACST", "BT": "BT", "AKST": "AKST", "HENOMX": "HENOMX", "JDT": "JDT", "WARST": "WARST", "CLT": "CLT", "ECT": "ECT", "MESZ": "MESZ", "HEOG": "HEOG", "MST": "MST", "SGT": "SGT", "TMT": "TMT", "CLST": "CLST", "CDT": "CDT", "ChST": "ChST", "MYT": "MYT", "UYST": "UYST", "PST": "PST", "AKDT": "AKDT", "GFT": "GFT", "AWDT": "AWDT", "HNPM": "HNPM", "ACWDT": "ACWDT", "WAT": "WAT", "OEZ": "OEZ"},
+ }
+ }
+ 
+@@ -116,7 +101,7 @@ func (saq *saq_KE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (saq *saq_KE) MonthsAbbreviated() []string {
+- return saq.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -126,7 +111,7 @@ func (saq *saq_KE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (saq *saq_KE) MonthsNarrow() []string {
+- return saq.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -136,7 +121,7 @@ func (saq *saq_KE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (saq *saq_KE) MonthsWide() []string {
+- return saq.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -196,56 +181,7 @@ func (saq *saq_KE) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := saq.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, saq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, saq.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, saq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, saq.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'saq_KE'
+@@ -254,68 +190,7 @@ func (saq *saq_KE) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := saq.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, saq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, saq.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, saq.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, saq.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, saq.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'saq_KE'
+@@ -323,27 +198,6 @@ func (saq *saq_KE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -352,17 +206,6 @@ func (saq *saq_KE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, saq.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -371,17 +214,6 @@ func (saq *saq_KE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, saq.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -390,19 +222,6 @@ func (saq *saq_KE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, saq.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, saq.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -411,19 +230,6 @@ func (saq *saq_KE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, saq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -432,26 +238,6 @@ func (saq *saq_KE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, saq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, saq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -460,30 +246,6 @@ func (saq *saq_KE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, saq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, saq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -492,34 +254,5 @@ func (saq *saq_KE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, saq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, saq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := saq.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sbp/sbp.go b/sbp/sbp.go
+index 38bac3b..e8babba 100644
+--- a/sbp/sbp.go
++++ b/sbp/sbp.go
+@@ -60,7 +60,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"AK", "PK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Ashanali uKilisito", "Pamwandi ya Kilisto"},
+- timezones: map[string]string{"MST": "MST", "NZST": "NZST", "ChST": "ChST", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "MDT": "MDT", "HNOG": "HNOG", "MESZ": "MESZ", "CLST": "CLST", "JST": "JST", "SGT": "SGT", "GYT": "GYT", "PST": "PST", "HAT": "HAT", "LHST": "LHST", "ECT": "ECT", "HNCU": "HNCU", "AKST": "AKST", "WIB": "WIB", "WEZ": "WEZ", "AWST": "AWST", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "COT": "COT", "HNPMX": "HNPMX", "HKT": "HKT", "JDT": "JDT", "CAT": "CAT", "OEZ": "OEZ", "HENOMX": "HENOMX", "MYT": "MYT", "UYT": "UYT", "AKDT": "AKDT", "HAST": "HAST", "AWDT": "AWDT", "HNPM": "HNPM", "HEPM": "HEPM", "IST": "IST", "BOT": "BOT", "EST": "EST", "AST": "AST", "ADT": "ADT", "BT": "BT", "HNT": "HNT", "MEZ": "MEZ", "LHDT": "LHDT", "CLT": "CLT", "TMT": "TMT", "VET": "VET", "SRT": "SRT", "TMST": "TMST", "HECU": "HECU", "CST": "CST", "CDT": "CDT", "UYST": "UYST", "WITA": "WITA", "ACWST": "ACWST", "ARST": "ARST", "GFT": "GFT", "WARST": "WARST", "HADT": "HADT", "NZDT": "NZDT", "CHADT": "CHADT", "HNEG": "HNEG", "EAT": "EAT", "OESZ": "OESZ", "GMT": "GMT", "SAST": "SAST", "WART": "WART", "PDT": "PDT", "HKST": "HKST", "HEEG": "HEEG", "ACST": "ACST", "WESZ": "WESZ", "ACWDT": "ACWDT", "ART": "ART", "AEDT": "AEDT", "ACDT": "ACDT", "WAT": "WAT", "WAST": "WAST", "WIT": "WIT", "HEOG": "HEOG", "AEST": "AEST", "COST": "COST", "EDT": "EDT"},
++ timezones: map[string]string{"AKDT": "AKDT", "WARST": "WARST", "WIT": "WIT", "COT": "COT", "CDT": "CDT", "ART": "ART", "HAST": "HAST", "SGT": "SGT", "VET": "VET", "TMT": "TMT", "CST": "CST", "HENOMX": "HENOMX", "BT": "BT", "HNT": "HNT", "HAT": "HAT", "EST": "EST", "UYST": "UYST", "AST": "AST", "ECT": "ECT", "HEPM": "HEPM", "OEZ": "OEZ", "HNOG": "HNOG", "ADT": "ADT", "HNNOMX": "HNNOMX", "IST": "IST", "PDT": "PDT", "HNCU": "HNCU", "HECU": "HECU", "HNPMX": "HNPMX", "WESZ": "WESZ", "LHDT": "LHDT", "UYT": "UYT", "CHADT": "CHADT", "WITA": "WITA", "NZST": "NZST", "NZDT": "NZDT", "GMT": "GMT", "JST": "JST", "MESZ": "MESZ", "HEEG": "HEEG", "HNPM": "HNPM", "AWST": "AWST", "LHST": "LHST", "HKT": "HKT", "HKST": "HKST", "MEZ": "MEZ", "MST": "MST", "CLST": "CLST", "WAST": "WAST", "WAT": "WAT", "WART": "WART", "COST": "COST", "EDT": "EDT", "ARST": "ARST", "EAT": "EAT", "HADT": "HADT", "MYT": "MYT", "HEOG": "HEOG", "CAT": "CAT", "JDT": "JDT", "HEPMX": "HEPMX", "SAST": "SAST", "GYT": "GYT", "CLT": "CLT", "ACWST": "ACWST", "ACWDT": "ACWDT", "AEST": "AEST", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "TMST": "TMST", "SRT": "SRT", "HNEG": "HNEG", "AWDT": "AWDT", "AKST": "AKST", "OESZ": "OESZ", "MDT": "MDT", "ACDT": "ACDT", "CHAST": "CHAST", "PST": "PST", "WEZ": "WEZ", "GFT": "GFT", "WIB": "WIB", "ChST": "ChST", "BOT": "BOT", "ACST": "ACST"},
+ }
+ }
+ 
+diff --git a/sbp_TZ/sbp_TZ.go b/sbp_TZ/sbp_TZ.go
+index 2ac6423..20987e1 100644
+--- a/sbp_TZ/sbp_TZ.go
++++ b/sbp_TZ/sbp_TZ.go
+@@ -42,25 +42,13 @@ type sbp_TZ struct {
+ // New returns a new instance of translator for the 'sbp_TZ' locale
+ func New() locales.Translator {
+ return &sbp_TZ{
+- locale: "sbp_TZ",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Mup", "Mwi", "Msh", "Mun", "Mag", "Muj", "Msp", "Mpg", "Mye", "Mok", "Mus", "Muh"},
+- monthsWide: []string{"", "Mupalangulwa", "Mwitope", "Mushende", "Munyi", "Mushende Magali", "Mujimbi", "Mushipepo", "Mupuguto", "Munyense", "Mokhu", "Musongandembwe", "Muhaano"},
+- daysAbbreviated: []string{"Mul", "Jtt", "Jnn", "Jtn", "Alh", "Iju", "Jmo"},
+- daysNarrow: []string{"M", "J", "J", "J", "A", "I", "J"},
+- daysWide: []string{"Mulungu", "Jumatatu", "Jumanne", "Jumatano", "Alahamisi", "Ijumaa", "Jumamosi"},
+- periodsAbbreviated: []string{"Lwamilawu", "Pashamihe"},
+- periodsWide: []string{"Lwamilawu", "Pashamihe"},
+- erasAbbreviated: []string{"AK", "PK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Ashanali uKilisito", "Pamwandi ya Kilisto"},
+- timezones: map[string]string{"COT": "COT", "HEPMX": "HEPMX", "MYT": "MYT", "UYT": "UYT", "HAST": "HAST", "WEZ": "WEZ", "HKST": "HKST", "SAST": "SAST", "HECU": "HECU", "AST": "AST", "BT": "BT", "HNPM": "HNPM", "WART": "WART", "ARST": "ARST", "JDT": "JDT", "MEZ": "MEZ", "IST": "IST", "TMT": "TMT", "MST": "MST", "LHDT": "LHDT", "EAT": "EAT", "WARST": "WARST", "SGT": "SGT", "HNPMX": "HNPMX", "HEOG": "HEOG", "PDT": "PDT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "GMT": "GMT", "GYT": "GYT", "HADT": "HADT", "SRT": "SRT", "HNT": "HNT", "MESZ": "MESZ", "WESZ": "WESZ", "AEDT": "AEDT", "NZDT": "NZDT", "BOT": "BOT", "OESZ": "OESZ", "CST": "CST", "WIT": "WIT", "WITA": "WITA", "CHADT": "CHADT", "GFT": "GFT", "ACDT": "ACDT", "OEZ": "OEZ", "ChST": "ChST", "EDT": "EDT", "AKST": "AKST", "VET": "VET", "ACWST": "ACWST", "LHST": "LHST", "NZST": "NZST", "JST": "JST", "ACST": "ACST", "WAST": "WAST", "EST": "EST", "ADT": "ADT", "ART": "ART", "ACWDT": "ACWDT", "HKT": "HKT", "HEPM": "HEPM", "CAT": "CAT", "TMST": "TMST", "HNCU": "HNCU", "WIB": "WIB", "PST": "PST", "AWST": "AWST", "AWDT": "AWDT", "CHAST": "CHAST", "CLT": "CLT", "WAT": "WAT", "CLST": "CLST", "∅∅∅": "∅∅∅", "CDT": "CDT", "UYST": "UYST", "AKDT": "AKDT", "HAT": "HAT", "HNOG": "HNOG", "AEST": "AEST", "HEEG": "HEEG", "MDT": "MDT", "ECT": "ECT", "COST": "COST", "HENOMX": "HENOMX"},
++ locale: "sbp_TZ",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"∅∅∅": "∅∅∅", "AKDT": "AKDT", "GYT": "GYT", "HAST": "HAST", "LHST": "LHST", "MYT": "MYT", "HNPMX": "HNPMX", "CAT": "CAT", "AWST": "AWST", "COT": "COT", "ACST": "ACST", "LHDT": "LHDT", "ACWDT": "ACWDT", "HNCU": "HNCU", "OESZ": "OESZ", "WIT": "WIT", "EDT": "EDT", "MST": "MST", "MEZ": "MEZ", "UYT": "UYT", "HKT": "HKT", "TMT": "TMT", "AST": "AST", "EAT": "EAT", "WAT": "WAT", "HNT": "HNT", "SAST": "SAST", "HEOG": "HEOG", "WITA": "WITA", "CST": "CST", "SGT": "SGT", "HEPM": "HEPM", "CHAST": "CHAST", "GFT": "GFT", "TMST": "TMST", "CDT": "CDT", "NZST": "NZST", "ART": "ART", "HNEG": "HNEG", "HENOMX": "HENOMX", "IST": "IST", "AEST": "AEST", "AKST": "AKST", "GMT": "GMT", "ACDT": "ACDT", "AWDT": "AWDT", "EST": "EST", "HNNOMX": "HNNOMX", "COST": "COST", "ADT": "ADT", "HADT": "HADT", "ACWST": "ACWST", "WEZ": "WEZ", "HAT": "HAT", "HNOG": "HNOG", "HKST": "HKST", "WIB": "WIB", "ARST": "ARST", "MESZ": "MESZ", "HEEG": "HEEG", "BT": "BT", "HEPMX": "HEPMX", "WAST": "WAST", "CLST": "CLST", "ChST": "ChST", "MDT": "MDT", "HNPM": "HNPM", "AEDT": "AEDT", "VET": "VET", "HECU": "HECU", "WART": "WART", "SRT": "SRT", "PST": "PST", "UYST": "UYST", "WESZ": "WESZ", "OEZ": "OEZ", "WARST": "WARST", "BOT": "BOT", "JDT": "JDT", "ECT": "ECT", "JST": "JST", "CHADT": "CHADT", "CLT": "CLT", "NZDT": "NZDT", "PDT": "PDT"},
+ }
+ }
+ 
+@@ -106,7 +94,7 @@ func (sbp *sbp_TZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sbp *sbp_TZ) MonthsAbbreviated() []string {
+- return sbp.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -126,7 +114,7 @@ func (sbp *sbp_TZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sbp *sbp_TZ) MonthsWide() []string {
+- return sbp.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -172,73 +160,13 @@ func (sbp *sbp_TZ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sbp_TZ' and handles both Whole and Real numbers based on 'v'
+ func (sbp *sbp_TZ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sbp.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sbp.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sbp.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sbp_TZ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sbp *sbp_TZ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sbp.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sbp.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sbp.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sbp_TZ'
+@@ -246,54 +174,7 @@ func (sbp *sbp_TZ) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sbp.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sbp.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sbp.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sbp.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sbp.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sbp_TZ'
+@@ -302,61 +183,7 @@ func (sbp *sbp_TZ) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sbp.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sbp.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sbp.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, sbp.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sbp.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sbp_TZ'
+@@ -364,27 +191,6 @@ func (sbp *sbp_TZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -393,17 +199,6 @@ func (sbp *sbp_TZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sbp.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -412,17 +207,6 @@ func (sbp *sbp_TZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sbp.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,19 +215,6 @@ func (sbp *sbp_TZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sbp.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sbp.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -452,19 +223,6 @@ func (sbp *sbp_TZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sbp.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -473,26 +231,6 @@ func (sbp *sbp_TZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sbp.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sbp.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -501,30 +239,6 @@ func (sbp *sbp_TZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sbp.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sbp.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -533,34 +247,5 @@ func (sbp *sbp_TZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sbp.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sbp.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sbp.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/se/se.go b/se/se.go
+index 4f522dd..1cde91f 100644
+--- a/se/se.go
++++ b/se/se.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"o.Kr.", "m.Kr."},
+ erasNarrow: []string{"ooá", "oá"},
+ erasWide: []string{"ovdal Kristtusa", "maŋŋel Kristtusa"},
+- timezones: map[string]string{"WAT": "WAT", "BT": "BT", "SRT": "SRT", "HNPM": "HNPM", "CHADT": "CHADT", "CLST": "CLST", "HEEG": "HEEG", "EAT": "EAT", "EDT": "EDT", "MST": "MST", "HEPMX": "HEPMX", "CST": "CST", "PST": "PST", "PDT": "PDT", "HNT": "HNT", "CLT": "CLT", "COT": "COT", "∅∅∅": "∅∅∅", "VET": "VET", "AEST": "AEST", "AWDT": "AWDT", "ChST": "ChST", "BOT": "BOT", "HNPMX": "HNPMX", "WITA": "WITA", "NZST": "NZST", "GFT": "GFT", "UYT": "UYT", "HAST": "HAST", "ACWST": "ACWST", "WAST": "WAST", "CHAST": "CHAST", "IST": "IST", "ACDT": "ACDT", "HEOG": "HEOG", "HKST": "HKST", "MESZ": "gaska-Eurohpá geassiáigi", "CAT": "CAT", "GMT": "Greenwich gaskka áigi", "UYST": "UYST", "AKDT": "AKDT", "WEZ": "oarje-Eurohpá dábálašáigi", "AWST": "AWST", "HEPM": "HEPM", "LHST": "LHST", "WART": "WART", "HECU": "HECU", "ART": "ART", "NZDT": "NZDT", "SAST": "SAST", "WIT": "WIT", "HNEG": "HNEG", "TMST": "TMST", "WARST": "WARST", "SGT": "SGT", "EST": "EST", "MDT": "MDT", "MYT": "MYT", "AEDT": "AEDT", "HENOMX": "HENOMX", "AKST": "AKST", "CDT": "CDT", "MEZ": "gaska-Eurohpá dábálašáigi", "TMT": "TMT", "OEZ": "nuorti-Eurohpá dábálašáigi", "OESZ": "nuorti-Eurohpá geassiáigi", "HNNOMX": "HNNOMX", "AST": "AST", "ACWDT": "ACWDT", "HKT": "HKT", "LHDT": "LHDT", "ACST": "ACST", "ECT": "ECT", "COST": "COST", "HNCU": "HNCU", "ADT": "ADT", "GYT": "GYT", "WIB": "WIB", "WESZ": "oarje-Eurohpá geassiáigi", "ARST": "ARST", "HADT": "HADT", "HAT": "HAT", "HNOG": "HNOG", "JST": "JST", "JDT": "JDT"},
++ timezones: map[string]string{"HADT": "HADT", "HEPMX": "HEPMX", "TMT": "TMT", "MDT": "MDT", "AST": "AST", "ACDT": "ACDT", "PST": "PST", "BT": "BT", "CHAST": "CHAST", "COST": "COST", "EDT": "EDT", "ACWST": "ACWST", "WITA": "WITA", "WIB": "WIB", "ART": "ART", "EAT": "EAT", "HNEG": "HNEG", "JST": "JST", "PDT": "PDT", "WESZ": "oarje-Eurohpá geassiáigi", "OEZ": "nuorti-Eurohpá dábálašáigi", "ChST": "ChST", "VET": "VET", "UYST": "UYST", "AEDT": "AEDT", "HECU": "HECU", "WART": "WART", "HNNOMX": "HNNOMX", "NZDT": "NZDT", "AWDT": "AWDT", "HAT": "HAT", "CDT": "CDT", "UYT": "UYT", "WEZ": "oarje-Eurohpá dábálašáigi", "TMST": "TMST", "BOT": "BOT", "HAST": "HAST", "HNPM": "HNPM", "HNOG": "HNOG", "CLST": "CLST", "HKST": "HKST", "CST": "CST", "GMT": "Greenwich gaskka áigi", "MESZ": "gaska-Eurohpá geassiáigi", "HNT": "HNT", "WIT": "WIT", "NZST": "NZST", "ECT": "ECT", "ARST": "ARST", "HEEG": "HEEG", "HENOMX": "HENOMX", "HEPM": "HEPM", "WAST": "WAST", "CLT": "CLT", "SGT": "SGT", "HKT": "HKT", "WARST": "WARST", "GYT": "GYT", "JDT": "JDT", "IST": "IST", "HNPMX": "HNPMX", "AKDT": "AKDT", "COT": "COT", "MEZ": "gaska-Eurohpá dábálašáigi", "ACST": "ACST", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "ADT": "ADT", "CAT": "CAT", "AWST": "AWST", "LHDT": "LHDT", "AKST": "AKST", "HEOG": "HEOG", "GFT": "GFT", "MST": "MST", "MYT": "MYT", "AEST": "AEST", "CHADT": "CHADT", "HNCU": "HNCU", "WAT": "WAT", "OESZ": "nuorti-Eurohpá geassiáigi", "SRT": "SRT", "LHST": "LHST", "SAST": "SAST", "EST": "EST"},
+ }
+ }
+ 
+diff --git a/se_FI/se_FI.go b/se_FI/se_FI.go
+index dda7e19..fbeca50 100644
+--- a/se_FI/se_FI.go
++++ b/se_FI/se_FI.go
+@@ -10,70 +10,47 @@ import (
+ )
+ 
+ type se_FI struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'se_FI' locale
+ func New() locales.Translator {
+ return &se_FI{
+- locale: "se_FI",
+- pluralsCardinal: []locales.PluralRule{2, 3, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ođđj", "guov", "njuk", "cuo", "mies", "geas", "suoi", "borg", "čakč", "golg", "skáb", "juov"},
+- monthsNarrow: []string{"", "O", "G", "N", "C", "M", "G", "S", "B", "Č", "G", "S", "J"},
+- monthsWide: []string{"", "ođđajagemánnu", "guovvamánnu", "njukčamánnu", "cuoŋománnu", "miessemánnu", "geassemánnu", "suoidnemánnu", "borgemánnu", "čakčamánnu", "golggotmánnu", "skábmamánnu", "juovlamánnu"},
+- daysAbbreviated: []string{"sotn", "vuos", "maŋ", "gask", "duor", "bear", "láv"},
+- daysNarrow: []string{"S", "M", "D", "G", "D", "B", "L"},
+- daysShort: []string{"sotn", "vuos", "maŋ", "gask", "duor", "bear", "láv"},
+- daysWide: []string{"sotnabeaivi", "vuossárgga", "maŋŋebárgga", "gaskavahku", "duorastaga", "bearjadaga", "lávvardaga"},
+- periodsAbbreviated: []string{"i.b.", "e.b."},
+- periodsNarrow: []string{"i.b.", "e.b."},
+- periodsWide: []string{"iđitbeaivet", "eahketbeaivet"},
+- erasAbbreviated: []string{"o.Kr.", "m.Kr."},
+- erasNarrow: []string{"ooá", "oá"},
+- erasWide: []string{"ovdal Kristtusa", "maŋŋel Kristtusa"},
+- timezones: map[string]string{"HNPMX": "HNPMX", "HADT": "HADT", "BOT": "BOT", "ACDT": "ACDT", "GYT": "GYT", "CLT": "CLT", "CDT": "CDT", "CAT": "CAT", "HAT": "HAT", "TMT": "TMT", "WART": "WART", "AKDT": "AKDT", "HNOG": "HNOG", "AEST": "AEST", "CHAST": "CHAST", "UYST": "UYST", "HAST": "HAST", "PDT": "PDT", "LHDT": "LHDT", "HEEG": "HEEG", "CLST": "CLST", "ACST": "ACST", "WAST": "WAST", "HEPMX": "HEPMX", "NZST": "NZST", "CHADT": "CHADT", "HNEG": "HNEG", "EAT": "EAT", "HENOMX": "HENOMX", "HNCU": "HNCU", "EDT": "EDT", "WESZ": "oarje-Eurohpá geassiáigi", "HKST": "HKST", "JDT": "JDT", "ACWDT": "ACWDT", "WIB": "WIB", "AEDT": "AEDT", "WARST": "WARST", "JST": "JST", "TMST": "TMST", "COT": "COT", "EST": "EST", "MYT": "MYT", "VET": "VET", "LHST": "LHST", "NZDT": "NZDT", "SAST": "SAST", "WAT": "WAT", "HECU": "HECU", "AST": "AST", "SRT": "SRT", "PST": "PST", "AWST": "AWST", "MESZ": "gaska-Eurohpá geassiáigi", "OESZ": "nuorti-Eurohpá geassiáigi", "ECT": "ECT", "COST": "COST", "MDT": "MDT", "BT": "BT", "WEZ": "oarje-Eurohpá dábálašáigi", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "ART": "ART", "MST": "MST", "UYT": "UYT", "AKST": "AKST", "CST": "CST", "HNPM": "HNPM", "HNNOMX": "HNNOMX", "GFT": "GFT", "WIT": "WIT", "WITA": "WITA", "IST": "IST", "SGT": "SGT", "ACWST": "ACWST", "HNT": "HNT", "MEZ": "gaska-Eurohpá dábálašáigi", "GMT": "Greenwich gaskka áigi", "ChST": "ChST", "OEZ": "nuorti-Eurohpá dábálašáigi", "ADT": "ADT", "HKT": "HKT", "HEPM": "HEPM", "ARST": "ARST", "HEOG": "HEOG"},
++ locale: "se_FI",
++ pluralsCardinal: []locales.PluralRule{2, 3, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ daysNarrow: []string{"S", "M", "D", "G", "D", "B", "L"},
++ daysWide: []string{"sotnabeaivi", "vuossárgga", "maŋŋebárgga", "gaskavahku", "duorastaga", "bearjadaga", "lávvardaga"},
++ timezones: map[string]string{"WITA": "WITA", "GMT": "GMT", "SRT": "SRT", "HNEG": "HNEG", "HECU": "HECU", "OEZ": "OEZ", "HNT": "HNT", "HKT": "HKT", "ECT": "ECT", "MESZ": "MESZ", "AWDT": "AWDT", "SGT": "SGT", "AKDT": "AKDT", "WART": "WART", "SAST": "SAST", "CAT": "CAT", "ACDT": "ACDT", "BT": "BT", "HNCU": "HNCU", "AKST": "AKST", "WIT": "WIT", "EST": "EST", "ART": "ART", "ARST": "ARST", "EAT": "EAT", "HADT": "HADT", "HENOMX": "HENOMX", "HNPM": "HNPM", "UYT": "UYT", "PST": "PST", "WEZ": "WEZ", "WAST": "WAST", "HNOG": "HNOG", "JST": "JST", "JDT": "JDT", "WAT": "WAT", "COT": "COT", "MEZ": "MEZ", "LHST": "LHST", "IST": "IST", "GYT": "GYT", "COST": "COST", "VET": "VET", "HKST": "HKST", "CLST": "CLST", "NZDT": "NZDT", "AST": "AST", "ChST": "ChST", "ACST": "ACST", "HNNOMX": "HNNOMX", "AWST": "AWST", "LHDT": "LHDT", "AEST": "AEST", "AEDT": "AEDT", "HEPMX": "HEPMX", "OESZ": "OESZ", "EDT": "EDT", "CHADT": "CHADT", "HAT": "HAT", "WIB": "WIB", "HEEG": "HEEG", "MYT": "MYT", "WESZ": "WESZ", "CST": "CST", "TMT": "TMT", "MST": "MST", "HNPMX": "HNPMX", "CDT": "CDT", "CHAST": "CHAST", "CLT": "CLT", "HEPM": "HEPM", "ACWST": "ACWST", "WARST": "WARST", "HEOG": "HEOG", "TMST": "TMST", "ADT": "ADT", "UYST": "UYST", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "MDT": "MDT", "NZST": "NZST", "BOT": "BOT", "HAST": "HAST", "PDT": "PDT", "GFT": "GFT"},
+ }
+ }
+ 
+@@ -128,7 +105,7 @@ func (se *se_FI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (se *se_FI) MonthsAbbreviated() []string {
+- return se.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -138,7 +115,7 @@ func (se *se_FI) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (se *se_FI) MonthsNarrow() []string {
+- return se.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -148,7 +125,7 @@ func (se *se_FI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (se *se_FI) MonthsWide() []string {
+- return se.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -194,81 +171,13 @@ func (se *se_FI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'se_FI' and handles both Whole and Real numbers based on 'v'
+ func (se *se_FI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, se.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(se.group) - 1; j >= 0; j-- {
+- b = append(b, se.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(se.minus) - 1; j >= 0; j-- {
+- b = append(b, se.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'se_FI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (se *se_FI) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, se.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(se.minus) - 1; j >= 0; j-- {
+- b = append(b, se.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, se.percentSuffix...)
+-
+- b = append(b, se.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'se_FI'
+@@ -276,60 +185,7 @@ func (se *se_FI) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := se.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, se.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(se.group) - 1; j >= 0; j-- {
+- b = append(b, se.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(se.minus) - 1; j >= 0; j-- {
+- b = append(b, se.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, se.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, se.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'se_FI'
+@@ -338,67 +194,7 @@ func (se *se_FI) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := se.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, se.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(se.group) - 1; j >= 0; j-- {
+- b = append(b, se.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(se.minus) - 1; j >= 0; j-- {
+- b = append(b, se.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, se.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, se.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, se.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'se_FI'
+@@ -406,28 +202,6 @@ func (se *se_FI) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -436,17 +210,6 @@ func (se *se_FI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, se.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -455,17 +218,6 @@ func (se *se_FI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, se.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -474,19 +226,6 @@ func (se *se_FI) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, se.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, se.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -495,19 +234,6 @@ func (se *se_FI) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -516,26 +242,6 @@ func (se *se_FI) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -544,30 +250,6 @@ func (se *se_FI) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -576,34 +258,5 @@ func (se *se_FI) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := se.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/se_NO/se_NO.go b/se_NO/se_NO.go
+index ecadaa8..f6b3726 100644
+--- a/se_NO/se_NO.go
++++ b/se_NO/se_NO.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type se_NO struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'se_NO' locale
+ func New() locales.Translator {
+ return &se_NO{
+- locale: "se_NO",
+- pluralsCardinal: []locales.PluralRule{2, 3, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ođđj", "guov", "njuk", "cuo", "mies", "geas", "suoi", "borg", "čakč", "golg", "skáb", "juov"},
+- monthsNarrow: []string{"", "O", "G", "N", "C", "M", "G", "S", "B", "Č", "G", "S", "J"},
+- monthsWide: []string{"", "ođđajagemánnu", "guovvamánnu", "njukčamánnu", "cuoŋománnu", "miessemánnu", "geassemánnu", "suoidnemánnu", "borgemánnu", "čakčamánnu", "golggotmánnu", "skábmamánnu", "juovlamánnu"},
+- daysAbbreviated: []string{"sotn", "vuos", "maŋ", "gask", "duor", "bear", "láv"},
+- daysNarrow: []string{"S", "V", "M", "G", "D", "B", "L"},
+- daysShort: []string{"sotn", "vuos", "maŋ", "gask", "duor", "bear", "láv"},
+- daysWide: []string{"sotnabeaivi", "vuossárga", "maŋŋebárga", "gaskavahkku", "duorasdat", "bearjadat", "lávvardat"},
+- periodsAbbreviated: []string{"i.b.", "e.b."},
+- periodsNarrow: []string{"i.b.", "e.b."},
+- periodsWide: []string{"iđitbeaivet", "eahketbeaivet"},
+- erasAbbreviated: []string{"o.Kr.", "m.Kr."},
+- erasNarrow: []string{"ooá", "oá"},
+- erasWide: []string{"ovdal Kristtusa", "maŋŋel Kristtusa"},
+- timezones: map[string]string{"CDT": "CDT", "MEZ": "gaska-Eurohpá dábálašáigi", "TMT": "TMT", "ACST": "ACST", "SGT": "SGT", "HNCU": "HNCU", "COT": "COT", "HAST": "HAST", "HNOG": "HNOG", "LHDT": "LHDT", "CHADT": "CHADT", "WAT": "WAT", "EDT": "EDT", "CST": "CST", "WEZ": "oarje-Eurohpá dábálašáigi", "MYT": "MYT", "HNPM": "HNPM", "NZDT": "NZDT", "JST": "JST", "OEZ": "nuorti-Eurohpá dábálašáigi", "ECT": "ECT", "HECU": "HECU", "HNPMX": "HNPMX", "TMST": "TMST", "ACWST": "ACWST", "AWDT": "AWDT", "CHAST": "CHAST", "AST": "AST", "WESZ": "oarje-Eurohpá geassiáigi", "PST": "PST", "HKST": "HKST", "SRT": "SRT", "HNT": "HNT", "AWST": "AWST", "ACDT": "ACDT", "ADT": "ADT", "WIT": "WIT", "HADT": "HADT", "CLT": "CLT", "COST": "COST", "ACWDT": "ACWDT", "HAT": "HAT", "MESZ": "gaska-Eurohpá geassiáigi", "GMT": "Greenwich gaskka áigi", "CLST": "CLST", "PDT": "PDT", "WITA": "WITA", "NZST": "NZST", "BOT": "BOT", "HNEG": "HNEG", "WIB": "WIB", "VET": "VET", "HKT": "HKT", "AEST": "AEST", "ChST": "ChST", "WAST": "WAST", "CAT": "CAT", "ART": "ART", "UYST": "UYST", "HEOG": "HEOG", "JDT": "JDT", "EAT": "EAT", "WART": "WART", "AKST": "AKST", "AKDT": "AKDT", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "OESZ": "nuorti-Eurohpá geassiáigi", "MST": "MST", "MDT": "MDT", "ARST": "ARST", "AEDT": "AEDT", "HEPM": "HEPM", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "EST": "EST", "UYT": "UYT", "BT": "BT", "LHST": "LHST", "IST": "IST", "SAST": "SAST", "GFT": "GFT", "∅∅∅": "∅∅∅", "WARST": "WARST", "GYT": "GYT"},
++ locale: "se_NO",
++ pluralsCardinal: []locales.PluralRule{2, 3, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HKST": "HKST", "AWST": "AWST", "JST": "JST", "HAT": "HAT", "WIB": "WIB", "ChST": "ChST", "HADT": "HADT", "AEST": "AEST", "VET": "VET", "WAST": "WAST", "AKST": "AKST", "MDT": "MDT", "NZDT": "NZDT", "BOT": "BOT", "MYT": "MYT", "HNPMX": "HNPMX", "MST": "MST", "ACWDT": "ACWDT", "WART": "WART", "COT": "COT", "ARST": "ARST", "IST": "IST", "OEZ": "OEZ", "EDT": "EDT", "CAT": "CAT", "HNNOMX": "HNNOMX", "CDT": "CDT", "GMT": "GMT", "EAT": "EAT", "ACST": "ACST", "LHST": "LHST", "HEPMX": "HEPMX", "GYT": "GYT", "CST": "CST", "CLT": "CLT", "PST": "PST", "HNCU": "HNCU", "SAST": "SAST", "ADT": "ADT", "BT": "BT", "CLST": "CLST", "WITA": "WITA", "UYST": "UYST", "SRT": "SRT", "HENOMX": "HENOMX", "MEZ": "MEZ", "HNEG": "HNEG", "HEEG": "HEEG", "SGT": "SGT", "OESZ": "OESZ", "ECT": "ECT", "WIT": "WIT", "HEOG": "HEOG", "HKT": "HKT", "GFT": "GFT", "WAT": "WAT", "HNT": "HNT", "HNOG": "HNOG", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "PDT": "PDT", "WESZ": "WESZ", "AKDT": "AKDT", "EST": "EST", "TMT": "TMT", "AEDT": "AEDT", "HNPM": "HNPM", "LHDT": "LHDT", "UYT": "UYT", "WEZ": "WEZ", "TMST": "TMST", "AST": "AST", "ART": "ART", "MESZ": "MESZ", "ACDT": "ACDT", "HEPM": "HEPM", "WARST": "WARST", "NZST": "NZST", "CHADT": "CHADT", "HECU": "HECU", "HAST": "HAST", "ACWST": "ACWST", "CHAST": "CHAST", "COST": "COST", "JDT": "JDT"},
+ }
+ }
+ 
+@@ -128,7 +103,7 @@ func (se *se_NO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (se *se_NO) MonthsAbbreviated() []string {
+- return se.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -138,7 +113,7 @@ func (se *se_NO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (se *se_NO) MonthsNarrow() []string {
+- return se.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -148,7 +123,7 @@ func (se *se_NO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (se *se_NO) MonthsWide() []string {
+- return se.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -194,81 +169,13 @@ func (se *se_NO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'se_NO' and handles both Whole and Real numbers based on 'v'
+ func (se *se_NO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, se.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(se.group) - 1; j >= 0; j-- {
+- b = append(b, se.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(se.minus) - 1; j >= 0; j-- {
+- b = append(b, se.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'se_NO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (se *se_NO) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, se.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(se.minus) - 1; j >= 0; j-- {
+- b = append(b, se.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, se.percentSuffix...)
+-
+- b = append(b, se.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'se_NO'
+@@ -276,60 +183,7 @@ func (se *se_NO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := se.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, se.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(se.group) - 1; j >= 0; j-- {
+- b = append(b, se.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(se.minus) - 1; j >= 0; j-- {
+- b = append(b, se.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, se.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, se.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'se_NO'
+@@ -338,67 +192,7 @@ func (se *se_NO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := se.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, se.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(se.group) - 1; j >= 0; j-- {
+- b = append(b, se.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(se.minus) - 1; j >= 0; j-- {
+- b = append(b, se.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, se.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, se.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, se.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'se_NO'
+@@ -406,28 +200,6 @@ func (se *se_NO) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -436,17 +208,6 @@ func (se *se_NO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, se.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -455,17 +216,6 @@ func (se *se_NO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, se.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -474,19 +224,6 @@ func (se *se_NO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, se.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, se.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -495,19 +232,6 @@ func (se *se_NO) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -516,26 +240,6 @@ func (se *se_NO) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -544,30 +248,6 @@ func (se *se_NO) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -576,34 +256,5 @@ func (se *se_NO) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := se.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/se_SE/se_SE.go b/se_SE/se_SE.go
+index 600dbe6..d839357 100644
+--- a/se_SE/se_SE.go
++++ b/se_SE/se_SE.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type se_SE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'se_SE' locale
+ func New() locales.Translator {
+ return &se_SE{
+- locale: "se_SE",
+- pluralsCardinal: []locales.PluralRule{2, 3, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "Nkr", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "kr", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ođđj", "guov", "njuk", "cuo", "mies", "geas", "suoi", "borg", "čakč", "golg", "skáb", "juov"},
+- monthsNarrow: []string{"", "O", "G", "N", "C", "M", "G", "S", "B", "Č", "G", "S", "J"},
+- monthsWide: []string{"", "ođđajagemánnu", "guovvamánnu", "njukčamánnu", "cuoŋománnu", "miessemánnu", "geassemánnu", "suoidnemánnu", "borgemánnu", "čakčamánnu", "golggotmánnu", "skábmamánnu", "juovlamánnu"},
+- daysAbbreviated: []string{"sotn", "vuos", "maŋ", "gask", "duor", "bear", "láv"},
+- daysNarrow: []string{"S", "V", "M", "G", "D", "B", "L"},
+- daysShort: []string{"sotn", "vuos", "maŋ", "gask", "duor", "bear", "láv"},
+- daysWide: []string{"sotnabeaivi", "vuossárga", "maŋŋebárga", "gaskavahkku", "duorasdat", "bearjadat", "lávvardat"},
+- periodsAbbreviated: []string{"i.b.", "e.b."},
+- periodsNarrow: []string{"i.b.", "e.b."},
+- periodsWide: []string{"iđitbeaivet", "eahketbeaivet"},
+- erasAbbreviated: []string{"o.Kr.", "m.Kr."},
+- erasNarrow: []string{"ooá", "oá"},
+- erasWide: []string{"ovdal Kristtusa", "maŋŋel Kristtusa"},
+- timezones: map[string]string{"HECU": "HECU", "AKST": "AKST", "VET": "VET", "EAT": "EAT", "HEOG": "HEOG", "LHDT": "LHDT", "COST": "COST", "HNNOMX": "HNNOMX", "MYT": "MYT", "WESZ": "oarje-Eurohpá geassiáigi", "ART": "ART", "LHST": "LHST", "ChST": "ChST", "SRT": "SRT", "HNT": "HNT", "HEPM": "HEPM", "AEST": "AEST", "AEDT": "AEDT", "NZST": "NZST", "CHAST": "CHAST", "MEZ": "gaska-Eurohpá dábálašáigi", "CST": "CST", "HAST": "HAST", "HAT": "HAT", "CLST": "CLST", "OEZ": "nuorti-Eurohpá dábálašáigi", "UYST": "UYST", "WIB": "WIB", "BT": "BT", "AWST": "AWST", "AWDT": "AWDT", "WAST": "WAST", "OESZ": "nuorti-Eurohpá geassiáigi", "ECT": "ECT", "GYT": "GYT", "MST": "MST", "HADT": "HADT", "HENOMX": "HENOMX", "EST": "EST", "NZDT": "NZDT", "CHADT": "CHADT", "CLT": "CLT", "SGT": "SGT", "CDT": "CDT", "AST": "AST", "ADT": "ADT", "TMST": "TMST", "ACDT": "ACDT", "CAT": "CAT", "WEZ": "oarje-Eurohpá dábálašáigi", "IST": "IST", "JDT": "JDT", "EDT": "EDT", "HNPM": "HNPM", "GFT": "GFT", "WARST": "WARST", "HEPMX": "HEPMX", "UYT": "UYT", "PDT": "PDT", "SAST": "SAST", "WART": "WART", "WITA": "WITA", "JST": "JST", "BOT": "BOT", "TMT": "TMT", "ACST": "ACST", "WAT": "WAT", "COT": "COT", "AKDT": "AKDT", "HKT": "HKT", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "HNPMX": "HNPMX", "ACWDT": "ACWDT", "ARST": "ARST", "HKST": "HKST", "WIT": "WIT", "GMT": "Greenwich gaskka áigi", "MDT": "MDT", "ACWST": "ACWST", "HEEG": "HEEG", "HNCU": "HNCU", "HNOG": "HNOG", "PST": "PST", "MESZ": "gaska-Eurohpá geassiáigi"},
++ locale: "se_SE",
++ pluralsCardinal: []locales.PluralRule{2, 3, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "Nkr", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "kr", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AWST": "AWST", "ACWST": "ACWST", "GFT": "GFT", "EST": "EST", "HKST": "HKST", "TMST": "TMST", "HKT": "HKT", "AST": "AST", "ADT": "ADT", "SRT": "SRT", "AWDT": "AWDT", "WIT": "WIT", "WART": "WART", "OESZ": "OESZ", "BT": "BT", "AKDT": "AKDT", "ECT": "ECT", "HENOMX": "HENOMX", "JST": "JST", "PST": "PST", "HNOG": "HNOG", "NZDT": "NZDT", "HADT": "HADT", "ACWDT": "ACWDT", "HECU": "HECU", "HEPMX": "HEPMX", "WEZ": "WEZ", "COST": "COST", "ChST": "ChST", "GYT": "GYT", "NZST": "NZST", "MST": "MST", "MDT": "MDT", "ARST": "ARST", "HAST": "HAST", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "CHADT": "CHADT", "ACDT": "ACDT", "JDT": "JDT", "AEDT": "AEDT", "MEZ": "MEZ", "MYT": "MYT", "HNCU": "HNCU", "WITA": "WITA", "WAST": "WAST", "PDT": "PDT", "WESZ": "WESZ", "MESZ": "MESZ", "ACST": "ACST", "IST": "IST", "SGT": "SGT", "OEZ": "OEZ", "HAT": "HAT", "HEPM": "HEPM", "CLT": "CLT", "CDT": "CDT", "GMT": "GMT", "HEEG": "HEEG", "SAST": "SAST", "EDT": "EDT", "AEST": "AEST", "UYT": "UYT", "HNPM": "HNPM", "VET": "VET", "TMT": "TMT", "BOT": "BOT", "CST": "CST", "ART": "ART", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "UYST": "UYST", "COT": "COT", "CLST": "CLST", "AKST": "AKST", "HNPMX": "HNPMX", "WAT": "WAT", "WIB": "WIB", "EAT": "EAT", "HNT": "HNT", "CAT": "CAT", "CHAST": "CHAST", "WARST": "WARST", "LHST": "LHST"},
+ }
+ }
+ 
+@@ -128,7 +103,7 @@ func (se *se_SE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (se *se_SE) MonthsAbbreviated() []string {
+- return se.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -138,7 +113,7 @@ func (se *se_SE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (se *se_SE) MonthsNarrow() []string {
+- return se.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -148,7 +123,7 @@ func (se *se_SE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (se *se_SE) MonthsWide() []string {
+- return se.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -194,81 +169,13 @@ func (se *se_SE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'se_SE' and handles both Whole and Real numbers based on 'v'
+ func (se *se_SE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, se.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(se.group) - 1; j >= 0; j-- {
+- b = append(b, se.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(se.minus) - 1; j >= 0; j-- {
+- b = append(b, se.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'se_SE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (se *se_SE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, se.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(se.minus) - 1; j >= 0; j-- {
+- b = append(b, se.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, se.percentSuffix...)
+-
+- b = append(b, se.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'se_SE'
+@@ -276,60 +183,7 @@ func (se *se_SE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := se.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, se.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(se.group) - 1; j >= 0; j-- {
+- b = append(b, se.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(se.minus) - 1; j >= 0; j-- {
+- b = append(b, se.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, se.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, se.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'se_SE'
+@@ -338,67 +192,7 @@ func (se *se_SE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := se.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, se.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(se.group) - 1; j >= 0; j-- {
+- b = append(b, se.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(se.minus) - 1; j >= 0; j-- {
+- b = append(b, se.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, se.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, se.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, se.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'se_SE'
+@@ -406,28 +200,6 @@ func (se *se_SE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -436,17 +208,6 @@ func (se *se_SE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, se.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -455,17 +216,6 @@ func (se *se_SE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, se.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -474,19 +224,6 @@ func (se *se_SE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, se.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, se.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -495,19 +232,6 @@ func (se *se_SE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -516,26 +240,6 @@ func (se *se_SE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -544,30 +248,6 @@ func (se *se_SE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -576,34 +256,5 @@ func (se *se_SE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, se.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := se.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/seh/seh.go b/seh/seh.go
+index aac213f..e01958a 100644
+--- a/seh/seh.go
++++ b/seh/seh.go
+@@ -59,7 +59,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"AC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Antes de Cristo", "Anno Domini"},
+- timezones: map[string]string{"JDT": "JDT", "HNEG": "HNEG", "ECT": "ECT", "WIT": "WIT", "BT": "BT", "ACWST": "ACWST", "COT": "COT", "HEPMX": "HEPMX", "HAT": "HAT", "AEST": "AEST", "UYT": "UYT", "MESZ": "MESZ", "NZDT": "NZDT", "ChST": "ChST", "ACST": "ACST", "HNCU": "HNCU", "MDT": "MDT", "AKDT": "AKDT", "GYT": "GYT", "COST": "COST", "CST": "CST", "UYST": "UYST", "HADT": "HADT", "WESZ": "WESZ", "HNOG": "HNOG", "LHST": "LHST", "LHDT": "LHDT", "BOT": "BOT", "MST": "MST", "ACWDT": "ACWDT", "AWDT": "AWDT", "HKT": "HKT", "HNPM": "HNPM", "NZST": "NZST", "WARST": "WARST", "AKST": "AKST", "WEZ": "WEZ", "SAST": "SAST", "GFT": "GFT", "TMT": "TMT", "WAST": "WAST", "OEZ": "OEZ", "WIB": "WIB", "HEOG": "HEOG", "HKST": "HKST", "JST": "JST", "EAT": "EAT", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "ADT": "ADT", "HAST": "HAST", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "EST": "EST", "TMST": "TMST", "SGT": "SGT", "EDT": "EDT", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "HECU": "HECU", "VET": "VET", "ART": "ART", "CLST": "CLST", "AEDT": "AEDT", "AWST": "AWST", "WITA": "WITA", "HEPM": "HEPM", "CLT": "CLT", "HEEG": "HEEG", "OESZ": "OESZ", "WART": "WART", "PDT": "PDT", "ARST": "ARST", "MEZ": "MEZ", "IST": "IST", "GMT": "GMT", "CDT": "CDT", "AST": "AST", "MYT": "MYT", "HNT": "HNT", "CAT": "CAT", "WAT": "WAT", "SRT": "SRT", "PST": "PST", "CHADT": "CHADT"},
++ timezones: map[string]string{"EST": "EST", "CAT": "CAT", "CLST": "CLST", "HEPM": "HEPM", "NZST": "NZST", "GMT": "GMT", "JST": "JST", "GFT": "GFT", "NZDT": "NZDT", "AWST": "AWST", "ACWDT": "ACWDT", "HNCU": "HNCU", "OESZ": "OESZ", "ECT": "ECT", "AKDT": "AKDT", "HNT": "HNT", "MEZ": "MEZ", "LHDT": "LHDT", "UYT": "UYT", "EAT": "EAT", "HNPM": "HNPM", "AKST": "AKST", "OEZ": "OEZ", "HEOG": "HEOG", "WITA": "WITA", "AST": "AST", "ChST": "ChST", "WIB": "WIB", "CST": "CST", "MST": "MST", "HEEG": "HEEG", "PST": "PST", "WESZ": "WESZ", "LHST": "LHST", "CHAST": "CHAST", "HNOG": "HNOG", "SAST": "SAST", "HKT": "HKT", "CLT": "CLT", "ADT": "ADT", "JDT": "JDT", "TMST": "TMST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HNEG": "HNEG", "WEZ": "WEZ", "HNPMX": "HNPMX", "HAT": "HAT", "WART": "WART", "HKST": "HKST", "CDT": "CDT", "CHADT": "CHADT", "UYST": "UYST", "AEST": "AEST", "AEDT": "AEDT", "WIT": "WIT", "ART": "ART", "ARST": "ARST", "SRT": "SRT", "HADT": "HADT", "AWDT": "AWDT", "IST": "IST", "VET": "VET", "SGT": "SGT", "WAT": "WAT", "WAST": "WAST", "COT": "COT", "TMT": "TMT", "ACST": "ACST", "BT": "BT", "GYT": "GYT", "BOT": "BOT", "ACDT": "ACDT", "MYT": "MYT", "WARST": "WARST", "ACWST": "ACWST", "PDT": "PDT", "HECU": "HECU", "∅∅∅": "∅∅∅", "COST": "COST", "EDT": "EDT", "HAST": "HAST", "MESZ": "MESZ", "MDT": "MDT", "HEPMX": "HEPMX"},
+ }
+ }
+ 
+diff --git a/seh_MZ/seh_MZ.go b/seh_MZ/seh_MZ.go
+index 051da38..4538334 100644
+--- a/seh_MZ/seh_MZ.go
++++ b/seh_MZ/seh_MZ.go
+@@ -42,24 +42,13 @@ type seh_MZ struct {
+ // New returns a new instance of translator for the 'seh_MZ' locale
+ func New() locales.Translator {
+ return &seh_MZ{
+- locale: "seh_MZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Aug", "Set", "Otu", "Nov", "Dec"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Janeiro", "Fevreiro", "Marco", "Abril", "Maio", "Junho", "Julho", "Augusto", "Setembro", "Otubro", "Novembro", "Decembro"},
+- daysAbbreviated: []string{"Dim", "Pos", "Pir", "Tat", "Nai", "Sha", "Sab"},
+- daysNarrow: []string{"D", "P", "C", "T", "N", "S", "S"},
+- daysWide: []string{"Dimingu", "Chiposi", "Chipiri", "Chitatu", "Chinai", "Chishanu", "Sabudu"},
+- erasAbbreviated: []string{"AC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Antes de Cristo", "Anno Domini"},
+- timezones: map[string]string{"WITA": "WITA", "MST": "MST", "VET": "VET", "ACWDT": "ACWDT", "HNPM": "HNPM", "ACST": "ACST", "HNNOMX": "HNNOMX", "HECU": "HECU", "UYST": "UYST", "ART": "ART", "JST": "JST", "ACDT": "ACDT", "OESZ": "OESZ", "GMT": "GMT", "EST": "EST", "HEPMX": "HEPMX", "AWDT": "AWDT", "WAST": "WAST", "SGT": "SGT", "HAST": "HAST", "HAT": "HAT", "PST": "PST", "WIT": "WIT", "HKT": "HKT", "CHADT": "CHADT", "MESZ": "MESZ", "HNPMX": "HNPMX", "CST": "CST", "CDT": "CDT", "CLT": "CLT", "HNOG": "HNOG", "PDT": "PDT", "ACWST": "ACWST", "HEPM": "HEPM", "CHAST": "CHAST", "NZST": "NZST", "WESZ": "WESZ", "AEDT": "AEDT", "∅∅∅": "∅∅∅", "ADT": "ADT", "AKST": "AKST", "LHDT": "LHDT", "SAST": "SAST", "COST": "COST", "SRT": "SRT", "HNT": "HNT", "NZDT": "NZDT", "CLST": "CLST", "AKDT": "AKDT", "ARST": "ARST", "UYT": "UYT", "BT": "BT", "AEST": "AEST", "HNEG": "HNEG", "CAT": "CAT", "WARST": "WARST", "COT": "COT", "MYT": "MYT", "WEZ": "WEZ", "AWST": "AWST", "LHST": "LHST", "IST": "IST", "ECT": "ECT", "HENOMX": "HENOMX", "WIB": "WIB", "HKST": "HKST", "GFT": "GFT", "ChST": "ChST", "MDT": "MDT", "AST": "AST", "TMST": "TMST", "BOT": "BOT", "EDT": "EDT", "GYT": "GYT", "JDT": "JDT", "OEZ": "OEZ", "HNCU": "HNCU", "HEOG": "HEOG", "HADT": "HADT", "MEZ": "MEZ", "TMT": "TMT", "HEEG": "HEEG", "EAT": "EAT", "WAT": "WAT", "WART": "WART"},
++ locale: "seh_MZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACWST": "ACWST", "HNEG": "HNEG", "UYST": "UYST", "CHAST": "CHAST", "WESZ": "WESZ", "CLST": "CLST", "ARST": "ARST", "EAT": "EAT", "HAST": "HAST", "HKST": "HKST", "LHST": "LHST", "HEPM": "HEPM", "WIB": "WIB", "CHADT": "CHADT", "WEZ": "WEZ", "HNCU": "HNCU", "WIT": "WIT", "COT": "COT", "CLT": "CLT", "NZDT": "NZDT", "OESZ": "OESZ", "HNT": "HNT", "HNNOMX": "HNNOMX", "JDT": "JDT", "HNPMX": "HNPMX", "ADT": "ADT", "HNPM": "HNPM", "GFT": "GFT", "ACDT": "ACDT", "HENOMX": "HENOMX", "AEST": "AEST", "WAT": "WAT", "WARST": "WARST", "GYT": "GYT", "HEOG": "HEOG", "EDT": "EDT", "AKDT": "AKDT", "SAST": "SAST", "MEZ": "MEZ", "JST": "JST", "VET": "VET", "HAT": "HAT", "MDT": "MDT", "HADT": "HADT", "∅∅∅": "∅∅∅", "EST": "EST", "TMT": "TMT", "NZST": "NZST", "PDT": "PDT", "ACWDT": "ACWDT", "AEDT": "AEDT", "WITA": "WITA", "CST": "CST", "ECT": "ECT", "IST": "IST", "MYT": "MYT", "UYT": "UYT", "PST": "PST", "HECU": "HECU", "WART": "WART", "HNOG": "HNOG", "SRT": "SRT", "AWST": "AWST", "WAST": "WAST", "MST": "MST", "AST": "AST", "ART": "ART", "BOT": "BOT", "COST": "COST", "TMST": "TMST", "CAT": "CAT", "CDT": "CDT", "HEPMX": "HEPMX", "GMT": "GMT", "ChST": "ChST", "ACST": "ACST", "BT": "BT", "MESZ": "MESZ", "AWDT": "AWDT", "SGT": "SGT", "OEZ": "OEZ", "HKT": "HKT", "HEEG": "HEEG", "LHDT": "LHDT", "AKST": "AKST"},
+ }
+ }
+ 
+@@ -112,7 +101,7 @@ func (seh *seh_MZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (seh *seh_MZ) MonthsAbbreviated() []string {
+- return seh.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -122,7 +111,7 @@ func (seh *seh_MZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (seh *seh_MZ) MonthsNarrow() []string {
+- return seh.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -132,7 +121,7 @@ func (seh *seh_MZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (seh *seh_MZ) MonthsWide() []string {
+- return seh.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,54 +181,7 @@ func (seh *seh_MZ) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := seh.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, seh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, seh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, seh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, seh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'seh_MZ'
+@@ -248,61 +190,7 @@ func (seh *seh_MZ) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := seh.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, seh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, seh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, seh.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, seh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'seh_MZ'
+@@ -310,17 +198,6 @@ func (seh *seh_MZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -329,19 +206,6 @@ func (seh *seh_MZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, seh.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -350,19 +214,6 @@ func (seh *seh_MZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, seh.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -371,21 +222,6 @@ func (seh *seh_MZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, seh.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+- b = append(b, seh.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0x64, 0x65}...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -394,19 +230,6 @@ func (seh *seh_MZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, seh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -415,26 +238,6 @@ func (seh *seh_MZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, seh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, seh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -443,30 +246,6 @@ func (seh *seh_MZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, seh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, seh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -475,34 +254,5 @@ func (seh *seh_MZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, seh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, seh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := seh.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ses/ses.go b/ses/ses.go
+index 2542204..9035096 100644
+--- a/ses/ses.go
++++ b/ses/ses.go
+@@ -60,7 +60,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"IJ", "IZ"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Isaa jine", "Isaa zamanoo"},
+- timezones: map[string]string{"NZST": "NZST", "JST": "JST", "WAST": "WAST", "WIB": "WIB", "ART": "ART", "LHDT": "LHDT", "ACST": "ACST", "EAT": "EAT", "WART": "WART", "GMT": "GMT", "CDT": "CDT", "HNOG": "HNOG", "SAST": "SAST", "HNPMX": "HNPMX", "AST": "AST", "GYT": "GYT", "HEPMX": "HEPMX", "HAT": "HAT", "LHST": "LHST", "JDT": "JDT", "GFT": "GFT", "TMT": "TMT", "WARST": "WARST", "EST": "EST", "AWST": "AWST", "CHAST": "CHAST", "BOT": "BOT", "MEZ": "MEZ", "CLT": "CLT", "HNCU": "HNCU", "CST": "CST", "∅∅∅": "∅∅∅", "SGT": "SGT", "AKST": "AKST", "AKDT": "AKDT", "ADT": "ADT", "AEST": "AEST", "ChST": "ChST", "COT": "COT", "HEOG": "HEOG", "AEDT": "AEDT", "HKST": "HKST", "MESZ": "MESZ", "MYT": "MYT", "WIT": "WIT", "HNEG": "HNEG", "BT": "BT", "HNT": "HNT", "HEPM": "HEPM", "NZDT": "NZDT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "UYST": "UYST", "PDT": "PDT", "WITA": "WITA", "WESZ": "WESZ", "ARST": "ARST", "ECT": "ECT", "COST": "COST", "HECU": "HECU", "MDT": "MDT", "HADT": "HADT", "WEZ": "WEZ", "PST": "PST", "CHADT": "CHADT", "CLST": "CLST", "ACDT": "ACDT", "OEZ": "OEZ", "OESZ": "OESZ", "MST": "MST", "CAT": "CAT", "UYT": "UYT", "SRT": "SRT", "AWDT": "AWDT", "HKT": "HKT", "HNPM": "HNPM", "IST": "IST", "WAT": "WAT", "HENOMX": "HENOMX", "EDT": "EDT", "VET": "VET", "ACWST": "ACWST", "TMST": "TMST", "HAST": "HAST", "ACWDT": "ACWDT"},
++ timezones: map[string]string{"WITA": "WITA", "NZDT": "NZDT", "WIB": "WIB", "HAST": "HAST", "LHDT": "LHDT", "TMST": "TMST", "CDT": "CDT", "BOT": "BOT", "AWDT": "AWDT", "VET": "VET", "GYT": "GYT", "CST": "CST", "ECT": "ECT", "HNNOMX": "HNNOMX", "ADT": "ADT", "SRT": "SRT", "HNPM": "HNPM", "CHADT": "CHADT", "HECU": "HECU", "WAST": "WAST", "HNOG": "HNOG", "HEPM": "HEPM", "UYST": "UYST", "TMT": "TMT", "MST": "MST", "NZST": "NZST", "HNEG": "HNEG", "HEEG": "HEEG", "JST": "JST", "WARST": "WARST", "CAT": "CAT", "ARST": "ARST", "MEZ": "MEZ", "ACST": "ACST", "AKDT": "AKDT", "WART": "WART", "EDT": "EDT", "HADT": "HADT", "AKST": "AKST", "HENOMX": "HENOMX", "WESZ": "WESZ", "HNT": "HNT", "MYT": "MYT", "BT": "BT", "CHAST": "CHAST", "HNCU": "HNCU", "WAT": "WAT", "SAST": "SAST", "AWST": "AWST", "LHST": "LHST", "AEST": "AEST", "HNPMX": "HNPMX", "CLT": "CLT", "AEDT": "AEDT", "COST": "COST", "EST": "EST", "JDT": "JDT", "PDT": "PDT", "HEPMX": "HEPMX", "HEOG": "HEOG", "HKT": "HKT", "ChST": "ChST", "ART": "ART", "ACDT": "ACDT", "IST": "IST", "ACWST": "ACWST", "CLST": "CLST", "GFT": "GFT", "AST": "AST", "GMT": "GMT", "ACWDT": "ACWDT", "UYT": "UYT", "∅∅∅": "∅∅∅", "SGT": "SGT", "OESZ": "OESZ", "HAT": "HAT", "COT": "COT", "HKST": "HKST", "MDT": "MDT", "EAT": "EAT", "MESZ": "MESZ", "PST": "PST", "WEZ": "WEZ", "OEZ": "OEZ", "WIT": "WIT"},
+ }
+ }
+ 
+diff --git a/ses_ML/ses_ML.go b/ses_ML/ses_ML.go
+index b73dddc..a82b828 100644
+--- a/ses_ML/ses_ML.go
++++ b/ses_ML/ses_ML.go
+@@ -42,25 +42,13 @@ type ses_ML struct {
+ // New returns a new instance of translator for the 'ses_ML' locale
+ func New() locales.Translator {
+ return &ses_ML{
+- locale: "ses_ML",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Žan", "Fee", "Mar", "Awi", "Me", "Žuw", "Žuy", "Ut", "Sek", "Okt", "Noo", "Dee"},
+- monthsNarrow: []string{"", "Ž", "F", "M", "A", "M", "Ž", "Ž", "U", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Žanwiye", "Feewiriye", "Marsi", "Awiril", "Me", "Žuweŋ", "Žuyye", "Ut", "Sektanbur", "Oktoobur", "Noowanbur", "Deesanbur"},
+- daysAbbreviated: []string{"Alh", "Ati", "Ata", "Ala", "Alm", "Alz", "Asi"},
+- daysNarrow: []string{"H", "T", "T", "L", "L", "L", "S"},
+- daysWide: []string{"Alhadi", "Atinni", "Atalaata", "Alarba", "Alhamiisa", "Alzuma", "Asibti"},
+- periodsAbbreviated: []string{"Adduha", "Aluula"},
+- periodsWide: []string{"Adduha", "Aluula"},
+- erasAbbreviated: []string{"IJ", "IZ"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Isaa jine", "Isaa zamanoo"},
+- timezones: map[string]string{"MESZ": "MESZ", "TMT": "TMT", "HADT": "HADT", "NZST": "NZST", "JDT": "JDT", "BOT": "BOT", "WIT": "WIT", "WEZ": "WEZ", "WESZ": "WESZ", "HAT": "HAT", "HEPM": "HEPM", "HEEG": "HEEG", "HNPMX": "HNPMX", "WIB": "WIB", "HNT": "HNT", "MEZ": "MEZ", "IST": "IST", "JST": "JST", "ChST": "ChST", "ECT": "ECT", "GMT": "GMT", "HNCU": "HNCU", "MDT": "MDT", "UYST": "UYST", "AST": "AST", "HAST": "HAST", "AWDT": "AWDT", "LHST": "LHST", "CHADT": "CHADT", "SAST": "SAST", "WAST": "WAST", "HECU": "HECU", "PST": "PST", "ACWST": "ACWST", "WAT": "WAT", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "CDT": "CDT", "ADT": "ADT", "GYT": "GYT", "HEOG": "HEOG", "AWST": "AWST", "HKST": "HKST", "HNEG": "HNEG", "AKST": "AKST", "VET": "VET", "AEDT": "AEDT", "OESZ": "OESZ", "WART": "WART", "MYT": "MYT", "BT": "BT", "PDT": "PDT", "HNPM": "HNPM", "CAT": "CAT", "COT": "COT", "SRT": "SRT", "NZDT": "NZDT", "GFT": "GFT", "ACWDT": "ACWDT", "ARST": "ARST", "HNOG": "HNOG", "WITA": "WITA", "OEZ": "OEZ", "LHDT": "LHDT", "TMST": "TMST", "AKDT": "AKDT", "ART": "ART", "AEST": "AEST", "CLT": "CLT", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "EDT": "EDT", "HKT": "HKT", "WARST": "WARST", "MST": "MST", "EST": "EST", "CHAST": "CHAST", "CLST": "CLST", "∅∅∅": "∅∅∅", "ACST": "ACST", "EAT": "EAT", "COST": "COST", "SGT": "SGT", "UYT": "UYT", "CST": "CST"},
++ locale: "ses_ML",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HKT": "HKT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "COST": "COST", "TMST": "TMST", "CAT": "CAT", "CLST": "CLST", "ADT": "ADT", "EAT": "EAT", "PST": "PST", "HEPM": "HEPM", "ACWDT": "ACWDT", "VET": "VET", "HECU": "HECU", "COT": "COT", "MST": "MST", "SRT": "SRT", "HNEG": "HNEG", "WIB": "WIB", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "WITA": "WITA", "CHAST": "CHAST", "CHADT": "CHADT", "AST": "AST", "ChST": "ChST", "AEST": "AEST", "HADT": "HADT", "AWST": "AWST", "JDT": "JDT", "PDT": "PDT", "BT": "BT", "GMT": "GMT", "MDT": "MDT", "HAST": "HAST", "EDT": "EDT", "WARST": "WARST", "HKST": "HKST", "ECT": "ECT", "MEZ": "MEZ", "HEPMX": "HEPMX", "OEZ": "OEZ", "TMT": "TMT", "HNPM": "HNPM", "JST": "JST", "EST": "EST", "WESZ": "WESZ", "WAT": "WAT", "WIT": "WIT", "NZDT": "NZDT", "ARST": "ARST", "HEEG": "HEEG", "LHDT": "LHDT", "CDT": "CDT", "MYT": "MYT", "ACWST": "ACWST", "HEOG": "HEOG", "UYT": "UYT", "OESZ": "OESZ", "HAT": "HAT", "GYT": "GYT", "CST": "CST", "AEDT": "AEDT", "SGT": "SGT", "AKST": "AKST", "HNCU": "HNCU", "AKDT": "AKDT", "SAST": "SAST", "HNOG": "HNOG", "MESZ": "MESZ", "ACST": "ACST", "IST": "IST", "UYST": "UYST", "WART": "WART", "WEZ": "WEZ", "GFT": "GFT", "HNT": "HNT", "CLT": "CLT", "NZST": "NZST", "BOT": "BOT", "AWDT": "AWDT", "LHST": "LHST", "ART": "ART", "ACDT": "ACDT", "WAST": "WAST"},
+ }
+ }
+ 
+@@ -106,7 +94,7 @@ func (ses *ses_ML) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ses *ses_ML) MonthsAbbreviated() []string {
+- return ses.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -116,7 +104,7 @@ func (ses *ses_ML) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ses *ses_ML) MonthsNarrow() []string {
+- return ses.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -126,7 +114,7 @@ func (ses *ses_ML) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ses *ses_ML) MonthsWide() []string {
+- return ses.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -186,56 +174,7 @@ func (ses *ses_ML) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ses.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ses.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ses.group) - 1; j >= 0; j-- {
+- b = append(b, ses.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ses.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ses.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ses_ML'
+@@ -244,63 +183,7 @@ func (ses *ses_ML) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ses.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ses.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(ses.group) - 1; j >= 0; j-- {
+- b = append(b, ses.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, ses.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ses.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ses_ML'
+@@ -308,17 +191,6 @@ func (ses *ses_ML) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -327,17 +199,6 @@ func (ses *ses_ML) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ses.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -346,17 +207,6 @@ func (ses *ses_ML) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ses.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -365,19 +215,6 @@ func (ses *ses_ML) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ses.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ses.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -386,19 +223,6 @@ func (ses *ses_ML) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ses.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -407,26 +231,6 @@ func (ses *ses_ML) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ses.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ses.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -435,30 +239,6 @@ func (ses *ses_ML) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ses.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ses.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -467,34 +247,5 @@ func (ses *ses_ML) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, ses.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ses.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ses.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sg/sg.go b/sg/sg.go
+index 2d2b04b..18e57b2 100644
+--- a/sg/sg.go
++++ b/sg/sg.go
+@@ -61,7 +61,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"KnK", "NpK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kôzo na Krîstu", "Na pekô tî Krîstu"},
+- timezones: map[string]string{"UYT": "UYT", "WESZ": "WESZ", "IST": "IST", "CLT": "CLT", "OEZ": "OEZ", "HECU": "HECU", "WIT": "WIT", "AEDT": "AEDT", "AWST": "AWST", "MESZ": "MESZ", "HNCU": "HNCU", "HNPMX": "HNPMX", "PDT": "PDT", "LHST": "LHST", "JST": "JST", "EAT": "EAT", "∅∅∅": "∅∅∅", "HEOG": "HEOG", "WITA": "WITA", "HEPM": "HEPM", "NZDT": "NZDT", "GMT": "GMT", "HNOG": "HNOG", "SAST": "SAST", "OESZ": "OESZ", "WARST": "WARST", "MDT": "MDT", "HADT": "HADT", "ACWST": "ACWST", "WEZ": "WEZ", "HEEG": "HEEG", "PST": "PST", "NZST": "NZST", "BOT": "BOT", "ECT": "ECT", "HENOMX": "HENOMX", "EST": "EST", "GYT": "GYT", "HKST": "HKST", "HNEG": "HNEG", "TMT": "TMT", "ACST": "ACST", "CAT": "CAT", "CDT": "CDT", "AST": "AST", "ADT": "ADT", "MYT": "MYT", "HKT": "HKT", "TMST": "TMST", "ChST": "ChST", "WAST": "WAST", "MST": "MST", "UYST": "UYST", "ARST": "ARST", "HNPM": "HNPM", "LHDT": "LHDT", "WART": "WART", "COT": "COT", "WIB": "WIB", "HAST": "HAST", "COST": "COST", "GFT": "GFT", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "SRT": "SRT", "HNT": "HNT", "AEST": "AEST", "AWDT": "AWDT", "WAT": "WAT", "SGT": "SGT", "EDT": "EDT", "AKST": "AKST", "ART": "ART", "CHADT": "CHADT", "AKDT": "AKDT", "BT": "BT", "ACWDT": "ACWDT", "CLST": "CLST", "CST": "CST", "HAT": "HAT", "MEZ": "MEZ", "VET": "VET", "CHAST": "CHAST", "JDT": "JDT", "ACDT": "ACDT"},
++ timezones: map[string]string{"AEDT": "AEDT", "VET": "VET", "∅∅∅": "∅∅∅", "ACST": "ACST", "ECT": "ECT", "MESZ": "MESZ", "MYT": "MYT", "JST": "JST", "LHST": "LHST", "SGT": "SGT", "CAT": "CAT", "CLST": "CLST", "ADT": "ADT", "HNEG": "HNEG", "WIT": "WIT", "ChST": "ChST", "HNT": "HNT", "HADT": "HADT", "LHDT": "LHDT", "WEZ": "WEZ", "WAT": "WAT", "AKST": "AKST", "SRT": "SRT", "EAT": "EAT", "GYT": "GYT", "WITA": "WITA", "MST": "MST", "AST": "AST", "HENOMX": "HENOMX", "AWST": "AWST", "PDT": "PDT", "HEPMX": "HEPMX", "COST": "COST", "CLT": "CLT", "WARST": "WARST", "COT": "COT", "ART": "ART", "GMT": "GMT", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "WAST": "WAST", "AKDT": "AKDT", "UYT": "UYT", "OESZ": "OESZ", "CST": "CST", "AWDT": "AWDT", "AEST": "AEST", "EDT": "EDT", "NZDT": "NZDT", "WIB": "WIB", "CHADT": "CHADT", "HECU": "HECU", "HAT": "HAT", "TMST": "TMST", "EST": "EST", "NZST": "NZST", "ACDT": "ACDT", "HNPM": "HNPM", "BT": "BT", "CHAST": "CHAST", "WART": "WART", "HNOG": "HNOG", "ACWST": "ACWST", "WESZ": "WESZ", "HKST": "HKST", "MDT": "MDT", "HAST": "HAST", "UYST": "UYST", "HNCU": "HNCU", "HNPMX": "HNPMX", "OEZ": "OEZ", "GFT": "GFT", "TMT": "TMT", "CDT": "CDT", "BOT": "BOT", "HEEG": "HEEG", "MEZ": "MEZ", "JDT": "JDT", "IST": "IST", "PST": "PST", "SAST": "SAST", "ARST": "ARST", "HEPM": "HEPM", "HEOG": "HEOG", "HKT": "HKT"},
+ }
+ }
+ 
+diff --git a/sg_CF/sg_CF.go b/sg_CF/sg_CF.go
+index 3648394..ad8b56d 100644
+--- a/sg_CF/sg_CF.go
++++ b/sg_CF/sg_CF.go
+@@ -42,26 +42,13 @@ type sg_CF struct {
+ // New returns a new instance of translator for the 'sg_CF' locale
+ func New() locales.Translator {
+ return &sg_CF{
+- locale: "sg_CF",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: ".",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Nye", "Ful", "Mbä", "Ngu", "Bêl", "Fön", "Len", "Kük", "Mvu", "Ngb", "Nab", "Kak"},
+- monthsNarrow: []string{"", "N", "F", "M", "N", "B", "F", "L", "K", "M", "N", "N", "K"},
+- monthsWide: []string{"", "Nyenye", "Fulundïgi", "Mbängü", "Ngubùe", "Bêläwü", "Föndo", "Lengua", "Kükürü", "Mvuka", "Ngberere", "Nabändüru", "Kakauka"},
+- daysAbbreviated: []string{"Bk1", "Bk2", "Bk3", "Bk4", "Bk5", "Lâp", "Lây"},
+- daysNarrow: []string{"K", "S", "T", "S", "K", "P", "Y"},
+- daysWide: []string{"Bikua-ôko", "Bïkua-ûse", "Bïkua-ptâ", "Bïkua-usïö", "Bïkua-okü", "Lâpôsö", "Lâyenga"},
+- periodsAbbreviated: []string{"ND", "LK"},
+- periodsWide: []string{"ND", "LK"},
+- erasAbbreviated: []string{"KnK", "NpK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kôzo na Krîstu", "Na pekô tî Krîstu"},
+- timezones: map[string]string{"HKT": "HKT", "CLST": "CLST", "SGT": "SGT", "HNCU": "HNCU", "HAT": "HAT", "WIT": "WIT", "BT": "BT", "MESZ": "MESZ", "JST": "JST", "TMT": "TMT", "CST": "CST", "HNOG": "HNOG", "HEPM": "HEPM", "ACST": "ACST", "WIB": "WIB", "HAST": "HAST", "UYT": "UYT", "PDT": "PDT", "WITA": "WITA", "JDT": "JDT", "ECT": "ECT", "MST": "MST", "LHDT": "LHDT", "ARST": "ARST", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "AWDT": "AWDT", "NZDT": "NZDT", "IST": "IST", "∅∅∅": "∅∅∅", "HNT": "HNT", "HEOG": "HEOG", "SAST": "SAST", "CLT": "CLT", "WAT": "WAT", "CDT": "CDT", "WARST": "WARST", "EST": "EST", "UYST": "UYST", "HADT": "HADT", "HNEG": "HNEG", "EAT": "EAT", "CAT": "CAT", "WART": "WART", "WAST": "WAST", "OEZ": "OEZ", "GMT": "GMT", "AKST": "AKST", "AWST": "AWST", "CHAST": "CHAST", "CHADT": "CHADT", "GFT": "GFT", "VET": "VET", "WESZ": "WESZ", "HKST": "HKST", "COT": "COT", "HECU": "HECU", "WEZ": "WEZ", "HNPMX": "HNPMX", "EDT": "EDT", "ADT": "ADT", "ACDT": "ACDT", "OESZ": "OESZ", "COST": "COST", "MDT": "MDT", "AKDT": "AKDT", "MYT": "MYT", "SRT": "SRT", "ACWST": "ACWST", "BOT": "BOT", "TMST": "TMST", "ChST": "ChST", "HEPMX": "HEPMX", "PST": "PST", "HEEG": "HEEG", "AST": "AST", "AEDT": "AEDT", "HNPM": "HNPM", "LHST": "LHST", "NZST": "NZST", "ART": "ART", "AEST": "AEST", "MEZ": "MEZ", "HENOMX": "HENOMX", "GYT": "GYT"},
++ locale: "sg_CF",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNPM": "HNPM", "JDT": "JDT", "AWST": "AWST", "UYST": "UYST", "HNT": "HNT", "HNOG": "HNOG", "NZST": "NZST", "LHDT": "LHDT", "OESZ": "OESZ", "WIT": "WIT", "EST": "EST", "MDT": "MDT", "WART": "WART", "ART": "ART", "HAST": "HAST", "HECU": "HECU", "CDT": "CDT", "CHADT": "CHADT", "IST": "IST", "∅∅∅": "∅∅∅", "COST": "COST", "HKST": "HKST", "EDT": "EDT", "ECT": "ECT", "HENOMX": "HENOMX", "AKDT": "AKDT", "GFT": "GFT", "CLT": "CLT", "MST": "MST", "TMST": "TMST", "HEPM": "HEPM", "WAT": "WAT", "GMT": "GMT", "MEZ": "MEZ", "BT": "BT", "GYT": "GYT", "AEST": "AEST", "HEPMX": "HEPMX", "SAST": "SAST", "NZDT": "NZDT", "LHST": "LHST", "WEZ": "WEZ", "ACWDT": "ACWDT", "AEDT": "AEDT", "UYT": "UYT", "SGT": "SGT", "WARST": "WARST", "COT": "COT", "ADT": "ADT", "ACWST": "ACWST", "PST": "PST", "CHAST": "CHAST", "WAST": "WAST", "HAT": "HAT", "TMT": "TMT", "MESZ": "MESZ", "ARST": "ARST", "HADT": "HADT", "EAT": "EAT", "HEEG": "HEEG", "AKST": "AKST", "OEZ": "OEZ", "HEOG": "HEOG", "CST": "CST", "AWDT": "AWDT", "HNNOMX": "HNNOMX", "PDT": "PDT", "HNPMX": "HNPMX", "WESZ": "WESZ", "HKT": "HKT", "ChST": "ChST", "ACST": "ACST", "HNEG": "HNEG", "MYT": "MYT", "JST": "JST", "VET": "VET", "HNCU": "HNCU", "CLST": "CLST", "CAT": "CAT", "WIB": "WIB", "AST": "AST", "WITA": "WITA", "BOT": "BOT", "SRT": "SRT", "ACDT": "ACDT"},
+ }
+ }
+ 
+@@ -107,7 +94,7 @@ func (sg *sg_CF) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sg *sg_CF) MonthsAbbreviated() []string {
+- return sg.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -117,7 +104,7 @@ func (sg *sg_CF) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sg *sg_CF) MonthsNarrow() []string {
+- return sg.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -127,7 +114,7 @@ func (sg *sg_CF) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sg *sg_CF) MonthsWide() []string {
+- return sg.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -187,56 +174,7 @@ func (sg *sg_CF) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sg.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sg.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sg.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, sg.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sg.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sg_CF'
+@@ -245,64 +183,7 @@ func (sg *sg_CF) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sg.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sg.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sg.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, sg.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sg.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sg_CF'
+@@ -310,17 +191,6 @@ func (sg *sg_CF) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -329,17 +199,6 @@ func (sg *sg_CF) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sg.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -348,17 +207,6 @@ func (sg *sg_CF) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sg.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -367,19 +215,6 @@ func (sg *sg_CF) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sg.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sg.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -388,19 +223,6 @@ func (sg *sg_CF) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -409,26 +231,6 @@ func (sg *sg_CF) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -437,30 +239,6 @@ func (sg *sg_CF) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -469,34 +247,5 @@ func (sg *sg_CF) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sg.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sg.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sg.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/shi/shi.go b/shi/shi.go
+index f2c293b..dc4886a 100644
+--- a/shi/shi.go
++++ b/shi/shi.go
+@@ -60,7 +60,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ⴷⴰⵄ", "ⴷⴼⵄ"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"ⴷⴰⵜ ⵏ ⵄⵉⵙⴰ", "ⴷⴼⴼⵉⵔ ⵏ ⵄⵉⵙⴰ"},
+- timezones: map[string]string{"HEOG": "HEOG", "WITA": "WITA", "MESZ": "MESZ", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "GYT": "GYT", "SRT": "SRT", "TMT": "TMT", "COT": "COT", "AST": "AST", "HNOG": "HNOG", "ACWST": "ACWST", "JDT": "JDT", "CAT": "CAT", "MST": "MST", "WIB": "WIB", "PST": "PST", "AEDT": "AEDT", "HKT": "HKT", "HKST": "HKST", "LHST": "LHST", "WAT": "WAT", "AKDT": "AKDT", "HNCU": "HNCU", "HNPM": "HNPM", "NZDT": "NZDT", "TMST": "TMST", "WARST": "WARST", "AWST": "AWST", "MDT": "MDT", "ART": "ART", "IST": "IST", "EST": "EST", "HADT": "HADT", "CLT": "CLT", "BOT": "BOT", "HNPMX": "HNPMX", "PDT": "PDT", "HAT": "HAT", "AEST": "AEST", "AWDT": "AWDT", "HEPM": "HEPM", "NZST": "NZST", "∅∅∅": "∅∅∅", "HEPMX": "HEPMX", "EAT": "EAT", "HENOMX": "HENOMX", "ECT": "ECT", "ChST": "ChST", "OESZ": "OESZ", "EDT": "EDT", "HNEG": "HNEG", "HEEG": "HEEG", "WAST": "WAST", "ADT": "ADT", "UYST": "UYST", "CST": "CST", "CHAST": "CHAST", "ACST": "ACST", "OEZ": "OEZ", "WART": "WART", "MYT": "MYT", "CLST": "CLST", "ACWDT": "ACWDT", "CDT": "CDT", "WIT": "WIT", "ARST": "ARST", "HNT": "HNT", "MEZ": "MEZ", "HECU": "HECU", "AKST": "AKST", "BT": "BT", "COST": "COST", "SGT": "SGT", "VET": "VET", "WESZ": "WESZ", "GFT": "GFT", "GMT": "GMT", "WEZ": "WEZ", "HAST": "HAST", "LHDT": "LHDT", "CHADT": "CHADT", "SAST": "SAST", "JST": "JST", "UYT": "UYT"},
++ timezones: map[string]string{"JST": "JST", "BT": "BT", "ACWDT": "ACWDT", "UYST": "UYST", "HAT": "HAT", "GMT": "GMT", "HNNOMX": "HNNOMX", "WAST": "WAST", "OESZ": "OESZ", "HNOG": "HNOG", "CLST": "CLST", "HADT": "HADT", "LHDT": "LHDT", "MYT": "MYT", "AKDT": "AKDT", "WIT": "WIT", "HEOG": "HEOG", "EDT": "EDT", "SRT": "SRT", "IST": "IST", "AEDT": "AEDT", "MESZ": "MESZ", "PDT": "PDT", "WESZ": "WESZ", "HNT": "HNT", "HNCU": "HNCU", "WART": "WART", "EAT": "EAT", "HNPM": "HNPM", "HEPM": "HEPM", "ACWST": "ACWST", "CDT": "CDT", "AST": "AST", "LHST": "LHST", "OEZ": "OEZ", "HKST": "HKST", "HNEG": "HNEG", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "TMST": "TMST", "CAT": "CAT", "MDT": "MDT", "HKT": "HKT", "CST": "CST", "HAST": "HAST", "ACDT": "ACDT", "AWST": "AWST", "JDT": "JDT", "WEZ": "WEZ", "VET": "VET", "COST": "COST", "WIB": "WIB", "AEST": "AEST", "WITA": "WITA", "NZDT": "NZDT", "MEZ": "MEZ", "CHADT": "CHADT", "HEPMX": "HEPMX", "AKST": "AKST", "GFT": "GFT", "TMT": "TMT", "MST": "MST", "HECU": "HECU", "WAT": "WAT", "COT": "COT", "EST": "EST", "NZST": "NZST", "ART": "ART", "HEEG": "HEEG", "UYT": "UYT", "SGT": "SGT", "HNPMX": "HNPMX", "WARST": "WARST", "CLT": "CLT", "ADT": "ADT", "ACST": "ACST", "HENOMX": "HENOMX", "PST": "PST", "CHAST": "CHAST", "SAST": "SAST", "GYT": "GYT", "ECT": "ECT", "ChST": "ChST", "ARST": "ARST", "BOT": "BOT"},
+ }
+ }
+ 
+diff --git a/shi_Latn/shi_Latn.go b/shi_Latn/shi_Latn.go
+index 3432279..d2a9ecd 100644
+--- a/shi_Latn/shi_Latn.go
++++ b/shi_Latn/shi_Latn.go
+@@ -60,7 +60,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"daɛ", "dfɛ"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"dat n ɛisa", "dffir n ɛisa"},
+- timezones: map[string]string{"NZDT": "NZDT", "CLST": "CLST", "ChST": "ChST", "GYT": "GYT", "CAT": "CAT", "WART": "WART", "AWDT": "AWDT", "JST": "JST", "HNEG": "HNEG", "ACST": "ACST", "MDT": "MDT", "UYST": "UYST", "AKST": "AKST", "AST": "AST", "ADT": "ADT", "ACDT": "ACDT", "HECU": "HECU", "CST": "CST", "WIB": "WIB", "SRT": "SRT", "HAT": "HAT", "WITA": "WITA", "∅∅∅": "∅∅∅", "COT": "COT", "HNT": "HNT", "AWST": "AWST", "CHADT": "CHADT", "HEEG": "HEEG", "BT": "BT", "LHDT": "LHDT", "EDT": "EDT", "PST": "PST", "UYT": "UYT", "HADT": "HADT", "WIT": "WIT", "HEPM": "HEPM", "MESZ": "MESZ", "CHAST": "CHAST", "ECT": "ECT", "MST": "MST", "IST": "IST", "ARST": "ARST", "HKST": "HKST", "WAT": "WAT", "WARST": "WARST", "HNPMX": "HNPMX", "MYT": "MYT", "AEDT": "AEDT", "CLT": "CLT", "HENOMX": "HENOMX", "HNCU": "HNCU", "HNOG": "HNOG", "NZST": "NZST", "TMST": "TMST", "SGT": "SGT", "AEST": "AEST", "HKT": "HKT", "EST": "EST", "HEOG": "HEOG", "WAST": "WAST", "COST": "COST", "VET": "VET", "HNPM": "HNPM", "SAST": "SAST", "JDT": "JDT", "BOT": "BOT", "GFT": "GFT", "AKDT": "AKDT", "WEZ": "WEZ", "WESZ": "WESZ", "ART": "ART", "LHST": "LHST", "OESZ": "OESZ", "GMT": "GMT", "EAT": "EAT", "OEZ": "OEZ", "HEPMX": "HEPMX", "ACWST": "ACWST", "MEZ": "MEZ", "TMT": "TMT", "HNNOMX": "HNNOMX", "PDT": "PDT", "ACWDT": "ACWDT", "CDT": "CDT", "HAST": "HAST"},
++ timezones: map[string]string{"ACWST": "ACWST", "HECU": "HECU", "AKST": "AKST", "AKDT": "AKDT", "COST": "COST", "ChST": "ChST", "JST": "JST", "JDT": "JDT", "HEPMX": "HEPMX", "WITA": "WITA", "MST": "MST", "WIB": "WIB", "PST": "PST", "VET": "VET", "HAST": "HAST", "HEEG": "HEEG", "AWST": "AWST", "ACWDT": "ACWDT", "HNT": "HNT", "GYT": "GYT", "EAT": "EAT", "HENOMX": "HENOMX", "CHAST": "CHAST", "UYT": "UYT", "WARST": "WARST", "COT": "COT", "HEOG": "HEOG", "MEZ": "MEZ", "∅∅∅": "∅∅∅", "WEZ": "WEZ", "WAST": "WAST", "LHDT": "LHDT", "MYT": "MYT", "PDT": "PDT", "ACDT": "ACDT", "CST": "CST", "AEDT": "AEDT", "SGT": "SGT", "HNPMX": "HNPMX", "WART": "WART", "WIT": "WIT", "HNOG": "HNOG", "HKST": "HKST", "ACST": "ACST", "AWDT": "AWDT", "HEPM": "HEPM", "WAT": "WAT", "NZST": "NZST", "IST": "IST", "HNCU": "HNCU", "GFT": "GFT", "BOT": "BOT", "HADT": "HADT", "LHST": "LHST", "EST": "EST", "ARST": "ARST", "SRT": "SRT", "SAST": "SAST", "TMT": "TMT", "MDT": "MDT", "GMT": "GMT", "ART": "ART", "MESZ": "MESZ", "BT": "BT", "UYST": "UYST", "OEZ": "OEZ", "EDT": "EDT", "CLT": "CLT", "CLST": "CLST", "ADT": "ADT", "CHADT": "CHADT", "OESZ": "OESZ", "NZDT": "NZDT", "HNPM": "HNPM", "AEST": "AEST", "WESZ": "WESZ", "HAT": "HAT", "HKT": "HKT", "TMST": "TMST", "CDT": "CDT", "ECT": "ECT", "HNEG": "HNEG", "CAT": "CAT", "AST": "AST", "HNNOMX": "HNNOMX"},
+ }
+ }
+ 
+diff --git a/shi_Latn_MA/shi_Latn_MA.go b/shi_Latn_MA/shi_Latn_MA.go
+index a700ccd..b1ee035 100644
+--- a/shi_Latn_MA/shi_Latn_MA.go
++++ b/shi_Latn_MA/shi_Latn_MA.go
+@@ -42,25 +42,13 @@ type shi_Latn_MA struct {
+ // New returns a new instance of translator for the 'shi_Latn_MA' locale
+ func New() locales.Translator {
+ return &shi_Latn_MA{
+- locale: "shi_Latn_MA",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "ⵉⵏⵏ", "ⴱⵕⴰ", "ⵎⴰⵕ", "ⵉⴱⵔ", "ⵎⴰⵢ", "ⵢⵓⵏ", "ⵢⵓⵍ", "ⵖⵓⵛ", "ⵛⵓⵜ", "ⴽⵜⵓ", "ⵏⵓⵡ", "ⴷⵓⵊ"},
+- monthsNarrow: []string{"", "ⵉ", "ⴱ", "ⵎ", "ⵉ", "ⵎ", "ⵢ", "ⵢ", "ⵖ", "ⵛ", "ⴽ", "ⵏ", "ⴷ"},
+- monthsWide: []string{"", "ⵉⵏⵏⴰⵢⵔ", "ⴱⵕⴰⵢⵕ", "ⵎⴰⵕⵚ", "ⵉⴱⵔⵉⵔ", "ⵎⴰⵢⵢⵓ", "ⵢⵓⵏⵢⵓ", "ⵢⵓⵍⵢⵓⵣ", "ⵖⵓⵛⵜ", "ⵛⵓⵜⴰⵏⴱⵉⵔ", "ⴽⵜⵓⴱⵔ", "ⵏⵓⵡⴰⵏⴱⵉⵔ", "ⴷⵓⵊⴰⵏⴱⵉⵔ"},
+- daysAbbreviated: []string{"ⴰⵙⴰ", "ⴰⵢⵏ", "ⴰⵙⵉ", "ⴰⴽⵕ", "ⴰⴽⵡ", "ⴰⵙⵉⵎ", "ⴰⵙⵉⴹ"},
+- daysWide: []string{"ⴰⵙⴰⵎⴰⵙ", "ⴰⵢⵏⴰⵙ", "ⴰⵙⵉⵏⴰⵙ", "ⴰⴽⵕⴰⵙ", "ⴰⴽⵡⴰⵙ", "ⵙⵉⵎⵡⴰⵙ", "ⴰⵙⵉⴹⵢⴰⵙ"},
+- periodsAbbreviated: []string{"ⵜⵉⴼⴰⵡⵜ", "ⵜⴰⴷⴳⴳⵯⴰⵜ"},
+- periodsWide: []string{"ⵜⵉⴼⴰⵡⵜ", "ⵜⴰⴷⴳⴳⵯⴰⵜ"},
+- erasAbbreviated: []string{"ⴷⴰⵄ", "ⴷⴼⵄ"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ⴷⴰⵜ ⵏ ⵄⵉⵙⴰ", "ⴷⴼⴼⵉⵔ ⵏ ⵄⵉⵙⴰ"},
+- timezones: map[string]string{"CHAST": "CHAST", "SGT": "SGT", "OESZ": "OESZ", "GYT": "GYT", "HAT": "HAT", "ART": "ART", "CAT": "CAT", "WAT": "WAT", "HKT": "HKT", "NZDT": "NZDT", "MST": "MST", "AKDT": "AKDT", "MEZ": "MEZ", "NZST": "NZST", "HEPMX": "HEPMX", "WIT": "WIT", "IST": "IST", "HNEG": "HNEG", "EAT": "EAT", "WARST": "WARST", "WITA": "WITA", "LHST": "LHST", "WAST": "WAST", "EDT": "EDT", "HENOMX": "HENOMX", "BT": "BT", "SRT": "SRT", "HEPM": "HEPM", "MESZ": "MESZ", "LHDT": "LHDT", "COT": "COT", "CLST": "CLST", "JDT": "JDT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "PDT": "PDT", "AEST": "AEST", "CHADT": "CHADT", "SAST": "SAST", "CST": "CST", "HADT": "HADT", "HNPMX": "HNPMX", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "ChST": "ChST", "TMT": "TMT", "GMT": "GMT", "HECU": "HECU", "AEDT": "AEDT", "BOT": "BOT", "ACST": "ACST", "WART": "WART", "HNCU": "HNCU", "CDT": "CDT", "HEOG": "HEOG", "HNT": "HNT", "HKST": "HKST", "COST": "COST", "UYST": "UYST", "AKST": "AKST", "HAST": "HAST", "AWDT": "AWDT", "GFT": "GFT", "ECT": "ECT", "MDT": "MDT", "MYT": "MYT", "UYT": "UYT", "WEZ": "WEZ", "WESZ": "WESZ", "AWST": "AWST", "EST": "EST", "CLT": "CLT", "JST": "JST", "ACDT": "ACDT", "OEZ": "OEZ", "WIB": "WIB", "HNOG": "HNOG", "ARST": "ARST", "TMST": "TMST", "ADT": "ADT", "VET": "VET", "PST": "PST", "ACWST": "ACWST", "HNPM": "HNPM", "AST": "AST"},
++ locale: "shi_Latn_MA",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNEG": "HNEG", "CHAST": "CHAST", "CHADT": "CHADT", "WARST": "WARST", "COST": "COST", "HKT": "HKT", "ChST": "ChST", "ECT": "ECT", "HNNOMX": "HNNOMX", "ACST": "ACST", "ACDT": "ACDT", "WAST": "WAST", "AKST": "AKST", "COT": "COT", "CAT": "CAT", "UYST": "UYST", "VET": "VET", "PST": "PST", "HEPMX": "HEPMX", "WESZ": "WESZ", "SGT": "SGT", "CST": "CST", "ART": "ART", "ARST": "ARST", "MEZ": "MEZ", "WAT": "WAT", "HNPMX": "HNPMX", "HAT": "HAT", "CDT": "CDT", "ACWST": "ACWST", "AEDT": "AEDT", "NZST": "NZST", "BOT": "BOT", "MYT": "MYT", "HNCU": "HNCU", "ADT": "ADT", "JST": "JST", "IST": "IST", "AEST": "AEST", "HECU": "HECU", "WIT": "WIT", "HNT": "HNT", "HNOG": "HNOG", "HEEG": "HEEG", "HNPM": "HNPM", "ACWDT": "ACWDT", "UYT": "UYT", "OEZ": "OEZ", "SAST": "SAST", "CLT": "CLT", "GMT": "GMT", "TMST": "TMST", "HAST": "HAST", "HENOMX": "HENOMX", "WEZ": "WEZ", "WART": "WART", "GYT": "GYT", "EST": "EST", "WITA": "WITA", "SRT": "SRT", "EAT": "EAT", "HADT": "HADT", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "WIB": "WIB", "MST": "MST", "MDT": "MDT", "AST": "AST", "JDT": "JDT", "PDT": "PDT", "GFT": "GFT", "TMT": "TMT", "EDT": "EDT", "NZDT": "NZDT", "AKDT": "AKDT", "CLST": "CLST", "AWST": "AWST", "BT": "BT", "OESZ": "OESZ", "HEPM": "HEPM", "AWDT": "AWDT", "LHST": "LHST", "HEOG": "HEOG", "HKST": "HKST", "LHDT": "LHDT"},
+ }
+ }
+ 
+@@ -116,7 +104,7 @@ func (shi *shi_Latn_MA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (shi *shi_Latn_MA) MonthsAbbreviated() []string {
+- return shi.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -126,7 +114,7 @@ func (shi *shi_Latn_MA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (shi *shi_Latn_MA) MonthsNarrow() []string {
+- return shi.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -136,7 +124,7 @@ func (shi *shi_Latn_MA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (shi *shi_Latn_MA) MonthsWide() []string {
+- return shi.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -196,56 +184,7 @@ func (shi *shi_Latn_MA) FmtCurrency(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := shi.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, shi.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(shi.group) - 1; j >= 0; j-- {
+- b = append(b, shi.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, shi.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, shi.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'shi_Latn_MA'
+@@ -254,63 +193,7 @@ func (shi *shi_Latn_MA) FmtAccounting(num float64, v uint64, currency currency.T
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := shi.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, shi.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(shi.group) - 1; j >= 0; j-- {
+- b = append(b, shi.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, shi.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, shi.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'shi_Latn_MA'
+@@ -318,17 +201,6 @@ func (shi *shi_Latn_MA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -337,17 +209,6 @@ func (shi *shi_Latn_MA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, shi.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -356,17 +217,6 @@ func (shi *shi_Latn_MA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, shi.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -375,19 +225,6 @@ func (shi *shi_Latn_MA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, shi.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, shi.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/shi_Tfng/shi_Tfng.go b/shi_Tfng/shi_Tfng.go
+index 7267cb4..41ac9b4 100644
+--- a/shi_Tfng/shi_Tfng.go
++++ b/shi_Tfng/shi_Tfng.go
+@@ -42,25 +42,13 @@ type shi_Tfng struct {
+ // New returns a new instance of translator for the 'shi_Tfng' locale
+ func New() locales.Translator {
+ return &shi_Tfng{
+- locale: "shi_Tfng",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "ⵉⵏⵏ", "ⴱⵕⴰ", "ⵎⴰⵕ", "ⵉⴱⵔ", "ⵎⴰⵢ", "ⵢⵓⵏ", "ⵢⵓⵍ", "ⵖⵓⵛ", "ⵛⵓⵜ", "ⴽⵜⵓ", "ⵏⵓⵡ", "ⴷⵓⵊ"},
+- monthsNarrow: []string{"", "ⵉ", "ⴱ", "ⵎ", "ⵉ", "ⵎ", "ⵢ", "ⵢ", "ⵖ", "ⵛ", "ⴽ", "ⵏ", "ⴷ"},
+- monthsWide: []string{"", "ⵉⵏⵏⴰⵢⵔ", "ⴱⵕⴰⵢⵕ", "ⵎⴰⵕⵚ", "ⵉⴱⵔⵉⵔ", "ⵎⴰⵢⵢⵓ", "ⵢⵓⵏⵢⵓ", "ⵢⵓⵍⵢⵓⵣ", "ⵖⵓⵛⵜ", "ⵛⵓⵜⴰⵏⴱⵉⵔ", "ⴽⵜⵓⴱⵔ", "ⵏⵓⵡⴰⵏⴱⵉⵔ", "ⴷⵓⵊⴰⵏⴱⵉⵔ"},
+- daysAbbreviated: []string{"ⴰⵙⴰ", "ⴰⵢⵏ", "ⴰⵙⵉ", "ⴰⴽⵕ", "ⴰⴽⵡ", "ⴰⵙⵉⵎ", "ⴰⵙⵉⴹ"},
+- daysWide: []string{"ⴰⵙⴰⵎⴰⵙ", "ⴰⵢⵏⴰⵙ", "ⴰⵙⵉⵏⴰⵙ", "ⴰⴽⵕⴰⵙ", "ⴰⴽⵡⴰⵙ", "ⵙⵉⵎⵡⴰⵙ", "ⴰⵙⵉⴹⵢⴰⵙ"},
+- periodsAbbreviated: []string{"ⵜⵉⴼⴰⵡⵜ", "ⵜⴰⴷⴳⴳⵯⴰⵜ"},
+- periodsWide: []string{"ⵜⵉⴼⴰⵡⵜ", "ⵜⴰⴷⴳⴳⵯⴰⵜ"},
+- erasAbbreviated: []string{"ⴷⴰⵄ", "ⴷⴼⵄ"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ⴷⴰⵜ ⵏ ⵄⵉⵙⴰ", "ⴷⴼⴼⵉⵔ ⵏ ⵄⵉⵙⴰ"},
+- timezones: map[string]string{"PDT": "PDT", "HNT": "HNT", "WITA": "WITA", "CLST": "CLST", "CAT": "CAT", "SGT": "SGT", "HECU": "HECU", "VET": "VET", "NZST": "NZST", "JDT": "JDT", "WAT": "WAT", "HAT": "HAT", "JST": "JST", "TMST": "TMST", "EAT": "EAT", "ECT": "ECT", "WART": "WART", "WARST": "WARST", "GMT": "GMT", "SAST": "SAST", "OESZ": "OESZ", "EST": "EST", "UYST": "UYST", "PST": "PST", "SRT": "SRT", "ARST": "ARST", "CHAST": "CHAST", "IST": "IST", "BOT": "BOT", "CST": "CST", "MDT": "MDT", "MESZ": "MESZ", "GFT": "GFT", "ACDT": "ACDT", "HEPMX": "HEPMX", "AKDT": "AKDT", "MYT": "MYT", "ART": "ART", "NZDT": "NZDT", "MEZ": "MEZ", "ACST": "ACST", "OEZ": "OEZ", "EDT": "EDT", "HADT": "HADT", "ChST": "ChST", "HNEG": "HNEG", "ACWDT": "ACWDT", "ACWST": "ACWST", "AWST": "AWST", "HNPM": "HNPM", "CLT": "CLT", "HEEG": "HEEG", "TMT": "TMT", "HAST": "HAST", "HEOG": "HEOG", "AEST": "AEST", "AEDT": "AEDT", "LHST": "LHST", "WIB": "WIB", "CHADT": "CHADT", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "CDT": "CDT", "GYT": "GYT", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "WAST": "WAST", "COT": "COT", "COST": "COST", "HNNOMX": "HNNOMX", "BT": "BT", "WEZ": "WEZ", "WESZ": "WESZ", "AKST": "AKST", "ADT": "ADT", "MST": "MST", "HNOG": "HNOG", "HKT": "HKT", "HKST": "HKST", "HEPM": "HEPM", "LHDT": "LHDT", "HNCU": "HNCU", "UYT": "UYT", "WIT": "WIT", "AST": "AST"},
++ locale: "shi_Tfng",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ART": "ART", "AWDT": "AWDT", "COT": "COT", "CLT": "CLT", "EAT": "EAT", "UYT": "UYT", "HENOMX": "HENOMX", "HECU": "HECU", "WAT": "WAT", "AKDT": "AKDT", "EST": "EST", "PDT": "PDT", "HNT": "HNT", "WITA": "WITA", "NZDT": "NZDT", "GMT": "GMT", "LHDT": "LHDT", "MYT": "MYT", "JDT": "JDT", "SGT": "SGT", "AKST": "AKST", "HAT": "HAT", "MEZ": "MEZ", "MST": "MST", "MDT": "MDT", "NZST": "NZST", "ECT": "ECT", "BT": "BT", "OEZ": "OEZ", "OESZ": "OESZ", "GFT": "GFT", "COST": "COST", "HEOG": "HEOG", "HNPMX": "HNPMX", "WAST": "WAST", "WIT": "WIT", "HNOG": "HNOG", "HKT": "HKT", "HKST": "HKST", "ARST": "ARST", "ACST": "ACST", "AWST": "AWST", "JST": "JST", "WART": "WART", "WARST": "WARST", "SAST": "SAST", "TMST": "TMST", "CLST": "CLST", "SRT": "SRT", "HNNOMX": "HNNOMX", "PST": "PST", "CHADT": "CHADT", "EDT": "EDT", "ChST": "ChST", "LHST": "LHST", "CHAST": "CHAST", "HNCU": "HNCU", "∅∅∅": "∅∅∅", "CDT": "CDT", "WIB": "WIB", "BOT": "BOT", "ACDT": "ACDT", "HEEG": "HEEG", "IST": "IST", "ACWDT": "ACWDT", "WESZ": "WESZ", "HAST": "HAST", "MESZ": "MESZ", "HNEG": "HNEG", "HNPM": "HNPM", "UYST": "UYST", "WEZ": "WEZ", "HEPMX": "HEPMX", "CST": "CST", "HEPM": "HEPM", "VET": "VET", "CAT": "CAT", "HADT": "HADT", "ACWST": "ACWST", "AEST": "AEST", "AEDT": "AEDT", "GYT": "GYT", "TMT": "TMT", "AST": "AST", "ADT": "ADT"},
+ }
+ }
+ 
+@@ -116,7 +104,7 @@ func (shi *shi_Tfng) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (shi *shi_Tfng) MonthsAbbreviated() []string {
+- return shi.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -126,7 +114,7 @@ func (shi *shi_Tfng) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (shi *shi_Tfng) MonthsNarrow() []string {
+- return shi.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -136,7 +124,7 @@ func (shi *shi_Tfng) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (shi *shi_Tfng) MonthsWide() []string {
+- return shi.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -196,56 +184,7 @@ func (shi *shi_Tfng) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := shi.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, shi.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(shi.group) - 1; j >= 0; j-- {
+- b = append(b, shi.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, shi.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, shi.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'shi_Tfng'
+@@ -254,63 +193,7 @@ func (shi *shi_Tfng) FmtAccounting(num float64, v uint64, currency currency.Type
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := shi.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, shi.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(shi.group) - 1; j >= 0; j-- {
+- b = append(b, shi.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, shi.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, shi.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'shi_Tfng'
+@@ -318,17 +201,6 @@ func (shi *shi_Tfng) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -337,17 +209,6 @@ func (shi *shi_Tfng) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, shi.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -356,17 +217,6 @@ func (shi *shi_Tfng) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, shi.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -375,19 +225,6 @@ func (shi *shi_Tfng) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, shi.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, shi.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/shi_Tfng_MA/shi_Tfng_MA.go b/shi_Tfng_MA/shi_Tfng_MA.go
+index 67a879f..812730a 100644
+--- a/shi_Tfng_MA/shi_Tfng_MA.go
++++ b/shi_Tfng_MA/shi_Tfng_MA.go
+@@ -42,25 +42,13 @@ type shi_Tfng_MA struct {
+ // New returns a new instance of translator for the 'shi_Tfng_MA' locale
+ func New() locales.Translator {
+ return &shi_Tfng_MA{
+- locale: "shi_Tfng_MA",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "ⵉⵏⵏ", "ⴱⵕⴰ", "ⵎⴰⵕ", "ⵉⴱⵔ", "ⵎⴰⵢ", "ⵢⵓⵏ", "ⵢⵓⵍ", "ⵖⵓⵛ", "ⵛⵓⵜ", "ⴽⵜⵓ", "ⵏⵓⵡ", "ⴷⵓⵊ"},
+- monthsNarrow: []string{"", "ⵉ", "ⴱ", "ⵎ", "ⵉ", "ⵎ", "ⵢ", "ⵢ", "ⵖ", "ⵛ", "ⴽ", "ⵏ", "ⴷ"},
+- monthsWide: []string{"", "ⵉⵏⵏⴰⵢⵔ", "ⴱⵕⴰⵢⵕ", "ⵎⴰⵕⵚ", "ⵉⴱⵔⵉⵔ", "ⵎⴰⵢⵢⵓ", "ⵢⵓⵏⵢⵓ", "ⵢⵓⵍⵢⵓⵣ", "ⵖⵓⵛⵜ", "ⵛⵓⵜⴰⵏⴱⵉⵔ", "ⴽⵜⵓⴱⵔ", "ⵏⵓⵡⴰⵏⴱⵉⵔ", "ⴷⵓⵊⴰⵏⴱⵉⵔ"},
+- daysAbbreviated: []string{"ⴰⵙⴰ", "ⴰⵢⵏ", "ⴰⵙⵉ", "ⴰⴽⵕ", "ⴰⴽⵡ", "ⴰⵙⵉⵎ", "ⴰⵙⵉⴹ"},
+- daysWide: []string{"ⴰⵙⴰⵎⴰⵙ", "ⴰⵢⵏⴰⵙ", "ⴰⵙⵉⵏⴰⵙ", "ⴰⴽⵕⴰⵙ", "ⴰⴽⵡⴰⵙ", "ⵙⵉⵎⵡⴰⵙ", "ⴰⵙⵉⴹⵢⴰⵙ"},
+- periodsAbbreviated: []string{"ⵜⵉⴼⴰⵡⵜ", "ⵜⴰⴷⴳⴳⵯⴰⵜ"},
+- periodsWide: []string{"ⵜⵉⴼⴰⵡⵜ", "ⵜⴰⴷⴳⴳⵯⴰⵜ"},
+- erasAbbreviated: []string{"ⴷⴰⵄ", "ⴷⴼⵄ"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ⴷⴰⵜ ⵏ ⵄⵉⵙⴰ", "ⴷⴼⴼⵉⵔ ⵏ ⵄⵉⵙⴰ"},
+- timezones: map[string]string{"AEST": "AEST", "JST": "JST", "ARST": "ARST", "HENOMX": "HENOMX", "MDT": "MDT", "AKST": "AKST", "HEPM": "HEPM", "ChST": "ChST", "OEZ": "OEZ", "WEZ": "WEZ", "WESZ": "WESZ", "ACWDT": "ACWDT", "MST": "MST", "BT": "BT", "WAT": "WAT", "HNPMX": "HNPMX", "ADT": "ADT", "WIT": "WIT", "CHAST": "CHAST", "MESZ": "MESZ", "CLT": "CLT", "∅∅∅": "∅∅∅", "UYT": "UYT", "VET": "VET", "HAST": "HAST", "ECT": "ECT", "AST": "AST", "CDT": "CDT", "NZDT": "NZDT", "COT": "COT", "COST": "COST", "HNCU": "HNCU", "HECU": "HECU", "AKDT": "AKDT", "PDT": "PDT", "IST": "IST", "GFT": "GFT", "CHADT": "CHADT", "GYT": "GYT", "HADT": "HADT", "AEDT": "AEDT", "CAT": "CAT", "AWST": "AWST", "HNEG": "HNEG", "ACST": "ACST", "WAST": "WAST", "HNNOMX": "HNNOMX", "WARST": "WARST", "HEOG": "HEOG", "JDT": "JDT", "BOT": "BOT", "HNPM": "HNPM", "LHST": "LHST", "GMT": "GMT", "AWDT": "AWDT", "CLST": "CLST", "SGT": "SGT", "HEPMX": "HEPMX", "ACWST": "ACWST", "ART": "ART", "HNOG": "HNOG", "LHDT": "LHDT", "HEEG": "HEEG", "EAT": "EAT", "EST": "EST", "MYT": "MYT", "TMT": "TMT", "TMST": "TMST", "EDT": "EDT", "SRT": "SRT", "HKT": "HKT", "NZST": "NZST", "MEZ": "MEZ", "SAST": "SAST", "WART": "WART", "CST": "CST", "UYST": "UYST", "WIB": "WIB", "HNT": "HNT", "HAT": "HAT", "HKST": "HKST", "ACDT": "ACDT", "OESZ": "OESZ", "WITA": "WITA", "PST": "PST"},
++ locale: "shi_Tfng_MA",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MEZ": "MEZ", "JDT": "JDT", "GYT": "GYT", "CAT": "CAT", "CDT": "CDT", "EAT": "EAT", "AWDT": "AWDT", "GFT": "GFT", "WARST": "WARST", "HNEG": "HNEG", "JST": "JST", "NZST": "NZST", "SRT": "SRT", "MESZ": "MESZ", "BT": "BT", "AKDT": "AKDT", "MST": "MST", "GMT": "GMT", "ART": "ART", "WART": "WART", "LHDT": "LHDT", "VET": "VET", "AKST": "AKST", "HAT": "HAT", "TMST": "TMST", "ACWDT": "ACWDT", "ACST": "ACST", "ACDT": "ACDT", "ACWST": "ACWST", "AEST": "AEST", "HNT": "HNT", "HNOG": "HNOG", "WIB": "WIB", "AST": "AST", "AEDT": "AEDT", "UYT": "UYT", "WIT": "WIT", "ADT": "ADT", "LHST": "LHST", "HNCU": "HNCU", "SAST": "SAST", "HKST": "HKST", "BOT": "BOT", "HEEG": "HEEG", "AWST": "AWST", "IST": "IST", "HKT": "HKT", "EST": "EST", "CLST": "CLST", "HNPM": "HNPM", "CHAST": "CHAST", "SGT": "SGT", "WEZ": "WEZ", "WAT": "WAT", "CLT": "CLT", "NZDT": "NZDT", "ARST": "ARST", "COT": "COT", "COST": "COST", "HENOMX": "HENOMX", "WESZ": "WESZ", "PST": "PST", "HEOG": "HEOG", "MDT": "MDT", "HAST": "HAST", "MYT": "MYT", "ChST": "ChST", "HNNOMX": "HNNOMX", "CHADT": "CHADT", "HECU": "HECU", "HEPM": "HEPM", "PDT": "PDT", "HEPMX": "HEPMX", "∅∅∅": "∅∅∅", "WAST": "WAST", "CST": "CST", "HADT": "HADT", "WITA": "WITA", "ECT": "ECT", "UYST": "UYST", "HNPMX": "HNPMX", "OEZ": "OEZ", "OESZ": "OESZ", "TMT": "TMT", "EDT": "EDT"},
+ }
+ }
+ 
+@@ -116,7 +104,7 @@ func (shi *shi_Tfng_MA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (shi *shi_Tfng_MA) MonthsAbbreviated() []string {
+- return shi.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -126,7 +114,7 @@ func (shi *shi_Tfng_MA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (shi *shi_Tfng_MA) MonthsNarrow() []string {
+- return shi.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -136,7 +124,7 @@ func (shi *shi_Tfng_MA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (shi *shi_Tfng_MA) MonthsWide() []string {
+- return shi.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -196,56 +184,7 @@ func (shi *shi_Tfng_MA) FmtCurrency(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := shi.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, shi.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(shi.group) - 1; j >= 0; j-- {
+- b = append(b, shi.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, shi.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, shi.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'shi_Tfng_MA'
+@@ -254,63 +193,7 @@ func (shi *shi_Tfng_MA) FmtAccounting(num float64, v uint64, currency currency.T
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := shi.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, shi.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(shi.group) - 1; j >= 0; j-- {
+- b = append(b, shi.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, shi.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, shi.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'shi_Tfng_MA'
+@@ -318,17 +201,6 @@ func (shi *shi_Tfng_MA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -337,17 +209,6 @@ func (shi *shi_Tfng_MA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, shi.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -356,17 +217,6 @@ func (shi *shi_Tfng_MA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, shi.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -375,19 +225,6 @@ func (shi *shi_Tfng_MA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, shi.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, shi.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/si/si.go b/si/si.go
+index 590e904..801e3d5 100644
+--- a/si/si.go
++++ b/si/si.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ක්\u200dරි.පූ.", "ක්\u200dරි.ව."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"ක්\u200dරිස්තු පූර්ව", "ක්\u200dරිස්තු වර්ෂ"},
+- timezones: map[string]string{"HNCU": "කියුබානු සම්මත වේලාව", "EST": "උතුරු ඇමරිකානු නැගෙනහිර සම්මත වේලාව", "SRT": "සුරිනාම වේලාව", "AEST": "නැගෙනහිර ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "HEPM": "ශාන්ත පියරේ සහ මැකෝලන් දිවාආලෝක වේලාව", "HKST": "හොංකොං ග්\u200dරීෂ්ම වේලාව", "MESZ": "මධ්\u200dයම යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "ChST": "චමොරෝ වේලාව", "ACST": "ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "HAST": "හවායි-අලෙයුතියාන් සම්මත වේලාව", "HNT": "නිව්ෆවුන්ලන්ත සම්මත වේලාව", "ART": "ආර්ජන්ටිනා සම්මත වේලාව", "SGT": "සිංගප්පුරු වේලාව", "WITA": "මධ්\u200dයම ඉන්දුනීසියානු වේලාව", "EAT": "නැගෙනහිර අප්\u200dරිකානු වේලාව", "HNNOMX": "වයඹ මෙක්සිකෝ සම්මත වේලාව", "WESZ": "බටහිර යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "ARST": "ආර්ජන්ටිනා ග්\u200dරීෂ්ම කාලය", "GFT": "ප්\u200dරංශ ගයනා වේලාව", "CAT": "මධ්\u200dයම අප්\u200dරිකානු වේලාව", "COT": "කොලොම්බියා සම්මත වේලාව", "AKST": "ඇලස්කා සම්මත වේලාව", "GYT": "ගයනා වේලාව", "BT": "භුතාන වේලාව", "∅∅∅": "ඇමර්සන් ග්\u200dරීෂ්ම කාලය", "OEZ": "නැගෙනහිර යුරෝපීය සම්මත වේලාව", "HEOG": "බටහිර ග්\u200dරීන්ලන්ත ග්\u200dරීෂ්ම කාලය", "MEZ": "මධ්\u200dයම යුරෝපීය සම්මත වේලාව", "IST": "ඉන්දියානු වේලාව", "COST": "කොලොම්බියා ග්\u200dරීෂ්ම කාලය", "UYT": "උරුගුවේ සම්මත වේලාව", "AST": "අත්ලාන්තික් සම්මත වේලාව", "LHST": "ලෝර්ඩ් හෝව් සම්මත වේලාව", "CLT": "චිලී සම්මත වේලාව", "EDT": "උතුරු ඇමරිකානු නැගෙනහිර දිවාආලෝක වේලාව", "MYT": "මැලේසියානු වේලාව", "WIB": "බටහිර ඉන්දුනීසියානු වේලාව", "NZST": "නවසීලන්ත සම්මත වේලාව", "HNPMX": "මෙක්සිකෝ පැසිෆික් සම්මත වේලාව", "HKT": "හොංකොං සම්මත වේලාව", "BOT": "බොලිවියා වේලාව", "TMT": "ටර්ක්මෙනිස්තාන සම්මත වේලාව", "ACWST": "මධ්\u200dයම බටහිර ඔස්ට්\u200dරේලියානු සම්මත වේලාව", "AWDT": "බටහිර ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "HNPM": "ශාන්ත පියරේ සහ මැකෝලන් සම්මත වේලාව", "JST": "ජපාන සම්මත වේලාව", "JDT": "ජපාන දහවල් වේලාව", "ADT": "අත්ලාන්තික් දිවාආලෝක වේලාව", "MST": "උතුරු ඇමරිකානු කඳුකර සම්මත වේලාව", "PST": "උතුරු ඇමරිකානු පැසිෆික් සම්මත වේලාව", "HEEG": "නැගෙනහිර ග්\u200dරීන්ලන්ත ග්\u200dරීෂ්ම කාලය", "TMST": "ටර්ක්මෙනිස්තාන ග්\u200dරීෂ්ම වේලාව", "HENOMX": "වයඹ මෙක්සිකෝ දිවාආලෝක වේලාව", "ACWDT": "මධ්\u200dයම බටහිර ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "AEDT": "නැඟෙනහිර ඕස්ට්\u200dරේලියානු දහවල් වේලාව", "AWST": "බටහිර ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "WARST": "බටහිර ආර්ජන්ටිනා ග්\u200dරීෂ්ම කාලය", "AKDT": "ඇලස්කා දිවාආලෝක වේලාව", "CST": "උතුරු ඇමරිකානු මධ්\u200dයම සම්මත වේලාව", "WEZ": "බටහිර යුරෝපීය සම්මත වේලාව", "GMT": "ග්\u200dරිනිච් මධ්\u200dයම වේලාව", "LHDT": "ලෝර්ඩ් හෝව් දිවා වේලාව", "SAST": "දකුණු අප්\u200dරිකානු වේලාව", "WAST": "බටහිර අප්\u200dරිකානු ග්\u200dරීෂ්ම කාලය", "HNOG": "බටහිර ග්\u200dරීන්ලන්ත සම්මත වේලාව", "ACDT": "මධ්\u200dයම ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "HADT": "හවායි-අලෙයුතියාන් දිවාආලෝක වේලාව", "VET": "වෙනිසියුලා වේලාව", "WIT": "නැගෙනහිර ඉන්දුනීසියානු වේලාව", "HECU": "කියුබානු දිවාආලෝක වේලාව", "UYST": "උරුගුවේ ග්\u200dරීෂ්ම කාලය", "CLST": "චිලී ග්\u200dරීෂ්ම කාලය", "OESZ": "නැගෙනහිර යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "WAT": "බටහිර අප්\u200dරිකානු සම්මත වේලාව", "WART": "බටහිර ආර්ජන්ටිනා සම්මත වේලාව", "HEPMX": "මෙක්සිකෝ පැසිෆික් දිවාආලෝක වේලාව", "HAT": "නිව්ෆවුන්ලන්ත දිවාආලෝක වේලාව", "CHADT": "චැතම් දිවා වේලාව", "HNEG": "නැගෙනහිර ග්\u200dරීන්ලන්ත සම්මත වේලාව", "NZDT": "නවසීලන්ත දිවා වේලාව", "CHAST": "චැතම් සම්මත වේලාව", "ECT": "ඉක්වදෝර් වේලාව", "CDT": "උතුරු ඇමරිකානු මධ්\u200dයම දිවාආලෝක වේලාව", "MDT": "උතුරු ඇමරිකානු කඳුකර දිවාආලෝක වේලාව", "PDT": "උතුරු ඇමරිකානු පැසිෆික් දිවාආලෝක වේලාව"},
++ timezones: map[string]string{"CAT": "මධ්\u200dයම අප්\u200dරිකානු වේලාව", "GMT": "ග්\u200dරිනිච් මධ්\u200dයම වේලාව", "MEZ": "මධ්\u200dයම යුරෝපීය සම්මත වේලාව", "LHST": "ලෝර්ඩ් හෝව් සම්මත වේලාව", "AEDT": "නැඟෙනහිර ඕස්ට්\u200dරේලියානු දහවල් වේලාව", "HNCU": "කියුබානු සම්මත වේලාව", "SAST": "දකුණු අප්\u200dරිකානු වේලාව", "HNOG": "බටහිර ග්\u200dරීන්ලන්ත සම්මත වේලාව", "ARST": "ආර්ජන්ටිනා ග්\u200dරීෂ්ම කාලය", "EAT": "නැගෙනහිර අප්\u200dරිකානු වේලාව", "HADT": "හවායි-අලෙයුතියාන් දිවාආලෝක වේලාව", "AWDT": "බටහිර ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "LHDT": "ලෝර්ඩ් හෝව් දිවා වේලාව", "ACWDT": "මධ්\u200dයම බටහිර ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "SGT": "සිංගප්පුරු වේලාව", "HECU": "කියුබානු දිවාආලෝක වේලාව", "TMST": "ටර්ක්මෙනිස්තාන ග්\u200dරීෂ්ම වේලාව", "AWST": "බටහිර ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "PDT": "උතුරු ඇමරිකානු පැසිෆික් දිවාආලෝක වේලාව", "HNT": "නිව්ෆවුන්ලන්ත සම්මත වේලාව", "HAT": "නිව්ෆවුන්ලන්ත දිවාආලෝක වේලාව", "HEOG": "බටහිර ග්\u200dරීන්ලන්ත ග්\u200dරීෂ්ම කාලය", "CLST": "චිලී ග්\u200dරීෂ්ම කාලය", "NZST": "නවසීලන්ත සම්මත වේලාව", "VET": "වෙනිසියුලා වේලාව", "MDT": "MDT", "ECT": "ඉක්වදෝර් වේලාව", "HEEG": "නැගෙනහිර ග්\u200dරීන්ලන්ත ග්\u200dරීෂ්ම කාලය", "GFT": "ප්\u200dරංශ ගයනා වේලාව", "COST": "කොලොම්බියා ග්\u200dරීෂ්ම කාලය", "EST": "උතුරු ඇමරිකානු නැගෙනහිර සම්මත වේලාව", "CLT": "චිලී සම්මත වේලාව", "HNNOMX": "වයඹ මෙක්සිකෝ සම්මත වේලාව", "IST": "ඉන්දියානු වේලාව", "WARST": "බටහිර ආර්ජන්ටිනා ග්\u200dරීෂ්ම කාලය", "HKST": "හොංකොං ග්\u200dරීෂ්ම වේලාව", "ADT": "අත්ලාන්තික් දිවාආලෝක වේලාව", "ART": "ආර්ජන්ටිනා සම්මත වේලාව", "HAST": "හවායි-අලෙයුතියාන් සම්මත වේලාව", "JDT": "ජපාන දහවල් වේලාව", "MYT": "මැලේසියානු වේලාව", "UYT": "උරුගුවේ සම්මත වේලාව", "ACWST": "මධ්\u200dයම බටහිර ඔස්ට්\u200dරේලියානු සම්මත වේලාව", "WAT": "බටහිර අප්\u200dරිකානු සම්මත වේලාව", "WIT": "නැගෙනහිර ඉන්දුනීසියානු වේලාව", "NZDT": "නවසීලන්ත දිවා වේලාව", "HNEG": "නැගෙනහිර ග්\u200dරීන්ලන්ත සම්මත වේලාව", "HNPM": "ශාන්ත පියරේ සහ මැකෝලන් සම්මත වේලාව", "AEST": "නැගෙනහිර ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "CHADT": "චැතම් දිවා වේලාව", "PST": "උතුරු ඇමරිකානු පැසිෆික් සම්මත වේලාව", "OESZ": "නැගෙනහිර යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "∅∅∅": "බ්\u200dරසීල ග්\u200dරීෂ්ම කාලය", "MESZ": "මධ්\u200dයම යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "JST": "ජපාන සම්මත වේලාව", "UYST": "උරුගුවේ ග්\u200dරීෂ්ම කාලය", "BT": "භුතාන වේලාව", "HEPMX": "මෙක්සිකෝ පැසිෆික් දිවාආලෝක වේලාව", "TMT": "ටර්ක්මෙනිස්තාන සම්මත වේලාව", "ChST": "චමොරෝ වේලාව", "BOT": "බොලිවියා වේලාව", "WEZ": "බටහිර යුරෝපීය සම්මත වේලාව", "AKDT": "ඇලස්කා දිවාආලෝක වේලාව", "OEZ": "නැගෙනහිර යුරෝපීය සම්මත වේලාව", "WART": "බටහිර ආර්ජන්ටිනා සම්මත වේලාව", "GYT": "ගයනා වේලාව", "HKT": "හොංකොං සම්මත වේලාව", "CST": "උතුරු ඇමරිකානු මධ්\u200dයම සම්මත වේලාව", "SRT": "සුරිනාම වේලාව", "HENOMX": "වයඹ මෙක්සිකෝ දිවාආලෝක වේලාව", "WIB": "බටහිර ඉන්දුනීසියානු වේලාව", "CDT": "උතුරු ඇමරිකානු මධ්\u200dයම දිවාආලෝක වේලාව", "ACDT": "මධ්\u200dයම ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "CHAST": "චැතම් සම්මත වේලාව", "COT": "කොලොම්බියා සම්මත වේලාව", "WITA": "මධ්\u200dයම ඉන්දුනීසියානු වේලාව", "HEPM": "ශාන්ත පියරේ සහ මැකෝලන් දිවාආලෝක වේලාව", "WESZ": "බටහිර යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "WAST": "බටහිර අප්\u200dරිකානු ග්\u200dරීෂ්ම කාලය", "AKST": "ඇලස්කා සම්මත වේලාව", "MST": "MST", "EDT": "උතුරු ඇමරිකානු නැගෙනහිර දිවාආලෝක වේලාව", "AST": "අත්ලාන්තික් සම්මත වේලාව", "ACST": "ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "HNPMX": "මෙක්සිකෝ පැසිෆික් සම්මත වේලාව"},
+ }
+ }
+ 
+diff --git a/si_LK/si_LK.go b/si_LK/si_LK.go
+index c8c5b36..03cf5de 100644
+--- a/si_LK/si_LK.go
++++ b/si_LK/si_LK.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type si_LK struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'si_LK' locale
+ func New() locales.Translator {
+ return &si_LK{
+- locale: "si_LK",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ".",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "ජන", "පෙබ", "මාර්තු", "අප්\u200dරේල්", "මැයි", "ජූනි", "ජූලි", "අගෝ", "සැප්", "ඔක්", "නොවැ", "දෙසැ"},
+- monthsNarrow: []string{"", "ජ", "පෙ", "මා", "අ", "මැ", "ජූ", "ජූ", "අ", "සැ", "ඔ", "නෙ", "දෙ"},
+- monthsWide: []string{"", "ජනවාරි", "පෙබරවාරි", "මාර්තු", "අප්\u200dරේල්", "මැයි", "ජූනි", "ජූලි", "අගෝස්තු", "සැප්තැම්බර්", "ඔක්තෝබර්", "නොවැම්බර්", "දෙසැම්බර්"},
+- daysAbbreviated: []string{"ඉරිදා", "සඳුදා", "අඟහ", "බදාදා", "බ්\u200dරහස්", "සිකු", "සෙන"},
+- daysNarrow: []string{"ඉ", "ස", "අ", "බ", "බ්\u200dර", "සි", "සෙ"},
+- daysShort: []string{"ඉරි", "සඳු", "අඟ", "බදා", "බ්\u200dරහ", "සිකු", "සෙන"},
+- daysWide: []string{"ඉරිදා", "සඳුදා", "අඟහරුවාදා", "බදාදා", "බ්\u200dරහස්පතින්දා", "සිකුරාදා", "සෙනසුරාදා"},
+- periodsAbbreviated: []string{"පෙ.ව.", "ප.ව."},
+- periodsNarrow: []string{"පෙ", "ප"},
+- periodsWide: []string{"පෙ.ව.", "ප.ව."},
+- erasAbbreviated: []string{"ක්\u200dරි.පූ.", "ක්\u200dරි.ව."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ක්\u200dරිස්තු පූර්ව", "ක්\u200dරිස්තු වර්ෂ"},
+- timezones: map[string]string{"WARST": "බටහිර ආර්ජන්ටිනා ග්\u200dරීෂ්ම කාලය", "UYT": "උරුගුවේ සම්මත වේලාව", "ACWST": "මධ්\u200dයම බටහිර ඔස්ට්\u200dරේලියානු සම්මත වේලාව", "NZST": "නවසීලන්ත සම්මත වේලාව", "NZDT": "නවසීලන්ත දිවා වේලාව", "TMT": "ටර්ක්මෙනිස්තාන සම්මත වේලාව", "WART": "බටහිර ආර්ජන්ටිනා සම්මත වේලාව", "HNCU": "කියුබානු සම්මත වේලාව", "WESZ": "බටහිර යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "ACWDT": "මධ්\u200dයම බටහිර ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "LHDT": "ලෝර්ඩ් හෝව් දිවා වේලාව", "JDT": "ජපාන දහවල් වේලාව", "CST": "උතුරු ඇමරිකානු මධ්\u200dයම සම්මත වේලාව", "BT": "භුතාන වේලාව", "SRT": "සුරිනාම වේලාව", "PDT": "උතුරු ඇමරිකානු පැසිෆික් දිවාආලෝක වේලාව", "ECT": "ඉක්වදෝර් වේලාව", "AKDT": "ඇලස්කා දිවාආලෝක වේලාව", "ARST": "ආර්ජන්ටිනා ග්\u200dරීෂ්ම කාලය", "AWDT": "බටහිර ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "HEPM": "ශාන්ත පියරේ සහ මැකෝලන් දිවාආලෝක වේලාව", "TMST": "ටර්ක්මෙනිස්තාන ග්\u200dරීෂ්ම වේලාව", "SGT": "සිංගප්පුරු වේලාව", "UYST": "උරුගුවේ ග්\u200dරීෂ්ම කාලය", "ART": "ආර්ජන්ටිනා සම්මත වේලාව", "CHADT": "චැතම් දිවා වේලාව", "BOT": "බොලිවියා වේලාව", "ACDT": "මධ්\u200dයම ඔස්ට්\u200dරේලියානු දහවල් වේලාව", "EAT": "නැගෙනහිර අප්\u200dරිකානු වේලාව", "HNNOMX": "වයඹ මෙක්සිකෝ සම්මත වේලාව", "AEDT": "නැඟෙනහිර ඕස්ට්\u200dරේලියානු දහවල් වේලාව", "HNEG": "නැගෙනහිර ග්\u200dරීන්ලන්ත සම්මත වේලාව", "HECU": "කියුබානු දිවාආලෝක වේලාව", "MYT": "මැලේසියානු වේලාව", "HAST": "හවායි-අලෙයුතියාන් සම්මත වේලාව", "HNT": "නිව්ෆවුන්ලන්ත සම්මත වේලාව", "ACST": "ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "WAT": "බටහිර අප්\u200dරිකානු සම්මත වේලාව", "MST": "MST", "AST": "අත්ලාන්තික් සම්මත වේලාව", "VET": "වෙනිසියුලා වේලාව", "∅∅∅": "ඇසොර්ස් ග්\u200dරීෂ්ම වේලාව", "AKST": "ඇලස්කා සම්මත වේලාව", "JST": "ජපාන සම්මත වේලාව", "HEEG": "නැගෙනහිර ග්\u200dරීන්ලන්ත ග්\u200dරීෂ්ම කාලය", "WAST": "බටහිර අප්\u200dරිකානු ග්\u200dරීෂ්ම කාලය", "LHST": "ලෝර්ඩ් හෝව් සම්මත වේලාව", "OESZ": "නැගෙනහිර යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "MDT": "MDT", "WEZ": "බටහිර යුරෝපීය සම්මත වේලාව", "AEST": "නැගෙනහිර ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "HNPM": "ශාන්ත පියරේ සහ මැකෝලන් සම්මත වේලාව", "CHAST": "චැතම් සම්මත වේලාව", "IST": "ඉන්දියානු වේලාව", "SAST": "දකුණු අප්\u200dරිකානු වේලාව", "COT": "කොලොම්බියා සම්මත වේලාව", "GYT": "ගයනා වේලාව", "HADT": "හවායි-අලෙයුතියාන් දිවාආලෝක වේලාව", "HNOG": "බටහිර ග්\u200dරීන්ලන්ත සම්මත වේලාව", "AWST": "බටහිර ඕස්ට්\u200dරේලියානු සම්මත වේලාව", "MEZ": "මධ්\u200dයම යුරෝපීය සම්මත වේලාව", "MESZ": "මධ්\u200dයම යුරෝපීය ග්\u200dරීෂ්ම වේලාව", "CLST": "චිලී ග්\u200dරීෂ්ම කාලය", "WIT": "නැගෙනහිර ඉන්දුනීසියානු වේලාව", "GFT": "ප්\u200dරංශ ගයනා වේලාව", "OEZ": "නැගෙනහිර යුරෝපීය සම්මත වේලාව", "CAT": "මධ්\u200dයම අප්\u200dරිකානු වේලාව", "COST": "කොලොම්බියා ග්\u200dරීෂ්ම කාලය", "HENOMX": "වයඹ මෙක්සිකෝ දිවාආලෝක වේලාව", "GMT": "ග්\u200dරිනිච් මධ්\u200dයම වේලාව", "HNPMX": "මෙක්සිකෝ පැසිෆික් සම්මත වේලාව", "ADT": "අත්ලාන්තික් දිවාආලෝක වේලාව", "WIB": "බටහිර ඉන්දුනීසියානු වේලාව", "HEOG": "බටහිර ග්\u200dරීන්ලන්ත ග්\u200dරීෂ්ම කාලය", "ChST": "චමොරෝ වේලාව", "EST": "උතුරු ඇමරිකානු නැගෙනහිර සම්මත වේලාව", "EDT": "උතුරු ඇමරිකානු නැගෙනහිර දිවාආලෝක වේලාව", "CDT": "උතුරු ඇමරිකානු මධ්\u200dයම දිවාආලෝක වේලාව", "PST": "උතුරු ඇමරිකානු පැසිෆික් සම්මත වේලාව", "WITA": "මධ්\u200dයම ඉන්දුනීසියානු වේලාව", "HKT": "හොංකොං සම්මත වේලාව", "HKST": "හොංකොං ග්\u200dරීෂ්ම වේලාව", "HEPMX": "මෙක්සිකෝ පැසිෆික් දිවාආලෝක වේලාව", "HAT": "නිව්ෆවුන්ලන්ත දිවාආලෝක වේලාව", "CLT": "චිලී සම්මත වේලාව"},
++ locale: "si_LK",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CLT": "CLT", "ECT": "ECT", "MST": "MST", "MEZ": "MEZ", "ACWST": "ACWST", "AKST": "AKST", "EDT": "EDT", "WART": "WART", "COST": "COST", "HNEG": "HNEG", "MESZ": "MESZ", "UYST": "UYST", "PDT": "PDT", "VET": "VET", "CLST": "CLST", "CST": "CST", "LHDT": "LHDT", "OESZ": "OESZ", "HEOG": "HEOG", "ACWDT": "ACWDT", "EAT": "EAT", "HEEG": "HEEG", "HKST": "HKST", "NZST": "NZST", "WIB": "WIB", "SRT": "SRT", "ACDT": "ACDT", "HNCU": "HNCU", "SAST": "SAST", "HKT": "HKT", "CAT": "CAT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "WIT": "WIT", "HNOG": "HNOG", "NZDT": "NZDT", "ADT": "ADT", "ACST": "ACST", "HNPMX": "HNPMX", "WESZ": "WESZ", "SGT": "SGT", "EST": "EST", "ARST": "ARST", "HEPM": "HEPM", "∅∅∅": "∅∅∅", "HECU": "HECU", "HAT": "HAT", "AST": "AST", "GMT": "GMT", "WEZ": "WEZ", "OEZ": "OEZ", "HADT": "HADT", "HNPM": "HNPM", "JST": "JST", "UYT": "UYT", "CDT": "CDT", "BT": "BT", "AEST": "AEST", "IST": "IST", "GYT": "GYT", "TMT": "TMT", "AWST": "AWST", "CHAST": "CHAST", "HNT": "HNT", "AKDT": "AKDT", "MDT": "MDT", "ChST": "ChST", "BOT": "BOT", "MYT": "MYT", "AWDT": "AWDT", "LHST": "LHST", "WITA": "WITA", "AEDT": "AEDT", "PST": "PST", "COT": "COT", "TMST": "TMST", "JDT": "JDT", "CHADT": "CHADT", "WARST": "WARST", "GFT": "GFT", "ART": "ART", "HAST": "HAST", "HEPMX": "HEPMX", "WAT": "WAT", "WAST": "WAST"},
+ }
+ }
+ 
+@@ -139,7 +116,7 @@ func (si *si_LK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (si *si_LK) MonthsAbbreviated() []string {
+- return si.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -149,7 +126,7 @@ func (si *si_LK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (si *si_LK) MonthsNarrow() []string {
+- return si.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -159,7 +136,7 @@ func (si *si_LK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (si *si_LK) MonthsWide() []string {
+- return si.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -205,73 +182,13 @@ func (si *si_LK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'si_LK' and handles both Whole and Real numbers based on 'v'
+ func (si *si_LK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, si.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, si.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, si.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'si_LK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (si *si_LK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, si.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, si.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, si.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'si_LK'
+@@ -279,56 +196,7 @@ func (si *si_LK) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := si.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, si.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, si.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, si.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, si.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'si_LK'
+@@ -337,68 +205,7 @@ func (si *si_LK) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := si.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, si.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, si.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, si.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, si.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, si.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'si_LK'
+@@ -406,28 +213,6 @@ func (si *si_LK) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -436,17 +221,6 @@ func (si *si_LK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, si.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -455,17 +229,6 @@ func (si *si_LK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, si.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -474,19 +237,6 @@ func (si *si_LK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, si.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, si.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -495,19 +245,6 @@ func (si *si_LK) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -516,26 +253,6 @@ func (si *si_LK) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -544,30 +261,6 @@ func (si *si_LK) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -576,34 +269,5 @@ func (si *si_LK) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := si.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sk/sk.go b/sk/sk.go
+index 027af59..90e6f78 100644
+--- a/sk/sk.go
++++ b/sk/sk.go
+@@ -75,7 +75,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"pred Kr.", "po Kr."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"pred Kristom", "po Kristovi"},
+- timezones: map[string]string{"HEPM": "pierre-miquelonský letný čas", "GFT": "francúzskoguyanský čas", "HENOMX": "severozápadný mexický letný čas", "EST": "severoamerický východný štandardný čas", "CST": "severoamerický centrálny štandardný čas", "WIT": "východoindonézsky čas", "BT": "bhutánsky čas", "ARST": "argentínsky letný čas", "HNOG": "západogrónsky štandardný čas", "NZST": "novozélandský štandardný čas", "ChST": "chamorrský štandardný čas", "COST": "kolumbijský letný čas", "SRT": "surinamský čas", "WEZ": "západoeurópsky štandardný čas", "MEZ": "stredoeurópsky štandardný čas", "MESZ": "stredoeurópsky letný čas", "HNEG": "východogrónsky štandardný čas", "CAT": "stredoafrický čas", "WAT": "západoafrický štandardný čas", "EDT": "severoamerický východný letný čas", "MST": "MST", "UYST": "uruguajský letný čas", "HAST": "havajsko-aleutský štandardný čas", "WITA": "stredoindonézsky čas", "WARST": "západoargentínsky letný čas", "HECU": "kubánsky letný čas", "AKST": "aljašský štandardný čas", "AKDT": "aljašský letný čas", "HAT": "newfoundlandský letný čas", "SAST": "juhoafrický čas", "MYT": "malajzijský čas", "NZDT": "novozélandský letný čas", "CLT": "čilský štandardný čas", "EAT": "východoafrický čas", "MDT": "MDT", "VET": "venezuelský čas", "PDT": "severoamerický tichomorský letný čas", "ACWDT": "stredozápadný austrálsky letný čas", "HNT": "newfoundlandský štandardný čas", "AEST": "východoaustrálsky štandardný čas", "JDT": "japonský letný čas", "WAST": "západoafrický letný čas", "ART": "argentínsky štandardný čas", "AEDT": "východoaustrálsky letný čas", "OEZ": "východoeurópsky štandardný čas", "WART": "západoargentínsky štandardný čas", "CDT": "severoamerický centrálny letný čas", "GYT": "guyanský čas", "PST": "severoamerický tichomorský štandardný čas", "CHADT": "chathamský letný čas", "TMT": "turkménsky štandardný čas", "HNPMX": "mexický tichomorský štandardný čas", "WESZ": "západoeurópsky letný čas", "ACWST": "stredozápadný austrálsky štandardný čas", "TMST": "turkménsky letný čas", "HEOG": "západogrónsky letný čas", "COT": "kolumbijský štandardný čas", "UYT": "uruguajský štandardný čas", "AST": "atlantický štandardný čas", "AWDT": "západoaustrálsky letný čas", "HNPM": "pierre-miquelonský štandardný čas", "ACST": "stredoaustrálsky štandardný čas", "ECT": "ekvádorský čas", "HNNOMX": "severozápadný mexický štandardný čas", "GMT": "greenwichský čas", "SGT": "singapurský štandardný čas", "HKT": "hongkonský štandardný čas", "LHST": "štandardný čas ostrova lorda Howa", "LHDT": "letný čas ostrova lorda Howa", "CHAST": "chathamský štandardný čas", "JST": "japonský štandardný čas", "HEEG": "východogrónsky letný čas", "HEPMX": "mexický tichomorský letný čas", "WIB": "západoindonézsky čas", "CLST": "čilský letný čas", "∅∅∅": "amazonský letný čas", "BOT": "bolívijský čas", "ADT": "atlantický letný čas", "ACDT": "stredoaustrálsky letný čas", "OESZ": "východoeurópsky letný čas", "HNCU": "kubánsky štandardný čas", "IST": "indický čas", "HADT": "havajsko-aleutský letný čas", "AWST": "západoaustrálsky štandardný čas", "HKST": "hongkonský letný čas"},
++ timezones: map[string]string{"MDT": "MDT", "HNNOMX": "severozápadný mexický štandardný čas", "AWDT": "západoaustrálsky letný čas", "CHADT": "chathamský letný čas", "UYT": "uruguajský štandardný čas", "HAT": "newfoundlandský letný čas", "HNOG": "západogrónsky štandardný čas", "AWST": "západoaustrálsky štandardný čas", "WESZ": "západoeurópsky letný čas", "GYT": "guyanský čas", "CLT": "čilský štandardný čas", "JST": "japonský štandardný čas", "COT": "kolumbijský štandardný čas", "WIB": "západoindonézsky čas", "ARST": "argentínsky letný čas", "HEPM": "pierre-miquelonský letný čas", "PST": "severoamerický tichomorský štandardný čas", "HECU": "kubánsky letný čas", "OESZ": "východoeurópsky letný čas", "COST": "kolumbijský letný čas", "AEST": "východoaustrálsky štandardný čas", "IST": "indický čas", "WEZ": "západoeurópsky štandardný čas", "SGT": "singapurský štandardný čas", "OEZ": "východoeurópsky štandardný čas", "ACWST": "stredozápadný austrálsky štandardný čas", "HKT": "hongkonský štandardný čas", "CLST": "čilský letný čas", "MYT": "malajzijský čas", "∅∅∅": "brazílsky letný čas", "SAST": "juhoafrický čas", "ART": "argentínsky štandardný čas", "HENOMX": "severozápadný mexický letný čas", "JDT": "japonský letný čas", "HEPMX": "mexický tichomorský letný čas", "AKST": "aljašský štandardný čas", "EST": "severoamerický východný štandardný čas", "MST": "MST", "CDT": "severoamerický centrálny letný čas", "ChST": "chamorrský štandardný čas", "HEEG": "východogrónsky letný čas", "AEDT": "východoaustrálsky letný čas", "NZDT": "novozélandský letný čas", "ECT": "ekvádorský čas", "HNEG": "východogrónsky štandardný čas", "ADT": "atlantický letný čas", "HADT": "havajsko-aleutský letný čas", "HNPM": "pierre-miquelonský štandardný čas", "PDT": "severoamerický tichomorský letný čas", "VET": "venezuelský čas", "HNCU": "kubánsky štandardný čas", "WART": "západoargentínsky štandardný čas", "BOT": "bolívijský čas", "CST": "severoamerický centrálny štandardný čas", "ACDT": "stredoaustrálsky letný čas", "CHAST": "chathamský štandardný čas", "WIT": "východoindonézsky čas", "TMST": "turkménsky letný čas", "HKST": "hongkonský letný čas", "NZST": "novozélandský štandardný čas", "SRT": "surinamský čas", "HAST": "havajsko-aleutský štandardný čas", "LHST": "štandardný čas ostrova lorda Howa", "GFT": "francúzskoguyanský čas", "EDT": "severoamerický východný letný čas", "BT": "bhutánsky čas", "ACWDT": "stredozápadný austrálsky letný čas", "HNPMX": "mexický tichomorský štandardný čas", "AKDT": "aljašský letný čas", "WARST": "západoargentínsky letný čas", "AST": "atlantický štandardný čas", "GMT": "greenwichský čas", "HNT": "newfoundlandský štandardný čas", "HEOG": "západogrónsky letný čas", "MEZ": "stredoeurópsky štandardný čas", "MESZ": "stredoeurópsky letný čas", "ACST": "stredoaustrálsky štandardný čas", "WAT": "západoafrický štandardný čas", "WAST": "západoafrický letný čas", "CAT": "stredoafrický čas", "EAT": "východoafrický čas", "LHDT": "letný čas ostrova lorda Howa", "UYST": "uruguajský letný čas", "TMT": "turkménsky štandardný čas", "WITA": "stredoindonézsky čas"},
+ }
+ }
+ 
+diff --git a/sk_SK/sk_SK.go b/sk_SK/sk_SK.go
+index fee10ce..5a72470 100644
+--- a/sk_SK/sk_SK.go
++++ b/sk_SK/sk_SK.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type sk_SK struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sk_SK' locale
+ func New() locales.Translator {
+ return &sk_SK{
+- locale: "sk_SK",
+- pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 5, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "jan", "feb", "mar", "apr", "máj", "jún", "júl", "aug", "sep", "okt", "nov", "dec"},
+- monthsNarrow: []string{"", "j", "f", "m", "a", "m", "j", "j", "a", "s", "o", "n", "d"},
+- monthsWide: []string{"", "januára", "februára", "marca", "apríla", "mája", "júna", "júla", "augusta", "septembra", "októbra", "novembra", "decembra"},
+- daysAbbreviated: []string{"ne", "po", "ut", "st", "št", "pi", "so"},
+- daysNarrow: []string{"n", "p", "u", "s", "š", "p", "s"},
+- daysShort: []string{"ne", "po", "ut", "st", "št", "pi", "so"},
+- daysWide: []string{"nedeľa", "pondelok", "utorok", "streda", "štvrtok", "piatok", "sobota"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"pred Kr.", "po Kr."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"pred Kristom", "po Kristovi"},
+- timezones: map[string]string{"AWDT": "západoaustrálsky letný čas", "CDT": "severoamerický centrálny letný čas", "AST": "atlantický štandardný čas", "WESZ": "západoeurópsky letný čas", "ACWDT": "stredozápadný austrálsky letný čas", "HNT": "newfoundlandský štandardný čas", "CHADT": "chathamský letný čas", "JDT": "japonský letný čas", "CAT": "stredoafrický čas", "WITA": "stredoindonézsky čas", "AEST": "východoaustrálsky štandardný čas", "CHAST": "chathamský štandardný čas", "HNPM": "pierre-miquelonský štandardný čas", "NZST": "novozélandský štandardný čas", "CST": "severoamerický centrálny štandardný čas", "WAT": "západoafrický štandardný čas", "COST": "kolumbijský letný čas", "HENOMX": "severozápadný mexický letný čas", "HEPMX": "mexický tichomorský letný čas", "ARST": "argentínsky letný čas", "HNOG": "západogrónsky štandardný čas", "MESZ": "stredoeurópsky letný čas", "OESZ": "východoeurópsky letný čas", "HNNOMX": "severozápadný mexický štandardný čas", "UYT": "uruguajský štandardný čas", "BT": "bhutánsky čas", "HKT": "hongkonský štandardný čas", "ChST": "chamorrský štandardný čas", "GYT": "guyanský čas", "UYST": "uruguajský letný čas", "MDT": "severoamerický horský letný čas", "WEZ": "západoeurópsky štandardný čas", "OEZ": "východoeurópsky štandardný čas", "TMT": "turkménsky štandardný čas", "WAST": "západoafrický letný čas", "AWST": "západoaustrálsky štandardný čas", "ACDT": "stredoaustrálsky letný čas", "EAT": "východoafrický čas", "COT": "kolumbijský štandardný čas", "MYT": "malajzijský čas", "MST": "severoamerický horský štandardný čas", "HEOG": "západogrónsky letný čas", "PDT": "severoamerický tichomorský letný čas", "HNEG": "východogrónsky štandardný čas", "SGT": "singapurský štandardný čas", "EST": "severoamerický východný štandardný čas", "HKST": "hongkonský letný čas", "AEDT": "východoaustrálsky letný čas", "HEPM": "pierre-miquelonský letný čas", "TMST": "turkménsky letný čas", "WARST": "západoargentínsky letný čas", "VET": "venezuelský čas", "WIT": "východoindonézsky čas", "NZDT": "novozélandský letný čas", "HAT": "newfoundlandský letný čas", "ECT": "ekvádorský čas", "WIB": "západoindonézsky čas", "HADT": "havajsko-aleutský letný čas", "SRT": "surinamský čas", "ADT": "atlantický letný čas", "HAST": "havajsko-aleutský štandardný čas", "PST": "severoamerický tichomorský štandardný čas", "GFT": "francúzskoguyanský čas", "IST": "indický čas", "WART": "západoargentínsky štandardný čas", "HECU": "kubánsky letný čas", "HNPMX": "mexický tichomorský štandardný čas", "AKST": "aljašský štandardný čas", "LHST": "štandardný čas ostrova lorda Howa", "ACST": "stredoaustrálsky štandardný čas", "GMT": "greenwichský čas", "MEZ": "stredoeurópsky štandardný čas", "SAST": "juhoafrický čas", "CLT": "čilský štandardný čas", "∅∅∅": "amazonský letný čas", "JST": "japonský štandardný čas", "ACWST": "stredozápadný austrálsky štandardný čas", "ART": "argentínsky štandardný čas", "LHDT": "letný čas ostrova lorda Howa", "BOT": "bolívijský čas", "EDT": "severoamerický východný letný čas", "AKDT": "aljašský letný čas", "CLST": "čilský letný čas", "HEEG": "východogrónsky letný čas", "HNCU": "kubánsky štandardný čas"},
++ locale: "sk_SK",
++ pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WART": "WART", "TMST": "TMST", "CLT": "CLT", "AWST": "AWST", "LHDT": "LHDT", "HEOG": "HEOG", "HKT": "HKT", "GMT": "GMT", "CHAST": "CHAST", "MST": "MST", "MDT": "MDT", "EAT": "EAT", "SGT": "SGT", "HEPMX": "HEPMX", "WAT": "WAT", "HNT": "HNT", "HNOG": "HNOG", "HNNOMX": "HNNOMX", "PST": "PST", "AKDT": "AKDT", "COT": "COT", "WITA": "WITA", "ADT": "ADT", "ARST": "ARST", "HAST": "HAST", "WIT": "WIT", "GYT": "GYT", "CLST": "CLST", "NZST": "NZST", "SRT": "SRT", "MYT": "MYT", "JST": "JST", "BT": "BT", "HECU": "HECU", "EST": "EST", "TMT": "TMT", "CST": "CST", "HADT": "HADT", "ACDT": "ACDT", "HEEG": "HEEG", "WESZ": "WESZ", "VET": "VET", "HNCU": "HNCU", "OEZ": "OEZ", "WARST": "WARST", "∅∅∅": "∅∅∅", "NZDT": "NZDT", "CHADT": "CHADT", "OESZ": "OESZ", "EDT": "EDT", "MEZ": "MEZ", "LHST": "LHST", "HNPMX": "HNPMX", "CAT": "CAT", "CDT": "CDT", "ChST": "ChST", "BOT": "BOT", "AEST": "AEST", "ACST": "ACST", "HNPM": "HNPM", "GFT": "GFT", "HNEG": "HNEG", "WEZ": "WEZ", "AKST": "AKST", "HAT": "HAT", "HENOMX": "HENOMX", "IST": "IST", "UYST": "UYST", "COST": "COST", "HKST": "HKST", "MESZ": "MESZ", "HEPM": "HEPM", "JDT": "JDT", "PDT": "PDT", "ACWST": "ACWST", "ACWDT": "ACWDT", "WAST": "WAST", "SAST": "SAST", "WIB": "WIB", "AWDT": "AWDT", "ECT": "ECT", "AST": "AST", "ART": "ART", "AEDT": "AEDT", "UYT": "UYT"},
+ }
+ }
+ 
+@@ -166,7 +139,7 @@ func (sk *sk_SK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sk *sk_SK) MonthsAbbreviated() []string {
+- return sk.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -176,7 +149,7 @@ func (sk *sk_SK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sk *sk_SK) MonthsNarrow() []string {
+- return sk.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -186,7 +159,7 @@ func (sk *sk_SK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sk *sk_SK) MonthsWide() []string {
+- return sk.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -232,77 +205,13 @@ func (sk *sk_SK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sk_SK' and handles both Whole and Real numbers based on 'v'
+ func (sk *sk_SK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sk.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sk.group) - 1; j >= 0; j-- {
+- b = append(b, sk.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sk.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sk_SK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sk *sk_SK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sk.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sk.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sk.percentSuffix...)
+-
+- b = append(b, sk.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sk_SK'
+@@ -310,58 +219,7 @@ func (sk *sk_SK) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sk.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sk.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sk.group) - 1; j >= 0; j-- {
+- b = append(b, sk.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sk.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sk.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sk.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sk_SK'
+@@ -370,65 +228,7 @@ func (sk *sk_SK) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sk.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sk.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sk.group) - 1; j >= 0; j-- {
+- b = append(b, sk.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, sk.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sk.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sk.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sk.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sk_SK'
+@@ -436,17 +236,6 @@ func (sk *sk_SK) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -455,17 +244,6 @@ func (sk *sk_SK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -474,17 +252,6 @@ func (sk *sk_SK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sk.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -493,19 +260,6 @@ func (sk *sk_SK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sk.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sk.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -514,15 +268,6 @@ func (sk *sk_SK) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -531,22 +276,6 @@ func (sk *sk_SK) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -555,26 +284,6 @@ func (sk *sk_SK) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -583,30 +292,5 @@ func (sk *sk_SK) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sk.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sl/sl.go b/sl/sl.go
+index 19fd612..38b14c5 100644
+--- a/sl/sl.go
++++ b/sl/sl.go
+@@ -75,7 +75,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"pr. Kr.", "po Kr."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"pred Kristusom", "po Kristusu"},
+- timezones: map[string]string{"MEZ": "Srednjeevropski standardni čas", "BOT": "Bolivijski čas", "SGT": "Singapurski standardni čas", "EDT": "Vzhodni poletni čas", "ACWST": "Avstralski centralni zahodni standardni čas", "HKST": "Hongkonški poletni čas", "WITA": "Indonezijski osrednji čas", "AWDT": "Avstralski zahodni poletni čas", "AEDT": "Avstralski vzhodni poletni čas", "CLT": "Čilski standardni čas", "HECU": "Kubanski poletni čas", "ARST": "Argentinski poletni čas", "JST": "Japonski standardni čas", "WAST": "Zahodnoafriški poletni čas", "COT": "Kolumbijski standardni čas", "AKDT": "Aljaški poletni čas", "WIT": "Indonezijski vzhodni čas", "HAT": "Novofundlandski poletni čas", "HKT": "Hongkonški standardni čas", "NZST": "Novozelandski standardni čas", "CHAST": "Čatamski standardni čas", "AST": "Atlantski standardni čas", "UYST": "Urugvajski poletni čas", "SAST": "Južnoafriški čas", "GFT": "Čas: Francoska Gvajana", "HNPMX": "mehiški pacifiški standardni čas", "CDT": "Centralni poletni čas", "HNOG": "Zahodnogrenlandski standardni čas", "JDT": "Japonski poletni čas", "TMT": "Turkmenistanski standardni čas", "ChST": "Čamorski standardni čas", "HNT": "Novofundlandski standardni čas", "EAT": "Vzhodnoafriški čas", "MDT": "MDT", "HEEG": "Vzhodnogrenlandski poletni čas", "WAT": "Zahodnoafriški standardni čas", "WART": "Argentinski zahodni standardni čas", "AKST": "Aljaški standardni čas", "ART": "Argentinski standardni čas", "AEST": "Avstralski vzhodni standardni čas", "LHST": "Standardni čas otoka Lord Howe", "∅∅∅": "Amazonski poletni čas", "BT": "Butanski čas", "CST": "Centralni standardni čas", "NZDT": "Novozelandski poletni čas", "HENOMX": "mehiški severozahodni poletni čas", "EST": "Vzhodni standardni čas", "MST": "MST", "COST": "Kolumbijski poletni čas", "HAST": "Havajski aleutski standardni čas", "HADT": "Havajski aleutski poletni čas", "HEOG": "Zahodnogrenlandski poletni čas", "WEZ": "Zahodnoevropski standardni čas", "AWST": "Avstralski zahodni standardni čas", "TMST": "Turkmenistanski poletni čas", "CLST": "Čilski poletni čas", "ACST": "Avstralski centralni standardni čas", "HEPMX": "mehiški pacifiški poletni čas", "UYT": "Urugvajski standardni čas", "CAT": "Centralnoafriški čas", "ADT": "Atlantski poletni čas", "GYT": "Gvajanski čas", "WESZ": "Zahodnoevropski poletni čas", "HEPM": "Poletni čas: Saint Pierre in Miquelon", "CHADT": "Čatamski poletni čas", "IST": "Indijski standardni čas", "ECT": "Ekvadorski čas", "WARST": "Argentinski zahodni poletni čas", "PDT": "Pacifiški poletni čas", "LHDT": "Poletni čas otoka Lord Howe", "HNNOMX": "mehiški severozahodni standardni čas", "VET": "Venezuelski čas", "GMT": "Greenwiški srednji čas", "WIB": "Indonezijski zahodni čas", "SRT": "Surinamski čas", "ACWDT": "Avstralski centralni zahodni poletni čas", "HNPM": "Standardni čas: Saint Pierre in Miquelon", "MESZ": "Srednjeevropski poletni čas", "OESZ": "Vzhodnoevropski poletni čas", "HNCU": "Kubanski standardni čas", "MYT": "Malezijski čas", "PST": "Pacifiški standardni čas", "HNEG": "Vzhodnogrenlandski standardni čas", "ACDT": "Avstralski centralni poletni čas", "OEZ": "Vzhodnoevropski standardni čas"},
++ timezones: map[string]string{"WAT": "Zahodnoafriški standardni čas", "COST": "Kolumbijski poletni čas", "HEOG": "Zahodnogrenlandski poletni čas", "HKT": "Hongkonški standardni čas", "WIB": "Indonezijski zahodni čas", "MDT": "Gorski poletni čas", "CHAST": "Čatamski standardni čas", "HECU": "Kubanski poletni čas", "WART": "Argentinski zahodni standardni čas", "WIT": "Indonezijski vzhodni čas", "GYT": "Gvajanski čas", "CAT": "Centralnoafriški čas", "MST": "Gorski standardni čas", "SRT": "Surinamski čas", "WEZ": "Zahodnoevropski standardni čas", "AWDT": "Avstralski zahodni poletni čas", "HNPM": "Standardni čas: Saint Pierre in Miquelon", "AEST": "Avstralski vzhodni standardni čas", "VET": "Venezuelski čas", "HNCU": "Kubanski standardni čas", "MESZ": "Srednjeevropski poletni čas", "ACST": "Avstralski centralni standardni čas", "HNNOMX": "mehiški severozahodni standardni čas", "ChST": "Čamorski standardni čas", "LHST": "Standardni čas otoka Lord Howe", "HNT": "Novofundlandski standardni čas", "GMT": "Greenwiški srednji čas", "IST": "Indijski standardni čas", "∅∅∅": "∅∅∅", "EDT": "Vzhodni poletni čas", "HAST": "Havajski aleutski standardni čas", "MEZ": "Srednjeevropski standardni čas", "ACDT": "Avstralski centralni poletni čas", "ECT": "Ekvadorski čas", "ART": "Argentinski standardni čas", "AKST": "Aljaški standardni čas", "AKDT": "Aljaški poletni čas", "TMST": "Turkmenistanski poletni čas", "HNEG": "Vzhodnogrenlandski standardni čas", "HNOG": "Zahodnogrenlandski standardni čas", "AST": "Atlantski standardni čas", "EAT": "Vzhodnoafriški čas", "HEPMX": "mehiški pacifiški poletni čas", "OEZ": "Vzhodnoevropski standardni čas", "ADT": "Atlantski poletni čas", "MYT": "Malezijski čas", "SGT": "Singapurski standardni čas", "EST": "Vzhodni standardni čas", "GFT": "Čas: Francoska Gvajana", "CLST": "Čilski poletni čas", "WITA": "Indonezijski osrednji čas", "CDT": "Centralni poletni čas", "HENOMX": "mehiški severozahodni poletni čas", "UYST": "Urugvajski poletni čas", "WAST": "Zahodnoafriški poletni čas", "HEPM": "Poletni čas: Saint Pierre in Miquelon", "ARST": "Argentinski poletni čas", "HEEG": "Vzhodnogrenlandski poletni čas", "AWST": "Avstralski zahodni standardni čas", "LHDT": "Poletni čas otoka Lord Howe", "BT": "Butanski čas", "AEDT": "Avstralski vzhodni poletni čas", "NZST": "Novozelandski standardni čas", "PDT": "Pacifiški poletni čas", "HAT": "Novofundlandski poletni čas", "BOT": "Bolivijski čas", "HADT": "Havajski aleutski poletni čas", "UYT": "Urugvajski standardni čas", "WESZ": "Zahodnoevropski poletni čas", "HNPMX": "mehiški pacifiški standardni čas", "OESZ": "Vzhodnoevropski poletni čas", "HKST": "Hongkonški poletni čas", "TMT": "Turkmenistanski standardni čas", "JST": "Japonski standardni čas", "JDT": "Japonski poletni čas", "CHADT": "Čatamski poletni čas", "CLT": "Čilski standardni čas", "WARST": "Argentinski zahodni poletni čas", "SAST": "Južnoafriški čas", "COT": "Kolumbijski standardni čas", "CST": "Centralni standardni čas", "NZDT": "Novozelandski poletni čas", "PST": "Pacifiški standardni čas", "ACWST": "Avstralski centralni zahodni standardni čas", "ACWDT": "Avstralski centralni zahodni poletni čas"},
+ }
+ }
+ 
+diff --git a/sl_SI/sl_SI.go b/sl_SI/sl_SI.go
+index f3aa7ff..7b018f6 100644
+--- a/sl_SI/sl_SI.go
++++ b/sl_SI/sl_SI.go
+@@ -10,72 +10,45 @@ import (
+ )
+ 
+ type sl_SI struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sl_SI' locale
+ func New() locales.Translator {
+ return &sl_SI{
+- locale: "sl_SI",
+- pluralsCardinal: []locales.PluralRule{2, 3, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{3, 4, 6},
+- decimal: ",",
+- group: ".",
+- minus: "–",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mar.", "apr.", "maj", "jun.", "jul.", "avg.", "sep.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "j", "f", "m", "a", "m", "j", "j", "a", "s", "o", "n", "d"},
+- monthsWide: []string{"", "januar", "februar", "marec", "april", "maj", "junij", "julij", "avgust", "september", "oktober", "november", "december"},
+- daysAbbreviated: []string{"ned.", "pon.", "tor.", "sre.", "čet.", "pet.", "sob."},
+- daysNarrow: []string{"n", "p", "t", "s", "č", "p", "s"},
+- daysShort: []string{"ned.", "pon.", "tor.", "sre.", "čet.", "pet.", "sob."},
+- daysWide: []string{"nedelja", "ponedeljek", "torek", "sreda", "četrtek", "petek", "sobota"},
+- periodsAbbreviated: []string{"dop.", "pop."},
+- periodsNarrow: []string{"d", "p"},
+- periodsWide: []string{"dop.", "pop."},
+- erasAbbreviated: []string{"pr. Kr.", "po Kr."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"pred Kristusom", "po Kristusu"},
+- timezones: map[string]string{"HENOMX": "mehiški severozahodni poletni čas", "HNCU": "Kubanski standardni čas", "HNPMX": "mehiški pacifiški standardni čas", "AEDT": "Avstralski vzhodni poletni čas", "GFT": "Čas: Francoska Gvajana", "EST": "Vzhodni standardni čas", "UYST": "Urugvajski poletni čas", "HNPM": "Standardni čas: Saint Pierre in Miquelon", "IST": "Indijski standardni čas", "BOT": "Bolivijski čas", "CST": "Centralni standardni čas", "CDT": "Centralni poletni čas", "AKST": "Aljaški standardni čas", "WITA": "Indonezijski osrednji čas", "NZST": "Novozelandski standardni čas", "PST": "Pacifiški standardni čas", "ECT": "Ekvadorski čas", "WAST": "Zahodnoafriški poletni čas", "COT": "Kolumbijski standardni čas", "MST": "MST", "MDT": "MDT", "ADT": "Atlantski poletni čas", "ACST": "Avstralski centralni standardni čas", "HECU": "Kubanski poletni čas", "AST": "Atlantski standardni čas", "LHDT": "Poletni čas otoka Lord Howe", "NZDT": "Novozelandski poletni čas", "CLT": "Čilski standardni čas", "HNEG": "Vzhodnogrenlandski standardni čas", "EAT": "Vzhodnoafriški čas", "AWST": "Avstralski zahodni standardni čas", "CLST": "Čilski poletni čas", "WAT": "Zahodnoafriški standardni čas", "WART": "Argentinski zahodni standardni čas", "UYT": "Urugvajski standardni čas", "HAST": "Havajski aleutski standardni čas", "HNT": "Novofundlandski standardni čas", "WEZ": "Zahodnoevropski standardni čas", "ChST": "Čamorski standardni čas", "HEEG": "Vzhodnogrenlandski poletni čas", "CAT": "Centralnoafriški čas", "ART": "Argentinski standardni čas", "SAST": "Južnoafriški čas", "OESZ": "Vzhodnoevropski poletni čas", "COST": "Kolumbijski poletni čas", "GYT": "Gvajanski čas", "AWDT": "Avstralski zahodni poletni čas", "CHADT": "Čatamski poletni čas", "MEZ": "Srednjeevropski standardni čas", "WARST": "Argentinski zahodni poletni čas", "WIB": "Indonezijski zahodni čas", "SRT": "Surinamski čas", "HEPM": "Poletni čas: Saint Pierre in Miquelon", "JST": "Japonski standardni čas", "EDT": "Vzhodni poletni čas", "BT": "Butanski čas", "ACWST": "Avstralski centralni zahodni standardni čas", "LHST": "Standardni čas otoka Lord Howe", "AEST": "Avstralski vzhodni standardni čas", "HKT": "Hongkonški standardni čas", "ACDT": "Avstralski centralni poletni čas", "∅∅∅": "Perujski poletni čas", "VET": "Venezuelski čas", "WIT": "Indonezijski vzhodni čas", "HAT": "Novofundlandski poletni čas", "HEOG": "Zahodnogrenlandski poletni čas", "HKST": "Hongkonški poletni čas", "TMST": "Turkmenistanski poletni čas", "GMT": "Greenwiški srednji čas", "HADT": "Havajski aleutski poletni čas", "CHAST": "Čatamski standardni čas", "OEZ": "Vzhodnoevropski standardni čas", "MYT": "Malezijski čas", "AKDT": "Aljaški poletni čas", "ARST": "Argentinski poletni čas", "JDT": "Japonski poletni čas", "TMT": "Turkmenistanski standardni čas", "HEPMX": "mehiški pacifiški poletni čas", "HNOG": "Zahodnogrenlandski standardni čas", "WESZ": "Zahodnoevropski poletni čas", "HNNOMX": "mehiški severozahodni standardni čas", "SGT": "Singapurski standardni čas", "PDT": "Pacifiški poletni čas", "ACWDT": "Avstralski centralni zahodni poletni čas", "MESZ": "Srednjeevropski poletni čas"},
++ locale: "sl_SI",
++ pluralsCardinal: []locales.PluralRule{2, 3, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{3, 4, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WIB": "WIB", "ACDT": "ACDT", "AEST": "AEST", "CHADT": "CHADT", "UYT": "UYT", "CST": "CST", "ChST": "ChST", "AWDT": "AWDT", "WEZ": "WEZ", "WAT": "WAT", "WART": "WART", "HEEG": "HEEG", "LHDT": "LHDT", "HNOG": "HNOG", "GYT": "GYT", "ACWST": "ACWST", "HNPMX": "HNPMX", "TMT": "TMT", "TMST": "TMST", "∅∅∅": "∅∅∅", "MDT": "MDT", "ARST": "ARST", "HNEG": "HNEG", "WESZ": "WESZ", "SGT": "SGT", "OEZ": "OEZ", "ADT": "ADT", "HEPMX": "HEPMX", "WARST": "WARST", "BT": "BT", "EST": "EST", "AST": "AST", "HADT": "HADT", "HNNOMX": "HNNOMX", "MYT": "MYT", "AEDT": "AEDT", "ECT": "ECT", "ART": "ART", "HNPM": "HNPM", "JST": "JST", "PDT": "PDT", "HNT": "HNT", "GMT": "GMT", "AKDT": "AKDT", "WIT": "WIT", "CAT": "CAT", "CLT": "CLT", "HAST": "HAST", "LHST": "LHST", "COST": "COST", "CDT": "CDT", "EAT": "EAT", "ACWDT": "ACWDT", "HNCU": "HNCU", "HAT": "HAT", "HKT": "HKT", "GFT": "GFT", "COT": "COT", "SRT": "SRT", "IST": "IST", "CLST": "CLST", "WITA": "WITA", "NZST": "NZST", "HENOMX": "HENOMX", "MEZ": "MEZ", "CHAST": "CHAST", "WAST": "WAST", "HEOG": "HEOG", "EDT": "EDT", "HKST": "HKST", "HEPM": "HEPM", "AWST": "AWST", "UYST": "UYST", "HECU": "HECU", "SAST": "SAST", "MST": "MST", "NZDT": "NZDT", "MESZ": "MESZ", "OESZ": "OESZ", "BOT": "BOT", "ACST": "ACST", "JDT": "JDT", "PST": "PST", "VET": "VET", "AKST": "AKST"},
+ }
+ }
+ 
+@@ -171,7 +144,7 @@ func (sl *sl_SI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sl *sl_SI) MonthsAbbreviated() []string {
+- return sl.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -181,7 +154,7 @@ func (sl *sl_SI) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sl *sl_SI) MonthsNarrow() []string {
+- return sl.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -191,7 +164,7 @@ func (sl *sl_SI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sl *sl_SI) MonthsWide() []string {
+- return sl.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -237,79 +210,13 @@ func (sl *sl_SI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sl_SI' and handles both Whole and Real numbers based on 'v'
+ func (sl *sl_SI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(sl.minus) - 1; j >= 0; j-- {
+- b = append(b, sl.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sl_SI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sl *sl_SI) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sl.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(sl.minus) - 1; j >= 0; j-- {
+- b = append(b, sl.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sl.percentSuffix...)
+-
+- b = append(b, sl.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sl_SI'
+@@ -317,58 +224,7 @@ func (sl *sl_SI) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sl.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(sl.minus) - 1; j >= 0; j-- {
+- b = append(b, sl.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sl.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sl_SI'
+@@ -377,63 +233,7 @@ func (sl *sl_SI) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sl.currencies[currency]
+- l := len(s) + len(symbol) + 8 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sl.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sl.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, sl.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sl.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sl.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sl.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sl_SI'
+@@ -441,23 +241,6 @@ func (sl *sl_SI) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -466,17 +249,6 @@ func (sl *sl_SI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sl.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -485,21 +257,6 @@ func (sl *sl_SI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -508,24 +265,6 @@ func (sl *sl_SI) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sl.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sl.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -534,19 +273,6 @@ func (sl *sl_SI) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -555,26 +281,6 @@ func (sl *sl_SI) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -583,30 +289,6 @@ func (sl *sl_SI) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -615,34 +297,5 @@ func (sl *sl_SI) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sl.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sl.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sl.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/smn/smn.go b/smn/smn.go
+index de185c4..c26565b 100644
+--- a/smn/smn.go
++++ b/smn/smn.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"oKr.", "mKr."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Ovdil Kristus šoddâm", "maŋa Kristus šoddâm"},
+- timezones: map[string]string{"AST": "AST", "VET": "VET", "ARST": "ARST", "LHDT": "LHDT", "COST": "COST", "JDT": "JDT", "WIT": "WIT", "PDT": "PDT", "WEZ": "WEZ", "WESZ": "WESZ", "NZST": "NZST", "GMT": "GMT", "HNCU": "HNCU", "CLT": "CLT", "HEEG": "HEEG", "TMT": "TMT", "TMST": "TMST", "COT": "COT", "HAST": "HAST", "NZDT": "NZDT", "EDT": "EDT", "AEDT": "AEDT", "HNPM": "HNPM", "WAT": "WAT", "MDT": "MDT", "UYST": "UYST", "CST": "CST", "PST": "PST", "AEST": "AEST", "WAST": "WAST", "LHST": "LHST", "∅∅∅": "∅∅∅", "EAT": "EAT", "MST": "MST", "SRT": "SRT", "ART": "ART", "HKST": "HKST", "WITA": "WITA", "HNPMX": "HNPMX", "CDT": "CDT", "BT": "BT", "HECU": "HECU", "AWDT": "AWDT", "SAST": "SAST", "JST": "JST", "EST": "EST", "UYT": "UYT", "AKST": "AKST", "HNOG": "HNOG", "ACWST": "ACWST", "ChST": "ChST", "CAT": "CAT", "ECT": "ECT", "HENOMX": "HENOMX", "AKDT": "AKDT", "HADT": "HADT", "HEOG": "HEOG", "MESZ": "MESZ", "ACDT": "ACDT", "OEZ": "OEZ", "WART": "WART", "WARST": "WARST", "MYT": "MYT", "WIB": "WIB", "HNT": "HNT", "HAT": "HAT", "CHAST": "CHAST", "ACWDT": "ACWDT", "HEPM": "HEPM", "SGT": "SGT", "GFT": "GFT", "HEPMX": "HEPMX", "ADT": "ADT", "AWST": "AWST", "HKT": "HKT", "HNEG": "HNEG", "CHADT": "CHADT", "BOT": "BOT", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "GYT": "GYT", "MEZ": "MEZ", "IST": "IST", "CLST": "CLST", "ACST": "ACST"},
++ timezones: map[string]string{"SRT": "SRT", "CHAST": "CHAST", "SGT": "SGT", "MDT": "MDT", "HNT": "HNT", "COST": "COST", "SAST": "SAST", "CLST": "CLST", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "VET": "VET", "WAT": "WAT", "GMT": "GMT", "BOT": "BOT", "CST": "CST", "ARST": "ARST", "HNEG": "HNEG", "AEDT": "AEDT", "AKST": "AKST", "EDT": "EDT", "NZST": "NZST", "ChST": "ChST", "EAT": "EAT", "JDT": "JDT", "HNOG": "HNOG", "EST": "EST", "AST": "AST", "MESZ": "MESZ", "OESZ": "OESZ", "WARST": "WARST", "HKT": "HKT", "HEEG": "HEEG", "HEOG": "HEOG", "TMT": "TMT", "MST": "MST", "WESZ": "WESZ", "CDT": "CDT", "HEPM": "HEPM", "AWDT": "AWDT", "HNCU": "HNCU", "WEZ": "WEZ", "WIT": "WIT", "WART": "WART", "ACST": "ACST", "ACDT": "ACDT", "CHADT": "CHADT", "HKST": "HKST", "WIB": "WIB", "HADT": "HADT", "AEST": "AEST", "PST": "PST", "HNPMX": "HNPMX", "TMST": "TMST", "ECT": "ECT", "HNPM": "HNPM", "AWST": "AWST", "LHST": "LHST", "ART": "ART", "CAT": "CAT", "WITA": "WITA", "MEZ": "MEZ", "HECU": "HECU", "COT": "COT", "IST": "IST", "WAST": "WAST", "AKDT": "AKDT", "GYT": "GYT", "CLT": "CLT", "LHDT": "LHDT", "ACWDT": "ACWDT", "UYT": "UYT", "HEPMX": "HEPMX", "ADT": "ADT", "HENOMX": "HENOMX", "ACWST": "ACWST", "PDT": "PDT", "JST": "JST", "BT": "BT", "∅∅∅": "∅∅∅", "GFT": "GFT", "HAT": "HAT", "HAST": "HAST", "MYT": "MYT", "UYST": "UYST", "OEZ": "OEZ"},
+ }
+ }
+ 
+diff --git a/smn_FI/smn_FI.go b/smn_FI/smn_FI.go
+index c65ce98..dd56e37 100644
+--- a/smn_FI/smn_FI.go
++++ b/smn_FI/smn_FI.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type smn_FI struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'smn_FI' locale
+ func New() locales.Translator {
+ return &smn_FI{
+- locale: "smn_FI",
+- pluralsCardinal: []locales.PluralRule{2, 3, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ".",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "uđiv", "kuovâ", "njuhčâ", "cuáŋui", "vyesi", "kesi", "syeini", "porge", "čohčâ", "roovvâd", "skammâ", "juovlâ"},
+- monthsNarrow: []string{"", "U", "K", "NJ", "C", "V", "K", "S", "P", "Č", "R", "S", "J"},
+- monthsWide: []string{"", "uđđâivemáánu", "kuovâmáánu", "njuhčâmáánu", "cuáŋuimáánu", "vyesimáánu", "kesimáánu", "syeinimáánu", "porgemáánu", "čohčâmáánu", "roovvâdmáánu", "skammâmáánu", "juovlâmáánu"},
+- daysAbbreviated: []string{"pas", "vuo", "maj", "kos", "tuo", "vás", "láv"},
+- daysNarrow: []string{"p", "V", "M", "K", "T", "V", "L"},
+- daysShort: []string{"pa", "vu", "ma", "ko", "tu", "vá", "lá"},
+- daysWide: []string{"pasepeeivi", "vuossaargâ", "majebaargâ", "koskoho", "tuorâstuv", "vástuppeeivi", "lávurduv"},
+- periodsAbbreviated: []string{"ip.", "ep."},
+- periodsNarrow: []string{"ip.", "ep."},
+- periodsWide: []string{"ip.", "ep."},
+- erasAbbreviated: []string{"oKr.", "mKr."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Ovdil Kristus šoddâm", "maŋa Kristus šoddâm"},
+- timezones: map[string]string{"HNOG": "HNOG", "WIT": "WIT", "BOT": "BOT", "AKST": "AKST", "ACWDT": "ACWDT", "NZDT": "NZDT", "MEZ": "MEZ", "IST": "IST", "∅∅∅": "∅∅∅", "CAT": "CAT", "COST": "COST", "NZST": "NZST", "CHAST": "CHAST", "HKT": "HKT", "MESZ": "MESZ", "TMST": "TMST", "SRT": "SRT", "HAT": "HAT", "WAT": "WAT", "HAST": "HAST", "HKST": "HKST", "HNEG": "HNEG", "TMT": "TMT", "EAT": "EAT", "GYT": "GYT", "WEZ": "WEZ", "CHADT": "CHADT", "JDT": "JDT", "ACDT": "ACDT", "HEPMX": "HEPMX", "ART": "ART", "HNPM": "HNPM", "CDT": "CDT", "HENOMX": "HENOMX", "AKDT": "AKDT", "JST": "JST", "MDT": "MDT", "UYT": "UYT", "HNT": "HNT", "AEST": "AEST", "WARST": "WARST", "HEOG": "HEOG", "LHST": "LHST", "HEPM": "HEPM", "GMT": "GMT", "ARST": "ARST", "AWDT": "AWDT", "HNNOMX": "HNNOMX", "WART": "WART", "SGT": "SGT", "BT": "BT", "OEZ": "OEZ", "AEDT": "AEDT", "CLST": "CLST", "WAST": "WAST", "OESZ": "OESZ", "ECT": "ECT", "COT": "COT", "WESZ": "WESZ", "AWST": "AWST", "MYT": "MYT", "MST": "MST", "EDT": "EDT", "WITA": "WITA", "LHDT": "LHDT", "HEEG": "HEEG", "CST": "CST", "ADT": "ADT", "UYST": "UYST", "ACWST": "ACWST", "PDT": "PDT", "VET": "VET", "ChST": "ChST", "ACST": "ACST", "HNCU": "HNCU", "HNPMX": "HNPMX", "EST": "EST", "AST": "AST", "CLT": "CLT", "GFT": "GFT", "WIB": "WIB", "HADT": "HADT", "HECU": "HECU", "PST": "PST", "SAST": "SAST"},
++ locale: "smn_FI",
++ pluralsCardinal: []locales.PluralRule{2, 3, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"TMT": "TMT", "CLT": "CLT", "CST": "CST", "ChST": "ChST", "HNNOMX": "HNNOMX", "AWST": "AWST", "PDT": "PDT", "COT": "COT", "CDT": "CDT", "WIB": "WIB", "GMT": "GMT", "ARST": "ARST", "HEEG": "HEEG", "HECU": "HECU", "HNPMX": "HNPMX", "HNT": "HNT", "WART": "WART", "EDT": "EDT", "HKST": "HKST", "NZST": "NZST", "ART": "ART", "WEZ": "WEZ", "WESZ": "WESZ", "AKDT": "AKDT", "CAT": "CAT", "SRT": "SRT", "BT": "BT", "ACWST": "ACWST", "UYST": "UYST", "HAT": "HAT", "HEPM": "HEPM", "IST": "IST", "MDT": "MDT", "MESZ": "MESZ", "HNPM": "HNPM", "CHADT": "CHADT", "HNCU": "HNCU", "WAT": "WAT", "GFT": "GFT", "BOT": "BOT", "LHDT": "LHDT", "SGT": "SGT", "SAST": "SAST", "TMST": "TMST", "∅∅∅": "∅∅∅", "ADT": "ADT", "GYT": "GYT", "WITA": "WITA", "MST": "MST", "EAT": "EAT", "HAST": "HAST", "MEZ": "MEZ", "AWDT": "AWDT", "MYT": "MYT", "ACWDT": "ACWDT", "HNOG": "HNOG", "HENOMX": "HENOMX", "JST": "JST", "HEOG": "HEOG", "ACDT": "ACDT", "UYT": "UYT", "AEST": "AEST", "OESZ": "OESZ", "PST": "PST", "AEDT": "AEDT", "AKST": "AKST", "COST": "COST", "HADT": "HADT", "JDT": "JDT", "VET": "VET", "HEPMX": "HEPMX", "WAST": "WAST", "OEZ": "OEZ", "WIT": "WIT", "EST": "EST", "NZDT": "NZDT", "ECT": "ECT", "ACST": "ACST", "WARST": "WARST", "HKT": "HKT", "CLST": "CLST", "AST": "AST", "HNEG": "HNEG", "LHST": "LHST", "CHAST": "CHAST"},
+ }
+ }
+ 
+@@ -128,7 +103,7 @@ func (smn *smn_FI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (smn *smn_FI) MonthsAbbreviated() []string {
+- return smn.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -138,7 +113,7 @@ func (smn *smn_FI) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (smn *smn_FI) MonthsNarrow() []string {
+- return smn.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -148,7 +123,7 @@ func (smn *smn_FI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (smn *smn_FI) MonthsWide() []string {
+- return smn.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -194,77 +169,13 @@ func (smn *smn_FI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'smn_FI' and handles both Whole and Real numbers based on 'v'
+ func (smn *smn_FI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, smn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(smn.group) - 1; j >= 0; j-- {
+- b = append(b, smn.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, smn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'smn_FI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (smn *smn_FI) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, smn.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, smn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, smn.percentSuffix...)
+-
+- b = append(b, smn.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'smn_FI'
+@@ -272,58 +183,7 @@ func (smn *smn_FI) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := smn.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, smn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(smn.group) - 1; j >= 0; j-- {
+- b = append(b, smn.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, smn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, smn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, smn.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'smn_FI'
+@@ -332,65 +192,7 @@ func (smn *smn_FI) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := smn.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, smn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(smn.group) - 1; j >= 0; j-- {
+- b = append(b, smn.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, smn.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, smn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, smn.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, smn.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'smn_FI'
+@@ -398,17 +200,6 @@ func (smn *smn_FI) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -417,17 +208,6 @@ func (smn *smn_FI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, smn.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -436,17 +216,6 @@ func (smn *smn_FI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, smn.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -455,18 +224,6 @@ func (smn *smn_FI) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0x63, 0x63, 0x63, 0x63, 0x2c, 0x20}...)
+- b = append(b, smn.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -475,15 +232,6 @@ func (smn *smn_FI) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -492,22 +240,6 @@ func (smn *smn_FI) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -516,26 +248,6 @@ func (smn *smn_FI) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -544,30 +256,5 @@ func (smn *smn_FI) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := smn.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sn/sn.go b/sn/sn.go
+index c3fc978..7a6b51a 100644
+--- a/sn/sn.go
++++ b/sn/sn.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kristo asati auya", "mugore ramambo vedu"},
+- timezones: map[string]string{"AKST": "AKST", "ART": "ART", "NZDT": "NZDT", "SAST": "SAST", "ACDT": "ACDT", "HECU": "HECU", "GMT": "GMT", "HEPMX": "HEPMX", "HEOG": "HEOG", "NZST": "NZST", "CAT": "CAT", "EAT": "EAT", "HNNOMX": "HNNOMX", "CST": "CST", "HNOG": "HNOG", "ChST": "ChST", "TMT": "TMT", "ECT": "ECT", "SGT": "SGT", "ADT": "ADT", "PST": "PST", "HNT": "HNT", "AEST": "AEST", "OESZ": "OESZ", "COT": "COT", "HENOMX": "HENOMX", "ACST": "ACST", "OEZ": "OEZ", "EDT": "EDT", "SRT": "SRT", "AWST": "AWST", "AWDT": "AWDT", "WITA": "WITA", "JST": "JST", "WART": "WART", "HNEG": "HNEG", "MYT": "MYT", "WIB": "WIB", "ACWDT": "ACWDT", "HAT": "HAT", "HKST": "HKST", "HNPM": "HNPM", "LHDT": "LHDT", "HEEG": "HEEG", "WIT": "WIT", "MEZ": "MEZ", "CLT": "CLT", "WAST": "WAST", "HAST": "HAST", "TMST": "TMST", "AKDT": "AKDT", "ACWST": "ACWST", "MESZ": "MESZ", "BOT": "BOT", "COST": "COST", "MDT": "MDT", "GYT": "GYT", "WEZ": "WEZ", "WESZ": "WESZ", "CHADT": "CHADT", "WARST": "WARST", "HNCU": "HNCU", "HNPMX": "HNPMX", "∅∅∅": "∅∅∅", "GFT": "GFT", "WAT": "WAT", "EST": "EST", "HEPM": "HEPM", "LHST": "LHST", "CHAST": "CHAST", "CLST": "CLST", "BT": "BT", "MST": "MST", "UYT": "UYT", "CDT": "CDT", "HADT": "HADT", "JDT": "JDT", "UYST": "UYST", "PDT": "PDT", "ARST": "ARST", "VET": "VET", "AEDT": "AEDT", "HKT": "HKT", "IST": "IST", "AST": "AST"},
++ timezones: map[string]string{"HADT": "HADT", "HNOG": "HNOG", "WITA": "WITA", "ADT": "ADT", "HAST": "HAST", "GYT": "GYT", "COST": "COST", "SGT": "SGT", "GFT": "GFT", "PST": "PST", "PDT": "PDT", "HNPMX": "HNPMX", "HKT": "HKT", "NZST": "NZST", "ARST": "ARST", "HEEG": "HEEG", "CAT": "CAT", "LHDT": "LHDT", "AWDT": "AWDT", "HNCU": "HNCU", "HNT": "HNT", "OESZ": "OESZ", "JST": "JST", "AWST": "AWST", "ACWDT": "ACWDT", "CHAST": "CHAST", "HEOG": "HEOG", "WIB": "WIB", "MEZ": "MEZ", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "ART": "ART", "CST": "CST", "AST": "AST", "HENOMX": "HENOMX", "AKDT": "AKDT", "AKST": "AKST", "TMST": "TMST", "AEST": "AEST", "IST": "IST", "HEPMX": "HEPMX", "JDT": "JDT", "UYST": "UYST", "WAT": "WAT", "CDT": "CDT", "ACST": "ACST", "LHST": "LHST", "MYT": "MYT", "EAT": "EAT", "OEZ": "OEZ", "EDT": "EDT", "CLST": "CLST", "MST": "MST", "NZDT": "NZDT", "VET": "VET", "WESZ": "WESZ", "ChST": "ChST", "BT": "BT", "CHADT": "CHADT", "UYT": "UYT", "MESZ": "MESZ", "HECU": "HECU", "SAST": "SAST", "TMT": "TMT", "EST": "EST", "BOT": "BOT", "WARST": "WARST", "MDT": "MDT", "ECT": "ECT", "WEZ": "WEZ", "AEDT": "AEDT", "HAT": "HAT", "ACDT": "ACDT", "HEPM": "HEPM", "ACWST": "ACWST", "CLT": "CLT", "GMT": "GMT", "SRT": "SRT", "HNEG": "HNEG", "WART": "WART", "WIT": "WIT", "COT": "COT", "HKST": "HKST", "HNNOMX": "HNNOMX", "WAST": "WAST"},
+ }
+ }
+ 
+diff --git a/sn_ZW/sn_ZW.go b/sn_ZW/sn_ZW.go
+index 837d019..d5e7b3d 100644
+--- a/sn_ZW/sn_ZW.go
++++ b/sn_ZW/sn_ZW.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type sn_ZW struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sn_ZW' locale
+ func New() locales.Translator {
+ return &sn_ZW{
+- locale: "sn_ZW",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Ndi", "Kuk", "Kur", "Kub", "Chv", "Chk", "Chg", "Nya", "Gun", "Gum", "Mbu", "Zvi"},
+- monthsNarrow: []string{"", "N", "K", "K", "K", "C", "C", "C", "N", "G", "G", "M", "Z"},
+- monthsWide: []string{"", "Ndira", "Kukadzi", "Kurume", "Kubvumbi", "Chivabvu", "Chikumi", "Chikunguru", "Nyamavhuvhu", "Gunyana", "Gumiguru", "Mbudzi", "Zvita"},
+- daysAbbreviated: []string{"Svo", "Muv", "Chp", "Cht", "Chn", "Chs", "Mug"},
+- daysNarrow: []string{"S", "M", "C", "C", "C", "C", "M"},
+- daysShort: []string{"Sv", "Mu", "Cp", "Ct", "Cn", "Cs", "Mg"},
+- daysWide: []string{"Svondo", "Muvhuro", "Chipiri", "Chitatu", "China", "Chishanu", "Mugovera"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kristo asati auya", "mugore ramambo vedu"},
+- timezones: map[string]string{"WART": "WART", "HNCU": "HNCU", "EST": "EST", "UYT": "UYT", "BT": "BT", "ACWST": "ACWST", "CLST": "CLST", "HENOMX": "HENOMX", "WAST": "WAST", "CST": "CST", "AST": "AST", "AWDT": "AWDT", "TMST": "TMST", "BOT": "BOT", "AEDT": "AEDT", "CHADT": "CHADT", "LHST": "LHST", "∅∅∅": "∅∅∅", "WIT": "WIT", "CHAST": "CHAST", "ACDT": "ACDT", "HEOG": "HEOG", "HAST": "HAST", "HKST": "HKST", "EDT": "EDT", "MST": "MST", "COST": "COST", "UYST": "UYST", "WIB": "WIB", "ARST": "ARST", "AEST": "AEST", "HEPM": "HEPM", "CAT": "CAT", "EAT": "EAT", "HEEG": "HEEG", "GFT": "GFT", "ACST": "ACST", "NZDT": "NZDT", "JST": "JST", "JDT": "JDT", "OESZ": "OESZ", "SGT": "SGT", "GYT": "GYT", "HNOG": "HNOG", "MEZ": "MEZ", "CLT": "CLT", "ChST": "ChST", "VET": "VET", "WEZ": "WEZ", "WITA": "WITA", "HNEG": "HNEG", "AKDT": "AKDT", "OEZ": "OEZ", "PDT": "PDT", "AWST": "AWST", "SAST": "SAST", "WAT": "WAT", "ART": "ART", "HKT": "HKT", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "CDT": "CDT", "SRT": "SRT", "ACWDT": "ACWDT", "HNT": "HNT", "MDT": "MDT", "ADT": "ADT", "LHDT": "LHDT", "TMT": "TMT", "HECU": "HECU", "WARST": "WARST", "MYT": "MYT", "HAT": "HAT", "HNPM": "HNPM", "NZST": "NZST", "GMT": "GMT", "AKST": "AKST", "COT": "COT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "HADT": "HADT", "PST": "PST", "WESZ": "WESZ", "IST": "IST", "ECT": "ECT"},
++ locale: "sn_ZW",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNEG": "HNEG", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "HEOG": "HEOG", "CDT": "CDT", "COT": "COT", "WITA": "WITA", "MST": "MST", "AST": "AST", "HAST": "HAST", "COST": "COST", "TMST": "TMST", "GMT": "GMT", "HEEG": "HEEG", "HEPM": "HEPM", "∅∅∅": "∅∅∅", "ACWDT": "ACWDT", "OEZ": "OEZ", "HADT": "HADT", "ART": "ART", "SRT": "SRT", "EAT": "EAT", "LHST": "LHST", "JDT": "JDT", "UYT": "UYT", "WAST": "WAST", "SAST": "SAST", "BT": "BT", "AEST": "AEST", "HECU": "HECU", "WIT": "WIT", "CST": "CST", "AEDT": "AEDT", "SGT": "SGT", "OESZ": "OESZ", "GYT": "GYT", "EDT": "EDT", "NZDT": "NZDT", "ARST": "ARST", "BOT": "BOT", "IST": "IST", "HNCU": "HNCU", "GFT": "GFT", "HAT": "HAT", "HNOG": "HNOG", "ACST": "ACST", "ACDT": "ACDT", "CHADT": "CHADT", "WEZ": "WEZ", "CLT": "CLT", "NZST": "NZST", "WIB": "WIB", "ADT": "ADT", "UYST": "UYST", "PST": "PST", "WESZ": "WESZ", "VET": "VET", "WAT": "WAT", "CAT": "CAT", "MEZ": "MEZ", "JST": "JST", "PDT": "PDT", "HNPMX": "HNPMX", "TMT": "TMT", "LHDT": "LHDT", "HNPM": "HNPM", "ACWST": "ACWST", "WARST": "WARST", "HKT": "HKT", "EST": "EST", "HNNOMX": "HNNOMX", "AWST": "AWST", "MYT": "MYT", "AKST": "AKST", "AKDT": "AKDT", "HKST": "HKST", "ECT": "ECT", "ChST": "ChST", "CLST": "CLST", "MDT": "MDT", "MESZ": "MESZ", "AWDT": "AWDT", "CHAST": "CHAST", "HNT": "HNT", "WART": "WART"},
+ }
+ }
+ 
+@@ -124,7 +101,7 @@ func (sn *sn_ZW) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sn *sn_ZW) MonthsAbbreviated() []string {
+- return sn.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -134,7 +111,7 @@ func (sn *sn_ZW) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sn *sn_ZW) MonthsNarrow() []string {
+- return sn.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -144,7 +121,7 @@ func (sn *sn_ZW) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sn *sn_ZW) MonthsWide() []string {
+- return sn.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,73 +167,13 @@ func (sn *sn_ZW) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sn_ZW' and handles both Whole and Real numbers based on 'v'
+ func (sn *sn_ZW) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sn.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sn_ZW' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sn *sn_ZW) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sn.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sn.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sn_ZW'
+@@ -264,56 +181,7 @@ func (sn *sn_ZW) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sn.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sn.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, sn.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sn_ZW'
+@@ -322,68 +190,7 @@ func (sn *sn_ZW) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sn.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sn.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sn.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, sn.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sn.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sn.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sn_ZW'
+@@ -391,28 +198,6 @@ func (sn *sn_ZW) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -421,17 +206,6 @@ func (sn *sn_ZW) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, sn.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -440,17 +214,6 @@ func (sn *sn_ZW) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, sn.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -459,19 +222,6 @@ func (sn *sn_ZW) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, sn.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, sn.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -480,19 +230,6 @@ func (sn *sn_ZW) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -501,26 +238,6 @@ func (sn *sn_ZW) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -529,30 +246,6 @@ func (sn *sn_ZW) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -561,34 +254,5 @@ func (sn *sn_ZW) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sn.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sn.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sn.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/so/so.go b/so/so.go
+index 0f7b15a..5bf55fa 100644
+--- a/so/so.go
++++ b/so/so.go
+@@ -63,7 +63,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"CK", "CD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"CK", "CD"},
+- timezones: map[string]string{"UYT": "UYT", "BT": "BT", "HEOG": "HEOG", "NZDT": "NZDT", "TMT": "TMT", "OEZ": "OEZ", "COST": "Waqtiyada Xagaaga Kolambiya", "MDT": "MDT", "HEPM": "HEPM", "GMT": "GMT", "SGT": "SGT", "WITA": "WITA", "PDT": "PDT", "WART": "WART", "HAST": "HAST", "JST": "JST", "HEEG": "HEEG", "GFT": "GFT", "CAT": "CAT", "ART": "ART", "AKDT": "AKDT", "WIT": "WIT", "MST": "MST", "UYST": "UYST", "ACWST": "ACWST", "HAT": "HAT", "ARST": "ARST", "AEST": "AEST", "AWDT": "AWDT", "HNNOMX": "HNNOMX", "GYT": "GYT", "VET": "VET", "MESZ": "MESZ", "LHDT": "LHDT", "NZST": "NZST", "WAT": "WAT", "ADT": "ADT", "IST": "IST", "EAT": "EAT", "CST": "CST", "HADT": "HADT", "WESZ": "WESZ", "HKT": "HKT", "HNPM": "HNPM", "SAST": "SAST", "JDT": "JDT", "BOT": "BOT", "WIB": "WIB", "OESZ": "OESZ", "WAST": "WAST", "MEZ": "MEZ", "CHAST": "CHAST", "HECU": "HECU", "HNT": "HNT", "HNOG": "HNOG", "AEDT": "AEDT", "CLT": "CLT", "TMST": "TMST", "ACST": "ACST", "WARST": "WARST", "PST": "PST", "AST": "AST", "WEZ": "WEZ", "HKST": "HKST", "LHST": "LHST", "ChST": "ChST", "HNEG": "HNEG", "EDT": "EDT", "HEPMX": "HEPMX", "CLST": "CLST", "HENOMX": "HENOMX", "HNCU": "HNCU", "EST": "EST", "SRT": "SRT", "CHADT": "CHADT", "ACDT": "ACDT", "MYT": "MYT", "AKST": "AKST", "AWST": "AWST", "ECT": "ECT", "COT": "Waqtiyada Caadiga ah ee kolambiya", "HNPMX": "HNPMX", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "CDT": "CDT"},
++ timezones: map[string]string{"EDT": "EDT", "NZDT": "NZDT", "LHDT": "LHDT", "HNPM": "HNPM", "HEPMX": "HEPMX", "HNT": "HNT", "GYT": "GYT", "MST": "MST", "ARST": "ARST", "BOT": "BOT", "MESZ": "MESZ", "PDT": "PDT", "CHAST": "CHAST", "MEZ": "MEZ", "IST": "IST", "BT": "BT", "HNPMX": "HNPMX", "SAST": "SAST", "OEZ": "OEZ", "WARST": "WARST", "CLST": "CLST", "NZST": "NZST", "ChST": "ChST", "ART": "ART", "AWST": "AWST", "HECU": "HECU", "CLT": "CLT", "MDT": "MDT", "HENOMX": "HENOMX", "JST": "JST", "WEZ": "WEZ", "HNNOMX": "HNNOMX", "UYT": "UYT", "AKST": "AKST", "CDT": "CDT", "AST": "AST", "GMT": "GMT", "HADT": "HADT", "HNEG": "HNEG", "ACWST": "ACWST", "TMT": "TMT", "WITA": "WITA", "AEDT": "AEDT", "COST": "Waqtiyada Xagaaga Kolambiya", "HEEG": "HEEG", "SGT": "SGT", "VET": "VET", "WAST": "WAST", "WIB": "WIB", "SRT": "SRT", "EAT": "EAT", "WART": "WART", "WIT": "WIT", "CAT": "CAT", "ECT": "ECT", "ADT": "ADT", "MYT": "MYT", "HEPM": "HEPM", "HNCU": "HNCU", "WAT": "WAT", "EST": "EST", "CST": "CST", "HAST": "HAST", "ACDT": "ACDT", "PST": "PST", "UYST": "UYST", "HKT": "HKT", "HKST": "HKST", "CHADT": "CHADT", "WESZ": "WESZ", "GFT": "GFT", "LHST": "LHST", "JDT": "JDT", "ACWDT": "ACWDT", "AKDT": "AKDT", "HAT": "HAT", "TMST": "TMST", "∅∅∅": "∅∅∅", "AWDT": "AWDT", "COT": "Waqtiyada Caadiga ah ee kolambiya", "HEOG": "HEOG", "ACST": "ACST", "AEST": "AEST", "OESZ": "OESZ", "HNOG": "HNOG"},
+ }
+ }
+ 
+diff --git a/so_DJ/so_DJ.go b/so_DJ/so_DJ.go
+index c75e340..dda46a2 100644
+--- a/so_DJ/so_DJ.go
++++ b/so_DJ/so_DJ.go
+@@ -42,28 +42,13 @@ type so_DJ struct {
+ // New returns a new instance of translator for the 'so_DJ' locale
+ func New() locales.Translator {
+ return &so_DJ{
+- locale: "so_DJ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "Fdj", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Kob", "Lab", "Sad", "Afr", "Sha", "Lix", "Tod", "Sid", "Sag", "Tob", "KIT", "LIT"},
+- monthsNarrow: []string{"", "K", "L", "S", "A", "S", "L", "T", "S", "S", "T", "K", "L"},
+- monthsWide: []string{"", "Bisha Koobaad", "Bisha Labaad", "Bisha Saddexaad", "Bisha Afraad", "Bisha Shanaad", "Bisha Lixaad", "Bisha Todobaad", "Bisha Sideedaad", "Bisha Sagaalaad", "Bisha Tobnaad", "Bisha Kow iyo Tobnaad", "Bisha Laba iyo Tobnaad"},
+- daysAbbreviated: []string{"Axd", "Isn", "Tal", "Arb", "Kha", "Jim", "Sab"},
+- daysNarrow: []string{"A", "I", "T", "A", "Kh", "J", "S"},
+- daysShort: []string{"Axd", "Isn", "Tal", "Arb", "Kha", "Jim", "Sab"},
+- daysWide: []string{"Axad", "Isniin", "Talaado", "Arbaco", "Khamiis", "Jimco", "Sabti"},
+- periodsAbbreviated: []string{"sn.", "gn."},
+- periodsNarrow: []string{"sn.", "gn."},
+- periodsWide: []string{"sn.", "gn."},
+- erasAbbreviated: []string{"CK", "CD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"CK", "CD"},
+- timezones: map[string]string{"MST": "MST", "UYT": "UYT", "UYST": "UYST", "ARST": "ARST", "ART": "ART", "HEOG": "HEOG", "HKT": "HKT", "CLST": "CLST", "JDT": "JDT", "EAT": "EAT", "HEPMX": "HEPMX", "AKST": "AKST", "SRT": "SRT", "ACWST": "ACWST", "HNOG": "HNOG", "WEZ": "WEZ", "BOT": "BOT", "GFT": "GFT", "EST": "EST", "AEDT": "AEDT", "IST": "IST", "ACDT": "ACDT", "HENOMX": "HENOMX", "ADT": "ADT", "NZST": "NZST", "NZDT": "NZDT", "CAT": "CAT", "COST": "Waqtiyada Xagaaga Kolambiya", "EDT": "EDT", "HADT": "HADT", "WITA": "WITA", "LHST": "LHST", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "HECU": "HECU", "HNPMX": "HNPMX", "CST": "CST", "ACWDT": "ACWDT", "AEST": "AEST", "HNPM": "HNPM", "TMT": "TMT", "OEZ": "OEZ", "WARST": "WARST", "COT": "Waqtiyada Caadiga ah ee kolambiya", "WIB": "WIB", "BT": "BT", "PST": "PST", "CHADT": "CHADT", "WAST": "WAST", "WART": "WART", "WIT": "WIT", "HAT": "HAT", "ChST": "ChST", "SGT": "SGT", "VET": "VET", "HKST": "HKST", "MESZ": "MESZ", "ACST": "ACST", "OESZ": "OESZ", "ECT": "ECT", "CLT": "CLT", "HNCU": "HNCU", "AKDT": "AKDT", "HNT": "HNT", "AWST": "AWST", "MEZ": "MEZ", "LHDT": "LHDT", "CHAST": "CHAST", "SAST": "SAST", "∅∅∅": "∅∅∅", "MDT": "MDT", "CDT": "CDT", "GYT": "GYT", "HAST": "HAST", "WESZ": "WESZ", "HEPM": "HEPM", "JST": "JST", "HNEG": "HNEG", "TMST": "TMST", "GMT": "GMT", "AST": "AST", "MYT": "MYT", "PDT": "PDT", "AWDT": "AWDT", "WAT": "WAT"},
++ locale: "so_DJ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "Fdj", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"LHDT": "LHDT", "PST": "PST", "WIT": "WIT", "EST": "EST", "HKST": "HKST", "HNNOMX": "HNNOMX", "CDT": "CDT", "AWST": "AWST", "UYST": "UYST", "PDT": "PDT", "WAST": "WAST", "AKST": "AKST", "HNT": "HNT", "∅∅∅": "∅∅∅", "COT": "COT", "GFT": "GFT", "BOT": "BOT", "GYT": "GYT", "COST": "COST", "EDT": "EDT", "OESZ": "OESZ", "HNEG": "HNEG", "JST": "JST", "JDT": "JDT", "MST": "MST", "ART": "ART", "ARST": "ARST", "GMT": "GMT", "SRT": "SRT", "MEZ": "MEZ", "ACST": "ACST", "ACWST": "ACWST", "WITA": "WITA", "SAST": "SAST", "SGT": "SGT", "HAST": "HAST", "HEPM": "HEPM", "IST": "IST", "BT": "BT", "HKT": "HKT", "NZDT": "NZDT", "HADT": "HADT", "CHAST": "CHAST", "UYT": "UYT", "TMST": "TMST", "ECT": "ECT", "ACDT": "ACDT", "HNPM": "HNPM", "AWDT": "AWDT", "HECU": "HECU", "AST": "AST", "WEZ": "WEZ", "WAT": "WAT", "OEZ": "OEZ", "NZST": "NZST", "MDT": "MDT", "LHST": "LHST", "CHADT": "CHADT", "HNCU": "HNCU", "WIB": "WIB", "EAT": "EAT", "HEPMX": "HEPMX", "WESZ": "WESZ", "VET": "VET", "WARST": "WARST", "ADT": "ADT", "CST": "CST", "MYT": "MYT", "ACWDT": "ACWDT", "AEST": "AEST", "TMT": "TMT", "CAT": "CAT", "HNPMX": "HNPMX", "HAT": "HAT", "WART": "WART", "CLST": "CLST", "HENOMX": "HENOMX", "MESZ": "MESZ", "HNOG": "HNOG", "CLT": "CLT", "HEEG": "HEEG", "AEDT": "AEDT", "AKDT": "AKDT", "HEOG": "HEOG", "ChST": "ChST"},
+ }
+ }
+ 
+@@ -116,7 +101,7 @@ func (so *so_DJ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (so *so_DJ) MonthsAbbreviated() []string {
+- return so.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -126,7 +111,7 @@ func (so *so_DJ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (so *so_DJ) MonthsNarrow() []string {
+- return so.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -136,7 +121,7 @@ func (so *so_DJ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (so *so_DJ) MonthsWide() []string {
+- return so.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -196,56 +181,7 @@ func (so *so_DJ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := so.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, so.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, so.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, so.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, so.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'so_DJ'
+@@ -254,64 +190,7 @@ func (so *so_DJ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := so.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, so.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, so.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, so.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, so.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'so_DJ'
+@@ -319,27 +198,6 @@ func (so *so_DJ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -348,21 +206,6 @@ func (so *so_DJ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, so.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -371,21 +214,6 @@ func (so *so_DJ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, so.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -394,24 +222,6 @@ func (so *so_DJ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, so.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, so.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -420,28 +230,6 @@ func (so *so_DJ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, so.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, so.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -450,35 +238,6 @@ func (so *so_DJ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, so.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, so.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -487,40 +246,6 @@ func (so *so_DJ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, so.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, so.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -529,44 +254,5 @@ func (so *so_DJ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, so.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, so.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := so.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/so_ET/so_ET.go b/so_ET/so_ET.go
+index 4a607b4..d9796f4 100644
+--- a/so_ET/so_ET.go
++++ b/so_ET/so_ET.go
+@@ -42,28 +42,13 @@ type so_ET struct {
+ // New returns a new instance of translator for the 'so_ET' locale
+ func New() locales.Translator {
+ return &so_ET{
+- locale: "so_ET",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "Br", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Kob", "Lab", "Sad", "Afr", "Sha", "Lix", "Tod", "Sid", "Sag", "Tob", "KIT", "LIT"},
+- monthsNarrow: []string{"", "K", "L", "S", "A", "S", "L", "T", "S", "S", "T", "K", "L"},
+- monthsWide: []string{"", "Bisha Koobaad", "Bisha Labaad", "Bisha Saddexaad", "Bisha Afraad", "Bisha Shanaad", "Bisha Lixaad", "Bisha Todobaad", "Bisha Sideedaad", "Bisha Sagaalaad", "Bisha Tobnaad", "Bisha Kow iyo Tobnaad", "Bisha Laba iyo Tobnaad"},
+- daysAbbreviated: []string{"Axd", "Isn", "Tal", "Arb", "Kha", "Jim", "Sab"},
+- daysNarrow: []string{"A", "I", "T", "A", "Kh", "J", "S"},
+- daysShort: []string{"Axd", "Isn", "Tal", "Arb", "Kha", "Jim", "Sab"},
+- daysWide: []string{"Axad", "Isniin", "Talaado", "Arbaco", "Khamiis", "Jimco", "Sabti"},
+- periodsAbbreviated: []string{"sn.", "gn."},
+- periodsNarrow: []string{"sn.", "gn."},
+- periodsWide: []string{"sn.", "gn."},
+- erasAbbreviated: []string{"CK", "CD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"CK", "CD"},
+- timezones: map[string]string{"∅∅∅": "∅∅∅", "ACWST": "ACWST", "MESZ": "MESZ", "CHADT": "CHADT", "ACDT": "ACDT", "GMT": "GMT", "HAST": "HAST", "AWDT": "AWDT", "NZST": "NZST", "TMST": "TMST", "JST": "JST", "HNEG": "HNEG", "ECT": "ECT", "COT": "Waqtiyada Caadiga ah ee kolambiya", "HENOMX": "HENOMX", "HNCU": "HNCU", "HNPMX": "HNPMX", "BT": "BT", "SAST": "SAST", "HECU": "HECU", "HEPMX": "HEPMX", "CST": "CST", "SRT": "SRT", "ACWDT": "ACWDT", "HAT": "HAT", "CHAST": "CHAST", "ACST": "ACST", "WIT": "WIT", "AEST": "AEST", "IST": "IST", "BOT": "BOT", "ART": "ART", "WART": "WART", "EST": "EST", "MDT": "MDT", "AST": "AST", "VET": "VET", "WEZ": "WEZ", "HNT": "HNT", "HNPM": "HNPM", "GFT": "GFT", "HNNOMX": "HNNOMX", "NZDT": "NZDT", "CAT": "CAT", "WAT": "WAT", "EDT": "EDT", "CDT": "CDT", "UYT": "UYT", "UYST": "UYST", "CLT": "CLT", "LHDT": "LHDT", "OEZ": "OEZ", "WARST": "WARST", "SGT": "SGT", "ADT": "ADT", "HADT": "HADT", "HEOG": "HEOG", "AWST": "AWST", "JDT": "JDT", "AKST": "AKST", "PDT": "PDT", "WITA": "WITA", "HEPM": "HEPM", "ChST": "ChST", "WAST": "WAST", "AKDT": "AKDT", "HKT": "HKT", "COST": "Waqtiyada Xagaaga Kolambiya", "AEDT": "AEDT", "TMT": "TMT", "MST": "MST", "WIB": "WIB", "PST": "PST", "MEZ": "MEZ", "HEEG": "HEEG", "OESZ": "OESZ", "GYT": "GYT", "WESZ": "WESZ", "HNOG": "HNOG", "HKST": "HKST", "EAT": "EAT", "MYT": "MYT", "ARST": "ARST", "LHST": "LHST", "CLST": "CLST"},
++ locale: "so_ET",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "Br", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEEG": "HEEG", "AWST": "AWST", "CDT": "CDT", "MST": "MST", "MDT": "MDT", "ChST": "ChST", "MESZ": "MESZ", "UYT": "UYT", "MYT": "MYT", "AEST": "AEST", "EDT": "EDT", "HKT": "HKT", "CAT": "CAT", "SRT": "SRT", "EAT": "EAT", "MEZ": "MEZ", "JST": "JST", "CHADT": "CHADT", "PDT": "PDT", "WEZ": "WEZ", "OEZ": "OEZ", "ARST": "ARST", "HNEG": "HNEG", "LHST": "LHST", "CLT": "CLT", "GYT": "GYT", "COT": "COT", "COST": "COST", "AST": "AST", "ACWST": "ACWST", "HNCU": "HNCU", "OESZ": "OESZ", "HEOG": "HEOG", "ADT": "ADT", "UYST": "UYST", "IST": "IST", "CHAST": "CHAST", "SGT": "SGT", "WIB": "WIB", "BOT": "BOT", "HAST": "HAST", "JDT": "JDT", "AEDT": "AEDT", "VET": "VET", "ART": "ART", "ACDT": "ACDT", "LHDT": "LHDT", "WITA": "WITA", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "HECU": "HECU", "HNNOMX": "HNNOMX", "PST": "PST", "AKST": "AKST", "AKDT": "AKDT", "SAST": "SAST", "CST": "CST", "GMT": "GMT", "HADT": "HADT", "TMST": "TMST", "WART": "WART", "ECT": "ECT", "ACST": "ACST", "HEPMX": "HEPMX", "WAT": "WAT", "WAST": "WAST", "HNT": "HNT", "NZST": "NZST", "NZDT": "NZDT", "AWDT": "AWDT", "WARST": "WARST", "EST": "EST", "TMT": "TMT", "HENOMX": "HENOMX", "BT": "BT", "WESZ": "WESZ", "HAT": "HAT", "HNOG": "HNOG", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "GFT": "GFT", "CLST": "CLST", "HEPM": "HEPM", "WIT": "WIT", "HKST": "HKST"},
+ }
+ }
+ 
+@@ -116,7 +101,7 @@ func (so *so_ET) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (so *so_ET) MonthsAbbreviated() []string {
+- return so.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -126,7 +111,7 @@ func (so *so_ET) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (so *so_ET) MonthsNarrow() []string {
+- return so.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -136,7 +121,7 @@ func (so *so_ET) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (so *so_ET) MonthsWide() []string {
+- return so.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -196,56 +181,7 @@ func (so *so_ET) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := so.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, so.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, so.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, so.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, so.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'so_ET'
+@@ -254,64 +190,7 @@ func (so *so_ET) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := so.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, so.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, so.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, so.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, so.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'so_ET'
+@@ -319,27 +198,6 @@ func (so *so_ET) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -348,21 +206,6 @@ func (so *so_ET) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, so.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -371,21 +214,6 @@ func (so *so_ET) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, so.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -394,24 +222,6 @@ func (so *so_ET) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, so.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, so.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -420,28 +230,6 @@ func (so *so_ET) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, so.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, so.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -450,35 +238,6 @@ func (so *so_ET) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, so.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, so.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -487,40 +246,6 @@ func (so *so_ET) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, so.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, so.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -529,44 +254,5 @@ func (so *so_ET) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, so.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, so.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := so.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/so_KE/so_KE.go b/so_KE/so_KE.go
+index 8b7d29a..7b38bbf 100644
+--- a/so_KE/so_KE.go
++++ b/so_KE/so_KE.go
+@@ -42,28 +42,13 @@ type so_KE struct {
+ // New returns a new instance of translator for the 'so_KE' locale
+ func New() locales.Translator {
+ return &so_KE{
+- locale: "so_KE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "Ksh", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Kob", "Lab", "Sad", "Afr", "Sha", "Lix", "Tod", "Sid", "Sag", "Tob", "KIT", "LIT"},
+- monthsNarrow: []string{"", "K", "L", "S", "A", "S", "L", "T", "S", "S", "T", "K", "L"},
+- monthsWide: []string{"", "Bisha Koobaad", "Bisha Labaad", "Bisha Saddexaad", "Bisha Afraad", "Bisha Shanaad", "Bisha Lixaad", "Bisha Todobaad", "Bisha Sideedaad", "Bisha Sagaalaad", "Bisha Tobnaad", "Bisha Kow iyo Tobnaad", "Bisha Laba iyo Tobnaad"},
+- daysAbbreviated: []string{"Axd", "Isn", "Tal", "Arb", "Kha", "Jim", "Sab"},
+- daysNarrow: []string{"A", "I", "T", "A", "Kh", "J", "S"},
+- daysShort: []string{"Axd", "Isn", "Tal", "Arb", "Kha", "Jim", "Sab"},
+- daysWide: []string{"Axad", "Isniin", "Talaado", "Arbaco", "Khamiis", "Jimco", "Sabti"},
+- periodsAbbreviated: []string{"sn.", "gn."},
+- periodsNarrow: []string{"sn.", "gn."},
+- periodsWide: []string{"sn.", "gn."},
+- erasAbbreviated: []string{"CK", "CD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"CK", "CD"},
+- timezones: map[string]string{"HNEG": "HNEG", "HEEG": "HEEG", "ADT": "ADT", "IST": "IST", "JST": "JST", "∅∅∅": "∅∅∅", "JDT": "JDT", "AKST": "AKST", "CST": "CST", "GYT": "GYT", "CLT": "CLT", "CLST": "CLST", "TMST": "TMST", "OESZ": "OESZ", "WARST": "WARST", "SGT": "SGT", "WIB": "WIB", "HAST": "HAST", "ARST": "ARST", "AWDT": "AWDT", "BT": "BT", "UYT": "UYT", "HADT": "HADT", "SRT": "SRT", "HAT": "HAT", "MEZ": "MEZ", "EDT": "EDT", "VET": "VET", "ChST": "ChST", "EST": "EST", "EAT": "EAT", "WAT": "WAT", "MST": "MST", "HNPMX": "HNPMX", "WIT": "WIT", "HNPM": "HNPM", "CAT": "CAT", "WART": "WART", "OEZ": "OEZ", "WEZ": "WEZ", "HKST": "HKST", "WITA": "WITA", "BOT": "BOT", "GFT": "GFT", "HNNOMX": "HNNOMX", "PST": "PST", "ART": "ART", "ACDT": "ACDT", "COST": "Waqtiyada Xagaaga Kolambiya", "HENOMX": "HENOMX", "HNCU": "HNCU", "PDT": "PDT", "LHST": "LHST", "MYT": "MYT", "HEPM": "HEPM", "NZDT": "NZDT", "LHDT": "LHDT", "GMT": "GMT", "HEPMX": "HEPMX", "ACWST": "ACWST", "AEDT": "AEDT", "CHADT": "CHADT", "TMT": "TMT", "WAST": "WAST", "MDT": "MDT", "ACWDT": "ACWDT", "MESZ": "MESZ", "CHAST": "CHAST", "SAST": "SAST", "COT": "Waqtiyada Caadiga ah ee kolambiya", "HNOG": "HNOG", "AWST": "AWST", "NZST": "NZST", "AKDT": "AKDT", "CDT": "CDT", "AST": "AST", "WESZ": "WESZ", "HKT": "HKT", "AEST": "AEST", "ACST": "ACST", "ECT": "ECT", "HECU": "HECU", "UYST": "UYST", "HNT": "HNT", "HEOG": "HEOG"},
++ locale: "so_KE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "Ksh", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNT": "HNT", "GYT": "GYT", "HADT": "HADT", "AWDT": "AWDT", "HNNOMX": "HNNOMX", "LHST": "LHST", "PST": "PST", "BT": "BT", "SGT": "SGT", "WAST": "WAST", "GFT": "GFT", "HAT": "HAT", "LHDT": "LHDT", "WIT": "WIT", "EST": "EST", "ACST": "ACST", "COT": "COT", "EDT": "EDT", "HKST": "HKST", "TMST": "TMST", "CLT": "CLT", "WITA": "WITA", "MESZ": "MESZ", "JDT": "JDT", "UYST": "UYST", "VET": "VET", "OESZ": "OESZ", "MDT": "MDT", "BOT": "BOT", "HNPM": "HNPM", "ACWST": "ACWST", "AST": "AST", "GMT": "GMT", "IST": "IST", "WESZ": "WESZ", "AKDT": "AKDT", "HNEG": "HNEG", "CHAST": "CHAST", "NZDT": "NZDT", "ECT": "ECT", "AEDT": "AEDT", "HEOG": "HEOG", "ARST": "ARST", "ACDT": "ACDT", "MYT": "MYT", "ACWDT": "ACWDT", "OEZ": "OEZ", "WIB": "WIB", "MST": "MST", "HAST": "HAST", "MEZ": "MEZ", "JST": "JST", "HNCU": "HNCU", "HKT": "HKT", "CST": "CST", "CDT": "CDT", "ChST": "ChST", "ART": "ART", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "AKST": "AKST", "WARST": "WARST", "HNOG": "HNOG", "TMT": "TMT", "CLST": "CLST", "EAT": "EAT", "HEEG": "HEEG", "CHADT": "CHADT", "WAT": "WAT", "COST": "COST", "SRT": "SRT", "AWST": "AWST", "UYT": "UYT", "HNPMX": "HNPMX", "HECU": "HECU", "WART": "WART", "SAST": "SAST", "CAT": "CAT", "HEPM": "HEPM", "WEZ": "WEZ", "NZST": "NZST", "ADT": "ADT", "AEST": "AEST", "PDT": "PDT", "HEPMX": "HEPMX"},
+ }
+ }
+ 
+@@ -116,7 +101,7 @@ func (so *so_KE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (so *so_KE) MonthsAbbreviated() []string {
+- return so.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -126,7 +111,7 @@ func (so *so_KE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (so *so_KE) MonthsNarrow() []string {
+- return so.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -136,7 +121,7 @@ func (so *so_KE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (so *so_KE) MonthsWide() []string {
+- return so.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -196,56 +181,7 @@ func (so *so_KE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := so.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, so.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, so.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, so.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, so.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'so_KE'
+@@ -254,64 +190,7 @@ func (so *so_KE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := so.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, so.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, so.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, so.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, so.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'so_KE'
+@@ -319,27 +198,6 @@ func (so *so_KE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -348,21 +206,6 @@ func (so *so_KE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, so.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -371,21 +214,6 @@ func (so *so_KE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, so.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -394,24 +222,6 @@ func (so *so_KE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, so.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, so.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/so_SO/so_SO.go b/so_SO/so_SO.go
+index 355d0ac..18bef8e 100644
+--- a/so_SO/so_SO.go
++++ b/so_SO/so_SO.go
+@@ -42,28 +42,13 @@ type so_SO struct {
+ // New returns a new instance of translator for the 'so_SO' locale
+ func New() locales.Translator {
+ return &so_SO{
+- locale: "so_SO",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Kob", "Lab", "Sad", "Afr", "Sha", "Lix", "Tod", "Sid", "Sag", "Tob", "KIT", "LIT"},
+- monthsNarrow: []string{"", "K", "L", "S", "A", "S", "L", "T", "S", "S", "T", "K", "L"},
+- monthsWide: []string{"", "Bisha Koobaad", "Bisha Labaad", "Bisha Saddexaad", "Bisha Afraad", "Bisha Shanaad", "Bisha Lixaad", "Bisha Todobaad", "Bisha Sideedaad", "Bisha Sagaalaad", "Bisha Tobnaad", "Bisha Kow iyo Tobnaad", "Bisha Laba iyo Tobnaad"},
+- daysAbbreviated: []string{"Axd", "Isn", "Tal", "Arb", "Kha", "Jim", "Sab"},
+- daysNarrow: []string{"A", "I", "T", "A", "Kh", "J", "S"},
+- daysShort: []string{"Axd", "Isn", "Tal", "Arb", "Kha", "Jim", "Sab"},
+- daysWide: []string{"Axad", "Isniin", "Talaado", "Arbaco", "Khamiis", "Jimco", "Sabti"},
+- periodsAbbreviated: []string{"sn.", "gn."},
+- periodsNarrow: []string{"sn.", "gn."},
+- periodsWide: []string{"sn.", "gn."},
+- erasAbbreviated: []string{"CK", "CD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"CK", "CD"},
+- timezones: map[string]string{"AKST": "AKST", "ACWDT": "ACWDT", "WITA": "WITA", "BOT": "BOT", "HEPMX": "HEPMX", "EAT": "EAT", "AKDT": "AKDT", "HADT": "HADT", "JST": "JST", "JDT": "JDT", "PDT": "PDT", "ACST": "ACST", "COT": "Waqtiyada Caadiga ah ee kolambiya", "ADT": "ADT", "GYT": "GYT", "SRT": "SRT", "HNT": "HNT", "AEST": "AEST", "HEPM": "HEPM", "HNCU": "HNCU", "CDT": "CDT", "CHADT": "CHADT", "WAT": "WAT", "UYT": "UYT", "WESZ": "WESZ", "AWDT": "AWDT", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "TMST": "TMST", "BT": "BT", "SAST": "SAST", "CAT": "CAT", "ACWST": "ACWST", "ART": "ART", "HECU": "HECU", "MST": "MST", "HNNOMX": "HNNOMX", "EDT": "EDT", "UYST": "UYST", "WIT": "WIT", "HKST": "HKST", "AEDT": "AEDT", "TMT": "TMT", "ACDT": "ACDT", "AWST": "AWST", "OESZ": "OESZ", "COST": "Waqtiyada Xagaaga Kolambiya", "GFT": "GFT", "WAST": "WAST", "HEOG": "HEOG", "ChST": "ChST", "SGT": "SGT", "PST": "PST", "WEZ": "WEZ", "HNEG": "HNEG", "WARST": "WARST", "AST": "AST", "VET": "VET", "HNOG": "HNOG", "CLT": "CLT", "WART": "WART", "MEZ": "MEZ", "CLST": "CLST", "WIB": "WIB", "MDT": "MDT", "MYT": "MYT", "HKT": "HKT", "HNPM": "HNPM", "NZST": "NZST", "CHAST": "CHAST", "ECT": "ECT", "GMT": "GMT", "HAT": "HAT", "LHST": "LHST", "LHDT": "LHDT", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "OEZ": "OEZ", "EST": "EST", "CST": "CST", "HAST": "HAST", "ARST": "ARST", "NZDT": "NZDT", "IST": "IST", "HEEG": "HEEG"},
++ locale: "so_SO",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"LHST": "LHST", "AKDT": "AKDT", "HAT": "HAT", "CAT": "CAT", "HEEG": "HEEG", "HNPMX": "HNPMX", "WESZ": "WESZ", "SGT": "SGT", "TMT": "TMT", "PDT": "PDT", "WEZ": "WEZ", "VET": "VET", "WITA": "WITA", "ADT": "ADT", "UYT": "UYT", "WART": "WART", "WIT": "WIT", "TMST": "TMST", "MDT": "MDT", "ECT": "ECT", "OESZ": "OESZ", "COT": "COT", "WIB": "WIB", "HAST": "HAST", "HNEG": "HNEG", "HEPM": "HEPM", "HADT": "HADT", "HNPM": "HNPM", "ACWDT": "ACWDT", "GYT": "GYT", "SRT": "SRT", "EAT": "EAT", "CHAST": "CHAST", "EDT": "EDT", "CLST": "CLST", "NZDT": "NZDT", "EST": "EST", "HENOMX": "HENOMX", "JST": "JST", "ACWST": "ACWST", "OEZ": "OEZ", "AST": "AST", "ACST": "ACST", "AEST": "AEST", "BT": "BT", "HECU": "HECU", "HKST": "HKST", "CDT": "CDT", "AWDT": "AWDT", "COST": "COST", "HNOG": "HNOG", "CST": "CST", "MST": "MST", "ART": "ART", "ARST": "ARST", "AKST": "AKST", "HNNOMX": "HNNOMX", "∅∅∅": "∅∅∅", "IST": "IST", "HEPMX": "HEPMX", "SAST": "SAST", "HEOG": "HEOG", "HKT": "HKT", "NZST": "NZST", "UYST": "UYST", "ChST": "ChST", "ACDT": "ACDT", "JDT": "JDT", "WAST": "WAST", "MEZ": "MEZ", "LHDT": "LHDT", "AEDT": "AEDT", "PST": "PST", "HNCU": "HNCU", "WAT": "WAT", "GFT": "GFT", "HNT": "HNT", "MESZ": "MESZ", "CLT": "CLT", "GMT": "GMT", "BOT": "BOT", "WARST": "WARST", "MYT": "MYT", "CHADT": "CHADT", "AWST": "AWST"},
+ }
+ }
+ 
+@@ -116,7 +101,7 @@ func (so *so_SO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (so *so_SO) MonthsAbbreviated() []string {
+- return so.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -126,7 +111,7 @@ func (so *so_SO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (so *so_SO) MonthsNarrow() []string {
+- return so.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -136,7 +121,7 @@ func (so *so_SO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (so *so_SO) MonthsWide() []string {
+- return so.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -196,56 +181,7 @@ func (so *so_SO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := so.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, so.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, so.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, so.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, so.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'so_SO'
+@@ -254,64 +190,7 @@ func (so *so_SO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := so.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, so.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, so.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, so.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, so.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'so_SO'
+@@ -319,27 +198,6 @@ func (so *so_SO) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -348,21 +206,6 @@ func (so *so_SO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, so.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -371,21 +214,6 @@ func (so *so_SO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, so.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -394,24 +222,6 @@ func (so *so_SO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, so.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, so.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -420,28 +230,6 @@ func (so *so_SO) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, so.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, so.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -450,35 +238,6 @@ func (so *so_SO) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, so.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, so.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -487,40 +246,6 @@ func (so *so_SO) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, so.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, so.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -529,44 +254,5 @@ func (so *so_SO) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, so.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, so.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, so.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := so.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sq/sq.go b/sq/sq.go
+index afd3653..1fdb580 100644
+--- a/sq/sq.go
++++ b/sq/sq.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"p.K.", "mb.K."},
+ erasNarrow: []string{"p.K.", "mb.K."},
+ erasWide: []string{"para Krishtit", "mbas Krishtit"},
+- timezones: map[string]string{"WIT": "Ora e Indonezisë Lindore", "WEZ": "Ora standarde e Evropës Perëndimore", "JDT": "Ora verore e Japonisë", "HNEG": "Ora standarde e Grenlandës Lindore", "TMT": "Ora standarde e Turkmenistanit", "ACST": "Ora standarde e Australisë Qendrore", "OEZ": "Ora standarde e Evropës Lindore", "HENOMX": "Ora verore e Meksikës Veriperëndimore", "ARST": "Ora verore e Argjentinës", "WITA": "Ora e Indonezisë Qendrore", "TMST": "Ora verore e Turkmenistanit", "CAT": "Ora e Afrikës Qendrore", "EAT": "Ora e Afrikës Lindore", "COT": "Ora standarde e Kolumbisë", "HAST": "Ora standarde e Ishujve Hauai-Aleutian", "CHAST": "Ora standarde e Katamit", "WAST": "Ora verore e Afrikës Perëndimore", "HNNOMX": "Ora standarde e Meksikës Veriperëndimore", "EST": "Ora standarde e SHBA-së Lindore", "GYT": "Ora e Guajanës", "UYST": "Ora verore e Uruguait", "AEDT": "Ora verore e Australisë Lindore", "BOT": "Ora e Bolivisë", "HNCU": "Ora standarde e Kubës", "EDT": "Ora verore e SHBA-së Lindore", "CDT": "Ora verore e SHBA-së Qendrore", "WESZ": "Ora verore e Evropës Perëndimore", "HNT": "Ora standarde e Njufaundlendit [Tokës së Re]", "GMT": "Ora e Meridianit të Grinuiçit", "UYT": "Ora standarde e Uruguait", "ACWST": "Ora standarde e Australisë Qendroro-Perëndimore", "CHADT": "Ora verore e Katamit", "GFT": "Ora e Guajanës Franceze", "AST": "Ora standarde e Atlantikut", "HNPM": "Ora standarde e Shën-Pier dhe Mikuelon", "NZST": "Ora standarde e Zelandës së Re", "∅∅∅": "Ora verore e Amazonës", "HEEG": "Ora verore e Grenlandës Lindore", "HEPMX": "Ora verore meksikane e Bregut të Paqësorit", "LHDT": "Ora verore e Lord-Houit", "SAST": "Ora standarde e Afrikës Jugore", "ChST": "Ora e Kamorros", "HNPMX": "Ora standarde meksikane e Bregut të Paqësorit", "HADT": "Ora verore e Ishujve Hauai-Aleutian", "PDT": "Ora verore amerikane e Bregut të Paqësorit", "ACDT": "Ora verore e Australisë Qendrore", "MST": "Ora standarde e Makaos", "COST": "Ora verore e Kolumbisë", "HECU": "Ora verore e Kubës", "HAT": "Ora verore e Njufaundlendit [Tokës së Re]", "HEPM": "Ora verore e Shën-Pier dhe Mikuelon", "WARST": "Ora verore e Argjentinës Perëndimore", "SGT": "Ora e Singaporit", "CST": "Ora standarde e SHBA-së Qendrore", "BT": "Ora e Butanit", "PST": "Ora standarde amerikane e Bregut të Paqësorit", "VET": "Ora e Venezuelës", "MESZ": "Ora verore e Evropës Qendrore", "NZDT": "Ora verore e Zelandës së Re", "ACWDT": "Ora verore e Australisë Qendroro-Perëndimore", "LHST": "Ora standarde e Lord-Houit", "IST": "Ora standarde e Indisë", "WAT": "Ora standarde e Afrikës Perëndimore", "OESZ": "Ora verore e Evropës Lindore", "AKDT": "Ora verore e Alsaskës", "MYT": "Ora e Malajzisë", "SRT": "Ora e Surinamit", "JST": "Ora standarde e Japonisë", "HNOG": "Ora standarde e Grenlandës Perëndimore", "HKT": "Ora standarde e Hong-Kongut", "CLST": "Ora verore e Kilit", "AKST": "Ora standarde e Alaskës", "ADT": "Ora verore e Atlantikut", "ART": "Ora standarde e Argjentinës", "AWDT": "Ora verore e Australisë Perëndimore", "AEST": "Ora standarde e Australisë Lindore", "AWST": "Ora standarde e Australisë Perëndimore", "CLT": "Ora standarde e Kilit", "ECT": "Ora e Ekuadorit", "WART": "Ora standarde e Argjentinës Perëndimore", "MDT": "Ora verore e Makaos", "WIB": "Ora e Indonezisë Perëndimore", "HEOG": "Ora verore e Grenlandës Perëndimore", "HKST": "Ora verore e Hong-Kongut", "MEZ": "Ora standarde e Evropës Qendrore"},
++ timezones: map[string]string{"HNEG": "Ora standarde e Grenlandës Lindore", "HNPM": "Ora standarde e Shën-Pier dhe Mikuelon", "CHAST": "Ora standarde e Katamit", "BT": "Ora e Butanit", "HECU": "Ora verore e Kubës", "HNOG": "Ora standarde e Grenlandës Perëndimore", "MESZ": "Ora verore e Evropës Qendrore", "HENOMX": "Ora verore e Meksikës Veriperëndimore", "WAST": "Ora verore e Afrikës Perëndimore", "SAST": "Ora standarde e Afrikës Jugore", "HADT": "Ora verore e Ishujve Hauai-Aleutian", "NZST": "Ora standarde e Zelandës së Re", "ACDT": "Ora verore e Australisë Qendrore", "CHADT": "Ora verore e Katamit", "OESZ": "Ora verore e Evropës Lindore", "GYT": "Ora e Guajanës", "COST": "Ora verore e Kolumbisë", "CDT": "Ora verore e SHBA-së Qendrore", "ARST": "Ora verore e Argjentinës", "SRT": "Ora e Surinamit", "WESZ": "Ora verore e Evropës Perëndimore", "GMT": "Ora e Meridianit të Grinuiçit", "AST": "Ora standarde e Atlantikut", "BOT": "Ora e Bolivisë", "EAT": "Ora e Afrikës Lindore", "AEST": "Ora standarde e Australisë Lindore", "HNT": "Ora standarde e Njufaundlendit [Tokës së Re]", "WART": "Ora standarde e Argjentinës Perëndimore", "CLT": "Ora standarde e Kilit", "ECT": "Ora e Ekuadorit", "ACST": "Ora standarde e Australisë Qendrore", "HEEG": "Ora verore e Grenlandës Lindore", "ACWST": "Ora standarde e Australisë Qendroro-Perëndimore", "WARST": "Ora verore e Argjentinës Perëndimore", "WIT": "Ora e Indonezisë Lindore", "MST": "Ora standarde e Makaos", "HEPMX": "Ora verore meksikane e Bregut të Paqësorit", "AKST": "Ora standarde e Alaskës", "OEZ": "Ora standarde e Evropës Lindore", "GFT": "Ora e Guajanës Franceze", "AWST": "Ora standarde e Australisë Perëndimore", "HEPM": "Ora verore e Shën-Pier dhe Mikuelon", "UYST": "Ora verore e Uruguait", "IST": "Ora standarde e Indisë", "AKDT": "Ora verore e Alsaskës", "AWDT": "Ora verore e Australisë Perëndimore", "HAST": "Ora standarde e Ishujve Hauai-Aleutian", "JDT": "Ora verore e Japonisë", "WEZ": "Ora standarde e Evropës Perëndimore", "HKT": "Ora standarde e Hong-Kongut", "TMST": "Ora verore e Turkmenistanit", "ChST": "Ora e Kamorros", "HNNOMX": "Ora standarde e Meksikës Veriperëndimore", "JST": "Ora standarde e Japonisë", "LHST": "Ora standarde e Lord-Houit", "CLST": "Ora verore e Kilit", "MDT": "Ora verore e Makaos", "NZDT": "Ora verore e Zelandës së Re", "ART": "Ora standarde e Argjentinës", "AEDT": "Ora verore e Australisë Lindore", "UYT": "Ora standarde e Uruguait", "SGT": "Ora e Singaporit", "WAT": "Ora standarde e Afrikës Perëndimore", "HAT": "Ora verore e Njufaundlendit [Tokës së Re]", "WIB": "Ora e Indonezisë Perëndimore", "WITA": "Ora e Indonezisë Qendrore", "VET": "Ora e Venezuelës", "HKST": "Ora verore e Hong-Kongut", "ACWDT": "Ora verore e Australisë Qendroro-Perëndimore", "LHDT": "Ora verore e Lord-Houit", "MYT": "Ora e Malajzisë", "PDT": "Ora verore amerikane e Bregut të Paqësorit", "COT": "Ora standarde e Kolumbisë", "EDT": "Ora verore e SHBA-së Lindore", "TMT": "Ora standarde e Turkmenistanit", "ADT": "Ora verore e Atlantikut", "∅∅∅": "Ora verore e Ejkrit [Ako]", "PST": "Ora standarde amerikane e Bregut të Paqësorit", "HNPMX": "Ora standarde meksikane e Bregut të Paqësorit", "HNCU": "Ora standarde e Kubës", "EST": "Ora standarde e SHBA-së Lindore", "CST": "Ora standarde e SHBA-së Qendrore", "HEOG": "Ora verore e Grenlandës Perëndimore", "CAT": "Ora e Afrikës Qendrore", "MEZ": "Ora standarde e Evropës Qendrore"},
+ }
+ }
+ 
+diff --git a/sq_AL/sq_AL.go b/sq_AL/sq_AL.go
+index e2bb61f..74a5e28 100644
+--- a/sq_AL/sq_AL.go
++++ b/sq_AL/sq_AL.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type sq_AL struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sq_AL' locale
+ func New() locales.Translator {
+ return &sq_AL{
+- locale: "sq_AL",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 5, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "jan", "shk", "mar", "pri", "maj", "qer", "kor", "gsh", "sht", "tet", "nën", "dhj"},
+- monthsNarrow: []string{"", "j", "s", "m", "p", "m", "q", "k", "g", "s", "t", "n", "d"},
+- monthsWide: []string{"", "janar", "shkurt", "mars", "prill", "maj", "qershor", "korrik", "gusht", "shtator", "tetor", "nëntor", "dhjetor"},
+- daysAbbreviated: []string{"Die", "Hën", "Mar", "Mër", "Enj", "Pre", "Sht"},
+- daysNarrow: []string{"D", "H", "M", "M", "E", "P", "S"},
+- daysShort: []string{"Die", "Hën", "Mar", "Mër", "Enj", "Pre", "Sht"},
+- daysWide: []string{"e diel", "e hënë", "e martë", "e mërkurë", "e enjte", "e premte", "e shtunë"},
+- periodsAbbreviated: []string{"e paradites", "e pasdites"},
+- periodsNarrow: []string{"e paradites", "e pasdites"},
+- periodsWide: []string{"e paradites", "e pasdites"},
+- erasAbbreviated: []string{"p.K.", "mb.K."},
+- erasNarrow: []string{"p.K.", "mb.K."},
+- erasWide: []string{"para Krishtit", "mbas Krishtit"},
+- timezones: map[string]string{"HECU": "Ora verore e Kubës", "EDT": "Ora verore e SHBA-së Lindore", "MYT": "Ora e Malajzisë", "SAST": "Ora standarde e Afrikës Jugore", "GFT": "Ora e Guajanës Franceze", "WAT": "Ora standarde e Afrikës Perëndimore", "SGT": "Ora e Singaporit", "MEZ": "Ora standarde e Evropës Qendrore", "HEEG": "Ora verore e Grenlandës Lindore", "MST": "Ora standarde e Makaos", "ECT": "Ora e Ekuadorit", "HNNOMX": "Ora standarde e Meksikës Veriperëndimore", "VET": "Ora e Venezuelës", "WEZ": "Ora standarde e Evropës Perëndimore", "AWDT": "Ora verore e Australisë Perëndimore", "∅∅∅": "Ora verore e Amazonës", "JST": "Ora standarde e Japonisë", "TMST": "Ora verore e Turkmenistanit", "ACWDT": "Ora verore e Australisë Qendroro-Perëndimore", "HEOG": "Ora verore e Grenlandës Perëndimore", "EST": "Ora standarde e SHBA-së Lindore", "GYT": "Ora e Guajanës", "BT": "Ora e Butanit", "WESZ": "Ora verore e Evropës Perëndimore", "AEST": "Ora standarde e Australisë Lindore", "HNPM": "Ora standarde e Shën-Pier dhe Mikuelon", "BOT": "Ora e Bolivisë", "CST": "Ora standarde e SHBA-së Qendrore", "WAST": "Ora verore e Afrikës Perëndimore", "OESZ": "Ora verore e Evropës Lindore", "HENOMX": "Ora verore e Meksikës Veriperëndimore", "AKST": "Ora standarde e Alaskës", "HEPM": "Ora verore e Shën-Pier dhe Mikuelon", "ChST": "Ora e Kamorros", "ACDT": "Ora verore e Australisë Qendrore", "EAT": "Ora e Afrikës Lindore", "AKDT": "Ora verore e Alsaskës", "PDT": "Ora verore amerikane e Bregut të Paqësorit", "ACWST": "Ora standarde e Australisë Qendroro-Perëndimore", "WITA": "Ora e Indonezisë Qendrore", "CHAST": "Ora standarde e Katamit", "CLT": "Ora standarde e Kilit", "AST": "Ora standarde e Atlantikut", "NZDT": "Ora verore e Zelandës së Re", "CAT": "Ora e Afrikës Qendrore", "COST": "Ora verore e Kolumbisë", "HNPMX": "Ora standarde meksikane e Bregut të Paqësorit", "ADT": "Ora verore e Atlantikut", "HNOG": "Ora standarde e Grenlandës Perëndimore", "AWST": "Ora standarde e Australisë Perëndimore", "HKT": "Ora standarde e Hong-Kongut", "LHST": "Ora standarde e Lord-Houit", "CLST": "Ora verore e Kilit", "HNT": "Ora standarde e Njufaundlendit [Tokës së Re]", "ART": "Ora standarde e Argjentinës", "ACST": "Ora standarde e Australisë Qendrore", "WARST": "Ora verore e Argjentinës Perëndimore", "GMT": "Ora e Meridianit të Grinuiçit", "HADT": "Ora verore e Ishujve Hauai-Aleutian", "HAST": "Ora standarde e Ishujve Hauai-Aleutian", "SRT": "Ora e Surinamit", "CHADT": "Ora verore e Katamit", "HNEG": "Ora standarde e Grenlandës Lindore", "TMT": "Ora standarde e Turkmenistanit", "WART": "Ora standarde e Argjentinës Perëndimore", "MESZ": "Ora verore e Evropës Qendrore", "COT": "Ora standarde e Kolumbisë", "HEPMX": "Ora verore meksikane e Bregut të Paqësorit", "UYT": "Ora standarde e Uruguait", "WIT": "Ora e Indonezisë Lindore", "HKST": "Ora verore e Hong-Kongut", "LHDT": "Ora verore e Lord-Houit", "NZST": "Ora standarde e Zelandës së Re", "HNCU": "Ora standarde e Kubës", "OEZ": "Ora standarde e Evropës Lindore", "MDT": "Ora verore e Makaos", "CDT": "Ora verore e SHBA-së Qendrore", "ARST": "Ora verore e Argjentinës", "PST": "Ora standarde amerikane e Bregut të Paqësorit", "AEDT": "Ora verore e Australisë Lindore", "IST": "Ora standarde e Indisë", "JDT": "Ora verore e Japonisë", "WIB": "Ora e Indonezisë Perëndimore", "UYST": "Ora verore e Uruguait", "HAT": "Ora verore e Njufaundlendit [Tokës së Re]"},
++ locale: "sq_AL",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 5, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HECU": "HECU", "COST": "COST", "HEEG": "HEEG", "UYT": "UYT", "AKDT": "AKDT", "CLT": "CLT", "ACDT": "ACDT", "AEST": "AEST", "HNPMX": "HNPMX", "AST": "AST", "HAST": "HAST", "MEZ": "MEZ", "CHADT": "CHADT", "HAT": "HAT", "WART": "WART", "CAT": "CAT", "ART": "ART", "HNNOMX": "HNNOMX", "OESZ": "OESZ", "∅∅∅": "∅∅∅", "WEZ": "WEZ", "EDT": "EDT", "HENOMX": "HENOMX", "MYT": "MYT", "ACWDT": "ACWDT", "CHAST": "CHAST", "PST": "PST", "BT": "BT", "WAT": "WAT", "NZST": "NZST", "HNEG": "HNEG", "LHST": "LHST", "COT": "COT", "IST": "IST", "ADT": "ADT", "SAST": "SAST", "EST": "EST", "TMST": "TMST", "MDT": "MDT", "EAT": "EAT", "GYT": "GYT", "AWST": "AWST", "AWDT": "AWDT", "HNCU": "HNCU", "VET": "VET", "TMT": "TMT", "CST": "CST", "ACST": "ACST", "JST": "JST", "SRT": "SRT", "MESZ": "MESZ", "NZDT": "NZDT", "ACWST": "ACWST", "AKST": "AKST", "GFT": "GFT", "CDT": "CDT", "ARST": "ARST", "LHDT": "LHDT", "HNT": "HNT", "WIT": "WIT", "HNOG": "HNOG", "HEOG": "HEOG", "HKST": "HKST", "UYST": "UYST", "AEDT": "AEDT", "HEPMX": "HEPMX", "OEZ": "OEZ", "WITA": "WITA", "WIB": "WIB", "GMT": "GMT", "HEPM": "HEPM", "JDT": "JDT", "PDT": "PDT", "WESZ": "WESZ", "WAST": "WAST", "ECT": "ECT", "MST": "MST", "ChST": "ChST", "HNPM": "HNPM", "HADT": "HADT", "WARST": "WARST", "HKT": "HKT", "CLST": "CLST", "BOT": "BOT", "SGT": "SGT"},
+ }
+ }
+ 
+@@ -148,7 +123,7 @@ func (sq *sq_AL) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sq *sq_AL) MonthsAbbreviated() []string {
+- return sq.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -158,7 +133,7 @@ func (sq *sq_AL) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sq *sq_AL) MonthsNarrow() []string {
+- return sq.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -168,7 +143,7 @@ func (sq *sq_AL) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sq *sq_AL) MonthsWide() []string {
+- return sq.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -214,75 +189,13 @@ func (sq *sq_AL) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sq_AL' and handles both Whole and Real numbers based on 'v'
+ func (sq *sq_AL) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sq.group) - 1; j >= 0; j-- {
+- b = append(b, sq.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sq_AL' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sq *sq_AL) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sq.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sq.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sq_AL'
+@@ -290,58 +203,7 @@ func (sq *sq_AL) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sq.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sq.group) - 1; j >= 0; j-- {
+- b = append(b, sq.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sq.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sq.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sq_AL'
+@@ -350,65 +212,7 @@ func (sq *sq_AL) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sq.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sq.group) - 1; j >= 0; j-- {
+- b = append(b, sq.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, sq.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sq.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sq.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sq.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sq_AL'
+@@ -416,17 +220,6 @@ func (sq *sq_AL) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -435,17 +228,6 @@ func (sq *sq_AL) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sq.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,17 +236,6 @@ func (sq *sq_AL) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sq.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -473,19 +244,6 @@ func (sq *sq_AL) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sq.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sq.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -494,28 +252,6 @@ func (sq *sq_AL) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, sq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, sq.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, sq.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -524,35 +260,6 @@ func (sq *sq_AL) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, sq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, sq.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, sq.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -561,40 +268,6 @@ func (sq *sq_AL) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, sq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, sq.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, sq.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -603,44 +276,5 @@ func (sq *sq_AL) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, sq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, sq.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, sq.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sq.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sq_MK/sq_MK.go b/sq_MK/sq_MK.go
+index 84ff3ec..5771358 100644
+--- a/sq_MK/sq_MK.go
++++ b/sq_MK/sq_MK.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type sq_MK struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sq_MK' locale
+ func New() locales.Translator {
+ return &sq_MK{
+- locale: "sq_MK",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 5, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "den", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "jan", "shk", "mar", "pri", "maj", "qer", "kor", "gsh", "sht", "tet", "nën", "dhj"},
+- monthsNarrow: []string{"", "j", "s", "m", "p", "m", "q", "k", "g", "s", "t", "n", "d"},
+- monthsWide: []string{"", "janar", "shkurt", "mars", "prill", "maj", "qershor", "korrik", "gusht", "shtator", "tetor", "nëntor", "dhjetor"},
+- daysAbbreviated: []string{"Die", "Hën", "Mar", "Mër", "Enj", "Pre", "Sht"},
+- daysNarrow: []string{"D", "H", "M", "M", "E", "P", "S"},
+- daysShort: []string{"Die", "Hën", "Mar", "Mër", "Enj", "Pre", "Sht"},
+- daysWide: []string{"e diel", "e hënë", "e martë", "e mërkurë", "e enjte", "e premte", "e shtunë"},
+- periodsAbbreviated: []string{"e paradites", "e pasdites"},
+- periodsNarrow: []string{"e paradites", "e pasdites"},
+- periodsWide: []string{"e paradites", "e pasdites"},
+- erasAbbreviated: []string{"p.K.", "mb.K."},
+- erasNarrow: []string{"p.K.", "mb.K."},
+- erasWide: []string{"para Krishtit", "mbas Krishtit"},
+- timezones: map[string]string{"HNNOMX": "Ora standarde e Meksikës Veriperëndimore", "BT": "Ora e Butanit", "ART": "Ora standarde e Argjentinës", "HKT": "Ora standarde e Hong-Kongut", "CHAST": "Ora standarde e Katamit", "IST": "Ora standarde e Indisë", "∅∅∅": "Ora verore e Amazonës", "HNEG": "Ora standarde e Grenlandës Lindore", "GMT": "Ora e Meridianit të Grinuiçit", "EDT": "Ora verore e SHBA-së Lindore", "CLT": "Ora standarde e Kilit", "ACST": "Ora standarde e Australisë Qendrore", "EAT": "Ora e Afrikës Lindore", "ECT": "Ora e Ekuadorit", "COST": "Ora verore e Kolumbisë", "GYT": "Ora e Guajanës", "WESZ": "Ora verore e Evropës Perëndimore", "ARST": "Ora verore e Argjentinës", "NZST": "Ora standarde e Zelandës së Re", "ACDT": "Ora verore e Australisë Qendrore", "WART": "Ora standarde e Argjentinës Perëndimore", "HNPMX": "Ora standarde meksikane e Bregut të Paqësorit", "CDT": "Ora verore e SHBA-së Qendrore", "ACWDT": "Ora verore e Australisë Qendroro-Perëndimore", "HEOG": "Ora verore e Grenlandës Perëndimore", "TMT": "Ora standarde e Turkmenistanit", "CAT": "Ora e Afrikës Qendrore", "HENOMX": "Ora verore e Meksikës Veriperëndimore", "UYST": "Ora verore e Uruguait", "HAST": "Ora standarde e Ishujve Hauai-Aleutian", "HADT": "Ora verore e Ishujve Hauai-Aleutian", "MEZ": "Ora standarde e Evropës Qendrore", "MESZ": "Ora verore e Evropës Qendrore", "CLST": "Ora verore e Kilit", "WAT": "Ora standarde e Afrikës Perëndimore", "AST": "Ora standarde e Atlantikut", "MST": "Ora standarde amerikane e Brezit Malor", "SRT": "Ora e Surinamit", "HKST": "Ora verore e Hong-Kongut", "VET": "Ora e Venezuelës", "WITA": "Ora e Indonezisë Qendrore", "JDT": "Ora verore e Japonisë", "WARST": "Ora verore e Argjentinës Perëndimore", "HNCU": "Ora standarde e Kubës", "MDT": "Ora verore amerikane e Brezit Malor", "WIT": "Ora e Indonezisë Lindore", "AWDT": "Ora verore e Australisë Perëndimore", "NZDT": "Ora verore e Zelandës së Re", "JST": "Ora standarde e Japonisë", "WAST": "Ora verore e Afrikës Perëndimore", "SGT": "Ora e Singaporit", "WEZ": "Ora standarde e Evropës Perëndimore", "HNT": "Ora standarde e Njufaundlendit [Tokës së Re]", "LHST": "Ora standarde e Lord-Houit", "HECU": "Ora verore e Kubës", "CST": "Ora standarde e SHBA-së Qendrore", "ADT": "Ora verore e Atlantikut", "ACWST": "Ora standarde e Australisë Qendroro-Perëndimore", "HNPM": "Ora standarde e Shën-Pier dhe Mikuelon", "BOT": "Ora e Bolivisë", "EST": "Ora standarde e SHBA-së Lindore", "AKST": "Ora standarde e Alaskës", "PDT": "Ora verore amerikane e Bregut të Paqësorit", "PST": "Ora standarde amerikane e Bregut të Paqësorit", "HNOG": "Ora standarde e Grenlandës Perëndimore", "AEST": "Ora standarde e Australisë Lindore", "LHDT": "Ora verore e Lord-Houit", "MYT": "Ora e Malajzisë", "CHADT": "Ora verore e Katamit", "ChST": "Ora e Kamorros", "OEZ": "Ora standarde e Evropës Lindore", "OESZ": "Ora verore e Evropës Lindore", "WIB": "Ora e Indonezisë Perëndimore", "HEPM": "Ora verore e Shën-Pier dhe Mikuelon", "HEEG": "Ora verore e Grenlandës Lindore", "GFT": "Ora e Guajanës Franceze", "TMST": "Ora verore e Turkmenistanit", "AKDT": "Ora verore e Alsaskës", "HAT": "Ora verore e Njufaundlendit [Tokës së Re]", "AWST": "Ora standarde e Australisë Perëndimore", "SAST": "Ora standarde e Afrikës Jugore", "HEPMX": "Ora verore meksikane e Bregut të Paqësorit", "UYT": "Ora standarde e Uruguait", "AEDT": "Ora verore e Australisë Lindore", "COT": "Ora standarde e Kolumbisë"},
++ locale: "sq_MK",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 5, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "den", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"∅∅∅": "∅∅∅", "EDT": "EDT", "CDT": "CDT", "MDT": "MDT", "ACST": "ACST", "AWST": "AWST", "MYT": "MYT", "WART": "WART", "CLT": "CLT", "ADT": "ADT", "ARST": "ARST", "EAT": "EAT", "ACDT": "ACDT", "LHDT": "LHDT", "IST": "IST", "COST": "COST", "HEOG": "HEOG", "UYT": "UYT", "CST": "CST", "MESZ": "MESZ", "AEDT": "AEDT", "HECU": "HECU", "HAT": "HAT", "WIT": "WIT", "GYT": "GYT", "MEZ": "MEZ", "PDT": "PDT", "CAT": "CAT", "ACWST": "ACWST", "COT": "COT", "HKST": "HKST", "GMT": "GMT", "HNEG": "HNEG", "JST": "JST", "JDT": "JDT", "OESZ": "OESZ", "HNOG": "HNOG", "CHADT": "CHADT", "AKDT": "AKDT", "HNT": "HNT", "WARST": "WARST", "MST": "MST", "OEZ": "OEZ", "HKT": "HKT", "TMST": "TMST", "ECT": "ECT", "HADT": "HADT", "HEEG": "HEEG", "AEST": "AEST", "UYST": "UYST", "SGT": "SGT", "VET": "VET", "WAST": "WAST", "EST": "EST", "WITA": "WITA", "NZST": "NZST", "SRT": "SRT", "CHAST": "CHAST", "BT": "BT", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "GFT": "GFT", "CLST": "CLST", "WIB": "WIB", "BOT": "BOT", "HENOMX": "HENOMX", "HNPM": "HNPM", "HEPM": "HEPM", "NZDT": "NZDT", "LHST": "LHST", "HNCU": "HNCU", "SAST": "SAST", "TMT": "TMT", "AST": "AST", "ART": "ART", "AWDT": "AWDT", "WEZ": "WEZ", "WESZ": "WESZ", "WAT": "WAT", "AKST": "AKST", "PST": "PST", "HEPMX": "HEPMX", "ChST": "ChST", "HAST": "HAST", "HNNOMX": "HNNOMX"},
+ }
+ }
+ 
+@@ -148,7 +123,7 @@ func (sq *sq_MK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sq *sq_MK) MonthsAbbreviated() []string {
+- return sq.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -158,7 +133,7 @@ func (sq *sq_MK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sq *sq_MK) MonthsNarrow() []string {
+- return sq.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -168,7 +143,7 @@ func (sq *sq_MK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sq *sq_MK) MonthsWide() []string {
+- return sq.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -214,75 +189,13 @@ func (sq *sq_MK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sq_MK' and handles both Whole and Real numbers based on 'v'
+ func (sq *sq_MK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sq.group) - 1; j >= 0; j-- {
+- b = append(b, sq.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sq_MK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sq *sq_MK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sq.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sq.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sq_MK'
+@@ -290,58 +203,7 @@ func (sq *sq_MK) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sq.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sq.group) - 1; j >= 0; j-- {
+- b = append(b, sq.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sq.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sq.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sq_MK'
+@@ -350,65 +212,7 @@ func (sq *sq_MK) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sq.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sq.group) - 1; j >= 0; j-- {
+- b = append(b, sq.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, sq.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sq.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sq.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sq.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sq_MK'
+@@ -416,17 +220,6 @@ func (sq *sq_MK) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -435,17 +228,6 @@ func (sq *sq_MK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sq.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,17 +236,6 @@ func (sq *sq_MK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sq.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -473,19 +244,6 @@ func (sq *sq_MK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sq.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sq.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/sq_XK/sq_XK.go b/sq_XK/sq_XK.go
+index 578c877..b632792 100644
+--- a/sq_XK/sq_XK.go
++++ b/sq_XK/sq_XK.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type sq_XK struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sq_XK' locale
+ func New() locales.Translator {
+ return &sq_XK{
+- locale: "sq_XK",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 5, 6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "jan", "shk", "mar", "pri", "maj", "qer", "kor", "gsh", "sht", "tet", "nën", "dhj"},
+- monthsNarrow: []string{"", "j", "s", "m", "p", "m", "q", "k", "g", "s", "t", "n", "d"},
+- monthsWide: []string{"", "janar", "shkurt", "mars", "prill", "maj", "qershor", "korrik", "gusht", "shtator", "tetor", "nëntor", "dhjetor"},
+- daysAbbreviated: []string{"Die", "Hën", "Mar", "Mër", "Enj", "Pre", "Sht"},
+- daysNarrow: []string{"D", "H", "M", "M", "E", "P", "S"},
+- daysShort: []string{"Die", "Hën", "Mar", "Mër", "Enj", "Pre", "Sht"},
+- daysWide: []string{"e diel", "e hënë", "e martë", "e mërkurë", "e enjte", "e premte", "e shtunë"},
+- periodsAbbreviated: []string{"e paradites", "e pasdites"},
+- periodsNarrow: []string{"e paradites", "e pasdites"},
+- periodsWide: []string{"e paradites", "e pasdites"},
+- erasAbbreviated: []string{"p.K.", "mb.K."},
+- erasNarrow: []string{"p.K.", "mb.K."},
+- erasWide: []string{"para Krishtit", "mbas Krishtit"},
+- timezones: map[string]string{"OESZ": "Ora verore e Evropës Lindore", "SGT": "Ora e Singaporit", "AWDT": "Ora verore e Australisë Perëndimore", "ACDT": "Ora verore e Australisë Qendrore", "JST": "Ora standarde e Japonisë", "JDT": "Ora verore e Japonisë", "BOT": "Ora e Bolivisë", "HNEG": "Ora standarde e Grenlandës Lindore", "OEZ": "Ora standarde e Evropës Lindore", "GMT": "Ora e Meridianit të Grinuiçit", "HECU": "Ora verore e Kubës", "SRT": "Ora e Surinamit", "AEDT": "Ora verore e Australisë Lindore", "SAST": "Ora standarde e Afrikës Jugore", "ChST": "Ora e Kamorros", "EAT": "Ora e Afrikës Lindore", "WAT": "Ora standarde e Afrikës Perëndimore", "WART": "Ora standarde e Argjentinës Perëndimore", "AKST": "Ora standarde e Alaskës", "WIB": "Ora e Indonezisë Perëndimore", "NZST": "Ora standarde e Zelandës së Re", "WESZ": "Ora verore e Evropës Perëndimore", "HAT": "Ora verore e Njufaundlendit [Tokës së Re]", "HKT": "Ora standarde e Hong-Kongut", "ARST": "Ora verore e Argjentinës", "HNCU": "Ora standarde e Kubës", "AST": "Ora standarde e Atlantikut", "PST": "Ora standarde amerikane e Bregut të Paqësorit", "AKDT": "Ora verore e Alsaskës", "LHST": "Ora standarde e Lord-Houit", "TMT": "Ora standarde e Turkmenistanit", "CHADT": "Ora verore e Katamit", "CLT": "Ora standarde e Kilit", "HEPMX": "Ora verore meksikane e Bregut të Paqësorit", "ADT": "Ora verore e Atlantikut", "WITA": "Ora e Indonezisë Qendrore", "EST": "Ora standarde e SHBA-së Lindore", "MDT": "Ora verore e Makaos", "HNPMX": "Ora standarde meksikane e Bregut të Paqësorit", "VET": "Ora e Venezuelës", "HEOG": "Ora verore e Grenlandës Perëndimore", "COT": "Ora standarde e Kolumbisë", "COST": "Ora verore e Kolumbisë", "HNNOMX": "Ora standarde e Meksikës Veriperëndimore", "ECT": "Ora e Ekuadorit", "NZDT": "Ora verore e Zelandës së Re", "HEEG": "Ora verore e Grenlandës Lindore", "WEZ": "Ora standarde e Evropës Perëndimore", "ART": "Ora standarde e Argjentinës", "MESZ": "Ora verore e Evropës Qendrore", "ACWST": "Ora standarde e Australisë Qendroro-Perëndimore", "ACWDT": "Ora verore e Australisë Qendroro-Perëndimore", "AWST": "Ora standarde e Australisë Perëndimore", "CLST": "Ora verore e Kilit", "GFT": "Ora e Guajanës Franceze", "UYST": "Ora verore e Uruguait", "HADT": "Ora verore e Ishujve Hauai-Aleutian", "PDT": "Ora verore amerikane e Bregut të Paqësorit", "CDT": "Ora verore e SHBA-së Qendrore", "WIT": "Ora e Indonezisë Lindore", "TMST": "Ora verore e Turkmenistanit", "EDT": "Ora verore e SHBA-së Lindore", "GYT": "Ora e Guajanës", "BT": "Ora e Butanit", "HNT": "Ora standarde e Njufaundlendit [Tokës së Re]", "AEST": "Ora standarde e Australisë Lindore", "WARST": "Ora verore e Argjentinës Perëndimore", "HENOMX": "Ora verore e Meksikës Veriperëndimore", "∅∅∅": "Ora verore e Azoreve", "HKST": "Ora verore e Hong-Kongut", "MEZ": "Ora standarde e Evropës Qendrore", "ACST": "Ora standarde e Australisë Qendrore", "UYT": "Ora standarde e Uruguait", "CST": "Ora standarde e SHBA-së Qendrore", "HAST": "Ora standarde e Ishujve Hauai-Aleutian", "CAT": "Ora e Afrikës Qendrore", "WAST": "Ora verore e Afrikës Perëndimore", "HNPM": "Ora standarde e Shën-Pier dhe Mikuelon", "LHDT": "Ora verore e Lord-Houit", "IST": "Ora standarde e Indisë", "HEPM": "Ora verore e Shën-Pier dhe Mikuelon", "CHAST": "Ora standarde e Katamit", "MST": "Ora standarde e Makaos", "MYT": "Ora e Malajzisë", "HNOG": "Ora standarde e Grenlandës Perëndimore"},
++ locale: "sq_XK",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 5, 6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"TMT": "TMT", "MEZ": "MEZ", "HNEG": "HNEG", "EST": "EST", "HKT": "HKT", "HAT": "HAT", "HEOG": "HEOG", "SRT": "SRT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "MYT": "MYT", "UYT": "UYT", "HNCU": "HNCU", "JST": "JST", "GFT": "GFT", "EAT": "EAT", "MESZ": "MESZ", "ACDT": "ACDT", "HENOMX": "HENOMX", "HNPM": "HNPM", "CHADT": "CHADT", "IST": "IST", "HEPM": "HEPM", "NZST": "NZST", "ECT": "ECT", "HADT": "HADT", "AWST": "AWST", "WIT": "WIT", "WITA": "WITA", "VET": "VET", "LHDT": "LHDT", "COST": "COST", "CAT": "CAT", "CLST": "CLST", "ART": "ART", "AEST": "AEST", "WAST": "WAST", "AWDT": "AWDT", "WESZ": "WESZ", "BOT": "BOT", "HEPMX": "HEPMX", "UYST": "UYST", "HECU": "HECU", "WARST": "WARST", "MST": "MST", "HAST": "HAST", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "AST": "AST", "ARST": "ARST", "WEZ": "WEZ", "AKST": "AKST", "OESZ": "OESZ", "EDT": "EDT", "CST": "CST", "ADT": "ADT", "GMT": "GMT", "PST": "PST", "WAT": "WAT", "COT": "COT", "LHST": "LHST", "JDT": "JDT", "HNPMX": "HNPMX", "HNT": "HNT", "SGT": "SGT", "WART": "WART", "TMST": "TMST", "NZDT": "NZDT", "ChST": "ChST", "PDT": "PDT", "AEDT": "AEDT", "HKST": "HKST", "BT": "BT", "ACWDT": "ACWDT", "MDT": "MDT", "ACST": "ACST", "SAST": "SAST", "GYT": "GYT", "HNOG": "HNOG", "CLT": "CLT", "CDT": "CDT", "WIB": "WIB", "ACWST": "ACWST", "AKDT": "AKDT"},
+ }
+ }
+ 
+@@ -148,7 +123,7 @@ func (sq *sq_XK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sq *sq_XK) MonthsAbbreviated() []string {
+- return sq.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -158,7 +133,7 @@ func (sq *sq_XK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sq *sq_XK) MonthsNarrow() []string {
+- return sq.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -168,7 +143,7 @@ func (sq *sq_XK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sq *sq_XK) MonthsWide() []string {
+- return sq.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -214,75 +189,13 @@ func (sq *sq_XK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sq_XK' and handles both Whole and Real numbers based on 'v'
+ func (sq *sq_XK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sq.group) - 1; j >= 0; j-- {
+- b = append(b, sq.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sq_XK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sq *sq_XK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sq.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sq.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sq_XK'
+@@ -290,58 +203,7 @@ func (sq *sq_XK) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sq.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sq.group) - 1; j >= 0; j-- {
+- b = append(b, sq.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sq.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sq.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sq_XK'
+@@ -350,65 +212,7 @@ func (sq *sq_XK) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sq.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sq.group) - 1; j >= 0; j-- {
+- b = append(b, sq.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, sq.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sq.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sq.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sq.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sq_XK'
+@@ -416,17 +220,6 @@ func (sq *sq_XK) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -435,17 +228,6 @@ func (sq *sq_XK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sq.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -454,17 +236,6 @@ func (sq *sq_XK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sq.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -473,19 +244,6 @@ func (sq *sq_XK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sq.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sq.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/sr/sr.go b/sr/sr.go
+index 2870339..2c9729b 100644
+--- a/sr/sr.go
++++ b/sr/sr.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"п. н. е.", "н. е."},
+ erasNarrow: []string{"п.н.е.", "н.е."},
+ erasWide: []string{"пре нове ере", "нове ере"},
+- timezones: map[string]string{"MESZ": "Средњеевропско летње рачунање времена", "IST": "Индијско стандардно време", "CLST": "Чиле летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "HNNOMX": "Северозападни Мексико стандардно време", "UYT": "Уругвај стандардно време", "WIT": "Источно-индонезијско време", "HEOG": "Западни Гренланд летње рачунање времена", "JDT": "Јапанско летње рачунање времена", "EDT": "Северноамеричко источно летње време", "HNOG": "Западни Гренланд стандардно време", "EST": "Северноамеричко источно стандардно време", "MST": "Макао стандардно време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "HNT": "Њуфаундленд стандардно време", "HKT": "Хонг Конг стандардно време", "GFT": "Француска Гвајана време", "HNPMX": "Мексички Пацифик стандардно време", "CHADT": "Чатам летње рачунање времена", "∅∅∅": "Амазон летње рачунање времена", "WAST": "Западно-афричко летње рачунање времена", "OEZ": "Источноевропско стандардно време", "AKDT": "Аљаска, летње рачунање времена", "CST": "Северноамеричко централно стандардно време", "LHST": "Лорд Хов стандардно време", "CHAST": "Чатам стандардно време", "AEST": "Аустралијско источно стандардно време", "HNPM": "Сен Пјер и Микелон стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "TMST": "Туркменистан летње рачунање времена", "ACDT": "Аустралијско централно летње рачунање времена", "HENOMX": "Северозападни Мексико летње рачунање времена", "WIB": "Западно-индонезијско време", "WEZ": "Западноевропско стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "JST": "Јапанско стандардно време", "BOT": "Боливија време", "MYT": "Малезија време", "AEDT": "Аустралијско источно летње рачунање времена", "AWDT": "Аустралијско западно летње рачунање времена", "OESZ": "Источноевропско летње рачунање времена", "WARST": "Западна Аргентина летње рачунање времена", "COST": "Колумбија летње рачунање времена", "GYT": "Гвајана време", "AWST": "Аустралијско западно стандардно време", "WESZ": "Западноевропско летње рачунање времена", "ChST": "Чаморо време", "TMT": "Туркменистан стандардно време", "GMT": "Средње време по Гриничу", "VET": "Венецуела време", "BT": "Бутан време", "PDT": "Северноамеричко пацифичко летње време", "HADT": "Хавајско-алеутско летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "CLT": "Чиле стандардно време", "WART": "Западна Аргентина стандардно време", "COT": "Колумбија стандардно време", "AKST": "Аљаска, стандардно време", "AST": "Атлантско стандардно време", "ADT": "Атлантско летње рачунање времена", "HNCU": "Куба стандардно време", "HEPMX": "Мексички Пацифик летње рачунање времена", "CDT": "Северноамеричко централно летње време", "SRT": "Суринам време", "PST": "Северноамеричко пацифичко стандардно време", "NZST": "Нови Зеланд стандардно време", "CAT": "Централно-афричко време", "HAT": "Њуфаундленд летње рачунање времена", "HKST": "Хонг Конг летње рачунање времена", "NZDT": "Нови Зеланд летње рачунање времена", "ECT": "Еквадор време", "SGT": "Сингапур стандардно време", "HECU": "Куба летње рачунање времена", "HAST": "Хавајско-алеутско стандардно време", "UYST": "Уругвај летње рачунање времена", "WITA": "Централно-индонезијско време", "MEZ": "Средњеевропско стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "SAST": "Јужно-афричко време", "ACST": "Аустралијско централно стандардно време", "EAT": "Источно-афричко време", "WAT": "Западно-афричко стандардно време", "MDT": "Макао летње рачунање времена", "ART": "Аргентина стандардно време", "ARST": "Аргентина летње рачунање времена"},
++ timezones: map[string]string{"NZST": "Нови Зеланд стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "AKDT": "Аљаска, летње рачунање времена", "WIT": "Источно-индонезијско време", "HNOG": "Западни Гренланд стандардно време", "HEOG": "Западни Гренланд летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена", "WAST": "Западно-афричко летње рачунање времена", "MDT": "Макао летње рачунање времена", "HADT": "Хавајско-алеутско летње рачунање времена", "HEEG": "Источни Гренланд летње рачунање времена", "EAT": "Источно-афричко време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "WEZ": "Западноевропско стандардно време", "EST": "Северноамеричко источно стандардно време", "EDT": "Северноамеричко источно летње време", "ECT": "Еквадор време", "ADT": "Атлантско летње рачунање времена", "COST": "Колумбија летње рачунање времена", "HKST": "Хонг Конг летње рачунање времена", "MESZ": "Средњеевропско летње рачунање времена", "JDT": "Јапанско летње рачунање времена", "PDT": "Северноамеричко пацифичко летње време", "HKT": "Хонг Конг стандардно време", "CAT": "Централно-афричко време", "JST": "Јапанско стандардно време", "CLT": "Чиле стандардно време", "NZDT": "Нови Зеланд летње рачунање времена", "ACDT": "Аустралијско централно летње рачунање времена", "LHST": "Лорд Хов стандардно време", "CHADT": "Чатам летње рачунање времена", "WESZ": "Западноевропско летње рачунање времена", "HAT": "Њуфаундленд летње рачунање времена", "SAST": "Јужно-афричко време", "CLST": "Чиле летње рачунање времена", "CST": "Северноамеричко централно стандардно време", "AST": "Атлантско стандардно време", "ART": "Аргентина стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "TMST": "Туркменистан летње рачунање времена", "CDT": "Северноамеричко централно летње време", "WIB": "Западно-индонезијско време", "BOT": "Боливија време", "MEZ": "Средњеевропско стандардно време", "HNEG": "Источни Гренланд стандардно време", "WART": "Западна Аргентина стандардно време", "ChST": "Чаморо време", "HAST": "Хавајско-алеутско стандардно време", "ACST": "Аустралијско централно стандардно време", "BT": "Бутан време", "GFT": "Француска Гвајана време", "GYT": "Гвајана време", "COT": "Колумбија стандардно време", "GMT": "Средње време по Гриничу", "AEST": "Аустралијско источно стандардно време", "HNCU": "Куба стандардно време", "HNPMX": "Мексички Пацифик стандардно време", "WARST": "Западна Аргентина летње рачунање времена", "WITA": "Централно-индонезијско време", "ARST": "Аргентина летње рачунање времена", "SRT": "Суринам време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "OESZ": "Источноевропско летње рачунање времена", "HNT": "Њуфаундленд стандардно време", "MST": "Макао стандардно време", "HNNOMX": "Северозападни Мексико стандардно време", "HENOMX": "Северозападни Мексико летње рачунање времена", "CHAST": "Чатам стандардно време", "UYST": "Уругвај летње рачунање времена", "HECU": "Куба летње рачунање времена", "WAT": "Западно-афричко стандардно време", "AKST": "Аљаска, стандардно време", "AWST": "Аустралијско западно стандардно време", "MYT": "Малезија време", "HNPM": "Сен Пјер и Микелон стандардно време", "IST": "Индијско стандардно време", "PST": "Северноамеричко пацифичко стандардно време", "AEDT": "Аустралијско источно летње рачунање времена", "UYT": "Уругвај стандардно време", "SGT": "Сингапур стандардно време", "OEZ": "Источноевропско стандардно време", "∅∅∅": "Бразилија летње рачунање времена", "TMT": "Туркменистан стандардно време", "VET": "Венецуела време"},
+ }
+ }
+ 
+diff --git a/sr_Cyrl/sr_Cyrl.go b/sr_Cyrl/sr_Cyrl.go
+index 5f066c7..827acb0 100644
+--- a/sr_Cyrl/sr_Cyrl.go
++++ b/sr_Cyrl/sr_Cyrl.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type sr_Cyrl struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sr_Cyrl' locale
+ func New() locales.Translator {
+ return &sr_Cyrl{
+- locale: "sr_Cyrl",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ".",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "јан", "феб", "мар", "апр", "мај", "јун", "јул", "авг", "сеп", "окт", "нов", "дец"},
+- monthsNarrow: []string{"", "ј", "ф", "м", "а", "м", "ј", "ј", "а", "с", "о", "н", "д"},
+- monthsWide: []string{"", "јануар", "фебруар", "март", "април", "мај", "јун", "јул", "август", "септембар", "октобар", "новембар", "децембар"},
+- daysAbbreviated: []string{"нед", "пон", "уто", "сре", "чет", "пет", "суб"},
+- daysNarrow: []string{"н", "п", "у", "с", "ч", "п", "с"},
+- daysShort: []string{"не", "по", "ут", "ср", "че", "пе", "су"},
+- daysWide: []string{"недеља", "понедељак", "уторак", "среда", "четвртак", "петак", "субота"},
+- periodsAbbreviated: []string{"пре подне", "по подне"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"пре подне", "по подне"},
+- erasAbbreviated: []string{"п. н. е.", "н. е."},
+- erasNarrow: []string{"п.н.е.", "н.е."},
+- erasWide: []string{"пре нове ере", "нове ере"},
+- timezones: map[string]string{"MYT": "Малезија време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "ART": "Аргентина стандардно време", "HENOMX": "Северозападни Мексико летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "COT": "Колумбија стандардно време", "CDT": "Северноамеричко централно летње време", "GYT": "Гвајана време", "LHDT": "Лорд Хов летње рачунање времена", "SAST": "Јужно-афричко време", "CST": "Северноамеричко централно стандардно време", "WIB": "Западно-индонезијско време", "PDT": "Северноамеричко пацифичко летње време", "EST": "Северноамеричко источно стандардно време", "EDT": "Северноамеричко источно летње време", "ChST": "Чаморо време", "EAT": "Источно-афричко време", "OEZ": "Источноевропско стандардно време", "AWST": "Аустралијско западно стандардно време", "LHST": "Лорд Хов стандардно време", "CHAST": "Чатам стандардно време", "MESZ": "Средњеевропско летње рачунање времена", "CLST": "Чиле летње рачунање времена", "ECT": "Еквадор време", "BOT": "Боливија време", "TMST": "Туркменистан летње рачунање времена", "COST": "Колумбија летње рачунање времена", "ADT": "Атлантско летње рачунање времена", "WIT": "Источно-индонезијско време", "HAST": "Хавајско-алеутско стандардно време", "HEOG": "Западни Гренланд летње рачунање времена", "NZDT": "Нови Зеланд летње рачунање времена", "HNPMX": "Мексички Пацифик стандардно време", "OESZ": "Источноевропско летње рачунање времена", "UYT": "Уругвај стандардно време", "SRT": "Суринам време", "WEZ": "Западноевропско стандардно време", "WITA": "Централно-индонезијско време", "JDT": "Јапанско летње рачунање времена", "∅∅∅": "Амазон летње рачунање времена", "HNCU": "Куба стандардно време", "VET": "Венецуела време", "HNT": "Њуфаундленд стандардно време", "AEST": "Аустралијско источно стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "HNPM": "Сен Пјер и Микелон стандардно време", "JST": "Јапанско стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "WARST": "Западна Аргентина летње рачунање времена", "MDT": "Северноамеричко планинско летње време", "TMT": "Туркменистан стандардно време", "WAT": "Западно-афричко стандардно време", "CAT": "Централно-афричко време", "WART": "Западна Аргентина стандардно време", "SGT": "Сингапур стандардно време", "UYST": "Уругвај летње рачунање времена", "MST": "Северноамеричко планинско стандардно време", "WESZ": "Западноевропско летње рачунање времена", "PST": "Северноамеричко пацифичко стандардно време", "HNNOMX": "Северозападни Мексико стандардно време", "AST": "Атлантско стандардно време", "HKST": "Хонг Конг летње рачунање времена", "ACST": "Аустралијско централно стандардно време", "HECU": "Куба летње рачунање времена", "HADT": "Хавајско-алеутско летње рачунање времена", "HAT": "Њуфаундленд летње рачунање времена", "AEDT": "Аустралијско источно летње рачунање времена", "GMT": "Средње време по Гриничу", "AKDT": "Аљаска, летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "GFT": "Француска Гвајана време", "ACDT": "Аустралијско централно летње рачунање времена", "WAST": "Западно-афричко летње рачунање времена", "IST": "Индијско стандардно време", "CLT": "Чиле стандардно време", "AKST": "Аљаска, стандардно време", "BT": "Бутан време", "ARST": "Аргентина летње рачунање времена", "HNOG": "Западни Гренланд стандардно време", "HKT": "Хонг Конг стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "NZST": "Нови Зеланд стандардно време", "CHADT": "Чатам летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена"},
++ locale: "sr_Cyrl",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GMT": "GMT", "UYST": "UYST", "WIT": "WIT", "SAST": "SAST", "NZST": "NZST", "WIB": "WIB", "ACWST": "ACWST", "AEST": "AEST", "AEDT": "AEDT", "HNPMX": "HNPMX", "WARST": "WARST", "CLT": "CLT", "OEZ": "OEZ", "HNT": "HNT", "GYT": "GYT", "HEOG": "HEOG", "NZDT": "NZDT", "WESZ": "WESZ", "WAST": "WAST", "AKDT": "AKDT", "SGT": "SGT", "PDT": "PDT", "COT": "COT", "PST": "PST", "HECU": "HECU", "AKST": "AKST", "HNCU": "HNCU", "ART": "ART", "IST": "IST", "WART": "WART", "ECT": "ECT", "HKST": "HKST", "MST": "MST", "MDT": "MDT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "COST": "COST", "EDT": "EDT", "TMT": "TMT", "ChST": "ChST", "BT": "BT", "HEPMX": "HEPMX", "WAT": "WAT", "EST": "EST", "HNPM": "HNPM", "VET": "VET", "CAT": "CAT", "HEEG": "HEEG", "MYT": "MYT", "JST": "JST", "ADT": "ADT", "HADT": "HADT", "HENOMX": "HENOMX", "LHDT": "LHDT", "CHADT": "CHADT", "WEZ": "WEZ", "∅∅∅": "∅∅∅", "HKT": "HKT", "MEZ": "MEZ", "ACST": "ACST", "LHST": "LHST", "HAT": "HAT", "AST": "AST", "HNOG": "HNOG", "TMST": "TMST", "CDT": "CDT", "BOT": "BOT", "CHAST": "CHAST", "UYT": "UYT", "OESZ": "OESZ", "GFT": "GFT", "HEPM": "HEPM", "CST": "CST", "ACDT": "ACDT", "HAST": "HAST", "MESZ": "MESZ", "AWST": "AWST", "AWDT": "AWDT", "JDT": "JDT", "WITA": "WITA", "SRT": "SRT", "EAT": "EAT", "CLST": "CLST", "ARST": "ARST"},
+ }
+ }
+ 
+@@ -157,7 +132,7 @@ func (sr *sr_Cyrl) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sr *sr_Cyrl) MonthsAbbreviated() []string {
+- return sr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -167,7 +142,7 @@ func (sr *sr_Cyrl) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sr *sr_Cyrl) MonthsNarrow() []string {
+- return sr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -177,7 +152,7 @@ func (sr *sr_Cyrl) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sr *sr_Cyrl) MonthsWide() []string {
+- return sr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -223,73 +198,13 @@ func (sr *sr_Cyrl) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sr_Cyrl' and handles both Whole and Real numbers based on 'v'
+ func (sr *sr_Cyrl) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sr_Cyrl' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sr *sr_Cyrl) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Cyrl'
+@@ -297,56 +212,7 @@ func (sr *sr_Cyrl) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Cyrl'
+@@ -355,63 +221,7 @@ func (sr *sr_Cyrl) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, sr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sr_Cyrl'
+@@ -419,19 +229,6 @@ func (sr *sr_Cyrl) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -440,29 +237,6 @@ func (sr *sr_Cyrl) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -471,23 +245,6 @@ func (sr *sr_Cyrl) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -496,26 +253,6 @@ func (sr *sr_Cyrl) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -524,19 +261,6 @@ func (sr *sr_Cyrl) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -545,26 +269,6 @@ func (sr *sr_Cyrl) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -573,30 +277,6 @@ func (sr *sr_Cyrl) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -605,34 +285,5 @@ func (sr *sr_Cyrl) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sr_Cyrl_BA/sr_Cyrl_BA.go b/sr_Cyrl_BA/sr_Cyrl_BA.go
+index 48f74ff..ee12084 100644
+--- a/sr_Cyrl_BA/sr_Cyrl_BA.go
++++ b/sr_Cyrl_BA/sr_Cyrl_BA.go
+@@ -10,70 +10,54 @@ import (
+ )
+ 
+ type sr_Cyrl_BA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sr_Cyrl_BA' locale
+ func New() locales.Translator {
+ return &sr_Cyrl_BA{
+- locale: "sr_Cyrl_BA",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ".",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "јан.", "феб.", "март", "апр.", "мај", "јун", "јул", "авг.", "септ.", "окт.", "нов.", "дец."},
+- monthsNarrow: []string{"", "ј", "ф", "м", "а", "м", "ј", "ј", "а", "с", "о", "н", "д"},
+- monthsWide: []string{"", "јануар", "фебруар", "март", "април", "мај", "јун", "јул", "август", "септембар", "октобар", "новембар", "децембар"},
+- daysAbbreviated: []string{"нед.", "пон.", "ут.", "ср.", "чет.", "пет.", "суб."},
+- daysNarrow: []string{"н", "п", "у", "с", "ч", "п", "с"},
+- daysShort: []string{"не", "по", "ут", "ср", "че", "пе", "су"},
+- daysWide: []string{"недјеља", "понедељак", "уторак", "сриједа", "четвртак", "петак", "субота"},
+- periodsAbbreviated: []string{"прије подне", "по подне"},
+- periodsNarrow: []string{"", ""},
+- periodsWide: []string{"прије подне", "по подне"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"прије нове ере", "нове ере"},
+- timezones: map[string]string{"HNOG": "Западни Гренланд стандардно време", "ChST": "Чаморо време", "ACST": "Аустралијско централно стандардно време", "CAT": "Централно-афричко време", "WIT": "Источно-индонезијско време", "HADT": "Хавајско-алеутско летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "WAT": "Западно-афричко стандардно време", "HNCU": "Куба стандардно време", "ADT": "Атлантско летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "UYT": "Уругвај стандардно време", "ACWST": "Аустралијско централно западно стандардно време", "∅∅∅": "Амазон летње рачунање времена", "WAST": "Западно-афричко летње рачунање времена", "WART": "Западна Аргентина стандардно време", "PST": "Северноамеричко пацифичко стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "TMT": "Туркменистан стандардно време", "TMST": "Туркменистан летње рачунање времена", "SAST": "Јужно-афричко време", "ACDT": "Аустралијско централно летње рачунање времена", "GMT": "Средње време по Гриничу", "AKDT": "Аљаска, летње рачунање времена", "WIB": "Западно-индонезијско време", "VET": "Венецуела време", "ART": "Аргентина стандардно време", "HNNOMX": "Северозападни Мексико стандардно време", "WARST": "Западна Аргентина летње рачунање времена", "EDT": "Северноамеричко источно летње време", "COT": "Колумбија стандардно време", "COST": "Колумбија летње рачунање времена", "CST": "Северноамеричко централно стандардно време", "HEOG": "Западни Гренланд летње рачунање времена", "AWST": "Аустралијско западно стандардно време", "CHADT": "Чатам летње рачунање времена", "GFT": "Француска Гвајана време", "MDT": "Макао летње рачунање времена", "CDT": "Северноамеричко централно летње време", "NZST": "Нови Зеланд стандардно време", "JST": "Јапанско стандардно време", "BOT": "Боливија време", "ECT": "Еквадор време", "OESZ": "Источноевропско летње рачунање времена", "EAT": "Источно-афричко време", "AST": "Атлантско стандардно време", "UYST": "Уругвај летње рачунање времена", "HAT": "Њуфаундленд летње рачунање времена", "ARST": "Аргентина летње рачунање времена", "HNPM": "Сен Пјер и Микелон стандардно време", "CLT": "Чиле стандардно време", "AEDT": "Аустралијско источно летње рачунање времена", "IST": "Индијско стандардно време", "AKST": "Аљаска, стандардно време", "GYT": "Гвајана време", "HNPMX": "Мексички Пацифик стандардно време", "HAST": "Хавајско-алеутско стандардно време", "HKST": "Хонг Конг летње рачунање времена", "AEST": "Аустралијско источно стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "NZDT": "Нови Зеланд летње рачунање времена", "ACWDT": "Аустралијско централно западно летње рачунање времена", "HNT": "Њуфаундленд стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "MST": "Макао стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "HENOMX": "Северозападни Мексико летње рачунање времена", "SGT": "Сингапур стандардно време", "BT": "Бутан време", "PDT": "Северноамеричко пацифичко летње време", "WITA": "Централно-индонезијско време", "CHAST": "Чатам стандардно време", "HEPMX": "Мексички Пацифик летње рачунање времена", "SRT": "Суринам време", "WESZ": "Западноевропско летње рачунање времена", "LHST": "Лорд Хов стандардно време", "HECU": "Куба летње рачунање времена", "HKT": "Хонг Конг стандардно време", "MESZ": "Средњеевропско летње рачунање времена", "CLST": "Чиле летње рачунање времена", "MYT": "Малезија време", "WEZ": "Западноевропско стандардно време", "JDT": "Јапанско летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "OEZ": "Источноевропско стандардно време"},
++ locale: "sr_Cyrl_BA",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "јан.", "феб.", "март", "апр.", "мај", "јун", "јул", "авг.", "септ.", "окт.", "нов.", "дец."},
++ daysAbbreviated: []string{"нед.", "пон.", "ут.", "ср.", "чет.", "пет.", "суб."},
++ daysWide: []string{"недјеља", "понедељак", "уторак", "сриједа", "четвртак", "петак", "субота"},
++ periodsAbbreviated: []string{"прије подне", "по подне"},
++ periodsNarrow: []string{"", ""},
++ periodsWide: []string{"прије подне", "по подне"},
++ erasAbbreviated: []string{"", ""},
++ erasNarrow: []string{"", ""},
++ erasWide: []string{"прије нове ере", "нове ере"},
++ timezones: map[string]string{"CAT": "CAT", "MDT": "MDT", "EAT": "EAT", "ACST": "ACST", "WESZ": "WESZ", "EST": "EST", "HKST": "HKST", "HENOMX": "HENOMX", "MESZ": "MESZ", "AEST": "AEST", "GMT": "GMT", "HNNOMX": "HNNOMX", "SRT": "SRT", "CHADT": "CHADT", "VET": "VET", "∅∅∅": "∅∅∅", "EDT": "EDT", "WAST": "WAST", "CHAST": "CHAST", "UYST": "UYST", "HEPMX": "HEPMX", "SGT": "SGT", "AKST": "AKST", "GFT": "GFT", "COT": "COT", "HADT": "HADT", "TMST": "TMST", "NZDT": "NZDT", "ChST": "ChST", "AKDT": "AKDT", "COST": "COST", "GYT": "GYT", "HEOG": "HEOG", "ACDT": "ACDT", "PDT": "PDT", "HNCU": "HNCU", "HECU": "HECU", "HNPMX": "HNPMX", "OEZ": "OEZ", "WART": "WART", "HEEG": "HEEG", "ADT": "ADT", "ACWDT": "ACWDT", "WEZ": "WEZ", "CLT": "CLT", "CDT": "CDT", "JDT": "JDT", "ART": "ART", "BOT": "BOT", "NZST": "NZST", "AWDT": "AWDT", "LHDT": "LHDT", "PST": "PST", "WIT": "WIT", "WARST": "WARST", "TMT": "TMT", "WITA": "WITA", "AST": "AST", "HNEG": "HNEG", "MEZ": "MEZ", "HNPM": "HNPM", "HNT": "HNT", "HNOG": "HNOG", "IST": "IST", "HEPM": "HEPM", "ACWST": "ACWST", "AEDT": "AEDT", "UYT": "UYT", "WAT": "WAT", "OESZ": "OESZ", "CLST": "CLST", "ECT": "ECT", "CST": "CST", "MYT": "MYT", "BT": "BT", "SAST": "SAST", "WIB": "WIB", "AWST": "AWST", "HAT": "HAT", "HAST": "HAST", "ARST": "ARST", "JST": "JST", "LHST": "LHST", "HKT": "HKT", "MST": "MST"},
+ }
+ }
+ 
+@@ -103,8 +87,8 @@ func (sr *sr_Cyrl_BA) CardinalPluralRule(num float64, v uint64) locales.PluralRu
+ n := math.Abs(num)
+ i := int64(n)
+ f := locales.F(n, v)
+- iMod100 := i % 100
+ iMod10 := i % 10
++ iMod100 := i % 100
+ fMod10 := f % 10
+ fMod100 := f % 100
+ 
+@@ -167,7 +151,7 @@ func (sr *sr_Cyrl_BA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sr *sr_Cyrl_BA) MonthsNarrow() []string {
+- return sr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -177,7 +161,7 @@ func (sr *sr_Cyrl_BA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sr *sr_Cyrl_BA) MonthsWide() []string {
+- return sr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -223,73 +207,13 @@ func (sr *sr_Cyrl_BA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sr_Cyrl_BA' and handles both Whole and Real numbers based on 'v'
+ func (sr *sr_Cyrl_BA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sr_Cyrl_BA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sr *sr_Cyrl_BA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Cyrl_BA'
+@@ -297,56 +221,7 @@ func (sr *sr_Cyrl_BA) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Cyrl_BA'
+@@ -355,63 +230,7 @@ func (sr *sr_Cyrl_BA) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, sr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sr_Cyrl_BA'
+@@ -419,19 +238,6 @@ func (sr *sr_Cyrl_BA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -440,29 +246,6 @@ func (sr *sr_Cyrl_BA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -471,23 +254,6 @@ func (sr *sr_Cyrl_BA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -496,26 +262,6 @@ func (sr *sr_Cyrl_BA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -524,19 +270,6 @@ func (sr *sr_Cyrl_BA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -545,26 +278,6 @@ func (sr *sr_Cyrl_BA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -573,30 +286,6 @@ func (sr *sr_Cyrl_BA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -605,34 +294,5 @@ func (sr *sr_Cyrl_BA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sr_Cyrl_ME/sr_Cyrl_ME.go b/sr_Cyrl_ME/sr_Cyrl_ME.go
+index dfe11d5..923fa49 100644
+--- a/sr_Cyrl_ME/sr_Cyrl_ME.go
++++ b/sr_Cyrl_ME/sr_Cyrl_ME.go
+@@ -10,70 +10,54 @@ import (
+ )
+ 
+ type sr_Cyrl_ME struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sr_Cyrl_ME' locale
+ func New() locales.Translator {
+ return &sr_Cyrl_ME{
+- locale: "sr_Cyrl_ME",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ".",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "јан.", "феб.", "март", "апр.", "мај", "јун", "јул", "авг.", "септ.", "окт.", "нов.", "дец."},
+- monthsNarrow: []string{"", "ј", "ф", "м", "а", "м", "ј", "ј", "а", "с", "о", "н", "д"},
+- monthsWide: []string{"", "јануар", "фебруар", "март", "април", "мај", "јун", "јул", "август", "септембар", "октобар", "новембар", "децембар"},
+- daysAbbreviated: []string{"нед.", "пон.", "ут.", "ср.", "чет.", "пет.", "суб."},
+- daysNarrow: []string{"н", "п", "у", "с", "ч", "п", "с"},
+- daysShort: []string{"не", "по", "ут", "ср", "че", "пе", "су"},
+- daysWide: []string{"недјеља", "понедељак", "уторак", "сриједа", "четвртак", "петак", "субота"},
+- periodsAbbreviated: []string{"прије подне", "по подне"},
+- periodsNarrow: []string{"", ""},
+- periodsWide: []string{"прије подне", "по подне"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"HNT": "Њуфаундленд стандардно време", "HKST": "Хонг Конг летње рачунање времена", "WITA": "Централно-индонезијско време", "NZST": "Нови Зеланд стандардно време", "JDT": "Јапанско летње рачунање времена", "WESZ": "Западноевропско летње рачунање времена", "MESZ": "Средњеевропско летње рачунање времена", "GFT": "Француска Гвајана време", "HNNOMX": "Северозападни Мексико стандардно време", "SGT": "Сингапур стандардно време", "EDT": "Северноамеричко источно летње време", "HAT": "Њуфаундленд летње рачунање времена", "AWDT": "Аустралијско западно летње рачунање времена", "SAST": "Јужно-афричко време", "CLST": "Чиле летње рачунање времена", "HEEG": "Источни Гренланд летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "WARST": "Западна Аргентина летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена", "HADT": "Хавајско-алеутско летње рачунање времена", "VET": "Венецуела време", "HNOG": "Западни Гренланд стандардно време", "PST": "Северноамеричко пацифичко стандардно време", "OESZ": "Источноевропско летње рачунање времена", "HNCU": "Куба стандардно време", "AKDT": "Аљаска, летње рачунање времена", "GYT": "Гвајана време", "WIB": "Западно-индонезијско време", "MDT": "Северноамеричко планинско летње време", "AWST": "Аустралијско западно стандардно време", "IST": "Индијско стандардно време", "COT": "Колумбија стандардно време", "HEOG": "Западни Гренланд летње рачунање времена", "HNPM": "Сен Пјер и Микелон стандардно време", "CLT": "Чиле стандардно време", "HNEG": "Источни Гренланд стандардно време", "UYT": "Уругвај стандардно време", "WAT": "Западно-афричко стандардно време", "CAT": "Централно-афричко време", "COST": "Колумбија летње рачунање времена", "ARST": "Аргентина летње рачунање времена", "AEST": "Аустралијско источно стандардно време", "CHADT": "Чатам летње рачунање времена", "ChST": "Чаморо време", "ACDT": "Аустралијско централно летње рачунање времена", "MST": "Северноамеричко планинско стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "HENOMX": "Северозападни Мексико летње рачунање времена", "WART": "Западна Аргентина стандардно време", "MYT": "Малезија време", "LHST": "Лорд Хов стандардно време", "WAST": "Западно-афричко летње рачунање времена", "OEZ": "Источноевропско стандардно време", "CDT": "Северноамеричко централно летње време", "CST": "Северноамеричко централно стандардно време", "AST": "Атлантско стандардно време", "WIT": "Источно-индонезијско време", "BT": "Бутан време", "LHDT": "Лорд Хов летње рачунање времена", "TMT": "Туркменистан стандардно време", "EST": "Северноамеричко источно стандардно време", "HECU": "Куба летње рачунање времена", "ART": "Аргентина стандардно време", "WEZ": "Западноевропско стандардно време", "HKT": "Хонг Конг стандардно време", "MEZ": "Средњеевропско стандардно време", "TMST": "Туркменистан летње рачунање времена", "PDT": "Северноамеричко пацифичко летње време", "JST": "Јапанско стандардно време", "UYST": "Уругвај летње рачунање времена", "SRT": "Суринам време", "NZDT": "Нови Зеланд летње рачунање времена", "ACST": "Аустралијско централно стандардно време", "GMT": "Средње време по Гриничу", "HNPMX": "Мексички Пацифик стандардно време", "HAST": "Хавајско-алеутско стандардно време", "BOT": "Боливија време", "ECT": "Еквадор време", "EAT": "Источно-афричко време", "AEDT": "Аустралијско источно летње рачунање времена", "CHAST": "Чатам стандардно време", "∅∅∅": "Амазон летње рачунање времена", "AKST": "Аљаска, стандардно време", "ADT": "Атлантско летње рачунање времена"},
++ locale: "sr_Cyrl_ME",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "јан.", "феб.", "март", "апр.", "мај", "јун", "јул", "авг.", "септ.", "окт.", "нов.", "дец."},
++ daysAbbreviated: []string{"нед.", "пон.", "ут.", "ср.", "чет.", "пет.", "суб."},
++ daysWide: []string{"недјеља", "понедељак", "уторак", "сриједа", "четвртак", "петак", "субота"},
++ periodsAbbreviated: []string{"прије подне", "по подне"},
++ periodsNarrow: []string{"", ""},
++ periodsWide: []string{"прије подне", "по подне"},
++ erasAbbreviated: []string{"", ""},
++ erasNarrow: []string{"", ""},
++ erasWide: []string{"", ""},
++ timezones: map[string]string{"AWDT": "AWDT", "BT": "BT", "WESZ": "WESZ", "AKST": "AKST", "HKST": "HKST", "CAT": "CAT", "ARST": "ARST", "AEDT": "AEDT", "GYT": "GYT", "NZST": "NZST", "HNEG": "HNEG", "∅∅∅": "∅∅∅", "COT": "COT", "HAST": "HAST", "JST": "JST", "OESZ": "OESZ", "BOT": "BOT", "HNT": "HNT", "EST": "EST", "ECT": "ECT", "ADT": "ADT", "EAT": "EAT", "AST": "AST", "GMT": "GMT", "CHAST": "CHAST", "PDT": "PDT", "WAT": "WAT", "OEZ": "OEZ", "CLT": "CLT", "CLST": "CLST", "SRT": "SRT", "JDT": "JDT", "LHDT": "LHDT", "WEZ": "WEZ", "HECU": "HECU", "COST": "COST", "EDT": "EDT", "HADT": "HADT", "MESZ": "MESZ", "ACWST": "ACWST", "HNPMX": "HNPMX", "AKDT": "AKDT", "HNOG": "HNOG", "HNNOMX": "HNNOMX", "LHST": "LHST", "PST": "PST", "WART": "WART", "WIT": "WIT", "TMT": "TMT", "WITA": "WITA", "AWST": "AWST", "CHADT": "CHADT", "UYT": "UYT", "IST": "IST", "WAST": "WAST", "WARST": "WARST", "HEOG": "HEOG", "VET": "VET", "HKT": "HKT", "NZDT": "NZDT", "MEZ": "MEZ", "HNPM": "HNPM", "UYST": "UYST", "HEPMX": "HEPMX", "WIB": "WIB", "CST": "CST", "MDT": "MDT", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "HNCU": "HNCU", "GFT": "GFT", "SAST": "SAST", "ChST": "ChST", "ART": "ART", "AEST": "AEST", "TMST": "TMST", "CDT": "CDT", "MST": "MST", "HEEG": "HEEG", "MYT": "MYT", "HAT": "HAT", "ACST": "ACST", "ACDT": "ACDT", "HEPM": "HEPM", "SGT": "SGT"},
+ }
+ }
+ 
+@@ -167,7 +151,7 @@ func (sr *sr_Cyrl_ME) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sr *sr_Cyrl_ME) MonthsNarrow() []string {
+- return sr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -177,7 +161,7 @@ func (sr *sr_Cyrl_ME) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sr *sr_Cyrl_ME) MonthsWide() []string {
+- return sr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -223,73 +207,13 @@ func (sr *sr_Cyrl_ME) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sr_Cyrl_ME' and handles both Whole and Real numbers based on 'v'
+ func (sr *sr_Cyrl_ME) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sr_Cyrl_ME' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sr *sr_Cyrl_ME) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Cyrl_ME'
+@@ -297,56 +221,7 @@ func (sr *sr_Cyrl_ME) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Cyrl_ME'
+@@ -355,63 +230,7 @@ func (sr *sr_Cyrl_ME) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, sr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sr_Cyrl_ME'
+@@ -419,19 +238,6 @@ func (sr *sr_Cyrl_ME) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -440,29 +246,6 @@ func (sr *sr_Cyrl_ME) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -471,23 +254,6 @@ func (sr *sr_Cyrl_ME) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -496,26 +262,6 @@ func (sr *sr_Cyrl_ME) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -524,19 +270,6 @@ func (sr *sr_Cyrl_ME) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -545,26 +278,6 @@ func (sr *sr_Cyrl_ME) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -573,30 +286,6 @@ func (sr *sr_Cyrl_ME) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -605,34 +294,5 @@ func (sr *sr_Cyrl_ME) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sr_Cyrl_RS/sr_Cyrl_RS.go b/sr_Cyrl_RS/sr_Cyrl_RS.go
+index fabc591..02ba231 100644
+--- a/sr_Cyrl_RS/sr_Cyrl_RS.go
++++ b/sr_Cyrl_RS/sr_Cyrl_RS.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type sr_Cyrl_RS struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sr_Cyrl_RS' locale
+ func New() locales.Translator {
+ return &sr_Cyrl_RS{
+- locale: "sr_Cyrl_RS",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ".",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "јан", "феб", "мар", "апр", "мај", "јун", "јул", "авг", "сеп", "окт", "нов", "дец"},
+- monthsNarrow: []string{"", "ј", "ф", "м", "а", "м", "ј", "ј", "а", "с", "о", "н", "д"},
+- monthsWide: []string{"", "јануар", "фебруар", "март", "април", "мај", "јун", "јул", "август", "септембар", "октобар", "новембар", "децембар"},
+- daysAbbreviated: []string{"нед", "пон", "уто", "сре", "чет", "пет", "суб"},
+- daysNarrow: []string{"н", "п", "у", "с", "ч", "п", "с"},
+- daysShort: []string{"не", "по", "ут", "ср", "че", "пе", "су"},
+- daysWide: []string{"недеља", "понедељак", "уторак", "среда", "четвртак", "петак", "субота"},
+- periodsAbbreviated: []string{"пре подне", "по подне"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"пре подне", "по подне"},
+- erasAbbreviated: []string{"п. н. е.", "н. е."},
+- erasNarrow: []string{"п.н.е.", "н.е."},
+- erasWide: []string{"пре нове ере", "нове ере"},
+- timezones: map[string]string{"HKST": "Хонг Конг летње рачунање времена", "HECU": "Куба летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "VET": "Венецуела време", "HNOG": "Западни Гренланд стандардно време", "BOT": "Боливија време", "WAST": "Западно-афричко летње рачунање времена", "MYT": "Малезија време", "ART": "Аргентина стандардно време", "CHAST": "Чатам стандардно време", "JST": "Јапанско стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "GYT": "Гвајана време", "WESZ": "Западноевропско летње рачунање времена", "HAT": "Њуфаундленд летње рачунање времена", "AEST": "Аустралијско источно стандардно време", "CLST": "Чиле летње рачунање времена", "HNNOMX": "Северозападни Мексико стандардно време", "CST": "Северноамеричко централно стандардно време", "CAT": "Централно-афричко време", "AST": "Атлантско стандардно време", "SRT": "Суринам време", "PST": "Северноамеричко пацифичко стандардно време", "PDT": "Северноамеричко пацифичко летње време", "AEDT": "Аустралијско источно летње рачунање времена", "HKT": "Хонг Конг стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "ChST": "Чаморо време", "ECT": "Еквадор време", "OEZ": "Источноевропско стандардно време", "MST": "Макао стандардно време", "AKST": "Аљаска, стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "WART": "Западна Аргентина стандардно време", "WEZ": "Западноевропско стандардно време", "NZDT": "Нови Зеланд летње рачунање времена", "CHADT": "Чатам летње рачунање времена", "ACDT": "Аустралијско централно летње рачунање времена", "EAT": "Источно-афричко време", "OESZ": "Источноевропско летње рачунање времена", "MDT": "Макао летње рачунање времена", "AKDT": "Аљаска, летње рачунање времена", "LHST": "Лорд Хов стандардно време", "ACST": "Аустралијско централно стандардно време", "COT": "Колумбија стандардно време", "ADT": "Атлантско летње рачунање времена", "CDT": "Северноамеричко централно летње време", "WIT": "Источно-индонезијско време", "MESZ": "Средњеевропско летње рачунање времена", "HENOMX": "Северозападни Мексико летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена", "WIB": "Западно-индонезијско време", "ACWST": "Аустралијско централно западно стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "GFT": "Француска Гвајана време", "HNPMX": "Мексички Пацифик стандардно време", "HADT": "Хавајско-алеутско летње рачунање времена", "BT": "Бутан време", "HEOG": "Западни Гренланд летње рачунање времена", "HNT": "Њуфаундленд стандардно време", "NZST": "Нови Зеланд стандардно време", "SAST": "Јужно-афричко време", "IST": "Индијско стандардно време", "CLT": "Чиле стандардно време", "ARST": "Аргентина летње рачунање времена", "TMST": "Туркменистан летње рачунање времена", "EDT": "Северноамеричко источно летње време", "AWST": "Аустралијско западно стандардно време", "MEZ": "Средњеевропско стандардно време", "JDT": "Јапанско летње рачунање времена", "∅∅∅": "Амазон летње рачунање времена", "TMT": "Туркменистан стандардно време", "WAT": "Западно-афричко стандардно време", "WARST": "Западна Аргентина летње рачунање времена", "GMT": "Средње време по Гриничу", "UYT": "Уругвај стандардно време", "HAST": "Хавајско-алеутско стандардно време", "WITA": "Централно-индонезијско време", "HNPM": "Сен Пјер и Микелон стандардно време", "HNCU": "Куба стандардно време", "UYST": "Уругвај летње рачунање времена", "ACWDT": "Аустралијско централно западно летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "COST": "Колумбија летње рачунање времена", "SGT": "Сингапур стандардно време"},
++ locale: "sr_Cyrl_RS",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HENOMX": "HENOMX", "MYT": "MYT", "AEDT": "AEDT", "HECU": "HECU", "WARST": "WARST", "HAT": "HAT", "WART": "WART", "WITA": "WITA", "UYT": "UYT", "∅∅∅": "∅∅∅", "WIT": "WIT", "GYT": "GYT", "WIB": "WIB", "MST": "MST", "BOT": "BOT", "HADT": "HADT", "MESZ": "MESZ", "ACDT": "ACDT", "SAST": "SAST", "EST": "EST", "EAT": "EAT", "HNNOMX": "HNNOMX", "ACST": "ACST", "AWST": "AWST", "ACWDT": "ACWDT", "WEZ": "WEZ", "ARST": "ARST", "HAST": "HAST", "OESZ": "OESZ", "ECT": "ECT", "NZST": "NZST", "LHDT": "LHDT", "ACWST": "ACWST", "AEST": "AEST", "IST": "IST", "WAT": "WAT", "CLT": "CLT", "MDT": "MDT", "HNEG": "HNEG", "UYST": "UYST", "HNPMX": "HNPMX", "AKST": "AKST", "AKDT": "AKDT", "COT": "COT", "CLST": "CLST", "SRT": "SRT", "MEZ": "MEZ", "HNPM": "HNPM", "AWDT": "AWDT", "HNT": "HNT", "CST": "CST", "ADT": "ADT", "GMT": "GMT", "CHADT": "CHADT", "HNCU": "HNCU", "WESZ": "WESZ", "SGT": "SGT", "EDT": "EDT", "CAT": "CAT", "PST": "PST", "BT": "BT", "GFT": "GFT", "HKT": "HKT", "NZDT": "NZDT", "ART": "ART", "JDT": "JDT", "WAST": "WAST", "LHST": "LHST", "HEOG": "HEOG", "TMT": "TMT", "AST": "AST", "HEPM": "HEPM", "VET": "VET", "OEZ": "OEZ", "COST": "COST", "TMST": "TMST", "CDT": "CDT", "ChST": "ChST", "CHAST": "CHAST", "HEEG": "HEEG", "JST": "JST", "PDT": "PDT", "HEPMX": "HEPMX", "HNOG": "HNOG", "HKST": "HKST"},
+ }
+ }
+ 
+@@ -157,7 +132,7 @@ func (sr *sr_Cyrl_RS) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sr *sr_Cyrl_RS) MonthsAbbreviated() []string {
+- return sr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -167,7 +142,7 @@ func (sr *sr_Cyrl_RS) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sr *sr_Cyrl_RS) MonthsNarrow() []string {
+- return sr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -177,7 +152,7 @@ func (sr *sr_Cyrl_RS) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sr *sr_Cyrl_RS) MonthsWide() []string {
+- return sr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -223,73 +198,13 @@ func (sr *sr_Cyrl_RS) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sr_Cyrl_RS' and handles both Whole and Real numbers based on 'v'
+ func (sr *sr_Cyrl_RS) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sr_Cyrl_RS' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sr *sr_Cyrl_RS) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Cyrl_RS'
+@@ -297,56 +212,7 @@ func (sr *sr_Cyrl_RS) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Cyrl_RS'
+@@ -355,63 +221,7 @@ func (sr *sr_Cyrl_RS) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, sr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sr_Cyrl_RS'
+@@ -419,19 +229,6 @@ func (sr *sr_Cyrl_RS) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -440,29 +237,6 @@ func (sr *sr_Cyrl_RS) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -471,23 +245,6 @@ func (sr *sr_Cyrl_RS) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -496,26 +253,6 @@ func (sr *sr_Cyrl_RS) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -524,19 +261,6 @@ func (sr *sr_Cyrl_RS) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -545,26 +269,6 @@ func (sr *sr_Cyrl_RS) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -573,30 +277,6 @@ func (sr *sr_Cyrl_RS) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -605,34 +285,5 @@ func (sr *sr_Cyrl_RS) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sr_Cyrl_XK/sr_Cyrl_XK.go b/sr_Cyrl_XK/sr_Cyrl_XK.go
+index dd421b3..d256f02 100644
+--- a/sr_Cyrl_XK/sr_Cyrl_XK.go
++++ b/sr_Cyrl_XK/sr_Cyrl_XK.go
+@@ -10,70 +10,49 @@ import (
+ )
+ 
+ type sr_Cyrl_XK struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sr_Cyrl_XK' locale
+ func New() locales.Translator {
+ return &sr_Cyrl_XK{
+- locale: "sr_Cyrl_XK",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ".",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "јан.", "феб.", "март", "апр.", "мај", "јун", "јул", "авг.", "септ.", "окт.", "нов.", "дец."},
+- monthsNarrow: []string{"", "ј", "ф", "м", "а", "м", "ј", "ј", "а", "с", "о", "н", "д"},
+- monthsWide: []string{"", "јануар", "фебруар", "март", "април", "мај", "јун", "јул", "август", "септембар", "октобар", "новембар", "децембар"},
+- daysAbbreviated: []string{"нед.", "пон.", "ут.", "ср.", "чет.", "пет.", "суб."},
+- daysNarrow: []string{"н", "п", "у", "с", "ч", "п", "с"},
+- daysShort: []string{"не", "по", "ут", "ср", "че", "пе", "су"},
+- daysWide: []string{"недеља", "понедељак", "уторак", "среда", "четвртак", "петак", "субота"},
+- periodsAbbreviated: []string{"", ""},
+- periodsNarrow: []string{"", ""},
+- periodsWide: []string{"пре подне", "по подне"},
+- erasAbbreviated: []string{"п. н. е.", "н. е."},
+- erasNarrow: []string{"п.н.е.", "н.е."},
+- erasWide: []string{"пре нове ере", "нове ере"},
+- timezones: map[string]string{"AWDT": "Аустралијско западно летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "ACDT": "Аустралијско централно летње рачунање времена", "OESZ": "Источноевропско летње рачунање времена", "HAST": "Хавајско-алеутско стандардно време", "BT": "Бутан време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "WAST": "Западно-афричко летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена", "AST": "Атлантско стандардно време", "VET": "Венецуела време", "WITA": "Централно-индонезијско време", "CHADT": "Чатам летње рачунање времена", "SAST": "Јужно-афричко време", "TMST": "Туркменистан летње рачунање времена", "HNPMX": "Мексички Пацифик стандардно време", "AEST": "Аустралијско источно стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "WAT": "Западно-афричко стандардно време", "HADT": "Хавајско-алеутско летње рачунање времена", "ART": "Аргентина стандардно време", "AWST": "Аустралијско западно стандардно време", "NZST": "Нови Зеланд стандардно време", "CLT": "Чиле стандардно време", "CAT": "Централно-афричко време", "AKDT": "Аљаска, летње рачунање времена", "GYT": "Гвајана време", "HKST": "Хонг Конг летње рачунање времена", "CHAST": "Чатам стандардно време", "UYT": "Уругвај стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "COST": "Колумбија летње рачунање времена", "HNNOMX": "Северозападни Мексико стандардно време", "CST": "Северноамеричко централно стандардно време", "NZDT": "Нови Зеланд летње рачунање времена", "MST": "Макао стандардно време", "AKST": "Аљаска, стандардно време", "EST": "Северноамеричко источно стандардно време", "EDT": "Северноамеричко источно летње време", "UYST": "Уругвај летње рачунање времена", "HNT": "Њуфаундленд стандардно време", "MEZ": "Средњеевропско стандардно време", "HKT": "Хонг Конг стандардно време", "ECT": "Еквадор време", "WARST": "Западна Аргентина летње рачунање времена", "GMT": "Средње време по Гриничу", "SGT": "Сингапур стандардно време", "SRT": "Суринам време", "PST": "Северноамеричко пацифичко стандардно време", "HNCU": "Куба стандардно време", "ACWST": "Аустралијско централно западно стандардно време", "GFT": "Француска Гвајана време", "HECU": "Куба летње рачунање времена", "WIT": "Источно-индонезијско време", "WEZ": "Западноевропско стандардно време", "MESZ": "Средњеевропско летње рачунање времена", "MYT": "Малезија време", "WESZ": "Западноевропско летње рачунање времена", "IST": "Индијско стандардно време", "∅∅∅": "Амазон летње рачунање времена", "JDT": "Јапанско летње рачунање времена", "BOT": "Боливија време", "TMT": "Туркменистан стандардно време", "CDT": "Северноамеричко централно летње време", "ARST": "Аргентина летње рачунање времена", "LHST": "Лорд Хов стандардно време", "WART": "Западна Аргентина стандардно време", "WIB": "Западно-индонезијско време", "HNOG": "Западни Гренланд стандардно време", "HNPM": "Сен Пјер и Микелон стандардно време", "ACST": "Аустралијско централно стандардно време", "OEZ": "Источноевропско стандардно време", "HENOMX": "Северозападни Мексико летње рачунање времена", "MDT": "Макао летње рачунање времена", "HEOG": "Западни Гренланд летње рачунање времена", "ADT": "Атлантско летње рачунање времена", "PDT": "Северноамеричко пацифичко летње време", "CLST": "Чиле летње рачунање времена", "JST": "Јапанско стандардно време", "ChST": "Чаморо време", "HEEG": "Источни Гренланд летње рачунање времена", "EAT": "Источно-афричко време", "COT": "Колумбија стандардно време", "HAT": "Њуфаундленд летње рачунање времена", "AEDT": "Аустралијско источно летње рачунање времена"},
++ locale: "sr_Cyrl_XK",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "јан.", "феб.", "март", "апр.", "мај", "јун", "јул", "авг.", "септ.", "окт.", "нов.", "дец."},
++ daysAbbreviated: []string{"нед.", "пон.", "ут.", "ср.", "чет.", "пет.", "суб."},
++ periodsAbbreviated: []string{"", ""},
++ periodsNarrow: []string{"", ""},
++ timezones: map[string]string{"CHAST": "CHAST", "UYT": "UYT", "HNPMX": "HNPMX", "WAT": "WAT", "WART": "WART", "MDT": "MDT", "GMT": "GMT", "MEZ": "MEZ", "IST": "IST", "PST": "PST", "HNCU": "HNCU", "WITA": "WITA", "ACST": "ACST", "HKT": "HKT", "TMT": "TMT", "CLT": "CLT", "CLST": "CLST", "OESZ": "OESZ", "COST": "COST", "ChST": "ChST", "HAST": "HAST", "EAT": "EAT", "LHST": "LHST", "HECU": "HECU", "GFT": "GFT", "HNOG": "HNOG", "HKST": "HKST", "TMST": "TMST", "BOT": "BOT", "HEPM": "HEPM", "HEPMX": "HEPMX", "SAST": "SAST", "HEEG": "HEEG", "WARST": "WARST", "CAT": "CAT", "CDT": "CDT", "HNPM": "HNPM", "AWST": "AWST", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "EST": "EST", "WIB": "WIB", "ECT": "ECT", "HNEG": "HNEG", "HEOG": "HEOG", "HADT": "HADT", "JST": "JST", "SGT": "SGT", "HNT": "HNT", "WIT": "WIT", "COT": "COT", "MESZ": "MESZ", "PDT": "PDT", "BT": "BT", "WAST": "WAST", "CST": "CST", "MST": "MST", "HNNOMX": "HNNOMX", "AEST": "AEST", "CHADT": "CHADT", "EDT": "EDT", "NZDT": "NZDT", "JDT": "JDT", "UYST": "UYST", "ACWDT": "ACWDT", "ADT": "ADT", "ARST": "ARST", "SRT": "SRT", "ACDT": "ACDT", "AWDT": "AWDT", "MYT": "MYT", "VET": "VET", "OEZ": "OEZ", "NZST": "NZST", "AST": "AST", "ART": "ART", "LHDT": "LHDT", "AEDT": "AEDT", "ACWST": "ACWST", "WEZ": "WEZ", "WESZ": "WESZ", "AKST": "AKST", "HAT": "HAT", "GYT": "GYT", "HENOMX": "HENOMX"},
+ }
+ }
+ 
+@@ -167,7 +146,7 @@ func (sr *sr_Cyrl_XK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sr *sr_Cyrl_XK) MonthsNarrow() []string {
+- return sr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -177,7 +156,7 @@ func (sr *sr_Cyrl_XK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sr *sr_Cyrl_XK) MonthsWide() []string {
+- return sr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -223,73 +202,13 @@ func (sr *sr_Cyrl_XK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sr_Cyrl_XK' and handles both Whole and Real numbers based on 'v'
+ func (sr *sr_Cyrl_XK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sr_Cyrl_XK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sr *sr_Cyrl_XK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Cyrl_XK'
+@@ -297,56 +216,7 @@ func (sr *sr_Cyrl_XK) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Cyrl_XK'
+@@ -355,63 +225,7 @@ func (sr *sr_Cyrl_XK) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, sr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sr_Cyrl_XK'
+@@ -419,19 +233,6 @@ func (sr *sr_Cyrl_XK) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -440,29 +241,6 @@ func (sr *sr_Cyrl_XK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -471,23 +249,6 @@ func (sr *sr_Cyrl_XK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -496,26 +257,6 @@ func (sr *sr_Cyrl_XK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -524,19 +265,6 @@ func (sr *sr_Cyrl_XK) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -545,26 +273,6 @@ func (sr *sr_Cyrl_XK) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -573,30 +281,6 @@ func (sr *sr_Cyrl_XK) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -605,34 +289,5 @@ func (sr *sr_Cyrl_XK) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sr_Latn/sr_Latn.go b/sr_Latn/sr_Latn.go
+index 637ba8b..f235e58 100644
+--- a/sr_Latn/sr_Latn.go
++++ b/sr_Latn/sr_Latn.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"p. n. e.", "n. e."},
+ erasNarrow: []string{"p.n.e.", "n.e."},
+ erasWide: []string{"pre nove ere", "nove ere"},
+- timezones: map[string]string{"WART": "Zapadna Argentina standardno vreme", "MST": "Makao standardno vreme", "CLST": "Čile letnje računanje vremena", "JDT": "Japansko letnje računanje vremena", "ACDT": "Australijsko centralno letnje računanje vremena", "EDT": "Severnoameričko istočno letnje vreme", "AEDT": "Australijsko istočno letnje računanje vremena", "MEZ": "Srednjeevropsko standardno vreme", "LHST": "Lord Hov standardno vreme", "ACST": "Australijsko centralno standardno vreme", "HNCU": "Kuba standardno vreme", "WESZ": "Zapadnoevropsko letnje računanje vremena", "MESZ": "Srednjeevropsko letnje računanje vremena", "BOT": "Bolivija vreme", "CDT": "Severnoameričko centralno letnje vreme", "WEZ": "Zapadnoevropsko standardno vreme", "ART": "Argentina standardno vreme", "ARST": "Argentina letnje računanje vremena", "WITA": "Centralno-indonezijsko vreme", "COST": "Kolumbija letnje računanje vremena", "HECU": "Kuba letnje računanje vremena", "EST": "Severnoameričko istočno standardno vreme", "MDT": "Makao letnje računanje vremena", "UYT": "Urugvaj standardno vreme", "LHDT": "Lord Hov letnje računanje vremena", "HENOMX": "Severozapadni Meksiko letnje računanje vremena", "GYT": "Gvajana vreme", "SAST": "Južno-afričko vreme", "VET": "Venecuela vreme", "BT": "Butan vreme", "WAST": "Zapadno-afričko letnje računanje vremena", "OEZ": "Istočnoevropsko standardno vreme", "WARST": "Zapadna Argentina letnje računanje vremena", "COT": "Kolumbija standardno vreme", "SGT": "Singapur standardno vreme", "ADT": "Atlantsko letnje računanje vremena", "HAT": "Njufaundlend letnje računanje vremena", "NZST": "Novi Zeland standardno vreme", "JST": "Japansko standardno vreme", "HEPMX": "Meksički Pacifik letnje računanje vremena", "WIB": "Zapadno-indonezijsko vreme", "ChST": "Čamoro vreme", "HNEG": "Istočni Grenland standardno vreme", "TMST": "Turkmenistan letnje računanje vremena", "CAT": "Centralno-afričko vreme", "ECT": "Ekvador vreme", "∅∅∅": "Peru letnje računanje vremena", "PDT": "Severnoameričko pacifičko letnje vreme", "AWDT": "Australijsko zapadno letnje računanje vremena", "CHADT": "Čatam letnje računanje vremena", "TMT": "Turkmenistan standardno vreme", "HAST": "Havajsko-aleutsko standardno vreme", "SRT": "Surinam vreme", "HKST": "Hong Kong letnje računanje vremena", "HEPM": "Sen Pjer i Mikelon letnje računanje vremena", "AEST": "Australijsko istočno standardno vreme", "HNPM": "Sen Pjer i Mikelon standardno vreme", "EAT": "Istočno-afričko vreme", "AKST": "Aljaska, standardno vreme", "HADT": "Havajsko-aleutsko letnje računanje vremena", "WIT": "Istočno-indonezijsko vreme", "ACWDT": "Australijsko centralno zapadno letnje računanje vremena", "HNOG": "Zapadni Grenland standardno vreme", "OESZ": "Istočnoevropsko letnje računanje vremena", "HNPMX": "Meksički Pacifik standardno vreme", "MYT": "Malezija vreme", "HKT": "Hong Kong standardno vreme", "NZDT": "Novi Zeland letnje računanje vremena", "WAT": "Zapadno-afričko standardno vreme", "AST": "Atlantsko standardno vreme", "PST": "Severnoameričko pacifičko standardno vreme", "HNT": "Njufaundlend standardno vreme", "IST": "Indijsko standardno vreme", "GFT": "Francuska Gvajana vreme", "HNNOMX": "Severozapadni Meksiko standardno vreme", "GMT": "Srednje vreme po Griniču", "CST": "Severnoameričko centralno standardno vreme", "CLT": "Čile standardno vreme", "ACWST": "Australijsko centralno zapadno standardno vreme", "HEEG": "Istočni Grenland letnje računanje vremena", "AKDT": "Aljaska, letnje računanje vremena", "AWST": "Australijsko zapadno standardno vreme", "UYST": "Urugvaj letnje računanje vremena", "HEOG": "Zapadni Grenland letnje računanje vremena", "CHAST": "Čatam standardno vreme"},
++ timezones: map[string]string{"ARST": "Argentina letnje računanje vremena", "ACWDT": "Australijsko centralno zapadno letnje računanje vremena", "CHADT": "Čatam letnje računanje vremena", "WAST": "Zapadno-afričko letnje računanje vremena", "GFT": "Francuska Gvajana vreme", "TMST": "Turkmenistan letnje računanje vremena", "CST": "Severnoameričko centralno standardno vreme", "MST": "Makao standardno vreme", "HADT": "Havajsko-aleutsko letnje računanje vremena", "AEST": "Australijsko istočno standardno vreme", "∅∅∅": "Akre letnje računanje vremena", "HNCU": "Kuba standardno vreme", "HNT": "Njufaundlend standardno vreme", "WART": "Zapadna Argentina standardno vreme", "ART": "Argentina standardno vreme", "IST": "Indijsko standardno vreme", "BT": "Butan vreme", "AEDT": "Australijsko istočno letnje računanje vremena", "WEZ": "Zapadnoevropsko standardno vreme", "HNPMX": "Meksički Pacifik standardno vreme", "WARST": "Zapadna Argentina letnje računanje vremena", "ADT": "Atlantsko letnje računanje vremena", "ACDT": "Australijsko centralno letnje računanje vremena", "HENOMX": "Severozapadni Meksiko letnje računanje vremena", "HNPM": "Sen Pjer i Mikelon standardno vreme", "WIT": "Istočno-indonezijsko vreme", "NZDT": "Novi Zeland letnje računanje vremena", "ChST": "Čamoro vreme", "AWST": "Australijsko zapadno standardno vreme", "WAT": "Zapadno-afričko standardno vreme", "CLT": "Čile standardno vreme", "GMT": "Srednje vreme po Griniču", "AWDT": "Australijsko zapadno letnje računanje vremena", "SGT": "Singapur standardno vreme", "GYT": "Gvajana vreme", "ACWST": "Australijsko centralno zapadno standardno vreme", "UYT": "Urugvaj standardno vreme", "AKDT": "Aljaska, letnje računanje vremena", "OEZ": "Istočnoevropsko standardno vreme", "EST": "Severnoameričko istočno standardno vreme", "WITA": "Centralno-indonezijsko vreme", "MEZ": "Srednjeevropsko standardno vreme", "PDT": "Severnoameričko pacifičko letnje vreme", "ACST": "Australijsko centralno standardno vreme", "LHST": "Lord Hov standardno vreme", "HEPM": "Sen Pjer i Mikelon letnje računanje vremena", "ECT": "Ekvador vreme", "EAT": "Istočno-afričko vreme", "HEEG": "Istočni Grenland letnje računanje vremena", "HEPMX": "Meksički Pacifik letnje računanje vremena", "CLST": "Čile letnje računanje vremena", "CDT": "Severnoameričko centralno letnje vreme", "MDT": "Makao letnje računanje vremena", "HAST": "Havajsko-aleutsko standardno vreme", "HNNOMX": "Severozapadni Meksiko standardno vreme", "VET": "Venecuela vreme", "HECU": "Kuba letnje računanje vremena", "SAST": "Južno-afričko vreme", "COT": "Kolumbija standardno vreme", "WIB": "Zapadno-indonezijsko vreme", "MESZ": "Srednjeevropsko letnje računanje vremena", "HNEG": "Istočni Grenland standardno vreme", "LHDT": "Lord Hov letnje računanje vremena", "JDT": "Japansko letnje računanje vremena", "OESZ": "Istočnoevropsko letnje računanje vremena", "PST": "Severnoameričko pacifičko standardno vreme", "TMT": "Turkmenistan standardno vreme", "UYST": "Urugvaj letnje računanje vremena", "AKST": "Aljaska, standardno vreme", "HAT": "Njufaundlend letnje računanje vremena", "HNOG": "Zapadni Grenland standardno vreme", "EDT": "Severnoameričko istočno letnje vreme", "HKST": "Hong Kong letnje računanje vremena", "NZST": "Novi Zeland standardno vreme", "HEOG": "Zapadni Grenland letnje računanje vremena", "HKT": "Hong Kong standardno vreme", "CAT": "Centralno-afričko vreme", "SRT": "Surinam vreme", "MYT": "Malezija vreme", "JST": "Japansko standardno vreme", "CHAST": "Čatam standardno vreme", "WESZ": "Zapadnoevropsko letnje računanje vremena", "COST": "Kolumbija letnje računanje vremena", "AST": "Atlantsko standardno vreme", "BOT": "Bolivija vreme"},
+ }
+ }
+ 
+diff --git a/sr_Latn_BA/sr_Latn_BA.go b/sr_Latn_BA/sr_Latn_BA.go
+index 57023a0..31f5ef7 100644
+--- a/sr_Latn_BA/sr_Latn_BA.go
++++ b/sr_Latn_BA/sr_Latn_BA.go
+@@ -10,70 +10,54 @@ import (
+ )
+ 
+ type sr_Latn_BA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sr_Latn_BA' locale
+ func New() locales.Translator {
+ return &sr_Latn_BA{
+- locale: "sr_Latn_BA",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ".",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mart", "apr.", "maj", "jun", "jul", "avg.", "sept.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "ј", "ф", "м", "а", "м", "ј", "ј", "а", "с", "о", "н", "д"},
+- monthsWide: []string{"", "јануар", "фебруар", "март", "април", "мај", "јун", "јул", "август", "септембар", "октобар", "новембар", "децембар"},
+- daysAbbreviated: []string{"ned.", "pon.", "ut.", "sr.", "čet.", "pet.", "sub."},
+- daysNarrow: []string{"н", "п", "у", "с", "ч", "п", "с"},
+- daysShort: []string{"не", "по", "ут", "ср", "че", "пе", "су"},
+- daysWide: []string{"nedjelja", "ponedeljak", "utorak", "srijeda", "četvrtak", "petak", "subota"},
+- periodsAbbreviated: []string{"prije podne", "po podne"},
+- periodsNarrow: []string{"", ""},
+- periodsWide: []string{"prije podne", "po podne"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"prije nove ere", "nove ere"},
+- timezones: map[string]string{"ARST": "Аргентина летње рачунање времена", "WEZ": "Западноевропско стандардно време", "AEDT": "Аустралијско источно летње рачунање времена", "SAST": "Јужно-афричко време", "WART": "Западна Аргентина стандардно време", "HAST": "Хавајско-алеутско стандардно време", "HEOG": "Западни Гренланд летње рачунање времена", "ECT": "Еквадор време", "MST": "Макао стандардно време", "WITA": "Централно-индонезијско време", "CLT": "Чиле стандардно време", "ADT": "Атлантско летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "HADT": "Хавајско-алеутско летње рачунање времена", "HECU": "Куба летње рачунање времена", "HNOG": "Западни Гренланд стандардно време", "PST": "Северноамеричко пацифичко стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "CHAST": "Чатам стандардно време", "CLST": "Чиле летње рачунање времена", "ACDT": "Аустралијско централно летње рачунање времена", "MYT": "Малезија време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "NZDT": "Нови Зеланд летње рачунање времена", "TMT": "Туркменистан стандардно време", "HNT": "Њуфаундленд стандардно време", "EDT": "Северноамеричко источно летње време", "CST": "Северноамеричко централно стандардно време", "GYT": "Гвајана време", "VET": "Венецуела време", "ART": "Аргентина стандардно време", "JST": "Јапанско стандардно време", "COT": "Колумбија стандардно време", "∅∅∅": "Азори летње рачунање времена", "TMST": "Туркменистан летње рачунање времена", "OESZ": "Источноевропско летње рачунање времена", "PDT": "Северноамеричко пацифичко летње време", "WIB": "Западно-индонезијско време", "SRT": "Суринам време", "WESZ": "Западноевропско летње рачунање времена", "CAT": "Централно-афричко време", "UYST": "Уругвај летње рачунање времена", "CDT": "Северноамеричко централно летње време", "AKST": "Аљаска, стандардно време", "AEST": "Аустралијско источно стандардно време", "MESZ": "Средњеевропско летње рачунање времена", "WAT": "Западно-афричко стандардно време", "HNCU": "Куба стандардно време", "AST": "Атлантско стандардно време", "AWST": "Аустралијско западно стандардно време", "GFT": "Француска Гвајана време", "ACST": "Аустралијско централно стандардно време", "GMT": "Средње време по Гриничу", "BOT": "Боливија време", "HNNOMX": "Северозападни Мексико стандардно време", "HENOMX": "Северозападни Мексико летње рачунање времена", "IST": "Индијско стандардно време", "HNPMX": "Мексички Пацифик стандардно време", "BT": "Бутан време", "HKST": "Хонг Конг летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "ChST": "Чаморо време", "OEZ": "Источноевропско стандардно време", "MDT": "Макао летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена", "HNPM": "Сен Пјер и Микелон стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "CHADT": "Чатам летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "WARST": "Западна Аргентина летње рачунање времена", "SGT": "Сингапур стандардно време", "HAT": "Њуфаундленд летње рачунање времена", "LHST": "Лорд Хов стандардно време", "NZST": "Нови Зеланд стандардно време", "EAT": "Источно-афричко време", "WAST": "Западно-афричко летње рачунање времена", "UYT": "Уругвај стандардно време", "WIT": "Источно-индонезијско време", "ACWST": "Аустралијско централно западно стандардно време", "HKT": "Хонг Конг стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "JDT": "Јапанско летње рачунање времена", "COST": "Колумбија летње рачунање времена", "AKDT": "Аљаска, летње рачунање времена"},
++ locale: "sr_Latn_BA",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "jan.", "feb.", "mart", "apr.", "maj", "jun", "jul", "avg.", "sept.", "okt.", "nov.", "dec."},
++ daysAbbreviated: []string{"ned.", "pon.", "ut.", "sr.", "čet.", "pet.", "sub."},
++ daysWide: []string{"nedjelja", "ponedeljak", "utorak", "srijeda", "četvrtak", "petak", "subota"},
++ periodsAbbreviated: []string{"prije podne", "po podne"},
++ periodsNarrow: []string{"", ""},
++ periodsWide: []string{"prije podne", "po podne"},
++ erasAbbreviated: []string{"", ""},
++ erasNarrow: []string{"", ""},
++ erasWide: []string{"prije nove ere", "nove ere"},
++ timezones: map[string]string{"SAST": "SAST", "COST": "COST", "MST": "MST", "WIT": "WIT", "CHADT": "CHADT", "OEZ": "OEZ", "TMST": "TMST", "CDT": "CDT", "HAST": "HAST", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "AKDT": "AKDT", "WARST": "WARST", "GYT": "GYT", "TMT": "TMT", "CST": "CST", "ChST": "ChST", "JDT": "JDT", "HEPM": "HEPM", "ACWDT": "ACWDT", "PST": "PST", "HKST": "HKST", "CLT": "CLT", "WITA": "WITA", "HENOMX": "HENOMX", "UYST": "UYST", "WAST": "WAST", "ART": "ART", "ACWST": "ACWST", "AKST": "AKST", "HEOG": "HEOG", "EDT": "EDT", "CAT": "CAT", "LHST": "LHST", "AEDT": "AEDT", "UYT": "UYT", "HNCU": "HNCU", "VET": "VET", "HKT": "HKT", "LHDT": "LHDT", "CHAST": "CHAST", "COT": "COT", "NZST": "NZST", "EAT": "EAT", "HADT": "HADT", "MEZ": "MEZ", "MYT": "MYT", "AEST": "AEST", "IST": "IST", "CLST": "CLST", "AST": "AST", "ADT": "ADT", "HNPM": "HNPM", "HAT": "HAT", "HNOG": "HNOG", "WIB": "WIB", "WESZ": "WESZ", "SGT": "SGT", "WEZ": "WEZ", "NZDT": "NZDT", "SRT": "SRT", "BT": "BT", "AWST": "AWST", "WAT": "WAT", "OESZ": "OESZ", "ECT": "ECT", "GMT": "GMT", "HEEG": "HEEG", "HEPMX": "HEPMX", "HNT": "HNT", "BOT": "BOT", "PDT": "PDT", "ACDT": "ACDT", "JST": "JST", "AWDT": "AWDT", "HNPMX": "HNPMX", "GFT": "GFT", "WART": "WART", "MDT": "MDT", "HNNOMX": "HNNOMX", "ARST": "ARST", "HNEG": "HNEG", "HECU": "HECU", "EST": "EST", "ACST": "ACST"},
+ }
+ }
+ 
+@@ -167,7 +151,7 @@ func (sr *sr_Latn_BA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sr *sr_Latn_BA) MonthsNarrow() []string {
+- return sr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -177,7 +161,7 @@ func (sr *sr_Latn_BA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sr *sr_Latn_BA) MonthsWide() []string {
+- return sr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -223,73 +207,13 @@ func (sr *sr_Latn_BA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sr_Latn_BA' and handles both Whole and Real numbers based on 'v'
+ func (sr *sr_Latn_BA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sr_Latn_BA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sr *sr_Latn_BA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Latn_BA'
+@@ -297,56 +221,7 @@ func (sr *sr_Latn_BA) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Latn_BA'
+@@ -355,63 +230,7 @@ func (sr *sr_Latn_BA) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, sr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sr_Latn_BA'
+@@ -419,19 +238,6 @@ func (sr *sr_Latn_BA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -440,29 +246,6 @@ func (sr *sr_Latn_BA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -471,23 +254,6 @@ func (sr *sr_Latn_BA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -496,26 +262,6 @@ func (sr *sr_Latn_BA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -524,19 +270,6 @@ func (sr *sr_Latn_BA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -545,26 +278,6 @@ func (sr *sr_Latn_BA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -573,30 +286,6 @@ func (sr *sr_Latn_BA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -605,34 +294,5 @@ func (sr *sr_Latn_BA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sr_Latn_ME/sr_Latn_ME.go b/sr_Latn_ME/sr_Latn_ME.go
+index 74cbe1c..5db362a 100644
+--- a/sr_Latn_ME/sr_Latn_ME.go
++++ b/sr_Latn_ME/sr_Latn_ME.go
+@@ -10,70 +10,54 @@ import (
+ )
+ 
+ type sr_Latn_ME struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sr_Latn_ME' locale
+ func New() locales.Translator {
+ return &sr_Latn_ME{
+- locale: "sr_Latn_ME",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ".",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mart", "apr.", "maj", "jun", "jul", "avg.", "sept.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "ј", "ф", "м", "а", "м", "ј", "ј", "а", "с", "о", "н", "д"},
+- monthsWide: []string{"", "јануар", "фебруар", "март", "април", "мај", "јун", "јул", "август", "септембар", "октобар", "новембар", "децембар"},
+- daysAbbreviated: []string{"ned.", "pon.", "ut.", "sr.", "čet.", "pet.", "sub."},
+- daysNarrow: []string{"н", "п", "у", "с", "ч", "п", "с"},
+- daysShort: []string{"не", "по", "ут", "ср", "че", "пе", "су"},
+- daysWide: []string{"nedjelja", "ponedeljak", "utorak", "srijeda", "četvrtak", "petak", "subota"},
+- periodsAbbreviated: []string{"prije podne", "po podne"},
+- periodsNarrow: []string{"", ""},
+- periodsWide: []string{"prije podne", "po podne"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"NZDT": "Нови Зеланд летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "UYST": "Уругвај летње рачунање времена", "HAST": "Хавајско-алеутско стандардно време", "WITA": "Централно-индонезијско време", "HNT": "Њуфаундленд стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "CLST": "Чиле летње рачунање времена", "JST": "Јапанско стандардно време", "WAST": "Западно-афричко летње рачунање времена", "ECT": "Еквадор време", "AKST": "Аљаска, стандардно време", "CDT": "Северноамеричко централно летње време", "UYT": "Уругвај стандардно време", "HAT": "Њуфаундленд летње рачунање времена", "BOT": "Боливија време", "EAT": "Источно-афричко време", "WARST": "Западна Аргентина летње рачунање времена", "HEPMX": "Мексички Пацифик летње рачунање времена", "ACDT": "Аустралијско централно летње рачунање времена", "COT": "Колумбија стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "CHADT": "Чатам летње рачунање времена", "WEZ": "Западноевропско стандардно време", "ChST": "Чаморо време", "OESZ": "Источноевропско летње рачунање времена", "WART": "Западна Аргентина стандардно време", "ADT": "Атлантско летње рачунање времена", "ACST": "Аустралијско централно стандардно време", "WIT": "Источно-индонезијско време", "AEDT": "Аустралијско источно летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "SGT": "Сингапур стандардно време", "HNPMX": "Мексички Пацифик стандардно време", "ARST": "Аргентина летње рачунање времена", "WAT": "Западно-афричко стандардно време", "GMT": "Средње време по Гриничу", "AEST": "Аустралијско источно стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "HEOG": "Западни Гренланд летње рачунање времена", "CHAST": "Чатам стандардно време", "OEZ": "Источноевропско стандардно време", "EDT": "Северноамеричко источно летње време", "MYT": "Малезија време", "HNOG": "Западни Гренланд стандардно време", "HADT": "Хавајско-алеутско летње рачунање времена", "SRT": "Суринам време", "ACWST": "Аустралијско централно западно стандардно време", "IST": "Индијско стандардно време", "∅∅∅": "Амазон летње рачунање времена", "GFT": "Француска Гвајана време", "CAT": "Централно-афричко време", "HENOMX": "Северозападни Мексико летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "COST": "Колумбија летње рачунање времена", "CST": "Северноамеричко централно стандардно време", "WESZ": "Западноевропско летње рачунање времена", "HNPM": "Сен Пјер и Микелон стандардно време", "VET": "Венецуела време", "PDT": "Северноамеричко пацифичко летње време", "MESZ": "Средњеевропско летње рачунање времена", "JDT": "Јапанско летње рачунање времена", "TMT": "Туркменистан стандардно време", "HNCU": "Куба стандардно време", "HECU": "Куба летње рачунање времена", "WIB": "Западно-индонезијско време", "BT": "Бутан време", "HKT": "Хонг Конг стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "TMST": "Туркменистан летње рачунање времена", "HNNOMX": "Северозападни Мексико стандардно време", "AST": "Атлантско стандардно време", "PST": "Северноамеричко пацифичко стандардно време", "LHST": "Лорд Хов стандардно време", "SAST": "Јужно-афричко време", "MST": "Макао стандардно време", "AKDT": "Аљаска, летње рачунање времена", "GYT": "Гвајана време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "HKST": "Хонг Конг летње рачунање времена", "NZST": "Нови Зеланд стандардно време", "CLT": "Чиле стандардно време", "MDT": "Макао летње рачунање времена", "ART": "Аргентина стандардно време", "AWST": "Аустралијско западно стандардно време"},
++ locale: "sr_Latn_ME",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "jan.", "feb.", "mart", "apr.", "maj", "jun", "jul", "avg.", "sept.", "okt.", "nov.", "dec."},
++ daysAbbreviated: []string{"ned.", "pon.", "ut.", "sr.", "čet.", "pet.", "sub."},
++ daysWide: []string{"nedjelja", "ponedeljak", "utorak", "srijeda", "četvrtak", "petak", "subota"},
++ periodsAbbreviated: []string{"prije podne", "po podne"},
++ periodsNarrow: []string{"", ""},
++ periodsWide: []string{"prije podne", "po podne"},
++ erasAbbreviated: []string{"", ""},
++ erasNarrow: []string{"", ""},
++ erasWide: []string{"", ""},
++ timezones: map[string]string{"GYT": "GYT", "AWDT": "AWDT", "PST": "PST", "GFT": "GFT", "EAT": "EAT", "UYST": "UYST", "SAST": "SAST", "COST": "COST", "CLT": "CLT", "MST": "MST", "MDT": "MDT", "SRT": "SRT", "AKDT": "AKDT", "HKT": "HKT", "WEZ": "WEZ", "WART": "WART", "ChST": "ChST", "ART": "ART", "HNCU": "HNCU", "HAT": "HAT", "HECU": "HECU", "OESZ": "OESZ", "EDT": "EDT", "MESZ": "MESZ", "ACST": "ACST", "LHST": "LHST", "JDT": "JDT", "SGT": "SGT", "WIB": "WIB", "AKST": "AKST", "OEZ": "OEZ", "COT": "COT", "∅∅∅": "∅∅∅", "CLST": "CLST", "BOT": "BOT", "AWST": "AWST", "ACWST": "ACWST", "HEOG": "HEOG", "TMST": "TMST", "IST": "IST", "ACWDT": "ACWDT", "WESZ": "WESZ", "HEPMX": "HEPMX", "MYT": "MYT", "HNPM": "HNPM", "ARST": "ARST", "HAST": "HAST", "AEDT": "AEDT", "HNT": "HNT", "EST": "EST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "CHADT": "CHADT", "VET": "VET", "WAST": "WAST", "HNOG": "HNOG", "CAT": "CAT", "ECT": "ECT", "JST": "JST", "BT": "BT", "TMT": "TMT", "HADT": "HADT", "MEZ": "MEZ", "LHDT": "LHDT", "HNPMX": "HNPMX", "CST": "CST", "HEEG": "HEEG", "UYT": "UYT", "WIT": "WIT", "HNEG": "HNEG", "HEPM": "HEPM", "WITA": "WITA", "CDT": "CDT", "NZST": "NZST", "AST": "AST", "GMT": "GMT", "ACDT": "ACDT", "PDT": "PDT", "AEST": "AEST", "WAT": "WAT", "WARST": "WARST", "HKST": "HKST", "NZDT": "NZDT", "ADT": "ADT", "CHAST": "CHAST"},
+ }
+ }
+ 
+@@ -167,7 +151,7 @@ func (sr *sr_Latn_ME) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sr *sr_Latn_ME) MonthsNarrow() []string {
+- return sr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -177,7 +161,7 @@ func (sr *sr_Latn_ME) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sr *sr_Latn_ME) MonthsWide() []string {
+- return sr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -223,73 +207,13 @@ func (sr *sr_Latn_ME) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sr_Latn_ME' and handles both Whole and Real numbers based on 'v'
+ func (sr *sr_Latn_ME) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sr_Latn_ME' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sr *sr_Latn_ME) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Latn_ME'
+@@ -297,56 +221,7 @@ func (sr *sr_Latn_ME) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Latn_ME'
+@@ -355,63 +230,7 @@ func (sr *sr_Latn_ME) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, sr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sr_Latn_ME'
+@@ -419,19 +238,6 @@ func (sr *sr_Latn_ME) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -440,29 +246,6 @@ func (sr *sr_Latn_ME) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -471,23 +254,6 @@ func (sr *sr_Latn_ME) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -496,26 +262,6 @@ func (sr *sr_Latn_ME) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -524,19 +270,6 @@ func (sr *sr_Latn_ME) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -545,26 +278,6 @@ func (sr *sr_Latn_ME) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -573,30 +286,6 @@ func (sr *sr_Latn_ME) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -605,34 +294,5 @@ func (sr *sr_Latn_ME) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sr_Latn_RS/sr_Latn_RS.go b/sr_Latn_RS/sr_Latn_RS.go
+index abe98b6..b5ee892 100644
+--- a/sr_Latn_RS/sr_Latn_RS.go
++++ b/sr_Latn_RS/sr_Latn_RS.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type sr_Latn_RS struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sr_Latn_RS' locale
+ func New() locales.Translator {
+ return &sr_Latn_RS{
+- locale: "sr_Latn_RS",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ".",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "јан", "феб", "мар", "апр", "мај", "јун", "јул", "авг", "сеп", "окт", "нов", "дец"},
+- monthsNarrow: []string{"", "ј", "ф", "м", "а", "м", "ј", "ј", "а", "с", "о", "н", "д"},
+- monthsWide: []string{"", "јануар", "фебруар", "март", "април", "мај", "јун", "јул", "август", "септембар", "октобар", "новембар", "децембар"},
+- daysAbbreviated: []string{"нед", "пон", "уто", "сре", "чет", "пет", "суб"},
+- daysNarrow: []string{"н", "п", "у", "с", "ч", "п", "с"},
+- daysShort: []string{"не", "по", "ут", "ср", "че", "пе", "су"},
+- daysWide: []string{"недеља", "понедељак", "уторак", "среда", "четвртак", "петак", "субота"},
+- periodsAbbreviated: []string{"пре подне", "по подне"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"пре подне", "по подне"},
+- erasAbbreviated: []string{"п. н. е.", "н. е."},
+- erasNarrow: []string{"п.н.е.", "н.е."},
+- erasWide: []string{"пре нове ере", "нове ере"},
+- timezones: map[string]string{"CLT": "Чиле стандардно време", "CST": "Северноамеричко централно стандардно време", "SRT": "Суринам време", "AEST": "Аустралијско источно стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "HENOMX": "Северозападни Мексико летње рачунање времена", "MST": "Макао стандардно време", "HADT": "Хавајско-алеутско летње рачунање времена", "ACWDT": "Аустралијско централно западно летње рачунање времена", "AEDT": "Аустралијско источно летње рачунање времена", "ADT": "Атлантско летње рачунање времена", "HEOG": "Западни Гренланд летње рачунање времена", "∅∅∅": "Амазон летње рачунање времена", "SAST": "Јужно-афричко време", "IST": "Индијско стандардно време", "BOT": "Боливија време", "HEEG": "Источни Гренланд летње рачунање времена", "GFT": "Француска Гвајана време", "HNPMX": "Мексички Пацифик стандардно време", "WESZ": "Западноевропско летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "LHST": "Лорд Хов стандардно време", "NZST": "Нови Зеланд стандардно време", "EAT": "Источно-афричко време", "WAT": "Западно-афричко стандардно време", "HNOG": "Западни Гренланд стандардно време", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "ECT": "Еквадор време", "ARST": "Аргентина летње рачунање времена", "CAT": "Централно-афричко време", "TMT": "Туркменистан стандардно време", "HNCU": "Куба стандардно време", "HEPMX": "Мексички Пацифик летње рачунање времена", "AST": "Атлантско стандардно време", "PST": "Северноамеричко пацифичко стандардно време", "HNT": "Њуфаундленд стандардно време", "CLST": "Чиле летње рачунање времена", "GMT": "Средње време по Гриничу", "CDT": "Северноамеричко централно летње време", "HAST": "Хавајско-алеутско стандардно време", "AWST": "Аустралијско западно стандардно време", "HKST": "Хонг Конг летње рачунање времена", "JDT": "Јапанско летње рачунање времена", "ACST": "Аустралијско централно стандардно време", "SGT": "Сингапур стандардно време", "HNPM": "Сен Пјер и Микелон стандардно време", "MESZ": "Средњеевропско летње рачунање времена", "EDT": "Северноамеричко источно летње време", "ACDT": "Аустралијско централно летње рачунање времена", "HNNOMX": "Северозападни Мексико стандардно време", "HKT": "Хонг Конг стандардно време", "WITA": "Централно-индонезијско време", "CHADT": "Чатам летње рачунање времена", "MDT": "Макао летње рачунање времена", "MYT": "Малезија време", "UYT": "Уругвај стандардно време", "PDT": "Северноамеричко пацифичко летње време", "WEZ": "Западноевропско стандардно време", "AKST": "Аљаска, стандардно време", "VET": "Венецуела време", "HECU": "Куба летње рачунање времена", "EST": "Северноамеричко источно стандардно време", "WAST": "Западно-афричко летње рачунање времена", "OEZ": "Источноевропско стандардно време", "HNEG": "Источни Гренланд стандардно време", "WARST": "Западна Аргентина летње рачунање времена", "AKDT": "Аљаска, летње рачунање времена", "MEZ": "Средњеевропско стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "OESZ": "Источноевропско летње рачунање времена", "GYT": "Гвајана време", "JST": "Јапанско стандардно време", "TMST": "Туркменистан летње рачунање времена", "CHAST": "Чатам стандардно време", "ChST": "Чаморо време", "UYST": "Уругвај летње рачунање времена", "WIB": "Западно-индонезијско време", "HAT": "Њуфаундленд летње рачунање времена", "ART": "Аргентина стандардно време", "WART": "Западна Аргентина стандардно време", "COT": "Колумбија стандардно време", "COST": "Колумбија летње рачунање времена", "WIT": "Источно-индонезијско време", "BT": "Бутан време", "NZDT": "Нови Зеланд летње рачунање времена"},
++ locale: "sr_Latn_RS",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MESZ": "MESZ", "HENOMX": "HENOMX", "AWDT": "AWDT", "LHDT": "LHDT", "TMT": "TMT", "MDT": "MDT", "SRT": "SRT", "HADT": "HADT", "ACDT": "ACDT", "LHST": "LHST", "WEZ": "WEZ", "HAT": "HAT", "∅∅∅": "∅∅∅", "CAT": "CAT", "CLT": "CLT", "PST": "PST", "PDT": "PDT", "SGT": "SGT", "HNT": "HNT", "HNOG": "HNOG", "HKST": "HKST", "JST": "JST", "HNCU": "HNCU", "NZST": "NZST", "HEEG": "HEEG", "CHAST": "CHAST", "ACWST": "ACWST", "HNPMX": "HNPMX", "GFT": "GFT", "CDT": "CDT", "MEZ": "MEZ", "ACST": "ACST", "OESZ": "OESZ", "SAST": "SAST", "CLST": "CLST", "GMT": "GMT", "ARST": "ARST", "EAT": "EAT", "UYST": "UYST", "GYT": "GYT", "WIB": "WIB", "BOT": "BOT", "HAST": "HAST", "HECU": "HECU", "WAT": "WAT", "WIT": "WIT", "CST": "CST", "MYT": "MYT", "HKT": "HKT", "HNEG": "HNEG", "AWST": "AWST", "WESZ": "WESZ", "HEOG": "HEOG", "TMST": "TMST", "MST": "MST", "AEDT": "AEDT", "JDT": "JDT", "WAST": "WAST", "WART": "WART", "EST": "EST", "ChST": "ChST", "HNPM": "HNPM", "UYT": "UYT", "VET": "VET", "COT": "COT", "COST": "COST", "EDT": "EDT", "NZDT": "NZDT", "AKDT": "AKDT", "AST": "AST", "BT": "BT", "HEPMX": "HEPMX", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "ACWDT": "ACWDT", "WARST": "WARST", "WITA": "WITA", "ADT": "ADT", "ART": "ART", "IST": "IST", "AEST": "AEST", "AKST": "AKST", "OEZ": "OEZ", "ECT": "ECT", "CHADT": "CHADT"},
+ }
+ }
+ 
+@@ -103,10 +78,10 @@ func (sr *sr_Latn_RS) CardinalPluralRule(num float64, v uint64) locales.PluralRu
+ n := math.Abs(num)
+ i := int64(n)
+ f := locales.F(n, v)
+- iMod100 := i % 100
+ iMod10 := i % 10
+- fMod100 := f % 100
++ iMod100 := i % 100
+ fMod10 := f % 10
++ fMod100 := f % 100
+ 
+ if (v == 0 && iMod10 == 1 && iMod100 != 11) || (fMod10 == 1 && fMod100 != 11) {
+ return locales.PluralRuleOne
+@@ -157,7 +132,7 @@ func (sr *sr_Latn_RS) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sr *sr_Latn_RS) MonthsAbbreviated() []string {
+- return sr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -167,7 +142,7 @@ func (sr *sr_Latn_RS) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sr *sr_Latn_RS) MonthsNarrow() []string {
+- return sr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -177,7 +152,7 @@ func (sr *sr_Latn_RS) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sr *sr_Latn_RS) MonthsWide() []string {
+- return sr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -223,73 +198,13 @@ func (sr *sr_Latn_RS) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sr_Latn_RS' and handles both Whole and Real numbers based on 'v'
+ func (sr *sr_Latn_RS) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sr_Latn_RS' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sr *sr_Latn_RS) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Latn_RS'
+@@ -297,56 +212,7 @@ func (sr *sr_Latn_RS) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Latn_RS'
+@@ -355,63 +221,7 @@ func (sr *sr_Latn_RS) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, sr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sr_Latn_RS'
+@@ -419,19 +229,6 @@ func (sr *sr_Latn_RS) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -440,29 +237,6 @@ func (sr *sr_Latn_RS) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -471,23 +245,6 @@ func (sr *sr_Latn_RS) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -496,26 +253,6 @@ func (sr *sr_Latn_RS) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -524,19 +261,6 @@ func (sr *sr_Latn_RS) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -545,26 +269,6 @@ func (sr *sr_Latn_RS) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -573,30 +277,6 @@ func (sr *sr_Latn_RS) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -605,34 +285,5 @@ func (sr *sr_Latn_RS) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sr_Latn_XK/sr_Latn_XK.go b/sr_Latn_XK/sr_Latn_XK.go
+index d80d96f..23043cc 100644
+--- a/sr_Latn_XK/sr_Latn_XK.go
++++ b/sr_Latn_XK/sr_Latn_XK.go
+@@ -10,70 +10,49 @@ import (
+ )
+ 
+ type sr_Latn_XK struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sr_Latn_XK' locale
+ func New() locales.Translator {
+ return &sr_Latn_XK{
+- locale: "sr_Latn_XK",
+- pluralsCardinal: []locales.PluralRule{2, 4, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 4, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ".",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mart", "apr.", "maj", "jun", "jul", "avg.", "sept.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "ј", "ф", "м", "а", "м", "ј", "ј", "а", "с", "о", "н", "д"},
+- monthsWide: []string{"", "јануар", "фебруар", "март", "април", "мај", "јун", "јул", "август", "септембар", "октобар", "новембар", "децембар"},
+- daysAbbreviated: []string{"ned.", "pon.", "ut.", "sr.", "čet.", "pet.", "sub."},
+- daysNarrow: []string{"н", "п", "у", "с", "ч", "п", "с"},
+- daysShort: []string{"не", "по", "ут", "ср", "че", "пе", "су"},
+- daysWide: []string{"недеља", "понедељак", "уторак", "среда", "четвртак", "петак", "субота"},
+- periodsAbbreviated: []string{"", ""},
+- periodsNarrow: []string{"", ""},
+- periodsWide: []string{"пре подне", "по подне"},
+- erasAbbreviated: []string{"п. н. е.", "н. е."},
+- erasNarrow: []string{"п.н.е.", "н.е."},
+- erasWide: []string{"пре нове ере", "нове ере"},
+- timezones: map[string]string{"MYT": "Малезија време", "UYST": "Уругвај летње рачунање времена", "CDT": "Северноамеричко централно летње време", "HNT": "Њуфаундленд стандардно време", "WITA": "Централно-индонезијско време", "SAST": "Јужно-афричко време", "PST": "Северноамеричко пацифичко стандардно време", "AWST": "Аустралијско западно стандардно време", "TMT": "Туркменистан стандардно време", "∅∅∅": "Перу летње рачунање времена", "AST": "Атлантско стандардно време", "GYT": "Гвајана време", "VET": "Венецуела време", "ART": "Аргентина стандардно време", "CHAST": "Чатам стандардно време", "SGT": "Сингапур стандардно време", "HECU": "Куба летње рачунање времена", "EDT": "Северноамеричко источно летње време", "ADT": "Атлантско летње рачунање времена", "JST": "Јапанско стандардно време", "HKST": "Хонг Конг летње рачунање времена", "HNPM": "Сен Пјер и Микелон стандардно време", "BOT": "Боливија време", "WAT": "Западно-афричко стандардно време", "MDT": "Макао летње рачунање времена", "AKDT": "Аљаска, летње рачунање времена", "WIT": "Источно-индонезијско време", "AEDT": "Аустралијско источно летње рачунање времена", "HEPM": "Сен Пјер и Микелон летње рачунање времена", "HNEG": "Источни Гренланд стандардно време", "WAST": "Западно-афричко летње рачунање времена", "HNPMX": "Мексички Пацифик стандардно време", "HNOG": "Западни Гренланд стандардно време", "CHADT": "Чатам летње рачунање времена", "ECT": "Еквадор време", "HNNOMX": "Северозападни Мексико стандардно време", "EST": "Северноамеричко источно стандардно време", "HEPMX": "Мексички Пацифик летње рачунање времена", "ARST": "Аргентина летње рачунање времена", "AEST": "Аустралијско источно стандардно време", "JDT": "Јапанско летње рачунање времена", "WART": "Западна Аргентина стандардно време", "COT": "Колумбија стандардно време", "WESZ": "Западноевропско летње рачунање времена", "ACWST": "Аустралијско централно западно стандардно време", "NZST": "Нови Зеланд стандардно време", "IST": "Индијско стандардно време", "LHDT": "Лорд Хов летње рачунање времена", "ChST": "Чаморо време", "WARST": "Западна Аргентина летње рачунање времена", "PDT": "Северноамеричко пацифичко летње време", "WEZ": "Западноевропско стандардно време", "HAT": "Њуфаундленд летње рачунање времена", "MESZ": "Средњеевропско летње рачунање времена", "HNCU": "Куба стандардно време", "HADT": "Хавајско-алеутско летње рачунање времена", "SRT": "Суринам време", "TMST": "Туркменистан летње рачунање времена", "GMT": "Средње време по Гриничу", "MST": "Макао стандардно време", "MEZ": "Средњеевропско стандардно време", "CAT": "Централно-афричко време", "EAT": "Источно-афричко време", "COST": "Колумбија летње рачунање времена", "WIB": "Западно-индонезијско време", "HAST": "Хавајско-алеутско стандардно време", "AWDT": "Аустралијско западно летње рачунање времена", "AKST": "Аљаска, стандардно време", "CST": "Северноамеричко централно стандардно време", "BT": "Бутан време", "ACWDT": "Аустралијско централно западно летње рачунање времена", "CLT": "Чиле стандардно време", "ACDT": "Аустралијско централно летње рачунање времена", "HENOMX": "Северозападни Мексико летње рачунање времена", "LHST": "Лорд Хов стандардно време", "HEEG": "Источни Гренланд летње рачунање времена", "ACST": "Аустралијско централно стандардно време", "OEZ": "Источноевропско стандардно време", "OESZ": "Источноевропско летње рачунање времена", "UYT": "Уругвај стандардно време", "CLST": "Чиле летње рачунање времена", "GFT": "Француска Гвајана време", "HEOG": "Западни Гренланд летње рачунање времена", "HKT": "Хонг Конг стандардно време", "NZDT": "Нови Зеланд летње рачунање времена"},
++ locale: "sr_Latn_XK",
++ pluralsCardinal: []locales.PluralRule{2, 4, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 4, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "jan.", "feb.", "mart", "apr.", "maj", "jun", "jul", "avg.", "sept.", "okt.", "nov.", "dec."},
++ daysAbbreviated: []string{"ned.", "pon.", "ut.", "sr.", "čet.", "pet.", "sub."},
++ periodsAbbreviated: []string{"", ""},
++ periodsNarrow: []string{"", ""},
++ timezones: map[string]string{"EDT": "EDT", "HNEG": "HNEG", "LHST": "LHST", "JST": "JST", "PST": "PST", "HNCU": "HNCU", "OEZ": "OEZ", "HNT": "HNT", "NZDT": "NZDT", "HADT": "HADT", "AWDT": "AWDT", "IST": "IST", "PDT": "PDT", "ACWST": "ACWST", "WAT": "WAT", "HEOG": "HEOG", "HEPMX": "HEPMX", "HNNOMX": "HNNOMX", "UYST": "UYST", "HAT": "HAT", "ChST": "ChST", "WIT": "WIT", "COST": "COST", "AWST": "AWST", "WEZ": "WEZ", "WART": "WART", "WARST": "WARST", "COT": "COT", "HNOG": "HNOG", "MST": "MST", "SRT": "SRT", "HAST": "HAST", "ACST": "ACST", "WAST": "WAST", "OESZ": "OESZ", "AEDT": "AEDT", "UYT": "UYT", "BT": "BT", "HNPMX": "HNPMX", "HKST": "HKST", "WITA": "WITA", "ADT": "ADT", "HENOMX": "HENOMX", "HEPM": "HEPM", "AEST": "AEST", "AKDT": "AKDT", "GYT": "GYT", "BOT": "BOT", "CHADT": "CHADT", "ACWDT": "ACWDT", "AKST": "AKST", "GMT": "GMT", "TMT": "TMT", "NZST": "NZST", "WIB": "WIB", "MYT": "MYT", "WESZ": "WESZ", "VET": "VET", "EST": "EST", "HKT": "HKT", "CST": "CST", "HECU": "HECU", "CAT": "CAT", "CLST": "CLST", "CDT": "CDT", "ART": "ART", "MESZ": "MESZ", "LHDT": "LHDT", "JDT": "JDT", "∅∅∅": "∅∅∅", "TMST": "TMST", "ACDT": "ACDT", "SAST": "SAST", "CLT": "CLT", "EAT": "EAT", "HEEG": "HEEG", "HNPM": "HNPM", "CHAST": "CHAST", "GFT": "GFT", "MDT": "MDT", "ARST": "ARST", "MEZ": "MEZ", "SGT": "SGT", "ECT": "ECT", "AST": "AST"},
+ }
+ }
+ 
+@@ -167,7 +146,7 @@ func (sr *sr_Latn_XK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sr *sr_Latn_XK) MonthsNarrow() []string {
+- return sr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -177,7 +156,7 @@ func (sr *sr_Latn_XK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sr *sr_Latn_XK) MonthsWide() []string {
+- return sr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -223,73 +202,13 @@ func (sr *sr_Latn_XK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sr_Latn_XK' and handles both Whole and Real numbers based on 'v'
+ func (sr *sr_Latn_XK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sr_Latn_XK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sr *sr_Latn_XK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sr.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Latn_XK'
+@@ -297,56 +216,7 @@ func (sr *sr_Latn_XK) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sr_Latn_XK'
+@@ -355,63 +225,7 @@ func (sr *sr_Latn_XK) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sr.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, sr.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sr.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sr.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sr_Latn_XK'
+@@ -419,19 +233,6 @@ func (sr *sr_Latn_XK) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -440,29 +241,6 @@ func (sr *sr_Latn_XK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -471,23 +249,6 @@ func (sr *sr_Latn_XK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -496,26 +257,6 @@ func (sr *sr_Latn_XK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sr.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, sr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -524,19 +265,6 @@ func (sr *sr_Latn_XK) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -545,26 +273,6 @@ func (sr *sr_Latn_XK) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -573,30 +281,6 @@ func (sr *sr_Latn_XK) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -605,34 +289,5 @@ func (sr *sr_Latn_XK) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sv/sv.go b/sv/sv.go
+index 3a92675..9ba794f 100644
+--- a/sv/sv.go
++++ b/sv/sv.go
+@@ -73,7 +73,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"f.Kr.", "e.Kr."},
+ erasNarrow: []string{"f.Kr.", "e.Kr."},
+ erasWide: []string{"före Kristus", "efter Kristus"},
+- timezones: map[string]string{"MEZ": "centraleuropeisk normaltid", "OESZ": "östeuropeisk sommartid", "GMT": "Greenwichtid", "MYT": "malaysisk tid", "AEDT": "östaustralisk sommartid", "IST": "indisk tid", "∅∅∅": "Amazonas, sommartid", "TMST": "turkmensk sommartid", "ECT": "ecuadoriansk tid", "WART": "västargentinsk normaltid", "HNNOMX": "nordvästmexikansk normaltid", "WIB": "västindonesisk tid", "WIT": "östindonesisk tid", "WEZ": "västeuropeisk normaltid", "HNEG": "östgrönländsk normaltid", "WARST": "västargentinsk sommartid", "EDT": "östnordamerikansk sommartid", "AKST": "Alaska, normaltid", "SRT": "Surinamtid", "CHADT": "Chatham, sommartid", "OEZ": "östeuropeisk normaltid", "HENOMX": "nordvästmexikansk sommartid", "EST": "östnordamerikansk normaltid", "HKST": "Hongkong, sommartid", "CHAST": "Chatham, normaltid", "CLT": "chilensk normaltid", "EAT": "östafrikansk tid", "WAT": "västafrikansk normaltid", "HEPMX": "mexikansk stillahavstid, sommartid", "AWDT": "västaustralisk sommartid", "HNPM": "S:t Pierre och Miquelon, normaltid", "ACDT": "centralaustralisk sommartid", "HNOG": "västgrönländsk normaltid", "VET": "venezuelansk tid", "HAT": "Newfoundland, sommartid", "NZST": "nyzeeländsk normaltid", "ChST": "Chamorrotid", "ACST": "centralaustralisk normaltid", "WAST": "västafrikansk sommartid", "HAST": "Honolulu, normaltid", "HNT": "Newfoundland, normaltid", "JST": "japansk normaltid", "COST": "colombiansk sommartid", "ACWST": "västcentralaustralisk normaltid", "BT": "bhutansk tid", "PST": "västnordamerikansk normaltid", "LHST": "Lord Howe, normaltid", "TMT": "turkmensk normaltid", "HNPMX": "mexikansk stillahavstid, normaltid", "AKDT": "Alaska, sommartid", "ADT": "nordamerikansk atlantsommartid", "AEST": "östaustralisk normaltid", "CLST": "chilensk sommartid", "JDT": "japansk sommartid", "MDT": "Macausommartid", "GYT": "Guyanatid", "HADT": "Honolulu, sommartid", "WESZ": "västeuropeisk sommartid", "ARST": "östargentinsk sommartid", "HEOG": "västgrönländsk sommartid", "WITA": "centralindonesisk tid", "LHDT": "Lord Howe, sommartid", "CST": "centralnordamerikansk normaltid", "SGT": "Singaporetid", "UYT": "uruguayansk normaltid", "UYST": "uruguayansk sommartid", "AST": "nordamerikansk atlantnormaltid", "PDT": "västnordamerikansk sommartid", "MST": "Macaunormaltid", "HEPM": "S:t Pierre och Miquelon, sommartid", "GFT": "Franska Guyanatid", "HNCU": "kubansk normaltid", "ACWDT": "västcentralaustralisk sommartid", "COT": "colombiansk normaltid", "CDT": "centralnordamerikansk sommartid", "AWST": "västaustralisk normaltid", "HKT": "Hongkong, normaltid", "NZDT": "nyzeeländsk sommartid", "BOT": "boliviansk tid", "HECU": "kubansk sommartid", "ART": "östargentinsk normaltid", "SAST": "sydafrikansk tid", "HEEG": "östgrönländsk sommartid", "CAT": "centralafrikansk tid", "MESZ": "centraleuropeisk sommartid"},
++ timezones: map[string]string{"HADT": "Honolulu, sommartid", "MEZ": "centraleuropeisk normaltid", "ACWDT": "västcentralaustralisk sommartid", "AEDT": "östaustralisk sommartid", "HNPMX": "mexikansk stillahavstid, normaltid", "HNT": "Newfoundland, normaltid", "ART": "östargentinsk normaltid", "ADT": "nordamerikansk atlantsommartid", "ACST": "centralaustralisk normaltid", "HEPM": "S:t Pierre och Miquelon, sommartid", "CHADT": "Chatham, sommartid", "WESZ": "västeuropeisk sommartid", "VET": "venezuelansk tid", "WAT": "västafrikansk normaltid", "NZDT": "nyzeeländsk sommartid", "HKST": "Hongkong, sommartid", "AKST": "Alaska, normaltid", "GMT": "Greenwichtid", "AEST": "östaustralisk normaltid", "SAST": "sydafrikansk tid", "AWST": "västaustralisk normaltid", "MESZ": "centraleuropeisk sommartid", "ACDT": "centralaustralisk sommartid", "UYT": "uruguayansk normaltid", "IST": "indisk tid", "BT": "bhutansk tid", "HNOG": "västgrönländsk normaltid", "CAT": "centralafrikansk tid", "HAST": "Honolulu, normaltid", "HNNOMX": "nordvästmexikansk normaltid", "ACWST": "västcentralaustralisk normaltid", "HECU": "kubansk sommartid", "HEPMX": "mexikansk stillahavstid, sommartid", "SGT": "Singaporetid", "AKDT": "Alaska, sommartid", "EST": "östnordamerikansk normaltid", "ECT": "ecuadoriansk tid", "CLST": "chilensk sommartid", "UYST": "uruguayansk sommartid", "∅∅∅": "peruansk sommartid", "GFT": "Franska Guyanatid", "TMST": "turkmensk sommartid", "HEEG": "östgrönländsk sommartid", "LHST": "Lord Howe, normaltid", "HNCU": "kubansk normaltid", "WAST": "västafrikansk sommartid", "OESZ": "östeuropeisk sommartid", "TMT": "turkmensk normaltid", "JST": "japansk normaltid", "MDT": "Macausommartid", "NZST": "nyzeeländsk normaltid", "JDT": "japansk sommartid", "OEZ": "östeuropeisk normaltid", "HAT": "Newfoundland, sommartid", "CDT": "centralnordamerikansk sommartid", "WEZ": "västeuropeisk normaltid", "WITA": "centralindonesisk tid", "SRT": "Surinamtid", "MST": "Macaunormaltid", "HNPM": "S:t Pierre och Miquelon, normaltid", "AWDT": "västaustralisk sommartid", "MYT": "malaysisk tid", "CHAST": "Chatham, normaltid", "WIB": "västindonesisk tid", "PST": "västnordamerikansk normaltid", "WART": "västargentinsk normaltid", "WARST": "västargentinsk sommartid", "HEOG": "västgrönländsk sommartid", "EDT": "östnordamerikansk sommartid", "CLT": "chilensk normaltid", "BOT": "boliviansk tid", "HENOMX": "nordvästmexikansk sommartid", "LHDT": "Lord Howe, sommartid", "COT": "colombiansk normaltid", "COST": "colombiansk sommartid", "HKT": "Hongkong, normaltid", "ChST": "Chamorrotid", "PDT": "västnordamerikansk sommartid", "AST": "nordamerikansk atlantnormaltid", "ARST": "östargentinsk sommartid", "HNEG": "östgrönländsk normaltid", "WIT": "östindonesisk tid", "CST": "centralnordamerikansk normaltid", "GYT": "Guyanatid", "EAT": "östafrikansk tid"},
+ }
+ }
+ 
+diff --git a/sv_AX/sv_AX.go b/sv_AX/sv_AX.go
+index 06bd717..63941de 100644
+--- a/sv_AX/sv_AX.go
++++ b/sv_AX/sv_AX.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type sv_AX struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sv_AX' locale
+ func New() locales.Translator {
+ return &sv_AX{
+- locale: "sv_AX",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: " ",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mars", "apr.", "maj", "juni", "juli", "aug.", "sep.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januari", "februari", "mars", "april", "maj", "juni", "juli", "augusti", "september", "oktober", "november", "december"},
+- daysAbbreviated: []string{"sön", "mån", "tis", "ons", "tors", "fre", "lör"},
+- daysNarrow: []string{"S", "M", "T", "O", "T", "F", "L"},
+- daysShort: []string{"sö", "må", "ti", "on", "to", "fr", "lö"},
+- daysWide: []string{"söndag", "måndag", "tisdag", "onsdag", "torsdag", "fredag", "lördag"},
+- periodsAbbreviated: []string{"fm", "em"},
+- periodsNarrow: []string{"fm", "em"},
+- periodsWide: []string{"fm", "em"},
+- erasAbbreviated: []string{"f.Kr.", "e.Kr."},
+- erasNarrow: []string{"f.Kr.", "e.Kr."},
+- erasWide: []string{"före Kristus", "efter Kristus"},
+- timezones: map[string]string{"AWDT": "västaustralisk sommartid", "MESZ": "centraleuropeisk sommartid", "GYT": "Guyanatid", "UYST": "uruguayansk sommartid", "BT": "bhutansk tid", "MDT": "Macausommartid", "PDT": "västnordamerikansk sommartid", "WEZ": "västeuropeisk normaltid", "COT": "colombiansk normaltid", "HNCU": "kubansk normaltid", "WIT": "östindonesisk tid", "HEOG": "västgrönländsk sommartid", "NZDT": "nyzeeländsk sommartid", "∅∅∅": "Amazonas, sommartid", "HNEG": "östgrönländsk normaltid", "WAST": "västafrikansk sommartid", "HNPMX": "mexikansk stillahavstid, normaltid", "PST": "västnordamerikansk normaltid", "HEEG": "östgrönländsk sommartid", "ACDT": "centralaustralisk sommartid", "HNNOMX": "nordvästmexikansk normaltid", "HENOMX": "nordvästmexikansk sommartid", "CDT": "centralnordamerikansk sommartid", "MYT": "malaysisk tid", "VET": "venezuelansk tid", "AWST": "västaustralisk normaltid", "NZST": "nyzeeländsk normaltid", "JST": "japansk normaltid", "OESZ": "östeuropeisk sommartid", "EDT": "östnordamerikansk sommartid", "HNPM": "S:t Pierre och Miquelon, normaltid", "TMST": "turkmensk sommartid", "EAT": "östafrikansk tid", "ACWST": "västcentralaustralisk normaltid", "AEST": "östaustralisk normaltid", "COST": "colombiansk sommartid", "GMT": "Greenwichtid", "ACWDT": "västcentralaustralisk sommartid", "WITA": "centralindonesisk tid", "CLT": "chilensk normaltid", "GFT": "Franska Guyanatid", "HEPM": "S:t Pierre och Miquelon, sommartid", "CHADT": "Chatham, sommartid", "SGT": "Singaporetid", "EST": "östnordamerikansk normaltid", "ADT": "nordamerikansk atlantsommartid", "WIB": "västindonesisk tid", "HNOG": "västgrönländsk normaltid", "TMT": "turkmensk normaltid", "MST": "Macaunormaltid", "AKST": "Alaska, normaltid", "CST": "centralnordamerikansk normaltid", "HEPMX": "mexikansk stillahavstid, sommartid", "HKT": "Hongkong, normaltid", "CHAST": "Chatham, normaltid", "ECT": "ecuadoriansk tid", "CAT": "centralafrikansk tid", "WART": "västargentinsk normaltid", "HECU": "kubansk sommartid", "HAT": "Newfoundland, sommartid", "ART": "östargentinsk normaltid", "HKST": "Hongkong, sommartid", "LHST": "Lord Howe, normaltid", "CLST": "chilensk sommartid", "BOT": "boliviansk tid", "OEZ": "östeuropeisk normaltid", "AEDT": "östaustralisk sommartid", "MEZ": "centraleuropeisk normaltid", "WAT": "västafrikansk normaltid", "AST": "nordamerikansk atlantnormaltid", "JDT": "japansk sommartid", "AKDT": "Alaska, sommartid", "UYT": "uruguayansk normaltid", "WESZ": "västeuropeisk sommartid", "HAST": "Honolulu, normaltid", "HADT": "Honolulu, sommartid", "ARST": "östargentinsk sommartid", "ACST": "centralaustralisk normaltid", "WARST": "västargentinsk sommartid", "SRT": "Surinamtid", "HNT": "Newfoundland, normaltid", "LHDT": "Lord Howe, sommartid", "SAST": "sydafrikansk tid", "IST": "indisk tid", "ChST": "Chamorrotid"},
++ locale: "sv_AX",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACWDT": "ACWDT", "AKST": "AKST", "HKT": "HKT", "WART": "WART", "WARST": "WARST", "COT": "COT", "COST": "COST", "NZST": "NZST", "ADT": "ADT", "VET": "VET", "LHDT": "LHDT", "BT": "BT", "AEST": "AEST", "AKDT": "AKDT", "CST": "CST", "CDT": "CDT", "AWDT": "AWDT", "PST": "PST", "SGT": "SGT", "CLT": "CLT", "SRT": "SRT", "ACST": "ACST", "JST": "JST", "ACWST": "ACWST", "HNCU": "HNCU", "HAT": "HAT", "HKST": "HKST", "TMST": "TMST", "HADT": "HADT", "HEPM": "HEPM", "IST": "IST", "TMT": "TMT", "WITA": "WITA", "BOT": "BOT", "HNT": "HNT", "MDT": "MDT", "NZDT": "NZDT", "CHADT": "CHADT", "HNPMX": "HNPMX", "HEOG": "HEOG", "EDT": "EDT", "WIB": "WIB", "MESZ": "MESZ", "HEEG": "HEEG", "GFT": "GFT", "ECT": "ECT", "EAT": "EAT", "MEZ": "MEZ", "HEPMX": "HEPMX", "SAST": "SAST", "ACDT": "ACDT", "JDT": "JDT", "∅∅∅": "∅∅∅", "HAST": "HAST", "AWST": "AWST", "UYST": "UYST", "OEZ": "OEZ", "OESZ": "OESZ", "AST": "AST", "ChST": "ChST", "ART": "ART", "WESZ": "WESZ", "WAT": "WAT", "WIT": "WIT", "EST": "EST", "MYT": "MYT", "PDT": "PDT", "WEZ": "WEZ", "MST": "MST", "LHST": "LHST", "GMT": "GMT", "ARST": "ARST", "WAST": "WAST", "GYT": "GYT", "CLST": "CLST", "HNNOMX": "HNNOMX", "CHAST": "CHAST", "UYT": "UYT", "AEDT": "AEDT", "HECU": "HECU", "HNOG": "HNOG", "CAT": "CAT", "HNEG": "HNEG", "HENOMX": "HENOMX", "HNPM": "HNPM"},
+ }
+ }
+ 
+@@ -136,7 +111,7 @@ func (sv *sv_AX) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sv *sv_AX) MonthsAbbreviated() []string {
+- return sv.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -146,7 +121,7 @@ func (sv *sv_AX) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sv *sv_AX) MonthsNarrow() []string {
+- return sv.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -156,7 +131,7 @@ func (sv *sv_AX) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sv *sv_AX) MonthsWide() []string {
+- return sv.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -202,81 +177,13 @@ func (sv *sv_AX) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sv_AX' and handles both Whole and Real numbers based on 'v'
+ func (sv *sv_AX) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sv.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sv.group) - 1; j >= 0; j-- {
+- b = append(b, sv.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(sv.minus) - 1; j >= 0; j-- {
+- b = append(b, sv.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sv_AX' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sv *sv_AX) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sv.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(sv.minus) - 1; j >= 0; j-- {
+- b = append(b, sv.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sv.percentSuffix...)
+-
+- b = append(b, sv.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sv_AX'
+@@ -284,60 +191,7 @@ func (sv *sv_AX) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sv.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sv.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sv.group) - 1; j >= 0; j-- {
+- b = append(b, sv.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(sv.minus) - 1; j >= 0; j-- {
+- b = append(b, sv.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sv.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sv.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sv_AX'
+@@ -346,67 +200,7 @@ func (sv *sv_AX) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sv.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sv.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sv.group) - 1; j >= 0; j-- {
+- b = append(b, sv.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(sv.minus) - 1; j >= 0; j-- {
+- b = append(b, sv.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sv.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sv.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sv.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sv_AX'
+@@ -414,28 +208,6 @@ func (sv *sv_AX) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -444,17 +216,6 @@ func (sv *sv_AX) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sv.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -463,17 +224,6 @@ func (sv *sv_AX) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sv.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -482,19 +232,6 @@ func (sv *sv_AX) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sv.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sv.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -503,19 +240,6 @@ func (sv *sv_AX) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -524,26 +248,6 @@ func (sv *sv_AX) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -552,30 +256,6 @@ func (sv *sv_AX) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -584,37 +264,5 @@ func (sv *sv_AX) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0x6b, 0x6c}...)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sv.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sv_FI/sv_FI.go b/sv_FI/sv_FI.go
+index 0bc272f..0f548bf 100644
+--- a/sv_FI/sv_FI.go
++++ b/sv_FI/sv_FI.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type sv_FI struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sv_FI' locale
+ func New() locales.Translator {
+ return &sv_FI{
+- locale: "sv_FI",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: " ",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mars", "apr.", "maj", "juni", "juli", "aug.", "sep.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januari", "februari", "mars", "april", "maj", "juni", "juli", "augusti", "september", "oktober", "november", "december"},
+- daysAbbreviated: []string{"sön", "mån", "tis", "ons", "tors", "fre", "lör"},
+- daysNarrow: []string{"S", "M", "T", "O", "T", "F", "L"},
+- daysShort: []string{"sö", "må", "ti", "on", "to", "fr", "lö"},
+- daysWide: []string{"söndag", "måndag", "tisdag", "onsdag", "torsdag", "fredag", "lördag"},
+- periodsAbbreviated: []string{"fm", "em"},
+- periodsNarrow: []string{"fm", "em"},
+- periodsWide: []string{"fm", "em"},
+- erasAbbreviated: []string{"f.Kr.", "e.Kr."},
+- erasNarrow: []string{"f.Kr.", "e.Kr."},
+- erasWide: []string{"före Kristus", "efter Kristus"},
+- timezones: map[string]string{"TMT": "turkmensk normaltid", "COST": "colombiansk sommartid", "HEPMX": "mexikansk stillahavstid, sommartid", "CLST": "chilensk sommartid", "GFT": "Franska Guyanatid", "ACDT": "centralaustralisk sommartid", "HNNOMX": "nordvästmexikansk normaltid", "HECU": "kubansk sommartid", "EDT": "östnordamerikansk sommartid", "AKDT": "Alaska, sommartid", "HAT": "Newfoundland, sommartid", "ChST": "Chamorrotid", "SGT": "Singaporetid", "PDT": "västnordamerikansk sommartid", "ARST": "östargentinsk sommartid", "AEDT": "östaustralisk sommartid", "HKT": "Hongkong, normaltid", "TMST": "turkmensk sommartid", "WARST": "västargentinsk sommartid", "AKST": "Alaska, normaltid", "SRT": "Surinamtid", "HNPM": "S:t Pierre och Miquelon, normaltid", "GMT": "Greenwichtid", "PST": "västnordamerikansk normaltid", "IST": "indisk tid", "ACWST": "västcentralaustralisk normaltid", "NZST": "nyzeeländsk normaltid", "∅∅∅": "Amazonas, sommartid", "WART": "västargentinsk normaltid", "HNCU": "kubansk normaltid", "MST": "Macaunormaltid", "AEST": "östaustralisk normaltid", "AWST": "västaustralisk normaltid", "LHST": "Lord Howe, normaltid", "CLT": "chilensk normaltid", "JST": "japansk normaltid", "ECT": "ecuadoriansk tid", "ADT": "nordamerikansk atlantsommartid", "HADT": "Honolulu, sommartid", "WESZ": "västeuropeisk sommartid", "NZDT": "nyzeeländsk sommartid", "CHAST": "Chatham, normaltid", "HNEG": "östgrönländsk normaltid", "ACST": "centralaustralisk normaltid", "MDT": "Macausommartid", "MYT": "malaysisk tid", "EAT": "östafrikansk tid", "WAT": "västafrikansk normaltid", "HKST": "Hongkong, sommartid", "HNOG": "västgrönländsk normaltid", "HEPM": "S:t Pierre och Miquelon, sommartid", "LHDT": "Lord Howe, sommartid", "HNPMX": "mexikansk stillahavstid, normaltid", "UYT": "uruguayansk normaltid", "GYT": "Guyanatid", "HNT": "Newfoundland, normaltid", "JDT": "japansk sommartid", "OESZ": "östeuropeisk sommartid", "CDT": "centralnordamerikansk sommartid", "WIT": "östindonesisk tid", "BT": "bhutansk tid", "ACWDT": "västcentralaustralisk sommartid", "CHADT": "Chatham, sommartid", "HEEG": "östgrönländsk sommartid", "EST": "östnordamerikansk normaltid", "HAST": "Honolulu, normaltid", "VET": "venezuelansk tid", "SAST": "sydafrikansk tid", "WITA": "centralindonesisk tid", "COT": "colombiansk normaltid", "WIB": "västindonesisk tid", "WEZ": "västeuropeisk normaltid", "HEOG": "västgrönländsk sommartid", "AST": "nordamerikansk atlantnormaltid", "ART": "östargentinsk normaltid", "OEZ": "östeuropeisk normaltid", "HENOMX": "nordvästmexikansk sommartid", "UYST": "uruguayansk sommartid", "CST": "centralnordamerikansk normaltid", "MEZ": "centraleuropeisk normaltid", "MESZ": "centraleuropeisk sommartid", "BOT": "boliviansk tid", "CAT": "centralafrikansk tid", "WAST": "västafrikansk sommartid", "AWDT": "västaustralisk sommartid"},
++ locale: "sv_FI",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AEDT": "AEDT", "VET": "VET", "OESZ": "OESZ", "GFT": "GFT", "ECT": "ECT", "AWST": "AWST", "HADT": "HADT", "HNEG": "HNEG", "UYST": "UYST", "BT": "BT", "WIT": "WIT", "HKST": "HKST", "ARST": "ARST", "WARST": "WARST", "LHST": "LHST", "HNCU": "HNCU", "ADT": "ADT", "SRT": "SRT", "ACDT": "ACDT", "HEPMX": "HEPMX", "COT": "COT", "CST": "CST", "CLST": "CLST", "WIB": "WIB", "AWDT": "AWDT", "UYT": "UYT", "COST": "COST", "CAT": "CAT", "MESZ": "MESZ", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "CHADT": "CHADT", "SGT": "SGT", "OEZ": "OEZ", "EDT": "EDT", "NZST": "NZST", "ART": "ART", "PST": "PST", "HECU": "HECU", "WART": "WART", "AST": "AST", "ChST": "ChST", "ACWST": "ACWST", "ACWDT": "ACWDT", "WAT": "WAT", "WAST": "WAST", "AKDT": "AKDT", "∅∅∅": "∅∅∅", "JDT": "JDT", "WITA": "WITA", "HNPM": "HNPM", "HEPM": "HEPM", "HNPMX": "HNPMX", "GYT": "GYT", "HEOG": "HEOG", "WEZ": "WEZ", "WESZ": "WESZ", "LHDT": "LHDT", "JST": "JST", "AEST": "AEST", "AKST": "AKST", "HKT": "HKT", "TMT": "TMT", "ACST": "ACST", "TMST": "TMST", "MST": "MST", "SAST": "SAST", "PDT": "PDT", "BOT": "BOT", "HAST": "HAST", "MEZ": "MEZ", "CHAST": "CHAST", "HNOG": "HNOG", "EST": "EST", "GMT": "GMT", "EAT": "EAT", "IST": "IST", "HNT": "HNT", "MDT": "MDT", "NZDT": "NZDT", "HENOMX": "HENOMX", "MYT": "MYT", "HAT": "HAT", "CLT": "CLT", "CDT": "CDT"},
+ }
+ }
+ 
+@@ -114,8 +89,8 @@ func (sv *sv_FI) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ func (sv *sv_FI) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+- nMod10 := math.Mod(n, 10)
+ nMod100 := math.Mod(n, 100)
++ nMod10 := math.Mod(n, 10)
+ 
+ if (nMod10 == 1 || nMod10 == 2) && (nMod100 != 11 && nMod100 != 12) {
+ return locales.PluralRuleOne
+@@ -136,7 +111,7 @@ func (sv *sv_FI) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sv *sv_FI) MonthsAbbreviated() []string {
+- return sv.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -146,7 +121,7 @@ func (sv *sv_FI) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sv *sv_FI) MonthsNarrow() []string {
+- return sv.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -156,7 +131,7 @@ func (sv *sv_FI) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sv *sv_FI) MonthsWide() []string {
+- return sv.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -202,81 +177,13 @@ func (sv *sv_FI) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sv_FI' and handles both Whole and Real numbers based on 'v'
+ func (sv *sv_FI) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sv.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sv.group) - 1; j >= 0; j-- {
+- b = append(b, sv.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(sv.minus) - 1; j >= 0; j-- {
+- b = append(b, sv.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sv_FI' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sv *sv_FI) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sv.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(sv.minus) - 1; j >= 0; j-- {
+- b = append(b, sv.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sv.percentSuffix...)
+-
+- b = append(b, sv.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sv_FI'
+@@ -284,60 +191,7 @@ func (sv *sv_FI) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sv.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sv.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sv.group) - 1; j >= 0; j-- {
+- b = append(b, sv.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(sv.minus) - 1; j >= 0; j-- {
+- b = append(b, sv.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sv.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sv.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sv_FI'
+@@ -346,67 +200,7 @@ func (sv *sv_FI) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sv.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sv.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sv.group) - 1; j >= 0; j-- {
+- b = append(b, sv.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(sv.minus) - 1; j >= 0; j-- {
+- b = append(b, sv.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sv.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sv.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sv.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sv_FI'
+@@ -443,17 +237,6 @@ func (sv *sv_FI) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sv.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,17 +245,6 @@ func (sv *sv_FI) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sv.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -481,19 +253,6 @@ func (sv *sv_FI) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sv.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sv.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -502,19 +261,6 @@ func (sv *sv_FI) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -523,26 +269,6 @@ func (sv *sv_FI) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -551,30 +277,6 @@ func (sv *sv_FI) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -583,37 +285,5 @@ func (sv *sv_FI) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0x6b, 0x6c}...)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sv.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sv_SE/sv_SE.go b/sv_SE/sv_SE.go
+index 4a957bf..4dc1efa 100644
+--- a/sv_SE/sv_SE.go
++++ b/sv_SE/sv_SE.go
+@@ -10,70 +10,45 @@ import (
+ )
+ 
+ type sv_SE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sv_SE' locale
+ func New() locales.Translator {
+ return &sv_SE{
+- locale: "sv_SE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: " ",
+- minus: "−",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "jan.", "feb.", "mars", "apr.", "maj", "juni", "juli", "aug.", "sep.", "okt.", "nov.", "dec."},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "januari", "februari", "mars", "april", "maj", "juni", "juli", "augusti", "september", "oktober", "november", "december"},
+- daysAbbreviated: []string{"sön", "mån", "tis", "ons", "tors", "fre", "lör"},
+- daysNarrow: []string{"S", "M", "T", "O", "T", "F", "L"},
+- daysShort: []string{"sö", "må", "ti", "on", "to", "fr", "lö"},
+- daysWide: []string{"söndag", "måndag", "tisdag", "onsdag", "torsdag", "fredag", "lördag"},
+- periodsAbbreviated: []string{"fm", "em"},
+- periodsNarrow: []string{"fm", "em"},
+- periodsWide: []string{"fm", "em"},
+- erasAbbreviated: []string{"f.Kr.", "e.Kr."},
+- erasNarrow: []string{"f.Kr.", "e.Kr."},
+- erasWide: []string{"före Kristus", "efter Kristus"},
+- timezones: map[string]string{"ACDT": "centralaustralisk sommartid", "HAT": "Newfoundland, sommartid", "PST": "västnordamerikansk normaltid", "SAST": "sydafrikansk tid", "CLT": "chilensk normaltid", "ACWST": "västcentralaustralisk normaltid", "ART": "östargentinsk normaltid", "ARST": "östargentinsk sommartid", "HKST": "Hongkong, sommartid", "AEDT": "östaustralisk sommartid", "BOT": "boliviansk tid", "WAT": "västafrikansk normaltid", "BT": "bhutansk tid", "WESZ": "västeuropeisk sommartid", "EST": "östnordamerikansk normaltid", "HKT": "Hongkong, normaltid", "LHDT": "Lord Howe, sommartid", "GFT": "Franska Guyanatid", "SGT": "Singaporetid", "GMT": "Greenwichtid", "MST": "Macaunormaltid", "HAST": "Honolulu, normaltid", "HNOG": "västgrönländsk normaltid", "WAST": "västafrikansk sommartid", "HNCU": "kubansk normaltid", "AWST": "västaustralisk normaltid", "EDT": "östnordamerikansk sommartid", "MYT": "malaysisk tid", "EAT": "östafrikansk tid", "HNNOMX": "nordvästmexikansk normaltid", "MDT": "Macausommartid", "WIB": "västindonesisk tid", "LHST": "Lord Howe, normaltid", "∅∅∅": "Amazonas, sommartid", "HEEG": "östgrönländsk sommartid", "OESZ": "östeuropeisk sommartid", "AKST": "Alaska, normaltid", "CLST": "chilensk sommartid", "ChST": "Chamorrotid", "ECT": "ecuadoriansk tid", "UYT": "uruguayansk normaltid", "AWDT": "västaustralisk sommartid", "CHAST": "Chatham, normaltid", "IST": "indisk tid", "ACST": "centralaustralisk normaltid", "WIT": "östindonesisk tid", "WEZ": "västeuropeisk normaltid", "ACWDT": "västcentralaustralisk sommartid", "HNPM": "S:t Pierre och Miquelon, normaltid", "COST": "colombiansk sommartid", "HECU": "kubansk sommartid", "CST": "centralnordamerikansk normaltid", "NZDT": "nyzeeländsk sommartid", "MESZ": "centraleuropeisk sommartid", "JDT": "japansk sommartid", "OEZ": "östeuropeisk normaltid", "AST": "nordamerikansk atlantnormaltid", "ADT": "nordamerikansk atlantsommartid", "WITA": "centralindonesisk tid", "NZST": "nyzeeländsk normaltid", "CAT": "centralafrikansk tid", "WARST": "västargentinsk sommartid", "UYST": "uruguayansk sommartid", "HNT": "Newfoundland, normaltid", "JST": "japansk normaltid", "HNEG": "östgrönländsk normaltid", "HADT": "Honolulu, sommartid", "AEST": "östaustralisk normaltid", "HEPM": "S:t Pierre och Miquelon, sommartid", "TMT": "turkmensk normaltid", "VET": "venezuelansk tid", "HNPMX": "mexikansk stillahavstid, normaltid", "AKDT": "Alaska, sommartid", "GYT": "Guyanatid", "PDT": "västnordamerikansk sommartid", "CHADT": "Chatham, sommartid", "MEZ": "centraleuropeisk normaltid", "TMST": "turkmensk sommartid", "COT": "colombiansk normaltid", "HEPMX": "mexikansk stillahavstid, sommartid", "CDT": "centralnordamerikansk sommartid", "SRT": "Surinamtid", "HEOG": "västgrönländsk sommartid", "HENOMX": "nordvästmexikansk sommartid", "WART": "västargentinsk normaltid"},
++ locale: "sv_SE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WITA": "WITA", "NZST": "NZST", "WART": "WART", "ACWST": "ACWST", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "LHDT": "LHDT", "PST": "PST", "HNT": "HNT", "GYT": "GYT", "COT": "COT", "WARST": "WARST", "CDT": "CDT", "MDT": "MDT", "ECT": "ECT", "SRT": "SRT", "HAST": "HAST", "AEST": "AEST", "WEZ": "WEZ", "EDT": "EDT", "CLST": "CLST", "AWDT": "AWDT", "MYT": "MYT", "JST": "JST", "AKST": "AKST", "HKST": "HKST", "CST": "CST", "NZDT": "NZDT", "HEPM": "HEPM", "IST": "IST", "OEZ": "OEZ", "SAST": "SAST", "MESZ": "MESZ", "SGT": "SGT", "GFT": "GFT", "TMST": "TMST", "MEZ": "MEZ", "JDT": "JDT", "PDT": "PDT", "ACWDT": "ACWDT", "ART": "ART", "HNEG": "HNEG", "HNPM": "HNPM", "AEDT": "AEDT", "HKT": "HKT", "TMT": "TMT", "BOT": "BOT", "HADT": "HADT", "WIT": "WIT", "EST": "EST", "CAT": "CAT", "CLT": "CLT", "∅∅∅": "∅∅∅", "ACDT": "ACDT", "AST": "AST", "UYT": "UYT", "HECU": "HECU", "HNPMX": "HNPMX", "WAT": "WAT", "AKDT": "AKDT", "LHST": "LHST", "WESZ": "WESZ", "VET": "VET", "WAST": "WAST", "HNOG": "HNOG", "WIB": "WIB", "ARST": "ARST", "ACST": "ACST", "CHAST": "CHAST", "CHADT": "CHADT", "HNCU": "HNCU", "HEOG": "HEOG", "BT": "BT", "MST": "MST", "ADT": "ADT", "GMT": "GMT", "ChST": "ChST", "EAT": "EAT", "HEEG": "HEEG", "AWST": "AWST", "COST": "COST", "UYST": "UYST", "HEPMX": "HEPMX", "HAT": "HAT"},
+ }
+ }
+ 
+@@ -136,7 +111,7 @@ func (sv *sv_SE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sv *sv_SE) MonthsAbbreviated() []string {
+- return sv.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -146,7 +121,7 @@ func (sv *sv_SE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sv *sv_SE) MonthsNarrow() []string {
+- return sv.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -156,7 +131,7 @@ func (sv *sv_SE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sv *sv_SE) MonthsWide() []string {
+- return sv.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -202,81 +177,13 @@ func (sv *sv_SE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sv_SE' and handles both Whole and Real numbers based on 'v'
+ func (sv *sv_SE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sv.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sv.group) - 1; j >= 0; j-- {
+- b = append(b, sv.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(sv.minus) - 1; j >= 0; j-- {
+- b = append(b, sv.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sv_SE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sv *sv_SE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 7
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sv.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(sv.minus) - 1; j >= 0; j-- {
+- b = append(b, sv.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sv.percentSuffix...)
+-
+- b = append(b, sv.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sv_SE'
+@@ -284,60 +191,7 @@ func (sv *sv_SE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sv.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sv.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sv.group) - 1; j >= 0; j-- {
+- b = append(b, sv.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(sv.minus) - 1; j >= 0; j-- {
+- b = append(b, sv.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sv.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, sv.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sv_SE'
+@@ -346,67 +200,7 @@ func (sv *sv_SE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sv.currencies[currency]
+- l := len(s) + len(symbol) + 6 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sv.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(sv.group) - 1; j >= 0; j-- {
+- b = append(b, sv.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(sv.minus) - 1; j >= 0; j-- {
+- b = append(b, sv.minus[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sv.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sv.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, sv.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sv_SE'
+@@ -414,28 +208,6 @@ func (sv *sv_SE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -444,17 +216,6 @@ func (sv *sv_SE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sv.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -463,17 +224,6 @@ func (sv *sv_SE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sv.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -482,19 +232,6 @@ func (sv *sv_SE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sv.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sv.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -503,19 +240,6 @@ func (sv *sv_SE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -524,26 +248,6 @@ func (sv *sv_SE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -552,30 +256,6 @@ func (sv *sv_SE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -584,37 +264,5 @@ func (sv *sv_SE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, []byte{0x6b, 0x6c}...)
+- b = append(b, []byte{0x2e, 0x20}...)
+-
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sv.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sv.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sw/sw.go b/sw/sw.go
+index d487ee3..9b1c10f 100644
+--- a/sw/sw.go
++++ b/sw/sw.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"KK", "BK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kabla ya Kristo", "Baada ya Kristo"},
+- timezones: map[string]string{"HECU": "Saa za Mchana za Cuba", "MDT": "MDT", "MEZ": "Saa Wastani za Ulaya ya kati", "LHDT": "Saa za Mchana za Lord Howe", "OEZ": "Saa Wastani za Mashariki mwa Ulaya", "HKT": "Saa Wastani za Hong Kong", "AEDT": "Saa za Mchana za Mashariki mwa Australia", "HEPMX": "Saa za mchana za pasifiki za Mexico", "AKST": "Saa za Wastani za Alaska", "GYT": "Saa za Guyana", "MYT": "Saa za Malaysia", "PST": "Saa za Wastani za Pasifiki", "HNOG": "Saa za Wastani za Greenland Magharibi", "HEPM": "Saa za Mchana za Saint-Pierre na Miquelon", "∅∅∅": "Saa za Majira ya joto za Peru", "NZDT": "Saa za Mchana za New Zealand", "CLT": "Saa za Wastani za Chile", "TMST": "Saa za Majira ya joto za Turkmenistan", "ACST": "Saa Wastani za Australia ya Kati", "MESZ": "Saa za Majira ya joto za Ulaya ya Kati", "HENOMX": "Saa za mchana za Mexico Kaskazini Magharibi", "MST": "MST", "VET": "Saa za Venezuela", "ACWDT": "Saa za Mchana za Magharibi ya Kati ya Australia", "HNT": "Saa za Wastani za Newfoundland", "AWDT": "Saa za Mchana za Australia Magharibi", "HNEG": "Saa za Wastani za Greenland Mashariki", "WARST": "Saa za Majira ya joto za Magharibi mwa Argentina", "EDT": "Saa za Mchana za Mashariki", "NZST": "Saa Wastani za New Zealand", "WAST": "Saa za Majira ya joto za Afrika Magharibi", "COST": "Saa za Majira ya joto za Colombia", "GMT": "Saa za Greenwich", "HADT": "Saa za Mchana za Hawaii-Aleutian", "WITA": "Saa za Indonesia ya Kati", "CHAST": "Saa Wastani za Chatham", "JST": "Saa Wastani za Japan", "COT": "Saa za Wastani za Colombia", "UYT": "Saa za Wastani za Uruguay", "SRT": "Saa za Suriname", "SAST": "Saa Wastani za Afrika Kusini", "JDT": "Saa za Mchana za Japan", "ADT": "Saa za Mchana za Atlantiki", "ART": "Saa za Wastani za Argentina", "AEST": "Saa Wastani za Mashariki mwa Australia", "CHADT": "Saa za Mchana za Chatham", "CLST": "Saa za Majira ya joto za Chile", "UYST": "Saa za Majira ya joto za Uruguay", "WEZ": "Saa Wastani za Magharibi mwa Ulaya", "ARST": "Saa za Majira ya joto za Argentina", "HNPM": "Saa za Wastani ya Saint-Pierre na Miquelon", "HNPMX": "Saa za wastani za pasifiki za Mexico", "ACWST": "Saa Wastani za Magharibi ya Kati ya Australia", "ChST": "Saa Wastani za Chamorro", "ECT": "Saa za Ecuador", "WESZ": "Saa za Majira ya joto za Magharibi mwa Ulaya", "HEOG": "Saa za Majira ya joto za Greenland Magharibi", "OESZ": "Saa za Majira ya joto za Mashariki mwa Ulaya", "WAT": "Saa za Wastani za Afrika Magharibi", "SGT": "Saa Wastani za Singapore", "EST": "Saa za Wastani za Mashariki", "WIB": "Saa za Magharibi mwa Indonesia", "HAT": "Saa za Mchana za Newfoundland", "ACDT": "Saa za Mchana za Australia ya Kati", "CAT": "Saa za Afrika ya Kati", "AKDT": "Saa za Mchana za Alaska", "WART": "Saa Wastani za Magharibi mwa Argentina", "HNCU": "Saa za Wastani ya Cuba", "PDT": "Saa za Mchana za Pasifiki", "AWST": "Saa Wastani za Australia Magharibi", "LHST": "Saa Wastani za Lord Howe", "EAT": "Saa za Afrika Mashariki", "CST": "Saa za Wastani za Kati", "HAST": "Saa za Wastani za Hawaii-Aleutian", "WIT": "Saa za Mashariki mwa Indonesia", "BT": "Saa za Bhutan", "HKST": "Saa za Majira ya joto za Hong Kong", "IST": "Saa Wastani za India", "BOT": "Saa za Bolivia", "HNNOMX": "Saa Wastani za Mexico Kaskazini Magharibi", "HEEG": "Saa za Majira ya joto za Greenland Mashariki", "AST": "Saa za Wastani za Atlantiki", "GFT": "Saa za Guiana ya Ufaransa", "TMT": "Saa za Wastani za Turkmenistan", "CDT": "Saa za Mchana za Kati"},
++ timezones: map[string]string{"AST": "Saa za Wastani za Atlantiki", "MDT": "Saa za Mchana za Mountain", "UYST": "Saa za Majira ya joto za Uruguay", "CLT": "Saa za Wastani za Chile", "ECT": "Saa za Ecuador", "HAST": "Saa za Wastani za Hawaii-Aleutian", "AEST": "Saa Wastani za Mashariki mwa Australia", "HKST": "Saa za Majira ya joto za Hong Kong", "GFT": "Saa za Guiana ya Ufaransa", "SAST": "Saa Wastani za Afrika Kusini", "CDT": "Saa za Mchana za Kati", "ACWDT": "Saa za Mchana za Magharibi ya Kati ya Australia", "WESZ": "Saa za Majira ya joto za Magharibi mwa Ulaya", "SGT": "Saa Wastani za Singapore", "HEPM": "Saa za Mchana za Saint-Pierre na Miquelon", "WARST": "Saa za Majira ya joto za Magharibi mwa Argentina", "BOT": "Saa za Bolivia", "HADT": "Saa za Mchana za Hawaii-Aleutian", "AWDT": "Saa za Mchana za Australia Magharibi", "HNCU": "Saa za Wastani ya Cuba", "WIB": "Saa za Magharibi mwa Indonesia", "IST": "Saa Wastani za India", "GYT": "Saa za Guyana", "HEOG": "Saa za Majira ya joto za Greenland Magharibi", "TMST": "Saa za Majira ya joto za Turkmenistan", "ART": "Saa za Wastani za Argentina", "MEZ": "Saa Wastani za Ulaya ya kati", "ACDT": "Saa za Mchana za Australia ya Kati", "UYT": "Saa za Wastani za Uruguay", "OESZ": "Saa za Majira ya joto za Mashariki mwa Ulaya", "COST": "Saa za Majira ya joto za Colombia", "EDT": "Saa za Mchana za Mashariki", "CST": "Saa za Wastani za Kati", "GMT": "Saa za Greenwich", "ACWST": "Saa Wastani za Magharibi ya Kati ya Australia", "VET": "Saa za Venezuela", "WAT": "Saa za Wastani za Afrika Magharibi", "WART": "Saa Wastani za Magharibi mwa Argentina", "NZDT": "Saa za Mchana za New Zealand", "ADT": "Saa za Mchana za Atlantiki", "HENOMX": "Saa za mchana za Mexico Kaskazini Magharibi", "JDT": "Saa za Mchana za Japan", "CHAST": "Saa Wastani za Chatham", "JST": "Saa Wastani za Japan", "PDT": "Saa za Mchana za Pasifiki", "HNPMX": "Saa za wastani za pasifiki za Mexico", "AKDT": "Saa za Mchana za Alaska", "OEZ": "Saa Wastani za Mashariki mwa Ulaya", "MST": "Saa za Wastani za Mountain", "MESZ": "Saa za Majira ya joto za Ulaya ya Kati", "MYT": "Saa za Malaysia", "HNT": "Saa za Wastani za Newfoundland", "HNOG": "Saa za Wastani za Greenland Magharibi", "TMT": "Saa za Wastani za Turkmenistan", "AKST": "Saa za Wastani za Alaska", "EST": "Saa za Wastani za Mashariki", "NZST": "Saa Wastani za New Zealand", "COT": "Saa za Wastani za Colombia", "WITA": "Saa za Indonesia ya Kati", "CAT": "Saa za Afrika ya Kati", "ChST": "Saa Wastani za Chamorro", "WEZ": "Saa Wastani za Magharibi mwa Ulaya", "HECU": "Saa za Mchana za Cuba", "WIT": "Saa za Mashariki mwa Indonesia", "SRT": "Saa za Suriname", "BT": "Saa za Bhutan", "HEEG": "Saa za Majira ya joto za Greenland Mashariki", "HNNOMX": "Saa Wastani za Mexico Kaskazini Magharibi", "LHST": "Saa Wastani za Lord Howe", "HAT": "Saa za Mchana za Newfoundland", "ARST": "Saa za Majira ya joto za Argentina", "EAT": "Saa za Afrika Mashariki", "ACST": "Saa Wastani za Australia ya Kati", "HNEG": "Saa za Wastani za Greenland Mashariki", "WAST": "Saa za Majira ya joto za Afrika Magharibi", "CLST": "Saa za Majira ya joto za Chile", "LHDT": "Saa za Mchana za Lord Howe", "CHADT": "Saa za Mchana za Chatham", "∅∅∅": "∅∅∅", "AEDT": "Saa za Mchana za Mashariki mwa Australia", "HEPMX": "Saa za mchana za pasifiki za Mexico", "HKT": "Saa Wastani za Hong Kong", "AWST": "Saa Wastani za Australia Magharibi", "HNPM": "Saa za Wastani ya Saint-Pierre na Miquelon", "PST": "Saa za Wastani za Pasifiki"},
+ }
+ }
+ 
+diff --git a/sw_CD/sw_CD.go b/sw_CD/sw_CD.go
+index b1383b4..5e221d8 100644
+--- a/sw_CD/sw_CD.go
++++ b/sw_CD/sw_CD.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type sw_CD struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sw_CD' locale
+ func New() locales.Translator {
+ return &sw_CD{
+- locale: "sw_CD",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "FC", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"},
+- daysAbbreviated: []string{"Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"},
+- daysWide: []string{"Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"am", "pm"},
+- periodsWide: []string{"Asubuhi", "Mchana"},
+- erasAbbreviated: []string{"KK", "BK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kabla ya Kristo", "Baada ya Kristo"},
+- timezones: map[string]string{"HKST": "Saa za Majira ya joto za Hong Kong", "ChST": "Saa Wastani za Chamorro", "ACST": "Saa Wastani za Australia ya Kati", "EAT": "Saa za Afrika Mashariki", "HNCU": "Saa za Wastani ya Cuba", "EST": "Saa za Wastani za Mashariki", "UYT": "Saa za Wastani za Uruguay", "SAST": "Saa Wastani za Afrika Kusini", "IST": "Saa Wastani za India", "OESZ": "Saa za Majira ya joto za Mashariki mwa Ulaya", "HNNOMX": "Saa Wastani za Mexico Kaskazini Magharibi", "HEPMX": "Saa za mchana za pasifiki za Mexico", "HAT": "Saa za Mchana za Newfoundland", "LHDT": "Saa za Mchana za Lord Howe", "GFT": "Saa za Guiana ya Ufaransa", "ECT": "Saa za Ecuador", "GMT": "Saa za Greenwich", "SGT": "Saa Wastani za Singapore", "MDT": "MDT", "HNEG": "Saa za Wastani za Greenland Mashariki", "MST": "MST", "CST": "Saa za Wastani za Kati", "ACWST": "Saa Wastani za Magharibi ya Kati ya Australia", "TMST": "Saa za Majira ya joto za Turkmenistan", "AKST": "Saa za Wastani za Alaska", "WIB": "Saa za Magharibi mwa Indonesia", "HAST": "Saa za Wastani za Hawaii-Aleutian", "ACWDT": "Saa za Mchana za Magharibi ya Kati ya Australia", "MEZ": "Saa Wastani za Ulaya ya kati", "OEZ": "Saa Wastani za Mashariki mwa Ulaya", "PST": "Saa za Wastani za Pasifiki", "HEPM": "Saa za Mchana za Saint-Pierre na Miquelon", "ACDT": "Saa za Mchana za Australia ya Kati", "WARST": "Saa za Majira ya joto za Magharibi mwa Argentina", "HNPMX": "Saa za wastani za pasifiki za Mexico", "CLT": "Saa za Wastani za Chile", "HKT": "Saa Wastani za Hong Kong", "AWST": "Saa Wastani za Australia Magharibi", "AWDT": "Saa za Mchana za Australia Magharibi", "CAT": "Saa za Afrika ya Kati", "HENOMX": "Saa za mchana za Mexico Kaskazini Magharibi", "CDT": "Saa za Mchana za Kati", "ADT": "Saa za Mchana za Atlantiki", "ART": "Saa za Wastani za Argentina", "HNPM": "Saa za Wastani ya Saint-Pierre na Miquelon", "PDT": "Saa za Mchana za Pasifiki", "MESZ": "Saa za Majira ya joto za Ulaya ya Kati", "LHST": "Saa Wastani za Lord Howe", "AST": "Saa za Wastani za Atlantiki", "UYST": "Saa za Majira ya joto za Uruguay", "VET": "Saa za Venezuela", "BT": "Saa za Bhutan", "HNT": "Saa za Wastani za Newfoundland", "HECU": "Saa za Mchana za Cuba", "JDT": "Saa za Mchana za Japan", "TMT": "Saa za Wastani za Turkmenistan", "BOT": "Saa za Bolivia", "AKDT": "Saa za Mchana za Alaska", "HADT": "Saa za Mchana za Hawaii-Aleutian", "CLST": "Saa za Majira ya joto za Chile", "HEEG": "Saa za Majira ya joto za Greenland Mashariki", "WAT": "Saa za Wastani za Afrika Magharibi", "COT": "Saa za Wastani za Colombia", "ARST": "Saa za Majira ya joto za Argentina", "WESZ": "Saa za Majira ya joto za Magharibi mwa Ulaya", "CHAST": "Saa Wastani za Chatham", "WART": "Saa Wastani za Magharibi mwa Argentina", "EDT": "Saa za Mchana za Mashariki", "GYT": "Saa za Guyana", "AEST": "Saa Wastani za Mashariki mwa Australia", "NZDT": "Saa za Mchana za New Zealand", "SRT": "Saa za Suriname", "HNOG": "Saa za Wastani za Greenland Magharibi", "WITA": "Saa za Indonesia ya Kati", "NZST": "Saa Wastani za New Zealand", "CHADT": "Saa za Mchana za Chatham", "WAST": "Saa za Majira ya joto za Afrika Magharibi", "∅∅∅": "Saa za Majira ya joto za Peru", "HEOG": "Saa za Majira ya joto za Greenland Magharibi", "AEDT": "Saa za Mchana za Mashariki mwa Australia", "COST": "Saa za Majira ya joto za Colombia", "MYT": "Saa za Malaysia", "WIT": "Saa za Mashariki mwa Indonesia", "WEZ": "Saa Wastani za Magharibi mwa Ulaya", "JST": "Saa Wastani za Japan"},
++ locale: "sw_CD",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ decimal: ",",
++ group: ".",
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "FC", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"OESZ": "OESZ", "WARST": "WARST", "HKT": "HKT", "UYST": "UYST", "HNPM": "HNPM", "HEPM": "HEPM", "JDT": "JDT", "SGT": "SGT", "WIT": "WIT", "HAT": "HAT", "EDT": "EDT", "CST": "CST", "ACDT": "ACDT", "CHAST": "CHAST", "UYT": "UYT", "HEPMX": "HEPMX", "AKST": "AKST", "CLT": "CLT", "MDT": "MDT", "ART": "ART", "WESZ": "WESZ", "∅∅∅": "∅∅∅", "MST": "MST", "ACST": "ACST", "HEEG": "HEEG", "JST": "JST", "AEDT": "AEDT", "WAST": "WAST", "GFT": "GFT", "WART": "WART", "TMT": "TMT", "HECU": "HECU", "NZST": "NZST", "ChST": "ChST", "SRT": "SRT", "BT": "BT", "HAST": "HAST", "GYT": "GYT", "EST": "EST", "HADT": "HADT", "HNT": "HNT", "COST": "COST", "WITA": "WITA", "ACWST": "ACWST", "ACWDT": "ACWDT", "CHADT": "CHADT", "SAST": "SAST", "WIB": "WIB", "AST": "AST", "LHDT": "LHDT", "MYT": "MYT", "AWST": "AWST", "HNOG": "HNOG", "TMST": "TMST", "CAT": "CAT", "MEZ": "MEZ", "HENOMX": "HENOMX", "AWDT": "AWDT", "VET": "VET", "CLST": "CLST", "ARST": "ARST", "ADT": "ADT", "EAT": "EAT", "PST": "PST", "WEZ": "WEZ", "AKDT": "AKDT", "WAT": "WAT", "ECT": "ECT", "CDT": "CDT", "AEST": "AEST", "IST": "IST", "HNCU": "HNCU", "HEOG": "HEOG", "NZDT": "NZDT", "BOT": "BOT", "HNNOMX": "HNNOMX", "OEZ": "OEZ", "LHST": "LHST", "PDT": "PDT", "HNPMX": "HNPMX", "MESZ": "MESZ", "COT": "COT", "HKST": "HKST", "GMT": "GMT", "HNEG": "HNEG"},
+ }
+ }
+ 
+@@ -136,7 +115,7 @@ func (sw *sw_CD) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sw *sw_CD) MonthsAbbreviated() []string {
+- return sw.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -146,7 +125,7 @@ func (sw *sw_CD) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sw *sw_CD) MonthsNarrow() []string {
+- return sw.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -156,7 +135,7 @@ func (sw *sw_CD) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sw *sw_CD) MonthsWide() []string {
+- return sw.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -202,73 +181,13 @@ func (sw *sw_CD) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sw_CD' and handles both Whole and Real numbers based on 'v'
+ func (sw *sw_CD) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sw_CD' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sw *sw_CD) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sw.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sw.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sw_CD'
+@@ -276,56 +195,7 @@ func (sw *sw_CD) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sw.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, sw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sw_CD'
+@@ -334,68 +204,7 @@ func (sw *sw_CD) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sw.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, sw.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sw.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sw_CD'
+@@ -403,27 +212,6 @@ func (sw *sw_CD) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -432,17 +220,6 @@ func (sw *sw_CD) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sw.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -451,17 +228,6 @@ func (sw *sw_CD) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -470,19 +236,6 @@ func (sw *sw_CD) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sw.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,19 +244,6 @@ func (sw *sw_CD) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -512,26 +252,6 @@ func (sw *sw_CD) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -540,30 +260,6 @@ func (sw *sw_CD) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -572,34 +268,5 @@ func (sw *sw_CD) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sw.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sw_KE/sw_KE.go b/sw_KE/sw_KE.go
+index 3cbebd4..d75e025 100644
+--- a/sw_KE/sw_KE.go
++++ b/sw_KE/sw_KE.go
+@@ -10,68 +10,47 @@ import (
+ )
+ 
+ type sw_KE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sw_KE' locale
+ func New() locales.Translator {
+ return &sw_KE{
+- locale: "sw_KE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"},
+- daysAbbreviated: []string{"Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"},
+- daysWide: []string{"Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"KK", "BK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kabla ya Kristo", "Baada ya Kristo"},
+- timezones: map[string]string{"WIB": "Saa za Magharibi mwa Indonesia", "WITA": "Saa za Indonesia ya Kati", "CHADT": "Saa za Mchana za Chatham", "NZST": "Saa Wastani za New Zealand", "WARST": "Saa za Majira ya joto za Magharibi mwa Argentina", "HNNOMX": "Saa Wastani za Mexico Kaskazini Magharibi", "WEZ": "Saa Wastani za Magharibi mwa Ulaya", "AWST": "Saa Wastani za Australia Magharibi", "HKST": "Saa za Majira ya joto za Hong Kong", "HNEG": "Saa za Wastani za Greenland Mashariki", "WART": "Saa Wastani za Magharibi mwa Argentina", "SGT": "Saa Wastani za Singapore", "CHAST": "Saa Wastani za Chatham", "CLT": "Saa za Wastani za Chile", "HNCU": "Saa za Wastani ya Cuba", "BT": "Saa za Bhutan", "HNT": "Saa za Wastani za Newfoundland", "MESZ": "Saa za Majira ya joto za Ulaya ya Kati", "NZDT": "Saa za Mchana za New Zealand", "BOT": "Saa za Bolivia", "HEPMX": "Saa za mchana za pasifiki za Mexico", "EST": "Saa za Wastani za Mashariki", "WIT": "Saa za Mashariki mwa Indonesia", "ART": "Saa za Wastani za Argentina", "ARST": "Saa za Majira ya joto za Argentina", "CLST": "Saa za Majira ya joto za Chile", "CAT": "Saa za Afrika ya Kati", "EAT": "Saa za Afrika Mashariki", "COST": "Saa za Majira ya joto za Colombia", "UYT": "Saa za Wastani za Uruguay", "HAST": "Saa za Wastani za Hawaii-Aleutian", "MEZ": "Saa Wastani za Ulaya ya kati", "IST": "Saa Wastani za India", "UYST": "Saa za Majira ya joto za Uruguay", "AKDT": "Saa za Mchana za Alaska", "HEPM": "Saa za Mchana za Saint-Pierre na Miquelon", "LHST": "Saa Wastani za Lord Howe", "LHDT": "Saa za Mchana za Lord Howe", "CST": "Saa za Wastani za Kati", "HADT": "Saa za Mchana za Hawaii-Aleutian", "PDT": "Saa za Mchana za Pasifiki", "AWDT": "Saa za Mchana za Australia Magharibi", "HNPM": "Saa za Wastani ya Saint-Pierre na Miquelon", "ACDT": "Saa za Mchana za Australia ya Kati", "OEZ": "Saa Wastani za Mashariki mwa Ulaya", "EDT": "Saa za Mchana za Mashariki", "MST": "Saa za Wastani za Mountain", "COT": "Saa za Wastani za Colombia", "GMT": "Saa za Greenwich", "SRT": "Saa za Suriname", "SAST": "Saa Wastani za Afrika Kusini", "TMT": "Saa za Wastani za Turkmenistan", "TMST": "Saa za Majira ya joto za Turkmenistan", "VET": "Saa za Venezuela", "HAT": "Saa za Mchana za Newfoundland", "WESZ": "Saa za Majira ya joto za Magharibi mwa Ulaya", "HEOG": "Saa za Majira ya joto za Greenland Magharibi", "HKT": "Saa Wastani za Hong Kong", "HENOMX": "Saa za mchana za Mexico Kaskazini Magharibi", "HECU": "Saa za Mchana za Cuba", "ADT": "Saa za Mchana za Atlantiki", "PST": "Saa za Wastani za Pasifiki", "∅∅∅": "Saa za Majira ya joto za Amazon", "GFT": "Saa za Guiana ya Ufaransa", "HEEG": "Saa za Majira ya joto za Greenland Mashariki", "WAST": "Saa za Majira ya joto za Afrika Magharibi", "HNPMX": "Saa za wastani za pasifiki za Mexico", "ACST": "Saa Wastani za Australia ya Kati", "OESZ": "Saa za Majira ya joto za Mashariki mwa Ulaya", "CDT": "Saa za Mchana za Kati", "AST": "Saa za Wastani za Atlantiki", "GYT": "Saa za Guyana", "AKST": "Saa za Wastani za Alaska", "MDT": "Saa za Mchana za Mountain", "HNOG": "Saa za Wastani za Greenland Magharibi", "AEDT": "Saa za Mchana za Mashariki mwa Australia", "JST": "Saa Wastani za Japan", "ChST": "Saa Wastani za Chamorro", "WAT": "Saa za Wastani za Afrika Magharibi", "ACWST": "Saa Wastani za Magharibi ya Kati ya Australia", "ACWDT": "Saa za Mchana za Magharibi ya Kati ya Australia", "AEST": "Saa Wastani za Mashariki mwa Australia", "JDT": "Saa za Mchana za Japan", "ECT": "Saa za Ecuador", "MYT": "Saa za Malaysia"},
++ locale: "sw_KE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ periodsNarrow: []string{"AM", "PM"},
++ periodsWide: []string{"AM", "PM"},
++ timezones: map[string]string{"LHST": "LHST", "GFT": "GFT", "GYT": "GYT", "HKST": "HKST", "BOT": "BOT", "EAT": "EAT", "HNPM": "HNPM", "CHAST": "CHAST", "SGT": "SGT", "BT": "BT", "AEST": "AEST", "AEDT": "AEDT", "TMST": "TMST", "ECT": "ECT", "ACST": "ACST", "AWST": "AWST", "PDT": "PDT", "AST": "AST", "WIT": "WIT", "MST": "MST", "HADT": "HADT", "HNEG": "HNEG", "HECU": "HECU", "AKDT": "AKDT", "WESZ": "WESZ", "WART": "WART", "COST": "COST", "HKT": "HKT", "NZST": "NZST", "MESZ": "MESZ", "HEEG": "HEEG", "UYST": "UYST", "WIB": "WIB", "ChST": "ChST", "ART": "ART", "ACWST": "ACWST", "HNPMX": "HNPMX", "CAT": "CAT", "WAT": "WAT", "WAST": "WAST", "OESZ": "OESZ", "AWDT": "AWDT", "MYT": "MYT", "HEPMX": "HEPMX", "CDT": "CDT", "MDT": "MDT", "HAST": "HAST", "SAST": "SAST", "HEOG": "HEOG", "WITA": "WITA", "EDT": "EDT", "NZDT": "NZDT", "GMT": "GMT", "WEZ": "WEZ", "COT": "COT", "HNOG": "HNOG", "∅∅∅": "∅∅∅", "ACWDT": "ACWDT", "AKST": "AKST", "ADT": "ADT", "MEZ": "MEZ", "HEPM": "HEPM", "HAT": "HAT", "OEZ": "OEZ", "SRT": "SRT", "HENOMX": "HENOMX", "JDT": "JDT", "PST": "PST", "ACDT": "ACDT", "WARST": "WARST", "TMT": "TMT", "HNCU": "HNCU", "CLST": "CLST", "HNNOMX": "HNNOMX", "IST": "IST", "VET": "VET", "EST": "EST", "ARST": "ARST", "JST": "JST", "CHADT": "CHADT", "HNT": "HNT", "CST": "CST", "LHDT": "LHDT", "UYT": "UYT", "CLT": "CLT"},
+ }
+ }
+ 
+@@ -136,7 +115,7 @@ func (sw *sw_KE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sw *sw_KE) MonthsAbbreviated() []string {
+- return sw.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -146,7 +125,7 @@ func (sw *sw_KE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sw *sw_KE) MonthsNarrow() []string {
+- return sw.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -156,7 +135,7 @@ func (sw *sw_KE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sw *sw_KE) MonthsWide() []string {
+- return sw.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -202,73 +181,13 @@ func (sw *sw_KE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sw_KE' and handles both Whole and Real numbers based on 'v'
+ func (sw *sw_KE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sw_KE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sw *sw_KE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sw.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sw.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sw_KE'
+@@ -276,56 +195,7 @@ func (sw *sw_KE) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sw.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, sw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sw_KE'
+@@ -334,68 +204,7 @@ func (sw *sw_KE) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sw.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, sw.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sw.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sw_KE'
+@@ -403,27 +212,6 @@ func (sw *sw_KE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -432,17 +220,6 @@ func (sw *sw_KE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sw.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -451,17 +228,6 @@ func (sw *sw_KE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -470,19 +236,6 @@ func (sw *sw_KE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sw.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,19 +244,6 @@ func (sw *sw_KE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -512,26 +252,6 @@ func (sw *sw_KE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -540,30 +260,6 @@ func (sw *sw_KE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -572,34 +268,5 @@ func (sw *sw_KE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sw.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sw_TZ/sw_TZ.go b/sw_TZ/sw_TZ.go
+index 7942505..54b36d7 100644
+--- a/sw_TZ/sw_TZ.go
++++ b/sw_TZ/sw_TZ.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type sw_TZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sw_TZ' locale
+ func New() locales.Translator {
+ return &sw_TZ{
+- locale: "sw_TZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"},
+- daysAbbreviated: []string{"Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"},
+- daysWide: []string{"Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"am", "pm"},
+- periodsWide: []string{"Asubuhi", "Mchana"},
+- erasAbbreviated: []string{"KK", "BK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kabla ya Kristo", "Baada ya Kristo"},
+- timezones: map[string]string{"GYT": "Saa za Guyana", "UYT": "Saa za Wastani za Uruguay", "∅∅∅": "Saa za Majira ya joto za Amazon", "HEEG": "Saa za Majira ya joto za Greenland Mashariki", "EAT": "Saa za Afrika Mashariki", "AST": "Saa za Wastani za Atlantiki", "MYT": "Saa za Malaysia", "PST": "Saa za Wastani za Pasifiki", "AWST": "Saa Wastani za Australia Magharibi", "ChST": "Saa Wastani za Chamorro", "HECU": "Saa za Mchana za Cuba", "HEPMX": "Saa za mchana za pasifiki za Mexico", "WIT": "Saa za Mashariki mwa Indonesia", "HAST": "Saa za Wastani za Hawaii-Aleutian", "WEZ": "Saa Wastani za Magharibi mwa Ulaya", "GFT": "Saa za Guiana ya Ufaransa", "WAST": "Saa za Majira ya joto za Afrika Magharibi", "ADT": "Saa za Mchana za Atlantiki", "HAT": "Saa za Mchana za Newfoundland", "HNOG": "Saa za Wastani za Greenland Magharibi", "CHADT": "Saa za Mchana za Chatham", "HNNOMX": "Saa Wastani za Mexico Kaskazini Magharibi", "HENOMX": "Saa za mchana za Mexico Kaskazini Magharibi", "ACST": "Saa Wastani za Australia ya Kati", "WART": "Saa Wastani za Magharibi mwa Argentina", "CST": "Saa za Wastani za Kati", "WESZ": "Saa za Majira ya joto za Magharibi mwa Ulaya", "ACWST": "Saa Wastani za Magharibi ya Kati ya Australia", "ARST": "Saa za Majira ya joto za Argentina", "AEST": "Saa Wastani za Mashariki mwa Australia", "JDT": "Saa za Mchana za Japan", "UYST": "Saa za Majira ya joto za Uruguay", "WIB": "Saa za Magharibi mwa Indonesia", "PDT": "Saa za Mchana za Pasifiki", "LHST": "Saa Wastani za Lord Howe", "COST": "Saa za Majira ya joto za Colombia", "ACDT": "Saa za Mchana za Australia ya Kati", "HNT": "Saa za Wastani za Newfoundland", "MESZ": "Saa za Majira ya joto za Ulaya ya Kati", "JST": "Saa Wastani za Japan", "HNEG": "Saa za Wastani za Greenland Mashariki", "CAT": "Saa za Afrika ya Kati", "HKST": "Saa za Majira ya joto za Hong Kong", "LHDT": "Saa za Mchana za Lord Howe", "BOT": "Saa za Bolivia", "ECT": "Saa za Ecuador", "EST": "Saa za Wastani za Mashariki", "AKST": "Saa za Wastani za Alaska", "HNPM": "Saa za Wastani ya Saint-Pierre na Miquelon", "CLT": "Saa za Wastani za Chile", "WAT": "Saa za Wastani za Afrika Magharibi", "ACWDT": "Saa za Mchana za Magharibi ya Kati ya Australia", "WITA": "Saa za Indonesia ya Kati", "MEZ": "Saa Wastani za Ulaya ya kati", "SAST": "Saa Wastani za Afrika Kusini", "CLST": "Saa za Majira ya joto za Chile", "TMST": "Saa za Majira ya joto za Turkmenistan", "MST": "MST", "EDT": "Saa za Mchana za Mashariki", "AWDT": "Saa za Mchana za Australia Magharibi", "AEDT": "Saa za Mchana za Mashariki mwa Australia", "HNCU": "Saa za Wastani ya Cuba", "GMT": "Saa za Greenwich", "HADT": "Saa za Mchana za Hawaii-Aleutian", "SRT": "Saa za Suriname", "OEZ": "Saa Wastani za Mashariki mwa Ulaya", "OESZ": "Saa za Majira ya joto za Mashariki mwa Ulaya", "TMT": "Saa za Wastani za Turkmenistan", "SGT": "Saa Wastani za Singapore", "HNPMX": "Saa za wastani za pasifiki za Mexico", "VET": "Saa za Venezuela", "ART": "Saa za Wastani za Argentina", "HEOG": "Saa za Majira ya joto za Greenland Magharibi", "HKT": "Saa Wastani za Hong Kong", "IST": "Saa Wastani za India", "WARST": "Saa za Majira ya joto za Magharibi mwa Argentina", "HEPM": "Saa za Mchana za Saint-Pierre na Miquelon", "CHAST": "Saa Wastani za Chatham", "COT": "Saa za Wastani za Colombia", "MDT": "MDT", "AKDT": "Saa za Mchana za Alaska", "CDT": "Saa za Mchana za Kati", "BT": "Saa za Bhutan", "NZST": "Saa Wastani za New Zealand", "NZDT": "Saa za Mchana za New Zealand"},
++ locale: "sw_TZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WESZ": "WESZ", "HNT": "HNT", "ChST": "ChST", "HNPM": "HNPM", "HEPMX": "HEPMX", "ART": "ART", "ACST": "ACST", "HENOMX": "HENOMX", "MEZ": "MEZ", "GFT": "GFT", "COST": "COST", "HNEG": "HNEG", "JST": "JST", "OEZ": "OEZ", "CLT": "CLT", "CST": "CST", "UYT": "UYT", "HECU": "HECU", "HNPMX": "HNPMX", "WAST": "WAST", "ADT": "ADT", "ACDT": "ACDT", "AST": "AST", "HAST": "HAST", "AWST": "AWST", "CHAST": "CHAST", "WARST": "WARST", "ECT": "ECT", "SAST": "SAST", "AKDT": "AKDT", "WIT": "WIT", "∅∅∅": "∅∅∅", "GMT": "GMT", "ARST": "ARST", "LHST": "LHST", "MYT": "MYT", "BT": "BT", "CHADT": "CHADT", "HEOG": "HEOG", "WITA": "WITA", "CDT": "CDT", "SRT": "SRT", "HNNOMX": "HNNOMX", "VET": "VET", "COT": "COT", "TMT": "TMT", "BOT": "BOT", "AEDT": "AEDT", "GYT": "GYT", "MDT": "MDT", "MESZ": "MESZ", "UYST": "UYST", "WEZ": "WEZ", "OESZ": "OESZ", "HKST": "HKST", "NZST": "NZST", "AEST": "AEST", "HKT": "HKT", "LHDT": "LHDT", "WIB": "WIB", "HADT": "HADT", "AKST": "AKST", "HAT": "HAT", "MST": "MST", "HEPM": "HEPM", "ACWST": "ACWST", "CLST": "CLST", "EAT": "EAT", "CAT": "CAT", "HEEG": "HEEG", "AWDT": "AWDT", "PDT": "PDT", "ACWDT": "ACWDT", "IST": "IST", "TMST": "TMST", "EST": "EST", "SGT": "SGT", "EDT": "EDT", "NZDT": "NZDT", "JDT": "JDT", "PST": "PST", "HNCU": "HNCU", "WAT": "WAT", "WART": "WART", "HNOG": "HNOG"},
+ }
+ }
+ 
+@@ -136,7 +113,7 @@ func (sw *sw_TZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sw *sw_TZ) MonthsAbbreviated() []string {
+- return sw.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -146,7 +123,7 @@ func (sw *sw_TZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sw *sw_TZ) MonthsNarrow() []string {
+- return sw.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -156,7 +133,7 @@ func (sw *sw_TZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sw *sw_TZ) MonthsWide() []string {
+- return sw.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -202,73 +179,13 @@ func (sw *sw_TZ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sw_TZ' and handles both Whole and Real numbers based on 'v'
+ func (sw *sw_TZ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sw_TZ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sw *sw_TZ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sw.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sw.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sw_TZ'
+@@ -276,56 +193,7 @@ func (sw *sw_TZ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sw.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, sw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sw_TZ'
+@@ -334,68 +202,7 @@ func (sw *sw_TZ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sw.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, sw.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sw.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sw_TZ'
+@@ -403,27 +210,6 @@ func (sw *sw_TZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -432,17 +218,6 @@ func (sw *sw_TZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sw.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -451,17 +226,6 @@ func (sw *sw_TZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -470,19 +234,6 @@ func (sw *sw_TZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sw.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,19 +242,6 @@ func (sw *sw_TZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -512,26 +250,6 @@ func (sw *sw_TZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -540,30 +258,6 @@ func (sw *sw_TZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -572,34 +266,5 @@ func (sw *sw_TZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sw.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/sw_UG/sw_UG.go b/sw_UG/sw_UG.go
+index 8ee188d..6cc0efb 100644
+--- a/sw_UG/sw_UG.go
++++ b/sw_UG/sw_UG.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type sw_UG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'sw_UG' locale
+ func New() locales.Translator {
+ return &sw_UG{
+- locale: "sw_UG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "USh", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"},
+- daysAbbreviated: []string{"Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"},
+- daysWide: []string{"Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"am", "pm"},
+- periodsWide: []string{"Asubuhi", "Mchana"},
+- erasAbbreviated: []string{"KK", "BK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kabla ya Kristo", "Baada ya Kristo"},
+- timezones: map[string]string{"CDT": "Saa za Mchana za Kati", "CHAST": "Saa Wastani za Chatham", "HNEG": "Saa za Wastani za Greenland Mashariki", "WARST": "Saa za Majira ya joto za Magharibi mwa Argentina", "COST": "Saa za Majira ya joto za Colombia", "HEPMX": "Saa za mchana za pasifiki za Mexico", "AEDT": "Saa za Mchana za Mashariki mwa Australia", "MEZ": "Saa Wastani za Ulaya ya kati", "EAT": "Saa za Afrika Mashariki", "HENOMX": "Saa za mchana za Mexico Kaskazini Magharibi", "GYT": "Saa za Guyana", "ACWST": "Saa Wastani za Magharibi ya Kati ya Australia", "UYT": "Saa za Wastani za Uruguay", "HKST": "Saa za Majira ya joto za Hong Kong", "HEEG": "Saa za Majira ya joto za Greenland Mashariki", "TMST": "Saa za Majira ya joto za Turkmenistan", "WART": "Saa Wastani za Magharibi mwa Argentina", "HECU": "Saa za Mchana za Cuba", "HAT": "Saa za Mchana za Newfoundland", "HNNOMX": "Saa Wastani za Mexico Kaskazini Magharibi", "AKDT": "Saa za Mchana za Alaska", "WEZ": "Saa Wastani za Magharibi mwa Ulaya", "ACWDT": "Saa za Mchana za Magharibi ya Kati ya Australia", "JST": "Saa Wastani za Japan", "VET": "Saa za Venezuela", "WIT": "Saa za Mashariki mwa Indonesia", "SRT": "Saa za Suriname", "WIB": "Saa za Magharibi mwa Indonesia", "MESZ": "Saa za Majira ya joto za Ulaya ya Kati", "OEZ": "Saa Wastani za Mashariki mwa Ulaya", "∅∅∅": "∅∅∅", "HNPMX": "Saa za wastani za pasifiki za Mexico", "CST": "Saa za Wastani za Kati", "PST": "Saa za Wastani za Pasifiki", "ChST": "Saa Wastani za Chamorro", "WAST": "Saa za Majira ya joto za Afrika Magharibi", "HNCU": "Saa za Wastani ya Cuba", "AST": "Saa za Wastani za Atlantiki", "HAST": "Saa za Wastani za Hawaii-Aleutian", "AWDT": "Saa za Mchana za Australia Magharibi", "HEPM": "Saa za Mchana za Saint-Pierre na Miquelon", "LHDT": "Saa za Mchana za Lord Howe", "TMT": "Saa za Wastani za Turkmenistan", "CAT": "Saa za Afrika ya Kati", "EDT": "Saa za Mchana za Mashariki", "HADT": "Saa za Mchana za Hawaii-Aleutian", "ARST": "Saa za Majira ya joto za Argentina", "WAT": "Saa za Wastani za Afrika Magharibi", "NZDT": "Saa za Mchana za New Zealand", "CHADT": "Saa za Mchana za Chatham", "SAST": "Saa Wastani za Afrika Kusini", "BOT": "Saa za Bolivia", "ACST": "Saa Wastani za Australia ya Kati", "ADT": "Saa za Mchana za Atlantiki", "PDT": "Saa za Mchana za Pasifiki", "WITA": "Saa za Indonesia ya Kati", "AKST": "Saa za Wastani za Alaska", "WESZ": "Saa za Majira ya joto za Magharibi mwa Ulaya", "ART": "Saa za Wastani za Argentina", "HEOG": "Saa za Majira ya joto za Greenland Magharibi", "ECT": "Saa za Ecuador", "EST": "Saa za Wastani za Mashariki", "MST": "MST", "MDT": "MDT", "GFT": "Saa za Guiana ya Ufaransa", "GMT": "Saa za Greenwich", "AEST": "Saa Wastani za Mashariki mwa Australia", "JDT": "Saa za Mchana za Japan", "NZST": "Saa Wastani za New Zealand", "CLT": "Saa za Wastani za Chile", "ACDT": "Saa za Mchana za Australia ya Kati", "MYT": "Saa za Malaysia", "HNT": "Saa za Wastani za Newfoundland", "HNPM": "Saa za Wastani ya Saint-Pierre na Miquelon", "OESZ": "Saa za Majira ya joto za Mashariki mwa Ulaya", "COT": "Saa za Wastani za Colombia", "HNOG": "Saa za Wastani za Greenland Magharibi", "AWST": "Saa Wastani za Australia Magharibi", "CLST": "Saa za Majira ya joto za Chile", "BT": "Saa za Bhutan", "HKT": "Saa Wastani za Hong Kong", "LHST": "Saa Wastani za Lord Howe", "SGT": "Saa Wastani za Singapore", "UYST": "Saa za Majira ya joto za Uruguay", "IST": "Saa Wastani za India"},
++ locale: "sw_UG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "USh", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNCU": "HNCU", "HNOG": "HNOG", "ChST": "ChST", "LHDT": "LHDT", "BT": "BT", "TMT": "TMT", "CST": "CST", "ADT": "ADT", "AEDT": "AEDT", "CHAST": "CHAST", "HECU": "HECU", "HKT": "HKT", "ART": "ART", "BOT": "BOT", "HAST": "HAST", "UYT": "UYT", "WAST": "WAST", "MST": "MST", "MDT": "MDT", "MEZ": "MEZ", "AWDT": "AWDT", "PDT": "PDT", "ACWST": "ACWST", "AEST": "AEST", "CHADT": "CHADT", "WARST": "WARST", "TMST": "TMST", "CDT": "CDT", "PST": "PST", "OESZ": "OESZ", "SRT": "SRT", "HENOMX": "HENOMX", "AWST": "AWST", "UYST": "UYST", "HNT": "HNT", "HEOG": "HEOG", "SAST": "SAST", "CLST": "CLST", "HNPMX": "HNPMX", "ACDT": "ACDT", "HEPM": "HEPM", "HAT": "HAT", "COST": "COST", "NZDT": "NZDT", "GMT": "GMT", "CLT": "CLT", "ARST": "ARST", "HEPMX": "HEPMX", "EST": "EST", "EDT": "EDT", "HADT": "HADT", "HNNOMX": "HNNOMX", "NZST": "NZST", "WAT": "WAT", "GFT": "GFT", "HEEG": "HEEG", "JST": "JST", "SGT": "SGT", "JDT": "JDT", "IST": "IST", "COT": "COT", "∅∅∅": "∅∅∅", "CAT": "CAT", "EAT": "EAT", "MESZ": "MESZ", "HNPM": "HNPM", "WART": "WART", "WIT": "WIT", "AST": "AST", "ACST": "ACST", "AKST": "AKST", "OEZ": "OEZ", "GYT": "GYT", "HNEG": "HNEG", "LHST": "LHST", "WEZ": "WEZ", "AKDT": "AKDT", "WITA": "WITA", "ECT": "ECT", "WIB": "WIB", "MYT": "MYT", "HKST": "HKST", "ACWDT": "ACWDT", "VET": "VET", "WESZ": "WESZ"},
+ }
+ }
+ 
+@@ -136,7 +113,7 @@ func (sw *sw_UG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (sw *sw_UG) MonthsAbbreviated() []string {
+- return sw.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -146,7 +123,7 @@ func (sw *sw_UG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (sw *sw_UG) MonthsNarrow() []string {
+- return sw.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -156,7 +133,7 @@ func (sw *sw_UG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (sw *sw_UG) MonthsWide() []string {
+- return sw.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -202,73 +179,13 @@ func (sw *sw_UG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'sw_UG' and handles both Whole and Real numbers based on 'v'
+ func (sw *sw_UG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'sw_UG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (sw *sw_UG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sw.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, sw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, sw.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'sw_UG'
+@@ -276,56 +193,7 @@ func (sw *sw_UG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sw.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, sw.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'sw_UG'
+@@ -334,68 +202,7 @@ func (sw *sw_UG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := sw.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, sw.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, sw.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, sw.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, sw.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, sw.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'sw_UG'
+@@ -403,27 +210,6 @@ func (sw *sw_UG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -432,17 +218,6 @@ func (sw *sw_UG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sw.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -451,17 +226,6 @@ func (sw *sw_UG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -470,19 +234,6 @@ func (sw *sw_UG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, sw.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, sw.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,19 +242,6 @@ func (sw *sw_UG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -512,26 +250,6 @@ func (sw *sw_UG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -540,30 +258,6 @@ func (sw *sw_UG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -572,34 +266,5 @@ func (sw *sw_UG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, sw.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := sw.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ta/ta.go b/ta/ta.go
+index 5c4a8e1..a3dc739 100644
+--- a/ta/ta.go
++++ b/ta/ta.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"கி.மு.", "கி.பி."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"கிறிஸ்துவுக்கு முன்", "அன்னோ டோமினி"},
+- timezones: map[string]string{"HNT": "நியூஃபவுண்ட்லாந்து நிலையான நேரம்", "CHAST": "சத்தாம் நிலையான நேரம்", "NZDT": "நியூசிலாந்து பகலொளி நேரம்", "ACDT": "ஆஸ்திரேலியன் மத்திய பகலொளி நேரம்", "WARST": "மேற்கத்திய அர்ஜென்டினா கோடை நேரம்", "HENOMX": "வடமேற்கு மெக்ஸிகோ பகலொளி நேரம்", "BT": "பூடான் நேரம்", "SRT": "சுரினாம் நேரம்", "WESZ": "மேற்கத்திய ஐரோப்பிய கோடை நேரம்", "HKST": "ஹாங்காங் கோடை நேரம்", "MEZ": "மத்திய ஐரோப்பிய நிலையான நேரம்", "CAT": "மத்திய ஆப்பிரிக்க நேரம்", "EAT": "கிழக்கு ஆப்பிரிக்க நேரம்", "WART": "மேற்கத்திய அர்ஜென்டினா நிலையான நேரம்", "SGT": "சிங்கப்பூர் நிலையான நேரம்", "HNCU": "கியூபா நிலையான நேரம்", "HECU": "கியூபா பகலொளி நேரம்", "HNPMX": "மெக்ஸிகன் பசிபிக் நிலையான நேரம்", "HEPM": "செயின்ட் பியரி & மிக்குயிலான் பகலொளி நேரம்", "JST": "ஜப்பான் நிலையான நேரம்", "TMT": "துர்க்மெனிஸ்தான் நிலையான நேரம்", "ChST": "சாமோரோ நிலையான நேரம்", "WIB": "மேற்கத்திய இந்தோனேசிய நேரம்", "WIT": "கிழக்கத்திய இந்தோனேசிய நேரம்", "GYT": "கயானா நேரம்", "ART": "அர்ஜென்டினா நிலையான நேரம்", "PST": "பசிபிக் நிலையான நேரம்", "ACWDT": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய பகலொளி நேரம்", "AWST": "ஆஸ்திரேலியன் மேற்கத்திய நிலையான நேரம்", "MESZ": "மத்திய ஐரோப்பிய கோடை நேரம்", "HEEG": "கிழக்கு கிரீன்லாந்து கோடை நேரம்", "COST": "கொலம்பியா கோடை நேரம்", "CST": "மத்திய நிலையான நேரம்", "AST": "அட்லாண்டிக் நிலையான நேரம்", "AKDT": "அலாஸ்கா பகலொளி நேரம்", "HADT": "ஹவாய்-அலேஷியன் பகலொளி நேரம்", "ACWST": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய நிலையான நேரம்", "JDT": "ஜப்பான் பகலொளி நேரம்", "TMST": "துர்க்மெனிஸ்தான் கோடை நேரம்", "BOT": "பொலிவியா நேரம்", "ACST": "ஆஸ்திரேலியன் மத்திய நிலையான நேரம்", "OESZ": "கிழக்கத்திய ஐரோப்பிய கோடை நேரம்", "GMT": "கிரீன்விச் சராசரி நேரம்", "EST": "கிழக்கத்திய நிலையான நேரம்", "WEZ": "மேற்கத்திய ஐரோப்பிய நிலையான நேரம்", "LHDT": "லார்ட் ஹோவ் பகலொளி நேரம்", "NZST": "நியூசிலாந்து நிலையான நேரம்", "IST": "இந்திய நிலையான நேரம்", "HNNOMX": "வடமேற்கு மெக்ஸிகோ நிலையான நேரம்", "AKST": "அலாஸ்கா நிலையான நேரம்", "MDT": "மக்காவ் கோடை நேரம்", "CDT": "மத்திய பகலொளி நேரம்", "UYT": "உருகுவே நிலையான நேரம்", "AWDT": "ஆஸ்திரேலியன் மேற்கத்திய பகலொளி நேரம்", "CLT": "சிலி நிலையான நேரம்", "WAST": "மேற்கு ஆப்பிரிக்க கோடை நேரம்", "AEST": "ஆஸ்திரேலியன் கிழக்கத்திய நிலையான நேரம்", "AEDT": "ஆஸ்திரேலியன் கிழக்கத்திய பகலொளி நேரம்", "WAT": "மேற்கு ஆப்பிரிக்க நிலையான நேரம்", "HAT": "நியூஃபவுண்ட்லாந்து பகலொளி நேரம்", "CHADT": "சத்தாம் பகலொளி நேரம்", "LHST": "லார்ட் ஹோவ் நிலையான நேரம்", "∅∅∅": "அமேசான் கோடை நேரம்", "COT": "கொலம்பியா நிலையான நேரம்", "ADT": "அட்லாண்டிக் பகலொளி நேரம்", "HKT": "ஹாங்காங் நிலையான நேரம்", "ECT": "ஈக்வடார் நேரம்", "HEPMX": "மெக்ஸிகன் பசிபிக் பகலொளி நேரம்", "HAST": "ஹவாய்-அலேஷியன் நிலையான நேரம்", "PDT": "பசிபிக் பகலொளி நேரம்", "SAST": "தென் ஆப்பிரிக்க நிலையான நேரம்", "CLST": "சிலி கோடை நேரம்", "HNEG": "கிழக்கு கிரீன்லாந்து நிலையான நேரம்", "EDT": "கிழக்கத்திய பகலொளி நேரம்", "MYT": "மலேஷிய நேரம்", "HNOG": "மேற்கு கிரீன்லாந்து நிலையான நேரம்", "HEOG": "மேற்கு கிரீன்லாந்து கோடை நேரம்", "WITA": "மத்திய இந்தோனேசிய நேரம்", "GFT": "ஃபிரஞ்சு கயானா நேரம்", "OEZ": "கிழக்கத்திய ஐரோப்பிய நிலையான நேரம்", "UYST": "உருகுவே கோடை நேரம்", "VET": "வெனிசுலா நேரம்", "ARST": "அர்ஜென்டினா கோடை நேரம்", "HNPM": "செயின்ட் பியரி & மிக்குயிலான் நிலையான நேரம்", "MST": "மக்காவ் தர நேரம்"},
++ timezones: map[string]string{"HNNOMX": "வடமேற்கு மெக்ஸிகோ நிலையான நேரம்", "AKST": "அலாஸ்கா நிலையான நேரம்", "MST": "மவுன்டைன் நிலையான நேரம்", "MEZ": "மத்திய ஐரோப்பிய நிலையான நேரம்", "MESZ": "மத்திய ஐரோப்பிய கோடை நேரம்", "GMT": "கிரீன்விச் சராசரி நேரம்", "EAT": "கிழக்கு ஆப்பிரிக்க நேரம்", "HAST": "ஹவாய்-அலேஷியன் நிலையான நேரம்", "LHDT": "லார்ட் ஹோவ் பகலொளி நேரம்", "PDT": "பசிபிக் பகலொளி நேரம்", "SGT": "சிங்கப்பூர் நிலையான நேரம்", "WAT": "மேற்கு ஆப்பிரிக்க நிலையான நேரம்", "HNT": "நியூஃபவுண்ட்லாந்து நிலையான நேரம்", "TMST": "துர்க்மெனிஸ்தான் கோடை நேரம்", "HEEG": "கிழக்கு கிரீன்லாந்து கோடை நேரம்", "AWST": "ஆஸ்திரேலியன் மேற்கத்திய நிலையான நேரம்", "UYT": "உருகுவே நிலையான நேரம்", "ChST": "சாமோரோ நிலையான நேரம்", "EDT": "கிழக்கத்திய பகலொளி நேரம்", "WITA": "மத்திய இந்தோனேசிய நேரம்", "UYST": "உருகுவே கோடை நேரம்", "AEST": "ஆஸ்திரேலியன் கிழக்கத்திய நிலையான நேரம்", "WEZ": "மேற்கத்திய ஐரோப்பிய நிலையான நேரம்", "CDT": "மத்திய பகலொளி நேரம்", "ADT": "அட்லாண்டிக் பகலொளி நேரம்", "LHST": "லார்ட் ஹோவ் நிலையான நேரம்", "COT": "கொலம்பியா நிலையான நேரம்", "EST": "கிழக்கத்திய நிலையான நேரம்", "∅∅∅": "அக்ரே கோடை நேரம்", "HAT": "நியூஃபவுண்ட்லாந்து பகலொளி நேரம்", "WARST": "மேற்கத்திய அர்ஜென்டினா கோடை நேரம்", "CST": "மத்திய நிலையான நேரம்", "MDT": "மவுன்டைன் பகலொளி நேரம்", "ACDT": "ஆஸ்திரேலியன் மத்திய பகலொளி நேரம்", "MYT": "மலேஷிய நேரம்", "WART": "மேற்கத்திய அர்ஜென்டினா நிலையான நேரம்", "WIT": "கிழக்கத்திய இந்தோனேசிய நேரம்", "HADT": "ஹவாய்-அலேஷியன் பகலொளி நேரம்", "CHAST": "சத்தாம் நிலையான நேரம்", "HECU": "கியூபா பகலொளி நேரம்", "CAT": "மத்திய ஆப்பிரிக்க நேரம்", "CLST": "சிலி கோடை நேரம்", "NZDT": "நியூசிலாந்து பகலொளி நேரம்", "BOT": "பொலிவியா நேரம்", "PST": "பசிபிக் நிலையான நேரம்", "OEZ": "கிழக்கத்திய ஐரோப்பிய நிலையான நேரம்", "HNPMX": "மெக்ஸிகன் பசிபிக் நிலையான நேரம்", "WAST": "மேற்கு ஆப்பிரிக்க கோடை நேரம்", "ACWST": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய நிலையான நேரம்", "AEDT": "ஆஸ்திரேலியன் கிழக்கத்திய பகலொளி நேரம்", "CHADT": "சத்தாம் பகலொளி நேரம்", "HKST": "ஹாங்காங் கோடை நேரம்", "ART": "அர்ஜென்டினா நிலையான நேரம்", "HNEG": "கிழக்கு கிரீன்லாந்து நிலையான நேரம்", "HEPM": "செயின்ட் பியரி & மிக்குயிலான் பகலொளி நேரம்", "IST": "இந்திய நிலையான நேரம்", "GYT": "கயானா நேரம்", "COST": "கொலம்பியா கோடை நேரம்", "HKT": "ஹாங்காங் நிலையான நேரம்", "CLT": "சிலி நிலையான நேரம்", "ECT": "ஈக்வடார் நேரம்", "ACST": "ஆஸ்திரேலியன் மத்திய நிலையான நேரம்", "HNCU": "கியூபா நிலையான நேரம்", "OESZ": "கிழக்கத்திய ஐரோப்பிய கோடை நேரம்", "ACWDT": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய பகலொளி நேரம்", "VET": "வெனிசுலா நேரம்", "AKDT": "அலாஸ்கா பகலொளி நேரம்", "SAST": "தென் ஆப்பிரிக்க நிலையான நேரம்", "TMT": "துர்க்மெனிஸ்தான் நிலையான நேரம்", "SRT": "சுரினாம் நேரம்", "AWDT": "ஆஸ்திரேலியன் மேற்கத்திய பகலொளி நேரம்", "BT": "பூடான் நேரம்", "AST": "அட்லாண்டிக் நிலையான நேரம்", "ARST": "அர்ஜென்டினா கோடை நேரம்", "HNPM": "செயின்ட் பியரி & மிக்குயிலான் நிலையான நேரம்", "WESZ": "மேற்கத்திய ஐரோப்பிய கோடை நேரம்", "GFT": "ஃபிரஞ்சு கயானா நேரம்", "WIB": "மேற்கத்திய இந்தோனேசிய நேரம்", "JDT": "ஜப்பான் பகலொளி நேரம்", "HEPMX": "மெக்ஸிகன் பசிபிக் பகலொளி நேரம்", "HEOG": "மேற்கு கிரீன்லாந்து கோடை நேரம்", "HENOMX": "வடமேற்கு மெக்ஸிகோ பகலொளி நேரம்", "HNOG": "மேற்கு கிரீன்லாந்து நிலையான நேரம்", "JST": "ஜப்பான் நிலையான நேரம்", "NZST": "நியூசிலாந்து நிலையான நேரம்"},
+ }
+ }
+ 
+diff --git a/ta_IN/ta_IN.go b/ta_IN/ta_IN.go
+index 3a1c437..2d83be4 100644
+--- a/ta_IN/ta_IN.go
++++ b/ta_IN/ta_IN.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ta_IN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ta_IN' locale
+ func New() locales.Translator {
+ return &ta_IN{
+- locale: "ta_IN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "ஜன.", "பிப்.", "மார்.", "ஏப்.", "மே", "ஜூன்", "ஜூலை", "ஆக.", "செப்.", "அக்.", "நவ.", "டிச."},
+- monthsNarrow: []string{"", "ஜ", "பி", "மா", "ஏ", "மே", "ஜூ", "ஜூ", "ஆ", "செ", "அ", "ந", "டி"},
+- monthsWide: []string{"", "ஜனவரி", "பிப்ரவரி", "மார்ச்", "ஏப்ரல்", "மே", "ஜூன்", "ஜூலை", "ஆகஸ்ட்", "செப்டம்பர்", "அக்டோபர்", "நவம்பர்", "டிசம்பர்"},
+- daysAbbreviated: []string{"ஞாயி.", "திங்.", "செவ்.", "புத.", "வியா.", "வெள்.", "சனி"},
+- daysNarrow: []string{"ஞா", "தி", "செ", "பு", "வி", "வெ", "ச"},
+- daysShort: []string{"ஞா", "தி", "செ", "பு", "வி", "வெ", "ச"},
+- daysWide: []string{"ஞாயிறு", "திங்கள்", "செவ்வாய்", "புதன்", "வியாழன்", "வெள்ளி", "சனி"},
+- periodsAbbreviated: []string{"முற்பகல்", "பிற்பகல்"},
+- periodsNarrow: []string{"மு.ப", "பி.ப"},
+- periodsWide: []string{"முற்பகல்", "பிற்பகல்"},
+- erasAbbreviated: []string{"கி.மு.", "கி.பி."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"கிறிஸ்துவுக்கு முன்", "அன்னோ டோமினி"},
+- timezones: map[string]string{"EST": "கிழக்கத்திய நிலையான நேரம்", "HEPMX": "மெக்ஸிகன் பசிபிக் பகலொளி நேரம்", "AEDT": "ஆஸ்திரேலியன் கிழக்கத்திய பகலொளி நேரம்", "∅∅∅": "அமேசான் கோடை நேரம்", "GFT": "ஃபிரஞ்சு கயானா நேரம்", "ECT": "ஈக்வடார் நேரம்", "CAT": "மத்திய ஆப்பிரிக்க நேரம்", "WARST": "மேற்கத்திய அர்ஜென்டினா கோடை நேரம்", "MESZ": "மத்திய ஐரோப்பிய கோடை நேரம்", "HENOMX": "வடமேற்கு மெக்ஸிகோ பகலொளி நேரம்", "HNCU": "கியூபா நிலையான நேரம்", "HNOG": "மேற்கு கிரீன்லாந்து நிலையான நேரம்", "ACWST": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய நிலையான நேரம்", "MEZ": "மத்திய ஐரோப்பிய நிலையான நேரம்", "NZST": "நியூசிலாந்து நிலையான நேரம்", "CHAST": "சத்தாம் நிலையான நேரம்", "ADT": "அட்லாண்டிக் பகலொளி நேரம்", "UYST": "உருகுவே கோடை நேரம்", "HAST": "ஹவாய்-அலேஷியன் நிலையான நேரம்", "UYT": "உருகுவே நிலையான நேரம்", "CST": "மத்திய நிலையான நேரம்", "SAST": "தென் ஆப்பிரிக்க நிலையான நேரம்", "JDT": "ஜப்பான் பகலொளி நேரம்", "TMT": "துர்க்மெனிஸ்தான் நிலையான நேரம்", "EAT": "கிழக்கு ஆப்பிரிக்க நேரம்", "MDT": "மக்காவ் கோடை நேரம்", "HNPMX": "மெக்ஸிகன் பசிபிக் நிலையான நேரம்", "VET": "வெனிசுலா நேரம்", "ART": "அர்ஜென்டினா நிலையான நேரம்", "HNPM": "செயின்ட் பியரி & மிக்குயிலான் நிலையான நேரம்", "OEZ": "கிழக்கத்திய ஐரோப்பிய நிலையான நேரம்", "COST": "கொலம்பியா கோடை நேரம்", "AKST": "அலாஸ்கா நிலையான நேரம்", "PDT": "பசிபிக் பகலொளி நேரம்", "CLT": "சிலி நிலையான நேரம்", "TMST": "துர்க்மெனிஸ்தான் கோடை நேரம்", "HNEG": "கிழக்கு கிரீன்லாந்து நிலையான நேரம்", "SGT": "சிங்கப்பூர் நிலையான நேரம்", "AKDT": "அலாஸ்கா பகலொளி நேரம்", "PST": "பசிபிக் நிலையான நேரம்", "WITA": "மத்திய இந்தோனேசிய நேரம்", "LHDT": "லார்ட் ஹோவ் பகலொளி நேரம்", "NZDT": "நியூசிலாந்து பகலொளி நேரம்", "WAST": "மேற்கு ஆப்பிரிக்க கோடை நேரம்", "HNNOMX": "வடமேற்கு மெக்ஸிகோ நிலையான நேரம்", "AWDT": "ஆஸ்திரேலியன் மேற்கத்திய பகலொளி நேரம்", "JST": "ஜப்பான் நிலையான நேரம்", "COT": "கொலம்பியா நிலையான நேரம்", "ARST": "அர்ஜென்டினா கோடை நேரம்", "ACST": "ஆஸ்திரேலியன் மத்திய நிலையான நேரம்", "WAT": "மேற்கு ஆப்பிரிக்க நிலையான நேரம்", "HEOG": "மேற்கு கிரீன்லாந்து கோடை நேரம்", "ACDT": "ஆஸ்திரேலியன் மத்திய பகலொளி நேரம்", "EDT": "கிழக்கத்திய பகலொளி நேரம்", "AEST": "ஆஸ்திரேலியன் கிழக்கத்திய நிலையான நேரம்", "AWST": "ஆஸ்திரேலியன் மேற்கத்திய நிலையான நேரம்", "HKST": "ஹாங்காங் கோடை நேரம்", "LHST": "லார்ட் ஹோவ் நிலையான நேரம்", "CHADT": "சத்தாம் பகலொளி நேரம்", "HEEG": "கிழக்கு கிரீன்லாந்து கோடை நேரம்", "GYT": "கயானா நேரம்", "HADT": "ஹவாய்-அலேஷியன் பகலொளி நேரம்", "OESZ": "கிழக்கத்திய ஐரோப்பிய கோடை நேரம்", "HECU": "கியூபா பகலொளி நேரம்", "MST": "மக்காவ் தர நேரம்", "WEZ": "மேற்கத்திய ஐரோப்பிய நிலையான நேரம்", "WESZ": "மேற்கத்திய ஐரோப்பிய கோடை நேரம்", "ACWDT": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய பகலொளி நேரம்", "IST": "இந்திய நிலையான நேரம்", "CLST": "சிலி கோடை நேரம்", "ChST": "சாமோரோ நிலையான நேரம்", "GMT": "கிரீன்விச் சராசரி நேரம்", "WIT": "கிழக்கத்திய இந்தோனேசிய நேரம்", "HNT": "நியூஃபவுண்ட்லாந்து நிலையான நேரம்", "HEPM": "செயின்ட் பியரி & மிக்குயிலான் பகலொளி நேரம்", "AST": "அட்லாண்டிக் நிலையான நேரம்", "SRT": "சுரினாம் நேரம்", "BOT": "பொலிவியா நேரம்", "MYT": "மலேஷிய நேரம்", "HKT": "ஹாங்காங் நிலையான நேரம்", "WART": "மேற்கத்திய அர்ஜென்டினா நிலையான நேரம்", "CDT": "மத்திய பகலொளி நேரம்", "WIB": "மேற்கத்திய இந்தோனேசிய நேரம்", "BT": "பூடான் நேரம்", "HAT": "நியூஃபவுண்ட்லாந்து பகலொளி நேரம்"},
++ locale: "ta_IN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CLST": "CLST", "WITA": "WITA", "NZST": "NZST", "GMT": "GMT", "HNNOMX": "HNNOMX", "MYT": "MYT", "HNCU": "HNCU", "WIB": "WIB", "MST": "MST", "ADT": "ADT", "ARST": "ARST", "HADT": "HADT", "ACDT": "ACDT", "VET": "VET", "WIT": "WIT", "TMST": "TMST", "PDT": "PDT", "ACWST": "ACWST", "SGT": "SGT", "HKST": "HKST", "MESZ": "MESZ", "AWDT": "AWDT", "LHDT": "LHDT", "CHAST": "CHAST", "HECU": "HECU", "HKT": "HKT", "EAT": "EAT", "UYT": "UYT", "IST": "IST", "HNPMX": "HNPMX", "WART": "WART", "ChST": "ChST", "ART": "ART", "ACST": "ACST", "HENOMX": "HENOMX", "AKDT": "AKDT", "CAT": "CAT", "HEPM": "HEPM", "WESZ": "WESZ", "OEZ": "OEZ", "WARST": "WARST", "TMT": "TMT", "CST": "CST", "ECT": "ECT", "PST": "PST", "COST": "COST", "HNOG": "HNOG", "MEZ": "MEZ", "JDT": "JDT", "ACWDT": "ACWDT", "WAT": "WAT", "EDT": "EDT", "HAST": "HAST", "HNEG": "HNEG", "∅∅∅": "∅∅∅", "WEZ": "WEZ", "GFT": "GFT", "MDT": "MDT", "BOT": "BOT", "AWST": "AWST", "LHST": "LHST", "HNPM": "HNPM", "AEST": "AEST", "UYST": "UYST", "BT": "BT", "CLT": "CLT", "HAT": "HAT", "SAST": "SAST", "GYT": "GYT", "COT": "COT", "NZDT": "NZDT", "AEDT": "AEDT", "CHADT": "CHADT", "HEPMX": "HEPMX", "WAST": "WAST", "EST": "EST", "HEEG": "HEEG", "JST": "JST", "OESZ": "OESZ", "HNT": "HNT", "CDT": "CDT", "SRT": "SRT", "AKST": "AKST", "HEOG": "HEOG", "AST": "AST"},
+ }
+ }
+ 
+@@ -135,7 +112,7 @@ func (ta *ta_IN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ta *ta_IN) MonthsAbbreviated() []string {
+- return ta.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -145,7 +122,7 @@ func (ta *ta_IN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ta *ta_IN) MonthsNarrow() []string {
+- return ta.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -155,7 +132,7 @@ func (ta *ta_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ta *ta_IN) MonthsWide() []string {
+- return ta.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -201,82 +178,13 @@ func (ta *ta_IN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ta_IN' and handles both Whole and Real numbers based on 'v'
+ func (ta *ta_IN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ta.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, ta.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ta.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ta_IN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ta *ta_IN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ta.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ta.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ta.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ta_IN'
+@@ -284,56 +192,7 @@ func (ta *ta_IN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ta.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ta.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ta.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ta.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ta.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ta_IN'
+@@ -342,68 +201,7 @@ func (ta *ta_IN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ta.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ta.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ta.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ta.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ta.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ta.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ta_IN'
+@@ -411,17 +209,6 @@ func (ta *ta_IN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -430,17 +217,6 @@ func (ta *ta_IN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ta.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,17 +225,6 @@ func (ta *ta_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ta.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -468,19 +233,6 @@ func (ta *ta_IN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ta.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ta.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -489,29 +241,6 @@ func (ta *ta_IN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ta.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ta.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -520,36 +249,6 @@ func (ta *ta_IN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ta.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ta.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -558,40 +257,6 @@ func (ta *ta_IN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ta.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ta.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -600,44 +265,5 @@ func (ta *ta_IN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ta.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ta.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ta.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ta_LK/ta_LK.go b/ta_LK/ta_LK.go
+index 431037a..a88d2c2 100644
+--- a/ta_LK/ta_LK.go
++++ b/ta_LK/ta_LK.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ta_LK struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ta_LK' locale
+ func New() locales.Translator {
+ return &ta_LK{
+- locale: "ta_LK",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "Rs.", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "ஜன.", "பிப்.", "மார்.", "ஏப்.", "மே", "ஜூன்", "ஜூலை", "ஆக.", "செப்.", "அக்.", "நவ.", "டிச."},
+- monthsNarrow: []string{"", "ஜ", "பி", "மா", "ஏ", "மே", "ஜூ", "ஜூ", "ஆ", "செ", "அ", "ந", "டி"},
+- monthsWide: []string{"", "ஜனவரி", "பிப்ரவரி", "மார்ச்", "ஏப்ரல்", "மே", "ஜூன்", "ஜூலை", "ஆகஸ்ட்", "செப்டம்பர்", "அக்டோபர்", "நவம்பர்", "டிசம்பர்"},
+- daysAbbreviated: []string{"ஞாயி.", "திங்.", "செவ்.", "புத.", "வியா.", "வெள்.", "சனி"},
+- daysNarrow: []string{"ஞா", "தி", "செ", "பு", "வி", "வெ", "ச"},
+- daysShort: []string{"ஞா", "தி", "செ", "பு", "வி", "வெ", "ச"},
+- daysWide: []string{"ஞாயிறு", "திங்கள்", "செவ்வாய்", "புதன்", "வியாழன்", "வெள்ளி", "சனி"},
+- periodsAbbreviated: []string{"முற்பகல்", "பிற்பகல்"},
+- periodsNarrow: []string{"மு.ப", "பி.ப"},
+- periodsWide: []string{"முற்பகல்", "பிற்பகல்"},
+- erasAbbreviated: []string{"கி.மு.", "கி.பி."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"கிறிஸ்துவுக்கு முன்", "அன்னோ டோமினி"},
+- timezones: map[string]string{"NZST": "நியூசிலாந்து நிலையான நேரம்", "EAT": "கிழக்கு ஆப்பிரிக்க நேரம்", "WARST": "மேற்கத்திய அர்ஜென்டினா கோடை நேரம்", "COT": "கொலம்பியா நிலையான நேரம்", "MDT": "மக்காவ் கோடை நேரம்", "AWDT": "ஆஸ்திரேலியன் மேற்கத்திய பகலொளி நேரம்", "HKST": "ஹாங்காங் கோடை நேரம்", "CHADT": "சத்தாம் பகலொளி நேரம்", "MEZ": "மத்திய ஐரோப்பிய நிலையான நேரம்", "MESZ": "மத்திய ஐரோப்பிய கோடை நேரம்", "JST": "ஜப்பான் நிலையான நேரம்", "TMT": "துர்க்மெனிஸ்தான் நிலையான நேரம்", "HEEG": "கிழக்கு கிரீன்லாந்து கோடை நேரம்", "SRT": "சுரினாம் நேரம்", "WIB": "மேற்கத்திய இந்தோனேசிய நேரம்", "CHAST": "சத்தாம் நிலையான நேரம்", "IST": "இந்திய நிலையான நேரம்", "CLST": "சிலி கோடை நேரம்", "TMST": "துர்க்மெனிஸ்தான் கோடை நேரம்", "WART": "மேற்கத்திய அர்ஜென்டினா நிலையான நேரம்", "ADT": "அட்லாண்டிக் பகலொளி நேரம்", "AKDT": "அலாஸ்கா பகலொளி நேரம்", "ARST": "அர்ஜென்டினா கோடை நேரம்", "LHST": "லார்ட் ஹோவ் நிலையான நேரம்", "SGT": "சிங்கப்பூர் நிலையான நேரம்", "AST": "அட்லாண்டிக் நிலையான நேரம்", "HNT": "நியூஃபவுண்ட்லாந்து நிலையான நேரம்", "HADT": "ஹவாய்-அலேஷியன் பகலொளி நேரம்", "WEZ": "மேற்கத்திய ஐரோப்பிய நிலையான நேரம்", "GFT": "ஃபிரஞ்சு கயானா நேரம்", "ACST": "ஆஸ்திரேலியன் மத்திய நிலையான நேரம்", "OEZ": "கிழக்கத்திய ஐரோப்பிய நிலையான நேரம்", "OESZ": "கிழக்கத்திய ஐரோப்பிய கோடை நேரம்", "HAST": "ஹவாய்-அலேஷியன் நிலையான நேரம்", "HNOG": "மேற்கு கிரீன்லாந்து நிலையான நேரம்", "HEOG": "மேற்கு கிரீன்லாந்து கோடை நேரம்", "AEST": "ஆஸ்திரேலியன் கிழக்கத்திய நிலையான நேரம்", "WAT": "மேற்கு ஆப்பிரிக்க நிலையான நேரம்", "HAT": "நியூஃபவுண்ட்லாந்து பகலொளி நேரம்", "UYST": "உருகுவே கோடை நேரம்", "MST": "மக்காவ் தர நேரம்", "ACWST": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய நிலையான நேரம்", "HEPM": "செயின்ட் பியரி & மிக்குயிலான் பகலொளி நேரம்", "SAST": "தென் ஆப்பிரிக்க நிலையான நேரம்", "JDT": "ஜப்பான் பகலொளி நேரம்", "MYT": "மலேஷிய நேரம்", "ART": "அர்ஜென்டினா நிலையான நேரம்", "PDT": "பசிபிக் பகலொளி நேரம்", "AEDT": "ஆஸ்திரேலியன் கிழக்கத்திய பகலொளி நேரம்", "HKT": "ஹாங்காங் நிலையான நேரம்", "LHDT": "லார்ட் ஹோவ் பகலொளி நேரம்", "CLT": "சிலி நிலையான நேரம்", "ECT": "ஈக்வடார் நேரம்", "HNPMX": "மெக்ஸிகன் பசிபிக் நிலையான நேரம்", "PST": "பசிபிக் நிலையான நேரம்", "AKST": "அலாஸ்கா நிலையான நேரம்", "BT": "பூடான் நேரம்", "ChST": "சாமோரோ நிலையான நேரம்", "HNEG": "கிழக்கு கிரீன்லாந்து நிலையான நேரம்", "WAST": "மேற்கு ஆப்பிரிக்க கோடை நேரம்", "COST": "கொலம்பியா கோடை நேரம்", "HENOMX": "வடமேற்கு மெக்ஸிகோ பகலொளி நேரம்", "VET": "வெனிசுலா நேரம்", "HEPMX": "மெக்ஸிகன் பசிபிக் பகலொளி நேரம்", "CST": "மத்திய நிலையான நேரம்", "∅∅∅": "அமேசான் கோடை நேரம்", "GMT": "கிரீன்விச் சராசரி நேரம்", "EST": "கிழக்கத்திய நிலையான நேரம்", "WESZ": "மேற்கத்திய ஐரோப்பிய கோடை நேரம்", "ACDT": "ஆஸ்திரேலியன் மத்திய பகலொளி நேரம்", "CAT": "மத்திய ஆப்பிரிக்க நேரம்", "HNNOMX": "வடமேற்கு மெக்ஸிகோ நிலையான நேரம்", "HNCU": "கியூபா நிலையான நேரம்", "EDT": "கிழக்கத்திய பகலொளி நேரம்", "UYT": "உருகுவே நிலையான நேரம்", "HNPM": "செயின்ட் பியரி & மிக்குயிலான் நிலையான நேரம்", "AWST": "ஆஸ்திரேலியன் மேற்கத்திய நிலையான நேரம்", "NZDT": "நியூசிலாந்து பகலொளி நேரம்", "BOT": "பொலிவியா நேரம்", "HECU": "கியூபா பகலொளி நேரம்", "CDT": "மத்திய பகலொளி நேரம்", "ACWDT": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய பகலொளி நேரம்", "GYT": "கயானா நேரம்", "WITA": "மத்திய இந்தோனேசிய நேரம்", "WIT": "கிழக்கத்திய இந்தோனேசிய நேரம்"},
++ locale: "ta_LK",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "Rs.", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MDT": "MDT", "ACDT": "ACDT", "COT": "COT", "COST": "COST", "HNOG": "HNOG", "TMT": "TMT", "WART": "WART", "ACST": "ACST", "BT": "BT", "ACWST": "ACWST", "SGT": "SGT", "HNCU": "HNCU", "OEZ": "OEZ", "CDT": "CDT", "AWST": "AWST", "UYST": "UYST", "ACWDT": "ACWDT", "AEDT": "AEDT", "AKST": "AKST", "UYT": "UYT", "VET": "VET", "MST": "MST", "HNPM": "HNPM", "IST": "IST", "WEZ": "WEZ", "WAST": "WAST", "AKDT": "AKDT", "SAST": "SAST", "MESZ": "MESZ", "CHAST": "CHAST", "HEPMX": "HEPMX", "WAT": "WAT", "HNT": "HNT", "EAT": "EAT", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "CHADT": "CHADT", "CAT": "CAT", "ART": "ART", "ADT": "ADT", "ChST": "ChST", "ARST": "ARST", "HEPM": "HEPM", "GFT": "GFT", "TMST": "TMST", "CST": "CST", "NZDT": "NZDT", "HEEG": "HEEG", "HAT": "HAT", "HEOG": "HEOG", "BOT": "BOT", "HNPMX": "HNPMX", "WITA": "WITA", "AST": "AST", "HADT": "HADT", "WIB": "WIB", "HAST": "HAST", "MEZ": "MEZ", "HECU": "HECU", "WIT": "WIT", "EST": "EST", "HKST": "HKST", "GMT": "GMT", "SRT": "SRT", "HENOMX": "HENOMX", "LHDT": "LHDT", "MYT": "MYT", "JDT": "JDT", "OESZ": "OESZ", "WESZ": "WESZ", "WARST": "WARST", "GYT": "GYT", "HNEG": "HNEG", "LHST": "LHST", "JST": "JST", "PST": "PST", "AEST": "AEST", "NZST": "NZST", "EDT": "EDT", "HKT": "HKT", "CLT": "CLT", "∅∅∅": "∅∅∅", "PDT": "PDT", "CLST": "CLST", "ECT": "ECT"},
+ }
+ }
+ 
+@@ -135,7 +112,7 @@ func (ta *ta_LK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ta *ta_LK) MonthsAbbreviated() []string {
+- return ta.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -145,7 +122,7 @@ func (ta *ta_LK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ta *ta_LK) MonthsNarrow() []string {
+- return ta.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -155,7 +132,7 @@ func (ta *ta_LK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ta *ta_LK) MonthsWide() []string {
+- return ta.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -201,82 +178,13 @@ func (ta *ta_LK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ta_LK' and handles both Whole and Real numbers based on 'v'
+ func (ta *ta_LK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ta.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, ta.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ta.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ta_LK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ta *ta_LK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ta.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ta.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ta.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ta_LK'
+@@ -284,56 +192,7 @@ func (ta *ta_LK) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ta.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ta.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ta.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ta.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ta.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ta_LK'
+@@ -342,68 +201,7 @@ func (ta *ta_LK) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ta.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ta.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ta.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ta.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ta.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ta.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ta_LK'
+@@ -411,17 +209,6 @@ func (ta *ta_LK) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -430,17 +217,6 @@ func (ta *ta_LK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ta.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,17 +225,6 @@ func (ta *ta_LK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ta.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -468,19 +233,6 @@ func (ta *ta_LK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ta.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ta.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/ta_MY/ta_MY.go b/ta_MY/ta_MY.go
+index 6d99f5c..5db944c 100644
+--- a/ta_MY/ta_MY.go
++++ b/ta_MY/ta_MY.go
+@@ -48,30 +48,11 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{2, 6},
+ pluralsOrdinal: []locales.PluralRule{6},
+ pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "RM", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "S$", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "ஜன.", "பிப்.", "மார்.", "ஏப்.", "மே", "ஜூன்", "ஜூலை", "ஆக.", "செப்.", "அக்.", "நவ.", "டிச."},
+- monthsNarrow: []string{"", "ஜ", "பி", "மா", "ஏ", "மே", "ஜூ", "ஜூ", "ஆ", "செ", "அ", "ந", "டி"},
+- monthsWide: []string{"", "ஜனவரி", "பிப்ரவரி", "மார்ச்", "ஏப்ரல்", "மே", "ஜூன்", "ஜூலை", "ஆகஸ்ட்", "செப்டம்பர்", "அக்டோபர்", "நவம்பர்", "டிசம்பர்"},
+- daysAbbreviated: []string{"ஞாயி.", "திங்.", "செவ்.", "புத.", "வியா.", "வெள்.", "சனி"},
+- daysNarrow: []string{"ஞா", "தி", "செ", "பு", "வி", "வெ", "ச"},
+- daysShort: []string{"ஞா", "தி", "செ", "பு", "வி", "வெ", "ச"},
+- daysWide: []string{"ஞாயிறு", "திங்கள்", "செவ்வாய்", "புதன்", "வியாழன்", "வெள்ளி", "சனி"},
+- periodsAbbreviated: []string{"முற்பகல்", "பிற்பகல்"},
+- periodsNarrow: []string{"மு.ப", "பி.ப"},
+- periodsWide: []string{"முற்பகல்", "பிற்பகல்"},
+- erasAbbreviated: []string{"கி.மு.", "கி.பி."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"கிறிஸ்துவுக்கு முன்", "அன்னோ டோமினி"},
+- timezones: map[string]string{"TMST": "துர்க்மெனிஸ்தான் கோடை நேரம்", "COST": "கொலம்பியா கோடை நேரம்", "EST": "கிழக்கத்திய நிலையான நேரம்", "AEDT": "ஆஸ்திரேலியன் கிழக்கத்திய பகலொளி நேரம்", "SRT": "சுரினாம் நேரம்", "PDT": "பசிபிக் பகலொளி நேரம்", "IST": "இந்திய நிலையான நேரம்", "HNEG": "கிழக்கு கிரீன்லாந்து நிலையான நேரம்", "HAST": "ஹவாய்-அலேஷியன் நிலையான நேரம்", "HEOG": "மேற்கு கிரீன்லாந்து கோடை நேரம்", "HEPM": "செயின்ட் பியரி & மிக்குயிலான் பகலொளி நேரம்", "CAT": "மத்திய ஆப்பிரிக்க நேரம்", "OESZ": "கிழக்கத்திய ஐரோப்பிய கோடை நேரம்", "WIB": "மேற்கத்திய இந்தோனேசிய நேரம்", "WIT": "கிழக்கத்திய இந்தோனேசிய நேரம்", "MST": "மக்காவ் தர நேரம்", "UYST": "உருகுவே கோடை நேரம்", "ACWDT": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய பகலொளி நேரம்", "LHST": "லார்ட் ஹோவ் நிலையான நேரம்", "ChST": "சாமோரோ நிலையான நேரம்", "BOT": "பொலிவியா நேரம்", "HNNOMX": "வடமேற்கு மெக்ஸிகோ நிலையான நேரம்", "MDT": "மக்காவ் கோடை நேரம்", "ADT": "அட்லாண்டிக் பகலொளி நேரம்", "MESZ": "மத்திய ஐரோப்பிய கோடை நேரம்", "HKT": "ஹாங்காங் நிலையான நேரம்", "CHAST": "சத்தாம் நிலையான நேரம்", "∅∅∅": "அமேசான் கோடை நேரம்", "HEEG": "கிழக்கு கிரீன்லாந்து கோடை நேரம்", "WARST": "மேற்கத்திய அர்ஜென்டினா கோடை நேரம்", "HENOMX": "வடமேற்கு மெக்ஸிகோ பகலொளி நேரம்", "HNPMX": "மெக்ஸிகன் பசிபிக் நிலையான நேரம்", "ART": "அர்ஜென்டினா நிலையான நேரம்", "UYT": "உருகுவே நிலையான நேரம்", "MYT": "மலேஷிய நேரம்", "HNT": "நியூஃபவுண்ட்லாந்து நிலையான நேரம்", "AWST": "ஆஸ்திரேலியன் மேற்கத்திய நிலையான நேரம்", "HNPM": "செயின்ட் பியரி & மிக்குயிலான் நிலையான நேரம்", "CHADT": "சத்தாம் பகலொளி நேரம்", "CLST": "சிலி கோடை நேரம்", "JDT": "ஜப்பான் பகலொளி நேரம்", "BT": "பூடான் நேரம்", "ACWST": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய நிலையான நேரம்", "CLT": "சிலி நிலையான நேரம்", "WART": "மேற்கத்திய அர்ஜென்டினா நிலையான நேரம்", "HEPMX": "மெக்ஸிகன் பசிபிக் பகலொளி நேரம்", "AKDT": "அலாஸ்கா பகலொளி நேரம்", "HADT": "ஹவாய்-அலேஷியன் பகலொளி நேரம்", "JST": "ஜப்பான் நிலையான நேரம்", "TMT": "துர்க்மெனிஸ்தான் நிலையான நேரம்", "WAT": "மேற்கு ஆப்பிரிக்க நிலையான நேரம்", "WITA": "மத்திய இந்தோனேசிய நேரம்", "MEZ": "மத்திய ஐரோப்பிய நிலையான நேரம்", "LHDT": "லார்ட் ஹோவ் பகலொளி நேரம்", "ACDT": "ஆஸ்திரேலியன் மத்திய பகலொளி நேரம்", "COT": "கொலம்பியா நிலையான நேரம்", "WESZ": "மேற்கத்திய ஐரோப்பிய கோடை நேரம்", "SGT": "சிங்கப்பூர் நிலையான நேரம்", "HNCU": "கியூபா நிலையான நேரம்", "AKST": "அலாஸ்கா நிலையான நேரம்", "PST": "பசிபிக் நிலையான நேரம்", "NZDT": "நியூசிலாந்து பகலொளி நேரம்", "GMT": "கிரீன்விச் சராசரி நேரம்", "HECU": "கியூபா பகலொளி நேரம்", "EDT": "கிழக்கத்திய பகலொளி நேரம்", "AWDT": "ஆஸ்திரேலியன் மேற்கத்திய பகலொளி நேரம்", "SAST": "தென் ஆப்பிரிக்க நிலையான நேரம்", "WAST": "மேற்கு ஆப்பிரிக்க கோடை நேரம்", "OEZ": "கிழக்கத்திய ஐரோப்பிய நிலையான நேரம்", "CST": "மத்திய நிலையான நேரம்", "CDT": "மத்திய பகலொளி நேரம்", "AEST": "ஆஸ்திரேலியன் கிழக்கத்திய நிலையான நேரம்", "NZST": "நியூசிலாந்து நிலையான நேரம்", "GFT": "ஃபிரஞ்சு கயானா நேரம்", "AST": "அட்லாண்டிக் நிலையான நேரம்", "GYT": "கயானா நேரம்", "HAT": "நியூஃபவுண்ட்லாந்து பகலொளி நேரம்", "HKST": "ஹாங்காங் கோடை நேரம்", "WEZ": "மேற்கத்திய ஐரோப்பிய நிலையான நேரம்", "ARST": "அர்ஜென்டினா கோடை நேரம்", "HNOG": "மேற்கு கிரீன்லாந்து நிலையான நேரம்", "ACST": "ஆஸ்திரேலியன் மத்திய நிலையான நேரம்", "EAT": "கிழக்கு ஆப்பிரிக்க நேரம்", "ECT": "ஈக்வடார் நேரம்", "VET": "வெனிசுலா நேரம்"},
++ timezones: map[string]string{"ADT": "ADT", "HEEG": "HEEG", "GYT": "GYT", "SRT": "SRT", "BOT": "BOT", "GFT": "GFT", "SAST": "SAST", "WITA": "WITA", "MST": "MST", "EAT": "EAT", "IST": "IST", "COST": "COST", "NZST": "NZST", "HNNOMX": "HNNOMX", "UYT": "UYT", "HEPMX": "HEPMX", "WEZ": "WEZ", "MEZ": "MEZ", "ACDT": "ACDT", "CHADT": "CHADT", "PDT": "PDT", "TMT": "TMT", "OEZ": "OEZ", "HNT": "HNT", "COT": "COT", "AST": "AST", "AWDT": "AWDT", "LHDT": "LHDT", "VET": "VET", "WESZ": "WESZ", "CAT": "CAT", "CLT": "CLT", "HNPM": "HNPM", "ACWDT": "ACWDT", "AEDT": "AEDT", "WAST": "WAST", "GMT": "GMT", "MESZ": "MESZ", "HNCU": "HNCU", "TMST": "TMST", "HADT": "HADT", "HNEG": "HNEG", "HEPM": "HEPM", "AKST": "AKST", "AKDT": "AKDT", "WARST": "WARST", "HNOG": "HNOG", "HKT": "HKT", "NZDT": "NZDT", "ART": "ART", "BT": "BT", "ACWST": "ACWST", "HAT": "HAT", "EST": "EST", "HKST": "HKST", "CST": "CST", "HAST": "HAST", "JST": "JST", "AWST": "AWST", "UYST": "UYST", "HNPMX": "HNPMX", "SGT": "SGT", "WIT": "WIT", "CDT": "CDT", "ChST": "ChST", "ARST": "ARST", "JDT": "JDT", "CHAST": "CHAST", "CLST": "CLST", "HENOMX": "HENOMX", "AEST": "AEST", "OESZ": "OESZ", "ECT": "ECT", "WIB": "WIB", "LHST": "LHST", "PST": "PST", "HECU": "HECU", "ACST": "ACST", "MYT": "MYT", "HEOG": "HEOG", "MDT": "MDT", "∅∅∅": "∅∅∅", "WAT": "WAT", "WART": "WART", "EDT": "EDT"},
+ }
+ }
+ 
+@@ -135,7 +116,7 @@ func (ta *ta_MY) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ta *ta_MY) MonthsAbbreviated() []string {
+- return ta.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -145,7 +126,7 @@ func (ta *ta_MY) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ta *ta_MY) MonthsNarrow() []string {
+- return ta.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -155,7 +136,7 @@ func (ta *ta_MY) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ta *ta_MY) MonthsWide() []string {
+- return ta.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -202,7 +183,7 @@ func (ta *ta_MY) WeekdaysWide() []string {
+ func (ta *ta_MY) FmtNumber(num float64, v uint64) string {
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -243,7 +224,7 @@ func (ta *ta_MY) FmtNumber(num float64, v uint64) string {
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ta *ta_MY) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
++ l := len(s) + 0
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -275,7 +256,7 @@ func (ta *ta_MY) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ta.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -337,7 +318,7 @@ func (ta *ta_MY) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ta.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -410,17 +391,6 @@ func (ta *ta_MY) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -429,17 +399,6 @@ func (ta *ta_MY) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ta.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -448,17 +407,6 @@ func (ta *ta_MY) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ta.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -467,19 +415,6 @@ func (ta *ta_MY) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ta.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ta.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -488,29 +423,6 @@ func (ta *ta_MY) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ta.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ta.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -519,36 +431,6 @@ func (ta *ta_MY) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ta.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ta.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -557,40 +439,6 @@ func (ta *ta_MY) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ta.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ta.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -599,44 +447,5 @@ func (ta *ta_MY) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ta.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ta.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ta.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ta_SG/ta_SG.go b/ta_SG/ta_SG.go
+index bcd5640..772f849 100644
+--- a/ta_SG/ta_SG.go
++++ b/ta_SG/ta_SG.go
+@@ -48,30 +48,11 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{2, 6},
+ pluralsOrdinal: []locales.PluralRule{6},
+ pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "RM", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "$", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "US$", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "ஜன.", "பிப்.", "மார்.", "ஏப்.", "மே", "ஜூன்", "ஜூலை", "ஆக.", "செப்.", "அக்.", "நவ.", "டிச."},
+- monthsNarrow: []string{"", "ஜ", "பி", "மா", "ஏ", "மே", "ஜூ", "ஜூ", "ஆ", "செ", "அ", "ந", "டி"},
+- monthsWide: []string{"", "ஜனவரி", "பிப்ரவரி", "மார்ச்", "ஏப்ரல்", "மே", "ஜூன்", "ஜூலை", "ஆகஸ்ட்", "செப்டம்பர்", "அக்டோபர்", "நவம்பர்", "டிசம்பர்"},
+- daysAbbreviated: []string{"ஞாயி.", "திங்.", "செவ்.", "புத.", "வியா.", "வெள்.", "சனி"},
+- daysNarrow: []string{"ஞா", "தி", "செ", "பு", "வி", "வெ", "ச"},
+- daysShort: []string{"ஞா", "தி", "செ", "பு", "வி", "வெ", "ச"},
+- daysWide: []string{"ஞாயிறு", "திங்கள்", "செவ்வாய்", "புதன்", "வியாழன்", "வெள்ளி", "சனி"},
+- periodsAbbreviated: []string{"முற்பகல்", "பிற்பகல்"},
+- periodsNarrow: []string{"மு.ப", "பி.ப"},
+- periodsWide: []string{"முற்பகல்", "பிற்பகல்"},
+- erasAbbreviated: []string{"கி.மு.", "கி.பி."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"கிறிஸ்துவுக்கு முன்", "அன்னோ டோமினி"},
+- timezones: map[string]string{"∅∅∅": "அமேசான் கோடை நேரம்", "GMT": "கிரீன்விச் சராசரி நேரம்", "SGT": "சிங்கப்பூர் நிலையான நேரம்", "HEPM": "செயின்ட் பியரி & மிக்குயிலான் பகலொளி நேரம்", "MEZ": "மத்திய ஐரோப்பிய நிலையான நேரம்", "BOT": "பொலிவியா நேரம்", "TMST": "துர்க்மெனிஸ்தான் கோடை நேரம்", "WAST": "மேற்கு ஆப்பிரிக்க கோடை நேரம்", "ECT": "ஈக்வடார் நேரம்", "UYST": "உருகுவே கோடை நேரம்", "AST": "அட்லாண்டிக் நிலையான நேரம்", "HAST": "ஹவாய்-அலேஷியன் நிலையான நேரம்", "WIT": "கிழக்கத்திய இந்தோனேசிய நேரம்", "SRT": "சுரினாம் நேரம்", "AWDT": "ஆஸ்திரேலியன் மேற்கத்திய பகலொளி நேரம்", "NZST": "நியூசிலாந்து நிலையான நேரம்", "JST": "ஜப்பான் நிலையான நேரம்", "OESZ": "கிழக்கத்திய ஐரோப்பிய கோடை நேரம்", "WARST": "மேற்கத்திய அர்ஜென்டினா கோடை நேரம்", "HADT": "ஹவாய்-அலேஷியன் பகலொளி நேரம்", "WAT": "மேற்கு ஆப்பிரிக்க நிலையான நேரம்", "MDT": "மக்காவ் கோடை நேரம்", "AKST": "அலாஸ்கா நிலையான நேரம்", "ADT": "அட்லாண்டிக் பகலொளி நேரம்", "NZDT": "நியூசிலாந்து பகலொளி நேரம்", "CLST": "சிலி கோடை நேரம்", "CHADT": "சத்தாம் பகலொளி நேரம்", "HNEG": "கிழக்கு கிரீன்லாந்து நிலையான நேரம்", "EAT": "கிழக்கு ஆப்பிரிக்க நேரம்", "HNCU": "கியூபா நிலையான நேரம்", "ART": "அர்ஜென்டினா நிலையான நேரம்", "WITA": "மத்திய இந்தோனேசிய நேரம்", "LHDT": "லார்ட் ஹோவ் பகலொளி நேரம்", "IST": "இந்திய நிலையான நேரம்", "JDT": "ஜப்பான் பகலொளி நேரம்", "WART": "மேற்கத்திய அர்ஜென்டினா நிலையான நேரம்", "HNPMX": "மெக்ஸிகன் பசிபிக் நிலையான நேரம்", "UYT": "உருகுவே நிலையான நேரம்", "AKDT": "அலாஸ்கா பகலொளி நேரம்", "MYT": "மலேஷிய நேரம்", "ARST": "அர்ஜென்டினா கோடை நேரம்", "AWST": "ஆஸ்திரேலியன் மேற்கத்திய நிலையான நேரம்", "MESZ": "மத்திய ஐரோப்பிய கோடை நேரம்", "CHAST": "சத்தாம் நிலையான நேரம்", "COT": "கொலம்பியா நிலையான நேரம்", "EDT": "கிழக்கத்திய பகலொளி நேரம்", "CDT": "மத்திய பகலொளி நேரம்", "ACWST": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய நிலையான நேரம்", "ACWDT": "ஆஸ்திரேலியன் மத்திய மேற்கத்திய பகலொளி நேரம்", "HNPM": "செயின்ட் பியரி & மிக்குயிலான் நிலையான நேரம்", "LHST": "லார்ட் ஹோவ் நிலையான நேரம்", "HEEG": "கிழக்கு கிரீன்லாந்து கோடை நேரம்", "ACDT": "ஆஸ்திரேலியன் மத்திய பகலொளி நேரம்", "EST": "கிழக்கத்திய நிலையான நேரம்", "CAT": "மத்திய ஆப்பிரிக்க நேரம்", "HNNOMX": "வடமேற்கு மெக்ஸிகோ நிலையான நேரம்", "HEPMX": "மெக்ஸிகன் பசிபிக் பகலொளி நேரம்", "CST": "மத்திய நிலையான நேரம்", "WIB": "மேற்கத்திய இந்தோனேசிய நேரம்", "PST": "பசிபிக் நிலையான நேரம்", "HNOG": "மேற்கு கிரீன்லாந்து நிலையான நேரம்", "AEDT": "ஆஸ்திரேலியன் கிழக்கத்திய பகலொளி நேரம்", "ChST": "சாமோரோ நிலையான நேரம்", "GFT": "ஃபிரஞ்சு கயானா நேரம்", "COST": "கொலம்பியா கோடை நேரம்", "HECU": "கியூபா பகலொளி நேரம்", "HKT": "ஹாங்காங் நிலையான நேரம்", "GYT": "கயானா நேரம்", "WEZ": "மேற்கத்திய ஐரோப்பிய நிலையான நேரம்", "HNT": "நியூஃபவுண்ட்லாந்து நிலையான நேரம்", "HAT": "நியூஃபவுண்ட்லாந்து பகலொளி நேரம்", "HEOG": "மேற்கு கிரீன்லாந்து கோடை நேரம்", "HKST": "ஹாங்காங் கோடை நேரம்", "ACST": "ஆஸ்திரேலியன் மத்திய நிலையான நேரம்", "OEZ": "கிழக்கத்திய ஐரோப்பிய நிலையான நேரம்", "HENOMX": "வடமேற்கு மெக்ஸிகோ பகலொளி நேரம்", "MST": "மக்காவ் தர நேரம்", "VET": "வெனிசுலா நேரம்", "WESZ": "மேற்கத்திய ஐரோப்பிய கோடை நேரம்", "AEST": "ஆஸ்திரேலியன் கிழக்கத்திய நிலையான நேரம்", "CLT": "சிலி நிலையான நேரம்", "TMT": "துர்க்மெனிஸ்தான் நிலையான நேரம்", "BT": "பூடான் நேரம்", "PDT": "பசிபிக் பகலொளி நேரம்", "SAST": "தென் ஆப்பிரிக்க நிலையான நேரம்"},
++ timezones: map[string]string{"HNOG": "HNOG", "EST": "EST", "WIB": "WIB", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "MYT": "MYT", "AKDT": "AKDT", "GFT": "GFT", "TMST": "TMST", "CLT": "CLT", "ADT": "ADT", "HAST": "HAST", "WAST": "WAST", "EDT": "EDT", "ACST": "ACST", "AWST": "AWST", "WIT": "WIT", "CAT": "CAT", "GMT": "GMT", "MESZ": "MESZ", "OEZ": "OEZ", "COT": "COT", "∅∅∅": "∅∅∅", "AEST": "AEST", "CHADT": "CHADT", "HECU": "HECU", "AKST": "AKST", "WART": "WART", "ART": "ART", "EAT": "EAT", "HNEG": "HNEG", "JDT": "JDT", "WEZ": "WEZ", "OESZ": "OESZ", "HNT": "HNT", "MEZ": "MEZ", "AWDT": "AWDT", "JST": "JST", "ACWST": "ACWST", "HKT": "HKT", "MST": "MST", "MDT": "MDT", "NZST": "NZST", "NZDT": "NZDT", "BOT": "BOT", "HNPM": "HNPM", "SRT": "SRT", "HADT": "HADT", "SGT": "SGT", "HNCU": "HNCU", "WARST": "WARST", "CLST": "CLST", "WITA": "WITA", "ARST": "ARST", "AEDT": "AEDT", "VET": "VET", "HNPMX": "HNPMX", "WAT": "WAT", "GYT": "GYT", "AST": "AST", "ChST": "ChST", "HEEG": "HEEG", "BT": "BT", "UYST": "UYST", "COST": "COST", "CST": "CST", "HENOMX": "HENOMX", "LHST": "LHST", "HEPM": "HEPM", "UYT": "UYT", "HKST": "HKST", "IST": "IST", "ACWDT": "ACWDT", "CHAST": "CHAST", "HEPMX": "HEPMX", "CDT": "CDT", "LHDT": "LHDT", "PDT": "PDT", "WESZ": "WESZ", "HAT": "HAT", "SAST": "SAST", "HEOG": "HEOG", "TMT": "TMT", "ECT": "ECT", "PST": "PST"},
+ }
+ }
+ 
+@@ -135,7 +116,7 @@ func (ta *ta_SG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ta *ta_SG) MonthsAbbreviated() []string {
+- return ta.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -145,7 +126,7 @@ func (ta *ta_SG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ta *ta_SG) MonthsNarrow() []string {
+- return ta.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -155,7 +136,7 @@ func (ta *ta_SG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ta *ta_SG) MonthsWide() []string {
+- return ta.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -202,7 +183,7 @@ func (ta *ta_SG) WeekdaysWide() []string {
+ func (ta *ta_SG) FmtNumber(num float64, v uint64) string {
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -243,7 +224,7 @@ func (ta *ta_SG) FmtNumber(num float64, v uint64) string {
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ta *ta_SG) FmtPercent(num float64, v uint64) string {
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
++ l := len(s) + 0
+ b := make([]byte, 0, l)
+ 
+ for i := len(s) - 1; i >= 0; i-- {
+@@ -275,7 +256,7 @@ func (ta *ta_SG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ta.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -337,7 +318,7 @@ func (ta *ta_SG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ta.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -410,17 +391,6 @@ func (ta *ta_SG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -429,17 +399,6 @@ func (ta *ta_SG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ta.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -448,17 +407,6 @@ func (ta *ta_SG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ta.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -467,19 +415,6 @@ func (ta *ta_SG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ta.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ta.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -488,29 +423,6 @@ func (ta *ta_SG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ta.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ta.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -519,36 +431,6 @@ func (ta *ta_SG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ta.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ta.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -557,40 +439,6 @@ func (ta *ta_SG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ta.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ta.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -599,44 +447,5 @@ func (ta *ta_SG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, ta.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ta.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ta.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ta.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/te/te.go b/te/te.go
+index f60459d..0859cb0 100644
+--- a/te/te.go
++++ b/te/te.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"క్రీపూ", "క్రీశ"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"క్రీస్తు పూర్వం", "క్రీస్తు శకం"},
+- timezones: map[string]string{"ADT": "అట్లాంటిక్ పగటి సమయం", "WIT": "తూర్పు ఇండోనేషియా సమయం", "HEPM": "సెయింట్ పియర్ మరియు మిక్వెలాన్ పగటి సమయం", "MEZ": "సెంట్రల్ యూరోపియన్ ప్రామాణిక సమయం", "MESZ": "సెంట్రల్ యూరోపియన్ వేసవి సమయం", "CHADT": "చాథమ్ పగటి వెలుతురు సమయం", "SAST": "దక్షిణ ఆఫ్రికా ప్రామాణిక సమయం", "CLT": "చిలీ ప్రామాణిక సమయం", "CAT": "సెంట్రల్ ఆఫ్రికా సమయం", "HNT": "న్యూఫౌండ్ ల్యాండ్ ప్రామాణిక సమయం", "ARST": "ఆర్జెంటీనా వేసవి సమయం", "LHST": "లార్డ్ హోవ్ ప్రామాణిక సమయం", "HENOMX": "వాయవ్య మెక్సికో పగటి సమయం", "MST": "మకావ్ ప్రామాణిక సమయం", "UYT": "ఉరుగ్వే ప్రామాణిక సమయం", "AKST": "అలాస్కా ప్రామాణిక సమయం", "HAST": "హవాయ్-అల్యూషియన్ ప్రామాణిక సమయం", "CHAST": "చాథమ్ ప్రామాణిక సమయం", "ACST": "ఆస్ట్రేలియా మధ్యమ ప్రామాణిక సమయం", "ACDT": "ఆస్ట్రేలియా మధ్యమ పగటి సమయం", "OESZ": "తూర్పు యూరోపియన్ వేసవి సమయం", "AKDT": "అలాస్కా పగటి సమయం", "WIB": "పశ్చిమ ఇండోనేషియా సమయం", "SRT": "సూరినామ్ సమయం", "AEDT": "తూర్పు ఆస్ట్రేలియా పగటి సమయం", "AWDT": "పశ్చిమ ఆస్ట్రేలియన్ పగటి సమయం", "IST": "భారతదేశ సమయం", "GFT": "ఫ్రెంచ్ గయానా సమయం", "HNOG": "పశ్చిమ గ్రీన్\u200cల్యాండ్ ప్రామాణిక సమయం", "PDT": "పసిఫిక్ పగటి సమయం", "∅∅∅": "అమెజాన్ వేసవి సమయం", "BOT": "బొలీవియా సమయం", "WART": "పశ్చిమ అర్జెంటీనా ప్రామాణిక సమయం", "WARST": "పశ్చిమ అర్జెంటీనా వేసవి సమయం", "SGT": "సింగపూర్ ప్రామాణిక సమయం", "VET": "వెనిజులా సమయం", "HKT": "హాంకాంగ్ ప్రామాణిక సమయం", "HKST": "హాంకాంగ్ వేసవి సమయం", "WAT": "పశ్చిమ ఆఫ్రికా ప్రామాణిక సమయం", "HNNOMX": "వాయవ్య మెక్సికో ప్రామాణిక సమయం", "EDT": "తూర్పు పగటి సమయం", "HEPMX": "మెక్సికన్ పసిఫిక్ పగటి సమయం", "WEZ": "పశ్చిమ యూరోపియన్ ప్రామాణిక సమయం", "NZDT": "న్యూజిల్యాండ్ పగటి వెలుతురు సమయం", "WAST": "పశ్చిమ ఆఫ్రికా వేసవి సమయం", "AEST": "తూర్పు ఆస్ట్రేలియా ప్రామాణిక సమయం", "HEEG": "తూర్పు గ్రీన్\u200cల్యాండ్ వేసవి సమయం", "OEZ": "తూర్పు యూరోపియన్ ప్రామాణిక సమయం", "EST": "తూర్పు ప్రామాణిక సమయం", "MDT": "మకావ్ వేసవి సమయం", "HAT": "న్యూఫౌండ్ ల్యాండ్ పగటి సమయం", "NZST": "న్యూజిల్యాండ్ ప్రామాణిక సమయం", "TMST": "తుర్క్మెనిస్థాన్ వేసవి సమయం", "EAT": "తూర్పు ఆఫ్రికా సమయం", "CST": "మధ్యమ ప్రామాణిక సమయం", "WITA": "సెంట్రల్ ఇండోనేషియా సమయం", "HNPMX": "మెక్సికన్ పసిఫిక్ ప్రామాణిక సమయం", "BT": "భూటాన్ సమయం", "PST": "పసిఫిక్ ప్రామాణిక సమయం", "JST": "జపాన్ ప్రామాణిక సమయం", "HNEG": "తూర్పు గ్రీన్\u200cల్యాండ్ ప్రామాణిక సమయం", "HECU": "క్యూబా పగటి సమయం", "ACWST": "మధ్యమ ఆస్ట్రేలియా పశ్చిమ ప్రామాణిక సమయం", "LHDT": "లార్డ్ హోవ్ పగటి సమయం", "CLST": "చిలీ వేసవి సమయం", "ECT": "ఈక్వడార్ సమయం", "COT": "కొలంబియా ప్రామాణిక సమయం", "GYT": "గయానా సమయం", "CDT": "మధ్యమ పగటి సమయం", "HEOG": "పశ్చిమ గ్రీన్\u200cల్యాండ్ వేసవి సమయం", "ChST": "చామర్రో ప్రామాణిక సమయం", "COST": "కొలంబియా వేసవి సమయం", "HNCU": "క్యూబా ప్రామాణిక సమయం", "HNPM": "సెయింట్ పియెర్ మరియు మిక్వెలాన్ ప్రామాణిక సమయం", "JDT": "జపాన్ పగటి వెలుతురు సమయం", "TMT": "తుర్క్మెనిస్థాన్ ప్రామాణిక సమయం", "UYST": "ఉరుగ్వే వేసవి సమయం", "AST": "అట్లాంటిక్ ప్రామాణిక సమయం", "ACWDT": "మధ్యమ ఆస్ట్రేలియన్ పశ్చిమ పగటి సమయం", "AWST": "పశ్చిమ ఆస్ట్రేలియన్ ప్రామాణిక సమయం", "GMT": "గ్రీన్\u200cవిచ్ సగటు సమయం", "MYT": "మలేషియా సమయం", "HADT": "హవాయ్-అల్యూషియన్ పగటి వెలుతురు సమయం", "WESZ": "పశ్చిమ యూరోపియన్ వేసవి సమయం", "ART": "అర్జెంటీనా ప్రామాణిక సమయం"},
++ timezones: map[string]string{"TMST": "తుర్క్మెనిస్థాన్ వేసవి సమయం", "GYT": "గయానా సమయం", "COST": "కొలంబియా వేసవి సమయం", "HNCU": "క్యూబా ప్రామాణిక సమయం", "HECU": "క్యూబా పగటి సమయం", "HNT": "న్యూఫౌండ్ ల్యాండ్ ప్రామాణిక సమయం", "SAST": "దక్షిణ ఆఫ్రికా ప్రామాణిక సమయం", "LHST": "లార్డ్ హోవ్ ప్రామాణిక సమయం", "AWDT": "పశ్చిమ ఆస్ట్రేలియన్ పగటి సమయం", "HEPM": "సెయింట్ పియర్ మరియు మిక్వెలాన్ పగటి సమయం", "UYST": "ఉరుగ్వే వేసవి సమయం", "VET": "వెనిజులా సమయం", "HEPMX": "మెక్సికన్ పసిఫిక్ పగటి సమయం", "WITA": "సెంట్రల్ ఇండోనేషియా సమయం", "ARST": "ఆర్జెంటీనా వేసవి సమయం", "HADT": "హవాయ్-అల్యూషియన్ పగటి వెలుతురు సమయం", "PST": "పసిఫిక్ ప్రామాణిక సమయం", "HKT": "హాంకాంగ్ ప్రామాణిక సమయం", "MDT": "మకావ్ వేసవి సమయం", "NZST": "న్యూజిల్యాండ్ ప్రామాణిక సమయం", "HENOMX": "వాయవ్య మెక్సికో పగటి సమయం", "AWST": "పశ్చిమ ఆస్ట్రేలియన్ ప్రామాణిక సమయం", "JDT": "జపాన్ పగటి వెలుతురు సమయం", "AKDT": "అలాస్కా పగటి సమయం", "OESZ": "తూర్పు యూరోపియన్ వేసవి సమయం", "EDT": "తూర్పు పగటి సమయం", "HKST": "హాంకాంగ్ వేసవి సమయం", "ChST": "చామర్రో ప్రామాణిక సమయం", "BOT": "బొలీవియా సమయం", "SRT": "సూరినామ్ సమయం", "MESZ": "సెంట్రల్ యూరోపియన్ వేసవి సమయం", "MYT": "మలేషియా సమయం", "CHADT": "చాథమ్ పగటి వెలుతురు సమయం", "HEOG": "పశ్చిమ గ్రీన్\u200cల్యాండ్ వేసవి సమయం", "AST": "అట్లాంటిక్ ప్రామాణిక సమయం", "GFT": "ఫ్రెంచ్ గయానా సమయం", "WART": "పశ్చిమ అర్జెంటీనా ప్రామాణిక సమయం", "HAST": "హవాయ్-అల్యూషియన్ ప్రామాణిక సమయం", "IST": "భారతదేశ సమయం", "CAT": "సెంట్రల్ ఆఫ్రికా సమయం", "ART": "అర్జెంటీనా ప్రామాణిక సమయం", "EAT": "తూర్పు ఆఫ్రికా సమయం", "ACWST": "మధ్యమ ఆస్ట్రేలియా పశ్చిమ ప్రామాణిక సమయం", "WEZ": "పశ్చిమ యూరోపియన్ ప్రామాణిక సమయం", "WIT": "తూర్పు ఇండోనేషియా సమయం", "HNOG": "పశ్చిమ గ్రీన్\u200cల్యాండ్ ప్రామాణిక సమయం", "WIB": "పశ్చిమ ఇండోనేషియా సమయం", "HNEG": "తూర్పు గ్రీన్\u200cల్యాండ్ ప్రామాణిక సమయం", "AEST": "తూర్పు ఆస్ట్రేలియా ప్రామాణిక సమయం", "∅∅∅": "బ్రెజిలియా వేసవి సమయం", "ADT": "అట్లాంటిక్ పగటి సమయం", "UYT": "ఉరుగ్వే ప్రామాణిక సమయం", "AEDT": "తూర్పు ఆస్ట్రేలియా పగటి సమయం", "HNPMX": "మెక్సికన్ పసిఫిక్ ప్రామాణిక సమయం", "WAT": "పశ్చిమ ఆఫ్రికా ప్రామాణిక సమయం", "AKST": "అలాస్కా ప్రామాణిక సమయం", "CLT": "చిలీ ప్రామాణిక సమయం", "ACST": "ఆస్ట్రేలియా మధ్యమ ప్రామాణిక సమయం", "HNPM": "సెయింట్ పియెర్ మరియు మిక్వెలాన్ ప్రామాణిక సమయం", "OEZ": "తూర్పు యూరోపియన్ ప్రామాణిక సమయం", "CST": "మధ్యమ ప్రామాణిక సమయం", "CDT": "మధ్యమ పగటి సమయం", "CHAST": "చాథమ్ ప్రామాణిక సమయం", "ACWDT": "మధ్యమ ఆస్ట్రేలియన్ పశ్చిమ పగటి సమయం", "EST": "తూర్పు ప్రామాణిక సమయం", "CLST": "చిలీ వేసవి సమయం", "HEEG": "తూర్పు గ్రీన్\u200cల్యాండ్ వేసవి సమయం", "LHDT": "లార్డ్ హోవ్ పగటి సమయం", "PDT": "పసిఫిక్ పగటి సమయం", "BT": "భూటాన్ సమయం", "TMT": "తుర్క్మెనిస్థాన్ ప్రామాణిక సమయం", "GMT": "గ్రీన్\u200cవిచ్ సగటు సమయం", "MEZ": "సెంట్రల్ యూరోపియన్ ప్రామాణిక సమయం", "ACDT": "ఆస్ట్రేలియా మధ్యమ పగటి సమయం", "JST": "జపాన్ ప్రామాణిక సమయం", "WESZ": "పశ్చిమ యూరోపియన్ వేసవి సమయం", "NZDT": "న్యూజిల్యాండ్ పగటి వెలుతురు సమయం", "ECT": "ఈక్వడార్ సమయం", "SGT": "సింగపూర్ ప్రామాణిక సమయం", "WAST": "పశ్చిమ ఆఫ్రికా వేసవి సమయం", "HAT": "న్యూఫౌండ్ ల్యాండ్ పగటి సమయం", "WARST": "పశ్చిమ అర్జెంటీనా వేసవి సమయం", "MST": "మకావ్ ప్రామాణిక సమయం", "HNNOMX": "వాయవ్య మెక్సికో ప్రామాణిక సమయం", "COT": "కొలంబియా ప్రామాణిక సమయం"},
+ }
+ }
+ 
+diff --git a/te_IN/te_IN.go b/te_IN/te_IN.go
+index 7c72435..275f87e 100644
+--- a/te_IN/te_IN.go
++++ b/te_IN/te_IN.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type te_IN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'te_IN' locale
+ func New() locales.Translator {
+ return &te_IN{
+- locale: "te_IN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "జన", "ఫిబ్ర", "మార్చి", "ఏప్రి", "మే", "జూన్", "జులై", "ఆగ", "సెప్టెం", "అక్టో", "నవం", "డిసెం"},
+- monthsNarrow: []string{"", "జ", "ఫి", "మా", "ఏ", "మే", "జూ", "జు", "ఆ", "సె", "అ", "న", "డి"},
+- monthsWide: []string{"", "జనవరి", "ఫిబ్రవరి", "మార్చి", "ఏప్రిల్", "మే", "జూన్", "జులై", "ఆగస్టు", "సెప్టెంబర్", "అక్టోబర్", "నవంబర్", "డిసెంబర్"},
+- daysAbbreviated: []string{"ఆది", "సోమ", "మంగళ", "బుధ", "గురు", "శుక్ర", "శని"},
+- daysNarrow: []string{"ఆ", "సో", "మ", "బు", "గు", "శు", "శ"},
+- daysShort: []string{"ఆది", "సోమ", "మం", "బుధ", "గురు", "శుక్ర", "శని"},
+- daysWide: []string{"ఆదివారం", "సోమవారం", "మంగళవారం", "బుధవారం", "గురువారం", "శుక్రవారం", "శనివారం"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"ఉ", "సా"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"క్రీపూ", "క్రీశ"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"క్రీస్తు పూర్వం", "క్రీస్తు శకం"},
+- timezones: map[string]string{"GFT": "ఫ్రెంచ్ గయానా సమయం", "WARST": "పశ్చిమ అర్జెంటీనా వేసవి సమయం", "PST": "పసిఫిక్ ప్రామాణిక సమయం", "PDT": "పసిఫిక్ పగటి సమయం", "ACWST": "మధ్యమ ఆస్ట్రేలియా పశ్చిమ ప్రామాణిక సమయం", "AEST": "తూర్పు ఆస్ట్రేలియా ప్రామాణిక సమయం", "AWDT": "పశ్చిమ ఆస్ట్రేలియన్ పగటి సమయం", "NZST": "న్యూజిల్యాండ్ ప్రామాణిక సమయం", "MESZ": "సెంట్రల్ యూరోపియన్ వేసవి సమయం", "CAT": "సెంట్రల్ ఆఫ్రికా సమయం", "COST": "కొలంబియా వేసవి సమయం", "GMT": "గ్రీన్\u200cవిచ్ సగటు సమయం", "HEPMX": "మెక్సికన్ పసిఫిక్ పగటి సమయం", "MYT": "మలేషియా సమయం", "HAST": "హవాయ్-అల్యూషియన్ ప్రామాణిక సమయం", "WITA": "సెంట్రల్ ఇండోనేషియా సమయం", "CHADT": "చాథమ్ పగటి వెలుతురు సమయం", "WAT": "పశ్చిమ ఆఫ్రికా ప్రామాణిక సమయం", "MST": "మకావ్ ప్రామాణిక సమయం", "WIB": "పశ్చిమ ఇండోనేషియా సమయం", "HEPM": "సెయింట్ పియర్ మరియు మిక్వెలాన్ పగటి సమయం", "CDT": "మధ్యమ పగటి సమయం", "HADT": "హవాయ్-అల్యూషియన్ పగటి వెలుతురు సమయం", "NZDT": "న్యూజిల్యాండ్ పగటి వెలుతురు సమయం", "CLST": "చిలీ వేసవి సమయం", "TMST": "తుర్క్మెనిస్థాన్ వేసవి సమయం", "WAST": "పశ్చిమ ఆఫ్రికా వేసవి సమయం", "VET": "వెనిజులా సమయం", "HNPMX": "మెక్సికన్ పసిఫిక్ ప్రామాణిక సమయం", "BOT": "బొలీవియా సమయం", "OEZ": "తూర్పు యూరోపియన్ ప్రామాణిక సమయం", "OESZ": "తూర్పు యూరోపియన్ వేసవి సమయం", "∅∅∅": "పెరూ వేసవి సమయం", "JST": "జపాన్ ప్రామాణిక సమయం", "ChST": "చామర్రో ప్రామాణిక సమయం", "TMT": "తుర్క్మెనిస్థాన్ ప్రామాణిక సమయం", "EST": "తూర్పు ప్రామాణిక సమయం", "MDT": "మకావ్ వేసవి సమయం", "AKDT": "అలాస్కా పగటి సమయం", "WEZ": "పశ్చిమ యూరోపియన్ ప్రామాణిక సమయం", "HAT": "న్యూఫౌండ్ ల్యాండ్ పగటి సమయం", "HNEG": "తూర్పు గ్రీన్\u200cల్యాండ్ ప్రామాణిక సమయం", "IST": "భారతదేశ సమయం", "HNCU": "క్యూబా ప్రామాణిక సమయం", "HECU": "క్యూబా పగటి సమయం", "AKST": "అలాస్కా ప్రామాణిక సమయం", "WESZ": "పశ్చిమ యూరోపియన్ వేసవి సమయం", "AWST": "పశ్చిమ ఆస్ట్రేలియన్ ప్రామాణిక సమయం", "HKT": "హాంకాంగ్ ప్రామాణిక సమయం", "CHAST": "చాథమ్ ప్రామాణిక సమయం", "CLT": "చిలీ ప్రామాణిక సమయం", "HNOG": "పశ్చిమ గ్రీన్\u200cల్యాండ్ ప్రామాణిక సమయం", "HNPM": "సెయింట్ పియెర్ మరియు మిక్వెలాన్ ప్రామాణిక సమయం", "LHST": "లార్డ్ హోవ్ ప్రామాణిక సమయం", "LHDT": "లార్డ్ హోవ్ పగటి సమయం", "JDT": "జపాన్ పగటి వెలుతురు సమయం", "GYT": "గయానా సమయం", "WIT": "తూర్పు ఇండోనేషియా సమయం", "ART": "అర్జెంటీనా ప్రామాణిక సమయం", "HEOG": "పశ్చిమ గ్రీన్\u200cల్యాండ్ వేసవి సమయం", "HNNOMX": "వాయవ్య మెక్సికో ప్రామాణిక సమయం", "UYT": "ఉరుగ్వే ప్రామాణిక సమయం", "ACST": "ఆస్ట్రేలియా మధ్యమ ప్రామాణిక సమయం", "EAT": "తూర్పు ఆఫ్రికా సమయం", "ACWDT": "మధ్యమ ఆస్ట్రేలియన్ పశ్చిమ పగటి సమయం", "HNT": "న్యూఫౌండ్ ల్యాండ్ ప్రామాణిక సమయం", "AEDT": "తూర్పు ఆస్ట్రేలియా పగటి సమయం", "SAST": "దక్షిణ ఆఫ్రికా ప్రామాణిక సమయం", "SRT": "సూరినామ్ సమయం", "ACDT": "ఆస్ట్రేలియా మధ్యమ పగటి సమయం", "ECT": "ఈక్వడార్ సమయం", "HENOMX": "వాయవ్య మెక్సికో పగటి సమయం", "SGT": "సింగపూర్ ప్రామాణిక సమయం", "CST": "మధ్యమ ప్రామాణిక సమయం", "AST": "అట్లాంటిక్ ప్రామాణిక సమయం", "BT": "భూటాన్ సమయం", "HKST": "హాంకాంగ్ వేసవి సమయం", "MEZ": "సెంట్రల్ యూరోపియన్ ప్రామాణిక సమయం", "COT": "కొలంబియా ప్రామాణిక సమయం", "EDT": "తూర్పు పగటి సమయం", "ARST": "ఆర్జెంటీనా వేసవి సమయం", "WART": "పశ్చిమ అర్జెంటీనా ప్రామాణిక సమయం", "ADT": "అట్లాంటిక్ పగటి సమయం", "UYST": "ఉరుగ్వే వేసవి సమయం", "HEEG": "తూర్పు గ్రీన్\u200cల్యాండ్ వేసవి సమయం"},
++ locale: "te_IN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEPMX": "HEPMX", "WARST": "WARST", "CAT": "CAT", "CLST": "CLST", "CST": "CST", "MST": "MST", "PDT": "PDT", "UYST": "UYST", "WESZ": "WESZ", "GYT": "GYT", "WIB": "WIB", "MDT": "MDT", "HAST": "HAST", "HADT": "HADT", "HNNOMX": "HNNOMX", "JDT": "JDT", "OESZ": "OESZ", "HKT": "HKT", "ART": "ART", "HEEG": "HEEG", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "OEZ": "OEZ", "HEOG": "HEOG", "EDT": "EDT", "CDT": "CDT", "ARST": "ARST", "HENOMX": "HENOMX", "CHAST": "CHAST", "UYT": "UYT", "ChST": "ChST", "JST": "JST", "PST": "PST", "AEDT": "AEDT", "WEZ": "WEZ", "SAST": "SAST", "AWST": "AWST", "ACST": "ACST", "AKST": "AKST", "COST": "COST", "SRT": "SRT", "IST": "IST", "BT": "BT", "HNPMX": "HNPMX", "WAT": "WAT", "COT": "COT", "EST": "EST", "HKST": "HKST", "LHDT": "LHDT", "AWDT": "AWDT", "MYT": "MYT", "AKDT": "AKDT", "HNOG": "HNOG", "EAT": "EAT", "HNEG": "HNEG", "HNPM": "HNPM", "ACWDT": "ACWDT", "AEST": "AEST", "CHADT": "CHADT", "VET": "VET", "CLT": "CLT", "MESZ": "MESZ", "ECT": "ECT", "NZDT": "NZDT", "WIT": "WIT", "HNT": "HNT", "WITA": "WITA", "BOT": "BOT", "MEZ": "MEZ", "ACDT": "ACDT", "HEPM": "HEPM", "WART": "WART", "TMT": "TMT", "GMT": "GMT", "SGT": "SGT", "GFT": "GFT", "NZST": "NZST", "ADT": "ADT", "HAT": "HAT", "AST": "AST", "ACWST": "ACWST", "HECU": "HECU", "WAST": "WAST", "TMST": "TMST", "LHST": "LHST"},
+ }
+ }
+ 
+@@ -135,7 +112,7 @@ func (te *te_IN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (te *te_IN) MonthsAbbreviated() []string {
+- return te.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -145,7 +122,7 @@ func (te *te_IN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (te *te_IN) MonthsNarrow() []string {
+- return te.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -155,7 +132,7 @@ func (te *te_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (te *te_IN) MonthsWide() []string {
+- return te.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -201,82 +178,13 @@ func (te *te_IN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'te_IN' and handles both Whole and Real numbers based on 'v'
+ func (te *te_IN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, te.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, te.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, te.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'te_IN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (te *te_IN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, te.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, te.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, te.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'te_IN'
+@@ -284,65 +192,7 @@ func (te *te_IN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := te.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, te.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, te.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, te.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, te.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'te_IN'
+@@ -351,77 +201,7 @@ func (te *te_IN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := te.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- inSecondary := false
+- groupThreshold := 3
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, te.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+-
+- if count == groupThreshold {
+- b = append(b, te.group[0])
+- count = 1
+-
+- if !inSecondary {
+- inSecondary = true
+- groupThreshold = 2
+- }
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, te.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, te.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, te.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'te_IN'
+@@ -429,27 +209,6 @@ func (te *te_IN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -458,17 +217,6 @@ func (te *te_IN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, te.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -477,17 +225,6 @@ func (te *te_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, te.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -496,20 +233,6 @@ func (te *te_IN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, te.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, te.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -518,28 +241,6 @@ func (te *te_IN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, te.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, te.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, te.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -548,35 +249,6 @@ func (te *te_IN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, te.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, te.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, te.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, te.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -585,40 +257,6 @@ func (te *te_IN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, te.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, te.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, te.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, te.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -627,44 +265,5 @@ func (te *te_IN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, te.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, te.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, te.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, te.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := te.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/teo/teo.go b/teo/teo.go
+index 1e00e05..1601430 100644
+--- a/teo/teo.go
++++ b/teo/teo.go
+@@ -63,7 +63,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"KK", "BK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kabla ya Christo", "Baada ya Christo"},
+- timezones: map[string]string{"HKST": "HKST", "OEZ": "OEZ", "COST": "COST", "EST": "EST", "ART": "ART", "HNOG": "HNOG", "∅∅∅": "∅∅∅", "WART": "WART", "SGT": "SGT", "EDT": "EDT", "HADT": "HADT", "VET": "VET", "PST": "PST", "ChST": "ChST", "ACST": "ACST", "EAT": "EAT", "HNCU": "HNCU", "HNPMX": "HNPMX", "WIT": "WIT", "PDT": "PDT", "ACWST": "ACWST", "WITA": "WITA", "COT": "COT", "AKST": "AKST", "ARST": "ARST", "HKT": "HKT", "CAT": "CAT", "WAT": "WAT", "MST": "MST", "WIB": "WIB", "NZDT": "NZDT", "WAST": "WAST", "SRT": "SRT", "AEST": "AEST", "CHAST": "CHAST", "AST": "AST", "HEEG": "HEEG", "ACDT": "ACDT", "WESZ": "WESZ", "HEPM": "HEPM", "CHADT": "CHADT", "LHST": "LHST", "LHDT": "LHDT", "CLT": "CLT", "AKDT": "AKDT", "HNT": "HNT", "ACWDT": "ACWDT", "AWDT": "AWDT", "MESZ": "MESZ", "NZST": "NZST", "IST": "IST", "WEZ": "WEZ", "AEDT": "AEDT", "TMST": "TMST", "GYT": "GYT", "CST": "CST", "CDT": "CDT", "HAT": "HAT", "JST": "JST", "HNEG": "HNEG", "WARST": "WARST", "GMT": "GMT", "MDT": "MDT", "HEPMX": "HEPMX", "BT": "BT", "AWST": "AWST", "HNPM": "HNPM", "SAST": "SAST", "CLST": "CLST", "TMT": "TMT", "ECT": "ECT", "JDT": "JDT", "OESZ": "OESZ", "HENOMX": "HENOMX", "HECU": "HECU", "UYT": "UYT", "UYST": "UYST", "GFT": "GFT", "MYT": "MYT", "HAST": "HAST", "HEOG": "HEOG", "MEZ": "MEZ", "BOT": "BOT", "HNNOMX": "HNNOMX", "ADT": "ADT"},
++ timezones: map[string]string{"HNPMX": "HNPMX", "AKST": "AKST", "CLT": "CLT", "CLST": "CLST", "NZDT": "NZDT", "JST": "JST", "ACWDT": "ACWDT", "WEZ": "WEZ", "WARST": "WARST", "ECT": "ECT", "LHST": "LHST", "LHDT": "LHDT", "GFT": "GFT", "AEST": "AEST", "SGT": "SGT", "WAST": "WAST", "HADT": "HADT", "AWST": "AWST", "IST": "IST", "GMT": "GMT", "HNNOMX": "HNNOMX", "SAST": "SAST", "CST": "CST", "HNPM": "HNPM", "WESZ": "WESZ", "WIT": "WIT", "COT": "COT", "EDT": "EDT", "MDT": "MDT", "SRT": "SRT", "HENOMX": "HENOMX", "ART": "ART", "ARST": "ARST", "MYT": "MYT", "HECU": "HECU", "HKT": "HKT", "TMT": "TMT", "AEDT": "AEDT", "WART": "WART", "HKST": "HKST", "MST": "MST", "∅∅∅": "∅∅∅", "PST": "PST", "NZST": "NZST", "AST": "AST", "HNCU": "HNCU", "OESZ": "OESZ", "GYT": "GYT", "VET": "VET", "HAT": "HAT", "HEOG": "HEOG", "CDT": "CDT", "MEZ": "MEZ", "PDT": "PDT", "ACWST": "ACWST", "AKDT": "AKDT", "CAT": "CAT", "ADT": "ADT", "HAST": "HAST", "AWDT": "AWDT", "CHAST": "CHAST", "HEPM": "HEPM", "OEZ": "OEZ", "HNT": "HNT", "EAT": "EAT", "ACST": "ACST", "HNEG": "HNEG", "CHADT": "CHADT", "HEPMX": "HEPMX", "WIB": "WIB", "ChST": "ChST", "BOT": "BOT", "MESZ": "MESZ", "HEEG": "HEEG", "HNOG": "HNOG", "JDT": "JDT", "UYST": "UYST", "BT": "BT", "COST": "COST", "EST": "EST", "TMST": "TMST", "WITA": "WITA", "ACDT": "ACDT", "UYT": "UYT", "WAT": "WAT"},
+ }
+ }
+ 
+diff --git a/teo_KE/teo_KE.go b/teo_KE/teo_KE.go
+index e27d25c..3104167 100644
+--- a/teo_KE/teo_KE.go
++++ b/teo_KE/teo_KE.go
+@@ -10,60 +10,45 @@ import (
+ )
+ 
+ type teo_KE struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'teo_KE' locale
+ func New() locales.Translator {
+ return &teo_KE{
+- locale: "teo_KE",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "Ksh", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Rar", "Muk", "Kwa", "Dun", "Mar", "Mod", "Jol", "Ped", "Sok", "Tib", "Lab", "Poo"},
+- monthsNarrow: []string{"", "R", "M", "K", "D", "M", "M", "J", "P", "S", "T", "L", "P"},
+- monthsWide: []string{"", "Orara", "Omuk", "Okwamg’", "Odung’el", "Omaruk", "Omodok’king’ol", "Ojola", "Opedel", "Osokosokoma", "Otibar", "Olabor", "Opoo"},
+- daysAbbreviated: []string{"Jum", "Bar", "Aar", "Uni", "Ung", "Kan", "Sab"},
+- daysNarrow: []string{"J", "B", "A", "U", "U", "K", "S"},
+- daysWide: []string{"Nakaejuma", "Nakaebarasa", "Nakaare", "Nakauni", "Nakaung’on", "Nakakany", "Nakasabiti"},
+- periodsAbbreviated: []string{"Taparachu", "Ebongi"},
+- periodsWide: []string{"Taparachu", "Ebongi"},
+- erasAbbreviated: []string{"KK", "BK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kabla ya Christo", "Baada ya Christo"},
+- timezones: map[string]string{"AWDT": "AWDT", "HKST": "HKST", "UYT": "UYT", "WIT": "WIT", "SRT": "SRT", "WITA": "WITA", "ChST": "ChST", "WAST": "WAST", "OEZ": "OEZ", "MST": "MST", "WIB": "WIB", "PST": "PST", "MESZ": "MESZ", "WAT": "WAT", "TMT": "TMT", "HNNOMX": "HNNOMX", "NZST": "NZST", "JDT": "JDT", "HNEG": "HNEG", "CAT": "CAT", "GMT": "GMT", "CST": "CST", "HEOG": "HEOG", "HAT": "HAT", "CHAST": "CHAST", "JST": "JST", "WART": "WART", "EST": "EST", "GYT": "GYT", "HAST": "HAST", "WEZ": "WEZ", "ACWST": "ACWST", "SAST": "SAST", "ECT": "ECT", "SGT": "SGT", "WESZ": "WESZ", "MEZ": "MEZ", "ACST": "ACST", "PDT": "PDT", "EAT": "EAT", "HENOMX": "HENOMX", "ADT": "ADT", "BT": "BT", "ACWDT": "ACWDT", "AEST": "AEST", "CLT": "CLT", "EDT": "EDT", "HNCU": "HNCU", "AKDT": "AKDT", "HADT": "HADT", "HNOG": "HNOG", "ARST": "ARST", "CLST": "CLST", "OESZ": "OESZ", "COT": "COT", "AKST": "AKST", "CDT": "CDT", "LHDT": "LHDT", "TMST": "TMST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "IST": "IST", "GFT": "GFT", "HECU": "HECU", "AEDT": "AEDT", "AWST": "AWST", "HEEG": "HEEG", "ACDT": "ACDT", "ART": "ART", "LHST": "LHST", "∅∅∅": "∅∅∅", "HKT": "HKT", "HNPM": "HNPM", "HEPM": "HEPM", "CHADT": "CHADT", "HNT": "HNT", "WARST": "WARST", "COST": "COST", "MDT": "MDT", "MYT": "MYT", "UYST": "UYST", "AST": "AST", "NZDT": "NZDT", "BOT": "BOT", "VET": "VET"},
++ locale: "teo_KE",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "Ksh", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"TMT": "TMT", "MST": "MST", "AST": "AST", "ACWST": "ACWST", "WIT": "WIT", "HNT": "HNT", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "CST": "CST", "LHST": "LHST", "EAT": "EAT", "WAT": "WAT", "COT": "COT", "HKT": "HKT", "HKST": "HKST", "SRT": "SRT", "ChST": "ChST", "GMT": "GMT", "HAST": "HAST", "ACDT": "ACDT", "OESZ": "OESZ", "GFT": "GFT", "GYT": "GYT", "ECT": "ECT", "AKST": "AKST", "HEPM": "HEPM", "JST": "JST", "AEST": "AEST", "PST": "PST", "UYST": "UYST", "VET": "VET", "HECU": "HECU", "HEPMX": "HEPMX", "HAT": "HAT", "NZST": "NZST", "NZDT": "NZDT", "ACWDT": "ACWDT", "WAST": "WAST", "AEDT": "AEDT", "CHADT": "CHADT", "IST": "IST", "WEZ": "WEZ", "OEZ": "OEZ", "HADT": "HADT", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "CAT": "CAT", "ARST": "ARST", "ACST": "ACST", "AKDT": "AKDT", "TMST": "TMST", "WART": "WART", "SAST": "SAST", "HNPMX": "HNPMX", "CHAST": "CHAST", "WESZ": "WESZ", "WARST": "WARST", "HEEG": "HEEG", "MEZ": "MEZ", "AWDT": "AWDT", "WIB": "WIB", "CDT": "CDT", "ADT": "ADT", "BT": "BT", "PDT": "PDT", "COST": "COST", "BOT": "BOT", "MESZ": "MESZ", "AWST": "AWST", "MYT": "MYT", "HNOG": "HNOG", "CLT": "CLT", "MDT": "MDT", "ART": "ART", "HENOMX": "HENOMX", "JDT": "JDT", "LHDT": "LHDT", "EST": "EST", "CLST": "CLST", "WITA": "WITA", "HNEG": "HNEG", "EDT": "EDT", "UYT": "UYT", "SGT": "SGT"},
+ }
+ }
+ 
+@@ -116,7 +101,7 @@ func (teo *teo_KE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (teo *teo_KE) MonthsAbbreviated() []string {
+- return teo.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -126,7 +111,7 @@ func (teo *teo_KE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (teo *teo_KE) MonthsNarrow() []string {
+- return teo.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -136,7 +121,7 @@ func (teo *teo_KE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (teo *teo_KE) MonthsWide() []string {
+- return teo.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -196,56 +181,7 @@ func (teo *teo_KE) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := teo.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, teo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, teo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, teo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, teo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'teo_KE'
+@@ -254,68 +190,7 @@ func (teo *teo_KE) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := teo.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, teo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, teo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, teo.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, teo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, teo.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'teo_KE'
+@@ -323,27 +198,6 @@ func (teo *teo_KE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -352,17 +206,6 @@ func (teo *teo_KE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, teo.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -371,17 +214,6 @@ func (teo *teo_KE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, teo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -390,19 +222,6 @@ func (teo *teo_KE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, teo.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, teo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -411,19 +230,6 @@ func (teo *teo_KE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, teo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -432,26 +238,6 @@ func (teo *teo_KE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, teo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, teo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -460,30 +246,6 @@ func (teo *teo_KE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, teo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, teo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -492,34 +254,5 @@ func (teo *teo_KE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, teo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, teo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := teo.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/teo_UG/teo_UG.go b/teo_UG/teo_UG.go
+index 3196e39..f75b7bb 100644
+--- a/teo_UG/teo_UG.go
++++ b/teo_UG/teo_UG.go
+@@ -10,60 +10,45 @@ import (
+ )
+ 
+ type teo_UG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'teo_UG' locale
+ func New() locales.Translator {
+ return &teo_UG{
+- locale: "teo_UG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Rar", "Muk", "Kwa", "Dun", "Mar", "Mod", "Jol", "Ped", "Sok", "Tib", "Lab", "Poo"},
+- monthsNarrow: []string{"", "R", "M", "K", "D", "M", "M", "J", "P", "S", "T", "L", "P"},
+- monthsWide: []string{"", "Orara", "Omuk", "Okwamg’", "Odung’el", "Omaruk", "Omodok’king’ol", "Ojola", "Opedel", "Osokosokoma", "Otibar", "Olabor", "Opoo"},
+- daysAbbreviated: []string{"Jum", "Bar", "Aar", "Uni", "Ung", "Kan", "Sab"},
+- daysNarrow: []string{"J", "B", "A", "U", "U", "K", "S"},
+- daysWide: []string{"Nakaejuma", "Nakaebarasa", "Nakaare", "Nakauni", "Nakaung’on", "Nakakany", "Nakasabiti"},
+- periodsAbbreviated: []string{"Taparachu", "Ebongi"},
+- periodsWide: []string{"Taparachu", "Ebongi"},
+- erasAbbreviated: []string{"KK", "BK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kabla ya Christo", "Baada ya Christo"},
+- timezones: map[string]string{"MDT": "MDT", "COST": "COST", "UYT": "UYT", "AST": "AST", "BT": "BT", "WITA": "WITA", "SAST": "SAST", "JST": "JST", "VET": "VET", "PST": "PST", "ACWDT": "ACWDT", "CHAST": "CHAST", "WAST": "WAST", "WEZ": "WEZ", "HNT": "HNT", "CLST": "CLST", "WAT": "WAT", "UYST": "UYST", "MYT": "MYT", "MST": "MST", "ADT": "ADT", "HAST": "HAST", "WIT": "WIT", "HKT": "HKT", "NZDT": "NZDT", "ACST": "ACST", "ACDT": "ACDT", "OEZ": "OEZ", "SRT": "SRT", "ARST": "ARST", "HEEG": "HEEG", "HAT": "HAT", "AWDT": "AWDT", "CHADT": "CHADT", "TMT": "TMT", "EAT": "EAT", "HNCU": "HNCU", "CDT": "CDT", "HNPM": "HNPM", "LHST": "LHST", "LHDT": "LHDT", "IST": "IST", "OESZ": "OESZ", "HADT": "HADT", "PDT": "PDT", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "BOT": "BOT", "TMST": "TMST", "CAT": "CAT", "SGT": "SGT", "HECU": "HECU", "HEPMX": "HEPMX", "ART": "ART", "AWST": "AWST", "HNPMX": "HNPMX", "CST": "CST", "GYT": "GYT", "WIB": "WIB", "HNOG": "HNOG", "HKST": "HKST", "HEPM": "HEPM", "WARST": "WARST", "ACWST": "ACWST", "MEZ": "MEZ", "COT": "COT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AKST": "AKST", "WESZ": "WESZ", "CLT": "CLT", "GFT": "GFT", "ECT": "ECT", "WART": "WART", "AKDT": "AKDT", "HNEG": "HNEG", "GMT": "GMT", "EST": "EST", "EDT": "EDT", "HEOG": "HEOG", "AEST": "AEST", "AEDT": "AEDT", "NZST": "NZST", "JDT": "JDT", "ChST": "ChST"},
++ locale: "teo_UG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"COST": "COST", "ART": "ART", "HNPM": "HNPM", "OESZ": "OESZ", "WART": "WART", "EST": "EST", "TMST": "TMST", "ChST": "ChST", "BOT": "BOT", "UYT": "UYT", "VET": "VET", "HNPMX": "HNPMX", "AKST": "AKST", "AKDT": "AKDT", "GYT": "GYT", "AWST": "AWST", "EDT": "EDT", "CLST": "CLST", "IST": "IST", "BT": "BT", "HAT": "HAT", "HKT": "HKT", "TMT": "TMT", "ECT": "ECT", "MESZ": "MESZ", "AEDT": "AEDT", "HECU": "HECU", "GFT": "GFT", "COT": "COT", "HKST": "HKST", "CAT": "CAT", "WITA": "WITA", "GMT": "GMT", "HAST": "HAST", "JDT": "JDT", "ACWST": "ACWST", "AEST": "AEST", "CHADT": "CHADT", "ADT": "ADT", "MEZ": "MEZ", "AWDT": "AWDT", "HNT": "HNT", "EAT": "EAT", "ACDT": "ACDT", "SGT": "SGT", "ACST": "ACST", "PDT": "PDT", "UYST": "UYST", "WAST": "WAST", "OEZ": "OEZ", "SAST": "SAST", "CST": "CST", "SRT": "SRT", "HNEG": "HNEG", "LHST": "LHST", "MYT": "MYT", "JST": "JST", "WESZ": "WESZ", "WIT": "WIT", "∅∅∅": "∅∅∅", "ARST": "ARST", "WAT": "WAT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "HNCU": "HNCU", "HADT": "HADT", "PST": "PST", "CHAST": "CHAST", "WARST": "WARST", "CDT": "CDT", "MST": "MST", "WIB": "WIB", "AST": "AST", "LHDT": "LHDT", "MDT": "MDT", "NZDT": "NZDT", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "WEZ": "WEZ", "HNOG": "HNOG", "HEOG": "HEOG", "CLT": "CLT", "NZST": "NZST", "HEPMX": "HEPMX"},
+ }
+ }
+ 
+@@ -116,7 +101,7 @@ func (teo *teo_UG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (teo *teo_UG) MonthsAbbreviated() []string {
+- return teo.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -126,7 +111,7 @@ func (teo *teo_UG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (teo *teo_UG) MonthsNarrow() []string {
+- return teo.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -136,7 +121,7 @@ func (teo *teo_UG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (teo *teo_UG) MonthsWide() []string {
+- return teo.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -196,56 +181,7 @@ func (teo *teo_UG) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := teo.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, teo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, teo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, teo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, teo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'teo_UG'
+@@ -254,68 +190,7 @@ func (teo *teo_UG) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := teo.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, teo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, teo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, teo.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, teo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, teo.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'teo_UG'
+@@ -323,27 +198,6 @@ func (teo *teo_UG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -352,17 +206,6 @@ func (teo *teo_UG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, teo.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -371,17 +214,6 @@ func (teo *teo_UG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, teo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -390,19 +222,6 @@ func (teo *teo_UG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, teo.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, teo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -411,19 +230,6 @@ func (teo *teo_UG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, teo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -432,26 +238,6 @@ func (teo *teo_UG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, teo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, teo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -460,30 +246,6 @@ func (teo *teo_UG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, teo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, teo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -492,34 +254,5 @@ func (teo *teo_UG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, teo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, teo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := teo.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/th/th.go b/th/th.go
+index 097c7d6..95f53bc 100644
+--- a/th/th.go
++++ b/th/th.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ปีก่อน ค.ศ.", "ค.ศ."},
+ erasNarrow: []string{"ก่อน ค.ศ.", "ค.ศ."},
+ erasWide: []string{"ปีก่อนคริสต์ศักราช", "คริสต์ศักราช"},
+- timezones: map[string]string{"IST": "เวลาอินเดีย", "SGT": "เวลาสิงคโปร์", "CDT": "เวลาออมแสงตอนกลางในอเมริกาเหนือ", "BT": "เวลาภูฏาน", "AEDT": "เวลาออมแสงทางตะวันออกของออสเตรเลีย", "AWST": "เวลามาตรฐานทางตะวันตกของออสเตรเลีย", "CHADT": "เวลาออมแสงแชทัม", "BOT": "เวลาโบลิเวีย", "LHDT": "เวลาออมแสงลอร์ดโฮว์", "CLST": "เวลาฤดูร้อนชิลี", "ChST": "เวลาชามอร์โร", "WARST": "เวลาฤดูร้อนทางตะวันตกของอาร์เจนตินา", "MDT": "เวลาฤดูร้อนมาเก๊า", "CST": "เวลามาตรฐานตอนกลางในอเมริกาเหนือ", "UYT": "เวลามาตรฐานอุรุกวัย", "SRT": "เวลาซูรินาเม", "ARST": "เวลาฤดูร้อนอาร์เจนตินา", "HKT": "เวลามาตรฐานฮ่องกง", "GFT": "เวลาเฟรนช์เกียนา", "HEPMX": "เวลาออมแสงแปซิฟิกเม็กซิโก", "ECT": "เวลาเอกวาดอร์", "WART": "เวลามาตรฐานทางตะวันตกของอาร์เจนตินา", "HADT": "เวลาออมแสงฮาวาย-อะลูเชียน", "HEOG": "เวลาฤดูร้อนกรีนแลนด์ตะวันตก", "WITA": "เวลาอินโดนีเซียตอนกลาง", "MESZ": "เวลาฤดูร้อนยุโรปกลาง", "HNEG": "เวลามาตรฐานกรีนแลนด์ตะวันออก", "HKST": "เวลาฤดูร้อนฮ่องกง", "∅∅∅": "เวลาฤดูร้อนแอมะซอน", "COT": "เวลามาตรฐานโคลอมเบีย", "LHST": "เวลามาตรฐานลอร์ดโฮว์", "JDT": "เวลาออมแสงญี่ปุ่น", "GMT": "เวลามาตรฐานกรีนิช", "HAST": "เวลามาตรฐานฮาวาย-อะลูเชียน", "ACWDT": "เวลาออมแสงทางตะวันตกตอนกลางของออสเตรเลีย", "ART": "เวลามาตรฐานอาร์เจนตินา", "WEZ": "เวลามาตรฐานยุโรปตะวันตก", "AEST": "เวลามาตรฐานทางตะวันออกของออสเตรเลีย", "ADT": "เวลาออมแสงของแอตแลนติก", "MST": "เวลามาตรฐานมาเก๊า", "MYT": "เวลามาเลเซีย", "EDT": "เวลาออมแสงทางตะวันออกในอเมริกาเหนือ", "AKST": "เวลามาตรฐานอะแลสกา", "VET": "เวลาเวเนซุเอลา", "TMST": "เวลาฤดูร้อนเติร์กเมนิสถาน", "WAST": "เวลาฤดูร้อนแอฟริกาตะวันตก", "OESZ": "เวลาฤดูร้อนยุโรปตะวันออก", "EAT": "เวลาแอฟริกาตะวันออก", "HNT": "เวลามาตรฐานนิวฟันด์แลนด์", "PST": "เวลามาตรฐานแปซิฟิกในอเมริกาเหนือ", "WESZ": "เวลาฤดูร้อนยุโรปตะวันตก", "AST": "เวลามาตรฐานแอตแลนติก", "UYST": "เวลาฤดูร้อนอุรุกวัย", "HNPM": "เวลามาตรฐานแซงปีแยร์และมีเกอลง", "ACST": "เวลามาตรฐานทางตอนกลางของออสเตรเลีย", "WAT": "เวลามาตรฐานแอฟริกาตะวันตก", "HNNOMX": "เวลามาตรฐานเม็กซิโกตะวันตกเฉียงเหนือ", "AKDT": "เวลาออมแสงของอะแลสกา", "WIT": "เวลาอินโดนีเซียฝั่งตะวันออก", "ACWST": "เวลามาตรฐานทางตะวันตกตอนกลางของออสเตรเลีย", "PDT": "เวลาออมแสงแปซิฟิกในอเมริกาเหนือ", "ACDT": "เวลาออมแสงทางตอนกลางของออสเตรเลีย", "COST": "เวลาฤดูร้อนโคลอมเบีย", "HAT": "เวลาออมแสงนิวฟันด์แลนด์", "AWDT": "เวลาออมแสงทางตะวันตกของออสเตรเลีย", "CHAST": "เวลามาตรฐานแชทัม", "HECU": "เวลาออมแสงของคิวบา", "GYT": "เวลากายอานา", "HNOG": "เวลามาตรฐานกรีนแลนด์ตะวันตก", "MEZ": "เวลามาตรฐานยุโรปกลาง", "SAST": "เวลาแอฟริกาใต้", "HEEG": "เวลาฤดูร้อนกรีนแลนด์ตะวันออก", "HNPMX": "เวลามาตรฐานแปซิฟิกเม็กซิโก", "WIB": "เวลาอินโดนีเซียฝั่งตะวันตก", "NZST": "เวลามาตรฐานนิวซีแลนด์", "OEZ": "เวลามาตรฐานยุโรปตะวันออก", "CAT": "เวลาแอฟริกากลาง", "HENOMX": "เวลาออมแสงเม็กซิโกตะวันตกเฉียงเหนือ", "HNCU": "เวลามาตรฐานคิวบา", "EST": "เวลามาตรฐานทางตะวันออกในอเมริกาเหนือ", "HEPM": "เวลาออมแสงของแซงปีแยร์และมีเกอลง", "NZDT": "เวลาออมแสงนิวซีแลนด์", "JST": "เวลามาตรฐานญี่ปุ่น", "CLT": "เวลามาตรฐานชิลี", "TMT": "เวลามาตรฐานเติร์กเมนิสถาน"},
++ timezones: map[string]string{"COT": "เวลามาตรฐานโคลอมเบีย", "HEPM": "เวลาออมแสงของแซงปีแยร์และมีเกอลง", "JST": "เวลามาตรฐานญี่ปุ่น", "UYST": "เวลาฤดูร้อนอุรุกวัย", "AWST": "เวลามาตรฐานทางตะวันตกของออสเตรเลีย", "VET": "เวลาเวเนซุเอลา", "WAST": "เวลาฤดูร้อนแอฟริกาตะวันตก", "CAT": "เวลาแอฟริกากลาง", "CDT": "เวลาออมแสงตอนกลางในอเมริกาเหนือ", "GMT": "เวลามาตรฐานกรีนิช", "SRT": "เวลาซูรินาเม", "PDT": "เวลาออมแสงแปซิฟิกในอเมริกาเหนือ", "AKST": "เวลามาตรฐานอะแลสกา", "TMT": "เวลามาตรฐานเติร์กเมนิสถาน", "ECT": "เวลาเอกวาดอร์", "HAST": "เวลามาตรฐานฮาวาย-อะลูเชียน", "HNEG": "เวลามาตรฐานกรีนแลนด์ตะวันออก", "AST": "เวลามาตรฐานแอตแลนติก", "BT": "เวลาภูฏาน", "ACWST": "เวลามาตรฐานทางตะวันตกตอนกลางของออสเตรเลีย", "SGT": "เวลาสิงคโปร์", "SAST": "เวลาแอฟริกาใต้", "EST": "เวลามาตรฐานทางตะวันออกในอเมริกาเหนือ", "EDT": "เวลาออมแสงทางตะวันออกในอเมริกาเหนือ", "NZST": "เวลามาตรฐานนิวซีแลนด์", "WEZ": "เวลามาตรฐานยุโรปตะวันตก", "WESZ": "เวลาฤดูร้อนยุโรปตะวันตก", "AKDT": "เวลาออมแสงของอะแลสกา", "WART": "เวลามาตรฐานทางตะวันตกของอาร์เจนตินา", "GYT": "เวลากายอานา", "TMST": "เวลาฤดูร้อนเติร์กเมนิสถาน", "AWDT": "เวลาออมแสงทางตะวันตกของออสเตรเลีย", "MDT": "เวลาฤดูร้อนมาเก๊า", "HEEG": "เวลาฤดูร้อนกรีนแลนด์ตะวันออก", "IST": "เวลาอินเดีย", "HNT": "เวลามาตรฐานนิวฟันด์แลนด์", "HKST": "เวลาฤดูร้อนฮ่องกง", "MST": "เวลามาตรฐานมาเก๊า", "HENOMX": "เวลาออมแสงเม็กซิโกตะวันตกเฉียงเหนือ", "HEPMX": "เวลาออมแสงแปซิฟิกเม็กซิโก", "GFT": "เวลาเฟรนช์เกียนา", "WIB": "เวลาอินโดนีเซียฝั่งตะวันตก", "HNNOMX": "เวลามาตรฐานเม็กซิโกตะวันตกเฉียงเหนือ", "LHST": "เวลามาตรฐานลอร์ดโฮว์", "ADT": "เวลาออมแสงของแอตแลนติก", "LHDT": "เวลาออมแสงลอร์ดโฮว์", "CHAST": "เวลามาตรฐานแชทัม", "HNCU": "เวลามาตรฐานคิวบา", "WIT": "เวลาอินโดนีเซียฝั่งตะวันออก", "HKT": "เวลามาตรฐานฮ่องกง", "CST": "เวลามาตรฐานตอนกลางในอเมริกาเหนือ", "ChST": "เวลาชามอร์โร", "HAT": "เวลาออมแสงนิวฟันด์แลนด์", "NZDT": "เวลาออมแสงนิวซีแลนด์", "JDT": "เวลาออมแสงญี่ปุ่น", "WAT": "เวลามาตรฐานแอฟริกาตะวันตก", "CHADT": "เวลาออมแสงแชทัม", "PST": "เวลามาตรฐานแปซิฟิกในอเมริกาเหนือ", "HECU": "เวลาออมแสงของคิวบา", "HNPMX": "เวลามาตรฐานแปซิฟิกเม็กซิโก", "OESZ": "เวลาฤดูร้อนยุโรปตะวันออก", "∅∅∅": "เวลาฤดูร้อนบราซิเลีย", "MYT": "เวลามาเลเซีย", "HNPM": "เวลามาตรฐานแซงปีแยร์และมีเกอลง", "EAT": "เวลาแอฟริกาตะวันออก", "HADT": "เวลาออมแสงฮาวาย-อะลูเชียน", "ACWDT": "เวลาออมแสงทางตะวันตกตอนกลางของออสเตรเลีย", "OEZ": "เวลามาตรฐานยุโรปตะวันออก", "CLT": "เวลามาตรฐานชิลี", "WITA": "เวลาอินโดนีเซียตอนกลาง", "BOT": "เวลาโบลิเวีย", "MEZ": "เวลามาตรฐานยุโรปกลาง", "AEST": "เวลามาตรฐานทางตะวันออกของออสเตรเลีย", "UYT": "เวลามาตรฐานอุรุกวัย", "HNOG": "เวลามาตรฐานกรีนแลนด์ตะวันตก", "HEOG": "เวลาฤดูร้อนกรีนแลนด์ตะวันตก", "ART": "เวลามาตรฐานอาร์เจนตินา", "ARST": "เวลาฤดูร้อนอาร์เจนตินา", "AEDT": "เวลาออมแสงทางตะวันออกของออสเตรเลีย", "ACST": "เวลามาตรฐานทางตอนกลางของออสเตรเลีย", "ACDT": "เวลาออมแสงทางตอนกลางของออสเตรเลีย", "WARST": "เวลาฤดูร้อนทางตะวันตกของอาร์เจนตินา", "COST": "เวลาฤดูร้อนโคลอมเบีย", "CLST": "เวลาฤดูร้อนชิลี", "MESZ": "เวลาฤดูร้อนยุโรปกลาง"},
+ }
+ }
+ 
+diff --git a/th_TH/th_TH.go b/th_TH/th_TH.go
+index c751f61..59bc96f 100644
+--- a/th_TH/th_TH.go
++++ b/th_TH/th_TH.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type th_TH struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'th_TH' locale
+ func New() locales.Translator {
+ return &th_TH{
+- locale: "th_TH",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."},
+- monthsNarrow: []string{"", "ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."},
+- monthsWide: []string{"", "มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"},
+- daysAbbreviated: []string{"อา.", "จ.", "อ.", "พ.", "พฤ.", "ศ.", "ส."},
+- daysNarrow: []string{"อา", "จ", "อ", "พ", "พฤ", "ศ", "ส"},
+- daysShort: []string{"อา.", "จ.", "อ.", "พ.", "พฤ.", "ศ.", "ส."},
+- daysWide: []string{"วันอาทิตย์", "วันจันทร์", "วันอังคาร", "วันพุธ", "วันพฤหัสบดี", "วันศุกร์", "วันเสาร์"},
+- periodsAbbreviated: []string{"ก่อนเที่ยง", "หลังเที่ยง"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"ก่อนเที่ยง", "หลังเที่ยง"},
+- erasAbbreviated: []string{"ปีก่อน ค.ศ.", "ค.ศ."},
+- erasNarrow: []string{"ก่อน ค.ศ.", "ค.ศ."},
+- erasWide: []string{"ปีก่อนคริสต์ศักราช", "คริสต์ศักราช"},
+- timezones: map[string]string{"AST": "เวลามาตรฐานแอตแลนติก", "AEDT": "เวลาออมแสงทางตะวันออกของออสเตรเลีย", "WITA": "เวลาอินโดนีเซียตอนกลาง", "MESZ": "เวลาฤดูร้อนยุโรปกลาง", "GFT": "เวลาเฟรนช์เกียนา", "WARST": "เวลาฤดูร้อนทางตะวันตกของอาร์เจนตินา", "GMT": "เวลามาตรฐานกรีนิช", "OESZ": "เวลาฤดูร้อนยุโรปตะวันออก", "WESZ": "เวลาฤดูร้อนยุโรปตะวันตก", "HNT": "เวลามาตรฐานนิวฟันด์แลนด์", "PDT": "เวลาออมแสงแปซิฟิกในอเมริกาเหนือ", "ACDT": "เวลาออมแสงทางตอนกลางของออสเตรเลีย", "COT": "เวลามาตรฐานโคลอมเบีย", "EST": "เวลามาตรฐานทางตะวันออกในอเมริกาเหนือ", "HEPMX": "เวลาออมแสงแปซิฟิกเม็กซิโก", "WART": "เวลามาตรฐานทางตะวันตกของอาร์เจนตินา", "BT": "เวลาภูฏาน", "SRT": "เวลาซูรินาเม", "WEZ": "เวลามาตรฐานยุโรปตะวันตก", "ACWST": "เวลามาตรฐานทางตะวันตกตอนกลางของออสเตรเลีย", "NZDT": "เวลาออมแสงนิวซีแลนด์", "CHAST": "เวลามาตรฐานแชทัม", "ChST": "เวลาชามอร์โร", "CST": "เวลามาตรฐานตอนกลางในอเมริกาเหนือ", "TMT": "เวลามาตรฐานเติร์กเมนิสถาน", "WAT": "เวลามาตรฐานแอฟริกาตะวันตก", "MYT": "เวลามาเลเซีย", "UYST": "เวลาฤดูร้อนอุรุกวัย", "WAST": "เวลาฤดูร้อนแอฟริกาตะวันตก", "HKT": "เวลามาตรฐานฮ่องกง", "HNPMX": "เวลามาตรฐานแปซิฟิกเม็กซิโก", "LHDT": "เวลาออมแสงลอร์ดโฮว์", "CLT": "เวลามาตรฐานชิลี", "ECT": "เวลาเอกวาดอร์", "MDT": "เวลาฤดูร้อนมาเก๊า", "ARST": "เวลาฤดูร้อนอาร์เจนตินา", "HEOG": "เวลาฤดูร้อนกรีนแลนด์ตะวันตก", "AWDT": "เวลาออมแสงทางตะวันตกของออสเตรเลีย", "HNCU": "เวลามาตรฐานคิวบา", "EDT": "เวลาออมแสงทางตะวันออกในอเมริกาเหนือ", "MST": "เวลามาตรฐานมาเก๊า", "ART": "เวลามาตรฐานอาร์เจนตินา", "JDT": "เวลาออมแสงญี่ปุ่น", "TMST": "เวลาฤดูร้อนเติร์กเมนิสถาน", "AKDT": "เวลาออมแสงของอะแลสกา", "HAT": "เวลาออมแสงนิวฟันด์แลนด์", "AKST": "เวลามาตรฐานอะแลสกา", "HNOG": "เวลามาตรฐานกรีนแลนด์ตะวันตก", "HKST": "เวลาฤดูร้อนฮ่องกง", "LHST": "เวลามาตรฐานลอร์ดโฮว์", "SAST": "เวลาแอฟริกาใต้", "EAT": "เวลาแอฟริกาตะวันออก", "OEZ": "เวลามาตรฐานยุโรปตะวันออก", "CAT": "เวลาแอฟริกากลาง", "HNNOMX": "เวลามาตรฐานเม็กซิโกตะวันตกเฉียงเหนือ", "HENOMX": "เวลาออมแสงเม็กซิโกตะวันตกเฉียงเหนือ", "GYT": "เวลากายอานา", "NZST": "เวลามาตรฐานนิวซีแลนด์", "CHADT": "เวลาออมแสงแชทัม", "∅∅∅": "เวลาฤดูร้อนแอมะซอน", "ACST": "เวลามาตรฐานทางตอนกลางของออสเตรเลีย", "WIB": "เวลาอินโดนีเซียฝั่งตะวันตก", "HADT": "เวลาออมแสงฮาวาย-อะลูเชียน", "VET": "เวลาเวเนซุเอลา", "HEPM": "เวลาออมแสงของแซงปีแยร์และมีเกอลง", "HNEG": "เวลามาตรฐานกรีนแลนด์ตะวันออก", "UYT": "เวลามาตรฐานอุรุกวัย", "PST": "เวลามาตรฐานแปซิฟิกในอเมริกาเหนือ", "ACWDT": "เวลาออมแสงทางตะวันตกตอนกลางของออสเตรเลีย", "AEST": "เวลามาตรฐานทางตะวันออกของออสเตรเลีย", "HEEG": "เวลาฤดูร้อนกรีนแลนด์ตะวันออก", "SGT": "เวลาสิงคโปร์", "CDT": "เวลาออมแสงตอนกลางในอเมริกาเหนือ", "ADT": "เวลาออมแสงของแอตแลนติก", "AWST": "เวลามาตรฐานทางตะวันตกของออสเตรเลีย", "HNPM": "เวลามาตรฐานแซงปีแยร์และมีเกอลง", "CLST": "เวลาฤดูร้อนชิลี", "JST": "เวลามาตรฐานญี่ปุ่น", "COST": "เวลาฤดูร้อนโคลอมเบีย", "WIT": "เวลาอินโดนีเซียฝั่งตะวันออก", "HAST": "เวลามาตรฐานฮาวาย-อะลูเชียน", "MEZ": "เวลามาตรฐานยุโรปกลาง", "IST": "เวลาอินเดีย", "BOT": "เวลาโบลิเวีย", "HECU": "เวลาออมแสงของคิวบา"},
++ locale: "th_TH",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SAST": "SAST", "NZDT": "NZDT", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "UYST": "UYST", "EDT": "EDT", "HKST": "HKST", "TMT": "TMT", "CAT": "CAT", "MEZ": "MEZ", "HEEG": "HEEG", "HAT": "HAT", "HNOG": "HNOG", "HKT": "HKT", "MYT": "MYT", "GYT": "GYT", "CLT": "CLT", "CLST": "CLST", "GMT": "GMT", "HEPM": "HEPM", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "COST": "COST", "MDT": "MDT", "ChST": "ChST", "EAT": "EAT", "HAST": "HAST", "AEST": "AEST", "AEDT": "AEDT", "ECT": "ECT", "AST": "AST", "ADT": "ADT", "HNPM": "HNPM", "AKDT": "AKDT", "MST": "MST", "ART": "ART", "ACST": "ACST", "WAST": "WAST", "COT": "COT", "NZST": "NZST", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "PST": "PST", "HEOG": "HEOG", "MESZ": "MESZ", "ACWDT": "ACWDT", "IST": "IST", "GFT": "GFT", "HNT": "HNT", "ACWST": "ACWST", "CHADT": "CHADT", "WEZ": "WEZ", "AKST": "AKST", "OESZ": "OESZ", "WARST": "WARST", "WITA": "WITA", "SRT": "SRT", "JST": "JST", "WAT": "WAT", "TMST": "TMST", "CDT": "CDT", "PDT": "PDT", "BT": "BT", "WESZ": "WESZ", "HECU": "HECU", "WIT": "WIT", "ARST": "ARST", "BOT": "BOT", "ACDT": "ACDT", "JDT": "JDT", "CHAST": "CHAST", "EST": "EST", "WIB": "WIB", "HNEG": "HNEG", "LHST": "LHST", "SGT": "SGT", "VET": "VET", "WART": "WART", "CST": "CST", "HADT": "HADT", "HEPMX": "HEPMX", "OEZ": "OEZ", "AWST": "AWST", "UYT": "UYT", "HNCU": "HNCU"},
+ }
+ }
+ 
+@@ -117,7 +94,7 @@ func (th *th_TH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (th *th_TH) MonthsAbbreviated() []string {
+- return th.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -127,7 +104,7 @@ func (th *th_TH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (th *th_TH) MonthsNarrow() []string {
+- return th.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -137,7 +114,7 @@ func (th *th_TH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (th *th_TH) MonthsWide() []string {
+- return th.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -183,73 +160,13 @@ func (th *th_TH) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'th_TH' and handles both Whole and Real numbers based on 'v'
+ func (th *th_TH) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, th.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, th.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, th.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'th_TH' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (th *th_TH) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, th.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, th.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, th.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'th_TH'
+@@ -257,56 +174,7 @@ func (th *th_TH) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := th.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, th.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, th.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, th.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, th.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'th_TH'
+@@ -315,68 +183,7 @@ func (th *th_TH) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := th.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, th.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, th.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, th.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, th.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, th.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'th_TH'
+@@ -384,17 +191,6 @@ func (th *th_TH) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -403,17 +199,6 @@ func (th *th_TH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, th.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -422,25 +207,6 @@ func (th *th_TH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, th.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() < 0 {
+- b = append(b, th.erasAbbreviated[0]...)
+- } else {
+- b = append(b, th.erasAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,27 +215,6 @@ func (th *th_TH) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, th.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xe0, 0xb8, 0x97, 0xe0, 0xb8, 0xb5, 0xe0, 0xb9, 0x88, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, th.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() < 0 {
+- b = append(b, th.erasWide[0]...)
+- } else {
+- b = append(b, th.erasWide[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -478,19 +223,6 @@ func (th *th_TH) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, th.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -499,26 +231,6 @@ func (th *th_TH) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, th.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, th.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -527,26 +239,6 @@ func (th *th_TH) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x20, 0xe0, 0xb8, 0x99, 0xe0, 0xb8, 0xb2, 0xe0, 0xb8, 0xac, 0xe0, 0xb8, 0xb4, 0xe0, 0xb8, 0x81, 0xe0, 0xb8, 0xb2, 0x20}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20, 0xe0, 0xb8, 0x99, 0xe0, 0xb8, 0xb2, 0xe0, 0xb8, 0x97, 0xe0, 0xb8, 0xb5, 0x20}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0xe0, 0xb8, 0xa7, 0xe0, 0xb8, 0xb4, 0xe0, 0xb8, 0x99, 0xe0, 0xb8, 0xb2, 0xe0, 0xb8, 0x97, 0xe0, 0xb8, 0xb5, 0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -555,30 +247,5 @@ func (th *th_TH) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, []byte{0x20, 0xe0, 0xb8, 0x99, 0xe0, 0xb8, 0xb2, 0xe0, 0xb8, 0xac, 0xe0, 0xb8, 0xb4, 0xe0, 0xb8, 0x81, 0xe0, 0xb8, 0xb2, 0x20}...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20, 0xe0, 0xb8, 0x99, 0xe0, 0xb8, 0xb2, 0xe0, 0xb8, 0x97, 0xe0, 0xb8, 0xb5, 0x20}...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0xe0, 0xb8, 0xa7, 0xe0, 0xb8, 0xb4, 0xe0, 0xb8, 0x99, 0xe0, 0xb8, 0xb2, 0xe0, 0xb8, 0x97, 0xe0, 0xb8, 0xb5, 0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := th.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ti/ti.go b/ti/ti.go
+index 8d100e1..6934c47 100644
+--- a/ti/ti.go
++++ b/ti/ti.go
+@@ -66,7 +66,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ዓ/ዓ", "ዓ/ም"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"ዓ/ዓ", "ዓመተ ምህረት"},
+- timezones: map[string]string{"ACST": "ACST", "ART": "ART", "HNOG": "HNOG", "NZST": "NZST", "EST": "EST", "WEZ": "WEZ", "HEPM": "HEPM", "CHADT": "CHADT", "AKDT": "AKDT", "OEZ": "OEZ", "WARST": "WARST", "ECT": "ECT", "WIT": "WIT", "AWST": "AWST", "AWDT": "AWDT", "AEDT": "AEDT", "ACWDT": "ACWDT", "ARST": "ARST", "HEOG": "HEOG", "JST": "JST", "TMT": "TMT", "COT": "COT", "BT": "BT", "CHAST": "CHAST", "LHDT": "LHDT", "HECU": "HECU", "SGT": "SGT", "WITA": "WITA", "CLT": "CLT", "HEEG": "HEEG", "HADT": "HADT", "VET": "VET", "PDT": "PDT", "HAST": "HAST", "HKST": "HKST", "HNPM": "HNPM", "ACDT": "ACDT", "HEPMX": "HEPMX", "AKST": "AKST", "ADT": "ADT", "MST": "MST", "GMT": "GMT", "WIB": "WIB", "HNEG": "HNEG", "BOT": "BOT", "CDT": "CDT", "GYT": "GYT", "ACWST": "ACWST", "COST": "COST", "MESZ": "MESZ", "IST": "IST", "ChST": "ChST", "SAST": "SAST", "TMST": "TMST", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "WART": "WART", "CST": "CST", "UYT": "UYT", "HAT": "HAT", "HNPMX": "HNPMX", "NZDT": "NZDT", "MEZ": "MEZ", "∅∅∅": "∅∅∅", "CLST": "CLST", "WAST": "WAST", "UYST": "UYST", "PST": "PST", "HKT": "HKT", "EDT": "EDT", "GFT": "GFT", "MDT": "MDT", "SRT": "SRT", "LHST": "LHST", "WESZ": "WESZ", "AEST": "AEST", "JDT": "JDT", "WAT": "WAT", "CAT": "CAT", "AST": "AST", "MYT": "MYT", "HNT": "HNT", "EAT": "EAT", "HENOMX": "HENOMX", "HNCU": "HNCU"},
++ timezones: map[string]string{"HEOG": "HEOG", "ChST": "ChST", "AWST": "AWST", "AWDT": "AWDT", "ACWST": "ACWST", "ACWDT": "ACWDT", "OEZ": "OEZ", "HAT": "HAT", "SAST": "SAST", "NZDT": "NZDT", "HAST": "HAST", "MESZ": "MESZ", "BT": "BT", "WART": "WART", "GYT": "GYT", "VET": "VET", "HEPMX": "HEPMX", "WESZ": "WESZ", "TMT": "TMT", "HNEG": "HNEG", "MDT": "MDT", "SGT": "SGT", "WIT": "WIT", "COST": "COST", "CHADT": "CHADT", "HNNOMX": "HNNOMX", "JDT": "JDT", "ECT": "ECT", "CDT": "CDT", "PST": "PST", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "HKT": "HKT", "UYT": "UYT", "WEZ": "WEZ", "ACDT": "ACDT", "HEEG": "HEEG", "HNPM": "HNPM", "ARST": "ARST", "SRT": "SRT", "ADT": "ADT", "AEDT": "AEDT", "CAT": "CAT", "WITA": "WITA", "HENOMX": "HENOMX", "AEST": "AEST", "MST": "MST", "CST": "CST", "EDT": "EDT", "GMT": "GMT", "AST": "AST", "MEZ": "MEZ", "HEPM": "HEPM", "UYST": "UYST", "AKST": "AKST", "OESZ": "OESZ", "IST": "IST", "TMST": "TMST", "EAT": "EAT", "LHST": "LHST", "MYT": "MYT", "WAST": "WAST", "HNOG": "HNOG", "NZST": "NZST", "ACST": "ACST", "HNCU": "HNCU", "HECU": "HECU", "COT": "COT", "HKST": "HKST", "CLT": "CLT", "CLST": "CLST", "ART": "ART", "BOT": "BOT", "LHDT": "LHDT", "HNT": "HNT", "EST": "EST", "GFT": "GFT", "HADT": "HADT", "PDT": "PDT", "AKDT": "AKDT", "WAT": "WAT", "JST": "JST", "HNPMX": "HNPMX", "WARST": "WARST", "WIB": "WIB"},
+ }
+ }
+ 
+diff --git a/ti_ER/ti_ER.go b/ti_ER/ti_ER.go
+index e512681..3e57b86 100644
+--- a/ti_ER/ti_ER.go
++++ b/ti_ER/ti_ER.go
+@@ -42,31 +42,17 @@ type ti_ER struct {
+ // New returns a new instance of translator for the 'ti_ER' locale
+ func New() locales.Translator {
+ return &ti_ER{
+- locale: "ti_ER",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "Nfk", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "ጥሪ", "ለካ", "መጋ", "ሚያ", "ግን", "ሰነ", "ሓም", "ነሓ", "መስ", "ጥቅ", "ሕዳ", "ታሕ"},
+- monthsNarrow: []string{"", "ጥ", "ለ", "መ", "ሚ", "ግ", "ሰ", "ሓ", "ነ", "መ", "ጥ", "ሕ", "ታ"},
+- monthsWide: []string{"", "ጥሪ", "ለካቲት", "መጋቢት", "ሚያዝያ", "ግንቦት", "ሰነ", "ሓምለ", "ነሓሰ", "መስከረም", "ጥቅምቲ", "ሕዳር", "ታሕሳስ"},
+- daysAbbreviated: []string{"ሰን", "ሰኑ", "ሰሉ", "ረቡ", "ሓሙ", "ዓር", "ቀዳ"},
+- daysNarrow: []string{"ሰ", "ሰ", "ሰ", "ረ", "ሓ", "ዓ", "ቀ"},
+- daysShort: []string{"ሰን", "ሰኑ", "ሰሉ", "ረቡ", "ሓሙ", "ዓር", "ቀዳ"},
+- daysWide: []string{"ሰንበት", "ሰኑይ", "ሠሉስ", "ረቡዕ", "ኃሙስ", "ዓርቢ", "ቀዳም"},
+- periodsAbbreviated: []string{"ንጉሆ ሰዓተ", "ድሕር ሰዓት"},
+- periodsWide: []string{"ንጉሆ ሰዓተ", "ድሕር ሰዓት"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"WEZ": "WEZ", "JST": "JST", "COST": "COST", "BOT": "BOT", "GMT": "GMT", "MDT": "MDT", "NZDT": "NZDT", "SAST": "SAST", "JDT": "JDT", "GFT": "GFT", "WART": "WART", "UYST": "UYST", "MST": "MST", "NZST": "NZST", "WAT": "WAT", "OESZ": "OESZ", "CDT": "CDT", "BT": "BT", "HNOG": "HNOG", "IST": "IST", "COT": "COT", "WIT": "WIT", "ACWST": "ACWST", "HKT": "HKT", "LHST": "LHST", "HAST": "HAST", "SRT": "SRT", "AEST": "AEST", "ACDT": "ACDT", "AWDT": "AWDT", "∅∅∅": "∅∅∅", "EAT": "EAT", "CST": "CST", "HADT": "HADT", "ART": "ART", "ARST": "ARST", "HEOG": "HEOG", "HECU": "HECU", "HNPMX": "HNPMX", "SGT": "SGT", "WIB": "WIB", "HNT": "HNT", "MESZ": "MESZ", "CLT": "CLT", "OEZ": "OEZ", "AST": "AST", "UYT": "UYT", "HEEG": "HEEG", "TMST": "TMST", "HNPM": "HNPM", "HEPM": "HEPM", "HNNOMX": "HNNOMX", "MYT": "MYT", "VET": "VET", "ACWDT": "ACWDT", "PDT": "PDT", "WITA": "WITA", "HAT": "HAT", "HNCU": "HNCU", "EST": "EST", "GYT": "GYT", "CHADT": "CHADT", "MEZ": "MEZ", "ChST": "ChST", "HENOMX": "HENOMX", "ACST": "ACST", "HEPMX": "HEPMX", "AKST": "AKST", "AKDT": "AKDT", "CHAST": "CHAST", "CLST": "CLST", "TMT": "TMT", "LHDT": "LHDT", "WAST": "WAST", "ECT": "ECT", "ADT": "ADT", "WESZ": "WESZ", "HKST": "HKST", "AEDT": "AEDT", "AWST": "AWST", "CAT": "CAT", "PST": "PST", "HNEG": "HNEG", "WARST": "WARST", "EDT": "EDT"},
++ locale: "ti_ER",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "Nfk", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ daysNarrow: []string{"ሰ", "ሰ", "ሰ", "ረ", "ሓ", "ዓ", "ቀ"},
++ erasAbbreviated: []string{"", ""},
++ erasNarrow: []string{"", ""},
++ erasWide: []string{"", ""},
++ timezones: map[string]string{"WITA": "WITA", "BOT": "BOT", "UYT": "UYT", "PDT": "PDT", "ACWST": "ACWST", "HNCU": "HNCU", "AKDT": "AKDT", "CLT": "CLT", "WARST": "WARST", "COT": "COT", "EST": "EST", "HKT": "HKT", "HNT": "HNT", "ECT": "ECT", "HADT": "HADT", "HNEG": "HNEG", "HEEG": "HEEG", "COST": "COST", "WIB": "WIB", "WAT": "WAT", "HEOG": "HEOG", "NZST": "NZST", "GMT": "GMT", "ChST": "ChST", "CHADT": "CHADT", "HEPMX": "HEPMX", "ADT": "ADT", "JDT": "JDT", "AEST": "AEST", "AEDT": "AEDT", "UYST": "UYST", "SGT": "SGT", "HECU": "HECU", "EDT": "EDT", "ART": "ART", "PST": "PST", "HKST": "HKST", "HEPM": "HEPM", "AST": "AST", "SRT": "SRT", "ACST": "ACST", "ACDT": "ACDT", "WESZ": "WESZ", "AKST": "AKST", "OEZ": "OEZ", "CAT": "CAT", "AWST": "AWST", "BT": "BT", "HNPMX": "HNPMX", "WAST": "WAST", "AWDT": "AWDT", "VET": "VET", "CLST": "CLST", "HENOMX": "HENOMX", "JST": "JST", "HNPM": "HNPM", "WEZ": "WEZ", "∅∅∅": "∅∅∅", "HAST": "HAST", "MEZ": "MEZ", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "OESZ": "OESZ", "WART": "WART", "HNOG": "HNOG", "MDT": "MDT", "TMST": "TMST", "TMT": "TMT", "ARST": "ARST", "CHAST": "CHAST", "IST": "IST", "ACWDT": "ACWDT", "SAST": "SAST", "GYT": "GYT", "NZDT": "NZDT", "MESZ": "MESZ", "GFT": "GFT", "CST": "CST", "WIT": "WIT", "MST": "MST", "EAT": "EAT", "LHST": "LHST", "MYT": "MYT", "HAT": "HAT", "CDT": "CDT"},
+ }
+ }
+ 
+@@ -119,7 +105,7 @@ func (ti *ti_ER) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ti *ti_ER) MonthsAbbreviated() []string {
+- return ti.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -129,7 +115,7 @@ func (ti *ti_ER) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ti *ti_ER) MonthsNarrow() []string {
+- return ti.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -139,7 +125,7 @@ func (ti *ti_ER) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ti *ti_ER) MonthsWide() []string {
+- return ti.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -185,73 +171,13 @@ func (ti *ti_ER) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ti_ER' and handles both Whole and Real numbers based on 'v'
+ func (ti *ti_ER) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ti.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ti.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ti.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ti_ER' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ti *ti_ER) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ti.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ti.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ti.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ti_ER'
+@@ -259,56 +185,7 @@ func (ti *ti_ER) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ti.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ti.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ti.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ti.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ti.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ti_ER'
+@@ -317,64 +194,7 @@ func (ti *ti_ER) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ti.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ti.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ti.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ti.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ti.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ti_ER'
+@@ -382,27 +202,6 @@ func (ti *ti_ER) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -411,21 +210,6 @@ func (ti *ti_ER) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, ti.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -434,21 +218,6 @@ func (ti *ti_ER) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ti.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -457,32 +226,6 @@ func (ti *ti_ER) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ti.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xe1, 0x8d, 0xa3, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ti.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0xe1, 0x88, 0x98, 0xe1, 0x8b, 0x93, 0xe1, 0x88, 0x8d, 0xe1, 0x89, 0xb2, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() < 0 {
+- b = append(b, ti.erasWide[0]...)
+- } else {
+- b = append(b, ti.erasWide[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,28 +234,6 @@ func (ti *ti_ER) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ti.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ti.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ti.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -521,35 +242,6 @@ func (ti *ti_ER) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ti.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ti.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ti.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ti.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -558,40 +250,6 @@ func (ti *ti_ER) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ti.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ti.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ti.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ti.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -600,44 +258,5 @@ func (ti *ti_ER) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ti.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ti.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ti.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ti.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ti.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ti_ET/ti_ET.go b/ti_ET/ti_ET.go
+index aca53b3..2f77db5 100644
+--- a/ti_ET/ti_ET.go
++++ b/ti_ET/ti_ET.go
+@@ -42,31 +42,13 @@ type ti_ET struct {
+ // New returns a new instance of translator for the 'ti_ET' locale
+ func New() locales.Translator {
+ return &ti_ET{
+- locale: "ti_ET",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "ጥሪ", "ለካ", "መጋ", "ሚያ", "ግን", "ሰነ", "ሓም", "ነሓ", "መስ", "ጥቅ", "ሕዳ", "ታሕ"},
+- monthsNarrow: []string{"", "ጥ", "ለ", "መ", "ሚ", "ግ", "ሰ", "ሓ", "ነ", "መ", "ጥ", "ሕ", "ታ"},
+- monthsWide: []string{"", "ጥሪ", "ለካቲት", "መጋቢት", "ሚያዝያ", "ግንቦት", "ሰነ", "ሓምለ", "ነሓሰ", "መስከረም", "ጥቅምቲ", "ሕዳር", "ታሕሳስ"},
+- daysAbbreviated: []string{"ሰን", "ሰኑ", "ሰሉ", "ረቡ", "ሓሙ", "ዓር", "ቀዳ"},
+- daysNarrow: []string{"ሰ", "ሰ", "ሰ", "ረ", "ሓ", "ዓ", "ቀ"},
+- daysShort: []string{"ሰን", "ሰኑ", "ሰሉ", "ረቡ", "ሓሙ", "ዓር", "ቀዳ"},
+- daysWide: []string{"ሰንበት", "ሰኑይ", "ሠሉስ", "ረቡዕ", "ኃሙስ", "ዓርቢ", "ቀዳም"},
+- periodsAbbreviated: []string{"ንጉሆ ሰዓተ", "ድሕር ሰዓት"},
+- periodsWide: []string{"ንጉሆ ሰዓተ", "ድሕር ሰዓት"},
+- erasAbbreviated: []string{"ዓ/ዓ", "ዓ/ም"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ዓ/ዓ", "ዓመተ ምህረት"},
+- timezones: map[string]string{"CLST": "CLST", "ACST": "ACST", "EST": "EST", "WITA": "WITA", "CHAST": "CHAST", "MYT": "MYT", "AKDT": "AKDT", "VET": "VET", "SAST": "SAST", "MST": "MST", "AEDT": "AEDT", "MESZ": "MESZ", "CHADT": "CHADT", "ACDT": "ACDT", "CST": "CST", "CDT": "CDT", "SRT": "SRT", "HAT": "HAT", "NZST": "NZST", "GFT": "GFT", "TMT": "TMT", "COT": "COT", "AKST": "AKST", "AST": "AST", "PST": "PST", "HKST": "HKST", "WAST": "WAST", "UYT": "UYT", "ADT": "ADT", "JST": "JST", "EAT": "EAT", "BOT": "BOT", "COST": "COST", "MDT": "MDT", "HNPMX": "HNPMX", "ACWDT": "ACWDT", "CLT": "CLT", "ChST": "ChST", "CAT": "CAT", "HNT": "HNT", "∅∅∅": "∅∅∅", "ARST": "ARST", "AWST": "AWST", "NZDT": "NZDT", "WAT": "WAT", "GYT": "GYT", "BT": "BT", "HNOG": "HNOG", "HNPM": "HNPM", "ART": "ART", "HKT": "HKT", "OEZ": "OEZ", "HENOMX": "HENOMX", "WEZ": "WEZ", "HEEG": "HEEG", "JDT": "JDT", "OESZ": "OESZ", "HAST": "HAST", "HEOG": "HEOG", "ACWST": "ACWST", "HADT": "HADT", "AWDT": "AWDT", "IST": "IST", "LHST": "LHST", "HNNOMX": "HNNOMX", "GMT": "GMT", "SGT": "SGT", "HNCU": "HNCU", "HEPM": "HEPM", "MEZ": "MEZ", "WART": "WART", "EDT": "EDT", "HEPMX": "HEPMX", "WIB": "WIB", "WIT": "WIT", "WESZ": "WESZ", "AEST": "AEST", "HNEG": "HNEG", "TMST": "TMST", "ECT": "ECT", "WARST": "WARST", "HECU": "HECU", "UYST": "UYST", "PDT": "PDT", "LHDT": "LHDT"},
++ locale: "ti_ET",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"GFT": "GFT", "GYT": "GYT", "HKST": "HKST", "HADT": "HADT", "MYT": "MYT", "IST": "IST", "CHAST": "CHAST", "HECU": "HECU", "∅∅∅": "∅∅∅", "EST": "EST", "GMT": "GMT", "ART": "ART", "HAST": "HAST", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "AWST": "AWST", "JST": "JST", "ACWDT": "ACWDT", "HNCU": "HNCU", "AKDT": "AKDT", "AWDT": "AWDT", "PDT": "PDT", "TMT": "TMT", "CLT": "CLT", "CLST": "CLST", "SRT": "SRT", "MESZ": "MESZ", "WIT": "WIT", "EAT": "EAT", "ACST": "ACST", "JDT": "JDT", "HEPMX": "HEPMX", "HAT": "HAT", "ARST": "ARST", "PST": "PST", "SGT": "SGT", "HNT": "HNT", "WART": "WART", "HKT": "HKT", "CST": "CST", "MST": "MST", "LHST": "LHST", "LHDT": "LHDT", "SAST": "SAST", "TMST": "TMST", "MDT": "MDT", "HEEG": "HEEG", "HENOMX": "HENOMX", "HNPM": "HNPM", "CHADT": "CHADT", "WESZ": "WESZ", "CAT": "CAT", "AKST": "AKST", "WARST": "WARST", "HNOG": "HNOG", "WIB": "WIB", "UYST": "UYST", "COST": "COST", "ADT": "ADT", "VET": "VET", "HNPMX": "HNPMX", "OEZ": "OEZ", "OESZ": "OESZ", "EDT": "EDT", "ECT": "ECT", "MEZ": "MEZ", "ACDT": "ACDT", "BT": "BT", "WEZ": "WEZ", "WAST": "WAST", "HEOG": "HEOG", "AEST": "AEST", "UYT": "UYT", "NZST": "NZST", "AST": "AST", "BOT": "BOT", "AEDT": "AEDT", "COT": "COT", "WAT": "WAT", "WITA": "WITA", "CDT": "CDT", "NZDT": "NZDT", "ChST": "ChST", "HEPM": "HEPM", "ACWST": "ACWST"},
+ }
+ }
+ 
+@@ -119,7 +101,7 @@ func (ti *ti_ET) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ti *ti_ET) MonthsAbbreviated() []string {
+- return ti.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -129,7 +111,7 @@ func (ti *ti_ET) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ti *ti_ET) MonthsNarrow() []string {
+- return ti.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -139,7 +121,7 @@ func (ti *ti_ET) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ti *ti_ET) MonthsWide() []string {
+- return ti.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -185,73 +167,13 @@ func (ti *ti_ET) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ti_ET' and handles both Whole and Real numbers based on 'v'
+ func (ti *ti_ET) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ti.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ti.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ti.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ti_ET' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ti *ti_ET) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ti.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ti.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ti.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ti_ET'
+@@ -259,56 +181,7 @@ func (ti *ti_ET) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ti.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ti.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ti.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ti.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ti.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ti_ET'
+@@ -317,64 +190,7 @@ func (ti *ti_ET) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ti.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ti.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ti.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ti.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ti.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ti_ET'
+@@ -382,27 +198,6 @@ func (ti *ti_ET) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -411,21 +206,6 @@ func (ti *ti_ET) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, ti.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -434,21 +214,6 @@ func (ti *ti_ET) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ti.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -457,32 +222,6 @@ func (ti *ti_ET) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ti.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xe1, 0x8d, 0xa3, 0x20}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ti.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20, 0xe1, 0x88, 0x98, 0xe1, 0x8b, 0x93, 0xe1, 0x88, 0x8d, 0xe1, 0x89, 0xb2, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() < 0 {
+- b = append(b, ti.erasWide[0]...)
+- } else {
+- b = append(b, ti.erasWide[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,28 +230,6 @@ func (ti *ti_ET) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ti.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ti.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ti.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -521,35 +238,6 @@ func (ti *ti_ET) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ti.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ti.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ti.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ti.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -558,40 +246,6 @@ func (ti *ti_ET) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ti.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ti.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ti.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ti.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -600,44 +254,5 @@ func (ti *ti_ET) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ti.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ti.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ti.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ti.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ti.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/tk/tk.go b/tk/tk.go
+index c276a30..1b8d244 100644
+--- a/tk/tk.go
++++ b/tk/tk.go
+@@ -66,7 +66,7 @@ func New() locales.Translator {
+ daysAbbreviated: []string{"ýb", "db", "sb", "çb", "pb", "an", "şb"},
+ daysNarrow: []string{"Ý", "D", "S", "Ç", "P", "A", "Ş"},
+ daysWide: []string{"ýekşenbe", "duşenbe", "sişenbe", "çarşenbe", "penşenbe", "anna", "şenbe"},
+- timezones: map[string]string{"UYST": "Urugwaý, tomusky wagt", "ART": "Argentina, standart wagt", "NZST": "Täze Zelandiýa, standart wagt", "ACDT": "Merkezi Awstraliýa, tomusky wagt", "OESZ": "Gündogar Ýewropa, tomusky wagt", "GFT": "Fransuz Gwiana", "HEPMX": "Meksikan Ýuwaş umman, tomusky wagt", "GYT": "Gaýana", "HADT": "Gawaý-Aleut, tomusky wagt", "BT": "Butan", "AEST": "Gündogar Awstraliýa, standart wagt", "AEDT": "Gündogar Awstraliýa, tomusky wagt", "NZDT": "Täze Zelandiýa, tomusky wagt", "WAST": "Günbatar Afrika, tomusky wagt", "UYT": "Urugwaý, standart wagt", "HNOG": "Günbatar Grenlandiýa, standart wagt", "ACWDT": "Merkezi Awstraliýa, günbatar tarap, tomusky wagt", "WARST": "Günbatar Argentina, tomusky wagt", "EDT": "Günorta Amerika, tomusky wagt", "PST": "Ýuwaş umman, standart wagt", "ACWST": "Merkezi Awstraliýa, günbatar tarap, standart wagt", "MEZ": "Merkezi Ýewropa, standart wagt", "LHST": "Lord-Hau, standart wagt", "CLT": "Çili, standart wagt", "COT": "Kolumbiýa, standart wagt", "WART": "Günbatar Argentina, standart wagt", "HNCU": "Kuba, standart wagt", "MYT": "Malaýziýa", "AKDT": "Alýaska, tomusky wagt", "WESZ": "Günbatar Ýewropa, tomusky wagt", "LHDT": "Lord-Hau, tomusky wagt", "TMT": "Türkmenistan, standart wagt", "CAT": "Merkezi Afrika", "GMT": "Grinwiç boýunça orta wagt", "CDT": "Merkezi Amerika, tomusky wagt", "HNT": "Nýufaundlend, standart wagt", "HAT": "Nýufaundlend, tomusky wagt", "MESZ": "Merkezi Ýewropa, tomusky wagt", "WAT": "Günbatar Afrika, standart wagt", "∅∅∅": "Azor adalary, tomusky wagt", "HEEG": "Gündogar Grenlandiýa, tomusky wagt", "HEOG": "Günbatar Grenlandiýa, tomusky wagt", "JST": "Ýaponiýa, standart wagt", "HECU": "Kuba, tomusky wagt", "HAST": "Gawaý-Aleut, standart wagt", "ARST": "Argentina, tomusky wagt", "WEZ": "Günbatar Ýewropa, standart wagt", "AWDT": "Günbatar Awstraliýa, tomusky wagt", "HNPM": "Sen Pýer we Mikelon, standart wagt", "HNPMX": "Meksikan Ýuwaş umman, standart wagt", "AKST": "Alýaska, standart wagt", "WITA": "Merkezi Indoneziýa", "JDT": "Ýaponiýa, tomusky wagt", "BOT": "Boliwiýa", "COST": "Kolumbiýa, tomusky wagt", "HNNOMX": "D.g.-G.b. Meksika, standart wagt", "CST": "Merkezi Amerika, standart wagt", "SRT": "Surinam", "HKT": "Gonkong, standart wagt", "CLST": "Çili, tomusky wagt", "SGT": "Singapur, standart wagt", "HKST": "Gonkong, tomusky wagt", "ChST": "Çamorro", "ACST": "Merkezi Awstraliýa, standart wagt", "EST": "Günorta Amerika, standart wagt", "HEPM": "Sen Pýer we Mikelon, tomusky wagt", "CHAST": "Çatem, standart wagt", "EAT": "Gündogar Afrika", "ADT": "Atlantika, tomusky wagt", "PDT": "Ýuwaş umman, tomusky wagt", "AWST": "Günbatar Awstraliýa, standart wagt", "CHADT": "Çatem, tomusky wagt", "IST": "Hindistan", "HNEG": "Gündogar Grenlandiýa, standart wagt", "ECT": "Ekwador", "HENOMX": "D.g.-G.b. Meksika, tomusky wagt", "MDT": "MDT", "AST": "Atlantika, standart wagt", "VET": "Wenesuela", "WIT": "Gündogar Indoneziýa", "SAST": "Günorta Afrika, standart wagt", "TMST": "Türkmenistan, tomusky wagt", "OEZ": "Gündogar Ýewropa, standart wagt", "MST": "MST", "WIB": "Günbatar Indoneziýa"},
++ timezones: map[string]string{"AEDT": "Gündogar Awstraliýa, tomusky wagt", "HKT": "Gonkong, standart wagt", "CLST": "Çili, tomusky wagt", "AKDT": "Alýaska, tomusky wagt", "SAST": "Günorta Afrika, standart wagt", "NZST": "Täze Zelandiýa, standart wagt", "SRT": "Surinam", "ACDT": "Merkezi Awstraliýa, tomusky wagt", "WESZ": "Günbatar Ýewropa, tomusky wagt", "HNCU": "Kuba, standart wagt", "HECU": "Kuba, tomusky wagt", "MST": "Daglyk ýeri, standart wagt (ABŞ)", "MDT": "Daglyk ýeri, tomusky wagt (ABŞ)", "HNT": "Nýufaundlend, standart wagt", "NZDT": "Täze Zelandiýa, tomusky wagt", "CDT": "Merkezi Amerika, tomusky wagt", "HAST": "Gawaý-Aleut, standart wagt", "JST": "Ýaponiýa, standart wagt", "WAT": "Günbatar Afrika, standart wagt", "GYT": "Gaýana", "EDT": "Günorta Amerika, tomusky wagt", "CAT": "Merkezi Afrika", "ChST": "Çamorro", "ARST": "Argentina, tomusky wagt", "HEPM": "Sen Pýer we Mikelon, tomusky wagt", "VET": "Wenesuela", "COST": "Kolumbiýa, tomusky wagt", "EST": "Günorta Amerika, standart wagt", "TMT": "Türkmenistan, standart wagt", "JDT": "Ýaponiýa, tomusky wagt", "WEZ": "Günbatar Ýewropa, standart wagt", "OEZ": "Gündogar Ýewropa, standart wagt", "OESZ": "Gündogar Ýewropa, tomusky wagt", "CHADT": "Çatem, tomusky wagt", "BT": "Butan", "AEST": "Gündogar Awstraliýa, standart wagt", "HAT": "Nýufaundlend, tomusky wagt", "WART": "Günbatar Argentina, standart wagt", "CST": "Merkezi Amerika, standart wagt", "ADT": "Atlantika, tomusky wagt", "ART": "Argentina, standart wagt", "CLT": "Çili, standart wagt", "MESZ": "Merkezi Ýewropa, tomusky wagt", "HENOMX": "D.g.-G.b. Meksika, tomusky wagt", "∅∅∅": "∅∅∅", "HNPMX": "Meksikan Ýuwaş umman, standart wagt", "HNOG": "Günbatar Grenlandiýa, standart wagt", "EAT": "Gündogar Afrika", "HKST": "Gonkong, tomusky wagt", "ECT": "Ekwador", "AST": "Atlantika, standart wagt", "HEOG": "Günbatar Grenlandiýa, tomusky wagt", "MEZ": "Merkezi Ýewropa, standart wagt", "HNEG": "Gündogar Grenlandiýa, standart wagt", "MYT": "Malaýziýa", "UYST": "Urugwaý, tomusky wagt", "IST": "Hindistan", "AKST": "Alýaska, standart wagt", "WARST": "Günbatar Argentina, tomusky wagt", "COT": "Kolumbiýa, standart wagt", "HNNOMX": "D.g.-G.b. Meksika, standart wagt", "LHDT": "Lord-Hau, tomusky wagt", "UYT": "Urugwaý, standart wagt", "ACWST": "Merkezi Awstraliýa, günbatar tarap, standart wagt", "SGT": "Singapur, standart wagt", "BOT": "Boliwiýa", "AWST": "Günbatar Awstraliýa, standart wagt", "PDT": "Ýuwaş umman, tomusky wagt", "HADT": "Gawaý-Aleut, tomusky wagt", "HEEG": "Gündogar Grenlandiýa, tomusky wagt", "HNPM": "Sen Pýer we Mikelon, standart wagt", "HEPMX": "Meksikan Ýuwaş umman, tomusky wagt", "GMT": "Grinwiç boýunça orta wagt", "ACWDT": "Merkezi Awstraliýa, günbatar tarap, tomusky wagt", "WAST": "Günbatar Afrika, tomusky wagt", "GFT": "Fransuz Gwiana", "ACST": "Merkezi Awstraliýa, standart wagt", "AWDT": "Günbatar Awstraliýa, tomusky wagt", "LHST": "Lord-Hau, standart wagt", "CHAST": "Çatem, standart wagt", "PST": "Ýuwaş umman, standart wagt", "WIT": "Gündogar Indoneziýa", "TMST": "Türkmenistan, tomusky wagt", "WITA": "Merkezi Indoneziýa", "WIB": "Günbatar Indoneziýa"},
+ }
+ }
+ 
+diff --git a/tk_TM/tk_TM.go b/tk_TM/tk_TM.go
+index dca4c57..1e9d802 100644
+--- a/tk_TM/tk_TM.go
++++ b/tk_TM/tk_TM.go
+@@ -10,63 +10,45 @@ import (
+ )
+ 
+ type tk_TM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- percentSuffix string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'tk_TM' locale
+ func New() locales.Translator {
+ return &tk_TM{
+- locale: "tk_TM",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "ýan", "few", "mart", "apr", "maý", "iýun", "iýul", "awg", "sen", "okt", "noý", "dek"},
+- monthsNarrow: []string{"", "Ý", "F", "M", "A", "M", "I", "I", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "ýanwar", "fewral", "mart", "aprel", "maý", "iýun", "iýul", "awgust", "sentýabr", "oktýabr", "noýabr", "dekabr"},
+- daysAbbreviated: []string{"ýb", "db", "sb", "çb", "pb", "an", "şb"},
+- daysNarrow: []string{"Ý", "D", "S", "Ç", "P", "A", "Ş"},
+- daysWide: []string{"ýekşenbe", "duşenbe", "sişenbe", "çarşenbe", "penşenbe", "anna", "şenbe"},
+- timezones: map[string]string{"NZST": "Täze Zelandiýa, standart wagt", "∅∅∅": "Amazonka, tomusky wagt", "WIB": "Günbatar Indoneziýa", "ACWST": "Merkezi Awstraliýa, günbatar tarap, standart wagt", "AEDT": "Gündogar Awstraliýa, tomusky wagt", "WAST": "Günbatar Afrika, tomusky wagt", "WART": "Günbatar Argentina, standart wagt", "SGT": "Singapur, standart wagt", "HNPMX": "Meksikan Ýuwaş umman, standart wagt", "AEST": "Gündogar Awstraliýa, standart wagt", "HKT": "Gonkong, standart wagt", "ChST": "Çamorro", "OESZ": "Gündogar Ýewropa, tomusky wagt", "HEPMX": "Meksikan Ýuwaş umman, tomusky wagt", "ARST": "Argentina, tomusky wagt", "AWST": "Günbatar Awstraliýa, standart wagt", "MESZ": "Merkezi Ýewropa, tomusky wagt", "JST": "Ýaponiýa, standart wagt", "HENOMX": "D.g.-G.b. Meksika, tomusky wagt", "ADT": "Atlantika, tomusky wagt", "HEOG": "Günbatar Grenlandiýa, tomusky wagt", "PDT": "Ýuwaş umman, tomusky wagt", "HEPM": "Sen Pýer we Mikelon, tomusky wagt", "EAT": "Gündogar Afrika", "HNCU": "Kuba, standart wagt", "MDT": "MDT", "UYT": "Urugwaý, standart wagt", "AST": "Atlantika, standart wagt", "WIT": "Gündogar Indoneziýa", "NZDT": "Täze Zelandiýa, tomusky wagt", "HECU": "Kuba, tomusky wagt", "WESZ": "Günbatar Ýewropa, tomusky wagt", "MEZ": "Merkezi Ýewropa, standart wagt", "LHST": "Lord-Hau, standart wagt", "IST": "Hindistan", "GFT": "Fransuz Gwiana", "ACDT": "Merkezi Awstraliýa, tomusky wagt", "CDT": "Merkezi Amerika, tomusky wagt", "EDT": "Günorta Amerika, tomusky wagt", "BT": "Butan", "LHDT": "Lord-Hau, tomusky wagt", "CHAST": "Çatem, standart wagt", "CLST": "Çili, tomusky wagt", "COT": "Kolumbiýa, standart wagt", "COST": "Kolumbiýa, tomusky wagt", "EST": "Günorta Amerika, standart wagt", "WITA": "Merkezi Indoneziýa", "ACST": "Merkezi Awstraliýa, standart wagt", "WARST": "Günbatar Argentina, tomusky wagt", "AKST": "Alýaska, standart wagt", "HNPM": "Sen Pýer we Mikelon, standart wagt", "WEZ": "Günbatar Ýewropa, standart wagt", "HNT": "Nýufaundlend, standart wagt", "CHADT": "Çatem, tomusky wagt", "CLT": "Çili, standart wagt", "BOT": "Boliwiýa", "CAT": "Merkezi Afrika", "CST": "Merkezi Amerika, standart wagt", "HAST": "Gawaý-Aleut, standart wagt", "ART": "Argentina, standart wagt", "TMT": "Türkmenistan, standart wagt", "GMT": "Grinwiç boýunça orta wagt", "HNOG": "Günbatar Grenlandiýa, standart wagt", "AWDT": "Günbatar Awstraliýa, tomusky wagt", "HKST": "Gonkong, tomusky wagt", "SAST": "Günorta Afrika, standart wagt", "UYST": "Urugwaý, tomusky wagt", "VET": "Wenesuela", "PST": "Ýuwaş umman, standart wagt", "ACWDT": "Merkezi Awstraliýa, günbatar tarap, tomusky wagt", "JDT": "Ýaponiýa, tomusky wagt", "HEEG": "Gündogar Grenlandiýa, tomusky wagt", "WAT": "Günbatar Afrika, standart wagt", "MYT": "Malaýziýa", "TMST": "Türkmenistan, tomusky wagt", "GYT": "Gaýana", "HADT": "Gawaý-Aleut, tomusky wagt", "HNEG": "Gündogar Grenlandiýa, standart wagt", "OEZ": "Gündogar Ýewropa, standart wagt", "SRT": "Surinam", "HAT": "Nýufaundlend, tomusky wagt", "ECT": "Ekwador", "HNNOMX": "D.g.-G.b. Meksika, standart wagt", "MST": "MST", "AKDT": "Alýaska, tomusky wagt"},
++ locale: "tk_TM",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HADT": "HADT", "VET": "VET", "AKST": "AKST", "HKST": "HKST", "MYT": "MYT", "CHAST": "CHAST", "COST": "COST", "ACDT": "ACDT", "BT": "BT", "ECT": "ECT", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "HEOG": "HEOG", "WAST": "WAST", "EDT": "EDT", "CDT": "CDT", "WIB": "WIB", "BOT": "BOT", "HAST": "HAST", "AWDT": "AWDT", "ACWDT": "ACWDT", "GFT": "GFT", "SAST": "SAST", "∅∅∅": "∅∅∅", "EAT": "EAT", "IST": "IST", "CHADT": "CHADT", "HNPMX": "HNPMX", "OEZ": "OEZ", "CLST": "CLST", "WITA": "WITA", "AEST": "AEST", "TMST": "TMST", "ChST": "ChST", "SRT": "SRT", "HENOMX": "HENOMX", "HNPM": "HNPM", "WEZ": "WEZ", "COT": "COT", "ART": "ART", "MESZ": "MESZ", "WESZ": "WESZ", "SGT": "SGT", "OESZ": "OESZ", "WART": "WART", "HNOG": "HNOG", "EST": "EST", "CST": "CST", "GMT": "GMT", "AWST": "AWST", "LHDT": "LHDT", "JST": "JST", "ACWST": "ACWST", "AEDT": "AEDT", "TMT": "TMT", "NZST": "NZST", "NZDT": "NZDT", "UYST": "UYST", "HNCU": "HNCU", "AKDT": "AKDT", "GYT": "GYT", "MST": "MST", "AST": "AST", "ARST": "ARST", "PST": "PST", "PDT": "PDT", "UYT": "UYT", "WAT": "WAT", "HNT": "HNT", "WIT": "WIT", "HKT": "HKT", "CAT": "CAT", "CLT": "CLT", "ADT": "ADT", "MEZ": "MEZ", "ACST": "ACST", "HEEG": "HEEG", "LHST": "LHST", "JDT": "JDT", "HECU": "HECU", "HEPMX": "HEPMX", "WARST": "WARST", "MDT": "MDT", "HAT": "HAT"},
+ }
+ }
+ 
+@@ -119,7 +101,7 @@ func (tk *tk_TM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (tk *tk_TM) MonthsAbbreviated() []string {
+- return tk.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -129,7 +111,7 @@ func (tk *tk_TM) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (tk *tk_TM) MonthsNarrow() []string {
+- return tk.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -139,7 +121,7 @@ func (tk *tk_TM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (tk *tk_TM) MonthsWide() []string {
+- return tk.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -185,77 +167,13 @@ func (tk *tk_TM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'tk_TM' and handles both Whole and Real numbers based on 'v'
+ func (tk *tk_TM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, tk.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(tk.group) - 1; j >= 0; j-- {
+- b = append(b, tk.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, tk.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'tk_TM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (tk *tk_TM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, tk.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, tk.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, tk.percentSuffix...)
+-
+- b = append(b, tk.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'tk_TM'
+@@ -263,58 +181,7 @@ func (tk *tk_TM) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := tk.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, tk.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(tk.group) - 1; j >= 0; j-- {
+- b = append(b, tk.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, tk.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, tk.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, tk.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'tk_TM'
+@@ -323,65 +190,7 @@ func (tk *tk_TM) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := tk.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, tk.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(tk.group) - 1; j >= 0; j-- {
+- b = append(b, tk.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, tk.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, tk.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, tk.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, tk.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'tk_TM'
+@@ -389,27 +198,6 @@ func (tk *tk_TM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -418,17 +206,6 @@ func (tk *tk_TM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, tk.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -437,17 +214,6 @@ func (tk *tk_TM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, tk.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -456,20 +222,6 @@ func (tk *tk_TM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, tk.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, tk.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -478,19 +230,6 @@ func (tk *tk_TM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, tk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -499,26 +238,6 @@ func (tk *tk_TM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, tk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, tk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -527,30 +246,6 @@ func (tk *tk_TM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, tk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, tk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -559,34 +254,5 @@ func (tk *tk_TM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, tk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, tk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := tk.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/to/to.go b/to/to.go
+index a49f350..e53829d 100644
+--- a/to/to.go
++++ b/to/to.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"KM", "TS"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"ki muʻa", "taʻu ʻo Sīsū"},
+- timezones: map[string]string{"EDT": "houa fakaʻamelika-tokelau hahake taimi liliu", "UYT": "houa fakaʻulukuai taimi totonu", "WESZ": "houa fakaʻeulope-hihifo taimi liliu", "WITA": "houa fakaʻinitonisia-loto", "CHADT": "houa fakasatihami taimi liliu", "WIT": "houa fakaʻinitonisia-hahake", "GFT": "houa fakakuiana-fakafalanisē", "TMST": "houa fakatūkimenisitani taimi liliu", "ChST": "houa fakakamolo", "COT": "houa fakakolomipia taimi totonu", "HNPMX": "houa fakamekisikou-pasifika taimi totonu", "ACWDT": "houa fakaʻaositelēlia-loto-hihifo taimi liliu", "CLT": "houa fakasili taimi totonu", "ACDT": "houa fakaʻaositelēlia-loto taimi liliu", "WAT": "houa fakaʻafelika-hihifo taimi totonu", "CDT": "houa fakaʻamelika-tokelau loto taimi liliu", "AST": "houa fakaʻamelika-tokelau ʻatalanitiki taimi totonu", "UYST": "houa fakaʻulukuai taimi liliu", "AWDT": "houa fakaʻaositelēlia-hihifo taimi liliu", "∅∅∅": "houa fakaʻamasōne taimi liliu", "ECT": "houa fakaʻekuetoa", "AWST": "houa fakaʻaositelēlia-hihifo taimi totonu", "SAST": "houa fakaʻafelika-tonga", "HNEG": "houa fakafonuamata-hahake taimi totonu", "ACST": "houa fakaʻaositelēlia-loto taimi totonu", "WAST": "houa fakaʻafelika-hihifo taimi liliu", "HENOMX": "houa fakamekisikou-tokelauhihifo taimi liliu", "MST": "houa fakamakau taimi totonu", "JST": "houa fakasiapani taimi totonu", "EAT": "houa fakaʻafelika-hahake", "HEPMX": "houa fakamekisikou-pasifika taimi liliu", "HNT": "houa fakafonuaʻilofoʻou taimi totonu", "ART": "houa fakaʻasenitina taimi totonu", "NZST": "houa fakanuʻusila taimi totonu", "GMT": "houa fakakiliniuisi mālie", "WARST": "houa fakaʻasenitina-hihifo taimi liliu", "SGT": "houa fakasingapoa", "ARST": "houa fakaʻasenitina taimi liliu", "NZDT": "houa fakanuʻusila taimi liliu", "CLST": "houa fakasili taimi liliu", "BOT": "houa fakapolīvia", "HNNOMX": "houa fakamekisikou-tokelauhihifo taimi totonu", "HAST": "houa fakahauaʻi taimi totonu", "HNPM": "houa fakasā-piea-mo-mikeloni taimi totonu", "CHAST": "houa fakasatihami taimi totonu", "LHST": "houa fakamotuʻeikihoue taimi totonu", "LHDT": "houa fakamotuʻeikihoue taimi liliu", "MEZ": "houa fakaʻeulope-loto taimi totonu", "TMT": "houa fakatūkimenisitani taimi totonu", "EST": "houa fakaʻamelika-tokelau hahake taimi totonu", "VET": "houa fakavenesuela", "SRT": "houa fakasuliname", "PDT": "houa fakaʻamelika-tokelau pasifika taimi liliu", "HEPM": "houa fakasā-piea-mo-mikeloni taimi liliu", "CAT": "houa fakaʻafelika-loto", "WART": "houa fakaʻasenitina-hihifo taimi totonu", "ADT": "houa fakaʻamelika-tokelau ʻatalanitiki taimi liliu", "GYT": "houa fakakuiana", "ACWST": "houa fakaʻaositelēlia-loto-hihifo taimi totonu", "HEOG": "houa fakafonuamata-hihifo taimi liliu", "MESZ": "houa fakaʻeulope-loto taimi liliu", "CST": "houa fakaʻamelika-tokelau loto taimi totonu", "BT": "houa fakapūtani", "PST": "houa fakaʻamelika-tokelau pasifika taimi totonu", "HEEG": "houa fakafonuamata-hahake taimi liliu", "MYT": "houa fakamaleisia", "HADT": "houa fakahauaʻi taimi liliu", "HAT": "houa fakafonuaʻilofoʻou taimi liliu", "HNOG": "houa fakafonuamata-hihifo taimi totonu", "HKT": "houa fakahongi-kongi taimi totonu", "AEDT": "houa fakaʻaositelēlia-hahake taimi liliu", "IST": "houa fakaʻinitia", "OEZ": "houa fakaʻeulope-hahake taimi totonu", "AKST": "houa fakaʻalasika taimi totonu", "AKDT": "houa fakaʻalasika taimi liliu", "WIB": "houa fakaʻinitonisia-hihifo", "HKST": "houa fakahongi-kongi taimi liliu", "AEST": "houa fakaʻaositelēlia-hahake taimi totonu", "HNCU": "houa fakakiupa taimi totonu", "HECU": "houa fakakiupa taimi liliu", "MDT": "houa fakamakau taimi liliu", "WEZ": "houa fakaʻeulope-hihifo taimi totonu", "JDT": "houa fakasiapani taimi liliu", "OESZ": "houa fakaʻeulope-hahake taimi liliu", "COST": "houa fakakolomipia taimi liliu"},
++ timezones: map[string]string{"CHADT": "houa fakasatihami taimi liliu", "PDT": "houa fakaʻamelika-tokelau pasifika taimi liliu", "GYT": "houa fakakuiana", "MDT": "houa fakamakau taimi liliu", "EAT": "houa fakaʻafelika-hahake", "MESZ": "houa fakaʻeulope-loto taimi liliu", "LHST": "houa fakamotuʻeikihoue taimi totonu", "UYT": "houa fakaʻulukuai taimi totonu", "WIB": "houa fakaʻinitonisia-hihifo", "NZST": "houa fakanuʻusila taimi totonu", "JST": "houa fakasiapani taimi totonu", "MYT": "houa fakamaleisia", "HEPM": "houa fakasā-piea-mo-mikeloni taimi liliu", "VET": "houa fakavenesuela", "WIT": "houa fakaʻinitonisia-hahake", "EDT": "houa fakaʻamelika-tokelau hahake taimi liliu", "TMT": "houa fakatūkimenisitani taimi totonu", "WITA": "houa fakaʻinitonisia-loto", "NZDT": "houa fakanuʻusila taimi liliu", "HNEG": "houa fakafonuamata-hahake taimi totonu", "WESZ": "houa fakaʻeulope-hihifo taimi liliu", "MEZ": "houa fakaʻeulope-loto taimi totonu", "AWDT": "houa fakaʻaositelēlia-hihifo taimi liliu", "UYST": "houa fakaʻulukuai taimi liliu", "ACWDT": "houa fakaʻaositelēlia-loto-hihifo taimi liliu", "WAT": "houa fakaʻafelika-hihifo taimi totonu", "WART": "houa fakaʻasenitina-hihifo taimi totonu", "TMST": "houa fakatūkimenisitani taimi liliu", "HEEG": "houa fakafonuamata-hahake taimi liliu", "SGT": "houa fakasingapoa", "HKT": "houa fakahongi-kongi taimi totonu", "BOT": "houa fakapolīvia", "ACWST": "houa fakaʻaositelēlia-loto-hihifo taimi totonu", "WAST": "houa fakaʻafelika-hihifo taimi liliu", "AKDT": "houa fakaʻalasika taimi liliu", "OEZ": "houa fakaʻeulope-hahake taimi totonu", "HNOG": "houa fakafonuamata-hihifo taimi totonu", "HEOG": "houa fakafonuamata-hihifo taimi liliu", "EST": "houa fakaʻamelika-tokelau hahake taimi totonu", "ART": "houa fakaʻasenitina taimi totonu", "HNNOMX": "houa fakamekisikou-tokelauhihifo taimi totonu", "HENOMX": "houa fakamekisikou-tokelauhihifo taimi liliu", "AEST": "houa fakaʻaositelēlia-hahake taimi totonu", "PST": "houa fakaʻamelika-tokelau pasifika taimi totonu", "CST": "houa fakaʻamelika-tokelau loto taimi totonu", "ARST": "houa fakaʻasenitina taimi liliu", "AEDT": "houa fakaʻaositelēlia-hahake taimi liliu", "HEPMX": "houa fakamekisikou-pasifika taimi liliu", "AST": "houa fakaʻamelika-tokelau ʻatalanitiki taimi totonu", "SAST": "houa fakaʻafelika-tonga", "HKST": "houa fakahongi-kongi taimi liliu", "CLST": "houa fakasili taimi liliu", "ChST": "houa fakakamolo", "BT": "houa fakapūtani", "HNPMX": "houa fakamekisikou-pasifika taimi totonu", "HNT": "houa fakafonuaʻilofoʻou taimi totonu", "ECT": "houa fakaʻekuetoa", "SRT": "houa fakasuliname", "ACDT": "houa fakaʻaositelēlia-loto taimi liliu", "AWST": "houa fakaʻaositelēlia-hihifo taimi totonu", "IST": "houa fakaʻinitia", "WARST": "houa fakaʻasenitina-hihifo taimi liliu", "∅∅∅": "houa fakaʻāsolesi taimi liliu", "CDT": "houa fakaʻamelika-tokelau loto taimi liliu", "CHAST": "houa fakasatihami taimi totonu", "AKST": "houa fakaʻalasika taimi totonu", "GFT": "houa fakakuiana-fakafalanisē", "COST": "houa fakakolomipia taimi liliu", "MST": "houa fakamakau taimi totonu", "ADT": "houa fakaʻamelika-tokelau ʻatalanitiki taimi liliu", "HAST": "houa fakahauaʻi taimi totonu", "OESZ": "houa fakaʻeulope-hahake taimi liliu", "HAT": "houa fakafonuaʻilofoʻou taimi liliu", "CLT": "houa fakasili taimi totonu", "GMT": "houa fakakiliniuisi mālie", "HADT": "houa fakahauaʻi taimi liliu", "ACST": "houa fakaʻaositelēlia-loto taimi totonu", "JDT": "houa fakasiapani taimi liliu", "HNPM": "houa fakasā-piea-mo-mikeloni taimi totonu", "HNCU": "houa fakakiupa taimi totonu", "HECU": "houa fakakiupa taimi liliu", "CAT": "houa fakaʻafelika-loto", "LHDT": "houa fakamotuʻeikihoue taimi liliu", "WEZ": "houa fakaʻeulope-hihifo taimi totonu", "COT": "houa fakakolomipia taimi totonu"},
+ }
+ }
+ 
+diff --git a/to_TO/to_TO.go b/to_TO/to_TO.go
+index 59639ed..3c742c6 100644
+--- a/to_TO/to_TO.go
++++ b/to_TO/to_TO.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type to_TO struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyNegativePrefix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'to_TO' locale
+ func New() locales.Translator {
+ return &to_TO{
+- locale: "to_TO",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "Sān", "Fēp", "Maʻa", "ʻEpe", "Mē", "Sun", "Siu", "ʻAok", "Sep", "ʻOka", "Nōv", "Tīs"},
+- monthsNarrow: []string{"", "S", "F", "M", "E", "M", "S", "S", "A", "S", "O", "N", "T"},
+- monthsWide: []string{"", "Sānuali", "Fēpueli", "Maʻasi", "ʻEpeleli", "Mē", "Sune", "Siulai", "ʻAokosi", "Sepitema", "ʻOkatopa", "Nōvema", "Tīsema"},
+- daysAbbreviated: []string{"Sāp", "Mōn", "Tūs", "Pul", "Tuʻa", "Fal", "Tok"},
+- daysNarrow: []string{"S", "M", "T", "P", "T", "F", "T"},
+- daysShort: []string{"Sāp", "Mōn", "Tūs", "Pul", "Tuʻa", "Fal", "Tok"},
+- daysWide: []string{"Sāpate", "Mōnite", "Tūsite", "Pulelulu", "Tuʻapulelulu", "Falaite", "Tokonaki"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"AM", "PM"},
+- periodsWide: []string{"hengihengi", "efiafi"},
+- erasAbbreviated: []string{"KM", "TS"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ki muʻa", "taʻu ʻo Sīsū"},
+- timezones: map[string]string{"VET": "houa fakavenesuela", "ARST": "houa fakaʻasenitina taimi liliu", "AEDT": "houa fakaʻaositelēlia-hahake taimi liliu", "AWST": "houa fakaʻaositelēlia-hihifo taimi totonu", "HEPM": "houa fakasā-piea-mo-mikeloni taimi liliu", "∅∅∅": "houa fakaʻāsolesi taimi liliu", "HNNOMX": "houa fakamekisikou-tokelauhihifo taimi totonu", "HNPMX": "houa fakamekisikou-pasifika taimi totonu", "BT": "houa fakapūtani", "AEST": "houa fakaʻaositelēlia-hahake taimi totonu", "HKT": "houa fakahongi-kongi taimi totonu", "GFT": "houa fakakuiana-fakafalanisē", "WARST": "houa fakaʻasenitina-hihifo taimi liliu", "HNT": "houa fakafonuaʻilofoʻou taimi totonu", "AWDT": "houa fakaʻaositelēlia-hihifo taimi liliu", "HNEG": "houa fakafonuamata-hahake taimi totonu", "WIT": "houa fakaʻinitonisia-hahake", "EDT": "houa fakaʻamelika-tokelau hahake taimi liliu", "AKST": "houa fakaʻalasika taimi totonu", "WIB": "houa fakaʻinitonisia-hihifo", "ACWDT": "houa fakaʻaositelēlia-loto-hihifo taimi liliu", "MESZ": "houa fakaʻeulope-loto taimi liliu", "IST": "houa fakaʻinitia", "GMT": "houa fakakiliniuisi mālie", "CLST": "houa fakasili taimi liliu", "HEOG": "houa fakafonuamata-hihifo taimi liliu", "SGT": "houa fakasingapoa", "MST": "houa fakamakau taimi totonu", "ADT": "houa fakaʻamelika-tokelau ʻatalanitiki taimi liliu", "HAST": "houa fakahauaʻi taimi totonu", "WESZ": "houa fakaʻeulope-hihifo taimi liliu", "ACDT": "houa fakaʻaositelēlia-loto taimi liliu", "COST": "houa fakakolomipia taimi liliu", "SRT": "houa fakasuliname", "HEEG": "houa fakafonuamata-hahake taimi liliu", "TMT": "houa fakatūkimenisitani taimi totonu", "UYST": "houa fakaʻulukuai taimi liliu", "MEZ": "houa fakaʻeulope-loto taimi totonu", "JST": "houa fakasiapani taimi totonu", "ChST": "houa fakakamolo", "TMST": "houa fakatūkimenisitani taimi liliu", "HNPM": "houa fakasā-piea-mo-mikeloni taimi totonu", "AKDT": "houa fakaʻalasika taimi liliu", "ART": "houa fakaʻasenitina taimi totonu", "HKST": "houa fakahongi-kongi taimi liliu", "LHDT": "houa fakamotuʻeikihoue taimi liliu", "WAT": "houa fakaʻafelika-hihifo taimi totonu", "MDT": "houa fakamakau taimi liliu", "CST": "houa fakaʻamelika-tokelau loto taimi totonu", "CDT": "houa fakaʻamelika-tokelau loto taimi liliu", "AST": "houa fakaʻamelika-tokelau ʻatalanitiki taimi totonu", "HAT": "houa fakafonuaʻilofoʻou taimi liliu", "HNOG": "houa fakafonuamata-hihifo taimi totonu", "NZST": "houa fakanuʻusila taimi totonu", "CHADT": "houa fakasatihami taimi liliu", "HNCU": "houa fakakiupa taimi totonu", "OESZ": "houa fakaʻeulope-hahake taimi liliu", "CAT": "houa fakaʻafelika-loto", "JDT": "houa fakasiapani taimi liliu", "NZDT": "houa fakanuʻusila taimi liliu", "HADT": "houa fakahauaʻi taimi liliu", "PDT": "houa fakaʻamelika-tokelau pasifika taimi liliu", "WITA": "houa fakaʻinitonisia-loto", "LHST": "houa fakamotuʻeikihoue taimi totonu", "CHAST": "houa fakasatihami taimi totonu", "MYT": "houa fakamaleisia", "HECU": "houa fakakiupa taimi liliu", "WEZ": "houa fakaʻeulope-hihifo taimi totonu", "CLT": "houa fakasili taimi totonu", "WART": "houa fakaʻasenitina-hihifo taimi totonu", "GYT": "houa fakakuiana", "PST": "houa fakaʻamelika-tokelau pasifika taimi totonu", "OEZ": "houa fakaʻeulope-hahake taimi totonu", "ECT": "houa fakaʻekuetoa", "HENOMX": "houa fakamekisikou-tokelauhihifo taimi liliu", "EST": "houa fakaʻamelika-tokelau hahake taimi totonu", "UYT": "houa fakaʻulukuai taimi totonu", "ACWST": "houa fakaʻaositelēlia-loto-hihifo taimi totonu", "SAST": "houa fakaʻafelika-tonga", "BOT": "houa fakapolīvia", "WAST": "houa fakaʻafelika-hihifo taimi liliu", "COT": "houa fakakolomipia taimi totonu", "ACST": "houa fakaʻaositelēlia-loto taimi totonu", "EAT": "houa fakaʻafelika-hahake", "HEPMX": "houa fakamekisikou-pasifika taimi liliu"},
++ locale: "to_TO",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WITA": "WITA", "NZDT": "NZDT", "SRT": "SRT", "HENOMX": "HENOMX", "HNCU": "HNCU", "HNT": "HNT", "JST": "JST", "CHAST": "CHAST", "WESZ": "WESZ", "WIB": "WIB", "HAST": "HAST", "PDT": "PDT", "AKST": "AKST", "HNOG": "HNOG", "EDT": "EDT", "GYT": "GYT", "CDT": "CDT", "HNEG": "HNEG", "JDT": "JDT", "PST": "PST", "BT": "BT", "WAST": "WAST", "GFT": "GFT", "CLST": "CLST", "BOT": "BOT", "ACWDT": "ACWDT", "SGT": "SGT", "VET": "VET", "HNPMX": "HNPMX", "TMT": "TMT", "ECT": "ECT", "HADT": "HADT", "LHST": "LHST", "HEPM": "HEPM", "MDT": "MDT", "ACST": "ACST", "ACDT": "ACDT", "AEDT": "AEDT", "UYT": "UYT", "WAT": "WAT", "WARST": "WARST", "CAT": "CAT", "AWST": "AWST", "IST": "IST", "AEST": "AEST", "EAT": "EAT", "MEZ": "MEZ", "HEEG": "HEEG", "HNPM": "HNPM", "SAST": "SAST", "∅∅∅": "∅∅∅", "GMT": "GMT", "HNNOMX": "HNNOMX", "CLT": "CLT", "WEZ": "WEZ", "OEZ": "OEZ", "OESZ": "OESZ", "COST": "COST", "MESZ": "MESZ", "AWDT": "AWDT", "CHADT": "CHADT", "HEOG": "HEOG", "HKT": "HKT", "WART": "WART", "CST": "CST", "MST": "MST", "NZST": "NZST", "AST": "AST", "LHDT": "LHDT", "MYT": "MYT", "UYST": "UYST", "ADT": "ADT", "ART": "ART", "ARST": "ARST", "HECU": "HECU", "HAT": "HAT", "ChST": "ChST", "WIT": "WIT", "COT": "COT", "TMST": "TMST", "ACWST": "ACWST", "HEPMX": "HEPMX", "AKDT": "AKDT", "EST": "EST", "HKST": "HKST"},
+ }
+ }
+ 
+@@ -117,7 +94,7 @@ func (to *to_TO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (to *to_TO) MonthsAbbreviated() []string {
+- return to.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -127,7 +104,7 @@ func (to *to_TO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (to *to_TO) MonthsNarrow() []string {
+- return to.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -137,7 +114,7 @@ func (to *to_TO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (to *to_TO) MonthsWide() []string {
+- return to.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -183,73 +160,13 @@ func (to *to_TO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'to_TO' and handles both Whole and Real numbers based on 'v'
+ func (to *to_TO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, to.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, to.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, to.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'to_TO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (to *to_TO) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, to.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, to.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, to.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'to_TO'
+@@ -257,60 +174,7 @@ func (to *to_TO) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := to.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, to.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, to.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(to.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, to.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, to.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, to.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'to_TO'
+@@ -319,72 +183,7 @@ func (to *to_TO) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := to.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, to.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, to.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(to.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, to.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, to.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(to.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, to.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, to.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'to_TO'
+@@ -392,17 +191,6 @@ func (to *to_TO) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -411,17 +199,6 @@ func (to *to_TO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, to.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -430,17 +207,6 @@ func (to *to_TO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, to.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,19 +215,6 @@ func (to *to_TO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, to.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, to.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -470,28 +223,6 @@ func (to *to_TO) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, to.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, to.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, to.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -500,35 +231,6 @@ func (to *to_TO) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, to.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, to.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, to.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, to.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -537,40 +239,6 @@ func (to *to_TO) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, to.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, to.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, to.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, to.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -579,44 +247,5 @@ func (to *to_TO) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, to.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, to.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, to.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, to.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := to.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/tr/tr.go b/tr/tr.go
+index e10e0c3..c47dab9 100644
+--- a/tr/tr.go
++++ b/tr/tr.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"MÖ", "MS"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Milattan Önce", "Milattan Sonra"},
+- timezones: map[string]string{"MST": "Makao Standart Saati", "WESZ": "Batı Avrupa Yaz Saati", "HNEG": "Doğu Grönland Standart Saati", "COT": "Kolombiya Standart Saati", "ADT": "Atlantik Yaz Saati", "NZDT": "Yeni Zelanda Yaz Saati", "TMT": "Türkmenistan Standart Saati", "ACDT": "Orta Avustralya Yaz Saati", "MDT": "Makao Yaz Saati", "UYST": "Uruguay Yaz Saati", "HKT": "Hong Kong Standart Saati", "MEZ": "Orta Avrupa Standart Saati", "JDT": "Japonya Yaz Saati", "WAST": "Batı Afrika Yaz Saati", "HNNOMX": "Kuzeybatı Meksika Standart Saati", "WIT": "Doğu Endonezya Saati", "LHST": "Lord Howe Standart Saati", "JST": "Japonya Standart Saati", "GMT": "Greenwich Ortalama Saati", "WIB": "Batı Endonezya Saati", "ACWST": "İçbatı Avustralya Standart Saati", "ARST": "Arjantin Yaz Saati", "PDT": "Kuzey Amerika Pasifik Yaz Saati", "HNPM": "Saint Pierre ve Miquelon Standart Saati", "NZST": "Yeni Zelanda Standart Saati", "WARST": "Batı Arjantin Yaz Saati", "EST": "Kuzey Amerika Doğu Standart Saati", "CLST": "Şili Yaz Saati", "MYT": "Malezya Saati", "HEOG": "Batı Grönland Yaz Saati", "HKST": "Hong Kong Yaz Saati", "AWST": "Batı Avustralya Standart Saati", "CLT": "Şili Standart Saati", "GFT": "Fransız Guyanası Saati", "BOT": "Bolivya Saati", "HAST": "Hawaii-Aleut Standart Saati", "BT": "Bhutan Saati", "ACWDT": "İçbatı Avustralya Yaz Saati", "ChST": "Chamorro Saati", "CST": "Kuzey Amerika Merkezi Standart Saati", "CDT": "Kuzey Amerika Merkezi Yaz Saati", "SRT": "Surinam Saati", "CHADT": "Chatham Yaz Saati", "OESZ": "Doğu Avrupa Yaz Saati", "HNPMX": "Meksika Pasifik Kıyısı Standart Saati", "AKDT": "Alaska Yaz Saati", "ECT": "Ekvador Saati", "WART": "Batı Arjantin Standart Saati", "TMST": "Türkmenistan Yaz Saati", "AKST": "Alaska Standart Saati", "HADT": "Hawaii-Aleut Yaz Saati", "VET": "Venezuela Saati", "HAT": "Newfoundland Yaz Saati", "HNOG": "Batı Grönland Standart Saati", "WITA": "Orta Endonezya Saati", "CAT": "Orta Afrika Saati", "HEPMX": "Meksika Pasifik Kıyısı Yaz Saati", "AST": "Atlantik Standart Saati", "AEDT": "Doğu Avustralya Yaz Saati", "CHAST": "Chatham Standart Saati", "MESZ": "Orta Avrupa Yaz Saati", "SAST": "Güney Afrika Standart Saati", "ACST": "Orta Avustralya Standart Saati", "COST": "Kolombiya Yaz Saati", "HENOMX": "Kuzeybatı Meksika Yaz Saati", "HNT": "Newfoundland Standart Saati", "WEZ": "Batı Avrupa Standart Saati", "AWDT": "Batı Avustralya Yaz Saati", "HEEG": "Doğu Grönland Yaz Saati", "∅∅∅": "Peru Yaz Saati", "EDT": "Kuzey Amerika Doğu Yaz Saati", "PST": "Kuzey Amerika Pasifik Standart Saati", "AEST": "Doğu Avustralya Standart Saati", "HEPM": "Saint Pierre ve Miquelon Yaz Saati", "OEZ": "Doğu Avrupa Standart Saati", "EAT": "Doğu Afrika Saati", "HECU": "Küba Yaz Saati", "SGT": "Singapur Standart Saati", "GYT": "Guyana Saati", "UYT": "Uruguay Standart Saati", "ART": "Arjantin Standart Saati", "LHDT": "Lord Howe Yaz Saati", "WAT": "Batı Afrika Standart Saati", "HNCU": "Küba Standart Saati", "IST": "Hindistan Standart Saati"},
++ timezones: map[string]string{"HEPM": "Saint Pierre ve Miquelon Yaz Saati", "ACWST": "İçbatı Avustralya Standart Saati", "HNT": "Newfoundland Standart Saati", "TMST": "Türkmenistan Yaz Saati", "CDT": "Kuzey Amerika Merkezi Yaz Saati", "MST": "Makao Standart Saati", "AST": "Atlantik Standart Saati", "HAST": "Hawaii-Aleut Standart Saati", "WEZ": "Batı Avrupa Standart Saati", "SAST": "Güney Afrika Standart Saati", "HNOG": "Batı Grönland Standart Saati", "EDT": "Kuzey Amerika Doğu Yaz Saati", "HENOMX": "Kuzeybatı Meksika Yaz Saati", "HNCU": "Küba Standart Saati", "PDT": "Kuzey Amerika Pasifik Yaz Saati", "WAST": "Batı Afrika Yaz Saati", "WIB": "Batı Endonezya Saati", "ACST": "Orta Avustralya Standart Saati", "HNEG": "Doğu Grönland Standart Saati", "GFT": "Fransız Guyanası Saati", "UYST": "Uruguay Yaz Saati", "AKST": "Alaska Standart Saati", "HKST": "Hong Kong Yaz Saati", "CLST": "Şili Yaz Saati", "NZDT": "Yeni Zelanda Yaz Saati", "ECT": "Ekvador Saati", "EAT": "Doğu Afrika Saati", "AEST": "Doğu Avustralya Standart Saati", "GYT": "Guyana Saati", "COT": "Kolombiya Standart Saati", "NZST": "Yeni Zelanda Standart Saati", "ART": "Arjantin Standart Saati", "OEZ": "Doğu Avrupa Standart Saati", "SRT": "Surinam Saati", "AWST": "Batı Avustralya Standart Saati", "SGT": "Singapur Standart Saati", "HECU": "Küba Yaz Saati", "HNPMX": "Meksika Pasifik Kıyısı Standart Saati", "HEPMX": "Meksika Pasifik Kıyısı Yaz Saati", "AKDT": "Alaska Yaz Saati", "∅∅∅": "Brasilia Yaz Saati", "EST": "Kuzey Amerika Doğu Standart Saati", "MDT": "Makao Yaz Saati", "ARST": "Arjantin Yaz Saati", "AWDT": "Batı Avustralya Yaz Saati", "CHADT": "Chatham Yaz Saati", "HAT": "Newfoundland Yaz Saati", "WART": "Batı Arjantin Standart Saati", "HEEG": "Doğu Grönland Yaz Saati", "WAT": "Batı Afrika Standart Saati", "OESZ": "Doğu Avrupa Yaz Saati", "TMT": "Türkmenistan Standart Saati", "CAT": "Orta Afrika Saati", "MYT": "Malezya Saati", "BT": "Bhutan Saati", "COST": "Kolombiya Yaz Saati", "LHST": "Lord Howe Standart Saati", "HNPM": "Saint Pierre ve Miquelon Standart Saati", "CLT": "Şili Standart Saati", "GMT": "Greenwich Ortalama Saati", "HADT": "Hawaii-Aleut Yaz Saati", "VET": "Venezuela Saati", "AEDT": "Doğu Avustralya Yaz Saati", "UYT": "Uruguay Standart Saati", "HEOG": "Batı Grönland Yaz Saati", "CST": "Kuzey Amerika Merkezi Standart Saati", "ChST": "Chamorro Saati", "ACDT": "Orta Avustralya Yaz Saati", "LHDT": "Lord Howe Yaz Saati", "IST": "Hindistan Standart Saati", "CHAST": "Chatham Standart Saati", "WARST": "Batı Arjantin Yaz Saati", "HKT": "Hong Kong Standart Saati", "WITA": "Orta Endonezya Saati", "BOT": "Bolivya Saati", "MEZ": "Orta Avrupa Standart Saati", "JST": "Japonya Standart Saati", "ACWDT": "İçbatı Avustralya Yaz Saati", "WESZ": "Batı Avrupa Yaz Saati", "WIT": "Doğu Endonezya Saati", "ADT": "Atlantik Yaz Saati", "MESZ": "Orta Avrupa Yaz Saati", "HNNOMX": "Kuzeybatı Meksika Standart Saati", "JDT": "Japonya Yaz Saati", "PST": "Kuzey Amerika Pasifik Standart Saati"},
+ }
+ }
+ 
+diff --git a/tr_CY/tr_CY.go b/tr_CY/tr_CY.go
+index 5e16bc6..05394c7 100644
+--- a/tr_CY/tr_CY.go
++++ b/tr_CY/tr_CY.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type tr_CY struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'tr_CY' locale
+ func New() locales.Translator {
+ return &tr_CY{
+- locale: "tr_CY",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara"},
+- monthsNarrow: []string{"", "O", "Ş", "M", "N", "M", "H", "T", "A", "E", "E", "K", "A"},
+- monthsWide: []string{"", "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"},
+- daysAbbreviated: []string{"Paz", "Pzt", "Sal", "Çar", "Per", "Cum", "Cmt"},
+- daysNarrow: []string{"P", "P", "S", "Ç", "P", "C", "C"},
+- daysShort: []string{"Pa", "Pt", "Sa", "Ça", "Pe", "Cu", "Ct"},
+- daysWide: []string{"Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"},
+- periodsAbbreviated: []string{"ÖÖ", "ÖS"},
+- periodsNarrow: []string{"öö", "ös"},
+- periodsWide: []string{"ÖÖ", "ÖS"},
+- erasAbbreviated: []string{"MÖ", "MS"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Milattan Önce", "Milattan Sonra"},
+- timezones: map[string]string{"HNCU": "Küba Standart Saati", "WIB": "Batı Endonezya Saati", "AEDT": "Doğu Avustralya Yaz Saati", "SAST": "Güney Afrika Standart Saati", "COST": "Kolombiya Yaz Saati", "HNNOMX": "Kuzeybatı Meksika Standart Saati", "HEOG": "Batı Grönland Yaz Saati", "GFT": "Fransız Guyanası Saati", "EST": "Kuzey Amerika Doğu Standart Saati", "HADT": "Hawaii-Aleut Yaz Saati", "NZST": "Yeni Zelanda Standart Saati", "NZDT": "Yeni Zelanda Yaz Saati", "IST": "Hindistan Standart Saati", "HNEG": "Doğu Grönland Standart Saati", "CDT": "Kuzey Amerika Merkezi Yaz Saati", "WESZ": "Batı Avrupa Yaz Saati", "HAT": "Newfoundland Yaz Saati", "AWST": "Batı Avustralya Standart Saati", "ACST": "Orta Avustralya Standart Saati", "WARST": "Batı Arjantin Yaz Saati", "SGT": "Singapur Standart Saati", "MST": "Makao Standart Saati", "TMST": "Türkmenistan Yaz Saati", "EDT": "Kuzey Amerika Doğu Yaz Saati", "AKST": "Alaska Standart Saati", "PST": "Kuzey Amerika Pasifik Standart Saati", "HNPM": "Saint Pierre ve Miquelon Standart Saati", "∅∅∅": "Amazon Yaz Saati", "JDT": "Japonya Yaz Saati", "BOT": "Bolivya Saati", "AWDT": "Batı Avustralya Yaz Saati", "ChST": "Chamorro Saati", "HENOMX": "Kuzeybatı Meksika Yaz Saati", "HECU": "Küba Yaz Saati", "HEEG": "Doğu Grönland Yaz Saati", "WAST": "Batı Afrika Yaz Saati", "CST": "Kuzey Amerika Merkezi Standart Saati", "WIT": "Doğu Endonezya Saati", "GMT": "Greenwich Ortalama Saati", "UYT": "Uruguay Standart Saati", "SRT": "Surinam Saati", "ARST": "Arjantin Yaz Saati", "HEPM": "Saint Pierre ve Miquelon Yaz Saati", "LHST": "Lord Howe Standart Saati", "LHDT": "Lord Howe Yaz Saati", "OESZ": "Doğu Avrupa Yaz Saati", "HKT": "Hong Kong Standart Saati", "ECT": "Ekvador Saati", "AKDT": "Alaska Yaz Saati", "ACWST": "İçbatı Avustralya Standart Saati", "AEST": "Doğu Avustralya Standart Saati", "HNOG": "Batı Grönland Standart Saati", "MESZ": "Orta Avrupa Yaz Saati", "UYST": "Uruguay Yaz Saati", "VET": "Venezuela Saati", "ART": "Arjantin Standart Saati", "HNPMX": "Meksika Pasifik Kıyısı Standart Saati", "GYT": "Guyana Saati", "HKST": "Hong Kong Yaz Saati", "HNT": "Newfoundland Standart Saati", "CHADT": "Chatham Yaz Saati", "TMT": "Türkmenistan Standart Saati", "EAT": "Doğu Afrika Saati", "WART": "Batı Arjantin Standart Saati", "WAT": "Batı Afrika Standart Saati", "MDT": "Makao Yaz Saati", "HEPMX": "Meksika Pasifik Kıyısı Yaz Saati", "AST": "Atlantik Standart Saati", "CHAST": "Chatham Standart Saati", "CLT": "Şili Standart Saati", "JST": "Japonya Standart Saati", "ACDT": "Orta Avustralya Yaz Saati", "ADT": "Atlantik Yaz Saati", "CLST": "Şili Yaz Saati", "WEZ": "Batı Avrupa Standart Saati", "ACWDT": "İçbatı Avustralya Yaz Saati", "WITA": "Orta Endonezya Saati", "MEZ": "Orta Avrupa Standart Saati", "OEZ": "Doğu Avrupa Standart Saati", "HAST": "Hawaii-Aleut Standart Saati", "BT": "Bhutan Saati", "CAT": "Orta Afrika Saati", "COT": "Kolombiya Standart Saati", "MYT": "Malezya Saati", "PDT": "Kuzey Amerika Pasifik Yaz Saati"},
++ locale: "tr_CY",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HENOMX": "HENOMX", "LHST": "LHST", "LHDT": "LHDT", "GYT": "GYT", "JST": "JST", "EDT": "EDT", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "∅∅∅": "∅∅∅", "TMST": "TMST", "ADT": "ADT", "GMT": "GMT", "HKT": "HKT", "HEEG": "HEEG", "AWST": "AWST", "WESZ": "WESZ", "HEPMX": "HEPMX", "HAT": "HAT", "WIT": "WIT", "SAST": "SAST", "ARST": "ARST", "TMT": "TMT", "HADT": "HADT", "MESZ": "MESZ", "HEPM": "HEPM", "ACWDT": "ACWDT", "HECU": "HECU", "AKDT": "AKDT", "COST": "COST", "WARST": "WARST", "CLST": "CLST", "NZST": "NZST", "ART": "ART", "ACST": "ACST", "AWDT": "AWDT", "PST": "PST", "PDT": "PDT", "SGT": "SGT", "OESZ": "OESZ", "JDT": "JDT", "UYT": "UYT", "WAST": "WAST", "AKST": "AKST", "OEZ": "OEZ", "HNT": "HNT", "COT": "COT", "BOT": "BOT", "VET": "VET", "HEOG": "HEOG", "CLT": "CLT", "NZDT": "NZDT", "AST": "AST", "BT": "BT", "UYST": "UYST", "WEZ": "WEZ", "HNCU": "HNCU", "CDT": "CDT", "SRT": "SRT", "AEDT": "AEDT", "CHADT": "CHADT", "EST": "EST", "CAT": "CAT", "MST": "MST", "MDT": "MDT", "ChST": "ChST", "HNPM": "HNPM", "HNPMX": "HNPMX", "WITA": "WITA", "ECT": "ECT", "EAT": "EAT", "HAST": "HAST", "MEZ": "MEZ", "MYT": "MYT", "ACWST": "ACWST", "HKST": "HKST", "AEST": "AEST", "CHAST": "CHAST", "WAT": "WAT", "CST": "CST", "WIB": "WIB", "HNEG": "HNEG", "IST": "IST", "GFT": "GFT", "WART": "WART", "HNOG": "HNOG"},
+ }
+ }
+ 
+@@ -135,7 +112,7 @@ func (tr *tr_CY) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (tr *tr_CY) MonthsAbbreviated() []string {
+- return tr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -145,7 +122,7 @@ func (tr *tr_CY) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (tr *tr_CY) MonthsNarrow() []string {
+- return tr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -155,7 +132,7 @@ func (tr *tr_CY) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (tr *tr_CY) MonthsWide() []string {
+- return tr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -201,86 +178,13 @@ func (tr *tr_CY) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'tr_CY' and handles both Whole and Real numbers based on 'v'
+ func (tr *tr_CY) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, tr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, tr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, tr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'tr_CY' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (tr *tr_CY) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, tr.decimal[0])
+- inWhole = true
+-
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, tr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, tr.minus[0])
+- }
+-
+- b = append(b, tr.percent[0])
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'tr_CY'
+@@ -288,56 +192,7 @@ func (tr *tr_CY) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := tr.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, tr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, tr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, tr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, tr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'tr_CY'
+@@ -346,68 +201,7 @@ func (tr *tr_CY) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := tr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, tr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, tr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, tr.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, tr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, tr.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'tr_CY'
+@@ -415,23 +209,6 @@ func (tr *tr_CY) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -440,17 +217,6 @@ func (tr *tr_CY) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, tr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -459,17 +225,6 @@ func (tr *tr_CY) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, tr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -478,20 +233,6 @@ func (tr *tr_CY) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, tr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, tr.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+diff --git a/tr_TR/tr_TR.go b/tr_TR/tr_TR.go
+index 47645b3..3cc0641 100644
+--- a/tr_TR/tr_TR.go
++++ b/tr_TR/tr_TR.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type tr_TR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'tr_TR' locale
+ func New() locales.Translator {
+ return &tr_TR{
+- locale: "tr_TR",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara"},
+- monthsNarrow: []string{"", "O", "Ş", "M", "N", "M", "H", "T", "A", "E", "E", "K", "A"},
+- monthsWide: []string{"", "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"},
+- daysAbbreviated: []string{"Paz", "Pzt", "Sal", "Çar", "Per", "Cum", "Cmt"},
+- daysNarrow: []string{"P", "P", "S", "Ç", "P", "C", "C"},
+- daysShort: []string{"Pa", "Pt", "Sa", "Ça", "Pe", "Cu", "Ct"},
+- daysWide: []string{"Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"},
+- periodsAbbreviated: []string{"ÖÖ", "ÖS"},
+- periodsNarrow: []string{"öö", "ös"},
+- periodsWide: []string{"ÖÖ", "ÖS"},
+- erasAbbreviated: []string{"MÖ", "MS"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Milattan Önce", "Milattan Sonra"},
+- timezones: map[string]string{"WARST": "Batı Arjantin Yaz Saati", "EDT": "Kuzey Amerika Doğu Yaz Saati", "UYST": "Uruguay Yaz Saati", "WITA": "Orta Endonezya Saati", "ACDT": "Orta Avustralya Yaz Saati", "HKT": "Hong Kong Standart Saati", "HEPM": "Saint Pierre ve Miquelon Yaz Saati", "IST": "Hindistan Standart Saati", "JDT": "Japonya Yaz Saati", "TMT": "Türkmenistan Standart Saati", "CAT": "Orta Afrika Saati", "PST": "Kuzey Amerika Pasifik Standart Saati", "CHADT": "Chatham Yaz Saati", "JST": "Japonya Standart Saati", "HNEG": "Doğu Grönland Standart Saati", "MYT": "Malezya Saati", "ACWDT": "İçbatı Avustralya Yaz Saati", "ARST": "Arjantin Yaz Saati", "MEZ": "Orta Avrupa Standart Saati", "CLT": "Şili Standart Saati", "WAT": "Batı Afrika Standart Saati", "HNPMX": "Meksika Pasifik Kıyısı Standart Saati", "HEPMX": "Meksika Pasifik Kıyısı Yaz Saati", "HNPM": "Saint Pierre ve Miquelon Standart Saati", "AEDT": "Doğu Avustralya Yaz Saati", "EAT": "Doğu Afrika Saati", "COT": "Kolombiya Standart Saati", "HECU": "Küba Yaz Saati", "PDT": "Kuzey Amerika Pasifik Yaz Saati", "ACWST": "İçbatı Avustralya Standart Saati", "WAST": "Batı Afrika Yaz Saati", "SGT": "Singapur Standart Saati", "LHDT": "Lord Howe Yaz Saati", "HKST": "Hong Kong Yaz Saati", "SAST": "Güney Afrika Standart Saati", "TMST": "Türkmenistan Yaz Saati", "EST": "Kuzey Amerika Doğu Standart Saati", "MDT": "Makao Yaz Saati", "WIB": "Batı Endonezya Saati", "HAST": "Hawaii-Aleut Standart Saati", "HNOG": "Batı Grönland Standart Saati", "OEZ": "Doğu Avrupa Standart Saati", "GMT": "Greenwich Ortalama Saati", "HNCU": "Küba Standart Saati", "SRT": "Surinam Saati", "NZST": "Yeni Zelanda Standart Saati", "AWST": "Batı Avustralya Standart Saati", "ACST": "Orta Avustralya Standart Saati", "COST": "Kolombiya Yaz Saati", "MST": "Makao Standart Saati", "UYT": "Uruguay Standart Saati", "HADT": "Hawaii-Aleut Yaz Saati", "WIT": "Doğu Endonezya Saati", "CLST": "Şili Yaz Saati", "HEEG": "Doğu Grönland Yaz Saati", "∅∅∅": "Peru Yaz Saati", "AKDT": "Alaska Yaz Saati", "ADT": "Atlantik Yaz Saati", "HAT": "Newfoundland Yaz Saati", "ART": "Arjantin Standart Saati", "WART": "Batı Arjantin Standart Saati", "HENOMX": "Kuzeybatı Meksika Yaz Saati", "CDT": "Kuzey Amerika Merkezi Yaz Saati", "LHST": "Lord Howe Standart Saati", "CST": "Kuzey Amerika Merkezi Standart Saati", "WEZ": "Batı Avrupa Standart Saati", "WESZ": "Batı Avrupa Yaz Saati", "HNT": "Newfoundland Standart Saati", "AWDT": "Batı Avustralya Yaz Saati", "ChST": "Chamorro Saati", "GFT": "Fransız Guyanası Saati", "HNNOMX": "Kuzeybatı Meksika Standart Saati", "VET": "Venezuela Saati", "HEOG": "Batı Grönland Yaz Saati", "AEST": "Doğu Avustralya Standart Saati", "MESZ": "Orta Avrupa Yaz Saati", "OESZ": "Doğu Avrupa Yaz Saati", "CHAST": "Chatham Standart Saati", "BOT": "Bolivya Saati", "NZDT": "Yeni Zelanda Yaz Saati", "ECT": "Ekvador Saati", "GYT": "Guyana Saati", "AKST": "Alaska Standart Saati", "AST": "Atlantik Standart Saati", "BT": "Bhutan Saati"},
++ locale: "tr_TR",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ChST": "ChST", "HADT": "HADT", "BT": "BT", "OEZ": "OEZ", "SAST": "SAST", "NZST": "NZST", "CHAST": "CHAST", "WEZ": "WEZ", "HEPMX": "HEPMX", "OESZ": "OESZ", "CAT": "CAT", "HNPM": "HNPM", "JDT": "JDT", "ACWDT": "ACWDT", "AKST": "AKST", "JST": "JST", "EDT": "EDT", "LHST": "LHST", "HNT": "HNT", "TMST": "TMST", "MST": "MST", "GMT": "GMT", "MESZ": "MESZ", "HEPM": "HEPM", "ACWST": "ACWST", "GYT": "GYT", "HEOG": "HEOG", "HKST": "HKST", "WIB": "WIB", "HEEG": "HEEG", "IST": "IST", "HNPMX": "HNPMX", "HAT": "HAT", "COT": "COT", "ACDT": "ACDT", "SRT": "SRT", "MEZ": "MEZ", "HNEG": "HNEG", "AWDT": "AWDT", "MYT": "MYT", "UYT": "UYT", "WAST": "WAST", "AST": "AST", "COST": "COST", "EST": "EST", "WART": "WART", "CDT": "CDT", "BOT": "BOT", "UYST": "UYST", "WESZ": "WESZ", "WARST": "WARST", "TMT": "TMT", "WITA": "WITA", "ECT": "ECT", "EAT": "EAT", "HAST": "HAST", "AEDT": "AEDT", "SGT": "SGT", "HECU": "HECU", "NZDT": "NZDT", "AWST": "AWST", "WAT": "WAT", "HNOG": "HNOG", "ARST": "ARST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "PDT": "PDT", "HNCU": "HNCU", "AKDT": "AKDT", "WIT": "WIT", "CLT": "CLT", "CST": "CST", "AEST": "AEST", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "LHDT": "LHDT", "PST": "PST", "VET": "VET", "GFT": "GFT", "MDT": "MDT", "ART": "ART", "ACST": "ACST", "HKT": "HKT", "CLST": "CLST", "ADT": "ADT"},
+ }
+ }
+ 
+@@ -135,7 +112,7 @@ func (tr *tr_TR) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (tr *tr_TR) MonthsAbbreviated() []string {
+- return tr.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -145,7 +122,7 @@ func (tr *tr_TR) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (tr *tr_TR) MonthsNarrow() []string {
+- return tr.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -155,7 +132,7 @@ func (tr *tr_TR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (tr *tr_TR) MonthsWide() []string {
+- return tr.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -201,86 +178,13 @@ func (tr *tr_TR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'tr_TR' and handles both Whole and Real numbers based on 'v'
+ func (tr *tr_TR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, tr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, tr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, tr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'tr_TR' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (tr *tr_TR) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, tr.decimal[0])
+- inWhole = true
+-
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, tr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, tr.minus[0])
+- }
+-
+- b = append(b, tr.percent[0])
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'tr_TR'
+@@ -288,56 +192,7 @@ func (tr *tr_TR) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := tr.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, tr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, tr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, tr.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, tr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'tr_TR'
+@@ -346,68 +201,7 @@ func (tr *tr_TR) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := tr.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, tr.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, tr.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, tr.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, tr.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, tr.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'tr_TR'
+@@ -415,23 +209,6 @@ func (tr *tr_TR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -440,17 +217,6 @@ func (tr *tr_TR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, tr.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -459,17 +225,6 @@ func (tr *tr_TR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, tr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -478,20 +233,6 @@ func (tr *tr_TR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, tr.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, tr.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -500,19 +241,6 @@ func (tr *tr_TR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, tr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,26 +249,6 @@ func (tr *tr_TR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, tr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, tr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -549,30 +257,6 @@ func (tr *tr_TR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, tr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, tr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -581,34 +265,5 @@ func (tr *tr_TR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, tr.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, tr.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := tr.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/twq/twq.go b/twq/twq.go
+index 870ecd3..272bdf8 100644
+--- a/twq/twq.go
++++ b/twq/twq.go
+@@ -61,7 +61,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"IJ", "IZ"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Isaa jine", "Isaa zamanoo"},
+- timezones: map[string]string{"LHDT": "LHDT", "TMT": "TMT", "WARST": "WARST", "SGT": "SGT", "EST": "EST", "WIT": "WIT", "HAT": "HAT", "HNPM": "HNPM", "NZST": "NZST", "BOT": "BOT", "GFT": "GFT", "OESZ": "OESZ", "CDT": "CDT", "GYT": "GYT", "ART": "ART", "HNOG": "HNOG", "HEOG": "HEOG", "WITA": "WITA", "LHST": "LHST", "WAST": "WAST", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "HNT": "HNT", "AWST": "AWST", "∅∅∅": "∅∅∅", "BT": "BT", "PDT": "PDT", "ACWDT": "ACWDT", "CLT": "CLT", "TMST": "TMST", "ADT": "ADT", "HAST": "HAST", "VET": "VET", "WESZ": "WESZ", "JDT": "JDT", "ChST": "ChST", "GMT": "GMT", "HNPMX": "HNPMX", "AST": "AST", "PST": "PST", "ACDT": "ACDT", "HNCU": "HNCU", "HADT": "HADT", "SRT": "SRT", "MEZ": "MEZ", "NZDT": "NZDT", "CHAST": "CHAST", "AKDT": "AKDT", "HEPM": "HEPM", "MESZ": "MESZ", "JST": "JST", "CAT": "CAT", "MDT": "MDT", "AWDT": "AWDT", "SAST": "SAST", "ARST": "ARST", "HKST": "HKST", "WART": "WART", "HENOMX": "HENOMX", "CST": "CST", "MYT": "MYT", "UYT": "UYT", "HKT": "HKT", "WAT": "WAT", "OEZ": "OEZ", "COT": "COT", "COST": "COST", "CHADT": "CHADT", "EAT": "EAT", "EDT": "EDT", "HEEG": "HEEG", "HECU": "HECU", "HEPMX": "HEPMX", "IST": "IST", "CLST": "CLST", "WIB": "WIB", "HNEG": "HNEG", "ACST": "ACST", "ECT": "ECT", "MST": "MST", "AKST": "AKST", "UYST": "UYST", "ACWST": "ACWST", "AEST": "AEST", "AEDT": "AEDT"},
++ timezones: map[string]string{"MESZ": "MESZ", "ACDT": "ACDT", "AEDT": "AEDT", "GYT": "GYT", "HKST": "HKST", "TMT": "TMT", "WITA": "WITA", "HNEG": "HNEG", "HECU": "HECU", "GFT": "GFT", "HNT": "HNT", "SAST": "SAST", "TMST": "TMST", "CAT": "CAT", "CST": "CST", "LHDT": "LHDT", "PST": "PST", "WART": "WART", "WARST": "WARST", "COST": "COST", "WIB": "WIB", "GMT": "GMT", "ChST": "ChST", "ARST": "ARST", "EAT": "EAT", "MEZ": "MEZ", "CHAST": "CHAST", "PDT": "PDT", "AKST": "AKST", "WESZ": "WESZ", "AWST": "AWST", "HEPM": "HEPM", "SGT": "SGT", "WAT": "WAT", "WAST": "WAST", "MST": "MST", "HADT": "HADT", "HENOMX": "HENOMX", "CHADT": "CHADT", "UYT": "UYT", "EDT": "EDT", "HEOG": "HEOG", "ACST": "ACST", "JDT": "JDT", "∅∅∅": "∅∅∅", "BT": "BT", "HEPMX": "HEPMX", "WIT": "WIT", "EST": "EST", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "WEZ": "WEZ", "HNCU": "HNCU", "AKDT": "AKDT", "MDT": "MDT", "VET": "VET", "NZST": "NZST", "ART": "ART", "SRT": "SRT", "MYT": "MYT", "HNOG": "HNOG", "ACWST": "ACWST", "AST": "AST", "ADT": "ADT", "HAST": "HAST", "LHST": "LHST", "HNPM": "HNPM", "OEZ": "OEZ", "OESZ": "OESZ", "JST": "JST", "UYST": "UYST", "AEST": "AEST", "HNPMX": "HNPMX", "ECT": "ECT", "BOT": "BOT", "IST": "IST", "ACWDT": "ACWDT", "CDT": "CDT", "NZDT": "NZDT", "CLST": "CLST", "HEEG": "HEEG", "HAT": "HAT", "COT": "COT", "HKT": "HKT", "CLT": "CLT"},
+ }
+ }
+ 
+diff --git a/twq_NE/twq_NE.go b/twq_NE/twq_NE.go
+index d54a15a..c82d4f2 100644
+--- a/twq_NE/twq_NE.go
++++ b/twq_NE/twq_NE.go
+@@ -42,26 +42,13 @@ type twq_NE struct {
+ // New returns a new instance of translator for the 'twq_NE' locale
+ func New() locales.Translator {
+ return &twq_NE{
+- locale: "twq_NE",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Žan", "Fee", "Mar", "Awi", "Me", "Žuw", "Žuy", "Ut", "Sek", "Okt", "Noo", "Dee"},
+- monthsNarrow: []string{"", "Ž", "F", "M", "A", "M", "Ž", "Ž", "U", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Žanwiye", "Feewiriye", "Marsi", "Awiril", "Me", "Žuweŋ", "Žuyye", "Ut", "Sektanbur", "Oktoobur", "Noowanbur", "Deesanbur"},
+- daysAbbreviated: []string{"Alh", "Ati", "Ata", "Ala", "Alm", "Alz", "Asi"},
+- daysNarrow: []string{"H", "T", "T", "L", "L", "L", "S"},
+- daysWide: []string{"Alhadi", "Atinni", "Atalaata", "Alarba", "Alhamiisa", "Alzuma", "Asibti"},
+- periodsAbbreviated: []string{"Subbaahi", "Zaarikay b"},
+- periodsWide: []string{"Subbaahi", "Zaarikay b"},
+- erasAbbreviated: []string{"IJ", "IZ"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Isaa jine", "Isaa zamanoo"},
+- timezones: map[string]string{"EAT": "EAT", "EDT": "EDT", "ACWDT": "ACWDT", "HEOG": "HEOG", "HNPM": "HNPM", "MEZ": "MEZ", "LHDT": "LHDT", "TMST": "TMST", "BOT": "BOT", "MYT": "MYT", "ART": "ART", "AEST": "AEST", "CAT": "CAT", "ADT": "ADT", "GYT": "GYT", "HNOG": "HNOG", "GFT": "GFT", "OEZ": "OEZ", "CDT": "CDT", "LHST": "LHST", "JDT": "JDT", "CHADT": "CHADT", "TMT": "TMT", "ChST": "ChST", "AKDT": "AKDT", "UYST": "UYST", "WITA": "WITA", "HNT": "HNT", "PST": "PST", "AEDT": "AEDT", "WAST": "WAST", "EST": "EST", "BT": "BT", "SRT": "SRT", "PDT": "PDT", "ACDT": "ACDT", "COST": "COST", "AST": "AST", "HAST": "HAST", "MST": "MST", "MESZ": "MESZ", "SAST": "SAST", "CLST": "CLST", "HNEG": "HNEG", "WARST": "WARST", "GMT": "GMT", "SGT": "SGT", "HKT": "HKT", "AWST": "AWST", "HNCU": "HNCU", "∅∅∅": "∅∅∅", "VET": "VET", "WART": "WART", "COT": "COT", "HNPMX": "HNPMX", "NZST": "NZST", "ACWST": "ACWST", "WEZ": "WEZ", "HKST": "HKST", "HEPM": "HEPM", "ACST": "ACST", "ECT": "ECT", "HECU": "HECU", "CST": "CST", "WESZ": "WESZ", "HENOMX": "HENOMX", "MDT": "MDT", "HAT": "HAT", "WIB": "WIB", "CHAST": "CHAST", "JST": "JST", "AWDT": "AWDT", "CLT": "CLT", "HEEG": "HEEG", "WAT": "WAT", "OESZ": "OESZ", "UYT": "UYT", "HADT": "HADT", "ARST": "ARST", "WIT": "WIT", "NZDT": "NZDT", "IST": "IST", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "AKST": "AKST"},
++ locale: "twq_NE",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"UYST": "UYST", "∅∅∅": "∅∅∅", "NZST": "NZST", "JST": "JST", "HKT": "HKT", "SRT": "SRT", "CHAST": "CHAST", "CLT": "CLT", "HNEG": "HNEG", "HEEG": "HEEG", "IST": "IST", "WIT": "WIT", "GYT": "GYT", "ACWDT": "ACWDT", "AEST": "AEST", "ACST": "ACST", "AWST": "AWST", "ACWST": "ACWST", "VET": "VET", "HNCU": "HNCU", "COT": "COT", "TMT": "TMT", "MEZ": "MEZ", "ACDT": "ACDT", "HECU": "HECU", "AKDT": "AKDT", "WART": "WART", "CLST": "CLST", "WITA": "WITA", "ART": "ART", "AWDT": "AWDT", "BT": "BT", "AEDT": "AEDT", "SGT": "SGT", "GFT": "GFT", "TMST": "TMST", "HENOMX": "HENOMX", "HNPM": "HNPM", "GMT": "GMT", "JDT": "JDT", "WESZ": "WESZ", "HNT": "HNT", "NZDT": "NZDT", "HAST": "HAST", "PDT": "PDT", "CAT": "CAT", "MST": "MST", "ECT": "ECT", "PST": "PST", "EAT": "EAT", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "UYT": "UYT", "OEZ": "OEZ", "SAST": "SAST", "CST": "CST", "BOT": "BOT", "LHST": "LHST", "HEPMX": "HEPMX", "WEZ": "WEZ", "WAT": "WAT", "WAST": "WAST", "HEOG": "HEOG", "EST": "EST", "HADT": "HADT", "WARST": "WARST", "ARST": "ARST", "MESZ": "MESZ", "LHDT": "LHDT", "AKST": "AKST", "HAT": "HAT", "COST": "COST", "EDT": "EDT", "WIB": "WIB", "MYT": "MYT", "HNOG": "HNOG", "AST": "AST", "ADT": "ADT", "ChST": "ChST", "CHADT": "CHADT", "HNPMX": "HNPMX", "OESZ": "OESZ", "HKST": "HKST", "CDT": "CDT", "MDT": "MDT"},
+ }
+ }
+ 
+@@ -107,7 +94,7 @@ func (twq *twq_NE) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (twq *twq_NE) MonthsAbbreviated() []string {
+- return twq.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -117,7 +104,7 @@ func (twq *twq_NE) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (twq *twq_NE) MonthsNarrow() []string {
+- return twq.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -127,7 +114,7 @@ func (twq *twq_NE) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (twq *twq_NE) MonthsWide() []string {
+- return twq.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -173,75 +160,13 @@ func (twq *twq_NE) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'twq_NE' and handles both Whole and Real numbers based on 'v'
+ func (twq *twq_NE) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, twq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(twq.group) - 1; j >= 0; j-- {
+- b = append(b, twq.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, twq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'twq_NE' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (twq *twq_NE) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, twq.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, twq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, twq.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'twq_NE'
+@@ -249,56 +174,7 @@ func (twq *twq_NE) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := twq.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, twq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(twq.group) - 1; j >= 0; j-- {
+- b = append(b, twq.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, twq.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, twq.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'twq_NE'
+@@ -307,63 +183,7 @@ func (twq *twq_NE) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := twq.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, twq.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(twq.group) - 1; j >= 0; j-- {
+- b = append(b, twq.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, twq.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, twq.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'twq_NE'
+@@ -371,17 +191,6 @@ func (twq *twq_NE) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -390,17 +199,6 @@ func (twq *twq_NE) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, twq.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -409,17 +207,6 @@ func (twq *twq_NE) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, twq.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -428,19 +215,6 @@ func (twq *twq_NE) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, twq.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, twq.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,19 +223,6 @@ func (twq *twq_NE) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, twq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -470,26 +231,6 @@ func (twq *twq_NE) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, twq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, twq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -498,30 +239,6 @@ func (twq *twq_NE) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, twq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, twq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -530,34 +247,5 @@ func (twq *twq_NE) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, twq.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, twq.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := twq.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/tzm/tzm.go b/tzm/tzm.go
+index 78ea5cd..deece41 100644
+--- a/tzm/tzm.go
++++ b/tzm/tzm.go
+@@ -65,7 +65,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ZƐ", "ḌƐ"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Zdat Ɛisa (TAƔ)", "Ḍeffir Ɛisa (TAƔ)"},
+- timezones: map[string]string{"MST": "MST", "WIT": "WIT", "AEST": "AEST", "AEDT": "AEDT", "MEZ": "MEZ", "OESZ": "OESZ", "HNCU": "HNCU", "ADT": "ADT", "MYT": "MYT", "ACWST": "ACWST", "BOT": "BOT", "EAT": "EAT", "HNNOMX": "HNNOMX", "GMT": "GMT", "EST": "EST", "CHADT": "CHADT", "SAST": "SAST", "JST": "JST", "EDT": "EDT", "HKT": "HKT", "WITA": "WITA", "NZDT": "NZDT", "LHST": "LHST", "LHDT": "LHDT", "CST": "CST", "VET": "VET", "HEOG": "HEOG", "IST": "IST", "WAST": "WAST", "AWDT": "AWDT", "WARST": "WARST", "BT": "BT", "ARST": "ARST", "WEZ": "WEZ", "HEPMX": "HEPMX", "AWST": "AWST", "JDT": "JDT", "SGT": "SGT", "HEPM": "HEPM", "NZST": "NZST", "TMST": "TMST", "ECT": "ECT", "HECU": "HECU", "AST": "AST", "UYST": "UYST", "HNOG": "HNOG", "COT": "COT", "GYT": "GYT", "HAST": "HAST", "HAT": "HAT", "CLST": "CLST", "ACST": "ACST", "OEZ": "OEZ", "CAT": "CAT", "COST": "COST", "WIB": "WIB", "SRT": "SRT", "HKST": "HKST", "AKDT": "AKDT", "CDT": "CDT", "HENOMX": "HENOMX", "MDT": "MDT", "WESZ": "WESZ", "GFT": "GFT", "TMT": "TMT", "WAT": "WAT", "AKST": "AKST", "PST": "PST", "HNPM": "HNPM", "HEEG": "HEEG", "HNPMX": "HNPMX", "HNT": "HNT", "CHAST": "CHAST", "HNEG": "HNEG", "WART": "WART", "UYT": "UYT", "HADT": "HADT", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "CLT": "CLT", "ChST": "ChST", "ACDT": "ACDT", "ART": "ART", "PDT": "PDT", "MESZ": "MESZ"},
++ timezones: map[string]string{"TMST": "TMST", "EST": "EST", "ART": "ART", "WAST": "WAST", "WIT": "WIT", "HEOG": "HEOG", "SAST": "SAST", "WIB": "WIB", "CST": "CST", "GMT": "GMT", "ACST": "ACST", "JDT": "JDT", "AEDT": "AEDT", "PDT": "PDT", "WESZ": "WESZ", "CLT": "CLT", "WITA": "WITA", "ADT": "ADT", "ACWDT": "ACWDT", "IST": "IST", "HNPMX": "HNPMX", "AKST": "AKST", "HNOG": "HNOG", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "HNT": "HNT", "NZDT": "NZDT", "HADT": "HADT", "ARST": "ARST", "ACDT": "ACDT", "LHST": "LHST", "HECU": "HECU", "GYT": "GYT", "ECT": "ECT", "MDT": "MDT", "PST": "PST", "MEZ": "MEZ", "HEPM": "HEPM", "CHADT": "CHADT", "UYST": "UYST", "COT": "COT", "HKT": "HKT", "HKST": "HKST", "BOT": "BOT", "VET": "VET", "WAT": "WAT", "OEZ": "OEZ", "OESZ": "OESZ", "AWDT": "AWDT", "HNEG": "HNEG", "AWST": "AWST", "AEST": "AEST", "CHAST": "CHAST", "WEZ": "WEZ", "SGT": "SGT", "NZST": "NZST", "CDT": "CDT", "COST": "COST", "HENOMX": "HENOMX", "GFT": "GFT", "TMT": "TMT", "CLST": "CLST", "MST": "MST", "HAST": "HAST", "HEEG": "HEEG", "MESZ": "MESZ", "JST": "JST", "HEPMX": "HEPMX", "HAT": "HAT", "SRT": "SRT", "EAT": "EAT", "BT": "BT", "UYT": "UYT", "MYT": "MYT", "HNPM": "HNPM", "LHDT": "LHDT", "∅∅∅": "∅∅∅", "WART": "WART", "EDT": "EDT", "ChST": "ChST", "ACWST": "ACWST", "AKDT": "AKDT", "WARST": "WARST", "CAT": "CAT", "AST": "AST"},
+ }
+ }
+ 
+diff --git a/tzm_MA/tzm_MA.go b/tzm_MA/tzm_MA.go
+index 07ecfef..0de55af 100644
+--- a/tzm_MA/tzm_MA.go
++++ b/tzm_MA/tzm_MA.go
+@@ -10,62 +10,45 @@ import (
+ )
+ 
+ type tzm_MA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'tzm_MA' locale
+ func New() locales.Translator {
+ return &tzm_MA{
+- locale: "tzm_MA",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Yen", "Yeb", "Mar", "Ibr", "May", "Yun", "Yul", "Ɣuc", "Cut", "Kṭu", "Nwa", "Duj"},
+- monthsNarrow: []string{"", "Y", "Y", "M", "I", "M", "Y", "Y", "Ɣ", "C", "K", "N", "D"},
+- monthsWide: []string{"", "Yennayer", "Yebrayer", "Mars", "Ibrir", "Mayyu", "Yunyu", "Yulyuz", "Ɣuct", "Cutanbir", "Kṭuber", "Nwanbir", "Dujanbir"},
+- daysAbbreviated: []string{"Asa", "Ayn", "Asn", "Akr", "Akw", "Asm", "Asḍ"},
+- daysNarrow: []string{"A", "A", "A", "A", "A", "A", "A"},
+- daysWide: []string{"Asamas", "Aynas", "Asinas", "Akras", "Akwas", "Asimwas", "Asiḍyas"},
+- periodsAbbreviated: []string{"Zdat azal", "Ḍeffir aza"},
+- periodsWide: []string{"Zdat azal", "Ḍeffir aza"},
+- erasAbbreviated: []string{"ZƐ", "ḌƐ"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Zdat Ɛisa (TAƔ)", "Ḍeffir Ɛisa (TAƔ)"},
+- timezones: map[string]string{"COT": "COT", "HENOMX": "HENOMX", "HNCU": "HNCU", "MDT": "MDT", "MYT": "MYT", "AKST": "AKST", "JDT": "JDT", "TMT": "TMT", "WIT": "WIT", "WEZ": "WEZ", "HECU": "HECU", "HEPMX": "HEPMX", "ADT": "ADT", "HEPM": "HEPM", "SAST": "SAST", "EAT": "EAT", "ACDT": "ACDT", "WART": "WART", "SGT": "SGT", "UYST": "UYST", "HAST": "HAST", "AEDT": "AEDT", "HNEG": "HNEG", "ACST": "ACST", "MESZ": "MESZ", "NZST": "NZST", "ART": "ART", "AWST": "AWST", "IST": "IST", "WAT": "WAT", "VET": "VET", "ACWST": "ACWST", "COST": "COST", "AST": "AST", "EST": "EST", "EDT": "EDT", "BT": "BT", "HAT": "HAT", "ARST": "ARST", "AWDT": "AWDT", "JST": "JST", "ECT": "ECT", "WITA": "WITA", "LHDT": "LHDT", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "MST": "MST", "SRT": "SRT", "ACWDT": "ACWDT", "OESZ": "OESZ", "GMT": "GMT", "GFT": "GFT", "AKDT": "AKDT", "CST": "CST", "CLT": "CLT", "HEEG": "HEEG", "OEZ": "OEZ", "HADT": "HADT", "HNPM": "HNPM", "CHAST": "CHAST", "GYT": "GYT", "HKST": "HKST", "HNT": "HNT", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "BOT": "BOT", "WAST": "WAST", "PDT": "PDT", "WESZ": "WESZ", "CLST": "CLST", "TMST": "TMST", "CDT": "CDT", "HNOG": "HNOG", "PST": "PST", "AEST": "AEST", "MEZ": "MEZ", "CAT": "CAT", "WIB": "WIB", "UYT": "UYT", "HEOG": "HEOG", "HKT": "HKT", "LHST": "LHST", "NZDT": "NZDT", "ChST": "ChST", "WARST": "WARST"},
++ locale: "tzm_MA",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HENOMX": "HENOMX", "PST": "PST", "OESZ": "OESZ", "NZDT": "NZDT", "COST": "COST", "MEZ": "MEZ", "SGT": "SGT", "HEPMX": "HEPMX", "WIT": "WIT", "TMST": "TMST", "CLT": "CLT", "ARST": "ARST", "HAST": "HAST", "HADT": "HADT", "WEZ": "WEZ", "WAST": "WAST", "WART": "WART", "WITA": "WITA", "ChST": "ChST", "AST": "AST", "EAT": "EAT", "AWST": "AWST", "UYT": "UYT", "HNT": "HNT", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "WESZ": "WESZ", "AKDT": "AKDT", "EST": "EST", "HNPM": "HNPM", "AEST": "AEST", "AEDT": "AEDT", "OEZ": "OEZ", "EDT": "EDT", "CAT": "CAT", "WIB": "WIB", "LHDT": "LHDT", "IST": "IST", "VET": "VET", "PDT": "PDT", "GMT": "GMT", "CST": "CST", "HEEG": "HEEG", "ACWST": "ACWST", "UYST": "UYST", "NZST": "NZST", "JDT": "JDT", "WARST": "WARST", "COT": "COT", "ART": "ART", "ACST": "ACST", "HNNOMX": "HNNOMX", "LHST": "LHST", "CHAST": "CHAST", "CDT": "CDT", "ACDT": "ACDT", "HNEG": "HNEG", "HEPM": "HEPM", "HECU": "HECU", "BOT": "BOT", "MESZ": "MESZ", "WAT": "WAT", "TMT": "TMT", "MST": "MST", "HAT": "HAT", "ADT": "ADT", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "GYT": "GYT", "HNOG": "HNOG", "HEOG": "HEOG", "MYT": "MYT", "AWDT": "AWDT", "BT": "BT", "CLST": "CLST", "SRT": "SRT", "AKST": "AKST", "SAST": "SAST", "HKST": "HKST", "HKT": "HKT", "MDT": "MDT", "ECT": "ECT", "JST": "JST", "CHADT": "CHADT", "GFT": "GFT"},
+ }
+ }
+ 
+@@ -118,7 +101,7 @@ func (tzm *tzm_MA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (tzm *tzm_MA) MonthsAbbreviated() []string {
+- return tzm.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -128,7 +111,7 @@ func (tzm *tzm_MA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (tzm *tzm_MA) MonthsNarrow() []string {
+- return tzm.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -138,7 +121,7 @@ func (tzm *tzm_MA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (tzm *tzm_MA) MonthsWide() []string {
+- return tzm.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -198,58 +181,7 @@ func (tzm *tzm_MA) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := tzm.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, tzm.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(tzm.group) - 1; j >= 0; j-- {
+- b = append(b, tzm.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, tzm.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, tzm.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, tzm.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'tzm_MA'
+@@ -258,65 +190,7 @@ func (tzm *tzm_MA) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := tzm.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, tzm.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(tzm.group) - 1; j >= 0; j-- {
+- b = append(b, tzm.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, tzm.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, tzm.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, tzm.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, tzm.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'tzm_MA'
+@@ -324,27 +198,6 @@ func (tzm *tzm_MA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -353,17 +206,6 @@ func (tzm *tzm_MA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, tzm.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -372,17 +214,6 @@ func (tzm *tzm_MA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, tzm.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -391,19 +222,6 @@ func (tzm *tzm_MA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, tzm.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, tzm.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/ug/ug.go b/ug/ug.go
+index 40f7a9d..8c50673 100644
+--- a/ug/ug.go
++++ b/ug/ug.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BCE", "مىلادىيە"},
+ erasNarrow: []string{"BCE", "مىلادىيە"},
+ erasWide: []string{"مىلادىيەدىن بۇرۇن", "مىلادىيە"},
+- timezones: map[string]string{"HNPM": "ساينىت پىئېر ۋە مىكېلون ئۆلچەملىك ۋاقتى", "MEZ": "ئوتتۇرا ياۋروپا ئۆلچەملىك ۋاقتى", "NZST": "يېڭى زېلاندىيە ئۆلچەملىك ۋاقتى", "TMST": "تۈركمەنىستان يازلىق ۋاقتى", "ACST": "ئاۋسترالىيە ئوتتۇرا قىسىم ئۆلچەملىك ۋاقتى", "BT": "بۇتان ۋاقتى", "AWST": "ئاۋسترالىيە غەربىي قىسىم ئۆلچەملىك ۋاقتى", "IST": "ھىندىستان ئۆلچەملىك ۋاقتى", "GFT": "فىرانسىيەگە قاراشلىق گىۋىيانا ۋاقتى", "BOT": "بولىۋىيە ۋاقتى", "OESZ": "شەرقىي ياۋروپا يازلىق ۋاقتى", "WART": "غەربىي ئارگېنتىنا ئۆلچەملىك ۋاقتى", "HKT": "شياڭگاڭ ئۆلچەملىك ۋاقتى", "HEPM": "ساينىت پىئېر ۋە مىكېلون يازلىق ۋاقتى", "JDT": "ياپونىيە يازلىق ۋاقتى", "COT": "كولومبىيە ئۆلچەملىك ۋاقتى", "SRT": "سۇرىنام ۋاقتى", "ART": "ئارگېنتىنا ئۆلچەملىك ۋاقتى", "HEOG": "غەربىي گىرېنلاند يازلىق ۋاقتى", "AEDT": "ئاۋسترالىيە شەرقىي قىسىم يازلىق ۋاقتى", "CHADT": "چاتام يازلىق ۋاقتى", "LHST": "لورد-خاي ئۆلچەملىك ۋاقتى", "WAT": "غەربىي ئافرىقا ئۆلچەملىك ۋاقتى", "ACWST": "ئاۋستىرالىيە ئوتتۇرا غەربىي قىسىم ئۆلچەملىك ۋاقتى", "ACWDT": "ئاۋسترالىيە ئوتتۇرا غەربىي قىسىم يازلىق ۋاقتى", "NZDT": "يېڭى زېلاندىيە يازلىق ۋاقتى", "∅∅∅": "ئامازون يازلىق ۋاقتى", "CDT": "ئوتتۇرا قىسىم يازلىق ۋاقتى", "ACDT": "ئاۋسترالىيە ئوتتۇرا قىسىم يازلىق ۋاقتى", "ECT": "ئېكۋادور ۋاقتى", "UYT": "ئۇرۇگۋاي ئۆلچەملىك ۋاقتى", "HNOG": "غەربىي گىرېنلاند ئۆلچەملىك ۋاقتى", "AWDT": "ئاۋسترالىيە غەربىي قىسىم يازلىق ۋاقتى", "WITA": "ئوتتۇرا ھىندونېزىيە ۋاقتى", "EDT": "شەرقىي قىسىم يازلىق ۋاقتى", "MDT": "ئاۋمېن يازلىق ۋاقتى", "ADT": "ئاتلانتىك ئوكيان يازلىق ۋاقتى", "UYST": "ئۇرۇگۋاي يازلىق ۋاقتى", "WEZ": "غەربىي ياۋروپا ئۆلچەملىك ۋاقتى", "CHAST": "چاتام ئۆلچەملىك ۋاقتى", "HENOMX": "مېكسىكا غەربىي شىمالىي قىسىم يازلىق ۋاقتى", "HNPMX": "مېكسىكا تىنچ ئوكيان ئۆلچەملىك ۋاقتى", "CST": "ئوتتۇرا قىسىم ئۆلچەملىك ۋاقتى", "AKST": "ئالياسكا ئۆلچەملىك ۋاقتى", "ARST": "ئارگېنتىنا يازلىق ۋاقتى", "HEEG": "شەرقىي گىرېنلاند يازلىق ۋاقتى", "SGT": "سىنگاپور ۋاقتى", "MST": "ئاۋمېن ئۆلچەملىك ۋاقتى", "MYT": "مالايشىيا ۋاقتى", "AKDT": "ئالياسكا يازلىق ۋاقتى", "WIT": "شەرقىي ھىندونېزىيە ۋاقتى", "JST": "ياپونىيە ئۆلچەملىك ۋاقتى", "HEPMX": "مېكسىكا تىنچ ئوكيان يازلىق ۋاقتى", "GYT": "گىۋىيانا ۋاقتى", "HADT": "ھاۋاي-ئالېيۇت يازلىق ۋاقتى", "VET": "ۋېنېزۇئېلا ۋاقتى", "PST": "تىنچ ئوكيان ئۆلچەملىك ۋاقتى", "WESZ": "غەربىي ياۋروپا يازلىق ۋاقتى", "ChST": "چاموررو ئۆلچەملىك ۋاقتى", "WARST": "غەربىي ئارگېنتىنا يازلىق ۋاقتى", "COST": "كولومبىيە يازلىق ۋاقتى", "HNCU": "كۇبا ئۆلچەملىك ۋاقتى", "HAST": "ھاۋاي-ئالېيۇت ئۆلچەملىك ۋاقتى", "HAT": "نىۋفوئۇنلاند يازلىق ۋاقتى", "HNEG": "شەرقىي گىرېنلاند ئۆلچەملىك ۋاقتى", "HNNOMX": "مېكسىكا غەربىي شىمالىي قىسىم ئۆلچەملىك ۋاقتى", "PDT": "تىنچ ئوكيان يازلىق ۋاقتى", "HKST": "شياڭگاڭ يازلىق ۋاقتى", "HNT": "نىۋفوئۇنلاند ئۆلچەملىك ۋاقتى", "LHDT": "لورد-خاي يازلىق ۋاقتى", "CLST": "چىلى يازلىق ۋاقتى", "TMT": "تۈركمەنىستان ئۆلچەملىك ۋاقتى", "WAST": "غەربىي ئافرىقا يازلىق ۋاقتى", "GMT": "گىرىنۋىچ ۋاقتى", "AST": "ئاتلانتىك ئوكيان ئۆلچەملىك ۋاقتى", "SAST": "جەنۇبىي ئافرىقا ئۆلچەملىك ۋاقتى", "CLT": "چىلى ئۆلچەملىك ۋاقتى", "OEZ": "شەرقىي ياۋروپا ئۆلچەملىك ۋاقتى", "AEST": "ئاۋسترالىيە شەرقىي قىسىم ئۆلچەملىك ۋاقتى", "MESZ": "ئوتتۇرا ياۋروپا يازلىق ۋاقتى", "CAT": "ئوتتۇرا ئافرىقا ۋاقتى", "EAT": "شەرقىي ئافرىقا ۋاقتى", "HECU": "كۇبا يازلىق ۋاقتى", "EST": "شەرقىي قىسىم ئۆلچەملىك ۋاقتى", "WIB": "غەربىي ھىندونېزىيە ۋاقتى"},
++ timezones: map[string]string{"AKDT": "ئالياسكا يازلىق ۋاقتى", "HKT": "شياڭگاڭ ئۆلچەملىك ۋاقتى", "HKST": "شياڭگاڭ يازلىق ۋاقتى", "GMT": "گىرىنۋىچ ۋاقتى", "HADT": "ھاۋاي-ئالېيۇت يازلىق ۋاقتى", "ACWST": "ئاۋستىرالىيە ئوتتۇرا غەربىي قىسىم ئۆلچەملىك ۋاقتى", "GYT": "گىۋىيانا ۋاقتى", "WITA": "ئوتتۇرا ھىندونېزىيە ۋاقتى", "HNNOMX": "مېكسىكا غەربىي شىمالىي قىسىم ئۆلچەملىك ۋاقتى", "LHDT": "لورد-خاي يازلىق ۋاقتى", "HEPM": "ساينىت پىئېر ۋە مىكېلون يازلىق ۋاقتى", "TMT": "تۈركمەنىستان ئۆلچەملىك ۋاقتى", "CAT": "ئوتتۇرا ئافرىقا ۋاقتى", "AWDT": "ئاۋسترالىيە غەربىي قىسىم يازلىق ۋاقتى", "CHADT": "چاتام يازلىق ۋاقتى", "∅∅∅": "ئاكرى يازلىق ۋاقتى", "WESZ": "غەربىي ياۋروپا يازلىق ۋاقتى", "EST": "شەرقىي قىسىم ئۆلچەملىك ۋاقتى", "WIB": "غەربىي ھىندونېزىيە ۋاقتى", "ACST": "ئاۋسترالىيە ئوتتۇرا قىسىم ئۆلچەملىك ۋاقتى", "HNEG": "شەرقىي گىرېنلاند ئۆلچەملىك ۋاقتى", "IST": "ھىندىستان ئۆلچەملىك ۋاقتى", "SRT": "سۇرىنام ۋاقتى", "WAST": "غەربىي ئافرىقا يازلىق ۋاقتى", "OEZ": "شەرقىي ياۋروپا ئۆلچەملىك ۋاقتى", "MEZ": "ئوتتۇرا ياۋروپا ئۆلچەملىك ۋاقتى", "UYST": "ئۇرۇگۋاي يازلىق ۋاقتى", "ACWDT": "ئاۋسترالىيە ئوتتۇرا غەربىي قىسىم يازلىق ۋاقتى", "COT": "كولومبىيە ئۆلچەملىك ۋاقتى", "ACDT": "ئاۋسترالىيە ئوتتۇرا قىسىم يازلىق ۋاقتى", "LHST": "لورد-خاي ئۆلچەملىك ۋاقتى", "CHAST": "چاتام ئۆلچەملىك ۋاقتى", "HEOG": "غەربىي گىرېنلاند يازلىق ۋاقتى", "HAST": "ھاۋاي-ئالېيۇت ئۆلچەملىك ۋاقتى", "HAT": "نىۋفوئۇنلاند يازلىق ۋاقتى", "WART": "غەربىي ئارگېنتىنا ئۆلچەملىك ۋاقتى", "HNCU": "كۇبا ئۆلچەملىك ۋاقتى", "HNT": "نىۋفوئۇنلاند ئۆلچەملىك ۋاقتى", "COST": "كولومبىيە يازلىق ۋاقتى", "ChST": "چاموررو ئۆلچەملىك ۋاقتى", "ART": "ئارگېنتىنا ئۆلچەملىك ۋاقتى", "HENOMX": "مېكسىكا غەربىي شىمالىي قىسىم يازلىق ۋاقتى", "PST": "تىنچ ئوكيان ئۆلچەملىك ۋاقتى", "BT": "بۇتان ۋاقتى", "WEZ": "غەربىي ياۋروپا ئۆلچەملىك ۋاقتى", "SGT": "سىنگاپور ۋاقتى", "HECU": "كۇبا يازلىق ۋاقتى", "AST": "ئاتلانتىك ئوكيان ئۆلچەملىك ۋاقتى", "ADT": "ئاتلانتىك ئوكيان يازلىق ۋاقتى", "MYT": "مالايشىيا ۋاقتى", "HEPMX": "مېكسىكا تىنچ ئوكيان يازلىق ۋاقتى", "CLT": "چىلى ئۆلچەملىك ۋاقتى", "NZST": "يېڭى زېلاندىيە ئۆلچەملىك ۋاقتى", "EDT": "شەرقىي قىسىم يازلىق ۋاقتى", "HEEG": "شەرقىي گىرېنلاند يازلىق ۋاقتى", "JST": "ياپونىيە ئۆلچەملىك ۋاقتى", "WAT": "غەربىي ئافرىقا ئۆلچەملىك ۋاقتى", "HNOG": "غەربىي گىرېنلاند ئۆلچەملىك ۋاقتى", "MST": "تاغ ئۆلچەملىك ۋاقتى", "JDT": "ياپونىيە يازلىق ۋاقتى", "OESZ": "شەرقىي ياۋروپا يازلىق ۋاقتى", "HNPM": "ساينىت پىئېر ۋە مىكېلون ئۆلچەملىك ۋاقتى", "HNPMX": "مېكسىكا تىنچ ئوكيان ئۆلچەملىك ۋاقتى", "AKST": "ئالياسكا ئۆلچەملىك ۋاقتى", "EAT": "شەرقىي ئافرىقا ۋاقتى", "MESZ": "ئوتتۇرا ياۋروپا يازلىق ۋاقتى", "AEST": "ئاۋسترالىيە شەرقىي قىسىم ئۆلچەملىك ۋاقتى", "AEDT": "ئاۋسترالىيە شەرقىي قىسىم يازلىق ۋاقتى", "VET": "ۋېنېزۇئېلا ۋاقتى", "ARST": "ئارگېنتىنا يازلىق ۋاقتى", "MDT": "تاغ يازلىق ۋاقتى", "BOT": "بولىۋىيە ۋاقتى", "SAST": "جەنۇبىي ئافرىقا ئۆلچەملىك ۋاقتى", "TMST": "تۈركمەنىستان يازلىق ۋاقتى", "CDT": "ئوتتۇرا قىسىم يازلىق ۋاقتى", "GFT": "فىرانسىيەگە قاراشلىق گىۋىيانا ۋاقتى", "WARST": "غەربىي ئارگېنتىنا يازلىق ۋاقتى", "WIT": "شەرقىي ھىندونېزىيە ۋاقتى", "ECT": "ئېكۋادور ۋاقتى", "UYT": "ئۇرۇگۋاي ئۆلچەملىك ۋاقتى", "CLST": "چىلى يازلىق ۋاقتى", "NZDT": "يېڭى زېلاندىيە يازلىق ۋاقتى", "AWST": "ئاۋسترالىيە غەربىي قىسىم ئۆلچەملىك ۋاقتى", "PDT": "تىنچ ئوكيان يازلىق ۋاقتى", "CST": "ئوتتۇرا قىسىم ئۆلچەملىك ۋاقتى"},
+ }
+ }
+ 
+diff --git a/ug_CN/ug_CN.go b/ug_CN/ug_CN.go
+index a9acbba..2e9379a 100644
+--- a/ug_CN/ug_CN.go
++++ b/ug_CN/ug_CN.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type ug_CN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'ug_CN' locale
+ func New() locales.Translator {
+ return &ug_CN{
+- locale: "ug_CN",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "يانۋار", "فېۋرال", "مارت", "ئاپرېل", "ماي", "ئىيۇن", "ئىيۇل", "ئاۋغۇست", "سېنتەبىر", "ئۆكتەبىر", "نويابىر", "دېكابىر"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "يانۋار", "فېۋرال", "مارت", "ئاپرېل", "ماي", "ئىيۇن", "ئىيۇل", "ئاۋغۇست", "سېنتەبىر", "ئۆكتەبىر", "نويابىر", "دېكابىر"},
+- daysAbbreviated: []string{"يە", "دۈ", "سە", "چا", "پە", "جۈ", "شە"},
+- daysNarrow: []string{"ي", "د", "س", "چ", "پ", "ج", "ش"},
+- daysShort: []string{"ي", "د", "س", "چ", "پ", "ج", "ش"},
+- daysWide: []string{"يەكشەنبە", "دۈشەنبە", "سەيشەنبە", "چارشەنبە", "پەيشەنبە", "جۈمە", "شەنبە"},
+- periodsAbbreviated: []string{"چ.ب", "چ.ك"},
+- periodsNarrow: []string{"ب", "ك"},
+- periodsWide: []string{"چۈشتىن بۇرۇن", "چۈشتىن كېيىن"},
+- erasAbbreviated: []string{"BCE", "مىلادىيە"},
+- erasNarrow: []string{"BCE", "مىلادىيە"},
+- erasWide: []string{"مىلادىيەدىن بۇرۇن", "مىلادىيە"},
+- timezones: map[string]string{"IST": "ھىندىستان ئۆلچەملىك ۋاقتى", "ChST": "چاموررو ئۆلچەملىك ۋاقتى", "COST": "كولومبىيە يازلىق ۋاقتى", "HNNOMX": "مېكسىكا غەربىي شىمالىي قىسىم ئۆلچەملىك ۋاقتى", "SGT": "سىنگاپور ۋاقتى", "HNPMX": "مېكسىكا تىنچ ئوكيان ئۆلچەملىك ۋاقتى", "LHST": "لورد-خاي ئۆلچەملىك ۋاقتى", "NZDT": "يېڭى زېلاندىيە يازلىق ۋاقتى", "WAST": "غەربىي ئافرىقا يازلىق ۋاقتى", "LHDT": "لورد-خاي يازلىق ۋاقتى", "SAST": "جەنۇبىي ئافرىقا ئۆلچەملىك ۋاقتى", "ACDT": "ئاۋسترالىيە ئوتتۇرا قىسىم يازلىق ۋاقتى", "GMT": "گىرىنۋىچ ۋاقتى", "HADT": "ھاۋاي-ئالېيۇت يازلىق ۋاقتى", "VET": "ۋېنېزۇئېلا ۋاقتى", "BT": "بۇتان ۋاقتى", "NZST": "يېڭى زېلاندىيە ئۆلچەملىك ۋاقتى", "AWDT": "ئاۋسترالىيە غەربىي قىسىم يازلىق ۋاقتى", "HEPM": "ساينىت پىئېر ۋە مىكېلون يازلىق ۋاقتى", "CLST": "چىلى يازلىق ۋاقتى", "HECU": "كۇبا يازلىق ۋاقتى", "EDT": "شەرقىي قىسىم يازلىق ۋاقتى", "MDT": "ئاۋمېن يازلىق ۋاقتى", "HAT": "نىۋفوئۇنلاند يازلىق ۋاقتى", "BOT": "بولىۋىيە ۋاقتى", "WAT": "غەربىي ئافرىقا ئۆلچەملىك ۋاقتى", "WART": "غەربىي ئارگېنتىنا ئۆلچەملىك ۋاقتى", "AEST": "ئاۋسترالىيە شەرقىي قىسىم ئۆلچەملىك ۋاقتى", "WEZ": "غەربىي ياۋروپا ئۆلچەملىك ۋاقتى", "AWST": "ئاۋسترالىيە غەربىي قىسىم ئۆلچەملىك ۋاقتى", "∅∅∅": "ئامازون يازلىق ۋاقتى", "CST": "ئوتتۇرا قىسىم ئۆلچەملىك ۋاقتى", "ARST": "ئارگېنتىنا يازلىق ۋاقتى", "WESZ": "غەربىي ياۋروپا يازلىق ۋاقتى", "AEDT": "ئاۋسترالىيە شەرقىي قىسىم يازلىق ۋاقتى", "JDT": "ياپونىيە يازلىق ۋاقتى", "WARST": "غەربىي ئارگېنتىنا يازلىق ۋاقتى", "HNCU": "كۇبا ئۆلچەملىك ۋاقتى", "WIT": "شەرقىي ھىندونېزىيە ۋاقتى", "ART": "ئارگېنتىنا ئۆلچەملىك ۋاقتى", "COT": "كولومبىيە ئۆلچەملىك ۋاقتى", "HEEG": "شەرقىي گىرېنلاند يازلىق ۋاقتى", "HKST": "شياڭگاڭ يازلىق ۋاقتى", "TMT": "تۈركمەنىستان ئۆلچەملىك ۋاقتى", "TMST": "تۈركمەنىستان يازلىق ۋاقتى", "HENOMX": "مېكسىكا غەربىي شىمالىي قىسىم يازلىق ۋاقتى", "EST": "شەرقىي قىسىم ئۆلچەملىك ۋاقتى", "CDT": "ئوتتۇرا قىسىم يازلىق ۋاقتى", "ADT": "ئاتلانتىك ئوكيان يازلىق ۋاقتى", "ACWDT": "ئاۋسترالىيە ئوتتۇرا غەربىي قىسىم يازلىق ۋاقتى", "AKST": "ئالياسكا ئۆلچەملىك ۋاقتى", "WITA": "ئوتتۇرا ھىندونېزىيە ۋاقتى", "HNEG": "شەرقىي گىرېنلاند ئۆلچەملىك ۋاقتى", "CAT": "ئوتتۇرا ئافرىقا ۋاقتى", "AST": "ئاتلانتىك ئوكيان ئۆلچەملىك ۋاقتى", "GYT": "گىۋىيانا ۋاقتى", "UYT": "ئۇرۇگۋاي ئۆلچەملىك ۋاقتى", "SRT": "سۇرىنام ۋاقتى", "PDT": "تىنچ ئوكيان يازلىق ۋاقتى", "HKT": "شياڭگاڭ ئۆلچەملىك ۋاقتى", "HNPM": "ساينىت پىئېر ۋە مىكېلون ئۆلچەملىك ۋاقتى", "ACST": "ئاۋسترالىيە ئوتتۇرا قىسىم ئۆلچەملىك ۋاقتى", "OEZ": "شەرقىي ياۋروپا ئۆلچەملىك ۋاقتى", "AKDT": "ئالياسكا يازلىق ۋاقتى", "HNOG": "غەربىي گىرېنلاند ئۆلچەملىك ۋاقتى", "UYST": "ئۇرۇگۋاي يازلىق ۋاقتى", "WIB": "غەربىي ھىندونېزىيە ۋاقتى", "JST": "ياپونىيە ئۆلچەملىك ۋاقتى", "MYT": "مالايشىيا ۋاقتى", "GFT": "فىرانسىيەگە قاراشلىق گىۋىيانا ۋاقتى", "ACWST": "ئاۋستىرالىيە ئوتتۇرا غەربىي قىسىم ئۆلچەملىك ۋاقتى", "CHAST": "چاتام ئۆلچەملىك ۋاقتى", "CLT": "چىلى ئۆلچەملىك ۋاقتى", "MST": "ئاۋمېن ئۆلچەملىك ۋاقتى", "HEPMX": "مېكسىكا تىنچ ئوكيان يازلىق ۋاقتى", "HNT": "نىۋفوئۇنلاند ئۆلچەملىك ۋاقتى", "OESZ": "شەرقىي ياۋروپا يازلىق ۋاقتى", "ECT": "ئېكۋادور ۋاقتى", "EAT": "شەرقىي ئافرىقا ۋاقتى", "HEOG": "غەربىي گىرېنلاند يازلىق ۋاقتى", "CHADT": "چاتام يازلىق ۋاقتى", "MEZ": "ئوتتۇرا ياۋروپا ئۆلچەملىك ۋاقتى", "MESZ": "ئوتتۇرا ياۋروپا يازلىق ۋاقتى", "HAST": "ھاۋاي-ئالېيۇت ئۆلچەملىك ۋاقتى", "PST": "تىنچ ئوكيان ئۆلچەملىك ۋاقتى"},
++ locale: "ug_CN",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SAST": "SAST", "COST": "COST", "AST": "AST", "JDT": "JDT", "TMST": "TMST", "HAST": "HAST", "LHST": "LHST", "ACWDT": "ACWDT", "ACDT": "ACDT", "HNT": "HNT", "WART": "WART", "WITA": "WITA", "WIB": "WIB", "UYT": "UYT", "VET": "VET", "HNCU": "HNCU", "AKDT": "AKDT", "ADT": "ADT", "BOT": "BOT", "MESZ": "MESZ", "HNPM": "HNPM", "PDT": "PDT", "HEOG": "HEOG", "MEZ": "MEZ", "IST": "IST", "BT": "BT", "CHADT": "CHADT", "WESZ": "WESZ", "∅∅∅": "∅∅∅", "TMT": "TMT", "CDT": "CDT", "WEZ": "WEZ", "HAT": "HAT", "WARST": "WARST", "AEDT": "AEDT", "OEZ": "OEZ", "CAT": "CAT", "NZDT": "NZDT", "ECT": "ECT", "ART": "ART", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "GFT": "GFT", "HKST": "HKST", "HNEG": "HNEG", "AWDT": "AWDT", "CHAST": "CHAST", "HEPMX": "HEPMX", "WAT": "WAT", "HKT": "HKT", "MST": "MST", "JST": "JST", "PST": "PST", "HNOG": "HNOG", "EST": "EST", "EDT": "EDT", "CST": "CST", "HEEG": "HEEG", "NZST": "NZST", "ChST": "ChST", "LHDT": "LHDT", "ACWST": "ACWST", "HNPMX": "HNPMX", "CLST": "CLST", "GMT": "GMT", "HENOMX": "HENOMX", "SGT": "SGT", "WIT": "WIT", "CLT": "CLT", "ARST": "ARST", "WAST": "WAST", "COT": "COT", "MDT": "MDT", "AEST": "AEST", "UYST": "UYST", "HECU": "HECU", "AKST": "AKST", "MYT": "MYT", "OESZ": "OESZ", "GYT": "GYT", "SRT": "SRT", "EAT": "EAT", "HADT": "HADT", "ACST": "ACST", "AWST": "AWST"},
+ }
+ }
+ 
+@@ -135,7 +112,7 @@ func (ug *ug_CN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ug *ug_CN) MonthsAbbreviated() []string {
+- return ug.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -145,7 +122,7 @@ func (ug *ug_CN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ug *ug_CN) MonthsNarrow() []string {
+- return ug.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -155,7 +132,7 @@ func (ug *ug_CN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ug *ug_CN) MonthsWide() []string {
+- return ug.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -201,73 +178,13 @@ func (ug *ug_CN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ug_CN' and handles both Whole and Real numbers based on 'v'
+ func (ug *ug_CN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ug.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ug.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ug.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ug_CN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ug *ug_CN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ug.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, ug.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ug.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ug_CN'
+@@ -275,56 +192,7 @@ func (ug *ug_CN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ug.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ug.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ug.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, ug.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ug.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ug_CN'
+@@ -333,68 +201,7 @@ func (ug *ug_CN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ug.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ug.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ug.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, ug.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ug.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, ug.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ug_CN'
+@@ -402,28 +209,6 @@ func (ug *ug_CN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -432,17 +217,6 @@ func (ug *ug_CN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, ug.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -451,17 +225,6 @@ func (ug *ug_CN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, ug.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -470,19 +233,6 @@ func (ug *ug_CN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, ug.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = append(b, ug.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -491,28 +241,6 @@ func (ug *ug_CN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ug.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ug.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ug.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -521,35 +249,6 @@ func (ug *ug_CN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ug.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ug.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ug.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ug.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -558,40 +257,6 @@ func (ug *ug_CN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ug.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ug.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ug.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ug.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -600,44 +265,5 @@ func (ug *ug_CN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ug.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ug.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ug.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ug.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ug.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/uk/uk.go b/uk/uk.go
+index 15f851d..5220417 100644
+--- a/uk/uk.go
++++ b/uk/uk.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"до н. е.", "н. е."},
+ erasNarrow: []string{"до н.е.", "н.е."},
+ erasWide: []string{"до нашої ери", "нашої ери"},
+- timezones: map[string]string{"HAST": "за стандартним гавайсько-алеутським часом", "JDT": "за японським літнім часом", "HNCU": "за стандартним часом на Кубі", "AKST": "за стандартним часом на Алясці", "CST": "за північноамериканським центральним стандартним часом", "PDT": "за північноамериканським тихоокеанським літнім часом", "IST": "за індійським стандартним часом", "ChST": "за часом на Північних Маріанських островах", "BOT": "за болівійським часом", "SGT": "за часом у Сінгапурі", "MDT": "MDT", "GYT": "за часом у Гаяні", "HNPM": "за стандартним часом на островах Сен-П’єр і Мікелон", "WART": "за стандартним західноаргентинським часом", "LHST": "за стандартним часом на острові Лорд-Хау", "WARST": "за літнім за західноаргентинським часом", "COT": "за стандартним колумбійським часом", "AST": "за атлантичним стандартним часом", "MYT": "за часом у Малайзії", "AEDT": "за літнім східноавстралійським часом", "HEPM": "за літнім часом на островах Сен-П’єр і Мікелон", "NZDT": "за літнім часом у Новій Зеландії", "CAT": "за центральноафриканським часом", "WITA": "за центральноіндонезійським часом", "HNNOMX": "за стандартним північнозахідним часом у Мексиці", "EDT": "за північноамериканським східним літнім часом", "CDT": "за північноамериканським центральним літнім часом", "HADT": "за літнім гавайсько-алеутським часом", "VET": "за часом у Венесуелі", "WIT": "за східноіндонезійським часом", "HNT": "за стандартним часом на острові Ньюфаундленд", "AWST": "за стандартним західноавстралійським часом", "AWDT": "за літнім західноавстралійським часом", "NZST": "за стандартним часом у Новій Зеландії", "HNOG": "за стандартним західним часом у Гренландії", "AEST": "за стандартним східноавстралійським часом", "JST": "за японським стандартним часом", "UYST": "за літнім часом в Уругваї", "HEOG": "за літнім західним часом у Гренландії", "HKT": "за стандартним часом у Гонконзі", "TMST": "за літнім часом у Туркменістані", "HECU": "за літнім часом на Кубі", "HNPMX": "за стандартним тихоокеанським часом у Мексиці", "PST": "за північноамериканським тихоокеанським стандартним часом", "ACWDT": "за літнім центральнозахідним австралійським часом", "ACST": "за стандартним центральноавстралійським часом", "ACDT": "за літнім центральноавстралійським часом", "ECT": "за часом в Еквадорі", "HKST": "за літнім часом у Гонконзі", "CLST": "за літнім чилійським часом", "TMT": "за стандартним часом у Туркменістані", "EAT": "за східноафриканським часом", "WAT": "за західноафриканським стандартним часом", "EST": "за північноамериканським східним стандартним часом", "AKDT": "за літнім часом на Алясці", "SRT": "за часом у Суринамі", "CHADT": "за літнім часом на архіпелазі Чатем", "HEEG": "за літнім східним часом у Гренландії", "GFT": "за часом Французької Гвіани", "HENOMX": "за літнім північнозахідним часом у Мексиці", "WESZ": "за західноєвропейським літнім часом", "LHDT": "за літнім часом на острові Лорд-Хау", "SAST": "за південноафриканським часом", "CLT": "за стандартним чилійським часом", "∅∅∅": "за літнім часом на Амазонці", "OEZ": "за східноєвропейським стандартним часом", "ADT": "за атлантичним літнім часом", "ARST": "за літнім аргентинським часом", "ACWST": "за стандартним центральнозахідним австралійським часом", "MEZ": "за центральноєвропейським стандартним часом", "CHAST": "за стандартним часом на архіпелазі Чатем", "WAST": "за західноафриканським літнім часом", "MST": "MST", "BT": "за часом у Бутані", "ART": "за стандартним аргентинським часом", "WEZ": "за західноєвропейським стандартним часом", "MESZ": "за центральноєвропейським літнім часом", "HNEG": "за стандартним східним часом у Гренландії", "OESZ": "за східноєвропейським літнім часом", "WIB": "за західноіндонезійським часом", "HAT": "за літнім часом у Ньюфаундленд", "COST": "за літнім колумбійським часом", "GMT": "за Гринвічем", "HEPMX": "за літнім тихоокеанським часом у Мексиці", "UYT": "за стандартним часом в Уругваї"},
++ timezones: map[string]string{"WIT": "за східноіндонезійським часом", "TMT": "за стандартним часом у Туркменістані", "SRT": "за часом у Суринамі", "VET": "за часом у Венесуелі", "HECU": "за літнім часом на Кубі", "HKT": "за стандартним часом у Гонконзі", "AST": "за атлантичним стандартним часом", "EAT": "за східноафриканським часом", "WEZ": "за західноєвропейським стандартним часом", "HNPM": "за стандартним часом на островах Сен-П’єр і Мікелон", "PST": "за північноамериканським тихоокеанським стандартним часом", "WAT": "за західноафриканським стандартним часом", "HNT": "за стандартним часом на острові Ньюфаундленд", "EST": "за північноамериканським східним стандартним часом", "MST": "MST", "HAST": "за стандартним гавайсько-алеутським часом", "WARST": "за літнім за західноаргентинським часом", "SAST": "за південноафриканським часом", "ART": "за стандартним аргентинським часом", "GFT": "за часом Французької Гвіани", "CDT": "за північноамериканським центральним літнім часом", "ARST": "за літнім аргентинським часом", "CHAST": "за стандартним часом на архіпелазі Чатем", "IST": "за індійським стандартним часом", "MEZ": "за центральноєвропейським стандартним часом", "UYST": "за літнім часом в Уругваї", "GYT": "за часом у Гаяні", "CAT": "за центральноафриканським часом", "NZDT": "за літнім часом у Новій Зеландії", "GMT": "за Гринвічем", "ACWST": "за стандартним центральнозахідним австралійським часом", "WESZ": "за західноєвропейським літнім часом", "WAST": "за західноафриканським літнім часом", "HAT": "за літнім часом у Ньюфаундленд", "HNOG": "за стандартним західним часом у Гренландії", "BOT": "за болівійським часом", "HNNOMX": "за стандартним північнозахідним часом у Мексиці", "HEEG": "за літнім східним часом у Гренландії", "UYT": "за стандартним часом в Уругваї", "SGT": "за часом у Сінгапурі", "OEZ": "за східноєвропейським стандартним часом", "COT": "за стандартним колумбійським часом", "MDT": "MDT", "ACST": "за стандартним центральноавстралійським часом", "ACDT": "за літнім центральноавстралійським часом", "MYT": "за часом у Малайзії", "HEPM": "за літнім часом на островах Сен-П’єр і Мікелон", "HEOG": "за літнім західним часом у Гренландії", "HKST": "за літнім часом у Гонконзі", "WITA": "за центральноіндонезійським часом", "WIB": "за західноіндонезійським часом", "AWST": "за стандартним західноавстралійським часом", "HNCU": "за стандартним часом на Кубі", "HNPMX": "за стандартним тихоокеанським часом у Мексиці", "WART": "за стандартним західноаргентинським часом", "CLT": "за стандартним чилійським часом", "CST": "за північноамериканським центральним стандартним часом", "HNEG": "за стандартним східним часом у Гренландії", "LHST": "за стандартним часом на острові Лорд-Хау", "JST": "за японським стандартним часом", "JDT": "за японським літнім часом", "PDT": "за північноамериканським тихоокеанським літнім часом", "COST": "за літнім колумбійським часом", "NZST": "за стандартним часом у Новій Зеландії", "ECT": "за часом в Еквадорі", "ChST": "за часом на Північних Маріанських островах", "BT": "за часом у Бутані", "AKST": "за стандартним часом на Алясці", "ADT": "за атлантичним літнім часом", "CHADT": "за літнім часом на архіпелазі Чатем", "HEPMX": "за літнім тихоокеанським часом у Мексиці", "AKDT": "за літнім часом на Алясці", "TMST": "за літнім часом у Туркменістані", "HADT": "за літнім гавайсько-алеутським часом", "HENOMX": "за літнім північнозахідним часом у Мексиці", "CLST": "за літнім чилійським часом", "MESZ": "за центральноєвропейським літнім часом", "AEST": "за стандартним східноавстралійським часом", "AEDT": "за літнім східноавстралійським часом", "LHDT": "за літнім часом на острові Лорд-Хау", "ACWDT": "за літнім центральнозахідним австралійським часом", "OESZ": "за східноєвропейським літнім часом", "∅∅∅": "за літнім бразильським часом", "EDT": "за північноамериканським східним літнім часом", "AWDT": "за літнім західноавстралійським часом"},
+ }
+ }
+ 
+@@ -100,8 +100,8 @@ func (uk *uk) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
+ 
+ n := math.Abs(num)
+ i := int64(n)
+- iMod100 := i % 100
+ iMod10 := i % 10
++ iMod100 := i % 100
+ 
+ if v == 0 && iMod10 == 1 && iMod100 != 11 {
+ return locales.PluralRuleOne
+diff --git a/uk_UA/uk_UA.go b/uk_UA/uk_UA.go
+index cd46bc3..799c6e6 100644
+--- a/uk_UA/uk_UA.go
++++ b/uk_UA/uk_UA.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type uk_UA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'uk_UA' locale
+ func New() locales.Translator {
+ return &uk_UA{
+- locale: "uk_UA",
+- pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
+- pluralsOrdinal: []locales.PluralRule{4, 6},
+- pluralsRange: []locales.PluralRule{2, 4, 5, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "січ.", "лют.", "бер.", "квіт.", "трав.", "черв.", "лип.", "серп.", "вер.", "жовт.", "лист.", "груд."},
+- monthsNarrow: []string{"", "с", "л", "б", "к", "т", "ч", "л", "с", "в", "ж", "л", "г"},
+- monthsWide: []string{"", "січня", "лютого", "березня", "квітня", "травня", "червня", "липня", "серпня", "вересня", "жовтня", "листопада", "грудня"},
+- daysAbbreviated: []string{"нд", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysNarrow: []string{"Н", "П", "В", "С", "Ч", "П", "С"},
+- daysShort: []string{"нд", "пн", "вт", "ср", "чт", "пт", "сб"},
+- daysWide: []string{"неділя", "понеділок", "вівторок", "середа", "четвер", "пʼятниця", "субота"},
+- periodsAbbreviated: []string{"дп", "пп"},
+- periodsNarrow: []string{"дп", "пп"},
+- periodsWide: []string{"дп", "пп"},
+- erasAbbreviated: []string{"до н. е.", "н. е."},
+- erasNarrow: []string{"до н.е.", "н.е."},
+- erasWide: []string{"до нашої ери", "нашої ери"},
+- timezones: map[string]string{"HKT": "за стандартним часом у Гонконзі", "HEPM": "за літнім часом на островах Сен-П’єр і Мікелон", "CAT": "за центральноафриканським часом", "MST": "за північноамериканським гірським стандартним часом", "WIT": "за східноіндонезійським часом", "ARST": "за літнім аргентинським часом", "PST": "за північноамериканським тихоокеанським стандартним часом", "HNPM": "за стандартним часом на островах Сен-П’єр і Мікелон", "CST": "за північноамериканським центральним стандартним часом", "MYT": "за часом у Малайзії", "UYST": "за літнім часом в Уругваї", "SAST": "за південноафриканським часом", "ChST": "за часом на Північних Маріанських островах", "PDT": "за північноамериканським тихоокеанським літнім часом", "WAT": "за західноафриканським стандартним часом", "GMT": "за Гринвічем", "HEPMX": "за літнім тихоокеанським часом у Мексиці", "BT": "за часом у Бутані", "WEZ": "за західноєвропейським стандартним часом", "WESZ": "за західноєвропейським літнім часом", "LHDT": "за літнім часом на острові Лорд-Хау", "AWDT": "за літнім західноавстралійським часом", "IST": "за індійським стандартним часом", "CLT": "за стандартним чилійським часом", "OESZ": "за східноєвропейським літнім часом", "WARST": "за літнім за західноаргентинським часом", "AST": "за атлантичним стандартним часом", "GYT": "за часом у Гаяні", "HNOG": "за стандартним західним часом у Гренландії", "JDT": "за японським літнім часом", "HNNOMX": "за стандартним північнозахідним часом у Мексиці", "HADT": "за літнім гавайсько-алеутським часом", "NZDT": "за літнім часом у Новій Зеландії", "JST": "за японським стандартним часом", "∅∅∅": "за літнім часом на Амазонці", "HEEG": "за літнім східним часом у Гренландії", "HEOG": "за літнім західним часом у Гренландії", "AWST": "за стандартним західноавстралійським часом", "WITA": "за центральноіндонезійським часом", "ACDT": "за літнім центральноавстралійським часом", "EAT": "за східноафриканським часом", "WIB": "за західноіндонезійським часом", "MDT": "за північноамериканським гірським літнім часом", "ACWST": "за стандартним центральнозахідним австралійським часом", "NZST": "за стандартним часом у Новій Зеландії", "CHAST": "за стандартним часом на архіпелазі Чатем", "EST": "за північноамериканським східним стандартним часом", "AKST": "за стандартним часом на Алясці", "CDT": "за північноамериканським центральним літнім часом", "ACWDT": "за літнім центральнозахідним австралійським часом", "WAST": "за західноафриканським літнім часом", "OEZ": "за східноєвропейським стандартним часом", "VET": "за часом у Венесуелі", "SRT": "за часом у Суринамі", "CHADT": "за літнім часом на архіпелазі Чатем", "HAT": "за літнім часом у Ньюфаундленд", "ART": "за стандартним аргентинським часом", "TMT": "за стандартним часом у Туркменістані", "COT": "за стандартним колумбійським часом", "WART": "за стандартним західноаргентинським часом", "ADT": "за атлантичним літнім часом", "UYT": "за стандартним часом в Уругваї", "HAST": "за стандартним гавайсько-алеутським часом", "HECU": "за літнім часом на Кубі", "HNPMX": "за стандартним тихоокеанським часом у Мексиці", "SGT": "за часом у Сінгапурі", "ACST": "за стандартним центральноавстралійським часом", "ECT": "за часом в Еквадорі", "AKDT": "за літнім часом на Алясці", "LHST": "за стандартним часом на острові Лорд-Хау", "GFT": "за часом Французької Гвіани", "MESZ": "за центральноєвропейським літнім часом", "HNEG": "за стандартним східним часом у Гренландії", "HENOMX": "за літнім північнозахідним часом у Мексиці", "AEDT": "за літнім східноавстралійським часом", "CLST": "за літнім чилійським часом", "COST": "за літнім колумбійським часом", "HNCU": "за стандартним часом на Кубі", "HNT": "за стандартним часом на острові Ньюфаундленд", "HKST": "за літнім часом у Гонконзі", "AEST": "за стандартним східноавстралійським часом", "EDT": "за північноамериканським східним літнім часом", "MEZ": "за центральноєвропейським стандартним часом", "BOT": "за болівійським часом", "TMST": "за літнім часом у Туркменістані"},
++ locale: "uk_UA",
++ pluralsCardinal: []locales.PluralRule{2, 4, 5, 6},
++ pluralsOrdinal: []locales.PluralRule{4, 6},
++ pluralsRange: []locales.PluralRule{2, 4, 5, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WAT": "WAT", "GFT": "GFT", "CLT": "CLT", "HAST": "HAST", "LHST": "LHST", "∅∅∅": "∅∅∅", "AEDT": "AEDT", "MST": "MST", "WIB": "WIB", "JDT": "JDT", "IST": "IST", "COT": "COT", "HNT": "HNT", "WART": "WART", "TMST": "TMST", "CAT": "CAT", "ECT": "ECT", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "EAT": "EAT", "HAT": "HAT", "EST": "EST", "NZDT": "NZDT", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "WAST": "WAST", "AKST": "AKST", "HKT": "HKT", "ACDT": "ACDT", "HNPM": "HNPM", "CHAST": "CHAST", "WESZ": "WESZ", "SGT": "SGT", "HADT": "HADT", "AWDT": "AWDT", "LHDT": "LHDT", "WEZ": "WEZ", "ACWST": "ACWST", "COST": "COST", "ChST": "ChST", "OESZ": "OESZ", "ART": "ART", "MESZ": "MESZ", "HEEG": "HEEG", "AWST": "AWST", "UYT": "UYT", "BT": "BT", "WIT": "WIT", "EDT": "EDT", "HKST": "HKST", "CDT": "CDT", "HEPM": "HEPM", "VET": "VET", "OEZ": "OEZ", "AST": "AST", "HNCU": "HNCU", "GYT": "GYT", "TMT": "TMT", "ADT": "ADT", "GMT": "GMT", "HNEG": "HNEG", "MYT": "MYT", "SAST": "SAST", "WITA": "WITA", "ARST": "ARST", "BOT": "BOT", "SRT": "SRT", "ACST": "ACST", "JST": "JST", "AKDT": "AKDT", "CHADT": "CHADT", "WARST": "WARST", "HNOG": "HNOG", "CLST": "CLST", "MDT": "MDT", "UYST": "UYST", "PST": "PST", "PDT": "PDT", "NZST": "NZST", "MEZ": "MEZ", "HECU": "HECU", "CST": "CST", "AEST": "AEST", "HEOG": "HEOG"},
+ }
+ }
+ 
+@@ -177,7 +154,7 @@ func (uk *uk_UA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (uk *uk_UA) MonthsAbbreviated() []string {
+- return uk.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -187,7 +164,7 @@ func (uk *uk_UA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (uk *uk_UA) MonthsNarrow() []string {
+- return uk.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -197,7 +174,7 @@ func (uk *uk_UA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (uk *uk_UA) MonthsWide() []string {
+- return uk.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -243,75 +220,13 @@ func (uk *uk_UA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'uk_UA' and handles both Whole and Real numbers based on 'v'
+ func (uk *uk_UA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uk.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(uk.group) - 1; j >= 0; j-- {
+- b = append(b, uk.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, uk.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'uk_UA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (uk *uk_UA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uk.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, uk.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, uk.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'uk_UA'
+@@ -319,56 +234,7 @@ func (uk *uk_UA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := uk.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uk.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(uk.group) - 1; j >= 0; j-- {
+- b = append(b, uk.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, uk.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, uk.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'uk_UA'
+@@ -377,64 +243,7 @@ func (uk *uk_UA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := uk.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uk.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(uk.group) - 1; j >= 0; j-- {
+- b = append(b, uk.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, uk.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, uk.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, uk.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'uk_UA'
+@@ -442,27 +251,6 @@ func (uk *uk_UA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2e}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -471,20 +259,6 @@ func (uk *uk_UA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, uk.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd1, 0x80}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -493,20 +267,6 @@ func (uk *uk_UA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, uk.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd1, 0x80}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -515,22 +275,6 @@ func (uk *uk_UA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, uk.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, uk.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20, 0xd1, 0x80}...)
+- b = append(b, []byte{0x2e}...)
+-
+ return string(b)
+ }
+ 
+@@ -539,19 +283,6 @@ func (uk *uk_UA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -560,26 +291,6 @@ func (uk *uk_UA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, uk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -588,30 +299,6 @@ func (uk *uk_UA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, uk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -620,34 +307,5 @@ func (uk *uk_UA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uk.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, uk.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := uk.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ur/ur.go b/ur/ur.go
+index a4ccf46..10e3898 100644
+--- a/ur/ur.go
++++ b/ur/ur.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"قبل مسیح", "عیسوی"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"قبل مسیح", "عیسوی"},
+- timezones: map[string]string{"EST": "ایسٹرن اسٹینڈرڈ ٹائم", "UYT": "یوروگوئے کا معیاری وقت", "AST": "اٹلانٹک اسٹینڈرڈ ٹائم", "BT": "بھوٹان کا وقت", "SAST": "جنوبی افریقہ سٹینڈرڈ ٹائم", "JDT": "جاپان ڈے لائٹ ٹائم", "BOT": "بولیویا کا وقت", "HECU": "کیوبا ڈے لائٹ ٹائم", "MDT": "MDT", "ACWST": "آسٹریلین سنٹرل ویسٹرن اسٹینڈرڈ ٹائم", "CHAST": "چیتھم اسٹینڈرڈ ٹائم", "EAT": "مشرقی افریقہ ٹائم", "WAST": "مغربی افریقہ سمر ٹائم", "CDT": "سنٹرل ڈے لائٹ ٹائم", "WIB": "مغربی انڈونیشیا ٹائم", "HADT": "ہوائی الیوٹیئن ڈے لائٹ ٹائم", "HEOG": "مغربی گرین لینڈ کا موسم گرما کا وقت", "HNT": "نیو فاؤنڈ لینڈ اسٹینڈرڈ ٹائم", "AWDT": "آسٹریلین ویسٹرن ڈے لائٹ ٹائم", "MEZ": "وسطی یورپ کا معیاری وقت", "CHADT": "چیتھم ڈے لائٹ ٹائم", "JST": "جاپان سٹینڈرڈ ٹائم", "WESZ": "مغربی یورپ کا موسم گرما کا وقت", "AEST": "آسٹریلین ایسٹرن اسٹینڈرڈ ٹائم", "AEDT": "آسٹریلین ایسٹرن ڈے لائٹ ٹائم", "AWST": "آسٹریلیا ویسٹرن اسٹینڈرڈ ٹائم", "ACDT": "آسٹریلین سنٹرل ڈے لائٹ ٹائم", "WAT": "مغربی افریقہ سٹینڈرڈ ٹائم", "HENOMX": "شمال مغربی میکسیکو ڈے لائٹ ٹائم", "SRT": "سورینام کا وقت", "GFT": "فرینچ گیانا کا وقت", "GMT": "گرین وچ کا اصل وقت", "SGT": "سنگاپور سٹینڈرڈ ٹائم", "UYST": "یوروگوئے کا موسم گرما کا وقت", "PDT": "پیسفک ڈے لائٹ ٹائم", "WEZ": "مغربی یورپ کا معیاری وقت", "HAT": "نیو فاؤنڈ لینڈ ڈے لائٹ ٹائم", "NZDT": "نیوزی لینڈ ڈے لائٹ ٹائم", "TMT": "ترکمانستان کا معیاری وقت", "CAT": "وسطی افریقہ ٹائم", "ECT": "ایکواڈور کا وقت", "WART": "مغربی ارجنٹینا کا معیاری وقت", "∅∅∅": "ازوریس کا موسم گرما کا وقت", "MST": "MST", "HNPMX": "میکسیکن پیسفک اسٹینڈرڈ ٹائم", "HKST": "ہانگ کانگ سمر ٹائم", "HNPM": "سینٹ پیئر اور مکلیئون اسٹینڈرڈ ٹائم", "LHDT": "لارڈ ہووے ڈے لائٹ ٹائم", "HEEG": "مشرقی گرین لینڈ کا موسم گرما کا وقت", "WIT": "مشرقی انڈونیشیا ٹائم", "HKT": "ہانگ کانگ سٹینڈرڈ ٹائم", "HNEG": "مشرقی گرین لینڈ اسٹینڈرڈ ٹائم", "GYT": "گیانا کا وقت", "VET": "وینزوئیلا کا وقت", "WITA": "وسطی انڈونیشیا ٹائم", "NZST": "نیوزی لینڈ کا معیاری وقت", "WARST": "مغربی ارجنٹینا کا موسم گرما کا وقت", "MYT": "ملیشیا ٹائم", "HEPM": "سینٹ پیئر اور مکلیئون ڈے لائٹ ٹائم", "MESZ": "وسطی یورپ کا موسم گرما کا وقت", "TMST": "ترکمانستان کا موسم گرما کا وقت", "COT": "کولمبیا کا معیاری وقت", "COST": "کولمبیا کا موسم گرما کا وقت", "HEPMX": "میکسیکن پیسفک ڈے لائٹ ٹائم", "AKDT": "الاسکا ڈے لائٹ ٹائم", "CST": "سنٹرل اسٹینڈرڈ ٹائم", "ChST": "چامورو سٹینڈرڈ ٹائم", "ACWDT": "آسٹریلین سنٹرل ویسٹرن ڈے لائٹ ٹائم", "HNOG": "مغربی گرین لینڈ اسٹینڈرڈ ٹائم", "PST": "پیسفک اسٹینڈرڈ ٹائم", "ARST": "ارجنٹینا سمر ٹائم", "OESZ": "مشرقی یورپ کا موسم گرما کا وقت", "HNNOMX": "شمال مغربی میکسیکو اسٹینڈرڈ ٹائم", "AKST": "الاسکا اسٹینڈرڈ ٹائم", "ADT": "اٹلانٹک ڈے لائٹ ٹائم", "HAST": "ہوائی الیوٹیئن اسٹینڈرڈ ٹائم", "IST": "ہندوستان کا معیاری وقت", "CLT": "چلی کا معیاری وقت", "CLST": "چلی کا موسم گرما کا وقت", "ACST": "آسٹریلین سنٹرل اسٹینڈرڈ ٹائم", "OEZ": "مشرقی یورپ کا معیاری وقت", "HNCU": "کیوبا اسٹینڈرڈ ٹائم", "EDT": "ایسٹرن ڈے لائٹ ٹائم", "ART": "ارجنٹینا سٹینڈرڈ ٹائم", "LHST": "لارڈ ہووے اسٹینڈرڈ ٹائم"},
++ timezones: map[string]string{"NZDT": "نیوزی لینڈ ڈے لائٹ ٹائم", "ChST": "چامورو سٹینڈرڈ ٹائم", "ACDT": "آسٹریلین سنٹرل ڈے لائٹ ٹائم", "HEEG": "مشرقی گرین لینڈ کا موسم گرما کا وقت", "JDT": "جاپان ڈے لائٹ ٹائم", "AEST": "آسٹریلین ایسٹرن اسٹینڈرڈ ٹائم", "UYT": "یوروگوئے کا معیاری وقت", "MST": "MST", "OEZ": "مشرقی یورپ کا معیاری وقت", "HKT": "ہانگ کانگ سٹینڈرڈ ٹائم", "SGT": "سنگاپور سٹینڈرڈ ٹائم", "WIT": "مشرقی انڈونیشیا ٹائم", "MYT": "ملیشیا ٹائم", "BOT": "بولیویا کا وقت", "HENOMX": "شمال مغربی میکسیکو ڈے لائٹ ٹائم", "WESZ": "مغربی یورپ کا موسم گرما کا وقت", "COST": "کولمبیا کا موسم گرما کا وقت", "EDT": "ایسٹرن ڈے لائٹ ٹائم", "GMT": "گرین وچ کا اصل وقت", "MEZ": "وسطی یورپ کا معیاری وقت", "CHADT": "چیتھم ڈے لائٹ ٹائم", "AKDT": "الاسکا ڈے لائٹ ٹائم", "GYT": "گیانا کا وقت", "EST": "ایسٹرن اسٹینڈرڈ ٹائم", "ECT": "ایکواڈور کا وقت", "LHST": "لارڈ ہووے اسٹینڈرڈ ٹائم", "LHDT": "لارڈ ہووے ڈے لائٹ ٹائم", "HAST": "ہوائی الیوٹیئن اسٹینڈرڈ ٹائم", "HEPMX": "میکسیکن پیسفک ڈے لائٹ ٹائم", "TMT": "ترکمانستان کا معیاری وقت", "CST": "سنٹرل اسٹینڈرڈ ٹائم", "∅∅∅": "ازوریس کا موسم گرما کا وقت", "WIB": "مغربی انڈونیشیا ٹائم", "HNNOMX": "شمال مغربی میکسیکو اسٹینڈرڈ ٹائم", "BT": "بھوٹان کا وقت", "CLST": "چلی کا موسم گرما کا وقت", "OESZ": "مشرقی یورپ کا موسم گرما کا وقت", "HNPMX": "میکسیکن پیسفک اسٹینڈرڈ ٹائم", "WITA": "وسطی انڈونیشیا ٹائم", "HEPM": "سینٹ پیئر اور مکلیئون ڈے لائٹ ٹائم", "PST": "پیسفک اسٹینڈرڈ ٹائم", "WEZ": "مغربی یورپ کا معیاری وقت", "WAT": "مغربی افریقہ سٹینڈرڈ ٹائم", "HNT": "نیو فاؤنڈ لینڈ اسٹینڈرڈ ٹائم", "CLT": "چلی کا معیاری وقت", "SAST": "جنوبی افریقہ سٹینڈرڈ ٹائم", "UYST": "یوروگوئے کا موسم گرما کا وقت", "NZST": "نیوزی لینڈ کا معیاری وقت", "ART": "ارجنٹینا سٹینڈرڈ ٹائم", "HADT": "ہوائی الیوٹیئن ڈے لائٹ ٹائم", "JST": "جاپان سٹینڈرڈ ٹائم", "VET": "وینزوئیلا کا وقت", "HECU": "کیوبا ڈے لائٹ ٹائم", "CDT": "سنٹرل ڈے لائٹ ٹائم", "AWDT": "آسٹریلین ویسٹرن ڈے لائٹ ٹائم", "WAST": "مغربی افریقہ سمر ٹائم", "HNOG": "مغربی گرین لینڈ اسٹینڈرڈ ٹائم", "HEOG": "مغربی گرین لینڈ کا موسم گرما کا وقت", "ARST": "ارجنٹینا سمر ٹائم", "ADT": "اٹلانٹک ڈے لائٹ ٹائم", "AEDT": "آسٹریلین ایسٹرن ڈے لائٹ ٹائم", "HNCU": "کیوبا اسٹینڈرڈ ٹائم", "HAT": "نیو فاؤنڈ لینڈ ڈے لائٹ ٹائم", "CAT": "وسطی افریقہ ٹائم", "AWST": "آسٹریلیا ویسٹرن اسٹینڈرڈ ٹائم", "HNPM": "سینٹ پیئر اور مکلیئون اسٹینڈرڈ ٹائم", "CHAST": "چیتھم اسٹینڈرڈ ٹائم", "AKST": "الاسکا اسٹینڈرڈ ٹائم", "COT": "کولمبیا کا معیاری وقت", "HKST": "ہانگ کانگ سمر ٹائم", "AST": "اٹلانٹک اسٹینڈرڈ ٹائم", "EAT": "مشرقی افریقہ ٹائم", "MESZ": "وسطی یورپ کا موسم گرما کا وقت", "ACST": "آسٹریلین سنٹرل اسٹینڈرڈ ٹائم", "HNEG": "مشرقی گرین لینڈ اسٹینڈرڈ ٹائم", "IST": "ہندوستان کا معیاری وقت", "PDT": "پیسفک ڈے لائٹ ٹائم", "ACWST": "آسٹریلین سنٹرل ویسٹرن اسٹینڈرڈ ٹائم", "SRT": "سورینام کا وقت", "GFT": "فرینچ گیانا کا وقت", "ACWDT": "آسٹریلین سنٹرل ویسٹرن ڈے لائٹ ٹائم", "WART": "مغربی ارجنٹینا کا معیاری وقت", "WARST": "مغربی ارجنٹینا کا موسم گرما کا وقت", "TMST": "ترکمانستان کا موسم گرما کا وقت", "MDT": "MDT"},
+ }
+ }
+ 
+diff --git a/ur_IN/ur_IN.go b/ur_IN/ur_IN.go
+index a55aa5c..254ef08 100644
+--- a/ur_IN/ur_IN.go
++++ b/ur_IN/ur_IN.go
+@@ -48,30 +48,14 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{2, 6},
+ pluralsOrdinal: []locales.PluralRule{6},
+ pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "‎-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositivePrefix: " ",
+ currencyNegativePrefix: " ",
+- monthsAbbreviated: []string{"", "جنوری", "فروری", "مارچ", "اپریل", "مئی", "جون", "جولائی", "اگست", "ستمبر", "اکتوبر", "نومبر", "دسمبر"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "جنوری", "فروری", "مارچ", "اپریل", "مئی", "جون", "جولائی", "اگست", "ستمبر", "اکتوبر", "نومبر", "دسمبر"},
+ daysAbbreviated: []string{"اتوار", "پیر", "منگل", "بدھ", "جمعرات", "جمعہ", "ہفتہ"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+ daysShort: []string{"اتوار", "پیر", "منگل", "بدھ", "جمعرات", "جمعہ", "ہفتہ"},
+ daysWide: []string{"اتوار", "پیر", "منگل", "بدھ", "جمعرات", "جمعہ", "ہفتہ"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"قبل مسیح", "عیسوی"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"قبل مسیح", "عیسوی"},
+- timezones: map[string]string{"UYST": "یوروگوئے سمر ٹائم", "AKST": "الاسکا اسٹینڈرڈ ٹائم", "ChST": "چامورو سٹینڈرڈ ٹائم", "WAST": "مغربی افریقہ سمر ٹائم", "GMT": "گرین وچ مین ٹائم", "SGT": "سنگاپور سٹینڈرڈ ٹائم", "AST": "اٹلانٹک اسٹینڈرڈ ٹائم", "AWDT": "آسٹریلین ویسٹرن ڈے لائٹ ٹائم", "ACWST": "آسٹریلین سنٹرل ویسٹرن اسٹینڈرڈ ٹائم", "ART": "ارجنٹینا سٹینڈرڈ ٹائم", "ARST": "ارجنٹینا سمر ٹائم", "ACDT": "آسٹریلین سنٹرل ڈے لائٹ ٹائم", "HEPMX": "میکسیکن پیسفک ڈے لائٹ ٹائم", "CDT": "سنٹرل ڈے لائٹ ٹائم", "HADT": "ہوائی الیوٹیئن ڈے لائٹ ٹائم", "HEOG": "مغربی گرین لینڈ کا موسم گرما کا وقت", "NZDT": "نیوزی لینڈ ڈے لائٹ ٹائم", "JDT": "جاپان ڈے لائٹ ٹائم", "ADT": "اٹلانٹک ڈے لائٹ ٹائم", "HNOG": "مغربی گرین لینڈ اسٹینڈرڈ ٹائم", "ACWDT": "آسٹریلین سنٹرل ویسٹرن ڈے لائٹ ٹائم", "HKST": "ہانگ کانگ سمر ٹائم", "MEZ": "وسطی یورپ کا معیاری وقت", "HEPM": "سینٹ پیئر اور مکلیئون ڈے لائٹ ٹائم", "CHAST": "چیتھم اسٹینڈرڈ ٹائم", "CLST": "چلی سمر ٹائم", "EAT": "مشرقی افریقہ ٹائم", "COST": "کولمبیا سمر ٹائم", "UYT": "یوروگوئے سٹینڈرڈ ٹائم", "PST": "پیسفک اسٹینڈرڈ ٹائم", "WEZ": "مغربی یورپ کا معیاری وقت", "HNT": "نیو فاؤنڈ لینڈ اسٹینڈرڈ ٹائم", "ACST": "آسٹریلین سنٹرل اسٹینڈرڈ ٹائم", "WART": "مغربی ارجنٹینا سٹینڈرڈ ٹائم", "HNNOMX": "شمال مغربی میکسیکو اسٹینڈرڈ ٹائم", "HENOMX": "شمال مغربی میکسیکو ڈے لائٹ ٹائم", "HECU": "کیوبا ڈے لائٹ ٹائم", "CLT": "چلی سٹینڈرڈ ٹائم", "GFT": "فرینچ گیانا ٹائم", "WARST": "مغربی ارجنٹینا سمر ٹائم", "HNPMX": "میکسیکن پیسفک اسٹینڈرڈ ٹائم", "AKDT": "الاسکا ڈے لائٹ ٹائم", "SRT": "سورینام ٹائم", "SAST": "جنوبی افریقہ سٹینڈرڈ ٹائم", "LHST": "لارڈ ہووے اسٹینڈرڈ ٹائم", "HNEG": "مشرقی گرین لینڈ اسٹینڈرڈ ٹائم", "∅∅∅": "پیرو سمر ٹائم", "CAT": "وسطی افریقہ ٹائم", "CST": "سنٹرل اسٹینڈرڈ ٹائم", "HNPM": "سینٹ پیئر اور مکلیئون اسٹینڈرڈ ٹائم", "MESZ": "وسطی یورپ کا موسم گرما کا وقت", "ECT": "ایکواڈور ٹائم", "COT": "کولمبیا سٹینڈرڈ ٹائم", "HAT": "نیو فاؤنڈ لینڈ ڈے لائٹ ٹائم", "TMST": "ترکمانستان سمر ٹائم", "CHADT": "چیتھم ڈے لائٹ ٹائم", "WAT": "مغربی افریقہ سٹینڈرڈ ٹائم", "OEZ": "مشرقی یورپ کا معیاری وقت", "HNCU": "کیوبا اسٹینڈرڈ ٹائم", "HAST": "ہوائی الیوٹیئن اسٹینڈرڈ ٹائم", "VET": "وینزوئیلا ٹائم", "LHDT": "لارڈ ہووے ڈے لائٹ ٹائم", "EST": "ایسٹرن اسٹینڈرڈ ٹائم", "MYT": "ملیشیا ٹائم", "BT": "بھوٹان ٹائم", "PDT": "پیسفک ڈے لائٹ ٹائم", "AEST": "آسٹریلین ایسٹرن اسٹینڈرڈ ٹائم", "HEEG": "مشرقی گرین لینڈ کا موسم گرما کا وقت", "MST": "MST", "GYT": "گیانا ٹائم", "AEDT": "آسٹریلین ایسٹرن ڈے لائٹ ٹائم", "AWST": "آسٹریلیا ویسٹرن اسٹینڈرڈ ٹائم", "WITA": "وسطی انڈونیشیا ٹائم", "MDT": "MDT", "WIT": "مشرقی انڈونیشیا ٹائم", "HKT": "ہانگ کانگ سٹینڈرڈ ٹائم", "BOT": "بولیویا ٹائم", "OESZ": "مشرقی یورپ کا موسم گرما کا وقت", "WESZ": "مغربی یورپ کا موسم گرما کا وقت", "IST": "انڈیا سٹینڈرڈ ٹائم", "JST": "جاپان سٹینڈرڈ ٹائم", "TMT": "ترکمانستان سٹینڈرڈ ٹائم", "EDT": "ایسٹرن ڈے لائٹ ٹائم", "WIB": "مغربی انڈونیشیا ٹائم", "NZST": "نیوزی لینڈ سٹینڈرڈ ٹائم"},
++ timezones: map[string]string{"MEZ": "وسطی یورپ کا معیاری وقت", "ACST": "ACST", "WAST": "WAST", "AKST": "AKST", "EST": "EST", "ART": "ART", "SRT": "سورینام ٹائم", "ACWST": "ACWST", "EAT": "EAT", "WART": "مغربی ارجنٹینا سٹینڈرڈ ٹائم", "SAST": "SAST", "AEDT": "AEDT", "HEPMX": "HEPMX", "OEZ": "OEZ", "WIB": "WIB", "HNEG": "HNEG", "AWDT": "AWDT", "WIT": "WIT", "CLT": "چلی سٹینڈرڈ ٹائم", "ARST": "ARST", "HECU": "HECU", "OESZ": "OESZ", "IST": "انڈیا سٹینڈرڈ ٹائم", "NZST": "نیوزی لینڈ سٹینڈرڈ ٹائم", "HENOMX": "HENOMX", "AWST": "AWST", "HNOG": "HNOG", "HKT": "HKT", "HKST": "HKST", "HADT": "HADT", "UYT": "یوروگوئے سٹینڈرڈ ٹائم", "HAT": "HAT", "PST": "PST", "PDT": "PDT", "BT": "بھوٹان ٹائم", "AEST": "AEST", "CHAST": "CHAST", "AST": "AST", "LHST": "LHST", "JDT": "JDT", "TMT": "ترکمانستان سٹینڈرڈ ٹائم", "TMST": "ترکمانستان سمر ٹائم", "HNPMX": "HNPMX", "AKDT": "AKDT", "HNT": "HNT", "MESZ": "وسطی یورپ کا موسم گرما کا وقت", "HEPM": "HEPM", "WEZ": "WEZ", "WESZ": "WESZ", "COT": "کولمبیا سٹینڈرڈ ٹائم", "ADT": "ADT", "ChST": "ChST", "HAST": "HAST", "ECT": "ایکواڈور ٹائم", "ACWDT": "ACWDT", "SGT": "SGT", "VET": "وینزوئیلا ٹائم", "BOT": "بولیویا ٹائم", "HNNOMX": "HNNOMX", "∅∅∅": "∅∅∅", "HNPM": "HNPM", "CHADT": "CHADT", "HNCU": "HNCU", "GFT": "فرینچ گیانا ٹائم", "WARST": "مغربی ارجنٹینا سمر ٹائم", "MST": "MST", "MDT": "MDT", "GMT": "گرین وچ مین ٹائم", "GYT": "گیانا ٹائم", "HEEG": "HEEG", "WAT": "WAT", "COST": "کولمبیا سمر ٹائم", "HEOG": "HEOG", "EDT": "EDT", "WITA": "WITA", "CDT": "CDT", "ACDT": "ACDT", "CAT": "CAT", "CLST": "چلی سمر ٹائم", "JST": "JST", "UYST": "یوروگوئے سمر ٹائم", "NZDT": "نیوزی لینڈ ڈے لائٹ ٹائم", "LHDT": "LHDT", "MYT": "MYT", "CST": "CST"},
+ }
+ }
+ 
+@@ -125,7 +109,7 @@ func (ur *ur_IN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ur *ur_IN) MonthsAbbreviated() []string {
+- return ur.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -135,7 +119,7 @@ func (ur *ur_IN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ur *ur_IN) MonthsNarrow() []string {
+- return ur.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -145,7 +129,7 @@ func (ur *ur_IN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ur *ur_IN) MonthsWide() []string {
+- return ur.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -191,77 +175,13 @@ func (ur *ur_IN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ur_IN' and handles both Whole and Real numbers based on 'v'
+ func (ur *ur_IN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ur.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ur.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ur.minus) - 1; j >= 0; j-- {
+- b = append(b, ur.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ur_IN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ur *ur_IN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 6
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ur.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ur.minus) - 1; j >= 0; j-- {
+- b = append(b, ur.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ur.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ur_IN'
+@@ -269,7 +189,7 @@ func (ur *ur_IN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ur.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ inSecondary := false
+@@ -312,9 +232,7 @@ func (ur *ur_IN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ }
+ 
+ if num < 0 {
+- for j := len(ur.minus) - 1; j >= 0; j-- {
+- b = append(b, ur.minus[j])
+- }
++ b = append(b, ur.minus[0])
+ }
+ 
+ // reverse
+@@ -342,7 +260,7 @@ func (ur *ur_IN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ur.currencies[currency]
+- l := len(s) + len(symbol) + 7 + 1*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ inSecondary := false
+@@ -386,9 +304,7 @@ func (ur *ur_IN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ b = append(b, ur.currencyNegativePrefix[j])
+ }
+ 
+- for j := len(ur.minus) - 1; j >= 0; j-- {
+- b = append(b, ur.minus[j])
+- }
++ b = append(b, ur.minus[0])
+ 
+ } else {
+ 
+@@ -426,17 +342,6 @@ func (ur *ur_IN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -445,17 +350,6 @@ func (ur *ur_IN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ur.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -464,17 +358,6 @@ func (ur *ur_IN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ur.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -483,19 +366,6 @@ func (ur *ur_IN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ur.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ur.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -504,28 +374,6 @@ func (ur *ur_IN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ur.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ur.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ur.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -534,35 +382,6 @@ func (ur *ur_IN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ur.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ur.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ur.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ur.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -571,40 +390,6 @@ func (ur *ur_IN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ur.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ur.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ur.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ur.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -613,44 +398,5 @@ func (ur *ur_IN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ur.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ur.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ur.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ur.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ur.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/ur_PK/ur_PK.go b/ur_PK/ur_PK.go
+index 4d1c371..c4955ea 100644
+--- a/ur_PK/ur_PK.go
++++ b/ur_PK/ur_PK.go
+@@ -42,32 +42,13 @@ type ur_PK struct {
+ // New returns a new instance of translator for the 'ur_PK' locale
+ func New() locales.Translator {
+ return &ur_PK{
+- locale: "ur_PK",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "‎-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "جنوری", "فروری", "مارچ", "اپریل", "مئی", "جون", "جولائی", "اگست", "ستمبر", "اکتوبر", "نومبر", "دسمبر"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "جنوری", "فروری", "مارچ", "اپریل", "مئی", "جون", "جولائی", "اگست", "ستمبر", "اکتوبر", "نومبر", "دسمبر"},
+- daysAbbreviated: []string{"اتوار", "سوموار", "منگل", "بدھ", "جمعرات", "جمعہ", "ہفتہ"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"اتوار", "سوموار", "منگل", "بدھ", "جمعرات", "جمعہ", "ہفتہ"},
+- daysWide: []string{"اتوار", "سوموار", "منگل", "بدھ", "جمعرات", "جمعہ", "ہفتہ"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"قبل مسیح", "عیسوی"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"قبل مسیح", "عیسوی"},
+- timezones: map[string]string{"EAT": "مشرقی افریقہ ٹائم", "WART": "مغربی ارجنٹینا کا معیاری وقت", "HNCU": "کیوبا اسٹینڈرڈ ٹائم", "ARST": "ارجنٹینا سمر ٹائم", "AWDT": "آسٹریلین ویسٹرن ڈے لائٹ ٹائم", "JST": "جاپان سٹینڈرڈ ٹائم", "HEEG": "مشرقی گرین لینڈ کا موسم گرما کا وقت", "ACWST": "آسٹریلین سنٹرل ویسٹرن اسٹینڈرڈ ٹائم", "HAST": "ہوائی الیوٹیئن اسٹینڈرڈ ٹائم", "AEST": "آسٹریلین ایسٹرن اسٹینڈرڈ ٹائم", "TMST": "ترکمانستان کا موسم گرما کا وقت", "SGT": "سنگاپور سٹینڈرڈ ٹائم", "EDT": "ایسٹرن ڈے لائٹ ٹائم", "CDT": "سنٹرل ڈے لائٹ ٹائم", "HEPM": "سینٹ پیئر اور مکلیئون ڈے لائٹ ٹائم", "IST": "ہندوستان کا معیاری وقت", "ChST": "چامورو سٹینڈرڈ ٹائم", "HECU": "کیوبا ڈے لائٹ ٹائم", "∅∅∅": "امیزون کا موسم گرما کا وقت", "JDT": "جاپان ڈے لائٹ ٹائم", "HNEG": "مشرقی گرین لینڈ اسٹینڈرڈ ٹائم", "HENOMX": "شمال مغربی میکسیکو ڈے لائٹ ٹائم", "ACWDT": "آسٹریلین سنٹرل ویسٹرن ڈے لائٹ ٹائم", "HAT": "نیو فاؤنڈ لینڈ ڈے لائٹ ٹائم", "PST": "پیسفک اسٹینڈرڈ ٹائم", "WITA": "وسطی انڈونیشیا ٹائم", "MYT": "ملیشیا ٹائم", "UYST": "یوروگوئے کا موسم گرما کا وقت", "WIB": "مغربی انڈونیشیا ٹائم", "TMT": "ترکمانستان کا معیاری وقت", "MST": "MST", "HADT": "ہوائی الیوٹیئن ڈے لائٹ ٹائم", "AWST": "آسٹریلیا ویسٹرن اسٹینڈرڈ ٹائم", "ACST": "آسٹریلین سنٹرل اسٹینڈرڈ ٹائم", "OEZ": "مشرقی یورپ کا معیاری وقت", "AST": "اٹلانٹک اسٹینڈرڈ ٹائم", "HNNOMX": "شمال مغربی میکسیکو اسٹینڈرڈ ٹائم", "AKDT": "الاسکا ڈے لائٹ ٹائم", "VET": "وینزوئیلا کا وقت", "HEOG": "مغربی گرین لینڈ کا موسم گرما کا وقت", "HKT": "ہانگ کانگ سٹینڈرڈ ٹائم", "AEDT": "آسٹریلین ایسٹرن ڈے لائٹ ٹائم", "CHAST": "چیتھم اسٹینڈرڈ ٹائم", "HNPM": "سینٹ پیئر اور مکلیئون اسٹینڈرڈ ٹائم", "CHADT": "چیتھم ڈے لائٹ ٹائم", "MEZ": "وسطی یورپ کا معیاری وقت", "SAST": "جنوبی افریقہ سٹینڈرڈ ٹائم", "UYT": "یوروگوئے کا معیاری وقت", "GFT": "فرینچ گیانا کا وقت", "ACDT": "آسٹریلین سنٹرل ڈے لائٹ ٹائم", "HNPMX": "میکسیکن پیسفک اسٹینڈرڈ ٹائم", "EST": "ایسٹرن اسٹینڈرڈ ٹائم", "CLST": "چلی کا موسم گرما کا وقت", "COT": "کولمبیا کا معیاری وقت", "CST": "سنٹرل اسٹینڈرڈ ٹائم", "PDT": "پیسفک ڈے لائٹ ٹائم", "NZDT": "نیوزی لینڈ ڈے لائٹ ٹائم", "MESZ": "وسطی یورپ کا موسم گرما کا وقت", "LHDT": "لارڈ ہووے ڈے لائٹ ٹائم", "WIT": "مشرقی انڈونیشیا ٹائم", "HKST": "ہانگ کانگ سمر ٹائم", "BOT": "بولیویا کا وقت", "WAT": "مغربی افریقہ سٹینڈرڈ ٹائم", "WAST": "مغربی افریقہ سمر ٹائم", "CLT": "چلی کا معیاری وقت", "ECT": "ایکواڈور کا وقت", "HEPMX": "میکسیکن پیسفک ڈے لائٹ ٹائم", "SRT": "سورینام کا وقت", "ART": "ارجنٹینا سٹینڈرڈ ٹائم", "WESZ": "مغربی یورپ کا موسم گرما کا وقت", "NZST": "نیوزی لینڈ کا معیاری وقت", "LHST": "لارڈ ہووے اسٹینڈرڈ ٹائم", "WARST": "مغربی ارجنٹینا کا موسم گرما کا وقت", "ADT": "اٹلانٹک ڈے لائٹ ٹائم", "GYT": "گیانا کا وقت", "BT": "بھوٹان کا وقت", "HNT": "نیو فاؤنڈ لینڈ اسٹینڈرڈ ٹائم", "HNOG": "مغربی گرین لینڈ اسٹینڈرڈ ٹائم", "WEZ": "مغربی یورپ کا معیاری وقت", "MDT": "MDT", "AKST": "الاسکا اسٹینڈرڈ ٹائم", "OESZ": "مشرقی یورپ کا موسم گرما کا وقت", "CAT": "وسطی افریقہ ٹائم", "COST": "کولمبیا کا موسم گرما کا وقت", "GMT": "گرین وچ کا اصل وقت"},
++ locale: "ur_PK",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNPMX": "HNPMX", "HEPMX": "HEPMX", "WARST": "WARST", "TMT": "TMT", "CLT": "CLT", "HAST": "HAST", "CHAST": "CHAST", "IST": "IST", "HECU": "HECU", "∅∅∅": "∅∅∅", "WITA": "WITA", "WIB": "WIB", "GMT": "GMT", "MEZ": "MEZ", "ACWST": "ACWST", "HNCU": "HNCU", "COT": "COT", "HNOG": "HNOG", "ChST": "ChST", "ACDT": "ACDT", "WEZ": "WEZ", "WAT": "WAT", "OESZ": "OESZ", "EAT": "EAT", "CHADT": "CHADT", "WART": "WART", "NZDT": "NZDT", "HEPM": "HEPM", "ACWDT": "ACWDT", "CLST": "CLST", "LHDT": "LHDT", "AEDT": "AEDT", "VET": "VET", "CST": "CST", "MYT": "MYT", "JDT": "JDT", "BT": "BT", "HNT": "HNT", "AST": "AST", "HNPM": "HNPM", "SGT": "SGT", "ACST": "ACST", "HNEG": "HNEG", "AKST": "AKST", "GFT": "GFT", "TMST": "TMST", "MDT": "MDT", "AWST": "AWST", "AEST": "AEST", "WESZ": "WESZ", "GYT": "GYT", "HKT": "HKT", "HKST": "HKST", "EDT": "EDT", "UYT": "UYT", "WAST": "WAST", "NZST": "NZST", "HEEG": "HEEG", "JST": "JST", "PST": "PST", "PDT": "PDT", "HAT": "HAT", "ECT": "ECT", "ADT": "ADT", "AWDT": "AWDT", "CDT": "CDT", "HADT": "HADT", "HENOMX": "HENOMX", "MESZ": "MESZ", "UYST": "UYST", "COST": "COST", "HEOG": "HEOG", "CAT": "CAT", "HNNOMX": "HNNOMX", "BOT": "BOT", "SRT": "SRT", "LHST": "LHST", "WIT": "WIT", "EST": "EST", "MST": "MST", "ART": "ART", "AKDT": "AKDT", "OEZ": "OEZ", "SAST": "SAST", "ARST": "ARST"},
+ }
+ }
+ 
+@@ -121,7 +102,7 @@ func (ur *ur_PK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (ur *ur_PK) MonthsAbbreviated() []string {
+- return ur.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -131,7 +112,7 @@ func (ur *ur_PK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (ur *ur_PK) MonthsNarrow() []string {
+- return ur.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -141,7 +122,7 @@ func (ur *ur_PK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (ur *ur_PK) MonthsWide() []string {
+- return ur.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -187,77 +168,13 @@ func (ur *ur_PK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'ur_PK' and handles both Whole and Real numbers based on 'v'
+ func (ur *ur_PK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ur.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ur.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ur.minus) - 1; j >= 0; j-- {
+- b = append(b, ur.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'ur_PK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (ur *ur_PK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 6
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ur.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- for j := len(ur.minus) - 1; j >= 0; j-- {
+- b = append(b, ur.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, ur.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'ur_PK'
+@@ -265,58 +182,7 @@ func (ur *ur_PK) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ur.currencies[currency]
+- l := len(s) + len(symbol) + 5 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ur.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ur.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- for j := len(ur.minus) - 1; j >= 0; j-- {
+- b = append(b, ur.minus[j])
+- }
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ur.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'ur_PK'
+@@ -325,66 +191,7 @@ func (ur *ur_PK) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := ur.currencies[currency]
+- l := len(s) + len(symbol) + 5 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, ur.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, ur.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(ur.minus) - 1; j >= 0; j-- {
+- b = append(b, ur.minus[j])
+- }
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, ur.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'ur_PK'
+@@ -392,17 +199,6 @@ func (ur *ur_PK) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -411,17 +207,6 @@ func (ur *ur_PK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, ur.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -430,17 +215,6 @@ func (ur *ur_PK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ur.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -449,19 +223,6 @@ func (ur *ur_PK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, ur.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, ur.monthsWide[t.Month()]...)
+- b = append(b, []byte{0xd8, 0x8c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -470,28 +231,6 @@ func (ur *ur_PK) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ur.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ur.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ur.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -500,35 +239,6 @@ func (ur *ur_PK) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ur.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ur.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ur.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ur.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -537,40 +247,6 @@ func (ur *ur_PK) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ur.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ur.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ur.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ur.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -579,44 +255,5 @@ func (ur *ur_PK) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, ur.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, ur.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, ur.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, ur.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := ur.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/uz/uz.go b/uz/uz.go
+index c679072..b9c9d8c 100644
+--- a/uz/uz.go
++++ b/uz/uz.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"m.a.", "milodiy"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"HAST": "Gavayi-aleut standart vaqti", "PST": "Tinch okeani standart vaqti", "CHAST": "Chatem standart vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "AKST": "Alyaska standart vaqti", "AEST": "Sharqiy Avstraliya standart vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "TMT": "Turkmaniston standart vaqti", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "GYT": "Gayana vaqti", "UYT": "Urugvay standart vaqti", "MST": "Tog‘ standart vaqti (AQSH)", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "BOT": "Boliviya vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "JDT": "Yaponiya yozgi vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "PDT": "Tinch okeani yozgi vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "ECT": "Ekvador vaqti", "AST": "Atlantika standart vaqti", "SRT": "Surinam vaqti", "HNT": "Nyufaundlend standart vaqti", "SAST": "Janubiy Afrika standart vaqti", "JST": "Yaponiya standart vaqti", "GFT": "Fransuz Gvianasi vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "WAT": "Gʻarbiy Afrika standart vaqti", "EST": "Sharqiy Amerika standart vaqti", "VET": "Venesuela vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "SGT": "Singapur vaqti", "AKDT": "Alyaska yozgi vaqti", "WEZ": "G‘arbiy Yevropa standart vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "ChST": "Chamorro standart vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "MYT": "Malayziya vaqti", "ART": "Argentina standart vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "CST": "Markaziy Amerika standart vaqti", "CDT": "Markaziy Amerika yozgi vaqti", "BT": "Butan vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "IST": "Hindiston vaqti", "CAT": "Markaziy Afrika vaqti", "COT": "Kolumbiya standart vaqti", "EAT": "Sharqiy Afrika vaqti", "COST": "Kolumbiya yozgi vaqti", "HECU": "Kuba yozgi vaqti", "AWST": "G‘arbiy Avstraliya standart vaqti", "UYST": "Urugvay yozgi vaqti", "CHADT": "Chatem yozgi vaqti", "LHST": "Lord-Xau standart vaqti", "NZST": "Yangi Zelandiya standart vaqti", "TMST": "Turkmaniston yozgi vaqti", "HNCU": "Kuba standart vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "ADT": "Atlantika yozgi vaqti", "WIT": "Sharqiy Indoneziya vaqti", "HKT": "Gonkong standart vaqti", "LHDT": "Lord-Xau yozgi vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "GMT": "Grinvich o‘rtacha vaqti", "WIB": "Gʻarbiy Indoneziya vaqti", "HAT": "Nyufaundlend yozgi vaqti", "WITA": "Markaziy Indoneziya vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "CLT": "Chili standart vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "MDT": "Tog‘ yozgi vaqti (AQSH)", "HADT": "Gavayi-aleut yozgi vaqti", "ARST": "Argentina yozgi vaqti", "HKST": "Gonkong yozgi vaqti", "CLST": "Chili yozgi vaqti", "∅∅∅": "Amazonka yozgi vaqti"},
++ timezones: map[string]string{"WAST": "Gʻarbiy Afrika yozgi vaqti", "IST": "Hindiston vaqti", "PDT": "Tinch okeani yozgi vaqti", "UYST": "Urugvay yozgi vaqti", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "HKST": "Gonkong yozgi vaqti", "MST": "MST", "WIB": "Gʻarbiy Indoneziya vaqti", "BT": "Butan vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "SGT": "Singapur vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "HAT": "Nyufaundlend yozgi vaqti", "SAST": "Janubiy Afrika standart vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "GMT": "Grinvich o‘rtacha vaqti", "JST": "Yaponiya standart vaqti", "PST": "Tinch okeani standart vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "HNT": "Nyufaundlend standart vaqti", "CAT": "Markaziy Afrika vaqti", "NZST": "Yangi Zelandiya standart vaqti", "BOT": "Boliviya vaqti", "SRT": "Surinam vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "MDT": "MDT", "MYT": "Malayziya vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "AKDT": "Alyaska yozgi vaqti", "GYT": "Gayana vaqti", "TMST": "Turkmaniston yozgi vaqti", "CLST": "Chili yozgi vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "∅∅∅": "Braziliya yozgi vaqti", "HKT": "Gonkong standart vaqti", "WITA": "Markaziy Indoneziya vaqti", "AST": "Atlantika standart vaqti", "ART": "Argentina standart vaqti", "EAT": "Sharqiy Afrika vaqti", "CHADT": "Chatem yozgi vaqti", "VET": "Venesuela vaqti", "HECU": "Kuba yozgi vaqti", "HNCU": "Kuba standart vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "ADT": "Atlantika yozgi vaqti", "HADT": "Gavayi-aleut yozgi vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "AWST": "G‘arbiy Avstraliya standart vaqti", "AEST": "Sharqiy Avstraliya standart vaqti", "UYT": "Urugvay standart vaqti", "WIT": "Sharqiy Indoneziya vaqti", "CLT": "Chili standart vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "HAST": "Gavayi-aleut standart vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "CDT": "Markaziy Amerika yozgi vaqti", "ECT": "Ekvador vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "LHST": "Lord-Xau standart vaqti", "JDT": "Yaponiya yozgi vaqti", "WAT": "Gʻarbiy Afrika standart vaqti", "COST": "Kolumbiya yozgi vaqti", "EST": "Sharqiy Amerika standart vaqti", "WEZ": "G‘arbiy Yevropa standart vaqti", "GFT": "Fransuz Gvianasi vaqti", "CST": "Markaziy Amerika standart vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "AKST": "Alyaska standart vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "COT": "Kolumbiya standart vaqti", "ARST": "Argentina yozgi vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "LHDT": "Lord-Xau yozgi vaqti", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "TMT": "Turkmaniston standart vaqti", "ChST": "Chamorro standart vaqti", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "CHAST": "Chatem standart vaqti"},
+ }
+ }
+ 
+diff --git a/uz_Arab/uz_Arab.go b/uz_Arab/uz_Arab.go
+index 7c1fae2..a3f3954 100644
+--- a/uz_Arab/uz_Arab.go
++++ b/uz_Arab/uz_Arab.go
+@@ -50,28 +50,19 @@ func New() locales.Translator {
+ pluralsRange: []locales.PluralRule{2, 6},
+ decimal: "٫",
+ group: "٬",
+- minus: "-",
+ percent: "٪",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "؋", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositiveSuffix: " ",
+ currencyNegativeSuffix: " ",
+ monthsAbbreviated: []string{"", "جنو", "فبر", "مار", "اپر", "می", "جون", "جول", "اگس", "سپت", "اکت", "نوم", "دسم"},
+- monthsNarrow: []string{"", "Y", "F", "M", "A", "M", "I", "I", "A", "S", "O", "N", "D"},
+ monthsWide: []string{"", "جنوری", "فبروری", "مارچ", "اپریل", "می", "جون", "جولای", "اگست", "سپتمبر", "اکتوبر", "نومبر", "دسمبر"},
+ daysAbbreviated: []string{"ی.", "د.", "س.", "چ.", "پ.", "ج.", "ش."},
+- daysNarrow: []string{"Y", "D", "S", "C", "P", "J", "S"},
+- daysShort: []string{"Ya", "Du", "Se", "Ch", "Pa", "Ju", "Sh"},
+ daysWide: []string{"یکشنبه", "دوشنبه", "سه\u200cشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"},
+- periodsAbbreviated: []string{"TO", "TK"},
+- periodsNarrow: []string{"TO", "TK"},
+- periodsWide: []string{"TO", "TK"},
+ erasAbbreviated: []string{"ق.م.", "م."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"IST": "Hindiston vaqti", "SAST": "Janubiy Afrika standart vaqti", "CLT": "Chili standart vaqti", "HNCU": "Kuba standart vaqti", "LHDT": "Lord-Xau yozgi vaqti", "CHAST": "Chatem standart vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "ART": "Argentina standart vaqti", "AWST": "G‘arbiy Avstraliya standart vaqti", "MST": "MST", "HAST": "Gavayi-aleut standart vaqti", "SRT": "Surinam vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "CDT": "Markaziy Amerika yozgi vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "HECU": "Kuba yozgi vaqti", "MDT": "MDT", "ARST": "Argentina yozgi vaqti", "TMST": "Turkmaniston yozgi vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "AST": "Atlantika standart vaqti", "HKT": "Gonkong standart vaqti", "AKST": "Alyaska standart vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "AEST": "Sharqiy Avstraliya standart vaqti", "WAT": "Gʻarbiy Afrika standart vaqti", "HNT": "Nyufaundlend standart vaqti", "BOT": "Boliviya vaqti", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "TMT": "Turkmaniston standart vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "JST": "Yaponiya standart vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "VET": "Venesuela vaqti", "HKST": "Gonkong yozgi vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "CHADT": "Chatem yozgi vaqti", "GMT": "Grinvich o‘rtacha vaqti", "CST": "Markaziy Amerika standart vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "AKDT": "Alyaska yozgi vaqti", "PDT": "Tinch okeani yozgi vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "CLST": "Chili yozgi vaqti", "EAT": "Sharqiy Afrika vaqti", "MYT": "Malayziya vaqti", "PST": "Tinch okeani standart vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "WITA": "Markaziy Indoneziya vaqti", "COST": "Kolumbiya yozgi vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "UYT": "Urugvay standart vaqti", "UYST": "Urugvay yozgi vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "EST": "Sharqiy Amerika standart vaqti", "ADT": "Atlantika yozgi vaqti", "GYT": "Gayana vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "ChST": "Chamorro standart vaqti", "ECT": "Ekvador vaqti", "COT": "Kolumbiya standart vaqti", "GFT": "Fransuz Gvianasi vaqti", "BT": "Butan vaqti", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "HADT": "Gavayi-aleut yozgi vaqti", "WEZ": "G‘arbiy Yevropa standart vaqti", "LHST": "Lord-Xau standart vaqti", "NZST": "Yangi Zelandiya standart vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "SGT": "Singapur vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "JDT": "Yaponiya yozgi vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "HAT": "Nyufaundlend yozgi vaqti", "WIT": "Sharqiy Indoneziya vaqti", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "∅∅∅": "Amazonka yozgi vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "CAT": "Markaziy Afrika vaqti", "WIB": "Gʻarbiy Indoneziya vaqti"},
++ timezones: map[string]string{"AEST": "AEST", "CHAST": "CHAST", "IST": "IST", "COT": "COT", "CLST": "CLST", "HNPM": "HNPM", "WESZ": "WESZ", "AKDT": "AKDT", "CLT": "CLT", "ChST": "ChST", "JDT": "JDT", "AEDT": "AEDT", "UYST": "UYST", "HAT": "HAT", "COST": "COST", "WAST": "WAST", "SAST": "SAST", "TMST": "TMST", "HADT": "HADT", "WARST": "WARST", "TMT": "TMT", "SRT": "SRT", "HEPM": "HEPM", "MEZ": "MEZ", "OESZ": "OESZ", "EST": "EST", "CDT": "CDT", "MDT": "MDT", "BOT": "BOT", "EAT": "EAT", "HECU": "HECU", "OEZ": "OEZ", "HKT": "HKT", "WIB": "WIB", "ADT": "ADT", "AWDT": "AWDT", "CHADT": "CHADT", "EDT": "EDT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HEPMX": "HEPMX", "HKST": "HKST", "ACST": "ACST", "JST": "JST", "MYT": "MYT", "HNCU": "HNCU", "SGT": "SGT", "WAT": "WAT", "WART": "WART", "HEOG": "HEOG", "CAT": "CAT", "PST": "PST", "AKST": "AKST", "MESZ": "MESZ", "UYT": "UYT", "HNPMX": "HNPMX", "VET": "VET", "MST": "MST", "GMT": "GMT", "HNEG": "HNEG", "ACDT": "ACDT", "LHST": "LHST", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "PDT": "PDT", "HNT": "HNT", "HNOG": "HNOG", "CST": "CST", "LHDT": "LHDT", "AWST": "AWST", "ACWST": "ACWST", "WEZ": "WEZ", "GFT": "GFT", "WITA": "WITA", "AST": "AST", "HEEG": "HEEG", "HAST": "HAST", "WIT": "WIT", "GYT": "GYT", "ECT": "ECT", "NZST": "NZST", "ART": "ART", "ARST": "ARST", "BT": "BT", "NZDT": "NZDT"},
+ }
+ }
+ 
+@@ -145,7 +136,7 @@ func (uz *uz_Arab) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (uz *uz_Arab) MonthsNarrow() []string {
+- return uz.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -201,79 +192,13 @@ func (uz *uz_Arab) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'uz_Arab' and handles both Whole and Real numbers based on 'v'
+ func (uz *uz_Arab) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(uz.decimal) - 1; j >= 0; j-- {
+- b = append(b, uz.decimal[j])
+- }
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(uz.group) - 1; j >= 0; j-- {
+- b = append(b, uz.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, uz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'uz_Arab' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (uz *uz_Arab) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- for j := len(uz.decimal) - 1; j >= 0; j-- {
+- b = append(b, uz.decimal[j])
+- }
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, uz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, uz.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'uz_Arab'
+@@ -281,7 +206,7 @@ func (uz *uz_Arab) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := uz.currencies[currency]
+- l := len(s) + len(symbol) + 5 + 2*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+@@ -343,7 +268,7 @@ func (uz *uz_Arab) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := uz.currencies[currency]
+- l := len(s) + len(symbol) + 5 + 2*len(s[:len(s)-int(v)-1])/3
++ l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+ count := 0
+ inWhole := v == 0
+ b := make([]byte, 0, l)
+diff --git a/uz_Arab_AF/uz_Arab_AF.go b/uz_Arab_AF/uz_Arab_AF.go
+index 88a96d7..e97c36d 100644
+--- a/uz_Arab_AF/uz_Arab_AF.go
++++ b/uz_Arab_AF/uz_Arab_AF.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type uz_Arab_AF struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'uz_Arab_AF' locale
+ func New() locales.Translator {
+ return &uz_Arab_AF{
+- locale: "uz_Arab_AF",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "yan", "fev", "mar", "apr", "may", "iyn", "iyl", "avg", "sen", "okt", "noy", "dek"},
+- monthsNarrow: []string{"", "Y", "F", "M", "A", "M", "I", "I", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "yanvar", "fevral", "mart", "aprel", "may", "iyun", "iyul", "avgust", "sentabr", "oktabr", "noyabr", "dekabr"},
+- daysAbbreviated: []string{"Yak", "Dush", "Sesh", "Chor", "Pay", "Jum", "Shan"},
+- daysNarrow: []string{"Y", "D", "S", "C", "P", "J", "S"},
+- daysShort: []string{"Ya", "Du", "Se", "Ch", "Pa", "Ju", "Sh"},
+- daysWide: []string{"yakshanba", "dushanba", "seshanba", "chorshanba", "payshanba", "juma", "shanba"},
+- periodsAbbreviated: []string{"TO", "TK"},
+- periodsNarrow: []string{"TO", "TK"},
+- periodsWide: []string{"TO", "TK"},
+- erasAbbreviated: []string{"m.a.", "milodiy"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"CLT": "Chili standart vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "PST": "Tinch okeani standart vaqti", "ARST": "Argentina yozgi vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "HADT": "Gavayi-aleut yozgi vaqti", "HAT": "Nyufaundlend yozgi vaqti", "ART": "Argentina standart vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "MST": "MST", "WIB": "Gʻarbiy Indoneziya vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "COT": "Kolumbiya standart vaqti", "UYST": "Urugvay yozgi vaqti", "HNT": "Nyufaundlend standart vaqti", "NZST": "Yangi Zelandiya standart vaqti", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "COST": "Kolumbiya yozgi vaqti", "AKDT": "Alyaska yozgi vaqti", "BT": "Butan vaqti", "CLST": "Chili yozgi vaqti", "WAT": "Gʻarbiy Afrika standart vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "MYT": "Malayziya vaqti", "JDT": "Yaponiya yozgi vaqti", "TMT": "Turkmaniston standart vaqti", "BOT": "Boliviya vaqti", "GFT": "Fransuz Gvianasi vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "MDT": "MDT", "WEZ": "G‘arbiy Yevropa standart vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "LHDT": "Lord-Xau yozgi vaqti", "CHADT": "Chatem yozgi vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "GYT": "Gayana vaqti", "VET": "Venesuela vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "SAST": "Janubiy Afrika standart vaqti", "ChST": "Chamorro standart vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "HNCU": "Kuba standart vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "JST": "Yaponiya standart vaqti", "HKST": "Gonkong yozgi vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "AKST": "Alyaska standart vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "TMST": "Turkmaniston yozgi vaqti", "HECU": "Kuba yozgi vaqti", "EST": "Sharqiy Amerika standart vaqti", "UYT": "Urugvay standart vaqti", "CST": "Markaziy Amerika standart vaqti", "ADT": "Atlantika yozgi vaqti", "∅∅∅": "Amazonka yozgi vaqti", "EAT": "Sharqiy Afrika vaqti", "GMT": "Grinvich o‘rtacha vaqti", "WIT": "Sharqiy Indoneziya vaqti", "AWST": "G‘arbiy Avstraliya standart vaqti", "IST": "Hindiston vaqti", "WITA": "Markaziy Indoneziya vaqti", "ECT": "Ekvador vaqti", "SGT": "Singapur vaqti", "AST": "Atlantika standart vaqti", "PDT": "Tinch okeani yozgi vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "HKT": "Gonkong standart vaqti", "CAT": "Markaziy Afrika vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "AEST": "Sharqiy Avstraliya standart vaqti", "LHST": "Lord-Xau standart vaqti", "HAST": "Gavayi-aleut standart vaqti", "SRT": "Surinam vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "CHAST": "Chatem standart vaqti", "CDT": "Markaziy Amerika yozgi vaqti"},
++ locale: "uz_Arab_AF",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WART": "WART", "ART": "ART", "MDT": "MDT", "HENOMX": "HENOMX", "WEZ": "WEZ", "HNCU": "HNCU", "WIB": "WIB", "IST": "IST", "CLT": "CLT", "WITA": "WITA", "GMT": "GMT", "SGT": "SGT", "WESZ": "WESZ", "AKST": "AKST", "COST": "COST", "PDT": "PDT", "ACWST": "ACWST", "ACST": "ACST", "LHDT": "LHDT", "HNPM": "HNPM", "CHADT": "CHADT", "OESZ": "OESZ", "GYT": "GYT", "HEOG": "HEOG", "ChST": "ChST", "HEPMX": "HEPMX", "LHST": "LHST", "HEPM": "HEPM", "WAT": "WAT", "AKDT": "AKDT", "HAT": "HAT", "HKST": "HKST", "SRT": "SRT", "HNEG": "HNEG", "UYT": "UYT", "UYST": "UYST", "WAST": "WAST", "OEZ": "OEZ", "WARST": "WARST", "ADT": "ADT", "AWDT": "AWDT", "JST": "JST", "WIT": "WIT", "CAT": "CAT", "NZDT": "NZDT", "AST": "AST", "TMST": "TMST", "CLST": "CLST", "HAST": "HAST", "MYT": "MYT", "GFT": "GFT", "SAST": "SAST", "COT": "COT", "EDT": "EDT", "PST": "PST", "VET": "VET", "HNPMX": "HNPMX", "HADT": "HADT", "HEEG": "HEEG", "AWST": "AWST", "HECU": "HECU", "HNT": "HNT", "HKT": "HKT", "TMT": "TMT", "MST": "MST", "BT": "BT", "EST": "EST", "CST": "CST", "CDT": "CDT", "CHAST": "CHAST", "AEST": "AEST", "ACDT": "ACDT", "HNOG": "HNOG", "ECT": "ECT", "MEZ": "MEZ", "MESZ": "MESZ", "EAT": "EAT", "HNNOMX": "HNNOMX", "JDT": "JDT", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "NZST": "NZST", "ARST": "ARST", "BOT": "BOT", "AEDT": "AEDT"},
+ }
+ }
+ 
+@@ -135,7 +112,7 @@ func (uz *uz_Arab_AF) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (uz *uz_Arab_AF) MonthsAbbreviated() []string {
+- return uz.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -145,7 +122,7 @@ func (uz *uz_Arab_AF) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (uz *uz_Arab_AF) MonthsNarrow() []string {
+- return uz.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -155,7 +132,7 @@ func (uz *uz_Arab_AF) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (uz *uz_Arab_AF) MonthsWide() []string {
+- return uz.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -201,75 +178,13 @@ func (uz *uz_Arab_AF) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'uz_Arab_AF' and handles both Whole and Real numbers based on 'v'
+ func (uz *uz_Arab_AF) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uz.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(uz.group) - 1; j >= 0; j-- {
+- b = append(b, uz.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, uz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'uz_Arab_AF' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (uz *uz_Arab_AF) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uz.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, uz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, uz.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'uz_Arab_AF'
+@@ -277,58 +192,7 @@ func (uz *uz_Arab_AF) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := uz.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uz.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(uz.group) - 1; j >= 0; j-- {
+- b = append(b, uz.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, uz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, uz.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, uz.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'uz_Arab_AF'
+@@ -337,65 +201,7 @@ func (uz *uz_Arab_AF) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := uz.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uz.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(uz.group) - 1; j >= 0; j-- {
+- b = append(b, uz.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, uz.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, uz.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, uz.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, uz.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'uz_Arab_AF'
+@@ -403,27 +209,6 @@ func (uz *uz_Arab_AF) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -432,17 +217,6 @@ func (uz *uz_Arab_AF) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, uz.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -451,17 +225,6 @@ func (uz *uz_Arab_AF) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, uz.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -470,19 +233,6 @@ func (uz *uz_Arab_AF) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, uz.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, uz.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,19 +241,6 @@ func (uz *uz_Arab_AF) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -512,26 +249,6 @@ func (uz *uz_Arab_AF) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -540,28 +257,6 @@ func (uz *uz_Arab_AF) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+ 
+@@ -570,32 +265,5 @@ func (uz *uz_Arab_AF) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := uz.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/uz_Cyrl/uz_Cyrl.go b/uz_Cyrl/uz_Cyrl.go
+index fcec1bb..9ba2f1d 100644
+--- a/uz_Cyrl/uz_Cyrl.go
++++ b/uz_Cyrl/uz_Cyrl.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"", ""},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"BOT": "Боливия вақти", "WARST": "Ғарбий Аргентина ёзги вақти", "HNPM": "Сент-Пьер ва Микелон стандарт вақти", "MESZ": "Марказий Европа ёзги вақти", "NZDT": "Янги Зеландия кундузги вақти", "CHAST": "Чатхам стандарт вақти", "WAT": "Ғарбий Африка стандарт вақти", "ADT": "Атлантика кундузги вақти", "AWST": "Ғарбий Австралия стандарт вақти", "HNCU": "Куба стандарт вақти", "MST": "MST", "HNPMX": "Meksika Tinch okeani standart vaqti", "WIT": "Шарқий Индонезия вақти", "BT": "Бутан вақти", "WEZ": "Ғарбий Европа стандарт вақти", "HNT": "Ньюфаундленд стандарт вақти", "HEOG": "Ғарбий Гренландия ёзги вақти", "AEST": "Шарқий Австралия стандарт вақти", "JST": "Япония стандарт вақти", "TMST": "Туркманистон ёзги вақти", "SGT": "Сингапур вақти", "HECU": "Куба кундузги вақти", "CST": "Шимолий Америка марказий стандарт вақти", "ACWDT": "Марказий Австралия Ғарбий кундузги вақти", "CLST": "Чили ёзги вақти", "WART": "Ғарбий Аргентина стандарт вақти", "GMT": "Гринвич вақти", "WIB": "Ғарбий Индонезия вақти", "TMT": "Туркманистон стандарт вақти", "GYT": "Гайана вақти", "SRT": "Суринам вақти", "PST": "Шимолий Америка тинч океани стандарт вақти", "PDT": "Шимолий Америка тинч океани кундузги вақти", "ACST": "Марказий Австралия стандарт вақти", "ECT": "Эквадор вақти", "COST": "Колумбия ёзги вақти", "HADT": "Гавайи-алеут кундузги вақти", "HAT": "Ньюфаундленд кундузги вақти", "GFT": "Француз Гвианаси вақти", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "AST": "Атлантика стандарт вақти", "UYST": "Уругвай ёзги вақти", "HKT": "Гонконг стандарт вақти", "HEPM": "Сент-Пьер ва Микелон кундузги вақти", "IST": "Ҳиндистон вақти", "CLT": "Чили стандарт вақти", "JDT": "Япония кундузги вақти", "OESZ": "Шарқий Европа ёзги вақти", "EDT": "Шимолий Америка шарқий кундузги вақти", "ACWST": "Марказий Австралия Ғарбий стандарт вақти", "ARST": "Аргентина ёзги вақти", "WITA": "Марказий Индонезия вақти", "NZST": "Янги Зеландия стандарт вақти", "ChST": "Каморро вақти", "HNEG": "Шарқий Гренландия стандарт вақти", "EST": "Шимолий Америка шарқий стандарт вақти", "AEDT": "Шарқий Австралия кундузги вақти", "MEZ": "Марказий Европа стандарт вақти", "LHST": "Лорд Хове стандарт вақти", "CHADT": "Чатхам кундузги вақти", "WAST": "Ғарбий Африка ёзги вақти", "∅∅∅": "Перу ёзги вақти", "COT": "Колумбия стандарт вақти", "HAST": "Гавайи-алеут стандарт вақти", "ART": "Аргентина стандарт вақти", "HKST": "Гонконг ёзги вақти", "HEEG": "Шарқий Гренландия ёзги вақти", "ACDT": "Марказий Австралия кундузги вақти", "EAT": "Шарқий Африка вақти", "OEZ": "Шарқий Европа стандарт вақти", "MDT": "MDT", "CDT": "Шимолий Америка марказий кундузги вақти", "VET": "Венесуэла вақти", "HNOG": "Ғарбий Гренландия стандарт вақти", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "AKST": "Аляска стандарт вақти", "CAT": "Марказий Африка вақти", "MYT": "Малайзия вақти", "UYT": "Уругвай стандарт вақти", "WESZ": "Ғарбий Европа ёзги вақти", "LHDT": "Лорд Хове кундузги вақти", "SAST": "Жанубий Африка вақти", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "AKDT": "Аляска кундузги вақти", "AWDT": "Ғарбий Австралия кундузги вақти"},
++ timezones: map[string]string{"HNOG": "Ғарбий Гренландия стандарт вақти", "HKST": "Гонконг ёзги вақти", "CLT": "Чили стандарт вақти", "MDT": "MDT", "NZST": "Янги Зеландия стандарт вақти", "ChST": "Каморро вақти", "AEST": "Шарқий Австралия стандарт вақти", "COST": "Колумбия ёзги вақти", "EDT": "Шимолий Америка шарқий кундузги вақти", "CDT": "Шимолий Америка марказий кундузги вақти", "BOT": "Боливия вақти", "SRT": "Суринам вақти", "HAST": "Гавайи-алеут стандарт вақти", "AEDT": "Шарқий Австралия кундузги вақти", "UYT": "Уругвай стандарт вақти", "COT": "Колумбия стандарт вақти", "HEOG": "Ғарбий Гренландия ёзги вақти", "EST": "Шимолий Америка шарқий стандарт вақти", "HKT": "Гонконг стандарт вақти", "CLST": "Чили ёзги вақти", "ADT": "Атлантика кундузги вақти", "EAT": "Шарқий Африка вақти", "HNCU": "Куба стандарт вақти", "WART": "Ғарбий Аргентина стандарт вақти", "GYT": "Гайана вақти", "ACDT": "Марказий Австралия кундузги вақти", "LHST": "Лорд Хове стандарт вақти", "HEPM": "Сент-Пьер ва Микелон кундузги вақти", "JDT": "Япония кундузги вақти", "AST": "Атлантика стандарт вақти", "ART": "Аргентина стандарт вақти", "JST": "Япония стандарт вақти", "PST": "Шимолий Америка тинч океани стандарт вақти", "WIT": "Шарқий Индонезия вақти", "CAT": "Марказий Африка вақти", "WIB": "Ғарбий Индонезия вақти", "MEZ": "Марказий Европа стандарт вақти", "SGT": "Сингапур вақти", "HEPMX": "HEPMX", "AKST": "Аляска стандарт вақти", "OEZ": "Шарқий Европа стандарт вақти", "VET": "Венесуэла вақти", "WAT": "Ғарбий Африка стандарт вақти", "AWDT": "Ғарбий Австралия кундузги вақти", "UYST": "Уругвай ёзги вақти", "WESZ": "Ғарбий Европа ёзги вақти", "WAST": "Ғарбий Африка ёзги вақти", "WITA": "Марказий Индонезия вақти", "MST": "MST", "MYT": "Малайзия вақти", "ACWST": "Марказий Австралия Ғарбий стандарт вақти", "AKDT": "Аляска кундузги вақти", "HAT": "Ньюфаундленд кундузги вақти", "HADT": "Гавайи-алеут кундузги вақти", "HNEG": "Шарқий Гренландия стандарт вақти", "ACWDT": "Марказий Австралия Ғарбий кундузги вақти", "ECT": "Эквадор вақти", "MESZ": "Марказий Европа ёзги вақти", "HEEG": "Шарқий Гренландия ёзги вақти", "CHAST": "Чатхам стандарт вақти", "HNPMX": "HNPMX", "OESZ": "Шарқий Европа ёзги вақти", "HNT": "Ньюфаундленд стандарт вақти", "SAST": "Жанубий Африка вақти", "PDT": "Шимолий Америка тинч океани кундузги вақти", "BT": "Бутан вақти", "WEZ": "Ғарбий Европа стандарт вақти", "ARST": "Аргентина ёзги вақти", "∅∅∅": "Бразилия ёзги вақти", "TMT": "Туркманистон стандарт вақти", "TMST": "Туркманистон ёзги вақти", "NZDT": "Янги Зеландия кундузги вақти", "CHADT": "Чатхам кундузги вақти", "HECU": "Куба кундузги вақти", "GFT": "Француз Гвианаси вақти", "AWST": "Ғарбий Австралия стандарт вақти", "IST": "Ҳиндистон вақти", "WARST": "Ғарбий Аргентина ёзги вақти", "CST": "Шимолий Америка марказий стандарт вақти", "GMT": "Гринвич вақти", "ACST": "Марказий Австралия стандарт вақти", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "LHDT": "Лорд Хове кундузги вақти", "HNPM": "Сент-Пьер ва Микелон стандарт вақти"},
+ }
+ }
+ 
+diff --git a/uz_Cyrl_UZ/uz_Cyrl_UZ.go b/uz_Cyrl_UZ/uz_Cyrl_UZ.go
+index f189940..6a11fdc 100644
+--- a/uz_Cyrl_UZ/uz_Cyrl_UZ.go
++++ b/uz_Cyrl_UZ/uz_Cyrl_UZ.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type uz_Cyrl_UZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'uz_Cyrl_UZ' locale
+ func New() locales.Translator {
+ return &uz_Cyrl_UZ{
+- locale: "uz_Cyrl_UZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "yan", "fev", "mar", "apr", "may", "iyn", "iyl", "avg", "sen", "okt", "noy", "dek"},
+- monthsNarrow: []string{"", "Y", "F", "M", "A", "M", "I", "I", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "yanvar", "fevral", "mart", "aprel", "may", "iyun", "iyul", "avgust", "sentabr", "oktabr", "noyabr", "dekabr"},
+- daysAbbreviated: []string{"Yak", "Dush", "Sesh", "Chor", "Pay", "Jum", "Shan"},
+- daysNarrow: []string{"Y", "D", "S", "C", "P", "J", "S"},
+- daysShort: []string{"Ya", "Du", "Se", "Ch", "Pa", "Ju", "Sh"},
+- daysWide: []string{"yakshanba", "dushanba", "seshanba", "chorshanba", "payshanba", "juma", "shanba"},
+- periodsAbbreviated: []string{"TO", "TK"},
+- periodsNarrow: []string{"TO", "TK"},
+- periodsWide: []string{"TO", "TK"},
+- erasAbbreviated: []string{"m.a.", "milodiy"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"WITA": "Markaziy Indoneziya vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "EST": "Sharqiy Amerika standart vaqti", "HADT": "Gavayi-aleut yozgi vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "WEZ": "G‘arbiy Yevropa standart vaqti", "HKST": "Gonkong yozgi vaqti", "GMT": "Grinvich o‘rtacha vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "CDT": "Markaziy Amerika yozgi vaqti", "AST": "Atlantika standart vaqti", "GYT": "Gayana vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "HAT": "Nyufaundlend yozgi vaqti", "PDT": "Tinch okeani yozgi vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "AKST": "Alyaska standart vaqti", "CST": "Markaziy Amerika standart vaqti", "AWST": "G‘arbiy Avstraliya standart vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "∅∅∅": "Peru yozgi vaqti", "PST": "Tinch okeani standart vaqti", "LHST": "Lord-Xau standart vaqti", "JST": "Yaponiya standart vaqti", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "EAT": "Sharqiy Afrika vaqti", "HNCU": "Kuba standart vaqti", "HAST": "Gavayi-aleut standart vaqti", "SRT": "Surinam vaqti", "ARST": "Argentina yozgi vaqti", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "MYT": "Malayziya vaqti", "BOT": "Boliviya vaqti", "NZST": "Yangi Zelandiya standart vaqti", "CHADT": "Chatem yozgi vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "HECU": "Kuba yozgi vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "WIT": "Sharqiy Indoneziya vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "COST": "Kolumbiya yozgi vaqti", "ADT": "Atlantika yozgi vaqti", "UYT": "Urugvay standart vaqti", "SAST": "Janubiy Afrika standart vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "WAT": "Gʻarbiy Afrika standart vaqti", "VET": "Venesuela vaqti", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "TMT": "Turkmaniston standart vaqti", "ChST": "Chamorro standart vaqti", "JDT": "Yaponiya yozgi vaqti", "CLT": "Chili standart vaqti", "GFT": "Fransuz Gvianasi vaqti", "AKDT": "Alyaska yozgi vaqti", "WIB": "Gʻarbiy Indoneziya vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "HKT": "Gonkong standart vaqti", "LHDT": "Lord-Xau yozgi vaqti", "CAT": "Markaziy Afrika vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "BT": "Butan vaqti", "CHAST": "Chatem standart vaqti", "ECT": "Ekvador vaqti", "MST": "MST", "UYST": "Urugvay yozgi vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "IST": "Hindiston vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "HNT": "Nyufaundlend standart vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "CLST": "Chili yozgi vaqti", "TMST": "Turkmaniston yozgi vaqti", "COT": "Kolumbiya standart vaqti", "SGT": "Singapur vaqti", "MDT": "MDT", "ART": "Argentina standart vaqti", "AEST": "Sharqiy Avstraliya standart vaqti"},
++ locale: "uz_Cyrl_UZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MST": "MST", "GMT": "GMT", "AEST": "AEST", "COST": "COST", "TMST": "TMST", "ACWDT": "ACWDT", "HECU": "HECU", "CLT": "CLT", "AWDT": "AWDT", "UYST": "UYST", "AKST": "AKST", "OEZ": "OEZ", "HKST": "HKST", "ECT": "ECT", "ARST": "ARST", "HNPM": "HNPM", "AWST": "AWST", "PST": "PST", "HNCU": "HNCU", "HKT": "HKT", "WITA": "WITA", "MESZ": "MESZ", "ACST": "ACST", "CHAST": "CHAST", "PDT": "PDT", "MYT": "MYT", "HEPMX": "HEPMX", "COT": "COT", "GYT": "GYT", "WESZ": "WESZ", "SGT": "SGT", "ChST": "ChST", "SRT": "SRT", "HEEG": "HEEG", "CHADT": "CHADT", "IST": "IST", "HNOG": "HNOG", "SAST": "SAST", "EDT": "EDT", "ART": "ART", "HAST": "HAST", "HENOMX": "HENOMX", "ACDT": "ACDT", "HEPM": "HEPM", "CLST": "CLST", "ADT": "ADT", "JST": "JST", "AKDT": "AKDT", "TMT": "TMT", "EST": "EST", "BOT": "BOT", "HNPMX": "HNPMX", "LHDT": "LHDT", "WAST": "WAST", "WART": "WART", "WARST": "WARST", "NZST": "NZST", "AEDT": "AEDT", "UYT": "UYT", "∅∅∅": "∅∅∅", "CAT": "CAT", "JDT": "JDT", "GFT": "GFT", "MEZ": "MEZ", "LHST": "LHST", "BT": "BT", "NZDT": "NZDT", "WIB": "WIB", "CDT": "CDT", "AST": "AST", "HNEG": "HNEG", "VET": "VET", "HNT": "HNT", "HAT": "HAT", "HEOG": "HEOG", "CST": "CST", "HADT": "HADT", "WEZ": "WEZ", "WIT": "WIT", "OESZ": "OESZ", "MDT": "MDT", "EAT": "EAT", "HNNOMX": "HNNOMX", "ACWST": "ACWST", "WAT": "WAT"},
+ }
+ }
+ 
+@@ -135,7 +112,7 @@ func (uz *uz_Cyrl_UZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (uz *uz_Cyrl_UZ) MonthsAbbreviated() []string {
+- return uz.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -145,7 +122,7 @@ func (uz *uz_Cyrl_UZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (uz *uz_Cyrl_UZ) MonthsNarrow() []string {
+- return uz.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -155,7 +132,7 @@ func (uz *uz_Cyrl_UZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (uz *uz_Cyrl_UZ) MonthsWide() []string {
+- return uz.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -201,75 +178,13 @@ func (uz *uz_Cyrl_UZ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'uz_Cyrl_UZ' and handles both Whole and Real numbers based on 'v'
+ func (uz *uz_Cyrl_UZ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uz.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(uz.group) - 1; j >= 0; j-- {
+- b = append(b, uz.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, uz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'uz_Cyrl_UZ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (uz *uz_Cyrl_UZ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uz.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, uz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, uz.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'uz_Cyrl_UZ'
+@@ -277,58 +192,7 @@ func (uz *uz_Cyrl_UZ) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := uz.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uz.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(uz.group) - 1; j >= 0; j-- {
+- b = append(b, uz.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, uz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, uz.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, uz.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'uz_Cyrl_UZ'
+@@ -337,65 +201,7 @@ func (uz *uz_Cyrl_UZ) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := uz.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uz.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(uz.group) - 1; j >= 0; j-- {
+- b = append(b, uz.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, uz.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, uz.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, uz.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, uz.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'uz_Cyrl_UZ'
+@@ -403,27 +209,6 @@ func (uz *uz_Cyrl_UZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -432,17 +217,6 @@ func (uz *uz_Cyrl_UZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, uz.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -451,17 +225,6 @@ func (uz *uz_Cyrl_UZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, uz.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -470,19 +233,6 @@ func (uz *uz_Cyrl_UZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, uz.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, uz.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,19 +241,6 @@ func (uz *uz_Cyrl_UZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -512,26 +249,6 @@ func (uz *uz_Cyrl_UZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -540,28 +257,6 @@ func (uz *uz_Cyrl_UZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+ 
+@@ -570,32 +265,5 @@ func (uz *uz_Cyrl_UZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := uz.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/uz_Latn/uz_Latn.go b/uz_Latn/uz_Latn.go
+index ff7acd5..52e889f 100644
+--- a/uz_Latn/uz_Latn.go
++++ b/uz_Latn/uz_Latn.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type uz_Latn struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'uz_Latn' locale
+ func New() locales.Translator {
+ return &uz_Latn{
+- locale: "uz_Latn",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "yan", "fev", "mar", "apr", "may", "iyn", "iyl", "avg", "sen", "okt", "noy", "dek"},
+- monthsNarrow: []string{"", "Y", "F", "M", "A", "M", "I", "I", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "yanvar", "fevral", "mart", "aprel", "may", "iyun", "iyul", "avgust", "sentabr", "oktabr", "noyabr", "dekabr"},
+- daysAbbreviated: []string{"Yak", "Dush", "Sesh", "Chor", "Pay", "Jum", "Shan"},
+- daysNarrow: []string{"Y", "D", "S", "C", "P", "J", "S"},
+- daysShort: []string{"Ya", "Du", "Se", "Ch", "Pa", "Ju", "Sh"},
+- daysWide: []string{"yakshanba", "dushanba", "seshanba", "chorshanba", "payshanba", "juma", "shanba"},
+- periodsAbbreviated: []string{"TO", "TK"},
+- periodsNarrow: []string{"TO", "TK"},
+- periodsWide: []string{"TO", "TK"},
+- erasAbbreviated: []string{"m.a.", "milodiy"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"CDT": "Markaziy Amerika yozgi vaqti", "UYT": "Urugvay standart vaqti", "AKST": "Alyaska standart vaqti", "HADT": "Gavayi-aleut yozgi vaqti", "WIT": "Sharqiy Indoneziya vaqti", "SRT": "Surinam vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "CHADT": "Chatem yozgi vaqti", "GFT": "Fransuz Gvianasi vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "∅∅∅": "Azor orollari yozgi vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "MYT": "Malayziya vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "ChST": "Chamorro standart vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "CST": "Markaziy Amerika standart vaqti", "UYST": "Urugvay yozgi vaqti", "HNT": "Nyufaundlend standart vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "LHDT": "Lord-Xau yozgi vaqti", "BOT": "Boliviya vaqti", "CAT": "Markaziy Afrika vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "SGT": "Singapur vaqti", "HAST": "Gavayi-aleut standart vaqti", "PDT": "Tinch okeani yozgi vaqti", "JDT": "Yaponiya yozgi vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "HNCU": "Kuba standart vaqti", "WIB": "Gʻarbiy Indoneziya vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "AWST": "G‘arbiy Avstraliya standart vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "CLT": "Chili standart vaqti", "ECT": "Ekvador vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "VET": "Venesuela vaqti", "WITA": "Markaziy Indoneziya vaqti", "JST": "Yaponiya standart vaqti", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "MST": "MST", "GYT": "Gayana vaqti", "HAT": "Nyufaundlend yozgi vaqti", "ARST": "Argentina yozgi vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "COT": "Kolumbiya standart vaqti", "HECU": "Kuba yozgi vaqti", "PST": "Tinch okeani standart vaqti", "WEZ": "G‘arbiy Yevropa standart vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "HKST": "Gonkong yozgi vaqti", "TMST": "Turkmaniston yozgi vaqti", "AST": "Atlantika standart vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "TMT": "Turkmaniston standart vaqti", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "CHAST": "Chatem standart vaqti", "NZST": "Yangi Zelandiya standart vaqti", "AEST": "Sharqiy Avstraliya standart vaqti", "SAST": "Janubiy Afrika standart vaqti", "MDT": "MDT", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "BT": "Butan vaqti", "HKT": "Gonkong standart vaqti", "EAT": "Sharqiy Afrika vaqti", "ADT": "Atlantika yozgi vaqti", "AKDT": "Alyaska yozgi vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "LHST": "Lord-Xau standart vaqti", "COST": "Kolumbiya yozgi vaqti", "EST": "Sharqiy Amerika standart vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "IST": "Hindiston vaqti", "GMT": "Grinvich o‘rtacha vaqti", "ART": "Argentina standart vaqti", "CLST": "Chili yozgi vaqti", "WAT": "Gʻarbiy Afrika standart vaqti"},
++ locale: "uz_Latn",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AKDT": "AKDT", "HNNOMX": "HNNOMX", "PST": "PST", "CHADT": "CHADT", "UYST": "UYST", "WAST": "WAST", "WIT": "WIT", "CAT": "CAT", "HADT": "HADT", "MESZ": "MESZ", "HEPM": "HEPM", "JDT": "JDT", "BT": "BT", "AKST": "AKST", "TMT": "TMT", "EST": "EST", "MST": "MST", "GMT": "GMT", "ChST": "ChST", "HNCU": "HNCU", "WARST": "WARST", "HEOG": "HEOG", "CLT": "CLT", "NZST": "NZST", "HAST": "HAST", "MEZ": "MEZ", "HEPMX": "HEPMX", "OEZ": "OEZ", "HKST": "HKST", "TMST": "TMST", "HKT": "HKT", "WITA": "WITA", "ART": "ART", "GFT": "GFT", "OESZ": "OESZ", "WART": "WART", "SAST": "SAST", "AST": "AST", "BOT": "BOT", "HEEG": "HEEG", "JST": "JST", "VET": "VET", "HAT": "HAT", "EDT": "EDT", "MDT": "MDT", "IST": "IST", "ACDT": "ACDT", "HENOMX": "HENOMX", "MYT": "MYT", "AEDT": "AEDT", "GYT": "GYT", "CDT": "CDT", "EAT": "EAT", "ACST": "ACST", "UYT": "UYT", "HNT": "HNT", "AWDT": "AWDT", "COT": "COT", "NZDT": "NZDT", "WIB": "WIB", "CHAST": "CHAST", "PDT": "PDT", "ACWDT": "ACWDT", "AEST": "AEST", "HNPMX": "HNPMX", "WEZ": "WEZ", "HNEG": "HNEG", "LHST": "LHST", "WESZ": "WESZ", "ADT": "ADT", "ACWST": "ACWST", "LHDT": "LHDT", "AWST": "AWST", "WAT": "WAT", "ECT": "ECT", "ARST": "ARST", "SRT": "SRT", "HNOG": "HNOG", "CLST": "CLST", "CST": "CST", "∅∅∅": "∅∅∅", "COST": "COST", "SGT": "SGT", "HECU": "HECU", "HNPM": "HNPM"},
+ }
+ }
+ 
+@@ -135,7 +112,7 @@ func (uz *uz_Latn) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (uz *uz_Latn) MonthsAbbreviated() []string {
+- return uz.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -145,7 +122,7 @@ func (uz *uz_Latn) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (uz *uz_Latn) MonthsNarrow() []string {
+- return uz.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -155,7 +132,7 @@ func (uz *uz_Latn) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (uz *uz_Latn) MonthsWide() []string {
+- return uz.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -201,75 +178,13 @@ func (uz *uz_Latn) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'uz_Latn' and handles both Whole and Real numbers based on 'v'
+ func (uz *uz_Latn) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uz.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(uz.group) - 1; j >= 0; j-- {
+- b = append(b, uz.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, uz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'uz_Latn' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (uz *uz_Latn) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uz.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, uz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, uz.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'uz_Latn'
+@@ -277,58 +192,7 @@ func (uz *uz_Latn) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := uz.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uz.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(uz.group) - 1; j >= 0; j-- {
+- b = append(b, uz.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, uz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, uz.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, uz.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'uz_Latn'
+@@ -337,65 +201,7 @@ func (uz *uz_Latn) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := uz.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uz.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(uz.group) - 1; j >= 0; j-- {
+- b = append(b, uz.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, uz.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, uz.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, uz.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, uz.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'uz_Latn'
+@@ -403,27 +209,6 @@ func (uz *uz_Latn) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -432,17 +217,6 @@ func (uz *uz_Latn) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, uz.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -451,17 +225,6 @@ func (uz *uz_Latn) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, uz.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -470,19 +233,6 @@ func (uz *uz_Latn) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, uz.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, uz.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,19 +241,6 @@ func (uz *uz_Latn) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -512,26 +249,6 @@ func (uz *uz_Latn) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -540,28 +257,6 @@ func (uz *uz_Latn) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+ 
+@@ -570,32 +265,5 @@ func (uz *uz_Latn) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := uz.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/uz_Latn_UZ/uz_Latn_UZ.go b/uz_Latn_UZ/uz_Latn_UZ.go
+index 32082b9..b3d9960 100644
+--- a/uz_Latn_UZ/uz_Latn_UZ.go
++++ b/uz_Latn_UZ/uz_Latn_UZ.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type uz_Latn_UZ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'uz_Latn_UZ' locale
+ func New() locales.Translator {
+ return &uz_Latn_UZ{
+- locale: "uz_Latn_UZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "yan", "fev", "mar", "apr", "may", "iyn", "iyl", "avg", "sen", "okt", "noy", "dek"},
+- monthsNarrow: []string{"", "Y", "F", "M", "A", "M", "I", "I", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "yanvar", "fevral", "mart", "aprel", "may", "iyun", "iyul", "avgust", "sentabr", "oktabr", "noyabr", "dekabr"},
+- daysAbbreviated: []string{"Yak", "Dush", "Sesh", "Chor", "Pay", "Jum", "Shan"},
+- daysNarrow: []string{"Y", "D", "S", "C", "P", "J", "S"},
+- daysShort: []string{"Ya", "Du", "Se", "Ch", "Pa", "Ju", "Sh"},
+- daysWide: []string{"yakshanba", "dushanba", "seshanba", "chorshanba", "payshanba", "juma", "shanba"},
+- periodsAbbreviated: []string{"TO", "TK"},
+- periodsNarrow: []string{"TO", "TK"},
+- periodsWide: []string{"TO", "TK"},
+- erasAbbreviated: []string{"m.a.", "milodiy"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"AWST": "G‘arbiy Avstraliya standart vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "NZST": "Yangi Zelandiya standart vaqti", "IST": "Hindiston vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "CST": "Markaziy Amerika standart vaqti", "AST": "Atlantika standart vaqti", "WITA": "Markaziy Indoneziya vaqti", "HECU": "Kuba yozgi vaqti", "HKST": "Gonkong yozgi vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "COT": "Kolumbiya standart vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "∅∅∅": "Amazonka yozgi vaqti", "JST": "Yaponiya standart vaqti", "UYT": "Urugvay standart vaqti", "HKT": "Gonkong standart vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "JDT": "Yaponiya yozgi vaqti", "HAST": "Gavayi-aleut standart vaqti", "HADT": "Gavayi-aleut yozgi vaqti", "EST": "Sharqiy Amerika standart vaqti", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "CLST": "Chili yozgi vaqti", "WAT": "Gʻarbiy Afrika standart vaqti", "TMST": "Turkmaniston yozgi vaqti", "ChST": "Chamorro standart vaqti", "CDT": "Markaziy Amerika yozgi vaqti", "WIT": "Sharqiy Indoneziya vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "SGT": "Singapur vaqti", "ADT": "Atlantika yozgi vaqti", "SRT": "Surinam vaqti", "CHAST": "Chatem standart vaqti", "CHADT": "Chatem yozgi vaqti", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "GFT": "Fransuz Gvianasi vaqti", "ARST": "Argentina yozgi vaqti", "TMT": "Turkmaniston standart vaqti", "ECT": "Ekvador vaqti", "COST": "Kolumbiya yozgi vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "GYT": "Gayana vaqti", "MYT": "Malayziya vaqti", "HNT": "Nyufaundlend standart vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "PDT": "Tinch okeani yozgi vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "AKST": "Alyaska standart vaqti", "MDT": "Tog‘ yozgi vaqti (AQSH)", "BT": "Butan vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "SAST": "Janubiy Afrika standart vaqti", "GMT": "Grinvich o‘rtacha vaqti", "AKDT": "Alyaska yozgi vaqti", "WIB": "Gʻarbiy Indoneziya vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "PST": "Tinch okeani standart vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "CAT": "Markaziy Afrika vaqti", "UYST": "Urugvay yozgi vaqti", "MST": "Tog‘ standart vaqti (AQSH)", "ART": "Argentina standart vaqti", "WEZ": "G‘arbiy Yevropa standart vaqti", "LHDT": "Lord-Xau yozgi vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "AEST": "Sharqiy Avstraliya standart vaqti", "LHST": "Lord-Xau standart vaqti", "BOT": "Boliviya vaqti", "CLT": "Chili standart vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "EAT": "Sharqiy Afrika vaqti", "HNCU": "Kuba standart vaqti", "VET": "Venesuela vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "HAT": "Nyufaundlend yozgi vaqti"},
++ locale: "uz_Latn_UZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"UYT": "UYT", "TMST": "TMST", "AWST": "AWST", "∅∅∅": "∅∅∅", "PST": "PST", "ACWDT": "ACWDT", "WAST": "WAST", "WIT": "WIT", "HKST": "HKST", "CST": "CST", "BOT": "BOT", "UYST": "UYST", "PDT": "PDT", "ACWST": "ACWST", "AKDT": "AKDT", "HAT": "HAT", "WARST": "WARST", "CLST": "CLST", "JST": "JST", "LHDT": "LHDT", "HNPM": "HNPM", "AEDT": "AEDT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "HNCU": "HNCU", "HNT": "HNT", "MEZ": "MEZ", "EST": "EST", "CLT": "CLT", "CDT": "CDT", "AST": "AST", "SAST": "SAST", "EAT": "EAT", "HEEG": "HEEG", "EDT": "EDT", "GMT": "GMT", "SRT": "SRT", "JDT": "JDT", "HEPM": "HEPM", "WESZ": "WESZ", "MST": "MST", "AKST": "AKST", "HNOG": "HNOG", "CAT": "CAT", "ChST": "ChST", "MESZ": "MESZ", "HENOMX": "HENOMX", "AWDT": "AWDT", "IST": "IST", "HECU": "HECU", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "BT": "BT", "NZDT": "NZDT", "AEST": "AEST", "ART": "ART", "ARST": "ARST", "COT": "COT", "OESZ": "OESZ", "HKT": "HKT", "WIB": "WIB", "ADT": "ADT", "HNEG": "HNEG", "GYT": "GYT", "COST": "COST", "TMT": "TMT", "WITA": "WITA", "HAST": "HAST", "VET": "VET", "WART": "WART", "LHST": "LHST", "GFT": "GFT", "NZST": "NZST", "CHADT": "CHADT", "HADT": "HADT", "CHAST": "CHAST", "MDT": "MDT", "ACDT": "ACDT", "MYT": "MYT", "WEZ": "WEZ", "SGT": "SGT", "WAT": "WAT", "HEOG": "HEOG", "ECT": "ECT", "ACST": "ACST"},
+ }
+ }
+ 
+@@ -135,7 +112,7 @@ func (uz *uz_Latn_UZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (uz *uz_Latn_UZ) MonthsAbbreviated() []string {
+- return uz.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -145,7 +122,7 @@ func (uz *uz_Latn_UZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (uz *uz_Latn_UZ) MonthsNarrow() []string {
+- return uz.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -155,7 +132,7 @@ func (uz *uz_Latn_UZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (uz *uz_Latn_UZ) MonthsWide() []string {
+- return uz.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -201,75 +178,13 @@ func (uz *uz_Latn_UZ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'uz_Latn_UZ' and handles both Whole and Real numbers based on 'v'
+ func (uz *uz_Latn_UZ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uz.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(uz.group) - 1; j >= 0; j-- {
+- b = append(b, uz.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, uz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'uz_Latn_UZ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (uz *uz_Latn_UZ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uz.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, uz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, uz.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'uz_Latn_UZ'
+@@ -277,58 +192,7 @@ func (uz *uz_Latn_UZ) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := uz.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uz.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(uz.group) - 1; j >= 0; j-- {
+- b = append(b, uz.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, uz.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, uz.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, uz.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'uz_Latn_UZ'
+@@ -337,65 +201,7 @@ func (uz *uz_Latn_UZ) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := uz.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, uz.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(uz.group) - 1; j >= 0; j-- {
+- b = append(b, uz.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, uz.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, uz.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, uz.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, uz.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'uz_Latn_UZ'
+@@ -403,27 +209,6 @@ func (uz *uz_Latn_UZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -432,17 +217,6 @@ func (uz *uz_Latn_UZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, uz.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -451,17 +225,6 @@ func (uz *uz_Latn_UZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, uz.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -470,19 +233,6 @@ func (uz *uz_Latn_UZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, uz.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2d}...)
+- b = append(b, uz.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -491,19 +241,6 @@ func (uz *uz_Latn_UZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -512,26 +249,6 @@ func (uz *uz_Latn_UZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -540,28 +257,6 @@ func (uz *uz_Latn_UZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+ 
+@@ -570,32 +265,5 @@ func (uz *uz_Latn_UZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, uz.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x28}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := uz.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x29}...)
+-
+ return string(b)
+ }
+diff --git a/vai/vai.go b/vai/vai.go
+index 71db3c2..0f8f448 100644
+--- a/vai/vai.go
++++ b/vai/vai.go
+@@ -56,7 +56,7 @@ func New() locales.Translator {
+ currencyNegativeSuffix: ")",
+ monthsWide: []string{"", "ꖨꕪꖃ ꔞꕮ", "ꕒꕡꖝꖕ", "ꕾꖺ", "ꖢꖕ", "ꖑꕱ", "6", "7", "ꗛꔕ", "ꕢꕌ", "ꕭꖃ", "ꔞꘋꕔꕿ ꕸꖃꗏ", "ꖨꕪꕱ ꗏꕮ"},
+ daysWide: []string{"ꕞꕌꔵ", "ꗳꗡꘉ", "ꕚꕞꕚ", "ꕉꕞꕒ", "ꕉꔤꕆꕢ", "ꕉꔤꕀꕮ", "ꔻꔬꔳ"},
+- timezones: map[string]string{"VET": "VET", "LHDT": "LHDT", "JDT": "JDT", "CAT": "CAT", "OESZ": "OESZ", "AKDT": "AKDT", "CST": "CST", "CDT": "CDT", "HADT": "HADT", "WESZ": "WESZ", "OEZ": "OEZ", "SGT": "SGT", "HECU": "HECU", "HNCU": "HNCU", "BT": "BT", "HEPM": "HEPM", "CHADT": "CHADT", "CLT": "CLT", "∅∅∅": "∅∅∅", "WAST": "WAST", "UYST": "UYST", "AKST": "AKST", "AWDT": "AWDT", "HKST": "HKST", "WITA": "WITA", "NZST": "NZST", "COST": "COST", "MDT": "MDT", "HNPMX": "HNPMX", "AWST": "AWST", "HEEG": "HEEG", "EAT": "EAT", "WART": "WART", "UYT": "UYT", "ADT": "ADT", "PST": "PST", "BOT": "BOT", "ECT": "ECT", "EDT": "EDT", "MEZ": "MEZ", "CHAST": "CHAST", "ACST": "ACST", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "COT": "COT", "HENOMX": "HENOMX", "PDT": "PDT", "ARST": "ARST", "CLST": "CLST", "TMT": "TMT", "HAST": "HAST", "SRT": "SRT", "ART": "ART", "AEST": "AEST", "TMST": "TMST", "AST": "AST", "MST": "MST", "HNT": "HNT", "HKT": "HKT", "HNPM": "HNPM", "ChST": "ChST", "EST": "EST", "WIT": "WIT", "HEOG": "HEOG", "MESZ": "MESZ", "HNEG": "HNEG", "GFT": "GFT", "ACWST": "ACWST", "HAT": "HAT", "LHST": "LHST", "ACDT": "ACDT", "ACWDT": "ACWDT", "NZDT": "NZDT", "IST": "IST", "WARST": "WARST", "WAT": "WAT", "MYT": "MYT", "GYT": "GYT", "WIB": "WIB", "HNOG": "HNOG", "AEDT": "AEDT", "SAST": "SAST", "JST": "JST", "WEZ": "WEZ", "GMT": "GMT"},
++ timezones: map[string]string{"HENOMX": "HENOMX", "LHST": "LHST", "PST": "PST", "ECT": "ECT", "WIB": "WIB", "SRT": "SRT", "MESZ": "MESZ", "HNEG": "HNEG", "NZST": "NZST", "MST": "MST", "PDT": "PDT", "AEDT": "AEDT", "AEST": "AEST", "WAST": "WAST", "EDT": "EDT", "HADT": "HADT", "HNNOMX": "HNNOMX", "UYST": "UYST", "JDT": "JDT", "CHADT": "CHADT", "HAT": "HAT", "MEZ": "MEZ", "AWST": "AWST", "JST": "JST", "AWDT": "AWDT", "WESZ": "WESZ", "ARST": "ARST", "GYT": "GYT", "TMT": "TMT", "WITA": "WITA", "CDT": "CDT", "GMT": "GMT", "∅∅∅": "∅∅∅", "GFT": "GFT", "WARST": "WARST", "AKDT": "AKDT", "HEOG": "HEOG", "HKST": "HKST", "TMST": "TMST", "CLT": "CLT", "EAT": "EAT", "ACDT": "ACDT", "AKST": "AKST", "WIT": "WIT", "CLST": "CLST", "NZDT": "NZDT", "HAST": "HAST", "WEZ": "WEZ", "WAT": "WAT", "CHAST": "CHAST", "HNCU": "HNCU", "HNT": "HNT", "WART": "WART", "HEEG": "HEEG", "UYT": "UYT", "ACWST": "ACWST", "COT": "COT", "COST": "COST", "HKT": "HKT", "CAT": "CAT", "CST": "CST", "LHDT": "LHDT", "HNPM": "HNPM", "SAST": "SAST", "BOT": "BOT", "BT": "BT", "OESZ": "OESZ", "HNPMX": "HNPMX", "HNOG": "HNOG", "EST": "EST", "ACST": "ACST", "HEPM": "HEPM", "VET": "VET", "ADT": "ADT", "ChST": "ChST", "MDT": "MDT", "SGT": "SGT", "HECU": "HECU", "HEPMX": "HEPMX", "AST": "AST", "OEZ": "OEZ", "ART": "ART", "MYT": "MYT", "IST": "IST", "ACWDT": "ACWDT"},
+ }
+ }
+ 
+diff --git a/vai_Latn/vai_Latn.go b/vai_Latn/vai_Latn.go
+index 3838551..7afe855 100644
+--- a/vai_Latn/vai_Latn.go
++++ b/vai_Latn/vai_Latn.go
+@@ -56,7 +56,7 @@ func New() locales.Translator {
+ currencyNegativeSuffix: ")",
+ monthsWide: []string{"", "luukao kemã", "ɓandaɓu", "vɔɔ", "fulu", "goo", "6", "7", "kɔnde", "saah", "galo", "kenpkato ɓololɔ", "luukao lɔma"},
+ daysWide: []string{"lahadi", "tɛɛnɛɛ", "talata", "alaba", "aimisa", "aijima", "siɓiti"},
+- timezones: map[string]string{"CLT": "CLT", "BOT": "BOT", "ACDT": "ACDT", "GMT": "GMT", "HNCU": "HNCU", "HNPMX": "HNPMX", "UYST": "UYST", "BT": "BT", "IST": "IST", "AST": "AST", "GYT": "GYT", "AKDT": "AKDT", "AEST": "AEST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "OESZ": "OESZ", "EAT": "EAT", "MDT": "MDT", "ARST": "ARST", "HNOG": "HNOG", "AWDT": "AWDT", "MEZ": "MEZ", "JDT": "JDT", "OEZ": "OEZ", "WIT": "WIT", "ART": "ART", "PST": "PST", "WITA": "WITA", "AWST": "AWST", "LHDT": "LHDT", "ACST": "ACST", "COST": "COST", "HENOMX": "HENOMX", "HNT": "HNT", "AEDT": "AEDT", "HKST": "HKST", "HNPM": "HNPM", "JST": "JST", "HAST": "HAST", "EST": "EST", "MST": "MST", "CST": "CST", "SRT": "SRT", "HEOG": "HEOG", "TMST": "TMST", "COT": "COT", "HADT": "HADT", "WAST": "WAST", "HEPMX": "HEPMX", "UYT": "UYT", "PDT": "PDT", "ACWDT": "ACWDT", "LHST": "LHST", "NZST": "NZST", "SAST": "SAST", "WARST": "WARST", "HNNOMX": "HNNOMX", "SGT": "SGT", "HECU": "HECU", "MESZ": "MESZ", "NZDT": "NZDT", "ECT": "ECT", "ADT": "ADT", "WIB": "WIB", "HAT": "HAT", "WEZ": "WEZ", "GFT": "GFT", "CAT": "CAT", "CDT": "CDT", "VET": "VET", "CLST": "CLST", "TMT": "TMT", "EDT": "EDT", "WESZ": "WESZ", "HEPM": "HEPM", "CHAST": "CHAST", "HEEG": "HEEG", "WAT": "WAT", "CHADT": "CHADT", "ChST": "ChST", "WART": "WART", "MYT": "MYT", "AKST": "AKST", "ACWST": "ACWST", "HKT": "HKT"},
++ timezones: map[string]string{"HEEG": "HEEG", "LHST": "LHST", "CHAST": "CHAST", "WITA": "WITA", "HAST": "HAST", "OEZ": "OEZ", "WARST": "WARST", "GYT": "GYT", "MYT": "MYT", "ART": "ART", "AST": "AST", "UYST": "UYST", "WART": "WART", "∅∅∅": "∅∅∅", "TMST": "TMST", "WEZ": "WEZ", "AWDT": "AWDT", "VET": "VET", "JDT": "JDT", "AWST": "AWST", "BT": "BT", "CHADT": "CHADT", "AKDT": "AKDT", "ECT": "ECT", "ChST": "ChST", "HNOG": "HNOG", "JST": "JST", "NZDT": "NZDT", "IST": "IST", "HEOG": "HEOG", "EDT": "EDT", "HECU": "HECU", "AKST": "AKST", "GFT": "GFT", "HNT": "HNT", "CDT": "CDT", "PDT": "PDT", "UYT": "UYT", "ACDT": "ACDT", "HNPM": "HNPM", "ARST": "ARST", "HADT": "HADT", "EAT": "EAT", "HENOMX": "HENOMX", "HNCU": "HNCU", "HKT": "HKT", "MST": "MST", "ACST": "ACST", "HEPMX": "HEPMX", "COST": "COST", "WIB": "WIB", "ACWST": "ACWST", "ACWDT": "ACWDT", "WAST": "WAST", "OESZ": "OESZ", "NZST": "NZST", "MESZ": "MESZ", "CAT": "CAT", "LHDT": "LHDT", "MDT": "MDT", "CST": "CST", "GMT": "GMT", "PST": "PST", "HNPMX": "HNPMX", "WESZ": "WESZ", "EST": "EST", "CLT": "CLT", "WAT": "WAT", "BOT": "BOT", "SRT": "SRT", "HNEG": "HNEG", "HEPM": "HEPM", "AEST": "AEST", "AEDT": "AEDT", "SAST": "SAST", "TMT": "TMT", "SGT": "SGT", "WIT": "WIT", "CLST": "CLST", "ADT": "ADT", "HNNOMX": "HNNOMX", "MEZ": "MEZ", "HAT": "HAT", "COT": "COT", "HKST": "HKST"},
+ }
+ }
+ 
+diff --git a/vai_Latn_LR/vai_Latn_LR.go b/vai_Latn_LR/vai_Latn_LR.go
+index 0821e4b..9ff9447 100644
+--- a/vai_Latn_LR/vai_Latn_LR.go
++++ b/vai_Latn_LR/vai_Latn_LR.go
+@@ -10,53 +10,45 @@ import (
+ )
+ 
+ type vai_Latn_LR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'vai_Latn_LR' locale
+ func New() locales.Translator {
+ return &vai_Latn_LR{
+- locale: "vai_Latn_LR",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsWide: []string{"", "ꖨꕪꖃ ꔞꕮ", "ꕒꕡꖝꖕ", "ꕾꖺ", "ꖢꖕ", "ꖑꕱ", "6", "7", "ꗛꔕ", "ꕢꕌ", "ꕭꖃ", "ꔞꘋꕔꕿ ꕸꖃꗏ", "ꖨꕪꕱ ꗏꕮ"},
+- daysWide: []string{"ꕞꕌꔵ", "ꗳꗡꘉ", "ꕚꕞꕚ", "ꕉꕞꕒ", "ꕉꔤꕆꕢ", "ꕉꔤꕀꕮ", "ꔻꔬꔳ"},
+- timezones: map[string]string{"PST": "PST", "COT": "COT", "HADT": "HADT", "LHST": "LHST", "IST": "IST", "GFT": "GFT", "OESZ": "OESZ", "COST": "COST", "CST": "CST", "ADT": "ADT", "AWST": "AWST", "MESZ": "MESZ", "ACST": "ACST", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "MDT": "MDT", "HNT": "HNT", "JST": "JST", "GYT": "GYT", "WIB": "WIB", "WIT": "WIT", "HAT": "HAT", "ACDT": "ACDT", "WARST": "WARST", "SGT": "SGT", "HAST": "HAST", "EDT": "EDT", "HEPMX": "HEPMX", "ACWDT": "ACWDT", "WITA": "WITA", "BOT": "BOT", "HEEG": "HEEG", "TMST": "TMST", "CAT": "CAT", "HNCU": "HNCU", "AKST": "AKST", "MYT": "MYT", "WEZ": "WEZ", "HKST": "HKST", "HENOMX": "HENOMX", "TMT": "TMT", "CDT": "CDT", "AST": "AST", "UYT": "UYT", "SRT": "SRT", "MEZ": "MEZ", "CHADT": "CHADT", "SAST": "SAST", "HECU": "HECU", "UYST": "UYST", "MST": "MST", "HEOG": "HEOG", "CLT": "CLT", "GMT": "GMT", "BT": "BT", "HNOG": "HNOG", "HKT": "HKT", "EAT": "EAT", "WAST": "WAST", "WESZ": "WESZ", "AEDT": "AEDT", "AWDT": "AWDT", "HNPM": "HNPM", "NZST": "NZST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "VET": "VET", "PDT": "PDT", "ACWST": "ACWST", "HEPM": "HEPM", "NZDT": "NZDT", "CHAST": "CHAST", "CLST": "CLST", "WAT": "WAT", "ECT": "ECT", "HNPMX": "HNPMX", "AEST": "AEST", "LHDT": "LHDT", "JDT": "JDT", "ChST": "ChST", "WART": "WART", "ART": "ART", "ARST": "ARST", "EST": "EST"},
++ locale: "vai_Latn_LR",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ACWST": "ACWST", "AEST": "AEST", "AKST": "AKST", "NZST": "NZST", "AST": "AST", "HAST": "HAST", "EAT": "EAT", "LHDT": "LHDT", "WART": "WART", "TMT": "TMT", "EST": "EST", "GFT": "GFT", "HEOG": "HEOG", "MDT": "MDT", "MESZ": "MESZ", "AEDT": "AEDT", "CHAST": "CHAST", "UYST": "UYST", "ChST": "ChST", "ACDT": "ACDT", "VET": "VET", "HNCU": "HNCU", "HNPMX": "HNPMX", "WIT": "WIT", "HNOG": "HNOG", "ECT": "ECT", "AWDT": "AWDT", "PDT": "PDT", "AKDT": "AKDT", "WARST": "WARST", "BT": "BT", "WEZ": "WEZ", "OESZ": "OESZ", "HNT": "HNT", "GYT": "GYT", "CST": "CST", "MYT": "MYT", "PST": "PST", "COST": "COST", "WITA": "WITA", "HKST": "HKST", "CAT": "CAT", "MST": "MST", "ART": "ART", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "COT": "COT", "WIB": "WIB", "LHST": "LHST", "OEZ": "OEZ", "HAT": "HAT", "HECU": "HECU", "HKT": "HKT", "CDT": "CDT", "ACST": "ACST", "HEEG": "HEEG", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "HENOMX": "HENOMX", "AWST": "AWST", "SGT": "SGT", "NZDT": "NZDT", "GMT": "GMT", "ADT": "ADT", "HADT": "HADT", "HNEG": "HNEG", "HEPMX": "HEPMX", "WESZ": "WESZ", "WAST": "WAST", "SAST": "SAST", "BOT": "BOT", "ACWDT": "ACWDT", "UYT": "UYT", "TMST": "TMST", "EDT": "EDT", "CLT": "CLT", "HNPM": "HNPM", "IST": "IST", "WAT": "WAT", "ARST": "ARST", "SRT": "SRT", "JST": "JST", "CLST": "CLST", "MEZ": "MEZ", "JDT": "JDT"},
+ }
+ }
+ 
+@@ -122,7 +114,7 @@ func (vai *vai_Latn_LR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (vai *vai_Latn_LR) MonthsWide() []string {
+- return vai.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -168,42 +160,7 @@ func (vai *vai_Latn_LR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'vai_Latn_LR' and handles both Whole and Real numbers based on 'v'
+ func (vai *vai_Latn_LR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, vai.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, vai.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, vai.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'vai_Latn_LR' and handles both Whole and Real numbers based on 'v'
+@@ -217,56 +174,7 @@ func (vai *vai_Latn_LR) FmtCurrency(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := vai.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, vai.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, vai.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, vai.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, vai.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'vai_Latn_LR'
+@@ -275,68 +183,7 @@ func (vai *vai_Latn_LR) FmtAccounting(num float64, v uint64, currency currency.T
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := vai.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, vai.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, vai.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, vai.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, vai.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, vai.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'vai_Latn_LR'
+@@ -344,27 +191,6 @@ func (vai *vai_Latn_LR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -373,17 +199,6 @@ func (vai *vai_Latn_LR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, vai.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -392,17 +207,6 @@ func (vai *vai_Latn_LR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, vai.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -411,19 +215,6 @@ func (vai *vai_Latn_LR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, vai.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, vai.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -432,28 +223,6 @@ func (vai *vai_Latn_LR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, vai.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, vai.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,35 +231,6 @@ func (vai *vai_Latn_LR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, vai.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, vai.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -499,40 +239,6 @@ func (vai *vai_Latn_LR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, vai.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, vai.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -541,44 +247,5 @@ func (vai *vai_Latn_LR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, vai.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, vai.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := vai.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/vai_Vaii/vai_Vaii.go b/vai_Vaii/vai_Vaii.go
+index f38dfe1..b545a3d 100644
+--- a/vai_Vaii/vai_Vaii.go
++++ b/vai_Vaii/vai_Vaii.go
+@@ -10,53 +10,45 @@ import (
+ )
+ 
+ type vai_Vaii struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'vai_Vaii' locale
+ func New() locales.Translator {
+ return &vai_Vaii{
+- locale: "vai_Vaii",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsWide: []string{"", "ꖨꕪꖃ ꔞꕮ", "ꕒꕡꖝꖕ", "ꕾꖺ", "ꖢꖕ", "ꖑꕱ", "6", "7", "ꗛꔕ", "ꕢꕌ", "ꕭꖃ", "ꔞꘋꕔꕿ ꕸꖃꗏ", "ꖨꕪꕱ ꗏꕮ"},
+- daysWide: []string{"ꕞꕌꔵ", "ꗳꗡꘉ", "ꕚꕞꕚ", "ꕉꕞꕒ", "ꕉꔤꕆꕢ", "ꕉꔤꕀꕮ", "ꔻꔬꔳ"},
+- timezones: map[string]string{"AKDT": "AKDT", "PST": "PST", "JST": "JST", "ACDT": "ACDT", "OEZ": "OEZ", "EAT": "EAT", "GMT": "GMT", "HNCU": "HNCU", "HEOG": "HEOG", "CAT": "CAT", "WART": "WART", "COST": "COST", "ART": "ART", "LHDT": "LHDT", "TMST": "TMST", "OESZ": "OESZ", "SGT": "SGT", "UYT": "UYT", "CHAST": "CHAST", "CLT": "CLT", "TMT": "TMT", "COT": "COT", "ARST": "ARST", "HKST": "HKST", "HNNOMX": "HNNOMX", "GYT": "GYT", "BT": "BT", "∅∅∅": "∅∅∅", "HENOMX": "HENOMX", "HECU": "HECU", "MDT": "MDT", "CDT": "CDT", "WIB": "WIB", "VET": "VET", "ChST": "ChST", "AST": "AST", "WARST": "WARST", "SRT": "SRT", "AEST": "AEST", "AEDT": "AEDT", "HEPM": "HEPM", "NZDT": "NZDT", "GFT": "GFT", "ECT": "ECT", "AKST": "AKST", "HADT": "HADT", "WIT": "WIT", "AWDT": "AWDT", "LHST": "LHST", "HNPMX": "HNPMX", "MYT": "MYT", "CHADT": "CHADT", "HEEG": "HEEG", "MST": "MST", "ACWDT": "ACWDT", "EST": "EST", "CST": "CST", "ADT": "ADT", "HAST": "HAST", "AWST": "AWST", "MESZ": "MESZ", "ACST": "ACST", "HNT": "HNT", "HNOG": "HNOG", "WESZ": "WESZ", "MEZ": "MEZ", "NZST": "NZST", "SAST": "SAST", "HNEG": "HNEG", "HAT": "HAT", "PDT": "PDT", "WAST": "WAST", "HEPMX": "HEPMX", "ACWST": "ACWST", "WITA": "WITA", "HKT": "HKT", "CLST": "CLST", "BOT": "BOT", "WEZ": "WEZ", "HNPM": "HNPM", "IST": "IST", "JDT": "JDT", "WAT": "WAT", "EDT": "EDT", "UYST": "UYST"},
++ locale: "vai_Vaii",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HADT": "HADT", "AWDT": "AWDT", "CAT": "CAT", "WITA": "WITA", "MDT": "MDT", "HEEG": "HEEG", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "PST": "PST", "BT": "BT", "GFT": "GFT", "COST": "COST", "BOT": "BOT", "SRT": "SRT", "LHST": "LHST", "HECU": "HECU", "HAT": "HAT", "COT": "COT", "MST": "MST", "AKST": "AKST", "WARST": "WARST", "HEOG": "HEOG", "CHADT": "CHADT", "UYST": "UYST", "SGT": "SGT", "WART": "WART", "HNOG": "HNOG", "ADT": "ADT", "ACDT": "ACDT", "HEPMX": "HEPMX", "SAST": "SAST", "HKT": "HKT", "TMT": "TMT", "CLST": "CLST", "ART": "ART", "IST": "IST", "GYT": "GYT", "EDT": "EDT", "VET": "VET", "ACWST": "ACWST", "TMST": "TMST", "CLT": "CLT", "ECT": "ECT", "AWST": "AWST", "WAST": "WAST", "JDT": "JDT", "UYT": "UYT", "PDT": "PDT", "WAT": "WAT", "HNT": "HNT", "CST": "CST", "ACWDT": "ACWDT", "WIB": "WIB", "GMT": "GMT", "EST": "EST", "HNEG": "HNEG", "LHDT": "LHDT", "AEDT": "AEDT", "CHAST": "CHAST", "HNPMX": "HNPMX", "HKST": "HKST", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "WIT": "WIT", "HENOMX": "HENOMX", "JST": "JST", "HEPM": "HEPM", "MESZ": "MESZ", "ACST": "ACST", "WESZ": "WESZ", "NZST": "NZST", "NZDT": "NZDT", "ARST": "ARST", "AST": "AST", "MEZ": "MEZ", "HAST": "HAST", "MYT": "MYT", "AEST": "AEST", "HNCU": "HNCU", "AKDT": "AKDT", "OEZ": "OEZ", "OESZ": "OESZ", "EAT": "EAT", "ChST": "ChST", "CDT": "CDT"},
+ }
+ }
+ 
+@@ -122,7 +114,7 @@ func (vai *vai_Vaii) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (vai *vai_Vaii) MonthsWide() []string {
+- return vai.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -168,42 +160,7 @@ func (vai *vai_Vaii) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'vai_Vaii' and handles both Whole and Real numbers based on 'v'
+ func (vai *vai_Vaii) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, vai.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, vai.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, vai.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'vai_Vaii' and handles both Whole and Real numbers based on 'v'
+@@ -217,56 +174,7 @@ func (vai *vai_Vaii) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := vai.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, vai.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, vai.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, vai.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, vai.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'vai_Vaii'
+@@ -275,68 +183,7 @@ func (vai *vai_Vaii) FmtAccounting(num float64, v uint64, currency currency.Type
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := vai.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, vai.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, vai.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, vai.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, vai.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, vai.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'vai_Vaii'
+@@ -344,27 +191,6 @@ func (vai *vai_Vaii) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -373,17 +199,6 @@ func (vai *vai_Vaii) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, vai.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -392,17 +207,6 @@ func (vai *vai_Vaii) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, vai.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -411,19 +215,6 @@ func (vai *vai_Vaii) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, vai.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, vai.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -432,28 +223,6 @@ func (vai *vai_Vaii) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, vai.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, vai.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,35 +231,6 @@ func (vai *vai_Vaii) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, vai.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, vai.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -499,40 +239,6 @@ func (vai *vai_Vaii) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, vai.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, vai.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -541,44 +247,5 @@ func (vai *vai_Vaii) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, vai.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, vai.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := vai.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/vai_Vaii_LR/vai_Vaii_LR.go b/vai_Vaii_LR/vai_Vaii_LR.go
+index 4608674..942afc6 100644
+--- a/vai_Vaii_LR/vai_Vaii_LR.go
++++ b/vai_Vaii_LR/vai_Vaii_LR.go
+@@ -10,53 +10,45 @@ import (
+ )
+ 
+ type vai_Vaii_LR struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'vai_Vaii_LR' locale
+ func New() locales.Translator {
+ return &vai_Vaii_LR{
+- locale: "vai_Vaii_LR",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsWide: []string{"", "ꖨꕪꖃ ꔞꕮ", "ꕒꕡꖝꖕ", "ꕾꖺ", "ꖢꖕ", "ꖑꕱ", "6", "7", "ꗛꔕ", "ꕢꕌ", "ꕭꖃ", "ꔞꘋꕔꕿ ꕸꖃꗏ", "ꖨꕪꕱ ꗏꕮ"},
+- daysWide: []string{"ꕞꕌꔵ", "ꗳꗡꘉ", "ꕚꕞꕚ", "ꕉꕞꕒ", "ꕉꔤꕆꕢ", "ꕉꔤꕀꕮ", "ꔻꔬꔳ"},
+- timezones: map[string]string{"CST": "CST", "ACWST": "ACWST", "AWST": "AWST", "JST": "JST", "CLT": "CLT", "GFT": "GFT", "ACST": "ACST", "WART": "WART", "HNCU": "HNCU", "HEPM": "HEPM", "HECU": "HECU", "EDT": "EDT", "HAST": "HAST", "VET": "VET", "WEZ": "WEZ", "WITA": "WITA", "AEST": "AEST", "MYT": "MYT", "HADT": "HADT", "HNT": "HNT", "ChST": "ChST", "HNNOMX": "HNNOMX", "SGT": "SGT", "HEPMX": "HEPMX", "AKST": "AKST", "GYT": "GYT", "HEOG": "HEOG", "NZDT": "NZDT", "MEZ": "MEZ", "ADT": "ADT", "CAT": "CAT", "WARST": "WARST", "COT": "COT", "WESZ": "WESZ", "LHST": "LHST", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "TMST": "TMST", "GMT": "GMT", "AKDT": "AKDT", "CDT": "CDT", "WIB": "WIB", "BT": "BT", "SAST": "SAST", "HNEG": "HNEG", "BOT": "BOT", "NZST": "NZST", "ACDT": "ACDT", "EAT": "EAT", "TMT": "TMT", "OESZ": "OESZ", "ECT": "ECT", "AST": "AST", "ART": "ART", "MESZ": "MESZ", "CLST": "CLST", "WAST": "WAST", "COST": "COST", "IST": "IST", "MDT": "MDT", "SRT": "SRT", "ACWDT": "ACWDT", "HNOG": "HNOG", "CHADT": "CHADT", "JDT": "JDT", "WAT": "WAT", "OEZ": "OEZ", "MST": "MST", "WIT": "WIT", "ARST": "ARST", "AEDT": "AEDT", "AWDT": "AWDT", "UYST": "UYST", "PST": "PST", "PDT": "PDT", "HKT": "HKT", "HKST": "HKST", "HENOMX": "HENOMX", "CHAST": "CHAST", "LHDT": "LHDT", "UYT": "UYT", "HAT": "HAT", "HNPM": "HNPM", "HNPMX": "HNPMX", "EST": "EST"},
++ locale: "vai_Vaii_LR",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MESZ": "MESZ", "AWDT": "AWDT", "BT": "BT", "HKST": "HKST", "CAT": "CAT", "HNEG": "HNEG", "WEZ": "WEZ", "SGT": "SGT", "HNOG": "HNOG", "EAT": "EAT", "GYT": "GYT", "HKT": "HKT", "AST": "AST", "ACDT": "ACDT", "JDT": "JDT", "UYST": "UYST", "HNT": "HNT", "WART": "WART", "GMT": "GMT", "HADT": "HADT", "MEZ": "MEZ", "∅∅∅": "∅∅∅", "WITA": "WITA", "CDT": "CDT", "WIB": "WIB", "COT": "COT", "HEOG": "HEOG", "MDT": "MDT", "NZST": "NZST", "AWST": "AWST", "HNCU": "HNCU", "WAST": "WAST", "AKST": "AKST", "OESZ": "OESZ", "BOT": "BOT", "GFT": "GFT", "HEEG": "HEEG", "HENOMX": "HENOMX", "UYT": "UYT", "AEDT": "AEDT", "HEPMX": "HEPMX", "HAT": "HAT", "ECT": "ECT", "ChST": "ChST", "LHDT": "LHDT", "PST": "PST", "AEST": "AEST", "HNPMX": "HNPMX", "AKDT": "AKDT", "PDT": "PDT", "WARST": "WARST", "ACST": "ACST", "LHST": "LHST", "MYT": "MYT", "HEPM": "HEPM", "EST": "EST", "MST": "MST", "NZDT": "NZDT", "JST": "JST", "CHAST": "CHAST", "IST": "IST", "ACWST": "ACWST", "HECU": "HECU", "WESZ": "WESZ", "VET": "VET", "HAST": "HAST", "CST": "CST", "ART": "ART", "HNPM": "HNPM", "CHADT": "CHADT", "ACWDT": "ACWDT", "WIT": "WIT", "CLT": "CLT", "WAT": "WAT", "OEZ": "OEZ", "TMT": "TMT", "ARST": "ARST", "SRT": "SRT", "HNNOMX": "HNNOMX", "COST": "COST", "CLST": "CLST", "SAST": "SAST", "EDT": "EDT", "TMST": "TMST", "ADT": "ADT"},
+ }
+ }
+ 
+@@ -122,7 +114,7 @@ func (vai *vai_Vaii_LR) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (vai *vai_Vaii_LR) MonthsWide() []string {
+- return vai.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -168,42 +160,7 @@ func (vai *vai_Vaii_LR) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'vai_Vaii_LR' and handles both Whole and Real numbers based on 'v'
+ func (vai *vai_Vaii_LR) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, vai.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, vai.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, vai.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'vai_Vaii_LR' and handles both Whole and Real numbers based on 'v'
+@@ -217,56 +174,7 @@ func (vai *vai_Vaii_LR) FmtCurrency(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := vai.currencies[currency]
+- l := len(s) + len(symbol) + 1 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, vai.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, vai.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, vai.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, vai.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'vai_Vaii_LR'
+@@ -275,68 +183,7 @@ func (vai *vai_Vaii_LR) FmtAccounting(num float64, v uint64, currency currency.T
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := vai.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, vai.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, vai.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, vai.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, vai.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, vai.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'vai_Vaii_LR'
+@@ -344,27 +191,6 @@ func (vai *vai_Vaii_LR) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -373,17 +199,6 @@ func (vai *vai_Vaii_LR) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, vai.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -392,17 +207,6 @@ func (vai *vai_Vaii_LR) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, vai.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -411,19 +215,6 @@ func (vai *vai_Vaii_LR) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, vai.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, vai.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -432,28 +223,6 @@ func (vai *vai_Vaii_LR) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, vai.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, vai.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -462,35 +231,6 @@ func (vai *vai_Vaii_LR) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, vai.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, vai.periodsAbbreviated[1]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -499,40 +239,6 @@ func (vai *vai_Vaii_LR) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, vai.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, vai.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -541,44 +247,5 @@ func (vai *vai_Vaii_LR) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vai.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, vai.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, vai.periodsAbbreviated[1]...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := vai.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/vi/vi.go b/vi/vi.go
+index 8ec5f2e..ebcab6e 100644
+--- a/vi/vi.go
++++ b/vi/vi.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"", ""},
+ erasNarrow: []string{"tr. CN", "sau CN"},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"HADT": "Giờ Mùa Hè Hawaii-Aleutian", "BT": "Giờ Bhutan", "CHADT": "Giờ Mùa Hè Chatham", "CLST": "Giờ Mùa Hè Chile", "GFT": "Giờ Guiana thuộc Pháp", "OEZ": "Giờ Chuẩn Đông Âu", "SGT": "Giờ Singapore", "UYT": "Giờ Chuẩn Uruguay", "PST": "Giờ chuẩn Thái Bình Dương", "PDT": "Giờ Mùa hè Thái Bình Dương", "CLT": "Giờ Chuẩn Chile", "WART": "Giờ chuẩn miền mây Argentina", "SRT": "Giờ Suriname", "HNEG": "Giờ Chuẩn Miền Đông Greenland", "HENOMX": "Giờ Mùa Hè Tây Bắc Mexico", "HECU": "Giờ Mùa Hè Cuba", "GYT": "Giờ Guyana", "HEPM": "Giờ Mùa Hè Saint Pierre và Miquelon", "GMT": "Giờ Trung bình Greenwich", "HEPMX": "Giờ Mùa Hè Thái Bình Dương Mexico", "CST": "Giờ chuẩn miền trung", "HNPM": "Giờ Chuẩn St. Pierre và Miquelon", "NZST": "Giờ Chuẩn New Zealand", "HNNOMX": "Giờ Chuẩn Tây Bắc Mexico", "EST": "Giờ chuẩn miền đông", "WESZ": "Giờ Mùa hè Tây Âu", "ARST": "Giờ Mùa Hè Argentina", "ChST": "Giờ Chamorro", "OESZ": "Giờ Mùa Hè Đông Âu", "WIT": "Giờ Miền Đông Indonesia", "HEEG": "Giờ Mùa Hè Miền Đông Greenland", "ACDT": "Giờ Mùa Hè Miền Trung Nước Úc", "AEDT": "Giờ Mùa Hè Miền Đông Nước Úc", "BOT": "Giờ Bolivia", "COT": "Giờ Chuẩn Colombia", "MDT": "Giờ Mùa Hè Ma Cao", "AKST": "Giờ Chuẩn Alaska", "HAST": "Giờ Chuẩn Hawaii-Aleutian", "WEZ": "Giờ Chuẩn Tây Âu", "JST": "Giờ Chuẩn Nhật Bản", "HNPMX": "Giờ Chuẩn Thái Bình Dương Mexico", "CDT": "Giờ mùa hè miền trung", "UYST": "Giờ Mùa Hè Uruguay", "HKST": "Giờ Mùa Hè Hồng Kông", "AWDT": "Giờ Mùa Hè Miền Tây Nước Úc", "CAT": "Giờ Trung Phi", "WAST": "Giờ Mùa Hè Tây Phi", "WARST": "Giờ mùa hè miền tây Argentina", "WIB": "Giờ Miền Tây Indonesia", "ACWST": "Giờ Chuẩn Miền Trung Tây Nước Úc", "HNOG": "Giờ Chuẩn Miền Tây Greenland", "TMST": "Giờ Mùa Hè Turkmenistan", "ECT": "Giờ Ecuador", "HNCU": "Giờ Chuẩn Cuba", "LHDT": "Giờ Mùa Hè Lord Howe", "SAST": "Giờ Chuẩn Nam Phi", "VET": "Giờ Venezuela", "ART": "Giờ Chuẩn Argentina", "WITA": "Giờ Miền Trung Indonesia", "HEOG": "Giờ Mùa Hè Miền Tây Greenland", "LHST": "Giờ Chuẩn Lord Howe", "IST": "Giờ Chuẩn Ấn Độ", "ACST": "Giờ Chuẩn Miền Trung Nước Úc", "EAT": "Giờ Đông Phi", "ADT": "Giờ Mùa hè Đại Tây Dương", "MYT": "Giờ Malaysia", "NZDT": "Giờ Mùa Hè New Zealand", "HNT": "Giờ Chuẩn Newfoundland", "AEST": "Giờ Chuẩn Miền Đông Nước Úc", "AWST": "Giờ Chuẩn Miền Tây Nước Úc", "CHAST": "Giờ Chuẩn Chatham", "∅∅∅": "Giờ Mùa Hè Amazon", "WAT": "Giờ Chuẩn Tây Phi", "MST": "Giờ Chuẩn Ma Cao", "AST": "Giờ Chuẩn Đại Tây Dương", "HAT": "Giờ Mùa Hè Newfoundland", "AKDT": "Giờ Mùa Hè Alaska", "ACWDT": "Giờ Mùa Hè Miền Trung Tây Nước Úc", "MEZ": "Giờ Chuẩn Trung Âu", "MESZ": "Giờ Mùa Hè Trung Âu", "JDT": "Giờ Mùa Hè Nhật Bản", "TMT": "Giờ Chuẩn Turkmenistan", "COST": "Giờ Mùa Hè Colombia", "EDT": "Giờ mùa hè miền đông", "HKT": "Giờ Chuẩn Hồng Kông"},
++ timezones: map[string]string{"∅∅∅": "Giờ Mùa Hè Brasilia", "CLST": "Giờ Mùa Hè Chile", "HNPM": "Giờ Chuẩn St. Pierre và Miquelon", "TMT": "Giờ Chuẩn Turkmenistan", "NZST": "Giờ Chuẩn New Zealand", "ADT": "Giờ Mùa hè Đại Tây Dương", "ACST": "Giờ Chuẩn Miền Trung Nước Úc", "JDT": "Giờ Mùa Hè Nhật Bản", "AEDT": "Giờ Mùa Hè Miền Đông Nước Úc", "HAT": "Giờ Mùa Hè Newfoundland", "BOT": "Giờ Bolivia", "HEEG": "Giờ Mùa Hè Miền Đông Greenland", "BT": "Giờ Bhutan", "WAST": "Giờ Mùa Hè Tây Phi", "WIT": "Giờ Miền Đông Indonesia", "EDT": "Giờ mùa hè miền đông", "TMST": "Giờ Mùa Hè Turkmenistan", "ECT": "Giờ Ecuador", "WIB": "Giờ Miền Tây Indonesia", "MDT": "Giờ Mùa Hè Ma Cao", "ARST": "Giờ Mùa Hè Argentina", "IST": "Giờ Chuẩn Ấn Độ", "SGT": "Giờ Singapore", "WITA": "Giờ Miền Trung Indonesia", "CDT": "Giờ mùa hè miền trung", "MST": "Giờ Chuẩn Ma Cao", "NZDT": "Giờ Mùa Hè New Zealand", "SRT": "Giờ Suriname", "AWST": "Giờ Chuẩn Miền Tây Nước Úc", "HECU": "Giờ Mùa Hè Cuba", "AKDT": "Giờ Mùa Hè Alaska", "HKT": "Giờ Chuẩn Hồng Kông", "CLT": "Giờ Chuẩn Chile", "HAST": "Giờ Chuẩn Hawaii-Aleutian", "MESZ": "Giờ Mùa Hè Trung Âu", "HNEG": "Giờ Chuẩn Miền Đông Greenland", "LHST": "Giờ Chuẩn Lord Howe", "LHDT": "Giờ Mùa Hè Lord Howe", "GFT": "Giờ Guiana thuộc Pháp", "AWDT": "Giờ Mùa Hè Miền Tây Nước Úc", "MYT": "Giờ Malaysia", "CHAST": "Giờ Chuẩn Chatham", "CHADT": "Giờ Mùa Hè Chatham", "WESZ": "Giờ Mùa hè Tây Âu", "PST": "Giờ chuẩn Thái Bình Dương", "PDT": "Giờ Mùa hè Thái Bình Dương", "HNPMX": "Giờ Chuẩn Thái Bình Dương Mexico", "WEZ": "Giờ Chuẩn Tây Âu", "VET": "Giờ Venezuela", "WARST": "Giờ mùa hè miền tây Argentina", "HNOG": "Giờ Chuẩn Miền Tây Greenland", "EST": "Giờ chuẩn miền đông", "CAT": "Giờ Trung Phi", "ART": "Giờ Chuẩn Argentina", "ChST": "Giờ Chamorro", "HADT": "Giờ Mùa Hè Hawaii-Aleutian", "AKST": "Giờ Chuẩn Alaska", "HEOG": "Giờ Mùa Hè Miền Tây Greenland", "HEPMX": "Giờ Mùa Hè Thái Bình Dương Mexico", "HNT": "Giờ Chuẩn Newfoundland", "GYT": "Giờ Guyana", "HKST": "Giờ Mùa Hè Hồng Kông", "GMT": "Giờ Trung bình Greenwich", "MEZ": "Giờ Chuẩn Trung Âu", "JST": "Giờ Chuẩn Nhật Bản", "ACWDT": "Giờ Mùa Hè Miền Trung Tây Nước Úc", "AEST": "Giờ Chuẩn Miền Đông Nước Úc", "SAST": "Giờ Chuẩn Nam Phi", "COT": "Giờ Chuẩn Colombia", "COST": "Giờ Mùa Hè Colombia", "AST": "Giờ Chuẩn Đại Tây Dương", "UYT": "Giờ Chuẩn Uruguay", "EAT": "Giờ Đông Phi", "HNNOMX": "Giờ Chuẩn Tây Bắc Mexico", "ACWST": "Giờ Chuẩn Miền Trung Tây Nước Úc", "WART": "Giờ chuẩn miền mây Argentina", "CST": "Giờ chuẩn miền trung", "HENOMX": "Giờ Mùa Hè Tây Bắc Mexico", "UYST": "Giờ Mùa Hè Uruguay", "HNCU": "Giờ Chuẩn Cuba", "OESZ": "Giờ Mùa Hè Đông Âu", "ACDT": "Giờ Mùa Hè Miền Trung Nước Úc", "HEPM": "Giờ Mùa Hè Saint Pierre và Miquelon", "WAT": "Giờ Chuẩn Tây Phi", "OEZ": "Giờ Chuẩn Đông Âu"},
+ }
+ }
+ 
+diff --git a/vi_VN/vi_VN.go b/vi_VN/vi_VN.go
+index bb8073a..30547bb 100644
+--- a/vi_VN/vi_VN.go
++++ b/vi_VN/vi_VN.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type vi_VN struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'vi_VN' locale
+ func New() locales.Translator {
+ return &vi_VN{
+- locale: "vi_VN",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{2, 6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ",",
+- group: ".",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "thg 1", "thg 2", "thg 3", "thg 4", "thg 5", "thg 6", "thg 7", "thg 8", "thg 9", "thg 10", "thg 11", "thg 12"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "tháng 1", "tháng 2", "tháng 3", "tháng 4", "tháng 5", "tháng 6", "tháng 7", "tháng 8", "tháng 9", "tháng 10", "tháng 11", "tháng 12"},
+- daysAbbreviated: []string{"CN", "Th 2", "Th 3", "Th 4", "Th 5", "Th 6", "Th 7"},
+- daysNarrow: []string{"CN", "T2", "T3", "T4", "T5", "T6", "T7"},
+- daysShort: []string{"CN", "T2", "T3", "T4", "T5", "T6", "T7"},
+- daysWide: []string{"Chủ Nhật", "Thứ Hai", "Thứ Ba", "Thứ Tư", "Thứ Năm", "Thứ Sáu", "Thứ Bảy"},
+- periodsAbbreviated: []string{"SA", "CH"},
+- periodsNarrow: []string{"s", "c"},
+- periodsWide: []string{"SA", "CH"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"tr. CN", "sau CN"},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"AEST": "Giờ Chuẩn Miền Đông Nước Úc", "GFT": "Giờ Guiana thuộc Pháp", "SRT": "Giờ Suriname", "WEZ": "Giờ Chuẩn Tây Âu", "HNT": "Giờ Chuẩn Newfoundland", "AWDT": "Giờ Mùa Hè Miền Tây Nước Úc", "HKT": "Giờ Chuẩn Hồng Kông", "HNPM": "Giờ Chuẩn St. Pierre và Miquelon", "MEZ": "Giờ Chuẩn Trung Âu", "LHDT": "Giờ Mùa Hè Lord Howe", "ECT": "Giờ Ecuador", "WART": "Giờ chuẩn miền mây Argentina", "GMT": "Giờ Trung bình Greenwich", "NZDT": "Giờ Mùa Hè New Zealand", "IST": "Giờ Chuẩn Ấn Độ", "TMST": "Giờ Mùa Hè Turkmenistan", "HEPMX": "Giờ Mùa Hè Thái Bình Dương Mexico", "WIB": "Giờ Miền Tây Indonesia", "HAST": "Giờ Chuẩn Hawaii-Aleutian", "HADT": "Giờ Mùa Hè Hawaii-Aleutian", "VET": "Giờ Venezuela", "∅∅∅": "Giờ Mùa Hè Peru", "OEZ": "Giờ Chuẩn Đông Âu", "HNCU": "Giờ Chuẩn Cuba", "MESZ": "Giờ Mùa Hè Trung Âu", "CLT": "Giờ Chuẩn Chile", "BOT": "Giờ Bolivia", "PDT": "Giờ Mùa hè Thái Bình Dương", "HNOG": "Giờ Chuẩn Miền Tây Greenland", "CHAST": "Giờ Chuẩn Chatham", "WIT": "Giờ Miền Đông Indonesia", "HNNOMX": "Giờ Chuẩn Tây Bắc Mexico", "SGT": "Giờ Singapore", "ADT": "Giờ Mùa hè Đại Tây Dương", "SAST": "Giờ Chuẩn Nam Phi", "WAST": "Giờ Mùa Hè Tây Phi", "HAT": "Giờ Mùa Hè Newfoundland", "LHST": "Giờ Chuẩn Lord Howe", "HEEG": "Giờ Mùa Hè Miền Đông Greenland", "HNPMX": "Giờ Chuẩn Thái Bình Dương Mexico", "ARST": "Giờ Mùa Hè Argentina", "WITA": "Giờ Miền Trung Indonesia", "CDT": "Giờ mùa hè miền trung", "HENOMX": "Giờ Mùa Hè Tây Bắc Mexico", "EST": "Giờ chuẩn miền đông", "MST": "Giờ Chuẩn Ma Cao", "HNEG": "Giờ Chuẩn Miền Đông Greenland", "OESZ": "Giờ Mùa Hè Đông Âu", "BT": "Giờ Bhutan", "HEOG": "Giờ Mùa Hè Miền Tây Greenland", "EAT": "Giờ Đông Phi", "EDT": "Giờ mùa hè miền đông", "AKST": "Giờ Chuẩn Alaska", "AWST": "Giờ Chuẩn Miền Tây Nước Úc", "HKST": "Giờ Mùa Hè Hồng Kông", "AEDT": "Giờ Mùa Hè Miền Đông Nước Úc", "TMT": "Giờ Chuẩn Turkmenistan", "ACST": "Giờ Chuẩn Miền Trung Nước Úc", "COT": "Giờ Chuẩn Colombia", "HECU": "Giờ Mùa Hè Cuba", "WESZ": "Giờ Mùa hè Tây Âu", "PST": "Giờ chuẩn Thái Bình Dương", "NZST": "Giờ Chuẩn New Zealand", "CHADT": "Giờ Mùa Hè Chatham", "JDT": "Giờ Mùa Hè Nhật Bản", "ChST": "Giờ Chamorro", "WARST": "Giờ mùa hè miền tây Argentina", "CST": "Giờ chuẩn miền trung", "GYT": "Giờ Guyana", "AST": "Giờ Chuẩn Đại Tây Dương", "ACWST": "Giờ Chuẩn Miền Trung Tây Nước Úc", "ACWDT": "Giờ Mùa Hè Miền Trung Tây Nước Úc", "ACDT": "Giờ Mùa Hè Miền Trung Nước Úc", "WAT": "Giờ Chuẩn Tây Phi", "MDT": "Giờ Mùa Hè Ma Cao", "UYT": "Giờ Chuẩn Uruguay", "AKDT": "Giờ Mùa Hè Alaska", "HEPM": "Giờ Mùa Hè Saint Pierre và Miquelon", "CLST": "Giờ Mùa Hè Chile", "JST": "Giờ Chuẩn Nhật Bản", "COST": "Giờ Mùa Hè Colombia", "MYT": "Giờ Malaysia", "UYST": "Giờ Mùa Hè Uruguay", "CAT": "Giờ Trung Phi", "ART": "Giờ Chuẩn Argentina"},
++ locale: "vi_VN",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{2, 6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HAT": "HAT", "WART": "WART", "NZST": "NZST", "ADT": "ADT", "HENOMX": "HENOMX", "AWDT": "AWDT", "AEST": "AEST", "CHADT": "CHADT", "SAST": "SAST", "HNNOMX": "HNNOMX", "IST": "IST", "AKDT": "AKDT", "AWST": "AWST", "HEPM": "HEPM", "PST": "PST", "UYST": "UYST", "VET": "VET", "HNT": "HNT", "CST": "CST", "EAT": "EAT", "ACDT": "ACDT", "HECU": "HECU", "WAST": "WAST", "GFT": "GFT", "WIT": "WIT", "WITA": "WITA", "CDT": "CDT", "ECT": "ECT", "ACST": "ACST", "JST": "JST", "UYT": "UYT", "OEZ": "OEZ", "MDT": "MDT", "NZDT": "NZDT", "HEOG": "HEOG", "EST": "EST", "HKT": "HKT", "ACWST": "ACWST", "WARST": "WARST", "HKST": "HKST", "SRT": "SRT", "MEZ": "MEZ", "MYT": "MYT", "AEDT": "AEDT", "HEPMX": "HEPMX", "OESZ": "OESZ", "GMT": "GMT", "BOT": "BOT", "HAST": "HAST", "ACWDT": "ACWDT", "HNCU": "HNCU", "CLT": "CLT", "HNEG": "HNEG", "LHDT": "LHDT", "HNPM": "HNPM", "WAT": "WAT", "AKST": "AKST", "COST": "COST", "∅∅∅": "∅∅∅", "TMT": "TMT", "TMST": "TMST", "CAT": "CAT", "MST": "MST", "MESZ": "MESZ", "HEEG": "HEEG", "PDT": "PDT", "CHAST": "CHAST", "WEZ": "WEZ", "GYT": "GYT", "COT": "COT", "WIB": "WIB", "AST": "AST", "ChST": "ChST", "ART": "ART", "HADT": "HADT", "EDT": "EDT", "BT": "BT", "HNOG": "HNOG", "ARST": "ARST", "HNPMX": "HNPMX", "CLST": "CLST", "LHST": "LHST", "JDT": "JDT", "WESZ": "WESZ", "SGT": "SGT"},
+ }
+ }
+ 
+@@ -124,7 +101,7 @@ func (vi *vi_VN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (vi *vi_VN) MonthsAbbreviated() []string {
+- return vi.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -134,7 +111,7 @@ func (vi *vi_VN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (vi *vi_VN) MonthsNarrow() []string {
+- return vi.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -144,7 +121,7 @@ func (vi *vi_VN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (vi *vi_VN) MonthsWide() []string {
+- return vi.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -190,73 +167,13 @@ func (vi *vi_VN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'vi_VN' and handles both Whole and Real numbers based on 'v'
+ func (vi *vi_VN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, vi.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, vi.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, vi.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'vi_VN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (vi *vi_VN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, vi.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, vi.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, vi.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'vi_VN'
+@@ -264,56 +181,7 @@ func (vi *vi_VN) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := vi.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, vi.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, vi.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, vi.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, vi.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, vi.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'vi_VN'
+@@ -322,63 +190,7 @@ func (vi *vi_VN) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := vi.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, vi.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, vi.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, vi.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, vi.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, vi.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, vi.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'vi_VN'
+@@ -386,27 +198,6 @@ func (vi *vi_VN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -415,17 +206,6 @@ func (vi *vi_VN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, vi.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -434,17 +214,6 @@ func (vi *vi_VN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, vi.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -453,19 +222,6 @@ func (vi *vi_VN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, vi.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, vi.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -474,19 +230,6 @@ func (vi *vi_VN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, vi.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -495,26 +238,6 @@ func (vi *vi_VN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, vi.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vi.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -523,30 +246,6 @@ func (vi *vi_VN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, vi.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vi.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -555,34 +254,5 @@ func (vi *vi_VN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, vi.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vi.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := vi.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/vo/vo.go b/vo/vo.go
+index 6c29b87..a2824b9 100644
+--- a/vo/vo.go
++++ b/vo/vo.go
+@@ -57,7 +57,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"b. t. kr.", "p. t. kr."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"b. t. kr.", "p. t. kr."},
+- timezones: map[string]string{"WEZ": "WEZ", "AEDT": "AEDT", "AKDT": "AKDT", "ADT": "ADT", "GYT": "GYT", "MESZ": "MESZ", "COST": "COST", "ART": "ART", "MEZ": "MEZ", "CLST": "CLST", "BOT": "BOT", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "MDT": "MDT", "MYT": "MYT", "CDT": "CDT", "HADT": "HADT", "HNEG": "HNEG", "ACST": "ACST", "WESZ": "WESZ", "ACWDT": "ACWDT", "NZDT": "NZDT", "JST": "JST", "HECU": "HECU", "SRT": "SRT", "AST": "AST", "WIT": "WIT", "HNPM": "HNPM", "LHDT": "LHDT", "OEZ": "OEZ", "MST": "MST", "BT": "BT", "PST": "PST", "ARST": "ARST", "AWDT": "AWDT", "LHST": "LHST", "GFT": "GFT", "SGT": "SGT", "HEPMX": "HEPMX", "CST": "CST", "HNOG": "HNOG", "AEST": "AEST", "HEPM": "HEPM", "WAST": "WAST", "GMT": "GMT", "EDT": "EDT", "AKST": "AKST", "HAST": "HAST", "VET": "VET", "ACWST": "ACWST", "HAT": "HAT", "EAT": "EAT", "HENOMX": "HENOMX", "WITA": "WITA", "JDT": "JDT", "HNPMX": "HNPMX", "AWST": "AWST", "HKT": "HKT", "IST": "IST", "COT": "COT", "PDT": "PDT", "UYT": "UYT", "UYST": "UYST", "CHADT": "CHADT", "ChST": "ChST", "ECT": "ECT", "EST": "EST", "HNT": "HNT", "CLT": "CLT", "ACDT": "ACDT", "WAT": "WAT", "HNCU": "HNCU", "HKST": "HKST", "HEEG": "HEEG", "TMST": "TMST", "WIB": "WIB", "NZST": "NZST", "CHAST": "CHAST", "CAT": "CAT", "WART": "WART", "HEOG": "HEOG", "SAST": "SAST", "TMT": "TMT", "WARST": "WARST"},
++ timezones: map[string]string{"HNNOMX": "HNNOMX", "LHST": "LHST", "LHDT": "LHDT", "PDT": "PDT", "GFT": "GFT", "CDT": "CDT", "ECT": "ECT", "HNPM": "HNPM", "HEPM": "HEPM", "IST": "IST", "WAT": "WAT", "NZDT": "NZDT", "ARST": "ARST", "CHAST": "CHAST", "UYST": "UYST", "HECU": "HECU", "OEZ": "OEZ", "HNT": "HNT", "WITA": "WITA", "MDT": "MDT", "HEEG": "HEEG", "WAST": "WAST", "HNOG": "HNOG", "AKST": "AKST", "MST": "MST", "NZST": "NZST", "EAT": "EAT", "ACDT": "ACDT", "HENOMX": "HENOMX", "UYT": "UYT", "HNPMX": "HNPMX", "COST": "COST", "HEOG": "HEOG", "HKST": "HKST", "JST": "JST", "JDT": "JDT", "GYT": "GYT", "VET": "VET", "HNCU": "HNCU", "∅∅∅": "∅∅∅", "WIB": "WIB", "ADT": "ADT", "MYT": "MYT", "SGT": "SGT", "AEST": "AEST", "CHADT": "CHADT", "CLST": "CLST", "MESZ": "MESZ", "ACWDT": "ACWDT", "OESZ": "OESZ", "WART": "WART", "HNEG": "HNEG", "AWDT": "AWDT", "BT": "BT", "EST": "EST", "TMT": "TMT", "TMST": "TMST", "CST": "CST", "HADT": "HADT", "AWST": "AWST", "AEDT": "AEDT", "PST": "PST", "AKDT": "AKDT", "HAT": "HAT", "CLT": "CLT", "ACST": "ACST", "WIT": "WIT", "SAST": "SAST", "COT": "COT", "AST": "AST", "GMT": "GMT", "ART": "ART", "EDT": "EDT", "HKT": "HKT", "ChST": "ChST", "MEZ": "MEZ", "HEPMX": "HEPMX", "WEZ": "WEZ", "WARST": "WARST", "CAT": "CAT", "BOT": "BOT", "SRT": "SRT", "HAST": "HAST", "ACWST": "ACWST", "WESZ": "WESZ"},
+ }
+ }
+ 
+diff --git a/vo_001/vo_001.go b/vo_001/vo_001.go
+index b2248cb..e0344c7 100644
+--- a/vo_001/vo_001.go
++++ b/vo_001/vo_001.go
+@@ -42,22 +42,13 @@ type vo_001 struct {
+ // New returns a new instance of translator for the 'vo_001' locale
+ func New() locales.Translator {
+ return &vo_001{
+- locale: "vo_001",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "yan", "feb", "mäz", "prl", "may", "yun", "yul", "gst", "set", "ton", "nov", "dek"},
+- monthsNarrow: []string{"", "Y", "F", "M", "P", "M", "Y", "Y", "G", "S", "T", "N", "D"},
+- monthsWide: []string{"", "yanul", "febul", "mäzul", "prilul", "mayul", "yunul", "yulul", "gustul", "setul", "tobul", "novul", "dekul"},
+- daysAbbreviated: []string{"su.", "mu.", "tu.", "ve.", "dö.", "fr.", "zä."},
+- daysNarrow: []string{"S", "M", "T", "V", "D", "F", "Z"},
+- daysWide: []string{"sudel", "mudel", "tudel", "vedel", "dödel", "fridel", "zädel"},
+- erasAbbreviated: []string{"b. t. kr.", "p. t. kr."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"b. t. kr.", "p. t. kr."},
+- timezones: map[string]string{"HADT": "HADT", "HNT": "HNT", "ARST": "ARST", "ACWST": "ACWST", "AEST": "AEST", "∅∅∅": "∅∅∅", "HAST": "HAST", "CHADT": "CHADT", "JDT": "JDT", "ECT": "ECT", "EDT": "EDT", "ADT": "ADT", "SRT": "SRT", "ACWDT": "ACWDT", "HKST": "HKST", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "GMT": "GMT", "HAT": "HAT", "SAST": "SAST", "OESZ": "OESZ", "HNOG": "HNOG", "HEOG": "HEOG", "AWST": "AWST", "NZDT": "NZDT", "TMST": "TMST", "ChST": "ChST", "HNPMX": "HNPMX", "IST": "IST", "ACST": "ACST", "GYT": "GYT", "UYT": "UYT", "UYST": "UYST", "LHDT": "LHDT", "CLT": "CLT", "BOT": "BOT", "HEPMX": "HEPMX", "MDT": "MDT", "PDT": "PDT", "MESZ": "MESZ", "JST": "JST", "EST": "EST", "MYT": "MYT", "SGT": "SGT", "MST": "MST", "WIT": "WIT", "AEDT": "AEDT", "NZST": "NZST", "CAT": "CAT", "WAT": "WAT", "COT": "COT", "AKDT": "AKDT", "VET": "VET", "BT": "BT", "CHAST": "CHAST", "WART": "WART", "AST": "AST", "WITA": "WITA", "MEZ": "MEZ", "CLST": "CLST", "WARST": "WARST", "WEZ": "WEZ", "AWDT": "AWDT", "LHST": "LHST", "TMT": "TMT", "HEPM": "HEPM", "COST": "COST", "HENOMX": "HENOMX", "CDT": "CDT", "EAT": "EAT", "CST": "CST", "WAST": "WAST", "WIB": "WIB", "ART": "ART", "WESZ": "WESZ", "HKT": "HKT", "GFT": "GFT", "ACDT": "ACDT", "OEZ": "OEZ", "PST": "PST", "HNPM": "HNPM", "HEEG": "HEEG", "HNCU": "HNCU", "HECU": "HECU", "AKST": "AKST"},
++ locale: "vo_001",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AKST": "AKST", "OEZ": "OEZ", "BOT": "BOT", "MEZ": "MEZ", "ACWST": "ACWST", "OESZ": "OESZ", "HEOG": "HEOG", "CDT": "CDT", "PST": "PST", "UYST": "UYST", "WEZ": "WEZ", "WAT": "WAT", "WAST": "WAST", "HNT": "HNT", "HKT": "HKT", "NZST": "NZST", "ARST": "ARST", "MST": "MST", "MYT": "MYT", "BT": "BT", "WARST": "WARST", "TMT": "TMT", "TMST": "TMST", "EAT": "EAT", "PDT": "PDT", "CHADT": "CHADT", "WESZ": "WESZ", "MDT": "MDT", "HNEG": "HNEG", "JDT": "JDT", "COT": "COT", "CAT": "CAT", "CLT": "CLT", "HAST": "HAST", "HENOMX": "HENOMX", "LHST": "LHST", "EST": "EST", "NZDT": "NZDT", "ADT": "ADT", "GMT": "GMT", "MESZ": "MESZ", "AWST": "AWST", "HNPMX": "HNPMX", "COST": "COST", "HKST": "HKST", "WIB": "WIB", "ChST": "ChST", "JST": "JST", "ACWDT": "ACWDT", "ART": "ART", "HADT": "HADT", "HNNOMX": "HNNOMX", "AEDT": "AEDT", "UYT": "UYT", "GYT": "GYT", "HNOG": "HNOG", "ACDT": "ACDT", "HNPM": "HNPM", "HEPM": "HEPM", "∅∅∅": "∅∅∅", "AEST": "AEST", "SAST": "SAST", "ECT": "ECT", "SRT": "SRT", "HEEG": "HEEG", "HNCU": "HNCU", "CST": "CST", "AWDT": "AWDT", "IST": "IST", "HEPMX": "HEPMX", "ACST": "ACST", "LHDT": "LHDT", "VET": "VET", "HECU": "HECU", "WART": "WART", "WITA": "WITA", "CHAST": "CHAST", "SGT": "SGT", "AKDT": "AKDT", "EDT": "EDT", "AST": "AST", "GFT": "GFT", "HAT": "HAT", "WIT": "WIT", "CLST": "CLST"},
+ }
+ }
+ 
+@@ -110,7 +101,7 @@ func (vo *vo_001) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (vo *vo_001) MonthsAbbreviated() []string {
+- return vo.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -120,7 +111,7 @@ func (vo *vo_001) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (vo *vo_001) MonthsNarrow() []string {
+- return vo.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -130,7 +121,7 @@ func (vo *vo_001) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (vo *vo_001) MonthsWide() []string {
+- return vo.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -207,28 +198,6 @@ func (vo *vo_001) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2d}...)
+-
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -237,17 +206,6 @@ func (vo *vo_001) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, vo.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -256,17 +214,6 @@ func (vo *vo_001) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, vo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -275,20 +222,6 @@ func (vo *vo_001) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x20}...)
+- b = append(b, vo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x61}...)
+- b = append(b, []byte{0x20, 0x64}...)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x69, 0x64}...)
+-
+ return string(b)
+ }
+ 
+@@ -297,19 +230,6 @@ func (vo *vo_001) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, vo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -318,26 +238,6 @@ func (vo *vo_001) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, vo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -346,30 +246,6 @@ func (vo *vo_001) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, vo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -378,34 +254,5 @@ func (vo *vo_001) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, vo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := vo.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/vun/vun.go b/vun/vun.go
+index 6d71c51..e711bd6 100644
+--- a/vun/vun.go
++++ b/vun/vun.go
+@@ -59,7 +59,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"KK", "BK"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kabla ya Kristu", "Baada ya Kristu"},
+- timezones: map[string]string{"HNNOMX": "HNNOMX", "MDT": "MDT", "UYST": "UYST", "WAT": "WAT", "HNPMX": "HNPMX", "CDT": "CDT", "AWST": "AWST", "WITA": "WITA", "MESZ": "MESZ", "GFT": "GFT", "OESZ": "OESZ", "GMT": "GMT", "HNCU": "HNCU", "BT": "BT", "HAT": "HAT", "NZDT": "NZDT", "ECT": "ECT", "ACWST": "ACWST", "AEDT": "AEDT", "WESZ": "WESZ", "ACWDT": "ACWDT", "JDT": "JDT", "TMT": "TMT", "WAST": "WAST", "HAST": "HAST", "PDT": "PDT", "WEZ": "WEZ", "AEST": "AEST", "CAT": "CAT", "SGT": "SGT", "AST": "AST", "HKT": "HKT", "HNPM": "HNPM", "HEPM": "HEPM", "COT": "COT", "EDT": "EDT", "AKST": "AKST", "HNT": "HNT", "ARST": "ARST", "HKST": "HKST", "SAST": "SAST", "CLST": "CLST", "∅∅∅": "∅∅∅", "WARST": "WARST", "ART": "ART", "HNOG": "HNOG", "WIT": "WIT", "MST": "MST", "SRT": "SRT", "ACST": "ACST", "OEZ": "OEZ", "EST": "EST", "PST": "PST", "HEOG": "HEOG", "LHDT": "LHDT", "HADT": "HADT", "VET": "VET", "BOT": "BOT", "EAT": "EAT", "WART": "WART", "HENOMX": "HENOMX", "HECU": "HECU", "MYT": "MYT", "CHADT": "CHADT", "GYT": "GYT", "UYT": "UYT", "CLT": "CLT", "ChST": "ChST", "ACDT": "ACDT", "COST": "COST", "AKDT": "AKDT", "CST": "CST", "WIB": "WIB", "AWDT": "AWDT", "LHST": "LHST", "TMST": "TMST", "HEPMX": "HEPMX", "ADT": "ADT", "NZST": "NZST", "JST": "JST", "HNEG": "HNEG", "HEEG": "HEEG", "MEZ": "MEZ", "CHAST": "CHAST", "IST": "IST"},
++ timezones: map[string]string{"COT": "COT", "MST": "MST", "HENOMX": "HENOMX", "MESZ": "MESZ", "HNPM": "HNPM", "MYT": "MYT", "UYST": "UYST", "OEZ": "OEZ", "BOT": "BOT", "EAT": "EAT", "AEDT": "AEDT", "CHADT": "CHADT", "SRT": "SRT", "OESZ": "OESZ", "COST": "COST", "HKST": "HKST", "WART": "WART", "WITA": "WITA", "CST": "CST", "MDT": "MDT", "AST": "AST", "ADT": "ADT", "WEZ": "WEZ", "HAT": "HAT", "HKT": "HKT", "CAT": "CAT", "JDT": "JDT", "CHAST": "CHAST", "HADT": "HADT", "AWST": "AWST", "AWDT": "AWDT", "AKST": "AKST", "TMT": "TMT", "ART": "ART", "HNEG": "HNEG", "LHDT": "LHDT", "HEOG": "HEOG", "HNCU": "HNCU", "WIB": "WIB", "CDT": "CDT", "NZST": "NZST", "HEPM": "HEPM", "ACWDT": "ACWDT", "PDT": "PDT", "BT": "BT", "VET": "VET", "GYT": "GYT", "CLST": "CLST", "GMT": "GMT", "HAST": "HAST", "UYT": "UYT", "WIT": "WIT", "∅∅∅": "∅∅∅", "ARST": "ARST", "ChST": "ChST", "ACST": "ACST", "AEST": "AEST", "HECU": "HECU", "EDT": "EDT", "IST": "IST", "WESZ": "WESZ", "WAST": "WAST", "HNT": "HNT", "HNOG": "HNOG", "CLT": "CLT", "ECT": "ECT", "HNNOMX": "HNNOMX", "ACDT": "ACDT", "LHST": "LHST", "WAT": "WAT", "NZDT": "NZDT", "PST": "PST", "HNPMX": "HNPMX", "SGT": "SGT", "AKDT": "AKDT", "GFT": "GFT", "EST": "EST", "HEEG": "HEEG", "MEZ": "MEZ", "JST": "JST", "ACWST": "ACWST", "HEPMX": "HEPMX", "WARST": "WARST", "SAST": "SAST", "TMST": "TMST"},
+ }
+ }
+ 
+diff --git a/vun_TZ/vun_TZ.go b/vun_TZ/vun_TZ.go
+index bdee973..5c1b385 100644
+--- a/vun_TZ/vun_TZ.go
++++ b/vun_TZ/vun_TZ.go
+@@ -42,24 +42,13 @@ type vun_TZ struct {
+ // New returns a new instance of translator for the 'vun_TZ' locale
+ func New() locales.Translator {
+ return &vun_TZ{
+- locale: "vun_TZ",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Januari", "Februari", "Machi", "Aprilyi", "Mei", "Junyi", "Julyai", "Agusti", "Septemba", "Oktoba", "Novemba", "Desemba"},
+- daysAbbreviated: []string{"Jpi", "Jtt", "Jnn", "Jtn", "Alh", "Iju", "Jmo"},
+- daysNarrow: []string{"J", "J", "J", "J", "A", "I", "J"},
+- daysWide: []string{"Jumapilyi", "Jumatatuu", "Jumanne", "Jumatanu", "Alhamisi", "Ijumaa", "Jumamosi"},
+- periodsAbbreviated: []string{"utuko", "kyiukonyi"},
+- periodsWide: []string{"utuko", "kyiukonyi"},
+- erasAbbreviated: []string{"KK", "BK"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kabla ya Kristu", "Baada ya Kristu"},
+- timezones: map[string]string{"AST": "AST", "MYT": "MYT", "MST": "MST", "MDT": "MDT", "ART": "ART", "WESZ": "WESZ", "CLT": "CLT", "CDT": "CDT", "HEEG": "HEEG", "OESZ": "OESZ", "ChST": "ChST", "WITA": "WITA", "NZST": "NZST", "WAT": "WAT", "EST": "EST", "WIT": "WIT", "GFT": "GFT", "ACST": "ACST", "ACDT": "ACDT", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "∅∅∅": "∅∅∅", "CAT": "CAT", "HNOG": "HNOG", "HEPM": "HEPM", "SGT": "SGT", "HNT": "HNT", "AKST": "AKST", "HAT": "HAT", "HEOG": "HEOG", "AEST": "AEST", "WART": "WART", "UYST": "UYST", "ACWST": "ACWST", "WIB": "WIB", "HKST": "HKST", "HNPM": "HNPM", "MESZ": "MESZ", "LHST": "LHST", "JDT": "JDT", "WARST": "WARST", "HNCU": "HNCU", "GYT": "GYT", "HECU": "HECU", "SRT": "SRT", "SAST": "SAST", "TMT": "TMT", "EAT": "EAT", "WAST": "WAST", "COST": "COST", "HNNOMX": "HNNOMX", "CST": "CST", "AEDT": "AEDT", "AWST": "AWST", "JST": "JST", "GMT": "GMT", "HAST": "HAST", "VET": "VET", "BT": "BT", "CHADT": "CHADT", "HADT": "HADT", "PDT": "PDT", "LHDT": "LHDT", "TMST": "TMST", "EDT": "EDT", "UYT": "UYT", "AKDT": "AKDT", "ARST": "ARST", "PST": "PST", "IST": "IST", "CLST": "CLST", "BOT": "BOT", "COT": "COT", "ADT": "ADT", "HNEG": "HNEG", "ECT": "ECT", "HEPMX": "HEPMX", "HKT": "HKT", "AWDT": "AWDT", "OEZ": "OEZ", "ACWDT": "ACWDT", "CHAST": "CHAST", "MEZ": "MEZ", "NZDT": "NZDT", "WEZ": "WEZ"},
++ locale: "vun_TZ",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CAT": "CAT", "ACST": "ACST", "MYT": "MYT", "UYT": "UYT", "PDT": "PDT", "OESZ": "OESZ", "HEOG": "HEOG", "WEZ": "WEZ", "WARST": "WARST", "COST": "COST", "EST": "EST", "EDT": "EDT", "HNOG": "HNOG", "MST": "MST", "HNEG": "HNEG", "JST": "JST", "ACWDT": "ACWDT", "AEST": "AEST", "WAT": "WAT", "WART": "WART", "HADT": "HADT", "MEZ": "MEZ", "∅∅∅": "∅∅∅", "PST": "PST", "HKT": "HKT", "ECT": "ECT", "EAT": "EAT", "HENOMX": "HENOMX", "HEPM": "HEPM", "BT": "BT", "TMST": "TMST", "CDT": "CDT", "HNNOMX": "HNNOMX", "NZDT": "NZDT", "AWST": "AWST", "LHDT": "LHDT", "SGT": "SGT", "HEPMX": "HEPMX", "SAST": "SAST", "JDT": "JDT", "WAST": "WAST", "COT": "COT", "MDT": "MDT", "ARST": "ARST", "ACDT": "ACDT", "AEDT": "AEDT", "AKST": "AKST", "OEZ": "OEZ", "GYT": "GYT", "ADT": "ADT", "AWDT": "AWDT", "CHADT": "CHADT", "HECU": "HECU", "SRT": "SRT", "BOT": "BOT", "HAST": "HAST", "HEEG": "HEEG", "VET": "VET", "HNT": "HNT", "TMT": "TMT", "CLT": "CLT", "ChST": "ChST", "IST": "IST", "CST": "CST", "NZST": "NZST", "ACWST": "ACWST", "WITA": "WITA", "WIB": "WIB", "GMT": "GMT", "ART": "ART", "CHAST": "CHAST", "HNPMX": "HNPMX", "GFT": "GFT", "HAT": "HAT", "CLST": "CLST", "WESZ": "WESZ", "HNCU": "HNCU", "WIT": "WIT", "UYST": "UYST", "AKDT": "AKDT", "HKST": "HKST", "AST": "AST", "MESZ": "MESZ", "LHST": "LHST", "HNPM": "HNPM"},
+ }
+ }
+ 
+@@ -112,7 +101,7 @@ func (vun *vun_TZ) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (vun *vun_TZ) MonthsAbbreviated() []string {
+- return vun.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -122,7 +111,7 @@ func (vun *vun_TZ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (vun *vun_TZ) MonthsNarrow() []string {
+- return vun.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -132,7 +121,7 @@ func (vun *vun_TZ) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (vun *vun_TZ) MonthsWide() []string {
+- return vun.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -192,56 +181,7 @@ func (vun *vun_TZ) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := vun.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, vun.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, vun.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, vun.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, vun.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'vun_TZ'
+@@ -250,64 +190,7 @@ func (vun *vun_TZ) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := vun.currencies[currency]
+- l := len(s) + len(symbol) + 0 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, vun.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, vun.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, vun.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, vun.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'vun_TZ'
+@@ -315,27 +198,6 @@ func (vun *vun_TZ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -344,17 +206,6 @@ func (vun *vun_TZ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, vun.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -363,17 +214,6 @@ func (vun *vun_TZ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, vun.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -382,19 +222,6 @@ func (vun *vun_TZ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, vun.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, vun.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -403,19 +230,6 @@ func (vun *vun_TZ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, vun.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -424,26 +238,6 @@ func (vun *vun_TZ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, vun.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vun.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -452,30 +246,6 @@ func (vun *vun_TZ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, vun.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vun.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -484,34 +254,5 @@ func (vun *vun_TZ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, vun.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, vun.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := vun.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/wae/wae.go b/wae/wae.go
+index c9fef7b..cddb28a 100644
+--- a/wae/wae.go
++++ b/wae/wae.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"v. Chr.", "n. Chr"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"", ""},
+- timezones: map[string]string{"JDT": "JDT", "HNCU": "HNCU", "HKT": "HKT", "SRT": "SRT", "AWDT": "AWDT", "CHAST": "CHAST", "SAST": "SAST", "WAST": "WAST", "HNNOMX": "HNNOMX", "MST": "MST", "CST": "CST", "NZST": "NZST", "VET": "VET", "ART": "ART", "PDT": "PDT", "HNPM": "HNPM", "TMST": "TMST", "ChST": "ChST", "ACST": "ACST", "WARST": "WARST", "HEPMX": "HEPMX", "HNOG": "HNOG", "MEZ": "Mitteleuropäiši Standardzit", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "WIB": "WIB", "BT": "BT", "HAT": "HAT", "LHDT": "LHDT", "WART": "WART", "AKDT": "AKDT", "HNT": "HNT", "JST": "JST", "OESZ": "Ošteuropäiši Summerzit", "HENOMX": "HENOMX", "MESZ": "Mitteleuropäiši Summerzit", "IST": "IST", "EST": "EST", "WITA": "WITA", "CHADT": "CHADT", "GFT": "GFT", "TMT": "TMT", "OEZ": "Ošteuropäiši Standardzit", "COT": "COT", "AST": "Atlantiši Standardzit", "LHST": "LHST", "WAT": "WAT", "GMT": "GMT", "MDT": "MDT", "UYST": "UYST", "ACWST": "ACWST", "ACDT": "ACDT", "COST": "COST", "HEOG": "HEOG", "WESZ": "Wešteuropäiši Summerzit", "HNEG": "HNEG", "AKST": "AKST", "AEST": "AEST", "AEDT": "AEDT", "AWST": "AWST", "HKST": "HKST", "HEEG": "HEEG", "CAT": "CAT", "EDT": "EDT", "HAST": "HAST", "NZDT": "NZDT", "CLST": "CLST", "ECT": "ECT", "ARST": "ARST", "ACWDT": "ACWDT", "CLT": "CLT", "SGT": "SGT", "GYT": "GYT", "HADT": "HADT", "PST": "PST", "WEZ": "Wešteuropäiši Standardzit", "MYT": "MYT", "UYT": "UYT", "HEPM": "HEPM", "BOT": "BOT", "EAT": "EAT", "HECU": "HECU", "CDT": "CDT", "ADT": "Atlantiši Summerzit", "WIT": "WIT"},
++ timezones: map[string]string{"TMT": "TMT", "ADT": "Atlantiši Summerzit", "LHST": "LHST", "ACWDT": "ACWDT", "HECU": "HECU", "SAST": "SAST", "IST": "IST", "PST": "PST", "ACWST": "ACWST", "ARST": "ARST", "MEZ": "Mitteleuropäiši Standardzit", "HNPM": "HNPM", "UYT": "UYT", "∅∅∅": "∅∅∅", "WAST": "WAST", "WITA": "WITA", "ECT": "ECT", "CHAST": "CHAST", "HNPMX": "HNPMX", "OEZ": "Ošteuropäiši Standardzit", "EST": "EST", "HKST": "HKST", "AWDT": "AWDT", "COST": "COST", "CST": "CST", "HENOMX": "HENOMX", "MYT": "MYT", "WESZ": "Wešteuropäiši Summerzit", "CDT": "CDT", "SGT": "SGT", "TMST": "TMST", "HAST": "HAST", "HNNOMX": "HNNOMX", "WIT": "WIT", "HNOG": "HNOG", "CHADT": "CHADT", "HEPMX": "HEPMX", "BOT": "BOT", "JST": "JST", "HNT": "HNT", "HAT": "HAT", "GYT": "GYT", "AKST": "AKST", "HEOG": "HEOG", "EDT": "EDT", "GMT": "GMT", "ChST": "ChST", "MDT": "MDT", "SRT": "SRT", "LHDT": "LHDT", "CLT": "CLT", "AST": "Atlantiši Standardzit", "OESZ": "Ošteuropäiši Summerzit", "WARST": "WARST", "COT": "COT", "CLST": "CLST", "HNCU": "HNCU", "WAT": "WAT", "AKDT": "AKDT", "MESZ": "Mitteleuropäiši Summerzit", "HEPM": "HEPM", "UYST": "UYST", "BT": "BT", "VET": "VET", "GFT": "GFT", "PDT": "PDT", "HKT": "HKT", "WIB": "WIB", "AEST": "AEST", "WEZ": "Wešteuropäiši Standardzit", "NZDT": "NZDT", "MST": "MST", "HNEG": "HNEG", "HEEG": "HEEG", "AWST": "AWST", "JDT": "JDT", "HADT": "HADT", "ACST": "ACST", "ACDT": "ACDT", "AEDT": "AEDT", "NZST": "NZST", "ART": "ART", "EAT": "EAT", "WART": "WART", "CAT": "CAT"},
+ }
+ }
+ 
+diff --git a/wae_CH/wae_CH.go b/wae_CH/wae_CH.go
+index 905ec50..449dd5c 100644
+--- a/wae_CH/wae_CH.go
++++ b/wae_CH/wae_CH.go
+@@ -10,64 +10,45 @@ import (
+ )
+ 
+ type wae_CH struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'wae_CH' locale
+ func New() locales.Translator {
+ return &wae_CH{
+- locale: "wae_CH",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: "’",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyPositiveSuffix: "K",
+- currencyNegativePrefix: " ",
+- currencyNegativeSuffix: "K",
+- monthsAbbreviated: []string{"", "Jen", "Hor", "Mär", "Abr", "Mei", "Brá", "Hei", "Öig", "Her", "Wím", "Win", "Chr"},
+- monthsNarrow: []string{"", "J", "H", "M", "A", "M", "B", "H", "Ö", "H", "W", "W", "C"},
+- monthsWide: []string{"", "Jenner", "Hornig", "Märze", "Abrille", "Meije", "Bráčet", "Heiwet", "Öigšte", "Herbštmánet", "Wímánet", "Wintermánet", "Chrištmánet"},
+- daysAbbreviated: []string{"Sun", "Män", "Ziš", "Mit", "Fró", "Fri", "Sam"},
+- daysNarrow: []string{"S", "M", "Z", "M", "F", "F", "S"},
+- daysWide: []string{"Sunntag", "Mäntag", "Zištag", "Mittwuč", "Fróntag", "Fritag", "Samštag"},
+- erasAbbreviated: []string{"v. Chr.", "n. Chr"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"", ""},
+- timezones: map[string]string{"MESZ": "Mitteleuropäiši Summerzit", "JDT": "JDT", "ACDT": "ACDT", "OEZ": "Ošteuropäiši Standardzit", "WAST": "WAST", "HNPMX": "HNPMX", "PDT": "PDT", "ECT": "ECT", "AST": "Atlantiši Standardzit", "MYT": "MYT", "OESZ": "Ošteuropäiši Summerzit", "CAT": "CAT", "WARST": "WARST", "HENOMX": "HENOMX", "HNCU": "HNCU", "HECU": "HECU", "BOT": "BOT", "LHST": "LHST", "LHDT": "LHDT", "IST": "IST", "HEPMX": "HEPMX", "ARST": "ARST", "HKT": "HKT", "NZDT": "NZDT", "WAT": "WAT", "COT": "COT", "HNPM": "HNPM", "MEZ": "Mitteleuropäiši Standardzit", "TMT": "TMT", "ACWST": "ACWST", "WITA": "WITA", "ACST": "ACST", "GMT": "GMT", "EDT": "EDT", "MST": "MST", "PST": "PST", "SAST": "SAST", "JST": "JST", "SGT": "SGT", "WIB": "WIB", "HNNOMX": "HNNOMX", "HAT": "HAT", "HNOG": "HNOG", "AEST": "AEST", "AEDT": "AEDT", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "ChST": "ChST", "EST": "EST", "CST": "CST", "HAST": "HAST", "VET": "VET", "HEOG": "HEOG", "ACWDT": "ACWDT", "HNEG": "HNEG", "WART": "WART", "COST": "COST", "HADT": "HADT", "WIT": "WIT", "BT": "BT", "NZST": "NZST", "GFT": "GFT", "MDT": "MDT", "CDT": "CDT", "ART": "ART", "HKST": "HKST", "HEPM": "HEPM", "EAT": "EAT", "UYT": "UYT", "SRT": "SRT", "WEZ": "Wešteuropäiši Standardzit", "WESZ": "Wešteuropäiši Summerzit", "AWDT": "AWDT", "CLT": "CLT", "HEEG": "HEEG", "UYST": "UYST", "HNT": "HNT", "CHADT": "CHADT", "CLST": "CLST", "ADT": "Atlantiši Summerzit", "GYT": "GYT", "AWST": "AWST", "TMST": "TMST", "AKST": "AKST", "AKDT": "AKDT"},
++ locale: "wae_CH",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEPMX": "HEPMX", "WAST": "WAST", "AKDT": "AKDT", "ECT": "ECT", "HEEG": "HEEG", "CHADT": "CHADT", "PST": "PST", "HECU": "HECU", "HAT": "HAT", "MEZ": "MEZ", "ACST": "ACST", "WEZ": "WEZ", "WARST": "WARST", "GMT": "GMT", "HAST": "HAST", "UYST": "UYST", "OESZ": "OESZ", "CAT": "CAT", "HNT": "HNT", "WART": "WART", "SGT": "SGT", "COT": "COT", "HKST": "HKST", "SRT": "SRT", "HNNOMX": "HNNOMX", "HNPM": "HNPM", "BT": "BT", "CHAST": "CHAST", "IST": "IST", "AKST": "AKST", "HNOG": "HNOG", "∅∅∅": "∅∅∅", "HEPM": "HEPM", "LHDT": "LHDT", "ACWST": "ACWST", "AEDT": "AEDT", "HEOG": "HEOG", "WIB": "WIB", "CDT": "CDT", "ACDT": "ACDT", "AWST": "AWST", "SAST": "SAST", "AST": "AST", "HENOMX": "HENOMX", "WAT": "WAT", "GFT": "GFT", "HKT": "HKT", "WITA": "WITA", "HADT": "HADT", "VET": "VET", "TMT": "TMT", "EST": "EST", "PDT": "PDT", "OEZ": "OEZ", "GYT": "GYT", "CLT": "CLT", "ARST": "ARST", "MESZ": "MESZ", "JST": "JST", "JDT": "JDT", "EDT": "EDT", "COST": "COST", "NZDT": "NZDT", "MST": "MST", "MDT": "MDT", "LHST": "LHST", "HNCU": "HNCU", "CLST": "CLST", "ChST": "ChST", "BOT": "BOT", "AWDT": "AWDT", "ADT": "ADT", "EAT": "EAT", "HNEG": "HNEG", "HNPMX": "HNPMX", "WIT": "WIT", "CST": "CST", "AEST": "AEST", "WESZ": "WESZ", "TMST": "TMST", "NZST": "NZST", "ART": "ART", "MYT": "MYT", "ACWDT": "ACWDT", "UYT": "UYT"},
+ }
+ }
+ 
+@@ -120,7 +101,7 @@ func (wae *wae_CH) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (wae *wae_CH) MonthsAbbreviated() []string {
+- return wae.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -130,7 +111,7 @@ func (wae *wae_CH) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (wae *wae_CH) MonthsNarrow() []string {
+- return wae.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -140,7 +121,7 @@ func (wae *wae_CH) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (wae *wae_CH) MonthsWide() []string {
+- return wae.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -200,40 +181,7 @@ func (wae *wae_CH) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := wae.currencies[currency]
+- l := len(s) + len(symbol) + 4
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, wae.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(wae.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, wae.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, wae.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, wae.currencyPositiveSuffix...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'wae_CH'
+@@ -242,57 +190,7 @@ func (wae *wae_CH) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := wae.currencies[currency]
+- l := len(s) + len(symbol) + 4
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, wae.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(wae.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, wae.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, wae.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(wae.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, wae.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if num < 0 {
+- b = append(b, wae.currencyNegativeSuffix...)
+- } else {
+-
+- b = append(b, wae.currencyPositiveSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'wae_CH'
+@@ -308,17 +206,6 @@ func (wae *wae_CH) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, wae.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -327,17 +214,6 @@ func (wae *wae_CH) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, wae.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -346,19 +222,6 @@ func (wae *wae_CH) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, wae.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2e, 0x20}...)
+- b = append(b, wae.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+diff --git a/xog/xog.go b/xog/xog.go
+index 3f0a44a..705e727 100644
+--- a/xog/xog.go
++++ b/xog/xog.go
+@@ -63,7 +63,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"AZ", "AF"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Kulisto nga azilawo", "Kulisto nga affile"},
+- timezones: map[string]string{"CST": "CST", "BT": "BT", "SRT": "SRT", "HNT": "HNT", "NZST": "NZST", "SAST": "SAST", "UYT": "UYT", "WAT": "WAT", "NZDT": "NZDT", "CDT": "CDT", "WESZ": "WESZ", "ACWST": "ACWST", "ART": "ART", "HEOG": "HEOG", "HKT": "HKT", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "ACST": "ACST", "GFT": "GFT", "MEZ": "MEZ", "ACDT": "ACDT", "ECT": "ECT", "WIB": "WIB", "AST": "AST", "ACWDT": "ACWDT", "HNPM": "HNPM", "CHAST": "CHAST", "MDT": "MDT", "HECU": "HECU", "UYST": "UYST", "ADT": "ADT", "WIT": "WIT", "WEZ": "WEZ", "AEDT": "AEDT", "HEPM": "HEPM", "HNCU": "HNCU", "TMT": "TMT", "JST": "JST", "MYT": "MYT", "AEST": "AEST", "BOT": "BOT", "COT": "COT", "PDT": "PDT", "WITA": "WITA", "LHDT": "LHDT", "OESZ": "OESZ", "HEPMX": "HEPMX", "WAST": "WAST", "WARST": "WARST", "HADT": "HADT", "PST": "PST", "OEZ": "OEZ", "AKST": "AKST", "VET": "VET", "HAT": "HAT", "CLT": "CLT", "CLST": "CLST", "HAST": "HAST", "EDT": "EDT", "CHADT": "CHADT", "COST": "COST", "HNPMX": "HNPMX", "IST": "IST", "WART": "WART", "GMT": "GMT", "∅∅∅": "∅∅∅", "EST": "EST", "AWDT": "AWDT", "LHST": "LHST", "ChST": "ChST", "TMST": "TMST", "HENOMX": "HENOMX", "EAT": "EAT", "CAT": "CAT", "JDT": "JDT", "HEEG": "HEEG", "AWST": "AWST", "MST": "MST", "AKDT": "AKDT", "GYT": "GYT", "ARST": "ARST", "HNOG": "HNOG", "HKST": "HKST", "HNEG": "HNEG", "SGT": "SGT"},
++ timezones: map[string]string{"CAT": "CAT", "ADT": "ADT", "ChST": "ChST", "HNNOMX": "HNNOMX", "MEZ": "MEZ", "ACST": "ACST", "CHADT": "CHADT", "BOT": "BOT", "PDT": "PDT", "HNCU": "HNCU", "WESZ": "WESZ", "HKT": "HKT", "CST": "CST", "HNEG": "HNEG", "HEOG": "HEOG", "GMT": "GMT", "JST": "JST", "AWDT": "AWDT", "BT": "BT", "CLST": "CLST", "ECT": "ECT", "MDT": "MDT", "HENOMX": "HENOMX", "UYST": "UYST", "HECU": "HECU", "WART": "WART", "NZDT": "NZDT", "HAST": "HAST", "MESZ": "MESZ", "LHST": "LHST", "CHAST": "CHAST", "PST": "PST", "WEZ": "WEZ", "AKST": "AKST", "SRT": "SRT", "COST": "COST", "∅∅∅": "∅∅∅", "JDT": "JDT", "AWST": "AWST", "WAT": "WAT", "HNT": "HNT", "HAT": "HAT", "HKST": "HKST", "WITA": "WITA", "NZST": "NZST", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "SGT": "SGT", "MYT": "MYT", "AEDT": "AEDT", "AKDT": "AKDT", "GFT": "GFT", "WARST": "WARST", "TMT": "TMT", "WIB": "WIB", "AEST": "AEST", "IST": "IST", "OEZ": "OEZ", "TMST": "TMST", "AST": "AST", "ACDT": "ACDT", "HNPM": "HNPM", "WAST": "WAST", "WIT": "WIT", "HADT": "HADT", "HEEG": "HEEG", "GYT": "GYT", "EDT": "EDT", "MST": "MST", "ART": "ART", "EAT": "EAT", "HEPMX": "HEPMX", "VET": "VET", "OESZ": "OESZ", "SAST": "SAST", "COT": "COT", "EST": "EST", "HEPM": "HEPM", "CLT": "CLT", "CDT": "CDT", "ARST": "ARST", "LHDT": "LHDT", "ACWST": "ACWST", "UYT": "UYT", "HNOG": "HNOG"},
+ }
+ }
+ 
+diff --git a/xog_UG/xog_UG.go b/xog_UG/xog_UG.go
+index 1c064d8..4be8ed2 100644
+--- a/xog_UG/xog_UG.go
++++ b/xog_UG/xog_UG.go
+@@ -10,60 +10,45 @@ import (
+ )
+ 
+ type xog_UG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'xog_UG' locale
+ func New() locales.Translator {
+ return &xog_UG{
+- locale: "xog_UG",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativeSuffix: " ",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mar", "Apu", "Maa", "Juu", "Jul", "Agu", "Seb", "Oki", "Nov", "Des"},
+- monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "Janwaliyo", "Febwaliyo", "Marisi", "Apuli", "Maayi", "Juuni", "Julaayi", "Agusito", "Sebuttemba", "Okitobba", "Novemba", "Desemba"},
+- daysAbbreviated: []string{"Sabi", "Bala", "Kubi", "Kusa", "Kuna", "Kuta", "Muka"},
+- daysNarrow: []string{"S", "B", "B", "S", "K", "K", "M"},
+- daysWide: []string{"Sabiiti", "Balaza", "Owokubili", "Owokusatu", "Olokuna", "Olokutaanu", "Olomukaaga"},
+- periodsAbbreviated: []string{"Munkyo", "Eigulo"},
+- periodsWide: []string{"Munkyo", "Eigulo"},
+- erasAbbreviated: []string{"AZ", "AF"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Kulisto nga azilawo", "Kulisto nga affile"},
+- timezones: map[string]string{"WAST": "WAST", "HAT": "HAT", "MESZ": "MESZ", "JST": "JST", "TMT": "TMT", "OESZ": "OESZ", "ChST": "ChST", "MST": "MST", "AWDT": "AWDT", "LHDT": "LHDT", "ACST": "ACST", "WARST": "WARST", "CDT": "CDT", "UYT": "UYT", "ACWDT": "ACWDT", "ECT": "ECT", "HNNOMX": "HNNOMX", "SGT": "SGT", "HNCU": "HNCU", "AST": "AST", "GYT": "GYT", "AEST": "AEST", "HKST": "HKST", "HNPM": "HNPM", "MEZ": "MEZ", "LHST": "LHST", "BOT": "BOT", "EDT": "EDT", "AKDT": "AKDT", "AWST": "AWST", "CHADT": "CHADT", "GFT": "GFT", "WAT": "WAT", "OEZ": "OEZ", "WART": "WART", "MDT": "MDT", "HADT": "HADT", "ARST": "ARST", "CAT": "CAT", "COT": "COT", "CLST": "CLST", "HENOMX": "HENOMX", "AKST": "AKST", "BT": "BT", "WEZ": "WEZ", "HEOG": "HEOG", "ACDT": "ACDT", "∅∅∅": "∅∅∅", "COST": "COST", "GMT": "GMT", "SRT": "SRT", "HKT": "HKT", "CLT": "CLT", "EST": "EST", "WIB": "WIB", "HAST": "HAST", "TMST": "TMST", "MYT": "MYT", "WIT": "WIT", "ACWST": "ACWST", "NZST": "NZST", "HNPMX": "HNPMX", "CST": "CST", "WESZ": "WESZ", "ART": "ART", "CHAST": "CHAST", "ADT": "ADT", "VET": "VET", "PST": "PST", "PDT": "PDT", "HNOG": "HNOG", "AEDT": "AEDT", "IST": "IST", "HNEG": "HNEG", "HEEG": "HEEG", "EAT": "EAT", "HEPMX": "HEPMX", "UYST": "UYST", "HNT": "HNT", "WITA": "WITA", "HEPM": "HEPM", "SAST": "SAST", "JDT": "JDT", "HECU": "HECU", "NZDT": "NZDT"},
++ locale: "xog_UG",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNNOMX": "HNNOMX", "UYST": "UYST", "∅∅∅": "∅∅∅", "ChST": "ChST", "AKDT": "AKDT", "HEOG": "HEOG", "NZST": "NZST", "NZDT": "NZDT", "CDT": "CDT", "CHAST": "CHAST", "HNT": "HNT", "CLT": "CLT", "HENOMX": "HENOMX", "MEZ": "MEZ", "ACDT": "ACDT", "HEPM": "HEPM", "AWST": "AWST", "MST": "MST", "GMT": "GMT", "HADT": "HADT", "UYT": "UYT", "PST": "PST", "PDT": "PDT", "EDT": "EDT", "MDT": "MDT", "AKST": "AKST", "HAT": "HAT", "GYT": "GYT", "HEEG": "HEEG", "ACST": "ACST", "ACWDT": "ACWDT", "VET": "VET", "HEPMX": "HEPMX", "ART": "ART", "BOT": "BOT", "CAT": "CAT", "WITA": "WITA", "HNCU": "HNCU", "GFT": "GFT", "WARST": "WARST", "HNOG": "HNOG", "TMST": "TMST", "MESZ": "MESZ", "ACWST": "ACWST", "ECT": "ECT", "HKT": "HKT", "HKST": "HKST", "EAT": "EAT", "AEST": "AEST", "CHADT": "CHADT", "WAT": "WAT", "WAST": "WAST", "COST": "COST", "HNEG": "HNEG", "LHST": "LHST", "LHDT": "LHDT", "AEDT": "AEDT", "WART": "WART", "HNPM": "HNPM", "JST": "JST", "HNPMX": "HNPMX", "WESZ": "WESZ", "ARST": "ARST", "AST": "AST", "SRT": "SRT", "MYT": "MYT", "HECU": "HECU", "SAST": "SAST", "EST": "EST", "WIB": "WIB", "AWDT": "AWDT", "IST": "IST", "OESZ": "OESZ", "HAST": "HAST", "JDT": "JDT", "OEZ": "OEZ", "CST": "CST", "WIT": "WIT", "TMT": "TMT", "CLST": "CLST", "ADT": "ADT", "BT": "BT", "WEZ": "WEZ", "SGT": "SGT", "COT": "COT"},
+ }
+ }
+ 
+@@ -116,7 +101,7 @@ func (xog *xog_UG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (xog *xog_UG) MonthsAbbreviated() []string {
+- return xog.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -126,7 +111,7 @@ func (xog *xog_UG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (xog *xog_UG) MonthsNarrow() []string {
+- return xog.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -136,7 +121,7 @@ func (xog *xog_UG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (xog *xog_UG) MonthsWide() []string {
+- return xog.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -196,56 +181,7 @@ func (xog *xog_UG) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := xog.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, xog.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, xog.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, xog.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, xog.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, xog.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'xog_UG'
+@@ -254,63 +190,7 @@ func (xog *xog_UG) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := xog.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 0*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, xog.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, xog.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, xog.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, xog.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, xog.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, xog.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'xog_UG'
+@@ -318,27 +198,6 @@ func (xog *xog_UG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -347,17 +206,6 @@ func (xog *xog_UG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, xog.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -366,17 +214,6 @@ func (xog *xog_UG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, xog.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -385,19 +222,6 @@ func (xog *xog_UG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, xog.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, xog.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -406,19 +230,6 @@ func (xog *xog_UG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, xog.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -427,26 +238,6 @@ func (xog *xog_UG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, xog.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, xog.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -455,30 +246,6 @@ func (xog *xog_UG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, xog.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, xog.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -487,34 +254,5 @@ func (xog *xog_UG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, xog.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, xog.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := xog.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/yav/yav.go b/yav/yav.go
+index f59175c..33643d6 100644
+--- a/yav/yav.go
++++ b/yav/yav.go
+@@ -66,7 +66,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"k.Y.", "+J.C."},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"katikupíen Yésuse", "ékélémkúnupíén n"},
+- timezones: map[string]string{"ECT": "ECT", "WART": "WART", "COT": "COT", "AKST": "AKST", "PDT": "PDT", "WEZ": "WEZ", "LHST": "LHST", "JDT": "JDT", "AWST": "AWST", "AWDT": "AWDT", "ACDT": "ACDT", "CLT": "CLT", "HEEG": "HEEG", "TMST": "TMST", "HADT": "HADT", "WESZ": "WESZ", "MEZ": "MEZ", "SAST": "SAST", "WAST": "WAST", "HNNOMX": "HNNOMX", "MST": "MST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "GYT": "GYT", "HNPM": "HNPM", "HEPM": "HEPM", "SRT": "SRT", "AEDT": "AEDT", "HNOG": "HNOG", "HKT": "HKT", "ACST": "ACST", "HNCU": "HNCU", "WAT": "WAT", "WARST": "WARST", "MDT": "MDT", "UYT": "UYT", "HAST": "HAST", "HEOG": "HEOG", "NZDT": "NZDT", "CHAST": "CHAST", "EST": "EST", "NZST": "NZST", "ChST": "ChST", "GFT": "GFT", "OEZ": "OEZ", "OESZ": "OESZ", "HKST": "HKST", "LHDT": "LHDT", "CLST": "CLST", "GMT": "GMT", "SGT": "SGT", "UYST": "UYST", "AST": "AST", "WIT": "WIT", "ACWST": "ACWST", "CAT": "CAT", "EAT": "EAT", "HNT": "HNT", "WITA": "WITA", "VET": "VET", "HECU": "HECU", "ADT": "ADT", "MYT": "MYT", "CST": "CST", "CDT": "CDT", "ARST": "ARST", "IST": "IST", "JST": "JST", "AKDT": "AKDT", "BT": "BT", "HAT": "HAT", "AEST": "AEST", "CHADT": "CHADT", "HENOMX": "HENOMX", "COST": "COST", "HNEG": "HNEG", "TMT": "TMT", "ART": "ART", "BOT": "BOT", "WIB": "WIB", "EDT": "EDT", "PST": "PST", "ACWDT": "ACWDT", "MESZ": "MESZ", "∅∅∅": "∅∅∅"},
++ timezones: map[string]string{"SRT": "SRT", "ACST": "ACST", "WEZ": "WEZ", "HNCU": "HNCU", "HEPMX": "HEPMX", "WART": "WART", "ADT": "ADT", "AST": "AST", "HKST": "HKST", "CAT": "CAT", "TMT": "TMT", "HEEG": "HEEG", "UYST": "UYST", "VET": "VET", "OESZ": "OESZ", "HKT": "HKT", "MEZ": "MEZ", "CHAST": "CHAST", "HECU": "HECU", "HEOG": "HEOG", "∅∅∅": "∅∅∅", "ARST": "ARST", "HENOMX": "HENOMX", "JDT": "JDT", "PST": "PST", "NZDT": "NZDT", "GMT": "GMT", "CDT": "CDT", "MST": "MST", "HADT": "HADT", "UYT": "UYT", "PDT": "PDT", "AEDT": "AEDT", "WIT": "WIT", "SAST": "SAST", "ART": "ART", "HNEG": "HNEG", "AWDT": "AWDT", "HNPM": "HNPM", "WAST": "WAST", "ChST": "ChST", "COST": "COST", "ECT": "ECT", "WIB": "WIB", "BOT": "BOT", "ACWST": "ACWST", "SGT": "SGT", "OEZ": "OEZ", "WARST": "WARST", "AEST": "AEST", "HNPMX": "HNPMX", "WAT": "WAT", "HNNOMX": "HNNOMX", "HNT": "HNT", "JST": "JST", "HEPM": "HEPM", "CHADT": "CHADT", "WESZ": "WESZ", "COT": "COT", "HNOG": "HNOG", "MDT": "MDT", "NZST": "NZST", "LHST": "LHST", "ACWDT": "ACWDT", "EDT": "EDT", "CLT": "CLT", "EST": "EST", "TMST": "TMST", "CST": "CST", "MESZ": "MESZ", "AWST": "AWST", "AKDT": "AKDT", "HAT": "HAT", "ACDT": "ACDT", "IST": "IST", "GFT": "GFT", "EAT": "EAT", "HAST": "HAST", "LHDT": "LHDT", "MYT": "MYT", "CLST": "CLST", "WITA": "WITA", "BT": "BT", "AKST": "AKST", "GYT": "GYT"},
+ }
+ }
+ 
+diff --git a/yav_CM/yav_CM.go b/yav_CM/yav_CM.go
+index 08bab37..e9b0397 100644
+--- a/yav_CM/yav_CM.go
++++ b/yav_CM/yav_CM.go
+@@ -10,63 +10,45 @@ import (
+ )
+ 
+ type yav_CM struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'yav_CM' locale
+ func New() locales.Translator {
+ return &yav_CM{
+- locale: "yav_CM",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- timeSeparator: ":",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositiveSuffix: " ",
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: " )",
+- monthsAbbreviated: []string{"", "o.1", "o.2", "o.3", "o.4", "o.5", "o.6", "o.7", "o.8", "o.9", "o.10", "o.11", "o.12"},
+- monthsWide: []string{"", "pikítíkítie, oólí ú kutúan", "siɛyɛ́, oóli ú kándíɛ", "ɔnsúmbɔl, oóli ú kátátúɛ", "mesiŋ, oóli ú kénie", "ensil, oóli ú kátánuɛ", "ɔsɔn", "efute", "pisuyú", "imɛŋ i puɔs", "imɛŋ i putúk,oóli ú kátíɛ", "makandikɛ", "pilɔndɔ́"},
+- daysAbbreviated: []string{"sd", "md", "mw", "et", "kl", "fl", "ss"},
+- daysNarrow: []string{"s", "m", "m", "e", "k", "f", "s"},
+- daysWide: []string{"sɔ́ndiɛ", "móndie", "muányáŋmóndie", "metúkpíápɛ", "kúpélimetúkpiapɛ", "feléte", "séselé"},
+- periodsAbbreviated: []string{"kiɛmɛ́ɛm", "kisɛ́ndɛ"},
+- periodsWide: []string{"kiɛmɛ́ɛm", "kisɛ́ndɛ"},
+- erasAbbreviated: []string{"k.Y.", "+J.C."},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"katikupíen Yésuse", "ékélémkúnupíén n"},
+- timezones: map[string]string{"WIB": "WIB", "HEOG": "HEOG", "CAT": "CAT", "WART": "WART", "MYT": "MYT", "GMT": "GMT", "CST": "CST", "CDT": "CDT", "WEZ": "WEZ", "NZST": "NZST", "OESZ": "OESZ", "ECT": "ECT", "COT": "COT", "JST": "JST", "EDT": "EDT", "AKST": "AKST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "UYT": "UYT", "ARST": "ARST", "MEZ": "MEZ", "ACST": "ACST", "ACDT": "ACDT", "COST": "COST", "JDT": "JDT", "PDT": "PDT", "CHADT": "CHADT", "PST": "PST", "AEST": "AEST", "CHAST": "CHAST", "IST": "IST", "HNEG": "HNEG", "WAST": "WAST", "HECU": "HECU", "HNOG": "HNOG", "SAST": "SAST", "ChST": "ChST", "HEEG": "HEEG", "TMST": "TMST", "HADT": "HADT", "HNT": "HNT", "NZDT": "NZDT", "HKT": "HKT", "HKST": "HKST", "LHST": "LHST", "WAT": "WAT", "MDT": "MDT", "ACWDT": "ACWDT", "AWDT": "AWDT", "WITA": "WITA", "CLT": "CLT", "SGT": "SGT", "HNCU": "HNCU", "AST": "AST", "LHDT": "LHDT", "MST": "MST", "AEDT": "AEDT", "AWST": "AWST", "HEPMX": "HEPMX", "ART": "ART", "HAT": "HAT", "TMT": "TMT", "WARST": "WARST", "HAST": "HAST", "SRT": "SRT", "HNPM": "HNPM", "OEZ": "OEZ", "UYST": "UYST", "AKDT": "AKDT", "BT": "BT", "WESZ": "WESZ", "BOT": "BOT", "GFT": "GFT", "ADT": "ADT", "VET": "VET", "WIT": "WIT", "CLST": "CLST", "HNPMX": "HNPMX", "GYT": "GYT", "HEPM": "HEPM", "ACWST": "ACWST", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "EAT": "EAT", "EST": "EST"},
++ locale: "yav_CM",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AKST": "AKST", "WAT": "WAT", "HAST": "HAST", "HKT": "HKT", "CLST": "CLST", "CHADT": "CHADT", "WESZ": "WESZ", "WEZ": "WEZ", "HEEG": "HEEG", "MESZ": "MESZ", "HNPM": "HNPM", "AWST": "AWST", "HNOG": "HNOG", "HEOG": "HEOG", "ART": "ART", "GFT": "GFT", "MST": "MST", "HADT": "HADT", "PDT": "PDT", "HNT": "HNT", "EST": "EST", "EDT": "EDT", "NZDT": "NZDT", "HEPM": "HEPM", "JST": "JST", "HNPMX": "HNPMX", "WAST": "WAST", "TMST": "TMST", "LHDT": "LHDT", "MYT": "MYT", "CLT": "CLT", "ECT": "ECT", "GMT": "GMT", "AST": "AST", "AKDT": "AKDT", "WARST": "WARST", "HAT": "HAT", "COST": "COST", "PST": "PST", "IST": "IST", "HEPMX": "HEPMX", "BOT": "BOT", "SRT": "SRT", "HENOMX": "HENOMX", "JDT": "JDT", "UYT": "UYT", "SGT": "SGT", "WIB": "WIB", "CDT": "CDT", "ACWST": "ACWST", "ACWDT": "ACWDT", "CHAST": "CHAST", "WIT": "WIT", "SAST": "SAST", "MDT": "MDT", "BT": "BT", "ChST": "ChST", "HNNOMX": "HNNOMX", "UYST": "UYST", "HECU": "HECU", "OEZ": "OEZ", "WITA": "WITA", "NZST": "NZST", "CST": "CST", "HNEG": "HNEG", "AEST": "AEST", "OESZ": "OESZ", "GYT": "GYT", "HKST": "HKST", "ARST": "ARST", "ACST": "ACST", "ACDT": "ACDT", "LHST": "LHST", "AWDT": "AWDT", "WART": "WART", "∅∅∅": "∅∅∅", "TMT": "TMT", "CAT": "CAT", "ADT": "ADT", "EAT": "EAT", "HNCU": "HNCU", "COT": "COT", "MEZ": "MEZ", "AEDT": "AEDT", "VET": "VET"},
+ }
+ }
+ 
+@@ -112,7 +94,7 @@ func (yav *yav_CM) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (yav *yav_CM) MonthsAbbreviated() []string {
+- return yav.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -132,7 +114,7 @@ func (yav *yav_CM) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (yav *yav_CM) MonthsWide() []string {
+- return yav.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -178,75 +160,13 @@ func (yav *yav_CM) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'yav_CM' and handles both Whole and Real numbers based on 'v'
+ func (yav *yav_CM) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yav.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(yav.group) - 1; j >= 0; j-- {
+- b = append(b, yav.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, yav.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'yav_CM' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (yav *yav_CM) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 1
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yav.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, yav.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, yav.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'yav_CM'
+@@ -254,58 +174,7 @@ func (yav *yav_CM) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := yav.currencies[currency]
+- l := len(s) + len(symbol) + 3 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yav.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(yav.group) - 1; j >= 0; j-- {
+- b = append(b, yav.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, yav.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, yav.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, yav.currencyPositiveSuffix...)
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'yav_CM'
+@@ -314,65 +183,7 @@ func (yav *yav_CM) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := yav.currencies[currency]
+- l := len(s) + len(symbol) + 5 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yav.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(yav.group) - 1; j >= 0; j-- {
+- b = append(b, yav.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, yav.currencyNegativePrefix[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, yav.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, yav.currencyNegativeSuffix...)
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, yav.currencyPositiveSuffix...)
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'yav_CM'
+@@ -380,17 +191,6 @@ func (yav *yav_CM) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -399,17 +199,6 @@ func (yav *yav_CM) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, yav.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -418,17 +207,6 @@ func (yav *yav_CM) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, yav.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -437,19 +215,6 @@ func (yav *yav_CM) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, yav.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, yav.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -458,19 +223,6 @@ func (yav *yav_CM) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, yav.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -479,26 +231,6 @@ func (yav *yav_CM) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, yav.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, yav.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -507,30 +239,6 @@ func (yav *yav_CM) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, yav.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, yav.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -539,34 +247,5 @@ func (yav *yav_CM) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, yav.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, yav.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := yav.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/yi/yi.go b/yi/yi.go
+index 44ac989..da8f599 100644
+--- a/yi/yi.go
++++ b/yi/yi.go
+@@ -69,7 +69,7 @@ func New() locales.Translator {
+ daysWide: []string{"זונטיק", "מאָנטיק", "דינסטיק", "מיטוואך", "דאנערשטיק", "פֿרײַטיק", "שבת"},
+ periodsAbbreviated: []string{"פֿאַרמיטאָג", "נאָכמיטאָג"},
+ periodsWide: []string{"פֿאַרמיטאָג", "נאָכמיטאָג"},
+- timezones: map[string]string{"HEEG": "HEEG", "EST": "EST", "AKST": "AKST", "WIB": "WIB", "HAT": "HAT", "HNEG": "HNEG", "JDT": "JDT", "BOT": "BOT", "EDT": "EDT", "HNPMX": "HNPMX", "HADT": "HADT", "ARST": "ARST", "HKST": "HKST", "JST": "JST", "TMT": "TMT", "WIT": "WIT", "SRT": "SRT", "ACWST": "ACWST", "AEDT": "AEDT", "AWDT": "AWDT", "CHADT": "CHADT", "IST": "IST", "OESZ": "OESZ", "WARST": "WARST", "MDT": "MDT", "CDT": "CDT", "HNT": "HNT", "MESZ": "MESZ", "GYT": "GYT", "HAST": "HAST", "HENOMX": "HENOMX", "MST": "MST", "UYT": "UYT", "UYST": "UYST", "AKDT": "AKDT", "AWST": "AWST", "WITA": "WITA", "CLST": "CLST", "WAT": "WAT", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "SGT": "SGT", "HNCU": "HNCU", "HECU": "HECU", "PDT": "PDT", "CST": "CST", "HNPM": "HNPM", "CLT": "CLT", "ACDT": "ACDT", "WEZ": "WEZ", "WESZ": "WESZ", "HNOG": "HNOG", "HEOG": "HEOG", "MEZ": "MEZ", "CAT": "CAT", "COT": "COT", "COST": "COST", "BT": "BT", "ART": "ART", "NZST": "NZST", "WAST": "WAST", "ECT": "ECT", "WART": "WART", "ADT": "ADT", "PST": "PST", "SAST": "SAST", "TMST": "TMST", "GMT": "GMT", "LHDT": "LHDT", "AST": "AST", "HKT": "HKT", "CHAST": "CHAST", "GFT": "GFT", "EAT": "EAT", "HEPMX": "HEPMX", "MYT": "MYT", "VET": "VET", "AEST": "AEST", "LHST": "LHST", "ACST": "ACST", "∅∅∅": "∅∅∅", "ACWDT": "ACWDT", "HEPM": "HEPM", "NZDT": "NZDT", "ChST": "ChST"},
++ timezones: map[string]string{"HEPMX": "HEPMX", "NZDT": "NZDT", "AWST": "AWST", "BT": "BT", "SGT": "SGT", "CST": "CST", "ACWST": "ACWST", "HNOG": "HNOG", "HKST": "HKST", "SAST": "SAST", "NZST": "NZST", "GMT": "GMT", "LHDT": "LHDT", "ACWDT": "ACWDT", "HNCU": "HNCU", "AKDT": "AKDT", "OESZ": "OESZ", "AWDT": "AWDT", "HNPM": "HNPM", "WEZ": "WEZ", "WESZ": "WESZ", "WARST": "WARST", "ECT": "ECT", "MDT": "MDT", "MESZ": "MESZ", "LHST": "LHST", "PDT": "PDT", "AEST": "AEST", "AKST": "AKST", "TMT": "TMT", "SRT": "SRT", "IST": "IST", "AEDT": "AEDT", "CHADT": "CHADT", "VET": "VET", "WAST": "WAST", "∅∅∅": "∅∅∅", "EST": "EST", "TMST": "TMST", "ACDT": "ACDT", "PST": "PST", "GFT": "GFT", "COT": "COT", "ACST": "ACST", "CHAST": "CHAST", "HEOG": "HEOG", "ARST": "ARST", "WIB": "WIB", "ADT": "ADT", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "COST": "COST", "CLT": "CLT", "EDT": "EDT", "HAST": "HAST", "OEZ": "OEZ", "WART": "WART", "AST": "AST", "ChST": "ChST", "UYST": "UYST", "GYT": "GYT", "CAT": "CAT", "BOT": "BOT", "HENOMX": "HENOMX", "HECU": "HECU", "HNPMX": "HNPMX", "WIT": "WIT", "CDT": "CDT", "HEPM": "HEPM", "JST": "JST", "JDT": "JDT", "ART": "ART", "MEZ": "MEZ", "EAT": "EAT", "HADT": "HADT", "HNEG": "HNEG", "WAT": "WAT", "HAT": "HAT", "CLST": "CLST", "WITA": "WITA", "MST": "MST", "MYT": "MYT", "UYT": "UYT", "HNT": "HNT", "HKT": "HKT"},
+ }
+ }
+ 
+diff --git a/yi_001/yi_001.go b/yi_001/yi_001.go
+index abeca58..efa145c 100644
+--- a/yi_001/yi_001.go
++++ b/yi_001/yi_001.go
+@@ -10,66 +10,45 @@ import (
+ )
+ 
+ type yi_001 struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyPositivePrefix string
+- currencyPositiveSuffix string
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'yi_001' locale
+ func New() locales.Translator {
+ return &yi_001{
+- locale: "yi_001",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyPositivePrefix: " ",
+- currencyPositiveSuffix: "K",
+- currencyNegativePrefix: " ",
+- currencyNegativeSuffix: "K",
+- monthsAbbreviated: []string{"", "יאַנואַר", "פֿעברואַר", "מערץ", "אַפּריל", "מיי", "יוני", "יולי", "אויגוסט", "סעפּטעמבער", "אקטאבער", "נאוועמבער", "דעצעמבער"},
+- monthsWide: []string{"", "יאַנואַר", "פֿעברואַר", "מערץ", "אַפּריל", "מיי", "יוני", "יולי", "אויגוסט", "סעפּטעמבער", "אקטאבער", "נאוועמבער", "דעצעמבער"},
+- daysAbbreviated: []string{"זונטיק", "מאָנטיק", "דינסטיק", "מיטוואך", "דאנערשטיק", "פֿרײַטיק", "שבת"},
+- daysShort: []string{"זונטיק", "מאָנטיק", "דינסטיק", "מיטוואך", "דאנערשטיק", "פֿרײַטיק", "שבת"},
+- daysWide: []string{"זונטיק", "מאָנטיק", "דינסטיק", "מיטוואך", "דאנערשטיק", "פֿרײַטיק", "שבת"},
+- periodsAbbreviated: []string{"פֿאַרמיטאָג", "נאָכמיטאָג"},
+- periodsWide: []string{"פֿאַרמיטאָג", "נאָכמיטאָג"},
+- timezones: map[string]string{"HKT": "HKT", "WITA": "WITA", "CLST": "CLST", "ChST": "ChST", "OEZ": "OEZ", "HECU": "HECU", "HNPMX": "HNPMX", "CST": "CST", "AST": "AST", "AWST": "AWST", "LHDT": "LHDT", "ACWDT": "ACWDT", "HAT": "HAT", "HEOG": "HEOG", "LHST": "LHST", "ART": "ART", "AWDT": "AWDT", "CHADT": "CHADT", "GMT": "GMT", "EDT": "EDT", "MST": "MST", "ADT": "ADT", "IST": "IST", "∅∅∅": "∅∅∅", "WART": "WART", "COT": "COT", "HNOG": "HNOG", "CHAST": "CHAST", "ACST": "ACST", "ACWST": "ACWST", "HNT": "HNT", "MEZ": "MEZ", "MESZ": "MESZ", "NZST": "NZST", "JST": "JST", "TMST": "TMST", "WAT": "WAT", "HADT": "HADT", "MDT": "MDT", "AKST": "AKST", "AKDT": "AKDT", "CDT": "CDT", "WIB": "WIB", "WIT": "WIT", "HNEG": "HNEG", "SGT": "SGT", "HAST": "HAST", "ARST": "ARST", "AEDT": "AEDT", "WAST": "WAST", "WARST": "WARST", "AEST": "AEST", "HKST": "HKST", "HNPM": "HNPM", "HEPM": "HEPM", "HEPMX": "HEPMX", "VET": "VET", "WEZ": "WEZ", "WESZ": "WESZ", "CLT": "CLT", "ACDT": "ACDT", "HEEG": "HEEG", "GFT": "GFT", "OESZ": "OESZ", "PST": "PST", "NZDT": "NZDT", "JDT": "JDT", "EAT": "EAT", "ECT": "ECT", "MYT": "MYT", "SRT": "SRT", "PDT": "PDT", "SAST": "SAST", "COST": "COST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HNCU": "HNCU", "GYT": "GYT", "UYT": "UYT", "UYST": "UYST", "BOT": "BOT", "TMT": "TMT", "CAT": "CAT", "EST": "EST", "BT": "BT"},
++ locale: "yi_001",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"SGT": "SGT", "WAST": "WAST", "WART": "WART", "EST": "EST", "HKT": "HKT", "CLST": "CLST", "LHST": "LHST", "COT": "COT", "CAT": "CAT", "AWST": "AWST", "ADT": "ADT", "HNEG": "HNEG", "HEPM": "HEPM", "CHAST": "CHAST", "HEPMX": "HEPMX", "OEZ": "OEZ", "SAST": "SAST", "NZDT": "NZDT", "HNPMX": "HNPMX", "AKST": "AKST", "MEZ": "MEZ", "WEZ": "WEZ", "WIT": "WIT", "HNOG": "HNOG", "GYT": "GYT", "TMST": "TMST", "HNPM": "HNPM", "CDT": "CDT", "GMT": "GMT", "AWDT": "AWDT", "ACWST": "ACWST", "IST": "IST", "HNCU": "HNCU", "HKST": "HKST", "ECT": "ECT", "NZST": "NZST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AEST": "AEST", "COST": "COST", "WIB": "WIB", "ART": "ART", "EAT": "EAT", "HADT": "HADT", "WESZ": "WESZ", "WARST": "WARST", "MDT": "MDT", "BOT": "BOT", "JST": "JST", "UYST": "UYST", "PST": "PST", "BT": "BT", "HAT": "HAT", "TMT": "TMT", "AST": "AST", "CLT": "CLT", "CST": "CST", "SRT": "SRT", "ACST": "ACST", "LHDT": "LHDT", "ACWDT": "ACWDT", "WITA": "WITA", "HEOG": "HEOG", "EDT": "EDT", "WAT": "WAT", "GFT": "GFT", "MST": "MST", "UYT": "UYT", "HECU": "HECU", "VET": "VET", "HNT": "HNT", "AEDT": "AEDT", "ChST": "ChST", "HEEG": "HEEG", "MYT": "MYT", "∅∅∅": "∅∅∅", "PDT": "PDT", "ARST": "ARST", "JDT": "JDT", "CHADT": "CHADT", "AKDT": "AKDT", "OESZ": "OESZ", "HAST": "HAST", "ACDT": "ACDT", "MESZ": "MESZ"},
+ }
+ }
+ 
+@@ -123,7 +102,7 @@ func (yi *yi_001) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (yi *yi_001) MonthsAbbreviated() []string {
+- return yi.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -143,7 +122,7 @@ func (yi *yi_001) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (yi *yi_001) MonthsWide() []string {
+- return yi.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -203,40 +182,7 @@ func (yi *yi_001) FmtCurrency(num float64, v uint64, currency currency.Type) str
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := yi.currencies[currency]
+- l := len(s) + len(symbol) + 5
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yi.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(yi.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, yi.currencyPositivePrefix[j])
+- }
+-
+- if num < 0 {
+- b = append(b, yi.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, yi.currencyPositiveSuffix...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'yi_001'
+@@ -245,57 +191,7 @@ func (yi *yi_001) FmtAccounting(num float64, v uint64, currency currency.Type) s
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := yi.currencies[currency]
+- l := len(s) + len(symbol) + 5
+-
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yi.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(yi.currencyNegativePrefix) - 1; j >= 0; j-- {
+- b = append(b, yi.currencyNegativePrefix[j])
+- }
+-
+- b = append(b, yi.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- for j := len(yi.currencyPositivePrefix) - 1; j >= 0; j-- {
+- b = append(b, yi.currencyPositivePrefix[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if num < 0 {
+- b = append(b, yi.currencyNegativeSuffix...)
+- } else {
+-
+- b = append(b, yi.currencyPositiveSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'yi_001'
+@@ -303,27 +199,6 @@ func (yi *yi_001) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -332,17 +207,6 @@ func (yi *yi_001) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xd7, 0x98, 0xd7, 0x9f, 0x20}...)
+- b = append(b, yi.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -351,17 +215,6 @@ func (yi *yi_001) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xd7, 0x98, 0xd7, 0x9f, 0x20}...)
+- b = append(b, yi.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -370,19 +223,6 @@ func (yi *yi_001) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, yi.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xd7, 0x98, 0xd7, 0x9f, 0x20}...)
+- b = append(b, yi.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -391,19 +231,6 @@ func (yi *yi_001) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, yi.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -412,26 +239,6 @@ func (yi *yi_001) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, yi.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, yi.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -440,30 +247,6 @@ func (yi *yi_001) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, yi.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, yi.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -472,34 +255,5 @@ func (yi *yi_001) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, yi.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, yi.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := yi.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/yo/yo.go b/yo/yo.go
+index bac72e8..ad213d2 100644
+--- a/yo/yo.go
++++ b/yo/yo.go
+@@ -70,7 +70,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"", ""},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"Saju Kristi", "Lehin Kristi"},
+- timezones: map[string]string{"HEEG": "HEEG", "ACST": "ACST", "ADT": "ADT", "WITA": "WITA", "SAST": "SAST", "JDT": "JDT", "HNCU": "HNCU", "EST": "EST", "HNPMX": "HNPMX", "ART": "ART", "HKT": "HKT", "HEPM": "HEPM", "MESZ": "MESZ", "LHDT": "LHDT", "CLST": "CLST", "AEST": "AEST", "HNPM": "HNPM", "VET": "VET", "EAT": "EAT", "WAT": "WAT", "TMT": "TMT", "ACDT": "ACDT", "HEPMX": "HEPMX", "AKDT": "AKDT", "PST": "PST", "ChST": "ChST", "HNEG": "HNEG", "SGT": "SGT", "WEZ": "WEZ", "HNOG": "HNOG", "HKST": "HKST", "OEZ": "OEZ", "WIB": "WIB", "BT": "BT", "HNT": "HNT", "ARST": "ARST", "AEDT": "AEDT", "WAST": "WAST", "HAST": "HAST", "ACWDT": "ACWDT", "HEOG": "HEOG", "BOT": "BOT", "UYT": "UYT", "GYT": "GYT", "WIT": "WIT", "HENOMX": "HENOMX", "MDT": "MDT", "CAT": "CAT", "WART": "WART", "COST": "COST", "MEZ": "MEZ", "CLT": "CLT", "AST": "AST", "∅∅∅": "∅∅∅", "COT": "COT", "ECT": "ECT", "WARST": "WARST", "EDT": "EDT", "UYST": "UYST", "CST": "CST", "ACWST": "ACWST", "CHADT": "CHADT", "OESZ": "OESZ", "IST": "IST", "GFT": "GFT", "AWST": "AWST", "NZDT": "NZDT", "MST": "MST", "AKST": "AKST", "CDT": "CDT", "WESZ": "WESZ", "JST": "JST", "HECU": "HECU", "CHAST": "CHAST", "TMST": "TMST", "MYT": "MYT", "HADT": "HADT", "SRT": "SRT", "HAT": "HAT", "AWDT": "AWDT", "NZST": "NZST", "GMT": "GMT", "PDT": "PDT", "LHST": "LHST", "HNNOMX": "HNNOMX"},
++ timezones: map[string]string{"HADT": "HADT", "AWDT": "AWDT", "ACWST": "ACWST", "UYST": "UYST", "WEZ": "WEZ", "WAST": "WAST", "MYT": "MYT", "ACWDT": "ACWDT", "COT": "COT", "EAT": "EAT", "CHAST": "CHAST", "WESZ": "WESZ", "AKST": "AKST", "AKDT": "AKDT", "JDT": "JDT", "HECU": "HECU", "HNPMX": "HNPMX", "OEZ": "OEZ", "OESZ": "OESZ", "HKT": "HKT", "ART": "ART", "BOT": "BOT", "SRT": "SRT", "HNEG": "HNEG", "AEDT": "AEDT", "PST": "PST", "TMST": "TMST", "ARST": "ARST", "HENOMX": "HENOMX", "AWST": "AWST", "GYT": "GYT", "EDT": "EDT", "TMT": "TMT", "HEPM": "HEPM", "MESZ": "MESZ", "HNPM": "HNPM", "UYT": "UYT", "IST": "IST", "CAT": "CAT", "MEZ": "MEZ", "ACST": "ACST", "ACDT": "ACDT", "LHST": "LHST", "VET": "VET", "WIT": "WIT", "HEOG": "HEOG", "WARST": "WARST", "WITA": "WITA", "MST": "MST", "ChST": "ChST", "HEEG": "HEEG", "JST": "JST", "LHDT": "LHDT", "HNCU": "HNCU", "WIB": "WIB", "MDT": "MDT", "SGT": "SGT", "HNT": "HNT", "HAT": "HAT", "SAST": "SAST", "GMT": "GMT", "PDT": "PDT", "CLST": "CLST", "HNOG": "HNOG", "ECT": "ECT", "NZDT": "NZDT", "ADT": "ADT", "HNNOMX": "HNNOMX", "CHADT": "CHADT", "BT": "BT", "WAT": "WAT", "COST": "COST", "CLT": "CLT", "CST": "CST", "NZST": "NZST", "HKST": "HKST", "AEST": "AEST", "∅∅∅": "∅∅∅", "HEPMX": "HEPMX", "CDT": "CDT", "AST": "AST", "HAST": "HAST", "GFT": "GFT", "WART": "WART", "EST": "EST"},
+ }
+ }
+ 
+diff --git a/yo_BJ/yo_BJ.go b/yo_BJ/yo_BJ.go
+index 536e8ee..6b00d4c 100644
+--- a/yo_BJ/yo_BJ.go
++++ b/yo_BJ/yo_BJ.go
+@@ -10,67 +10,53 @@ import (
+ )
+ 
+ type yo_BJ struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'yo_BJ' locale
+ func New() locales.Translator {
+ return &yo_BJ{
+- locale: "yo_BJ",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Shɛ́rɛ́", "Èrèlè", "Ɛrɛ̀nà", "Ìgbé", "Ɛ̀bibi", "Òkúdu", "Agɛmɔ", "Ògún", "Owewe", "Ɔ̀wàrà", "Bélú", "Ɔ̀pɛ̀"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "Oshù Shɛ́rɛ́", "Oshù Èrèlè", "Oshù Ɛrɛ̀nà", "Oshù Ìgbé", "Oshù Ɛ̀bibi", "Oshù Òkúdu", "Oshù Agɛmɔ", "Oshù Ògún", "Oshù Owewe", "Oshù Ɔ̀wàrà", "Oshù Bélú", "Oshù Ɔ̀pɛ̀"},
+- daysAbbreviated: []string{"Àìkú", "Ajé", "Ìsɛ́gun", "Ɔjɔ́rú", "Ɔjɔ́bɔ", "Ɛtì", "Àbámɛ́ta"},
+- daysShort: []string{"Àìkú", "Ajé", "Ìsɛ́gun", "Ɔjɔ́rú", "Ɔjɔ́bɔ", "Ɛtì", "Àbámɛ́ta"},
+- daysWide: []string{"Ɔjɔ́ Àìkú", "Ɔjɔ́ Ajé", "Ɔjɔ́ Ìsɛ́gun", "Ɔjɔ́rú", "Ɔjɔ́bɔ", "Ɔjɔ́ Ɛtì", "Ɔjɔ́ Àbámɛ́ta"},
+- periodsAbbreviated: []string{"Àárɔ̀", "Ɔ̀sán"},
+- periodsNarrow: []string{"Àárɔ̀", "Ɔ̀sán"},
+- periodsWide: []string{"Àárɔ̀", "Ɔ̀sán"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Saju Kristi", "Lehin Kristi"},
+- timezones: map[string]string{"WIB": "WIB", "ACWST": "ACWST", "CHADT": "CHADT", "JDT": "JDT", "MEZ": "MEZ", "LHST": "LHST", "TMT": "TMT", "AKDT": "AKDT", "HADT": "HADT", "BT": "BT", "PST": "PST", "AEST": "AEST", "HAST": "HAST", "WIT": "WIT", "ART": "ART", "EAT": "EAT", "HKST": "HKST", "MESZ": "MESZ", "HEEG": "HEEG", "WAST": "WAST", "HNCU": "HNCU", "WEZ": "WEZ", "LHDT": "LHDT", "CLST": "CLST", "OESZ": "OESZ", "WARST": "WARST", "MYT": "MYT", "HNT": "HNT", "SAST": "SAST", "BOT": "BOT", "OEZ": "OEZ", "UYST": "UYST", "CST": "CST", "HNEG": "HNEG", "GFT": "GFT", "SGT": "SGT", "HNOG": "HNOG", "ChST": "ChST", "MST": "MST", "SRT": "SRT", "HAT": "HAT", "TMST": "TMST", "ECT": "ECT", "HNNOMX": "HNNOMX", "ADT": "ADT", "HKT": "HKT", "HNPM": "HNPM", "HEPM": "HEPM", "CAT": "CAT", "CLT": "CLT", "∅∅∅": "∅∅∅", "COT": "COT", "CDT": "CDT", "VET": "VET", "WESZ": "WESZ", "ACWDT": "ACWDT", "HEOG": "HEOG", "GMT": "GMT", "HNPMX": "HNPMX", "AST": "AST", "AWST": "AWST", "CHAST": "CHAST", "EST": "EST", "MDT": "MDT", "ARST": "ARST", "HECU": "HECU", "WAT": "WAT", "WART": "WART", "COST": "COST", "AKST": "AKST", "WITA": "WITA", "NZST": "NZST", "NZDT": "NZDT", "ACDT": "ACDT", "HEPMX": "HEPMX", "GYT": "GYT", "JST": "JST", "EDT": "EDT", "ACST": "ACST", "HENOMX": "HENOMX", "UYT": "UYT", "PDT": "PDT", "AEDT": "AEDT", "AWDT": "AWDT", "IST": "IST"},
++ locale: "yo_BJ",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ monthsAbbreviated: []string{"", "Shɛ́rɛ́", "Èrèlè", "Ɛrɛ̀nà", "Ìgbé", "Ɛ̀bibi", "Òkúdu", "Agɛmɔ", "Ògún", "Owewe", "Ɔ̀wàrà", "Bélú", "Ɔ̀pɛ̀"},
++ monthsWide: []string{"", "Oshù Shɛ́rɛ́", "Oshù Èrèlè", "Oshù Ɛrɛ̀nà", "Oshù Ìgbé", "Oshù Ɛ̀bibi", "Oshù Òkúdu", "Oshù Agɛmɔ", "Oshù Ògún", "Oshù Owewe", "Oshù Ɔ̀wàrà", "Oshù Bélú", "Oshù Ɔ̀pɛ̀"},
++ daysAbbreviated: []string{"Àìkú", "Ajé", "Ìsɛ́gun", "Ɔjɔ́rú", "Ɔjɔ́bɔ", "Ɛtì", "Àbámɛ́ta"},
++ daysShort: []string{"Àìkú", "Ajé", "Ìsɛ́gun", "Ɔjɔ́rú", "Ɔjɔ́bɔ", "Ɛtì", "Àbámɛ́ta"},
++ daysWide: []string{"Ɔjɔ́ Àìkú", "Ɔjɔ́ Ajé", "Ɔjɔ́ Ìsɛ́gun", "Ɔjɔ́rú", "Ɔjɔ́bɔ", "Ɔjɔ́ Ɛtì", "Ɔjɔ́ Àbámɛ́ta"},
++ periodsAbbreviated: []string{"Àárɔ̀", "Ɔ̀sán"},
++ periodsNarrow: []string{"Àárɔ̀", "Ɔ̀sán"},
++ periodsWide: []string{"Àárɔ̀", "Ɔ̀sán"},
++ timezones: map[string]string{"HECU": "HECU", "WARST": "WARST", "COT": "COT", "EDT": "EDT", "MESZ": "MESZ", "ARST": "ARST", "ACDT": "ACDT", "AWST": "AWST", "AEDT": "AEDT", "BT": "BT", "VET": "VET", "WAT": "WAT", "GMT": "GMT", "ECT": "ECT", "JST": "JST", "MYT": "MYT", "WEZ": "WEZ", "HNT": "HNT", "MEZ": "MEZ", "JDT": "JDT", "UYST": "UYST", "IST": "IST", "HNCU": "HNCU", "AKDT": "AKDT", "OESZ": "OESZ", "WITA": "WITA", "HAST": "HAST", "HNPM": "HNPM", "ACWDT": "ACWDT", "HAT": "HAT", "EST": "EST", "ChST": "ChST", "HADT": "HADT", "HEPM": "HEPM", "CHAST": "CHAST", "TMT": "TMT", "CDT": "CDT", "ADT": "ADT", "HNOG": "HNOG", "CLT": "CLT", "CLST": "CLST", "LHDT": "LHDT", "AWDT": "AWDT", "WIB": "WIB", "EAT": "EAT", "HNNOMX": "HNNOMX", "PST": "PST", "HEPMX": "HEPMX", "WESZ": "WESZ", "SGT": "SGT", "HKST": "HKST", "TMST": "TMST", "SRT": "SRT", "NZST": "NZST", "BOT": "BOT", "∅∅∅": "∅∅∅", "GFT": "GFT", "HEOG": "HEOG", "HKT": "HKT", "NZDT": "NZDT", "ART": "ART", "ACST": "ACST", "HNEG": "HNEG", "WART": "WART", "WIT": "WIT", "MST": "MST", "AEST": "AEST", "OEZ": "OEZ", "GYT": "GYT", "COST": "COST", "CST": "CST", "HENOMX": "HENOMX", "HEEG": "HEEG", "LHST": "LHST", "WAST": "WAST", "MDT": "MDT", "CHADT": "CHADT", "PDT": "PDT", "ACWST": "ACWST", "SAST": "SAST", "AST": "AST", "HNPMX": "HNPMX", "AKST": "AKST", "CAT": "CAT", "UYT": "UYT"},
+ }
+ }
+ 
+@@ -126,7 +112,7 @@ func (yo *yo_BJ) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (yo *yo_BJ) MonthsNarrow() []string {
+- return yo.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -182,73 +168,13 @@ func (yo *yo_BJ) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'yo_BJ' and handles both Whole and Real numbers based on 'v'
+ func (yo *yo_BJ) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, yo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, yo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'yo_BJ' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (yo *yo_BJ) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yo.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, yo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, yo.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'yo_BJ'
+@@ -256,56 +182,7 @@ func (yo *yo_BJ) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := yo.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, yo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, yo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, yo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'yo_BJ'
+@@ -314,68 +191,7 @@ func (yo *yo_BJ) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := yo.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, yo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, yo.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, yo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, yo.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'yo_BJ'
+@@ -383,27 +199,6 @@ func (yo *yo_BJ) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -412,17 +207,6 @@ func (yo *yo_BJ) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, yo.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,17 +215,6 @@ func (yo *yo_BJ) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, yo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -450,19 +223,6 @@ func (yo *yo_BJ) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, yo.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, yo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -471,19 +231,6 @@ func (yo *yo_BJ) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, yo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -492,26 +239,6 @@ func (yo *yo_BJ) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, yo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, yo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -520,30 +247,6 @@ func (yo *yo_BJ) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, yo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, yo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -552,34 +255,5 @@ func (yo *yo_BJ) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, yo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, yo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := yo.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/yo_NG/yo_NG.go b/yo_NG/yo_NG.go
+index ab9a276..b86c1c2 100644
+--- a/yo_NG/yo_NG.go
++++ b/yo_NG/yo_NG.go
+@@ -10,67 +10,45 @@ import (
+ )
+ 
+ type yo_NG struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'yo_NG' locale
+ func New() locales.Translator {
+ return &yo_NG{
+- locale: "yo_NG",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Ṣẹ́rẹ́", "Èrèlè", "Ẹrẹ̀nà", "Ìgbé", "Ẹ̀bibi", "Òkúdu", "Agẹmọ", "Ògún", "Owewe", "Ọ̀wàrà", "Bélú", "Ọ̀pẹ̀"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "Oṣù Ṣẹ́rẹ́", "Oṣù Èrèlè", "Oṣù Ẹrẹ̀nà", "Oṣù Ìgbé", "Oṣù Ẹ̀bibi", "Oṣù Òkúdu", "Oṣù Agẹmọ", "Oṣù Ògún", "Oṣù Owewe", "Oṣù Ọ̀wàrà", "Oṣù Bélú", "Oṣù Ọ̀pẹ̀"},
+- daysAbbreviated: []string{"Àìkú", "Ajé", "Ìsẹ́gun", "Ọjọ́rú", "Ọjọ́bọ", "Ẹtì", "Àbámẹ́ta"},
+- daysShort: []string{"Àìkú", "Ajé", "Ìsẹ́gun", "Ọjọ́rú", "Ọjọ́bọ", "Ẹtì", "Àbámẹ́ta"},
+- daysWide: []string{"Ọjọ́ Àìkú", "Ọjọ́ Ajé", "Ọjọ́ Ìsẹ́gun", "Ọjọ́rú", "Ọjọ́bọ", "Ọjọ́ Ẹtì", "Ọjọ́ Àbámẹ́ta"},
+- periodsAbbreviated: []string{"Àárọ̀", "Ọ̀sán"},
+- periodsNarrow: []string{"Àárọ̀", "Ọ̀sán"},
+- periodsWide: []string{"Àárọ̀", "Ọ̀sán"},
+- erasAbbreviated: []string{"", ""},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"Saju Kristi", "Lehin Kristi"},
+- timezones: map[string]string{"HNCU": "HNCU", "UYT": "UYT", "CST": "CST", "SRT": "SRT", "IST": "IST", "HNEG": "HNEG", "ACDT": "ACDT", "GMT": "GMT", "EST": "EST", "MDT": "MDT", "WESZ": "WESZ", "SAST": "SAST", "CLST": "CLST", "∅∅∅": "∅∅∅", "ChST": "ChST", "CHAST": "CHAST", "EAT": "EAT", "AKDT": "AKDT", "AST": "AST", "HNOG": "HNOG", "BOT": "BOT", "COT": "COT", "CDT": "CDT", "WIT": "WIT", "MYT": "MYT", "ACWST": "ACWST", "HNT": "HNT", "ARST": "ARST", "JST": "JST", "ACST": "ACST", "OEZ": "OEZ", "HEPMX": "HEPMX", "CAT": "CAT", "HECU": "HECU", "WIB": "WIB", "HADT": "HADT", "HAT": "HAT", "AEDT": "AEDT", "WAST": "WAST", "OESZ": "OESZ", "WEZ": "WEZ", "MST": "MST", "UYST": "UYST", "HEOG": "HEOG", "PST": "PST", "HKT": "HKT", "HNPM": "HNPM", "HEPM": "HEPM", "CHADT": "CHADT", "ADT": "ADT", "HAST": "HAST", "LHST": "LHST", "TMT": "TMT", "WARST": "WARST", "GYT": "GYT", "VET": "VET", "AEST": "AEST", "MEZ": "MEZ", "ECT": "ECT", "HENOMX": "HENOMX", "WAT": "WAT", "HNPMX": "HNPMX", "BT": "BT", "ART": "ART", "WITA": "WITA", "MESZ": "MESZ", "LHDT": "LHDT", "GFT": "GFT", "CLT": "CLT", "TMST": "TMST", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "SGT": "SGT", "AKST": "AKST", "NZDT": "NZDT", "JDT": "JDT", "HEEG": "HEEG", "COST": "COST", "AWST": "AWST", "NZST": "NZST", "PDT": "PDT", "AWDT": "AWDT", "HKST": "HKST", "WART": "WART", "EDT": "EDT"},
++ locale: "yo_NG",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"MEZ": "MEZ", "ACST": "ACST", "AEDT": "AEDT", "CHAST": "CHAST", "VET": "VET", "WART": "WART", "BOT": "BOT", "AWST": "AWST", "JDT": "JDT", "WARST": "WARST", "CLT": "CLT", "CLST": "CLST", "CST": "CST", "HENOMX": "HENOMX", "LHDT": "LHDT", "HAT": "HAT", "TMST": "TMST", "MDT": "MDT", "ChST": "ChST", "ART": "ART", "HEPMX": "HEPMX", "AKST": "AKST", "HNOG": "HNOG", "ACDT": "ACDT", "WEZ": "WEZ", "WAST": "WAST", "HADT": "HADT", "PST": "PST", "EDT": "EDT", "HKST": "HKST", "HNEG": "HNEG", "WESZ": "WESZ", "HNCU": "HNCU", "UYT": "UYT", "BT": "BT", "ACWDT": "ACWDT", "GFT": "GFT", "AWDT": "AWDT", "SRT": "SRT", "CHADT": "CHADT", "COT": "COT", "ARST": "ARST", "MST": "MST", "ECT": "ECT", "GMT": "GMT", "HNPM": "HNPM", "ACWST": "ACWST", "OEZ": "OEZ", "WIT": "WIT", "SAST": "SAST", "CAT": "CAT", "WIB": "WIB", "MESZ": "MESZ", "HNPMX": "HNPMX", "AKDT": "AKDT", "OESZ": "OESZ", "HEOG": "HEOG", "TMT": "TMT", "WITA": "WITA", "NZST": "NZST", "HEEG": "HEEG", "HECU": "HECU", "∅∅∅": "∅∅∅", "UYST": "UYST", "MYT": "MYT", "WAT": "WAT", "LHST": "LHST", "EAT": "EAT", "HEPM": "HEPM", "PDT": "PDT", "SGT": "SGT", "ADT": "ADT", "HAST": "HAST", "JST": "JST", "COST": "COST", "EST": "EST", "HKT": "HKT", "CDT": "CDT", "NZDT": "NZDT", "AST": "AST", "HNNOMX": "HNNOMX", "IST": "IST", "HNT": "HNT", "GYT": "GYT", "AEST": "AEST"},
+ }
+ }
+ 
+@@ -116,7 +94,7 @@ func (yo *yo_NG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (yo *yo_NG) MonthsAbbreviated() []string {
+- return yo.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -126,7 +104,7 @@ func (yo *yo_NG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (yo *yo_NG) MonthsNarrow() []string {
+- return yo.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -136,7 +114,7 @@ func (yo *yo_NG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (yo *yo_NG) MonthsWide() []string {
+- return yo.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -182,73 +160,13 @@ func (yo *yo_NG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'yo_NG' and handles both Whole and Real numbers based on 'v'
+ func (yo *yo_NG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, yo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, yo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'yo_NG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (yo *yo_NG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yo.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, yo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, yo.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'yo_NG'
+@@ -256,56 +174,7 @@ func (yo *yo_NG) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := yo.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, yo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, yo.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, yo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'yo_NG'
+@@ -314,68 +183,7 @@ func (yo *yo_NG) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := yo.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yo.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, yo.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, yo.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, yo.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, yo.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'yo_NG'
+@@ -383,27 +191,6 @@ func (yo *yo_NG) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Day() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Month() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+-
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -412,17 +199,6 @@ func (yo *yo_NG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, yo.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -431,17 +207,6 @@ func (yo *yo_NG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, yo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -450,19 +215,6 @@ func (yo *yo_NG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, yo.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, yo.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -471,19 +223,6 @@ func (yo *yo_NG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, yo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -492,26 +231,6 @@ func (yo *yo_NG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, yo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, yo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -520,30 +239,6 @@ func (yo *yo_NG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, yo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, yo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -552,34 +247,5 @@ func (yo *yo_NG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, yo.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, yo.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := yo.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/yue/yue.go b/yue/yue.go
+index 4f147bb..a9718cc 100644
+--- a/yue/yue.go
++++ b/yue/yue.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"西元前", "西元"},
+ erasNarrow: []string{"西元前", "西元"},
+ erasWide: []string{"西元前", "西元"},
+- timezones: map[string]string{"TMT": "土庫曼標準時間", "OEZ": "東歐標準時間", "HEPM": "聖皮埃爾和密克隆群島夏令時間", "HEPMX": "墨西哥太平洋夏令時間", "ART": "阿根廷標準時間", "HNOG": "格陵蘭西部標準時間", "WITA": "印尼中部時間", "HNPM": "聖皮埃爾和密克隆群島標準時間", "CHAST": "查坦群島標準時間", "CLST": "智利夏令時間", "EDT": "東部夏令時間", "AKST": "阿拉斯加標準時間", "ACWST": "澳洲中西部標準時間", "AWDT": "澳洲西部夏令時間", "ACST": "澳洲中部標準時間", "ACDT": "澳洲中部夏令時間", "WAST": "西非夏令時間", "SGT": "新加坡標準時間", "HNCU": "古巴標準時間", "PDT": "太平洋夏令時間", "BOT": "玻利維亞時間", "UYT": "烏拉圭標準時間", "GYT": "蓋亞那時間", "HNT": "紐芬蘭標準時間", "HAT": "紐芬蘭夏令時間", "HNPMX": "墨西哥太平洋標準時間", "ARST": "阿根廷夏令時間", "JDT": "日本夏令時間", "CAT": "中非時間", "GMT": "格林威治標準時間", "WIT": "印尼東部時間", "HKT": "香港標準時間", "MESZ": "中歐夏令時間", "HEEG": "格陵蘭東部夏令時間", "HNNOMX": "墨西哥西北部標準時間", "ACWDT": "澳洲中西部夏令時間", "ADT": "大西洋夏令時間", "MEZ": "中歐標準時間", "NZDT": "紐西蘭夏令時間", "CLT": "智利標準時間", "OESZ": "東歐夏令時間", "MST": "澳門標準時間", "AST": "大西洋標準時間", "NZST": "紐西蘭標準時間", "ChST": "查莫洛時間", "EAT": "東非時間", "CDT": "中部夏令時間", "AEDT": "澳洲東部夏令時間", "HADT": "夏威夷-阿留申夏令時間", "WEZ": "西歐標準時間", "LHDT": "豪勳爵島夏令時間", "CHADT": "查坦群島夏令時間", "JST": "日本標準時間", "AKDT": "阿拉斯加夏令時間", "MYT": "馬來西亞時間", "WIB": "印尼西部時間", "HEOG": "格陵蘭西部夏令時間", "AWST": "澳洲西部標準時間", "COT": "哥倫比亞標準時間", "HENOMX": "墨西哥西北部夏令時間", "MDT": "澳門夏令時間", "UYST": "烏拉圭夏令時間", "VET": "委內瑞拉時間", "BT": "不丹時間", "∅∅∅": "亞馬遜夏令時間", "HNEG": "格陵蘭東部標準時間", "WESZ": "西歐夏令時間", "AEST": "澳洲東部標準時間", "PST": "太平洋標準時間", "IST": "印度標準時間", "TMST": "土庫曼夏令時間", "ECT": "厄瓜多時間", "COST": "哥倫比亞夏令時間", "EST": "東部標準時間", "HAST": "夏威夷-阿留申標準時間", "HKST": "香港夏令時間", "LHST": "豪勳爵島標準時間", "SAST": "南非標準時間", "GFT": "法屬圭亞那時間", "WART": "阿根廷西部標準時間", "HECU": "古巴夏令時間", "SRT": "蘇利南時間", "WAT": "西非標準時間", "WARST": "阿根廷西部夏令時間", "CST": "中部標準時間"},
++ timezones: map[string]string{"NZDT": "紐西蘭夏令時間", "WIB": "印尼西部時間", "ADT": "大西洋夏令時間", "HNPMX": "墨西哥太平洋標準時間", "OESZ": "東歐夏令時間", "HNT": "紐芬蘭標準時間", "CLST": "智利夏令時間", "GMT": "格林威治標準時間", "IST": "印度標準時間", "AKST": "阿拉斯加標準時間", "WARST": "阿根廷西部夏令時間", "MESZ": "中歐夏令時間", "AWST": "澳洲西部標準時間", "MYT": "馬來西亞時間", "HEPM": "聖皮埃爾和密克隆群島夏令時間", "ACWST": "澳洲中西部標準時間", "UYT": "烏拉圭標準時間", "HNCU": "古巴標準時間", "WAT": "西非標準時間", "WIT": "印尼東部時間", "BOT": "玻利維亞時間", "WESZ": "西歐夏令時間", "VET": "委內瑞拉時間", "OEZ": "東歐標準時間", "SAST": "南非標準時間", "COT": "哥倫比亞標準時間", "EST": "東部標準時間", "ART": "阿根廷標準時間", "HAST": "夏威夷-阿留申標準時間", "HEEG": "格陵蘭東部夏令時間", "HNNOMX": "墨西哥西北部標準時間", "HAT": "紐芬蘭夏令時間", "CAT": "中非時間", "CST": "中部標準時間", "MST": "澳門標準時間", "ACWDT": "澳洲中西部夏令時間", "CHADT": "查坦群島夏令時間", "HEPMX": "墨西哥太平洋夏令時間", "HEOG": "格陵蘭西部夏令時間", "NZST": "紐西蘭標準時間", "SRT": "蘇利南時間", "ACDT": "澳洲中部夏令時間", "HENOMX": "墨西哥西北部夏令時間", "PST": "太平洋標準時間", "COST": "哥倫比亞夏令時間", "LHST": "豪勳爵島標準時間", "UYST": "烏拉圭夏令時間", "ChST": "查莫洛時間", "AWDT": "澳洲西部夏令時間", "WART": "阿根廷西部標準時間", "HNEG": "格陵蘭東部標準時間", "JST": "日本標準時間", "AEST": "澳洲東部標準時間", "CHAST": "查坦群島標準時間", "TMT": "土庫曼標準時間", "ARST": "阿根廷夏令時間", "HNPM": "聖皮埃爾和密克隆群島標準時間", "JDT": "日本夏令時間", "CLT": "智利標準時間", "LHDT": "豪勳爵島夏令時間", "AEDT": "澳洲東部夏令時間", "WAST": "西非夏令時間", "GFT": "法屬圭亞那時間", "GYT": "蓋亞那時間", "HKST": "香港夏令時間", "CDT": "中部夏令時間", "∅∅∅": "艾克夏令時間", "BT": "不丹時間", "SGT": "新加坡標準時間", "HECU": "古巴夏令時間", "EDT": "東部夏令時間", "HKT": "香港標準時間", "TMST": "土庫曼夏令時間", "ECT": "厄瓜多時間", "AST": "大西洋標準時間", "EAT": "東非時間", "ACST": "澳洲中部標準時間", "PDT": "太平洋夏令時間", "HNOG": "格陵蘭西部標準時間", "WITA": "印尼中部時間", "MDT": "澳門夏令時間", "HADT": "夏威夷-阿留申夏令時間", "MEZ": "中歐標準時間", "WEZ": "西歐標準時間", "AKDT": "阿拉斯加夏令時間"},
+ }
+ }
+ 
+diff --git a/yue_HK/yue_HK.go b/yue_HK/yue_HK.go
+index 9ee0ccf..55d7ffb 100644
+--- a/yue_HK/yue_HK.go
++++ b/yue_HK/yue_HK.go
+@@ -42,32 +42,13 @@ type yue_HK struct {
+ // New returns a new instance of translator for the 'yue_HK' locale
+ func New() locales.Translator {
+ return &yue_HK{
+- locale: "yue_HK",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"},
+- daysAbbreviated: []string{"週日", "週一", "週二", "週三", "週四", "週五", "週六"},
+- daysNarrow: []string{"日", "一", "二", "三", "四", "五", "六"},
+- daysShort: []string{"日", "一", "二", "三", "四", "五", "六"},
+- daysWide: []string{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"},
+- periodsAbbreviated: []string{"上午", "下午"},
+- periodsNarrow: []string{"上午", "下午"},
+- periodsWide: []string{"上午", "下午"},
+- erasAbbreviated: []string{"西元前", "西元"},
+- erasNarrow: []string{"西元前", "西元"},
+- erasWide: []string{"西元前", "西元"},
+- timezones: map[string]string{"MDT": "山區夏令時間", "HADT": "夏威夷-阿留申夏令時間", "GFT": "法屬圭亞那時間", "WART": "阿根廷西部標準時間", "UYST": "烏拉圭夏令時間", "BT": "不丹時間", "HEOG": "格陵蘭西部夏令時間", "CHADT": "查坦群島夏令時間", "HNEG": "格陵蘭東部標準時間", "EDT": "東部夏令時間", "WEZ": "西歐標準時間", "WESZ": "西歐夏令時間", "JST": "日本標準時間", "BOT": "玻利維亞時間", "HEEG": "格陵蘭東部夏令時間", "HECU": "古巴夏令時間", "∅∅∅": "亞馬遜夏令時間", "ART": "阿根廷標準時間", "ARST": "阿根廷夏令時間", "PDT": "太平洋夏令時間", "HNT": "紐芬蘭標準時間", "HAT": "紐芬蘭夏令時間", "HKST": "香港夏令時間", "NZST": "紐西蘭標準時間", "HNCU": "古巴標準時間", "HEPMX": "墨西哥太平洋夏令時間", "CST": "中部標準時間", "CDT": "中部夏令時間", "HNPM": "聖皮埃爾和密克隆群島標準時間", "SAST": "南非標準時間", "CLT": "智利標準時間", "TMT": "土庫曼標準時間", "AST": "大西洋標準時間", "HAST": "夏威夷-阿留申標準時間", "ACWDT": "澳洲中西部夏令時間", "OESZ": "東歐夏令時間", "COT": "哥倫比亞標準時間", "COST": "哥倫比亞夏令時間", "ADT": "大西洋夏令時間", "LHDT": "豪勳爵島夏令時間", "JDT": "日本夏令時間", "ECT": "厄瓜多時間", "HKT": "香港標準時間", "AKDT": "阿拉斯加夏令時間", "HNOG": "格陵蘭西部標準時間", "PST": "太平洋標準時間", "HEPM": "聖皮埃爾和密克隆群島夏令時間", "HENOMX": "墨西哥西北部夏令時間", "AEDT": "澳洲東部夏令時間", "MESZ": "中歐夏令時間", "EST": "東部標準時間", "GYT": "蓋亞那時間", "MYT": "馬來西亞時間", "IST": "印度標準時間", "TMST": "土庫曼夏令時間", "ChST": "查莫洛時間", "HNPMX": "墨西哥太平洋標準時間", "AKST": "阿拉斯加標準時間", "WIT": "印尼東部時間", "AWST": "澳洲西部標準時間", "MEZ": "中歐標準時間", "WAT": "西非標準時間", "WAST": "西非夏令時間", "OEZ": "東歐標準時間", "WIB": "印尼西部時間", "AWDT": "澳洲西部夏令時間", "HNNOMX": "墨西哥西北部標準時間", "SRT": "蘇利南時間", "CAT": "中非時間", "GMT": "格林威治標準時間", "WITA": "印尼中部時間", "EAT": "東非時間", "SGT": "新加坡標準時間", "CLST": "智利夏令時間", "MST": "山區標準時間", "VET": "委內瑞拉時間", "ACWST": "澳洲中西部標準時間", "AEST": "澳洲東部標準時間", "LHST": "豪勳爵島標準時間", "NZDT": "紐西蘭夏令時間", "CHAST": "查坦群島標準時間", "ACST": "澳洲中部標準時間", "ACDT": "澳洲中部夏令時間", "WARST": "阿根廷西部夏令時間", "UYT": "烏拉圭標準時間"},
++ locale: "yue_HK",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"AWST": "AWST", "AEST": "AEST", "EDT": "EDT", "HAST": "HAST", "HADT": "HADT", "HENOMX": "HENOMX", "LHDT": "LHDT", "CHAST": "CHAST", "COST": "COST", "GMT": "GMT", "ARST": "ARST", "ACST": "ACST", "ACDT": "ACDT", "HNEG": "HNEG", "CAT": "CAT", "MST": "MST", "NZST": "NZST", "ART": "ART", "HEEG": "HEEG", "CHADT": "CHADT", "WAT": "WAT", "BOT": "BOT", "EAT": "EAT", "MEZ": "MEZ", "ChST": "ChST", "SGT": "SGT", "HECU": "HECU", "SAST": "SAST", "TMT": "TMT", "CLST": "CLST", "AWDT": "AWDT", "MYT": "MYT", "JDT": "JDT", "WIB": "WIB", "ECT": "ECT", "WESZ": "WESZ", "HEOG": "HEOG", "MDT": "MDT", "AKST": "AKST", "COT": "COT", "HNPM": "HNPM", "∅∅∅": "∅∅∅", "WAST": "WAST", "WARST": "WARST", "WIT": "WIT", "GYT": "GYT", "MESZ": "MESZ", "PDT": "PDT", "HNCU": "HNCU", "HAT": "HAT", "WART": "WART", "HKT": "HKT", "HEPM": "HEPM", "IST": "IST", "VET": "VET", "OESZ": "OESZ", "NZDT": "NZDT", "SRT": "SRT", "AEDT": "AEDT", "EST": "EST", "CST": "CST", "AST": "AST", "ADT": "ADT", "JST": "JST", "BT": "BT", "ACWDT": "ACWDT", "TMST": "TMST", "HNPMX": "HNPMX", "GFT": "GFT", "HKST": "HKST", "AKDT": "AKDT", "CLT": "CLT", "CDT": "CDT", "UYST": "UYST", "PST": "PST", "HEPMX": "HEPMX", "LHST": "LHST", "UYT": "UYT", "HNOG": "HNOG", "OEZ": "OEZ", "HNT": "HNT", "WITA": "WITA", "HNNOMX": "HNNOMX", "ACWST": "ACWST", "WEZ": "WEZ"},
+ }
+ }
+ 
+@@ -113,7 +94,7 @@ func (yue *yue_HK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (yue *yue_HK) MonthsAbbreviated() []string {
+- return yue.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -123,7 +104,7 @@ func (yue *yue_HK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (yue *yue_HK) MonthsNarrow() []string {
+- return yue.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -133,7 +114,7 @@ func (yue *yue_HK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (yue *yue_HK) MonthsWide() []string {
+- return yue.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -179,73 +160,13 @@ func (yue *yue_HK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'yue_HK' and handles both Whole and Real numbers based on 'v'
+ func (yue *yue_HK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yue.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, yue.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, yue.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'yue_HK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (yue *yue_HK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yue.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, yue.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, yue.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'yue_HK'
+@@ -253,56 +174,7 @@ func (yue *yue_HK) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := yue.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yue.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, yue.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, yue.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, yue.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'yue_HK'
+@@ -311,64 +183,7 @@ func (yue *yue_HK) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := yue.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, yue.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, yue.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, yue.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, yue.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'yue_HK'
+@@ -376,17 +191,6 @@ func (yue *yue_HK) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -395,18 +199,6 @@ func (yue *yue_HK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -415,18 +207,6 @@ func (yue *yue_HK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -435,19 +215,6 @@ func (yue *yue_HK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5, 0x20}...)
+- b = append(b, yue.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -456,27 +223,6 @@ func (yue *yue_HK) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, yue.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, yue.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, yue.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -485,34 +231,6 @@ func (yue *yue_HK) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, yue.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, yue.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, yue.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, yue.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,40 +239,6 @@ func (yue *yue_HK) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, yue.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, yue.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, yue.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, yue.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x5b}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x5d}...)
+-
+ return string(b)
+ }
+ 
+@@ -563,44 +247,5 @@ func (yue *yue_HK) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, yue.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, yue.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, yue.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, yue.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20, 0x5b}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := yue.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x5d}...)
+-
+ return string(b)
+ }
+diff --git a/zgh/zgh.go b/zgh/zgh.go
+index 5810eb3..df16f11 100644
+--- a/zgh/zgh.go
++++ b/zgh/zgh.go
+@@ -69,7 +69,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"ⴷⴰⵄ", "ⴷⴼⵄ"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"ⴷⴰⵜ ⵏ ⵄⵉⵙⴰ", "ⴷⴼⴼⵉⵔ ⵏ ⵄⵉⵙⴰ"},
+- timezones: map[string]string{"ChST": "ChST", "HENOMX": "HENOMX", "GYT": "GYT", "ACWST": "ACWST", "HNT": "HNT", "ART": "ART", "HKST": "HKST", "LHDT": "LHDT", "WART": "WART", "SGT": "SGT", "UYT": "UYT", "HEPM": "HEPM", "CLT": "CLT", "TMT": "TMT", "ACST": "ACST", "HNPMX": "HNPMX", "MYT": "MYT", "ARST": "ARST", "HEOG": "HEOG", "JST": "JST", "WAT": "WAT", "LHST": "LHST", "HNEG": "HNEG", "COST": "COST", "HECU": "HECU", "CST": "CST", "CDT": "CDT", "VET": "VET", "NZST": "NZST", "CHAST": "CHAST", "HEEG": "HEEG", "ACDT": "ACDT", "∅∅∅": "∅∅∅", "CAT": "CAT", "HEPMX": "HEPMX", "AST": "AST", "ADT": "ADT", "EST": "EST", "HAT": "HAT", "MEZ": "MEZ", "MESZ": "MESZ", "OEZ": "OEZ", "EDT": "EDT", "MST": "MST", "WIB": "WIB", "HADT": "HADT", "SRT": "SRT", "AWDT": "AWDT", "BOT": "BOT", "UYST": "UYST", "HAST": "HAST", "PST": "PST", "AEST": "AEST", "HKT": "HKT", "EAT": "EAT", "OESZ": "OESZ", "MDT": "MDT", "AKDT": "AKDT", "PDT": "PDT", "ACWDT": "ACWDT", "WITA": "WITA", "COT": "COT", "WESZ": "WESZ", "AEDT": "AEDT", "AWST": "AWST", "NZDT": "NZDT", "SAST": "SAST", "IST": "IST", "HNNOMX": "HNNOMX", "GMT": "GMT", "HNPM": "HNPM", "WIT": "WIT", "WEZ": "WEZ", "WAST": "WAST", "ECT": "ECT", "HNCU": "HNCU", "BT": "BT", "CHADT": "CHADT", "JDT": "JDT", "WARST": "WARST", "HNOG": "HNOG", "CLST": "CLST", "GFT": "GFT", "TMST": "TMST", "AKST": "AKST"},
++ timezones: map[string]string{"ACST": "ACST", "MEZ": "MEZ", "JST": "JST", "CLST": "CLST", "BOT": "BOT", "WAT": "WAT", "COST": "COST", "EDT": "EDT", "ART": "ART", "AST": "AST", "JDT": "JDT", "PST": "PST", "CHAST": "CHAST", "HAT": "HAT", "HEOG": "HEOG", "MST": "MST", "GMT": "GMT", "WESZ": "WESZ", "WAST": "WAST", "WARST": "WARST", "EST": "EST", "HENOMX": "HENOMX", "ACWDT": "ACWDT", "AKDT": "AKDT", "COT": "COT", "PDT": "PDT", "HNCU": "HNCU", "HEPMX": "HEPMX", "AEST": "AEST", "SGT": "SGT", "OESZ": "OESZ", "HADT": "HADT", "LHST": "LHST", "HNPM": "HNPM", "AWST": "AWST", "ACDT": "ACDT", "GYT": "GYT", "HKST": "HKST", "TMT": "TMT", "∅∅∅": "∅∅∅", "CLT": "CLT", "HAST": "HAST", "CHADT": "CHADT", "IST": "IST", "SAST": "SAST", "TMST": "TMST", "ARST": "ARST", "AWDT": "AWDT", "ACWST": "ACWST", "AEDT": "AEDT", "EAT": "EAT", "MESZ": "MESZ", "OEZ": "OEZ", "NZDT": "NZDT", "SRT": "SRT", "WITA": "WITA", "ChST": "ChST", "LHDT": "LHDT", "HEPM": "HEPM", "VET": "VET", "NZST": "NZST", "ECT": "ECT", "MDT": "MDT", "CDT": "CDT", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "WEZ": "WEZ", "WART": "WART", "HECU": "HECU", "AKST": "AKST", "MYT": "MYT", "UYT": "UYT", "UYST": "UYST", "CST": "CST", "ADT": "ADT", "BT": "BT", "WIT": "WIT", "HKT": "HKT", "CAT": "CAT", "WIB": "WIB", "HNEG": "HNEG", "HEEG": "HEEG", "GFT": "GFT", "HNT": "HNT", "HNOG": "HNOG"},
+ }
+ }
+ 
+diff --git a/zgh_MA/zgh_MA.go b/zgh_MA/zgh_MA.go
+index 9e94924..512c6ea 100644
+--- a/zgh_MA/zgh_MA.go
++++ b/zgh_MA/zgh_MA.go
+@@ -18,7 +18,6 @@ type zgh_MA struct {
+ group string
+ minus string
+ percent string
+- percentSuffix string
+ perMille string
+ timeSeparator string
+ inifinity string
+@@ -43,33 +42,13 @@ type zgh_MA struct {
+ // New returns a new instance of translator for the 'zgh_MA' locale
+ func New() locales.Translator {
+ return &zgh_MA{
+- locale: "zgh_MA",
+- pluralsCardinal: nil,
+- pluralsOrdinal: nil,
+- pluralsRange: nil,
+- decimal: ",",
+- group: " ",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- percentSuffix: " ",
+- monthsAbbreviated: []string{"", "ⵉⵏⵏ", "ⴱⵕⴰ", "ⵎⴰⵕ", "ⵉⴱⵔ", "ⵎⴰⵢ", "ⵢⵓⵏ", "ⵢⵓⵍ", "ⵖⵓⵛ", "ⵛⵓⵜ", "ⴽⵜⵓ", "ⵏⵓⵡ", "ⴷⵓⵊ"},
+- monthsNarrow: []string{"", "ⵉ", "ⴱ", "ⵎ", "ⵉ", "ⵎ", "ⵢ", "ⵢ", "ⵖ", "ⵛ", "ⴽ", "ⵏ", "ⴷ"},
+- monthsWide: []string{"", "ⵉⵏⵏⴰⵢⵔ", "ⴱⵕⴰⵢⵕ", "ⵎⴰⵕⵚ", "ⵉⴱⵔⵉⵔ", "ⵎⴰⵢⵢⵓ", "ⵢⵓⵏⵢⵓ", "ⵢⵓⵍⵢⵓⵣ", "ⵖⵓⵛⵜ", "ⵛⵓⵜⴰⵏⴱⵉⵔ", "ⴽⵜⵓⴱⵔ", "ⵏⵓⵡⴰⵏⴱⵉⵔ", "ⴷⵓⵊⴰⵏⴱⵉⵔ"},
+- daysAbbreviated: []string{"ⴰⵙⴰ", "ⴰⵢⵏ", "ⴰⵙⵉ", "ⴰⴽⵕ", "ⴰⴽⵡ", "ⴰⵙⵉⵎ", "ⴰⵙⵉⴹ"},
+- daysNarrow: []string{"S", "M", "T", "W", "T", "F", "S"},
+- daysShort: []string{"ⴰⵙⴰ", "ⴰⵢⵏ", "ⴰⵙⵉ", "ⴰⴽⵕ", "ⴰⴽⵡ", "ⴰⵙⵉⵎ", "ⴰⵙⵉⴹ"},
+- daysWide: []string{"ⴰⵙⴰⵎⴰⵙ", "ⴰⵢⵏⴰⵙ", "ⴰⵙⵉⵏⴰⵙ", "ⴰⴽⵕⴰⵙ", "ⴰⴽⵡⴰⵙ", "ⴰⵙⵉⵎⵡⴰⵙ", "ⴰⵙⵉⴹⵢⴰⵙ"},
+- periodsAbbreviated: []string{"ⵜⵉⴼⴰⵡⵜ", "ⵜⴰⴷⴳⴳⵯⴰⵜ"},
+- periodsNarrow: []string{"ⵜⵉⴼⴰⵡⵜ", "ⵜⴰⴷⴳⴳⵯⴰⵜ"},
+- periodsWide: []string{"ⵜⵉⴼⴰⵡⵜ", "ⵜⴰⴷⴳⴳⵯⴰⵜ"},
+- erasAbbreviated: []string{"ⴷⴰⵄ", "ⴷⴼⵄ"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"ⴷⴰⵜ ⵏ ⵄⵉⵙⴰ", "ⴷⴼⴼⵉⵔ ⵏ ⵄⵉⵙⴰ"},
+- timezones: map[string]string{"NZDT": "NZDT", "COST": "COST", "ADT": "ADT", "PST": "PST", "AWST": "AWST", "WAST": "WAST", "OESZ": "OESZ", "SGT": "SGT", "HNPMX": "HNPMX", "AKST": "AKST", "NZST": "NZST", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "MYT": "MYT", "HEOG": "HEOG", "AEDT": "AEDT", "CLT": "CLT", "COT": "COT", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "AST": "AST", "GYT": "GYT", "HKST": "HKST", "WART": "WART", "WARST": "WARST", "UYT": "UYT", "PDT": "PDT", "WEZ": "WEZ", "ART": "ART", "AWDT": "AWDT", "MESZ": "MESZ", "HNEG": "HNEG", "TMT": "TMT", "CAT": "CAT", "EST": "EST", "BT": "BT", "HNT": "HNT", "HNPM": "HNPM", "LHDT": "LHDT", "SAST": "SAST", "JST": "JST", "ACDT": "ACDT", "WAT": "WAT", "MDT": "MDT", "WESZ": "WESZ", "CLST": "CLST", "HEEG": "HEEG", "EDT": "EDT", "UYST": "UYST", "HADT": "HADT", "VET": "VET", "HNOG": "HNOG", "JDT": "JDT", "WIT": "WIT", "ARST": "ARST", "AEST": "AEST", "TMST": "TMST", "EAT": "EAT", "HAT": "HAT", "HEPM": "HEPM", "ChST": "ChST", "BOT": "BOT", "MST": "MST", "WIB": "WIB", "SRT": "SRT", "HKT": "HKT", "WITA": "WITA", "ECT": "ECT", "GMT": "GMT", "CST": "CST", "GFT": "GFT", "HENOMX": "HENOMX", "ACWST": "ACWST", "ACWDT": "ACWDT", "MEZ": "MEZ", "LHST": "LHST", "IST": "IST", "ACST": "ACST", "OEZ": "OEZ", "HEPMX": "HEPMX", "CHADT": "CHADT", "HECU": "HECU", "AKDT": "AKDT", "CDT": "CDT", "HAST": "HAST"},
++ locale: "zgh_MA",
++ pluralsCardinal: nil,
++ pluralsOrdinal: nil,
++ pluralsRange: nil,
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HNCU": "HNCU", "ADT": "ADT", "NZST": "NZST", "HEEG": "HEEG", "HNPM": "HNPM", "COT": "COT", "HKT": "HKT", "CLST": "CLST", "ACDT": "ACDT", "WEZ": "WEZ", "AKDT": "AKDT", "GFT": "GFT", "CDT": "CDT", "MDT": "MDT", "HEPM": "HEPM", "JST": "JST", "CHADT": "CHADT", "WART": "WART", "HAT": "HAT", "WAT": "WAT", "WAST": "WAST", "TMT": "TMT", "ACWST": "ACWST", "HKST": "HKST", "GMT": "GMT", "EAT": "EAT", "ACST": "ACST", "AEST": "AEST", "SGT": "SGT", "VET": "VET", "ECT": "ECT", "AWDT": "AWDT", "BT": "BT", "HEOG": "HEOG", "ART": "ART", "BOT": "BOT", "WIT": "WIT", "NZDT": "NZDT", "AST": "AST", "LHDT": "LHDT", "JDT": "JDT", "PST": "PST", "AEDT": "AEDT", "OESZ": "OESZ", "MYT": "MYT", "UYST": "UYST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "EDT": "EDT", "CLT": "CLT", "CAT": "CAT", "PDT": "PDT", "CHAST": "CHAST", "HNT": "HNT", "GYT": "GYT", "EST": "EST", "CST": "CST", "WIB": "WIB", "ARST": "ARST", "HAST": "HAST", "LHST": "LHST", "UYT": "UYT", "OEZ": "OEZ", "HNOG": "HNOG", "MST": "MST", "HNEG": "HNEG", "IST": "IST", "WESZ": "WESZ", "HADT": "HADT", "SRT": "SRT", "ACWDT": "ACWDT", "WARST": "WARST", "COST": "COST", "WITA": "WITA", "ChST": "ChST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "AWST": "AWST", "∅∅∅": "∅∅∅", "TMST": "TMST", "MEZ": "MEZ", "MESZ": "MESZ", "HECU": "HECU", "AKST": "AKST", "SAST": "SAST"},
+ }
+ }
+ 
+@@ -115,7 +94,7 @@ func (zgh *zgh_MA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (zgh *zgh_MA) MonthsAbbreviated() []string {
+- return zgh.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -125,7 +104,7 @@ func (zgh *zgh_MA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (zgh *zgh_MA) MonthsNarrow() []string {
+- return zgh.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -135,7 +114,7 @@ func (zgh *zgh_MA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (zgh *zgh_MA) MonthsWide() []string {
+- return zgh.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -181,77 +160,13 @@ func (zgh *zgh_MA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'zgh_MA' and handles both Whole and Real numbers based on 'v'
+ func (zgh *zgh_MA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zgh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(zgh.group) - 1; j >= 0; j-- {
+- b = append(b, zgh.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zgh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'zgh_MA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (zgh *zgh_MA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 5
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zgh.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zgh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, zgh.percentSuffix...)
+-
+- b = append(b, zgh.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'zgh_MA'
+@@ -259,56 +174,7 @@ func (zgh *zgh_MA) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zgh.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zgh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(zgh.group) - 1; j >= 0; j-- {
+- b = append(b, zgh.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zgh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zgh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- b = append(b, symbol...)
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'zgh_MA'
+@@ -317,63 +183,7 @@ func (zgh *zgh_MA) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zgh.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 2*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zgh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- for j := len(zgh.group) - 1; j >= 0; j-- {
+- b = append(b, zgh.group[j])
+- }
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- b = append(b, zgh.minus[0])
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zgh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, symbol...)
+- } else {
+-
+- b = append(b, symbol...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'zgh_MA'
+@@ -381,17 +191,6 @@ func (zgh *zgh_MA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -400,17 +199,6 @@ func (zgh *zgh_MA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, zgh.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -419,17 +207,6 @@ func (zgh *zgh_MA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, zgh.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -438,19 +215,6 @@ func (zgh *zgh_MA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, zgh.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x20}...)
+- b = append(b, zgh.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -459,19 +223,6 @@ func (zgh *zgh_MA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, zgh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -480,26 +231,6 @@ func (zgh *zgh_MA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, zgh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zgh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -508,30 +239,6 @@ func (zgh *zgh_MA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, zgh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zgh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -540,34 +247,5 @@ func (zgh *zgh_MA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, zgh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zgh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := zgh.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
+diff --git a/zh/zh.go b/zh/zh.go
+index 411ecf6..ad020f8 100644
+--- a/zh/zh.go
++++ b/zh/zh.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"公元前", "公元"},
+ erasNarrow: []string{"公元前", "公元"},
+ erasWide: []string{"公元前", "公元"},
+- timezones: map[string]string{"AEDT": "澳大利亚东部夏令时间", "CLT": "智利标准时间", "HEEG": "格陵兰岛东部夏令时间", "HECU": "古巴夏令时间", "ADT": "大西洋夏令时间", "HKT": "香港标准时间", "WIB": "印度尼西亚西部时间", "HAST": "夏威夷-阿留申标准时间", "WESZ": "西欧夏令时间", "HKST": "香港夏令时间", "MESZ": "中欧夏令时间", "ACDT": "澳大利亚中部夏令时间", "ARST": "阿根廷夏令时间", "IST": "印度时间", "SGT": "新加坡标准时间", "AST": "大西洋标准时间", "UYT": "乌拉圭标准时间", "VET": "委内瑞拉时间", "NZDT": "新西兰夏令时间", "ACST": "澳大利亚中部标准时间", "HEPMX": "墨西哥太平洋夏令时间", "CDT": "北美中部夏令时间", "NZST": "新西兰标准时间", "CHADT": "查坦夏令时间", "EST": "北美东部标准时间", "MYT": "马来西亚时间", "PDT": "北美太平洋夏令时间", "AEST": "澳大利亚东部标准时间", "MEZ": "中欧标准时间", "CST": "北美中部标准时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "LHDT": "豪勋爵岛夏令时间", "HNEG": "格陵兰岛东部标准时间", "TMST": "土库曼斯坦夏令时间", "HENOMX": "墨西哥西北部夏令时间", "GMT": "格林尼治标准时间", "ART": "阿根廷标准时间", "HEOG": "格陵兰岛西部夏令时间", "AWDT": "澳大利亚西部夏令时间", "LHST": "豪勋爵岛标准时间", "JDT": "日本夏令时间", "GFT": "法属圭亚那标准时间", "WART": "阿根廷西部标准时间", "WARST": "阿根廷西部夏令时间", "COT": "哥伦比亚标准时间", "COST": "哥伦比亚夏令时间", "HNT": "纽芬兰标准时间", "SAST": "南部非洲时间", "∅∅∅": "亚马逊夏令时间", "CAT": "中部非洲时间", "WAST": "西部非洲夏令时间", "OESZ": "东欧夏令时间", "HNNOMX": "墨西哥西北部标准时间", "EDT": "北美东部夏令时间", "GYT": "圭亚那时间", "HADT": "夏威夷-阿留申夏令时间", "JST": "日本标准时间", "EAT": "东部非洲时间", "WAT": "西部非洲标准时间", "AKDT": "阿拉斯加夏令时间", "WEZ": "西欧标准时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "TMT": "土库曼斯坦标准时间", "OEZ": "东欧标准时间", "HNPMX": "墨西哥太平洋标准时间", "AKST": "阿拉斯加标准时间", "ACWST": "澳大利亚中西部标准时间", "HNCU": "古巴标准时间", "MST": "澳门标准时间", "PST": "北美太平洋标准时间", "HAT": "纽芬兰夏令时间", "WITA": "印度尼西亚中部时间", "CLST": "智利夏令时间", "BOT": "玻利维亚标准时间", "ECT": "厄瓜多尔标准时间", "UYST": "乌拉圭夏令时间", "SRT": "苏里南时间", "ACWDT": "澳大利亚中西部夏令时间", "HNOG": "格陵兰岛西部标准时间", "AWST": "澳大利亚西部标准时间", "CHAST": "查坦标准时间", "ChST": "查莫罗时间", "MDT": "澳门夏令时间", "WIT": "印度尼西亚东部时间", "BT": "不丹时间"},
++ timezones: map[string]string{"AEDT": "澳大利亚东部夏令时间", "BOT": "玻利维亚标准时间", "ACST": "澳大利亚中部标准时间", "HEEG": "格陵兰岛东部夏令时间", "LHST": "豪勋爵岛标准时间", "PST": "北美太平洋标准时间", "BT": "不丹时间", "CAT": "中部非洲时间", "CLT": "智利标准时间", "ARST": "阿根廷夏令时间", "MEZ": "中欧标准时间", "HENOMX": "墨西哥西北部夏令时间", "AWDT": "澳大利亚西部夏令时间", "WARST": "阿根廷西部夏令时间", "WIT": "印度尼西亚东部时间", "TMT": "土库曼斯坦标准时间", "TMST": "土库曼斯坦夏令时间", "SAST": "南部非洲时间", "HNOG": "格陵兰岛西部标准时间", "WAT": "西部非洲标准时间", "OEZ": "东欧标准时间", "UYST": "乌拉圭夏令时间", "SGT": "新加坡标准时间", "AKDT": "阿拉斯加夏令时间", "HAT": "纽芬兰夏令时间", "WART": "阿根廷西部标准时间", "COST": "哥伦比亚夏令时间", "EST": "北美东部标准时间", "JDT": "日本夏令时间", "HEOG": "格陵兰岛西部夏令时间", "AST": "大西洋标准时间", "HNNOMX": "墨西哥西北部标准时间", "WEZ": "西欧标准时间", "HEPMX": "墨西哥太平洋夏令时间", "AKST": "阿拉斯加标准时间", "∅∅∅": "亚速尔群岛夏令时间", "NZDT": "新西兰夏令时间", "PDT": "北美太平洋夏令时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "WESZ": "西欧夏令时间", "HNCU": "古巴标准时间", "GFT": "法属圭亚那标准时间", "GYT": "圭亚那时间", "ChST": "查莫罗时间", "HAST": "夏威夷-阿留申标准时间", "HECU": "古巴夏令时间", "MST": "澳门标准时间", "HNEG": "格陵兰岛东部标准时间", "ADT": "大西洋夏令时间", "MESZ": "中欧夏令时间", "WITA": "印度尼西亚中部时间", "ECT": "厄瓜多尔标准时间", "IST": "印度时间", "CHADT": "查坦夏令时间", "MDT": "澳门夏令时间", "AWST": "澳大利亚西部标准时间", "ART": "阿根廷标准时间", "AEST": "澳大利亚东部标准时间", "COT": "哥伦比亚标准时间", "CLST": "智利夏令时间", "CDT": "北美中部夏令时间", "LHDT": "豪勋爵岛夏令时间", "WAST": "西部非洲夏令时间", "OESZ": "东欧夏令时间", "HKT": "香港标准时间", "SRT": "苏里南时间", "HADT": "夏威夷-阿留申夏令时间", "ACDT": "澳大利亚中部夏令时间", "JST": "日本标准时间", "HKST": "香港夏令时间", "GMT": "格林尼治标准时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "UYT": "乌拉圭标准时间", "ACWST": "澳大利亚中西部标准时间", "HNPMX": "墨西哥太平洋标准时间", "HNT": "纽芬兰标准时间", "WIB": "印度尼西亚西部时间", "MYT": "马来西亚时间", "NZST": "新西兰标准时间", "EAT": "东部非洲时间", "ACWDT": "澳大利亚中西部夏令时间", "CHAST": "查坦标准时间", "VET": "委内瑞拉时间", "EDT": "北美东部夏令时间", "CST": "北美中部标准时间"},
+ }
+ }
+ 
+diff --git a/zh_Hans/zh_Hans.go b/zh_Hans/zh_Hans.go
+index cecad1b..f3bb287 100644
+--- a/zh_Hans/zh_Hans.go
++++ b/zh_Hans/zh_Hans.go
+@@ -42,32 +42,13 @@ type zh_Hans struct {
+ // New returns a new instance of translator for the 'zh_Hans' locale
+ func New() locales.Translator {
+ return &zh_Hans{
+- locale: "zh_Hans",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"},
+- daysAbbreviated: []string{"周日", "周一", "周二", "周三", "周四", "周五", "周六"},
+- daysNarrow: []string{"日", "一", "二", "三", "四", "五", "六"},
+- daysShort: []string{"周日", "周一", "周二", "周三", "周四", "周五", "周六"},
+- daysWide: []string{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"},
+- periodsAbbreviated: []string{"上午", "下午"},
+- periodsNarrow: []string{"上午", "下午"},
+- periodsWide: []string{"上午", "下午"},
+- erasAbbreviated: []string{"公元前", "公元"},
+- erasNarrow: []string{"公元前", "公元"},
+- erasWide: []string{"公元前", "公元"},
+- timezones: map[string]string{"MDT": "北美山区夏令时间", "ACWST": "澳大利亚中西部标准时间", "HECU": "古巴夏令时间", "HEPMX": "墨西哥太平洋夏令时间", "AST": "大西洋标准时间", "PDT": "北美太平洋夏令时间", "ACWDT": "澳大利亚中西部夏令时间", "HAT": "纽芬兰夏令时间", "CAT": "中部非洲时间", "GYT": "圭亚那时间", "UYT": "乌拉圭标准时间", "HAST": "夏威夷-阿留申标准时间", "ARST": "阿根廷夏令时间", "HKT": "香港标准时间", "MESZ": "中欧夏令时间", "NZST": "新西兰标准时间", "SAST": "南部非洲时间", "CST": "北美中部标准时间", "OESZ": "东欧夏令时间", "CLT": "智利标准时间", "NZDT": "新西兰夏令时间", "COT": "哥伦比亚标准时间", "ADT": "大西洋夏令时间", "CHAST": "查坦标准时间", "HNEG": "格陵兰岛东部标准时间", "WAST": "西部非洲夏令时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "HADT": "夏威夷-阿留申夏令时间", "BT": "不丹时间", "PST": "北美太平洋标准时间", "ART": "阿根廷标准时间", "MEZ": "中欧标准时间", "CHADT": "查坦夏令时间", "IST": "印度时间", "AKDT": "阿拉斯加夏令时间", "GFT": "法属圭亚那标准时间", "WIB": "印度尼西亚西部时间", "CLST": "智利夏令时间", "JDT": "日本夏令时间", "EAT": "东部非洲时间", "HNNOMX": "墨西哥西北部标准时间", "CDT": "北美中部夏令时间", "WIT": "印度尼西亚东部时间", "WESZ": "西欧夏令时间", "AWDT": "澳大利亚西部夏令时间", "HKST": "香港夏令时间", "∅∅∅": "亚马逊夏令时间", "BOT": "玻利维亚标准时间", "ACST": "澳大利亚中部标准时间", "VET": "委内瑞拉时间", "WART": "阿根廷西部标准时间", "UYST": "乌拉圭夏令时间", "MST": "北美山区标准时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "ChST": "查莫罗时间", "OEZ": "东欧标准时间", "ECT": "厄瓜多尔标准时间", "AKST": "阿拉斯加标准时间", "AEDT": "澳大利亚东部夏令时间", "LHST": "豪勋爵岛标准时间", "HNPMX": "墨西哥太平洋标准时间", "HNT": "纽芬兰标准时间", "WITA": "印度尼西亚中部时间", "HEEG": "格陵兰岛东部夏令时间", "TMST": "土库曼斯坦夏令时间", "WARST": "阿根廷西部夏令时间", "GMT": "格林尼治标准时间", "SRT": "苏里南时间", "ACDT": "澳大利亚中部夏令时间", "HNCU": "古巴标准时间", "EDT": "北美东部夏令时间", "JST": "日本标准时间", "WEZ": "西欧标准时间", "AWST": "澳大利亚西部标准时间", "LHDT": "豪勋爵岛夏令时间", "HENOMX": "墨西哥西北部夏令时间", "SGT": "新加坡标准时间", "MYT": "马来西亚时间", "HEOG": "格陵兰岛西部夏令时间", "AEST": "澳大利亚东部标准时间", "TMT": "土库曼斯坦标准时间", "WAT": "西部非洲标准时间", "COST": "哥伦比亚夏令时间", "EST": "北美东部标准时间", "HNOG": "格陵兰岛西部标准时间"},
++ locale: "zh_Hans",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"ADT": "ADT", "UYST": "UYST", "IST": "IST", "PDT": "PDT", "WESZ": "WESZ", "VET": "VET", "WART": "WART", "CAT": "CAT", "MST": "MST", "BT": "BT", "HNPMX": "HNPMX", "WEZ": "WEZ", "HAT": "HAT", "LHDT": "LHDT", "HNPM": "HNPM", "AEST": "AEST", "HEOG": "HEOG", "EST": "EST", "CLST": "CLST", "ARST": "ARST", "HADT": "HADT", "HNNOMX": "HNNOMX", "MYT": "MYT", "GFT": "GFT", "WIB": "WIB", "CDT": "CDT", "ECT": "ECT", "ACWST": "ACWST", "WAST": "WAST", "OESZ": "OESZ", "NZDT": "NZDT", "AST": "AST", "HEPMX": "HEPMX", "WIT": "WIT", "COT": "COT", "HNOG": "HNOG", "EDT": "EDT", "CLT": "CLT", "ChST": "ChST", "HNT": "HNT", "HKST": "HKST", "EAT": "EAT", "∅∅∅": "∅∅∅", "GMT": "GMT", "ART": "ART", "ACDT": "ACDT", "HENOMX": "HENOMX", "AWDT": "AWDT", "HECU": "HECU", "WARST": "WARST", "HEEG": "HEEG", "JST": "JST", "CHADT": "CHADT", "UYT": "UYT", "OEZ": "OEZ", "AKST": "AKST", "MDT": "MDT", "BOT": "BOT", "SRT": "SRT", "HAST": "HAST", "LHST": "LHST", "AEDT": "AEDT", "PST": "PST", "SAST": "SAST", "NZST": "NZST", "AWST": "AWST", "HNCU": "HNCU", "COST": "COST", "MEZ": "MEZ", "HNEG": "HNEG", "JDT": "JDT", "HEPM": "HEPM", "CST": "CST", "MESZ": "MESZ", "ACWDT": "ACWDT", "SGT": "SGT", "HKT": "HKT", "TMT": "TMT", "TMST": "TMST", "ACST": "ACST", "CHAST": "CHAST", "WAT": "WAT", "AKDT": "AKDT", "GYT": "GYT", "WITA": "WITA"},
+ }
+ }
+ 
+@@ -113,7 +94,7 @@ func (zh *zh_Hans) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (zh *zh_Hans) MonthsAbbreviated() []string {
+- return zh.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -123,7 +104,7 @@ func (zh *zh_Hans) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (zh *zh_Hans) MonthsNarrow() []string {
+- return zh.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -133,7 +114,7 @@ func (zh *zh_Hans) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (zh *zh_Hans) MonthsWide() []string {
+- return zh.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -179,73 +160,13 @@ func (zh *zh_Hans) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'zh_Hans' and handles both Whole and Real numbers based on 'v'
+ func (zh *zh_Hans) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'zh_Hans' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (zh *zh_Hans) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, zh.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'zh_Hans'
+@@ -253,56 +174,7 @@ func (zh *zh_Hans) FmtCurrency(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zh.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'zh_Hans'
+@@ -311,64 +183,7 @@ func (zh *zh_Hans) FmtAccounting(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zh.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, zh.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'zh_Hans'
+@@ -376,17 +191,6 @@ func (zh *zh_Hans) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -395,18 +199,6 @@ func (zh *zh_Hans) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -415,18 +207,6 @@ func (zh *zh_Hans) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -435,19 +215,6 @@ func (zh *zh_Hans) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+- b = append(b, zh.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -456,27 +223,6 @@ func (zh *zh_Hans) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -485,34 +231,6 @@ func (zh *zh_Hans) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,39 +239,6 @@ func (zh *zh_Hans) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -562,43 +247,5 @@ func (zh *zh_Hans) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+-
+- if btz, ok := zh.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+diff --git a/zh_Hans_CN/zh_Hans_CN.go b/zh_Hans_CN/zh_Hans_CN.go
+index 9e85675..8b45e9e 100644
+--- a/zh_Hans_CN/zh_Hans_CN.go
++++ b/zh_Hans_CN/zh_Hans_CN.go
+@@ -42,32 +42,13 @@ type zh_Hans_CN struct {
+ // New returns a new instance of translator for the 'zh_Hans_CN' locale
+ func New() locales.Translator {
+ return &zh_Hans_CN{
+- locale: "zh_Hans_CN",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"},
+- daysAbbreviated: []string{"周日", "周一", "周二", "周三", "周四", "周五", "周六"},
+- daysNarrow: []string{"日", "一", "二", "三", "四", "五", "六"},
+- daysShort: []string{"周日", "周一", "周二", "周三", "周四", "周五", "周六"},
+- daysWide: []string{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"},
+- periodsAbbreviated: []string{"上午", "下午"},
+- periodsNarrow: []string{"上午", "下午"},
+- periodsWide: []string{"上午", "下午"},
+- erasAbbreviated: []string{"公元前", "公元"},
+- erasNarrow: []string{"公元前", "公元"},
+- erasWide: []string{"公元前", "公元"},
+- timezones: map[string]string{"CHADT": "查坦夏令时间", "HEEG": "格陵兰岛东部夏令时间", "TMT": "土库曼斯坦标准时间", "WESZ": "西欧夏令时间", "GMT": "格林尼治标准时间", "HECU": "古巴夏令时间", "OESZ": "东欧夏令时间", "HNOG": "格陵兰岛西部标准时间", "ACWDT": "澳大利亚中西部夏令时间", "ART": "阿根廷标准时间", "ARST": "阿根廷夏令时间", "LHDT": "豪勋爵岛夏令时间", "CLST": "智利夏令时间", "ECT": "厄瓜多尔标准时间", "AKDT": "阿拉斯加夏令时间", "CST": "北美中部标准时间", "ACWST": "澳大利亚中西部标准时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "CAT": "中部非洲时间", "EAT": "东部非洲时间", "HNNOMX": "墨西哥西北部标准时间", "EST": "北美东部标准时间", "AST": "大西洋标准时间", "HADT": "夏威夷-阿留申夏令时间", "NZST": "新西兰标准时间", "BOT": "玻利维亚标准时间", "AKST": "阿拉斯加标准时间", "HNT": "纽芬兰标准时间", "JST": "日本标准时间", "HNPMX": "墨西哥太平洋标准时间", "HEPMX": "墨西哥太平洋夏令时间", "GYT": "圭亚那时间", "UYST": "乌拉圭夏令时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "HAT": "纽芬兰夏令时间", "HKT": "香港标准时间", "LHST": "豪勋爵岛标准时间", "JDT": "日本夏令时间", "WART": "阿根廷西部标准时间", "PDT": "北美太平洋夏令时间", "WITA": "印度尼西亚中部时间", "MEZ": "中欧标准时间", "GFT": "法属圭亚那标准时间", "MYT": "马来西亚时间", "VET": "委内瑞拉时间", "IST": "印度时间", "CLT": "智利标准时间", "WARST": "阿根廷西部夏令时间", "MDT": "北美山区夏令时间", "MESZ": "中欧夏令时间", "ACDT": "澳大利亚中部夏令时间", "WAST": "西部非洲夏令时间", "CDT": "北美中部夏令时间", "BT": "不丹时间", "SRT": "苏里南时间", "HKST": "香港夏令时间", "CHAST": "查坦标准时间", "SAST": "南部非洲时间", "WAT": "西部非洲标准时间", "COT": "哥伦比亚标准时间", "COST": "哥伦比亚夏令时间", "WIB": "印度尼西亚西部时间", "HNCU": "古巴标准时间", "ADT": "大西洋夏令时间", "SGT": "新加坡标准时间", "AWST": "澳大利亚西部标准时间", "AWDT": "澳大利亚西部夏令时间", "ChST": "查莫罗时间", "HNEG": "格陵兰岛东部标准时间", "HENOMX": "墨西哥西北部夏令时间", "UYT": "乌拉圭标准时间", "HAST": "夏威夷-阿留申标准时间", "HEOG": "格陵兰岛西部夏令时间", "AEST": "澳大利亚东部标准时间", "ACST": "澳大利亚中部标准时间", "EDT": "北美东部夏令时间", "WIT": "印度尼西亚东部时间", "PST": "北美太平洋标准时间", "WEZ": "西欧标准时间", "AEDT": "澳大利亚东部夏令时间", "NZDT": "新西兰夏令时间", "∅∅∅": "亚马逊夏令时间", "TMST": "土库曼斯坦夏令时间", "OEZ": "东欧标准时间", "MST": "北美山区标准时间"},
++ locale: "zh_Hans_CN",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CST": "CST", "SRT": "SRT", "LHDT": "LHDT", "MYT": "MYT", "CDT": "CDT", "ADT": "ADT", "BOT": "BOT", "WESZ": "WESZ", "HNT": "HNT", "AWDT": "AWDT", "ACWDT": "ACWDT", "UYST": "UYST", "SAST": "SAST", "TMT": "TMT", "MST": "MST", "NZST": "NZST", "ART": "ART", "HNEG": "HNEG", "UYT": "UYT", "HEOG": "HEOG", "TMST": "TMST", "AST": "AST", "HNPM": "HNPM", "IST": "IST", "ACWST": "ACWST", "CHAST": "CHAST", "HEPMX": "HEPMX", "OESZ": "OESZ", "GMT": "GMT", "PDT": "PDT", "CHADT": "CHADT", "GYT": "GYT", "COT": "COT", "CLST": "CLST", "MDT": "MDT", "ACST": "ACST", "VET": "VET", "HKST": "HKST", "ECT": "ECT", "ACDT": "ACDT", "HENOMX": "HENOMX", "AWST": "AWST", "PST": "PST", "AEDT": "AEDT", "WITA": "WITA", "JDT": "JDT", "AEST": "AEST", "HNCU": "HNCU", "CLT": "CLT", "HEEG": "HEEG", "HEPM": "HEPM", "AKST": "AKST", "COST": "COST", "HNOG": "HNOG", "ChST": "ChST", "LHST": "LHST", "WAT": "WAT", "AKDT": "AKDT", "ARST": "ARST", "EAT": "EAT", "MESZ": "MESZ", "WART": "WART", "WARST": "WARST", "WIT": "WIT", "∅∅∅": "∅∅∅", "WEZ": "WEZ", "HADT": "HADT", "MEZ": "MEZ", "HNPMX": "HNPMX", "EST": "EST", "EDT": "EDT", "CAT": "CAT", "OEZ": "OEZ", "HKT": "HKT", "NZDT": "NZDT", "WIB": "WIB", "HAST": "HAST", "HNNOMX": "HNNOMX", "JST": "JST", "BT": "BT", "SGT": "SGT", "HECU": "HECU", "WAST": "WAST", "GFT": "GFT", "HAT": "HAT"},
+ }
+ }
+ 
+@@ -113,7 +94,7 @@ func (zh *zh_Hans_CN) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (zh *zh_Hans_CN) MonthsAbbreviated() []string {
+- return zh.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -123,7 +104,7 @@ func (zh *zh_Hans_CN) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (zh *zh_Hans_CN) MonthsNarrow() []string {
+- return zh.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -133,7 +114,7 @@ func (zh *zh_Hans_CN) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (zh *zh_Hans_CN) MonthsWide() []string {
+- return zh.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -179,73 +160,13 @@ func (zh *zh_Hans_CN) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'zh_Hans_CN' and handles both Whole and Real numbers based on 'v'
+ func (zh *zh_Hans_CN) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'zh_Hans_CN' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (zh *zh_Hans_CN) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, zh.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'zh_Hans_CN'
+@@ -253,56 +174,7 @@ func (zh *zh_Hans_CN) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zh.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'zh_Hans_CN'
+@@ -311,64 +183,7 @@ func (zh *zh_Hans_CN) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zh.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, zh.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'zh_Hans_CN'
+@@ -376,17 +191,6 @@ func (zh *zh_Hans_CN) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -395,18 +199,6 @@ func (zh *zh_Hans_CN) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -415,18 +207,6 @@ func (zh *zh_Hans_CN) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -435,19 +215,6 @@ func (zh *zh_Hans_CN) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+- b = append(b, zh.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -456,27 +223,6 @@ func (zh *zh_Hans_CN) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -485,34 +231,6 @@ func (zh *zh_Hans_CN) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,39 +239,6 @@ func (zh *zh_Hans_CN) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -562,43 +247,5 @@ func (zh *zh_Hans_CN) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+-
+- if btz, ok := zh.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+diff --git a/zh_Hans_HK/zh_Hans_HK.go b/zh_Hans_HK/zh_Hans_HK.go
+index a2d987c..62c2400 100644
+--- a/zh_Hans_HK/zh_Hans_HK.go
++++ b/zh_Hans_HK/zh_Hans_HK.go
+@@ -42,32 +42,13 @@ type zh_Hans_HK struct {
+ // New returns a new instance of translator for the 'zh_Hans_HK' locale
+ func New() locales.Translator {
+ return &zh_Hans_HK{
+- locale: "zh_Hans_HK",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CN¥", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"},
+- daysAbbreviated: []string{"周日", "周一", "周二", "周三", "周四", "周五", "周六"},
+- daysNarrow: []string{"日", "一", "二", "三", "四", "五", "六"},
+- daysShort: []string{"周日", "周一", "周二", "周三", "周四", "周五", "周六"},
+- daysWide: []string{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"},
+- periodsAbbreviated: []string{"上午", "下午"},
+- periodsNarrow: []string{"上午", "下午"},
+- periodsWide: []string{"上午", "下午"},
+- erasAbbreviated: []string{"公元前", "公元"},
+- erasNarrow: []string{"公元前", "公元"},
+- erasWide: []string{"公元前", "公元"},
+- timezones: map[string]string{"HAST": "夏威夷-阿留申标准时间", "PST": "北美太平洋标准时间", "WITA": "印度尼西亚中部时间", "HNEG": "格陵兰岛东部标准时间", "BOT": "玻利维亚标准时间", "ACST": "澳大利亚中部标准时间", "HNCU": "古巴标准时间", "CDT": "北美中部夏令时间", "ChST": "查莫罗时间", "HENOMX": "墨西哥西北部夏令时间", "ACWST": "澳大利亚中西部标准时间", "MEZ": "中欧标准时间", "CHADT": "查坦夏令时间", "JST": "日本标准时间", "CLST": "智利夏令时间", "TMST": "土库曼斯坦夏令时间", "COST": "哥伦比亚夏令时间", "MDT": "澳门夏令时间", "UYST": "乌拉圭夏令时间", "OEZ": "东欧标准时间", "WART": "阿根廷西部标准时间", "CLT": "智利标准时间", "WARST": "阿根廷西部夏令时间", "COT": "哥伦比亚标准时间", "LHST": "豪勋爵岛标准时间", "HEPMX": "墨西哥太平洋夏令时间", "AKDT": "阿拉斯加夏令时间", "CST": "北美中部标准时间", "ADT": "大西洋夏令时间", "HKT": "香港标准时间", "ACDT": "澳大利亚中部夏令时间", "OESZ": "东欧夏令时间", "HNPMX": "墨西哥太平洋标准时间", "AEDT": "澳大利亚东部夏令时间", "JDT": "日本夏令时间", "EST": "北美东部标准时间", "HKST": "香港夏令时间", "MESZ": "中欧夏令时间", "MST": "澳门标准时间", "WESZ": "西欧夏令时间", "AEST": "澳大利亚东部标准时间", "WAT": "西部非洲标准时间", "ECT": "厄瓜多尔标准时间", "EDT": "北美东部夏令时间", "GYT": "圭亚那时间", "WIT": "印度尼西亚东部时间", "HAT": "纽芬兰夏令时间", "UYT": "乌拉圭标准时间", "HADT": "夏威夷-阿留申夏令时间", "ARST": "阿根廷夏令时间", "WEZ": "西欧标准时间", "AWST": "澳大利亚西部标准时间", "WAST": "西部非洲夏令时间", "AST": "大西洋标准时间", "MYT": "马来西亚时间", "TMT": "土库曼斯坦标准时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "CHAST": "查坦标准时间", "LHDT": "豪勋爵岛夏令时间", "HEOG": "格陵兰岛西部夏令时间", "AWDT": "澳大利亚西部夏令时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "IST": "印度时间", "SRT": "苏里南时间", "HNT": "纽芬兰标准时间", "ART": "阿根廷标准时间", "HNOG": "格陵兰岛西部标准时间", "NZST": "新西兰标准时间", "CAT": "中部非洲时间", "HECU": "古巴夏令时间", "WIB": "印度尼西亚西部时间", "NZDT": "新西兰夏令时间", "SAST": "南部非洲时间", "AKST": "阿拉斯加标准时间", "VET": "委内瑞拉时间", "ACWDT": "澳大利亚中西部夏令时间", "GMT": "格林尼治标准时间", "HEEG": "格陵兰岛东部夏令时间", "GFT": "法属圭亚那标准时间", "SGT": "新加坡标准时间", "BT": "不丹时间", "PDT": "北美太平洋夏令时间", "∅∅∅": "秘鲁夏令时间", "EAT": "东部非洲时间", "HNNOMX": "墨西哥西北部标准时间"},
++ locale: "zh_Hans_HK",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CN¥", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"CST": "CST", "ART": "ART", "ARST": "ARST", "HADT": "HADT", "MEZ": "MEZ", "LHST": "LHST", "HNPMX": "HNPMX", "HKST": "HKST", "AKST": "AKST", "GMT": "GMT", "EAT": "EAT", "IST": "IST", "SGT": "SGT", "HECU": "HECU", "WAT": "WAT", "HEEG": "HEEG", "HNPM": "HNPM", "WEZ": "WEZ", "HNT": "HNT", "MDT": "MDT", "ACWDT": "ACWDT", "HNCU": "HNCU", "EDT": "EDT", "CDT": "CDT", "BOT": "BOT", "ACDT": "ACDT", "HNEG": "HNEG", "JDT": "JDT", "∅∅∅": "∅∅∅", "WAST": "WAST", "EST": "EST", "SAST": "SAST", "HEOG": "HEOG", "TMT": "TMT", "MESZ": "MESZ", "AWST": "AWST", "MYT": "MYT", "HEPMX": "HEPMX", "OEZ": "OEZ", "TMST": "TMST", "SRT": "SRT", "AWDT": "AWDT", "HAT": "HAT", "WITA": "WITA", "JST": "JST", "CHADT": "CHADT", "PST": "PST", "PDT": "PDT", "WESZ": "WESZ", "HAST": "HAST", "ACST": "ACST", "BT": "BT", "COST": "COST", "NZDT": "NZDT", "GFT": "GFT", "HKT": "HKT", "MST": "MST", "HNNOMX": "HNNOMX", "LHDT": "LHDT", "HEPM": "HEPM", "VET": "VET", "UYST": "UYST", "ACWST": "ACWST", "GYT": "GYT", "CAT": "CAT", "CLST": "CLST", "ECT": "ECT", "UYT": "UYT", "AEST": "AEST", "AEDT": "AEDT", "AKDT": "AKDT", "WARST": "WARST", "ChST": "ChST", "NZST": "NZST", "WIB": "WIB", "ADT": "ADT", "HENOMX": "HENOMX", "CHAST": "CHAST", "WART": "WART", "COT": "COT", "HNOG": "HNOG", "OESZ": "OESZ", "WIT": "WIT", "CLT": "CLT", "AST": "AST"},
+ }
+ }
+ 
+@@ -113,7 +94,7 @@ func (zh *zh_Hans_HK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (zh *zh_Hans_HK) MonthsAbbreviated() []string {
+- return zh.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -123,7 +104,7 @@ func (zh *zh_Hans_HK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (zh *zh_Hans_HK) MonthsNarrow() []string {
+- return zh.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -133,7 +114,7 @@ func (zh *zh_Hans_HK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (zh *zh_Hans_HK) MonthsWide() []string {
+- return zh.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -179,73 +160,13 @@ func (zh *zh_Hans_HK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'zh_Hans_HK' and handles both Whole and Real numbers based on 'v'
+ func (zh *zh_Hans_HK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'zh_Hans_HK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (zh *zh_Hans_HK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, zh.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'zh_Hans_HK'
+@@ -253,56 +174,7 @@ func (zh *zh_Hans_HK) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zh.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'zh_Hans_HK'
+@@ -311,64 +183,7 @@ func (zh *zh_Hans_HK) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zh.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, zh.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'zh_Hans_HK'
+@@ -395,18 +210,6 @@ func (zh *zh_Hans_HK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -415,18 +218,6 @@ func (zh *zh_Hans_HK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -435,19 +226,6 @@ func (zh *zh_Hans_HK) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+- b = append(b, zh.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -456,27 +234,6 @@ func (zh *zh_Hans_HK) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -485,34 +242,6 @@ func (zh *zh_Hans_HK) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,39 +250,6 @@ func (zh *zh_Hans_HK) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -562,43 +258,5 @@ func (zh *zh_Hans_HK) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+-
+- if btz, ok := zh.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+diff --git a/zh_Hans_MO/zh_Hans_MO.go b/zh_Hans_MO/zh_Hans_MO.go
+index c3d9bdb..f2b336c 100644
+--- a/zh_Hans_MO/zh_Hans_MO.go
++++ b/zh_Hans_MO/zh_Hans_MO.go
+@@ -42,32 +42,13 @@ type zh_Hans_MO struct {
+ // New returns a new instance of translator for the 'zh_Hans_MO' locale
+ func New() locales.Translator {
+ return &zh_Hans_MO{
+- locale: "zh_Hans_MO",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CN¥", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP$", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"},
+- daysAbbreviated: []string{"周日", "周一", "周二", "周三", "周四", "周五", "周六"},
+- daysNarrow: []string{"日", "一", "二", "三", "四", "五", "六"},
+- daysShort: []string{"周日", "周一", "周二", "周三", "周四", "周五", "周六"},
+- daysWide: []string{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"},
+- periodsAbbreviated: []string{"上午", "下午"},
+- periodsNarrow: []string{"上午", "下午"},
+- periodsWide: []string{"上午", "下午"},
+- erasAbbreviated: []string{"公元前", "公元"},
+- erasNarrow: []string{"公元前", "公元"},
+- erasWide: []string{"公元前", "公元"},
+- timezones: map[string]string{"CLST": "智利夏令时间", "∅∅∅": "亚马逊夏令时间", "TMT": "土库曼斯坦标准时间", "ACST": "澳大利亚中部标准时间", "WAT": "西部非洲标准时间", "HEOG": "格陵兰岛西部夏令时间", "WESZ": "西欧夏令时间", "WITA": "印度尼西亚中部时间", "WARST": "阿根廷西部夏令时间", "HNNOMX": "墨西哥西北部标准时间", "HNT": "纽芬兰标准时间", "AEDT": "澳大利亚东部夏令时间", "HKT": "香港标准时间", "EAT": "东部非洲时间", "ECT": "厄瓜多尔标准时间", "AKST": "阿拉斯加标准时间", "AST": "大西洋标准时间", "PDT": "北美太平洋夏令时间", "LHST": "豪勋爵岛标准时间", "IST": "印度时间", "CLT": "智利标准时间", "WART": "阿根廷西部标准时间", "BT": "不丹时间", "PST": "北美太平洋标准时间", "MESZ": "中欧夏令时间", "ChST": "查莫罗时间", "GFT": "法属圭亚那标准时间", "GMT": "格林尼治标准时间", "WAST": "西部非洲夏令时间", "HECU": "古巴夏令时间", "HAST": "夏威夷-阿留申标准时间", "VET": "委内瑞拉时间", "NZDT": "新西兰夏令时间", "MDT": "北美山区夏令时间", "HAT": "纽芬兰夏令时间", "ACDT": "澳大利亚中部夏令时间", "MYT": "马来西亚时间", "HADT": "夏威夷-阿留申夏令时间", "HNEG": "格陵兰岛东部标准时间", "ACWDT": "澳大利亚中西部夏令时间", "ARST": "阿根廷夏令时间", "CHAST": "查坦标准时间", "HEEG": "格陵兰岛东部夏令时间", "TMST": "土库曼斯坦夏令时间", "GYT": "圭亚那时间", "CST": "北美中部标准时间", "ADT": "大西洋夏令时间", "OEZ": "东欧标准时间", "COT": "哥伦比亚标准时间", "OESZ": "东欧夏令时间", "EST": "北美东部标准时间", "WIB": "印度尼西亚西部时间", "WEZ": "西欧标准时间", "AEST": "澳大利亚东部标准时间", "JST": "日本标准时间", "HNCU": "古巴标准时间", "UYST": "乌拉圭夏令时间", "AKDT": "阿拉斯加夏令时间", "MST": "北美山区标准时间", "EDT": "北美东部夏令时间", "HEPMX": "墨西哥太平洋夏令时间", "MEZ": "中欧标准时间", "CAT": "中部非洲时间", "HNOG": "格陵兰岛西部标准时间", "AWST": "澳大利亚西部标准时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "UYT": "乌拉圭标准时间", "ACWST": "澳大利亚中西部标准时间", "AWDT": "澳大利亚西部夏令时间", "SGT": "新加坡标准时间", "WIT": "印度尼西亚东部时间", "CHADT": "查坦夏令时间", "BOT": "玻利维亚标准时间", "SAST": "南部非洲时间", "SRT": "苏里南时间", "ART": "阿根廷标准时间", "HKST": "香港夏令时间", "CDT": "北美中部夏令时间", "HNPMX": "墨西哥太平洋标准时间", "COST": "哥伦比亚夏令时间", "HENOMX": "墨西哥西北部夏令时间", "LHDT": "豪勋爵岛夏令时间", "NZST": "新西兰标准时间", "JDT": "日本夏令时间"},
++ locale: "zh_Hans_MO",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CN¥", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP$", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"UYT": "UYT", "UYST": "UYST", "WESZ": "WESZ", "WIT": "WIT", "AST": "AST", "ChST": "ChST", "ART": "ART", "HNEG": "HNEG", "SAST": "SAST", "ECT": "ECT", "GMT": "GMT", "ARST": "ARST", "MEZ": "MEZ", "HNNOMX": "HNNOMX", "PDT": "PDT", "CHAST": "CHAST", "OESZ": "OESZ", "WARST": "WARST", "HEOG": "HEOG", "WIB": "WIB", "EAT": "EAT", "JDT": "JDT", "HEPMX": "HEPMX", "ADT": "ADT", "MESZ": "MESZ", "LHST": "LHST", "HECU": "HECU", "HNPMX": "HNPMX", "WART": "WART", "GYT": "GYT", "CST": "CST", "HEEG": "HEEG", "MYT": "MYT", "PST": "PST", "ACWDT": "ACWDT", "AEDT": "AEDT", "WITA": "WITA", "NZDT": "NZDT", "HNCU": "HNCU", "WAT": "WAT", "WAST": "WAST", "CDT": "CDT", "MDT": "MDT", "NZST": "NZST", "COST": "COST", "TMT": "TMT", "BT": "BT", "AEST": "AEST", "VET": "VET", "HNT": "HNT", "CHADT": "CHADT", "SGT": "SGT", "AKDT": "AKDT", "HKT": "HKT", "HKST": "HKST", "CAT": "CAT", "MST": "MST", "BOT": "BOT", "ACDT": "ACDT", "AWST": "AWST", "LHDT": "LHDT", "HNPM": "HNPM", "HENOMX": "HENOMX", "WEZ": "WEZ", "OEZ": "OEZ", "HAT": "HAT", "ACWST": "ACWST", "GFT": "GFT", "COT": "COT", "EDT": "EDT", "TMST": "TMST", "CLST": "CLST", "HAST": "HAST", "AWDT": "AWDT", "ACST": "ACST", "IST": "IST", "∅∅∅": "∅∅∅", "AKST": "AKST", "HNOG": "HNOG", "EST": "EST", "CLT": "CLT", "SRT": "SRT", "HADT": "HADT", "HEPM": "HEPM", "JST": "JST"},
+ }
+ }
+ 
+@@ -113,7 +94,7 @@ func (zh *zh_Hans_MO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (zh *zh_Hans_MO) MonthsAbbreviated() []string {
+- return zh.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -123,7 +104,7 @@ func (zh *zh_Hans_MO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (zh *zh_Hans_MO) MonthsNarrow() []string {
+- return zh.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -133,7 +114,7 @@ func (zh *zh_Hans_MO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (zh *zh_Hans_MO) MonthsWide() []string {
+- return zh.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -179,73 +160,13 @@ func (zh *zh_Hans_MO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'zh_Hans_MO' and handles both Whole and Real numbers based on 'v'
+ func (zh *zh_Hans_MO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'zh_Hans_MO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (zh *zh_Hans_MO) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, zh.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'zh_Hans_MO'
+@@ -253,56 +174,7 @@ func (zh *zh_Hans_MO) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zh.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'zh_Hans_MO'
+@@ -311,64 +183,7 @@ func (zh *zh_Hans_MO) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zh.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, zh.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'zh_Hans_MO'
+@@ -395,18 +210,6 @@ func (zh *zh_Hans_MO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -415,18 +218,6 @@ func (zh *zh_Hans_MO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -435,19 +226,6 @@ func (zh *zh_Hans_MO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+- b = append(b, zh.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -456,27 +234,6 @@ func (zh *zh_Hans_MO) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -485,34 +242,6 @@ func (zh *zh_Hans_MO) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,39 +250,6 @@ func (zh *zh_Hans_MO) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -562,43 +258,5 @@ func (zh *zh_Hans_MO) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+-
+- if btz, ok := zh.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+diff --git a/zh_Hans_SG/zh_Hans_SG.go b/zh_Hans_SG/zh_Hans_SG.go
+index d3eb810..2d53d63 100644
+--- a/zh_Hans_SG/zh_Hans_SG.go
++++ b/zh_Hans_SG/zh_Hans_SG.go
+@@ -42,32 +42,13 @@ type zh_Hans_SG struct {
+ // New returns a new instance of translator for the 'zh_Hans_SG' locale
+ func New() locales.Translator {
+ return &zh_Hans_SG{
+- locale: "zh_Hans_SG",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CN¥", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "$", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"},
+- daysAbbreviated: []string{"周日", "周一", "周二", "周三", "周四", "周五", "周六"},
+- daysNarrow: []string{"日", "一", "二", "三", "四", "五", "六"},
+- daysShort: []string{"周日", "周一", "周二", "周三", "周四", "周五", "周六"},
+- daysWide: []string{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"},
+- periodsAbbreviated: []string{"上午", "下午"},
+- periodsNarrow: []string{"上午", "下午"},
+- periodsWide: []string{"上午", "下午"},
+- erasAbbreviated: []string{"公元前", "公元"},
+- erasNarrow: []string{"公元前", "公元"},
+- erasWide: []string{"公元前", "公元"},
+- timezones: map[string]string{"ACDT": "澳大利亚中部夏令时间", "HAT": "纽芬兰夏令时间", "LHDT": "豪勋爵岛夏令时间", "EAT": "东部非洲时间", "AKDT": "阿拉斯加夏令时间", "WEZ": "西欧标准时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "HNNOMX": "墨西哥西北部标准时间", "MST": "澳门标准时间", "BT": "不丹时间", "CLT": "智利标准时间", "HNEG": "格陵兰岛东部标准时间", "GMT": "格林尼治标准时间", "SGT": "新加坡标准时间", "HNT": "纽芬兰标准时间", "HNOG": "格陵兰岛西部标准时间", "HKT": "香港标准时间", "NZST": "新西兰标准时间", "TMST": "土库曼斯坦夏令时间", "CAT": "中部非洲时间", "OESZ": "东欧夏令时间", "ECT": "厄瓜多尔标准时间", "HNCU": "古巴标准时间", "VET": "委内瑞拉时间", "ACWST": "澳大利亚中西部标准时间", "BOT": "玻利维亚标准时间", "ADT": "大西洋夏令时间", "MEZ": "中欧标准时间", "IST": "印度时间", "WAST": "西部非洲夏令时间", "HADT": "夏威夷-阿留申夏令时间", "PST": "北美太平洋标准时间", "JST": "日本标准时间", "COST": "哥伦比亚夏令时间", "HENOMX": "墨西哥西北部夏令时间", "AST": "大西洋标准时间", "GYT": "圭亚那时间", "ART": "阿根廷标准时间", "HEOG": "格陵兰岛西部夏令时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "OEZ": "东欧标准时间", "∅∅∅": "秘鲁夏令时间", "MYT": "马来西亚时间", "ARST": "阿根廷夏令时间", "HECU": "古巴夏令时间", "CST": "北美中部标准时间", "SRT": "苏里南时间", "JDT": "日本夏令时间", "ChST": "查莫罗时间", "HEPMX": "墨西哥太平洋夏令时间", "UYT": "乌拉圭标准时间", "AEST": "澳大利亚东部标准时间", "AWDT": "澳大利亚西部夏令时间", "CHADT": "查坦夏令时间", "WAT": "西部非洲标准时间", "WIB": "印度尼西亚西部时间", "GFT": "法属圭亚那标准时间", "EDT": "北美东部夏令时间", "AKST": "阿拉斯加标准时间", "LHST": "豪勋爵岛标准时间", "HEEG": "格陵兰岛东部夏令时间", "WARST": "阿根廷西部夏令时间", "HNPMX": "墨西哥太平洋标准时间", "UYST": "乌拉圭夏令时间", "WIT": "印度尼西亚东部时间", "WITA": "印度尼西亚中部时间", "SAST": "南部非洲时间", "ACST": "澳大利亚中部标准时间", "EST": "北美东部标准时间", "MDT": "澳门夏令时间", "PDT": "北美太平洋夏令时间", "WESZ": "西欧夏令时间", "ACWDT": "澳大利亚中西部夏令时间", "MESZ": "中欧夏令时间", "NZDT": "新西兰夏令时间", "WART": "阿根廷西部标准时间", "COT": "哥伦比亚标准时间", "CDT": "北美中部夏令时间", "HAST": "夏威夷-阿留申标准时间", "AEDT": "澳大利亚东部夏令时间", "AWST": "澳大利亚西部标准时间", "HKST": "香港夏令时间", "CHAST": "查坦标准时间", "CLST": "智利夏令时间", "TMT": "土库曼斯坦标准时间"},
++ locale: "zh_Hans_SG",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CN¥", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "$", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WIT": "WIT", "HNOG": "HNOG", "TMT": "TMT", "HNEG": "HNEG", "WEZ": "WEZ", "VET": "VET", "SGT": "SGT", "GFT": "GFT", "MST": "MST", "NZDT": "NZDT", "HAST": "HAST", "HADT": "HADT", "CHAST": "CHAST", "GYT": "GYT", "COT": "COT", "WITA": "WITA", "MDT": "MDT", "EAT": "EAT", "UYT": "UYT", "WAT": "WAT", "HNPM": "HNPM", "HNCU": "HNCU", "AST": "AST", "CAT": "CAT", "CDT": "CDT", "∅∅∅": "∅∅∅", "ACWST": "ACWST", "HEPMX": "HEPMX", "AKST": "AKST", "WARST": "WARST", "HKT": "HKT", "TMST": "TMST", "ARST": "ARST", "MESZ": "MESZ", "BT": "BT", "HECU": "HECU", "ACDT": "ACDT", "HAT": "HAT", "ECT": "ECT", "ART": "ART", "HEPM": "HEPM", "PST": "PST", "HNT": "HNT", "IST": "IST", "PDT": "PDT", "WAST": "WAST", "HEOG": "HEOG", "NZST": "NZST", "ACST": "ACST", "AWDT": "AWDT", "MYT": "MYT", "COST": "COST", "HNPMX": "HNPMX", "OEZ": "OEZ", "WART": "WART", "JDT": "JDT", "UYST": "UYST", "ACWDT": "ACWDT", "AEDT": "AEDT", "EST": "EST", "HEEG": "HEEG", "HNNOMX": "HNNOMX", "AWST": "AWST", "BOT": "BOT", "MEZ": "MEZ", "HKST": "HKST", "CST": "CST", "ADT": "ADT", "ChST": "ChST", "LHDT": "LHDT", "WESZ": "WESZ", "WIB": "WIB", "SAST": "SAST", "CLT": "CLT", "CLST": "CLST", "GMT": "GMT", "SRT": "SRT", "LHST": "LHST", "JST": "JST", "AEST": "AEST", "OESZ": "OESZ", "EDT": "EDT", "HENOMX": "HENOMX", "CHADT": "CHADT", "AKDT": "AKDT"},
+ }
+ }
+ 
+@@ -113,7 +94,7 @@ func (zh *zh_Hans_SG) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (zh *zh_Hans_SG) MonthsAbbreviated() []string {
+- return zh.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -123,7 +104,7 @@ func (zh *zh_Hans_SG) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (zh *zh_Hans_SG) MonthsNarrow() []string {
+- return zh.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -133,7 +114,7 @@ func (zh *zh_Hans_SG) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (zh *zh_Hans_SG) MonthsWide() []string {
+- return zh.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -179,73 +160,13 @@ func (zh *zh_Hans_SG) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'zh_Hans_SG' and handles both Whole and Real numbers based on 'v'
+ func (zh *zh_Hans_SG) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'zh_Hans_SG' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (zh *zh_Hans_SG) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, zh.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'zh_Hans_SG'
+@@ -253,56 +174,7 @@ func (zh *zh_Hans_SG) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zh.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'zh_Hans_SG'
+@@ -311,64 +183,7 @@ func (zh *zh_Hans_SG) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zh.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, zh.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'zh_Hans_SG'
+@@ -405,18 +220,6 @@ func (zh *zh_Hans_SG) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -425,18 +228,6 @@ func (zh *zh_Hans_SG) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -445,19 +236,6 @@ func (zh *zh_Hans_SG) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+- b = append(b, zh.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -466,27 +244,6 @@ func (zh *zh_Hans_SG) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -495,34 +252,6 @@ func (zh *zh_Hans_SG) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -531,39 +260,6 @@ func (zh *zh_Hans_SG) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -572,43 +268,5 @@ func (zh *zh_Hans_SG) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+-
+- if btz, ok := zh.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+diff --git a/zh_Hant/zh_Hant.go b/zh_Hant/zh_Hant.go
+index 1f0a53a..39f46a0 100644
+--- a/zh_Hant/zh_Hant.go
++++ b/zh_Hant/zh_Hant.go
+@@ -67,7 +67,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"西元前", "西元"},
+ erasNarrow: []string{"西元前", "西元"},
+ erasWide: []string{"西元前", "西元"},
+- timezones: map[string]string{"ART": "阿根廷標準時間", "ARST": "阿根廷夏令時間", "ACDT": "澳洲中部夏令時間", "WAT": "西非標準時間", "HNPM": "聖皮埃爾和密克隆群島標準時間", "COT": "哥倫比亞標準時間", "GYT": "蓋亞那時間", "WIB": "印尼西部時間", "BT": "不丹時間", "HKT": "香港標準時間", "WITA": "印尼中部時間", "LHDT": "豪勳爵島夏令時間", "GFT": "法屬圭亞那時間", "HNNOMX": "墨西哥西北部標準時間", "HENOMX": "墨西哥西北部夏令時間", "HNCU": "古巴標準時間", "VET": "委內瑞拉時間", "AEDT": "澳洲東部夏令時間", "JST": "日本標準時間", "CAT": "中非時間", "SRT": "蘇利南時間", "WEZ": "西歐標準時間", "ACWDT": "澳洲中西部夏令時間", "PDT": "太平洋夏令時間", "HEEG": "格陵蘭東部夏令時間", "MST": "澳門標準時間", "WART": "阿根廷西部標準時間", "UYST": "烏拉圭夏令時間", "CLT": "智利標準時間", "∅∅∅": "亞馬遜夏令時間", "ACST": "澳洲中部標準時間", "EAT": "東非時間", "EDT": "東部夏令時間", "CST": "中部標準時間", "HAST": "夏威夷-阿留申標準時間", "ACWST": "澳洲中西部標準時間", "CHADT": "查坦群島夏令時間", "IST": "印度標準時間", "AWST": "澳洲西部標準時間", "COST": "哥倫比亞夏令時間", "AKDT": "阿拉斯加夏令時間", "WESZ": "西歐夏令時間", "HEOG": "格陵蘭西部夏令時間", "MESZ": "中歐夏令時間", "HNEG": "格陵蘭東部標準時間", "HEPMX": "墨西哥太平洋夏令時間", "AKST": "阿拉斯加標準時間", "AWDT": "澳洲西部夏令時間", "TMT": "土庫曼標準時間", "SGT": "新加坡標準時間", "JDT": "日本夏令時間", "OEZ": "東歐標準時間", "ECT": "厄瓜多時間", "MDT": "澳門夏令時間", "EST": "東部標準時間", "ADT": "大西洋夏令時間", "CHAST": "查坦群島標準時間", "MEZ": "中歐標準時間", "WAST": "西非夏令時間", "WIT": "印尼東部時間", "HNOG": "格陵蘭西部標準時間", "NZDT": "紐西蘭夏令時間", "SAST": "南非標準時間", "HECU": "古巴夏令時間", "MYT": "馬來西亞時間", "UYT": "烏拉圭標準時間", "HEPM": "聖皮埃爾和密克隆群島夏令時間", "NZST": "紐西蘭標準時間", "AEST": "澳洲東部標準時間", "ChST": "查莫洛時間", "AST": "大西洋標準時間", "OESZ": "東歐夏令時間", "WARST": "阿根廷西部夏令時間", "HNPMX": "墨西哥太平洋標準時間", "CDT": "中部夏令時間", "HADT": "夏威夷-阿留申夏令時間", "HNT": "紐芬蘭標準時間", "CLST": "智利夏令時間", "BOT": "玻利維亞時間", "HAT": "紐芬蘭夏令時間", "HKST": "香港夏令時間", "GMT": "格林威治標準時間", "PST": "太平洋標準時間", "LHST": "豪勳爵島標準時間", "TMST": "土庫曼夏令時間"},
++ timezones: map[string]string{"HEPMX": "墨西哥太平洋夏令時間", "HEOG": "格陵蘭西部夏令時間", "CDT": "中部夏令時間", "ART": "阿根廷標準時間", "AWDT": "澳洲西部夏令時間", "WESZ": "西歐夏令時間", "HNCU": "古巴標準時間", "NZDT": "紐西蘭夏令時間", "HEPM": "聖皮埃爾和密克隆群島夏令時間", "UYT": "烏拉圭標準時間", "SGT": "新加坡標準時間", "HKT": "香港標準時間", "WIB": "印尼西部時間", "ChST": "查莫洛時間", "HKST": "香港夏令時間", "CST": "中部標準時間", "EAT": "東非時間", "HNPM": "聖皮埃爾和密克隆群島標準時間", "AEDT": "澳洲東部夏令時間", "SAST": "南非標準時間", "CLT": "智利標準時間", "CHAST": "查坦群島標準時間", "OESZ": "東歐夏令時間", "HADT": "夏威夷-阿留申夏令時間", "CAT": "中非時間", "NZST": "紐西蘭標準時間", "ADT": "大西洋夏令時間", "GMT": "格林威治標準時間", "MESZ": "中歐夏令時間", "HNNOMX": "墨西哥西北部標準時間", "WART": "阿根廷西部標準時間", "WARST": "阿根廷西部夏令時間", "ACWDT": "澳洲中西部夏令時間", "LHDT": "豪勳爵島夏令時間", "PDT": "太平洋夏令時間", "CHADT": "查坦群島夏令時間", "BT": "不丹時間", "OEZ": "東歐標準時間", "MYT": "馬來西亞時間", "HNT": "紐芬蘭標準時間", "HAT": "紐芬蘭夏令時間", "COT": "哥倫比亞標準時間", "EST": "東部標準時間", "EDT": "東部夏令時間", "WITA": "印尼中部時間", "∅∅∅": "亞馬遜夏令時間", "WAT": "西非標準時間", "IST": "印度標準時間", "AST": "大西洋標準時間", "BOT": "玻利維亞時間", "HENOMX": "墨西哥西北部夏令時間", "VET": "委內瑞拉時間", "TMST": "土庫曼夏令時間", "CLST": "智利夏令時間", "MST": "澳門標準時間", "HNEG": "格陵蘭東部標準時間", "HEEG": "格陵蘭東部夏令時間", "AEST": "澳洲東部標準時間", "WIT": "印尼東部時間", "COST": "哥倫比亞夏令時間", "HAST": "夏威夷-阿留申標準時間", "AWST": "澳洲西部標準時間", "LHST": "豪勳爵島標準時間", "HECU": "古巴夏令時間", "HNOG": "格陵蘭西部標準時間", "TMT": "土庫曼標準時間", "MEZ": "中歐標準時間", "ACST": "澳洲中部標準時間", "JDT": "日本夏令時間", "AKST": "阿拉斯加標準時間", "GFT": "法屬圭亞那時間", "ECT": "厄瓜多時間", "SRT": "蘇利南時間", "JST": "日本標準時間", "WEZ": "西歐標準時間", "MDT": "澳門夏令時間", "ACWST": "澳洲中西部標準時間", "AKDT": "阿拉斯加夏令時間", "GYT": "蓋亞那時間", "PST": "太平洋標準時間", "WAST": "西非夏令時間", "ARST": "阿根廷夏令時間", "UYST": "烏拉圭夏令時間", "HNPMX": "墨西哥太平洋標準時間", "ACDT": "澳洲中部夏令時間"},
+ }
+ }
+ 
+diff --git a/zh_Hant_HK/zh_Hant_HK.go b/zh_Hant_HK/zh_Hant_HK.go
+index e631368..ca5c469 100644
+--- a/zh_Hant_HK/zh_Hant_HK.go
++++ b/zh_Hant_HK/zh_Hant_HK.go
+@@ -48,30 +48,14 @@ func New() locales.Translator {
+ pluralsCardinal: []locales.PluralRule{6},
+ pluralsOrdinal: []locales.PluralRule{6},
+ pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+ timeSeparator: ":",
+- inifinity: "∞",
+ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "₩", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "NT$", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+ currencyPositiveSuffix: "K",
+ currencyNegativeSuffix: "K",
+- monthsAbbreviated: []string{"", "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"},
+- daysAbbreviated: []string{"周日", "周一", "周二", "周三", "周四", "周五", "周六"},
+- daysNarrow: []string{"日", "一", "二", "三", "四", "五", "六"},
+- daysShort: []string{"周日", "周一", "周二", "周三", "周四", "周五", "周六"},
+- daysWide: []string{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"},
+- periodsAbbreviated: []string{"上午", "下午"},
+- periodsNarrow: []string{"上午", "下午"},
+- periodsWide: []string{"上午", "下午"},
+ erasAbbreviated: []string{"公元前", "公元"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"公元前", "公元"},
+- timezones: map[string]string{"MDT": "澳门夏令时间", "CST": "北美中部標準時間", "CHADT": "查坦夏令时间", "JDT": "日本夏令时间", "HEEG": "格陵兰岛东部夏令时间", "EAT": "东部非洲时间", "WAT": "西部非洲标准时间", "PST": "北美太平洋標準時間", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "LHDT": "豪勋爵岛夏令时间", "HNPMX": "墨西哥太平洋标准时间", "CDT": "中部夏令時間", "UYT": "乌拉圭标准时间", "UYST": "乌拉圭夏令时间", "ACWDT": "澳大利亚中西部夏令时间", "SGT": "新加坡時間", "EST": "北美東部標準時間", "HADT": "夏威夷-阿留申夏令时间", "HKST": "香港夏令时间", "SAST": "南非時間", "JST": "日本标准时间", "WARST": "阿根廷西部夏令时间", "EDT": "北美東部夏令時間", "AKST": "阿拉斯加标准时间", "WIB": "印度尼西亚西部时间", "WIT": "印度尼西亚东部时间", "IST": "印度時間", "MYT": "马来西亚时间", "HNEG": "格陵兰岛东部标准时间", "HENOMX": "墨西哥西北部夏令时间", "COT": "哥伦比亚标准时间", "HEOG": "格陵兰岛西部夏令时间", "AEST": "澳大利亚东部标准时间", "ACST": "澳大利亚中部标准时间", "ACDT": "澳大利亚中部夏令时间", "CAT": "中部非洲时间", "HNOG": "格陵兰岛西部标准时间", "AWST": "澳大利亚西部标准时间", "CLST": "智利夏令时间", "HNNOMX": "墨西哥西北部标准时间", "NZDT": "新西兰夏令时间", "MEZ": "中欧标准时间", "GMT": "格林尼治标准时间", "ADT": "大西洋夏令时间", "SRT": "蘇里南時間", "BT": "不丹时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "HNCU": "古巴标准时间", "AST": "大西洋标准时间", "WESZ": "西欧夏令时间", "WAST": "西部非洲夏令时间", "ACWST": "澳大利亚中西部标准时间", "HNT": "纽芬兰标准时间", "WITA": "印度尼西亚中部时间", "CHAST": "查坦标准时间", "MESZ": "中欧夏令时间", "BOT": "玻利维亚标准时间", "HEPMX": "墨西哥太平洋夏令时间", "AKDT": "阿拉斯加夏令时间", "AWDT": "澳大利亚西部夏令时间", "AEDT": "澳大利亚东部夏令时间", "LHST": "豪勋爵岛标准时间", "ECT": "厄瓜多爾時間", "GYT": "圭亞那時間", "PDT": "北美太平洋夏令時間", "NZST": "新西兰标准时间", "TMST": "土库曼斯坦夏令时间", "COST": "哥伦比亚夏令时间", "ARST": "阿根廷夏令时间", "GFT": "法属圭亚那标准时间", "TMT": "土库曼斯坦标准时间", "∅∅∅": "亚速尔群岛夏令时间", "MST": "澳门标准时间", "HAST": "夏威夷-阿留申标准时间", "WEZ": "西欧标准时间", "ART": "阿根廷标准时间", "OEZ": "东欧标准时间", "HAT": "纽芬兰夏令时间", "CLT": "智利标准时间", "WART": "阿根廷西部标准时间", "HECU": "古巴夏令时间", "VET": "委内瑞拉时间", "HKT": "香港标准时间", "ChST": "查莫罗时间", "OESZ": "东欧夏令时间"},
++ timezones: map[string]string{"NZDT": "NZDT", "ART": "ART", "EAT": "EAT", "MESZ": "MESZ", "ACDT": "ACDT", "HNT": "HNT", "WITA": "WITA", "HNEG": "HNEG", "HEPM": "HEPM", "HNCU": "HNCU", "HEOG": "HEOG", "HKST": "HKST", "HADT": "HADT", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HNPM": "HNPM", "AKDT": "AKDT", "WIB": "WIB", "MST": "MST", "ADT": "ADT", "JDT": "JDT", "LHST": "LHST", "ACWST": "ACWST", "VET": "VET", "OESZ": "OESZ", "ChST": "ChST", "MEZ": "MEZ", "MYT": "MYT", "UYST": "UYST", "HEPMX": "HEPMX", "WAST": "WAST", "CLT": "CLT", "ECT": "厄瓜多爾時間", "CHAST": "CHAST", "UYT": "UYT", "CDT": "中部夏令時間", "ARST": "ARST", "JST": "JST", "COT": "COT", "TMST": "TMST", "MDT": "MDT", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "CAT": "CAT", "GMT": "GMT", "BOT": "BOT", "SGT": "新加坡時間", "AKST": "AKST", "GFT": "GFT", "HAST": "HAST", "SRT": "蘇里南時間", "HEEG": "HEEG", "AWDT": "AWDT", "WESZ": "WESZ", "PST": "北美太平洋標準時間", "PDT": "北美太平洋夏令時間", "WEZ": "WEZ", "HECU": "HECU", "HAT": "HAT", "HKT": "HKT", "CST": "北美中部標準時間", "BT": "BT", "OEZ": "OEZ", "WARST": "WARST", "GYT": "圭亞那時間", "TMT": "TMT", "CLST": "CLST", "NZST": "NZST", "ACST": "ACST", "IST": "印度時間", "WAT": "WAT", "SAST": "南非時間", "AST": "AST", "LHDT": "LHDT", "AEDT": "AEDT", "HNPMX": "HNPMX", "WART": "WART", "COST": "COST", "HNOG": "HNOG", "EST": "北美東部標準時間", "EDT": "北美東部夏令時間", "AWST": "AWST", "AEST": "AEST", "ACWDT": "ACWDT", "WIT": "WIT"},
+ }
+ }
+ 
+@@ -117,7 +101,7 @@ func (zh *zh_Hant_HK) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (zh *zh_Hant_HK) MonthsAbbreviated() []string {
+- return zh.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -127,7 +111,7 @@ func (zh *zh_Hant_HK) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (zh *zh_Hant_HK) MonthsNarrow() []string {
+- return zh.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -137,7 +121,7 @@ func (zh *zh_Hant_HK) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (zh *zh_Hant_HK) MonthsWide() []string {
+- return zh.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -183,73 +167,13 @@ func (zh *zh_Hant_HK) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'zh_Hant_HK' and handles both Whole and Real numbers based on 'v'
+ func (zh *zh_Hant_HK) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'zh_Hant_HK' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (zh *zh_Hant_HK) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, zh.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'zh_Hant_HK'
+@@ -257,7 +181,7 @@ func (zh *zh_Hant_HK) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zh.currencies[currency]
+- l := len(s) + len(symbol) + 3
++ l := len(s) + len(symbol) + 1
+ 
+ b := make([]byte, 0, l)
+ 
+@@ -295,7 +219,7 @@ func (zh *zh_Hant_HK) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zh.currencies[currency]
+- l := len(s) + len(symbol) + 3
++ l := len(s) + len(symbol) + 1
+ 
+ b := make([]byte, 0, l)
+ 
+@@ -364,18 +288,6 @@ func (zh *zh_Hant_HK) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -384,18 +296,6 @@ func (zh *zh_Hant_HK) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -425,27 +325,6 @@ func (zh *zh_Hant_HK) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -454,34 +333,6 @@ func (zh *zh_Hant_HK) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -490,39 +341,6 @@ func (zh *zh_Hant_HK) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -531,43 +349,5 @@ func (zh *zh_Hant_HK) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+-
+- if btz, ok := zh.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+diff --git a/zh_Hant_MO/zh_Hant_MO.go b/zh_Hant_MO/zh_Hant_MO.go
+index 1a406cb..66354f8 100644
+--- a/zh_Hant_MO/zh_Hant_MO.go
++++ b/zh_Hant_MO/zh_Hant_MO.go
+@@ -42,32 +42,13 @@ type zh_Hant_MO struct {
+ // New returns a new instance of translator for the 'zh_Hant_MO' locale
+ func New() locales.Translator {
+ return &zh_Hant_MO{
+- locale: "zh_Hant_MO",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP$", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"},
+- daysAbbreviated: []string{"周日", "周一", "周二", "周三", "周四", "周五", "周六"},
+- daysNarrow: []string{"日", "一", "二", "三", "四", "五", "六"},
+- daysShort: []string{"周日", "周一", "周二", "周三", "周四", "周五", "周六"},
+- daysWide: []string{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"},
+- periodsAbbreviated: []string{"上午", "下午"},
+- periodsNarrow: []string{"上午", "下午"},
+- periodsWide: []string{"上午", "下午"},
+- erasAbbreviated: []string{"公元前", "公元"},
+- erasNarrow: []string{"公元前", "公元"},
+- erasWide: []string{"公元前", "公元"},
+- timezones: map[string]string{"WARST": "阿根廷西部夏令时间", "MST": "澳门标准时间", "SRT": "苏里南时间", "ACST": "澳大利亚中部标准时间", "ACDT": "澳大利亚中部夏令时间", "UYT": "乌拉圭标准时间", "EDT": "北美东部夏令时间", "HAT": "纽芬兰夏令时间", "HEOG": "格陵兰岛西部夏令时间", "∅∅∅": "亚马逊夏令时间", "GFT": "法属圭亚那标准时间", "WAT": "西部非洲标准时间", "GMT": "格林尼治标准时间", "LHDT": "豪勋爵岛夏令时间", "OESZ": "东欧夏令时间", "SGT": "新加坡标准时间", "NZST": "新西兰标准时间", "CHADT": "查坦夏令时间", "JST": "日本标准时间", "EST": "北美东部标准时间", "AEST": "澳大利亚东部标准时间", "NZDT": "新西兰夏令时间", "ACWDT": "澳大利亚中西部夏令时间", "HNOG": "格陵兰岛西部标准时间", "WITA": "印度尼西亚中部时间", "HNEG": "格陵兰岛东部标准时间", "OEZ": "东欧标准时间", "HNNOMX": "墨西哥西北部标准时间", "AKST": "阿拉斯加标准时间", "MDT": "澳门夏令时间", "CST": "北美中部标准时间", "ARST": "阿根廷夏令时间", "CHAST": "查坦标准时间", "MESZ": "中欧夏令时间", "WART": "阿根廷西部标准时间", "ADT": "大西洋夏令时间", "VET": "委内瑞拉时间", "ART": "阿根廷标准时间", "AEDT": "澳大利亚东部夏令时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "CLST": "智利夏令时间", "GYT": "圭亚那时间", "UYST": "乌拉圭夏令时间", "HAST": "夏威夷-阿留申标准时间", "HKT": "香港标准时间", "TMST": "土库曼斯坦夏令时间", "EAT": "东部非洲时间", "HNCU": "古巴标准时间", "ACWST": "澳大利亚中西部标准时间", "MEZ": "中欧标准时间", "LHST": "豪勋爵岛标准时间", "WAST": "西部非洲夏令时间", "COT": "哥伦比亚标准时间", "COST": "哥伦比亚夏令时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "WEZ": "西欧标准时间", "SAST": "南部非洲时间", "IST": "印度时间", "JDT": "日本夏令时间", "HEEG": "格陵兰岛东部夏令时间", "MYT": "马来西亚时间", "BT": "不丹时间", "WIT": "印度尼西亚东部时间", "HNT": "纽芬兰标准时间", "PDT": "北美太平洋夏令时间", "AWST": "澳大利亚西部标准时间", "ECT": "厄瓜多尔标准时间", "CAT": "中部非洲时间", "HECU": "古巴夏令时间", "CDT": "北美中部夏令时间", "ChST": "查莫罗时间", "BOT": "玻利维亚标准时间", "AST": "大西洋标准时间", "AWDT": "澳大利亚西部夏令时间", "TMT": "土库曼斯坦标准时间", "AKDT": "阿拉斯加夏令时间", "WIB": "印度尼西亚西部时间", "PST": "北美太平洋标准时间", "HADT": "夏威夷-阿留申夏令时间", "WESZ": "西欧夏令时间", "HKST": "香港夏令时间", "CLT": "智利标准时间", "HENOMX": "墨西哥西北部夏令时间", "HNPMX": "墨西哥太平洋标准时间", "HEPMX": "墨西哥太平洋夏令时间"},
++ locale: "zh_Hant_MO",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP$", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"EAT": "EAT", "BT": "BT", "CHADT": "CHADT", "UYST": "UYST", "SGT": "SGT", "VET": "VET", "HNCU": "HNCU", "JST": "JST", "JDT": "JDT", "HADT": "HADT", "ACST": "ACST", "HNEG": "HNEG", "UYT": "UYT", "TMT": "TMT", "OEZ": "OEZ", "HNT": "HNT", "HAT": "HAT", "MDT": "MDT", "AST": "AST", "PST": "PST", "GFT": "GFT", "OESZ": "OESZ", "GYT": "GYT", "HKST": "HKST", "CLT": "CLT", "ChST": "ChST", "ART": "ART", "BOT": "BOT", "LHST": "LHST", "COST": "COST", "HEOG": "HEOG", "EDT": "EDT", "WITA": "WITA", "NZST": "NZST", "NZDT": "NZDT", "ACDT": "ACDT", "MYT": "MYT", "IST": "IST", "WEZ": "WEZ", "HKT": "HKT", "HNNOMX": "HNNOMX", "HNOG": "HNOG", "MESZ": "MESZ", "AWDT": "AWDT", "CLST": "CLST", "ECT": "ECT", "ARST": "ARST", "AEDT": "AEDT", "WESZ": "WESZ", "WART": "WART", "WARST": "WARST", "MST": "MST", "AWST": "AWST", "ACWST": "ACWST", "ACWDT": "ACWDT", "HEPMX": "HEPMX", "WIT": "WIT", "EST": "EST", "CAT": "CAT", "CDT": "CDT", "HEEG": "HEEG", "HENOMX": "HENOMX", "HAST": "HAST", "LHDT": "LHDT", "PDT": "PDT", "CHAST": "CHAST", "HNPMX": "HNPMX", "WAT": "WAT", "WAST": "WAST", "SAST": "SAST", "TMST": "TMST", "ADT": "ADT", "MEZ": "MEZ", "HNPM": "HNPM", "HEPM": "HEPM", "HECU": "HECU", "AKST": "AKST", "WIB": "WIB", "GMT": "GMT", "SRT": "SRT", "AKDT": "AKDT", "COT": "COT", "∅∅∅": "∅∅∅", "CST": "CST", "AEST": "AEST"},
+ }
+ }
+ 
+@@ -113,7 +94,7 @@ func (zh *zh_Hant_MO) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (zh *zh_Hant_MO) MonthsAbbreviated() []string {
+- return zh.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -123,7 +104,7 @@ func (zh *zh_Hant_MO) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (zh *zh_Hant_MO) MonthsNarrow() []string {
+- return zh.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -133,7 +114,7 @@ func (zh *zh_Hant_MO) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (zh *zh_Hant_MO) MonthsWide() []string {
+- return zh.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -179,73 +160,13 @@ func (zh *zh_Hant_MO) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'zh_Hant_MO' and handles both Whole and Real numbers based on 'v'
+ func (zh *zh_Hant_MO) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'zh_Hant_MO' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (zh *zh_Hant_MO) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, zh.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'zh_Hant_MO'
+@@ -253,56 +174,7 @@ func (zh *zh_Hant_MO) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zh.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'zh_Hant_MO'
+@@ -311,64 +183,7 @@ func (zh *zh_Hant_MO) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zh.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, zh.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'zh_Hant_MO'
+@@ -376,17 +191,6 @@ func (zh *zh_Hant_MO) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -395,18 +199,6 @@ func (zh *zh_Hant_MO) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -415,18 +207,6 @@ func (zh *zh_Hant_MO) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -435,19 +215,6 @@ func (zh *zh_Hant_MO) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+- b = append(b, zh.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -456,27 +223,6 @@ func (zh *zh_Hant_MO) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -485,34 +231,6 @@ func (zh *zh_Hant_MO) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,39 +239,6 @@ func (zh *zh_Hant_MO) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -562,43 +247,5 @@ func (zh *zh_Hant_MO) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+-
+- if btz, ok := zh.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+diff --git a/zh_Hant_TW/zh_Hant_TW.go b/zh_Hant_TW/zh_Hant_TW.go
+index d0849d0..946c567 100644
+--- a/zh_Hant_TW/zh_Hant_TW.go
++++ b/zh_Hant_TW/zh_Hant_TW.go
+@@ -42,32 +42,13 @@ type zh_Hant_TW struct {
+ // New returns a new instance of translator for the 'zh_Hant_TW' locale
+ func New() locales.Translator {
+ return &zh_Hant_TW{
+- locale: "zh_Hant_TW",
+- pluralsCardinal: []locales.PluralRule{6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- monthsAbbreviated: []string{"", "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"},
+- monthsNarrow: []string{"", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"},
+- monthsWide: []string{"", "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"},
+- daysAbbreviated: []string{"周日", "周一", "周二", "周三", "周四", "周五", "周六"},
+- daysNarrow: []string{"日", "一", "二", "三", "四", "五", "六"},
+- daysShort: []string{"周日", "周一", "周二", "周三", "周四", "周五", "周六"},
+- daysWide: []string{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"},
+- periodsAbbreviated: []string{"上午", "下午"},
+- periodsNarrow: []string{"上午", "下午"},
+- periodsWide: []string{"上午", "下午"},
+- erasAbbreviated: []string{"公元前", "公元"},
+- erasNarrow: []string{"公元前", "公元"},
+- erasWide: []string{"公元前", "公元"},
+- timezones: map[string]string{"AEST": "澳大利亚东部标准时间", "TMT": "土库曼斯坦标准时间", "AWST": "澳大利亚西部标准时间", "OEZ": "东欧标准时间", "WARST": "阿根廷西部夏令时间", "PDT": "北美太平洋夏令时间", "AKST": "阿拉斯加标准时间", "CST": "北美中部标准时间", "MYT": "马来西亚时间", "UYT": "乌拉圭标准时间", "AEDT": "澳大利亚东部夏令时间", "SGT": "新加坡标准时间", "HNPMX": "墨西哥太平洋标准时间", "HEPMX": "墨西哥太平洋夏令时间", "MESZ": "中欧夏令时间", "LHDT": "豪勋爵岛夏令时间", "CLST": "智利夏令时间", "HECU": "古巴夏令时间", "GMT": "格林尼治标准时间", "NZDT": "新西兰夏令时间", "ADT": "大西洋夏令时间", "HAST": "夏威夷-阿留申标准时间", "PST": "北美太平洋标准时间", "HNT": "纽芬兰标准时间", "CHADT": "查坦夏令时间", "TMST": "土库曼斯坦夏令时间", "COST": "哥伦比亚夏令时间", "GYT": "圭亚那时间", "UYST": "乌拉圭夏令时间", "HADT": "夏威夷-阿留申夏令时间", "IST": "印度时间", "ACST": "澳大利亚中部标准时间", "∅∅∅": "秘鲁夏令时间", "WIB": "印度尼西亚西部时间", "COT": "哥伦比亚标准时间", "EDT": "北美东部夏令时间", "VET": "委内瑞拉时间", "BT": "不丹时间", "HEOG": "格陵兰岛西部夏令时间", "WAT": "西部非洲标准时间", "WAST": "西部非洲夏令时间", "WART": "阿根廷西部标准时间", "WESZ": "西欧夏令时间", "HKST": "香港夏令时间", "CLT": "智利标准时间", "MDT": "澳门夏令时间", "SRT": "苏里南时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "ECT": "厄瓜多尔标准时间", "HAT": "纽芬兰夏令时间", "HNOG": "格陵兰岛西部标准时间", "JDT": "日本夏令时间", "GFT": "法属圭亚那标准时间", "MST": "澳门标准时间", "LHST": "豪勋爵岛标准时间", "SAST": "南部非洲时间", "ACWST": "澳大利亚中西部标准时间", "ART": "阿根廷标准时间", "HKT": "香港标准时间", "AWDT": "澳大利亚西部夏令时间", "ChST": "查莫罗时间", "HNCU": "古巴标准时间", "EST": "北美东部标准时间", "AST": "大西洋标准时间", "WIT": "印度尼西亚东部时间", "WEZ": "西欧标准时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "NZST": "新西兰标准时间", "HNEG": "格陵兰岛东部标准时间", "HNNOMX": "墨西哥西北部标准时间", "HENOMX": "墨西哥西北部夏令时间", "AKDT": "阿拉斯加夏令时间", "ACWDT": "澳大利亚中西部夏令时间", "WITA": "印度尼西亚中部时间", "HEEG": "格陵兰岛东部夏令时间", "ACDT": "澳大利亚中部夏令时间", "EAT": "东部非洲时间", "CDT": "北美中部夏令时间", "OESZ": "东欧夏令时间", "CAT": "中部非洲时间", "CHAST": "查坦标准时间", "BOT": "玻利维亚标准时间", "ARST": "阿根廷夏令时间", "MEZ": "中欧标准时间", "JST": "日本标准时间"},
++ locale: "zh_Hant_TW",
++ pluralsCardinal: []locales.PluralRule{6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"WIT": "WIT", "AWST": "AWST", "LHST": "LHST", "ACWDT": "ACWDT", "HNCU": "HNCU", "WART": "WART", "TMST": "TMST", "CLT": "CLT", "MDT": "MDT", "ACDT": "ACDT", "HENOMX": "HENOMX", "CHADT": "CHADT", "UYT": "UYT", "JST": "JST", "ACWST": "ACWST", "HAT": "HAT", "CDT": "CDT", "ChST": "ChST", "ARST": "ARST", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "EDT": "EDT", "HKT": "HKT", "CLST": "CLST", "WITA": "WITA", "MYT": "MYT", "JDT": "JDT", "PST": "PST", "GFT": "GFT", "HNOG": "HNOG", "HEOG": "HEOG", "MEZ": "MEZ", "∅∅∅": "∅∅∅", "IST": "IST", "AEST": "AEST", "COT": "COT", "SAST": "SAST", "GYT": "GYT", "HKST": "HKST", "BOT": "BOT", "EAT": "EAT", "WEZ": "WEZ", "HNPMX": "HNPMX", "AKST": "AKST", "TMT": "TMT", "AEDT": "AEDT", "WAT": "WAT", "NZST": "NZST", "NZDT": "NZDT", "PDT": "PDT", "HNT": "HNT", "EST": "EST", "SRT": "SRT", "LHDT": "LHDT", "UYST": "UYST", "VET": "VET", "WAST": "WAST", "WIB": "WIB", "HNPM": "HNPM", "HEPMX": "HEPMX", "ADT": "ADT", "GMT": "GMT", "WARST": "WARST", "ECT": "ECT", "MESZ": "MESZ", "ACST": "ACST", "BT": "BT", "SGT": "SGT", "ART": "ART", "HAST": "HAST", "CHAST": "CHAST", "AKDT": "AKDT", "HECU": "HECU", "OESZ": "OESZ", "MST": "MST", "AST": "AST", "HADT": "HADT", "HEEG": "HEEG", "WESZ": "WESZ", "OEZ": "OEZ", "COST": "COST", "CAT": "CAT", "CST": "CST", "HNEG": "HNEG", "HEPM": "HEPM"},
+ }
+ }
+ 
+@@ -113,7 +94,7 @@ func (zh *zh_Hant_TW) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (zh *zh_Hant_TW) MonthsAbbreviated() []string {
+- return zh.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -123,7 +104,7 @@ func (zh *zh_Hant_TW) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (zh *zh_Hant_TW) MonthsNarrow() []string {
+- return zh.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -133,7 +114,7 @@ func (zh *zh_Hant_TW) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (zh *zh_Hant_TW) MonthsWide() []string {
+- return zh.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -179,73 +160,13 @@ func (zh *zh_Hant_TW) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'zh_Hant_TW' and handles both Whole and Real numbers based on 'v'
+ func (zh *zh_Hant_TW) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'zh_Hant_TW' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (zh *zh_Hant_TW) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, zh.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'zh_Hant_TW'
+@@ -253,56 +174,7 @@ func (zh *zh_Hant_TW) FmtCurrency(num float64, v uint64, currency currency.Type)
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zh.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, zh.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'zh_Hant_TW'
+@@ -311,64 +183,7 @@ func (zh *zh_Hant_TW) FmtAccounting(num float64, v uint64, currency currency.Typ
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zh.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zh.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zh.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, zh.minus[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zh.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'zh_Hant_TW'
+@@ -376,17 +191,6 @@ func (zh *zh_Hant_TW) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -395,18 +199,6 @@ func (zh *zh_Hant_TW) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -415,18 +207,6 @@ func (zh *zh_Hant_TW) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+-
+ return string(b)
+ }
+ 
+@@ -435,19 +215,6 @@ func (zh *zh_Hant_TW) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+- b = append(b, []byte{0xe5, 0xb9, 0xb4}...)
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0xe6, 0x9c, 0x88}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0xe6, 0x97, 0xa5}...)
+- b = append(b, zh.daysWide[t.Weekday()]...)
+-
+ return string(b)
+ }
+ 
+@@ -456,27 +223,6 @@ func (zh *zh_Hant_TW) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -485,34 +231,6 @@ func (zh *zh_Hant_TW) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -521,39 +239,6 @@ func (zh *zh_Hant_TW) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -562,43 +247,5 @@ func (zh *zh_Hant_TW) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- tz, _ := t.Zone()
+-
+- if btz, ok := zh.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+- b = append(b, []byte{0x20}...)
+-
+- if t.Hour() < 12 {
+- b = append(b, zh.periodsAbbreviated[0]...)
+- } else {
+- b = append(b, zh.periodsAbbreviated[1]...)
+- }
+-
+- h := t.Hour()
+-
+- if h > 12 {
+- h -= 12
+- }
+-
+- b = strconv.AppendInt(b, int64(h), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zh.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+diff --git a/zu/zu.go b/zu/zu.go
+index 2debb9d..47ba444 100644
+--- a/zu/zu.go
++++ b/zu/zu.go
+@@ -71,7 +71,7 @@ func New() locales.Translator {
+ erasAbbreviated: []string{"BC", "AD"},
+ erasNarrow: []string{"", ""},
+ erasWide: []string{"BC", "AD"},
+- timezones: map[string]string{"GMT": "Isikhathi sase-Greenwich Mean", "ACWST": "Isikhathi sase-Australian Central West esivamile", "ARST": "Isikhathi sase-Argentina sasehlobo", "HNEG": "Isikhathi sase-East Greenland esijwayelekile", "ACST": "Isikhathi sase-Australian Central esivamile", "EAT": "Isikhathi saseMpumalanga Afrika", "HNPMX": "Isikhathi sase-Mexican Pacific esijwayelekile", "AWST": "Isikhathi sase-Australian Western esivamile", "SAST": "Isikhathi esijwayelekile saseNingizimu Afrika", "∅∅∅": "Isikhathi sase-Amazon sasehlobo", "AEST": "Isikhathi esivamile sase-Australian East", "WAT": "Isikhathi esijwayelekile saseNtshonalanga Afrika", "WIT": "Isikhathi sase-Eastern Indonesia", "AKDT": "Isikhathi sase-Alaska sasemini", "UYT": "Isikhathi sase-Uruguay esijwayelekile", "ACWDT": "Isikhathi sasemini sase-Australian Central West", "CHAST": "Isikhathi esivamile sase-Chatham", "AKST": "Isikhathi sase-Alaska esijwayelekile", "EST": "Isikhathi sase-North American East esijwayelekile", "WIB": "Isikhathi sase-Western Indonesia", "WESZ": "Isikhathi sasehlobo sase-Western Europe", "AWDT": "Isikhathi sase-Australian Western sasemini", "HKT": "Isikhathi esivamile sase-Hong Kong", "ACDT": "Isikhathi sase-Australian Central sasemini", "HENOMX": "Isikhathi sase-Northwest Mexico sasemini", "TMST": "Isikhathi sehlobo sase-Turkmenistan", "HAT": "Isikhathi sase-Newfoundland sasemini", "AEDT": "Isikhathi sasemini sase-Australian East", "HEEG": "Isikhathi sase-East Greenland sasemini", "CAT": "Isikhathi sase-Central Africa", "COST": "Isikhathi sase-Colombia sasehlobo", "HADT": "Isikhathi sase-Hawaii-Aleutia sasemini", "OEZ": "Isikhathi esijwayelekile sase-Eastern Europe", "COT": "Isikhathi sase-Colombia esijwayelekile", "AST": "Isikhathi sase-Atlantic esijwayelekile", "HAST": "Isikhathi sase-Hawaii-Aleutia esijwayelekile", "WEZ": "Isikhathi esijwayelekile sase-Western Europe", "HNT": "Isikhathi sase-Newfoundland esijwayelekile", "PDT": "Isikhathi sase-North American Pacific sasemini", "WITA": "Isikhathi sase-Central Indonesia", "NZST": "Isikhathi esivamile sase-New Zealand", "BOT": "Isikhathi sase-Bolivia", "HNNOMX": "Isikhathi sase-Northwest Mexico esijwayelekile", "ADT": "Isikhathi sase-Atlantic sasemini", "GYT": "Isikhathi sase-Guyana", "HEOG": "Isikhathi sase-West Greenland sasehlobo", "HKST": "Isikhathi sehlobo sase-Hong Kong", "HEPM": "Isikhathi sase-Saint Pierre nase-Miquelon sasemini", "TMT": "Isikhathi esivamile sase-Turkmenistan", "WAST": "Isikhathi sasehlobo saseNtshonalanga Afrika", "SGT": "Isikhathi esivamile sase-Singapore", "HEPMX": "Isikhathi sase-Mexican Pacific sasemini", "CST": "Isikhathi sase-North American Central esijwayelekile", "MYT": "Isikhathi sase-Malaysia", "NZDT": "Isikhathi sasemini sase-New Zealand", "ECT": "Isikhathi sase-Ecuador", "WART": "Isikhathi saseNyakatho ne-Argentina esijwayelekile", "WARST": "Isikhathi saseNyakatho ne-Argentina sasehlobo", "MST": "MST", "MEZ": "Isikhathi esijwayelekile sase-Central Europe", "CLST": "Isikhathi sase-Chile sasehlobo", "CHADT": "Isikhathi sasemini sase-Chatham", "UYST": "Isikhathi sase-Uruguay sasehlobo", "LHST": "Isikhathi sase-Lord Howe esivamile", "LHDT": "Isikhathi sase-Lord Howe sasemini", "CLT": "Isikhathi sase-Chile esijwayelekile", "JDT": "Isikhathi semini sase-Japan", "GFT": "Isikhathi sase-French Guiana", "OESZ": "Isikhathi sasehlobo sase-Eastern Europe", "HNCU": "Isikhathi sase-Cuba esijwayelekile", "VET": "Isikhathi sase-Venezuela", "MESZ": "Isikhathi sasehlobo sase-Central Europe", "IST": "Isikhathi sase-India esivamile", "HNPM": "Iikhathi sase-Saint Pierre nase-Miquelon esijwayelekile", "HECU": "Isikhathi sase-Cuba sasemini", "MDT": "MDT", "EDT": "Isikhathi sase-North American East sasemini", "BT": "Isikhathi sase-Bhutan", "JST": "Isikhathi esivamile sase-Japan", "ChST": "Isikhathi esijwayelekile sase-Chamorro", "ART": "Isikhathi sase-Argentina esijwayelekile", "HNOG": "Isikhathi sase-West Greenland esijwayelekile", "PST": "Isikhathi sase-North American Pacific esijwayelekile", "CDT": "Isikhathi sase-North American Central sasemini", "SRT": "Isikhathi sase-Suriname"},
++ timezones: map[string]string{"HNPMX": "Isikhathi sase-Mexican Pacific esijwayelekile", "MDT": "MDT", "WIB": "Isikhathi sase-Western Indonesia", "UYST": "Isikhathi sase-Uruguay sasehlobo", "TMT": "Isikhathi esivamile sase-Turkmenistan", "ChST": "Isikhathi esijwayelekile sase-Chamorro", "WAST": "Isikhathi sasehlobo saseNtshonalanga Afrika", "SAST": "Isikhathi esijwayelekile saseNingizimu Afrika", "ECT": "Isikhathi sase-Ecuador", "JST": "Isikhathi esivamile sase-Japan", "CHADT": "Isikhathi sasemini sase-Chatham", "WAT": "Isikhathi esijwayelekile saseNtshonalanga Afrika", "HNT": "Isikhathi sase-Newfoundland esijwayelekile", "COT": "Isikhathi sase-Colombia esijwayelekile", "CLST": "Isikhathi sase-Chile sasehlobo", "NZDT": "Isikhathi sasemini sase-New Zealand", "EAT": "Isikhathi saseMpumalanga Afrika", "AKST": "Isikhathi sase-Alaska esijwayelekile", "EDT": "Isikhathi sase-North American East sasemini", "MESZ": "Isikhathi sasehlobo sase-Central Europe", "HEEG": "Isikhathi sase-East Greenland sasemini", "IST": "Isikhathi sase-India esivamile", "WIT": "Isikhathi sase-Eastern Indonesia", "TMST": "Isikhathi sehlobo sase-Turkmenistan", "HNNOMX": "Isikhathi sase-Northwest Mexico esijwayelekile", "HEPM": "Isikhathi sase-Saint Pierre nase-Miquelon sasemini", "CHAST": "Isikhathi esivamile sase-Chatham", "HNCU": "Isikhathi sase-Cuba esijwayelekile", "HECU": "Isikhathi sase-Cuba sasemini", "CLT": "Isikhathi sase-Chile esijwayelekile", "GMT": "Isikhathi sase-Greenwich Mean", "BOT": "Isikhathi sase-Bolivia", "ART": "Isikhathi sase-Argentina esijwayelekile", "SRT": "Isikhathi sase-Suriname", "HNPM": "Iikhathi sase-Saint Pierre nase-Miquelon esijwayelekile", "GYT": "Isikhathi sase-Guyana", "WITA": "Isikhathi sase-Central Indonesia", "NZST": "Isikhathi esivamile sase-New Zealand", "AST": "Isikhathi sase-Atlantic esijwayelekile", "COST": "Isikhathi sase-Colombia sasehlobo", "MST": "MST", "AEDT": "Isikhathi sasemini sase-Australian East", "SGT": "Isikhathi esivamile sase-Singapore", "AKDT": "Isikhathi sase-Alaska sasemini", "OESZ": "Isikhathi sasehlobo sase-Eastern Europe", "GFT": "Isikhathi sase-French Guiana", "HAT": "Isikhathi sase-Newfoundland sasemini", "HKST": "Isikhathi sehlobo sase-Hong Kong", "∅∅∅": "Isikhathi sasehlobo sase-Azores", "ARST": "Isikhathi sase-Argentina sasehlobo", "HNEG": "Isikhathi sase-East Greenland esijwayelekile", "LHDT": "Isikhathi sase-Lord Howe sasemini", "MYT": "Isikhathi sase-Malaysia", "UYT": "Isikhathi sase-Uruguay esijwayelekile", "PST": "Isikhathi sase-North American Pacific esijwayelekile", "PDT": "Isikhathi sase-North American Pacific sasemini", "ACST": "Isikhathi sase-Australian Central esivamile", "ACDT": "Isikhathi sase-Australian Central sasemini", "AWST": "Isikhathi sase-Australian Western esivamile", "WESZ": "Isikhathi sasehlobo sase-Western Europe", "WART": "Isikhathi saseNyakatho ne-Argentina esijwayelekile", "WARST": "Isikhathi saseNyakatho ne-Argentina sasehlobo", "HEPMX": "Isikhathi sase-Mexican Pacific sasemini", "OEZ": "Isikhathi esijwayelekile sase-Eastern Europe", "HNOG": "Isikhathi sase-West Greenland esijwayelekile", "HEOG": "Isikhathi sase-West Greenland sasehlobo", "CAT": "Isikhathi sase-Central Africa", "ACWDT": "Isikhathi sasemini sase-Australian Central West", "WEZ": "Isikhathi esijwayelekile sase-Western Europe", "HAST": "Isikhathi sase-Hawaii-Aleutia esijwayelekile", "HADT": "Isikhathi sase-Hawaii-Aleutia sasemini", "HENOMX": "Isikhathi sase-Northwest Mexico sasemini", "LHST": "Isikhathi sase-Lord Howe esivamile", "CST": "Isikhathi sase-North American Central esijwayelekile", "CDT": "Isikhathi sase-North American Central sasemini", "ADT": "Isikhathi sase-Atlantic sasemini", "BT": "Isikhathi sase-Bhutan", "ACWST": "Isikhathi sase-Australian Central West esivamile", "AEST": "Isikhathi esivamile sase-Australian East", "VET": "Isikhathi sase-Venezuela", "EST": "Isikhathi sase-North American East esijwayelekile", "MEZ": "Isikhathi esijwayelekile sase-Central Europe", "AWDT": "Isikhathi sase-Australian Western sasemini", "JDT": "Isikhathi semini sase-Japan", "HKT": "Isikhathi esivamile sase-Hong Kong"},
+ }
+ }
+ 
+diff --git a/zu_ZA/zu_ZA.go b/zu_ZA/zu_ZA.go
+index 7c2ea51..964d6fe 100644
+--- a/zu_ZA/zu_ZA.go
++++ b/zu_ZA/zu_ZA.go
+@@ -10,68 +10,45 @@ import (
+ )
+ 
+ type zu_ZA struct {
+- locale string
+- pluralsCardinal []locales.PluralRule
+- pluralsOrdinal []locales.PluralRule
+- pluralsRange []locales.PluralRule
+- decimal string
+- group string
+- minus string
+- percent string
+- perMille string
+- timeSeparator string
+- inifinity string
+- currencies []string // idx = enum of currency code
+- currencyNegativePrefix string
+- currencyNegativeSuffix string
+- monthsAbbreviated []string
+- monthsNarrow []string
+- monthsWide []string
+- daysAbbreviated []string
+- daysNarrow []string
+- daysShort []string
+- daysWide []string
+- periodsAbbreviated []string
+- periodsNarrow []string
+- periodsShort []string
+- periodsWide []string
+- erasAbbreviated []string
+- erasNarrow []string
+- erasWide []string
+- timezones map[string]string
++ locale string
++ pluralsCardinal []locales.PluralRule
++ pluralsOrdinal []locales.PluralRule
++ pluralsRange []locales.PluralRule
++ decimal string
++ group string
++ minus string
++ percent string
++ perMille string
++ timeSeparator string
++ inifinity string
++ currencies []string // idx = enum of currency code
++ monthsAbbreviated []string
++ monthsNarrow []string
++ monthsWide []string
++ daysAbbreviated []string
++ daysNarrow []string
++ daysShort []string
++ daysWide []string
++ periodsAbbreviated []string
++ periodsNarrow []string
++ periodsShort []string
++ periodsWide []string
++ erasAbbreviated []string
++ erasNarrow []string
++ erasWide []string
++ timezones map[string]string
+ }
+ 
+ // New returns a new instance of translator for the 'zu_ZA' locale
+ func New() locales.Translator {
+ return &zu_ZA{
+- locale: "zu_ZA",
+- pluralsCardinal: []locales.PluralRule{2, 6},
+- pluralsOrdinal: []locales.PluralRule{6},
+- pluralsRange: []locales.PluralRule{2, 6},
+- decimal: ".",
+- group: ",",
+- minus: "-",
+- percent: "%",
+- perMille: "‰",
+- timeSeparator: ":",
+- inifinity: "∞",
+- currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
+- currencyNegativePrefix: "(",
+- currencyNegativeSuffix: ")",
+- monthsAbbreviated: []string{"", "Jan", "Feb", "Mas", "Eph", "Mey", "Jun", "Jul", "Aga", "Sep", "Okt", "Nov", "Dis"},
+- monthsNarrow: []string{"", "J", "F", "M", "E", "M", "J", "J", "A", "S", "O", "N", "D"},
+- monthsWide: []string{"", "UMasingana", "Februwari", "Mashi", "Ephreli", "Meyi", "Juni", "Julayi", "Agasti", "Septhemba", "Okthoba", "Novemba", "Disemba"},
+- daysAbbreviated: []string{"Son", "Mso", "Bil", "Tha", "Sin", "Hla", "Mgq"},
+- daysNarrow: []string{"S", "M", "B", "T", "S", "H", "M"},
+- daysShort: []string{"Son", "Mso", "Bil", "Tha", "Sin", "Hla", "Mgq"},
+- daysWide: []string{"ISonto", "UMsombuluko", "ULwesibili", "ULwesithathu", "ULwesine", "ULwesihlanu", "UMgqibelo"},
+- periodsAbbreviated: []string{"AM", "PM"},
+- periodsNarrow: []string{"a", "p"},
+- periodsWide: []string{"AM", "PM"},
+- erasAbbreviated: []string{"BC", "AD"},
+- erasNarrow: []string{"", ""},
+- erasWide: []string{"BC", "AD"},
+- timezones: map[string]string{"ART": "Isikhathi sase-Argentina esijwayelekile", "AEST": "Isikhathi esivamile sase-Australian East", "EDT": "Isikhathi sase-North American East sasemini", "GYT": "Isikhathi sase-Guyana", "AST": "Isikhathi sase-Atlantic esijwayelekile", "WESZ": "Isikhathi sasehlobo sase-Western Europe", "SRT": "Isikhathi sase-Suriname", "MYT": "Isikhathi sase-Malaysia", "AKDT": "Isikhathi sase-Alaska sasemini", "ADT": "Isikhathi sase-Atlantic sasemini", "HAST": "Isikhathi sase-Hawaii-Aleutia esijwayelekile", "∅∅∅": "Isikhathi sase-Amazon sasehlobo", "EAT": "Isikhathi saseMpumalanga Afrika", "MST": "MST", "MDT": "MDT", "WITA": "Isikhathi sase-Central Indonesia", "MESZ": "Isikhathi sasehlobo sase-Central Europe", "GFT": "Isikhathi sase-French Guiana", "CST": "Isikhathi sase-North American Central esijwayelekile", "SAST": "Isikhathi esijwayelekile saseNingizimu Afrika", "ChST": "Isikhathi esijwayelekile sase-Chamorro", "WAST": "Isikhathi sasehlobo saseNtshonalanga Afrika", "HNPMX": "Isikhathi sase-Mexican Pacific esijwayelekile", "AEDT": "Isikhathi sasemini sase-Australian East", "OESZ": "Isikhathi sasehlobo sase-Eastern Europe", "HKT": "Isikhathi esivamile sase-Hong Kong", "CHADT": "Isikhathi sasemini sase-Chatham", "MEZ": "Isikhathi esijwayelekile sase-Central Europe", "CLT": "Isikhathi sase-Chile esijwayelekile", "CAT": "Isikhathi sase-Central Africa", "UYT": "Isikhathi sase-Uruguay esijwayelekile", "HNPM": "Iikhathi sase-Saint Pierre nase-Miquelon esijwayelekile", "HEPM": "Isikhathi sase-Saint Pierre nase-Miquelon sasemini", "HNEG": "Isikhathi sase-East Greenland esijwayelekile", "HNNOMX": "Isikhathi sase-Northwest Mexico esijwayelekile", "PST": "Isikhathi sase-North American Pacific esijwayelekile", "PDT": "Isikhathi sase-North American Pacific sasemini", "WIB": "Isikhathi sase-Western Indonesia", "ACWDT": "Isikhathi sasemini sase-Australian Central West", "HENOMX": "Isikhathi sase-Northwest Mexico sasemini", "SGT": "Isikhathi esivamile sase-Singapore", "EST": "Isikhathi sase-North American East esijwayelekile", "CDT": "Isikhathi sase-North American Central sasemini", "WIT": "Isikhathi sase-Eastern Indonesia", "HEOG": "Isikhathi sase-West Greenland sasehlobo", "WEZ": "Isikhathi esijwayelekile sase-Western Europe", "NZST": "Isikhathi esivamile sase-New Zealand", "CLST": "Isikhathi sase-Chile sasehlobo", "TMT": "Isikhathi esivamile sase-Turkmenistan", "WAT": "Isikhathi esijwayelekile saseNtshonalanga Afrika", "COST": "Isikhathi sase-Colombia sasehlobo", "VET": "Isikhathi sase-Venezuela", "HKST": "Isikhathi sehlobo sase-Hong Kong", "JST": "Isikhathi esivamile sase-Japan", "ECT": "Isikhathi sase-Ecuador", "HECU": "Isikhathi sase-Cuba sasemini", "AKST": "Isikhathi sase-Alaska esijwayelekile", "CHAST": "Isikhathi esivamile sase-Chatham", "IST": "Isikhathi sase-India esivamile", "TMST": "Isikhathi sehlobo sase-Turkmenistan", "WART": "Isikhathi saseNyakatho ne-Argentina esijwayelekile", "GMT": "Isikhathi sase-Greenwich Mean", "HNT": "Isikhathi sase-Newfoundland esijwayelekile", "BT": "Isikhathi sase-Bhutan", "LHDT": "Isikhathi sase-Lord Howe sasemini", "BOT": "Isikhathi sase-Bolivia", "ACDT": "Isikhathi sase-Australian Central sasemini", "WARST": "Isikhathi saseNyakatho ne-Argentina sasehlobo", "UYST": "Isikhathi sase-Uruguay sasehlobo", "COT": "Isikhathi sase-Colombia esijwayelekile", "ACWST": "Isikhathi sase-Australian Central West esivamile", "ARST": "Isikhathi sase-Argentina sasehlobo", "AWST": "Isikhathi sase-Australian Western esivamile", "HNCU": "Isikhathi sase-Cuba esijwayelekile", "HEPMX": "Isikhathi sase-Mexican Pacific sasemini", "HADT": "Isikhathi sase-Hawaii-Aleutia sasemini", "HNOG": "Isikhathi sase-West Greenland esijwayelekile", "JDT": "Isikhathi semini sase-Japan", "HEEG": "Isikhathi sase-East Greenland sasemini", "ACST": "Isikhathi sase-Australian Central esivamile", "OEZ": "Isikhathi esijwayelekile sase-Eastern Europe", "HAT": "Isikhathi sase-Newfoundland sasemini", "AWDT": "Isikhathi sase-Australian Western sasemini", "LHST": "Isikhathi sase-Lord Howe esivamile", "NZDT": "Isikhathi sasemini sase-New Zealand"},
++ locale: "zu_ZA",
++ pluralsCardinal: []locales.PluralRule{2, 6},
++ pluralsOrdinal: []locales.PluralRule{6},
++ pluralsRange: []locales.PluralRule{2, 6},
++ timeSeparator: ":",
++ currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},
++ timezones: map[string]string{"HEPMX": "HEPMX", "HAST": "HAST", "MEZ": "MEZ", "CHADT": "CHADT", "MYT": "MYT", "AEDT": "AEDT", "CHAST": "CHAST", "GFT": "GFT", "CST": "CST", "SRT": "SRT", "NZST": "NZST", "ACDT": "ACDT", "OEZ": "OEZ", "WARST": "WARST", "EDT": "EDT", "HEPM": "HEPM", "JDT": "JDT", "HAT": "HAT", "WART": "WART", "ECT": "ECT", "HNCU": "HNCU", "SAST": "SAST", "UYST": "UYST", "IST": "IST", "ART": "ART", "ACWST": "ACWST", "PDT": "PDT", "AKST": "AKST", "COST": "COST", "ChST": "ChST", "BOT": "BOT", "HNNOMX": "HNNOMX", "AWDT": "AWDT", "WESZ": "WESZ", "WAT": "WAT", "CLT": "CLT", "MST": "MST", "SGT": "SGT", "WITA": "WITA", "AST": "AST", "HECU": "HECU", "HENOMX": "HENOMX", "WIT": "WIT", "HNT": "HNT", "ARST": "ARST", "AEST": "AEST", "TMST": "TMST", "CAT": "CAT", "HADT": "HADT", "HNPM": "HNPM", "LHDT": "LHDT", "VET": "VET", "∅∅∅": "∅∅∅", "WAST": "WAST", "AKDT": "AKDT", "MDT": "MDT", "HNEG": "HNEG", "OESZ": "OESZ", "GYT": "GYT", "CDT": "CDT", "TMT": "TMT", "ACST": "ACST", "ACWDT": "ACWDT", "JST": "JST", "UYT": "UYT", "PST": "PST", "HNPMX": "HNPMX", "HNOG": "HNOG", "HKST": "HKST", "GMT": "GMT", "NZDT": "NZDT", "ADT": "ADT", "HEEG": "HEEG", "AWST": "AWST", "COT": "COT", "HEOG": "HEOG", "CLST": "CLST", "EAT": "EAT", "MESZ": "MESZ", "LHST": "LHST", "BT": "BT", "WEZ": "WEZ", "EST": "EST", "HKT": "HKT", "WIB": "WIB"},
+ }
+ }
+ 
+@@ -136,7 +113,7 @@ func (zu *zu_ZA) MonthAbbreviated(month time.Month) string {
+ 
+ // MonthsAbbreviated returns the locales abbreviated months
+ func (zu *zu_ZA) MonthsAbbreviated() []string {
+- return zu.monthsAbbreviated[1:]
++ return nil
+ }
+ 
+ // MonthNarrow returns the locales narrow month given the 'month' provided
+@@ -146,7 +123,7 @@ func (zu *zu_ZA) MonthNarrow(month time.Month) string {
+ 
+ // MonthsNarrow returns the locales narrow months
+ func (zu *zu_ZA) MonthsNarrow() []string {
+- return zu.monthsNarrow[1:]
++ return nil
+ }
+ 
+ // MonthWide returns the locales wide month given the 'month' provided
+@@ -156,7 +133,7 @@ func (zu *zu_ZA) MonthWide(month time.Month) string {
+ 
+ // MonthsWide returns the locales wide months
+ func (zu *zu_ZA) MonthsWide() []string {
+- return zu.monthsWide[1:]
++ return nil
+ }
+ 
+ // WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided
+@@ -202,73 +179,13 @@ func (zu *zu_ZA) WeekdaysWide() []string {
+ // FmtNumber returns 'num' with digits/precision of 'v' for 'zu_ZA' and handles both Whole and Real numbers based on 'v'
+ func (zu *zu_ZA) FmtNumber(num float64, v uint64) string {
+ 
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtPercent returns 'num' with digits/precision of 'v' for 'zu_ZA' and handles both Whole and Real numbers based on 'v'
+ // NOTE: 'num' passed into FmtPercent is assumed to be in percent already
+ func (zu *zu_ZA) FmtPercent(num float64, v uint64) string {
+- s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+- l := len(s) + 3
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zu.decimal[0])
+- continue
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+- b = append(b, zu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- b = append(b, zu.percent...)
+-
+- return string(b)
++ return strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ }
+ 
+ // FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'zu_ZA'
+@@ -276,56 +193,7 @@ func (zu *zu_ZA) FmtCurrency(num float64, v uint64, currency currency.Type) stri
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zu.currencies[currency]
+- l := len(s) + len(symbol) + 2 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- if num < 0 {
+- b = append(b, zu.minus[0])
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'zu_ZA'
+@@ -334,68 +202,7 @@ func (zu *zu_ZA) FmtAccounting(num float64, v uint64, currency currency.Type) st
+ 
+ s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)
+ symbol := zu.currencies[currency]
+- l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3
+- count := 0
+- inWhole := v == 0
+- b := make([]byte, 0, l)
+-
+- for i := len(s) - 1; i >= 0; i-- {
+-
+- if s[i] == '.' {
+- b = append(b, zu.decimal[0])
+- inWhole = true
+- continue
+- }
+-
+- if inWhole {
+- if count == 3 {
+- b = append(b, zu.group[0])
+- count = 1
+- } else {
+- count++
+- }
+- }
+-
+- b = append(b, s[i])
+- }
+-
+- if num < 0 {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- b = append(b, zu.currencyNegativePrefix[0])
+-
+- } else {
+-
+- for j := len(symbol) - 1; j >= 0; j-- {
+- b = append(b, symbol[j])
+- }
+-
+- }
+-
+- // reverse
+- for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
+- b[i], b[j] = b[j], b[i]
+- }
+-
+- if int(v) < 2 {
+-
+- if v == 0 {
+- b = append(b, zu.decimal...)
+- }
+-
+- for i := 0; i < 2-int(v); i++ {
+- b = append(b, '0')
+- }
+- }
+-
+- if num < 0 {
+- b = append(b, zu.currencyNegativeSuffix...)
+- }
+-
+- return string(b)
++ return string(append(append([]byte{}, symbol...), s...))
+ }
+ 
+ // FmtDateShort returns the short date representation of 't' for 'zu_ZA'
+@@ -403,17 +210,6 @@ func (zu *zu_ZA) FmtDateShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = strconv.AppendInt(b, int64(t.Month()), 10)
+- b = append(b, []byte{0x2f}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2f}...)
+-
+- if t.Year() > 9 {
+- b = append(b, strconv.Itoa(t.Year())[2:]...)
+- } else {
+- b = append(b, strconv.Itoa(t.Year())[1:]...)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -422,17 +218,6 @@ func (zu *zu_ZA) FmtDateMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, zu.monthsAbbreviated[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -441,17 +226,6 @@ func (zu *zu_ZA) FmtDateLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, zu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -460,19 +234,6 @@ func (zu *zu_ZA) FmtDateFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- b = append(b, zu.daysWide[t.Weekday()]...)
+- b = append(b, []byte{0x2c, 0x20}...)
+- b = append(b, zu.monthsWide[t.Month()]...)
+- b = append(b, []byte{0x20}...)
+- b = strconv.AppendInt(b, int64(t.Day()), 10)
+- b = append(b, []byte{0x2c, 0x20}...)
+-
+- if t.Year() > 0 {
+- b = strconv.AppendInt(b, int64(t.Year()), 10)
+- } else {
+- b = strconv.AppendInt(b, int64(t.Year()*-1), 10)
+- }
+-
+ return string(b)
+ }
+ 
+@@ -481,19 +242,6 @@ func (zu *zu_ZA) FmtTimeShort(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, zu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -502,26 +250,6 @@ func (zu *zu_ZA) FmtTimeMedium(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, zu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+-
+ return string(b)
+ }
+ 
+@@ -530,30 +258,6 @@ func (zu *zu_ZA) FmtTimeLong(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, zu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+- b = append(b, tz...)
+-
+ return string(b)
+ }
+ 
+@@ -562,34 +266,5 @@ func (zu *zu_ZA) FmtTimeFull(t time.Time) string {
+ 
+ b := make([]byte, 0, 32)
+ 
+- if t.Hour() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Hour()), 10)
+- b = append(b, zu.timeSeparator...)
+-
+- if t.Minute() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Minute()), 10)
+- b = append(b, zu.timeSeparator...)
+-
+- if t.Second() < 10 {
+- b = append(b, '0')
+- }
+-
+- b = strconv.AppendInt(b, int64(t.Second()), 10)
+- b = append(b, []byte{0x20}...)
+-
+- tz, _ := t.Zone()
+-
+- if btz, ok := zu.timezones[tz]; ok {
+- b = append(b, btz...)
+- } else {
+- b = append(b, tz...)
+- }
+-
+ return string(b)
+ }
diff --git a/tr/tr.go b/tr/tr.go
index e10e0c3a..0ed34fe9 100644
--- a/tr/tr.go
+++ b/tr/tr.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"MÖ", "MS"},
erasNarrow: []string{"", ""},
erasWide: []string{"Milattan Önce", "Milattan Sonra"},
- timezones: map[string]string{"MST": "Makao Standart Saati", "WESZ": "Batı Avrupa Yaz Saati", "HNEG": "Doğu Grönland Standart Saati", "COT": "Kolombiya Standart Saati", "ADT": "Atlantik Yaz Saati", "NZDT": "Yeni Zelanda Yaz Saati", "TMT": "Türkmenistan Standart Saati", "ACDT": "Orta Avustralya Yaz Saati", "MDT": "Makao Yaz Saati", "UYST": "Uruguay Yaz Saati", "HKT": "Hong Kong Standart Saati", "MEZ": "Orta Avrupa Standart Saati", "JDT": "Japonya Yaz Saati", "WAST": "Batı Afrika Yaz Saati", "HNNOMX": "Kuzeybatı Meksika Standart Saati", "WIT": "Doğu Endonezya Saati", "LHST": "Lord Howe Standart Saati", "JST": "Japonya Standart Saati", "GMT": "Greenwich Ortalama Saati", "WIB": "Batı Endonezya Saati", "ACWST": "İçbatı Avustralya Standart Saati", "ARST": "Arjantin Yaz Saati", "PDT": "Kuzey Amerika Pasifik Yaz Saati", "HNPM": "Saint Pierre ve Miquelon Standart Saati", "NZST": "Yeni Zelanda Standart Saati", "WARST": "Batı Arjantin Yaz Saati", "EST": "Kuzey Amerika Doğu Standart Saati", "CLST": "Şili Yaz Saati", "MYT": "Malezya Saati", "HEOG": "Batı Grönland Yaz Saati", "HKST": "Hong Kong Yaz Saati", "AWST": "Batı Avustralya Standart Saati", "CLT": "Şili Standart Saati", "GFT": "Fransız Guyanası Saati", "BOT": "Bolivya Saati", "HAST": "Hawaii-Aleut Standart Saati", "BT": "Bhutan Saati", "ACWDT": "İçbatı Avustralya Yaz Saati", "ChST": "Chamorro Saati", "CST": "Kuzey Amerika Merkezi Standart Saati", "CDT": "Kuzey Amerika Merkezi Yaz Saati", "SRT": "Surinam Saati", "CHADT": "Chatham Yaz Saati", "OESZ": "Doğu Avrupa Yaz Saati", "HNPMX": "Meksika Pasifik Kıyısı Standart Saati", "AKDT": "Alaska Yaz Saati", "ECT": "Ekvador Saati", "WART": "Batı Arjantin Standart Saati", "TMST": "Türkmenistan Yaz Saati", "AKST": "Alaska Standart Saati", "HADT": "Hawaii-Aleut Yaz Saati", "VET": "Venezuela Saati", "HAT": "Newfoundland Yaz Saati", "HNOG": "Batı Grönland Standart Saati", "WITA": "Orta Endonezya Saati", "CAT": "Orta Afrika Saati", "HEPMX": "Meksika Pasifik Kıyısı Yaz Saati", "AST": "Atlantik Standart Saati", "AEDT": "Doğu Avustralya Yaz Saati", "CHAST": "Chatham Standart Saati", "MESZ": "Orta Avrupa Yaz Saati", "SAST": "Güney Afrika Standart Saati", "ACST": "Orta Avustralya Standart Saati", "COST": "Kolombiya Yaz Saati", "HENOMX": "Kuzeybatı Meksika Yaz Saati", "HNT": "Newfoundland Standart Saati", "WEZ": "Batı Avrupa Standart Saati", "AWDT": "Batı Avustralya Yaz Saati", "HEEG": "Doğu Grönland Yaz Saati", "∅∅∅": "Peru Yaz Saati", "EDT": "Kuzey Amerika Doğu Yaz Saati", "PST": "Kuzey Amerika Pasifik Standart Saati", "AEST": "Doğu Avustralya Standart Saati", "HEPM": "Saint Pierre ve Miquelon Yaz Saati", "OEZ": "Doğu Avrupa Standart Saati", "EAT": "Doğu Afrika Saati", "HECU": "Küba Yaz Saati", "SGT": "Singapur Standart Saati", "GYT": "Guyana Saati", "UYT": "Uruguay Standart Saati", "ART": "Arjantin Standart Saati", "LHDT": "Lord Howe Yaz Saati", "WAT": "Batı Afrika Standart Saati", "HNCU": "Küba Standart Saati", "IST": "Hindistan Standart Saati"},
+ timezones: map[string]string{"CAT": "Orta Afrika Saati", "HNEG": "Doğu Grönland Standart Saati", "AEST": "Doğu Avustralya Standart Saati", "HNCU": "Küba Standart Saati", "WIT": "Doğu Endonezya Saati", "CHADT": "Chatham Yaz Saati", "HAST": "Hawaii-Aleut Standart Saati", "IST": "Hindistan Standart Saati", "CLST": "Şili Yaz Saati", "HEEG": "Doğu Grönland Yaz Saati", "WIB": "Batı Endonezya Saati", "MESZ": "Orta Avrupa Yaz Saati", "OESZ": "Doğu Avrupa Yaz Saati", "TMT": "Türkmenistan Standart Saati", "ART": "Arjantin Standart Saati", "UYT": "Uruguay Standart Saati", "GYT": "Guyana Saati", "CHAST": "Chatham Standart Saati", "MDT": "Makao Yaz Saati", "ACST": "Orta Avustralya Standart Saati", "AEDT": "Doğu Avustralya Yaz Saati", "GFT": "Fransız Guyanası Saati", "HNPM": "Saint Pierre ve Miquelon Standart Saati", "WEZ": "Batı Avrupa Standart Saati", "EDT": "Kuzey Amerika Doğu Yaz Saati", "HKST": "Hong Kong Yaz Saati", "COST": "Kolombiya Yaz Saati", "MYT": "Malezya Saati", "HNNOMX": "Kuzeybatı Meksika Standart Saati", "HNPMX": "Meksika Pasifik Kıyısı Standart Saati", "EAT": "Doğu Afrika Saati", "HECU": "Küba Yaz Saati", "AWST": "Batı Avustralya Standart Saati", "HNOG": "Batı Grönland Standart Saati", "WITA": "Orta Endonezya Saati", "UYST": "Uruguay Yaz Saati", "HEPM": "Saint Pierre ve Miquelon Yaz Saati", "LHDT": "Lord Howe Yaz Saati", "ACWST": "İçbatı Avustralya Standart Saati", "ARST": "Arjantin Yaz Saati", "HKT": "Hong Kong Standart Saati", "LHST": "Lord Howe Standart Saati", "CST": "Kuzey Amerika Merkezi Standart Saati", "JDT": "Japonya Yaz Saati", "COT": "Kolombiya Standart Saati", "HAT": "Newfoundland Yaz Saati", "ChST": "Chamorro Saati", "SAST": "Güney Afrika Standart Saati", "SGT": "Singapur Standart Saati", "NZST": "Yeni Zelanda Standart Saati", "WART": "Batı Arjantin Standart Saati", "SRT": "Surinam Saati", "VET": "Venezuela Saati", "ADT": "Atlantik Yaz Saati", "HNT": "Newfoundland Standart Saati", "AKDT": "Alaska Yaz Saati", "NZDT": "Yeni Zelanda Yaz Saati", "HEOG": "Batı Grönland Yaz Saati", "GMT": "Greenwich Ortalama Saati", "MST": "Makao Standart Saati", "BOT": "Bolivya Saati", "PST": "Kuzey Amerika Pasifik Standart Saati", "MEZ": "Orta Avrupa Standart Saati", "AST": "Atlantik Standart Saati", "HENOMX": "Kuzeybatı Meksika Yaz Saati", "OEZ": "Doğu Avrupa Standart Saati", "WESZ": "Batı Avrupa Yaz Saati", "WAT": "Batı Afrika Standart Saati", "WAST": "Batı Afrika Yaz Saati", "CDT": "Kuzey Amerika Merkezi Yaz Saati", "AWDT": "Batı Avustralya Yaz Saati", "HADT": "Hawaii-Aleut Yaz Saati", "JST": "Japonya Standart Saati", "CLT": "Şili Standart Saati", "BT": "Bhutan Saati", "HEPMX": "Meksika Pasifik Kıyısı Yaz Saati", "EST": "Kuzey Amerika Doğu Standart Saati", "ACDT": "Orta Avustralya Yaz Saati", "PDT": "Kuzey Amerika Pasifik Yaz Saati", "ECT": "Ekvador Saati", "ACWDT": "İçbatı Avustralya Yaz Saati", "∅∅∅": "Amazon Yaz Saati", "WARST": "Batı Arjantin Yaz Saati", "TMST": "Türkmenistan Yaz Saati", "AKST": "Alaska Standart Saati"},
}
}
diff --git a/tr_CY/tr_CY.go b/tr_CY/tr_CY.go
index 5e16bc6c..0c589aab 100644
--- a/tr_CY/tr_CY.go
+++ b/tr_CY/tr_CY.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"MÖ", "MS"},
erasNarrow: []string{"", ""},
erasWide: []string{"Milattan Önce", "Milattan Sonra"},
- timezones: map[string]string{"HNCU": "Küba Standart Saati", "WIB": "Batı Endonezya Saati", "AEDT": "Doğu Avustralya Yaz Saati", "SAST": "Güney Afrika Standart Saati", "COST": "Kolombiya Yaz Saati", "HNNOMX": "Kuzeybatı Meksika Standart Saati", "HEOG": "Batı Grönland Yaz Saati", "GFT": "Fransız Guyanası Saati", "EST": "Kuzey Amerika Doğu Standart Saati", "HADT": "Hawaii-Aleut Yaz Saati", "NZST": "Yeni Zelanda Standart Saati", "NZDT": "Yeni Zelanda Yaz Saati", "IST": "Hindistan Standart Saati", "HNEG": "Doğu Grönland Standart Saati", "CDT": "Kuzey Amerika Merkezi Yaz Saati", "WESZ": "Batı Avrupa Yaz Saati", "HAT": "Newfoundland Yaz Saati", "AWST": "Batı Avustralya Standart Saati", "ACST": "Orta Avustralya Standart Saati", "WARST": "Batı Arjantin Yaz Saati", "SGT": "Singapur Standart Saati", "MST": "Makao Standart Saati", "TMST": "Türkmenistan Yaz Saati", "EDT": "Kuzey Amerika Doğu Yaz Saati", "AKST": "Alaska Standart Saati", "PST": "Kuzey Amerika Pasifik Standart Saati", "HNPM": "Saint Pierre ve Miquelon Standart Saati", "∅∅∅": "Amazon Yaz Saati", "JDT": "Japonya Yaz Saati", "BOT": "Bolivya Saati", "AWDT": "Batı Avustralya Yaz Saati", "ChST": "Chamorro Saati", "HENOMX": "Kuzeybatı Meksika Yaz Saati", "HECU": "Küba Yaz Saati", "HEEG": "Doğu Grönland Yaz Saati", "WAST": "Batı Afrika Yaz Saati", "CST": "Kuzey Amerika Merkezi Standart Saati", "WIT": "Doğu Endonezya Saati", "GMT": "Greenwich Ortalama Saati", "UYT": "Uruguay Standart Saati", "SRT": "Surinam Saati", "ARST": "Arjantin Yaz Saati", "HEPM": "Saint Pierre ve Miquelon Yaz Saati", "LHST": "Lord Howe Standart Saati", "LHDT": "Lord Howe Yaz Saati", "OESZ": "Doğu Avrupa Yaz Saati", "HKT": "Hong Kong Standart Saati", "ECT": "Ekvador Saati", "AKDT": "Alaska Yaz Saati", "ACWST": "İçbatı Avustralya Standart Saati", "AEST": "Doğu Avustralya Standart Saati", "HNOG": "Batı Grönland Standart Saati", "MESZ": "Orta Avrupa Yaz Saati", "UYST": "Uruguay Yaz Saati", "VET": "Venezuela Saati", "ART": "Arjantin Standart Saati", "HNPMX": "Meksika Pasifik Kıyısı Standart Saati", "GYT": "Guyana Saati", "HKST": "Hong Kong Yaz Saati", "HNT": "Newfoundland Standart Saati", "CHADT": "Chatham Yaz Saati", "TMT": "Türkmenistan Standart Saati", "EAT": "Doğu Afrika Saati", "WART": "Batı Arjantin Standart Saati", "WAT": "Batı Afrika Standart Saati", "MDT": "Makao Yaz Saati", "HEPMX": "Meksika Pasifik Kıyısı Yaz Saati", "AST": "Atlantik Standart Saati", "CHAST": "Chatham Standart Saati", "CLT": "Şili Standart Saati", "JST": "Japonya Standart Saati", "ACDT": "Orta Avustralya Yaz Saati", "ADT": "Atlantik Yaz Saati", "CLST": "Şili Yaz Saati", "WEZ": "Batı Avrupa Standart Saati", "ACWDT": "İçbatı Avustralya Yaz Saati", "WITA": "Orta Endonezya Saati", "MEZ": "Orta Avrupa Standart Saati", "OEZ": "Doğu Avrupa Standart Saati", "HAST": "Hawaii-Aleut Standart Saati", "BT": "Bhutan Saati", "CAT": "Orta Afrika Saati", "COT": "Kolombiya Standart Saati", "MYT": "Malezya Saati", "PDT": "Kuzey Amerika Pasifik Yaz Saati"},
+ timezones: map[string]string{"ACDT": "Orta Avustralya Yaz Saati", "AEST": "Doğu Avustralya Standart Saati", "HEPMX": "Meksika Pasifik Kıyısı Yaz Saati", "CST": "Kuzey Amerika Merkezi Standart Saati", "CHADT": "Chatham Yaz Saati", "CAT": "Orta Afrika Saati", "JST": "Japonya Standart Saati", "HNEG": "Doğu Grönland Standart Saati", "LHDT": "Lord Howe Yaz Saati", "AST": "Atlantik Standart Saati", "ART": "Arjantin Standart Saati", "PST": "Kuzey Amerika Pasifik Standart Saati", "ECT": "Ekvador Saati", "∅∅∅": "Amazon Yaz Saati", "HNCU": "Küba Standart Saati", "HKT": "Hong Kong Standart Saati", "AKDT": "Alaska Yaz Saati", "HNPM": "Saint Pierre ve Miquelon Standart Saati", "EAT": "Doğu Afrika Saati", "NZST": "Yeni Zelanda Standart Saati", "MEZ": "Orta Avrupa Standart Saati", "HEEG": "Doğu Grönland Yaz Saati", "WIB": "Batı Endonezya Saati", "GYT": "Guyana Saati", "SGT": "Singapur Standart Saati", "PDT": "Kuzey Amerika Pasifik Yaz Saati", "HADT": "Hawaii-Aleut Yaz Saati", "WARST": "Batı Arjantin Yaz Saati", "HKST": "Hong Kong Yaz Saati", "HNOG": "Batı Grönland Standart Saati", "UYT": "Uruguay Standart Saati", "HECU": "Küba Yaz Saati", "AWST": "Batı Avustralya Standart Saati", "NZDT": "Yeni Zelanda Yaz Saati", "MESZ": "Orta Avrupa Yaz Saati", "WART": "Batı Arjantin Standart Saati", "MDT": "Makao Yaz Saati", "HEPM": "Saint Pierre ve Miquelon Yaz Saati", "HAST": "Hawaii-Aleut Standart Saati", "OEZ": "Doğu Avrupa Standart Saati", "GMT": "Greenwich Ortalama Saati", "ADT": "Atlantik Yaz Saati", "BT": "Bhutan Saati", "SRT": "Surinam Saati", "CDT": "Kuzey Amerika Merkezi Yaz Saati", "BOT": "Bolivya Saati", "VET": "Venezuela Saati", "OESZ": "Doğu Avrupa Yaz Saati", "TMST": "Türkmenistan Yaz Saati", "HAT": "Newfoundland Yaz Saati", "UYST": "Uruguay Yaz Saati", "HNPMX": "Meksika Pasifik Kıyısı Standart Saati", "WIT": "Doğu Endonezya Saati", "AWDT": "Batı Avustralya Yaz Saati", "WESZ": "Batı Avrupa Yaz Saati", "WAT": "Batı Afrika Standart Saati", "MST": "Makao Standart Saati", "COST": "Kolombiya Yaz Saati", "CLT": "Şili Standart Saati", "CLST": "Şili Yaz Saati", "EDT": "Kuzey Amerika Doğu Yaz Saati", "ACWST": "İçbatı Avustralya Standart Saati", "ACWDT": "İçbatı Avustralya Yaz Saati", "EST": "Kuzey Amerika Doğu Standart Saati", "WAST": "Batı Afrika Yaz Saati", "HNNOMX": "Kuzeybatı Meksika Standart Saati", "HENOMX": "Kuzeybatı Meksika Yaz Saati", "HNT": "Newfoundland Standart Saati", "GFT": "Fransız Guyanası Saati", "JDT": "Japonya Yaz Saati", "HEOG": "Batı Grönland Yaz Saati", "SAST": "Güney Afrika Standart Saati", "WITA": "Orta Endonezya Saati", "ChST": "Chamorro Saati", "ARST": "Arjantin Yaz Saati", "ACST": "Orta Avustralya Standart Saati", "AEDT": "Doğu Avustralya Yaz Saati", "AKST": "Alaska Standart Saati", "LHST": "Lord Howe Standart Saati", "IST": "Hindistan Standart Saati", "TMT": "Türkmenistan Standart Saati", "COT": "Kolombiya Standart Saati", "CHAST": "Chatham Standart Saati", "WEZ": "Batı Avrupa Standart Saati", "MYT": "Malezya Saati"},
}
}
diff --git a/tr_TR/tr_TR.go b/tr_TR/tr_TR.go
index 47645b39..a4c77777 100644
--- a/tr_TR/tr_TR.go
+++ b/tr_TR/tr_TR.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"MÖ", "MS"},
erasNarrow: []string{"", ""},
erasWide: []string{"Milattan Önce", "Milattan Sonra"},
- timezones: map[string]string{"WARST": "Batı Arjantin Yaz Saati", "EDT": "Kuzey Amerika Doğu Yaz Saati", "UYST": "Uruguay Yaz Saati", "WITA": "Orta Endonezya Saati", "ACDT": "Orta Avustralya Yaz Saati", "HKT": "Hong Kong Standart Saati", "HEPM": "Saint Pierre ve Miquelon Yaz Saati", "IST": "Hindistan Standart Saati", "JDT": "Japonya Yaz Saati", "TMT": "Türkmenistan Standart Saati", "CAT": "Orta Afrika Saati", "PST": "Kuzey Amerika Pasifik Standart Saati", "CHADT": "Chatham Yaz Saati", "JST": "Japonya Standart Saati", "HNEG": "Doğu Grönland Standart Saati", "MYT": "Malezya Saati", "ACWDT": "İçbatı Avustralya Yaz Saati", "ARST": "Arjantin Yaz Saati", "MEZ": "Orta Avrupa Standart Saati", "CLT": "Şili Standart Saati", "WAT": "Batı Afrika Standart Saati", "HNPMX": "Meksika Pasifik Kıyısı Standart Saati", "HEPMX": "Meksika Pasifik Kıyısı Yaz Saati", "HNPM": "Saint Pierre ve Miquelon Standart Saati", "AEDT": "Doğu Avustralya Yaz Saati", "EAT": "Doğu Afrika Saati", "COT": "Kolombiya Standart Saati", "HECU": "Küba Yaz Saati", "PDT": "Kuzey Amerika Pasifik Yaz Saati", "ACWST": "İçbatı Avustralya Standart Saati", "WAST": "Batı Afrika Yaz Saati", "SGT": "Singapur Standart Saati", "LHDT": "Lord Howe Yaz Saati", "HKST": "Hong Kong Yaz Saati", "SAST": "Güney Afrika Standart Saati", "TMST": "Türkmenistan Yaz Saati", "EST": "Kuzey Amerika Doğu Standart Saati", "MDT": "Makao Yaz Saati", "WIB": "Batı Endonezya Saati", "HAST": "Hawaii-Aleut Standart Saati", "HNOG": "Batı Grönland Standart Saati", "OEZ": "Doğu Avrupa Standart Saati", "GMT": "Greenwich Ortalama Saati", "HNCU": "Küba Standart Saati", "SRT": "Surinam Saati", "NZST": "Yeni Zelanda Standart Saati", "AWST": "Batı Avustralya Standart Saati", "ACST": "Orta Avustralya Standart Saati", "COST": "Kolombiya Yaz Saati", "MST": "Makao Standart Saati", "UYT": "Uruguay Standart Saati", "HADT": "Hawaii-Aleut Yaz Saati", "WIT": "Doğu Endonezya Saati", "CLST": "Şili Yaz Saati", "HEEG": "Doğu Grönland Yaz Saati", "∅∅∅": "Peru Yaz Saati", "AKDT": "Alaska Yaz Saati", "ADT": "Atlantik Yaz Saati", "HAT": "Newfoundland Yaz Saati", "ART": "Arjantin Standart Saati", "WART": "Batı Arjantin Standart Saati", "HENOMX": "Kuzeybatı Meksika Yaz Saati", "CDT": "Kuzey Amerika Merkezi Yaz Saati", "LHST": "Lord Howe Standart Saati", "CST": "Kuzey Amerika Merkezi Standart Saati", "WEZ": "Batı Avrupa Standart Saati", "WESZ": "Batı Avrupa Yaz Saati", "HNT": "Newfoundland Standart Saati", "AWDT": "Batı Avustralya Yaz Saati", "ChST": "Chamorro Saati", "GFT": "Fransız Guyanası Saati", "HNNOMX": "Kuzeybatı Meksika Standart Saati", "VET": "Venezuela Saati", "HEOG": "Batı Grönland Yaz Saati", "AEST": "Doğu Avustralya Standart Saati", "MESZ": "Orta Avrupa Yaz Saati", "OESZ": "Doğu Avrupa Yaz Saati", "CHAST": "Chatham Standart Saati", "BOT": "Bolivya Saati", "NZDT": "Yeni Zelanda Yaz Saati", "ECT": "Ekvador Saati", "GYT": "Guyana Saati", "AKST": "Alaska Standart Saati", "AST": "Atlantik Standart Saati", "BT": "Bhutan Saati"},
+ timezones: map[string]string{"AKDT": "Alaska Yaz Saati", "AEDT": "Doğu Avustralya Yaz Saati", "WIB": "Batı Endonezya Saati", "MESZ": "Orta Avrupa Yaz Saati", "CLST": "Şili Yaz Saati", "EST": "Kuzey Amerika Doğu Standart Saati", "HKST": "Hong Kong Yaz Saati", "HAT": "Newfoundland Yaz Saati", "VET": "Venezuela Saati", "TMT": "Türkmenistan Standart Saati", "WAT": "Batı Afrika Standart Saati", "HNT": "Newfoundland Standart Saati", "HNPMX": "Meksika Pasifik Kıyısı Standart Saati", "HECU": "Küba Yaz Saati", "CHAST": "Chatham Standart Saati", "SGT": "Singapur Standart Saati", "OESZ": "Doğu Avrupa Yaz Saati", "GMT": "Greenwich Ortalama Saati", "HNPM": "Saint Pierre ve Miquelon Standart Saati", "CLT": "Şili Standart Saati", "HKT": "Hong Kong Standart Saati", "AWDT": "Batı Avustralya Yaz Saati", "ACWDT": "İçbatı Avustralya Yaz Saati", "MEZ": "Orta Avrupa Standart Saati", "WEZ": "Batı Avrupa Standart Saati", "WESZ": "Batı Avrupa Yaz Saati", "MYT": "Malezya Saati", "WAST": "Batı Afrika Yaz Saati", "WITA": "Orta Endonezya Saati", "CAT": "Orta Afrika Saati", "IST": "Hindistan Standart Saati", "OEZ": "Doğu Avrupa Standart Saati", "WART": "Batı Arjantin Standart Saati", "HNOG": "Batı Grönland Standart Saati", "TMST": "Türkmenistan Yaz Saati", "HEPM": "Saint Pierre ve Miquelon Yaz Saati", "HEEG": "Doğu Grönland Yaz Saati", "LHST": "Lord Howe Standart Saati", "EAT": "Doğu Afrika Saati", "WIT": "Doğu Endonezya Saati", "∅∅∅": "Brasilia Yaz Saati", "NZST": "Yeni Zelanda Standart Saati", "WARST": "Batı Arjantin Yaz Saati", "HEOG": "Batı Grönland Yaz Saati", "HEPMX": "Meksika Pasifik Kıyısı Yaz Saati", "CST": "Kuzey Amerika Merkezi Standart Saati", "AWST": "Batı Avustralya Standart Saati", "ADT": "Atlantik Yaz Saati", "EDT": "Kuzey Amerika Doğu Yaz Saati", "COST": "Kolombiya Yaz Saati", "UYT": "Uruguay Standart Saati", "HNCU": "Küba Standart Saati", "CDT": "Kuzey Amerika Merkezi Yaz Saati", "COT": "Kolombiya Standart Saati", "AEST": "Doğu Avustralya Standart Saati", "ACWST": "İçbatı Avustralya Standart Saati", "AST": "Atlantik Standart Saati", "ART": "Arjantin Standart Saati", "GFT": "Fransız Guyanası Saati", "GYT": "Guyana Saati", "ECT": "Ekvador Saati", "NZDT": "Yeni Zelanda Yaz Saati", "BT": "Bhutan Saati", "MST": "Makao Standart Saati", "ARST": "Arjantin Yaz Saati", "ACDT": "Orta Avustralya Yaz Saati", "JDT": "Japonya Yaz Saati", "HENOMX": "Kuzeybatı Meksika Yaz Saati", "HNEG": "Doğu Grönland Standart Saati", "CHADT": "Chatham Yaz Saati", "BOT": "Bolivya Saati", "PST": "Kuzey Amerika Pasifik Standart Saati", "PDT": "Kuzey Amerika Pasifik Yaz Saati", "HAST": "Hawaii-Aleut Standart Saati", "ACST": "Orta Avustralya Standart Saati", "UYST": "Uruguay Yaz Saati", "HADT": "Hawaii-Aleut Yaz Saati", "MDT": "Makao Yaz Saati", "ChST": "Chamorro Saati", "SAST": "Güney Afrika Standart Saati", "SRT": "Surinam Saati", "JST": "Japonya Standart Saati", "HNNOMX": "Kuzeybatı Meksika Standart Saati", "AKST": "Alaska Standart Saati", "LHDT": "Lord Howe Yaz Saati"},
}
}
diff --git a/twq/twq.go b/twq/twq.go
index 870ecd35..6589f3c3 100644
--- a/twq/twq.go
+++ b/twq/twq.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"IJ", "IZ"},
erasNarrow: []string{"", ""},
erasWide: []string{"Isaa jine", "Isaa zamanoo"},
- timezones: map[string]string{"LHDT": "LHDT", "TMT": "TMT", "WARST": "WARST", "SGT": "SGT", "EST": "EST", "WIT": "WIT", "HAT": "HAT", "HNPM": "HNPM", "NZST": "NZST", "BOT": "BOT", "GFT": "GFT", "OESZ": "OESZ", "CDT": "CDT", "GYT": "GYT", "ART": "ART", "HNOG": "HNOG", "HEOG": "HEOG", "WITA": "WITA", "LHST": "LHST", "WAST": "WAST", "HNNOMX": "HNNOMX", "WEZ": "WEZ", "HNT": "HNT", "AWST": "AWST", "∅∅∅": "∅∅∅", "BT": "BT", "PDT": "PDT", "ACWDT": "ACWDT", "CLT": "CLT", "TMST": "TMST", "ADT": "ADT", "HAST": "HAST", "VET": "VET", "WESZ": "WESZ", "JDT": "JDT", "ChST": "ChST", "GMT": "GMT", "HNPMX": "HNPMX", "AST": "AST", "PST": "PST", "ACDT": "ACDT", "HNCU": "HNCU", "HADT": "HADT", "SRT": "SRT", "MEZ": "MEZ", "NZDT": "NZDT", "CHAST": "CHAST", "AKDT": "AKDT", "HEPM": "HEPM", "MESZ": "MESZ", "JST": "JST", "CAT": "CAT", "MDT": "MDT", "AWDT": "AWDT", "SAST": "SAST", "ARST": "ARST", "HKST": "HKST", "WART": "WART", "HENOMX": "HENOMX", "CST": "CST", "MYT": "MYT", "UYT": "UYT", "HKT": "HKT", "WAT": "WAT", "OEZ": "OEZ", "COT": "COT", "COST": "COST", "CHADT": "CHADT", "EAT": "EAT", "EDT": "EDT", "HEEG": "HEEG", "HECU": "HECU", "HEPMX": "HEPMX", "IST": "IST", "CLST": "CLST", "WIB": "WIB", "HNEG": "HNEG", "ACST": "ACST", "ECT": "ECT", "MST": "MST", "AKST": "AKST", "UYST": "UYST", "ACWST": "ACWST", "AEST": "AEST", "AEDT": "AEDT"},
+ timezones: map[string]string{"PST": "PST", "MESZ": "MESZ", "HNOG": "HNOG", "AST": "AST", "OESZ": "OESZ", "WAT": "WAT", "AEST": "AEST", "LHDT": "LHDT", "WARST": "WARST", "EDT": "EDT", "HNNOMX": "HNNOMX", "AWST": "AWST", "HNPM": "HNPM", "SAST": "SAST", "WIB": "WIB", "CST": "CST", "AWDT": "AWDT", "HKT": "HKT", "HKST": "HKST", "ACST": "ACST", "ACWST": "ACWST", "MEZ": "MEZ", "AKDT": "AKDT", "CHAST": "CHAST", "HADT": "HADT", "ACDT": "ACDT", "BT": "BT", "AKST": "AKST", "HAST": "HAST", "JDT": "JDT", "CLT": "CLT", "ARST": "ARST", "HAT": "HAT", "∅∅∅": "∅∅∅", "CDT": "CDT", "WITA": "WITA", "HNPMX": "HNPMX", "WESZ": "WESZ", "HEPMX": "HEPMX", "EAT": "EAT", "PDT": "PDT", "ECT": "ECT", "TMST": "TMST", "COT": "COT", "GFT": "GFT", "UYST": "UYST", "NZST": "NZST", "ART": "ART", "CAT": "CAT", "NZDT": "NZDT", "WEZ": "WEZ", "MYT": "MYT", "WART": "WART", "EST": "EST", "SGT": "SGT", "HEOG": "HEOG", "ADT": "ADT", "LHST": "LHST", "GYT": "GYT", "HECU": "HECU", "HNCU": "HNCU", "WIT": "WIT", "CHADT": "CHADT", "HNEG": "HNEG", "MST": "MST", "SRT": "SRT", "HEPM": "HEPM", "ACWDT": "ACWDT", "JST": "JST", "COST": "COST", "HNT": "HNT", "AEDT": "AEDT", "CLST": "CLST", "OEZ": "OEZ", "GMT": "GMT", "TMT": "TMT", "HENOMX": "HENOMX", "BOT": "BOT", "VET": "VET", "IST": "IST", "HEEG": "HEEG", "MDT": "MDT", "ChST": "ChST", "WAST": "WAST", "UYT": "UYT"},
}
}
diff --git a/twq_NE/twq_NE.go b/twq_NE/twq_NE.go
index d54a15a8..c19cc055 100644
--- a/twq_NE/twq_NE.go
+++ b/twq_NE/twq_NE.go
@@ -61,7 +61,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"IJ", "IZ"},
erasNarrow: []string{"", ""},
erasWide: []string{"Isaa jine", "Isaa zamanoo"},
- timezones: map[string]string{"EAT": "EAT", "EDT": "EDT", "ACWDT": "ACWDT", "HEOG": "HEOG", "HNPM": "HNPM", "MEZ": "MEZ", "LHDT": "LHDT", "TMST": "TMST", "BOT": "BOT", "MYT": "MYT", "ART": "ART", "AEST": "AEST", "CAT": "CAT", "ADT": "ADT", "GYT": "GYT", "HNOG": "HNOG", "GFT": "GFT", "OEZ": "OEZ", "CDT": "CDT", "LHST": "LHST", "JDT": "JDT", "CHADT": "CHADT", "TMT": "TMT", "ChST": "ChST", "AKDT": "AKDT", "UYST": "UYST", "WITA": "WITA", "HNT": "HNT", "PST": "PST", "AEDT": "AEDT", "WAST": "WAST", "EST": "EST", "BT": "BT", "SRT": "SRT", "PDT": "PDT", "ACDT": "ACDT", "COST": "COST", "AST": "AST", "HAST": "HAST", "MST": "MST", "MESZ": "MESZ", "SAST": "SAST", "CLST": "CLST", "HNEG": "HNEG", "WARST": "WARST", "GMT": "GMT", "SGT": "SGT", "HKT": "HKT", "AWST": "AWST", "HNCU": "HNCU", "∅∅∅": "∅∅∅", "VET": "VET", "WART": "WART", "COT": "COT", "HNPMX": "HNPMX", "NZST": "NZST", "ACWST": "ACWST", "WEZ": "WEZ", "HKST": "HKST", "HEPM": "HEPM", "ACST": "ACST", "ECT": "ECT", "HECU": "HECU", "CST": "CST", "WESZ": "WESZ", "HENOMX": "HENOMX", "MDT": "MDT", "HAT": "HAT", "WIB": "WIB", "CHAST": "CHAST", "JST": "JST", "AWDT": "AWDT", "CLT": "CLT", "HEEG": "HEEG", "WAT": "WAT", "OESZ": "OESZ", "UYT": "UYT", "HADT": "HADT", "ARST": "ARST", "WIT": "WIT", "NZDT": "NZDT", "IST": "IST", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "AKST": "AKST"},
+ timezones: map[string]string{"MESZ": "MESZ", "GMT": "GMT", "HNCU": "HNCU", "CAT": "CAT", "ACST": "ACST", "WITA": "WITA", "HEEG": "HEEG", "CDT": "CDT", "ECT": "ECT", "HKT": "HKT", "WAST": "WAST", "COT": "COT", "CST": "CST", "IST": "IST", "JST": "JST", "EDT": "EDT", "ACDT": "ACDT", "AKST": "AKST", "HAST": "HAST", "HADT": "HADT", "PST": "PST", "PDT": "PDT", "WAT": "WAT", "HNEG": "HNEG", "HAT": "HAT", "HNPM": "HNPM", "BOT": "BOT", "WART": "WART", "AST": "AST", "HKST": "HKST", "COST": "COST", "BT": "BT", "ChST": "ChST", "CHAST": "CHAST", "SGT": "SGT", "HNOG": "HNOG", "MDT": "MDT", "TMST": "TMST", "∅∅∅": "∅∅∅", "WEZ": "WEZ", "WESZ": "WESZ", "CLT": "CLT", "MST": "MST", "SAST": "SAST", "HECU": "HECU", "MYT": "MYT", "OESZ": "OESZ", "TMT": "TMT", "SRT": "SRT", "AWDT": "AWDT", "OEZ": "OEZ", "ART": "ART", "CHADT": "CHADT", "UYST": "UYST", "WIT": "WIT", "GFT": "GFT", "AKDT": "AKDT", "HEPM": "HEPM", "HNPMX": "HNPMX", "NZST": "NZST", "WARST": "WARST", "HEOG": "HEOG", "ADT": "ADT", "AEDT": "AEDT", "UYT": "UYT", "GYT": "GYT", "AWST": "AWST", "ACWST": "ACWST", "CLST": "CLST", "AEST": "AEST", "HEPMX": "HEPMX", "LHDT": "LHDT", "WIB": "WIB", "NZDT": "NZDT", "MEZ": "MEZ", "ARST": "ARST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HNT": "HNT", "LHST": "LHST", "EAT": "EAT", "ACWDT": "ACWDT", "JDT": "JDT", "VET": "VET", "EST": "EST"},
}
}
diff --git a/tzm/tzm.go b/tzm/tzm.go
index 78ea5cd2..75338dcd 100644
--- a/tzm/tzm.go
+++ b/tzm/tzm.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ZƐ", "ḌƐ"},
erasNarrow: []string{"", ""},
erasWide: []string{"Zdat Ɛisa (TAƔ)", "Ḍeffir Ɛisa (TAƔ)"},
- timezones: map[string]string{"MST": "MST", "WIT": "WIT", "AEST": "AEST", "AEDT": "AEDT", "MEZ": "MEZ", "OESZ": "OESZ", "HNCU": "HNCU", "ADT": "ADT", "MYT": "MYT", "ACWST": "ACWST", "BOT": "BOT", "EAT": "EAT", "HNNOMX": "HNNOMX", "GMT": "GMT", "EST": "EST", "CHADT": "CHADT", "SAST": "SAST", "JST": "JST", "EDT": "EDT", "HKT": "HKT", "WITA": "WITA", "NZDT": "NZDT", "LHST": "LHST", "LHDT": "LHDT", "CST": "CST", "VET": "VET", "HEOG": "HEOG", "IST": "IST", "WAST": "WAST", "AWDT": "AWDT", "WARST": "WARST", "BT": "BT", "ARST": "ARST", "WEZ": "WEZ", "HEPMX": "HEPMX", "AWST": "AWST", "JDT": "JDT", "SGT": "SGT", "HEPM": "HEPM", "NZST": "NZST", "TMST": "TMST", "ECT": "ECT", "HECU": "HECU", "AST": "AST", "UYST": "UYST", "HNOG": "HNOG", "COT": "COT", "GYT": "GYT", "HAST": "HAST", "HAT": "HAT", "CLST": "CLST", "ACST": "ACST", "OEZ": "OEZ", "CAT": "CAT", "COST": "COST", "WIB": "WIB", "SRT": "SRT", "HKST": "HKST", "AKDT": "AKDT", "CDT": "CDT", "HENOMX": "HENOMX", "MDT": "MDT", "WESZ": "WESZ", "GFT": "GFT", "TMT": "TMT", "WAT": "WAT", "AKST": "AKST", "PST": "PST", "HNPM": "HNPM", "HEEG": "HEEG", "HNPMX": "HNPMX", "HNT": "HNT", "CHAST": "CHAST", "HNEG": "HNEG", "WART": "WART", "UYT": "UYT", "HADT": "HADT", "ACWDT": "ACWDT", "∅∅∅": "∅∅∅", "CLT": "CLT", "ChST": "ChST", "ACDT": "ACDT", "ART": "ART", "PDT": "PDT", "MESZ": "MESZ"},
+ timezones: map[string]string{"GFT": "GFT", "LHST": "LHST", "JDT": "JDT", "AEST": "AEST", "EAT": "EAT", "SAST": "SAST", "AEDT": "AEDT", "CST": "CST", "CLST": "CLST", "HNEG": "HNEG", "WIT": "WIT", "HADT": "HADT", "AST": "AST", "ADT": "ADT", "TMT": "TMT", "HAT": "HAT", "COST": "COST", "BT": "BT", "ACWDT": "ACWDT", "WEZ": "WEZ", "GMT": "GMT", "ACST": "ACST", "MEZ": "MEZ", "OEZ": "OEZ", "HNOG": "HNOG", "MDT": "MDT", "AWST": "AWST", "HAST": "HAST", "IST": "IST", "VET": "VET", "CLT": "CLT", "HEOG": "HEOG", "HNPMX": "HNPMX", "HNCU": "HNCU", "JST": "JST", "MST": "MST", "CHADT": "CHADT", "SGT": "SGT", "PDT": "PDT", "HNPM": "HNPM", "ACDT": "ACDT", "ChST": "ChST", "HEPM": "HEPM", "CHAST": "CHAST", "CAT": "CAT", "NZST": "NZST", "WESZ": "WESZ", "EDT": "EDT", "WAST": "WAST", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "WITA": "WITA", "UYT": "UYT", "WART": "WART", "ARST": "ARST", "HEEG": "HEEG", "GYT": "GYT", "ACWST": "ACWST", "ART": "ART", "HKT": "HKT", "COT": "COT", "HNT": "HNT", "AKST": "AKST", "HEPMX": "HEPMX", "SRT": "SRT", "HECU": "HECU", "WAT": "WAT", "OESZ": "OESZ", "WARST": "WARST", "TMST": "TMST", "BOT": "BOT", "WIB": "WIB", "AWDT": "AWDT", "ECT": "ECT", "UYST": "UYST", "HENOMX": "HENOMX", "∅∅∅": "∅∅∅", "LHDT": "LHDT", "CDT": "CDT", "NZDT": "NZDT", "MYT": "MYT", "EST": "EST", "PST": "PST", "MESZ": "MESZ", "HKST": "HKST"},
}
}
diff --git a/tzm_MA/tzm_MA.go b/tzm_MA/tzm_MA.go
index 07ecfef5..7eda1e50 100644
--- a/tzm_MA/tzm_MA.go
+++ b/tzm_MA/tzm_MA.go
@@ -65,7 +65,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ZƐ", "ḌƐ"},
erasNarrow: []string{"", ""},
erasWide: []string{"Zdat Ɛisa (TAƔ)", "Ḍeffir Ɛisa (TAƔ)"},
- timezones: map[string]string{"COT": "COT", "HENOMX": "HENOMX", "HNCU": "HNCU", "MDT": "MDT", "MYT": "MYT", "AKST": "AKST", "JDT": "JDT", "TMT": "TMT", "WIT": "WIT", "WEZ": "WEZ", "HECU": "HECU", "HEPMX": "HEPMX", "ADT": "ADT", "HEPM": "HEPM", "SAST": "SAST", "EAT": "EAT", "ACDT": "ACDT", "WART": "WART", "SGT": "SGT", "UYST": "UYST", "HAST": "HAST", "AEDT": "AEDT", "HNEG": "HNEG", "ACST": "ACST", "MESZ": "MESZ", "NZST": "NZST", "ART": "ART", "AWST": "AWST", "IST": "IST", "WAT": "WAT", "VET": "VET", "ACWST": "ACWST", "COST": "COST", "AST": "AST", "EST": "EST", "EDT": "EDT", "BT": "BT", "HAT": "HAT", "ARST": "ARST", "AWDT": "AWDT", "JST": "JST", "ECT": "ECT", "WITA": "WITA", "LHDT": "LHDT", "HNNOMX": "HNNOMX", "HNPMX": "HNPMX", "MST": "MST", "SRT": "SRT", "ACWDT": "ACWDT", "OESZ": "OESZ", "GMT": "GMT", "GFT": "GFT", "AKDT": "AKDT", "CST": "CST", "CLT": "CLT", "HEEG": "HEEG", "OEZ": "OEZ", "HADT": "HADT", "HNPM": "HNPM", "CHAST": "CHAST", "GYT": "GYT", "HKST": "HKST", "HNT": "HNT", "CHADT": "CHADT", "∅∅∅": "∅∅∅", "BOT": "BOT", "WAST": "WAST", "PDT": "PDT", "WESZ": "WESZ", "CLST": "CLST", "TMST": "TMST", "CDT": "CDT", "HNOG": "HNOG", "PST": "PST", "AEST": "AEST", "MEZ": "MEZ", "CAT": "CAT", "WIB": "WIB", "UYT": "UYT", "HEOG": "HEOG", "HKT": "HKT", "LHST": "LHST", "NZDT": "NZDT", "ChST": "ChST", "WARST": "WARST"},
+ timezones: map[string]string{"∅∅∅": "∅∅∅", "AEDT": "AEDT", "LHDT": "LHDT", "HAST": "HAST", "HNOG": "HNOG", "OEZ": "OEZ", "HAT": "HAT", "EAT": "EAT", "WIB": "WIB", "PST": "PST", "CDT": "CDT", "NZDT": "NZDT", "CLT": "CLT", "ADT": "ADT", "HEEG": "HEEG", "HEPM": "HEPM", "CST": "CST", "ACWST": "ACWST", "HKT": "HKT", "SGT": "SGT", "ACWDT": "ACWDT", "WART": "WART", "HKST": "HKST", "COT": "COT", "HNT": "HNT", "WITA": "WITA", "HNEG": "HNEG", "AEST": "AEST", "WARST": "WARST", "CLST": "CLST", "AST": "AST", "TMST": "TMST", "ARST": "ARST", "WAT": "WAT", "ChST": "ChST", "UYT": "UYT", "BOT": "BOT", "HECU": "HECU", "AWST": "AWST", "MEZ": "MEZ", "OESZ": "OESZ", "ACDT": "ACDT", "HNPM": "HNPM", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "ECT": "ECT", "WEZ": "WEZ", "MST": "MST", "EDT": "EDT", "WESZ": "WESZ", "TMT": "TMT", "MDT": "MDT", "ART": "ART", "HADT": "HADT", "GMT": "GMT", "HNNOMX": "HNNOMX", "JST": "JST", "JDT": "JDT", "GFT": "GFT", "AKDT": "AKDT", "UYST": "UYST", "CAT": "CAT", "HEOG": "HEOG", "PDT": "PDT", "MESZ": "MESZ", "WAST": "WAST", "BT": "BT", "AKST": "AKST", "GYT": "GYT", "CHADT": "CHADT", "VET": "VET", "MYT": "MYT", "COST": "COST", "HNCU": "HNCU", "CHAST": "CHAST", "IST": "IST", "NZST": "NZST", "ACST": "ACST", "SAST": "SAST", "LHST": "LHST", "SRT": "SRT", "EST": "EST", "HENOMX": "HENOMX", "WIT": "WIT", "AWDT": "AWDT"},
}
}
diff --git a/ug/ug.go b/ug/ug.go
index 40f7a9d9..c6ebf7f5 100644
--- a/ug/ug.go
+++ b/ug/ug.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "مىلادىيە"},
erasNarrow: []string{"BCE", "مىلادىيە"},
erasWide: []string{"مىلادىيەدىن بۇرۇن", "مىلادىيە"},
- timezones: map[string]string{"HNPM": "ساينىت پىئېر ۋە مىكېلون ئۆلچەملىك ۋاقتى", "MEZ": "ئوتتۇرا ياۋروپا ئۆلچەملىك ۋاقتى", "NZST": "يېڭى زېلاندىيە ئۆلچەملىك ۋاقتى", "TMST": "تۈركمەنىستان يازلىق ۋاقتى", "ACST": "ئاۋسترالىيە ئوتتۇرا قىسىم ئۆلچەملىك ۋاقتى", "BT": "بۇتان ۋاقتى", "AWST": "ئاۋسترالىيە غەربىي قىسىم ئۆلچەملىك ۋاقتى", "IST": "ھىندىستان ئۆلچەملىك ۋاقتى", "GFT": "فىرانسىيەگە قاراشلىق گىۋىيانا ۋاقتى", "BOT": "بولىۋىيە ۋاقتى", "OESZ": "شەرقىي ياۋروپا يازلىق ۋاقتى", "WART": "غەربىي ئارگېنتىنا ئۆلچەملىك ۋاقتى", "HKT": "شياڭگاڭ ئۆلچەملىك ۋاقتى", "HEPM": "ساينىت پىئېر ۋە مىكېلون يازلىق ۋاقتى", "JDT": "ياپونىيە يازلىق ۋاقتى", "COT": "كولومبىيە ئۆلچەملىك ۋاقتى", "SRT": "سۇرىنام ۋاقتى", "ART": "ئارگېنتىنا ئۆلچەملىك ۋاقتى", "HEOG": "غەربىي گىرېنلاند يازلىق ۋاقتى", "AEDT": "ئاۋسترالىيە شەرقىي قىسىم يازلىق ۋاقتى", "CHADT": "چاتام يازلىق ۋاقتى", "LHST": "لورد-خاي ئۆلچەملىك ۋاقتى", "WAT": "غەربىي ئافرىقا ئۆلچەملىك ۋاقتى", "ACWST": "ئاۋستىرالىيە ئوتتۇرا غەربىي قىسىم ئۆلچەملىك ۋاقتى", "ACWDT": "ئاۋسترالىيە ئوتتۇرا غەربىي قىسىم يازلىق ۋاقتى", "NZDT": "يېڭى زېلاندىيە يازلىق ۋاقتى", "∅∅∅": "ئامازون يازلىق ۋاقتى", "CDT": "ئوتتۇرا قىسىم يازلىق ۋاقتى", "ACDT": "ئاۋسترالىيە ئوتتۇرا قىسىم يازلىق ۋاقتى", "ECT": "ئېكۋادور ۋاقتى", "UYT": "ئۇرۇگۋاي ئۆلچەملىك ۋاقتى", "HNOG": "غەربىي گىرېنلاند ئۆلچەملىك ۋاقتى", "AWDT": "ئاۋسترالىيە غەربىي قىسىم يازلىق ۋاقتى", "WITA": "ئوتتۇرا ھىندونېزىيە ۋاقتى", "EDT": "شەرقىي قىسىم يازلىق ۋاقتى", "MDT": "ئاۋمېن يازلىق ۋاقتى", "ADT": "ئاتلانتىك ئوكيان يازلىق ۋاقتى", "UYST": "ئۇرۇگۋاي يازلىق ۋاقتى", "WEZ": "غەربىي ياۋروپا ئۆلچەملىك ۋاقتى", "CHAST": "چاتام ئۆلچەملىك ۋاقتى", "HENOMX": "مېكسىكا غەربىي شىمالىي قىسىم يازلىق ۋاقتى", "HNPMX": "مېكسىكا تىنچ ئوكيان ئۆلچەملىك ۋاقتى", "CST": "ئوتتۇرا قىسىم ئۆلچەملىك ۋاقتى", "AKST": "ئالياسكا ئۆلچەملىك ۋاقتى", "ARST": "ئارگېنتىنا يازلىق ۋاقتى", "HEEG": "شەرقىي گىرېنلاند يازلىق ۋاقتى", "SGT": "سىنگاپور ۋاقتى", "MST": "ئاۋمېن ئۆلچەملىك ۋاقتى", "MYT": "مالايشىيا ۋاقتى", "AKDT": "ئالياسكا يازلىق ۋاقتى", "WIT": "شەرقىي ھىندونېزىيە ۋاقتى", "JST": "ياپونىيە ئۆلچەملىك ۋاقتى", "HEPMX": "مېكسىكا تىنچ ئوكيان يازلىق ۋاقتى", "GYT": "گىۋىيانا ۋاقتى", "HADT": "ھاۋاي-ئالېيۇت يازلىق ۋاقتى", "VET": "ۋېنېزۇئېلا ۋاقتى", "PST": "تىنچ ئوكيان ئۆلچەملىك ۋاقتى", "WESZ": "غەربىي ياۋروپا يازلىق ۋاقتى", "ChST": "چاموررو ئۆلچەملىك ۋاقتى", "WARST": "غەربىي ئارگېنتىنا يازلىق ۋاقتى", "COST": "كولومبىيە يازلىق ۋاقتى", "HNCU": "كۇبا ئۆلچەملىك ۋاقتى", "HAST": "ھاۋاي-ئالېيۇت ئۆلچەملىك ۋاقتى", "HAT": "نىۋفوئۇنلاند يازلىق ۋاقتى", "HNEG": "شەرقىي گىرېنلاند ئۆلچەملىك ۋاقتى", "HNNOMX": "مېكسىكا غەربىي شىمالىي قىسىم ئۆلچەملىك ۋاقتى", "PDT": "تىنچ ئوكيان يازلىق ۋاقتى", "HKST": "شياڭگاڭ يازلىق ۋاقتى", "HNT": "نىۋفوئۇنلاند ئۆلچەملىك ۋاقتى", "LHDT": "لورد-خاي يازلىق ۋاقتى", "CLST": "چىلى يازلىق ۋاقتى", "TMT": "تۈركمەنىستان ئۆلچەملىك ۋاقتى", "WAST": "غەربىي ئافرىقا يازلىق ۋاقتى", "GMT": "گىرىنۋىچ ۋاقتى", "AST": "ئاتلانتىك ئوكيان ئۆلچەملىك ۋاقتى", "SAST": "جەنۇبىي ئافرىقا ئۆلچەملىك ۋاقتى", "CLT": "چىلى ئۆلچەملىك ۋاقتى", "OEZ": "شەرقىي ياۋروپا ئۆلچەملىك ۋاقتى", "AEST": "ئاۋسترالىيە شەرقىي قىسىم ئۆلچەملىك ۋاقتى", "MESZ": "ئوتتۇرا ياۋروپا يازلىق ۋاقتى", "CAT": "ئوتتۇرا ئافرىقا ۋاقتى", "EAT": "شەرقىي ئافرىقا ۋاقتى", "HECU": "كۇبا يازلىق ۋاقتى", "EST": "شەرقىي قىسىم ئۆلچەملىك ۋاقتى", "WIB": "غەربىي ھىندونېزىيە ۋاقتى"},
+ timezones: map[string]string{"EAT": "شەرقىي ئافرىقا ۋاقتى", "HNEG": "شەرقىي گىرېنلاند ئۆلچەملىك ۋاقتى", "LHDT": "لورد-خاي يازلىق ۋاقتى", "CHAST": "چاتام ئۆلچەملىك ۋاقتى", "SGT": "سىنگاپور ۋاقتى", "PDT": "تىنچ ئوكيان يازلىق ۋاقتى", "ADT": "ئاتلانتىك ئوكيان يازلىق ۋاقتى", "OESZ": "شەرقىي ياۋروپا يازلىق ۋاقتى", "UYT": "ئۇرۇگۋاي ئۆلچەملىك ۋاقتى", "HNPMX": "مېكسىكا تىنچ ئوكيان ئۆلچەملىك ۋاقتى", "SAST": "جەنۇبىي ئافرىقا ئۆلچەملىك ۋاقتى", "CDT": "ئوتتۇرا قىسىم يازلىق ۋاقتى", "PST": "تىنچ ئوكيان ئۆلچەملىك ۋاقتى", "JDT": "ياپونىيە يازلىق ۋاقتى", "ARST": "ئارگېنتىنا يازلىق ۋاقتى", "WAST": "غەربىي ئافرىقا يازلىق ۋاقتى", "EDT": "شەرقىي قىسىم يازلىق ۋاقتى", "HKT": "شياڭگاڭ ئۆلچەملىك ۋاقتى", "CHADT": "چاتام يازلىق ۋاقتى", "JST": "ياپونىيە ئۆلچەملىك ۋاقتى", "MDT": "ئاۋمېن يازلىق ۋاقتى", "GYT": "گىۋىيانا ۋاقتى", "BOT": "بولىۋىيە ۋاقتى", "HADT": "ھاۋاي-ئالېيۇت يازلىق ۋاقتى", "ACWDT": "ئاۋسترالىيە ئوتتۇرا غەربىي قىسىم يازلىق ۋاقتى", "NZST": "يېڭى زېلاندىيە ئۆلچەملىك ۋاقتى", "AST": "ئاتلانتىك ئوكيان ئۆلچەملىك ۋاقتى", "WART": "غەربىي ئارگېنتىنا ئۆلچەملىك ۋاقتى", "ChST": "چاموررو ئۆلچەملىك ۋاقتى", "HNCU": "كۇبا ئۆلچەملىك ۋاقتى", "CST": "ئوتتۇرا قىسىم ئۆلچەملىك ۋاقتى", "CAT": "ئوتتۇرا ئافرىقا ۋاقتى", "HEOG": "غەربىي گىرېنلاند يازلىق ۋاقتى", "HEEG": "شەرقىي گىرېنلاند يازلىق ۋاقتى", "AKST": "ئالياسكا ئۆلچەملىك ۋاقتى", "HEPMX": "مېكسىكا تىنچ ئوكيان يازلىق ۋاقتى", "AWST": "ئاۋسترالىيە غەربىي قىسىم ئۆلچەملىك ۋاقتى", "WEZ": "غەربىي ياۋروپا ئۆلچەملىك ۋاقتى", "WESZ": "غەربىي ياۋروپا يازلىق ۋاقتى", "CLT": "چىلى ئۆلچەملىك ۋاقتى", "ART": "ئارگېنتىنا ئۆلچەملىك ۋاقتى", "COST": "كولومبىيە يازلىق ۋاقتى", "HENOMX": "مېكسىكا غەربىي شىمالىي قىسىم يازلىق ۋاقتى", "VET": "ۋېنېزۇئېلا ۋاقتى", "MYT": "مالايشىيا ۋاقتى", "TMT": "تۈركمەنىستان ئۆلچەملىك ۋاقتى", "GFT": "فىرانسىيەگە قاراشلىق گىۋىيانا ۋاقتى", "∅∅∅": "بىرازىلىيە يازلىق ۋاقتى", "NZDT": "يېڭى زېلاندىيە يازلىق ۋاقتى", "OEZ": "شەرقىي ياۋروپا ئۆلچەملىك ۋاقتى", "CLST": "چىلى يازلىق ۋاقتى", "MST": "ئاۋمېن ئۆلچەملىك ۋاقتى", "AEST": "ئاۋسترالىيە شەرقىي قىسىم ئۆلچەملىك ۋاقتى", "HNPM": "ساينىت پىئېر ۋە مىكېلون ئۆلچەملىك ۋاقتى", "HKST": "شياڭگاڭ يازلىق ۋاقتى", "COT": "كولومبىيە ئۆلچەملىك ۋاقتى", "HNOG": "غەربىي گىرېنلاند ئۆلچەملىك ۋاقتى", "WARST": "غەربىي ئارگېنتىنا يازلىق ۋاقتى", "HNNOMX": "مېكسىكا غەربىي شىمالىي قىسىم ئۆلچەملىك ۋاقتى", "AEDT": "ئاۋسترالىيە شەرقىي قىسىم يازلىق ۋاقتى", "AWDT": "ئاۋسترالىيە غەربىي قىسىم يازلىق ۋاقتى", "ACWST": "ئاۋستىرالىيە ئوتتۇرا غەربىي قىسىم ئۆلچەملىك ۋاقتى", "TMST": "تۈركمەنىستان يازلىق ۋاقتى", "ACST": "ئاۋسترالىيە ئوتتۇرا قىسىم ئۆلچەملىك ۋاقتى", "HAT": "نىۋفوئۇنلاند يازلىق ۋاقتى", "LHST": "لورد-خاي ئۆلچەملىك ۋاقتى", "WIT": "شەرقىي ھىندونېزىيە ۋاقتى", "WAT": "غەربىي ئافرىقا ئۆلچەملىك ۋاقتى", "HNT": "نىۋفوئۇنلاند ئۆلچەملىك ۋاقتى", "WITA": "ئوتتۇرا ھىندونېزىيە ۋاقتى", "AKDT": "ئالياسكا يازلىق ۋاقتى", "MESZ": "ئوتتۇرا ياۋروپا يازلىق ۋاقتى", "GMT": "گىرىنۋىچ ۋاقتى", "BT": "بۇتان ۋاقتى", "UYST": "ئۇرۇگۋاي يازلىق ۋاقتى", "HEPM": "ساينىت پىئېر ۋە مىكېلون يازلىق ۋاقتى", "SRT": "سۇرىنام ۋاقتى", "WIB": "غەربىي ھىندونېزىيە ۋاقتى", "HAST": "ھاۋاي-ئالېيۇت ئۆلچەملىك ۋاقتى", "ECT": "ئېكۋادور ۋاقتى", "MEZ": "ئوتتۇرا ياۋروپا ئۆلچەملىك ۋاقتى", "EST": "شەرقىي قىسىم ئۆلچەملىك ۋاقتى", "ACDT": "ئاۋسترالىيە ئوتتۇرا قىسىم يازلىق ۋاقتى", "HECU": "كۇبا يازلىق ۋاقتى", "IST": "ھىندىستان ئۆلچەملىك ۋاقتى"},
}
}
diff --git a/ug_CN/ug_CN.go b/ug_CN/ug_CN.go
index a9acbbab..0e180bb5 100644
--- a/ug_CN/ug_CN.go
+++ b/ug_CN/ug_CN.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BCE", "مىلادىيە"},
erasNarrow: []string{"BCE", "مىلادىيە"},
erasWide: []string{"مىلادىيەدىن بۇرۇن", "مىلادىيە"},
- timezones: map[string]string{"IST": "ھىندىستان ئۆلچەملىك ۋاقتى", "ChST": "چاموررو ئۆلچەملىك ۋاقتى", "COST": "كولومبىيە يازلىق ۋاقتى", "HNNOMX": "مېكسىكا غەربىي شىمالىي قىسىم ئۆلچەملىك ۋاقتى", "SGT": "سىنگاپور ۋاقتى", "HNPMX": "مېكسىكا تىنچ ئوكيان ئۆلچەملىك ۋاقتى", "LHST": "لورد-خاي ئۆلچەملىك ۋاقتى", "NZDT": "يېڭى زېلاندىيە يازلىق ۋاقتى", "WAST": "غەربىي ئافرىقا يازلىق ۋاقتى", "LHDT": "لورد-خاي يازلىق ۋاقتى", "SAST": "جەنۇبىي ئافرىقا ئۆلچەملىك ۋاقتى", "ACDT": "ئاۋسترالىيە ئوتتۇرا قىسىم يازلىق ۋاقتى", "GMT": "گىرىنۋىچ ۋاقتى", "HADT": "ھاۋاي-ئالېيۇت يازلىق ۋاقتى", "VET": "ۋېنېزۇئېلا ۋاقتى", "BT": "بۇتان ۋاقتى", "NZST": "يېڭى زېلاندىيە ئۆلچەملىك ۋاقتى", "AWDT": "ئاۋسترالىيە غەربىي قىسىم يازلىق ۋاقتى", "HEPM": "ساينىت پىئېر ۋە مىكېلون يازلىق ۋاقتى", "CLST": "چىلى يازلىق ۋاقتى", "HECU": "كۇبا يازلىق ۋاقتى", "EDT": "شەرقىي قىسىم يازلىق ۋاقتى", "MDT": "ئاۋمېن يازلىق ۋاقتى", "HAT": "نىۋفوئۇنلاند يازلىق ۋاقتى", "BOT": "بولىۋىيە ۋاقتى", "WAT": "غەربىي ئافرىقا ئۆلچەملىك ۋاقتى", "WART": "غەربىي ئارگېنتىنا ئۆلچەملىك ۋاقتى", "AEST": "ئاۋسترالىيە شەرقىي قىسىم ئۆلچەملىك ۋاقتى", "WEZ": "غەربىي ياۋروپا ئۆلچەملىك ۋاقتى", "AWST": "ئاۋسترالىيە غەربىي قىسىم ئۆلچەملىك ۋاقتى", "∅∅∅": "ئامازون يازلىق ۋاقتى", "CST": "ئوتتۇرا قىسىم ئۆلچەملىك ۋاقتى", "ARST": "ئارگېنتىنا يازلىق ۋاقتى", "WESZ": "غەربىي ياۋروپا يازلىق ۋاقتى", "AEDT": "ئاۋسترالىيە شەرقىي قىسىم يازلىق ۋاقتى", "JDT": "ياپونىيە يازلىق ۋاقتى", "WARST": "غەربىي ئارگېنتىنا يازلىق ۋاقتى", "HNCU": "كۇبا ئۆلچەملىك ۋاقتى", "WIT": "شەرقىي ھىندونېزىيە ۋاقتى", "ART": "ئارگېنتىنا ئۆلچەملىك ۋاقتى", "COT": "كولومبىيە ئۆلچەملىك ۋاقتى", "HEEG": "شەرقىي گىرېنلاند يازلىق ۋاقتى", "HKST": "شياڭگاڭ يازلىق ۋاقتى", "TMT": "تۈركمەنىستان ئۆلچەملىك ۋاقتى", "TMST": "تۈركمەنىستان يازلىق ۋاقتى", "HENOMX": "مېكسىكا غەربىي شىمالىي قىسىم يازلىق ۋاقتى", "EST": "شەرقىي قىسىم ئۆلچەملىك ۋاقتى", "CDT": "ئوتتۇرا قىسىم يازلىق ۋاقتى", "ADT": "ئاتلانتىك ئوكيان يازلىق ۋاقتى", "ACWDT": "ئاۋسترالىيە ئوتتۇرا غەربىي قىسىم يازلىق ۋاقتى", "AKST": "ئالياسكا ئۆلچەملىك ۋاقتى", "WITA": "ئوتتۇرا ھىندونېزىيە ۋاقتى", "HNEG": "شەرقىي گىرېنلاند ئۆلچەملىك ۋاقتى", "CAT": "ئوتتۇرا ئافرىقا ۋاقتى", "AST": "ئاتلانتىك ئوكيان ئۆلچەملىك ۋاقتى", "GYT": "گىۋىيانا ۋاقتى", "UYT": "ئۇرۇگۋاي ئۆلچەملىك ۋاقتى", "SRT": "سۇرىنام ۋاقتى", "PDT": "تىنچ ئوكيان يازلىق ۋاقتى", "HKT": "شياڭگاڭ ئۆلچەملىك ۋاقتى", "HNPM": "ساينىت پىئېر ۋە مىكېلون ئۆلچەملىك ۋاقتى", "ACST": "ئاۋسترالىيە ئوتتۇرا قىسىم ئۆلچەملىك ۋاقتى", "OEZ": "شەرقىي ياۋروپا ئۆلچەملىك ۋاقتى", "AKDT": "ئالياسكا يازلىق ۋاقتى", "HNOG": "غەربىي گىرېنلاند ئۆلچەملىك ۋاقتى", "UYST": "ئۇرۇگۋاي يازلىق ۋاقتى", "WIB": "غەربىي ھىندونېزىيە ۋاقتى", "JST": "ياپونىيە ئۆلچەملىك ۋاقتى", "MYT": "مالايشىيا ۋاقتى", "GFT": "فىرانسىيەگە قاراشلىق گىۋىيانا ۋاقتى", "ACWST": "ئاۋستىرالىيە ئوتتۇرا غەربىي قىسىم ئۆلچەملىك ۋاقتى", "CHAST": "چاتام ئۆلچەملىك ۋاقتى", "CLT": "چىلى ئۆلچەملىك ۋاقتى", "MST": "ئاۋمېن ئۆلچەملىك ۋاقتى", "HEPMX": "مېكسىكا تىنچ ئوكيان يازلىق ۋاقتى", "HNT": "نىۋفوئۇنلاند ئۆلچەملىك ۋاقتى", "OESZ": "شەرقىي ياۋروپا يازلىق ۋاقتى", "ECT": "ئېكۋادور ۋاقتى", "EAT": "شەرقىي ئافرىقا ۋاقتى", "HEOG": "غەربىي گىرېنلاند يازلىق ۋاقتى", "CHADT": "چاتام يازلىق ۋاقتى", "MEZ": "ئوتتۇرا ياۋروپا ئۆلچەملىك ۋاقتى", "MESZ": "ئوتتۇرا ياۋروپا يازلىق ۋاقتى", "HAST": "ھاۋاي-ئالېيۇت ئۆلچەملىك ۋاقتى", "PST": "تىنچ ئوكيان ئۆلچەملىك ۋاقتى"},
+ timezones: map[string]string{"WART": "غەربىي ئارگېنتىنا ئۆلچەملىك ۋاقتى", "ARST": "ئارگېنتىنا يازلىق ۋاقتى", "COST": "كولومبىيە يازلىق ۋاقتى", "HEPM": "ساينىت پىئېر ۋە مىكېلون يازلىق ۋاقتى", "VET": "ۋېنېزۇئېلا ۋاقتى", "JST": "ياپونىيە ئۆلچەملىك ۋاقتى", "AST": "ئاتلانتىك ئوكيان ئۆلچەملىك ۋاقتى", "EST": "شەرقىي قىسىم ئۆلچەملىك ۋاقتى", "HEEG": "شەرقىي گىرېنلاند يازلىق ۋاقتى", "UYST": "ئۇرۇگۋاي يازلىق ۋاقتى", "AWST": "ئاۋسترالىيە غەربىي قىسىم ئۆلچەملىك ۋاقتى", "HAST": "ھاۋاي-ئالېيۇت ئۆلچەملىك ۋاقتى", "CLT": "چىلى ئۆلچەملىك ۋاقتى", "SAST": "جەنۇبىي ئافرىقا ئۆلچەملىك ۋاقتى", "HENOMX": "مېكسىكا غەربىي شىمالىي قىسىم يازلىق ۋاقتى", "WITA": "ئوتتۇرا ھىندونېزىيە ۋاقتى", "AEDT": "ئاۋسترالىيە شەرقىي قىسىم يازلىق ۋاقتى", "OESZ": "شەرقىي ياۋروپا يازلىق ۋاقتى", "MST": "ئاۋمېن ئۆلچەملىك ۋاقتى", "HNOG": "غەربىي گىرېنلاند ئۆلچەملىك ۋاقتى", "EDT": "شەرقىي قىسىم يازلىق ۋاقتى", "HAT": "نىۋفوئۇنلاند يازلىق ۋاقتى", "EAT": "شەرقىي ئافرىقا ۋاقتى", "∅∅∅": "بىرازىلىيە يازلىق ۋاقتى", "PST": "تىنچ ئوكيان ئۆلچەملىك ۋاقتى", "HNPM": "ساينىت پىئېر ۋە مىكېلون ئۆلچەملىك ۋاقتى", "HECU": "كۇبا يازلىق ۋاقتى", "WAST": "غەربىي ئافرىقا يازلىق ۋاقتى", "ChST": "چاموررو ئۆلچەملىك ۋاقتى", "MYT": "مالايشىيا ۋاقتى", "GFT": "فىرانسىيەگە قاراشلىق گىۋىيانا ۋاقتى", "HNCU": "كۇبا ئۆلچەملىك ۋاقتى", "CDT": "ئوتتۇرا قىسىم يازلىق ۋاقتى", "MESZ": "ئوتتۇرا ياۋروپا يازلىق ۋاقتى", "HNNOMX": "مېكسىكا غەربىي شىمالىي قىسىم ئۆلچەملىك ۋاقتى", "GYT": "گىۋىيانا ۋاقتى", "CST": "ئوتتۇرا قىسىم ئۆلچەملىك ۋاقتى", "WESZ": "غەربىي ياۋروپا يازلىق ۋاقتى", "HNEG": "شەرقىي گىرېنلاند ئۆلچەملىك ۋاقتى", "AEST": "ئاۋسترالىيە شەرقىي قىسىم ئۆلچەملىك ۋاقتى", "HEPMX": "مېكسىكا تىنچ ئوكيان يازلىق ۋاقتى", "AWDT": "ئاۋسترالىيە غەربىي قىسىم يازلىق ۋاقتى", "HNT": "نىۋفوئۇنلاند ئۆلچەملىك ۋاقتى", "HEOG": "غەربىي گىرېنلاند يازلىق ۋاقتى", "ADT": "ئاتلانتىك ئوكيان يازلىق ۋاقتى", "WEZ": "غەربىي ياۋروپا ئۆلچەملىك ۋاقتى", "HKT": "شياڭگاڭ ئۆلچەملىك ۋاقتى", "HKST": "شياڭگاڭ يازلىق ۋاقتى", "AKDT": "ئالياسكا يازلىق ۋاقتى", "HADT": "ھاۋاي-ئالېيۇت يازلىق ۋاقتى", "WARST": "غەربىي ئارگېنتىنا يازلىق ۋاقتى", "UYT": "ئۇرۇگۋاي ئۆلچەملىك ۋاقتى", "LHST": "لورد-خاي ئۆلچەملىك ۋاقتى", "LHDT": "لورد-خاي يازلىق ۋاقتى", "WIB": "غەربىي ھىندونېزىيە ۋاقتى", "NZDT": "يېڭى زېلاندىيە يازلىق ۋاقتى", "ART": "ئارگېنتىنا ئۆلچەملىك ۋاقتى", "HNPMX": "مېكسىكا تىنچ ئوكيان ئۆلچەملىك ۋاقتى", "WIT": "شەرقىي ھىندونېزىيە ۋاقتى", "CLST": "چىلى يازلىق ۋاقتى", "ECT": "ئېكۋادور ۋاقتى", "NZST": "يېڭى زېلاندىيە ئۆلچەملىك ۋاقتى", "JDT": "ياپونىيە يازلىق ۋاقتى", "OEZ": "شەرقىي ياۋروپا ئۆلچەملىك ۋاقتى", "GMT": "گىرىنۋىچ ۋاقتى", "ACDT": "ئاۋسترالىيە ئوتتۇرا قىسىم يازلىق ۋاقتى", "CHAST": "چاتام ئۆلچەملىك ۋاقتى", "SGT": "سىنگاپور ۋاقتى", "CAT": "ئوتتۇرا ئافرىقا ۋاقتى", "WAT": "غەربىي ئافرىقا ئۆلچەملىك ۋاقتى", "COT": "كولومبىيە ئۆلچەملىك ۋاقتى", "CHADT": "چاتام يازلىق ۋاقتى", "BOT": "بولىۋىيە ۋاقتى", "TMST": "تۈركمەنىستان يازلىق ۋاقتى", "BT": "بۇتان ۋاقتى", "AKST": "ئالياسكا ئۆلچەملىك ۋاقتى", "SRT": "سۇرىنام ۋاقتى", "ACWDT": "ئاۋسترالىيە ئوتتۇرا غەربىي قىسىم يازلىق ۋاقتى", "MEZ": "ئوتتۇرا ياۋروپا ئۆلچەملىك ۋاقتى", "ACWST": "ئاۋستىرالىيە ئوتتۇرا غەربىي قىسىم ئۆلچەملىك ۋاقتى", "TMT": "تۈركمەنىستان ئۆلچەملىك ۋاقتى", "MDT": "ئاۋمېن يازلىق ۋاقتى", "ACST": "ئاۋسترالىيە ئوتتۇرا قىسىم ئۆلچەملىك ۋاقتى", "PDT": "تىنچ ئوكيان يازلىق ۋاقتى", "IST": "ھىندىستان ئۆلچەملىك ۋاقتى"},
}
}
diff --git a/uk/uk.go b/uk/uk.go
index 15f851d1..914406e7 100644
--- a/uk/uk.go
+++ b/uk/uk.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"до н. е.", "н. е."},
erasNarrow: []string{"до н.е.", "н.е."},
erasWide: []string{"до нашої ери", "нашої ери"},
- timezones: map[string]string{"HAST": "за стандартним гавайсько-алеутським часом", "JDT": "за японським літнім часом", "HNCU": "за стандартним часом на Кубі", "AKST": "за стандартним часом на Алясці", "CST": "за північноамериканським центральним стандартним часом", "PDT": "за північноамериканським тихоокеанським літнім часом", "IST": "за індійським стандартним часом", "ChST": "за часом на Північних Маріанських островах", "BOT": "за болівійським часом", "SGT": "за часом у Сінгапурі", "MDT": "MDT", "GYT": "за часом у Гаяні", "HNPM": "за стандартним часом на островах Сен-П’єр і Мікелон", "WART": "за стандартним західноаргентинським часом", "LHST": "за стандартним часом на острові Лорд-Хау", "WARST": "за літнім за західноаргентинським часом", "COT": "за стандартним колумбійським часом", "AST": "за атлантичним стандартним часом", "MYT": "за часом у Малайзії", "AEDT": "за літнім східноавстралійським часом", "HEPM": "за літнім часом на островах Сен-П’єр і Мікелон", "NZDT": "за літнім часом у Новій Зеландії", "CAT": "за центральноафриканським часом", "WITA": "за центральноіндонезійським часом", "HNNOMX": "за стандартним північнозахідним часом у Мексиці", "EDT": "за північноамериканським східним літнім часом", "CDT": "за північноамериканським центральним літнім часом", "HADT": "за літнім гавайсько-алеутським часом", "VET": "за часом у Венесуелі", "WIT": "за східноіндонезійським часом", "HNT": "за стандартним часом на острові Ньюфаундленд", "AWST": "за стандартним західноавстралійським часом", "AWDT": "за літнім західноавстралійським часом", "NZST": "за стандартним часом у Новій Зеландії", "HNOG": "за стандартним західним часом у Гренландії", "AEST": "за стандартним східноавстралійським часом", "JST": "за японським стандартним часом", "UYST": "за літнім часом в Уругваї", "HEOG": "за літнім західним часом у Гренландії", "HKT": "за стандартним часом у Гонконзі", "TMST": "за літнім часом у Туркменістані", "HECU": "за літнім часом на Кубі", "HNPMX": "за стандартним тихоокеанським часом у Мексиці", "PST": "за північноамериканським тихоокеанським стандартним часом", "ACWDT": "за літнім центральнозахідним австралійським часом", "ACST": "за стандартним центральноавстралійським часом", "ACDT": "за літнім центральноавстралійським часом", "ECT": "за часом в Еквадорі", "HKST": "за літнім часом у Гонконзі", "CLST": "за літнім чилійським часом", "TMT": "за стандартним часом у Туркменістані", "EAT": "за східноафриканським часом", "WAT": "за західноафриканським стандартним часом", "EST": "за північноамериканським східним стандартним часом", "AKDT": "за літнім часом на Алясці", "SRT": "за часом у Суринамі", "CHADT": "за літнім часом на архіпелазі Чатем", "HEEG": "за літнім східним часом у Гренландії", "GFT": "за часом Французької Гвіани", "HENOMX": "за літнім північнозахідним часом у Мексиці", "WESZ": "за західноєвропейським літнім часом", "LHDT": "за літнім часом на острові Лорд-Хау", "SAST": "за південноафриканським часом", "CLT": "за стандартним чилійським часом", "∅∅∅": "за літнім часом на Амазонці", "OEZ": "за східноєвропейським стандартним часом", "ADT": "за атлантичним літнім часом", "ARST": "за літнім аргентинським часом", "ACWST": "за стандартним центральнозахідним австралійським часом", "MEZ": "за центральноєвропейським стандартним часом", "CHAST": "за стандартним часом на архіпелазі Чатем", "WAST": "за західноафриканським літнім часом", "MST": "MST", "BT": "за часом у Бутані", "ART": "за стандартним аргентинським часом", "WEZ": "за західноєвропейським стандартним часом", "MESZ": "за центральноєвропейським літнім часом", "HNEG": "за стандартним східним часом у Гренландії", "OESZ": "за східноєвропейським літнім часом", "WIB": "за західноіндонезійським часом", "HAT": "за літнім часом у Ньюфаундленд", "COST": "за літнім колумбійським часом", "GMT": "за Гринвічем", "HEPMX": "за літнім тихоокеанським часом у Мексиці", "UYT": "за стандартним часом в Уругваї"},
+ timezones: map[string]string{"HEEG": "за літнім східним часом у Гренландії", "LHDT": "за літнім часом на острові Лорд-Хау", "HECU": "за літнім часом на Кубі", "NZDT": "за літнім часом у Новій Зеландії", "ART": "за стандартним аргентинським часом", "EST": "за північноамериканським східним стандартним часом", "EDT": "за північноамериканським східним літнім часом", "HNEG": "за стандартним східним часом у Гренландії", "AKDT": "за літнім часом на Алясці", "AWDT": "за літнім західноавстралійським часом", "OEZ": "за східноєвропейським стандартним часом", "TMT": "за стандартним часом у Туркменістані", "WIB": "за західноіндонезійським часом", "SGT": "за часом у Сінгапурі", "IST": "за індійським стандартним часом", "MEZ": "за центральноєвропейським стандартним часом", "JST": "за японським стандартним часом", "MDT": "за північноамериканським гірським літнім часом", "AWST": "за стандартним західноавстралійським часом", "ACWST": "за стандартним центральнозахідним австралійським часом", "HKST": "за літнім часом у Гонконзі", "HAT": "за літнім часом у Ньюфаундленд", "AEDT": "за літнім східноавстралійським часом", "BOT": "за болівійським часом", "MESZ": "за центральноєвропейським літнім часом", "COT": "за стандартним колумбійським часом", "ARST": "за літнім аргентинським часом", "GFT": "за часом Французької Гвіани", "HNPM": "за стандартним часом на островах Сен-П’єр і Мікелон", "PDT": "за північноамериканським тихоокеанським літнім часом", "HADT": "за літнім гавайсько-алеутським часом", "GMT": "за Гринвічем", "WAT": "за західноафриканським стандартним часом", "AKST": "за стандартним часом на Алясці", "HNPMX": "за стандартним тихоокеанським часом у Мексиці", "ACWDT": "за літнім центральнозахідним австралійським часом", "NZST": "за стандартним часом у Новій Зеландії", "MYT": "за часом у Малайзії", "BT": "за часом у Бутані", "UYT": "за стандартним часом в Уругваї", "HEPM": "за літнім часом на островах Сен-П’єр і Мікелон", "SAST": "за південноафриканським часом", "CAT": "за центральноафриканським часом", "HNNOMX": "за стандартним північнозахідним часом у Мексиці", "CHAST": "за стандартним часом на архіпелазі Чатем", "ADT": "за атлантичним літнім часом", "ACDT": "за літнім центральноавстралійським часом", "WITA": "за центральноіндонезійським часом", "MST": "за північноамериканським гірським стандартним часом", "HEPMX": "за літнім тихоокеанським часом у Мексиці", "SRT": "за часом у Суринамі", "WIT": "за східноіндонезійським часом", "COST": "за літнім колумбійським часом", "HNOG": "за стандартним західним часом у Гренландії", "HKT": "за стандартним часом у Гонконзі", "∅∅∅": "час: Акрі, літній", "ChST": "за часом на Північних Маріанських островах", "LHST": "за стандартним часом на острові Лорд-Хау", "GYT": "за часом у Гаяні", "CHADT": "за літнім часом на архіпелазі Чатем", "AST": "за атлантичним стандартним часом", "HNCU": "за стандартним часом на Кубі", "ECT": "за часом в Еквадорі", "VET": "за часом у Венесуелі", "CLT": "за стандартним чилійським часом", "HEOG": "за літнім західним часом у Гренландії", "ACST": "за стандартним центральноавстралійським часом", "AEST": "за стандартним східноавстралійським часом", "UYST": "за літнім часом в Уругваї", "EAT": "за східноафриканським часом", "CDT": "за північноамериканським центральним літнім часом", "WART": "за стандартним західноаргентинським часом", "CST": "за північноамериканським центральним стандартним часом", "JDT": "за японським літнім часом", "WESZ": "за західноєвропейським літнім часом", "HENOMX": "за літнім північнозахідним часом у Мексиці", "CLST": "за літнім чилійським часом", "WEZ": "за західноєвропейським стандартним часом", "WARST": "за літнім за західноаргентинським часом", "WAST": "за західноафриканським літнім часом", "HNT": "за стандартним часом на острові Ньюфаундленд", "PST": "за північноамериканським тихоокеанським стандартним часом", "HAST": "за стандартним гавайсько-алеутським часом", "OESZ": "за східноєвропейським літнім часом", "TMST": "за літнім часом у Туркменістані"},
}
}
@@ -100,8 +100,8 @@ func (uk *uk) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
i := int64(n)
- iMod100 := i % 100
iMod10 := i % 10
+ iMod100 := i % 100
if v == 0 && iMod10 == 1 && iMod100 != 11 {
return locales.PluralRuleOne
diff --git a/uk_UA/uk_UA.go b/uk_UA/uk_UA.go
index cd46bc3a..520d45b6 100644
--- a/uk_UA/uk_UA.go
+++ b/uk_UA/uk_UA.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"до н. е.", "н. е."},
erasNarrow: []string{"до н.е.", "н.е."},
erasWide: []string{"до нашої ери", "нашої ери"},
- timezones: map[string]string{"HKT": "за стандартним часом у Гонконзі", "HEPM": "за літнім часом на островах Сен-П’єр і Мікелон", "CAT": "за центральноафриканським часом", "MST": "за північноамериканським гірським стандартним часом", "WIT": "за східноіндонезійським часом", "ARST": "за літнім аргентинським часом", "PST": "за північноамериканським тихоокеанським стандартним часом", "HNPM": "за стандартним часом на островах Сен-П’єр і Мікелон", "CST": "за північноамериканським центральним стандартним часом", "MYT": "за часом у Малайзії", "UYST": "за літнім часом в Уругваї", "SAST": "за південноафриканським часом", "ChST": "за часом на Північних Маріанських островах", "PDT": "за північноамериканським тихоокеанським літнім часом", "WAT": "за західноафриканським стандартним часом", "GMT": "за Гринвічем", "HEPMX": "за літнім тихоокеанським часом у Мексиці", "BT": "за часом у Бутані", "WEZ": "за західноєвропейським стандартним часом", "WESZ": "за західноєвропейським літнім часом", "LHDT": "за літнім часом на острові Лорд-Хау", "AWDT": "за літнім західноавстралійським часом", "IST": "за індійським стандартним часом", "CLT": "за стандартним чилійським часом", "OESZ": "за східноєвропейським літнім часом", "WARST": "за літнім за західноаргентинським часом", "AST": "за атлантичним стандартним часом", "GYT": "за часом у Гаяні", "HNOG": "за стандартним західним часом у Гренландії", "JDT": "за японським літнім часом", "HNNOMX": "за стандартним північнозахідним часом у Мексиці", "HADT": "за літнім гавайсько-алеутським часом", "NZDT": "за літнім часом у Новій Зеландії", "JST": "за японським стандартним часом", "∅∅∅": "за літнім часом на Амазонці", "HEEG": "за літнім східним часом у Гренландії", "HEOG": "за літнім західним часом у Гренландії", "AWST": "за стандартним західноавстралійським часом", "WITA": "за центральноіндонезійським часом", "ACDT": "за літнім центральноавстралійським часом", "EAT": "за східноафриканським часом", "WIB": "за західноіндонезійським часом", "MDT": "за північноамериканським гірським літнім часом", "ACWST": "за стандартним центральнозахідним австралійським часом", "NZST": "за стандартним часом у Новій Зеландії", "CHAST": "за стандартним часом на архіпелазі Чатем", "EST": "за північноамериканським східним стандартним часом", "AKST": "за стандартним часом на Алясці", "CDT": "за північноамериканським центральним літнім часом", "ACWDT": "за літнім центральнозахідним австралійським часом", "WAST": "за західноафриканським літнім часом", "OEZ": "за східноєвропейським стандартним часом", "VET": "за часом у Венесуелі", "SRT": "за часом у Суринамі", "CHADT": "за літнім часом на архіпелазі Чатем", "HAT": "за літнім часом у Ньюфаундленд", "ART": "за стандартним аргентинським часом", "TMT": "за стандартним часом у Туркменістані", "COT": "за стандартним колумбійським часом", "WART": "за стандартним західноаргентинським часом", "ADT": "за атлантичним літнім часом", "UYT": "за стандартним часом в Уругваї", "HAST": "за стандартним гавайсько-алеутським часом", "HECU": "за літнім часом на Кубі", "HNPMX": "за стандартним тихоокеанським часом у Мексиці", "SGT": "за часом у Сінгапурі", "ACST": "за стандартним центральноавстралійським часом", "ECT": "за часом в Еквадорі", "AKDT": "за літнім часом на Алясці", "LHST": "за стандартним часом на острові Лорд-Хау", "GFT": "за часом Французької Гвіани", "MESZ": "за центральноєвропейським літнім часом", "HNEG": "за стандартним східним часом у Гренландії", "HENOMX": "за літнім північнозахідним часом у Мексиці", "AEDT": "за літнім східноавстралійським часом", "CLST": "за літнім чилійським часом", "COST": "за літнім колумбійським часом", "HNCU": "за стандартним часом на Кубі", "HNT": "за стандартним часом на острові Ньюфаундленд", "HKST": "за літнім часом у Гонконзі", "AEST": "за стандартним східноавстралійським часом", "EDT": "за північноамериканським східним літнім часом", "MEZ": "за центральноєвропейським стандартним часом", "BOT": "за болівійським часом", "TMST": "за літнім часом у Туркменістані"},
+ timezones: map[string]string{"PST": "за північноамериканським тихоокеанським стандартним часом", "PDT": "за північноамериканським тихоокеанським літнім часом", "ACWST": "за стандартним центральнозахідним австралійським часом", "UYT": "за стандартним часом в Уругваї", "HNPMX": "за стандартним тихоокеанським часом у Мексиці", "VET": "за часом у Венесуелі", "HEOG": "за літнім західним часом у Гренландії", "MST": "MST", "AKST": "за стандартним часом на Алясці", "AKDT": "за літнім часом на Алясці", "SAST": "за південноафриканським часом", "BOT": "за болівійським часом", "ARST": "за літнім аргентинським часом", "HEPM": "за літнім часом на островах Сен-П’єр і Мікелон", "CST": "за північноамериканським центральним стандартним часом", "HNEG": "за стандартним східним часом у Гренландії", "ACWDT": "за літнім центральнозахідним австралійським часом", "MESZ": "за центральноєвропейським літнім часом", "WART": "за стандартним західноаргентинським часом", "TMST": "за літнім часом у Туркменістані", "MDT": "MDT", "COST": "за літнім колумбійським часом", "HAST": "за стандартним гавайсько-алеутським часом", "WARST": "за літнім за західноаргентинським часом", "HENOMX": "за літнім північнозахідним часом у Мексиці", "AEST": "за стандартним східноавстралійським часом", "LHDT": "за літнім часом на острові Лорд-Хау", "HNOG": "за стандартним західним часом у Гренландії", "WIT": "за східноіндонезійським часом", "CHAST": "за стандартним часом на архіпелазі Чатем", "CAT": "за центральноафриканським часом", "NZDT": "за літнім часом у Новій Зеландії", "COT": "за стандартним колумбійським часом", "LHST": "за стандартним часом на острові Лорд-Хау", "CDT": "за північноамериканським центральним літнім часом", "AWDT": "за літнім західноавстралійським часом", "JDT": "за японським літнім часом", "OESZ": "за східноєвропейським літнім часом", "CLT": "за стандартним чилійським часом", "CLST": "за літнім чилійським часом", "HEPMX": "за літнім тихоокеанським часом у Мексиці", "ECT": "за часом в Еквадорі", "∅∅∅": "за літнім часом на Амазонці", "HKST": "за літнім часом у Гонконзі", "AWST": "за стандартним західноавстралійським часом", "WESZ": "за західноєвропейським літнім часом", "ART": "за стандартним аргентинським часом", "SRT": "за часом у Суринамі", "GYT": "за часом у Гаяні", "WIB": "за західноіндонезійським часом", "NZST": "за стандартним часом у Новій Зеландії", "HNT": "за стандартним часом на острові Ньюфаундленд", "HAT": "за літнім часом у Ньюфаундленд", "HEEG": "за літнім східним часом у Гренландії", "AEDT": "за літнім східноавстралійським часом", "EAT": "за східноафриканським часом", "JST": "за японським стандартним часом", "GMT": "за Гринвічем", "EST": "за північноамериканським східним стандартним часом", "ACDT": "за літнім центральноавстралійським часом", "ChST": "за часом на Північних Маріанських островах", "CHADT": "за літнім часом на архіпелазі Чатем", "TMT": "за стандартним часом у Туркменістані", "WAT": "за західноафриканським стандартним часом", "WAST": "за західноафриканським літнім часом", "GFT": "за часом Французької Гвіани", "HECU": "за літнім часом на Кубі", "WEZ": "за західноєвропейським стандартним часом", "HKT": "за стандартним часом у Гонконзі", "HNNOMX": "за стандартним північнозахідним часом у Мексиці", "UYST": "за літнім часом в Уругваї", "HNPM": "за стандартним часом на островах Сен-П’єр і Мікелон", "HNCU": "за стандартним часом на Кубі", "HADT": "за літнім гавайсько-алеутським часом", "IST": "за індійським стандартним часом", "AST": "за атлантичним стандартним часом", "ADT": "за атлантичним літнім часом", "EDT": "за північноамериканським східним літнім часом", "WITA": "за центральноіндонезійським часом", "SGT": "за часом у Сінгапурі", "MEZ": "за центральноєвропейським стандартним часом", "OEZ": "за східноєвропейським стандартним часом", "MYT": "за часом у Малайзії", "ACST": "за стандартним центральноавстралійським часом", "BT": "за часом у Бутані"},
}
}
diff --git a/ur/ur.go b/ur/ur.go
index a4ccf46c..ab849e38 100644
--- a/ur/ur.go
+++ b/ur/ur.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"قبل مسیح", "عیسوی"},
erasNarrow: []string{"", ""},
erasWide: []string{"قبل مسیح", "عیسوی"},
- timezones: map[string]string{"EST": "ایسٹرن اسٹینڈرڈ ٹائم", "UYT": "یوروگوئے کا معیاری وقت", "AST": "اٹلانٹک اسٹینڈرڈ ٹائم", "BT": "بھوٹان کا وقت", "SAST": "جنوبی افریقہ سٹینڈرڈ ٹائم", "JDT": "جاپان ڈے لائٹ ٹائم", "BOT": "بولیویا کا وقت", "HECU": "کیوبا ڈے لائٹ ٹائم", "MDT": "MDT", "ACWST": "آسٹریلین سنٹرل ویسٹرن اسٹینڈرڈ ٹائم", "CHAST": "چیتھم اسٹینڈرڈ ٹائم", "EAT": "مشرقی افریقہ ٹائم", "WAST": "مغربی افریقہ سمر ٹائم", "CDT": "سنٹرل ڈے لائٹ ٹائم", "WIB": "مغربی انڈونیشیا ٹائم", "HADT": "ہوائی الیوٹیئن ڈے لائٹ ٹائم", "HEOG": "مغربی گرین لینڈ کا موسم گرما کا وقت", "HNT": "نیو فاؤنڈ لینڈ اسٹینڈرڈ ٹائم", "AWDT": "آسٹریلین ویسٹرن ڈے لائٹ ٹائم", "MEZ": "وسطی یورپ کا معیاری وقت", "CHADT": "چیتھم ڈے لائٹ ٹائم", "JST": "جاپان سٹینڈرڈ ٹائم", "WESZ": "مغربی یورپ کا موسم گرما کا وقت", "AEST": "آسٹریلین ایسٹرن اسٹینڈرڈ ٹائم", "AEDT": "آسٹریلین ایسٹرن ڈے لائٹ ٹائم", "AWST": "آسٹریلیا ویسٹرن اسٹینڈرڈ ٹائم", "ACDT": "آسٹریلین سنٹرل ڈے لائٹ ٹائم", "WAT": "مغربی افریقہ سٹینڈرڈ ٹائم", "HENOMX": "شمال مغربی میکسیکو ڈے لائٹ ٹائم", "SRT": "سورینام کا وقت", "GFT": "فرینچ گیانا کا وقت", "GMT": "گرین وچ کا اصل وقت", "SGT": "سنگاپور سٹینڈرڈ ٹائم", "UYST": "یوروگوئے کا موسم گرما کا وقت", "PDT": "پیسفک ڈے لائٹ ٹائم", "WEZ": "مغربی یورپ کا معیاری وقت", "HAT": "نیو فاؤنڈ لینڈ ڈے لائٹ ٹائم", "NZDT": "نیوزی لینڈ ڈے لائٹ ٹائم", "TMT": "ترکمانستان کا معیاری وقت", "CAT": "وسطی افریقہ ٹائم", "ECT": "ایکواڈور کا وقت", "WART": "مغربی ارجنٹینا کا معیاری وقت", "∅∅∅": "ازوریس کا موسم گرما کا وقت", "MST": "MST", "HNPMX": "میکسیکن پیسفک اسٹینڈرڈ ٹائم", "HKST": "ہانگ کانگ سمر ٹائم", "HNPM": "سینٹ پیئر اور مکلیئون اسٹینڈرڈ ٹائم", "LHDT": "لارڈ ہووے ڈے لائٹ ٹائم", "HEEG": "مشرقی گرین لینڈ کا موسم گرما کا وقت", "WIT": "مشرقی انڈونیشیا ٹائم", "HKT": "ہانگ کانگ سٹینڈرڈ ٹائم", "HNEG": "مشرقی گرین لینڈ اسٹینڈرڈ ٹائم", "GYT": "گیانا کا وقت", "VET": "وینزوئیلا کا وقت", "WITA": "وسطی انڈونیشیا ٹائم", "NZST": "نیوزی لینڈ کا معیاری وقت", "WARST": "مغربی ارجنٹینا کا موسم گرما کا وقت", "MYT": "ملیشیا ٹائم", "HEPM": "سینٹ پیئر اور مکلیئون ڈے لائٹ ٹائم", "MESZ": "وسطی یورپ کا موسم گرما کا وقت", "TMST": "ترکمانستان کا موسم گرما کا وقت", "COT": "کولمبیا کا معیاری وقت", "COST": "کولمبیا کا موسم گرما کا وقت", "HEPMX": "میکسیکن پیسفک ڈے لائٹ ٹائم", "AKDT": "الاسکا ڈے لائٹ ٹائم", "CST": "سنٹرل اسٹینڈرڈ ٹائم", "ChST": "چامورو سٹینڈرڈ ٹائم", "ACWDT": "آسٹریلین سنٹرل ویسٹرن ڈے لائٹ ٹائم", "HNOG": "مغربی گرین لینڈ اسٹینڈرڈ ٹائم", "PST": "پیسفک اسٹینڈرڈ ٹائم", "ARST": "ارجنٹینا سمر ٹائم", "OESZ": "مشرقی یورپ کا موسم گرما کا وقت", "HNNOMX": "شمال مغربی میکسیکو اسٹینڈرڈ ٹائم", "AKST": "الاسکا اسٹینڈرڈ ٹائم", "ADT": "اٹلانٹک ڈے لائٹ ٹائم", "HAST": "ہوائی الیوٹیئن اسٹینڈرڈ ٹائم", "IST": "ہندوستان کا معیاری وقت", "CLT": "چلی کا معیاری وقت", "CLST": "چلی کا موسم گرما کا وقت", "ACST": "آسٹریلین سنٹرل اسٹینڈرڈ ٹائم", "OEZ": "مشرقی یورپ کا معیاری وقت", "HNCU": "کیوبا اسٹینڈرڈ ٹائم", "EDT": "ایسٹرن ڈے لائٹ ٹائم", "ART": "ارجنٹینا سٹینڈرڈ ٹائم", "LHST": "لارڈ ہووے اسٹینڈرڈ ٹائم"},
+ timezones: map[string]string{"WEZ": "مغربی یورپ کا معیاری وقت", "WESZ": "مغربی یورپ کا موسم گرما کا وقت", "ARST": "ارجنٹینا سمر ٹائم", "EST": "ایسٹرن اسٹینڈرڈ ٹائم", "HNCU": "کیوبا اسٹینڈرڈ ٹائم", "ACWST": "آسٹریلین سنٹرل ویسٹرن اسٹینڈرڈ ٹائم", "ADT": "اٹلانٹک ڈے لائٹ ٹائم", "CLST": "چلی کا موسم گرما کا وقت", "HNOG": "مغربی گرین لینڈ اسٹینڈرڈ ٹائم", "WITA": "وسطی انڈونیشیا ٹائم", "UYT": "یوروگوئے کا معیاری وقت", "NZST": "نیوزی لینڈ کا معیاری وقت", "JDT": "جاپان ڈے لائٹ ٹائم", "WARST": "مغربی ارجنٹینا کا موسم گرما کا وقت", "HEPM": "سینٹ پیئر اور مکلیئون ڈے لائٹ ٹائم", "AWST": "آسٹریلیا ویسٹرن اسٹینڈرڈ ٹائم", "CAT": "وسطی افریقہ ٹائم", "MESZ": "وسطی یورپ کا موسم گرما کا وقت", "OESZ": "مشرقی یورپ کا موسم گرما کا وقت", "TMT": "ترکمانستان کا معیاری وقت", "AEST": "آسٹریلین ایسٹرن اسٹینڈرڈ ٹائم", "SAST": "جنوبی افریقہ سٹینڈرڈ ٹائم", "CST": "سنٹرل اسٹینڈرڈ ٹائم", "PST": "پیسفک اسٹینڈرڈ ٹائم", "TMST": "ترکمانستان کا موسم گرما کا وقت", "HEEG": "مشرقی گرین لینڈ کا موسم گرما کا وقت", "AKST": "الاسکا اسٹینڈرڈ ٹائم", "WIB": "مغربی انڈونیشیا ٹائم", "HECU": "کیوبا ڈے لائٹ ٹائم", "CHAST": "چیتھم اسٹینڈرڈ ٹائم", "HAST": "ہوائی الیوٹیئن اسٹینڈرڈ ٹائم", "MEZ": "وسطی یورپ کا معیاری وقت", "VET": "وینزوئیلا کا وقت", "BT": "بھوٹان کا وقت", "HNEG": "مشرقی گرین لینڈ اسٹینڈرڈ ٹائم", "MST": "ماؤنٹین اسٹینڈرڈ ٹائم", "IST": "ہندوستان کا معیاری وقت", "WART": "مغربی ارجنٹینا کا معیاری وقت", "ART": "ارجنٹینا سٹینڈرڈ ٹائم", "GFT": "فرینچ گیانا کا وقت", "UYST": "یوروگوئے کا موسم گرما کا وقت", "BOT": "بولیویا کا وقت", "NZDT": "نیوزی لینڈ ڈے لائٹ ٹائم", "JST": "جاپان سٹینڈرڈ ٹائم", "HKT": "ہانگ کانگ سٹینڈرڈ ٹائم", "HAT": "نیو فاؤنڈ لینڈ ڈے لائٹ ٹائم", "ECT": "ایکواڈور کا وقت", "ACWDT": "آسٹریلین سنٹرل ویسٹرن ڈے لائٹ ٹائم", "COT": "کولمبیا کا معیاری وقت", "HNNOMX": "شمال مغربی میکسیکو اسٹینڈرڈ ٹائم", "AEDT": "آسٹریلین ایسٹرن ڈے لائٹ ٹائم", "AST": "اٹلانٹک اسٹینڈرڈ ٹائم", "WAT": "مغربی افریقہ سٹینڈرڈ ٹائم", "GYT": "گیانا کا وقت", "CHADT": "چیتھم ڈے لائٹ ٹائم", "HADT": "ہوائی الیوٹیئن ڈے لائٹ ٹائم", "HKST": "ہانگ کانگ سمر ٹائم", "ACST": "آسٹریلین سنٹرل اسٹینڈرڈ ٹائم", "HNT": "نیو فاؤنڈ لینڈ اسٹینڈرڈ ٹائم", "HNPM": "سینٹ پیئر اور مکلیئون اسٹینڈرڈ ٹائم", "HNPMX": "میکسیکن پیسفک اسٹینڈرڈ ٹائم", "ACDT": "آسٹریلین سنٹرل ڈے لائٹ ٹائم", "PDT": "پیسفک ڈے لائٹ ٹائم", "HEOG": "مغربی گرین لینڈ کا موسم گرما کا وقت", "AKDT": "الاسکا ڈے لائٹ ٹائم", "LHDT": "لارڈ ہووے ڈے لائٹ ٹائم", "CDT": "سنٹرل ڈے لائٹ ٹائم", "EDT": "ایسٹرن ڈے لائٹ ٹائم", "ChST": "چامورو سٹینڈرڈ ٹائم", "EAT": "مشرقی افریقہ ٹائم", "SGT": "سنگاپور سٹینڈرڈ ٹائم", "LHST": "لارڈ ہووے اسٹینڈرڈ ٹائم", "HEPMX": "میکسیکن پیسفک ڈے لائٹ ٹائم", "HENOMX": "شمال مغربی میکسیکو ڈے لائٹ ٹائم", "MDT": "ماؤنٹین ڈے لائٹ ٹائم", "MYT": "ملیشیا ٹائم", "COST": "کولمبیا کا موسم گرما کا وقت", "WAST": "مغربی افریقہ سمر ٹائم", "AWDT": "آسٹریلین ویسٹرن ڈے لائٹ ٹائم", "OEZ": "مشرقی یورپ کا معیاری وقت", "GMT": "گرین وچ کا اصل وقت", "CLT": "چلی کا معیاری وقت", "∅∅∅": "∅∅∅", "SRT": "سورینام کا وقت", "WIT": "مشرقی انڈونیشیا ٹائم"},
}
}
diff --git a/ur_IN/ur_IN.go b/ur_IN/ur_IN.go
index a55aa5ce..b27733af 100644
--- a/ur_IN/ur_IN.go
+++ b/ur_IN/ur_IN.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"قبل مسیح", "عیسوی"},
erasNarrow: []string{"", ""},
erasWide: []string{"قبل مسیح", "عیسوی"},
- timezones: map[string]string{"UYST": "یوروگوئے سمر ٹائم", "AKST": "الاسکا اسٹینڈرڈ ٹائم", "ChST": "چامورو سٹینڈرڈ ٹائم", "WAST": "مغربی افریقہ سمر ٹائم", "GMT": "گرین وچ مین ٹائم", "SGT": "سنگاپور سٹینڈرڈ ٹائم", "AST": "اٹلانٹک اسٹینڈرڈ ٹائم", "AWDT": "آسٹریلین ویسٹرن ڈے لائٹ ٹائم", "ACWST": "آسٹریلین سنٹرل ویسٹرن اسٹینڈرڈ ٹائم", "ART": "ارجنٹینا سٹینڈرڈ ٹائم", "ARST": "ارجنٹینا سمر ٹائم", "ACDT": "آسٹریلین سنٹرل ڈے لائٹ ٹائم", "HEPMX": "میکسیکن پیسفک ڈے لائٹ ٹائم", "CDT": "سنٹرل ڈے لائٹ ٹائم", "HADT": "ہوائی الیوٹیئن ڈے لائٹ ٹائم", "HEOG": "مغربی گرین لینڈ کا موسم گرما کا وقت", "NZDT": "نیوزی لینڈ ڈے لائٹ ٹائم", "JDT": "جاپان ڈے لائٹ ٹائم", "ADT": "اٹلانٹک ڈے لائٹ ٹائم", "HNOG": "مغربی گرین لینڈ اسٹینڈرڈ ٹائم", "ACWDT": "آسٹریلین سنٹرل ویسٹرن ڈے لائٹ ٹائم", "HKST": "ہانگ کانگ سمر ٹائم", "MEZ": "وسطی یورپ کا معیاری وقت", "HEPM": "سینٹ پیئر اور مکلیئون ڈے لائٹ ٹائم", "CHAST": "چیتھم اسٹینڈرڈ ٹائم", "CLST": "چلی سمر ٹائم", "EAT": "مشرقی افریقہ ٹائم", "COST": "کولمبیا سمر ٹائم", "UYT": "یوروگوئے سٹینڈرڈ ٹائم", "PST": "پیسفک اسٹینڈرڈ ٹائم", "WEZ": "مغربی یورپ کا معیاری وقت", "HNT": "نیو فاؤنڈ لینڈ اسٹینڈرڈ ٹائم", "ACST": "آسٹریلین سنٹرل اسٹینڈرڈ ٹائم", "WART": "مغربی ارجنٹینا سٹینڈرڈ ٹائم", "HNNOMX": "شمال مغربی میکسیکو اسٹینڈرڈ ٹائم", "HENOMX": "شمال مغربی میکسیکو ڈے لائٹ ٹائم", "HECU": "کیوبا ڈے لائٹ ٹائم", "CLT": "چلی سٹینڈرڈ ٹائم", "GFT": "فرینچ گیانا ٹائم", "WARST": "مغربی ارجنٹینا سمر ٹائم", "HNPMX": "میکسیکن پیسفک اسٹینڈرڈ ٹائم", "AKDT": "الاسکا ڈے لائٹ ٹائم", "SRT": "سورینام ٹائم", "SAST": "جنوبی افریقہ سٹینڈرڈ ٹائم", "LHST": "لارڈ ہووے اسٹینڈرڈ ٹائم", "HNEG": "مشرقی گرین لینڈ اسٹینڈرڈ ٹائم", "∅∅∅": "پیرو سمر ٹائم", "CAT": "وسطی افریقہ ٹائم", "CST": "سنٹرل اسٹینڈرڈ ٹائم", "HNPM": "سینٹ پیئر اور مکلیئون اسٹینڈرڈ ٹائم", "MESZ": "وسطی یورپ کا موسم گرما کا وقت", "ECT": "ایکواڈور ٹائم", "COT": "کولمبیا سٹینڈرڈ ٹائم", "HAT": "نیو فاؤنڈ لینڈ ڈے لائٹ ٹائم", "TMST": "ترکمانستان سمر ٹائم", "CHADT": "چیتھم ڈے لائٹ ٹائم", "WAT": "مغربی افریقہ سٹینڈرڈ ٹائم", "OEZ": "مشرقی یورپ کا معیاری وقت", "HNCU": "کیوبا اسٹینڈرڈ ٹائم", "HAST": "ہوائی الیوٹیئن اسٹینڈرڈ ٹائم", "VET": "وینزوئیلا ٹائم", "LHDT": "لارڈ ہووے ڈے لائٹ ٹائم", "EST": "ایسٹرن اسٹینڈرڈ ٹائم", "MYT": "ملیشیا ٹائم", "BT": "بھوٹان ٹائم", "PDT": "پیسفک ڈے لائٹ ٹائم", "AEST": "آسٹریلین ایسٹرن اسٹینڈرڈ ٹائم", "HEEG": "مشرقی گرین لینڈ کا موسم گرما کا وقت", "MST": "MST", "GYT": "گیانا ٹائم", "AEDT": "آسٹریلین ایسٹرن ڈے لائٹ ٹائم", "AWST": "آسٹریلیا ویسٹرن اسٹینڈرڈ ٹائم", "WITA": "وسطی انڈونیشیا ٹائم", "MDT": "MDT", "WIT": "مشرقی انڈونیشیا ٹائم", "HKT": "ہانگ کانگ سٹینڈرڈ ٹائم", "BOT": "بولیویا ٹائم", "OESZ": "مشرقی یورپ کا موسم گرما کا وقت", "WESZ": "مغربی یورپ کا موسم گرما کا وقت", "IST": "انڈیا سٹینڈرڈ ٹائم", "JST": "جاپان سٹینڈرڈ ٹائم", "TMT": "ترکمانستان سٹینڈرڈ ٹائم", "EDT": "ایسٹرن ڈے لائٹ ٹائم", "WIB": "مغربی انڈونیشیا ٹائم", "NZST": "نیوزی لینڈ سٹینڈرڈ ٹائم"},
+ timezones: map[string]string{"SRT": "سورینام ٹائم", "NZDT": "نیوزی لینڈ ڈے لائٹ ٹائم", "JST": "جاپان سٹینڈرڈ ٹائم", "WAST": "مغربی افریقہ سمر ٹائم", "HEEG": "مشرقی گرین لینڈ کا موسم گرما کا وقت", "COST": "کولمبیا سمر ٹائم", "HEPMX": "میکسیکن پیسفک ڈے لائٹ ٹائم", "HECU": "کیوبا ڈے لائٹ ٹائم", "CST": "سنٹرل اسٹینڈرڈ ٹائم", "WESZ": "مغربی یورپ کا موسم گرما کا وقت", "TMT": "ترکمانستان سٹینڈرڈ ٹائم", "WAT": "مغربی افریقہ سٹینڈرڈ ٹائم", "AWST": "آسٹریلیا ویسٹرن اسٹینڈرڈ ٹائم", "ACWDT": "آسٹریلین سنٹرل ویسٹرن ڈے لائٹ ٹائم", "LHDT": "لارڈ ہووے ڈے لائٹ ٹائم", "WITA": "وسطی انڈونیشیا ٹائم", "AKST": "الاسکا اسٹینڈرڈ ٹائم", "AEST": "آسٹریلین ایسٹرن اسٹینڈرڈ ٹائم", "UYST": "یوروگوئے سمر ٹائم", "AWDT": "آسٹریلین ویسٹرن ڈے لائٹ ٹائم", "HADT": "ہوائی الیوٹیئن ڈے لائٹ ٹائم", "WART": "مغربی ارجنٹینا سٹینڈرڈ ٹائم", "ACST": "آسٹریلین سنٹرل اسٹینڈرڈ ٹائم", "MYT": "ملیشیا ٹائم", "WARST": "مغربی ارجنٹینا سمر ٹائم", "ART": "ارجنٹینا سٹینڈرڈ ٹائم", "HNEG": "مشرقی گرین لینڈ اسٹینڈرڈ ٹائم", "SGT": "سنگاپور سٹینڈرڈ ٹائم", "NZST": "نیوزی لینڈ سٹینڈرڈ ٹائم", "VET": "وینزوئیلا ٹائم", "OEZ": "مشرقی یورپ کا معیاری وقت", "BT": "بھوٹان ٹائم", "UYT": "یوروگوئے سٹینڈرڈ ٹائم", "WIB": "مغربی انڈونیشیا ٹائم", "BOT": "بولیویا ٹائم", "PST": "پیسفک اسٹینڈرڈ ٹائم", "CLT": "چلی سٹینڈرڈ ٹائم", "HENOMX": "شمال مغربی میکسیکو ڈے لائٹ ٹائم", "AKDT": "الاسکا ڈے لائٹ ٹائم", "SAST": "جنوبی افریقہ سٹینڈرڈ ٹائم", "WIT": "مشرقی انڈونیشیا ٹائم", "CHAST": "چیتھم اسٹینڈرڈ ٹائم", "CHADT": "چیتھم ڈے لائٹ ٹائم", "HNOG": "مغربی گرین لینڈ اسٹینڈرڈ ٹائم", "HKT": "ہانگ کانگ سٹینڈرڈ ٹائم", "ChST": "چامورو سٹینڈرڈ ٹائم", "HEPM": "سینٹ پیئر اور مکلیئون ڈے لائٹ ٹائم", "HNCU": "کیوبا اسٹینڈرڈ ٹائم", "CAT": "وسطی افریقہ ٹائم", "IST": "انڈیا سٹینڈرڈ ٹائم", "CLST": "چلی سمر ٹائم", "TMST": "ترکمانستان سمر ٹائم", "HEOG": "مغربی گرین لینڈ کا موسم گرما کا وقت", "HNT": "نیو فاؤنڈ لینڈ اسٹینڈرڈ ٹائم", "GFT": "فرینچ گیانا ٹائم", "MEZ": "وسطی یورپ کا معیاری وقت", "AEDT": "آسٹریلین ایسٹرن ڈے لائٹ ٹائم", "HNPM": "سینٹ پیئر اور مکلیئون اسٹینڈرڈ ٹائم", "ACDT": "آسٹریلین سنٹرل ڈے لائٹ ٹائم", "COT": "کولمبیا سٹینڈرڈ ٹائم", "LHST": "لارڈ ہووے اسٹینڈرڈ ٹائم", "MESZ": "وسطی یورپ کا موسم گرما کا وقت", "AST": "اٹلانٹک اسٹینڈرڈ ٹائم", "GMT": "گرین وچ مین ٹائم", "ARST": "ارجنٹینا سمر ٹائم", "JDT": "جاپان ڈے لائٹ ٹائم", "MDT": "MDT", "HAT": "نیو فاؤنڈ لینڈ ڈے لائٹ ٹائم", "GYT": "گیانا ٹائم", "EDT": "ایسٹرن ڈے لائٹ ٹائم", "CDT": "سنٹرل ڈے لائٹ ٹائم", "∅∅∅": "برازیلیا سمر ٹائم", "OESZ": "مشرقی یورپ کا موسم گرما کا وقت", "WEZ": "مغربی یورپ کا معیاری وقت", "HAST": "ہوائی الیوٹیئن اسٹینڈرڈ ٹائم", "ADT": "اٹلانٹک ڈے لائٹ ٹائم", "MST": "MST", "HNNOMX": "شمال مغربی میکسیکو اسٹینڈرڈ ٹائم", "HNPMX": "میکسیکن پیسفک اسٹینڈرڈ ٹائم", "EAT": "مشرقی افریقہ ٹائم", "HKST": "ہانگ کانگ سمر ٹائم", "PDT": "پیسفک ڈے لائٹ ٹائم", "ECT": "ایکواڈور ٹائم", "ACWST": "آسٹریلین سنٹرل ویسٹرن اسٹینڈرڈ ٹائم", "EST": "ایسٹرن اسٹینڈرڈ ٹائم"},
}
}
diff --git a/ur_PK/ur_PK.go b/ur_PK/ur_PK.go
index 4d1c371b..2ed65381 100644
--- a/ur_PK/ur_PK.go
+++ b/ur_PK/ur_PK.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"قبل مسیح", "عیسوی"},
erasNarrow: []string{"", ""},
erasWide: []string{"قبل مسیح", "عیسوی"},
- timezones: map[string]string{"EAT": "مشرقی افریقہ ٹائم", "WART": "مغربی ارجنٹینا کا معیاری وقت", "HNCU": "کیوبا اسٹینڈرڈ ٹائم", "ARST": "ارجنٹینا سمر ٹائم", "AWDT": "آسٹریلین ویسٹرن ڈے لائٹ ٹائم", "JST": "جاپان سٹینڈرڈ ٹائم", "HEEG": "مشرقی گرین لینڈ کا موسم گرما کا وقت", "ACWST": "آسٹریلین سنٹرل ویسٹرن اسٹینڈرڈ ٹائم", "HAST": "ہوائی الیوٹیئن اسٹینڈرڈ ٹائم", "AEST": "آسٹریلین ایسٹرن اسٹینڈرڈ ٹائم", "TMST": "ترکمانستان کا موسم گرما کا وقت", "SGT": "سنگاپور سٹینڈرڈ ٹائم", "EDT": "ایسٹرن ڈے لائٹ ٹائم", "CDT": "سنٹرل ڈے لائٹ ٹائم", "HEPM": "سینٹ پیئر اور مکلیئون ڈے لائٹ ٹائم", "IST": "ہندوستان کا معیاری وقت", "ChST": "چامورو سٹینڈرڈ ٹائم", "HECU": "کیوبا ڈے لائٹ ٹائم", "∅∅∅": "امیزون کا موسم گرما کا وقت", "JDT": "جاپان ڈے لائٹ ٹائم", "HNEG": "مشرقی گرین لینڈ اسٹینڈرڈ ٹائم", "HENOMX": "شمال مغربی میکسیکو ڈے لائٹ ٹائم", "ACWDT": "آسٹریلین سنٹرل ویسٹرن ڈے لائٹ ٹائم", "HAT": "نیو فاؤنڈ لینڈ ڈے لائٹ ٹائم", "PST": "پیسفک اسٹینڈرڈ ٹائم", "WITA": "وسطی انڈونیشیا ٹائم", "MYT": "ملیشیا ٹائم", "UYST": "یوروگوئے کا موسم گرما کا وقت", "WIB": "مغربی انڈونیشیا ٹائم", "TMT": "ترکمانستان کا معیاری وقت", "MST": "MST", "HADT": "ہوائی الیوٹیئن ڈے لائٹ ٹائم", "AWST": "آسٹریلیا ویسٹرن اسٹینڈرڈ ٹائم", "ACST": "آسٹریلین سنٹرل اسٹینڈرڈ ٹائم", "OEZ": "مشرقی یورپ کا معیاری وقت", "AST": "اٹلانٹک اسٹینڈرڈ ٹائم", "HNNOMX": "شمال مغربی میکسیکو اسٹینڈرڈ ٹائم", "AKDT": "الاسکا ڈے لائٹ ٹائم", "VET": "وینزوئیلا کا وقت", "HEOG": "مغربی گرین لینڈ کا موسم گرما کا وقت", "HKT": "ہانگ کانگ سٹینڈرڈ ٹائم", "AEDT": "آسٹریلین ایسٹرن ڈے لائٹ ٹائم", "CHAST": "چیتھم اسٹینڈرڈ ٹائم", "HNPM": "سینٹ پیئر اور مکلیئون اسٹینڈرڈ ٹائم", "CHADT": "چیتھم ڈے لائٹ ٹائم", "MEZ": "وسطی یورپ کا معیاری وقت", "SAST": "جنوبی افریقہ سٹینڈرڈ ٹائم", "UYT": "یوروگوئے کا معیاری وقت", "GFT": "فرینچ گیانا کا وقت", "ACDT": "آسٹریلین سنٹرل ڈے لائٹ ٹائم", "HNPMX": "میکسیکن پیسفک اسٹینڈرڈ ٹائم", "EST": "ایسٹرن اسٹینڈرڈ ٹائم", "CLST": "چلی کا موسم گرما کا وقت", "COT": "کولمبیا کا معیاری وقت", "CST": "سنٹرل اسٹینڈرڈ ٹائم", "PDT": "پیسفک ڈے لائٹ ٹائم", "NZDT": "نیوزی لینڈ ڈے لائٹ ٹائم", "MESZ": "وسطی یورپ کا موسم گرما کا وقت", "LHDT": "لارڈ ہووے ڈے لائٹ ٹائم", "WIT": "مشرقی انڈونیشیا ٹائم", "HKST": "ہانگ کانگ سمر ٹائم", "BOT": "بولیویا کا وقت", "WAT": "مغربی افریقہ سٹینڈرڈ ٹائم", "WAST": "مغربی افریقہ سمر ٹائم", "CLT": "چلی کا معیاری وقت", "ECT": "ایکواڈور کا وقت", "HEPMX": "میکسیکن پیسفک ڈے لائٹ ٹائم", "SRT": "سورینام کا وقت", "ART": "ارجنٹینا سٹینڈرڈ ٹائم", "WESZ": "مغربی یورپ کا موسم گرما کا وقت", "NZST": "نیوزی لینڈ کا معیاری وقت", "LHST": "لارڈ ہووے اسٹینڈرڈ ٹائم", "WARST": "مغربی ارجنٹینا کا موسم گرما کا وقت", "ADT": "اٹلانٹک ڈے لائٹ ٹائم", "GYT": "گیانا کا وقت", "BT": "بھوٹان کا وقت", "HNT": "نیو فاؤنڈ لینڈ اسٹینڈرڈ ٹائم", "HNOG": "مغربی گرین لینڈ اسٹینڈرڈ ٹائم", "WEZ": "مغربی یورپ کا معیاری وقت", "MDT": "MDT", "AKST": "الاسکا اسٹینڈرڈ ٹائم", "OESZ": "مشرقی یورپ کا موسم گرما کا وقت", "CAT": "وسطی افریقہ ٹائم", "COST": "کولمبیا کا موسم گرما کا وقت", "GMT": "گرین وچ کا اصل وقت"},
+ timezones: map[string]string{"HNEG": "مشرقی گرین لینڈ اسٹینڈرڈ ٹائم", "HNPMX": "میکسیکن پیسفک اسٹینڈرڈ ٹائم", "SRT": "سورینام کا وقت", "HENOMX": "شمال مغربی میکسیکو ڈے لائٹ ٹائم", "BT": "بھوٹان کا وقت", "TMT": "ترکمانستان کا معیاری وقت", "ARST": "ارجنٹینا سمر ٹائم", "EST": "ایسٹرن اسٹینڈرڈ ٹائم", "ACDT": "آسٹریلین سنٹرل ڈے لائٹ ٹائم", "LHST": "لارڈ ہووے اسٹینڈرڈ ٹائم", "∅∅∅": "برازیلیا سمر ٹائم", "WART": "مغربی ارجنٹینا کا معیاری وقت", "MEZ": "وسطی یورپ کا معیاری وقت", "HNOG": "مغربی گرین لینڈ اسٹینڈرڈ ٹائم", "HEOG": "مغربی گرین لینڈ کا موسم گرما کا وقت", "MDT": "MDT", "COT": "کولمبیا کا معیاری وقت", "ChST": "چامورو سٹینڈرڈ ٹائم", "AWDT": "آسٹریلین ویسٹرن ڈے لائٹ ٹائم", "PDT": "پیسفک ڈے لائٹ ٹائم", "HECU": "کیوبا ڈے لائٹ ٹائم", "NZDT": "نیوزی لینڈ ڈے لائٹ ٹائم", "HKST": "ہانگ کانگ سمر ٹائم", "AEDT": "آسٹریلین ایسٹرن ڈے لائٹ ٹائم", "UYT": "یوروگوئے کا معیاری وقت", "PST": "پیسفک اسٹینڈرڈ ٹائم", "CAT": "وسطی افریقہ ٹائم", "JST": "جاپان سٹینڈرڈ ٹائم", "MYT": "ملیشیا ٹائم", "ART": "ارجنٹینا سٹینڈرڈ ٹائم", "HAT": "نیو فاؤنڈ لینڈ ڈے لائٹ ٹائم", "ACWDT": "آسٹریلین سنٹرل ویسٹرن ڈے لائٹ ٹائم", "WARST": "مغربی ارجنٹینا کا موسم گرما کا وقت", "WAST": "مغربی افریقہ سمر ٹائم", "SAST": "جنوبی افریقہ سٹینڈرڈ ٹائم", "WIB": "مغربی انڈونیشیا ٹائم", "ECT": "ایکواڈور کا وقت", "VET": "وینزوئیلا کا وقت", "ACST": "آسٹریلین سنٹرل اسٹینڈرڈ ٹائم", "CDT": "سنٹرل ڈے لائٹ ٹائم", "CLST": "چلی کا موسم گرما کا وقت", "GYT": "گیانا کا وقت", "CHADT": "چیتھم ڈے لائٹ ٹائم", "OEZ": "مشرقی یورپ کا معیاری وقت", "AST": "اٹلانٹک اسٹینڈرڈ ٹائم", "TMST": "ترکمانستان کا موسم گرما کا وقت", "WAT": "مغربی افریقہ سٹینڈرڈ ٹائم", "COST": "کولمبیا کا موسم گرما کا وقت", "HEEG": "مشرقی گرین لینڈ کا موسم گرما کا وقت", "LHDT": "لارڈ ہووے ڈے لائٹ ٹائم", "AWST": "آسٹریلیا ویسٹرن اسٹینڈرڈ ٹائم", "IST": "ہندوستان کا معیاری وقت", "HNPM": "سینٹ پیئر اور مکلیئون اسٹینڈرڈ ٹائم", "OESZ": "مشرقی یورپ کا موسم گرما کا وقت", "EDT": "ایسٹرن ڈے لائٹ ٹائم", "GMT": "گرین وچ کا اصل وقت", "AKST": "الاسکا اسٹینڈرڈ ٹائم", "AEST": "آسٹریلین ایسٹرن اسٹینڈرڈ ٹائم", "EAT": "مشرقی افریقہ ٹائم", "ADT": "اٹلانٹک ڈے لائٹ ٹائم", "WESZ": "مغربی یورپ کا موسم گرما کا وقت", "AKDT": "الاسکا ڈے لائٹ ٹائم", "UYST": "یوروگوئے کا موسم گرما کا وقت", "HEPM": "سینٹ پیئر اور مکلیئون ڈے لائٹ ٹائم", "HEPMX": "میکسیکن پیسفک ڈے لائٹ ٹائم", "ACWST": "آسٹریلین سنٹرل ویسٹرن اسٹینڈرڈ ٹائم", "JDT": "جاپان ڈے لائٹ ٹائم", "HAST": "ہوائی الیوٹیئن اسٹینڈرڈ ٹائم", "MST": "MST", "WITA": "وسطی انڈونیشیا ٹائم", "HNCU": "کیوبا اسٹینڈرڈ ٹائم", "CST": "سنٹرل اسٹینڈرڈ ٹائم", "SGT": "سنگاپور سٹینڈرڈ ٹائم", "HADT": "ہوائی الیوٹیئن ڈے لائٹ ٹائم", "NZST": "نیوزی لینڈ کا معیاری وقت", "CLT": "چلی کا معیاری وقت", "HKT": "ہانگ کانگ سٹینڈرڈ ٹائم", "HNT": "نیو فاؤنڈ لینڈ اسٹینڈرڈ ٹائم", "WIT": "مشرقی انڈونیشیا ٹائم", "CHAST": "چیتھم اسٹینڈرڈ ٹائم", "WEZ": "مغربی یورپ کا معیاری وقت", "HNNOMX": "شمال مغربی میکسیکو اسٹینڈرڈ ٹائم", "GFT": "فرینچ گیانا کا وقت", "BOT": "بولیویا کا وقت", "MESZ": "وسطی یورپ کا موسم گرما کا وقت"},
}
}
diff --git a/uz/uz.go b/uz/uz.go
index c6790721..6575c697 100644
--- a/uz/uz.go
+++ b/uz/uz.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"m.a.", "milodiy"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"HAST": "Gavayi-aleut standart vaqti", "PST": "Tinch okeani standart vaqti", "CHAST": "Chatem standart vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "AKST": "Alyaska standart vaqti", "AEST": "Sharqiy Avstraliya standart vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "TMT": "Turkmaniston standart vaqti", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "GYT": "Gayana vaqti", "UYT": "Urugvay standart vaqti", "MST": "Tog‘ standart vaqti (AQSH)", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "BOT": "Boliviya vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "JDT": "Yaponiya yozgi vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "PDT": "Tinch okeani yozgi vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "ECT": "Ekvador vaqti", "AST": "Atlantika standart vaqti", "SRT": "Surinam vaqti", "HNT": "Nyufaundlend standart vaqti", "SAST": "Janubiy Afrika standart vaqti", "JST": "Yaponiya standart vaqti", "GFT": "Fransuz Gvianasi vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "WAT": "Gʻarbiy Afrika standart vaqti", "EST": "Sharqiy Amerika standart vaqti", "VET": "Venesuela vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "SGT": "Singapur vaqti", "AKDT": "Alyaska yozgi vaqti", "WEZ": "G‘arbiy Yevropa standart vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "ChST": "Chamorro standart vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "MYT": "Malayziya vaqti", "ART": "Argentina standart vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "CST": "Markaziy Amerika standart vaqti", "CDT": "Markaziy Amerika yozgi vaqti", "BT": "Butan vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "IST": "Hindiston vaqti", "CAT": "Markaziy Afrika vaqti", "COT": "Kolumbiya standart vaqti", "EAT": "Sharqiy Afrika vaqti", "COST": "Kolumbiya yozgi vaqti", "HECU": "Kuba yozgi vaqti", "AWST": "G‘arbiy Avstraliya standart vaqti", "UYST": "Urugvay yozgi vaqti", "CHADT": "Chatem yozgi vaqti", "LHST": "Lord-Xau standart vaqti", "NZST": "Yangi Zelandiya standart vaqti", "TMST": "Turkmaniston yozgi vaqti", "HNCU": "Kuba standart vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "ADT": "Atlantika yozgi vaqti", "WIT": "Sharqiy Indoneziya vaqti", "HKT": "Gonkong standart vaqti", "LHDT": "Lord-Xau yozgi vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "GMT": "Grinvich o‘rtacha vaqti", "WIB": "Gʻarbiy Indoneziya vaqti", "HAT": "Nyufaundlend yozgi vaqti", "WITA": "Markaziy Indoneziya vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "CLT": "Chili standart vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "MDT": "Tog‘ yozgi vaqti (AQSH)", "HADT": "Gavayi-aleut yozgi vaqti", "ARST": "Argentina yozgi vaqti", "HKST": "Gonkong yozgi vaqti", "CLST": "Chili yozgi vaqti", "∅∅∅": "Amazonka yozgi vaqti"},
+ timezones: map[string]string{"AKDT": "Alyaska yozgi vaqti", "HADT": "Gavayi-aleut yozgi vaqti", "CLT": "Chili standart vaqti", "TMT": "Turkmaniston standart vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "ART": "Argentina standart vaqti", "SAST": "Janubiy Afrika standart vaqti", "LHDT": "Lord-Xau yozgi vaqti", "WIT": "Sharqiy Indoneziya vaqti", "CHADT": "Chatem yozgi vaqti", "CHAST": "Chatem standart vaqti", "MST": "MST", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "ChST": "Chamorro standart vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "EAT": "Sharqiy Afrika vaqti", "HNCU": "Kuba standart vaqti", "BOT": "Boliviya vaqti", "IST": "Hindiston vaqti", "WAT": "Gʻarbiy Afrika standart vaqti", "HNT": "Nyufaundlend standart vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "∅∅∅": "Peru yozgi vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "MYT": "Malayziya vaqti", "HKT": "Gonkong standart vaqti", "UYST": "Urugvay yozgi vaqti", "HAST": "Gavayi-aleut standart vaqti", "JST": "Yaponiya standart vaqti", "TMST": "Turkmaniston yozgi vaqti", "AWST": "G‘arbiy Avstraliya standart vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "COST": "Kolumbiya yozgi vaqti", "UYT": "Urugvay standart vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "LHST": "Lord-Xau standart vaqti", "CST": "Markaziy Amerika standart vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "WEZ": "G‘arbiy Yevropa standart vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "JDT": "Yaponiya yozgi vaqti", "GMT": "Grinvich o‘rtacha vaqti", "MDT": "MDT", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "HAT": "Nyufaundlend yozgi vaqti", "GYT": "Gayana vaqti", "HECU": "Kuba yozgi vaqti", "ECT": "Ekvador vaqti", "PDT": "Tinch okeani yozgi vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "WITA": "Markaziy Indoneziya vaqti", "WIB": "Gʻarbiy Indoneziya vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "BT": "Butan vaqti", "AKST": "Alyaska standart vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "EST": "Sharqiy Amerika standart vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "COT": "Kolumbiya standart vaqti", "VET": "Venesuela vaqti", "HKST": "Gonkong yozgi vaqti", "SGT": "Singapur vaqti", "NZST": "Yangi Zelandiya standart vaqti", "CLST": "Chili yozgi vaqti", "ADT": "Atlantika yozgi vaqti", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "SRT": "Surinam vaqti", "CDT": "Markaziy Amerika yozgi vaqti", "CAT": "Markaziy Afrika vaqti", "AST": "Atlantika standart vaqti", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "ARST": "Argentina yozgi vaqti", "GFT": "Fransuz Gvianasi vaqti", "AEST": "Sharqiy Avstraliya standart vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "PST": "Tinch okeani standart vaqti"},
}
}
diff --git a/uz_Arab/uz_Arab.go b/uz_Arab/uz_Arab.go
index 7c1fae2b..3ee46fd8 100644
--- a/uz_Arab/uz_Arab.go
+++ b/uz_Arab/uz_Arab.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ق.م.", "م."},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"IST": "Hindiston vaqti", "SAST": "Janubiy Afrika standart vaqti", "CLT": "Chili standart vaqti", "HNCU": "Kuba standart vaqti", "LHDT": "Lord-Xau yozgi vaqti", "CHAST": "Chatem standart vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "ART": "Argentina standart vaqti", "AWST": "G‘arbiy Avstraliya standart vaqti", "MST": "MST", "HAST": "Gavayi-aleut standart vaqti", "SRT": "Surinam vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "CDT": "Markaziy Amerika yozgi vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "HECU": "Kuba yozgi vaqti", "MDT": "MDT", "ARST": "Argentina yozgi vaqti", "TMST": "Turkmaniston yozgi vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "AST": "Atlantika standart vaqti", "HKT": "Gonkong standart vaqti", "AKST": "Alyaska standart vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "AEST": "Sharqiy Avstraliya standart vaqti", "WAT": "Gʻarbiy Afrika standart vaqti", "HNT": "Nyufaundlend standart vaqti", "BOT": "Boliviya vaqti", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "TMT": "Turkmaniston standart vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "JST": "Yaponiya standart vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "VET": "Venesuela vaqti", "HKST": "Gonkong yozgi vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "CHADT": "Chatem yozgi vaqti", "GMT": "Grinvich o‘rtacha vaqti", "CST": "Markaziy Amerika standart vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "AKDT": "Alyaska yozgi vaqti", "PDT": "Tinch okeani yozgi vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "CLST": "Chili yozgi vaqti", "EAT": "Sharqiy Afrika vaqti", "MYT": "Malayziya vaqti", "PST": "Tinch okeani standart vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "WITA": "Markaziy Indoneziya vaqti", "COST": "Kolumbiya yozgi vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "UYT": "Urugvay standart vaqti", "UYST": "Urugvay yozgi vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "EST": "Sharqiy Amerika standart vaqti", "ADT": "Atlantika yozgi vaqti", "GYT": "Gayana vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "ChST": "Chamorro standart vaqti", "ECT": "Ekvador vaqti", "COT": "Kolumbiya standart vaqti", "GFT": "Fransuz Gvianasi vaqti", "BT": "Butan vaqti", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "HADT": "Gavayi-aleut yozgi vaqti", "WEZ": "G‘arbiy Yevropa standart vaqti", "LHST": "Lord-Xau standart vaqti", "NZST": "Yangi Zelandiya standart vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "SGT": "Singapur vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "JDT": "Yaponiya yozgi vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "HAT": "Nyufaundlend yozgi vaqti", "WIT": "Sharqiy Indoneziya vaqti", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "∅∅∅": "Amazonka yozgi vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "CAT": "Markaziy Afrika vaqti", "WIB": "Gʻarbiy Indoneziya vaqti"},
+ timezones: map[string]string{"JST": "Yaponiya standart vaqti", "WAT": "Gʻarbiy Afrika standart vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "HNCU": "Kuba standart vaqti", "BOT": "Boliviya vaqti", "LHST": "Lord-Xau standart vaqti", "HECU": "Kuba yozgi vaqti", "CAT": "Markaziy Afrika vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "MDT": "MDT", "COST": "Kolumbiya yozgi vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "COT": "Kolumbiya standart vaqti", "ChST": "Chamorro standart vaqti", "AKDT": "Alyaska yozgi vaqti", "AEST": "Sharqiy Avstraliya standart vaqti", "NZST": "Yangi Zelandiya standart vaqti", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "ADT": "Atlantika yozgi vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "AKST": "Alyaska standart vaqti", "SAST": "Janubiy Afrika standart vaqti", "GYT": "Gayana vaqti", "AWST": "G‘arbiy Avstraliya standart vaqti", "SGT": "Singapur vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "EAT": "Sharqiy Afrika vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "CLT": "Chili standart vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "HAST": "Gavayi-aleut standart vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "ARST": "Argentina yozgi vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "HKT": "Gonkong standart vaqti", "BT": "Butan vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "WEZ": "G‘arbiy Yevropa standart vaqti", "EST": "Sharqiy Amerika standart vaqti", "UYST": "Urugvay yozgi vaqti", "SRT": "Surinam vaqti", "CST": "Markaziy Amerika standart vaqti", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "AST": "Atlantika standart vaqti", "GMT": "Grinvich o‘rtacha vaqti", "TMST": "Turkmaniston yozgi vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "UYT": "Urugvay standart vaqti", "ECT": "Ekvador vaqti", "TMT": "Turkmaniston standart vaqti", "MST": "MST", "HADT": "Gavayi-aleut yozgi vaqti", "CLST": "Chili yozgi vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "HNT": "Nyufaundlend standart vaqti", "HAT": "Nyufaundlend yozgi vaqti", "WIB": "Gʻarbiy Indoneziya vaqti", "PDT": "Tinch okeani yozgi vaqti", "CDT": "Markaziy Amerika yozgi vaqti", "CHAST": "Chatem standart vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "VET": "Venesuela vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "HKST": "Gonkong yozgi vaqti", "GFT": "Fransuz Gvianasi vaqti", "WITA": "Markaziy Indoneziya vaqti", "LHDT": "Lord-Xau yozgi vaqti", "WIT": "Sharqiy Indoneziya vaqti", "CHADT": "Chatem yozgi vaqti", "∅∅∅": "Amazonka yozgi vaqti", "MYT": "Malayziya vaqti", "ART": "Argentina standart vaqti", "PST": "Tinch okeani standart vaqti", "IST": "Hindiston vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "JDT": "Yaponiya yozgi vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti"},
}
}
diff --git a/uz_Arab_AF/uz_Arab_AF.go b/uz_Arab_AF/uz_Arab_AF.go
index 88a96d7a..607619df 100644
--- a/uz_Arab_AF/uz_Arab_AF.go
+++ b/uz_Arab_AF/uz_Arab_AF.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"m.a.", "milodiy"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"CLT": "Chili standart vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "PST": "Tinch okeani standart vaqti", "ARST": "Argentina yozgi vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "HADT": "Gavayi-aleut yozgi vaqti", "HAT": "Nyufaundlend yozgi vaqti", "ART": "Argentina standart vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "MST": "MST", "WIB": "Gʻarbiy Indoneziya vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "COT": "Kolumbiya standart vaqti", "UYST": "Urugvay yozgi vaqti", "HNT": "Nyufaundlend standart vaqti", "NZST": "Yangi Zelandiya standart vaqti", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "COST": "Kolumbiya yozgi vaqti", "AKDT": "Alyaska yozgi vaqti", "BT": "Butan vaqti", "CLST": "Chili yozgi vaqti", "WAT": "Gʻarbiy Afrika standart vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "MYT": "Malayziya vaqti", "JDT": "Yaponiya yozgi vaqti", "TMT": "Turkmaniston standart vaqti", "BOT": "Boliviya vaqti", "GFT": "Fransuz Gvianasi vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "MDT": "MDT", "WEZ": "G‘arbiy Yevropa standart vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "LHDT": "Lord-Xau yozgi vaqti", "CHADT": "Chatem yozgi vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "GYT": "Gayana vaqti", "VET": "Venesuela vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "SAST": "Janubiy Afrika standart vaqti", "ChST": "Chamorro standart vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "HNCU": "Kuba standart vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "JST": "Yaponiya standart vaqti", "HKST": "Gonkong yozgi vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "AKST": "Alyaska standart vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "TMST": "Turkmaniston yozgi vaqti", "HECU": "Kuba yozgi vaqti", "EST": "Sharqiy Amerika standart vaqti", "UYT": "Urugvay standart vaqti", "CST": "Markaziy Amerika standart vaqti", "ADT": "Atlantika yozgi vaqti", "∅∅∅": "Amazonka yozgi vaqti", "EAT": "Sharqiy Afrika vaqti", "GMT": "Grinvich o‘rtacha vaqti", "WIT": "Sharqiy Indoneziya vaqti", "AWST": "G‘arbiy Avstraliya standart vaqti", "IST": "Hindiston vaqti", "WITA": "Markaziy Indoneziya vaqti", "ECT": "Ekvador vaqti", "SGT": "Singapur vaqti", "AST": "Atlantika standart vaqti", "PDT": "Tinch okeani yozgi vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "HKT": "Gonkong standart vaqti", "CAT": "Markaziy Afrika vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "AEST": "Sharqiy Avstraliya standart vaqti", "LHST": "Lord-Xau standart vaqti", "HAST": "Gavayi-aleut standart vaqti", "SRT": "Surinam vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "CHAST": "Chatem standart vaqti", "CDT": "Markaziy Amerika yozgi vaqti"},
+ timezones: map[string]string{"WART": "Gʻarbiy Argentina standart vaqti", "TMST": "Turkmaniston yozgi vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "ARST": "Argentina yozgi vaqti", "GFT": "Fransuz Gvianasi vaqti", "ChST": "Chamorro standart vaqti", "MDT": "MDT", "HNCU": "Kuba standart vaqti", "CHADT": "Chatem yozgi vaqti", "VET": "Venesuela vaqti", "ADT": "Atlantika yozgi vaqti", "COT": "Kolumbiya standart vaqti", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "AKST": "Alyaska standart vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "CST": "Markaziy Amerika standart vaqti", "PDT": "Tinch okeani yozgi vaqti", "CAT": "Markaziy Afrika vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "HKT": "Gonkong standart vaqti", "AKDT": "Alyaska yozgi vaqti", "LHST": "Lord-Xau standart vaqti", "CLST": "Chili yozgi vaqti", "UYST": "Urugvay yozgi vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "CHAST": "Chatem standart vaqti", "EST": "Sharqiy Amerika standart vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "BT": "Butan vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "WAT": "Gʻarbiy Afrika standart vaqti", "HNT": "Nyufaundlend standart vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "GYT": "Gayana vaqti", "HECU": "Kuba yozgi vaqti", "CDT": "Markaziy Amerika yozgi vaqti", "BOT": "Boliviya vaqti", "IST": "Hindiston vaqti", "TMT": "Turkmaniston standart vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "WITA": "Markaziy Indoneziya vaqti", "EAT": "Sharqiy Afrika vaqti", "UYT": "Urugvay standart vaqti", "AEST": "Sharqiy Avstraliya standart vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "GMT": "Grinvich o‘rtacha vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "PST": "Tinch okeani standart vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "HAT": "Nyufaundlend yozgi vaqti", "CLT": "Chili standart vaqti", "LHDT": "Lord-Xau yozgi vaqti", "∅∅∅": "Azor orollari yozgi vaqti", "WIB": "Gʻarbiy Indoneziya vaqti", "SGT": "Singapur vaqti", "HAST": "Gavayi-aleut standart vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "SAST": "Janubiy Afrika standart vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "AWST": "G‘arbiy Avstraliya standart vaqti", "AST": "Atlantika standart vaqti", "WEZ": "G‘arbiy Yevropa standart vaqti", "MYT": "Malayziya vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "COST": "Kolumbiya yozgi vaqti", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "WIT": "Sharqiy Indoneziya vaqti", "HADT": "Gavayi-aleut yozgi vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "MST": "MST", "SRT": "Surinam vaqti", "NZST": "Yangi Zelandiya standart vaqti", "JST": "Yaponiya standart vaqti", "JDT": "Yaponiya yozgi vaqti", "ART": "Argentina standart vaqti", "HKST": "Gonkong yozgi vaqti", "ECT": "Ekvador vaqti"},
}
}
diff --git a/uz_Cyrl/uz_Cyrl.go b/uz_Cyrl/uz_Cyrl.go
index fcec1bbf..e8e8f1a6 100644
--- a/uz_Cyrl/uz_Cyrl.go
+++ b/uz_Cyrl/uz_Cyrl.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"BOT": "Боливия вақти", "WARST": "Ғарбий Аргентина ёзги вақти", "HNPM": "Сент-Пьер ва Микелон стандарт вақти", "MESZ": "Марказий Европа ёзги вақти", "NZDT": "Янги Зеландия кундузги вақти", "CHAST": "Чатхам стандарт вақти", "WAT": "Ғарбий Африка стандарт вақти", "ADT": "Атлантика кундузги вақти", "AWST": "Ғарбий Австралия стандарт вақти", "HNCU": "Куба стандарт вақти", "MST": "MST", "HNPMX": "Meksika Tinch okeani standart vaqti", "WIT": "Шарқий Индонезия вақти", "BT": "Бутан вақти", "WEZ": "Ғарбий Европа стандарт вақти", "HNT": "Ньюфаундленд стандарт вақти", "HEOG": "Ғарбий Гренландия ёзги вақти", "AEST": "Шарқий Австралия стандарт вақти", "JST": "Япония стандарт вақти", "TMST": "Туркманистон ёзги вақти", "SGT": "Сингапур вақти", "HECU": "Куба кундузги вақти", "CST": "Шимолий Америка марказий стандарт вақти", "ACWDT": "Марказий Австралия Ғарбий кундузги вақти", "CLST": "Чили ёзги вақти", "WART": "Ғарбий Аргентина стандарт вақти", "GMT": "Гринвич вақти", "WIB": "Ғарбий Индонезия вақти", "TMT": "Туркманистон стандарт вақти", "GYT": "Гайана вақти", "SRT": "Суринам вақти", "PST": "Шимолий Америка тинч океани стандарт вақти", "PDT": "Шимолий Америка тинч океани кундузги вақти", "ACST": "Марказий Австралия стандарт вақти", "ECT": "Эквадор вақти", "COST": "Колумбия ёзги вақти", "HADT": "Гавайи-алеут кундузги вақти", "HAT": "Ньюфаундленд кундузги вақти", "GFT": "Француз Гвианаси вақти", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "AST": "Атлантика стандарт вақти", "UYST": "Уругвай ёзги вақти", "HKT": "Гонконг стандарт вақти", "HEPM": "Сент-Пьер ва Микелон кундузги вақти", "IST": "Ҳиндистон вақти", "CLT": "Чили стандарт вақти", "JDT": "Япония кундузги вақти", "OESZ": "Шарқий Европа ёзги вақти", "EDT": "Шимолий Америка шарқий кундузги вақти", "ACWST": "Марказий Австралия Ғарбий стандарт вақти", "ARST": "Аргентина ёзги вақти", "WITA": "Марказий Индонезия вақти", "NZST": "Янги Зеландия стандарт вақти", "ChST": "Каморро вақти", "HNEG": "Шарқий Гренландия стандарт вақти", "EST": "Шимолий Америка шарқий стандарт вақти", "AEDT": "Шарқий Австралия кундузги вақти", "MEZ": "Марказий Европа стандарт вақти", "LHST": "Лорд Хове стандарт вақти", "CHADT": "Чатхам кундузги вақти", "WAST": "Ғарбий Африка ёзги вақти", "∅∅∅": "Перу ёзги вақти", "COT": "Колумбия стандарт вақти", "HAST": "Гавайи-алеут стандарт вақти", "ART": "Аргентина стандарт вақти", "HKST": "Гонконг ёзги вақти", "HEEG": "Шарқий Гренландия ёзги вақти", "ACDT": "Марказий Австралия кундузги вақти", "EAT": "Шарқий Африка вақти", "OEZ": "Шарқий Европа стандарт вақти", "MDT": "MDT", "CDT": "Шимолий Америка марказий кундузги вақти", "VET": "Венесуэла вақти", "HNOG": "Ғарбий Гренландия стандарт вақти", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "AKST": "Аляска стандарт вақти", "CAT": "Марказий Африка вақти", "MYT": "Малайзия вақти", "UYT": "Уругвай стандарт вақти", "WESZ": "Ғарбий Европа ёзги вақти", "LHDT": "Лорд Хове кундузги вақти", "SAST": "Жанубий Африка вақти", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "AKDT": "Аляска кундузги вақти", "AWDT": "Ғарбий Австралия кундузги вақти"},
+ timezones: map[string]string{"HKT": "Гонконг стандарт вақти", "HAT": "Ньюфаундленд кундузги вақти", "HEEG": "Шарқий Гренландия ёзги вақти", "SRT": "Суринам вақти", "WIT": "Шарқий Индонезия вақти", "NZDT": "Янги Зеландия кундузги вақти", "HNOG": "Ғарбий Гренландия стандарт вақти", "EST": "Шимолий Америка шарқий стандарт вақти", "COT": "Колумбия стандарт вақти", "HNEG": "Шарқий Гренландия стандарт вақти", "MST": "Шимолий Америка тоғ стандарт вақти", "HNPMX": "Meksika Tinch okeani standart vaqti", "CHAST": "Чатхам стандарт вақти", "WEZ": "Ғарбий Европа стандарт вақти", "ACDT": "Марказий Австралия кундузги вақти", "GFT": "Француз Гвианаси вақти", "UYST": "Уругвай ёзги вақти", "WIB": "Ғарбий Индонезия вақти", "CST": "Шимолий Америка марказий стандарт вақти", "SGT": "Сингапур вақти", "ACST": "Марказий Австралия стандарт вақти", "∅∅∅": "∅∅∅", "BOT": "Боливия вақти", "NZST": "Янги Зеландия стандарт вақти", "EDT": "Шимолий Америка шарқий кундузги вақти", "AEST": "Шарқий Австралия стандарт вақти", "HNPM": "Сент-Пьер ва Микелон стандарт вақти", "HADT": "Гавайи-алеут кундузги вақти", "CLST": "Чили ёзги вақти", "HKST": "Гонконг ёзги вақти", "LHDT": "Лорд Хове кундузги вақти", "MESZ": "Марказий Европа ёзги вақти", "WARST": "Ғарбий Аргентина ёзги вақти", "OEZ": "Шарқий Европа стандарт вақти", "BT": "Бутан вақти", "HAST": "Гавайи-алеут стандарт вақти", "VET": "Венесуэла вақти", "JDT": "Япония кундузги вақти", "OESZ": "Шарқий Европа ёзги вақти", "ChST": "Каморро вақти", "WITA": "Марказий Индонезия вақти", "UYT": "Уругвай стандарт вақти", "HNCU": "Куба стандарт вақти", "AWST": "Ғарбий Австралия стандарт вақти", "ACWDT": "Марказий Австралия Ғарбий кундузги вақти", "MDT": "Шимолий Америка тоғ кундузги вақти", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "AWDT": "Ғарбий Австралия кундузги вақти", "ECT": "Эквадор вақти", "TMT": "Туркманистон стандарт вақти", "AKST": "Аляска стандарт вақти", "CAT": "Марказий Африка вақти", "HEOG": "Ғарбий Гренландия ёзги вақти", "HEPM": "Сент-Пьер ва Микелон кундузги вақти", "PDT": "Шимолий Америка тинч океани кундузги вақти", "MYT": "Малайзия вақти", "GMT": "Гринвич вақти", "ARST": "Аргентина ёзги вақти", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "LHST": "Лорд Хове стандарт вақти", "HECU": "Куба кундузги вақти", "ART": "Аргентина стандарт вақти", "COST": "Колумбия ёзги вақти", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "AKDT": "Аляска кундузги вақти", "EAT": "Шарқий Африка вақти", "IST": "Ҳиндистон вақти", "MEZ": "Марказий Европа стандарт вақти", "JST": "Япония стандарт вақти", "AST": "Атлантика стандарт вақти", "WAST": "Ғарбий Африка ёзги вақти", "WESZ": "Ғарбий Европа ёзги вақти", "CDT": "Шимолий Америка марказий кундузги вақти", "AEDT": "Шарқий Австралия кундузги вақти", "GYT": "Гайана вақти", "CHADT": "Чатхам кундузги вақти", "PST": "Шимолий Америка тинч океани стандарт вақти", "ACWST": "Марказий Австралия Ғарбий стандарт вақти", "WART": "Ғарбий Аргентина стандарт вақти", "TMST": "Туркманистон ёзги вақти", "HNT": "Ньюфаундленд стандарт вақти", "SAST": "Жанубий Африка вақти", "CLT": "Чили стандарт вақти", "ADT": "Атлантика кундузги вақти", "WAT": "Ғарбий Африка стандарт вақти"},
}
}
diff --git a/uz_Cyrl_UZ/uz_Cyrl_UZ.go b/uz_Cyrl_UZ/uz_Cyrl_UZ.go
index f189940d..403f22ba 100644
--- a/uz_Cyrl_UZ/uz_Cyrl_UZ.go
+++ b/uz_Cyrl_UZ/uz_Cyrl_UZ.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"m.a.", "milodiy"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"WITA": "Markaziy Indoneziya vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "EST": "Sharqiy Amerika standart vaqti", "HADT": "Gavayi-aleut yozgi vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "WEZ": "G‘arbiy Yevropa standart vaqti", "HKST": "Gonkong yozgi vaqti", "GMT": "Grinvich o‘rtacha vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "CDT": "Markaziy Amerika yozgi vaqti", "AST": "Atlantika standart vaqti", "GYT": "Gayana vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "HAT": "Nyufaundlend yozgi vaqti", "PDT": "Tinch okeani yozgi vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "AKST": "Alyaska standart vaqti", "CST": "Markaziy Amerika standart vaqti", "AWST": "G‘arbiy Avstraliya standart vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "∅∅∅": "Peru yozgi vaqti", "PST": "Tinch okeani standart vaqti", "LHST": "Lord-Xau standart vaqti", "JST": "Yaponiya standart vaqti", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "EAT": "Sharqiy Afrika vaqti", "HNCU": "Kuba standart vaqti", "HAST": "Gavayi-aleut standart vaqti", "SRT": "Surinam vaqti", "ARST": "Argentina yozgi vaqti", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "MYT": "Malayziya vaqti", "BOT": "Boliviya vaqti", "NZST": "Yangi Zelandiya standart vaqti", "CHADT": "Chatem yozgi vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "HECU": "Kuba yozgi vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "WIT": "Sharqiy Indoneziya vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "COST": "Kolumbiya yozgi vaqti", "ADT": "Atlantika yozgi vaqti", "UYT": "Urugvay standart vaqti", "SAST": "Janubiy Afrika standart vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "WAT": "Gʻarbiy Afrika standart vaqti", "VET": "Venesuela vaqti", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "TMT": "Turkmaniston standart vaqti", "ChST": "Chamorro standart vaqti", "JDT": "Yaponiya yozgi vaqti", "CLT": "Chili standart vaqti", "GFT": "Fransuz Gvianasi vaqti", "AKDT": "Alyaska yozgi vaqti", "WIB": "Gʻarbiy Indoneziya vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "HKT": "Gonkong standart vaqti", "LHDT": "Lord-Xau yozgi vaqti", "CAT": "Markaziy Afrika vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "BT": "Butan vaqti", "CHAST": "Chatem standart vaqti", "ECT": "Ekvador vaqti", "MST": "MST", "UYST": "Urugvay yozgi vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "IST": "Hindiston vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "HNT": "Nyufaundlend standart vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "CLST": "Chili yozgi vaqti", "TMST": "Turkmaniston yozgi vaqti", "COT": "Kolumbiya standart vaqti", "SGT": "Singapur vaqti", "MDT": "MDT", "ART": "Argentina standart vaqti", "AEST": "Sharqiy Avstraliya standart vaqti"},
+ timezones: map[string]string{"HEEG": "Sharqiy Grenlandiya yozgi vaqti", "AEST": "Sharqiy Avstraliya standart vaqti", "GFT": "Fransuz Gvianasi vaqti", "GMT": "Grinvich o‘rtacha vaqti", "MYT": "Malayziya vaqti", "TMST": "Turkmaniston yozgi vaqti", "ART": "Argentina standart vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "NZST": "Yangi Zelandiya standart vaqti", "GYT": "Gayana vaqti", "SGT": "Singapur vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "CLT": "Chili standart vaqti", "HKT": "Gonkong standart vaqti", "LHDT": "Lord-Xau yozgi vaqti", "SRT": "Surinam vaqti", "∅∅∅": "∅∅∅", "UYST": "Urugvay yozgi vaqti", "EAT": "Sharqiy Afrika vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "MDT": "MDT", "BT": "Butan vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "PST": "Tinch okeani standart vaqti", "HADT": "Gavayi-aleut yozgi vaqti", "JST": "Yaponiya standart vaqti", "ADT": "Atlantika yozgi vaqti", "MST": "MST", "COST": "Kolumbiya yozgi vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "CDT": "Markaziy Amerika yozgi vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "CAT": "Markaziy Afrika vaqti", "VET": "Venesuela vaqti", "EST": "Sharqiy Amerika standart vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "AKDT": "Alyaska yozgi vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "AWST": "G‘arbiy Avstraliya standart vaqti", "ARST": "Argentina yozgi vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "HNT": "Nyufaundlend standart vaqti", "WAT": "Gʻarbiy Afrika standart vaqti", "CHADT": "Chatem yozgi vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "HAT": "Nyufaundlend yozgi vaqti", "LHST": "Lord-Xau standart vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "IST": "Hindiston vaqti", "WIB": "Gʻarbiy Indoneziya vaqti", "PDT": "Tinch okeani yozgi vaqti", "ECT": "Ekvador vaqti", "CLST": "Chili yozgi vaqti", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "AKST": "Alyaska standart vaqti", "SAST": "Janubiy Afrika standart vaqti", "HNCU": "Kuba standart vaqti", "JDT": "Yaponiya yozgi vaqti", "HKST": "Gonkong yozgi vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "BOT": "Boliviya vaqti", "HAST": "Gavayi-aleut standart vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "AST": "Atlantika standart vaqti", "WITA": "Markaziy Indoneziya vaqti", "CST": "Markaziy Amerika standart vaqti", "CHAST": "Chatem standart vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "TMT": "Turkmaniston standart vaqti", "COT": "Kolumbiya standart vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "WIT": "Sharqiy Indoneziya vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "WEZ": "G‘arbiy Yevropa standart vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "UYT": "Urugvay standart vaqti", "ChST": "Chamorro standart vaqti", "HECU": "Kuba yozgi vaqti"},
}
}
diff --git a/uz_Latn/uz_Latn.go b/uz_Latn/uz_Latn.go
index ff7acd58..158fe389 100644
--- a/uz_Latn/uz_Latn.go
+++ b/uz_Latn/uz_Latn.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"m.a.", "milodiy"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"CDT": "Markaziy Amerika yozgi vaqti", "UYT": "Urugvay standart vaqti", "AKST": "Alyaska standart vaqti", "HADT": "Gavayi-aleut yozgi vaqti", "WIT": "Sharqiy Indoneziya vaqti", "SRT": "Surinam vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "CHADT": "Chatem yozgi vaqti", "GFT": "Fransuz Gvianasi vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "∅∅∅": "Azor orollari yozgi vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "MYT": "Malayziya vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "ChST": "Chamorro standart vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "CST": "Markaziy Amerika standart vaqti", "UYST": "Urugvay yozgi vaqti", "HNT": "Nyufaundlend standart vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "LHDT": "Lord-Xau yozgi vaqti", "BOT": "Boliviya vaqti", "CAT": "Markaziy Afrika vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "SGT": "Singapur vaqti", "HAST": "Gavayi-aleut standart vaqti", "PDT": "Tinch okeani yozgi vaqti", "JDT": "Yaponiya yozgi vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "HNCU": "Kuba standart vaqti", "WIB": "Gʻarbiy Indoneziya vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "AWST": "G‘arbiy Avstraliya standart vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "CLT": "Chili standart vaqti", "ECT": "Ekvador vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "VET": "Venesuela vaqti", "WITA": "Markaziy Indoneziya vaqti", "JST": "Yaponiya standart vaqti", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "MST": "MST", "GYT": "Gayana vaqti", "HAT": "Nyufaundlend yozgi vaqti", "ARST": "Argentina yozgi vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "COT": "Kolumbiya standart vaqti", "HECU": "Kuba yozgi vaqti", "PST": "Tinch okeani standart vaqti", "WEZ": "G‘arbiy Yevropa standart vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "HKST": "Gonkong yozgi vaqti", "TMST": "Turkmaniston yozgi vaqti", "AST": "Atlantika standart vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "TMT": "Turkmaniston standart vaqti", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "CHAST": "Chatem standart vaqti", "NZST": "Yangi Zelandiya standart vaqti", "AEST": "Sharqiy Avstraliya standart vaqti", "SAST": "Janubiy Afrika standart vaqti", "MDT": "MDT", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "BT": "Butan vaqti", "HKT": "Gonkong standart vaqti", "EAT": "Sharqiy Afrika vaqti", "ADT": "Atlantika yozgi vaqti", "AKDT": "Alyaska yozgi vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "LHST": "Lord-Xau standart vaqti", "COST": "Kolumbiya yozgi vaqti", "EST": "Sharqiy Amerika standart vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "IST": "Hindiston vaqti", "GMT": "Grinvich o‘rtacha vaqti", "ART": "Argentina standart vaqti", "CLST": "Chili yozgi vaqti", "WAT": "Gʻarbiy Afrika standart vaqti"},
+ timezones: map[string]string{"WIT": "Sharqiy Indoneziya vaqti", "HKST": "Gonkong yozgi vaqti", "COT": "Kolumbiya standart vaqti", "HECU": "Kuba yozgi vaqti", "CST": "Markaziy Amerika standart vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "WIB": "Gʻarbiy Indoneziya vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "MDT": "MDT", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "ADT": "Atlantika yozgi vaqti", "MYT": "Malayziya vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "IST": "Hindiston vaqti", "CLT": "Chili standart vaqti", "CLST": "Chili yozgi vaqti", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "LHST": "Lord-Xau standart vaqti", "BOT": "Boliviya vaqti", "BT": "Butan vaqti", "WITA": "Markaziy Indoneziya vaqti", "HADT": "Gavayi-aleut yozgi vaqti", "CAT": "Markaziy Afrika vaqti", "GMT": "Grinvich o‘rtacha vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "HNT": "Nyufaundlend standart vaqti", "ChST": "Chamorro standart vaqti", "JDT": "Yaponiya yozgi vaqti", "ARST": "Argentina yozgi vaqti", "UYT": "Urugvay standart vaqti", "HNCU": "Kuba standart vaqti", "PST": "Tinch okeani standart vaqti", "HAST": "Gavayi-aleut standart vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "VET": "Venesuela vaqti", "SGT": "Singapur vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "HAT": "Nyufaundlend yozgi vaqti", "AKST": "Alyaska standart vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "SRT": "Surinam vaqti", "GYT": "Gayana vaqti", "ECT": "Ekvador vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "COST": "Kolumbiya yozgi vaqti", "EAT": "Sharqiy Afrika vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "WEZ": "G‘arbiy Yevropa standart vaqti", "MST": "MST", "WAT": "Gʻarbiy Afrika standart vaqti", "LHDT": "Lord-Xau yozgi vaqti", "CDT": "Markaziy Amerika yozgi vaqti", "CHADT": "Chatem yozgi vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "TMT": "Turkmaniston standart vaqti", "ART": "Argentina standart vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "JST": "Yaponiya standart vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "TMST": "Turkmaniston yozgi vaqti", "EST": "Sharqiy Amerika standart vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "HKT": "Gonkong standart vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "AKDT": "Alyaska yozgi vaqti", "PDT": "Tinch okeani yozgi vaqti", "NZST": "Yangi Zelandiya standart vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "AST": "Atlantika standart vaqti", "CHAST": "Chatem standart vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "SAST": "Janubiy Afrika standart vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "AWST": "G‘arbiy Avstraliya standart vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "∅∅∅": "Amazonka yozgi vaqti", "GFT": "Fransuz Gvianasi vaqti", "AEST": "Sharqiy Avstraliya standart vaqti", "UYST": "Urugvay yozgi vaqti"},
}
}
diff --git a/uz_Latn_UZ/uz_Latn_UZ.go b/uz_Latn_UZ/uz_Latn_UZ.go
index 32082b98..e0d58c8c 100644
--- a/uz_Latn_UZ/uz_Latn_UZ.go
+++ b/uz_Latn_UZ/uz_Latn_UZ.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"m.a.", "milodiy"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"AWST": "G‘arbiy Avstraliya standart vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "NZST": "Yangi Zelandiya standart vaqti", "IST": "Hindiston vaqti", "ACST": "Markaziy Avstraliya standart vaqti", "CST": "Markaziy Amerika standart vaqti", "AST": "Atlantika standart vaqti", "WITA": "Markaziy Indoneziya vaqti", "HECU": "Kuba yozgi vaqti", "HKST": "Gonkong yozgi vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "COT": "Kolumbiya standart vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "∅∅∅": "Amazonka yozgi vaqti", "JST": "Yaponiya standart vaqti", "UYT": "Urugvay standart vaqti", "HKT": "Gonkong standart vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "JDT": "Yaponiya yozgi vaqti", "HAST": "Gavayi-aleut standart vaqti", "HADT": "Gavayi-aleut yozgi vaqti", "EST": "Sharqiy Amerika standart vaqti", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "CLST": "Chili yozgi vaqti", "WAT": "Gʻarbiy Afrika standart vaqti", "TMST": "Turkmaniston yozgi vaqti", "ChST": "Chamorro standart vaqti", "CDT": "Markaziy Amerika yozgi vaqti", "WIT": "Sharqiy Indoneziya vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "SGT": "Singapur vaqti", "ADT": "Atlantika yozgi vaqti", "SRT": "Surinam vaqti", "CHAST": "Chatem standart vaqti", "CHADT": "Chatem yozgi vaqti", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "GFT": "Fransuz Gvianasi vaqti", "ARST": "Argentina yozgi vaqti", "TMT": "Turkmaniston standart vaqti", "ECT": "Ekvador vaqti", "COST": "Kolumbiya yozgi vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "GYT": "Gayana vaqti", "MYT": "Malayziya vaqti", "HNT": "Nyufaundlend standart vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "PDT": "Tinch okeani yozgi vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "AKST": "Alyaska standart vaqti", "MDT": "Tog‘ yozgi vaqti (AQSH)", "BT": "Butan vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "SAST": "Janubiy Afrika standart vaqti", "GMT": "Grinvich o‘rtacha vaqti", "AKDT": "Alyaska yozgi vaqti", "WIB": "Gʻarbiy Indoneziya vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "PST": "Tinch okeani standart vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "CAT": "Markaziy Afrika vaqti", "UYST": "Urugvay yozgi vaqti", "MST": "Tog‘ standart vaqti (AQSH)", "ART": "Argentina standart vaqti", "WEZ": "G‘arbiy Yevropa standart vaqti", "LHDT": "Lord-Xau yozgi vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "AEST": "Sharqiy Avstraliya standart vaqti", "LHST": "Lord-Xau standart vaqti", "BOT": "Boliviya vaqti", "CLT": "Chili standart vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "EAT": "Sharqiy Afrika vaqti", "HNCU": "Kuba standart vaqti", "VET": "Venesuela vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "HAT": "Nyufaundlend yozgi vaqti"},
+ timezones: map[string]string{"AST": "Atlantika standart vaqti", "HNCU": "Kuba standart vaqti", "PST": "Tinch okeani standart vaqti", "ACWST": "Markaziy Avstraliya g‘arbiy standart vaqti", "HKT": "Gonkong standart vaqti", "COST": "Kolumbiya yozgi vaqti", "HNT": "Nyufaundlend standart vaqti", "GFT": "Fransuz Gvianasi vaqti", "BOT": "Boliviya vaqti", "HNEG": "Sharqiy Grenlandiya standart vaqti", "AKST": "Alyaska standart vaqti", "SGT": "Singapur vaqti", "MEZ": "Markaziy Yevropa standart vaqti", "VET": "Venesuela vaqti", "OEZ": "Sharqiy Yevropa standart vaqti", "HNPMX": "Meksika Tinch okeani standart vaqti", "CST": "Markaziy Amerika standart vaqti", "CHADT": "Chatem yozgi vaqti", "MYT": "Malayziya vaqti", "WARST": "Gʻarbiy Argentina yozgi vaqti", "HEOG": "G‘arbiy Grenlandiya yozgi vaqti", "WEZ": "G‘arbiy Yevropa standart vaqti", "WAST": "Gʻarbiy Afrika yozgi vaqti", "HNNOMX": "Shimoli-g‘arbiy Meksika standart vaqti", "AEDT": "Sharqiy Avstraliya yozgi vaqti", "AWDT": "G‘arbiy Avstraliya yozgi vaqti", "CAT": "Markaziy Afrika vaqti", "WIT": "Sharqiy Indoneziya vaqti", "HADT": "Gavayi-aleut yozgi vaqti", "NZST": "Yangi Zelandiya standart vaqti", "ACWDT": "Markaziy Avstraliya g‘arbiy yozgi vaqti", "GMT": "Grinvich o‘rtacha vaqti", "EST": "Sharqiy Amerika standart vaqti", "HKST": "Gonkong yozgi vaqti", "ACDT": "Markaziy Avstraliya yozgi vaqti", "HAT": "Nyufaundlend yozgi vaqti", "LHDT": "Lord-Xau yozgi vaqti", "GYT": "Gayana vaqti", "CHAST": "Chatem standart vaqti", "JDT": "Yaponiya yozgi vaqti", "CLT": "Chili standart vaqti", "TMST": "Turkmaniston yozgi vaqti", "EDT": "Sharqiy Amerika yozgi vaqti", "UYT": "Urugvay standart vaqti", "LHST": "Lord-Xau standart vaqti", "CLST": "Chili yozgi vaqti", "WAT": "Gʻarbiy Afrika standart vaqti", "WART": "Gʻarbiy Argentina standart vaqti", "WESZ": "G‘arbiy Yevropa yozgi vaqti", "MST": "MST", "ACST": "Markaziy Avstraliya standart vaqti", "HENOMX": "Shimoli-g‘arbiy Meksika yozgi vaqti", "WITA": "Markaziy Indoneziya vaqti", "EAT": "Sharqiy Afrika vaqti", "AWST": "G‘arbiy Avstraliya standart vaqti", "NZDT": "Yangi Zelandiya yozgi vaqti", "ADT": "Atlantika yozgi vaqti", "OESZ": "Sharqiy Yevropa yozgi vaqti", "ART": "Argentina standart vaqti", "COT": "Kolumbiya standart vaqti", "BT": "Butan vaqti", "AEST": "Sharqiy Avstraliya standart vaqti", "HEPM": "Sen-Pyer va Mikelon yozgi vaqti", "CDT": "Markaziy Amerika yozgi vaqti", "PDT": "Tinch okeani yozgi vaqti", "HAST": "Gavayi-aleut standart vaqti", "TMT": "Turkmaniston standart vaqti", "ChST": "Chamorro standart vaqti", "HNPM": "Sen-Pyer va Mikelon standart vaqti", "ECT": "Ekvador vaqti", "HEEG": "Sharqiy Grenlandiya yozgi vaqti", "UYST": "Urugvay yozgi vaqti", "JST": "Yaponiya standart vaqti", "SAST": "Janubiy Afrika standart vaqti", "WIB": "Gʻarbiy Indoneziya vaqti", "MESZ": "Markaziy Yevropa yozgi vaqti", "HNOG": "G‘arbiy Grenlandiya standart vaqti", "ARST": "Argentina yozgi vaqti", "AKDT": "Alyaska yozgi vaqti", "SRT": "Surinam vaqti", "HEPMX": "Meksika Tinch okeani yozgi vaqti", "HECU": "Kuba yozgi vaqti", "∅∅∅": "Amazonka yozgi vaqti", "IST": "Hindiston vaqti", "MDT": "MDT"},
}
}
diff --git a/vai/vai.go b/vai/vai.go
index 71db3c29..5f610c44 100644
--- a/vai/vai.go
+++ b/vai/vai.go
@@ -56,7 +56,7 @@ func New() locales.Translator {
currencyNegativeSuffix: ")",
monthsWide: []string{"", "ꖨꕪꖃ ꔞꕮ", "ꕒꕡꖝꖕ", "ꕾꖺ", "ꖢꖕ", "ꖑꕱ", "6", "7", "ꗛꔕ", "ꕢꕌ", "ꕭꖃ", "ꔞꘋꕔꕿ ꕸꖃꗏ", "ꖨꕪꕱ ꗏꕮ"},
daysWide: []string{"ꕞꕌꔵ", "ꗳꗡꘉ", "ꕚꕞꕚ", "ꕉꕞꕒ", "ꕉꔤꕆꕢ", "ꕉꔤꕀꕮ", "ꔻꔬꔳ"},
- timezones: map[string]string{"VET": "VET", "LHDT": "LHDT", "JDT": "JDT", "CAT": "CAT", "OESZ": "OESZ", "AKDT": "AKDT", "CST": "CST", "CDT": "CDT", "HADT": "HADT", "WESZ": "WESZ", "OEZ": "OEZ", "SGT": "SGT", "HECU": "HECU", "HNCU": "HNCU", "BT": "BT", "HEPM": "HEPM", "CHADT": "CHADT", "CLT": "CLT", "∅∅∅": "∅∅∅", "WAST": "WAST", "UYST": "UYST", "AKST": "AKST", "AWDT": "AWDT", "HKST": "HKST", "WITA": "WITA", "NZST": "NZST", "COST": "COST", "MDT": "MDT", "HNPMX": "HNPMX", "AWST": "AWST", "HEEG": "HEEG", "EAT": "EAT", "WART": "WART", "UYT": "UYT", "ADT": "ADT", "PST": "PST", "BOT": "BOT", "ECT": "ECT", "EDT": "EDT", "MEZ": "MEZ", "CHAST": "CHAST", "ACST": "ACST", "HNNOMX": "HNNOMX", "HEPMX": "HEPMX", "COT": "COT", "HENOMX": "HENOMX", "PDT": "PDT", "ARST": "ARST", "CLST": "CLST", "TMT": "TMT", "HAST": "HAST", "SRT": "SRT", "ART": "ART", "AEST": "AEST", "TMST": "TMST", "AST": "AST", "MST": "MST", "HNT": "HNT", "HKT": "HKT", "HNPM": "HNPM", "ChST": "ChST", "EST": "EST", "WIT": "WIT", "HEOG": "HEOG", "MESZ": "MESZ", "HNEG": "HNEG", "GFT": "GFT", "ACWST": "ACWST", "HAT": "HAT", "LHST": "LHST", "ACDT": "ACDT", "ACWDT": "ACWDT", "NZDT": "NZDT", "IST": "IST", "WARST": "WARST", "WAT": "WAT", "MYT": "MYT", "GYT": "GYT", "WIB": "WIB", "HNOG": "HNOG", "AEDT": "AEDT", "SAST": "SAST", "JST": "JST", "WEZ": "WEZ", "GMT": "GMT"},
+ timezones: map[string]string{"CHADT": "CHADT", "AKDT": "AKDT", "UYT": "UYT", "ACWDT": "ACWDT", "MYT": "MYT", "ARST": "ARST", "ChST": "ChST", "WESZ": "WESZ", "WAT": "WAT", "HNEG": "HNEG", "JDT": "JDT", "AST": "AST", "GMT": "GMT", "EDT": "EDT", "HENOMX": "HENOMX", "HNT": "HNT", "WITA": "WITA", "HECU": "HECU", "NZST": "NZST", "EST": "EST", "WIB": "WIB", "AWST": "AWST", "HADT": "HADT", "∅∅∅": "∅∅∅", "ACDT": "ACDT", "HNPMX": "HNPMX", "ADT": "ADT", "TMT": "TMT", "HKST": "HKST", "HNPM": "HNPM", "CST": "CST", "MDT": "MDT", "ACST": "ACST", "COT": "COT", "HNNOMX": "HNNOMX", "AKST": "AKST", "HNCU": "HNCU", "CDT": "CDT", "AWDT": "AWDT", "BOT": "BOT", "ECT": "ECT", "VET": "VET", "OESZ": "OESZ", "WAST": "WAST", "GFT": "GFT", "UYST": "UYST", "CHAST": "CHAST", "PST": "PST", "MEZ": "MEZ", "WARST": "WARST", "HNOG": "HNOG", "LHDT": "LHDT", "ACWST": "ACWST", "HEOG": "HEOG", "ART": "ART", "HAT": "HAT", "EAT": "EAT", "IST": "IST", "OEZ": "OEZ", "WART": "WART", "CLT": "CLT", "TMST": "TMST", "AEDT": "AEDT", "HEPMX": "HEPMX", "WEZ": "WEZ", "LHST": "LHST", "SGT": "SGT", "PDT": "PDT", "HKT": "HKT", "HEEG": "HEEG", "SRT": "SRT", "WIT": "WIT", "MESZ": "MESZ", "CLST": "CLST", "COST": "COST", "BT": "BT", "SAST": "SAST", "GYT": "GYT", "HAST": "HAST", "CAT": "CAT", "NZDT": "NZDT", "JST": "JST", "MST": "MST", "AEST": "AEST", "HEPM": "HEPM"},
}
}
diff --git a/vai_Latn/vai_Latn.go b/vai_Latn/vai_Latn.go
index 38385516..2517ac50 100644
--- a/vai_Latn/vai_Latn.go
+++ b/vai_Latn/vai_Latn.go
@@ -56,7 +56,7 @@ func New() locales.Translator {
currencyNegativeSuffix: ")",
monthsWide: []string{"", "luukao kemã", "ɓandaɓu", "vɔɔ", "fulu", "goo", "6", "7", "kɔnde", "saah", "galo", "kenpkato ɓololɔ", "luukao lɔma"},
daysWide: []string{"lahadi", "tɛɛnɛɛ", "talata", "alaba", "aimisa", "aijima", "siɓiti"},
- timezones: map[string]string{"CLT": "CLT", "BOT": "BOT", "ACDT": "ACDT", "GMT": "GMT", "HNCU": "HNCU", "HNPMX": "HNPMX", "UYST": "UYST", "BT": "BT", "IST": "IST", "AST": "AST", "GYT": "GYT", "AKDT": "AKDT", "AEST": "AEST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "OESZ": "OESZ", "EAT": "EAT", "MDT": "MDT", "ARST": "ARST", "HNOG": "HNOG", "AWDT": "AWDT", "MEZ": "MEZ", "JDT": "JDT", "OEZ": "OEZ", "WIT": "WIT", "ART": "ART", "PST": "PST", "WITA": "WITA", "AWST": "AWST", "LHDT": "LHDT", "ACST": "ACST", "COST": "COST", "HENOMX": "HENOMX", "HNT": "HNT", "AEDT": "AEDT", "HKST": "HKST", "HNPM": "HNPM", "JST": "JST", "HAST": "HAST", "EST": "EST", "MST": "MST", "CST": "CST", "SRT": "SRT", "HEOG": "HEOG", "TMST": "TMST", "COT": "COT", "HADT": "HADT", "WAST": "WAST", "HEPMX": "HEPMX", "UYT": "UYT", "PDT": "PDT", "ACWDT": "ACWDT", "LHST": "LHST", "NZST": "NZST", "SAST": "SAST", "WARST": "WARST", "HNNOMX": "HNNOMX", "SGT": "SGT", "HECU": "HECU", "MESZ": "MESZ", "NZDT": "NZDT", "ECT": "ECT", "ADT": "ADT", "WIB": "WIB", "HAT": "HAT", "WEZ": "WEZ", "GFT": "GFT", "CAT": "CAT", "CDT": "CDT", "VET": "VET", "CLST": "CLST", "TMT": "TMT", "EDT": "EDT", "WESZ": "WESZ", "HEPM": "HEPM", "CHAST": "CHAST", "HEEG": "HEEG", "WAT": "WAT", "CHADT": "CHADT", "ChST": "ChST", "WART": "WART", "MYT": "MYT", "AKST": "AKST", "ACWST": "ACWST", "HKT": "HKT"},
+ timezones: map[string]string{"PDT": "PDT", "EST": "EST", "ACST": "ACST", "COST": "COST", "MST": "MST", "GFT": "GFT", "WITA": "WITA", "HNPMX": "HNPMX", "JST": "JST", "JDT": "JDT", "OEZ": "OEZ", "COT": "COT", "HNNOMX": "HNNOMX", "EAT": "EAT", "MEZ": "MEZ", "MDT": "MDT", "HEPM": "HEPM", "WIT": "WIT", "GMT": "GMT", "WARST": "WARST", "OESZ": "OESZ", "HAT": "HAT", "SAST": "SAST", "LHST": "LHST", "LHDT": "LHDT", "HEPMX": "HEPMX", "HADT": "HADT", "BT": "BT", "WIB": "WIB", "CHAST": "CHAST", "NZDT": "NZDT", "WEZ": "WEZ", "TMT": "TMT", "AEDT": "AEDT", "MYT": "MYT", "WAST": "WAST", "HNT": "HNT", "CST": "CST", "ACWDT": "ACWDT", "CLST": "CLST", "ART": "ART", "HENOMX": "HENOMX", "HEEG": "HEEG", "ECT": "ECT", "NZST": "NZST", "ADT": "ADT", "TMST": "TMST", "AKST": "AKST", "HNPM": "HNPM", "GYT": "GYT", "HNCU": "HNCU", "WART": "WART", "ARST": "ARST", "ACDT": "ACDT", "HECU": "HECU", "CHADT": "CHADT", "ACWST": "ACWST", "HKST": "HKST", "UYT": "UYT", "BOT": "BOT", "CAT": "CAT", "HNEG": "HNEG", "UYST": "UYST", "AWST": "AWST", "∅∅∅": "∅∅∅", "SRT": "SRT", "WAT": "WAT", "HKT": "HKT", "AWDT": "AWDT", "HAST": "HAST", "VET": "VET", "CLT": "CLT", "HNOG": "HNOG", "WESZ": "WESZ", "AEST": "AEST", "AKDT": "AKDT", "CDT": "CDT", "PST": "PST", "IST": "IST", "MESZ": "MESZ", "HEOG": "HEOG", "EDT": "EDT", "ChST": "ChST", "SGT": "SGT", "AST": "AST"},
}
}
diff --git a/vai_Latn_LR/vai_Latn_LR.go b/vai_Latn_LR/vai_Latn_LR.go
index 0821e4b7..c4e69075 100644
--- a/vai_Latn_LR/vai_Latn_LR.go
+++ b/vai_Latn_LR/vai_Latn_LR.go
@@ -56,7 +56,7 @@ func New() locales.Translator {
currencyNegativeSuffix: ")",
monthsWide: []string{"", "ꖨꕪꖃ ꔞꕮ", "ꕒꕡꖝꖕ", "ꕾꖺ", "ꖢꖕ", "ꖑꕱ", "6", "7", "ꗛꔕ", "ꕢꕌ", "ꕭꖃ", "ꔞꘋꕔꕿ ꕸꖃꗏ", "ꖨꕪꕱ ꗏꕮ"},
daysWide: []string{"ꕞꕌꔵ", "ꗳꗡꘉ", "ꕚꕞꕚ", "ꕉꕞꕒ", "ꕉꔤꕆꕢ", "ꕉꔤꕀꕮ", "ꔻꔬꔳ"},
- timezones: map[string]string{"PST": "PST", "COT": "COT", "HADT": "HADT", "LHST": "LHST", "IST": "IST", "GFT": "GFT", "OESZ": "OESZ", "COST": "COST", "CST": "CST", "ADT": "ADT", "AWST": "AWST", "MESZ": "MESZ", "ACST": "ACST", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "AKDT": "AKDT", "MDT": "MDT", "HNT": "HNT", "JST": "JST", "GYT": "GYT", "WIB": "WIB", "WIT": "WIT", "HAT": "HAT", "ACDT": "ACDT", "WARST": "WARST", "SGT": "SGT", "HAST": "HAST", "EDT": "EDT", "HEPMX": "HEPMX", "ACWDT": "ACWDT", "WITA": "WITA", "BOT": "BOT", "HEEG": "HEEG", "TMST": "TMST", "CAT": "CAT", "HNCU": "HNCU", "AKST": "AKST", "MYT": "MYT", "WEZ": "WEZ", "HKST": "HKST", "HENOMX": "HENOMX", "TMT": "TMT", "CDT": "CDT", "AST": "AST", "UYT": "UYT", "SRT": "SRT", "MEZ": "MEZ", "CHADT": "CHADT", "SAST": "SAST", "HECU": "HECU", "UYST": "UYST", "MST": "MST", "HEOG": "HEOG", "CLT": "CLT", "GMT": "GMT", "BT": "BT", "HNOG": "HNOG", "HKT": "HKT", "EAT": "EAT", "WAST": "WAST", "WESZ": "WESZ", "AEDT": "AEDT", "AWDT": "AWDT", "HNPM": "HNPM", "NZST": "NZST", "∅∅∅": "∅∅∅", "HNEG": "HNEG", "VET": "VET", "PDT": "PDT", "ACWST": "ACWST", "HEPM": "HEPM", "NZDT": "NZDT", "CHAST": "CHAST", "CLST": "CLST", "WAT": "WAT", "ECT": "ECT", "HNPMX": "HNPMX", "AEST": "AEST", "LHDT": "LHDT", "JDT": "JDT", "ChST": "ChST", "WART": "WART", "ART": "ART", "ARST": "ARST", "EST": "EST"},
+ timezones: map[string]string{"MYT": "MYT", "WIT": "WIT", "HEOG": "HEOG", "HEPMX": "HEPMX", "WIB": "WIB", "HNOG": "HNOG", "AST": "AST", "ADT": "ADT", "OESZ": "OESZ", "SAST": "SAST", "CAT": "CAT", "NZDT": "NZDT", "WART": "WART", "EST": "EST", "ACST": "ACST", "SRT": "SRT", "JDT": "JDT", "WESZ": "WESZ", "GMT": "GMT", "COST": "COST", "BT": "BT", "AKST": "AKST", "HAST": "HAST", "NZST": "NZST", "ART": "ART", "ACDT": "ACDT", "HEPM": "HEPM", "HECU": "HECU", "AWDT": "AWDT", "CLT": "CLT", "OEZ": "OEZ", "AEDT": "AEDT", "MST": "MST", "HEEG": "HEEG", "GFT": "GFT", "WITA": "WITA", "CHAST": "CHAST", "WEZ": "WEZ", "TMT": "TMT", "TMST": "TMST", "HKST": "HKST", "COT": "COT", "LHST": "LHST", "HKT": "HKT", "HENOMX": "HENOMX", "AWST": "AWST", "MEZ": "MEZ", "WARST": "WARST", "CLST": "CLST", "ARST": "ARST", "WAST": "WAST", "HNEG": "HNEG", "HNPMX": "HNPMX", "PDT": "PDT", "HADT": "HADT", "EDT": "EDT", "AKDT": "AKDT", "WAT": "WAT", "AEST": "AEST", "EAT": "EAT", "HNCU": "HNCU", "∅∅∅": "∅∅∅", "IST": "IST", "VET": "VET", "JST": "JST", "UYT": "UYT", "UYST": "UYST", "LHDT": "LHDT", "HAT": "HAT", "ChST": "ChST", "CDT": "CDT", "ECT": "ECT", "ACWDT": "ACWDT", "MESZ": "MESZ", "MDT": "MDT", "HNT": "HNT", "CST": "CST", "CHADT": "CHADT", "BOT": "BOT", "ACWST": "ACWST", "SGT": "SGT", "PST": "PST", "HNPM": "HNPM", "HNNOMX": "HNNOMX", "GYT": "GYT"},
}
}
diff --git a/vai_Vaii/vai_Vaii.go b/vai_Vaii/vai_Vaii.go
index f38dfe16..e31d1e1f 100644
--- a/vai_Vaii/vai_Vaii.go
+++ b/vai_Vaii/vai_Vaii.go
@@ -56,7 +56,7 @@ func New() locales.Translator {
currencyNegativeSuffix: ")",
monthsWide: []string{"", "ꖨꕪꖃ ꔞꕮ", "ꕒꕡꖝꖕ", "ꕾꖺ", "ꖢꖕ", "ꖑꕱ", "6", "7", "ꗛꔕ", "ꕢꕌ", "ꕭꖃ", "ꔞꘋꕔꕿ ꕸꖃꗏ", "ꖨꕪꕱ ꗏꕮ"},
daysWide: []string{"ꕞꕌꔵ", "ꗳꗡꘉ", "ꕚꕞꕚ", "ꕉꕞꕒ", "ꕉꔤꕆꕢ", "ꕉꔤꕀꕮ", "ꔻꔬꔳ"},
- timezones: map[string]string{"AKDT": "AKDT", "PST": "PST", "JST": "JST", "ACDT": "ACDT", "OEZ": "OEZ", "EAT": "EAT", "GMT": "GMT", "HNCU": "HNCU", "HEOG": "HEOG", "CAT": "CAT", "WART": "WART", "COST": "COST", "ART": "ART", "LHDT": "LHDT", "TMST": "TMST", "OESZ": "OESZ", "SGT": "SGT", "UYT": "UYT", "CHAST": "CHAST", "CLT": "CLT", "TMT": "TMT", "COT": "COT", "ARST": "ARST", "HKST": "HKST", "HNNOMX": "HNNOMX", "GYT": "GYT", "BT": "BT", "∅∅∅": "∅∅∅", "HENOMX": "HENOMX", "HECU": "HECU", "MDT": "MDT", "CDT": "CDT", "WIB": "WIB", "VET": "VET", "ChST": "ChST", "AST": "AST", "WARST": "WARST", "SRT": "SRT", "AEST": "AEST", "AEDT": "AEDT", "HEPM": "HEPM", "NZDT": "NZDT", "GFT": "GFT", "ECT": "ECT", "AKST": "AKST", "HADT": "HADT", "WIT": "WIT", "AWDT": "AWDT", "LHST": "LHST", "HNPMX": "HNPMX", "MYT": "MYT", "CHADT": "CHADT", "HEEG": "HEEG", "MST": "MST", "ACWDT": "ACWDT", "EST": "EST", "CST": "CST", "ADT": "ADT", "HAST": "HAST", "AWST": "AWST", "MESZ": "MESZ", "ACST": "ACST", "HNT": "HNT", "HNOG": "HNOG", "WESZ": "WESZ", "MEZ": "MEZ", "NZST": "NZST", "SAST": "SAST", "HNEG": "HNEG", "HAT": "HAT", "PDT": "PDT", "WAST": "WAST", "HEPMX": "HEPMX", "ACWST": "ACWST", "WITA": "WITA", "HKT": "HKT", "CLST": "CLST", "BOT": "BOT", "WEZ": "WEZ", "HNPM": "HNPM", "IST": "IST", "JDT": "JDT", "WAT": "WAT", "EDT": "EDT", "UYST": "UYST"},
+ timezones: map[string]string{"OESZ": "OESZ", "WART": "WART", "EDT": "EDT", "HKST": "HKST", "AKDT": "AKDT", "AEDT": "AEDT", "HEPMX": "HEPMX", "AWST": "AWST", "ACWDT": "ACWDT", "MESZ": "MESZ", "AST": "AST", "GMT": "GMT", "MDT": "MDT", "HNT": "HNT", "HNEG": "HNEG", "ChST": "ChST", "LHDT": "LHDT", "TMT": "TMT", "SRT": "SRT", "WIB": "WIB", "NZDT": "NZDT", "JDT": "JDT", "MST": "MST", "COST": "COST", "PDT": "PDT", "NZST": "NZST", "CLT": "CLT", "CLST": "CLST", "HNOG": "HNOG", "AWDT": "AWDT", "CHAST": "CHAST", "TMST": "TMST", "EST": "EST", "WITA": "WITA", "GYT": "GYT", "BOT": "BOT", "PST": "PST", "CAT": "CAT", "MEZ": "MEZ", "VET": "VET", "HAT": "HAT", "HNPM": "HNPM", "HNCU": "HNCU", "HAST": "HAST", "HEOG": "HEOG", "WAST": "WAST", "HNPMX": "HNPMX", "HADT": "HADT", "ECT": "ECT", "OEZ": "OEZ", "ARST": "ARST", "UYST": "UYST", "CHADT": "CHADT", "WARST": "WARST", "WAT": "WAT", "ACDT": "ACDT", "CDT": "CDT", "WIT": "WIT", "IST": "IST", "JST": "JST", "WEZ": "WEZ", "COT": "COT", "BT": "BT", "SAST": "SAST", "MYT": "MYT", "ACST": "ACST", "HEEG": "HEEG", "CST": "CST", "HKT": "HKT", "HENOMX": "HENOMX", "UYT": "UYT", "AEST": "AEST", "ACWST": "ACWST", "WESZ": "WESZ", "HNNOMX": "HNNOMX", "GFT": "GFT", "LHST": "LHST", "EAT": "EAT", "HECU": "HECU", "∅∅∅": "∅∅∅", "ADT": "ADT", "ART": "ART", "AKST": "AKST", "HEPM": "HEPM", "SGT": "SGT"},
}
}
diff --git a/vai_Vaii_LR/vai_Vaii_LR.go b/vai_Vaii_LR/vai_Vaii_LR.go
index 46086746..d3fb0227 100644
--- a/vai_Vaii_LR/vai_Vaii_LR.go
+++ b/vai_Vaii_LR/vai_Vaii_LR.go
@@ -56,7 +56,7 @@ func New() locales.Translator {
currencyNegativeSuffix: ")",
monthsWide: []string{"", "ꖨꕪꖃ ꔞꕮ", "ꕒꕡꖝꖕ", "ꕾꖺ", "ꖢꖕ", "ꖑꕱ", "6", "7", "ꗛꔕ", "ꕢꕌ", "ꕭꖃ", "ꔞꘋꕔꕿ ꕸꖃꗏ", "ꖨꕪꕱ ꗏꕮ"},
daysWide: []string{"ꕞꕌꔵ", "ꗳꗡꘉ", "ꕚꕞꕚ", "ꕉꕞꕒ", "ꕉꔤꕆꕢ", "ꕉꔤꕀꕮ", "ꔻꔬꔳ"},
- timezones: map[string]string{"CST": "CST", "ACWST": "ACWST", "AWST": "AWST", "JST": "JST", "CLT": "CLT", "GFT": "GFT", "ACST": "ACST", "WART": "WART", "HNCU": "HNCU", "HEPM": "HEPM", "HECU": "HECU", "EDT": "EDT", "HAST": "HAST", "VET": "VET", "WEZ": "WEZ", "WITA": "WITA", "AEST": "AEST", "MYT": "MYT", "HADT": "HADT", "HNT": "HNT", "ChST": "ChST", "HNNOMX": "HNNOMX", "SGT": "SGT", "HEPMX": "HEPMX", "AKST": "AKST", "GYT": "GYT", "HEOG": "HEOG", "NZDT": "NZDT", "MEZ": "MEZ", "ADT": "ADT", "CAT": "CAT", "WARST": "WARST", "COT": "COT", "WESZ": "WESZ", "LHST": "LHST", "∅∅∅": "∅∅∅", "HEEG": "HEEG", "TMST": "TMST", "GMT": "GMT", "AKDT": "AKDT", "CDT": "CDT", "WIB": "WIB", "BT": "BT", "SAST": "SAST", "HNEG": "HNEG", "BOT": "BOT", "NZST": "NZST", "ACDT": "ACDT", "EAT": "EAT", "TMT": "TMT", "OESZ": "OESZ", "ECT": "ECT", "AST": "AST", "ART": "ART", "MESZ": "MESZ", "CLST": "CLST", "WAST": "WAST", "COST": "COST", "IST": "IST", "MDT": "MDT", "SRT": "SRT", "ACWDT": "ACWDT", "HNOG": "HNOG", "CHADT": "CHADT", "JDT": "JDT", "WAT": "WAT", "OEZ": "OEZ", "MST": "MST", "WIT": "WIT", "ARST": "ARST", "AEDT": "AEDT", "AWDT": "AWDT", "UYST": "UYST", "PST": "PST", "PDT": "PDT", "HKT": "HKT", "HKST": "HKST", "HENOMX": "HENOMX", "CHAST": "CHAST", "LHDT": "LHDT", "UYT": "UYT", "HAT": "HAT", "HNPM": "HNPM", "HNPMX": "HNPMX", "EST": "EST"},
+ timezones: map[string]string{"VET": "VET", "MST": "MST", "HENOMX": "HENOMX", "AKDT": "AKDT", "WAT": "WAT", "HKST": "HKST", "AEST": "AEST", "UYT": "UYT", "HAT": "HAT", "LHDT": "LHDT", "WIB": "WIB", "WIT": "WIT", "GMT": "GMT", "HEOG": "HEOG", "AST": "AST", "COST": "COST", "HEPMX": "HEPMX", "NZDT": "NZDT", "HNPM": "HNPM", "ECT": "ECT", "PST": "PST", "OESZ": "OESZ", "HKT": "HKT", "AWDT": "AWDT", "WART": "WART", "UYST": "UYST", "GYT": "GYT", "ACWST": "ACWST", "MESZ": "MESZ", "CLT": "CLT", "TMT": "TMT", "HEEG": "HEEG", "SRT": "SRT", "HNCU": "HNCU", "CST": "CST", "AWST": "AWST", "SGT": "SGT", "HNOG": "HNOG", "WAST": "WAST", "HADT": "HADT", "CAT": "CAT", "ARST": "ARST", "HNNOMX": "HNNOMX", "HNEG": "HNEG", "SAST": "SAST", "HNPMX": "HNPMX", "CHAST": "CHAST", "ADT": "ADT", "EDT": "EDT", "ACDT": "ACDT", "AKST": "AKST", "LHST": "LHST", "HECU": "HECU", "ACWDT": "ACWDT", "MEZ": "MEZ", "WARST": "WARST", "CLST": "CLST", "WESZ": "WESZ", "EST": "EST", "GFT": "GFT", "BT": "BT", "EAT": "EAT", "HAST": "HAST", "NZST": "NZST", "MYT": "MYT", "OEZ": "OEZ", "TMST": "TMST", "ART": "ART", "COT": "COT", "∅∅∅": "∅∅∅", "CHADT": "CHADT", "BOT": "BOT", "JDT": "JDT", "WEZ": "WEZ", "MDT": "MDT", "WITA": "WITA", "ChST": "ChST", "HEPM": "HEPM", "PDT": "PDT", "JST": "JST", "ACST": "ACST", "AEDT": "AEDT", "CDT": "CDT", "IST": "IST", "HNT": "HNT"},
}
}
diff --git a/vi/vi.go b/vi/vi.go
index 8ec5f2e4..1c28ffc0 100644
--- a/vi/vi.go
+++ b/vi/vi.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"tr. CN", "sau CN"},
erasWide: []string{"", ""},
- timezones: map[string]string{"HADT": "Giờ Mùa Hè Hawaii-Aleutian", "BT": "Giờ Bhutan", "CHADT": "Giờ Mùa Hè Chatham", "CLST": "Giờ Mùa Hè Chile", "GFT": "Giờ Guiana thuộc Pháp", "OEZ": "Giờ Chuẩn Đông Âu", "SGT": "Giờ Singapore", "UYT": "Giờ Chuẩn Uruguay", "PST": "Giờ chuẩn Thái Bình Dương", "PDT": "Giờ Mùa hè Thái Bình Dương", "CLT": "Giờ Chuẩn Chile", "WART": "Giờ chuẩn miền mây Argentina", "SRT": "Giờ Suriname", "HNEG": "Giờ Chuẩn Miền Đông Greenland", "HENOMX": "Giờ Mùa Hè Tây Bắc Mexico", "HECU": "Giờ Mùa Hè Cuba", "GYT": "Giờ Guyana", "HEPM": "Giờ Mùa Hè Saint Pierre và Miquelon", "GMT": "Giờ Trung bình Greenwich", "HEPMX": "Giờ Mùa Hè Thái Bình Dương Mexico", "CST": "Giờ chuẩn miền trung", "HNPM": "Giờ Chuẩn St. Pierre và Miquelon", "NZST": "Giờ Chuẩn New Zealand", "HNNOMX": "Giờ Chuẩn Tây Bắc Mexico", "EST": "Giờ chuẩn miền đông", "WESZ": "Giờ Mùa hè Tây Âu", "ARST": "Giờ Mùa Hè Argentina", "ChST": "Giờ Chamorro", "OESZ": "Giờ Mùa Hè Đông Âu", "WIT": "Giờ Miền Đông Indonesia", "HEEG": "Giờ Mùa Hè Miền Đông Greenland", "ACDT": "Giờ Mùa Hè Miền Trung Nước Úc", "AEDT": "Giờ Mùa Hè Miền Đông Nước Úc", "BOT": "Giờ Bolivia", "COT": "Giờ Chuẩn Colombia", "MDT": "Giờ Mùa Hè Ma Cao", "AKST": "Giờ Chuẩn Alaska", "HAST": "Giờ Chuẩn Hawaii-Aleutian", "WEZ": "Giờ Chuẩn Tây Âu", "JST": "Giờ Chuẩn Nhật Bản", "HNPMX": "Giờ Chuẩn Thái Bình Dương Mexico", "CDT": "Giờ mùa hè miền trung", "UYST": "Giờ Mùa Hè Uruguay", "HKST": "Giờ Mùa Hè Hồng Kông", "AWDT": "Giờ Mùa Hè Miền Tây Nước Úc", "CAT": "Giờ Trung Phi", "WAST": "Giờ Mùa Hè Tây Phi", "WARST": "Giờ mùa hè miền tây Argentina", "WIB": "Giờ Miền Tây Indonesia", "ACWST": "Giờ Chuẩn Miền Trung Tây Nước Úc", "HNOG": "Giờ Chuẩn Miền Tây Greenland", "TMST": "Giờ Mùa Hè Turkmenistan", "ECT": "Giờ Ecuador", "HNCU": "Giờ Chuẩn Cuba", "LHDT": "Giờ Mùa Hè Lord Howe", "SAST": "Giờ Chuẩn Nam Phi", "VET": "Giờ Venezuela", "ART": "Giờ Chuẩn Argentina", "WITA": "Giờ Miền Trung Indonesia", "HEOG": "Giờ Mùa Hè Miền Tây Greenland", "LHST": "Giờ Chuẩn Lord Howe", "IST": "Giờ Chuẩn Ấn Độ", "ACST": "Giờ Chuẩn Miền Trung Nước Úc", "EAT": "Giờ Đông Phi", "ADT": "Giờ Mùa hè Đại Tây Dương", "MYT": "Giờ Malaysia", "NZDT": "Giờ Mùa Hè New Zealand", "HNT": "Giờ Chuẩn Newfoundland", "AEST": "Giờ Chuẩn Miền Đông Nước Úc", "AWST": "Giờ Chuẩn Miền Tây Nước Úc", "CHAST": "Giờ Chuẩn Chatham", "∅∅∅": "Giờ Mùa Hè Amazon", "WAT": "Giờ Chuẩn Tây Phi", "MST": "Giờ Chuẩn Ma Cao", "AST": "Giờ Chuẩn Đại Tây Dương", "HAT": "Giờ Mùa Hè Newfoundland", "AKDT": "Giờ Mùa Hè Alaska", "ACWDT": "Giờ Mùa Hè Miền Trung Tây Nước Úc", "MEZ": "Giờ Chuẩn Trung Âu", "MESZ": "Giờ Mùa Hè Trung Âu", "JDT": "Giờ Mùa Hè Nhật Bản", "TMT": "Giờ Chuẩn Turkmenistan", "COST": "Giờ Mùa Hè Colombia", "EDT": "Giờ mùa hè miền đông", "HKT": "Giờ Chuẩn Hồng Kông"},
+ timezones: map[string]string{"EST": "Giờ chuẩn miền đông", "ACST": "Giờ Chuẩn Miền Trung Nước Úc", "AWDT": "Giờ Mùa Hè Miền Tây Nước Úc", "AEDT": "Giờ Mùa Hè Miền Đông Nước Úc", "SAST": "Giờ Chuẩn Nam Phi", "GYT": "Giờ Guyana", "UYST": "Giờ Mùa Hè Uruguay", "WIT": "Giờ Miền Đông Indonesia", "BOT": "Giờ Bolivia", "CHAST": "Giờ Chuẩn Chatham", "HAST": "Giờ Chuẩn Hawaii-Aleutian", "HNNOMX": "Giờ Chuẩn Tây Bắc Mexico", "ACDT": "Giờ Mùa Hè Miền Trung Nước Úc", "WITA": "Giờ Miền Trung Indonesia", "OEZ": "Giờ Chuẩn Đông Âu", "PDT": "Giờ Mùa hè Thái Bình Dương", "JST": "Giờ Chuẩn Nhật Bản", "CLT": "Giờ Chuẩn Chile", "MEZ": "Giờ Chuẩn Trung Âu", "WESZ": "Giờ Mùa hè Tây Âu", "HKT": "Giờ Chuẩn Hồng Kông", "HNPM": "Giờ Chuẩn St. Pierre và Miquelon", "IST": "Giờ Chuẩn Ấn Độ", "AKST": "Giờ Chuẩn Alaska", "AST": "Giờ Chuẩn Đại Tây Dương", "TMT": "Giờ Chuẩn Turkmenistan", "BT": "Giờ Bhutan", "GFT": "Giờ Guiana thuộc Pháp", "LHDT": "Giờ Mùa Hè Lord Howe", "HNCU": "Giờ Chuẩn Cuba", "SGT": "Giờ Singapore", "ART": "Giờ Chuẩn Argentina", "WAT": "Giờ Chuẩn Tây Phi", "∅∅∅": "Giờ Mùa Hè Acre", "HADT": "Giờ Mùa Hè Hawaii-Aleutian", "CAT": "Giờ Trung Phi", "MESZ": "Giờ Mùa Hè Trung Âu", "ADT": "Giờ Mùa hè Đại Tây Dương", "HKST": "Giờ Mùa Hè Hồng Kông", "CHADT": "Giờ Mùa Hè Chatham", "WART": "Giờ chuẩn miền mây Argentina", "CST": "Giờ chuẩn miền trung", "NZST": "Giờ Chuẩn New Zealand", "TMST": "Giờ Mùa Hè Turkmenistan", "MDT": "Giờ Mùa Hè Ma Cao", "HEEG": "Giờ Mùa Hè Miền Đông Greenland", "HNT": "Giờ Chuẩn Newfoundland", "HECU": "Giờ Mùa Hè Cuba", "AWST": "Giờ Chuẩn Miền Tây Nước Úc", "PST": "Giờ chuẩn Thái Bình Dương", "HNOG": "Giờ Chuẩn Miền Tây Greenland", "ARST": "Giờ Mùa Hè Argentina", "COT": "Giờ Chuẩn Colombia", "AKDT": "Giờ Mùa Hè Alaska", "ACWST": "Giờ Chuẩn Miền Trung Tây Nước Úc", "WAST": "Giờ Mùa Hè Tây Phi", "AEST": "Giờ Chuẩn Miền Đông Nước Úc", "ECT": "Giờ Ecuador", "COST": "Giờ Mùa Hè Colombia", "HEPM": "Giờ Mùa Hè Saint Pierre và Miquelon", "OESZ": "Giờ Mùa Hè Đông Âu", "HEOG": "Giờ Mùa Hè Miền Tây Greenland", "MST": "Giờ Chuẩn Ma Cao", "HAT": "Giờ Mùa Hè Newfoundland", "WARST": "Giờ mùa hè miền tây Argentina", "HEPMX": "Giờ Mùa Hè Thái Bình Dương Mexico", "SRT": "Giờ Suriname", "MYT": "Giờ Malaysia", "CLST": "Giờ Mùa Hè Chile", "LHST": "Giờ Chuẩn Lord Howe", "VET": "Giờ Venezuela", "GMT": "Giờ Trung bình Greenwich", "HNPMX": "Giờ Chuẩn Thái Bình Dương Mexico", "EAT": "Giờ Đông Phi", "CDT": "Giờ mùa hè miền trung", "JDT": "Giờ Mùa Hè Nhật Bản", "WEZ": "Giờ Chuẩn Tây Âu", "EDT": "Giờ mùa hè miền đông", "HNEG": "Giờ Chuẩn Miền Đông Greenland", "ChST": "Giờ Chamorro", "ACWDT": "Giờ Mùa Hè Miền Trung Tây Nước Úc", "NZDT": "Giờ Mùa Hè New Zealand", "HENOMX": "Giờ Mùa Hè Tây Bắc Mexico", "UYT": "Giờ Chuẩn Uruguay", "WIB": "Giờ Miền Tây Indonesia"},
}
}
diff --git a/vi_VN/vi_VN.go b/vi_VN/vi_VN.go
index bb8073a9..4d460376 100644
--- a/vi_VN/vi_VN.go
+++ b/vi_VN/vi_VN.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"tr. CN", "sau CN"},
erasWide: []string{"", ""},
- timezones: map[string]string{"AEST": "Giờ Chuẩn Miền Đông Nước Úc", "GFT": "Giờ Guiana thuộc Pháp", "SRT": "Giờ Suriname", "WEZ": "Giờ Chuẩn Tây Âu", "HNT": "Giờ Chuẩn Newfoundland", "AWDT": "Giờ Mùa Hè Miền Tây Nước Úc", "HKT": "Giờ Chuẩn Hồng Kông", "HNPM": "Giờ Chuẩn St. Pierre và Miquelon", "MEZ": "Giờ Chuẩn Trung Âu", "LHDT": "Giờ Mùa Hè Lord Howe", "ECT": "Giờ Ecuador", "WART": "Giờ chuẩn miền mây Argentina", "GMT": "Giờ Trung bình Greenwich", "NZDT": "Giờ Mùa Hè New Zealand", "IST": "Giờ Chuẩn Ấn Độ", "TMST": "Giờ Mùa Hè Turkmenistan", "HEPMX": "Giờ Mùa Hè Thái Bình Dương Mexico", "WIB": "Giờ Miền Tây Indonesia", "HAST": "Giờ Chuẩn Hawaii-Aleutian", "HADT": "Giờ Mùa Hè Hawaii-Aleutian", "VET": "Giờ Venezuela", "∅∅∅": "Giờ Mùa Hè Peru", "OEZ": "Giờ Chuẩn Đông Âu", "HNCU": "Giờ Chuẩn Cuba", "MESZ": "Giờ Mùa Hè Trung Âu", "CLT": "Giờ Chuẩn Chile", "BOT": "Giờ Bolivia", "PDT": "Giờ Mùa hè Thái Bình Dương", "HNOG": "Giờ Chuẩn Miền Tây Greenland", "CHAST": "Giờ Chuẩn Chatham", "WIT": "Giờ Miền Đông Indonesia", "HNNOMX": "Giờ Chuẩn Tây Bắc Mexico", "SGT": "Giờ Singapore", "ADT": "Giờ Mùa hè Đại Tây Dương", "SAST": "Giờ Chuẩn Nam Phi", "WAST": "Giờ Mùa Hè Tây Phi", "HAT": "Giờ Mùa Hè Newfoundland", "LHST": "Giờ Chuẩn Lord Howe", "HEEG": "Giờ Mùa Hè Miền Đông Greenland", "HNPMX": "Giờ Chuẩn Thái Bình Dương Mexico", "ARST": "Giờ Mùa Hè Argentina", "WITA": "Giờ Miền Trung Indonesia", "CDT": "Giờ mùa hè miền trung", "HENOMX": "Giờ Mùa Hè Tây Bắc Mexico", "EST": "Giờ chuẩn miền đông", "MST": "Giờ Chuẩn Ma Cao", "HNEG": "Giờ Chuẩn Miền Đông Greenland", "OESZ": "Giờ Mùa Hè Đông Âu", "BT": "Giờ Bhutan", "HEOG": "Giờ Mùa Hè Miền Tây Greenland", "EAT": "Giờ Đông Phi", "EDT": "Giờ mùa hè miền đông", "AKST": "Giờ Chuẩn Alaska", "AWST": "Giờ Chuẩn Miền Tây Nước Úc", "HKST": "Giờ Mùa Hè Hồng Kông", "AEDT": "Giờ Mùa Hè Miền Đông Nước Úc", "TMT": "Giờ Chuẩn Turkmenistan", "ACST": "Giờ Chuẩn Miền Trung Nước Úc", "COT": "Giờ Chuẩn Colombia", "HECU": "Giờ Mùa Hè Cuba", "WESZ": "Giờ Mùa hè Tây Âu", "PST": "Giờ chuẩn Thái Bình Dương", "NZST": "Giờ Chuẩn New Zealand", "CHADT": "Giờ Mùa Hè Chatham", "JDT": "Giờ Mùa Hè Nhật Bản", "ChST": "Giờ Chamorro", "WARST": "Giờ mùa hè miền tây Argentina", "CST": "Giờ chuẩn miền trung", "GYT": "Giờ Guyana", "AST": "Giờ Chuẩn Đại Tây Dương", "ACWST": "Giờ Chuẩn Miền Trung Tây Nước Úc", "ACWDT": "Giờ Mùa Hè Miền Trung Tây Nước Úc", "ACDT": "Giờ Mùa Hè Miền Trung Nước Úc", "WAT": "Giờ Chuẩn Tây Phi", "MDT": "Giờ Mùa Hè Ma Cao", "UYT": "Giờ Chuẩn Uruguay", "AKDT": "Giờ Mùa Hè Alaska", "HEPM": "Giờ Mùa Hè Saint Pierre và Miquelon", "CLST": "Giờ Mùa Hè Chile", "JST": "Giờ Chuẩn Nhật Bản", "COST": "Giờ Mùa Hè Colombia", "MYT": "Giờ Malaysia", "UYST": "Giờ Mùa Hè Uruguay", "CAT": "Giờ Trung Phi", "ART": "Giờ Chuẩn Argentina"},
+ timezones: map[string]string{"JDT": "Giờ Mùa Hè Nhật Bản", "AST": "Giờ Chuẩn Đại Tây Dương", "OESZ": "Giờ Mùa Hè Đông Âu", "TMST": "Giờ Mùa Hè Turkmenistan", "HNNOMX": "Giờ Chuẩn Tây Bắc Mexico", "GYT": "Giờ Guyana", "OEZ": "Giờ Chuẩn Đông Âu", "CHAST": "Giờ Chuẩn Chatham", "PST": "Giờ chuẩn Thái Bình Dương", "CLST": "Giờ Mùa Hè Chile", "COST": "Giờ Mùa Hè Colombia", "HNT": "Giờ Chuẩn Newfoundland", "GFT": "Giờ Guiana thuộc Pháp", "LHST": "Giờ Chuẩn Lord Howe", "ACDT": "Giờ Mùa Hè Miền Trung Nước Úc", "BT": "Giờ Bhutan", "HNCU": "Giờ Chuẩn Cuba", "CHADT": "Giờ Mùa Hè Chatham", "VET": "Giờ Venezuela", "WAT": "Giờ Chuẩn Tây Phi", "HNEG": "Giờ Chuẩn Miền Đông Greenland", "HECU": "Giờ Mùa Hè Cuba", "HAST": "Giờ Chuẩn Hawaii-Aleutian", "CLT": "Giờ Chuẩn Chile", "WAST": "Giờ Mùa Hè Tây Phi", "HKT": "Giờ Chuẩn Hồng Kông", "AEDT": "Giờ Mùa Hè Miền Đông Nước Úc", "WITA": "Giờ Miền Trung Indonesia", "AKST": "Giờ Chuẩn Alaska", "WIB": "Giờ Miền Tây Indonesia", "BOT": "Giờ Bolivia", "NZST": "Giờ Chuẩn New Zealand", "MYT": "Giờ Malaysia", "MST": "Giờ Chuẩn Ma Cao", "HEPM": "Giờ Mùa Hè Saint Pierre và Miquelon", "ACWST": "Giờ Chuẩn Miền Trung Tây Nước Úc", "MEZ": "Giờ Chuẩn Trung Âu", "HEOG": "Giờ Mùa Hè Miền Tây Greenland", "MDT": "Giờ Mùa Hè Ma Cao", "SRT": "Giờ Suriname", "WARST": "Giờ mùa hè miền tây Argentina", "HNOG": "Giờ Chuẩn Miền Tây Greenland", "ART": "Giờ Chuẩn Argentina", "LHDT": "Giờ Mùa Hè Lord Howe", "NZDT": "Giờ Mùa Hè New Zealand", "GMT": "Giờ Trung bình Greenwich", "ADT": "Giờ Mùa hè Đại Tây Dương", "EST": "Giờ chuẩn miền đông", "ACST": "Giờ Chuẩn Miền Trung Nước Úc", "IST": "Giờ Chuẩn Ấn Độ", "ARST": "Giờ Mùa Hè Argentina", "HEEG": "Giờ Mùa Hè Miền Đông Greenland", "UYT": "Giờ Chuẩn Uruguay", "AWST": "Giờ Chuẩn Miền Tây Nước Úc", "AWDT": "Giờ Mùa Hè Miền Tây Nước Úc", "WART": "Giờ chuẩn miền mây Argentina", "HKST": "Giờ Mùa Hè Hồng Kông", "HENOMX": "Giờ Mùa Hè Tây Bắc Mexico", "HNPMX": "Giờ Chuẩn Thái Bình Dương Mexico", "WESZ": "Giờ Mùa hè Tây Âu", "TMT": "Giờ Chuẩn Turkmenistan", "∅∅∅": "Giờ Mùa Hè Acre", "UYST": "Giờ Mùa Hè Uruguay", "PDT": "Giờ Mùa hè Thái Bình Dương", "JST": "Giờ Chuẩn Nhật Bản", "ChST": "Giờ Chamorro", "SAST": "Giờ Chuẩn Nam Phi", "HEPMX": "Giờ Mùa Hè Thái Bình Dương Mexico", "ECT": "Giờ Ecuador", "CAT": "Giờ Trung Phi", "ACWDT": "Giờ Mùa Hè Miền Trung Tây Nước Úc", "WEZ": "Giờ Chuẩn Tây Âu", "COT": "Giờ Chuẩn Colombia", "HNPM": "Giờ Chuẩn St. Pierre và Miquelon", "CST": "Giờ chuẩn miền trung", "CDT": "Giờ mùa hè miền trung", "WIT": "Giờ Miền Đông Indonesia", "MESZ": "Giờ Mùa Hè Trung Âu", "EDT": "Giờ mùa hè miền đông", "HAT": "Giờ Mùa Hè Newfoundland", "AEST": "Giờ Chuẩn Miền Đông Nước Úc", "AKDT": "Giờ Mùa Hè Alaska", "EAT": "Giờ Đông Phi", "SGT": "Giờ Singapore", "HADT": "Giờ Mùa Hè Hawaii-Aleutian"},
}
}
diff --git a/vo/vo.go b/vo/vo.go
index 6c29b878..0557e7f2 100644
--- a/vo/vo.go
+++ b/vo/vo.go
@@ -57,7 +57,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"b. t. kr.", "p. t. kr."},
erasNarrow: []string{"", ""},
erasWide: []string{"b. t. kr.", "p. t. kr."},
- timezones: map[string]string{"WEZ": "WEZ", "AEDT": "AEDT", "AKDT": "AKDT", "ADT": "ADT", "GYT": "GYT", "MESZ": "MESZ", "COST": "COST", "ART": "ART", "MEZ": "MEZ", "CLST": "CLST", "BOT": "BOT", "∅∅∅": "∅∅∅", "OESZ": "OESZ", "HNNOMX": "HNNOMX", "MDT": "MDT", "MYT": "MYT", "CDT": "CDT", "HADT": "HADT", "HNEG": "HNEG", "ACST": "ACST", "WESZ": "WESZ", "ACWDT": "ACWDT", "NZDT": "NZDT", "JST": "JST", "HECU": "HECU", "SRT": "SRT", "AST": "AST", "WIT": "WIT", "HNPM": "HNPM", "LHDT": "LHDT", "OEZ": "OEZ", "MST": "MST", "BT": "BT", "PST": "PST", "ARST": "ARST", "AWDT": "AWDT", "LHST": "LHST", "GFT": "GFT", "SGT": "SGT", "HEPMX": "HEPMX", "CST": "CST", "HNOG": "HNOG", "AEST": "AEST", "HEPM": "HEPM", "WAST": "WAST", "GMT": "GMT", "EDT": "EDT", "AKST": "AKST", "HAST": "HAST", "VET": "VET", "ACWST": "ACWST", "HAT": "HAT", "EAT": "EAT", "HENOMX": "HENOMX", "WITA": "WITA", "JDT": "JDT", "HNPMX": "HNPMX", "AWST": "AWST", "HKT": "HKT", "IST": "IST", "COT": "COT", "PDT": "PDT", "UYT": "UYT", "UYST": "UYST", "CHADT": "CHADT", "ChST": "ChST", "ECT": "ECT", "EST": "EST", "HNT": "HNT", "CLT": "CLT", "ACDT": "ACDT", "WAT": "WAT", "HNCU": "HNCU", "HKST": "HKST", "HEEG": "HEEG", "TMST": "TMST", "WIB": "WIB", "NZST": "NZST", "CHAST": "CHAST", "CAT": "CAT", "WART": "WART", "HEOG": "HEOG", "SAST": "SAST", "TMT": "TMT", "WARST": "WARST"},
+ timezones: map[string]string{"SGT": "SGT", "CAT": "CAT", "HNNOMX": "HNNOMX", "GYT": "GYT", "WIB": "WIB", "AWST": "AWST", "AEST": "AEST", "AKDT": "AKDT", "ECT": "ECT", "ACWDT": "ACWDT", "HADT": "HADT", "MEZ": "MEZ", "MYT": "MYT", "CLT": "CLT", "HENOMX": "HENOMX", "AKST": "AKST", "ChST": "ChST", "HEPMX": "HEPMX", "HKST": "HKST", "MST": "MST", "LHDT": "LHDT", "BOT": "BOT", "JDT": "JDT", "LHST": "LHST", "HECU": "HECU", "HAST": "HAST", "WESZ": "WESZ", "IST": "IST", "WART": "WART", "HNOG": "HNOG", "ADT": "ADT", "NZDT": "NZDT", "OESZ": "OESZ", "WAST": "WAST", "HAT": "HAT", "CDT": "CDT", "AWDT": "AWDT", "PDT": "PDT", "TMST": "TMST", "ACST": "ACST", "HNEG": "HNEG", "AST": "AST", "TMT": "TMT", "SAST": "SAST", "ARST": "ARST", "EDT": "EDT", "ACDT": "ACDT", "COST": "COST", "HEPM": "HEPM", "SRT": "SRT", "HEOG": "HEOG", "COT": "COT", "WITA": "WITA", "CHADT": "CHADT", "GMT": "GMT", "HEEG": "HEEG", "UYT": "UYT", "UYST": "UYST", "WAT": "WAT", "PST": "PST", "JST": "JST", "WEZ": "WEZ", "∅∅∅": "∅∅∅", "BT": "BT", "MDT": "MDT", "GFT": "GFT", "WARST": "WARST", "HNPMX": "HNPMX", "CST": "CST", "WIT": "WIT", "NZST": "NZST", "CLST": "CLST", "OEZ": "OEZ", "AEDT": "AEDT", "HNPM": "HNPM", "EAT": "EAT", "CHAST": "CHAST", "ACWST": "ACWST", "MESZ": "MESZ", "VET": "VET", "EST": "EST", "HNT": "HNT", "HNCU": "HNCU", "ART": "ART", "HKT": "HKT"},
}
}
diff --git a/vo_001/vo_001.go b/vo_001/vo_001.go
index b2248cb9..015cd21a 100644
--- a/vo_001/vo_001.go
+++ b/vo_001/vo_001.go
@@ -57,7 +57,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"b. t. kr.", "p. t. kr."},
erasNarrow: []string{"", ""},
erasWide: []string{"b. t. kr.", "p. t. kr."},
- timezones: map[string]string{"HADT": "HADT", "HNT": "HNT", "ARST": "ARST", "ACWST": "ACWST", "AEST": "AEST", "∅∅∅": "∅∅∅", "HAST": "HAST", "CHADT": "CHADT", "JDT": "JDT", "ECT": "ECT", "EDT": "EDT", "ADT": "ADT", "SRT": "SRT", "ACWDT": "ACWDT", "HKST": "HKST", "HNEG": "HNEG", "HNNOMX": "HNNOMX", "GMT": "GMT", "HAT": "HAT", "SAST": "SAST", "OESZ": "OESZ", "HNOG": "HNOG", "HEOG": "HEOG", "AWST": "AWST", "NZDT": "NZDT", "TMST": "TMST", "ChST": "ChST", "HNPMX": "HNPMX", "IST": "IST", "ACST": "ACST", "GYT": "GYT", "UYT": "UYT", "UYST": "UYST", "LHDT": "LHDT", "CLT": "CLT", "BOT": "BOT", "HEPMX": "HEPMX", "MDT": "MDT", "PDT": "PDT", "MESZ": "MESZ", "JST": "JST", "EST": "EST", "MYT": "MYT", "SGT": "SGT", "MST": "MST", "WIT": "WIT", "AEDT": "AEDT", "NZST": "NZST", "CAT": "CAT", "WAT": "WAT", "COT": "COT", "AKDT": "AKDT", "VET": "VET", "BT": "BT", "CHAST": "CHAST", "WART": "WART", "AST": "AST", "WITA": "WITA", "MEZ": "MEZ", "CLST": "CLST", "WARST": "WARST", "WEZ": "WEZ", "AWDT": "AWDT", "LHST": "LHST", "TMT": "TMT", "HEPM": "HEPM", "COST": "COST", "HENOMX": "HENOMX", "CDT": "CDT", "EAT": "EAT", "CST": "CST", "WAST": "WAST", "WIB": "WIB", "ART": "ART", "WESZ": "WESZ", "HKT": "HKT", "GFT": "GFT", "ACDT": "ACDT", "OEZ": "OEZ", "PST": "PST", "HNPM": "HNPM", "HEEG": "HEEG", "HNCU": "HNCU", "HECU": "HECU", "AKST": "AKST"},
+ timezones: map[string]string{"CST": "CST", "OEZ": "OEZ", "ART": "ART", "HNPM": "HNPM", "IST": "IST", "MST": "MST", "MDT": "MDT", "VET": "VET", "HKST": "HKST", "ACST": "ACST", "HNEG": "HNEG", "AWST": "AWST", "WARST": "WARST", "CLT": "CLT", "HEOG": "HEOG", "BT": "BT", "HEEG": "HEEG", "GYT": "GYT", "CHAST": "CHAST", "BOT": "BOT", "MEZ": "MEZ", "OESZ": "OESZ", "WESZ": "WESZ", "HECU": "HECU", "∅∅∅": "∅∅∅", "HADT": "HADT", "CAT": "CAT", "NZST": "NZST", "GMT": "GMT", "MYT": "MYT", "COST": "COST", "HENOMX": "HENOMX", "AEST": "AEST", "LHST": "LHST", "WIT": "WIT", "SGT": "SGT", "ACWST": "ACWST", "MESZ": "MESZ", "ChST": "ChST", "UYT": "UYT", "AWDT": "AWDT", "HAT": "HAT", "TMT": "TMT", "WAST": "WAST", "AKST": "AKST", "NZDT": "NZDT", "WEZ": "WEZ", "EDT": "EDT", "AKDT": "AKDT", "SRT": "SRT", "WART": "WART", "HNOG": "HNOG", "EST": "EST", "ACDT": "ACDT", "SAST": "SAST", "LHDT": "LHDT", "HNCU": "HNCU", "CHADT": "CHADT", "PST": "PST", "JDT": "JDT", "AST": "AST", "ARST": "ARST", "WAT": "WAT", "COT": "COT", "WIB": "WIB", "HAST": "HAST", "ACWDT": "ACWDT", "JST": "JST", "HKT": "HKT", "HNNOMX": "HNNOMX", "AEDT": "AEDT", "UYST": "UYST", "HEPM": "HEPM", "CDT": "CDT", "ECT": "ECT", "ADT": "ADT", "TMST": "TMST", "HNT": "HNT", "EAT": "EAT", "PDT": "PDT", "CLST": "CLST", "GFT": "GFT", "WITA": "WITA", "HNPMX": "HNPMX", "HEPMX": "HEPMX"},
}
}
diff --git a/vun/vun.go b/vun/vun.go
index 6d71c516..d340429e 100644
--- a/vun/vun.go
+++ b/vun/vun.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Kristu", "Baada ya Kristu"},
- timezones: map[string]string{"HNNOMX": "HNNOMX", "MDT": "MDT", "UYST": "UYST", "WAT": "WAT", "HNPMX": "HNPMX", "CDT": "CDT", "AWST": "AWST", "WITA": "WITA", "MESZ": "MESZ", "GFT": "GFT", "OESZ": "OESZ", "GMT": "GMT", "HNCU": "HNCU", "BT": "BT", "HAT": "HAT", "NZDT": "NZDT", "ECT": "ECT", "ACWST": "ACWST", "AEDT": "AEDT", "WESZ": "WESZ", "ACWDT": "ACWDT", "JDT": "JDT", "TMT": "TMT", "WAST": "WAST", "HAST": "HAST", "PDT": "PDT", "WEZ": "WEZ", "AEST": "AEST", "CAT": "CAT", "SGT": "SGT", "AST": "AST", "HKT": "HKT", "HNPM": "HNPM", "HEPM": "HEPM", "COT": "COT", "EDT": "EDT", "AKST": "AKST", "HNT": "HNT", "ARST": "ARST", "HKST": "HKST", "SAST": "SAST", "CLST": "CLST", "∅∅∅": "∅∅∅", "WARST": "WARST", "ART": "ART", "HNOG": "HNOG", "WIT": "WIT", "MST": "MST", "SRT": "SRT", "ACST": "ACST", "OEZ": "OEZ", "EST": "EST", "PST": "PST", "HEOG": "HEOG", "LHDT": "LHDT", "HADT": "HADT", "VET": "VET", "BOT": "BOT", "EAT": "EAT", "WART": "WART", "HENOMX": "HENOMX", "HECU": "HECU", "MYT": "MYT", "CHADT": "CHADT", "GYT": "GYT", "UYT": "UYT", "CLT": "CLT", "ChST": "ChST", "ACDT": "ACDT", "COST": "COST", "AKDT": "AKDT", "CST": "CST", "WIB": "WIB", "AWDT": "AWDT", "LHST": "LHST", "TMST": "TMST", "HEPMX": "HEPMX", "ADT": "ADT", "NZST": "NZST", "JST": "JST", "HNEG": "HNEG", "HEEG": "HEEG", "MEZ": "MEZ", "CHAST": "CHAST", "IST": "IST"},
+ timezones: map[string]string{"SGT": "SGT", "∅∅∅": "∅∅∅", "UYT": "UYT", "SAST": "SAST", "SRT": "SRT", "EAT": "EAT", "AWDT": "AWDT", "CHADT": "CHADT", "CAT": "CAT", "WAST": "WAST", "HKST": "HKST", "ACDT": "ACDT", "HENOMX": "HENOMX", "AWST": "AWST", "CHAST": "CHAST", "HAST": "HAST", "ACWST": "ACWST", "WESZ": "WESZ", "BT": "BT", "ChST": "ChST", "CST": "CST", "ARST": "ARST", "WAT": "WAT", "HNT": "HNT", "AEDT": "AEDT", "HNPM": "HNPM", "ECT": "ECT", "HADT": "HADT", "AST": "AST", "OEZ": "OEZ", "MEZ": "MEZ", "MYT": "MYT", "TMT": "TMT", "HKT": "HKT", "COT": "COT", "HEEG": "HEEG", "PDT": "PDT", "EST": "EST", "HNOG": "HNOG", "ACST": "ACST", "HNEG": "HNEG", "AKST": "AKST", "LHST": "LHST", "BOT": "BOT", "IST": "IST", "JST": "JST", "HEOG": "HEOG", "ART": "ART", "HAT": "HAT", "AEST": "AEST", "CDT": "CDT", "NZST": "NZST", "WARST": "WARST", "HNPMX": "HNPMX", "HNCU": "HNCU", "ADT": "ADT", "WITA": "WITA", "UYST": "UYST", "HEPMX": "HEPMX", "HECU": "HECU", "WART": "WART", "CLT": "CLT", "CLST": "CLST", "MST": "MST", "GFT": "GFT", "AKDT": "AKDT", "JDT": "JDT", "GMT": "GMT", "WIT": "WIT", "NZDT": "NZDT", "OESZ": "OESZ", "TMST": "TMST", "HNNOMX": "HNNOMX", "WIB": "WIB", "EDT": "EDT", "COST": "COST", "HEPM": "HEPM", "VET": "VET", "MDT": "MDT", "LHDT": "LHDT", "GYT": "GYT", "PST": "PST", "ACWDT": "ACWDT", "MESZ": "MESZ", "WEZ": "WEZ"},
}
}
diff --git a/vun_TZ/vun_TZ.go b/vun_TZ/vun_TZ.go
index bdee9737..d86225c2 100644
--- a/vun_TZ/vun_TZ.go
+++ b/vun_TZ/vun_TZ.go
@@ -59,7 +59,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"KK", "BK"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kabla ya Kristu", "Baada ya Kristu"},
- timezones: map[string]string{"AST": "AST", "MYT": "MYT", "MST": "MST", "MDT": "MDT", "ART": "ART", "WESZ": "WESZ", "CLT": "CLT", "CDT": "CDT", "HEEG": "HEEG", "OESZ": "OESZ", "ChST": "ChST", "WITA": "WITA", "NZST": "NZST", "WAT": "WAT", "EST": "EST", "WIT": "WIT", "GFT": "GFT", "ACST": "ACST", "ACDT": "ACDT", "HENOMX": "HENOMX", "HNPMX": "HNPMX", "∅∅∅": "∅∅∅", "CAT": "CAT", "HNOG": "HNOG", "HEPM": "HEPM", "SGT": "SGT", "HNT": "HNT", "AKST": "AKST", "HAT": "HAT", "HEOG": "HEOG", "AEST": "AEST", "WART": "WART", "UYST": "UYST", "ACWST": "ACWST", "WIB": "WIB", "HKST": "HKST", "HNPM": "HNPM", "MESZ": "MESZ", "LHST": "LHST", "JDT": "JDT", "WARST": "WARST", "HNCU": "HNCU", "GYT": "GYT", "HECU": "HECU", "SRT": "SRT", "SAST": "SAST", "TMT": "TMT", "EAT": "EAT", "WAST": "WAST", "COST": "COST", "HNNOMX": "HNNOMX", "CST": "CST", "AEDT": "AEDT", "AWST": "AWST", "JST": "JST", "GMT": "GMT", "HAST": "HAST", "VET": "VET", "BT": "BT", "CHADT": "CHADT", "HADT": "HADT", "PDT": "PDT", "LHDT": "LHDT", "TMST": "TMST", "EDT": "EDT", "UYT": "UYT", "AKDT": "AKDT", "ARST": "ARST", "PST": "PST", "IST": "IST", "CLST": "CLST", "BOT": "BOT", "COT": "COT", "ADT": "ADT", "HNEG": "HNEG", "ECT": "ECT", "HEPMX": "HEPMX", "HKT": "HKT", "AWDT": "AWDT", "OEZ": "OEZ", "ACWDT": "ACWDT", "CHAST": "CHAST", "MEZ": "MEZ", "NZDT": "NZDT", "WEZ": "WEZ"},
+ timezones: map[string]string{"WESZ": "WESZ", "CLT": "CLT", "ACST": "ACST", "COT": "COT", "WITA": "WITA", "CDT": "CDT", "CAT": "CAT", "AKST": "AKST", "EAT": "EAT", "HECU": "HECU", "HKST": "HKST", "HNPM": "HNPM", "ACWST": "ACWST", "ACWDT": "ACWDT", "JDT": "JDT", "OEZ": "OEZ", "HNCU": "HNCU", "CST": "CST", "HADT": "HADT", "HNOG": "HNOG", "ART": "ART", "WAST": "WAST", "BT": "BT", "SAST": "SAST", "HNPMX": "HNPMX", "WIB": "WIB", "NZDT": "NZDT", "HKT": "HKT", "COST": "COST", "HNEG": "HNEG", "NZST": "NZST", "VET": "VET", "AST": "AST", "GMT": "GMT", "GYT": "GYT", "PDT": "PDT", "ECT": "ECT", "JST": "JST", "HENOMX": "HENOMX", "HEEG": "HEEG", "ChST": "ChST", "AWST": "AWST", "SGT": "SGT", "MDT": "MDT", "HAT": "HAT", "AEDT": "AEDT", "UYST": "UYST", "AWDT": "AWDT", "IST": "IST", "ADT": "ADT", "CLST": "CLST", "TMST": "TMST", "LHDT": "LHDT", "CHAST": "CHAST", "HEOG": "HEOG", "WARST": "WARST", "ACDT": "ACDT", "HEPMX": "HEPMX", "HAST": "HAST", "TMT": "TMT", "MST": "MST", "HNT": "HNT", "GFT": "GFT", "BOT": "BOT", "MYT": "MYT", "WART": "WART", "ARST": "ARST", "EST": "EST", "HEPM": "HEPM", "LHST": "LHST", "SRT": "SRT", "WEZ": "WEZ", "EDT": "EDT", "HNNOMX": "HNNOMX", "∅∅∅": "∅∅∅", "WAT": "WAT", "AKDT": "AKDT", "AEST": "AEST", "UYT": "UYT", "WIT": "WIT", "PST": "PST", "OESZ": "OESZ", "CHADT": "CHADT", "MEZ": "MEZ", "MESZ": "MESZ"},
}
}
diff --git a/wae/wae.go b/wae/wae.go
index c9fef7b7..caa7a146 100644
--- a/wae/wae.go
+++ b/wae/wae.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"JDT": "JDT", "HNCU": "HNCU", "HKT": "HKT", "SRT": "SRT", "AWDT": "AWDT", "CHAST": "CHAST", "SAST": "SAST", "WAST": "WAST", "HNNOMX": "HNNOMX", "MST": "MST", "CST": "CST", "NZST": "NZST", "VET": "VET", "ART": "ART", "PDT": "PDT", "HNPM": "HNPM", "TMST": "TMST", "ChST": "ChST", "ACST": "ACST", "WARST": "WARST", "HEPMX": "HEPMX", "HNOG": "HNOG", "MEZ": "Mitteleuropäiši Standardzit", "∅∅∅": "∅∅∅", "HNPMX": "HNPMX", "WIB": "WIB", "BT": "BT", "HAT": "HAT", "LHDT": "LHDT", "WART": "WART", "AKDT": "AKDT", "HNT": "HNT", "JST": "JST", "OESZ": "Ošteuropäiši Summerzit", "HENOMX": "HENOMX", "MESZ": "Mitteleuropäiši Summerzit", "IST": "IST", "EST": "EST", "WITA": "WITA", "CHADT": "CHADT", "GFT": "GFT", "TMT": "TMT", "OEZ": "Ošteuropäiši Standardzit", "COT": "COT", "AST": "Atlantiši Standardzit", "LHST": "LHST", "WAT": "WAT", "GMT": "GMT", "MDT": "MDT", "UYST": "UYST", "ACWST": "ACWST", "ACDT": "ACDT", "COST": "COST", "HEOG": "HEOG", "WESZ": "Wešteuropäiši Summerzit", "HNEG": "HNEG", "AKST": "AKST", "AEST": "AEST", "AEDT": "AEDT", "AWST": "AWST", "HKST": "HKST", "HEEG": "HEEG", "CAT": "CAT", "EDT": "EDT", "HAST": "HAST", "NZDT": "NZDT", "CLST": "CLST", "ECT": "ECT", "ARST": "ARST", "ACWDT": "ACWDT", "CLT": "CLT", "SGT": "SGT", "GYT": "GYT", "HADT": "HADT", "PST": "PST", "WEZ": "Wešteuropäiši Standardzit", "MYT": "MYT", "UYT": "UYT", "HEPM": "HEPM", "BOT": "BOT", "EAT": "EAT", "HECU": "HECU", "CDT": "CDT", "ADT": "Atlantiši Summerzit", "WIT": "WIT"},
+ timezones: map[string]string{"CST": "CST", "AWST": "AWST", "ECT": "ECT", "HNOG": "HNOG", "WESZ": "Wešteuropäiši Summerzit", "SAST": "SAST", "MDT": "MDT", "AKDT": "AKDT", "ACWST": "ACWST", "VET": "VET", "JST": "JST", "HEEG": "HEEG", "HNPM": "HNPM", "HEPMX": "HEPMX", "EAT": "EAT", "MESZ": "Mitteleuropäiši Summerzit", "MYT": "MYT", "ACST": "ACST", "AWDT": "AWDT", "CAT": "CAT", "WART": "WART", "CLST": "CLST", "HEOG": "HEOG", "TMST": "TMST", "AEDT": "AEDT", "HENOMX": "HENOMX", "GYT": "GYT", "CHAST": "CHAST", "OEZ": "Ošteuropäiši Standardzit", "ART": "ART", "COT": "COT", "HNCU": "HNCU", "SGT": "SGT", "TMT": "TMT", "ARST": "ARST", "HAT": "HAT", "MST": "MST", "UYT": "UYT", "UYST": "UYST", "LHDT": "LHDT", "HADT": "HADT", "EDT": "EDT", "HNNOMX": "HNNOMX", "ADT": "Atlantiši Summerzit", "OESZ": "Ošteuropäiši Summerzit", "WAT": "WAT", "WAST": "WAST", "NZST": "NZST", "IST": "IST", "MEZ": "Mitteleuropäiši Standardzit", "WARST": "WARST", "HEPM": "HEPM", "∅∅∅": "∅∅∅", "ChST": "ChST", "HECU": "HECU", "BT": "BT", "SRT": "SRT", "BOT": "BOT", "AST": "Atlantiši Standardzit", "GMT": "GMT", "HKST": "HKST", "WITA": "WITA", "GFT": "GFT", "LHST": "LHST", "CHADT": "CHADT", "HAST": "HAST", "WEZ": "Wešteuropäiši Standardzit", "HNT": "HNT", "AKST": "AKST", "HNPMX": "HNPMX", "WIB": "WIB", "WIT": "WIT", "NZDT": "NZDT", "EST": "EST", "HKT": "HKT", "HNEG": "HNEG", "AEST": "AEST", "CDT": "CDT", "ACDT": "ACDT", "ACWDT": "ACWDT", "JDT": "JDT", "CLT": "CLT", "PDT": "PDT", "PST": "PST", "COST": "COST"},
}
}
diff --git a/wae_CH/wae_CH.go b/wae_CH/wae_CH.go
index 905ec502..202398cd 100644
--- a/wae_CH/wae_CH.go
+++ b/wae_CH/wae_CH.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"v. Chr.", "n. Chr"},
erasNarrow: []string{"", ""},
erasWide: []string{"", ""},
- timezones: map[string]string{"MESZ": "Mitteleuropäiši Summerzit", "JDT": "JDT", "ACDT": "ACDT", "OEZ": "Ošteuropäiši Standardzit", "WAST": "WAST", "HNPMX": "HNPMX", "PDT": "PDT", "ECT": "ECT", "AST": "Atlantiši Standardzit", "MYT": "MYT", "OESZ": "Ošteuropäiši Summerzit", "CAT": "CAT", "WARST": "WARST", "HENOMX": "HENOMX", "HNCU": "HNCU", "HECU": "HECU", "BOT": "BOT", "LHST": "LHST", "LHDT": "LHDT", "IST": "IST", "HEPMX": "HEPMX", "ARST": "ARST", "HKT": "HKT", "NZDT": "NZDT", "WAT": "WAT", "COT": "COT", "HNPM": "HNPM", "MEZ": "Mitteleuropäiši Standardzit", "TMT": "TMT", "ACWST": "ACWST", "WITA": "WITA", "ACST": "ACST", "GMT": "GMT", "EDT": "EDT", "MST": "MST", "PST": "PST", "SAST": "SAST", "JST": "JST", "SGT": "SGT", "WIB": "WIB", "HNNOMX": "HNNOMX", "HAT": "HAT", "HNOG": "HNOG", "AEST": "AEST", "AEDT": "AEDT", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "ChST": "ChST", "EST": "EST", "CST": "CST", "HAST": "HAST", "VET": "VET", "HEOG": "HEOG", "ACWDT": "ACWDT", "HNEG": "HNEG", "WART": "WART", "COST": "COST", "HADT": "HADT", "WIT": "WIT", "BT": "BT", "NZST": "NZST", "GFT": "GFT", "MDT": "MDT", "CDT": "CDT", "ART": "ART", "HKST": "HKST", "HEPM": "HEPM", "EAT": "EAT", "UYT": "UYT", "SRT": "SRT", "WEZ": "Wešteuropäiši Standardzit", "WESZ": "Wešteuropäiši Summerzit", "AWDT": "AWDT", "CLT": "CLT", "HEEG": "HEEG", "UYST": "UYST", "HNT": "HNT", "CHADT": "CHADT", "CLST": "CLST", "ADT": "Atlantiši Summerzit", "GYT": "GYT", "AWST": "AWST", "TMST": "TMST", "AKST": "AKST", "AKDT": "AKDT"},
+ timezones: map[string]string{"VET": "VET", "CLST": "CLST", "COT": "COT", "COST": "COST", "BT": "BT", "UYT": "UYT", "PDT": "PDT", "SGT": "SGT", "MYT": "MYT", "EST": "EST", "EDT": "EDT", "ACST": "ACST", "HECU": "HECU", "HEOG": "HEOG", "ART": "ART", "AKDT": "AKDT", "SRT": "SRT", "CDT": "CDT", "NZST": "NZST", "CLT": "CLT", "AST": "Atlantiši Standardzit", "TMST": "TMST", "HEEG": "HEEG", "MESZ": "Mitteleuropäiši Summerzit", "OESZ": "Ošteuropäiši Summerzit", "WEZ": "Wešteuropäiši Standardzit", "WESZ": "Wešteuropäiši Summerzit", "HNPM": "HNPM", "LHDT": "LHDT", "GYT": "GYT", "HKT": "HKT", "HENOMX": "HENOMX", "ACDT": "ACDT", "WITA": "WITA", "UYST": "UYST", "CHAST": "CHAST", "ACWDT": "ACWDT", "ECT": "ECT", "CAT": "CAT", "MDT": "MDT", "HNEG": "HNEG", "HNPMX": "HNPMX", "SAST": "SAST", "CST": "CST", "BOT": "BOT", "HADT": "HADT", "JST": "JST", "HNNOMX": "HNNOMX", "WIB": "WIB", "OEZ": "Ošteuropäiši Standardzit", "GMT": "GMT", "HNOG": "HNOG", "JDT": "JDT", "TMT": "TMT", "WAST": "WAST", "AKST": "AKST", "WIT": "WIT", "HAST": "HAST", "IST": "IST", "WART": "WART", "WAT": "WAT", "∅∅∅": "∅∅∅", "GFT": "GFT", "HEPMX": "HEPMX", "HNCU": "HNCU", "HKST": "HKST", "LHST": "LHST", "AWST": "AWST", "NZDT": "NZDT", "AEST": "AEST", "EAT": "EAT", "AWDT": "AWDT", "PST": "PST", "ACWST": "ACWST", "ARST": "ARST", "MST": "MST", "CHADT": "CHADT", "MEZ": "Mitteleuropäiši Standardzit", "WARST": "WARST", "AEDT": "AEDT", "HEPM": "HEPM", "HNT": "HNT", "HAT": "HAT", "ChST": "ChST", "ADT": "Atlantiši Summerzit"},
}
}
diff --git a/xog/xog.go b/xog/xog.go
index 3f0a44a6..174c7867 100644
--- a/xog/xog.go
+++ b/xog/xog.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"AZ", "AF"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kulisto nga azilawo", "Kulisto nga affile"},
- timezones: map[string]string{"CST": "CST", "BT": "BT", "SRT": "SRT", "HNT": "HNT", "NZST": "NZST", "SAST": "SAST", "UYT": "UYT", "WAT": "WAT", "NZDT": "NZDT", "CDT": "CDT", "WESZ": "WESZ", "ACWST": "ACWST", "ART": "ART", "HEOG": "HEOG", "HKT": "HKT", "MESZ": "MESZ", "HNNOMX": "HNNOMX", "ACST": "ACST", "GFT": "GFT", "MEZ": "MEZ", "ACDT": "ACDT", "ECT": "ECT", "WIB": "WIB", "AST": "AST", "ACWDT": "ACWDT", "HNPM": "HNPM", "CHAST": "CHAST", "MDT": "MDT", "HECU": "HECU", "UYST": "UYST", "ADT": "ADT", "WIT": "WIT", "WEZ": "WEZ", "AEDT": "AEDT", "HEPM": "HEPM", "HNCU": "HNCU", "TMT": "TMT", "JST": "JST", "MYT": "MYT", "AEST": "AEST", "BOT": "BOT", "COT": "COT", "PDT": "PDT", "WITA": "WITA", "LHDT": "LHDT", "OESZ": "OESZ", "HEPMX": "HEPMX", "WAST": "WAST", "WARST": "WARST", "HADT": "HADT", "PST": "PST", "OEZ": "OEZ", "AKST": "AKST", "VET": "VET", "HAT": "HAT", "CLT": "CLT", "CLST": "CLST", "HAST": "HAST", "EDT": "EDT", "CHADT": "CHADT", "COST": "COST", "HNPMX": "HNPMX", "IST": "IST", "WART": "WART", "GMT": "GMT", "∅∅∅": "∅∅∅", "EST": "EST", "AWDT": "AWDT", "LHST": "LHST", "ChST": "ChST", "TMST": "TMST", "HENOMX": "HENOMX", "EAT": "EAT", "CAT": "CAT", "JDT": "JDT", "HEEG": "HEEG", "AWST": "AWST", "MST": "MST", "AKDT": "AKDT", "GYT": "GYT", "ARST": "ARST", "HNOG": "HNOG", "HKST": "HKST", "HNEG": "HNEG", "SGT": "SGT"},
+ timezones: map[string]string{"HNPMX": "HNPMX", "WIB": "WIB", "SGT": "SGT", "ARST": "ARST", "HAT": "HAT", "AKST": "AKST", "NZDT": "NZDT", "CLT": "CLT", "TMST": "TMST", "GFT": "GFT", "MESZ": "MESZ", "AST": "AST", "TMT": "TMT", "HNEG": "HNEG", "CST": "CST", "AWST": "AWST", "WEZ": "WEZ", "MST": "MST", "MDT": "MDT", "ART": "ART", "HKST": "HKST", "VET": "VET", "HNPM": "HNPM", "SRT": "SRT", "PST": "PST", "WAST": "WAST", "HNT": "HNT", "HEEG": "HEEG", "UYST": "UYST", "WIT": "WIT", "CHADT": "CHADT", "WARST": "WARST", "HEPM": "HEPM", "HEPMX": "HEPMX", "HADT": "HADT", "ACWDT": "ACWDT", "MYT": "MYT", "AKDT": "AKDT", "CDT": "CDT", "JST": "JST", "HNOG": "HNOG", "OESZ": "OESZ", "WAT": "WAT", "HKT": "HKT", "ACDT": "ACDT", "COT": "COT", "AWDT": "AWDT", "CAT": "CAT", "CLST": "CLST", "HEOG": "HEOG", "OEZ": "OEZ", "WESZ": "WESZ", "UYT": "UYT", "HECU": "HECU", "EDT": "EDT", "COST": "COST", "HNNOMX": "HNNOMX", "GYT": "GYT", "HNCU": "HNCU", "HAST": "HAST", "JDT": "JDT", "SAST": "SAST", "CHAST": "CHAST", "NZST": "NZST", "ACST": "ACST", "AEDT": "AEDT", "ChST": "ChST", "ECT": "ECT", "MEZ": "MEZ", "WART": "WART", "BT": "BT", "WITA": "WITA", "∅∅∅": "∅∅∅", "EAT": "EAT", "BOT": "BOT", "PDT": "PDT", "ACWST": "ACWST", "EST": "EST", "HENOMX": "HENOMX", "AEST": "AEST", "LHST": "LHST", "LHDT": "LHDT", "IST": "IST", "ADT": "ADT", "GMT": "GMT"},
}
}
diff --git a/xog_UG/xog_UG.go b/xog_UG/xog_UG.go
index 1c064d87..b4fd2ce8 100644
--- a/xog_UG/xog_UG.go
+++ b/xog_UG/xog_UG.go
@@ -63,7 +63,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"AZ", "AF"},
erasNarrow: []string{"", ""},
erasWide: []string{"Kulisto nga azilawo", "Kulisto nga affile"},
- timezones: map[string]string{"WAST": "WAST", "HAT": "HAT", "MESZ": "MESZ", "JST": "JST", "TMT": "TMT", "OESZ": "OESZ", "ChST": "ChST", "MST": "MST", "AWDT": "AWDT", "LHDT": "LHDT", "ACST": "ACST", "WARST": "WARST", "CDT": "CDT", "UYT": "UYT", "ACWDT": "ACWDT", "ECT": "ECT", "HNNOMX": "HNNOMX", "SGT": "SGT", "HNCU": "HNCU", "AST": "AST", "GYT": "GYT", "AEST": "AEST", "HKST": "HKST", "HNPM": "HNPM", "MEZ": "MEZ", "LHST": "LHST", "BOT": "BOT", "EDT": "EDT", "AKDT": "AKDT", "AWST": "AWST", "CHADT": "CHADT", "GFT": "GFT", "WAT": "WAT", "OEZ": "OEZ", "WART": "WART", "MDT": "MDT", "HADT": "HADT", "ARST": "ARST", "CAT": "CAT", "COT": "COT", "CLST": "CLST", "HENOMX": "HENOMX", "AKST": "AKST", "BT": "BT", "WEZ": "WEZ", "HEOG": "HEOG", "ACDT": "ACDT", "∅∅∅": "∅∅∅", "COST": "COST", "GMT": "GMT", "SRT": "SRT", "HKT": "HKT", "CLT": "CLT", "EST": "EST", "WIB": "WIB", "HAST": "HAST", "TMST": "TMST", "MYT": "MYT", "WIT": "WIT", "ACWST": "ACWST", "NZST": "NZST", "HNPMX": "HNPMX", "CST": "CST", "WESZ": "WESZ", "ART": "ART", "CHAST": "CHAST", "ADT": "ADT", "VET": "VET", "PST": "PST", "PDT": "PDT", "HNOG": "HNOG", "AEDT": "AEDT", "IST": "IST", "HNEG": "HNEG", "HEEG": "HEEG", "EAT": "EAT", "HEPMX": "HEPMX", "UYST": "UYST", "HNT": "HNT", "WITA": "WITA", "HEPM": "HEPM", "SAST": "SAST", "JDT": "JDT", "HECU": "HECU", "NZDT": "NZDT"},
+ timezones: map[string]string{"AEST": "AEST", "CDT": "CDT", "OEZ": "OEZ", "TMT": "TMT", "WAST": "WAST", "AWST": "AWST", "CLT": "CLT", "HEOG": "HEOG", "MDT": "MDT", "EST": "EST", "HKT": "HKT", "HNEG": "HNEG", "WITA": "WITA", "WIB": "WIB", "TMST": "TMST", "MST": "MST", "CHADT": "CHADT", "PST": "PST", "CST": "CST", "AWDT": "AWDT", "HAST": "HAST", "UYT": "UYT", "LHDT": "LHDT", "JST": "JST", "OESZ": "OESZ", "WEZ": "WEZ", "HNPM": "HNPM", "EAT": "EAT", "BOT": "BOT", "IST": "IST", "MESZ": "MESZ", "AST": "AST", "COT": "COT", "HEPM": "HEPM", "WIT": "WIT", "PDT": "PDT", "ACWDT": "ACWDT", "NZST": "NZST", "HNT": "HNT", "WESZ": "WESZ", "EDT": "EDT", "JDT": "JDT", "HEEG": "HEEG", "HECU": "HECU", "SGT": "SGT", "ECT": "ECT", "NZDT": "NZDT", "MEZ": "MEZ", "SAST": "SAST", "ACST": "ACST", "HENOMX": "HENOMX", "GFT": "GFT", "AEDT": "AEDT", "ChST": "ChST", "UYST": "UYST", "WART": "WART", "MYT": "MYT", "COST": "COST", "HNNOMX": "HNNOMX", "LHST": "LHST", "HNPMX": "HNPMX", "SRT": "SRT", "HADT": "HADT", "∅∅∅": "∅∅∅", "HKST": "HKST", "HEPMX": "HEPMX", "GYT": "GYT", "HNOG": "HNOG", "AKDT": "AKDT", "GMT": "GMT", "ACDT": "ACDT", "AKST": "AKST", "CHAST": "CHAST", "CAT": "CAT", "VET": "VET", "ART": "ART", "ARST": "ARST", "WAT": "WAT", "BT": "BT", "HNCU": "HNCU", "CLST": "CLST", "ADT": "ADT", "HAT": "HAT", "ACWST": "ACWST", "WARST": "WARST"},
}
}
diff --git a/yav/yav.go b/yav/yav.go
index f59175c3..03bb61dd 100644
--- a/yav/yav.go
+++ b/yav/yav.go
@@ -66,7 +66,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"k.Y.", "+J.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"katikupíen Yésuse", "ékélémkúnupíén n"},
- timezones: map[string]string{"ECT": "ECT", "WART": "WART", "COT": "COT", "AKST": "AKST", "PDT": "PDT", "WEZ": "WEZ", "LHST": "LHST", "JDT": "JDT", "AWST": "AWST", "AWDT": "AWDT", "ACDT": "ACDT", "CLT": "CLT", "HEEG": "HEEG", "TMST": "TMST", "HADT": "HADT", "WESZ": "WESZ", "MEZ": "MEZ", "SAST": "SAST", "WAST": "WAST", "HNNOMX": "HNNOMX", "MST": "MST", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "GYT": "GYT", "HNPM": "HNPM", "HEPM": "HEPM", "SRT": "SRT", "AEDT": "AEDT", "HNOG": "HNOG", "HKT": "HKT", "ACST": "ACST", "HNCU": "HNCU", "WAT": "WAT", "WARST": "WARST", "MDT": "MDT", "UYT": "UYT", "HAST": "HAST", "HEOG": "HEOG", "NZDT": "NZDT", "CHAST": "CHAST", "EST": "EST", "NZST": "NZST", "ChST": "ChST", "GFT": "GFT", "OEZ": "OEZ", "OESZ": "OESZ", "HKST": "HKST", "LHDT": "LHDT", "CLST": "CLST", "GMT": "GMT", "SGT": "SGT", "UYST": "UYST", "AST": "AST", "WIT": "WIT", "ACWST": "ACWST", "CAT": "CAT", "EAT": "EAT", "HNT": "HNT", "WITA": "WITA", "VET": "VET", "HECU": "HECU", "ADT": "ADT", "MYT": "MYT", "CST": "CST", "CDT": "CDT", "ARST": "ARST", "IST": "IST", "JST": "JST", "AKDT": "AKDT", "BT": "BT", "HAT": "HAT", "AEST": "AEST", "CHADT": "CHADT", "HENOMX": "HENOMX", "COST": "COST", "HNEG": "HNEG", "TMT": "TMT", "ART": "ART", "BOT": "BOT", "WIB": "WIB", "EDT": "EDT", "PST": "PST", "ACWDT": "ACWDT", "MESZ": "MESZ", "∅∅∅": "∅∅∅"},
+ timezones: map[string]string{"CAT": "CAT", "VET": "VET", "AST": "AST", "MDT": "MDT", "HNPMX": "HNPMX", "∅∅∅": "∅∅∅", "HNCU": "HNCU", "CDT": "CDT", "HENOMX": "HENOMX", "HNT": "HNT", "PDT": "PDT", "MEZ": "MEZ", "HNOG": "HNOG", "HKT": "HKT", "HKST": "HKST", "ART": "ART", "HNEG": "HNEG", "AEST": "AEST", "WITA": "WITA", "SRT": "SRT", "CHAST": "CHAST", "ACWDT": "ACWDT", "AKDT": "AKDT", "PST": "PST", "EST": "EST", "ACDT": "ACDT", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "HEPM": "HEPM", "LHST": "LHST", "IST": "IST", "WEZ": "WEZ", "HEOG": "HEOG", "AWDT": "AWDT", "CHADT": "CHADT", "WARST": "WARST", "BT": "BT", "CLT": "CLT", "ADT": "ADT", "MST": "MST", "HNPM": "HNPM", "CST": "CST", "ECT": "ECT", "ACWST": "ACWST", "LHDT": "LHDT", "CLST": "CLST", "HAT": "HAT", "AEDT": "AEDT", "AKST": "AKST", "UYT": "UYT", "HAST": "HAST", "GMT": "GMT", "UYST": "UYST", "EAT": "EAT", "HECU": "HECU", "NZST": "NZST", "NZDT": "NZDT", "WIB": "WIB", "TMT": "TMT", "EDT": "EDT", "COST": "COST", "SAST": "SAST", "SGT": "SGT", "JST": "JST", "TMST": "TMST", "ARST": "ARST", "WART": "WART", "HEEG": "HEEG", "COT": "COT", "WIT": "WIT", "HADT": "HADT", "WESZ": "WESZ", "MYT": "MYT", "ACST": "ACST", "OESZ": "OESZ", "WAT": "WAT", "ChST": "ChST", "HEPMX": "HEPMX", "AWST": "AWST", "BOT": "BOT", "MESZ": "MESZ", "GFT": "GFT", "GYT": "GYT", "JDT": "JDT", "WAST": "WAST"},
}
}
diff --git a/yav_CM/yav_CM.go b/yav_CM/yav_CM.go
index 08bab37e..4a8a985d 100644
--- a/yav_CM/yav_CM.go
+++ b/yav_CM/yav_CM.go
@@ -66,7 +66,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"k.Y.", "+J.C."},
erasNarrow: []string{"", ""},
erasWide: []string{"katikupíen Yésuse", "ékélémkúnupíén n"},
- timezones: map[string]string{"WIB": "WIB", "HEOG": "HEOG", "CAT": "CAT", "WART": "WART", "MYT": "MYT", "GMT": "GMT", "CST": "CST", "CDT": "CDT", "WEZ": "WEZ", "NZST": "NZST", "OESZ": "OESZ", "ECT": "ECT", "COT": "COT", "JST": "JST", "EDT": "EDT", "AKST": "AKST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "UYT": "UYT", "ARST": "ARST", "MEZ": "MEZ", "ACST": "ACST", "ACDT": "ACDT", "COST": "COST", "JDT": "JDT", "PDT": "PDT", "CHADT": "CHADT", "PST": "PST", "AEST": "AEST", "CHAST": "CHAST", "IST": "IST", "HNEG": "HNEG", "WAST": "WAST", "HECU": "HECU", "HNOG": "HNOG", "SAST": "SAST", "ChST": "ChST", "HEEG": "HEEG", "TMST": "TMST", "HADT": "HADT", "HNT": "HNT", "NZDT": "NZDT", "HKT": "HKT", "HKST": "HKST", "LHST": "LHST", "WAT": "WAT", "MDT": "MDT", "ACWDT": "ACWDT", "AWDT": "AWDT", "WITA": "WITA", "CLT": "CLT", "SGT": "SGT", "HNCU": "HNCU", "AST": "AST", "LHDT": "LHDT", "MST": "MST", "AEDT": "AEDT", "AWST": "AWST", "HEPMX": "HEPMX", "ART": "ART", "HAT": "HAT", "TMT": "TMT", "WARST": "WARST", "HAST": "HAST", "SRT": "SRT", "HNPM": "HNPM", "OEZ": "OEZ", "UYST": "UYST", "AKDT": "AKDT", "BT": "BT", "WESZ": "WESZ", "BOT": "BOT", "GFT": "GFT", "ADT": "ADT", "VET": "VET", "WIT": "WIT", "CLST": "CLST", "HNPMX": "HNPMX", "GYT": "GYT", "HEPM": "HEPM", "ACWST": "ACWST", "MESZ": "MESZ", "∅∅∅": "∅∅∅", "EAT": "EAT", "EST": "EST"},
+ timezones: map[string]string{"CHADT": "CHADT", "OESZ": "OESZ", "AST": "AST", "ADT": "ADT", "WAST": "WAST", "HENOMX": "HENOMX", "WIB": "WIB", "AWST": "AWST", "UYT": "UYT", "UYST": "UYST", "ChST": "ChST", "HEPMX": "HEPMX", "HAT": "HAT", "WITA": "WITA", "WARST": "WARST", "AEST": "AEST", "GMT": "GMT", "HEOG": "HEOG", "EDT": "EDT", "HKST": "HKST", "AKST": "AKST", "IST": "IST", "JDT": "JDT", "NZST": "NZST", "MDT": "MDT", "TMT": "TMT", "TMST": "TMST", "HEEG": "HEEG", "ECT": "ECT", "WESZ": "WESZ", "NZDT": "NZDT", "JST": "JST", "MEZ": "MEZ", "OEZ": "OEZ", "MYT": "MYT", "COST": "COST", "EAT": "EAT", "ACWDT": "ACWDT", "HNPMX": "HNPMX", "SAST": "SAST", "HNNOMX": "HNNOMX", "HNT": "HNT", "BOT": "BOT", "MST": "MST", "VET": "VET", "EST": "EST", "ACDT": "ACDT", "AWDT": "AWDT", "HAST": "HAST", "HKT": "HKT", "BT": "BT", "GFT": "GFT", "∅∅∅": "∅∅∅", "HNOG": "HNOG", "SGT": "SGT", "CLST": "CLST", "WAT": "WAT", "AEDT": "AEDT", "AKDT": "AKDT", "HEPM": "HEPM", "HNCU": "HNCU", "WIT": "WIT", "GYT": "GYT", "LHDT": "LHDT", "SRT": "SRT", "MESZ": "MESZ", "ARST": "ARST", "HNEG": "HNEG", "CST": "CST", "CDT": "CDT", "CHAST": "CHAST", "ACST": "ACST", "CAT": "CAT", "WART": "WART", "CLT": "CLT", "ART": "ART", "COT": "COT", "LHST": "LHST", "PDT": "PDT", "HADT": "HADT", "PST": "PST", "WEZ": "WEZ", "HNPM": "HNPM", "HECU": "HECU", "ACWST": "ACWST"},
}
}
diff --git a/yi/yi.go b/yi/yi.go
index 44ac9894..e6c630d7 100644
--- a/yi/yi.go
+++ b/yi/yi.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
daysWide: []string{"זונטיק", "מאָנטיק", "דינסטיק", "מיטוואך", "דאנערשטיק", "פֿרײַטיק", "שבת"},
periodsAbbreviated: []string{"פֿאַרמיטאָג", "נאָכמיטאָג"},
periodsWide: []string{"פֿאַרמיטאָג", "נאָכמיטאָג"},
- timezones: map[string]string{"HEEG": "HEEG", "EST": "EST", "AKST": "AKST", "WIB": "WIB", "HAT": "HAT", "HNEG": "HNEG", "JDT": "JDT", "BOT": "BOT", "EDT": "EDT", "HNPMX": "HNPMX", "HADT": "HADT", "ARST": "ARST", "HKST": "HKST", "JST": "JST", "TMT": "TMT", "WIT": "WIT", "SRT": "SRT", "ACWST": "ACWST", "AEDT": "AEDT", "AWDT": "AWDT", "CHADT": "CHADT", "IST": "IST", "OESZ": "OESZ", "WARST": "WARST", "MDT": "MDT", "CDT": "CDT", "HNT": "HNT", "MESZ": "MESZ", "GYT": "GYT", "HAST": "HAST", "HENOMX": "HENOMX", "MST": "MST", "UYT": "UYT", "UYST": "UYST", "AKDT": "AKDT", "AWST": "AWST", "WITA": "WITA", "CLST": "CLST", "WAT": "WAT", "OEZ": "OEZ", "HNNOMX": "HNNOMX", "SGT": "SGT", "HNCU": "HNCU", "HECU": "HECU", "PDT": "PDT", "CST": "CST", "HNPM": "HNPM", "CLT": "CLT", "ACDT": "ACDT", "WEZ": "WEZ", "WESZ": "WESZ", "HNOG": "HNOG", "HEOG": "HEOG", "MEZ": "MEZ", "CAT": "CAT", "COT": "COT", "COST": "COST", "BT": "BT", "ART": "ART", "NZST": "NZST", "WAST": "WAST", "ECT": "ECT", "WART": "WART", "ADT": "ADT", "PST": "PST", "SAST": "SAST", "TMST": "TMST", "GMT": "GMT", "LHDT": "LHDT", "AST": "AST", "HKT": "HKT", "CHAST": "CHAST", "GFT": "GFT", "EAT": "EAT", "HEPMX": "HEPMX", "MYT": "MYT", "VET": "VET", "AEST": "AEST", "LHST": "LHST", "ACST": "ACST", "∅∅∅": "∅∅∅", "ACWDT": "ACWDT", "HEPM": "HEPM", "NZDT": "NZDT", "ChST": "ChST"},
+ timezones: map[string]string{"OEZ": "OEZ", "EST": "EST", "AEST": "AEST", "AWDT": "AWDT", "GMT": "GMT", "CLT": "CLT", "TMT": "TMT", "ChST": "ChST", "UYT": "UYT", "HNCU": "HNCU", "WESZ": "WESZ", "HNNOMX": "HNNOMX", "BT": "BT", "LHDT": "LHDT", "HEPMX": "HEPMX", "JST": "JST", "HKST": "HKST", "EAT": "EAT", "WIB": "WIB", "HAST": "HAST", "JDT": "JDT", "WARST": "WARST", "ART": "ART", "AEDT": "AEDT", "SRT": "SRT", "CHADT": "CHADT", "NZDT": "NZDT", "MDT": "MDT", "BOT": "BOT", "HADT": "HADT", "IST": "IST", "AST": "AST", "ADT": "ADT", "CDT": "CDT", "SGT": "SGT", "PST": "PST", "ACWDT": "ACWDT", "HNT": "HNT", "HAT": "HAT", "AKDT": "AKDT", "HNPM": "HNPM", "HECU": "HECU", "COST": "COST", "HNEG": "HNEG", "HEEG": "HEEG", "∅∅∅": "∅∅∅", "AKST": "AKST", "SAST": "SAST", "ECT": "ECT", "ACWST": "ACWST", "WEZ": "WEZ", "TMST": "TMST", "EDT": "EDT", "GFT": "GFT", "HNPMX": "HNPMX", "AWST": "AWST", "MYT": "MYT", "ARST": "ARST", "WAT": "WAT", "ACDT": "ACDT", "CHAST": "CHAST", "PDT": "PDT", "CAT": "CAT", "MEZ": "MEZ", "WAST": "WAST", "COT": "COT", "HENOMX": "HENOMX", "VET": "VET", "UYST": "UYST", "LHST": "LHST", "CLST": "CLST", "MST": "MST", "HKT": "HKT", "HEPM": "HEPM", "CST": "CST", "NZST": "NZST", "HEOG": "HEOG", "WART": "WART", "ACST": "ACST", "WITA": "WITA", "GYT": "GYT", "WIT": "WIT", "MESZ": "MESZ", "HNOG": "HNOG", "OESZ": "OESZ"},
}
}
diff --git a/yi_001/yi_001.go b/yi_001/yi_001.go
index abeca58b..22fcce63 100644
--- a/yi_001/yi_001.go
+++ b/yi_001/yi_001.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
daysWide: []string{"זונטיק", "מאָנטיק", "דינסטיק", "מיטוואך", "דאנערשטיק", "פֿרײַטיק", "שבת"},
periodsAbbreviated: []string{"פֿאַרמיטאָג", "נאָכמיטאָג"},
periodsWide: []string{"פֿאַרמיטאָג", "נאָכמיטאָג"},
- timezones: map[string]string{"HKT": "HKT", "WITA": "WITA", "CLST": "CLST", "ChST": "ChST", "OEZ": "OEZ", "HECU": "HECU", "HNPMX": "HNPMX", "CST": "CST", "AST": "AST", "AWST": "AWST", "LHDT": "LHDT", "ACWDT": "ACWDT", "HAT": "HAT", "HEOG": "HEOG", "LHST": "LHST", "ART": "ART", "AWDT": "AWDT", "CHADT": "CHADT", "GMT": "GMT", "EDT": "EDT", "MST": "MST", "ADT": "ADT", "IST": "IST", "∅∅∅": "∅∅∅", "WART": "WART", "COT": "COT", "HNOG": "HNOG", "CHAST": "CHAST", "ACST": "ACST", "ACWST": "ACWST", "HNT": "HNT", "MEZ": "MEZ", "MESZ": "MESZ", "NZST": "NZST", "JST": "JST", "TMST": "TMST", "WAT": "WAT", "HADT": "HADT", "MDT": "MDT", "AKST": "AKST", "AKDT": "AKDT", "CDT": "CDT", "WIB": "WIB", "WIT": "WIT", "HNEG": "HNEG", "SGT": "SGT", "HAST": "HAST", "ARST": "ARST", "AEDT": "AEDT", "WAST": "WAST", "WARST": "WARST", "AEST": "AEST", "HKST": "HKST", "HNPM": "HNPM", "HEPM": "HEPM", "HEPMX": "HEPMX", "VET": "VET", "WEZ": "WEZ", "WESZ": "WESZ", "CLT": "CLT", "ACDT": "ACDT", "HEEG": "HEEG", "GFT": "GFT", "OESZ": "OESZ", "PST": "PST", "NZDT": "NZDT", "JDT": "JDT", "EAT": "EAT", "ECT": "ECT", "MYT": "MYT", "SRT": "SRT", "PDT": "PDT", "SAST": "SAST", "COST": "COST", "HNNOMX": "HNNOMX", "HENOMX": "HENOMX", "HNCU": "HNCU", "GYT": "GYT", "UYT": "UYT", "UYST": "UYST", "BOT": "BOT", "TMT": "TMT", "CAT": "CAT", "EST": "EST", "BT": "BT"},
+ timezones: map[string]string{"MESZ": "MESZ", "EDT": "EDT", "ECT": "ECT", "WIB": "WIB", "MEZ": "MEZ", "AST": "AST", "HENOMX": "HENOMX", "SAST": "SAST", "CHAST": "CHAST", "CAT": "CAT", "ACST": "ACST", "AEST": "AEST", "HEPMX": "HEPMX", "EAT": "EAT", "AWST": "AWST", "BOT": "BOT", "ACWST": "ACWST", "OEZ": "OEZ", "COST": "COST", "LHST": "LHST", "HECU": "HECU", "SGT": "SGT", "PDT": "PDT", "CLT": "CLT", "∅∅∅": "∅∅∅", "ARST": "ARST", "CST": "CST", "LHDT": "LHDT", "SRT": "SRT", "HNCU": "HNCU", "NZDT": "NZDT", "MYT": "MYT", "HKT": "HKT", "WITA": "WITA", "HNT": "HNT", "HEOG": "HEOG", "ART": "ART", "EST": "EST", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "BT": "BT", "GFT": "GFT", "UYST": "UYST", "HEPM": "HEPM", "HNPMX": "HNPMX", "CDT": "CDT", "HADT": "HADT", "IST": "IST", "HAT": "HAT", "AWDT": "AWDT", "WART": "WART", "HNOG": "HNOG", "TMST": "TMST", "HKST": "HKST", "HEEG": "HEEG", "HAST": "HAST", "VET": "VET", "JDT": "JDT", "OESZ": "OESZ", "HNPM": "HNPM", "UYT": "UYT", "WAT": "WAT", "MDT": "MDT", "AKST": "AKST", "ChST": "ChST", "WIT": "WIT", "ADT": "ADT", "WEZ": "WEZ", "COT": "COT", "MST": "MST", "NZST": "NZST", "AKDT": "AKDT", "CHADT": "CHADT", "ACWDT": "ACWDT", "WARST": "WARST", "CLST": "CLST", "TMT": "TMT", "HNEG": "HNEG", "GYT": "GYT", "PST": "PST", "JST": "JST", "WESZ": "WESZ", "GMT": "GMT", "WAST": "WAST", "AEDT": "AEDT"},
}
}
diff --git a/yo/yo.go b/yo/yo.go
index bac72e8e..7a1b6628 100644
--- a/yo/yo.go
+++ b/yo/yo.go
@@ -70,7 +70,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"Saju Kristi", "Lehin Kristi"},
- timezones: map[string]string{"HEEG": "HEEG", "ACST": "ACST", "ADT": "ADT", "WITA": "WITA", "SAST": "SAST", "JDT": "JDT", "HNCU": "HNCU", "EST": "EST", "HNPMX": "HNPMX", "ART": "ART", "HKT": "HKT", "HEPM": "HEPM", "MESZ": "MESZ", "LHDT": "LHDT", "CLST": "CLST", "AEST": "AEST", "HNPM": "HNPM", "VET": "VET", "EAT": "EAT", "WAT": "WAT", "TMT": "TMT", "ACDT": "ACDT", "HEPMX": "HEPMX", "AKDT": "AKDT", "PST": "PST", "ChST": "ChST", "HNEG": "HNEG", "SGT": "SGT", "WEZ": "WEZ", "HNOG": "HNOG", "HKST": "HKST", "OEZ": "OEZ", "WIB": "WIB", "BT": "BT", "HNT": "HNT", "ARST": "ARST", "AEDT": "AEDT", "WAST": "WAST", "HAST": "HAST", "ACWDT": "ACWDT", "HEOG": "HEOG", "BOT": "BOT", "UYT": "UYT", "GYT": "GYT", "WIT": "WIT", "HENOMX": "HENOMX", "MDT": "MDT", "CAT": "CAT", "WART": "WART", "COST": "COST", "MEZ": "MEZ", "CLT": "CLT", "AST": "AST", "∅∅∅": "∅∅∅", "COT": "COT", "ECT": "ECT", "WARST": "WARST", "EDT": "EDT", "UYST": "UYST", "CST": "CST", "ACWST": "ACWST", "CHADT": "CHADT", "OESZ": "OESZ", "IST": "IST", "GFT": "GFT", "AWST": "AWST", "NZDT": "NZDT", "MST": "MST", "AKST": "AKST", "CDT": "CDT", "WESZ": "WESZ", "JST": "JST", "HECU": "HECU", "CHAST": "CHAST", "TMST": "TMST", "MYT": "MYT", "HADT": "HADT", "SRT": "SRT", "HAT": "HAT", "AWDT": "AWDT", "NZST": "NZST", "GMT": "GMT", "PDT": "PDT", "LHST": "LHST", "HNNOMX": "HNNOMX"},
+ timezones: map[string]string{"WEZ": "WEZ", "COT": "COT", "COST": "COST", "ChST": "ChST", "LHST": "LHST", "SRT": "SRT", "WIB": "WIB", "MYT": "MYT", "CLT": "CLT", "TMST": "TMST", "ACWDT": "ACWDT", "GMT": "GMT", "ARST": "ARST", "WAT": "WAT", "EST": "EST", "GFT": "GFT", "HEOG": "HEOG", "LHDT": "LHDT", "HAST": "HAST", "CAT": "CAT", "IST": "IST", "ACDT": "ACDT", "AEST": "AEST", "HECU": "HECU", "NZST": "NZST", "WESZ": "WESZ", "MDT": "MDT", "ART": "ART", "HNNOMX": "HNNOMX", "∅∅∅": "∅∅∅", "PST": "PST", "HENOMX": "HENOMX", "CDT": "CDT", "VET": "VET", "ADT": "ADT", "AKDT": "AKDT", "AST": "AST", "BT": "BT", "AKST": "AKST", "HNCU": "HNCU", "CHADT": "CHADT", "HADT": "HADT", "OEZ": "OEZ", "HEPM": "HEPM", "CST": "CST", "JDT": "JDT", "OESZ": "OESZ", "HKT": "HKT", "SAST": "SAST", "AWST": "AWST", "PDT": "PDT", "BOT": "BOT", "TMT": "TMT", "ACST": "ACST", "HNEG": "HNEG", "UYST": "UYST", "HNPM": "HNPM", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "ECT": "ECT", "WARST": "WARST", "CLST": "CLST", "HKST": "HKST", "HAT": "HAT", "UYT": "UYT", "NZDT": "NZDT", "EDT": "EDT", "WITA": "WITA", "AWDT": "AWDT", "CHAST": "CHAST", "MESZ": "MESZ", "MST": "MST", "HNT": "HNT", "HEEG": "HEEG", "AEDT": "AEDT", "GYT": "GYT", "JST": "JST", "MEZ": "MEZ", "HNOG": "HNOG", "WART": "WART", "WAST": "WAST", "EAT": "EAT", "WIT": "WIT", "SGT": "SGT", "ACWST": "ACWST"},
}
}
diff --git a/yo_BJ/yo_BJ.go b/yo_BJ/yo_BJ.go
index 536e8ee3..987bf2bb 100644
--- a/yo_BJ/yo_BJ.go
+++ b/yo_BJ/yo_BJ.go
@@ -70,7 +70,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"Saju Kristi", "Lehin Kristi"},
- timezones: map[string]string{"WIB": "WIB", "ACWST": "ACWST", "CHADT": "CHADT", "JDT": "JDT", "MEZ": "MEZ", "LHST": "LHST", "TMT": "TMT", "AKDT": "AKDT", "HADT": "HADT", "BT": "BT", "PST": "PST", "AEST": "AEST", "HAST": "HAST", "WIT": "WIT", "ART": "ART", "EAT": "EAT", "HKST": "HKST", "MESZ": "MESZ", "HEEG": "HEEG", "WAST": "WAST", "HNCU": "HNCU", "WEZ": "WEZ", "LHDT": "LHDT", "CLST": "CLST", "OESZ": "OESZ", "WARST": "WARST", "MYT": "MYT", "HNT": "HNT", "SAST": "SAST", "BOT": "BOT", "OEZ": "OEZ", "UYST": "UYST", "CST": "CST", "HNEG": "HNEG", "GFT": "GFT", "SGT": "SGT", "HNOG": "HNOG", "ChST": "ChST", "MST": "MST", "SRT": "SRT", "HAT": "HAT", "TMST": "TMST", "ECT": "ECT", "HNNOMX": "HNNOMX", "ADT": "ADT", "HKT": "HKT", "HNPM": "HNPM", "HEPM": "HEPM", "CAT": "CAT", "CLT": "CLT", "∅∅∅": "∅∅∅", "COT": "COT", "CDT": "CDT", "VET": "VET", "WESZ": "WESZ", "ACWDT": "ACWDT", "HEOG": "HEOG", "GMT": "GMT", "HNPMX": "HNPMX", "AST": "AST", "AWST": "AWST", "CHAST": "CHAST", "EST": "EST", "MDT": "MDT", "ARST": "ARST", "HECU": "HECU", "WAT": "WAT", "WART": "WART", "COST": "COST", "AKST": "AKST", "WITA": "WITA", "NZST": "NZST", "NZDT": "NZDT", "ACDT": "ACDT", "HEPMX": "HEPMX", "GYT": "GYT", "JST": "JST", "EDT": "EDT", "ACST": "ACST", "HENOMX": "HENOMX", "UYT": "UYT", "PDT": "PDT", "AEDT": "AEDT", "AWDT": "AWDT", "IST": "IST"},
+ timezones: map[string]string{"HAT": "HAT", "ACWST": "ACWST", "ADT": "ADT", "TMT": "TMT", "HADT": "HADT", "WARST": "WARST", "ARST": "ARST", "AEDT": "AEDT", "HEPMX": "HEPMX", "AWST": "AWST", "WESZ": "WESZ", "ART": "ART", "WAST": "WAST", "EST": "EST", "HKST": "HKST", "CDT": "CDT", "BOT": "BOT", "HNOG": "HNOG", "HENOMX": "HENOMX", "BT": "BT", "HNT": "HNT", "CHADT": "CHADT", "IST": "IST", "UYT": "UYT", "HEPM": "HEPM", "GYT": "GYT", "COST": "COST", "HECU": "HECU", "OESZ": "OESZ", "EDT": "EDT", "COT": "COT", "AEST": "AEST", "HNCU": "HNCU", "MESZ": "MESZ", "HNPM": "HNPM", "SRT": "SRT", "HNNOMX": "HNNOMX", "CAT": "CAT", "GMT": "GMT", "TMST": "TMST", "HEEG": "HEEG", "HNPMX": "HNPMX", "CST": "CST", "HAST": "HAST", "LHST": "LHST", "ECT": "ECT", "HEOG": "HEOG", "WAT": "WAT", "HKT": "HKT", "HNEG": "HNEG", "GFT": "GFT", "MEZ": "MEZ", "MYT": "MYT", "WIT": "WIT", "PST": "PST", "ACWDT": "ACWDT", "NZDT": "NZDT", "CLST": "CLST", "WITA": "WITA", "AKDT": "AKDT", "∅∅∅": "∅∅∅", "OEZ": "OEZ", "SGT": "SGT", "PDT": "PDT", "NZST": "NZST", "WEZ": "WEZ", "MST": "MST", "SAST": "SAST", "EAT": "EAT", "ChST": "ChST", "WIB": "WIB", "WART": "WART", "AWDT": "AWDT", "ACST": "ACST", "CHAST": "CHAST", "JST": "JST", "JDT": "JDT", "CLT": "CLT", "ACDT": "ACDT", "AKST": "AKST", "UYST": "UYST", "LHDT": "LHDT", "MDT": "MDT", "VET": "VET", "AST": "AST"},
}
}
diff --git a/yo_NG/yo_NG.go b/yo_NG/yo_NG.go
index ab9a276b..df4f6b6e 100644
--- a/yo_NG/yo_NG.go
+++ b/yo_NG/yo_NG.go
@@ -70,7 +70,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"", ""},
erasNarrow: []string{"", ""},
erasWide: []string{"Saju Kristi", "Lehin Kristi"},
- timezones: map[string]string{"HNCU": "HNCU", "UYT": "UYT", "CST": "CST", "SRT": "SRT", "IST": "IST", "HNEG": "HNEG", "ACDT": "ACDT", "GMT": "GMT", "EST": "EST", "MDT": "MDT", "WESZ": "WESZ", "SAST": "SAST", "CLST": "CLST", "∅∅∅": "∅∅∅", "ChST": "ChST", "CHAST": "CHAST", "EAT": "EAT", "AKDT": "AKDT", "AST": "AST", "HNOG": "HNOG", "BOT": "BOT", "COT": "COT", "CDT": "CDT", "WIT": "WIT", "MYT": "MYT", "ACWST": "ACWST", "HNT": "HNT", "ARST": "ARST", "JST": "JST", "ACST": "ACST", "OEZ": "OEZ", "HEPMX": "HEPMX", "CAT": "CAT", "HECU": "HECU", "WIB": "WIB", "HADT": "HADT", "HAT": "HAT", "AEDT": "AEDT", "WAST": "WAST", "OESZ": "OESZ", "WEZ": "WEZ", "MST": "MST", "UYST": "UYST", "HEOG": "HEOG", "PST": "PST", "HKT": "HKT", "HNPM": "HNPM", "HEPM": "HEPM", "CHADT": "CHADT", "ADT": "ADT", "HAST": "HAST", "LHST": "LHST", "TMT": "TMT", "WARST": "WARST", "GYT": "GYT", "VET": "VET", "AEST": "AEST", "MEZ": "MEZ", "ECT": "ECT", "HENOMX": "HENOMX", "WAT": "WAT", "HNPMX": "HNPMX", "BT": "BT", "ART": "ART", "WITA": "WITA", "MESZ": "MESZ", "LHDT": "LHDT", "GFT": "GFT", "CLT": "CLT", "TMST": "TMST", "HNNOMX": "HNNOMX", "ACWDT": "ACWDT", "SGT": "SGT", "AKST": "AKST", "NZDT": "NZDT", "JDT": "JDT", "HEEG": "HEEG", "COST": "COST", "AWST": "AWST", "NZST": "NZST", "PDT": "PDT", "AWDT": "AWDT", "HKST": "HKST", "WART": "WART", "EDT": "EDT"},
+ timezones: map[string]string{"TMT": "TMT", "WIT": "WIT", "HAST": "HAST", "NZDT": "NZDT", "AST": "AST", "WESZ": "WESZ", "HNEG": "HNEG", "UYT": "UYT", "HNPM": "HNPM", "HNCU": "HNCU", "BOT": "BOT", "WAT": "WAT", "CDT": "CDT", "ACWST": "ACWST", "UYST": "UYST", "WEZ": "WEZ", "ART": "ART", "EST": "EST", "∅∅∅": "∅∅∅", "AKST": "AKST", "WITA": "WITA", "ChST": "ChST", "WIB": "WIB", "AWDT": "AWDT", "MST": "MST", "SAST": "SAST", "HADT": "HADT", "OESZ": "OESZ", "EDT": "EDT", "HEPMX": "HEPMX", "PDT": "PDT", "MEZ": "MEZ", "WARST": "WARST", "COST": "COST", "BT": "BT", "GFT": "GFT", "SRT": "SRT", "AWST": "AWST", "CHADT": "CHADT", "MESZ": "MESZ", "ADT": "ADT", "HNPMX": "HNPMX", "HECU": "HECU", "PST": "PST", "JDT": "JDT", "WART": "WART", "CLT": "CLT", "HNOG": "HNOG", "COT": "COT", "HEPM": "HEPM", "SGT": "SGT", "ACWDT": "ACWDT", "HEOG": "HEOG", "TMST": "TMST", "MDT": "MDT", "AKDT": "AKDT", "LHST": "LHST", "CST": "CST", "CLST": "CLST", "WAST": "WAST", "HKT": "HKT", "HENOMX": "HENOMX", "AEDT": "AEDT", "ECT": "ECT", "CAT": "CAT", "OEZ": "OEZ", "HKST": "HKST", "ACDT": "ACDT", "HNNOMX": "HNNOMX", "HNT": "HNT", "HEEG": "HEEG", "AEST": "AEST", "GYT": "GYT", "MYT": "MYT", "NZST": "NZST", "JST": "JST", "ACST": "ACST", "EAT": "EAT", "CHAST": "CHAST", "VET": "VET", "GMT": "GMT", "ARST": "ARST", "HAT": "HAT", "LHDT": "LHDT", "IST": "IST"},
}
}
diff --git a/yue/yue.go b/yue/yue.go
index 4f147bbb..5bb8c9e0 100644
--- a/yue/yue.go
+++ b/yue/yue.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"西元前", "西元"},
erasNarrow: []string{"西元前", "西元"},
erasWide: []string{"西元前", "西元"},
- timezones: map[string]string{"TMT": "土庫曼標準時間", "OEZ": "東歐標準時間", "HEPM": "聖皮埃爾和密克隆群島夏令時間", "HEPMX": "墨西哥太平洋夏令時間", "ART": "阿根廷標準時間", "HNOG": "格陵蘭西部標準時間", "WITA": "印尼中部時間", "HNPM": "聖皮埃爾和密克隆群島標準時間", "CHAST": "查坦群島標準時間", "CLST": "智利夏令時間", "EDT": "東部夏令時間", "AKST": "阿拉斯加標準時間", "ACWST": "澳洲中西部標準時間", "AWDT": "澳洲西部夏令時間", "ACST": "澳洲中部標準時間", "ACDT": "澳洲中部夏令時間", "WAST": "西非夏令時間", "SGT": "新加坡標準時間", "HNCU": "古巴標準時間", "PDT": "太平洋夏令時間", "BOT": "玻利維亞時間", "UYT": "烏拉圭標準時間", "GYT": "蓋亞那時間", "HNT": "紐芬蘭標準時間", "HAT": "紐芬蘭夏令時間", "HNPMX": "墨西哥太平洋標準時間", "ARST": "阿根廷夏令時間", "JDT": "日本夏令時間", "CAT": "中非時間", "GMT": "格林威治標準時間", "WIT": "印尼東部時間", "HKT": "香港標準時間", "MESZ": "中歐夏令時間", "HEEG": "格陵蘭東部夏令時間", "HNNOMX": "墨西哥西北部標準時間", "ACWDT": "澳洲中西部夏令時間", "ADT": "大西洋夏令時間", "MEZ": "中歐標準時間", "NZDT": "紐西蘭夏令時間", "CLT": "智利標準時間", "OESZ": "東歐夏令時間", "MST": "澳門標準時間", "AST": "大西洋標準時間", "NZST": "紐西蘭標準時間", "ChST": "查莫洛時間", "EAT": "東非時間", "CDT": "中部夏令時間", "AEDT": "澳洲東部夏令時間", "HADT": "夏威夷-阿留申夏令時間", "WEZ": "西歐標準時間", "LHDT": "豪勳爵島夏令時間", "CHADT": "查坦群島夏令時間", "JST": "日本標準時間", "AKDT": "阿拉斯加夏令時間", "MYT": "馬來西亞時間", "WIB": "印尼西部時間", "HEOG": "格陵蘭西部夏令時間", "AWST": "澳洲西部標準時間", "COT": "哥倫比亞標準時間", "HENOMX": "墨西哥西北部夏令時間", "MDT": "澳門夏令時間", "UYST": "烏拉圭夏令時間", "VET": "委內瑞拉時間", "BT": "不丹時間", "∅∅∅": "亞馬遜夏令時間", "HNEG": "格陵蘭東部標準時間", "WESZ": "西歐夏令時間", "AEST": "澳洲東部標準時間", "PST": "太平洋標準時間", "IST": "印度標準時間", "TMST": "土庫曼夏令時間", "ECT": "厄瓜多時間", "COST": "哥倫比亞夏令時間", "EST": "東部標準時間", "HAST": "夏威夷-阿留申標準時間", "HKST": "香港夏令時間", "LHST": "豪勳爵島標準時間", "SAST": "南非標準時間", "GFT": "法屬圭亞那時間", "WART": "阿根廷西部標準時間", "HECU": "古巴夏令時間", "SRT": "蘇利南時間", "WAT": "西非標準時間", "WARST": "阿根廷西部夏令時間", "CST": "中部標準時間"},
+ timezones: map[string]string{"HEEG": "格陵蘭東部夏令時間", "WITA": "印尼中部時間", "WIT": "印尼東部時間", "AWST": "澳洲西部標準時間", "NZDT": "紐西蘭夏令時間", "JST": "日本標準時間", "CLST": "智利夏令時間", "OESZ": "東歐夏令時間", "WESZ": "西歐夏令時間", "UYT": "烏拉圭標準時間", "LHST": "豪勳爵島標準時間", "HNPMX": "墨西哥太平洋標準時間", "SGT": "新加坡標準時間", "EST": "東部標準時間", "HNNOMX": "墨西哥西北部標準時間", "SAST": "南非標準時間", "PDT": "太平洋夏令時間", "BT": "不丹時間", "AKDT": "阿拉斯加夏令時間", "ChST": "查莫洛時間", "CDT": "中部夏令時間", "NZST": "紐西蘭標準時間", "JDT": "日本夏令時間", "MYT": "馬來西亞時間", "HENOMX": "墨西哥西北部夏令時間", "TMST": "土庫曼夏令時間", "ART": "阿根廷標準時間", "HAT": "紐芬蘭夏令時間", "HNPM": "聖皮埃爾和密克隆群島標準時間", "AST": "大西洋標準時間", "HEPM": "聖皮埃爾和密克隆群島夏令時間", "HAST": "夏威夷-阿留申標準時間", "ACWDT": "澳洲中西部夏令時間", "OEZ": "東歐標準時間", "COT": "哥倫比亞標準時間", "HNT": "紐芬蘭標準時間", "HECU": "古巴夏令時間", "WIB": "印尼西部時間", "CHADT": "查坦群島夏令時間", "AEST": "澳洲東部標準時間", "GFT": "法屬圭亞那時間", "GYT": "蓋亞那時間", "BOT": "玻利維亞時間", "IST": "印度標準時間", "HNOG": "格陵蘭西部標準時間", "HNCU": "古巴標準時間", "HADT": "夏威夷-阿留申夏令時間", "MESZ": "中歐夏令時間", "WARST": "阿根廷西部夏令時間", "WAT": "西非標準時間", "HNEG": "格陵蘭東部標準時間", "HKST": "香港夏令時間", "AKST": "阿拉斯加標準時間", "EAT": "東非時間", "CHAST": "查坦群島標準時間", "ECT": "厄瓜多時間", "PST": "太平洋標準時間", "ACWST": "澳洲中西部標準時間", "WART": "阿根廷西部標準時間", "HEOG": "格陵蘭西部夏令時間", "MST": "澳門標準時間", "WAST": "西非夏令時間", "UYST": "烏拉圭夏令時間", "HEPMX": "墨西哥太平洋夏令時間", "MEZ": "中歐標準時間", "CLT": "智利標準時間", "ADT": "大西洋夏令時間", "TMT": "土庫曼標準時間", "MDT": "澳門夏令時間", "ARST": "阿根廷夏令時間", "ACDT": "澳洲中部夏令時間", "AEDT": "澳洲東部夏令時間", "LHDT": "豪勳爵島夏令時間", "∅∅∅": "亞馬遜夏令時間", "VET": "委內瑞拉時間", "ACST": "澳洲中部標準時間", "COST": "哥倫比亞夏令時間", "AWDT": "澳洲西部夏令時間", "CAT": "中非時間", "GMT": "格林威治標準時間", "WEZ": "西歐標準時間", "EDT": "東部夏令時間", "HKT": "香港標準時間", "SRT": "蘇利南時間", "CST": "中部標準時間"},
}
}
diff --git a/yue_HK/yue_HK.go b/yue_HK/yue_HK.go
index 9ee0ccf2..0ee508dd 100644
--- a/yue_HK/yue_HK.go
+++ b/yue_HK/yue_HK.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"西元前", "西元"},
erasNarrow: []string{"西元前", "西元"},
erasWide: []string{"西元前", "西元"},
- timezones: map[string]string{"MDT": "山區夏令時間", "HADT": "夏威夷-阿留申夏令時間", "GFT": "法屬圭亞那時間", "WART": "阿根廷西部標準時間", "UYST": "烏拉圭夏令時間", "BT": "不丹時間", "HEOG": "格陵蘭西部夏令時間", "CHADT": "查坦群島夏令時間", "HNEG": "格陵蘭東部標準時間", "EDT": "東部夏令時間", "WEZ": "西歐標準時間", "WESZ": "西歐夏令時間", "JST": "日本標準時間", "BOT": "玻利維亞時間", "HEEG": "格陵蘭東部夏令時間", "HECU": "古巴夏令時間", "∅∅∅": "亞馬遜夏令時間", "ART": "阿根廷標準時間", "ARST": "阿根廷夏令時間", "PDT": "太平洋夏令時間", "HNT": "紐芬蘭標準時間", "HAT": "紐芬蘭夏令時間", "HKST": "香港夏令時間", "NZST": "紐西蘭標準時間", "HNCU": "古巴標準時間", "HEPMX": "墨西哥太平洋夏令時間", "CST": "中部標準時間", "CDT": "中部夏令時間", "HNPM": "聖皮埃爾和密克隆群島標準時間", "SAST": "南非標準時間", "CLT": "智利標準時間", "TMT": "土庫曼標準時間", "AST": "大西洋標準時間", "HAST": "夏威夷-阿留申標準時間", "ACWDT": "澳洲中西部夏令時間", "OESZ": "東歐夏令時間", "COT": "哥倫比亞標準時間", "COST": "哥倫比亞夏令時間", "ADT": "大西洋夏令時間", "LHDT": "豪勳爵島夏令時間", "JDT": "日本夏令時間", "ECT": "厄瓜多時間", "HKT": "香港標準時間", "AKDT": "阿拉斯加夏令時間", "HNOG": "格陵蘭西部標準時間", "PST": "太平洋標準時間", "HEPM": "聖皮埃爾和密克隆群島夏令時間", "HENOMX": "墨西哥西北部夏令時間", "AEDT": "澳洲東部夏令時間", "MESZ": "中歐夏令時間", "EST": "東部標準時間", "GYT": "蓋亞那時間", "MYT": "馬來西亞時間", "IST": "印度標準時間", "TMST": "土庫曼夏令時間", "ChST": "查莫洛時間", "HNPMX": "墨西哥太平洋標準時間", "AKST": "阿拉斯加標準時間", "WIT": "印尼東部時間", "AWST": "澳洲西部標準時間", "MEZ": "中歐標準時間", "WAT": "西非標準時間", "WAST": "西非夏令時間", "OEZ": "東歐標準時間", "WIB": "印尼西部時間", "AWDT": "澳洲西部夏令時間", "HNNOMX": "墨西哥西北部標準時間", "SRT": "蘇利南時間", "CAT": "中非時間", "GMT": "格林威治標準時間", "WITA": "印尼中部時間", "EAT": "東非時間", "SGT": "新加坡標準時間", "CLST": "智利夏令時間", "MST": "山區標準時間", "VET": "委內瑞拉時間", "ACWST": "澳洲中西部標準時間", "AEST": "澳洲東部標準時間", "LHST": "豪勳爵島標準時間", "NZDT": "紐西蘭夏令時間", "CHAST": "查坦群島標準時間", "ACST": "澳洲中部標準時間", "ACDT": "澳洲中部夏令時間", "WARST": "阿根廷西部夏令時間", "UYT": "烏拉圭標準時間"},
+ timezones: map[string]string{"HEPM": "聖皮埃爾和密克隆群島夏令時間", "WIB": "印尼西部時間", "CHADT": "查坦群島夏令時間", "SGT": "新加坡標準時間", "NZDT": "紐西蘭夏令時間", "BT": "不丹時間", "HAT": "紐芬蘭夏令時間", "HEEG": "格陵蘭東部夏令時間", "SAST": "南非標準時間", "LHST": "豪勳爵島標準時間", "GYT": "蓋亞那時間", "HNCU": "古巴標準時間", "CAT": "中非時間", "HEOG": "格陵蘭西部夏令時間", "HKST": "香港夏令時間", "CHAST": "查坦群島標準時間", "GMT": "格林威治標準時間", "WARST": "阿根廷西部夏令時間", "WESZ": "西歐夏令時間", "ART": "阿根廷標準時間", "COST": "哥倫比亞夏令時間", "HNPMX": "墨西哥太平洋標準時間", "AST": "大西洋標準時間", "MDT": "澳門夏令時間", "HNNOMX": "墨西哥西北部標準時間", "WITA": "印尼中部時間", "HNPM": "聖皮埃爾和密克隆群島標準時間", "SRT": "蘇利南時間", "OEZ": "東歐標準時間", "OESZ": "東歐夏令時間", "HENOMX": "墨西哥西北部夏令時間", "AKDT": "阿拉斯加夏令時間", "WIT": "印尼東部時間", "HAST": "夏威夷-阿留申標準時間", "IST": "印度標準時間", "JDT": "日本夏令時間", "GFT": "法屬圭亞那時間", "MEZ": "中歐標準時間", "CLT": "智利標準時間", "HNT": "紐芬蘭標準時間", "HECU": "古巴夏令時間", "AWST": "澳洲西部標準時間", "VET": "委內瑞拉時間", "WEZ": "西歐標準時間", "AEST": "澳洲東部標準時間", "PDT": "太平洋夏令時間", "WAST": "西非夏令時間", "ACST": "澳洲中部標準時間", "ACDT": "澳洲中部夏令時間", "UYT": "烏拉圭標準時間", "EST": "東部標準時間", "∅∅∅": "亞速爾群島夏令時間", "BOT": "玻利維亞時間", "ECT": "厄瓜多時間", "MYT": "馬來西亞時間", "WART": "阿根廷西部標準時間", "AEDT": "澳洲東部夏令時間", "CDT": "中部夏令時間", "ACWDT": "澳洲中西部夏令時間", "MST": "澳門標準時間", "PST": "太平洋標準時間", "HADT": "夏威夷-阿留申夏令時間", "COT": "哥倫比亞標準時間", "AKST": "阿拉斯加標準時間", "TMT": "土庫曼標準時間", "ChST": "查莫洛時間", "LHDT": "豪勳爵島夏令時間", "HEPMX": "墨西哥太平洋夏令時間", "EAT": "東非時間", "MESZ": "中歐夏令時間", "JST": "日本標準時間", "ADT": "大西洋夏令時間", "HNEG": "格陵蘭東部標準時間", "UYST": "烏拉圭夏令時間", "CST": "中部標準時間", "NZST": "紐西蘭標準時間", "ACWST": "澳洲中西部標準時間", "TMST": "土庫曼夏令時間", "HKT": "香港標準時間", "AWDT": "澳洲西部夏令時間", "CLST": "智利夏令時間", "HNOG": "格陵蘭西部標準時間", "ARST": "阿根廷夏令時間", "WAT": "西非標準時間", "EDT": "東部夏令時間"},
}
}
diff --git a/zgh/zgh.go b/zgh/zgh.go
index 5810eb3c..6acf48bc 100644
--- a/zgh/zgh.go
+++ b/zgh/zgh.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ⴷⴰⵄ", "ⴷⴼⵄ"},
erasNarrow: []string{"", ""},
erasWide: []string{"ⴷⴰⵜ ⵏ ⵄⵉⵙⴰ", "ⴷⴼⴼⵉⵔ ⵏ ⵄⵉⵙⴰ"},
- timezones: map[string]string{"ChST": "ChST", "HENOMX": "HENOMX", "GYT": "GYT", "ACWST": "ACWST", "HNT": "HNT", "ART": "ART", "HKST": "HKST", "LHDT": "LHDT", "WART": "WART", "SGT": "SGT", "UYT": "UYT", "HEPM": "HEPM", "CLT": "CLT", "TMT": "TMT", "ACST": "ACST", "HNPMX": "HNPMX", "MYT": "MYT", "ARST": "ARST", "HEOG": "HEOG", "JST": "JST", "WAT": "WAT", "LHST": "LHST", "HNEG": "HNEG", "COST": "COST", "HECU": "HECU", "CST": "CST", "CDT": "CDT", "VET": "VET", "NZST": "NZST", "CHAST": "CHAST", "HEEG": "HEEG", "ACDT": "ACDT", "∅∅∅": "∅∅∅", "CAT": "CAT", "HEPMX": "HEPMX", "AST": "AST", "ADT": "ADT", "EST": "EST", "HAT": "HAT", "MEZ": "MEZ", "MESZ": "MESZ", "OEZ": "OEZ", "EDT": "EDT", "MST": "MST", "WIB": "WIB", "HADT": "HADT", "SRT": "SRT", "AWDT": "AWDT", "BOT": "BOT", "UYST": "UYST", "HAST": "HAST", "PST": "PST", "AEST": "AEST", "HKT": "HKT", "EAT": "EAT", "OESZ": "OESZ", "MDT": "MDT", "AKDT": "AKDT", "PDT": "PDT", "ACWDT": "ACWDT", "WITA": "WITA", "COT": "COT", "WESZ": "WESZ", "AEDT": "AEDT", "AWST": "AWST", "NZDT": "NZDT", "SAST": "SAST", "IST": "IST", "HNNOMX": "HNNOMX", "GMT": "GMT", "HNPM": "HNPM", "WIT": "WIT", "WEZ": "WEZ", "WAST": "WAST", "ECT": "ECT", "HNCU": "HNCU", "BT": "BT", "CHADT": "CHADT", "JDT": "JDT", "WARST": "WARST", "HNOG": "HNOG", "CLST": "CLST", "GFT": "GFT", "TMST": "TMST", "AKST": "AKST"},
+ timezones: map[string]string{"CDT": "CDT", "TMT": "TMT", "AEDT": "AEDT", "LHST": "LHST", "NZST": "NZST", "MESZ": "MESZ", "WEZ": "WEZ", "WARST": "WARST", "HEOG": "HEOG", "AEST": "AEST", "WITA": "WITA", "MST": "MST", "ARST": "ARST", "ACDT": "ACDT", "COST": "COST", "HNEG": "HNEG", "GYT": "GYT", "WIB": "WIB", "BOT": "BOT", "IST": "IST", "OEZ": "OEZ", "OESZ": "OESZ", "HNOG": "HNOG", "AWDT": "AWDT", "PDT": "PDT", "ECT": "ECT", "MEZ": "MEZ", "ADT": "ADT", "TMST": "TMST", "MDT": "MDT", "GFT": "GFT", "SAST": "SAST", "AWST": "AWST", "CHADT": "CHADT", "HADT": "HADT", "ACWST": "ACWST", "WART": "WART", "UYT": "UYT", "HNPM": "HNPM", "AKST": "AKST", "LHDT": "LHDT", "HECU": "HECU", "∅∅∅": "∅∅∅", "JST": "JST", "CLST": "CLST", "HEPM": "HEPM", "UYST": "UYST", "SRT": "SRT", "EAT": "EAT", "CST": "CST", "WIT": "WIT", "PST": "PST", "HAST": "HAST", "ACWDT": "ACWDT", "CLT": "CLT", "WAT": "WAT", "HEEG": "HEEG", "MYT": "MYT", "EDT": "EDT", "HAT": "HAT", "CHAST": "CHAST", "CAT": "CAT", "NZDT": "NZDT", "WAST": "WAST", "HKT": "HKT", "HNT": "HNT", "AKDT": "AKDT", "ChST": "ChST", "HNCU": "HNCU", "EST": "EST", "BT": "BT", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "VET": "VET", "AST": "AST", "GMT": "GMT", "ACST": "ACST", "HNNOMX": "HNNOMX", "SGT": "SGT", "ART": "ART", "JDT": "JDT", "WESZ": "WESZ", "HKST": "HKST", "COT": "COT", "HENOMX": "HENOMX"},
}
}
diff --git a/zgh_MA/zgh_MA.go b/zgh_MA/zgh_MA.go
index 9e949244..4569ae7b 100644
--- a/zgh_MA/zgh_MA.go
+++ b/zgh_MA/zgh_MA.go
@@ -69,7 +69,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"ⴷⴰⵄ", "ⴷⴼⵄ"},
erasNarrow: []string{"", ""},
erasWide: []string{"ⴷⴰⵜ ⵏ ⵄⵉⵙⴰ", "ⴷⴼⴼⵉⵔ ⵏ ⵄⵉⵙⴰ"},
- timezones: map[string]string{"NZDT": "NZDT", "COST": "COST", "ADT": "ADT", "PST": "PST", "AWST": "AWST", "WAST": "WAST", "OESZ": "OESZ", "SGT": "SGT", "HNPMX": "HNPMX", "AKST": "AKST", "NZST": "NZST", "CHAST": "CHAST", "∅∅∅": "∅∅∅", "MYT": "MYT", "HEOG": "HEOG", "AEDT": "AEDT", "CLT": "CLT", "COT": "COT", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "AST": "AST", "GYT": "GYT", "HKST": "HKST", "WART": "WART", "WARST": "WARST", "UYT": "UYT", "PDT": "PDT", "WEZ": "WEZ", "ART": "ART", "AWDT": "AWDT", "MESZ": "MESZ", "HNEG": "HNEG", "TMT": "TMT", "CAT": "CAT", "EST": "EST", "BT": "BT", "HNT": "HNT", "HNPM": "HNPM", "LHDT": "LHDT", "SAST": "SAST", "JST": "JST", "ACDT": "ACDT", "WAT": "WAT", "MDT": "MDT", "WESZ": "WESZ", "CLST": "CLST", "HEEG": "HEEG", "EDT": "EDT", "UYST": "UYST", "HADT": "HADT", "VET": "VET", "HNOG": "HNOG", "JDT": "JDT", "WIT": "WIT", "ARST": "ARST", "AEST": "AEST", "TMST": "TMST", "EAT": "EAT", "HAT": "HAT", "HEPM": "HEPM", "ChST": "ChST", "BOT": "BOT", "MST": "MST", "WIB": "WIB", "SRT": "SRT", "HKT": "HKT", "WITA": "WITA", "ECT": "ECT", "GMT": "GMT", "CST": "CST", "GFT": "GFT", "HENOMX": "HENOMX", "ACWST": "ACWST", "ACWDT": "ACWDT", "MEZ": "MEZ", "LHST": "LHST", "IST": "IST", "ACST": "ACST", "OEZ": "OEZ", "HEPMX": "HEPMX", "CHADT": "CHADT", "HECU": "HECU", "AKDT": "AKDT", "CDT": "CDT", "HAST": "HAST"},
+ timezones: map[string]string{"GFT": "GFT", "EAT": "EAT", "EST": "EST", "HNNOMX": "HNNOMX", "HNCU": "HNCU", "PST": "PST", "WART": "WART", "TMST": "TMST", "ACDT": "ACDT", "CAT": "CAT", "IST": "IST", "HKST": "HKST", "BT": "BT", "MST": "MST", "CHADT": "CHADT", "WEZ": "WEZ", "WAT": "WAT", "HNT": "HNT", "HEEG": "HEEG", "HKT": "HKT", "LHDT": "LHDT", "AWDT": "AWDT", "ACWST": "ACWST", "NZST": "NZST", "JDT": "JDT", "HNOG": "HNOG", "MYT": "MYT", "LHST": "LHST", "HECU": "HECU", "ADT": "ADT", "UYT": "UYT", "HEPM": "HEPM", "HNPMX": "HNPMX", "HEPMX": "HEPMX", "HADT": "HADT", "COT": "COT", "COST": "COST", "AKDT": "AKDT", "CST": "CST", "SGT": "SGT", "BOT": "BOT", "ACWDT": "ACWDT", "HEOG": "HEOG", "WITA": "WITA", "SRT": "SRT", "AWST": "AWST", "ECT": "ECT", "JST": "JST", "GMT": "GMT", "ACST": "ACST", "AKST": "AKST", "GYT": "GYT", "WIB": "WIB", "OEZ": "OEZ", "CLST": "CLST", "ARST": "ARST", "HENOMX": "HENOMX", "CDT": "CDT", "EDT": "EDT", "HNEG": "HNEG", "AEST": "AEST", "SAST": "SAST", "WIT": "WIT", "CHAST": "CHAST", "VET": "VET", "CLT": "CLT", "HAT": "HAT", "MESZ": "MESZ", "OESZ": "OESZ", "ChST": "ChST", "HNPM": "HNPM", "WESZ": "WESZ", "TMT": "TMT", "ART": "ART", "UYST": "UYST", "∅∅∅": "∅∅∅", "PDT": "PDT", "AST": "AST", "WAST": "WAST", "AEDT": "AEDT", "MDT": "MDT", "HAST": "HAST", "NZDT": "NZDT", "MEZ": "MEZ", "WARST": "WARST"},
}
}
diff --git a/zh/zh.go b/zh/zh.go
index 411ecf66..8746b967 100644
--- a/zh/zh.go
+++ b/zh/zh.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"公元前", "公元"},
erasNarrow: []string{"公元前", "公元"},
erasWide: []string{"公元前", "公元"},
- timezones: map[string]string{"AEDT": "澳大利亚东部夏令时间", "CLT": "智利标准时间", "HEEG": "格陵兰岛东部夏令时间", "HECU": "古巴夏令时间", "ADT": "大西洋夏令时间", "HKT": "香港标准时间", "WIB": "印度尼西亚西部时间", "HAST": "夏威夷-阿留申标准时间", "WESZ": "西欧夏令时间", "HKST": "香港夏令时间", "MESZ": "中欧夏令时间", "ACDT": "澳大利亚中部夏令时间", "ARST": "阿根廷夏令时间", "IST": "印度时间", "SGT": "新加坡标准时间", "AST": "大西洋标准时间", "UYT": "乌拉圭标准时间", "VET": "委内瑞拉时间", "NZDT": "新西兰夏令时间", "ACST": "澳大利亚中部标准时间", "HEPMX": "墨西哥太平洋夏令时间", "CDT": "北美中部夏令时间", "NZST": "新西兰标准时间", "CHADT": "查坦夏令时间", "EST": "北美东部标准时间", "MYT": "马来西亚时间", "PDT": "北美太平洋夏令时间", "AEST": "澳大利亚东部标准时间", "MEZ": "中欧标准时间", "CST": "北美中部标准时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "LHDT": "豪勋爵岛夏令时间", "HNEG": "格陵兰岛东部标准时间", "TMST": "土库曼斯坦夏令时间", "HENOMX": "墨西哥西北部夏令时间", "GMT": "格林尼治标准时间", "ART": "阿根廷标准时间", "HEOG": "格陵兰岛西部夏令时间", "AWDT": "澳大利亚西部夏令时间", "LHST": "豪勋爵岛标准时间", "JDT": "日本夏令时间", "GFT": "法属圭亚那标准时间", "WART": "阿根廷西部标准时间", "WARST": "阿根廷西部夏令时间", "COT": "哥伦比亚标准时间", "COST": "哥伦比亚夏令时间", "HNT": "纽芬兰标准时间", "SAST": "南部非洲时间", "∅∅∅": "亚马逊夏令时间", "CAT": "中部非洲时间", "WAST": "西部非洲夏令时间", "OESZ": "东欧夏令时间", "HNNOMX": "墨西哥西北部标准时间", "EDT": "北美东部夏令时间", "GYT": "圭亚那时间", "HADT": "夏威夷-阿留申夏令时间", "JST": "日本标准时间", "EAT": "东部非洲时间", "WAT": "西部非洲标准时间", "AKDT": "阿拉斯加夏令时间", "WEZ": "西欧标准时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "TMT": "土库曼斯坦标准时间", "OEZ": "东欧标准时间", "HNPMX": "墨西哥太平洋标准时间", "AKST": "阿拉斯加标准时间", "ACWST": "澳大利亚中西部标准时间", "HNCU": "古巴标准时间", "MST": "澳门标准时间", "PST": "北美太平洋标准时间", "HAT": "纽芬兰夏令时间", "WITA": "印度尼西亚中部时间", "CLST": "智利夏令时间", "BOT": "玻利维亚标准时间", "ECT": "厄瓜多尔标准时间", "UYST": "乌拉圭夏令时间", "SRT": "苏里南时间", "ACWDT": "澳大利亚中西部夏令时间", "HNOG": "格陵兰岛西部标准时间", "AWST": "澳大利亚西部标准时间", "CHAST": "查坦标准时间", "ChST": "查莫罗时间", "MDT": "澳门夏令时间", "WIT": "印度尼西亚东部时间", "BT": "不丹时间"},
+ timezones: map[string]string{"∅∅∅": "阿克里夏令时间", "WIT": "印度尼西亚东部时间", "ACWDT": "澳大利亚中西部夏令时间", "JDT": "日本夏令时间", "HNNOMX": "墨西哥西北部标准时间", "HEEG": "格陵兰岛东部夏令时间", "SAST": "南部非洲时间", "HEPMX": "墨西哥太平洋夏令时间", "CAT": "中部非洲时间", "IST": "印度时间", "MESZ": "中欧夏令时间", "WAT": "西部非洲标准时间", "WAST": "西部非洲夏令时间", "EDT": "北美东部夏令时间", "CST": "北美中部标准时间", "AWST": "澳大利亚西部标准时间", "CHADT": "查坦夏令时间", "GMT": "格林尼治标准时间", "EST": "北美东部标准时间", "AKDT": "阿拉斯加夏令时间", "LHST": "豪勋爵岛标准时间", "BOT": "玻利维亚标准时间", "HADT": "夏威夷-阿留申夏令时间", "OEZ": "东欧标准时间", "ART": "阿根廷标准时间", "HKT": "香港标准时间", "HAT": "纽芬兰夏令时间", "PST": "北美太平洋标准时间", "WART": "阿根廷西部标准时间", "WARST": "阿根廷西部夏令时间", "CLT": "智利标准时间", "ARST": "阿根廷夏令时间", "AKST": "阿拉斯加标准时间", "SRT": "苏里南时间", "NZDT": "新西兰夏令时间", "WEZ": "西欧标准时间", "HENOMX": "墨西哥西北部夏令时间", "HNEG": "格陵兰岛东部标准时间", "HNPMX": "墨西哥太平洋标准时间", "CHAST": "查坦标准时间", "AEDT": "澳大利亚东部夏令时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "SGT": "新加坡标准时间", "PDT": "北美太平洋夏令时间", "MYT": "马来西亚时间", "UYT": "乌拉圭标准时间", "GYT": "圭亚那时间", "ECT": "厄瓜多尔标准时间", "WESZ": "西欧夏令时间", "HKST": "香港夏令时间", "ChST": "查莫罗时间", "HNCU": "古巴标准时间", "ACWST": "澳大利亚中西部标准时间", "JST": "日本标准时间", "WITA": "印度尼西亚中部时间", "HEOG": "格陵兰岛西部夏令时间", "TMT": "土库曼斯坦标准时间", "MST": "澳门标准时间", "MDT": "澳门夏令时间", "ACST": "澳大利亚中部标准时间", "COST": "哥伦比亚夏令时间", "HNT": "纽芬兰标准时间", "CDT": "北美中部夏令时间", "TMST": "土库曼斯坦夏令时间", "AEST": "澳大利亚东部标准时间", "EAT": "东部非洲时间", "AWDT": "澳大利亚西部夏令时间", "VET": "委内瑞拉时间", "CLST": "智利夏令时间", "OESZ": "东欧夏令时间", "ACDT": "澳大利亚中部夏令时间", "COT": "哥伦比亚标准时间", "HAST": "夏威夷-阿留申标准时间", "HNOG": "格陵兰岛西部标准时间", "ADT": "大西洋夏令时间", "UYST": "乌拉圭夏令时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "HECU": "古巴夏令时间", "WIB": "印度尼西亚西部时间", "AST": "大西洋标准时间", "BT": "不丹时间", "GFT": "法属圭亚那标准时间", "NZST": "新西兰标准时间", "MEZ": "中欧标准时间", "LHDT": "豪勋爵岛夏令时间"},
}
}
diff --git a/zh_Hans/zh_Hans.go b/zh_Hans/zh_Hans.go
index cecad1bb..f6d696fe 100644
--- a/zh_Hans/zh_Hans.go
+++ b/zh_Hans/zh_Hans.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"公元前", "公元"},
erasNarrow: []string{"公元前", "公元"},
erasWide: []string{"公元前", "公元"},
- timezones: map[string]string{"MDT": "北美山区夏令时间", "ACWST": "澳大利亚中西部标准时间", "HECU": "古巴夏令时间", "HEPMX": "墨西哥太平洋夏令时间", "AST": "大西洋标准时间", "PDT": "北美太平洋夏令时间", "ACWDT": "澳大利亚中西部夏令时间", "HAT": "纽芬兰夏令时间", "CAT": "中部非洲时间", "GYT": "圭亚那时间", "UYT": "乌拉圭标准时间", "HAST": "夏威夷-阿留申标准时间", "ARST": "阿根廷夏令时间", "HKT": "香港标准时间", "MESZ": "中欧夏令时间", "NZST": "新西兰标准时间", "SAST": "南部非洲时间", "CST": "北美中部标准时间", "OESZ": "东欧夏令时间", "CLT": "智利标准时间", "NZDT": "新西兰夏令时间", "COT": "哥伦比亚标准时间", "ADT": "大西洋夏令时间", "CHAST": "查坦标准时间", "HNEG": "格陵兰岛东部标准时间", "WAST": "西部非洲夏令时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "HADT": "夏威夷-阿留申夏令时间", "BT": "不丹时间", "PST": "北美太平洋标准时间", "ART": "阿根廷标准时间", "MEZ": "中欧标准时间", "CHADT": "查坦夏令时间", "IST": "印度时间", "AKDT": "阿拉斯加夏令时间", "GFT": "法属圭亚那标准时间", "WIB": "印度尼西亚西部时间", "CLST": "智利夏令时间", "JDT": "日本夏令时间", "EAT": "东部非洲时间", "HNNOMX": "墨西哥西北部标准时间", "CDT": "北美中部夏令时间", "WIT": "印度尼西亚东部时间", "WESZ": "西欧夏令时间", "AWDT": "澳大利亚西部夏令时间", "HKST": "香港夏令时间", "∅∅∅": "亚马逊夏令时间", "BOT": "玻利维亚标准时间", "ACST": "澳大利亚中部标准时间", "VET": "委内瑞拉时间", "WART": "阿根廷西部标准时间", "UYST": "乌拉圭夏令时间", "MST": "北美山区标准时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "ChST": "查莫罗时间", "OEZ": "东欧标准时间", "ECT": "厄瓜多尔标准时间", "AKST": "阿拉斯加标准时间", "AEDT": "澳大利亚东部夏令时间", "LHST": "豪勋爵岛标准时间", "HNPMX": "墨西哥太平洋标准时间", "HNT": "纽芬兰标准时间", "WITA": "印度尼西亚中部时间", "HEEG": "格陵兰岛东部夏令时间", "TMST": "土库曼斯坦夏令时间", "WARST": "阿根廷西部夏令时间", "GMT": "格林尼治标准时间", "SRT": "苏里南时间", "ACDT": "澳大利亚中部夏令时间", "HNCU": "古巴标准时间", "EDT": "北美东部夏令时间", "JST": "日本标准时间", "WEZ": "西欧标准时间", "AWST": "澳大利亚西部标准时间", "LHDT": "豪勋爵岛夏令时间", "HENOMX": "墨西哥西北部夏令时间", "SGT": "新加坡标准时间", "MYT": "马来西亚时间", "HEOG": "格陵兰岛西部夏令时间", "AEST": "澳大利亚东部标准时间", "TMT": "土库曼斯坦标准时间", "WAT": "西部非洲标准时间", "COST": "哥伦比亚夏令时间", "EST": "北美东部标准时间", "HNOG": "格陵兰岛西部标准时间"},
+ timezones: map[string]string{"COT": "哥伦比亚标准时间", "BT": "不丹时间", "WEZ": "西欧标准时间", "TMST": "土库曼斯坦夏令时间", "HEEG": "格陵兰岛东部夏令时间", "HAST": "夏威夷-阿留申标准时间", "HADT": "夏威夷-阿留申夏令时间", "ACWST": "澳大利亚中西部标准时间", "HKST": "香港夏令时间", "ACDT": "澳大利亚中部夏令时间", "HNEG": "格陵兰岛东部标准时间", "GFT": "法属圭亚那标准时间", "PDT": "北美太平洋夏令时间", "WARST": "阿根廷西部夏令时间", "TMT": "土库曼斯坦标准时间", "OESZ": "东欧夏令时间", "ACST": "澳大利亚中部标准时间", "HEPMX": "墨西哥太平洋夏令时间", "NZDT": "新西兰夏令时间", "WESZ": "西欧夏令时间", "WART": "阿根廷西部标准时间", "GMT": "格林尼治标准时间", "AEST": "澳大利亚东部标准时间", "EST": "北美东部标准时间", "AEDT": "澳大利亚东部夏令时间", "MYT": "马来西亚时间", "ART": "阿根廷标准时间", "CDT": "北美中部夏令时间", "AWDT": "澳大利亚西部夏令时间", "AST": "大西洋标准时间", "LHST": "豪勋爵岛标准时间", "HNT": "纽芬兰标准时间", "SGT": "新加坡标准时间", "CLST": "智利夏令时间", "EDT": "北美东部夏令时间", "AKDT": "阿拉斯加夏令时间", "WIB": "印度尼西亚西部时间", "WIT": "印度尼西亚东部时间", "ECT": "厄瓜多尔标准时间", "IST": "印度时间", "JDT": "日本夏令时间", "HKT": "香港标准时间", "WAT": "西部非洲标准时间", "ChST": "查莫罗时间", "LHDT": "豪勋爵岛夏令时间", "HECU": "古巴夏令时间", "CST": "北美中部标准时间", "CHAST": "查坦标准时间", "MESZ": "中欧夏令时间", "VET": "委内瑞拉时间", "NZST": "新西兰标准时间", "SAST": "南部非洲时间", "EAT": "东部非洲时间", "HNCU": "古巴标准时间", "CAT": "中部非洲时间", "MST": "澳门标准时间", "WAST": "西部非洲夏令时间", "OEZ": "东欧标准时间", "MDT": "澳门夏令时间", "HNNOMX": "墨西哥西北部标准时间", "∅∅∅": "阿克里夏令时间", "HAT": "纽芬兰夏令时间", "WITA": "印度尼西亚中部时间", "CLT": "智利标准时间", "HNOG": "格陵兰岛西部标准时间", "UYT": "乌拉圭标准时间", "HNPMX": "墨西哥太平洋标准时间", "HENOMX": "墨西哥西北部夏令时间", "BOT": "玻利维亚标准时间", "PST": "北美太平洋标准时间", "JST": "日本标准时间", "HEOG": "格陵兰岛西部夏令时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "GYT": "圭亚那时间", "AWST": "澳大利亚西部标准时间", "ACWDT": "澳大利亚中西部夏令时间", "COST": "哥伦比亚夏令时间", "AKST": "阿拉斯加标准时间", "CHADT": "查坦夏令时间", "ARST": "阿根廷夏令时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "UYST": "乌拉圭夏令时间", "SRT": "苏里南时间", "MEZ": "中欧标准时间", "ADT": "大西洋夏令时间"},
}
}
diff --git a/zh_Hans_CN/zh_Hans_CN.go b/zh_Hans_CN/zh_Hans_CN.go
index 9e856753..01cb5965 100644
--- a/zh_Hans_CN/zh_Hans_CN.go
+++ b/zh_Hans_CN/zh_Hans_CN.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"公元前", "公元"},
erasNarrow: []string{"公元前", "公元"},
erasWide: []string{"公元前", "公元"},
- timezones: map[string]string{"CHADT": "查坦夏令时间", "HEEG": "格陵兰岛东部夏令时间", "TMT": "土库曼斯坦标准时间", "WESZ": "西欧夏令时间", "GMT": "格林尼治标准时间", "HECU": "古巴夏令时间", "OESZ": "东欧夏令时间", "HNOG": "格陵兰岛西部标准时间", "ACWDT": "澳大利亚中西部夏令时间", "ART": "阿根廷标准时间", "ARST": "阿根廷夏令时间", "LHDT": "豪勋爵岛夏令时间", "CLST": "智利夏令时间", "ECT": "厄瓜多尔标准时间", "AKDT": "阿拉斯加夏令时间", "CST": "北美中部标准时间", "ACWST": "澳大利亚中西部标准时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "CAT": "中部非洲时间", "EAT": "东部非洲时间", "HNNOMX": "墨西哥西北部标准时间", "EST": "北美东部标准时间", "AST": "大西洋标准时间", "HADT": "夏威夷-阿留申夏令时间", "NZST": "新西兰标准时间", "BOT": "玻利维亚标准时间", "AKST": "阿拉斯加标准时间", "HNT": "纽芬兰标准时间", "JST": "日本标准时间", "HNPMX": "墨西哥太平洋标准时间", "HEPMX": "墨西哥太平洋夏令时间", "GYT": "圭亚那时间", "UYST": "乌拉圭夏令时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "HAT": "纽芬兰夏令时间", "HKT": "香港标准时间", "LHST": "豪勋爵岛标准时间", "JDT": "日本夏令时间", "WART": "阿根廷西部标准时间", "PDT": "北美太平洋夏令时间", "WITA": "印度尼西亚中部时间", "MEZ": "中欧标准时间", "GFT": "法属圭亚那标准时间", "MYT": "马来西亚时间", "VET": "委内瑞拉时间", "IST": "印度时间", "CLT": "智利标准时间", "WARST": "阿根廷西部夏令时间", "MDT": "北美山区夏令时间", "MESZ": "中欧夏令时间", "ACDT": "澳大利亚中部夏令时间", "WAST": "西部非洲夏令时间", "CDT": "北美中部夏令时间", "BT": "不丹时间", "SRT": "苏里南时间", "HKST": "香港夏令时间", "CHAST": "查坦标准时间", "SAST": "南部非洲时间", "WAT": "西部非洲标准时间", "COT": "哥伦比亚标准时间", "COST": "哥伦比亚夏令时间", "WIB": "印度尼西亚西部时间", "HNCU": "古巴标准时间", "ADT": "大西洋夏令时间", "SGT": "新加坡标准时间", "AWST": "澳大利亚西部标准时间", "AWDT": "澳大利亚西部夏令时间", "ChST": "查莫罗时间", "HNEG": "格陵兰岛东部标准时间", "HENOMX": "墨西哥西北部夏令时间", "UYT": "乌拉圭标准时间", "HAST": "夏威夷-阿留申标准时间", "HEOG": "格陵兰岛西部夏令时间", "AEST": "澳大利亚东部标准时间", "ACST": "澳大利亚中部标准时间", "EDT": "北美东部夏令时间", "WIT": "印度尼西亚东部时间", "PST": "北美太平洋标准时间", "WEZ": "西欧标准时间", "AEDT": "澳大利亚东部夏令时间", "NZDT": "新西兰夏令时间", "∅∅∅": "亚马逊夏令时间", "TMST": "土库曼斯坦夏令时间", "OEZ": "东欧标准时间", "MST": "北美山区标准时间"},
+ timezones: map[string]string{"ACDT": "澳大利亚中部夏令时间", "AEDT": "澳大利亚东部夏令时间", "SRT": "苏里南时间", "PST": "北美太平洋标准时间", "ACWST": "澳大利亚中西部标准时间", "AST": "大西洋标准时间", "ART": "阿根廷标准时间", "HNT": "纽芬兰标准时间", "AEST": "澳大利亚东部标准时间", "GYT": "圭亚那时间", "CHADT": "查坦夏令时间", "JST": "日本标准时间", "GMT": "格林尼治标准时间", "WAT": "西部非洲标准时间", "EST": "北美东部标准时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "CDT": "北美中部夏令时间", "BOT": "玻利维亚标准时间", "OESZ": "东欧夏令时间", "HNNOMX": "墨西哥西北部标准时间", "MDT": "北美山区夏令时间", "CST": "北美中部标准时间", "HAST": "夏威夷-阿留申标准时间", "HNCU": "古巴标准时间", "MESZ": "中欧夏令时间", "WEZ": "西欧标准时间", "MEZ": "中欧标准时间", "WART": "阿根廷西部标准时间", "ARST": "阿根廷夏令时间", "HEEG": "格陵兰岛东部夏令时间", "AKDT": "阿拉斯加夏令时间", "MST": "北美山区标准时间", "CHAST": "查坦标准时间", "PDT": "北美太平洋夏令时间", "ACWDT": "澳大利亚中西部夏令时间", "HNOG": "格陵兰岛西部标准时间", "OEZ": "东欧标准时间", "WESZ": "西欧夏令时间", "AKST": "阿拉斯加标准时间", "LHST": "豪勋爵岛标准时间", "HNPMX": "墨西哥太平洋标准时间", "EDT": "北美东部夏令时间", "COT": "哥伦比亚标准时间", "HENOMX": "墨西哥西北部夏令时间", "ACST": "澳大利亚中部标准时间", "CAT": "中部非洲时间", "CLST": "智利夏令时间", "HKST": "香港夏令时间", "HEOG": "格陵兰岛西部夏令时间", "TMT": "土库曼斯坦标准时间", "HNEG": "格陵兰岛东部标准时间", "∅∅∅": "亚速尔群岛夏令时间", "HADT": "夏威夷-阿留申夏令时间", "NZDT": "新西兰夏令时间", "ECT": "厄瓜多尔标准时间", "NZST": "新西兰标准时间", "ADT": "大西洋夏令时间", "HAT": "纽芬兰夏令时间", "WITA": "印度尼西亚中部时间", "WIB": "印度尼西亚西部时间", "AWST": "澳大利亚西部标准时间", "MYT": "马来西亚时间", "COST": "哥伦比亚夏令时间", "HECU": "古巴夏令时间", "WIT": "印度尼西亚东部时间", "JDT": "日本夏令时间", "IST": "印度时间", "VET": "委内瑞拉时间", "WARST": "阿根廷西部夏令时间", "CLT": "智利标准时间", "UYT": "乌拉圭标准时间", "HEPMX": "墨西哥太平洋夏令时间", "AWDT": "澳大利亚西部夏令时间", "TMST": "土库曼斯坦夏令时间", "WAST": "西部非洲夏令时间", "BT": "不丹时间", "GFT": "法属圭亚那标准时间", "SAST": "南部非洲时间", "EAT": "东部非洲时间", "UYST": "乌拉圭夏令时间", "LHDT": "豪勋爵岛夏令时间", "SGT": "新加坡标准时间", "ChST": "查莫罗时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "HKT": "香港标准时间"},
}
}
diff --git a/zh_Hans_HK/zh_Hans_HK.go b/zh_Hans_HK/zh_Hans_HK.go
index a2d987cd..6810139e 100644
--- a/zh_Hans_HK/zh_Hans_HK.go
+++ b/zh_Hans_HK/zh_Hans_HK.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"公元前", "公元"},
erasNarrow: []string{"公元前", "公元"},
erasWide: []string{"公元前", "公元"},
- timezones: map[string]string{"HAST": "夏威夷-阿留申标准时间", "PST": "北美太平洋标准时间", "WITA": "印度尼西亚中部时间", "HNEG": "格陵兰岛东部标准时间", "BOT": "玻利维亚标准时间", "ACST": "澳大利亚中部标准时间", "HNCU": "古巴标准时间", "CDT": "北美中部夏令时间", "ChST": "查莫罗时间", "HENOMX": "墨西哥西北部夏令时间", "ACWST": "澳大利亚中西部标准时间", "MEZ": "中欧标准时间", "CHADT": "查坦夏令时间", "JST": "日本标准时间", "CLST": "智利夏令时间", "TMST": "土库曼斯坦夏令时间", "COST": "哥伦比亚夏令时间", "MDT": "澳门夏令时间", "UYST": "乌拉圭夏令时间", "OEZ": "东欧标准时间", "WART": "阿根廷西部标准时间", "CLT": "智利标准时间", "WARST": "阿根廷西部夏令时间", "COT": "哥伦比亚标准时间", "LHST": "豪勋爵岛标准时间", "HEPMX": "墨西哥太平洋夏令时间", "AKDT": "阿拉斯加夏令时间", "CST": "北美中部标准时间", "ADT": "大西洋夏令时间", "HKT": "香港标准时间", "ACDT": "澳大利亚中部夏令时间", "OESZ": "东欧夏令时间", "HNPMX": "墨西哥太平洋标准时间", "AEDT": "澳大利亚东部夏令时间", "JDT": "日本夏令时间", "EST": "北美东部标准时间", "HKST": "香港夏令时间", "MESZ": "中欧夏令时间", "MST": "澳门标准时间", "WESZ": "西欧夏令时间", "AEST": "澳大利亚东部标准时间", "WAT": "西部非洲标准时间", "ECT": "厄瓜多尔标准时间", "EDT": "北美东部夏令时间", "GYT": "圭亚那时间", "WIT": "印度尼西亚东部时间", "HAT": "纽芬兰夏令时间", "UYT": "乌拉圭标准时间", "HADT": "夏威夷-阿留申夏令时间", "ARST": "阿根廷夏令时间", "WEZ": "西欧标准时间", "AWST": "澳大利亚西部标准时间", "WAST": "西部非洲夏令时间", "AST": "大西洋标准时间", "MYT": "马来西亚时间", "TMT": "土库曼斯坦标准时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "CHAST": "查坦标准时间", "LHDT": "豪勋爵岛夏令时间", "HEOG": "格陵兰岛西部夏令时间", "AWDT": "澳大利亚西部夏令时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "IST": "印度时间", "SRT": "苏里南时间", "HNT": "纽芬兰标准时间", "ART": "阿根廷标准时间", "HNOG": "格陵兰岛西部标准时间", "NZST": "新西兰标准时间", "CAT": "中部非洲时间", "HECU": "古巴夏令时间", "WIB": "印度尼西亚西部时间", "NZDT": "新西兰夏令时间", "SAST": "南部非洲时间", "AKST": "阿拉斯加标准时间", "VET": "委内瑞拉时间", "ACWDT": "澳大利亚中西部夏令时间", "GMT": "格林尼治标准时间", "HEEG": "格陵兰岛东部夏令时间", "GFT": "法属圭亚那标准时间", "SGT": "新加坡标准时间", "BT": "不丹时间", "PDT": "北美太平洋夏令时间", "∅∅∅": "秘鲁夏令时间", "EAT": "东部非洲时间", "HNNOMX": "墨西哥西北部标准时间"},
+ timezones: map[string]string{"WAT": "西部非洲标准时间", "EST": "北美东部标准时间", "UYST": "乌拉圭夏令时间", "SAST": "南部非洲时间", "AST": "大西洋标准时间", "SGT": "新加坡标准时间", "MYT": "马来西亚时间", "MST": "澳门标准时间", "HNNOMX": "墨西哥西北部标准时间", "WITA": "印度尼西亚中部时间", "AEST": "澳大利亚东部标准时间", "LHDT": "豪勋爵岛夏令时间", "AKDT": "阿拉斯加夏令时间", "HNPMX": "墨西哥太平洋标准时间", "CDT": "北美中部夏令时间", "HAST": "夏威夷-阿留申标准时间", "JST": "日本标准时间", "MDT": "澳门夏令时间", "∅∅∅": "阿克里夏令时间", "UYT": "乌拉圭标准时间", "GYT": "圭亚那时间", "WART": "阿根廷西部标准时间", "WEZ": "西欧标准时间", "COST": "哥伦比亚夏令时间", "EAT": "东部非洲时间", "HECU": "古巴夏令时间", "PDT": "北美太平洋夏令时间", "HADT": "夏威夷-阿留申夏令时间", "BT": "不丹时间", "NZST": "新西兰标准时间", "NZDT": "新西兰夏令时间", "SRT": "苏里南时间", "CHADT": "查坦夏令时间", "ACST": "澳大利亚中部标准时间", "HNCU": "古巴标准时间", "CLT": "智利标准时间", "ART": "阿根廷标准时间", "HNEG": "格陵兰岛东部标准时间", "GFT": "法属圭亚那标准时间", "HEPMX": "墨西哥太平洋夏令时间", "MEZ": "中欧标准时间", "HEEG": "格陵兰岛东部夏令时间", "IST": "印度时间", "HEOG": "格陵兰岛西部夏令时间", "OESZ": "东欧夏令时间", "CLST": "智利夏令时间", "TMT": "土库曼斯坦标准时间", "HKT": "香港标准时间", "ACDT": "澳大利亚中部夏令时间", "HAT": "纽芬兰夏令时间", "ChST": "查莫罗时间", "MESZ": "中欧夏令时间", "CHAST": "查坦标准时间", "ACWST": "澳大利亚中西部标准时间", "ACWDT": "澳大利亚中西部夏令时间", "ARST": "阿根廷夏令时间", "AEDT": "澳大利亚东部夏令时间", "WIB": "印度尼西亚西部时间", "WIT": "印度尼西亚东部时间", "AWDT": "澳大利亚西部夏令时间", "VET": "委内瑞拉时间", "GMT": "格林尼治标准时间", "HKST": "香港夏令时间", "COT": "哥伦比亚标准时间", "AKST": "阿拉斯加标准时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "CAT": "中部非洲时间", "BOT": "玻利维亚标准时间", "ECT": "厄瓜多尔标准时间", "JDT": "日本夏令时间", "EDT": "北美东部夏令时间", "HENOMX": "墨西哥西北部夏令时间", "HNT": "纽芬兰标准时间", "LHST": "豪勋爵岛标准时间", "AWST": "澳大利亚西部标准时间", "OEZ": "东欧标准时间", "TMST": "土库曼斯坦夏令时间", "WAST": "西部非洲夏令时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "WESZ": "西欧夏令时间", "CST": "北美中部标准时间", "PST": "北美太平洋标准时间", "HNOG": "格陵兰岛西部标准时间", "ADT": "大西洋夏令时间", "WARST": "阿根廷西部夏令时间"},
}
}
diff --git a/zh_Hans_MO/zh_Hans_MO.go b/zh_Hans_MO/zh_Hans_MO.go
index c3d9bdbe..f9bcff53 100644
--- a/zh_Hans_MO/zh_Hans_MO.go
+++ b/zh_Hans_MO/zh_Hans_MO.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"公元前", "公元"},
erasNarrow: []string{"公元前", "公元"},
erasWide: []string{"公元前", "公元"},
- timezones: map[string]string{"CLST": "智利夏令时间", "∅∅∅": "亚马逊夏令时间", "TMT": "土库曼斯坦标准时间", "ACST": "澳大利亚中部标准时间", "WAT": "西部非洲标准时间", "HEOG": "格陵兰岛西部夏令时间", "WESZ": "西欧夏令时间", "WITA": "印度尼西亚中部时间", "WARST": "阿根廷西部夏令时间", "HNNOMX": "墨西哥西北部标准时间", "HNT": "纽芬兰标准时间", "AEDT": "澳大利亚东部夏令时间", "HKT": "香港标准时间", "EAT": "东部非洲时间", "ECT": "厄瓜多尔标准时间", "AKST": "阿拉斯加标准时间", "AST": "大西洋标准时间", "PDT": "北美太平洋夏令时间", "LHST": "豪勋爵岛标准时间", "IST": "印度时间", "CLT": "智利标准时间", "WART": "阿根廷西部标准时间", "BT": "不丹时间", "PST": "北美太平洋标准时间", "MESZ": "中欧夏令时间", "ChST": "查莫罗时间", "GFT": "法属圭亚那标准时间", "GMT": "格林尼治标准时间", "WAST": "西部非洲夏令时间", "HECU": "古巴夏令时间", "HAST": "夏威夷-阿留申标准时间", "VET": "委内瑞拉时间", "NZDT": "新西兰夏令时间", "MDT": "北美山区夏令时间", "HAT": "纽芬兰夏令时间", "ACDT": "澳大利亚中部夏令时间", "MYT": "马来西亚时间", "HADT": "夏威夷-阿留申夏令时间", "HNEG": "格陵兰岛东部标准时间", "ACWDT": "澳大利亚中西部夏令时间", "ARST": "阿根廷夏令时间", "CHAST": "查坦标准时间", "HEEG": "格陵兰岛东部夏令时间", "TMST": "土库曼斯坦夏令时间", "GYT": "圭亚那时间", "CST": "北美中部标准时间", "ADT": "大西洋夏令时间", "OEZ": "东欧标准时间", "COT": "哥伦比亚标准时间", "OESZ": "东欧夏令时间", "EST": "北美东部标准时间", "WIB": "印度尼西亚西部时间", "WEZ": "西欧标准时间", "AEST": "澳大利亚东部标准时间", "JST": "日本标准时间", "HNCU": "古巴标准时间", "UYST": "乌拉圭夏令时间", "AKDT": "阿拉斯加夏令时间", "MST": "北美山区标准时间", "EDT": "北美东部夏令时间", "HEPMX": "墨西哥太平洋夏令时间", "MEZ": "中欧标准时间", "CAT": "中部非洲时间", "HNOG": "格陵兰岛西部标准时间", "AWST": "澳大利亚西部标准时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "UYT": "乌拉圭标准时间", "ACWST": "澳大利亚中西部标准时间", "AWDT": "澳大利亚西部夏令时间", "SGT": "新加坡标准时间", "WIT": "印度尼西亚东部时间", "CHADT": "查坦夏令时间", "BOT": "玻利维亚标准时间", "SAST": "南部非洲时间", "SRT": "苏里南时间", "ART": "阿根廷标准时间", "HKST": "香港夏令时间", "CDT": "北美中部夏令时间", "HNPMX": "墨西哥太平洋标准时间", "COST": "哥伦比亚夏令时间", "HENOMX": "墨西哥西北部夏令时间", "LHDT": "豪勋爵岛夏令时间", "NZST": "新西兰标准时间", "JDT": "日本夏令时间"},
+ timezones: map[string]string{"HAT": "纽芬兰夏令时间", "HNCU": "古巴标准时间", "BOT": "玻利维亚标准时间", "PDT": "北美太平洋夏令时间", "MESZ": "中欧夏令时间", "∅∅∅": "阿克里夏令时间", "GFT": "法属圭亚那标准时间", "PST": "北美太平洋标准时间", "HEOG": "格陵兰岛西部夏令时间", "ARST": "阿根廷夏令时间", "LHST": "豪勋爵岛标准时间", "CST": "北美中部标准时间", "CHAST": "查坦标准时间", "VET": "委内瑞拉时间", "WARST": "阿根廷西部夏令时间", "EST": "北美东部标准时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "HEPMX": "墨西哥太平洋夏令时间", "HADT": "夏威夷-阿留申夏令时间", "MEZ": "中欧标准时间", "JDT": "日本夏令时间", "WART": "阿根廷西部标准时间", "HKST": "香港夏令时间", "AEDT": "澳大利亚东部夏令时间", "SAST": "南部非洲时间", "LHDT": "豪勋爵岛夏令时间", "HNPMX": "墨西哥太平洋标准时间", "SRT": "苏里南时间", "WITA": "印度尼西亚中部时间", "ChST": "查莫罗时间", "NZST": "新西兰标准时间", "OESZ": "东欧夏令时间", "WESZ": "西欧夏令时间", "ACDT": "澳大利亚中部夏令时间", "HECU": "古巴夏令时间", "WIB": "印度尼西亚西部时间", "AWDT": "澳大利亚西部夏令时间", "AST": "大西洋标准时间", "HENOMX": "墨西哥西北部夏令时间", "HAST": "夏威夷-阿留申标准时间", "HNOG": "格陵兰岛西部标准时间", "CLT": "智利标准时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "AWST": "澳大利亚西部标准时间", "CHADT": "查坦夏令时间", "ACWST": "澳大利亚中西部标准时间", "GMT": "格林尼治标准时间", "WAST": "西部非洲夏令时间", "HNEG": "格陵兰岛东部标准时间", "MST": "北美山区标准时间", "CDT": "北美中部夏令时间", "WEZ": "西欧标准时间", "CLST": "智利夏令时间", "TMT": "土库曼斯坦标准时间", "WAT": "西部非洲标准时间", "ACST": "澳大利亚中部标准时间", "SGT": "新加坡标准时间", "ECT": "厄瓜多尔标准时间", "CAT": "中部非洲时间", "ART": "阿根廷标准时间", "HKT": "香港标准时间", "UYST": "乌拉圭夏令时间", "GYT": "圭亚那时间", "AEST": "澳大利亚东部标准时间", "MDT": "北美山区夏令时间", "IST": "印度时间", "ADT": "大西洋夏令时间", "TMST": "土库曼斯坦夏令时间", "EDT": "北美东部夏令时间", "COT": "哥伦比亚标准时间", "HNT": "纽芬兰标准时间", "HEEG": "格陵兰岛东部夏令时间", "AKDT": "阿拉斯加夏令时间", "UYT": "乌拉圭标准时间", "ACWDT": "澳大利亚中西部夏令时间", "JST": "日本标准时间", "COST": "哥伦比亚夏令时间", "HNNOMX": "墨西哥西北部标准时间", "AKST": "阿拉斯加标准时间", "EAT": "东部非洲时间", "NZDT": "新西兰夏令时间", "MYT": "马来西亚时间", "BT": "不丹时间", "WIT": "印度尼西亚东部时间", "OEZ": "东欧标准时间"},
}
}
diff --git a/zh_Hans_SG/zh_Hans_SG.go b/zh_Hans_SG/zh_Hans_SG.go
index d3eb8103..4bab826c 100644
--- a/zh_Hans_SG/zh_Hans_SG.go
+++ b/zh_Hans_SG/zh_Hans_SG.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"公元前", "公元"},
erasNarrow: []string{"公元前", "公元"},
erasWide: []string{"公元前", "公元"},
- timezones: map[string]string{"ACDT": "澳大利亚中部夏令时间", "HAT": "纽芬兰夏令时间", "LHDT": "豪勋爵岛夏令时间", "EAT": "东部非洲时间", "AKDT": "阿拉斯加夏令时间", "WEZ": "西欧标准时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "HNNOMX": "墨西哥西北部标准时间", "MST": "澳门标准时间", "BT": "不丹时间", "CLT": "智利标准时间", "HNEG": "格陵兰岛东部标准时间", "GMT": "格林尼治标准时间", "SGT": "新加坡标准时间", "HNT": "纽芬兰标准时间", "HNOG": "格陵兰岛西部标准时间", "HKT": "香港标准时间", "NZST": "新西兰标准时间", "TMST": "土库曼斯坦夏令时间", "CAT": "中部非洲时间", "OESZ": "东欧夏令时间", "ECT": "厄瓜多尔标准时间", "HNCU": "古巴标准时间", "VET": "委内瑞拉时间", "ACWST": "澳大利亚中西部标准时间", "BOT": "玻利维亚标准时间", "ADT": "大西洋夏令时间", "MEZ": "中欧标准时间", "IST": "印度时间", "WAST": "西部非洲夏令时间", "HADT": "夏威夷-阿留申夏令时间", "PST": "北美太平洋标准时间", "JST": "日本标准时间", "COST": "哥伦比亚夏令时间", "HENOMX": "墨西哥西北部夏令时间", "AST": "大西洋标准时间", "GYT": "圭亚那时间", "ART": "阿根廷标准时间", "HEOG": "格陵兰岛西部夏令时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "OEZ": "东欧标准时间", "∅∅∅": "秘鲁夏令时间", "MYT": "马来西亚时间", "ARST": "阿根廷夏令时间", "HECU": "古巴夏令时间", "CST": "北美中部标准时间", "SRT": "苏里南时间", "JDT": "日本夏令时间", "ChST": "查莫罗时间", "HEPMX": "墨西哥太平洋夏令时间", "UYT": "乌拉圭标准时间", "AEST": "澳大利亚东部标准时间", "AWDT": "澳大利亚西部夏令时间", "CHADT": "查坦夏令时间", "WAT": "西部非洲标准时间", "WIB": "印度尼西亚西部时间", "GFT": "法属圭亚那标准时间", "EDT": "北美东部夏令时间", "AKST": "阿拉斯加标准时间", "LHST": "豪勋爵岛标准时间", "HEEG": "格陵兰岛东部夏令时间", "WARST": "阿根廷西部夏令时间", "HNPMX": "墨西哥太平洋标准时间", "UYST": "乌拉圭夏令时间", "WIT": "印度尼西亚东部时间", "WITA": "印度尼西亚中部时间", "SAST": "南部非洲时间", "ACST": "澳大利亚中部标准时间", "EST": "北美东部标准时间", "MDT": "澳门夏令时间", "PDT": "北美太平洋夏令时间", "WESZ": "西欧夏令时间", "ACWDT": "澳大利亚中西部夏令时间", "MESZ": "中欧夏令时间", "NZDT": "新西兰夏令时间", "WART": "阿根廷西部标准时间", "COT": "哥伦比亚标准时间", "CDT": "北美中部夏令时间", "HAST": "夏威夷-阿留申标准时间", "AEDT": "澳大利亚东部夏令时间", "AWST": "澳大利亚西部标准时间", "HKST": "香港夏令时间", "CHAST": "查坦标准时间", "CLST": "智利夏令时间", "TMT": "土库曼斯坦标准时间"},
+ timezones: map[string]string{"WESZ": "西欧夏令时间", "WITA": "印度尼西亚中部时间", "HAST": "夏威夷-阿留申标准时间", "AEST": "澳大利亚东部标准时间", "WIT": "印度尼西亚东部时间", "MST": "澳门标准时间", "AKST": "阿拉斯加标准时间", "ChST": "查莫罗时间", "VET": "委内瑞拉时间", "HKST": "香港夏令时间", "COT": "哥伦比亚标准时间", "HENOMX": "墨西哥西北部夏令时间", "HNT": "纽芬兰标准时间", "GYT": "圭亚那时间", "AWST": "澳大利亚西部标准时间", "PDT": "北美太平洋夏令时间", "CAT": "中部非洲时间", "AST": "大西洋标准时间", "HNEG": "格陵兰岛东部标准时间", "CHADT": "查坦夏令时间", "PST": "北美太平洋标准时间", "GMT": "格林尼治标准时间", "ADT": "大西洋夏令时间", "TMST": "土库曼斯坦夏令时间", "ARST": "阿根廷夏令时间", "HKT": "香港标准时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "LHDT": "豪勋爵岛夏令时间", "HADT": "夏威夷-阿留申夏令时间", "ACWST": "澳大利亚中西部标准时间", "JST": "日本标准时间", "CLST": "智利夏令时间", "WEZ": "西欧标准时间", "WAT": "西部非洲标准时间", "EDT": "北美东部夏令时间", "UYST": "乌拉圭夏令时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "NZDT": "新西兰夏令时间", "∅∅∅": "亚马逊夏令时间", "MYT": "马来西亚时间", "OEZ": "东欧标准时间", "WAST": "西部非洲夏令时间", "ACST": "澳大利亚中部标准时间", "BOT": "玻利维亚标准时间", "ACWDT": "澳大利亚中西部夏令时间", "HNNOMX": "墨西哥西北部标准时间", "HEEG": "格陵兰岛东部夏令时间", "AEDT": "澳大利亚东部夏令时间", "LHST": "豪勋爵岛标准时间", "ECT": "厄瓜多尔标准时间", "HNOG": "格陵兰岛西部标准时间", "UYT": "乌拉圭标准时间", "CHAST": "查坦标准时间", "SGT": "新加坡标准时间", "NZST": "新西兰标准时间", "MEZ": "中欧标准时间", "ART": "阿根廷标准时间", "HAT": "纽芬兰夏令时间", "HNCU": "古巴标准时间", "AWDT": "澳大利亚西部夏令时间", "JDT": "日本夏令时间", "HEOG": "格陵兰岛西部夏令时间", "OESZ": "东欧夏令时间", "SRT": "苏里南时间", "EAT": "东部非洲时间", "TMT": "土库曼斯坦标准时间", "SAST": "南部非洲时间", "HEPMX": "墨西哥太平洋夏令时间", "HECU": "古巴夏令时间", "IST": "印度时间", "CLT": "智利标准时间", "BT": "不丹时间", "GFT": "法属圭亚那标准时间", "EST": "北美东部标准时间", "ACDT": "澳大利亚中部夏令时间", "COST": "哥伦比亚夏令时间", "CST": "北美中部标准时间", "MESZ": "中欧夏令时间", "WART": "阿根廷西部标准时间", "WARST": "阿根廷西部夏令时间", "MDT": "澳门夏令时间", "AKDT": "阿拉斯加夏令时间", "HNPMX": "墨西哥太平洋标准时间", "WIB": "印度尼西亚西部时间", "CDT": "北美中部夏令时间"},
}
}
diff --git a/zh_Hant/zh_Hant.go b/zh_Hant/zh_Hant.go
index 1f0a53a0..d5ba7057 100644
--- a/zh_Hant/zh_Hant.go
+++ b/zh_Hant/zh_Hant.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"西元前", "西元"},
erasNarrow: []string{"西元前", "西元"},
erasWide: []string{"西元前", "西元"},
- timezones: map[string]string{"ART": "阿根廷標準時間", "ARST": "阿根廷夏令時間", "ACDT": "澳洲中部夏令時間", "WAT": "西非標準時間", "HNPM": "聖皮埃爾和密克隆群島標準時間", "COT": "哥倫比亞標準時間", "GYT": "蓋亞那時間", "WIB": "印尼西部時間", "BT": "不丹時間", "HKT": "香港標準時間", "WITA": "印尼中部時間", "LHDT": "豪勳爵島夏令時間", "GFT": "法屬圭亞那時間", "HNNOMX": "墨西哥西北部標準時間", "HENOMX": "墨西哥西北部夏令時間", "HNCU": "古巴標準時間", "VET": "委內瑞拉時間", "AEDT": "澳洲東部夏令時間", "JST": "日本標準時間", "CAT": "中非時間", "SRT": "蘇利南時間", "WEZ": "西歐標準時間", "ACWDT": "澳洲中西部夏令時間", "PDT": "太平洋夏令時間", "HEEG": "格陵蘭東部夏令時間", "MST": "澳門標準時間", "WART": "阿根廷西部標準時間", "UYST": "烏拉圭夏令時間", "CLT": "智利標準時間", "∅∅∅": "亞馬遜夏令時間", "ACST": "澳洲中部標準時間", "EAT": "東非時間", "EDT": "東部夏令時間", "CST": "中部標準時間", "HAST": "夏威夷-阿留申標準時間", "ACWST": "澳洲中西部標準時間", "CHADT": "查坦群島夏令時間", "IST": "印度標準時間", "AWST": "澳洲西部標準時間", "COST": "哥倫比亞夏令時間", "AKDT": "阿拉斯加夏令時間", "WESZ": "西歐夏令時間", "HEOG": "格陵蘭西部夏令時間", "MESZ": "中歐夏令時間", "HNEG": "格陵蘭東部標準時間", "HEPMX": "墨西哥太平洋夏令時間", "AKST": "阿拉斯加標準時間", "AWDT": "澳洲西部夏令時間", "TMT": "土庫曼標準時間", "SGT": "新加坡標準時間", "JDT": "日本夏令時間", "OEZ": "東歐標準時間", "ECT": "厄瓜多時間", "MDT": "澳門夏令時間", "EST": "東部標準時間", "ADT": "大西洋夏令時間", "CHAST": "查坦群島標準時間", "MEZ": "中歐標準時間", "WAST": "西非夏令時間", "WIT": "印尼東部時間", "HNOG": "格陵蘭西部標準時間", "NZDT": "紐西蘭夏令時間", "SAST": "南非標準時間", "HECU": "古巴夏令時間", "MYT": "馬來西亞時間", "UYT": "烏拉圭標準時間", "HEPM": "聖皮埃爾和密克隆群島夏令時間", "NZST": "紐西蘭標準時間", "AEST": "澳洲東部標準時間", "ChST": "查莫洛時間", "AST": "大西洋標準時間", "OESZ": "東歐夏令時間", "WARST": "阿根廷西部夏令時間", "HNPMX": "墨西哥太平洋標準時間", "CDT": "中部夏令時間", "HADT": "夏威夷-阿留申夏令時間", "HNT": "紐芬蘭標準時間", "CLST": "智利夏令時間", "BOT": "玻利維亞時間", "HAT": "紐芬蘭夏令時間", "HKST": "香港夏令時間", "GMT": "格林威治標準時間", "PST": "太平洋標準時間", "LHST": "豪勳爵島標準時間", "TMST": "土庫曼夏令時間"},
+ timezones: map[string]string{"∅∅∅": "亞速爾群島夏令時間", "EAT": "東非時間", "BOT": "玻利維亞時間", "JST": "日本標準時間", "HNOG": "格陵蘭西部標準時間", "HKST": "香港夏令時間", "PDT": "太平洋夏令時間", "WART": "阿根廷西部標準時間", "TMT": "土庫曼標準時間", "WAT": "西非標準時間", "COST": "哥倫比亞夏令時間", "CDT": "中部夏令時間", "MEZ": "中歐標準時間", "MESZ": "中歐夏令時間", "WARST": "阿根廷西部夏令時間", "WAST": "西非夏令時間", "WIT": "印尼東部時間", "ART": "阿根廷標準時間", "HENOMX": "墨西哥西北部夏令時間", "JDT": "日本夏令時間", "COT": "哥倫比亞標準時間", "HEPMX": "墨西哥太平洋夏令時間", "ECT": "厄瓜多時間", "CAT": "中非時間", "GMT": "格林威治標準時間", "ACST": "澳洲中部標準時間", "SRT": "蘇利南時間", "OEZ": "東歐標準時間", "HNT": "紐芬蘭標準時間", "UYST": "烏拉圭夏令時間", "LHST": "豪勳爵島標準時間", "SGT": "新加坡標準時間", "ACWDT": "澳洲中西部夏令時間", "MDT": "澳門夏令時間", "EDT": "東部夏令時間", "BT": "不丹時間", "CLT": "智利標準時間", "ADT": "大西洋夏令時間", "OESZ": "東歐夏令時間", "HAT": "紐芬蘭夏令時間", "HECU": "古巴夏令時間", "PST": "太平洋標準時間", "VET": "委內瑞拉時間", "HEOG": "格陵蘭西部夏令時間", "AWST": "澳洲西部標準時間", "AWDT": "澳洲西部夏令時間", "CHADT": "查坦群島夏令時間", "AST": "大西洋標準時間", "ACDT": "澳洲中部夏令時間", "WITA": "印尼中部時間", "HNPM": "聖皮埃爾和密克隆群島標準時間", "AEST": "澳洲東部標準時間", "HNPMX": "墨西哥太平洋標準時間", "MYT": "馬來西亞時間", "WEZ": "西歐標準時間", "TMST": "土庫曼夏令時間", "MST": "澳門標準時間", "HKT": "香港標準時間", "HEEG": "格陵蘭東部夏令時間", "CHAST": "查坦群島標準時間", "GFT": "法屬圭亞那時間", "AKST": "阿拉斯加標準時間", "AKDT": "阿拉斯加夏令時間", "WIB": "印尼西部時間", "IST": "印度標準時間", "CLST": "智利夏令時間", "EST": "東部標準時間", "AEDT": "澳洲東部夏令時間", "HNNOMX": "墨西哥西北部標準時間", "GYT": "蓋亞那時間", "HNCU": "古巴標準時間", "CST": "中部標準時間", "NZST": "紐西蘭標準時間", "NZDT": "紐西蘭夏令時間", "WESZ": "西歐夏令時間", "ARST": "阿根廷夏令時間", "ChST": "查莫洛時間", "UYT": "烏拉圭標準時間", "SAST": "南非標準時間", "LHDT": "豪勳爵島夏令時間", "HAST": "夏威夷-阿留申標準時間", "HADT": "夏威夷-阿留申夏令時間", "ACWST": "澳洲中西部標準時間", "HNEG": "格陵蘭東部標準時間", "HEPM": "聖皮埃爾和密克隆群島夏令時間"},
}
}
diff --git a/zh_Hant_HK/zh_Hant_HK.go b/zh_Hant_HK/zh_Hant_HK.go
index e6313682..f4b0cec9 100644
--- a/zh_Hant_HK/zh_Hant_HK.go
+++ b/zh_Hant_HK/zh_Hant_HK.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"公元前", "公元"},
erasNarrow: []string{"", ""},
erasWide: []string{"公元前", "公元"},
- timezones: map[string]string{"MDT": "澳门夏令时间", "CST": "北美中部標準時間", "CHADT": "查坦夏令时间", "JDT": "日本夏令时间", "HEEG": "格陵兰岛东部夏令时间", "EAT": "东部非洲时间", "WAT": "西部非洲标准时间", "PST": "北美太平洋標準時間", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "LHDT": "豪勋爵岛夏令时间", "HNPMX": "墨西哥太平洋标准时间", "CDT": "中部夏令時間", "UYT": "乌拉圭标准时间", "UYST": "乌拉圭夏令时间", "ACWDT": "澳大利亚中西部夏令时间", "SGT": "新加坡時間", "EST": "北美東部標準時間", "HADT": "夏威夷-阿留申夏令时间", "HKST": "香港夏令时间", "SAST": "南非時間", "JST": "日本标准时间", "WARST": "阿根廷西部夏令时间", "EDT": "北美東部夏令時間", "AKST": "阿拉斯加标准时间", "WIB": "印度尼西亚西部时间", "WIT": "印度尼西亚东部时间", "IST": "印度時間", "MYT": "马来西亚时间", "HNEG": "格陵兰岛东部标准时间", "HENOMX": "墨西哥西北部夏令时间", "COT": "哥伦比亚标准时间", "HEOG": "格陵兰岛西部夏令时间", "AEST": "澳大利亚东部标准时间", "ACST": "澳大利亚中部标准时间", "ACDT": "澳大利亚中部夏令时间", "CAT": "中部非洲时间", "HNOG": "格陵兰岛西部标准时间", "AWST": "澳大利亚西部标准时间", "CLST": "智利夏令时间", "HNNOMX": "墨西哥西北部标准时间", "NZDT": "新西兰夏令时间", "MEZ": "中欧标准时间", "GMT": "格林尼治标准时间", "ADT": "大西洋夏令时间", "SRT": "蘇里南時間", "BT": "不丹时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "HNCU": "古巴标准时间", "AST": "大西洋标准时间", "WESZ": "西欧夏令时间", "WAST": "西部非洲夏令时间", "ACWST": "澳大利亚中西部标准时间", "HNT": "纽芬兰标准时间", "WITA": "印度尼西亚中部时间", "CHAST": "查坦标准时间", "MESZ": "中欧夏令时间", "BOT": "玻利维亚标准时间", "HEPMX": "墨西哥太平洋夏令时间", "AKDT": "阿拉斯加夏令时间", "AWDT": "澳大利亚西部夏令时间", "AEDT": "澳大利亚东部夏令时间", "LHST": "豪勋爵岛标准时间", "ECT": "厄瓜多爾時間", "GYT": "圭亞那時間", "PDT": "北美太平洋夏令時間", "NZST": "新西兰标准时间", "TMST": "土库曼斯坦夏令时间", "COST": "哥伦比亚夏令时间", "ARST": "阿根廷夏令时间", "GFT": "法属圭亚那标准时间", "TMT": "土库曼斯坦标准时间", "∅∅∅": "亚速尔群岛夏令时间", "MST": "澳门标准时间", "HAST": "夏威夷-阿留申标准时间", "WEZ": "西欧标准时间", "ART": "阿根廷标准时间", "OEZ": "东欧标准时间", "HAT": "纽芬兰夏令时间", "CLT": "智利标准时间", "WART": "阿根廷西部标准时间", "HECU": "古巴夏令时间", "VET": "委内瑞拉时间", "HKT": "香港标准时间", "ChST": "查莫罗时间", "OESZ": "东欧夏令时间"},
+ timezones: map[string]string{"CST": "北美中部標準時間", "HNOG": "格陵兰岛西部标准时间", "WEZ": "西欧标准时间", "WAST": "西部非洲夏令时间", "ACDT": "澳大利亚中部夏令时间", "HNT": "纽芬兰标准时间", "AEDT": "澳大利亚东部夏令时间", "∅∅∅": "亚速尔群岛夏令时间", "ACWDT": "澳大利亚中西部夏令时间", "OEZ": "东欧标准时间", "MYT": "马来西亚时间", "TMT": "土库曼斯坦标准时间", "GMT": "格林尼治标准时间", "MST": "澳门标准时间", "ARST": "阿根廷夏令时间", "SRT": "蘇里南時間", "BOT": "玻利维亚标准时间", "IST": "印度時間", "NZDT": "新西兰夏令时间", "VET": "委内瑞拉时间", "EST": "北美東部標準時間", "HNNOMX": "墨西哥西北部标准时间", "HAST": "夏威夷-阿留申标准时间", "MEZ": "中欧标准时间", "MDT": "澳门夏令时间", "BT": "不丹时间", "EAT": "东部非洲时间", "OESZ": "东欧夏令时间", "WARST": "阿根廷西部夏令时间", "TMST": "土库曼斯坦夏令时间", "HNCU": "古巴标准时间", "AWDT": "澳大利亚西部夏令时间", "CAT": "中部非洲时间", "GFT": "法属圭亚那标准时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "HNPMX": "墨西哥太平洋标准时间", "CLT": "智利标准时间", "HENOMX": "墨西哥西北部夏令时间", "WITA": "印度尼西亚中部时间", "ChST": "查莫罗时间", "AWST": "澳大利亚西部标准时间", "ACWST": "澳大利亚中西部标准时间", "COST": "哥伦比亚夏令时间", "HEEG": "格陵兰岛东部夏令时间", "UYST": "乌拉圭夏令时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "SAST": "南非時間", "PST": "北美太平洋標準時間", "ADT": "大西洋夏令时间", "HKST": "香港夏令时间", "AKDT": "阿拉斯加夏令时间", "JDT": "日本夏令时间", "AST": "大西洋标准时间", "WESZ": "西欧夏令时间", "HEPMX": "墨西哥太平洋夏令时间", "WIB": "印度尼西亚西部时间", "CHAST": "查坦标准时间", "NZST": "新西兰标准时间", "MESZ": "中欧夏令时间", "EDT": "北美東部夏令時間", "HNEG": "格陵兰岛东部标准时间", "AEST": "澳大利亚东部标准时间", "JST": "日本标准时间", "HKT": "香港标准时间", "ACST": "澳大利亚中部标准时间", "COT": "哥伦比亚标准时间", "HAT": "纽芬兰夏令时间", "CHADT": "查坦夏令时间", "CLST": "智利夏令时间", "HEOG": "格陵兰岛西部夏令时间", "UYT": "乌拉圭标准时间", "CDT": "中部夏令時間", "PDT": "北美太平洋夏令時間", "WART": "阿根廷西部标准时间", "GYT": "圭亞那時間", "HECU": "古巴夏令时间", "ECT": "厄瓜多爾時間", "ART": "阿根廷标准时间", "WAT": "西部非洲标准时间", "AKST": "阿拉斯加标准时间", "LHST": "豪勋爵岛标准时间", "LHDT": "豪勋爵岛夏令时间", "WIT": "印度尼西亚东部时间", "SGT": "新加坡時間", "HADT": "夏威夷-阿留申夏令时间"},
}
}
diff --git a/zh_Hant_MO/zh_Hant_MO.go b/zh_Hant_MO/zh_Hant_MO.go
index 1a406cb9..035055b1 100644
--- a/zh_Hant_MO/zh_Hant_MO.go
+++ b/zh_Hant_MO/zh_Hant_MO.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"公元前", "公元"},
erasNarrow: []string{"公元前", "公元"},
erasWide: []string{"公元前", "公元"},
- timezones: map[string]string{"WARST": "阿根廷西部夏令时间", "MST": "澳门标准时间", "SRT": "苏里南时间", "ACST": "澳大利亚中部标准时间", "ACDT": "澳大利亚中部夏令时间", "UYT": "乌拉圭标准时间", "EDT": "北美东部夏令时间", "HAT": "纽芬兰夏令时间", "HEOG": "格陵兰岛西部夏令时间", "∅∅∅": "亚马逊夏令时间", "GFT": "法属圭亚那标准时间", "WAT": "西部非洲标准时间", "GMT": "格林尼治标准时间", "LHDT": "豪勋爵岛夏令时间", "OESZ": "东欧夏令时间", "SGT": "新加坡标准时间", "NZST": "新西兰标准时间", "CHADT": "查坦夏令时间", "JST": "日本标准时间", "EST": "北美东部标准时间", "AEST": "澳大利亚东部标准时间", "NZDT": "新西兰夏令时间", "ACWDT": "澳大利亚中西部夏令时间", "HNOG": "格陵兰岛西部标准时间", "WITA": "印度尼西亚中部时间", "HNEG": "格陵兰岛东部标准时间", "OEZ": "东欧标准时间", "HNNOMX": "墨西哥西北部标准时间", "AKST": "阿拉斯加标准时间", "MDT": "澳门夏令时间", "CST": "北美中部标准时间", "ARST": "阿根廷夏令时间", "CHAST": "查坦标准时间", "MESZ": "中欧夏令时间", "WART": "阿根廷西部标准时间", "ADT": "大西洋夏令时间", "VET": "委内瑞拉时间", "ART": "阿根廷标准时间", "AEDT": "澳大利亚东部夏令时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "CLST": "智利夏令时间", "GYT": "圭亚那时间", "UYST": "乌拉圭夏令时间", "HAST": "夏威夷-阿留申标准时间", "HKT": "香港标准时间", "TMST": "土库曼斯坦夏令时间", "EAT": "东部非洲时间", "HNCU": "古巴标准时间", "ACWST": "澳大利亚中西部标准时间", "MEZ": "中欧标准时间", "LHST": "豪勋爵岛标准时间", "WAST": "西部非洲夏令时间", "COT": "哥伦比亚标准时间", "COST": "哥伦比亚夏令时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "WEZ": "西欧标准时间", "SAST": "南部非洲时间", "IST": "印度时间", "JDT": "日本夏令时间", "HEEG": "格陵兰岛东部夏令时间", "MYT": "马来西亚时间", "BT": "不丹时间", "WIT": "印度尼西亚东部时间", "HNT": "纽芬兰标准时间", "PDT": "北美太平洋夏令时间", "AWST": "澳大利亚西部标准时间", "ECT": "厄瓜多尔标准时间", "CAT": "中部非洲时间", "HECU": "古巴夏令时间", "CDT": "北美中部夏令时间", "ChST": "查莫罗时间", "BOT": "玻利维亚标准时间", "AST": "大西洋标准时间", "AWDT": "澳大利亚西部夏令时间", "TMT": "土库曼斯坦标准时间", "AKDT": "阿拉斯加夏令时间", "WIB": "印度尼西亚西部时间", "PST": "北美太平洋标准时间", "HADT": "夏威夷-阿留申夏令时间", "WESZ": "西欧夏令时间", "HKST": "香港夏令时间", "CLT": "智利标准时间", "HENOMX": "墨西哥西北部夏令时间", "HNPMX": "墨西哥太平洋标准时间", "HEPMX": "墨西哥太平洋夏令时间"},
+ timezones: map[string]string{"∅∅∅": "亚马逊夏令时间", "WART": "阿根廷西部标准时间", "HKST": "香港夏令时间", "HENOMX": "墨西哥西北部夏令时间", "CDT": "北美中部夏令时间", "BOT": "玻利维亚标准时间", "CHAST": "查坦标准时间", "PDT": "北美太平洋夏令时间", "MEZ": "中欧标准时间", "ADT": "大西洋夏令时间", "MDT": "澳门夏令时间", "AEST": "澳大利亚东部标准时间", "PST": "北美太平洋标准时间", "OEZ": "东欧标准时间", "HNNOMX": "墨西哥西北部标准时间", "HNCU": "古巴标准时间", "SGT": "新加坡标准时间", "HAT": "纽芬兰夏令时间", "HADT": "夏威夷-阿留申夏令时间", "ACWST": "澳大利亚中西部标准时间", "HNOG": "格陵兰岛西部标准时间", "EDT": "北美东部夏令时间", "HNEG": "格陵兰岛东部标准时间", "IST": "印度时间", "CLT": "智利标准时间", "SAST": "南部非洲时间", "WIT": "印度尼西亚东部时间", "HKT": "香港标准时间", "BT": "不丹时间", "AWST": "澳大利亚西部标准时间", "ECT": "厄瓜多尔标准时间", "CAT": "中部非洲时间", "JST": "日本标准时间", "GMT": "格林尼治标准时间", "ART": "阿根廷标准时间", "NZST": "新西兰标准时间", "MYT": "马来西亚时间", "WAST": "西部非洲夏令时间", "ChST": "查莫罗时间", "HEPMX": "墨西哥太平洋夏令时间", "COT": "哥伦比亚标准时间", "GFT": "法属圭亚那标准时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "HAST": "夏威夷-阿留申标准时间", "ACWDT": "澳大利亚中西部夏令时间", "NZDT": "新西兰夏令时间", "LHDT": "豪勋爵岛夏令时间", "ACDT": "澳大利亚中部夏令时间", "AEDT": "澳大利亚东部夏令时间", "UYST": "乌拉圭夏令时间", "WEZ": "西欧标准时间", "TMST": "土库曼斯坦夏令时间", "EST": "北美东部标准时间", "WAT": "西部非洲标准时间", "COST": "哥伦比亚夏令时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "LHST": "豪勋爵岛标准时间", "VET": "委内瑞拉时间", "AST": "大西洋标准时间", "UYT": "乌拉圭标准时间", "SRT": "苏里南时间", "CST": "北美中部标准时间", "HNPMX": "墨西哥太平洋标准时间", "GYT": "圭亚那时间", "CLST": "智利夏令时间", "HEOG": "格陵兰岛西部夏令时间", "MST": "澳门标准时间", "HNT": "纽芬兰标准时间", "EAT": "东部非洲时间", "TMT": "土库曼斯坦标准时间", "ACST": "澳大利亚中部标准时间", "HECU": "古巴夏令时间", "JDT": "日本夏令时间", "MESZ": "中欧夏令时间", "OESZ": "东欧夏令时间", "WESZ": "西欧夏令时间", "WARST": "阿根廷西部夏令时间", "AWDT": "澳大利亚西部夏令时间", "WIB": "印度尼西亚西部时间", "CHADT": "查坦夏令时间", "ARST": "阿根廷夏令时间", "HEEG": "格陵兰岛东部夏令时间", "WITA": "印度尼西亚中部时间", "AKST": "阿拉斯加标准时间", "AKDT": "阿拉斯加夏令时间"},
}
}
diff --git a/zh_Hant_TW/zh_Hant_TW.go b/zh_Hant_TW/zh_Hant_TW.go
index d0849d09..e8a052f9 100644
--- a/zh_Hant_TW/zh_Hant_TW.go
+++ b/zh_Hant_TW/zh_Hant_TW.go
@@ -67,7 +67,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"公元前", "公元"},
erasNarrow: []string{"公元前", "公元"},
erasWide: []string{"公元前", "公元"},
- timezones: map[string]string{"AEST": "澳大利亚东部标准时间", "TMT": "土库曼斯坦标准时间", "AWST": "澳大利亚西部标准时间", "OEZ": "东欧标准时间", "WARST": "阿根廷西部夏令时间", "PDT": "北美太平洋夏令时间", "AKST": "阿拉斯加标准时间", "CST": "北美中部标准时间", "MYT": "马来西亚时间", "UYT": "乌拉圭标准时间", "AEDT": "澳大利亚东部夏令时间", "SGT": "新加坡标准时间", "HNPMX": "墨西哥太平洋标准时间", "HEPMX": "墨西哥太平洋夏令时间", "MESZ": "中欧夏令时间", "LHDT": "豪勋爵岛夏令时间", "CLST": "智利夏令时间", "HECU": "古巴夏令时间", "GMT": "格林尼治标准时间", "NZDT": "新西兰夏令时间", "ADT": "大西洋夏令时间", "HAST": "夏威夷-阿留申标准时间", "PST": "北美太平洋标准时间", "HNT": "纽芬兰标准时间", "CHADT": "查坦夏令时间", "TMST": "土库曼斯坦夏令时间", "COST": "哥伦比亚夏令时间", "GYT": "圭亚那时间", "UYST": "乌拉圭夏令时间", "HADT": "夏威夷-阿留申夏令时间", "IST": "印度时间", "ACST": "澳大利亚中部标准时间", "∅∅∅": "秘鲁夏令时间", "WIB": "印度尼西亚西部时间", "COT": "哥伦比亚标准时间", "EDT": "北美东部夏令时间", "VET": "委内瑞拉时间", "BT": "不丹时间", "HEOG": "格陵兰岛西部夏令时间", "WAT": "西部非洲标准时间", "WAST": "西部非洲夏令时间", "WART": "阿根廷西部标准时间", "WESZ": "西欧夏令时间", "HKST": "香港夏令时间", "CLT": "智利标准时间", "MDT": "澳门夏令时间", "SRT": "苏里南时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "ECT": "厄瓜多尔标准时间", "HAT": "纽芬兰夏令时间", "HNOG": "格陵兰岛西部标准时间", "JDT": "日本夏令时间", "GFT": "法属圭亚那标准时间", "MST": "澳门标准时间", "LHST": "豪勋爵岛标准时间", "SAST": "南部非洲时间", "ACWST": "澳大利亚中西部标准时间", "ART": "阿根廷标准时间", "HKT": "香港标准时间", "AWDT": "澳大利亚西部夏令时间", "ChST": "查莫罗时间", "HNCU": "古巴标准时间", "EST": "北美东部标准时间", "AST": "大西洋标准时间", "WIT": "印度尼西亚东部时间", "WEZ": "西欧标准时间", "HEPM": "圣皮埃尔和密克隆群岛夏令时间", "NZST": "新西兰标准时间", "HNEG": "格陵兰岛东部标准时间", "HNNOMX": "墨西哥西北部标准时间", "HENOMX": "墨西哥西北部夏令时间", "AKDT": "阿拉斯加夏令时间", "ACWDT": "澳大利亚中西部夏令时间", "WITA": "印度尼西亚中部时间", "HEEG": "格陵兰岛东部夏令时间", "ACDT": "澳大利亚中部夏令时间", "EAT": "东部非洲时间", "CDT": "北美中部夏令时间", "OESZ": "东欧夏令时间", "CAT": "中部非洲时间", "CHAST": "查坦标准时间", "BOT": "玻利维亚标准时间", "ARST": "阿根廷夏令时间", "MEZ": "中欧标准时间", "JST": "日本标准时间"},
+ timezones: map[string]string{"HEPM": "圣皮埃尔和密克隆群岛夏令时间", "GYT": "圭亚那时间", "WEZ": "西欧标准时间", "WAST": "西部非洲夏令时间", "HNT": "纽芬兰标准时间", "WITA": "印度尼西亚中部时间", "AKST": "阿拉斯加标准时间", "UYST": "乌拉圭夏令时间", "ADT": "大西洋夏令时间", "TMST": "土库曼斯坦夏令时间", "LHDT": "豪勋爵岛夏令时间", "SRT": "苏里南时间", "HEEG": "格陵兰岛东部夏令时间", "AEDT": "澳大利亚东部夏令时间", "GFT": "法属圭亚那标准时间", "UYT": "乌拉圭标准时间", "LHST": "豪勋爵岛标准时间", "HNNOMX": "墨西哥西北部标准时间", "HENOMX": "墨西哥西北部夏令时间", "∅∅∅": "阿克里夏令时间", "WIT": "印度尼西亚东部时间", "HAST": "夏威夷-阿留申标准时间", "ART": "阿根廷标准时间", "BT": "不丹时间", "AWST": "澳大利亚西部标准时间", "MEZ": "中欧标准时间", "HNOG": "格陵兰岛西部标准时间", "HAT": "纽芬兰夏令时间", "HNCU": "古巴标准时间", "CST": "北美中部标准时间", "MESZ": "中欧夏令时间", "CAT": "中部非洲时间", "CLST": "智利夏令时间", "COT": "哥伦比亚标准时间", "HNEG": "格陵兰岛东部标准时间", "HECU": "古巴夏令时间", "SGT": "新加坡标准时间", "ACWST": "澳大利亚中西部标准时间", "WIB": "印度尼西亚西部时间", "EAT": "东部非洲时间", "NZST": "新西兰标准时间", "HADT": "夏威夷-阿留申夏令时间", "ECT": "厄瓜多尔标准时间", "OEZ": "东欧标准时间", "HKT": "香港标准时间", "ACST": "澳大利亚中部标准时间", "CDT": "北美中部夏令时间", "CHAST": "查坦标准时间", "CHADT": "查坦夏令时间", "WARST": "阿根廷西部夏令时间", "HEOG": "格陵兰岛西部夏令时间", "PST": "北美太平洋标准时间", "IST": "印度时间", "JDT": "日本夏令时间", "ARST": "阿根廷夏令时间", "EDT": "北美东部夏令时间", "HKST": "香港夏令时间", "HEPMX": "墨西哥太平洋夏令时间", "AWDT": "澳大利亚西部夏令时间", "GMT": "格林尼治标准时间", "AST": "大西洋标准时间", "AEST": "澳大利亚东部标准时间", "AKDT": "阿拉斯加夏令时间", "CLT": "智利标准时间", "HNPM": "圣皮埃尔和密克隆群岛标准时间", "NZDT": "新西兰夏令时间", "JST": "日本标准时间", "OESZ": "东欧夏令时间", "WART": "阿根廷西部标准时间", "WAT": "西部非洲标准时间", "COST": "哥伦比亚夏令时间", "ChST": "查莫罗时间", "BOT": "玻利维亚标准时间", "ACWDT": "澳大利亚中西部夏令时间", "SAST": "南部非洲时间", "PDT": "北美太平洋夏令时间", "MDT": "澳门夏令时间", "VET": "委内瑞拉时间", "WESZ": "西欧夏令时间", "MYT": "马来西亚时间", "MST": "澳门标准时间", "EST": "北美东部标准时间", "ACDT": "澳大利亚中部夏令时间", "HNPMX": "墨西哥太平洋标准时间", "TMT": "土库曼斯坦标准时间"},
}
}
diff --git a/zu/zu.go b/zu/zu.go
index 2debb9d4..3f222184 100644
--- a/zu/zu.go
+++ b/zu/zu.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"BC", "AD"},
- timezones: map[string]string{"GMT": "Isikhathi sase-Greenwich Mean", "ACWST": "Isikhathi sase-Australian Central West esivamile", "ARST": "Isikhathi sase-Argentina sasehlobo", "HNEG": "Isikhathi sase-East Greenland esijwayelekile", "ACST": "Isikhathi sase-Australian Central esivamile", "EAT": "Isikhathi saseMpumalanga Afrika", "HNPMX": "Isikhathi sase-Mexican Pacific esijwayelekile", "AWST": "Isikhathi sase-Australian Western esivamile", "SAST": "Isikhathi esijwayelekile saseNingizimu Afrika", "∅∅∅": "Isikhathi sase-Amazon sasehlobo", "AEST": "Isikhathi esivamile sase-Australian East", "WAT": "Isikhathi esijwayelekile saseNtshonalanga Afrika", "WIT": "Isikhathi sase-Eastern Indonesia", "AKDT": "Isikhathi sase-Alaska sasemini", "UYT": "Isikhathi sase-Uruguay esijwayelekile", "ACWDT": "Isikhathi sasemini sase-Australian Central West", "CHAST": "Isikhathi esivamile sase-Chatham", "AKST": "Isikhathi sase-Alaska esijwayelekile", "EST": "Isikhathi sase-North American East esijwayelekile", "WIB": "Isikhathi sase-Western Indonesia", "WESZ": "Isikhathi sasehlobo sase-Western Europe", "AWDT": "Isikhathi sase-Australian Western sasemini", "HKT": "Isikhathi esivamile sase-Hong Kong", "ACDT": "Isikhathi sase-Australian Central sasemini", "HENOMX": "Isikhathi sase-Northwest Mexico sasemini", "TMST": "Isikhathi sehlobo sase-Turkmenistan", "HAT": "Isikhathi sase-Newfoundland sasemini", "AEDT": "Isikhathi sasemini sase-Australian East", "HEEG": "Isikhathi sase-East Greenland sasemini", "CAT": "Isikhathi sase-Central Africa", "COST": "Isikhathi sase-Colombia sasehlobo", "HADT": "Isikhathi sase-Hawaii-Aleutia sasemini", "OEZ": "Isikhathi esijwayelekile sase-Eastern Europe", "COT": "Isikhathi sase-Colombia esijwayelekile", "AST": "Isikhathi sase-Atlantic esijwayelekile", "HAST": "Isikhathi sase-Hawaii-Aleutia esijwayelekile", "WEZ": "Isikhathi esijwayelekile sase-Western Europe", "HNT": "Isikhathi sase-Newfoundland esijwayelekile", "PDT": "Isikhathi sase-North American Pacific sasemini", "WITA": "Isikhathi sase-Central Indonesia", "NZST": "Isikhathi esivamile sase-New Zealand", "BOT": "Isikhathi sase-Bolivia", "HNNOMX": "Isikhathi sase-Northwest Mexico esijwayelekile", "ADT": "Isikhathi sase-Atlantic sasemini", "GYT": "Isikhathi sase-Guyana", "HEOG": "Isikhathi sase-West Greenland sasehlobo", "HKST": "Isikhathi sehlobo sase-Hong Kong", "HEPM": "Isikhathi sase-Saint Pierre nase-Miquelon sasemini", "TMT": "Isikhathi esivamile sase-Turkmenistan", "WAST": "Isikhathi sasehlobo saseNtshonalanga Afrika", "SGT": "Isikhathi esivamile sase-Singapore", "HEPMX": "Isikhathi sase-Mexican Pacific sasemini", "CST": "Isikhathi sase-North American Central esijwayelekile", "MYT": "Isikhathi sase-Malaysia", "NZDT": "Isikhathi sasemini sase-New Zealand", "ECT": "Isikhathi sase-Ecuador", "WART": "Isikhathi saseNyakatho ne-Argentina esijwayelekile", "WARST": "Isikhathi saseNyakatho ne-Argentina sasehlobo", "MST": "MST", "MEZ": "Isikhathi esijwayelekile sase-Central Europe", "CLST": "Isikhathi sase-Chile sasehlobo", "CHADT": "Isikhathi sasemini sase-Chatham", "UYST": "Isikhathi sase-Uruguay sasehlobo", "LHST": "Isikhathi sase-Lord Howe esivamile", "LHDT": "Isikhathi sase-Lord Howe sasemini", "CLT": "Isikhathi sase-Chile esijwayelekile", "JDT": "Isikhathi semini sase-Japan", "GFT": "Isikhathi sase-French Guiana", "OESZ": "Isikhathi sasehlobo sase-Eastern Europe", "HNCU": "Isikhathi sase-Cuba esijwayelekile", "VET": "Isikhathi sase-Venezuela", "MESZ": "Isikhathi sasehlobo sase-Central Europe", "IST": "Isikhathi sase-India esivamile", "HNPM": "Iikhathi sase-Saint Pierre nase-Miquelon esijwayelekile", "HECU": "Isikhathi sase-Cuba sasemini", "MDT": "MDT", "EDT": "Isikhathi sase-North American East sasemini", "BT": "Isikhathi sase-Bhutan", "JST": "Isikhathi esivamile sase-Japan", "ChST": "Isikhathi esijwayelekile sase-Chamorro", "ART": "Isikhathi sase-Argentina esijwayelekile", "HNOG": "Isikhathi sase-West Greenland esijwayelekile", "PST": "Isikhathi sase-North American Pacific esijwayelekile", "CDT": "Isikhathi sase-North American Central sasemini", "SRT": "Isikhathi sase-Suriname"},
+ timezones: map[string]string{"HNOG": "Isikhathi sase-West Greenland esijwayelekile", "MST": "MST", "HENOMX": "Isikhathi sase-Northwest Mexico sasemini", "AKDT": "Isikhathi sase-Alaska sasemini", "HNCU": "Isikhathi sase-Cuba esijwayelekile", "JDT": "Isikhathi semini sase-Japan", "HNEG": "Isikhathi sase-East Greenland esijwayelekile", "HEPMX": "Isikhathi sase-Mexican Pacific sasemini", "CDT": "Isikhathi sase-North American Central sasemini", "CLST": "Isikhathi sase-Chile sasehlobo", "VET": "Isikhathi sase-Venezuela", "AEST": "Isikhathi esivamile sase-Australian East", "HNPM": "Iikhathi sase-Saint Pierre nase-Miquelon esijwayelekile", "WIT": "Isikhathi sase-Eastern Indonesia", "HAST": "Isikhathi sase-Hawaii-Aleutia esijwayelekile", "MESZ": "Isikhathi sasehlobo sase-Central Europe", "HEPM": "Isikhathi sase-Saint Pierre nase-Miquelon sasemini", "SRT": "Isikhathi sase-Suriname", "ECT": "Isikhathi sase-Ecuador", "WAT": "Isikhathi esijwayelekile saseNtshonalanga Afrika", "COT": "Isikhathi sase-Colombia esijwayelekile", "GFT": "Isikhathi sase-French Guiana", "WITA": "Isikhathi sase-Central Indonesia", "AKST": "Isikhathi sase-Alaska esijwayelekile", "NZDT": "Isikhathi sasemini sase-New Zealand", "HKT": "Isikhathi esivamile sase-Hong Kong", "AEDT": "Isikhathi sasemini sase-Australian East", "WEZ": "Isikhathi esijwayelekile sase-Western Europe", "HEOG": "Isikhathi sase-West Greenland sasehlobo", "ADT": "Isikhathi sase-Atlantic sasemini", "EDT": "Isikhathi sase-North American East sasemini", "ACDT": "Isikhathi sase-Australian Central sasemini", "HNPMX": "Isikhathi sase-Mexican Pacific esijwayelekile", "SAST": "Isikhathi esijwayelekile saseNingizimu Afrika", "AWST": "Isikhathi sase-Australian Western esivamile", "ACWDT": "Isikhathi sasemini sase-Australian Central West", "HNNOMX": "Isikhathi sase-Northwest Mexico esijwayelekile", "HNT": "Isikhathi sase-Newfoundland esijwayelekile", "ChST": "Isikhathi esijwayelekile sase-Chamorro", "AWDT": "Isikhathi sase-Australian Western sasemini", "HADT": "Isikhathi sase-Hawaii-Aleutia sasemini", "COST": "Isikhathi sase-Colombia sasehlobo", "MEZ": "Isikhathi esijwayelekile sase-Central Europe", "UYT": "Isikhathi sase-Uruguay esijwayelekile", "JST": "Isikhathi esivamile sase-Japan", "WESZ": "Isikhathi sasehlobo sase-Western Europe", "LHDT": "Isikhathi sase-Lord Howe sasemini", "GYT": "Isikhathi sase-Guyana", "PDT": "Isikhathi sase-North American Pacific sasemini", "ART": "Isikhathi sase-Argentina esijwayelekile", "ARST": "Isikhathi sase-Argentina sasehlobo", "HKST": "Isikhathi sehlobo sase-Hong Kong", "WAST": "Isikhathi sasehlobo saseNtshonalanga Afrika", "LHST": "Isikhathi sase-Lord Howe esivamile", "WART": "Isikhathi saseNyakatho ne-Argentina esijwayelekile", "WARST": "Isikhathi saseNyakatho ne-Argentina sasehlobo", "IST": "Isikhathi sase-India esivamile", "∅∅∅": "∅∅∅", "HAT": "Isikhathi sase-Newfoundland sasemini", "EAT": "Isikhathi saseMpumalanga Afrika", "BOT": "Isikhathi sase-Bolivia", "CAT": "Isikhathi sase-Central Africa", "BT": "Isikhathi sase-Bhutan", "CHAST": "Isikhathi esivamile sase-Chatham", "SGT": "Isikhathi esivamile sase-Singapore", "TMST": "Isikhathi sehlobo sase-Turkmenistan", "ACST": "Isikhathi sase-Australian Central esivamile", "PST": "Isikhathi sase-North American Pacific esijwayelekile", "CLT": "Isikhathi sase-Chile esijwayelekile", "AST": "Isikhathi sase-Atlantic esijwayelekile", "TMT": "Isikhathi esivamile sase-Turkmenistan", "NZST": "Isikhathi esivamile sase-New Zealand", "MYT": "Isikhathi sase-Malaysia", "OEZ": "Isikhathi esijwayelekile sase-Eastern Europe", "MDT": "MDT", "HEEG": "Isikhathi sase-East Greenland sasemini", "UYST": "Isikhathi sase-Uruguay sasehlobo", "CST": "Isikhathi sase-North American Central esijwayelekile", "GMT": "Isikhathi sase-Greenwich Mean", "OESZ": "Isikhathi sasehlobo sase-Eastern Europe", "EST": "Isikhathi sase-North American East esijwayelekile", "WIB": "Isikhathi sase-Western Indonesia", "HECU": "Isikhathi sase-Cuba sasemini", "CHADT": "Isikhathi sasemini sase-Chatham", "ACWST": "Isikhathi sase-Australian Central West esivamile"},
}
}
diff --git a/zu_ZA/zu_ZA.go b/zu_ZA/zu_ZA.go
index 7c2ea518..2f9bc2b6 100644
--- a/zu_ZA/zu_ZA.go
+++ b/zu_ZA/zu_ZA.go
@@ -71,7 +71,7 @@ func New() locales.Translator {
erasAbbreviated: []string{"BC", "AD"},
erasNarrow: []string{"", ""},
erasWide: []string{"BC", "AD"},
- timezones: map[string]string{"ART": "Isikhathi sase-Argentina esijwayelekile", "AEST": "Isikhathi esivamile sase-Australian East", "EDT": "Isikhathi sase-North American East sasemini", "GYT": "Isikhathi sase-Guyana", "AST": "Isikhathi sase-Atlantic esijwayelekile", "WESZ": "Isikhathi sasehlobo sase-Western Europe", "SRT": "Isikhathi sase-Suriname", "MYT": "Isikhathi sase-Malaysia", "AKDT": "Isikhathi sase-Alaska sasemini", "ADT": "Isikhathi sase-Atlantic sasemini", "HAST": "Isikhathi sase-Hawaii-Aleutia esijwayelekile", "∅∅∅": "Isikhathi sase-Amazon sasehlobo", "EAT": "Isikhathi saseMpumalanga Afrika", "MST": "MST", "MDT": "MDT", "WITA": "Isikhathi sase-Central Indonesia", "MESZ": "Isikhathi sasehlobo sase-Central Europe", "GFT": "Isikhathi sase-French Guiana", "CST": "Isikhathi sase-North American Central esijwayelekile", "SAST": "Isikhathi esijwayelekile saseNingizimu Afrika", "ChST": "Isikhathi esijwayelekile sase-Chamorro", "WAST": "Isikhathi sasehlobo saseNtshonalanga Afrika", "HNPMX": "Isikhathi sase-Mexican Pacific esijwayelekile", "AEDT": "Isikhathi sasemini sase-Australian East", "OESZ": "Isikhathi sasehlobo sase-Eastern Europe", "HKT": "Isikhathi esivamile sase-Hong Kong", "CHADT": "Isikhathi sasemini sase-Chatham", "MEZ": "Isikhathi esijwayelekile sase-Central Europe", "CLT": "Isikhathi sase-Chile esijwayelekile", "CAT": "Isikhathi sase-Central Africa", "UYT": "Isikhathi sase-Uruguay esijwayelekile", "HNPM": "Iikhathi sase-Saint Pierre nase-Miquelon esijwayelekile", "HEPM": "Isikhathi sase-Saint Pierre nase-Miquelon sasemini", "HNEG": "Isikhathi sase-East Greenland esijwayelekile", "HNNOMX": "Isikhathi sase-Northwest Mexico esijwayelekile", "PST": "Isikhathi sase-North American Pacific esijwayelekile", "PDT": "Isikhathi sase-North American Pacific sasemini", "WIB": "Isikhathi sase-Western Indonesia", "ACWDT": "Isikhathi sasemini sase-Australian Central West", "HENOMX": "Isikhathi sase-Northwest Mexico sasemini", "SGT": "Isikhathi esivamile sase-Singapore", "EST": "Isikhathi sase-North American East esijwayelekile", "CDT": "Isikhathi sase-North American Central sasemini", "WIT": "Isikhathi sase-Eastern Indonesia", "HEOG": "Isikhathi sase-West Greenland sasehlobo", "WEZ": "Isikhathi esijwayelekile sase-Western Europe", "NZST": "Isikhathi esivamile sase-New Zealand", "CLST": "Isikhathi sase-Chile sasehlobo", "TMT": "Isikhathi esivamile sase-Turkmenistan", "WAT": "Isikhathi esijwayelekile saseNtshonalanga Afrika", "COST": "Isikhathi sase-Colombia sasehlobo", "VET": "Isikhathi sase-Venezuela", "HKST": "Isikhathi sehlobo sase-Hong Kong", "JST": "Isikhathi esivamile sase-Japan", "ECT": "Isikhathi sase-Ecuador", "HECU": "Isikhathi sase-Cuba sasemini", "AKST": "Isikhathi sase-Alaska esijwayelekile", "CHAST": "Isikhathi esivamile sase-Chatham", "IST": "Isikhathi sase-India esivamile", "TMST": "Isikhathi sehlobo sase-Turkmenistan", "WART": "Isikhathi saseNyakatho ne-Argentina esijwayelekile", "GMT": "Isikhathi sase-Greenwich Mean", "HNT": "Isikhathi sase-Newfoundland esijwayelekile", "BT": "Isikhathi sase-Bhutan", "LHDT": "Isikhathi sase-Lord Howe sasemini", "BOT": "Isikhathi sase-Bolivia", "ACDT": "Isikhathi sase-Australian Central sasemini", "WARST": "Isikhathi saseNyakatho ne-Argentina sasehlobo", "UYST": "Isikhathi sase-Uruguay sasehlobo", "COT": "Isikhathi sase-Colombia esijwayelekile", "ACWST": "Isikhathi sase-Australian Central West esivamile", "ARST": "Isikhathi sase-Argentina sasehlobo", "AWST": "Isikhathi sase-Australian Western esivamile", "HNCU": "Isikhathi sase-Cuba esijwayelekile", "HEPMX": "Isikhathi sase-Mexican Pacific sasemini", "HADT": "Isikhathi sase-Hawaii-Aleutia sasemini", "HNOG": "Isikhathi sase-West Greenland esijwayelekile", "JDT": "Isikhathi semini sase-Japan", "HEEG": "Isikhathi sase-East Greenland sasemini", "ACST": "Isikhathi sase-Australian Central esivamile", "OEZ": "Isikhathi esijwayelekile sase-Eastern Europe", "HAT": "Isikhathi sase-Newfoundland sasemini", "AWDT": "Isikhathi sase-Australian Western sasemini", "LHST": "Isikhathi sase-Lord Howe esivamile", "NZDT": "Isikhathi sasemini sase-New Zealand"},
+ timezones: map[string]string{"LHDT": "Isikhathi sase-Lord Howe sasemini", "HNCU": "Isikhathi sase-Cuba esijwayelekile", "PDT": "Isikhathi sase-North American Pacific sasemini", "MESZ": "Isikhathi sasehlobo sase-Central Europe", "ACDT": "Isikhathi sase-Australian Central sasemini", "HAT": "Isikhathi sase-Newfoundland sasemini", "AKDT": "Isikhathi sase-Alaska sasemini", "HNPM": "Iikhathi sase-Saint Pierre nase-Miquelon esijwayelekile", "AWST": "Isikhathi sase-Australian Western esivamile", "ECT": "Isikhathi sase-Ecuador", "ACWST": "Isikhathi sase-Australian Central West esivamile", "NZDT": "Isikhathi sasemini sase-New Zealand", "OEZ": "Isikhathi esijwayelekile sase-Eastern Europe", "WESZ": "Isikhathi sasehlobo sase-Western Europe", "MDT": "MDT", "GFT": "Isikhathi sase-French Guiana", "CDT": "Isikhathi sase-North American Central sasemini", "GMT": "Isikhathi sase-Greenwich Mean", "MYT": "Isikhathi sase-Malaysia", "ACST": "Isikhathi sase-Australian Central esivamile", "HNT": "Isikhathi sase-Newfoundland esijwayelekile", "HENOMX": "Isikhathi sase-Northwest Mexico sasemini", "WIB": "Isikhathi sase-Western Indonesia", "PST": "Isikhathi sase-North American Pacific esijwayelekile", "MEZ": "Isikhathi esijwayelekile sase-Central Europe", "WARST": "Isikhathi saseNyakatho ne-Argentina sasehlobo", "WAST": "Isikhathi sasehlobo saseNtshonalanga Afrika", "EST": "Isikhathi sase-North American East esijwayelekile", "EDT": "Isikhathi sase-North American East sasemini", "WEZ": "Isikhathi esijwayelekile sase-Western Europe", "CLST": "Isikhathi sase-Chile sasehlobo", "HKST": "Isikhathi sehlobo sase-Hong Kong", "CST": "Isikhathi sase-North American Central esijwayelekile", "ADT": "Isikhathi sase-Atlantic sasemini", "ChST": "Isikhathi esijwayelekile sase-Chamorro", "CHAST": "Isikhathi esivamile sase-Chatham", "HADT": "Isikhathi sase-Hawaii-Aleutia sasemini", "HEOG": "Isikhathi sase-West Greenland sasehlobo", "TMST": "Isikhathi sehlobo sase-Turkmenistan", "COST": "Isikhathi sase-Colombia sasehlobo", "BT": "Isikhathi sase-Bhutan", "SGT": "Isikhathi esivamile sase-Singapore", "CAT": "Isikhathi sase-Central Africa", "JST": "Isikhathi esivamile sase-Japan", "JDT": "Isikhathi semini sase-Japan", "WAT": "Isikhathi esijwayelekile saseNtshonalanga Afrika", "AKST": "Isikhathi sase-Alaska esijwayelekile", "HNPMX": "Isikhathi sase-Mexican Pacific esijwayelekile", "HEPMX": "Isikhathi sase-Mexican Pacific sasemini", "HAST": "Isikhathi sase-Hawaii-Aleutia esijwayelekile", "HNOG": "Isikhathi sase-West Greenland esijwayelekile", "CLT": "Isikhathi sase-Chile esijwayelekile", "HEEG": "Isikhathi sase-East Greenland sasemini", "AEDT": "Isikhathi sasemini sase-Australian East", "SAST": "Isikhathi esijwayelekile saseNingizimu Afrika", "GYT": "Isikhathi sase-Guyana", "EAT": "Isikhathi saseMpumalanga Afrika", "AWDT": "Isikhathi sase-Australian Western sasemini", "ART": "Isikhathi sase-Argentina esijwayelekile", "SRT": "Isikhathi sase-Suriname", "IST": "Isikhathi sase-India esivamile", "AST": "Isikhathi sase-Atlantic esijwayelekile", "COT": "Isikhathi sase-Colombia esijwayelekile", "∅∅∅": "Isikhathi sase-Amazon sasehlobo", "OESZ": "Isikhathi sasehlobo sase-Eastern Europe", "WART": "Isikhathi saseNyakatho ne-Argentina esijwayelekile", "LHST": "Isikhathi sase-Lord Howe esivamile", "BOT": "Isikhathi sase-Bolivia", "TMT": "Isikhathi esivamile sase-Turkmenistan", "WITA": "Isikhathi sase-Central Indonesia", "AEST": "Isikhathi esivamile sase-Australian East", "UYT": "Isikhathi sase-Uruguay esijwayelekile", "WIT": "Isikhathi sase-Eastern Indonesia", "NZST": "Isikhathi esivamile sase-New Zealand", "HNNOMX": "Isikhathi sase-Northwest Mexico esijwayelekile", "HEPM": "Isikhathi sase-Saint Pierre nase-Miquelon sasemini", "HECU": "Isikhathi sase-Cuba sasemini", "UYST": "Isikhathi sase-Uruguay sasehlobo", "CHADT": "Isikhathi sasemini sase-Chatham", "ACWDT": "Isikhathi sasemini sase-Australian Central West", "VET": "Isikhathi sase-Venezuela", "MST": "MST", "ARST": "Isikhathi sase-Argentina sasehlobo", "HKT": "Isikhathi esivamile sase-Hong Kong", "HNEG": "Isikhathi sase-East Greenland esijwayelekile"},
}
}